正在閱讀:蘋果Mac換用ARM,跑X86軟體真的不會卡嗎?蘋果Mac換用ARM,跑X86軟體真的不會卡嗎?

2020-11-12 00:15 出處:PConline原創 作者:Aimo 責任編輯:censi

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

蘋果MacBook換用ARM晶片
蘋果MacBook換用ARM晶片

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

微軟早已經涉足ARM領域
之前使用ARM晶片的Surface平板,運行X86軟體效果並不理想,MacBook會重蹈覆轍嗎?

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

MacBook的ARM晶片足夠強嗎?

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

蘋果M1性能 蘋果M1晶片性能
在規模上,蘋果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並不落下風。

蘋果M1性能 蘋果M1晶片性能

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

蘋果M1性能 蘋果M1晶片性能

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

蘋果M1性能 蘋果M1晶片性能

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

  其實到了這裡,我們也不難找出為什麼Surface Pro X運行緩慢的原因。Surface Pro X使用的是高通SQ1/SQ2處理器,這基本是驍龍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遷移平台這事,蘋果已經幹過一次了
Mac遷移平台這事,蘋果已經幹過一次了,當年Mac從PPC遷移到X86的相容層被稱為“Rosetta”

  Rosetta 2的作用在於,它透過指令翻譯,可以讓ARM平台的macOS,直接運行絕大部分的X86軟體。從蘋果的介紹來看,Rosetta 2的性能還相當不錯,它並不是在軟體運行的時候,才翻譯指令的,而是在軟體裝設時就做好了轉換。當然,這也並非說Rosetta 2可以實現性能完全無損,它對AVX指令相容並不好,如果X86軟體依賴AVX乃至AVX2,那麼在ARM平台上由於沒有對應的高性能指令,運行效率會有明顯下滑。並不是所有的軟體都會用到AVX指令集,總體來說,Rosetta 2的性能應該還是可以接受的。

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

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

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

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

現在還沒有macOS的ARM產品面市,但開發機卻是
MacBook換用ARM之前,ARM的Mac mini開發機早已經有了,沒有傳出性能方面的負面消息

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

總結

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

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

蘋果M1性能 蘋果M1晶片性能
新MacBook性能真的像蘋果公佈的那麼勁爆麼?

關注我們

最新資訊離線隨時看 聊天吐槽贏獎品