DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

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

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

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

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

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

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

Міністерство освіти та науки України Національний університет «Львівська політехніка» Кафедра БІТ / Лабораторна робота №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 вже буде проведено дію і записано в нього значення, тому для ділення це заважати не буде. Висновок: виконавши дану лабораторну роботу, я опанував техніку розпаралелення виконання машинних інструкцій на рівні апаратури.
Антиботан аватар за замовчуванням

08.04.2025 12:02

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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