Chinaunix首页 | 论坛 | 博客
  • 博客访问: 696702
  • 博文数量: 183
  • 博客积分: 2650
  • 博客等级: 少校
  • 技术积分: 1428
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-22 17:02
文章分类
文章存档

2017年(1)

2015年(46)

2014年(4)

2013年(8)

2012年(2)

2011年(27)

2010年(35)

2009年(60)

分类: LINUX

2011-02-07 20:22:10

系统架构篇

在上一篇我们了解了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的拓扑结构图。


  
图1

为了便于与现行的PCI总线结构进行有效对比,现把两种总线的桌面系统架构并列于下图2中。



图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

  从图3中的两个应用架构比较可以看出,PCI Express总线技术在服务器和工作站中的应用更为彻底,在服务器/工作站中除了内存子系统与芯片组之间的通信外,其它都是采用PCI Express总线来与芯片连接的,而在桌面机中在目前来说还主要是取代显卡中的AGP总线和其它PCI板卡,如网卡,至于硬盘和外设接口都仍是采用相应 的总线接口直接与芯片组连接。

图4

  从图中可以看出,PCI Express总线在网络中的应用也是非常彻底的,除了内存子系统外,几乎所有的外设及内置板卡都是直接或者间接通过PCI 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所示。


  
图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体系结构可以通过速度的提高和先进的编码技术来升级,但这些速度的提高、编码的改进和媒介的改变均只影响物理层,所以对于整个PCI Express架构来说升级是非常方便的。

  如图7所示的是PCI Express总线数据流传输示意图。图的左边显示的是单信道情况下数据流的传输方式,因为PCI Express属于点对点串行连接,所以在单信道情况下,数据流是一个字节一个字节地传输。在图的右边显示的是多信道情况下PCI Express总线数据流的传输情况。因为有多外信道,所以数据可以依次传输到各个信道,加快了整个数据传输的速度,提高了数据传输效率,这有点类似于网 络中的磁盘阵列。
不过在此要注意的一点是,连接的双方信道配置要一致,不可不对称配置,也就是说说两个方向的信道数要相等。这主要是PCI Express接口在外设中的应用情况下需要着重考虑的,在计算机内部,通常两上PCI Express设备之间不会有什么通信请求,如显卡与网卡之间。有些工业分析家建议在第一代用于替代AGP总线的PCI Express图形总线应该采用非对称设计,来取代原有的16信道同步连接计划,因为他们认为从图形卡向系统内存传输的数据会更少些。



图7


  在物理层的另一处重要方面就是中断。

  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方案在使用数 据包协议通过串行链接中是一种行之有效的本地中断方式。MSI在多处理器系统中任何设备都可以发送中断,比起主机直接发送中断更加有效,所以现在许多多处 理器系统和I/O架构都对MSI中断技术提供支持。
2. 数据链路层(Link Layer)

  数据链路层的主要职责就是确保数据包可靠、正确传输。它的任务是确保数据包的完整性,并在数据包中添加序列号和发送冗余校验码到处理层。大多数数据包 是由处理层发起的,基于信任,数据流控制协议确保数据包只在终端缓存空闲时传输。排队了所有数据的重试,使得信道带宽浪费现象得到有效地约束。但数据链路 层在信号中断时自动重新传输数据包。传输过程如图8所示。



