硬科技:科科需要知道的Apple M1的可能性(上) 過去篇

2020.11.30 06:02PM
照片中提到了U9G269Z5LL 2036、APL1102 339S00833 S、H9HCHNNDB MM L SR NEH,跟蘋果公司。有關,包含了手機、中央處理器、電腦、蘋果、Tgspot.co.il

Apple M1的問世,讓沉潛已久、長期活在x86陰影下的「RISC十字軍」,紛紛起死回生「扭動」了起來,累積20年「怨念」一次性爆發的結果,就是網路上充滿了人腦當機產生的亂碼,彷彿活在Apple早已統治地球的平行世界,只能讓人越看越搖頭,越寫越脫力。

從2018年至今,筆者曾在癮科技陸續寫過數篇文章,分析Apple自研處理器為何如此強大、為何會想關起門來自己搞,看來又有重新解釋的必要性。這次就用自問自答的體裁,方便各位科科理解這些用點大腦就不難理解的道理。

硬科技:科科應該要知道的Apple M1盲點

Apple是外星人開的公司嗎?

不是,Apple是地球人企業。他們的產品和技術,也是奠基在同一個時代的基礎之上,不會因為他們叫做Apple,半導體製程的物理限制就不存在,計算機組織結構的原理就被改寫,軟體技術的演進就此逆轉,商業市場的邏輯就被顛覆。

不過看來某些果粉似乎並不是這樣想。

Mac在個人電腦的市占率有幾趴?

不超過7%,請不要因為常跑咖啡廳裝文青就產生「100%」的幻覺。

Apple仰賴的基本盤是iPhone和iPad,而不是1年出貨量不到2000萬台的Mac,某種程度上像是重現當年Intel靠著個人電腦市場「向上發展」侵入伺服器的模式,但「手機/平板→個人電腦」和「個人電腦→伺服器」那個跳躍幅度比較大,完全著毋庸議。

M1在技術規格上有何出色之處?

如果要筆者評價M1的歷史地位,左思右想只能擠出一句話:總算可以看到「當背後的基本盤大同小異時,RISC可以跟x86在個人電腦的處理器,較量到什麼程度 (專精高階伺服器的IBM Power算是例外)」。理論上,在相同的條件和資源,RISC的ARM (邁向64位元的ARMv8-A使其脫胎換骨) 應當更容易誕生明顯優於CISC的x86 (還是特別糟糕「毫無道理可尋」的那種) 的高效能處理器微架構。

照片中提到了Apple Silicon “M1

M1的特色,條列如下:

  • 台積電5nm製程、台積電5nm製程、台積電5nm製程,這很重要,所以寫3次。
  • 160億電晶體、160億電晶體、160億電晶體,這也很重要,再寫3次。
  • 由4個高效能Firestorm處理器核心 (共用12MB L2快取,時脈0.6–3.204 GHz,最高功耗13.8W)、4個低功耗Icestorm處理器核心 (共用4MB L2快取,時脈0.6–2.064 GHz,最高功耗1.3W)、8核心GPU (理論運算效能2.6 TFLOPs)、16核心神經網路引擎 (理論運算效能11 TOPs)、容量不明的系統層級快取 (SLC, System Level Cache,由所有運算單元共享) 和雙通道總計128位元寬的LPDDR4X記憶體控制器 (理論頻寬68.2GB/s) 所組成。
  • 整顆M1的標準設計功耗 (TDP) 約為20-24W。
  • 近似IBM Power10和被取消的Samsung M6,Firestorm的指令解碼器寬度多達8個指令,目前主流Intel/AMD分別是4+1/4。但這本來就是RISC該佔便宜的地方,據信從A11就保持不變。況且CISC的x86指令集,隨便1個指令的工作量,就相當於1.5-2個ARM指令。
  • Firestorm的指令排程緩衝區 (Re-Order Buffer) 約為現有x86微架構的2-3倍 (630,相對於Intel Wiilow Cove的352和AMD Zen 3的256,ARM最高階的Cortex-X1則是224)。
  • Firestorm的浮點運算輸出吞吐量為現有新型x86微架構的2倍。
  • Firestorm具備更深的記憶體載入/回存緩衝區 (154/106,對比Intel的128/72和AMD的44/64)。
  • Firestorm有現行x86處理器核心6倍容量的L1指令快取記憶體容量 (192kB vs 32kB),而且看似毫無存取延遲。
  • Firestorm的L1資料快取記憶體128kB,存取延遲僅3時脈週期,而Intel是48kB/5時脈週期,AMD則32kB/4時脈週期。
  • Icestorm的L1指令與資料快取容量分別是128kB和64kB,但也多於現有x86核心。

這種讓人突然「見證上帝顯靈」的感覺並不陌生,歷代IBM Power就幹過很多次了。順便一提,時下的王者IBM Power10單一核心可同時處理 (In-Flight) 的指令數,多達「1000個」。

硬科技:HotChips 32的新牙膏 IBM Power10與z15篇

