存儲器峰值頻寬
頻寬這個詞在電子學領域裡很常用,它的意思是指波長、頻率或能量帶的範圍,特指以每秒周數表示頻帶的上、下邊界頻率之差。可以顯見頻寬是用來描述頻頻寬度的,但是在數字傳輸方面,也常用頻寬來衡量傳輸數據的能力。用它來表示單位時間內傳輸數據容量的大小,表示吞吐數據的能力。
在很多文章里往往看見關於頻寬的各種描述,那么怎么計算有關存儲器的頻寬呢?對於存儲器的頻寬計算有下面的方法:
B表示頻寬,F表示存儲器時鐘頻率,D表示存儲器數據匯流排位數,則頻寬為:
B=F×D/8
例如,PC-100的SDRAM頻寬計算如下:
100MHZ×64BIT/8=800MB/S
當然,這個計算方法是針對僅靠上升沿信號傳輸數據的SDRAM而言的,對於上升沿和下降沿都傳輸數據的DDR來說計算方法有點變化,應該在最後乘2,因為它的傳輸效率是雙倍的,這也是DDR能夠有如此高性能的重要原因。
對於和存儲器頻寬關係很大的匯流排頻寬也同樣可以利用這個方法來計算,例如PCI和AGP等匯流排。比如,PCI頻寬=33MHz×32BIT/8=133MB/S,AGP1X匯流排的頻寬為66MHz×64BIT/8=528MB/S,AGP4X頻寬=528MHz×4=2.1GB/秒。
通過這樣的計算我們不難看出,匯流排的發展伴隨著頻寬的擴展,只有高頻寬的匯流排才能不斷的滿足當前各種硬體對數據傳輸的要求。比如顯示卡當年從PCI匯流排到AGP,正是因為PCI匯流排的133MB/S傳輸速率早已不能滿足各種圖形處理的要求。而從AGP1X到AGP4X直到AGP8X都使得傳輸頻寬不斷的得到了擴展。
通過計算出的頻寬是理論值,既它們可以達到的最大峰值頻寬,通過對峰值頻寬的比較我們可以了解各種記憶體的性能,下表就給出了常見記憶體的峰值頻寬。
常見的記憶體峰值頻寬表
PC-66SDRAM
528MB/s
PC-100SDRAM
800MB/s
PC-133SDRAM
1064MB/s
PC-150SDRAM
1200MB/s
PC-600RDRAM
1200MB/s
PC-800RDRAM
1600MB/s
PC-1600DDR
1600MB/s
PC-2100DDR
2100MB/s
其他信息
在實際工作時這些存儲單元未必能達到峰值頻寬,影響頻寬的因素還很多。比如,因為數據寫入和讀出存儲單元總要有一定的延遲時間。除了延遲時間影響頻寬外,所存儲數據的命中率也有重要關係。當把這些因素考慮在內,即便是100%的命中率,PC100的SDRAM的實際頻寬只有峰值頻寬的40%。
從上面給出的頻寬計算方法可知,頻寬不僅和時鐘頻率有關還和存儲單元的數據匯流排位數有關。而我們面對各種顯示卡顯存的時候關注的是它的時鐘頻率,計算頻寬還需要顯存的位數。顯存在顯示卡上發揮著重要的作用,而各種顯示卡晶片支持顯存的位數也是有差異的,廠商們也是在擴展顯存位數,以達到提升顯存頻寬的目的。
峰值頻寬=工作頻率*記憶體匯流排寬度,如PC100記憶體峰值頻寬=100MHz*64bit=800MByte,DDR266記憶體峰值頻寬=266MHz*64bit=2.1GByte,PC800的Rambus記憶體峰值頻寬=800MHz*16bit=1.6GByte。
社會評論
在許多人眼中,前端匯流排頻寬是一個常量,在這個匯流排通道內傳輸數據總是恆定在一定的數值上。而這個恆定的數值也稱為“理論峰值頻寬”,在其自身數據傳輸過程中被固定在一定值之上而是不受數據傳輸媒介的影響。
當人們這樣談論匯流排頻寬時,他們確實是這樣描述的,但是這僅僅是頻寬的一種類型:匯流排的理論峰值頻寬。一個系統的匯流排最大頻寬是很容易計算,你能通過二個部分(即:中央處理器和隨機存貯器)確定在一個周期內相關的頻寬數值和在一個時間周期內有多少數據交換。但這數值僅僅是在大多數產品技術文檔中的理論值,而在實際套用中很少達到這個值!現在還是讓我們進行一步探討一下這個數值是如何計算和代表哪方面的意義。