總線帶寬(轉整理)

關於帶寬概念以前不是太熟悉,特百度,轉載以下:前端

兩種概念 

 若是從電子電路角度出發,帶寬(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,前者有×一、×二、×四、×八、×16和×32多個版本,在第一代PCI Express技術當中,單通道的單向 信號頻率可達2.5GHz,咱們以×16舉例,這裏的16就表明16對雙向總線,一共64條線路,每4條線路組成一個通道,二條接收,二條發送。這樣咱們能夠換算出其總線的帶寬爲2.5GHz×16/10=4GB/s(單向)。除10是由於每字節採用10位編碼

內存帶寬 

除總線以外,內存也存在相似的帶寬概念。其實所謂的 內存帶寬,指的也就是內存總線所能提供的數據傳輸能力,但它決定於 內存芯片和內存模組而非純粹的總線設計,加上地位重要,每每做爲單獨的對象討論。
SDRAM、DDR和DDRⅡ的總線 位寬爲 64位,RDRAM的位寬爲16位。而這二者在結構上有很大區別:SDRAM、DDR和DDRⅡ的64位總線必須由多枚芯片共同實現,計算方法以下:內存 模組位寬=內存芯片位寬×單面芯片數量(假定爲單面單物理BANK);若是內存芯片的位寬爲8位,那麼模組中必須、也只能有8顆芯片,多一枚、少一枚都是 不容許的;若是芯片的位寬爲4位,模組就必須有16顆芯片才行,顯然,爲實現更高的模組容量,採用高位寬的芯片是一個好辦法。而對 RDRAM來講就不是如此,它的內存總線爲串聯架構,總線位寬就等於 內存芯片的位寬。
和並行總線同樣,內存的帶寬等於位寬與數據傳輸頻率的乘積,例如, DDR400內存的數據傳輸頻率爲400MHz,那麼單條模組就擁有64bit×400MHz÷8(Byte)=3.2GB/s的帶寬;PC 800標準RDRAM的頻率達到800MHz,單條模組帶寬爲16bit×800MHz÷ 8=1.6GB/s。爲了實現更高的帶寬,在 內存控制器中使用 雙通道技術是一個理想的辦法,所謂雙通道就是讓兩組內存並行運做,內存的總位寬提升一倍,帶寬也隨之提升了一倍!
帶寬能夠說是內存性能最主要的標誌,業界也以 內存帶寬做爲主要的分類標準,但它並不是決定性能的惟一要素,在實際應用中, 內存延遲的影響並不亞於帶寬。若是延遲時間太長的話至關不利,此時即使帶寬再高也無濟於事。
 

帶寬匹配 

計算機系統中存在形形色色的總線,這不可避免帶來 總線速度匹配問題,其中最常出問題的地方在於前端總線和內存、 南北橋總線和 PCI總線
前端總線與內存匹配與否對整套系統影響最大,最理想的狀況是前端總線帶寬與 內存帶寬相等,並且 內存延遲要儘量低。在Pentium4剛推出的時候, Intel採用RDRAM內存以達到同前端總線匹配,但 RDRAM成本昂貴,嚴重影響推廣工做,Intel曾推出搭配PC133 SDRAM的845芯片組,但 SDRAM僅能提供1.06GB/s的帶寬,僅至關於400MHz前端總線帶寬的1/3,嚴重不匹配致使系統性能大幅度降低;後來,Intel推出支持 DDR266的845D才勉強好轉,但仍未實現與前端總線匹配;接着,Intel將P4前端總線提高到533MHz、帶寬增加至4.26GB/s,雖然配套芯片組可支持 DDR333內存,可也僅能知足2/3而已;如今,P4的前端總線提高到800MHz,而配套的865/875P芯片組可支持雙通道 DDR400——這個時候才實現匹配的理想狀態,固然,這個時候繼續提升 內存帶寬意義就不是特別大,由於它超出了前端總線的接收能力。
南北橋總線帶寬曾是一個尖銳的問題,早期的芯片組都是經過 PCI總線來鏈接南北橋,而它所能提供的帶寬僅僅只有133MB/s,若南橋鏈接兩個ATA-100硬盤、100M網絡、IEEE1394接口......區區133MB/s帶寬勢必造成嚴重的瓶頸,爲此,各芯片組廠商都發展出不一樣的南北橋總線方案,如 Intel的Hub-Link、VIA的V-Link、SiS 的MuTIOL,還有AMD的 HyperTransport等等,目前它們的帶寬都大大超過了133MB/s,最高紀錄已超過1GB/s,瓶頸效應已不復存在。
PCI總線帶 寬不足仍是比較大的矛盾,目前PC上使用的PCI總線均爲32位、33MHz類型,帶寬133MB/s,而這區區133MB/s必須知足網絡、硬盤控制卡 (若是有的話)之類的擴展須要,一旦使用千兆網絡,瓶頸立刻出現,業界打算自2004年開始以PCI Express總線來全面取代PCI總線,屆時PCI帶寬不足的問題將成爲歷史。
 

通信帶寬 

在通信和網絡領域,帶寬的含義又與上述定義存在差別,它指的是網絡信號可以使用的最高頻率與最低頻率之差、或者說是「頻帶的寬度」,也就是所謂的「Bandwidth」、「 信道帶寬」——這也是最嚴謹的技術定義。
在100M 以太網之類的銅介質佈線系統中, 雙絞線的信道帶寬一般用MHz爲單位,它指的是 信噪比恆 定的狀況下容許的信道頻率範圍,不過,網絡的信道帶寬與它的數據傳輸能力(單位Byte/s)存在一個穩定的基本關係。咱們也能夠用高速公路來做比喻:在 高速路上,它所能承受的最大交通流量就至關於網絡的數據運輸能力,而這條高速路容許造成的寬度就至關於網絡的帶寬。顯然,帶寬越高、數據傳輸可利用的資源 就越多,於是能達到越高的速度;除此以外,咱們還能夠經過改善信號質量和消除瓶頸效應實現更高的傳輸速度。
網絡帶寬與數據傳輸能力的正比關係最先是由 貝爾實驗室的工程師Claude Shannon所發現,所以這一規律也被稱爲Shannon定律。而通俗起見廣泛也將網絡的數據傳輸能力與「網絡帶寬」徹底等同起來,這樣「網絡帶寬」表面上看與「總線帶寬」造成概念上的統一,但這二者本質上就不是一個意思、相差甚遠。
 
 



















如何學習總線技術

以形象生動的比喻來描繪了總線技術的基本思想,指出了總線的基本分類和總線傳輸的基本原理,以及在學習過程當中應當掌握的最基本的知識,對初學者有起到拋磚引入的做用。網絡

0引言

  若是一座只能容一我的來往的獨木橋,兩端的人都想要過橋,爲了避免擁擠、阻塞,那我 們就得采起有效的辦法。好比規定某段時間哪端的人過橋,另外一端的人就等着該他過橋的時間段的到來,同時也還能夠規定人多時要按先來後到或年齡長幼的次序過 橋。在這不經意間,咱們就體會到了現代電子信息數據經過總線按時分系統傳輸的最原始的思想。架構

  現代網絡信息的發展,特別是對於成本和空間而言,總線傳輸替代點對點傳輸是目前發展的熱點,它的出現將給信息傳輸上提供了最大的方便和最有效的技術解決方案。假如一個微處理器與它的部件和外圍設備都分別用點對點的線路來鏈接通信,則全部連線將會錯綜複雜,甚至難以實現。異步

  目前與咱們生活習習相關的一系列活動都無不牽涉到總線技術的應用,如咱們上英特網、給親戚朋友打電話、用U盤來存儲信息等。雖然流行的總線所採起的形式不一樣,但他們主要的原則性思想無非就是時分系統、頻分系統、相分系統和碼分系統等。常言道兵來將擋,水來土淹,面對種類繁多的總線,咱們只有從基本原理出發,從骨子裏去了解它的實質,而不要被它形式多樣的外表所迷惑,才能熟練掌握和靈活運用眼下正在或將要用到的各類總線技術。性能

1總線的定義及分類

1.1定義

總線,英文叫做「BUS」,即咱們中文的公共車,這是很是形象的好比,公共車走的路線是必定的,咱們任何人均可以坐公共車去該條公共車路線的任意一個站點。若是把咱們人比做是電子信號,這就是爲何英文叫它爲「BUS」而不是「CAR」的真正用意。固然,從專業上來講,總線是一種描述電子信號傳輸線路的結構形式,是一類信號線的集合,是子系統間傳輸信息的公共通道。經過總線能使整個系統內各部件之間的信息進行傳輸、交換、共享和邏輯控制等功能。如在計算機系統中,它是CPU、內存、輸入、輸出設備傳遞信息的公用通道,主機的各個部件經過主機相鏈接,外部設備經過相應的接口電路再於總線相鏈接。學習

1.2分類

總線分類的方式有不少,如被分爲外部和內部總線、系統總線和非系統總線等等,下面是幾種最經常使用的分類方法大數據

1.2.1按功能分

  最多見的是從功能上來對數據總線進行劃分,能夠分爲地址總線(address bus)、數據總線(data bus)和控制總線(control bus)。在有的系統中,數據總線和地址總線能夠在地址鎖存器控制下被共享,也即複用。編碼

  地址總線是專門用來傳送地址的。在設計過程當中,見得最多的應該是從CPU地址總線來選用外部存儲器的存儲地址。地址總線的位數每每決定了存儲器存儲空間的大小,好比地址總線爲16位,則其最大可存儲空間爲21664KB)。spa

  數據總線是用於傳送數據信息,它又有單向傳輸和雙向傳輸數據總線之分,雙向傳輸數據總線一般採用雙向三態形式的總線。數據總線的位數一般與微處理的字長相一致。例如Intel 8086微處理器字長16位,其數據總線寬度也是16位。在實際工做中,數據總線上傳送的並不必定是徹底意義上的數據。設計

  控制總線是用於傳送控制信號和時序信號。若有時微處理器對外部存儲器進行操做時要先經過控制總線發出讀/寫信號、片選信號和讀入中斷響應信號等。控制總線通常是雙向的,其傳送方向由具體控制信號而定,其位數也要根據系統的實際控制須要而定。

