複製鏈接
請複製以下鏈接發送給好友

內存帶寬

鎖定
從功能上理解,大家可以將內存看作是內存控制器(一般位於北橋芯片中)與CPU之間的橋樑或倉庫。顯然,內存的容量決定“倉庫”的大小,而內存的帶寬決定“橋樑”的寬窄,兩者缺一不可,這也就是常常説道的“內存容量”與“內存速度”。除了內存容量與內存速度,延時週期也是決定其性能的關鍵。當CPU需要內存中的數據時,它會發出一個由內存控制器所執行的要求,內存控制器接着將要求發送至內存,並在接收數據時向CPU報告整個週期(從CPU到內存控制器,內存再回到CPU)所需的時間。
中文名
內存帶寬
外文名
memory bandwidth
重要性
決定系統的表現
含    義
內存控制器的數據傳輸速率
提高速度關鍵
縮短整個週期時間

內存帶寬基礎知識

內存帶寬定義

毫無疑問,縮短整個週期也是提高內存速度的關鍵,這就好比在橋樑上工作的警察,其指揮疏通能力也是決定通暢度的因素之一。更快速的內存技術對整體性能表現有重大的貢獻,但是提高內存帶寬只是解決方案的一部分,數據在CPU以及內存間傳送所花的時間通常比處理器執行功能所花的時間更長,為此緩衝區被廣泛應用。其實,所謂的緩衝器就是CPU中的一級緩存二級緩存,它們是內存這座“大橋樑”與CPU之間的“小橋樑”。事實上,一級緩存與二級緩存採用的是SRAM,大家也可以將其寬泛地理解為“內存帶寬”,更多地被解釋為“前端總線”,所以也只是簡單的提一下。事先預告一下,“前端總線”與“內存帶寬”之間有着密切的聯繫,將會在後面的測試中有更加深刻的認識。

內存帶寬重要性

內存帶寬為何會如此重要呢?在回答這一問題之前,先來簡單看一看系統工作的過程。基本上當CPU接收到指令後,它會最先向CPU中的一級緩存(L1 Cache)去尋找相關的數據,雖然一級緩存是與CPU同頻運行的,但是由於容量較小,所以不可能每次都命中。這時CPU會繼續向下一級的二級緩存(L2 Cache)尋找,同樣的道理,當所需要的數據在二級緩存中也沒有的話,會繼續轉向L3 Cache(如果有的話,如K6-2+和K6-3)、內存和硬盤。由於系統處理的數據量都是相當巨大的,因此幾乎每一步操作都得經過內存,這也是整個系統中工作最為頻繁的部件。如此一來,內存的性能就在一定程度上決定了這個系統的表現,這點在多媒體設計軟件和3D遊戲中表現得更為明顯。3D顯卡的內存帶寬(或許稱為顯存帶寬更為合適)的重要性也是不言而喻的,甚至其作用比系統的內存帶寬更為明顯。大家知道,顯示卡在進行像素渲染時,都需要從顯存的不同緩衝區中讀寫數據。這些緩衝區中有的放置描述像素ARGB(阿爾法通道,紅,綠,藍)元素的顏色數據,有的放置像素Z值(用來描述像素的深度或者説可見性的數據)。顯然,一旦產生Z軸數據,顯存的負擔會立即陡然提升,在加上各種材質貼圖、深度複雜性渲染、3D特效,其工作量可想而知。在更多情況下,顯存帶寬的重要性超越了顯存容量,這點將在後文的測試中有詳細説明。

內存帶寬如何提高

內存帶寬的計算方法並不複雜,大家可以遵循如下的計算公式:帶寬=總線寬度×總線頻率×一個時鐘週期內交換的數據包個數。很明顯,在這些乘數因子中,每個都會對最終的內存帶寬產生極大的影響。然而,如今在頻率上已經沒有太大文章可作,畢竟這受到製作工藝的限制,不可能在短時間內成倍提高。而總線寬度和數據包個數就大不相同了,簡單的改變會令內存帶寬突飛猛進。DDR技術就使感受到提高數據包個數的好處,它令內存帶寬瘋狂地提升一倍。 當然,提高數據包個數的方法不僅僅侷限於在內存上做文章,通過多個內存控制器並行工作同樣可以起到效果,這也就是如今熱門的雙通道DDR芯片組(如nForce2、I875/865等)。事實上,雙通道DDR內存控制器並不能算是新發明,因為早在RAMBUS時代,RDRAM就已經使用了類似技術,只不過當時RDRAM的總線寬度只有16Bit,無法與DDR的64Bit相提並論。內存技術發展到如今這一階段,四通道內存控制器的出現也只是時間問題,VIA的QBM技術以及SiS支持四通道RDRAM的芯片組,這些都是未來的發展方向。至於顯卡方面,對其顯存帶寬更加敏感,這甚至也是很多廠商用來區分高低端產品的重要方面。同樣是使用DDR顯存的產品,128Bit寬度的產品會表現出遠遠勝過64Bit寬度的產品。當然提高顯存頻率也是一種解決方案,不過其效果並不明顯,而且會大幅度提高成本。值得注意的是,部分高端顯卡甚至動用了DDRII技術,這項技術還為時過早。

