Робота з симулятором машини Ноймана. Дослідження виконання машинного коду в автоматичному режимі


ТЕОРЕТИЧНІ ВІДОМОСТІ:

CISC - Complex Instruction Set Computing (обчислення Зі Складною Системою Машинних Інструкцій)

Аби дослідити дію машини Ноймана використовують симулятори цієї машини, що, в свою чергу, є готовими до використання комп'ютерними програмами. При роботі з такою програмою складається враження роботи з комп'ютером першої генерації, що приймає дані і подає результати і двійковій (бінарній) системі числення, має обмежений обсяг пам'яті, обмежене число регістрів і відсутню операційну систему. Коли в комп'ютері (в нас - в симуляторі комп'ютера) ОС нема, тоді кожну програму треба завершувати виконанням машинної інструкції СТОП. В Автоматичному Режимі Одним Натиском На Клавішу Комп'ютер Змушують Виконати Уведену До Нього Програму - повністю, Від Першої До Останньої Машинної Інструкції Програми. Розглянемо конкретний симулятор машини Ноймана, якому автор надав назву "Кроха".

"Кроха" є DOS програмою, яку запускають у вікні DOS. Отже, миша з симулятором не працює так само, як і в ті давні часи, коли реалізували машину Ноймана. Треба користуватися курсором (рискою підкреслення) і клавішами пересування курсора. Але курсор діє лише у вікні пам'яті. Залишаються можливості керування симулятором натисканням вибраних клавіш апаратури. Таке керування є примітивним але таким, що дозволяє правдиво і чітко зрозуміти, як працює комп'ютер Ноймана, як з ним колись працювали, а також які в нього є принципові недоліки. Наступний рисунок 1 містить копію вікна симулятора Кроха. Симулятор є DOS програмою, що викликається в режимі командного рядка.

вікно навчального комп'ютера

Рис. 1.1 - Вікно навчального комп'ютера "Кроха-М"

Зліва розташоване вікно пам'яті. Тут позначені адреси в бінарному коді, від 00002 до 11112 (всього 16 комірок). Вміст кожної комірки - це 3+4+4+4=15 бітова структура, що може бути або бінарним кодом цілого чипа, або бінарним кодом машинної команди (так званої інструкції). Отже маємо не зовсім звичний 15-бітовий комп'ютер, що не підтримує парадигму байта.

Формат машинної інструкції машини Ноймана

В комп'ютері використаний наступний класичний формат 3-адресної машинної інструкції:

Поле коду операції.

Довжина 3 біти

Поле адреси 1-го операнда.

Довжина 4 біти

Поле адреси 2-го операнда.

Довжина 4 біти

Поле адреси результату.

Довжина 4 біти

КОп

А1

А2

А3

Приклад кодування інструкції (A1) + (A2) ? A3:

000

0100

0101

0110

Рис. 1.2 - Формат машинної інструкції

Машинний код симулятор код

Про машину Ноймана

Структуру машини Ноймана [Johann von Neumann (Будапешт. 1903 р. н. і Німеччина), John von Neumann (USA), Джон Нейман (Росія)] містить рис. 1.6.

Рис. 1.6. Структура машини Ноймана, запропонована в 1945 році в Гарвардському університеті США. Саме цю (приховану від наших очей) структуру має комп'ютер "Кроха".

За допомогою пристрою введення бінарні коди чисел і машинних інструкцій потрапляють (чорні лінії) транзитом через АЛП до пам'яті, де і зберігаються під час автоматичного виконання обчислень. Отже, під час введення АЛП зайнято транзитним пересиланням і комп'ютер не може обчислювати. Коли уведення завершене, тоді по команді старту, що надає людина, комп'ютер починає виконувати заведену людиною до пам'яті програму автоматично (без участі людини).

При цьому бінарні коди з пам'яті, що надсилаються (синя лінія) до пристрою керування, сприймаються як машинні інструкції. На основі прийнятих з пам'яті кодів машинних інструкцій пристрій керування керує роботою всіх інших пристроїв комп'ютера (червоні штрихові лінії).

Бінарні коди, що надсилаються з пам'яті до АЛП (чорні лінії), сприймаються як коди чисел, що приймають участь в формування результату. Можливе збереження проміжних результатів обчислень в тій самій пам'яті чорна двонаправлена лінія). Остаточні результати також спочатку надсилають до пам'яті, а вже потім виводять для користування людиною через пристрій виводу (чорна лінія).

До Впровадження Багатопроцесорності Всі Персональні Комп'ютери (навіть З Процесором Пентіум 4) були Класичними Машинами Ноймана. Отож, З 1945 Року До 2000 Року ПК Незмінну Ідею, Але Змінювалися При Цьому Технологічно.

ЗАВДАННЯ:

Запустити симулятор, увести до нього коди машинних інструкцій і коди чисел, навчитися утворювати і змінювати ці коди, дослідити і пояснити принципи трактування машиною Ноймана бінарних кодів. Розробити тестову програму, завантажити програму і відповідні дані до симулятора, виконати програму в автоматичному режимі, проаналізувати і пояснити отримані результати, скласти звіт з виконання лабораторних досліджень та захистит його.

ХІД РОБОТИ:

1) Вручну уводжу до симулятора, написану мною, коротку програму, що складена 3-ма інструкціями (рис. 1-3)

Адреса пам'яті

Машинна інструкція

Функція інструкції

Мнемонічний код

Бінарний код

00002

* А1 А2 А3

101 1011 1100 11012

Помножити

00012

| - | А1 А2 А3

011 1101 1110 11112

Знайти модуль різниці

00102

СТОП А1 А2 А3

011 1101 1110 11112

Зупинитися і показати

Рис. 1. Стан симулятора при розташуванні курсора на лінії 00002 пам'яті.

стан симулятора при розташуванні курсора на лінії 0001 пам'яті

Рис. 2. Стан симулятора при розташуванні курсора на лінії 00012 пам'яті.

стан симулятора при розташуванні курсора на лінії 0010 пам'яті

Рис. 3. Стан симулятора при розташуванні курсора на лінії 00102 пам'яті.

2) Здійснюю покрокове виконання програми

стан симулятора після виконання 1-го кроку програми

Рис. 4. Стан симулятора після виконання 1-го кроку програми.

стан симулятора після виконання 2-го кроку програми

Рис. 5. Стан симулятора після виконання 2-го кроку програми.

стан симулятора після виконання 3-го кроку програми

Рис. 6. Стан симулятора після виконання 3-го кроку програми.

3) Результат виконання програми: 2*a-b = 2*7-8 =14-8 = 610 = 000 0000 0000 01102

Висновок

Під час виконання даної лабораторної роботи я опанував роботу на симуляторі машини Ноймана, зрозумів і дослідив принцип виконання програми машиною Ноймана.

Похожие статьи




Робота з симулятором машини Ноймана. Дослідження виконання машинного коду в автоматичному режимі

Предыдущая | Следующая