1. 程式人生 > >Arm構架CPU:豈止於大

Arm構架CPU:豈止於大

微信公眾號 mindshare思享

 

本文翻譯自“Arm-Compatible CPUs Get Bigger” ,LinleyGwennap,並擴充套件

 

有的時候光大是不夠的。在最新一代移動SoC中,Apple和三星都擴大了其電晶體的數目以獲得超過其他對手的效能優勢。這些定製的CPU要比arm的大核更大。

不是大總是意味著好:儘管Apple的A11處理器有優異的功效和麵積,Samsung的Exynos 9810卻比標準的Cortex CPU要差一些。

今年早些時候Qualcomm出的845,是第一個實現arm新的DynamIQ構架的處理器,DynamIQ執行設計者將不同的CPU(比如大核和小核)放在同一個Cluster 裡面,DynamIQ CPU也包含私有的L2 cache,在DynamIQ之前L2 cache 是在同一Cluster的CPU之間共享的。這種改變需要重新佈局SoC同時增加了片上記憶體大小。

下圖顯示了這些最尖端的10nm CPU的多樣性。儘管這些都是arm相容的處理器,它們的芯片面積可能有10倍的差距,從Cortex-A53(華為10nm麒麟970上)的0.366mm2到Samsung Meerkat(10nm Exynos9810上)的3.43mm2. L2 cache從共享變成CPU私有使這種比較更復雜,但是Apple和Samsung的設計都比Cortex-A面積要大。

這種面積的優勢幫助Apple達到了Cortex-A73 2倍以上的IPC,單是Samsung只有大致67%的IPC優勢。

Samsung的設計顯示了最大的面積增加,3倍於上一代的Mongoose核。Apple的Monsoon只比A10裡的Hurricane CPU面積增加了15%。

Arm陣營最大的CPU也比Intel的Skylake核小的多,Skylake在Intel14nm工藝下有8.73mm2的面積(我們預計如果使用TSMC的10nm工藝,Skylake的面積為6.91mm2,這個也是Samsung的Meerkat的2倍多)。Intel最新的Kaby Lake和Coffee會繼續使用和Skylake一樣的10nm工藝。

 

Apple 加大SRAM

 

和往常一樣,Apple披露了很少的A11晶片裡CPU的資訊。對於A10,Apple在2個大核的基礎上增加了2個小核,類似於arm在mobile市場的big.LITTLE策略。對於A11,Apple更進一步地加入了4個小核,來增強支援低功耗任務的能力。新的Mistral核僅僅有0.54mm2的面積,所以額外的兩個核相對於A11晶片88mm2的面積來說只是增加很少的面積。

每個Monsoon核有64KB的指令和資料cache,另外,每個核有個512KB我們認為是私有指令cache的部分,類似的但是更小的結構也出現在A10 Hurricane的設計中。Apple叫它共享L2 cache,這使這個私有cache變成L1.5,但是我們更願意叫它私有L2 cache 和共享L3 cache.

A11保持了2個大核,而其他的競爭者是4個大核。儘管這看起來是個劣勢,但是一個Monsoon的效能趕得上2個高階CortexCPU 的效能,使SoC有類似的效能。Monsoon也大致有2倍於CortexCPU 的面積,所以總的CPU子系統有類似的面積。我們測試過A11子系統,2個Monsoon和4個Mistral核的面積為13.9mm2,而帶有4個Cortex-A75核4個Cortex-A55核的Snapdragon 845的面積為10.1mm2.

大多數的面積差距來自於A11大cache設計。我們計算到在在一個CPU Cluster裡總共9MB的共享SRAM,這個不包含額外的4MB SRAM的獨立系統cache(給GPU和其他計算引擎使用)。分析軟體發現了A11有8MB的L3 cache,所以額外的1MB可能是Mistral核之間共享的L2 cache, 或是給剩餘的SRAM做冗餘。不管怎樣,這些 SRAM佔用了4.8mm2的面積,而Snapdragon的845 2MB的共享L2 SRAM僅佔用1.3mm2的面積。額外的SRAM增強了A11的大型應用的效能,減少了需要更多功耗的DRAM訪問。

 

DynamIQ正改變SoC設計

 

