大小核(big.LITTLE)芯片設計架構正快速崛起。在ARM全力推廣下,已有不少移動處理器開發商推出采用big.LITTLE架構的新方案,期透過讓大小核心分別處理最適合的運算任務,達到兼顧最佳效能與節能效果的目的,以獲得更多移動裝置制造商青睞。
近年移動領域出現重大變革,智慧型手機已成為消費者聯網生活的主要工具,然而,這其中涉及各種高效能運算任務如高速網頁瀏覽、導航與游戲,以及語音通話、社群網路和電子郵件服務等效能需求較低的“持續運作,永遠連線”后臺任務。
與此同時,平板裝置也正重新定義運算平臺,這些創新設計轉變均為消費者打造與內容互動的全新方式,將原本只限于網路共享裝置(Tethered Device)的功能導入移動領域,創造出真正的智慧型新世代運算。
因應電子裝置的快速變革,未來半導體向來遵循的摩爾定律(Moore‘s Law)又將如何往下發展?過去,預測芯片的效能每隔18個月就會倍增,而現今電晶體的數量已從數千增加到數十億個,但若仔細觀察單一處理器,就會發現整體的效能幾乎呈現停滯不前的情況,這是因為系統能消耗的電量已達到高峰。
克服芯片效能與功耗挑戰big.LITTLE設計架構嶄露頭角
對于未來任何一種處理器,處理速度都將受限于散熱問題而無法大幅躍進。任何裝置一旦達到熱障(Thermal Barrier)就會開始融化,如果是移動電話,便會使裝置溫度上升造成使用者不適。除物理層面的散熱問題外,能源效率也會變得相當差,若調校處理器實作使其速度加快,則所需耗能便會倍數增長,而為增加最后這一丁點的效能,后續導熱設計的成本真的很高。
在過去,處理器核心面積倍增代表速度倍增,但是現在面積倍增,速度卻只增加幾個百分點,因此復雜度并不代表有效率,這就是單一核心系統有所限制的原因之一。如果無法加快單一核心速度,就必須增加獨立核心的數量,這也有助于每個核心去應對其被分配到的任務需求,有鑒于此,ARM遂于2012年提出big.LITTLE處理器架構(圖1)。
圖1 big.LITTLE系統結構示意圖
big.LITTLE主要目的在于解決IC設計業界眼前最大挑戰,也就是同時提升芯片效能,并延長裝置續航力,以延伸消費者“持續運作,永遠連線”的移動體驗。該技術之所以能達成上述目標,系結合一個大(big)的高效能處理器核心與一個?。↙ITTLE)的低功耗處理器核心,然后根據效能需求,以無縫連接方式選擇合適的處理器。更重要的是,這種動態分配任務的動作,對于上層應用軟體或中介軟體在處理器上的執行絲毫沒有任何影響。
目前已應用于市面上移動裝置的big.LITTLE設計,結合高效能Cortex-A15多處理器叢集(Cluster)與具有節能特色的Cortex-A7多處理器叢集。這些處理器在架構上百分之百相容,且均支援40位元實體地址擴展LPAE、虛擬化擴充及NEON、VFP之類的運作單元,無須另外調整即可讓針對其中一種處理器類型所編譯的軟體應用程式,順利于另一款處理器上運作。
因應任務需求處理器核心無縫切換
big.LITTLE系統結構就高速緩存一致性(Cache Coherency)的維護而言,無論是同一處理器叢集中的高速緩存,或是跨不同處理器叢集的高速緩存,皆保持高速緩存資料的一致性。這種跨叢集的一致性來自ARM CoreLink快取同調匯流架構(CCI-400,也能提供ARM Mali-T604之類的繪圖處理器(GPU)系統等元件的I/O一致性)。
兩種叢集的中央處理器,還可透過CoreLink GIC-400之類的共用中斷控制器互傳訊號。其中,系統包含big.LITTLE切換和big.LITTLE MP(Multiple-Processor)兩種執行模式,由于同一應用程式可采用Cortex-A7或Cortex-A15而毋須調整,因此可將應用程式的任務隨機對應到正確的處理器上。
切換模式是讓不同處理器類型在切換時能進行軟體內容的擷取與回覆。以CPU切換來說,叢集中每個CPU在另一個叢集中都有對應的CPU,而軟體內容則以CPU為單位,隨機在不同的叢集間切換;如果叢集中沒有正在運轉的CPU,便可關閉整個叢集及相關的L2快取。
同時,此模式也是動態電壓頻率調整(DVFS)等能源/效能管理技術的延伸。切換動作類似DVFS操作點的轉換,由于處理器上DVFS曲線的操作點,會隨負載變化不同而來回變動,當既有的處理器(或叢集)已達到最高操作點,而軟體堆疊仍需更高效能,處理器切換動作就會發生,改由另一個處理器執行工作,這個處理器的操作點也會隨著負載變化不同而來回變動(圖2)。當效能需求不再,可換回之前的處理器(或叢集)。
圖2 big.LITTLE切換模式DVFS曲線圖
顯而易見,一致性是達到加速切換所需時間的關鍵所在,因為它能讓已經儲存在離埠處理器(Outbound Processor)的狀態,在入埠處理器(Inbound Processor)上窺探與回覆,而不必透過主記憶體的存取。
此外,由于離埠處理器的L2有快取一致性的功能,當任務切換時,可以透過窺探資料值的方式,改善入埠處理器的快取暖機時間,此時L2高速緩存仍然可以維持供電狀態;不過,因為離埠處理器的L2快取無法提供新資料的快取配置,最后還是必須清除并關閉電源以節省耗電(圖3)。
圖3 big.LITTLE運算任務切換流程圖
由于LITTLE處理器叢集中,每個處理器都將對應一個big叢集的處理器,因此CPU乃成對配置(Cortex-A15及Cortex-A7處理器上都有CPU0,Cortex-A15及Cortex-A7處理器上都有CPU1,以此類推),不論何時每個配對中只有一個處理器可運轉;而系統則會主動偵測各處理器負載,在高負載時將內容執行移到大核心(圖4)。當負載從離埠核心移到入埠核心,便會關閉其中一個核心,這種模式讓big與LITTLE核心組合能隨時運轉。
圖4 big.LITTLE系統CPU切換示意圖
[@B]big.LITTLE MP支援非對稱叢集運作[@C]big.LITTLE MP支援非對稱叢集運作
至于big.LITTLE MP模式則進一步將軟體堆疊分配到兩個叢集中各個處理器,如此一來,所有CPU皆可同時運作,將系統效能提升到最高點。
由于big.LITTLE系統可經由CCI-400達到高速緩存的一致性,因此有另一種模式能讓Cortex-A15及Cortex-A7處理器同時運作并同步執行程式碼,稱為big.LITTLE MP,基本上可看作一種異質性多工處理模型。這是big.LITTLE系統最先進且最具彈性的模式,能跨越兩個叢集調整單一執行環境。
評論