此文發(fā)表于2019年4月16日
前言:
內(nèi)存頻率、內(nèi)存帶寬、內(nèi)存速度、內(nèi)存控制器......這些專業(yè)詞語不少讀者已經(jīng)耳熟能詳,但如果再深入一些,如:CPU的內(nèi)存控制器會限制內(nèi)存頻率嗎?可能就不是所有人都能答上來了,對于沒有任何基礎的初學者,這樣的問題足以把人弄得七葷八素,到了東南找不到西北。
今天我們就試圖梳理一下它們的關系,去探索這個問題:內(nèi)存的頻率到底是誰說了算,是CPU還是主板?
此文涉及一些專業(yè)知識,比較枯燥,快速閱讀只需看文中的結(jié)論(綠色文字)即可。
正文
不少用戶選好了CPU、主板、顯卡,遇到內(nèi)存卡殼了。
B360主板上寫的支持DDR4-2666,i3-8100的內(nèi)存控制器是DDR4-2400的,那買2666有用么?
Z370主板可以支持DDR4-4133,但i7-8700K、i7-9700K 支持的最高內(nèi)存規(guī)格是DDR4-2666,那會有瓶頸嗎,買高頻內(nèi)存行不行呢?
圖一
內(nèi)存的頻率聽誰的話?是CPU、主板還是內(nèi)存自己
確實,看intel 官網(wǎng)介紹,i3-8100支持的最大內(nèi)存頻率為DDR4-2400,第八代九代酷睿i5\i7\i9(如i7-8700K,i7-9700K、i9-9900K等),其支持的最大內(nèi)存頻率是DDR-2666。
圖二
內(nèi)存帶寬是內(nèi)存在單位時間內(nèi)讀取/存儲數(shù)據(jù)的數(shù)據(jù)量(速率),通俗的說法就是內(nèi)存速度。
內(nèi)存帶寬和現(xiàn)實中的高速公路類似,每秒能通行的汽車數(shù)量。車道越多,車速越快,那么通車能力越大。
可將內(nèi)存位寬看做高速路上的車道,64bit相當于64車道。
可將內(nèi)存頻率看做汽車的速度
則有內(nèi)存帶寬公式:
內(nèi)存帶寬=內(nèi)存等效頻率X內(nèi)存位寬/8
(注:此公式為內(nèi)存帶寬的理論最大值)
由于DDR\DDR2\DDR3\DDR4的內(nèi)存位寬均為64bit
因此:
單通道DDR4-2400內(nèi)存帶寬=2400X64/8=19200MB/s=19.2GB/s
雙通道則為:19.2X2=38.4GB/s
仔細的讀者對照圖二,發(fā)現(xiàn)不對了,intel公布的最大帶寬是37.5GB/s呢?你算出來是38.4GB/s,難道公式有誤?原來,我們常?!巴祽小保?GB=1000MB,實際1GB=1024MB,準確的是38400/1024=37.5GB/s。有趣的是,如果你有興趣到intel官網(wǎng)上查看以前的處理器內(nèi)存帶寬,會發(fā)現(xiàn)Intel也在“偷懶”。
現(xiàn)在回到這個問題:由于內(nèi)存控制器在CPU內(nèi)部,看起來內(nèi)存的運行速度是CPU說了算,主板要靠邊站,既然intel說了i3-8100的最大內(nèi)存帶寬只有37.5GB/s(對應DDR4-2400內(nèi)存),那買DDR4-2666還有用么?
從表面上看是CPU說了算
常見平臺i3-8100+B360M,無論你用哪種內(nèi)存,BIOS里面最高就只有DDR4-2400(下圖)
圖三
換用i7-8700,BIOS里面將會有DDR4-2666的選項
圖四
從圖三和圖四看確實有些迷惑性,B360主板支持DDR4-2666,內(nèi)存也是2666MHZ的,但只能當2400內(nèi)存使用,換成i7-8700就支持到DDR4-2666了,這看起來內(nèi)存頻率是CPU說了算(由CPU內(nèi)部的內(nèi)存控制器決定)。
實際上:
在內(nèi)存體質(zhì)允許的情況下,內(nèi)存的頻率是主板說了算。只要主板支持,CPU的內(nèi)存控制器規(guī)格將形同虛設。最大內(nèi)存帶寬僅僅是一個標準,只保證在這個范圍內(nèi)是安全穩(wěn)定的。超過這個標準當然也是可以的,但如果超速翻車閃了腰,折了腿,就不能到intel公司去要賠償,不給賠償還要一哭二鬧三上吊,哪個公司都怕,訂了標準就分清了責任。
圖三和圖四,B360主板的BIOS識別到處理器型號后,會遵循intel的規(guī)范,允許的內(nèi)存最高頻率為DDR4-2400,因此在BIOS里面是看不到2666的選項,如果換用i5-8400/i7-8700等型號,主板將會允許內(nèi)存的最高頻率為DDR4-2666,其實質(zhì)還是主板說了算。
在H310/B360平臺上,
當內(nèi)存頻率超過CPU的內(nèi)存控制器標準的,都將會降頻(如:i3-8100+B360+DDR4-2666,都會降頻到2400使用)。
反之,當內(nèi)存頻率低于CPU內(nèi)存控制器標準的,則有機會超頻(如:i7-8700+B360+DDR4-2400,一般都能超頻率到2666使用)。
但是,如果主板允許(如Z370),那么就會出現(xiàn)下面的情況:
內(nèi)存控制器對內(nèi)存說:“你去把廚房里的碗洗了!”
內(nèi)存說:“以前B360任公司總裁的時候,我實際也不歸你管,只不過你狐假虎威,頤指氣使,我忍了,昨天B360已經(jīng)被董事會開除了,我直接聽命于新任總裁Z370,你還是自己去洗吧!”
此時,即使CPU內(nèi)存控制器規(guī)格小于內(nèi)存頻率,也不會有瓶頸。(注:追求性價比的用戶,非高端配置,不能為了超內(nèi)存頻率,去選擇昂貴的Z370主板)
實測驗證:
圖五
測試解讀:
1、內(nèi)存帶寬有理論值和實際值之分,實際帶寬會小于理論帶寬。DDR4-2400雙通理論帶寬為37.5GB/s,實際讀寫為32810/1024=32GB/s,35052/1024=34GB/s,達到了理論值的85-90%。
2、隨著內(nèi)存頻率的提升,讀寫速度都隨之提升,很快,在達到DDR4-2933的時候,讀寫均超過了i3-8100規(guī)定37.5GB/s,之后一路上升,完全無視安全標準。這說明,選購高頻內(nèi)存,無需擔心內(nèi)存控制器會導致瓶頸。
3、在超頻4000MHZ的時候,將標準電壓提升到了1.4V,為了達到4133MHZ的主板允許極限,更是將電壓提升到了1.47V,警告:超過1.4V后,電壓值會變成紅色,內(nèi)存損壞的風險大大增加。
圖六
超頻到DDR4-4133后,內(nèi)存的讀、寫和復制性能都遠遠超出了intel i3-8100內(nèi)存控制器規(guī)格?,F(xiàn)在的BIOS都聰明,只需調(diào)整DRAM電壓,BIOS將自動幫你調(diào)試CPU SA/IO電壓,并且?guī)湍阕詣舆m配內(nèi)存時序。(圖六下面的紅框中,可以看到內(nèi)存時序增大了)
CPU英雄氣短,對內(nèi)存實際帶寬影響甚微
CPU不服氣了,什么,我的話誰敢不聽?實際上,也不能說和CPU完全無關,雖然內(nèi)存頻率是主板說了算,但CPU的的性能不能過于低下,否則內(nèi)存的實際帶寬將受到嚴重局限(但并不影響理論值)。
實測驗證:
圖七
測試解讀:
將i3-8100關閉兩個核心,模擬成高頻賽揚,內(nèi)存實際帶寬也不會明顯下降,而目前處理器的最低檔次就是賽揚雙核。只有降低到單核的時候,CPU成為嚴重瓶頸,內(nèi)存讀取速度像斷線的風箏一般掉下來,可見,假設CPU不高興要怠工,導致嚴重的瓶頸,那主板把內(nèi)存頻率支持到再高也沒用。但是,現(xiàn)在已經(jīng)沒有單核。
內(nèi)存頻率是主板說了算的根本原因
內(nèi)存本身不能產(chǎn)生頻率,其頻率源泉來至于主板上的時鐘發(fā)生器。如果CPU是大腦,時鐘發(fā)生器則相當于心臟,它產(chǎn)生的數(shù)字脈沖信號震蕩才讓電腦“活”了起來,CPU、內(nèi)存、總線的頻率都來至于時鐘發(fā)生器。部分型號的CPU內(nèi)置了時鐘發(fā)生器供自己使用,但內(nèi)存頻率仍然來至于主板上的時鐘發(fā)生器(目前很多集成在主板的PCH芯片組內(nèi))。因此,內(nèi)存的工資都是主板發(fā),它當然是聽命于主板,而實測證明,CPU的內(nèi)存控制器不會把內(nèi)存頻率控制住,它并沒有權(quán)利克扣內(nèi)存的工資。
注:我們常說的內(nèi)存頻率,通常是指內(nèi)存的等效頻率,如DDR4-3200,其等效頻率是3200MHz,但內(nèi)存等效頻率并不是內(nèi)存核心頻率和工作頻率,此非本文內(nèi)容,且略過。