マルチプロセッサLSIに適したオンチップ・ネットワーク ――ダイレクト・データフロー・インターコネクト
● マルチマスタ時のオーバヘッド
図1では,バス・マスタと呼ばれるバス・トランザクションを開始するモジュールが複数存在します.プロセッサやDMA(direct memory access)などがバス・マスタ・モジュールの代表です.
このような場合,一般にアクセスを調停するアービタが必要になります.複数のバス・マスタから同時にアクセス要求があった場合,アクセス権をとれなかったモジュールは待たされることになります(図2(a)).つまり,アクセス遅延(オーバヘッド)が生じます.また,SDRAMなどへのアクセスの場合,メモリ・アクセスの遅延も加わり,アクセス遅延はますます大きくなります.
複数のマスタがアクセスするということは,必然的にデータの転送量が増大します.例えば,二つのプロセッサを用いてマルチメディア処理を行う場合,データをプロセッサ間で共有することが考えられます.共有メモリはバス上に置かれ,複数のマスタによる共有メモリへの読み書きが繰り返されます(図2(b)).これが,マルチプロセッサ(マルチマスタ)システムにおけるデータ転送のオーバヘッドとなります(コラム「バス性能がシステム性能を決める」を参照).
処理ユニット(プロセッサ,ハードウェア・モジュール)を100%動作させるには,データ,命令(プログラム,コントロール)が途切れることなく各ユニットに供給できなくてはなりません.データ・バスの容量(最大データ転送量)や最大遅延を考慮して,バッファリングやスケジューリングを行うわけですが,それらの見積もりは簡単ではありません.しかも,設計途上の仕様変更(おもに機能追加)が頻繁に行われるため,ますます見積もりは困難になっています(コラム「バスの性能を上げる」を参照).