1.2.2按傳輸方式分

  按照數據傳輸的方式劃分,總線能夠被分爲串行總線和並行總線。從原理來看,並行傳輸方式其實優於串行傳輸方式,但其成本上會有所增長。通俗地講,並行傳輸的通路猶如一條多車道公路,而串行傳輸則是隻容許一輛汽車經過單線公路。目前常見的串行總線有SPII2CUSBIEEE1394RS232CAN等;而並行總線相對來講種類要少,常見的如IEEE1284ISAPCI等。

1.2.3按時鐘信號方式分

  按照時鐘信號是否獨立,能夠分爲同步總線和異步總線。同步總線的時鐘信號獨立於數據,也就是說要用一根單獨的線來做爲時鐘信號線;而異步總線的時鐘信號是從數據中提取出來的,一般利用數據信號的邊沿來做爲時鐘同步信號。

2總線傳輸基本原理

依據前面對總線的定義可知總線的基本做用就是用來傳輸信號,爲了各子系統的信息能有效及時的被傳送,爲了避免至於彼此間的信號相互干擾和避免物理空間上過於擁擠,其最好的辦法就是採用多路複用技術,也就是說總線傳輸的基本原理就是多路複用技術。所謂多路複用就是指多個用戶共享公用信道的一種機制,目前最多見的主要有時分多路複用、頻分多路複用和碼分多路複用等。

