64b/66b encoding

64b/66b encoding

In data networking and transmission, 64B/66B is a line code that transforms 64-bit data to 66-bit line code to achieve DC-balance and bounded disparity, and yet provide enough state changes to allow reasonable clock recovery. This means that there are just as many 1s as 0s in a string of two symbols, and that there are not too many 1s or 0s in a row. This is an important attribute in a signal that needs to be sent at high rates because it helps reduce intersymbol interference.

The overhead of the 64B/66B encoding is considerably less than the more common 8b/10b encoding scheme.

How it works

As the scheme name suggests, 64 bits of data are transmitted as a 66-bit entity.

The 66 bit entity is made by pre-pending one of two possible two-bit 'preambles' to the 64 bits to be transmitted.

*If the preamble is '01', the 64 bits are entirely data
*If the preamble is '10', the 64 bits are a mixture of control information and data
*The preambles '00' and '11' are not used, and generate an error if seen.

The use of the '01' and '10' preambles guarantees a bit transition every 66 bits, which means that a continuous stream of 0s or 1s cannot be valid data. It also allows easier clock/timer synchronization, as a transition must be seen every 66 bits.

The 64 bits of data are scrambled using a self-synchronous scrambler function, with the intention of ensuring that a relatively even distribution of 1s and 0s are normally found in the transmitted data. The intention is not to encrypt the data, but to give the transmitted data useful engineering properties. This does not guarantee that pathological data will not generate a transmitted output that has all 0s or all 1s or other undesirable properties, but simply reduces the probability that this will occur with normal data. This method is different from the codebook based approach of 8B/10B encoding.

The encoding is normally done entirely in hardware, using a linear feedback shift register. Upper layers of the software stack should be "unaware" that this encoding is being used.

Technologies that use it

*Fibre Channel 10GFC
*10 Gigabit Ethernet

ee also

*8B/10B encoding
*Line code

External links

* [http://grouper.ieee.org/groups/802/3/10G_study/public/jan00/walker_1_0100.pdf 64b/66b low-overhead coding proposal for serial links (update 1/12/00)] :Note that this is the original proposal to the IEEE, and some changes were made for the final, agreed standard e.g. the scrambling polynomial is neither of the two options outlined in the paper, but actually x58+x39+1

* [http://gauss.ffii.org/PatentView/EP1133123 PatentView/EP1133123 Software Patent: 64b/66b decoding, for packetized serial data]

* [http://ieeexplore.ieee.org/iel5/10384/33117/01556959.pdf?isnumber=33117&prod=CNF&arnumber=1556959&arSt=+412&ared=+416&arAuthor=+Raahemi%2C+B.#search=%2264B%2F66B%20encoding%22 ERROR CORRECTION ON 64/66 BIT ENCODED LINKS]

* [http://www.iol.unh.edu/services/testing/10gec/training/10GbE_Cl49.pdf#search=%2264B%2F66B%20encoding%22 Introduction to 10 Gigabit 64b/66b (Clause 49)] .


Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Look at other dictionaries:

  • Bipolar encoding — An example of bipolar encoding, or AMI (Alternate mark inversion). In telecommunication, bipolar encoding is a type of line code (a method of encoding digital information to make it resistant to certain forms of signal loss during transmission).… …   Wikipedia

  • Delay encoding — In telecommunications, delay encoding is the encoding of binary data to form a two level signal such that (a) a 0 causes no change of signal level unless it is followed by another 0 in which case a transition to the other level takes place at the …   Wikipedia

  • Differential Manchester encoding — Differential Manchester encoding, also called biphase mark code (BMC) or FM1, is a line code in which data and clock signals are combined to form a single 2 level self synchronizing data stream. It is a differential encoding, using the presence… …   Wikipedia

  • 8b/10b encoding — In telecommunications, 8b/10b is a line code that maps 8 bit symbols to 10 bit symbols to achieve DC balance (see DC coefficient) and bounded disparity, and yet provide enough state changes to allow reasonable clock recovery. This means that the… …   Wikipedia

  • 6b/8b encoding — In telecommunications, 6b/8b is a line code that expands 6 bit codes to 8 bit symbols for the purposes of maintaining DC balance in a communications system. See also * 8b/10b encoding, another fixed table system. * 64b/66b encoding, linear… …   Wikipedia

  • SerDes — A Serializer/Deserializer (SerDes pronounced sir deez) is a pair of functional blocks commonly used in high speed communications to compensate for limited input/output. These blocks convert data between serial data and parallel interfaces in each …   Wikipedia

  • Line code — An example of coding a binary signal using rectangular pulse amplitude modulation with polar non return to zero code …   Wikipedia

  • Fibre Channel — Layer 4. Protocol mapping LUN masking Layer 3. Common services Layer 2. Network Fibre Channel fabric …   Wikipedia

  • 10 Gigabit Ethernet — The 10 Gigabit Ethernet or 10GbE or 10 GigE standard was first published in 2002 as IEEE Std 802.3ae 2002 and is the fastest of the Ethernet standards. It defines a version of Ethernet with a nominal data rate of 10 Gbit/s, ten times as fast as… …   Wikipedia

  • Manchester code — In telecommunication and data storage, Manchester code (also known as Phase Encoding, or PE) is a line code in which the encoding of each data bit has at least one transition and occupies the same time. It therefore has no DC component, and is… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”