Wind Riverの日本法人であるウインドリバーは22日、組み込み機器におけるマルチコアプロセッサの取り組み状況の説明を行った。

対称型マルチプロセッシング(SMP:Symmetric Multi Processing)は、サーバを始め、Linuxなどで用いられてきたが、近年は同社の組み込みOS「VxWorks」でも2007年12月より提供を開始した「VxWorks 6.6」で対応するなど、組み込み機器でも適用が進んでいる。

ウインドリバー 営業技術本部 部長 堀江茂行氏

SMPのトレンドとしては、並列化コンパイラ技術として並列化コードの自動生成機能の登場や、並列プログラミング言語の登場などがあるが、「組み込み機器向けソフトウェア開発の大半がC言語まやたC++言語であり、新しい並列プログラミング言語が普及する可能性は、今のところない」(ウインドリバー 営業技術本部 部長 堀江茂行氏)という。

また、同氏は、マルチコアから見た開発の難しさとして、コア間でのタスク移動やパフォーマンスの最適化の難しさ、タスクの同期などを挙げ、「それらの問題を解決するためには"視覚化ツール"を活用する必要がある」とし、「視覚化ツールを用いることにより、各CPUのパフォーマンスがどの程度活用されているのかや"Race Conditions"、"Deadlocks"などの状況整理が可能になる」と述べた。

同社の視覚化ツール「System Viewer」は、システムのイベントをグラフィカルに表示することにより、ターゲット上で実行されているアプリケーションのタスク、割り込み、システムオブジェクトの複雑な相関関係の分析を可能としている。

Wind Riverの視覚化ツール「System Viewer」

また、VxWorks 6.6では、各社のマルチコアプロセッサに対応しているが、そのほか、シミュレータを搭載することにより、マルチコアプロセッサが手元に無い状態でもアプリケーションの開発が可能となっている。

さらに、共有資源をアクセスする際、フラグを利用してCPU間で排他制御をするプリミティブな機構として「Deteministic Spinlock」を採用。これにより、効率の良いマルチコアプロセッサ処理が可能になるとしたほか、「CPU Affinity」機能により、タスク/割り込みを特定のCPUに静的割付が可能となっているとした。

このほか、同社では、2009年の製品化に向け、1つのCPUで2つのOSを動かすことが可能な「System Virtualization」の開発を行っている。2つのOSが稼動することにより、ホストOSでリアルタイム処理を行い、ゲストOS側としてGUI表示を行うなどの処理が行えるようになるという。

「System Virtualization」の概要