
книги из ГПНТБ / Дроздов Е.А. Основы построения и функционирования вычислительных систем
.pdfцессора с работы по одной программе на работу по дру
гой программе, по и принимаемыми принципами |
обслу |
|
живания запросов но степени их важности; |
|
|
2) время обслуживания |
прерывания т 0 б с л , |
опреде |
ляемое по формуле |
|
|
Тобсл = |
Тв ~f~"Гзі |
|
оно характеризует потери машинного времени на орга низацию процесса прерывания;
3) коэффициент потерь при і-и прерывании
[ { |
, |
т обслг |
. |
|
J M i Z |
|
i |
f |
> |
|
|
^оослг |
г 1 |
п . п і |
расширением этого временного параметра может слу жить средний коэффициент потерь, рассчитываемый по значениям Тобслг для всех типов прерываний и вероят ностям появления соответствующих запросов.
Важными параметрами систем прерываний являются также аппаратурный состав, вероятность насыщения и глубина прерываний. Аппаратурный состав характери зует затраты на систему прерываний и выражается в ко личестве стандартных элементов или модулей. Под на сыщением понимается случай, когда
где Трі — время реакции системы па запрос |
і-го |
источ |
||
ника; Гзапг — период |
посылки запросов 1-м |
источником. |
||
Очевидно, что в случае насыщения |
отдельные запросы |
|||
на прерывание не обслуживаются и практически |
теря |
|||
ются. Вероятность насыщения |
|
|
|
|
Рц — Рш&кс [Трг |
(^запг) м и н ^ 0], |
І = 1 , 2, |
tl, |
|
где n — количество источников сигналов прерываний. Глубина прерываний характеризуется максимальным
количеством программ, которые могут прерывать друг друга. Считается, что система имеет нулевую глубину прерываний, если она не допускает прерывания выпол няемой прерывающей программы. При глубине преры ваний у = 1 возможно прерывание первой прерывающей программы второй прерывающей программой и т. д. Схематическое изображение работы системы при раз-
60
личных значениях у приведено на рис. 1-12; обозначения на этом рисунке такие же, как и па рис. 1-11.
К характеристикам систем прерываний, отвечающим основным принципам их построения, относят еще воз можности осуществления прерываний в те или иные моменты выполнения прерываемой программы. Для
тп шш ц щ щш І
ГРІ |
б) |
Рис. 1-12. Временная |
диаграмма прерывания: |
а) при ѵ = 0; |
б) при ѵ > 3 . |
большинства современных систем характерна возмож ность осуществления прерывания после окончания вы
полнения любой |
команды прерываемой |
программы. |
||||
В отдельных случаях |
эти возможности |
расширяются за |
||||
счет |
введения |
в |
код |
команды специального |
признака, |
|
при |
равенстве |
которого единице может |
быть осущесг- |
61
влено прерывание после завершения выполнения данной команды; в противном случае прерывание не осущест вляется. При наличии в составе процессора регистровдублеров для всех регистров, содержимое которых ме няется в процессе выполнения не только программы, но и отдельных команд, оказывается возможным осу ществление прерываний на любом такте работы уст ройства управления.
При наличии в вычислительной системе многих источников прерываний оказывается необходимым жест кое упорядочение обработки и обслуживания их запро сов на прерывание; кроме того, необходимо учитывать степень важности запросов, т. е. их приоритетность. Поэтому системы прерываний практически всегда до полняются системами приоритетов.
Приоритеты. На рис. 1-12,6 представлен простейший случай обслуживания запросов, когда любой последую щий запрос вызывает прерывание программы, выпол няемой по предыдущему запросу. В реальных системах такой случай возможен только тогда, когда степень важности запросов возрастает от ЗПі к З Я 4 . В общем случае степень важности запросов не зависит от момен тов поступления их на вход системы прерываний, по этому каждому источнику запросов на прерывания при сваивается, как правило, постоянный уровень приори тетности. Считается, что нулевой уровень обладает наи высшим приоритетом. Прерывание нулевого уровня, т. е. прерывание, отвечающее источнику запросов с ну
левым уровнем приоритетности, может прервать |
любую |
|||
из программ, |
отвечающих уровням 1, 2, |
m при вы |
||
делении |
m - И |
уровней. Прерывание 1-го уровня |
может |
|
прервать |
любую из программ, отвечающих |
уровням '2, |
||
3, . . . , m, но не может прервать программу, |
отвечающую |
|||
уровню |
0, и |
т. д. В большинстве случаев |
принимается, |
что прерывание уровня і не вызывает прерывания про граммы, отвечающей этому же уровню; прерывания
одинакового |
уровня производятся в порядке поступле |
ния на них |
запросов. Отметим также, что текущая ра |
бочая программа имеет, как правило, низший приоритет, т. е. она отвечает условному уровню m+ 1.
Обслуживание запросов на прерывания с учетом их приоритетов иллюстрируется общей временной диа граммой на рис. 1-13. На этом рисунке ЗПІ обозначает запрос прерывания первого уровня, ЗП3 — запрос пре-
62
рывания третьего уровня и т. д. В связи с введением приоритетов фактическое время реакции Т ' Р І системы на отдельные запросы увеличивается, поскольку очередь на обслуживание формируется в соответствии с приори
тетными |
уровнями. |
|
|
Если |
источников запросов |
(сигналов) на |
прерыва |
ния сравнительно немного, то |
установление |
приоритет |
ности прерываний обеспечивается аппаратными метода ми. Например, сигналы прерываний фиксируются в раз
рядах |
некоторого регистра |
в строгом |
соответствии |
со |
т п - |
Щ |
, |
Щ |
- і |
Рис. 1-13. Приоритетное обслуживание запросов на прерывания.
своими уровнями. Для выявления наличия запросов и установления их приоритетности производится последо
вательный анализ |
состояний триггеров |
регистра, |
начи |
|||
ная с |
нулевого |
разряда. Анализ |
производится |
цикли |
||
чески, |
причем |
в |
.последующем |
цикле |
анализируются |
состояния только тех триггеров, которые отвечают раз рядам с номерами, меньшими номеру разряда, по кото рому в предыдущем цикле осуществлено прерывание. Иначе говоря, после выявления запроса г-го уровня в собственно систему прерываний выдается сигнал на осуществление прерывания и блокируются до конца его выполнения цепи анализа состояний триггеров, на чиная с і-го разряда.
При использовании только аппаратных методов уста новления приоритетности запросов на прерывания из-
63
менение уровней приоритетов в процессе функциониро вания вычислительной системы практически невозможно, так как в этом случае жестко соблюдается транзитив ность приоритетов. Чтобы система приоритетов была более гибкой, ее дополняют программными или аппарат но-программными средствами, позволяющими в случае необходимости нарушать транзитивность приоритетов. Обычно эти средства объединяются со средствами за щиты от прерываний, позволяющими запрещать те или иные прерывания на время выполнения отдельных или всех программ (подпрограмм).
Защита от прерываний. Разнообразие и сложность ситуаций, возникающих в процессе функционирования •вычислительных систем, требуют создания достаточно ігибких систем прерываний и приоритетов, обеспечиваю щих в необходимых случаях запрет прерываний в соот ветствии со сложившейся обстановкой. Организация таких запретов и составляет сущность защиты от пре рываний. В систему прерываний и приоритетов вводится специальный регистр защиты, разрядность которого отвечает разрядности регистра прерываний, в котором фиксируются сигналы прерываний. В регистр защиты 'вводится программно специальный код защиты, назы ваемый еще кодом маски, или просто маской. Единица в і-м разряде кода защиты разрешает прерывание і-го уровня, а нуль — запрещает. Непосредственная реализа ция запретов обеспечивается соответствующей коммута цией выходных цепей указанных регистров.
Регистр защиты является программно-доступным. "При каждом прерывании содержимое его заменяется новым кодом защиты, отвечающим прерывающей про грамме. В некоторых системах код защиты делится на три части. Одна из них содержит всегда единицы, т. е. разрешает осуществить определенную группу прерыва ний при данном прерывании, вторая всегда состоит из нулей, т. е. жестко запрещается некоторая группа пре рываний при данном прерывании, а третья является программно-изменяемой. Прерывания первой группы называют немаскируемыми, второй группы — маскируе мыми и третьей группы — программно-маскируемыми.
Возможности программного изменения кода защиты обеспечивают и программное изменение уровней приори тетности на время действия данной прерывающей про граммы. Действительно, если при выполнении преры-
64
вающей программы k-то уровня код защиты содержит нули в разрядах, начиная с і-го при i<k, то на время своего действия эта программа имеет более высокий приоритет по сравнению с первоначальным.
Защита от прерываний может осуществляться и при разбиении источников сигналов прерываний на одина ковые по уровням приоритетности. Тогда регистры пре рываний и защиты имеют разрядность, равную количест ву выделенных групп. Такое построение системы пре рываний и приоритетов особенно удобно при большом количестве источников запросов на прерывания, так как
обеспечивает |
сокращение |
общего |
аппаратурного соста |
|||||||
ва. В то же время в |
такой системе возможна |
двухсту |
||||||||
пенчатая защита от |
прерываний — на |
уровне |
групп и |
|||||||
внутри |
групп. |
Идентификация |
источников |
прерываний |
||||||
в |
этом |
случае |
также |
является |
двухступенчатой. |
|||||
|
Регистр защиты, |
как |
отмечалось |
выше, |
относится |
|||||
к |
числу |
программно |
доступных. |
Поэтому |
оказывается |
обязательным запоминание его содержимого при преры ваниях. Во многих вычислительных системах содержи мое регистра защиты, или код маски, включается в слово состояния программы (ССП). Кроме кода маски в ССП включаются: код прерывания, т. е. содержимое регистра прерываний, признак результата по операции, на кото рой произошло прерывание, а также адрес команды, с которой возобновляется выполнение прерванной про граммы.
Хранение ССП осуществляется в специальных ячей ках оперативной памяти системы. Сохранение и вос становление другой необходимой информации по пре рываемой программе осуществляется прерывающей программой.
Блоки прерываний и приоритетов. Под блоком пре рываний и приоритетов (БПП) понимается основная аппаратурная часть системы прерываний и приоритетов, предназначенная для хранения кодов прерываний и за щиты, а также выработки сигналов, обеспечивающих
необходимые |
действия |
устройства |
управления. |
Если |
|
количество |
источников |
запросов |
на |
прерывания |
неве |
лико и принята нулевая |
глубина |
прерываний, т. е. |
у = 0, |
то |
основные действия по переходу к прерывающей про |
||
грамме |
могут обеспечиваться непосредственно БПП. |
||
В |
других случаях |
более целесообразной оказывается |
|
система |
прерываний |
аппаратно-программного типа. |
5 - 1 5 Ц |
65 |
На рис. 1-14 приведена схема блока прерываний и приоритетов для системы с y = 0 и переходом к преры вающей программе за счет использования аппаратных средств. Сигналы от источников запросов на прерывания вводятся непосредственно в регистр прерываний РгПр, каждый триггер которого отвечает вполне определенно му источнику. Наивысший приоритет имеет сигнал, зна чение которого фиксируется триггером Тгі. Для хране ния кода маски, или кода защиты от прерываний,
Сигналы прерываний
а- |
Г |
MC |
|
У С | |
У С |
|
I |
УС |
~1 |
1 : |
|
|
|
г |
|
|
|
||
to |
|
|
Схй |
I I Те„ I |
• • • I те |
|
I I |
Те, || РгПр |
|
|
|
|
- |
'5dSf |
' |
|
|
|
|
|
|
|
|
I |
|
|
|
|
|
|
отТгППр—Jß| |
I |
•• • |
Jh |
|
Тг1 |
! Р г |
М |
||
I |
EIL |
^ ± J T r r _ _ ^ T _ q r ^ |
|
|||||||
|
|
|
УС (от УУ) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
t |
J 1- |
ус(от УУ) |
|
|
|
|
|
Код |
маски |
|
|
||
Рис. 1-14. |
Блок |
прерываний и приоритетов |
при |
у=0. |
|
|||||
используется |
регистр |
РгМ, |
разрядность |
которого |
в об |
|||||
щем случае равна разрядности регистра |
РгПр. |
Ввод |
||||||||
кода маски в |
РгМ |
производится |
через |
группу входных |
||||||
вентилей Ві (В\ , В\,..., |
В" ). На время |
выполнения пре |
||||||||
рывающей программы |
предусмотрен сброс |
в состояние О |
||||||||
всех триггеров РгМ. |
Для |
сохранения |
кода маски |
пре |
||||||
рванной программы |
этот код до |
сброса |
триггеров |
РгМ |
передается через группу вентилей В2 для временного хранения в фиксированную ячейку запоминающего уст ройства. Выявление незамаскированных, т. е. разрешен ных, прерываний обеспечивается группой логических
66
элементов # і (И\ ,И\, Й'[) за счет того, что входы каждого элемента этой группы связаны с единичными выходами триггеров соответствующего разряда РгПр
и РгМ.
Основную логическую часть блока составляет схема анализа СхА, обеспечивающая выявление сигнала на прерывание, обладающего наибольшим приоритетом среди разрешенных, и формирование адреса первой команды прерывающей программы. Выделение сигнала
прерывания |
наибольшего |
приоритета |
осуществляется |
|||||||||
посредством |
элемента И2 и группы |
схем запрета |
СЗг, • •. |
|||||||||
..., |
СЗП- При этом |
начало работы |
указанных |
элементов |
||||||||
определяется |
моментом поступления |
на |
один |
из |
вхо |
|||||||
дов |
# 2 сигнала z0. В |
рассматриваемом |
случае |
сигнал г0 |
||||||||
вырабатывается при опросе состояния триггера |
при |
|||||||||||
знака |
прерываний |
ТгППр |
регистра команд |
РгК; |
оче |
|||||||
видно, |
что сигнал |
z0 |
может |
образоваться |
только |
при |
выполнении той команды, на которой разрешено осуще ствление прерывания. Если есть хотя бы одно разрешен ное прерывание, то возбуждается одна из шин, к кото
рым |
подключены входы |
элемента |
ИЛИ^ и |
диодной |
сетки |
ДС, выполняющей |
функции |
шифратора. |
Возбу |
ждение этих шин осуществляется в соответствии со сле дующими зависимостями:
У 2 = = - ^ г У і і
Уп = Хп{у,\/у2У |
... Ѵ У п - і ) . |
Рассмотрение приведенных |
зависимостей показывает, |
что в схеме анализа действительно обеспечивается вы явление сигнала с наибольшим приоритетом. При этом
надо иметь в виду, что |
правильное возбуждение |
одной |
из шин уі (і=\, 2, |
п) обеспечивается только |
с по |
ступлением сигнала z0 и после завершения всех пере
ходных |
процессов. Для того чтобы исключить |
выдачу |
из СхА |
ложной информации, к выходам ДС |
и ИЛИ^ |
подключены вентили, открываемые в соответствующие
моменты времени. |
Так, вентиль В^ открывается только |
|||
после |
поступления |
в СхА |
сигнала |
z0, так как он управ |
ляется |
триггером |
блокировки ТгБ, |
который сбрасывает |
|
ся в состояние 0 сразу же |
после |
прохождения через ВІ |
||
5* |
|
|
|
67 |
сигнала кода І. Вентили Bs открываются только после прохождения через В^ сигнала кода 1.
Информация, выдаваемая из схемы анализа, имеет двоякий характер. Сигнал кода /, выдаваемый через Віу свидетельствует о необходимости осуществления преры вания. Информация, образующаяся на выходах ДС, или шифратора, есть не что иное, как код адреса первой команды прерывающей программы, отвечающей выде ленному сигналу прерывания. Поэтому сигналом с В± запускается узел выработки управляющих сигналов при
прерываниях |
УВУС, а |
код, образующийся на выходах |
ДС, вводится |
в счетчик |
команд СчК центрального уст |
ройства управления. Выработка всех управляющих сиг налов УС как в центральном устройстве управления УУ, так и в УВУС блока прерываний и приоритетов осуще ствляется в соответствии с принятыми временными диа граммами. Отметим, что управляющие сигналы выра
батываются |
также для |
сброса в нуль тех триггеров |
||||
РгПр, |
которые |
отвечают |
реализуемым |
сигналам |
преры |
|
ваний. |
уфО |
|
|
|
|
|
При |
и |
аппаратно-программной |
системе |
преры |
ваний блоки прерываний и приоритетов не содержат специальных узлов выработки управляющих сигналов и не рассчитываются на непосредственное формирование адресов начальных команд прерывающих программ. На рис. 1-15 приведен вариант схемы блока прерываний и приоритетов для такого случая. Код прерываний, со ставляемый из сигналов прерываний, и код маски вво дятся соответственно в регистры РгПр и РгМ. Посколь ку система имеет ненулевую глубину прерываний, то содержимое РгПр и РгМ должно сохраняться для каж дой прерываемой программы; выдача кодов прерываний и маски, составляющих основу слова состояния про
граммы, в |
запоминающее |
устройство |
осуществляется |
|
через группы вентилей |
В3 |
и В2 соответственно. Управ |
||
ляющие сигналы УС3 и |
УС2, |
как и все остальные, выра |
||
батываются |
в центральном |
устройстве |
управления. |
Выделение сигнала, имеющего наибольший приори тет, осуществляется посредством последовательной це почки элементов И и ИЛИ. Начало работы по выявле нию и выделению такого сигнала определяется момен том поступления сигнала УС0, вырабатываемого в цен тральном УУ в соответствии с принятыми принципами определения возможных моментов прерываний. Оче-
68