分析 | 關(guān)于蘋果自研電腦芯片的一些猜測
首先,基礎(chǔ)知識。據(jù)我計算,蘋果至少經(jīng)歷了五代不同的處理器。該公司開始于6502,然后是68K,PowerPC,x86,現(xiàn)在是ARM。自大約20年前首款iPod以來,蘋果一直將ARM用于其iDevices(iPad,iPhone,iPod等)。與此同時,蘋果公司在其Macintosh產(chǎn)品線中淘汰了垂死的68K處理器系列,以換購PowerPC芯片(由其協(xié)助設(shè)計)。后來,這些技術(shù)讓位給了基于Intel x86的Mac,大約一年后,他們將再次切換到第一批基于ARM的Mac。這使得一條產(chǎn)品線中的四個完全不相關(guān)的處理器系列。在Arm仍然是Acorn / Advanced RISC Machines,Ltd時,蘋果就與他們有過交集,因為蘋果公司是ARM最早的投資者之一(與VLSI一起)。
值得注意的是,所有三個體系結(jié)構(gòu)更改都支持上一代的二進(jìn)制文件。Power Mac可以運行未經(jīng)修改的68K代碼,基于x86的Mac可以運行之前的PowerPC代碼,而承諾的基于ARM的Mac則可以運行當(dāng)今的x86代碼。用戶將無法分辨出區(qū)別。它只是工作。
這是一個好技巧,因為任何嘗試編寫二進(jìn)制翻譯器或仿真器的人都會告訴你。哦,看起來似乎很簡單,但魔鬼在細(xì)節(jié)之中。您可以在早期運行80%左右的代碼,這會導(dǎo)致錯誤的成就感。因為剩余的20%大約要花掉你接下來的大部分時間。大多數(shù)二進(jìn)制翻譯項目要么被放棄,要么運行緩慢,要么被錯誤所困擾,要么被無力支持。蘋果是少數(shù)幾個使其可靠運行的公司(包括IBM和舊的數(shù)字設(shè)備公司)。現(xiàn)在,該公司已經(jīng)完成了三遍相同的技巧。
效果如何?足以使蘋果公司的仿真擊敗其他本機運行的系統(tǒng)。
一些早期的基準(zhǔn)測試結(jié)果顯示了Apple基于ARM的硬件在仿真中運行x86基準(zhǔn)代碼。這個硬件是蘋果的開發(fā)人員轉(zhuǎn)換套件(DTK),這是一個專用于開發(fā)人員的專用盒子,旨在使程序員早日開始將其x86 MacOS應(yīng)用程序移植到基于ARM的新硬件上。DTK使用與最新(2020年型號)iPad Pro中相同的A12Z芯片。反過來,A12Z與上一代iPad Pro型號中使用的早期A12X處理器略有不同。實際上,除了GPU的數(shù)量外,A12X和A12Z本質(zhì)上是相同的。A12X具有七個GPU,而后面的A12Z具有八個GPU。(實際上,它們是完全相同的裸片,在A12X上禁用了一個GPU。)兩者都以8 + 4“ big.little”布置排列了八個CPU內(nèi)核,并具有四個大型高性能CPU,四個較小的電源高效的CPU 以及七個或八個GPU。整個群集的時鐘約為2.5 GHz。
值得注意的是,A12一代的iPad Pro平板電腦已經(jīng)發(fā)售了大約兩年,因此A12X和A12Z不再是最前沿的產(chǎn)品。A12Z并不是將為明年的基于ARM的Mac提供動力的芯片,但它與我們(或Apple)今天所擁有的芯片已經(jīng)非常接近。即將面世的A14X將為生產(chǎn)機器提供動力,該A14X將具有12個CPU內(nèi)核(8個快速和4個慢速)以及內(nèi)置的TSMC領(lǐng)先的5nm工藝,從而大大提高速度。
Geekbench將DTK的處理器標(biāo)識為“ VirtualApple 2400 MHz(4核)”。這告訴我們兩件事。首先,它以x86仿真模式運行基準(zhǔn)測試。否則,它將報告A12Z為ARM處理器。Geekbench還將操作系統(tǒng)報告為MacOS,僅以x86形式提供(無論如何,現(xiàn)在)。其次,它只使用了芯片的八個CPU內(nèi)核中的四個,這表明四個低功耗內(nèi)核根本沒有被使用。
基準(zhǔn)分?jǐn)?shù)不錯,但在真空中毫無意義。使它們變得有趣的是它們?nèi)绾闻c其他計算機堆疊在一起。(根據(jù)記錄,這些結(jié)果被泄露,違反了開發(fā)人員在訪問DTK之前必須簽署的NDA,但這沒有理由不認(rèn)為它們不準(zhǔn)確。)
令人驚訝的是,DTK的x86仿真比某些真正的x86處理器要快。Twitter用戶_rogame報告說,它在OpenCL基準(zhǔn)測試中擊敗了Microsoft的Surface Book 3(基于Intel的Core i7-1065G7)。在同一測試中,它還擊敗了基于AMD Ryzen的HP筆記本電腦。
令人尷尬的是,DTK還勝過Surface Pro X,這是微軟不到一年前推出的基于ARM的Windows筆記本電腦,我們在這里進(jìn)行了介紹。與DTK一樣,Surface Pro也具有ARM處理器,但是與DTK不同,它以純模式而不是仿真方式運行Windows操作系統(tǒng)和基準(zhǔn)代碼等所有內(nèi)容。因此,Apple對運行在ARM上的x86的仿真比Microsoft的本機ARM實施要快。
(Geekbench的一個錯誤將Surface Pro X的處理器報告為“ Pentium II / III”,這顯然是錯誤的。它實際上是SQ1芯片,這是微軟對高通公司Snapdragon 8cx進(jìn)行的一項調(diào)整?;鶞?zhǔn)是針對SQ1的ARM源代碼,而不是翻譯或仿真的x86代碼。對此你感到困惑嗎?)
對于希望在繼續(xù)使用舊的Mac應(yīng)用程序時切換到基于ARM的系統(tǒng)的Mac用戶而言,所有這些看起來都不錯。那么,蘋果如何做到這一點呢?
蘋果是否重新設(shè)計了ARM以運行x86二進(jìn)制文件?是否存在某種x86協(xié)處理器或某種硬件加速器來擴展基本的ARM處理器集群?特殊指令,也許嗎?可以轉(zhuǎn)換二進(jìn)制代碼的大型FPGA?
一方面,蘋果顯然擁有設(shè)計自己想要的任何東西的資源,因此它本可以遵循任何這些路徑。該公司在這一領(lǐng)域也有豐富的經(jīng)驗,為iDevices創(chuàng)建了接連的處理器系列已有近20年的歷史。另一方面,其ARM許可證所允許的限制是有限的,沒有Arm的許可,Apple也無法從根本上改變ARM指令集或編碼的模型,這不太可能實現(xiàn)。那么,訣竅是什么?
蘋果內(nèi)部人士告訴我,該公司花了多年的時間來分析其代碼并尋找性能瓶頸。它知道MacOS代碼的痕跡,以及第三方應(yīng)用程序的行為。他們也有10年的分析和優(yōu)化x86二進(jìn)制文件的經(jīng)驗,因此團(tuán)隊知道痛點在哪里。
共識是蘋果不需要弄亂ARM體系結(jié)構(gòu),至少不是它的可見部分。相反,該公司可能會優(yōu)化其微體系結(jié)構(gòu):實現(xiàn)程序員可見部分的底層電路。所有x86轉(zhuǎn)換都是在軟件(稱為Rosetta 2)中完成,而不是在硬件中完成。與Transmeta或nVidia的Project Denver等其他x86克隆芯片不同,它沒有特殊的x86仿真操作碼,沒有模仿x86的影子寄存器集,沒有協(xié)處理器,也沒有大量的硬件輔助。
相反,Apple的A14X仍然是常規(guī)的基于ARM的處理器,經(jīng)過優(yōu)化,可以很好地運行Rosetta 2翻譯代碼。緩存應(yīng)該非常大,因為它需要緩存x86代碼(作為數(shù)據(jù))和Rosetta 2可執(zhí)行文件的大塊。還需要針對未對齊的x86二進(jìn)制文件以及非ARM指令集固有的融合操作優(yōu)化芯片的預(yù)取邏輯。任務(wù)切換至關(guān)重要,因為處理器將在執(zhí)行Rosetta 2和其翻譯的代碼之間交替切換。
由于x86指令將轉(zhuǎn)換為相似的序列,因此Rosetta可能會產(chǎn)生某些重復(fù)模式,因此獲取,解碼和調(diào)度這些模式將是優(yōu)先事項。ARM編譯器往往會產(chǎn)生某些通用模式,而x86編譯器會產(chǎn)生不同的模式,因此,不僅針對常規(guī)ARM代碼,還要針對這兩種類型優(yōu)化前端邏輯,這一點很重要。在解碼和分派階段融合多個ARM指令將大大提高性能。
x86架構(gòu)比ARM支持更多的內(nèi)存尋址方案,因此Rosetta可能會遇到涉及寄存器到寄存器算術(shù),偏移量和縮放比例的奇數(shù)存儲器引用。此處的一些硬件輔助將帶來性能上的好處。解碼路徑中一些額外的加法器,移位器或整數(shù)乘法器可以幫助實現(xiàn)這一目標(biāo)。
蘋果芯片是否包括用于加速x86轉(zhuǎn)換的特殊硬件?是的,但不是其他公司嘗試過的那種大型硬件仿真機。取而代之的是,該公司采用了蘋果公司的典型方法:在軟件中盡可能多地執(zhí)行并優(yōu)化硬件,以使代碼真正運行得很好。軟件更靈活,更易于修補和更新,并且通常更強大。
最后,值得重復(fù)的是,早期的基準(zhǔn)測試結(jié)果全部來自A12Z芯片,這是一款已有兩年歷史的設(shè)計,沒有任何這些增強功能。首批基于ARM的Mac仍需要一年的時間,并將基于A14X,該芯片不僅更快,更新,而且從一開始就被設(shè)計為殺手級的Rosetta 2引擎。如果Apple決定需要更強大的x86硬件輔助,它總是可以將其設(shè)計到A15中。
蘋果具有創(chuàng)造有效的二進(jìn)制翻譯器的獨特資格。該公司以前在軟件方面做過兩次。初步結(jié)果表明,即使沒有任何硬件輔助,它還是可以輕松完成的。在A14X上運行的Rosetta 2應(yīng)該更好。
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。