蘋果Mac換用ARM架構 M1跑X86軟件為什麼不會卡?

相信大家都已經知道,蘋果在最新一場秋季發布會中,宣告了全新的MacBook產品。新MacBook換用了蘋果自研的基於ARM架構的M1芯片,蘋果從X86陣營轉向,投入了ARM的懷抱。

蘋果Mac換用ARM架構 M1跑X86軟件為什麼不會卡? 蘋果MacBook換用ARM芯片

在傳統觀念中,ARM是用於移動平台的架構,和桌面的X86芯片相比,ARM芯片的能效更高,但性能羸弱。這次蘋果MacBook換用ARM,同時macOS 11仍對以往基於X86 macOS開發的軟件兼容,這就讓很多朋友感到困惑——用新的MacBook跑當前的X86軟件,到底會不會卡?

蘋果Mac換用ARM架構 M1跑X86軟件為什麼不會卡? 之前使用ARM芯片的Surface平板,運行X86軟件效果並不理想,MacBook會重蹈覆轍嗎?

這種擔心是有道理的。在此之前,微軟已經做過了這方面的嘗試。微軟推出了使用ARM芯片的Surface Pro X平板電腦,兼容X86的Win10軟件。然而人們發現,體驗並不理想,傳統軟件運行起來緩慢遲鈍。換用ARM芯片的MacBook會不會有這樣的問題?這就來分析一下。

MacBook的ARM芯片足夠強嗎?

新MacBook跑舊軟件到底慢不慢,最關鍵的因素自然是新的M1芯片。人們普遍認為,ARM芯片的性能水平無法和X86比肩,畢竟ARM是簡單指令集RISC而X86是復雜指令集CISC,復雜指令集自然強大得多,但事實上這是一個誤會。

蘋果Mac換用ARM架構 M1跑X86軟件為什麼不會卡?

在規模上,蘋果M1芯片足以和頂尖的X86桌面處理器並駕齊驅

CPU發展到今天,RISC和CISC的邊界其實已經相對模糊了。在當前的X86處理器中,復雜指令也是會分拆成為類簡單指令來執行的。

而在規模上,蘋果設計的ARM芯片已經追趕上了X86,例如A14的芯片面積為88mm,共118億個晶體管,而AMD最新發布的Zen3處理器中一個CCD的面積為80.7mm,共41.5億個晶體管。考慮到A14還封裝了AI模塊、GPU等,A14芯片使用的是5nm工藝,而5800X使用的是7nm工藝,事實上大家的CPU單元部分,規模已經是並駕齊驅。

了解了規模,再來看看性能實測,這里引用Anandtech的數據。Anandtech使用了行業權威性能測試套件SPEC 2006來對比測試蘋果A14、AMD Zen3以及英特爾Tiger Lake的性能,結果如下。

首先是整數性能,可以看到A14並不落下風。

蘋果Mac換用ARM架構 M1跑X86軟件為什麼不會卡?

再來看看浮點性能,A14和Zen3要明顯領先於Tiger Lake。

蘋果Mac換用ARM架構 M1跑X86軟件為什麼不會卡?

Anandtech還使用了大家非常熟悉的Geekbench來測試,結果如下。

蘋果Mac換用ARM架構 M1跑X86軟件為什麼不會卡?

可以看到,在單線程性能上,A14的確已經能追上當前頂級的X86處理器。這次蘋果MacBook使用的M1處理器,架構和A14相似,但規格更高,晶體管規模達到了160億個,增加了兩個大核心,在性能上方面是可以令人放心的。

其實到了這里,我們也不難找出為什麼Surface Pro X運行緩慢的原因。Surface Pro X使用的是高通SQ1/Q2處理器,這基本是驍龍855的馬甲。而即使是驍龍865+,對比A14以及最新的X86處理器,性能也依然不太夠看……

