精解PCIExpress基础篇随着Intel800MHzFSB芯片组i875P的推出,Intel同时也向世人显示一个全新的总线技术即将推出,那就是由Intel首先提出并开发的3GIO总线。后来这一技术提交PCI-SIG(PCI特殊兴趣组织),由PCI-SIG改名为PCIExpress,以标准的形式正式推出,目前的最新版本为v1.0。本连载就要带大家深入了解这一即将改变整个计算机系统结构、成为下一代总线标准的总线技术。首先本文要向大家介绍的是一些基础知识。一、PCI标准的发展历史要了解PCIExpress总线技术的提出原因,我们先来简要回顾一下PCI总线的发展历史目前应用的计算机内部总线技术为PCI,即PeripheralComponentInterconnect,中文名为外围组件互连,它是由Intel于1991年提出的(与本文要介绍的PCI-Express总线技术属同一个公司开发的)。后来,PCI-SIG小组接替了Intel的PCI规范的发展,在1993年5月发布了PCI2.0。那时,PCI的竞争对手是VESA本地总线(VL-bus或VLB),它是由视频电子标准协会提出的32bit总线,在标准的ISA插槽之后提供附加的第三和第四接口,额定频率33MHz,并且能够提供超过ISA。但是当时作为486处理器/内存总线的直接扩展,VESA是运行在与处理器相同的频率上,因此名为本地总线,这种直接的扩展意味着如果连接的设备过多,则很可能会干扰处理器自身的工作,特别是当信号通过一个插槽时。于是VESA标准中建议在33MHz频率上只使用2个插槽,或者在总线使用电子缓冲时使用3个。在更高的频率上不能连接2个以上的设备,而在50MHz时它们则必须都内建于主板内。由于VESA与处理器同步工作,因而随着处理器频率的提高,VESA总线类型的外围设备工作频率也得随着提高,但是外围设备要求的速度越高,其造价也就更高,对外围设备的生产成本控制造成了极大的不利。因此,VESA只能工作在40MHz以内的频率上。当时与VESA竞争的PCI总线技术,相对VESA来说优势非常明显,因为它是一种中间性的总线,独立于CPU,但又与主内存相连。同时PCI总线能够与处理器异步运行,额定频率为25MHz、30MHz和33MHz。当处理器的频率增加时,PCI总线频率仍然能够保持不变。PCI允许的最大插槽数或外部设备数为5个或者更多,而且还不必考虑总线速度、缓冲或其它电器问题的限制。其它的特点则使得设备的使用更加简便。即插即用功能让系统自动进行外围设备的设置,而不必再手动设置IRQ跳脚、DMA和IO地址。它还允许IRQ共享,有自己的中断系统。最后,PCI总线上的数据传输是不经过CPU,而直接处理,这样降低了潜伏期和处理器的使用率。PCI总线的真正应用是随着Intel的Pentium处理器的诞生而开始的,由于在当时与其竞争对手VESA相比优势非常明显,使其很快在1994年成为这场总线之争的胜利者并统一了标准,从此以后,几乎所有的外围设备,从硬盘控制器、声卡到网卡和显卡,都使用PCI插槽。二、PCIExpress总线的提出因为PCIExpress总线技术的提出是基于现行PCI总线技术的诸多不足而开始的,所以在此先分析研究一下现行PCI总线存在哪些不足之处。PCI总线技术自上世纪90年代初期开始至今已为我们服务了10年有余。在这10多年中它的发展步伐相对来说是缓慢的,总的来说PC总线是每3年性能提高一倍,从最初的8位PC/XT、16位的ISA总线、32位的EISA和MCA、VL总线到PCI、64位PCI-/66MHz、PCI-X,而处理器却通常是每个摩尔周期性能就要提高一倍(一个摩尔周期为18个月)。正是这种技术发展上的不同步,使得PCI总线慢慢成为了整个系统的瓶颈。虽然PCI总线技术至今仍是主流,但实际上就其本质来说它早在几年前就显得力不从心了。高性能的图形芯片在5年前就第一个从PCI总线中分离出来,形成单独一种总线技术,那就是AGP(图形加速处理)。到了1997年,PCI总线已经成为了图像数据传输最大的瓶颈,于是,在Intel的440LX芯片组中,AGP(图形加速接口)出现了,目的有两个:提升显卡的性能和将图像数据从PCI总线中独立出来,PCI被解放出来供其它设备使用。同时随着RAID阵列,千兆以太网和其他高带宽设备在消费级系统上的出现,PCI133MB/s的带宽明显不能满足这些应用的需要了。芯片组制造商们已经预见到这种限制所带来的问题,并且对主板芯片组作了一系列改进以减轻PCI总线的负担。在旧式的芯片组,如Intel的440系列中,只使用一条PCI总线来连接北桥芯片和南桥芯片,这条PCI总线不仅要应对南北桥之间的通信,还有普通的PCI设备、IDE、各种I/O(串口、并口、PS/2)和USB设备的通信。为了改善这种情况,Intel、VIA和SiS用新型的高速连接方式取代了南北桥之间的PCI总线,然后让IDE、各种I/O和USB分别使用专用连接方式连接到南桥芯片。如Intel自800系列芯片组开始采用HubLink连接技术,AMD的芯片组之间采用HyperTransfor技术代替原来一直采用的133MB/sPCI总线。VIA和SiS芯片组南北桥之间分别采用各自的Via-Link和MuTIOL芯片连接技术。如图1所示的就是目前的一种典型的主板芯片架构,从这个架构图中我们可以十分清楚地看出各种I/O子系统之间几乎都采用不同的总线技术在连接。[img:bd73e0a028][/img:bd73e0a028]在90年代后期,在服务器和工作站中的高速磁盘和网络适配器开始向66MHz/64位的PCI总线转移,于是又形成了PCI-X新总线标准,不久PCI-X2.0标准也出现了。接下来在系统内部南、北桥芯片之间的总线技术也开始绕过PCI采用其它总线技术,在外设接口方面更是早已不再采用PCI总线,在芯片组南桥中都基本集成了EIDE、USB和10/100MB/s以太网接口。所以,今天我们的计算机系统无论是在计算机内部,还是在外部,各自为政的总线技术混在一起,统一总线标准和提高总线带宽已是当务之急。并行PCI总线主要受到以下几方面的性能限制:它的数据传输速度只有133MB/s,根本不能满足现在复杂多媒体数据实时传输的需求。另外它不能随着主频的提高或者电压的降低而灵活调整传输速;它的同步时钟数据传输受单一上升沿限制,而信号路由规则又受到经济的FR4技术(注:FR4是一种板材技术)的制约,接口引脚过多,不利于将来发展。所有这些限制都促使建立一个更高带宽、通用的I/O总线。今天,软件应用越来越依靠硬件平台,特别是I/O子系统。各种不同的音、视频数据流应用在桌面和笔记本电脑来台中应用已非常普遍,但是在目前来说带宽仍是制约其应用的主要因素,仍未有一个完全的解决方案,无论是PCI2.2,还是PCI-X。在服务器中,实时音、视频应用在服务器中也受到严重限制。许多通信应用和高级PC控制系统同样需要实时的数据。今天的桌面PC平台中,都必须面对在同一时刻处理来自不同连接的并发数据传输的挑战。尽管许多用户对他们现有计算机系统在邮件收发、文档处理、电子表格制作、更多的互联网和商业应用等诸方面都表示非常满意,但随着计算机应用领域的不断扩大,仍然有许多当前和潜在的任务需要更快的处理器、图形处理、网络和存储子系统,而这些要求最终的结果就是在这些子系统之间需要更快的连接。如我们的计算机正日益成为家庭数码中心,执行许多复杂的内容制作和数据操作任务,包括视频编辑和编码、图像合成处理。高清晰度电视编码、24位/96KHz采样频率的多声道单频的捕获和回放,和一些实时3D游戏。还有如真实声音识别和同步、强大而又精确的生物测定,和先进的加密技术。高端PC和工作站将被用来处理更多科学计算和工程计算,高质量的3D动画影片制作和编译,先进的金融体系,和许多其它复杂工程。正是基于PCI以上这些种种不足和计算机的应用需求,Intel提出了替代PCI总线的新总线技术--PCIExpress。在2001年春节的Intel开发者大会上,Intel展示在将用来替代PCI总线和各种不同内部芯片连接的第三代I/O总线技术,当时Intel称之为3GIO,意为第三代I/O标准。根据Intel的说明,这个3GIO技术落后标准将成为下一个10标准,它可工作于各种不同的物理媒介上,从通用的铜线连接到光纤连接。三、PCIExpress技术优势PCIExpress之所以能迅速得到业界的承认,并且被大家公认为下一代10年总线标准,它具有鲜明的技术优势,它可以全面解决PCI总线技术所面临的种种问题。有专家预计,PCIExpress的设计不只要取代PCI及AGP的插槽,同时也会是一些电脑内部系统连接接口,如处理器、绘图、网络及磁盘的I/O子系统芯片间的连接。下面就来具体介绍这个新总线技术有哪些关键技术优势:·在两个设备之间点对点串行互联(两个芯片之间使用接口连线;设备之间使用数据电缆;而PCIExpress接口的扩展卡之间使用连接插槽进行连接);与PCI所有设备共享同一条总线资源不同,PCIExpress总线采用点对点技术,能够为每一块设备分配独享通道带宽,不需要在设备之间共享资源,这样充分保障了各设备的宽带资源,提高数据传输速率;·双通道,高带宽,传输速度快,在数据传输模式上,PCIExpress总线采用独特的双通道传输模式,类似于全双工模式,大大提高了数据舆速度。在传输速度上,1.0版本的PCIExpress将从每个信道单方向2.5Gbps的传输速率起步,而它在物理层上提供的1~32速可选信道带宽特性更使其可以轻松实现近乎无限的扩展传输能力。·灵活扩展性、与PCI不同,PCIExpress总线能够延伸到系统之外,采用专用线缆可将各种外设直接与系统内的PCIExpress总线连接在一起。这样可以允许开发商生产出能够与主系统脱离的高性能的存储控制器,不必再担心由于改用FireWire或USB等其它接口技术而使存储系统的性能受到影响。·低电源消耗,并有电源管理功能这主得益于PCIExpress总线采用比PCI总线少得多的物理结构,如单x1带宽模式只需4线即可实现调整数据传输,实际上是每个通道只需4根线,发送和接收数据的信号线各一根,另外各一根独立的地线。当然实际上在单通道PCIExpress总线接口插槽中并不是4针引脚,而是18针,这其余的14针都是通过4根芯线想互组合得到的。由于减少了数据传输芯线数量,所以它的电源消耗也就大降低了。·支持设备热拨插和热交换PCIExpress总线接口插槽中含有热拨插检测信号,所以可以像USB、IEEE1394总线那样进行热拨插和热交换。·支持QoS链接配置和公证策略·支持同步数据传输PCIExpress总线设备可以通过主机桥接器芯片进行基于主机的传输,也可以通过交换器进行点对点传输;·具有数据包和层协议架构它采用类似于网络通信中的OSI分层模式,各层使用专门的协议架构,所以可以很方便地在其它领域得到广泛应用。·每个物理链接含有多点虚拟通道类似于InfiniBand,PCIExpress总线技术在每一个物理通道中也支持多点虚拟通道,理论上来讲每一个单物理通道中可以允许有8条虚拟通道通道进行独立通信控制,而且每个通信的数据包都定义不同的QoS。正因如此,它与外设之间的连接就可以得到非常的数据传输速率。·可保持端对端和链接级数据完整性这是得益于PCIExpress总线的分层架构,具体将在下篇介绍。·具有错误处理和先进的错误报告功能这也是得益于PCIExpress总线的分层架构,它具有软件层,软件层的主要功能就是进行错误处理和提供错误报告,具体将在下篇介绍。·使用小型连接,节约空间,减少串拢PCIExpress技术不需要像PCI总线那样在主板上布大量的数据线(PCI使用32或64条平行线传输数据),与PCI相比,PCIExpress总线的导线数量减少了将近75%