四核Cortex-A15智能手機時代全面降臨
今年的新手機趨勢無異是全面向四核靠攏,不過同樣是四核,在實際的性能上其實是千差萬別。例如針對入門級主流市場的四核手機普遍采用的都是 Cortex-A7 以及 Cortex-A9 級別 的 CPU 內(nèi)核,這類內(nèi)核性能、成本以及發(fā)熱都會較低,因此在入門市場上大行其道。
而在高端智能手機中則出現(xiàn)了一些新的變化,除了去年就已經(jīng)嶄露頭角的高通 Krait 系列架構(gòu)四核外,ARM 正統(tǒng)的 Cortex-A15 也開始走上了四核手機的舞臺,例如三星的 Exynos 5 Octa、NVIDIA 的 Tegra 4。
Cortex-A15 是 ARM Cortex-A 家族中目前最強勁的 CPU 內(nèi)核架構(gòu),發(fā)布時間為 2010 年,德州儀器是最早(2011 年)投產(chǎn)基于該架構(gòu)處理器(型號為 OMAP 5)的授權(quán)廠商。
和 ARM 的 Cortex-A7、Cortex-A9 等微架構(gòu)相比,Cortex-A15 有很大的不同。
A15 和 A9 同樣具備亂序執(zhí)行,但是 Cortex-A15 具備(兩倍)的指令發(fā)射端口和執(zhí)行資源,指令解碼能力也要高出 50%,動態(tài)分支預測能力更強(采用了多層級分支表緩存),指令拾取帶寬更強(128 bit vs 64 bit),這些都能讓 A15 的流水線執(zhí)行具備更高的效率。除此以外,A15 采用了 VFPv4 浮點單元設計,能執(zhí)行 FMA 指令以及硬件除法指令,相較而言 A9 的峰值向量浮點性能基本上只有 A15 的一半。
不過在現(xiàn)實中,A15 的對手應該是高通自行設計的 ARMv7A 兼容處理器架構(gòu) Krait。高通對 Krait 的架構(gòu)細節(jié)透露并不是很多,大致上就是 3 個指令解碼端口(和 A15 一樣)、7 個指令發(fā)射端口(A15 是 8 個)、4 個發(fā)射端口(A15 是 8 個),具備 4KiB + 4KiB 的單周期時延 L0 Cache 設計。
如果采用老掉牙的 Dhrystone DMIPS/MHz 作為性能衡量指標,Krait 是 3.3,A9 是 2.5,而 A15 這是 3.5,從紙面上看 Krait 的確非常適合作為 A15 的對手。
不過 Dhrystone 的缺點是顯而易見,它是完全可以塞進 CPU 的 L1 cache 里執(zhí)行,這就意味著無法以此對 L2 cache(A15 是一體化設計,Krait 是分離式設計,一體化設計可以減少內(nèi)存交換導致的大量時延)、亂序執(zhí)行的硬件效率/復雜性、內(nèi)存子系統(tǒng)單元(A15 的內(nèi)存單元可以實現(xiàn)在一定條件下預執(zhí)行一條加載指令,而 Krait 能否具備這樣的能力尚不清楚)等諸多體系架構(gòu)區(qū)別對實際性能的影響作出有價值評估。
當然,ARM 采用的 DMIPS 指標實際上并非 28 年前的那個 Dhrystone,而是來自 EEBMC Coremark(其實 Coremark 就是前者的改善版本,主要是為了減少預優(yōu)化、對測試有比較嚴格的規(guī)則),但是 CoreMark 同樣可以塞進現(xiàn)今大多數(shù)處理器的 L1 cache 里,Dhrystone 不能反映現(xiàn)今移動設備真實應用的問題在這里依然存在。
由于應用環(huán)境日趨復雜,要正確評估一個移動設備處理器的性能變得越來越復雜,因為現(xiàn)在的移動設備跑的網(wǎng)頁瀏覽、三維游戲、音視頻、人工智能等都不可能可以完全塞進 L1 Cache 里,因為這些應用牽涉到大量的數(shù)據(jù)處理。
這時候,人們在臺式機性能評估上學到的經(jīng)驗和測試辦法就可以在移動設備上采用了。對 CPU 測試來說,最合理的測試方式是采用多種計算規(guī)模的真實應用源代碼以本機代碼進行編譯再進行測試,在這樣的情況下移動設備的計算單元、內(nèi)存單元都得以充分考驗,測試結(jié)果最具參考價值。
能夠獲得業(yè)界(計算機工業(yè)、學術(shù)科研)官方認可的 CPU 測試當屬 SPEC.org 的 SPEC CPU,它就是采用源代碼方式,讓測試人員可以編譯為本機代碼來測試,許多處理器在研發(fā)伊始就采用 SPEC CPU 作為最重要的性能評估指標。
SPEC CPU 的最新版本為 CPU2006,但是 CPU2006 針對的是當前的臺式機、工作站、服務器處理器應用環(huán)境,內(nèi)存容量(CPU2006 支持多線程測試,因此要求的內(nèi)存容量相當高,8 線程處理器用 16 GiB 內(nèi)存也是有點勉強)和自身存儲空間(未編譯時就要數(shù) GiB 空間,編譯后就要占用 1x GiB 了)要求都較高,因此采用 CPU2006 對目前的移動設備來說是不太現(xiàn)實的。
SPEC CPU 是每隔幾年就更新一次,在 CPU2006 之前的舊版本為 CPU2000,它的 speed 整數(shù)性能測試完全可以在 1GB 級別的移動設備上運行,在以前甚至有一些 CPU2000 的測試被移植到 GPU 上做加速性能測試。
ARM 陣營極少公布 SPEC CPU 測試結(jié)果,這當然也是有原因的,因為在過去的不少時間里,ARM 針對的設備大都只有幾百兆內(nèi)存空間,塞進操作系統(tǒng)后,留給程序運行的空間就更少,此外由于省電先決的考量 ARM 處理器的性能其實真的不怎么樣。
不過有意思的是,今年 ARM 陣營里的 NVIDIA 在發(fā)布 Tegra 4 的時候公布了 CPU2000INT 的測試結(jié)果:在 1.9GHz 頻率設定的 NVIDIA 參考平臺里,Tegra 4 的 SPEC CPU2000int_base 為 1168。這個測試結(jié)果相當于 2003 年第四季度 SPEC.org 上公布的 AMD K8 Sledgehammer 2GHz 測試結(jié)果。
NVIDIA 還進行了在小米二手機(采用高通 Snapdragon S4 Pro 即 APQ8064 1.7GHz)上的 CPU2000 測試,并且根據(jù)高通公布的 S800 相對 S600 在 IPC(每周期指令)和頻率上的變化幅度而估算出來的 S800 的 CPU2000 測試結(jié)果:
從圖表來看,S600 的 CPUINT2000_base 測試結(jié)果相當于 Tegra 4 的一半不到,這在很大程度上反映了 Cortex-A15 相對 Krait 系處理器的真實應用差別。
需要指出的是,雙方的測試平臺本身也是有一些影響的,例如小米二手機在執(zhí)行這個測試的時候,CPU 頻率是否存在降頻現(xiàn)象,NVIDIA 對此沒有說明。
一般來說,像 APQ8064 在四核全速運行的時候,會在一段時間內(nèi)由于過熱而導致頻率從最高的 1.7GHz 開始下降。當然,NVIDIA 在這里公布的是 speed 模式下的 CPU2000INT 測試結(jié)果,這個模式下是單線程的測試,只有一個 CPU 內(nèi)核會被使用。
比較遺憾的是高通對這個測試結(jié)果尚未提出異議(據(jù)說高通對于處理器性能的孰高孰低并不十分看重,他們戲稱是賣基帶送 CPU),而 CPU2000 的配置對一般人來說是相當復雜的事情,所以這個測試暫時沒有第三方使用同樣的平臺測試佐證。
威盛電子在發(fā)布 Nano X2 處理器的時候曾經(jīng)公布過一份文件,里面也有采用 CPU2000 對 Nano X2 1.2+GHz 和 Atom D525 進行測試,其中 gcc 編譯器出來的 CPU2000 INT 成績分別為 799 和 582,采用 Intel 編譯器出來的成績分別是 955 和 725。
NVIDIA 的 Tegra 4 的 CPU 屬于 ARMv7A 指令集,因此編譯器很可能是 armcc 或者 gcc,NVIDIA 新近收購的 PGI 是一家老牌編譯器廠商,也許它能提供內(nèi)部測試版給 NVIDIA,只是 PGI 過往從未發(fā)布過 ARM 系編譯器。
到這里,大家應該對 Cortex-A15 的架構(gòu)特點以及和它的一些競爭對手在性能上的區(qū)別有大致的了解,不過這樣的旗艦級處理器在智能設備的實際應用情況又如何呢?
關(guān)注我們
