Edge Rewrite
// request.cf · coarse context

A page that knows where it met you.

Only coarse request metadata is shown. This demo does not display or persist visitor IP addresses.

Country
US
Cloudflare location
CMH
Connection
HTTP/2
Language
Not provided

Ray ID: a40c71734f2fc6f8

Jump to content

Command descriptor block

From Wikipedia, the free encyclopedia

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:

6-byte CDB[5][3]
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
16-byte CDB[3]
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. 1 2 Buchanan, William (2000). Computer Busses: Design and Application. Elsevier Science. pp. 167–172. ISBN 9780340740767 – via Google Books.
  2. ↑ 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.
  3. 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.
  4. ↑ Hufferd, John L. (2003). iSCSI: The Universal Storage Connection. Addison-Wesley. pp. 259–261. ISBN 9780201784190 – via Google Books.
  5. ↑ Black, John, ed. (1992). The System Engineers Handbook. Morgan Kaufmann Publishers. pp. 333–334. ISBN 9780080519029 – via Google Books.
  6. ↑ Glass, L. Brett (March 1990). "The SCSI Bus". Byte. Vol. 15, no. 3. McGraw-Hill. pp. 291–298 – via the Internet Archive.
  7. ↑ SCSI Commands Reference Manual (PDF). Seagate Corporation. October 2016. pp. 97–100.