探索強勁性能的秘密(一)
今年的新手機趨勢無(wú)異是全面向四核靠攏,不過(guò)同樣是四核,在實(shí)際的性能上其實(shí)是千差萬(wàn)別。例如針對入門(mén)級主流市場(chǎng)的四核手機普遍采用的都是Cortex-A7以及 Cortex-A9 級別的CPU內核,這類(lèi)內核性能、成本以及發(fā)熱都會(huì )較低,因此在入門(mén)市場(chǎng)上大行其道。
而在高端智能手機中則出現了一些新的變化,除了去年就已經(jīng)嶄露頭角的高通Krait系列架構四核外,ARM正統的Cortex-A15也開(kāi)始走上了四核手機的舞臺,例如三星的Exynos 5 Octa、NVIDIA 的Tegra 4。
Cortex-A15是ARM Cortex-A家族中目前最強勁的CPU內核架構,發(fā)布時(shí)間為2010年,德州儀器是最早(2011年)投產(chǎn)基于該架構處理器(型號為OMAP 5)的授權廠(chǎng)商。
和ARM的Cortex-A7、Cortex-A9等微架構相比,Cortex-A15有很大的不同。
A15和A9同樣具備亂序執行,但是Cortex-A15具備(兩倍)的指令發(fā)射端口和執行資源,指令解碼能力也要高出50%,動(dòng)態(tài)分支預測能力更強(采用了多層級分支表緩存),指令拾取帶寬更強(128 bit vs 64 bit),這些都能讓A15的流水線(xiàn)執行具備更高的效率。除此以外,A15采用了VFPv4浮點(diǎn)單元設計,能執行FMA指令以及硬件除法指令,相較而言A9的峰值向量浮點(diǎn)性能基本上只有A15的一半。
不過(guò)在現實(shí)中,A15 的對手應該是高通自行設計的 ARMv7A 兼容處理器架構 Krait。高通對 Krait 的架構細節透露并不是很多,大致上就是 3 個(gè)指令解碼端口(和 A15 一樣)、7個(gè)指令發(fā)射端口(A15 是8個(gè))、4個(gè)發(fā)射端口(A15 是8個(gè)),具備4KB+4KB的單周期時(shí)延L0 Cache設計。
如果采用老掉牙的Dhrystone DMIPS/MHz作為性能衡量指標,Krait 是3.3,A9 是2.5,而A15則是3.5,從紙面上看Krait的確非常適合作為A15的對手。
不過(guò)Dhrystone的缺點(diǎn)是顯而易見(jiàn),它是完全可以塞進(jìn)CPU的L1 cache里執行,這就意味著(zhù)無(wú)法以此對L2 cache(A15是一體化設計,Krait是分離式設計,一體化設計可以減少內存交換導致的大量時(shí)延)、亂序執行的硬件效率/復雜性、內存子系統單元(A15的內存單元可以實(shí)現在一定條件下預執行一條加載指令,而Krait能否具備這樣的能力尚不清楚)等諸多體系架構區別對實(shí)際性能的影響作出有價(jià)值評估。
當然,ARM采用的DMIPS指標實(shí)際上并非28年前的那個(gè)Dhrystone,而是來(lái)自EEBMC Coremark(其實(shí) Coremark 就是前者的改善版本,主要是為了減少預優(yōu)化、對測試有比較嚴格的規則),但是CoreMark同樣可以塞進(jìn)現今大多數處理器的L1 cache里,Dhrystone不能反映現今移動(dòng)設備真實(shí)應用的問(wèn)題在這里依然存在。
由于應用環(huán)境日趨復雜,要正確評估一個(gè)移動(dòng)設備處理器的性能變得越來(lái)越復雜,因為現在的移動(dòng)設備跑的網(wǎng)頁(yè)瀏覽、三維游戲、音視頻、人工智能等都不可能可以完全塞進(jìn)L1 Cache里,因為這些應用牽涉到大量的數據處理。
這時(shí)候,人們在臺式機性能評估上學(xué)到的經(jīng)驗和測試辦法就可以在移動(dòng)設備上采用了。對CPU測試來(lái)說(shuō),最合理的測試方式是采用多種計算規模的真實(shí)應用源代碼以本機代碼進(jìn)行編譯再進(jìn)行測試,在這樣的情況下移動(dòng)設備的計算單元、內存單元都得以充分考驗,測試結果最具參考價(jià)值。
能夠獲得業(yè)界(計算機工業(yè)、學(xué)術(shù)科研)官方認可的CPU測試當屬SPEC.org的SPEC CPU,它就是采用源代碼方式,讓測試人員可以編譯為本機代碼來(lái)測試,許多處理器在研發(fā)伊始就采用SPEC CPU作為最重要的性能評估指標。
SPEC CPU的最新版本為CPU2006,但是CPU2006針對的是當前的臺式機、工作站、服務(wù)器處理器應用環(huán)境,內存容量(CPU2006 支持多線(xiàn)程測試,因此要求的內存容量相當高,8線(xiàn)程處理器用16 GB內存也是有點(diǎn)勉強)和自身存儲空間(未編譯時(shí)就要數GB空間,編譯后就要占用1xGB了)要求都較高,因此采用CPU2006對目前的移動(dòng)設備來(lái)說(shuō)是不太現實(shí)的。
SPEC CPU是每隔幾年就更新一次,在CPU2006之前的舊版本為CPU2000,它的speed整數性能測試完全可以在1GB級別的移動(dòng)設備上運行,在
評論