UNH InterOperability Lab Serial Attached SCSI (SAS) Clause 7 Improving Networks Worldwide. Improving Networks Worldwide. SAS Clause 7 Presentation Topics • Primitive Overview • Primitive Types and definitions • Open Connection Handshake 3 SAS Clause 7 Primitives Overview • Primitives are Dwords whose first character isK28.5 • Example Primitive: K28.5 D01.3 D01.3 D01.3 4 SAS Clause 7 Primitive Format • 1st character: K28.5 • 2nd character: Constant data character • 3rd character: Constant data character • Last character: Constant data character 5 SAS Clause 7 Presentation Topics • Primitive Overview • Primitive Types and definitions • Open Connection Handshake 6 SAS Clause 7 Primitive Types • ALIGN • SOAF • MUX • EOAF • NOTIFY • ERROR • AIP • OPEN_ACCEPT • BREAK • OPEN_REJECT • BROADCAST • ACK • CLOSE • NAK • HARD_RESET • DONE • TRAIN • RRDY 7 SAS Clause 7 ALIGN • ALIGNs are used for: – OOB signals (OOB signals are typically built with ALIGN) – character and dword alignment during the speed negotiation sequence – physical link rate tolerance management after the phy reset sequence and rate matching during connections – ALIGN is used every 2048 dwords in SAS and 256 dwords in SATA ALIGN (0): K28.5 D10.2 D10.2 D27.3 ALIGN (1): K28.5 D07.0 D07.0 D07.0 ALIGN (2): K28.5 D01.3 D01.3 D01.3 ALIGN (3): K28.5 D27.3 D27.3 D27.3 8 SAS Clause 7 MUX • MUX is used if multiplexing is enabled as follows: – transmitted during the multiplexing sequence substituted in place of an ALIGN being – transmitted for physical link rate tolerance management or rate matching to confirm the logical link number. – MUX (LOGICAL LINK 0): K28.5 D02.0 D16.7 D31.4 MUX (LOGICAL LINK 1): K28.5 D04.7 D31.4 D27.4 9 SAS Clause 7 NOTIFY • NOTIFY may be substituted in place of any ALIGN being transmitted for physical link rate tolerance management or rate matching. It tells the device about power consumption • A specific NOTIFY shall not be transmitted in more than three consecutive dwords until at least three other dwords have been transmitted. • NOTIFY shall not be forwarded through expander devices. • SAS target devices are not required to detect every transmitted NOTIFY. • NOTIFY (ENABLE SPINUP): K28.5 D31.3 D31.3 D31.3 • NOTIFY (POWER LOSS EXPECTED): K28.5 D31.3 D07.0 D01.3 • NOTIFY (RESERVED 1):K28.5 D31.3 D01.3 D07.0 • NOTIFY (RESERVED 2): K28.5 D31.3 D10.2 D10.2 10 SAS Clause 7 AIP • AIP is transmitted by an expander device after a connection request to specify that the connection request is being processed and specify the status of the connection request. • AIP means Arbitration In Process and is a sequence primitive, it is sent 3 times • AIP (NORMAL): K28.5 D27.4 D27.4 D27.4 11 SAS Clause 7 BREAK • BREAK is used to abort a connection request or break a connection. • BREAK_REPLY is used to confirm the receipt of a BREAK • It is a sequence primitive and sent 6 times • BREAK: K28.5 D02.0 D24.0 D07.3 BREAK_REPLY: K28.5 D02.0 D29.7 D16.7 12 SAS Clause 7 BROADCAST • BROADCASTs are used to notify SAS ports and expander devices in a SAS domain about certain events. • Is a sequence primitive and is sent 6 times • BROADCAST (CHANGE): K28.5 D04.7 D02.0 D01.4 • BROADCAST (EXPANDER) K28.5 D04.7 D01.4 D24.0 13 SAS Clause 7 CLOSE • CLOSE is used to close a connection. This primitive may be originated by a SAS initiator port or a SAS target port. • It is a sequence primitive and is sent 3 times • CLOSE (NORMAL): K28.5 D02.0 D30.0 D27.4 14 SAS Clause 7 EOAF • EOAF specifies the end of an address frame. • EOAF K28.5 D24.0 D07.3 D31.4 15 SAS Clause 7 ERROR • ERROR should be transmitted by an expander device while the expander device is forwarding dwords from a SAS physical link or SATA physical link to a SAS physical link and receives an invalid dword or an ERROR. • ERROR: K28.5 D02.0 D01.4 D29.7 16 SAS Clause 7 HARD_RESET • HARD_RESET is used to force a phy to generate a hard reset to its port. • It comes before and IDENTIFY address frame • It is a sequence primitive and is sent at least 6 times every time HARD_RESET is sent • HARD_RESET 10bit characters: K28.5 D02.0 D02.0 D02.0 17 SAS Clause 7 OPEN_ACCEPT • OPEN_ACCEPT specifies the acceptance of a connection request. • OPEN_ACCEPT: K28.5 D16.7 D16.7 D16.7 18 SAS Clause 7 OPEN_REJECT • OPEN_REJECT specifies that a connection request has been rejected and specifies the reason for the rejection. 19 SAS Clause 7 OPEN_REJECT Types • OPEN_REJECT (BAD DESTINATION)A connection request routes to a destination expander phy in the same expander port as the source expander phy and the expander port is using the direct routing method. 10bit:K28.5 D31.4 D31.4 D31.4 • OPEN_REJECT(CONNECTION RATE NOT SUPPORTED)The requested connection rate is not supported on some physical link on the pathway between the source phy and destination phy. When a SAS initiator phy is directly attached to a SAS target phy, the requested connection rate is not supported by the destination phy. 10bit:K28.5 D31.4 D04.7 D29.7 • OPEN_REJECT (WRONG DESTINATION)The destination SAS address does not match the SAS address of the SAS port to which the connection request was delivered. 10bit:K28.5 D31.4 D16.7 D24.0 20 SAS Clause 7 SOAF • SOAF specifies the start of an address frame • SOAF:K28.5 D24.0 D30.0 D01.4 21 SAS Clause 7 TRAIN/ TRAIN_DONE • Are used during Train-SNW during speed negotiation. • Are sequence primitives and are sent 6 times • TRAIN:K28.5 D30.3 D30.3 D30.3 • TRAIN_DONE:K28.5 D30.3 D30.3 D10.2 22 SAS Clause 7 ACK • ACK specifies the positive acknowledgement of an SSP frame. • Used only in SSP and SMP connections • ACK: K28.5 D01.4 D01.4 D01.4 23 SAS Clause 7 DONE • DONE is used to start closing an SSP connection and specify a reason for doing so. • DONE is not used during an SMP or STP connection • DONE(Normal):K28.5 D30.0 D30.0 D30.0 24 SAS Clause 7 EOF • EOF specifies the end of an SSP or SMP frame • EOF:K28.5 D24.0 D16.7 D27.4 25 SAS Clause 7 NAK • NAK specifies the negative acknowledgement of an SSP frame and the reason for doing so. • NAK (CRC ERROR) K28.5 D01.4 D27.4 D04.7 26 SAS Clause 7 RRDY • RRDY is used to increase SSP frame credit • Means Receive Ready • Used to let another device know that it is ready to receive data/commands • RRDY(Normal) 10bit:K28.5 D01.4 D24.0 D16.7 27 SAS Clause 7 SOF • SOF specifies the start of an SSP or SMP frame. • SOF: K28.5 D24.0 D04.7 D07.3 28 SAS Clause 7 Presentation Topics • Primitive Overview • Primitive Types and definitions • Open Connection Handshake 29 SAS Clause 7 OPEN Connection Handshake 1st: The SAS initiator sends a SOAF to the Target with the address information and closes the information with a EOAF. 30 SAS Clause 7 OPEN Connection Handshake 2nd: The Target then responds with an OPEN_ACCEPT and RRDY frames. 31 SAS Clause 7 OPEN Connection Handshake • 3rd: The Initiator then sends a data frame starting with a SOF frame followed by dwords and closes the frame with EOF. • 4th: The Target responds with an ACK or NAK and then transmits a RRDY, when ready to receive. 32 SAS Clause 7 OPEN Connection Handshake • 5th: The Initiator transmits a DONE primitive when it is finished transmitting. The Target responds with a DONE. • 6th: Then the Initiator transmits CLOSE, 3 times to close the connection. 33 SAS Clause 7 OPEN Connection Handshake 34