// Workers AI · dad joke modeWhat did the command descriptor block say? "I'm a block above the rest.
In SCSI, the command descriptor block (CDB) is a structure used for sending commands between computers and peripheral devices. This is often particularly used as a standard for transferring data between computers and storage devices.[1][2]
Description
[edit]In the initial SCSI-1 specification, the CDB can be a total of 6, 10, 12, or 16 bytes.[3] Later versions of the SCSI standard such as iSCSI allow for variable-length CDBs.[4] The CDB consists of a one-byte operation code followed by some command-specific parameters.[3] The parameters need not be a full byte long, and the parameter length varies from one command to another.[1] The available commands, with links to articles describing the detailed structure of many of them, are listed in the article List of SCSI commands.
Typical CDB structures, for the 6- and 16-byte SCSI Request Sense Command, opcode 3, are:
Bit Byte [6] |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| 0 | Operation code = 03h | |||||||
| 1 | LUN | Reserved | ||||||
| 2 | Reserved | |||||||
| 3 | Reserved | |||||||
| 4 | Allocation length | |||||||
| 5 | Control | |||||||
Bit Byte |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| 0 | Operation code = 03h | |||||||
| 1 | LUN | Service Action | ||||||
| 2 | Logical Block (MSB) | |||||||
| 3 | ||||||||
| 4 | ||||||||
| 5 | Logical Block (LSB) | |||||||
| 6 | Addition CBP information | |||||||
| 7 | Addition CBP information | |||||||
| 8 | Addition CBP information | |||||||
| 9 | Addition CBP information | |||||||
| 10 | Allocation length (MSB) | |||||||
| 11 | ||||||||
| 12 | ||||||||
| 13 | Allocation length (LSB) | |||||||
| 14 | Misc. CDB data | |||||||
| 15 | Control | |||||||
An example with different allocation of bits to parameters is the 6-byte SCSI Mode Sense Command:[7]
Bit Byte |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| 0 | Operation code = 1Ah | |||||||
| 1 | LUN | Reserved | DBD | Reserved | ||||
| 2 | PC | Page code | ||||||
| 3 | Reserved | |||||||
| 4 | Allocation length | |||||||
| 5 | Control | |||||||
The generic form of the 12-byte CDB is:[3]
Bit Byte |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| 0 | Operation code | |||||||
| 1 | miscellaneous CDB information | SERVICE ACTION (if required) | ||||||
| 2 | Logical Block (MSB) | |||||||
| 3 | ||||||||
| 4 | ||||||||
| 5 | ||||||||
| 6 | TRANSFER LENGTH (if required) | |||||||
| 7 | PARAMETER LIST LENGTH (if required) | |||||||
| 8 | ALLOCATION LENGTH (if required) | |||||||
| 9 | ||||||||
| 10 | miscellaneous CDB information | |||||||
| 11 | CONTROL | |||||||
References
[edit]- 1 2 Buchanan, William (2000). Computer Busses: Design and Application. Elsevier Science. pp. 167–172. ISBN 9780340740767 – via Google Books.
- ↑ Warner, William C. (June 20, 1991). "Adapter and software simplify interface to SCSI peripherals". EDN. Vol. 36, no. 13. UBM Canon. pp. 31–35 – via the Internet Archive.
- 1 2 3 4 5 Rahmel, Ron; Dan Rahmel (1995). Interfacing to the PowerPC Microprocessor. Sams Publications. pp. 297–298. ISBN 9780672305481 – via Google Books.
- ↑ Hufferd, John L. (2003). iSCSI: The Universal Storage Connection. Addison-Wesley. pp. 259–261. ISBN 9780201784190 – via Google Books.
- ↑ Black, John, ed. (1992). The System Engineers Handbook. Morgan Kaufmann Publishers. pp. 333–334. ISBN 9780080519029 – via Google Books.
- ↑ Glass, L. Brett (March 1990). "The SCSI Bus". Byte. Vol. 15, no. 3. McGraw-Hill. pp. 291–298 – via the Internet Archive.
- ↑ SCSI Commands Reference Manual (PDF). Seagate Corporation. October 2016. pp. 97–100.