Clock Management Primitives
Relative priority of injection of primitives
Primitive Injection Rate
1.5Gb/s
one ALIGN or NOTIFY within every 2048 dwords
3.0Gb/s
two ALIGN or NOTIFY within every 4096 dwords
Higher rate
No requirement for the ALIGNs
Expender
Remove all the ALIGNs and NOTIFYs from an incoming path
Simply insert them at the outgoing Phy as needed
The insertion of primitives for clock management is unrelated to the insertion of other primitives for things like rate matching
8b/10b Encoding and Decoding
Ensure sufficient transitions in the data
Look enough like a clock at the receiver
Used to lock a PLL or other clock recovery scheme
Purpose
Limiting the run length
Run length: length of a contiguous string of 1s or 0s
Each character will have a mix of zeros and ones
No combination of characters would ever be able to create more that 5 ones or zeros in a row
DC balance
Prevent the line from becoming charged up
Also: Disparity balance
More ones than zeros: postive
More zeros than ones: negative
Equal ones and zeros: neutral
When neutral, CRD remains unchanged
Special characters
Minimizing complexity
Split the 8-bit input into 5b/6b and 3b/4b bit sub-blocks
Help with recognition of special characters
8b/10b Nomenclature
Control Characters and the Comma Pattern
K28.3
STP connection
K28.5
comma pattern
Useful feature for establishing SAS dword synchronization
SAS transaction
K28.6
SATA physical link
SATA_ERROR indicator
Sent by expanders that receive a frame during an STP connection that has an invalid dword or other error
Properties
General
Using disparity forces an equal number of ones and zeros over time
The longest continuous string of either ones or zeros is five
A 10-bit character must have
5 ones and 5 zeros
4 ones and 6 zeros
6 zeros and 4 ones
Not other combination is legal
The 6-bit sub-block cannot contain more than 4 ones or 4 zeros
The 4 bit sub-block cannot contain more than 3 ones or 3 zeros
Bytes, Characters, and Dwords
Byte
8 bits
Character
The 10-bit result after encoding
Dword
Four bytes
32 bits
Four characters
40 bits
Primitive
A dword that begins with a control character and is followed by three data characters that define the meaning of the primitive
Sent out on the wire in this order
Frst is the control character
Followed by three data characters
The endianness of SAS and SATA are different, but for primitives the endianness of both is the same
Initialization
Ch. 6
Generation of the Phy reset sequence
Generation of the OOB signaling
Generation of primitives for speed negotiation
Implementation Examples
Transmit Block
SSC
Vary the clock over a range of frequencies rather than keeping it fixed as a pure reference clock
Reduce EMI
SSC is optional for SATA
A digital PLL that will support SATA will likely need more feedback bits to cover the wider frequency range than it otherwise would.
Not required for SAS
The frequency of the signals seen on the wire using NRZ encoding must necessarily be less than or equal to half of the transmit frequency
Receive Block
Power Management
SAS does not include any power management features
Support of SAS ports acting as SATA host devices
Reset
Reasions
Power on
Receiving a Hard Reset OOB pattern
Receiving a management Application Layer request to reset
Losing dword synchronization and not attempting to re-acquire it
Timeout of Receive Odentify timer
For expander phys, after a hot-plug timeout
Hard Reset
If a SAS Phy receives a hard reset it initiates a reset of that port
But not any other ports of the device
SSP Port
Result in a Transport Reset event notification to the SCSI Application Layer
The SCSI device will perform a hard reset
STP port
All the resets are effectively the same
The SATA device will take steps associated with a hardware or power-on reset
Expander ports
Do not forward OOB patterns or hard reset
Do not reset their internal settings, such as routing tables
Wide port
Cause all the phys of that port to reset
Link Reset
SATA
Link reset = Phy reset
SAS
IDENTIFY frame is expected from the attached device after a link reset or hard reset
The Receive Identify Timeout timer is maintained by the SL_IR state machine
Ensure that this frame arrives within 1ms
Phy Reset
1. OOB sequence
2. Speed negotiation sequence
Phy State Machine
SAS Phy (SP) machine
OOB Sequencing
Speed Negotiaion
SAS
SATA
SAS Phy DWord Synchronization (SP_DWS) machine