Лабораторна робота №2

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

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

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

Рік:
2015
Тип роботи:
Лабораторна робота
Предмет:
Архітектура комп’ютерів та комп’ютерних систем
Група:
КІ З
Варіант:
3

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

Міністерство освіти і науки України Національний університет “Львівська політехніка” Кафедра «ЕОМ» Лабораторна робота №2 з предмету “Архітектура комп’ютерів” на тему: «Дослідження макроалгоритмів та мікроалгоритмів виконання машинних інструкцій» Мета: зрозуміти і дослідити макроалгоритм та мікроалгоритм виконання кожної машинної інструкції машини Ноймана. Завдання: покроковим режимом протестувати виконання кожної машинної інструкції, проаналізувати і пояснити отримані результати, потактовим режимом протестувати поокреме виконання кожної машинної інструкції, проаналізувати і пояснити отримані результати, скласти звіт з виконання лабораторних досліджень та захистити його. Теоретичні відомості В покроковому (інші назви: поінструкційний, покомандний режим) режимі виконання окремої машинної інструкції досліджують мікроалгоритм виконання цієї інструкції. Якщо прийняти до уваги, що в класі універсальних машин алгоритми програмують, програми завантажують до комп’ютерів і ними виконують, то зараз вийде наступне. 1. Програми складають з машинних інструкцій. Кожна інструкція має свій алгоритм виконання і цей алгоритм має точно уявляти системний програміст, що пише програму машинним кодом (як не дивно, але таке трапляється і трапляється не так зрідка). Алгоритми виконання кожної окремої машинної інструкції, що сприймає програміст, називають макроалгоритмами. 2. Для комп’ютерного інженера кожний макроалгоритм, особливий для кожної машинної інструкції, теж потрібно «запрограмувати», тобто, в певній формі записати «програму», що реалізує макроалгоритм виконання тої чи іншої машинної інструкції. Це подібно до програмування, але є іншим. 3. Кажимо, що програміст програмує задачу, а комп’ютерний інженер (мікропрограміст) мікропрограмує макроалгоритм виконання машинної інструкції. Виконання однієї такої мікропрограми є для програміста еквівалентним виконанню однієї машинної інструкції. Якщо програміст розуміє, як поокремі машинні інструкціями складають цілістну програму, то мікропрограміст цим не цікавиться. Задача мікропрограміста - надати в розпорядження програміста ефективний за певними критеріями набір машинних інструкцій (кажуть, множину машинних інструкцій). Наприклад, множина з вісьми машинних інструкцій симулятора Кроха і його дуже обмежена пам’ять в 16 15-розрядних комірок дозволяє створити для нього компілятор мови Паскаль. Отже, технології програмування комп’ютерів і їхнього проектування (створення мікрокодів для кожної машинної інструкції) є досить спорідненими. 4. Коли програми складені з машинних інструкцій (команд), тоді кожну машинну інструкцію складають з мікрокоманд, що всі разом утворюють мікропрограму виконання певної машинної інструкції команди). Виконання роботи Індивідуальне завдання: № Завдання  3 r =2(56+57+…+66)   Результат виконання: Адреса Машинний код  0000 0001 0010 0011 001 1101 1100 1101 001 1100 1011 1100 110 1110 1100 0000 101 1101 1010 1111  0100 0101 0110 0111 111 1111 1111 1111 000 0000 0000 0000 000 0000 0000 0000 000 0000 0000 0000  1000 1001 1010 1011 000 0000 0000 0000 000 0000 0000 0000 000 0000 0000 0010 000 0000 0000 0001  1100 1101 1110 1111 000 0000 0011 1001 000 0000 0011 1000 000 0000 0100 0011 rrr rrrr rrrr rrrr  Результат в режимі АВТО: Записи в адресах: адрес 1101 – 56(111000) – перше число; адрес 1100 – 57(111001) – друге число; адрес 1010 – 2(0010) – множник; адрес 1011 – 1(0001) – крок, для дій з наступними числами (58, 59…). адрес 1110 – 67(1000011) – межа чисел, які додаються. адрес 1111 – r – результат виконання. Робота програми в потактовому режимі: / Мал.1.1 Перша інструкція Ця інструкція реалізує додавання двох чисел: перше число 5610(1110002), записане в комірці за адресою 13 (11012); друге число – наступний доданок число 5710(1110012), записане в комірці за адресою 12 (11002). Результат зберігаємо в комірку з адресу 13 (11012). ТАКТ: МК1: memory(0000) → IR. МК2: PC+1→PC МК3: memory (1101) → ACC МК4: ACC + memory (1100) → ACC MK5: ACC → memory (1101) / Мал. 1.2 Друга інструкція У цій інструкції збільшуємо другий доданок на 1 (цикл буде повторюватись, доки буде виконуватись умова, вказана в програмі, тобто повторюватиметься 10 разів). Результат зберігаємо в комірці за адресою 12 (11002). ТАКТ: МК1: memory(0001) → IR МК2: PC+1 → PC МК3: memory (1101) → ACC МК4: ACC + memory(1100) → ACC MK5: ACC→memory (1100) / Мал. 1.3. Третя інструкція Інструкція порівняння: Якщо доданок менший від границі (границя 66 відповідно до умови), то переходимо до команди за адресою 0 (00002). ТАКТ: МК1: memory (0100) → IR МК2: PC+1 → PC МК3: memory (1100) → ACC МК4: ACC > memory (1110) → memory (1100) Аналогічно третьому кроку, виконується робота з новими значеннями і так доти, поки доданок не буде рівний 66. Такти команд після виходу з циклу: Мал. 1.4. Четверта інструкція Виконуємо множення результату, після виходу з циклу, який зберігається в комірці за адресою 13 (11012) на число 2(згідно з умовою, варіант №3), яке записане в комірці з адресою 10 (10102): ТАКТ: МК1: memory (0011) → IR МК2: PC+1 → PC МК3: memory (1101) → ACC МК4: ACC * memory(1010) → ACC MK5: ACC → memory (1111) / Мал. 1.5. П’ята інструкція Виведення результатів виконання програми на екран у комірки з відповідними адресами, вихід із потактового режиму. ТАКТ: МК1: memory(0100) → IR МК2: PC+1 → PC МК3: memory (1100) → Вивід на екран 1-го числа МК4: memory (1101) → Вивід на екран 2-го числа MK5: memory (1111) → Вивід на екран 3-го числа Покроковий режим: / Мал.2.1 Перший крок Стан симулятора з інструкцією додавання. Отже, наказали додати до вмістимого комірки 13 (11012) вмістиме комірки 12, результат записати до комірки 12 (11002). Коректно обчислили (56+57) = 113. / Мал.2.2 Другий крок Стан симулятора з інструкцією додавання. Отже, наказали додати до вмістимого комірки 12 (11002) вмістиме комірки 11 (10112), результат записати до комірки 12 (11002). Коректно обчислили (57+1) = 58. Це потрібно для того, щоб коректно працював цикл, який здійснює додавання чисел від 56 до 66 включно, отже, завдяки цій інструкції здійснюється перехід до наступного числа. / Мал.2.3 Третій крок Стан симулятора з інструкцією порівняння. Коли вміст комірки з адресою 14 (11102) є більшим від вмісту комірки за адресою 12 (11002), тоді наступною виконуваною є інструкція з комірки з адресою 0 (00002). Якщо вміст комірки за адресою 14 (11102) буде меншим від вмісту комірки за адресою 12 (11002), тоді відбувається вихід з циклу і виконується наступний крок. / Мал.2.4 Четвертий крок Стан симулятора з інструкцією множення. Вмістиме комірки за адресою 13 (11012) множимо на вмістиме комірки за адресою 10 (10102), результат записуємо в комірку за адресою 15 (11112). / Мал.2.5 П’ятий крок Завершення роботи програми, виведення результату в комірку за адресою 15 (11112) і вихід з покрокового режиму. Висновок: після виконання даної лабораторної роботи я зрозуміла і дослідила макроалгоритм та мікроалгоритм виконання кожної машинної інструкції машини Ноймана.
Антиботан аватар за замовчуванням

23.10.2016 03:10-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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