1. 什么是內存帶寬
內存是內存控制器(一般位于北橋芯片中)與CPU之間的橋梁或與倉庫。顯然,內存的容量決定“倉庫”的大小,而內存的帶寬決定“橋梁”的寬窄,兩者缺一不可,這也就是我們常常說道的“內存容量”與“內存速度”。除了內存容量與內存速度,延時周期也是決定其性能的關鍵。當CPU需要內存中的數據時,它會發(fā)出一個由內存控制器所執(zhí)行的要求,內存控制器接著將要求發(fā)送至內存,并在接收數據時向CPU報告整個周期(從CPU到內存控制器,內存再回到CPU)所需的時間。毫無疑問,縮短整個周期也是提高內存速度的關鍵,這就好比在橋梁上工作的警察,其指揮疏通能力也是決定通暢度的因素之一。更快速的內存技術對整體性能表現有重大的貢獻,但是提高內存帶寬只是解決方案的一部分,數據在CPU以及內存間傳送所花的時間通常比處理器執(zhí)行功能所花的時間更長,為此緩沖區(qū)被廣泛應用。其實,所謂的緩沖器就是CPU中的一級緩存與二級緩存,它們是內存這座“大橋梁”與CPU之間的“小橋梁”。事實上,一級緩存與二級緩存采用的是SRAM,我們也可以將其寬泛地理解為“內存帶寬”,不過現在似乎更多地被解釋為“前端總線”,所以我們也只是簡單的提一下。事先預告一下,“前端總線”與“內存帶寬”之間有著密切的聯系,我們將會在后面的測試中有更加深刻的認識。
2.內存帶寬的計算方法
帶寬=總線寬度×總線頻率×一個時鐘周期內交換的數據包個數
FSB與內存帶寬相等的情況下,則不存在瓶徑問題,如果內存帶寬小于FSB則形成內存帶寬瓶徑,無法完全發(fā)揮系統(tǒng)的性能。
現在的單通道內存控制器一般都是64bit的,8個2進制bit相當于1個字節(jié),換算成字節(jié)是64/8=8,再乘以內存的運行頻率,如果是DDR內存就要再乘以2,因為它是以sd內存雙倍的速度傳輸數據的,所以
DDR266,運行頻率為133MHz,帶寬為133*2*64/8=2100MB/s=2.1GB/s
DDR333,運行頻率為166MHz,帶寬為166*2*64/8=2700MB/s=2.7GB/s
DDR400,運行頻率為200MHz,帶寬為200*2*64/8=3200MB/s=3.2GB/s
所謂雙通道DDR,就是芯片組可以在兩個不同的數據通道上分別尋址、讀取數據。這兩個相互獨立工作的內存通道是依附于兩個獨立并行工作的,位寬為64-bit的內存控制器下,因此使普通的DDR內存可以達到128-bit的位寬,因此,內存帶寬是單通道的兩倍,因此
雙通道DDR266的帶寬為133*2*64/8*2=4200MB/s=4.2GB/s
雙通道DDR333的帶寬為166*2*64/8*2=5400MB/s=5.4GB/s
雙通道DDR400的帶寬為200*2*64/8*2=6400MB/s=6.4GB/s
3. 內存帶寬的重要性
內存帶寬為何會如此重要呢?在回答這一問題之前,我們先來簡單看一看系統(tǒng)工作的過程。基本上當CPU接收到指令后,它會最先向CPU中的一級緩存(L1 Cache)去尋找相關的數據,雖然一級緩存是與CPU同頻運行的,但是由于容量較小,所以不可能每次都命中。這時CPU會繼續(xù)向下一級的二級緩存(L2 Cache)尋找,同樣的道理,當所需要的數據在二級緩存中也沒有的話,會繼續(xù)轉向L3 Cache(如果有的話,如K6-2+和K6-3)、內存和硬盤。由于目前系統(tǒng)處理的數據量都是相當巨大的,因此幾乎每一步操作都得經過內存,這也是整個系統(tǒng)中工作最為頻繁的部件。如此一來,內存的性能就在一定程度上決定了這個系統(tǒng)的表現,這點在多媒體設計軟件和3D游戲中表現得更為明顯。3D顯卡的內存帶寬(或許稱為顯存帶寬更為合適)的重要性也是不言而喻的,甚至其作用比系統(tǒng)的內存帶寬更為明顯。大家知道,顯示卡在進行像素渲染時,都需要從顯存的不同緩沖區(qū)中讀寫數據。這些緩沖區(qū)中有的放置描述像素ARGB(阿爾法通道,紅,綠,藍)元素的顏色數據,有的放置像素Z值(用來描述像素的深度或者說可見性的數據)。顯然,一旦產生Z軸數據,顯存的負擔會立即陡然提升,在加上各種材質貼圖、深度復雜性渲染、3D特效,其工作量可想而知。在更多情況下,顯存帶寬的重要性超越了顯存容量。
4.如何提高內存帶寬
內存帶寬的計算方法并不復雜,大家可以遵循如下的計算公式:帶寬=總線寬度×總線頻率×一個時鐘周期內交換的數據包個數。DDR技術就使我們感受到提高數據包個數的好處,它令內存帶寬瘋狂地提升一倍。 當然,提高數據包個數的方法不僅僅局限于在內存上做文章,通過多個內存控制器并行工作同樣可以起到效果,這也就是如今熱門的雙通道DDR芯片組(如nForce2、I875/865等)。事實上,雙通道DDR內存控制器并不能算是新發(fā)明,因為早在RAMBUS時代,RDRAM就已經使用了類似技術,只不過當時RDRAM的總線寬度只有16Bit,無法與DDR的64Bit相提并論。內存技術發(fā)展到如今這一階段,四通道內存控制器的出現也只是時間問題,VIA的QBM技術以及SiS支持四通道RDRAM的芯片組,這些都是未來的發(fā)展方向。至于顯卡方面,我們對其顯存帶寬更加敏感,這甚至也是很多廠商用來區(qū)分高低端產品的重要方面。同樣是使用DDR顯存的產品,128Bit寬度的產品會表現出遠遠勝過64Bit寬度的產品。當然提高顯存頻率也是一種解決方案,不過其效果并不明顯,而且會大幅度提高成本。
5.如何識別產品的內存帶寬
對于內存而言,辨別內存帶寬是一件相當簡單的事情,因為SDRAM、DDR、RDRAM這三種內存在外觀上有著很大的差別,唯一需要我們去辨認的便是不同頻率的DDR內存。目前主流DDR內存分為DDR266、DDR333以及DDR400,其中后三位數字代表工作頻率。通過內存條上的標識,自然可以很方便地識別出其規(guī)格。相對而言,顯卡上顯存帶寬的識別就要困難一些。在這里,我們應該抓住“顯存位寬”和“顯存頻率”兩個重要的技術指標。顯存位寬的計算方法是:單塊顯存顆粒位寬×顯存顆??倲?,而顯存頻率則是由"1000/顯存顆粒納秒數"來決定。一般來說,我們可以從顯存顆粒上一串編號的最后2兩位看出其納秒數,從中也就得知其顯存頻率。至于單塊顯存顆粒位寬,我們只能在網上查詢。此外,使用RivaTuner也可以檢測顯卡上顯存的總位寬,大家打開RivaTuner在MAIN菜單即可看到。