李實
在2006年前,蘋果曾經(jīng)將旗下個人電腦等設備所使用的計算架構從Power轉向至x86,這次改變使得蘋果的產品在性能方面追趕上了市場上的主流產品,并擁有了更廣闊的發(fā)展空間。斗轉星移,14年后,蘋果在WWDC 2020上宣布旗下Mac產品線將會在兩年內轉移至ARM架構的Apple Silicon——Apple Silicon是蘋果對自家ARM架構芯片系統(tǒng)和封裝體系的總稱。那么,蘋果為什么會再—次轉換“跑道”,它又將如何完成這一過程?
CCX模塊采用全新設計
2020年WWDC最大的新聞莫過于蘋果宣布要將整個Mac產品架構從x86轉移至ARM。雖然在這個消息正式公布之前,蘋果曾經(jīng)在多個場合表示對現(xiàn)有產品架構的異議,并且大量小道消息也顯示蘋果正在積極謀劃新的產品線,尤其是在蘋果iOS生態(tài)系統(tǒng)和相關A系列SoC大獲成功之后。但是只要靴子沒有落地,人們的議論和猜測就一天不會停止。
現(xiàn)在,消息已經(jīng)明朗。蘋果宣布大概需要兩年時間來完成這次架構遷移過程。但是,就像蘋果之前發(fā)布的大量公告信息那樣,它所提供的消息有限,只有部分比較籠統(tǒng)的消息,這些消息吊起了開發(fā)人員和消費者的胃口,同時缺乏真正的細節(jié)。因此,本文的內容在很大程度上也基于現(xiàn)有的消息和情況,更多的內容可能要等到蘋果在2020年下半年真的推出了基于ARM的Mac產品之后才會進一步明確。
從市場角度來看,蘋果公司的下一個目標是垂直整合整個Mac產品線。從性能指標和用戶體驗來看,蘋果目前在iOS生態(tài)上成功的最核心原因之一就是垂直整合。蘋果的想法就是,既然在iOS上能夠取得成功,那么在Mac設備上也可以如法炮制。垂直整合的優(yōu)勢在于,即使從用戶界面看起來操作系統(tǒng)沒有什么大的變化,但是蘋果將底層硬件架構和SoC有機融合后能夠使得操作系統(tǒng)更為充分地調用soc的所有設計和特殊功能,比如電源控制、ISP、視頻編解碼、神經(jīng)網(wǎng)絡引擎等,這些都將是被重點關注的內容。
蘋果在Mac生態(tài)系統(tǒng)上的核心改變是向ARM架構過渡,但奇怪的是,蘋果目前謹慎地避免在公告中的任何地方提及“ARM”一詞,只是在新的macOS開發(fā)文檔中明確說明了蘋果正在將自己芯片設計和ARH結合在一起,準備推出一系列基于ARH架構的SoC產品。在這個計劃的早期,用戶甚至可以看到其在iPad設備和Mac設備中使用幾乎一樣的soc。但是最終蘋果希望基于ARH重新設計的SoC能夠比肩目前Mac Pro中使用的高性能x86處理器產品。
從性能和現(xiàn)有產品的角度來說,蘋果已經(jīng)在芯片設計上取得了極為輝煌的成功。蘋果從早期在A4 SoC中使用類似Cortex-A9的架構開始,通過年復一年的迭代和升級,帶來了整個架構和性能的巨大提升。相比之下,英特爾在x86上卻陷入了多年的停滯不前,甚至現(xiàn)在蘋果的Lighting內核在IPC方面已經(jīng)非常接近英特爾使用多年的Skylake架構。根據(jù)anandtech的測試,A13在SPEC CPU 2006中能拿下65.27的分數(shù),相對應的Core i9-10900K為77.42分,其差距縮小至大約15%左右。
不過,現(xiàn)在就說蘋果在芯片設計能力上超越英特爾還略微早了一點,尤其是考慮到其在Mac Pro中使用的仍是Xeon芯片。蘋果宣稱一個擁有豐富經(jīng)驗的工程師團隊正在完成這項工作,有消息稱蘋果這個團隊正在將手機或者平板上那些優(yōu)秀的設計和思想移植到新的高性能處理器上,這也是人們所期待的。蘋果認為,自行設計的芯片能夠在更低的功耗下提供更高的性能。
從另一個角度來看,蘋果宣布整個產品架構過渡的時間有點奇怪。實際上,目前ARM正在準備發(fā)布ARH v9 ISA(現(xiàn)在是ARH v8.2 ISA),新的ISA帶來了一些提高性能的功能,比如可伸縮矢量擴展(SVE2,類似于英特爾的AVX指令集)。因此,要么ARH很快就會發(fā)布ARH v9 ISA,這樣一來蘋果就能順理成章地宣布支持新的ISA。要么就是蘋果依舊將新的SoC停留在ARH v8.2階段,并將NENO擴展推遲到今后再去解決,這是非常值得關注的事情。
過渡期的策略:x86和ARM的并行時光
另外一個值得關注的內容是在兩年過渡期內,蘋果應該如何面對x86和ARM,是戛然而止還是緩慢過渡?現(xiàn)在蘋果已經(jīng)確認,過渡期間ARM和x86架構將會并存,并且蘋果還在準備推出全新的x86設備(據(jù)稱可能是基于AMD Ryzen 5000系列的新Mac產品)。
這樣的過渡策略要求蘋果需要一段時間和足夠的人手來圍繞新的SoC進行準備。另外一個要點是,即使蘋果在未來2年內不發(fā)布任何新系列產品,基于現(xiàn)有產品,蘋果依舊需要不斷更新英特爾處理器以跟上市場的前進速度,直到基于ARM架構的產品準備完成為止。在這種情況下,雖然蘋果目前沒有提及自己可能會先更換或者替代哪個產品線,但是看起來定位低端的筆記本電腦或者對性能要求較低的產品可能會先被更換到ARM架構,隨后才是高性能的Mac或者Mac Pro系列產品。
在軟件支持方面,蘋果目前依舊在x86架構的軟件上持續(xù)投入以維持其優(yōu)勢,并且這個優(yōu)勢還會持續(xù)保持。另外蘋果也公開證實,他們將繼續(xù)在未來數(shù)年內支持x86架構的Mac電腦,這樣做也是為了避免目前基于x86的設備被過快淘汰。當然,這個“數(shù)年”是多久還需要持續(xù)觀察,除非蘋果特別加速了x86設備的退出時間,否則蘋果會在ARM設備推出后數(shù)年內繼續(xù)對x86設備提供支持。
x86的兼容性問題:Rosetta 2和虛擬化
同時,為了彌合蘋果當前的軟件生態(tài)系統(tǒng)與未來幾年內所需實現(xiàn)目標的差距,蘋果會將重金投資在軟件兼容層上,以便在未來的ARM Mac設備上能夠流暢和穩(wěn)定地運行現(xiàn)有的x86應用程序??梢钥隙ǖ氖牵O果將催促開發(fā)人員將其應用程序重新編譯本地版本,并且蘋果正在為此投入更多的資金到Xcode基礎架構中,但是目前還是需要保持一定程度的x86兼容性。
蘋果手中的武器是回歸的“Rosetta”,Rosetta是蘋果從Power架構轉換到x86架構時使用的二進制轉換層,在2006年推出?,F(xiàn)在,蘋果又帶來了Rosetta 2,并且希望將x86 macOS的二進制文件轉換為可以在ARM Mac上運行的文件,同時保持相同的功能和近似的性能。
Rosetta 2的工作模式是在應用程序安裝時轉換二進制文件至新的ISA。但是有人懷疑蘋果公司希望通過App Store分發(fā)預先翻譯好的二進制文件,而不是讓每臺ARM Mac自行翻譯。同時,Rosetta 2還能夠支持動態(tài)轉換功能,這對于在執(zhí)行中的x86應用進行高性能的快速即時編譯來說是必須的。
總體而言,蘋果宣稱Rosetta 2具有“快速的性能”,也就是極為出色的二進制文件轉換能力,尤其是在發(fā)布會上演示的Maya編譯過程,但是這種二進制編譯過程的效果還有待觀察。從高通和微軟的努力來看,從x86到ARM的編譯過程實際上好壞參半,不過過去的所有嘗試都從未涉及到蘋果目前所追求的那種高性能芯片,而僅僅是在移動設備上完成,因此這里還需要更多的實驗和觀察。回顧歷史來看的話,蘋果之前在Power架構轉移至x86架構時,即使當時的x86架構處理器展現(xiàn)出相對同期Power處理器巨大的性能優(yōu)勢,但是在x86處理器上實時啟用Rosetta編譯并運行Power架構的軟件時,雖然能夠正常使用軟件,不過性能仍舊受到了影響。
因此在這種情況下,Rosetta 2應該被視作開發(fā)人員在構建ARM架構程序時確保兼容性的后盾,而不是將其視作x86程序運行在ARM Mac上的路徑。特別是Rosetta 2還不能夠支持AVX之類的高性能x86指令集,這意味著在使用密集的高性能計算以及對性能有嚴格要求的代碼中,蘋果可能將改用更慢的方法來完成類似的工作。
目前尚不清楚蘋果準備為macOS提供Rosetta 2多長的使用時間。之前的Rosetta發(fā)布后沒多久就下線了,因為蘋果更希望開發(fā)人員直接基于新架構來重構軟件而不是依靠Rosetta。因此,基于同樣的理由和市場行為,Rosetta 2的壽命可能不會太長。
與此同時,蘋果在為ARM Mac的啟動操作系統(tǒng)macOS Big Sur(11.0)上引入了一種被稱為universal 2的新二進制格式。這個新的二進制格式適用于新編譯的過渡期應用程序,開發(fā)者需要多編譯一個被稱為Universal(Fat)Binary的文件(也就是Universal 2),用于同時支持ARM和x86架構。蘋果在發(fā)布會上也演示了Final Cut Pro X通過Universal 2運行在ARM架構MacBook上的情況,整體表現(xiàn)還不錯。對第三方軟件來說,如果只依賴AppKit,升級Xcode后編譯為新的Universal 2就可以了,非常方便。
最后,兼容性軟件包還包括蘋果的虛擬化技術,用于處理諸如Linux Docker應用程序容器等內容。關于這個功能的信息目前非常少,蘋果在發(fā)布會幻燈片中將其作為運行Linux的Parallels的一部分進行了簡短展示,但是這個技術的功能還尚待觀察。至少對于開發(fā)人員來說,他們現(xiàn)在為Linux和Docker找到了非常合適的解決方案,這對于參加WWDC的開發(fā)人員來說非常重要。
但是,這個虛擬化功能沒有解決運行Windows的問題。因為在之前的設備上,由于x86架構的存在,蘋果可以通過Boot Camp實現(xiàn)對Windows的支持,并且提供了大部分硬件的驅動程序,但是切換至ARM平臺后,如何在ARM平臺上運行Windows就成為了一個巨大的難題。有小道消息稱蘋果將放棄對BootCamp和Mac運行Windows的支持。顯然一旦如此,將使得一部分需要雙啟動系統(tǒng)的用戶不得不做二選一的選擇題。不過目前蘋果尚未對這個問題做進一步的表態(tài)。
開發(fā)人員設備:A12Z的Mac mini
為了讓開發(fā)人員在年底發(fā)布新的ARM Mac之前就做好準備,蘋果還推出了一臺專門面向開發(fā)人員的過渡設備,只提供給注冊的開發(fā)人員進行實際的硬件測試和軟件優(yōu)化。蘋果在發(fā)布會上也用它進行了演示,包括macoOS Big Sur系統(tǒng)的功能等。當然,從架構角度來看,這個開發(fā)人員設備實際上就是一個Mac mini外觀的iPad Pro,還不帶顯示屏。
目前的開發(fā)設備基于A12Z SoC,包括16GB的內存和512GB SSD。一開始人們預想的是這款設備的尺寸和散熱空間相比iPad大了不少,因此處理器的運行頻率和性能應該更為出色。但實際—臥目比iPhone 11,這款開發(fā)設備雖然使用了A12Z,但實際性能可能比不過使用A13的新設備。這樣設計的一個優(yōu)勢就是,為未來即將到來的ARM Mac設量了一個較低的性能下限并鼓勵開發(fā)人員努力開發(fā)更高效率運行的軟件。因此,如果開發(fā)人員的軟件能夠在這款設備上流暢運行,那么肯定能夠在未來ARM Mac所使用的A14衍生芯片上流暢運行。
不僅如此,雖然大家都知道了開發(fā)設備上使用的是A12Z SoC,但是就像蘋果其他的開發(fā)中設備一樣,蘋果嚴格禁止對其進行性能測試。開發(fā)設備在購買時簽署的有關協(xié)議就嚴禁公開基準測試數(shù)據(jù),即使開發(fā)人員花了500美元才獲得這個開發(fā)設備,但是其在法律意義上仍屬于,并且將在未來歸還蘋果公司,開發(fā)人員付費只是獲得了一段時間的使用權而已。因此,在這種重重約束之下,消費者短期內是沒有希望獲得新ARM Mac設備的相關性能數(shù)據(jù)了,全面的測試數(shù)據(jù)只有等待產品正式發(fā)布后才可能合法曝光。
靜候發(fā)布
蘋果在發(fā)布會上帶來了很多的消息,但是正如前文所說,還缺乏細節(jié),一切秘密只有等到新的ARM架構的Mac發(fā)布才能揭開了,現(xiàn)在距離2020年年底也不算太久,就讓我們靜候新品的發(fā)布。
回顧蘋果的發(fā)展歷程,它向來擅長進行垂直整合,特別是通過一個尖端產品來掌握整個產業(yè)鏈的方方面面。對蘋果來說,能夠全面掌控Mac的硬件和軟件,將成為它在下一個發(fā)展階段追求的重要目標。尤其是將macOS轉變?yōu)楹蚷OS生態(tài)一樣的軟件架構,并進一步整合蘋果的軟件生態(tài),如果成功的話,將為其帶來巨大的產業(yè)影響力。為了實現(xiàn)這樣的目標,蘋果需要在硬件和軟件層面上做出很多改變和創(chuàng)新,可想而知,蘋果公司內部和Mac相關的部分接下來都將進入極為緊張的工作狀態(tài)。
好消息是,蘋果對這樣的ISA級別的遷移已經(jīng)有了豐富的經(jīng)驗。2006年的決定讓蘋果從Power架構成功轉型至x86架構,并獲得了長達十多年的成長期,而在x86轉向ARM的過程中,蘋果又將迎來一個新的發(fā)展階段。蘋果看起來將之前的所有經(jīng)驗都用在這次ISA轉換上,包括之前軟件的兼容性問題、催促開發(fā)人員跟上新的架構以及在短期內提供實驗設備等,一切都做得有條不紊,值得我們進一步期待。
從另外一個方面來說,人們也很期待在使用了ARM架構后,蘋果能為Mac帶來怎樣的改變,不光是MacBook或者iMac這樣的產品,人們更期待看到ARM架構的Mac Pro,看它是否真能挑戰(zhàn)x86的王者地位。當然,由于蘋果徹底轉向ARM架構,個人電腦市場也將不可避免地迎來又一次分裂,之前由于蘋果轉向x86而帶來的十余年“虛假”的融合時光徹底結束了,可以運行Windows的Mac或者一些玩家口中津津樂道的“黑蘋果”很可能不復存在,市場又一次選擇了分道揚鑣,各奔東西。