Жмакин А.П. Архитектура ЭВМ (2006) (1186252), страница 22
Текст из файла (страница 22)
Анализ архитектуры микропроцессорных систем (МПС) целесообразно начинать с рассмотрения простейшей (базовой) модели, отражающей основные принципы организации процессора, его системы команд, функционирование основных подсистем. Большинство принципиальных решений, реализованных в МПС на базе младших моделей семейства, сохранились и в старших моделях.
Рассмотрим кратко организацию МПС на базе микропроцессора i8086. При этом выделим для рассмотрения следующие подсистемы:
□ процессорный модуль;
□ память;
□ ввод/вывод;
□ прерывания;
□ прямой доступ в память со стороны ВУ.
6.1. Процессорный модуль
Процессорный модуль — основная часть любой МПС. Помимо собственно микропроцессора, он включает ряд вспомогательных схем, без которых МПС не может функционировать (тактовый генератор, интерфейсные схемы и др.).
6.1.1. Внутренняя структура микропроцессора
Структурная схема микропроцессора i8086 представлена на рис. 6.1. Микропроцессор включает в себя три основных устройства:
□ УОД — устройство обработки данных;
□ УСМ — устройство связи с магистралью;
□ УУС — устройство управления и синхронизации.
УОД предназначено для выполнения команд и включает в себя 16-разрядное АЛУ, системные регистры и другие вспомогательные схемы; блок регистров (РОН, базовые и индексные) и блок микропрограммного управления.
УСМ обеспечивает формирование 20-разрядного физического адреса памяти и 16-разрядного адреса ВУ, выбор команд из памяти, обмен данными с ЗУ, ВУ, другими процессорами по магистрали. УСМ включает в себя сумматор адреса, блок регистров очереди команд и блок сегментных регистров.
УУС обеспечивает синхронизацию работы устройств МП, выработку управляющих сигналов и сигналов состояния для обмена с другими устройствами, анализ и соответствующую реакцию на сигналы других устройств МПС.
Микропроцессор i8086 может работать в одном из двух режимов — минимальном и максимальном. Минимальный режим предназначен для реализации однопроцессорной конфигурации МПС с организацией, подобной МПС на базе i8080, но с увеличенным адресным пространством, более высоким быстродействием и значительно расширенной системой команд. Максимальный режим предполагает наличие в системе нескольких микропроцессор, работающих на общую системную шину. МПС на базе i8086 с использованием максимального режима не получили широкого распространения. Более того, в последующих моделях своих микропроцессоров (80286, 80386, 80486) фирма Intel отказалась от поддержки мультипроцессорной архитектуры. Поэтому мы здесь не будем рассматривать особенности организации максимального режима.
На внешних выводах МП i8086 широко используется принцип мультиплексирования сигналов — передача разных сигналов по общим линиям с разделением во времени. Кроме того, одни и те же выводы могут использоваться для передачи разных сигналов в зависимости от режима (min — max).
В табл. 6.1 приведено описание внешних выводов МП i8086. При описан выводов косой чертой (/) разделены сигналы, появляющиеся на выводе в ра ные моменты машинного цикла. В круглых скобках указаны сигналы, хар-терные только для максимального режима. Символ * после имени сигнала знак его инверсии.
6.1.2. Командный и машинный циклы микропроцессора
Микропроцессор i8086 работает в составе МПС, обмениваясь с памятью и ВУ словами длиной 2 байта, т. к. разрядность шины данных составляет 16 битов. В основе работы микропроцессора лежит командный цикл — действия по выбору из памяти и выполнению одной команды.
Любой командный цикл (КЦ) начинается с извлечения из памяти первого слова команды по адресу, хранящемуся в счетчике команд (PC). Команды i8086 могут иметь длину от 1 до 6 байтов, причем в первом слове содержится информация о длине команды. Таким образом, для извлечения из памяти одной команды может потребоваться одно или несколько обращений к ОЗУ. В зависимости от типа и формата команды, способов адресации и числа операндов командный цикл может включать в себя различное число обращений к памяти и ВУ, поскольку кроме чтения самой команды в КЦ может потребоваться чтение операндов и размещение результата.
Хотя обращения к ЗУ/ВУ располагаются в разных частях КЦ, выполняются они по единым правилам, соответствующим интерфейсу МПС, и реализованы на общем оборудовании управляющего автомата. Действия МПС по передаче в (из) МП одного слова команды (данных) называются машинным циклом. КЦ состоит из одного или нескольких машинных циклов (МЦ).
Машинный цикл включает выдачу процессором адреса памяти или внешнего устройства, по которому производится обращение, выдачу управляющих сигналов, характеризующих тип машинного цикла и направление передачи данных (М-Ю, OP-IP), выдачу синхронизирующих (стробирующих) сигналов (STB, R, W) и собственно передачу данных. В i8086 реализована мультиплексированная шина адреса/данных. Это объясняется дефицитом внешних выводов кристалла и требует дополнительного такта для выдачи адреса и дополнительного управляющего сигнала STB, идентифицирующего наличие адреса на общей шине A/D.
По большому счету разнообразие МЦ сводится к двум разновидностям — чтению (данные или команды принимаются в процессор) и записи (данные выдаются из процессора). Временные диаграммы соответствующих МЦ приведены на рис. 6.2.
Цикл начинается с формирования в такте Т1 сигнала М-Ю, определяющего тип устройства — память или ВУ, с которым осуществляется обмен данными. Длительность сигнала M-IO равна длительности машинного цикла, и он используется для селекции адреса устройств. В Т1 и в начале Т2 МП выдает адреса А[19:16] и А[15:0] и сигнал ВНЕ, который вместе с АО определяет выбор передачи либо всего слова, либо одного из его байтов. По спаду строба ALE адрес фиксируется во внешних регистрах-защелках. В такте Т2 происходит переключение шин: на выводы A[19:16]/ST[6:3] поступают сигналы состояния; а выводы A/D[15:0] используются для приема/передачи данных.
Описанные выше машинные циклы являются синхронными; их длительность определяется только процессором. Однако такой обмен возможен лишь с устройствами, быстродействие которых не уступает процессорному. В противном случае микропроцессор должен реализовать асинхронный способ обмена, включающий анализ сигнала от устройства о готовности к обмену или о завершении процедуры обмена.
Роль такого сигнала в i8086 (и всех процессорах старших моделей семейства *86) играет вход RDY (от англ. ready — готовность), который всегда должен быть активным при синхронном обмене (с "быстрыми" устройствами). При обмене с "медленными" устройствами значение RDY должно оставаться неактивным (в разных процессорах активным для RDY может быть уровень логической 1 или логического 0) до тех пор, пока устройство, с которым связывается процессор, не завершит процедуру обмена, сообразуясь со своим быстродействием.
Время ожидания процессором готовности устройства может быть сколь угодно большим. Для этого в такте ТЗ процессор проверяет значение сигнала RDY, и если он неактивен, после такта ТЗ в машинный цикл вставляется произвольное количество тактов ожидания Tw, в каждом из которых анализируется значение RDY. При появлении активного значения RDY микропроцессор переходит к такту Т4 и завершает МЦ. Таким образом, удается согласовывать работу микропроцессора с устройствами различного быстродействия.
6.1.3. Реализация процессорных модулей и состав линий системного интерфейса
Большинство микропроцессоров не могут работать в составе МПС без некоторых дополнительных схем, составляющих вместе с микропроцессором т. н. процессорный модуль. Прежде всего, на вход CLK микропроцессора необходимо подать прямоугольные импульсы тактовой частоты от специального внешнего тактового генератора.
Для микропроцессора i8086 частота тактовых импульсов может лежать в диапазоне 2—6 МГц.
На рис. 6.3 приведен один из вариантов упрощенной функциональной схемы процессорного модуля на базе i8086. На схеме не показаны некоторые элементы и связи (например, схема начального сброса и др.).
Микропроцессор i8086 реализован по n-МДП-технологии, и его выходные каскады не обеспечивают достаточной нагрузочной способности для линий системного интерфейса. Поэтому к выходным линиям микропроцессора обычно подключают буферные схемы BD, реализованные по технологии ТТЛ. Кроме того, шины адреса и данных в i8086 мультиплексированы. Адрес удерживается на выводах микропроцессора только в течение одного такта машинного цикла, а использоваться должен весь МЦ. Поэтому адрес необходимо запомнить в специальных внешних регистрах-защелках RG (которые, кстати, играют и роль буферной схемы шины адреса).
Наконец, часто требуется преобразовать управляющие сигналы, выдаваемые микропроцессором, в стандартные сигналы системного интерфейса. Так, i8086 формирует выходные сигналы, идентифицирующие тип машинного цикла, и сигналы стробирования: M-IO, OP-IP, R, W. Системная шина использует сигналы записи и чтения памяти — RDM, WRM и записи и чтения внешнего устройства — RDIO, WRJO. Преобразования процессорных сигналов в шинные осуществляет простая логическая схема L.
6.2. Машина пользователя и система команд
Программная модель микропроцессора (рис. 6.4) включает в себя программно-доступные объекты МПС, т. е. те объекты, состояние которых можно проанализировать и/или изменить при помощи команд микропроцессора. К таким объектам относятся внутренние регистры микропроцессора, ячейки памяти и порты ввода/вывода.
Рассмотрим машину пользователя i8086. Кроме показанных на рис. 6.4 регистров процессора, в машину пользователя i8086 включатся адресное пространство памяти объемом 1 Мбайт и два пространства портов ввода и вывода по 64 Кбайт каждое.
Помимо операций с 16-разрядными регистрами общего назначения (РОН) АХ — DX, допускается обращение к каждому байту этих регистров: AL — DL, АН — DH. В процессорах семейства х86 система команд построена таким образом, что в некоторых командах РОН выполняют определенные по умолчанию функции счетчиков, индексных регистров, источников адреса и др.
16-разрядные регистры BP, SI, DI используются для образования исполнительных адресов памяти, SP — указатель стека, IP — программный счетчик (СчК), Flags — регистр флагов, формат которого приведен на рис. 6.5, где:
□ CF — перенос/заем из старшего разряда;
□ PF — паритет (четность числа единиц в результате);
□ AF — дополнительный перенос (из 3-го разряда);
□ ZF — нулевой результат;
□ SF — отрицательный результат (знак);
□ OF — признак арифметического переполнения;