Система прерывания программ
Упрощенный алгоритм обработки прерываний на уровне команд представлен на рис. 3.5.2. Запоминание состояния прерываемой программы и переход к прерывающей программе; Организация приоритетного выбора между запросами, поступающими одновременно; Рис. 3.5.2. Упрощенный алгоритм обработки прерываний на уровне команд. Рис. 3.5.3. Управление прерываниями на уровне микрокоманд и команд. Восстановление… Читать ещё >
Система прерывания программ (реферат, курсовая, диплом, контрольная)
Во время работы ЭВМ внутри нее самой или во внешней среде могут возникнуть события, требующие немедленных ответных действий.
Прерывание программы — это способность ЭВМ при возникновении определенных ситуаций, требующих немедленной реакции ЭВМ, прекратить выполнение текущей программы и передать управление программе, реализующей реакцию ЭВМ на возникшую ситуацию.
Реакция ЭВМ состоит в том, что процессор формирует управляющий сигнал, требуемый прекращения выполнения текущей программы, а затем формирует управляющий сигнал перехода к обработке другой программы, соответствующей происходящему событию. По завершении этой программы ЭВМ возвращается к выполнению текущей программы.
Основные функции системы прерывания:
- · запоминание состояния прерываемой программы и переход к прерывающей программе;
- · организация приоритетного выбора между запросами, поступающими одновременно;
- · восстановление состояния прерванной программы и возврат к ней.
Заданная исходными данными (см. п. 2.2.) радиальная СПП реализуется с помощью котроллера прерываний (рис. 3.5.1). В такой СПП каждое устройство имеет индивидуальную линию запроса прерывания, которая подключается к контроллеру прерываний. Будем ориентироваться на контроллер прерываний КМ1804ВН1. Эта структура обеспечивает также довольно простую реализацию входящего в состав периферийного устройства интерфейса, схема которого сводится, к единственному триггеру запроса на прерывание. Структура с несколькими линиями запроса позволяет сопоставить каждому уровню приоритета (устройству) один разряд маски.
Сигналы прерываний, поступающие на входы INR7-INRO устройства управления прерываниями (УУП), преобразуются в вектор (в простейшем случае это простая шифрация).
Полученный вектор поступает в дешифратор векторного адреса (ДВА) МУУ, где происходит вычисление начального адреса микропрограммы, которую нужно загрузить в секвенсор.
При поступлении запроса на прерывание процессор сохраняет словосостояние прерванной программы (т.к. прерывания на уровне команд, то сохраняются: РОН, регистр состояния, адрес следующей команды (РОН сохраняется обработчиком прерывания)) и производит выполнение подпрограммы обработки прерывания, после чего, процессор восстанавливает сохраненные значения. Таким образом, реализуется возврат из прерывания посредством запоминания и восстановления состояния прерванной программы. В данной системе прерываний глубина прерываний определяется размером стека секвенсора МК.
Упрощенный алгоритм обработки прерываний на уровне команд представлен на рис. 3.5.2.
Рис. 3.5.1 Система прерываний с несколькими линиями запросов.
Рис. 3.5.2. Упрощенный алгоритм обработки прерываний на уровне команд
Заданием устанавливается СПП на уровне команд, однако некоторые прерывания требуют незамедлительной обработки (например, таймер). Для осуществления прерываний на уровне микрокоманд необходимо добавить логическую схему в секвенсор микрокоманд (см. рис. 3.5.3), которая должна определять необходимость прерывания микрооперации и осуществлять управление секвенсором. Основная идея состоит в замещении адреса (с запоминанием его в стеке секвенсора) на выходе секвенсора [6]. Если логическая схема определила необходимость в прерывании текущей микрооперации, она должна также перевести выходы секвенсора в Zсостояние и разрешить вывод из специального буфера вычисленного с помощью ДВА адреса микропрограммы.
Рис. 3.5.3. Управление прерываниями на уровне микрокоманд и команд.