8B/10B encoding is an encoding scheme used to encode data and send it over a serial link. The encoded data has the clock embedded in the data, in the sense that there will be enough transitions on the data bus which enables the receiving device to recover the clock from the data.
As the name suggests, 8 bits of data are transmitted as a 10-bit entity called a Symbol, or Character.
The low 5 bits of data is encoded into a 6-bit group and the top 3 bits are encoded into a 4-bit group.
These code groups are concatenated together to form the 10-bit Symbol that is transmitted on the wire.
The Data Symbols are often referred to as Dxx.y where xx ranges from 0-31 and y from 0-7.
Each standard that uses the 8B/10B encoding also defines Special Symbols (or Control Characters) that can be sent in place of a Data Symbol.
They are often used to indicate end-of-frame, link idle, skip and similar link-level conditions.
They are referred to as Kxx.y and have different encodings from any of the Dxx.y symbols.
Because 8B/10B encoding uses 10-bit symbols to encode 8-bit words, each of the 256 possible 8-bit words can be encoded in two different ways, one the bit-wise inverse of the other. Using these alternative encodings, the scheme is able to affect long-term DC-balance in the serial data stream, allowing links to be capacitively coupled.
The encoding is normally done entirely in hardware based on lookup tables. Upper levels of the software stack should be unaware that this encoding is being used.
The code was described in 1983 by Al Widmer and Peter Franaszek in the IBM Journal of Research and Development. IBM was issued a patent for the scheme the next year.
Among the areas in which 8B/10B encoding finds application are Fibre Channel, Gigabit Ethernet, InfiniBand, XAUI, and to modulate bytes of audio data on Digital Audio Tape. The related Eight-to-Fourteen Modulation is used in the Compact Disc standard.
The encoding scheme used in 10-Gigabit Ethernet 's 10GBASE-R Physical Media Dependent (PMD) interfaces, 64B/66B, while similarly created with consideration of DC balance, maximum run length, transition density, electromagnetic emissions, and the like, is considerably different in design.