PCI Express系统结构学习 - 第一章

PCIe简介
PCI express是用来互联类似计算/通信平台应用中各个外设的第三代高性能I/O总线。第一代包括了:ISA、EISA、VESA和微通道(micro channel)总线;第二代总线包括了:PCI、AGP和PCI-X。PCI express是可以被应用于移动设备、台式机、服务器、工作站、通信平台等的一种I/O设备互连总线。

PCIe初始解决方案
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的链路
图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-2 PCIe的差分信号

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 X4速率换算吞吐量
PCIe2.0一条lane支持每秒内传输5Gbit,其不等于5Gbps;
PCIe2.0的编码方式采用:8/10b
则:(5GT/s * 8b)/10b = 4Gbps = 500MB/s;因为是X4总线,还需要500MB *4 = 2000MB/s。

		对应的PCIe3.0 X4速率换算:
			4* ((8GT/s * 128b)/ 130b)= 31.5Gbps = 3.938GB/s

图1-3 PCIe各版本的传输速率及编码方式
图1-3 PCIe各版本的传输速率及编码方式

地址空间
PCIe与PCI支持相同的地址空间:储存器地址空间、IO地址空间、配置地址空间,但是将最大配置地址空间从256字节扩展到了4KB。

PCIe事务与模型
PCIe支持的事务类型有:储存器事务、I/O事务、配置事务和消息事务;
PCIe的事务分为两类:非报告事务和报告事务。
非报告事务:例如,一台请求者设备发送一个非报告类型的储存器读请求至完成者,完成者会反悔一个携带读取数据的完成数据包给到请求者;
事务报告:例如,储存器写事务由一个请求者到完成者单向发送的储存器写数据包组成,完成者不返回完成数据包给请求者;

PCIe拓扑结构
如图1-4所示,PCIe系统中主要包括:一个根联合体、若干交换器、端点。
根联合体是指连接CPU、储存器子系统和PCIe结构的设备,根联合体可能是一个或多个PCIe端口,图1-4中根联合体支持三个端口,每个端口连接一个端点设备或者一个交换器,交换器再形成一个子层。
根联合体代表CPU产生事务请求、发起配置事务请求、生成储存器和IO请求、锁定事务请求;
根联合体发生数据包离开端口,从其端口接收数据并转发至储存器,也可以将数据包从一个端口发送到另一个端口;
根联合体实现了中心资源,例如:热插拔控制器、电源管理控制器、中断控制器、错误检测与报告逻辑等;
层是指:与根联合体连接的所有设备和链路组成的结构,这些设备和链路或者直接与根联合体直接相连,或者通过交换器和桥间接连接;
端点是指:不同于根联合体和交换区的其他设备,这些设备是PCIe事务的请求者或者完成者;
交换器可看成是两个或多个逻辑PCI到PCI桥组成的;交换器必须将任何入端口的所有事务类型转发至任意出端口,交换器根据三种路由机制转发这些数据包:地址路由、ID路由、隐式路由;交换器能实现两种仲裁机制:端口仲裁、VC仲裁,并根据仲裁机制以确定入端口的数据包转发至出端口的优先级,交换器还支持锁定请求。
图1-4 PCIe的拓扑结构
图1-4 PCIe的拓扑结构

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

艰辛硬件人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值