Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВСТУП DLX.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
385 Кб
Скачать
☆

1.2 Завантаження тестових програм

На початку симуляції до WinDLX потрібно завантажити програми, що симулюються. Це виконують за допомогою пункту меню File / Load Code or Data. Вибирання цього пункту мишею викликає нове вікно, що містить файли із розширенням *.S. Саме ці файли завантажують до симулятора. Нагадаємо, що програма fact.s вираховує значення факторіалу цілого числа. Допоміжна програма. input.s містить процедуру читання стандартного вводу (the keyboard) та зберігає отримане ціле число в регістрі загального призначення (the general purpose register) r1 DLX процесора.

Для завантаження цих двох файлів до пам'яті симулятора потрібні наступні кроки:

  • позначити мишею файл fact.s,

  • натиснути мишею кнопку select,

  • позначити мишею файл input.s,

  • натиснути мишею кнопку select,

  • натиснути мишею кнопку load.

Послідовність натискання позначок екрану є суттєвою у визначенні коректної послідовності завантаження файлів-програм до пам'яті симулятора. Опрацювання повідомлення File(s) loaded successfully. Reset DLX? виконують натисканням клавіші OK. Після цього файли рахуються завантаженими до пам'яті симулятора. Стартові роботи завершено. Симулятор готовий до виконання програм.

1.3 Симулювання

В головному вікні симулятора бачимо шість іконок, які відповідають наступним робочим і допоміжним вікнам "Register", "Code", "Pipeline", "Clock Cycle Diagram", "Statistics" and "Breakpoints". Натискання мишкою на кожній іконці перетворює її на відчинене вікно. Далі розглядаються призначення і функції цих вікон.

1.3.1 Конвеєрне вікно (Pipeline window)

Унаочнимо внутрішню структуру конвейєра DLX процесора. Зробимо клавішею миші щиголь на іконці Pipeline. Виникне дочірнє вікно, що подає класичний п'яти сходинковий конвейєр DLX зі сходинками IF, ID, EX, MEM, WB. Отримане вікно бажано зробити ширшим, аби бачити послідовність опрацювання конвейєром стандартних і нестандартних (за часовими витратами) машинних інструкцій.

Наведений вище рисунок відтворює конвеєр DLX процесора з додатковими вузлами виконання операцій рухомої коми, а саме, рухомі addition / subtraction, multiplication плюс ціле division.

1.3.2 Кодове вікно (Code window)

Наступне вікно має назву Code window. Подвійним натисканням на його іконці можна викликати інформацію про стан пам'яті симулятора, де в межах одного рядка відтворене наступне:

  • адресу (символьно чи чисельно);

  • гексадецимальний машинний код інструкції;

  • саму інструкцію, записану асемблерною мовою.

$TEXT

0x20011000

addi r1, r0, 0x1000

Main+4

0x0c00003c

jal InpUnSigned

Аби розпочати симулювання, треба викликати Execution з меню головного вікна. Результатом є поява нового меню типу pull down. Далі робимо натискання на підфункції Single Cycle. Значно спрощує справу еквівалентне за дією натискання клавіші F7 на клавіатурі, що також спричинює один крок симуляції. Перше натискання F7 підсвічує у кодовому вікні лінію з адресою $TEXT жовтим кольором. Наступне натискання F7 викликає другий крок симулювання і змінює підсвічування першої лінії на помаранчовий колір, тоді як друга лінія отримує жовте підсвічування. Тут кольором відмічають процес просування інструкцій конвеєром DLX. Коли вікно Pipeline виявилося зачиненим, його треба відчинити подвійним натисканням на відповідній іконці. Якщо це вікно є недостатньо довгим і "приховує" частину лінії, яка відповідає за графічне подання часових витрат на виконання інструкції, тоді мишкою подовжують це вікно в горизонтальному напрямку, аби побачити, що інструкція jal InputUnsigned розташована на сходинці IF тоді, як її попередник інструкція addi r1, r0, 0x1000 пересунулася вже на другу сходинку конвеєра, а саме, на ID. Інші блоки, позначені хрестом, свідчать про те, що на відповідних їм сходинках конвейєра інструкція не викликала жодних дій.

Наступний натиск F7 змінює кольорове забарвлення кодового вікна, а саме, додається червоний колір, що свідчить про роботу третьої сходинки конвеєра з назвою intEX. Ще одне натискання F7 змінює кольорове забарвлення в цілому. Жовта лінія з'являється нижче і, ймовірно, є лише єдиною забарвленою лінією у вікні. Перегляд конвеєрного вікна інформує про те, що сходинки конвеєра IF, intEX та MEM задіяні, а сходинка ID не задіяна. Чому?