СТРУКТУРА УЧЕБНОГО МИКРОКОМПЬЮТЕРА
В состав учебного микрокомпьютера входят следующие устройства (рис. 4.16):
центральный процессор, память двух видов (ОЗУ и ПЗУ), а также два наиболее важных внешних устройства (клавиатура для ввода информации и дисплей для вывода; оба устройства, как принято в современных ЭВМ, подключены через обеспечивающие согласование контроллеры).
Рис. 4.16. Схема устройства учебного компьютера «Е97»
Главным блоком компьютера служит 16-разрядный процессор «Е97», способный работать как с двухбайтовыми словами, так и с отдельными байтами. Таким образом, он может оперировать с данными разной длины. Познакомившись с тем, как «Е97» обрабатывает разные типы информации, читатель легко сможет в будущем обобщить логику «один байт или много» на случай большей разрядности процессора.
В процессоре имеются внутренние регистры памяти, при помощи которых реализован метод косвенной адресации к ОЗУ. Очевидно, что полное 16-разрядяое адресное пространство «Е97» позволяет напрямую адресовать до 64 кбайт памяти; для учебной ЭВМ это более чем достаточно. Поэтому реально существующей памяти будут соответствовать лишь некоторые диапазоны адресов (рис. 4.17). Для первой программной реализации модели «Е97» приняты следующие значения констант: LoROM = 4000, HiROM =4180.
Рис. 4.17. Структура памяти микрокомпьютера «Е97» (LoROM - нижняя граница ПЗУ 1. HiROM-верхняя граница ПЗУ 1, совпадающая с началом ПЗУ 2)
В «Е97», как и в реальном компьютере, существует память двух видов -оперативная (ОЗУ) и постоянная (ПЗУ) В первой хранится текущая информация (т.е. программа и данные) по решаемон задаче, причем она может как считываться, так и записываться. Во второй, предназначенной только для считывания, содержатся разработанные при проектировании ЭВМ подпрограммы наиболее важных и часто используемых действий, среди которых важное место занимают алгоритмы обмена с внешними устройствами.
Видеопамять в «Е97» размещается в контроллере дисплея; для простоты модели будем считать, что видеопамять не входит в адресное пространство процессора.
Доступ к видео-ОЗУ осуществляется путем обращения к внешнему устройству.
Как уже отмечалось, минимальной адресуемой ячейкой памяти в современных ЭВМ является байт. Все байты в памяти «Е97» пронумерованы и их 16-разрядные номера находятся в пределах от 0000 до FFFF. Реальные адреса должны попадать в выделенные на рис. 4.17 области. При обращении к любому другому адресу происходит аварийное прекращение выполнения программы.
Байты в памяти могут объединяться в слова, которые для данного компьютера состоят из двух соседних байтов (у современных процессоров обычно из четырех, но для понимания основных принципов это не очень существенно). По традиции .примем, что слово адресуется наименьшим из номеров байтов, причем этот адрес соответствует младшему байту слова. Для удобства изображения содержимого ОЗУ на экране дисплея будем считать, что адрес слова всегда является четным
Для наглядности проиллюстрируем все эти важные положения примером (рис. 4.18). Слово с адресом 40 имеет значение FFOO, а слово с адресом 42 - 1234; адреса 41 и 43 для слов запрещены. Обратите внимание на то, что байт 40 имеет нулевое значение, а байт с адресом 41 - значение FF. Иначе говоря, байты слова хранятся в памяти «задом наперед» - сначала младший, а затем старший. Именно так хранится слово в большинстве компьютеров.
Рассмотрим теперь роль ПЗУ. Его наличие дает целый ряд преимуществ, важнейшими из которых являются следующие.
40 |
41 |
42 |
43 |
41 |
FF |
00 |
40 |
|
00 |
FF |
34 |
12 |
43 |
12 |
34 |
42 |
|
Представление в байтах |
Представление в словах |
Во-первых, в современных ЭВМ не всякое элементарное действие реализуется в виде команды процессора - многие из них выполняются по программе. В «Е97», например, по программе происходит нахождение остатка от деления, вычисление модуля, перевод целого числа из двоичной системы в десятичную. Наличие таких подпрограмм освобождает модель от необходимости вводить в систему команд учебного процессора разные нестандартные и несуществующие в реальных процессорах команды типа «вывод числа на экран в десятичной форме» и ей подобные.
Во-вторых, наличие ПЗУ позволяет не конкретизировать алгоритм работы с внешними устройствами на уровне системы команд процессора, а перенести их в ПЗУ (именно так делается и в настоящих компьютерах). ПЗУ такого рода носит специальное название BIOS (от английского Basic Input Output System - базовая система ввода-вывода) и обслуживает конкретные типы внешних устройств, входящих в состав машины BIOS имеет стандартные точки входа, к которым и обращается все программное обеспечение при необходимости произвести обмен информации с внешним устройством.
Завершая обсуждение ПЗУ, отметим еще одну деталь. В данной учебной ЭВМ оно условно делится на две части, названные на рис. 4.17 ПЗУ1 и ПЗУ2. ПЗУ1 доступно для изучения и представляет собой настоящие программы в кодах процессора «Е97». Другая часть долговременной памяти - ПЗУ2 - напротив, «скрыта» от просмотра. Определены лишь входные точки и их назначение; в основном это операции ввода. Деление на ПЗУ1 и ПЗУ2 является чисто техническим приемом и не имеет никаких аналогий в реальных ЭВМ (наличие «закрытого» ПЗУ2 просто позволяет легче и быстрее осуществить программный имитатор учебного микрокомпьютера).
Перейдем к рассмотрению контроллеров внешних устройств В учебном микрокомпьютере они фигурируют в виде портов ввода-вывода Каждому из устройств соответствует два таких порта:
регистр данных и регистр состояния. Через первый происходит обмен информацией, а второй позволяет этот обмен синхронизировать. Если в знаковый (старший) бит младшего байта регистра состояния записана единица, то это означает, что устройство к обмена готово.
Отметим, что контроллеры современных периферийных устройств имеют обычно более двух портов. Например, в IBM-совместимых компьютерах для работы со стандартным печатающим устройством используется три порта - к уже названным добавляется регистр управления. Ничего принципиально нового наличие дополнительных портов не вносит.
Такова внутренняя структура учебного микрокомпьютера. Рассмотрим теперь устройство самого процессора, каким он видится программисту.
«Е97» состоит из семи 16-разрядных регистров. 4 регистра общего назначения RO - R3, счетчика адреса команд PC (Program Counter), указателя стека SP (Stack Pointer) и регистра состояния процессора PS (Processor Status), в котором мы будем использовать только два младших бита N и Z. «Поведение» этих управляющих битов согласно общепринятым закономерностям следующее:
N = 0 - результат ? 0, N = 1 - результат < 0,
Z = 0 - результат ? 0, Z = 1 - результат = 0.
Здесь «результат» означает результат последней из выполненных арифметических операций. Все эти объекты изображены на рис. 4.19.
Рис. 4.19, Внутреннее устройство учебного процессора «Е97»
Кроме уже названных, в «Е97» имеется ряд внутренних регистров, которые процессор использует при исполнении операций. Это регистр команд РК, предназначенный для хранения кода исполняемой в данный момент команды; регистры операндов Рг1 и Рг2, куда считываются исходные данные; сумматор См, в котором производится требуемое в команде действие и получается результат. Мы не можем непосредственно изменять содержимое этих «служебных» регистров, но в данном учебном компьютере они доступны для наблюдения. Вертикальная заштрихованная полоса на рисунке разделяет программно-доступные (слева) и программно-недоступные (справа) регистры.