蘋(píng)果Mac開(kāi)始換用自家芯片,,對(duì)Intel而言無(wú)疑是個(gè)打擊。蘋(píng)果在去年的MacBook系列產(chǎn)品發(fā)布會(huì)上,,提到自家M1芯片時(shí),,不忘大談相比前代MacBook產(chǎn)品,其CPU性能提升2.8倍,;GPU性能提升5倍,;比較的就是Intel處理器了。設(shè)備續(xù)航還提升到了20小時(shí),。
這些數(shù)字,,就半導(dǎo)體行業(yè)摩爾定律停滯的現(xiàn)狀來(lái)看簡(jiǎn)直不可思議。當(dāng)然其對(duì)比內(nèi)容,、對(duì)比對(duì)象是值得商榷的,。不過(guò)這樣的對(duì)比數(shù)字,蘋(píng)果并不是頭一回用了,。在Mac還在用PowerPC處理器的年代(1999年),,蘋(píng)果在宣傳中曾提過(guò),PowerPC G3比當(dāng)時(shí)的Intel奔騰II快2倍,。如此似曾相識(shí),。
這個(gè)所謂快“2倍”的說(shuō)法,大致可窺見(jiàn)蘋(píng)果在處理器理念上的一脈相承,,即便當(dāng)時(shí)的蘋(píng)果還沒(méi)有自己的芯片設(shè)計(jì)團(tuán)隊(duì),。事實(shí)上,當(dāng)時(shí)所謂的快2倍,,是蘋(píng)果在發(fā)布會(huì)上對(duì)比Mac和Windows PC,,分別采用PowerPC G3處理器和Intel奔騰II處理器,對(duì)比內(nèi)容是雙方自動(dòng)執(zhí)行一組Photoshop任務(wù),。
演示中的那臺(tái)Mac能夠用Windows PC一半的時(shí)間,,完成這些任務(wù)。這其中的關(guān)鍵在于,,PowerPC G3多加了個(gè)AltiVec加速單元,,這是個(gè)128bit矢量處理單元,可單周期內(nèi)執(zhí)行4路單精度浮點(diǎn)數(shù)學(xué)運(yùn)算。Photoshop能夠充分利用這個(gè)單元,,AltiVec效率比那時(shí)Intel的MMX擴(kuò)展指令更高,。
用簡(jiǎn)單的話(huà)來(lái)說(shuō),就是依靠專(zhuān)用單元來(lái)實(shí)現(xiàn)性能和效率的碾壓,。雖說(shuō)PowerPC早就被x86打趴,,但這個(gè)理念很大程度延續(xù)到了如今的蘋(píng)果芯片(包括A系列和M系列SoC),下面將從技術(shù)角度詳述,,M1身上體現(xiàn)的這一點(diǎn),。
事實(shí)上,M1芯片的出現(xiàn)不僅讓x86陣營(yíng)感到了白色恐怖,,而且也對(duì)高通這樣的Arm陣營(yíng)參與者構(gòu)成了極大威脅,。高通已經(jīng)與微軟合作過(guò)兩代芯片(SQ1與SQ2)產(chǎn)品,且開(kāi)推Surface Pro X(及其Windows 10 on Arm)兩年,,卻在M1面前顯得不值一提,。
本文是《Intel換了CEO能做蘋(píng)果M1那樣的芯片嗎?PC處理器大小核反擊戰(zhàn)》一文的姊妹篇,,本文將從M1芯片的角度談?wù)?,蘋(píng)果是如何在技術(shù)上達(dá)成對(duì)Intel、高通,,以及其他競(jìng)爭(zhēng)對(duì)手的威懾的,;并嘗試探討,蘋(píng)果為什么能做到這一點(diǎn),,以及Intel,、高通這樣的競(jìng)爭(zhēng)對(duì)手又能否做到這一點(diǎn)。本文除前兩部分之外,,剩余部分皆可根據(jù)興趣選擇性閱讀,。
碾壓Intel和高通
有關(guān)蘋(píng)果為什么要給MacBook換用自家芯片的問(wèn)題,可能答案有很多,,包括蘋(píng)果生態(tài)的全面掌控,,以及出于對(duì)成本預(yù)算進(jìn)一步的控制等。如果僅從處理器本身的性能和效率來(lái)看,,AnandTech的一張圖基本上很好地回答了這個(gè)問(wèn)題:
這張圖對(duì)比的是Intel與蘋(píng)果芯片,,從2013年以來(lái)處理器的單線(xiàn)程性能變化趨勢(shì)(具體測(cè)試項(xiàng)為SPECint2006)。在過(guò)去5年里,,Intel處理器產(chǎn)品的單線(xiàn)程性能提升了大約28%,,而蘋(píng)果CPU則實(shí)現(xiàn)了198%的性能提升?;蛘哒f(shuō)A14處理器單線(xiàn)程性能是A9的將近3倍,。
M1與A14芯片共享了Firestorm大核,大致上可認(rèn)為兩者有著接近的單線(xiàn)程性能(M1頻率高于A14,L2 cache也更大等),。2020年蘋(píng)果芯片性能,,因此剛好形成了相較Intel處理器的剪刀叉趨勢(shì)。所以最新的MacBook開(kāi)始采用自家芯片,,就性能來(lái)看顯得順理成章,。
事實(shí)上,蘋(píng)果在A7芯片(iPhone 5s)時(shí)期就宣稱(chēng),,自家的Cyclone核心是“桌面級(jí)架構(gòu)”。不過(guò)當(dāng)時(shí)并沒(méi)有多少人在意,。而且在M1出現(xiàn)之前,,更多人還是堅(jiān)定地認(rèn)為,Arm處理器相較x86,,只能做低功耗,,而無(wú)法實(shí)現(xiàn)如同x86那樣的高性能。蘋(píng)果卻以實(shí)際行動(dòng)證明了這個(gè)觀(guān)點(diǎn)的錯(cuò)誤性,。
不少對(duì)比測(cè)試提到,,M1比Intel酷睿i9還彪悍,這話(huà)是否夸張了,?我們來(lái)大致梳理一下,,M1芯片相較x86和Arm面向PC的主流處理器,性能處在哪個(gè)水平上,。
蘋(píng)果M1芯片本身的配置如下:
官方并未公布M1芯片的TDP(或大致功耗),。AnandTech測(cè)試認(rèn)為M1的CPU TDP在20-24W。極客灣的測(cè)試也基本印證了其CPU TDP在25W左右(峰值功耗24W,,日常峰值功耗在15W左右),。這個(gè)值未必是準(zhǔn)確的,包括其中可能包含DRAM功耗,,不過(guò)也八九不離十,。
極客灣數(shù)據(jù),GPU部分全速運(yùn)轉(zhuǎn)峰值功耗在10W左右,;整個(gè)M1芯片可達(dá)成的峰值功耗大約為34W,。AnandTech則在測(cè)試中提到,GFXBench Aztec High測(cè)試出現(xiàn)過(guò)17.3W的功耗,,這個(gè)測(cè)試應(yīng)該很難反映GPU單獨(dú)占到了多少,。整體上,這樣的功耗與TDP水平,,大約與Intel,、AMD的低壓處理器差不多。
AnandTech執(zhí)行的測(cè)試項(xiàng)目比較多,這里僅選取SPEC2006/SPEC2017來(lái)闡明其實(shí)際性能,。其SPECint2006整數(shù)性能測(cè)試,,蘋(píng)果M1與AMD Zen 3接近;SPECfp2006浮點(diǎn)性能測(cè)試,,M1有顯著更大的優(yōu)勢(shì),。綜合下來(lái),其性能綜合表現(xiàn)如下:
來(lái)源:AnandTech
需要注意,,這是單線(xiàn)程性能成績(jī),。M1的這個(gè)成績(jī)顯著強(qiáng)于Intel十一代酷睿(同等TDP水平的酷睿i7-1185G7),以及酷睿i9-10900K(十代酷睿,,Comet Lake-S),,甚至比AMD Zen 3(Ryzen 9 5950X)還要強(qiáng)。
蘋(píng)果所說(shuō)相比前代MacBook幾倍幾倍的提升,,似乎完全沒(méi)在吹牛,。SPEC2017測(cè)試結(jié)果與SPEC2006也差不多,不過(guò)M1和AMD Zen 3(Ryzen 9 5950X)互有勝負(fù),,M1整數(shù)性能整體不及Zen 3,,浮點(diǎn)性能則反超。
這個(gè)對(duì)比還基于一個(gè)事實(shí):M1大核的最高頻率僅為3.2GHz,,而Intel十一代酷睿(i7-1185G7)的睿頻為4.8GHz,,酷睿i9-10900K的睿頻更是能夠達(dá)到5.3GHz;AMD Zen 3(Ryzen 9 5950X)睿頻為4.9GHz。與M1相比,,對(duì)比對(duì)象的功耗會(huì)明顯更高,。
換句話(huà)說(shuō),蘋(píng)果M1事實(shí)上成為了如今CPU的IPC之王,。IPC也就是每周期指令執(zhí)行能力,,或者說(shuō)每Hz能干多少事??梢?jiàn)M1是能夠甩開(kāi)目前最彪悍的x86處理器的,。
來(lái)源:AnandTech
多核性能測(cè)試方面,受限于M1本身僅有4個(gè)大核與4個(gè)小核,,與堆了8核心,、10核心還支持超線(xiàn)程的那群大家伙自然無(wú)法相比。不過(guò)M1在性能方面仍然能夠碾壓Intel低壓版的十一代酷睿(i7-1185G7,,4核8線(xiàn)程,,睿頻4.8GHz,TDP 28W),。M1如果擴(kuò)大核心數(shù)量和處理器規(guī)模,,則要實(shí)現(xiàn)多線(xiàn)程性能奪冠,,應(yīng)該也不是難事。
其他測(cè)試結(jié)果大致相似,,包括Geekbench 5單線(xiàn)程測(cè)試,,M1輕松奪冠,超AMD Zen 3(Ryzen 9 5950X)和Intel酷睿i9-10900K;CineBench R23單線(xiàn)程性能略弱于AMD Zen 3,,多線(xiàn)程性能比AMD Ryzen 4800U(Zen 2,,8核16線(xiàn)程)弱大約15.6%,比Intel十一代酷睿(i7-1165G7,,4核8線(xiàn)程)強(qiáng)60%,。
蘋(píng)果為了實(shí)現(xiàn)M1芯片與x86軟件的兼容性,做了Rosetta 2中間轉(zhuǎn)譯層,。如此一來(lái),,以前的x86軟件不需要改動(dòng),也能跑在M1芯片上,。這種方案會(huì)令程序執(zhí)行效率變低。即便有Rosetta 2轉(zhuǎn)譯,,M1芯片跑傳統(tǒng)x86程序,,其性能也可達(dá)到Intel八代酷睿的水平(對(duì)于AVX指令依賴(lài)較低的程序,M1+Rosetta 2性能與十代酷睿相似),。
因?yàn)槠P(guān)系,,測(cè)試項(xiàng)細(xì)節(jié)無(wú)法展開(kāi)分析。不過(guò)總結(jié)一句話(huà)就是:在同等核心規(guī)模的CPU中,,蘋(píng)果M1芯片在跑常規(guī)性能測(cè)試時(shí),,能夠以低很多的功耗達(dá)成相比x86處理器更強(qiáng)的性能。同等規(guī)模下,,全面干翻Intel完全不是問(wèn)題,,即便和AMD打得有來(lái)有回,也是AMD犧牲功耗換來(lái)的(在單核性能測(cè)試中,,AMD Zen 3能到49W功耗水平,,而蘋(píng)果M1為7-8W的整機(jī)功耗)。
前面這些都是與x86處理器相比,,那么和同為Arm陣營(yíng)的對(duì)手相比呢,?微軟2019年發(fā)布了Surface Pro X,這臺(tái)設(shè)備搭載的是一枚叫做Microsoft SQ1的芯片,,它實(shí)際上是高通驍龍8cx的馬甲,;2020年更新了Surface Pro X二代,Microsoft SQ2芯片,,也就是二代驍龍8cx,。
微軟在Windows 10 on Arm的規(guī)劃上,,比蘋(píng)果更早。高通驍龍8cx也成為M1芯片在Arm陣營(yíng)的絕佳對(duì)比對(duì)象,。Linus Tech Tips對(duì)驍龍8cx(二代)與M1芯片,,做了性能測(cè)試對(duì)比。
來(lái)源:Linus Tech Tips,,其中SQ2即為高通驍龍8cx二代
從Geekbench 5和CineBench R23的測(cè)試結(jié)果就很容易發(fā)現(xiàn),,M1可將驍龍8cx(Microsoft SQ2)按在地上摩擦。這兩者根本就不在一個(gè)性能水平線(xiàn)上,,不過(guò)驍龍8cx的功耗水平應(yīng)該也更低(雖然好像Surface Pro X的續(xù)航也沒(méi)比M1版MacBook Air優(yōu)秀),。
比較具有諷刺意義的是,Linus Tech Tips嘗試用一些虛擬機(jī)的奇技淫巧,,給M1版MacBook Air裝上了Windows 10 on Arm,。然后用虛擬機(jī)里面的Windows來(lái)跑Geekbench 5,結(jié)果發(fā)現(xiàn),,其性能水平也遙遙領(lǐng)先于Surface Pro X,,算是狠狠打了高通和微軟的耳光:
來(lái)源:Linus Tech Tips
這個(gè)測(cè)試也少了對(duì)于功耗的監(jiān)測(cè),不過(guò)它仍能說(shuō)明M1芯片即便加個(gè)虛擬機(jī)中間層,,跑別家操作系統(tǒng),,效率打個(gè)折扣,依然遠(yuǎn)強(qiáng)于高通如今面向低功耗PC所推的競(jìng)品,。
除開(kāi)性能,,M1芯片的低功耗也已經(jīng)有很多測(cè)試的先例了。在我上篇有關(guān)大小核設(shè)計(jì)的文章中也談到了M1足以驚掉x86處理器下巴的低功耗表現(xiàn),,幾乎所有日常使用場(chǎng)景,,包括辦公、網(wǎng)頁(yè)瀏覽,、閑置待機(jī),,功耗都比Intel和AMD同代競(jìng)品低了幾個(gè)數(shù)量級(jí):M1芯片網(wǎng)頁(yè)瀏覽功耗僅相當(dāng)于十一代酷睿的1/6,視頻流播功耗則僅有十一代酷睿的15%,,Word辦公功耗則相當(dāng)于十一代酷睿的20%-30%……
蘋(píng)果究竟是如何做到拳打Intel/AMD,,腳踢高通和Arm的?
要把芯片做大
前面這部分性能數(shù)據(jù)呈現(xiàn),,并未給出CPU之外其他部分的數(shù)據(jù),。包括蘋(píng)果的8核GPU,性能相比Intel最新的Xe核顯(十一代酷睿)都有顯著優(yōu)勢(shì),,真實(shí)游戲性能可達(dá)到Geforce MX350的水平,;以及AI專(zhuān)用單元、AMX等組成部分,,鑒于篇幅皆不再展開(kāi),。
標(biāo)題說(shuō)M1比Intel酷睿i9彪悍,,這話(huà)雖不可一概而論——比如酷睿i9一定在多核性能表現(xiàn)上是優(yōu)于M1的,畢竟處理器規(guī)模大很多,。但作為一顆低壓處理器,,實(shí)際使用中,M1的確在很多場(chǎng)景下能夠達(dá)到酷睿i9的水平,。
比如Final Cut Pro剪視頻實(shí)時(shí)預(yù)覽和多種格式的編解碼,;Xcode寫(xiě)代碼直接秒殺iMac 2020高配版;即便是以負(fù)優(yōu)化著稱(chēng)的Adobe Premiere,,M1都在很多項(xiàng)目上(而且還是Rosetta 2轉(zhuǎn)譯)足以對(duì)酷睿i9構(gòu)成威脅,。要知道M1和酷睿i9,前者定位便攜式設(shè)備,,而后者定位工作站(i9-10900K),。
蘋(píng)果達(dá)成這個(gè)水平,究竟靠什么,?很多人說(shuō)是蘋(píng)果的軟硬件契合度高,,這的確是個(gè)重要因素,但不夠具體,??偨Y(jié)成三點(diǎn),大致上是M1芯片超寬微架構(gòu),;諸多專(zhuān)用單元的堆砌;蘋(píng)果超強(qiáng)的生態(tài)掌控力,。
這幾點(diǎn)將在下文詳述,。不過(guò)這幾點(diǎn)的外部表現(xiàn)就是,很大的芯片面積(die size),,或者很多的晶體管數(shù)量,。因?yàn)闊o(wú)論是超寬的處理器微架構(gòu),還是為某些功能做專(zhuān)用的硬件單元,,都需要更多的die空間,。蘋(píng)果自家芯片在A系列產(chǎn)品線(xiàn)上,就有超大die size的傳統(tǒng),。早在蘋(píng)果iPhone 5s時(shí)期,,其芯片尺寸就比其他手機(jī)SoC大很多,有時(shí)大1倍(A11 Monsoon大核心加cache占地面積,,比驍龍845的A75大核與cache大1倍還多),。
來(lái)源:AnandTech
如果單看die size的話(huà),蘋(píng)果A7,、A8用上4MB L3 cache之時(shí),,同時(shí)代的Cortex-A57/A72/A73都還沒(méi)有L3 cache,,到A75才支持。更不要說(shuō)蘋(píng)果喜歡堆超大的L2 cache,,蘋(píng)果A11有著8MB L2 cache,,可以用巨大來(lái)形容。高通驍龍835才3MB L2 cache,,沒(méi)有L3 cache(2016-2017年),。
而且蘋(píng)果從幾年前就喜歡給整個(gè)SoC芯片加system cache(或者叫System Level Cache -SLC,Arm公版設(shè)計(jì)現(xiàn)在普遍也有了),。這種system cache屬于整個(gè)SoC級(jí)別的cache,,在SoC的各個(gè)IP(如CPU、GPU,、NPU等)之間共享,。A12的system cache就達(dá)到了8MB,相比A11翻番,。
A14與M1的system cache目前是16MB,,是麒麟、驍龍這些移動(dòng)陣營(yíng)競(jìng)爭(zhēng)對(duì)手的2-3倍,。而Intel十一代酷睿Tiger Lake(i7-1185G7)的L3 cache也不過(guò)12MB,。至于L2 cache,M1的Firestorm大核是12MB,,小核都有4MB,。移動(dòng)陣營(yíng)就不說(shuō)了,Intel十一代酷睿L2 cache(i7-1185G7)為4x 1.25MB,。作為對(duì)比,,酷睿i9-10900K(十代酷睿)L2 cache 2.5MB(每核256KB),L3 cache 20MB,。
?。ú贿^(guò)蘋(píng)果的cache設(shè)計(jì)和一般CPU似乎不大一樣,包括L2 cache共享,;而且system cache在速度上應(yīng)該也是比不上僅面向CPU的L3 cache的,。)
L1 cache的巨型相較其他競(jìng)品(如192KB的L1指令緩存,是Arm公版設(shè)計(jì)的3倍,,x86現(xiàn)有設(shè)計(jì)的6倍,;據(jù)說(shuō)速度還很快),也就不需要再多談了,。單就芯片上占地面積巨大的cache而言,,蘋(píng)果都始終在規(guī)模上有著令人肝顫的堆料。當(dāng)然cache大小并不能說(shuō)明性能高低,,而且大尺寸的存儲(chǔ)子系統(tǒng)易帶來(lái)更高的時(shí)延,。但論消費(fèi)電子應(yīng)用處理器的堆料,,在低壓處理器這個(gè)量級(jí)內(nèi),大概沒(méi)人能強(qiáng)過(guò)蘋(píng)果,。下文還會(huì)詳述,,“堆料”堆的可不只是cache。
那么Intel,、AMD,、高通這些競(jìng)爭(zhēng)對(duì)手也這么堆料可行嗎?排除微架構(gòu)上的一些限制不談,,就商業(yè)模式而言,,Intel、AMD和高通雖然也可以這么做,,但卻非常不經(jīng)濟(jì),。因?yàn)檫@樣堆料,意即die size的增加,,也就意味著成本的急劇提升,。芯片制造工藝的提升,一定程度也是為了在更小的die size內(nèi),,實(shí)現(xiàn)更高的性能,,并縮減成本。
蘋(píng)果之所以可以這么做,,是因?yàn)樘O(píng)果最終面向用戶(hù)出售的是終端設(shè)備,。比如一臺(tái)iPhone上,除了SoC芯片之外,,還有屏幕,、閃存、增值服務(wù)等,。但面向用戶(hù)時(shí),就只有一個(gè)終端設(shè)備價(jià)格,。拋開(kāi)iPhone一年幾億銷(xiāo)量,,以及iPhone吃下整個(gè)手機(jī)市場(chǎng)大半的利潤(rùn)不談,蘋(píng)果也可以在不同組件之間來(lái)權(quán)衡,、抵消,、轉(zhuǎn)嫁各種成本支出。iPad,、MacBook也都可受惠于iPhone芯片設(shè)計(jì)的經(jīng)驗(yàn),,及iPhone巨大出貨量帶來(lái)的營(yíng)收。
而Intel,、AMD,、高通這些企業(yè)出售的只是處理器,,他們需要依靠處理器來(lái)獲取利潤(rùn)。下游手機(jī)廠(chǎng)商要賺錢(qián),,上游IP供應(yīng)商也要賺錢(qián),。在產(chǎn)業(yè)鏈各不同環(huán)節(jié)利潤(rùn)疊加的情況下,成本控制顯得尤為重要,。
此外,,Intel的處理器不僅面向某一個(gè)型號(hào)的PC,而且面向不同價(jià)位的PC,,以及其他市場(chǎng),,如服務(wù)器、數(shù)據(jù)中心,。其中的核心IP很大程度上會(huì)復(fù)用,,如果核心都做得很大很寬,對(duì)需求大量核心并行運(yùn)算的使用場(chǎng)景而言,,就會(huì)顯得尤為昂貴,。所以單純以芯片制造商身份存在的這些企業(yè),很難像蘋(píng)果這樣“不講武德”地堆料,,因?yàn)槠渖虡I(yè)模式是根本不同的,。
對(duì)于一般的芯片制造商而言,通過(guò)提升芯片頻率來(lái)獲得性能提升,,而不是增大芯片面積,、增加成本來(lái)獲得性能提升,顯然是更為經(jīng)濟(jì)的方案,。
在成本控制問(wèn)題上,,尤為值得一提的是,在前年《深度學(xué)習(xí)的興起,,是通用計(jì)算的挽歌,?》一文中,我曾提到芯片設(shè)計(jì)與制造的成本正在逐年攀升,,尤其尖端制造工藝成本,,包括建廠(chǎng)成本在內(nèi)。即便不看技術(shù)限制,,現(xiàn)有市場(chǎng)參與者也已經(jīng)不可能再像過(guò)去那樣按照摩爾定律去迭代制造工藝,。而這件事情對(duì)于Intel的影響,也遠(yuǎn)大于對(duì)臺(tái)積電,、三星的影響,。因?yàn)镮ntel主要營(yíng)收來(lái)源就是尖端工藝,臺(tái)積電和三星的早期制造工藝也是其重要的營(yíng)收來(lái)源。
Intel在10nm與7nm難產(chǎn)的當(dāng)口,,將極易陷入惡性循環(huán),,不僅影響到其芯片產(chǎn)品的市場(chǎng)競(jìng)爭(zhēng)力,而且可能會(huì)越來(lái)越遠(yuǎn)離世界最尖端工藝工廠(chǎng)的稱(chēng)謂,。Intel如今背負(fù)的包袱,,都會(huì)比蘋(píng)果、AMD,、高通,、三星這些不同層級(jí)的市場(chǎng)參與者都明顯更為沉重。
超寬的架構(gòu)(選讀)
當(dāng)然,,“把芯片做大”只是結(jié)果,,而不是目的。之所以芯片做大,,除了更大的cache獲得更高的數(shù)據(jù)帶寬之外,,還在于蘋(píng)果熱衷于超寬的處理器架構(gòu),以及還喜歡給SoC加各種專(zhuān)用單元,。以下文字內(nèi)容皆可選讀,,面向輕度技術(shù)愛(ài)好者。
前文就提到蘋(píng)果M1以?xún)H3.2GHz主頻,,獲得了超過(guò)競(jìng)爭(zhēng)對(duì)手5GHz頻率處理器的性能,。那么M1的頻率若是提到5GHz,豈不是就逆天了,?這一點(diǎn)恐怕是無(wú)法達(dá)成的,,因?yàn)樘O(píng)果走的“寬”核心路線(xiàn),將更不利于頻率提升,,否則功耗也更容易崩邊,。一般的,頻率提高,,功耗會(huì)以頻率三次方的比例提高,。所以那些以將近5GHz換得與M1差不多性能的處理器,也需要付出對(duì)應(yīng)功耗的代價(jià),。
在iPhone 6s時(shí)代,,蘋(píng)果A9及更早的處理器,普遍有著比市面上同期競(jìng)品更低頻率的傳統(tǒng),。比如說(shuō)蘋(píng)果A8是1.5GHz主頻,,A9則為1.8GHz,,而同期的Arm Cortex-A72頻率已經(jīng)來(lái)到2.5GHz,,A73則為2.8GHz。但蘋(píng)果處理器依然有默秒全的性能水準(zhǔn)。這是因?yàn)樘O(píng)果一直以來(lái)都很喜歡搞“寬”核心,,實(shí)現(xiàn)更高的指令并行度,,也表現(xiàn)在IPC數(shù)字上(雖然現(xiàn)在的A系列處理器也來(lái)到了3GHz水平上)。
即每周期可做的事情更多,,自然能夠以更低的頻率跑任務(wù),。高指令并行或者高IPC,要求更“寬”的處理器核心,,比如每周期能同時(shí)讀取,、解碼,執(zhí)行或者回寫(xiě)多條指令,。提升指令并行度的方法有很多,,當(dāng)代處理器架構(gòu)的一個(gè)重要因素就是亂序執(zhí)行能力。也就是讓沒(méi)有依賴(lài)關(guān)系的指令可以亂序執(zhí)行,,后面的指令不必等到前面的指令執(zhí)行完再執(zhí)行,。
不過(guò)亂序執(zhí)行需要額外的電路,來(lái)解決很多可能會(huì)遭遇的實(shí)際問(wèn)題,,也就要求更多的芯片面積和功耗,。而“拓寬”整個(gè)架構(gòu),比如提升每周期解碼指令的數(shù)量,,許多的dispatch單元,,增加更多的ALU執(zhí)行單元,以增加指令并行度,,都需要額外的芯片面積,。
而且拓寬架構(gòu)也并沒(méi)有那么簡(jiǎn)單,如何讓拓寬的這些單元保持足夠高的利用率,,而不是浪費(fèi)資源也多有講究,。但越寬的處理器架構(gòu),起碼是實(shí)現(xiàn)較高指令并行的基礎(chǔ),。
前文提到,,對(duì)于Intel這樣的芯片制造商,很多時(shí)候通過(guò)提升處理器頻率來(lái)獲得性能提升,,而不是增大芯片面積,、拓寬芯片架構(gòu)、增加成本來(lái)獲得性能提升,,顯然是更為經(jīng)濟(jì)的方案,。更窄、更“深”的處理器架構(gòu),,也更易于提升頻率,。
蘋(píng)果M1芯片CPU部分的寬度,某種程度上達(dá)到了新高。下面這張圖來(lái)自AnandTech,,是Andrei Frumusanu畫(huà)的Firestorm核心(即A14和M1大核心)架構(gòu)框圖,,是他結(jié)合研究與經(jīng)驗(yàn)得到的。現(xiàn)在流傳絕大部分有關(guān)Firestorm微架構(gòu)的解讀應(yīng)當(dāng)都脫胎于此:
來(lái)源:AnandTech
其中有一些尤為值得一提的點(diǎn),。首先是前端8-wide指令解碼,,這是什么概念呢?AnandTech評(píng)論其為目前行業(yè)內(nèi)“最寬的商用設(shè)計(jì)”,。AMD和Intel當(dāng)代處理器指令解碼寬度普遍為4-wide(Intel為1+4),;Arm這邊,解碼寬度主流是4-wide,,今年主推的Cortex-X1為5-wide;傳說(shuō)中超超超寬的三星M3(Exynos 9810),,解碼寬度6-wide。
從AnandTech的研究來(lái)看,,蘋(píng)果A11,、A12的解碼寬度就達(dá)到了7-wide,A13步入8-wide大關(guān),。
其次是ROB(Re-order Buffer),,也就是亂序執(zhí)行的重排序buffer。Firestorm的ROB達(dá)到了630個(gè)條目(或者差不多630),。ROB越深,,則一定程度上表明了具備更高的亂序度,也是更寬架構(gòu)的寫(xiě)照,。與此相比,,Intel的十一代酷睿(Willow Cove)ROB為352條目,AMD Zen 3為256條目,,Arm Cortex-X1為224條目,。看起來(lái)高度指令并行就是蘋(píng)果要達(dá)到的,。
Firestorm的后端執(zhí)行引擎部分也非?!皩挕薄U麛?shù)管線(xiàn)部分,,重命名物理寄存器堆(INT Rename PRF)大小約354條目,,算術(shù)運(yùn)算“至少”7個(gè)執(zhí)行端口,包括4個(gè)簡(jiǎn)單ALU(ADD指令),,2個(gè)復(fù)雜ALU(MUL),,以及一個(gè)專(zhuān)用整數(shù)除法單元。核心每周期可處理2個(gè)分支,。
不過(guò)整數(shù)管線(xiàn)部分“變化不大”,,浮點(diǎn)與矢量執(zhí)行管線(xiàn)部分是Firestorm的重點(diǎn),。前文也提到了在性能測(cè)試?yán)铮琈1的浮點(diǎn)運(yùn)算能力相比競(jìng)爭(zhēng)對(duì)手有較大優(yōu)勢(shì),。Firestorm增加了第四條執(zhí)行管線(xiàn),浮點(diǎn)重命名寄存器為384條目,,也“相當(dāng)之大”,。4條128bit NEON管線(xiàn),和AMD,、Intel桌面處理器現(xiàn)有吞吐一致,。浮點(diǎn)操作吞吐與管線(xiàn)數(shù)為1:1的關(guān)系,意即Firestorm核心每周期能夠執(zhí)行4個(gè)FADD(浮點(diǎn)加法)操作和4個(gè)FMUL(浮點(diǎn)乘法)操作,,分別3與4周期延遲,,是Intel處理器每周期吞吐的四倍,Zen 3的兩倍,。
AnandTech評(píng)論說(shuō),,這可能是蘋(píng)果在瀏覽器測(cè)試中表現(xiàn)如此之優(yōu)秀的原因。如今PC上的一個(gè)很重要的應(yīng)用就是web瀏覽,,這大約也是蘋(píng)果意識(shí)到的用戶(hù)需求迫切的一大應(yīng)用場(chǎng)景吧,。此外矢量執(zhí)行能力不變,浮點(diǎn)除法,、倒數(shù),、平方根操作吞吐較低。
最后是存儲(chǔ)子系統(tǒng)部分,,比較值得一提的是load-store前端,,最高可以達(dá)到148-154個(gè)load與106 store,比市面上任何微架構(gòu)都要寬,。與此對(duì)比,,AMD Zen 3這兩個(gè)數(shù)字分別是44和64,Intel十代酷睿(Sunny Cove)分別為128和72,。
而L1 TLB(translation lookaside buffer,,一種頁(yè)表的cache,是一個(gè)內(nèi)存管理單元,,用于提升虛擬地址到物理地址轉(zhuǎn)換速度)翻倍至256 pages,,L2 TLB提至3072 pages。L2 TLB因此能夠覆蓋48MB cache,。緩存部分的提升,,以及與其他競(jìng)品的對(duì)比,這里不再贅述——本文前一個(gè)段落已經(jīng)做了解釋,。
只不過(guò)前面提到的這些并不是一蹴而就的,。在iPhone Xs時(shí)期,,蘋(píng)果A12的Vortex核心在寬度上就已經(jīng)有了桌面級(jí)CPU的規(guī)模,相比當(dāng)時(shí)的Arm Cortex-A76和三星M3,,都要寬上不少,,無(wú)論是執(zhí)行管線(xiàn)還是存儲(chǔ)子系統(tǒng)。所以M1如今的這種超寬架構(gòu),,也算是蘋(píng)果芯片的一脈相承了,。
引入更多專(zhuān)用單元(選讀)
《深度學(xué)習(xí)的興起,是通用計(jì)算的挽歌,?》一文已經(jīng)提到隨摩爾定律放緩,,通用處理器性能提升變慢,為保證滿(mǎn)足應(yīng)用對(duì)性能增長(zhǎng)的需求,,專(zhuān)用處理器是一條更能走得通的路,。實(shí)踐證明,這兩年的這一趨勢(shì)也愈發(fā)顯著,。
本文文首已經(jīng)提到,,PowerPC G3在對(duì)戰(zhàn)Intel奔騰II時(shí)“2倍”速度就是依靠某個(gè)專(zhuān)用單元達(dá)成的。蘋(píng)果的這種思路似乎早年就埋下了,。
此前Geekbench測(cè)試工具經(jīng)常被人戲稱(chēng)為Apple Bench,,原因是很多人認(rèn)為其中的某些測(cè)試項(xiàng)明擺著是給蘋(píng)果和Arm專(zhuān)門(mén)設(shè)計(jì)的,而對(duì)x86非常不友好,。多年前Linux之父Linus Torvalds曾評(píng)論Geekbench is sh*t. 原因是在Arm64架構(gòu)處理器上,,SHA1性能有專(zhuān)用硬件輔助,Arm處理器跑分因此就很好看,。
在Geekbench 5單核性能測(cè)試?yán)?,M1的加密子項(xiàng)得分依然非常高,遠(yuǎn)高于酷睿i9-10990K,。這是此前很多人認(rèn)為,,Arm靠這種方式來(lái)騙分,并認(rèn)定Arm在高性能上做不到x86處理器的依據(jù),。不過(guò)這次Geekbench 5其他項(xiàng)目,,比如整數(shù)、浮點(diǎn)性能,,M1也能碾壓酷睿i9(十代酷睿),。而且專(zhuān)用硬件單元輔助某個(gè)項(xiàng)目,本質(zhì)上對(duì)于體驗(yàn)也是有幫助的,。
類(lèi)似的情況在蘋(píng)果當(dāng)代芯片上相當(dāng)常見(jiàn),。比如用iPad(A14)和MacBook(M1芯片)做視頻剪輯(尤其是Final Cut Pro),其體驗(yàn)和效率就遠(yuǎn)超Windows PC(Intel酷睿),。
這是基于M1芯片中的編解碼器強(qiáng)過(guò)市面上絕大部分GPU(在Handbrake的硬件H.265測(cè)試?yán)?,M1的編碼模塊表現(xiàn)出對(duì)Intel和AMD的徹底碾壓),;外加M1之上的AI專(zhuān)用處理器也參與畫(huà)面分析,專(zhuān)門(mén)的ISP(圖像處理器)可執(zhí)行 ProRes RAW格式的demosaic運(yùn)算,;而且M1內(nèi)部還集成了SSD主控,,對(duì)于I/O敏感操作也有幫助。
所以對(duì)于經(jīng)常需要剪視頻的人來(lái)說(shuō),,M1簡(jiǎn)直太適配了,。同理還有碼農(nóng)、攝影師,,以及單純的視頻娛樂(lè)用戶(hù)等。
這些都建立在M1作為一顆SoC,,以更多專(zhuān)用單元來(lái)解決具體問(wèn)題的基礎(chǔ)上,。雖說(shuō)專(zhuān)用單元彈性欠缺,但蘋(píng)果很清楚MacBook目標(biāo)用戶(hù)群日常都拿設(shè)備來(lái)做什么,。有針對(duì)性地優(yōu)化專(zhuān)用單元,,并且提升特定使用場(chǎng)景下的操作體驗(yàn),達(dá)成性能和效率(功耗表現(xiàn))的雙重提升,。這也印證了通用計(jì)算裹足不前時(shí),,靠專(zhuān)用計(jì)算就是個(gè)重要方向,雖然未必得是專(zhuān)用處理器,。
這些專(zhuān)用單元的存在,,其本質(zhì)在我看來(lái),與Intel為酷睿增加AVX-512指令支持并無(wú)太大區(qū)別,。無(wú)論說(shuō)這些專(zhuān)用單元是“刷分”利器也好(甚至有人說(shuō)system cache也是刷分利器),,是奇技淫巧也好,它們都實(shí)實(shí)在在地發(fā)揮了作用,。
這其中再度迸發(fā)的一個(gè)問(wèn)題是,,既然超寬架構(gòu)和專(zhuān)用單元這么好,Intel和AMD為什么不做呢,?其中的原因大概是多種多樣的,,而且Intel、AMD事實(shí)上也的確在朝著這些方向努力,?;蛟S更重要的一點(diǎn)在這兩個(gè)選項(xiàng),仍是以增加die size為基礎(chǔ)的,,參見(jiàn)文本第二部分,。
還有一些現(xiàn)實(shí)問(wèn)題,比如說(shuō)具體到在CPU前端解碼寬度問(wèn)題上,,x86這種變長(zhǎng)指令,,指令長(zhǎng)度在1-15 bytes之間,,而Arm為4 bytes定長(zhǎng)指令。這也就意味著x86的解碼器很難搞清楚一條指令究竟從哪里開(kāi)始,,需要對(duì)每條指令做長(zhǎng)度分析,。X86處理器在解碼階段因此要處理不少錯(cuò)誤,AMD曾經(jīng)談到過(guò)增加更多解碼器會(huì)導(dǎo)致更多的問(wèn)題,,而4-wide解碼寬度成為其設(shè)計(jì)的一個(gè)限制,。
恐怖的生態(tài)掌控力
從芯片設(shè)計(jì),到操作系統(tǒng),,到開(kāi)發(fā)生態(tài),,到消費(fèi)終端設(shè)備設(shè)計(jì)制造,甚至到銷(xiāo)售,,蘋(píng)果都一手掌控,。這在整個(gè)業(yè)界怕都是絕無(wú)僅有的(三星似乎欠缺十分重要的操作系統(tǒng)環(huán)節(jié))。其促成的商業(yè)模式,,也是蘋(píng)果可以如此在M1和Firestorm核心上任意妄為的基礎(chǔ),,這在前文中就已經(jīng)提過(guò)了。
而除了處理器本身的微架構(gòu),,在更上層的系統(tǒng)設(shè)計(jì)以及軟件架構(gòu)上,,蘋(píng)果也有相當(dāng)?shù)脑?huà)語(yǔ)權(quán)。M1設(shè)計(jì)上的一個(gè)典型代表是封裝在一起的DRAM內(nèi)存,,采用一種叫Unified Memory Architecture技術(shù),。CPU和GPU使用內(nèi)存時(shí),不必再區(qū)隔不同空間,,也就不需要在雙方互通時(shí)進(jìn)行內(nèi)存拷貝這樣的操作,,實(shí)現(xiàn)更低的延遲和更高的吞吐。
?。槑б惶幔?jiǎn)魏薋irestorm也達(dá)到了58GB/s的讀取帶寬,,33-36GB/s寫(xiě)入帶寬,除了表現(xiàn)出色外 ,,AnandTech評(píng)論“單核填滿(mǎn)內(nèi)存控制器這種設(shè)計(jì)令人震驚,,我們之前也從未見(jiàn)到過(guò)”。)
這種設(shè)計(jì)并不新穎,,AMD早年也做過(guò)類(lèi)似的技術(shù),,但并未得到普及。這種設(shè)計(jì)對(duì)于軟件開(kāi)發(fā)有新的要求,。蘋(píng)果牢固的開(kāi)發(fā)生態(tài)掌控力,,應(yīng)付這種事應(yīng)該也只是件小事。對(duì)Windows PC不同市場(chǎng)參與者分而治之的局面來(lái)說(shuō),,這件事就顯然沒(méi)那么容易了,。
與此同時(shí),,還能夠顯現(xiàn)蘋(píng)果生態(tài)掌控力牢固的一點(diǎn)在于蘋(píng)果十分輕易地在M1芯片上換用自家GPU?!霸a”在圖形計(jì)算一側(cè)就顯得沒(méi)那么重要,,蘋(píng)果的Metal API可以直接為蘋(píng)果GPU準(zhǔn)備就緒,意即蘋(píng)果圖形計(jì)算方面的儲(chǔ)備可在M1及現(xiàn)有生態(tài)上,,立刻發(fā)揮作用,。(雖然Metal相比DirectX,似乎在軟件效率上還是弱了點(diǎn))
微軟在Windows 10 on Arm的生態(tài)部署上就萬(wàn)般掣肘,,這雖然和微軟自身舉棋不定的決策力也有關(guān),。但在Arm版Windows出現(xiàn)這么久,也沒(méi)有像樣的生態(tài)構(gòu)建起來(lái),,Windows開(kāi)發(fā)者對(duì)于Windows Runtime也意興闌珊,,就能表現(xiàn)出蘋(píng)果在這次轉(zhuǎn)舵中的決絕和生態(tài)構(gòu)建的超級(jí)速度。
前一陣傳言微軟決定自研芯片,,用于將來(lái)的Surface,。個(gè)人感覺(jué)這條信息的可信度不大,,因?yàn)槲④洸幌裉O(píng)果那樣,,有數(shù)億出貨量的設(shè)備可為其分擔(dān)芯片的設(shè)計(jì)和制造成本,尤其是尖端工藝的制造成本,。要知道沒(méi)有大量出貨來(lái)分?jǐn)偝杀?,以Surface的量是走不起尖端工藝的。但這條消息的出現(xiàn)也表明,,蘋(píng)果在M1及其周邊生態(tài)的打造上,,有多成功。
只不過(guò)蘋(píng)果的這種模式與生態(tài),,究其根本也依托于消費(fèi)電子終端設(shè)備的銷(xiāo)量,。若哪一日iPhone銷(xiāo)量大幅下滑,則芯片業(yè)務(wù)與周邊生態(tài)也將很快難以為繼,。分而治之的生態(tài)便沒(méi)有如此脆弱,。
用一句悲觀(guān)的話(huà)來(lái)總結(jié)本文:Windows PC陣營(yíng)恐怕很難出現(xiàn)蘋(píng)果M1那樣的芯片。不過(guò)這并沒(méi)有什么大不了,,畢竟是兩個(gè)生態(tài):看隔壁Android陣營(yíng)也從不因?yàn)閕Phone賣(mài)得多好,,各參與者就亂了方寸。