基於10nm製程的Icelake在內核設計上有哪些提高?

在經歷了10nm製程難產的陣痛期之後,Intel基於10nm的Icelake冰湖處理器終於掀開了神秘的蓋頭。8月1日,首批11款(Sku)Icelake處理器被正式公佈:

基於10nm製程的Icelake在內核設計上有哪些提高?

6款U系列,5款Y系列。真是千呼萬喚始出來,它實際上Icelake並不是10nm第一代,CannonLake因為製程上的問題,只小規模供應低端市場,例如部分聯想低端本。如果我們忽略這款失敗的試水之作,Icelake可以說是被寄予厚望,在這一代,製程和CPU架構都做了改變。隨著產品的公佈,Icelake的改變也一併被公開:

基於10nm製程的Icelake在內核設計上有哪些提高?

這一頁裡面信息量很大,其他我們今後再講,本文更多的是關係架構的改變。Icelake內核架構Sunny Cove的更多技術細節慢慢越來越清晰了,今天我們就一起來了解一下Sunny Cove架構較前代有哪些改變,為了什麼,以及這些改變對banchmark數據的影響。

Sunny Cove架構

Skylake可以說是Intel最長壽的架構,自其在Skylake CPU上出現以來,4年間都只做了修修補補,進行了微調而沒有本質的變化。前幾代Nehalem,Sandybridge,haswell等前代tick、tock的節奏被完全放慢了下來,變成了四代的tick,tick,tick和tick。終於這一代tock來了,那就是Sunny Cove新架構。與以往Tock不同,這個Tock還夾雜了Tick,製程升級的同時架構也進行了升級。

基於10nm製程的Icelake在內核設計上有哪些提高?

這個新的SunnyCove到底帶來了那些改變呢?它的架構圖已經公佈:

基於10nm製程的Icelake在內核設計上有哪些提高?

總結下來就是Deeper,Wider和Smarter。其中Smart是指分支預測器被改善了,架構相對Skylake來說,更多的是面向Client也就是消費級市場,而不是服務器市場,進行了優化。這些比較模糊,不會告訴公眾細節,因為往往牽扯商業機密。而Deeper和Wider有明確的數據支撐,從中也可以體會CPU設計的精妙之處。

我們zoom in這個圖,先來看CPU前端:


基於10nm製程的Icelake在內核設計上有哪些提高?

正經的指令decode線在中間,可以看到32KB的指令cache(i-cache)維持不變,decode還是在每個時鐘週期最大解碼5個micro-ops,提供給micro-ops隊列(uop Queue)。

這裡要大致解釋一下什麼是micro-ops。現代複雜指令集(CISC)CPU,借鑑了精簡指令集(RISC)的思想,將一條指令拆解成數個類似RISC的精簡微操作:Micro-Ops。從這方面來講,CISC和RISC已經很大程度上融合了。那麼每個X86指令會被分解成多少個micro-ops呢?這和該指令的複雜程度相關,很簡單的指令甚至只有一個micro-ops,一般3個左右,複雜的可以4個以上。

Microcode的部分也沒有變化,也是最大提供4個micro-ops。變化的是最右面的micro-ops cache,它的大小從1535變成了2304,擴大了50%!它可以提供6個micro-ops給micro-ops隊列。增大的micro-ops cache可以提供更快的micro-ops給隊列,這就對隊列的深度提出了要求,於此相對,micro-ops隊列深度也從224,提高到了352,也提高了50%多。

再來看CPU後端:

基於10nm製程的Icelake在內核設計上有哪些提高?

更大的隊列跟多的Execute Port,EP從8個變成了10個,被分成了4組。4個ALU EP,2個存儲EP和4個AGU EP。

多了一組ALU EP給AVX-512,共兩組。這裡要強調一下AVX-512,儘管服務器至強CPU在Skylake上就已經支持AVX-512,但在Client端,這是第一代支持它(不算短命的CannonLake)。AVX-512相對AVX-256對加解密和人工智能,尤其最近大熱的Deep Learn有很大幫助。Intel提供BL Boost庫給開發者,它可以接入Open Vino來提供透明的支持,這裡按下不表。

還多了一組EP給AGU,用來做Store(存儲)AGU。相對Skylake的2個load,1個store,現在是2個load,2個store。這實際上就是對Client的優化,增加了store,而不是在像server一樣偏重於load。於此相對L1的數據cache(data cache)進行了增加,從skylake的32KB直接變成了48KB,也增加了50%。於此相對,L2 cache從256KB倍增成為了512KB。

有同學看到這裡說,原來提高性能就是cache增大啊,那麼為什麼不加的更大呢,是成本的考慮嗎?不完全是,實際上加大Cache,因為索引變大,延遲會相應增加,SunnyCove就為此付出了代價:

基於10nm製程的Icelake在內核設計上有哪些提高?

L1和L2的Cache延遲都增大了。但增大延遲的同時,Cache因為大了命中率也會增加,這在另一方面會減小整體延遲。所以增大還是減小,增大多少,這個要架構仔細的權衡。很明顯,SunnyCove架構師認為增大L1/L2的cache,儘管帶來它們的延遲增加,但對系統整體性能還是有提高的。

Anandtech網站總結出來一張表,比較了Intel各代,以及AMD的Zen直接這些參數的對比關係,十分直接和方便:

基於10nm製程的Icelake在內核設計上有哪些提高?

那麼Sunny Cove這些改變對性能到底有多少提高呢?

Benchmark

根據Intel的官方數據,Icelake較Skylake IPC(Instruction per Cycle)提高了18%:

基於10nm製程的Icelake在內核設計上有哪些提高?

這裡有個問題,Skylake是4年前的CPU,如果把18%攤到4年,平均每年4.5%。並不令人印象深刻。有沒有更多數據呢?幸喜知名硬件評測網站Anandtech做了詳細評測[1]。依靠該網站的知名度,它的編輯得以測試最新的只有15W的1065G7:

基於10nm製程的Icelake在內核設計上有哪些提高?
基於10nm製程的Icelake在內核設計上有哪些提高?

測試基於對CPU性能權威的SPEC測試,對比了9900K和AMD的3900X。詳細內容大家可以閱讀參考資料1,這裡只貼上綜合分數:

基於10nm製程的Icelake在內核設計上有哪些提高?

納尼,還不如前一代?這是因為9900K TDP達到了95W,15W的它直接拼性能顯失公平。比同樣功耗的8代8550U就可以看出端倪,int高了29%,浮點高了34%。看了Intel的18%還是比較保守的。我們來看看比較公平的每GHz性能:

基於10nm製程的Icelake在內核設計上有哪些提高?

結果還是不錯的。這是Spec 2006,最新的SPEC 2017的結果:

基於10nm製程的Icelake在內核設計上有哪些提高?

結果較9900K,int提高了14%。整體提高了19%之多。

後記

Icelake最大的提高在於其Gen11的內置GPU,尤其是其中帶Iris的sku。關於它的架構,我們下次再講。


分享到:


相關文章: