PR
富士通製LSI「MB87Q1100」を搭載するT-Engineボード「T-Engine/ARM926-MB8開発キット」で「SystemWeaver API」を動作させ,FPGAを搭載した拡張ボードに「SystemWeaver IPコア」を実装し実演した。Ignios社がT-Engineプラットフォームを知ったのは,富士通の紹介によるという。
富士通製LSI「MB87Q1100」を搭載するT-Engineボード「T-Engine/ARM926-MB8開発キット」で「SystemWeaver API」を動作させ,FPGAを搭載した拡張ボードに「SystemWeaver IPコア」を実装し実演した。Ignios社がT-Engineプラットフォームを知ったのは,富士通の紹介によるという。
[画像のクリックで拡大表示]

 英国のベンチャー企業であるIgnios Ltd.は,マルチコア構成のASICにおいて,タスクのスケジューリングをハードウエアで行うための技術「SystemWeaver」を開発し,2005年12月14日から開催中のTRON関連の展示会「TRONSHOW 2006」において公開した(Tech-On!関連記事)。マルチコア構成における開発効率の向上を狙う。ARM9系コアを2つ集積する富士通製LSIを搭載したT-Engineボードを使って実演した(Tech-On!関連記事)。SystemWeaverそのものは,特定のOSなどに依存しないが,今回はT-Kernelのタスクを複数のCPUコアにスケジューリングする様子を見せた。

 SystemWeaverは主に2つの要素から成る。1つは,タスクのディスパッチや排他制御などを行うハードウエアとしてのIPコア「SystemWeaver IPコア」,もう1つは,これらの回路を制御するAPIを備えたミドルウエア「SystemWeaver API」である。SystemWeaverは,アイドル中のCPUコアを自動的に見つけ,そこに新たにタスクを割り当てる動作を行う。設計者が,タスクを実行するCPUコアを指定することもできるという。

 一般に組み込み分野でマルチコア構成を採る場合,タスクの割り当て方法にはいくつかの方法がある。(1)同じ種類のCPUコア上で単一のOSを動作させ,OSのスケジューラによって自動的にディスパッチする方法,(2)同じ種類あるいは異なる種類のCPUコア上で別々のOSを独立に動作させておき,タスクを実行するCPUコアを設計時に静的に割り当てておく方法,などである。前者はいわゆる対称型マルチプロセシング(SMP)で,CPUコア間ではキャッシュのコヒーレンシを制御するハードウエアなどを設けることが多い。後者は非対称型マルチプロセシング(AMP)であり,この場合,CPUコア間の通信や排他制御の仕組みは整備されていないことが多く,LSIベンダーやOSベンダーが特定のOSに向けて独自の機構を用意していることが多い。

 今回のSystemWeaverは,上記(1)と(2)の中間のアプローチといえる。異なるCPUコアを用いるヘテロジニアス構成に適用できる点は(2)の非対称型マルチプロセシングに通じ,タスクを自動的にディスパッチする点は(1)の対称型マルチプロセシングに通じる。セマフォやメッセージ・ボックスによるCPUコア間通信や排他制御など,マルチコア構成を実現するために必要な機能はハードウエアとして実装しているため,特定のOSに依存しない。開発元のIgnios社 Vice President DevelopmentのDan Chester氏は,「競合となるような技術はあまり存在しないが,強いて言えば組み込みLinuxのようなSMP対応OSが潜在的な競合相手となるだろう」とする。

 SystemWeaver IPコアの回路規模は,10万ゲートである。排他制御のための回路だけでなく,各CPUコアのデバッグ情報を統合しホスト側に出力する機能も備える。このほか,各CPUコアでのタスクの実行の様子を追跡表示する「SystemWide Trace Viewer」も添付する。現状でARM系,ARC系,PowerPC系に対応する。

■TRONSHOW 2006の特設ページはこちら

「SystemWide Trace Viewer」の画面
「SystemWide Trace Viewer」の画面
[画像のクリックで拡大表示]
SytemsWeaverのシステム構成
SytemsWeaverのシステム構成
[画像のクリックで拡大表示]