(57)【要約】【課題】演算処理部からのリトライ応答の後の演算処理部へのアクセス要求のタイミングを調整し、より短い時間でデータの転送を完了することを課題とする。【解決手段】演算処理部と、該演算処理部に備えられた第１の記憶部にＰＣＩバスを介してアクセスを行うデバイスとを有するＰＣＩバスの制御装置であって、デバイスからの第１の記憶部へのアクセス要求に対して許可応答が送信された後、第１の記憶部に記憶されたデータの転送処理が完了するまでのクロック数を計数する計数部と、演算処理部からリトライ応答が出力された後のデバイスからの再度のアクセス要求までの時間を遅延させる設定部と、該設定部に設定されたクロック数に対応して、計数部によって計数されたクロック数のデータを記憶し、部によって計数されたクロック数が最も少ないときの、設定部に設定されたクロック数のデータを、以後デバイスからの再度のアクセス要求までのクロック数として使用することを特徴とする。【選択図】  図１
2014041412.tif 000002
【特許請求の範囲】
【請求項１】
演算処理部と、
該演算処理部により制御される第１の記憶部と、
該第１の記憶部にＰＣＩバスを介してアクセスを行うデバイスとを有し、
前記デバイスは、
該デバイスからの前記第１の記憶部へのアクセス要求に対して前記演算処理部から許可応答が送信された後、前記第１の記憶部に記憶されたデータの前記デバイスへの転送処理が完了するまでの間に単位時間間隔で繰り返し発生するクロック信号の発生回数を計数する計数部と、
前記演算処理部からリトライ応答が出力された後前記デバイスが先のアクセス要求発生後再度アクセス要求を発生するまでの再アクセス要求時間を変化させる前記クロック信号の発生回数を設定する設定部と、
前記設定部に順次更新される前記再アクセス要求時間を変化させる前記クロック信号の発生回数を設定して計数させる待機時間変更部と、
前記設定部に設定された前記再アクセス要求時間を変化させる前記クロック信号発生回数に応じて処理された前記転送処理が完了する迄の間に、前記計数部によって計数される前記クロック信号の発生回数を前記設定部に設定された前記再アクセス要求時間を変化させる前記クロック信号の発生回数に対応して記憶する第２の記憶部と、
前記設定部に設定された前記再アクセス要求時間を変化させる前記クロック信号発生回数に応じて処理された前記転送処理が完了する迄の間に前記計数部によって計数される前記クロック信号の発生回数が最も少ないときの、前記設定部に設定された前記再アクセス要求時間を変化させる前記クロック信号の発生回数を前記第２の記憶部から読み出し、前記設定部に設定する制御部と、
を有することを特徴とするＰＣＩバスの制御装置。
【請求項２】
前記第１の記憶部に記憶されたデータの前記デバイスへの転送処理の完了の判断は、前記デバイスに設けられた第３の計数部が前記第１の記憶部から転送される所定個のデータを計数することによって行うことを特徴とする請求項１に記載のＰＣＩバスの制御装置。
【請求項３】
前記演算処理部からの前記リトライ応答は、前記デバイスへの転送データの準備が整うまでの間、前記待機時間変更部から出力され、前記設定部に設定される順次更新される前記再アクセス要求時間を変化させる前記クロック信号の発生回数は、順次増加する数、又は順次減少する数であることを特徴とする請求項１、又は２に記載のＰＣＩバスの制御装置。
【請求項４】
前記デバイスは印刷装置のビデオデータの転送回路であり、前記第１の記憶部に記憶された前記ビデオデータを前記ＰＣＩバスを介して印字ヘッドへ転送する際、前記設定部へ前記クロック信号の発生回数を設定し、前記ビデオデータの転送時間を最短にすることを特徴とする請求項１、２、又は３に記載のＰＣＩバスの制御装置。
【請求項５】
演算処理部により制御される第１の記憶部にデバイスからＰＣＩバスを介してアクセスを行うＰＣＩバスの制御方法であって、
前記デバイスからの前記第１の記憶部へのアクセス要求に対して前記演算処理部から許可応答が送信された後、前記第１の記憶部に記憶されたデータの前記デバイスへの転送処理が完了するまでの間に単位時間間隔で繰り返し発生するクロック信号の発生回数を計数する計数処理と、
前記演算処理部からリトライ応答が出力された後前記デバイスが先のアクセス要求発生後再度アクセス要求を発生するまでの再アクセス要求時間を変化させる前記クロック信号の発生回数を設定する設定処理と、
前記設定処理において順次更新される前記再アクセス要求時間を変化させる前記クロック信号の発生回数数を設定して計数させる待機時間変更処理と、
前記待機時間変更処理により設定された前記再アクセス要求時間を変化させる前記クロック信号の発生回数に応じて処理された前記転送処理が完了する迄の間に、前記計数処理によって計数される前記クロック信号の発生回数を前記設定部に設定された前記再アクセス要求時間を変化させる前記クロック信号の発生回数に対応して第２の記憶部に記憶する処理と、
前記設定部に設定された前記再アクセス要求時間を変化させる前記クロック信号発生回数に応じて処理された前記転送処理が完了する迄の間に前記計数処理によって計数される前記クロック信号発生回数が最も少ないときの、前記設定処理に使用された前記再アクセス要求時間を変化させる前記クロック数信号発生回を前記第２の記憶部から読み出し、前記設定処理のクロック信号の発生回数として使用する、
ことを特徴とするＰＣＩバスの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はＰＣＩバス(Peripheral Component Interconnect Bus)を使用し、複数のデバイスをマザーボード（ホスト制御部）に接続してデータの授受を行うＰＣＩバスの制御装置に関する。
【背景技術】
【０００２】
ＰＣＩバスにＰＣＩスロットを用いて複数のデバイスを接続し、マザーボード上（ホスト制御部上）のメモリをアクセスする場合、マザーボードに構築されたホストブリッジを介してメモリへのアクセスを行う。例えば、デバイスとしてプリンタ装置を使用する場合、プリンタ装置のビデオ転送回路をＰＣＩスロットに接続し、ＰＣＩバスを介してマザーボード上のメモリをアクセスする。
【０００３】
ホストブリッジはデバイス側から、例えばデータリードの要求（ＲＥＱ）があると、メモリをアクセスし、要求のあったデータを用意し、送信の準備が整うまで当該デバイスに対してリトライ応答（ＳＴＯＰ）を行い、その後のデバイス側からのデータリードの要求の際、送信準備が整うと、送信可能である旨の応答（ＴＲＤＹ）を行い、以後メモリからデータをデバイス側に送信する。
【０００４】
しかし、今日マザーボード側のＣＰＵやメモリの処理が高速化し、ＰＣＩバスとの動作周波数が異なり、更に非同期である場合も少なくない。この場合、マザーボード側のＣＰＵとＰＣＩデバイス側の制御部は異なったクロック周波数で動作することになり、それ相応の処理時間が必要となる。
【０００５】
尚、特許文献１は、上記リトライが解消されるまでの時間を計測し、最初のアクセスから計測した時間が経過するまでは該当するＰＣＩデバイスからの再度のアクセスをマスクすることによってアクセス効率を向上させる発明を開示する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０００−２０７３５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来のＰＣＩバスの制御方法では、ＰＣＩデバイスから２度目以降のデータリード要求があると、マザーボード側でデータの準備が整い次第、メモリからデータがＰＣＩデバイスに送信される。しかし、マザーボード側からデータを転送したとしても、用意されたデータ量が中途半端であると、データの転送処理が途中で中断し、却ってデータ転送を遅らせる結果となる。
【０００８】
そこで、本発明はリトライ発生後の２度目以降のマザーボード側へのアクセスを開始するタイミングを調整し、より短い時間でデータの転送を完了することができるタイミングを設定するＰＣＩバスの制御装置を提供するものである。
【課題を解決するための手段】
【０００９】
上記課題は本発明によれば、演算処理部と、該演算処理部により制御される第１の記憶部と、該第１の記憶部にＰＣＩバスを介してアクセスを行うデバイスとを有し、前記デバイスは、該デバイスからの前記第１の記憶部へのアクセス要求に対して前記演算処理部から許可応答が送信された後、前記第１の記憶部に記憶されたデータの前記デバイスへの転送処理が完了するまでの間に単位時間間隔で繰り返し発生するクロック信号の発生回数を計数する計数部と、前記演算処理部からリトライ応答が出力された後前記デバイスが先のアクセス要求発生後再度アクセス要求を発生するまでの再アクセス要求時間を変化させる前記クロック信号の発生回数を設定する設定部と、前記設定部に順次更新される前記再アクセス要求時間を変化させる前記クロック信号の発生回数を設定して計数させる待機時間変更部と、前記設定部に設定された前記再アクセス要求時間を変化させる前記クロック信号発生回数に応じて処理された前記転送処理が完了する迄の間に、前記計数部によって計数される前記クロック信号の発生回数を前記設定部に設定された前記再アクセス要求時間を変化させる前記クロック信号の発生回数に対応して記憶する第２の記憶部と、前記設定部に設定された前記再アクセス要求時間を変化させる前記クロック信号発生回数に応じて処理された前記転送処理が完了する迄の間に前記計数部によって計数される前記クロック信号の発生回数が最も少ないときの、前記設定部に設定された前記再アクセス要求時間を変化させる前記クロック信号の発生回数を前記第２の記憶部から読み出し、前記設定部に設定する制御部と、を有するＰＣＩバスの制御装置を提供することによって達成できる。
【発明の効果】
【００１０】
本発明によれば、マザーボード側からリトライ応答が行われた後、再度のリードアクセスの要求タイミングを調整し、メモリからのデータ転送の終了時間が最も短くなるアクセスタイミングを設定することによって、マザーボード上のメモリからのデータ転送を効率よく行うことができる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態のＰＣＩバスを含むシステム構成図である。
【図２】（ａ）は、ＰＣＩバスを使用する通常のデータ転送処理を説明するタイムチャートである。（ｂ）は、リトライ応答が行われた後、再度のリードアクセスの要求タイミングを＋１クロック増加（遅延）させた場合のタイムチャートである。（ｃ）は、リトライ応答が行われた後、再度のリードアクセスの要求タイミングを＋２クロック増加（遅延）させた場合のタイムチャートである。（ｄ）は、リトライ応答が行われた後、再度のリードアクセスの要求タイミングを＋３クロック増加（遅延）させた場合のタイムチャートである。（ｅ）は、リトライ応答が行われた後、再度のリードアクセスの要求タイミングを＋４クロック増加（遅延）させた場合のタイムチャートである。
【図３】本実施形態の基本的な処理を説明するフローチャートである。
【図４】本実施形態の転送速度を測定する処理を説明するフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態を図面に基づいて説明する。
図１は本実施形態のＰＣＩバスを含むシステム構成図である。同図において、マザーボード（ホスト制御部）にはＣＰＵ１及びメモリ２が構築され、ＣＰＵ１は中央処理装置（演算処理部）であり、メモリ２に記憶されたプログラムに従って処理を行う。また、メモリ２には印刷データのコマンド解析によって作成したビデオデータも記憶されている。
【００１３】
ホストブリッジ３は、マザーボード上のＣＰＵ１とＰＣＩバスに接続されたデバイス間のインターフェース（Ｉ／Ｆ）であり、ホストブリッジ３にはＰＣＩバスを介してＰＣＩデバイス４が接続されている。このＰＣＩデバイス４はマスター機能を有し、例えばマザーボード上のメモリ２へのアクセスを行なう。尚、ホストブリッジ３はＰＣＩデバイスからのアクセス要求に対し、メモリ２との間でデータの授受を行う。
【００１４】
ＰＣＩデバイス４はＰＣＩバスとの接続を行なうＰＣＩスロット５、及び主制御部６、待機カウンタ７、有効データ数カウンタ８、クロック数保管部９で構成され、例えばメモリ２に記憶されたビデオデータを不図示のビデオ転送回路に転送する。尚、ビデオ転送回路はメモリ２から転送されたビデオデータを、例えば不図示の印字ヘッドに送信する。
【００１５】
主制御部６はホストブリッジ３にビデオデータを読み出す為のリードアクセスを行い、またメモリ２から読み出されるビデオデータの転送制御を行なう。さらに、待機カウンタ７に後述するクロック数のデータを順次準備する。また、主制御部６にはカウンタ１０が設けられ、カウンタ１０は後述するＦＲＡＭＥ信号出力後、計数処理を開始し、ビデオデータの転送が終了するまで計数処理を行う。
【００１６】
待機カウンタ７はリトライ後のリードリクエストを行う際の送信タイミングを調整する為のカウンタであり、例えば１クロック毎に順次更新するクロック数のデータが主制御部６によってセットされる。
【００１７】
有効データ数カウンタ８はＰＣＩデバイス４がメモリ２からビデオデータを読み出す際のデータ数を計数するカウンタであり、本例では“０”〜“１５”の１６個のデータを有効データ数としてカウントする。また、有効データ数カウンタ８はビデオデータを１６カウントすると、クロック数保管部９にカウント終了信号を出力する。
【００１８】
クロック数保管部９は上記待機カウンタ７にセットするクロック数のデータに対応して、上記カウンタ１０の計数結果を保管する。例えば、待機カウンタ７に＋１のクロック数がセットされた場合、この時のビデオデータの転送に要するクロック数をカウンタ１０によって計測し、この計測値を保管する。また、待機カウンタ７に＋２のクロック数がセットされた場合、この時のビデオデータの転送に要するクロック数をカウンタ１０によって計測し、この計測値を保管する。以下同様に、待機カウンタ７に＋３、＋４、・・のクロック数がセットされた場合、それぞれの場合のビデオデータの転送に要するクロック数をカウンタ１０によって計測し、計測値を保管する。
【００１９】
尚、ＰＣＩバスには上記ＰＣＩデバイス４の他に、例えばデータの圧縮処理や伸張処理を行う際に使用するデバイスや、表示データの送受信を行う際に使用するデバイス等の複数のデバイスの接続が可能である。
【００２０】
以上の構成において、以下に本例の処理を説明する。
図２（ａ）〜（ｅ）は本例の処理を説明するタイムチャートであり、図３及び図４は本例の処理を説明するフローチャートである。
先ず、マザーボード上のメモリ２からビデオデータを読み出す際の通常の処理を説明する。図２（ａ）に示すタイムチャート、及び図３に示すフローチャートはこの処理を説明するものである。
【００２１】
先ず、ＰＣＩデバイス４の主制御部６はマザーボード上のメモリ２に記憶されたビデオデータを読み出すべく、ＰＣＩバスを介してホストブリッジ３に対してリードアクセスの要求（ＲＥＱ）を行う（ステップ（以下、ＳＴで示す）１）。
【００２２】
ホストブリッジ３では上記リクエストの要求を受信すると、ＰＣＩバスの使用が可能であるか判断する。ここで、ＰＣＩバスの使用が可能であればグラント信号（ＧＮＴ）をアサートし（ＳＴ２がＹＥＳ）、主制御部６は、待機カウント終了を判断する（ＳＴ３）。この判断は前述の待機カウンタ７にセットされたクロック数のカウント終了を判断するものであるが、この通常処理において待機カウンタ７は、例えば“０”にリセットされており、直ちにＰＣＩデバイス４によるＰＣＩバスの使用を可能とする。
【００２３】
したがって、ホストブリッジ３からグラント信号が出力されると、主制御部６はＦＲＡＭＥを出力し（ＳＴ４）、ＰＣＩデバイス４側の受信準備が整っていることを示すＩＲＤＹ信号を出力する（ＳＴ５）。
【００２４】
図２（ａ）に示すタイムチャートは上記ＦＡＲＡＭＥ出力後の処理を示し、上記ＦＲＡＭＥが出力されると（図２（ａ）に示す「１」）、メモリ２に対するリードデータのアドレスを提示するアドレスフェーズ（ＡＤ）のタイミングが確保される。
【００２５】
次に、ホストブリッジ３はＤＥＶＳＥＬ信号を出力し（ＳＴ６がＹＥＳ、図２（ａ）に示す「２」）、メモリ２から要求されたデータを読み出し、送信の準備ができるまでバスサイクルを中止すべく、ＳＴＯＰ（リトライ）を出力する（ＳＴ７がＹＥＳ、図２（ａ）に示す「３」）。尚、前述のようにマザーボード側とＰＣＩバス側では使用するクロック周波数が異なり、例えば図２（ａ）で示すａは、要求されたリードデータのメモリ２上のアドレスを認識し、データをメモリ２側のクロック周波数に同期させる為の時間を示し、ｂはメモリ２から読み出したデータをＰＣＩバス側のクロック周波数に同期させる為の時間を示す。
【００２６】
したがって、本例の場合、上記ｂに示す時間が経過した後、メモリ２から読み出したデータの送信準備が整うことになる。また、同図（ａ）のｃに示す“０”〜“１５”はメモリ２から読み出されるビデオデータを示す。
【００２７】
したがって、マザーボード側でビデオデータの送信準備が整うまで上記処理を繰り返し（ＳＴ１〜ＳＴ７）、例えば図２（ａ）に示す例では２回目のＳＴＯＰ（リトライ）が出力され（図２（ａ）に示す「４」）、その次のリクエスト要求の際マザーボード側でビデオデータの送信準備が整う。
【００２８】
マザーボード側で送信準備が整うと、ホストブリッジ３からＴＲＤＹが出力され（ＳＴ８がＹＥＳ、図２に示す「５」）、主制御部６はメモリ２からＰＣＩバスを介してビデオデータを読み出し、ＰＣＩデバイス４から不図示のビデオ転送回路に送信する（ＳＴ９がＮＯ、ＳＴ１０がＮＯ）。この間、有効データ数カウンタ８はビデオデータの転送が終了するまでのクロック数をカウントし、予定していた数のビデオデータの転送が完了すると（ＳＴ９がＹＥＳ）、有効データ数カウンタ８からカウント終了信号がクロック数保管部９に出力され、更に主制御部６に通知され、処理を終了する。
【００２９】
次に、上記通常アクセス時の処理に対して、ビデオデータの転送完了までの時間を短縮する本例の処理を説明する。本例においては、例えば上記有効データ数のビデオデータを転送する際、ＣＰＵ１からのＳＴＯＰ（リトライ）出力後の再アクセスまでの時間を、上記通常処理に対して、１クロック毎に増加させ（遅延させ）、ビデオデータの転送完了までの時間を計測する。そして、最も短時間でビデオデータの転送を完了する再アクセスまでの時間を取得する。以下、ＳＴＯＰ（リトライ）出力後の再アクセスまでの時間を１クロック毎に増加させた（遅延させた）場合について、タイムチャートを使用して具体的に説明する。
【００３０】
図２（ｂ）は通常アクセスに対して再アクセスまでの時間を１クロック増加（遅延）させた場合のタイムチャートを示し、図２（ｃ）は通常アクセスに対して２クロック増加（遅延）させた場合のタイムチャートを示し、図２（ｄ）は通常アクセスに対して３クロック増加（遅延）させた場合のタイムチャートを示し、図２（ｅ）は通常アクセスに対して４クロック増加（遅延）させた場合のタイムチャートを示す。
【００３１】
図４は上記各場合について、ビデオデータの転送終了までのクロック数を計数し、転送速度を測定するフローチャートである。また、この転送速度の測定には前述のカウンタ１０を使用する。尚、前述の図３に示すフローチャートも基本的には使用されるが、前述の説明と重複するので、図３に示すフローチャートについては、本例の処理において追加される待機カウンタの終了処理について説明する。
【００３２】
先ず、図２（ｂ）に示す再アクセスまでの時間を１クロック増加させた場合について説明する。この場合、上記と同様、先ずマザーボード上のメモリ２に記憶されたビデオデータを読み出すべく、ＰＣＩバスを介してホストブリッジ３に対してリードアクセスの要求を行う（ステップ（以下、図４においてＳで示す）１）。その後、ホストブリッジ３からグラント信号をアサートすると（Ｓ２がＹＥＳ）、ＰＣＩデバイス４の主制御部６はＦＲＡＭＥを出力し、カウンタ１０は計数処理を開始する（Ｓ３、図２（ｂ）に示す「１」）。
【００３３】
その後、待機カウンタ７はカウント処理を継続し、ＣＰＵ１側ではデータ転送の準備が整うまでＳＴＯＰ（リトライ）を出力する（図２（ｂ）に示す「３」）。この場合、上記のように最初のリトライの出力後、再アクセスまでの時間を１クロック遅らせている。すなわち、図２（ａ）に示す再ＦＲＡＭＥの出力タイミング（図２（ａ）に示す「６」）に対して、図２（ｂ）に示す再ＦＲＡＭＥの出力タイミング（図２（ｂ）に示す「７」）を１クロック遅らせている。このことによって、ＣＰＵ１から出力される次のＳＴＯＰ（リトライ）も１クロック遅れるが、この間に転送データの準備が整わない為、ＣＰＵ１から再度ＳＴＯＰ（リトライ）が出力されている（図２（ｂ）に示す「４」）。
【００３４】
この処理は前述の図３に示すフローチャートの判断（ＳＴ３）によって実行され、この例の場合、待機カウンタ７には主制御部６からのクロック数“１”のデータがセットされており、待機カウンタ７において１クロック分の計数が行われた後、ＦＲＡＭＥをホストブリッジ３に出力する。
【００３５】
その後、ＣＰＵ１側の送信準備が整うと、ホストブリッジ３からＴＲＤＹが出力される（図２（ｂ）に示す「５´」）。したがって、この例ではその後、メモリ２からＰＣＩバスを介してビデオデータを読み出し、ＰＣＩデバイス４から不図示のビデオ転送回路に送信する。カウンタ１０は前述のＦＲＡＭＥが出力されてからビデオデータの転送が終了するまでカウント処理を継続しており（Ｓ４がＮＯ）、転送処理が終了するとカウンタ１０は計数処理を終了し（Ｓ４がＹＥＳ）、計測結果であるクロック数のデータをクロック数保管部９に保管する（Ｓ５）。この時、リトライ後の再アクセスまでのクロック数“１”のデータに対応してカウンタ１０のカウント値がクロック数保管部９に保管される。
【００３６】
この場合、カウンタ１０のカウント値は“４１”であり、ＰＣＩバスのクロック周波数を６６ＭＨｚとし、ビット幅を３２ビットとすると、転送レートは９０．１ＭＢ／ｓ（６６ＭＨｚ×４バイト×１４ワード／４１クロック）となる。尚、上記カウント値“４１”は次のビデオデータを読み出す為のＦＲＡＭＥ出力までの計数値を上記カウンタ１０の計数値に加算した値である。
【００３７】
次に、図２（ｃ）に示す再アクセスまでの時間を２クロック増加させた場合について説明する。この場合も、上記と同様、先ずマザーボード上のメモリ２に記憶されたビデオデータを読み出すべく、ＰＣＩバスを介してホストブリッジ３に対してリードアクセスの要求を行う（Ｓ１）。その後、ホストブリッジ３からグラント信号をアサートし（Ｓ２がＹＥＳ）、主制御部６からホストブリッジ３にＦＲＡＭＥを送信し、カウンタ１０の計数処理を開始する（Ｓ３、図２（ｃ）に示す「１」）。
【００３８】
その後、前述と同様カウンタ１０は計数処理を継続し、ＣＰＵ１側ではデータ転送の準備が整うまでＳＴＯＰ（リトライ）を出力する（図２（ｃ）に示す「３」）。この例の場合、最初のリトライの出力後、再アクセスまでの時間を２クロック遅らせている。すなわち、図２（ａ）に示す再ＦＲＡＭＥの出力タイミング（図２（ａ）に示す「６」）に対して、図２（ｃ）に示す再ＦＲＡＭＥの出力タイミング（図２（ｃ）に示す「８」）を２クロック遅らせている。このことによって、ＣＰＵ１から出力される次のＳＴＯＰ（リトライ）も２クロック遅れ、この間に転送データの準備が整い、ホストブリッジ３からＴＲＤＹ＃が出力される（図２（ｃ）に示す「９」）。
【００３９】
この処理も前述の図３に示すフローチャートの判断（ＳＴ３）によって実行され、この例の場合、待機カウンタ７には主制御部６からのクロック数“２”のデータがセットされており、待機カウンタ７において２クロック分の計数が行われた後、ＦＲＡＭＥをホストブリッジ３に出力する。したがって、この例ではその後、メモリ２からＰＣＩバスを介してビデオデータを読み出し、ＰＣＩデバイス４から不図示のビデオ転送回路に送信される。
【００４０】
しかし、この例では１６個のデータ転送中にディスコネクトが発生し、データ転送が中止される。この例では“０”〜“１３”のビデオデータを転送した後、ディスコネクトが発生し、全てのデータ転送が終了しておらず（Ｓ４がＮＯ）、カウンタ１０はカウント処理を継続する。その後、再度ＦＲＡＭＥが出力され、ホストブリッジ３からＴＲＤＹが再度出力されると（図２（ｃ）に示す「１０」）、メモリ２からＰＣＩバスを介して残りのビデオデータ（“１４”、“１５”）がＰＣＩバスを介して不図示のビデオ転送回路に送信される。そして、転送処理が終了するとカウンタ１０は計数処理を終了し（Ｓ４がＹＥＳ）、計測結果であるクロック数のデータをクロック数保管部９に保管する（Ｓ５）。この時、リトライ後の再アクセスまでのクロック数“２”のデータに対応してカウンタ１０のカウント値がクロック数保管部９に保管される。
【００４１】
この場合、カウンタ１０のカウント値は“４４”であり、転送レートは８４．０ＭＢ／ｓ（６６ＭＨｚ×４バイト×１４ワード／４４クロック）となる。尚、上記カウント値“４４”も次のビデオデータを読み出す為のＦＲＡＭＥ出力までの計数値を上記カウンタ１０の計数値に加算した値である。
【００４２】
次に、図２（ｄ）に示す再アクセスまでの時間を３クロック増加させた場合について説明する。この場合も、上記と同様、先ずマザーボード上のメモリ２に記憶されたビデオデータを読み出すべく、ＰＣＩバスを介してホストブリッジ３に対してリードアクセスの要求を行う（Ｓ１）。その後、ホストブリッジ３からＧＮＴをアサートし（Ｓ２）、主制御部６からホストブリッジ３にＦＲＡＭＥを送信し、カウンタ１０の計数処理を開始する（Ｓ３、図２（ｄ）に示す「１」）。
【００４３】
その後、前述と同様カウンタ１０はカウント処理を継続し、ＣＰＵ１側ではデータ転送の準備が整うまでＳＴＯＰ（リトライ）を出力する（図２（ｄ）に示す「３」）。この例の場合、最初のリトライの出力後、再アクセスまでの時間を３クロック遅らせている。すなわち、図２（ａ）に示す再ＦＲＡＭＥの出力タイミング（図２（ａ）に示す「６」）に対して、図２（ｄ）に示す再ＦＲＡＭＥの出力タイミング（図２（ｄ）に示す「１１」）を３クロック遅らせている。
【００４４】
この処理も前述の図３に示すフローチャートの判断（ＳＴ３）によって実行され、この例の場合、待機カウンタ７には主制御部６からのクロック数“３”のデータがセットされており、待機カウンタ７において３クロック分の計数が行われた後、ＦＲＡＭＥをホストブリッジ３に出力する。このことによって、ＣＰＵ１から出力される次のＳＴＯＰ（リトライ）も３クロック遅れ、この間に転送データの準備が整い、ホストブリッジ３からＴＲＤＹが出力される（図２（ｄ）に示す「１２」）。したがって、この例ではその後、メモリ２からＰＣＩバスを介してビデオデータを読み出し、ＰＣＩデバイス４から不図示のビデオ転送回路に送信される。
【００４５】
そして、転送処理が終了するとカウンタ１０は計数処理を終了し（Ｓ４がＹＥＳ）、計測結果であるクロック数の値をクロック数保管部９に保管する（Ｓ５）。この時、リトライ後の再アクセスまでのクロック数“３”のデータに対応してカウンタ１０のカウント値がクロック数保管部９に保管される。
【００４６】
この場合、カウンタ１０のカウント値は“３６”であり、転送レートは１１７．３ＭＢ／ｓ（６６ＭＨｚ×４バイト×１４ワード／３６クロック）となる。尚、上記カウント値“３６”も次のビデオデータを読み出す為のＦＲＡＭＥ出力までの計数値を上記カウンタ１０の計数値に加算した値である。
【００４７】
最後に、図２（ｅ）に示す再アクセスまでの時間を４クロック遅らせた場合について説明する。この場合も、上記と同様、先ずマザーボード上のメモリ２に記憶されたビデオデータを読み出すべく、ＰＣＩバスを介してホストブリッジ３に対してリードアクセスの要求を行う（Ｓ１）。その後、ホストブリッジ３からＧＮＴをアサートし（Ｓ２）、主制御部６はホストブリッジ３にＦＲＡＭＥを送信し、カウンタ１０が計数処理を開始する（Ｓ３、図２（ｅ）に示す「１」）。
【００４８】
その後、前述と同様カウンタ１０はカウント処理を継続し、ＣＰＵ１側ではデータ転送の準備が整うまでＳＴＯＰ（リトライ）を出力する（図２（ｅ）に示す「３」）。この例の場合、最初のリトライの出力後、再アクセスまでの時間を４クロック遅らせている。すなわち、図２（ａ）に示す再ＦＲＡＭＥの出力タイミング（図２（ａ）に示す「６」）に対して、図２（ｅ）に示す再ＦＲＡＭＥの出力タイミング（図２（ｅ）に示す「１３」）を４クロック遅らせている。
【００４９】
この処理も前述の図３に示すフローチャートの判断（ＳＴ３）によって実行され、この例の場合、待機カウンタ７には主制御部６からのクロック数“４”のデータがセットされており、待機カウンタ７において４クロック分の計数が行われた後、ＦＲＡＭＥをホストブリッジ３に出力する。このことによって、ＣＰＵ１から出力される次のＳＴＯＰ（リトライ）も４クロック遅れ、この間に転送データの準備が整い、ホストブリッジ３からＴＲＤＹが出力される（図２（ｅ）に示す「１４」）。したがって、この例ではその後、メモリ２からＰＣＩバスを介してビデオデータを読み出し、ＰＣＩデバイス４から不図示のビデオ転送回路に送信される。
【００５０】
そして、転送処理が終了するとカウンタ１０は計数処理を終了し（Ｓ４がＹＥＳ）、計測結果であるクロック数の値をクロック数保管部９に保管する（Ｓ５）。この時、リトライ後の再アクセスまでのクロック数“４”のデータに対応してカウンタ１０のカウント値がクロック数保管部９に保管される。
【００５１】
この場合、待機カウンタ７のカウント値は“３８”であり、転送レートは１１１．２ＭＢ／ｓ（６６ＭＨｚ×４バイト×１４ワード／３８クロック）となる。尚、上記カウント値“３８”も次のビデオデータを読み出す為のＦＲＡＭＥ出力までの計数値を上記カウンタ１０の計数値に加算した値である。
【００５２】
以下、待機カウンタ７にクロック数“５”、“６”、・・を順次セットし、上記と同様の処理を繰り返す。そして、クロック数保管部９に順次増加させたクロック数のデータと共に、カウンタ１０のカウント値のデータを保管し、カウンタ１０によって得られたカウント値は最も小さいクロック数のデータを、以後待機カウンタ７のクロック数として設定する。
【００５３】
このように処理することによって、以後カウンタ１０によるカウント値が最も小さくなるクロック数のデータが待機カウンタ７に設定され、メモリ２からのビデオデータの転送に使用する。したがって、以後最も短時間でビデオデータの転送処理を行うことができるクロック数のデータが待機カウンタ７に設定され、最も効率よいビデオデータの転送処理を行うことができる。
尚、上記転送要求信号の発生最適時間を求める処理は、実際にデータを転送する作業を行う前に実施するものである。装置電源のＯＮ後、ＣＰＵ１によりＰＣＩの設定が終了し、ＣＰＵ１がＰＣＩデバイス４を認識した時点で、ＣＰＵ１がＰＣＩデバイス４に対して最適時間の計測処理開始を指示する。
【００５４】
尚、上記実施形態の説明において、待機カウンタ７に設定するカウント値は、＋１クロック、＋２クロック、・・と順次増加する方向に更新するように設定したが、逆に例えば＋１０クロック、＋９クロック、・・と順次減少させる方向に更新するように設定してもよい。
【００５５】
また、前述の図２（ａ）に示す通常処理の場合、待機カウンタ７の設定値は“０”であり、この場合カウンタ１０によってビデオデータの転送処理が終了するまでの計数を行うとカウント数は３９クロックとなり、この場合もＰＣＩバスのクロック周波数を６６ＭＨｚとし、ビット幅を３２ビットとすると、転送レートは９４．８ＭＢ／ｓ（６６ＭＨｚ×４バイト×１４ワード／３９クロック）となる。
【００５６】
本発明はいくつかの実施形態を説明したが、本発明は特許請求の範囲に記載された発明とその均等の範囲に含まれる。以下、本件特許出願の出願当初の特許請求の範囲に記載された発明を付記する。
【００５７】
付記１
演算処理部と、
該演算処理部により制御される第１の記憶部と、
該第１の記憶部にＰＣＩバスを介してアクセスを行うデバイスとを有し、
前記デバイスは、
該デバイスからの前記第１の記憶部へのアクセス要求に対して前記演算処理部から許可応答が送信された後、前記第１の記憶部に記憶されたデータの前記デバイスへの転送処理が完了するまでの間に単位時間間隔で繰り返し発生するクロック信号の発生回数を計数する計数部と、
前記演算処理部からリトライ応答が出力された後前記デバイスが先のアクセス要求発生後再度アクセス要求を発生するまでの再アクセス要求時間を変化させる前記クロック信号の発生回数を設定する設定部と、
前記設定部に順次更新される前記再アクセス要求時間を変化させる前記クロック信号の発生回数を設定して計数させる待機時間変更部と、
前記設定部に設定された前記再アクセス要求時間を変化させる前記クロック信号発生回数に応じて処理された前記転送処理が完了する迄の間に、前記計数部によって計数される前記クロック信号の発生回数を前記設定部に設定された前記再アクセス要求時間を変化させる前記クロック信号の発生回数に対応して記憶する第２の記憶部と、
前記設定部に設定された前記再アクセス要求時間を変化させる前記クロック信号発生回数に応じて処理された前記転送処理が完了する迄の間に前記計数部によって計数される前記クロック信号の発生回数が最も少ないときの、前記設定部に設定された前記再アクセス要求時間を変化させる前記クロック信号の発生回数を前記第２の記憶部から読み出し、前記設定部に設定する制御部と、
を有することを特徴とするＰＣＩバスの制御装置。
【００５８】
付記２
前記第１の記憶部に記憶されたデータの前記デバイスへの転送処理の完了の判断は、前記デバイスに設けられた第３の計数部が前記第１の記憶部から転送される所定個のデータを計数することによって行うことを特徴とする付記１に記載のＰＣＩバスの制御装置。
【００５９】
付記３
前記演算処理部からの前記リトライ応答は、前記デバイスへの転送データの準備が整うまでの間、前記待機時間変更部から出力され、前記設定部に設定される順次更新される前記再アクセス要求時間を変化させる前記クロック信号の発生回数は、順次増加する数、又は順次減少する数であることを特徴とする付記１、又は２に記載のＰＣＩバスの制御装置。
【００６０】
付記４
前記デバイスは印刷装置のビデオデータの転送回路であり、前記第１の記憶部に記憶された前記ビデオデータを前記ＰＣＩバスを介して印字ヘッドへ転送する際、前記設定部へ前記クロック信号の発生回数を設定し、前記ビデオデータの転送時間を最短にすることを特徴とする付記１、２、又は３に記載のＰＣＩバスの制御装置。
【００６１】
付記５
演算処理部により制御される第１の記憶部にデバイスからＰＣＩバスを介してアクセスを行うＰＣＩバスの制御方法であって、
前記デバイスからの前記第１の記憶部へのアクセス要求に対して前記演算処理部から許可応答が送信された後、前記第１の記憶部に記憶されたデータの前記デバイスへの転送処理が完了するまでの間に単位時間間隔で繰り返し発生するクロック信号の発生回数を計数する計数処理と、
前記演算処理部からリトライ応答が出力された後前記デバイスが先のアクセス要求発生後再度アクセス要求を発生するまでの再アクセス要求時間を変化させる前記クロック信号の発生回数を設定する設定処理と、
前記設定処理において順次更新される前記再アクセス要求時間を変化させる前記クロック信号の発生回数数を設定して計数させる待機時間変更処理と、
前記待機時間変更処理により設定された前記再アクセス要求時間を変化させる前記クロック信号の発生回数に応じて処理された前記転送処理が完了する迄の間に、前記計数処理によって計数される前記クロック信号の発生回数を前記設定部に設定された前記再アクセス要求時間を変化させる前記クロック信号の発生回数に対応して第２の記憶部に記憶する処理と、
前記設定部に設定された前記再アクセス要求時間を変化させる前記クロック信号発生回数に応じて処理された前記転送処理が完了する迄の間に前記計数処理によって計数される前記クロック信号発生回数が最も少ないときの、前記設定処理に使用された前記再アクセス要求時間を変化させる前記クロック数信号発生回を前記第２の記憶部から読み出し、前記設定処理のクロック信号の発生回数として使用する、
ことを特徴とするＰＣＩバスの制御方法。
【符号の説明】
【００６２】
１・・・ＣＰＵ
２・・・メモリ
３・・・ホストブリッジ
４・・・ＰＣＩデバイス
５・・・ＰＣＩスロット
６・・・主制御部
７・・・待機カウンタ
８・・・有効データ数カウンタ
９・・・クロック数保管部
１０・・カウンタ
【図１】
2014041412.tif 000003
【図３】
2014041412.tif 000004
【図４】
2014041412.tif 000005
【図２】
2014041412.tif 000006