最近蘋果終於對外公開了公司內部最神秘的部門──晶片研發中心,媒體第一進入這個部門,一窺蘋果所有產品核心的誕生地。
從2006年開始,驅動蘋果新業務的晶片都幾乎誕生於此。
而這裡最新的成果是最近蘋果最近剛發表的M3晶片。
3nm製程的加持,讓M家族系列晶片性能大增。
蘋果創造了資本主義史上最成功的產品,成為第一家市值達到1兆美元的企業。
透過暢銷的iPod等產品、無與倫比的品牌推廣,以及史蒂夫賈伯斯的獨特魅力,成功地讓科技變得時尚優雅。
蘋果在硬體優化方面的執著令人印象深刻,自1984年發布Mac以來,已經三次改變了CPU架構。
但這並不是一件容易的事。
每當一家科技公司宣布要改變CPU架構時,人們普遍發出質疑,這些公司是否能在整個軟體生態系統被拋棄的情況下生存。
在那個時代,軟體還是儲存在軟碟裡,這種懷疑更加嚴重。
著名科技專欄作家約翰‧德沃夏克曾表示,將PowerPC架構轉變為英特爾的x86架構,為蘋果引進了Windows世界的前奏。打開了蘋果與Windows更深入溝通的大門。
1984年Motorola 68k
1981年,蘋果正在跌撞。
一開始,Macintosh是一種相對便宜的電腦,當賈伯斯領導下,Macintosh開始專注於一件事情:贏過LISA團隊。
賈伯斯引入了一個超前的圖形使用者介面,而且要求他的團隊使用最頂尖的硬體。
在PC領域,CPU的選擇非常關鍵。
非常早期的個人電腦,使用的是8bit的CPU。
但是,在20世紀80年代,如果想要設計一台功能強大的PC電腦,就需要選擇現代的16bit處理器架構。
實際上,在當時,有三個主要的選擇:Intel 8088、Zilog Z8000或Motorola 68k。
讓我們回顧一下概念:
CPU是一種將資料從電腦記憶體(RAM) 移至快速暫時記憶體(暫存器)、對該資料運行操作,然後將輸出移回記憶體的裝置。
暫存器是電子記憶體中最小的單元-它們在CPU的核心中只保存幾個位元。CPU 依照指令(電腦程式)對此資料執行操作,操作位是1和0。
這些運算由算術邏輯單元(ALU) 執行。這基本上是執行簡單、專門工作的電路的集合,例如:
將二進位數相加,例如0010 + 0101 = 0111
執行邏輯運算,例如NOT 0000 = 1111
移動位,例如0011 左移1 位變為0110
CPU 的控制單元一次解碼一條指令,以決定哪些資料要移至哪個暫存器,以及哪個暫存器的資料要通過哪個ALU電路。
非常快速地多次執行這些操作,它會累積輸出,例如矩陣乘法、視訊遊戲中的碰撞物理或將影像資料光柵化為螢幕像素。
讓我們繼續回到蘋果。
假設您是蘋果公司的硬體副總裁,正在向賈伯斯做示範。
首先,Intel 8088有著16位元微處理器,支援640kB RAM,IBM PC採用了這種晶片架構,因此擁有強大的現有軟體生態系統,由於英特爾巨大的規模經濟,低端價格約為35 美元(以1983 年美元計算)。
而Zilog Z8000是純16位元微處理器,支援8MB RAM,很少有大型競爭對手使用這種架構,最小的軟體生態系統,中階價格點約為55 美元。
最後,Motorola 68k有著16/32位元微處理器,支援16MB RAM,Atari和Commodore使用這種晶片架構,以及一些現有的開發生態系統。但之前透過Apple I、Apple II和LISA 與Motorola建立了供應商關係。
你會選擇哪種晶片架構呢?
總的來說,選擇摩托羅拉68k處理器似乎是具有前瞻性的,這解釋了為什麼1984年的Macintosh不同於其他電腦。
儘管它在開發生態系統和相容性方面不如主流的IBM PC,但這個選擇為品牌帶來了差異化。
更重要的是,68k擁有一個幾乎完全正交的指令集,這意味著幾乎每個CPU操作都可以在幾乎每個暫存器上執行,而許多競爭的CPU則限制了指令的暫存器選擇。
這種正交性使CPU更容易編程,對於培育新興的軟體生態系統來說是一個理想的選擇。
最終,16MB的記憶體尋址範圍變得極為重要,Macintosh保留了頂部12MB的記憶體供作業系統使用,同時共享了4MB的記憶體給不同的軟體應用程式。
如果查看2012 年16GB iPod Touch 中的可用儲存空間,你會發現可用空間其實非常的少。
時間是1994 年。8 年前,史蒂夫‧賈伯斯(Steve Jobs) 被蘋果公司趕下台,現在正忙於發明皮克斯(Pixar) 和NeXT。
蘋果正在失去相關性。
1994年,當時史蒂夫‧賈伯斯已經離開蘋果,開始投身皮克斯和NeXT的創業事業時,蘋果逐漸失去了市場影響力。
與之前的競爭對手IBM相比,他們正在經歷微軟的競爭,這個過程既漫長又痛苦。
在此期間,英特爾和比爾蓋茲(在20世紀90年代被戲稱為「魔鬼」)結成了一種名為Wintel的邪惡聯盟,這使得這兩家公司幾乎壟斷了市場。
這並不是低估x86晶片架構的威力,英特爾憑藉其100MHz的速度和出色的能源效率表現,獲得了市場主導地位。
而帶領Macintosh進入90年代的摩托羅拉68k系列晶片卻未能跟上發展。
面對壟斷的威脅,蘋果與長期合作夥伴摩托羅拉以及不太可能的盟友IBM合作,旨在用團結對抗資本主義勢力。
於是,AIM(蘋果、IBM、摩托羅拉)聯盟應運而生。他們認識到x86架構存在一個重要弱點:它採用了CISC架構。
為了因應這個問題,AIM採用了RISC策略,即PowerPC。
蘋果開發了一個模擬器,使PowerPC能夠模擬摩托羅拉CPU。這意味著它可以即時將指令從一種架構轉換為另一種。
顯然,這會帶來性能成本。不過,幸運的是,由於PowerPC CPU非常強大,因此對於升級硬體的用戶來說,這種模擬通常不是大問題。
蘋果採取的另一個策略是在過渡期內使用寬二進位。這樣,軟體可以包含針對68k和PowerPC架構編譯的程式碼。
因此,工程師可以發佈單一應用程序,其中包含兩個單獨的二進位文件,可以在兩種Mac CPU平台上運行。
在當時,硬碟容量通常只有80MB,這種情況變得很煩人。因此,出現了二進制剝離工具,使最終用戶只需要保存適用於他們設備的檔案。
總的來說,蘋果的過渡是成功的。從68k過渡到PowerPC帶來了巨大的效能提升。模擬和寬二進位檔案使軟體生態系統得以順利過渡。
然而,不幸的是,Wintel聯盟幾乎沒有受到影響。隨著Pentium和Windows 95的發布,它們的市場主導地位達到了前所未有的水平。Windows逐漸成為預設的運算平台,將全球各地的學校ICT課程變成如何使用Microsoft Office。
現在,他們已經擁有了堅實的硬體平台,而蘋果陳舊的System 7 Mac作業系統成為了主要障礙。
他們曾嘗試內部專案來創建Windows的競爭對手,但未成功,因此他們不得不透過收購的方式來解決這個問題,即簡單地購買一個新的作業系統。
這為蘋果收購NeXT並迎回史蒂夫賈伯斯奠定了基礎。
2000 年代初,蘋果再次恢復了魔力,賈伯斯王者歸來之後,劃時代的Mac OS X 以及iPod 取得的成功使陷入困境的蘋果轉變為消費性電子產品巨頭。
然而此時的PowerPC 架構卻未能跟上Intel x86 龐然大物的步伐。
筆記型電腦的市場越來越龐大,而PowerPC CPU 的耗電和發熱成為了劣勢,無法打造出賈伯斯所設想的超薄筆記型電腦。
2005 年全球開發者大會上,賈伯斯正式宣布從PowerPC 架構轉向Intel。到2006 年,高階Intel x86 處理器的每瓦效能將是PowerPC 的近5 倍,時脈速度將提高近1.5 倍。
那麼,是什麼讓Intel x86 架構如此出色?這裡我們稍微討論一下CPU設計中的一些概念,以及當時的英特爾在CPU 各方面所進行的創新。
CPU快取(Caches):
CPU 從記憶體(RAM) 取得資料後,需要放入片上的暫存器執行操作。但CPU的時脈頻率遠高於RAM,於是RAM成為了系統速度的瓶頸。
因此,CPU 發展了片上快取(Caches)來儲存中等數量的資料。作為緩衝地帶更靠近晶片本身,並允許更快地存取必要的數據。
這些快取本身是分層的:
電腦系統中儲存的分層遵循以上的金字塔結構,由下到上,儲存媒體的容量越來越小,但速度越來越快,充分利用了電腦程式的「局部性」原理,大大提高了整體的效率。
分支預測(Branch Prediction):
分支指令用於處理條件語句。聰明的CPU 使用統計數據來猜測程式碼的去向,並嘗試保持指令管道的填充以獲得最大利用率。
其機制涉及直接內建於CPU 電路中的硬體演算法。稱為分支歷史表的緩衝區快取最近的分支結果。
超標量架構(Superscalar Architecture):
超標量架構是多工處理的終極目標。超標量CPU 可以在單一時脈週期內同時執行多條指令。
這種架構之所以有效,是因為算術、在暫存器之間移動記憶體以及浮點運算等操作需要ALU 上的不同電路。
對於擁抱Intel x86這種重大的轉變,Apple 再次採用其歷史悠久的過渡技術來實現CPU 架構的平穩遷移。
Apple 推出了為兩種CPU 架構構建的通用二進位文件,可以透過簡單的Xcode 建置配置進行設定。
在硬體和軟體的共同助力之下,蘋果公司交付了完美的作品, 實現了賈伯斯的「超薄」夢想,同時也將蘋果帶入了新的時代。
了解賈伯斯,了解蘋果的人,一定會明白他們的最終競爭優勢:硬體和軟體的緊密整合。
2007 年發布的iPhone 採用三星提供的ARM CPU。而從iPhone 4 開始,蘋果開始設計自己的晶片A4。
2008年,蘋果以2.78億美元收購了PA Semiconductor,這是一家以高階低功耗處理器聞名的CPU設計公司。
十年後的2018 年,蘋果再次以3 億美元的價格部分收購了歐洲晶片設計公司Dialog。
終於,在2020 年,Apple 宣布了第三次偉大的Mac CPU 架構轉型——M1——預示著Apple Silicon 時代的到來。
那麼,對比前面所說的Intel X86 架構,M1又有什麼自己的秘密武器呢?
首先,M1晶片採用異質運算策略,這意味著針對特定工作負載使用專用的元件。M1 SoC 的元件專門用於許多計算任務。
其次,M1晶片具有GPU和CPU之間共享的統一記憶體架構,Apple 分配相同的記憶體區塊(RAM 和L3 快取)在兩個處理器之間共享,並且它的格式可以同時滿足CPU 所需的高吞吐量以及GPU 所偏好的大塊資料。
傳統情況下,當將資料傳送到外部GPU 進行處理時,CPU 通常需要將資料複製到GPU 擁有的記憶體中,然後才能拾取資料進行處理,而統一記憶體架構解決了這個問題。
我們之前討論過超標量架構,該架構使CPU 核心能夠同時讀取、解碼和分派多個指令。M1 晶片憑藉其RISC 架構,使蘋果能夠透過亂序執行將其提升到一個新的水平。
基本的M1 晶片有8個解碼器,CPU 核心在每個時脈週期同時填充這些解碼器。這些指令被並行地分派到各種專用電路。
最後,M1 晶片上的所有部件在物理上都非常接近。即使電訊號以閃電般的速度移動,當傳輸距離較短時,操作也會更快。
在上述種種設計的加持之下,蘋果自己的晶片性能不斷進步,最終完成反超。
蘋果之所以是蘋果,或許正是來自於一直以來對於硬體和軟體的極致把控,那麼,在開源時代的今天,蘋果的未來又會怎麼樣呢?(新智元)