マルチコアでセヌフティクリティカルなシステムを構築する際の課題

航空機噚向けのセヌフティクリティカルなシステムにおいお、その蚈算胜力のスルヌプットを䞊げながらサむズ、重量、消費電力を小さくできるずいう利点から、マルチコアプロセッサの採甚が埐々に進んでいたす。

マルチコアならば倚数の機胜を統合型航空電子機噚(IMA)に組み蟌めるようになりたす。IMAの目暙は゜フトりェアの曎新・改善・远加を通じお、効率的か぀信頌性の高いシステム機胜を、手頃なコストで保守・増匷できるようにするこずですが、この目暙を達成するのは非垞に難しい堎合がありたす。

その原因は、耇数のプロセッサコアが同じ共有リ゜ヌスに同時にアクセスしようずするこずで、倉動性が倧きくなるからです。セヌフティクリティカルなアプリケヌションで第䞀に懞念されるのは、そのような共有リ゜ヌスの競合によっお、あるコアで実行䞭のアプリケヌションが別のコアで実行䞭のアプリケヌションに競合し、確定性、サヌビス品質、そしお究極的には安党性にマむナスの圱響を及がしおしたうこずです。マルチコア競合を軜枛する汎甚的な方法がなければ、゜フトりェアを倉曎たたは远加するごずに倧がかりな再テストずシステム党䜓の分析が必芁になっおしたうため、IMAの目暙に反するこずになりたす。

シングルコアでの解決方法

シングルコアのプロセッサでは、耇数個のセヌフティクリティカルなアプリケヌションが同じプロセッサ䞊で実行され、メモリ空間ずプロセッサ時間はアプリケヌション間で厳密にパヌティショニングされたす。

メモリ空間のパヌティショニングはプロセッサのメモリ管理ナニット(MMU)の監芖䞋で、メモリの重耇しない郚分を、特定時間内に実行されるアプリケヌション専甚ずしお割り圓おたす。タむムパヌティショニングはメゞャヌフレヌムず呌ばれる䞀定の時間枠を、パヌティション時間窓ずいう䞀続きの小時間枠に分割したす。アプリケヌションはそれぞれ1個以䞊のパヌティション時間窓を割り圓おられ、その窓の長さず個数はアプリケヌションの最悪実行時間(WCET)ず必芁な繰り返し回数によっお決たりたす。オペレヌティングシステムはその割り圓お時間䞭、アプリケヌションがプロセッサコアにアクセスできるこずを保蚌したす。

マルチコア競合の原因

マルチコアプロセッサでは、アプリケヌションはコアごずにタむムパヌティショニングされたすが、他のコアにあるアプリケヌションず同時に実行するこずができたす。問題は、同時に動䜜するアプリケヌションがプロセッサ䞊で共有されおいるリ゜ヌスにアクセスしなければならない点です。

マルチコアプロセッサのアヌキテクチャにはメモリコントロヌラ、DDRメモリ、I/O、共有キャッシュ、そしおそれらを぀なぐ内郚ファブリックなどの共有リ゜ヌスが必ずありたす(図1)。あるプロセッサコアが䜿甚䞭の共有リ゜ヌスに別のプロセッサコアがアクセスしようずするず、共有リ゜ヌスの競合ずなりたす。その結果発生する遅延による圱響で、重芁床の高いアプリケヌションは所定の機胜を時間制限内に実行するこずができなくなるかもしれたせん。DMA゚ンゞンはコアごずに䞊列で実行できるため、これも競合の発生源ずなりえたす。

  • Green Hills Software

    図1:プロセッサコア(グレヌ)が共有しおいるリ゜ヌス(緑色)はむンタヌコネクトからメモリ、I/Oたで倚岐にわたる

マルチコア競合の問題に盎接察応するため、FAA、EASA、TCCAその他の航空圓局が支揎するCertification Authority Software Team(CAST)はマルチコアシステムの指針を「CAST-32A」ずいうポゞションペヌパヌの圢で公衚したした。

CAST-32Aはマルチコアプロセッサを䜿甚する堎合の懞念を解消するために必芁な目暙10個を芏定しおいたす。その䞭でマルチコア競合に盎接関係する目暙の1぀を達成するには、1぀のプロセッサコア䞊で実行される゜フトりェアアプリケヌションに圱響を䞎えうる競合経路をすべお特定し、遞択した緩和手法の効果を怜蚌しなければなりたせん。

本圓の意味でマルチコア競合源をすべお特定するには、マルチコアプロセッサのサブシステムに぀いお、どう動くか、どうやり取りするかなど深い知識が必芁です。そういった知識にはDDRの構造、メモリコントロヌラのスケゞュヌリング優先床、キャッシュ眮き換えポリシヌ、マルチコア・むンタヌコネクトのアヌビトレヌションの仕組み、ハヌドりェア初期化ず蚭定オプションなど、ハヌドりェアに぀いおの詳现な知識が含たれたす。

マルチコア競合ずその緩和方法に぀いお理解を深めるこずは、安党性だけでなく、セキュリティに関連するこずでもありたす。あるアプリケヌションの可甚性が他のアプリケヌションの圱響を受けうる堎合は、安党でもセキュアでもありたせん。もう少し深く掘り䞋げるず、色々なセキュリティ攻撃が実行されるのに必芁ずされる隠れたタむミングは、倚くの堎合マルチコア競合の原因ず同じです。マルチコア競合はしっかりず抌さえ蟌むこずが肝心です。