UNH Inter Operability Lab Serial Attached SCSI SAS
UNH Inter. Operability Lab Serial Attached SCSI (SAS) Clause 6 Improving Networks Worldwide.
Improving Networks Worldwide.
SAS Clause 6 Presentation Topics • OOB State Machine • Speed Negotiation • 8 b 10 B Encoding – Conventions – Running Disparity • Synchronization State Machine 3
SAS Clause 6 OOB Signals Review • Definition: Out of band (OOB) signals are lowspeed signal patterns that do not appear in normal data streams. OOB signals consist of defined amounts of idle time followed by defined amounts of burst time 4
SAS Clause 6 OOB State Machine 5
SAS Clause 6 SAS OOB Sequence Source: HP, STA SAS Overview Presentation 6
SAS Clause 6 SAS OOB Sequence Source: SAS Standard 7
SAS Clause 6 SAS OOB Sequence PHY B misses PHY A’s Initialization Attempt Source: SAS Standard 8
SAS Clause 6 SAS-SATA OOB Sequence Source: HP, STA, SAS Overview Presentation 9
SAS Clause 6 Speed Negotiation -- SAS 1. 1 • Goal: Find a commonly supported speed between two link partners • Covers 1. 5 and 3. 0 Gbps speeds – SAS 2. 0 Speed Negotiation will be covered separately • Devices that support 3. 0 Gbps typically also support 1. 5 Gbps 10
SAS Clause 6 Speed Negotiation • Comprised of 4 “Speed Negotiation Windows” – SNW-1, SNW-2, SNW-3, SNW-F • Each window is divided into two parts • Rate Change Delay • Speed Negotiation Transit 11
SAS Clause 6 Speed Negotiation Times • Rate Change Delay Time: The time a transmitted shall transmit D. C. idle between rates during speed negotiation – 750 000 OOBI • Speed Negotiation Transit Time: The time during which ALIGN (0) or ALIGN (1) is transmitted at the specified physical link rate for the given window – 163 840 OOBI 12
SAS Clause 6 Speed Negotiation Times • Speed Negotiation Lock Time: The maximum time during the speed negotiation window for a transmitted device to replay with ALIGN (1) primitives – 153 000 OOBI • Speed Negotiation Window Time: The duration of the entire speed negotiation window. Equal to RCDT + SNTT – 913 840 OOBI 13
SAS Clause 6 Generic SNW 14
SAS Clause 6 SNW-1 • Following successful exchange of COMSAS between two Phys: – If a device supports 1. 5 Gbps speeds then after one RCDT it will being transmitting ALIGN (0) primitives – If a device detects ALIGN (0) primitives in return, it will be being transmitting ALIGN (1) Primitives to indicate a lock 15
SAS Clause 6 SNW-2 • After the SNWT has lapsed for SNW-1, devices will stop transmitting ALIGN primitives and being transmitting D. C. Idle for one RCDT again – If a device supporst 3. 0 Gbps, then it will begin transmitting ALIGN (0) primitives at that speed – If a device detects ALIGN (0) primitives in return, it will begin transmitting ALIGN (1) primitives to indicate a lock 16
SAS Clause 6 SNW-3 • SNW-3 is unused in SAS 1. 1 • After the SNWT has lapsed for SNW-2, devices will stop transmitting ALIGN primitives and being transmitting D. C. Idle for the entire SNWT for SNW-3. 17
SAS Clause 6 SNW-F • After the SNWT has lapsed for SNW-D, devices will continue to transmit D. C. Idle for one more RCDT. – A device will then transmit ALIGN (0) primitives at the highest speed for which it obtained lock during the previous SNWs. – If a device receives ALIGN (0) primitives at the same speed in return, it will begin transmitting ALIGN (1) primitives to indicate a lock – If a lock is obtained within the SNWT, control of the transmitter and receiver is handed over to the link layer applications 18
SAS Clause 6 Speed Negotiation Example 1 • The following example provides a demonstration of the Speed Negotiation Procedures for SAS 1. 1 • Phy A supports 1. 5, 3. 0, and an unspecified higher speed • Phy B supports only 3. 0 Gbps • Link is negotiated to 3. 0 Gbps 19
SAS Clause 6 Speed Negotiation Example 1 20
SAS Clause 6 Speed Negotiation Example 2 • The following example provides a demonstration of the Speed Negotiation Procedures for SAS 1. 1 • Phy A supports 1. 5, 3. 0, and an unspecified higher speed • Phy B supports 1. 5 and 3. 0 Gbps • Speed Negotiation fails due to Phy B being unable to obtain lock in SNW-F 21
SAS Clause 6 Speed Negotiation Example 2 22
SAS Clause 6 SAS 2. 0 Changes to Speed Negotiation • SNW-1, SNW-2, and SNW-F remain unchanged to provide backwards compatibility with non-SAS 2. 0 devices • SNW-3 used to communicate capabilities between phys while remaining ‘Out-Of-Band’ • SNW-3 and SNW-F used to allow devices to negotiate to speeds higher than 3. 0 Gbps 23
SAS Clause 6 SAS 2. 0 SNW-3 • ALIGN Primitives are NOT transmitted at 6. 0 Gbps • Instead, a series of COMWAKE signals and periods of D. C. Idle are transmitted – Called: “Phy Capabilities Bits” – 32 Bits long – One complete COMWAKE signal (six bursts) = 1 Bit – Absense of a COMWAKE = 0 Bit – Used to indicate the speeds and signal settings supported by the transmitter 24
SAS Clause 6 Phy Capabilities Bits • Start Bit - always set to one; used to lock on to beginning of transmission of the Phy Capabilities Bits 25
SAS Clause 6 Phy Capabilities Bits • TX SSC Type – Type of SSC used by the device – 0 indicates down spreading, 1 indicates center spreading 26
SAS Clause 6 Phy Capabilities Bits • Request Logical Link Rate – Multiplexing related setting used to determine the link speed of any logical connections made across the phy 27
SAS Clause 6 Phy Capabilities Bits • Bits 1: 2 though 1: 7 – Capabilities bits – Only 1. 5, 3. 0, and 6. 0 Gbps currently defined – One bit for each speed and SSC setting 28
SAS Clause 6 Phy Capabilities Bits • Reserved Bits – A COMWAKE asserted in any bit that is Reserved will be considered an error condition by the Link Partner and the entire SNW will be rejected 29
SAS Clause 6 Phy Capabilities Bits • Parity Bit – The Parity Bit shall be set such that the total number of bits set to one is even, including the Start Bit and the Parity Bit 30
SAS Clause 6 8 b 10 b Encoding • All information transferred in SAS is encoded into 10 -bit characters using 8 b 10 b encoding • 1024 possible 10 -bit characters 31
SAS Clause 6 8 b 10 b Encoding • 256 possible 8 b characters – Mapped to 512 different 10 b characters • Two for each 8 b character, + and – running disparity – 12 control characters defined • Used for sending Primitives • The rest of the characters are invalid 32
SAS Clause 6 Data Characters . . . 33
SAS Clause 6 Control Characters 34
SAS Clause 6 DWords • All characters transferred in SAS are grouped into four-character sequences called DWords • Data DWords are built from 4 data characters • Example: – D 10. 4 D 20. 2 D 28. 5 D 03. 0 35
SAS Clause 6 DWords • Primitives are DWords are built from a control character and three data characters • Example: – K 28. 5 D 16. 7 • Always starts with the control character – Control character in any other position is a “Misaligned K-Code” error 36
SAS Clause 6 Running Disparity • To further reduce the likely hood that long strings of 0 s or 1 s will occur, running disparity is implented • Recall, each 8 b character is mapped to 2 10 b characters, one positive running disparity, one negative 37
SAS Clause 6 Running Disparity • Each 10 b character is divided in to two parts (sub-blocks) – First 6 bits – Last 4 bits • Changes in running disparity are determined by the last sub-block transmitted 38
SAS Clause 6 Running Disparity Changes • Running disparity at the beginning of 6 bit sub-block is determined by the end of the previous character • Running disparity at the beginning of the 4 -bit sub-block is determined by the end of the 6 -bit sub-block • Running disparity at the end of the character is what is determined at the end of the 4 -bit sub-block 39
SAS Clause 6 Running Disparity Changes • Running disparity is made positive if: – The sub block contains more 1 s than 0 s – If the sub-block is 6 -bits and contains 000111 b – If a sub-block is 4 -bits and contains 0011 b 40
SAS Clause 6 Running Disparity Changes • Running disparity is made negative if: – The sub block contains more 0 s than 1 s – If the sub-block is 6 -bits and contains 111000 b – If a sub-block is 4 -bits and contains 1100 b 41
SAS Clause 6 Running Disparity Changes • Running disparity is not changed if a sub-block contains an equal number of 0 s and 1 s and is not 000111 b, 111000 b, 1100 b, or 0011 b 42
SAS Clause 6 Synchronization State Machine Errors • Four Basic Error Types – Invalid Transmission Character – Running Disparity Error – Incorrect Special Character – Misaligned Special Character 43
SAS Clause 6 Invalid Transmission Character • Character transmitted is not: – One of the 512 valid data characters – One of the 12 valid control characters • Normally involves a long string of either 0 s or 1 s 44
SAS Clause 6 Running Disparity Error • Character transmitted contained an incorrect running disparity transition – Made a + to – transition or a – to + transition unexpectedly – Failed to maintain running disparity 45
SAS Clause 6 Incorrect Special Character • The only valid control character used in SAS are: – K 28. 5 – K 28. 6 – K 28. 3 • Any other special character is considered an error 46
SAS Clause 6 Misaligned Special Character • A Control character that does not appear at the beginning of a Dword • Example: – D 10. 3 K 28. 5 D 16. 7 47
SAS Clause 6 Synchronization State Machine 48
SAS Clause 6 Synchronization State Machine • Basics: – After 4 errors are received synchronization is considered lost – Synchronization can be regained upon reception of primitives from the link partner – If in a loss of synchronization state for more than 1 ms, a device MAY transmit COMINIT 49
SAS Clause 6 Synchronization State Machine • Device may only respond to frames/primitives when in the Sync Acquired State 50
- Slides: 50