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

       

Адресация и система команд


5.5. Адресация и система команд

Как указывалось ранее, любое устройство SCSI на шине ад- ресуется идентификатором SCSI ID, соответствующим за- данному уникальному адресу. В ЦУ может быть определено до 8 ЛУ со своими номерами LUN (Logical Unit Number) в диапазоне 0-7. Понятие LUN неприменимо к ИУ, но SCSI- устройство двойного назначения может иметь Л У.

Система команд и сообщений позволяет адресовать как ЦУ в целом, так и любое его Л У. В ЦУ может быть определено до 8 целевых программ TRN (Target Routine), которые не име- ют непосредственной привязки к ЛУ. Целевые программы появились в SCSI-2, их адресация также производится че- рез сообщения.

Система команд SCSI включает общие команды, применимые для устройств всех классов, и специфические для каждого класса. Как общие, так и специфические наборы команд со- держат обязательные (Mandatory), дополнительные (Optional) и фирменные (Vendor Specific) команды. Любое SCSI-устрой- ство должно поддерживать обязательные команды общего набора и своего класса, чем обеспечивается высокий уровень совместимости. Команда передается ИУ в ЦУ через блок дес- криптора команды Command Descriptor Block, посылаемый в фазе Command. Некоторые команды сопровождаются блоком параметров, следующим за блоком дескриптора в фазе Data. Форматы блоков стандартизованы, длина блока определяет- ся кодом операции Operation Code, который всегда является первым байтом блока и может составлять 6, 10 или 12 байт. Типовой блок содержит следующие поля (Рисунок 5.8):

as OpCode - код операции, 1 байт (графа "Код" в табл. 5.14). Биты [7:5] определяют группу, а биты [4:0] - код команды. В группе 0 блок дескриптора имеет длину 6 байт, в группах 1 и 2 - 10 байт, в группе 5-12 байт. Группы 3 и 4 зарезерви- рованы, группы б и 7 отданы на усмотрение разработчиков.

т LUN - номер ЛУ (для совместимости со SCSI-1), всегда занимает биты [7:5] байта 1. Если для идентификации ис- пользуются сообщения Identify, то это поле игнорируется (рекомендуется устанавливать LUN=0).


LBA - адрес логического блока, 21 бит для 6-байтных блоков и 32 бит - для 10- и 12-байтных. В ряде команд поле не используется.

Lengfh - длина (количество блоков или байт) передавае- мых данных Transfer Length, блока параметров Parameter List Length или блока, резервируемого И У под данные Allocation Length (один из трех вариантов в зависимости от команды). При однобайтном задании длины 0 соответ- ствует значению 256, в длинных формах 0 указывает на отсутствие передач. В ряде команд поле не используется.

Control - байт управления. Биты [7:6] отданы на усмот- рение разработчику, биты [5:2] - зарезервированы, бит 1 - Flag, бит 0 - Link (служит признаком объединения команд в цепочку). Flag определяет сообщение, передаваемое в случае успешного выполнения команд цепочки, при Flag=i сообщение Linked Command Complete (With Flag) будет вызывать прерывания между командами цепочки.


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