儲存、匯流排與輸入輸出

匯流排(bus)

想像一條老式的「合用電話線」,整條街共用:一組電線連到每戶人家,同一時間只有一個人能講話,其他人都聽得到。電腦裡的匯流排就是這組共用的電線。它是一條共同的通道,好幾個元件——CPU、記憶體、I/O 控制器——都接上來,彼此傳送資料、位址和控制訊號。因為電線是共用的,匯流排需要一套規則(協定)來規定誰可以驅動電線,而且任一瞬間只能有一個發送者使用它們。

典型的匯流排攜帶三類資訊,常分在不同組電線上:位址線說明訊息要送到哪個位置或裝置,資料線攜帶實際的位元,控制線攜帶像「這是讀取」、「這是寫入」、「我準備好了」這樣的訊號。一次傳輸就像一段小對話:發送者把位址和命令放上匯流排,被定址的裝置回應,位元便沿著資料線移動。有兩個數字描述匯流排的速度:它的寬度(多少資料位元平行移動,例如 64)和它的時脈頻率(每秒多少次傳輸),而頻寬大致等於寬度 times 頻率。

誠實的限制、也是匯流排正在退場的原因,是爭用。因為電線共用,每多一個裝置就得排隊輪流,而長長的共用電線在電氣上難以跑得快(訊號會反射、會互相干擾)。隨著晶片變快,共用匯流排成了瓶頸——一道大家都得排隊通過的單一門。這就是為什麼現代系統大多用像 PCI Express 這種交換式點對點互連取代了寬的共用匯流排,讓每個裝置都有自己的私有連結(見 interconnect 與 pci-express)。「匯流排」這個詞在許多名稱裡留了下來,但內部的拓樸已經改變。

一條 64 位元寬、時脈為每秒一億次傳輸的匯流排,每次傳輸搬 64 位元 = 8 位元組,所以尖峰頻寬是 8 位元組 times 一億/秒 = 800 MB/s——但同一時間只有一個裝置能用它,所以兩個忙碌的裝置得共享那 800 MB/s。

頻寬是寬度 times 頻率,但共用匯流排會把那份頻寬分給所有想說話的人。

常見誤解:光是更高的匯流排時脈,並不保證更多可用頻寬。在共用匯流排上,爭用與仲裁開銷意味著實際吞吐量可能遠低於寬度 times 頻率算出的尖峰值。

又称
system busshared bus匯流排