ソフトウェアで機能を定義するLSIを使ってみた ―― XMOS Semiconductor社「XS1-G」レビュー
ここでは英国XMOS Semiconductor社の「ソフトウェア定義シリコン」を取り上げる.複数の処理を並列的に実行可能な機構を持つプロセッサ・ユニットを複数個持つことで,ハードウェアのような並列処理を可能にし,専用LSIのように使うことができるデバイスである.プロセッサ・ベースのため,C言語で記述されたソフトウェア・コードをほぼそのまま利用できる.Cベース言語からハードウェア(HDL)を合成する動作合成とは,まったく異なる仕組みである. (編集部)
組み込み機器では,マイコンが広く使われています.複数の処理を並列的に処理したい場合は,μITRONなどのリアルタイムOSを利用するのが一般的です.
リアルタイムOSの役割としては,例えば,温度コントローラのようなものであれば,制御のタスク,操作のタスク,表示のタスク,伝送のタスクなど,いくつかのタスクをタイマ割り込みやキー入力,伝送入力などのイベントをトリガとして動作させ,それぞれのタスクの処理を優先順位に従って行うという役割を果たしています.CPUでは複数の処理を同時に行えないため,タスクの切り替え処理や割り込み処理,タスクの優先順位の設定などがシステムを作る上で重要になってきます.
このようなリアルタイム制御を行う際の面倒な処理(優先度や割り込み処理)を,新しいアーキテクチャで解消したのが英国XMOS Semiconductor社が開発した「XS1-G」です.
1. XMOSアーキテクチャの特徴
XMOS社は,1980年代に登場した英国Inmos社の「Transputer」(トランスピュータ)を開発したDavid May氏がCTO & Co-Founderを務める会社です.XS1-Gは,トランスピュータの概念を組み込みデバイスとしてブラシュアップされたものとなっています.
トランスピュータは,複数のCPUデバイス間をチャンネルと呼ばれるネットで結び,並列処理を実現したものでした.しかし当時は,CPUの高速化による効果の方がコスト・メリットが大きかったため,一部の並列処理ユニットとして使用されただけで,今ではほとんど残っていません.
XMOSは,そのトランスピュータの概念を1チップにまとめることにより,ソフトウェアで機能を記述できる「ソフトウェア定義シリコン(Software Defined Silicon:SDS)」と呼ばれるチップに仕上がっています.
次にXMOSの特徴,およびメリットをいくつかの例に分けて説明します.
● マルチスレッド
XMOS社の「XS1-G4」は,内部に四つのXCoreと呼ばれるセルを持っています.
XCoreは,32ビットのRISC(Reduced Instruction Set Computer)プロセッサを中心とした,図1のような構造となっています.内部に八つのスレッドと呼ばれるレジスタ郡があります.この一つのスレッドが通常のCPUの役割を持っています.そして,このスレッド(T0~T7)が図2のように,時分割で実行されます.メモリなどは,FIFO(First-in First-out)やフェッチ機構により,スレッドごとに影響しないようになっています.
すなわち,時分割にて処理するため,八つのプログラムをそれぞれの干渉なしに同時に動かせます.もちろん時分割のため,RISCコアの速度は「1/実行スレッド数」になります.XS1-Gは400MHzで動作するコアを使用しているので,8スレッド同時に実行しても,それぞれのスレッドは50MHzの速度で実行できます.リアルタイムOSのような,タスク切り替えなどのオーバヘッドはありません.タスクが待たされるなどと考えずに,システムやプログラムを設計できます.