PCI express第三代高性能外设用于互联类似的计算/通信平台应用I/O总线。第一代包括:ISA、EISA、VESA和微通道(micro channel)第二代总线包括:PCI、AGP和PCI-X。PCI express可用于移动设备、台式机、服务器、工作站、通信平台等I/O设备连接总线。
PCIe系统结构继承了第二代总线的一些有用特征,如相同的使用模型、读写(load-store)通信模型。PCIe支持的事务类型如:存储器读写、IO读写,配置读写。、新闻事务等。其中储存器、IO配置地址空间和PCI与PCI-X地址空间保持一致,即现有的OS、驱动可以向下兼容,无需更改。 PCIe支总线通过连接器支持芯片到芯片互连,板卡到板卡互连。另一方面,PCIe可实现两台设备之间通信的串行和点对点连接。PCIe通过基于数据包的通信协议,设备使用交换芯片实现互连,并在串行互连上进行通信。 将两台设备连接在一起PCIe互连称为链路,每个方向都可以称为链路X1、X2、X4、X8、X16、X32个信号对,称为通道。硬件设计人员可以根据给定链路要求的目标性能基准来确定需要多少条通道。一个X1链路有一个通道,每个方向都有一对粉末信号,共4个信号。该链路支持每个方向相同数量的通道。当硬件初始化时,链路两端的设备自动初始化链路的带宽和速率。如图1-1所示。 图1-1 PCIe的链路
PCIe差动驱动器和接收器用于设备的每个端口。图1-2显示PCIe信号的电气特性。D 和D-终端之间的正电压差表示逻辑1;负电压差表示逻辑0;无电压差表示驱动器处于第三态–高阻状态称为电气空闲和低功率状态。 PCIe发生器的差分峰值为800mV1200mV,但峰值电压的差异只有这些值的一半左右。共模电压可为0V3.6V之间的任何电压。 PCIe Spec规定,PCIe设备必须是Short-Circuit Tolerant是的,这可以让PCIe此外,由于热插拔功能的支持,PCIe总线是高速总线,所以收发端是交流耦合(AC-Coupled),通常,将电容器放置在发送端的链路上,以过滤直流信号。 图1-2 PCIe的差分信号
图1-3中列出了PCIe简单描述几个概念: ·编码方法:在传输串行通道时,为了支持更高程度的健康,8bit数据编码为10bit数据的优点是,每个数据之间可以有更多的1-0和0-1跳变,以便接收设备检测到这种跳变,更容易恢复时钟,类似于以太网的64/66b以及下图中的128/130b编码的原因也差不多。 ·传输速率:图1-1中的传输速率是指每秒传输量GT/s,而不是每秒Gbps。因为传输包括不提供额外吞吐量的费用,比如PCIe2.0 使用8/10b原始信道带宽占20%(2/10)。 ·GT/s:Giga transation per second(千兆传输/秒),即每秒传输的次数。主要描述物理层通信协议的速率属性,不能与链路宽度有关。 ·Gbps:Giga Bits Per Second(千兆位/秒),GT/s和Gbps两者之间没有准确的转换关系。 PCIe吞吐量计算方法:=传输速率 * 编码方式
列如:PCIe2.0 X吞吐量转换为4速率 PCIe2.0一条lane支持每秒内传输5Gbit,其不等于5Gbps; PCIe2.0编码方法:8/10b 则:(5GT/s * 8b)/10b = 4Gbps = 500MB/s;因为是X4总线需要5000MB *4 = 2000MB/s。
对应的PCIe3.0 X4速率换算: 4* ((8GT/s * 128b)/ 130b)= 31.5Gbps = 3.938GB/s
图1-3 PCIe各版本的传输速率和编码方法
PCIe与PCI支持相同的地址空间:存储地址空间,IO地址空间,配置地址空间,但最大配置地址空间从256字节扩展到4KB。
PCIe支持的事务类型有:存储器事务I/O事务、配置事务和新闻事务; PCIe事务分为非报告事务和报告事务两类。 非报告事务:例如,请求设备将非报告类型的存储器读取请求发送给完成者,完成者将向请求者后悔携带读取数据的完成数据包; 事务报告:例如,存储器写作事务由请求人单向发送到完成人的存储器写作数据包组成,完成人不返回完成数据包给请求人;
如图1-4所示,PCIe系统主要包括:根联合体、多个交换器、端点。 根联合体是指连接CPU、存储器子系统和PCIe根联合体可能是一个或多个结构设备PCIe端口,图1-4中根联合体支持三个端口,每个端口连接一个端点设备或一个交换器,交换器形成。 根联合体代表CPU发生事务请求,发起配置事务请求,生成存储器IO请求,锁定事务请求; 根据联合体发生的数据包离开端口,从端口接收数据并转发到存储器,或将数据包从一个端口发送到另一个端口; 根联合体实现了热插拔控制器、电源管理控制器、中断控制器、错误检测和报告逻辑等中心资源; 层是指与根联合体连接的所有设备和链路的结构,与根联合体直接连接,或通过交换器和桥梁间接连接; 端点是指不同于根联合体和交换区的其他设备PCIe请求或完成事务的人; 交换器可以看作是两个或多个逻辑PCI到PCI由桥组成;交换器必须将任何入口的所有事务类型转发到任何出口。交换器根据三种路由机制转发这些数据包:地址路由ID交换器可以实现两种仲裁机制:端口仲裁VC交换器还支持根据仲裁机制确定入口数据包转发到出口的优先级。 图1-4 PCIe的拓扑结构