- •В. Г. Баула Введение в архитектуру эвм и системы программирования
- •Предисловие
- •1. Понятие об архитектуре эвм
- •2. Машина Фон Неймана
- •2.1. Память
- •2.2. Устройство Управления
- •2.3. Арифметико–Логическое Устройство
- •2.4. Взаимодействие уу и алу
- •3. Учебная машина
- •3.1. Схема выполнения команд
- •3.2. Примеры программ для учебной машины.
- •3.2.1. Пример 1. Оператор присваивания.
- •3.2.2. Пример 2. Условный оператор.
- •3.2.3. Пример 3. Реализация цикла.
- •3.2.4. Пример 4. Работа с массивами.
- •3.3. Формальное описание учебной машины
- •4. Введение в архитектуру эвм
- •4.1. Адресность эвм
- •4.2. Сравнительный анализ эвм различной адресности
- •4.3. Дробно-адресная архитектура
- •4.4. Способы адресации
- •4.5. Многообразие форматов данных
- •4.6. Форматы команд
- •4.7. Базирование адресов
- •5. Понятие семейства эвм
- •6. Архитектура младшей модели семейства Intel
- •6.1. Память
- •6.2. Форматы данных
- •6.3. Вещественные числа
- •6.4. Целые числа
- •6.5. Сегментация памяти
- •6.6. Мнемонические обозначения регистров
- •6.7. Структура команд
- •6.8. Команды языка машины
- •6.8.1. Команды пересылки
- •6.8.2. Арифметические команды
- •7. Язык Ассемблера
- •7.1. Понятие о языке Ассемблера
- •7.2. Применение языка Ассемблера
- •7.3. Классификация предложений языка Ассемблер
- •7.4. Пример полной программы на Ассемблере
- •7.5. Переходы
- •7.6. Команды переходов
- •7.6.1. Команды безусловного перехода
- •7.6.2. Команды условного перехода
- •7.6.3. Команды цикла
- •7.7. Работа со стеком
- •7.8. Команды вызова процедуры и возврата из процедуры
- •7.9. Программирование процедур на Ассемблере
- •7.9.1. Стандартные соглашения о связях
- •8. Система прерываний.
- •9. Дополнительные возможности Ассемблера.
- •9.1. Строковые команды.
- •9.2. Логические команды.
- •9.3. Команды сдвига.
- •10. Модульное программирование
- •10.1. Модульное программирование на Ассемблере.
- •10.2. Схема работы редактора внешних связей.
- •10.3. Схема работы статического загрузчика.
- •10.4. Схема работы динамического загрузчика.
- •11. Понятие о системе программирования.
- •11.1. Компоненты системы программирования.
- •11.2. Характеристики исполняемых модулей.
- •11.2.1. Перемещаемые модули.
- •11.2.2. Повторно-выполняемые модули.
- •11.2.3. Повторно-входимые (реентерабельные) модули.
- •12. Макросредства языка Ассемблер.
- •12.1. Сравнение процедур и макроопределений.
- •13. Схема работы транслятора с языка Ассемблера.
- •14. Понятие о мультипрограммном режиме работы.
- •14.1. Требования к аппаратуре для обеспечения возможности работы в мультипрограммном режиме.
- •14.1.1. Система прерываний.
- •14.1.2. Механизм защиты памяти.
- •14.1.3. Аппарат привилегированных команд.
- •14.1.4. Таймер.
- •15. Архитектурные особенности современных эвм.
- •15.1. Конвейерные эвм.
- •15.2. Эвм различной архитектуры.
- •15.2.1. Архитектура эвм с общей шиной.
- •15.2.2. Достоинства и недостатки архитектуры с общей шиной.
- •15.2.3. Архитектура эвм с каналами ввода/вывода.
- •15.3. Уровни параллелизма.
- •Список литературы.
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. Схема выполнения команд
Все бинарныеоперации (т.е. те, которые имеют два аргумента и один результат) выполняются в нашей учебной машине по схеме:<A1>:=<A2><A3>(– любая бинарная операция). Каждая команда выполняется по следующему алгоритму:
RK := <RА>; чтение очередной команды на регистр команд УУ.
RА := RА + 1.
Выполнение операции, заданной в коде операции (КОП). При ошибочномКОП выполняетсяErr := 1.
if (Err=0) and (КОП<>СТОП) then goto 1 else КОНЕЦ.
Теперь нам осталось определить условие начала работы программы. Для загрузки программы в память и формирования начальных значений регистров в устройстве управления на устройстве ввода имеется специальная кнопка ПУСК ( ). При нажатии этой кнопкиустройство вводасамостоятельно (без сигналов со стороны устройства управления) производит следующую последовательность действий:
Производится ввод расположенного на устройстве ввода массива машинных слов в память, начиная с первой ячейки; этот массив машинных слов заканчивается специальным признакомконца массива.
RА := 1
w := 0
Err := 0
Далее всё готово для автоматической работы центрального процессора по загруженной в память программе. Таким образом, мы полностью определили условия начала и конца работы нашей алгоритмической системы (вспомним курс "Алгоритмы и алгоритмические языки").
|
Таблица 3.1. Команды учебной машины. |
|
|
КОП |
Операция и её мнемоническое обозначение |
01 |
СЛВ – сложение вещественных чисел |
11 |
СЛЦ – сложение целых чисел |
02 |
ВЧВ – вычитание вещественных чисел |
12 |
ВЧЦ – вычитание целых чисел |
03 |
УМВ – умножение вещественных чисел |
13 |
УМЦ – умножение целых чисел |
04 |
ДЕВ – деление вещественных чисел |
14 |
ДЕЦ – деление целых чисел (то же, что и div в Паскале) |
24 |
МОД – остаток от деления (то же, что и mod в Паскале) |
00 |
ПЕР – пересылка: <A1>:=<A3> |
10 |
ЦЕЛ – вещественное в целое: <A1>:=Round(<A3>) |
20 |
ВЕЩ – целое в вещественное: <A1>:=Real(<A3>) |
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], выпускавшуюся в средине прошлого века.