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