內存帶寬識別

對於內存而言,辨別內存帶寬是一件相當簡單的事情,因為SDRAM、DDR、RDRAM這三種內存在外觀上有着很大的差別,大家通過下面這副圖就能清楚地認識到。唯一需要去辨認的便是不同頻率的DDR內存。主流DDR內存分為DDR266、DDR333以及DDR400,其中後三位數字代表工作頻率。通過內存條上的標識,自然可以很方便地識別出其規格。相對而言,顯卡上顯存帶寬的識別就要困難一些。在這裏,應該抓住“顯存位寬”和“顯存頻率”兩個重要的技術指標。顯存位寬的計算方法是:單塊顯存顆粒位寬×顯存顆粒總數,而顯存頻率則是由"1000/顯存顆粒納秒數"來決定。一般來説,可以從顯存顆粒上一串編號的最後2兩位看出其納秒數,從中也就得知其顯存頻率。至於單塊顯存顆粒位寬,只能在網上查詢。HY、三星、EtronTech(鈺創)等都提供專用的顯存編號查詢網站,相當方便。如三星的顯存就可以到如下的地址下載,只要輸入相應的顯存顆粒編號即可此外,使用RivaTuner也可以檢測顯卡上顯存的總位寬,大家打開RivaTuner在MAIN菜單即可看到。
1.功耗:互連網絡是個耗電大户,可以消耗整個芯片供電的三分之一!如增加互連網絡帶寬,就會增加能耗。所以一方面要考慮實際帶寬的需求,也要考慮相應的電源管理技術方面的要求,達到按需供應,以節約電能。
2.芯片面積:集成電路的特點就是有大量的晶體管備用,可以構成各種電路。互連網絡就是由芯片中的一部分晶體管構成的,在芯片上佔用的面積可超過內核晶核面積的五分之一。此漲彼消,用了太多的晶體管作互連網絡,用於計算功能的晶體管數量就會減少。必須找到一個合理的比例,不能犧牲太多計算功能區域,也就是説互連網絡的片上面積是有限制的。
3.設計複雜度:所有的電路設計都是要經過優化的。顯而易見,簡單的電路容易進行優化,複雜的電路在進行優化的時候難度就增大。在各種類型的網絡結構中,總線(BUS)最簡單,但一次只能收或是發一個消息。雙向的環結構(Ring)可以做到同時收發,鏈路速度也快,但是內核大量增加後就不經濟了,因為只有一條路可走。增加維度,2維的網狀網絡(mesh)可以處理大量併發消息,並且有大量的不同路由可供選擇。如果繼續增加維度,在交叉開關矩陣(Crossbar)的結構下,所有的核均可與其他核同時通信。高維網絡有更好的架構性能,但也更難優化設計。

內存帶寬內存速度

從技術上講,DDR DIMM(Dual In-line Memory Modules)內存總線的時鐘頻率與內存型號有着這樣的對應關係:100MHz-PC1600, 133MHz-PC2100, 166MHz-PC2700, 200MHz-PC3200, 233MHz-PC3700, 266MHz-PC4200,與之相對應的,上述每個內存型號分別運行在以下的有效時鐘頻率之下:200MHz, 266MHz, 333MHz, 400MHz, 466MHz以及533MHz。也就是説,計算機業界採用了把實際頻率轉換為對應型號的命名方法來標稱這些DDR內存,換言之,DDR內存中的PC1600就是指實際頻率運行在200MHz的內存,以此類推,PC2100運行於266MHz, PC2700運行於333MHz, PC3200運行於400MHz, PC3700運行於466MHz,PC4200運行於533MHZ。

內存帶寬剖析