2.1時分多路複用(TDMA)

  時分複用是將信道按時間加以分割成多個時間段,不一樣來源的信號會要求在不一樣的時間段內獲得響應,彼此信號的傳輸時間在時間座標軸上是不會重疊。

2.2頻分多路複用(FDMA)

  頻分複用就是把信道的可用頻帶劃分紅若干互不交疊的頻段,每路信號通過頻率調製後的頻譜佔用其中的一個頻段,以此來實現多路不一樣頻率的信號在同一信道中傳輸。而當接收端接收到信號後將採用適當的帶通濾波器和頻率解調器等來恢復原來的信號。

2.3碼分多路複用(CDMA)

  碼分多路複用是所被傳輸的信號都會有各自特定的標識碼或地址碼,接收端將會根據不一樣的標識碼或地址碼來區分公共信道上的傳輸信息,只有標識碼或地址碼徹底一致的狀況下傳輸信息纔會被接收。

3總線的通訊協議

  對於總線的學習,瞭解其通信協議是整個過程當中最關鍵的一步,全部介紹總線技術的資料都會花很大的篇幅來描述其協議,特別是ISO/OSI的那七層定義。其實要了解一種總線的協議,最主要的就是去了解總線的幀數據每一位所表明的特性和意義,總線各節點間有效數據的收發都是經過各節點對幀數據位或段的判斷和確信來得以實現。

  如圖1所示是常見的I2C總線上傳輸的一字節數據的數據幀,其總線形式是由數據線SDA和時鐘SCL構成的雙線制串行總線,並接在總線上的電路模塊便可做爲發送器(主機)又可做爲接收器(從機)。幀數據中除了控制碼(包括從機標識碼和訪問地址碼)與數據碼外還包括起始信號、結束信號和應答信號

  起始信號:SCL爲高電平時,SDA由高電平向低電平跳變,開始傳送數據。

  控制碼:用來選澤操做目標與對象,即接通須要控制的電路,肯定控制的種類對象。在讀期間,也即SCL時鐘線處於時鐘脈衝高電平時,SDA上的數據位不會跳變。

  數據碼:是主機向從機發送的具體的有用的數據(如對比度、亮度等)和信息。在讀期間,SDA上的數據位不會跳變。

  應答信號:接收方收到8bit數據後,向發送方發出特定的低電平。讀/寫的方向與其它數據位正好相反,也便是由從機寫出該低電平,主機來讀取該低電平。

  結束信號:SCL爲高電平時,SDA由低電平向高電平跳變表示數據幀傳輸結束。

