Смекни!
smekni.com

Микропроцессор i8086/i8088 (стр. 2 из 6)


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

Рис.1.1. Структурная схема микропроцессора i8086.


Операционное устройство выполняет команду, а шинный интерфейс осуществляет взаимодействие с внешней шиной - выставляет адреса, считывает коды команд и операнды, записывает результаты вычислений в память или устройства ввода/вывода. [1,58]

Операционное устройство состоит из РОН, предназначенных для хранения промежуточных результатов вычислений - данных и адресов; АЛУ с буферными регистрами; регистра флагов; схемы управления и синхронизации, которая дешифрует коды команд и генерирует управляющие сигналы для всех блоков схемы МП. Шинный интерфейс состоит из шестибайтной регистровой памяти, которая называется очередью команд, четырех сегментных регистров: CS, DS, ES, SS, указателя команд IP, сумматора, а также вспомогательных регистров связи и буферных схем шин адреса/данных.

Очередь команд работает по принципу FIFO (FirstInput - FirstOutput, т.е. «первый пришел - первый вышел») и сохраняет на выходе порядок поступления команд. Длина очереди - 6 байт. Если операционное устройство занято выполнением команды, шинный интерфейс самостоятельно инициирует опережающую выборку кодов команд из памяти в очередь команд.

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

Ещё одной задачей шинного интерфейса является формирование физического 20-разрядного адреса из двух 16-разрядных слов. Первым словом является содержимое одного из сегментных регистров CS, SS, DS, ES, а второе слово зависит от типа адресации операнда или кода команды. Суммирование 16-разрядных слов происходит со смещением на 4 разряда и осуществляется с помощью сумматора, который входит в состав шинного интерфейса.


Условное графическое изображение микропроцессора приведено на рис.1.2. Назначение контактов БИС зависит от режима работы процессора. Восемь контактов имеют двойное обозначение, причём обозначения в скобках соответствуют максимальному режиму. В таблице 1.1. приведены назначения контактов, одинаковые для обоих режимов, в таблице 1.2. - назначение контактов, которые используются только в минимальном режиме, в таблице 1.3. - назначение контактов, которые используются только в максимальном режиме. Буквой z обозначены трехстабильные выходы, которые переводятся в высокоимпедансное состояние при переходе микропроцессора в режим захвата; в скобках приведены альтернативные обозначения контактов, которые встречаются в литературе.

Рис.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, а после этого следит за очередью команд и определяет момент, когда эта команда должна выполняться Выход

2. Разработка программного обеспечения

2.1. Основной алгоритм

Термин «чётность» в программировании может иметь двоякий смысл:

- первое; целое число считается чётным, если делится на два без остатка;

- второе; значение термина «чётность» используется применительно к флагу чётности (PF – ParityFlag), который предусмотрен в составе регистра флагов процессора i8086. Этот флаг устанавливается в 1, если младший байт результата предыдущей команды содержит чётное число битов, равных 1, и в 0 - нечётное.

Выберем предпочтительный вариант интерпретации термина «контроль четности». Для этого рассмотрим два алгоритма контроля и определим, какой из них окажется более чувствительным к изменению исходных данных.