Jump to content

64b/66b encoding: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
→‎See also: allready linked
Tag: section blanking
Line 22: Line 22:
*[[Fibre Channel|Fibre Channel 10GFC]]
*[[Fibre Channel|Fibre Channel 10GFC]]
*[[10 Gigabit Ethernet]]
*[[10 Gigabit Ethernet]]

==See also==
*[[8B/10B encoding]]
*[[Line code]]


==External links==
==External links==

Revision as of 16:18, 6 December 2009

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.

Function

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

The 66 bit entity is made by prefixing 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', an eight-bit type field follows, plus 56 bits of control information and/or 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 56 or 64 bits of data are then 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 and scrambling are normally done entirely in hardware, the scrambling 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

External links

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