Шины
Блоки данных, в отличие от команд, имеют практически неограниченную длину. Многие команды интерпретируют поле длины 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 – реализация и семантика команды зависит от типа устройства.