Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

цимпу / Теория / content / Лекции

.pdf
Скачиваний:
248
Добавлен:
13.02.2016
Размер:
5.26 Mб
Скачать

3.2.7 Дешифрация команд

Как известно, команда содержит операционную и адресную части. Первая часть (код операции, КОп) указывает на операцию, которая должна быть выполнена. Вторая (код адреса, КАд) определяет операнды, над которыми выполняется операция. Код операции находится в первом байте команды, который при ее выборке поступает на регистр команд IR. Содержимое регистра команд IR декодируется блоком дешифрации команд и формирования машинных циклов, вырабатывающим набор сигналов, настраивающих блоки МП на выполнение заданной операции, т. е. реализацию машинного цикла нужного типа. Этот набор сигналов используется блоком синхронизации и управления, а также другими блоками МП. Сигналы управления, настраивающие блоки МП на работу в соответствии с выполняемой операцией, поступают практически на все блоки.

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

Работа схемы тактируется генератором тактовых импульсов (ГТИ), который подключен к распределителю тактов (РТ). Выполняемые операции разбиваются на ряд этапов, число m выходов РТ определяется максимальным числом этапов в самой длинной операции. Переход активного состояния с одной выходной линии РТ на другую означает переход к очередному этапу. Набор формируемых на каждом этапе сигналов определяется кодом операции КОп. Выходами схемы являются сигналы управления блоками, а входами – осведомительные сигналы о состоянии МП, от которых также зависят сигналы управления.

От ГТИ

 

 

 

РТ

КОп

 

1 2 . . . m

1 2

. . .

k

 

 

Дешифратор команд и формирователь

машинных циклов

 

 

. . .

 

. . .

 

Управляющие

Осведомительные

сигналы

сигналы

 

Рисунок 3.7 – Структурная схема блока дешифрации команд и формирования машинных циклов

181

3.2.8 Блок синхронизации и управления

Блок служит для синхронизации процессов, генерации сигналов состояния и управления шиной (ВУ МПС). Рассмотрим функции выводов и сигналов блока синхронизации и управления (рисунок 3.6):

-Х1, Х2 – к этим выводам подключается кварцевый резонатор или другие цепи, задающие частоту внутреннего синхрогенератора МП. Возможна также синхронизация через эти выводы от внешнего генератора ГТИ;

-CLK – выход синхроимпульсов для модулей МПС;

-RD, WR – стробы чтения и записи. Низкий активный уровень соответствующего сигнала свидетельствует о том, что адресованная ячейка памяти или внешнее устройство должны выполнить операцию чтения или записи. Выводы переходят в третье состояние в режимах захвата HOLD, останова HALT и сброса RESET;

-S1, S0 – сигналы состояния МП, сообщаемые внешней среде. Формируются

вначале и сохраняются во время всего машинного цикла;

-IO/ M – сигнал выбора внешнего устройства или памяти. При высоком уровне происходит обращение к ВУ, при низком – к памяти. Сигналы S1, S0 и

IO/ M совместно идентифицируют тип машинного цикла;

-READY – входной сигнал, показывающий, что память или ВУ готовы к обмену с МП. Если готовности памяти или ВУ нет (READY = 0), то МП входит

всостояние ожидания, которое может длиться любое целое число тактов вплоть до появления единичного уровня сигнала READY;

-ALE – строб разрешения загрузки младшего байта адреса памяти во внешний регистр для его хранения в течение машинного цикла (рисунок 3.5). Появляется в первом такте машинного цикла. Регистр загружается отрицательным фронтом сигнала ALE;

-HOLD – сигнал запроса захвата шин. Формируется ВУ, которое нуждается

вобмене данными с памятью в режиме прямого доступа (ПДП);

-HLDA – сигнал подтверждения захвата шин (от англ. Hold Acknowledge). Является ответом МП на сигнал HOLD, формируемым в конце текущего машинного цикла. Свидетельствует об отключении МП от системных шин. При

этом шины и линии управляющих сигналов RD, WR , IO/ M и ALE переводятся в третье состояние;

182

- RESIN (RESET IN) – вход сигнала сброса МП в начальное состояние. Сигнал может поступать в любое время по команде оператора. Автоматически формируется при включении питания (рисунок 3.4). Под его воздействием сбрасываются регистры PC и IR, триггеры разрешения прерывания, подтверждения захвата и др.;

- RESET – выходной сигнал сброса для внешних модулей системы, привя-

