Практика роботи з архітектурним симулятором WINMIPS64

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

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

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

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

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» ІКТА Кафедра ЗІ / Звіт до лабораторної роботи №1 з курсу: «Архітектура комп’ютерних систем» на тему: «Практика роботи з архітектурним симулятором WINMIPS64» Мета роботи Опанування технікою роботи з архітектурним симулятором WinMIPS64 машини з 64-розрядною RISC архітектурою MIPS64. Завдання Виконати пункти 2 та 3 згідно варіанту поданого нижче. Для операції віднімання використати інструкцію dsub. Варіант Число А Число В Арифметична операція  24 31 2 -   Початок виконання роботи     .data A:  .word 31 B:  .word 2 C:  .word 0     .text main:     ld r4,A(r0)     ld r5,B(r0)     dsub r3,r4,r5     sd r3,C(r0)     halt Код програми мовою асемблера Секція .data містить дані, над якими програма виконує операцію. В даному випадку маємо три змінні зі значеннями 31, 2 та 0. Секція main містить власне виконуваний код: Інструкція LD rt, offset(base) завантажує подвійне машинне слово з пам’яті в вказаний регістр rt значення з пам’яті зі зсувом offset. Інструкція DSUB rd, rs, rt виконує віднімання значень регістрів rs та rt зі збереженням результату в регістр rd. Інструкція SD rt, offset(base) виконує протилежну до LD функцію, тобто зберігає значення регістру в комірку пам’яті зі зсувом offset. Інструкція HALT переводить процесор в стан HALT. Pass 1 completed with 0 errors 00000000              .data 00000000 000000000000001f A:  .word 31 00000008 0000000000000002 B:  .word 2 00000010 0000000000000000 C:  .word 0 00000000              .text 00000000          main: 00000000 dc040000     ld r4,A(r0) 00000004 dc050008     ld r5,B(r0) 00000008 0085182e     dsub r3,r4,r5 0000000c fc030010     sd r3,C(r0) 00000010 04000000     halt Pass 2 completed with 0 errors Code Symbol Table                 main = 00000000 Data Symbol Table                    A = 00000000                    B = 00000008                    C = 00000010 Результат перевірки Бачимо, що програма пройшла процес перевірки без помилок. Відкриваємо симулятор WinMIPS64 та завантажуємо в нього написану програму. Починаємо потактове виконання: Такт 0 / Інструкція за адресою 0000 знаходиться на етапі зчитування. Такт 1 / Інструкція за адресою 0000 знаходиться на етапі декодування, а інструкція за адресою 0004 тільки на етапі зчитування. Такт 2 / Інструкції продовжують рухатися в конвеєрі, інструкція за адресою 0000 перейшла у виконання. Цей процес є послідовним. Такт 3 / Інструкція за адресою 0000 на цьому етапі взаємодіє з основною пам’яттю, а саме виконує зчитування комірки зі зсувом 0000, але запис в регістр R4 відбудеться на наступному такті. Такт 4 / Бачимо, що значення регістру R4 змінилося з 0х00 на 0x1f (31). Друга інструкція LD за адресою 0004 здійснила взаємодію з основною пам’яттю та змінить регістр R5 на наступному такті. Такт 5 / Регістр R5 змінив значення з 0x00 на 0х02 (2), а інструкція DSUB за адресою 0008 перейшла на етап виконання та зупинилася в RAW Stall. Такт 6 / Регістр R3 містить результат роботи інструкції за адресою 0008. Такт 7 / Інструкція LD за адресою 000с отримає доступ до регістру R3 та на наступному такті перенесе значення в комірку пам’яті зі зсувом 0010. Такт 8 / Інструкція за адресою 000c виконала звертання до пам’яті та на наступному такті покине конвеєр, в результаті виконання цієї інструкції комірка пам’яті зі зсувом 0010 змінила значення з 0х00 на 0х1d (29), що відповідає передбачуваному результату (31-2=29). Такт 9 / Виконання інструкції HALT за адресою 0010, виконання програми завершено, процесор переведено в режим HALT. Такт 10 / Конвеєр очищено. Загалом, на виконання програми було використано 10 тактів, програма складалася з 5 операцій та чотирьох інструкцій. Оскільки програма виконувалася з увімкненим випередженням, тобто такти могли виконуватися без затримок, присутніх в реальному процесорі, то час виконання скоротився. З вимкненим випередженням програма виконується за 13 тактів, а діаграма тактів виглядає наступним чином: / Висновок На цій лабораторній роботі я ознайомився з середовищем симулятора процесора з RISC-набором інструкцій архітектури MIPS64, створив та покроково виконав програму, яка виконує віднімання двох чисел, описав кожен процес та стан конвеєра в такті.
Антиботан аватар за замовчуванням

08.04.2025 12:04-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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