JP4969513B2 - Data transfer system - Google Patents
Data transfer system Download PDFInfo
- Publication number
- JP4969513B2 JP4969513B2 JP2008127392A JP2008127392A JP4969513B2 JP 4969513 B2 JP4969513 B2 JP 4969513B2 JP 2008127392 A JP2008127392 A JP 2008127392A JP 2008127392 A JP2008127392 A JP 2008127392A JP 4969513 B2 JP4969513 B2 JP 4969513B2
- Authority
- JP
- Japan
- Prior art keywords
- retry
- initiator
- bus
- data transfer
- target device
- 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.)
- Active
Links
- 239000003999 initiator Substances 0.000 claims description 153
- 238000000034 method Methods 0.000 claims description 18
- 238000007616 round robin method Methods 0.000 claims description 3
- 238000003780 insertion Methods 0.000 description 12
- 230000037431 insertion Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 7
- 241001522296 Erithacus rubecula Species 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 1
Images
Landscapes
- Bus Control (AREA)
Description
この発明は、PCI(Peripheral Components Interconnect)バスの使用調停に関し、複数のバスマスタによるデータ転送を平準化制御するデータ転送システム及びターゲット装置に関するものである。 The present invention relates to use arbitration of a PCI (Peripheral Components Interconnect) bus, and relates to a data transfer system and a target device that perform leveling control of data transfer by a plurality of bus masters.
PCIバス等における従来のバス調停では、複数のイニシエータが均等にバスを使用できるように、ラウンドロビン方式等のバス調停アルゴリズムが用いられている。ラウンドロビン方式では、バスに接続する全てのイニシエータに対して公平にバスの使用権の獲得機会を与えることができる。 In conventional bus arbitration in a PCI bus or the like, a bus arbitration algorithm such as a round robin method is used so that a plurality of initiators can use the bus evenly. In the round robin method, the opportunity to acquire the right to use the bus can be given fairly to all initiators connected to the bus.
図6は、PCIバスにおける従来のデータ転送システムの構成を概略的に示すブロック図であり、ラウンドロビン方式のバス調停を行う構成の一例を示している。図6において、データ転送システム100は、バス調停部101、イニシエータA,B及びターゲットデバイス102を備え、イニシエータA,B及びターゲットデバイス102がPCIバス103を介して接続している。
FIG. 6 is a block diagram schematically showing a configuration of a conventional data transfer system on the PCI bus, and shows an example of a configuration for performing round-robin bus arbitration. In FIG. 6, the
イニシエータA,Bは、PCIバス103を介してデータ転送するデバイスであり、ターゲットデバイス102は、PCIバス103を介してイニシエータA若しくはイニシエータBからのデータを受信するデバイスである。バス調停部101は、PCIバス103に接続するイニシエータA,BのうちのいずれにPCIバス103の使用権を与えるのかを決定し、ラウンドロビン方式でバス使用権の調停を行う。
Initiators A and B are devices that transfer data via the
バス使用要求REQ#1〜REQ#3は、PCIバス103のバス使用権を取得するためのリクエスト信号であり、バス使用権GNT#1〜GNT#3は、バス調停によりPCIバス103の使用権を与えるためのグラント信号である。バス使用要求REQ#3及びバス使用権GNT#3は、ターゲットデバイス102がイニシエータA,B側へデータ転送する際のリクエスト信号及びグラント信号である。
The bus use
また、図7は、図6中のデータ転送システムによるバス調停動作を示すタイミングチャートである。図6及び図7を用いて、従来のPCIバスのデータ転送システムにおけるバス調停を説明する。ここで、イニシエータA,Bが、ターゲットデバイス102に対してデータ転送要求を行い、ターゲットデバイス102が、イニシエータA,Bのトランザクションを受ける場合を考える。
FIG. 7 is a timing chart showing the bus arbitration operation by the data transfer system in FIG. Bus arbitration in a conventional PCI bus data transfer system will be described with reference to FIGS. Here, it is assumed that the initiators A and B make a data transfer request to the
イニシエータA,Bが共にバス使用要求REQ#1,REQ#2をアサートしてPCIバス103の使用を要求した場合、バス調停部101は、ラウンドロビン方式のバス調停アルゴリズムに基づいて、優先順位の高いイニシエータに対してバス使用権GNTをアサートし、PCIバス103を使用させる。ここでは、図7に示すように、バス調停部101が、最初にイニシエータAに対しバス使用権GNT#1をアサートした場合を考える。
When both initiators A and B assert the bus use
バス使用権を獲得したイニシエータAは、ターゲットデバイス102に対してデータ転送要求を行う。ターゲットデバイス102は、図7に示すように、イニシエータAからのトランザクション(データ転送)を処理するためにビジー状態となる。このとき、イニシエータAがデータ転送イニシエータとなってデータ転送が実行される。
The initiator A that has acquired the right to use the bus makes a data transfer request to the
イニシエータAへのデータ転送が終了すると、バス調停部101は、ラウンドロビン方式のバス調停アルゴリズムに基づいて、次に優先順位が高いイニシエータBに対してバス使用権GNTをアサートし、PCIバス103を使用させる。これにより、バス使用権を獲得したイニシエータBは、ターゲットデバイス102に対してデータ転送要求を行う。
When the data transfer to the initiator A is completed, the
しかしながら、図7に示すように、ターゲットデバイス102は、先のイニシエータAからのデータ転送要求を受けてビジー状態となっている。このため、イニシエータBに対してリトライ応答(データ再転送要求)がなされる。一方、イニシエータAは、イニシエータBより優先順位が高いため、イニシエータBがリトライ応答されている間に、バス調停部101からバス使用権が与えられる。
However, as shown in FIG. 7, the
ターゲットデバイス102は、イニシエータBへのリトライ応答後に、イニシエータAからのデータ転送に係る処理を完了すると、ビジー状態でなくなる。このとき、バス使用権を獲得したイニシエータAが、ターゲットデバイス102に対して再びデータ転送を行う。この間に、イニシエータBがバス使用権を獲得したとしても、ターゲットデバイス102は、イニシエータAからのデータ転送に係る処理を実行してビジー状態となる。
When the
図7に示すトランザクションの組み合わせが続くと、イニシエータAとイニシエータBが、共に同じ頻度でバス使用権を獲得できているにも関わらず、イニシエータBは、ターゲットデバイス102からリトライ応答を受け続ける。このため、イニシエータBは、イニシエータAのデータ転送が完了するまで長期間データ転送を行えなくなる。
If the combination of transactions shown in FIG. 7 continues, the initiator B continues to receive a retry response from the
このように、ラウンドロビン方式のバス調停では、複数のイニシエータA,Bが同一のターゲットデバイス102に対して継続的にデータ転送するにあたり、イニシエータのデータ転送要求とターゲットデバイス102がビジー状態になるタイミングとが周期的になるため、特定のイニシエータがバスの使用権を獲得したタイミングで、データ転送相手となるターゲットデバイスが常にビジー状態となり、データ転送を長時間行うことができない場合がある。
As described above, in round-robin bus arbitration, when a plurality of initiators A and B continuously transfer data to the
上述した不具合を解消する技術として、例えば特許文献1に記載されるバス調停回路がある。このバス調停回路は、ターゲットシステムのビジー状態を監視するビジー管理部を設けている。このビジー管理部は、ターゲットデバイスのビジー状態を監視し、ビジー状態のためリトライになったイニシエータとターゲットデバイスのデバイス番号を記憶部に記憶する。上記ターゲットデバイスのビジー状態が解除されると、上記記憶部に記憶したイニシエータに対して優先的にバス使用権を与える。このようにすることにより、特定のイニシエータからのデータ転送が行えなくなることが防止され、公平にバスの使用権を与えることができる。
As a technique for solving the above-described problems, there is a bus arbitration circuit described in
上述したように、従来のデータ転送システムでは、複数のイニシエータが同一のターゲットデバイスに対して継続的にデータ転送を続ける場合、ラウンドロビン方式のバス調停を行うと、ターゲットデバイスがビジー状態になるタイミングによっては、特定のイニシエータのトランザクションのみがリトライされ続け、バス使用権の獲得頻度が同じであっても、データ転送頻度が公平にならないという課題があった。 As described above, in a conventional data transfer system, when a plurality of initiators continuously transfer data to the same target device, the timing at which the target device becomes busy when round-robin bus arbitration is performed. In some cases, only the transaction of a specific initiator continues to be retried, and there is a problem that the data transfer frequency is not fair even if the bus use right acquisition frequency is the same.
また、特許文献1のバス調停回路は、上記課題を解決するために提案されたものであるが、バス調停の機能を実現するために必須な構成に加え、ターゲットデバイスのビジー状態を管理するビジー管理部や、リトライ応答されたイニシエータを記憶する記憶部等の専用装置が必要となる。このため、特許文献1の発明をPCIバスのデータ転送システムに適用する際、既製品のホストブリッジに内蔵されるバス調停回路をそのまま用いることができないばかりか、上記専用装置に対応する回路をホストブリッジの外部等に実装しなければならない。
The bus arbitration circuit of
この発明は、上記のような課題を解決するためになされたもので、ラウンドロビン方式等のバス調停における上記不具合を解消でき、かつ簡易な構成で実現することができるデータ転送システム及びこれに用いるターゲット装置を得ることを目的とする。 The present invention has been made to solve the above-described problems, and can be used for a data transfer system that can solve the above-described problems in round-robin bus arbitration and can be realized with a simple configuration. The object is to obtain a target device.
この発明に係るデータ転送システムは、バス使用要求に応じてラウンドロビン方式によりバス使用権を与えるバス調停部と、ターゲット装置にバスを介してアクセス可能な複数のイニシエータ装置とを備え、前記イニシエータ装置は、前記バス調停部にバス使用要求を出力して該バス調停部からバス使用権が得られた場合に、前記ターゲット装置にデータ転送要求して該ターゲット装置からデータ転送可能通知が得られた場合に、当該イニシエータ装置から該ターゲット装置にデータ転送し、前記ターゲット装置は、前記複数のイニシエータ装置の数−1に設定された所定のリトライ応答回数までカウントするカウンタを有し、前記イニシエータ装置からデータ転送要求された場合に、当該ターゲット装置が転送されたデータを処理するためにビジー状態であるとき、当該ターゲット装置から該イニシエータ装置に対してリトライ応答し、当該ターゲット装置がビジー状態でなく、且つ前記カウンタが所定のリトライ応答回数までカウントしていないとき、当該ターゲット装置から該イニシエータ装置に対してリトライ応答すると共に、該カウンタによりリトライ応答回数をカウントし、当該ターゲット装置がビジー状態でなく、且つ前記カウンタが所定のリトライ応答回数までカウントしているとき、当該ターゲット装置から該イニシエータ装置に対してデータ転送可能通知すると共に、該カウンタによるカウントを初期化するものである。 Data transfer system according to the invention includes a bus arbitration section that gives a bus access in a round robin fashion in response to a bus use request and a plurality of initiators device accessible via a bus to a target device, the initiator device When a bus use request is output to the bus arbitration unit and a bus use right is obtained from the bus arbitration unit, a data transfer request is obtained from the target device and a data transfer enable notification is obtained from the target device. If, then the data transfer from the initiator device to the target device, the target device has a counter for counting up to a predetermined retry response count set to the number -1 of said plurality of initiator devices, from the initiator device When the data transfer is requested, the target device processes the transferred data. When the target device is busy, the target device makes a retry response to the initiator device, and when the target device is not busy and the counter has not counted the predetermined number of retry responses, the target device A retry response is made to the initiator device and the number of retry responses is counted by the counter. When the target device is not busy and the counter has counted up to a predetermined number of retry responses, the target device In addition to notifying the initiator device that data transfer is possible, the count by the counter is initialized .
この発明によれば、ラウンドロビン方式のバス調停において、複数のイニシエータ装置が同一のターゲット装置に対して継続的にデータ転送する際、ターゲット装置がビジー状態になるタイミングによって特定のイニシエータ装置のトランザクションのみがリトライされ続ける不具合を解消することができる。また、ターゲット装置に簡易な構成を追加するだけで、前記効果を有するシステムを実現できるという効果がある。
According to the present invention, in the bus arbitration round robin scheme, when a plurality of initiator device to continuously transfer data to the same target device, the particular initiator device by a timing where the target device is busy transaction The problem that only keeps retrying can be solved. Further, only by adding a simple configuration to the target device, there is an effect that the system can be realized with a pre-Symbol effect.
実施の形態1.
図1は、この発明の実施の形態1によるデータ転送システムの構成を示すブロック図であり、ラウンドロビン方式のバス調停を行う構成を示している。図1において、実施の形態1によるデータ転送システム1は、イニシエータA,B、バス調停部2、及びイニシエータA,BとPCIバス7を介して接続するターゲットデバイス3を備える。また、本発明における特徴的な構成として、ターゲットデバイス3のPCIインタフェース部4に、バス制御部5及びリトライ挿入部6を設ける。
FIG. 1 is a block diagram showing a configuration of a data transfer system according to
イニシエータ(イニシエータ装置)A,Bは、PCIバス7を介してデータ転送するデバイスである。バス調停部2は、PCIバス7に接続するイニシエータA,BのうちのいずれにPCIバス7の使用権を与えるのかを決定し、ラウンドロビン方式でバス使用権の調停を行う。
Initiators (initiator devices) A and B are devices that transfer data via the
バス使用要求REQ#1〜REQ#3は、PCIバス7のバス使用権を取得するためのリクエスト信号であり、バス使用権GNT#1〜GNT#3は、バス調停によってPCIバス7の使用権を与えるためのグラント信号である。バス使用要求REQ#3及びバス使用権GNT#3は、ターゲットデバイス3がイニシエータA,B側へデータ転送する際のリクエスト信号及びグラント信号である。
The bus use
ターゲットデバイス(ターゲット装置)3は、PCIインタフェース部4により、PCIバス7を介してイニシエータA若しくはイニシエータBとの間でデータを送受信する。PCIインタフェース部4は、PCIバス7との入出力インタフェースを制御する構成要素であり、バス制御部5及びリトライ挿入部6を有する。
The target device (target device) 3 transmits / receives data to / from the initiator A or the initiator B via the
バス制御部5は、PCIバス7からのデータ転送要求と自ターゲットデバイス3のビジー状態とをリトライ挿入部6へ通知し、リトライ挿入部6からのビジー情報(図2で後述するBUSY2信号)に基づいて、トランザクションを受けるかリトライするかを決定する。
The
リトライ挿入部6は、リトライ応答回数を保持するレジスタを有し、バス制御部5から通知された情報に基づいて、トランザクションをリトライ応答するか否かを決定するとともに、リトライ応答回数を制御する。
The
図2は、図1中のターゲットデバイスの構成を概略的に示すブロック図であり、PCIインタフェース部とデバイス内の他の機能部との関係を示している。図2において、機能部8は、PCIバス7を介してイニシエータA若しくはイニシエータBから受信したデータを処理する構成要素であり、トランザクションの処理のためにビジー状態になっているか否かをバス制御部5によって監視される。
FIG. 2 is a block diagram schematically showing the configuration of the target device in FIG. 1, and shows the relationship between the PCI interface unit and other functional units in the device. In FIG. 2, a functional unit 8 is a component that processes data received from the initiator A or the initiator B via the
バス制御部5は、PCIバス7と機能部8との間のインタフェースとして、ターゲットインタフェース部9及びイニシエータインタフェース部10を備える。ターゲットインタフェース部9は、PCIバス7側から機能部8へのトランザクションを受信するためのインタフェースであり、バス11及び信号線14を介して機能部8と接続している。
The
バス11は、PCIバス7側から受信したトランザクションを機能部8へ伝達するバスであり、信号線14は、PCIバス7を介してイニシエータA,Bから受信したデータ転送要求REQ信号を機能部8及びリトライ挿入部6側へ伝える信号線である。
The
イニシエータインタフェース部10は、機能部8からのトランザクションをPCIバス7側(イニシエータA,B側)へ送信するためのインタフェースであり、バス12を介して機能部8と接続している。バス12は、機能部8からのトランザクションをPCIバス7側へ発行するバスである。
The
また、リトライ挿入部6は、リトライ制御部16、リトライカウンタ17及びリトライ回数格納レジスタ18を備える。リトライ制御部16は、データ転送要求REQ信号、機能部8がビジー状態であることを示すBUSY1信号、リトライカウンタ17のカウント値、及びリトライ回数格納レジスタ18の値を入力し、図3を用いて後述する真理値表に基づいて、PCIバス7側へリトライ応答を行うためのBUSY2信号を決定し、リトライカウンタ17の値を更新する。
The retry
リトライカウンタ17は、リトライ応答した回数が設定されるレジスタであり、リトライ応答する度に回数値がデクリメントされ、データ転送のトランザクションを受ける度にリトライ回数格納レジスタ18の値で初期化される。リトライ回数格納レジスタ18は、リトライ応答する回数が初期値(リトライカウンタ17によるカウントの目標値)として固定的に設定される。
The retry
リトライ回数格納レジスタ18の初期値は、PCIバス7上にあるイニシエータとなるデバイス(バス使用権を得てターゲットデバイスに同時にアクセス可能なデバイス)の数によって決まり、デバイス数−1となる。例えば、バス7上に7つのイニシエータがあり、そのうち3つのイニシエータが同時にターゲットデバイスにアクセスすることが予め把握されている場合、リトライ回数格納レジスタ18の初期値は、3−1=2となる。
The initial value of the retry
信号線13は、ターゲットインタフェース部9とリトライ制御部16との間を接続し、リトライ制御部16で生成されたBUSY2信号をターゲットインタフェース部9へ伝える信号線である。信号線15は、機能部8とリトライ制御部16との間を接続し、機能部8で生成されたBUSY1信号をリトライ制御部16へ伝える信号線である。
The
信号線19は、リトライ制御部16とリトライ回数格納レジスタ18との間を接続し、リトライ制御部16によるリトライ回数格納レジスタ18の値の読み出し、リトライ回数格納レジスタ18への初期値の書き込みを実行するための信号線である。信号線20は、リトライ制御部16とリトライカウンタ17との間を接続し、リトライ制御部16によるリトライカウンタ17の値の読み出し、リトライ回数格納レジスタ18の値の書き込み(初期化)を実行するための信号線である。
The
図3は、図2中のリトライ制御部の動作基準となる真理値表を示す図である。図3において、Xは、リトライカウンタ17に格納された0以外の値(リトライ応答回数のカウント値)を示している。Yは、リトライ回数格納レジスタ18に格納された初期値(リトライカウンタ17によるカウントの目標値)を示している。X−1は、リトライカウンタ17のカウント値を1デクリメントする場合を示している。
FIG. 3 is a diagram showing a truth table as an operation reference of the retry control unit in FIG. In FIG. 3, X represents a value other than 0 (count value of the number of retry responses) stored in the retry
リトライ制御部16は、データ転送要求REQ信号の論理値、機能部8がビジー状態であることを示すBUSY1信号の論理値、リトライカウンタ17のカウント値、及びリトライ回数格納レジスタ18の値の組み合わせと図3中の真理値表とを比較して、PCIバス7側へリトライ応答を行うためのBUSY2信号の値を決定し、リトライカウンタ17のカウント値を更新する。
The retry
次に動作について説明する。
図4は、実施の形態1によるデータ転送システムのバス調停動作を示すタイミングチャートである。また、図5は、図2中のターゲットデバイスによる動作の流れを示すフローチャートである。これらは、複数のイニシエータA,Bから同一のターゲットデバイス3に対して継続的にデータ転送を続ける場合を示している。
Next, the operation will be described.
FIG. 4 is a timing chart showing the bus arbitration operation of the data transfer system according to the first embodiment. FIG. 5 is a flowchart showing the flow of operation by the target device in FIG. These show a case where data transfer is continuously performed from a plurality of initiators A and B to the
先ず、イニシエータA,Bは、ターゲットデバイス3に対してデータ転送を行うため、バス調停部2に対しバスリクエストREQ#1,REQ#2をアサートする。バス調停部2は、ラウンドロビン方式のバス調停アルゴリズムに基づいて、優先順位の高いイニシエータAへバス使用権GNT#1をアサートし、イニシエータAにPCIバス7の使用権を付与する。この後、イニシエータAは、PCIバス7を介しターゲットデバイス3に対してデータ転送要求REQ信号を送信する。
First, the initiators A and B assert bus requests REQ # 1 and
ターゲットデバイス3では、イニシエータAからのデータ転送要求REQ信号をターゲットインタフェース部9が受信する。ターゲットインタフェース部9は、信号線14を介してデータ転送要求REQ信号を機能部8及びリトライ挿入部6のリトライ制御部16へ伝える。
In the
リトライ制御部16は、データ転送要求REQ信号の値に基づいて、自ターゲットデバイス3がPCIバス7側からトランザクションを受けているか否かを判定する(ステップST1)。ここで、データ転送要求REQ信号(値0)が入力されており、自ターゲットデバイス3のPCIインタフェース部4がトランザクションを受けていない場合、リトライ制御部16は、ステップST1の処理に戻る。このときの各信号、レジスタの値は、図3に示す真理値表のREQ信号が値0の欄に示す通りである。
Based on the value of the data transfer request REQ signal, the retry
一方、データ転送要求REQ信号(値1)が入力され、自ターゲットデバイス3のPCIインタフェース部4がトランザクションを受けていると判定すると、リトライ制御部16は、信号線20を介して機能部8から入力されるBUSY1信号の値に基づいて、機能部8がビジー状態であるか否かを判定する(ステップST2)。
On the other hand, when the data transfer request REQ signal (value 1) is input and it is determined that the
このとき、機能部8がビジー状態であるならば、リトライ制御部16は、PCIバス7側へリトライ応答を行うためのBUSY2信号を値1(オン)に設定し、ターゲットインタフェース部9を介してPCIバス7側へ送信することにより、リトライ応答する(ステップST3)。この後、リトライ制御部16は、ステップST1の処理に戻る。
At this time, if the function unit 8 is busy, the retry
また、機能部8がビジー状態でない場合、リトライ制御部16は、本発明に特有な処理である図5中に破線で囲った一連の処理Cを実行する。具体的に説明すると、リトライ制御部16は、機能部8がビジー状態でないと判定されると、信号線20を介してリトライカウンタ17のカウント値を読み出し、カウント値が0であるか否かを判定する(ステップST4)。
When the function unit 8 is not busy, the retry
ステップST4において、リトライカウンタ17のカウント値が0であれば、リトライ制御部16は、BUSY2信号に値0を設定してターゲットインタフェース部9へ送信する。ターゲットインタフェース部9は、PCIバス7を介してバス使用権を獲得しているイニシエータに対しデータ転送可能である旨を通知する。これにより、ターゲットデバイス3は、PCIバス7を介したイニシエータからのデータ転送が開始される(ステップST5)。
In step ST4, if the count value of the retry
リトライ制御部16は、データ転送が開始されると、図3の真理値表に示すように、リトライ回数格納レジスタ18の値(Y)をリトライカウンタ17に格納して初期化する(ステップST6)。この後、リトライ制御部16は、ステップST1の処理に戻って、上記処理を繰り返す。
When data transfer is started, the retry
一方、ステップST4において、リトライカウンタ17のカウント値が0でない場合、リトライ制御部16は、BUSY2信号に値1を設定してターゲットインタフェース部9へ送信する。BUSY2信号(値1)を受けると、ターゲットインタフェース部9は、PCIバス7を介してバス使用権を獲得しているイニシエータに対しリトライ応答する(ステップST7)。
On the other hand, when the count value of the retry
次に、リトライ制御部16は、リトライカウンタ17のカウント値を1デクリメント(X−1)する(ステップST8)。この後、リトライ制御部16は、ステップST1の処理に戻って、トランザクションを受けた全てのイニシエータからのデータ転送が終了するまで、上記処理を繰り返す。
Next, the retry
従来では、機能部8がビジー状態であるならばリトライ応答し、ビジー状態でない場合、イニシエータからのデータ転送を開始していた。これに対し、この実施の形態1によるリトライ制御部16では、リトライカウンタ17のカウント値が0でなければ、機能部8がビジー状態であるか否かに関わらず、イニシエータからのトランザクションをリトライ応答する。
Conventionally, if the functional unit 8 is busy, a retry response is made. If the functional unit 8 is not busy, data transfer from the initiator is started. In contrast, in the retry
このように、リトライカウンタ17には、リトライ回数格納レジスタ18の初期値が設定され、この値が0になるまで、PCIバス7の使用権を獲得したいずれのイニシエータからのデータ転送要求があってもリトライ応答する。なお、上記初期値は、デバイス数(バス使用権を得てイニシエータとなり得るデバイスの最大数)−1であり、図4の例では、初期値(リトライ回数)が1となる。
In this way, the retry
図4では、ターゲットデバイス3が、始めにイニシエータAからのトランザクション(データ転送)を受け、機能部8がビジー状態になる。このとき、イニシエータBからのデータ転送要求があっても、ターゲットデバイス3は、イニシエータAからのデータ転送を処理するためにリトライ応答する(図5中のステップST3)。
In FIG. 4, the
また、リトライカウンタ17のカウント値0でイニシエータAからのデータ転送が開始されるが、データ転送開始後に、リトライ制御部16が、リトライ回数格納レジスタ18の値(図4の例では1)をリトライカウンタ17に設定する。
In addition, data transfer from the initiator A is started at the
これにより、機能部8がイニシエータAからの当初のトランザクション処理を完了してビジー状態ではなくなり、引き続きイニシエータAからデータ転送要求があっても、リトライカウンタ17のカウント値(リトライ回数)が1であることから、リトライ制御部16は、イニシエータAにリトライ応答する(図5中のステップST8)。このとき、ターゲットデバイス3は、図4に示すように、ビジー状態ではないが、イニシエータAからのデータ転送を受けないレディ状態となる。
As a result, the functional unit 8 completes the initial transaction processing from the initiator A and is not in a busy state, and the count value (the number of retries) of the retry
イニシエータAにリトライ応答すると、リトライ制御部16は、リトライカウンタ17のカウント値(リトライ回数)を1デクリメントする。図4の例では、初期値が1であることから、カウント値が0となる。この後、ターゲットデバイス3が、イニシエータBからのトランザクション(データ転送)を受けると、機能部8がビジー状態でなく(レディ状態)、かつ、リトライカウンタ17のカウント値が0であるため、イニシエータBからのデータ転送が開始される。これにより、機能部8は、イニシエータBからのデータ転送を処理する。
When a retry response is sent to the initiator A, the retry
従来では、イニシエータAのトランザクションを受けたターゲットデバイスは、その次のタイミングで必ずビジー状態となり、結果として次にトランザクションを開始するイニシエータBがリトライ応答を受け続けることになっていたが、本発明では、図4に示すように、イニシエータAのトランザクションをリトライ応答することで、次のイニシエータBのトランザクションをレディ状態で応答することが可能となる。 Conventionally, the target device that has received the transaction of the initiator A is always busy at the next timing, and as a result, the initiator B that starts the next transaction continues to receive the retry response. As shown in FIG. 4, by responding to the initiator A transaction with a retry, the next initiator B transaction can be responded in a ready state.
上記説明では、PCIバス7上に2つのイニシエータA,Bが存在する場合を述べたが、イニシエータが3つ以上ある場合であっても同様に処理することが可能である。例えば、イニシエータA〜Cの3つある場合(初期値2)であり、ラウンドロビン方式のバス調停でイニシエータAの優先順位が最も高く、続いてイニシエータB、その次がイニシエータCであるものとする。
In the above description, the case where two initiators A and B exist on the
先ず、リトライカウンタ17のカウント値が0であると、イニシエータAからのデータ転送が開始され、機能部8は、イニシエータAとのデータ転送処理のためにビジー状態となる。このとき、イニシエータBからデータ転送要求があっても、機能部8がビジー状態であるため、イニシエータBは、リトライ応答される。
First, when the count value of the retry
また、上記データ転送が開始されると、リトライカウンタ17にはカウント値2が設定され、イニシエータAについてのリトライ回数格納レジスタ18の値は1デクリメントされて1となる。なお、イニシエータB,Cについてのリトライ回数格納レジスタ18の値は初期値2のままである。
When the data transfer is started, a
機能部8は、イニシエータAのデータ転送処理を完了するとビジー状態ではなくなる。このとき、イニシエータCがデータ転送要求すると、リトライカウンタ17にはカウント値2が設定されているので、イニシエータCはリトライ応答される。これにより、リトライカウンタ17のカウント値は1デクリメントされて1となる。
When the function unit 8 completes the data transfer process of the initiator A, the function unit 8 is not in a busy state. At this time, when the initiator C requests data transfer, since the
この後、イニシエータAが、引き続きデータ転送要求しても、リトライカウンタ17にはカウント値1が設定されていることから、イニシエータAはリトライ応答される。これにより、リトライカウンタ17のカウント値は1デクリメントされて0となる。つまり、機能部8のレディ状態で、イニシエータC,Aはリトライ応答される。
Thereafter, even if initiator A continues to request data transfer, since the
続いて、イニシエータBからデータ転送要求があると、機能部8がビジー状態でなく、かつリトライカウンタ17のカウント値が0であるので、イニシエータBからのデータ転送が開始される。このとき、イニシエータCからデータ転送要求があっても、機能部8がビジー状態であるため、イニシエータCはリトライ応答される。また、上記データ転送が開始されると、イニシエータCについてのリトライ回数格納レジスタ18の値2がリトライカウンタ17のカウント値として設定される。
Subsequently, when there is a data transfer request from the initiator B, since the functional unit 8 is not busy and the count value of the retry
イニシエータBのデータ転送処理を完了すると、機能部8はビジー状態ではなくなる。このとき、イニシエータAがデータ転送要求しても、リトライカウンタ17にはカウント値2が設定されていることから、イニシエータAはリトライ応答される。これにより、リトライカウンタ17のカウント値は1デクリメントされて1となる。
When the data transfer process of the initiator B is completed, the functional unit 8 is not busy. At this time, even if initiator A makes a data transfer request, since the
この後、イニシエータBが、引き続きデータ転送要求しても、リトライカウンタ17にはカウント値1が設定されていることから、イニシエータBはリトライ応答される。これにより、リトライカウンタ17のカウント値は1デクリメントされて0となる。つまり、機能部8のレディ状態で、イニシエータA,Bはリトライ応答される。
After this, even if initiator B continues to request data transfer, since the
続いて、イニシエータCからデータ転送要求があると、機能部8がビジー状態でなく、かつリトライカウンタ17のカウント値が0であるので、イニシエータCからのデータ転送が開始される。このとき、イニシエータAからデータ転送要求があっても、機能部8がビジー状態であるため、イニシエータAはリトライ応答される。また、上記データ転送が開始されると、イニシエータAについてのリトライ回数格納レジスタ18の値2がリトライカウンタ17のカウント値として設定される。
Subsequently, when there is a data transfer request from the initiator C, since the functional unit 8 is not busy and the count value of the retry
イニシエータCのデータ転送処理を完了すると、機能部8はビジー状態ではなくなる。このとき、イニシエータAがデータ転送要求しても、リトライカウンタ17にはカウント値2が設定されていることから、イニシエータAはリトライ応答される。これにより、リトライカウンタ17のカウント値は1デクリメントされて1となる。
When the data transfer process of the initiator C is completed, the functional unit 8 is not busy. At this time, even if initiator A makes a data transfer request, since the
このように、ターゲットデバイス3がデータ転送を行う度にリトライ応答回数のカウント値が変化する。逆に言えば、データ転送を行うタイミングが変動する。このため、複数のイニシエータが同じタイミングで交互にバス使用権を取得してターゲットデバイス3へデータ転送を行う場合であっても、特定のパターンにはまりこむことがなくなり、特定のイニシエータが常にリトライ応答を受ける状況を回避できる。
In this way, the count value of the number of retry responses changes every time the
また、上述したように、本発明は、ターゲットデバイス3のPCIインタフェース部4に、PCIバス7とのインタフェースとなるバス制御部5と、入力された信号値とレジスタの値の簡単な比較によってリトライ応答すべきか否かを決定するリトライ挿入部6を設けるだけで実現可能である。
In addition, as described above, the present invention allows the
例えば、既製品のホストブリッジとFPGA(Field Programmable Gate Array)等のプログラマブルデバイスで構成したPCIデバイスとを組み合わせて、本発明によるデータ転送システムを実現する場合、FPGAのPCIインタフェース部に上記構成(バス制御部5及びリトライ挿入部6)を組み込むことで、データ転送機会の平準化を図ることが可能となる。
For example, when a data transfer system according to the present invention is realized by combining an off-the-shelf host bridge and a PCI device configured with a programmable device such as an FPGA (Field Programmable Gate Array), the above-described configuration (bus By incorporating the
以上のように、この実施の形態1によれば、ターゲットデバイス3が、所定のリトライ応答回数をカウントするリトライカウンタ17を有し、複数のイニシエータA,Bの各々との間でデータ転送を逐次実行するにあたり、データ転送が完了してビジー状態が解除された時点からリトライカウンタ17が所定のリトライ応答回数をカウントするまで、リトライ応答させるための制御信号を出力し、この制御信号に従ってリトライ応答する。このようにすることで、複数のイニシエータが同一のターゲットデバイス3に対して継続的にデータ転送する際、ターゲットデバイス3がビジー状態になるタイミングによって特定のイニシエータのトランザクションのみがリトライされ続ける不具合を解消することができる。
As described above, according to the first embodiment, the
また、バスインタフェースやレジスタ及び比較回路等の簡単な回路で実現可能なバス制御部5及びリトライ挿入部6をターゲットデバイス3に設けるだけで、上述のような効果を有するデータ転送システム1を実現することができる。これにより、既製品のホストブリッジに内蔵されるバス調停回路を利用することができ、実装の容易さ、低コスト化、汎用性の向上を図ることができる。
In addition, the
1 データ転送システム、2 バス調停部、3 ターゲットデバイス(ターゲット装置)、4 PCIインタフェース部、5 バス制御部、6 リトライ挿入部、7 PCIバス、8 機能部、9 ターゲットインタフェース部、10 イニシエータインタフェース部、11,12 バス、13,14,15,19,20 信号線、16 リトライ制御部、17 リトライカウンタ(カウンタ)、18 リトライ回数格納レジスタ、A,B イニシエータ(イニシエータ装置)、100 データ転送システム、101 バス調停部、102 ターゲットデバイス、103 PCIバス。
1 data transfer system, 2 bus arbitration unit, 3 target device (target device), 4 PCI interface unit, 5 bus control unit, 6 retry insertion unit, 7 PCI bus, 8 function unit, 9 target interface unit, 10
Claims (1)
ターゲット装置にバスを介してアクセス可能な複数のイニシエータ装置とを備え、
前記イニシエータ装置は、
前記バス調停部にバス使用要求を出力して該バス調停部からバス使用権が得られた場合に、前記ターゲット装置にデータ転送要求して該ターゲット装置からデータ転送可能通知が得られた場合に、当該イニシエータ装置から該ターゲット装置にデータ転送し、
前記ターゲット装置は、
前記複数のイニシエータ装置の数−1に設定された所定のリトライ応答回数までカウントするカウンタを有し、
前記イニシエータ装置からデータ転送要求された場合に、
当該ターゲット装置が転送されたデータを処理するためにビジー状態であるとき、当該ターゲット装置から該イニシエータ装置に対してリトライ応答し、
当該ターゲット装置がビジー状態でなく、且つ前記カウンタが所定のリトライ応答回数までカウントしていないとき、当該ターゲット装置から該イニシエータ装置に対してリトライ応答すると共に、該カウンタによりリトライ応答回数をカウントし、
当該ターゲット装置がビジー状態でなく、且つ前記カウンタが所定のリトライ応答回数までカウントしているとき、当該ターゲット装置から該イニシエータ装置に対してデータ転送可能通知すると共に、該カウンタによるカウントを初期化する
ことを特徴とするデータ転送システム。 A bus arbitration unit that gives a bus use right by a round robin method according to a bus use request;
And a plurality of initiators device accessible via a bus to a target device,
The initiator device is
When a bus use request is output to the bus arbitration unit and a bus use right is obtained from the bus arbitration unit, when a data transfer request is obtained from the target device and a data transfer enable notification is obtained from the target device. , Transferring data from the initiator device to the target device,
The target device is
Has a counter which counts up to a predetermined retry response count set to the number -1 of said plurality of initiator devices,
When a data transfer request is made from the initiator device,
When the target device is busy to process the transferred data, the target device sends a retry response to the initiator device,
When the target device is not busy and the counter has not counted up to a predetermined number of retry responses, the target device responds to the initiator device with a retry response, and the counter counts the number of retry responses.
When the target device is not busy and the counter counts up to a predetermined number of retry responses, the target device notifies the initiator device that data transfer is possible and initializes the count by the counter. <br/> A data transfer system characterized by the above.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008127392A JP4969513B2 (en) | 2008-05-14 | 2008-05-14 | Data transfer system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008127392A JP4969513B2 (en) | 2008-05-14 | 2008-05-14 | Data transfer system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009277000A JP2009277000A (en) | 2009-11-26 |
JP4969513B2 true JP4969513B2 (en) | 2012-07-04 |
Family
ID=41442375
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008127392A Active JP4969513B2 (en) | 2008-05-14 | 2008-05-14 | Data transfer system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4969513B2 (en) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2752917B2 (en) * | 1995-04-26 | 1998-05-18 | 四国日本電気ソフトウェア株式会社 | Bus connection method |
JP4144986B2 (en) * | 1999-12-13 | 2008-09-03 | 富士通株式会社 | Information processing apparatus, transaction processing method, processor, and retry method |
JP2004139296A (en) * | 2002-10-17 | 2004-05-13 | Nec Engineering Ltd | Bus arbitration device |
JP2007087247A (en) * | 2005-09-26 | 2007-04-05 | Nec Electronics Corp | Bus control system |
JP4610570B2 (en) * | 2007-02-19 | 2011-01-12 | 富士通株式会社 | Information processing apparatus and transaction processing method |
-
2008
- 2008-05-14 JP JP2008127392A patent/JP4969513B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2009277000A (en) | 2009-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6772254B2 (en) | Multi-master computer system with overlapped read and write operations and scalable address pipelining | |
JP3231596B2 (en) | Bus system with latency and shadow timer | |
US8041869B2 (en) | Method and system for bus arbitration | |
KR100932359B1 (en) | Switch matrix system with multiple bus arbitrations per cycle with high frequency mediator | |
US5740380A (en) | Method and system for apportioning computer bus bandwidth | |
US5515516A (en) | Initialization mechanism for symmetric arbitration agents | |
US6272580B1 (en) | Apparatus and method for dynamically elevating a lower level bus master to an upper level bus master within a multi-level arbitration system | |
JP2004521410A (en) | System and method for implementing a multi-level interrupt scheme in a computer system | |
CN105988968B (en) | Semiconductor device with a plurality of semiconductor chips | |
JP2007058716A (en) | Data transfer bus system | |
EP1922628A2 (en) | Partially populated, hierarchical crossbar | |
US6748505B1 (en) | Efficient system bus architecture for memory and register transfers | |
US6804736B2 (en) | Bus access arbitration based on workload | |
US5822549A (en) | Computer system and bus controller for controlling access to a computer bus | |
JP2007122410A (en) | Bus arbitration circuit and method | |
JP4969513B2 (en) | Data transfer system | |
US6973520B2 (en) | System and method for providing improved bus utilization via target directed completion | |
JP5677007B2 (en) | Bus arbitration device and bus arbitration method | |
US7043595B2 (en) | Data transfer control device | |
JP2004078508A (en) | Bus arbitration circuit, bus arbitration method, and its program | |
JP4151362B2 (en) | Bus arbitration method, data transfer device, and bus arbitration method | |
US8713205B2 (en) | Data transfer device and data transfer method | |
JP5111940B2 (en) | Information processing apparatus and access control method | |
US10983927B2 (en) | Electronic device for recovering from buffer overrun in a bus system | |
US7117281B1 (en) | Circuit, system, and method for data transfer control for enhancing data bus utilization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20091225 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120104 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120209 |
|
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: 20120306 |
|
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: 20120403 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150413 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4969513 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |