跳至內容

Big.LITTLE

出自Taiwan Tongues 台語維基
這是此頁批准,以及是最近的修訂。

ARM big . LITTLE抑是big . LITTLE是由安謀國際科技公司(ARM)提出的異構運算架構。佇這个架構內底,較食電但是運算能力強的處理器核心組成的「big 密集」佮低了電、運算有能力弱的處理器核心組成的「LITTLE 密集」結合,遮的處理器核心共享記憶體區段,並會使佇無仝款的 CPU 密集之間線上實時分派、切換負載。這个架構運用咧行動計算上,意圖是做出計算高效能啊若平均了電低的偌核心處理器。ARM 的行銷材料稱,佇某寡運算操作中該架構佮干焦使用佮「big 密集」的相仝 CPU 核心數量的處理器比起來,會當省偌百分之七十五的功磨。通常,ARM big . LITTLE 架構用佇咧建立誠濟處理器 SoC(MPSoC)。

本組態組態式佇二空一一年十月 ARM 發表 Cortex-A 七个時陣頭一遍對外公布,Cortex-A 十五嘛會當佮這个骨架相容。二空一二年十月,ARM 公司宣佈講 Cortex-A 五十三佮 Cortex-A 五十七(ARMv 八)嘛有法度佮這个架構相容。二空一四年二月 ARM 發表 Cortex-A 十七,仝一年佇咧 Computex 兩千空一十三上 ARM 閣發表矣 Cortex-A 十二,這兩種 CPU 核心嘛可以 big . LITTLE 組態式內底的「big 密集」上(「 LITTLE 密集」由 Cortex-A 七擔當)。

二空一七年五月,ARM 發表 DynamIQ 取代 big . LITTLE。佮 big . LITTLE 相比並,DynamIQ 允准更加靈活的 CPU 核心組態佮閣較大規模的密集設計(彼每一个 CPU 密密會當有八粒 CPU 核心)、 密集數量閣較濟(一箍 CPU 上大會當擴充到三十二欉)、 閣較精確的電源控制(逐个核心內有閣較濟的時鐘門控佮電壓控制)猶閣較緊的 L 二緊取存取操作。毋過 DynamIQ 干焦適用佇咧 Cortex-A 七十五、Cortex-A 五十五佮後壁捒出來的 ARM CPU 核心。

運行狀態遷移切換方式

big . LITTLE 中,電節電的「LITTLE 密集」佮高效能的「big 密集」之間有三種切換方式,攏要求線頂實時愛操作,除了電路設計以外閣需要作業系統的配合甲當(一寡方式需要依賴作業系統的工課流排程實際)

密集切換

上早嘛是上簡單的 big . LITTLE 組態實作是這種大細核心密集的切換,高效能 CPU 核心亦就大核心組成「big 密集」,低功了 CPU 核心亦即小核心,著是組成「LITTLE 密集」。 作業系統的排程器佇咧某一時間點頂懸干焦會當看著一組 CPU 密集,規个處理器的負載懸低變化的時陣,系統會佇無仝密集間轉移負載。做負責載對一个 CPU 轉予人徙去另外一个 CPU 密集的時陣,有關係的、執行的狀態等等予人儉佇遮的樹仔共享的二級緊取(L 二 Cache)當中,阮進前運作的 CPU 密集斷電關起來然後加電壓開啟另外一个密集。密集的資料轉移猶需要使用緊取一致性互聯(CCI)。 這種 big . LITTLE 的第一个實作是三星 Exynos 五千四百十一 Octa。這種方式的一大缺點是 CPU 密集間的切換延較懸,並且 CPU 核心的利用率較低。

核心內底建切換器(CPU 搬徙)

這種切換方式自欉集切換方式演變,主要佮每一个密集對作業系統的排程器來講攏是可見的。佇這種方式內底,任務佇咧 CPU 核心之間切換使用核心內建切換器(in-kernel switcher,IKS), 晶片設計上是一个高效能 CPU 核心佮一个低功了 CPU 核心組成一个復合叢集,這个做一个模集做一个「虛擬的」核心來供作業系統操作,仝一个時陣點上這一對 CPU 核心干焦一粒咧運作,高效能 CPU 核心干焦佇有高效能運算需求的時才開啟,運算效能需求低時則是干焦開啟低功磨核心。當虛擬核心內負載佇咧懸低之間變化的時陣,先開啟將愛切換著的 CPU 核心,轉移執行狀態,轉移完成了後關起來進前運行的 CPU 核心,由該 CPU 核心繼續執行進前的處理進程。切換頭路需要通過 cpufreq 框殼完成。Linux 三方一一核心開始提供矣 big . LITTLE IKS 完整實作所需要核心元件模組。

