М. В. Ломоносова Факультет вычислительной математики и кибернетики В. Г. Баула Введение в архитектуру ЭВМ и системы программирования Москва 2003 Предисловие Данная книга
Вид материала | Книга |
Содержание3. Учебная машина 3.1. Схема выполнения команд |
- М. В. Ломоносова Факультет вычислительной математики и кибернетики Кафедра математической, 6.81kb.
- Н. И. Лобачевского Факультет Вычислительной математики и кибернетики Кафедра Математического, 172.6kb.
- Н. И. Лобачевского Факультет Вычислительной Математики и Кибернетики Кафедра иисгео, 4000.54kb.
- М. В. Ломоносова факультет Вычислительной Математики и Кибернетики Диплом, 49.56kb.
- Методы интеллектуального анализа данных и некоторые их приложения, 29.22kb.
- М. В. Ломоносова Факультет Вычислительной Математики и Кибернетики Кафедра Системного, 124.67kb.
- Н. И. Лобачевского Факультет Вычислительной математики и кибернетики Кафедра Математического, 169.45kb.
- Московский Государственный Университет им. М. В. Ломоносова. Факультет Вычислительной, 104.35kb.
- М. В. Ломоносова Факультет Вычислительной Математики и Кибернетики Реферат, 170.54kb.
- М. В. Ломоносова Факультет вычислительной математики и кибернетики Руденко Т. В. Сборник, 1411.4kb.
3
. Учебная машина
Рассмотрим конкретизацию абстрактной машины фон Неймана на примере учебной машины, которую будем называть УМ–3 (смысл этого названия – учебная машина трёхадресная). Наша учебная машина будет удовлетворять всем принципам фон Неймана.
Память учебной машины состоит из 512 ячеек, имеющих адреса от 0 до 511, по 32 двоичных разряда каждая. В каждой ячейке может быть записано целое или вещественное число (представляются они по-разному) или команда. Команда в ячейке будет представляться в следующей форме:
-
КОП
A1
A2
A3
5 разрядов
9 разрядов
9 разрядов
9 разрядов
Здесь КОП – это число от 0 до 31, которое задаёт номер (код) операции, а A1, A2 и A3 – адреса операндов. Таким образом, в каждой команде задаются адреса аргументов (это A2 и A3)и адрес результата операции A1. Конкретизируем регистры устройства управления:
- RA – регистр, называемый счётчиком адреса, он имеет 9 разрядов и хранит адрес команды, которая будет выполняться вслед за текущей командой;
- RK – регистр команд имеет 32 разряда и содержит текущую выполняемую команду (код операции КОП и адреса операндов A1, A2 и A3);
- w – регистр «омега», в который после выполнения некоторых команд (у нас это будут арифметические команды сложения, вычитания, умножения и деления) записывается число от 0 до 2 по правилу (S – результат арифметической операции):
- Err – регистр ошибки, содержащий нуль в случае успешного выполнения очередной команды и единицу в противном случае.
В таблице 3.1 приведёны все команды учебной машины УМ–3.
3.1. Схема выполнения команд
Все бинарные операции (т.е. те, которые имеют два аргумента и один результат) выполняются в нашей учебной машине по схеме:
- RK :=
; чтение очередной команды на регистр команд УУ.
- RА := RА + 1.
- Выполнение операции, заданной в коде операции (КОП). При ошибочном КОП выполняется Err := 1.
- if (Err=0) and (КОП<>СТОП) then goto 1 else КОНЕЦ.
- RА := RА + 1.
Теперь нам осталось определить условие начала работы программы. Для загрузки программы в память и формирования начальных значений регистров в устройстве управления на устройстве ввода имеется специальная кнопка ПУСК ( ). При нажатии этой кнопки устройство ввода самостоятельно (без сигналов со стороны устройства управления) производит следующую последовательность действий:
- Производится ввод расположенного на устройстве ввода массива машинных слов в память, начиная с первой ячейки; этот массив машинных слов заканчивается специальным признаком конца массива.
- RА := 1
- w := 0
- Err := 0
Далее всё готово для автоматической работы центрального процессора по загруженной в память программе. Таким образом, мы полностью определили условия начала и конца работы нашей алгоритмической системы (вспомним курс "Алгоритмы и алгоритмические языки").
| Таблица 3.1. Команды учебной машины. |
| |
КОП | Операция и её мнемоническое обозначение |
01 | СЛВ – сложение вещественных чисел |
11 | СЛЦ – сложение целых чисел |
02 | ВЧВ – вычитание вещественных чисел |
12 | ВЧЦ – вычитание целых чисел |
03 | УМВ – умножение вещественных чисел |
13 | УМЦ – умножение целых чисел |
04 | ДЕВ – деление вещественных чисел |
14 | ДЕЦ – деление целых чисел (то же, что и div в Паскале) |
24 | МОД – остаток от деления (то же, что и mod в Паскале) |
00 | ПЕР – пересылка: |
10 | ЦЕЛ – вещественное в целое: |
20 | ВЕЩ – целое в вещественное: |
09 | БЕЗ – безусловный переход: goto A2, т.е. RA:=A2 |
19 | УСЛ – условный переход: Case w of 0: goto A1; 1: goto A2; 2: goto A3 end |
31 | СТОП – остановка выполнения программы |
05 | ВВВ – ввод A2 вещественных чисел в память, начиная с адреса A1 |
15 | ВЫВ – вывод вещественных чисел, аналогично ВВВ |
06 | ВВЦ – ввод целых чисел, аналогично ВВВ |
16 | ВЫЦ – вывод целых чисел, аналогично ВВВ |
По своей архитектуре наша учебная машина очень похожа на первые ЭВМ, построенные в соответствии с принципами фон Неймана, например, на отечественную ЭВМ СТРЕЛА [3], выпускавшуюся в средине прошлого века.