在同等配置的情況下,一台裝配了 2-2-2-5 的DDR內存的計算機要比採用 3-4-4-8 DDR內存的計算機快。這是因為前者使用在獲得指令或者數據以及把它們發送出去的實際時間要少於後者。
類似於“2-2-2-5”這樣的參數,被稱作內存的時序(timing)。為了得到較低的時存,DIMM(Dual In-line Memory Modules,雙邊接觸內存模組)運行的頻率通常要比系統前端總線低。然而,當你對CPU進行超頻後,DIMM的帶寬限制會變為對CPU的扼制,影響了CPU的運行速度,除非你放棄較低的時存,那麼DIMM才有可能工作在與系統前端總線或者CPU外頻相同的頻率。這是由於當對帶寬的需求很大的時候,CPU只能夠等待下一個時鐘週期才能夠得到所需要的數據,因為內存的速度跟不上CPU的頻率。當需要運行具有大量臨時數據的應用程序的時候,例如Photoshop和數據庫,具有一個足夠大的帶寬緩存是很有幫助的。
另外,一個CAS(Column Address Strobe,行地址控制器)為2的PC3200或者3500內存可以填補帶寬不夠的缺陷。由於這些內存具備更低延遲時間,因此,能夠使CPU與內存間的數據傳輸更加快。諸如遊戲和一些3D應用程序等等不需要太大帶寬的程序,能夠通過這些內存獲得更快的數據傳輸速度
雙通道不等於雙倍帶寬
出於對速度的追求,為低速DDR內存尋找增加帶寬的方法算是很理所當然的“路子”了。最新的解決方案是,在系統內存上面採用雙通道總線,換言之,就是在不增加內存時鐘頻率的前提下,增加內存的潛在帶寬。儘管內存生產商能夠依據JEDEC標準生產高於DDR 400的內存產品,但是,採用雙通道總線無可否認是解決內存帶寬問題的一個好方法。如果有留意測試數據的話,你會發現一個雙通道的內存平均會比普通內存快1-5%。在某些測試當中,速度的提升甚至可以達到15%。
在配置了Althon XP處理器的系統裏面,由於受到Althon XP系統本身前端總線帶寬(3200MB/second)的限制,它並不能夠從雙通道的DDR400內存上得到任何優勢。然而,由於內存控制器實際上是不可能運行在100%的效率之下的,因此,對於Althon XP的系統,你只能夠選擇一款帶寬明顯低於3200MB/second的單通道內存產品。對於雙通道解決方案來説,由於它能夠消除內存控制器非全功率運作所帶來的性能下降,因此,你會發現採用雙通道的系統的內存帶寬會稍微高於單通道內存。
對於Pentium 4處理器來説,由於CPU以及系統前端總線的帶寬相對較高(800mhz),它能夠通過雙通道的內存得到比Althon XP系統更高的內存帶寬。
內存帶寬並不是檢驗性能的唯一標準,實際上,系統的實際性能是根據每個人所使用的具體的應用程序不同而有差異的。
普遍來説,Athlon XP與Pentium 4之間的性能存在着一定的對應關係。拿Athlon XP 3000+和3200+與800MHz前端總線的Pentium 4 3.0C以及與i865/i875配套的處理器作比較的話,它們之間是存在着一定差別的,這便道明瞭為什麼P4在測試中能夠得到更高的分數。

內存帶寬技術

雙通道DDR技術
雙通道DDR技術是一種內存的控制技術,它和雙通道RDRAM技術非常相類似,是在現有的DDR內存技術上,通過擴展內存子系統位寬使得內存子系統的帶寬在頻率不變的情況提高了一倍:即通過兩個64bit內存控制器來獲得128bit內存總線所達到的帶寬。不過雖然雙64bit內存體系所提供的帶寬等同於一個128bit內存體系所提供的帶寬,但是二者所達到效果卻是不同的。雙通道體系包含了兩個獨立的、具備互補性的智能內存控制器,兩個內存控制器都能夠在彼此間零等待時間的情況下同時運作。當控制器B準備進行下一次存取內存的時候,控制器 A就在讀/寫主內存,反之亦然,這樣的內存控制模式可以讓有效等待時間縮減50%。同時由於雙通道DDR的兩個內存控制器在功能上是完全一樣的,並且兩個控制器的時序參數都是可以單獨編程設定的,這樣的靈活性可以讓用户使用三條不同構造、容量、速度的DIMM內存條,此時雙通道DDR簡單地調整到最低的密度來實現128bit帶寬,允許不同密度/等待時間特性的DIMM內存條可以可靠地共同運作(不過這一點在實現時比較困難,要依賴於廠商的實現)。
總的來説,雙通道內存技術的特點是通過改變內存的控制方式來獲得更高的帶寬,它不需要內存生產商改變生產方式,是的技術條件下無疑是最省時省力的擴展內存帶寬的辦法,所以可以説雙通道DDR技術給DDR帶來了新的活力。
四倍帶寬內存技術
用四倍帶寬內存技術的英文全稱是Quad Band Memory,簡稱QBM,QBM並不是什麼全新的內存架構,也不是什麼全新的內存產品,與雙通道DDR技術一樣也是一種內存控制技術。QBM採用一種‘位填塞’機制,不需要更高時脈頻率的內存組件,在不增加內存基準頻率的條件下,QBM可以利用現有的DDR內存和其它組件,實現了能獲得兩倍數據率的配置。
QBM與DDR一樣,是通過縮短數據傳輸的時鐘週期來提高傳輸帶寬的,但兩者有有所不同。DDR是通過在時鐘頻率的上下沿都存取數據來實現帶寬倍增的。而QBM則是在此基礎上做了一種改進。一個QBM模塊由兩個DDR內存模塊組成,其中一個模塊運行在正常頻率的速度,而另外一個的模塊的時鐘週期比前一個模塊時鐘週期正好慢90度的相位差,也就是説兩者的工作起始時間相差1/4個時鐘週期,通過這種簡單的方法來讓QBM得到兩倍於DDR內存的工作效率,即一個時鐘週期實現了4次數據讀寫。QBM的兩個DDR模塊之間採用FET芯片進行連接,而這個FET芯片就起到場效應管的作用--當做延遲開關。這樣就簡單的完成了串聯了兩個DDR模塊。
所以從功效上看,QBM技術可以達到雙通道DDR技術的效果,可以從根本上解決了DDR架構所面臨的帶寬瓶頸問題。而QBM的最大優勢在於QBM利用成熟的DDR內存組件,不再需要設計更高頻的內存組件,所以對於內存芯片廠商來説幾乎不用對於生產線做什麼調整,從普通的DDR轉產QBM芯片的成本比較低。而對主板廠商來説,由於這種內存技術在內存接口和內存針腳定義等方面和DDR內存完全一樣,所以在芯片組的基礎上也不需要經過複雜的改造,只要將內存控制重新設計為支持QBM就可以了,原來傳統的64位DDR SDRAM內存接口還是能繼續使用,主板佈線等設計因素幾乎不用改動。

