Иллюстрированный самоучитель по теории операционных систем

Шины

Блоки данных, в отличие от команд, имеют практически неограниченную длину. Многие команды интерпретируют поле длины CDB как указанное в блоках. При размере блока 512 байт это позволяет передать за одну операцию до 2 Тбайт (1 Тбайт=1024 Гбайт) данных. На практике, пакет данных, передаваемых за одну операцию шины, ограничен размерами буферов устройств, поэтому запросы на передачу больших объемов данных обрабатываются в несколько приемов. Команда может либо принимать, либо передавать данные.

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

Большинство команд требует от устройства более или менее длительных подготовительных операций (перемещения головки, перемотки ленты), поэтому передача данных не может следовать немедленно за командой. По этой причине большинство современных устройств поддерживает очереди команд. Чтобы связать команду с пришедшим на нее ответом, команды могут снабжаться тегом задачи. Устройство способно параллельно исполнять несколько задач, а в рамках одной задачи может быть исполнена последовательность команд.

Таблица 9.4. Список команд SCSI, поддерживаемых всеми устройствами, цит. по www.t10.org commands].

Имя команды Код Тип Описание
CHANGE DEFIKTTION 40h O Изменить версию протокола, используемого устройством
COMPARE 39h O Сравнить данные
COPY 18h O Копировать данные внутри устройства или между устройствами
COPY AND VERIFY 3Ah O Копировать данные с проверкой
INQUIRY 12h M Проверить наличие устройства, его тип и поддерживаемые им операции
LOG SELECT 4Ch   Включить сбор статистики
LOG SENSE 4Dh O Считать собранную статистику
MODE SELECT(6) 15h Z Выбор режима работы устройства
MODE SELECT(10) 55h Z  
MODE SENSE(6) 1Ah Z Считывание режима работы
MODE SENSE(10) 5Ah Z  
MOVE MEDIUM ATTACHED A7h Z Для устройств с автоматической сменой носителя
PERSISTENT RESERVE IN 5Eh Z Управление режимом блокировки устройства
PERSISTENT RESERVE OUT 5Fh Z  
PREVENT ALLOW MEDIUM REMOVAL 1Eh 0 Заблокировать сменный носитель в устройстве
READ BUFFER 3Ch 0 Чтение данных
READ ELEMENTSTATUS ATTACHED B4h Z Для устройств с автоматической сменой носителя
RECEIVE DIAGNOSTIC RESULTS 1Ch O Получить результаты самотестирования устройства
RELEASE (6) 17h Z Разблокировка (освобождение) устройства
RELEASE (10) 57h z  
REPORT LUNS A0h O Считывание списка логических устройств
REQUEST SENSE 03h М Считывание статуса устройства
RESERVE(6) 16h Z Блокировка (захват) устройства
RESERVE(10) 56h Z  
SEND DIAGNOSTIC 1Dh M Запрос самотестирования устройства
TEST UNIT READY 00h M Проверка готовности устройства
WRITE BUFFER 3Bh O Запись данных

Здесь:

  • M – реализация команды обязательна;
  • O – реализация команды возможна (может быть реализована, а может и не быть);
  • Z – реализация и семантика команды зависит от типа устройства.
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.