8b/10b
8b/10b编码把8位元的子元转换成10位元的子元。目的是以便在串行传输中达到直流平衡(DC Balance),明晰边界,并提供足够的状态改变来利于时钟恢复。目标是至少在20位元“1”的个数与“0”的个数的差距不超过2个,并且没有连续的5个“1”或“0”。
8b/10b编码是1983年由IBM的 Al Widmer 与 Peter Franaszek 所提出,应用于ESCON,后来申请成专利。目前广受串列总线所采用。例如:IEEE 1394b、SATA、PCI Express、Infini-band、Fiber Channel、RapidIO等总线,都是采用8b/10b编码。2008年推出的USB 3.0规格书亦明言采用了8b/10b编码。
8b/10b编码的提出即是因应光纤的传输技术,8b/10b技术是将8个位元经过某种映射的机制转化为10个位元的字码,分两个部位分别进行映射的处理,分别是 5B/6B 与 3B/4B 的处理,另外“D.a.b”是资料码(D即是Data),“K.a.b”指控制码(K即是Key),a与b表示输入的原始资料。
工作原理
编辑8b/10b编码输出位元数目总共是10个位元,但只有“+2”“+0”“-2”三种组合。其中“+2”是指4个位元0,与6个位元1;“+0”是指5个位元“0”,与5个位元“1”;“-2”是指6个位元“0”,与4个位元“1”,利用这种“不均等性— Disparity”的特性而具有强大的直流平衡(DC Balance)功能,可使得发送的“0”、“1”数量保持一致,连续的“1”或“0”基本上不超过5位。
(Disparity = number of "1" - number of "0")
编码表
编辑8b/10b编码将一组8位资料分成两组,一组3位元,一组5位元,经过编码后形成一组4位和一组6位元,故送发时是一组10位元的资料,解码时再将10位元的资料变换得到8位资料。编码过程中低位5位元的资料会进行5B/6B编码,高位3位元的资料则进行3B/4B编码。
例如一组8位的资料是 10110101:
首先,分成两组 101 与 10101
a=10101(21) b=101(5),符号为 D21.5,在下表中的位序为HGFEDCBA,a(EDCBA)经过5B/6B编码为abcdei,b(HGF)经过3B/4B编码为fghj。
RD = Running Disparity.
Previous RD | Disparity of 6 or 4 Bit Code | Disparity chosen | Next RD |
---|---|---|---|
−1 | 0 | 0 | −1 |
−1 | ±2 | +2 | +1 |
+1 | 0 | 0 | +1 |
+1 | ±2 | −2 | −1 |
5b/6b
编辑input | RD = −1 | RD = +1 | input | RD = −1 | RD = +1 | |||
---|---|---|---|---|---|---|---|---|
EDCBA | abcdei | EDCBA | abcdei | |||||
D.00 | 00000 | 100111 | 011000 | D.16 | 10000 | 011011 | 100100 | |
D.01 | 00001 | 011101 | 100010 | D.17 | 10001 | 100011 | ||
D.02 | 00010 | 101101 | 010010 | D.18 | 10010 | 010011 | ||
D.03 | 00011 | 110001 | D.19 | 10011 | 110010 | |||
D.04 | 00100 | 110101 | 001010 | D.20 | 10100 | 001011 | ||
D.05 | 00101 | 101001 | D.21 | 10101 | 101010 | |||
D.06 | 00110 | 011001 | D.22 | 10110 | 011010 | |||
D.07 | 00111 | 111000 | 000111 | D.23 † | 10111 | 111010 | 000101 | |
D.08 | 01000 | 111001 | 000110 | D.24 | 11000 | 110011 | 001100 | |
D.09 | 01001 | 100101 | D.25 | 11001 | 100110 | |||
D.10 | 01010 | 010101 | D.26 | 11010 | 010110 | |||
D.11 | 01011 | 110100 | D.27 † | 11011 | 110110 | 001001 | ||
D.12 | 01100 | 001101 | D.28 | 11100 | 001110 | |||
D.13 | 01101 | 101100 | D.29 † | 11101 | 101110 | 010001 | ||
D.14 | 01110 | 011100 | D.30 † | 11110 | 011110 | 100001 | ||
D.15 | 01111 | 010111 | 101000 | D.31 | 11111 | 101011 | 010100 | |
K.28 | 11100 | 001111 | 110000 |
† Same code is used for K.x.7
3b/4b
编辑input | RD = −1 | RD = +1 | input | RD = −1 | RD = +1 | |||
---|---|---|---|---|---|---|---|---|
HGF | fghj | HGF | fghj | |||||
D.x.0 | 000 | 1011 | 0100 | K.x.0 | 000 | 1011 | 0100 | |
D.x.1 | 001 | 1001 | K.x.1 ‡ | 001 | 0110 | 1001 | ||
D.x.2 | 010 | 0101 | K.x.2 ‡ | 010 | 1010 | 0101 | ||
D.x.3 | 011 | 1100 | 0011 | K.x.3 | 011 | 1100 | 0011 | |
D.x.4 | 100 | 1101 | 0010 | K.x.4 | 100 | 1101 | 0010 | |
D.x.5 | 101 | 1010 | K.x.5 ‡ | 101 | 0101 | 1010 | ||
D.x.6 | 110 | 0110 | K.x.6 ‡ | 110 | 1001 | 0110 | ||
D.x.P7 † | 111 | 1110 | 0001 | |||||
D.x.A7 † | 111 | 0111 | 1000 | K.x.7 † ‡ | 111 | 0111 | 1000 |
Control symbols
编辑5b/6b 与 3b/4b 表可能导致下列 12 控制符号(control symbols)允许被发送,K.28.1, K.28.5, K.28.7 是逗号(,)序列:
input | RD = −1 | RD = +1 | |
---|---|---|---|
HGF EDCBA | abcdei fghj | abcdei fghj | |
K.28.0 | 000 11100 | 001111 0100 | 110000 1011 |
K.28.1 † | 001 11100 | 001111 1001 | 110000 0110 |
K.28.2 | 010 11100 | 001111 0101 | 110000 1010 |
K.28.3 | 011 11100 | 001111 0011 | 110000 1100 |
K.28.4 | 100 11100 | 001111 0010 | 110000 1101 |
K.28.5 † | 101 11100 | 001111 1010 | 110000 0101 |
K.28.6 | 110 11100 | 001111 0110 | 110000 1001 |
K.28.7 ‡ | 111 11100 | 001111 1000 | 110000 0111 |
K.23.7 | 111 10111 | 111010 1000 | 000101 0111 |
K.27.7 | 111 11011 | 110110 1000 | 001001 0111 |
K.29.7 | 111 11101 | 101110 1000 | 010001 0111 |
K.30.7 | 111 11110 | 011110 1000 | 100001 0111 |
与 8b/10b 相关技术
编辑目前IBM的专利已过期,此方案已成为大众化的技术。
8B/10B 编码的应用如下
- PCI Express 1.0/2.0
- IEEE 1394b
- Serial ATA
- SAS
- SSA
- Gigabit Ethernet
- 光纤通道
- InfiniBand
- XAUI
- Serial RapidIO
- DVI和HDMI(最小化传输差分信号)
- DVB Asynchronous Serial Interface(ASI)
- DisplayPort Main Link
- HyperTransport
- Common Public Radio Interface(CPRI)
- USB 3.0
数码音效
编辑重要的应用面:
用于 audio 与 data CDs:
与 128b/13xb 相关技术
编辑128b/13xb编码的应用如下:
- PCI Express 3.0/4.0(128b/130b)
- USB 3.1 Gen2(128b/132b)
- SAS 4
- DisplayPort 2.0
- NVLink
外部链接
编辑- Original paper by Franaszek and Widmer(页面存档备份,存于互联网档案馆).
- 美国专利第4,486,739号(于2002年6月30日失效)