UNH Inter Operability Lab Serial Attached SCSI SAS
UNH Inter. Operability Lab Serial Attached SCSI (SAS) Clause 9 Improving Networks Worldwide.
Improving Networks Worldwide.
SAS Clause 9 Clause 8 • Port Layer – Links SAS Link Layer state machines with SSP, SMP, and STP state machines • Operation of the Port Layer is transparent • No major testable items are be found in Clause 8 3
SAS Clause 9 Presentation Topics • Transport Layer Protocols – SSP • • Frame Types Sequencing Command Mapping Sample Traces – SMP – STP 4
SAS Clause 9 SSP Connections • First, an SSP Connection is opened between two link partners – One must be an SSP Initiator – The other must be an SSP Target – Determined by bits asserted in the Identify Address Frames 5
SAS Clause 9 SSP Open Frame • Frame Type – 1 Byte value 0 x 01, 0 x 05, 0 x 06, 0 x 07, 0 x 16 – 0 x. F 0 through 0 x. FF are vendor specific – All others are reserved and invalid 6
SAS Clause 9 SSP Open Frame • Hashed Destination and Source Addresses – 4 byte address calculated from the WWNs of the source and destination – Details on Hash Algorithm and collision likelihood found in Annex H of the SAS 2. 0 Standard 7
SAS Clause 9 SSP Open Frame • TLR Control – Valid for only Command Frames • Reserved for all other frame types – Used to communicate support for Transport Layer Retries by initiators – See Section 9. 2. 1 of SAS 2. 0 Standard for more details 8
SAS Clause 9 SSP Open Frame • Retry Data Frames – Valid only for XFER_RDY Frames • Reserved for all other frame types – Set to 1 indicates to initiator to disable Transport Layer Retries for write DATA frames associated with this XFER_RDY 9
SAS Clause 9 SSP Open Frame • Retransmit – Valid for TASK, RESPONSE, and XFER_RDY Frames • Reserved for all other frame types – Set to one indicates the frame is a retransmission • Circumstances described in 9. 2. 4 of SAS 2. 0 Standard 10
SAS Clause 9 SSP Open Frame • Changing Data Pointer – Valid for Retransmitted DATA Frame • Reserved for all other frame types – Set to one indicates that DATA OFFSET field may not be sequentially increased – More details in section 9. 2. 4. 5 of SAS 2. 0 Standard 11
SAS Clause 9 SSP Open Frame • Number of Fill Bytes – Valid for DATA and RESPONSE Frames • Reserved for all other frame types – Specifies the number of bytes between the Information Unit and the CRC in the frame added to make the size of the frame divisible by 4 – Needed for the CRC calculation to work correctly 12
SAS Clause 9 SSP Open Frame • Initiator Port Transfer Tag – AKA “Tag” – Used for establishing context for Commands and Tasks – Assigned by Initiators 13
SAS Clause 9 SSP Open Frame • Target Port Transfer Tag – – AKA “TPTT” Used for establishing context for DATA Writes Assigned by a target Optionally implemented by targets 14
SAS Clause 9 SSP Open Frame • Data Offset – Used to discribe where the data is placed relative to series of data commands – Valid for only DATA frames • Ignored in all other frames 15
SAS Clause 9 SSP Open Frame • Information Unit – Non-general information unit • DATA, XFER_RDY, COMMAND. . . – Varies by frame type – Contents covered further in this presentation (slide 20) 16
SAS Clause 9 SSP Open Frame • Fill Bytes – Added only if needed – Used to make frame size divisible by 4 for CRC calculations – Number in command specified by Number Of Fill Bytes Field 17
SAS Clause 9 SSP Open Frame • CRC – Cyclic Redundancy Check – CRC is used to detect bit errors inside of transmitted frames – Transmitter calculates CRC and attaches it to every frame – Receiver calculates CRC at receiption and if it doesn't match what is received, transmits NAK (CRC ERROR) to the transmitter 18
SAS Clause 9 SSP Open Frame • CRC – Cyclic Redundancy Check – Computed over the entire SSP Frame – See Annex G of SAS 2. 0 Standard for more information on CRC 19
SAS Clause 9 SSP Connections • Once the SSP Connection (see Clause 7) is established, five types of frames can be transmitted inside that SSP connection – DATA – XFER_RDY – COMMAND – RESPONSE – TASK 20
SAS Clause 9 SSP Frame Types • DATA – Carries actual data to and from targets and initiators • XFER_RDY – Sent by targets giving initiators permission to transmit data • COMMAND – Contains CDBs for commands sent by initiators 21
SAS Clause 9 SSP Frame Types • RESPONSE – Sent at the completion of a command by targets to initiators. Contains information regarding current status and the command status • TASK – Sent by initiators to targets to manage outstanding commands and other noncommand related activities 22
SAS Clause 9 DATA Frames • Type: 0 x 01 • Information Unit: Data (Read or Write) • Originates: From a SSP Initiator or SSP Target • Information Unit Size: 1 to 1024 Bytes 23
SAS Clause 9 DATA Frames Information Unit • Only contains data 24
SAS Clause 9 XFER_RDY Frames • • Type: 0 x 05 Information Unit: Transfer Ready Originates: SSP Targets Only Information Unit Size: 12 bytes 25
SAS Clause 9 XFER_RDY Frames Information Unit • Requested Offset – Specifies an offset in the write data buffer of the application client which can be transmitted in the context of this XFER_RDY frame. 26
SAS Clause 9 XFER_RDY Frames Information Unit • Write Data Length – Specifies the number of bytes that may be transmitted within the context of this XFER_RDY frame. 27
SAS Clause 9 COMMAND Frames • • Type: 0 x 06 Information Unit: Command Originates: SSP Initiator Only Information Unit Size: 28 to 280 bytes 28
SAS Clause 9 COMMAND Frames Information Unit • Logical Unit Number – Refers to the LUN on the DUT this command will be routed too 29
SAS Clause 9 COMMAND Frames Information Unit • Enable First Burst – Set to 1 specifies that the SSP port shall expect first burst data for the command as defined by the FIRST BURST SIZE field in the Disconnect-Reconnect Mode Page 30
SAS Clause 9 COMMAND Frames Information Unit • Command Priority – Specifies the importance of the command relative to other commands with TASK ATTRIBUTE set to 0 31
SAS Clause 9 COMMAND Frames Information Unit • Task Attribute – Used to control the order of execution of received commands 32
SAS Clause 9 COMMAND Frames Information Unit • Task Attribute – Simple: 000 b – Relies on COMMAND PRIORITY field for order of execution via rules defined in SAM -4 33
SAS Clause 9 COMMAND Frames Information Unit • Task Attribute – Simple: 000 b – Relies on COMMAND PRIORITY field for order of execution via rules defined in SAM -4 34
SAS Clause 9 COMMAND Frames Information Unit • Task Attribute – Head of Queue: 001 b – Specifies the Command is to be handled according to the HEAD OF QUEUE task attribute defined in SAM-4 35
SAS Clause 9 COMMAND Frames Information Unit • Task Attribute – Ordered: 010 b – Specifies the command is to be handled according the ORDERED task attribute defined in SAM-4 36
SAS Clause 9 COMMAND Frames Information Unit • Task Attribute – ACA: 100 b – Specifies the command is to be handled according the rules for an ACA task attribute defined in SAM-4 37
SAS Clause 9 COMMAND Frames Information Unit • Task Attribute – All other values (011 b and 101 b-111 b) are reserved and shall be considered invalid 38
SAS Clause 9 COMMAND Frames Information Unit • Additional CDB Length – Length in Dwords (4 bytes) of the ADDITIONAL CDB field 39
SAS Clause 9 COMMAND Frames Information Unit • CDB and Additional CDB Bytes – Together contain the Command Descriptor/Date Block of the command – Commands are defined in SCSI Command Standards • SPC, SBC, SSC, etc. . . 40
SAS Clause 9 CDB Example • Sample CDB – READ (16) Command – Covered in more detail in the SCSI presentation 41
SAS Clause 9 TASK Frames • Type: 0 x 16 • Information Unit: Task Management Function • Originator: SSP Initiator only • Information Unit Size: 28 bytes 42
SAS Clause 9 TASK Frames Information Unit • Logical Unit Number – Refers to the LUN on the DUT this Task Management Function will be routed too 43
SAS Clause 9 TASK Frames Information Unit • Task Management Function – Specifies the type of task management function 44
SAS Clause 9 TASK Frames Information Unit • Task Management Function – 01 h: ABORT TASK: Instructs the LUN to abort the task with the IPTT specified in the TASK Frame – 02: ABORT TASK SET: Instructions the LUN to abort the task set associated with the ITPT specified in the TASK Frame 45
SAS Clause 9 TASK Frames Information Unit • Task Management Function – 04 h: CLEAR TASK SET: Instructs the LUN to clear the task set associated with the IPTT specified in the TASK Frame. – 08 h: LOGICAL UNIT RESET: Instructs the LUN to perform a reset – 10 h: I_T NEXUS RESET: Instructs the LUN to perform an I_T NEXUS RESET 46
SAS Clause 9 TASK Frames Information Unit • Task Management Function – 20 h: Reserved – 40 h: CLEAR ACA: Instructs the LUN to perform a Clear ACA function – 80 h: QUERY TASK: Instructs the LUN to perform a QUERY TASK function on the command associated with the IPTT specified in the TASK Frame 47
SAS Clause 9 RESPONSE Frames • Type: 0 x 07 • Information Unit: Response Information Unit • Originator: SSP Target only • Information Unit Size: 24 to 1024 bytes 48
SAS Clause 9 RESPONSE Frames Information Unit • Status Qualifier & Status – Format Determined by DATAPRES Field 49
SAS Clause 9 RESPONSE Frames Information Unit • Datapres – Specifies if no data, response data, or sense data is contained in this frame 50
SAS Clause 9 REPSONSE Frames Information Unit • Sense Data Length – Length of any Sense Data contained within this frame 51
SAS Clause 9 REPSONSE Frames Information Unit • Response Data Length – Length of any Response Data contained within this frame 52
SAS Clause 9 REPSONSE Frames Information Unit • Response Data – # of bytes specified of Response Data • Sense Data – # of bytes specified of Sense Data 53
SAS Clause 9 Response Data Field • Additional Response Information – Contains information regarding certain Task Management Functions as defined in SAM-4 – Reserved otherwise 54
SAS Clause 9 Response Data Field 55
SAS Clause 9 Sequences of SSP Frames • Test Unit Ready and other Non-Data Commands 56
SAS Clause 9 Sequences of SSP Frames • Write Command Sequence 57
SAS Clause 9 Sequences of SSP Frames • Read Command Sequence 58
SAS Clause 9 Sequences of SSP Frames • Task management sequence 59
SAS Clause 9 SAS Mapping 60
SAS Clause 9 SAS Mapping • All SCSI Commands are located in the CDB and Additional CDB Bytes Field of a SSP Command Frame 61
SAS Clause 9 Sample Write Command Sequence • • Initiator sends command to target Target returns XFER_RDY Initiator send data to target Target returns response when data transmission is complete 62
SAS Clause 9 Sample Read Command Sequence • Initiator sends command to target • Target immediately begins transmitting data • Target transmits response frame when data transmission is complete 63
SAS Clause 9 Presentation Topics • Transport Layer Protocols – SSP • • Frame Types Sequencing Command Mapping Sample Traces – SMP – STP 64
SAS Clause 9 SMP Frames • SMP Frame Type – Specifies the frame type – 40 h – SMP Request – SMP Initiators Only – 41 h – SMP Response – SMP Targets Only 65
SAS Clause 9 Major SMP Functions • REPORT GENERAL – Returns general information • DISCOVER – Returns specific information about specified phy • REPORT ZONE PERMISSION TABLE – Returns zone permission descriptors requested (Current, Shadow, Saved, or Default) 66
SAS Clause 9 Major SMP Functions • CONFIGURE ZONE PERMISSION TABLE – Allows the configuration of the zone permission descriptors – ENABLE DISABLE ZONING – Turns zoning on or off on at the expander device – REPORT BROADCAST – Returns the Broadcast Descriptors specified 67
SAS Clause 9 Major SMP Functions • ZONED BROADCAST – Instructs the zoning device to broadcast the specified zones 68
SAS Clause 9 SMP Frames • Frame Dependent Bytes – Varies based on the Type of SMP Frame – Size always divisible by 4 bytes for CRC calculation • CRC for error detection 69
SAS Clause 9 Presentation Topics • Transport Layer Protocols – SSP • • Frame Types Sequencing Command Mapping Sample Traces – SMP – STP 70
SAS Clause 9 STP Connections • SATA Devices transmit an initial FIS upon a Link Reset – Expander Devices will not forward this FIS to STP Initiators – Create a Block of Shadow Registers to hold this information which is reported upon request from an SMP Initiator using the SMP REPORT PHY SATA function – All Communication between STP Initiators and SATA Devices is done via rules established in the SATA Standard – SATA BIST Requests shall not be forwarded to SATA Targets by Expander Devices 71
- Slides: 71