занный к тактовым импульсам CLK, т. е. отличающийся от сигнала RESIN по фазе.

3.2.9 Синхронизация и последовательность действий МП

При естественном следовании команд МП, начав работу, выбирает из памяти и выполняет одну команду за другой, пока не дойдет до команды HLT «останов». Процессы выполнения команд подчиняются строгой последовательности действий.

Выборка и выполнение одной команды образуют командный цикл (КЦ). Каждый КЦ состоит из одного или нескольких машинных циклов (МЦ). В свою очередь машинный цикл делится на то или иное число тактов Т, число которых зависит от типа машинного цикла (рисунок 3.8, а).

 

 

 

 

КЦ

 

 

 

 

 

b1

N – 2

 

М1

 

 

М2

 

 

М3

 

b2

N – 1

Т1

Т2

Т3

Т4

Т1

Т2

Т3

Т1

Т2

Т3

 

b3

N

 

 

 

 

а)

 

 

 

 

 

б)

 

Рисунок 3.8 – Циклы и такты МП (а) и пример размещения команды в памяти МПС(б)

МП имеет следующие типы МЦ:

-выборки кода команды OF (от англ. Opcode Fetch);

-чтение из памяти MR (от англ. Memory Read);

-записи в память MW (от англ. Memory Write);

-чтение из ВУ IOR (от англ. Input-Output Read);

-записи в ВУ IOW (от англ. Intput-Output Write);

-подтверждение прерывания INA (от англ. Interrupt Acknowledge);

-освобождения шин BI (от англ. Bus Idle);

-останов HALT.

183

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

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

Командный цикл начинается с выборки команды. Первый машинный цикл М1 всегда цикл выборки команды (OF) из памяти, в нем МП считывает первый байт команды, содержащий код операции. После этого могут быть еще один или два МЦ типа MR, поскольку команда может быть однобайтной, двухбайтной или трехбайтной. Если команда трехбайтная, то она хранится в памяти так, как показано на рисунке 3.8, б.

После выборки и декодирования команды могут понадобиться дополнительные машинные циклы для ее выполнения. Всего в КЦ может быть от одного до пяти МЦ (М1…М5).

МЦ состоит из тактов, в которых выполняются типовые действия. Число тактов в различных МЦ – 3…6, но большинство МЦ содержит три такта. Такты – интервалы между одноименными фронтами тактовых импульсов.

Рассмотрим типовые действия МП, выполняемые в тактах различных машинных циклов.

Втакте Т1 происходят следующие процессы:

-адрес памяти или ВУ выставляется на шинах А15-8 и АD7-0;

-генерируется сигнал ALE для фиксации битов АD7-0 во внешнем регистре;

-на линиях IO/ M , S1 и S0 выставляется информация о типе МЦ;

-проверяется флаг HALT и при условии HALT = 0 МП переходит к такту Т2. В противном случае МП переходит в состояние «останов».

В такте Т2 выполняются следующие действия:

-проверяется вход READY, т. е. определяется готовность адресованного в такте Т1 устройства к обмену с МП;

-программный счетчик PC инкрементируется, если данный МЦ является частью выборки команды;

184

- во всех МЦ, кроме цикла BI (освобождения шин), один из управляющих

стробов RD, WR или INTA переходит в активное нулевое состояние.

Такт ожидания TW появляется при неготовности памяти или ВУ к обмену с МП (READY = 0). Сигнал READY проверяется в каждом такте ожидания. Состояние линий адресов, данных и управления остаются теми же, что и в конце такта Т2. Такты ожидания вставляются до появления единичного сигнала READY, после чего МП переходит к такту Т3.

В такте Т3 байт команды или байт данных передается в МП или из него

положительным фронтом управляющего строба (RD, WR или INTA ). Управляющий строб возвращается в пассивное единичное состояние. Если данный МЦ является циклом M1, то за тактом Т3 следует такт Т4. В противном случае МЦ заканчивается.

В такте Т4 происходит декодирование принятой МП команды. Системные шины в этом такте не используются. Далее возможны два варианта – МЦ из четырех или из шести тактов.

Такты Т5 и Т6 вводятся при необходимости для завершения некоторых команд, в которых после их декодирования нужно произвести какие-либо внутренние действия. Системные шины не используются. Выполняются операции, внутренние для МП.

Затем проверяется флаг захвата шин HOLD, и если он установлен, то реализуется переход к режиму захвата на время существования сигнала HOLD, в течение которого осуществляется обмен данными между памятью и ВУ под управлением контроллера ПДП без участия МП.