內存帶寬測試分析

對於不同的CPU平台,內存帶寬的重要性不盡相同,而在與內存延時的搭配上,內存帶寬也有很多學問。好了,還是請大家看具體的測評。
1.AMD-nForce2平台的內存帶寬分析
正是nForce2芯片組的出現才讓AthlonXP平台向更高的前端總線發展,而經過一段時間的超頻體驗,不少用户都會前端總線與內存帶寬之間的關聯有了一定的認識。一般而言,我們的常理告訴我們內存頻率越高越好,因為它直接決定了內存帶寬。然而在nForce2芯片組中則並不是這樣一回事。由於內存控制器的特殊性,它要求DDR內存與CPU同步運行時才能達到最佳性能。下面是nForce2芯片組在內存同步/異步條件下的測試成績:
簡單説來,即CPU設定為166MHz外頻(333MHz前端總線)、DDR運行於DDR333模式時,其性能要比CPU設定為166MHz外頻、DDR運行於DDR400模式的方案更好。所以,無論在何種情況下,我們都建議nForce2用户將“MemoryFrequency”設定為“Sync(同步)”。事實上,同樣的情況也出現在ALiMAGiK1和SiS745這兩款芯片組上,DDR333在不同步時性能反而不如DDR266同步,好在它們的市場份額並不大。
此外,當我們使用不集成顯卡的SPP北橋時,單通道與雙通道之間的性能差距微乎其微,甚至都可以將微小的差距理解為測試誤差。而在使用集成顯卡的IGP北橋中,雙通道確實展現出很大的優勢。毫無疑問,對於nForce2而言,雙通道盡管能夠提升內存帶寬,但是AthlonXP的前端總線利用不上,單通道DDR已經完全能夠滿足其需求。之所以nForce2能再KT400面前橫行霸道,其關鍵還在於內存控制器的效率,而非雙通道技術。
2.AMD-KT400A平台
VIA的KT400A也是一款主流SocketA芯片組,那麼它究竟是否會出現高內存頻率異步時性能不佳的情況呢?請大家先不要忙着下結論,更應該拋棄以往對KT333/400的陳見,因為KT400A的內存控制器經過了VIA的重新設計。
顯然,KT400A已經能夠利用裏DDR400的高帶寬,即便是在內存異步的情況下。現大家應該很明白在SocketA平台下的內存優化了吧,確實很簡單:nForce2要保持同步,而KT400A/600應該儘可能提高內存頻率。
3.Intel-I845PE平台
儘管單通道的I845PE芯片組已經略顯落伍,但是我們能夠從中分析出單通道情況下,內存帶寬的重要性。事實上,P4處理器很早就達到533MHz前端總線(133MHz外頻),此時只有使用DDR333才算是同步運行。
很明顯,DDR333的高內存帶寬在此表現出明顯的性能優勢,無論對3D遊戲還是商業應用軟件都大有裨益。事實上,單通道DDR對於Pentium4的Netburst架構而言僅僅是杯水車薪,即便是DDR333也無法滿足Pentium4的需求,因為533MHz前端總線的Pentium4必須擁有4。2GB/s的內存帶寬才能充分別發揮性能,而單通道的DDR333只具備2。7GB/s,更不用説DDR266了。
4.Intel-I865PE
I865PE芯片組是如今毫無疑問的當紅小生,憑藉雙通道DDR技術。它完全解決了內存帶寬的瓶頸,引爆P4處理器的最大動力。在這裏,我們將對比單通道DDR400、雙通道DDR400以及雙通道DDR333之間的性能。當然,此時的P4處理器運行於800MHz前端總線。
雙通道DDR確實是P4處理器的最佳拍檔,在這種環境下,系統的整體性能得到最佳發揮。如果對比一下各種前端總線的P4處理器所需要的帶寬以及各種內存模式能夠提供的帶寬,我們也就不難理解出現這一現象的原因了。

