1、American National StandardDeveloped byfor Information Technology SCSI Primary Commands - 3 (SPC-3)ANSI INCITS 408-2005ANSIINCITS408-2005ANSIINCITS 408-2005American National Standardfor Information Technology SCSI Primary Commands - 3(SPC-3)SecretariatInformation Technology Industry CouncilApproved O
2、ctober 25, 2005 American National Standards Institute, Inc.AbstractThis standard defines the device model for all SCSI devices. This standard defines the SCSI commandsthat are basic to every device model and the SCSI commands that may apply to any device model.Approval of an American National Standa
3、rd requires review by ANSI that therequirements for due process, consensus, and other criteria for approval havebeen met by the standards developer.Consensus is established when, in the judgement of the ANSI Board ofStandards Review, substantial agreement has been reached by directly andmaterially a
4、ffected interests. Substantial agreement means much more thana simple majority, but not necessarily unanimity. Consensus requires that allviews and objections be considered, and that a concerted effort be madetowards their resolution.The use of American National Standards is completely voluntary; th
5、eirexistence does not in any respect preclude anyone, whether he has approvedthe standards or not, from manufacturing, marketing, purchasing, or usingproducts, processes, or procedures not conforming to the standards.The American National Standards Institute does not develop standards andwill in no
6、circumstances give an interpretation of any American NationalStandard. Moreover, no person shall have the right or authority to issue aninterpretation of an American National Standard in the name of the AmericanNational Standards Institute. Requests for interpretations should beaddressed to the secr
7、etariat or sponsor whose name appears on the titlepage of this standard.CAUTION NOTICE: This American National Standard may be revised orwithdrawn at any time. The procedures of the American National StandardsInstitute require that action be taken periodically to reaffirm, revise, orwithdraw this st
8、andard. Purchasers of American National Standards mayreceive current information on all standards by calling or writing the AmericanNational Standards Institute.American National StandardPublished byAmerican National Standards Institute, Inc.25 West 43rd Street, New York, NY 10036Copyright 2005 by I
9、nformation Technology Industry Council (ITI)All rights reserved.No part of this publication may be reproduced in anyform, in an electronic retrieval system or otherwise,without prior written permission of ITI, 1250 Eye Street NW, Washington, DC 20005. Printed in the United States of AmericaCAUTION:
10、The developers of this standard have requested that holders of patents that may be re-quired for the implementation of the standard disclose such patents to the publisher. However, nei-ther the developers nor the publisher have undertaken a patent search in order to identify which, ifany, patents ma
11、y apply to this standard. As of the date of publication of this standard, followingcalls for the identification of patents that may be required for the implementation of the standard,notice of one or more such claims has been received. By publication of this standard, no positionis taken with respec
12、t to the validity of this claim or of any rights in connection therewith. The knownpatent holder(s) has (have), however, filed a statement of willingness to grant a license underthese rights on reasonable and nondiscriminatory terms and conditions to applicants desiring to ob-tain such a license. De
13、tails may be obtained from the publisher. No further patent search is con-ducted by the developer or publisher in respect to any standard it processes. No representation ismade or implied that this is the only license that may be required to avoid infringement in the use ofthis standard.iContentsPag
14、eForeword . xxivIntroduction . xxvi1 Scope. 12 Normative references. 42.1 General 42.2 Approved references 52.3 References under development. 62.4 IETF References 63 Definitions, symbols, abbreviations, and conventions . 83.1 Definitions 83.2 Acronyms. 153.3 Keywords . 173.4 Conventions. 183.5 Bit a
15、nd byte ordering 193.6 Notation conventions . 193.6.1 Notation for byte encoded character strings 193.6.2 Notation for procedure calls. 203.6.3 Notation for state diagrams 213.6.4 Notation for binary power multipliers 214 General Concepts 224.1 Introduction 224.2 The request-response model. 224.3 Th
16、e Command Descriptor Block (CDB). 224.3.1 CDB usage and structure. 224.3.2 The fixed length CDB formats 234.3.3 The variable length CDB formats. 264.3.4 Common CDB fields 274.3.4.1 Operation code 274.3.4.2 Service action 284.3.4.3 Logical block address 284.3.4.4 Transfer length. 284.3.4.5 Parameter
17、list length 294.3.4.6 Allocation length. 294.3.4.7 Control . 294.4 Data field requirements 294.4.1 ASCII data field requirements 294.4.2 Null data field termination and zero padding requirements 294.5 Sense data. 304.5.1 Sense data introduction . 304.5.2 Descriptor format sense data. 31iiPage4.5.2.1
18、 Descriptor format sense data overview . 314.5.2.2 Information sense data descriptor . 334.5.2.3 Command-specific information sense data descriptor. 334.5.2.4 Sense key specific sense data descriptor 344.5.2.4.1 Sense key specific sense data descriptor introduction 344.5.2.4.2 Field pointer sense ke
19、y specific data. 354.5.2.4.3 Actual retry count sense key specific data. 364.5.2.4.4 Progress indication sense key specific data 364.5.2.4.5 Segment pointer sense key specific data 374.5.2.5 Field replaceable unit sense data descriptor . 374.5.2.6 Vendor specific sense data descriptors . 384.5.3 Fix
20、ed format sense data 384.5.4 Current errors 394.5.5 Deferred errors 394.5.6 Sense key and sense code definitions 415 Model common to all device types. 575.1 Introduction to the model common to all device types. 575.2 Important commands for all SCSI device servers 575.2.1 Commands implemented by all
21、SCSI device servers 575.2.2 Commands recommended for all SCSI device servers . 575.2.3 Using the INQUIRY command. 575.2.4 Using the REPORT LUNS command 575.2.5 Using the TEST UNIT READY command 575.2.6 Using the REQUEST SENSE command . 585.3 Implicit head of queue 585.4 Parameter rounding . 585.5 Se
22、lf-test operations 585.5.1 Default self-test 585.5.2 The short and extended self-tests . 595.5.3 Self-test modes 595.5.3.1 Self-test modes overview. 595.5.3.2 Foreground mode 595.5.3.3 Background mode 605.5.3.4 Features common to foreground and background self-test modes . 615.6 Reservations 625.6.1
23、 Persistent Reservations overview 625.6.2 Third party persistent reservations 665.6.3 Exceptions to SPC-2 RESERVE and RELEASE behavior 665.6.4 Preserving persistent reservations and registrations. 675.6.4.1 Preserving persistent reservations and registrations through power loss. 675.6.4.2 Nonvolatil
24、e memory considerations for preserving persistent reservations and registrations 685.6.5 Finding persistent reservations and reservation keys 685.6.5.1 Summary of commands for finding persistent reservations and reservation keys 685.6.5.2 Reporting reservation keys 685.6.5.3 Reporting the persistent
25、 reservation 68iiiPage5.6.5.4 Reporting full status . 695.6.6 Registering . 695.6.7 Registering and moving the reservation. 735.6.8 Reserving. 745.6.9 Persistent reservation holder . 755.6.10 Releasing persistent reservations and removing registrations. 755.6.10.1 Overview 755.6.10.1.1 Summary of se
26、rvice actions that release persistent reservations and remove registrations . 755.6.10.1.2 Processing for released registrants only persistent reservations. 765.6.10.1.3 Processing for released all registrants persistent reservations 775.6.10.1.4 Processing for other released persistent reservations
27、 . 775.6.10.2 Releasing 775.6.10.3 Unregistering 785.6.10.4 Preempting. 795.6.10.4.1 Overview 795.6.10.4.2 Failed persistent reservation preempt 815.6.10.4.3 Preempting persistent reservations and registration handling . 815.6.10.4.4 Removing registrations 825.6.10.5 Preempting and aborting 825.6.10
28、.6 Clearing 835.7 Multiple target port and initiator port behavior 845.8 Target port group access states. 845.8.1 Target port group access overview 845.8.2 Asymmetric logical unit access 845.8.2.1 Introduction to asymmetric logical unit access. 845.8.2.2 Explicit and implicit asymmetric logical unit
29、 access . 855.8.2.3 Discovery of asymmetric logical unit access behavior . 855.8.2.4 Target port asymmetric access states . 865.8.2.4.1 Target port asymmetric access states overview 865.8.2.4.2 Active/optimized state 865.8.2.4.3 Active/non-optimized state. 865.8.2.4.4 Standby state . 865.8.2.4.5 Una
30、vailable state 875.8.2.5 Transitions between target port asymmetric access states . 875.8.2.6 Preference Indicator. 885.8.2.7 Implicit asymmetric logical units access management. 895.8.2.8 Explicit asymmetric logical units access management 895.8.2.9 Behavior after power on, hard reset, logical unit
31、 reset, and I_T nexus loss 895.8.3 Symmetric logical unit access 895.9 Power conditions 905.9.1 Power conditions overview. 905.9.2 Power condition state machine . 915.9.2.1 Power condition state machine overview . 915.9.2.2 PC0:Powered_on state 925.9.2.3 PC1:Active state. 925.9.2.4 PC2:Idle state. 9
32、35.9.2.5 PC3:Standby state . 935.10 Removable medium devices with an attached medium changer. 93ivPage5.11 Medium auxiliary memory 945.12 Application client logging . 955.13 Device clocks. 966 Commands for all device types 976.1 Summary of commands for all device types 976.2 CHANGE ALIASES command.
33、996.2.1 CHANGE ALIASES command introduction . 996.2.2 Alias entry format. 1016.2.3 Alias designation validation . 1026.2.4 Alias entry protocol independent designations 1026.2.4.1 Alias entry protocol independent designations overview . 1026.2.4.2 NULL DESIGNATION alias format 1036.3 EXTENDED COPY c
34、ommand . 1046.3.1 EXTENDED COPY command introduction 1046.3.2 Errors detected before starting processing of the segment descriptors . 1076.3.3 Errors detected during processing of segment descriptors . 1076.3.4 Abort task management functions . 1096.3.5 Descriptor type codes 1106.3.6 Target descript
35、ors 1126.3.6.1 Target descriptors introduction 1126.3.6.2 Identification descriptor target descriptor format 1146.3.6.3 Alias target descriptor format. 1156.3.6.4 Device type specific target descriptor parameters for block device types . 1166.3.6.5 Device type specific target descriptor parameters f
36、or sequential-access device types. 1166.3.6.6 Device type specific target descriptor parameters for processor device types 1176.3.7 Segment descriptors 1186.3.7.1 Segment descriptors introduction 1186.3.7.2 Segment descriptor processing . 1196.3.7.3 Block device to stream device operations . 1226.3.
37、7.4 Stream device to block device operations . 1236.3.7.5 Block device to block device operations 1246.3.7.6 Stream device to stream device operations. 1266.3.7.7 Inline data to stream device operation. 1286.3.7.8 Embedded data to stream device operation 1296.3.7.9 Stream device to discard operation
38、 . 1306.3.7.10 Verify device operation 1316.3.7.11 Block device with offset to stream device operation 1326.3.7.12 Stream device to block device with offset operation 1336.3.7.13 Block device with offset to block device with offset operation . 1346.3.7.14 Write filemarks operation . 1356.3.7.15 Spac
39、e operation. 1366.3.7.16 Locate operation 1376.3.7.17 Tape device image copy operation 1386.3.7.18 Register persistent reservation key operation . 1396.3.7.19 Third party persistent reservations source I_T nexus 140vPage6.4 INQUIRY command . 1426.4.1 INQUIRY command introduction 1426.4.2 Standard IN
40、QUIRY data. 1446.4.3 SCSI Parallel Interface specific INQUIRY data 1556.4.4 Vital product data . 1566.5 LOG SELECT command 1586.6 LOG SENSE command 1606.7 MODE SELECT(6) command 1626.8 MODE SELECT(10) command 1646.9 MODE SENSE(6) command 1646.9.1 MODE SENSE(6) command introduction 1646.9.2 Current v
41、alues 1666.9.3 Changeable values 1666.9.4 Default values 1666.9.5 Saved values 1666.9.6 Initial responses . 1676.10 MODE SENSE(10) command 1676.11 PERSISTENT RESERVE IN command. 1686.11.1 PERSISTENT RESERVE IN command introduction . 1686.11.2 READ KEYS service action 1696.11.3 READ RESERVATION servi
42、ce action . 1696.11.3.1 READ RESERVATION service action introduction 1696.11.3.2 Format of PERSISTENT RESERVE IN parameter data for READ RESERVATION 1706.11.3.3 Persistent reservations scope 1716.11.3.4 Persistent reservations type. 1716.11.4 REPORT CAPABILITIES service action 1726.11.5 READ FULL ST
43、ATUS service action . 1746.12 PERSISTENT RESERVE OUT command . 1766.12.1 PERSISTENT RESERVE OUT command introduction . 1766.12.2 PERSISTENT RESERVE OUT service actions . 1786.12.3 Basic PERSISTENT RESERVE OUT parameter list . 1796.12.4 PERSISTENT RESERVE OUT command with REGISTER AND MOVE service ac
44、tion parameters . 1826.13 PREVENT ALLOW MEDIUM REMOVAL command 1846.14 READ ATTRIBUTE command . 1856.14.1 READ ATTRIBUTE command introduction 1856.14.2 ATTRIBUTE VALUES service action . 1866.14.3 ATTRIBUTE LIST service action 1876.14.4 VOLUME LIST service action 1886.14.5 PARTITION LIST service acti
45、on 1886.15 READ BUFFER command. 1896.15.1 READ BUFFER command introduction . 1896.15.2 Combined header and data mode (00h) 1906.15.3 Vendor specific mode (01h) . 1906.15.4 Data mode (02h) 190viPage6.15.5 Descriptor mode (03h) . 1906.15.6 Echo buffer mode (0Ah). 1916.15.7 Echo buffer descriptor mode
46、(0Bh) 1926.15.8 Enable expander communications protocol and Echo buffer (1Ah). 1926.16 READ MEDIA SERIAL NUMBER command . 1936.17 RECEIVE COPY RESULTS command . 1946.17.1 RECEIVE COPY RESULTS command introduction 1946.17.2 COPY STATUS service action 1956.17.3 RECEIVE DATA service action . 1976.17.4
47、OPERATING PARAMETERS service action. 1986.17.5 FAILED SEGMENT DETAILS service action 2016.18 RECEIVE DIAGNOSTIC RESULTS command . 2026.19 REPORT ALIASES command . 2036.20 REPORT DEVICE IDENTIFIER command 2046.21 REPORT LUNS command 2066.22 REPORT PRIORITY command . 2086.23 REPORT SUPPORTED OPERATION
48、 CODES command 2106.23.1 REPORT SUPPORTED OPERATION CODES command introduction 2106.23.2 All_commands parameter data format. 2126.23.3 One_command parameter data format 2136.24 REPORT SUPPORTED TASK MANAGEMENT FUNCTIONS command 2146.25 REPORT TARGET PORT GROUPS command 2166.26 REPORT TIMESTAMP comma
49、nd . 2206.27 REQUEST SENSE command . 2216.28 SEND DIAGNOSTIC command. 2236.29 SET DEVICE IDENTIFIER command 2256.30 SET PRIORITY command . 2266.31 SET TARGET PORT GROUPS command 2296.32 SET TIMESTAMP command . 2316.33 TEST UNIT READY command 2326.34 WRITE ATTRIBUTE command . 2336.35 WRITE BUFFER command . 2356.35.1 WRITE BUFFER command introduction . 2356.35.2 Combined header and data mode (00h) 2376.35.3 Vendor specific mode (01h). 2376.35.4 Data mode (02h) 2376.35.5 Download microcode mode (04h) 2376.35.6 Download microcode and save mode (05h) 2386.35.7 Download microcode with offsets mo