Частина тексту файла (без зображень, графіків і формул):
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
Кафедра ЗІ
/
Звіт
до лабораторної роботи №3
з курсу: «Архітектура комп’ютерних систем»
на тему: «Конкурентне виконання машинних інструкцій»
Мета роботи: опанувати техніку розпаралелення виконання машинних інструкцій на рівні апаратури.
Завдання
Засобами архітектурного симулятора WinMips64 дослідити на прикладі фрагментів програмного коду можливості паралельного опрацювання машинних інструкцій на рівні апаратури та позитивні ефекти, що при цьому досягаються. За результатами проведених лабораторних досліджень оформити звіт та захистити його.
Виконання роботи
Для завдання нам наданий код:
/
Запускаємо перевірку синтаксису за допомогою команди asm.exe:
/
Отримуємо результат і бачимо, що помилок в коді не знайдено. Можемо запускати код в симуляторі WinMips64.
/
Як результат, бачимо що програма відпрацювала 33 цикли виконуючи 6 інструкцій тому, що на 1 інструкцію припадає 5.5 циклів на її виконання. Також, наша програма виконала 22 RAW пригальмування.
Спробуємо змінивти послідовність початку виконання функцій. Функцію ділення поставимо на 2 місце, mul на 4, sub на 1 та add на 3. І отримаємо наступний код програми:
/
Перевіримо цей код за допомогою команди asm.exe:
/
Переконалися що перевірка пройшла успішно.
Запускаємо наш відкоректований код в симуляторі WinMips64.
Перше RAW пригальмування в нас відбувається на 7 циклі.
/
8 цикл – 2 RAW
/
9 цикл – 3 RAW
/
В результаті, ми бачимо що наша програма відпрацювала 29 циклів (що на 4 цикли менше, ніж попередній), виконуючи 6 інструкцій тому, що на одну інструкцію в нас припадає 4,833 циклів. Також бачимо, що відбулося 3 RAW пригальмування. Спостерігаємо результат значно кращий.
Висновки: на даній лабораторній роботі я опанувала техніку розпаралелення виконання машинних інструкцій на рівні апаратури, провела тестування коду даного в завданні та покращила код для його швидшої дії.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!