蘋果釋出了使用了 ARM 架構 M1 處理器的 MacBook,其驚人的能效表現,以及深度和移動平臺融合的生態,給人留下了深刻的印象。M1 處理器打破了很多人 ARM 效能羸弱的固有印象,而 macOS 和 M1 的契合度,更是令人驚歎連連——M1 這顆 ARM 處理器,透過 macOS 11 中 Rosetta 2 轉譯層執行 X86 軟體,很多時候竟然比 Intel 高階處理器原生執行 X86 軟體更快!
macOS 11 相容 ARM 晶片,從另一維度挑戰 Windows
蘋果 M1 的出彩,是出乎很多人的意料的。特別是對比微軟在 ARM 領域的步履蹣跚,更凸顯出蘋果新產品的不可思議。要知道,微軟早在 2012 年,就推出了使用 ARM 處理器的 Surface 平板,併為之配備了轉制的 Windows RT 系統;最近,微軟更是力推使用驍龍 ARM 處理器的 Surface Pro X 平板,其上搭載的是相容 X86 軟體的 Windows 10 on ARM。
微軟早已經涉足 ARM 領域,推出了基於 ARM 的 Windows 平板,但表現不盡如人意
然而,微軟的 ARM 產品實際表現卻令人失望。初代 Surface 上的 Windows RT 無法相容 X86 軟體,而 Windows 10 on ARM 則無法執行 64 位軟體,且使用 X86 軟體時效能極其低下。和 M1 以及 macOS 11 相比,表現有云泥之別。
微軟藉助 Wintel 聯盟,統治了桌面市場三十年。蘋果 macOS 憑藉 M1 這顆表現驚人的 ARM 晶片,能否挑戰 Windows?今天一起來談談這個話題吧。
M1 晶片為何能有如此高效能?
Windows 的成功,和 X86 處理器在效能上的強勢是密不可分的。業界有一個很著名的說法,叫 “安迪 - 比爾”定律,安迪指的是 Intel 前 CEO 安迪 · 格魯夫,比爾則是大家都熟悉的微軟創始人比爾 · 蓋茨。這個定律的主要內容,就是安迪提供什麼,比爾就會拿走什麼,意思是 Intel 為代表的 X86 處理器提供的效能,都會被 Windows 為代表的軟體吃掉。
雖然這個定律很有吐槽軟體吃效能的意味,但也肯定了 X86 處理器的效能表現。而現在,M1 這顆 ARM 處理器,在輕薄筆記本的使用環境下,效能大大壓過了 X86 處理器一頭,這到底是怎麼做到的呢?這和 M1 處理器的諸多特性是密不可分的。
· 工藝。得益於多年和臺積電的密切合作,蘋果 M1 處理器得以用上了最先進的 5nm 工藝,先進的工藝帶來了能效方面的先天優勢。而 M1 的設計也是和臺積電的工藝特點相契合的,對比 Intel,臺積電的工藝並不追求高頻率,而 M1 的架構則主攻高 IPC,並不需要高頻,雙方共同鑄造出了 M1 晶片的極高能效。
M1 晶片使用了與之特性相契合的先進工藝
· 規模。受益於 5nm 工藝,M1 晶片得以在有限的面積中,整合不亞於 X86 處理器規模的電晶體。M1 處理器包含 8 個 CPU 核心,芯片面積為 119mm²,集成了 160 億個電晶體;作為對比,當前桌面頂級處理器 AMD Zen 3 中的一個 CCD 同樣包含 8 個 CPU 核心,面積為 80.7mm²,整合 41.5 個電晶體。考慮到 M1 還封裝了 GPU、RAM 等其他模組,事實上雙方在 CPU 單元部分,規模已經是並駕齊驅。
· 架構。M1 的 CPU 架構設計是非常激進的。舉個例子,根據外媒 Anandtech 推測出來的架構圖,M1 擁有 8 解碼超寬架構的大核心,這是一個非常誇張的規模——頂級 X86 處理器只做到了 4 解碼。而在 ALU 單元、FPU 單元的數量配置上,M1 對比當前的 X86 處理器也有優勢。儘管受限於工藝以及架構特點(超寬架構、短流水線),M1 的頻率並不高,但 IPC 卻超過了許多頂級的 X86 處理器。
M1 的大核心架構設計非常激進,X86 處理器沒有這麼多路前端解碼
· 專用電路。很多朋友都看過 M1 版 MacBook 的剪片演示,新 MacBook 在影片剪輯的速度上,居然遠勝於售價高好幾倍 iMac Pro,小小的甚至不需要風扇散熱的 M1 晶片,表現更勝於 i9 處理器。這其實在很大程度上,得益於 M1 晶片整合的專用電路。
很多需要算力的特定功能,在 M1 中都有專用電路實現
專用電路這個名詞聽起來,似乎有點陌生,但其實如果你關注挖礦,就知道這是什麼意思了。在挖礦領域,CPU 速度遠不如 GPU,而 GPU 又遠不如 ASIC 礦機,這是因為 ASIC 晶片是專為挖礦演算法定製的專用電路。在 M1 晶片中,也存在諸多這樣的專用電路,它們能為影片編碼解碼、機器學習、影象處理、資料加密等計算提供硬體加速,結合 macOS 11 專為其打造的 API,一些生產力任務能夠前所未有地高效執行。
· 片上互聯。這又是 M1 晶片的一大殺手鐧。在傳統的 PC 硬體架構中,記憶體、GPU、CPU 等部件,需要經由主機板相關匯流排來傳輸資料,而 M1 晶片則將這些部件進行了 SoC 化,將其整合到了同一塊晶片當中。相比傳統做法,M1 晶片能極大程度地提升資料傳輸的速度,效能得到了系統性的提升。
macOS 可以憑藉 M1 晶片挑戰 Windows 嗎
M1 晶片結合 macOS 11,表現令很多人眼前一亮。對比 Windows 在 ARM 領域的坎坷進軍,蘋果這套組合拳更顯得出類拔萃。那麼問題來了,在這個 ARM 愈發強勢的時代,macOS 能否憑藉 M1 這顆頂級的 ARM 晶片,挑戰 Windows 以及 X86 體系?恐怕依然是不行的。
首先來說說硬體方面。
上文提到了 M1 晶片效能強大的秘密,但這是否意味著它就可以挑戰 X86 處理器?X86 處理器之所以沒有使用 M1 這樣的激進架構設計,是有很多現實方面的原因的。
首先,和 ARM 相比,X86 揹負著更沉重的歷史相容問題。雖然當前的 X86 處理器本質上也是將複雜指令拆分為簡單指令進行解碼,但 X86 指令的長度並不固定(變長指令),不像 ARM 處理器那樣,只解碼長度固定的定長指令,這意味著 X86 處理器很難透過堆砌指令解碼器,來大幅提升效能。如今的 X86 處理器仍相容多年前的 MMX 等古老指令,這些又需要耗費額外的電晶體。這些現狀,令 X86 無法像 ARM 那樣輕裝上陣。
需要耗費更多電晶體,去相容 MMX 等古老指令,這就是所謂的 “X86 稅”
而蘋果從來對向後相容不上心。為了追求效能,蘋果的相容可以爛到什麼程度呢?例如你買了最新版的使用 M1 處理器的 MacBook,想要開啟幾年前剪影片的專案檔案,發現新版 Final Cut 已經不支援這個舊版檔案,而現在的 MacBook,又安裝不了舊版的 Final Cut(不再支援 32 位)…… 你幾年前拍攝的素材,就這麼廢掉了。
幾年前的檔案,用新 Mac 打不開,蘋果可不考慮舊軟體的相容
蘋果主攻消費市場,它可以讓 M1 晶片徹底拋棄 ARMv7 指令集、放棄 32 位支援,讓電晶體用在刀刃上;但 X86 廣泛用於企業、工控等領域,它敢這樣做嗎?想想 Intel 安騰 IA-64 的慘淡下場,答案不言而喻。
X86 當前對比 M1 有能效劣勢,那它能不能像 M1 那樣,使用 8 解碼的超寬架構?由於變長指令等限制,X86 處理器要實現超寬架構,設計難度太大,因此當前 X86 處理器選擇了多核心超執行緒、超寬 SIMD(例如 AVX512)作為效能路線。
這又帶來一個問題。和 ARM 處理器相比,想要發揮出應有的效能,程式碼需要專門為這些特性進行最佳化。X86 並不像 M1 晶片那樣,執行蘋果為其高度最佳化定製的 macOS 系統,這進一步削弱了 X86 處理器在效能上的優勢——最近的一個典型例子,就是 Windows 並不能很好地排程 Zen 2 處理器的 CCX 模組,需要為其製作補丁。
Win10 1903 對 Zen 架構的最佳化:優先呼叫同一 CCX 內的核心、縮短響應時間,但如果沒有這補丁呢?
而不得不提的是,M1 的激進設計,以及 macOS 的最佳化,令 Mac 表現出匪夷所思的效能,但這些效能優勢,是否將一直持續?前面提到,M1 的強勁效能很多是透過專用電路來實現的,蘋果系統透過 API 活用這些電路,讓 Mac 擁有了出色的能效比。然而專用電路的軟肋也在於 “專用”,M1 今天能夠實現高規格 HEVC 影片的硬體加速,當新的影片編碼面世,它還能有如此大的效能優勢嗎?恐怕無法做到。
最關鍵的一點在於,M1 晶片是蘋果專屬,它不會外賣給其他廠商。這意味著,除了 Mac 電腦對應的消費市場,它沒法在更多領域上,向 X86 發起衝擊。與之相比,X86 以及 Windows 的分佈更加廣泛,或許搭載 M1 的 macOS 能夠在某些領域刺到消費者的痛點,但蘋果仍無力打破 X86 和 Windows 築起的壁壘。
M1 晶片是 Apple Silicon,它不會外賣給他人,無法在更多領域對 X86 和 Windows 發起挑戰
簡而言之,和 M1 晶片相比,X86 處理器的設計沒有那麼激進,也沒有這麼多專屬最佳化,因此在不少情況下效能會落於下風。但 X86 處理器的向後相容、多執行緒併發等優勢,也是 M1 晶片無法企及的。X86 晶片在商用、工控、消費市場都能獨挑大樑,ARM 陣營並不能憑藉 M1 晶片,就挑翻盤根錯節的 X86 體系。
再來說說軟體。
macOS 11 非常驚豔,透過 SwiftUI 以及 Mac Catalyst,融合了蘋果移動平臺的生態。加之使用 Rosetta 2 轉換層相容已有的 X86 軟體,這讓它能夠在保有大部分 X86 生態的同時,在 ARM 生態中活用 M1 的效能長處。很多朋友可以觀察到,macOS 11 並不缺軟體,而很多跨平臺同時支援 Windows 和 macOS 11 的軟體,在 macOS 11 中效能表現會更好。例如微軟家的 Office、Visual Studio Code,就是其中例子。
M1 為 macOS 提供了澎湃的效能,macOS 能否藉此挑戰 Windows?在輕薄本領域,新的 M1 版 MacBook 已經鶴立雞群,但 macOS 所面對的侷限,和 M1 晶片是如出一轍的——它並不對外開放授權。
macOS 將慢慢成為蘋果 ARM 晶片的獨佔,PC 機執行 macOS 的 “黑蘋果”將成為歷史
如果說 X86 時代,macOS 還可以透過黑蘋果的方式,安裝在其他機器上,那麼進入到 ARM 時代後,macOS 必然會漸漸成為 Mac 電腦的獨佔。當蘋果未來進一步在 Mac 電腦中普及 ARM 處理器,Mac 和 PC 沒有了共通的硬體基礎,macOS 自然也就無法透過偽裝硬體型號等手段,安裝到其他 PC 中。
也就是說,ARM 處理器的應用,反而減少了 macOS 的適用範圍。macOS 只能在蘋果的既定硬體產品上,和對應的 Windows PC 競爭;而 Windows 開放的系統授權,必然能覆蓋遠多於蘋果產品線的 PC 產品。從這個層面來看,macOS 只能憑藉少數的尖端產品、吸引少部分 PC 使用者,不可能在整體上和 Windows 產生競爭。
反觀 Win10 ARM,可以安裝在其他 ARM 裝置上,這是否會重演 X86 時代 PC 圍攻 Mac 的故事?
在可以預見的未來,這一情況不會改變。蘋果從誕生起,一直秉持著製作小而精產品的理念,蘋果從來就沒打算讓 macOS 像 Windows 那樣,成為大眾之選。對於蘋果而言,無論是 M1 晶片還是 macOS 11 系統,都只不過是構造心目中某款理想產品的部件,它們不需要攻城略地佔下大片市場份額,只需站上某個高聳的小山頭即可。
M1 晶片是 macOS 的一把尖刀,但它們顯然是無法撬動 Windows 和 X86 處理器築成的這堵龐大城牆的。
總的來說,macOS 不太可能憑藉 M1 晶片,來挑動 Windows 和 X86 的市場地位。
·M1 晶片和 macOS 的高效能,當然是受益於先進的工藝、激進的架構以及專門的最佳化,但也很大程度上也是以犧牲向後相容性為代價的,需要長期穩定執行的環境無法接受這樣的產品;
·M1 晶片和 macOS 都只服務於品類稀少的蘋果產品,無法與 Windows、X86 在更多的細分領域競爭。
無論如何,M1 晶片的橫空出世,的確重新整理了很多人的觀念。ARM 也可以用於高效能計算,在特定的環境下,它能比 X86 做得更好,這足以支撐 Mac 這樣的小眾產品成為爆品。Windows 10 on ARM 以及 Windows 10X 也正在緊鑼密鼓地開發中,微軟在 ARM 時代能再創輝煌嗎?除了 macOS,Windows 是否會遇到新的挑戰者?我們拭目以待吧。