Ім'я файлу: АКС_Лабораторна 2.docx
Розширення: docx
Розмір: 2725кб.
Дата: 17.11.2022
скачати

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»


ІКТА

Кафедра ЗІ



Звіт

до лабораторної роботи №2
з курсу: «Архітектура комп’ютерних систем»

на тему:«ДОСЛІДЖЕННЯ ВИКОНАННЯ ЦИКЛІВ НА КОНВЕЄРІ ІНСТРУКЦІЙ»

Варіант-2
Виконав:

студент групи
Прийняла:

Костів І. С.

ЛЬВІВ – 2022

Мета роботи: опанувати техніку конвеєрного виконання RISC інструкцій.

Завдання
Засобами архітектурного симулятора WinMIPS64 машини з 64-розрядною RISC архітектурою MIPS64 дослідити конвеєрне виконання фрагментів машинних програм, що містять цикли. Виявити наявні залежності (небезпеки) даних і керування, оптимізувати програмний код та дослідити дію запропонованої оптимізації. За результатами проведених лабораторних досліджень оформити звіт та захистити його.
Початок виконання роботи

Виконання програми asm.exe, яка дозволяє перевірити синтаксис програми, ще до її виконання.


Результат виконання програми

Синтаксис є коректним. Далі відкриємо програму WINMIPS64 і запустимо в ній файл lab2.s, яким ми попередньо створили. Переконався, що програма завантажена до пам’яті і симулятор готовий до роботи. У вікні “Code” спостерігаємо код програми.



Основне вікно симулятора з відкритим файлом loop.s
Використав апаратні механізми випередження даними і прогнозування напрямку умовного переходу за допомогою буфера цільових адрес переходу (branch target buffer, BTB).

Дозволяємо використання випередження (forwarding) і апаратури передбачення напрямку умовного переходу (branch target buffer).


Покроково симулюємо виконання інструкцій. На 7 циклі отримали RAW (read after write).


Виконано 7 циклів симулювання

При виконанні 10 такту бачимо ще 1 пригальмування

Друге пригальмування


Після 11 тактів симулювання, сталося перше пригальмування за рахунок виконаного умовного переходу (branch taken stall).


Виконання 11-ти тактів
На 76 циклі виконання отримали першу помилку передбачення напрямку умовного переходу (Branch misprediction stall).


Виникнення першої помилки в передбаченні напрямку умовного переходу



Завершення програми
Виключаємо апаратні механізми випередження даними і прогнозування напрямку умовного переходу за допомогою буфера цільових адрес переходу (branch target buffer, BTB).

Головне вікно стимулятора по завершенню симулювання програми loop.s

Результат виконання програми сумування 10 чисел показав нам правильний результат 14f. Загальне число виконаних циклів становить 84.

СРІ = 1.500 – це середнє число тактових інтервалів (cycles per instruction), що припало на виконання кожної інструкції програми.

• RAW Stalls (read after write) = 20

• Branch Taken Stalls (виконаного умовного переходу) = 2

• Branch Misprediction Stalls(передбаченні напрямку умовного переходу)= 2
Результат виконання програми без механізмів випередження та прогнозування сумування 10 чисел показав нам такий самий результат 14f. Загальне число виконаних циклів становить 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) програма виконалася на 26 менше ніж з вимкненими механізмами. Середнє число тактових інтервалів без механізмів також виросло на 0.464. При вимкнених механізмах не було помилки в передбаченні напрямку умовного переходу (Branch misprediction stall).
скачати

© Усі права захищені
написати до нас