説明

PCIデータ転送装置

【課題】ハードウェアに最も負荷のかかる競合状態で転送処理の限界を検証し、リトライ時間の最適値を見極め、トータル処理時間を短縮することが可能なPCIデータ転送装置を実現する。
【解決手段】PCIバスを介して複数のPCIデバイス間でデータを送受信するPCIデータ転送装置において、複数のPCIデバイスのそれぞれの転送タイミングの競合状態を発生させ、リトライ時間の最適値を求めて転送タイミングを制御する同期制御部を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、PCI(Peripheral Component Interconnect)バスを介して複数のPCIデバイス間でデータを送受信するPCIデータ転送装置に関し、特にハードウェアに最も負荷のかかる競合状態で転送処理の限界を検証し、リトライ時間の最適値を見極め、トータル処理時間を短縮することが可能なPCIデータ転送装置に関する。
【背景技術】
【0002】
PCIバスは、パソコンやワークステーション等に実装されるカード間を結ぶバスとして広く採用されている。バス幅は32ビットまたは64ビットで、高速のデバイスのデータ転送に対応した規格となっている。
【0003】
PCIバスは大量のデータを高速に転送する部分に用いられ、本発明においては、例えば、メモリデバイス等を試験する半導体試験装置のフェイルメモリ部に使用される。このフェイルメモリでは、被試験デバイス(DUT(Device Under Test))の試験に基づいて得られた大量のパス/フェイルのデータを高速に転送する。
【0004】
従来のPCIデータ転送装置に関連する先行技術文献としては次のようなものがある。
【0005】
【特許文献1】特開平10−149335号公報
【0006】
図5はこのような従来のPCIデータ転送装置を示す構成ブロック図である。図5において、転送制御部1および転送制御部3はFPGA(Field Programmable Gate Array)等で構成され、PCIバス60とのI/F機能を有し、バス権の要求/取得等の制御を行う。FIFO(First-In First-Out)2およびFIFO4は転送するデータを一時的に記憶しておくメモリである。バッファメモリ5は転送されてきたデータを記憶するメモリである。
【0007】
転送制御部1のFIFO制御信号出力端子はFIFO2の制御信号入力端子に接続され、FIFO2のデータ出力端子はPCIバス60に接続される。転送制御部1のバス制御信号出力端子はPCIバス60に接続され、PCIバス60からの制御信号は転送制御部1のバス制御信号入力端子に入力される。
【0008】
転送制御部3のFIFO制御信号出力端子はFIFO4の制御信号入力端子に接続され、FIFO4のデータ出力端子はPCIバス60に接続される。転送制御部3のバス制御信号出力端子はPCIバス60に接続され、PCIバス60からの制御信号は転送制御部3のバス制御信号入力端子に入力される。
【0009】
転送制御部1およびFIFO2はPCIデバイス50を構成し、転送制御部3およびFIFO4はPCIデバイス51を構成する。また、バッファメモリ5はPCIデバイス52に実装される。PCIデバイス50、PCIデバイス51、PCIデバイス52およびPCIバス60はPCIデータ転送装置100を構成する。
【0010】
図5に示す従来例の動作を図6を用いて説明する。図6はデータ転送処理を説明する説明図である。PCIデバイス50のFIFO2およびPCIデバイス51のFIFO4にはそれぞれ別々の転送データが一時的に記憶されている。また、PCIデバイス50とPCIデバイス51のそれぞれの転送処理は独立しており、非同期である。
【0011】
PCIデバイス50がPCIデバイス52にデータを転送する場合、まず、転送制御部1がPCIバス60のバス権を取得する。そして、転送制御部1からFIFO2に対して転送制御信号Caが出力され、この転送制御信号Caを受信したFIFO2は転送データDaを送信する。転送データDaはPCIバス60を介してPCIデバイス52で受信され、バッファメモリ5に記憶される。これらの一連の動作を転送処理という。
【0012】
同様に、PCIデバイス51がPCIデバイス52にデータを転送する場合、まず、転送制御部3がPCIバス60のバス権を取得する。そして、転送制御部3からFIFO4に対して転送制御信号Cbが出力され、この転送制御信号Cbを受信したFIFO4は転送データDbを送信する。転送データDbはPCIバス60を介してPCIデバイス52で受信され、バッファメモリ5に記憶される。
【0013】
図6において、上段はPCIデバイス50の転送処理a1〜a4を表し、下段はPCIデバイス51の転送処理b1〜b4を表している。転送処理の競合を避けるため、PCIデバイス50とPCIデバイス51は各々タイマ(図示せず)を内蔵して転送処理のリトライ時間を調整している。一般に、リトライ時間は競合が発生しにくいように十分余裕のある設定としている。
【0014】
具体的には、図6において、PCIデバイス50の転送処理a1が終わった後に、十分な間隔を空けてPCIデバイス51の転送処理b1が開始される。そして、転送処理a2→b2→a3→b3→a4→b4が順次行われ、転送処理のトータル処理時間がT0となる。なお、転送処理a1の開始〜a2の開始までの時間(処理間隔)がPCIデバイス50のタイマに設定されているリトライ時間となる。
【0015】
この結果、PCIデバイス50の転送処理とPCIデバイス51の転送処理が十分な間隔を空けて行われることにより、転送処理の競合状態が発生しにくくなるので、滞りなくデータの転送をすることが可能になる。
【発明の開示】
【発明が解決しようとする課題】
【0016】
しかし、図5及び図6に示す従来例では、リトライ時間の設定値が最適でないと不要な処理待ちが増え、トータル処理時間が長くなり、転送効率が下がるという問題点があった。
【0017】
また、リトライ時間の最適値を見極めるためには、転送処理の限界、すなわち、リトライ時間を短くしていった場合に正常にデータ転送可能な時間を検証する必要があるが、ソフトウェアで競合状態を発生させる検証方式では、ハードウェアにとって最も負荷のかかる状態を作り出すことが困難で、転送処理の限界を検証するには不十分であった。
従って本発明が解決しようとする課題は、ハードウェアに最も負荷のかかる競合状態で転送処理の限界を検証し、リトライ時間の最適値を見極め、トータル処理時間を短縮することが可能なPCIデータ転送装置を実現することにある。
【課題を解決するための手段】
【0018】
このような課題を達成するために、本発明のうち請求項1記載の発明は、
PCIバスを介して複数のPCIデバイス間でデータを送受信するPCIデータ転送装置において、
前記複数のPCIデバイスのそれぞれの転送タイミングの競合状態を発生させ、リトライ時間の最適値を求めて前記転送タイミングを制御する同期制御部を備えたことを特徴とする。
【0019】
請求項2記載の発明は、
請求項1記載のPCIデータ転送装置において、
前記PCIデバイスが、
前記転送するデータを一時的に記憶するFIFOメモリと、バスI/F機能を有すると共に前記FIFOを制御する転送制御部とから構成されることを特徴とする。
【0020】
請求項3記載の発明は、
請求項1または請求項2に記載のPCIデータ転送装置において、
前記同期制御部が、
前記リトライ時間を測定するカウンタを有することを特徴とする。
【0021】
請求項4記載の発明は、
請求項1〜3のいずれかに記載のPCIデータ転送装置において、
前記同期制御部が、
前記競合状態を連続的に発生させることを特徴とする。
【0022】
請求項5記載の発明は、
請求項4記載のPCIデータ転送装置において、
前記同期制御部が、
前記発生させる競合状態の連続数を可変できることを特徴とする。
【発明の効果】
【0023】
本発明によれば次のような効果がある。
請求項1〜5の発明によれば、PCIバスを介して複数のPCIデバイス間でデータを送受信するPCIデータ転送装置において、複数のPCIデバイスのそれぞれの転送タイミングの競合状態を発生させ、リトライ時間の最適値を求めて転送タイミングを制御する同期制御部を備えたことにより、ハードウェアに最も負荷のかかる競合状態で転送処理の限界を検証してリトライ時間の最適値を求められるので、不要な処理待ちが無くなり、トータル処理時間を短縮することが可能になる。
【発明を実施するための最良の形態】
【0024】
以下本発明を図面を用いて詳細に説明する。図1は本発明に係るPCIデータ転送装置の一実施例を示す構成ブロック図であり、図5と共通する部分には同一の符号を付けている。
【0025】
図1において、同期制御部6はPCIデバイス50とPCIデバイス51の転送処理のタイミングを制御する。同期制御部6の一方の出力端子は転送制御部1の同期信号入力端子に接続され、同期制御部6の他方の出力端子は転送制御部3の同期信号入力端子に接続される。その他の接続に関しては、図5に示す従来例と同じため、説明を省略する。
【0026】
同期制御部6、PCIデバイス50、PCIデバイス51、PCIデバイス52およびPCIバス60はPCIデータ転送装置101を構成する。
【0027】
図1に示す実施例の動作を図2および図3を用いて説明する。図2および図3はデータ転送処理を説明する説明図である。まず、同期制御部6はPCIデバイス50およびPCIデバイス51の転送処理のタイミングを同期させることにより、競合状態を発生させる。
【0028】
具体的には、図2に示すように、PCIデバイス50の転送処理a1とPCIデバイス51の転送処理b1を競合させる。転送処理b1は、転送処理a1よりわずかに早く処理が開始されたため、PCIデバイス51がPCIバス60のバス権を取得し、そのまま処理を続ける。
【0029】
一方、転送処理a1は、転送処理b1が終了するまで処理の実行を待ち、転送処理b1終了後に処理を実行する。この時、同期制御部6は転送処理a1が処理待ちしている時間(以下、待ち時間という)Taを測定する。例えば、同期制御部6内に一定周期のクロックで動作するカウンタを持ち、このカウンタで待ち時間を測定する。
【0030】
また、実際には、PCIデバイス50とPCIデバイス51の転送処理にかかる時間が同じとは限らない。同期制御部6は転送処理a1を先に実行させ、転送処理b1を処理待ちさせるように制御し、この時の待ち時間Tbを測定する。そして、待ち時間Taと待ち時間Tbを比較し、時間の大きい方をリトライ時間の最適値とする。
【0031】
求められたリトライ時間の最適値は、同期制御部6により、PCIデバイス50の転送制御部1およびPCIデバイス51の転送制御部3に設定される。
【0032】
次に、競合状態を連続で発生させ、この時の動作を検証する。例えば、図2に示すように、同期制御部6はPCIデバイス50の転送処理a2とPCIデバイス51の転送処理b2〜b4を競合させるように制御する。PCIデバイス50の転送処理a2が転送処理b2〜b4の連続処理の後に実行され、PCIデバイス50の競合制御が正常に機能していることが確認できる。
【0033】
この場合、PCIデバイス51のFIFO4に転送データを書き込み、同期制御部6がPCIデバイス51の転送制御部3に転送処理の繰り返し回数を設定することにより、連続処理の状態を発生させている。
【0034】
ソフトウェアでは、このような競合状態をタイミング良く発生させることは難しいが、ハードウェアの同期制御部6により、PCIデバイス50とPCIデバイス51を同期化することで実現可能となる。
【0035】
図2で求めたリトライ時間の最適値をPCIデバイス50およびPCIデバイス51に設定した場合の転送処理動作を図3に示す。転送処理a1→b1→a2→b2→a3→b3→a4→b4の間には従来例に示すような不要な処理待ちは無く、トータル処理時間T1も従来のトータル処理時間T0に比べて非常に短縮されている。
【0036】
この結果、同期制御部6がPCIデバイス50およびPCIデバイス51の転送処理のタイミングを同期させることにより、競合状態を発生させて処理時間を測定し、リトライ時間の最適値を求める。そして、この最適値をPCIデバイス50およびPCIデバイス51に設定して競合制御させることにより、不要な処理待ちが無くなるので、トータル処理時間を短縮することが可能になる。
【0037】
なお、図1に示す実施例においては、同期制御部6で同期化するPCIデバイスが2つであったが、必ずしもこのように限定されるものではなく、同期化するPCIデバイスが3つ以上あってもよい。
【0038】
また、図2に示す実施例においては、転送処理b2〜b4に示すように固定的に競合を連続発生させていたが、より複雑な競合状態を発生させることも可能である。この場合の動作を図4を用いて説明する。図4は競合の連続数を変化させた場合のデータ転送処理を説明する説明図である。
【0039】
図4に示す実施例では、PCIデバイス51の転送処理の連続数を1→2→3→2→1と変化させている場合を示している。具体的には、転送処理b1(連続数1)→転送処理b2およびb3(連続数2)→転送処理b4、b5およびb6(連続数3)→転送処理b7およびb8(連続数2)→転送処理b9(連続数1)と変化させている。
【0040】
一方、PCIデバイス50の転送処理a1〜a5はPCIデバイス51の転送処理の後にそれぞれ実行され、PCIデバイス50の競合制御が正常に機能していることが確認できる。
【0041】
この場合、PCIデバイス51のFIFO4に転送データを書き込み、同期制御部6がPCIデバイス51の転送制御部3に転送処理の連続数の最小値、最大値および連続数を変化させる変化幅を設定することにより、連続数を変化させた競合状態を発生させている。
【図面の簡単な説明】
【0042】
【図1】本発明に係るPCIデータ転送装置の一実施例を示す構成ブロック図である。
【図2】データ転送処理を説明する説明図である。
【図3】データ転送処理を説明する説明図である。
【図4】競合の連続数を変化させた場合のデータ転送処理を説明する説明図である。
【図5】従来のPCIデータ転送装置を示す構成ブロック図である。
【図6】データ転送処理を説明する説明図である。
【符号の説明】
【0043】
1,3 転送制御部
2,4 FIFO
5 バッファメモリ
6 同期制御部
50,51,52 PCIデバイス
60 PCIバス
100,101 PCIデータ転送装置

【特許請求の範囲】
【請求項1】
PCIバスを介して複数のPCIデバイス間でデータを送受信するPCIデータ転送装置において、
前記複数のPCIデバイスのそれぞれの転送タイミングの競合状態を発生させ、リトライ時間の最適値を求めて前記転送タイミングを制御する同期制御部を備えたことを特徴とするPCIデータ転送装置。
【請求項2】
前記PCIデバイスが、
前記転送するデータを一時的に記憶するFIFOメモリと、
バスI/F機能を有すると共に前記FIFOを制御する転送制御部とから構成されることを特徴とする
請求項1記載のPCIデータ転送装置。
【請求項3】
前記同期制御部が、
前記リトライ時間を測定するカウンタを有することを特徴とする
請求項1または請求項2に記載のPCIデータ転送装置。
【請求項4】
前記同期制御部が、
前記競合状態を連続的に発生させることを特徴とする
請求項1〜3のいずれかに記載のPCIデータ転送装置。
【請求項5】
前記同期制御部が、
前記発生させる競合状態の連続数を可変できることを特徴とする
請求項4記載のPCIデータ転送装置

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate