(57)【要約】【課題】バス全体にわたるレイテンシをできる限り小さくし、データ転送速度を向上させることができるようにする。【解決手段】データ転送レートの異なるＰＣＩバスとＩＳＡバスとを接続し、これらのバス間でデータを受け渡しするＰＣＩ／ＩＳＡブリッジ４であって、このＰＣＩ／ＩＳＡブリッジ４には、ＩＳＡバス上のＩＳＡデバイスに割り当てられたアドレスを保持するアドレスレジスタ４１と、アドレスレジスタ４１のアドレスを指定し、ＩＳＡデバイスから周期的にデータを読み出してデータバッファ４６に確保しておき、ＰＣＩバス上からのＩＳＡデバイスに対するリードアクセスに伴い、アドレスレジスタ４１のアドレスと同一のアドレスが指定された場合、そのアドレスに基づきすでにデータバッファ４５に確保されたデータをＰＣＩバス上に送り返す制御コア回路４０とが備えられている。【選択図】　図２
2004054527.tif 000002
【特許請求の範囲】
【請求項１】
データ転送レートの異なる高速バスと低速バスとを接続し、これらのバス間でデータを受け渡しするデータ転送制御装置であって、
前記低速バス上の周辺デバイスに割り当てられたアドレスを保持するアドレス保持手段と、
前記アドレス保持手段のアドレスを指定し、前記周辺デバイスから周期的にデータを読み出してバッファに確保しておくプリフェッチ手段と、
前記高速バス上からの前記周辺デバイスに対するリードアクセスに伴い、前記アドレス保持手段のアドレスと同一のアドレスが指定された場合、そのアドレスに基づき前記プリフェッチ手段により先読みされることで前記バッファに確保されたデータを前記高速バス上に送り返す直接応答手段と、
を備えたことを特徴とする、データ転送制御装置。
【請求項２】
前記アドレス保持手段には、比較的アクセス頻度の高いアドレスが保持される、請求項１に記載のデータ転送制御装置。
【請求項３】
前記高速および低速バスは、コンピュータ内部のバスである、請求項１または２に記載のデータ転送制御装置。
【請求項４】
前記高速バスは、コンピュータ内部のバスである一方、前記低速バスは、前記周辺デバイスを前記コンピュータに外部接続するためのケーブルである、請求項１または２に記載のデータ転送制御装置。
【請求項５】
データ転送レートの異なる高速バスと低速バスとを接続し、これらのバス間でデータを受け渡しするためのデータ転送制御方法であって、
前記低速バス上の周辺デバイスに割り当てられたアドレスをアドレスレジスタに保持するとともに、そのアドレスを指定して前記周辺デバイスから周期的にデータを読み出してバッファに確保しておくプリフェッチプロセスと、
前記高速バス上からの前記周辺デバイスに対するリードアクセスに伴い、前記アドレスレジスタのアドレスと同一のアドレスが指定された場合、そのアドレスに基づき前記プリフェッチプロセスにより先読みされることで前記バッファに確保されたデータを前記高速バス上に送り返す直接応答プロセスと、
を実行することを特徴とする、データ転送制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、たとえばコンピュータ内部のデータ転送レートの異なるバス同士を接続するバスブリッジや、コンピュータ内部のバスと外部機器接続用のケーブルとを接続するＩ／Ｏコントローラなどのデータ転送制御装置、およびデータ転送制御方法に関する。
【０００２】
【従来の技術】
たとえばパーソナルコンピュータのマザーボードには、ＣＰＵとメモリとを接続するＦＳＢ（Ｆｒｏｎｔ　Ｓｉｄｅ　Ｂｕｓ）のほか、比較的データ転送レートの高いＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ　Ｃｏｍｐｏｎｅｎｔ　Ｉｎｔｅｒｃｏｎｎｅｃｔ　）バスや、データ転送レートの低いＩＳＡ（Ｉｎｄｕｓｔｒｙ　Ｓｔａｎｄａｒｄ　Ａｒｃｈｉｔｅｃｔｕｒｅ）バスなどが配線されている。ＦＳＢとＰＣＩバスとの間には、双方向にデータや制御信号などを効率良く変換して受け渡しする機能を備えたホストブリッジが接続され、ＰＣＩバスとＩＳＡバスとの間には、ホストブリッジと同様の機能を備えたＰＣＩ／ＩＳＡブリッジが接続されている。
【０００３】
上記バスを介した従来のデータのやり取りは、一般に以下のようにして行われる。
【０００４】
たとえばＣＰＵからＩＳＡバス上のＩＳＡデバイスに対してデータ（制御上やり取りされる制御データ）の読み出し命令（以下、「リードアクセス」と称する）を行う際には、まず最初にＣＰＵがバスマスタとなってＦＳＢを占有する。ＦＳＢを占有したＣＰＵは、目的のデータが所在するＩＳＡデバイス内の制御レジスタに割り当てられたアドレス（Ｉ／Ｏポートアドレス）とリードアクセス信号とをＦＳＢ上に送出する。次に、ＦＳＢを通じてアドレスとリードアクセス信号とを受けたホストブリッジがバスマスタとなってＰＣＩバスを占有し、受け取ったアドレスとリードアクセス信号とをＰＣＩバスのバスサイクルに対応するように変換してＰＣＩバス上に送出する。さらに、ＰＣＩバスを通じてアドレスとリードアクセス信号とを受けたＰＣＩ／ＩＳＡブリッジが次にバスマスタとなってＩＳＡバスを占有し、受け取ったアドレスとリードアクセス信号とをＩＳＡバスのバスサイクルに対応するように変換してＩＳＡバス上に送出する。
【０００５】
これにより、アドレスの指定先となるＩＳＡデバイスの制御レジスタからデータが読み出され、このデータがＩＳＡバスを通じてＰＣＩ／ＩＳＡブリッジに送り返される。データを受けたＰＣＩ／ＩＳＡブリッジは、そのデータをＰＣＩバスを通じてホストブリッジに送り返し、さらにホストブリッジがＦＳＢを通じてＣＰＵにデータを送り返すことで一通りのリードアクセスが完了とされる。
【０００６】
【発明が解決しようとする課題】
しかしながら、上記した従来のデータのやり取りでは、ＦＳＢとＰＣＩバスとの間やＰＣＩバスとＩＳＡバスとの間において、バスマスタが目的とするデータをＩＳＡデバイスから受けるまではデータ転送レートの低い下位側のバスが占有状態とされてしまう。言い換えれば、バスマスタとしての各ブリッジの制御によりデータ転送レートの低い方のバスが解放されない限りは高い方のバスが解放されず、高速側のバスからしてみれば占有時間が長引いてしまっていた。そのため、データ転送レートの異なる複数のバスを経由してデータを転送する限りは、ある程度のレイテンシ（デバイスに対してアクセスを行い、そのデバイスから結果が返ってくるまでの遅延時間）を認めざるを得ず、リードアクセスの際のデータ転送速度にある程度の限界があった。
【０００７】
【発明の開示】
そこで、本発明は、上記した事情のもとで考え出されたものであって、バス全体にわたるレイテンシをできる限り小さくし、データ転送速度を向上させることができるデータ転送制御装置、およびデータ転送制御方法を提供することを、その課題としている。
【０００８】
上記課題を解決するため、本発明では、次の技術的手段を講じている。
【０００９】
本発明の第１の側面によるデータ転送制御装置は、データ転送レートの異なる高速バスと低速バスとを接続し、これらのバス間でデータを受け渡しするデータ転送制御装置であって、低速バス上の周辺デバイスに割り当てられたアドレスを保持するアドレス保持手段と、アドレス保持手段のアドレスを指定し、周辺デバイスから周期的にデータを読み出してバッファに確保しておくプリフェッチ手段と、高速バス上からの周辺デバイスに対するリードアクセスに伴い、アドレス保持手段のアドレスと同一のアドレスが指定された場合、そのアドレスに基づきプリフェッチ手段により先読みされることでバッファに確保されたデータを高速バス上に送り返す直接応答手段とを備えたことを特徴としている。
【００１０】
ここで、アドレス保持手段には、比較的アクセス頻度の高いアドレスが保持される構成とするのが好ましい。
【００１１】
好ましい実施の形態としては、高速および低速バスは、コンピュータ内部のバスである構成とすることができる。この場合、データ転送制御装置は、コンピュータ内部のデータ転送レートの異なるバス同士を接続するバスブリッジとして機能する。
【００１２】
また、他の好ましい実施の形態としては、高速バスは、コンピュータ内部のバスである一方、低速バスは、周辺デバイスをコンピュータに外部接続するためのケーブルである構成とすることができる。この場合、データ転送制御装置は、コンピュータ内部のバスとたとえばプリンタケーブルとを接続するＩ／Ｏコントローラとして機能する。
【００１３】
本発明の第２の側面によるデータ転送制御方法は、データ転送レートの異なる高速バスと低速バスとを接続し、これらのバス間でデータを受け渡しするためのデータ転送制御方法であって、低速バス上の周辺デバイスに割り当てられたアドレスをアドレスレジスタに保持するとともに、そのアドレスを指定して周辺デバイスから周期的にデータを読み出してバッファに確保しておくプリフェッチプロセスと、高速バス上からの周辺デバイスに対するリードアクセスに伴い、アドレスレジスタのアドレスと同一のアドレスが指定された場合、そのアドレスに基づきプリフェッチプロセスにより先読みされることでバッファに確保されたデータを高速バス上に送り返す直接応答プロセスとを実行することを特徴としている。
【００１４】
本発明によれば、たとえばコンピュータ内部の高速バス上から低速バス上の周辺デバイスに対してリードアクセスがなされ、その際に指定されたアドレスに基づき周辺デバイスのデータが事前にプリフェッチされている場合、周辺デバイスとの間で低速バスを介してリードアクセスやデータ転送が行われことはなく、プリフェッチ済みのデータが高速バス上に送り返される。つまり、高速バスと低速バスとの間で目的とするデータがすでに得られていれば、そのデータがレスポンスとして即座に返され、その分、低速バスを介してデータなどがやり取りされることなく高速バスが早期に解放されるので、バス全体にわたるレイテンシをできる限り小さくすることができ、データ転送速度を向上させることができる。
【００１５】
特に、比較的アクセス頻度の高いアドレスをアドレス保持手段としてのアドレスレジスタなどに保持しておくようにすれば、周辺デバイスに対するリードアクセスの際には、プリフェッチ済みのデータに対するヒット率を高めることができるので、アクセスパターンの局所性を活かしてもデータ転送速度を向上させることができる。
【００１６】
本発明のその他の特徴および利点は、図面を参照して以下に行う詳細な説明から、より明らかとなるであろう。
【００１７】
【発明の実施の形態】
以下、本発明の好ましい実施の形態について、図面を参照して具体的に説明する。
【００１８】
図１は、本発明のデータ転送制御装置を含む一例としてのバス構成図である。たとえばパーソナルコンピュータの本体に内蔵されたマザーボードには、図１に示すようにＣＰＵ１とメモリ２とを接続するＦＳＢ１０のほか、ＰＣＩバス２０やＩＳＡバス３０などが配線されている。ＦＳＢ１０とＰＣＩバス２０との間には、双方向からのデータなどを効率良く受け渡しするデータ転送制御機能を備えたホストブリッジ３が接続され、ＰＣＩバス２０とＩＳＡバス３０との間には、ホストブリッジ３と同様の機能を備えたＰＣＩ／ＩＳＡブリッジ４が接続されている。ＰＣＩバス２０には、ＰＣＩデバイス５が接続され、ＩＳＡバス３０には、ＩＳＡデバイス６が接続されている。これらのうち、ホストブリッジ３およびＰＣＩ／ＩＳＡブリッジ４のそれぞれが本発明に係るデータ転送制御装置に相当する。ちなみに、パーソナルコンピュータの分野では、一般にホストブリッジ３はノースブリッジと呼ばれ、ＰＣＩ／ＩＳＡブリッジ４はサウスブリッジと呼ばれている。
【００１９】
まず、バスについて具体的に説明すると、ＦＳＢ１０は、マザーボード上のベースクロック（動作周波数）に合わせてデータやアドレスなどを双方向に伝送するパラレル伝送路であり、リード／ライトアクセス信号などの制御信号用のコントロールバス１１、アドレス専用のアドレスバス１２、およびデータ専用のデータバス１３からなる。このＦＳＢ１０では、たとえばバスクロック（ベースクロックに一致）が１００〜２００ＭＨｚ、最大データ転送速度が２ＧＢｙｔｅ／ｓ程度とされる。
【００２０】
ＰＣＩバス２０は、ＰＣＩデバイス５とホストブリッジ３やＰＣＩ／ＩＳＡブリッジ４との間でデータやアドレスなどを双方向に伝送するパラレル伝送路であり、リード／ライトアクセス信号などの制御信号用のコントロールバス２１と、アドレス／データ共用のアドレス／データバス２２からなる。このＰＣＩバス２０では、たとえばアドレス／データバス２２のバス幅が３２ビット、最大バスクロックが３３ＭＨｚ、最大データ転送速度が１３２ＭＢｙｔｅ／ｓとされる。
【００２１】
ＩＳＡバス３０は、ＩＳＡデバイス６とＰＣＩ／ＩＳＡブリッジ４との間でデータやアドレスなどを双方向に伝送するパラレル伝送路であり、リード／ライトアクセス信号などの制御信号用のコントロールバス３１、アドレス専用のアドレスバス３２、およびデータ専用のデータバス３３からなる。このＩＳＡバス３０では、たとえばアドレスバス３２およびデータバス３３のバス幅がそれぞれ２４ビットおよび１６ビット、最大バスクロックが８ＭＨｚ、最大データ転送速度が４ＭＢｙｔｅ／ｓとされる。
【００２２】
すなわち、データ転送レートについては、ＦＳＢ１０＞ＰＣＩバス２０＞ＩＳＡバス３０の関係が成立し、ＩＳＡバス３０よりもＰＣＩバス２０、ＰＣＩバス２０よりもＦＳＢ１０の方が高速とされる。
【００２３】
ＣＰＵ１は、周辺デバイスとしてのメモリ２やＰＣＩデバイス５、ＩＳＡデバイス６に対してデータ（制御上やり取りされる制御データを含む）を読み書きする。その際、ＣＰＵ１は、バスマスタとしてＦＳＢ１０を占有し、リード／ライトアクセス信号をＦＳＢ１０のコントロールバス１１上に送出する。同時にＣＰＵ１は、ターゲットとなる周辺デバイス２，５，６上のデータ位置を示すアドレスを指定し、そのアドレスをＦＳＢ１０のアドレスバス１２上に送出する。ちなみに、メモリ２に対するリード／ライトアクセスの際には、メモリ２に割り当てられたメモリアドレスがＣＰＵ１により指定されるが、ＰＣＩデバイス５やＩＳＡデバイス６に対するリード／ライトアクセスの際には、各デバイス５，６に割り当てられたＩ／Ｏポートアドレスが指定される。このようなリード／ライトアクセス信号は、リード／ライトサイクルとも呼ばれる。
【００２４】
メモリ２は、アドレスが割り振られた領域（アドレス領域）にデータを格納しており、ＣＰＵ１などからアドレスが指定されると、それに応じたアドレス領域のデータを出力したり、アドレス領域に対してデータを書き込む。
【００２５】
ＰＣＩデバイス５は、たとえばＩＤＥ（Ｉｎｔｅｇｒａｔｅｄ　Ｄｅｖｉｃｅ　Ｅｌｅｃｔｒｏｎｉｃｓ　）ハードディスクドライブ、ＮＩＣ（Ｎｅｔｗｏｒｋ　Ｉｎｔｅｒｆａｃｅ　Ｃａｒｄ）、ＳＣＳＩ（Ｓｍａｌｌ　Ｃｏｍｐｕｔｅｒ　Ｓｙｓｔｅｍ　Ｉｎｔｅｒｆａｃｅ　）デバイス、グラフィックス・アクセラレータなどであり、メモリ２よりもデータ入出力速度が遅いが比較的高速な部類に属するものである。図１には簡略化して１つのＰＣＩデバイス５しか示さないが、ＰＣＩデバイス５には、ＰＣＩバス２０上の図示しない拡張コネクタにライザカードとして装着されるタイプと、図示しないＩ／Ｏコントローラを介してＰＣＩバス２０に接続されるタイプとがあり、これらのタイプがＰＣＩバス２０上に混在して接続されている。このようなＰＣＩデバイス５自体には、制御用のマイクロコンピュータや周辺回路とともに制御レジスタが組み込まれており、この制御レジスタにＩ／Ｏポートアドレスが割り当てられている。
【００２６】
ＩＳＡデバイス６は、たとえばＦＤＤ（Ｆｌｅｘｉｂｌｅ　Ｄｉｓｋ　Ｄｒｉｖｅ　）、ＲＳ−２３２Ｃデバイス、プリンタ、キーボードなどであり、データ入出力速度に関してＰＣＩデバイス５よりも低速となる部類に属するものである。図１には簡略化して１つのＩＳＡデバイス６しか示さないが、ＩＳＡデバイス６には、ＩＳＡバス３０上の図示しない拡張コネクタにライザカードとして装着されるタイプと、図示しないＩ／Ｏコントローラを介してＩＳＡバス３０に接続されるタイプとがあり、これらのタイプがＩＳＡバス３０上に混在して接続されている。このようなＩＳＡデバイス６自体には、制御用のマイクロコンピュータや周辺回路とともに制御レジスタが組み込まれており、この制御レジスタにＩ／Ｏポートアドレスが割り当てられている。
【００２７】
次に、要部となるＰＣＩ／ＩＳＡブリッジ４について具体的に説示する。なお、ホストブリッジ３は、ＰＣＩ／ＩＳＡブリッジ４と接続対象となるバスが相違する以外は同様の構成からなるため、便宜上ホストブリッジ３についての説明を割愛する。
【００２８】
図２は、ＰＣＩ／ＩＳＡブリッジ４の内部構成を示すブロック図である。この図に示すように、ＰＣＩ／ＩＳＡブリッジ４は、制御コア回路４０、アドレスレジスタ４１、アドレス比較回路４２、アドレスジェネレータ４３、タイマクロックジェネレータ４４、データバストランシーバ回路４５、およびデータバッファ４６などにより構成されている。特に図２には示さないが、上位バスとなるＰＣＩバス２０は、コントロールバス２１が制御コア回路４０に接続され、アドレス／データバス２２がアドレス比較回路４２、データバストランシーバ回路４５、およびデータバッファ４６に接続されている。また、下位バスとなるＩＳＡバス３０は、コントロールバス３１が制御コア回路４０、アドレスバス３２がアドレスジェネレータ４３、データバス３３がデータバストランシーバ回路４５およびデータバッファ４６に接続されている。このようなＰＣＩ／ＩＳＡブリッジ４は、下位側のＩＳＡバス３０に対してバスマスタとなり得るものである。
【００２９】
制御コア回路４０は、ＰＣＩ／ＩＳＡブリッジ４全体の動作を制御する。たとえば制御コア回路４０は、ＩＳＡデバイス６に対するリード／ライトアクセス信号をＰＣＩバス２０のコントロールバス２１から受けると、そのリード／ライトアクセス信号をＩＳＡバス３０のバスサイクルに応じたリード／ライトアクセス信号に変換してＩＳＡバス３０のコントロールバス３１に送り出す。また、制御コア回路４０は、アドレスレジスタ４１やデータバッファ４６を用いてＩＳＡデバイス６から事前にデータを読み出しておくといったプリフェッチ機能を備える。
【００３０】
アドレスレジスタ４１には、設計段階などでＩＳＡバス３０上のＩＳＡデバイス６に対するアクセスパターンのシミュレーションを行い、これによりアクセス頻度がある程度高いとの推測結果が得られた、たとえばＦＤＤ、ＲＳ−２３２Ｃデバイス、プリンタ、キーボードなどのＩ／Ｏポートアドレスが予め保持されている。以下の説明では、アドレスレジスタ４１に保持されているアドレスを、特に「プリセットアドレス」と呼ぶ。
【００３１】
アドレス比較回路４２は、ＰＣＩバス２０のアドレス／データバス２２から受けたアドレスとアドレスレジスタ４１のプリセットアドレスとを比較する。これらのアドレスを比較した結果は、アドレス比較回路４２から制御コア回路４０に対して通知される。
【００３２】
アドレスレジスタ４３は、制御コア回路４０からの指令に応じてＰＣＩバス２０のアドレス／データバス２２から受けたアドレスや、アドレスレジスタ４１のプリセットアドレスに対応するアドレスを生成し、ＩＳＡバス３０のバスサイクルに応じたアドレスとしてＩＳＡバス３０のアドレスバス３１に送り出す。
【００３３】
タイマクロックジェネレータ４４は、制御コア回路４０がプリフェッチ機能を周期的に実行するためのタイマクロック信号を生成し、このタイマクロック信号を制御コア回路４０に供給する。タイマクロック信号を受けた制御コア回路４０は、タイマクロック信号に基づくタイミングでアドレスジェネレータ４３に指令を送り、これによりアドレスジェネレータ４３を介してアドレスレジスタ４１のプリセットアドレスが周期的にＩＳＡバス３０のアドレスバス３１に送り出される。
【００３４】
データバストランシーバ回路４５は、上位バスとなるＰＣＩバス２０のアドレス／データバス２２から受けたデータを、ＩＳＡバス３０などのバスサイクルに応じたデータに変換してデータバス３３上に送り出す。逆に、データバストランシーバ回路４５は、下位バスとなるＩＳＡバス３０などのデータバス３３から受けたデータを、ＰＣＩバス２０のバスサイクルに応じたデータに変換してアドレス／データバス２２上に送り出す。
【００３５】
データバッファ４６には、制御コア回路４０のプリフェッチ機能によりＩＳＡデバイス６の制御レジスタから読み出されたデータが一時的に保存される。このデータバッファ４６に保存されたデータは、ＰＣＩバス２０を通じて指定されたアドレスとアドレスレジスタ４１のプリセットアドレスとが一致する場合、制御コア回路４０の制御に応じてＰＣＩバス２０のアドレス／データバス２２上に送り出される。
【００３６】
次に、ＰＣＩ／ＩＳＡブリッジ４の動作について図３および図４を参照して説明する。
【００３７】
図３および図４は、ＰＣＩ／ＩＳＡブリッジ４の動作を模式的に説明するための模式図である。まず、図３の（ａ）に示すように、ＰＣＩ／ＩＳＡブリッジ４は、ＣＰＵ１などからのリード／ライトアクセスがないとき、下位バスとなるＩＳＡバス３０を占有して周期的にプリフェッチ機能を実行している。具体的に言うと、ＰＣＩ／ＩＳＡブリッジ４の制御コア回路４０は、タイマクロック信号に基づく周期的なタイミングでリードアクセス信号をＩＳＡバス３０上に送り出し、同時にアドレスレジスタ４１のプリセットアドレスをＩＳＡバス３０上に送り出す。たとえば、図３の（ａ）に一例として示すように、ＩＳＡバス３０に接続されたＩＳＡデバイス６としてのＦＤＤ６Ａ、ＲＳ−２３２Ｃデバイス６Ｂ、プリンタ６Ｃに割り当てられた各アドレスが、「０ｘ０ａ００」、「０ｘ０ｂ００」、「０ｘ０ｃ００」のプリセットアドレスとしてアドレスレジスタ４１に保持されている場合、各プリセットアドレスを順に指定してリードアクセス信号が各デバイス６Ａ〜６Ｃに送られる。
【００３８】
リードアクセス信号を受けた各デバイス６Ａ〜６Ｃでは、指定されたプリセットアドレスに対応する制御レジスタからデータが読み出されるとともに、そのデータがＩＳＡバス３０を介してＰＣＩ／ＩＳＡブリッジ４に送られる。ＰＣＩ／ＩＳＡブリッジ４では、各デバイス６Ａ〜６Ｃから送られてきたデータが次にプリセットアドレスが指定されるまでデータバッファ４６に保存される。たとえば、図３の（ａ）に一例として示すように、ＦＤＤ６Ａ、ＲＳ−２３２Ｃデバイス６Ｂ、プリンタ６Ｃからは、「データ０ａ」、「データ０ｂ」、「データ０ｃ」が周期的に読み出され、これらのデータがデータバッファ４６に取り込まれる。このような一連の動作を繰り返すことでプリフェッチ機能が定期的に実行されている。
【００３９】
以上のようなプリフェッチ機能の実行中、たとえば図３の（ｂ１）に示すように、ＣＰＵ１から特定のＩＳＡデバイス６（一例としてＦＤＤ６Ａ）に対するリードアクセスが生じると、ＣＰＵ１がまずＦＳＢ１０を占有してＦＳＢ１０上にリードアクセス信号およびアドレスを送出する。ＣＰＵ１により送出されたリードアクセス信号およびアドレスは、ＦＳＢ１０を介してホストブリッジ３に受け取られる。このときのアドレスは、ＦＤＤ６Ａに割り当てられた「０ｘ０ａ００」とする。
【００４０】
ＦＳＢ１０を通じてリードアクセス信号およびアドレスを受けたホストブリッジ３は、図３の（ｂ２）に示すように、ＰＣＩバス２０を占有してＰＣＩバス２０上にリードアクセス信号およびアドレスを転送する。ホストブリッジ３により転送されたリードアクセス信号およびアドレスは、ＰＣＩバス２０を介してＰＣＩ／ＩＳＡブリッジ４に受け取られる。
【００４１】
このとき、ＰＣＩ／ＩＳＡブリッジ４では、ＰＣＩバス２０を通じてリードアクセス信号とともに受け取ったアドレスと、アドレスレジスタ４１のプリセットアドレスとが一致するか否かがアドレス比較回路４２により判定される。そして、両アドレスがともに「０ｘ０ａ００」として一致する場合、図３の（ｂ３）に示すように、ＰＣＩ／ＩＳＡブリッジ４では、データバッファ４６にすでに存在する目的のデータ（「０ｘ０ａ００」に対応する「データ０ａ」）が読み出され、そのデータがＰＣＩバス２０を経由してホストブリッジ３に送り返される。すなわち、プリセットアドレスと同じアドレスを指定したリードアクセスの際には、データバッファ４６にすでにプリフェッチされたデータがヒットすることで即座にＰＣＩバス２０を経由してホストブリッジ３に送られ、リードアクセスのターゲットとなる特定のＩＳＡデバイス６に対してデータを直接読みに行く必要はない。このような同一アドレスの指定によりデータがヒットする確率は、アドレスレジスタ４１に比較的アクセス頻度の高いプリセットアドレスが保持されているために局所的に高くなりやすく、たとえばＩＳＡデバイス６を定期的に監視するためにリードアクセスが行われる際に極めて高くなると言えよう。
【００４２】
以上のようにしてＰＣＩ／ＩＳＡブリッジ４から目的とするデータを受け取ったホストブリッジ３は、最終的に図３の（ｂ４）に示すように、ＦＳＢ１０を経由してアクセス元のＣＰＵ１にデータを送り届ける。これによりリードアクセスが完了してＦＳＢ１０やＰＣＩバス２０が解放される。
【００４３】
要するに、図３の（ｂ１）〜（ｂ４）の順に実行する一連のプロセスによれば、ＣＰＵ１から特定のＩＳＡデバイス６に対するリードアクセスに際してすでに目的とするデータがＰＣＩ／ＩＳＡブリッジ４にプリフェッチされており、ＰＣＩ／ＩＳＡブリッジ４は、内部的にデータをデータバッファ４６から読み出してホストブリッジ３に送るだけで良い。したがって、ＰＣＩ／ＩＳＡブリッジ４は、リードアクセスのターゲットとなるＩＳＡデバイス６との間でＩＳＡバス３０を介してデータなどをやり取りする必要が無く、バス全体としては、ＰＣＩ／ＩＳＡブリッジ４より下位のＩＳＡバス３０が使用されない分、ＣＰＵ１やホストブリッジ３に占有される時間が短くて通常よりも早期に解放される。
【００４４】
一方、図４の（ｃ１）に一例として示すように、ＣＰＵ１上で特定のＩＳＡデバイス６（ＦＤＤ６Ａ）に対するリードアクセスが生じ、その際にＣＰＵ１からリードアクセス信号とともに送出されたＦＤＤ６Ａのアドレス「０ｘ０ａ０１」がアドレスレジスタ４１に存在しない場合もある。この場合も、ＦＳＢ１０を通じてリードアクセス信号およびアドレスを受けたホストブリッジ３は、図４の（ｃ２）に示すように、ＰＣＩバス２０を占有してＰＣＩバス２０上にリードアクセス信号およびアドレスを転送する。ホストブリッジ３により転送されたリードアクセス信号およびアドレスは、ＰＣＩバス２０を介してＰＣＩ／ＩＳＡブリッジ４に受け取られる。
【００４５】
このとき、ＰＣＩ／ＩＳＡブリッジ４では、ＰＣＩバス２０を通じてリードアクセス信号とともに受け取ったアドレス「０ｘ０ａ０１」と、アドレスレジスタ４１のプリセットアドレスとが一致しないことがアドレス比較回路４２により判定される。その結果、図４の（ｃ３）に示すように、さらにＰＣＩ／ＩＳＡブリッジ４は、ＩＳＡバス３０を占有し、このＩＳＡバス３０を経由してリードアクセスのターゲットとなるＦＤＤ６Ａにリードアクセス信号およびアドレスを転送する。
【００４６】
リードアクセス信号およびアドレスを受けたＦＤＤ６Ａでは、図４の（ｃ４）に示すように、そのアドレス「０ｘ０ａ０１」に対応する制御レジスタから「データｂ１」が読み出され、そのデータが再びＩＳＡバス３０を経由してＰＣＩ／ＩＳＡブリッジ４に送り届けられる。
【００４７】
そうして目的とするデータをＦＤＤ６Ａから受け取ったＰＣＩ／ＩＳＡブリッジ４は、図４の（ｃ５）に示すように、ＰＣＩバス２０を経由してホストブリッジ３にデータを送り返す。すなわち、プリセットアドレスに一致しないアドレスを指定したリードアクセスの際には、データバッファ４６にプリフェッチされたデータがヒットしない状態とされ、通常通りにリードアクセスのターゲットとなる特定のＩＳＡデバイス６まで直接データが読みに行かれる。
【００４８】
そして、ＰＣＩ／ＩＳＡブリッジ４から目的とするデータを受け取ったホストブリッジ３は、最終的に図４の（ｃ６）に示すように、ＦＳＢ１０を経由してアクセス元のＣＰＵ１にデータを送り届ける。これによりリードアクセスが完了してＦＳＢ１０やＰＣＩバス２０、ＩＳＡバス３０が解放される。
【００４９】
要するに、図４の（ｃ１）〜（ｃ６）の順に実行する一連のプロセスによれば、目的とするデータがＰＣＩ／ＩＳＡブリッジ４にプリフェッチされていないため、通常通りにターゲットとなるＩＳＡデバイス６までバス１０〜３０やブリッジ３，４を経由してデータが読みに行かれ、その分、図３の（ｂ１）〜（ｂ４）のプロセスよりもデータ転送時間が長くなる。なお、プロセス全体としては、従来と同程度のデータ転送時間を要するプロセス（図４の（ｃ１）〜（ｃ６））が常に発生するわけでなく、データ転送時間が短くなるプロセス（図３の（ｂ１）〜（ｂ４））が高い確率で発生するので、リードアクセスの平均的なデータ転送時間としては総じて短くなる。
【００５０】
したがって、本実施形態に係るＰＣＩ／ＩＳＡブリッジ４によれば、リードアクセスのターゲットとなるＩＳＡデバイス６からすでに目的とするデータをプリフェッチしてバッファリングしていれば、そのデータをレスポンスとして即座に返すことができる。すなわち、ＩＳＡバス３０を介してリードアクセス信号やアドレス、さらにはデータなどがやり取りされないプロセスがあり、そのようなプロセスではＰＣＩバス２０が早期に解放されるので、バス全体としてはレイテンシが平均的に小さくなり、ひいてはデータ転送速度が総じて向上することとなる。
【００５１】
なお、本発明は、上記の実施形態に限定されるものではない。
【００５２】
本発明に係るデータ転送制御装置は、マザーボード上のバス同士を接続するバスブリッジ以外にも適用可能である。たとえば図５に示すように、コンピュータ本体１００にケーブル２００を介してプリンタ３００が接続されている場合、コンピュータ本体１００内部のバス（図示省略）と、外部バスとしてのケーブル２００との間でデータなどをやり取りする入出力インターフェイスとしてのＩ／Ｏコントローラ１１０に本発明に係るデータ転送制御装置の機能を設けるようにしても良い。このようなＩ／Ｏコントローラ１１０は、たとえばＰＣＩ／ＩＳＡブリッジ４内部のプロセッサバスとケーブル２００との間に位置するよう、ＰＣＩ／ＩＳＡブリッジ４の内部に内蔵されるタイプのほか、たとえばＩＳＡバス３０とケーブル２００との間に位置してマザーボード上に直接搭載されるチップタイプや、ＩＳＡバス３０に拡張コネクタを介して接続されるライザカード上のチップタイプがあるが、いずれであっても良い。
【００５３】
アドレスレジスタ４１には、比較的アクセス頻度の高いプリセットアドレスが予め保持されているが、たとえばＰＣＩ／ＩＳＡブリッジ４自体がアクセスパターンのログなどを取得する機能を備え、そのアクセスパターンのログから実動上アクセス頻度の高いアドレスを求めて随時更新するようにしても良い。
【００５４】
上記実施形態では、最下位のＩＳＡデバイス６をターゲットしたリードアクセスのケースを想定したが、ホストブリッジ３もＰＣＩ／ＩＳＡブリッジ４と同様の構成からなるため、ＣＰＵ１からホストブリッジ３を介してＰＣＩデバイス５にリードアクセスが行われる場合にも上記実施形態と同様の効果が得られる。つまり、ＰＣＩデバイス５に対するリードアクセスの際には、そのＰＣＩデバイス５からすでに目的とするデータがホストブリッジ３でプリフェッチされていることがある。そうすると、ＰＣＩバス２０を介してデータなどがやり取りされることもなくＦＳＢ１０が早期に解放されるので、この場合にも、バス全体としてはレイテンシが平均的に小さくなり、ひいてはデータ転送速度を向上させることができる。
【００５５】
また、ＣＰＵ１からのリードアクセスに限らず、たとえばホストブリッジ３にＤＭＡ（Ｄｉｒｅｃｔ　Ｍｅｍｏｒｙ　Ａｃｃｅｓｓ）コントローラが備えられ、このＤＭＡコントローラからのリードアクセスに応じてメモリとＩＳＡデバイス６との間で直接データがやり取りされるような場合にも同様の効果を得ることができる。
【００５６】
アドレスレジスタ４１のプリセットアドレスは、各デバイス６Ａ〜６Ｃごとに一つのアドレスに限らず、アドレスレジスタ４１のサイズに応じて各デバイス６Ａ〜６Ｃごとに任意数のプリセットアドレスを保持するようにしても良い。
【００５７】
【発明の効果】
以上説明したように、本発明によれば、たとえばコンピュータ内部の高速バス上から低速バス上の周辺デバイスに対してリードアクセスがなされ、その際に指定されたアドレスに基づき周辺デバイスのデータが事前にプリフェッチされている場合、周辺デバイスとの間で低速バスを介してリードアクセスやデータ転送が行われことはなく、プリフェッチ済みのデータが高速バス上に送り返される。つまり、高速バスと低速バスとの間で目的とするデータがすでに得られていれば、そのデータがレスポンスとして即座に返され、その分、低速バスを介してデータなどがやり取りされることなく高速バスが早期に解放されるので、バス全体にわたるレイテンシをできる限り小さくすることができ、データ転送速度を向上させることができる。
【図面の簡単な説明】
【図１】本発明のデータ転送制御装置を含む一例としてのバス構成図である。
【図２】ＰＣＩ／ＩＳＡブリッジの内部構成を示すブロック図である。
【図３】ＰＣＩ／ＩＳＡブリッジの動作を模式的に説明するための模式図である。
【図４】ＰＣＩ／ＩＳＡブリッジの動作を模式的に説明するための模式図である。
【図５】本発明のデータ転送制御装置を含む他の例としてのシステム構成図である。
【符号の説明】
１　　ＣＰＵ
２　　メモリ
３　　ホストブリッジ
４　　ＰＣＩ／ＩＳＡブリッジ
５　　ＰＣＩデバイス
６　　ＩＳＡデバイス
１０　ＦＳＢ（フロントサイドバス）
２０　ＰＣＩバス
３０　ＩＳＡバス
４０　制御コア回路（プリフェッチ手段，直接応答手段）
４１　アドレスレジスタ（アドレス保持手段）
４２　アドレス比較回路
４３　アドレスジェネレータ
４４　タイマクロックジェネレータ
４５　データバストランシーバ回路
４６　データバッファ
【図１】
2004054527.tif 000003
【図２】
2004054527.tif 000004
【図３】
2004054527.tif 000005
【図４】
2004054527.tif 000006
【図５】
2004054527.tif 000007