340 likes | 444 Views
Serial Attached SCSI (SAS) Clause 7. UNH InterOperability Lab. Presentation Topics. Primitive Overview Primitive Types and definitions Open Connection Handshake. Primitives Overview. Primitives are Dwords whose first character isK28.5 Example Primitive: K28.5 D01.3 D01.3 D01.3.
E N D
Serial Attached SCSI (SAS)Clause 7 UNH InterOperability Lab
Presentation Topics Primitive Overview Primitive Types and definitions Open Connection Handshake
Primitives Overview Primitives are Dwords whose first character isK28.5 Example Primitive: K28.5 D01.3 D01.3 D01.3
Primitive Format 1st character: K28.5 2nd character: Constant data character 3rd character: Constant data character Last character: Constant data character
Presentation Topics Primitive Overview Primitive Types and definitions Open Connection Handshake
Primitive Types ALIGN MUX NOTIFY AIP BREAK BROADCAST CLOSE HARD_RESET TRAIN SOAF EOAF ERROR OPEN_ACCEPT OPEN_REJECT ACK NAK DONE RRDY
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
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
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
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
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
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
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
EOAF EOAF specifies the end of an address frame. EOAF K28.5 D24.0 D07.3 D31.4
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
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
OPEN_ACCEPT OPEN_ACCEPT specifies the acceptance of a connection request. OPEN_ACCEPT: K28.5 D16.7 D16.7 D16.7
OPEN_REJECT OPEN_REJECT specifies that a connection request has been rejected and specifies the reason for the rejection.
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
SOAF SOAF specifies the start of an address frame SOAF:K28.5 D24.0 D30.0 D01.4
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
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
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
EOF EOF specifies the end of an SSP or SMP frame EOF:K28.5 D24.0 D16.7 D27.4
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
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
SOF SOF specifies the start of an SSP or SMP frame. SOF: K28.5 D24.0 D04.7 D07.3
Presentation Topics Primitive Overview Primitive Types and definitions Open Connection Handshake
OPEN Connection Handshake 1st: The SAS initiator sends a SOAF to the Target with the address information and closes the information with a EOAF.
OPEN Connection Handshake 2nd: The Target then responds with an OPEN_ACCEPT and RRDY frames.
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.
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.