本页使用了标题或全文手工转换

big.LITTLE

维基百科,自由的百科全书
跳转至: 导航搜索

ARM big.LITTLEbig.LITTLE是由安謀國際科技公司(ARM)提出的異質運算多核心處理器組態結構配置。在這個組態,將比較耗電、但運算能力強的處理器核心組成的「big叢集」與低耗電、運算能力弱的處理器核心組成的「LITTLE叢集」結合在一起,這些處理器核心共用記憶體區段,並能夠在不同的CPU叢集之間線上實時分派、切換負載。[1]這個多核心處理器組態結構運用在行動計算上,從而能夠做出計算高效能,但是平均耗電低的多核心處理器,ARM的市場資料稱在某些運算操作中這個組態配置相比只使用與「big叢集」相同CPU核心數量的處理器可節省多達75%的功耗。[2]

本組態配置式在2011年10月ARM發表Cortex-A7時首次對外公布,Cortex-A15也能夠與這個架構相容。[3]2012年10月,ARM公司宣布Cortex-A53英语ARM Cortex-A53Cortex-A57英语ARM Cortex-A57ARMv8)也能與這個架構相容。[4]2014年2月ARM發表Cortex-A17英语ARM Cortex-A17,同一年在Computex 2013上ARM又發表了Cortex-A12英语ARM Cortex-A12,這兩種CPU核心也可用於big.LITTLE配置式中的「big叢集」上(「LITTLE叢集」由Cortex-A7擔當)。[5][6]

運行狀態遷移切換方式[编辑]

big.LITTLE中,節電的「LITTLE叢集」和高效能的「big叢集」之間有三種切換方式,均要求線上實時操作,除了電路設計以外還需要作業系統的配合得當(一些方式需要依賴作業系統的工作流排程實作)[7][8]

叢集切換[编辑]

big.Little叢集的切換

最早也是最簡單的big.LITTLE組態實作是這種大小核心叢集的切換,高效能CPU核心亦即大核心組成「big叢集」,而低功耗CPU核心亦即小核心,則是組成「LITTLE叢集」。作業系統的排程器在某一時間點上只能見到一組CPU叢集,整個處理器的負載高低變化時,系統會在不同叢集間轉移負載。當負載從一個CPU叢集轉移至另一CPU叢集時,相關的資料、執行狀態等被保存在這些叢集共用的二級快取(L2 Cache)當中,先前運作的CPU叢集斷電關閉然後加電壓開啟另一個叢集。叢集的資料轉移還需要使用快取一致性互聯(CCI)。這種big.LITTLE的第一個實作是三星Exynos 5410 Octa。[9]這種方式的一大缺點是CPU叢集間的切換延時較高,並且CPU核心的利用率較低。

內核內建切換器(CPU遷移)[编辑]

big.Little中以作業系統內核內建切換器實現CPU核心之間的切換

這種切換方式自叢集切換方式演變,主要區別在於每一個叢集對作業系統排程器來說都是可見的。在此種方式中,任務在CPU核心之間切換使用內核內建切換器(in-kernel switcher,IKS),晶片設計上是一個高效能CPU核心和一個低功耗CPU核心組成一個復合叢集,這一個叢集作為一個「虛擬的」核心來供作業系統操作,同一時間點上這一對CPU核心只有一顆在運作,高效能CPU核心僅在有高效能運算需求時才開啟,運算效能需求低時則是只開啟低功耗核心。當虛擬核心內負載在高低之間變化時,先開啟將要切換到的CPU核心,轉移執行狀態,轉移完成後關閉先前運行的CPU核心,由該CPU核心繼續執行先前的處理進程。切換工作需要通過cpufreq框架完成。Linux 3.11內核開始提供了big.LITTLE IKS完整實作所需內核元件模組。

蘋果公司A10 Fusion以及尚未公佈的A10X即採用此種big.LITTLE組態。不過,更複雜多樣的「大小核心」CPU核心分組,也是有可能的,一隻採用IKS方式的處理器上容許一個虛擬核心內有一顆以上的高效能CPU核心或低功耗CPU核心,或者是相同的CPU核心而分成主副CPU核心。輝達Tegra 3 SoC也採用類似IKS切換方式,但Tegra 3上採用的是相同的CPU核心,多個主CPU核心與一個副CPU核心的設計。

異質多處理機(全域任務排程)[编辑]

big.Little異質多處理

異質多處理(heterogeneous multi-processing,HMP)是big.LITTLE組態中最靈活也是效能最強勁的使用模式,在這種組態中,同一時間點上所有的物理CPU核心都是可用的並且可以同時全部開啟使用,也可以將高效能CPU核心全數關閉而只使用低功耗CPU核心。高優先級或者對運算速度吃重的執行緒可以被分派至高效能CPU核心上,而低優先級或對運算速度要求不高的執行緒(如背景任務),則是由低功耗CPU核心負責完成[10][11]

最早的實作是三星電子的Exynos Octa 5420/5422/5430。[12][13]而現時大部分實現big.LITTLE組態的ARM架構相容處理器,多採用這種切換方式。

任務排程[编辑]

參見[编辑]

參考資料[编辑]

外部連結[编辑]