Интерфейсы ПК

       

Управление интерфейсом


5.3. Управление интерфейсом

Для управления интерфейсом служит система сообщений - Message System, которыми обмениваются ИУ и ЦУ. Обмен происходит в фазах Message IN/OUT (см. выше), в одной фазе может передаваться несколько сообщений. Одно сообщение не может расщепляться на несколько фаз. Форматы сообще- ний стандартизованы; каждое сообщение начинается с кода. Существуют однобайтные (коды OOh, 02h-lFh, SOh-FFh), двухбайтные (коды 20h-2Fh) и расширенные сообщения (код Olh). В двухбайтном сообщении второй байт является аргу- ментом сообщения. В расширенных сообщениях второй байт задает длину, а последующие байты несут код и аргументы сообщения. Коды сообщений приведены в табл. 5.10.



Код

Направление

Сообщение

Назначение

OOh

In

Command Complete

Процесс ввода/вывода завершен, информация о состоянии послана в сообщении Status

02h

In

Save Data Pointer

Сохранение указателя данных

Код

Направление

Сообщение

Назначение

03h

In

Restore Pointers

Восстановление указателей

04h

In

Disconnect

Текущее соединение разрывается, но для продолжения процесса потребуется повторное соединение (не вызывает сохранения текущих указателей)

04h

Out

Disconnect

Инструкция ЦУ на разрыв соединения

05h

Out

Initiator Detected Error

ИУ обнаружило ошибку на шине

06h

Out

Abort

Сброс всех процессов, связанных с данной парой 1Т, и освобождение шины

07h

In/Out

Message Reject

Сообщение (или его параметры) недействительны для получателя

08h

Out

No Operation

ИУ нечего ответить на запрос сообщения

09h

Out

Message Parity Error

Последний байт сообщения принят с неверным паритетом

OAh

In

Linked Command Complete

Цепочка команд завершена. ИУ может инициализировать указатели для новой цепочки

OBh

In

Linked Command Complete (With Flag)

То же, но ИУ между цепочками команд вызывает прерывание в хост-системе

ОСЬ

Out

Bus Device Reset

Аппаратный сброс ЦУ и освобождение шины

ODh

Out

Abort Tag

Сброс текущего процесса, связанного с данной парой 1Т, и освобождение шины

<
код

Направление

Сообщение

Назначение

OEh

Out

QearQueue

Сброс всех процессов и освобождение шины ( эквивалентно серии сообщений Abort, принятых от всех ИУ)

OFh

In/Out

Initiate Recovery

Сообщение для уведомления об асинхронных событиях (ЦУ временно становится ИУ)

lOh

Out

Release Recovery

Завершение обработки асинхронных событий

llh

Out

Terminate I/O Process

Принудительное завершение текущего процесса без логического повреждения носителя уЦУ

12h-lFh, 30h-7Fh

Зарезервированы для 1-байтных сообщений

80h-FFh

Out

Identify

Установление связи типа ITL или ITR

80h-FFh

In

Identify

Восстановление связи типа ITL или ITR при повторном соединении. Вызывает восстановление сохраненных указателей

2-байтные сообщения

20h

In

Simple Queue Tag

Процесс помещен в очередь, аргумент - тег (OOh-FFh)

20h

Out

Simple Queue Tag

Обращение к конкретному процессу маркированной очереди, аргумент - тег (OOh-FFh)

21h

Out

Head Of Queue Tag

Помещение процесса в начало маркированной очереди для данного LUN, аргумент - тег (OOh-FFh)

22h

Out

Ordered Queue Tag

Помещение процесса в конец маркированной очереди для данного LUN, аргумент - тег (OOh-FFh)

Код

Направление

Сообщение

Назначение

23h

In

Ignorv Wide Residue

Последние байты последнего переданного слова недействительны (аргумент см. в табл. 5.11)

24h-2Fh

Зарезервированы для 2-байтных сообщений

Расширенные сообщения. Первый байт - Olh, в поле "код" первым байтом указана длина, вторым - расширенный код

05h, OOh

In

Modify Data Pointer

Запрос модификации указателя данных - суммирование текущего указателя с 4-байтным аргументом сообщения

03h, Olh

In/Out

Synchronous Data Transfer Request

Параметры синхронного режима обмена, 1-й байт аргумента определяет период посылки, 2-й - допустимое смещение REQ/ACK

02h, 03h

In/Out

Wide Data Transfer Request

Разрядность передач в фазах данных. Ар1умент задает число байт: 0 -1 байт, 1 -2 байта, 2-4 байта

<


Значение 2-го байта

Игнорировать биты данных при разрядности обмена

32 бит

16 бит

Olh

DB[31:24]

DB[15:8]

02h

DB[31:16]

Зарезервировано

03h

DB[31:8]

Зарезервировано

OOh, 04h - FFh

Зарезервировано

Зарезервировано

В SCSI-2 для установления связи процесса с конкретным логическим устройством I_T_L (lnitiator_Target_LUN) или с конкретной целевой программой I_T_R (lnitiator_Target_TRN),

а также предоставления права разрыва соединения служат сообщения Identify. В байте их кодов биты [2:0] в зависимо- сти от бита 5 LUNTAR задают номер LUN (LUNTAR=0) или TRN (LUNTAR=i). Каждый процесс может быть адресован только одному LUN или TRN. Если ЦУ во время выполне- ния процесса обнаружит сообщение с иным адресом связи, оно обязано освободить шину (ситуация неожиданного раз- рыва). Единичным значением бита 6 DiscPriv при передаче сообщения ИУ наделяет ЦУ правом разрыва соединения.

ИУ может проинструктировать ЦУ на разрыв соединения, послав ему сообщение Disconnect. Получив сообщение, ЦУ посылает одноименное сообщение (предварительно ЦУ мо- жет потребовать сохранения указателя данных, послав сооб- щение Save Data Pointer) и освобождает шину. Если ЦУ не поддерживает эту возможность, оно отвечает сообщением Message Reject. Когда процесс, продолжающийся в устрой- стве, потребует передачи данных, через фазу арбитража ЦУ обратится к ИУ за продолжением обмена.

С помощью сообщений согласуются параметры синхронно- го режима и разрядность данных. Процесс согласования син- хронного обмена называется Synchronous Negotiation. Уст- ройство, запрашивающее синхронный обмен, посылает сообщение Synchronous Data Transfer Request с указанием до- пустимого периода цикла и отставания REQ/ACK. Если дру- гой участник обмена поддерживает синхронный режим, он предложит свои параметры. Согласованными параметрами будут максимальный период и минимальное отставание (ну- левое отставание эквивалентно асинхронному режиму). Выб- ранный режим будет относиться только к фазам передачи между данной парой устройств.Отвергнутое сообщение яв- ляется требованием асинхронного режима. Поскольку ста- рые хост-адаптеры не поддерживали согласование синхрон- ного режима, на ЦУ запрос синхронного режима может быть заблокирован. О возможности работы в синхронном режи- ме хост может узнать, послав команды Request Sense и Inquiry.

Разрядность передач согласуется аналогично посредством сообщений Wide Data Transfer Request. Согласованные режи- мы будут действовать до сброса устройств по сообщению Bus Device Reset или "жесткого" сброса, что приведет к ус-

тановке предопределенных режимов по включению. Согла- сование режимов не должно инициироваться в каждом про- цессе, поскольку затраты времени на эту процедуру сведут на нет выигрыш в производительности.


Содержание раздела