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