Система прерываний ЭВМ

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

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

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

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

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

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

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

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

Принцип действия системы прерываний заключается в следующем: при выполнении программы после каждого рабочего такта микропроцессора изменяется содержимое регистров, счетчиков, состояние отдельных управляющих триггеров, т. е. изменяется состояние процессора. Информация о состоянии процессора лежит в основе многих процедур управления вычислительным процессом. Не вся информация одинаково актуальна, есть существенные элементы, без которых невозможно продолжение работы. Эта информация должна сохраняться при каждом "переключении внимания процессора".

Совокупность значений наиболее существенных информационных элементов называется вектором состояния или словом состояния процессора (в некоторых случаях оно называется словом состояния программы).

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

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

Наборы информационных элементов, образующих векторы состояния, отличаются у ЭВМ разных типов. В IBM PC вектор состояния включает содержимое счетчика команд, сегментных регистров, регистра флагов и аккумулятора (регистра АХ). В более поздних версиях основу вектора состояния образуют такие регистры, как слово состояния машины (Mashine status word - MSW), регистр состояния задачи (TR) и др.

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

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

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

Некоторые из этих запросов порождаются самой программой, но время их возникновения невозможно предсказать заранее.

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

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

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

В 32-битных микропроцессорах число n в команде INTn определяет номер индекса вызываемого прерывания в таблице дескрипторов прерываний IDT. Таблица IDT в режиме реальной адресации является массивом четырехбайтных дальних указателей. Линейный базовый адрес таблицы IDT определяется содержимым регистра IDTR. При переходе в режим реальных адресов первоначальное значение IDTR равно нулю (т.е. начало таблицы DTR совпадает с началом вектора прерываний IBM PC).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: