Рис.1.1. Структурная схема микропроцессора i8086.
Операционное устройство выполняет команду, а шинный интерфейс осуществляет взаимодействие с внешней шиной - выставляет адреса, считывает коды команд и операнды, записывает результаты вычислений в память или устройства ввода/вывода. [1,58]
Операционное устройство состоит из РОН, предназначенных для хранения промежуточных результатов вычислений - данных и адресов; АЛУ с буферными регистрами; регистра флагов; схемы управления и синхронизации, которая дешифрует коды команд и генерирует управляющие сигналы для всех блоков схемы МП. Шинный интерфейс состоит из шестибайтной регистровой памяти, которая называется очередью команд, четырех сегментных регистров: CS, DS, ES, SS, указателя команд IP, сумматора, а также вспомогательных регистров связи и буферных схем шин адреса/данных.
Очередь команд работает по принципу FIFO (FirstInput - FirstOutput, т.е. «первый пришел - первый вышел») и сохраняет на выходе порядок поступления команд. Длина очереди - 6 байт. Если операционное устройство занято выполнением команды, шинный интерфейс самостоятельно инициирует опережающую выборку кодов команд из памяти в очередь команд.
Выборка из памяти очередного командного слова осуществляется тогда, когда в очереди обнаруживаются два свободных байта. Очередь увеличивает быстродействие процессора в случае последовательного выполнения команд. При выборке команд переходов, запросов и возвращений из подпрограмм, обработки запросов прерываний очередь команд сбрасывается, и выборка начинается с нового места программной памяти.
Ещё одной задачей шинного интерфейса является формирование физического 20-разрядного адреса из двух 16-разрядных слов. Первым словом является содержимое одного из сегментных регистров CS, SS, DS, ES, а второе слово зависит от типа адресации операнда или кода команды. Суммирование 16-разрядных слов происходит со смещением на 4 разряда и осуществляется с помощью сумматора, который входит в состав шинного интерфейса.
Рис.1.2. Графическое изображение БИС МП i8086.
Таблица 1.1. Назначение контактов МП i8086 для
минимального и максимального режимов
Обозначение | Назначение | Тип |
AD15 - АО | Address/data - мультиплексная двунаправленная шина адреса/данных (ADB - AddressDataBus), по которой с разделением во времени передаются адреса и данные. Адреса передаются в первом такте цикла шины и сопровождаются сигналом ALE, а данные - во второй половине цикла шины и сопровождаются сигналом DEN | Вход/ выход(z) |
BHE/ST7 | ByteHighEnable/Status 7 - выходной сигнал разрешения старшего байта/сигнал состояния. В первом такте цикла одновременно с адресной информацией передается сигнал ВНЕ. Активный (L) уровень ВНЕ означает, что по старшей половине AD15 - AD8 шины адреса/данных передаются 8-разрядные данные. Сигнал ВНЕ используется для разрешения доступа к старшему банку памяти или к внешнему устройству с байтовой организацией, подключенному к старшей половине шины данных. В других тактах формируется сигнал состояния ST7 | Выход (z) |
RD | Read - выходной сигнал чтения. Указывает на то, что МП выполняет цикл чтения | Выход(z) |
READY | Ready - входной сигнал готовности, подтверждающий, что ячейка памяти или устройство ввода/вывода, адресуемое в команде, готово к взаимодействию с МП при передаче данных | Вход |
INTR | InterruptRequest - входной сигнал запроса (при Н-уровне) маскированного прерывания. Если прерывания разрешены, МП переходит к подпрограмме обработки прерывания, в противном случае игнорирует этот сигнал | Вход |
RESET (CLR) | Сигнал аппаратного сброса (при Н-уровце). Переводит МП в начальное состояние, при котором сброшены сегментные регистры (кроме CS, все разряды которого устанавливаются в единичное состояние), указатель команд IP, все флаги, регистры очереди команд и все внутренние триггеры устройства управления. Сигнал RESET не влияет на состояние РОН. Во время действия сигнала RESET все выходы, имеющие три состояния, переводятся в высокоимпедансное состояние; выходы, которые имеют два состояния, становятся пассивными. Минимальная продолжительность сигнала RESET при первом включении МП составляет 50 мкс, а при повторном запуске - четыре | Вход |
Обозначение | Назначение | Тип |
TEST | Test - входной сигнал проверки. Сигнал используется вместе с командой ожидания WAIT, выполняя которую, МП проверяет уровень сигнала TEST. Если TEST = 0, МП переходит к выполнению следующей после WAIT команды. Если TEST = 1, МП находится в состоянии ожидания, выполняет холостые такты и периодически, с интервалом 5TCLK, проверяет значение сигнала TEST | Вход |
CLK, (CLC) | Clock - входные тактовые импульсы, обеспечивающие синхронизацию работы МП | Вход |
MN/MX | Minimum/maximum - вход сигнала выбора минимального или максимального режимов. Определяет режим работы МП: при 1 - минимальный, при 0 - максимальный | Вход |
INTA | InterruptAcknowledge - выходной сигнал подтверждения прерывания, определяющий чтение вектора прерывания | Выход |
ALE | AddressLatchEnable - выходной сигнал разрешения фиксации адреса; выдается в начале каждого цикла шины и используется для записи адреса в регистр-фиксатор | Выход |
DEN (DE) | DataEnable - выходной сигнал разрешения данных, который определяет появление данных на шине адреса/данных | Выход (z) |
DT/R (OP /IP) | DataTransmit/Receive (Output-Input) - выходной сигнал передачи/приема данных; определяет направление передачи данных по ADB. Предназначен для управления шинными формирователями и действует на протяжении всего цикла шины | Выход (z) |
M/IO | Memory/Input-Output - выходной сигнал признака обращения к памяти (М/Ю = 1) или внешнему устройству(М/Ю = 0). Используется для распределения адресного пространства памяти и устройств ввода/вывода | Выход (z) |
WR | Write - выходной сигнал записи. Указывает на то, что МП выполняет цикл записи в память или внешнее устройство, и сопровождает данные, которые выдаются МП на шину данных | Выход (z) |
HOLD | Hold - входной сигнал запроса захвата шин от внешнего устройства или контроллера прямого доступа к памяти | Вход |
HLDA | HoldAcknowledge - выходной сигнал подтверждения захвата. Сигнал указывает на то, что МП перевел свои шины адреса/данных, адреса/состояния и управления в z-состояние | Выход |
Таблица 1.2. Назначение контактов МП i8086 в максимальном режиме
ST2 - ST0 (S2 - SO) | Выходные сигналы линий состояния. Характеризуют тип выполняемого цикла шины; используются для формирования управляющих сигналов | Выход(z) |
RQ/GTORQ/GT1 (RQ/ЁО) (RQ/БЦ | Request/Grant (Request/Enable) - два входных/выходных сигнала запроса/предоставления локальной шины; используются для связи с другими процессорами, в частности, с арифметическим сопроцессором. Линия RQ/GT1 имеет меньший приоритет | Вход/ выход |
LOCK | Lock - выходный сигнал блокировки (занятости) шины - сигнал монополизации управления шиной; формируется во время выполнения команды с префиксом LOCK и информирует другие процессоры и устройства о том, что они не должны запрашивать системную шину | Выход |
QS1. QSO | Queue Status - два выходных сигнала состояния очереди; идентифицируют состояние внутренней шестибайтной очереди команд и действуют на протяжении такта синхронизации после выполнения операции над очередью. Сигналы QS1, QS0 предназначены для сопроцессора, который контролирует шину адреса/данных, фиксирует момент выборки из памяти программ предназначенной для него команды с префиксом ESC, а после этого следит за очередью команд и определяет момент, когда эта команда должна выполняться | Выход |
Термин «чётность» в программировании может иметь двоякий смысл:
- первое; целое число считается чётным, если делится на два без остатка;
- второе; значение термина «чётность» используется применительно к флагу чётности (PF – ParityFlag), который предусмотрен в составе регистра флагов процессора i8086. Этот флаг устанавливается в 1, если младший байт результата предыдущей команды содержит чётное число битов, равных 1, и в 0 - нечётное.
Выберем предпочтительный вариант интерпретации термина «контроль четности». Для этого рассмотрим два алгоритма контроля и определим, какой из них окажется более чувствительным к изменению исходных данных.