При сброшенном флаге захвата шин определяется, является ли данный МЦ последним машинным циклом КЦ. Если этого нет, то начинается следующий МЦ с такта Т1. Если же данный МЦ завершает КЦ, то анализируется наличие или отсутствие запросов прерывания INT. Если такие запросы присутствуют, то

устанавливается активный уровень строба подтверждения прерывания INTA и сбрасывается триггер разрешения прерывания INTE (от англ. Interrupt Enable). После обработки запроса прерывания МП переходит к циклу М1 следующего КЦ.

Временные диаграммы цикла чтения с тактом ожидания приведены на рисунке 3.9.

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

185

готовности объекта к обмену с МП, приводящее к введению такта ожидания. В такте ожидания появляется сигнал готовности, разрешающий переход к такту

Т3, в котором положительном фронтом строба чтения RDданные вводятся в МП. Интервалы действия тех или иных сигналов жестко определяются временны-

ми диаграммами МЦ. На рисунке 3.9 отмечены некоторые из этих интервалов:

-интервал tAD определяет максимальное время от момента выставления адреса до появления данных на шине AD7-0;

-интервал tAL отмечает момент загрузки младшего байта адреса во внешний регистр;

 

T1

T2

TW

T3 T1 (следующий МЦ)

 

CLK

 

 

 

 

 

tAD

 

 

A15-8

 

Cтарший полуадрес

 

AD7-0

Младший

 

 

Данные

полуадрес

 

 

 

 

 

tAL

 

 

 

ввод

 

 

 

данных

ALE

 

 

 

 

 

 

 

t RD

tRA

RD

Ready

tAC

Рисунок 3.9 – Временные диаграммы цикла чтения МП

-интервал tAC отмечает время от момента выставления адреса до появления активного уровня управляющего строба RD;

-интервал tRD задает длительность управляющего строба RD;

-интервал tRA определяет время от момента чтения данных до появления нового значения адреса (за это время старые данные должны быть сняты с линии

AD7-0).

186

3.2.10 Блок управления прерываниями

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

ключениями.

Аппаратными прерываниями называют штатные ситуации, в которых прерывания запрашиваются внешними сигналами. Если же запрос формируется командами программы, то говорят о программных прерываниях. Аппаратные прерывания возникают также при требованиях обслуживания от ВУ. Извне могут поступать сигналы об аварийных ситуациях в управляемых объектах, неисправностях источников питания и др.

Аппаратные прерывания увеличивают производительность системы, позволяя ВУ занимать время МП только при их готовности к обмену. Когда ВУ нуждается в обслуживании, оно устанавливает триггер запроса прерывания, и сигнал запроса сохраняется, пока не будет воспринят и обработан МП. В ответ на при-

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

При организации прерываний решаются задачи маскирования запросов и определяются их уровни приоритета при конфликтах из-за одновременного поступления нескольких запросов.

Маскирование состоит в запрещении действия соответствующего входа. Входы запросов прерывания могут быть маскируемыми или немаскируемыми, т. е. принимаемыми всегда. Маскируемые прерывания могут быть разрешены или запрещены командами EI (от англ. Enable Interrupt) и DI (от англ. Disable Interrupt), действующими на все маскируемые входы одновременно. Начальный сброс МП запрещает обслуживание маскируемых запросов, для их последующего разрешения следует ввести команду EI. Имеется также возможность раздельного маскирования запросов с помощью специальной команды SIM (от англ. Set Interrupt Mask).

Приоритеты входов вводятся для решения вопроса о том, какому запросу предоставить обслуживание при наличии одновременно нескольких. Простей-

187

ший вариант введения приоритетности – присвоение входам фиксированных неизменных приоритетов.

Различают радиальные и векторные прерывания. При обслуживании радиальных прерываний источник выставляет запрос, обслуживание которого не требует передачи МП сведений о начальном адресе подпрограммы, поскольку ее адрес известен (адрес присвоен данному входу, для запроса типа RSTn он равен 8n). При векторных прерываниях начальный адрес подпрограммы обслуживания должен быть сообщен МП (МП передается вектор прерываний – информация, необходимая для перехода к соответствующей подпрограмме обслуживания, в простейшем случае это просто начальный адрес прерывающей подпрограммы).

