МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
Кафедра безпеки
інформаційних технологій
/
КОНКУРЕНТНЕ ВИКОНАННЯ МАШИННИХ ІНСТРУКЦІЙ
МЕТОДИЧНІ ВКАЗІВКИ
до лабораторної роботи № 3
з дисципліни «Архітектура комп’ютерних систем»
для студентів спеціальності 125 «Кібербезпека»
Львів 2022
Конкурентне виконання машинних інструкцій: методичні вказівки до виконання лабораторної роботи з дисципліни «Архітектура комп'ютерних систем» / Укл. Мельник В.А., Банах Р.І. – Львів, Національний університет «Львівська політехніка», 2022. – 10 с.
Укладачі: Мельник В.А., дтн, професор каф. БІТ Банах Р.І., асистент каф. БІТ.
Відповідальний за випуск:
Рецензент
Надруковано за рішенням засідання кафедри безпеки інформаційних технологій Національного університету
«Львівська політехніка» Протокол № від 2022 р.
Мета роботи
Опанувати техніку розпаралелення виконання машинних інструкцій на рівні апаратури.
Завдання
Засобами архітектурного симулятора WinMIPS64 дослідити на прикладі фрагментів програмного коду можливості паралельного опрацювання машинних інструкцій на рівні апаратури та позитивні ефекти, що при цьому досягаються. За результатами проведених лабораторних досліджень оформити звіт та захистити його.
Проаналізуйте і виконайте на стимуляторі наступний фрагмент коду:
.text
add.d f7,f7,f3
add.d f7,f7,f4
mul.d f4,f5,f6 ; WAR через спільний регістр f4
Можемо зауважити, що якщо вчасно, без затримок, почати виконання інструкції mul.d, тоді вона (за певних умов) «пережене» другу інструкцію add.d і першою запише результат до f4. щоб уникнути цього, мусимо затримати mul.d на сходинці ID.
Проаналізуйте і виконайте на стимуляторі ще один фрагмент коду:
;***************************************
;*** winMIPS64 //hazard3.s// *****
;*** (c) 2003 CA226, DCU *****
;***************************************
.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
Результати його синтаксичного контролю подано нижче.
Pass 1 completed with 0 errors
;***************************************
;*** winMIPS64 //hazard3.s// *****
;*** (c) 2005 CA226, DCU *****
;***************************************
00000000 .text
00000000 462a49c3 div.d f7,f9,f10
00000004 46232082
00000008 462439c1 mul.d f2,f4,f3 sub.d f7,f7,f4
0000000c dc01004e ld r1,78(r0)
00000010 46262900 add.d f4,f5,f6 ; WAR on f4
00000014 04000000 halt
Pass 2 completed with 0 errors Code Symbol Table
Data Symbol Table
Проведемо покроковий аналіз виконання на стимуляторі наведеного вище фрагменту коду.
/
Рис. 1. Неконвеєрний повільний виконавчий вузол ділення з рухомою комою розпочав роботу першим
/
Рис. 2. Неконвеєрний виконавчий вузол ділення рухомої коми (24 такти затримки) завантажено
/
Рис. 3. Паралельно виконуються чотири інструкції
/
Рис. 4. Сходинки МЕМ жодна інструкція ще не досягла
/
Рис. 5. Перша інструкція ділення ще виконується, а третя від кінця ld майже завершилася
/
Рис. 6. Невпорядковане/хаотичне завершення виконання інструкцій потоку
На рис. 7 показано, що утворилася небезпека WAW, тому пригальмовані add.d та halt.
/
Рис. 7. sub.d має ту саму мету, що і div.d.
/
Рис. 8. Пригальмована на першій з чотирьох виконавчих сходинок sub.d гальмує наступну за нею add.d
/
Рис. 9. Завершення div.d розблокувало конвеєр. На виконанні знаходяться віднімання і додавання
/
Рис. 10. Хаотично завершуються спочатку halt, потім рухомі віднімання та додавання
/
Рис. 11. Хаотичне завершення виконання інструкцій потоку
/
Рис. 12. Програму виконано, отримано програмні статистики
Завдання полягає у дослідженні можливості оптимізації коду програми вище та поданні рішення, яке гарантуватиме вірний порядок виконання інструкцій програми.
Контрольні питання
Як працює програма? Яким чином було проведено оптимізацію коду?
Яка різниця між R та F регістрами?НАВЧАЛЬНЕ ВИДАННЯ
Конкурентне виконання машинних інструкцій
Методичні вказівки до лабораторної роботи
з дисципліни «Адміністрування комп'ютерних систем» для студентів спеціальності 125 «Кібербезпека»
Укладачі: Мельник В.А., дтн, професор каф. БІТ Банах Р.І., асистент каф. БІТ.
Національний університет
«Львівська політехніка»
Львів 2022