总线带宽概述
扫描二维码
随时随地手机看文章
在各类电子设备和元器件中,都可以接触到带宽的概念,例如我们熟知的显示器的带宽、内存的带宽、总线的带宽和网络的带宽等等;对这些设备而言,带宽是一个非常重要的指标。不过容易让人迷惑的是,在显示器中它的单位是MHz,这是一个频率的概念;而在总线和内存中的单位则是GB/s,相当于数据传输率的概念;而在通讯领域,带宽的描述单位又变成了MHz、GHz……这两种不同单位的带宽表达的是同一个内涵么?二者存在哪些方面的联系呢?
从电子电路角度出发,带宽(Bandwidth)本意指的是电子电路中存在一个固有通频带,各类复杂的电子电路无一例外都存在电感、电容或相当功能的储能元件,即使没有采用现成的电感线圈或电容,导线自身就是一个电感,而导线与导线之间、导线与地之间便可以组成电容——这就是通常所说的杂散电容或分布电容;不管是哪种类型的电容、电感,都会对信号起着阻滞作用从而消耗信号能量,严重的话会影响信号品质。这种效应与交流电信号的频率成正比关系,当频率高到一定程度、令信号难以保持稳定时,整个电子电路自然就无法正常工作。为此,电子学上就提出了带宽的概念,它指的是电路可以保持稳定工作的频率范围。而属于该体系的有显示器带宽、通讯/网络中的带宽等等。而第二种带宽的概念指的其实是数据传输率,譬如内存带宽、总线带宽、网络带宽等等,都是以字节/秒为单位。对于电子电路中的带宽,决定因素在于电路设计。它主要是由高频放大部分元件的特性决定,而高频电路的设计是比较困难的部分,成本也比普通电路要高很多。这部分内容涉及到电路设计的知识,对此我们就不做深入的分析。而对于总线、内存中的带宽,决定其数值的主要因素在于工作频率和位宽,在这两个领域,带宽等于工作频率与位宽的乘积,因此带宽和工作频率、位宽两个指标成正比。不过工作频率或位宽并不能无限制提高,它们受到很多因素的制约。
在计算机系统中,总线的作用就好比是人体中的神经系统,它承担的是所有数据传输的职责,而各个子系统间都必须藉由总线才能通讯,例如,CPU和北桥间有前端总线、北桥与显卡间为AGP总线、芯片组间有南北桥总线,各类扩展设备通过PCI、PCI-X总线与系统连接;主机与外部设备的连接也是通过总线进行,如流行的USB 2.0、IEEE1394总线等等,一句话,在一部计算机系统内,所有数据交换的需求都必须通过总线来实现!按照工作模式不同,总线可分为两种类型,一种是并行总线,它在同一时刻可以传输多位数据,好比是一条允许多辆车并排开的宽敞道路,而且它还有双向单向之分;另一种为串行总线,它在同一时刻只能传输一个数据,好比只容许一辆车行走的狭窄道路,数据必须一个接一个传输、看起来仿佛一个长长的数据串,故称为“串行”。并行总线和串行总线的描述参数存在一定差别。对并行总线来说,描述的性能参数有以下三个:总线宽度、时钟频率、数据传输频率。其中,总线宽度就是该总线可同时传输数据的位数,好比是车道容许并排行走的车辆的数量;例如,16位总线在同一时刻传输的数据为16位,也就是2个字节;而32位总线可同时传输4个字节,64位总线可以同时传输8个字节......显然,总线的宽度越大,它在同一时刻就能够传输更多的数据。不过总线的位宽无法无限制增加。总线的带宽指的是这条总线在单位时间内可以传输的数据总量,它等于总线位宽与工作频率的乘积。例如,对于64位、800MHz的前端总线,它的数据传输率就等于64bit×800MHz÷8(Byte)=6.4GB/s;32位、33MHz PCI总线的数据传输率就是32bit×33MHz÷8=132MB/s,等等,这项法则可以用于所有并行总线上面——看到这里,读者应该明白我们所说的总线带宽指的就是它的数据传输率。对串行总线来说,带宽和工作频率的概念与并行总线完全相同,只是它改变了传统意义上的总线位宽的概念。在频率相同的情况下,并行总线比串行总线快得多,那么,为什么各类并行总线反而要被串行总线接替呢?原因在于并行总线虽然一次可以传输多位数据,但它存在并行传输信号间的干扰现象,频率越高、位宽越大,干扰就越严重,因此要大幅提高现有并行总线的带宽是非常困难的;而串行总线不存在这个问题,总线频率可以大幅向上提升,这样串行总线就可以凭借高频率的优势获得高带宽。而为了弥补一次只能传送一位数据的不足,串行总线常常采用多条管线(或通道)的做法实现更高的速度——管线之间各自独立,多条管线组成一条总线系统,从表面看来它和并行总线很类似,但在内部它是以串行原理运作的。对这类总线,带宽的计算公式就等于“总线频率×管线数”,这方面的例子有PCI Express和HyperTransport,前者有×1、×2、×4、×8、×16和×32多个版本,在第一代PCI Express技术当中,单通道的单向信号频率可达2.5GHz,我们以×16举例,这里的16就代表16对双向总线,一共64条线路,每4条线路组成一个通道,二条接收,二条发送。这样可以换算出其总线的带宽为2.5GHz×16/10=4GB/s(单向)。除10是因为每字节采用10位编码。