這兩天稍微空閑了一點,準備回答幾個受邀的問題。本來打算回答這個問題:

DDR4下,內存運行在更高頻率時,cpu是如何調整以適應內存的??

www.zhihu.com
圖標

照例看看別人的回答,如果有人回答的很好很全面,我就不必獻醜了。 知友在下面貼了b站的一個視頻:板廠沒有說的秘密:內存頻率的選擇與牙膏廠桌面平台的各種差異

在這個視頻裡面,Toppc透露出幾個「大秘密」,我總結一下:相同Stepping的CPU,8代CPU與7代CPU只是換了個馬甲而已!!!Stepping是挑選CPU的關鍵!Stepping是Intel內部對CPU核心版本的定義!

這幾個「秘密」是完全錯誤的。看到下面評論區開始據此聲討牙膏廠的罪大惡極種種,我深感到科普的必須。Stepping這個標記CPU成熟度的數字,對我們這些業內人士來說是最基本的概念,看來還有很多人不知道它是什麼,造成了極大的誤解。今天我們就來一起了解一下什麼是Stepping,作為消費者需不需要關心Stepping。

Stepping(步進)

Stepping的中文名字叫做步進,中文名字容易造成誤解,我還是盡量避免使用中文。Stepping在哪裡看呢?最方便的就是CPU-Z了:

中文版是這樣:

注意我用紅框和綠框分別表了Stepping(步進)和Revision(修訂),他們一個是16進位的數,一個是名字,有一一對應的關係。後面我們講他們怎麼對應。

好了,那麼CPU-z是怎麼知道Stepping信息的呢?很簡單,通過一條特殊的CPUID指令:

簡單說就是EAX裡面填1,然後執行CPUID命令,如圖的關於CPU的信息就會被裝回EAX寄存器里。

這些信息裡面不但有Stepping,還有Family啊,等等信息。通過它,CPU-z通過查表就知道你的CPU是第幾代CPU等等。Stepping信息則可以參考Intel定期發布某種CPU的「Specification Update」文檔,舉個例子如參考資料1,16頁就有Stepping和名字的對應關係。Stepping的名字有Ax(A0,A1, A2...), Bx (B0, B1, B2...)等等。stepping和revision的關係就由這個表實現數字到字元串的轉化。

Stepping代表了什麼?

這個A0啊,B1啊表達了什麼意思?是不是如視頻說的它是內核的編碼呢?這是完全錯誤的,簡直可以說錯誤的離譜!

一個CPU經過RTL、綜合和流片後,要和BIOS一起來進行驗證工作。這個過程我們業內人士叫做Power-On。在Power-On的時候,那時CPU一般Stepping是A0,它實際上是掩模Mask的版本。A0 CPU一般問題很多,這些問題可以通過微碼(ucode)和BIOS裡面加各種w/a來修正。Power-On結束後,各種CPU的bug被歸結在一起,不少會被從硬體上修正,重新做一版CPU出來,它的Stepping就會升級一次。小的修正換小版本,如A0->A1->A2,大的修正換大的版本,如A2->B0等等。這個修正過的CPU再和BIOS等一起驗證,還會加入更多的測試需求,會發現新的問題,從而需要新的Stepping。

硬體錯誤經過不斷修正,Stepping也越來越大。經過這個不斷迭代的過程,CPU越來越好,也就可以上市了。所以大家這些普通用戶拿到的CPU的Stepping一般比較大,而我們這些BIOS從業者拿到的Stepping則有些很小。

如果你發現你手中的CPUStepping是Ax,可以負責任的說,你拿到的是工程樣片,包含很多Bug,不過你不一定試的出來罷了。

結論

通過上面的講解,你應該能得出結論。不管幾代CPU,都有個Ax到更高Stepping的過程,Stepping不是判斷CPU是不是牛的指標,而是Bug多不多的指標。8代CPU不是7代CPU在不同Stepping的馬甲,而是設計或者製程不同。切不可被誤導。

補充

有知友求證於toppc,他也作出了回復。因為比較忙,才草草看了他的回復。文風頗顯謙謙君子的作風,怪不得又這麼多擁躉,我不如也,看來本人還是要加強涵養才行。為此文字也做了些修改,去掉了攻擊性的句子,還是就事論事比較合適。如有冒犯toppc的地方,也請海涵。

但有些事實還是要釐清,正確錯誤不能混淆:

Q: 7600K和8350K是不是換馬甲的關係?

A: 並不是,在Intel的官網很容易查到它們:

7600K
8350K

一個是Kabylake內核,一個是Coffeelake內核,是換馬甲嗎?當然如果認為所有的14nm CPU都是」某種」意義上的換馬甲,那才正確。一般意義上的所謂換「馬甲」,是指產品是一個產線出來的,通過Fuse出來的各種SKU,這個動作發生在封測階段,可以參考這篇文章:老狼:CPU製造的那些事之一:i7和i5其實是孿生兄弟!?。而7600K和8350K顯然不是這種情況。如果我們開蓋看,也會看出明顯不同;BIOS程序處理的寄存器也有很多不同。

Q.為什麼會有U0這些stepping, Ax到U0這個也太長了吧?

A:U0並不是從A,B,C,D這樣一直改過去的。Intel最近幾年Stepping的命名規則發生了一些改變,Ax等還存在,成熟的U,E,R,L啊啥的變成了SKU的關係,它們才是真正的馬甲呢。

其他CPU硬體文章:

老狼:為什麼CPU的頻率止步於4G?我們觸到頻率天花板了嗎??

zhuanlan.zhihu.com
圖標
老狼:CPU製造的那些事之一:i7和i5其實是孿生兄弟!??

zhuanlan.zhihu.com
圖標
老狼:CPU製造的那些事之二:Die的大小和良品率?

zhuanlan.zhihu.com
圖標
老狼:為什麼晶圓都是圓的不是方的??

zhuanlan.zhihu.com
圖標
老狼:為什麼"電路"要鋪滿整個晶圓??

zhuanlan.zhihu.com
圖標
老狼:CPU能用多久?會不會因為老化而變慢??

zhuanlan.zhihu.com
圖標
老狼:為什麼CPU越來越多地採用硅脂而不是焊錫散熱??

zhuanlan.zhihu.com
圖標
老狼:為什麼Intel CPU的Die越來越小了??

zhuanlan.zhihu.com
圖標
老狼:破繭化蝶,從Ring Bus到Mesh網路,CPU片內匯流排的進化之路?

zhuanlan.zhihu.com
圖標
老狼:450mm的晶圓在哪裡??

zhuanlan.zhihu.com
圖標
老狼:什麼是TLB和PCID?為什麼要有PCID?為什麼Linux現在才開始使用它??

zhuanlan.zhihu.com
圖標
老狼:什麼是Speculative Execution?為什麼要有它??

zhuanlan.zhihu.com
圖標
老狼:為什麼不把南橋集成進CPU?CPU和南橋晶元中什麼資源最珍貴??

zhuanlan.zhihu.com
圖標
老狼:CPU底部的小塊是幹什麼用的?為什麼CPU這麼多電源引腳??

zhuanlan.zhihu.com
圖標
老狼:TDP是CPU的功耗嗎?TDP是固定不變的嗎??

zhuanlan.zhihu.com
圖標

歡迎大家關注本專欄和用微信掃描下方二維碼加入微信公眾號"UEFIBlog",在那裡有最新的文章。同時歡迎大家給本專欄和公眾號投稿!

用微信掃描二維碼加入UEFIBlog公眾號

參考資料:

[1]: download.intel.com/desi


推薦閱讀:
相关文章