Разрядный микропроцессор i8086

Первый 16-разрядный процессор i8086 фирма Intel выпустила в 1978 году. Частота - 5 Мгц, производительность - 0,33 MIPS для инструкций с 16-битными операндами (позже появились процессоры 8 и 10 МГц). Технология 3 мкм, 29 000 транзисторов. Адресуемая память 1 Мбайт. Через год появился i8088 - тот же процессор, но с 8-разрядной шиной данных. С него началась история IBM PC, неразрывно связанная со всем дальнейшим развитием процессоров Intel, Массовое распространение и открытость архитектуры IBM PC привели к лавинообразным темпам появления нового программного обеспечения, разрабатываемого крупными, средними и мелкими фирмами, а также энтузиастами-одиночками. Технический прогресс тогда и сейчас был бы немыслим без развития процессоров, но, с учетом огромного объема уже существующего программного обеспечения для PC, уже тогда возник принцип обратной программной совместимости - старые программы должны работать на новых процессорах. Таким образом, все нововведения в архитектуре последующих процессоров должны были пристраиваться к существующему ядру.

16-разрядный МП i8086 явился дальнейшим развитием линии однокристальных МП, начатой i8080. Наряду с увеличением разрядности в i8086 реализован ряд новых архитектурных решений:

1) расширена система команд (по набору операций и способам адресации);

2) архитектура МП ориентирована на мультипроцессорную работу. Разработана группа вспомогательных БИС (контроллеров и специализированных процессоров) для организации мультимикропроцессорных систем различной конфигурации;

3) начато движение в сторону совмещения во времени выполнения различных операций. МП включает два параллельно работающих устройства

4) обработки данных и связи с магистралью, что позволяет совместить во времени процессы обработки информации и передачи ее по магистрали;

5) введена новая (по сравнению с i8080) организация памяти, которая далее использовалась во всех старших моделях семейства INTEL - сегментация памяти.

Для сохранения преемственности модели с i8080 в i8086 предусмотрено два режима работы - "минимальный" и "максимальный", причем в минимальном режиме i8086 работает просто как достаточно быстрый 16-разрядный i8080 с расширенной системой команд (архитектура МПС на базе i8086-min напоминает архитектуру на базе i8080).

Максимальный режим ориентирован на работу i8086 в составе мультимикропроцессорных систем, в которых, помимо нескольких центральных процессоров i8086, могут функционировать специализированные процессоры ввода/вывода i8089, сопроцессоры "плавающей арифметики" i8087.

Определим более четко введенные выше понятия:

Центральный процессор – поддерживает собственный командный цикл, выполняет программу, хранящуюся в системной памяти, по сбросу системы управление, как правило, передается центральному процессору (или одному из ЦП, если их несколько в системе).

Специализированный процессор – поддерживает собственный командный цикл, выполняет программу, хранящуюся в системной памяти, но инициализируется только по команде ЦП, по окончании выполнения программы сообщает ЦП о завершении работы.

Сопроцессор не поддерживает собственный командный цикл, выполняет команды, выбираемые для него ЦП из общего потока команд. По сути дела сопроцессор является расширением ЦП.

Внутренняя структура

Структурная схема МП i8086 представлена на рис. МП включает в себя три основных устройства :

· УОД - устройство обработки данных;

· УСМ - устройство связи с магистралью;

· УУС - устройство управления и синхронизации.

УОД предназначено для выполнения команд и включает в себя 16-разрядное АЛУ, системные регистры и другие вспомогательные схемы; блок регистров (РОН, базовые и индексные) и блок микропрограммного управления.

УСМ обеспечивает формирование 20-разрядного физического адреса памяти и 16-разрядного адреса ВУ, выбор команд из памяти, обмен данными с ЗУ, ВУ, другими процессорами по магистрали. УСМ включает в себя сумматор адреса, блок регистров очереди команд и блок сегментных регистров.

УУС обеспечивает синхронизацию работы устройств МП, выработку управляющих сигналов и сигналов состояния для обмена с другими устройствами, анализ и соответствующую реакцию на сигналы других устройств МПС.

МП может работать в одном из двух режимов - "минимальном" (min) и "максимальном" (max). Минимальный режим предназначен для реализации однопроцессорной конфигурации МПС с организацией, подобной МПС на базе i8080, но с увеличенным адресным пространством, более высоким быстродействием и значительно расширенной системой команд. Максимальная конфигурация предполагает наличие в системе нескольких МП и специального блока арбитра магистрали (используется интерфейс Multibus).

