对PAM-3编码的一些理解

2022-11-23 14:50:28 浏览数 (2)

最近USBIF官宣了USB4的升级版本,带宽将从目前的40Gbps提高到80Gbps。

虽然协议的细节要到年底才公布,不过根据网络爆出来的蛛丝马迹,新一代USB协议终于要告别NRZ编码了,采用的是不同于PCIe告别NRZ时用的PAM-4编码,而是PAM-3编码。PAM-3相比PAM-2(NRZ)、PAM-4,理解起来有点不那么直截了当。

PAM-2(NRZ)的1个符号(symbol)代表1个比特(bit),很好理解。单端的话,高电平代表逻辑1,低电平代表逻辑0;差分符号的话也是两种状态,分别代表比特的1和0。

PAM-4的1个符号有4种状态,可以简单理解成4种电平,对应到逻辑,就是2个比特(四种取值)。相当于1个符号对应2个比特。

PAM-3的一个符号有3种状态,对应3种电平。1个符号可以代表的比特数目,显然大于1个比特(只需2种电平),而且肯定小于2个比特(需要4种电平)。那么是不是1.5个比特呢?

学过通信原理或者信息论的同学也许能回忆起来一个公式,就是下面的奈奎斯特定理:

此时我们只考虑1个符号的情况,也就是假定信道带宽W=0.5Hz,即单位时间1秒内只有1个符号,从而信道容量C就表示1秒内1个具有M个状态的符号可以传输的比特数目,即

也可以直接从数学的角度列个方程,即B个比特的取值数量等于1个符号的状态数量M:

也可以得到

当PAM-2编码时,M=2,此时B=1

当PAM-3编码时,M=3,此时B=1.58

当PAM-4编码时,M=4,此时B=2

比较形象的思维过程也可以是下面这样。考虑2个连续的PAM-3符号组合,共有3 x 3 = 9种电平组合,而3个比特的组合有2^3=8种取值,所以平均来看,1个符号可以代表的比特数目略大于1.5个比特,因为有一种符号状态被“浪费”了。

思考严谨一些的话,可以发现在这种编码情形下,9种符号状态可以表示的比特数量的准确值是

浪费掉的比特数量是3.17 - 3 = 0.17,即用连续两个PAM-3符号只能表示3个比特,此时的编码效率是3/3.17=94%

如果采用3个连续的PAM-3编码组合呢?符号状态共有3 x 3 x 3 = 27种,可以表示的比特数量是

“浪费”掉的比特数量看起来更多了,为4.75 - 4 = 0.75。此时的编码效率是4/4.75=84%,是一个相当大的下降。

从协议制定者的角度考虑,总是希望能找到一个效率最高的编码方式。当然编码方式的选择要考虑的因素很多,但至少从上面两种编码方式的编码效率来看,用连续2个PAM-3符号编码,比连续3个PAM-3符号编码要好得多。

那么连续2个PAM-3编码的方式就是最佳的吗?用公式来推导的话,需要求解下列算式的极大值:

数学有点难,可以用Excel来简单计算一下。下面给出了一些计算结果,编码效率超过99%的用红色高亮。

可以无脑推测,编码效率最高大概就是99.9%了,即用连续12个PAM-3符号进行编码来表示19个比特的效率最高。

但从编解码器的设计复杂度来说,也许7个PAM-3连续符号的编码方案才是编码效率和实现难度的最佳折衷方案。让我们拭目以待,看看下一代USB4是否采用PAM-3编码,以及会采用哪种具体的编码方案。

0 人点赞