In SCSI, the command descriptor block (CDB) is a structure used for sending commands between computers and peripheral devices. This is often particularly used a
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]
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 | |||||||
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.