マルチコア・リアルタイムOS「INTEGRITY-178 tuMP」

マルチコア・リアルタイムOS「INTEGRITY-178 tuMP」は、高いプロセッサ使用率、アプリケーションの移植性、および真のIMAを実現しながらマルチコア競合を緩和し、DO-178 B/C DAL A準拠のセーフティクリティカルな動作を保証するという課題をクリアすることを明確に目指して開発されました。INTEGRITY-178 tuMPはARM、Intel、Power Architectureをサポートし、IMAの信条である統合性、移植性、メンテナンスおよび再利用による高い機能性と低いライフサイクルコストの実現を約束します。

リアルタイムOS INTEGRITY-178 tuMPは安全性とセキュリティの両方で認証を得た高保証オペレーティングシステムです。メモリ空間や処理時間、プロセッサリソースをパーティショニングしてセーフティクリティカルなアプリケーションがリアルタイムの期限までに完了することを保証します。

2002年に、INTEGRITY-178はDO-178 Level Aの目標準拠を認証された世界初の商用のパーティショニング強制リアルタイムOSとなりました。大部分のコードが再利用できる形で、マルチコア・リアルタイムOS INTEGRITY-178 tuMPが2010年に顧客向けにリリースされました。

今のところ、Future Airborne Capability Environment(FACE)Technical Standardの最新版、Edition 3.0に準拠した唯一のリアルタイムOSです。マルチコアプロセッサ上のコアすべてで高い稼働率を達成できるのは、リアルタイムOSでサポートされる色々なマルチプロセシング・ソフトウェアアーキテクチャから選んでアプリケーションを複数のコア上で同時実行できるからです。システムソフトウェアアーキテクトは、マルチコア・リアルタイムOS INTEGRITY-178 tuMPを使えば非対称型マルチプロセシング(AMP)、対称型マルチプロセシング(SMP)、バウンドマルチプロセシング(BMP)などを自由に組み合わせて、タイムパーティショニングした形でマルチコアをサポートすることができるようになります。

BMPはSMPを拡張して制約を加えたもので、アプリケーションのタスクを特定コアのグループから移動しないように拘束し、複数のコアの共時動作を厳密に制御しやすくなります。個別のIMAアプリケーションのAMP、SMP、BMPの動作条件はビルド時に定義されます。これらの定義は、パーティションスケジュール内でいつ、どのように実行されるかも含めて、システムのソフトウェアアーキテクトが固定的なシステム設定ファイルを使って管理します。BMPのサポートはARINC 653 Part 1 Required Services (Supplement 4) の最新バージョンに準拠することが求められ、INTEGRITY-178 tuMPはSupplement 4に準拠している唯一のARINC 653リアルタイムOSです。

細かい粒度帯域幅割り当てでマルチコア競合を緩和

前述のように、マルチコア競合緩和の最善策は共有リソースの帯域幅を各コアに割り当て、その割り当てを非常に細かく分けた時間枠で使わせることです。こうした細かい粒度の監視と共有リソース帯域幅の強制割り当ては今のところオペレーティングシステムレベルでなければできません。

INTEGRITY-178 tuMPは帯域幅割り当て・監視(BAM)機能を備え、競合経路を観察し影響を緩和します。600人月を超えるマルチコア競合解析と緩和方法の研究開発の成果を元に、BAMはチップレベルで各コアに接続されているインターコネクトの帯域幅割り当てを監視します。

チップレベル・インターコネクトはコアと共有リソースとの間のやり取りの中心にあるものなので、共有リソースの監視と使用制限強制をするのに最適な場所です。ハイレベルのフォルト検出による従来のやり方とは異なり、Green Hills SoftwareがINTEGRITY-178 tuMPに実装した帯域幅割り当て・監視機能の内部構造は、非常に短い時間でのコアの共有リソース制限を可能にします。この手法では、BAMはパーティション時間窓の期間中にリソースを食うコアの帯域幅を絞ります。そのため、それ以外のプロセスは、そのリソースを食うコアが割り当てられたパーティション時間窓を使い切るのを待つ必要がなくなります。

システムアーキテクトはアプリケーションの機能要件や設計保証レベルを元に、各コアにどのくらい帯域幅を割り当てるか判断します。特定のコアのアプリケーションで所定のBAM時間内に帯域幅の閾値に達したら、そのコアは次のBAMが定義する時間単位が来るまで共有リソース使用から除外されます。この仕組みでは、コア0で実行されるDAL Aのアプリケーションには全帯域幅の60%を割り当て、残り3つのコアにはそれぞれ15%、15%、10%のように割り当てることができます(図3)。BAMはDO-178C DAL Aを目標として開発されており、競合の問題を緩和してシステム統合ができるようになります。

  • Green Hills Software

    図3:帯域幅割り当ての例