前端總線頻率/工作頻率
最高帶寬
Pentium4
400MHz
3.2GB/s
Pentium4
533MHz
4.2GB/s
Pentium4
800MHz
6.4GB/s
DDR266
266MHz
2.1GB/s
雙通道DDR266
266MHz
4.2GB/s
DDR333
333MHz
2.7GB/s
雙通道DDR333
333MHz
5.4GB/s
DDR400
400MHz
3.2GB/s
雙通道DDR400
400MHz
6.4GB/s
由於雙通道DDR400的帶寬是6.4GB/s,正好滿足800MHz前端總線的P4處理器,因此表現出最佳的組合。
5.Intel-SiS655
Intel芯片組一直對於內存異步相當保守,甚至一直不允許內存頻率高於CPU的外頻。不過SiS可並不這樣認為,其高端的SiS655芯片組同樣支持雙通道DDR400,而且能夠以更加靈活的方式進行異步,這意味着即便我們的P4處理器運行於533MHz前端總線,也可以在SiS655芯片組上使用DDR400。那麼這種異步模式是否有價值呢?測試中,我們選擇了533MHz前端總線的P4處理器,分別配合單通道DDR400、單通道DDR333以及雙通道DDR333。

內存帶寬計算

內存帶寬計算公式:帶寬=內存時鐘頻率×內存總線位數×倍增係數/8。以DDR400內存為例,它的運行頻率為200MHz,數據總線位數為64bit,由於上升沿和下降沿都傳輸數據,因此倍增係數為2,此時帶寬為:200×64×2/8=3.2GB/s(如果是兩條內存組成的雙通道,那帶寬則為6.4 GB/s)。很明顯,在現有技術水準下,運行頻率很難成倍提升,此時數據總線位數與倍增係數是技術突破點。
單通道內存節制器一般都是64-bit的,8個二進制位相當於1個字節,換算成字節是64/8=8,再乘以內存的運行頻率,如果是DDR內存就要再乘以2,因為它是以SD內存雙倍的速度傳輸數據的,所以:
DDR266,運行頻率為133MHz,帶寬為133×2×64/8 = 2.1GBps (PC2100)
DDR333,運行頻率為166MHz,帶寬為166×2×64/8 = 2.7GBps (PC2700)
DDR400,運行頻率為200MHz,帶寬為200×2×64/8 = 3.2GBps (PC3200)
所謂雙通道DDR,就是芯片組可以在兩個不同的數據通道上分離尋址、讀取數據。這兩個相互獨立工作的內存通道是依靠於兩個獨立並行工作的、位寬為64-bit的內存節制器下,因此使普通的DDR內存可以到達128-bit的位寬,因此,內存帶寬是單通道的兩倍,因此:
雙通道DDR266的帶寬為133×2×64/8×2 = 4.2GBps
雙通道DDR333的帶寬為166×2×64/8×2 = 5.4GBps
雙通道DDR400的帶寬為200×2×64/8×2 = 6.4GBps
提醒,在顯卡選購時,不要只看顯存的大小,還要注意顯存位寬這個因素,除非有特殊需求,64bit顯存的顯卡是不建議遊戲玩家購買的。
在瞭解一些相關的重要知識之後,我們將通過詳細的測試向大家展示內存帶寬的奧秘。對於不同的CPU平台,內存帶寬與內存延時的搭配上,有很多學問。
單説來:1、CPU設定為166MHz外頻(333MHz前端總線)、DDR運行於DDR333模式;2、CPU設定為166MHz外頻、DDR運行於DDR400。1模式的方案更好。所以,無論在何種情況下,我們都建議nForce2用户將"Memory Frequency"設定為"Sync(同步)"。事實上,同樣的情況也出現在ALi MAGiK1和SiS745這兩款芯片組上。相反:DDR333在不同步時,性能反而不如DDR266同步,好在它們的市場份額並不大。

內存帶寬矛盾

熟悉內存優化的朋友一定知道內存延時(CL值)的重要性,然而如今大多數DDR內存都難以運行在CL=2的模式下,特別在提高其工作頻率的情況下。很多DDR266內存能夠在266MHz下穩定運行於CL=2,也可以在333MHz下穩定運行於CL=2.5,同樣的情況也出現在DDR333內存中。這就帶給我們這樣一個矛盾,究竟應該提高內存頻率還是縮短內存延時。
為此,分別選擇了AMD和Intel的平台進行測試。為了凸現出內存帶寬的重要性,我們特意將CL=2時的內存頻率低於CPU外頻,這樣的數據更有評判價值。
從測試結果來看,AthlonXP平台顯然對於內存延時更加敏感。對於前端總線並不高的AthlonXP平台而言,我們認為DDR333+CL2的性能肯定在DDR400+CL2.5之上,因此建議大家在可能的情況下優化CL延時。至於I865PE平台,畢竟Pentium4還是對內存帶寬相當飢渴,此時自然應該儘可能地保證內存頻率,而犧牲內存延時 [1] 

內存帶寬匹配問題