但筆者也需要提醒,Apple和Intel/AMD兩邊的「包袱」實在差太大了,光x86指令集1個指令編碼長度從1-17 Bytes都有可能這檔事,加上一堆指令都會以記憶體做為運算目標,就對快取記憶體的設計帶來了一大堆麻煩,諸如此類的瓶頸可謂不計勝數。Apple M1讓長達數十年的「RISC指令集終極優勢論」有了被公平驗證的機會。

為何Apple的Ax處理器的性能如此優異?特別在A11突飛猛進?

一言以蔽之,因為那時候Apple已經沒有32位元的包袱了,可以集中全力針對AArch64最佳化。換言之,Apple M1的效能表現是「果」,不是「因」,一切都來自於其生態系統的封閉性。Apple並不是吃飽太閒才逼使開發者全面轉向64位元,一切都是布局好的,環環相扣。但也因為封閉性,讓Apple的處理器註定難以在自家環境以外的地方發揮實際的威力,甚至連「可用性」都是一個天大的問號。

為何Apple自產自銷的ARM處理器這麼厲害(上)
為何Apple自產自銷的ARM處理器這麼厲害(中)
為何Apple自產自銷的ARM處理器這麼厲害(下)

學過計算機組織結構的科科,上課不會太混,或多或少記得,無論是RISC指令集和近代高效能處理器微架構的產品設計,有一條叫做 “Make The Common Case Fast” 的原則,將資源砸在「最常用工作」的刀口上。最近的案例是AMD的Zen 3,冒著犧牲部份指令效率的風險(如退化的x87浮點乘法),一口氣提昇40%那伺服器應用最經常用到的指令效能。

硬科技:各位科科應該知道的AMD Zen 3祕密

Apple是不是吃飽太閒才強行推進「純64位元」?

A11應該是第一個「可能」沒有支援32位元ARM指令集支援的Ax處理器,因為A11不需要跑到任何32位元程式,這等於一口氣釋放了ARM在64位元擴張時蘊含的一切潛能(放棄引述執行、倍增資料暫存器、丟掉Banked Register這些專注於嵌入式應用的遺產),更能讓那票來自P.A Semi的研發團隊,更能放手一搏打造出指令執行寬度更寬、更強力的非循序指令執行心臟。這是連高度垂直整合數十年的IBM都無福消受的「主場優勢」,畢竟過去幾十年來累積的老舊企業端應用程式還是太多了,一堆還在跑得好好的。

此外,macOS也很早就取消32位元x86應用程式相容性,這也簡化了Rosetta 2要面對的問題,少了難搞的32位元x86指令集,僅需進行x86-64對AArch64的動態二進位轉譯,也不會碰到AVX、AVX2和AVX-512,這對改善轉換效能也有立竿見影的助益。

硬科技:淺談x86的SIMD指令擴張史(下):AVX到AVX-512

蘋果園風格的「瓶中生態系」能套用到其他地方嗎?

Apple自家的ARM指令集相容處理器與對應作業系統,也不需要像早期的x86個人電腦一樣,為了維持相容性,需要以16位元的真實模式開機,完全沒有保留32位元的必要性。這也是為何Apple應用程式開發的社群,會普遍認定A11之後都是「純64位元」的主因。就算能跑32位元,恐怕也是慘不忍睹。

會有比較認真的科科舉手發問:「聽說」ARM本家的高效能核心,從Cortex-A76開始,Kernel Mode就限定64位元,那為何還是追不上Apple?首先,作業系統要支援32位元,還是得要有32位元函式庫,有些也許可以轉換,但大部份都很難,特別是跟指標有關的部份。其次,雖然Android大部份的程式都是用虛擬機,但是還是有不少用到原生碼,特別是須追求效能表現的遊戲。

更何況,ARM的軟體生態系統也不只Android,還有其他作業系統和相關應用,「資產」和「包袱」本來就是一體的兩面。Intel和AMD也一定也很渴望64位元以外的x86軟體都瞬間從地球上消失 (這兩間公司的工程研發團隊一想到丟掉什麼節區記憶體定址、虛擬86模式和很多有的沒有的,大概晚上睡覺作夢也會笑),但光看到一狗票動輒用個十來年的工控嵌入式應用,就知道這是根本不可能的任務。

你是有什麼資格評論Apple?你有用過Apple的產品嗎?

筆者曾經擁有過的Apple產品的確不多,就只有iPhone 4 (不小心弄丟在計程車上)、iPhone 4S、iPhone 5S、iPhone 6S、iPhone 7、iPhone SE2、iPad Mini 2、iPad第五代、初代iPad Pro、初代Macbook 12吋 (體驗最爛的筆電鍵盤)、Macbook Air 2019、Magic Keyboard (日本旅行還不小心打壞按鍵)、Magic Mouse。因為筆者沒有聽音樂戴手錶的習慣,就無緣AirPods和Apple Watch了,「信仰純度」不夠,真是非常抱歉。

但我要講的不是過去「年輕時犯下的錯誤」,後面還有更重要的議題:Apple自身要承受的風險、Windows登陸M1的可能、以及「Apple重返伺服器市場的狂想曲」。

31 則回應