Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4,a._Konspekt_1.doc
Скачиваний:
138
Добавлен:
22.08.2013
Размер:
2.97 Mб
Скачать

3.3.3. Описание сообщений и управление интерфейсом

в начало

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

Таблица 3.12. Сообщения шины SCSI

Код

Направление

Сообщение

Назначение

00h

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

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

07h

In/Out

Message Reject

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

08h

Out

No Operation

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

09h

Out

Message Parity Error

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

0Ah

In

Linked Command Complete

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

0Bh

In

Linked Command Complete (With Flag)

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

0Ch

Out

Bus Device Reset

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

0Dh

Out

Abort Tag

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

0Eh

Out

Clear Queue

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

0Fh

In/Out

Initiate Recovery

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

10h

Out

Release Recovery

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

11h

Out

Terminate I/O Process

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

12h- 1F, 30h-7Fh

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

80h -FFh

Out

Identify

Установление связи типа I_Т_L или I_Т_R

80h -FFh

In

Identify

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

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

20h

In

Simple Queue Tag

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

20h

Out

Simple Queue Tag

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

21h

Out

Head Of Queue Tag

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

22h

Out

Ordered Queue Tag

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

23h

In

Ignore Wide Residue

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

24h-2Fh

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

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

05h, 00h

In

Modify Data Pointer

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

03h, 0lh

In/Out

Synchronous Data Transfer Request

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

02h, 03h

In/Out

Wide Data Transfer Request

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

Таблица 3.13. Игнорирование лишних данных

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

 

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

32 бит

16 бит

0lh

DB[31:24]

DB[15:8]

02h

DB[31:16]

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

03h

DB[31:8]

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

00h, 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=1). Каждый процесс может быть адресован только одному 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 или "жесткого" сброса, что приведет к установке предопределенных режимов по включению. Согласование режимов не должно инициироваться в каждом процессе, поскольку затраты времени на эту процедуру сведут на нет выигрыш в производительности.

Соседние файлы в предмете Системы ввода и вывода данных