PCI Express总线系统架构<< 什么是SATA II | CMOS放电的种种硬件方法 >>发布日期:2008-5-21 21:26:16 浏览:[ 198] 评论:[ 0]字体:大中小在上一篇我们了解了PCI Express总线的产生和技术优势,但要真正理解PCI Express总线技术的优越性还得从其结构本身说起,所以本篇就要全面介绍PCI Express总线的结构。
一、总体系统架构在正式了解PCI Express串行链接物理和逻辑结构前,先来看一下PCI Express系统架构的方框图。
你可以看到PCI Express连接器已被移植到系统中的各个不同部分,为将来的高速设备提供连接点。
PCI Express的基本结构包括根组件(Root Complex)、交换器(Switch)和各种终端设备(Endpoint)。
根组件可以集成在北桥芯片中,用于处理器和内存子系统与I/O设备之间的连接,而交换器的功能通常是以软件形式提供的,它包括两个或更多的逻辑PCI 到PCI的连接桥(PCI-PCI Bridge),以保持与现有PCI兼容。
当然,像PCI Express-PCI的桥设备也可能存在。
在PCI Express架构中的新设备是交换器(Switch),它取代了现有架构中的I/O桥接器,用来为I/O总线提供输出端。
交换器支持在不同终端设备间进行对等通信。
下图1就是PCI Express 1.0的拓扑结构图。
为了便于与现行的PCI总线结构进行有效对比,现把两种总线的桌面系统架构并列于下图2中。
在图中现有的PCI架构中,用于显卡的接口为AGP,而新的PCI Express架构中以PCI Express取代了,现有CPI架构I/O桥接器中的PCI/PCI-X桥接器在PCI Express架构中全部以Switch交换器取代,增加了一些PCI Express总线接口用于与终端设备连接,当然为了保持与现有PCI兼容,在第一版PCI Express架构中仍保留CPI接口。
PCI Express总线技术将全面应用于桌面/移动和服务器系统中,但各自的体系结构不完全相同,如图3左图所示的是桌面机和移动笔记本电脑中使用PCI Express总线的系统架构,而图3右图所示的是服务器和工作站中使用PCI Express总线的系统架构。
除此之外,在网络中同样可以以使用PCI Express总线技术进行通信,结构图如图4所示。
从图3中的两个应用架构比较可以看出,PCI Express总线技术在服务器和工作站中的应用更为彻底,在服务器/工作站中除了内存子系统与芯片组之间的通信外,其它都是采用PCI Express总线来与芯片连接的,而在桌面机中在目前来说还主要是取代显卡中的AGP 总线和其它PCI板卡,如网卡,至于硬盘和外设接口都仍是采用相应的总线接口直接与芯片组连接。
从图中可以看出,PCI Express总线在网络中的应用也是浅3沟椎模四诖孀酉低惩猓负跛械耐馍杓澳谥冒蹇ǘ际侵苯踊蛘呒浣油ü齈CI Express总线与芯片组连接的。
综上所述,目前来说PCI Express总线主要还是先从服务器、工作站和网络设备得到彻底应用,在桌面机中主要以先取代AGP和部分PCI接口开始。
二、PCI Express的体系结构PCI Express体系结构采用分层设计,就像网络通信中的七层OSI结构一样,这样利于跨平台的应用。
PCI-Express体系结构如图5所示。
它共分为四层,从下到上分别为:物理层(Physical Layer)、数据链路层(Link Layer)、处理层(Transaction Layer)和软件层(Software Layer)。
图中的“S/W”和“Config/OS”均属于软件层。
PCI Express的体系结构兼容于PCI地址结构模式,使得所有已有应用和驱动程序均不需作任何修改即可应用到新总线系统中。
PCI-Express配置使用标准的PCI即插即用规格标准。
下面对以上各层分别进行具体介绍。
1. 物理层(Physical Layer)物理层是最低层,它负责接口或者设备之间的链接,是物理接口之间的连接,可对应于网络中OSI七层模式中的物理层来理解。
物理层决定了PCI Express总线接口的物理特性,如点对点串行连接、微差分信号驱动、热拨插、可配置带宽等。
初始的单一串行PCI Express链接包含两个低电压微分驱动信号对(4线的接收和发送对)的双向连接,即“发送”和“接受”信号。
数据时钟使用8/10b解码方式来达到相当高的数据速率(这一技术同时也在其它串行总线技术中,如InfiniBand和RapidIO),时钟信息直接被编码成数据流,比起分离信号时钟更好。
微分信号受两个不同方向的电压驱动,初始PCI Express的链接信号发送速率为单线每个方向2.5GB/s,预计到2004年可达到5GB/s的信号传输速率,使用先进的硅技术把数据传输速率提高到10GHz(达到铜线传输的理论上最大值)。
双向连接允许数据在两个方向上同时传输,类似于全双工连接,如电话系统,但是在双向传输中,各自都有自己的地线,而不像双工传输那样采用公共地线,在双向连接中可得到高速、更好质量的传输信号。
单线双向信号线及传输流程如图6所示。
在图中的两个红色箭头代表两个不同的方向(发送和接收)的数据包,从图中可以看出,单线数据传输每个方向只需2要芯线,即一根数据传输线,一根为地线。
PCI Express链接可以配置为x1、x2、x4、x8、x12、x16和x32信道带宽,x1带宽的链接包含4条线,x16带宽信道每个方向就有16个不同的信号对,或者64根信号芯线用于双向数据传输;终极的x32带宽信道每个方向可以提供10GB/s的数据传输速率,但是在采用8位/10位编码方式的情况下,实际速率只可达8GB/s,留有20%富余。
PCI Express体系结构可以通过速度的提高和先进的编码技术来升级,但这些速度的提高⒈嗦氲母慕兔浇榈母谋渚挥跋煳锢聿悖远杂谡鯬CI Express架构来说升级是非常方便的。
如图7所示的是PCI Express总线数据流传输示意图。
图的左边显示的是单信道情况下数据流的传输方式,因为PCI Express属于点对点串行连接,所以在单信道情况下,数据流是一个字节一个字节地传输。
在图的右边显示的是多信道情况下PCI Express总线数据流的传输情况。
因为有多外信道,所以数据可以依次传输到各个信道,加快了整个数据传输的速度,提高了数据传输效率,这有点类似于网络中的磁盘阵列。
不过在此要注意的一点是,连接的双方信道配置要一致,不可不对称配置,也就是说说两个方向的信道数要相等。
这主要是PCI Express接口在外设中的应用情况下需要着重考虑的,在计算机内部,通常两上PCI Express设备之间不会有什么通信请求,如显卡与网卡之间。
有些工业分析家建议在第一代用于替代AGP总线的PCI Express图形总线应该采用非对称设计,来取代原有的16信道同步连接计划,因为他们认为从图形卡向系统内存传输的数据会更少些。
在物理层的另一处重要方面就是中断。
PCI Express支持两个类型的中断,现行的PCI INTx (x= A, B, C, or D) 中断被保留下来了,仍可在PCI Express总线中应用。
还有一个新的中断类型,那就是MSI (Message Signaled Interrupt,信息信号中断),MSI中断可以进一步优化PCI .2/2.3设备。
INTx 中断方式可以用信号方式中断主机芯片请求,它可以与现行的PCI总线的驱动程序和操作系统兼容。
PCI Express设备必须支持INTx和MS两种中断模式,原有设备将压缩INTx中断信息在PCI Express处理信息中。
MSI中断是通过内存写处理操作边沿触发和发送的。
重新编写驱动程序对于MSI边沿触发中断是非常有利的,MSI方案在使用数据包协议通过串行链接中是一种行之有效的本地中断方式。
MSIPCI Express处理层使用基于信任的流控制机制来确保接收设备有足够的缓存资源用于接受从发送端设备所传输的数据大小和类型。
讲到数据处理,再来讲一下PCI Express总线接口中新的结构,那就是虚拟通道(Virtual lan)。
类似于InfiniBand,PCI Express 总线技术在每一个物理信道中也支持多点虚拟通道,理论上来讲每一个单物理信道中可以允许有8条虚拟通道信道进行独立通信控制。
每个通信的数据包都定义不同的QoS,如图11所示。
当数据包通过PCI Express组织传输时,在每个交换器或者链接终端,数据包的基本传输信息和传策略可以得到应用。
传输信息在数据包包头,它包括3位代码,可以描述8个不同的传输信道。
4. 软件层(Software Layer)软件层被称为最重要的部分,因为它是保持与PCI总线兼容的关键。
其目的在于使系统在使用PCI Express启动时,像在PCI下的初始化和运行那样,无论是在系统中发现的硬件设备,还是在系统中的资源,如内存、I/O空间和中断等,它可以创建非常优化的系统环境,而不需要进行任何改动。
在PCI-Express体系结构中保持这些配置空间和I/O设备连接的规范稳定是非常关键的。
事实上,在PCI-Express平台中所有操作系统在引导时都不需要进行任何编辑,也就是说在软件方面完全可以实现从PCI总线平稳过渡。
在软件响应时间模式方面,PCI-Express体系结构支持PCI的本地存储、共享内存模式,这样所有PCI软件在PCI-Express体系中运行都不需任何改变。
当然新的软件可能包括新的特性。