ソフトウェアで機能を定義するLSIを使ってみた ―― XMOS Semiconductor社「XS1-G」レビュー

相田 泰志

tag: 組み込み 半導体

技術解説 2009年5月25日

3. XCコンパイラによる開発

 XMOSアーキテクチャの特徴は,チップとそのプログラムを簡単に行えるXCコンパイラにあります.C言語からの拡張部分を説明します.

● par構文

 XCコンパイラの特徴がpar文です(リスト1)

 それぞれのスレッドとして定義したプログラム(サブルーチン)をpar文でくくることによって並列に動作させることができます.特にそれぞれのスレッドの優先順位などを定義する必要もありません.並列に動作させることができます.


リスト1 par構文

● chanチャネル 

 スレッド間のデータの受け渡しを行うチャネルを定義します(リスト2).これによってチャネルがきたときにスレッドを動かすなどの,タスク間の通信を実行できます.Aタスクが終了したらBタスクを動かすなど,OSでいうセマフォやメール・ボックスのような役目も果たすことができます.このチャネルは,1クロック・ステートにて実行されます.


リスト2 char分

● I/O定義文

 XS1_PORT_(アドレス)という形でハードウェア・ポートを定義できます(リスト3).もちろんCPUのI/Oレジスタのような,定義された構成はありませんので,すべてソフトウェアにて定義することができます.


リスト3 I/O定義

 また,ポートへのデータ書き込みもリスト3のような形で書くことができます.

● タイマ変数

 時間間隔を生成するためにタイマ関数があります(リスト4).フリー・カウント・タイマとして動作するので,カウンタの値でハードウェアの時間間隔などを作成できます.各スレッドのクロック周波数にて登録可能です.


リスト4 タイマ変数

 以上のように,タスク間のチャネルなどの機能があるのみで,タスクの実行順位などOS的な機能,定義は一切ありません.このようにC言語のみでリアルタイム制御を定義できます.FPGAとは違った新しいアーキテクチャを持ったプログラマブル・デバイスといえます.FPGAでプログラムを行うより,チューリング・マシン的な処理になれたソフトウェア・エンジニアにとっては,簡単にハードウェアまでを構成できる方式ともいえます.

● まとめ

 XMOSアーキテクチャを考えると,まだまだいろいろな可能性が考えられます.今までインバータ制御や温度制御など,リアルタイムの組み込みシステムを組んできた方であれば,割り込みやタスクのディスパッチを考えないプログラムなど考えられなかった方式です.今後,いろいろな用途での応用が可能なデバイスではないかと思います.

 XS1-Gの評価キットには,LCD表示器やA-D/D-Aコンバータなどもついており,ゲームやMP3の再生,グラフィック・イコライザのデモンストレーションなどもXS1のチップで行っており,マルチメディア系にも十分に活用できる性能を持っています.また機会があれば,紹介したいと思います.

 XMOSの情報については,ポータル・サイトとしてXlinker(図11)というサイトが運営されています.さまざまなexampleやIPコア的なプログラムが登録され活用することができます.


図11 XMOSのポータル・サイト
http://Xlinker.com)


そうだ・やすし
西山工業(株)
 

 

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日