Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти та науки України
Національний університет «Львівська політехніка»
ІКТА
Кафедра ЗІ
/
Лабораторна робота №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
Результат виконання інструкцій
/
Вікно статистики
/
Для зменшення кількості циклів та підвищення CPI, увімкнемо forwarding:
Вікно часової статистики після ввімкнення
/
/
На 5 циклі відбувається RAW stall, через те, що, поки інструкція div.d не закінчить свою дію, інструкція sub.d не зможе розпочатись. Оскільки ділення відбувається найповільніше, дану інструкцію потрібно розпочати щонайшвидше, після інструкції sub.d.
Оптимізовані інструкції:
.text
sub.d f7,f7,f4
div.d f7,f9,f10
mul.d f2,f4,f3
add.d f4,f5,f6
ld r1,78(r0)
halt
/
Вікно часової статистики
/
Висновок
Виконуючи дану лабораторну роботу, я опанував техніку розпаралелення виконання машинних інструкцій на рівні апаратури. Ознайомився з різними способами оптимізації асемблерних інструкцій.