Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти і науки України
Національний університет «Львівська політехніка»
Кафедра ЕОМ
/
Звіт
до лабораторної роботи №3
з дисципліни "Архітектура комп’ютера"
Мета: опанування технологій обробки потоку інструкцій конвеєром універсальних процесорів та отримання навичок з кількісного оцінювання ефективності мікроархітектур цих процесорів.
Завдання: Скласти асемблерну програму обчислення виразу
res = (a+b)*2 “Рухома кома”. Дослідити виконання цієї програми симулятором DLX. Пояснити та проаналізувати інформацію, отриману в результаті виконання обчислень за програмою.
Хід роботи:
Текст базисної версії асемблерної програми:
.data(0x10) .float 5.125 .float 4.5 .float 2.0 .text lf f2,0x10(r1) ;get A value lf f3,0x14(r1) ;get B value lf f4,0x18(r1) addf f5,f2,f3 ;update A=A+B multf f5,f5,f4 ;update A=(A+B)*2 sf 0x10(r1),f5 ;store new A trap 0 ;end
В результаті виконання базисної програми виникла затримка конвеєра через операцію множення, оскільки вона займає багато тактів(рис.1). Спробуємо усунути ці затримки.
/
Рис.1 Протокол роботи конвеєра базисної програми
/
Рис.2 Результат в пам’яті
Текст удосконаленої базисної версії асемблерної програми:
.data(0x10) .float 5.125 .float 4.5 .float 2.0 .text lf f2,0x10(r1) ;get A value nop lf f3,0x14(r1) ;get B value nop lf f4,0x18(r1) nop nop addf f5,f2,f3 ;update A=8A+B nop nop multf f5,f5,f4 ;update A=8A+B nop nop nop nop nop nop sf 0x10(r1),f5 ;store new A trap 0 ;end
Після удосконалення базисної програми видно, що усі конвеєрні затримки зникли. (рис.3).
/
Рис.3 Протокол роботи конвеєра після удосконалення базисної програми
Висновок: Під час виконання даної лабораторної роботи, я опанував технології обробки потоку інструкцій конвеєром універсальних процесорів та отримав навички з кількісного оцінювання ефективності мікроархітектур цих процесорів.