На внешних выводах МП i8086 широко используется принцип мультиплексирования сигналов - передача разных сигналов по общим линиям с разделением во времени. Кроме того, одни и те же выводы могут использоваться для передачи разных сигналов в зависимости от режима (min - max).

Ниже приводится описание внешних выводов МП i8086. При описании выводов косой чертой разделены сигналы, появляющиеся на выводе в разные моменты машинного цикла. В круглых скобках указаны сигналы, характерные только для максимального режима. Символ \ после имени сигнала - знак его инверсии.

Разрядный микропроцессор i8086 - student2.ru

Рис.9.4. Внутренняя структура процессора i8086

A/D[15:0] - младшие [15:0] разряды адреса / данные;

A[19:16]/ST[6:3] - старшие [19:16] разряды адреса / сигналы состояния;

BHE\/ST[7] - разрешение передачи старшего байта данных / сигнал состояния;

STB(QS0) - строб адреса (состояние очереди команд);

R\ - чтение;

W\/(LOCK\) - запись (блокировка канала);

M-IO\(ST2\) - память - внешнее устройство (состояние цикла);

OP-IP\(ST1\) - выдача-прием (состояние цикла);

DE\(ST0\) - разрешение передачи данных (сост. цикла);

TEST\ - проверка;

RDY - готовность;

CLR - сброс;

CLC - тактовый сигнал;

INT - запрос внешнего прерывания;

INTA\(QS1) - подтверждение прерывания (состояние очереди команд);

NMI - запрос немаскируемого прерывания;

HLD(RQ\/E0) - запрос ПДП (запрос / подтверждение доступа к магистрали);

NLDA(RQ\/E1) - подтверждение ПДП (запрос / подтверждение доступа к магистрали);

MIN/MAX\ - потенциал задания режима (1-min, 0-max).

Сигналы состояния ("статуса") используются для отображения внутреннего состояния МП. Некоторые группы статусных сигналов используются только в максимальном режиме.

Сигналы ST[2:0]\ определяют тип текущего машинного цикла (аналогично PSW для i8080), и формируются только в максимальном режиме:

Табл.9.1

ST2 ST1 ST0 Тип машинного цикла
Обслуживание прерывания
Чтение ВУ
Запись ВУ
Останов
Извлечение кода команды
Чтение ЗУ
Запись ЗУ
Пассивное состояние

Разряды статуса 3..4 определяют сегментный регистр, используемый для вычисления физического адреса:

Табл.9.2

ST4 ST3 Сегментный регистр
ES
CS
SS
DS

ST[5] отражает состояние флага разрешения прерывания IF, ST[6] всегда установлен в 0, когда МП обменивается информацией по магистрали, состояние ST[7] не определено (зарезервировано).

Сигналы QS[1:0] формируются только в максимальном режиме и отражают состояние очереди команд:

Табл.9.3

QS1 QS0 Состояние очереди команд
Нет операции
Очередь очищается
Извлекается первый байт
Извлекается очередной байт

Практически все команды МП i8086 могут работать как со словами (2 байта) так и с байтами. При работе со словами сигнал BHE\ разрешает передачу старшего байта слова.

Сигнал STB отмечает наличие на линиях A/D и A/S адреса.

R и W\ стробируют данные на шине A/D соответственно при чтении и записи.

M-IO\ и OP-IP\ определяют соответственно устройство, с которым производится обмен (память - ВУ) и направление передачи информации (вывод - ввод) относительно процессора.

DE\ стробирует внешний буфер A/D при передаче данных.

Вход TEST\ предназначен для синхронизации программы с внешними процессами. Команда WAIT (ожидание) переводит процессор в режим ожидания, в котором он будет находиться до тех пор, пока на входе TEST\ удерживается высокий уровень сигнала (лог. "1"). При этом все магистрали МП переводятся в высокоимпедансное состояние.

RDY - (готовность) аналогично соответствующему входу МП i8080 обеспечивает возможность асинхронного машинного цикла.

CLR - (сброс) устанавливает все регистры МП в 0, кроме CS, который устанавливается в FFFF и осуществляет запуск командного цикла. Таким образом, стартовый адрес i8086 - всегда FFFF0.

CLC - тактовый сигнал.

INT, INTA\ - соответственно запрос и подтверждение вешнего прерывания (подробнее см. раздел 7).

NMI - запрос внешнего немаскируемого прерывания по фиксированному вектору 2.

HLD, HLDA - соответственно требование и предоставление прямого доступа в память (работает аналогично подсистеме ПДП i8080). В максимальном режиме вместо сигналов HLD, HLDA используются две двунаправленные линии RQ\/Ei\ - запрос шины/разрешение доступа, на которые работает специальная микросхема - арбитр шины.

Наши рекомендации