マルチプロセッサで実現したH.264ビデオ・デコーダ ――コンフィギャラブル・プロセッサのユーザ定義命令とオンチップ・バスを活用
● 電力制御やデータ転置にオンチップ・バスを活用
設計したビデオ・システムでは,TIEキューとTIEポートも多用しています.二つのXtensaのうち,Parserがマスタになります.Parserが何もデータを持たない場合,PixelはIDLEになります.そこで消費電力を低減するために,ParserでPixelのクロック・ゲートを直接制御できるようにしました.XtensaにはRunStallという入力があり,外部から直接クロックをOFFできます.ParserのTIEポート(出力)をPixelのRunStallに接続することで,この機能を実現しています.また,時としてParserはPixelに割り込みをかける必要があるのですが,これもTIEポートを用いました.
Pixelには,Transposeというブロックがあります.これは特別なメモリ・アレイで,2次元行列の転置を実行するためのものです.ビデオ・データ処理では,2次元行列の演算がよく実行されます.SIMD命令が威力を発揮するわけですが,行計算を実行した後で同じ処理を列に施そうとする場合,データ・セットを転置する必要があります.転置のための命令はMMXなどでも用意されているのですが,意外と多くのサイクル数が必要です.時として演算そのものより転置にサイクル数が必要になるといった場合もあります.
設計したビデオ・デコーダでは当初,転置をサポートする拡張命令を設計していました.しかし,転置を施す処理が頻繁に出てくることから,転置をメモリ内で自動的に行える特殊なメモリ・アレイを設計しました(図14).それをTIEキューに接続すると,転置に必要なサイクル数がゼロになります.このメモリは転置のみならず,将来設計予定のエンコーダ・システムにおいて別の機能を担う予定です.こうした特別なメモリ・ユニットは,通常のメモリ・インターフェース(キャッシュなど)には直接接続できませんが,TIEポート,TIEキュー・インターフェースであれば接続可能です.
図14 転置メモリ
TIEキューに接続すると,転置に必要なサイクル数がゼロになる.
参考・引用*文献
(1) 東原朋成;マルチプロセッサLSIに適したオンチップ・ネットワーク,pp.87-93,Design Wave Magazine,2005年6月号.
(2) * ITU-T Rec.H.264,May 2003.
(3) 特集2 動画像圧縮伸張規格H.264のハード&ソフト設計,Design Wave Magazine,2004年8月号.
とうはら・ともなり
米国Tensilica社