This disclosure relates to the design of high-speed packet data transmission systems.
In Ethernet-based systems, packet data transmissions generally use a MII (Media Independent Interface) to transfer data between the MAC (Media Access Control) and PHY (Physical Layer Entity) architectural layers as defined in the IEEE 802.3 specification. Typically, to transport MII data over high-speed transmission mediums, reformatting of the data is required. For example, in Ethernet-based systems, reformatting typically is required at the PCS (Physical Coding Sublayer) layer. In such networks, 8B/10B or 64B/66B coding techniques may be used. Reformatting MII data using either 8B/10B or 64B/66B coding techniques results in a considerable amount of overhead being included in the reformatted data. Furthermore, if forward error correction techniques (FEC) are employed during the reformatting process, additional overhead usually is incurred.
Techniques for processing MII data are disclosed. The techniques include encoding MII data using 128B/129B codes for inclusion in a data frame. The techniques further include transmitting the data frame over a transmission medium, and decoding the encoded MII data using 128B/129B codes to extract the original MII data.
Various aspects of the system relate to processing MII packet data for communication over a transmission medium using 128B/129B coding as well as forward error correction.
For example, according to one aspect, a method includes encoding Media Independent Interface data using a 128B/129B block coding procedure, transmitting the encoded Media Independent Interface data over a transmission medium, and decoding the Media Independent Interface data using the 128B/129B block coding procedure.
In some implementations, the method also may include encoding and decoding the Media Independent Interface data using forward error correction.
In various implementations, the method also may include generating a 129-bit block of data using 128 bits of the Media Independent Interface data and at least one control character associated with the Media Independent Interface data. The method may also include generating a 1056-bit forward error correction data frame by combining eight of the 129-bit blocks of data with framing and forward error correction overhead information.
A system, apparatus, as well as articles that include a machine-readable medium storing machine-readable instructions for implementing the various techniques, are disclosed. Details of various implementations are discussed in greater detail below.
In some implementations, one or more of the following advantages may be present. For example, using a 128B/129B block coding procedure with Forward Error Correction in a FEC frame may generate an overhead ratio of approximately 3.125%. This overhead ratio is approximately the same overhead achieved in the standard 64B/66B PCS coding without FEC.
An additional benefit of the system relates to transmission of FEC frame data. For example, the sequence of frame information available for processing may allow for immediate transmission of PCS blocks without the need for buffering the entire frame. In addition, overall latency during the transmission may be reduced. Furthermore, the frame may be transmitted from left to right according to the standard IEEE 802.3 convention.
Additional features and advantages may be apparent from the following detailed description, the accompanying drawings and the claims.
The transmit processor 12 includes a PCS encoder 18, a mapper-framer 20, a FEC (Forward Error Correction) encoder 22, and a scrambler 24. The PCS encoder 18 is a 128B/129B encoder that, for every sixteen bytes of input MII data 34 received, encodes the MII data into 129-bit blocks. Once the MII data is encoded, the PCS encoder 18 transmits the encoded data to the mapper-framer 20. In one implementation, the 129-bit blocks are derived from a single 128B/129B encoder. In other implementations, the 129-bit blocks may be derived from multiple encoders using multiplexing.
Referring to
The FEC encoder 22 generates and stores parity bits for each FEC frame provided by the mapper-framer 20. In one implementation, the FEC encoder 22 generates parity bits using a BCH (Bose-Chaudhuri-Hochquenghem) algorithm and a generator polynomial of: x22+x19+x16+x10+x8+x7+x5+x4+1. In other implementations, the FEC encoder 22 may use other algorithms to generate parity bits. For example, in one implementation, the FEC encoder 22 may use an RS (Reed-Solomon) algorithm to generate parity bits and store the same in each FEC frame. Once parity bits are generated, the parity bits are stored in the twenty-two bits reserved for FEC parity by the mapper-framer 20 in the FEC frame.
Referring to
In one implementation, once FEC encoded frames are received by the scrambler 24, the scrambler resets itself to “all ones” on the first of the twenty-two parity bits received immediately following the two framing bits. These transmitted parity bits, as well as subsequent bits to be scrambled in the FEC encoded frame, are added modulo-2 to the output from the x10 position of the scrambler 24. The scrambler 24 then performs this process through the entire FEC encoded frame. The two framing bits representing the overhead, however, are not scrambled. In the implementation illustrated in
The transmission medium 14 provides a data path for transmitting the frame data to the receive-processor 16. In one implementation, the transmission medium 14 may be glass fiber. In other implementations, the transmission medium may include copper wire, microwave, laser, radio, satellite or other data transportation media.
As shown in
The framer/de-scrambler 26 provides for the de-scrambling and framing of frame data received over the transmission medium 14. In one implementation, the framer/de-scrambler 26 utilizes a frame-synchronous de-scrambler of sequence length 1024 employing a generating polynomial of 1+x3+x10. Upon receiving the frame data from the transmission medium 14, the framer/de-scrambler 26 resets itself to “all ones” upon receipt of the first of the twenty-two parity bits immediately following the two unscrambled framing bits. This first parity bit, and subsequent bits are then de-scrambled by subtracting modulo-2 the output of the x10 position of the framer/de-scrambler 26. The framer/de-scrambler 26 then runs continuously through the received frame and de-scrambles the data for the FEC decoder 28.
The FEC decoder 28 corrects bit errors that may occur during transmission of the frame data over the transmission medium 14. Similar to the FEC encoder 22, in one implementation, the FEC decoder 28 employs a BCH algorithm to correct bit errors in the received frame data. In other implementations, the FEC decoder 28 may use other appropriate algorithms (i.e., an RS algorithm) to decode the framed data. Once bit errors are corrected, the FEC decoder sends the bit corrected data to the de-mapper 30.
The de-mapper 30 converts the corrected eight 129-bit blocks received from the FEC decoder 28 into individual 129-bit blocks. In one implementation, the de-mapper 30 removes the two framing bits and twenty-two bits reserved for FEC parity included in the received data to establish individual 129-bit blocks. In implementations that use multiplexing, the de-mapper 30 may de-multiplex the 129-bit blocks received from multiple PCS encoders. Once individual 129-bit blocks of data are reconstituted from the frame data, the de-mapper 30 transmits each 129-bit block to the PCS decoder 32
The PCS decoder 32 converts each of the 129-bit blocks back to original MII format 35 using a 128B/129B block coding procedure with one control bit allocated to every eight bits of data.
Referring to
Referring now to
Referring to
As shown in the example of
In one implementation, if the block-type byte 48 contains a value of ‘0xfX’ (e.g., lower nibble is all-ones), the data within the block is rearranged so that the first byte after the overhead bit 42 is a block-type byte having a length of eight data bits. For example, the two Sub-block payload areas 44, 46 may be swapped before being mapped into a frame.
Referring now to
Referring now to
Several advantages may be derived from this structure. For example, one advantage is that the sequence of frame information available for processing may allow for immediate transmission of PCS blocks without the need for buffering the entire frame. In addition, overall latency during transmission may be reduced. Furthermore, the frame may be transmitted bitwise from left to right according to the standard IEEE 802.3 convention.
As shown in
Various features of the system may be implemented in hardware, software, or a combination of hardware and software. For example, some features of the system may be implemented in computer programs executing on programmable computers. Each program may be implemented in a high level procedural or object-oriented programming language to communicate with a computer system or other machine. Furthermore, each such computer program may be stored on a storage medium such as read-only-memory (ROM) readable by a general or special purpose programmable computer or processor, for configuring and operating the computer to perform the functions described above.
Other implementations are within the scope of the claims.
This application claims the benefit of U.S. Provisional Patent Application Ser. No. 60/479,068, filed on Jun. 17, 2003, which is incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
60479068 | Jun 2003 | US |