去年12月華為發售了第一款使用麒麟970的手機,時間有些早而利用不到Arm新的DynamIQ CPU.這個SoC是一箇舊big.LITTLE設計的典範。如下圖所示,它包含兩個獨立的CPU Cluster。和A11類似,970採用TSMC的10nm工藝,因此面積也類似。

每個Cluster包含4個CPU,它們共享L2 cache。對於970,華為利用了10nm工藝的密度擴充套件了cache的大小。Cortex-A73 cluster包含了2MB的共享cache,而Cortex-A53 cluster使用1MB的共享cache. 這種方式的不足之處在於A73和A53 CPU之間的資料共享必須通過AMBA cache-coherence 匯流排來實現,這會比簡單的訪問本地cache的延遲要大很多。這種情況在將一個任務從大核遷移到小核會表現的更明顯。

相反,Snapdragon845 是第一個完全實現DynamIQ構架的晶片。這個處理器由Samsung 10nm工藝製造,3月在Galaxy S9裡量產(我們預估採用這個工藝的設計要比採用TSMC 10nm工藝的面積大3%)。Snapdragon 845有4個Cortex-A75核和4個Cortex-A55核。(通過Semicustom授權,Qualcomm將它叫Kryo385, 但是它還基本上是Cortex設計),這些CPU是前兩個支援DynamIQ技術的CPU,它們允許在同一個Cluster混合不同的CPU。

下圖顯示了845中8個共享L3 cache的CPU。每個A75包含一個256KB的私有L2 cache, 而每個A55包含一個128KB的私有L2 cache. 在一個Cluster的中心包含一個arm叫DynamIQ Shared Unit(DSU),它包含一個L3 cache控制邏輯和AMBA 匯流排控制器。這部分面積也包含L3 cache tag和其他SRAM。一個Cluster裡總的L2和L3 cache大小為3.5MB, 比麒麟970稍微大些。

 

Cache結構的變化使在新的Cortex設計和以前的Cortex CPU比較更困難。如上所述,845裡的Cortex-A75的面積是1.35mm2,遠比麒麟970的Cortex-A73的0.82mm2要大。但A75的面積包含256KB的L2 cache,而A73的面積不包含L2 cache。加上1/4的970的cache控制邏輯+256KB SRAM使A73的面積和Cortex-A75相當,為1.23mm2,比A75小10%左右。Arm預估在考慮到cache不同結構的情形下A75比A73大20%左右,所以A75好像驗證了這一預估。類似地,A55的面積比A53大0.11mm2,大多少的差異來自於額外的SRAM。

總體上,DynamIQ Cluster(包含L3 cache)面積為10.39mm2,而麒麟970總的面積為7.82mm2.DSU本身面積為1.93mm2,而老的設計中總的非單個核的邏輯面積為1.44mm2.這個差異是DSU的cache控制邏輯是加上了潛入到每個CPU的L2控制邏輯。DynamIQ設計有9個L2/L3控制器,而之前的設計只有2個。這個用來管理這些cache的額外邏輯的確增加了芯片面積,所以應用程式必須能獲得對應的效能提升以保持其能效。

 

Apple Monsoon碾壓競爭對手

 

為了測試效能,我們選擇了Geekbench 4, 這是一個可以執行在Android,iOS和windows的流行benchmark.雖然Geekbench只是一個benchmark,但是我們發現它通常是其他流行移動CPU benchmark的代表。它有單核和多核分數。因為大多數移動應用只利用到一個或2個核,我們相信單核分數能代表終端使用者體驗。多核分數是所有的核滿負載的最好效能,這通常在玩手遊和效能要求很高的應用才用得到。分數來自於Primate Lab網站。

Apple繼續在單核分數領先於其他對手,A 11跑在2.46GHz,iPhone8 plus的分數是4,237,基本上是麒麟970的單核分數的兩倍。

Samsung的Meerkat設計的單核效能比其上一代的Exynos要高75%,但是還是比A11差14%。Exynos9810在GalaxyS9的某些型號中使用,而其他的一些型號才有Snapdragon 845. 在上一代產品中,Exynos和Snapdragon型號有相似的效能,但是Snapdragon在電路面積方面小34%。845還是比麒麟970更強,但主要得益於更快的CPU頻率(2.8GHz比2.36GHz).

