IC每日一题:PCIE协议简介
【博客首发于微信公众号《漫谈芯片与编程》,欢迎专注一下,多谢大家】
PCIE是高速串行计算机扩展总线标准,用于连接计算机内部的各种硬件设备,如显卡、网卡、存储设备等。
1 PCIE协议
1.1 PCIE总体架构
PCIE 总体框图:PCIE的架构主要有:Root Complex,PCIE Bus,EndPoint,Port and Bridge,Swith;

1.1.1 Root Complex
- RC(Root Complext):Root Complext是整个PCIe设备树的根节点,CPU通过RC与PCIE的总线相连,并最终连接到所有的PCIe设备中;
功能: - 初始化:负责初始化和配置整个 PCIe 拓扑结构。
- 管理:管理和控制所有的 PCIe 设备,包括配置空间的访问、中断处理等。
- 仲裁:处理多个设备之间的资源共享和访问仲裁。
- 桥接:作为 PCIe 系统与其他系统总线(如 CPU 总线)之间的桥梁。
1.1.2 PCIe Bus
- PCIE Bus:这个不是那种共享的数据总线,而是一个点对点的网络,表示一组连接路径;
即当Root Complex或者PCIe上的设备之间需要通信的时候,它们会与对方直接连接或者通过交换电路进行点对点的信号传输。
功能: - 数据传输:提供数据在不同设备之间传输的路径。
- 地址空间:定义了 PCIe 系统中的地址空间,包括内存地址空间、I/O 地址空间和配置空间。
- 事务管理:管理事务包(TLP)的生成、传输和解析。
1.1.3 Endpoint
- Endpoint 是 PCIe 系统中的终端设备,如显卡、网卡、存储控制器等。
功能: - 数据处理:处理来自 Root Complex 或其他设备的数据请求和响应。
- 配置:通过配置空间进行设备配置和状态查询。
- 中断:支持中断请求,通知 Root Complex 或其他设备有关事件的发生
1.1.4 Port and Bridge
Port and Bridge 是 PCIe 系统中的中间节点,用于连接不同的 PCIe 设备或子系统。
功能:
- 桥接:将 PCIe 信号从一个域转换到另一个域,例如将 PCIe 信号转换为其他类型的总线信号。
- 扩展:通过桥接器扩展 PCIe 系统的拓扑结构,增加更多的设备或子系统。
- 路由:负责数据包的路由和转发,确保数据正确地到达目标设备。
1.1.5 Switch
Switch 是 PCIe 系统中的多端口设备,用于扩展 PCIe 拓扑结构,允许多个设备通过不同的链路连接到根复合体。
功能:
- 多端口:支持多个 PCIe 端口,每个端口可以连接到不同的设备或子系统。
- 路由:负责数据包的路由和转发,确保数据正确地到达目标设备。
- 带宽管理:根据需要动态分配带宽,优化数据传输效率。
- 配置:支持配置和管理多个端口和链路,提供灵活的拓扑结构。
一个典型的 PCIe 系统,包括以下组件:
- Root Complex:位于主板上,由 CPU 和北桥芯片组组成。
- Switch:用于扩展 PCIe 拓扑结构,连接多个设备。
- Endpoints:包括显卡、网卡和 NVMe SSD。
- Bridge:用于将 PCIe 信号转换为其他类型的总线信号,例如连接到 SATA 控制器。
1.2 PCIe的分层结构
PCIE协议也是分层结构:物理层、数据链路层和事务层;每个层次专门负责自己层次的职责;
1.2.1 事务层
功能:
- 事务包(TLP)生成与解析:事务层负责生成和解析事务包(Transaction Layer Packet, TLP),这些包包含了读写请求、配置请求、消息等。
- 地址映射:将逻辑地址映射到物理地址,确保数据能够正确地传输到目标设备。
- 事务管理:管理事务的状态,包括请求的发起、完成和重试机制。
常见事务类型:
- 内存读写(Memory Read/Write):用于访问内存地址空间的数据读写操作。
- I/O



被折叠的 条评论
为什么被折叠?



