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 з курсу: «Архітектура комп’ютерних систем» на тему: «КОНКУРЕНТНЕ ВИКОНАННЯ МАШИННИХ ІНСТРУКЦІЙ» Варіант №1 Львів 2021 Мета: опанувати техніку паралельного виконання машинних інструкцій на рівні апаратури. Завдання Засобами архітектурного симулятора WinMIPS64 дослідити на прикладі фрагментів програмного коду можливості паралельного опрацювання машинних інструкцій на рівні апаратури та позитивні ефекти, що при цьому досягаються. За результатами проведених лабораторних досліджень оформити звіт та захистити його. Виконання роботи Для завдання дано наступний код програми: ;*************************************** ;*** 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 Спробуємо запустити перевірку коду з допомогою asm.exe: / Контроль коду не знайшов жодних помилок тому продовжуємо нашу роботу.Запустимо цей код у програмі симуляторі WinMips64: / Як результат, ми бачимо що наша програма відпрацювала за 33 цикли, виконуючи 6 інструкцій, тому на одну інструкцію припадає 5,5 циклів для її виконання. Також бачимо, що присутні 22 пригальмовування RAW (Read after write). Спробуємо переформатувати даний код змінивши послідовність початку виконання фунцій. Функцію ділення поставимо на 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: 7 цикл – 1 RAW / 8 цикл – 2 RAW / 10 цикл – 3 RAW / В результат, ми бачимо що наша програма відпрацювала за 29 циклів, (що на 4 цикли менше ніж у попередній), виконуючи 6 інструкцій, тому на одну інструкцію припадає 4,833 циклів для її виконання. Також бачимо, що присутні 3 пригальмовування RAW (Read after write). Результат значно кращий. Висновок Під час виконання цієї лабораторної роботи я опанував техніку паралельного виконання машинних інструкцій на рівні апаратури, провів тестування коду, покращив код для його швидкодії та добився кращих результатів, а саме: Було 33 цикли, стало 29; Було 22 RAW, стало 3; Було CPI – 5,500 , стало – 4,833.
Антиботан аватар за замовчуванням

08.04.2025 11:58

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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