蘋果公司的 A 十 Fusion 以及 A 十 X Fusion 就採用這款 big . LITTLE 組態。猶毋過,閣較複雜多樣的「大細核心」CPU 核心分組,嘛是有可能的,一隻採用 IKS 方式的處理器上容許一个虛擬核心內有一粒以上的高效能 CPU 核心或者是低功了 CPU 核心,或者是仝款的 CPU 核心來分做主副 CPU 核心。輝達的 Tegra 三 SoC 嘛採用類似 IKS 切換方式,猶毋過 Tegra 三方上採用的是有仝款的 CPU 核心,濟个主 CPU 核心佮一个副 CPU 核心的設計。

異構多處理機(全域任務排程)

異構多處理(heterogeneous multi-processing,HMP)是 big . LITTLE 組態中上靈活也是效能上強勁的使用模式,佇這種組態內底,仝一个時陣點上所有的物理 CPU 核心攏是會當用的並且會當同時全部開啟使用,嘛會當共高效能 CPU 核心全部攏關起來干焦使用低功了 CPU 核心。高優先級或者是對運算速度食重的執行緒會當予分派至高效能 CPU 核心上,低優先級或者是對運算速度要求無懸的執行緒(背景的任務), 是由低功了 CPU 核心負責完成上早的實作是三星電子的 Exynos Octa 五千四百二十二分之五千四百二十 / 五千四百三十。毋過現時大部份實現 big . LITTLE 組態的 ARM 架構相容處理器,加採用這種切換方式。迫於行動裝置嘿 CPU 核心規模的控制,蘋果公司的 Apple A 十一嘛是採用這種排程方式。

全域任務排程的優勢:

  • 嘿各位 CPU 核心有閣較幼的工課量控制。因為作業系統排程器直接對逐个 CPU 核心分配佮搬移任務、降低作業系統核心態的額外開銷而令儉電效果佮效能的相應得著提升
  • 相比佇核心內建切換器(IKS)依賴 cpufreq 框殼來實現,直接使用任務排程器來實現 CPU 核心的切換來了緊,而且閣較會實現
  • 閣較扭掠的 CPU 密集組合(像講是兩个 Cortex-A 十五佮四个 Cortex A 七組成的 SoC CPU 部份)
  • 固定干焦會當使用虛擬核心數量的 CPU 核心數,若有需要,會當實現 SoC 內所有的 CPU 核心做伙運作以上大限度發揮 SoC 的運算效能

任務排程

對大細 CPU 核心(密集)成對組態的,𪜶之間的切換過程對作業系統來講是若透明的,作業系統使用現成的動態電壓佮時鐘訊號來調整(DVFS)功能來實現。作業系統核心現成的 DVFS 支援(像講 Linux 核心的 ` cpufreq `)將根據負載輕重,對預先設定的一个時鐘訊號-核心電壓參數組態表中以合適的參數設定 CPU 的電壓佮時脈,佮這進前干焦需要調整核心電壓、時脈的 CPU 仝款,毋過,較低的參數設定愛開啟節電(細)CPU 核心,抑若較懸的參數設定是開啟高效能(大)CPU 核心。

另外一款相對的,著是所有的 CPU 核心攏呈現予作業系統核心排程器,排程器會依據請求決定由佗一个核心執行佗一个行程抑是執行緒。這種排程方式需要非成對組態的 CPU 核心(密集), 猶毋過成對組態的 CPU 核心(密集)也有可能允准使用。毋過這款排程方式閣較考驗作業系統核心排程器的調校功力(多核心處理器的效能最佳化), 上無當前大多數的硬體中,核心處理器的結構使用的是對稱真濟處理器系統,big . LITTLE 組態其實也無例外。

參見

  • ARMv 七處理器核心列表
  • ARMv 八處理器核心列表
  • Nicolas Pitre . Linux support for ARM big . LITTLE . LWN . net . 二千空一十二孵二孵十五 [二千空一十二孵十八] .(原始內容存檔佇兩千空一十二鋪十七).
  • Paul McKenney . A big . LITTLE scheduler update . LWN . net . 二千空一十二孵六孵十二 [二千空一十二孵十八] .(原始內容存檔佇兩千空一十二分十二十二).
  • Jake Edge . KS 二千空一十二 : ARM : A big . LITTLE update . LWN . net . 二千空一十二孵九九五 [二千空一十二孵十八] .(原始內容存檔佇兩千空一十二分十一孵二).
  • Jon Stokes . ARM's new Cortex A 七 is tailor-made for Android superphones . Ars Technica . 二千空一十一孵十二十 [二千空一十二孵十五三十一] .(原始內容存檔佇咧二千空一十二鋪十二鋪三).
  • Andrew Cunningham . ARM goes 六十四-bit with new Cortex-A 五十三 and Cortex-A 五十七 designs . Ars Technica . 二千空一十二孵十三十 [二千空一十二孵十五三十一] .(原始內容存檔佇兩千空一十二分十一孵一).

參考資料

外部連結

  • big . LITTLE Processing
  • Big . LITTLE Processing with ARM CortexTM-A 十五 & Cortex-A 七 ( PDF )