(57)【要約】【課題】ハードウェアに最も負荷のかかる競合状態で転送処理の限界を検証し、リトライ時間の最適値を見極め、トータル処理時間を短縮することが可能なＰＣＩデータ転送装置を実現する。【解決手段】ＰＣＩバスを介して複数のＰＣＩデバイス間でデータを送受信するＰＣＩデータ転送装置において、複数のＰＣＩデバイスのそれぞれの転送タイミングの競合状態を発生させ、リトライ時間の最適値を求めて転送タイミングを制御する同期制御部を備える。【選択図】  図１
2009026132.tif 000002
【特許請求の範囲】
【請求項１】
ＰＣＩバスを介して複数のＰＣＩデバイス間でデータを送受信するＰＣＩデータ転送装置において、
前記複数のＰＣＩデバイスのそれぞれの転送タイミングの競合状態を発生させ、リトライ時間の最適値を求めて前記転送タイミングを制御する同期制御部を備えたことを特徴とするＰＣＩデータ転送装置。
【請求項２】
前記ＰＣＩデバイスが、
前記転送するデータを一時的に記憶するＦＩＦＯメモリと、
バスＩ／Ｆ機能を有すると共に前記ＦＩＦＯを制御する転送制御部とから構成されることを特徴とする
請求項１記載のＰＣＩデータ転送装置。
【請求項３】
前記同期制御部が、
前記リトライ時間を測定するカウンタを有することを特徴とする
請求項１または請求項２に記載のＰＣＩデータ転送装置。
【請求項４】
前記同期制御部が、
前記競合状態を連続的に発生させることを特徴とする
請求項１〜３のいずれかに記載のＰＣＩデータ転送装置。
【請求項５】
前記同期制御部が、
前記発生させる競合状態の連続数を可変できることを特徴とする
請求項４記載のＰＣＩデータ転送装置
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＰＣＩ（Peripheral Component Interconnect）バスを介して複数のＰＣＩデバイス間でデータを送受信するＰＣＩデータ転送装置に関し、特にハードウェアに最も負荷のかかる競合状態で転送処理の限界を検証し、リトライ時間の最適値を見極め、トータル処理時間を短縮することが可能なＰＣＩデータ転送装置に関する。
【背景技術】
【０００２】
ＰＣＩバスは、パソコンやワークステーション等に実装されるカード間を結ぶバスとして広く採用されている。バス幅は３２ビットまたは６４ビットで、高速のデバイスのデータ転送に対応した規格となっている。
【０００３】
ＰＣＩバスは大量のデータを高速に転送する部分に用いられ、本発明においては、例えば、メモリデバイス等を試験する半導体試験装置のフェイルメモリ部に使用される。このフェイルメモリでは、被試験デバイス（ＤＵＴ（Device Under Test））の試験に基づいて得られた大量のパス／フェイルのデータを高速に転送する。
【０００４】
従来のＰＣＩデータ転送装置に関連する先行技術文献としては次のようなものがある。
【０００５】
【特許文献１】特開平１０−１４９３３５号公報
【０００６】
図５はこのような従来のＰＣＩデータ転送装置を示す構成ブロック図である。図５において、転送制御部１および転送制御部３はＦＰＧＡ（Field Programmable Gate Array）等で構成され、ＰＣＩバス６０とのＩ／Ｆ機能を有し、バス権の要求／取得等の制御を行う。ＦＩＦＯ（First-In First-Out）２およびＦＩＦＯ４は転送するデータを一時的に記憶しておくメモリである。バッファメモリ５は転送されてきたデータを記憶するメモリである。
【０００７】
転送制御部１のＦＩＦＯ制御信号出力端子はＦＩＦＯ２の制御信号入力端子に接続され、ＦＩＦＯ２のデータ出力端子はＰＣＩバス６０に接続される。転送制御部１のバス制御信号出力端子はＰＣＩバス６０に接続され、ＰＣＩバス６０からの制御信号は転送制御部１のバス制御信号入力端子に入力される。
【０００８】
転送制御部３のＦＩＦＯ制御信号出力端子はＦＩＦＯ４の制御信号入力端子に接続され、ＦＩＦＯ４のデータ出力端子はＰＣＩバス６０に接続される。転送制御部３のバス制御信号出力端子はＰＣＩバス６０に接続され、ＰＣＩバス６０からの制御信号は転送制御部３のバス制御信号入力端子に入力される。
【０００９】
転送制御部１およびＦＩＦＯ２はＰＣＩデバイス５０を構成し、転送制御部３およびＦＩＦＯ４はＰＣＩデバイス５１を構成する。また、バッファメモリ５はＰＣＩデバイス５２に実装される。ＰＣＩデバイス５０、ＰＣＩデバイス５１、ＰＣＩデバイス５２およびＰＣＩバス６０はＰＣＩデータ転送装置１００を構成する。
【００１０】
図５に示す従来例の動作を図６を用いて説明する。図６はデータ転送処理を説明する説明図である。ＰＣＩデバイス５０のＦＩＦＯ２およびＰＣＩデバイス５１のＦＩＦＯ４にはそれぞれ別々の転送データが一時的に記憶されている。また、ＰＣＩデバイス５０とＰＣＩデバイス５１のそれぞれの転送処理は独立しており、非同期である。
【００１１】
ＰＣＩデバイス５０がＰＣＩデバイス５２にデータを転送する場合、まず、転送制御部１がＰＣＩバス６０のバス権を取得する。そして、転送制御部１からＦＩＦＯ２に対して転送制御信号Ｃａが出力され、この転送制御信号Ｃａを受信したＦＩＦＯ２は転送データＤａを送信する。転送データＤａはＰＣＩバス６０を介してＰＣＩデバイス５２で受信され、バッファメモリ５に記憶される。これらの一連の動作を転送処理という。
【００１２】
同様に、ＰＣＩデバイス５１がＰＣＩデバイス５２にデータを転送する場合、まず、転送制御部３がＰＣＩバス６０のバス権を取得する。そして、転送制御部３からＦＩＦＯ４に対して転送制御信号Ｃｂが出力され、この転送制御信号Ｃｂを受信したＦＩＦＯ４は転送データＤｂを送信する。転送データＤｂはＰＣＩバス６０を介してＰＣＩデバイス５２で受信され、バッファメモリ５に記憶される。
【００１３】
図６において、上段はＰＣＩデバイス５０の転送処理ａ１〜ａ４を表し、下段はＰＣＩデバイス５１の転送処理ｂ１〜ｂ４を表している。転送処理の競合を避けるため、ＰＣＩデバイス５０とＰＣＩデバイス５１は各々タイマ（図示せず）を内蔵して転送処理のリトライ時間を調整している。一般に、リトライ時間は競合が発生しにくいように十分余裕のある設定としている。
【００１４】
具体的には、図６において、ＰＣＩデバイス５０の転送処理ａ１が終わった後に、十分な間隔を空けてＰＣＩデバイス５１の転送処理ｂ１が開始される。そして、転送処理ａ２→ｂ２→ａ３→ｂ３→ａ４→ｂ４が順次行われ、転送処理のトータル処理時間がＴ０となる。なお、転送処理ａ１の開始〜ａ２の開始までの時間（処理間隔）がＰＣＩデバイス５０のタイマに設定されているリトライ時間となる。
【００１５】
この結果、ＰＣＩデバイス５０の転送処理とＰＣＩデバイス５１の転送処理が十分な間隔を空けて行われることにより、転送処理の競合状態が発生しにくくなるので、滞りなくデータの転送をすることが可能になる。
【発明の開示】
【発明が解決しようとする課題】
【００１６】
しかし、図５及び図６に示す従来例では、リトライ時間の設定値が最適でないと不要な処理待ちが増え、トータル処理時間が長くなり、転送効率が下がるという問題点があった。
【００１７】
また、リトライ時間の最適値を見極めるためには、転送処理の限界、すなわち、リトライ時間を短くしていった場合に正常にデータ転送可能な時間を検証する必要があるが、ソフトウェアで競合状態を発生させる検証方式では、ハードウェアにとって最も負荷のかかる状態を作り出すことが困難で、転送処理の限界を検証するには不十分であった。
従って本発明が解決しようとする課題は、ハードウェアに最も負荷のかかる競合状態で転送処理の限界を検証し、リトライ時間の最適値を見極め、トータル処理時間を短縮することが可能なＰＣＩデータ転送装置を実現することにある。
【課題を解決するための手段】
【００１８】
このような課題を達成するために、本発明のうち請求項１記載の発明は、
ＰＣＩバスを介して複数のＰＣＩデバイス間でデータを送受信するＰＣＩデータ転送装置において、
前記複数のＰＣＩデバイスのそれぞれの転送タイミングの競合状態を発生させ、リトライ時間の最適値を求めて前記転送タイミングを制御する同期制御部を備えたことを特徴とする。
【００１９】
請求項２記載の発明は、
請求項１記載のＰＣＩデータ転送装置において、
前記ＰＣＩデバイスが、
前記転送するデータを一時的に記憶するＦＩＦＯメモリと、バスＩ／Ｆ機能を有すると共に前記ＦＩＦＯを制御する転送制御部とから構成されることを特徴とする。
【００２０】
請求項３記載の発明は、
請求項１または請求項２に記載のＰＣＩデータ転送装置において、
前記同期制御部が、
前記リトライ時間を測定するカウンタを有することを特徴とする。
【００２１】
請求項４記載の発明は、
請求項１〜３のいずれかに記載のＰＣＩデータ転送装置において、
前記同期制御部が、
前記競合状態を連続的に発生させることを特徴とする。
【００２２】
請求項５記載の発明は、
請求項４記載のＰＣＩデータ転送装置において、
前記同期制御部が、
前記発生させる競合状態の連続数を可変できることを特徴とする。
【発明の効果】
【００２３】
本発明によれば次のような効果がある。
請求項１〜５の発明によれば、ＰＣＩバスを介して複数のＰＣＩデバイス間でデータを送受信するＰＣＩデータ転送装置において、複数のＰＣＩデバイスのそれぞれの転送タイミングの競合状態を発生させ、リトライ時間の最適値を求めて転送タイミングを制御する同期制御部を備えたことにより、ハードウェアに最も負荷のかかる競合状態で転送処理の限界を検証してリトライ時間の最適値を求められるので、不要な処理待ちが無くなり、トータル処理時間を短縮することが可能になる。
【発明を実施するための最良の形態】
【００２４】
以下本発明を図面を用いて詳細に説明する。図１は本発明に係るＰＣＩデータ転送装置の一実施例を示す構成ブロック図であり、図５と共通する部分には同一の符号を付けている。
【００２５】
図１において、同期制御部６はＰＣＩデバイス５０とＰＣＩデバイス５１の転送処理のタイミングを制御する。同期制御部６の一方の出力端子は転送制御部１の同期信号入力端子に接続され、同期制御部６の他方の出力端子は転送制御部３の同期信号入力端子に接続される。その他の接続に関しては、図５に示す従来例と同じため、説明を省略する。
【００２６】
同期制御部６、ＰＣＩデバイス５０、ＰＣＩデバイス５１、ＰＣＩデバイス５２およびＰＣＩバス６０はＰＣＩデータ転送装置１０１を構成する。
【００２７】
図１に示す実施例の動作を図２および図３を用いて説明する。図２および図３はデータ転送処理を説明する説明図である。まず、同期制御部６はＰＣＩデバイス５０およびＰＣＩデバイス５１の転送処理のタイミングを同期させることにより、競合状態を発生させる。
【００２８】
具体的には、図２に示すように、ＰＣＩデバイス５０の転送処理ａ１とＰＣＩデバイス５１の転送処理ｂ１を競合させる。転送処理ｂ１は、転送処理ａ１よりわずかに早く処理が開始されたため、ＰＣＩデバイス５１がＰＣＩバス６０のバス権を取得し、そのまま処理を続ける。
【００２９】
一方、転送処理ａ１は、転送処理ｂ１が終了するまで処理の実行を待ち、転送処理ｂ１終了後に処理を実行する。この時、同期制御部６は転送処理ａ１が処理待ちしている時間（以下、待ち時間という）Ｔａを測定する。例えば、同期制御部６内に一定周期のクロックで動作するカウンタを持ち、このカウンタで待ち時間を測定する。
【００３０】
また、実際には、ＰＣＩデバイス５０とＰＣＩデバイス５１の転送処理にかかる時間が同じとは限らない。同期制御部６は転送処理ａ１を先に実行させ、転送処理ｂ１を処理待ちさせるように制御し、この時の待ち時間Ｔｂを測定する。そして、待ち時間Ｔａと待ち時間Ｔｂを比較し、時間の大きい方をリトライ時間の最適値とする。
【００３１】
求められたリトライ時間の最適値は、同期制御部６により、ＰＣＩデバイス５０の転送制御部１およびＰＣＩデバイス５１の転送制御部３に設定される。
【００３２】
次に、競合状態を連続で発生させ、この時の動作を検証する。例えば、図２に示すように、同期制御部６はＰＣＩデバイス５０の転送処理ａ２とＰＣＩデバイス５１の転送処理ｂ２〜ｂ４を競合させるように制御する。ＰＣＩデバイス５０の転送処理ａ２が転送処理ｂ２〜ｂ４の連続処理の後に実行され、ＰＣＩデバイス５０の競合制御が正常に機能していることが確認できる。
【００３３】
この場合、ＰＣＩデバイス５１のＦＩＦＯ４に転送データを書き込み、同期制御部６がＰＣＩデバイス５１の転送制御部３に転送処理の繰り返し回数を設定することにより、連続処理の状態を発生させている。
【００３４】
ソフトウェアでは、このような競合状態をタイミング良く発生させることは難しいが、ハードウェアの同期制御部６により、ＰＣＩデバイス５０とＰＣＩデバイス５１を同期化することで実現可能となる。
【００３５】
図２で求めたリトライ時間の最適値をＰＣＩデバイス５０およびＰＣＩデバイス５１に設定した場合の転送処理動作を図３に示す。転送処理ａ１→ｂ１→ａ２→ｂ２→ａ３→ｂ３→ａ４→ｂ４の間には従来例に示すような不要な処理待ちは無く、トータル処理時間Ｔ１も従来のトータル処理時間Ｔ０に比べて非常に短縮されている。
【００３６】
この結果、同期制御部６がＰＣＩデバイス５０およびＰＣＩデバイス５１の転送処理のタイミングを同期させることにより、競合状態を発生させて処理時間を測定し、リトライ時間の最適値を求める。そして、この最適値をＰＣＩデバイス５０およびＰＣＩデバイス５１に設定して競合制御させることにより、不要な処理待ちが無くなるので、トータル処理時間を短縮することが可能になる。
【００３７】
なお、図１に示す実施例においては、同期制御部６で同期化するＰＣＩデバイスが２つであったが、必ずしもこのように限定されるものではなく、同期化するＰＣＩデバイスが３つ以上あってもよい。
【００３８】
また、図２に示す実施例においては、転送処理ｂ２〜ｂ４に示すように固定的に競合を連続発生させていたが、より複雑な競合状態を発生させることも可能である。この場合の動作を図４を用いて説明する。図４は競合の連続数を変化させた場合のデータ転送処理を説明する説明図である。
【００３９】
図４に示す実施例では、ＰＣＩデバイス５１の転送処理の連続数を１→２→３→２→１と変化させている場合を示している。具体的には、転送処理ｂ１（連続数１）→転送処理ｂ２およびｂ３（連続数２）→転送処理ｂ４、ｂ５およびｂ６（連続数３）→転送処理ｂ７およびｂ８（連続数２）→転送処理ｂ９（連続数１）と変化させている。
【００４０】
一方、ＰＣＩデバイス５０の転送処理ａ１〜ａ５はＰＣＩデバイス５１の転送処理の後にそれぞれ実行され、ＰＣＩデバイス５０の競合制御が正常に機能していることが確認できる。
【００４１】
この場合、ＰＣＩデバイス５１のＦＩＦＯ４に転送データを書き込み、同期制御部６がＰＣＩデバイス５１の転送制御部３に転送処理の連続数の最小値、最大値および連続数を変化させる変化幅を設定することにより、連続数を変化させた競合状態を発生させている。
【図面の簡単な説明】
【００４２】
【図１】本発明に係るＰＣＩデータ転送装置の一実施例を示す構成ブロック図である。
【図２】データ転送処理を説明する説明図である。
【図３】データ転送処理を説明する説明図である。
【図４】競合の連続数を変化させた場合のデータ転送処理を説明する説明図である。
【図５】従来のＰＣＩデータ転送装置を示す構成ブロック図である。
【図６】データ転送処理を説明する説明図である。
【符号の説明】
【００４３】
１，３  転送制御部
２，４  ＦＩＦＯ
５  バッファメモリ
６  同期制御部
５０，５１，５２  ＰＣＩデバイス
６０  ＰＣＩバス
１００，１０１  ＰＣＩデータ転送装置
【図１】
2009026132.tif 000003
【図２】
2009026132.tif 000004
【図３】
2009026132.tif 000005
【図４】
2009026132.tif 000006
【図５】
2009026132.tif 000007
【図６】
2009026132.tif 000008