今年的新手機趨勢無異是全面向四核靠攏,不過同樣是四核,在實際的性能上其實是千差萬別。例如針對入門級主流市場的四核手機普遍采用的都是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的架構特點以及和它的一些競爭對手在性能上的區別有大致的了解,不過這樣的旗艦級處理器在智能設備的實際應用情況又如何呢?
有采用四核Cortex-A15手機了嗎?
這個問題其實來自于一些人的猜測,我們看見一些文章認為Cortex-A15的性能高但是功耗大,并不一定適用于手機。
這個問題放在一年前的話可能會有各種不同的答案,但是現在是2013年8月下旬,答案已經非常清晰:已經有采用四核Cortex-A15的手機上市,而且會有更多的采用Cortex-A15的手機上市,這也為Cortex-A15是否適用于手機的爭論畫上了一個句號。目前,明確可用于手機的Cortex-A15架構的四核移動處理器主要有兩種,一種是三星的Exynos Octa,另外一種是NVIDIA Tegra 4。
三星公司在4月27日上市的Galaxy S4有多個型號,但是從處理器來分,就分為兩種機型:高通Snapdragon 600和三星Exynos 5410。
S600其實類似于去年大紅大紫的APQ8064,CPU微架構為Krait 300,相對APQ8064的Krait微架構來說,它增加了硬件數據預取器,能預先將數據從內存中抓到L2 cache里。除此以外Krait 300還改善了分支預測的準確度,這些變化能改善Krait 300的IPC(每周期指令)大約15%,加上最高頻率提升至1.9GHz(取決于手機廠商,像HTC One就選擇了較低的或者說和APQ8064上限一樣的1.7GHz),因此可以認為S600的CPU性能比之前的S4 Pro最多提升了大約28.5%左右,更接近于Cortex-A15的性能,不過它使用的制程和S4 Pro一樣依然是28nm LP,這個制程沒有在漏電流上作優化,因此在耗電方面S600比S4 Pro更大。
為什么三星不選擇單一型號處理器的方式呢?首先三星肯定要支持自家研發的處理器,這是毫無疑問的,因此基于Cortex-A15的E5410自然成了配置之一;其次是三星作為一家韓國公司,同時也是一家跨國公司,產品需要賣向全球,有些的確已經邁向了4G LTE,有些則還是3G時代,面對世界各地的通信制式、合作運營商的要求以及全球行銷的潛規則,高通方面的產品是不得不考量的,因此在這里也把定位比較接近的S600作為另一種配置以支持LTE。
三星Galaxy S4 GT-I9500主電路板正面
三星Exynos 5410管芯圖,深色部分是四核A15區域,粉紅色部分是四核A7區域
在國際版的GT-I9500(以及中國大陸區的聯通版、電信版)采用的三星Exynos 5 Octa內部型號為Exynos 5410,CPU部分是一組四核Cortex-A15加另一組四核 Cortex-A7的搭配方式。不過Exynos 5410只支持big.LITTLE模式里的IKS(核內切換器),不支持GTS(全局任務調度)模式,因此看上去雖然有物理上的八個內核,但是本質上同一時間內最多只能實現同時使用四核A15或同時使用四核A7,如何切換則是由根據當前任務的負荷性質決定。
NVIDIA Tegra 4推出多個月后,除了自家的SHIELD和HP、華碩以及東芝等廠商的筆記本電腦外,還會被用于一些手機里面,目前已經公布的有中興的U988S,據聞還會有更重量級的手機隨后出來。
NVIDIA Tegra 4管芯圖,橙色區為4+1Cortex-A15核心,綠色小方塊區域為GPU
Tegra 4和三星Exynos 5410的主CPU都采用了四核Cortex-A15,不過NVIDIA沒有采用ARM的big.LITTLE結構,而是采用自己4+1核的結構,4+1 中的“1”被稱作伴侶核。
“伴侶核”是一個采用省電設計、運行在較低頻率下的Cortex-A15內核,用于處理負載較輕的任務以達到省電的目的,一旦負載較重就會切換到主CPU核上。
和Cortex-A15+Cortex-A7的big.LITTLE相比,這樣的設計據稱有兩個好處:
首先,是由于“伴侶核”與主CPU核心架構完全一樣,CPU切換時(或者說程序執行的現場切換)的時間比Cortex-A15切換到Cortex-A7的方式快很多,這是因為不用進行復雜的映射;
其次,Cortex-A15的單核性能比Cortex-A7高很多,因此大多數一般的應用中并不需要頻繁切換到主CPU,從而達到更省電的目的。當然,具體的耗電情況需要等到設備出來后進行詳細測試。
在商業社會里衡量一款產品是否成功,關鍵的指標之一自然是出貨量。按照Digitimes援引TrendForce(集邦科技)在今年七月末的一份研究報告,三星Galaxy S4的出貨量將會達到2300萬部的總出貨量,而在更早之前已經有媒體報道指出三星Galaxy S4的出貨量“已經”達到兩千萬臺。
如果只是靠品牌知名度和好不好看的話,任何產品也不可能做到快速的大量出貨,Galaxy S4作為旗艦級產品,它的規格配置在吸引力方面起到了很大的作用,四核Cortex-A15或者四核S600的采用是它成功的關鍵因素之一,這些成功反過來也會對人們的品牌認受度產生正面印象。
上圖就是我們前面提及的預期購買手機品牌調查百分比,可以看到在三星發布了Galaxy S4第一季度到第二季度變化值是呈上升態勢,而蘋果方面則是依然不斷地下滑。
所以從這一小節中我們可以得出結論,市場上已經有四核Cortex-A15手機上市,而且從市場趨勢來看這樣的產品已經獲得了實質性的認可。
不同型號的Cortex-A15芯片設計是否一樣呢?
ARM的實驗室里雖然也有自己開發的處理器實體,但是這些處理器是作為研發之用,不會拿出來賣給最終消費者的,市場上的“ARM”處理器都是ARM透過架構授權或者內核授權的方式由第三方廠商開發或者拼湊而成。
因此在市場上你會看到五花八門、各式各樣的ARM處理器,它們來自不同的芯片設計公司、不同的制造廠商,由于設計技術水平、經驗以及制造廠的制程不同,實際上出來的芯片在一些指標、功能上會有不可忽視的區別。
就譬如我們這里提到過三星Exynos 5410和NVIDIA Tegra 4,CPU都采用了四核Cortex-A15,但是兩者的區別其實多,例如:
1、Exynos 5410采用三星的28nm LP HKMG制程,最高頻率設定是1.6GHz,Tegra 4采用臺積電的28nm HPL制程,最高設定頻率為1.9GHz;
2、Exynos 5410采用了A15*4 + A7*4的設計,Tegra 4 采用了高頻A15*4+低頻(700~800MHz)低耗電A15*1的設計;
3、兩者的GPU截然不同,Exynos 5410采用了ImgTec授權的PowerVR SGX544MP3 (tri-core) @480MHz,Tegra 4 采用的是NVIDIA自己開發的GPU架構,幾何單元為單精度浮點,像素單元為20位浮點,這應該是吸取了當年GeForce FX世代受挫的經驗而特別炮制的平衡設計。
4、兩者的die size(管芯尺寸)不一樣,Exynos 5410按照EDN的說法應該是122mm^2,而Tegra 4大約是80mm^2,后者比前者小了大約33%,Tegra 4的設計目標更偏向于性能、耗電、成本三者的平衡,而三星由于采用的PowerVR是屬于分塊式延后渲染器(TBDR),因此片上需要有TBDR獨有的電路,這些電路會增加不少面積。
從這一小節我們可以看出,同樣是采用四核A15的處理器,在很多方面都是完全不一樣的,這將對處理器的功能、性能、耗電構成不少的影響,最終反映到終端設備——手機、平板電腦上的表現也會有一定的差別。
同一款處理器不同版本在耗電上一樣嗎?
NVIDIA在較早之前發布的SHIELD采用的是前面提到的Tegra 4處理器,這是NVIDIA的第四代Tegra處理器,和其他手機SoC芯片廠商有多款不同芯片供選擇不同的是,NVIDIA這幾年走的都是單芯片多型號路線,也就是把芯片單純按照頻率、GPU使能規模來劃分多個型號供客戶選擇。
SHIELD 采用的Tegra 4具體型號是T40,是Tegra 4的頂級性能版本,最高頻率設定為1.9GHz,GPU規模使能規模為72 core但是頻率多少并不清楚,Tegra 4 GPU的文檔有提到在672MHz時候的性能規格,但是這不代表T40的GPU就是這樣的規格。
不過手機顯然不會上這樣規格的Tegra 4,因為SHIELD的形制較大,可以塞進風扇輔助散熱,電池容量也可以支持這樣規格跑接近10小時的游戲,即使是旗艦級別手機的個頭只有它的三分之一不到。
NVIDIA提供的手機版Tegra 4型號為AP40,這個版本在多個方面做了精簡,例如T40有很多的I/O口,AP40只保留了必要的,溫控的策略也會有不同。
從一些廠商提供的消息,經過這些精簡后,AP40的TDP(熱設計功率,代表能讓設備低于結溫所需的散熱能力)從T40的8-10瓦降低到了3瓦級別,這相當降低到了1/3不到,變化非常大。
那么功率降低到這么多,性能是否會有大的下降呢?這是一個有趣的問題。不同的廠商會采用不同的功耗控制策略。 一般在多核心同時高負荷工作下,手機的處理器工作速度會隨著溫度的上升而降低,從而把總的功耗降到較低的水平。
不過,單核心工作的時候,頻率的下降速度就會慢很多。而且大部分的情況下,CPU高負荷的往往是間歇性的,對于大部分的應用,實際的性能應該不會有什么影響。
CPU性能的重要性
Cortex-A15 相對于S600、S800、Cortex-A9、Cortex-A7 等“對手”來說優勢就是具備更強的單核心性能。在多線程程序并不十分普及的情況下,單核心性能的重要性是毋庸置疑的。
其實無論是手機還是我們的臺式機、筆記本電腦,日常的不少程序都采用單線程代碼。多線程程序的開發需要比較復雜的代碼編寫、經驗以及調試,而且很多任務并不容易做到并行化,因此經過很多年以后,實際上真正的多線程重負荷的程序即使在PC上也并不普遍,在移動平臺上就更少了。
除了一些專門用來燒機的軟件外,能讓多核尤其是四核手機老是處于跑滿狀態的應用可說是少之又少,更常見的情況是某些高計算負荷的任務讓四核沖起來一下就跑完了。
舉個簡單的例子,例如刷微博或者刷網頁的情況,里面包含很多圖文的信息,刷的時候速度快的處理器能夠很快地顯示出內容,而速度較慢的處理器則需要等待一段時間。
刷完以后CPU總的占有率會驟然降低,之后都是一些單線程的程序讓個別內核處于較飽滿的負載狀態。
真正需要CPU高負荷的時間占總時間的比例很低,甚至連1%都遠遠不到,但是這個時間雖說很短,卻往往是影響用戶體驗的一個非常重要的因素。
因此,CPU的峰值性能的重要性毋庸置疑。此外,現在有一種趨勢,移動處理器面對的屏幕分辨率甚至普遍比筆記本電腦甚至臺式機更高,這意味著界面的處理壓力越來越高。
界面的刷新和網頁刷新的情況類似,對CPU的性能要求高,但是時間短,用戶的體驗感受很直接。
因此更高的處理器速度也將是一種硬性的需求,而不是可有可無的擺設。但是對于性能和功耗的評估需要有理性的分析,有一些人一味強調拷機軟件下的CPU頻率過熱降頻情況對手機用家來說其實是某種程度的誤導,這和實際的應用情況完全不一樣。
多核處理器的意義更多在于多任務的情況。Android和Windows都是典型的多任務操作系統,多核處理器在處理多任務的時候大大提升了多個程序同時運行時的處理和響應速度。
不過,多任務對于核心數量的需求是有限的,PC CPU和移動處理器主流的核心都是兩到四核,這不是偶然的。
雖然系統中有多個線程和多個任務同時存在,但是出于活躍狀態的往往也就少數幾個,因此更多的CPU核心意義是不大的。現在有些廠商推出的所謂八核Cortex-7的處理器,在絕大部份的情況下性能一定還不如雙核Cortex-A15。
ARM推出A12就等于否定A15?
ARM是一家非常純粹的設計公司,它并不向終端消費者、廠商出售任何處理器,而是提供授權給第三方公司,讓其自行設計或者堆砌出自己的處理器。
這樣的好處是它可以節省掉一大筆行銷上的資源,ARM設計一款處理器內核并不會產生任何庫存壓力,它只消告訴廠商這個處理器如何做對接以及可以用來干嘛就可以了,接下來就是等著收錢了。
在這樣的情況下,ARM可以做到非常靈活多變,當看到市場上(也許是將會)存在空擋時候,就能很快推出相應的“產品”。按照時間來看,Cortex-A12的推出其實就是瞄準了Cortex-A7/A53和Cortex-A57之間的空隙,屬于未來一年后的中端偏低市場的主力。
在Cortex-A12推出后,有些人就馬上下結論,這代表了ARM對Cortex-A15在手機應用上的否定。
如果以big.LITTLE布局來看Cortex-A12屬于ARM產品規劃中的big,也就是偏向性能先決的內核,目前確定的制程包括了GlobalFoundries的SLP-28和臺積電的28 HPM。Cortex-A12和Cortex-A9一樣是雙發射亂序執行,但是和A9相比,A12的亂序執行不僅限于整數流水線,而是浮點流水線和內存操作都具備了亂序執行。
此外 A12實現了VFPv4浮點單元并且將Neon向量單元列為標準配備,Coremark測試可以做到單核3.0 DMIPS/MHz,相比之下A9 和A15 分別是2.5和35。
所以很明顯,A12性能處于A9和A15性能之間,這對ARM來說是很正常不過的事情。事實上ARM在發布A12的同時還更新了A9,提到A9 r4版的性能更新,按照幻燈片,對分支預測和內存子系統作改進后的r4在IPC 上能做到初版A9 的1.4倍左右。
Cortex-A9至今已經有多個版本,見上圖的r1-r4描述
如果單看IPC的話,A9 r4是不是和A12很類似?那如果按照某些人的思維,A9 r4豈不是可以用來否定A15?
目前A9 r4已經在NVIDIA Tegra 4i里面采用,按照NVIDIA的數據,在BBench中相比A9 r1有25%的性能提升,而在SPECint 2000中也有15%的性能提升,基于Tegra 4i的終端很可能會在明年第一季度就能看到,而A12還沒有任何廠商宣布采用,A15即使退下火線也未必是因為A12的出現,因為A15的定位接替者其實是基于ARMv8的 A57。
余論與后記
看到這里,相信大家已經基本了解了Cortex-A15大致架構和性能、定位,而配備四核Cortex-A15的三星Galaxy S4手機已經取得了非常矚目的成功。
不同廠商、不同型號的四核Cortex-A15處理器在很多方面都存在不少的差別,這些差別或因為設計意念、經驗,或因為各自在某領域的優勢,或因為產品定位,或因為制程,這些差別讓我們不能簡單地類比,例如直接把某型號的Cortex-A15四核處理器在性能、功耗的指標類推到另一型號上。
手機性能測試是比較特殊的,它是一個封閉的東西,從硬件角度看,絕大多數情況下你不能把里面的東西卸下來拿到另一部不同型號的手機里測試來驗證不同硬件組合下的影響,從軟件角度看,目前缺乏足夠的工具和經驗了解在測試的時候到底發生了什么,到底是廣譜的優化還是定制優化非知情者是很難了解的。
對于手機來說,單線程的性能同樣不容忽視,這和多線程代碼編寫的難度有直接關系,現實中許多應用還是基于單線程的,在此時Cortex-A15的單線程性能優勢就能體現出來。
在日常應用中沒有多少應用會像拷機程序那樣長時間持續的四核全部跑滿,尤其是在手機應用中,在手機測試中采用這類程序到底有多少意義是令人懷疑的,手機用家真的會整天沒事呆看手機跑StabilityTest之類的東西嗎?
Cortex-A12上市的時間點可能是明年下半年以后的事情,它的性能定位就是接替Cortex-A9,而Cortex-A15的接替者將會是Cortex-A57,Cortex-A12在此時(A57時代)扮演的就是中階偏低的角色。
總之,我相信在未來的一年里,Cortex-A15四核版的手機將會越來越多,相應的芯片型號也會層出不窮,其中應該不乏成功的產品
評論
查看更多