ARM ビッグ。リトル

ARM big.LITTLEは、 Arm Holdingsが開発したヘテロジニアスコンピューティングアーキテクチャであり、比較的省電力だが低速なプロセッサコア(LITTLE)と、比較的高性能だが消費電力の大きいプロセッサコア(big)を組み合わせています。その目的は、動的なコンピューティングニーズに適応し、クロックスケーリングのみよりも消費電力を抑えたマルチコアプロセッサを開発することです。ARMのマーケティング資料では、一部のアクティビティにおいて最大75%の電力消費削減を約束しています。[ 1 ] ARM big.LITTLEアーキテクチャは、マルチプロセッサシステムオンチップ(MPSoC)の開発に最もよく使用されます。
2011年10月、big.LITTLEはCortex-A7とともに発表されました。Cortex -A7はCortex-A15とアーキテクチャ的に互換性があるように設計されています。[ 2 ] 2012年10月、ARMはCortex-A53とCortex-A57(ARMv8-A)コアを発表しました。これらも相互互換性があり、big.LITTLEチップでの使用が可能です。[ 3 ] ARMはその後、Computex 2013でCortex-A12を発表し、続いて2014年2月にCortex-A17を発表しました。Cortex-A12とCortex-A17はどちらも、big.LITTLE構成でCortex-A7と組み合わせることもできます。[ 4 ] [ 5 ]
利点
CMOSロジックの特定のライブラリでは、ロジックの1秒あたりのスイッチング回数が増えるとアクティブ電力が増加し、トランジスタ数が増えるとリーク電力が増加します。非常に高速なアウトオブオーダーCPUが非常に低速でアイドル状態にある場合、リーク電力がはるかに少ない(トランジスタ数が少ない)CPUで同じ処理を実行できます。例えば、メモリキャッシュを小さくしたり、アウトオブオーダー実行を排除するなど、よりシンプルなマイクロアーキテクチャを採用したりすることが考えられます。big.LITTLEは、同一システムで電力効率と速度の両方を最適化する方法です。
デメリット
実際には、big.LITTLEシステムは驚くほど柔軟性に欠ける場合があります。一つの問題は、ICが提供する電源ドメインとクロックドメインの数と種類です。これらは、オペレーティングシステムが提供する標準的な電源管理機能と一致しない場合があります。もう一つは、CPUがもはや同等の能力を持たなくなり、適切なソフトウェアタスクを適切なCPUに割り当てることがより困難になっていることです。これらの問題のほとんどは、電子機器とソフトウェアの柔軟性を高めることで解決されています。
実行状態の移行
big.LITTLE設計では、カーネルに実装されたスケジューラに応じて、異なるプロセッサコアを配置する3つの方法[ 6 ]があります。 [ 7 ]
クラスター化されたスイッチング

クラスターモデルアプローチは、プロセッサを「ビッグ」コアまたは「リトル」コアからなる同一サイズのクラスターに分割する、最初の、そして最もシンプルな実装方法です。オペレーティングシステムのスケジューラは、一度に1つのクラスターしか認識できません。プロセッサ全体の負荷が低から高に変化すると、システムはもう一方のクラスターに移行します。その後、関連するすべてのデータは共通のL2キャッシュを通過し、アクティブなコアクラスターの電源がオフになり、もう一方のクラスターがアクティブになります。キャッシュコヒーレントインターコネクト(CCI)が使用されます。このモデルは、 Samsung Exynos 5 Octa(5410)に実装されています。 [ 8 ]
カーネル内スイッチャー(CPU移行)

