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

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

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

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

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

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

Міністерство освіти та науки України Національний університет «Львівська політехніка» Кафедра БІТ / Лабораторна робота №4 «ДОСЛІДЖЕННЯ КОНВЕЄРНОГО ВИКОНАННЯ ІНСТРУКЦІЙ РУХОМОЇ КОМИ» з дисципліни «Архітектура комп'ютерних систем» Варіант - 9 Мета роботи – опанування технікою конвеєрного виконання RISC інструкцій для операндів формату рухомої коми. Завдання Засобами архітектурного симулятора WinMIPS64 дослідити на прикладі фрагментів програмного коду можливості паралельного опрацювання машинних інструкцій на рівні апаратури та позитивні ефекти, що при цьому досягаються. За результатами проведених лабораторних досліджень оформити звіт та захистити його. Асемблерні інструкції Спочатку проаналізуємо неоптимізований код. .data number: .word 27 max: .word 0 .text start: ld r1,number(r0) loop: andi r3,r1,1 beqz r3, even odd: dadd r2,r1,r1 dadd r1,r2,r1 daddi r1,r1,1 j over even: dsrl r1,r1,1 over: ld r4,max(r0) slt r3,r4,r1 beqz r3,skip sd r1,max(r0) skip: slti r3,r1,2 beqz r3,loop halt Стан програми перед початком виконання інструкцій / Кінець виконання програми / Вікно статистики / Як бачимо, на виконання даного коду йде досить велика кількість циклів. Однак є кілька способів, які можна використати для оптимізації роботи цього коду. Перший з них – випередження(forwarding). Кінець виконання програми з увімкненим форвардінгом / Вікно статистики / Вікно статистики показує, що при увімкненому форвардінгу кількість тактів значно зменшується, у порівнянні із попередньою статистикою. Різниця становить цілих 101 такти. Це пов’язано із великою кількістю операцій ld/sd – завантаження у/з пам’яті. Така велика кількість тактів економиться через відсутність потреби чекати проходження усіх етапів виконання цих операцій і використання даних, які поміщенні у регістр, у наступних інструкціях. Однак є ще один спосіб – branch target buffer. Кінець виконання програми з увімкненим форвардінгом та branch target buffer / Вікно статистики / Завдяки увімкнені цієї функції можна зекономити ще невелику кількість тактів. Такти можна економити на вгадуванні наступної інструкції, наприклад на моментів коли потрібно обрати логіку із парним або непарним числом. Однак, як видно по статистиці є аж 12 невгадувань. Незважаючи на це, використання цієї функції все одно економлять кількість тактів. Приклади вдосконалення коду: .data number: .word 9 max: .word 0 .text start: ld r1,number(r0) andi r5,r1,1 loop: dadd r2,r1,r1 beqz r5,even odd: dadd r1,r2,r1 ld r4,max(r0) daddi r1,r1,1 slt r3,r4,r1 andi r5,r1,1 beqz r3, even sd r1,max(r0) j loop even: dsrl r1,r1,1 slti r3,r1,2 andi r5, r1,1 beqz r3,loop halt Стан програми перед початком виконання інструкцій / Кінець виконання програми / Вікно статистики / Висновок: виконавши дану лабораторну роботу, я опанував техніку конвеєрного виконання RISC інструкцій для операндів формату рухомої коми. Оптимізацію коду проведено завдяки використанню функцій forwarding та brench target buffer. Можливий також варіант із заміною інструкцій в залежності від використання регістрів пам’яті. Однак цей варіант тут не буде доречним, оскільки виконання інструкцій конвеєрне і необхідно дочекатися виконання попередньою інструкції для використання даних, які вона обробила, у наступній інструкції.
Антиботан аватар за замовчуванням

08.04.2025 12:04-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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