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

       

Форматы блоков дескрипторов команд: а-б байт, б-10 байт, в-12 байт


Рисунок 5.8. Форматы блоков дескрипторов команд: а-б байт, б-10 байт, в-12 байт

Обратим внимание на порядок байт: первыми передаются старшие байты (бит MSB - самый старший), за ними - млад- шие (бит LSB - самый младший). Зарезервированные поля для совместимости с будущими стандартами должны иметь нулевые значения.

Исполнение команды завершается в фазе Status передачей байта состояния Status Byte. Байт не передается, если ко- манда завершена по сообщению Abort, Abort Tag, Bus Device Reset, Clear Queue, по условию Hard Reset или в случае не- ожиданного разъединения. В байте состояния используются только биты [5:1], возможные состояния приведены в табл. 5.13 (остальные зарезервированы).



Биты

76543210

Состояние

Значение

RROOOOOR

Good

Успешное завершение команды

RR00001R

Check Condition

Указание на асинхронное событие

R R 0 0 0 1 0 R

Condition Met

Запрошенная операция выполнена (команды Search Data и Pre-Fetch)

R R 0 0 1 0 0 R

Busy

Занято (невозможен прием команды)

R R 0 1 0 0 0 R

Intermediate

Успешное выполнение команды в цепочке

RR01010R

Intermediate Condition Met

Удовлетворение запрошенной опера- ции в цепочке команд

R R 0 1 1 0 0 R

Reservation Conflict

Попытка обратиться к ЛУ, зарезер- вированному другим И У

RR10001R

Command Terminated

Завершение текущего процесса по сообщению Terminate I/O Process или по асинхронному событию

R R 1 0 1 0 0 R

QueueFull

Очередь (маркированная) заполнена, процесс в очередь не поставлен

Набор команд для устройств классов 0-9 приведен в табл. 5.14. Любое ЦУ SCSI-2 обязано поддерживать четыре команды: Inquiry, Request Sense, Send Diagnostic, Test Unit Ready. Они используются для конфигурирования системы, тестирования устройств и сообщений об ошибках и исклю- чительных ситуаций. Команда Inquiry позволяет получить информацию о ЛУ через стандартизованный блок данных длиной 96 байт: тип подключенного ПУ, возможность сме- ны носителя, поддержка 32- или 16-битного расширения, син- хронного обмена, относительной адресации, цепочек ко- манд, очередей и уведомления об асинхронных событиях.


Здесь же описываются уровень поддержки стандартов SCSI (ISO, ANSI, ECMA), идентификаторы производителя, уст- ройства и т. п. Формат блока по усмотрению производителя может быть расширен.

В графе "Применимость" указаны номера типов ПУ, соот- ветствующие табл. 5.12 (символ * соответствует всем ти- пам). Команды для каждого типа устройств могут быть обя- зательными - номер сопровождается символом m (Mandatory) - или необязательными - номер типа сопро- вождается символом о (Optional). Часть команд в устрой- ствах разных классов реализуется по-разному, что отмече- но обозначением *z.

Команда

Код

Применимость

Назначение

Change Definition

40h

*0

Модификация определений операций для ЛУ

Compare

39h

*0

Побайтное сравнение данных двухЛУ1

Copy

18h

*0

Копирование данных с одно- го ЛУ на другое'

Copy And Verify

3Ah

*0

Копирование данных с одно- го ЛУ на другое с верифи- кацией1

Erase

19h

1m

Стирание (участка или до конца носителя)

Erase (10)

2Ch

7o

То же с 10-байтным блоком дескриптора

Erase (12)

ACh

7o

То же с 12-байтным блоком дескриптора

Exchange Medium

A6h

80

Обмен носителями между двумя элементами устройства

Format

04h

2o

Выбор шрифтов и форм

Format Unit

04h

Om 7o

Форматирование устройства

Get Data Buffer Status

34h

60

Опрос состояния буфера данных

Get Message

08h

9o

Прием пакета из коммуни- кационного устройства

Команда

Код

Применимость

Назначение

Get Message (10)

28h

9o

To же с 10-байтным блоком дескриптора

Get Message (12)

A8h

9o

То же с 12-байтным блоком дескриптора

Get Window

25h

60

Получение информации о предварительно определен- ном окне

Initialize Element Status

07h

8o

Инициализация состояния элемента

Inquiry

12h

*m

Опрос типа устройства, уров- ня стандарта, идентифика- тора производителя, модели и т. п.

Load Unload

IBh

lo

Загрузка/разгрузка носителя

Locate

2Bh

lo

Позиционирование на заданный логический блок

Lock-Unlock Cache

36h

Oo 4o 5o 7o

Фиксация заданных логи- ческих блоков в кэше устройства и ее отмена

Log Select

4Ch

*o

