マルチプロセッサLSIに適したオンチップ・ネットワーク ――ダイレクト・データフロー・インターコネクト

東原朋成

tag: 組み込み

技術解説 2005年8月15日

● マルチマスタ時のオーバヘッド

 図1では,バス・マスタと呼ばれるバス・トランザクションを開始するモジュールが複数存在します.プロセッサやDMA(direct memory access)などがバス・マスタ・モジュールの代表です.

 このような場合,一般にアクセスを調停するアービタが必要になります.複数のバス・マスタから同時にアクセス要求があった場合,アクセス権をとれなかったモジュールは待たされることになります(図2(a)).つまり,アクセス遅延(オーバヘッド)が生じます.また,SDRAMなどへのアクセスの場合,メモリ・アクセスの遅延も加わり,アクセス遅延はますます大きくなります.

 複数のマスタがアクセスするということは,必然的にデータの転送量が増大します.例えば,二つのプロセッサを用いてマルチメディア処理を行う場合,データをプロセッサ間で共有することが考えられます.共有メモリはバス上に置かれ,複数のマスタによる共有メモリへの読み書きが繰り返されます(図2(b)).これが,マルチプロセッサ(マルチマスタ)システムにおけるデータ転送のオーバヘッドとなります(コラム「バス性能がシステム性能を決める」を参照).

 処理ユニット(プロセッサ,ハードウェア・モジュール)を100%動作させるには,データ,命令(プログラム,コントロール)が途切れることなく各ユニットに供給できなくてはなりません.データ・バスの容量(最大データ転送量)や最大遅延を考慮して,バッファリングやスケジューリングを行うわけですが,それらの見積もりは簡単ではありません.しかも,設計途上の仕様変更(おもに機能追加)が頻繁に行われるため,ますます見積もりは困難になっています(コラム「バスの性能を上げる」を参照).

f02_01.gif
図2 バス・システムで起こる問題の例
(a)におけるプロセッサBの要求は,プロセッサAのデータ転送が終了するまで待たされる.プロセッサBが次にバスを獲得できる保証はないので,プロセッサBは長時間待たされるかもしれない.すると,プロセッサBの実質演算能力が低下することになる.(b)のように,共有メモリを通してデータのやり取りを行うと,バス・アクセスが増大する.(c)のように,ハードウェア・モジュールが割り込みを発生すると,プロセッサはハードウェア・モジュールのステータスを読み込んで次のコマンドをセットしようとする.プロセッサはシステム・バスを介してアクセスするが,バスの状態によっては待たされる可能性がある.すると,ハード・リアルタイムの(時間に対して非常に厳しい)システムでは,要求される時間制約を満足できずシステム・フェイルになる.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! 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日