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

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

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

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

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

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

Міністерство освіти та науки України Національний університет «Львівська політехніка» Кафедра ЗІ / Лабораторна робота №4 «ДОСЛІДЖЕННЯ КОНВЕЄРНОГО ВИКОНАННЯ ІНСТРУКЦІЙ РУХОМОЇ КОМИ» з дисципліни «Архітектура комп’ютерних систем» Львів-2022 Мета роботи - опанувати техніку конвеєрного виконання RISC інструкцій для операндів формату рухомої коми. Завдання Засобами архітектурного симулятора WinMIPS64 машини з 64-розрядною RISC архітектурою MIPS64 дослідити конвеєрне виконання фрагментів машинних програм, що команди опрацювання операндів в форматі з рухомою комою. Виявити наявні залежності (небезпеки) даних і керування, оптимізувати програмний код та дослідити дію запропонованої оптимізації. За результатами проведених лабораторних досліджень оформити звіт та захистити його. Виконання та аналіз коду до оптимізації Розглянемо програмний код (з умови завдання), що опрацьовує дані з форматом рухомої коми ; hail.s ; Hailstone numbers iteration ; If number is odd, multiply by 3 and add 1 ; If number is even, divide it by 2 ; repeat this iteration until number is 1 .data number: .word 27 ; this is input number - change it! max: .word 0 ; max number so far .text start: ld r1,number(r0) ; program start loop: andi r3,r1,1 ; test odd or even beqz r3,even odd: dadd r2,r1,r1 ; times 2 dadd r1,r2,r1 ; times 3 daddi r1,r1,1 ; plus 1 j over even: dsrl r1,r1,1 ; divide by 2 over: ld r4,max(r0) slt r3,r4,r1 ; compare with max beqz r3,skip sd r1,max(r0) ; new max skip: slti r3,r1,2 ; test for finished beqz r3,loop halt Виконання програми asm.exe, яка дозволяє перевірити синтаксис програми, ще до її виконання. / Синтаксис є коректним. Відкриваємо програму WinMips64 та запускаємо в ній файл lab4.s Симулювання Синтаксис є коректним. Далі відкриємо програму WINMIPS64 і запустимо в ній нашу програму та симулюємо виконання інструкцій та отримаєм такий результат. / / Статистика після виконання програми: Загальне число виконаних циклів становить 1703. СРІ = 1.657 – це середнє число тактових інтервалів (cycles per instruction), що припало на виконання кожної інструкції програми. RAW Stalls (read after write) = 445 Оптимізуємо код Перенесемо інструкції andi (логічне І), виконання якої тривало 2 цикла. Команди було переставлено, щоб не було «простою» в 1 цикл, поки наступна інструкція чекає на результат виконання попередньої. .data number: .word 27 ; this is input number - change it! 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 Виконання програми asm.exe, яка дозволяє перевірити синтаксис програми, ще до її виконання. / Синтаксис є коректним. Відкриваємо програму WinMips64 та запускаємо в ній файл. Переходимо до симулювання: / Результат виконання / Статистика після оптимізації програми: Загальне число виконаних циклів становить 966. СРІ = 1.237 – це середнє число тактових інтервалів (cycles per instruction), що припало на виконання кожної інструкції програми. RAW Stalls (read after write) = 1 До оптимізації було: 1794 цикли 1028 інструкцій 1,745 циклів на інструкцію 445 RAW Stall Після оптимізації стало: 966 циклів 781 інструкція 1,237 циклів на інструкцію 1 RAW Stall Висновок: Виконавши дану лабораторну роботу я опанувала технікою конвеєрного виконання RISC інструкцій для операндів формату рухомої коми, також провела покращенні коду і добилась збільшення швидкості виконання і добилась хорошого результату, який полягає в наступному: Спочатку було 1703 цикли, стало 976; Спочатку було 445 RAW, стало 1; Спочатку було CPI – 1,657 , стало – 1,250.
Антиботан аватар за замовчуванням

08.04.2025 12:04-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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