説明

データ転送システム及びターゲット装置

【課題】ラウンドロビン方式等のバス調停における上記不具合を解消でき、かつ簡易な構成で実現することができるデータ転送システム及びこれに用いるターゲット装置を提供する。
【解決手段】ターゲットデバイス3が、所定のリトライ応答回数をカウントするリトライカウンタ17を有し、複数のイニシエータA,Bの各々との間でデータ転送を逐次実行するにあたり、データ転送が完了してビジー状態が解除された時点からリトライカウンタ17が所定のリトライ応答回数をカウントするまで、リトライ応答させるための制御信号を出力し、この制御信号に従ってリトライ応答する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、PCI(Peripheral Components Interconnect)バスの使用調停に関し、複数のバスマスタによるデータ転送を平準化制御するデータ転送システム及びターゲット装置に関するものである。
【背景技術】
【0002】
PCIバス等における従来のバス調停では、複数のイニシエータが均等にバスを使用できるように、ラウンドロビン方式等のバス調停アルゴリズムが用いられている。ラウンドロビン方式では、バスに接続する全てのイニシエータに対して公平にバスの使用権の獲得機会を与えることができる。
【0003】
図6は、PCIバスにおける従来のデータ転送システムの構成を概略的に示すブロック図であり、ラウンドロビン方式のバス調停を行う構成の一例を示している。図6において、データ転送システム100は、バス調停部101、イニシエータA,B及びターゲットデバイス102を備え、イニシエータA,B及びターゲットデバイス102がPCIバス103を介して接続している。
【0004】
イニシエータA,Bは、PCIバス103を介してデータ転送するデバイスであり、ターゲットデバイス102は、PCIバス103を介してイニシエータA若しくはイニシエータBからのデータを受信するデバイスである。バス調停部101は、PCIバス103に接続するイニシエータA,BのうちのいずれにPCIバス103の使用権を与えるのかを決定し、ラウンドロビン方式でバス使用権の調停を行う。
【0005】
バス使用要求REQ#1〜REQ#3は、PCIバス103のバス使用権を取得するためのリクエスト信号であり、バス使用権GNT#1〜GNT#3は、バス調停によりPCIバス103の使用権を与えるためのグラント信号である。バス使用要求REQ#3及びバス使用権GNT#3は、ターゲットデバイス102がイニシエータA,B側へデータ転送する際のリクエスト信号及びグラント信号である。
【0006】
また、図7は、図6中のデータ転送システムによるバス調停動作を示すタイミングチャートである。図6及び図7を用いて、従来のPCIバスのデータ転送システムにおけるバス調停を説明する。ここで、イニシエータA,Bが、ターゲットデバイス102に対してデータ転送要求を行い、ターゲットデバイス102が、イニシエータA,Bのトランザクションを受ける場合を考える。
【0007】
イニシエータA,Bが共にバス使用要求REQ#1,REQ#2をアサートしてPCIバス103の使用を要求した場合、バス調停部101は、ラウンドロビン方式のバス調停アルゴリズムに基づいて、優先順位の高いイニシエータに対してバス使用権GNTをアサートし、PCIバス103を使用させる。ここでは、図7に示すように、バス調停部101が、最初にイニシエータAに対しバス使用権GNT#1をアサートした場合を考える。
【0008】
バス使用権を獲得したイニシエータAは、ターゲットデバイス102に対してデータ転送要求を行う。ターゲットデバイス102は、図7に示すように、イニシエータAからのトランザクション(データ転送)を処理するためにビジー状態となる。このとき、イニシエータAがデータ転送イニシエータとなってデータ転送が実行される。
【0009】
イニシエータAへのデータ転送が終了すると、バス調停部101は、ラウンドロビン方式のバス調停アルゴリズムに基づいて、次に優先順位が高いイニシエータBに対してバス使用権GNTをアサートし、PCIバス103を使用させる。これにより、バス使用権を獲得したイニシエータBは、ターゲットデバイス102に対してデータ転送要求を行う。
【0010】
しかしながら、図7に示すように、ターゲットデバイス102は、先のイニシエータAからのデータ転送要求を受けてビジー状態となっている。このため、イニシエータBに対してリトライ応答(データ再転送要求)がなされる。一方、イニシエータAは、イニシエータBより優先順位が高いため、イニシエータBがリトライ応答されている間に、バス調停部101からバス使用権が与えられる。
【0011】
ターゲットデバイス102は、イニシエータBへのリトライ応答後に、イニシエータAからのデータ転送に係る処理を完了すると、ビジー状態でなくなる。このとき、バス使用権を獲得したイニシエータAが、ターゲットデバイス102に対して再びデータ転送を行う。この間に、イニシエータBがバス使用権を獲得したとしても、ターゲットデバイス102は、イニシエータAからのデータ転送に係る処理を実行してビジー状態となる。
【0012】
図7に示すトランザクションの組み合わせが続くと、イニシエータAとイニシエータBが、共に同じ頻度でバス使用権を獲得できているにも関わらず、イニシエータBは、ターゲットデバイス102からリトライ応答を受け続ける。このため、イニシエータBは、イニシエータAのデータ転送が完了するまで長期間データ転送を行えなくなる。
【0013】
このように、ラウンドロビン方式のバス調停では、複数のイニシエータA,Bが同一のターゲットデバイス102に対して継続的にデータ転送するにあたり、イニシエータのデータ転送要求とターゲットデバイス102がビジー状態になるタイミングとが周期的になるため、特定のイニシエータがバスの使用権を獲得したタイミングで、データ転送相手となるターゲットデバイスが常にビジー状態となり、データ転送を長時間行うことができない場合がある。
【0014】
上述した不具合を解消する技術として、例えば特許文献1に記載されるバス調停回路がある。このバス調停回路は、ターゲットシステムのビジー状態を監視するビジー管理部を設けている。このビジー管理部は、ターゲットデバイスのビジー状態を監視し、ビジー状態のためリトライになったイニシエータとターゲットデバイスのデバイス番号を記憶部に記憶する。上記ターゲットデバイスのビジー状態が解除されると、上記記憶部に記憶したイニシエータに対して優先的にバス使用権を与える。このようにすることにより、特定のイニシエータからのデータ転送が行えなくなることが防止され、公平にバスの使用権を与えることができる。
【0015】
【特許文献1】特開2002−366511号公報
【発明の開示】
【発明が解決しようとする課題】
【0016】
上述したように、従来のデータ転送システムでは、複数のイニシエータが同一のターゲットデバイスに対して継続的にデータ転送を続ける場合、ラウンドロビン方式のバス調停を行うと、ターゲットデバイスがビジー状態になるタイミングによっては、特定のイニシエータのトランザクションのみがリトライされ続け、バス使用権の獲得頻度が同じであっても、データ転送頻度が公平にならないという課題があった。
【0017】
また、特許文献1のバス調停回路は、上記課題を解決するために提案されたものであるが、バス調停の機能を実現するために必須な構成に加え、ターゲットデバイスのビジー状態を管理するビジー管理部や、リトライ応答されたイニシエータを記憶する記憶部等の専用装置が必要となる。このため、特許文献1の発明をPCIバスのデータ転送システムに適用する際、既製品のホストブリッジに内蔵されるバス調停回路をそのまま用いることができないばかりか、上記専用装置に対応する回路をホストブリッジの外部等に実装しなければならない。
【0018】
この発明は、上記のような課題を解決するためになされたもので、ラウンドロビン方式等のバス調停における上記不具合を解消でき、かつ簡易な構成で実現することができるデータ転送システム及びこれに用いるターゲット装置を得ることを目的とする。
【課題を解決するための手段】
【0019】
この発明に係るデータ転送システムは、イニシエータ装置とターゲット装置がバスを介して接続され、前記イニシエータ装置と前記ターゲット装置との間でデータ転送するデータ転送システムにおいて、前記ターゲット装置が、所定のリトライ応答回数をカウントするカウンタを有し、複数のイニシエータ装置の各々との間でデータ転送を逐次実行するにあたり、データ転送が完了してビジー状態が解除された時点から前記カウンタが前記所定のリトライ応答回数をカウントするまで、リトライ応答させるための制御信号を出力するリトライ挿入部と、前記リトライ挿入部から入力した前記制御信号に従って、前記イニシエータ装置にリトライ応答するバス制御部とを備えるものである。
【発明の効果】
【0020】
この発明によれば、所定のリトライ応答回数をカウントするカウンタを有し、複数のイニシエータ装置の各々との間でデータ転送を逐次実行するにあたり、データ転送が完了してビジー状態が解除された時点からカウンタが所定のリトライ応答回数をカウントするまで、リトライ応答させるための制御信号を出力し、この制御信号に従ってリトライ応答する。このようにすることで、ラウンドロビン方式等のバス調停において、複数のイニシエータが同一のターゲットデバイス3に対して継続的にデータ転送する際、ターゲットデバイス3がビジー状態になるタイミングによって特定のイニシエータのトランザクションのみがリトライされ続ける不具合を解消することができる。また、ターゲット装置に簡易な構成を追加するだけで、上記効果を有するシステムを実現できるという効果がある。
【発明を実施するための最良の形態】
【0021】
実施の形態1.
図1は、この発明の実施の形態1によるデータ転送システムの構成を示すブロック図であり、ラウンドロビン方式のバス調停を行う構成を示している。図1において、実施の形態1によるデータ転送システム1は、イニシエータA,B、バス調停部2、及びイニシエータA,BとPCIバス7を介して接続するターゲットデバイス3を備える。また、本発明における特徴的な構成として、ターゲットデバイス3のPCIインタフェース部4に、バス制御部5及びリトライ挿入部6を設ける。
【0022】
イニシエータ(イニシエータ装置)A,Bは、PCIバス7を介してデータ転送するデバイスである。バス調停部2は、PCIバス7に接続するイニシエータA,BのうちのいずれにPCIバス7の使用権を与えるのかを決定し、ラウンドロビン方式でバス使用権の調停を行う。
【0023】
バス使用要求REQ#1〜REQ#3は、PCIバス7のバス使用権を取得するためのリクエスト信号であり、バス使用権GNT#1〜GNT#3は、バス調停によってPCIバス7の使用権を与えるためのグラント信号である。バス使用要求REQ#3及びバス使用権GNT#3は、ターゲットデバイス3がイニシエータA,B側へデータ転送する際のリクエスト信号及びグラント信号である。
【0024】
ターゲットデバイス(ターゲット装置)3は、PCIインタフェース部4により、PCIバス7を介してイニシエータA若しくはイニシエータBとの間でデータを送受信する。PCIインタフェース部4は、PCIバス7との入出力インタフェースを制御する構成要素であり、バス制御部5及びリトライ挿入部6を有する。
【0025】
バス制御部5は、PCIバス7からのデータ転送要求と自ターゲットデバイス3のビジー状態とをリトライ挿入部6へ通知し、リトライ挿入部6からのビジー情報(図2で後述するBUSY2信号)に基づいて、トランザクションを受けるかリトライするかを決定する。
【0026】
リトライ挿入部6は、リトライ応答回数を保持するレジスタを有し、バス制御部5から通知された情報に基づいて、トランザクションをリトライ応答するか否かを決定するとともに、リトライ応答回数を制御する。
【0027】
図2は、図1中のターゲットデバイスの構成を概略的に示すブロック図であり、PCIインタフェース部とデバイス内の他の機能部との関係を示している。図2において、機能部8は、PCIバス7を介してイニシエータA若しくはイニシエータBから受信したデータを処理する構成要素であり、トランザクションの処理のためにビジー状態になっているか否かをバス制御部5によって監視される。
【0028】
バス制御部5は、PCIバス7と機能部8との間のインタフェースとして、ターゲットインタフェース部9及びイニシエータインタフェース部10を備える。ターゲットインタフェース部9は、PCIバス7側から機能部8へのトランザクションを受信するためのインタフェースであり、バス11及び信号線14を介して機能部8と接続している。
【0029】
バス11は、PCIバス7側から受信したトランザクションを機能部8へ伝達するバスであり、信号線14は、PCIバス7を介してイニシエータA,Bから受信したデータ転送要求REQ信号を機能部8及びリトライ挿入部6側へ伝える信号線である。
【0030】
イニシエータインタフェース部10は、機能部8からのトランザクションをPCIバス7側(イニシエータA,B側)へ送信するためのインタフェースであり、バス12を介して機能部8と接続している。バス12は、機能部8からのトランザクションをPCIバス7側へ発行するバスである。
【0031】
また、リトライ挿入部6は、リトライ制御部16、リトライカウンタ17及びリトライ回数格納レジスタ18を備える。リトライ制御部16は、データ転送要求REQ信号、機能部8がビジー状態であることを示すBUSY1信号、リトライカウンタ17のカウント値、及びリトライ回数格納レジスタ18の値を入力し、図3を用いて後述する真理値表に基づいて、PCIバス7側へリトライ応答を行うためのBUSY2信号を決定し、リトライカウンタ17の値を更新する。
【0032】
リトライカウンタ17は、リトライ応答した回数が設定されるレジスタであり、リトライ応答する度に回数値がデクリメントされ、データ転送のトランザクションを受ける度にリトライ回数格納レジスタ18の値で初期化される。リトライ回数格納レジスタ18は、リトライ応答する回数が初期値(リトライカウンタ17によるカウントの目標値)として固定的に設定される。
【0033】
リトライ回数格納レジスタ18の初期値は、PCIバス7上にあるイニシエータとなるデバイス(バス使用権を得てターゲットデバイスに同時にアクセス可能なデバイス)の数によって決まり、デバイス数−1となる。例えば、バス7上に7つのイニシエータがあり、そのうち3つのイニシエータが同時にターゲットデバイスにアクセスすることが予め把握されている場合、リトライ回数格納レジスタ18の初期値は、3−1=2となる。
【0034】
信号線13は、ターゲットインタフェース部9とリトライ制御部16との間を接続し、リトライ制御部16で生成されたBUSY2信号をターゲットインタフェース部9へ伝える信号線である。信号線15は、機能部8とリトライ制御部16との間を接続し、機能部8で生成されたBUSY1信号をリトライ制御部16へ伝える信号線である。
【0035】
信号線19は、リトライ制御部16とリトライ回数格納レジスタ18との間を接続し、リトライ制御部16によるリトライ回数格納レジスタ18の値の読み出し、リトライ回数格納レジスタ18への初期値の書き込みを実行するための信号線である。信号線20は、リトライ制御部16とリトライカウンタ17との間を接続し、リトライ制御部16によるリトライカウンタ17の値の読み出し、リトライ回数格納レジスタ18の値の書き込み(初期化)を実行するための信号線である。
【0036】
図3は、図2中のリトライ制御部の動作基準となる真理値表を示す図である。図3において、Xは、リトライカウンタ17に格納された0以外の値(リトライ応答回数のカウント値)を示している。Yは、リトライ回数格納レジスタ18に格納された初期値(リトライカウンタ17によるカウントの目標値)を示している。X−1は、リトライカウンタ17のカウント値を1デクリメントする場合を示している。
【0037】
リトライ制御部16は、データ転送要求REQ信号の論理値、機能部8がビジー状態であることを示すBUSY1信号の論理値、リトライカウンタ17のカウント値、及びリトライ回数格納レジスタ18の値の組み合わせと図3中の真理値表とを比較して、PCIバス7側へリトライ応答を行うためのBUSY2信号の値を決定し、リトライカウンタ17のカウント値を更新する。
【0038】
次に動作について説明する。
図4は、実施の形態1によるデータ転送システムのバス調停動作を示すタイミングチャートである。また、図5は、図2中のターゲットデバイスによる動作の流れを示すフローチャートである。これらは、複数のイニシエータA,Bから同一のターゲットデバイス3に対して継続的にデータ転送を続ける場合を示している。
【0039】
先ず、イニシエータA,Bは、ターゲットデバイス3に対してデータ転送を行うため、バス調停部2に対しバスリクエストREQ#1,REQ#2をアサートする。バス調停部2は、ラウンドロビン方式のバス調停アルゴリズムに基づいて、優先順位の高いイニシエータAへバス使用権GNT#1をアサートし、イニシエータAにPCIバス7の使用権を付与する。この後、イニシエータAは、PCIバス7を介しターゲットデバイス3に対してデータ転送要求REQ信号を送信する。
【0040】
ターゲットデバイス3では、イニシエータAからのデータ転送要求REQ信号をターゲットインタフェース部9が受信する。ターゲットインタフェース部9は、信号線14を介してデータ転送要求REQ信号を機能部8及びリトライ挿入部6のリトライ制御部16へ伝える。
【0041】
リトライ制御部16は、データ転送要求REQ信号の値に基づいて、自ターゲットデバイス3がPCIバス7側からトランザクションを受けているか否かを判定する(ステップST1)。ここで、データ転送要求REQ信号(値0)が入力されており、自ターゲットデバイス3のPCIインタフェース部4がトランザクションを受けていない場合、リトライ制御部16は、ステップST1の処理に戻る。このときの各信号、レジスタの値は、図3に示す真理値表のREQ信号が値0の欄に示す通りである。
【0042】
一方、データ転送要求REQ信号(値1)が入力され、自ターゲットデバイス3のPCIインタフェース部4がトランザクションを受けていると判定すると、リトライ制御部16は、信号線20を介して機能部8から入力されるBUSY1信号の値に基づいて、機能部8がビジー状態であるか否かを判定する(ステップST2)。
【0043】
このとき、機能部8がビジー状態であるならば、リトライ制御部16は、PCIバス7側へリトライ応答を行うためのBUSY2信号を値1(オン)に設定し、ターゲットインタフェース部9を介してPCIバス7側へ送信することにより、リトライ応答する(ステップST3)。この後、リトライ制御部16は、ステップST1の処理に戻る。
【0044】
また、機能部8がビジー状態でない場合、リトライ制御部16は、本発明に特有な処理である図5中に破線で囲った一連の処理Cを実行する。具体的に説明すると、リトライ制御部16は、機能部8がビジー状態でないと判定されると、信号線20を介してリトライカウンタ17のカウント値を読み出し、カウント値が0であるか否かを判定する(ステップST4)。
【0045】
ステップST4において、リトライカウンタ17のカウント値が0であれば、リトライ制御部16は、BUSY2信号に値0を設定してターゲットインタフェース部9へ送信する。ターゲットインタフェース部9は、PCIバス7を介してバス使用権を獲得しているイニシエータに対しデータ転送可能である旨を通知する。これにより、ターゲットデバイス3は、PCIバス7を介したイニシエータからのデータ転送が開始される(ステップST5)。
【0046】
リトライ制御部16は、データ転送が開始されると、図3の真理値表に示すように、リトライ回数格納レジスタ18の値(Y)をリトライカウンタ17に格納して初期化する(ステップST6)。この後、リトライ制御部16は、ステップST1の処理に戻って、上記処理を繰り返す。
【0047】
一方、ステップST4において、リトライカウンタ17のカウント値が0でない場合、リトライ制御部16は、BUSY2信号に値1を設定してターゲットインタフェース部9へ送信する。BUSY2信号(値1)を受けると、ターゲットインタフェース部9は、PCIバス7を介してバス使用権を獲得しているイニシエータに対しリトライ応答する(ステップST7)。
【0048】
次に、リトライ制御部16は、リトライカウンタ17のカウント値を1デクリメント(X−1)する(ステップST8)。この後、リトライ制御部16は、ステップST1の処理に戻って、トランザクションを受けた全てのイニシエータからのデータ転送が終了するまで、上記処理を繰り返す。
【0049】
従来では、機能部8がビジー状態であるならばリトライ応答し、ビジー状態でない場合、イニシエータからのデータ転送を開始していた。これに対し、この実施の形態1によるリトライ制御部16では、リトライカウンタ17のカウント値が0でなければ、機能部8がビジー状態であるか否かに関わらず、イニシエータからのトランザクションをリトライ応答する。
【0050】
このように、リトライカウンタ17には、リトライ回数格納レジスタ18の初期値が設定され、この値が0になるまで、PCIバス7の使用権を獲得したいずれのイニシエータからのデータ転送要求があってもリトライ応答する。なお、上記初期値は、デバイス数(バス使用権を得てイニシエータとなり得るデバイスの最大数)−1であり、図4の例では、初期値(リトライ回数)が1となる。
【0051】
図4では、ターゲットデバイス3が、始めにイニシエータAからのトランザクション(データ転送)を受け、機能部8がビジー状態になる。このとき、イニシエータBからのデータ転送要求があっても、ターゲットデバイス3は、イニシエータAからのデータ転送を処理するためにリトライ応答する(図5中のステップST3)。
【0052】
また、リトライカウンタ17のカウント値0でイニシエータAからのデータ転送が開始されるが、データ転送開始後に、リトライ制御部16が、リトライ回数格納レジスタ18の値(図4の例では1)をリトライカウンタ17に設定する。
【0053】
これにより、機能部8がイニシエータAからの当初のトランザクション処理を完了してビジー状態ではなくなり、引き続きイニシエータAからデータ転送要求があっても、リトライカウンタ17のカウント値(リトライ回数)が1であることから、リトライ制御部16は、イニシエータAにリトライ応答する(図5中のステップST8)。このとき、ターゲットデバイス3は、図4に示すように、ビジー状態ではないが、イニシエータAからのデータ転送を受けないレディ状態となる。
【0054】
イニシエータAにリトライ応答すると、リトライ制御部16は、リトライカウンタ17のカウント値(リトライ回数)を1デクリメントする。図4の例では、初期値が1であることから、カウント値が0となる。この後、ターゲットデバイス3が、イニシエータBからのトランザクション(データ転送)を受けると、機能部8がビジー状態でなく(レディ状態)、かつ、リトライカウンタ17のカウント値が0であるため、イニシエータBからのデータ転送が開始される。これにより、機能部8は、イニシエータBからのデータ転送を処理する。
【0055】
従来では、イニシエータAのトランザクションを受けたターゲットデバイスは、その次のタイミングで必ずビジー状態となり、結果として次にトランザクションを開始するイニシエータBがリトライ応答を受け続けることになっていたが、本発明では、図4に示すように、イニシエータAのトランザクションをリトライ応答することで、次のイニシエータBのトランザクションをレディ状態で応答することが可能となる。
【0056】
上記説明では、PCIバス7上に2つのイニシエータA,Bが存在する場合を述べたが、イニシエータが3つ以上ある場合であっても同様に処理することが可能である。例えば、イニシエータA〜Cの3つある場合(初期値2)であり、ラウンドロビン方式のバス調停でイニシエータAの優先順位が最も高く、続いてイニシエータB、その次がイニシエータCであるものとする。
【0057】
先ず、リトライカウンタ17のカウント値が0であると、イニシエータAからのデータ転送が開始され、機能部8は、イニシエータAとのデータ転送処理のためにビジー状態となる。このとき、イニシエータBからデータ転送要求があっても、機能部8がビジー状態であるため、イニシエータBは、リトライ応答される。
【0058】
また、上記データ転送が開始されると、リトライカウンタ17にはカウント値2が設定され、イニシエータAについてのリトライ回数格納レジスタ18の値は1デクリメントされて1となる。なお、イニシエータB,Cについてのリトライ回数格納レジスタ18の値は初期値2のままである。
【0059】
機能部8は、イニシエータAのデータ転送処理を完了するとビジー状態ではなくなる。このとき、イニシエータCがデータ転送要求すると、リトライカウンタ17にはカウント値2が設定されているので、イニシエータCはリトライ応答される。これにより、リトライカウンタ17のカウント値は1デクリメントされて1となる。
【0060】
この後、イニシエータAが、引き続きデータ転送要求しても、リトライカウンタ17にはカウント値1が設定されていることから、イニシエータAはリトライ応答される。これにより、リトライカウンタ17のカウント値は1デクリメントされて0となる。つまり、機能部8のレディ状態で、イニシエータC,Aはリトライ応答される。
【0061】
続いて、イニシエータBからデータ転送要求があると、機能部8がビジー状態でなく、かつリトライカウンタ17のカウント値が0であるので、イニシエータBからのデータ転送が開始される。このとき、イニシエータCからデータ転送要求があっても、機能部8がビジー状態であるため、イニシエータCはリトライ応答される。また、上記データ転送が開始されると、イニシエータCについてのリトライ回数格納レジスタ18の値2がリトライカウンタ17のカウント値として設定される。
【0062】
イニシエータBのデータ転送処理を完了すると、機能部8はビジー状態ではなくなる。このとき、イニシエータAがデータ転送要求しても、リトライカウンタ17にはカウント値2が設定されていることから、イニシエータAはリトライ応答される。これにより、リトライカウンタ17のカウント値は1デクリメントされて1となる。
【0063】
この後、イニシエータBが、引き続きデータ転送要求しても、リトライカウンタ17にはカウント値1が設定されていることから、イニシエータBはリトライ応答される。これにより、リトライカウンタ17のカウント値は1デクリメントされて0となる。つまり、機能部8のレディ状態で、イニシエータA,Bはリトライ応答される。
【0064】
続いて、イニシエータCからデータ転送要求があると、機能部8がビジー状態でなく、かつリトライカウンタ17のカウント値が0であるので、イニシエータCからのデータ転送が開始される。このとき、イニシエータAからデータ転送要求があっても、機能部8がビジー状態であるため、イニシエータAはリトライ応答される。また、上記データ転送が開始されると、イニシエータAについてのリトライ回数格納レジスタ18の値2がリトライカウンタ17のカウント値として設定される。
【0065】
イニシエータCのデータ転送処理を完了すると、機能部8はビジー状態ではなくなる。このとき、イニシエータAがデータ転送要求しても、リトライカウンタ17にはカウント値2が設定されていることから、イニシエータAはリトライ応答される。これにより、リトライカウンタ17のカウント値は1デクリメントされて1となる。
【0066】
このように、ターゲットデバイス3がデータ転送を行う度にリトライ応答回数のカウント値が変化する。逆に言えば、データ転送を行うタイミングが変動する。このため、複数のイニシエータが同じタイミングで交互にバス使用権を取得してターゲットデバイス3へデータ転送を行う場合であっても、特定のパターンにはまりこむことがなくなり、特定のイニシエータが常にリトライ応答を受ける状況を回避できる。
【0067】
また、上述したように、本発明は、ターゲットデバイス3のPCIインタフェース部4に、PCIバス7とのインタフェースとなるバス制御部5と、入力された信号値とレジスタの値の簡単な比較によってリトライ応答すべきか否かを決定するリトライ挿入部6を設けるだけで実現可能である。
【0068】
例えば、既製品のホストブリッジとFPGA(Field Programmable Gate Array)等のプログラマブルデバイスで構成したPCIデバイスとを組み合わせて、本発明によるデータ転送システムを実現する場合、FPGAのPCIインタフェース部に上記構成(バス制御部5及びリトライ挿入部6)を組み込むことで、データ転送機会の平準化を図ることが可能となる。
【0069】
以上のように、この実施の形態1によれば、ターゲットデバイス3が、所定のリトライ応答回数をカウントするリトライカウンタ17を有し、複数のイニシエータA,Bの各々との間でデータ転送を逐次実行するにあたり、データ転送が完了してビジー状態が解除された時点からリトライカウンタ17が所定のリトライ応答回数をカウントするまで、リトライ応答させるための制御信号を出力し、この制御信号に従ってリトライ応答する。このようにすることで、複数のイニシエータが同一のターゲットデバイス3に対して継続的にデータ転送する際、ターゲットデバイス3がビジー状態になるタイミングによって特定のイニシエータのトランザクションのみがリトライされ続ける不具合を解消することができる。
【0070】
また、バスインタフェースやレジスタ及び比較回路等の簡単な回路で実現可能なバス制御部5及びリトライ挿入部6をターゲットデバイス3に設けるだけで、上述のような効果を有するデータ転送システム1を実現することができる。これにより、既製品のホストブリッジに内蔵されるバス調停回路を利用することができ、実装の容易さ、低コスト化、汎用性の向上を図ることができる。
【図面の簡単な説明】
【0071】
【図1】この発明の実施の形態1によるデータ転送システムの構成を示すブロック図である。
【図2】図1中のターゲットデバイスの構成を概略的に示すブロック図である。
【図3】図2中のリトライ制御部の動作基準となる真理値表を示す図である。
【図4】実施の形態1によるデータ転送システムのバス調停動作を示すタイミングチャートである。
【図5】図2中のターゲットデバイスによる動作の流れを示すフローチャートである。
【図6】PCIバスにおける従来のデータ転送システム構成を概略的に示すブロック図である。
【図7】図6中のデータ転送システムによるバス調停動作を示すタイミングチャートである。
【符号の説明】
【0072】
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】
イニシエータ装置とターゲット装置がバスを介して接続され、前記イニシエータ装置と前記ターゲット装置との間でデータ転送するデータ転送システムにおいて、
前記ターゲット装置は、
所定のリトライ応答回数をカウントするカウンタを有し、複数のイニシエータ装置の各々との間でデータ転送を逐次実行するにあたり、データ転送が完了してビジー状態が解除された時点から前記カウンタが前記所定のリトライ応答回数をカウントするまで、リトライ応答させるための制御信号を出力するリトライ挿入部と、
前記リトライ挿入部から入力した前記制御信号に従って、前記イニシエータ装置にリトライ応答するバス制御部とを備えたことを特徴とするデータ転送システム。
【請求項2】
所定のリトライ応答回数は、ターゲット装置とデータ通信するイニシエータ装置の数−1であることを特徴とする請求項1記載のデータ転送システム。
【請求項3】
バスを介してイニシエータ装置と接続し、前記イニシエータ装置との間でデータ通信するターゲット装置において、
所定のリトライ応答回数をカウントするカウンタを有し、複数のイニシエータ装置の各々との間でデータ転送を逐次実行するにあたり、データ転送が完了してビジー状態が解除された時点から前記カウンタが前記所定のリトライ応答回数をカウントするまで、リトライ応答させるための制御信号を出力するリトライ挿入部と、
前記リトライ挿入部から入力した前記制御信号に従って、前記イニシエータ装置にリトライ応答するバス制御部とを備えたことを特徴とするターゲット装置。
【請求項4】
所定のリトライ応答回数は、ターゲット装置とデータ通信するイニシエータ装置の数−1であることを特徴とする請求項3記載のターゲット装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2009−277000(P2009−277000A)
【公開日】平成21年11月26日(2009.11.26)
【国際特許分類】
【出願番号】特願2008−127392(P2008−127392)
【出願日】平成20年5月14日(2008.5.14)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】