马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 xianuser 于 2025-5-17 14:59 编辑
# PCIe 体系结构
常见的PCIe总线系统结构如图1所示,其中主要包含三种设备,分别是根复合体(RootComplex,RC)、Switch 和终端设备(EndPoint,EP)。
图1 PCIe体系架构 RC是PCIe体系树形结构中的根节点。RC主要负责配置PCIe总线上的所有设备,分配资源、处理传输请求,并管理数据流动。在处理器系统中,RC是负责连接CPU与PCIe系统的桥,实现从内存域到PCIe域的地址转换,以及事务的传递。
Switch 主要用于拓展PCIe链路,实现路由功能。由于PCIe数据传输只能从一个端点到另一个端点,一条PCIe链路上只能存在两个设备,只有Switch的上下游能够存在多个对端设备,因此当一个链路上需要挂载多个设备时,需要使用Switch进行拓展。Switch内部由多个PCItoPCI桥构成,其中还包含一条虚拟总线,用于连接各
个PCI桥。Switch通过上、下游端口连接更多的Switch或EP,实现链路的拓展。
EP 是连接到PCIe总线上的各种外部设备,例如网卡、显卡、SSD等。EP能够接收来自RC或其它设备发出的请求并给出响应,也能主动发起请求,获取其它设备的响应。
# PCIe层次结构
PCIe 总线是一种分层协议总线,采用数据包进行数据传输。数据包在收发过程中需要经过事务层、数据链路层和物理层三个层次的处理和转发。PCIe总线的分层结构如图2所示。 图2 PCIe层次结构 事务层定义了PCIe总线事务,是PCIe总线层次结构中的最高层。事务层采用传输层报文(Transaction Layer Packet,TLP)实现设备核心事务与PCIe事务的交互,并将事务与数据链路层交互。事务层通过TLP实现了优先级服务、传输顺序控制、流量控制等多种功能,为PCIe设备核心提供了丰富的功能服务。
数据链路层位于事务层和物理层之间。数据链路层主要负责保证TLP传输的正确性,同时对PCIe链路进行管理与监控,另外负责将事务层的报文转发到物理层或从物理层获取报文转发到事务层。为保证数据传输的完整性,数据链路层采用容错和重传机制,并定义了一系列数据链路层报文。
物理层位于PCIe层次结构的最底层。物理层实现PCIe的电气连接,由逻辑层和电气层组成。物理层使用LTSSM状态机来管理链路,并实现链路训练、链路恢复、电源管理等功能。此外物理层对来自数据链路层的数据包进行字节条带化、扰码、编码等一系列操作,对接收到的对端数据包进行相反操作。
对相关NVMe IP视频感兴趣者,请搜索B站用户名: 专注与守望
|