此情此景下,加之Win10 on ARM較低下的指令翻譯效率,Surface Pro X運行X86軟件的體驗就不甚理想了。是的,到了這里大家應該也能看到ARM處理器運行X86軟件,除了自身性能之外的其他影響因素了——操作系統的指令翻譯效率。

macOS 11的指令翻譯效率高嗎?

X86軟件想要在ARM芯片上運行,需要進行指令翻譯。雖然ARM指令集並不意味着性能低下,但畢竟它和X86還是不同的,指令需要翻譯過來,才能讓ARM芯片執行。

在今年的WWDC大會上,蘋果已經公布了指令翻譯的方案。蘋果宣布,將會為macOS平滑過渡到ARM平台,推出Rosetta 2中間轉換層。如果你是老果粉,對於Rosetta這個詞一定很熟悉——蘋果Mac電腦當年從IBM PowerPC架構,遷移到Intel X86平台,所使用的轉換層正是Rosetta。

蘋果Mac換用ARM架構 M1跑X86軟件為什麼不會卡? Mac遷移平台這事,蘋果已經干過一次了,當年Mac從PPC遷移到X86的兼容層被稱為「Rosetta」

Rosetta 2的作用在於,它通過指令翻譯,可以讓ARM平台的macOS,直接運行絕大部分的X86軟件。從蘋果的介紹來看,Rosetta 2的性能還相當不錯,它並不是在軟件運行的時候,才翻譯指令的,而是在軟件安裝時就做好了轉換。

當然,這也並非說Rosetta 2可以實現性能完全無損,它對AVX指令兼容並不好,如果X86軟件依賴AVX乃至AVX2,那麼在ARM平台上由於沒有對應的高性能指令,運行效率會有明顯下滑。並不是所有的軟件都會用到AVX指令集,總體來說,Rosetta 2的性能應該還是可以接受的。

蘋果Mac換用ARM架構 M1跑X86軟件為什麼不會卡?

這次Mac從X86遷移到ARM,Rosetta 2對舊有X86軟件的兼容也起着至關重要的作用

至於Rosetta 2的實際表現會如何?我們可以從兩方面來衡量。

首先是參考Rosetta。蘋果從PowerPC遷移到X86時,也使用了類似方案,當年並沒有太多人抱怨Rosetta性能低下,我們自然也可以對Rosetta 2抱有期待。

其次是參考開發者的實測。實際上,蘋果早前就已經推出了基於A12Z芯片的Mac mini開發機,開發者們很早就能接觸到Rosetta 2,但到目前為止並沒有什麼關於Rosetta 2性能低下的爆料,可見Rosetta 2的實戰表現應該相當不錯。

蘋果Mac換用ARM架構 M1跑X86軟件為什麼不會卡? MacBook換用ARM之前,ARM的Mac mini開發機早已經有了,沒有傳出性能方面的負面消息

到了這里,我們又可以來分析一下為什麼Surface Pro X的表現會如此糟糕了。在Surface Pro X的Windows 10 on ARM中運行X86軟件,是邊轉碼邊運行的,並不像蘋果Rosetta 2那樣在安裝時作好轉碼工作,運行時無需再次轉碼。加上性能較弱的SQ1/Q2處理器,運行X86軟件拖慢卡頓也就在情理之中了。

總結

到了這里,相信大家都可以得出結論了。MacBook使用的M1處理器性能非常強大,足以和頂尖的X86處理器同台競技;而蘋果又在macOS 11中准備了高效的Rosetta 2指令翻譯方案,因此對於能否流暢運行之前的X86軟件,大家無需太過擔心。

根據蘋果的說法,情況要比筆者文中分析的更加樂觀。蘋果宣稱,M1要比之前MacBook所使用的X86處理器性能高1倍,同時功耗僅為25%。從各種角度來看,新的MacBook都非常值得期待,一起來靜待上市實測吧。

蘋果Mac換用ARM架構 M1跑X86軟件為什麼不會卡? 新MacBook性能真的像蘋果公布的那麼勁爆麼?

來源:快科技