三星八核與四核驍龍的那些口水

2013-01-18 09:23:29來源:煮機網(wǎng)作者:

在剛剛過去的 CES 2013 上,近年來順風(fēng)順?biāo)母咄ù嫖④涀隽酥黝}演講并發(fā)布了新一代的 Krait 系列核心,不過沒想到很快就被三星那顆驚世駭俗的 Exynos 5 Octa 八核處理器搶去了風(fēng)頭。也許是對此心有不甘,高通 CE

在剛剛過去的 CES 2013 上,近年來順風(fēng)順?biāo)母咄ù嫖④涀隽酥黝}演講并發(fā)布了新一代的 Krait 系列核心,不過沒想到很快就被三星那顆驚世駭俗的 Exynos 5 Octa 八核處理器搶去了風(fēng)頭。也許是對此心有不甘,高通 CEO 前些天評價這顆處理器“把缺點當(dāng)賣點”,認(rèn)為“核戰(zhàn)爭沒有意義,消費者需要的是體驗”。這番言論到底是真知灼見呢,還是酸葡萄心理呢?仔細(xì)看一看這兩顆芯片就能明白。

Exynos 5 Octa:哪兒來的八個核心?

在這個 P C都沒普及八核心的年代,手機和平板居然鬧著要上八核心,這的確是一件讓人匪夷所思的事情。真有那么大的性能需求,讓手機連四個核心都不夠用,非要上八個?當(dāng)然不是這樣。Exynos 5 Octa 雖然號稱八核心,但實際上是由兩組四核處理器組成的,一組是四核 Cortex A15,一組是四核 Cortex A7,利用 ARM 最新發(fā)布的 CCI-400 連在一起工作。為什么要這么費勁,歸根到底一句話,Cortex A15 實在是太太太太費電了。其實費電倒不是什么問題,降頻就是了,問題是 Cortex A15 吃掉的電力遠(yuǎn)遠(yuǎn)大于輸出的性能:在 32nm HKMG 工藝下一顆 1.5GHz 的Cortex A9 只需要大約 450mW 的功耗,但是 Cortex A15 一下子蹦到了 2W 左右,足足翻了四倍還不止——性能提升可遠(yuǎn)遠(yuǎn)沒這么多,充其量也就是兩倍了不得了。這樣的東西別說給手機用,即便是給平板都顯得很 沒競爭力,別忘了那廂的 Intel 可虎視眈眈呢,SoC化的 Atom 在能耗比上居然已經(jīng)超越了曾經(jīng)以省電著稱的 ARM,配上 X86 架構(gòu)兼容和30年來海量 的應(yīng)用資源(跑步跑得動另說),Cortex A15 可謂鴨梨山大,平板不夠強,手機不夠省。所以ARM才搗鼓出這么一個叫 big.LITTLE 的技術(shù),額外設(shè)計一個性能差但是很省電、架構(gòu)又完全兼容 的 Cortex A7,把它和 Cortex A15 兩兩配對,需要高性能的時候開啟 A15,不需要的時候開啟 A7,取長補短,又強大又省電,看起來忒厲害。Exynos 5 Octa 就是第一個實現(xiàn)了這個技術(shù)的處理器。

那這能叫八核處理器嘛!

說的也是,高負(fù)載開 A15,低負(fù)載開 A7,這就像干活用電腦,上網(wǎng)用平板,兩個東西又不能結(jié)合起來用,叫雙核不是拿人開涮嗎?別急,在這點上可以說三星也沒完全忽悠我們。雖然 big.LITTLE 技術(shù)主要的設(shè)計目的是在不同的負(fù)荷下啟用不同的核心組,實現(xiàn)功耗和性能的最優(yōu)化配置,但是這個技術(shù)還有第二個工作模式,那就是讓兩組處理器同時開啟,用異步非對稱多處理器模式組成一個整體,讓比如說輕負(fù)載的線程跑在 A7 上,重計算的線程跑在 A15 上。怎么樣,這就是貨真價實的八核了吧?雖然必須承認(rèn)的是,這種模式很顯然是不可能在手機上用的(兩組核心加起來功耗鐵定破 10W,哪怕電池?fù)蔚米,外殼也受不了),所以雖然八核心不算是胡扯,但至少也是個大忽悠。高通可能就是看不爽這一點才嘲諷的。

那這就是個完美的設(shè)計咯?

