(57)【特許請求の範囲】
【請求項１】
マスタからのバスブリッジを介したデータの転送を監視するモニタ回路であって、
入力されるモニタ起動信号からカウンタ起動信号を生成する起動制御回路と、
前記起動制御回路からの前記カウンタ起動信号により起動される、複数のカウンタ回路と、
前記カウンタ回路からカウント完了信号を受けてモニタ完了信号を出力する完了制御回路とを有し、
前記起動制御回路は、前記モニタ起動信号を受けると複数の前記カウンタ回路の内からアクティブ状態でない前記カウンタ回路を１つ選択し、当該カウンタ回路を起動させる前記カウンタ起動信号を生成し、
前記カウンタ回路は、前記バスブリッジ内に停滞する転送数を示すブリッジ内停滞転送数信号及び前記バスブリッジから転送が発行されたことを示すブリッジ転送完了信号が入力され、前記カウンタ起動信号により起動されると前記ブリッジ転送完了信号を用いて発行された転送の数をカウントし、起動時に前記ブリッジ内停滞転送数信号が示す転送数の転送が発行されたときに前記カウント完了信号を出力することを特徴とするモニタ回路。
【請求項２】
複数の前記カウンタ回路のそれぞれが、前記起動制御回路にアクティブ状態であるか否かを通知していることを特徴とする請求項１記載のモニタ回路。
【請求項３】
第１のバスに接続される第１のマスタと、
第２のバスに接続される第２のマスタと、
前記第１のバスと前記第２のバスとの間に接続されるとともに、内部に停滞する転送数を示すブリッジ内停滞転送数信号及び外部に転送を発行したことを示すブリッジ転送完了信号を出力する第１のバスブリッジと、
請求項１又は２記載のモニタ回路であって、前記第１のバスブリッジに接続される第１のモニタ回路と、
前記第２のバスに接続され、前記マスタの各々よりアクセスされる共有メモリとを有し、
前記第１のモニタ回路は、前記第１のマスタから前記第１のバスブリッジへのデータの転送が完了したことを示す前記第１のマスタの転送完了信号がモニタ起動信号として入力され、モニタ完了信号を起動信号として前記第２のマスタに出力することを特徴とするバスシステム。
【請求項４】
前記第１のバスに接続される第３のマスタと、
前記第２のバスに接続される第４のマスタと、
請求項１又は２記載のモニタ回路であって、前記第１のバスブリッジに接続される第２のモニタ回路とをさらに有し、
前記第２のモニタ回路は、前記第３のマスタから前記第１のバスブリッジへのデータの転送が完了したことを示す前記第３のマスタの転送完了信号がモニタ起動信号として入力され、モニタ完了信号を起動信号として前記第４のマスタに出力することを特徴とする請求項３記載のバスシステム。
【請求項５】
第３のバスに接続される第３のマスタと、
前記第２のバスに接続される第４のマスタと、
前記第２のバスと前記第３のバスとの間に接続されるとともに、内部に停滞する転送数を示すブリッジ内停滞転送数信号及び外部に転送を発行したことを示すブリッジ転送完了信号を出力する第２のバスブリッジと、
請求項１又は２記載のモニタ回路であって、前記第２のバスブリッジに接続される第２のモニタ回路とをさらに有し、
前記第２のモニタ回路は、前記第３のマスタから前記第２のバスブリッジへのデータの転送が完了したことを示す前記第３のマスタの転送完了信号がモニタ起動信号として入力され、モニタ完了信号を起動信号として前記第４のマスタに出力することを特徴とする請求項３記載のバスシステム。
【請求項６】
マスタが接続される第１のバス及び当該第１のバスとは異なる第２のバスの間に接続され、前記マスタからの前記第２のバスに対するデータの転送を行うバスブリッジであって、
内部に停滞する転送数を示すブリッジ内停滞転送数信号及び外部に転送を発行したことを示すブリッジ転送完了信号を外部に出力することを特徴とするバスブリッジ。
【請求項７】
マスタが接続される第１のバス及び当該第１のバスとは異なる第２のバスの間に接続され、前記マスタからの前記第２のバスに対するデータの転送を行うバスブリッジと、
前記バスブリッジに接続されるモニタ回路とを備えるバスシステムであって、
前記バスブリッジは、内部に停滞する転送数を示すブリッジ内停滞転送数信号及び前記第２のバスに転送を発行したことを示すブリッジ転送完了信号を前記モニタ回路に出力し、
前記モニタ回路は、前記ブリッジ内停滞転送数信号と前記ブリッジ転送完了信号とに基づいて前記バスブリッジのデータの転送を監視することを特徴とするバスシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モニタ回路、バスブリッジ及びバスシステムに関し、複数のマスタが記憶部を共有して使用するバスシステムに用いて好適なものである。
【背景技術】
【０００２】
従来、複数のマスタが主記憶ユニットを共有メモリとして使用するような場合には、第１のマスタが共有メモリにデータを書き込み、そのデータを第２のマスタが共有メモリから読み出すといったことが頻繁に行われている。第１のマスタが共有メモリに書き込んだデータを第２のマスタが共有メモリから読み出すためには、第２のマスタが読み出し動作を開始する前に、第１のマスタによる共有メモリへのデータの書き込みが完了していることを保証しなければならない。そのための技術の一例が特許文献１に提案されている。
【０００３】
図６は、従来のバスシステムの構成例を示す図である。図６に示すバスシステムにおいて、マスタ９０１がデータを共有メモリ９０３に書き込み、そのデータをマスタ９０２が共有メモリ９０３から読み出す動作は、以下のように行われる。
マスタ９０１は、バス９０４、バスブリッジ９００、及びバス９０５を介して、共有メモリ９０３へのデータの書き込みを行う。このとき、マスタ９０１は、バスブリッジ９００に対するデータの書き込み（転送）が完了すると、転送完了信号をアサートする。
【０００４】
バスブリッジ９００は、マスタ９０１からのデータの書き込みを転送制御回路９１０で受信し、バス９０５を介して共有メモリ９０３へのデータの書き込みを開始する。転送監視回路９３０は、転送制御回路９１０による共有メモリ９０３へのデータの書き込みを監視し、データの書き込みが完了すると割込制御回路９２０に転送完了通知を行う。マスタ９０１からの転送完了信号は割込制御回路９２０に入力されており、この転送完了信号がアサートされることによって割込制御回路９２０からマスタ９０２への割込信号が出力される。ただし、割込制御回路９２０は、転送監視回路９３０からの転送完了通知を受けるまでマスタ９０２への割込信号をマスクし、転送監視回路９３０からの転送完了通知を受けるとマスタ９０２への割込信号のマスクを解除する。
【０００５】
マスタ９０２は、バスブリッジ９００からの割込信号がアサートされると、共有メモリ９０３からのデータの読み出しを開始する。このとき、マスタ９０１からの共有メモリ９０３へのデータの書き込みが完了している。
このように、バスブリッジ９００の中で共有メモリ９０３への転送が発行されたことを確認するまでマスタ９０２が起動しないよう制御することで、ライトデータとリードデータの一貫性を保証している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平７−２１０５００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、前述した従来のバスシステムの例ではバスブリッジ９００にアクセスするマスタの数が１つであるが、マスタの数が増えた場合には、バスブリッジ９００の割込制御回路９２０をマスタの数に合わせて変更する必要がある。つまり、図６に示したような従来のバスシステムでは、バスブリッジを様々なバスシステムで流用するには柔軟性が足りない。
【０００８】
本発明は、このような事情に鑑みてなされたものであり、マスタの数に応じたバスブリッジの設計変更を行うことなく、データの一貫性を保証することが可能なバスシステムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明のモニタ回路は、マスタからのバスブリッジを介したデータの転送を監視するモニタ回路であって、入力されるモニタ起動信号からカウンタ起動信号を生成する起動制御回路と、前記起動制御回路からの前記カウンタ起動信号により起動される複数のカウンタ回路と、前記カウンタ回路からカウント完了信号を受けてモニタ完了信号を出力する完了制御回路とを有し、前記起動制御回路は、前記モニタ起動信号を受けると複数の前記カウンタ回路の内からアクティブ状態でない前記カウンタ回路を１つ選択し、当該カウンタ回路を起動させる前記カウンタ起動信号を生成し、前記カウンタ回路は、前記バスブリッジ内に停滞する転送数を示すブリッジ内停滞転送数信号及び前記バスブリッジから転送が発行されたことを示すブリッジ転送完了信号が入力され、前記カウンタ起動信号により起動されると前記ブリッジ転送完了信号を用いて発行された転送の数をカウントし、起動時に前記ブリッジ内停滞転送数信号が示す転送数の転送が発行されたときに前記カウント完了信号を出力することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、バスブリッジからのブリッジ内停滞転送数信号及びブリッジ転送完了信号を入力するだけで、モニタ回路は、対象とする転送がバスブリッジより発行されたことをモニタ完了信号により通知することができる。したがって、バスブリッジにアクセスするマスタの数に応じてバスブリッジの設計変更を行うことなく、バスシステムの構成に合わせてモニタ回路を接続することで、任意のバスシステムにおいてデータの一貫性を保証することが可能になる。
【図面の簡単な説明】
【００１１】
【図１】本発明の第１の実施形態におけるモニタ回路の一例を示す図である。
【図２】本発明の第２の実施形態におけるモニタ回路の一例を示す図である。
【図３】本発明の実施形態におけるモニタ回路を適用したバスシステムの例を示す図である。
【図４】本発明の実施形態におけるモニタ回路を適用したバスシステムの他の例を示す図である。
【図５】本発明の実施形態におけるモニタ回路を適用したバスシステムのその他の例を示す図である。
【図６】従来のバスシステムの構成例を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態を図面に基づいて説明する。
【００１３】
（第１の実施形態）
本発明の第１の実施形態について説明する。
図１（Ａ）は、第１の実施形態におけるモニタ回路１００の構成例を示す図である。モニタ回路１００は、起動制御回路１１０、カウンタ回路１２０、及び完了制御回路１３０を有する。
【００１４】
起動制御回路１１０は、モニタ回路１００の外部からモニタ起動信号１４１が入力される。起動制御回路１１０は、入力されるモニタ起動信号１４１からカウンタ回路１２０を起動させるカウンタ起動信号１１１を生成する。
【００１５】
カウンタ回路１２０は、起動制御回路１１０からカウンタ起動信号１１１が入力されるとともに、モニタ回路１００が接続される図示しないバスブリッジからブリッジ内停滞転送数信号１５１及びブリッジ転送完了信号１５２が入力される。ブリッジ内停滞転送数信号１５１はバスブリッジ内に停滞する転送数を示す信号であり、ブリッジ転送完了信号１５２はバスブリッジから転送が１つ発行されたことを示す信号である。
【００１６】
カウンタ回路１２０は、カウンタ起動信号１１１により起動されると、その起動時のブリッジ内停滞転送数信号１５１により示される転送数（停滞転送数）をカウンタにセットする。そして、カウンタ回路１２０は、ブリッジ転送完了信号１５２がアサートされる度にカウンタの値を１ずつディクリメントし、カウンタの値が“０”になるときにカウント完了信号１２１を生成する。
【００１７】
完了制御回路１３０は、カウンタ回路１２０からカウント完了信号１２１が入力される。完了制御回路１３０は、カウント完了信号１２１を受けてモニタ完了信号１４２を生成して出力する。
【００１８】
図１（Ｂ）は、図１（Ａ）に示したモニタ回路１００の動作の一例を説明するタイミングチャートである。
【００１９】
ブリッジ内停滞転送数信号１５１は、バスブリッジ内に停滞する転送数を示している。バスブリッジ内に停滞する転送数は、バスブリッジに転送が受けつけられると１増加し、バスブリッジから転送が発行されると１減少し、例えば図１（Ｂ）に示すように０、１、２、１、２、３、…と適宜増減している。また、ブリッジ転送完了信号１５２は、バスブリッジ内に停滞する転送が１つ発行されたことを示す信号であり、ブリッジ転送完了信号１５２がアサートされると停滞転送数が１つ減る。このときのバスブリッジ内の転送の停滞状態をバッファ状態として図１（Ｂ）に図示してある。
【００２０】
図１（Ｂ）に示すように、Ｔ７のタイミングでモニタ起動信号１４１がアサートされたとする。モニタ起動信号１４１がアサートされると、起動制御回路１１０は、カウンタ起動信号１１１を生成しカウンタ回路１２０を起動させる。カウンタ回路１２０は、カウンタ起動信号１１１により起動されると、Ｔ８のタイミングでブリッジ内停滞転送数信号１５１が示す停滞転送数“２”をカウンタにセットする。このとき、バスブリッジ内に停滞している転送は“Ｂ”と“Ｃ”である。
【００２１】
続いて、カウンタ回路１２０は、Ｔ１０及びＴ１２のタイミングでブリッジ転送完了信号１５２がアサートされたことを検出すると、それぞれにおいてカウンタの値を１つディクリメントする。これにより、カウンタの値は“２”→“１”→“０”と変化する。カウンタ回路１２０は、カウンタの値を“１”→“０”に変化させるブリッジ転送完了信号１５２がアサートされるタイミングでカウント完了信号１２１を出力し、完了制御回路１３０にカウント動作を完了したことを通知する。言い換えれば、カウンタ回路１２０は、カウンタの値が“１”で、かつブリッジ転送完了信号１５２がアサートされているタイミングでカウント完了信号１２１を出力する。
【００２２】
完了制御回路１３０は、カウント完了信号１２１のアサートを受けてモニタ完了信号１４２をアサートする。このとき、バッファ状態として示すように、転送“Ｂ”と“Ｃ”は、バスブリッジ内に停滞しておらず、バスブリッジから発行されている。
【００２３】
第１の実施形態によれば、モニタ回路１００は、モニタ起動信号１４１がアサートされると、ブリッジ内停滞転送数信号１５１により示されている停滞転送数を内部のカウンタにセットする。そして、モニタ回路１００は、カウンタを用いて停滞転送数と同じ回数だけブリッジ転送完了信号１５２がアサートされたことをカウントし、カウントを完了するとモニタ完了信号１４２をアサートする。すなわち、モニタ回路１００は、モニタ起動信号１４１がアサートされたときにブリッジ内停滞転送数信号１５１が示している停滞転送数と同じ回数だけブリッジ転送完了信号１５２がアサートされたことを検出するとモニタ完了信号１４２をアサートする。このように、モニタ回路１００は、バスブリッジ内に停滞している転送が発行されたことを確認してからモニタ完了信号１４２をアサートする。これにより、バスブリッジからはブリッジ内停滞転送数信号１５１及びブリッジ転送完了信号１５２を入力するだけで、モニタ回路１００は、対象とする転送がバスブリッジより発行されたことをモニタ完了信号１４２により外部に通知することができる。
【００２４】
なお、前述した説明では、カウンタ回路１２０のカウンタをダウンカウンタとして説明しているが、アップカウンタであっても構わない。アップカウンタを用いる場合には、カウンタ起動信号１１１により起動されるときに、ブリッジ内停滞転送数信号１５１により示される転送数を保持する。そして、カウンタ回路１２０は、カウンタの初期値を“０”として、ブリッジ転送完了信号１５２がアサートされる度にカウンタの値を１ずつインクリメントし、カウンタの値が保持した転送数になるときにカウント完了信号１２１を生成するようにすれば良い。
また、前述した説明において、モニタ起動信号１４１とモニタ完了信号１４２をパルス信号として説明しているが、レベル信号であっても構わない。
【００２５】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。
図２（Ａ）は、第２の実施形態におけるモニタ回路２００の構成例を示す図である。モニタ回路２００は、起動制御回路２１０、複数のカウンタ回路２２０−ｉ（ｉは添え字であり、ｉ＝１〜Ｎ（Ｎは２以上）の整数である。以下についても同様）、及び完了制御回路２３０を有する。
【００２６】
起動制御回路２１０は、モニタ回路２００の外部からモニタ起動信号２４１が入力されるとともに、カウンタ回路２２０−ｉの各々からカウンタアクティブ信号２２２−ｉが入力される。起動制御回路２１０は、カウンタアクティブ信号２２２−ｉを参照して、入力されるモニタ起動信号２４１からカウンタ回路２２０−ｉを起動させるカウンタ起動信号２１１−ｉを生成する。起動制御回路２１０は、カウンタ選択回路２１２を有している。起動制御回路２１０は、モニタ起動信号２４１に応じて起動させるカウンタ回路として、カウンタ選択回路２１２によりアクティブ状態でないカウンタ回路２２０−ｉを選択する。
【００２７】
カウンタ回路２２０−ｉの各々は、起動制御回路２１０から対応するカウンタ起動信号２１１−ｉが入力されるとともに、モニタ回路２００が接続される図示しないバスブリッジからブリッジ内停滞転送数信号２５１及びブリッジ転送完了信号２５２が入力される。ブリッジ内停滞転送数信号２５１はバスブリッジ内に停滞する転送数を示す信号であり、ブリッジ転送完了信号２５２はバスブリッジから転送が１つ発行されたことを示す信号である。
【００２８】
カウンタ回路２２０−ｉは、対応するカウンタ起動信号２１１−ｉにより起動されると、その起動時のブリッジ内停滞転送数信号２５１により示される転送数（停滞転送数）をカウンタにセットする。また、カウンタ回路２２０−ｉは、カウンタ起動信号２１１−ｉにより起動されると、対応するカウンタアクティブ信号２２２−ｉをアサートし、起動制御回路２１０にカウンタがアクティブ状態であることを知らせる。
【００２９】
そして、カウンタ回路２２０−ｉは、ブリッジ転送完了信号２５２がアサートされる度にカウンタの値を１ずつディクリメントし、カウンタの値が“０”になるときにカウント完了信号２２１−ｉを生成する。このとき、カウンタ回路２２０−ｉは、対応するカウンタアクティブ信号２２２−ｉをディアサートし、起動制御回路２１０にカウンタがアクティブ状態ではなくなったことを知らせる。
【００３０】
完了制御回路２３０は、カウンタ回路２２０−ｉの各々からカウント完了信号２２１−ｉが入力される。完了制御回路２３０は、カウント完了信号２２１−ｉを受けてモニタ完了信号２４２を生成して出力する。
【００３１】
図２（Ｂ）は、図２（Ａ）に示したモニタ回路２００の動作の一例を説明するタイミングチャートである。ここではモニタ回路２００がカウンタ回路を２つ有するものとして説明する。
【００３２】
ブリッジ内停滞転送数信号２５１は、バスブリッジ内に停滞する転送数を示している。バスブリッジ内に停滞する転送数は、バスブリッジに転送が受けつけられると１増加し、バスブリッジから転送が発行されると１減少し、例えば図２（Ｂ）に示すように０、１、２、１、２、３、…と適宜増減している。また、ブリッジ転送完了信号２５２は、バスブリッジ内に停滞する転送が１つ発行されたことを示す信号であり、ブリッジ転送完了信号２５２がアサートされると停滞転送数が１つ減る。このときのバスブリッジ内の転送の停滞状態をバッファ状態として図２（Ｂ）に図示してある。
【００３３】
図２（Ｂ）に示すように、Ｔ７のタイミングでモニタ起動信号２４１がアサートされたとする。モニタ起動信号２４１がアサートされると、起動制御回路２１０は、カウンタアクティブ信号２２２−１を参照して、カウンタ回路２２０−１がアクティブ状態であるか否かを判断する。図２（Ｂ）に示す例では、カウンタ回路２２０−１がアクティブ状態ではないので、起動制御回路２１０は、カウンタ起動信号２１１−１をアサートしカウンタ回路２２０−１を起動させる。カウンタ回路２２０−１は、カウンタ起動信号２１１−１により起動されると、Ｔ８のタイミングでブリッジ内停滞転送数信号２５１が示す停滞転送数“２”をカウンタにセットする。このとき、バスブリッジ内に停滞している転送は“Ｂ”と“Ｃ”である。
【００３４】
続いて、カウンタ回路２２０−１は、Ｔ１０及びＴ１２のタイミングでブリッジ転送完了信号２５２がアサートされたことを検出すると、それぞれにおいてカウンタの値を１つディクリメントする。これにより、カウンタ回路２２０−１のカウンタの値は“２”→“１”→“０”と変化する。カウンタ回路２２０−１は、カウンタの値を“１”→“０”に変化させるブリッジ転送完了信号２５２がアサートされるタイミングでカウント完了信号２２１−１を出力し、完了制御回路２３０にカウント動作を完了したことを通知する。言い換えれば、カウンタ回路２２０−１は、カウンタの値が“１”で、かつブリッジ転送完了信号２５２がアサートされているタイミングでカウント完了信号２２１−１を出力する。
【００３５】
また、Ｔ１０のタイミングで更にモニタ起動信号２４１がアサートされたとする。このとき、起動制御回路２１０は、カウンタ回路２２０−１がアクティブ状態であるため、カウンタ起動信号２１１−２をアサートすることでカウンタ回路２２０−２を起動させる。カウンタ回路２２０−２は、カウンタ起動信号２１１−２により起動されると、Ｔ１１のタイミングでブリッジ内停滞転送数信号２５１が示す停滞転送数“２”をカウンタにセットする。このとき、バスブリッジ内に停滞している転送は“Ｃ”と“Ｄ”である。
【００３６】
続いて、カウンタ回路２２０−２は、Ｔ１２及びＴ１７のタイミングでブリッジ転送完了信号２５２がアサートされたことを検出すると、それぞれにおいてカウンタの値を１つディクリメントする。これにより、カウンタ回路２２０−２のカウンタの値は“２”→“１”→“０”と変化する。カウンタ回路２２０−２は、カウンタの値を“１”→“０”に変化させるブリッジ転送完了信号２５２がアサートされるタイミングでカウント完了信号２２１−２を出力し、完了制御回路２３０にカウント動作が完了したことを通知する。
【００３７】
完了制御回路２３０は、Ｔ１２のタイミングでカウント完了信号２２１−１がアサートされたのを受けてモニタ完了信号２４２をアサートする。このとき、バッファ状態として示すように、転送“Ｂ”と“Ｃ”はバスブリッジから発行されている。また、完了制御回路２３０は、Ｔ１７のタイミングでカウント完了信号２２１−２がアサートされたのを受けてモニタ完了信号２４２をアサートする。このとき、バッファ状態として示すように、転送“Ｃ”と“Ｄ”はバスブリッジから発行されている。
【００３８】
第２の実施形態によれば、モニタ回路２００は、モニタ起動信号２４１がアサートされると、ブリッジ内停滞転送数信号２５１が示す停滞転送数を複数のカウンタ回路２２０−ｉのうちアクティブ状態でないカウンタ回路２２０−ｉのカウンタにセットする。そして、モニタ回路２００は、そのカウンタを用いて停滞転送数と同じ回数だけブリッジ転送完了信号２５２がアサートされたことをカウントし、カウントを完了するとモニタ完了信号２４２をアサートする。これにより、バスブリッジからはブリッジ内停滞転送数信号２５１及びブリッジ転送完了信号２５２を入力するだけで、モニタ回路２００は、対象とする転送がバスブリッジより発行されたことをモニタ完了信号２４２により外部に通知することができる。また、複数のカウンタ回路を有することで、バスブリッジに停滞している対象とする転送が発行される前に、さらにモニタ起動信号２４１がアサートされても、対象とするそれぞれの転送がバスブリッジより発行されたことをモニタすることができる。
【００３９】
なお、前述した説明では、カウンタ回路２２０−ｉのカウンタをダウンカウンタとして説明しているが、アップカウンタであっても構わない。アップカウンタを用いる場合には、カウンタ起動信号２１１−ｉにより起動されるときに、ブリッジ内停滞転送数信号２５１により示される転送数を保持する。そして、カウンタ回路２２０−ｉは、初期値を“０”として、ブリッジ転送完了信号２５２がアサートされる度にカウンタの値を１ずつインクリメントし、カウンタの値が保持した転送数になるときにカウント完了信号２２１−ｉを生成するようにすれば良い。
また、前述した説明において、モニタ起動信号２４１とモニタ完了信号２４２をパルス信号として説明しているが、レベル信号であっても構わない。
【００４０】
＜バスシステム＞
次に、前述のモニタ回路を適用したバスシステムについて説明する。
【００４１】
図３は、本発明の実施形態におけるモニタ回路を適用したバスシステムの一例を示す図である。図３に示すバスシステムは、第１のマスタ３１０、第２のマスタ３２０、バスブリッジ５１０、モニタ回路６１０、及び共有メモリ７１０を有する。第１のマスタ３１０及びバスブリッジ５１０は、第１のバス４１０に接続されている。また、第２のマスタ３２０、バスブリッジ５１０、及び共有メモリ７１０は、第２のバス４２０に接続されている。
【００４２】
第１のマスタ３１０は、例えば第１のバス４１０、バスブリッジ５１０、及び第２のバス４２０を介して、共有メモリ７１０へのデータの書き込みを行う。第１のマスタ３１０は、バスブリッジ５１０に対するデータの書き込み（転送）が完了すると、転送完了信号３１１をアサートする。
【００４３】
バスブリッジ５１０は、第１のマスタ３１０からの共有メモリ７１０に対するデータの書き込みを受信し、第２のバス４２０を介して共有メモリ７１０へのデータの書き込みを行う。バスブリッジ５１０は、内部に停滞する転送数を示すブリッジ内停滞転送数信号５１１、及び外部に転送を１つ発行したことを示すブリッジ転送完了信号５１２を出力する。
【００４４】
モニタ回路６１０は、前述した本発明の実施形態におけるモニタ回路であり、バスブリッジ５１０を介したデータの転送の状態を監視する。モニタ回路６１０は、第１のマスタ３１０の転送完了信号３１１がモニタ起動信号として入力されるとともに、バスブリッジ５１０からブリッジ内停滞転送数信号５１１及びブリッジ転送完了信号５１２が入力される。また、モニタ回路６１０は、モニタ完了信号６１１を出力する。モニタ回路６１０は、起動されるときにブリッジ内停滞転送数信号５１１により示されている停滞転送数と、同じ回数だけブリッジ転送完了信号５１２がアサートされたことを検出するとモニタ完了信号６１１をアサートする。
【００４５】
第２のマスタ３２０は、モニタ回路６１０のモニタ完了信号６１１が起動信号（割込信号）として入力される。第２のマスタ３２０は、例えばモニタ回路６１０のモニタ完了信号６１１がアサートされるとデータの読み出し動作を開始し、共有メモリ７１０からのデータの読み出しを行う。
【００４６】
図３に示したバスシステムにおいて、第１のマスタ３１０がバスブリッジ５１０を介して共有メモリ７１０に対するアクセスを行い、その後、第２のマスタ３２０が共有メモリ７１０に対するアクセスを行うとする。モニタ回路６１０は、第１のマスタ３１０の転送が共有メモリ７１０に発行されたことを確認してからモニタ完了信号６１１をアサートすることで、第２のマスタ３２０を起動する。したがって、第１のマスタ３１０の転送が共有メモリ７１０に発行された後、第２のマスタ３２０による共有メモリ７１０へのアクセスが実行されるので、第１のマスタ３１０と第２のマスタ３２０との間でデータの一貫性を保つことができる。
【００４７】
図４は、本発明の実施形態におけるモニタ回路を適用したバスシステムの他の例を示す図である。図４に示すバスシステムは、第１のマスタ３１０、第２のマスタ３２０、第３のマスタ３３０、第４のマスタ３４０、バスブリッジ５１０、第１のモニタ回路６１０、第２のモニタ回路６２０、及び共有メモリ７１０を有する。第１のマスタ３１０、第３のマスタ３３０、及びバスブリッジ５１０は、第１のバス４１０に接続されている。また、第２のマスタ３２０、第４のマスタ３４０、バスブリッジ５１０、及び共有メモリ７１０は、第２のバス４２０に接続されている。図４に示す第１のマスタ３１０、第２のマスタ３２０、及び第１のモニタ回路６１０は、図３に示した第１のマスタ３１０、第２のマスタ３２０、及びモニタ回路６１０と同様である。
【００４８】
第３のマスタ３３０は、例えば第１のバス４１０、バスブリッジ５１０、及び第２のバス４２０を介して、共有メモリ７１０へのデータの書き込みを行う。第３のマスタ３３０は、バスブリッジ５１０に対するデータの書き込み（転送）が完了すると転送完了信号３３１をアサートする。
【００４９】
バスブリッジ５１０は、第１のマスタ３１０及び第３のマスタ３３０からの共有メモリ７１０に対するデータの書き込みを受信し、第２のバス４２０を介して共有メモリ７１０へのデータの書き込みを行う。バスブリッジ５１０は、内部に停滞する転送数を示すブリッジ内停滞転送数信号５１１、及び外部に転送を１つ発行したことを示すブリッジ転送完了信号５１２を出力する。
【００５０】
第２のモニタ回路６２０は、前述した本発明の実施形態におけるモニタ回路であり、バスブリッジ５１０を介したデータの転送の状態を監視する。第２のモニタ回路６２０は、第３のマスタ３３０の転送完了信号３３１がモニタ起動信号として入力されるとともに、バスブリッジ５１０からブリッジ内停滞転送数信号５１１及びブリッジ転送完了信号５１２が入力される。また、第２のモニタ回路６２０は、モニタ完了信号６２１を出力する。第２のモニタ回路６２０は、起動されるときにブリッジ内停滞転送数信号５１１により示されている停滞転送数と、同じ回数だけブリッジ転送完了信号５１２がアサートされたことを検出するとモニタ完了信号６２１をアサートする。
【００５１】
第４のマスタ３４０は、第２のモニタ回路６２０のモニタ完了信号６２１が起動信号（割込信号）として入力され、例えばモニタ完了信号６２１がアサートされるとデータの読み出し動作を開始して共有メモリ７１０からのデータの読み出しを行う。
【００５２】
図４に示したバスシステムにおいて、第１のマスタ３１０がバスブリッジ５１０を介して共有メモリ７１０に対するアクセスを行い、その後、第２のマスタ３２０が共有メモリ７１０に対するアクセスを行うとする。また、第３のマスタ３３０がバスブリッジ５１０を介して共有メモリ７１０に対するアクセスを行い、その後、第４のマスタ３４０が共有メモリ７１０に対するアクセスを行うとする。第１のモニタ回路６１０は、第１のマスタ３１０の転送が共有メモリ７１０に発行されたことを確認してからモニタ完了信号６１１をアサートすることで、第２のマスタ３２０を起動する。また、第２のモニタ回路６２０は、第３のマスタ３３０の転送が共有メモリ７１０に発行されたことを確認してからモニタ完了信号６２１をアサートすることで、第４のマスタ３４０を起動する。
【００５３】
したがって、第１のマスタ３１０の転送が共有メモリ７１０に発行された後、第２のマスタ３２０による共有メモリ７１０へのアクセスが実行されるので、第１のマスタ３１０と第２のマスタ３２０との間でデータの一貫性を保つことができる。また、第３のマスタ３３０の転送が共有メモリ７１０に発行された後、第４のマスタ３４０による共有メモリ７１０へのアクセスが実行されるので、第３のマスタ３３０と第４のマスタ３４０との間でデータの一貫性を保つことができる。
【００５４】
図５は、本発明の実施形態におけるモニタ回路を適用したバスシステムのその他の例を示す図である。図５に示すバスシステムは、第１のマスタ３１０、第２のマスタ３２０、第３のマスタ３５０、第４のマスタ３６０、第１のバスブリッジ５１０、第２のバスブリッジ５２０、第１のモニタ回路６１０、第２のモニタ回路６３０、及び共有メモリ７１０を有する。第１のマスタ３１０及び第１のバスブリッジ５１０は、第１のバス４１０に接続されている。第２のマスタ３２０、第４のマスタ３６０、第１のバスブリッジ５１０、第２のバスブリッジ５２０、及び共有メモリ７１０は、第２のバス４２０に接続されている。また、第３のマスタ３５０及び第２のバスブリッジ５２０は、第３のバス４３０に接続されている。
【００５５】
図５に示す第１のマスタ３１０、第２のマスタ３２０、第１のバスブリッジ５１０、及び第１のモニタ回路６１０は、図３に示した第１のマスタ３１０、第２のマスタ３２０、バスブリッジ５１０、及びモニタ回路６１０と同様である。
【００５６】
第３のマスタ３５０は、例えば第３のバス４３０、第２のバスブリッジ５２０、及び第２のバス４２０を介して、共有メモリ７１０へのデータの書き込みを行う。第３のマスタ３５０は、第２のバスブリッジ５２０に対するデータの書き込み（転送）が完了すると、転送完了信号３５１をアサートする。第２のバスブリッジ５２０は、第３のマスタ３５０からの共有メモリ７１０に対するデータの書き込みを受信し、第２のバス４２０を介して共有メモリ７１０へのデータの書き込みを行う。第２のバスブリッジ５２０は、内部に停滞する転送数を示すブリッジ内停滞転送数信号５２１、及び外部に転送を１つ発行したことを示すブリッジ転送完了信号５２２を出力する。
【００５７】
第２のモニタ回路６３０は、前述した本発明の実施形態におけるモニタ回路であり、バスブリッジ５２０を介したデータの転送の状態を監視する。第２のモニタ回路６３０は、第３のマスタ３５０の転送完了信号３５１がモニタ起動信号として入力されるとともに、第２のバスブリッジ５２０からブリッジ内停滞転送数信号５２１及びブリッジ転送完了信号５２２が入力される。また、第２のモニタ回路６３０は、モニタ完了信号６３１を出力する。第２のモニタ回路６３０は、起動されるときにブリッジ内停滞転送数信号５２１により示されている停滞転送数と同じ回数だけブリッジ転送完了信号５２２がアサートされたことを検出するとモニタ完了信号６３１をアサートする。
【００５８】
第４のマスタ３６０は、第２のモニタ回路６３０のモニタ完了信号６３１が起動信号（割込信号）として入力され、例えばモニタ完了信号６３１がアサートされるとデータの読み出し動作を開始して共有メモリ７１０からのデータの読み出しを行う。
【００５９】
図５に示したバスシステムにおいて、第１のマスタ３１０が第１のバスブリッジ５１０を介して共有メモリ７１０に対するアクセスを行い、その後、第２のマスタ３２０が共有メモリ７１０に対するアクセスを行うとする。また、第３のマスタ３５０が第２のバスブリッジ５２０を介して共有メモリ７１０に対するアクセスを行い、その後、第４のマスタ３６０が共有メモリ７１０に対するアクセスを行うとする。第１のモニタ回路６１０は、第１のマスタ３１０の転送が共有メモリ７１０に発行されたことを確認してからモニタ完了信号６１１をアサートすることで、第２のマスタ３２０を起動する。また、第２のモニタ回路６３０は、第３のマスタ３５０の転送が共有メモリ７１０に発行されたことを確認してからモニタ完了信号６３１をアサートすることで、第４のマスタ３６０を起動する。
【００６０】
したがって、第１のマスタ３１０の転送が共有メモリ７１０に発行された後、第２のマスタ３２０による共有メモリ７１０へのアクセスが実行されるので、第１のマスタ３１０と第２のマスタ３２０との間でデータの一貫性を保つことができる。また、第３のマスタ３５０の転送が共有メモリ７１０に発行された後、第４のマスタ３６０による共有メモリ７１０へのアクセスが実行されるので、第３のマスタ３５０と第４のマスタ３６０との間でデータの一貫性を保つことができる。
【００６１】
以上のように、バスブリッジ内に停滞する転送数を示すブリッジ内停滞転送数信号及びバスブリッジから転送が１つ発行されたことを示すブリッジ転送完了信号をバスブリッジから出力するようにし、バスシステムの構成に合わせてモニタ回路を接続する。これにより、バスブリッジにアクセスするマスタの数に応じてバスブリッジの設計変更を行わなくとも、構成に応じてモニタ回路を接続することで、様々なバスシステムにおいてデータの一貫性を保証することが可能になる。
【００６２】
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００６３】
１００、２００：モニタ回路  １１０、２１０：起動制御回路  １２０、２２０−ｉ：カウンタ回路  １３０、２３０：完了制御回路  ２１２：カウンタ選択回路  ３１０、３２０、３３０、３４０、３５０、３６０：マスタ  ４１０、４２０、４３０：バス  ５１０、５２０：バスブリッジ  ６１０、６２０、６３０：モニタ回路  ７１０：共有メモリ
【図１】
0005693176.tif 000002
【図２】
0005693176.tif 000003
【図３】
0005693176.tif 000004
【図４】
0005693176.tif 000005
【図５】
0005693176.tif 000006
【図６】
0005693176.tif 000007