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