UNH InterOperability Lab Serial Attached SCSI (SAS) Clause 9 Improving
71 Slides775.50 KB
UNH InterOperability 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 0x01, 0x05, 0x06, 0x07, 0x16 – 0xF0 through 0xFF 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 non-command related activities 22
SAS Clause 9 DATA Frames Type: 0x01 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: 0x05 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: 0x06 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: 000b – 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: 000b – 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: 001b – 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: 010b – 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: 100b – 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 (011b and 101b111b) 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: 0x16 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 – 01h: 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 – 04h: CLEAR TASK SET: Instructs the LUN to clear the task set associated with the IPTT specified in the TASK Frame. – 08h: LOGICAL UNIT RESET: Instructs the LUN to perform a reset – 10h: 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 – 20h: Reserved – 40h: CLEAR ACA: Instructs the LUN to perform a Clear ACA function – 80h: 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: 0x07 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 NonData 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 – 40h – SMP Request – SMP Initiators Only – 41h – 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