当前位置:首页 > 新闻资讯 > FPGA之家动态 >

PCIe-01学习路线:01. 知识地图1

时间:2026-08-08      来源:FPGA_UCY 关于我们 0

PCIe( Peripheral Component Interconnect Express ) 是一种 高速串行点对点 通信协议, 划分为八个相互连接的模块:

① 系统角色 : 设备在系统的角色

② 协议分层: 一个请求如何变成bit

③ 配置与枚举: 系统发现并管理设备

④ 链路训练: 链路如何从上电走到L0

⑤ 速率与编码: 带宽怎么翻倍

⑥ SI与通道: 连上跑不稳

⑦ 功耗与可靠性: 省电发现错误并恢复

⑧ 测试与Debug: 快速定位问题

PCIe系统角色与拓扑_协议分层与TLP封装_FPGA基础知识

一、系统角色与拓扑:PCIe里“谁在和谁通信”

PCIe采用点到点连接。每一条Link连接两个Port,一个方向发送、另一个方向接收,天然支持全双工。系统里最常见的角色包括 Root Complex 、 Root Port 、 Switch 、 Endpoint 、 Bridge 和 Retimer 。

协议分层与TLP封装_PCIe系统角色与拓扑_FPGA基础知识

① RC : PCIe层级的起点,发起和管理事务

②RP : RC与下游PCIe设备的接口

③EP : 最终的PCIe设备

④ Retimer : 解决高损耗通道的信号重建

⑤ Switch :将一条链路扩展为多端口

⑥ Bridge : 将 PCIe连接到其他总线

1. Root Complex与Root Port

Root Complex 通常位于 CPU或SoC内部 ,是处理器、内存系统与PCIe域之间的桥梁。 Root Port 可以理解为 RC向外提供的PCIe端口 。操作系统从RC开始枚举下游设备,读取配置空间,分配Bus Number、Memory地址和中断资源。

2. Endpoint

Endpoint 是 最终提供功能的设备 ,例如GPU、NVMe SSD、网卡、加速卡、采集卡或FPGA。Endpoint可以发起或响应事务,但它不是系统枚举的起点。很多初学者把“设备能发包”等同于“设备是Root Complex”,这是错误的。是否能发起请求,与它在PCIe树中的角色不是一回事。

3. Switch

PCIe Switch 用于 扩展端口数量 。每个Switch端口都具有完整的PCIe协议栈,可以接收、解析并转发TLP。它类似网络交换机,但路由依据不是MAC地址,而是PCIe定义的地址、ID规则。

4. Retimer

Retimer是高速PCIe系统中最容易与Switch混淆的器件。Retimer终止一侧的物理链路,恢复时钟和数据,再在另一侧重新发送。它主要解决高损耗通道的信号重建问题,不处理Transaction Layer和Data Link Layer事务。 Switch “ 看得懂包并决定往哪里转发 ”, Retimer “ 看不懂业务,只负责把物理信号重新变干净 ”。

2、三层协议栈:一个请求如何变成线上信号

PCIe三层协议栈通常分为 Transaction Layer 、 Data Link Layer 和 Physical Layer 。

FPGA基础知识_协议分层与TLP封装_PCIe系统角色与拓扑

1. Transaction Layer:描述“要做什么”

事务层 负责 产生和解析TLP ,也就是 Transaction Layer Packet 。软件或硬件发起一次请求时,事物层会把 操作类型、地址、长度、Requester ID、Tag、属性等信息封装进TLP 。

从功能角度看,TLP可以分为请求与完成。Memory Write通常是Posted Request,发送端发出去后不等待Completion;Memory Read属于Non-Posted Request,接收端必须返回Completion with Data。是否需要完成包,会影响带宽、延迟、流控和超时行为。

2. Data Link Layer:保证相邻两端可靠传输

数据链路层 关心“ 数据有没有可靠地送到相邻端口 ”。在传统Non-FLIT模式下,它会为TLP增加序列号和LCRC,并通过ACK/NAK DLLP确认接收结果;在PCIe 6.0/7.0的FLIT模式下,可靠性保护围绕固定长度FLIT、CRC、FEC与重放机制重新组织。

这意味着PCIe链路上出现少量可恢复错误时,软件不一定立刻看到业务失败,因为Data Link Layer可能已经完成重放。但Replay数量增加会吞噬有效带宽,也可能成为通道边缘化的重要证据。因此,“业务还能跑”不等于“链路健康”。

3. Physical Layer:把包可靠送上差分线

物理层 包含逻辑物理层和电气物理层。它负责链路训练、Lane宽度协商、速率切换、编码、加扰、块同步、均衡、串并转换和差分发送接收。我们常说的LTSSM、TS1/TS2、Preset、CTLE、DFE、CDR、眼图和抖动都属于物理层范围。


注明:本内容来源网络,不用于商业使用,禁止转载,如有侵权,请来信到邮箱:429562386ⓐqq.com 或联系本站客服处理,感谢配合!

用户登陆

    未注册用户登录后会自动为您创建账号

提交留言