“如何识别夜空中的星座,请帮详细解答星座的形成与识别。”
当我们问大语言模型(ChatGPT/豆包/Deepseek等)一个问题,它会在分钟内为你深度科普“天文”知识。
人工智能想要更“智能”,需要服务器进行海量的训练;要数据处理能力更强,回复速度更快,需要提升通信网络、服务器的数据传输速率。
当前,数据中心服务器中主要负责处理数据的GPU网卡的算力最高已达PFLOPS量级(每秒钟1千万亿次浮点运算),相应的网卡之间的高速数字接口协议从PCIe5.0/6.0的32 GT/s、64GT/s将升级到PCIe 7.0/8.0的128GT/s 和256GT/s,而以太网传输速率也在向800G/1.6T跃迁。
随着高速数字信号的传输标准的升级,速率将不断提升,PCIe 接口速率几乎每三年翻一倍,同时,为提高传输速率,IEEE、OIF、JEDEC以及PCI-SIG等标准组织规定,PCIe 6.0/PCIe 7.0,400G/800G以太网的物理层编码方式将用PAM4编码取代NRZ编码。那PAM4编码到底是什么?有哪些优势和挑战?和之前的NRZ编码有哪些区别?
为什么需要数据编码?什么是物理层编码?
我们在电脑网页,手机APP上向大模型(ChatGPT/豆包/Deepseek等)发出指令。
大模型的每一次“深度思考”和“秒回”,在通信系统都需要进行一次完整的数据传输,这要经过多次编码、调制、传输、解码,才能完成从键盘、电脑总线、网卡、光纤、电缆、交换机到数据中心服务器的传递。
为什么要进行多次编码呢?这是因为在计算机和数字通信系统中,无法直接传递文字、图片和语音,信息需要通过编码的形式变成0、1二进制码,在信息通信系统中传输。
我们知道计算机一般要遵循7层网络架构,即OSI(Open Systems Interconnection,开放系统互连)参考模型,每一层都有自己的编码协议。物理层是最底层,包括真实可见的网卡的物理接口、网线、光纤、集线器(Hub)等,主要负责将数据转换为可在物理介质(如电缆、光纤、无线电波等)上传输的电信号、光信号或无线电信号。
图:OSI 七层网络模型图
物理层编码,主要是将二进制码转换成光/电信号进行传输。实际光/电信号传输电路中,可以利用高电平(如 3V)代表 1,低电平(如 0V)代表 0。而在光信号传输中,则通过光的有无或不同强度来表示。例如,有光时表示 1,无光时表示 0。这是最基本的物理层编码过程。
比如我们向电脑网页发出指令,键盘敲击字母,就会通过触发键盘内部的电路矩阵的通断,来转换成识别码,比如我们敲击“K”,可能转换成识别码“0x4B”,之后再通过键盘内部MCU转换成二进制码(比如01001011),经过USB总线传输到CPU,并经过PCIe总线经由GPU到网口,再通过物理层介质(电缆/光纤),层层传递给交换机,最后再到服务器。服务器接收到经过传输的信号后,会对其进行放大、滤波等处理,以尽量恢复信号的原始形态。然后,根据编码规则,判断信号电平的高低,从而还原出原始的二进制数据。
在数字信号传输系统中,信息数据传递的最小单位是比特,其实就是二进制的0、1编码,每一次0、1的传输都是1比特,比如以太网的800G,实际上是通过多通道实现每秒800G比特的传输速率。
每一次信号状态的改变“从高电平到低电平”“从高电平到下一个高电平”,相应也会触发物理层一次电平的变化,也是一次“符号”“码元”的变化,单位时间内传输“符号”“码元”数量,一般称作“波特率”。比如PCIe 5.0的32GT/s,等于其符号速率,也就是波特率。
那么,在数字信号传输过程,波特率一定等于比特速率么?
答案是,否定的。
波特率 VS 比特率
如果数字信号是0000011111,在物理层传输的电信号,最简单直接的方式,是“低低低低低高高高高高”,并且在每传输完一位数据后,信号无需返回到零电平,这种编码方式称为“NRZ”编码,即 Non - Return - to - Zero 编码,是一种较为基础且常用的数字信号编码方式。
这时候,比特率=波特率。
但如果电信号长时间保持低电平和高电平,在接收端可能难以区分每个比特的起始位置,也会产生直流分量,导致衰减、失真,易受噪声干扰,所以之后出现了曼彻斯特编码,一次电平的跳变表示一个比特,比如用从低电平到高电平的变化表示 1,从高电平到低电平的变化表示0。
这样每两个不同的电平状态只传输一个比特,如果我们把每个电平状态看作一个符号,那么比特率=1/2波特率。
PAM4信号即4 - Level Pulse Amplitude Modulation(四电平脉冲幅度调制),是一种更为复杂但高效的调制技术 。与 NRZ 编码仅使用两种电平不同,PAM4通过四个电平(例如+3,+1,-3,-1),表示四种比特数据(00,01,11,10)这样能大幅提高比特传输效率。一次电平的变化,表示2个比特数据。这样就能够在波特率和NRZ信号相同的情况下,传输更多的比特数据。
对于PAM4信号来说,比特率=2*波特率。
那是不是都选择比特传播效率高的PAM4传输更好呢?
答案依然是,否定的。不同的编码方式,除了信号的波特率和比特率关系不同,还存在其他差异,不同的应用场景需要选择适合其编码方式。
NRZ编码 VS PAM4编码
我们主要看下NRZ和PAM4的优势对比。在传输过程中,信号会不可避免地受到噪声、衰减等因素的影响。噪声可能会使信号电平发生微小的波动,衰减则会导致信号强度逐渐减弱。
NRZ 编码由于只有两种电平状态,编码过程简单,错误概率相对较低,数据传输的可靠性相对高,电平之间的间隔相对较大,因此具有较好的抗噪声能力。在传输过程中,即使受到一定程度的噪声干扰,信号电平也不容易发生误判。
而 PAM4 编码采用四个电平状态,电平之间的间隔较小,对噪声更为敏感。噪声可能导致信号电平发生偏移,从而使接收端误判信号所代表的逻辑信息,增加误码率。PAM4 编码最突出的优点是能够大幅提升数据传输速率和带宽效率。
但在高速串行电路中,如果电平长时间处在一个状态,比如传输00001111信号,接收端会难以分清起始信号,同时可能会产生直流分量,并造成衰减,电磁干扰等问题。为了提高 PAM4 和 NRZ 编码信号的传输性能,保证时钟同步,Block Coding ( 块编码、分组编码)和信号处理技术起着关键作用。
数字信号的物理层编码方式除了包括NRZ/PAM4 等Line Coding (行编码、线路编码),还可以进行Block Coding ( 块编码、分组编码),比如PCIe 5.0除了进行NRZ编码,还会进行128b/130b;PCIe 6.0 除了进行PAM4编码还会进行242b/256b编码,通过插入同步序列、控制码来标记包的开始/结束、通道对齐。
Line Coding就是最基础也是必需的编码方式,基本原理是利用改变电压(电平状态)表示数字信号的二进制0、1。Block Coding,则是在传送端发送的原始数据中,以比特率不会超过信道容量为前提下,加入额外的比特,来提升数字信号的直流平衡、纠错、同步等性能。诸如,128b/130b,就是把 128 bit 有效数据,加上 2 bit 控制信息,形成 130 bit 传输;242b/256b:把 242 bit 有效数据,加上 14 bit 控制信息 ,形成 256 bit 传输块。
另外,一般高速数字信号还可以通过预加重、前向纠错(FEC)和均衡算法等功能,保证信号的更高质量传输。
在发送端,预加重技术可以增强信号的高频部分,补偿传输介质对高频信号的衰减,从而提高信号的传输距离和质量。对于 PAM4 编码信号,通过优化预加重参数,可以使不同电平的信号在传输后更好地保持其差异性,降低误码率。在接收端,均衡技术可以对受到衰减和失真的信号进行补偿,恢复信号的原始形态。自适应均衡技术能够根据信号的实际传输情况,自动调整均衡参数,提高信号的解调准确性。前向纠错(FEC)技术通过在发送数据中添加冗余信息,使得接收端能够检测和纠正一定数量的误码。
对于 PAM4 编码信号,由于其对噪声敏感,FEC 技术尤为重要,可以有效提高信号传输的可靠性。通过合理应用这些信号处理技术,可以在一定程度上克服传输介质和噪声干扰对 PAM4 和 NRZ 编码传输性能的影响。
编码方式 | NRZ | PAM4 |
调制方式 | 2 电平(0/1) | 4 电平(00、01、10、11) |
每符号传输比特数 | 1 bit/symbol | 2 bit/symbol |
信号质量要求 | 相对宽松,SNR 要求较低 | 对 SNR 要求更高,信噪比需高约 9.5 dB |
眼图形态 | 单眼图 | 三眼图(上/中/下) |
功耗 | 相对低 | 较高(需要更复杂的DSP均衡) |