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