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

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

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

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

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

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

Міністерство освіти та науки України Національний університет «Львівська політехніка» Кафедра ЗІ / Лабораторна робота №3 «КОНКУРЕНТНЕ ВИКОНАННЯ МАШИННИХ ІНСТРУКЦІЙ» з дисципліни «Архітектура комп’ютерних систем» Львів-2022 Мета роботи: опанувати техніку розпаралелення виконання машинних інструкцій на рівні апаратури. Завдання Засобами архітектурного симулятора 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 Наступний крок це перевірити синтаксис програми ще до симулювання за допомогою утиліти asm.exe: / Симулювання Синтаксис є коректним. Далі відкриємо програму WINMIPS64 і запустимо в ній нашу програму та симулюємо виконання інструкцій та отримаєм такий результат. / / Статистика після виконання програми: Загальне число виконаних циклів становить 36. СРІ = 6.000 – це середнє число тактових інтервалів (cycles per instruction), що припало на виконання кожної інструкції програми. RAW Stalls (read after write) = 24 Також, щоб зменшити кількість циклів, можна увімкнути Еnable Forwarding / Статистика після ввімкнення Еnable Forwarding: Загальне число виконаних циклів становить 33. СРІ = 5.500 – середнє число тактових інтервалів. RAW Stalls (read after write) = 22 Перейдемо, до головної оптимізації коду У даному коді є проблеми, які не дозволяють паралельно виконувати усі потрібні функції. Так як функція ділення виконується за 28 кроків, це досить специфічний алгоритм виконання, то затримуючи змінні в регістрах, а саме працюючи з ними, інші функціїї не мають доступу до них. Тому я зробити так званий рефакторинг коду змінивши послідовність початку виконання інструкцій. .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 Наступний крок це перевірити синтаксис програми ще до симулювання за допомогою утиліти asm.exe: / Синтаксис є коректним. Перейдемо до симулювання та отримаєм ось такий результат: / / Статистика після виконання програми: Загальне число виконаних циклів становить 29. СРІ = 4.833 – це середнє число тактових інтервалів (cycles per instruction), що припало на виконання кожної інструкції програми. RAW Stalls (read after write) = 0 Висновок Під час виконання цієї лабораторної роботи я опанував техніку розпаралелення виконання машинних інструкцій на рівні апаратури, провів тестування коду даного за завданням, покращив код для його швидкодії та отримав досить хороший результат, а саме: На початку було 33 цикли, стало 29; На початку було 22 RAW, стало 0; На початку CPI – 5,500 , стало – 4,833.
Антиботан аватар за замовчуванням

08.04.2025 12:04-

Коментарі

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

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

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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