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