(57)【要約】【課題】  課題は画像処理回路Ａから画像処理回路Ｂへデータを受け渡すプロセスにおいて、画像処理回路Ａが画像を転送し終えて画像処理回路Ｂへ通知した時点で画像データはバスブリッジ内のライトバッファに保持されたままである可能性があり、画像処理回路Bが画像データをリードした時点でのデータは無効となることである。【解決手段】  一つのバスにつながるマスタの数が多いときはバスブリッジでバスを分割する必要が生じるが、ブリッジを隔てたマスタ間でデータの受け渡しをするときにリードがライトを追い越さないように、マスタ１が未使用領域の特定のアドレスにアクセスしたとき、バスブリッジは特殊コマンドと解釈し、ブリッジ内のライトバッファにデータが残っていれば無くなってから前記アクセスのアクノリッジをマスタ１へ返す手段をバスブリッジに持たせる。【選択図】  図１
2008102609.tif 000002
【特許請求の範囲】
【請求項１】
ライト転送を一つ以上保持することが可能なバスブリッジにおいて
特定のアドレスへの転送命令を受信したときにその転送を少なくとも前記ライトバッファが空になるかまたは空になる条件が成立するまで前記転送が終了しないように制御するバスブリッジ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はバスとバスとを連結しデータを伝達するブリッジ回路に関するものである。特にバスに多数の画像処理デバイスなどのマスタデバイスを接続するバスのブリッジに関する。
【背景技術】
【０００２】
画像処理、例えば圧縮、伸長、濃度変換、色変換、補正処理、各種フィルタ処理などを行うシステムにおいては処理の高速化のために専用のハード回路を用意するケースがある。その場合、画像データを処理する画像処理回路の個数はシステムの高機能化により必然的に増加する。すなわち多数の画像処理回路がバスに接続する必要性が生じる。
【０００３】
その際に顕在化される課題としては高速動作が困難になることである。つまり多数の画像処理部を接続するためバスのパス長が長くなることと、バスの切替の論理が複雑化することとにより、バス部の動作周波数が制限されることである。動作周波数はシステムの処理能力に直結するファクタであるため、それを避けるために一つのバスに接続されるデバイスの数を制限しなければならない。そのためにバスを分割しバスブリッジで分割されたバスを接続する必要がある。
【０００４】
そのようなバスの構成を図３を用いて説明する。同図においてバスＡとバスＢはバスブリッジ９０１によって接続されている。バスＡはライトバスＡ（８０１）とリードバスＡ（８０３）から構成される。ライトバスＡ（８０１）とリードバスＡ（８０３）は独立して動作可能に構成されている。また、バスＢはライトバスＢ（８０２）とリードバスＢ（８０４）とから構成される。ライトバスＢ（８０２）とリードバスＢ（８０４）はバスＡと同様に独立して動作可能に構成されている。
【０００５】
バスブリッジ９０１はライトバッファ９０８を有している。ライトバッファ９０８はバスＡ側から転送されるライト命令をバッファするためのものであり、バスA側からのライト転送を対応するバスＢの転送終了を待つことなく終了することを可能にする。これはライトバスA（８０１）上のライトデータ転送がライトバスA（８０１）を占有する時間を短くし、ライトバスA（８０１）のバンド幅を他の転送のために温存する効果があるため一般的に採用されている手法である。
【０００６】
９０２はメモリコントローラであり、バスＢにスレーブとして接続されて、バスＢのマスタからの要求を受けてメモリ９０３を制御するための信号を生成しメモリ９０３を制御する。
【０００７】
９０５、９０７は画像処理回部でありそれぞれ内部にダイレクトメモリアクセスコントローラ（ＤＭＡＣ）を有している。ＤＭＡＣは、それぞれの画像処理回路が必要とするデータをメモリ９０３からリードし、処理されたデータをメモリ９０３へ書き戻す機能を持つ。したがってバスＡに接続される画像処理部A（９０５）はバスＡのマスタとして動作し、バスＢに接続される画像処理部Ｂ（９０７）はバスBのマスタとして動作する。
【０００８】
つまり画像処理回路Ａ（９０５）はメモリ９０３に格納済の画像データを読み出し、自身の画像処理回路により画像を変換生成し、生成された画像をメモリ９０３へ書き戻すものである。同様に画像処理回路Ｂ（９０７）はメモリ９０３に格納済の画像データを読み出し、自身の画像処理回路により画像を変換生成し、生成された画像をメモリ９０３へ書き戻すものである。
【０００９】
図４はさらにバスブリッジ９０１の内部構成を説明するブロック図である。
【００１０】
同図においてライトバスＡ（８０１）とライトバスＢ（８０２）は、それぞれＡＤＤＲＥＳＳ、ＤＡＴＡ、ＴＸ、ＲＤＹの信号を含んでいる。ＴＸはマスタが出力するＡＤＤＲＥＳＳ、ＤＡＴＡ信号が有効であるタイミングを示す信号であり転送が行われていることを示す。ＲＤＹはスレーブがＡＤＤＲＥＳＳ信号、ＤＡＴＡ信号を受信したことをマスタへ知らせる信号であり転送を終了させる。
【００１１】
９５１、９５２はそれぞれ有限ステイトマシンであり９５１はＴＸを受けるとライトバッファ９０８がフル状態でなければライトバス８０１のＲＤＹ信号をアクティブに駆動するステイトマシンである。またステイトマシン９５２はライトバッファ９０８がエンプティ（空）状態でなければ、ライトバスＢへＴＸ信号を出力しライトバスＢに接続されたスレーブであるメモリーコントローラ９０２から返されるＲＤＹ信号を受けるまでサイクルを継続させるステイトマシンである。
【００１２】
同様にリードバスＡ（８０３）とリードバスＢ（８０４）はそれぞれ、ＡＤＤＲＥＳＳ、ＴＸ、ＤＡＴＡ、ＲＤＹを含んでいる。ＴＸはマスタが出力するＡＤＤＲＥＳＳ信号が有効であるタイミングを示す信号でありリード転送中であることを示す。リードバスＡ側から送られたＡＤＤＲＥＳＳ信号とＴＸ信号はフリップフロップ９５３にラッチされリードバスB（８０２）側へ出力される。
【００１３】
リードバスのＲＤＹはスレーブから返送されるＤＡＴＡ信号の有効期間を示す信号であり、リードバスＢのスレーブであるメモリーコントローラ９０２から返されるＤＡＴＡとＤＲＤＹをバスブリッジ９０１はフリップフロップ９５４でラッチしてリードバスＡ（８０３）側へ出力される。
【００１４】
図３においては画像処理回路は２つしか記載していないがそれは説明の簡単のためで一般にはより多数接続されている。また、システムを統括制御するＣＰＵ等が一般に接続されるが省略されているのも説明の簡単のためである。また、一つの転送において一般にデータは４回または８回まとめてバースト転送されるが簡単のためシングル転送のみを例に説明する。
【００１５】
上記の構成において、画像処理回路A（９０５）と画像処理回路Ｂ（９０７）はそれら自身の間に転送終了通知手段９０９を備えている。この通信手段は複数の画像処理回路部間でまとまった画像データの受け渡しをするためのものである。
【００１６】
例えば、ある画像データを画像処理回路Ａにより第１の画像処理を施してメモリ９０３内のある領域に格納し、さらに領域２に格納された画像データを画像処理回路Ｂが逆順に読み取り画像処理を施すことがある。画像データを逆順に走査して読み取ることは、画像を１８０度回転させるためにしばしば必要な方法である。ただし画像処理回路Ｂが通知を受けた後にどうのような動作するべきか（開始アドレス、画像処理のための設定）については図示しないＣＰＵによって予め設定されておく必要がある。
【００１７】
従来例としては、例えば、省電力を意味するホストからの第一のスペシャルサイクルを取得して第２のスペシャルサイクルをＰＣＩデバイスへ出力するものがある（特許文献１参照）。
【特許文献１】特登録３４２５８８８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１８】
課題は画像処理回路Ａから画像処理回路Ｂへデータを受け渡すプロセスにおいて、画像処理回路Ａが画像を転送し終えて画像処理回路Ｂへ通知した時点で画像データはバスブリッジ９０１内のライトバッファに保持されたままである可能性があり、画像処理回路Bが画像データをリードした時点でのデータは無効となることである。
【００１９】
図５の波形図がその例を示す。同図においてサイクル1において画像処理回路ＡはライトバスＡ／ＴＸをアサートすることによりライト転送を開始する。バスブリッジ９０１内のステイトマシン９５１はライトバッファ９０８がフル状態ではないのでＲＤＹをサイクル３にて返しライトバスＡのライト転送は終了する。その時点でライトバスＢ側の転送は一つ前のライト転送を実行中でありそれはサイクル６においてメモリコントローラ９０２がデータを受信しＲＤＹを返すことにより終了する。ステイトマシン９５２はライトバッファ９５０が最後のライト転送情報を持つためエンプティ状態ではないのでサイクル８でＴＸをアサートすることにより最後のライト転送を開始する。それはサイクル１５でメモリコントローラ９０２がデータを受信しＲＤＹを返すことにより終了する。
【００２０】
一方、画像処理回路Ａにとっての最後のライト転送はサイクル２で終了したのでサイクル３で、画像処理回路Ａは画像処理回路Ｂは前述の転送終了通知手段９０９によってそれを通知する。画像処理回路Ｂは通知を受けたのでサイクル４において最初のリード転送を開始する。そのリード転送のアドレスは画像処理回路Ａによる最後のライトアドレスと等しい。
【００２１】
ライトバスＢにおいてライトの最終転送は８サイクル目から始まるのに対しリード転送は４サイクル目から開始される。したがってメモリコントローラ９０２はリード転送を先に受付け、１３サイクル目においてメモリコントローラ９０２からリードされるデータは無効データとなりデータの受け渡しは失敗する。
【００２２】
本課題の解決方法として、画像処理回路Bがライト転送終了の通知を受けてから一定時間待機してからリード転送を開始するという手法が考えられる。しかし待機する時間長を長くしないと問題が発生する可能性は残るし長くしすぎるとシステムの性能が低下してしまう。また他の解決手法として、バスブリッジ内のライトバッファの状態がわかるようにバスＡのインターフェイスを追加するという方法も考えられる。しかしバス仕様が複雑化し従来との互換性が無くなるという問題があった。
【課題を解決するための手段】
【００２３】
本発明はかかる問題を解決するために以下の手段を設ける。
【００２４】
マスタが出力するアドレスを予め定められた値と比較して一致しているかどうかを検出する特殊アドレス検出手段と、前記手段で特定アドレスが検出されたときはライトバッファが空になるまでライト転送の終了を遅らせるシーケンス手段をバスブリッジ内にもうける。
【００２５】
以上の手段を備えた構成でバスＡに接続されたマスタはあるエリア内のデータを送り終えた後に前記特殊アドレスへのライト動作を発行させ、その擬似ライト転送が終了した後に、転送終了通知信号を画像処理回路Ｂへ送信することによりバスＢ側における画像処理回路Ａからのライト要求と画像処理回路Ｂからのリード要求が時間的に前後しないようにする。
【発明の効果】
【００２６】
以上説明したように本発明によれば、システムのパフォーマンスを損なうことなくまたバスの仕様を変更することなく、２つのマスタ間の転送の前後関係を確実に保証することが可能になる。
【発明を実施するための最良の形態】
【００２７】
（実施例１）
以下添付図面を参照して、本発明に係る好適な実施例を説明する。
【００２８】
図１は本発明を実施したバスブリッジの構成を説明するブロック図である。
【００２９】
同図においてライトバスＡ（８０１）とライトバスＢ（８０２）は、それぞれＡＤＤＲＥＳＳ、ＤＡＴＡ、ＴＸ、ＲＤＹの信号を含んでいる。ＴＸはマスタが出力するＡＤＤＲＥＳＳ、ＤＡＴＡ信号が有効であるタイミングを示す信号でありＲＤＹはスレーブがＡＤＤＲＥＳＳ信号、ＤＡＴＡ信号を受信したことをマスタへ知らせる信号である。
【００３０】
９０９は本発明の特徴となるブロックで、ライトバスＡのＡＤＤＲＥＳＳと予め定められた規定値とを常に比較する回路である。規定値はアドレスの使用領域外に設定する。バスブリッジに入力されたアドレスと規定値が一致ししているときはフラッシュ信号９５０を出力する。フラッシュ信号が発生した転送は擬似のライト転送であるのでＡＤＤＲＥＳＳＳとＤＡＴＡ信号の値はライトバッファ９０８へは格納されない。
【００３１】
９５１は有限ステイトマシンでありフラッシュ信号がインアクティブであれば従来例と同様の状態遷移を行う。つまりライトバスＡからのＴＸを受けるとライトバッファ９０８がフル状態でなければライトバス８０１のＲＤＹ信号をアクティブに駆動する。それに対しフラッシュ信号９５０が発生したときはライトバッファ９０８がエンプティ状態になるまでＲＤＹ信号を返さない。
【００３２】
９５２は有限ステイトマシンであり９５１はＴＸを受けるとライトバッファ９０８がフル状態でなければライトバス８０１のＲＤＹ信号をアクティブに駆動するステイトマシンである。またステイトマシン９５２はライトバッファ９０８がエンプティ（空）状態でなければ、ライトバスＢへＴＸ信号を出力しライトバスＢに接続されたスレーブであるメモリーコントローラ９０２から返されるＲＤＹ信号を受けるまえサイクルを継続させるステイトマシンである。これは従来例と同様である。
【００３３】
リードバスＡとリードバスＢはそれぞれ、ＡＤＤＲＥＳＳ、ＴＸ、ＤＡＴＡ、ＲＤＹを含んでいる。ＴＸはマスタが出力するＡＤＤＲＥＳＳ信号が有効であるタイミングを示す信号である。リードバスＡ側から送られたＡＤＤＲＥＳＳ信号とＴＸ信号はフリップフロップ９５３にラッチされリードバスB側へ出力される。
ＲＤＹはスレーブから返送されるＤＡＴＡ信号の有効期間を示す信号であり、リードバスＢのスレーブであるメモリーコントローラ９０２から返されるＤＡＴＡとＤＲＤＹをバスブリッジ９０１はフリップフロップ９５６でラッチしてリードバスＡ側へ出力される。すなわちリードのパスに関しては従来例と同様である。
【００３４】
以上のように構成されたバスブリッジ実施形において画像処理回路Ａから画像処理回路Ｂへデータを渡すときの手順を図２の波形図に沿って説明する。
【００３５】
画像処理回路Ａはあるエリアのデータに対して画像処理を施し最後の処理済データをサイクル１においてライトを開始する。バスブリッジ９０１のステイトマシン９５１は、フラッシュ信号９５０が発生せず、かつライトバッファがフル状態ではないので次のサイクル２において、ＲＤＹをライトバスＡへ出力してライト転送を終える。
【００３６】
次に画像処理回路Ａはサイクル４においてライトバッファ９０８をフラッシュする目的で特殊アドレスへのライト転送をライトバスＡ／ＴＸを立ち上げることにより開始する。本サイクルを発生する仕組みは予め画像処理回路Ａ内のＤＭＡＣに備えておく。
【００３７】
特殊アドレス検出手段９０９は転送開始と同時にフラッシュ信号９５０を出力する。ステイトマシン９５５はフラッシュ信号９５０がアクティブなのでライトバッファ９０８がエンプティで無い限りＲＤＹを返さない。
【００３８】
一方ライトバッファ９０８はサイクル４の時点で２つのライト命令を保持している。サイクル５でメモリコントローラ９０２からＲＤＹが出力されることによりライトバスＢ上の転送が一つ終了し、最後の転送がライトバスＢ／ＴＸをステイトマシン９５２が出力することによりサイクル８で開始される。その最後のライトサイクルはサイクル１３でメモリコントローラ９０２がＲＤＹを出力することにより終了しサイクル１５においてライトバッファがエンプティ状態になりＥＭＰＴＹ信号がアサートされる。ＥＭＰＴＹ信号のアサートを受けてステイトマシン９５１の状態が特殊アドレスへの転送を終わらせる状態に遷移しライトバスＡにＲＤＹ信号をサイクル１５で出力する。画像処理回路ＡはＲＤＹ信号をみてフラッシュ動作のための転送を終了しサイクル１６において転送終了通知信号を画像処理回路Ｂへ出力する。画像処理回路Ｂはサイクル１８で最初のリードアクセスをリードバスＡ／ＴＸ信号をドライブすることにより開始する。
【００３９】
以上のシーケンスから明らかのようにライトバスＢにおける最終ライト転送（７サイクルから１３サイクルまで）とリードの最初の転送（１７サイクルから）の前後関係が確実に守られる。
【図面の簡単な説明】
【００４０】
【図１】本発明のバスブリッジの構成を説明するブロック図。
【図２】本発明を実施したバスブリッジを用いて画像処理回路間でデータの受け渡しをするタイミングを説明する波形図。
【図３】バスブリッジを含むバス構成を説明する図（実施例と従来例とに共通）。
【図４】従来のバスブリッジの構成を説明するブロック図。
【図５】従来例のバスブリッジを用いて画像処理回路間でデータの受け渡しをする時の課題を説明する波形図。
【図１】
2008102609.tif 000003
【図２】
2008102609.tif 000004
【図３】
2008102609.tif 000005
【図４】
2008102609.tif 000006
【図５】
2008102609.tif 000007