ДОСЛІДЖЕННЯ ВИКОНАННЯ ЦИКЛІВ НА КОНВЕЄРІ ІНСТРУКЦІЙ

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

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

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

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

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» ІКТА Кафедра БІТ Звіт до лабораторної роботи №2 з курсу: «Архітектура комп’ютерних систем» на тему: «ДОСЛІДЖЕННЯ ВИКОНАННЯ ЦИКЛІВ НА КОНВЕЄРІ ІНСТРУКЦІЙ» Варіант – 7 ЛЬВІВ – 2022 Мета роботи: опанувати техніку конвеєрного виконання RISC інструкцій. Завдання Засобами архітектурного симулятора WinMIPS64 машини з 64-розрядною RISC архітектурою MIPS64 дослідити конвеєрне виконання фрагментів машинних програм, що містять цикли. Виявити наявні залежності (небезпеки) даних і керування, оптимізувати програмний код та дослідити дію запропонованої оптимізації. За результатами проведених лабораторних досліджень оформити звіт та захистити його. Початок виконання роботи На Рис. 1 зображено виконання програми asm.exe, яка дозволяє перевірити синтаксис програми, ще до її виконання. / Рис. 1. Результат виконання програми Як бачимо з Рис. 1 синтаксис є коректним. Далі відкриємо програму WINMIPS64 і запустимо в ній файл loop.s, яким ми попередньо створили. Переконався, що програма завантажена до пам’яті і симулятор готовий до роботи. У вікні “Code” спостерігаємо код програми. 1/ Рис. 2. Відкритий файл loop.s у програмі WINMIPS64 Використав апаратні механізми випередження даними і прогнозування напрямку умовного переходу за допомогою буфера цільових адрес переходу (branch target buffer, BTB). / Рис. 3. Дозволено використання випередження (forwarding) і апаратури передбачення напрямку умовного переходу (branch target buffer). Покроково симулюємо виконання інструкцій. На 7 циклі отримали RAW (read after write). / Рис. 4. Виконано 7 циклів симулювання. Є перше RAW (read after write) При виконанні 10 такту бачимо ще 1 пригальмування / Рис. 5. Друге пригальмування Виконано 11 тактів симулювання, сталося перше пригальмування за рахунок виконаного умовного переходу (branch taken stall). / Рис. 6. Виконання 11-ти тактів На 76 циклі виконання отримали першу помилку передбачення напрямку умовного переходу. / Рис. 7. Стан виникнення першої gомилки в передбаченні напрямку умовного переходу (Branch misprediction stall) Головне вікно симулятора по завершенню симулювання програми зображено на Рис. 8. / Рис. 8. Завершення програми Виключаємо апаратні механізми випередження даними і прогнозування напрямку умовного переходу за допомогою буфера цільових адрес переходу (branch target buffer, BTB). / Рис. 9. Головне вікно стимулятора по завершенню симулювання програми loop.s з вимкненими механізмами випередження та прогнозування. Результати: Результат виконання програми сумування 10 чисел показав нам правильний результат 0x37. Загальне число виконаних циклів становить 84. СРІ = 1.500 – це середнє число тактових інтервалів (cycles per instruction), що припало на виконання кожної інструкції програми. • RAW Stalls (read after write) = 20 • Branch Taken Stalls (виконаного умовного переходу) = 2 • Branch Misprediction Stalls(передбаченні напрямку умовного переходу)= 2 Результат виконання програми без механізмів випередження та прогнозування сумування 10 чисел показав нам такий самий результат 0x37. Загальне число виконаних циклів становить 110. СРІ = 1.964 – це середнє число тактових інтервалів (cycles per instruction), що припало на виконання кожної інструкції програми. • RAW Stalls (read after write) = 41 • Branch Taken Stalls (виконаного умовного переходу) = 9 • Branch Misprediction Stalls (передбаченні напрямку умовного переходу)= 0 Висновок: на лабораторій роботі, я навчився виконувати певні RISC інструкції. З ввімкненими механізми випередження даними і прогнозування напрямку умовного переходу за допомогою буфера цільових адрес переходу (branch target buffer, BTB) програма виконалася за 84 цикли, що на 26 менше ніж з вимкненими механізмами. Середнє число тактових інтервалів без механізмів також виросло на 0.464. При вимкнених механізмах не було помилки в передбаченні напрямку умовного переходу (Branch misprediction stall).
Антиботан аватар за замовчуванням

08.04.2025 12:04-

Коментарі

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

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

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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