Продолжение табл. XVI

CSR— регистр

Еит

Наименование

Значение, считываемое после указанного воздействия

Включение питания

Сигнал RB

<сброс магистра- ли»

Сброс CSR# #'0<;30>

Сброс флага ошибки

CSR# #0<16>

2

23

Результат тести­рования

X

X

X

X

2

24—31

Статус пользова-







теля

X

X

X

X

. 3

Все

Логический адрес

X '

4

Все

Адрес устройства







пользователя

X

5

Все

Регистр счетчика







СЛОВ

X

6

Все

Регистр выбора







тестов

0

0

7

Все

Регистр классов







для широких опера­ций

0

0

8

Все

Уровень арбитра-







жа

X

9

4—7

Управление тайме­рами

1 ■

1

—-

ОА—OF


Адреса приемников прерываний

X

X

X

X

IC—IF


Периоды тайме­ров

X

——

20—3F


Источники и маски запросов на обслу-

о






живание

——

0

70-7F


Адреса устройств пользователей

X

—_

80


Прикрепление под­разделов

0

0

81


Разрешение рабо­ты подразделов

0

__



  1. Этот бит также сбрасывается при записи единицы в бит CSR # 0<31 >, т. е. в бит «очистка данных» (см. табл. ХПЬ).

  2. * Этот бит также сбрасывается при AS = GK=0.

  3. ** См. табл. XVIII для использования этого бита в соединителях сег­ментов.

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

ГЛАВА 9. ПРЕРЫВАНИЯ

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

Спецификация ФАСТБАС описывает два стандартных протоко­ла — операцию прерывания и обслуживания запроса, которые дол­жны в выше указанном смысле, интерпретироваться как прерыва­ния соответствующим образом спроектированные интерфейсами. Отметим, что сама система ФАСТБАС не имеет прерывающего ме­ханизма, который позволяет останавливать операцию ФАСТБАС на середине исполнения, запускать новую операцию и доводить ее до завершения, и затем возобновлять исполнение первоначальной операции с того места, где она была прервана.

  1. Операция прерывания

Мастер, желающий выполнить операцию прерывания, сначала обычным путем получает владение магистралью. Затем он посы­лает сообщение длиной максимум 16 слов соответствующему уст­ройству обслуживания прерываний (УОП), чей адрес должен со­держаться в области CSR-регистров прерывающего мастера (см. п. 8.13). Это сообщение записывается в блок приема прерываний (см. табл. XI), доступ к которому осуществляется при помощи вторич­ного адресного цикла. Формат сообщения не специфицирован, за ис­ключением четырех младших разрядов первого слова, которые дол­жны содержать информацию о количестве слов, следующих за пер­вым в данном сообщении. Второе слово должно содержать адрес прерывающего мастера, а следующие слова, если они есть, должны содержать детали или указатели на детали, касающиеся причины данного прерывания.

Завершение операции записи, то есть разрыв прерывающим мастером связки AS/AK, вызывает прерывание по отношению к процессору УОП. Если обслуживание данного прерывания требу­ет проведения операций ФАСТБАС, тогда это УОП должно запро­сить и получить владение магистралью. Поскольку операции ФАСТ­БАС, находящиеся в процессе выполнения, не могут быть прерва­ны, интервал времени между моментом, когда мастер обнаружи­вает, что должна быть инициирована операция прерывания, и мо­ментом, когда начинается обслуживание этого прерывания, непред­сказуем.

Сообщение о прерывании обычно записывается с использовани­ем блочной передачи данных, но также возможны однословные передачи данных с произвольным доступом. В некоторых прило­жениях это может позволить сообщению о прерывании просто мо- дифиццровать одно слово в блоке, оставляя другие слова 'без изме- (нения. Действия, связанные с прерыванием, не запускаются до тех пор, пока не будет разорвана взаимосвязь сигналов AS/AK, поэто­му возможно проведение нескольких однократных операций записи при помощи использования вторичных адресных циклов для выбо­ра соответствующих регистров,

УОП может иметь максимум 16.различных блоков приема пре­рываний, каждый из которых генерирует свое собственное преры­вание. Если приоритеты прерываний в. процессоре связаны с бло­ками приемных регистров, приоритет должен расти вместе с уве­личением базового адреса приемного блока в пространстве адресов CSR-регистров.

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

После получения владения магистралью прерывающее устрой­ство должно записать сообщение о Прерывании в один из блоков в области CSR-регистров, принимающих прерывания (ом. табл. XI) и расположенных в УОП. Поле из'четырех младших битов пер­вого слова в блоке приема прерываний должно представлять собой количество слов, которые следуют далее в данном сообщении (максимум 15 слов).

Регистры для приема прерываний должны быть реализованы в виде блоков по 16 регистров, начинающихся с регистра CSR# 100 h,, и должны быть доступны посредством блочных передач и однократ­ных передач данных в режиме произвольного доступа. Если реали­зованы дополнительные группы приемных регистров, они должны быть размещены последовательно, начиная с регистра CSR#110h.

Выполнение операции записи по любому адресу в пределах лю­бого блока приема прерываний должно вызывать выставление за­проса на прерывание по отношению к связанному с этим блоком процессору, когда завершается текущая операция (AS = 0), а так­же должно переводить этот блок в запрещенное состояние, которое отклоняет дальнейшие операции записи по любому адресу в преде­лах блока возвратом SS = 1 (занято). УОП должно разрешать блоку прием последующих сообщений о прерываниях после того, как оно обработает информацию о текущем прерывании.

Если адресуется несуществующий блок регистров для приема прерываний, УОП должно возвращать SS=6.

  1. Линия «запрос на обслуживание»

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

меньшей мере один блок приема прерываний. Линия «запрос на (об­служивание» (SR) обеспечивает более простой, хотя и (менее уни­версальный, способ для устройств, включая те из них, которые не обладают способностью (владеть магистралью, генерировать.преры- вания. Прерывания типа «запрос на обслуживание» могут обслужи­ваться менее сложными/мастерами, чем те, что отвечают іна опера­ции (прерывания.

В устройстве может существовать много источников запросов на обслуживание. Биты в регистрах от CSR#2O по CSR^SF (см. п. 8.14) обеспечивают управление максимум 256 различными источ­никами запросов на обслуживание. Все разрешенные источники за­просов на обслуживание объединяются вместе по «ИЛИ» для того, чтобы сформировать общий внутренний сигнал «запрос на обслу­живание». В этих регистрах также предусмотрены биты, позволяю­щие определять статус индивидуальных источников запросов на об­служивание, а также их масок. Внешний сигнал SR формируется путем объединения по «И» внутреннего бита флага SR с битом «раз­решение» в CSR-регистре (см. п. 8.3.2). Регистр CSR#0 содержит также бит состояния внешнего сигнала «запрос на обслуживание», выходящего из данного устройства, бит состояния общей маски и бит* общего из данного устройства, бит состояния общей маски и бит общего сброса запросов на обслуживание. Устройство с единствен­ным источником запроса на обслуживание может полностью управ­лять им, используя только (биты в CSR#0.

Когда устройству разрешено выставление запроса на обслужи­вание, оно может формировать сигнал SR в любой момент времени, не обращая внимания на состояние других сигнальных линий ФАСТ- БАС. Соединители сегментов, в которых установлено аналогичное разрешение, пропускают сигнал SR от своих сегментов дальней стороны к сегментам ближней стороны. SR воспринимается обра­ботчиком запросов на обслуживание (ОЗО), который был запро­граммирован для слежения за всеми возможными источниками SR, которые могут достичь его. Ответом ОЗО на сигнал SR должно быть выставление требования на владение магистралью. Когда владение магистралью будет получено, ОЗО проводит стандарт­ные операции ФАСТБАС для того, чтобы определить местоположе­ние и обслужить источник или источники SR.

Методика, используемая ОЗО для определения местоположения источников SR, (зависит от (возможностей устройств, которые (Могут выставлять сигнал SR. Один метод, который будет работать при всех обстоятельствах, заключается в том, что ОЗО проверяет со­стояние битов CSR*0<;05:04> всех возможных источников за­просов. Подобный опрос голосов может оказаться наиболее эффек­тивным приемом, если общее число возможных источников запро­сов невелико.. В качестве альтернативы ОЗО может осуществить специальный режим широкой адресации (случай 5 в табл. III), нацеленный на каждый сегмент, .предназначенный для обслуживания. При этом типе широкой операции во время адресного цикла присоединяются только те устройства, которые выставляют SR, и во время непосред- ' ственно следующего за этим цикла чтения они подают сигналы на свои Т-штырьки. Таким образом, битовый узор, поступающий по линиям AD в момент прихода DK, идентифицирует те устройства в сегменте, Которые выставляют SR.

Когда определено местоположение устройств, выставляющих SR, 030 адресует каждое из этих устройств по очереди, используя либо географическую, либо логическую адресацию, и проверяет статусные регистры для того, чтобы определить точную причину SR. Затем 030 определяет, может ли он самостоятельно выполнить обслуживание. Если имеет место именно такой случай, производит­ся обслуживание, сбрасывается источник SR и обслуженный слуга отсоединяется. Если это не так, и требуется другой процессор, 030 сбрасывает соответствующий бит маски для того, чтобы за­претить последующие запросы от, данного источника, формирует сообщение о прерывании, соответствующее этому конкретному ис­точнику запроса на обслуживание, и инициирует операцию преры­вания по отношению к требуемому УОП.

Позже УОП выполняет требуемое обслуживание, сбрасывает бит источника SR и устанавливает соответствующий бит маски. Тем временем 030, возможно, обслуживал другие источники запросов в пределах того же или иного устройства. Таким образом, каждый источник SR является логически независимым объектом и может получать соответствующее обслуживание, не обращая внимание на нужды других источников. Нет никакого ограничения, чтобы все источники в пределах отдельного устройства обрабатывались оди­наковым образом или одним и тем же процессором.

Вследствие жесткой зависимости использования SR от конк­ретной реализации и приложения, спецификации могут касаться только управления запросом и его выставления.