説明

バス・ブリッジ

【課題】 課題は画像処理回路Aから画像処理回路Bへデータを受け渡すプロセスにおいて、画像処理回路Aが画像を転送し終えて画像処理回路Bへ通知した時点で画像データはバスブリッジ内のライトバッファに保持されたままである可能性があり、画像処理回路Bが画像データをリードした時点でのデータは無効となることである。
【解決手段】 一つのバスにつながるマスタの数が多いときはバスブリッジでバスを分割する必要が生じるが、ブリッジを隔てたマスタ間でデータの受け渡しをするときにリードがライトを追い越さないように、マスタ1が未使用領域の特定のアドレスにアクセスしたとき、バスブリッジは特殊コマンドと解釈し、ブリッジ内のライトバッファにデータが残っていれば無くなってから前記アクセスのアクノリッジをマスタ1へ返す手段をバスブリッジに持たせる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はバスとバスとを連結しデータを伝達するブリッジ回路に関するものである。特にバスに多数の画像処理デバイスなどのマスタデバイスを接続するバスのブリッジに関する。
【背景技術】
【0002】
画像処理、例えば圧縮、伸長、濃度変換、色変換、補正処理、各種フィルタ処理などを行うシステムにおいては処理の高速化のために専用のハード回路を用意するケースがある。その場合、画像データを処理する画像処理回路の個数はシステムの高機能化により必然的に増加する。すなわち多数の画像処理回路がバスに接続する必要性が生じる。
【0003】
その際に顕在化される課題としては高速動作が困難になることである。つまり多数の画像処理部を接続するためバスのパス長が長くなることと、バスの切替の論理が複雑化することとにより、バス部の動作周波数が制限されることである。動作周波数はシステムの処理能力に直結するファクタであるため、それを避けるために一つのバスに接続されるデバイスの数を制限しなければならない。そのためにバスを分割しバスブリッジで分割されたバスを接続する必要がある。
【0004】
そのようなバスの構成を図3を用いて説明する。同図においてバスAとバスBはバスブリッジ901によって接続されている。バスAはライトバスA(801)とリードバスA(803)から構成される。ライトバスA(801)とリードバスA(803)は独立して動作可能に構成されている。また、バスBはライトバスB(802)とリードバスB(804)とから構成される。ライトバスB(802)とリードバスB(804)はバスAと同様に独立して動作可能に構成されている。
【0005】
バスブリッジ901はライトバッファ908を有している。ライトバッファ908はバスA側から転送されるライト命令をバッファするためのものであり、バスA側からのライト転送を対応するバスBの転送終了を待つことなく終了することを可能にする。これはライトバスA(801)上のライトデータ転送がライトバスA(801)を占有する時間を短くし、ライトバスA(801)のバンド幅を他の転送のために温存する効果があるため一般的に採用されている手法である。
【0006】
902はメモリコントローラであり、バスBにスレーブとして接続されて、バスBのマスタからの要求を受けてメモリ903を制御するための信号を生成しメモリ903を制御する。
【0007】
905、907は画像処理回部でありそれぞれ内部にダイレクトメモリアクセスコントローラ(DMAC)を有している。DMACは、それぞれの画像処理回路が必要とするデータをメモリ903からリードし、処理されたデータをメモリ903へ書き戻す機能を持つ。したがってバスAに接続される画像処理部A(905)はバスAのマスタとして動作し、バスBに接続される画像処理部B(907)はバスBのマスタとして動作する。
【0008】
つまり画像処理回路A(905)はメモリ903に格納済の画像データを読み出し、自身の画像処理回路により画像を変換生成し、生成された画像をメモリ903へ書き戻すものである。同様に画像処理回路B(907)はメモリ903に格納済の画像データを読み出し、自身の画像処理回路により画像を変換生成し、生成された画像をメモリ903へ書き戻すものである。
【0009】
図4はさらにバスブリッジ901の内部構成を説明するブロック図である。
【0010】
同図においてライトバスA(801)とライトバスB(802)は、それぞれADDRESS、DATA、TX、RDYの信号を含んでいる。TXはマスタが出力するADDRESS、DATA信号が有効であるタイミングを示す信号であり転送が行われていることを示す。RDYはスレーブがADDRESS信号、DATA信号を受信したことをマスタへ知らせる信号であり転送を終了させる。
【0011】
951、952はそれぞれ有限ステイトマシンであり951はTXを受けるとライトバッファ908がフル状態でなければライトバス801のRDY信号をアクティブに駆動するステイトマシンである。またステイトマシン952はライトバッファ908がエンプティ(空)状態でなければ、ライトバスBへTX信号を出力しライトバスBに接続されたスレーブであるメモリーコントローラ902から返されるRDY信号を受けるまでサイクルを継続させるステイトマシンである。
【0012】
同様にリードバスA(803)とリードバスB(804)はそれぞれ、ADDRESS、TX、DATA、RDYを含んでいる。TXはマスタが出力するADDRESS信号が有効であるタイミングを示す信号でありリード転送中であることを示す。リードバスA側から送られたADDRESS信号とTX信号はフリップフロップ953にラッチされリードバスB(802)側へ出力される。
【0013】
リードバスのRDYはスレーブから返送されるDATA信号の有効期間を示す信号であり、リードバスBのスレーブであるメモリーコントローラ902から返されるDATAとDRDYをバスブリッジ901はフリップフロップ954でラッチしてリードバスA(803)側へ出力される。
【0014】
図3においては画像処理回路は2つしか記載していないがそれは説明の簡単のためで一般にはより多数接続されている。また、システムを統括制御するCPU等が一般に接続されるが省略されているのも説明の簡単のためである。また、一つの転送において一般にデータは4回または8回まとめてバースト転送されるが簡単のためシングル転送のみを例に説明する。
【0015】
上記の構成において、画像処理回路A(905)と画像処理回路B(907)はそれら自身の間に転送終了通知手段909を備えている。この通信手段は複数の画像処理回路部間でまとまった画像データの受け渡しをするためのものである。
【0016】
例えば、ある画像データを画像処理回路Aにより第1の画像処理を施してメモリ903内のある領域に格納し、さらに領域2に格納された画像データを画像処理回路Bが逆順に読み取り画像処理を施すことがある。画像データを逆順に走査して読み取ることは、画像を180度回転させるためにしばしば必要な方法である。ただし画像処理回路Bが通知を受けた後にどうのような動作するべきか(開始アドレス、画像処理のための設定)については図示しないCPUによって予め設定されておく必要がある。
【0017】
従来例としては、例えば、省電力を意味するホストからの第一のスペシャルサイクルを取得して第2のスペシャルサイクルをPCIデバイスへ出力するものがある(特許文献1参照)。
【特許文献1】特登録3425888号公報
【発明の開示】
【発明が解決しようとする課題】
【0018】
課題は画像処理回路Aから画像処理回路Bへデータを受け渡すプロセスにおいて、画像処理回路Aが画像を転送し終えて画像処理回路Bへ通知した時点で画像データはバスブリッジ901内のライトバッファに保持されたままである可能性があり、画像処理回路Bが画像データをリードした時点でのデータは無効となることである。
【0019】
図5の波形図がその例を示す。同図においてサイクル1において画像処理回路AはライトバスA/TXをアサートすることによりライト転送を開始する。バスブリッジ901内のステイトマシン951はライトバッファ908がフル状態ではないのでRDYをサイクル3にて返しライトバスAのライト転送は終了する。その時点でライトバスB側の転送は一つ前のライト転送を実行中でありそれはサイクル6においてメモリコントローラ902がデータを受信しRDYを返すことにより終了する。ステイトマシン952はライトバッファ950が最後のライト転送情報を持つためエンプティ状態ではないのでサイクル8でTXをアサートすることにより最後のライト転送を開始する。それはサイクル15でメモリコントローラ902がデータを受信しRDYを返すことにより終了する。
【0020】
一方、画像処理回路Aにとっての最後のライト転送はサイクル2で終了したのでサイクル3で、画像処理回路Aは画像処理回路Bは前述の転送終了通知手段909によってそれを通知する。画像処理回路Bは通知を受けたのでサイクル4において最初のリード転送を開始する。そのリード転送のアドレスは画像処理回路Aによる最後のライトアドレスと等しい。
【0021】
ライトバスBにおいてライトの最終転送は8サイクル目から始まるのに対しリード転送は4サイクル目から開始される。したがってメモリコントローラ902はリード転送を先に受付け、13サイクル目においてメモリコントローラ902からリードされるデータは無効データとなりデータの受け渡しは失敗する。
【0022】
本課題の解決方法として、画像処理回路Bがライト転送終了の通知を受けてから一定時間待機してからリード転送を開始するという手法が考えられる。しかし待機する時間長を長くしないと問題が発生する可能性は残るし長くしすぎるとシステムの性能が低下してしまう。また他の解決手法として、バスブリッジ内のライトバッファの状態がわかるようにバスAのインターフェイスを追加するという方法も考えられる。しかしバス仕様が複雑化し従来との互換性が無くなるという問題があった。
【課題を解決するための手段】
【0023】
本発明はかかる問題を解決するために以下の手段を設ける。
【0024】
マスタが出力するアドレスを予め定められた値と比較して一致しているかどうかを検出する特殊アドレス検出手段と、前記手段で特定アドレスが検出されたときはライトバッファが空になるまでライト転送の終了を遅らせるシーケンス手段をバスブリッジ内にもうける。
【0025】
以上の手段を備えた構成でバスAに接続されたマスタはあるエリア内のデータを送り終えた後に前記特殊アドレスへのライト動作を発行させ、その擬似ライト転送が終了した後に、転送終了通知信号を画像処理回路Bへ送信することによりバスB側における画像処理回路Aからのライト要求と画像処理回路Bからのリード要求が時間的に前後しないようにする。
【発明の効果】
【0026】
以上説明したように本発明によれば、システムのパフォーマンスを損なうことなくまたバスの仕様を変更することなく、2つのマスタ間の転送の前後関係を確実に保証することが可能になる。
【発明を実施するための最良の形態】
【0027】
(実施例1)
以下添付図面を参照して、本発明に係る好適な実施例を説明する。
【0028】
図1は本発明を実施したバスブリッジの構成を説明するブロック図である。
【0029】
同図においてライトバスA(801)とライトバスB(802)は、それぞれADDRESS、DATA、TX、RDYの信号を含んでいる。TXはマスタが出力するADDRESS、DATA信号が有効であるタイミングを示す信号でありRDYはスレーブがADDRESS信号、DATA信号を受信したことをマスタへ知らせる信号である。
【0030】
909は本発明の特徴となるブロックで、ライトバスAのADDRESSと予め定められた規定値とを常に比較する回路である。規定値はアドレスの使用領域外に設定する。バスブリッジに入力されたアドレスと規定値が一致ししているときはフラッシュ信号950を出力する。フラッシュ信号が発生した転送は擬似のライト転送であるのでADDRESSSとDATA信号の値はライトバッファ908へは格納されない。
【0031】
951は有限ステイトマシンでありフラッシュ信号がインアクティブであれば従来例と同様の状態遷移を行う。つまりライトバスAからのTXを受けるとライトバッファ908がフル状態でなければライトバス801のRDY信号をアクティブに駆動する。それに対しフラッシュ信号950が発生したときはライトバッファ908がエンプティ状態になるまでRDY信号を返さない。
【0032】
952は有限ステイトマシンであり951はTXを受けるとライトバッファ908がフル状態でなければライトバス801のRDY信号をアクティブに駆動するステイトマシンである。またステイトマシン952はライトバッファ908がエンプティ(空)状態でなければ、ライトバスBへTX信号を出力しライトバスBに接続されたスレーブであるメモリーコントローラ902から返されるRDY信号を受けるまえサイクルを継続させるステイトマシンである。これは従来例と同様である。
【0033】
リードバスAとリードバスBはそれぞれ、ADDRESS、TX、DATA、RDYを含んでいる。TXはマスタが出力するADDRESS信号が有効であるタイミングを示す信号である。リードバスA側から送られたADDRESS信号とTX信号はフリップフロップ953にラッチされリードバスB側へ出力される。
RDYはスレーブから返送されるDATA信号の有効期間を示す信号であり、リードバスBのスレーブであるメモリーコントローラ902から返されるDATAとDRDYをバスブリッジ901はフリップフロップ956でラッチしてリードバスA側へ出力される。すなわちリードのパスに関しては従来例と同様である。
【0034】
以上のように構成されたバスブリッジ実施形において画像処理回路Aから画像処理回路Bへデータを渡すときの手順を図2の波形図に沿って説明する。
【0035】
画像処理回路Aはあるエリアのデータに対して画像処理を施し最後の処理済データをサイクル1においてライトを開始する。バスブリッジ901のステイトマシン951は、フラッシュ信号950が発生せず、かつライトバッファがフル状態ではないので次のサイクル2において、RDYをライトバスAへ出力してライト転送を終える。
【0036】
次に画像処理回路Aはサイクル4においてライトバッファ908をフラッシュする目的で特殊アドレスへのライト転送をライトバスA/TXを立ち上げることにより開始する。本サイクルを発生する仕組みは予め画像処理回路A内のDMACに備えておく。
【0037】
特殊アドレス検出手段909は転送開始と同時にフラッシュ信号950を出力する。ステイトマシン955はフラッシュ信号950がアクティブなのでライトバッファ908がエンプティで無い限りRDYを返さない。
【0038】
一方ライトバッファ908はサイクル4の時点で2つのライト命令を保持している。サイクル5でメモリコントローラ902からRDYが出力されることによりライトバスB上の転送が一つ終了し、最後の転送がライトバスB/TXをステイトマシン952が出力することによりサイクル8で開始される。その最後のライトサイクルはサイクル13でメモリコントローラ902がRDYを出力することにより終了しサイクル15においてライトバッファがエンプティ状態になりEMPTY信号がアサートされる。EMPTY信号のアサートを受けてステイトマシン951の状態が特殊アドレスへの転送を終わらせる状態に遷移しライトバスAにRDY信号をサイクル15で出力する。画像処理回路AはRDY信号をみてフラッシュ動作のための転送を終了しサイクル16において転送終了通知信号を画像処理回路Bへ出力する。画像処理回路Bはサイクル18で最初のリードアクセスをリードバスA/TX信号をドライブすることにより開始する。
【0039】
以上のシーケンスから明らかのようにライトバスBにおける最終ライト転送(7サイクルから13サイクルまで)とリードの最初の転送(17サイクルから)の前後関係が確実に守られる。
【図面の簡単な説明】
【0040】
【図1】本発明のバスブリッジの構成を説明するブロック図。
【図2】本発明を実施したバスブリッジを用いて画像処理回路間でデータの受け渡しをするタイミングを説明する波形図。
【図3】バスブリッジを含むバス構成を説明する図(実施例と従来例とに共通)。
【図4】従来のバスブリッジの構成を説明するブロック図。
【図5】従来例のバスブリッジを用いて画像処理回路間でデータの受け渡しをする時の課題を説明する波形図。

【特許請求の範囲】
【請求項1】
ライト転送を一つ以上保持することが可能なバスブリッジにおいて
特定のアドレスへの転送命令を受信したときにその転送を少なくとも前記ライトバッファが空になるかまたは空になる条件が成立するまで前記転送が終了しないように制御するバスブリッジ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2008−102609(P2008−102609A)
【公開日】平成20年5月1日(2008.5.1)
【国際特許分類】
【出願番号】特願2006−282753(P2006−282753)
【出願日】平成18年10月17日(2006.10.17)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】