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

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

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

цессора с работы по одной программе на работу по дру­

гой программе, по и принимаемыми принципами

обслу­

живания запросов но степени их важности;

 

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

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