Файл: Каган Б.М. Цифровые вычислительные машины и системы учеб. пособие.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 09.04.2024

Просмотров: 270

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Таким образом, системы прерывания современных вычислительных систем выполняют следующие основные

функции:

входа в

прерывающую

программу;

а)

организация

б) приоритетный выбор между различными запроса­

ми прерывания;

возврата

к

прерванной

программе;

в)

обеспечение

г)

программное

изменение

приоритетов программ.

Характеристики

систем

прерывания.

Желательно,

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

оценки эффективности систем прерывания

могут быть

использованы следующие характеристики.

появлением

В р е м я

р е а к ц и и — время между

запроса прерывания и началом выполнения первой команды прерывающей программы. На рис. 8-1 это вре­ мя обозначено tp. Для одного и того же запроса преры­ вания в одной и той же вычислительной системе задерж­ ки в исполнении первой команды прерывающей програм­ мы будут различными в зависимости от того, сколько программ со старшим приоритетом ждет обслуживания. Для того чтобы характеризовать свойства вычислитель­ ной системы, следует учитывать время реакции для за­ проса прерывания с наивысшим приоритетом.

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

на

организацию процесса прерывания;

в соответствии

с

рис. 8-1 время обслуживания есть

сумма времен

 

ts~t~ ^в»

 

затрачиваемых на запоминание состояния прерванной программы и выход из прерывающей программы.

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

457


имеет произвольную глубину прерывания. Возможны промежуточные случаи, когда глубина прерывания огра­ ничивается определенным числом программ.

На рис. 8-2 показано, как влияет глубина прерывания на задержки в выполнении прерывающих программ для систем с различной глубиной. На рис. 8-2, а изображены моменты поступления трех запросов прерывания, при этом предполагается, что приоритет каждого последую-

Запросы

J__ L

 

 

 

 

t

 

 

 

 

прерывания

1

а)

Z

 

3

 

Очередность

 

t

исполнения

РУ///АЧЧЧЧЧЧЧЧЧЧЧЧЧЧКЖа

 

программ в системе

б)

 

 

 

 

с единичной глубиной

 

 

 

 

 

 

 

г

 

 

2

 

Очередность

7

 

 

 

s\\444S

t

 

 

 

■*■

исполнения

V777.

„ )

 

 

а _________

программ б

_

 

 

 

 

системе

с глубиной. > 3

 

с

 

 

 

 

в системах

различной

глубиной

Рис. 8-2. Прерывание прерывания.

 

 

щего запроса

выше, чем

у

предыдущего.

В системах

с единичной глубиной прерывания (рис. 8-2,6) очеред­ ность выполнения прерывающих программ определяет­ ся, главным образом, порядком поступления запросов прерывания во времени. Во время исполнения преры­ вающей программы никакие другие прерывания невоз­ можны. В системах с большей глубиной прерывания (рис. 8-2, в) прерывающая программа может быть прер­ вана другой программой, а прерванная программа в свою очередь может быть прерывающей по отношению к другой программе. Следовательно, увеличение глуби­ ны прерывания принципиально позволяет уменьшить вре­ мя реакции системы на запрос прерывания.

Глубина прерывания имеет важное значение для ор­

ганизации

приоритетного

обслуживания запросов пре­

рывания.

В идеальном случае вычислительная система

должна в

любой момент

времени выполнять наиболее

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

458


друг

друга

программ,

подобную

изображенной на

рис.

8-2,8, то

выполнение

наиболее

важной прерываю­

щей программы будет отложено, пока не закончится идущая в данный момент программа. В системе с глуби­ ной прерывания п+1 программа с наивысшим приорите­ том могла бы начать работу немедленно. Таким обра­ зом, чем больше глубина прерывания, тем лучше могут быть учтены приоритеты запросов при обслуживании прерываний.

Н а с ы щ е н и е с и с т е м ы п р е р ы в а н и я . Если время реакции или обслуживания источника прерывания настолько велико, что запрос окажется необслуженным к моменту прихода нового запроса от того же источника, то возникает явление, называемое насыщением системы прерывания. В этом случае факт посылки предыдущего запроса прерывания от данного источника будет систе­ мой утрачен, что, вообще говоря, является недопусти­ мым. Быстродействие вычислительной системы, логи­ ческие возможности системы прерывания и количество источников прерывания должны быть согласованы та­ ким образом, чтобы насыщение системы прерывания бы­ ло невозможным.

8-2. ВХ О Д В П РЕРЫ ВА Ю Щ У Ю ПРОГРАММУ

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

Определение допустимого момента прерывания. Из­ вестны по крайней мере три различных способа опреде­ ления допустимого момента для прерывания:

1. В состав команды может быть включен специаль­ ный разряд, указывающий, разрешается прерывание или нет после окончания данной команды. Таким образом, вдоль программы могут быть «расставлены» опорные точки, указывающие допустимые моменты прерывания. Полезность такого подхода определяется тем, что пре­ рывания могут быть позволены в тех точках программы, где, например, регистры арифметического устройства не содержат информации, которая может понадобиться в дальнейшем. Следовательно, ее не надо сохранять, и в этом случае время обслуживания прерывания может быть уменьшено. Однако время реакции в таких систе­

459



мах обычно весьма велико. Кроме того, на программи­ ста возлагаются дополнительные заботы по определению допустимых моментов прерывания.

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

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

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

боте

многопрограммных

 

вычислительных систем (см.

гл. II), когда адресованный командой операнд содер­

жится

не в оперативной,

а

во внешней памяти (напри­

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

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

460