カーネル内スイッチャー (IKS) による CPU の移行では、「ビッグ」コアと「リトル」コアをペアにして、 1 つのチップ内に複数の同一ペアが存在する可能性があります。各ペアは 1 つのいわゆる仮想コアとして動作し、一度に 1 つの実際のコアのみが (完全に) 電源投入され、実行されます。「ビッグ」コアは要求が高いときに使用され、需要が低いときに「リトル」コアが使用されます。仮想コアの要求が変化すると (高いと低いの間)、着信コアの電源が投入され、実行状態が転送され、発信コアがシャットダウンされ、新しいコアで処理が続行されます。切り替えはcpufreqフレームワークによって行われます。完全な big.LITTLE IKS 実装は Linux 3.11 で追加されました。big.LITTLE IKS はクラスター移行 ( § クラスター化スイッチング)の改良版であり、主な違いは各ペアがスケジューラから参照できることです。
より複雑な配置では、「ビッグ」コアと「リトル」コアを非対称に配置することになります。1つのチップに1つまたは2つの「ビッグ」コアと、より多くの「リトル」コアを搭載することも、その逆も可能です。NVIDIAは、Tegra 3 System-on-Chipに搭載された低消費電力の「コンパニオンコア」で、これに似たものを実現しました。
異種マルチプロセッシング(グローバルタスクスケジューリング)

