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