Points of contact
Abstract
Revision History
1 Revision 0 (09 September 2005)
2 Revision 1 (16 September 2005)
3 Revision 2 (22 September 2005)
4 Revision 3 (16 November 2005)
5 Revision 4 (10 February 2006)
6 Revision 5 (11 May 2006)
7 Revision 6 (24 July 2006)
8 Revision 7 (22 September 2006)
9 Revision 8 (18 January 2007)
10 Revision 8a (18 January 2007)
11 Revision 9 (22 March 2007)
12 Revision 10 (17 May 2007)
13 Revision 11 (19 July 2007)
14 Revision 12 (11 November 2007)
15 Revision 13 (24 January 2008)
16 Revision 14 (20 March 2008)
17 Revision 15 (15 May 2008)
18 Revision 16 (25 August 2008)
19 Revision 17 (17 November 2008)
20 Revision 18 (23 February 2009)
21 Revision 19 (29 May 2009)
22 Revision 20 (10 September 2009)
23 Revision 21 (25 November 2009)
24 Revision 22 (29 March 2010)
25 Revision 23 (30 July 2010)
26 Revision 24 (05 August 2010)
27 Revision 25 (27 October 2010)
28 Revision 26 (21 January 2011)
29 Revision 27 (01 June 2011)
30 Revision 28 (30 September 2011)
31 Revision 29 (04 October 2011)
32 Revision 30 (13 February 2012)
33 Revision 31 (25 May 2012)
34 Revision 32 (06 September 2012)
35 Revision 33 (31 October 2012)
Contents
Tables
Figures
Foreword
Introduction
SCSI standards family
1 Scope
2 Normative references
2.1 Normative references overview
2.2 Approved references
2.3 References under development
3 Definitions, symbols, abbreviations, keywords, and conventions
3.1 Definitions, symbols, abbreviations, keywords, and conventions Introduction
3.2 Definitions
3.3 Symbols
3.4 Abbreviations
3.5 Keywords
3.6 Editorial conventions
3.7 Numeric conventions
3.8 State machine conventions
4 Direct-access block device type model
4.1 Direct-access block device type model introduction
4.2 Direct-access block device type model overview
4.3 Media examples
4.3.1 Media examples overview
4.3.2 Rotating media
4.3.3 Memory media
4.4 Removable media
4.4.1 Removable media overview
4.4.2 Removable medium with an attached media changer
4.5 Logical blocks
4.6 Physical blocks
4.7 Logical block provisioning
4.7.1 Logical block provisioning overview
4.7.2 Full provisioning
4.7.3 Logical block provisioning management
4.7.3.1 Logical block provisioning management overview
4.7.3.2 Resource provisioning
4.7.3.3 Thin provisioning
4.7.3.4 Unmapping LBAs
4.7.3.4.1 Processing unmap requests
4.7.3.4.2 Unmap operations overview
4.7.3.4.3 WRITE SAME command and unmap operations
4.7.3.5 Autonomous LBA transitions
4.7.3.6 Logical block provisioning management and protection information
4.7.3.7 Resource exhaustion considerations
4.7.3.8 Logical block provisioning thresholds
4.7.3.8.1 Logical block provisioning thresholds overview
4.7.3.8.2 Logical block provisioning armed decreasing thresholds
4.7.3.8.3 Logical block provisioning armed increasing thresholds
4.7.3.8.4 Logical block provisioning threshold notification
4.7.4 Logical block provisioning state machine
4.7.4.1 Logical block provisioning state machine overview
4.7.4.2 LBP1:Mapped state
4.7.4.2.1 LBP1:Mapped state description
4.7.4.2.2 Transition LBP1:Mapped to LBP2:Deallocated
4.7.4.2.3 Transition LBP1:Mapped to LBP3:Anchored
4.7.4.3 LBP2:Deallocated state
4.7.4.3.1 LBP2:Deallocated state description
4.7.4.3.2 Transition LBP2:Deallocated to LBP1:Mapped
4.7.4.3.3 Transition LBP2:Deallocated to LBP3:Anchored
4.7.4.4 LBP3:Anchored state
4.7.4.4.1 LBP3:Anchored state description
4.7.4.4.2 Transition LBP3:Anchored to LBP1:Mapped
4.7.4.4.3 Transition LBP3:Anchored to LBP2:Deallocated
4.8 Data de-duplication
4.9 Ready state
4.10 Initialization
4.11 Sanitize operations
4.11.1 Sanitize operations overview
4.11.2 Processing a sanitize operation
4.11.3 Completing a sanitize operation
4.12 Write protection
4.13 Medium defects
4.13.1 Medium defects overview
4.13.2 Generation of defect lists
4.14 Write failures
4.15 Caches
4.16 Implicit head of queue command processing
4.17 Reservations
4.18 Error reporting
4.18.1 Error reporting overview
4.18.2 Processing pseudo unrecovered errors
4.18.3 Block commands sense data descriptor
4.18.4 User data segment referral sense data descriptor
4.19 Model for XOR commands
4.19.1 Model for XOR commands overview
4.19.2 Storage array controller supervised XOR operations
4.19.2.1 Storage array controller supervised XOR operations overview
4.19.2.2 Update write operation
4.19.2.3 Regenerate operation
4.19.2.4 Rebuild operation
4.19.3 Array subsystem considerations
4.19.3.1 Array subsystem considerations overview
4.19.3.2 Access to an inconsistent stripe
4.20 Rebuild assist mode
4.20.1 Rebuild assist mode overview
4.20.2 Enabling rebuild assist mode
4.20.3 Using the rebuild assist mode
4.20.3.1 Using rebuild assist mode overview
4.20.3.2 Unpredicted unrecovered read error
4.20.3.3 Predicted unrecovered read error
4.20.3.4 Unpredicted unrecovered write error
4.20.3.5 Predicted unrecovered write error
4.20.4 Disabling the rebuild assist mode
4.20.5 Testing rebuild assist mode
4.21 START STOP UNIT and power conditions
4.21.1 START STOP UNIT and power conditions overview
4.21.2 Processing of concurrent START STOP UNIT commands
4.21.3 Managing medium access commands during a change to the active power condition
4.21.4 Stopped Power Condition
4.21.5 START STOP UNIT and power condition state machine
4.21.5.1 START STOP UNIT and power condition state machine overview
4.21.5.2 SSU_PC0:Powered_On state
4.21.5.2.1 SSU_PC0:Powered_On state description
4.21.5.2.2 Transition SSU_PC0:Powered_On to SSU_PC4:Active_Wait
4.21.5.2.3 Transition SSU_PC0:Powered_On to SSU_PC8:Stopped
4.21.5.3 SSU_PC1:Active state
4.21.5.3.1 SSU_PC1:Active state description
4.21.5.3.2 Transition SSU_PC1:Active to SSU_PC5:Wait_Idle
4.21.5.3.3 Transition SSU_PC1:Active to SSU_PC6:Wait_Standby
4.21.5.3.4 Transition SSU_PC1:Active to SSU_PC10:Wait_Stopped
4.21.5.4 SSU_PC2:Idle state
4.21.5.4.1 SSU_PC2:Idle state description
4.21.5.4.2 Transition SSU_PC2:Idle to SSU_PC4:Active_Wait
4.21.5.4.3 Transition SSU_PC2:Idle to SSU_PC5:Wait_Idle
4.21.5.4.4 Transition SSU_PC2:Idle to SSU_PC6:Wait_Standby
4.21.5.4.5 Transition SSU_PC2:Idle to SSU_PC7:Idle_Wait
4.21.5.4.6 Transition SSU_PC2:Idle to SSU_PC10:Wait_Stopped
4.21.5.5 SSU_PC3:Standby state
4.21.5.5.1 SSU_PC3:Standby state description
4.21.5.5.2 Transition SSU_PC3:Standby to SSU_PC4:Active_Wait
4.21.5.5.3 Transition SSU_PC3:Standby to SSU_PC6:Wait_Standby
4.21.5.5.4 Transition SSU_PC3:Standby to SSU_PC7:Idle_Wait
4.21.5.5.5 Transition SSU_PC3:Standby to SSU_PC9:Standby_Wait
4.21.5.5.6 Transition SSU_PC3:Standby to SSU_PC10:Wait_Stopped
4.21.5.6 SSU_PC4:Active_Wait state
4.21.5.6.1 SSU_PC4:Active_Wait state description
4.21.5.6.2 Transition SSU_PC4:Active_Wait to SSU_PC1:Active
4.21.5.7 SSU_PC5:Wait_Idle state
4.21.5.7.1 SSU_PC5:Wait_Idle state description
4.21.5.7.2 Transition SSU_PC5:Wait_Idle to SSU_PC2:Idle
4.21.5.8 SSU_PC6:Wait_Standby state
4.21.5.8.1 SSU_PC6:Wait_Standby state description
4.21.5.8.2 Transition SSU_PC6:Wait_Standby to SSU_PC3:Standby
4.21.5.9 SSU_PC7:Idle_Wait state
4.21.5.9.1 SSU_PC7:Idle_Wait state description
4.21.5.9.2 Transition SSU_PC7:Idle_Wait to SSU_PC2:Idle
4.21.5.10 SSU_PC8:Stopped state
4.21.5.10.1 SSU_PC8:Stopped state description
4.21.5.10.2 Transition SSU_PC8:Stopped to SSU_PC4:Active_Wait
4.21.5.10.3 Transition SSU_PC8:Stopped to SSU_PC7:Idle_Wait
4.21.5.10.4 Transition SSU_PC8:Stopped to SSU_PC9:Standby_Wait
4.21.5.11 SSU_PC9:Standby_Wait state
4.21.5.11.1 SSU_PC9:Standby_Wait state description
4.21.5.11.2 Transition SSU_PC9:Standby_Wait to SSU_PC3:Standby
4.21.5.12 SSU_PC10: Wait_Stopped state
4.21.5.12.1 SSU_PC10:Wait_Stopped state description
4.21.5.12.2 Transition SSU_PC10:Wait_Stopped to SSU_PC8:Stopped
4.22 Protection information model
4.22.1 Protection information overview
4.22.2 Protection types
4.22.2.1 Protection types overview
4.22.2.2 Type 0 protection
4.22.2.3 Type 1 protection
4.22.2.4 Type 2 protection
4.22.2.5 Type 3 protection
4.22.3 Protection information format
4.22.4 Logical block guard
4.22.4.1 Logical block guard overview
4.22.4.2 CRC generation
4.22.4.3 CRC checking
4.22.4.4 CRC test cases
4.22.5 Application of protection information
4.22.6 Protection information and commands
4.23 Grouping function
4.24 Background scan operations
4.24.1 Background scan overview
4.24.2 Background pre-scan operations
4.24.2.1 Enabling background pre-scan operations
4.24.2.2 Suspending and resuming background pre-scan operations
4.24.2.3 Halting background pre-scan operations
4.24.3 Background medium scan
4.24.3.1 Enabling background medium scan operations
4.24.3.2 Suspending and resuming background medium scan operations
4.24.3.3 Halting background medium scan operations
4.24.4 Interpreting the logged background scan results
4.25 Association between commands and CbCS permission bits
4.26 Deferred microcode activation
4.27 Model for uninterrupted sequences on LBA ranges
4.28 Referrals
4.28.1 Referrals overview
4.28.2 Discovering referrals
4.28.3 Discovering referrals example
4.28.3.1 Referrals example with no user data segment multiplier
4.28.3.2 Referrals example with non-zero user data segment multiplier
4.28.4 Referrals in sense data
4.29 ORWRITE commands
4.29.1 ORWRITE commands overview
4.29.2 ORWgeneration code
4.29.2.1 ORWgeneration code overview
4.29.2.2 ORWgeneration code processing
4.29.3 Change generation and clear operation
4.29.4 Set operation
4.30 Block device ROD token operations
4.30.1 Block device ROD token operations overview
4.30.2 POPULATE TOKEN command and WRITE USING TOKEN command completion
4.30.3 Block device specific ROD tokens
4.30.4 Block device zero ROD token
4.30.5 ROD token device type specific data
5 Commands for direct-access block devices
5.1 Commands for direct-access block devices overview
5.2 COMPARE AND WRITE command
5.3 FORMAT UNIT command
5.3.1 FORMAT UNIT command overview
5.3.2 FORMAT UNIT parameter list
5.3.2.1 FORMAT UNIT parameter list overview
5.3.2.2 Parameter list header
5.3.2.3 Initialization pattern descriptor
5.3.2.4 Address descriptor formats
5.3.2.4.1 Address descriptor formats overview
5.3.2.4.2 Short block format address descriptor
5.3.2.4.3 Extended bytes from index address descriptor
5.3.2.4.4 Extended physical sector address descriptor
5.3.2.4.5 Long block format address descriptor
5.3.2.4.6 Bytes from index format address descriptor
5.3.2.4.7 Physical sector format address descriptor
5.4 GET LBA STATUS command
5.4.1 GET LBA STATUS command overview
5.4.2 GET LBA STATUS parameter data
5.4.2.1 GET LBA STATUS parameter data overview
5.4.2.2 LBA status descriptor
5.4.2.3 LBA status descriptor relationships
5.5 ORWRITE (16) command
5.6 ORWRITE (32) command
5.7 POPULATE TOKEN command
5.7.1 POPULATE TOKEN command overview
5.7.2 POPULATE TOKEN parameter list
5.7.3 Block device range descriptor
5.8 PRE-FETCH (10) command
5.9 PRE-FETCH (16) command
5.10 PREVENT ALLOW MEDIUM REMOVAL command
5.11 READ (10) command
5.12 READ (12) command
5.13 READ (16) command
5.14 READ (32) command
5.15 READ CAPACITY (10) command
5.15.1 READ CAPACITY (10) overview
5.15.2 READ CAPACITY (10) parameter data
5.16 READ CAPACITY (16) command
5.16.1 READ CAPACITY (16) command overview
5.16.2 READ CAPACITY (16) parameter data
5.17 READ DEFECT DATA (10) command
5.17.1 READ DEFECT DATA (10) command overview
5.17.2 READ DEFECT DATA (10) parameter data
5.18 READ DEFECT DATA (12) command
5.18.1 READ DEFECT DATA (12) command overview
5.18.2 READ DEFECT DATA (12) parameter data
5.19 READ LONG (10) command
5.20 READ LONG (16) command
5.21 REASSIGN BLOCKS command
5.21.1 REASSIGN BLOCKS command overview
5.21.2 REASSIGN BLOCKS parameter list
5.22 RECEIVE ROD TOKEN INFORMATION
5.22.1 RECEIVE ROD TOKEN INFORMATION overview
5.22.2 RECEIVE ROD TOKEN INFORMATION parameter data for POPULATE TOKEN command
5.22.3 RECEIVE ROD TOKEN INFORMATION parameter data for WRITE USING TOKEN command
5.23 REPORT REFERRALS command
5.23.1 REPORT REFERRALS command overview
5.23.2 REPORT REFERRALS parameter data
5.24 SANITIZE command
5.24.1 SANITIZE command overview
5.24.2 SANITIZE command service actions
5.24.2.1 SANITIZE command service actions overview
5.24.2.2 OVERWRITE service action
5.24.2.3 BLOCK ERASE service action
5.24.2.4 CRYPTOGRAPHIC ERASE service action
5.24.2.5 EXIT FAILURE MODE service action
5.25 START STOP UNIT command
5.26 SYNCHRONIZE CACHE (10) command
5.27 SYNCHRONIZE CACHE (16) command
5.28 UNMAP command
5.28.1 UNMAP command overview
5.28.2 UNMAP parameter list
5.29 VERIFY (10) command
5.30 VERIFY (12) command
5.31 VERIFY (16) command
5.32 VERIFY (32) command
5.33 WRITE (10) command
5.34 WRITE (12) command
5.35 WRITE (16) command
5.36 WRITE (32) command
5.37 WRITE AND VERIFY (10) command
5.38 WRITE AND VERIFY (12) command
5.39 WRITE AND VERIFY (16) command
5.40 WRITE AND VERIFY (32) command
5.41 WRITE LONG (10) command
5.42 WRITE LONG (16) command
5.43 WRITE SAME (10) command
5.44 WRITE SAME (16) command
5.45 WRITE SAME (32) command
5.46 WRITE USING TOKEN command
5.46.1 WRITE USING TOKEN command overview
5.46.2 WRITE USING TOKEN parameter list
5.47 XDWRITEREAD (10) command
5.48 XDWRITEREAD (32) command
5.49 XPWRITE (10) command
5.50 XPWRITE (32) command
6 Parameters for direct-access block devices
6.1 Parameters for direct-access block devices introduction
6.2 Diagnostic parameters
6.2.1 Diagnostic parameters overview
6.2.2 Rebuild Assist Input diagnostic page
6.2.3 Rebuild Assist Output diagnostic page
6.2.4 Translate Address Input diagnostic page
6.2.5 Translate Address Output diagnostic page
6.3 Log parameters
6.3.1 Log parameters overview
6.3.1.1 Summary of log pages
6.3.1.2 Resetting and setting log parameters
6.3.2 Background Scan log page
6.3.2.1 Overview
6.3.2.2 Background Scan Status log parameter
6.3.2.3 Background Scan Results log parameter
6.3.3 Format Status log page
6.3.3.1 Overview
6.3.3.2 Format Data Out log parameter
6.3.3.3 Grown Defects During Certification log parameter
6.3.3.4 Total Blocks Reassigned During Format log parameter
6.3.3.5 Total New Blocks Reassigned log parameter
6.3.3.6 Power On Minutes Since Format log parameter
6.3.4 Logical Block Provisioning log page
6.3.4.1 Overview
6.3.4.2 Available LBA Mapping Resource Count log parameter
6.3.4.2.1 Overview
6.3.4.3 resource count field
6.3.4.4 Used LBA Mapping Resource Count log parameter
6.3.4.5 De-duplicated Resource Count log parameter
6.3.4.6 Compressed LBA Resource Count log parameter
6.3.4.7 Total Efficiency LBA Resource Count log parameter
6.3.5 Non-volatile Cache log page
6.3.5.1 Overview
6.3.5.2 Remaining Nonvolatile Time log parameter
6.3.5.3 Maximum Nonvolatile Time log parameter
6.3.6 Solid State Media log page
6.3.6.1 Overview
6.3.6.2 Percentage Used Endurance Indicator log parameter
6.4 Mode parameters
6.4.1 Mode parameters overview
6.4.2 Mode parameter block descriptors
6.4.2.1 Mode parameter block descriptors overview
6.4.2.2 Short LBA mode parameter block descriptor
6.4.2.3 Long LBA mode parameter block descriptor
6.4.3 Application Tag mode page
6.4.3.1 Introduction
6.4.3.2 Application Tag descriptor
6.4.4 Background Control mode page
6.4.5 Caching mode page
6.4.6 Informational Exceptions Control mode page
6.4.7 Logical Block Provisioning mode page
6.4.7.1 Introduction
6.4.7.2 Threshold descriptor format
6.4.8 Read-Write Error Recovery mode page
6.4.9 Verify Error Recovery mode page
6.5 Vital product data (VPD) parameters
6.5.1 VPD parameters overview
6.5.2 Block Device Characteristics VPD page
6.5.3 Block Limits VPD page
6.5.4 Logical Block Provisioning VPD page
6.5.5 Referrals VPD page
6.5.6 Third-Party Copy VPD page
6.5.6.1 Third-Party Copy VPD page overview
6.5.6.2 Block device third-party copy descriptor type codes
6.5.6.3 Block Device ROD Token Limits descriptor
6.6 Copy manager parameters
Annex A
(informative)
Numeric order codes
A.1 Variable length CDBs
A.2 Service action CDBs
Annex B
(informative)
XOR command examples
B.1 XOR command examples overview
B.2 Update write operation
B.3 Regenerate operation
B.4 Rebuild operation
Annex C
(informative)
CRC example in C
Annex D
(informative)
Sense information for locked or encrypted SCSI target devices
Annex E
(informative)
Optimizing block access characteristics
E.1 Optimizing block access overview
E.2 Starting logical block offset
E.3 Optimal granularity sizes
E.4 Optimizing transfers
E.5 Examples