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

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

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

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

КОНКУРЕНТНЕ ВИКОНАННЯ МАШИННИХ ІНСТРУКЦІЙ

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

ВУЗ:
Національний університет Львівська політехніка
Інститут:
ООП
Факультет:
КН
Кафедра:
Не вказано

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

Рік:
2022
Тип роботи:
Лабораторна робота
Предмет:
Архітектура комп ютерних систем

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

Міністерство освіти та науки України Національний університет «Львівська політехніка» Кафедра БІТ / Лабораторна робота №3 «КОНКУРЕНТНЕ ВИКОНАННЯ МАШИННИХ ІНСТРУКЦІЙ» з дисципліни «Архітектура комп'ютерних систем» Варіант - 9 Мета роботи – опанувати техніку розпаралелення виконання машинних інструкцій на рівні апаратури. Завдання Засобами архітектурного симулятора 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 Стан програми перед початком виконання інструкцій / Такт 4 / На даному такті отримаємо затримку виконання інструкції sub.d, оскільки вона використовує регістр f7. Для цього їй потрібно дочекатися виконання інструкції div.d, метою якої є запис значення у регістр f7. Такт 5 / На даному етапі маємо затримку також й інструкції add.d, оскільки інструкція sub.d досі в черзі і буде доти, доки не виконаються ще 21 такт виконання інструкції div.d. Кінець виконання програми / Вікно статистики / Як бачимо, на виконання усіх інструкцій пішло 33 такта із 22 RAW затримками. Перейдімо до оптимізованого коду. Асемблерні інструкції .text sub.d f7,f7,f4 div.d f7,f9,f10 ld r1,78(r0) mul.d f2,f4,f3 add.d f4,f5,f6 halt Стан програми перед початком виконання інструкцій / Кінець виконання програми / Вікно статистики / При зміні порядку виконання функцій на виконання усіх піде уже 29 тактів. Це залежить від того, які регістри використовують інструкції. Перевіримо це на прикладі інструкцій sub.d i div.d, div.d, для запису у регістр f7 використовує значення у регістрах f9 і f10, sub.d, в свою чергу, для запису у той же регістр f7 також має використати значення у f7 та f4. Оскільки sub.d використовує значення регістр f7, то для початку її виконання над цим регістром не повинно проводитися ніяких дій. Тому ця інструкція почне своє виконання лише після div.d, яка проводить дію ділення і вкінці запише значення у цей регістр. Якщо інструкція sub.d почне своє виконання перед div.d, то вони зможуть виконуватися паралельно, адже для виконання ділення потрібно 24 такти, а віднімання – 4, тому над регістром f7 вже буде проведено дію і записано в нього значення, тому для ділення це заважати не буде. Висновок: виконавши дану лабораторну роботу, я опанував техніку розпаралелення виконання машинних інструкцій на рівні апаратури.
Допоможи студентському архіву

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

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

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

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

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

Admin

26.02.2023 12:38

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