从羊肠小道到高速公路──总线发展史(上)

硬件周刊

  最近常听到人们说总线,什么HyperTransport总线,AGP总线,PCI Express总线,那到底什么是总线呢?总线是怎么发展来的呢?今天,我们就来探讨这个问题。

  总线是在2个或2个以上模块(子系统或设备)间相互通讯的通路,也是微处理器与外部硬件接口的核心。打个比方说,模块(例如CPU,内存,南北桥芯片等)就是一个城市,那总线就是连接城市和城市的公路,城市之间的物资运输要靠公路,模块之间的数据传输靠的则是总线。由于计算机是一个协同工作的整体,需要模块之间不断交换数据,总线的作用自然是非常重要的。如果你的CPU每秒能处理10GB的数据,但是你的总线每秒只能传输1MB的数据给CPU,那么你的CPU每秒最多也就只有1MB的数据可处理,仅仅发挥了万分之一的性能。

  因此,自从总线问世以来,随着微处理器技术的飞速发展,总线技术也不断创新。由PC/XT到ISA、MCA、EISA、VESA到PCI、AGP到今天的PCI Express总线等。究其原因,是因为CPU的处理能力迅速提升,但与之相连的外围设备通道带宽过窄且总落后于CPU的处理能力,这使得人们不得不改造总线,为CPU铺设越来越宽的“高速公路”。

  IEEE 696(S100)总线

  1975年,在美国新墨西哥镇一家名为MITS的小公司里,爱德华·罗伯茨(Edward Roberts)设计安装了全球第一台PC──Altair单板机系统,但是却在运输过程中丢失。他只好重新开始设计,并且在新的PC中,采用了全球第一条PC扩展总线。很快,这条总线就被全球的制造商所接受,并有了一个正式的名字──S100。后来S100总线还得到了IEEE(美国电气电子工程师学会)的认可,并被命名为IEEE 696总线标准。

  PC/XT总线

  20世纪70年代末,苹果公司的成功让IBM公司上下眼红不已,IBM开始研制个人电脑。1981年,IBM推出了以8088为CPU的个人计算机,为增加扩充能力也设计了总线。该总线被称为PC/XT总线,是PC总线的第一次创新。与苹果等公司做法不同的是,IBM向外界完全公开了包括PC/XT总线完整规范在内的技术文件,允许各个厂商开发基于PC/XT总线的产品。这一举措无疑是非常成功的,它将众多的厂商都拉入了IBM的阵营,从而打开了今天PC的繁荣局面。

  PC/XT总线具有可靠简便、使用灵活等优点,并减少了自定义引脚,提高了总线的兼容性。但由于推出比较仓促,致使总线布置较为混乱,对信号完整性及频率方面考虑不够,总线位宽也较低。PC/XT总线只有8bit的位宽,工作频率为4.77MHz,数据总线带宽仅为8bit×4.77MHz/8=4.77MB/s,最大数据传输率仅为2.38MB/s。

  ISA(PC/AT)总线

  1984年IBM公司推出了16位PC机PC/AT,同时也在PC/XT总线基础上增加36个引脚,推出了对应的16位总线──AT总线。其工作频率也提升到了8MHz,总线带宽也就相应提升到了16bit×8MHz/8=16MB/s,相比PC/XT总线取得了很大的进步。但由于种种原因,IBM公司从未公布过他们的AT总线规格。于是Intel公司、IEEE(美国电气电子工程师学会)和EISA集团联合开发出与IBM/AT原装机总线意义相近的ISA(Industry Standard Architecture)总线(因此有时我们也把8位和8位/16位兼容的AT总线称为ISA总线)。虽然ISA总线的最大数据传输率仅为8MB/s,但它允许多个CPU 共享系统资源。由于兼容性好,它在上个世纪80年代被广泛采用,不过它的弱点也是显而易见的,如传输速率过低、CPU占用率高、占用硬件中断资源等。

  MCA总线

  随着32bit外部总线的386DX处理器出现,ISA总线的16bit总线位宽就成为了系统的瓶颈,并影响到处理器性能的发挥。为了充分发挥80386的性能,IBM又重新设计了总线。但是这次,IBM不再向众多的兼容机厂商开放MCA的技术标准。从技术层面上讲,MCA是比较先进的,其总线位宽为32bit,寻址空间达到了4GB,总线时钟为10MHz,总线带宽和最大数据传输率达到了40MB/s。而且MCA配有总线仲裁机构,可支持16个总线主控制器,允许共享中断级,适用于多用户、多任务的环境。但是,由于MCA总线与ISA总线不兼容,不支持ISA外设,影响了在PC兼容机上的使用。

  EISA总线

  为了打破IBM的垄断,1988年9月,Compaq(康柏)、AST、Epson(爱普生)、HP(惠普)、Olivetti、NEC等9家公司联合起来,推出了一种兼容性更优越的总线,即EISA(Extended ISA,扩展ISA)总线。和MCA不同,EISA总线是把ISA总线扩展到32bit位宽,与8/16bit 的ISA总线完全兼容。但是EISA总线工作频率仍旧仅有8.33MHz,带宽也仅有33MB/s。EISA总线支持多处理器结构,具有较强的I/O扩展能力和负载能力,支持多总线主控,而且其技术标准公开,因而受到众多厂家的欢迎。可惜的是,EISA总线兼顾了ISA的电气特性,因而妨碍了总线速度的进一步提高,并且成本过高。

  VESA总线

  CPU和外设之间进行大量高速的数据传送和处理需求的增大,MCA总线和EISA总线逐渐无法满足数据传输的需要。为了解决CPU和外设之间越来越严重的瓶颈问题,1992年VESA(Video Electronics Standards Association视频电子标准协会)联合IBM、康柏等60余家公司,对PC总线进行了第五次创新,推出了VESA Local Bus(简称VESA或VL)局部总线。

  VESA总线也是一种开放性总线,具有32bit的总线位宽,总线工作频率也大幅提高,达到了33MHz,同时支持Burst Mode突发传输方式,最大数据传输率也达到了132MB/s。

  VESA总线改变了以往的总线结构,将网络适配器、多媒体设备、磁盘控制器等直接通过VESA总线连接到CPU总线上,使这些设备和CPU的数据传输速度大幅增加。

  但是由于VESA总线没有严格的标准,只是规定了信号线定义,这导致不同公司的VESA总线板卡相互兼容性较差,而且最多只能有3个扩展槽,扩展性也非常有限。由于VESA总线是直接连接CPU总线的,可以说是专门针对486开发的,因而VESA总线就不能支持Pentium以及以上的CPU。随着486的衰落和Pentium的普及,VESA总线也就逐渐走向没落。

  PCI总线

  90年代,随着图形处理技术和多媒体技术的广泛应用,VESA总线已远远不能满足显卡等设备的要求,这就促使IT厂商们开发新的总线技术。1991年下半年,Intel公司首先提出了PCI的概念,并联合IBM、康柏、AST、惠普、DEC等100多家公司成立了PCI集团(Peripheral Component Interconnect Special Interest Group,外围部件互连专业组),简称PCISIG,推出了开放的PCI总线。

  和VESA总线一样,PCI总线同样将网络适配卡、磁盘控制器等高速外设通过PCI局部总线直接挂在CPU总线上,使之与高速的CPU总线相匹配。PCI具有32bit总线位宽,可扩展至64bit;工作频率为33MHz,最大传输率达到了133MB/s(32bit)。

  同时,PCI提出了桥(Bridge)的概念,其功能是连接两条计算机总线,使总线间相互通讯。在PCI规范中,提出了主桥、标准总线桥和PCI桥三种桥。其中主桥负责CPU总线和PCI总线之间的传输,标准总线桥负责PCI总线和ISA总线、EISA总线之类的标准总线之间的传输,PCI桥则负责PCI总线与PCI总线之间的传输。其中,主桥称为北桥(North Bridge),其他的桥就称为南桥(South Bridge),随之也就诞生了传统意义上的南北桥芯片。

  PCI总线支持线性突发传输,支持总线主控及同步操作,而且由于它采用了独立于CPU的结构设计,因而不像VESA总线一样受CPU限制,具有很好的兼容性,可以和各种不同的CPU兼容。

  由于PCI总线拥有诸多优点,很快就取代了VESA、ISA等总线,成为了“最长寿”的总线,一直沿用至今。

  AGP总线

  随着CPU性能的不断攀高,图形处理器也不断升级,图形芯片和CPU之间交换的数据量自然也随之水涨船高。由于传统PCI总线最大数据传输率只有133MB/s,这已远远无法满足图形处理器对数据传输的要求。因而,Intel再次联合众多厂商,开发了第一个图形芯片专用总线──AGP总线(Accelerated Graphics Port,高速图形接口)。

  AGP总线实质上是对PCI技术标准的扩充,但是它采用了地址和数据线分离的设计,可实现流水线处理,同时大幅提高了系统实际数据的传输速率和随机访问主内存时的性能。AGP总线位宽为32bit,时钟频率为66MHz,最大能以533MHz(AGP 8×)工作,最高传输速率可达2112MB/s(AGP 8×)。和传统的众多总线相比,AGP总线可以将系统主内存映射为AGP内存,用作显卡上的专业显存的扩展;并通过直接内存执行方式提高系统的3D图形处理性能。

  AGP总线的出现很好地解决了图形芯片和CPU的数据交换问题,但这是以牺牲其通用性为代价的。AGP总线始终只能使用在图形芯片方面,无法在更多的领域发挥其功效。