Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Дроздов Е.А. Основы построения и функционирования вычислительных систем

.pdf
Скачиваний:
15
Добавлен:
25.10.2023
Размер:
14.65 Mб
Скачать

Блок защиты состоит из регистра маски РгМ, де­ шифратора старших разрядов адреса ДшКА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 обычно присваивается програм­ мам супервизора.

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

Соседние файлы в папке книги из ГПНТБ