图8


  3. 处理层(Transaction Layer)

  处理层的作用主要是接受从软件层送来的读、写请求,并且建立一个请求包传输到链接层。所有请求都是分离执行,有些请示包将需要一个响应包。处理层同时 接受从链路层传来的响应包,并与原始的软件请求关联。处理层还整合或者拆分处理级数据包来发送请求,如数据读、写请求,并且操纵链接配置和信号控制。以确 保端到端连接通信正确,没有无效数据通过整个组织(包括源设备和目标设备,甚至包括可能通过的多个桥接器和交换器)。

  在PCI Express总线技术中,数据包类型主要有两种,那就是由处理层发起的“处理层数据包”(Transaction Layer Packet,TLP)和“数据链路层数据包”(Data Link Layer Packet,DLLP)。每个数据包都有一个可以使响应包定向于正确发起者的唯一标识符,包的格式支持32位内存地址和扩展64位内存地址。包同时还有 如“非窥探”、“无严格排序”和“优先权”等属性,这些属性将应用于优化路由I/O子系统的数据包。

  处理层包括4个地址空间,其中3个是PCI接口原有的,如内存、I/O和配置地址空间,另一外新PCI-Express接口新加的,它就是“信息空 间”。PCI2.2标准中介绍不断变化的系统中断宣传的方法称之为“信息信号中断”(Message Signaled Interrupt,MSI)。这里特殊规格格式的内存写事物代替无边信号硬写,如中断、电源管理请求、复位等等有关信息方面。另一个PCI2.2标准的 特殊循环,如中断响应也属于信息执行范畴。你可以把PCI-Express信息称之为“虚拟线”,因为它们的影响将消除现有执行平台中的广阔无限频带信号 的排列。这几个地址空间类型的用途如下表所示。

不同地址空间的传输类型
地址空间 处理类型 基本用途
内存 读/写 处理来自或发送到内存中的数据
I/O 读/写 处理来自或发送到I/O节点中的数据
配置 读/写 设备配置或者设置
信息 基线/供应商定义/先进交换 处理从事件信号机制到通用目信息的所有信息

  PCI Express使用数据包和层协议结构,而不需任何边带及旁路主流串行连接信号。层协议已经在数据通信中使用多年,它们允许在不同协议的功能区域中保持分 离,而且可以不用做任何改动更新或者浓缩在其它不同层中。如新的处理类型可以包括在新的协议版本中,而不会影响下面的层,或者物理媒介可以被更换,而不会 对更高层有大的影响。

  下图9说明了PCI Express的3个协议层(处理层、数据链路层和物理层)在数据传输中的作用,数据流从一个设备的处理层发起,经过数据链路层,到物理的总线接口设备, 然后通过相应的PCI Express数据电缆传输到另一设备的物理层设备,经过另一设备的数据链路层再传到处理层进行处理,第一层都代表一个协议栈。



图9

图10显示了数据包在两个设备中传输的实际流程,高层数据包信息被压缩在低层封装包中,应用级数据最终在数据包的核心位置。处理层在端到端的数据传输中使用32位冗余校验码,在数据链路层是使用16位校验码的。处理层数据包头包括许多控制信息和端到端传输数据。

  PCI Express处理层使用基于信任的流控制机制来确保接收设备有足够的缓存资源用于接受从发送端设备所传输的数据大小和类型。



图10


  讲到数据处理,再来讲一下PCI Express总线接口中新的结构,那就是虚拟通道(Virtual lan)。类似于InfiniBand,PCI Express总线技术在每一个物理信道中也支持多点虚拟通道,理论上来讲每一个单物理信道中可以允许有8条虚拟通道信道进行独立通信控制。每个通信的数 据包都定义不同的QoS,如图11所示。当数据包通过PCI Express组织传输时,在每个交换器或者链接终端,数据包的基本传输信息和传策略可以得到应用。传输信息在数据包包头,它包括3位代码,可以描述8个 不同的传输信道。



图11


  4. 软件层(Software Layer)

  软件层被称为最重要的部分,因为它是保持与PCI总线兼容的关键。其目的在于使系统在使用PCI Express启动时,像在PCI下的初始化和运行那样,无论是在系统中发现的硬件设备,还是在系统中的资源,如内存、I/O空间和中断等,它可以创建非 常优化的系统环境,而不需要进行任何改动。在PCI-Express体系结构中保持这些配置空间和I/O设备连接的规范稳定是非常关键的。事实上,在 PCI-Express平台中所有操作系统在引导时都不需要进行任何编辑,也就是说在软件方面完全可以实现从PCI总线平稳过渡。

  在软件响应时间模式方面,PCI-Express体系结构支持PCI的本地存储、共享内存模式,这样所有PCI软件在PCI-Express体系中运行都不需任何改变。当然新的软件可能包括新的特性。

阅读(4055) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2011-03-05 13:31:07

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com