Запись статистической ин- формации, обработка которой поддерживается устройством, в ЦУ или ЛУ

Log Sense

4Dh

*o

Считывание статистической информации с ЦУ или ЛУ

Medium Scan

38h

4o7o

Сканирование - поиск не- прерывной области чистых или записанных блоков

Mode Select (6)

15h

*z

Запись параметров носителя, ЦУ или ЛУ (с 6-байтным блоком дескриптора)

Mode Select (10)

55h

*z

То же с 10-байтным блоком дескриптора

Mode Sense (6)

lAh

*z

Считывание параметров носителя, ЦУ или ЛУ (с 6-байтным блоком де- скриптора)

<


Команда

Код

Прииенимость

Назначение

Mode Sense (10)

5Ah



То же с 10-байтньш блоком дескриптора

Move Medium

A5h

8ro

Передача носителя

Object Position

31h



Позиционирование (загруз- ка/выгрузка) сканируемого объекта

Pause/Resume

4Bh



Пауза/продолжение воспро- изведения аудио

Play Audio (10)

45h



Аудиовоспроизведение ука- занных логических блоков

Play Audio (12)

A5h



То же с 12-байтньш блоком дескриптора

Play Audio MSF

47h



Аудиовоспроизведение с адре- сацией MSF

Play Audio Track/Index

48h



Аудиовоспроизведение с ука- занием треков и индексов

Play Track Relative (10)

49h



Аудиовоспроизведение с адре- сацией относительно трека

Play Track Relative (12)

A9h



То же с 12-байтным блоком дескриптора

Position To Bement

2Bh



Позиционирование транс- портного элемента к указан- ному элементу

Pre-Fetch

34h

Оо 4о 5о 7о

Считывание блоков данных в кэш (без передачи ИУ)

Prevent Allow Medium Removal

lEh

Оо 1о 4о 5о 7о 8о

Запрет/разрешение смены носителя в ЛУ

Print

OAh



Печать блока данных

Read (6)

08h

От 1т 4о 5о 7о

Чтение данных (с 6-байтным блоком дескриптора)

Read(10)

28h

От 4т 5т 6т 7т

То же с 10-байтньш блоком дескриптора

Read(12)

A8h

4о 5о 7о

То же с 12-байтным блоком дескриптора

Read Block Limits

05h



Запрос ограничений на дли- ну блока (минимальная и максимальная длины)

Команда

Код

Применимость

Назначение

Read Buffer

3Ch

*0

Чтение буфера

Read Capacity

25h

Om 4m 7m

Определение емкости Л У

ReadCd-Rom Capacity

25h

5m

Определение емкости CD-ROM (возможно быстрое определение с погрешностью)

Read Defect Data

37h

Oo7o

Чтение списков дефектных блоков (Plist - исходный список от изготовителя, Glist - список, заполняемый при эксплуатации)

Read Defect Data (12)

B7h

7o

То же с 12-байтным блоком дескриптора

Read Bement Status

B8h

80

Чтение состояния элементов

Read Generation

29h

7o

Чтение максимально возмож- ного поколения для указан- ного логического блока

Read Header

44h

5o

Чтение заголовка логического блока CD-ROM

Read Long

3Eh

Oo 4o 5o 7o

"Длинное" чтение - данные блока и поля ЕСС

Read Position

34h

lo

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

Read Reverse

OFh

lo

Чтение блоков с текущей по- зиции в обратном направ- лении

Read Sub-Channel

42h

5o

Чтение данных субканала CD-ROM

Read Toe

43h

5o

Чтение таблицы содержимого CD-ROM

Read Updated Block

2Dh

7o

Чтение определенного поко- ления обновленного логичес- кого блока

Reassign Blocks

07h

Oo4o7o

Переназначение дефектных блоков

<


Команда

Код

Применимость

Назначение

Receive

08h

3o

Прием пакета

Receive Diagnostic Results

ICh

*o

Получение результатов диа- гностики

Recover Buffered Data

14h

lo2o

Восстановление данных, по- сланных в буфер, но не запи- санных (не напечатанных) из-за ошибки

Release

17h

Om 2m 4m 5m 6m 7m 80

Освобождение зарезервиро- ванного ЛУ, экстента или элемента

Request Sense

03h

Jj

Опрос уточненного состояния

Request Volume Element Address

B5h

80

Передача результатов коман- ды SEND VOLUME TAG

Reserve

16h

Om 1m 2m 4m 5m 6m 7m 80

Предотвращение использо- вания Л У (его экстента или элемента) другим ИУ

f i\yflliJ

Olh

1m

Перемотка носителя к началу раздела

Rezero Unit

Olh

Oo 4o 5o 7o 80

Приведение ЛУ в определен- ное состояние

Scan

IBh

6o

Сканирование данных в определенном окне

Search Data Equal

31h

Oo 4o 5o 7o