細心的朋友可能會發現,在品牌機的廣告中對於內存的規格往往只粗略標註“DDR 256MB”或“DDR2 356MB”字樣,對於內存頻率的重要指標(如“DDR 400”)卻是猶抱琵琶半遮面,是廠家忘記了嗎?那這種頻率/帶寬上的差異又會給我們帶來什麼樣的影響呢?
帶寬是影響CPU和內存數據交換的關鍵因素,要讓兩者發揮最佳性能,CPU的外頻總線帶寬最好與內存相匹配。
對於Intel主流處理器而言,CPU前端總線帶寬=前端總線頻率(FSB)×64位總線位寬÷8。比如,外頻為133MHz的P4 CPU的FSB為533MHz帶寬為533×64÷8=4.2GB/s。
小知識:相對於Intel的CPU提到的前端總線,AMD的處理器已經沒有了前端總線的概念,因為其內存控制器是集成在處理器內部的,而Intel平台則還是在主板芯片組上。
內存的頻率和帶寬的關係可以用下面的公式來計算:內存帶寬=內存倍速×內存頻率×內存總線位寬÷8(SD內存倍速=1,DDR/DDR2內存倍速=2,雙通道DDR內存倍速=4)。如DDR400的帶寬為:2×200×64÷8=3.2GB/s。
大家根據上面給出的計算方法,應該可以很簡單就找到適合自己CPU的內存,內存帶寬必須大於或等於CPU所需帶寬,沒有瓶頸才能發揮CPU的性能。
品牌機多采用FSB 533MHz的CeleronD 340、FSB 800MHz的Pentium4 560和Pentium D820,而需要的內存帶寬分別 為4.2GB/s、6.4GB/s和6.4GB/s。根據觀查,當前低端的品牌機通常採用DDR266的內存,中端多采用DDR333的內存,而高端則採用DDR400的內存。前兩種的品牌機都會造成計算機不同程度的性能下降。
Intel的CPU,從P4開始就對內存帶寬有一定要求,為什麼當年Intel非要推RamBUS來搭配P4?就是因為SDRAM和DDR RAM都不足以滿足P4的需求。具體説一下,FSB為533的P4(外頻為133),數據帶寬需求為4.3GB/S(可以這麼粗略估算,CPU帶寬=FSB×8),FSB800的P4帶寬需求為6.4GB/s。而同時期的DDR 400能提供的帶寬也只有3.2GB/s(所以DDR400又叫PC3200內存,就是以帶寬命名的),DDR266帶寬為2.1GB/s,DDR333帶寬為2.7GB/s,可見單根DDR內存滿足不了FSB800的P4的需求,當CPU要數據時內存卻傳不過來足夠的數據,造成CPU閒置。所以Intel費勁功夫硬性推廣RamBUS來搭配自家的P4。但無奈RamBUS成本和產能都擺在那裏,成了曲高和寡的東西。不得已Intel捨棄850芯片組,重新推出的支持SDRAM的845芯片組來搭配P4,早期買P4的可能就是這種主板,其實此時P4的性能被內存制約了。包括後來出的支持DDR單通道內存的845D、848等等芯片組,都沒有完美解決問題。
後來出現了支持“雙通道”的865芯片組才解決了問題,雙通道的DDR266帶寬正好滿足FSB533的P4,而雙通道的DDR400則滿足了FSB800的P4。這個規律可以簡單的推算為內存頻率*2=FSB頻率。如DDR 400的雙通道內存可以滿足FSB800的CPU,DDR2 533的雙通道內存可以滿足FSB1066的CPU,DDR2 667的內存雙通到可以滿足FSB1333的CPU,DDR2 800內存雙通就可以滿足FSB1600。
酷睿CPU,低端的仍舊是FSB800的(肉羊420、E2140、E4300等),此時一根DDR2 667的內存還滿足不了CPU的需求(如果超頻到800也可以),而1根DDR2 800的內存則正好能滿足需求(或者2跟DDR400內存組雙通道也可以,不過極少有這種主板)。 如果進行超頻,比如E2140,當CPU外頻從200超到266,FSB為1066,此時雙通道的DDR2 533可以滿足帶寬,超頻到333外頻時則雙通道的667可以滿足帶寬,超頻到400外頻時,此時FSB已是1600了,則只有雙通道的DDR2 800內存才能滿足CPU的需求。
由此可見,如果不超頻,搭配FSB800系列,最好起步就是單根800的內存,如果購買的是FSB1066或1333的U,單根內存就徹底沒法滿足要求了,最好上雙通道。如果還打算超頻,比如大家夢寐以求的400外頻,則最好一次就購入2條800的內存組成雙通道。否則即使CPU頻率上去了,實際使用中還是會因為內存帶寬不足而拖CPU的後退。 800內存和667內存幾乎一個價,所以就不要再考慮667內存了。
如果不知道自己的系統到底cpu和內存帶寬是多少,可以運行一個叫EVEREST的軟件,在“主板”-“主板”下可以查到2者的帶寬情況。只要內存帶寬高於前端總線(FSB)帶寬就可以了。
部分CPU的FSB
FSB800賽揚4XX系列,奔騰E2XXX系列,酷睿E4XXX系列,還有很老的奔騰D系列。
FSB1066部分E6XXX系列(6300/6400/6500/6320/6420),E7XXX系列(7200/7300),X6(X6800),4核的Q6XXX系 列(6600/6700)。
FSB1333部分E6XXX系列(6550/6750/6850),E8XXX系列(8100/8200/8300/8400),4核的Q9XXX系列(9100/9300/9550)/QX9XXX(9650)/QX6XXX(6850),
補充:發現老有DIYer選用E7200/E8300之類CPU,卻只搭配1根DDR2 800內存,這樣會嚴重拖累系統的。請裝機時注意避免。
注:對於AMD的CPU,因為內部整合了內存管理器,所以不需要經過北橋來讀取內存數據,而是CPU直接讀取數據,因此不像Intel的CPU這麼需要強調帶寬搭配問題,一般可以用單條2G DDR2 800來裝機。

