在各類電子設(shè)備和元器件中,都可以接觸到帶寬的概念,例如我們熟知的顯示器的帶寬、內(nèi)存的帶寬、總線的帶寬和網(wǎng)絡(luò)的帶寬等等;對(duì)這些設(shè)備而言,帶寬是一個(gè)非常重要的指標(biāo)。不過容易讓人迷惑的是,在顯示器中它的單位是MHz,這是一個(gè)頻率的概念;而在總線和內(nèi)存中的單位則是GB/s,相當(dāng)于數(shù)據(jù)傳輸率的概念;而在通訊領(lǐng)域,帶寬的描述單位又變成了MHz、GHz……這兩種不同單位的帶寬表達(dá)的是同一個(gè)內(nèi)涵么?二者存在哪些方面的聯(lián)系呢?
從電子電路角度出發(fā),帶寬(Bandwidth)本意指的是電子電路中存在一個(gè)固有通頻帶,各類復(fù)雜的電子電路無一例外都存在電感、電容或相當(dāng)功能的儲(chǔ)能元件,即使沒有采用現(xiàn)成的電感線圈或電容,導(dǎo)線自身就是一個(gè)電感,而導(dǎo)線與導(dǎo)線之間、導(dǎo)線與地之間便可以組成電容——這就是通常所說的雜散電容或分布電容;不管是哪種類型的電容、電感,都會(huì)對(duì)信號(hào)起著阻滯作用從而消耗信號(hào)能量,嚴(yán)重的話會(huì)影響信號(hào)品質(zhì)。這種效應(yīng)與交流電信號(hào)的頻率成正比關(guān)系,當(dāng)頻率高到一定程度、令信號(hào)難以保持穩(wěn)定時(shí),整個(gè)電子電路自然就無法正常工作。為此,電子學(xué)上就提出了帶寬的概念,它指的是電路可以保持穩(wěn)定工作的頻率范圍。而屬于該體系的有顯示器帶寬、通訊/網(wǎng)絡(luò)中的帶寬等等。而第二種帶寬的概念指的其實(shí)是數(shù)據(jù)傳輸率,譬如內(nèi)存帶寬、總線帶寬、網(wǎng)絡(luò)帶寬等等,都是以字節(jié)/秒為單位。對(duì)于電子電路中的帶寬,決定因素在于電路設(shè)計(jì)。它主要是由高頻放大部分元件的特性決定,而高頻電路的設(shè)計(jì)是比較困難的部分,成本也比普通電路要高很多。這部分內(nèi)容涉及到電路設(shè)計(jì)的知識(shí),對(duì)此我們就不做深入的分析。而對(duì)于總線、內(nèi)存中的帶寬,決定其數(shù)值的主要因素在于工作頻率和位寬,在這兩個(gè)領(lǐng)域,帶寬等于工作頻率與位寬的乘積,因此帶寬和工作頻率、位寬兩個(gè)指標(biāo)成正比。不過工作頻率或位寬并不能無限制提高,它們受到很多因素的制約。
在計(jì)算機(jī)系統(tǒng)中,總線的作用就好比是人體中的神經(jīng)系統(tǒng),它承擔(dān)的是所有數(shù)據(jù)傳輸?shù)穆氊?zé),而各個(gè)子系統(tǒng)間都必須藉由總線才能通訊,例如,CPU和北橋間有前端總線、北橋與顯卡間為AGP總線、芯片組間有南北橋總線,各類擴(kuò)展設(shè)備通過PCI、PCI-X總線與系統(tǒng)連接;主機(jī)與外部設(shè)備的連接也是通過總線進(jìn)行,如流行的USB 2.0、IEEE1394總線等等,一句話,在一部計(jì)算機(jī)系統(tǒng)內(nèi),所有數(shù)據(jù)交換的需求都必須通過總線來實(shí)現(xiàn)!按照工作模式不同,總線可分為兩種類型,一種是并行總線,它在同一時(shí)刻可以傳輸多位數(shù)據(jù),好比是一條允許多輛車并排開的寬敞道路,而且它還有雙向單向之分;另一種為串行總線,它在同一時(shí)刻只能傳輸一個(gè)數(shù)據(jù),好比只容許一輛車行走的狹窄道路,數(shù)據(jù)必須一個(gè)接一個(gè)傳輸、看起來仿佛一個(gè)長(zhǎng)長(zhǎng)的數(shù)據(jù)串,故稱為“串行”。并行總線和串行總線的描述參數(shù)存在一定差別。對(duì)并行總線來說,描述的性能參數(shù)有以下三個(gè):總線寬度、時(shí)鐘頻率、數(shù)據(jù)傳輸頻率。其中,總線寬度就是該總線可同時(shí)傳輸數(shù)據(jù)的位數(shù),好比是車道容許并排行走的車輛的數(shù)量;例如,16位總線在同一時(shí)刻傳輸?shù)臄?shù)據(jù)為16位,也就是2個(gè)字節(jié);而32位總線可同時(shí)傳輸4個(gè)字節(jié),64位總線可以同時(shí)傳輸8個(gè)字節(jié)......顯然,總線的寬度越大,它在同一時(shí)刻就能夠傳輸更多的數(shù)據(jù)。不過總線的位寬無法無限制增加。總線的帶寬指的是這條總線在單位時(shí)間內(nèi)可以傳輸?shù)臄?shù)據(jù)總量,它等于總線位寬與工作頻率的乘積。例如,對(duì)于64位、800MHz的前端總線,它的數(shù)據(jù)傳輸率就等于64bit×800MHz÷8(Byte)=6.4GB/s;32位、33MHz PCI總線的數(shù)據(jù)傳輸率就是32bit×33MHz÷8=132MB/s,等等,這項(xiàng)法則可以用于所有并行總線上面——看到這里,讀者應(yīng)該明白我們所說的總線帶寬指的就是它的數(shù)據(jù)傳輸率。對(duì)串行總線來說,帶寬和工作頻率的概念與并行總線完全相同,只是它改變了傳統(tǒng)意義上的總線位寬的概念。在頻率相同的情況下,并行總線比串行總線快得多,那么,為什么各類并行總線反而要被串行總線接替呢?原因在于并行總線雖然一次可以傳輸多位數(shù)據(jù),但它存在并行傳輸信號(hào)間的干擾現(xiàn)象,頻率越高、位寬越大,干擾就越嚴(yán)重,因此要大幅提高現(xiàn)有并行總線的帶寬是非常困難的;而串行總線不存在這個(gè)問題,總線頻率可以大幅向上提升,這樣串行總線就可以憑借高頻率的優(yōu)勢(shì)獲得高帶寬。而為了彌補(bǔ)一次只能傳送一位數(shù)據(jù)的不足,串行總線常常采用多條管線(或通道)的做法實(shí)現(xiàn)更高的速度——管線之間各自獨(dú)立,多條管線組成一條總線系統(tǒng),從表面看來它和并行總線很類似,但在內(nèi)部它是以串行原理運(yùn)作的。對(duì)這類總線,帶寬的計(jì)算公式就等于“總線頻率×管線數(shù)”,這方面的例子有PCI Express和HyperTransport,前者有×1、×2、×4、×8、×16和×32多個(gè)版本,在第一代PCI Express技術(shù)當(dāng)中,單通道的單向信號(hào)頻率可達(dá)2.5GHz,我們以×16舉例,這里的16就代表16對(duì)雙向總線,一共64條線路,每4條線路組成一個(gè)通道,二條接收,二條發(fā)送。這樣可以換算出其總線的帶寬為2.5GHz×16/10=4GB/s(單向)。除10是因?yàn)槊孔止?jié)采用10位編碼。