Отметим, что максимальная допустимая ширина поля адреса группы равна 24 разрядам (см. п. 4.1). Поскольку самым старшим разрядом этого регистра является разряд 31, его содержимое после ответа SS = 22 — конец блока), будет равно нулю.
Для удобства реализации CSR#40h может загружаться при каждом AS (и) содержимым текущего поля GP предварительно, перед достижением входа в маршрутную таблицу. Следовательно, проверку или модификацию содержимого маршрутной таблицы следует выполнять в течение той же самой операции с блокированным адресом.
CSR#41h— данные маршрутной таблицы
CSR4Mlh Должен быть реализован и его содержимое должно представлять собой содержимое того входа в маршрутную таблицу, чье местоположение в маршрутной таблице указывается регистром CSR#40h.
Маршрутная таблица должна иметь длину 2N слов, где N равно числу разрядов регистра CSR#40h, т. е. ширине поля адреса группы, с которым способен оперировать данный СС.
Три младших разряда каждого входа їв маршрутную таблицу и, следовательно, регистра CSR4t=41h должны соответствовать линиям AD<02:00>. Эти три разряда должны образовывать биты — признаки базового адреса (AD<02>), места назначения (AD<01>) й пропускания (AD<ZOO>) (см. п. 10.6.1).
Старшие N разрядов регистра CSR#41h должны представлять собой поле адреса группы, которое подается в сегмент дальней стороны, когда СС пропускает адрес, чье поле адреса группы совпадает с аналогичным полем, указанным в регистре CSR#40h. В случае СС без преобразования адресов, эти старшие разряды совпадают со старшими разрядами, содержащимися в регистре управления и статуса CSR#40h, и, таким образом, не нуждается в том, чтобы их записывать в маршрутную таблицу.
CSR#41h должен быть доступен через операции либо произвольного доступа, либо блочных передач (см. п. 10.5.5).
CSR#42h — географический адрес ближней стороны
CSR#42h должен быть реализован как регистр, допускающий только чтение и содержащий географический адрес ближней стороны СС. Формат этого адреса должен быть следующим: разряды с 8 по 31 содержат выровненный по левому разряду базовый адрес сегмента5 (см. п. 10.8), в котором все неиспользуемые разряды считываются в виде логических нулей; разряды с 5 по 7 всегда считываются как логические нули; разряды с 0 по 4 в случае крейт- сегмента отображают логическое состояние штырьков географического адреса СС, а в случае кабель-сегмента они отображают логическое состояние переключателей географического адреса СС.CSR#43h должен быть реализован как регистр, допускающий только чтение и содержащий географический адрес дальней стороны СС. Формат для этого адреса должен быть таким же, как и в случае регистра CSR#42h.
Результаты различных действий над битами CSR-регистров в СС
Результат действия включения питания, принимаемого импульса RB, битов «сброс» (CSR4|:0<30>) и «сброс флага ошибки» (CSR#0<16>) по отношению к портам ближней и дальней сторон должен быть таким, как определено в табл. XVIII. Сигнал RB, установленный СС, не должен влиять на.устанавливающий СС.
Маршрутные таблицы
.6.1. И н ф о р м а ц и я о пропускании, месте назначения и базовом адресе
Маршрутная таблица ближней стороны должна указывать, какие адреса данной соединитель сегментов будет пропускать к дальней стороне.
Для каждого возможного значения поля группы. GP, поступающего на ближнюю сторону, маршрутная таблица должна иметь по крайней мере три выходных бита, называемых битами пропускания, места назначения и базового адреса.
Бит пропускания должен информировать СС о том, что, за исключением ситуаций, указанных в табл. II для широких операций, текущая операция должна быть пропущена к сегменту дальней стороны или за его пределы. . ' ■'
Бит места назначения должен информировать СС о том, что операция предназначена для сегмента дальней стороны.
Бин .базового адреса должен информировать СС о том, что поступающее в него поле адреса группы СС представляет собой базовый адрес группы для операций, предназначенных для сегмента его дальней стороны.
Выходные биты высшего порядка в маршрутной таблице должны ассоциироваться только с модификацией адреса группы для дальней стороны (см. п. 10.5.6)
.
Таблица XVIII
Влияние различных воздействий на биты в соединителях сегментов
Регистр |
Бит |
Наименование |
Значение, считываемое после указанного воздействия |
|||||||
Включение питания |
Ближняя сторона |
|||||||||
Сигнал RB |
Сброс |
Сброс флага ошибки |
||||||||
Б* Д* |
Б |
д |
Б |
д |
0 |
0 |
Флаг ошибки |
0 |
— |
|
0 |
—. |
0 |
— |
0 |
1 |
Разрешение пропускания операции |
0 |
0 |
0 |
0 |
0 |
. |
|
0 |
4 |
Разрешение пропускания SR |
0 |
|
— |
0 |
|
— |
— |
0 |
6 |
Сигнал GK для дальней стороны |
0 |
|
0 |
0 |
— |
— |
— |
0 |
11—14 |
Различные ошибки |
0 |
0 |
0 |
- |
|||
0 |
15 |
Прослеживание маршрута |
0 |
0 |
— |
■ 0 |
— |
— |
|
1 |
Все |
. Уровень арбитража дальней стороны |
X |
|
|
— |
|||
8 |
Все |
Уровень арби |
|
• |
|
|
|
|
|
|
|
тража ближней стороны |
X |
—- |
—. |
— |
— |
— |
— |
9 |
6—7 |
Таймеры |
1 |
— |
—• |
1 |
— |
— |
— |
40—43 |
|
X |
X |
X |
X |
X |
X |
X |
Примечание. Знак «—» означает, что соответствующие биты не пЬд- вергаются воздействию, буква «X» означает, что результат воздействия предоставляется на выбор разработчику.
Б — ближняя сторона; Д — дальняя сторона.
.6.2. Правила формирования
Когда осуществляется формирование маршрутных таблиц для всех СС в системе, должны соблюдаться следующие правила.
Запись в маршрутной таблице, соответствующая нулевому полю адреса группы GP для ближней стороны, должна использоваться для прокладывания маршрутов широких операций. Узор, образуемый распространяющимся широким адресом, должен представлять собой простое дерево без пересекающихся соединений.
Маршрутная таблица должна содержать только, одну запись, в которой бит базового адреса установлен в единицу.
Маршрутная таблица должна быть такой, что, когда к сегменту подключено два или более СС, только один из этих СС должен отвечать на данный адрес группы в этом сегменте, до тех пор пока в момент прихода сигнала AS (и) не выполняются следующие условия: GP=0, MS = 1 и AD<O1> = 1 (см. п. 4.3).
Дуплексный СС должен содержать информацию о маршрутах в каждом из двух портов, функционирующих как слуги. Между этими двумя таблицами не должно быть конфликтов, связанных прокладываемыми маршрутами. Записи, соответствующие аналогичным адресам групп, должны отличаться, т. е. никакой адрес группы не должен пропускаться одновременно в обоих направлениях.
Маршрут, по которому операция проходит из сегмента I в сегмент J, должен совпадать с маршрутом из сегмента J в сегмент I.
Правило 2 гарантирует, что устройства, расположенные в сегменте дальней стороны, будут иметь неповторяющиеся географические адреса. Правила 3, 4 и 5 гарантируют наличие единственного маршрута для каждой операции. Эта единственность маршрута позволяет СС обнаруживать и устранять определенные разновидности тупиковых ситуаций.
Действия соединителей сегментов
Распознавание адреса
Если пропускание операции разрешено (CSR#0<01 > = 1), СС при одновременном получении сигнала RD=0 и EG=0 должен проверить код MS и поле адреса группы GP, чтобы определить, должна ли данная операция быть пропущена в сегмент дальней стороны.
Если MS 1=0, то условием для пропускания операции должна быть установленность бита пропускания в маршрутной таблице, связанного с данным значением поля адреса группы.
Если MS1 = 1 (широкая операция), то условия для пропускания операции должны быть такими, какие указаны в табл. II.
Если линия EG = 1, операция не должна пропускаться.
Если операция не должна пропускаться, СС не должен предпринимать никаких дальнейших действий, пока не поступит следующий сигнал AS (и).
Если данная операция должна быть пропущена, СС должен перейти в состояние «адрес распознан». Состояние «адрес распознан» должно сбрасываться по сигналу AS(d).Участие соединителя сегментов в арбитраже
При наличии сигнала AG(d) СС внутренне должен сохранять значение AL<05:00>. Этот сохраняемый поступающий уровень арбитража должен быть использован, как описано ниже, а также для разрешения конфликтов (п. 10.7.3).
СС после ввода состояния распознанного адреса должен участвовать в арбитраже за использование сегмента дальней стороны в соответствии с методикой для мастеров, определенной в гл. 6.
Когда СС предпринимает попытку получить владение магистралью сегмента дальней стороны, он должен использовать:
1.. Уровень арбитража, указанный в регистре CSR#8 дальней стороны, если входящая операция имеет локальный уровень арбитража, или
Входящий уровень арбитража, если он является системным уровнем.
СС должен продолжать участвовать в арбитраже до тех пор, пока не получит владение магистралью, если не происходит следующее:
Действующий мастер останавливает текущую операцию выдачей GK(d), в то время, как AS = 1 и АК=0. (В этом случае СС в момент GK(d) должен действовать так, как будто он адресован к области CSR), или
Действующий мастер выдает AB(d), или
СС разрешает конфликтную Проблему путем экстренного прекращения операции.
По получении владения сегментом дальней стороны СС устанавливает в этом сегменте GK=1 (см. п. 6.3.5). СС, поддерживающий в сегменте дальней стороны сигнал RB = 1, подает в сегмент дальней стороны также сигнал GK=1 (см. п. 5.4.1 и табл. ХПЬ).
Разрешение конфликтов
Разрешение конфликтов в пределах дуплексного СС должно быть реализовано при помощи проверки уровней арбитража и битов места назначения в маршрутных таблицах, связанных с двумя операциями, направленными в противоположные стороны.
Если оба уровня арбитража являются локальными (AL<05>=0), тогда:
Если только одна операция имеет установленный бит места назначения, то эта операция должна быть продолжена.
Если- никакая из операций не имеет установленного бита места назначения, должна быть продолжена операция с более вы-
соким уровнем арбитража для сегмента своей дальней стороны.
Если в обеих операциях установлен бит назначения, должна быть продолжена операция в кабель-сепменте.
Если один или оба уровня арбитража являются системными (AL<O5> = 1), тогда:
Если два уровня арбитража различаются ' между собой, должна быть продолжена операция с более высоким уровнем.
Если оба эти уровня арбитража совпадают, СС должен выдать обоим операциям ответ .«сбой в сети» и установить бит «ошибка в присвоении вектора» (CSR#0<13>, см. п. 10.5.1) для обоих портов — ближней и дальней стороны.
При разрешении конфликта проигравшей операции должен быть дан ответ «сеть ликвидирована» (см. табл. VI и п. 10.7.4). Проигравший мастер не должен принимать участие в дальнейших циклах арбитража до тех пор, пока не будет проведен по крайней мере один такой цикл или пока не истечет задержка повторной попытки (см. приложение А).
Отрицательные ответы
СС должен выдавать отрицательные ответы для циклов, которые не являются широкими, путем подачи в свой сегмент ближней стороны сигнала WT=0 и выставления, как указано ниже, кода ' на линии «статус слуги» одновременно либо с сигналом DK(u), ’ либо с сигналом DK(t), в зависимости от ситуации. Для широких циклов СС должен сначала выставить код на линии «статўс слу- . ги», когда сигнал WT=0 присутствует в сегменте ближней стороны, и не должен формировать никакого подтверждающего перехода (АК(и) илиОК(і)).