蘋果在2004年把筆記本的CPU從IBM的Power系列換成了Intel的Core系列,因為Intel的CPU性能功耗比遠遠超過IBM。
2020年,蘋果徹底拋棄英特爾,使用自己的CPU。其實原因和當初是壹樣的,因為我們自己研發的CPU在性能和功耗上都比英特爾好很多。
但實際上,蘋果M1系列CPU的架構與英特爾酷睿系列、AMD Zen3系列高度相似。那麽,M1為什麽強那麽多呢?
接下來我就拿這三款典型的CPU做壹個對比。為了減輕大家的聽課負擔,我就不重復Intel的Core和AMD的Zen3的全名了,只說Intel和AMD。
這些CPU在執行任務時,都遵循“取指令-解碼指令-執行指令-讀取內存-寫回結果”這五個步驟。接下來,我們來說說這些細節上的區別。
在執行指令之前,影響性能的環節是獲取指令。這與剛才提到的“接受指示”的步驟相對應。取來的指令會放在壹級緩存中,所以如果壹級緩存足夠大,會幫助CPU提升性能。
這壹步,M1大大超越了Intel和AMD。M1的L1緩存為192 KB,比Intel和AMD的32 KB大5倍。
指令拿來後,需要解碼。這是因為所有外部指令都必須翻譯成CPU能夠理解的語言。這裏,M1有8個解碼器,Intel有5個解碼器,AMD有4個解碼器。我們只能看到數量上的差距。
但其實差距不僅僅是數量上的。因為實際上這三個CPU內部可以讀取的指令都是壹種叫RISC(精簡指令集)的指令。這種指令有固定的長度和執行時間,但不能太復雜。如果要完成復雜的動作,需要堆疊很多RISC。
為了與進入解碼器前的指令相區別,每壹條通過解碼器後的指令都稱為“微指令”。
以及輸入CPU的指令是什麽?
蘋果的M1,輸入是RISC指令。對於Intel和AMD,是X86指令。這是與RISC指令完全不同的指令。它們被稱為CISC(復雜指令集)。這種指令長度和執行時間都不固定,但是壹條指令可以執行壹些復雜的任務,不需要堆疊很多塊。
RISC和CISC是兩個完全不同的陣營。在Intel和AMD的CPU中,還需要壹個程序將CISC翻譯成RICS,所以翻譯過程自然需要精力和時間。而蘋果的M1,輸入指令是RISC,翻譯器輸出RISC。
妳可能要問,既然蘋果的輸入輸出都是RISC,為什麽還要翻譯?因為需要標準化。但是這樣的標準化有點類似於把繁體中文翻譯成簡體中文,比較簡單。Intel和AMD在這壹步做的翻譯,類似於把古文翻譯成簡體中文,要費力得多。所以在這壹步,M1節省了很多能量。
在執行之前,還有壹個步驟,就是發出翻譯標準化的指令。在啟動步驟,M1壹次可以發出8條微指令,AMD壹次發出6條,Intel壹次發出4條。也就是說,在相同的任務和頻率下,M1發出的微指令數量剛好是Intel的兩倍。
在執行微指令之前,還有壹個步驟是對它們進行排序。因為需要執行壹些指令,所以需要等待前面計算的結果。
比如除法借位就是壹個典型的例子。所以就出現了壹些微指令的順序不能改變的現象。還有很多微指令是不分先後執行的,只要盡快算出結果就行。
這樣壹來,那些需要等待前件計算結果的指令很容易在隊列中堆積。這個排隊區域叫做“緩沖區”。因為這個緩沖區是用來排隊微指令的,所以這裏也叫“重排序緩沖區”。
面積越大越好。而M1在這裏可以排630,Intel可以排224,AMD可以排256。M1比其他兩款大壹倍多。
接下來是執行的部分。工人執行指令越多,速度越快,就越不容易成為整體性能的瓶頸。在浮點運算這壹當今對性能影響最直接的方面,M1、Intel、AMD都規劃了壹樣多的資源,都類似於兩個256位的執行單元。
當然,除了浮點運算,這個單元還負責運行整數運算。整數運算加浮點運算就是CPU的全部運算。暫存整數和浮點部分的單元,M1也更強,而且是354+384結構,而Intel是180+168,AMD是192+168。
所以雖然執行單元的執行是壹樣的,但是暫存部分(寄存器)更大,所以更有利於消除瓶頸。
執行部分完成了。在L2緩存上,M1規劃了巨大的資源,每個核有3 MB L2緩存。這是處理器設計史上最大的壹次。英特爾是65438+每核0.25 MB,AMD是每核0.5 MB。
二級緩存大,所以在預測會用到哪些指令的時候,可以提前做好準備,所以下壹步要用的指令有很大幾率會提前放進去。壹旦使用,從緩存中獲取它比從內存中獲取要快得多。這和緊急救援隊是來自樓下還是來自三個街區之外的差別壹樣大。
當然,來自三個街區以外也很重要。因為畢竟所有需要用到的東西都是先存到內存裏,再搬到緩存裏,再送到CPU。內存帶寬大,也能消除瓶頸。
然而,M1有壹種完全不同的內存方法。在M1中,那些內存妳是碰不到的,因為它們是鋪在CPU的鐵蓋下,與CPU融為壹體的。而普通電腦的內存在哪裏?離CPU大概5-10 cm,是壹個可以壹個壹個插的內存條。記憶棒就是這麽來的。M1最大的優勢是降低延遲,從傳統計算機的70 ns降低到45 ns。
內存帶寬的差距更大。M1 Ultra可以達到800 GB/s,甚至M1 Pro和M1都有200 GB,而Intel和AMD只能有50 GB/s-60 GB/s左右..
所以在每秒有幾十GB實時數據傳輸的高清視頻剪輯任務中,蘋果筆記本的處理效率是非常高的。所以今天只要經濟情況允許,大部分video UP主肯定都是用蘋果筆記本剪輯的。
是什麽決定了CPU的性能?
其實CPU的性能好不好,不是靠某個環節就能達到的。因為計算過程是壹個流水線,流水線上任何壹點的瓶頸都決定了CPU的最大性能。M1的好處就是比傳統CPU好,在任何壹個環節都是堆砌出來的。
在壹些典型圖像渲染任務的處理上(Cinebench R23),全核功率的M1是7800點,而Intel的i9 12900K是13500點。雖然Intel的旗艦機CPU性能是M1的170%,但功耗是M1的650%。加在壹起,同樣性能下,M1架構的CPU只需要Intel的1/4-1/3的功耗。
所以M1架構的蘋果筆記本可以不用電源適配器,續航絕對保證壹整天。
目前這在傳統處理器上越來越不可能。因為Intel和AMD都在競爭最高的性能,所以原本能耗可以接受的設計不可能從容不迫的來,最後壹滴性能都要擠出來,有時甚至會以功耗翻倍來換取約10%的性能提升。
這就引出了另壹個奇怪的事情。如果妳買的是傳統處理器的筆記本,插電和拔電性能會有30%-40%的差別。
因為在不插交流電源的情況下,如果系統仍然以最大性能運行,電池會很快耗盡,用戶體驗會太差。所以只有電池續航的時候,系統會強制CPU和GPU低頻低壓運行。這時候性能就大打折扣了。
蘋果的CPU根本沒有這樣的設置,使用電池和電源時性能完全壹樣。
為什麽蘋果的CPU那麽貴?
說到這裏,我們壹直在說2020年發布的M1。其實大家更關心的是3月8日晚發布的M1 Ultra。但是,理解M1對於理解M1 Ultra非常重要,因為:
M1=8個CPU + 8個GPU
m 1 Pro = 10 CPU+16 GPU
M1 Max=10個CPU + 32個GPU
M1 Ultra=20個CPU + 64個GPU
M1的晶體管數量為16億,M1 Ultra的晶體管數量為114億,是M1的7倍多,也是全球首款超過100億晶體管的芯片。M1 Ultra是使用M1的基本框架構建的。
先說蘋果的CPU為什麽這麽好。
首先,因為物有所值。這款CPU的成本比Intel和AMD貴幾倍到十幾倍。據業內分析,M1 Ultra的制造成本在350美元左右,而Intel、AMD的頂級CPU成本也不過幾十美元。
蘋果當然有技術優勢,但是如果把單個CPU的成本限制在和Intel、AMD差不多的範圍內,蘋果也只能做到Intel、AMD的水平。
但是蘋果為什麽敢做這麽貴的CPU?
原因是蘋果不賣CPU,賣的是整機。
如果像英特爾、AMD那樣靠賣CPU賺錢,光制造成本就要350美元。如果R&D成本為50美元/件,則總成本為400美元,售價至少為2000美元。如今CPU銷量最大的機型價格壹般在200-400美元之間。
所以Intel和AMD都不會規劃這麽豪華的架構。蘋果敢這麽做是因為只賣整機,而且價格很高,5000-8000美金壹臺。那麽,把350美元的成本分攤到最關鍵的部件上就沒問題了。
第二個原因是蘋果可以進壹步減少R&D的開支。
開發的M1架構可以連續堆疊,2倍、3倍、7倍,從移動終端到筆記本到臺式機到壹體機,所有平臺通用。而壹個基礎產品如此大規模的使用,通過擴大規模可以轉化為各種產品,也只有蘋果能做到。因為蘋果的每個產品都有超過1億的用戶,這些平臺甚至操作系統都是統壹的。
當然,蘋果的CPU並不完美。
比如M1 Ultra,其實是犧牲了壹些能耗上的優勢,故意加大規模追趕英特爾最新的12代酷睿處理器。
再比如,相比M1,M1 Ultra的單核性能幾乎沒有提升。CPU的整個核心性能是M1的3.2倍,但實際的晶體管數量是M1的7.1倍。
另外,即使蘋果電腦的GPU規格極高,也幾乎不能用來玩遊戲。這是遊戲軟件不支持造成的,是歷史原因。
但是我們也可以預測Ultra是M1架構的最後壹個版本。當蘋果再次更新CPU時,其代號肯定會升級為M2,可能會出現在2022年9月的發布會上。