移動(dòng)平臺(tái)并沒有出現(xiàn)我們看到的臺(tái)式機(jī)CPU 演進(jìn)過程中的飽和狀態(tài),這是因?yàn)橹悄苁謾C(jī)市場(chǎng)剛剛開始高速增長(zhǎng),是平臺(tái)廠商進(jìn)一步優(yōu)化處理器架構(gòu)和硅技術(shù)起主要?jiǎng)右?,而?jìng)爭(zhēng)不激烈的傳統(tǒng)嵌入式系統(tǒng)市場(chǎng)卻沒有這種動(dòng)因。顯然,PC 機(jī)更成熟的超級(jí)優(yōu)化的架構(gòu)和硅技術(shù)與智能手機(jī)平臺(tái)剛起步的架構(gòu)與技術(shù)之間存在很大的差異:
PC單核處理器在2003 年達(dá)到散熱極限時(shí),此后性能再也沒有增長(zhǎng)的空間;而移動(dòng)平臺(tái)則不同,智能手機(jī)時(shí)代始于2007 年,移動(dòng)單核處理器還擁有巨大的性能提升空間,到今天為止,還沒有跡象顯示移動(dòng)平臺(tái)性能飽和。
人們不禁要問:為什么移動(dòng)平臺(tái)不同于PC 處理器,在單核性能達(dá)到飽和前就轉(zhuǎn)向多核處理器?
我們認(rèn)為有兩個(gè)原因,第一個(gè)原因是,移動(dòng)計(jì)算產(chǎn)品沿用數(shù)十年前的技術(shù)知識(shí),特別是人們普遍知道,現(xiàn)代的操作系統(tǒng)能夠更高效地利用雙核處理器,高速緩存一致性和多任務(wù)處理操作系統(tǒng)等基本技術(shù)已經(jīng)到位。因?yàn)槟軌虺浞掷秒p核處理器,就沒有必要再等。而且,這個(gè)過程進(jìn)展得非???;第二個(gè)原因是進(jìn)攻性的營(yíng)銷策略。
像大多數(shù)商用平臺(tái)一樣,CPU 在進(jìn)入四核時(shí)代后的發(fā)展方向目前尚不清楚,PC 業(yè)的經(jīng)驗(yàn)告訴我們,即使多核處理器存在于市場(chǎng)10 年后,使用雙核以上的處理器對(duì)于大多數(shù)軟件是沒有實(shí)用意義,唯一的技術(shù)解釋是移動(dòng)應(yīng)用軟件比PC 軟件更易于多核處理,但是,我們?cè)诙虝r(shí)間內(nèi)不會(huì)看到這種情況發(fā)生。
事實(shí)上,有說服力的技術(shù)原因根本就不存在。動(dòng)機(jī)似乎都與市場(chǎng)營(yíng)銷有關(guān),因?yàn)橹悄苁謾C(jī)市場(chǎng)競(jìng)爭(zhēng)激烈,多核處理器是一個(gè)很有進(jìn)攻性的武器。目前,廠商利用處理器內(nèi)核數(shù)量使自己的產(chǎn)品保持差異化,甚至消費(fèi)者也這樣做。具有諷刺意義的是,技術(shù)上沒有任何新發(fā)明,市場(chǎng)營(yíng)銷上沒有新意,相同的廣告詞早在PC 多核問世時(shí)就被廣泛使用。像PC 機(jī)一樣,人們很快就會(huì)意識(shí)到,移動(dòng)設(shè)備內(nèi)的CPU 內(nèi)核數(shù)量與產(chǎn)品帶給客戶的真正價(jià)值沒有直接關(guān)聯(lián)。
網(wǎng)絡(luò)瀏覽器是最重要的手機(jī)應(yīng)用軟件之一,也是手機(jī)高性能CPU 的最大受益者,同時(shí)還是要求嚴(yán)格的PC 級(jí)應(yīng)用軟件的一個(gè)實(shí)例,瀏覽器的性能非常重要,因?yàn)樗苯佑绊懹脩粢曈X互動(dòng)性。隨著網(wǎng)絡(luò)帶寬不斷增加,今天的處理速度已處于臨界線,將來HTML5 rich API 和不斷增加的編程內(nèi)容(javascript)對(duì)處理速度要求更高。網(wǎng)絡(luò)瀏覽器還是高效使用今天的雙核處理器的一個(gè)很好的實(shí)例,因?yàn)椴僮飨到y(tǒng)支持功能、軟件工程、人機(jī)互動(dòng)(防止UI 死屏)、安全性和穩(wěn)健性(不同處理過程中的多個(gè)標(biāo)簽)的原因,瀏覽器引入了并行活動(dòng)。但是,因?yàn)槿鄙俪渥愕木獾能浖⑿屑夹g(shù),瀏覽器無法滿足雙核以上數(shù)理器的運(yùn)行需求,測(cè)試結(jié)果顯示,處理器從雙核進(jìn)化到四核,瀏覽器性能提升很小或根本沒有提升。
圖4 所示是在同一四核處理器硬件/軟件平臺(tái)上運(yùn)行的兩款主流瀏覽器的測(cè)試成績(jī),通過軟件設(shè)置(熱插撥)可以選擇不同的處理器數(shù)量,因此,測(cè)量結(jié)果完全是同一硬件/軟件環(huán)境的真實(shí)數(shù)據(jù)。在所有的配置中,工作頻率完全相同。相對(duì)分?jǐn)?shù)是指在多次重復(fù)測(cè)量中若干個(gè)主流網(wǎng)站上的網(wǎng)頁加載時(shí)間的平均值,因此,這個(gè)用例代表了真實(shí)的網(wǎng)站瀏覽體驗(yàn),而不是人為的基準(zhǔn)測(cè)試。當(dāng)從單核切換到雙核時(shí),速度提升30%是一個(gè)較好的成績(jī),符合預(yù)期。然而,從雙核切換到四核時(shí),處理速度只取得0-11%的提升。在雙核處理器上進(jìn)行相似的測(cè)試,從單核切換到雙核時(shí),處理速度提升高達(dá)50%。
另一方面,如前文分析PC 處理器時(shí)提到的,不論處理器有多少個(gè)內(nèi)核,頻率提高總是有益于提升軟件性能。當(dāng)對(duì)多核處理器方案進(jìn)行比較時(shí),這一點(diǎn)很重要,因?yàn)樘幚砥鲀?nèi)核增加會(huì)對(duì)頻率產(chǎn)生負(fù)面影響?;ミB線和存儲(chǔ)器等共享資源沖突,高速緩存、一致性電路的擴(kuò)展受限,這些因素都會(huì)限制多核處理器的頻率提升。為提升多核處理器的總體頻率,需要使用軟件多核處理方法補(bǔ)償多核處理器降低的頻率。例如,我們?cè)谝郧暗恼壑苑治?[5]中提到,四核處理器的頻率比雙核處理器降低約27%,軟件必須有70%的代碼實(shí)現(xiàn)并行化,才能使四核處理器的性能優(yōu)于雙核處理器,這是一個(gè)很大的比例,幾乎沒有應(yīng)用軟件能夠達(dá)到這個(gè)水平,當(dāng)然不是通過原生并行,因?yàn)槿〉萌绱烁叩钠叫谢?,需要特殊的專門的并行化工作。
前文提到軟件并行化程度很低,所以速度較快的雙核處理器可輕松戰(zhàn)勝速度較慢的四核處理器,這種現(xiàn)象在網(wǎng)絡(luò)瀏覽器中特別明顯,如圖5 所示,為了與1.4GHz 的雙核處理器比較,我們?nèi)藶榈膶⑺暮颂幚砥鞯呐渲媒抵?.2GHz,從圖中可以看出,即便兩者頻率相差很小,低于20%,速度較快的雙核處理器始終優(yōu)于速度較慢的四核處理器。
我們對(duì)手機(jī)的其它重要應(yīng)用軟件進(jìn)行了類似的測(cè)試,例如,視頻游戲、程序啟動(dòng)時(shí)間和多媒體功能,每次都取得相似的結(jié)果:在頻率相同的條件下,CPU 從雙核進(jìn)化到四核,性能提升很小或根本沒有提升;當(dāng)速度相差15-20%時(shí),速度較快的雙核總能擊敗速度較慢的四核。
從正面看,智能手機(jī)搭載四核處理器應(yīng)當(dāng)會(huì)刺激軟件開發(fā)人員更有效地利用四核處理器,希望比PC 業(yè)在最近10 年做得更成功。智能手機(jī)的可用資源比PC 機(jī)的可用資源更敏感,即使移動(dòng)處理器無限接近PC 處理器,兩者之間還有很大差距。在軟件方面,在移動(dòng)移動(dòng)平臺(tái)上運(yùn)行級(jí)的應(yīng)用軟件還有很大的壓力,綜合以上,再加上更低的功耗限制和更激烈的市場(chǎng)競(jìng)爭(zhēng)環(huán)境,這些應(yīng)該給軟件開發(fā)人員足夠的動(dòng)機(jī),投入更多的資源提高多核處理器的利用率。
多媒體是一個(gè)令人關(guān)注的領(lǐng)域,這個(gè)領(lǐng)域通常對(duì)處理性能要求嚴(yán)格,多媒體軟件自然適合并行化。擴(kuò)增實(shí)境、計(jì)算攝影學(xué)、手勢(shì)識(shí)別等令人興奮的新應(yīng)用領(lǐng)域都將應(yīng)用并行處理技術(shù),因?yàn)檫@些功能的穩(wěn)定性不適合硬件加速。在這些應(yīng)用領(lǐng)域,多核處理器也有競(jìng)爭(zhēng)技術(shù),通用圖形處理器(GPGPU)同樣是可編程多核處理器解決方案,不同的是,GPGPU 將代碼映射到GPU 而不是CPU。目前,GPGPU 的編程難度比多核CPU 更大,但是GPU 硬件發(fā)展速度很快,編程模型和工具也取得很大進(jìn)展,因此,目前發(fā)展趨勢(shì)還不明朗。
異構(gòu)多核處理技術(shù)
移動(dòng)異構(gòu)多核處理器的設(shè)計(jì)原理是,使用高性能但功耗高的處理器執(zhí)行要求嚴(yán)格的應(yīng)用任務(wù),使用速度慢但高能效的處理器運(yùn)行要求不高的任務(wù)。目前市場(chǎng)上已經(jīng)有異構(gòu)四核處理器平臺(tái),例如,NVIDIA 的 Tegra 3 采用的Variable SMP [6]技術(shù),采用 ARM big.LITTLE[7]解決方案的異構(gòu)多核處理器預(yù)計(jì)不久就會(huì)上市。這個(gè)想法當(dāng)然很好,但是成功還需要一些時(shí)間;像比較雙核與四核處理器一樣,簡(jiǎn)單的解決方案只要可行,總是被優(yōu)先選用,特別是涉及復(fù)雜的軟件修改時(shí),簡(jiǎn)單的解決方案總是勝出。我們稍后將分析如何利用 FD-SOI 硅技術(shù)以更簡(jiǎn)單、更有效的方式達(dá)到同樣的效果。
異構(gòu)多核處理器使軟硬件都變得十分復(fù)雜,圖6 所示是ARM big.LITTLE 硬件解決方案。
硬件變復(fù)雜的主要原因是,處理器高速緩存只有保持一致性,才能用于智能手機(jī)操作系統(tǒng)假設(shè)的共享存儲(chǔ)器系統(tǒng),為此,AMR 在互聯(lián)線上引入了ARM ACE 接口技術(shù),但這卻提高了硬件復(fù)雜程度,導(dǎo)致緩存一致性流量增加。
在軟件方面,如果把架構(gòu)的全部潛力都發(fā)揮出來,系統(tǒng)異質(zhì)管理對(duì)于操作系統(tǒng)可能是一件非常復(fù)雜的任務(wù)。理論上,操作系統(tǒng)應(yīng)該有足夠高的智能,能夠區(qū)別要求條件不同的應(yīng)用任務(wù),將其分配給大處理器或小處理器執(zhí)行。為限制在昂貴的集群器間移植軟件,這些決策應(yīng)該相對(duì)穩(wěn)定。同時(shí),應(yīng)用軟件可能會(huì)突然改變行為,系統(tǒng)必須能夠迅速做出響應(yīng),這需要提高動(dòng)態(tài)電壓和頻率,而且在兩個(gè)集群器上單獨(dú)進(jìn)行,增加要考慮的功率狀態(tài)的數(shù)量。不僅今天的操作系統(tǒng)無法提供發(fā)揮多核處理器的全部潛能所需的先進(jìn)復(fù)雜技術(shù),而且錯(cuò)誤的決策在實(shí)際應(yīng)用中可能會(huì)適得其反,大量的軟件移植會(huì)引起用戶可見的系統(tǒng)故障,錯(cuò)誤決策引起性能降低或浪費(fèi)電能。
完美地支持異構(gòu)多核處理器需要多年的研發(fā)活動(dòng)和優(yōu)調(diào)技術(shù)。
為了限制系統(tǒng)做出錯(cuò)誤決策的風(fēng)險(xiǎn),研發(fā)人員開發(fā)出了中間解決方案,但是,該解決辦法需要以降低多核處理器潛能利用率為代價(jià)。例如,某個(gè)解決方案通過專屬方式使用大小 集群器,即不是并行處理,而是根據(jù)系統(tǒng)總體負(fù)荷從一個(gè)集群器切換至另一個(gè)集群器,以避免智能映射每個(gè)獨(dú)立軟件線程變得更加復(fù)雜,這種方法的缺點(diǎn)是沒有并行使用集群器,所以沒有發(fā)揮多核處理器的全部潛能。
另一個(gè)最新的方法是把大小處理器整合成一對(duì)固定的處理器,操作系統(tǒng)負(fù)責(zé)管理每個(gè)大小處理器,將其視為一個(gè)電壓/頻率工作點(diǎn)擴(kuò)展的單一抽象處理器,這種方法的缺點(diǎn)是在集群器之間頻繁移植軟件具有一定的風(fēng)險(xiǎn),抽象處理器的工作模式配對(duì)不是原生的,因?yàn)樵谟布?,工作點(diǎn)是由集群器實(shí)現(xiàn)的,而非大小處理器對(duì)。
總之,異構(gòu)多核處理器當(dāng)然是一項(xiàng)前景不錯(cuò)的技術(shù),特別是在移動(dòng)市場(chǎng)。然而,因?yàn)榧夹g(shù)復(fù)雜,特別是在軟件方面,這項(xiàng)技術(shù)需要經(jīng)過多年的研發(fā)和優(yōu)調(diào)才會(huì)發(fā)揮出全部的潛能。
評(píng)論