DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Конкурентне виконання машинних інструкцій

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Інститут комп’ютерних наук та інформаційних технологій
Факультет:
КН
Кафедра:
Кафедра електронних обчислювальних машин

Інформація про роботу

Рік:
2012
Тип роботи:
Лабораторна робота
Предмет:
Архітектура комп'ютерів
Група:
КН-31
Коротко про документ

Про що ця робота

У роботі досліджується конкурентне виконання машинних інструкцій за допомогою симулятора WinMIPS64. Розглядаються особливості невпорядкованого завершення та методи запобігання конфліктам у конвеєрі.

У роботі розглядаються

  • Конкурентне виконання інструкцій
  • Конвеєр процесора
  • Невпорядковане завершення
  • Переназв регістрів
  • Симулятор WinMIPS64
  • Архітектура комп'ютерів

Зміст і розділи

  1. Мета роботи
  2. Аналіз фрагментів коду
  3. Результати синтаксичного контролю
  4. Дослідження виконання інструкцій
Для кого:Студенти технічних спеціальностей вищих навчальних закладів.
Викладачі:Бачинський Р.В.

Ключові поняття

інструкція рухомої коминевпорядковане завершенняregister renamingWinMIPS64синтаксичний контрольhazardстатистика

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Національний університет “Львівська політехніка” Кафедра ЕОМ Лабораторна робота №3 КОНКУРЕНТНЕ ВИКОНАННЯ МАШИННИХ ІНСТРУКЦІЙ Мета: дослідження конкурентного виконання машинних інструкцій Ми дозволимо випускати на виконання інструкції рухомої коми зі сходинки ID тоді, коли це стає можливим. Така інструкція може продовжити виконання у власному конвеєрі виконання операції рухомої коми або призупинитися через неготовність її операндів. Обрана нами стратегія дозволяє продемонструвати переваги невпорядкованого завершення виконання (out-of-order completion), але вона також може спричинити небезпеку WAR конвеєрного виконання. Тут може допомогти техніка переназв регістрів (register renaming), яку треба досконально розуміти. Наприклад, таке може статися в наступному фрагменті коду: .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. Structural hazards arise at the MEM stage bottleneck, as instructions attempt to exit more than one of the execute stage piplelines at the same time. Просте правило запобігання небезпек звучить так: довгі інструкції виконують першими. Нехай маємо фрагмент коду: ;*************************************** ;*** 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 mul.d f2,f4,f3 00000008 462439c1 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  Рис. – Неконвеєрний повільний виконавчий вузол ділення з рухомою комою розпочав роботу першим  Рис. – Неконвеєрний виконавчий вузол ділення рухомої коми ( 24 такти затримки) завантажено  Рис. – Паралельно виконуються чотири інструкції (ясно, що з невпорядкованим завершенням)  Рис. – Паралельне виконання продовжується, сходинки МЕМ жодна інструкція ще не досягла  Рис. – Перша інструкція ділення ще виконується, а третя від кінця ld майже завершилася  Рис. – Невпорядковане (кажуть, хаотичне) завершення виконання інструкцій потоку  Рис. – sub.d має ту саму мету, що і div.d. Утворилася ситуація WAW, тому пригальмовані add.d та halt Рис. – Пригальмована на першій з чотирьох виконавчих сходинок sub.d гальмує наступнуза нею add.d hh  Рис. – Завершення div.d розблокувало конвеєр. На виконанні знаходяться віднімання і додавання  Рис. – Хаотично завершуються спочатку halt, потім рухомі віднімання та додавання  Рис. - Хаотичне завершення виконання інструкцій потоку (передтеча методу динамічного виконання)  Рис. – Програму виконано, отримано програмні статистики
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!