JP4313607B2 - バス接続回路及びバス接続システム - Google Patents

バス接続回路及びバス接続システム Download PDF

Info

Publication number
JP4313607B2
JP4313607B2 JP2003129840A JP2003129840A JP4313607B2 JP 4313607 B2 JP4313607 B2 JP 4313607B2 JP 2003129840 A JP2003129840 A JP 2003129840A JP 2003129840 A JP2003129840 A JP 2003129840A JP 4313607 B2 JP4313607 B2 JP 4313607B2
Authority
JP
Japan
Prior art keywords
request
bus
bridge circuit
pci
read request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003129840A
Other languages
English (en)
Other versions
JP2004334552A (ja
Inventor
由彦 竹田
健太郎 湯浅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2003129840A priority Critical patent/JP4313607B2/ja
Priority to US10/780,607 priority patent/US7124232B2/en
Publication of JP2004334552A publication Critical patent/JP2004334552A/ja
Application granted granted Critical
Publication of JP4313607B2 publication Critical patent/JP4313607B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4031Coupling between buses using bus bridges with arbitration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • G06F13/4059Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、高速で大容量のデータ転送を必要とするコンピュータシステムにおけるデータのプリフェッチ機能を利用したバス接続回路及びバス接続システムに関し、特に、PCIバスを内部に持つコンピュータシステム内で、データのプリフェッチ機能を利用して、大容量データの転送を効率化するためのバス接続回路及びバス接続システムに関する。
【0002】
【従来の技術】
近年のコンピュータシステムにおいて、PCI(Peripheral Component Interconnect)バスは、高速で大容量のデータ転送を行うことのできる標準のバス規格として広く採用されている。PCIは、米Intel社が提唱したバス規格であって、米国の業界団体であるPCI Special Interest Group(PCI SIG)が仕様を策定し、公開している。PCIは、特にチップセットを介してI/Oデバイスをメモリと接続するのに利用され、I/Oデバイスとメモリ間のデータ転送を高速化するのに役に立っている。
【0003】
図7はPCIバスを使用したコンピュータシステムのブロック図であり、CPU101,メモリコントローラ100、メモリ102、ブリッジ回路103、PCIデバイス104A,104Bによって構成されたコンピュータシステムを示す。PCIデバイス104A,104Bは、PCIバス114によって、ブリッジ103に接続され、CPU101、メモリ102、ブリッジ回路103は、それぞれ、プロセッサバス111、メモリバス112、メモリコントローラバス113によって、メモリコントローラ100に接続されている。
【0004】
PCIデバイス104A,104Bは、ブリッジ103、メモリコントローラ100を介して、メモリ102へアクセスすることができる。ブリッジ回路103は、メモリコントローラバス113とPCIバス114とのバス間の速度、プロトコル等の相違を吸収するためのつなぎ動作を行う。
【0005】
このブリッジ回路103を経由してのデータ転送は、PCIバスの高速性をそこなう可能性があるため、ブリッジ回路103に複数のプリフェッチバッファを設け、スループットを高める方法が利用されている(例えば、特許文献1)。
【0006】
図8は、従来のプリフェッチバッファを設けたブリッジ回路103を含むコンピュータシステムの構成図である。複数のPCIデバイス104A〜104D、ブリッジ回路103、メモリ・ユニット100,102から構成されたコンピュータシステムである。PCIデバイス104A〜104Dおよびメモリ・ユニット100,102は,それぞれPCIバス114およびメモリバス113,112で、ブリッジ回路103に接続されている。
【0007】
ブリッジ回路103は、PCIインターフェイス回路210と、各PCIデバイス104A〜104Dに対応した複数のプリフェッチバッファ221A〜221Dと、メモリインターフェイス回路230とを持つ。PCIデバイス104A〜104Dは、各々REQ信号およびGNT信号を一組持つPCIインターフェイス回路240を持つ。
【0008】
図9は、図8のコンピュータシステムにおいて、複数のPCIデバイスが、メモリ・リード・リクエストを実行した場合の動作シーケンスの説明図であり、以下に詳細な動作を示す。
【0009】
(1)PCIデバイス104Aが、内部回路からのメモリ・リード・リクエストを実行するとき、PCIデバイス104Aは、PCIバス114に、リクエスト信号REQ331Aを使用して、リクエストを出す。
【0010】
(2)PCIデバイス104AのPCIインターフェイス部240は、ブリッジ回路103からグラント信号GNT332Aを受け取ると、PCIバスのプロトコルに従い、メモリ・リード・リクエストのトランザクションを開始する。
【0011】
(3)ブリッジ回路103のPCIインターフェイス部210は、メモリ・リード・リクエストを受け取ると、REQ331A/GNT332Aに対応するプリフェッチ・バッファ221Aをアサインして、PCIバス114には、リトライ応答をする。
【0012】
(4)PCIデバイス104Aがリトライ応答を受け取ると、一旦、PCIバス104を開放し、他のPCIデバイスが、PCIバス114を使用できるようにする。
【0013】
(5)上記のアサインされたプリフェッチバッファ221Aは、メモリインターフェイス部230にメモリ・リードを行うように、メモリ・リード・リクエストを出す。
【0014】
(6)メモリインターフェイス部230は、メモリ・ユニット100,102にメモリ・リード・リクエストのトランザクションを開始する。
【0015】
(7)メモリ・ユニット100,102からリード・データが転送され、上記のアサインされたプリフェッチバッファ221Aに格納される。
【0016】
PCIデバイス104B〜104Dも,(1)〜(7)と同様にして、それぞれメモリ・リード・リクエストを実行する。通常、ブリッジ回路103のメモリインターフェイス部230がメモリ・リードを実行してから、リード・データを受け取るまでの時間は非常に長いため、各PCIデバイス104A〜104Dによる(1)〜(7)の動作は、時間差をもってオーバーラップして行われる。
【0017】
(8)PCIデバイス104Aが、(1)〜(3)と同様にして、ブリッジ回路103へメモリ・リード・リクエストを実行する。
【0018】
(9)ブリッジ回路103のPCIインターフェイス部210は、メモリ・リード・リクエストを受け取ると、そのリクエストが使用したREQ331A/GNT332Aに対応するプリフェッチバッファ221Aを確認して、リード・データが格納されている場合、PCIバス114にデータ転送を開始する。
【0019】
PCIデバイス104B〜104Dも,(8)〜(9)の動作と同様にして、再びブリッジ回路103へメモリ・リード・リクエストを実行して、リード・データの転送を開始する。
【0020】
上記のように、プリフェッチバッファを使用することにより、PCIバスを有効に使用することが出来、システム全体としてのスループットが向上する。
【0021】
【特許文献1】
特開平11−238030号公報(図13乃至図15参照)
【0022】
【発明が解決しようとする課題】
このように、従来技術では、ブリッジ回路に複数のプリフェッチバッファを用意することにより、PCIバスを複数のPCIデバイスで時分割使用し、高速なメモリアクセスを可能とするものであった。しかしながら、回路構成によっては、必ずしも、PCIバスに、プリフェッチバッファ数のPCIデバイスが接続されない場合がある。
【0023】
例えば、図10に示すように、1つのPCIデバイス104A、ブリッジ回路103、メモリ・ユニット100,102から構成されたコンピュータシステムを構築する場合がある。ここで、PCIデバイス104Aおよびメモリ・ユニット100,102は、それぞれPCIバス114およびメモリバス113,112でブリッジ回路103に接続されている。ブリッジ回路103は、複数のプリフェッチバッファ221A〜221Dを持つ。又、PCIデバイス104Aは,一組のREQ/GNT信号を持つ。
【0024】
図11は,図10のコンピュータシステムにおいて、PCIデバイス104Aがメモリ・リード・リクエストを実行した場合の動作シーケンスの説明図であり、以下に詳細な動作を示す。
【0025】
(1)PCIデバイス104Aがメモリ・リード・リクエストを実行するとき、PCIデバイス104Aは、PCIバス114にREQ531を使用してリクエストを出す。
【0026】
(2)PCIデバイス104AのPCIインターフェイス部240は、ブリッジ回路103からGNT532を受け取ると、PCIバスのプロトコルに従い、メモリ・リード・リクエストのトランザクションを開始する。
【0027】
(3)ブリッジ回路103のPCIインターフェイス部210は、メモリ・リード・リクエストを受け取ると、REQ531/GNT532に対応するプリフェッチバッファ221Aをアサインして、PCIバス114にはリトライ応答をする。
【0028】
(4)PCIデバイス104Aがリトライ応答を受け取ると、一旦、PCIバス114を開放する。
【0029】
(5)上記のアサインされたプリフェッチバッファ221Aは、メモリインターフェース部230にメモリ・リードを行うようにメモリ・リード・リクエストを出す。
【0030】
(6)メモリインターフェース部230は、メモリ・ユニット100,102にメモリ・リード・リクエストのトランザクションを開始する。
【0031】
(7)PCIデバイス104Aが(1)〜(3)の動作と同様にして、ブリッジ回路103へメモリ・リード・リクエストを再び実行する。
【0032】
(8)ブリッジ回路103のPCIインターフェイス部210は、メモリ・リード・リクエストを受け取ると、そのリクエストが使用したREQ531/GNT532に対応するプリフェッチバッファ221Aを確認するが、まだリード・データが格納されていないため、PCIバス114にはリトライ応答をする。
【0033】
(9)PCIデバイス104Aがリトライ応答を受け取ると、一旦、PCIバス114を開放する。(7)〜(9)の動作が数回繰り返される。
【0034】
(10)メモリ・ユニット100,102からリード・データが転送され、上記のアサインされたプリフェッチバッファ221Aに格納される。
【0035】
(11)PCIデバイス104Aが(1)〜(3)の動作と同様にして、ブリッジ回路103へメモリ・リード・リクエストを実行する。
【0036】
(12)ブリッジ回路103のPCIインターフェイス部210はメモリ・リード・リクエストを受け取ると、そのリクエストが使用したREQ531/GNT532に対応するプリフェッチバッファ221Aを確認し、リード・データが格納されているため、PCIバス114にデータ転送を開始する。
【0037】
このように1つのPCIデバイスしか接続されていない場合、プリフェッチバッファは,REQ/GNTに対応した1つしか使用されないため、PCIデバイスは,1つのメモリ・リード・リクエストしか同時に実行することができない。
【0038】
このため、PCIデバイスがメモリ・リード・リクエストを出し、ブリッジ回路がリトライ応答を返した後から、プリフェッチバッファにリード・データを格納されるまで時間が、リトライ応答に対するリード・リクエストを繰り返すだけで全て無駄になってしまい、システム全体としてスループットが低下する。
【0039】
また、通常、PCIバスのメモリインターフェイス部がメモリ・リードを実行してから、データを受け取るまでの時間は非常に長いため、リトライ応答後にすぐにメモリ・リード・リクエストを再実行しても、ブリッジ回路が再度PCIバスにリトライ応答をするだけとなり、無駄にPCIバスを使用するだけとなり、システム全体としてスループットが低下してしまう。
【0040】
更に、PCIデバイスが、初めてのメモリ・リード・リクエストと、ブリッジ回路からリトライ応答に対するメモリ・リード・リクエストが同時に要求され、リトライ応答に対するメモリ・リード・リクエストがPCIバスの使用権を獲得し、メモリ・リード・リクエストのトランザクションを開始した場合には、上記のとおりブリッジ回路のプリフェッチバッファにリード・データが格納されていない可能性が大きいため、PCIバスを無駄に使用するだけとなり、システム全体としてのスループットが低下する可能性が高い。
【0041】
従って、本発明の目的は、ブリッジ回路の複数のプリフェッチバッファの数より少ないバス接続デバイスを、ブリッジ回路に接続しても、プリフェッチバッファを有効に利用し、システムのスループットを向上するためのバス接続回路及びバス接続システムを提供することにある。
【0042】
又、本発明の他の目的は、ブリッジ回路からのリトライ応答に対する無駄なリード・リクエストを減らすことにより、バスの無駄な使用を減少し、データ転送の効率を向上するためのバス接続回路及びバス接続システムを提供することにある。
【0043】
【課題を解決するための手段】
この目的を達成するために、本発明のバス接続回路は、外部からデータをプリフェッチするための複数のプリフェッチバッファを有するブリッジ回路にバスを介して接続され、リクエストをアサートした後、前記プリフェッチバッファからのデータを受信するバス接続回路において、複数のリクエストキューと、前記複数のリクエストキューのリクエストのアービトレーションを行うアービターと、前記プリフェッチバッファの割り当てに対応する複数のリクエスト線と複数のグラント線により、前記ブリッジ回路に接続され、前記アービターでアービトレーションされたリクエストに対応する前記プリフェッチバッファの割り当てを示す前記リクエスト線から、リクエスト信号を出力し、且つ前記ブリッジ回路から対応するグラント線よりグラント信号を受けるバスインターフェイス部とを有し、前記バスインターフェイス部は、前記リクエスト信号に応じた前記ブリッジ回路からのリトライ応答の受信に応じて、前記リクエスト信号による前記バスを開放し、他のプリフェッチバッファの割り当てを示すリクエスト線より、リクエスト信号を出力する。
【0044】
又、本発明のバス接続システムは、メモリからデータをプリフェッチするための複数のプリフェッチバッファを有するブリッジ回路と、前記ブリッジ回路にバスを介して接続され、リクエストをアサートした後、前記プリフェッチバッファからのデータを受信するバス接続回路とを有し、前記バス接続回路は、複数のリクエストキューと、前記複数のリクエストキューのリクエストのアービトレーションを行うアービターと、前記プリフェッチバッファの割り当てに対応する複数のリクエスト線と複数のグラント線により、前記ブリッジ回路に接続され、前記アービターでアービトレーションされたリクエストに対応する前記プリフェッチバッファの割り当てを示す前記リクエスト線から、リクエスト信号を出力し、且つ前記ブリッジ回路から対応するグラント線よりグラント信号を受けるバスインターフェイス部とを有し、前記バスインターフェイス部は、前記リクエスト信号に応じた前記ブリッジ回路からのリトライ応答の受信に応じて、前記リクエスト信号による前記バスを開放し、他のプリフェッチバッファの割り当てを示すリクエスト線より、リクエスト信号を出力する。
【0045】
本発明によれば、複数のリクエストキューと、複数のリクエスト信号の出力及びグラント信号の入力を1つのバス接続デバイスに付与したので、1つのバス接続デバイスよって、ブリッジ回路の複数のプリフェッチバッファを有効に利用することができ、またブリッジ回路からのリトライ応答に対応する無駄なリード・リクエストを減らすことができ、PCIバスの無駄な使用を減らすことが出来る。これによって、データ転送の効率が高まり、システム全体のスループットを向上することが出来る。
【0046】
又、本発明では、好ましくは、前記バスインターフェイス部は、前記リクエスト信号に応じた前記ブリッジ回路からのリトライ応答の受信に応じて、前記リクエスト信号による前記バスを開放し、他のプリフェッチバッファの割り当てを示すリクエスト信号を前記バスに出力する。これにより、1つのバス接続回路で、リクエストを順次ブリッジ回路に依頼でき、スループットを向上できる。
【0047】
又、本発明では、好ましくは、前記リクエストキューは、初めてのリードリクエストを、前記リトライ応答に応じたリードリクエストに優先して、アサートする。これにより、他のリクエストを、リトライ応答のリクエストに優先して、ブリッジ回路にアサートでき、一層、バスを有効に利用できる。
【0048】
更に、本発明では、好ましくは、前記リクエストキューは、前記リトライ応答を受けてから、前記リトライ応答に対応したリードリクエストをアサートするまでの時間を設定するレジスタを有する。これにより、リトライ応答に対するリードリクエストまでの時間を、システムに応じて任意に設定できる。
【0049】
更に、本発明では、好ましくは、前記複数のリクエストキューにリードリクエストを発行する内部回路を更に有する。これにより、内部回路から順次リードリクエストを発行しても、容易に処理できる。
【0050】
更に、本発明では、好ましくは、前記リクエストが、前記ブリッジ回路を介するメモリに対するリードリクエストである。これにより、大容量のリード転送を効率良くできる。
【0051】
更に、本発明では、好ましくは、前記バスがPCIバスである。これにより、高速転送が可能なPCIバスの性能を発揮できる。
【0052】
【発明の実施の形態】
以下、本発明の実施の形態を、バス接続回路を含むバス接続システム、バスを使用したメモリリード動作、他の実施の形態の順で説明する。
【0053】
[バス接続システム]
図1は、本発明の一実施の形態によるPCIデバイスを含むコンピュータシステムの構成図である。図1に示すように、PCIデバイス601は、内部回路650と、4つのリード・リクエスト・キュー651A〜651Dと、アービター652と、PCIインターフェイス部641とを持つ。
【0054】
このPCIデバイス601が、PCIバス611及び4つのREQ/GNT線、応答線でブリッジ回路602と接続される。又、メモリ・ユニット603がメモリバス612でブリッジ回路602と接続されている。ブリッジ回路602は、PCIインターフェイス回路620と、4つのプリフェッチバッファ621A〜621Dと、メモリインターフェイス回路622とを持つ。
【0055】
PCIデバイス601の4つのリード・リクエスト・キュー651A〜651Dが、PCIデバイス601の内部回路650からのリード・リクエストを受け取ると、各リード・リクエスト・キュー651A〜651Dは、アービター652にリード・リクエストを送出する。
【0056】
アービター652は、各リード・リクエスト651A〜651Dのアービトレーションを行い、そのうちの1つをPCIインターフェイス部641に送出する。PCIインターフェイス部641内に設けられたステートマシン653は、PCIバス611に複数あるリクエストREQ#のうち、リード・リクエスト・キューに対応したリクエスト線に、REQ#をアサートする。
【0057】
図2及び図3により、更に具体的に、図1のPCIデバイス601の構成を説明する。図2に示すように、PCIデバイス601のリード・リクエスト・キュー651A〜651Dは、それぞれがリクエストの状態を記憶するステートマシン861A〜861Dと、リード・リクエスト・キューがアービトレーション要求を出す間隔を数えるカウンタ862A〜862Dと、カウンタの値が設定値を超えたことを検出する比較器863A〜863Dと、アドレスやコマンドなどの情報を保持するレジスタ864A〜864Dとから構成される。
【0058】
アービター652は、リクエスト・キュー651A〜651Dからの高優先度のリード・リクエスト間のアービトレーションを行う第1のアービトレーション回路852Aと、低優先度のリード・リクエスト間のアービトレーションを行う第2のアービトレーション回路852Bと、第1、第2のアービトレーション回路852A,852Bの出力間のアービトレーションを固定の優先順位で行う第3のアービトレーション回路853と、選ばれたリード・リクエスト・キューのリクエスト情報(アドレス・コマンド)を選択するマルチプレクサ854とからなる。
【0059】
第3のアービトレーション回路853は、高優先度のリード・リクエストと低優先度のリード・リクエストがある場合、必ず高優先度のリード・リクエストをアサートする。
【0060】
PCIインターフェイス部641は、PCIバス611のPCIインターフェイス制御を行うものであり、PCIバス611が解放されている時に、アービター853からアービトレーションされたリード・リクエストを取り出し、対応するリクエスト線にREQ#をアサート、グラント線のGNT#を対応するキューに伝達するPCIインターフェイス制御を行うステートマシン653を備える。
【0061】
図3に示すように、各リード・リクエスト・キュー651A〜651D内のステートマシン861A〜861Dは、PCIデバイス601内部から新しいリード・リクエストを受けると、高優先度でリクエストをアサートする第1の状態になり、ブリッジ回路602からのリトライ応答を受けると、低優先度でリクエスト(リトライに対するリクエスト)をアサートする第2の状態になる。又、グラント信号GNTを受け、トランザクションを開始し、アクテイブとなり、データ転送の終了で、アイドル状態に戻る。
【0062】
このため、初めてのリード・リクエストを優先して(高優先度)、ブリッジ回路602へリード・リクエストを送出でき、PCIバスを有効に利用できるため、システム全体のスループットを高めることができる。
【0063】
ブリッジ回路602からのリトライ応答に対するリード・リクエストの間隔(一定時間)は、リード・リクエスト・キュー651A〜651D内の比較器863A〜863Dにリクエスト間隔値として設定する。比較器863A〜863Dは、この値とカウンタ値と比較して、カウンタ値がリクエスト間隔値を超えた場合に、リトライ応答に対するリード・リクエストをアサートすることができる。
【0064】
一方、PCIインターフェイス部641のステートマシン653は、アイドル状態からグラント信号GNT#を受信すると、アクテイブとなり、リトライ応答を受信するか、データ転送の完了を検出すると、アイドル状態に戻る。
【0065】
次に、ブリッジ回路602を、図4及び図5で説明する。図4に示すように、PCIインターフェイス部620は、ページアドレスレジスタ623と、アドレス比較部624と、ターゲットステートマシン625と、PCIアービター626とを有する。プリフェッチバッファ621A〜621Dは、バッファステートマシン627(図5参照)と、プリフェッチバッファ628とを有するバッファ制御部で構成される。
【0066】
PCIアービター626は、PCIデバイスからのREQ#信号を受けて、グラントGNT#信号をアサートする。PCIデバイスは、グラントGNT#を受け取った時だけ、トランザクションを開始できるので、ブリッジ回路602は、自分のアサートしたGNT#信号を見て、どのPCIデバイスがトランザクションを開始したかを判断できる。
【0067】
PCIデバイスは、トランザクションを開始すると、先ず、PCIバス611のAD(アドレス・データ線)にアドレスを送出するので、PCIインターフェイス部620は、ページアドレスレジスタ623と受け取ったアドレスとを比較器624で比較する。アドレスが一致すると、ターゲットマシン625が、起動して、バッファ制御部621A〜621Dにリード要求を受信したことを通知するとともに、受け取ったアドレスを転送する。
【0068】
バッファ制御部621A〜621Dのステートマシン627は、図5に示すように、PCIインターフェイス部620からのリード要求受信信号と、PCIアービター620からのGNT信号から、リード要求を受けたことを判断し、初めてリード要求を受けた時は、又はリードデータの準備ができてない場合には、リトライで応答する。又、リードデータが、プリフェッチバッファ628内に準備できている時は、データ転送可能なことを、ターゲットステートマシン625に通知し、データをPCIインターフェイス部620に転送する。
【0069】
PCIインターフェイス部620のターゲットステートマシン625は、バッファ制御部621A〜621Dからの応答が、リトライかデータ転送可能かに応じて、PCIバス611のトランザクションを行う。
【0070】
[PCIデバイスのメモリリード動作]
図6は、図1乃至図5のコンピュータシステムにおいて、PCIデバイス601がメモリ・リード・リクエストを実行した場合の動作シーケンス図であり、以下に詳細な動作を示す。
【0071】
(1)各リード・リクエスト・キュー651A〜651Dがメモリ・リード・リクエストを送出する。
【0072】
(2)PCIデバイス601のPCIインターフェイス部641は、リード・リクエスト・キュー651Aからのメモリ・リード・リクエストをリクエストREQ731Aで実行する。
【0073】
(3)ブリッジ回路602のPCIインターフェイス部620は、プリフェッチバッファ621Aをアサインし、PCIバス611にリトライ応答をして,PCIバス611を開放させる。
【0074】
(4)プリフェッチバッファ621Aは、メモリインターフェイス部622にメモリ・リードを行うようにリード・リクエストを出す。
【0075】
(5)メモリインターフェイス部622は、メモリ・ユニット603にメモリ・リード・リクエストのトランザクションを開始する。
【0076】
(6)メモリ・ユニット603からメモリ・リード・データが転送され、プリフェッチバッファ621Aに格納される。
【0077】
リード・リクエスト・キュー651B〜651Dのメモリ・リード・リクエストについても、(2)〜(6)と同様にして、メモリ・リード・リクエストを実行する。通常、ブリッジ回路602のメモリインターフェイス部622がメモリ・リードを実行してから、リード・データを受け取るまでの時間は非常に長いため、各リード・リクエスト・キュー651A〜651Dのリード・リクエストによる(2)〜(6)の動作は時間差をもってオーバーラップして行われる。
【0078】
(7)リード・リクエスト・キュー651Aが、メモリ・リード・リクエストを送出し、PCIデバイス601のPCIインターフェイス部641がメモリ・リード・リクエストをREQ731Aで実行する。
【0079】
(8)ブリッジ回路602のPCIインターフェイス部620は、プリフェッチバッファ621Aを確認し、格納されているリード・データをPCIインターフェイス部620に転送開始する。
【0080】
(9)ブリッジ回路602のPCIインターフェイス部620は、リード・データをPCIバス611にデータ転送開始する。
【0081】
リード・リクエスト・キュー651A〜651Dも(8)〜(9)の動作と同様にして、再びメモリ・リード・リクエストを実行して、リード・データの転送を開始する。
【0082】
このように、1つのPCIデバイスにリード・リクエスト・キューを複数設け、リード・リクエスト・キューに対応する複数のREQ/GNTを与えることによって、ブリッジ回路の複数のプリフェッチバッファを有効に利用することが出来、PCIバスを有効に使用することが出来るため、システム全体としてのスループットが向上する。
【0083】
又、図2で説明したように、リード・リクエスト・キューは、それぞれがリクエストの状態を記憶するステートマシン861A〜861D、リード・リクエスト・キューがアービトレーション要求を出す間隔を数えるカウンタ、カウンタの値が設定値を超えたことを検出する比較器、アドレスやコマンドなどの情報を保持するレジスタから構成される。
【0084】
このため、ブリッジ回路からのリトライ応答に対するリード・リクエストの間隔は、リード・リクエスト・キュー内の比較器にリクエスト間隔値として設定し、比較器はこの値とカウンタ値と比較して、カウンタ値がリクエスト間隔値を超えた場合に、リトライ応答に対するリード・リクエストをアサートすることができる。このため、2回目以降のリード・リクエストにおいて、ブリッジ回路によりリトライ応答を返されるだけの無駄なPCIバスの利用を減らすことができ、システム全体のスループットを高めることが出来る。
【0085】
更に、リード・リクエスト・キュー内のステートマシンは、PCIデバイス内部から新しいリード・リクエストを受けると、高優先度でリクエストをアサートする第1の状態になり、ブリッジからのリトライ応答を受けると、低優先度でリクエストをアサートする第2の状態になる。
【0086】
このため、初めてのリード・リクエストを優先して、ブリッジ回路へリード・リクエストを送出でき、PCIバスを有効に利用できるため、システム全体のスループットを高めることができる。
【0087】
[他の実施の形態]
前述の説明では、4つのプリフェッチバッファを有するブリッジ回路に、4つのリクエストキューを持つPCIデバイスを接続したシステムで説明したが、2つのリクエストキューを持つ2つのPCIデバイスを接続したシステムにも同様に適用できる。
【0088】
又、プリフェッチバッファの数やリクエストキューの数は、4つに限らず、2つ以上の複数であれば、同様に適用できる。更に、バスをPCIバスで説明したが、他の形式のバスにも適用できる。
【0089】
以上、本発明を実施の形態により説明したが、本発明は上記の実施形態に限定されるものではなく、その目的と利点を失わない範囲で適当な変形による種々の実施形態を含むことはもちろんである。
【0090】
(付記1)外部からデータをプリフェッチするための複数のプリフェッチバッファを有するブリッジ回路にバスを介して接続され、リクエストをアサートした後、前記プリフェッチバッファからのデータを受信するバス接続回路において、複数のリクエストキューと、前記複数のリクエストキューのリクエストのアービトレーションを行うアービターと、前記アービターでアービトレーションされたリクエストに対応する前記プリフェッチバッファの割り当てを示すリクエスト信号を出力し、且つ前記ブリッジ回路から対応するグラント信号を受けるバスインターフェイス部とを有することを特徴とするバス接続回路。
【0091】
(付記2)前記バスインターフェイス部は、前記リクエスト信号に応じた前記ブリッジ回路からのリトライ応答の受信に応じて、前記リクエスト信号による前記バスを開放し、他のプリフェッチバッファの割り当てを示すリクエスト信号を前記バスに出力することを特徴とする付記1のバス接続回路。
【0092】
(付記3)前記リクエストキューは、初めてのリードリクエストを、前記リトライ応答に応じたリードリクエストに優先して、アサートすることを特徴とする付記2のバス接続回路。
【0093】
(付記4)前記リクエストキューは、前記リトライ応答を受けてから、前記リトライ応答に対応したリードリクエストをアサートするまでの時間を設定するレジスタを有することを特徴とする付記2のバス接続回路。
【0094】
(付記5)前記複数のリクエストキューにリードリクエストを発行する内部回路を更に有することを特徴とする付記1のバス接続回路。
【0095】
(付記6)前記リクエストが、前記ブリッジ回路を介するメモリに対するリードリクエストであることを特徴とする付記1のバス接続回路。
【0096】
(付記7)前記バスがPCIバスであることを特徴とする付記1のバス接続回路。
【0097】
(付記8)メモリからデータをプリフェッチするための複数のプリフェッチバッファを有するブリッジ回路と、前記ブリッジ回路にバスを介して接続され、リクエストをアサートした後、前記プリフェッチバッファからのデータを受信するバス接続回路とを有し、前記バス接続回路は、複数のリクエストキューと、前記複数のリクエストキューのリクエストのアービトレーションを行うアービターと、前記アービターでアービトレーションされたリクエストに対応する前記プリフェッチバッファの割り当てを示すリクエスト信号を出力し、且つ前記ブリッジ回路から対応するグラント信号を受けるバスインターフェイス部とを有することを特徴とするバス接続システム。
【0098】
(付記9)前記バス接続回路の前記バスインターフェイス部は、前記リクエスト信号に応じた前記ブリッジ回路からのリトライ応答の受信に応じて、前記リクエスト信号による前記バスを開放し、他のプリフェッチバッファの割り当てを示すリクエスト信号を前記バスに出力することを特徴とする付記8のバス接続システム。
【0099】
(付記10)前記バス接続回路の前記リクエストキューは、初めてのリードリクエストを、前記リトライ応答に応じたリードリクエストに優先して、アサートすることを特徴とする付記9のバス接続システム。
【0100】
(付記11)前記バス接続回路の前記リクエストキューは、前記リトライ応答を受けてから、前記リトライ応答に対応したリードリクエストをアサートするまでの時間を設定するレジスタを有することを特徴とする付記9のバス接続システム。
【0101】
(付記12)前記バス接続回路は、前記複数のリクエストキューにリードリクエストを発行する内部回路を更に有することを特徴とする付記8のバス接続システム。
【0102】
(付記13)前記リクエストが、前記ブリッジ回路を介するメモリに対するリードリクエストであることを特徴とする付記8のバス接続システム。
【0103】
(付記14)前記バスが、PCIバスであることを特徴とする付記8のバス接続システム。
【0104】
(付記15)前記ブリッジ回路は、前記リクエスト信号に応じて、対応するプリフェッチバッファをアサインし、且つ前記バス接続回路にリトライ応答を出力し、前記メモリにリード要求を出力することを特徴とする付記8のバス接続システム。
【0105】
(付記16)前記ブリッジ回路は、前記リトライ応答に対するリクエスト信号に応じて、対応するプリフェッチバッファを調べ、前記プリフェッチバッファのデータを前記バス接続回路に転送することを特徴とする付記15のバス接続システム。
【0106】
【発明の効果】
以上説明したように、本発明によれば、複数のリクエストキューと、ブリッジ回路の複数のプリフェッチバッファに対応する複数のリクエスト信号の出力及びグラント信号の入力を1つのバス接続デバイスに付与したので、1つのバス接続デバイスよって、ブリッジ回路の複数のプリフェッチバッファを有効に利用することができ、またブリッジ回路からのリトライ応答に対応する無駄なリード・リクエストを減らすことができ、PCIバスの無駄な使用を減らすことが出来る。これによって、データ転送の効率が高まり、システム全体のスループットを向上することが出来る。
【図面の簡単な説明】
【図1】本発明の一実施の形態のコンピュータシステムのブロック図である。
【図2】図1のPCIデバイスのブロック図である。
【図3】図1のPCIデバイスのステートマシンの処理フロー図である。
【図4】図1のブリッジ回路のブロック図である。
【図5】図4に示すバッファステートマシンの処理フロー図である。
【図6】図1のリードリクエストの動作説明図である。
【図7】従来のコンピュータシステムのブロック図である。
【図8】従来のPCIデバイスを含むコンピュータシステムのブロック図である。
【図9】従来のリードリクエストの動作シーケンス図である。
【図10】従来のPCIデバイスの問題点の説明図である。
【図11】図10の従来のPCIデバイスのリードリクエストシーケンス図である。
【符号の説明】
100 メモリコントローラ
101 CPU
102 メモリ
103,602 ブリッジ回路
104A〜104D,601 PCIデバイス
111 プロセッサバス
112 メモリバス
113 メモリコントローラバス
114,611 PCIバス
603 メモリ・ユニット
612 メモリバス
221A〜221D,621A〜621D プリフェッチバッファ
651A〜651D リード・リクエスト・キュー
652 アービター
641 PCIインターフェイス部
653 PCIインターフェイス部の内部のステートマシン
620 ブリッジ回路のPCIインターフェイス部
622 メモリインターフェイス部
852A 第一のアービトレーション回路
852B 第二のアービトレーション回路
853 第三のアービトレーション回路
854 マルチプレクサ

Claims (4)

  1. 外部からデータをプリフェッチするための複数のプリフェッチバッファを有するブリッジ回路にバスを介して接続され、リクエストをアサートした後、前記プリフェッチバッファからのデータを受信するバス接続回路において、
    複数のリクエストキューと、
    前記複数のリクエストキューのリクエストのアービトレーションを行うアービターと、
    前記プリフェッチバッファの割り当てに対応する複数のリクエスト線と複数のグラント線により、前記ブリッジ回路に接続され、前記アービターでアービトレーションされたリクエストに対応する前記プリフェッチバッファの割り当てを示す前記リクエスト線から、リクエスト信号を出力し、且つ前記ブリッジ回路から対応するグラント線よりグラント信号を受けるバスインターフェイス部とを有し、
    前記バスインターフェイス部は、前記リクエスト信号に応じた前記ブリッジ回路からのリトライ応答の受信に応じて、前記リクエスト信号による前記バスを開放し、他のプリフェッチバッファの割り当てを示すリクエスト線より、リクエスト信号を出力する
    ことを特徴とするバス接続回路。
  2. 前記リクエストキューは、初めてのリードリクエストを、前記リトライ応答に応じたリードリクエストに優先して、アサートする
    ことを特徴とする請求項1のバス接続回路。
  3. 前記リクエストキューは、前記リトライ応答を受けてから、前記リトライ応答に対応したリードリクエストをアサートするまでの時間を設定するレジスタを有する
    ことを特徴とする請求項1のバス接続回路。
  4. メモリからデータをプリフェッチするための複数のプリフェッチバッファを有するブリッジ回路と、
    前記ブリッジ回路にバスを介して接続され、リクエストをアサートした後、前記プリフェッチバッファからのデータを受信するバス接続回路とを有し、
    前記バス接続回路は、
    複数のリクエストキューと、
    前記複数のリクエストキューのリクエストのアービトレーションを行うアービターと、
    前記プリフェッチバッファの割り当てに対応する複数のリクエスト線と複数のグラント線により、前記ブリッジ回路に接続され、前記アービターでアービトレーションされたリクエストに対応する前記プリフェッチバッファの割り当てを示す前記リクエスト線から、リクエスト信号を出力し、且つ前記ブリッジ回路から対応するグラント線よりグラント信号を受けるバスインターフェイス部とを有し、
    前記バスインターフェイス部は、前記リクエスト信号に応じた前記ブリッジ回路からのリトライ応答の受信に応じて、前記リクエスト信号による前記バスを開放し、他のプリフェッチバッファの割り当てを示すリクエスト線より、リクエスト信号を出力する
    ことを特徴とするバス接続システム。
JP2003129840A 2003-05-08 2003-05-08 バス接続回路及びバス接続システム Expired - Fee Related JP4313607B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003129840A JP4313607B2 (ja) 2003-05-08 2003-05-08 バス接続回路及びバス接続システム
US10/780,607 US7124232B2 (en) 2003-05-08 2004-02-19 Bus connection circuit and bus connection system having plural request queues, a bus interface portion outputting request signals, an arbiter performing arbitration of plural requests and a bus interface portion outputting a request signal indicating allocation of pre-fetch buffers corresponding to arbitrated requests

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003129840A JP4313607B2 (ja) 2003-05-08 2003-05-08 バス接続回路及びバス接続システム

Publications (2)

Publication Number Publication Date
JP2004334552A JP2004334552A (ja) 2004-11-25
JP4313607B2 true JP4313607B2 (ja) 2009-08-12

Family

ID=33410540

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003129840A Expired - Fee Related JP4313607B2 (ja) 2003-05-08 2003-05-08 バス接続回路及びバス接続システム

Country Status (2)

Country Link
US (1) US7124232B2 (ja)
JP (1) JP4313607B2 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8386648B1 (en) 2003-06-26 2013-02-26 Nvidia Corporation Hardware support system for accelerated disk I/O
US8683132B1 (en) 2003-09-29 2014-03-25 Nvidia Corporation Memory controller for sequentially prefetching data for a processor of a computer system
US8356142B1 (en) 2003-11-12 2013-01-15 Nvidia Corporation Memory controller for non-sequentially prefetching data for a processor of a computer system
US8700808B2 (en) * 2003-12-01 2014-04-15 Nvidia Corporation Hardware support system for accelerated disk I/O
US8356143B1 (en) 2004-10-22 2013-01-15 NVIDIA Corporatin Prefetch mechanism for bus master memory access
US7275124B2 (en) * 2005-02-24 2007-09-25 International Business Machines Corporation Method and system for controlling forwarding or terminating of a request at a bus interface based on buffer availability
US7330925B2 (en) * 2005-02-24 2008-02-12 International Business Machines Corporation Transaction flow control mechanism for a bus bridge
US7469312B2 (en) * 2005-02-24 2008-12-23 International Business Machines Corporation Computer system bus bridge
US7275125B2 (en) 2005-02-24 2007-09-25 International Business Machines Corporation Pipeline bit handling circuit and method for a bus bridge
CN100392621C (zh) * 2005-10-14 2008-06-04 威盛电子股份有限公司 总线控制器及数据缓冲空间分配方法
US20070255874A1 (en) * 2006-04-28 2007-11-01 Jennings Kevin F System and method for target device access arbitration using queuing devices
US7711888B2 (en) * 2006-12-31 2010-05-04 Texas Instruments Incorporated Systems and methods for improving data transfer between devices
JPWO2009098737A1 (ja) * 2008-02-08 2011-05-26 パナソニック株式会社 外部デバイスアクセス装置、その制御方法及びシステムlsi
US8356128B2 (en) * 2008-09-16 2013-01-15 Nvidia Corporation Method and system of reducing latencies associated with resource allocation by using multiple arbiters
US8370552B2 (en) * 2008-10-14 2013-02-05 Nvidia Corporation Priority based bus arbiters avoiding deadlock and starvation on buses that support retrying of transactions
US8698823B2 (en) * 2009-04-08 2014-04-15 Nvidia Corporation System and method for deadlock-free pipelining
US8793421B2 (en) * 2011-10-31 2014-07-29 Apple Inc. Queue arbitration using non-stalling request indication
GB2522653A (en) * 2014-01-31 2015-08-05 Ibm Bridge and method for coupling a requesting interconnect and a serving interconnect in a computer system

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5168570A (en) * 1989-12-29 1992-12-01 Supercomputer Systems Limited Partnership Method and apparatus for a multiple request toggling priority system
JP3127796B2 (ja) 1994-10-07 2001-01-29 松下電器産業株式会社 情報記録再生装置
US5933610A (en) * 1996-09-17 1999-08-03 Vlsi Technology, Inc. Predictive arbitration system for PCI bus agents
US5905876A (en) * 1996-12-16 1999-05-18 Intel Corporation Queue ordering for memory and I/O transactions in a multiple concurrent transaction computer system
JPH11238030A (ja) 1998-02-20 1999-08-31 Mitsubishi Electric Corp Pci−pciブリッジおよびそのための先入れ先出しメモリ
US6502157B1 (en) * 1999-03-24 2002-12-31 International Business Machines Corporation Method and system for perfetching data in a bridge system
US6594730B1 (en) * 1999-08-03 2003-07-15 Intel Corporation Prefetch system for memory controller
US6629220B1 (en) * 1999-08-20 2003-09-30 Intel Corporation Method and apparatus for dynamic arbitration between a first queue and a second queue based on a high priority transaction type
GB0031763D0 (en) * 2000-12-29 2001-02-07 Mitel Semiconductor Ltd Arbiter for a queue management system
US6694397B2 (en) * 2001-03-30 2004-02-17 Intel Corporation Request queuing system for a PCI bridge
US6970978B1 (en) * 2002-04-03 2005-11-29 Advanced Micro Devices, Inc. System and method for providing a pre-fetch memory controller

Also Published As

Publication number Publication date
JP2004334552A (ja) 2004-11-25
US7124232B2 (en) 2006-10-17
US20040225822A1 (en) 2004-11-11

Similar Documents

Publication Publication Date Title
JP4313607B2 (ja) バス接続回路及びバス接続システム
JP4778199B2 (ja) データ転送装置及びデータ転送方法
JP4008987B2 (ja) バス通信システム及びバス調停方法並びにデータ転送方法
US6078976A (en) Bridge device that prevents decrease in the data transfer efficiency of buses
AU687627B2 (en) Multiprocessor system bus protocol for optimized accessing of interleaved storage modules
US20060190640A1 (en) Data transfer system and data transfer method
JPH08297632A (ja) 分割トランザクション・バス・プロトコルを可能にするバスに対するアービトレーション方法及び装置
US20030065847A1 (en) Method and apparatus for allocating computer bus device resources to a priority requester and retrying requests from non-priority requesters
US6567881B1 (en) Method and apparatus for bridging a digital signal processor to a PCI bus
US7174401B2 (en) Look ahead split release for a data bus
US6748505B1 (en) Efficient system bus architecture for memory and register transfers
US6202112B1 (en) Arbitration methods to avoid deadlock and livelock when performing transactions across a bridge
US7774513B2 (en) DMA circuit and computer system
US20040064626A1 (en) Method and apparatus for ordering interconnect transactions in a computer system
US6442632B1 (en) System resource arbitration mechanism for a host bridge
US6973520B2 (en) System and method for providing improved bus utilization via target directed completion
US6742074B2 (en) Bus to system memory delayed read processing
JP4625549B2 (ja) 調停システム、およびアクセスを調停する方法
JP4928683B2 (ja) データ処理装置
JP4151362B2 (ja) バス調停方式、データ転送装置、及びバス調停方法
US6105082A (en) Data processor used in a data transfer system which includes a detection circuit for detecting whether processor uses bus in a forthcoming cycle
JP3357920B2 (ja) バス制御方式及びそのシステム
US10983927B2 (en) Electronic device for recovering from buffer overrun in a bus system
JP2000029822A (ja) ブリッジ装置
JP2003122704A (ja) データ処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050426

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080324

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080422

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080623

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090127

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090330

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090512

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090515

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120522

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120522

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130522

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130522

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees