Продолжение табл. 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 |
__ |
— |
— |
Этот бит также сбрасывается при записи единицы в бит CSR # 0<31 >, т. е. в бит «очистка данных» (см. табл. ХПЬ).
* Этот бит также сбрасывается при AS = GK=0.
** См. табл. XVIII для использования этого бита в соединителях сегментов.
Примечание. В табл. XVI знак «—» означает, что статус соответствующего бита (битов) не должен измениться, в то время как буква X означает, что характер воздействия на указанные биты предоставляется на выбор разработчику.
ГЛАВА 9. ПРЕРЫВАНИЯ
В контексте ФАСТБАС термин «прерывание» означает запрос от одного устройства на обслуживание или внимание со стороны другого устройства. Обычно обслуживающим устройством является процессор, который содержит собственный механизм обработки прерываний. Прерывание, воспринятое через этот механизм, приостанавливает нормальное исполнение программы для того, чтобы выполнить специальную программу обслуживания прерывания.
Спецификация ФАСТБАС описывает два стандартных протокола — операцию прерывания и обслуживания запроса, которые должны в выше указанном смысле, интерпретироваться как прерывания соответствующим образом спроектированные интерфейсами. Отметим, что сама система ФАСТБАС не имеет прерывающего механизма, который позволяет останавливать операцию ФАСТБАС на середине исполнения, запускать новую операцию и доводить ее до завершения, и затем возобновлять исполнение первоначальной операции с того места, где она была прервана.
Операция прерывания
Мастер, желающий выполнить операцию прерывания, сначала обычным путем получает владение магистралью. Затем он посылает сообщение длиной максимум 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.
Линия «запрос на обслуживание»
Протокол, связанный с операцией прерывания, требует, чтобы устройство, генерирующее прерывание, было способно выигрывать владение магистралью и чтобы приемник прерывания содержал па
меньшей мере один блок приема прерываний. Линия «запрос на (обслуживание» (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 от конкретной реализации и приложения, спецификации могут касаться только управления запросом и его выставления.