IEEE 802.3z Gigabit Ethernet Task Force September 9-11, 1996 Interim Meeting Coeur d'Alene Inn and Conference Center Coeur d'Alene, Idaho Richard Taborek, Amdahl GIGABIT ETHERNET SERIAL LINK CODES __________________________________ Proposal for serial link codes and receiver/transmitter states based on PCS protocol requirements. CONTENTS ________ Link startup codes Automatic link configuration data SOP/EOP and Idle codes Data and invalid character codes Link synchronization states and protocols The following companies have indicated their support for the concepts outlined in this proposal (in alphabetical order): 3Com, Amdahl, Cisco, Compaq, DEC, Granite, H-P, Madge, Packet Engines, Sun, VLSI Logic and Xaqti HIGH-LEVEL ASSUMPTIONS ______________________ o Codings are based on 8B10B data codes (Dx.y) and special control characters (Kx.y) as defined in ANSI X3.230 FC-PH (Fibre Channel) Clause 11. o Codings should take into careful consideration the error detection properties of code words selected. o Codings are required for all primitives specified for the link startup sequence. o Codings should provide sufficient coding space for all automatic capability detection parameters and shall be similar in nature to the base capability register defined in IEEE 802.3u clause 28. o Automatic capability detection codings should allow for future expansion of the associated protocol. o Codings are required for a link Idle indication. o Codings are required for IEEE 802.3 packets and bursts of packets during a carrier event. o Codings are required for packet start and end delimiters. o Coding is required for a bad packet information indication. o Coding is required for an indication which allows the carrier to be extended. o Coding is required for an indication which ensures that packet or carrier extension always concludes on an odd-numbered character. NOMENCLATURE ____________ o One or more data codes and special characters are grouped into transmission words. o Special transmission words called ordered sets are defined. o Packet delimiter ordered sets are used to mark packet boundaries. o Signal ordered sets are used to signal events. o Sequence ordered sets are repeated ordered sets used to signal states, carry information and operate in enviromnents with relatively (to frames) high error rates. o The link is not considered usable until Link_Startup is complete. o Synchronization is achieved when the receiver identifies the same transmission word boundary on the received bit stream as that established by the transmitter at the other end of the link. o The detection of invalid transmission words is an indication that a receiver is out of synchronization. o The clock recovery system in a receiver shall have sufficient hysteresis to prevent a single transmission error from causing it to go out of synchronization. o A Loss_of_Synchronization procedure defines the method by which the receiver changes from the Synchronization_Acquired state to the Loss_of_Synchronization state. o The first transmission character of an ordered set transmitted over an operational link is transmitted in an even-numbered character position. Subsequent characters continuously alternate as odd and even-numbered characters. 8B10B TRANSMISSION CODE _______________________ o 8B10B transmission code provides the following functions: - Improves transmission characteristics - Enables bit-level clock recovery - Improves error detection - Separates data symbols from control symbols - Derives bit and word synchronization o 8-bit data bytes are encoded into 10-bit Data Characters. o 12 Special Characters are defined for special signaling. o One or more Data and/or Special Transmission Characters may be grouped into Transmission Words. o Special Transmission Words called Ordered Sets are defined. o Ordered Sets are flexible building blocks which may be used for in-band or out-of-band protocol functions. ORDERED SET USAGE _________________ o Various coding objectives suggest the the specification of multiple length ordered sets. - A single character ordered set is required to ensure that the packet or carrier extension always ends on an odd-numbered character. - Multiple character ordered sets are required for sequences which include a comma and communicate a small amount of information. Two-character ordered sets provide 16/20 bit alignment. - The current requirements for automatic capability detection call for the communication of greater than 8 bits of information which requires either multiple 2 character sequences or the use of larger ordered sets. The use of 4 character ordered sets provides ample coding space and provides information within a single ordered set. o Packets and sequences shall start only on even-numbered characters for consistency and error robustness. - This includes intermediate packets within a burst of packets. SPECIAL CHARACTER USAGE _______________________ o The K28.5 special character is chosen as the first character of all sequences for the following reasons: - Bits abcdeif make up a comma. A comma is a singular bit pattern which in the absence of transmission errors cannot appear in any other location of a transmission character and cannot be generated across the boundaries of any two adjacent transmission characters. - The comma can be used to easily find and verify character and word boundaries of the received bit stream. - Bits ghj of the encoded character present the maximum number of transitions, simplifying receiver acquisition of bit synchronization. o Special characters other than K28.5 are specified for single character ordered sets for alignment purposes or to provide timely function recognition. - Other special characters are chosen from the list of 12 available special characters. - The list is reduced to 9 when special characters containing a comma are excluded to prevent ordered set alignment on odd- numbered characters. DEFINED ORDERED SETS - Idle SEQUENCE ____________________________________ o The I sequence is used to signal Idle. - I effects the Link_Up primitive which indicates that the link is available to send packets. - The first I following a packet or Link_Configuration sequence shall restore the current positive or negative running disparity to a negative value. One I signal ordered set is required for this purpose. - All subsequent I sequences shall insure negative running disparity. - I codes should have a high transition density to keep the receiver in optimum sync during the high-frequency Idle sequence. - Two I codes, I1 and I2, are defined consisting of a K28.5 special character followed by a data character. - Distinct carrier events should be separated by Idles. When a receiver sees any Idle, it drops carrier. DEFINED ORDERED SETS - START AND END OF PACKET DELIMITERS _________________________________________________________ o The S delimiter is used to signal Start_Of_Packet (SOP). - A single character ordered set is desired in order to quickly assert the CSMA/CD carrier indication. - S follows Idle for the first packet during a carrier event. - S follows R for subsequent packets during a carrier event. o The T delimiter is used to signal End_Of_Packet (EOP). - A single character ordered set is desired in order to assist in quick de-assertion of the carrier indication. DEFINED ORDERED SETS - ALIGN/EXTEND SEQUENCE ____________________________________________ o The R signal is used to force even-numbered character alignment for the first Idle following a carrier event and to extend the carrier following a packet when necessary. - A single character ordered set is required. - If T is transmitted as an odd-numbered character, and the carrier is not extended, T shall be followed by two successive R signals. o Two R's, rather than none, are required because of the possibility of running disparity error propagation to characters beyond those during which the error occurred. - If T is transmitted as an even-numbered character, and the carrier is not extended, exactly one R shall be transmitted after the T. - Additional R's shall be transmitted following a T to extend the carrier as required. The last R to extend the carrier must be transmitted in an odd-numbered character position. o R shall also be used to separate the packets within a burst. DEFINED ORDERED SETS - INVALID PACKET DELIMITER/SIGNAL ______________________________________________________ o The H delimiter and signal is used to replace individual invalid data and delimiter characters and mark those entities as invalid. - A single character ordered set is required. - An inter-station unit, such as a repeater, may substitute H for invalid data and delimiters upon detection of invalid characters. - H shall not be used to replace R. o The last H to extend the carrier must be transmitted in an odd-numbered character position. DEFINED ORDERED SETS - Link_Not_Available & LINK_CONFIGURATION ______________________________________________________________ o The F sequence is used to indicate Link_Not_Available. - F is signaled continuously while the associated receiver attempts to acquire synchronization. o The C Sequence is used to indicate Link_Configuration. - C conveys a single parameter to the other end of the link. o The parameter is a 16-bit Config_Register that includes bits sufficient to specify the capabilities of a PHY as well as an ACK bit. o Config_Register format is styled after the Link Code Word (LCW) defined in IEEE 802.3u clause 28. - Config_Register data bits are coded as the third and forth characters of the Link_Configuration ordered set. - The order of transmission of Config_Register data is encoded bits d0:d7 followed by encoded bits d8:d15. o The transmitted bit streams bears little resemblance to order of the Config_Register. LISTING OF ORDERED SETS _______________________ Code Function Encoding Beg. RD End RD ---- -------------------- --------------------- ------- ------ F Link_Not_Available K28.5 D21.5 ? flip C Link_Configuration K28.5 D10.5 config_reg ? ? (config_reg is the Link Configuration Register) I1 Idle/Flip Disparity K28.5 D5.6 + - I2 Idle/Disparity OK K28.5 D16.2 - - S SOP K27.7 ? same T EOP1 K29.7 ? same R EOP2 K23.7 ? same H EOPinvalid K30.7 ? same CODING DISTANCE OF CHARACTERS USED IN ORDERED SETS __________________________________________________ Char D21.5 D16.2 D10.5 D16.2 7 . . D10.5 6 7 . D5.6 4 4 6 LINK INFORMATION EXAMPLE ________________________ 802.3 info 8B10B codes ---------- ----------- LINK_NOT_AVAILABLE F LINK_NOT_AVAILABLE F ~ ~ LINK_NOT_AVAILABLE F LINK_CONFIGURATION C LINK_CONFIGURATION C ~ ~ LINK_CONFIGURATION C Idle/Disparity OK I2 Idle/Disparity OK I2 ~ ~ Idle/Disparity OK I2 0 PREAMBLE S (single short packet) 1 PREAMBLE Data = 10101010 2 PREAMBLE Data = 10101010 3 PREAMBLE Data = 10101010 4 PREAMBLE Data = 10101010 5 PREAMBLE Data = 10101010 6 PREAMBLE Data = 10101010 7 SFD Data = 10101011 8 DA Data = DA... ~ ~ LLC DATA Data = LLC DATA... ~ ~ FCS1 Data = FCS1 octet... FCS2 Data = FCS2 octet... FCS3 Data = FCS3 octet... FCS4 Data = FCS4 octet... EOP1 T EOP2 R EOP2 R ~ ~ EOP2 R (odd-num character) Idle/Flip Disparity I1 Idle/Disparity OK I2 ~ ~ Idle/Disparity OK I2 LINK_NOT_AVAILABLE F (error or reconfig) LINK_NOT_AVAILABLE F ~ ~ LINK_NOT_AVAILABLE F LINK_CONFIGURATION C LINK_CONFIGURATION C ~ ~ LINK_CONFIGURATION C Idle/Flip Disparity I1 Idle/Disparity OK I2 ~ ~ Idle/Disparity OK I2 ~ ~ Idle/Disparity OK I2 0 PREAMBLE S (1st packet of burst) 1 PREAMBLE Data = 10101010 2 PREAMBLE Data = 10101010 3 PREAMBLE Data = 10101010 4 PREAMBLE Data = 10101010 5 PREAMBLE Data = 10101010 6 PREAMBLE Data = 10101010 7 SFD Data = 10101011 8 DA Data = DA... ~ ~ LLC DATA Data = LLC DATA... ~ ~ FCS1 Data = FCS1 octet... FCS2 Data = FCS2 octet... FCS3 Data = FCS3 octet... FCS4 Data = FCS4 octet... EOP1 T (even char/no extension) EOP2 R 0 PREAMBLE S (2nd packet of burst) 1 PREAMBLE Data = 10101010 2 PREAMBLE Data = 10101010 3 PREAMBLE Data = 10101010 4 PREAMBLE Data = 10101010 5 PREAMBLE Data = 10101010 802.3 info 8B10B codes 6 PREAMBLE Data = 10101010 7 SFD Data = 10101011 8 DA Data = DA... ~ ~ LLC DATA Data = LLC DATA... ~ ~ FCS1 Data = FCS1 octet... FCS2 Data = FCS2 octet... FCS3 Data = FCS3 octet... FCS4 Data = FCS4 octet... EOP1 T (even char/no extension) EOP2 R Idle/Flip Disparity I1 Idle/Disparity OK I2 ~ ~ Idle/Disparity OK I2 CONFIG_REGISTER _______________ +-----------------------------------------------------+ |D0|D1|D2|D3|D4|D5|D6|D7|D8|D9|D10|D11|D12|D13|D14|D15| | | | | | |FD|HD| | | | | | | | RF|ACK| NP| +-----------------------------------------------------+ Config_Register bit usage: -------------------------- D5/A0: Full Duplex capable D6/A1: Half Duplex capable D13/RF: Remote Fault D14/ACK: Acknowledge D15/NP: Next Page (Escape) LINK_STARTUP ____________ The link is not considered usable until Link_Startup is complete. To perform Link_Startup, a station transmits the Link_Not_Available sequence and simultaneously attempts to acquire bit and transmission word synchronization from the received signal. Link_Not_Available is followed by the Link_Configuration sequence. o The link is not considered usable until Link_Startup is complete. - To perform Link_Startup, a station transmits the Link_Not_Available sequence and simultaneously attempts to acquire bit and transmission word synchronization from the received signal. - Link_Not_Available is followed by the Link_Configuration sequence. INVALID TRANSMISSION WORDS __________________________ o The detection of Invalid Transmission Words is an indication that a receiver is out of synchronization. o An invalid Transmission Word is recognized by the receiver when one of the following conditions is detected: - A Code Violation is detected within a Transmission Word; - A Special Character Alignment Error is detected. (e.g., a K28.5 character is received as an odd-numbered character, a non-K28.5 special character immediately follows a K28.5 character, a non supported special character is detected, etc.); - An ordered set with improper Beginning Running Disparity received. RUNNING DISPARITY _________________ 8B10B code recognizes the idea of a Running Disparity (the difference between the number of 1Ős and 0Ős transmitted). o The sender keeps the running disparity around zero, the receiver checks the sender. - After powering on or exiting diagnostic mode, the transmitter assumes the negative value for its initial running disparity. - Upon transmission of any transmission character, the transmitter calculates a new value for its running disparity. - After powering on or exiting a special mode, the receiver assumes either a positive or negative initial running disparity. - Upon reception of any transmission character, the receiver determines whether the character is valid and calculates a new value for its RD. - All Idle ordered sets end with negative RD. The I2 ordered set also begins with negative running disparity. - The I2 ordered set may be removed or added from an encoded bit stream by an inter-station unit to compensate for differences in clock frequencies, one word at a time, without altering the beginning RD of the immediately preceding transmission word. SYNCHRONIZATION STATES ______________________ o Signal_Status=OK when a receiver is in the Synchronization_Acquired state. The following four conditions shall cause an operational receiver to enter the Loss_of_Synchronization state. o Signal_status=NOT_OK when a receiver is in the NOT_OK state: 1) Completion of the Loss_of_Synchronization procedure; 2) Transition to power on; 3) Exit from receiver reset condition; 4) Detection of Loss_of_Signal. LOSS_OF_SYNCHRONIZATION PROCEDURE STATES ________________________________________ The following five detection states are defined as part of the Loss_of_Synchronization procedure: - State 1: No invalid transmission word has been detected (the No_Invalid_Transmission_Word detection state). - State 2: The first invalid transmission word is detected (the First_Invalid_Transmission_Word detection state). - State 3: The second invalid transmission word is detected (the Second_Invalid_Transmission_Word detection state). - State 4: The third invalid transmission word is detected (the Third_Invalid_Transmission_Word detection state). - State 5: The fourth invalid transmission word is detected (the Fourth_Invalid_Transmission_Word detection state). A receiver in the Synchronization_Acquired state may be in any of the first four detection states listed above. A receiver in State 5 shall enter the Loss_of_Synchronization state. LOSS_OF_SYNCHRONIZATION PROCEDURE TRANSITIONS _____________________________________________ The following detection states are defined as part of the Loss_of_Synchronization procedure. The transitions are: a) The first invalid transmission word is detected; b) An additional invalid transmission word is not detected in the next two or fewer consecutive transmission words; c) An additional invalid transmission word is detected in the next two or fewer consecutive transmission words; d) The receiver regains synchronization; e) The receiver is reset; f) The receiver exits a previously established reset condition. Synchronization Procedure State Diagram _______________________________________ + - - - - - - - - - - - - - - - - - - - - - - - - + ! Synchronization_Acquired ! ! +---------+ +---------+ +---------+ ! ! | |---a-->| |---c-->| | ! ! | State 1 | | State 2 | | State 3 | ! ! | |<--b---| |<--b---| | ! ! +----A----+ +---------+ +------A--+ ! ! | | | ! + - - -|- - - - - - - - - - - - - - + | | ! | ! c b ! +-------d---------+ ! | | ! + - - -|- - - + ! | | ! +---------+ ! +---------+ ! ! +--V------+ ! | |<--e---| |<--c---| | ! | Reset | ! | State 5 | ! ! | State 4 | ! | |---f-->| | ! ! | | ! +---------+ ! +---------+ ! ! +---------+ ! !Loss_of_Sync ! ! ! + - - - - - - + + - - - - - - + SUMMARY _______ o 8B10B codes and the proposed coding structure are efficient, robust, and flexible enough to meet Gigabit Ethernet PCS requirements. o Future activities: - Continue to follow direction from Task Force; - Revise 8B10B link codes pending proposal acceptance.