Мета виконання роботи: Опанувати техніку конвеєрного виконання 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.