昨天,蘋果發(fā)布了他們?nèi)碌?a class="innerlink" href="http://ihrv.cn/tags/MacBook" target="_blank">MacBook系列產(chǎn)品。這不是一個(gè)普通的發(fā)布版本,如果說(shuō)有什么不同的話,蘋果今天所做的這一舉動(dòng)是15年來(lái)從未發(fā)生過(guò)的:開始了整個(gè)消費(fèi)類Mac系列的CPU架構(gòu)轉(zhuǎn)型。
這個(gè)巨大的改變多虧了該公司在硬件和軟件上的垂直整合,除了蘋果公司,沒(méi)有人能夠如此迅速地引入。上一次蘋果公司在2006年進(jìn)行這樣的嘗試時(shí),放棄了IBM的PowerPC ISA和處理器,轉(zhuǎn)而支持英特爾x86設(shè)計(jì)。如今,英特爾正在被拋棄,蘋果轉(zhuǎn)而采用基于Arm-ISA的內(nèi)部處理器和CPU微體系結(jié)構(gòu)。
新處理器稱為Apple M1,這是該公司首款針對(duì)Mac設(shè)計(jì)的SoC。它具有四個(gè)大型性能內(nèi)核,四個(gè)效率內(nèi)核和一個(gè)8-GPU內(nèi)核GPU,在5nm工藝節(jié)點(diǎn)上具有160億個(gè)晶體管。蘋果公司正在為這種新的處理器系列啟動(dòng)新的SoC命名方案,但至少在理論上它看起來(lái)很像A14X。
今天的活動(dòng)包含了許多新的官方公告,但也缺少(以典型的Apple方式)詳細(xì)信息。今天,我們將剖析新的Apple M1新聞,并基于已經(jīng)發(fā)布的Apple A14 SoC進(jìn)行微體系結(jié)構(gòu)的深入研究。
Apple M1 SoC:適用于Mac的A14X
新款A(yù)pple M1確實(shí)是Apple進(jìn)行新的重大旅程的開始。在蘋果公司的演講中,該公司并未在設(shè)計(jì)細(xì)節(jié)上透露太多,但是有一張幻燈片告訴了我們很多有關(guān)芯片的封裝和架構(gòu)的信息:
這種在有機(jī)封裝中嵌入DRAM的封裝方式對(duì)蘋果來(lái)說(shuō)并不新鮮;他們從A12開始就一直在使用它。當(dāng)涉及到高端芯片時(shí),蘋果喜歡使用這種封裝而不是通常的智能手機(jī)POP封裝(封裝上的封裝),因?yàn)檫@些芯片在設(shè)計(jì)時(shí)考慮到了更高的TDP。因此,將DRAM放在計(jì)算機(jī)芯片的旁邊,而不是放在其上,有助于確保這些芯片仍能得到有效冷卻。
這也意味著,我們幾乎可以肯定地看到新芯片上的128位DRAM總線,與上一代a-X芯片非常相似。
在同一張幻燈片上,蘋果似乎也使用了新M1芯片的實(shí)際裸片(die)鏡頭。它完全符合蘋果公司所描述的芯片特性,看起來(lái)就像一個(gè)真正的裸片照片。這可能是我做過(guò)的最快的裸片注釋了:
我們可以看到M1的四個(gè)Firestorm高性能CPU核心在左側(cè)。注意大量的緩存——12MB緩存是這次事件的一個(gè)令人驚訝的發(fā)現(xiàn),因?yàn)锳14仍然只有8MB的二級(jí)緩存。新的緩存看起來(lái)被分成了3個(gè)更大的塊,考慮到蘋果的新配置從8MB過(guò)渡到12MB,這是合理的,畢竟它現(xiàn)在被4核使用而不是2核。
同時(shí),在SoC中心附近找到了4個(gè)Icestorm效率核心,在上面,我們可以找到SoC的系統(tǒng)級(jí)緩存,該緩存在所有IP塊之間共享。
最后,8核的GPU占據(jù)了大量的die space,并且位于這個(gè)die shot的上半部。
M1最有趣的地方是它與Intel和AMD其他CPU設(shè)計(jì)的比較。上述所有模塊仍然只覆蓋了整個(gè)裸片的一部分,并帶有大量的輔助IP。蘋果提到M1是一個(gè)真正的SoC,包括之前Mac筆記本電腦內(nèi)部的幾個(gè)分立芯片的功能,比如I/O控制器和蘋果的SSD和安全控制器。
蘋果聲稱它是全球最快的CPU內(nèi)核。這將是今天文章的中心內(nèi)容,因?yàn)槲覀儗⑸钊胙芯縁irestorm核心的微架構(gòu),并查看非常相似的Apple A14 SoC的性能數(shù)據(jù)。由于它的附加緩存,我們預(yù)計(jì)M1中使用的Firestorm內(nèi)核比我們今天將要用A14進(jìn)行分析的速度還要快,因此蘋果聲稱擁有世界上最快的CPU核心似乎極為合理。
整個(gè)SoC采用了160億個(gè)晶體管,比最新款iphone內(nèi)置的A14多35%。如果蘋果能夠保持兩個(gè)芯片之間晶體管的密度相似,我們應(yīng)該可以期待一個(gè)大約120mm的晶體管尺寸。這將比蘋果MacBook上一代的英特爾芯片要小得多。
向Arm進(jìn)軍
事實(shí)上,蘋果甚至可以如此無(wú)縫地完成一個(gè)重大的架構(gòu)轉(zhuǎn)換,只是一個(gè)小小的奇跡,畢竟蘋果在實(shí)現(xiàn)這一點(diǎn)上有著相當(dāng)豐富的經(jīng)驗(yàn)。畢竟,這并不是蘋果第一次為他們的Mac電腦切換CPU架構(gòu)。
在21世紀(jì)中期左右,這家長(zhǎng)期經(jīng)營(yíng)的PowerPC公司走到了一個(gè)十字路口,當(dāng)時(shí)負(fù)責(zé)PowerPC開發(fā)的Apple-IBM-Motorola(AIM)聯(lián)盟越來(lái)越難以進(jìn)一步開發(fā)芯片。IBM的PowerPC970(G5)芯片在臺(tái)式機(jī)上有著可觀的性能指標(biāo),但它的功耗卻相當(dāng)可觀。這使得該芯片無(wú)法用于日益增長(zhǎng)的筆記本電腦領(lǐng)域,蘋果仍在使用摩托羅拉的PowerPC 7400系列(G4)芯片,雖然該芯片的功耗確實(shí)更好,但其性能無(wú)法與英特爾的核心系列處理器相媲美。
因此,蘋果打出了一張他們保留的牌:Marklar項(xiàng)目。利用Mac OS X及其底層Darwin內(nèi)核的靈活性(與其他Unix一樣,達(dá)爾文內(nèi)核設(shè)計(jì)為可移植),蘋果一直在維護(hù)Mac OS X的x86版本。盡管最初主要被認(rèn)為是一種良好編碼實(shí)踐的練習(xí),但要確保蘋果編寫的操作系統(tǒng)代碼沒(méi)有不必要的約束PowerPC及其big-endian內(nèi)存模型——Marklar成為蘋果從停滯不前的PowerPC生態(tài)系統(tǒng)中退出的策略。該公司將改用x86處理器,尤其是英特爾的x86處理器,顛覆其軟件生態(tài)系統(tǒng),同時(shí)也為更好的性能和新的客戶機(jī)會(huì)敞開大門。
從所有指標(biāo)來(lái)看,切換到x86都是Apple的一大勝利。英特爾的處理器提供的每瓦性能優(yōu)于蘋果留下的PowerPC處理器,尤其是英特爾在2006年底推出Core 2(Conroe)系列處理器之后,英特爾就牢固地確立了自己在PC處理器領(lǐng)域的主導(dǎo)地位。最終,這奠定了蘋果在未來(lái)幾年的發(fā)展軌跡,使他們成為擁有筆記本超本(MacBook Air)和令人難以置信的MacBook Pro的筆記本電腦公司。同樣,x86具有Windows兼容性,引入了直接啟動(dòng)Windows的功能,或者可以在開銷非常小的虛擬機(jī)中運(yùn)行它。
然而,這種轉(zhuǎn)變的代價(jià)來(lái)自軟件方面。開發(fā)人員需要開始使用蘋果最新的工具鏈來(lái)生成可以在PPC和x86 mac上運(yùn)行的通用二進(jìn)制文件,而且并不是所有蘋果以前的api都會(huì)跳到x86上。當(dāng)然,開發(fā)商也做出了飛躍,但這是一個(gè)沒(méi)有真正先例的轉(zhuǎn)型。
至少在某種程度上,縮小了差距的是Rosetta,這是Apple用于x86的PowerPC轉(zhuǎn)換層。Rosetta允許大多數(shù)PPC Mac OS X應(yīng)用程序在x86 Mac上運(yùn)行,盡管性能有些過(guò)失(x86上的PPC并不是最簡(jiǎn)單的事情),但是Intel CPU的更高性能有助于攜帶東西適用于大多數(shù)非密集型應(yīng)用。最終,Rosetta對(duì)蘋果來(lái)說(shuō)只是一個(gè)創(chuàng)可貼,而蘋果很快就撕毀了它;在2011年Mac OS X 10.7 (Lion)面世時(shí),蘋果已經(jīng)放棄了Rosetta。因此,即使有了Rosetta,蘋果公司也向開發(fā)者明確表示,如果他們想繼續(xù)銷售并讓用戶滿意,他們希望他們?yōu)閤86更新他們的應(yīng)用程序。
最終,PowerPC向x86的轉(zhuǎn)變?yōu)楝F(xiàn)代、敏捷的蘋果定下了基調(diào)。從那時(shí)起,蘋果就創(chuàng)造了一整套快速發(fā)展的理念,并在他們認(rèn)為合適的情況下改變事物,只在向后兼容性方面做了有限的考慮。這給了用戶和開發(fā)者很少的選擇,只能享受這段旅程并跟上蘋果的發(fā)展趨勢(shì)。但它也給了蘋果提早推出新技術(shù)的能力,如果有必要的話,還可以打破舊的應(yīng)用程序,這樣新功能就不會(huì)因?yàn)橄蚝蠹嫒莸膯?wèn)題而受阻。
所有這些都是以前發(fā)生的,并且所有這些都會(huì)在下周蘋果發(fā)布其首批基于Apple M1的Mac時(shí)再次發(fā)生。通用二進(jìn)制文件又回來(lái)了,Rosetta又回來(lái)了,蘋果公司敦促開發(fā)人員在Arm上啟動(dòng)并運(yùn)行他們的應(yīng)用程序已全面展開。從PPC到x86的過(guò)渡為Apple進(jìn)行了ISA更改創(chuàng)建了模板,在成功過(guò)渡之后,隨著Apple成為自己的芯片供應(yīng)商,他們將在接下來(lái)的幾年中再次進(jìn)行此操作。
在接下來(lái)的頁(yè)面中,我們將研究A14的Firestorm內(nèi)核,它也將在M1中使用,也會(huì)在iPhone芯片上做一些廣泛的基準(zhǔn)測(cè)試,設(shè)定M1的最低標(biāo)準(zhǔn):
蘋果龐大的CPU微體系結(jié)構(gòu)
那么蘋果打算如何在這個(gè)市場(chǎng)上與AMD和Intel競(jìng)爭(zhēng)呢?過(guò)去幾年來(lái)一直在關(guān)注蘋果在硅技術(shù)方面的努力的讀者一定不會(huì)驚訝地看到蘋果在活動(dòng)中宣稱的性能。
秘密之處在于蘋果公司內(nèi)部的CPU微體系結(jié)構(gòu)。蘋果在定制CPU微體系結(jié)構(gòu)方面的漫長(zhǎng)旅程始于2012年在iPhone 5中發(fā)布的Apple A6。即使在那時(shí),憑借其第一代“ Swift”設(shè)計(jì),與移動(dòng)競(jìng)爭(zhēng)對(duì)手相比,該公司的性能數(shù)據(jù)仍然令人印象深刻。
然而,真正在業(yè)界引起轟動(dòng)的是蘋果隨后在2013年的Apple A7 SoC和iPhone 5S中發(fā)布的Cyclone CPU微體系架構(gòu)。蘋果早期采用的64位Armv8震驚了所有人,因?yàn)樵摴臼菢I(yè)界首個(gè)實(shí)施新指令集架構(gòu)的公司,但他們甚至比Arm自己的CPU團(tuán)隊(duì)早了一年多,因?yàn)镃ortex-A57 (Arm自己的64位微架構(gòu)設(shè)計(jì))要到2014年底才問(wèn)世。
蘋果公司將其“ Cyclone”設(shè)計(jì)稱為“桌面級(jí)架構(gòu)”,事后看來(lái),這可能對(duì)公司的發(fā)展方向有一個(gè)明顯的指示。在接下來(lái)的幾代中,蘋果已經(jīng)以驚人的速度發(fā)展了他們定制的CPU微架構(gòu),每一代都取得了巨大的性能提升,這些我們已經(jīng)在過(guò)去的幾年里廣泛報(bào)道過(guò):
今年的A14芯片包括了蘋果64位微體系結(jié)構(gòu)家族中的第8代芯片,這是從A7和Cyclone設(shè)計(jì)開始的。這些年來(lái),蘋果的設(shè)計(jì)節(jié)奏似乎已經(jīng)穩(wěn)定下來(lái),圍繞著主要的雙代微架構(gòu)更新,從A7芯片組開始,A9、A11、A13都大幅增加了設(shè)計(jì)的復(fù)雜性和微架構(gòu)的寬度和深度。
考慮到蘋果沒(méi)有透露任何細(xì)節(jié),蘋果的CPU在很大程度上仍然是一個(gè)黑匣子設(shè)計(jì),而且關(guān)于此事的唯一公開資源可以追溯到A7旋風(fēng)時(shí)代的LLVM補(bǔ)丁,這與今天的設(shè)計(jì)已經(jīng)不再相關(guān)。雖然我們沒(méi)有官方的手段和信息來(lái)說(shuō)明蘋果的CPU是如何工作的,但這并不意味著我們無(wú)法弄清楚設(shè)計(jì)的某些方面。然而,通過(guò)我們自己的內(nèi)部測(cè)試以及第三方微基準(zhǔn)測(cè)試(這是@Veedrac的微體系結(jié)構(gòu)測(cè)試套件的一項(xiàng)特殊學(xué)分),我們可以公布蘋果設(shè)計(jì)的一些細(xì)節(jié)。以下披露是基于測(cè)試iPhone 12 Pro中最新的Apple A14 SoC的行為得出的:
蘋果的Firestorm CPU核心:更大更大
蘋果最新一代A14內(nèi)部的大核心CPU設(shè)計(jì)代號(hào)為“Firestorm”,延續(xù)了去年蘋果A13內(nèi)部的“Lightning”微架構(gòu)。今天討論的核心是新的Firestorm核心和它多年來(lái)不斷改進(jìn)的血統(tǒng),這也是蘋果如何從英特爾x86設(shè)計(jì)大幅跳躍到他們自己內(nèi)部的SoC的關(guān)鍵部分。
上圖是蘋果最新大核心設(shè)計(jì)的估計(jì)功能布局–這里表示的是我盡最大努力確定新設(shè)計(jì)的功能,但是仍然不能詳盡地深入研究蘋果設(shè)計(jì)必須提供的所有內(nèi)容–因此,可能會(huì)出現(xiàn)一些錯(cuò)誤。
與業(yè)內(nèi)其他設(shè)計(jì)相比,真正定義蘋果的Firestorm CPU核心的是其微架構(gòu)的寬度。具有8-wide解碼塊,蘋果的Firestorm是目前行業(yè)中最廣泛的商業(yè)化設(shè)計(jì)。IBM即將在POWER10中推出的P10內(nèi)核是唯一一個(gè)有望在市場(chǎng)上發(fā)布的具有如此寬解碼器設(shè)計(jì)的官方設(shè)計(jì),此前三星取消了他們自己的M6內(nèi)核,后者也被描述為具有如此寬的設(shè)計(jì)。
今天的其他現(xiàn)代設(shè)計(jì),例如AMD的Zen(1至3)和英特爾的?arch,x86 CPU仍僅采用4-wide解碼器設(shè)計(jì),由于ISA固有的可變指令長(zhǎng)度特性,目前似乎無(wú)法將其擴(kuò)展到更大的范圍,與ARM ISA的固定長(zhǎng)度指令相比,設(shè)計(jì)能夠處理體系結(jié)構(gòu)方面的解碼器更加困難。在ARM方面,三星的設(shè)計(jì)從M3開始已經(jīng)達(dá)到了6-wide,而Arm自己的Cortex內(nèi)核隨著每一代的發(fā)展都在穩(wěn)步擴(kuò)大,目前在現(xiàn)有的硅片中達(dá)到4-wide,并且預(yù)計(jì)會(huì)增加到即將推出的Cortex-X1內(nèi)核具有5-wide設(shè)計(jì)。
蘋果的微架構(gòu)是8-wide實(shí)際上對(duì)新的A14來(lái)說(shuō)并不新鮮?;氐紸13,似乎我在測(cè)試中犯了一個(gè)錯(cuò)誤,因?yàn)槲易畛跽J(rèn)為它是一臺(tái) 7-wide機(jī)器。最近我對(duì)它進(jìn)行了重新測(cè)試,證實(shí)蘋果正是在這一代升級(jí)了A11和12的7-wide解碼。
蘋果公司最近的設(shè)計(jì)中,有一個(gè)方面我們從來(lái)沒(méi)有真正能夠具體回答,那就是他們的無(wú)序執(zhí)行能力有多深。我們?cè)诖藛?wèn)題上獲得的最后官方資源是2013 Cyclone設(shè)計(jì)中ROB(重排序緩沖區(qū))的192數(shù)字。再次感謝Veedrac實(shí)施的測(cè)試似乎暴露了?arch的這一部分,我們似乎可以確認(rèn)Firestorm的ROB在630指令范圍之內(nèi),這是對(duì)去年的A13 Lightning內(nèi)核(在560中測(cè)得)的升級(jí)。目前還不清楚這是否與其他架構(gòu)中的傳統(tǒng)ROB相同,但測(cè)試至少暴露了與ROB相關(guān)的微架構(gòu)限制,并暴露了行業(yè)中其他設(shè)計(jì)的正確數(shù)據(jù)。無(wú)序窗口是指當(dāng)內(nèi)核試圖獲取并執(zhí)行每條指令的依賴關(guān)系時(shí),內(nèi)核可以“停放”的、等待執(zhí)行的指令數(shù)量。
對(duì)于蘋果的新核心來(lái)說(shuō),A+-630 deep ROB是一個(gè)巨大的無(wú)序窗口,因?yàn)樗h(yuǎn)遠(yuǎn)超過(guò)了業(yè)內(nèi)其他設(shè)計(jì)。英特爾的Sunny Cove和Willow Cove型內(nèi)核是第二大“深”O(jiān)OO設(shè)計(jì),擁有352個(gè)ROB型架構(gòu),AMD最新的Zen3型內(nèi)核有256個(gè)條目,最近的Arm設(shè)計(jì)如Cortex-X1有224個(gè)架構(gòu)。
與業(yè)內(nèi)其他設(shè)計(jì)師相比,蘋果是如何以及為什么能夠?qū)崿F(xiàn)如此不成比例的設(shè)計(jì)還不清楚,但這似乎是蘋果實(shí)現(xiàn)高指令水平并行的設(shè)計(jì)理念和方法的一個(gè)關(guān)鍵特征。
很多很多的執(zhí)行單位
擁有高ILP也意味著這些指令需要由機(jī)器并行執(zhí)行,這里我們還可以看到蘋果的后端執(zhí)行引擎具有非常廣泛的功能。在整數(shù)方面,我們估計(jì)其在運(yùn)行中的指令和重命名物理寄存器文件的容量大約為354個(gè)條目,我們找到了至少7個(gè)用于實(shí)際算術(shù)操作的執(zhí)行端口。其中包括4個(gè)簡(jiǎn)單的算術(shù)邏輯單元能夠加法指令,2個(gè)復(fù)雜的單元也具有MUL(乘法)功能,以及一個(gè)似乎是專用的整數(shù)除法單元。核心每個(gè)周期可以處理2個(gè)分支,我想這是由一個(gè)或兩個(gè)專用的分支轉(zhuǎn)發(fā)端口實(shí)現(xiàn)的,但我無(wú)法100%確認(rèn)這里的設(shè)計(jì)布局。
這里的Firestorm核心在整型設(shè)計(jì)方面似乎沒(méi)有重大變化,因?yàn)槲ㄒ恢档米⒁獾淖兓窃搯卧恼统ㄑ舆t明顯略有增加(是的)。
在浮點(diǎn)和矢量執(zhí)行方面,新的Firestorm內(nèi)核實(shí)際上更令人印象深刻,因?yàn)樘O果增加了第四個(gè)執(zhí)行管道,使其功能增加了33%。在這里,F(xiàn)P重命名寄存器似乎有384個(gè)條目,這也是相當(dāng)龐大的。因此,這四個(gè)128位的NEON管道在理論上可以與AMD和Intel的桌面內(nèi)核的當(dāng)前吞吐量相匹配,盡管它們的吞吐量更小。這里的端點(diǎn)操作吞吐量與管道計(jì)數(shù)是1:1,這意味著Firestorm可以每循環(huán)執(zhí)行4個(gè)FADD和4個(gè)FMUL,分別有3個(gè)和4個(gè)周期延遲。這是英特爾CPU和之前AMD CPU的四倍,也是最近的Zen3的兩倍,當(dāng)然,仍然在較低的頻率運(yùn)行。這可能是蘋果在瀏覽器基準(zhǔn)測(cè)試中表現(xiàn)如此出色的原因之一(JavaScript數(shù)字是浮點(diǎn)雙精度數(shù))。
這四個(gè)管道的向量能力似乎是相同的,唯一看到吞吐量較低的指令是在四個(gè)管道之一上的FP除法,倒數(shù)和平方根運(yùn)算僅具有1的吞吐量。
在加載存儲(chǔ)方面,我們看到了似乎有四個(gè)執(zhí)行端口:一個(gè)加載/存儲(chǔ),一個(gè)專用存儲(chǔ)和兩個(gè)專用加載單元。核心每個(gè)周期最多可以執(zhí)行3個(gè)負(fù)載,每個(gè)周期最多可以執(zhí)行2個(gè)存儲(chǔ),但是最多只能同時(shí)執(zhí)行2個(gè)負(fù)載和2個(gè)存儲(chǔ)。
這里有趣的是蘋果處理內(nèi)存事務(wù)的深度。我們測(cè)量了大約148-154個(gè)未完成的負(fù)載和大約106個(gè)未完成的存儲(chǔ),這應(yīng)該是內(nèi)存子系統(tǒng)的負(fù)載隊(duì)列和存儲(chǔ)隊(duì)列的等價(jià)數(shù)字。毫不奇怪,這也比市場(chǎng)上的任何其他微體系結(jié)構(gòu)都要深入。相比之下,AMD的Zen3和英特爾的Sunny Cove分別為128/72和128/ 64。英特爾在這里的設(shè)計(jì)與蘋果相差不遠(yuǎn),實(shí)際上這些最新的微架構(gòu)的吞吐量是相對(duì)匹配的——如果蘋果將這種設(shè)計(jì)部署到非移動(dòng)內(nèi)存子系統(tǒng)和DRAM上,那將是很有趣的。
在這一代的Firestorm核心方面,最大的改進(jìn)就是TLB。L1 TLB從128頁(yè)增加了一倍,達(dá)到256頁(yè),L2 TLB從2048頁(yè)增加到3072頁(yè)。在當(dāng)今的iPhone上,這是一個(gè)絕對(duì)過(guò)大的更改,因?yàn)轫?yè)面大小為16KB,這意味著L2 TLB覆蓋48MB,甚至超過(guò)了A14的緩存容量。隨著蘋果將微體系結(jié)構(gòu)轉(zhuǎn)移到Mac系統(tǒng)上,與4KB頁(yè)面兼容并確保設(shè)計(jì)仍提供足夠的性能,這將成為蘋果為何選擇在這一代進(jìn)行如此大規(guī)模升級(jí)的關(guān)鍵部分。
在緩存層次結(jié)構(gòu)方面,我們?cè)缇椭捞O果的設(shè)計(jì)是可怕的,而A14 Firestorm內(nèi)核延續(xù)了這一趨勢(shì)。去年我們?cè)聹y(cè)A13有128KB的L1指令緩存,類似于我們可以測(cè)試的128kbl1數(shù)據(jù)緩存,但是在Darwin內(nèi)核源代碼轉(zhuǎn)儲(chǔ)之后,蘋果證實(shí)了它實(shí)際上是一個(gè)巨大的192KB指令緩存。這絕對(duì)是巨大的,比競(jìng)爭(zhēng)對(duì)手的Arm設(shè)計(jì)大3倍,比目前的x86設(shè)計(jì)大6倍,這可能再次解釋為什么蘋果在非常高的指令壓力工作負(fù)載(如流行的JavaScript基準(zhǔn)測(cè)試)方面表現(xiàn)出色。
巨大的高速緩存似乎也非常快– L1D以3個(gè)周期的負(fù)載使用延遲進(jìn)入。我們不知道這是否是如三星核心所描述的那樣巧妙的負(fù)載級(jí)聯(lián),但是無(wú)論如何,對(duì)于如此大的結(jié)構(gòu)來(lái)說(shuō),這是非常令人印象深刻的。AMD具有32KB的4周期緩存,而英特爾最新的Sunny Cove在將大小增加到48KB時(shí)看到了5周期的回歸。慢頻或快頻設(shè)計(jì)的優(yōu)缺點(diǎn)值得深思。
在L2方面,Apple一直采用兩個(gè)大核心共享的8MB結(jié)構(gòu)。這是一個(gè)非常不尋常的緩存層次結(jié)構(gòu),與其他人使用的中間大小的私有L2和更大的較慢的L3形成對(duì)比。蘋果在這里不理會(huì)規(guī)范,而是選擇大型而快速的L2。奇怪的是,這一代A14看到了大核的L2在訪問(wèn)延遲方面進(jìn)行了回歸,從14個(gè)周期回到了16個(gè)周期,還原了A13所做的改進(jìn)。我們不確定為什么會(huì)發(fā)生這種情況,我確實(shí)看到標(biāo)量工作負(fù)載有更高的并行訪問(wèn)帶寬進(jìn)入緩存,但是峰值帶寬似乎仍然與上一代相同。另一個(gè)假設(shè)是,由于Apple在內(nèi)核之間共享L2,因此這可能是Apple Silicon SoC發(fā)生變化的指標(biāo),因?yàn)橹挥袃蓚€(gè)以上的內(nèi)核連接到單個(gè)緩存,這與A12X代很相似。
蘋果已經(jīng)在其SoC上使用大型LLC了好幾代了。A14上,這似乎又是一個(gè)16MB的緩存,服務(wù)于SoC上的所有IP塊,當(dāng)然對(duì)CPU和GPU最有用。相對(duì)而言,這種緩存層次結(jié)構(gòu)并不像其他設(shè)計(jì)的實(shí)際CPU-cluster l3那么快,而且近年來(lái),我們看到越來(lái)越多的移動(dòng)SoC供應(yīng)商為了提高功率效率而在內(nèi)存控制器前使用這種LLC。蘋果會(huì)在更大的筆記本或臺(tái)式電腦芯片上做什么還不清楚,但我認(rèn)為我們會(huì)看到類似的設(shè)計(jì)。
我們已經(jīng)討論了蘋果設(shè)計(jì)的更多具體方面,比如它們的MLP(內(nèi)存級(jí)并行)功能,而A14在這方面似乎沒(méi)有改變。我注意到A13的另一個(gè)變化是,新的設(shè)計(jì)現(xiàn)在也利用了Arm更輕松的內(nèi)存模型,它能夠自動(dòng)優(yōu)化流媒體存儲(chǔ)到非臨時(shí)存儲(chǔ)中,模仿Cortex-A76和Exynos-M4中引入的變化。從理論上講,x86設(shè)計(jì)無(wú)法實(shí)現(xiàn)類似的優(yōu)化,如果有人嘗試這樣做,將非常有趣。
當(dāng)然,關(guān)于擁有非常廣泛的體系結(jié)構(gòu)的古老觀點(diǎn)是,你不能把時(shí)鐘設(shè)到與比它窄的東西一樣高的地方。這在某種程度上是正確的;不過(guò),我不會(huì)對(duì)蘋果的設(shè)計(jì)在更高功率設(shè)備上的性能做出任何結(jié)論。在新款iphone的A14上,新的Firestorm內(nèi)核可以達(dá)到3GHz的時(shí)鐘速度,當(dāng)有兩個(gè)內(nèi)核同時(shí)工作時(shí),時(shí)鐘速度可以降至2.89GHz
我們將稍后詳細(xì)研究功耗,但是我目前看到Apple受實(shí)際手機(jī)散熱的限制,而不是微體系結(jié)構(gòu)的固有時(shí)鐘上限。新的Firestorm內(nèi)核現(xiàn)在的時(shí)鐘速度與Arm上其他移動(dòng)CPU微體系結(jié)構(gòu)的速度大致相同,即使它的設(shè)計(jì)范圍更廣。因此,由于設(shè)計(jì)更加復(fù)雜而不得不降低時(shí)鐘速度的論點(diǎn)似乎也不適用于這個(gè)實(shí)例。蘋果不僅可以在筆記本電腦這樣的高溫度封裝設(shè)備上做什么,還可以在Mac這樣的壁掛式設(shè)備上做什么,這將是一件非常有趣的事情。
主導(dǎo)移動(dòng)性能
在我們深入探討x86與Apple Silicon的爭(zhēng)論之前,有必要更詳細(xì)地研究A14 Firestorm內(nèi)核在A13 Lightning內(nèi)核基礎(chǔ)上的改進(jìn)方式,以及詳細(xì)介紹新芯片5nm工藝的功率和功率效率改進(jìn)節(jié)點(diǎn)。
在這里的比較中,流程節(jié)點(diǎn)實(shí)際上是一個(gè)通配碼,因?yàn)锳14是市場(chǎng)上第一個(gè)5nm芯片組,緊隨其后的是華為Mate 40系列的麒麟9000。我們碰巧有設(shè)備和芯片在內(nèi)部進(jìn)行測(cè)試,對(duì)比一下麒麟9000(N5上的Cortex-A77 3.13GHz)和Snapdragon 865+(N7P上的Cortex-A77 3.09GHz),我們可以從某種程度上推斷出處理節(jié)點(diǎn)在功率和效率方面有多大影響,將這些改進(jìn)轉(zhuǎn)化為A13與A14的比較。
從SPECint2006開始,我們沒(méi)有看到A14分?jǐn)?shù)有什么不尋常的,除了456的巨大進(jìn)步。實(shí)際上,這并不是由于微架構(gòu)的飛躍,而是由于Xcode 12中新的LLVM版本進(jìn)行了新的優(yōu)化。在這里,編譯器似乎使用了類似于在GCC8上發(fā)現(xiàn)的循環(huán)優(yōu)化。A13的分?jǐn)?shù)實(shí)際上已經(jīng)從47.79提高到了64.87,但我還沒(méi)有在整個(gè)套件上運(yùn)行新的數(shù)字。
對(duì)于其余的工作負(fù)載,A14通??雌饋?lái)像一個(gè)相對(duì)于A13的線性進(jìn)程,因?yàn)闀r(shí)鐘頻率從2.66GHz增加到3GHz。IPC的整體漲幅在5%左右,略低于蘋果的前幾代產(chǎn)品,不過(guò)時(shí)鐘速度的漲幅要大于通常的水平。
新芯片的功耗實(shí)際上是一致的,有時(shí)甚至比A13更好,這意味著這一代的工作負(fù)載能源效率已經(jīng)看到了明顯的改善,即使在峰值性能點(diǎn)。
與當(dāng)代的Android和以Cortex-core為核心的SoC相比,蘋果的性能似乎相當(dāng)不平衡。最突出的一點(diǎn)是內(nèi)存密集型、稀疏內(nèi)存,其特點(diǎn)是工作負(fù)載(如429.mcf和471.omnetpp),蘋果的設(shè)計(jì)功能遠(yuǎn)遠(yuǎn)超過(guò)性能的兩倍,盡管所有芯片都運(yùn)行著類似的移動(dòng)級(jí)LPDDR4X/LPDDR5內(nèi)存。在我們的微體系結(jié)構(gòu)調(diào)查中,我們發(fā)現(xiàn)Apple設(shè)計(jì)上存在“記憶魔力”的跡象,我們可能會(huì)認(rèn)為它們正在使用某種指針追隨預(yù)取機(jī)制。
在SPECfp中,A14在A13上的增長(zhǎng)比線性時(shí)鐘頻率的增長(zhǎng)略高,因?yàn)槲覀冊(cè)谶@里測(cè)量了10-11%的IPC上升。考慮到設(shè)計(jì)中額外的第四個(gè)FP/SIMD管道,這并不太令人驚訝,而與A13相比,核心的整數(shù)部分保持了相對(duì)不變。
在整體的手機(jī)比較中,我們可以看到新的A14在性能提升方面比A13取得了強(qiáng)勁的進(jìn)步。與競(jìng)爭(zhēng)對(duì)手相比,蘋果遙遙領(lǐng)先——我們必須等到明年的Cortex-X1設(shè)備才能看到差距再次縮小。
還有非常重要的一點(diǎn)需要注意的是,蘋果在實(shí)現(xiàn)這一切的同時(shí),還保持了扁平狀態(tài),甚至降低了新芯片的功耗,顯著降低了相同工作負(fù)載下的能耗。
看看麒麟9000和Snapdragon 865+,我們發(fā)現(xiàn)功率在相對(duì)相似的性能下降低了10%。兩種芯片都使用相同的CPU IP,只是它們的處理節(jié)點(diǎn)和實(shí)現(xiàn)方式不同。看起來(lái)蘋果的A14不僅能夠?qū)崿F(xiàn)工藝節(jié)點(diǎn)的改進(jìn),而且能夠取得更好的數(shù)據(jù),這也是考慮到它也是一種新的微體系結(jié)構(gòu)設(shè)計(jì)。
還有一點(diǎn)需要注意的是A14小型效率核心的數(shù)據(jù)。在這一代中,我們看到了這些新內(nèi)核的巨大微體系結(jié)構(gòu)提升,與去年的A13效率內(nèi)核相比,這些新內(nèi)核現(xiàn)在的性能提高了35%,同時(shí)還進(jìn)一步降低了能耗。我不知道小核將如何在Apple的“ Apple Silicon” Mac設(shè)計(jì)中發(fā)揮作用,但是與其他當(dāng)前的現(xiàn)代Arm設(shè)計(jì)相比,它們肯定仍然非常高效且非常高效。
最后,是x86與蘋果的性能比較。通常對(duì)于iPhone的評(píng)論,我會(huì)在這篇文章的這一部分對(duì)此進(jìn)行評(píng)論,但是考慮到今天的背景和蘋果為蘋果硅所制定的目標(biāo),讓我們用一個(gè)完整的專門章節(jié)來(lái)研究這個(gè)問(wèn)題…
從移動(dòng)設(shè)備到Mac:會(huì)發(fā)生什么?
迄今為止,我們對(duì)Apple芯片組的性能比較一直是在iPhone評(píng)論的背景下進(jìn)行的,與x86設(shè)計(jì)并列的內(nèi)容在本文中只是一個(gè)很小的腳注。今天的Apple Silicon發(fā)布會(huì)完全改變了我們對(duì)性能的描述,拋開了人們通常爭(zhēng)論的典型蘋果與橘子的比較。
我們目前沒(méi)有Apple Silicon設(shè)備,很可能再過(guò)幾周都不會(huì)使用它們,但我們確實(shí)有A14,并且預(yù)計(jì)新的Mac芯片將基于我們?cè)趇Phone設(shè)計(jì)中看到的微架構(gòu)。當(dāng)然,我們?nèi)匀辉诒容^手機(jī)芯片與高端筆記本電腦,甚至是高端臺(tái)式機(jī)芯片,但考慮到性能數(shù)字,這也正是我們?cè)谶@里要說(shuō)的重點(diǎn),這是蘋果新推出的Apple Silicon Mac芯片所能達(dá)到的最低限度。
這張圖表上A14的性能數(shù)字令人難以置信。如果我在隱藏A14標(biāo)簽的情況下發(fā)布此數(shù)據(jù),可能會(huì)猜到這些數(shù)據(jù)點(diǎn)來(lái)自AMD或Intel的其他x86 SKU。A14當(dāng)前可以與當(dāng)今x86供應(yīng)商在市場(chǎng)上擁有的最佳頂級(jí)性能設(shè)計(jì)相抗衡,這真是一個(gè)了不起的壯舉。
查看詳細(xì)分?jǐn)?shù),再次令我感到驚訝的是,A14不僅保持了這種速度,而且在內(nèi)存延遲敏感型工作負(fù)載(例如429.mcf和471.omnetpp)上實(shí)際上擊敗了這兩個(gè)競(jìng)爭(zhēng)對(duì)手,即使它們具有相同的性能內(nèi)存(帶LPDDR4X-4266的i7-1185G7)或臺(tái)式機(jī)級(jí)內(nèi)存(帶DDR-3200的5950X)。
同樣,請(qǐng)忽略A14的456.hmmer得分優(yōu)勢(shì),這主要是由于編譯器差異造成的,請(qǐng)減去33%,以獲得更合適的比較數(shù)字。
即使在SPECfp中,A14不僅可以跟上,而且通常比Intel的CPU設(shè)計(jì)好得多。如果不是最近發(fā)布的Zen3設(shè)計(jì),AMD也不會(huì)看起來(lái)很好。
在整個(gè)SPEC2006圖表中,A14的表現(xiàn)絕對(duì)出色,在絕對(duì)性能上領(lǐng)先于AMD最近的Ryzen 5000系列。
事實(shí)上,蘋果能夠在一個(gè)包括SoC、DRAM和監(jiān)管機(jī)構(gòu)在內(nèi)的設(shè)備總功耗為5W的情況下實(shí)現(xiàn)這一點(diǎn),而在沒(méi)有DRAM或監(jiān)管的情況下,設(shè)備功耗為+21W (1185G7)和49W (5950X)。這絕對(duì)是令人震驚的。
對(duì)于GeekBench等更常見(jiàn)的基準(zhǔn)測(cè)試套件,已經(jīng)有了許多批評(píng),但坦率地說(shuō),我發(fā)現(xiàn)這些擔(dān)憂或爭(zhēng)論是完全沒(méi)有根據(jù)的。SPEC中的工作負(fù)載和GB5中的工作負(fù)載之間的唯一實(shí)際區(qū)別是,后者的異常值測(cè)試較少,這意味著它更多地是一個(gè)CPU基準(zhǔn)測(cè)試,而SPEC更傾向于CPU+DRAM。
蘋果公司在兩種工作負(fù)載中均表現(xiàn)出色,這證明它們具有極其平衡的微體系結(jié)構(gòu),并且Apple Silicon將能夠在性能方面擴(kuò)展至“桌面工作負(fù)載”而不會(huì)出現(xiàn)太大問(wèn)題。
性能軌跡最終在哪里相交
在A7發(fā)布期間,人們對(duì)蘋果稱其微體系結(jié)構(gòu)為桌面類設(shè)計(jì)的事實(shí)相當(dāng)不屑一顧。人們對(duì)我們幾年前把A11和A12稱為接近桌面水平的性能數(shù)據(jù)也非常不屑一顧,今天標(biāo)志著這個(gè)行業(yè)的一個(gè)重要時(shí)刻,因?yàn)樘O果A14現(xiàn)在顯然能夠展示出英特爾所能提供的最佳性能。這是一個(gè)多年來(lái)一直在穩(wěn)步執(zhí)行和進(jìn)步的績(jī)效軌跡:
在過(guò)去的5年里,英特爾成功地將他們最好的單線程性能提高了約28%,而蘋果成功地將他們的設(shè)計(jì)提高了198%,或者說(shuō)是2015年底蘋果A9性能的2.98倍(3倍)。
這些年來(lái),Apple的性能軌跡和毫無(wú)疑問(wèn)的執(zhí)行力已使Apple Silicon成為當(dāng)今的現(xiàn)實(shí)。任何看到這張圖表的荒謬之處的人都會(huì)意識(shí)到,蘋果除了放棄英特爾和x86、轉(zhuǎn)而采用自己的內(nèi)部微架構(gòu)之外,沒(méi)有其他選擇——按部不動(dòng)將意味著停滯不前和更糟糕的消費(fèi)產(chǎn)品。
今天的公告只涉及蘋果筆記本電腦級(jí)的蘋果硅芯片,雖然我們?cè)谧珜懕疚臅r(shí)還不知道蘋果將推出什么產(chǎn)品的細(xì)節(jié),但蘋果巨大的能效優(yōu)勢(shì)意味著新芯片將能夠提供大幅延長(zhǎng)的電池壽命和/或大幅提升的性能當(dāng)前的英特爾MacBook產(chǎn)品線。
蘋果公司聲稱,他們將在兩年內(nèi)將整個(gè)消費(fèi)產(chǎn)品線完全轉(zhuǎn)換為蘋果硅芯片,這也預(yù)示著我們將看到未來(lái)的Mac Pro將采用高TDP 多核設(shè)計(jì)。如果該公司能夠繼續(xù)目前的表現(xiàn)軌跡,它將看起來(lái)非常令人印象深刻。
蘋果瞄準(zhǔn)明星:在任的x86要小心了
前幾頁(yè)是在蘋果正式宣布新的M1芯片之前寫的。我們已經(jīng)看到了A14的出色表現(xiàn),并超過(guò)了英特爾所能提供的最好的性能。新的M1的表現(xiàn)應(yīng)該明顯高于這一水平。
在演示過(guò)程中,我們將回顧蘋果的幾張幻燈片,以期對(duì)性能和效率有何期待。特別是性能/功率曲線,這是蘋果目前分享的最詳細(xì)的信息:
在這張圖中,蘋果展示了新的M1芯片,其CPU功耗峰值約為18W。與之競(jìng)爭(zhēng)的PC筆記本電腦芯片在35-40W范圍內(nèi)達(dá)到峰值,因此這些數(shù)據(jù)肯定不是單線程性能數(shù)據(jù),而是全芯片多線程性能。我們不知道這是否是比較M1與AMD Renoir 芯片或英特爾ICL或TGL芯片,但在這兩種情況下,同樣的普遍結(jié)論適用:
蘋果公司使用了更為先進(jìn)的微體系結(jié)構(gòu),該體系結(jié)構(gòu)提供了顯著的IPC,可在低內(nèi)核時(shí)鐘下實(shí)現(xiàn)高性能,與現(xiàn)有的x86處理器相比,可顯著提高電源效率。該圖顯示,與現(xiàn)有競(jìng)爭(zhēng)產(chǎn)品相比,M1在峰峰值處的性能提升約40%,而功耗僅為40%。
蘋果公司對(duì)隨機(jī)性能點(diǎn)的比較是值得批評(píng)的,但是蘋果聲稱其性能是2.5倍的10W測(cè)量點(diǎn)確實(shí)是有道理的,因?yàn)檫@是基于Intel的MacBook Air使用的芯片的標(biāo)稱TDP。同樣,這要?dú)w功于Apple在移動(dòng)領(lǐng)域已經(jīng)實(shí)現(xiàn)的能效特性,因此M1有望展現(xiàn)出如此大的收益-它肯定與我們的A14數(shù)據(jù)相匹配。
不要忘了GPU
今天,我們主要討論了CPU方面的問(wèn)題,因?yàn)檫@是發(fā)生前所未有的行業(yè)轉(zhuǎn)變的地方。但是,我們不應(yīng)忘記GPU,因?yàn)樾碌腗1代表了Apple首次將其自定義設(shè)計(jì)引入Mac領(lǐng)域。
蘋果在性能和能效方面的聲明確實(shí)缺乏背景,因?yàn)槲覀儾恢浪麄兊谋容^點(diǎn)是什么。我不會(huì)試圖在這里建立理論,因?yàn)橛刑嗟淖兞吭谄鹱饔?,而且我們不知道足夠的?xì)節(jié)。
我們所知道的是,在移動(dòng)領(lǐng)域,蘋果在性能和能效方面絕對(duì)領(lǐng)先。上次我們測(cè)試A12Z的時(shí)候,它的設(shè)計(jì)遠(yuǎn)遠(yuǎn)超過(guò)了集成圖形設(shè)計(jì)。但從那以后,AMD和英特爾的業(yè)績(jī)都出現(xiàn)了更顯著的躍升。
性能領(lǐng)導(dǎo)?
蘋果聲稱M1是世界上最快的CPU。根據(jù)我們的數(shù)據(jù),A14擊敗了所有英特爾的設(shè)計(jì),只是低于AMD最新的Zen3芯片——高于3GHz的更高時(shí)鐘,更大的L2緩存,和釋放的TDP,我們當(dāng)然可以相信蘋果和M1能夠?qū)崿F(xiàn)這一目標(biāo)。
這個(gè)時(shí)刻已經(jīng)醞釀了多年,而新的Apple Silicon既令人震驚,也讓人非常期待。在接下來(lái)的幾周內(nèi),我們將嘗試得到我們的新硬件,并證實(shí)蘋果的說(shuō)法。
英特爾在市場(chǎng)上停滯不前,今天失去了一個(gè)主要客戶。AMD最近已經(jīng)有了很大的進(jìn)步,但是要趕上蘋果的耗電量還是非常困難的。如果蘋果的性能軌跡繼續(xù)以這種速度發(fā)展下去,x86的性能皇冠可能永遠(yuǎn)也無(wú)法重新獲得。