big.LITTLEアーキテクチャの最も強力な利用モデルは、すべての物理コアを同時に使用できるヘテロジニアス・マルチプロセッシング(HMP)です。この場合、優先度や計算負荷の高いスレッドは「big」コアに割り当て、優先度や計算負荷の低いスレッド(バックグラウンドタスクなど)は「LITTLE」コアで実行できます。[ 9 ]
このモデルは、Exynos 5 Octaシリーズ(5420、5422、5430)以降のSamsung Exynosに実装されています。 [ 10 ] [ 11 ] Apple A11以降のApple Aシリーズプロセッサに実装されています。[ 12 ]
スケジュール
このペア構成により、既存の動的電圧・周波数スケーリング(DVFS)機能を用いて、オペレーティングシステムに対して透過的に切り替えが可能になります。カーネル(例えばLinux)の既存のDVFSサポートは、周波数/電圧のリストを参照し、既存のハードウェアと同様に、必要に応じて切り替えます。ただし、ローエンドのスロットは「リトル」コアを、ハイエンドのスロットは「ビッグ」コアをアクティブにします。これは、2012年以降、Linuxの「デッドライン」CPUスケジューラ(同名のI/Oスケジューラと混同しないでください)によって提供されている初期のソリューションです。[ 13 ]cpufreq
あるいは、すべてのコアをカーネルスケジューラに公開し、各プロセス/スレッドの実行場所を決定するという方法もあります。これは非ペア構成では必須ですが、ペア構成のコアでも使用できる可能性があります。これはカーネルスケジューラにとって特有の問題を引き起こします。少なくとも最近のコモディティハードウェアでは、SMPシステム内のすべてのコアが異種ではなく同等であると想定できていました。2019年にLinux 5.0に追加されたEnergy Aware Schedulingは、コアを異なる方法で考慮するスケジューラの例です。[ 14 ] [ 15 ]
グローバルタスクスケジューリングの利点
- コア間で移行されるワークロードをより細かく制御します。スケジューラがタスクをコア間で直接移行するため、カーネルのオーバーヘッドが削減され、それに応じて消費電力を削減できます。
- スケジューラに実装すると、IKS に実装された cpufreq フレームワークよりも切り替えの決定が速くなります。
- 非対称クラスター (例: 2 つの Cortex-A15 コアと 4 つの Cortex-A7 コア) を簡単にサポートする機能。
- すべてのコアを同時に使用して、IKS と比較して SoC のピーク パフォーマンス スループットを向上させる機能。
後継
2017年5月、ARMはbig.LITTLEの後継としてDynamIQを発表しました。[ 16 ] DynamIQは、マルチコアプロセッサの設計時に、より高い柔軟性とスケーラビリティを実現すると期待されています。big.LITTLEとは対照的に、クラスター内のコアの最大数をArmv8.2 CPUの場合は8個、Armv9の場合は12個、Armv9.2の場合は14個に増加し[ 17 ]、単一クラスター内で異なるコア設計が可能になり、最大32個のクラスターを作成できます。このテクノロジーでは、コアあたりの電圧制御がより細かくなり、L2キャッシュ速度も高速化されます。ただし、DynamIQは以前のARM設計とは互換性がなく、当初はCortex-A75、Cortex-A55 CPUコアとその後継製品でのみサポートされます。
参考文献
- ^ "big.LITTLE technology" . ARM.com. 2012年10月22日時点のオリジナルよりアーカイブ。2012年10月17日閲覧。
- ^ 「ARM、史上最もエネルギー効率の高いアプリケーションプロセッサを発表。big.LITTLEプロセッシングで従来の電力と性能の関係を再定義」(プレスリリース)。ARMホールディングス。2011年10月19日。 2012年10月31日閲覧。
- ^ 「ARM、世界で最もエネルギー効率の高い64ビットプロセッサ、Cortex-A50シリーズを発表」(プレスリリース)。ARMホールディングス。 2012年10月31日閲覧。
- ^ 「ARMの新型Cortex-A12は、2014年の200ドルの中価格帯スマートフォンに搭載される予定」The Verge、2014年4月。
- ^ 「ARM Cortex A17:2015年に主流となる進化型Cortex A12」 AnandTech、2014年4月。 2014年4月1日時点のオリジナルよりアーカイブ。
- ^ Brian Jeff (2013年6月18日). 「big.LITTLEについて知っておくべき10のこと」 ARM Holdings . 2013年9月10日時点のオリジナルよりアーカイブ。2013年9月17日閲覧。
- ^ George Grey (2013年7月10日). 「big.LITTLE ソフトウェアアップデート」 . Linaro . 2013年10月4日時点のオリジナルよりアーカイブ。 2013年9月17日閲覧。
- ^ Peter Clarke (2013年8月6日). 「ARMのビッグリトルアーキテクチャのベンチマーク」 . 2013年9月17日閲覧。
- ^ Big.LITTLE Processing with ARM Cortex-A15 & Cortex-A7 (PDF)、ARM Holdings、2013年9月、2012年4月17日時点のオリジナル(PDF)からアーカイブ、 2013年9月17日閲覧。
- ^ Brian Klug (2013年9月11日). 「Samsung、Exynos 5420でbig.LITTLE MPのサポートを発表」 . AnandTech . 2013年9月12日時点のオリジナルよりアーカイブ。 2013年9月16日閲覧。
- ^ 「Samsung、Mobile World CongressでシステムLSI事業の新製品を発表」 Samsung Tomorrow。2014年3月16日時点のオリジナルよりアーカイブ。 2013年2月26日閲覧。
- ^ 「未来はここに:iPhone X」 Apple Newsroom 2018年2月25日閲覧。
- ^ McKenney, Paul (2012年6月12日). 「big.LITTLEスケジューラのアップデート」 . LWN.net .
- ^ Perret, Quentin (2019年2月25日). 「Linux 5.0に統合されたEnergy Aware Scheduling」 . community.arm.com .
- ^ 「Energy Aware Scheduling」 Linuxカーネルドキュメント。
- ^ Humrick, Matt (2017年5月29日). 「DynamiqとARMの新CPUを探る」 . Anandtech. 2017年5月29日時点のオリジナルよりアーカイブ。 2017年7月10日閲覧。
- ^ Ltd, Arm. 「DynamIQ – Arm®」 . Arm | デジタル世界のためのアーキテクチャ. 2023年10月18日閲覧。
さらに読む
- デビッド・ジンマン (2013年1月25日). 「big.LITTLE MP status Jan 25, 2013」 . LWN.net . 2013年1月25日閲覧。
- Nicolas Pitre (2012年2月15日). 「ARM big.LITTLEのLinuxサポート」 . LWN.net . 2012年10月18日閲覧。
- ポール・マッケニー (2012年6月12日). 「big.LITTLEスケジューラのアップデート」 . LWN.net . 2012年10月18日閲覧。
- Jake Edge (2012年9月5日). 「KS2012: ARM: ちょっとした大きなアップデート」 . LWN.net . 2012年10月18日閲覧。
- Jon Stokes (2011年10月20日). 「ARMの新型Cortex A7はAndroidスーパーフォン向けにカスタマイズされている」 Ars Technica . 2012年10月31日閲覧。
- アンドリュー・カニンガム (2012年10月30日). 「ARM、新しいCortex-A53とCortex-A57の設計で64ビット化へ」 Ars Technica . 2012年10月31日閲覧。