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

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

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

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

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

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

Міністерство освіти та науки України Національний університет «Львівська політехніка» Кафедра ЗІ / Лабораторна робота №4 «ДОСЛІДЖЕННЯ КОНВЕЄРНОГО ВИКОНАННЯ ІНСТРУКЦІЙ РУХОМОЇ КОМИ» з дисципліни «Архітектура комп'ютерних систем» Мета роботи: опанування технікою конвеєрного виконання RISC інструкцій для операндів формату рухомої коми. Завдання Засобами архітектурного симулятора WinMIPS64 дослідити на прикладі фрагментів програмного коду можливості паралельного опрацювання машинних інструкцій на рівні апаратури та позитивні ефекти, що при цьому досягаються. За результатами проведених лабораторних досліджень оформити звіт та захистити його. Асемблерні інструкції .data number: .word 11 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 Branch target buffer Асинхронне виконання команд. У даному випадку це пов’язано із заміною інструкцій в залежності від використання регістрів пам’яті. Результат виконання програми з Configure – Enable Forwarding (випередження) / Вікно статистики / Кількість тактів відчутно опустилась (301-228), зокрема на 73 такти, порівнюючи з вимкненим випередженням. Це пов’язано з тим, що потреба у очікуванні проходженні усіх етапів виконання операції та завантаження даних, які поміщені у регістр відсутня, оскільки операції ld/sd (завантаження у/з пам’яті) виконуються не очікуючи кінця інструкцій. Результат виконання програми з Configure – Enable Branch Target Buffer (випередження) / Вікно статистики / Кількість тактів зменшилась на 13. Це пов’язано з передбаченням операцій, зокрема коли потрібно обрати логіку із парним або непарним числом. У даному випадку відбулось 16 успішних передбачень та 10 невдалих. Асинхронне виконання команд Оптимізовані асемблерні інструкції: .data number: .word 11 ; this is input number max: .word 0 ; max number so far .text start: ld r1,number(r0) ; program start andi r5,r1,1 ; test odd or even loop: dadd r2,r1,r1 ; times 2 beqz r5,even odd: dadd r1,r2,r1 ; times 3 ld r4,max(r0) daddi r1,r1,1 ; plus 1 slt r3,r4,r1 ; compare with max andi r5,r1,1 beqz r3,loop sd r1,max(r0) ; new max j loop even: dsrl r1,r1,1 ;divide by 2 slti r3,r1,2 ; test for finished andi r5, r1,1 beqz r3,loop halt Оптимізація відбулась за рахунок перенесення інструкції andi (логічне І), виконання якого тривало 2 цикла. Враховуючи це, переставлено команди, щоб не було «простою» в 1 цикл, поки наступна інструкція чекає на результат виконання попередньої. Також через перестановлення даної інструкції кількість її викликів став значно меншим, що позитивно вплинуло на результат. Після оптимізування коду число циклів зменшилось аж на (215- 126) 89 циклів. Результат виконання програми / Вікно статистики / Висновок: у ході виконання лабораторної роботи засобами архітектурного симулятора WinMIPS64 досліджено на прикладі фрагментів програмного коду можливості паралельного опрацювання машинних інструкцій на рівні апаратури та позитивні ефекти, що при цьому досягаються. Опановано техніку конвеєрного виконання RISC інструкцій для операндів формату рухомої коми. Проведено оптимізацію коду за допомогою Forwarding та Branch Target Buffer.
Антиботан аватар за замовчуванням

08.04.2025 11:04-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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