Функционирование микропроцессорной системы

Блок-схема алгоритма функционирования на примере МПС на основе МП КР580ВМ80А в течение рабочего цикла выполнения команды приведена на рис. 11.91.

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

Считанная по этому адресу из памяти команда поступает на шину данных и принимается регистром команд. В счетчике команд МП формируется адрес следующей команды.

Затем дешифратор команд дешифрует код операции в команде, а УУ формирует соответствующую коду операции серию управляющих сигналов, обеспечивающую реализацию в МП заданной операции. При исполнении команды могут потребоваться дополнительные обращения к памяти для вызова в МП дополнительных байтов команды (в случае двух-, трехбайтовых команд), операндов или для записи в память числа, выдаваемого из МП. В этом случае выполняется процедура тандемных пересылок.

После исполнения данной команды на шину адреса поступает адрес следующей команды и т.д.

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

Часто возникает необходимость заставить МП автоматически выполнить одну из набора специальных программ, когда в программе или в МПС возникают некоторые определенные условия. Такие действия называют прерыванием, а выполняемую при этом программу — процедурой прерывания. Различают внутреннее и внешнее прерывания. Внутреннее прерывание исполняемой программы вызывается состоянием самого МП, а внешнее — специальным сигналом, подаваемым в МП от обслуживаемого им внешнего устройства.

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

1бб

Блок-схема алгоритма функционирования МПС

Рис. 11.91. Блок-схема алгоритма функционирования МПС

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

Существуют различные варианты реализации процедур прерывания, но чаще всего при выполнении условия для прерывания МП завершает текущую команду, заносит содержимое регистра признаков (РП) и счетчика команд (СК) в стек, а затем обращается к вектору прерывания (зарезервированной для каждого вида прерывания ячейке памяти, где записано новое содержимое регистра состояния и адрес программы, выполняемой им в этом случае).

Стек представляет собой совокупность ячеек памяти, организованных так, что обращение к ним может происходить в процессе, обратном записи. Это означает, что стек осуществляет принцип работы «последним пришел — первым вышел».

В большинстве МП приняты запросы на прерывания немаскируемые и маскируемые.

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

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

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

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

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

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ     След >