Міністерство освіти та науки України
Національний університет «Львівська політехніка»
ІКТА
Кафедра ЗІ
/
Лабораторна робота №2
з дисципліни: «Архітектура комп’ютерних систем»
на тему: «ДОСЛІДЖЕННЯ ВИКОНАННЯ ЦИКЛІВ НА
КОНВЕЄРІ ІНСТРУКЦІЙ»
Варіант - 20
Львів 2022
Мета роботи - опанувати техніку конвеєрного виконання RISC інструкцій.
Завдання
Засобами архітектурного симулятора WinMIPS64 машини з 64-розрядною
RISC архітектурою MIPS64 дослідити конвеєрне виконання фрагментів
машинних програм, що містять цикли. Виявити наявні залежності (небезпеки)
даних і керування, оптимізувати програмний код та дослідити дію
запропонованої оптимізації. За результатами проведених лабораторних
досліджень оформити звіт та захистити його.
Варіант
Числа
20
1, 55, 20, 21, 58, 33, 36, 59, 17, 50
Інструкції асемблеру програми
.data
values: .word 1, 55, 20, 21, 58, 33, 36, 59, 17, 50
result: .space 8
.text
MAIN: daddui R1,R0,10
dadd R2,R0,R0
dadd R3,R0,R0
LOOP: ld R4,values(R2)
dadd R3,R3,R4
daddi R2,R2,8
daddi R1,R1,-1
bnez R1,LOOP
nop
sd R3,result(R0)
HALT
Виконання роботи
Програма перед виконанням інструкцій.
/
У списку Configure включаємо Enable Forwarding та Enable Brach Targer Buffer для увімкнення фукцій випередження данними та прогнозування напрямку умовного переходу за допомогою буфера.
/
На 11 циклі вперше утворилося пригальмування за рахунок виконаного умовного переходу (branch taken stall).
/
На 76 циклі симуляції виконання інструкцій, трапилася помилка передбачення напрямку умовного переходу (Branch misprediction stall у вікні статистики):
/
На 77 циклі симуляції виконання інструкцій, трапилася помилка знову:
/
І на 84 циклі була завершена програма з такими результатами:
/
У результаті виконання програми, отримуємо 0000000000000115e у шіснадцятковій, що, після переведення у десяткову систему числення, отримуємо 350.
/
Запустивши програму з вимкненими Forwarding та Branch Target Buffer отримаємо ось такі результати:
/
Порівняння вікон статистики
З увімкненим
/
Без увімкнення
/
Висновок: В результаті виконанная даної лабораторної роботи, я навчився виконувати певні RISC інструкції. Слід зазначити, що при вимкнених механізмах випередження та прогнозування не було помилки в передбаченні напрямку умовного переходу (Branch misprediction stall).