DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

Дослідження виконання циклів на конвеєрі інструкцій

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
ІКТА
Факультет:
КН
Кафедра:
Не вказано

Інформація про роботу

Рік:
2025
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Архітектура комп ютерних систем

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» ІКТА Кафедра БІТ ЗВІТ до лабораторної роботи №2 з курсу: «Архітектура комп’ютерних систем» на тему: «Дослідження виконання циклів на конвеєрі інструкцій» Варіант-16 Львів — 2022 Мета роботи Опанувати техніку конвеєрного виконання RISC інструкцій. Завдання Засобами архітектурного симулятора WinMIPS64 машини з 64- розрядною RISC архітектурою MIPS64 дослідити конвеєрне виконання фрагментів машинних програм, що містять цикли. Виявити наявні залежності (небезпеки) даних і керування, оптимізувати програмний код та дослідити дію запропонованої оптимізації. За результатами проведених лабораторних досліджень оформити звіт та захистити його. Порядок виконання роботи Спершу через стандартний текстовий редактор створюємо програмний файл, Lab2(16).s. В цій програмі міститиметься код для MIPS64, записаний мовою асемблер, що знаходить згідно з варіантом завдання суму десяти чисел 17, 43, 15, 22, 34, 17, 53, 11, 40, 23 з кроком 1. Тобто в пам’яті програмно резервуємо .word з ініціалізацією 10 комірок для заданих чисел, а також без ініціалізації, .space, що призначається як місце для збереження результату суми. Далі подається власне сам текст асемблерної програми, що обчислює суму заданих заданих чисел (рис. 1). / Рис. 1. Текст асемблерної програми Далі подається основне вікно програми MIPS64 до її виконання (рис. 2). якій дозволено використання апаратного механізму випередження даних (forwarding), а також апаратури прогнозування напрямку умовного переходу за допомогою буфера цільових адрес переходу (branch target buffer). / Рис. 2. Основне вікно симулятора зі завантаженою програмою Тепер протиснувши Execute/Single Cycle або F7 на клавіатурі можна побачити покрокове симулювання. / Рис. 3. Виконання сьомого циклу програми Після десятого циклу у дочірньому вікні “конвеєра” симулятора можна побачити виконання другого RAW пригальмування (рис. 4). / Рис. 4. Виконання десятого циклу програми На одинадцятому циклі симулювання, відбувається перше пригальмування за рахунок виконаного умовного переходу (branch taken stall) (рис. 5). /Рис. 5. Виконання одинадцятого циклу програми Пройшовши 84 циклів симулювання, спостерігаємо стан виникнення першої помилки в передбаченні напрямку умовного переходу (Branch misprediction stall) (рис. 6). Branch prediction «вгадує» наступну інструкцію, яку потрібно виконати, і вставляє наступну передбачувану інструкцію в конвеєр. Неправильне вгадування інструкції спричиняє Branch misprediction stall. Таке пригальмування уповільнює виконання програми, оскільки частково оброблені інструкції в конвеєрі після розгалуження повинні бути відкинуті, а конвеєр повинен початися спочатку з правильної гілки. / Рис. 6. Виконання вісімдесят четвертого циклу програми / Рис. 7. Вікно симулятора по завершенню виконання програми з увімкненим branch target buffer На рисунку 7 можна бачити головне вікно симулятора по завершенню симулювання програми з використанням forwarding та branch target buffer. Тепер поглянемо на головне вікно по виконанні симуляції цієї ж програми, але вже коли вимкнемо симулювання апаратури прогнозування напрямку умовного переходу за допомогою буфера цільових адрес переходу (branch target buffer) (рис. 8). / Рис. 8. Вікно симулятора по завершенню виконання програми з вимкненим branch target buffer Отже, як бачимо з рисунків 7 та 8, по виконанню програми з оптимізованою апаратурою втрати конвеєра інструкцій склали 20 RAW- пригальмувань, 2 пригальмування під час взятих, виконаних умовних переходів (Branch Taken Stall) і ще 2 пригальмування (Branch Misprediction Stalls) через помилкове передбачення напрямку умовного переходу апаратними засобами, де й власне використовується буфер цільових адрес переходів - branch target buffer. При вимкненні branch target buffer втрати конвеєра інструкцій теж склали 20 RAW-пригальмувань, але тут вже маємо 9 пригальмувань - Branch Taken Stall. Ну і пригальмування Branch Misprediction Stalls, звичайно, рівне 0. Висновок: під час виконання даної лабораторної роботи набув як теоретичних так і практичних навичок, зокрема опанував техніку конвеєрного виконання RISC інструкцій.
Антиботан аватар за замовчуванням

08.04.2025 12:16

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!