商業(yè)世界,你要是相信廠家的 PPT,年可是都會過錯的。換了你,你也會拼命吹噓技術(shù)美好的地方,之于不怎么美好的地方嘛……反正只要讓你掏了錢,剩下的就不重要了。big.LITTLE 技術(shù)的實際遠(yuǎn)不如看起來那么美好,問題的關(guān)鍵就在于切換這個過程上。把正在運行的系統(tǒng)和程序從一個 CPU 完整的轉(zhuǎn)移到另外一個 CPU,不是一個想象中那么簡單的事情,這涉及到處理器電源狀態(tài)的切換、內(nèi)部所有私有狀態(tài)的復(fù)制和轉(zhuǎn)移、部分內(nèi)存數(shù)據(jù)的更新,有可能還要涉及到中斷系統(tǒng), 而且還不太方便做到對上層代碼透明。在 ARM 的設(shè)計中,大小組的切換需要用到額外的指令,需要系統(tǒng)告訴 CPU “該切換了”才可以執(zhí)行(似乎 nVIDIA 的 vSMP 就可以做到全透明,但好像代價是兩組處理器必須完全一樣),這需要對系統(tǒng)核心做出修改才能實現(xiàn)。而且一個 CPU 不論是打開還是關(guān)閉,都需要時間, 這也就必然會導(dǎo)致切換指令發(fā)出以后,需要等待另一個 CPU 就緒才可以開始切換,這會導(dǎo)致不小的開銷。當(dāng)然,設(shè)計這套系統(tǒng)的ARM 不可能不考慮這些問題,因此在一個 CPU 收到切換指令以后,實際上并不會立刻把自己凍結(jié),而是再發(fā)一個指令告訴即將切換的那個CPU首先啟動,然后一邊運行代碼,一邊等待另外一個 CPU 就緒,當(dāng)一切搞定以后,再進(jìn)行狀態(tài)復(fù)制等操作。因此,ARM 聲稱,一次切換的時間損失在頻率為 1GHz 的時候大約只有20微秒,這足以讓兩組 CPU 在一秒內(nèi)切換1000次以上,依然無法讓用戶察覺。 

  到現(xiàn)在為止一切看起來都還很美好,但殘酷的現(xiàn)實來了:狀態(tài)切換不包括 L2 數(shù)據(jù)的復(fù)制,而由于 L2 緩存在 A15 和 A7 的系統(tǒng)中都是緊密耦合的,因此不可能做到共享,那么只有兩個選擇:在切換的時候通過 CCI400 將 L2 數(shù)據(jù)復(fù)制一次,或者干脆 丟棄所有的 L2 內(nèi)容。第二種看起來顯然不是什么好主意,但可惜的是第一種也不是:如果我沒記錯,復(fù)制一次 L2 緩存耗時大約20毫秒——比切換開銷大了3個數(shù)量級。這就意味著如果這套系統(tǒng)真要在實際工作中發(fā)揮出應(yīng)有的效能,那么就必須要頻繁切換,而頻繁切換的結(jié)果是 L2 緩存成為廢物,結(jié)局就是性能一塌糊涂。 

所以……

可以這么說,與普通的四核 Cortex A15  處理器相比,big.LITTLE 的引入的確讓 Exynos 5 Octa 可以塞進(jìn)手機,只是不出意外它會徹底變成一顆四核 A7 產(chǎn)品—— MTK6598 么?不過對于一些人和絕大多數(shù)廠家而言,這樣也就夠了,畢竟它們需要的只是八核的幌子。而面對用戶的質(zhì)疑,它們會說“我這是為了你的用戶體驗,你希望手機和鍋爐一樣嗎?”于是用戶掏了四核 A15 的錢賣到了四核A7的產(chǎn)品, 廠家又賣掉了大把大把的硅片,皆大歡喜,皆大歡喜,不是嗎? 

好吧,那看來還是高通好?

看過了三星,你可能會覺得雅各布說的果然沒錯嘛,高通果然還是很站在用戶角度思考的啊,三星你這完全就是坑爹,手機要那么多核心干什么?我還是買高通好了,那么強大的 Krait,四個核心還不費電,真不錯這下我可以開3個 QQ 和美女聊天了……如果你這么想,恭喜你,你又被高通忽悠了。雖然嘴上高通嘲諷三星嘲諷地頭頭是 道,但實際上高通做的也沒比三星更高明多少,或者說,這幾年來最大的忽悠一直是高通。

問問你:手機要多核心干啥?

這還不簡單嗎?當(dāng)然是為了多任務(wù)!君不見 Android 身為一個真·多任務(wù)的系統(tǒng),無時無刻都有好幾個程序在前臺后臺的跑,至于IOS什么的@#@¥#¥%。#…… 

