421
вает результат с нулем, что делает ненужной специальную команду сравнения СМР.
Контрольные в
о
просы и задания
1. Назовите преимущества, которые имеют интегральные микросхемы перед дискретными
элементами. Ответ постарайтесь обосновать.
2. Для каких функций первоначально предполагалось
использовать микропроцессор?
3. Что такое разрядность МП? Чем она определялась и как изменялась? Какую максималь-
ную разрядность имеют современные процессоры?
4. Вспомните, что вы читали о новых моделях микропроцессоров.
5. Какие микропроцессоры вы знаете? Известен ли вам тип процессора в компьютерах, с
которыми вы имеете дело?
6. Подумайте, в каких устройствах, с которыми вы сталкиваетесь в повседневной жизни,
могут быть микропроцессоры,
7. Что представляет собой микропроцессор с точки зрения программиста?
8. Каковы функции микропроцессора в целом?
9. Какие функции могут выполнять регистры процессора?
10. Вспомните основной цикл работы процессора ЭВМ. Какую роль в нем играет счетчик
адреса команд?
11. От чего зависит объем контролируемого 32-разрядной ЭВМ адресного пространства?
12. Что такое методы адресации? Какие методы адресации ОЗУ вы знаете?
13. Объясните, как работает метод косвенной адресации.
14. Приведите 3-4 варианта сегментных адресов, указывающих
на одну и ту же
ячейку па-
мяти.
15. Охарактеризуйте наиболее употребимые форматы данных.
16. Каким образом процессор может адресоваться к устройствам ввода-вывода? Что такое
порт ввода- вывода?
17. Опишите примерным ход взаимодействия между процессором и принтером. Как вы
считаете, что происходит раньше: очередной символ печатается на бумагу или появляется сигнал
готовности к приему следующего?
18. Что такое прерывание и как оно работает?
Проанализируйте приведенные в тексте ана-
логии и попробуйте придумать собственные.
19. Имеют ли место прерывания в следующей ситуации и почему: во время активной рабо-
ты программы пользователь нажимает клавишу мыши и окно на экране, соответствующее другой
программе, при этом сворачивается?
20. Каковы функции регистра слова состояния процессора?
21. Какие способы адресации используются в процессоре PDP?
22. В чем особенности реализации условных и безусловного переходов в процессоре PDP?
23. Как организована работа с операндами?
§4. УЧЕБНАЯ МОДЕЛЬ МИКРОКОМПЬЮТЕРА
В предыдущем разделе были кратко изложены наиболее важные черты реально сущест-
вующего простого процессора ЭВМ. Конечно, на самом деле все устроено заметно сложнее, по-
этому мы ограничились достаточно поверхностным знакомством. Более современные процессоры
устроены еще
сложнее.
Существует альтернативный подход - изучение сложного объекта на упрощенной модели,
сохраняющей все его наиболее существенные черты. Именно такой подход использован в данном
разделе. Рассмотрение фундаментального материала, освобожденного от второстепенных техни-
ческих деталей, помимо простоты имеет и еще одно преимущество - полученные знания не так
быстро «стареют».
Прием, состоящий в объяснении принципов работы ЭВМ на базе учебной модели, возник
довольно давно. Имеется целый ряд учебных моделей: «Кроха», «Нейман», «Малютка» и другие
(описание которых можно найти в рекомендуемой в конце главы дополнительной литературе).
В данном параграфе рассматривается учебная модель микропроцессорной ЭВМ четвертого
поколения,
предложенная
преподавателем
Пермского
педагогического
университета
422
Е.А.Ереминым. Модель носит название «Е97» В нее включены наиболее характерные черты уст-
ройства современных компьютеров. Модель не повторяет полностью ни один реальный компью-
тер, хотя дает достаточно полное представление об его устройстве. В «Е97» нет излишних техни-
ческих деталей, он достаточно прост и содержит только то, что необходимо для изучения.
«Е97» может работать как с числовыми, так и с нечисловыми данными, отражает общепри-
нятую байтовою организацию памяти, способен обрабатывать массивы информации (поскольку
имеет современные методы адресации), реалистически отражает работу с периферийными устрой-
ствами современного компьютера. Существенно, что наряду с теоретической моделью компьюте-
ра создана программа-эмулятор, позволяющая имитировать «Е97» на различных компьютерах, в
том числе IBM-совместимых. Ряд непринципиальных ограничений и нереализованных возможно-
стей, указанных ниже, относятся именно к этой программе-эмулятору.
4.1. СТРУКТУРА УЧЕБНОГО МИКРОКОМПЬЮТЕРА
В состав учебного микрокомпьютера входят следующие устройства (рис. 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», как и в реальном компьютере, существует память двух видов -оперативная (ОЗУ)
и постоянная (ПЗУ) В первой хранится текущая информация (т.е. программа и данные) по решае-
мон задаче, причем она может как считываться, так и записываться. Во второй, предназначенной
423
только для считывания, содержатся разработанные при проектировании ЭВМ подпрограммы наи-
более важных и часто используемых действий, среди которых важное место занимают алгоритмы
обмена с внешними устройствами.
Видеопамять в «Е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
Представление в байтах
Представление в словах
Рис. 4.18.
К вопросу о представлении информации в «Е97»
Во-первых, в современных ЭВМ не всякое элементарное действие реализуется в виде ко-
манды процессора - многие из них выполняются по программе. В «Е97», например, по программе
происходит нахождение остатка от деления, вычисление модуля, перевод целого числа из двоич-
ной системы в десятичную. Наличие таких подпрограмм освобождает модель от необходимости
вводить в систему команд учебного процессора разные нестандартные и несуществующие в ре-
альных процессорах команды типа «вывод числа на экран в десятичной форме» и ей подобные.
Во-вторых, наличие ПЗУ позволяет не конкретизировать алгоритм работы с внешними уст-
ройствами на уровне системы команд процессора, а перенести их в ПЗУ (именно так делается и в
настоящих компьютерах). ПЗУ такого рода носит специальное название
BIOS
(от английского
Basic Input Output System -
базовая система ввода-вывода
) и обслуживает конкретные типы
внешних устройств, входящих в состав машины BIOS имеет стандартные точки входа, к которым
и обращается все программное обеспечение при необходимости произвести обмен информации с
внешним устройством.
Завершая обсуждение ПЗУ, отметим еще одну деталь. В данной учебной ЭВМ оно условно
делится на две части, названные на рис. 4.17 ПЗУ1 и ПЗУ2. ПЗУ1 доступно для изучения и пред-
ставляет собой настоящие программы в кодах процессора «Е97». Другая часть долговременной
памяти - ПЗУ2 - напротив, «скрыта» от просмотра. Определены лишь входные точки и их назна-
чение; в основном это операции ввода. Деление на ПЗУ1 и ПЗУ2 является чисто техническим
приемом и не имеет никаких аналогий в реальных ЭВМ (наличие «закрытого» ПЗУ2 просто по-
зволяет легче и быстрее осуществить программный имитатор учебного микрокомпьютера).
Перейдем к рассмотрению контроллеров внешних устройств В учебном микрокомпьютере
они фигурируют в виде портов ввода-вывода Каждому из устройств соответствует два таких пор-
та:
регистр данных и регистр состояния.
Через первый происходит обмен информацией, а вто-
424
рой позволяет этот обмен синхронизировать. Если в знаковый (старший) бит младшего байта ре-
гистра состояния записана единица, то это означает, что устройство к обмена готово.
Отметим, что контроллеры современных периферийных устройств имеют обычно более
двух портов. Например, в 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
, куда считываются ис-
ходные данные;
сумматор См
, в котором производится требуемое в команде действие и получа-
ется результат. Мы не можем непосредственно изменять содержимое этих «служебных» регист-
ров, но в данном учебном компьютере они доступны для наблюдения. Вертикальная заштрихо-
ванная полоса на рисунке разделяет программно-доступные (слева) и программно-недоступные
(справа) регистры.
4.2. СИСТЕМА КОМАНД
Перейдем к самому важному - системе команд, которые умеет выполнять учебный процес-
сор. Как мы уже знаем, машинная команда состоит из операционной и адресной частей: первая
указывает, что надо сделать с данными, а вторая - где их взять и куда поместить результат. В этом
разделе мы будем говорить, в основном, об операционной части, лишь коротко упоминая об ад-
ресной; в последней нас пока, главным образом, будет интересовать число операндов (адресов).
Вопросам, связанным с подробностями адресации данных, будет посвящен следующий пункт.
Итак, рассмотрим структуру команды «Е97» (рис. 4.20). В зависимости от конкретной опе-
рации, ее формат может иметь некоторые особенности, но в наиболее полной форме он состоит из
четырех частей по 4 бита каждая (см. рис. 4.20, б):
модификатор МОД,
код операции КОП
и два
операнда ОП1 и ОП2.
Назначение КОП и операндов было описано в предыдущем параграфе. Что
же касается МОД, то он указывает варианты реализации команды, например, адресовать байт или
слово, по каким управляющим битам переходить и др.
Наиболее простой формат команд из всех возможных, имеют две
-нет операции
(ее код 0)
и
останов
(код F). Как видно из рис. 4.20, а, в этих командах задействован только КОП. остальные
12 бит значения не имеют. Основная масса команд, коды которых заключены в интервале от 1 до
В. являются двухадресными и соответствуют уже упоминавшемуся ранее рис. 4.16, б. К ним отно-
425
сятся:
1 - перепись,
5 - умножение,
9 - исключающее «ИЛИ»,
2 - сложение, 6 - деление,
А - ввод из порта,
3 - вычитание, 7 - логическое «И»,
В - вывод из порта.
4 - сравнение,
8 - «ИЛИ»,
Рис. 4.20.
Форматы команд учебного процессора «Е97»
Операция переписи выполняется достаточно тривиально: информация считывается из ОП1
и копируется в ОП2. Совершенно аналогично работают ввод и вывод из порта, с той лишь разни-
цей, что в качестве одного из операндов указывается номер порта. Все остальные двухадресные
команды с кодами 2-9 представляют собой определенные действия над двумя данными, выпол-
няемые по универсальной схеме
ОП2
операция
ОП 1 => ОП2
Например, по команде деления процессор извлекает ОП2, делит его на ОП1 и результат
помещает вместо первоначального значения ОП2.
Некоторую особенность имеет команда сравнения. При ее исполнении производится вычи-
тание ОП2 - ОП1, но результат никуда не записывается. («Тогда для чего же вычитать?» - спроси-
те вы? - «Исключительно ради установки управляющих битов, которые в дальнейшем могут быть
проанализированы командами условных переходов».)
Арифметические действия осуществляются над целыми числами и результаты
их -
целочисленные в формате «16-битные целые числа со знаком». При делении получается целая
часть частного. Что же касается операций над вещественными числами, то они могут быть реали-
зованы программным путем (соответствующие программы могут быть, например, помещены в
одно из ПЗУ).
Перейдем теперь к рассмотрению команд переходов. Как мы уже знаем, они бывают
абсо-
лютные,
когда значение адреса для перехода задается явно, и
относительные.
когда адрес сле-
дующей команды вычисляется путем значения текущего программного счетчика и указанного в
теле команды смещения. В соответствии с этим в «Е97» есть два типа переходов с кодами опера-
ций С и D; их форматы представлены на рис. 4.20,
в, г.
Начнем с абсолютного перехода, код которого равен С. Если процессор встретит в про-
грамме команду из двух слов
1C0D
0056
то следующей будет выполняться команда с адресом 56. Иными словами, адрес перехода берется
из самой команды. В команде 1C0D старшая шестнадцатеричная цифра - модификатор, соответст-
вующий безусловному переходу; С - код операции; 0 - неиспользуемая цифра; D - операнд, указы-