Мета виконання роботи: Опанувати техніку конвеєрного виконання RISC інструкцій
Завдання: Засобами архітектурного симулятора WinMIPS64 машини з 64-розрядною RISC архітектурою MIPS64 дослідити конвеєрне виконання фрагментів машинних програм, що містять цикли. Виявити наявні залежності (небезпеки) даних і керування, оптимізувати програмний код та дослідити дію запропонованої оптимізації.
Текст програми:
;Program: loop.s
;Sum of 10 integer values
.data
values: .word 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ; 64-bit integers
result: .space 8
.text
MAIN:
daddui R1,R0,10 ; R1 < - 10
dadd R2,R0,R0 ; R2 < - 0 POINTER REG
dadd R3,R0,R0 ; R3 < - 0 RESULT REG
LOOP:
ld R4,values (R2) ; GET A VALUE IN R4
dadd R3,R3,R4 ; R3 < - R3 + R4
daddi R2,R2,8 ; R2 < - R2 + 8 POINTER INCREMENT
daddi R1,R1,-1 ; R1 < - R1 - 1 DECREMENT COUNTER
bnez R1,LOOP
nop
sd R3,result (R0) ; Result in R3
HALT ; the end
Хід роботи:
Виконуємо покрокове трасування. З вимкненою апаратурою передбачення напрямку умовного переходу(branch target buffer). Та отримуємо статистику виконання. Відслідковуємо усі затримки та переходи.(А)
Виконуємо покрокове трасування. З увімкненою апаратурою передбачення напрямку умовного переходу(branch target buffer). Та отримуємо статистику виконання. Відслідковуємо усі затримки та переходи. (Б)

1) 2)
Рис1-Виконання фрагменту коду без апаратури передбачення умовного переходу(1), з апаратурою передбачення умовного переходу(2)
Висновок: Як видно по статистиці Рис1(2) CPI менше 1.500 напроти Рис1(1)CPI 1.964. А отже ввімкнена апаратура передбачення переходу дає більшу продуктивність. Це пов’язано з тим що в варіанті (1), не відбувалось передбачення переходу і він завжди виконував перехід вважаючи, що він не вірний. З апаратурою передбачення умовних переходів, не відбувалося втрат на вибір не правильної команди, тому що передбачення переходів завжди виконувались вірно, окрім 2 раз, як показано в статистиці (2)(2 Branch Misprediction Stalls). Отже виграш в кількості тактів 110-84=26.