Входы запросов могут быть статическими или динамическими. Статические реагируют на уровень сигнала и, следовательно, запросы автоматически снимаются при исчезновении активного уровня запроса. Динамические реагируют на фронт сигнала запроса, запоминая запрос в триггере с динамическим управлением. Такой запрос сохраняется, пока не будет обработано прерывание или до команды SIM или же до сигнала RESET.

Прерывание должно ввести в действие команду вызова подпрограммы CALL b3b2, согласно которой текущее состояние программного счетчика PC передается в стек, а в PC загружаются начальный адрес подпрограммы, подлежащей выполнению. Инициатива ввода команды CALL b3b2 принадлежит ап-

паратным средствам МПС. Если прерывания разрешены, то они осуществляются МП в конце выполнения текущей команды.

Рассматриваемый МП имеет четыре входа запроса прерывания (рисунок 3.6) и

один выход управления им INTA :

-TRAP – вход запроса немаскируемого прерывания, имеющий максимальный приоритет. Он не может быть запрещен командами программы. К этому входу подключают сигналы, оповещающие о наиболее важных событиях в МПС, появление которых требует безусловной реакции (например, сигнал, оповещающий об аварии источника питания). Прерывание радиальное, начальный адрес подпрограммы его обслуживания размещен в фиксированной ячейке памяти. Таким образом, появление запроса прерывания по входу TRAP независимо ни от чего вызовет соответствующее прерывание после выполнения текущей команды.

-RSTn1; RSTn2 – входы запросов радиального прерывания типа RSTn (от англ. Restart). Начальные адреса подпрограмм обслуживания известны (равны 8n).

188

Приоритеты фиксированы. Приоритеты этих запросов выше приоритета запроса INTR. Запросы маскируемые, в том числе и независимо друг от друга.

- INTR (от англ. Interrupt Request) – вход запроса векторного прерывания,

вызывающий генерацию строба INTA , если прерывание разрешено программой. При поступлении запроса по входу INTR вектор прерывания должен быть передан в МП извне. К этому входу, в частности, подключают контроллер прерываний – блок, который воспринимает несколько запросов от ВУ, решает задачи учета их приоритетности и маскирования, вырабатывает для МП единственный сигнал запроса INTR и пересылает в МП соответствующий вектор

прерывания по сигналу МП INTA .

- INTA (от англ. Interrupt Acknowledge) – выход строба подтверждения векторного прерывания, который формируется МП после завершения текущего командного цикла. Используется для чтения вектора прерывания. Сигнал реализуется как последовательность двух импульсов, если вводимый вектор прерывания содержит два байта.

Для аппаратного ввода вектора прерывания может быть использована схема на рисунке 3.10.

INTA

INTR

AD7

МП AD6 AD5

...

AD0

1

1

1

...

1

...

Байт вектора прерывания

Рисунок 3.10 – Аппаратная реализация пересылки байта вектора прерывания при выполнении операции рестра RST

189

Появление запроса INTR при разрешенных прерываниях ведет к ответу МП

сигналом INTA , во время действия которого на шине AD7-0 появляется вводи-

мый байт вектора прерывания (рисунок 3.10). Сигнал INTA поступает на вхо-

ды разрешения выхода OE буферных усилителей и обеспечивает передачу вектора прерывания в МП.

3.2.11 Форматы данных и команд. Способы адресации

Совокупность адресов, которые могут быть сформированы МП, образует адресное пространство (АП) МПС. Адреса памяти могут занимать все АП или его часть, а линейно организованная память независимо от технической реализации может быть условно представлена набором регистров (ячеек), число которых М, а разрядность – N (рисунок 3.11).

N-1

0

Адрес

 

 

 

RG 0

 

0000 h

 

 

 

RG 1

 

0001 h

 

 

 

RG 2

 

0002 h

 

 

 

.

 

.

RG M-2

 

FFFE h

 

 

 

RG M-1

 

FFFF h

 

 

 

Рисунок 3.11 – Условное представление линейной организации памяти для 16разрядной шины адреса

Емкость АП связана с разрядностью шины адреса m соотношением АП = 2m. Например, с помощью 16-разрядной шины адреса можно адресовать 216 = 64 К объектов, с помощью 20-разрядной 1 М объектов и т. д. Адреса в АП обычно выражают в шестнадцатеричной системе счисления. Так например, диапазон адресов в АП с емкостью 64 К будет записан как 0000 h…FFFF h (ри-

сунок 3.11).

АП используется блоками ОЗУ, ПЗУ и ВУ, к которым обращается МП. Распределение АП между указанными претендентами производится проектировщиком системы.

190