Организация ЭВМ и систем

Порог прерывания.


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

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

Маска прерывания

представляет собой двоичный код, разряды которо­го поставлены в соответствие запросам или классам (уровням) прерываний. Маска загружается командой программы в регистр маски (рис. 3.14).

Рис.3.14. Маскирование прерываний

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

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


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

 

 

Организация перехода к прерывающей программе

%,

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

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

Наиболее гибким и динамичным является векторное прерывание, при котором источник прерывания, выставляя запрос прерывания, посылает в процессор (выставляет на шины интерфейса) код адреса в памяти своего век­тора прерывания.

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


Содержание раздела