МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»
ІКТА
Кафедра БІТ
ЗВІТ
до лабораторної роботи №1
з курсу: “Архітектура комп’ютерних систем”
на тему: “Практика роботи з архітектурним симулятором WinMIPS64”
Варіант - 16
Львів - 2022
Мета роботи:
Опанування технікою роботи з архітектурним симулятором WinMIPS64 машини з 64-розрядною RISC архітектурою MIPS64
Вказівки до роботи:
Дослідити симулюванням виконання заданих викладачем машинних окремих інструкцій і пар інструкцій. За результатами проведених лабораторних досліджень оформити звіт та захистити його. Симулятор використовує операційну систему Windows.
Виконання роботи
Спочатку відкриваємо симулятор WinMIPS64, інтерфейс якого зображено на рисунку 1. Тут ми бачимо, що він поділився на 6 екранів: Cycles, Registers, Statistic, Pipeline, Data, Code.
/
Рис. 1. Інтерфейс WinMIPS64
Далі нам потрібно відкрити файл sum.s, в якому зображено код. В текстовому редакторі, написана асемблерна програма до першої лабораторної роботи (рис. 2). Змінюємо дані на задані в нашому варіанті
/
Рис. 2. Текст програми
Після відкриття програми, на рисунку 3 побачимо числові значення та сам код.
/
Рис. 3. Основні зміни в інтерфейсі
Після того як побачили зміни в інтерфейсі симулятора будем використовувати параметр симуляції, в якому ми можемо його легко застосувати натиснути на кнопку F7, або зайти у вкладку Execute і відкрити опцію Single Cycle.
Після чого на рисунку 4, ми побачимо результат, після першого циклу.
/
Рис. 4. Результат роботи першого циклу
Після виконання дії першого циклу, можемо побачити зміну кольору та місцезнаходження для інструкції А, а також інструкції В. За допомогою вікна Cycles, ми зможемо побачити наступні дії, що будуть відбуватися при проходженні наступних циклів.
Оскільки, в 2-4 циклах, у нас все відбувається однаково, ми почнемо описувати зразу п’ятий цикл.
/
Рис. 5. П’ятий цикл
Після того, як наша інструкція А завершить свій шлях, вона буде записана в наш реєстр. Значення інструкції, яке було записане в r4, яке було на рисунку 2, було записано саме в ту комірку нашого реєстру.
У вкладці Pipeline, dsub досі має червоний колір, через те, що інструкція В, не завершила свій шлях на конвеєрі. Відповідно через це, у вкладці Cycles ми можемо помітити те, що ех має і другу комірку RAW, що означає зупинку.
/
Рис. 6. Шостий цикл
Після виконання шостого циклу, нарешті виконується функція dsub r3, r4, r5. А результат програми йде в комірку r3.
/
Рис. 7. Сьомий цикл
У сьомому циклі інструкція halt, вже уведена до конвеєра, спричинює ефект “закриття” конвеєра, а сам конвеєр поступово спорожнюється, від сходинки IF до сходинки WB.
/
Рис. 8. Результат програми
У десятому циклі виконання програми, ми можемо побачити завершення її виконання, витративши 10 тактових циклів на виконання 5 циклів.
Наступним нашим кроком буде початок використання параметру Forwarding, а також початок роботи з виконання інструкцій. Інструкція dsub, зупинилась перед сходинкою EX, це спричинено тим, що для її виконання потрібно спочатку завершити інструкції A та B, але так, як вони ще не завершенні повністю, то виконання інструкції dsub неможливе. Інструкції A та B, виконуються довше, оскільки параметр Forwarding, який ми вимкнули, отримував вміст аргументу, а далі паралельно виконував додавання нового аргументу і в той самий час записував цей операнд до реєстру файлу. саме тому виконання інструкцій вимагає більше циклів.
Після того, як ми проводимо виконання шостого циклу, інструкції A та B будуть виконані і інструкція dsub, просувається далі по конвеєру, на сходинку EX, що зображена на рисунку 11.
/
Рис. 9. Шостий цикл без увімкненого параметру Forwarding
Після виконання програмою інструкції dsub, на конвеєрі появиться нова функція sd. (Рис. 10). Кількість циклів, що знадобилась для виконання інструкції dsub – 9. У нас вийшло досить багато циклів, через зупинки в конвеєрі, які зображені нижче на рисунку 10.
/
Рис. 10. Початок виконання інструкції sd
Після того, як інструкція sd завершить свою роботу, у сходинку EX перейде інструкція halt, яка виконає завершення роботи конвеєра, після чого робота буде завершеною за 13 циклів.
/
Рис. 11. Завершення роботи програми
Висновок: Під час виконання лабораторної роботи отримав знання, щодо виконання інструкцій та користуванням конвеєру, ознайомився з роботою параметру Forwarding, отримав досвід роботи з симулятором WinMIPS64. Виконав роботу за допомогою та без допомоги параметру Forwarding.