Loading AI tools
来自维基百科,自由的百科全书
ARM big.LITTLE或big.LITTLE是由安謀國際科技公司(ARM)提出的異構運算架構。在該架構中,比較耗電但運算能力強的處理器核心組成的「big叢集」與低耗電、運算能力弱的處理器核心組成的「LITTLE叢集」結合,這些處理器核心共用記憶體區段,並能夠在不同的CPU叢集之間線上實時分派、切換負載。[1]這個架構運用在行動計算上,意圖是做出計算高效能而平均耗電低的多核心處理器。ARM的行銷材料稱,在某些運算操作中該架構與只使用與「big叢集」的相同CPU核心數量的處理器相比,可節省多達75%的功耗。[2]通常,ARM big.LITTLE架構用於建立多處理器SoC(MPSoC)。
本組態組態式在2011年10月ARM發表Cortex-A7時首次對外公佈,Cortex-A15也能夠與這個架構相容。[3]2012年10月,ARM公司宣佈Cortex-A53與Cortex-A57(ARMv8)也能與這個架構相容。[4]2014年2月ARM發表Cortex-A17,同一年在Computex 2013上ARM又發表了Cortex-A12,這兩種CPU核心也可用於big.LITTLE組態式中的「big叢集」上(「LITTLE叢集」由Cortex-A7擔當)。[5][6]
2017年5月,ARM發表DynamIQ取代big.LITTLE。[7]與big.LITTLE相比,DynamIQ允許更為靈活的CPU核心組態和更大規模的叢集設計(每個CPU叢集可以有八顆CPU核心)、叢集數量更多(一塊CPU上最大可擴充至32個叢集)、更精確的電源控制(每個核心內有更多的時鐘門控和電壓控制)以及更快速的L2快取存取操作。然而DynamIQ僅適用於Cortex-A75、Cortex-A55及往後推出的ARM CPU核心。
big.LITTLE中,節電的「LITTLE叢集」和高效能的「big叢集」之間有三種切換方式,均要求線上實時操作,除了電路設計以外還需要作業系統的配合得當(一些方式需要依賴作業系統的工作流排程實作)[8][9]
最早也是最簡單的big.LITTLE組態實作是這種大小核心叢集的切換,高效能CPU核心亦即大核心組成「big叢集」,而低功耗CPU核心亦即小核心,則是組成「LITTLE叢集」。作業系統的排程器在某一時間點上只能見到一組CPU叢集,整個處理器的負載高低變化時,系統會在不同叢集間轉移負載。當負載從一個CPU叢集轉移至另一CPU叢集時,相關的資料、執行狀態等被儲存在這些叢集共用的二級快取(L2 Cache)當中,先前運作的CPU叢集斷電關閉然後加電壓開啟另一個叢集。叢集的資料轉移還需要使用快取一致性互聯(CCI)。這種big.LITTLE的第一個實作是三星Exynos 5410 Octa。[10]這種方式的一大缺點是CPU叢集間的切換延時較高,並且CPU核心的利用率較低。
這種切換方式自叢集切換方式演變,主要區別在於每一個叢集對作業系統排程器來說都是可見的。在此種方式中,任務在CPU核心之間切換使用內核內建切換器(in-kernel switcher,IKS),晶片設計上是一個高效能CPU核心和一個低功耗CPU核心組成一個復合叢集,這一個叢集作為一個「虛擬的」核心來供作業系統操作,同一時間點上這一對CPU核心只有一顆在運作,高效能CPU核心僅在有高效能運算需求時才開啟,運算效能需求低時則是只開啟低功耗核心。當虛擬核心內負載在高低之間變化時,先開啟將要切換到的CPU核心,轉移執行狀態,轉移完成後關閉先前運行的CPU核心,由該CPU核心繼續執行先前的處理進程。切換工作需要通過cpufreq框架完成。Linux 3.11內核開始提供了big.LITTLE IKS完整實作所需內核元件模組。
蘋果公司的A10 Fusion以及A10X Fusion即採用此種big.LITTLE組態。不過,更複雜多樣的「大小核心」CPU核心分組,也是有可能的,一隻採用IKS方式的處理器上容許一個虛擬核心內有一顆以上的高效能CPU核心或低功耗CPU核心,或者是相同的CPU核心而分成主副CPU核心。輝達的Tegra 3 SoC也採用類似IKS切換方式,但Tegra 3上採用的是相同的CPU核心,多個主CPU核心與一個副CPU核心的設計。
異構多處理(heterogeneous multi-processing,HMP)是big.LITTLE組態中最靈活也是效能最強勁的使用模式,在這種組態中,同一時間點上所有的物理CPU核心都是可用的並且可以同時全部開啟使用,也可以將高效能CPU核心全數關閉而只使用低功耗CPU核心。高優先級或者對運算速度吃重的線程可以被分派至高效能CPU核心上,而低優先級或對運算速度要求不高的線程(如背景任務),則是由低功耗CPU核心負責完成[11][12]
最早的實作是三星電子的Exynos Octa 5420/5422/5430。[13][14]而現時大部分實現big.LITTLE組態的ARM架構相容處理器,多採用這種切換方式。迫於流動裝置對CPU核心規模的控制,蘋果公司的Apple A11也採用此種排程方式。[15]
全域任務排程的優勢:
對於大小CPU核心(叢集)成對組態的,它們之間的切換過程對作業系統來說是透明的,作業系統使用現成的動態電壓與時鐘訊號調整(DVFS)功能來實現。作業系統核心現成的DVFS支援(像是Linux核心的cpufreq
)將根據負載輕重,從預先設置的一個時鐘訊號-核心電壓參數組態表中以合適的參數設置CPU的電壓與時脈,和此前僅需調整核心電壓、時脈的CPU一樣,然而,較低的參數設置則會開啟節電(小)CPU核心,而較高的參數設置則是開啟高效能(大)CPU核心。
另一種相對的,則是所有的CPU核心都呈現給作業系統內核排程器,排程器將依據請求決定由哪個核心執行哪個行程或線程。這種排程方式需要非成對組態的CPU核心(叢集),不過成對組態的CPU核心(叢集)也可能允許使用。不過這種排程方式更考驗作業系統內核排程器的調校功力(多核心處理器的效能最佳化),至少當前大多數的硬件中,多核心處理器的結構使用的是對稱多處理器系統,big.LITTLE組態其實也不例外。
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.