沒錯。我們要多核處理器,自然是為了多任務(wù)的,畢竟誰沒事干成天用手機去算 Linpack 或者折疊蛋白質(zhì)呢?于是最大的問題就來了,高通的多核心處理器,真的有對應(yīng)的多任務(wù)性能嗎?這就必須再一次把高通“引以為豪”的異步多核心架構(gòu)拿出來再鞭一次尸了。眾所周知異步電路的好處就是可以跑不同的頻率,但是問題來了:高通的異步架構(gòu),隨著核心數(shù)量的增加,提升的只是 CPU 的絕對運算性能,并不會同比提升 CPU 的吞吐量,這就導(dǎo)致了一個問題,如果運行的都是沒有多少計算量,而偏重于 IO 的任務(wù),那么不論有多少個核心,性能都和一個核心沒什么兩樣——不幸的是,手機里恰好幾乎都是輕計算重 IO 的任務(wù),除了 Benchmark 以外。

所以很多購買了高通 CPU 手機的人都會感覺,為什么我手機跑分那么高,世界第一,用起來卻還是不太流暢,尤其是在多個 APP 之間切換或者游戲載入呢?很簡單:雖然你有四個核心的運算量,但只有一個核心的吞吐能力,要知道不是所有的內(nèi)存操作都可以用 DMA 完成,這時候的瓶頸就是吞吐量,有多少個核心都白搭——得不到數(shù)據(jù),CPU 只能等待,流水線只能空轉(zhuǎn),雖然高通的異步技術(shù)可以讓這個時候的 CPU 降頻使用,但這實在是讓人覺得像是先打你一巴掌再給你揉揉——搞個四核當(dāng)單核用,這不是有必應(yīng)(誤,應(yīng)該是。┠鞘怯猩?

 光說不練自然不行,好在已經(jīng)有測試可以驗證了。兔子跑分在一項沒有公開的測試中使用了 Nexus 4 和 Nexus 10 進(jìn)行對比,結(jié)果是在純粹的計算性能上,擁有四個Krait核心的高通APQ8064,性能完勝擁有兩個 Cortex A15 核心的 Exynos 5 Dual,領(lǐng)先幅度大約有5成:

但是在多任務(wù)測試中,情況卻完全逆轉(zhuǎn),擁有四個核心的 Nexus 4 居然只比擁有兩個核心的 Nexus 10 的一半快一點: 

四核只比雙核的一半快一點是什么意思?那就是說四核 Krait 的多任務(wù)性能也就只比單核A15強一點而已。這就回到了第一個問題:如果四核的多任務(wù)性能只有單核水平,那我要四核干什么,我又不是職業(yè)跑測試的對不對。 

至于 Krait 核心自己,一開始高通各種暗示是 Cortex A15 級的產(chǎn)品,后來忽悠不過去了就絕口不提了,事實上 Krait 除了 vFPv4 帶來的浮點性能領(lǐng)先以外,并沒有比 Cortex A9 強多少,最多強三成,但是功耗卻幾乎是 Cortex A9 的兩倍——雖然這是因為工藝爛,但誰叫你有好工藝不用呢?畢竟我們看的是產(chǎn)品。所以這次雖然在CES 2013上帶來了號稱性能提升75%的新 Krait 800 系列,但只要高通一天不解決異步吞吐問題,再強也就是個單核。 

寫在最后

雖然高通諷刺三星看起來大義凜然,但實際上兩家都沒做到站在體驗上說話。一個做的是四核性能的八核,另一個做的是單核性能的四核,可謂天下烏鴉一般黑,誰都沒好到哪兒去。那么到底怎樣才是站在用戶角度說話呢?很簡單,讓用戶付出的每一分錢都能得到對應(yīng)的體驗,這才是站在用戶角度。用戶不需要最高的跑分,用戶只需要最流暢的使用;用戶希望做到以前做不到的事情,用戶不希望手機像個火爐一樣用兩小時就沒電。手機產(chǎn)業(yè)的核戰(zhàn)爭,看起來轟轟烈烈,現(xiàn)在走在大街上沒個四核手機都不好意思說自己是發(fā)燒友,但究竟有多少四核手機的性能是用戶能用上,敢用上的呢?這個問題恐怕絕大多數(shù)消費者都沒想過。其實,如果你現(xiàn)在的手機 里有因為功耗或者續(xù)航或者架構(gòu)原因而用不到的性能,那么這部分性能就永遠(yuǎn)也用不到——別認(rèn)為雖然用不到,但今天購買一個四核手機可以讓我三年不淘汰,等到三年后真需要用到四核的性能了,看到人家1x納米工藝的新手機輕松跑出你兩倍的性能還只有你一半的耗電,你難道還認(rèn)為自己三年前的那筆投資物有所值嗎?

好好想想吧,核戰(zhàn)爭、性能戰(zhàn)爭、配置戰(zhàn)爭,究竟有幾個是真正有意義的,我們?yōu)楫a(chǎn)品內(nèi)每一個部分付出的每一分錢,究竟有哪些是真正能感受到的?只有想通這個問題,這個可以說變態(tài)的時代才有救。

關(guān)鍵詞:四核八核三星驍龍

贊助商鏈接: