SAS 2 - scrambler operation

Robert Watson Robert_Watson at
Thu Jul 19 16:25:49 PDT 2007

Formatted message: <A HREF="r070719b_f.htm">HTML-formatted message</A>

Well, the SAS2 training pattern isn't a frame, though.... if we treat it as a
frame with no SOF/CRC/EOF, then the scrambler would not advance for the TRAIN
primitives, just like it would not for ALIGNs. (this is what I would expect).
Speaking of ALIGN/NOTIFY - would an ALIGN/NOTIFY be permitted during the SAS2
training patterns? (if so, I'd assume that the scrambler would not advance,
and that they would be dropped by the receiver.) I'm not sure why they'd be
needed, but...
Robert Watson
PMC-Sierra, Inc.
From: owner-t10 at [mailto:owner-t10 at] On Behalf Of Stephen FINCH
Sent: Thursday, July 19, 2007 3:38 PM
To: 'David Freeman'; t10 at
Subject: RE: SAS 2 - scrambler operation
The scrambler is not mux'd into the data stream.  It is XOR'd with the data
stream.  Idle dwords are vendor specified values used as fill and are XOR'd
with the scrambler output to reduce EMI/RFI/etc..  Idling or not idling the
scrambler during primitives would not cause any issues when IDLE DWORDS are
being transmitted.
But the scrambler MUST not advance for primitives during a FRAME. 
Deletable/Insertable primitives can occur within a frame and can be
inserted/deleted by entities within the transport path.  The transmitter and
receiver may never know if a deletion or insertion occurred.  So keeping the
transmitter's scrambler in sync with the receiver's WOULD be impossible if
the scrambler was advanced during primitives.
In no case are primitives XOR'd with the scrambler.
Steve Finch
From: owner-t10 at [mailto:owner-t10 at] On Behalf Of David Freeman
Sent: Thursday, July 19, 2007 11:33 AM
To: t10 at
Subject: RE: SAS 2 - scrambler operation
Would it not be easier to have just a free-running scrambler where the output
is muxed into the data stream instead of adding extra logic to pause the
scrambler for primitives. So, yes, Primitive are not scrambled, however, I
would prefer to not have to pause the idle data generator every time in need
to insert a primitive.
Are we expecting to be able to descramble the data and verify that it is
really all zeros?
David Freeman
From: owner-t10 at [mailto:owner-t10 at] On Behalf Of Stephen FINCH
Sent: Thursday, July 19, 2007 6:47 AM
To: 'Robert Watson'; t10 at
Subject: RE: SAS 2 - scrambler operation
I'd like to address the question by use of an example.
In a normal frame (between SOF and EOF or between SOAF and EOAF), the
scrambler is not advanced is a ALIGN primitive is inserted.  In fact, the
scrambler is not be advanced when any primitive is inserted, such as RRDY or
ACK.  Since the TRAIN and TRAIN_DONE patterns consists of TRAIN and
TRAIN_DONE primitives and scrambled data then, by the example above, the
scrambler would not be advanced when the primitive portions of the patterns
are sent.
In section 7.6 it states:
"All data dwords are scrambled. Table 117 lists the scrambling for different
types of data dwords."
In a brief search of SAS-2, I didn't find an explicit statement that
primitives are not scrambled, but they aren't.
Steve Finch 
From: owner-t10 at [mailto:owner-t10 at] On Behalf Of Robert Watson
Sent: Wednesday, July 18, 2007 4:19 PM
To: 't10 at'
Subject: SAS 2 - scrambler operation Train-SNW defines two training patterns: TRAIN pattern and
TRAIN)DONE pattern. Both are defined as their respective redundant primitive
followed by 58 dwords set to 0x00000000 scrambled and 8b10b encoded.
Furthermore, the scrambler is initialized at the end of RCDT and is not
re-initialized after that.
The question we have is : Does the scrambler pause while sending TRAIN or
TRAIN_DONE primitives; that is, is the dword following the primitive the
scrambler's successor dword to the dword preceding the primitive? Or does the
scrambler run continuously, and TRAIN or TRAIN_DONE is overlayed on top of
scrambler dwords? I would expect the former, but I don't feel that the
current draft (sas2r10) is clear in this regard.
Robert Watson
PMC-Sierra, Inc.

More information about the T10 mailing list