MAGAZINE ARTICLES
このページをホームページに登録
ハードリアルタイム処理を実現する
XMOS社のマルチスレッドプロセッサ
[2008年02月号]
写真1 XS-1ファミリの試作チップ
XCoreアーキテクチャのプロセッサコアを4個集積している。
従来のプロセッサが単位時間当たりに多数の命令を処理することを目標として開発されているのに対し、XCoreは外部からの入力に対する高速応答(ハードリアルタイム処理)の実現を目標として開発されたプロセッサアーキテクチャである。従来のプロセッサでは実現できないイーサーネットI/Oのような処理をソフトウエアによって実現することが可能だという。
これを適用したXS-1は、プロセッサコアを複数個集積したチップになる予定だ。主に、セットトップボックスやホームネットワーク機器、ディスプレイ機器、携帯型端末などにおけるデータ処理やI/O管理などの用途に向ける。台湾TSMC(Taiwan Semiconductor Manufacturing Company)社の90nmプロセス技術で製造したXS-1のテストチップをすでに試作しており(写真1)、2008年第1四半期にサンプル出荷の予定。量産は2008年第2四半期から開始する。価格は数量によって異なるが1~10米ドルの予定である。
アーキテクチャの特徴
XCoreアーキテクチャの特徴は、一定の期間内に処理を終えることが要求されるハードリアルタイム処理をプロセッサとその上で動作するソフトウエアによって実行できること。この処理のために、同アーキテクチャは、マルチスレッドプロセッサコアやハードウエアによるスレッドスケジューラ、リアルタイム処理に対する工夫を施したI/O処理機能などを備えている。以下、これら3つについて説明する。
まず、マルチスレッドプロセッサコアは、1つのコアで最大8つのスレッドを同時に実行する能力を持つ。これにより、複数の入出力を同時に処理するために必要な並列性を実現する。マルチスレッドによる並列処理を効率的に行うには、スレッドの切り替え時間を短くしなければならないが、これに対しては、スレッドごとに独立したレジスタを備えることで、1サイクルのスレッド切り替え時間を実現している。
スレッドスケジューラはイベントドリブンと呼ばれるスレッド選択方式を採用している。これは外部からの入力やタイマー、カウンタからの出力などのイベントが発生した際、そのイベントに関連するスレッドを優先して実行する仕組みだ。同方式によって、イベントを伴わないスレッドは自動的にスキップされるため、処理能力に対する電力効率が高いというメリットもある。
I/O処理に対する工夫は、時間に対する厳格さを実現するためのものだ。具体的には、入力信号が変化した際のタイムスタンプを記録する機能や、特定の信号を出力する際にその出力を行うまでの遅延時間を設定できる機能などを備えている。さらに、プロセッサコアの処理負荷を抑える条件判断機能も用意されている。これを使うことにより、特定の性質を持つ信号が入力されたら、プロセッサコアにそれをイベントとして通知して処理を行わせるといった動作が可能である。
並列処理を効率的に行うには、それぞれの処理間の連携が重要である。こに対して、XCoreアーキテクチャは「Xlink」と呼ばれる通信機能で対処している。この機能は、スイッチを用いて異なるスレッド同士の1対1の接続と同期を実現するというもの。通信データの到達時間や終了時間を予測できることを特徴とする。一般的な共有バスにおける、トラフィックが増加すると通信データの到達時間や終了時間が予測できないという問題を解消する。
また、Xlinkはプロセッサコア間の通信やチップ外の通信向けにも拡張されており、XCoreアーキテクチャにのっとったチップを複数個接続することにも利用できる。例えば、アプリケーションに必要とされる処理能力に対して1つのチップでは処理能力が不十分である場合、複数のチップを連結させて処理能力の向上を図ることが可能だ。
まず、マルチスレッドプロセッサコアは、1つのコアで最大8つのスレッドを同時に実行する能力を持つ。これにより、複数の入出力を同時に処理するために必要な並列性を実現する。マルチスレッドによる並列処理を効率的に行うには、スレッドの切り替え時間を短くしなければならないが、これに対しては、スレッドごとに独立したレジスタを備えることで、1サイクルのスレッド切り替え時間を実現している。
スレッドスケジューラはイベントドリブンと呼ばれるスレッド選択方式を採用している。これは外部からの入力やタイマー、カウンタからの出力などのイベントが発生した際、そのイベントに関連するスレッドを優先して実行する仕組みだ。同方式によって、イベントを伴わないスレッドは自動的にスキップされるため、処理能力に対する電力効率が高いというメリットもある。
I/O処理に対する工夫は、時間に対する厳格さを実現するためのものだ。具体的には、入力信号が変化した際のタイムスタンプを記録する機能や、特定の信号を出力する際にその出力を行うまでの遅延時間を設定できる機能などを備えている。さらに、プロセッサコアの処理負荷を抑える条件判断機能も用意されている。これを使うことにより、特定の性質を持つ信号が入力されたら、プロセッサコアにそれをイベントとして通知して処理を行わせるといった動作が可能である。
並列処理を効率的に行うには、それぞれの処理間の連携が重要である。こに対して、XCoreアーキテクチャは「Xlink」と呼ばれる通信機能で対処している。この機能は、スイッチを用いて異なるスレッド同士の1対1の接続と同期を実現するというもの。通信データの到達時間や終了時間を予測できることを特徴とする。一般的な共有バスにおける、トラフィックが増加すると通信データの到達時間や終了時間が予測できないという問題を解消する。
また、Xlinkはプロセッサコア間の通信やチップ外の通信向けにも拡張されており、XCoreアーキテクチャにのっとったチップを複数個接続することにも利用できる。例えば、アプリケーションに必要とされる処理能力に対して1つのチップでは処理能力が不十分である場合、複数のチップを連結させて処理能力の向上を図ることが可能だ。
開発環境の提供
高い並列度を備えたプロセッサの場合、プログラミング言語や開発環境の良し悪しが普及の鍵となる。上述したXCoreアーキテクチャの特徴的な機能は、一般的なC言語では活用することができない。そのため、XMOS社はC言語を拡張したプログラミング言語であるXCを開発した。XCoreアーキテクチャに特化した部分以外はほぼ通常のC言語と同じなので、容易に使いこなすことができるという。
提供される開発環境は、C/C++コンパイラやXCコンパイラ、リンカー、アセンブラ、デバッガ、プロファイラ、ローダー、シミュレータなど。デバッガは、ハードウエア技術者がデバッグしやすいように、入出力信号の波形表示機能を備えている。
XMOS社はプログラミング言語や開発環境の重要性を考慮し、「楽しく使えることや、『これでなければならない』と思えるほど使いやすいことを目標として、XCoreベースのプロセッサ向け開発環境の開発作業を進めている」(同社CEOのJames Foster氏)という。
(小野 明久)
連絡先:+44-0-117-915-1271
提供される開発環境は、C/C++コンパイラやXCコンパイラ、リンカー、アセンブラ、デバッガ、プロファイラ、ローダー、シミュレータなど。デバッガは、ハードウエア技術者がデバッグしやすいように、入出力信号の波形表示機能を備えている。
XMOS社はプログラミング言語や開発環境の重要性を考慮し、「楽しく使えることや、『これでなければならない』と思えるほど使いやすいことを目標として、XCoreベースのプロセッサ向け開発環境の開発作業を進めている」(同社CEOのJames Foster氏)という。
(小野 明久)
連絡先:+44-0-117-915-1271