將Geekbench分數除於CPU頻率得到IPC的預估。IPC顯示A75只比A73好13%左右。這是個沒意料到的結果,arm宣稱A75可以比A73 的IPC高20%。我們選擇小米MI Mix 2S來做這個比較,因為它的分數比Galaxy S9+高大致7%. 隨著越來越多的845的手機開始量產,我們預計A75帶來的IPC好處為10%, 這是一個很好的增長,但是遠比arm宣稱的20%要差。

Arm核超過IntelIPC

 

自然地,越大的arm定製核有更好的IPC。一個Apple Monsoon核可以趕上2個Cortex CPU, 而Samsung的Meeerkat僅有高60%的IPC。為了增加IPC,兩個大核有比Cortex CPU 更多的解碼器,執行單元, 更強的亂序能力。事實上,它們有比Intel旗艦Skylake設計更高的IPC,如下圖所示。儘管Skylake或許有比最大的arm核更多的微構資源,Skylake也有更深的pipeline,擴充套件了跳轉,cache訪問和其他類似操作的每cycle的Penalty.

 

多核benchmark是更好的用來測試處理器全部效能的方式。Snapdragon 的效能和8核的麒麟970的效能類似。但是A11多核效能因為它只有2個大核和4個小核可能會受到影響,但是它還是在所有的移動處理器裡多核效能最高的。Exynos 9810有4個大核,可是它因為智慧手機功耗和發熱的限制不能全速跑這個4個核。儘管 Galaxy S9的單個Meerkat可以跑到2.7GHz, 但是跑兩個大核時需要講到2.3GHz,而跑4個大核時需要降到1.8GHz. 因此,9810的多核效能只比845高3%,比預期的這麼強大的核低一些。

我們基於die-photo 分析,也比較了這些處理器的面積效率。為了評估單個CPU的效率,我們將單個CPU的分數除於單個CPU的面積。對於Cortex-A73,我們考慮到沒有私有L2 cache和控制邏輯(其他CPU有自己的L2 cache),將其面積調整為1.23mm2. 調整之後,Cortex-A75有最好的單核面積效率,為1,801 Geekbench 每mm2,Apple的Monsoon也很好,但比Cortex-A75差10% 左右,Samsung的Meerkat設計在這方面較差,歸因於它的面積增加比較多。它有512KB的L2 cache大小,比大多數其他處理器的都要大。

 

Cortex在面積效率方面領先

 

多核benchmark著重全CPU子系統效能,我們通過多核效能和整個CPU cluster的面積(包括L3 cache)來評估效率.在這方面,麒麟970比845和其他移動處理器要好,如下圖所示,通過老的A73/A53組合,麒麟970晶片有比845 DynamIQ設計更少的cache控制邏輯的開銷。

面積效率比較重要,因為它影響到die的成本,它也影響到功耗和發熱。在這種比較中,我們依賴於有發熱限制的高階智慧機,因此,效能資料表示為每瓦特效能。

我們也將arm處理器和Intel Core M5-6Y57做了比較,Y序列通常用於平板和類似的智慧手機中。它有7.5W TDP,使它可以放到其他移動處理一類。在這個發熱限制前提下,這個14nm的Skylake CPU頻率可以達到2.8GHz,它可以有超過A75的單核Geekbench分數,但是比其他的arm大核要差。因為它有大得多的面積(甚至按TSMC的工藝做相應調整),Intel的晶片還是在面積效率方面明顯差很多,即使是多核面積效率。

儘管這個比較只是Skylake在移動系統的能力,這對CPU微構架的評估不公平。Intel是在高很多的PC功耗層面設計效能優化的CPU。一個Skylake要比Apple CPU面積更大的原因是Skylake有更深的pipeline, 因此需要更多的forwarding邏輯,更強的分支預測和其他硬體資源。但是更少的pipeline讓Skylake可以跑到2倍於Arm CPU的頻率。即使將這個額外的速度考慮在內,Intel CPU還是在面積效率方面落後,下圖顯示i7-7700K核,可以執行在91W TDP,峰值頻率4.5GHz,但在面積效率方面只是Cortex-A73的一半。