SciTech-ICEE-Interface-PCIE×16的标准和文档

SciTech-ICEE-Interface-PCIE×16的标准和文档

先上一张NVIDIA最新(2026年)RTX5090显卡要求的PCIe配置

NVIDIA Quick Start Guide NVIDIA RTX5090 Equipment
1000134590 1000134589

https://zhuanlan.zhihu.com/p/4823063330

REFERENCES

https://pcisig.com/PCIExpress/Specs/Base/_6.0_1.0

————————————
参考文献

  • PCI-SIG. (2022). PCI Express Base Specification Revision 6.0.
    PCI Special Interest Group.
    https://pcisig.com/PCIExpress/Specs/Base/_6.0_1.0
  • PCI-SIG. (2021). PCI Express Base Specification Revision 5.0.
    PCI Special Interest Group.
  • NVIDIA Corporation. (2020). NVMe over Fabrics Technical Overview.
  • AMD Corporation. (2021). PCIe 4.0 and 5.0 Whitepaper.
  • Intel Corporation. (2019). PCI Express Technology Overview.

PCIE×16的标准和文档

  • 1992年,PCI(Peripheral Component Interconnect)标准
    引入以来, 一直是计算机系统内部通信的重要组成部分。
  • 2003年, PCIe(Peripheral Component Interconnect Express)
    推出以来,它提供了一个更高效、更高带宽的接口。
    随着时间的发展,PCIe已经成为现代计算平台的标准,从最初的1.0版本发展到了现在的6.0版本。
    如果说AMBA AXI/ACE/CHI是SoC内部的总线,那么PCIe就是计算机板级的总线。
    PCIe不仅支持高速数据传输,还具备低延迟、高可靠性和灵活性,
    这些特点使其成为连接各种外设(如显卡、存储设备、网络适配器等)到主板的主要通路。
    无论是PC还是企业级服务器,PCIe都是不可或缺的一部分。
    作为板级芯片和芯片互联的主要数据通路,PCIe作用越来越重要。了解PCIe是十分必要的。

PCIe基础知识

1.1 定义与基本概念

什么是PCIe?
PCIe是一种点对点的高速串行连接方式,设计用于替代旧式的并行总线架构。
它使用了分层的体系结构,其中每一层负责特定的功能:
1000134574

  1. PCIE通道配置
    PCI Express(PCIe)的 lane(通道)配置是决定PCIe设备性能的关键因素。
    通道配置通常用“x”后跟一个数字表示,如x1、x4、x8、x16、x32等,
    这个数字代表使用了 "多少个独立的PCIe lane(通道)",即有几个lane。
    这些配置影响了设备的带宽和数据传输速率,从而影响了整体的系统性能。
    x32应当只有一些尖端科技需求才会用到。所以常用的是x16及以下。
    1000134575
    • x1:这是最小的通道配置,只使用一个PCIe通道。
      尽管带宽最低,但它足够用于低带宽需求的设备,
      如一些网络适配器、声卡或USB扩展卡。
    • x4:使用四个PCIe通道,提供了四倍于x1配置的带宽。
      常用于需要更高带宽但又不需要x8或x16带宽的设备,
      如某些高速的存储解决方案或中等带宽需求的网络卡。
    • x8:配置有八个PCIe通道,提供了八倍于x1配置的带宽。
      x8通常用于高性能的存储设备,如RAID控制器。
    • x16:这是最常见的高性能配置,使用16个PCIe通道,提供了16倍于x1配置的带宽。
      x16配置主要用于GPU图形卡,因为这些设备需要非常高的带宽来处理大量的图形数据。
    • x32:虽然PCIe规范确实定义了x32配置,但实际上很少见。
      理论上,x32配置将提供32倍于x1配置的带宽,
      但由于成本、功耗和设计复杂性,大多数民用系统,少有采用这种高尖配置。

1.2 PCIe版本演变

从PCIe 1.0到最新版本的关键变化
1000134576

  • PCIe 1.0:提供2.5 GTps的单向带宽,每个通道的最大传输速率为250 MB/s。
  • PCIe 2.0:带宽翻倍至5.0 GTps,每个通道的最大传输速率为500 MB/s。
  • PCIe 3.0:再次翻倍至8.0 GTps,每个通道的最大传输速率为1 GB/s,
    同时提高了编码效率,从8b/10b编码改为128b/130b编码。
  • PCIe 4.0:带宽达到16.0 GTps,每个通道的最大传输速率为2 GB/s。
  • PCIe 5.0:最新版本,带宽为32.0 GTps,每个通道的最大传输速率为4 GB/s。
  • PCIe 6.0:带宽达到64.0 GTps,每个通道的最大传输速率为8 GB/s,
    引入了PAM4调制技术,进一步提高传输效率。

对应表格如下:
1000134577


1.3 版本兼容

PCIe设计时考虑了向下兼容性,即较新的设备可以在较老的系统上工作,尽管可能达不到最佳性能。
例如,一个PCIe 4.0设备可以插入到PCIe 3.0插槽中,但只能以PCIe 3.0的速度运行。

2. PCIE架构及主要组件

2.1 架构层次

  • Application(应用)层:
    这不是PCIe规范正式定义的一部分,而是由具体实现者根据需求设计的部分。
    应用层决定了设备的功能和类型,例如存储设备、网络适配器或图形卡。
  • Transaction Layer(事务层):
    负责处理事务的初始化和完成,包括读取、写入、配置和中断等操作。
    事务层还管理事务的优先级和流量控制,确保数据请求和响应的高效处理。
  • Data Link Layer(数据链路层):分为两个子层:
    • Link Sublayer(链路子层):
      负责链路的建立、训练、维护和错误检测,确保数据包的准确传输。
    • Physical Media Attachment Sublayer(物理媒体附加子层):
      负责数据的编码和解码,确保数据在物理层的正确传输。
  • Physical Layer(物理层):
    包括电气信号的生成、接收和处理,以及串行数据的编码和解码。
    物理层进一步细分为两个子层:
    • Electrical Sublayer(电气子层):
      处理电气信号的生成和接收,确保信号的完整性和稳定性。
    • Media Access Control Sublayer(介质访问控制子层):
      管理数据在物理介质上的传输,包括信号的编码和解码。

通过这种分层架构,PCIe能够实现高效、可靠的数据传输,满足各种应用场景的需求。

2.2 主要组件

PCIe架构的Major Components(主要组件)包括:

  • RC(Root Complex):
    通常位于系统主板上,与CPU紧密集成,作为PCIe架构的起点。
    Root Complex负责初始化和配置PCIe总线, 管理事务处理, 提供到CPU和内存的接口。
  • Switches:
    能构建复杂的PCIe拓扑, 嵌套连接多个端点设备或其他Switches, 架构灵活系统。
    Switches可以扩展PCIe总线,允许更多设备连接到系统,提高扩展性和灵活性。
    Switch可以将一个上游端口连接到多个下游端口,实现多路径传输。
  • EP(Endpoint):
    连接到PCIe总线的终端设备,如显卡、存储控制器、网络适配器等。
    要么与Root Complex,要么与Switches连接,
    它们通过PCIe总线,执行具体的I/O操作和数据处理任务。
  • PCI Express to PCI/PCI-X Bridge :
    PCI Express 到 PCI/PCI-X 桥接器,
    提供连接PCI Express架构和PCI/PCI-X层次结构的接口,
    使现代PCI Express系统能够与传统的PCI或PCI-X设备兼容。

1000134581


2.3 配置空间与地址映射

每个PCIe设备都有一个配置空间,包含了设备的信息和控制寄存器。
配置空间分成 "多个寄存器",包括Vendor ID、Device ID、Class Code、BAR(Base Address Register)等。
CS(Configuration Space, 配置空间) 确保可以读取和修改设备的状态和设置。
AM(Address Mapping, 地址映射) 确保Host上的程序能够正确地寻址到并与PCIe的设备通信,

3. PCIe硬件层次概要

PCI Express 使用 "Packet(数据包)" 在组件之间传输信息。
数据包在 事务层 和 数据链路层 形成,携带信息从 发送组件 传输到 接收组件。
当传输的数据包流经其他层时,会被添加必要的层级信息,以便在这些层处理数据包。
在接收端,这一过程相反,数据包从物理层表示形式转换为数据链路层表示形式,
最终(对于事务层数据包)转换为接收设备的事务层可以处理的形式。
下图展示了事务级数据包信息, 通过各层的概念流程。

1000134582

  1. Transaction Layer(事务层)
    架构的上层是事务层。
    事务层的主要职责是组装和拆解TLP(事务层数据包)。
    TLP用于通信事务,如读取和写入,以及某些类型的事件。
    事务层还负责管理基于信用的流量控制。
    每个需要响应包的请求包都实现为分离事务。
    每个包都有一个 "唯一的标识符",使 "响应包" 能够定向到 "正确的发起者"。
    包格式支持 "不同的寻址形式",具体由事务类型(内存、I/O、配置和消息)确定。
    包还可以具有诸如No Snoop、Relaxed Ordering和ID-Based Ordering (IDO)等属性。
    事务层支持四种地址空间:
    它包括三种PCI地址空间(内存、I/O和配置),并增加了 "消息空间"。
    PCIe规范的 "消息空间" 支持所有先前的侧带信号,如中断、电源管理请求等,作为带内消息事务。
    可以将PCI Express 的 "消息事务" 视为“虚拟线”,
    因为它们的效果是消除了大量侧带信号(当前平台实现上使用的)。
    • TLP(Transaction Layer Packet)是事务层传输的基本单位,
      事务层包,是在 PCIe 链路上进行数据传输的基本单位。
      TLP 包含了事务的所有必要信息,包括请求类型、目标地址、数据负载等。
      • TLP 常有的组成部分:
        • Header(包头):
          包含有关事务的元数据,如事务类型、地址、长度、事务ID等。
        • Data Payload(数据负载):
          包含实际要传输的数据。
        • Tail(包尾):
          可选部分,通常用于表示 TLP 的结束。
      • TLP 类型和四种地址空间对应:
        • Configuration Read/Write:用于设备配置空间的读写操作。
        • Message:用于发送控制信息,如中断、电源管理命令等。
        • Memory Read/Write:用于内存读写操作。
        • I/O Read/Write:用于 I/O 地址空间的读写操作。
posted @ 2026-09-19 17:12  abaelhe  阅读(8)  评论(0)    收藏  举报