(57)【要約】【課題】メモリをアクセスし、プリフェッチバッファを複数有するブリッジ回路にバス接続されるバス接続回路に関し、１つのバス接続回路を接続しても、バスを効率良く使用する。【解決手段】複数のリクエストキュー（６５１Ａ〜６５１Ｄ）と、複数のリクエスト信号の出力及びグラント信号の入力を１つのバス接続デバイス（６０１）に付与した。１つのバス接続デバイスよって、ブリッジ回路（６０２）の複数のプリフェッチバッファ（６２１Ａ〜６２１Ｄ）を有効に利用することができ、またブリッジ回路（６０２）からのリトライ応答に対応する無駄なリードリクエストを減らすことができ、ＰＣＩバスの無駄な使用を減らすことが出来る。【選択図】図１
2004334552.tif 000002
【特許請求の範囲】
【請求項１】
外部からデータをプリフェッチするための複数のプリフェッチバッファを有するブリッジ回路にバスを介して接続され、リクエストをアサートした後、前記プリフェッチバッファからのデータを受信するバス接続回路において、
複数のリクエストキューと、
前記複数のリクエストキューのリクエストのアービトレーションを行うアービターと、
前記アービターでアービトレーションされたリクエストに対応する前記プリフェッチバッファの割り当てを示すリクエスト信号を出力し、且つ前記ブリッジ回路から対応するグラント信号を受けるバスインターフェイス部とを有することを特徴とするバス接続回路。
【請求項２】
前記バスインターフェイス部は、前記リクエスト信号に応じた前記ブリッジ回路からのリトライ応答の受信に応じて、前記リクエスト信号による前記バスを開放し、他のプリフェッチバッファの割り当てを示すリクエスト信号を前記バスに出力することを特徴とする請求項１のバス接続回路。
【請求項３】
前記リクエストキューは、初めてのリードリクエストを、前記リトライ応答に応じたリードリクエストに優先して、アサートすることを特徴とする請求項２のバス接続回路。
【請求項４】
前記リクエストキューは、前記リトライ応答を受けてから、前記リトライ応答に対応したリードリクエストをアサートするまでの時間を設定するレジスタを有することを特徴とする請求項２のバス接続回路。
【請求項５】
メモリからデータをプリフェッチするための複数のプリフェッチバッファを有するブリッジ回路と、
前記ブリッジ回路にバスを介して接続され、リクエストをアサートした後、前記プリフェッチバッファからのデータを受信するバス接続回路とを有し、
前記バス接続回路は、
複数のリクエストキューと、
前記複数のリクエストキューのリクエストのアービトレーションを行うアービターと、
前記アービターでアービトレーションされたリクエストに対応する前記プリフェッチバッファの割り当てを示すリクエスト信号を出力し、且つ前記ブリッジ回路から対応するグラント信号を受けるバスインターフェイス部とを有することを特徴とするバス接続システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、高速で大容量のデータ転送を必要とするコンピュータシステムにおけるデータのプリフェッチ機能を利用したバス接続回路及びバス接続システムに関し、特に、ＰＣＩバスを内部に持つコンピュータシステム内で、データのプリフェッチ機能を利用して、大容量データの転送を効率化するためのバス接続回路及びバス接続システムに関する。
【０００２】
【従来の技術】
近年のコンピュータシステムにおいて、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスは、高速で大容量のデータ転送を行うことのできる標準のバス規格として広く採用されている。ＰＣＩは、米Ｉｎｔｅｌ社が提唱したバス規格であって、米国の業界団体であるＰＣＩ  Ｓｐｅｃｉａｌ  Ｉｎｔｅｒｅｓｔ  Ｇｒｏｕｐ（ＰＣＩ  ＳＩＧ）が仕様を策定し、公開している。ＰＣＩは、特にチップセットを介してＩ／Ｏデバイスをメモリと接続するのに利用され、Ｉ／Ｏデバイスとメモリ間のデータ転送を高速化するのに役に立っている。
【０００３】
図７はＰＣＩバスを使用したコンピュータシステムのブロック図であり、ＣＰＵ１０１，メモリコントローラ１００、メモリ１０２、ブリッジ回路１０３、ＰＣＩデバイス１０４Ａ，１０４Ｂによって構成されたコンピュータシステムを示す。ＰＣＩデバイス１０４Ａ，１０４Ｂは、ＰＣＩバス１１４によって、ブリッジ１０３に接続され、ＣＰＵ１０１、メモリ１０２、ブリッジ回路１０３は、それぞれ、プロセッサバス１１１、メモリバス１１２、メモリコントローラバス１１３によって、メモリコントローラ１００に接続されている。
【０００４】
ＰＣＩデバイス１０４Ａ，１０４Ｂは、ブリッジ１０３、メモリコントローラ１００を介して、メモリ１０２へアクセスすることができる。ブリッジ回路１０３は、メモリコントローラバス１１３とＰＣＩバス１１４とのバス間の速度、プロトコル等の相違を吸収するためのつなぎ動作を行う。
【０００５】
このブリッジ回路１０３を経由してのデータ転送は、ＰＣＩバスの高速性をそこなう可能性があるため、ブリッジ回路１０３に複数のプリフェッチバッファを設け、スループットを高める方法が利用されている（例えば、特許文献１）。
【０００６】
図８は、従来のプリフェッチバッファを設けたブリッジ回路１０３を含むコンピュータシステムの構成図である。複数のＰＣＩデバイス１０４Ａ〜１０４Ｄ、ブリッジ回路１０３、メモリ・ユニット１００，１０２から構成されたコンピュータシステムである。ＰＣＩデバイス１０４Ａ〜１０４Ｄおよびメモリ・ユニット１００，１０２は，それぞれＰＣＩバス１１４およびメモリバス１１３，１１２で、ブリッジ回路１０３に接続されている。
【０００７】
ブリッジ回路１０３は、ＰＣＩインターフェイス回路２１０と、各ＰＣＩデバイス１０４Ａ〜１０４Ｄに対応した複数のプリフェッチバッファ２２１Ａ〜２２１Ｄと、メモリインターフェイス回路２３０とを持つ。ＰＣＩデバイス１０４Ａ〜１０４Ｄは、各々ＲＥＱ信号およびＧＮＴ信号を一組持つＰＣＩインターフェイス回路２４０を持つ。
【０００８】
図９は、図８のコンピュータシステムにおいて、複数のＰＣＩデバイスが、メモリ・リード・リクエストを実行した場合の動作シーケンスの説明図であり、以下に詳細な動作を示す。
【０００９】
（１）ＰＣＩデバイス１０４Ａが、内部回路からのメモリ・リード・リクエストを実行するとき、ＰＣＩデバイス１０４Ａは、ＰＣＩバス１１４に、リクエスト信号ＲＥＱ３３１Ａを使用して、リクエストを出す。
【００１０】
（２）ＰＣＩデバイス１０４ＡのＰＣＩインターフェイス部２４０は、ブリッジ回路１０３からグラント信号ＧＮＴ３３２Ａを受け取ると、ＰＣＩバスのプロトコルに従い、メモリ・リード・リクエストのトランザクションを開始する。
【００１１】
（３）ブリッジ回路１０３のＰＣＩインターフェイス部２１０は、メモリ・リード・リクエストを受け取ると、ＲＥＱ３３１Ａ／ＧＮＴ３３２Ａに対応するプリフェッチ・バッファ２２１Ａをアサインして、ＰＣＩバス１１４には、リトライ応答をする。
【００１２】
（４）ＰＣＩデバイス１０４Ａがリトライ応答を受け取ると、一旦、ＰＣＩバス１０４を開放し、他のＰＣＩデバイスが、ＰＣＩバス１１４を使用できるようにする。
【００１３】
（５）上記のアサインされたプリフェッチバッファ２２１Ａは、メモリインターフェイス部２３０にメモリ・リードを行うように、メモリ・リード・リクエストを出す。
【００１４】
（６）メモリインターフェイス部２３０は、メモリ・ユニット１００，１０２にメモリ・リード・リクエストのトランザクションを開始する。
【００１５】
（７）メモリ・ユニット１００，１０２からリード・データが転送され、上記のアサインされたプリフェッチバッファ２２１Ａに格納される。
【００１６】
ＰＣＩデバイス１０４Ｂ〜１０４Ｄも，（１）〜（７）と同様にして、それぞれメモリ・リード・リクエストを実行する。通常、ブリッジ回路１０３のメモリインターフェイス部２３０がメモリ・リードを実行してから、リード・データを受け取るまでの時間は非常に長いため、各ＰＣＩデバイス１０４Ａ〜１０４Ｄによる（１）〜（７）の動作は、時間差をもってオーバーラップして行われる。
【００１７】
（８）ＰＣＩデバイス１０４Ａが、（１）〜（３）と同様にして、ブリッジ回路１０３へメモリ・リード・リクエストを実行する。
【００１８】
（９）ブリッジ回路１０３のＰＣＩインターフェイス部２１０は、メモリ・リード・リクエストを受け取ると、そのリクエストが使用したＲＥＱ３３１Ａ／ＧＮＴ３３２Ａに対応するプリフェッチバッファ２２１Ａを確認して、リード・データが格納されている場合、ＰＣＩバス１１４にデータ転送を開始する。
【００１９】
ＰＣＩデバイス１０４Ｂ〜１０４Ｄも，（８）〜（９）の動作と同様にして、再びブリッジ回路１０３へメモリ・リード・リクエストを実行して、リード・データの転送を開始する。
【００２０】
上記のように、プリフェッチバッファを使用することにより、ＰＣＩバスを有効に使用することが出来、システム全体としてのスループットが向上する。
【００２１】
【特許文献１】
特開平１１−２３８０３０号公報（図１３乃至図１５参照）
【００２２】
【発明が解決しようとする課題】
このように、従来技術では、ブリッジ回路に複数のプリフェッチバッファを用意することにより、ＰＣＩバスを複数のＰＣＩデバイスで時分割使用し、高速なメモリアクセスを可能とするものであった。しかしながら、回路構成によっては、必ずしも、ＰＣＩバスに、プリフェッチバッファ数のＰＣＩデバイスが接続されない場合がある。
【００２３】
例えば、図１０に示すように、１つのＰＣＩデバイス１０４Ａ、ブリッジ回路１０３、メモリ・ユニット１００，１０２から構成されたコンピュータシステムを構築する場合がある。ここで、ＰＣＩデバイス１０４Ａおよびメモリ・ユニット１００，１０２は、それぞれＰＣＩバス１１４およびメモリバス１１３，１１２でブリッジ回路１０３に接続されている。ブリッジ回路１０３は、複数のプリフェッチバッファ２２１Ａ〜２２１Ｄを持つ。又、ＰＣＩデバイス１０４Ａは，一組のＲＥＱ／ＧＮＴ信号を持つ。
【００２４】
図１１は，図１０のコンピュータシステムにおいて、ＰＣＩデバイス１０４Ａがメモリ・リード・リクエストを実行した場合の動作シーケンスの説明図であり、以下に詳細な動作を示す。
【００２５】
（１）ＰＣＩデバイス１０４Ａがメモリ・リード・リクエストを実行するとき、ＰＣＩデバイス１０４Ａは、ＰＣＩバス１１４にＲＥＱ５３１を使用してリクエストを出す。
【００２６】
（２）ＰＣＩデバイス１０４ＡのＰＣＩインターフェイス部２４０は、ブリッジ回路１０３からＧＮＴ５３２を受け取ると、ＰＣＩバスのプロトコルに従い、メモリ・リード・リクエストのトランザクションを開始する。
【００２７】
（３）ブリッジ回路１０３のＰＣＩインターフェイス部２１０は、メモリ・リード・リクエストを受け取ると、ＲＥＱ５３１／ＧＮＴ５３２に対応するプリフェッチバッファ２２１Ａをアサインして、ＰＣＩバス１１４にはリトライ応答をする。
【００２８】
（４）ＰＣＩデバイス１０４Ａがリトライ応答を受け取ると、一旦、ＰＣＩバス１１４を開放する。
【００２９】
（５）上記のアサインされたプリフェッチバッファ２２１Ａは、メモリインターフェース部２３０にメモリ・リードを行うようにメモリ・リード・リクエストを出す。
【００３０】
（６）メモリインターフェース部２３０は、メモリ・ユニット１００，１０２にメモリ・リード・リクエストのトランザクションを開始する。
【００３１】
（７）ＰＣＩデバイス１０４Ａが（１）〜（３）の動作と同様にして、ブリッジ回路１０３へメモリ・リード・リクエストを再び実行する。
【００３２】
（８）ブリッジ回路１０３のＰＣＩインターフェイス部２１０は、メモリ・リード・リクエストを受け取ると、そのリクエストが使用したＲＥＱ５３１／ＧＮＴ５３２に対応するプリフェッチバッファ２２１Ａを確認するが、まだリード・データが格納されていないため、ＰＣＩバス１１４にはリトライ応答をする。
【００３３】
（９）ＰＣＩデバイス１０４Ａがリトライ応答を受け取ると、一旦、ＰＣＩバス１１４を開放する。（７）〜（９）の動作が数回繰り返される。
【００３４】
（１０）メモリ・ユニット１００，１０２からリード・データが転送され、上記のアサインされたプリフェッチバッファ２２１Ａに格納される。
【００３５】
（１１）ＰＣＩデバイス１０４Ａが（１）〜（３）の動作と同様にして、ブリッジ回路１０３へメモリ・リード・リクエストを実行する。
【００３６】
（１２）ブリッジ回路１０３のＰＣＩインターフェイス部２１０はメモリ・リード・リクエストを受け取ると、そのリクエストが使用したＲＥＱ５３１／ＧＮＴ５３２に対応するプリフェッチバッファ２２１Ａを確認し、リード・データが格納されているため、ＰＣＩバス１１４にデータ転送を開始する。
【００３７】
このように１つのＰＣＩデバイスしか接続されていない場合、プリフェッチバッファは，ＲＥＱ／ＧＮＴに対応した１つしか使用されないため、ＰＣＩデバイスは，１つのメモリ・リード・リクエストしか同時に実行することができない。
【００３８】
このため、ＰＣＩデバイスがメモリ・リード・リクエストを出し、ブリッジ回路がリトライ応答を返した後から、プリフェッチバッファにリード・データを格納されるまで時間が、リトライ応答に対するリード・リクエストを繰り返すだけで全て無駄になってしまい、システム全体としてスループットが低下する。
【００３９】
また、通常、ＰＣＩバスのメモリインターフェイス部がメモリ・リードを実行してから、データを受け取るまでの時間は非常に長いため、リトライ応答後にすぐにメモリ・リード・リクエストを再実行しても、ブリッジ回路が再度ＰＣＩバスにリトライ応答をするだけとなり、無駄にＰＣＩバスを使用するだけとなり、システム全体としてスループットが低下してしまう。
【００４０】
更に、ＰＣＩデバイスが、初めてのメモリ・リード・リクエストと、ブリッジ回路からリトライ応答に対するメモリ・リード・リクエストが同時に要求され、リトライ応答に対するメモリ・リード・リクエストがＰＣＩバスの使用権を獲得し、メモリ・リード・リクエストのトランザクションを開始した場合には、上記のとおりブリッジ回路のプリフェッチバッファにリード・データが格納されていない可能性が大きいため、ＰＣＩバスを無駄に使用するだけとなり、システム全体としてのスループットが低下する可能性が高い。
【００４１】
従って、本発明の目的は、ブリッジ回路の複数のプリフェッチバッファの数より少ないバス接続デバイスを、ブリッジ回路に接続しても、プリフェッチバッファを有効に利用し、システムのスループットを向上するためのバス接続回路及びバス接続システムを提供することにある。
【００４２】
又、本発明の他の目的は、ブリッジ回路からのリトライ応答に対する無駄なリード・リクエストを減らすことにより、バスの無駄な使用を減少し、データ転送の効率を向上するためのバス接続回路及びバス接続システムを提供することにある。
【００４３】
【課題を解決するための手段】
この目的を解決するために、本発明のバス接続回路は、外部からデータをプリフェッチするための複数のプリフェッチバッファを有するブリッジ回路にバスを介して接続され、リクエストをアサートした後、前記プリフェッチバッファからのデータを受信するバス接続回路において、複数のリクエストキューと、前記複数のリクエストキューのリクエストのアービトレーションを行うアービターと、前記アービターでアービトレーションされたリクエストに対応する前記プリフェッチバッファの割り当てを示すリクエスト信号を出力し、且つ前記ブリッジ回路から対応するグラント信号を受けるバスインターフェイス部とを有する。
【００４４】
又、本発明のバス接続システムは、メモリからデータをプリフェッチするための複数のプリフェッチバッファを有するブリッジ回路と、前記ブリッジ回路にバスを介して接続され、リクエストをアサートした後、前記プリフェッチバッファからのデータを受信するバス接続回路とを有し、前記バス接続回路は、複数のリクエストキューと、前記複数のリクエストキューのリクエストのアービトレーションを行うアービターと、前記アービターでアービトレーションされたリクエストに対応する前記プリフェッチバッファの割り当てを示すリクエスト信号を出力し、且つ前記ブリッジ回路から対応するグラント信号を受けるバスインターフェイス部とを有する。
【００４５】
本発明によれば、複数のリクエストキューと、複数のリクエスト信号の出力及びグラント信号の入力を１つのバス接続デバイスに付与したので、１つのバス接続デバイスよって、ブリッジ回路の複数のプリフェッチバッファを有効に利用することができ、またブリッジ回路からのリトライ応答に対応する無駄なリード・リクエストを減らすことができ、ＰＣＩバスの無駄な使用を減らすことが出来る。これによって、データ転送の効率が高まり、システム全体のスループットを向上することが出来る。
【００４６】
又、本発明では、好ましくは、前記バスインターフェイス部は、前記リクエスト信号に応じた前記ブリッジ回路からのリトライ応答の受信に応じて、前記リクエスト信号による前記バスを開放し、他のプリフェッチバッファの割り当てを示すリクエスト信号を前記バスに出力する。これにより、１つのバス接続回路で、リクエストを順次ブリッジ回路に依頼でき、スループットを向上できる。
【００４７】
又、本発明では、好ましくは、前記リクエストキューは、初めてのリードリクエストを、前記リトライ応答に応じたリードリクエストに優先して、アサートする。これにより、他のリクエストを、リトライ応答のリクエストに優先して、ブリッジ回路にアサートでき、一層、バスを有効に利用できる。
【００４８】
更に、本発明では、好ましくは、前記リクエストキューは、前記リトライ応答を受けてから、前記リトライ応答に対応したリードリクエストをアサートするまでの時間を設定するレジスタを有する。これにより、リトライ応答に対するリードリクエストまでの時間を、システムに応じて任意に設定できる。
【００４９】
更に、本発明では、好ましくは、前記複数のリクエストキューにリードリクエストを発行する内部回路を更に有する。これにより、内部回路から順次リードリクエストを発行しても、容易に処理できる。
【００５０】
更に、本発明では、好ましくは、前記リクエストが、前記ブリッジ回路を介するメモリに対するリードリクエストである。これにより、大容量のリード転送を効率良くできる。
【００５１】
更に、本発明では、好ましくは、前記バスがＰＣＩバスである。これにより、高速転送が可能なＰＣＩバスの性能を発揮できる。
【００５２】
【発明の実施の形態】
以下、本発明の実施の形態を、バス接続回路を含むバス接続システム、バスを使用したメモリリード動作、他の実施の形態の順で説明する。
【００５３】
［バス接続システム］
図１は、本発明の一実施の形態によるＰＣＩデバイスを含むコンピュータシステムの構成図である。図１に示すように、ＰＣＩデバイス６０１は、内部回路６５０と、４つのリード・リクエスト・キュー６５１Ａ〜６５１Ｄと、アービター６５２と、ＰＣＩインターフェイス部６４１とを持つ。
【００５４】
このＰＣＩデバイス６０１が、ＰＣＩバス６１１及び４つのＲＥＱ／ＧＮＴ線、応答線でブリッジ回路６０２と接続される。又、メモリ・ユニット６０３がメモリバス６１２でブリッジ回路６０２と接続されている。ブリッジ回路６０２は、ＰＣＩインターフェイス回路６２０と、４つのプリフェッチバッファ６２１Ａ〜６２１Ｄと、メモリインターフェイス回路６２２とを持つ。
【００５５】
ＰＣＩデバイス６０１の４つのリード・リクエスト・キュー６５１Ａ〜６５１Ｄが、ＰＣＩデバイス６０１の内部回路６５０からのリード・リクエストを受け取ると、各リード・リクエスト・キュー６５１Ａ〜６５１Ｄは、アービター６５２にリード・リクエストを送出する。
【００５６】
アービター６５２は、各リード・リクエスト６５１Ａ〜６５１Ｄのアービトレーションを行い、そのうちの１つをＰＣＩインターフェイス部６４１に送出する。ＰＣＩインターフェイス部６４１内に設けられたステートマシン６５３は、ＰＣＩバス６１１に複数あるリクエストＲＥＱ＃のうち、リード・リクエスト・キューに対応したリクエスト線に、ＲＥＱ＃をアサートする。
【００５７】
図２及び図３により、更に具体的に、図１のＰＣＩデバイス６０１の構成を説明する。図２に示すように、ＰＣＩデバイス６０１のリード・リクエスト・キュー６５１Ａ〜６５１Ｄは、それぞれがリクエストの状態を記憶するステートマシン８６１Ａ〜８６１Ｄと、リード・リクエスト・キューがアービトレーション要求を出す間隔を数えるカウンタ８６２Ａ〜８６２Ｄと、カウンタの値が設定値を超えたことを検出する比較器８６３Ａ〜８６３Ｄと、アドレスやコマンドなどの情報を保持するレジスタ８６４Ａ〜８６４Ｄとから構成される。
【００５８】
アービター６５２は、リクエスト・キュー６５１Ａ〜６５１Ｄからの高優先度のリード・リクエスト間のアービトレーションを行う第１のアービトレーション回路８５２Ａと、低優先度のリード・リクエスト間のアービトレーションを行う第２のアービトレーション回路８５２Ｂと、第１、第２のアービトレーション回路８５２Ａ，８５２Ｂの出力間のアービトレーションを固定の優先順位で行う第３のアービトレーション回路８５３と、選ばれたリード・リクエスト・キューのリクエスト情報（アドレス・コマンド）を選択するマルチプレクサ８５４とからなる。
【００５９】
第３のアービトレーション回路８５３は、高優先度のリード・リクエストと低優先度のリード・リクエストがある場合、必ず高優先度のリード・リクエストをアサートする。
【００６０】
ＰＣＩインターフェイス部６４１は、ＰＣＩバス６１１のＰＣＩインターフェイス制御を行うものであり、ＰＣＩバス６１１が解放されている時に、アービター８５３からアービトレーションされたリード・リクエストを取り出し、対応するリクエスト線にＲＥＱ＃をアサート、グラント線のＧＮＴ＃を対応するキューに伝達するＰＣＩインターフェイス制御を行うステートマシン６５３を備える。
【００６１】
図３に示すように、各リード・リクエスト・キュー６５１Ａ〜６５１Ｄ内のステートマシン８６１Ａ〜８６１Ｄは、ＰＣＩデバイス６０１内部から新しいリード・リクエストを受けると、高優先度でリクエストをアサートする第１の状態になり、ブリッジ回路６０２からのリトライ応答を受けると、低優先度でリクエスト（リトライに対するリクエスト）をアサートする第２の状態になる。又、グラント信号ＧＮＴを受け、トランザクションを開始し、アクテイブとなり、データ転送の終了で、アイドル状態に戻る。
【００６２】
このため、初めてのリード・リクエストを優先して（高優先度）、ブリッジ回路６０２へリード・リクエストを送出でき、ＰＣＩバスを有効に利用できるため、システム全体のスループットを高めることができる。
【００６３】
ブリッジ回路６０２からのリトライ応答に対するリード・リクエストの間隔（一定時間）は、リード・リクエスト・キュー６５１Ａ〜６５１Ｄ内の比較器８６３Ａ〜８６３Ｄにリクエスト間隔値として設定する。比較器８６３Ａ〜８６３Ｄは、この値とカウンタ値と比較して、カウンタ値がリクエスト間隔値を超えた場合に、リトライ応答に対するリード・リクエストをアサートすることができる。
【００６４】
一方、ＰＣＩインターフェイス部６４１のステートマシン６５３は、アイドル状態からグラント信号ＧＮＴ＃を受信すると、アクテイブとなり、リトライ応答を受信するか、データ転送の完了を検出すると、アイドル状態に戻る。
【００６５】
次に、ブリッジ回路６０２を、図４及び図５で説明する。図４に示すように、ＰＣＩインターフェイス部６２０は、ページアドレスレジスタ６２３と、アドレス比較部６２４と、ターゲットステートマシン６２５と、ＰＣＩアービター６２６とを有する。プリフェッチバッファ６２１Ａ〜６２１Ｄは、バッファステートマシン６２７（図５参照）と、プリフェッチバッファ６２８とを有するバッファ制御部で構成される。
【００６６】
ＰＣＩアービター６２６は、ＰＣＩデバイスからのＲＥＱ＃信号を受けて、グラントＧＮＴ＃信号をアサートする。ＰＣＩデバイスは、グラントＧＮＴ＃を受け取った時だけ、トランザクションを開始できるので、ブリッジ回路６０２は、自分のアサートしたＧＮＴ＃信号を見て、どのＰＣＩデバイスがトランザクションを開始したかを判断できる。
【００６７】
ＰＣＩデバイスは、トランザクションを開始すると、先ず、ＰＣＩバス６１１のＡＤ（アドレス・データ線）にアドレスを送出するので、ＰＣＩインターフェイス部６２０は、ページアドレスレジスタ６２３と受け取ったアドレスとを比較器６２４で比較する。アドレスが一致すると、ターゲットマシン６２５が、起動して、バッファ制御部６２１Ａ〜６２１Ｄにリード要求を受信したことを通知するとともに、受け取ったアドレスを転送する。
【００６８】
バッファ制御部６２１Ａ〜６２１Ｄのステートマシン６２７は、図５に示すように、ＰＣＩインターフェイス部６２０からのリード要求受信信号と、ＰＣＩアービター６２０からのＧＮＴ信号から、リード要求を受けたことを判断し、初めてリード要求を受けた時は、又はリードデータの準備ができてない場合には、リトライで応答する。又、リードデータが、プリフェッチバッファ６２８内に準備できている時は、データ転送可能なことを、ターゲットステートマシン６２５に通知し、データをＰＣＩインターフェイス部６２０に転送する。
【００６９】
ＰＣＩインターフェイス部６２０のターゲットステートマシン６２５は、バッファ制御部６２１Ａ〜６２１Ｄからの応答が、リトライかデータ転送可能かに応じて、ＰＣＩバス６１１のトランザクションを行う。
【００７０】
［ＰＣＩデバイスのメモリリード動作］
図６は、図１乃至図５のコンピュータシステムにおいて、ＰＣＩデバイス６０１がメモリ・リード・リクエストを実行した場合の動作シーケンス図であり、以下に詳細な動作を示す。
【００７１】
（１）各リード・リクエスト・キュー６５１Ａ〜６５１Ｄがメモリ・リード・リクエストを送出する。
【００７２】
（２）ＰＣＩデバイス６０１のＰＣＩインターフェイス部６４１は、リード・リクエスト・キュー６５１Ａからのメモリ・リード・リクエストをリクエストＲＥＱ７３１Ａで実行する。
【００７３】
（３）ブリッジ回路６０２のＰＣＩインターフェイス部６２０は、プリフェッチバッファ６２１Ａをアサインし、ＰＣＩバス６１１にリトライ応答をして，ＰＣＩバス６１１を開放させる。
【００７４】
（４）プリフェッチバッファ６２１Ａは、メモリインターフェイス部６２２にメモリ・リードを行うようにリード・リクエストを出す。
【００７５】
（５）メモリインターフェイス部６２２は、メモリ・ユニット６０３にメモリ・リード・リクエストのトランザクションを開始する。
【００７６】
（６）メモリ・ユニット６０３からメモリ・リード・データが転送され、プリフェッチバッファ６２１Ａに格納される。
【００７７】
リード・リクエスト・キュー６５１Ｂ〜６５１Ｄのメモリ・リード・リクエストについても、（２）〜（６）と同様にして、メモリ・リード・リクエストを実行する。通常、ブリッジ回路６０２のメモリインターフェイス部６２２がメモリ・リードを実行してから、リード・データを受け取るまでの時間は非常に長いため、各リード・リクエスト・キュー６５１Ａ〜６５１Ｄのリード・リクエストによる（２）〜（６）の動作は時間差をもってオーバーラップして行われる。
【００７８】
（７）リード・リクエスト・キュー６５１Ａが、メモリ・リード・リクエストを送出し、ＰＣＩデバイス６０１のＰＣＩインターフェイス部６４１がメモリ・リード・リクエストをＲＥＱ７３１Ａで実行する。
【００７９】
（８）ブリッジ回路６０２のＰＣＩインターフェイス部６２０は、プリフェッチバッファ６２１Ａを確認し、格納されているリード・データをＰＣＩインターフェイス部６２０に転送開始する。
【００８０】
（９）ブリッジ回路６０２のＰＣＩインターフェイス部６２０は、リード・データをＰＣＩバス６１１にデータ転送開始する。
【００８１】
リード・リクエスト・キュー６５１Ａ〜６５１Ｄも（８）〜（９）の動作と同様にして、再びメモリ・リード・リクエストを実行して、リード・データの転送を開始する。
【００８２】
このように、１つのＰＣＩデバイスにリード・リクエスト・キューを複数設け、リード・リクエスト・キューに対応する複数のＲＥＱ／ＧＮＴを与えることによって、ブリッジ回路の複数のプリフェッチバッファを有効に利用することが出来、ＰＣＩバスを有効に使用することが出来るため、システム全体としてのスループットが向上する。
【００８３】
又、図２で説明したように、リード・リクエスト・キューは、それぞれがリクエストの状態を記憶するステートマシン８６１Ａ〜８６１Ｄ、リード・リクエスト・キューがアービトレーション要求を出す間隔を数えるカウンタ、カウンタの値が設定値を超えたことを検出する比較器、アドレスやコマンドなどの情報を保持するレジスタから構成される。
【００８４】
このため、ブリッジ回路からのリトライ応答に対するリード・リクエストの間隔は、リード・リクエスト・キュー内の比較器にリクエスト間隔値として設定し、比較器はこの値とカウンタ値と比較して、カウンタ値がリクエスト間隔値を超えた場合に、リトライ応答に対するリード・リクエストをアサートすることができる。このため、２回目以降のリード・リクエストにおいて、ブリッジ回路によりリトライ応答を返されるだけの無駄なＰＣＩバスの利用を減らすことができ、システム全体のスループットを高めることが出来る。
【００８５】
更に、リード・リクエスト・キュー内のステートマシンは、ＰＣＩデバイス内部から新しいリード・リクエストを受けると、高優先度でリクエストをアサートする第１の状態になり、ブリッジからのリトライ応答を受けると、低優先度でリクエストをアサートする第２の状態になる。
【００８６】
このため、初めてのリード・リクエストを優先して、ブリッジ回路へリード・リクエストを送出でき、ＰＣＩバスを有効に利用できるため、システム全体のスループットを高めることができる。
【００８７】
［他の実施の形態］
前述の説明では、４つのプリフェッチバッファを有するブリッジ回路に、４つのリクエストキューを持つＰＣＩデバイスを接続したシステムで説明したが、２つのリクエストキューを持つ２つのＰＣＩデバイスを接続したシステムにも同様に適用できる。
【００８８】
又、プリフェッチバッファの数やリクエストキューの数は、４つに限らず、２つ以上の複数であれば、同様に適用できる。更に、バスをＰＣＩバスで説明したが、他の形式のバスにも適用できる。
【００８９】
以上、本発明を実施の形態により説明したが、本発明は上記の実施形態に限定されるものではなく、その目的と利点を失わない範囲で適当な変形による種々の実施形態を含むことはもちろんである。
【００９０】
（付記１）外部からデータをプリフェッチするための複数のプリフェッチバッファを有するブリッジ回路にバスを介して接続され、リクエストをアサートした後、前記プリフェッチバッファからのデータを受信するバス接続回路において、複数のリクエストキューと、前記複数のリクエストキューのリクエストのアービトレーションを行うアービターと、前記アービターでアービトレーションされたリクエストに対応する前記プリフェッチバッファの割り当てを示すリクエスト信号を出力し、且つ前記ブリッジ回路から対応するグラント信号を受けるバスインターフェイス部とを有することを特徴とするバス接続回路。
【００９１】
（付記２）前記バスインターフェイス部は、前記リクエスト信号に応じた前記ブリッジ回路からのリトライ応答の受信に応じて、前記リクエスト信号による前記バスを開放し、他のプリフェッチバッファの割り当てを示すリクエスト信号を前記バスに出力することを特徴とする付記１のバス接続回路。
【００９２】
（付記３）前記リクエストキューは、初めてのリードリクエストを、前記リトライ応答に応じたリードリクエストに優先して、アサートすることを特徴とする付記２のバス接続回路。
【００９３】
（付記４）前記リクエストキューは、前記リトライ応答を受けてから、前記リトライ応答に対応したリードリクエストをアサートするまでの時間を設定するレジスタを有することを特徴とする付記２のバス接続回路。
【００９４】
（付記５）前記複数のリクエストキューにリードリクエストを発行する内部回路を更に有することを特徴とする付記１のバス接続回路。
【００９５】
（付記６）前記リクエストが、前記ブリッジ回路を介するメモリに対するリードリクエストであることを特徴とする付記１のバス接続回路。
【００９６】
（付記７）前記バスがＰＣＩバスであることを特徴とする付記１のバス接続回路。
【００９７】
（付記８）メモリからデータをプリフェッチするための複数のプリフェッチバッファを有するブリッジ回路と、前記ブリッジ回路にバスを介して接続され、リクエストをアサートした後、前記プリフェッチバッファからのデータを受信するバス接続回路とを有し、前記バス接続回路は、複数のリクエストキューと、前記複数のリクエストキューのリクエストのアービトレーションを行うアービターと、前記アービターでアービトレーションされたリクエストに対応する前記プリフェッチバッファの割り当てを示すリクエスト信号を出力し、且つ前記ブリッジ回路から対応するグラント信号を受けるバスインターフェイス部とを有することを特徴とするバス接続システム。
【００９８】
（付記９）前記バス接続回路の前記バスインターフェイス部は、前記リクエスト信号に応じた前記ブリッジ回路からのリトライ応答の受信に応じて、前記リクエスト信号による前記バスを開放し、他のプリフェッチバッファの割り当てを示すリクエスト信号を前記バスに出力することを特徴とする付記８のバス接続システム。
【００９９】
（付記１０）前記バス接続回路の前記リクエストキューは、初めてのリードリクエストを、前記リトライ応答に応じたリードリクエストに優先して、アサートすることを特徴とする付記９のバス接続システム。
【０１００】
（付記１１）前記バス接続回路の前記リクエストキューは、前記リトライ応答を受けてから、前記リトライ応答に対応したリードリクエストをアサートするまでの時間を設定するレジスタを有することを特徴とする付記９のバス接続システム。
【０１０１】
（付記１２）前記バス接続回路は、前記複数のリクエストキューにリードリクエストを発行する内部回路を更に有することを特徴とする付記８のバス接続システム。
【０１０２】
（付記１３）前記リクエストが、前記ブリッジ回路を介するメモリに対するリードリクエストであることを特徴とする付記８のバス接続システム。
【０１０３】
（付記１４）前記バスが、ＰＣＩバスであることを特徴とする付記８のバス接続システム。
【０１０４】
（付記１５）前記ブリッジ回路は、前記リクエスト信号に応じて、対応するプリフェッチバッファをアサインし、且つ前記バス接続回路にリトライ応答を出力し、前記メモリにリード要求を出力することを特徴とする付記８のバス接続システム。
【０１０５】
（付記１６）前記ブリッジ回路は、前記リトライ応答に対するリクエスト信号に応じて、対応するプリフェッチバッファを調べ、前記プリフェッチバッファのデータを前記バス接続回路に転送することを特徴とする付記１５のバス接続システム。
【０１０６】
【発明の効果】
以上説明したように、本発明によれば、複数のリクエストキューと、複数のリクエスト信号の出力及びグラント信号の入力を１つのバス接続デバイスに付与したので、１つのバス接続デバイスよって、ブリッジ回路の複数のプリフェッチバッファを有効に利用することができ、またブリッジ回路からのリトライ応答に対応する無駄なリード・リクエストを減らすことができ、ＰＣＩバスの無駄な使用を減らすことが出来る。これによって、データ転送の効率が高まり、システム全体のスループットを向上することが出来る。
【図面の簡単な説明】
【図１】本発明の一実施の形態のコンピュータシステムのブロック図である。
【図２】図１のＰＣＩデバイスのブロック図である。
【図３】図１のＰＣＩデバイスのステートマシンの処理フロー図である。
【図４】図１のブリッジ回路のブロック図である。
【図５】図４に示すバッファステートマシンの処理フロー図である。
【図６】図１のリードリクエストの動作説明図である。
【図７】従来のコンピュータシステムのブロック図である。
【図８】従来のＰＣＩデバイスを含むコンピュータシステムのブロック図である。
【図９】従来のリードリクエストの動作シーケンス図である。
【図１０】従来のＰＣＩデバイスの問題点の説明図である。
【図１１】図１０の従来のＰＣＩデバイスのリードリクエストシーケンス図である。
【符号の説明】
１００  メモリコントローラ
１０１  ＣＰＵ
１０２  メモリ
１０３，６０２  ブリッジ回路
１０４Ａ〜１０４Ｄ，６０１  ＰＣＩデバイス
１１１  プロセッサバス
１１２  メモリバス
１１３  メモリコントローラバス
１１４，６１１  ＰＣＩバス
６０３  メモリ・ユニット
６１２  メモリバス
２２１Ａ〜２２１Ｄ，６２１Ａ〜６２１Ｄ  プリフェッチバッファ
６５１Ａ〜６５１Ｄ  リード・リクエスト・キュー
６５２  アービター
６４１  ＰＣＩインターフェイス部
６５３  ＰＣＩインターフェイス部の内部のステートマシン
６２０  ブリッジ回路のＰＣＩインターフェイス部
６２２    メモリインターフェイス部
８５２Ａ    第一のアービトレーション回路
８５２Ｂ    第二のアービトレーション回路
８５３  第三のアービトレーション回路
８５４  マルチプレクサ
【図１】
2004334552.tif 000003
【図２】
2004334552.tif 000004
【図３】
2004334552.tif 000005
【図４】
2004334552.tif 000006
【図５】
2004334552.tif 000007
【図６】
2004334552.tif 000008
【図７】
2004334552.tif 000009
【図８】
2004334552.tif 000010
【図９】
2004334552.tif 000011
【図１０】
2004334552.tif 000012
【図１１】
2004334552.tif 000013