內存帶寬發展

CPU架構是整個PC系統中的核心部分,CPU架構性能的提升不僅僅需要提升CPU的主頻。CPU和系統主內存的數據帶寬對整個CPU架構的執行效能都非常關鍵。對於Pentium 4架構來説,內存控制器是集成在MCH芯片內部,CPU需要通過MCH芯片中的內存控制器和內存實現數據交換。那麼,CPU和內存的數據帶寬受到兩個因素的限制:CPU和MCH芯片之間的數據帶寬、MCH芯片和內存的數據帶寬。兩者無論任何一邊成為瓶頸,都會影響整個系統效能。
對於Intel平台來説,CPU、MCH芯片、內存的數據帶寬對於內存性能很重要
CPU和MCH芯片之間的數據帶寬主要是由系統FSB決定:總線位寬(bit)×FSB頻率(MHz),得到的單位為bit/s,如果要得到Byte/s的單位,還需要÷8。例如,FSB為800MHz,CPU和MCH的數據帶寬就為64bit×800MHz÷8=6.4GB/s;同理FSB為1066MHz,CPU和MCH的帶寬就約為8.5GB/s。
Intel CPU最高FSB為1066MHz,當然1333MHz FSB的Core 2 E6850已經發布,不過距離上市還有一段時間。同理,MCH芯片和內存的數據帶寬也很關鍵,這個帶寬主要是由總線位寬(bit)×內存頻率÷8所得,例如DDR 2 667,帶寬即為64bit×667MHz÷8≈5.3GB/s,如果是雙通道內存,還得×2,即雙通道DDR 2 667內存數據帶寬為10.6GB/s [2] 
CPU與內存帶寬 CPU與內存帶寬

內存帶寬比較


