マルチプロセッサで実現したH.264ビデオ・デコーダ ――コンフィギャラブル・プロセッサのユーザ定義命令とオンチップ・バスを活用
●○● Column ●○●
Xtensaプロセッサによる開発
Tensilica社のXtensaは,ユーザが開発するシステムに最適化できるコンフィギャラブル・プロセッサ・コアです.DSP的にプロセッサを拡張することもできますし,Linuxなどを搭載するシステム・コントローラとしてコンフィグレーションすることもできます.最新のXtensa LXでは,VLIWライクな拡張命令(FLIX),TIEキュー,TIEポートなどをサポートしています.
● 開発環境
Xtensaベースの開発では,統合開発環境(IDE)Xtensa Xplorerを使用します.開発エンジニアはTIE拡張命令の開発,アプリケーション・ソフトウェアの開発,デバッグ,実機システム(エミュレーション・ボード)を用いたデバッグなどは,IDEを用いて行います(図B-1).
図B-1 統合開発環境(IDE)Xtensa Xplorer
マルチコア・システムのモデリングには,XTMP(Xtensa Mode-ling Protocol)を使用します.このXTMPはSystemCベースのモデルともインターフェースできます.
筆者らが設計したビデオ・システムでは,Xtensa Xplorer上でマルチプロセッサ・モデルを開発しました.デコーダ・ソフトウェアを開発するエンジニアは,このモデル上でプログラムを実行することで動作検証(アウトプットの正しさとリアルタイム性の確認)を行い,その後,最終検証としてRTLシミュレーションを実施しました.XTMPは完全なCモデルなので,使用にあたってSystemCの知識は必要ありません.
コンフィギャラブル・プロセッサ・ベースのマルチコアLSIの開発では,複数のプロセッサ・コアはまったく異なる拡張,コンフィグレーションになるかもしれません(つまりヘテロジニアスなマルチプロセッサ).しかし開発ツールが統一されていれば,異なるベンダの環境を統合するといった手間はなくなります.XTMPなどを用いてマルチプロセッサを取り扱うソフトウェア・モデルを構築すれば,実機システムの挙動をソフトウェア・モデル上の挙動と比較することも可能です.このヘテロジニアスなマルチプロセッサ・システムをホモジニアスな開発環境で設計できることはXtensaプロセッサの特徴といえます.
● TIEキューとTIEポート
筆者は本誌2005年6月号において,設計者が自由に定義できる新しいタイプのインターフェース(TIEポート,TIEキュー)について解説しました(1).TIEポートとTIEキューは,プロセッサ間,プロセッサとハード・ワイヤード論理のブロック間を直接接続でき,共有ネットワーク(バス,リング,メッシュなど)を補完するものです.共有ネットワークと1対1のネットワークを組み合わせることで,満たさなくてはならない設計条件(総データ量とデータ遅延)を現実的に解決することができます.
Xtensaのプロセッサ・インターフェース(PIF)とTIEキュー,TIEポートを活用して有機的にネットワークを構成した例を図B-2に示します.
図B-2 TIEキューとTIEポートによるネットワーク例
Xtensa間およびXtensaとハードウェア・モジュールの間をPIF,TIEキュー,TIEポートを使って接続している.