Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти та науки України
Національний університет «Львівська політехніка»
ІКТА
Кафедра ЗІ
/
Лабораторна робота №3
з дисципліни: «Архітектура комп’ютерних систем»
на тему: «КОНКУРЕНТНЕ ВИКОНАННЯ МАШИННИХ ІНСТРУКЦІЙ»
Мета роботи
Опанувати техніку розпаралелення виконання машинних інструкцій на
рівні апаратури.
Завдання
Засобами архітектурного симулятора WinMIPS64 дослідити на прикладі фрагментів програмного коду можливості паралельного опрацювання машинних інструкцій на рівні апаратури та позитивні ефекти, що при цьому досягаються. За результатами проведених лабораторних досліджень оформити звіт та захистити його.
Асемблерні інструкції до оптимізації
.text
div.d f7,f9,f10
mul.d f2,f4,f3
sub.d f7,f7,f4
ld r1,78(r0)
add.d f4,f5,f6
halt
Результат виконання інструкцій
/
Вікно статистики
/
Щоб зменшити кількість циклів можна увімкнути forwarding:
Вікно часової статистики після ввімкнення
/
/
Також варто зазначити що на 4 такті відбувається схоже ситуація, як у прикладі з методичних вказівок, а саме поки інструкція div.d не завершиться, sub.d початися не зможе. А крім цього ділення відбувається найдовше, саме тому потрібно дану інструкцію почати якнайшвидше:
.text
sub.d f7,f7,f4
div.d f7,f9,f10
mul.d f2,f4,f3
ld r1,78(r0)
add.d f4,f5,f6
halt
/
Вікно часової статистики
/
Висновок
Виконуючи дану лабораторну роботу, я опанував техніку розпаралелення виконання машинних інструкцій на рівні апаратури. Ознайомився з різними способами оптимізації асемблерних інструкцій.