1. PCIe总线技术概述
PCI Express(Peripheral Component Interconnect Express,简称PCIe)是一种高速串行计算机扩展总线标准,它彻底改变了传统并行总线架构。作为PCI、PCI-X和AGP等早期总线标准的继任者,PCIe自2003年推出以来已成为现代计算机系统中最重要的内部互连技术。
PCIe采用点对点串行连接架构,相比传统并行总线具有显著优势。每个设备都有专属的连接通道,避免了总线争用问题。这种设计使得PCIe在带宽、可扩展性和能效方面都远超前辈。目前主流PCIe版本包括3.0(8GT/s)、4.0(16GT/s)和最新的5.0(32GT/s),每代都实现了带宽翻倍。
提示:PCIe版本号后的GT/s表示"Giga Transfers per second",即每秒传输次数,而非直接等同于Gbps。实际带宽还需考虑编码方案。
在物理层,PCIe采用差分信号传输,使用被称为"lane"的双向串行链路。每个lane由两对差分线组成(发送和接收),这种设计提供了出色的抗干扰能力。系统可以根据需求配置x1、x4、x8或x16等不同宽度的连接,通过组合多个lane来获得更高带宽。
2. PCIe体系结构分层模型
2.1 事务层(Transaction Layer)
事务层是PCIe协议栈的最高层,负责处理各种类型的事务包(TLP,Transaction Layer Packet)。这些事务包括:
- 存储器读写请求/完成
- I/O读写请求/完成
- 配置读写请求/完成
- 消息请求/完成
事务层实现了基于信用的流控制机制,确保发送方不会溢出接收方的缓冲区。这种机制通过交换信用信息包(DLLP)来实现,为每种类型的通信维护独立的信用计数器。
2.2 数据链路层(Data Link Layer)
数据链路层位于事务层之下,主要提供两个关键功能:
- 错误检测和重传:通过序列号和CRC校验确保数据完整性
- 链路管理和电源管理:处理链路训练、状态转换等操作
这一层生成的数据链路层包(DLLP)用于ACK/NAK协议、电源管理以及流控制信用更新。当检测到错误时,数据链路层会自动发起重传,对上层完全透明。
2.3 物理层(Physical Layer)
物理
