內存頻率是怎麼算出來的?2133MHz這麼奇怪的數字是怎麼來的?

中央處理器 長江 老狼zhihu 2019-06-20
內存頻率是怎麼算出來的?2133MHz這麼奇怪的數字是怎麼來的?

內存的頻率十分奇怪,有的是100的倍數,還有些xx33啊,xx66什麼的。排列也是十分的清奇:

內存頻率是怎麼算出來的?2133MHz這麼奇怪的數字是怎麼來的?

我們仔細觀察這些可選的頻率分佈,會發現它們的間隔時鬆時緊,十分的怪異。

內存頻率的這些數字是怎麼來的呢?我們來一起抽絲剝繭,來上溯到這一切的源頭,位於主板上的一顆小小的晶振。

晶振和BCLK

主板上有好幾個晶振,其中最重要的就是XTAL:

內存頻率是怎麼算出來的?2133MHz這麼奇怪的數字是怎麼來的?

它提供了基準的24MHz頻率。它接入南橋PCH的嵌入式時鐘控制器ICC(Integrated Clock Control),經過其中的PLL和差分器,輸出100MHz的時鐘信號CLKOUT_CPUBCLK_PIN:

內存頻率是怎麼算出來的?2133MHz這麼奇怪的數字是怎麼來的?

大黑框裡面就是ICC

這個CLKOUT_CPUBCLK_PIN就是大名鼎鼎的BCLK:

內存頻率是怎麼算出來的?2133MHz這麼奇怪的數字是怎麼來的?

注意我選擇的是不支持超頻的Standard Profile,如果是想要超頻,需要BIOS選擇Overclock profile:

內存頻率是怎麼算出來的?2133MHz這麼奇怪的數字是怎麼來的?

BIOS可以通過調節BCLK PLL來調整輸出給CPU的BCLK,可以以1MHz的步進進行調節。這些資料來源於PCH Z270的芯片手冊(datasheet)[1]

BCLK也叫做基頻(Base Clock,BCLK),它像雪山上留下的第一股泉水,從南橋流出,匯入CPU,從此不斷分叉,滋養了其中大多數IP,如內核、核顯,也包括今天的主角內存控制器:

內存頻率是怎麼算出來的?2133MHz這麼奇怪的數字是怎麼來的?

它是基準頻率,其他的頻率都是在它的基礎上變換出來的:

內存頻率是怎麼算出來的?2133MHz這麼奇怪的數字是怎麼來的?

CPU中的各個器件並不是工作在100MHz上,各個IP有自己的倍頻(Multiplier),來為自己服務。例如CPU內核的頻率就是這樣計算的:

CPU主頻 = 基頻BCLK × 倍頻

舉個例子,標稱3.5GHz的CPU,它的基頻是100MHz,內核的倍頻是35,算下來就是

100 × 35 = 3500MHz=3.5GHz

十分簡單,是不是?

慢著,既然內存控制器的頻率來源於BCLK,那為什麼還有2133這些奇怪的頻率呢?

內存頻率的Radio

部分源於PC漫長的歷史中,內存頻率來源於CPU頻率,100MHz和133MHz這兩個頻率被DRAM保留且被髮揚廣大。從此頻率基本都以它們起跳。所以內存頻率有兩種基頻:100MHz模式和133MHz模式。為了得到它們,就需要一個叫做:BCLK到內存頻率轉化率Radio的東西。BIOS負責設置它。一般這個選項是自動設置的,用戶不需要關心,如果需要手動確定頻率,則需要填這個值。它在不同廠商BIOS裡面的名字各不相同,但意思是一樣的,我們來看兩種:

內存頻率是怎麼算出來的?2133MHz這麼奇怪的數字是怎麼來的?

這個叫做CPU bus speed : DRAM speed,通俗易懂

內存頻率是怎麼算出來的?2133MHz這麼奇怪的數字是怎麼來的?

各個名字比較接近Spec,估計是BIOS工程師命名的(逃

一般這個Radio可以選擇兩種:

100 : 100

100 : 133

也就是DRAM基頻和BCLK一致,或者給換成133MHz。

好了,有了這兩個基頻,內存的最終頻率和CPU一樣,也是:

內存頻率 = 內存基頻 × 倍頻

幾道計算題

好了,基本知識講解到這裡結束,我們現在測驗!哈哈,同學們別怕,我會和你一起做題的,包會哈。

Q:1400MHz怎麼來的?

A:1400MHz = 100基頻 x 14倍頻 = 1400。很好,很完美。

Q:1333MHz怎麼來的?

A:1333MHz = 133基頻 x 10倍頻 = 1330!似乎哪裡不對啊,是不是有誤差還是可以四捨五入啥的呢?

Q:2133MHz怎麼來的?

A:2133MHz = 133基頻 x 16倍頻 = 2128?!更不對了,誤差好大啊?哪裡出了問題呢?

其實這個133MHz是個近似值,真實的值是133.3333333333....MHz,我們保留小數點後4位,重新計算一下後兩題,結果四捨五入到整數部分。

Q:1333MHz怎麼來的?

A:1333MHz = 133.3333基頻 x 10倍頻 = 1333

Q:2133MHz怎麼來的?

A:2133MHz = 133.3333基頻 x 16倍頻 = 2133

很有趣,不是嗎?還有更有趣的,看下面這個計算:

Q:2400MHz怎麼來的?

A:2400MHz = 100基頻 x 24倍頻 = 2400。

有什麼特殊的呢?其實還有另外

一個解:

A:2400MHz = 133.3333基頻 x 18倍頻 = 2400!

後記

青藏高原唐古拉山上的雪水,順著山脊潺潺流下,彎彎曲曲而清澈見底。我曾經走在它的旁邊,希望能夠隨著它一起向東,再向東,看看它在哪裡得到了力量,變成浩瀚莊偉的長江。

在工作時間,看到時鐘圖,總線圖,我總是有似曾相識的感覺。在那麼多枝杈的圖景中,一股神奇的力量也在醞釀,讓幾顆不起眼的晶振,驅動起如此複雜的系統,怎能說不是奇妙的事情?

相關推薦

推薦中...