PCIe概念梳理
汇总一些常用的概念
PCI Express (PCIe) 3.0、4.0、5.0、6.0重要的区别
PCIe INTx和中断MSI和MSI-X
PCIe Resizable Bar
PCIe眼图工具lane margine
preset数值调节,link training
Expersion Rom 加载过程
驱动初始化
fw框架
AER
SRIOV
问题debug 夯机卡死问题,证明pcie 状态正常。更新BIOS解决 memory调度打架问题,最后使用调节RO方式解决。 不良芯片有10%,调节PHY参数,使用pllc1解决问题。
概念
PCI Express (PCIe) 3.0、4.0、5.0、6.0重要的区别
带宽:
| Gen N | 传输速率(每个通道x1) | 数据速率(每个通道x1) | 备注 |
|---|---|---|---|
| PCIe 3.0 | 8 GT/s | 约1 GB/s | – |
| PCIe 4.0 | 16 GT/s | 约2 GB/s,x16 达到32 GB/s | 对于高性能计算和高速存储设备来说是非常关键的。 |
| PCIe 5.0 | 32 GT/s | 约4 GB/s,x16 达到64 GB/s | 对于下一代计算密集型应用(如高性能计算、AI模型训练、大规模数据库处理)非常关键。 |
| PCIe 6.0 | 64 GT/s | 约8 GB/s,x16 达到128 GB/s | 这一显著的性能提升归功于新引入的 Pulse Amplitude Modulation with 4 levels (PAM-4) 技术,这种技术允许每个信号时钟周期传输两位信息,从而加倍了传输速率,同时还采用了更复杂的前向错误校正(Forward Error Correction,FEC)机制来确保数据的完整性和可靠性。这些进步使 PCIe 6.0 成为支持未来数据中心、人工智能、机器学习和高性能计算应用的理想选择。 |
###
编码机制:
| Gen N | 编码方式 | 说明 |
|---|---|---|
| PCIe 3.0 | 8b/10b | 每10位传输中有2位用于错误检测和校正,有效数据率约为80%。 |
| PCIe 4.0 | 128b/130b | 减少了开销,有效数据率提高到了98.46%。这种编码方式提高了信道的数据传输效率并减少了误差。 |
| PCIe 5.0 | 128b/130b | 保持了与 PCIe 4.0 相同的编码方式,继续提供高效的数据传输效率和低开销,支持更高的数据传输速率,适用于高性能计算和大容量数据传输需求。 |
| PCIe 6.0 | 128b/130b | 尽管采用了新的 PAM-4 调制技术以提高每通道的传输速率,PCIe 6.0 仍使用 128b/130b 编码方式,维持高数据传输效率,并通过先进的 FEC(前向错误校正)增强数据完整性和可靠性。 |
信号完整性:
PCI Express (PCIe) 每个新一代标准的推出都伴随着对信号完整性的更高要求。信号完整性是指在电子设备中传输信号时保持信号质量不受干扰和衰减的能力。在高速数据传输中,优良的信号完整性是确保数据准确性和系统稳定性的关键因素。
下面是对PCIe各代标准中关于信号完整性的具体信息补充:
| Gen N | 信号完整性 | 说明 |
|---|---|---|
| PCIe 3.0 | 基本信号完整性技术 | PCIe 3.0 主要依靠 PCB 设计和信号完整性仿真来确保传输质量。尽管在设计中使用了如预加重和均衡技术来改善信号质量,但由于其8 GT/s的速率相对较低,对信号完整性的要求不如后续版本严格。 |
| PCIe 4.0 | 增强信号完整性解决方案 | PCIe 4.0 引入了 lane margining 测试来帮助系统开发者评估信号完整性,并允许他们在系统级别上优化 lane 性能。这是通过在 PCIe 设备上实时测试不同的电压和时序边缘来实现的,以确保在高达 16 GT/s 的速率下信号能够可靠传输。 |
| PCIe 5.0 | 高级信号完整性技术 | PCIe 5.0 对信号完整性的要求更为严格,特别是在每个通道 32 GT/s 的传输速率下。为此,它依赖更高性能的 PCB 材料(如低损耗材料),更精确的插座和连接器设计,以及更复杂的信号完整性仿真工具。此外,还采用了改进的均衡和更高级的 FEC 技术来应对更高的错误率。 |
| PCIe 6.0 | 先进的信号完整性技术与 PAM-4 | PCIe 6.0 通过使用 PAM-4 调制技术进一步提升信号速率至每通道 64 GT/s。PAM-4 调制引入了额外的信号幅度级别,从而增加了对信号干扰的敏感性。因此,PCIe 6.0 配备了更先进的 FEC 和新的信号处理算法,如更高级的时钟恢复技术和增强的信道编码,以保持信号在更高速率下的完整性和准确性。 |
向后兼容性: 与前一代技术一样,PCIe 5.0 保持与 PCIe 4.0 的向下兼容性。PCIe 4.0 具备向下兼容 PCIe 3.0 设备的特性。这意味着 PCIe 4.0 插槽可以接受 PCIe 3.0 设备,并在设备和主板之间自动协商使用的最高通用传输速率。
PAM-4 编码机制
PAM-4(Pulse Amplitude Modulation-4 “四级脉冲振幅调制”)。这是一种调制方式,通过将信号的振幅分为四个不同的级别来传输两位数字信息。这种方法允许每个信号周期传输更多的数据位,从而提高传输速率。
PAM-4技术与之前版本的 PCIe 所用的非返回零 (NRZ) 调制方式不同。
在 NRZ 调制中,每个信号周期传输一位数据,信号电平主要有两个(0 和 1)。
而 PAM-4 则引入了四个电平的信号,每个信号周期可以传输两位数据。这种方式实际上使数据传输率在相同的物理频带宽度下翻了一番。
错误更正和信号完整性
由于引入了更多的信号电平,PAM-4 相比于 NRZ 更容易受到噪声和信号衰减的影响,这增加了信号错误的可能性。为了解决这个问题,PCIe 6.0 引入了更先进的前向错误校正 (FEC,Forward Error Correction) 技术。这种 FEC 技术可以有效检测并纠正在传输过程中可能出现的错误,确保数据的准确性和完整性。
FEC前向错误校正
FEC(前向错误校正,Forward Error Correction)是一种数据通信技术,用于通过在发送端添加冗余数据来提高信号传输的可靠性。这种技术允许接收端检测并自动纠正某些发生在信号传输过程中的错误,而不需要重新请求发送数据。FEC 是一种特别在无线或高速数据传输场景中常用的技术,它能有效对抗信道噪声和其他形式的干扰。
FEC的工作原理
FEC的基本原理包括以下几个步骤:
- 编码:在发送数据之前,发送端将数据分为多个块,并为每个数据块计算额外的冗余数据(也称为校验数据)。这些校验数据是基于原始数据通过特定的算法生成的。
- 传输:数据块和它们对应的校验数据一起被发送到接收端。
- 解码和错误检测:接收端使用收到的校验数据来检查是否有错误发生。如果检测到错误,接收端可以利用冗余的校验数据来确定错误的具体位置,并进行修正。
- 输出:一旦所有已检测的错误都被纠正,修正后的数据就被输出为接收的有效数据。
FEC的优势
- 提高可靠性:FEC通过自动纠正错误,提高了数据传输的可靠性,尤其是在恶劣的传输环境中。
- 减少重传:在很多情况下,FEC可以减少因错误而导致的数据重传,从而提高通信效率。
- 适用于高延迟环境:在延迟较高的通信环境中,如卫星通信,FEC特别有用,因为它减少了等待发送方确认和重新发送数据的需求。
FEC的应用
FEC广泛应用于多种通信和存储技术中,包括无线通信、卫星通信、数据存储、视频广播和更多场景。在高速数据传输标准如PCI Express中,FEC用于保证即使在极高速率传输中也能维持数据完整性和通信的可靠性。
128b/130b 编码
128b/130b 编码是一种用于数据传输中的编码方案,主要用于提高数据传输的效率和可靠性。它最初被引入在PCIe 4.0标准中,并继续应用于PCIe 5.0和PCIe 6.0。这种编码方式通过特定的数据到码字的映射,实现高效的传输和较低的传输误差。
原理
128b/130b 编码的基本原理是每128位的数据(称为数据块)被编码成130位的传输块。这意味着在每128位的有效数据后会添加2位的控制或校验位,用于帮助纠正错误和同步等功能。
实现步骤
- 数据块的分配:将数据分成128位的块。
- 添加控制位:为每个128位数据块添加2位控制或校验位,形成130位的码字。
- 编码映射:通过预定义的编码表将128位数据加上2位控制位映射到130位的输出码字上。这种映射旨在最小化比特转换时产生的电信号干扰,优化数据传输过程中的信号完整性。
特点和优势
- 高效性:128b/130b 编码提供了98.46%的编码效率,这是因为每130位只有2位是用于非数据传输的控制,大部分位都用于有效数据传输。
- 低误码率:通过精心设计的映射表和控制位的加入,可以减少传输误差,提高数据完整性。
- 简化信号处理:相对于先前的8b/10b编码,128b/130b减少了每位数据的开销,这简化了硬件的信号处理需求,尤其是在高速传输中。