Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти та науки України
Національний університет «Львівська політехніка»
Кафедра ЕОМ
/
Лабораторна робота №4
з дисципліни "Архітектура комп’ютерів, частина 2"
на тему:
«Дослідження конвеєрного виконання
інструкцій рухомої коми»
Львів-2017
Мета виконання роботи
Опанування технікою конвеєрного виконання RISC інструкцій для операндів формату рухомої коми.
Завдання
Засобами архітектурного симулятора WinMIPS64 машини з 64-розрядною RISC архітектурою MIPS64 дослідити конвеєрне виконання фрагментів машинних програм, що команди опрацювання операндів в форматі з рухомою комою. Виявити наявні залежності (небезпеки) даних і керування, оптимізувати програмний код та дослідити дію запропонованої оптимізації. За результатами проведених лабораторних досліджень оформити звіт та захистити його.
Хід виконання:
1. Програма, яка опрацьовує дані у форматі з рухомою комою
; hail.s
; Hailstone numbers iteration
; If number is odd, multiply by 3 and add 1
; If number is even, divide it by 2
; repeat this iteration until number is 1
.data
number: .word 27 ; this is input number - change it!
max: .word 0 ; max number so far
.text
start: ld r1,number(r0) ; program start
loop: andi r3,r1,1 ; test odd or even
beqz r3,even
odd: dadd r2,r1,r1 ; times 2
dadd r1,r2,r1 ; times 3
daddi r1,r1,1 ; plus 1
j over
even: dsrl r1,r1,1 ; divide by 2
over: ld r4,max(r0)
slt r3,r4,r1 ; compare with max
beqz r3,skip sd r1,max(r0) ; new max
skip: slti r3,r1,2 ; test for finished
beqz r3,loop
halt
2.Виконання програми без ввімкнення попереджень і прогнозувань переходів
/
3.Виконання програми із ввімкненням попереджень і прогнозуванням переходів
/
Висновок: на лабораторній роботі я опанував техніку конвеєрного виконання RISC інструкцій для операндів формату рухомої коми