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 КОНКУРЕНТНЕ ВИКОНАННЯ МАШИННИХ ІНСТРУКЦІЙ Мета роботи: Опанувати техніку розпаралелення виконання машинних інструкцій на рівні апаратури. Вказівки до роботи: Засобами архітектурного симулятора WinMIPS64 дослідити на прикладі фрагментів програмного коду можливості паралельного опрацювання машинних інструкцій на рівні апаратури та позитивні ефекти, що при цьому досягаються. За результатами проведених лабораторних досліджень оформити звіт та захистити його. Варіант 3 Хід роботи Виконання програми asm.exe. Вона дозволяє перевірити синтаксис програми, ще до її виконання. / Відкриємо програму WINMIPS64 і запустимо в ній файл loop.s. У вікні “Code” спостерігаємо код програми. / В результаті, програма відпрацювала за 33 цикли, виконуючи 6 інструкцій, тому на одну інструкцію припадає 5,5 циклів для її виконання. Також бачимо, що сталось 22 пригальмовування RAW (Read after write). У даному коді є проблеми, які не дозволяють паралельно виконувати усі потрібні функції. Так як функція ділення виконується за 28 кроків, адже це досить специфічний алгоритм виконання цієї задачі, то затримуючи змінні в регістрах, а саме працюючи з ними, інші функціїї не мають доступу до них. Наприклад, фунція sub чекає на комірку, яка зайнята функцією div. Так само mul займаючи досить багато часу, не дає доступу до комірки функціям sub і add. Змінивши послідовність початку виконання функцій, а саме, поставивши функцію ділення на 2 місце, mul на 4, sub на 1 та add на 3, отримаємо наступний код програми: .text sub.d f7,f7,f4 div.d f7,f9,f10 ld r1,78(r0) add.d f4,f5,f6 mul.d f2,f4,f3 halt Перевірка коду за допомогою програми asm.exe. / Запустимо цей код у програмі симуляторі WinMips64: Отримуємо перше RAW на 7 циклі: / Отримуємо 2 RAW на 8 циклі: / Отримуємо 3 RAW на 10 циклі: / Ми отримали кращий результат: бачимо, що програма відпрацювала за 29 циклів, (що на 4 цикли менше попередня), виконуючи 6 інструкцій, тому на одну інструкцію припадає 4,833 циклів для її виконання. Також бачимо, що присутні 3 пригальмовування RAW (Read after write). / Висновок: на цій лабораторній роботі я опанував техніку розпаралелення виконання машинних інструкцій на рівні апаратури.
Антиботан аватар за замовчуванням

08.04.2025 11:52

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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