Отметим, что максимальная допустимая ширина поля адреса группы равна 24 разрядам (см. п. 4.1). Поскольку самым старшим разрядом этого регистра является разряд 31, его содержимое после ответа SS = 22 — конец блока), будет равно нулю.

Для удобства реализации CSR#40h может загружаться при каждом AS (и) содержимым текущего поля GP предварительно, перед достижением входа в маршрутную таблицу. Следовательно, проверку или модификацию содержимого маршрутной таблицы следует выполнять в течение той же самой операции с блокирован­ным адресом.

  1. 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).

  1. CSR#42h — географический адрес ближней стороны

CSR#42h должен быть реализован как регистр, допускающий только чтение и содержащий географический адрес ближней сто­роны СС. Формат этого адреса должен быть следующим: разряды с 8 по 31 содержат выровненный по левому разряду базовый адрес сегмента5 (см. п. 10.8), в котором все неиспользуемые разряды считываются в виде логических нулей; разряды с 5 по 7 всегда счи­тываются как логические нули; разряды с 0 по 4 в случае крейт- сегмента отображают логическое состояние штырьков географичес­кого адреса СС, а в случае кабель-сегмента они отображают логи­ческое состояние переключателей географического адреса СС.CSR#43h должен быть реализован как регистр, допускающий только чтение и содержащий географический адрес дальней сто­роны СС. Формат для этого адреса должен быть таким же, как и в случае регистра CSR#42h.

  1. Результаты различных действий над би­тами CSR-регистров в СС

Результат действия включения питания, принимаемого импуль­са RB, битов «сброс» (CSR4|:0<30>) и «сброс флага ошибки» (CSR#0<16>) по отношению к портам ближней и даль­ней сторон должен быть таким, как определено в табл. XVIII. Сигнал RB, установленный СС, не должен влиять на.устанавли­вающий СС.

  1. Маршрутные таблицы

  1. .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» означает, что результат воздействия предо­ставляется на выбор разработчику.

Б — ближняя сторона; Д — дальняя сторона.



  1. .6.2. Правила формирования

Когда осуществляется формирование маршрутных таблиц для всех СС в системе, должны соблюдаться следующие правила.

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

  2. Маршрутная таблица должна содержать только, одну за­пись, в которой бит базового адреса установлен в единицу.

  3. Маршрутная таблица должна быть такой, что, когда к сег­менту подключено два или более СС, только один из этих СС должен отвечать на данный адрес группы в этом сегменте, до тех пор пока в момент прихода сигнала AS (и) не выполняются сле­дующие условия: GP=0, MS = 1 и AD<O1> = 1 (см. п. 4.3).

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

  5. Маршрут, по которому операция проходит из сегмента I в сегмент J, должен совпадать с маршрутом из сегмента J в сег­мент I.

Правило 2 гарантирует, что устройства, расположенные в сег­менте дальней стороны, будут иметь неповторяющиеся географи­ческие адреса. Правила 3, 4 и 5 гарантируют наличие единственно­го маршрута для каждой операции. Эта единственность маршрута позволяет СС обнаруживать и устранять определенные разновид­ности тупиковых ситуаций.

  1. Действия соединителей сегментов

  1. Распознавание адреса

Если пропускание операции разрешено (CSR#0<01 > = 1), СС при одновременном получении сигнала RD=0 и EG=0 должен проверить код MS и поле адреса группы GP, чтобы определить, должна ли данная операция быть пропущена в сегмент дальней стороны.

Если MS 1=0, то условием для пропускания операции должна быть установленность бита пропускания в маршрутной таблице, связанного с данным значением поля адреса группы.

Если MS1 = 1 (широкая операция), то условия для пропуска­ния операции должны быть такими, какие указаны в табл. II.

Если линия EG = 1, операция не должна пропускаться.

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

  1. Если данная операция должна быть пропущена, СС должен перейти в состояние «адрес распознан». Состояние «адрес распоз­нан» должно сбрасываться по сигналу AS(d).Участие соединителя сегментов в ар­битраже

При наличии сигнала AG(d) СС внутренне должен сохранять значение AL<05:00>. Этот сохраняемый поступающий уровень арбитража должен быть использован, как описано ниже, а также для разрешения конфликтов (п. 10.7.3).

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

Когда СС предпринимает попытку получить владение магист­ралью сегмента дальней стороны, он должен использовать:

1.. Уровень арбитража, указанный в регистре CSR#8 дальней стороны, если входящая операция имеет локальный уровень ар­битража, или

  1. Входящий уровень арбитража, если он является системным уровнем.

СС должен продолжать участвовать в арбитраже до тех пор, пока не получит владение магистралью, если не происходит сле­дующее:

  1. Действующий мастер останавливает текущую операцию вы­дачей GK(d), в то время, как AS = 1 и АК=0. (В этом случае СС в момент GK(d) должен действовать так, как будто он адресован к области CSR), или

  2. Действующий мастер выдает AB(d), или

  3. СС разрешает конфликтную Проблему путем экстренного прекращения операции.

По получении владения сегментом дальней стороны СС уста­навливает в этом сегменте GK=1 (см. п. 6.3.5). СС, поддержи­вающий в сегменте дальней стороны сигнал RB = 1, подает в сегмент дальней стороны также сигнал GK=1 (см. п. 5.4.1 и табл. ХПЬ).

  1. Разрешение конфликтов

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

Если оба уровня арбитража являются локальными (AL<05>=0), тогда:

  1. Если только одна операция имеет установленный бит места назначения, то эта операция должна быть продолжена.

  2. Если- никакая из операций не имеет установленного бита места назначения, должна быть продолжена операция с более вы-

соким уровнем арбитража для сегмента своей дальней стороны.

  1. Если в обеих операциях установлен бит назначения, должна быть продолжена операция в кабель-сепменте.

Если один или оба уровня арбитража являются системными (AL<O5> = 1), тогда:

  1. Если два уровня арбитража различаются ' между собой, должна быть продолжена операция с более высоким уровнем.

  2. Если оба эти уровня арбитража совпадают, СС должен вы­дать обоим операциям ответ .«сбой в сети» и установить бит «ошибка в присвоении вектора» (CSR#0<13>, см. п. 10.5.1) для обоих портов — ближней и дальней стороны.

При разрешении конфликта проигравшей операции должен быть дан ответ «сеть ликвидирована» (см. табл. VI и п. 10.7.4). Проигравший мастер не должен принимать участие в дальнейших циклах арбитража до тех пор, пока не будет проведен по край­ней мере один такой цикл или пока не истечет задержка повтор­ной попытки (см. приложение А).

  1. Отрицательные ответы

СС должен выдавать отрицательные ответы для циклов, кото­рые не являются широкими, путем подачи в свой сегмент ближней стороны сигнала WT=0 и выставления, как указано ниже, кода ' на линии «статус слуги» одновременно либо с сигналом DK(u), ’ либо с сигналом DK(t), в зависимости от ситуации. Для широких циклов СС должен сначала выставить код на линии «статўс слу- . ги», когда сигнал WT=0 присутствует в сегменте ближней сто­роны, и не должен формировать никакого подтверждающего пе­рехода (АК(и) илиОК(і)).