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

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

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

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

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

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

Міністерство освіти та науки України Національний університет «Львівська політехніка» Кафедра БІТ / Лабораторна робота №4 «ДОСЛІДЖЕННЯ КОНВЕЄРНОГО ВИКОНАННЯ ІНСТРУКЦІЙ РУХОМОЇ КОМИ» з дисципліни «Архітектура комп'ютерних систем» Варіант - 26 Львів 2022 Мета роботи – опанування технікою конвеєрного виконання 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 невгадувань. Незважаючи на це, використання цієї функції все одно економлять кількість тактів. Висновок: при виконанні даної лабораторної роботи, я опанував техніку конвеєрного виконання RISC інструкцій для операндів формату рухомої коми. Оптимізацію коду проведено завдяки використанню функцій forwarding та brench target buffer. Є варіант із заміною інструкцій в залежності від використання регістрів пам’яті. Але, цей варіант тут не підходить, оскільки виконання інструкцій конвеєрне і необхідно дочекатися виконання попередньою інструкції для використання даних, які вона обробила, у наступній інструкції.
Антиботан аватар за замовчуванням

08.04.2025 12:04-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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