IEEE p1394c: 1394 with 1000BASE-T PHY Technology Kevin Brown kbrown@broadcom.com
IEEE Working Group 1394c Charter Bob Davis, Chair of the Microcomputer Standards Committee of the IEEE approved the formation of the 1394c study group on March 5, 2003, with the following statement: The group is chartered to investigate methods of running IEEE 1394 over up to 100 meters of UTP-5 by leveraging existing gigabit Ethernet PHY technology. The 1394c working group was formally created by the IEEE NESCOM in September, 2003.
1394c Overview What it is: A PHYsical layer addition to IEEE 1394 S800 data rates (~800Mbps) 100 meters of Category 5 UTP RJ-45, standard pinout Negotiation capabilities What it is NOT: 1394 over Ethernet Ethernet over 1394 Any packet encapsulation
1394c Goals Leverage 1000BASE-T technogy to use Category 5 unshielded twisted pair cabling for S800 transport links Allow appropriate negotiation to be done so that the endpoints can select which protocols to be used: 10BASE-T Ethernet 100BASE-TX Ethernet S100 1000BASE-T Ethernet S800 1394c Not interfere with any legacy 802.3 device
Goals (continued) Allow a simple hub-like-thing to be built that: Connects all endpoints that negotiate to Ethernet using standard hub or switch technology Connects all endpoints that negotiate to 1394 using standard PHY or 1394.1 technology Bridges IP data between the two network domains For the end user, the objective is to have a single RJ-45 socket that is labeled network, and works for any kind of connection.
1394c Conceptual Architectural IEEE 1000BASE-T PHY 1394 Link 1394 Link I/F Analog Port #2 (SERDES) Digital Phy Core Analog Port #1 (SERDES) Reconciliation Sub-layer GMII Encoder & Scrambler (PCS) Descrambler & Decoder (PCS) TX 1 TX 2 TX 3 TX 4 Slicer Pulse Shaping Decision Feedback Equalizer Feed Forward Equalizer D/A + A/D Timing Recovery Line Interface BIAS 1.2V Reg TP1 TP2 RJ-45 TP3 TP4 TPA TPB TPA TPB 1394 Cable Connectors
Possible interconnection Ethernet Firewire hub/switch 9-pin 9-pin Port negotiates to to Ethernet 1394 RJ-45 bilingual bilingual 1000baseT PHY 1394c PHY startup/arb/ data routing 1394c/ 1000baseT rate adaption 1394c/1000baseT negotiation GMII PHY/Link Link 1000baseT MAC
Where 1394c fits PHY block diagram - from IEEE -22002 PHY-Link interface port controller packet transmit/receive BOSS arbitration and control token machines. to other ports Port Port Interface to 100BASE-T PHY Beta mode functions Connection management DS mode functions Beta mode functions Connection management DS mode functions Low power signaling Low power signaling Cat. 5 UTP - or - Glass optical fiber -or- Plastic optical fiber -or - Beta-only electrical -or- Bilingual electrical -or - DS-only electrical Cat. 5 UTP - or - Glass optical fiber -or- Plastic optical fiber -or - Beta-only electrical -or- Bilingual electrical -or - DS-only electrical
1394c modifications to PHY data byte (8 bits) request control token request mapping Control token mapping ABCDEFGH 8 request symbol control symbol (4 bits) ABCDExxH PQRS 8 4 Dx.y data character 8 A B C D E F H ABCDEFGH 10 Dx.0 or Dx.4 data character A B C D E 00H ABCDExxH 8 4 P Q R S PQRS Data 8B/10B Type coder Identification 8B/10B coder (2 bits control added) coder 0ABCDEFGH0 abcdeifghj scrambler 10ABCDEH01 abcdeifghj 10 Cz 10 control character 1100PQRS11 abcdeifghj or 11PQRS0011 Scrambler is bypassed Encoder is replaced by Data Type ID PMD 10 parallel to serial 10-bit to 8-bit conversion Serializer is bypassed
Data Type Identification Data byte data byte (8 bits) 0 D0 D1 D2 D3 D4 D5 D6 D7 0 Data Type Identification Bits: 0xxxxxxxx0 = 1394c data byte 10 bit word: 1394c Data Unit (SDU)
Data Type Identification Request symbol request symbol (6 bits) 1 0 a0 a1 a2 i0 i1 i2 0 1 Data Type Identification Bits: 10xxxxxx01= 1394c arbitration request symbol 10 bit word: 1394c Data Unit (SDU)
Data Type Identification Control symbol control symbol (6 bits) in position AB 1 1 c0 c1 c2 c3 0 0 1 1 control symbol (6 bits) in position CD 1 1 0 0 c0 c1 c2 c3 1 1 Data Type Identification Bits: 11xxxxxx11 = control symbol control code is always within ONE 802.3 cccc A cccc B Ccccc Dcccc a b c d e clause 40 byte! cccc cccc cccc cccc
Mux SDUs into single stream 0 D0 D1 D2 D3 D4 D5 D6 D7 0 10 10 bit word: 1394c Data Units data symbol 1 0 a0 a1 a2 i0 i1 i2 0 1 request symbol 1 1 c0 c1 c2 c3 0 0 1 1 or 1 1 0 0 c0 c1 c2 c3 1 1 10 10 Multiplexer 10 To FIFO control symbol
1394c Block Diagram reconcillation layer transmit path: Mux Data, Request, Control 8 bit word input at ~786Mbps add bits at start and end to make 10 bit word input (SDU) ~983Mbps 1394 Link 1394 PHY/Link Interface 1394 Digital PHY 8 bit word output, at 1000Mbps, matches GMII format receive path: 8 bit word input, at 1000Mbps, GMII format GMII 1000BASE-T PHY TP1 TP2 TP3 TP4 10 bit word output ~983Mbps (SDU) use first and last bits to de-mux into Data, Request, Control, 8 bits words FIFOs accommodate rate mismatches in both directions TX_EN and RX_DV control filling, Emptying of FIFOs
Reconciliation sublayer: transmitter Encoded S800 data stream: 10 bit word SDU (1394c Data Unit) Shift 10 bit word at 98.3MHz into FIFO 96 bit deep FIFO Pointer Transmit Enable On startup, TX_EN goes HIGH when the pointer indicates the FIFO is full, When pointer indicates FIFO is empty, TX_EN goes LOW after startup, TX_EN goes HIGH when 11 IDLE symbols have been sent by 802 PHY TX_EN 8 bit bytes go directly to 1000BASE-T GMII
Reconciliation Sublayer: Receiver 8 bit bytes come directly to 1000BASE-T GMII 8-bit to 10-bit conversion deletable symbol processing RX_DV Receive Data Valid standard 1394 receive FIFO When RX_DV is LOW no data is loaded into FIFO will happen when the standard burst of 11 IDLE symbols arrive When RX_DV is HIGH, valid data is loaded into FIFO Encoded S800 data stream: 10 bit word SDU (1394c Data Unit) Shift 10 bit word at 98.3MHz out of FIFO
Link Equivalence Link PHY R.S. Sublayer Gig PHY 100m Cat 5 Cable Gig PHY R.S. Sublayer PHY Link Link S800 PHY 983Mpbs FIFO with 1us delay 983Mpbs PHY S800 Link
Reconciliation layer summary Straight-forward design No exotic technology Actually simpler than standard beta port No scrambler/descrambler Minimal data encode/decode Some extra latency due to 1000base-T PHY encoding/decoding
1394c Negotiation 1394c uses the same physical cable at 1000BASE-T, 100BASE-TX, 10BASE-T Same connector and pin-out Negotiation is required to allow 1394c devices to recognize each other, without interfering with 802.3 devices 1394c method allows a single RJ-45 to be used for both 802.3 or 1394c, depending on outcome of negotiation
802.3 clause 28 Auto-Negotiation Pair A: RJ-45 positions 1 and 2 Pair B: RJ-45 positions 3 and 6 pair A Device #1 pair C pair B Device #2 pair D Auto-Negotiation on Pairs A & B can establish 802.3 capabilities Pairs C & D are silent (no signal) No traffic for 10BASE-T, 100BASE-TX In 1000BASE-T, are used only after Auto-Neg is successful
1394c Negotiation Pair C: RJ-45 positions 4 and 5 Pair D: RJ-45 positions 7 and 8 pair A Device #1 pair C pair B Device #2 pair D Auto-Negotiation on Pairs A & B can establish 802.3 capabilities Pairs C & D are used in parallel to signal other capabilities
Maximum compatibility: parallel negotiation 1394c gets a unique selector code 802.3 auto-negotiation does not allow more than one Selector Field to be advertised at one time 802.3 Auto-Negotiation is specified on wire pairs A & B the state of pairs C & D is undefined in 802.3 Auto- Negotiation Run 1394c negotiation on pairs C & D in parallel with 802.3 AutoNegotiation
Summary of 1394c parallel negotiation run 1394c negotiation on pairs C & D use unique 1394c Selector Field in Base Page Set 10/100 values to zero (no capability) no possible confusion for any legacy device on pairs C & D no interaction with any 802.3 AutoNegotiation a device with only 1394c capability will only run negotiation on pairs C & D a device with both 802.3 and 1394c capability will run two negotiations in parallel on both pairs of wire if Link Partner does not respond on pairs C & D, then 802.3 Auto-Negotiation will link successfully if Link Partner also has 1394c advertised on pairs C & D, the 1394c will override results of 802.3 negotiation both ends can see capabilities for both 802.3 and 1394c, and store for use by management
priority resolution Table 28B.3 Insert 1394 S800 at top of table due to Isochronous capabilities at nearly the same speed New Table 1394c 1000Base-T full duplex 1000Base-T half duplex 100Base-T2 full duplex 100Base-TX full duplex 100Base-T2 half duplex 100Base-T4 half duplex 100Base-TX half duplex 10Base-T full duplex 10Base-T half duplex
1394c negotiation summary Implementing parallel negotiation for 1394c will allow easy interoperability with 1000Base-T and slower Ethernet devices there are no technical hurdles to implementing negotiation for 1394c The IEEE standards possibilities are well understood
1394c Status Working group meeting regularly since last summer Chair is Michael Johas Teener mike@teener.com Secretary is Les Baxter les@baxter-enterprises.com working group website is http://grouper.ieee.org/groups/1394/c Draft 0.2 posted in April, 2004 Draft review in two weeks during 1394TA in San Francisco working group uses main 1394 email list: Send subscribe stds-1394 to majordomo@ieee.org 802.3 interested parties invited to participate