原來(lái)蘋(píng)果A7處理器是這樣用雙核擊敗八核的
隨著蘋(píng)果在iPhone5s上祭出“業(yè)界首枚64bit手機(jī)處理器”,果粉們似乎找到了新一輪嘲諷Android的武器:Anandtech等權(quán)威媒體測(cè)試表明,運(yùn)行頻率僅1.3GHz的雙核A7處理器,性能堪比安卓手機(jī)中的四核Cortex A15處理器?!癆ndroid就知道拼硬件,四核八核做出來(lái),還不如我家蘋(píng)果雙核快,丟臉不丟臉?”
實(shí)測(cè):雙核秒殺四核/八核
好吧嚴(yán)肅一點(diǎn),讓我們先把得意洋洋的果粉放到一邊。事實(shí)上A7處理器“以雙核戰(zhàn)翻四核”這個(gè)近乎于神話的結(jié)果本來(lái)也很有趣,這是否是蘋(píng)果遠(yuǎn)遠(yuǎn)拋開(kāi)業(yè)界設(shè)計(jì)水平的佐證呢?要知道在如今的處理器設(shè)計(jì)中,在同樣的功耗前提下即便是差距大如英特爾vs ARM,也幾乎不可能做到一個(gè)核心對(duì)抗對(duì)方兩個(gè)核心,更別說(shuō)是ARM陣營(yíng)的內(nèi)部斗爭(zhēng)了。
A7處理器兼容下一代ARMv8 64bit指令集,核心架構(gòu)由蘋(píng)果自行設(shè)計(jì)
跑谷歌Octance Java這種單線程性能需求強(qiáng)勁的代碼,iPhone 5s把幾乎所有安卓手機(jī)都轟成了渣
運(yùn)行Sunspider Javascript測(cè)試程序時(shí)也獲得了類(lèi)似結(jié)果,GS4大概只有iPhone 5s一半的性能
誠(chéng)然,Apple A7是一枚設(shè)計(jì)優(yōu)秀64bit的處理器,64bit帶來(lái)的額外寄存器資源如果優(yōu)化得當(dāng),應(yīng)用程序可獲得近乎翻倍的性能提升,但即使在現(xiàn)有的32位環(huán)境中,iPhone 5s表現(xiàn)依然搶眼,蘋(píng)果是如何做到這點(diǎn)的?
應(yīng)用程序64位化之后,往往會(huì)帶來(lái)一些不可思議的性能提升,圖中iPhone 5s運(yùn)行64位AES加密時(shí)性能較32位提升了825%
要解答這個(gè)問(wèn)題,我們必須梳理一個(gè)思維盲區(qū):直到現(xiàn)在,唯性能論者的潛意識(shí)里,各家廠商的處理器核心都是差不多的,因此超過(guò)一倍的性能差距往往會(huì)讓人覺(jué)得不可思議。但問(wèn)題是:不同處理器的核心架構(gòu)真的差不多嗎?或者我們換個(gè)問(wèn)法:熊的力氣超過(guò)人類(lèi)兩倍,這有什么奇怪的嗎?
誰(shuí)的功勞?
以拆機(jī)聞名的Chipworks日前公布了A7處理器的核心分析圖,這個(gè)問(wèn)題總算得到了明確的答案。由于A7采用的是三星28nm HKMG LP工藝,為了更好的對(duì)比,我們找來(lái)三星自家的Exynos 5410,兩枚處理器的核心X射線透視圖如下:
顯而易見(jiàn),蘋(píng)果A7的CPU雖然是雙核設(shè)計(jì),但是它消耗掉的芯片面積(或者說(shuō)晶體管數(shù)量)與四核Cortex A15幾乎相等??紤]到核心數(shù)量的設(shè)計(jì)只是邏輯層面的差異,半導(dǎo)體芯片運(yùn)算能力的本質(zhì)來(lái)源依然還是晶體管數(shù),這也就意味著,蘋(píng)果A7最終表現(xiàn)出與四核心Cortex A15等同的性能是應(yīng)該的,而不是不可思議的。
蘋(píng)果A7處理器單個(gè)核心的面積就接近兩個(gè)標(biāo)準(zhǔn)的ARM Cortex A15處理核心,因此A7的單線程性能比Cortex A15強(qiáng)完全正常。同時(shí),由于邏輯核心只有兩個(gè),A7的多線程性能比四個(gè)Cortex A15弱也是情理之中。
總體來(lái)看,Apple A7的設(shè)計(jì)對(duì)于晶體管的利用率反而低于Cortex A15,綜合單線程和多線程的性能,A7在使用了相同晶體管的前提下并沒(méi)有實(shí)現(xiàn)同等的性能,當(dāng)然這也是正常的,大而少的設(shè)計(jì)本身就存在難以避免的浪費(fèi)。
設(shè)計(jì)思路的差異
實(shí)際上,蘋(píng)果A7處理器選擇的是消耗Cortex A15兩倍的資源,去實(shí)現(xiàn)一個(gè)單線程好于Cortex A15 50%-70%的設(shè)計(jì)。這樣的選擇是基于IOS系統(tǒng)的需要——iOS是一個(gè)對(duì)于后臺(tái)任務(wù)限制很?chē)?yán)格的系統(tǒng),同時(shí)也是一個(gè)高度私有化、高度優(yōu)化的封閉體系,在這樣的體系里蘋(píng)果認(rèn)為單線程性能更加重要一些,因此作出了這樣的選擇。
而Android是一個(gè)允許后臺(tái)程序隨意執(zhí)行和切換的開(kāi)放系統(tǒng),在這樣的系統(tǒng)下對(duì)于并行度的需求要明顯高過(guò)IOS,所以Android走上了多核心之路,而IOS堅(jiān)持大核心戰(zhàn)略。這樣不同的需求決定了不同的設(shè)計(jì)風(fēng)格,自然也導(dǎo)致了在不同的測(cè)試條件下?lián)碛胁灰粯拥谋憩F(xiàn),而這一切本質(zhì)上都是正常的:在相同的半導(dǎo)體工藝環(huán)境下,沒(méi)有任何人用更少的代價(jià)實(shí)現(xiàn)了更多的性能,這一切只是取舍。
那么,誰(shuí)的設(shè)計(jì)更先進(jìn),或者說(shuō)代表了誰(shuí)的思路更正確?要回答這個(gè)問(wèn)題,你可以假想自己是一個(gè)建筑設(shè)計(jì)師。你手頭有100噸混凝土,你是用它去造兩間80平米的大客廳,還是用它去造10個(gè)20平米的小居室?答案當(dāng)然是“取決于要求”。
如果是土豪拿來(lái)當(dāng)家庭影院,顯然你要把房間造得大一點(diǎn);如果你要將房子出租給大學(xué)生,房間自然是小一些、多一些為妙。嗯,現(xiàn)在我是甲方,我命令你在這兩個(gè)設(shè)計(jì)中選擇一個(gè)更“高級(jí)”,更“先進(jìn)”,或者更“正確”的進(jìn)行設(shè)計(jì),你的答案是啥?