m1二級緩存才4m
A. 蘋果自研晶元M1 強在哪
蘋果的M1晶元在執行任務時有哪些優勢?
蘋果是從 2004 年起把自家筆記本的 CPU 從 IBM 的 Power 系列換到了 Intel 的酷睿系列,原因是 Intel 的 CPU 的性能功耗比遠超過 IBM。
而 2020 年,蘋果又完全舍棄了 Intel,用上了自己的 CPU。其實理由也和當初一樣,因為自家研發的 CPU 在性能功耗上比 Intel 好一大截。
但實際上,蘋果 M1 系列 CPU 和一直以來的 Intel 酷睿系列、AMD 的 Zen3 系列,構架都是高度類似的。那麼,為什麼 M1 會強那麼多呢?
接下來,我就用這三款當前典型的 CPU 做個對比。為了降低你收聽的負擔,Intel 的酷睿和 AMD 的 Zen3 我就不再重復全稱了,直接就說 Intel 和 AMD。
這些 CPU 在執行任務的時候,都是按照「取指令 - 指令解碼 - 指令執行 - 對內存的讀取 - 結果寫回」這 5 個步驟進行的。下面,我們說說在這些細節上的差異。
在執行指令之前,影響性能的環節就是把指令拿過來。這就對應了剛才說的「取指令」這個步驟。取來的指令會放在一級緩存里,所以如果一級緩存夠大,就有利於 CPU 提高性能。
在這一步,M1 就大幅超越了 Intel 和 AMD。M1 的一級緩存是 192 KB,比 Intel 和 AMD 的 32 KB 大了 5 倍。
指令拿來之後,還需要對指令做一下解碼。這是因為,所有的外部指令都要被翻譯成 CPU 可以看懂的語言才行。在這里,M1 設置了 8 個解碼器,Intel 是 5 個,AMD 是 4 個。僅從數量上,我們就可以看出差距。
但其實,差距還不止是數量上的。因為實際上,這 3 款 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 一倍。
在微指令被執行之前,還有一步是給它們排序。因為有些指令要執行,需要等待前序計算結果。
比如,除法中的借位就是一個典型。於是就存在一個現象,有些微指令的前後順序不能變。而還有很多微指令的執行無所謂先後,只要盡快算出結果就好。
於是,那些需要等待前序計算結果的指令就容易淤積在隊列里。這個排隊等待區叫做「緩沖區」。由於這個緩沖區是給微指令排隊用的,所以這里又叫做「重排序緩沖區」(ROB)。
這個區域當然是越大越好。而 M1 這里能排 630 條,Intel 能排 224 條,AMD 能排 256 條。M1 比其他兩款大了 2 倍多。
接下來,就到了執行的部分。執行指令的工人越多,速度越快,自然就更不容易成為整體性能的瓶頸。以浮點運算這個當今對性能影響最直接的指標來看,M1、Intel 和 AMD 規劃了一樣多的資源,都是類似 2 個 256 bit 的執行單元。
當然,除了浮點運算之外,這個單元也一樣負責運行整數部分的運算。整數運算加浮點運算就是 CPU 的全部運算了。而臨時存放整數和浮點部分的單元, M1 也更強,是一個 354 + 384 的結構,而 Intel 是 180 + 168,AMD 是 192 + 168。
所以,雖然執行單元的執行力一樣,但臨時存放的部分(寄存器),M1 更大,所以更有利於消除瓶頸。
執行部分說完。在二級緩存(L2)上,M1 又規劃了巨大的資源,每個核心都布設了 3 MB 的二級緩存。這是處理器設計 歷史 上最大的。Intel 是每核心 1.25 MB,AMD 是每核心 0.5 MB。
二級緩存大,在預測哪些指令將會被使用的時候,就可以提前預備好,於是接下來要使用的指令被提前放進來的機會就大。一旦用得上,從緩存里拿來用的速度,就遠比從內存里拿來用更快。這就像緊急救援部隊是從樓下趕來,還是從 3 條街以外趕來那樣大的區別。
當然,從 3 條街以外趕來也很重要。因為畢竟所有需要用到的東西都是先存到內存、再挪到緩存、再送進 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 實時數據傳遞的任務里,蘋果筆記本的處理效率就非常高。所以今天,絕大部分視頻 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
M1 Pro=10 CPU + 16 GPU
M1 Max=10 CPU + 32 GPU
M1 Ultra=20 CPU + 64 GPU
M1 的晶體管數量是 160 億,M1 Ultra 的晶體管數量是 1140 億,是 M1 的 7 倍多,也是世界上第一枚晶體管數量超過 1000 億的晶元。M1 Ultra 就是使用 M1 的基礎構架搭積木搭出來的。
說回蘋果的 CPU 為什麼這么好。
首先,因為一分錢一分貨。這顆 CPU 的成本要比 Intel 和 AMD 的貴上幾倍到十幾倍。業內分析,M1 Ultra 的製造成本在 350 美元左右,而 Intel 和 AMD 頂級 CPU 的成本也就只有幾十美元。
蘋果當然有技術優勢,但如果把單顆 CPU 的成本也限定在和 Intel 與 AMD 類似的范圍,蘋果也只能做到 Intel 和 AMD 的水準而已。
但為什麼蘋果敢做這么貴的 CPU 呢?
原因就是,蘋果不是賣 CPU 的,它是賣整機的。
如果像 Intel 和 AMD 那樣靠賣 CPU 賺錢,僅製造成本就要 350 美元。如果按研發成本是 50 美元/顆計算,總成本就是 400 美元,那售價至少要奔著 2000 美元去了。而今天,CPU 銷量最大的型號的售價普遍在 200 - 400 美元之間。
所以,Intel 和 AMD 都不會規劃那麼豪華的構架。蘋果敢這么做,是因為它只賣整機,而且價格很高,5000 - 8000 美元一台。那麼,在最關鍵部件分配 350 美元成本是沒問題的。
第二個原因是,蘋果還能進一步壓縮研發費用。
開發出的 M1 構架可以不斷堆疊,堆 2 倍、堆 3 倍、堆 7 倍,就從移動端變到了筆記本再到台式機再到一體機,各種平台通用。而這樣大幅度的使用一款基礎產品,通過擴大規模來平移到各個產品之中,也只有蘋果可以做到。因為蘋果的每類產品都擁有過億的用戶,這些平台甚至連操作系統都是統一的。
當然,蘋果的 CPU 也不是完美的。
比如,M1 Ultra 實際上已經犧牲了一部分能耗上的優勢,有意地加大規模去追趕當前英特爾最新款的 12 代酷睿處理器。
再比如,和 M1 比起來,M1 Ultra 的單核性能幾乎沒有任何提升。CPU 全核性能是 M1 的 3.2 倍,但實際晶體管的數量卻是 M1 的 7.1 倍。
另外就是,蘋果的電腦哪怕 GPU 規格極高,也幾乎沒法用來玩兒 游戲 。這是 游戲 軟體不支持導致的,算是個 歷史 原因。
但我們也可以預測,Ultra 是 M1 構架最後一個版本,蘋果下次再次更新 CPU 時,代號肯定會升級到 M2,它也許會在 2022 年 9 月的發布會上露面。