DDR
DDR 2
最高時鐘頻率(單位MHz)
533(非標準)
1066(非標準)
數據帶寬(GB/s)
4.26GB/s
8.5GB/s
芯片封裝
FBGA等
TSOP Ⅱ
工作電壓
2.5V
1.8V
最高物理Bank
4
8
最高邏輯Bank
4
8
數據預取(bit)
2
4
通過上面的表格,很明顯,DDR2的工作電壓比DDR低近30%,功耗也能相應下降大約50%了。採用FBGA等CSP方式封裝,減小了模組尺寸,並提高信號完整性,它增加了各模塊之間的空氣流動空間因而提高了熱性能和可靠性。綜合來看,更容易達到最高的頻率。廠商等不及動作太慢的JEDEC,自行推出了DDR1066的產品。這種產品單條即有8.5GB/s的帶寬,相當於雙通道DDR 533。
由於核心頻率和外部頻率的倍進關係,而我們又是以外部頻率作為衡量內存時鐘頻率的標準,因此同頻DDR 2內存和DDR內存相比,數據傳輸率是一樣的。
僅僅是頻率上的提升,頂多算個“DDR.改”,談不上“DDR 2”。DDR2的重大改進之處就在於數據預取從DDR的2bit提升為4bit。所謂2bit預取,可以理解為內存核心向外部I/O緩衝傳遞一次數據,可供外部I/O傳輸兩次的量。而4bit預取,就是內存核心向外部I/O緩衝傳遞一次數據,可供外部I/O傳輸4次的量。
內存芯片的頻率也有芯片核心頻率和外部頻率兩種:在DDR時代,這兩個頻率是相同的;但在DDR2時代,核心頻率就變成了外部頻率的一半。這是為什麼呢?因為DDR的2bit預取,核心一次傳輸的數據可供外部I/O緩衝傳輸2次,而數據以DDR方式傳輸,數據傳輸是CLK時鐘的上下沿觸發,因此外部時鐘頻率與核心頻率保持一致。而4bit預取就不一樣了,核心一次傳輸數可供外部I/O緩衝傳輸4次,同樣使DDR方式傳輸,外部頻率也要是核心頻率的兩倍才行。
DDR3與DDR2內存帶寬比拼
提升帶寬是DDR3內存的核心使命,這一點無疑是DDR3最為突出的PC使命,簡單地説,DDR3面世就是為了進一步地提升內存帶寬,為FSB越來越高的CPU提供足夠的匹配指標。DDR2內存其頻率需要可以達到1066MHz這樣的極端頻率,但它的良率及成本都不理想,這種玩家級的產品沒法進入到市場主流。要用低成本切入到更高的頻率的話,新一代的解決方案必將出台,這就是DDR3內存了。從技術指標上看,DDR3內存的起跑頻率就已經是在1066MHz了,儘管延時參數方面沒法與DDR2內存相抗衡,但是將來推出的1600/2000MHz產品的內存帶寬肯定大幅度拋離DDR2內存,以DDR3 2000MHz為例,其帶寬可以達到16GB/s(雙通道內存方案則可以達到32GB/s的理論帶寬值),所以將來DDR3內存肯定成為用户唯一的高帶寬選擇。其實DDR3內存提升有效頻率的關鍵依然是舊招數,就是提高預取設計位數,這與DDR2採用的提升頻率的方案是類似的。我們知道,DDR2的預取設計位數是4Bit,也就是説DRAM內核的頻率只有接口頻率的1/4,所以DDR2-800內存的核心工作頻率為200MHz的,而DDR3內存的預取設計位數提升至8Bit,其DRAM內核的頻率達到了接口頻率的1/8,如此一來同樣運行在200MHz核心工作頻率的DRAM內存就可以達到1600MHz的等值頻率,這種“翻倍”的效果在DDR3上依然非常有效。如果説2006年是CPU雙核元年的話,那麼2007年則可以説是PC的功耗年,因為2007年 有太多關係功耗性能比的宣傳,從環保角度去看,降低功耗對業界是有着實實在在的貢獻的,全球的PC每年的耗電量相當驚人,即使是每台PC減低1W的幅度,其省電量都是非常可觀的。DDR3內存在達到高帶寬的同時,其功耗反而可以降低,其核心工作電壓從DDR2的1.8V降至1.5V,相關數據預測DDR3將比現時DDR2節省30%的功耗,當然發熱量我們也不需要擔心。就帶寬和功耗之間作個平衡,對比現有的DDR2-800產品,DDR3-800、1066及1333的功耗比分別為0.72X、0.83X及0.95X,不但內存帶寬大幅提升,功耗表現也比上代更好 [3] 
提升帶寬是DDR3內存的核心使命 提升帶寬是DDR3內存的核心使命
1、邏輯Bank數量
DDR2 SDRAM中有4Bank和8Bank的設計,目的就是為了應對未來大容量芯片的需求。而DDR3很可能將從2Gb容量起步,因此起始的邏輯Bank就是8個,另外還為未來的16個邏輯Bank做好了準備。
2、封裝(Packages)
DDR3由於新增了一些功能,所以在引腳方面會有所增加,8bit芯片採用78球FBGA封裝,16bit芯片採用96球FBGA封裝,而DDR2則有60/68/84球FBGA封裝三種規格。並且DDR3必須是綠色封裝,不能含有任何有害物質。
3、突發長度(BL,Burst Length)
由於DDR3的預取為8bit,所以突發傳輸週期(BL,Burst Length)也固定為8,而對於DDR2和早期的DDR架構的系統,BL=4也是常用的,DDR3為此增加了一個4-bit Burst Chop(突發突變)模式,即由一個BL=4的讀取操作加上一個BL=4的寫入操作來合成一個BL=8的數據突發傳輸,屆時可通過A12地址線來控制這一突發模式。而且需要指出的是,任何突發中斷操作都將在DDR3內存中予以禁止,且不予支持,取而代之的是更靈活的突發傳輸控制(如4bit順序突發)。
4、尋址時序(Timing)
就像DDR2從DDR轉變而來後延遲週期數增加一樣,DDR3的CL週期也將比DDR2有所提高。DDR2的CL範圍一般在2至5之間,而DDR3則在5至11之間,且附加延遲(AL)的設計也有所變化。DDR2時AL的範圍是0至4,而DDR3時AL有三種選項,分別是0、CL-1和CL-2。另外,DDR3還新增加了一個時序參數——寫入延遲(CWD),這一參數將根據具體的工作頻率而定 [4] 
參考資料
  • 1.    張國懷. DDR內存帶寬充足了KingMax DDR 400內存[J]. 電子測試, 2002(10).
  • 2.    拳頭. 內存帶寬意味着什麼?[J]. 計算機應用文摘, 2003(23):64-64.
  • 3.    鄧月華, 劉嘉勇, 胡天麟. 實時TCP報文還原中的內存管理[J]. 兵工自動化, 2006, 25(3):50-51.
  • 4.    黃健. 內存也玩固件改造——刷新SPD參數提升內存性能[J]. 微型計算機, 2006(36):156-157.