
книги из ГПНТБ / Дроздов Е.А. Основы построения и функционирования вычислительных систем
.pdfБлок защиты состоит из регистра маски РгМ, де шифратора старших разрядов адреса ДшКА2 и ряда логических элементов. Логические элементы И, количе
ство которых равно разрядности регистра |
маски, слу |
|
жат для формирования |
сигнала г разрешения |
обращения |
к памяти. Если г —0, |
то за счет использования в схеме |
|
логического элемента |
НЕ обеспечивается формирование |
сигнала нарушения границ СНГ, по которому осущест
вляется запрос на прерывание выполняемой |
программы. |
||||||
ДшЯ |
|
|
ДшКАі |
|
|
||
Вг |
|
|
|
|
|
|
|
|
|
6 |
к-1 |
2 / |
|
0 |
|
V" W |
|
РгМ |
|
|
|||
|
\ |
t |
t |
Ввод |
|||
К Яг |
К Я, РгЯ |
СНГ |
|||||
|
|
|
хода |
||||
|
ОЗУ |
63 |
"ï |
ï |
F |
||
|
Код |
маски |
|
||||
|
|
|
|
|
|
Рис. 1-9. Схема защиты памяти по маскам.
Пусть k = 8 и в регистре РгМ зафиксирован код 00100110. Тогда при поступлении в РгА кода адреса 0101... 0 обращение к оперативной памяти возможно. Действительно, в этом случае код КАг, подаваемый на входы ДшКА2, обеспечит возбуждение выхода 2 дешиф ратора. Так как во втором разряде РгМ содержится еди ница, то на выходе соответствующего элемента И фор мируется сигнал разрешения обращения к памяти. Аналогично будет протекать работа схемы при поступ лении в РгА кодов 1010... 1, 0011...0 и т. п. Иначе говоря, для всех кодов адресов, три старших разряда которых содержат комбинации 001, 010 или 101, обра щение к памяти возможно. Если же в РгА поступает, например, код 0000... 1, то обращение к памяти не осу ществляется и вырабатывается сигнал СНГ. Действи тельно, в этом случае возбуждается нулевой выход де шифратора; так как в нулевом разряде РгМ зафиксиро ван нуль, то на выходе элемента И этого разряда сигнал кода / не формируется, т. е. г — 0.
50
Системы защиты по ключам. Такие системы являют ся дальнейшим развитием систем защиты памяти с ис пользованием специальных кодов для обозначения допустимых по отношению к выполняемым программам блоков (зон) памяти. Они отличаются большой гиб костью, что способствует повышению эффективности распределения памяти в процессе функционирования вычислительных систем. Специальные коды для обозна чения допустимых блоков памяти называются в данном случае кодами ключей, или просто ключами; отметим, что эти коды относятся к специальным только по на значению, так как по форме представляют собой обыч
ные двоичные |
коды. |
|
|
|
|
Сущность |
защиты |
памяти |
по |
ключам |
заключается |
в следующем. Все поле |
оперативной памяти |
разбивается |
|||
на m блоков |
(зон), |
причем |
в |
большинстве случаев |
т<с;16. Перед выполнением некоторой программы каж дому блоку ставится в соответствие вполне определен
ный ключ; |
разрядность |
ключа nK =[log2 т ] . Если, на |
|||||||
пример, т = 1 6 , |
то |
я к = 4, |
а ключи |
выражаются |
кодами |
||||
0000, 0001, |
0010, |
|
1111. |
Заметим, |
что |
каждому |
блоку |
||
памяти |
может |
отвечать любой ключ из возможных; |
|||||||
более |
того, |
один |
и тот |
же ключ может |
«придаваться» |
нескольким, а в предельном гипотетическом случае всем блокам памяти. При распределении памяти каждой про грамме также ставится в соответствие некоторый ключ, по своему кодовому значению входящий в множество ключей, определенных для блоков памяти. Для опре деленности ключи, относящиеся к блокам памяти, будем называть ключами блоков, а ключи, относящиеся к про граммам,— ключами защиты памяти. При каждом обращении к ОЗУ осуществляется сравнение ключа блока с ключом защиты памяти, присвоенным данной выполняемой программе. Если ключи совпадают, то обращение к памяти разрешается; в противном случае обращение запрещается и формируется сигнал запроса на прерывание. Для увеличения гибкости системы за щиты по ключам дополнительно принимается следую щее. Ключ 0 (00...0) считается сравнимым со всеми остальными возможными ключами; это означает, что программа с ключом 0 имеет доступ ко всем блокам памяти, а блок с ключом 0 доступен для всех выполняе мых программ; ключ 0 обычно присваивается програм мам супервизора.
4» |
51 |
Защита памяти по ключам удобна не только вслед ствие своей гибкости и простоты перехода от одной про
граммы к другой |
(требуется сменить лишь ключ защи |
ты памяти). Она |
весьма эффективна и в случае работы |
с каналами ввода и вывода информации. Присваивая каналу при вводе, например, информации определенный ключ, легко обеспечить запись в требуемый блок памяти
при защите записи в другие |
блоки. |
|
|
|
|
|
|||
|
|
|
|
|
Код ключа |
ЗП |
|
||
|
|
|
|
|
* |
* |
* |
+ |
ввод |
|
Дшй |
|
|
|
|
|
В, |
|
|
|
|
|
|
|
|
|
'иода |
||
Л . . . І |
t • • • t |
|
|
|
J I 4 f |
|
|||
\-\ |
|
|
|
|
|
РгКЗП |
|
|
|
1 . . . 1 |
|
|
|
I |
I I I |
|
|||
Ргй HB |
Kfl |
|
|
|
|
УСК, |
|
|
|
|
|
I |
|
-УСL U _ i _ t _ |
|
||||
|
I |
t |
Г |
|
Pa КБ |
1 |
|
||
|
|
РгНБ |
|
І Ш |
|
|
|||
|
|
|
|
|
|
|
|||
|
|
|
|
|
ОЗУ (СОЗУ) |
|
|||
|
|
|
|
|
|
КБ |
|
|
|
|
ОЗУ |
БЗ |
|
|
т |
м |
т |
|
|
|
|
|
|
' |
Вбод |
кодов |
|
||
|
Рис. 1-10. Схема |
защиты |
памяти |
по |
ключам. |
|
|
Организация защиты памяти по ключам иллюстри руется схемой на рис. 1-10. На этой схеме выделены основные узлы и элементы блока защиты БЗ и отдель ные узлы основного оперативного запоминающего уст ройства. Ключи блоков, определяемые для каждой про граммы при распределении памяти супервизором, вводятся перед выполнением данной программы в спе
циальную память ключей. Эта память |
представляет |
|||||||
собой либо отдельную защищенную |
зону общего ОЗУ, |
|||||||
либо |
отдельное |
ОЗУ |
емкостью m |
ячеек, |
либо регистро |
|||
вое |
сверхоперативное |
запоминающее устройство |
СОЗУ. |
|||||
Для |
схемы на |
рис. |
1-10 |
принято, |
что /п = 16, а |
п к = 4. |
||
Кроме памяти |
ключей блоков, т. е. ОЗУ |
КБ или |
СОЗУ |
|||||
КБ, |
в состав блока защиты входят: дешифратор номеров |
|||||||
блоков ДшНБ, |
оегистр |
номера |
блока |
РгНБ, |
регистр |
52
ключа |
блока |
РгКБ |
(если |
используется регистровое |
||||||
СОЗУ |
КБ, то |
этот |
регистр в состав блока защиты мо |
|||||||
жет не включаться), регистр ключа защиты |
|
памяти |
||||||||
РгКЗП |
с входными |
вентилями Bh |
узел сравнения |
кодов |
||||||
ключей |
|
УСКі, |
узел |
сравнения |
кодов |
номеров |
блоков |
|||
У СКг; |
кроме |
того, |
на схеме |
выделен |
элемент |
НЕ, |
на |
|||
значение |
которого |
то же, что в схеме на |
рис. |
1-9. |
||||||
Регистр |
адреса РгА |
основного |
ОЗУ |
условно |
разделен |
на две части, служащие для хранения кода номера бло ка НБ и кода адреса ячейки внутри блока КА. Выдача кода номера блока из РгА в БЗ осуществляется через группу вентилей В2. Содержимое РгА передается на дешифратор адреса ДшА основного ОЗУ через группу вентилей ß 3 .
Узлы сравнения кодов, используемые в рассматри ваемой схеме, различны не только по выполняемым
функциям, но и по принципам работы. УСКі |
предназна |
||||
чен для формирования сигнала г разрешения |
обраще |
||||
ния |
к |
памяти. Так как ключ 0 имеет |
особое |
значение, |
|
то |
УСКІ |
формирует сигнал г не только |
при совпадении |
||
сравниваемых ключей, находящихся в |
РгКБ |
и |
РгКЗП, |
но и при равенстве нулю одного из сравниваемых клю чей. УСКг выполняет в смысле защиты памяти второ степенные функции, заключающиеся в обеспечении по вышения производительности основного ОЗУ за счет уменьшения среднего времени ожидания разрешения на
обращение. |
В |
УСКг |
сравниваются |
коды, |
находящиеся |
||||||||||||
в «номерной» |
части |
РгА |
и |
в |
РгНБ. |
Сигнал |
р, |
по |
кото |
||||||||
рому |
осуществляется передача |
кода |
номера |
блока |
из |
||||||||||||
РгА |
|
на ДіиНБ, |
формируется |
УСКг |
только |
при |
несовпа |
||||||||||
дении сравниваемых |
кодов. |
|
|
|
|
|
|
|
|
|
|
||||||
|
Работа рассматриваемой схемы протекает так. К на |
||||||||||||||||
чалу |
выполнения программы |
ее |
ключ |
введен |
в |
РгКЗП, |
|||||||||||
а ключи блоков — в |
ОЗУ |
КБ. |
При |
обращении |
к |
основ |
|||||||||||
ному ОЗУ в процессе выполнения программы |
всегда |
||||||||||||||||
производится анализ ключей КБ и |
КЗП. |
Пусть |
содер |
||||||||||||||
жимое |
РгНБ |
не совпадает |
с |
кодом |
номера |
блока, |
вве |
||||||||||
денным при данном обращении к памяти в РгА. |
Тогда |
||||||||||||||||
УСКг формирует сигнал р и код |
номера блока |
подается |
|||||||||||||||
из |
РгА |
на |
дешифратор |
ДшНБ. |
Этот |
дешифратор |
обес |
||||||||||
печивает выборку из ОЗУ КБ |
ключа |
блока |
и засылку |
||||||||||||||
его |
в |
РгКБ. |
|
Если ключ |
блока |
совпадает |
с |
ключом |
за |
щиты памяти или один из них равен нулю, то УСКі формирует сигнал г; обращение к памяти разрешается.
53
В противном случае формируется сигнал нарушения защиты СНЗ, являющийся сигналом запроса на преры вание.
При последовательных обращениях к ячейкам одного блока основного оперативного запоминающего устрой ства объем действий, выполняемых в блоке защиты, значительно сокращается. Действительно, в этом случае на УСК2 подаются одинаковые коды и сигнал р не фор мируется. Поскольку в регистре РгКБ сохраняется ключ данного блока, поступивший из ОЗУ КБ при первом обращении к одной из ячеек блока, то сигнал г форми руется без потерь времени на выборку КБ из памяти ключей.
После выполнения текущей программы все регистры блока защиты устанавливаются в состояние нуля, а ячейки ОЗУ КБ очищаются. Эти же действия осуще ствляются и при прерывании выполнения программы; запоминание стираемой в узлах блока защиты информа ции при этом не производится, так как все ключи хра нятся в основной памяти до окончания выполнения со ответствующих программ.
1-7. СИСТЕМЫ ПРЕРЫВАНИЙ И ПРИОРИТЕТОВ
Центральная процессорная часть любой вычисли тельной системы, работающей в режиме пакетной обра ботки или в режиме с разделением времени, должна иметь возможность необходимого реагирования на раз
личные ситуации, связанные |
как с выполнением теку |
щих рабочих программ, так |
и с состояниями отдельных |
устройств ВС, а также управляемых ею объектов. Здесь имеются в виду ситуации, возникновение которых тре бует изменения состояния вычислительной системы, при нятия мер для обеспечения дальнейшего нормального функционирования всех ее частей и управляемых объек тов в соответствии с принятой стратегией выполнения работ. К таким ситуациям относятся: переполнение раз рядной сетки, выявление неисправности какого-либо уст ройства, выход управляемого объекта на границу устой чивости и т. д.
Изменение состояния системы заключается, главным образом, в том, что выполнение текущей рабочей про граммы приостанавливается и начинается выполнение другой программы или подпрограммы, отвечающей сло жившейся к данному моменту времени обстановка Пос-
54
ле завершения выполнения новой программы система возвращается в исходное состояние, т. е. к программе, выполнение которой было приостановлено. Действия по изменению состояния системы, заключающиеся в при остановке выполнения текущей программы и переходу
кдругой программе, называются прерыванием про
грамм. Если рассматривать прерывания как |
следствия, |
то причинами, их вызывающими, являются |
ситуации, |
отмеченные выше. |
|
В качестве исходной информации при организации прерываний используются запросы на прерывания, фор мируемые соответствующими устройствами вычисли тельной системы или управляемых ею объектов в виде сигналов прерываний. Каждой ситуации, приводящей к необходимости осуществления прерывания текущей программы, ставится в соответствие отдельный сигнал прерывания, передаваемый в центральную процессор ную часть системы по своей автономной цепи. Поскольку реакция системы на ту или иную ситуацию, вызвавшую формирование запроса на прерывание, должна быть вполне определенной, то с каждым сигналом прерыва ния связывается отдельная программа или подпрограм ма, определяющая действия системы в случае осущест вления прерывания; такая программа называется пре
рывающей |
с момента |
принятия |
соответствующего |
запроса на прерывание к исполнению. |
|
||
В случае |
принятия |
некоторого запроса на прерыва |
ние к исполнению необходимо осуществить ряд дейст вий, обеспечивающих не только переход к прерывающей программе и ее выполнение, но и возврат к текущей прерванной программе в том ее месте, на котором было осуществлено прерывание. Следует подчеркнуть, что при осуществлении прерываний целесообразен возврат имен но к той команде прерванной программы, на которой произошла приостановка ее выполнения, так как воз врат к началу прерванной программы, хотя он и осу ществляется более просто, приводит к нерациональным и большим потерям машинного времени, к значитель ному снижению производительности вычислительной системы.
Возврат к прерванной программе в месте приоста новки ее выполнения обеспечивается путем запомина ния состояния этой программы в момент прерывания и его восстановления в системе после окончания выпол-
55
пения прерывающей программы. Запоминание и восста новление состояния прерванной программы обеспечива ется, как правило, прерывающей программой. Поэтому действия при прерывании выполняются в следующем порядке.
1. Переход к прерывающей программе. В большин стве случаев он осуществляется аппаратно, т. е. путем использования специальных узлов устройства управле ния центрального процессора и соответствующих цепей для формирования адреса первой команды прерываю щей программы и отсылки его в ОЗУ. Отметим, что во время обработки данного запроса на прерывание обыч но накладывается запрет па другие возможные преры вания.
2. Запоминание состояния прерванной программы. Оно осуществляется аппаратными и программными ме тодами и заключается в запоминании всей той инфор мации, которая необходима для возврата к прерванной программе в месте приостановки ее выполнения. Эта информация должна включать в себя состояние счет чика команд, содержащего адрес команды текущей программы, на которой осуществлено прерывание, со держимое регистров арифметического устройства, ин дексных регистров устройства управления, некоторых рабочих ячеек памяти и т. п. Иначе говоря, должно за поминаться содержимое всех программно-доступных регистров вычислительной системы, т. е. таких, состоя ния которых могут изменяться при выполнении преры вающей программы. Запоминание состояния прерван ной программы чисто программными методами сводится
к |
засылке содержимого |
соответствующих |
регистров |
в |
фиксированные ячейки |
ОЗУ. Это требует |
затрат ма |
шинного времени. С целью сокращения этих затрат содержимое отдельных регистров переписывается в ре гистры-дублеры, наличие которых в системе увеличивает
ееаппаратурный состав.
3.Выполнение прерывающей программы. Оно осу ществляется в обычной последовательности действий по
расшифровке и исполнению отдельных команд. При этом первая часть прерывающей программы может пре дусматривать выявление точной причины прерывания и анализ сложившейся обстановки.
4.Возврат к прерванной программе. Он заключается
ввосстановлении состояния прерванной программы пу-
56
тем |
пересылки информации |
из |
фиксированных |
ячеек |
|||
ОЗУ в соответствующие программно-доступные |
регист |
||||||
ры |
и из регистров-дублеров |
в |
основные |
регистры |
АУ |
||
и УУ. |
|
|
|
|
|
|
|
|
Приведенной |
последовательности действий отвечает |
|||||
общая временная |
диаграмма |
прерывания, |
приведенная |
||||
на |
рис. 1-11. При |
выполнении текущей программы |
ТП |
в момент времени ti поступает сигнал запроса на пре рывание ЗП. Переход к прерывающей программе ПП
Рис. 1-11. Общая временная диаграмма прерывания.
не может осуществляться в системе непосредственно по^ сигналу прерывания, так как необходимо произвести предварительный анализ поступившего запроса и закон чить действия по исполняемой команде текущей про граммы. Выполнение прерывающей программы начина ется в момент времени t% который лишь в идеальном случае совпадает с моментом окончания работы систе мы по текущей прерываемой программе. Время, проте кающее от момента поступления запроса на прерывание до момента начала выполнения прерывающей програм мы, называется временем реакции системы; на рис. 1-11 оно обозначено через тр . Как отмечалось выше, преры вающая программа состоит из трех основных частей, которым на рис. 1-11 отвечают: т3 — время, необходимое для запоминания состояния текущей прерываемой про
граммы, |
т'п.п — время |
выполнения |
собственно |
преры |
|
вающей |
программы и |
Тв — время, необходимое |
для |
вос |
|
становления состояния |
прерываемой |
программы. |
|
||
Типы |
прерываний. |
В зависимости |
от источников |
или |
причин, все возможные прерывания делятся на внутрен ние и внешние. К внутренним прерываниям относят так называемые программные прерывания и прерывания от схем контроля, к внешним — прерывания по вводу-вы воду и собственно внешние прерывания, т. е. прерыва ния, непосредственно не связанные с нормальным про-
•5?
цессом функционирования основных агрегатов вычисли тельной системы. Таким образом, рассматриваются четыре основных типа прерываний, причем в некоторых случаях [Л. 2] из программных как отдельный тип вы деляются прерывания при обращениях к супервизору.
Программные прерывания возникают в процессе вы полнения программ при выявлении случаев нарушения принятых принципов кодирования информации, получе нии некоторых недопустимых результатов выполнения операций и т. п. Наиболее характерными причинами программных прерываний являются:
1) ошибка в коде операции, т. е. наличие в опера ционной части команды комбинации символов, не отве чающей ни одной из возможных для данного процессора команд; сюда же относятся попытки использования тех
команд, которые запрещены для |
данного режима рабо |
ты вычислительной системы; |
2) нарушение защиты |
оперативной памяти; 3) неправильная адресация, когда адрес операнда или команды выходит за пределы опе
ративной |
памяти; 4) переполнения разрядной |
сетки; |
в машинах |
с фиксированной запятой — это случаи |
полу |
чения результатов выполнения операций, превосходящих по своим значениям максимальное представимое в дан ной машине число, в машинах с плавающей запятой — получение порядка по абсолютной величине большего, чем допустимый; к переполнениям относят также воз можные случаи деления на нуль; 5) потеря значимости, когда результат выполнения операции в машине с пла вающей запятой имеет нулевую мантиссу; 6) выполне ние команды, по которой происходит обращение текущей программы к той или иной подпрограмме супервизора.
Прерывания от схем контроля служат для защиты системы и решаемых ею задач от возможных физиче ских неисправностей оборудования. Использование та ких прерываний предполагает, что при наличии таких индицируемых неисправностей система еще способна нормально на них реагировать. При прерываниях от схем контроля обычно осуществляется переход к диаг
ностическим |
программам, |
обеспечивающим |
локализацию |
||||
неисправного |
оборудования, |
а |
также |
возможность |
|||
исправления |
ошибок. |
|
|
|
|
||
Прерывания по вводу-выводу осуществляются в слу |
|||||||
чае |
организации |
параллельной |
работы |
процессорной |
|||
части |
системы и |
каналов |
или |
устройств |
ввода-вывода, |
58
что обычно |
и является |
характерным |
для вычислитель |
ных систем |
всех типов. |
Запросы на |
прерывания посту |
пают, как правило, от устройств или каналов ввода-вы вода по их готовности к приему или выдаче информации.
Собственно внешние прерывания позволяют процес сорной части системы реагировать на сигналы состоя ний внешних объектов. К таким объектам обычно отно сятся не только объекты, управляемые системой, но и электронные часы, отмечающие ход реального времени, кнопки запроса и поцикловой работы на пульте операто ра, другой процессор в многопроцессорной системе.
Понятие системы прерываний. Под системой преры ваний понимается комплекс аппаратно-логических, или аппаратно-программных средств, позволяющих произво дить анализ поступивших запросов на прерывания, вы явление среди них тех, которые должны быть обслужены в первую очередь, обеспечивающих переход к преры вающей программе и возврат к прерванной программе после окончания выполнения прерывающей программы, а также проведение ряда других операций, отвечающих специфике конкретных систем. К системам прерываний предъявляется ряд требований, удовлетворение которых либо обязательно, либо в высшей степени желательно. Принимаемая система прерываний, во-первых, не долж на приводить к необходимости нарушения естественных принципов программирования; иначе говоря, прерывае мые программы должны составляться в обычном поряд ке. Во-вторых, система должна обеспечивать оптималь ное сочетание аппаратных и логических методов как с целью увеличения собственных возможностей (гибкость системы), так и с целью минимизации дополнительного оборудования (стоимость системы). И, наконец, в-тре тьих, система не должна допускать больших потерь времени при переходах к прерывающим программам и возвратах к прерванным программам; сюда же относит ся требование об обязательном обслуживании предыду щего запроса на прерывание от данного источника до поступления последующего запроса от этого же источ ника сигналов прерываний.
Качество систем прерываний характеризуется значе ниями ряда параметров, основными из которых являют ся временные. К временным относятся:
1) время реакции тр ; оно определяется не только возможностями непосредственного переключения про-
59