マルチプロセッサLSIに適したオンチップ・ネットワーク ――ダイレクト・データフロー・インターコネクト
●○● Column 1 ●○●
バス性能がシステム性能を決める
プロセッサの演算能力からくる限界によって,マルチメディア・アプリケーションなどではマルチプロセッサ(マルチマスタ)シス
テムがより重要になると予想されます.例えば,HDTV(high definition television)レベルのMPEGビデオ・デコードのように高い性能が要求される場合,ASIC設計上の制約などからクロック周波数をひたすら上げていくことそのものに無理があります.
筆者が過去に手がけたMPEG(ビデオ,オーディオ)を扱うシステムLSI(ASIC)では,少なくとも二つのプロセッサと32チャネルのDMA(各チャネルは同時にバスを要求できる)を搭載していました.MPEGビデオなどは,要求される演算能力が数GOPS(giga operations per second)にも達します.プロセッサのほかに,いわゆるアクセラレータとしていくつものハードウェア・モジュールを搭載したので,多チャネルDMAエンジンが必要だったのです.
筆者が設計したLSIにおいて性能を左右したのは,演算能力ではなく実はバスでした.バスの最大データ転送量は,シェアしているメモリ(例えば外部DDR SDRAM)のデータ転送量より大きくする必要があります.バス・アクセスができるだけ平均化するよう,ピーク時のデータ転送要求がバスの最大データ転送速度を超えないようにソフトウェアを最適化しました.しかし,ある条件下で要求量が許容量を超えることを確認しました.また,別の条件下では許容量以下だったのですが,アクセス遅延が予想以上に大きくなり,ハード・リアルタイムのクリティカル時間を超えてしまい,不つごうが発生する可能性があることを発見しました.
ソフトウェアでバス・アクセス・スケジュールを調整して問題を解決できなかったため,問題を生じたハードウェア・モジュールのバッファ容量を大きくするというハードウェアの変更で対処することを検討しましたが,非常に高コストになることが判明しました.プロジェクト・スケジュールなど,ほかの要素を検討した結果,性能を落とすということでこの問題を解決せざるをえなかったことを,今でも残念に思っています.