Дослідження макроалгоритмів та мікроалгоритмів виконання машинних інструкцій

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

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

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

Рік:
2012
Тип роботи:
Лабораторна робота
Предмет:
Інші
Група:
КІ

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” Кафедра ЕОМ / Лабораторна робота № 2 Дослідження макроалгоритмів та мікроалгоритмів виконання машинних інструкцій. Мета роботи: зрозуміти і дослідити макроалгоритм та мікроалгоритм виконання кожної машинної інструкції машини Ноймана. Завдання: покроковим режимом протестувати виконання кожної машинної інструкції, проаналізувати і пояснити отримані результати, потактовим режимом протестувати поокреме виконання кожної машинної інструкції, проаналізувати і пояснити отримані результати, скласти звіт з виконання лабораторних досліджень та захистит. В покроковому (по-інструкційному, покомандному) режимі виконання програма може містити навіть одну машинну інструкцію. Її виконують одноразовим натисканням влавіші S. Перезапустимо симулятор та уведемо до нульової комірки пам’яті машинну інструкцію обчислення модуля різниці, тобто, дослідимо алгоритм виконання машинної інструкції віднімання. При цьому сплануємо використання пам/яті, до якої треба увести код машинної інструкції, коди операндів і виділити місце для запису результату. Наприклад, операнди розташуємо в комірках з адресами 13 і 14, а результат – в комірці з адресою 15. Код інструкції запишемо до комірки з нульовою адресою. Нагадаємо, що в симуляторі покроковий режим має назву ШАГ. / Рис. 3.1 – Стан симулятора з інструкцією віднімання [ - A1 A2 A3 чи – 1310 1410 1510]. Отже, наказали відняти від вмістимого комірки 13 вмістиме комірки 14, а модуль результату записати до комірки 15. Іншими словами, наказали обчислити модуль mod (7 – 52) = ?. Після одноразового натискання на клавішу S отримуємо наступний стан симулятора: / Рис. 3.2 – Стан симулятора з інструкцією віднімання [ - A1 A2 A3 чи – 1310 1410 1510]. Отже, наказали відняти від вмістимого комірки 13 вмістиме комірки 14, а модуль результату записати до комірки 15. Коректно обчислили mod (7 – 52) = 45. Дослідження алгоритму виконання інструкції віднімання завершено. В покроковому (інші назви: поінструкційний, покомандний режим) режимі виконання окремої машинної інструкції досліджують мікроалгоритм виконання цієї інструкції. Якщо прийняти до уваги, що в класі універсальних машин алгоритми програмують, програми завантажують до комп’ютерів і ними виконують, то зараз вийде наступне. 1. Програми складають з машинних інструкцій. Кожна інструкція має свій алгоритм виконання і цей алгоритм має точно уявляти системний програміст, що пише програму машинним кодом (як не дивно, але таке трапляється і трапляється не так зрідка). Алгоритми виконання кожної окремої машинної інструкції, що сприймає програміст, називають макроалгоритмами. 2. Для комп’ютерного інженера кожний макроалгоритм, особливий для кожної машинної інструкції, теж потрібно «запрограмувати», тобто, в певній формі записати «програму», що реалізує макроалгоритм виконання тої чи іншої машинної інструкції. Це подібно до програмування, але є іншим. 3. Кажимо, що програміст програмує задачу, а комп’ютерний інженер (мікропрограміст) мікропрограмує макроалгоритм виконання машинної інструкції. Виконання однієї такої мікропрограми є для програміста еквівалентним виконанню однієї машинної інструкції. Якщо програміст розуміє, як поокремі машинні інструкціями складають цілістну програму, то мікропрограміст цим не цікавиться. Задача мікропрограміста - надати в розпорядження програміста ефективний за певними критеріями набір машинних інструкцій (кажуть, множину машинних інструкцій). Наприклад, множина з вісьми машинних інструкцій симулятора Кроха і його дуже обмежена пам’ять в 16 15-розрядних комірок дозволяє створити для нього компілятор мови Паскаль. Отже, технології програмування комп’ютерів і їхнього проектування (створення мікрокодів для кожної машинної інструкції) є досить спорідненими. 4. Коли програми складені з машинних інструкцій (команд), тоді кожну машинну інструкцію складають з мікрокоманд, що всі разом утворюють мікропрограму виконання певної машинної інструкції команди). / Рис. 4.1 – Машина Ноймана з машинною інструкцією пересилання в нульовій комірці пам’яті та оперендом на пересилання в 14 комірці. / Рис. 4.2 – Стан машини Ноймана після натиснення клавіші R вибору режиму з подальшим вибором режиму ТАКТ. МК1: memory(0000) → IR. / Рис. 4.3 – Натиснемо клавішу Т (такт) і отримаємо цей стан машини Ноймана, коли виконалася друга мікродія мікропрограми виконання машинної інструкції пересидання. МК2: PC + 1 → PC. / Рис. 4.4 – Ще раз натиснемо клавішу Т (такт) і отримаємо цей стан машини Ноймана. МК3: memory(1110) → ACC. / Рис. 4.5 – Ще раз натиснемо клавішу Т (такт) і отримаємо цей стан машини Ноймана. Четвертою мікрокомандою мікропрограми бінарний код операнда переслано з акумулятора до цільової комірки пам’яті з адресою 15 (11112). Виконання інструкції пересилання завершено так само, як завершено виконання її мікропрограми. Отже, маємо четверту і завершальну мікрокоманду мікропрограми виконання машинної інструкції пересилання: МК4: ACC → memory(1111). / Рис. 4.6 – Якщо по завершенню мікропрограми ще раз натиснути клавішу Т (такт), тоді отримаємо цей стан машини Ноймана з виконаною першою мікрокомандою мікропрограми виконання машинної інструкції, яку містить перша комірка пам’яті. Нехай там маємо нульове сміття (ми це не писали, машина Ноймана сприймає це сміття за бінарний код машинної інструкції і починає його виконувати. Проте виконання наступної машинної інструкції є іншою історією. Що нас зараз не цікавить. В результаті ми отримали наступну мікропрограму виконання машинної інструкції пересилання: МК1: memory(0000) → IR. МК2: PC + 1 → PC. МК3: memory(1110) → ACC. МК4: ACC → memory(1111). Цим дослідження мікропрограми виконання машинної інструкції пересилання вмістимого однієї комірки пам’яті до іншої завершено. Варіант завдань на лабораторну роботу №14 Створити програму у машинних кодах для обчислення виразу згідно наведених варіантів. Результат виконання має виводитися у вікно результату. Для змінних та констант визначити відповідні комірки пам’яті. r =100x-101x-…-119x Результат виконання програми / Висновок: я зрозумітв і дослідив макроалгоритм та мікроалгоритм виконання кожної машинної інструкції машини Ноймана
Антиботан аватар за замовчуванням

25.11.2012 18:11-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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