您當前的位置:首頁 > 文化

A12 bionic架構分析

作者:由 知乎使用者x8u79b 發表于 文化時間:2022-02-21

蘋果這個A系列,名字很有意思,我至今沒搞懂他的含義。我猜有三個可能:1。丹為了記念DEC Alpha的輝煌,讓A系承載Alpha的意志與某指令集抗爭。2。A是Alpha老大的意思,蘋果要做老大。3。A就是Apple的縮寫。不管如何,蘋果A系列從A4到A12 bionic,一路上,見證了ARM崛起,今天,我們來講講A12 bionic——ARM之光。

事實上,我的分析很多來自於Anandtech的測試,對於不那麼專業的中國讀者而言,有時他們的文章無疑像一場災難,艱澀,難懂。我要做的,是把這些難懂的變得容易些並加入我自己的分析呈現給大家。也歡迎大家討論。

大核篇

因為蘋果從A10開始使用異構設計,所以架構分析分為大小核兩部分。

在開始對A12的架構分析前,我們有必要介紹一下從A6開始的各代架構。

A6:Swift

A7:Cyclone

A8:Typhoon

A9:Twister

A10:Hurricane/Zephyr

A11:Monsoon/Mistral

A12:Vortex/Tempest

Swift是第一代蘋果自研架構,是一個三發射的亂序架構,流水圖如下

A12 bionic架構分析

採用了32kb的L1 cache。

到了Cyclone時,架構重造,為6發射亂序架構

A12 bionic架構分析

架構寬得嚇人,前端是64kb的L1 cache,這裡雖然有三條浮點的流水線,但只有兩條是可以做FMA(乘加)的。

Twister的架構其實也大改,但流水內容變化不大,就不再單一放圖,相比上圖,shift從2增加到4條,FMA從2增加到3。

到了Monsoon這一代,架構規模又變大了

A12 bionic架構分析

毫不誇張的說,這是我見過最寬的架構,7發射的解碼,6個整數ALU,6個shift,2個複雜整數,2個分支,2個AGU(Load/Store),3個FMA。

而Vortex和Monsoon在架構寬度上一致,把L1 cache增加到128kb。

A12大核心的恐怖規模是他高IPC的絕對保證

我們來看一下SPECint2006的分數

A12 bionic架構分析

A12 bionic架構分析

A12 bionic架構分析

上面是A75 A76 M3和Monsoon (Vortex)的執行單元和延遲。這張表很清晰地展示了公版,三星和蘋果的架構設計的優劣。我把重點摘出來:

1.整數部分,公版和M3的規模比Monsoon要小一些,但在單個單元上,公版的延遲要比M3和Monsoon都要低,這是為什麼公版架構用4發射,3條整數流水來對抗三星蘋果的自研架構的基礎。

2.浮點部分,普通指令(ADD, MUL)的延遲M3和A76都比Monsoon要低,MLA打平。但是,在向量(SIMD)上,尤其是MAC(乘加運算)上,Monsoon吊打兩者。

可以看到,在架構微改進中蘋果留了許許多多的空白,所謂的擠牙膏還不是時候,在之後幾年中,10%的IPC代差不應該讓人驚訝。

後端說完我們來看看前端,相對於Monsoon,Vortex最大的變化其實在前端。

首當其衝的是128kb的L1 cache,在SPECint中吃快取的專案明顯地表現出來,L2 cache在容量上並沒有什麼差別,更多是在延遲上體現的進步

A12 bionic架構分析

圖上為對數座標坐下的延遲曲線。我們可以看到,L1的延遲從3。x ns進步到2。x ns,L2的話Anandtech給出了明顯的資料是11。5ns到8。8ns。總體都下降了30%左右,但相較於其他架構的1。x ns 和4。x ns還是偏高,這方面如果Anandtech 測試沒問題,那麼蘋果在這方面還有相當大的潛力去挖掘。不過可以肯定的是,L1 cache沒有因為容量增大而延遲上升,反而下降,蘋果應該做了相當多的準備。

不過延遲不是一切,因為延遲再高,只要命中率100%,就不存在問題,所以延遲和命中是無法拆開來看的整體性問題,只知道延遲也無法說明更多問題,命中率估計除了官方,沒人會知道。

當然,我對此保持樂觀,因為葉大神是搞這方面的行家,她沒有離職。只能說,還有進步的空間。

小核

這次的A12小核和A11上的架構是差不多的,流水線上沒有區別,都長這樣

A12 bionic架構分析

這個是不是有點眼熟?那就對了,它和Swift的架構設計極其相似,三發射,亂序,流水裡沒有單獨能做FMA的執行單元數量都一樣。不過在改進最佳化後,這顆小核以一種近乎變態的方式出現:

A12 bionic架構分析

A12 bionic架構分析

Anandtech聲稱小核的頻率只有1.6G,但在Geekbench我們看到的頻率是2G,我不能確定誰的判斷是正確的。

SPECint中,Mistral和Tempest整數達到了2。1G的Cortex A73的效能。SPECfp中浮點達到1。56G/1。76G Cortex A73的效能。都大致為A53/A55的2~3倍。面積上四核Mistral(不含L2)和9810上的A55(無L2)相等。按Anandtech的資料計算

A12 bionic架構分析

圖中黑框為Tempest小核包括cache面積為3。1

A12 bionic架構分析

大致就是A55的面積,A73的效能。

功耗上,整數0.41w,浮點0.57w

A55沒有資料,無法對比。

PPA目前打遍天下無敵手。

標簽: 架構  monsoon  延遲  cache  蘋果