借力大小核設(shè)計架構(gòu) 多核處理器強效又省電
大小核(big.LITTLE)晶片設(shè)計架構(gòu)正快速崛起。在安謀國際(ARM)全力推廣下,已有不少行動處理器開發(fā)商推出采用big.LITTLE架構(gòu)的新方案,期透過讓大小核心分別處理最適合的運算任務(wù),達(dá)到兼顧最佳效能與節(jié)能效果的目的,以獲得更多行動裝置制造商青睞。
本文引用地址:http://www.ex-cimer.com/article/198624.htm近年行動領(lǐng)域出現(xiàn)重大變革,智慧型手機已成為消費者聯(lián)網(wǎng)生活的主要工具,然而,這其中涉及各種高效能運算任務(wù)如高速網(wǎng)頁瀏覽、導(dǎo)航與游戲,以及語音通話、社群網(wǎng)路和電子郵件服務(wù)等效能需求較低的「持續(xù)運作,永遠(yuǎn)連線」后臺任務(wù)。
與此同時,平板裝置也正重新定義運算平臺,這些創(chuàng)新設(shè)計轉(zhuǎn)變均為消費者打造與內(nèi)容互動的全新方式,將原本只限于網(wǎng)路共享裝置(TetheredDevice)的功能導(dǎo)入行動領(lǐng)域,創(chuàng)造出真正的智慧型新世代運算。
因應(yīng)電子裝置的快速變革,未來半導(dǎo)體向來遵循的摩爾定律(Moore’sLaw)又將如何往下發(fā)展?過去,預(yù)測晶片的效能每隔18個月就會倍增,而現(xiàn)今電晶體的數(shù)量已從數(shù)千增加到數(shù)十億個,但若仔細(xì)觀察單一處理器,就會發(fā)現(xiàn)整體的效能幾乎呈現(xiàn)停滯不前的情況,這是因為系統(tǒng)能消耗的電量已達(dá)到高峰。
克服晶片效能與功耗挑戰(zhàn)big.LITTLE設(shè)計架構(gòu)嶄露頭角
對于未來任何一種處理器,處理速度都將受限于散熱問題而無法大幅躍進。任何裝置一旦達(dá)到熱障(ThermalBarrier)就會開始融化,如果是行動電話,便會使裝置溫度上升造成使用者不適。除物理層面的散熱問題外,能源效率也會變得相當(dāng)差,若調(diào)校處理器實作使其速度加快,則所需耗能便會倍數(shù)增長,而為增加最后這一丁點的效能,后續(xù)導(dǎo)熱設(shè)計的成本真的很高。
在過去,處理器核心面積倍增代表速度倍增,但是現(xiàn)在面積倍增,速度卻只增加幾個百分點,因此復(fù)雜度并不代表有效率,這就是單一核心系統(tǒng)有所限制的原因之一。如果無法加快單一核心速度,就必須增加獨立核心的數(shù)量,這也有助于每個核心去應(yīng)對其被分配到的任務(wù)需求,有鑒于此,安謀國際(ARM)遂于2012年提出big.LITTLE處理器架構(gòu)(圖1)。
?
圖1big.LITTLE系統(tǒng)結(jié)構(gòu)示意圖
big.LITTLE主要目的在于解決IC設(shè)計業(yè)界眼前最大挑戰(zhàn),也就是同時提升晶片效能,并延長裝置續(xù)航力,以延伸消費者「持續(xù)運作,永遠(yuǎn)連線」的行動體驗。該技術(shù)之所以能達(dá)成上述目標(biāo),系結(jié)合一個大(big)的高效能處理器核心與一個小(LITTLE)的低功耗處理器核心,然后根據(jù)效能需求,以無縫連接方式選擇合適的處理器。更重要的是,這種動態(tài)分配任務(wù)的動作,對于上層應(yīng)用軟體或中介軟體在處理器上的執(zhí)行絲毫沒有任何影響。
目前已應(yīng)用于市面上行動裝置的big.LITTLE設(shè)計,結(jié)合高效能Cortex-A15多處理器叢集(Cluster)與具有節(jié)能特色的Cortex-A7多處理器叢集。這些處理器在架構(gòu)上百分之百相容,且均支援40位元實體地址擴展LPAE、虛擬化擴充及NEON、VFP之類的運作單元,無須另外調(diào)整即可讓針對其中一種處理器類型所編譯的軟體應(yīng)用程式,順利于另一款處理器上運作。
因應(yīng)任務(wù)需求處理器核心無縫切換
big.LITTLE系統(tǒng)結(jié)構(gòu)就快取記憶體一致性(CacheCoherency)的維護而言,無論是同一處理器叢集中的快取記憶體,或是跨不同處理器叢集的快取記憶體,皆保持快取記憶體資料的一致性。這種跨叢集的一致性來自ARMCoreLink快取同調(diào)匯流架構(gòu)(CCI-400,也能提供ARMMali-T604之類的繪圖處理器(GPU)系統(tǒng)等元件的I/O一致性)。
兩種叢集的中央處理器,還可透過CoreLinkGIC-400之類的共用中斷控制器互傳訊號。其中,系統(tǒng)包含big.LITTLE切換和big.LITTLEMP(Multiple-Processor)兩種執(zhí)行模式,由于同一應(yīng)用程式可采用Cortex-A7或Cortex-A15而毋須調(diào)整,因此可將應(yīng)用程式的任務(wù)隨機對應(yīng)到正確的處理器上。
切換模式是讓不同處理器類型在切換時能進行軟體內(nèi)容的擷取與回覆。以CPU切換來說,叢集中每個CPU在另一個叢集中都有對應(yīng)的CPU,而軟體內(nèi)容則以CPU為單位,隨機在不同的叢集間切換;如果叢集中沒有正在運轉(zhuǎn)的CPU,便可關(guān)閉整個叢集及相關(guān)的L2快取。
同時,此模式也是動態(tài)電壓頻率調(diào)整(DVFS)等能源/效能管理技術(shù)的延伸。切換動作類似DVFS操作點的轉(zhuǎn)換,由于處理器上DVFS曲線的操作點,會隨負(fù)載變化不同而來回變動,當(dāng)既有的處理器(或叢集)已達(dá)到最高操作點,而軟體堆疊仍需更高效能,處理器切換動作就會發(fā)生,改由另一個處理器執(zhí)行工作,這個處理器的操作點也會隨著負(fù)載變化不同而來回變動(圖2)。當(dāng)效能需求不再,可換回之前的處理器(或叢集)。
?
圖2big.LITTLE切換模式DVFS曲線圖
顯而易見,一致性是達(dá)到加速切換所需時間的關(guān)鍵所在,因為它能讓已經(jīng)儲存在離埠處理器(OutboundProcessor)的狀態(tài),在入埠處理器(InboundProcessor)上窺探與回覆,而不必透過主記憶體的存取。
此外,由于離埠處理器的L2有快取一致性的功能,當(dāng)任務(wù)切換時,可以透過窺探資料值的方式,改善入埠處理器的快取暖機時間,此時L2快取記憶體仍然可以維持供電狀態(tài);不過,因為離埠處理器的L2快取無法提供新資料的快取配置,最后還是必須清除并關(guān)閉電源以節(jié)省耗電(圖3)。
?
圖3big.LITTLE運算任務(wù)切換流程圖
由于LITTLE處理器叢集中,每個處理器都將對應(yīng)一個big叢集的處理器,因此CPU乃成對配置(Cortex-A15及Cortex-A7處理器上都有CPU0,Cortex-A15及Cortex-A7處理器上都有CPU1,以此類推),不論何時每個配對中只有一個處理器可運轉(zhuǎn);而系統(tǒng)則會主動偵測各處理器負(fù)載,在高負(fù)載時將內(nèi)容執(zhí)行移到大核心(圖4)。當(dāng)負(fù)載從離埠核心移到入埠核心,便會關(guān)閉其中一個核心,這種模式讓big與LITTLE核心組合能隨時運轉(zhuǎn)。
?
圖4big.LITTLE系統(tǒng)CPU切換示意圖
[@B]big.LITTLEMP支援非對稱叢集運作[@C]big.LITTLEMP支援非對稱叢集運作
至于big.LITTLEMP模式則進一步將軟體堆疊分配到兩個叢集中各個處理器,如此一來,所有CPU皆可同時運作,將系統(tǒng)效能提升到最高點。
由于big.LITTLE系統(tǒng)可經(jīng)由CCI-400達(dá)到快取記憶體的一致性,因此有另一種模式能讓Cortex-A15及Cortex-A7處理器同時運作并同步執(zhí)行程式碼,稱為big.LITTLEMP,基本上可看作一種異質(zhì)性多工處理模型。這是big.LITTLE系統(tǒng)最先進且最具彈性的模式,能跨越兩個叢集調(diào)整單一執(zhí)行環(huán)境。
在這種使用模式下,若執(zhí)行緒有上述處理效能方面的需求,便可開啟Cortex-A15處理器核心并同時透過Cortex-A7處理器核心執(zhí)行任務(wù)。如果沒有這方面需求,則只須開啟Cortex-A7處理器,在實際應(yīng)用上,不同叢集的處理器核心不一定一致,而big.LITTLEMP比較容易支援非對稱的叢集。
改善低頻運算多余功耗big.LITTLE備受矚目
big.LITTLE技術(shù)之所以受到IC設(shè)計業(yè)者矚目,原因就是一般行動工作量對效能的需求各有不同,必須找到最合適的核心處理。圖5顯示的是目前搭載Cortex-A9的行動裝置中,兩個核心在DVFS、閑置與完全關(guān)機狀態(tài)下所花費時間的百分比,(a)處代表最低頻率操作點;(b)處則代表最高頻率操作點,介于兩者之間則屬中級頻率。
?
圖5低密度使用案例的DVFS駐留時間
除DVFS狀態(tài)之外,作業(yè)系統(tǒng)電源管理也會使中央處理器閑置,圖中(c)處代表閑置時間,當(dāng)CPU閑置的時間夠長,系統(tǒng)電源控制軟體將完全關(guān)閉其中一個核心以節(jié)省耗電,圖中(d)處便代表這部分。
從圖5可清楚看出應(yīng)用程式處理器在好幾種普通工作量下,都有相當(dāng)多時間處于低頻率狀態(tài),在big.LITTLE系統(tǒng)里,系統(tǒng)單晶片(SoC)可利用耗能較低的Cortex-A7核心,執(zhí)行最高操作頻率以外的所有工作。以相同方式分析更為密集的工作量,Cortex-A7處理器對應(yīng)出低于1GHz頻率的機會仍然很大。
事實上,自2011年起,使用者層級軟體已能在big.LITTLE排程上運轉(zhuǎn),不過,那只是在處理器核心與互聯(lián)的軟體模型環(huán)境上發(fā)展。為完整評估big.LITTLE系統(tǒng)效能、功耗及調(diào)校是否合宜,還須打造一個能讓使用者軟體全速運轉(zhuǎn)的測試晶片。
ARM測試晶片早在2012年初夏即由晶圓代工廠完成,并在短短幾周內(nèi)開始搭配參考設(shè)計板運轉(zhuǎn),支援完整版的Linux系統(tǒng)及Android4.0作業(yè)系統(tǒng)。這個測試晶片包含一個雙核心Cortex-A15叢集、一個三核心Cortex-A7叢集,以及CCI-400快取一致匯流排架構(gòu)。會影響部分使用者評效基準(zhǔn)的繪圖處理器并不包括在內(nèi),但平臺仍可支援Linux、Android作業(yè)系統(tǒng)與效能測試軟體。
測試晶片的Cortex-A15最高頻率達(dá)1.2GHz,Cortex-A7則為1GHz。效能評析結(jié)果顯示,雖然測試晶片上的記憶體系統(tǒng)效能不如big.LITTLESoC量產(chǎn)后的預(yù)測水準(zhǔn),但Cortex-A15與Cortex-A7中央處理器的效能仍落在預(yù)期范圍內(nèi)。
用來測試big.LITTLE效能的任務(wù)量,主要基于Android4.0系統(tǒng),透過網(wǎng)頁進行網(wǎng)路瀏覽器效能循環(huán),背景則有音效播放。在此實例中均以相當(dāng)密集的工作量搭配對性能需求不高的背景活動,網(wǎng)路瀏覽器每2秒便進行網(wǎng)頁循環(huán),每頁卷動達(dá)500畫素,因此對系統(tǒng)效能需求相對較高。
這組結(jié)論屬于較早期的測試結(jié)果,用來測試初版big.LITTLEMP修正程式組,將Linux排程程式從一個完整而平衡的排程模式調(diào)整成big.LITTLE模式。預(yù)期未來在更多業(yè)者投入軟體修正后,效能與能耗將更進一步改善,而其他可調(diào)校的部分也將有相關(guān)解決方案被提出。
另外,測試晶片缺少GPU,使CPU的負(fù)載高過搭載GPU系統(tǒng)在卸載狀態(tài)下的負(fù)載水準(zhǔn),而在CPU負(fù)載較低的狀況下,可能會較常使用LITTLE核心,進而達(dá)到節(jié)能目的。它包含一套基本的電壓及頻率操作點,但沒有對單一處理器核心做獨立的電源開關(guān)設(shè)計,因此big.LITTLE系統(tǒng)單晶片量產(chǎn)后測試結(jié)果可望提升。舉例來說,后臺任務(wù)效能便可節(jié)省超過70%能耗。
IC設(shè)計業(yè)者正全力投入big.LITTLE開發(fā),然而,各界最常見的疑問就是應(yīng)選擇哪一種軟體模式?目前主要是在CPU切換與big.LITTLEMP之間擇一,而兩種方式各有正反意見。在CPU切換方面,由于big及LITTLE核心處于搭配成對的狀態(tài),因此對稱式的拓?fù)淠茼槙尺\作;而big及LITTLE核心數(shù)量不同的非對稱式拓?fù)鋭t須額外的運轉(zhuǎn)。
big.LITTLEMP模式效果更出色
由于Cortex-A7中央處理器核心體積較小,因此可使用四個LITTLE核心加上一到兩個big核心,這種作法可能會具有吸引力。從正面角度來看,中央處理器切換讓電源及效能的調(diào)校更為容易,可重復(fù)利用既有的作業(yè)系統(tǒng)電源管理程式碼,代表實作將有多年的研發(fā)及測試結(jié)果做為支援。加上不必調(diào)整核心排程程式,范圍比執(zhí)行big.LITTLEMP模式更為簡化,而軟體模式也能日趨成熟。
整體而言,CPU切換是一種極佳解決方案,相關(guān)IC設(shè)計業(yè)者亦正研擬升級至big.LITTLEMP模式,以提供更多元的處理器運算解決方案。big.LITTLEMP具有多項技術(shù)優(yōu)勢,雖技術(shù)尚未完全成熟,但目前的測試結(jié)果已相當(dāng)不錯。由于此模式也支援非對稱式拓?fù)?,故毋須調(diào)整軟體即可完全利用系統(tǒng)中所有核心,對提升晶片效能并降低功耗更有利。
舉例來說,big.LITTLEMP能同步利用所有核心在短時間內(nèi)達(dá)到最高效能,或?qū)ig與LITTLE核心上的DVFS設(shè)定與排程程式設(shè)定調(diào)成不同狀態(tài),以節(jié)省更多電力。不過彈性提升仍有其代價,晶片商與系統(tǒng)業(yè)者均須增加調(diào)校動作,才能從big.LITTLEMP平臺獲取完整的效能及能耗優(yōu)勢。
這與過去一直為主流,由晶片和晶圓代工廠將作業(yè)系統(tǒng)能源管理設(shè)定,以及DVFS參數(shù)資料,依裝置需求轉(zhuǎn)化為行動系統(tǒng)單晶片平臺的作法并無太大差異。big.LITTLEMP模式將切換模式延伸并納入新的參數(shù)資料,不僅更為節(jié)能,更能為經(jīng)過效能優(yōu)化的big核心增加系統(tǒng)回應(yīng)度。
big.LITTLEMP模式正快速成熟,已有許多晶片商積極投入開發(fā),產(chǎn)品可望在2013下半年大量出爐。由于big.LITTLEMP模式并不須大幅改變硬體,因此晶圓廠可部署支援CPU切換模式的平臺,進行核心更新后,再升級到big.LITTLEMP模式,或直接建置現(xiàn)有完整的big.LITTLE平臺。
目前big.LITTLEMP相關(guān)軟體已開始運轉(zhuǎn),并開始在晶片商研發(fā)平臺端進行系統(tǒng)測試,ARM與合作夥伴亦正積極進行軟體強化,針對各種使用實例將系統(tǒng)效能調(diào)校至最佳效果,包括排程程式的負(fù)載平衡政策、上下切換點以及執(zhí)行緒優(yōu)先秩序等。此外,ARM也在開放原始碼平臺每月定期推出big.LITTLEMP修正程式組,內(nèi)含測試晶片平臺、測試結(jié)果以及說明文件的最新的調(diào)校結(jié)果。Linaro也已推出修正程式組和CPU切換軟體,并開始供應(yīng)Linaro聯(lián)盟成員。
隨著big.LITTLE技術(shù)演進,ARM近期更發(fā)布兩款具有big.LITTLE處理性能的新型CPU核心--Cortex-A57及Cortex-A53處理器。Cortex-A57是經(jīng)過效能優(yōu)化的big核心,每時脈周期的效能較Cortex-A15增加25%,頻率效能與能源效率也都高于Cortex-A15處理器。Cortex-A53則為LITTLE核心,每時脈周期效能增加40%,能源效率則等同于Cortex-A7。
布局下世代big.LITTLEARM加速推出新核心
這些新核心在架構(gòu)上都完全相同,并支援ARMv8架構(gòu),因此能導(dǎo)入進階版的NEON技術(shù)與浮點功能、加密加速并支援64位元。除AMBA4ACE,兩種核心也都支援新世代快取一致匯流架構(gòu),且跟現(xiàn)有ARMv7架構(gòu)的CPU核心一樣,能在AArch32模式下執(zhí)行既有程式碼。支援64位元及額外一般用途暫存器的應(yīng)用方式洗煉而有效率,且能耗增加不多。
微架構(gòu)也經(jīng)過強化,以增加各核心在每個指令時脈周期中的傳輸量。這些新款核心在經(jīng)過軟體細(xì)部升級并支援64位元定址模式后,將會跟Cortex-A15及Cortex-A7處理器一樣支援big.LITTLE技術(shù)。
兩種核心將在2013年提供給合作晶圓廠,預(yù)計2014年開始量產(chǎn)。
未來,big.LITTLE設(shè)計將為行動裝置系統(tǒng)功耗及效能控制點的極度寬動態(tài)(WideDynamicRange)帶來全新的可能性,這是單一類型處理器核心所無法達(dá)到的。目前市面上裝置的工作量往往混雜程度高低不同需求的執(zhí)行緒,這種寬動態(tài)便可為其提供完美的執(zhí)行環(huán)境,提供一個在新世代行動平臺下,提升裝置運算效能并延長續(xù)航力的大好機會。
評論