固然不一樣的總線其數據位或段的定義確定不一樣,但依據一樣的原理能夠更快的去了解它的協議的特性和特色。雖然其信息幀的大小不一,但具體的某一數據位或數據段都相似於本文所說起的I2C總線,會依據它的協議的要求來定義它所達標的意義和功能。

4主要技術指標

評價總線的主要技術指標是總線的帶寬(即傳輸速率)、數據位的寬度(位寬)、工做頻率和傳輸數據的可靠性、穩定性等。

4.1帶寬(傳輸速率)、位寬和工做頻率

  總線的帶寬指的是單位時間內總線上傳送的數據量,即每鈔傳送MB的最大數據傳輸率。總線的位寬指的是總線能同時傳送的二進制數據的位數,或數據總線的位數,即32位、64位等總線寬度的概念;總線的位寬越寬,數據傳輸速率越大,總線的帶寬就越寬。總線的工做時鐘頻率以MHz爲單位,它與傳輸的介質、信號的幅度大小和傳輸距離有關。在一樣硬件條件下,咱們採用差分信號傳輸時的頻率經常會比單邊信號高得多,這是由於差分信號的的幅度只有單邊信號的一半而已。

  總線的帶寬、位寬和工做頻率,這三者密切相關,它們之間的關係:

4.2傳輸數據的可靠性

  可靠性是評定總線最關鍵的參數,沒有可靠性,傳輸的數據都是錯誤的信息,便就失去了總線的實際意義。爲了提升總線的可靠性,一般採用的措施有:

  採用數據幀發送前發送器對總線進行偵聽,只有偵聽到總線處於空閒狀態下時纔可向總線傳送數據幀,這樣避免了不一樣節點的數據衝突。

  採用雙絞線差分信號來傳送數據,以下降單線的電壓升降幅度,減少信號的邊沿產生的高次諧波。

  適當的讓數據的邊沿具備必定的斜坡。

  增長匹配電阻和電容等來減小總線上信號的發射和平衡總線上的分佈電容等。

  採用合適的網絡拓撲結構和屏蔽技術等來減小受其餘信號的干擾。

  還有就是在軟件上經過數字濾波、數據校驗糾錯等措施來提升數據傳輸的可靠性。

5結束語

  學習是一個按部就班的過程,對總線技術的學習和理解也是隨着其技術的不斷髮展而不斷更新的過程。子曰工欲善其事,必先利其器。只有從最基本的原理出發,打好基礎,才能在從此的學習中融會貫通,前仆後繼,更進一步深刻該知識點和拓寬知識面。

相關文章
相關標籤/搜索