МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
Кафедра БІТ
Звіт до лабораторної роботи № 2
Програма рухома кома
З дисципліни
“Архітектура комп’ютерних систем”
Львів – 2011
Метою роботи є ознайомлення з програмою під назвою рухома кома, а також вдосконалення базисної версії програми.
Базисна версія програми.
Equation:
lw r1,100(r0) ;load A
lw r2,200(r0) ;load B
lw r3,300(r0) ;load C
lw r4,400(r0) ;load D
movi2fp f1,r1 ;convert A into floating pt
movi2fp f2,r2 ;convert B to fp
movi2fp f3,r3 ;convert C to fp
movi2fp f4,r4 ;convert D to fp
multf f5,f1,f2 ;A*B is stored into f1
movfp2I r1,f5 ;move f1 to r1
multf f6,f3,f4 ;C*D is stored into f3
movfp2I r3,f6 ;move f3 to r3
add r1,r1,r3 ;(A*B)+(C*D)
sw 500(r0), r1 ;store result at mem[500]
trap 0 ;end
Результат виконання базисної програми
Протокол роботи конвеєра
Протокол вмістимого комірок головної пам’яті
Протокол статистики
Як бачимо програма виконується за 27 цикли. Також в програмі присутні затримки конвеєра. Усунути ці затримки можна за допомогою інструкції nop, але ця інструкція є неефективною оскільки забиває операнди будь-якими значеннями. Іншим способом усунення затримок є перебудова коду програми.
Модифікована версія програми:
lw r1, 100(r0)
lw r2, 104(r0)
movi2fp f1, r1
movi2fp f2, r2
multf f5,f1,f2
lw r3, 108(r0)
lw r4, 112(r0)
movi2fp f3, r3
movi2fp f4, r4
multf f6,f3,f4
movfp2I r1,f5
movfp2I r3,f6
add r1, r1, r3
sw 116(r0), r1
trap 0
Протокол роботи конвеєра
Протокол вмістимого комірок головної пам’яті
Протокол статистики
Після перебудови коду кількість затримок стала меншою і програма виконується за меншу кількість циклів – 36.
Висновок
У даній лабораторній роботі я ознайомився з програмою під рухома кома, а також вдосконалив код базисної версії програми.