蓋棺定論 2013年手機(jī)處理器終極指南
泡泡網(wǎng)CPU頻道8月13日 你一定很厭煩Android平臺上無窮無盡的硬件大戰(zhàn),但我們很遺憾的告訴你:在谷歌對Android發(fā)展方向做出戰(zhàn)略性調(diào)整之前,硬件規(guī)格是評價Android設(shè)備好壞的重要標(biāo)準(zhǔn),對于部分用戶而言甚至是唯一標(biāo)準(zhǔn)。歷代熱銷的Android手機(jī)型號,無一不具備同時代手機(jī)中領(lǐng)先的硬件規(guī)格;即便是iPhone和iPad,為了實現(xiàn)一流的體驗,也配備了地球上最龐大的嵌入式GPU。可以這么說:一臺硬件規(guī)格強(qiáng)悍的手機(jī)不一定是好的Android手機(jī),但一臺好的Android手機(jī),必然是一臺硬件規(guī)格強(qiáng)悍的手機(jī)。
科技的發(fā)展總是日新月異的,只不過短短一年半,手機(jī)就已經(jīng)到了坐四望八的時代。面對網(wǎng)上眾多一知半解和“專家們”的誤讀,我們特意準(zhǔn)備了兩篇文章,上一篇對已經(jīng)問世的四核平臺作回顧和分析,下一篇再來展望今年和明年將要到來的新平臺。與此同時,我們也會對這個行業(yè)的現(xiàn)狀、將要遇到的難題以及未來發(fā)展的趨勢做一些分析和預(yù)測,希望能幫大家撥開謎霧,真正了移動處理器的昨天、今天和明天。
群雄并起 四核平臺微架構(gòu)初探
由于種種原因,德州儀器選擇了在雙核轉(zhuǎn)四核的時代退出了移動領(lǐng)域SoC的競爭。對于一家如此老牌的企業(yè)而言,這實在是顯得有些奇怪,個中原因可能也只有德州儀器自己才能告訴我們了。作為結(jié)果,曾經(jīng)的四大天王變成了三足鼎立,整個2012年,市場上只能見到三星、高通和nVIDIA的“三國演義”了。當(dāng)然,我們也不應(yīng)該忽略MTK,畢竟后者在今年初也推出了定位入門級的低端四核Cortex A7并且取得了不俗的市場成績。但是這篇文章畢竟是以旗艦平臺為主,因此就不對MTK做過多介紹,關(guān)于MTK的架構(gòu)設(shè)計我們將會在完成架構(gòu)分析和性能驗證后再開新篇。希望各位不要介意。
德州儀器曾經(jīng)的路線圖,OMAP5清晰可見
既是先鋒也是先烈 NVIDIA Tegra3
截止去年為止,nVIDIA的行事風(fēng)格一直都是“天下武功唯快不破”。甚至早在2011年底,Tegra3就已經(jīng)走入了實際產(chǎn)品,而去年第一批搭配四核處理器的手機(jī)更是無一例外清一色Tegra3。相比Tegra2,前者的架構(gòu)改動并不大,只是將CPU子系統(tǒng)從雙核Cortex A9增加到了四核Cortex A9,集成的GPU也依是較老的GeForce ULP系列,頂點維持不變,像素和光柵化等組件得到了增強(qiáng)。只是作為一個四核CPU,內(nèi)存維持了單通道LPDDR2的設(shè)計,顯得比較莫名其妙。
現(xiàn)在看來,導(dǎo)致Tegra3成為一代最弱四核的一個主要原因,還是落后的工藝。但是這并不能過多責(zé)怪nVIDIA,畢竟后者和臺積電打了多年交道,深知臺積電的特色,因此主動放棄了28nm。事實上臺積電一直到2012年下半年才總算可以勉強(qiáng)量產(chǎn)28nm芯片,證明了nVIDIA的遠(yuǎn)見。不過40nm的功耗卻不是可以回避掉的問題,所以nVIDIA特別設(shè)計了4+1核心的奇特架構(gòu),這也成了nVIDIA產(chǎn)品的設(shè)計特色之一,一直延續(xù)到了今年的Tegra4和Tegra4i,與ARM的big.Little技術(shù)相映成輝。
眾所周知,Tegra2因為缺少NEON協(xié)處理器,在雙核時代被人吐槽的不輕,Tegra3總算沒有再犯同樣的錯誤。不過Tegra3卻存在著一個由4+1架構(gòu)帶來的新問題,那就是由于主核和伴核共享同一片1MB的二級緩存,而兩者的頻率之間最多可以差到3倍,因此Tegra3的二級緩存被設(shè)計為按照一個固定的時間返回核心所請求的數(shù)據(jù)——對于主核而言,二級緩存的等待周期會多一些,而對于伴核而言則少一些。這樣的設(shè)計不可避免的會讓二級緩存工作在一個比較“慢”的狀態(tài)(尤其是對主核心而言),進(jìn)而影響整體性能。而實際上由于伴核的工作條件比較受限,并不是隨時隨地都可以切換,因此很多時候Tegra3也不得不以高功耗的主核心去應(yīng)付低負(fù)載,也許會對功耗產(chǎn)生負(fù)面影響。這些影響,也最終決定了Tegra3的用戶體驗與評價。
謹(jǐn)小慎微步步為營 三星Exynos4 Quad
說起Exynos4 Quad,也許Exynos 4412這個名字更為人熟悉一些。它就是Galaxy S III與Galaxy Note 2的核心,2012年最為熱門的四核SoC。若從角度來看,Exynos 4412顯得相當(dāng)樸素:基本上,你可以把它看作是“獵戶座”處理器的工藝升級外加四核版。但是即便如此,這款產(chǎn)品的實際表現(xiàn)卻幾乎成為一代標(biāo)桿,原因除去上一代獵戶座在規(guī)格和性能上已經(jīng)足夠優(yōu)秀以外,更重要的還是先進(jìn)的工藝——這成為了Exynos4412的殺手锏,甚至在現(xiàn)在看來,Exynos 4412也有可能是迄今為止最為平衡的一款SoC。
當(dāng)然這么說也不太準(zhǔn)確,Exynos4 Quad也有一些比較小的改進(jìn),比如四顆核心的頻率和電壓具備完全獨立的門控(聽起來有些像高通異步架構(gòu)的特性,不過實際中還是必須跑同頻)、改進(jìn)了內(nèi)存控制器與CPU核心的連接方式、codec升級了視頻編碼的流暢度、引入了完善的溫度控制和過熱保護(hù)等等。都不是什么大提升,姑且算作錦上添花。
與高通相比,三星對于工藝的宣傳要低調(diào)的多——這是很奇怪的情況,在高通的營銷攻勢下,很多人以為28nm“是非常先進(jìn)的工藝”。在某種程度上說這也不算是錯的,但實際情況是,Exynos 4412的制造工藝——32nm HKMG——要遠(yuǎn)比高通的28nm先進(jìn)得多,甚至可以說有著“代”一級的差異。這也許會令人費(fèi)解,我們留到后面再詳細(xì)介紹。
也正是因為工藝的進(jìn)步,Exynos 4412的核心頻率被定在1.4/1.6GHz,GPU頻率更是從獵戶座的200MHz大幅提升到了440MHz,幾乎翻倍。唯一可惜的是,具體的GPU依然還是Mali400 MP4,并沒有更換。這在當(dāng)時自然不是什么問題,但是到今天開來,這就成了Exynos 4412最大的短版。
架構(gòu)為王 高通驍龍S4 Pro APQ8064
與NVIDIA不同,高通果斷選擇了28nm工藝,帶來的結(jié)果就是APQ8064這款產(chǎn)品與預(yù)期的上市時間相比幾乎延期了整整一年,而早期的低良品率也讓高通不得不先推出雙核產(chǎn)品作為過渡。當(dāng)然高通也有自己的苦衷,APQ8064實在是太大了,即便使用了28nm工藝,核心面積也只能堪堪控制在100mm2上下。造成這個的原因是高通同時升級了CPU和GPU的核心架構(gòu)。從Scorpion升級到了Krait“環(huán)蛇”,后者同樣也是高通在ARM v7-A指令集上自行發(fā)展的核心設(shè)計,就像ARM官方以Cortex A命名的核心設(shè)計一樣。在早期的宣傳中,高通一直試圖讓消費(fèi)者以為Krait是與Cortex A15同級的產(chǎn)品,當(dāng)然隨著時間的流逝,在實際表現(xiàn)的面前,這種說法的信奉者越來越少,以至于高通也不再提及了,不過至于究竟是怎樣的情況,我們還是需要在后文中作進(jìn)一步的分析,才可以給出一個大致的結(jié)論。
Adreno320 GPU則是另一個亮點。與前任Adreno 22x相比,Adreno320對于微架構(gòu)做了較為大幅的優(yōu)化,改善了內(nèi)部緩存的連接方式,增加了片內(nèi)EDRAM高速緩存(最終產(chǎn)品中是否出現(xiàn)似乎沒有確認(rèn)),最重要的是,Adreno320的規(guī)模再次得到了翻倍,擁有16組4+1D SIMD US。如果以規(guī)模論,這會是移動GPU領(lǐng)域除去SGX554MP4以外最為龐大、性能最強(qiáng)、也最為耗電的GPU,在Android領(lǐng)域更加是全無敵手。
簡短的回顧到此為止,下面我們會對上一代旗艦的某些技術(shù)細(xì)節(jié)做更進(jìn)一步的探討。
不夸張地說,工藝是IT行業(yè)的基礎(chǔ)。有趣的是,上一代產(chǎn)品中,高通、三星、NV三家公司分別選擇了三種不同的工藝:Tegra3采用了臺積電“40nm Fast G”,APQ8064采用了臺積電“28nm LP”,Exynos 4 Quad則采用了三星自家的“32nm LP HKMG”。如果你已經(jīng)頭暈了,不要先忙著說雖不明但覺厲,這些工藝的代號的確會讓人眼花繚亂,但它們是理解工藝細(xì)節(jié)的關(guān)鍵,所以我們必須要了解一下半導(dǎo)體工藝的相關(guān)基礎(chǔ)知識。雖然這些都是2012年的產(chǎn)品,但是了解一些工藝細(xì)節(jié)也更利于我們分析今年甚至未來的新產(chǎn)品。
首先,所謂的45nm、28nm,這些數(shù)字都意味著線寬,簡單理解就是內(nèi)部晶體管的尺寸。這可能是半導(dǎo)體工藝中最直觀也最具欺騙性的參數(shù)——大家都可能認(rèn)為數(shù)字越小越先進(jìn),但實際情況遠(yuǎn)沒有這么簡單。
嚴(yán)格來說,線寬數(shù)字本身就具有一定的欺騙性。在半導(dǎo)體行業(yè)中存在兩種類型的企業(yè),一種是以Intel、三星為代表的擁有自主制造能力的企業(yè),另一種則是以nVIDIA、高通為代表的Fabless,即設(shè)計代工型企業(yè)。對于后者而言,芯片的制造往往交給諸如臺積電、中芯國際等半導(dǎo)體代工廠負(fù)責(zé)。正常而言,每一代邏輯芯片工藝的線寬基本上都是以70%的比例不斷降低,就Intel為例,近幾年我們熟悉的有 90nm、65nm、45nm、32nm和最新的22nm。
由于這些企業(yè)的賣的是產(chǎn)品而不是工藝,不論是技術(shù)還是工藝,主要都是為了自用,所以不會對這方面的宣傳太過在意,但對于臺積電而言,由于它的業(yè)務(wù)是代工,因此工藝細(xì)節(jié)就成了最主要的宣傳對象?;蛟S是為了讓自己的技術(shù)看起來更“先進(jìn)”一些,臺積電自130nm節(jié)點開始,每一代工藝的線寬都要比Intel小一點——分別是110nm、80nm、65nm、40nm、28nm和20nm。這樣的決策老實說,可能更多只是商業(yè)目的,技術(shù)上的差別并不會太大,甚至曾經(jīng)出現(xiàn)過以臺積電110nm工藝制造的芯片,在電子顯微鏡下觀察,實際線寬浮動在120~130nm的情況。因此本質(zhì)上來說,他們都屬于同一代,單純以線寬論,不論是28nm還是32nm,并不存在明顯的孰優(yōu)孰劣關(guān)系。
因此大家就知道了,Tegra3所采用的40nm工藝和45nm是屬于同一代的,而Exynos 4 Quad和APQ8064采用的32和28nm則是最新一代的節(jié)點。Tegra3之所以選擇上一代工藝,之前提到了是因為產(chǎn)能,但是產(chǎn)能到底影響有多大?
如果回顧以下臺積電的路線圖,那么按照原計劃,28nm工藝原本計劃在2011年9月量產(chǎn)——注意,是2011年。但實際上一直到2012年6月為止都無法達(dá)到傳統(tǒng)意義上的大規(guī)模量產(chǎn)的水平,甚至一直到今天,依然無法完全令人滿意,以至于高通已經(jīng)將部分28nm訂單轉(zhuǎn)移給了聯(lián)電和三星。而三星也同樣遇到了這種問題,Exynos 4412的投產(chǎn)也比原計劃晚了大約半年。10個月的拖延,在科技界不論是誰都是絕對無法承受的,所以縱使Tegra3再弱再慢再熱,當(dāng)市場上不存在其他選擇的時候,它就是唯一的贏家。
TSMC的路線圖:2013年將投產(chǎn)16nm,而實際上連CLN28HPL都看不到
未來隨著新一代工藝節(jié)點研發(fā)難度的持續(xù)增大,可以預(yù)計“延期”會變得越來越普遍,而換代周期也會變得越來越長。前AMD半導(dǎo)體工廠,現(xiàn)代工廠GF的28nm就比預(yù)期的投產(chǎn)時間足足晚了一年多。目前來看,除了Intel以外,我們很難看到有誰可以保證在2013年內(nèi)量產(chǎn)22/20nm工藝,而如果再進(jìn)一步到下一代的16/14nm,不確定的因素就更大了。這就像是半導(dǎo)體行業(yè)的一枚定時炸彈,也許在不遠(yuǎn)的將來就會帶來明顯的影響。相信現(xiàn)在你已經(jīng)明白“線寬”這個參數(shù)的區(qū)別,那么就讓我們更進(jìn)一步,去看看線寬以外的東西。
線寬以外還有東西?當(dāng)然。拿Intel處理器來說,同一代工藝的產(chǎn)品(比如最新的22nm Ivy Bridge),桌面版的功耗為77W,而移動版就只有17W,當(dāng)然頻率是一方面,但更重要的原因則是所謂的“工藝方向”。大體來說,任何一代線寬下都會有三個工藝方向:高性能型、通用型、低功耗型,它們是在“功耗——性能”軸上取不同平衡的產(chǎn)物。同樣的線寬,不同的工藝方向,差別甚至可以達(dá)到數(shù)倍之多,因此只談?wù)摼€寬是沒有意義的。高通和三星的芯片均采用了低功耗型即LP工藝,唯獨nVIDIA因為設(shè)計了LP工藝制造的伴核,從而使用通用型即Fast G 工藝制造剩下的部分以追求更低的滿負(fù)荷功耗。
這么說來,那么高通就和三星一樣省電——且慢,事情并不是這么簡單。線寬和方向也遠(yuǎn)遠(yuǎn)不是工藝的全部,在這個領(lǐng)域還有很多的高級技術(shù),它們發(fā)揮的影響力,甚至可以超越以上的一切。細(xì)心的你應(yīng)該注意到了,在本回合開頭的工藝介紹中,有諸如“HKMG”這樣的縮寫,這四個字母正是代表著一個高級技術(shù):它指高介電常數(shù)金屬柵極,英文為High-K Metal Gate,縮寫為HKMG。這是一個非常先進(jìn)但也非常復(fù)雜的技術(shù),詳細(xì)介紹可以寫許多本書,我們作為消費(fèi)者或技術(shù)愛好者,只需知道個大概:HKMG就是利用高介電常數(shù)的金屬氧化物(例如氧化鉿或者氧化鋁)代替?zhèn)鹘y(tǒng)的二氧化硅作為柵極絕緣層,提高柵極對電子的容納能力與對溝道的控制力,進(jìn)而降低漏電,更重要的是降低高頻率下的功耗。它的效果有多好?根據(jù)三星提供的數(shù)據(jù), HKMG相對于SiON/Poly-Si工藝在同樣的延遲(簡單理解即頻率)下漏電最多可以降低到十分之一,而同樣的漏電下頻率最多可以提升40%。Exynos 4 Quad也正是借助這樣的先進(jìn)工藝,在核心數(shù)翻倍的情況下,整體功耗依然降低了20%。
Exynos 4412當(dāng)然使用了HKMG技術(shù),但高通則令人失望。雖然臺積電也擁有28nm HPL HKMG工藝,但高通選擇的卻是基于SiON/Poly-Si的28nm LP工藝。不僅APQ8064如此,甚至最新的驍龍600 APQ8064T,也還在采用28nm LP工藝制造。這一方面是因為HKMG會抬高制造成本,更重要的是臺積電的28nm HPL HKMG工藝至今尚未量產(chǎn),預(yù)計的時間將在2013年底到2014年初。這些因素綜合起來,使得28nm LP成為了事實上的唯一選擇——這自然會對APQ8064的功耗帶來一定負(fù)面的影響,這個影響目前來看還是非常明顯的。
早在2011年,圍繞“Scorpion和Cortex A9到底誰更好”就已經(jīng)展開過一些爭論,隨著時間的過去,事實慢慢證明了,Cortex A9的確技高一籌,而Scorpion則不幸成了“高頻低能”的形象代言人。前文中我們曾提到,驍龍S4所采用的核心是自行研發(fā)的,高通表示這顆處理器的基礎(chǔ)架構(gòu)要遠(yuǎn)比Cortex A9先進(jìn),那么,它算不算ARM新一代架構(gòu)Cortex A15呢?很顯然這一定會引發(fā)另一場爭論——至少在當(dāng)時。為了分析這個問題,我們需要深入到架構(gòu)內(nèi)部。
首先看一下規(guī)格:3指令發(fā)射、亂序執(zhí)行流水線、3300DMIPS/MHz,的確和Cortex A15很接近。但是實際上Krait核心在大多數(shù)時候的表現(xiàn)卻和Cortex A9相去不多,這究竟是為什么?答案自然是架構(gòu)。雖然高通并沒有公開Krait的詳細(xì)架構(gòu),但是根據(jù)性能表現(xiàn)和一些特征性參數(shù),我們也可以大概猜測一下。
在開始之前,首先需要來觀察一下Cortex A9的架構(gòu):
從邏輯角度說,處理器的工作過程是讀取指令->解碼指令->分派給執(zhí)行機(jī)構(gòu)->進(jìn)行運(yùn)算->把結(jié)果寫回內(nèi)存->讀取下一條指令的循環(huán)。對應(yīng)在架構(gòu)圖理,指令從左下角的預(yù)取(Prefetch Stage)級進(jìn)入到上方的解碼(Decode Stage)級,經(jīng)過必要的處理(Register Rename)后,進(jìn)入亂序指令分發(fā)(Dispatch)級,送給各個執(zhí)行(ALU/NEON)器,最后進(jìn)入亂序?qū)懟兀╓rite back)部分。這一條路徑,就是所謂的指令流水線,也就是下面這張圖。
處理器的工作,就是不斷讀取內(nèi)存中的應(yīng)用指令流,然后把它盡可能快的塞進(jìn)執(zhí)行流水線。因此吞吐量是一個CPU架構(gòu)很重要的指標(biāo),而吞吐量可以用IPC來衡量,即每周期指令數(shù)。Cortex A9的指令解碼器(圖中De)具備單周期解碼兩個指令的能力,因此是一個雙發(fā)射的核心,具備的最大IPC為2。但是光解碼沒有用,還需要把解碼后的指令送入執(zhí)行流水線才可以真正實現(xiàn)功能,而這是靠亂序指令分派器(圖中Iss)實現(xiàn)的。在Cortex A9里,這個部件具備3+1個端口,也就是說總共可以掛接四組執(zhí)行器,但只能同時分派3個(有一個端口是復(fù)用的)。執(zhí)行單元部有兩個通用執(zhí)行器(其中一個除去整數(shù)運(yùn)算以外還支持并發(fā)執(zhí)行一個硬件乘法運(yùn)算)、一個訪存器和命名為“Compute Engine”的運(yùn)算協(xié)處理器,也就是我們知道的VFP和NEON。
到了Cortex A15,取指寬度提升到了128bit(Cortex A9只有64bit,后文詳述),單周期解碼能力增加到了3,也就是說拾取部分的IPC從2增加到了3。為了可以實際發(fā)揮它,ARM對Cortex A15的指令分派器與執(zhí)行管線進(jìn)行了極大的強(qiáng)化,這也是架構(gòu)圖中變化最大的部分。
與Cortex A9的3+1分派不同,Cortex A15的分派器具備8指令分派能力,執(zhí)行器也從3類4組擴(kuò)充到了5類8組,額外增加了分支跳轉(zhuǎn)單元和硬件乘除法單元,每一組執(zhí)行器對應(yīng)的分派端口都有自己的獨立隊列。Cortex A9上,VFP和NEON要屈尊共享一個分派端口,A15就成功平房換別墅,各自擁有了獨立的端口,吞吐量大大提升。
那么結(jié)論是什么?至少從架構(gòu)上,Cortex A15要遠(yuǎn)遠(yuǎn)比Cortex A9先進(jìn),兩者的設(shè)計理念之間差了大約有5年。Cortex A9的架構(gòu)更接近于老式的,上個世紀(jì)90年代的順序架構(gòu)處理器,即較少的分派隊列、復(fù)用的執(zhí)行管線與簡單的多指令并發(fā)。當(dāng)然, ARM在Cortex A9上第一次實現(xiàn)了亂序執(zhí)行核心,但至少從架構(gòu)圖上看,結(jié)果可能也僅僅是支持而已。但Cortex A15不同,在Cortex A15上,才是真正看到了可以從亂序執(zhí)行中獲利的設(shè)計,原因很簡單,亂序執(zhí)行的本意是通過打破指令的時間順序,進(jìn)而增加處理器硬件資源的利用率。那么就自然需要CPU的分派單元具備足夠強(qiáng)大的分派能力和硬件資源,可以盡一切可能去填滿所有的執(zhí)行器,因此體積必然會極大膨脹,最理想的情況就是給每一組執(zhí)行器都設(shè)計一個端口和隊列。
對于這一點,Cortex A15做到了,而Cortex A9沒有做到。當(dāng)然這么設(shè)計并不是沒有代價。亂序執(zhí)行需要的資源完全不是順序架構(gòu)可以比擬的,畢竟計算機(jī)程序的指令之間本身就具備邏輯上的先后順序,再亂序,也只能是執(zhí)行時的亂序,最終還是需要一定的順序,這就需要具備額外的硬件資源去記錄指令間的相關(guān)性以及時間狀態(tài)。除此以外,為了保證后續(xù)指令可以跳過前面阻塞的指令執(zhí)行,也需要指令隊列有足夠的容量去保存阻塞的指令。這之間有很多技術(shù)細(xì)節(jié),會導(dǎo)致功耗的激增,如何在引入亂序執(zhí)行核心優(yōu)勢的同時盡可能的去壓制住激增的功耗,這需要非常高深的設(shè)計功力,甚至有時候需要一定的技巧和運(yùn)氣。Intel曾經(jīng)也在探索新架構(gòu)的時候跌了大跟頭,ARM沒有任何理由可以免費(fèi)得到這種好處,因此Cortex A15也為此付出了代價。至于代價有多大,留到下篇再說。
Krait的資料就比較缺乏了,高通一向有保密的傳統(tǒng),所以目前只知道單周期解碼能力為3、指令分派能力為4、執(zhí)行單元一共有7個,僅此而已。但是這已經(jīng)足夠讓我們?nèi)ゲ聹yKrait的設(shè)計,關(guān)鍵在于指令分派能力:4,也就是說,Krait的具體架構(gòu)應(yīng)當(dāng)和Cortex A9類似,主要強(qiáng)化的是執(zhí)行器規(guī)模。換句話說,Krait是一個大幅閹割了吞吐量的Cortex A15,或者說是一個大幅提升了“肥胖度”的Cortex A9。原因不用多說,只在省電二字。因此Krait空有接近Cortex A15的3300DMIPS/MHz理論運(yùn)算能力與3 IPC,卻并無法發(fā)揮,原因也在這里。單純增加碼頭容量和工廠容量,卻不提升連接碼頭和工廠的道路寬度,最終都是白費(fèi)力氣。
分派之后是執(zhí)行,執(zhí)行主要靠一組組的運(yùn)算與邏輯單元構(gòu)成。相比Cortex A9,A15增加了硬件乘法器和專門用來處理分支的Branch ALU,而且有跡象標(biāo)明,Load/Store的性能也得到了很大的加強(qiáng)。這些對于某些情況下的應(yīng)用性能會帶來較大的改變,但更為明顯的變化其實是在NEON與VFP上。Cortex A15中這兩個SIMD ALU不僅擁有獨立的端口,內(nèi)部還實現(xiàn)了雙發(fā)亂序執(zhí)行流水線。
上圖就是Cortex A9的浮點運(yùn)算單元。它的內(nèi)部實現(xiàn)了管線化架構(gòu)設(shè)計,擁有自己獨立的指令隊列和指令分派,但是每個周期只能分派一個指令,執(zhí)行管線也是單發(fā)順序的。雖然圖上沒有畫出來,但是VFP/NEON指令的具體解碼在Cortex A9中是在浮點運(yùn)算單元中實現(xiàn)的,因此相對于其他的執(zhí)行管線而言,獨立性顯得比較明顯。
到了Cortex A15,浮點運(yùn)算單元被以其他運(yùn)算器相同的運(yùn)作方式整合到了處理器的主管線中,具體而言,就是VFP和NEON的指令解碼和其它類型的指令一樣是在前端指令解碼部分直接實現(xiàn),再由分派器統(tǒng)一分派。再加上內(nèi)部的雙發(fā)亂序,Cortex A15的VFP/Neon可以同時執(zhí)行兩條SIMD指令,四個融合MAC運(yùn)算,運(yùn)算能力要大大超越Cortex A9。根據(jù)現(xiàn)有的資料和實際的運(yùn)行結(jié)果,高通也實現(xiàn)了雙發(fā)的VFPv4,但是Neon與是否支持亂序則無從判斷??梢圆聹y,Krait的SIMD部分性能可能會弱于Cortex A15。
作為總結(jié),用一張圖來簡單比較一下Cortex A9、Krait和Cortex A15的執(zhí)行管線:
再好的核心如果得不到數(shù)據(jù),也只能停擺,所以緩存是現(xiàn)代處理器設(shè)計中一個很重要的部分。多處理器系統(tǒng)的緩存大體上有兩種設(shè)計思路,一種是每個核心擁有自己獨立的緩存,通過外部總線進(jìn)行一致性維護(hù),例如Pentium D和Atom;另一種是設(shè)計一塊共享的大緩存,使用總線訪問。Cortex A9和A15、Krait都采用了后一種設(shè)計,但是細(xì)節(jié)有所不同。
Cortex A9的二級緩存通過外部總線連接到處理器組??梢钥吹?,兩顆Cortex A9處理器通過標(biāo)記為PL310的二級緩存控制器連接到1MB的緩存上。PL310的內(nèi)部結(jié)構(gòu)如下:
PL310提供了兩個AMBA3 AXI接口,寬度都是64bit。結(jié)合之前的架構(gòu)圖,可以得到一個八九不離十的推測,那就是這兩個接口一個會用作指令拾取,而另一個則用于訪問二級緩存。
這個設(shè)計好不好呢?顯然是不好的,否則ARM也不會把Cortex A15上的二級緩存控制器直接整合進(jìn)A15多核心控制器SCU中。這是Cortex A15的一大升級,它的二級緩存不再是一個游離的組件,終于與所有的核心構(gòu)成了一個緊密耦合的整體。它的好處,后面我們還會詳細(xì)解釋,而它的壞處,我們會在下篇中為大家分析。
不僅如此,Cortex A15的二級緩存針對多核心訪問設(shè)計了4個獨立的TAG隊列,數(shù)據(jù)的讀取和寫入由兩個不同的接口實現(xiàn)(這里不太確定),還支持直接的CPU到CPU數(shù)據(jù)傳輸,這一切都是為了提升多核心下并發(fā)訪問緩存的性能。Intel曾經(jīng)說過Cortex A9糟糕的二級緩存性能限制了它的性能,很明顯,ARM決心在Cortex A15上改進(jìn)這個缺陷。
至于高通S4平臺,從高通自己提供的核心框圖上看,似乎是采用了一整片L2緩存為所有核心所共享,但是nVIDIA在發(fā)布Tegra4的時候給出了一張幻燈片,里面對于Krait的L2緩存有非常清晰的說明:
很明顯,Krait并沒有設(shè)計為一體式L2緩存,依然保留著早期Scorpion的每顆核心包含自己獨立緩存的架構(gòu)。這是異步架構(gòu)特有的問題和設(shè)計之一,緩存之間需要靠外部接口進(jìn)行一致性維持,有效容量僅有總?cè)萘?核心,對于Krait而言,不論多少個核心,有效二級緩存永遠(yuǎn)只有512KB。當(dāng)然,這樣的設(shè)計擁有高帶寬低延遲的好處,畢竟緩存是私有的,這點在對陣Cortex A9的時候會有一定的優(yōu)勢,但是面對Cortex A15就很難說有什么好處了。
到這里大家應(yīng)該就明白了,認(rèn)為Krait是類似于Cortex A15架構(gòu)的說法是不準(zhǔn)確的。事實上,驍龍S4的“Krait”架構(gòu)相對上代Scorpion而言雖然得到了很大的強(qiáng)化,但距離Cortex A15還有一定的距離,甚至說設(shè)計上與Cortex A9的親緣關(guān)系更近,看作是“肥胖版”的Cortex A9也許會更合適一些。這樣的架構(gòu)注定很難發(fā)揮它的理論性能。
每次提到高通,“異步多核”甚至“膠水多核”都是一個無法回避的問題。對于這個技術(shù),支持者和反對者都很多,之前的文章也有過一定的介紹。當(dāng)然,實際上那時的介紹并不準(zhǔn)確,不過異步架構(gòu)在手機(jī)上壞處大于好處,這點相信還是很容易理解的。
異步架構(gòu)的好處是什么?當(dāng)然是省電。異步架構(gòu)下的CPU不需要運(yùn)行在同樣的頻率,甚至不需要擁有同樣的實現(xiàn),完全可以做到一刻核心運(yùn)行在1.5GHz的全速下,而另一顆核心只運(yùn)行在384MHz的最低頻下。這樣以來,高負(fù)載的線程,比如前臺應(yīng)用,就可以工作在高負(fù)荷的核心上,而諸如系統(tǒng)后臺服務(wù)這樣的低負(fù)載線程就可以工作在低頻核心下,系統(tǒng)的能耗比得到最大規(guī)模的優(yōu)化。
為了實現(xiàn)這點,高通必須對Linux核心的調(diào)度器做修改,因為典型的調(diào)度器并不支持非對稱調(diào)度,它會默認(rèn)所有的CPU核心具備同樣的性能,這會導(dǎo)致低頻核心進(jìn)入嚴(yán)重的阻塞狀態(tài),進(jìn)而影響系統(tǒng)表現(xiàn)。這也是高通稱移動領(lǐng)域只有高通做到了這點的原因。
那么異步架構(gòu)的壞處又是什么?自然是性能。異步架構(gòu)對于性能的影響在于兩個方面,一是異步電路的同步開銷,二是非對稱調(diào)度的調(diào)度開銷。
不論多么復(fù)雜的硬件,深入到最底層,都是功能電路與總線的組合。總線需要協(xié)議,協(xié)議的基礎(chǔ)是時序,因此顯而易見的要求就是,連接到一個總線的兩個設(shè)備之間想要溝通,那么就需要具備同樣的時序。換句話說,就是需要擁有同樣的頻率。這就是同步電路。30年來,同步電路成為了設(shè)計領(lǐng)域的主流,圍繞其發(fā)展的EDA技術(shù)也是最成熟的。而異步電路則不同,它擁有一個特殊的“握手協(xié)議”,在正式的傳輸發(fā)起之前,會首先利用幾個時鐘周期的時間進(jìn)行“握手”,將雙方的時序調(diào)整到一致。在實際實現(xiàn)中,這個由固化硬件實現(xiàn)的握手協(xié)議消耗的時序,根據(jù)設(shè)計不同在2~4個時鐘周期左右,這就是異步電路的同步開銷。如果我們考慮最極端的情況,假設(shè)真正的數(shù)據(jù)傳輸只需要3個時鐘周期,那么異步電路的總線利用率就永遠(yuǎn)不會超過50%,因為至少有一半的時間要消耗在握手上,哪怕兩邊的頻率是相等的。
看到這里,聰明的你應(yīng)該可以發(fā)現(xiàn)問題所在:即便是異步電路,在真正數(shù)據(jù)傳輸?shù)臅r候,依然還是需要兩側(cè)時序保持同步,異步握手協(xié)議的加入只是做到了通訊發(fā)起時雙方的時序可以不一致。因此很明顯的結(jié)論就是,異步總線同一時刻只能與一個設(shè)備進(jìn)行握手??紤]以下狀況,如果兩個CPU同時向總線發(fā)起占用請求,即發(fā)起握手請求,而這兩個CPU的頻率不同,那么很明顯,由于時序的不同,任何防止沖突的協(xié)議都無法起效,因為邏輯電路的最小工作周期就是時鐘周期。因此異步系統(tǒng)里發(fā)起握手行為的只能是總線本身,也就是說異步系統(tǒng)里實際上是總線在不斷詢問CPU是否要接入,而不是CPU向總線要求接入。
既然如此,異步系統(tǒng)就是一個輪詢的系統(tǒng),這是它的另一硬件開銷,尤其是在核心數(shù)超過2的系統(tǒng)中,由于輪詢必然是有順序的,那么就必然會遇到某一時刻總線輪詢到的是CPU0,而此時需要握手的是CPU3。哪怕CPU1和CPU2都是空閑的,CPU3也必須要等到3個總線周期以后才可以和總線同步。假設(shè)同步需要3個周期,而數(shù)據(jù)傳輸也只需要3個周期,這就意味著在同步系統(tǒng)里只需要4個周期就可以實現(xiàn)的數(shù)據(jù)請求,在異步系統(tǒng)里消耗了9個周期。
當(dāng)然,這里討論的都是最基礎(chǔ)的情況,實際設(shè)計中也會有很多的技巧去突破這些限制,但是別忘了,如果把總線協(xié)議和接口實現(xiàn)的過于復(fù)雜,其本身的耗電量也會增加,因此實際設(shè)計中可能并不會引入太多復(fù)雜的高級設(shè)計,因此這些開銷可能全都是存在的。
除去硬件設(shè)計導(dǎo)致的開銷以外,用于配合異步系統(tǒng)正常工作的操作系統(tǒng)調(diào)度器,也會引入額外的開銷。對于同步系統(tǒng)的調(diào)度器而言,由于它假定所有的CPU均擁有同樣的運(yùn)算能力,因此調(diào)度算法的實現(xiàn)非常簡單,只需要平衡的把負(fù)載分配到各個活動CPU上即可。但是一旦各個CPU之間的頻率不同,調(diào)度器所需要維護(hù)的數(shù)據(jù)結(jié)構(gòu)就會大大復(fù)雜化,因為系統(tǒng)需要盡力去保證異步系統(tǒng)處于異步狀態(tài),否則就無法實現(xiàn)異步系統(tǒng)省電的特性,因此就不能平均分配工作符合。尤其是考慮到實際的移動設(shè)備里,各個CPU核心的頻率都是處在動態(tài)變化之中的,因此異步系統(tǒng)調(diào)度器的算法會明顯復(fù)雜得多。我們知道,調(diào)度器所占用的是一個系統(tǒng)內(nèi)兩個時間片中間的時間,現(xiàn)代系統(tǒng)中時間片一般取10~100毫秒,Linux核心的時間片大體上是100ms左右,根據(jù)任務(wù)優(yōu)先級不同而不同,最短可以到5ms。假設(shè)同步系統(tǒng)的調(diào)度器執(zhí)行只需要10us,那么在5ms時間片的系統(tǒng)上所消耗的性能就只有0.2%,但是如果調(diào)度器消耗的時間為1ms,那么性能損失就會激增到17%左右,影響十分巨大。當(dāng)然,在實際系統(tǒng)中不太可能使用5ms時間片,異步系統(tǒng)的調(diào)度器也不可能需要花1ms的時間才能完成調(diào)度,但是異步調(diào)度器的確會占用系統(tǒng)不可分片的時間,帶來性能的下降。
至此異步系統(tǒng)的好處和壞處都解釋清楚了,那么最后的問題就是,異步系統(tǒng)相對于同步系統(tǒng)而言究竟是好處多還是壞處多,這個問題可以分為兩個方面來觀察。
首先是用戶對于性能的需求。異步系統(tǒng)的省電特性是靠犧牲性能獲得的。由于同步開銷的存在,異步系統(tǒng)發(fā)揮非常好的效率的時候是重度計算的情況,在這種情況下,CPU的指令流水線基本處于滿負(fù)荷工作的狀態(tài),而指令拾取與解碼往往會因為后端流水線的阻塞而停止。這時對于總線使用率的要求會大大降低,同步開銷得以掩蓋。但是當(dāng)用戶執(zhí)行的是輕量級多線程時,由于同步開銷的存在,系統(tǒng)的表現(xiàn)會大受影響,因此給人的感覺就是跑分快,實際用卻表現(xiàn)不出來,多任務(wù)切換的時候甚至?xí)锌D的情況,而這正是高通系統(tǒng)的特征。
其次是同步系統(tǒng)也各種有辦法減小同步運(yùn)行的高功耗,其中之一就是對指令流水線引入復(fù)雜而精密的時鐘門控,在沒有指令輸入的時候,流水線甚至可以整體關(guān)閉時鐘,進(jìn)入徹底的停擺狀態(tài),進(jìn)而降低功耗。這些都是已經(jīng)成熟的技術(shù),目前大部分CPU設(shè)計中都已經(jīng)實現(xiàn),因此同步系統(tǒng)和異步系統(tǒng)之間的差異可能并沒有看起來的那么大。
總體來說,手機(jī)中使用異步系統(tǒng)是一種犧牲性能節(jié)省電量的折衷方法,并非是解決性能和功耗問題的唯一途徑。很多時候高通MSM平臺所宣稱的節(jié)電效果是來自于CPU、Baseband、Modem等子系統(tǒng)的共同作用。異步就能省電是個巨大的認(rèn)知錯誤。
在2012年的SoC中,內(nèi)存子系統(tǒng)也存在著很大的區(qū)別,我們來回顧一下。
內(nèi)存的影響這么大?當(dāng)然。這個問題放在幾年前可能的確不那么重要,但現(xiàn)在的智能手機(jī)分辨率越來越大、配置越來越好、性能越來越高,所有的內(nèi)置設(shè)備,都要從內(nèi)存中頻繁存取數(shù)據(jù)。與PC不同,手機(jī)的GPU往往并不具備獨立顯存,因此顯存也要占用內(nèi)存總線,這無疑會進(jìn)一步加大內(nèi)存系統(tǒng)的壓力。對于這個問題,解決方案就是增加內(nèi)存帶寬,甚至方式都如出一轍,那就是雙通道。事實上自雙核時代以來,幾乎所有的SoC都把雙通道作為設(shè)計標(biāo)配。
為什么說幾乎?那自然是有例外,事實上一共有三個,第一個是Tegra2, 第二個是高通S3,第三個則是Tegra3。nVIDIA獨中兩元。
內(nèi)存帶寬是一切的基礎(chǔ),可以說在過去、現(xiàn)在和未來,帶寬都是越大越好。Tegra3雖然只配備了單通道內(nèi)存,但是種種跡象顯示,Tegra3的內(nèi)存控制器支持的工作頻率非常高,官方提供的數(shù)據(jù)是LPDDR2 1066MHz,即便是以32bit的單通道,單向帶寬也達(dá)到了4.2GB/s。但是Tegra3系統(tǒng)中內(nèi)存實際運(yùn)行的頻率不得而知,但是從測試結(jié)果來看,應(yīng)當(dāng)不會比1066MHz低多少。
而根據(jù)官方提供的資料,高通的APQ8064雖然支持雙通道LPDDR2內(nèi)存,但它的內(nèi)存頻率僅僅運(yùn)行在等效533MHz下。這樣的內(nèi)存系統(tǒng),帶寬和Tegra3是一樣的,同為4.2GB/s。
雙通道是用于提升帶寬的但同時也會增加延遲,如果雙通道系統(tǒng)的頻率過低,就像APQ8064,那么這樣的系統(tǒng)其實反而會影響性能。我們不可能保證需要讀取的數(shù)據(jù)永遠(yuǎn)位于兩個不同的控制器下,因此低頻雙通道整體上的延遲要比高頻單通道高得多,即便考慮到時序,影響也可能會在20%的水平上。
至于Exynos 4 Quad,它的內(nèi)存子系統(tǒng)是雙通道LPDDR2 800MHz,因此擁有最大的帶寬——6.4GB/s,平均延遲則和Tegra3接近。所以在這三款CPU之中,Exynos 4 Quad的內(nèi)存性能是最好的。
不過隨著性能的進(jìn)一步提升,到最新這一代產(chǎn)品,也就是驍龍600/800、Exynos Octa、Tegra4,最終還是都配置了雙通道內(nèi)存控制器,而且全都升級到了LPDDR3。雖然速度還有區(qū)別,但至少不需要糾結(jié)雙通道與否了,至于它們的具體性能,我們會在下篇中介紹。
放松一下。在微博上曾經(jīng)流傳著一個段子:高鐵停電了,第一批人在寂寞中抬起了頭,那些都是蘋果用戶。緊隨其后,Android用戶也抬起了頭,憂郁地看著窗外,而此時,諾基亞的用戶還在用手機(jī)放著月亮之上。這當(dāng)然不是吐槽現(xiàn)階段手機(jī)續(xù)航的唯一段子,還有一個段子說的是,每一個用Android手機(jī)的男人一定都是好男人,因為他們必須每晚準(zhǔn)時回家——充電。不可否認(rèn)的,強(qiáng)大的性能,帶來的副作就是不強(qiáng)大的續(xù)航,這已經(jīng)成了很多手機(jī)玩家心頭揮之不去的痛。指望電池技術(shù)一朝突破不太現(xiàn)實,那么唯一的辦法就是想辦法盡量少用點電。第一回合里我們介紹了工藝,很顯然,Exynos 4 Quad、Tegra3、APQ8064采用了三種不同的工藝,自然也會產(chǎn)生不同的功耗。大家都說自己很省電,因此我們只好用測試來決一高下了。
頻率和功耗相關(guān)性曲線
這一節(jié)的功耗測試主要來源是互聯(lián)網(wǎng),因此對于數(shù)據(jù)本身是否足夠精確、足夠公平,各位可以不用太過于考究,權(quán)當(dāng)定性研究吧。
首先是Tegra3,因為nVIDIA比較慷慨,在Tegra3的白皮書中給出了功耗對比。Tegra 3的整個CPU部分工作在1GHz頻率下的功耗大約是1.26W,而Tegra3的實際產(chǎn)品運(yùn)行頻率是1.5GHz,這個頻率下的功耗nVIDIA并沒有提供,我們只能根據(jù)經(jīng)驗來預(yù)估。由于Fast G工藝的漏電比例較大,因此Tegra3在1.5GHz下的功耗可能是在2.5W~3W左右??紤]到Tegra3的幾乎整顆芯片都用的是40nm Fast G工藝制造,因此也可以猜測在其它通用硬件上,Tegra3的功耗會相對大一些,再加上nVIDIA一貫有標(biāo)低不標(biāo)高的“優(yōu)良傳統(tǒng)”,因此這樣的估計應(yīng)該不會相差太遠(yuǎn)。
當(dāng)然,Tegra3有一個LP工藝制造的伴核。但是這個伴核更多是用于在待機(jī)時避免Fast G工藝的高漏電而設(shè)計的,對于正常使用的貢獻(xiàn)并不大。
GPU方面,由于完全沒有任何可以參考的資料,所以究竟功耗多少,只能從實際使用續(xù)航中加以猜測。根據(jù)我們和廣大用戶的實際使用體驗,Tegra3手機(jī)的游戲續(xù)航時間都不會太長,我們推測Tegra3的GPU功耗應(yīng)當(dāng)在1W左右,也就是說整顆Tegra3芯片在CPU和GPU滿載的時候,功耗大約在3.5W左右(該數(shù)字并非官方提供,僅供參考,而且實際也很難做到同時滿載,這樣的數(shù)字只是為了一定程度上方便比較)。
看完了Tegra3,再來看看Exynos 4 Quad。這顆芯片的詳細(xì)功耗數(shù)據(jù)三星并沒有提供,但我們知道同樣工藝的雙核版Exynos 4 Dual 32nm的信息,這來源于三星官網(wǎng)上的一段介紹視頻。
在圖上可以看出,1.5GHz的雙核Exynos 4 Dual 32nm的CPU部分功耗大約是在1W左右,每顆核心大約500mW。而Exynos 4 Quad的工作頻率為1.4GHz,因此估計的功耗大約會是430mW,也就是說四核心的總功耗在1.7W左右,相對于Tegra3而言至少低了30%。
獵戶座的GPU部分功耗圖中也有所體現(xiàn),45nm工藝下,運(yùn)行頻率為266MHz的Mali400 MP4的功耗大約是105mW,由于Exynos 4 Quad的GPU運(yùn)行頻率大約是400MHz,因此經(jīng)過估算功耗大約在160mW左右。至此,Exynos 4 Quad的CPU+GPU最大總功耗就可以計算出來了,大約是在1.9W左右。
最后是APQ8064。相對于前兩者的頻繁估計不同,由于高通提供了MSM8960(與APQ8064擁有同樣的核心)的開發(fā)平臺,因此各項功耗都可以輕松直接測量。雖然功耗隨著頻率和負(fù)載的波動變化很大,但當(dāng)工作在1.5GHz時,Krait CPU功耗大約是在700~750mW,因此APQ8064如果四核滿載,消耗的功率也將達(dá)到3W左左右,與Tegra3不相上下。
由于MSM8960的GPU是Adreno225,因此GPU功耗無法直接和APQ8064比較,這點比較可惜。但是即便如此,MSM8960的GPU功耗也已經(jīng)高到難以置信,最高達(dá)到了1.6W,平均而言也有1.1W左右——幾乎是Exynos 4 Quad的七倍。由于從規(guī)模上說,Adreno320和Adreno225相比有著翻倍的提升,而制造工藝完全相同,雖然考慮到微架構(gòu)的提升可能可以帶來一定的省電效果,我們還是很難相信Adreno320的功耗會低于2W。
在第一回合的結(jié)尾,我們提到過,高通沒有選擇非常先進(jìn)的28nm HPL HKMG工藝,可能會對產(chǎn)品的功耗表現(xiàn)產(chǎn)生一定的負(fù)面影響,在這里我們可能已經(jīng)看到了結(jié)果,擁有HKMG技術(shù)加持的Exynos 4 Quad在三大旗艦平臺的功耗里是最小的。 Tegra3由于伴核的存在,實際使用中的功耗比較難以估測,但如果是極限情況下則明顯不容樂觀。APQ8064的全滿載功耗無疑是上一代四核平臺里最高的,但是由于在實際產(chǎn)品中,各個制造商都會主動降低這款SoC的工作頻率(尤其是GPU),因此實際功耗應(yīng)當(dāng)介于前兩者之間。毫無疑問,最容易讓手機(jī)變成好男人的是Tegra3。
對于普通讀者而言,長篇大論的理論分析肯定是很乏味的(技術(shù)宅另當(dāng)別論),看到這里,相信大家也都累了。雖然理論上里里外外、反反復(fù)復(fù)的比了個遍,但是畢竟實踐是檢驗真理的唯一標(biāo)準(zhǔn),作為2012年旗艦的這三顆處理器究竟孰優(yōu)孰劣,還得經(jīng)過實際測試才能知曉。因此,我們整理了Anandtech、GSMArena等數(shù)家國外權(quán)威媒體的測試成績,嘗試一下通過分析結(jié)果來驗證一下理論分析的結(jié)論。當(dāng)然,這些測試的環(huán)境是否一樣無法考證,所以實際上這個對比并不嚴(yán)格。畢竟只是回顧而已。
需要注意的是,因為各種原因,有些測試程序的參考價值有限,如Neocore、Nenamark v1和Vellamo。對于這類測試,我們決定直接忽略。
首先我們來看一些理論性能測試,作為對比,我們在圖表里加入了上上代產(chǎn)品,1.2GHz的Exynos 4210與1.5GHz的MSM8260。Linpack是出廠率比較高的測試之一,靠求解線性方程組來測試系統(tǒng)的浮點運(yùn)算能力。
APQ8064取得了壓倒性的領(lǐng)先,主要是源于VFPv4,而A9和Scorpion只有VFPv3。浮點運(yùn)算性能在現(xiàn)階段的實際應(yīng)用中體現(xiàn)的較少,因此這項測試的實際意義可能更多是體現(xiàn)在未來。比較有趣的是,Exynos 4 Quad雖然頻率更高,但單線程性能卻不如Exynos 4210,這也許就是受到了前文提到的處理器子系統(tǒng)帶寬問題的影響。
接下來是幾乎逢評測必測試的兔子跑分。這是一個綜合測試項目,我們先來看總分,再慢慢分析。
APQ8064是三大四核平臺里分?jǐn)?shù)最高的,其次是Exynos 4412,再次是Tegra3。雙核和四核在這里體現(xiàn)出了差距,但是我們還需要來仔細(xì)看一下單項得分。
內(nèi)存的結(jié)果比較有趣,雖然Exynos 4210和Exynos 4 Quad擁有同樣內(nèi)存配置,但得分只有后者的一半都不到,似乎Exynos 4 Quad內(nèi)存到CPU的連接的確比較高效。但是若只看四核平臺,又會發(fā)現(xiàn)對于高通平臺而言,浮點和整數(shù)的性能落差要明顯大于Cortex A9。這也許就是異步架構(gòu)的開銷,畢竟安兔兔的浮點并沒有使用VFP加速。
整數(shù)部分的差距體現(xiàn)的是雙核和四核的差距,雖然Krait擁有架構(gòu)的優(yōu)勢,但這通過之前的架構(gòu)分析我們可以找到原因,那就是因為不論是Krait、Cortex A9還是Cortex A15,整數(shù)運(yùn)算器都只有兩組,因此執(zhí)行能力的確沒有太大的區(qū)別。
CF-Bench也是一個理論性能測試軟件。這里我們也來對比一下測試成績。
基于同樣的理由,在以整數(shù)計算為主的Native性能方面,大家的單個核心同頻性能基本是差不多的,只是APQ8064的成績要明顯比Tegra3和Exynos4412差,這可能也是由于異步開銷導(dǎo)致的。但令人驚奇的是,Krait的Java性能要遠(yuǎn)遠(yuǎn)好于其它兩款四核平臺,不僅相對于前一代Scorpion有超過兩倍的飛躍,甚至比所有的四核Cortex A9都高。這個結(jié)果比較出乎意料,也許是因為Krait引入的額外執(zhí)行器在起作用,不論如何,這樣的結(jié)果意味著在純Java的應(yīng)用中APQ8064會有很大的優(yōu)勢,甚至要比四核A9更好——唯一的問題是運(yùn)算密集型的純Java應(yīng)用正變得越來越少。當(dāng)然也不是沒有,下面我們就要來看一個。
Quadrant測試向來是熱門測試之一,它就是一個純Java的測試,正好可以檢測一下Krait超高Java性能的效果。這里收集的是支持多核心的V2版,由于總分受IO影響過大,我們只看CPU和內(nèi)存。
靠著超高的Java性能,APQ8064在這個測試?yán)锶〉昧藟旱剐缘念I(lǐng)先。
理論性能測試就到此為止,我們下面來看一下實際環(huán)境模擬的測試。首先采集的是Smartphone Benchmark 2012中反映CPU性能額Productivity項。
APQ8064無法找到測試成績,不過從MSM8960來看,成績應(yīng)當(dāng)與四核Cortex A9是同一水平。Tegra3在這個測試?yán)锍鋈艘饬系娜〉昧说谝幻?.5GHz的主頻應(yīng)當(dāng)功不可沒。
瀏覽器測試也是實際應(yīng)用中很常見的項目,我們先看看Sunspider。
時間越短越好,不過從雙核A9、雙核Krait到四核A9,相對來說差距并不大。因為SunSpider測試的成績主要受到瀏覽器JS引擎的影響,與系統(tǒng)層面的優(yōu)化關(guān)系密切,因此差距不大是可以理解的。
接下來是BrowserMark:
BrowserMark的結(jié)果很有趣,Exynos 4412一枝獨秀,APQ8064緊隨其后,除此以外,其它平臺基本處于同一水平,更有趣的是不論Tegra3還是MSM8960,都不如上上代的Exynos 4210,這說明三星在軟件上針對瀏覽器進(jìn)行的單獨優(yōu)化效果遠(yuǎn)超其他廠家,兩代親兒子真不是白做的。
最后來看看3D性能。首先登場的自然是大名鼎鼎的GLBenchmark。2.1版本的Egypt場景使用了大量的Shader,尤其是Pixel Shader,比較看重GPU進(jìn)行像素處理的能力。為了避免分辨率的影響,我們采集的是720p Offscreen的數(shù)據(jù)。
Adreno320憑借超高的硬件規(guī)模,總算在這個之前不擅長的測試?yán)锶〉昧说谝弧?/P>
GLBenchmark2.5中,開發(fā)商重新設(shè)計了所有的模型和效果,提升極為明顯,尤其是模型,細(xì)膩光滑,顯然包含了數(shù)量眾多的三角形。這個測試?yán)顰dreno320依然一馬當(dāng)先,領(lǐng)先第二名33%。當(dāng)然,其實大家跑的成績都不怎么樣,2.1理動輒100FPS+的成績相比,最高的APQ8064也僅僅拿到了20FPS而已,可以說都慘不忍睹,只是慘的程度而已。
安兔兔跑分的3D部分在3.0之前一直都過于簡單,無法壓榨優(yōu)異GPU的水準(zhǔn)。因此開發(fā)商在3.0版本引入了一個全新的3D測試場景,我們來看看這個場景的表現(xiàn)。
可以看到一旦復(fù)雜度提升,Mali400 MP4的性能就會大幅下跌,同時Adreno系列就會得到極大的優(yōu)勢。在兔子跑分V3中,配備APQ8064的手機(jī)總分遠(yuǎn)高于其他產(chǎn)品,幾乎完全都是GPU的功勞。
最后則是最新發(fā)布的,大名鼎鼎的老牌3D測試軟件3DMark。在支持了移動設(shè)備之后,大家總算有一個相對公平的比較平臺,雖然對于桌面系統(tǒng)而言,區(qū)區(qū)DX9水平的測試早就是淘汰級別,但我們也沒有更好的方式。根據(jù)之前越復(fù)雜高通越強(qiáng)大的規(guī)律,3DMark中高通應(yīng)該也擁有很大的優(yōu)勢,那么實際情況是怎樣呢?
這究竟應(yīng)當(dāng)用“慘不忍睹”形容Exynos 4412,還是應(yīng)當(dāng)用“驚為天人”形容Adreno320?在3DMark的壓榨下,Adreno320爆發(fā)出的性能幾乎是其他四核平臺的三倍,成績已經(jīng)接近2007年的低端入門級筆記本獨顯8400M GT。
和以往測試性能不同,由于存在兩種架構(gòu)和兩種核心數(shù),所以這次我們嘗試更加深入一點,去計算了一下三大旗艦平臺在不同項目中的能耗比。除了Linpack以外,我們假定在測試中各個平臺的功耗均處于最大,數(shù)據(jù)采用之前的結(jié)果。MSM8260的功耗之前并未提及,根據(jù)估測應(yīng)當(dāng)在650毫瓦左右。首先比較的是CPU部分的性能功耗比,這里用MSM8960的性能作為單位1。
然后是GPU部分。
綜合來看,Exynos 4412在上一代四核平臺中能耗比是最高的,其次是MSM8960,當(dāng)然這是一顆雙核SoC。APQ8064在絕大多數(shù)情況下,能耗比都要比Exynos 4412低不少,而性能和對方差距也不大,這意味著兩者的使用體驗會比較接近,但APQ8064的發(fā)熱會遠(yuǎn)大于Exynos 4412。當(dāng)然廠家可以靠降低運(yùn)行頻率、設(shè)置更嚴(yán)格的溫度控制閾值來控制功耗,但是這樣一來性能會受到較大影響。總體來說,APQ8064有些空有一身力氣卻因為吃不飽而無法發(fā)揮的感覺。
GPU則對高通而言不太妙,因為差距已經(jīng)大到難以理解。Tegra3由于采用的是落后的40nm工藝,能耗比不理想是可以理解的,但S4已經(jīng)采用了28nm工藝(雖然工藝細(xì)節(jié)比較落后),再考慮到架構(gòu)上的巨大優(yōu)勢,能耗比卻大幅度落后。當(dāng)然,在最新的測試中,Adreno320的性能有絕對的領(lǐng)先優(yōu)勢,但是這樣的優(yōu)勢不足以抵消其超過2W的功耗??紤]到實際的應(yīng)用狀況,即便是遇到必須要Adreno320才可以流暢運(yùn)行的游戲,Adreno320也會因為功耗過大而不具備實際的使用價值。如何解決能耗比問題,是高通的一大難點。
Adreno320的規(guī)模之大,為移動領(lǐng)域少有,根據(jù)某些渠道的消息,Adreno320占用的硅片面積大約是30mm2左右。根據(jù)路線圖,年底將要上市的驍龍800會配備規(guī)模更大的Adreno330,性能將會進(jìn)一步提升50%,但假如高通無法提升自己GPU的效率與能耗比,只是一味的去“堆”運(yùn)算單元,即便最終可以獲得強(qiáng)大的性能,這樣的提升也會變得毫無意義,畢竟便攜設(shè)備靠電池供電,不可能允許功耗無限制地增大。我們實在不敢想像在小小的手機(jī)里有著一顆功耗接近3W的GPU是怎樣的感覺,唯一可以確定的是,如果真的存在這樣一個GPU,在99%的時候它都不可能運(yùn)行到哪怕一半的設(shè)計性能。
算過了能耗比,我們再來算算同頻性能。對陣的是Cortex A9與高通新老兩代核心Krait與Scorpion。
從結(jié)果可以看出,驍龍S4的Krait核心在整體的執(zhí)行性能方面和Cortex A9互有勝負(fù),并不像某些文章中所說,“遠(yuǎn)超Cortex A9,與Cortex A15同級”。領(lǐng)先較多的三項中,Linpack源于Krait更高版本的VFP處理器,真正有實際意義的是Java性能,這點可能會在實際使用中帶來很大的區(qū)別,但異步架構(gòu)又可能會對性能表現(xiàn)帶來負(fù)面影響,所以總體而言,Krait與Cortex A9的關(guān)系更多類似于“基本持平”而并不是“遠(yuǎn)遠(yuǎn)甩開”。這個結(jié)果對高通而言可能有些沮喪,畢竟高通奉行的是兩年一升級的策略,驍龍S4在自己生命周期的起始階段無法徹底擊敗上一代架構(gòu)的對手,隨著今年正統(tǒng)Cortex A15產(chǎn)品的陸續(xù)上市,Krait核心屆時也許會變得更加被動。
尾聲:瘋狂時代的最后演出?
通過這篇回顧,我們對于過去的2012年里大放異彩的移動四核產(chǎn)品算是有了一個清晰的概念,同時也對于移動產(chǎn)品的一些架構(gòu)和技術(shù)有了一定的了解。2013年已近過半,高通已經(jīng)拿出了最新的驍龍600,nVIDIA的Tegra4也蓄勢待發(fā),而三星則拿出了比較獨特的八核處理器Exynos Octa。在未來的半年內(nèi),ARM陣營還會有驍龍800和Tegra4i陸續(xù)到來,Intel則會祭出全新Silvermont架構(gòu)的新一代ATOM處理器以取代老邁的Saltwell——后者的架構(gòu)自推出以來就幾乎未曾更新,但即便如此,依然具有與Cortex A15一戰(zhàn)的性能和Cortex A9級別的功耗。甚至一向?qū)σ苿邮袌霾惶珶嶂缘腁MD,都會推出設(shè)計功耗只有3.9W,基于Jaguar核心的Temash嵌入式處理器??雌饋硪苿宇I(lǐng)域的軍備競賽還將繼續(xù)下去,至少2013年不會是終點。
但是再往后呢?攀升的性能與功耗,與發(fā)熱和續(xù)航之間的矛盾正在一天天激化。從07年開始,我們經(jīng)歷著手機(jī)從三天一充,到一天三充,到今天甚至出現(xiàn)了永遠(yuǎn)都無法全速工作的“優(yōu)異手機(jī)”。面對這個局面,手機(jī)廠家卻依然鍥而不舍地升級新硬件,消費(fèi)者也還在孜孜不倦地追求最多的核心與最高的頻率。這樣的現(xiàn)象正常么?恐怕很難如此認(rèn)為。這是一個瘋狂的時代,毀滅可能會發(fā)生在最輝煌的一刻,而那一刻可能就在不遠(yuǎn)的將來。
那么剛剛上市與即將上市的最新一代手機(jī)究竟會發(fā)展成怎樣?最新的硬件到底能給我們帶來什么?這個產(chǎn)業(yè)的未來會是怎樣?這都是我們需要思考的問題,也都是下篇將要探討的問題。我們享受著科技進(jìn)步帶來的好處,也在為科技進(jìn)步的副作用買單。我們推動著市場從無到有,也推動者市場從理性到瘋狂進(jìn)而毀滅。消費(fèi)者的欲望是無限的,而消費(fèi)者的理性是有限的,這才是一切問題的根源所在。移動產(chǎn)業(yè)何去何從?會不會像PC一樣進(jìn)入百足之蟲死而不僵的地步?時間會告訴我們一切,我們姑且拭目以待。
下一篇Archon將會圍繞著現(xiàn)今手機(jī)處理處理器的現(xiàn)狀與未來進(jìn)行探討,對于這篇文章還意猶未盡的玩家可以進(jìn)一步的閱讀。■<
關(guān)注我們
