輕鬆讀懂移動處理器 CPU微架構全解析
2025-04-01 06:41:24
泡泡網CPU頻道1月26日 原文標題為《》,對不起,你被標題欺騙了,實際上對許多讀者來說要讀懂本文並不是那麼輕鬆:p
隨著半導體工藝的日趨先進,智慧型手機(Smartphone 或者 Superphone)、平板電腦(Tablet 或者 Pad)已經成為許多網友最常使用、最多關注、更新最快的電子消費產品,高度便攜性是這類產品的最關鍵成功原因。
所謂便攜性自然是指產品必須足夠輕便而且需要有足夠的續航能力,因此這就要求產品的原件必須足夠省電,只有這樣才能減少散熱和電池體積這兩個最佔體積和重量的問題。
要達到這個目標,肯定要做功能和性能上的妥協,至少相對個頭更大的筆記本電腦、臺式機而言,像降低吞吐率或者增加時延,從實測性能而言,目前智慧型手機或者平板電腦的 CPU、圖形處理器性能基本上相當於 6 到 10 年前桌上型電腦的水準。
舉個簡單的例子,在俄羅斯網站 ixbt 的討論區上,,一位名為 ssvb 的網友採用 origenboard.org 的一片 Samsung Exynos 4210 開發板(配有 Exynos 4210 處理器具備兩個 ARM Cortex-A9 處理器內核)跑出來的 High Performance Linpack (HPL)性能是 1.307 GFLOPS,同貼中還有 Intel Atom N450(Pineview 架構,45nm,單核) 1.66GHz 的測試結果——0.944 GFLOPS 以及 。
NVIDIA 官網上的一份 也表明 Tegra 2(ARM Cortex-A9 雙核 1GHz,理論雙精度浮點性能 2GFLOPS)的 HPL 性能為 1.15GFLOPS( 57% 效率,200MFLOPS/瓦) 。
這都是一個什麼概念?我曾經在 06 年的時候用 Pentium D 820 2.8GHz 跑出來的 HPL 性能為 10.12 GFLOPS,Athlon64X2 2.6GHz 為 9.158 GFLOPS。
那麼現在臺式機的 HPL 性能狀況如何?
在去年我用 Core i7 2600K 3.4GHz 配合未支持 AVX 指令的 GotoBLAS(數學庫)上得到的 HPL 性能為 51.18 GFLOPS 左右,後來又用支持 AVX 的 OpenBLAS(原 GotoBLAS 開發者停止更新後的其中一個後續開源社區版)得出的 HPL 性能為 99.38 GFLOPS,到 2013 年支持 AVX2 指令集的 Haswell 架構出來後,這個測試結果應該還能接近再翻番,達到 200 GFLOPS 級別。
也許你會說手機、平板要雙精度幹啥呢?請不要忘記在 30 年前的 x86 處理器根本沒有集成任何硬體浮點單元,現在的情況又如何?曾經做出號稱最強 x87 協處理器的 Cyrix 後來一頭扎進整數為王的產品策略後現在影都沒了。
「幹啥」這個問題往往是硬體具備並達到一定性能條件後就會有答案的,臺式機上的性能測試軟體和方案會隨著手機、平板性能日益強大而變得在這類設備上運行也理所應當,除了上面說的 HPL 外,各類 PC 上流行的測試工具例如 SPEC CPU20xx、3DMark 等也會是如此。
傳統的 CPU 性能測試的確不能完全適用於手機、平板的 SoC 晶片(人們把可以在行動作業系統上跑應用軟體的 SOC 稱作應用處理器,簡稱 AP),但是請注意我說這句話是因為 SoC 並不僅僅有 CPU,還有 GPU、音視頻編解碼器、存儲控制器、非易失性存儲單元、數模/模數轉換器以及各種輸入輸出周邊等,這使得我們要單純評價一款 SoC 是否非常好的的時候可能會感到頗為傷神。
話雖如此,不過總的來說,SoC 中和性能最密切相關的依然是 CPU、GPU,因為智能設備裡幾乎所有程序的運行都必須依仗兩者來執行,與用戶的使用感受有直接關係(請注意,我們這裡說的只是指 SoC 晶片中,而非手機或者平板電腦整體)。因此,縱然手機、平板處理器型號各異並且內中千頭萬緒,我們還是應該從大家最關心的 CPU、GPU 著手來了解。
現在情況簡單多了,按照 ISA(指令集架構)劃分,因為目前的手機、平板 CPU 無非是 ARM、Intel/AMD 兩大陣營,潛在的還有 MIPS,不過目前 MIPS 似乎在這個領域還成不了氣候,更像是一個備胎。
如果你對計算機科學還不是很了解的話,對 ISA 這個詞可能也不會很了解,雖然它經常出現在一些時髦的技術文章中。
電腦顯然並不能直接明白 C、Java、Basic 這樣的高級語言(雖然有人嘗試過開發高級語言處理器,但是無不失敗告終),搭建在高級語言和 CPU 本機代碼之間的就是 ISA。
ISA 的全稱是 instruction set architecture,中文就是指令集架構,有時候直接稱呼為架構(architecture),是指程式設計師實際「可見」的指令集,包含了程式設計師編寫一個能正確運行的二進位機器語言程序的所有信息,涉及到指令、 I/O 設備等。例如 Intel 的 IA-32、Intel 64(曾經名為 IA32e、EM64T 等);ARM 的 ARMv7、ARMv8 等等。
這裡的 IA32、Intel 64 或者 ARMv7、ARMv8 其實是指各自指令集架構的不同版本,有時候我們嫌囉嗦,所以把前兩者統稱 x86,後兩者統稱 ARM。
將 ISA 變成真正可以使用的實物需要經過「實現」,它包括兩個層面:組成和硬體。
組成是從計算機設計的高階層面而言,例如:存儲系統、存儲互連接、CPU(包括算術、邏輯分支、數據傳輸的實現)設計,有時候「組成」又被稱作微架構(microarchitecture),英特爾 Nehalem、NVIDIA Kepler、ARM Cotrex-A57 都可以屬於各自某系列晶片的微架構,其中 Kepler 的 ISA 是 CUDA PTX 和 Cortex-A57 的 ISA 屬於 ARMv8。
硬體通常是指電腦的規格,包括具體的邏輯設計、封裝技術,同一系列的產品可能有相同的 ISA、近乎一樣的微架構,但是存在某些具體規格的差別,例如 NVIDIA Tegra 3,有 AP30、AP33、T30、T33、T30S、T33S、T30SL 等具體的型號,它們都屬於 Tegra 3 微架構,但是頻率規格、內存規格等地方都有差別。
而 GPU 方面則複雜一些,有 PowerVR、高通、NVIDIA、ARM、Intel 等等,其中使用最廣泛的就是 PowerVR,這得益於 PowerVR 10年前就決定全面切換到行動裝置上,鋪橋搭路的功夫很紮實,而 NVIDIA 和 Intel 的商業模型都是只用於自家產品(當然 NVIDIA 也曾經在遊戲機領域做過 RSX 這樣的 IP core 授權)的,所以目前未能在其他 SoC 上看到。
下面的表格給出了這兩年來比較熱門的手機或者平板電腦 ARM 處理器,它們基本上都被應用於各公司的旗艦級產品中。
2011/2013 SoC 對比表 | |||||
SoC | 製程 | CPU | GPU | 內存總線 | 發布時間 |
Apple A5 | 45nm/32nm | 2 x ARM Cortex A9 w/ MPE @ 1GHz | PowerVR SGX 543MP2 | 2 x 32-bit LPDDR2 | 2011-10-4 |
Apple A5X | 45nm | 2 x ARM Cortex A9 w/ MPE @ 1GHz | PowerVR SGX 543MP4 | 4 x 32-bit LPDDR2 | 2012-3-16 |
Apple A6 | 32nm | 2 x Apple Swift @ 1.3GHz | PowerVR SGX 543MP3 | 2 x 32-bit LPDDR2 | 2012-9-12 |
Apple A6X | 32nm | 2 x Apple Swift @ 1.4GHz | PowerVR SGX 554MP4 | 4 x 32-bit LPDDR2 | 2012-10-23 |
NVIDIA Tegra 2 | 40nm | 2 x ARM Cortex A9 @ 1GHz | ULV GeForce T2 | 1 x 32-bit LPDDR2 | 2010-1-8 |
NVIDIA Tegra 3/Kal-El | 40nm | 4 x ARM Cortex A9 w/ MPE @ ~1.3GHz | ULV GeForce T3 | 1 x 32-bit LPDDR2 | 2011-11-8 |
NVIDIA Tegra 4/Wayne | 28nm | 4 x ARM Cortex A15MPCore w/MPE | ULV GeForce T4 | 2 x 32-bit LPDDR2 | 2012-1 |
Samsung Exynos 4210 | 45nm | 2 x ARM Cortex A9 w/ MPE @ 1.2GHz | ARM Mali-400 MP4 | 2 x 32-bit LPDDR2 | 2011-2-10 |
Samsung Exynos 4212 | 32nm | 2 x ARM Cortex A9 w/ MPE @ 1.5GHz | ARM Mali-400 MP4 | 2 x 32-bit LPDDR2 | 2011-10-1 |
Samsung Exynos 5250 | 32nm | 2 x ARM Cortex A15MPcore w/ MPE @ 1.7GHz | ARM Mali-604 | 2 x 32-bit LPDDR2 | 2011-11-30 |
Qualcomm MSM8060/8260/8660 | 45nm | 2 x Scorpion @ 1.5GHz | Adreno 220 | 1 x 32-bit LPDDR2* | 2011-2-10 |
Qualcomm MSM8960 | 28nm | 2 x Krait @ 1.5GHz | Adreno 225 | 2 x 32-bit LPDDR2 | 2011-2-14 |
Qualcomm MSM8960T | 28nm | 2 x Krait @ 1.7GHz | Adreno 320 | 2 x 32-bit LPDDR2 | 2012-2-27 |
Qualcomm APQ8064 | 28nm | 4 x Krait @ 1.7GHz | Adreno 320 | 2 x 32-bit LPDDR2 | 2011-2-14 |
它們都屬於 ARMv7 架構,架構寄存器數量為 16 個,其中 Tegra 2/3、Exynos、A5/A5X 的 CPU 核心是 Cortex A9 或者 Coretx A15,都是來自於 ARM 的 IP core 授權,而 A6/A6X 的 Swift 和高通的 Scorpion/Krait 則分別是蘋果和高通獲得 ARM 架構授權後而各自自行開發的。
眾所周知,IP core 的全稱是 Intellectual Proerty core,意即智慧財產權內核,是目前各種嵌入式應用、個人智能消費類設備中最為常見技術類型,數十億計的產品都採用了來自 ARM、MIPS 的 IP core。IP core 被設計成可以和晶片中其他邏輯單元(例如視頻編解碼器、I/O 界面、內存界面)協同運作形成一枚可以支持特定應用的處理器。
IP core 分為兩類:硬核(hard core......不要會錯意了)和軟核(soft core)。硬核是針對特定半導體廠商而優化的,對外人來說是一個提供了外部界面、不修改的「黑盒子」,獲得授權的廠商通常只能對核外的邏輯參數進行修改,例如 L2 cache 大小,但是 IP core 本身不可修改。而軟核的設計代碼則是可以針對不同半導體廠商做編譯和修改,當然這要求設計廠商具備強大的研發實力和經驗,因為現在的 IP core 相當複雜。
簡而言之而言,硬核的性能更高、佔用管芯面積更小,而軟核則可以讓不同廠商作進一步的修改。