(57)【要約】【課題】  第２のマスタは、第１のマスタから共有メモリへのデータ書き込みが完了されていないデータを読出してしまう恐れがある。【解決手段】  第１のマスタデバイスは、共有メモリに書き込むデータが前記第１のマスタデバイスから転送されたかを示すステータス情報を記憶する記憶手段を有し、第１のマスタデバイスはステータス情報が第１のマスタデバイスによるデータ転送の完了を示す場合にバスブリッジに通知し、バスブリッジは記憶手段からステータス情報を読み出し、読み出したステータス情報をデータバッファに保存する制御手段を有し、データバッファは、第１のマスタデバイスから転送されたデータを共有メモリに転送した後にステータス情報を通知手段に転送し、通知手段は転送されたステータス情報を用いて第２のマスタデバイスに共有メモリを読み出すタイミングを通知することによって、共有メモリへのデータ書き込みの完了を保証する。【選択図】  図１
2017199287.tif 000002
【特許請求の範囲】
【請求項１】
第１のバスと、
第２のバスと、
前記第１のバスと前記第２のバスとを接続するバスブリッジと、
前記第１のバスに接続される第１のマスタデバイスと、
前記第２のバスに接続される第２のマスタデバイスと、
前記第２のバスに接続され、前記第１のマスタデバイスからのデータが書き込まれ、前記第２のマスタデバイスにデータが読み出される共有メモリと、
前記第２のバスに接続され、前記第２のマスタデバイスに前記共有メモリを読み出すタイミングを通知する通知手段と、を有する情報処理装置であって、
前記バスブリッジは、前記第１のマスタデバイスから前記第１のバスを経由して転送されたデータを保存し、保存した該データを前記第２のバスを経由させて前記共有メモリに転送するデータバッファを有し、
前記第１のマスタデバイスは、前記共有メモリに書き込むデータが前記第１のマスタデバイスから転送されたかを示すステータス情報を記憶する記憶手段を有し、
前記第１のマスタデバイスは、前記ステータス情報が前記第１のマスタデバイスによるデータ転送の完了を示す場合に、前記バスブリッジに通知し、
前記バスブリッジは、前記第１のマスタデバイスからの通知を受信すると、前記第１のマスタデバイスの前記記憶手段から前記ステータス情報を読み出し、読み出した前記ステータス情報を前記データバッファに保存する制御手段を有し、
前記データバッファは、前記第２のバスを経由させて、前記第１のマスタデバイスから転送された前記データを前記共有メモリに転送した後に、前記ステータス情報を前記通知手段に転送し、
前記通知手段は、転送された前記ステータス情報を用いて、前記第２のマスタデバイスに前記共有メモリを読み出すタイミングを通知し、
前記第２のマスタデバイスは、前記通知手段からの通知を受信した後、前記共有メモリに書き込まれたデータを読み出すことを特徴とする情報処理装置。
【請求項２】
前記第１のマスタデバイスは、前記共有メモリに書き込むデータを転送する複数のチャネルを有し、
前記記憶手段は、前記複数のチャネルに対応して、それぞれのチャネルで前記共有メモリに書き込むデータが転送されたかを示すステータス情報を記憶する複数のフィールドを有し、
前記制御手段は、前記第１のマスタデバイスからの通知を受信し、前記記憶手段の前記複数のフィールドに記憶された前記ステータス情報を読み出すことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記制御手段は、前記記憶手段の前記複数のフィールドから前記ステータス情報を読み出した後に、データ転送の完了が示されるチャネルに対応する前記ステータス情報のフィールドをリセットすることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記制御手段から前記データバッファへの前記ステータス情報の書き込みと、前記第１のマスタデバイスから転送されたデータの前記データバッファへの保存と、が同時に発生した場合に、前記バスブリッジは、前記制御手段から前記データバッファへの前記ステータス情報の書き込みを優先する調停手段を、さらに有することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記第１のマスタデバイスのデータ転送は、ＤＭＡ転送であることを特徴とする請求項１乃至４の何れか１項に記載の情報処理装置。
【請求項６】
前記データバッファは、ＦＩＦＯ方式で構成されることを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記第１のマスタデバイスにある前記記憶手段は、ステータスレジスタであることを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
第２のマスタデバイスは、ＩＯコントローラであることを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
第１のマスタデバイスは、ＣＰＵであることを特徴とする請求項１乃至８のいずれか１項に記載の情報処理装置。
【請求項１０】
第１のバスと、
第２のバスと、
前記第１のバスと前記第２のバスとを接続するバスブリッジと、
前記第１のバスに接続される第１のマスタデバイスと、
前記第２のバスに接続される第２のマスタデバイスと、
前記第２のバスに接続され、前記第１のマスタデバイスからのデータが書き込まれ、前記第２のマスタデバイスにデータが読み出される共有メモリと、
前記第２のバスに接続され、前記第２のマスタデバイスに前記共有メモリを読み出すタイミングを通知する通知手段と、を有する情報処理装置の情報処理方法であって、
前記バスブリッジの有するデータバッファは、前記第１のマスタデバイスから前記第１のバスを経由して転送されたデータを保存し、保存した該データを前記第２のバスを経由させて前記共有メモリに転送する転送工程と、
前記第１のマスタデバイスの有する記憶手段は、前記共有メモリに書き込むデータが前記第１のマスタデバイスから転送されたかを示すステータス情報を記憶する記憶工程と、
前記第１のマスタデバイスは、前記ステータス情報が前記第１のマスタデバイスによるデータ転送の完了を示す場合に、前記バスブリッジに通知する第１の通知工程と、
前記バスブリッジの有する制御手段は、前記第１のマスタデバイスからの通知を受信すると、前記第１のマスタデバイスの前記記憶手段から前記ステータス情報を読み出し、読み出した前記ステータス情報を前記データバッファに保存する保存工程と、
前記データバッファは、前記第２のバスを経由させて、前記第１のマスタデバイスから転送された前記データを前記共有メモリに転送した後に、前記ステータス情報を前記通知手段に転送する転送工程と、
前記通知手段は、転送された前記ステータス情報を用いて、前記第２のマスタデバイスに前記共有メモリを読み出すタイミングを通知する第２の通知工程と、
前記第２のマスタデバイスは、前記通知手段からの通知を受信した後、前記共有メモリに書き込まれたデータを読み出す読み出し工程と、
を有することを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のバスに接続する複数のマスタデバイス、および、複数のマスタデバイスが使用する共有メモリを有する情報処理装置である。
【背景技術】
【０００２】
従来、複数のバスにそれぞれ接続する複数のマスタデバイス（以下、マスタ）が、主記憶ユニットを共有メモリとして使用する場合がある。この場合、第１のバスに接続する第１のマスタが共有メモリにデータを書き込み、そのデータを第２のバスに接続する第２のマスタが共有メモリから読み出すといったことが頻繁に行われている。
【０００３】
第１のマスタが共有メモリに書き込んだデータを第２のマスタが共有メモリから読み出すためには、第２のマスタが読出し動作を開始する前に、第１のマスタによる共有メモリへのデータの書き込みが完了していることを保証しなければならない。そのための技術の一例が特許文献１に提案されている。
【０００４】
特許文献１によれば、第１のバスと第２のバスとの間に接続するバスブリッジ内部のバッファに滞留する転送数のデータ転送が完了することを監視するモニタ回路を配置する。そして、第１マスタからの転送完了を通知するトリガ信号（第１マスタの割込み信号）がモニタ回路に入力される。モニタ回路は、トリガ信号を入力すると、バスブリッジ内部のバッファに滞留する転送数分のデータ転送完了をカウントし、カウントがゼロになると転送完了信号を第２マスタに通知する。第２マスタは、モニタ回路からの転送完了信号（遅延した第１マスタの割込み信号）を受けてから共有メモリからのデータの読出しを行うことで、共有メモリに書き込みが完了したデータを読み出すことが保証されることが記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−１１３６１５
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１の技術では、第１のマスタが複数チャネルを用いて短時間に連続して複数回のデータ転送を行った時に、第１マスタからの転送完了を通知するトリガ信号に基づいてデータ転送が完了したかを正しく判別できない場合がある。即ち、第１のマスタがチャネルｃｈ１でデータ転送を完了させた後、チャネルｃｈ２でのデータ転送を行った直後には、バスブリッジのバッファにまだデータが滞留している。しかし、チャネルｃｈ１でのデータ転送完了を通知するトリガ信号により、共有メモリへのデータ書き込みが完了したと判別されてしまうリスクがある。その結果、第２のマスタは、第１のマスタから共有メモリへのデータ書き込みが完了されていないデータを読出してしまう恐れがある。
【０００７】
本発明は上記の課題に鑑みてなされたものであり、第１のマスタのそれぞれのチャネルから共有メモリへの書き込みが完了したタイミングで、第２のマスタに通知する情報処理装置を提供することを目的とする。また、その情報処理装置の情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述の課題を解決するために、本発明に係る情報処理装置は、以下の構成を有する。すなわち、第１のバスと、第２のバスと、前記第１のバスと前記第２のバスとを接続するバスブリッジと、前記第１のバスに接続される第１のマスタデバイスと、前記第２のバスに接続される第２のマスタデバイスと、前記第２のバスに接続され、前記第１のマスタデバイスからのデータが書き込まれ、前記第２のマスタデバイスにデータが読み出される共有メモリと、前記第２のバスに接続され、前記第２のマスタデバイスに前記共有メモリを読み出すタイミングを通知する通知手段と、を有し、前記バスブリッジは、前記第１のマスタデバイスから前記第１のバスを経由して転送されたデータを保存し、保存した該データを前記第２のバスを経由させて前記共有メモリに転送するデータバッファを有し、前記第１のマスタデバイスは、前記共有メモリに書き込むデータが前記第１のマスタデバイスから転送されたかを示すステータス情報を記憶する記憶手段を有し、前記第１のマスタデバイスは、前記ステータス情報が前記第１のマスタデバイスによるデータ転送の完了を示す場合に、前記バスブリッジに通知し、前記バスブリッジは、前記第１のマスタデバイスからの通知を受信すると、前記第１のマスタデバイスの前記記憶手段から前記ステータス情報を読み出し、読み出した前記ステータス情報を前記データバッファに保存する制御手段を有し、前記データバッファは、前記第２のバスを経由させて、前記第１のマスタデバイスから転送された前記データを前記共有メモリに転送した後に、前記ステータス情報を前記通知手段に転送し、前記通知手段は、転送された前記ステータス情報を用いて、前記第２のマスタデバイスに前記共有メモリを読み出すタイミングを通知し、前記第２のマスタデバイスは、前記通知手段からの通知を受信した後、前記共有メモリに書き込まれたデータを読み出す。
【発明の効果】
【０００９】
本発明の情報処理装置によれば、第１のマスタのステータス情報を読出し、第１のマスタのそれぞれのチャネルから共有メモリへの書き込みが完了したタイミングで、第２のマスタに通知することができる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態の情報処理装置の構成例を示す図である。
【図２】割り込みステータスレジスタの例を示す図である。
【図３】ステータス読出し部の内部ブロック例を示す図である。
【図４】本実施形態の情報処理装置の動作状況を示す図である。
【図５】ステータス読出し部の処理フローを示す図である。
【図６】メッセージ通知回路の概略構成図である。
【図７】メッセージ通知回路の動作説明図である。
【図８】複数の割り込みが発生したときの動作を説明するタイミングチャートである。
【発明を実施するための形態】
【００１１】
以下、図面を参照しながら、本実施形態を説明する。
【００１２】
図１は本実施形態の情報処理装置の構成例を示す。
【００１３】
本実施形態の情報処理装置は第１のマスタ１０１であるＩＯコントローラ、第２のマスタ１０２であるＣＰＵを含む。第１のマスタ１０１であるＩＯコントローラや図示されていないＩＯデバイスが第１のバス１０７であるＩＯバスに接続され、第２のマスタ１０２であるＣＰＵが第２のバス１０８であるＣＰＵバスに接続される。
【００１４】
バスブリッジ１０３は第１のバス１０７と第２のバス１０８を接続する。メモリ制御回路１０４は第２のバス１０８に接続される。共有メモリ１０５はメモリ制御回路１０４により制御され、様々なチップ内のマスタで使用されるデータが置かれる。第１のマスタ１０１であるＩＯコントローラは、第１のバス１０７、バスブリッジ１０３および第２のバス１０８を経由して、メモリ制御回路１０４が管理する共有メモリ１０５にデータを書き込むＤＭＡ転送処理を行う。
【００１５】
メッセージ通知回路１０６は第２のバス１０８に接続される。割り込みステータスレジスタ１０１０は第１のマスタ１０１内にある。データバッファ１０３０はバスブリッジ１０３内にあり、第１のバス１０７と第２のバス１０８との間のデータ転送時に一時的に転送データを保存する。データバッファ１０３０は例えばＦＩＦＯ方式で構成される。
【００１６】
ステータス読出し部１０３１はバスブリッジ１０３内にあり、第１のバス上に接続された第１のマスタからの通知信号である割り込みを受け、第１のマスタの割り込みステータスレジスタ１０１０から割り込みステータスを読み出す。
【００１７】
第１のマスタ１０１は、複数のデータ転送チャネルを用いてデータ転送を行う。図２に割込みステータスレジスタ１０１０の構成例を示すように、２以上の割り込み要因に対応し、その複数の割り込み要因の論理和を出力する。図２の例では８個の割り込み要因に対応するものとして示してある。図２の割り込み要因レジスタ１０１０における各ビット（フィールド）はそれぞれ異なる割り込み要因に対応して、それぞれの割り込み要因の有無を示すものである。ＩＯコントローラの例として、複数のエンドポイント構成をもつＵＳＢデバイス・コントローラだとすると、割込みステータスレジスタ１０１０の各ビット（フィールド）は各エンドポイント（チャネル）のデータ転送状況、あるいはエラーの状況を示している。
【００１８】
また、割り込み要因のクリア方法は該当する割り込み要因に対応するビット（フィールド）をリセットすることで行われる。
【００１９】
図３にバスブリッジ１０３の内部回路ブロックの例を図示する。図１で示されたブロックには同じ番号を付してある。データバッファ１０３０は第１のバスから発行された転送要求（転送データ）を第２のバス上にその転送要求を出力するまでの期間、転送要求（転送データ）を複数保存し、保存した順に出力する。これは各々のバス上での転送効率を高くするためのものである。
【００２０】
ステータス読出し部１０３１は第１のマスタ１０１であるＩＯコントローラからの通知信号である割り込み信号を受け、ＩＯコントローラの割り込みステータス１０１０を読み出すものである。ステータス読出し部１０３１が、バスアクセスステートマシン１０３３、レジスタ１０３４、レジスタ１０３５およびレジスタ１０３６から構成される。バスアクセスステートマシン１０３３は、第１のマスタ１０１からの割り込み信号を受けて各種処理を制御する制御部である。
【００２１】
レジスタ１０３４およびレジスタ１０３５のそれぞれはアドレスを保持し、保持したアドレスは図示されていない設定用インターフェースによりＣＰＵから設定される。レジスタ１０３４はＩＯコントローラにある割り込みステータレジスタ１０１０から割り込みステータス情報を確認するためのアドレスを保持する。
【００２２】
レジスタ１０３５は、割り込みステータレジスタ１０１０のステータス情報をクリアするためのアドレスを保持し、保持したアドレスが同様にＣＰＵから設定されるものである。なお、レジスタ１０３５は必ずしも必要ではない。制御部であるバスアクセスステートマシン１０３３が、レジスタ１０３４を参照してステータス情報をクリアすることができれば、レジスタ１０３５を設ける必要はない。
【００２３】
レジスタ１０３６は、割り込みステータレジスタ１０１０から読み込んだステータス情報をメッセージ通知回路１０６に送信するためのアドレスを保持し、保持したアドレスは同様に、図示されていない設定用インターフェースによりＣＰＵから設定される。レジスタ１０３６では、読出した割り込みステータスレジスタの値をメッセージ通知回路１０６にバスブリッジ１０３の第２のバスＩＦ経由で通知するために用いられるアドレスが保持される。
【００２４】
図４を用いて全体の動作状況を説明する。図４の縦方向は時間の経過を示している。まず、図４の（１）のタイミングで第１のマスタ１０１が図示されていない外部からのデータ転送を受け取り、第１バス１０７、バスブリッジ１０３および第２バス１０８を経由して共有メモリ１０５へのデータ転送を行うためにデータ転送を開始する。
【００２５】
バスブリッジ１０３では第１のバスおよび第２のバスの転送効率を高めるためデータバッファ１０３０を有し、転送されるデータは一時的にこのデータバッファ１０３０に蓄積される。そのため、第１のバス上のデータ転送１０９と第２のバス上のデータ転送１１０は独立している。従って、第１のマスタからの全ての転送データがメモリ制御回路に到達する前に、第１のマスタはバスブリッジへのデータ転送が完了した時点でデータ転送が完了したと判断することが起こりうる。
【００２６】
次に、図４の（２）のタイミングで第１のマスタ１０１からバスブリッジ１０３への矢印で示される接続を用いて通知される割り込み信号が第２のバス上での転送完了よりも先となる例が示されている。図４の（３）のタイミングで割り込み信号による通知を受けたバスブリッジ１０３は内部のステータス読出し部１０３１により第１のマスタ内の割り込みステータスレジスタ１０１０の内容を読み出す一連の処理を開始する。
【００２７】
この時のステータス読出し部１０３１の処理フローを図５に示す。制御部であるバスアクセスステートマシン１０３３がステータス読出し部１０３１の処理を制御する。
【００２８】
ステップ５０１において、バスアクセスステートマシン１０３３は第１のマスタからの割り込み信号を受けると、レジスタ１０３４から割り込みステータスレジスタ１０１０のアドレスを取得する。次に、バスアクセスステートマシン１０３３が割り込みステータスレジスタ１０１０のレジスタ値を読み出す。
【００２９】
読出し動作が完了すると、ステップ５０２において、バスアクセスステートマシン１０３３がレジスタ１０３５からステータス情報をクリアするためのアドレスを取得する。次に、バスアクセスステートマシン１０３３が取得したアドレスを参照して割り込みステータスレジスタ１０１０のレジスタ値をリセットする。割り込みステータス情報のクリアは該当するビット位置に‘１’又は‘０’を書き込みによるレジスタ値のリセットである。ここで割り込みクリア動作を行うことで第１のマスタの割り込み信号はクリアされ、同一のあるいは異なる割り込み要因により再度割り込みが発生した場合にも対応が可能となる。
【００３０】
ステップ５０３において、第１のマスタの割り込みクリア処理を行った後の図４の（４）のタイミングで、バスアクセスステートマシン１０３３が読出した割り込みステータス値（ステータス情報）を第２のバス経由にてメッセージ通知回路１０６に転送する。このステータス情報の転送データは、データバッファ１０３０に保存され、先にデータバッファ１０３０に保存されたデータの転送の後に転送されるように設定されている。具体的には、メッセージ通知回路１０６への転送データは、調停回路１０３２を介してデータバッファ１０３０の空いている位置（転送要求を行う時点での最後の位置）に追加される。また、第１のバスからの転送データと、ステータス読出し部１０３１からの転送データが同時に発生した場合には、調停回路１０３２がステータス読出し部からの転送データをデータバッファ１０３０に保存することを優先するようにすることが好ましい。
【００３１】
メッセージ通知回路１０６の概略構成は図６で示される。メッセージ通知回路１０６は一つ以上のステータス情報を保持可能なバッファ６０１、バッファ６０１へのアクセスを行うためのバスインタフェース６０２、Ｅｍｐｔｙ検出回路６０３で構成される。Ｅｍｐｔｙ検出回路６０３は、バッファ６０１に保持されたステータス情報が読み出されたかどうかを検出する。なお、図６に示すバッファ６０１は２段構成として図示してあるが、２段以上のバッファで構成してもよい。また、Ｅｍｐｔｙ検出回路６０３では空でないことを示すｎＥｍｐｔｙ信号が使用される。Ｅｍｐｔｙ検出回路６０３はバッファ６０１の書き込みポインターと読出しポインターを用いてバッファにまだ読み出されていないステータス情報があるかどうかを判断することが可能である。
【００３２】
メッセージ通知回路１０６の動作説明を図７に示す。図７ではメッセージ通知回路１０６は２つのバッファを持っているとして説明する。また、読出しアドレスと書き込みアドレスとはそれぞれ別アドレスが割り振られているとする。
【００３３】
図７で示す時刻ｔ０にステータス読出し部１０３１の読み出したステータス情報がメッセージ通知回路１０６に到達し、メッセージ通知回路１０６内のバッファ６０１にメッセージデータＭ０として書き込みが行われる。書き込みが行われると、バッファ６０１は空でなくなる為ｎＥｍｐｔｙが‘１’にアサートされ、これにより外部にバッファ６０１が空でないことを通知する機能を有する。時刻ｔ１に別のステータス情報がメッセージ通知回路１０６に到達し、メッセージ通知回路１０６内のバッファ６０１にメッセージデータＭ１として書き込みが行われる。ｎＥｍｐｔｙ信号の出力はＣＰＵである第２マスタ１０２の割り込み信号線と接続されるので、ＣＰＵからの割り込み処理により時刻ｔ２にメッセージ通知回路１０６への読出しが行われる。この時読み出されるステータス情報として最初に書きこまれたメッセージデータＭ０が読み出される。ｎＥｍｐｔｙ信号はバッファが空でないため、依然‘１’を維持し、再度ＣＰＵからの読出しが時刻ｔ３で行われ、ステータス情報としてメッセージデータＭ１が読み出された時点でｎＥｍｐｔｙ信号が‘０’にデアサートされる。
【００３４】
メッセージ通知回路１０６はビット（フィールド）毎に１つの割り込み要因を識別するように設定されており、かつ、書きこまれた値を読み出すまで保持するように構成されている。そのため、ＣＰＵはメッセージ通知回路１０６からの通知を受け、該当するビットのデータを読み出すことで結果的に割り込みを発生させたモジュール（第１のマスタ１０１）の識別ができる。同時に、ＣＰＵは割り込みを発生させたモジュールの割り込みステータスレジスタの値をそのまま読み出せ、割り込み要因の識別も行える（図４の（５））。
【００３５】
メッセージ通知回路１０６へのステータス情報の転送は割り込みを発生させた第１のマスタのデータ転送の後に、データ転送を行うのと同じバス（第２のバス）で行われる。そのため、ＣＰＵが割り込み信号を受けて、対応する割り込み処理を開始する前に、転送されるデータがメモリ制御回路に到達し、ＣＰＵが転送されたデータを読みに行く際には転送データが共有メモリに書きこまれていることが保証される。
【００３６】
再度割り込みが発生した場合の説明を図８のタイミングチャートを用いて行う。図８にてｔ０からｔ５のサイクルでデータ転送が行われる。これは図４の（１）で示される第１のマスタからバスブリッジへのデータ転送の最後を示している。このデータ転送の完了でｔ５のサイクルで第１のマスタは割り込み信号をバスブリッジに送信する。これは図４の（２）で示される割り込み通知に相当する。この割り込み通知を受け、バスブリッジは第１のマスタの割り込みステータスアドレスから割り込みステータス情報の読出しをｔ６、ｔ７のサイクルで実行する（ステータスデータＤ０）。
【００３７】
その後、読出した割り込みステータス情報をもとに割り込みステータスのクリアを行う書き込みをｔ９、ｔ１０のサイクルで行っている。ｔ６、ｔ９のサイクルで第１のバスのアドレスとして示されるＩ０、Ｉ１はレジスタ１０３４およびレジスタ１０３５に設定された値を用いる。ｔ１０のサイクルで第１のマスタの割り込み要因クリアが完了するので、割り込み信号は割り込み要因のクリアに呼応し‘０’にデアサートされる。
【００３８】
第１のマスタからの転送データは第２のバスの転送状況によりバスブリッジ内で滞留する場合が存在する、図８では第１のマスタからの最後の転送データがｔ１８からｔ２３のサイクルで第２のバスへの転送が実行されたと仮定して図示してある。第１のマスタからの割り込みステータスデータ（ステータス情報）のメッセージ通知回路への転送はｔ７のサイクル以降で可能であるが、第１のマスタからの転送データが先に第２のバス上に転送される。第１のマスタからの転送データが、データバッファ１０３０の先に出力される保存領域１０３７に保存されて、ステータス情報はその次に出力される保存領域１０３８に保存されているので、転送データがステータス情報より先に第２のバス上に転送される。
【００３９】
図８では、第１のマスタから、ｔ０からｔ５のサイクルでのデータ転送と異なる転送データがｔ１８からｔ２３のサイクルで発生しているものとして図示してある。第１のマスタがＵＳＢデバイス・コントローラである場合、異なるエンドポイントにたいして転送要求が受信された場合などが相当する。ｔ２３からの転送データが先の例と同様に最後の転送データであった場合、図８で示されるようにｔ２４のサイクルで新たな割り込み信号がバスブリッジへの通知として送信される。バスブリッジ１０３は先の転送における割り込み通知処理と同様に、第１のマスタの割り込みステータスレジスタからのステータス値（Ｄ１）の読出す（サイクルｔ２５、ｔ２６）と割り込み要因のクリア（ｔ２８、ｔ２９）を行う。次に、バスブリッジ１０３はメッセージ通知回路への割り込みステータス情報の第２のバス経由での転送（ｔ２９、ｔ３０）を実行する。
【００４０】
図８で示されるように複数の割り込み要因が近接した時間で発生した場合でも、本実施形態では割り込み発生の都度割り込み要因の読出し、クリアとＣＰＵへの通知を書き込み転送要求が行われる第２のバス経由で行う。図８の例では、第１のマスタからの転送データが、順に出力される保存領域１０３９に保存されて、ステータス情報はその次に出力される保存領域１０４０に保存されているので、転送データはやはりステータス情報より先に第２のバス上に転送される。そのため、ＣＰＵへの割り込み信号を通知する時点では、共有メモリへの書き込み完了の保証がなされる。
【００４１】
なお、図１ではブリッジ経由で割り込み信号を送信するマスタが１つの場合を図示しているが、第１のバス上に複数のマスタが存在する場合でも本実施形態は適用可能である。第１のバス上に複数のマスタが存在する場合には、バスブリッジは各マスタに対応する割り込み信号入力ポートと各マスタに対応するレジスタ１０３４、レジスタ１０３５およびレジスタ１０３１のセットを用意しておけばよい。
【００４２】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置における１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００４３】
１０１  第１のマスタ（ＩＯコントローラ）
１０２  第２のマスタ（ＣＰＵ）
１０３  バスブリッジ
１０４  メモリ制御回路
１０５  共有メモリ
１０６  メッセージ通知回路
１０７  第１のバス（ＩＯバス）
１０８  第２のバス（ＣＰＵバス）
１０１０  割り込みステータスレジスタ
１０３０  データバッファ
１０３１  ステータス読出し部
１０３２  調停回路
【図１】
2017199287.tif 000003
【図２】
2017199287.tif 000004
【図３】
2017199287.tif 000005
【図４】
2017199287.tif 000006
【図５】
2017199287.tif 000007
【図６】
2017199287.tif 000008
【図７】
2017199287.tif 000009
【図８】
2017199287.tif 000010