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

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

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

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

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

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

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» ІКТА Кафедра ЗІ / Звіт до лабораторної роботи №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:35

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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