1 介绍
PCIe版本 | 传输速率 |
1.0 | |
2.0 | 5.0 GT/s |
3.0 | 8.0 GT/s |
4.0 | 16.0 GT/s |
5.0 | 32.0 GT/s |
6.0 | 64.0 GT/s |
7.0 | 128.0 GT/s |
1.1 PCIe链路连接
PCIe版本 | Lanes | ||||
x1 | x2 | x4 | x8 | x16 | |
1.0 | 250MB | 500MB/s | 1GB/s | 2GB/s | 4GB/s |
2.0 | 500MB/s | 1GB/s | 2GB/s | 4GB/s | 8GB/s |
3.0 | 1GB/s | 2GB/s | 4GB/s | 8GB/s | 16GB/s |
4.0 | 2GB/s | 4GB/s | 8GB/s | 16GB/s | 32GB/s |
5.0 | 4GB/s | 8GB/s | 16GB/s | 32GB/s | 64GB/s |
6.0 | 8GB/s | 16GB/s | 32GB/s | 64GB/s | 128GB/s |
7.0 | 16GB/s | 32GB/s | 64GB/s | 128GB/s | 256GB/s |
1.2 PCIe结构拓扑
Root Complex:简称RC,是PCIe树状拓扑中的根节点,集成在主机SoC Endpoints:简称EP,一般指的是PCIe功能设备,比如网卡,显卡等 Switch:提供扩展或聚合能力,允许更多的设备连接到一个PCIe端口 Root Complex Event Collector:可以用来处理错误消息和PME消息 PCI Express to PCI/PCI-X Bridge:PCIe与PCI/PCI-X的转接桥
1.2.1 Root Complex
RC是I/O层次结构的根节点 RC可以支持1个或者多个端口(Port),这些端口被称作“根端口(Root Port)”。每个接口定义一个单独的层次域。每个层次域(Hierarchy Domain)可以由单个EP或包含一个或多个Switch和EP的子层次域组成 通过RC在层次域之间路由对等事务的能力是可选项,不是必须的 RC作为请求者必须支持发起配置请求 允许RC作为请求者支持发起I/O请求 RC作为完成者不可以支持锁定语义(Lock Semantics) 允许RC作为请求者支持发起锁定请求(Locked Request)
1.2.2 Endpoints
1.2.3 Switch
Switch呈现给系统配置软件的是两个或者更多的逻辑PCI-PCI桥 Switch使用PCI桥接机制转发事务 Switch必须可以在任何一组端口之间转发所有类型的TLP Switch必须支持锁定请求。Switch不需要支持下游端口(Downstream Ports)作为锁定请求的启动端口 Switch端口必须支持协议规定的“流量控制(Flow Control)” 不允许Switch将数据包拆分为更小的数据包 当在同一虚拟信道(Virtual Channel)上发生争抢时,Switch的入站端口(Ingress Ports)之间的仲裁可以使用轮循调度(Round Robin)或加权轮循调度(Weighted Round Robin)来实现 EP在配置软件中不可以将Switch内部总线视为代表Switch下游端口的虚拟PCI-PCI桥的对等端。
1.2.4 Root Complex Event Collector
1.2.5 PCI Express to PCI/PCI-X Bridge
1.3 PCIe分层概述
事务层(Transaction Layer):这一层主要负责的事情包括,事务层数据包(Transaction Layer Packet)的生成,也称TLP打包;TLP解析,也称TLP拆包(接收端);服务质量(QoS);流量控制(Flow Control);事务排序(Transaction Ordering),等等 数据链路层(Data Link Layer):这一层主要负责的事情包括,数据链路层数据包(Data Link Layer Packet,DLLP)的生成和解析;链路错误检测和校正,等等 物理层(Physical Layer):这一层主要负责的事情包括,有续集(Ordered Sets)的生成和解析;并行到串行和串行到并行转换;8b/10b编码和解码(Gen1/2);128b/130b编码和解码(Gen3/4/5);时钟恢复;阻抗匹配;链路训练等等。这一层是三个分层中最为复杂的一层。