T-KernelのSMP実装登場T-Kernel技術解説 SMP編(2/2 ページ)

» 2006年10月31日 00時00分 公開
[立田純一 イーソル,@IT MONOist]
前のページへ 1|2       

SPMとTSM

 前述した、AMPとSMPのメリットとデメリットを見比べてみてください。それらは互いに凹凸となる関係であることが分かります。eT-Kernel MCEでは、このAMPとSMPの両方のメリットを享受し、デメリットを補う設計を採りました。それが、「Single Processor Mode」(SPM)と「True SMP Mode」(TSM)という2つのスケジューリングモードです。

 SPMとは、ある特定のプログラムの実行環境としてマルチコアプロセッサの中から1つのコアを指定し、ほかのコア上のプログラムと隔離してスケジューリングするモードです。SPMでのプログラムは、シングルコアプロセッサを使用している場合と同様の振る舞いをします。

 TSMは、複数のコアを利用したSMP型スケジューリングを行うモードです。eT-Kernel MCEでは、OSの構築時に、システムの必要に応じて、マルチコアプロセッサの各コアをSPM用のコア(SPMコア)とTSM用のコア(TSMコア)に振り分けます。これにより、1つのシステム内に、任意のモードを取るプログラムの混在を可能にしています。

 SPMコアとTSMコアを利用したシステムの構成例を、図2に示します。

SPMとTSMの構成例 図2 SPMとTSMの構成例

 そして、これらのグルーピングを管理するため、「論理コア」という概念を導入しました(図3)。

論理コアの概念 図3 論理コアの概念

 eT-Kernel MCEでは、プロセスやタスクの生成時にこの論理コアを指定(注)します。タスクやプロセスは、指定した論理コア上でのみ動作します。指定した論理コアに属する物理的なコアが1つであれば、それはSPMであることを表します。これにより、AMPと同様に、シングルコアプロセッサと同じ環境を作り出します。SPMの論理コアを指定したタスクセット(アプリケーションセット)は、ほかの論理コアを指定したタスクにプリエンプトされることなく、予測可能な実行順序で動作するため、リアルタイム性の保証が容易です。

※注:
プロセスの生成時に論理コアを指定することで、そのプロセスのメインタスクが、その論理コア上で動作することになります。プロセスのサブタスクは、その論理コア指定を継承します。プロセス・タスクのほかに、周期ハンドラやアラームハンドラも生成時に論理コアを指定します。


 論理コアに属する物理コアが複数ある場合は、TSMとなります。このモードは文字通り、「真のSMP」です。TSMの論理コアを指定したタスクは、TSMのどのコアでも動作できます。平均スループットの向上を目指し、コアを効率的に使用する設計となっています。そのスケジューリングポリシーについては、次項で詳しく説明します。

TSMによるSMP型タスクスケジューリング

 SPMでのスケジューリング方式は、そのコアに属するタスクセットに対して、シングルコアプロセッサとまったく同じスケジューリングポリシーを持ちます。ですので、ここでは多くを語りません。一方TSMでは、複数のコアのうち、タスクが動作するコアをOSがどのように選択するかというSMPスケジューリングポリシーが重要です。

 TSMにおいても、優先度ベースのプリエンプティブなスケジューリングポリシーは変わりません。ただし、実行状態のタスクがTSMコアの数だけあるという点が異なります。例えば、TSMコアが2つの構成の場合、TSMコアを指定したタスクセットのレディタスクのうち、優先度の高い2つのタスクがランニング状態となります。そこへ、より優先度の高いタスクが新たにレディ状態になった場合、ランニング状態の2つのタスクのうち、優先度の低い方のタスクがプリエンプトされ、そのコアでディスパッチが発生します。これにより、複数あるコアの資源を無駄なく、あくまでも優先度に従って効率的に使用できます。「レディタスクのうち優先度の高い方から、コアの数だけのタスクをランニングさせる」という状態を常に保持するように、TSMのスケジューラは設計されています。

eT-Kernel MCEでのアプリケーションはこうなる

 想定するeT-Kernel MCEの適用例としては、シングルコアプロセッサ上のシステムまたはマルチコアプロセッサでもAMP・疎結合型のシステムからの移行です。従来のコア上のシステムを実行するコアとしてSPMコアを確保し、流用するプログラムセットをそのままそのコアの上に乗せてしまいます(図4)。そして、新規作成するアプリケーションや新たに使用するライブラリ・モジュールなどを、TSMで動作するよう開発します。

eT-Kernel MCEへの移行例 図4 eT-Kernel MCEへの移行例

 または、最初の段階ではすべてのコアがSPMで、完全なAMPに近いモデルでもいいかもしれません。OSが1つであるeT-Kernel MCEなら、十分にマルチコアプロセッサのハードウェアパワーの恩恵を享受できます。そして、プロダクトラインの中で、段階的にTSMコアの数を増やしていくなどが考えられます。

今後の取り組み

 eT-Kernel MCEは、T-Engineフォーラムとの連携の下、イーソルが先行して開発したSMP実装版で、すでに評価版の提供を開始しています。

 T-Engineフォーラムでは、AMP T-Kernelとともに、SMP T-Kernelの仕様策定も開始しています。イーソルはT-Engineフォーラムの幹事会員として、またマルチプロセッサワーキンググループのメンバーとして、eT-Kernel MCEで得た技術をSMP T-Kernel標準仕様に積極的にフィードバックしていきます。


前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.