ポータブル医療モニターから産業用IoTセンサーまで、タスクを管理する以上の要求の厳しいオペレーティングシステムに、さまざまなミリワットごとに慎重に合理しなければなりません。ハードウェアの縮小と性能の期待が上昇するにつれて、OSはエネルギー消費の中央仲裁人になりました。 妥協のない電力の描画を最小限に抑えるOSの設計は、複雑で重要な懲戒です。 この記事では、コア原則、技術、およびエンジニアリングアプリケーションのためのエネルギー効率の高いOS設計を定義する新興戦略を検討しています。

エネルギー効率における運用システムの仕組み

オペレーティングシステムは、ハードウェアリソースをオーケストし、その決定は直接電力使用に影響を与える。 アプリケーションレベルの最適化とは異なり、OSは、システム全体的に可視性を持っています。 CPU周波数、アイドル状態、メモリ割り当て、および周辺活動を制御する。 適切に設計されたエネルギーアウェアOSは、特に可変的なワークロードを持つデバイスと比較して、30〜50%の合計システム電力を削減することができます。 エンジニアリングデバイスは、単一のバッテリーまたは収穫エネルギーの環境で1年間実行しなければならないため、この違いは重要です。

OSは、アプリケーション開発者から電力管理を抽象化する必要があります。各プログラムを強制的に管理する代わりに、カーネルは、リアルタイムの条件に適応するポリシーメカニズム(グバノー、パワーキャッピング、デバイスランタイムPM)を提供します。このメカニズムからのポリシーの分離は、システムインテグレータがソフトウェアを書き換えずにエネルギー動作をチューニングすることを可能にします。

エネルギー効率性OS設計のコア技術

動的電圧および頻度スケーリング(DVFS)

DVFSはOSレベルのパワー管理の角質を維持します。 プロセッサの電圧とクロック周波数をワークロードの需要に応じて調整することにより、OSは省エネのためのピーク性能を取引します。 Linuxのような現代のDVFSの知事]ondemand]、および[スケジューラ] - 周波数を最大で動作させる場合、最大速度は、最大速度を3倍に低減します。 電圧は、約3〜80%の電力量を削減します。

しかしながら、DVFSの有効性は、ワークロードの粒度に依存します。 計算のショートバーストは、移行のオーバーヘッドによる周波数変化に寄与しないかもしれません。 OSは、将来の需要を予測したり、マイクロ秒内で反応しなければなりません。 ハードウェアのパフォーマンスカウンターとタスク固有の履歴を活用して、DVFSの精度が向上しました。 導入のトレードオフの詳細については、「Linux CPU周波数スケーリングドドキュメントを参照してください。

上級睡眠状態とアイドル管理

プロセッサが準備が整ったタスクがない場合、OSは低電力のアイドル状態に移行する必要があります。 現代のCPUは、異なるウェイクアップレイテンシーとパワーセービングで複数のスリープ状態(C-states)を提供します。 OSアイドル知事は、予測されたアイドル期間に基づいて、最も適切な状態を選択します。 センサー入力またはネットワークパケットを待ち合わせるエンジニアリングデバイスでは、効果的なアイドル管理は省エネを支配します。

CPU を超えて、OS は、システムオンチップ (SoC) コンポーネントを管理しなければなりません。メモリ コントローラー、相互接続、周辺機器は、それぞれが自己リフレッシュまたは電源供給状態に入ることができます。 [の概念は、ランタイム パワー マネジメント[]]] は、カーネルが使用されていないときに個々のデバイスを中断することができます。メイン CPU がアクティブに残ります。 この微調整された制御は、状態の制御が、Wi-Fi を介在するような、特定のデバイスを、特定のデバイスを、または複数のデバイスを固定するかどうかを制限します。

エネルギー最適化のためのタスクスケジューリング

従来のスケジューリングアルゴリズムは公正性またはスループットを優先します。 エネルギーアウェアスケジューラは、スケジューリングの目的として電力を追加します。 テクニックは次のとおりです。

  • レース・ツー・アイドル:[ 可能な限り迅速に完全な作業を行い、ディープ・スリープに入ります。 これは、睡眠力が非常に低いバージー・ワークロードに適しています。
  • ] 効率性周波数選択:[ スケジュールは、リアルタイムタスクの期限制約を満たす最小の周波数を選択します。
  • [Clusterマイグレーション: のヘテロ系アーキテクチャ(例:ARM big.LITTLE)では、OSマイグレートは、軽量作業と重負荷の大きなコアの高効率なコアにスレッドします。

エネルギー・アウェア・スケジューリングは、コアとメモリアクセスパターン間の熱結合を考慮する必要があります。例えば、キャッシュ・ヒアラルキーのデータの近傍にタスクを移動すると、メモリ電力が低下します。 [Linux Energy-Aware Scheduling documentationは、これらのポリシーが慣行で実装されているかを詳しく調べます。

メモリとI/Oパワーマネジメント

メモリ(DRAM)は、特にアクティブなアクセス時に重要な電力を消費します。OSは、以下のようなメモリエネルギーを削減できます。

  • []銀行・アウェア割り当て:[ 銀行が銀行の紛争を回避し、銀行が低電力モードに長期滞在できるようにするメモリ銀行の横断アクセスを拡散する。
  • [ページ圧縮とクラスタリング:[] 未使用領域を自己リフレッシュに配置できるように、アクティブなページを数少ないメモリ領域にグループ化します。
  • []NUMA-awareスケジューリング:[]]]マルチソケットシステムで、スレッドとデータを同じノードに保持して、リモートメモリトラフィックを最小限に抑えます。

I/O では、OS は、ネットワークの中断、ディスクの書き込みをバッチ処理し、ACPI 経由で未使用のコントローラーをオフにするなどの技術を採用しています。この課題は、応答性を維持しています。数ミリ秒単位の中断を遅らせると、電力を節約できますが、センサーの読み取り期限を違反する可能性があります。

リアルタイムおよび組み込みシステムにおける課題

特に、ロボットアームのモーターコントローラーや飛行レコーダーのデータ収集システムなど、ハードなリアルタイムの期限を満たす必要があるエンジニアリング機器の要求が高まっています。ここでは、省エネは見逃された期限のコストで来ません。レートモノトニックやイヤーリート・デッドラインファーストなどのリアルタイムスケジューラは、スケジューラビリティテストを事前保守しながら、パワーアウェアネスで拡張する必要があります。

1つのアプローチは、タスクが初期に完了した後、残りのスラックを使用して、周波数を削減したり、眠りに入ることです。 これは、正確なタイミング分析と低オーバーヘッドを必要とします。 もう1つの課題は、ディープスリープ状態が大きなウェイクアップレイテンシーを持っていることです。 タスクが100μs以内に応答する必要がある場合、OSは500μsの出口レイテンシでC-stateを入力することができません。 したがって、OSは、次の期限前に行われる最短アイドル期間に基づいて睡眠深さを選択する必要があります。

中断処理もエネルギーに影響を与えます。 いくつかのマイクロコントローラは、OSが次のスケジューリングチェックティックまで中断を延期し、より長いアイドル期間を有効にすることができます。 しかし、これはジッタを追加します。 エンジニアは、各特定のアプリケーションのための節電とタイミング精度の間のトレードオフを量らなければならない。

テクノロジーと未来の方向性を融合

予測力管理のための機械学習

従来のOSの電力管理は、固定ヒューリスティック(例えば、利用しきい値)に依存しています。機械学習は、時間をかけて変化するワークロードパターンにポリシーを適応させる可能性がある。例えば、ニューラルネットワークは、過去のタスクの到着とセンサートリガーに基づいて将来のCPUの需要を予測することができます。これにより、OSは、周波数またはアイドル状態を積極的に設定することができます。初期実験では、最高の静的知事よりも10〜20%の省エネが示されています。

しかし、エネルギーを節約したデバイス自体でMLモデルを実行していると、パワーを消費します。 OSは、専用の低電力加速器に負荷をオフロードするか、カーネルに収まる軽量モデル(例、決定木)を使用する必要があります。 []]]]の検索論文「マルチコアプロセッサのための学習ベースのパワーマネジメント」]は、そのようなアプローチの徹底的な評価を提供します。 埋め込まれたハードウェアがより一般的なものになると、私たちは、OSマネージャが標準装備されていることを期待することができます。

低電力ハードウェアのシナジー

OSは、ハードウェアとの統合を堅くすることなく、エネルギー効率を最大化できません。SoCs の新興化により、深層睡眠中に状態を保持する、細分化された電力ドメイン、パーコア電圧調整器、非揮発性メモリが提供されます。OS は、ハードウェアのバグや変動を処理するときに、電力管理フレームワークを通してこれらの機能を拡張しなければなりません。

近距離コンピューティング(NTC)のような技術は、プロセッサが非常に低電圧で実行することを可能にしますが、それらは温度とプロセスの変動に敏感です。 OSは、オンチップセンサーを監視し、電圧マージンを調整しなければなりません。リアルタイム制御ループを必要とするタスク。さらに、異種体アーキテクチャ(例えば、ARM big.LITTLE、x86ハイブリッドコア)は、OSが各ワークロードのための最もエネルギー効率の高いコアにタスクを割り当てることを可能にします。 [[FLTLT:0]:[ALT]:ARLARは、大体アーキテクチャを知っています。 [OSは、OSは、各ワークロードの最もエネルギー効率なコアに割り当てられます。[FLTL]:[AR]:[AR]:[AR]は、大体例:[AR]:[AR]は、大体は、または大体が、または大体が、または大体が、または大体が、または大体に共通する] - [OSが、または大体に共通する] - [OSが、または大体に共通する] - のアーキテクチャを悪用 - または大体に共通する] - の異なる、または大体に共通する]

もう一つの有望な方向は、太陽、振動、またはRFソースから電力を収集するエネルギー ハーベストメント デバイスの使用です。 これらのデバイスは、断続的な電源を持っています。 OSは、電源サイクル全体で計算を管理し、電源異常前に、状態を不揮発性メモリに保存しなければなりません。 この「断続的なコンピューティング」は、OSレベルでのチェックポイント機構、継続的な電力操作からのパラダイムシフトが必要です。

コンテンツ

エネルギー効率の高いエンジニアリング機器向けのオペレーティングシステムの設計は、DVFS、アイドル管理、スケジューリング、メモリ、I/O最適化、リアルタイム制約に及ぶ多次元的課題です。 成功した設計は、これらの技術を、ワークロード、ハードウェア、環境条件に適応する一貫性のあるポリシーに統合します。 機械学習と新しいハードウェア機能が成熟するにつれて、OSは、あらゆるデバイスからエネルギーの最後の低下をスケスケーリングするさらなる大きな役割を果たします。 バッテリーの寿命を延ばす、より小さい要因は、より小さい環境を監視します。