Поиск данных, (не) совпа- дающих с эталоном2

Search Data Equal (12)

Blh

4o 5o 7o

То же с 12-байтным блоком дескриптора2

Search Data High

30h

Oo 4o 5o 7o

Поиск данных, (не) больших эталона2

Search Data High (12)

BOh

4o 5o 7o

То же с 12-байтным блоком дескриптора2

Search Data Low

32h

Oo5o7o

Поиск данных, (не) меньших эталона2

Search Data Low (12)

B2h

4o 5o 7o

То же с 12-байтным блоком дескриптора2

Seek(6)

OBh

Oo 4o 5o 7o

Позиционирование (с 6-байт- ным блоком дескриптора)3

Команда

Код

Применимость

Назначение

Seek(10)

2Bh

Oo 4o 5o 7o

Позиционирование - поиск логического адреса (с 10-байт- ным блоком дескриптора)3

Send

OAh

3m

Посылка пакета

Send (10)

2Ah

60

Посылка данных в устройство

Send Diagnostic

IDh

*m

Запуск теста ЦУ. Ответом будет состояние Good, если тест прошел успешно, или Check Condition в случае ошибки

Send Message

OAh

9m

Посылка пакета в коммуни- кационное устройство

Send Message (10)

2Ah

9o

То же с 10-байтным блоком дескриптора

Send Message (12)

AAh

9o

То же с 12-байтным блоком дескриптора

Send Volume Tag

B6h

80

Посылка тега тома (шаблона) для поиска его в элементах или создания нового тега

Set Limits

33h

Oo 4o 5o 7o

Определение области логи- ческих адресов, над которыми могут выполняться операции цепочки команд

Set Limits (12)

B3h

4o 5o 7o

То же с 12-байтным блоком дескриптора

Set Window

24h

6m

Определение окна сканиро- вания

Slew And Print

OBh

2o

Прогон бумаги и печать

Space

llh

1m

Относительное позициони- рование (вперед и назад) на заданное число блоков, файлов, маркеров и т. п.

Start Stop Unit

IBh

Oo 4o 5o 7o

Разрешение/запрет операций с носителем, извлечение но- сителя*

Stop Print

IBh

2o

Останов печати с очисткой буфера или без нее

<


Конаида

Код

Применимость

Назначение

Synchronize Buffer

lOh

2o

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

Synchronize Cache

35h

Oo 4o 5o 7o

Синхронизация кэша - запись несохраненных дан- ных заданного диапазона ад- ресов на носитель

Test Unit Ready

OOh

*m

Опрос готовности ЛУ

Update Block

3Dh

7o

Обновление логического блока

Verify

2Fh

Oo5o7o

Верификация - проверка возможности безошибочного считывания блоков данных с носителя

Verify

13h

lo

Тоже

Verify (10)

2Fh

4o5o7o

То же или проверка чистоты блоков (с 10-байтным блоком дескриптора)

Verify (12)

AFh

4o 5o 7o

То же с 12-байтным блоком дескриптора

Write (6)

OAh

Oo 1m 4o 7o

Запись блоков данных, переданных ИУ (с 6-байт- ным блоком дескриптора)

Write (10)

2Ah

Oo4m 7m

Запись блоков данных, переданных ИУ (с 10-байт- ным блоком дескриптора)

Write (12)

AAh

4o7o

То же с 10-байтным блоком дескриптора

Write And Verify

2Eh

Oo4o7o

Запись блоков данных, переданных ИУ, с верифика- цией записи

Write And Verify (12)

AEh

7o4o

То же с 12-байтным блоком дескриптора

Write Buffer

3Bh

*o

Запись в буфер (но не на носитель) или загрузка микрокода

Команда

Код

Применимость

Назначение

Write Filemarks

lOh

1m

Запись маркера файлов

Write Long

3Fh

Oo4o7o

"Длинная" запись - блока данных и поля ЕСС

Write Same

41h

Oo

Запись блока данных, пере- данных ИУ, в группу смеж- ных блоков или до конца носителя5

1 Команды копирования и сравнения данных оперируют парой Л У, ко- торые могут принадлежать как одному ЦУ, так и разным, если эту воз- можность поддерживает ведущее устройство копирования - Copy Master. Копирование возможно между устройствами любых классов.Для устройств типов 8 и 9 эти команды не применяются.

2 Данные ищутся сравнением указанного числа логических записей с эталоном. Логические записи определяются длиной, начальным логи- ческим блоком и смещением внутри него. Можно потребовать попада- ния искомых данных в один логический блок.

3 Команда эффективна для ленточных устройств прямого доступа.

4 Команда STOP UNIT для устройств с кэшированием перед остановом автоматически выполняет синхронизацию кэша.

5 Первые 4 байта в записываемых блоках могут быть заменены на физи- ческий или логический адрес блока.


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