CSR-регйстр 1
Назначение битов этого регистра определяется пользователем. В соединителях сегментов он используется для хранения уровня арбитража дальней стороны.
CSR-регистр 2
Этот регистр управления и состояний не является обязательным для устройств, за исключением тех, которые генерируют сообщения о прерываниях. Он используется для обеспечения более подробных сообщений об ошибках, а также для реализации функций, которые являются менее общими, чем те, что обеспечиваются регистром CSR#0. Присвоение индивидуальных битов показано в табл. ХШа, а их определения приводится в табл. ХШЬ.
Если какие-нибудь из функций, определенных из CSR#2, реализованы, они должны быть реализованы так, как показано в табл. ХШа.Таблица ХШа
Определение функций регистра CSR — 2
Бит |
Назначение при чтении |
Назначение при записи |
S00 S01 S02 S03 S04 S05 S06 S07 08 09 10 11 12 13 14 15 С16 С17 С18 С19 С20 С21 С22 С23 24 25 |
Бит 0 режима пользователя Бит 1 режима пользователя Бит 2 режима пользователя Бит 3 режима пользователя Прерывания от источника А разрешены Прерывания от источника В разрешены Прерывания от источника С разрешены Идет тестирование Несуществующий адрес Переполнение данных в устройстве Переполнение счетчика слов Устройство заполнено Устройство не пусто Входные сигналы отсутствуют Зарезервирован Зарезервирован Определяется пользователем Определяется пользователем Определяется пользователем Определяется пользователем Прерывание от источника А подготовлено Прерывание от источника В подготовлено Прерывание от источника С подготовлено Результат тестирования Статус пользователя 0 Статус пользователя 1 |
Устанавливает бит 0 режима пользователя Устанавливает бит 1 режима пользователя Устанавливает бит 2 режима пользователя Устанавливает бит 3 режима пользователя Разрешает прерывания от источника А Разрешает прерывания от источника В Разрешает прерывания от источника С Начинает тестирование Устанавливает признак несуществующего адреса Устанавливает признак переполнения данных в устройстве Устанавливает признак переполнения счетчика слов Устанавливает признак «устройство заполнено» Устанавливает признак «устройство не пусто» Устанавливает признак «входные сигналы отсутствуют» Зарезервирован Зарезервирован Сбрасывает бит 0 режима пользователя Сбрасывает бит 1 режима пользователя Сбрасывает бит 2 режима пользователя Сбрасывает бит 3 режима пользователя Запрещает прерывание • от источника А Запрещает прерывание от источника В Запрещает прерывание от источника С Останавливает тестирование Записывает статус пользователя 0 Записывает статус пользователя 1 |
Продолжение табл. ХШа
Бит |
Назначение при чтении |
Назначение при записи |
26 |
Статус пользователя 2 |
Записывает статус пользователя 2 |
27 |
Статус пользователя 3 |
Записывает статус пользователя 3 |
28 |
Статус пользователя 4 |
Записывает статус пользователя 4 |
29 |
Статус пользователя 5 |
Записывает статус пользователя 5 |
30 |
Статус пользователя 6 |
Записывает статус пользователя 6 |
31 |
Статус пользователя 7 |
Записывает статус пользователя 7 |
Таблица ХШЬ
Определения функций битов регистра CSR-2
Бит |
Тип |
Наименование |
Функция |
S00 по S03 |
R/W |
Биты режима пользователя |
Эти четыре бита предоставляются разработчику устройства для применения, зависящего от конкретного устройства |
С16 по С19 |
W |
|
|
S04 по S06 |
R/W |
Управление прерываниями |
Управление тремя независимыми источниками прерываний ФАСТБАС |
С20 по С22 |
|
и их статус |
предусмотрено в регистре CSR#2 Эти источники могут быть разрешены или запрещены наряду с тем, что они имеют возможность чтения статуса «разрёшено/запрещено» .и статуса «подготовлено». Адреса, по которым должны направляться сообщения о прерываниях, указываются в регистрах управления и состояний с CSR # А по CSR # F (см табл. X) |
S07 |
R/W |
Тестирова- |
Установка этого бита в единицу |
С23 |
W • |
ние |
инициирует любые средства самотестирования, которые устройство может иметь в своем составе, путем перевода данного устройства в режим «тестирование». Некоторые тесты могут продолжаться столь долго, сколько данное устройство находится в режиме «тестирования», в то время как другие тесты могут исполниться Один раз и генерировать прерывание для сигнализации об окончании. Сброс бита «тестирова- |
Продолжение табл. ХШЬ |
|||
Бит |
Тип |
Наименование |
Функция |
|
|
- |
ние» немедленно останавливает все тестирование, если это возможно. Если в устройстве имеется более чем один тест, который может быть выполнен, данное устройство должно содержать регистр тестов CSR#6 (см п. 8.6) Каждый бит регистра управления и статуса CSR # 6 обусловливает отдельный тест. Если более чем один бит установлен в состояние логической единицы, соответствующие тесты выполняются, если это возможно, одновременно или в порядке, при котором тест, обусловленный младшим битом, выполняется первым. Значение бита CSR#2<23> дает простой общий результат выполнения тестов — «успех/неудача». Более подробные результаты -выполнения тестов могут быть сообщены через биты CSR#6<31:16> |
Биты, описанные ниже, могут быть прочитаны мастером, чтобы распознать смысл ненулевого ответа SS, полученного во время передачи данных |
|||
08 |
R/W |
Несуществующий адрес |
Предыдущая операция привела к тому, что внутренний адрес устройства вышел за пределы допустимого диапазона. Если это произошло во время передачи блока данных, слуга выдает ответный код SS = 2. В противном случае выдается ответный код SS = 6. Этот и следующие статусные биты могут быть установлены в состояние единицы при помощи операции записи для того, чтобы облегчить тестирование процедур восстановления ошибок |
09 10 |
R/W R/W |
Переполнение данных в устройстве Переполнение счетчика слов |
Вводимые данные переполнили максимальную емкость устройства Была предпринята попытка либо прочитать больше слов, чем имелось в наличии, либо записать больше слов, чем данное ведомое устройство могло воспринять. В обоих случаях ответом устройства был код SS = 2 |
Продолжение табл. ХШЬ
Бит |
Тип |
Наименование |
Функция |
И |
R/W Z |
Устройство заполнено |
Устройство либо заполнено до максимальной емкости, либо уже содержит все данные, которое оно предполагает принять. Например, все данные от какого-то события уже приняты и, если это соответствует типу данного устройства, уже обработаны |
12 |
R/W |
Устройство не пусто |
Слуга содержит данные и может еще их принимать (пока не будет установлен признак «устройство заполнено») |
13 |
R/W |
Входные сигналы отсутствуют |
Ожидаемые сигналы с данными от пользовательских устройств, обслуживаемых этим слугой, отсутствуют. Попытка прочитать или записать в регистры, связанные с этими сигналами, приводит в результате к ответному коду SS=6 во время передачи данных |
24 по 31 |
R/W ~ |
Состояние пользователя |
Биты с 24 по 31 предназначены для индикации состояния или ошибочной ситуации во внутренних средствах . устройства, выбранных по усмотрению разработчика. Данная ситуация может быть создана или может быть сформирован импульс с записью единицы в соответствующий статусный бит. Отметим, что эти биты не могут быть непосредственно сброшены при помощи регистра CSR # 2. Эти биты могут быть сброшены при помощи бита CSR#0<16>, а также они могут быть сброшены при помощи внутренних средств, зависящих от конкретного устройства |
CSR-регистр 3
Регистр логического адреса (CSR^S) должен быть реализован во всех логически адресуемых устройствах как регистр, допускающий чтение/запись. Регистр CSR#3 должен содержать поле адреса устройства (ом. п. 4.1), используемое во время первичных адресных циклов для выбора устройств. Прежде чем разрешить распознавание логического адреса (Т. е. прежде чем записать единицу в бит 01 регистра управления и статуса CSR#0), регистр CSR#3 должен 'быть загружен процессором-хозяином.Структура и присвоение логических адресов обслуживания в п. 4.1.
Если данное устройство является мастером, в котором не реализована логическая адресация, запись единицы в бит CSR#0<01> просто разрешает данному мастеру выставлять запрос на владение магистралью. Если устройство является соединителем сегментов, запись CSR#0<01> разрешает пропускание операций к порту дальней стороны соединителя сегментов.
CSR-регистр 4
Регистр адреса пользователя CSR#4 содержит, адрес действующего мастера (если CSR#O<O3> = 1) или адрес самого последнего мастера (если CSR#0<03>=0), которые затребовали и получили исключительное право на управление устройством.
Предпочтительный путь для мастера получить исключительное право на использование целого устройства заключается в следующем: мастер пытается записать свой адрес в регистр CSR#4 устройства. Если устройство доступно для прикрепления, операция записи проходит нормально, и в нем устанавливается бит CSR#O<O3> = 1 — «устройство прикреплено». Если данное устройство недоступно, 'поскольку другой мастер владеет исключительным правом на его исполнение, операция записи не выполняется и возвращается код SS = 1 («занято»). Когда мастер более не нуждается в исключительном праве на использование, он записывает логическую единицу в бит CSR#0<19> — «открепить устройство». Мастер может получить управление устройствами, в которых не реализованы регистр управления и статуса CSR#4, путем выполнения операции «чтение-модификация-запись» по отношению к регистру CSR = 0 для того, чтобы реализовать директиву «тестировать и установить».
Мастер может также получить исключительное право на использование устройства, не прерывая связку AS/AK, или при помощи поддержания сигнала GK=1 для того, чтобы запретить арбитраж. Этот способ обладает тем недостатком, что он запрещает все другое использование сегментов, вовлеченных в операцию.
В случае коротких операций, таких как «чтение-модификация- запись», этот способ может оказаться более эффективным для получения исключительного права на использование устройства. (Конечно, для системы всегда оказывается возможным реализовать взаимное недопущение конфликтов гари помощи программного распределения ресурсов).
Этот механизм применим для устройства в целом. В случае приложения, которые требуют независимого распределения подразделов устройства, см. описание регистров CSR# 70—81.
CSR-регистр 5
Этот регистр может быть реализован в мастерах или слугах и использоваться либо для управления, либо просто для индикации количества переданных слов.
Прежде чем пересылать блок данных, в регистр счетчика слов CSR#5 может быть загружено максимальное количество передач, разрешенное для данного взаимодействия. Содержимое регистра уменьшается на единицу после каждой передачи. Внутренний адрес, используемый для следующей передачи, обычно содержится в регистре адреса следующей передали NTA (см. п. 4.4).
CSR-регистр 6
Этот регистр с селективной установкой и сбросом используется для выбора до 16 средств самотестирования, управление которыми возложено на бит CSR4f=2<;07>. Биты CSR#6< 15:00> выбирают тесты с 15 по 0, а при чтении также показывают статус выбора. Биты CSR =Н= 6 <СЗ 1:16 доказывают статус тестов соответственно с 15 по 0, индицируя при помощи бита, установленного в единицу, что был обнаружен сбой. Если обнаружены какие-либо сбои, бит CSR#2<23> также должен быть установлен в единицу.
CSR-регистр 7
Этот регистр используется с целью задания классов для широких операций (см. табл. III), на которые будет отвечать устройство. Биты с 31 по 16 зарезервированы и считываются как нули. Несмотря на то, что устройство может быть приписано к более чем одному классу широких операций, данная широкая операция может выбирать одновременно только один класс.