リアルタイムシステムと汎用システムにおける割り込みレイテンシ
割り込みレイテンシとは、ハードウェア割り込みの発生からサービス開始までの遅延である。原因、測定方法、リアルタイムシステムでの重要性、低減技法、および関連用語との違いを解説する。
概要
割り込みレイテンシとは、ハードウェア装置が割り込みを要求した時点から、プロセッサが対応する割り込みハンドラの実行を開始する時点までの時間間隔である。組込みおよびリアルタイムの用途では、時間的制約の厳しいタスクが期限内に完了するために、低く予測可能なレイテンシが求められることが多い。この要件により、RTOSの実装は、厳格なタイミングよりもスループットや公平性を優先する場合がある汎用オペレーティングシステムとは、設計面で異なる。
影響要因
割り込みレイテンシは、複数のハードウェア要素およびソフトウェア要素によって決まる。ハードウェアのレベルでは、プロセッサのパイプライン、割り込みコントローラ、割り込みの受け付け確認とハンドラへのベクタリングに要する時間が遅延の要因となる。CPUの状態、たとえば低消費電力状態にあるか、長い命令を実行中であるかも、遅延に影響する。ソフトウェアのレベルでは、割り込みがマスクまたは無効化されているか、オペレーティングシステムの割り込み処理モデル、コンテキストをどれだけ速く保存・復元できるかに依存する。
- ハードウェア要因:割り込みコントローラの調停、バス競合、装置の応答時間。
- ソフトウェア要因:割り込みマスク、クリティカルセクション、優先度レベル、プリエンプト不能なカーネルコード。
- システムレベルの影響:割り込みのネスト、遅延処理、割り込みストーム。
測定と指標
割り込みレイテンシは通常、ロジックアナライザ、ハードウェアタイマ、または高分解能タイムスタンプを用い、装置の割り込み信号から割り込みサービスルーチン(ISR)の最初の命令までの時間として測定される。関連する指標には、最悪ケースレイテンシ(ハードリアルタイム保証で重要)と、発生ごとの変動であるジッタがある。設計者はしばしば、割り込み処理を開始するまでのレイテンシと、装置処理を完了するまでの総時間を区別する。後者には、スレッドやボトムハーフで行われる遅延作業が含まれる場合がある。
低減技法
レイテンシを低減または上限設定する一般的な方法には、時間的制約の厳しい割り込みへの高い優先度の割り当て、ISR内で行う作業量の最小化(複雑な処理をスケジュールされたタスクへ遅延させる)、ネストした割り込みの有効化、カーネルまたはドライバコード内の長いプリエンプト不能区間の回避がある。より高速な割り込みコントローラや、コンテキスト保存時間を短縮する機能などのハードウェア支援も有効である。ソフトウェアでは、ロックの慎重な使用、優先度継承、ロックフリーアルゴリズムによって、ブロッキングによる遅延を抑えられる。
歴史、用途、区別
割り込みレイテンシの重要性は、予測可能な応答時間が不可欠な組込み制御およびデジタル通信の発展とともに高まった。初期のマイクロコンピュータシステムは、単純なハードウェアとモノリシックカーネルのため、比較的粗いレイテンシを有していた。現代の航空電子機器、自動車システム、産業制御では、専用のRTOS機能により、上限が定められたレイテンシが重視されている。割り込みレイテンシはシステム全体の応答時間と区別することが重要である。前者は割り込み信号から始まるのに対し、後者にはキューイング、より高位のスケジューリング、装置I/Oの完了が含まれることがある。また、期限逸脱が許容されないハードリアルタイムシステムと、時折のレイテンシの急増を許容できるソフトリアルタイムシステムも区別される。
レイテンシの実用的な評価では、装置またはドライバへの計測機能の組込み、人工的な割り込み生成器の使用、平均的な挙動と最悪ケースの挙動の両方の分析がしばしば行われる。周辺機器向けのドライバを実装する際、技術者は通常、ISRを最小限に保ち、長時間実行される作業をプログラムして、遅延ハンドラまたはオペレーティングシステムが管理するスレッドへ移す。CPUと割り込みコントローラの相互作用を理解することは、レイテンシ目標を満たすハードウェアの選択とソフトウェアの調整に役立つ。
関連項目
著者
AlegsaOnline.com リアルタイムシステムと汎用システムにおける割り込みレイテンシ Leandro Alegsa
URL: https://ja.alegsaonline.com/art/47745