Частина тексту файла (без зображень, графіків і формул):
Національний університет «Львівська політехніка»
ІКТА кафедра БІТ
/
ЗВІТ
до лабораторної роботи №4
КОНКУРЕНТНЕ ВИКОНАННЯ МАШИННИХ ІНСТРУКЦІЙ
Мета роботи: Опанування технікою конвеєрного виконання RISC інструкцій для операндів формату рухомої коми.
Вказівки до роботи: Засобами архітектурного симулятора WinMIPS64 машини з 64-розрядною RISC архітектурою MIPS64 дослідити конвеєрне виконання фрагментів машинних програм, що команди опрацювання операндів в форматі з рухомою комою. Виявити наявні залежності (небезпеки) даних і керування, оптимізувати програмний код та дослідити дію запропонованої оптимізації. За результатами проведених лабораторних досліджень оформити звіт та захистити його.
Варіант 3
Хід роботи
Виконання програми asm.exe. Вона дозволяє перевірити синтаксис програми, ще до її виконання.
/
Відкриємо програму WINMIPS64 і запустимо в ній файл main.s.
/
/
/
/
В результаті, програма відпрацювала і за 70 циклів сталось 18 пригальмовування RAW (Read after write).
У даному коді є проблеми, які не дозволяють паралельно виконувати всі потрібні функції. Додамо інструкції nop для невеликої затримки в програмі. Це дасть змогу уникнути RAW.
Змінений код:
; 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
.text
start: ld r1,number(r0) ; program start
loop: andi r3,r1,1 ; test odd or even
nop
beqz r3,even
odd: dadd r2,r1,r1 ; times 2
dadd r1,r2,r1 ; times 3
daddi r1,r1,1 ; plus 1
j skip
even: dsrl r1,r1,1 ; divide by 2
skip: slti r3,r1,2 ; test for finished
nop
beqz r3,loop
halt
/
/
/
/
Кількість пригальмовувань RAW на 70 циклів зменшилась до 1 з 18.
Висновок: на цій лабораторній роботі я опанував техніку конвеєрного виконання RISC інструкцій для операндів формату рухомої коми.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!