蘋果A7芯片的獨(dú)特之處解釋
上周末有傳聞稱iPhone 5S會帶有雙核 64位處理器A7,大約比iPhone 5快出31%。當(dāng)下人們都非常關(guān)心5S或者A7的性能數(shù)據(jù),這時(shí)回顧一下蘋果的軟/硬件和SoC研發(fā)策略你會發(fā)現(xiàn)很有意思。
蘋果在芯片研發(fā)上的最大優(yōu)勢(很可能沒有之一)就是能將A7/A8的設(shè)計(jì)與自家的app/服務(wù)架構(gòu)強(qiáng)力對接,而不需要做任何普適性的妥協(xié)。
所謂普適性的妥協(xié),看看高通就知道了——高通的一款芯片是為數(shù)以百計(jì)甚至千計(jì)的Android機(jī)型設(shè)計(jì)的,但A7只會用在iPhone,iPad,再有就是iPod和iTV。高通芯片需要兼顧眾多潛在客戶的配置,所以必然遵循80/20的市場原則,蘋果可以在芯片上砍掉所有它不想要的配置,然后再加上自己特制的單元——比如DSP或者是針對iOS的圖形處理單元。
蘋果在A7上會保持雙核還是增加到四核呢?來看看這背后的動因。
當(dāng)下推動多核架構(gòu)的內(nèi)因有三個(gè):降低能耗,提升性能以及增加內(nèi)存帶寬。但移動平臺的性能衡量最注重的還是一點(diǎn)——單位能耗下的性能輸出。
打個(gè)比方,多核處理器的駕馭有點(diǎn)像廚子用4個(gè)小火的爐灶代替原先的大鍋。各個(gè)爐灶都單獨(dú)烹飪,廚子可以更好地調(diào)理食材和火候——比如你可以關(guān)掉其中的一兩個(gè)爐灶(降低能耗),或者將食材在不同火候的爐上移動(根據(jù)任務(wù)屬性丟給不同的處理單元)。
但這么做的代價(jià)就是軟件復(fù)雜性。放回到上面的case就是你需要一個(gè)足夠智慧的廚子。芯片不僅要協(xié)調(diào)不同核心間的通信,還要決策和編譯哪一部分的代碼在哪一個(gè)單元上處理。標(biāo)準(zhǔn)化的軟件設(shè)計(jì)工藝難以應(yīng)付這樣的外在限制。事實(shí)上,當(dāng)下計(jì)算設(shè)計(jì)領(lǐng)域最大的難題之一就是軟件并行。
這樣的設(shè)計(jì)難度最后落在了圍繞app設(shè)計(jì)、測試、優(yōu)化和API設(shè)計(jì)的軟件架構(gòu)堆棧上。在操作系統(tǒng)之上,你的設(shè)計(jì)需要將驅(qū)動和應(yīng)用緊密結(jié)合。由于從多核中榨取“免費(fèi)”性能首要解決的是軟件復(fù)雜性,這時(shí)在堆棧上擁有最高整合度的公司就體現(xiàn)出優(yōu)勢。
比如Facebook的iOS app,他們采用一個(gè)主線程帶動UI以及處理觸屏事件,另外一個(gè)線程在后臺計(jì)算“重勞力”的任務(wù)。后臺的線程處理類似網(wǎng)絡(luò)活動和JSON解析這樣的工作,但絲毫不會拖累主UI線程的響應(yīng)。
所以不同的線程會交由不同的核心處理,在類似Android的模塊化平臺上代碼本身當(dāng)然不會自動地利用芯片的架構(gòu)設(shè)計(jì)。對開發(fā)者來說,編譯器和API與底層操作系統(tǒng)和芯片/驅(qū)動堆棧的整合度越高,那么他們想要進(jìn)行性能優(yōu)化就越容易。可想而知,app開發(fā)者們希望有一個(gè)蘋果這樣的平臺。
我們都知道蘋果并非是互聯(lián)網(wǎng)中服務(wù)做得最好的一個(gè),Google、Spotify、Dropbox等都各有特色。但就OS層的軟/硬件設(shè)計(jì),蘋果絕對是最強(qiáng)的。
不管怎樣,再有兩周時(shí)間,iPhone 5S和A7都會揭曉。無論它會是雙核/多核,還是32位/64位,蘋果必然會將它和自家的服務(wù)高度整合。