帯域幅を的確に割り当てるには、アプリケーションの解析とテストが必要です。その解析を支援するために、Green Hills Softwareは競合生成ライブラリ、DMA生成ライブラリ、および帯域幅レポートライブラリを用意しました。競合生成ライブラリ、およびDMA生成ライブラリはプロセッサ・アーキテクチャに合わせてカスタマイズされ、数百もの競合プロファイルから最悪シナリオの競合を模擬できます。特定のアプリケーションが使用していないコア上でこれらのライブラリをアプリケーションとして同時に実行すると、マルチコアの最悪実行時間(WCET)が新たに設定されます。DMAエンジンとその他のコアの両方で最悪の競合を生成する機能がないと、マルチコアのWCETを安易に過小評価してしまうことがありえます。

帯域幅レポートライブラリは競合生成ライブラリとDMA生成ライブラリを使って、DMA競合の考慮後に空き帯域幅を測定により確認します。空き帯域幅を知ることで、BAMの帯域幅割り当て閾値を決められるようになります。帯域幅レポートライブラリは指定の数のコア上で競合生成ライブラリとDMA生成ライブラリを同時に実行します。数百の競合プロファイルの中から特定のサブセットを選んで、想定用途に近い計測ができるようにしたり、カスタムの競合プロファイルを自作したりできます。空き帯域幅を左右するのは、プロセッサのモデルに加えて、メモリの種類、クロック周波数、設定レジスタ、それにどの競合プロファイルを選んで最終用途に調整したか、などです。

マルチコア競合緩和の実際

以下の2つの図は、BAMを有効にした時にタイミング特性がどう改善されるかを示したものです。データはPower Architectureのクアッドコアプロセッサで計測したもので、アプリケーション実行時間はシングルコアで実行し、他のコアはアイドル状態の場合の実行時間との比です。

テストするアプリケーションはコア0で実行され、残りのコアで競合生成ライブラリが実行されます。図4は競合するコアが増えるにしたがって、コア0のアプリケーションの実行時間がどう延びていくかを示しています。コア1個で競合生成ライブラリが実行されると、アプリケーション実行時間は7倍以上に跳ね上がります。競合するコアがもう1つ、また1つと追加されると、実行時間は13倍を超えるに至りました。この最悪条件の動作は、平均的なケースで予想される2倍、3倍、4倍と線的に増えていくのよりもさらに悪いものです。

  • Green Hills Software

    図4:最悪実行時間は競合するコアの数によって変わる

競合を緩和するために、システムアーキテクトはBAMで各コアに最大帯域幅割り当てを設定します。競合するコアの使える帯域幅を制限すると、テスト対象アプリケーションの実行時間も短くなり、競合コア数が増えてもほぼ一定になりました。テスト対象アプリケーションに共有リソースの総帯域幅の80%を割り当てると、実行時間はシングルコア動作の場合の1.4倍程度になり、さらに同時実行コアが増えていってもその水準を維持しました。図5は、80%割り当ての時に実行時間が1.4倍で、割り当てが50%の場合、25%の場合の性能も示しています。注目すべきことに、25%の割り当てで、他のコアとほぼ同じ割合だった場合でも、アプリケーションは競合緩和なしの場合の2.5倍もの性能を出しています。

  • Green Hills Software

    図5:BAM適用後、最悪実行時間は一定になる

BAMでクリティカルなシステムのコア使用率を最適化

競合生成ライブラリ、DMA生成ライブラリ、帯域幅レポートライブラリ、およびBAM実行時間機構は、システムインテグレータがマルチコアの最悪実行時間の判断、競合の緩和、マルチコアシステムの認証をするために必要なツールです。

Green Hillsが提供するこの競合緩和機能は、認証リスクを軽減し、検証・解析業務を合理化して開発期間を短縮するほか、長期間のメンテナンスとシステム増強にかかるコストを削減します。

このようなマルチコア競合緩和策がないと、アプリケーションの追加・更新後のシステム再検証ではすべてのアプリケーションをひとつずつ再検証しなければならない可能性が非常に高くなります。その結果、システムレベルの解析手法でIMAの意図を達成することが難しくなります。マルチコアのIMAシステムでIMAアーキテクチャの利点をすべて活かそうとするなら、帯域幅割り当てや監視などの機能は必須です。

セーフティクリティカルなシステム全体で考えると、BAMはリスクを軽減してクリティカルなシステムの開発・統合・配備・保守をシンプルにします。BAMはクリティカルなシステムでコア使用率を最適化できるので、省面積、軽量、省エネルギーを実現するだけでなく、計算能力の余裕も生まれます。この帯域幅割り当て・監視機能はIMAのOEMや開発者にとって必須の機能です。

著者プロフィール

Mark Griglock
Green Hills Software
VP Engineering

Patrick Huyck
Green Hills Software
Systems Certification Manager

Richard Jaenicke
Green Hills Software
Director of Marketing