Практика роботи з архітектурним симулятором WinMIPS64
Автор: a_ya_na_koni • Ноябрь 26, 2022 • Лабораторная работа • 1,001 Слов (5 Страниц) • 177 Просмотры
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
Кафедра БІТ
ЗВІТ
до лабораторної роботи №1
з курсу: «Архітектура комп’ютерних систем»
на тему: «Практика роботи з архітектурним симулятором WinMIPS64»
Варіант № 5
Виконав:
ст. гр. КБ-38
Гродецький К. С.
Прийняв:
асист. каф. БІТ
Банах Р. І.
Львів – 2022
Мета роботи: опанування технікою роботи з архітектурним симулятором WinMIPS64 машини з 64-розрядною RISC архітектурою MIPS64.
Завдання: дослідити симулюванням виконання заданих викладачем машинних окремих інструкцій і пар інструкцій. За результатами проведених лабораторних досліджень оформити звіт та захистити його.
Порядок виконання роботи
Спочатку через стандартний текстовий редактор створюємо програмний файл, subtraction.s. В цій програмі міститиметься код для MIPS64, що вираховує різницю двох цілих чисел A і B, згідно з варіантом завдання це числа 69 і 15. Числові коди спочатку вибиратимуть з комірок пам’яті за адресами А і В до регістрів, потім виконується операція віднімання на регістрах і, нарешті, записуватимуть отриману різницю до комірки пам’яті за адресою С. Текст асемблерної програми, що обчислює різницю двох чисел відповідно до варіанту лабораторної роботи (рис.1).
Рис. 1. Текст асемблерної програми
До старту симуляції, до пам’яті симулятора завантажуємо вже синтаксично перевірену програму, прервірку робимо за допомогою утиліти asm.exe. Це виконуємо через меню File/Open. Тепер програма завантажена до пам’яті і симулятор готовий до функціонування (рис. 2).
Рис. 2. Програма завантажена до симулятора WinMIPS64
Перейдемо до покрокового симулювання. На першому етапі, натиснувши Execute/Single Cycle або F7 на клавіатурі, симулятор виконає перший цикл програми (рис. 3). Як бачимо з рисунку 3 у вікні Code забарвлення першої інструкції змінюється на блакитну і вже друга інструкція забарвлена жовтим. Таке забарвлення вказує на сходинку конвеєра, де знаходиться відповідно забарвлена інструкція:
• жовтий для IF (вибирання інструкції з пам’яті інструкцій, точніше з кеша інструкцій), блакитний для ID (декодування інструкції і вибирання операндів безпосередніх і з регістрового файла);
• червоний для EX (виконання інструкції, 1 такт для фіксованих кодів і більше тактів для рухомих кодів);
• зелений для MEM (запис/читання до/з комірок пам’яті даних);
• пурпурний для WB (запис результату до регістру регістрового файлу).
Якщо ж на цьому рисунку глянути на сходинку конвеєра IF у вікні Pipeline то, можна побачити, що друга інструкція програми ld r5, B(r0) з’явилася на ній, в той час, як перша інструкція ld r4, A(r0) пересунулася на другу сходинку ID конвеєра.
Рис. 3. Виконання першого циклу програми
На другому етапі, після натискання на F7, у вікні Code відбудеться зміна забарвлення і третя сходинка конвеєра EX фарбується у червоний колір (рис. 4). Також на цьому етапі до конвеєра заходить інструкція dsub r3, r4, r5 зараз вона на жовтій сходинці IF.
На третьому етапі знову змінюється забарвленість вікна Code, четверта сходинка конвеєра MEM фарбується у зелений колір (рис. 5). До конвеєра надходить інструкція sd r3, C(r0) у жовту сходинку IF.
На наступному етапі кожна сходинка конвеєра отримує нову інструкцію. З пам’яті отримуємо новий, ще не записаний до регістру призначення операнд (випередження), а далі паралельно виконуємо додавання
...