(57)【要約】【課題】  ＰＣＩバスから一時的に保管しているデータの残量に応じて、外部機器によるメモリ装置のアクセスのバースト長を制限することにより、ＰＣＩバスアクセスが長時間待機させられることを回避するデータ転送装置を提供する。【解決手段】  ホストバスを介して接続されるメモリ装置にアクセスし、ホストバスを専有するメモリ装置の優先順位を決定する。そして、メモリ装置から読み出したデータをＦＩＦＯに入力し、ＦＩＦＯに充分なデータが入力している間、上記メモリ装置から読み出すデータ量を少なくし、ＦＩＦＯに充分なデータが入力していない間、上記メモリ装置から読み出すデータ量を多く制御する構成であり、このように構成することにより効率よくデータ転送を行うものである。【選択図】図１
2007011884.tif 000002
【特許請求の範囲】
【請求項１】
ホストバスを介して接続されるメモリ装置にアクセスする手段と、
前記ホストバスを専有する前記メモリ装置の優先順位を決定する手段と、
ＰＣＩバスを介して接続する外部機器のデータを一時的に保持する保持手段と、
該保持手段が保持したデータの残量に応じて、前記メモリ装置から読み出すバーストデータ量を変更する変更手段と、
前記保持手段が保持するデータ量を、ライトカウンタとリードカウンタで計数し、ライトカウンタとリードカウンタの計数値に基づいて前記バーストデータの変更を判断する判断手段と、
を有することを特徴とするデータ転送装置。
【請求項２】
前記保持手段に保持するデータ量が多い場合、前記変更手段はバーストデータ量を大きく設定し、前記保持手段に保持するデータ量が少ない場合、前記変更手段はバーストデータ量を小さく設定することを特徴とする請求項１記載のデータ転送装置。
【請求項３】
前記保持手段は、ＦＩＦＯであることを特徴とする請求項１、又は２記載のデータ転送装置。
【請求項４】
バーストアクセス中のデータ数をカウントするカウント手段と、
第１の最大バースト数を記憶する第１の記憶手段と、
第２の最大バースト数を記憶する第２の記憶手段と、
前記第１の最大バースト数と前記第２の最大バースト数を比較する手段と、
前記比較した結果、前記第２の最大バースト数が前記第１の最大バースト数より大きい場合、前記第１の最大バースト数の値を前記第２の最大バースト数の値で再記憶する手段と、
を有することを特徴とするデータ転送装置。
【請求項５】
前記バーストアクセスを行った回数をカウントするカウント手段と、
前記バーストアクセスを行った回数が規定値に達したか判断する判断手段と、
前記バーストアクセスを行った回数が規定値に達した時、前記第１の最大バースト数の値を前記第２の最大バースト数の値に更新する更新手段と、
を有することを特徴とする請求項４記載のデータ転送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばＦＩＦＯ（first-in first-out）を使用したデータ転送装置に関する。
【背景技術】
【０００２】
今日、各種のデータ転送がＦＩＦＯを介して行われている。例えば、印刷装置においてメモリ（ＲＡＭ）に記憶された印刷データをプリンタエンジン側の印字ヘッドに転送する際、ＦＩＦＯが使用されている。この場合、複数のバイトデータを連続して転送するバースト転送が行われている。
【０００３】
通常、転送コントローラは、転送するバースト長に合わせて転送先アドレスを更新するアドレスカウンタを備えると共に、転送するバースト長単位でデータ数を更新する転送カウンタを備えている。また、アドレスカウンタ及び転送カウンタの更新タイミングを判断し、転送指示を行う制御部を備える。
【０００４】
このようなデータ転送において、例えばＦＩＦＯを使用する場合、バースト長が長いほどアクセス時間を短縮することができる。一方、転送コントローラが１回に専有する時間が長すぎる場合、他のメモリ装置（例えば、ハードディスク等）のアクセス待機時間は長くなる。
【０００５】
このため、特許文献１には、転送実行手段によるデータの転送中に状態制御手段から出力される転送期間信号に基づき、転送期間を制御する発明が開示されている。
【特許文献１】特開平１０−３２６２４８号公報（段落００３１〜００５８）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、上記特許文献１では、転送するデータを転送期間信号に基づきバースト長を切り替える構成であり、切り替えるバースト長は８バイト若しくは１６バイトの２種類である。したがって、上記データ転送装置では、効率よいデータ転送を行うことはできない。
【０００７】
そこで、本発明は転送するバースト長毎に切り替えを行わず、転送するデータ毎にバースト長をカウントし、そのカウント値に応じて段階的にバースト長を可変するデータ転送装置を提供するものである。
【課題を解決するための手段】
【０００８】
上記課題は本発明によれば、ホストバスを介して接続されるメモリ装置にアクセスする手段と、前記ホストバスを専有する前記メモリ装置の優先順位を決定する手段と、ＰＣＩバスを介して接続する外部機器のデータを一時的に保持する保持手段と、該保持手段が保持したデータの残量に応じて、前記メモリ装置からデータを読み出すバーストデータ量を変更する変更手段と、前記保持手段が保持するデータ量を、ライトカウンタとリードカウンタで計数し、ライトカウンタとリードカウンタの計数値に基づいて前記バーストデータの変更を判断する判断手段とを有するデータ転送装置を提供することによって達成できる。
【０００９】
このように構成することにより、ＰＣＩバスから一時的に保持しているデータの残量に応じて、外部機器によるメモリ装置のアクセスのバースト長を制限し、ＰＣＩバスアクセスが長時間待機させられることを回避できる。また、前記保持手段は、例えばＦＩＦＯである。
【００１０】
また、上記課題は本発明によれば、バーストアクセス中のデータ数をカウントするカウント手段と、第１の最大バースト数を記憶する第１の記憶手段と、第２の最大バースト数を記憶する第２の記憶手段と、前記第１の最大バースト数と前記第２の最大バースト数を比較する手段と、前記比較した結果、前記第２の最大バースト数が前記第１の最大バースト数より大きい場合、前記第１の最大バースト数の値を前記第２の最大バースト数の値で再記憶する手段とを有するデータ転送装置を提供することによって達成できる。
【００１１】
このように構成することにより、ＰＣＩバスアクセスにおいて、例えばターゲット側がディスコネクトを要求する場合、ターゲット側のバースト長の限界と判断し、次回からバースト長をその長さに合わせることにより、ディスコネクトに要する時間分、アクセス時間を短縮することができる。
【発明の効果】
【００１２】
本発明によれば、ビデオ転送のためにＰＣＩバスから一時的にデータを保管しているＦＩＦＯのデータの残量に応じて、遅いデバイスによるＤＭＡアクセスのバースト長を制限することにより、ビデオ転送のためのＰＣＩアクセスが長時間待機させられることを回避できる。
【００１３】
また、ＰＣＩアクセスにおいて、ターゲット側がディスコネクトを要求する場合、それをターゲット側のバースト長の限界と判断して次回からバースト長をその長さに合わせることにより、ディスコネクトに要する時間分、アクセス時間を短縮することができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施形態について図面を用いて詳細に説明する。
（実施形態１）
図１は、本実施形態の印刷装置を実現するためのシステム構成図である。
【００１５】
同図において、ビデオ転送コントローラ１は、ＰＣＩ（Peripheral Components Interconnect）バスを介して、ホストＰＣＩブリッジ２に接続されている。また、ホストＰＣＩブリッジ２は、ホストバスを介してメモリーコントローラ３、ＣＰＵ４、ＤＭＡコントローラ５、ＨＤＤ（ハードディスクドライブ）コントローラ６に接続されている。また、ホストＰＣＩブリッジ２は、ホストバスアービタ７に接続され、ホストバスアービタ７との間で後述する制御を行う。さらに、メモリーコントローラ３は、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）８に接続され、上記ＨＤＤコントローラ６はＨＤＤ９に接続されている。
【００１６】
ビデオ転送コントローラ１は、ＳＤＲＡＭ８からデータを取得し、ＦＩＦＯを介して、データをプリンタエンジン（不図示）に転送する装置であり、ビデオ転送コントローラ１は、ＦＩＦＯ１０、ビデオデータ変換部１１、ＰＣＩマスターコントローラ１２、ＰＣＩターゲットコントローラ１３で構成されている。
【００１７】
ＦＩＦＯ１０は、ＳＤＲＡＭ８から取得したデータを一時的に保持するバッファであり、ＦＩＦＯ１０にデータを書き込む際、そのデータ数がライトカウンタ１４によってカウントされる。一方、ＦＩＦＯ１０から出力されるデータ数はリードカウンタ１５によってカウントされる。また、比較器１６はライトカウンタ１４のカウント値とリードカウンタ１５のカウント値を比較し、該比較結果を上記ＤＭＡコントローラ５に通知する。したがって、ＦＩＦＯ１０に保持されるデータ量は、比較器１６の比較結果によって判断できる。
【００１８】
尚、ライトカウンタ１４はＰＣＩマスターコントローラ１２によって制御され、リードカウンタ１５はビデオデータ変換部１１によって制御される。また、ビデオデータ変換部１１は、ＦＩＦＯ１０に保持されたデータをシリアルデータに変換し、プリンタエンジン（印字ヘッド）に出力する。また、プリンタエンジン（印字ヘッド）へのビデオデータの転送は、水平同期信号に基づいて、クロック信号に同期して行われる。
【００１９】
上記構成において、ホストバスアービタ７は、ホストバスを専有する制御部を選択する装置である。また、選択する制御部は前述のホストＰＣＩブリッジ２、ＣＰＵ４、ＤＭＡコントローラ５の何れかである。図２は上記ホストバスアービタ７による制御部の選択処理を説明する図である。
【００２０】
ホストバスアービタ７は、回転優先により順次制御部を選択する。例えば、ＣＰＵ４からの要求に基づいて（ステップ（以下、Ｓで示す）１）、ＣＰＵ４に許可を与え（Ｓ２）、ＳＤＲＡＭ８のアクセス権をＣＰＵ４に与える。例えば、ＣＰＵ４がＳＤＲＡＭ８をアクセスする場合として、ＳＤＲＡＭ８にアクセスして、データを消去する場合等がある。また、この間、ＣＰＵ４はＳＤＲＡＭ８をアクセスし（Ｓ３がＮ）、必要な処理を完了すると（Ｓ３がＹ）、ホストバスアービタ７は次の制御部を選択する。
【００２１】
例えば、ＤＭＡコントローラ５からアクセス要求があれば（Ｓ４がＹ）、回転優先に従ってＤＭＡコントローラ５にアクセス許可を与える（Ｓ５）。ＤＭＡコントローラ５はホストバスを専有し、例えばホストバスを介してＨＤＤコントローラ６にアクセスし、ＨＤＤ９のデータをホストバスに出力する。その後、アクセスが終了すると（Ｓ６がＹ）、ホストバスアービタ７はホストバスをＤＭＡコントローラ５から開放し、回転優先動作を再開する。
【００２２】
次に、ホストＰＣＩブリッジ２からホストバスの専有要求があれば（Ｓ７がＹ）、ホストバスアービタ７は、ホストＰＣＩブリッジ２にホストバスを専有させる（Ｓ８）。ホストＰＣＩブリッジ２はホストバスを介してメモリーコントローラ３にアクセスし、アクセスが終了するまでホストバスアービタ７は待機する。
【００２３】
その後、ホストＰＣＩブリッジ２がメモリーコントローラ３のアクセスを終了すると（Ｓ９がＹ）、ホストバスアービタ７はホストバスをホストＰＣＩブリッジ２から開放する。以後、同様の処理を繰り返す。
【００２４】
図３は、上記処理の中で、ＨＤＤコントローラ６のＨＤＤ９に対するアクセスと、ＤＭＡコントローラ５のＳＤＲＡＭ８に対するアクセス動作を示すフローチャートである。
先ず、ＨＤＤコントローラ６がアクセスを開始すると（ステップ（以下、ＳＴで示す）１がＹ）、ＤＭＡコントローラ５に対してアクセス許可を求める（ＳＴ２）。その後、ＨＤＤコントローラ６は、ＤＭＡコントローラ５からアクセス許可を得られるまで待機する（ＳＴ３）。
【００２５】
一方、ＤＭＡコントローラ５は、ＨＤＤコントローラ６からアクセス要求を受信すると（ＳＴ４）、ホストバスアービタ７に対してホストバスの専有を要求する（ＳＴ５）。そして、ホストバスアービタ７からホストバスの専有を許可されるまで待機する。
【００２６】
その後、ホストバスアービタ７からホストバスの専有許可があると（ＳＴ６がＹ）、ＤＭＡコントローラ５は、ビデオ転送コントローラ１のＦＩＦＯ１０に保管されているデータの残量を確認する（ＳＴ７）。ここで、ＦＩＦＯ１０のデータ残量が多いとき、或いはデータがＦＩＦＯ１０に対して転送が終了しているとき、ＨＤＤコントローラ６のバースト長を最大値（例えば、３２ＫＢ）に設定する（ＳＴ８）。一方、ＦＩＦＯ１０のデータ残量が少ないとき、或いはビデオデータ転送中であるとき、ＨＤＤコントローラ６のバースト長を短い値（例えば、８ＫＢ）に設定する。
【００２７】
次に、ＤＭＡコントローラ５は設定されたバースト長に応じて、ＳＤＲＡＭ８をアクセスする（ＳＴ１０）。また、ＨＤＤコントローラ６は、上記設定されたバースト長に応じてＨＤＤ９をアクセスする（ＳＴ１１）。そして、ＨＤＤコントローラ６のアクセス処理が終了すると、ＨＤＤコントローラ６は終了信号を出力して再び処理（ＳＴ１）に戻る。
【００２８】
一方、図４は、ビデオ転送コントローラ１とホストＰＣＩブリッジ２間の処理動作を説明するフローチャートであり、ビデオ転送コントローラ１がＦＩＦＯ１０にデータを保管するまでの動作を示す。
【００２９】
先ず、ビデオ転送コントローラ１は、ビデオ転送を開始すると（ステップ（以下、ＳＴＰで示す）１）、ホストＰＣＩブリッジ２に対して「ＲＥＱ＃」（＃はアクティブＬＯＷを示す）のリクエスト信号を出力し（ＳＴＰ２）、ホストＰＣＩブリッジ２から応答を待つ（ＳＴＰ３）。
【００３０】
一方、ホストＰＣＩブリッジ２は、ビデオ転送コントローラ１から「ＲＥＱ＃」のリクエスト信号を受信すると（ＳＴＰ４）、ホストバスアービタ７に対してホストバスの専有を要求する（ＳＴＰ５）。そして、ホストバスアービタ７からホストバスの専有許可があると（ＳＴＰ６がＹ）、ホストＰＣＩブリッジ２は、ビデオ転送コントローラ１に対して許可通知「ＧＮＴ＃」を出力する（ＳＴＰ７）。
【００３１】
また、ホストＰＣＩブリッジ２は、ＳＤＲＡＭ８をアクセスし、データを取得する（ＳＴＰ８）。尚、最初のアクセス時、例えばデータがキャッシュされていない等の理由でアクセスに時間を要する場合、ホストＰＣＩブリッジ２は、ビデオ転送コントローラ１に対してリトライを要求する（ＳＴＰ９）。このリトライ要求については、後述するタイムチャートにおいても説明する。
【００３２】
次に、ビデオ転送コントローラ１は、ＰＣＩバスを介してホストＰＣＩブリッジ２にアクセスしてデータを取得する（ＳＴＰ１０）。取得したデータはＦＩＦＯ１０に保持する。その後、ホストＰＣＩブリッジ２がデータ転送を終了すると、最初の処理に戻り（ＳＴＰ１０がＹ、ＳＴＰ１）、転送処理が終了していないとき、ＦＩＦＯ１０のメモリに空きがあるか判断する（ＳＴＰ１２）。そして、空きが有れば（ＳＴＰ１２がＮ）、ホストＰＣＩブリッジ２に対して「ＲＥＱ＃」（＃はアクティブＬＯＷを示す）のリクエスト信号を出力し（ＳＴＰ２）、上記処理を繰り返す。また、同時にホストＰＣＩブリッジ２はＳＤＲＡＭ８のアクセスを終了すると、ホストＰＣＩブリッジ２はビデオ転送コントローラ１からのリクエスト信号の入力を待つ（ＳＴＰ１３がＹ、ＳＴＰ４）。
【００３３】
次に、図５は、ビデオ転送コントローラ１とＣＰＵ４が同時にＳＤＲＡＭ８をアクセスした時の動作を示すタイムチャートである。尚、「ＳＤＲＡＭ−ＲＡＳ」（Ｒｏｗ  Ａｄｄｒｅｓｓ  Ｓｔｒｏｂｅ）は、ＳＤＲＡＭ８において、行アドレスを指定する信号であり、「ＳＤＲＡＭ−ＣＡＳ」（Ｃｏｌｕｍｎ  Ａｄｄｒｅｓｓ  Ｓｔｒｏｂｅ）は、列アドレスを指定する信号である。また、「ＰＣＩ−ＲＥＱ＃」は、前述のようにバスマスタ、即ちホストＰＣＩブリッジ２がホストバスアービタ７にホストバスの専有を要求する時出力する信号であり、「ＰＣＩ−ＧＮＴ＃」は、ホストバスアービタ７がホストバスの専有を許可する時出力する信号である。
【００３４】
「ＦＲＡＭＥ＃」はイニシエータ、即ちホストＰＣＩブリッジ２が、ターゲット、即ちＳＤＲＡＭ８に対してアクセス要求を開始する時出力する信号である。また、「ＤＥＶＳＥＬ＃」は、選択されたターゲット（ＳＤＲＡＭ８）がイニシエータ（ホストＰＣＩブリッジ２）から「ＦＲＡＭＥ＃」を受信した時出力する信号である。
【００３５】
また、「ＴＲＤＹ＃」は、ターゲット（ＳＤＲＡＭ８）がイニシエータ（ホストＰＣＩブリッジ２）に対してアクセス要求を許可する時出力する信号である。さらに、「ＳＴＯＰ＃」は、ターゲット（ＳＤＲＡＭ８）がイニシエータ（ホストＰＣＩブリッジ２）に対してアクセスを中断するときに送出する信号であり、「ＡＤ」は、ＳＤＲＡＭ８のアドレスを示す。
【００３６】
同図において、時点Ｓまでは、ＣＰＵ４がホストバスを専有してＳＤＲＡＭ８をアクセスしている。この時までの処理は、先ずＣＰＵ４がＳＤＲＡＭ８にアクセスし（同図に示す「１」）、ＳＤＲＡＭ８からアクセス許可に従って（同図に示す「２」）、ＳＤＲＡＭ８の行アドレス、及び列アドレスを指定し（同図に示す「３」、「４」）、対応するアドレスから、例えばデータを読み出している（同図に示す「５」）。この処理を繰り返し、ＣＰＵ４はＳＤＲＡＭ８からデータを順次読み出す。
【００３７】
次に、時点Ｓにおいて、ホストＰＣＩブリッジ２がホストバスアービタ７にホストバスの専有を要求する。すなわち、ホストＰＣＩブリッジ２がＳＤＲＡＭ８に対して「ＰＣＩ−ＲＥＱ＃」信号を送出する（同図に示す「６」）。次に、ＳＤＲＡＭ８がホストＰＣＩブリッジ２に対して「ＰＣＩ−ＧＮＴ＃」信号を送出し（同図に示す「７」）、続いてホストＰＣＩブリッジ２がＳＤＲＡＭ８に「ＦＲＡＭＥ＃」信号を送出し（同図に示す「８」）、ＳＤＲＡＭ８がホストＰＣＩブリッジ２に「ＤＥＶＳＥＬ＃」信号を送出する（同図に示す「９」）。
【００３８】
ここで、ホストＰＣＩブリッジ２にＳＤＲＡＭ８から取得したデータが保持されていれば、ＳＤＲＡＭ８からホストＰＣＩブリッジ２に対して「ＴＲＤＹ＃」信号を送出する。本例では、時点ＴにおいてホストＰＣＩブリッジ２にＳＤＲＡＭ８から取得したデータが保持されていないか、又は保持したデータが充分ではないので、リトライ要求を行い、ＳＤＲＡＭ８はホストＰＣＩブリッジ２に対して「ＳＴＯＰ＃」信号を送出する（同図に示す「１０」）。
【００３９】
また、時点Ｕにおいて、再度ホストＰＣＩブリッジ２がホストバスアービタ７にホストバスの専有を要求する。先ず、ホストＰＣＩブリッジ２がＳＤＲＡＭ８に「ＰＣＩ−ＲＥＱ＃」信号を送出する（同図に示す「１１」）。続いて、ＳＤＲＡＭ８がホストＰＣＩブリッジ２に「ＰＣＩ−ＧＮＴ＃」信号を送出し（同図に示す「１２」）、ＳＤＲＡＭ８に「ＦＲＡＭＥ＃」信号を送出する（同図に示す「１３」）。
【００４０】
さらに、ＳＤＲＡＭ８がホストＰＣＩブリッジ２に「ＤＥＶＳＥＬ＃」信号を送出する（同図に示す「１４」）。この時、ホストＰＣＩブリッジ２にはＳＤＲＡＭ８から取得したデータが保持されているので、ＳＤＲＡＭ８からホストＰＣＩブリッジ２に「ＴＲＤＹ＃」信号を送出する（同図に示す「１５」）。
【００４１】
次に、時点Ｖにおいて、ホストＰＣＩブリッジ２はＳＤＲＡＭ８のデータを取得する（同図に示す「１６」）。本例では、ＣＰＵ４のＳＤＲＡＭ８に対するアクセスを１回あたり６４バイトとしている。ＳＤＲＡＭ８のアクセスは６４ビット幅×８回のバーストアクセスである。ＰＣＩのアクセスは３２ビット幅×１６回のバーストアクセスである。
【００４２】
次に、図６はビデオ転送コントローラ１とＤＭＡコントローラ５が同時にＨＤＤ９にアクセスした時の動作を示すタイムチャートである。
先ず、ＤＭＡコントローラ５はＳＤＲＡＭ８にアクセスの要求し（同図に示す「２０」）、ＳＤＲＡＭ８からアクセスの許可を得る（同図に示す「２１」）。次に、ＳＤＲＡＭ８はＤＭＡコントローラ５に保管されたデータの行アドレスを指定し、更にデータの列アドレスを指定し（同図に示す「２２」）、ＳＤＲＡＭ８からデータを取得する（同図に示す「２３」）。
【００４３】
また、時点Ｓにおいて、ホストＰＣＩブリッジ２がホストバスアービタ７にホストバスの専有を要求する。先ず、ホストＰＣＩブリッジ２はＳＤＲＡＭ８に「ＰＣＩ−ＲＥＱ＃」信号を送出し（同図に示す「２４」）、ＳＤＲＡＭ８がホストＰＣＩブリッジ２に「ＰＣＩ−ＧＮＴ＃」信号を送出する（同図に示す「２５」）。続いて、ホストＰＣＩブリッジ２はＳＤＲＡＭ８に「ＦＲＡＭＥ＃」信号を送出し（同図に示す「２６」）、ＳＤＲＡＭ８がホストＰＣＩブリッジ２に「ＤＥＶＳＥＬ＃」信号を送出する（同図に示す「２７」）。
【００４４】
ここで、ホストＰＣＩブリッジ２にＳＤＲＡＭ８から取得したデータが保持されていないか、又充分なデータが保持されていなければ、「ＳＴＯＰ＃」信号を送出する（同図に示す「２８」）。この場合、リトライ処理を行い、ホストＰＣＩブリッジ２に必要なデータが保持されていると「ＴＲＤＹ＃」信号を送出する（同図に示す「２９」）。
【００４５】
次に、時点Ｖにおいて、再度ホストＰＣＩブリッジ２がホストバスアービタ７にホストバスの専有を要求すると（同図に示す「３０」）、ＳＤＲＡＭ８は「ＰＣＩ−ＧＮＴ＃」信号を送出する（同図に示す「３１」）。以後上記と同様にして、ホストＰＣＩブリッジ２に必要なデータが保持されていない間、リトライを繰り返し、必要なデータが保持されると「ＴＲＤＹ＃」信号を送出し、順次データをビデオ転送コントローラ１のＦＩＦＯ１０に入力する。
【００４６】
図７は、ＨＤＤ９にアクセスするバースト長を１６ビット幅×８回に調整したときの動作を示すタイムチャートである。尚、各時点ＳないしＶにおける動作の説明は、前述の図６と同じあり、説明を省略する。
【００４７】
本例ではバースト長を１６ビット幅×８回に変更した結果、ＰＣＩバスの待ち時間は、１〜２回分のリトライに短縮されている（同図に示す「３２」）。すなわち、本例ではＨＤＤ９にアクセスするバースト長を短く変更したので、ホストＰＣＩブリッジ２を介してＦＩＦＯ１０には短いデータが短い周期で供給され、リトライ回数を減らし、データ待ち時間を短くすることが可能となる。
【００４８】
このことは、ＨＤＤ９へのアクセスだけでなく、ＳＤＲＡＭ８に対するアクセスにおいても同様であり、リトライ回数を減らし、ＳＤＲＡＭ８から効率よくＦＩＦＯ１０にデータを入力することが可能となる。
【００４９】
尚、バースト長を制限する以外に、ＤＭＡコントローラ５のアクセスを一定時間禁止することで実現する構成としてもよい。また、可変バースト長は８バイトと１６バイトに限らず、段階的に可変させてもよい。
（実施形態２）
次に、本発明の実施形態２について説明する。
【００５０】
本実施形態は、ＰＣＩバスのバースト転送において、転送先が中断を要求する時点をバースト長の限界と判断し、次からバースト長をその長さに調整する発明である。
図８は、本例のネットワーク構成を示す図である。ＣＰＵ２０とＳＤＲＡＭ２１はホストバスを介してホストＰＣＩブリッジ２２と接続している。ホストＰＣＩブリッジ２２は、更にＰＣＩバスを介してＰＣＩデバイスＡ、ＰＣＩデバイスＢ、ＰＣＩデバイスＣに接続されている。ホストＰＣＩブリッジ２２のバースト長の最大値は３２バイトである。一方、ＰＣＩデバイスＡのバースト長の最大値は１６バイトであり、ＰＣＩデバイスＢのバースト長の最大値は８バイトであり、ＰＣＩデバイスＣのバースト長の最大値は１６バイトである。
【００５１】
上記構成ではイニシエータであるＰＣＩデバイスＡ〜ＰＣＩデバイスＣに対してターゲットであるホストＰＣＩブリッジ２２のバースト長の最大値は大きい。したがって、この場合のデータ転送に問題はなく、以下のタイムチャートに従って実行される。
【００５２】
図９は、ＰＣＩデバイスＡがイニシエータ、ホストＰＣＩブリッジ２２がターゲットとなる場合のＰＣＩバスのアクセス処理を示すタイムチャートである。先ず、ＰＣＩデバイスＡがホストＰＣＩブリッジ２２に「ＦＲＡＭＥ＃」信号を送出する（同図に示す「４０」）。続いて、ホストＰＣＩブリッジ２２がＰＣＩデバイスＡに「ＤＥＶＳＥＬ＃」信号を送出する（同図に示す「４１」）。次に、ホストＰＣＩブリッジＡがＰＣＩデバイス２２に「ＴＲＤＹ＃」信号を送出し（同図に示す「４２」）、ＰＣＩデバイスＡはターゲットであるホストＰＣＩブリッジＡのデータ（１６ｂｙｔｅｓ）を取得する（同図に示す「４３」）。したがって、上記処理において、ストップ信号が出力されることはなく、データ転送が正常に行われる。
【００５３】
また、図１０は、ＰＣＩデバイスＢがイニシエータであり、ホストＰＣＩブリッジ２２がターゲットのときのＰＣＩバスのアクセスを示すタイムチャートである。この場合、ＰＣＩデバイスＢがターゲットであるホストＰＣＩブリッジ２２に「ＦＲＡＭＥ＃」信号を送出する（同図に示す「４４」）。続いて、ホストＰＣＩブリッジ２２がイニシエータであるＰＣＩデバイスＢに「ＤＥＶＳＥＬ＃」信号を送出する（同図に示す「４５」）。さらに、ホストＰＣＩブリッジ２２はＰＣＩデバイスＢに「ＴＲＤＹ＃」信号を送出し（同図に示す「４６」）、ＰＣＩデバイスＢはターゲットであるホストＰＣＩブリッジ２２のデータ（８ｂｙｔｅｓ）を取得する（同図に示す「４７」）。したがって、この場合も上記処理中、ストップ信号が出力されることはなく、データ転送が正常に行われる。
【００５４】
一方、図１１は、図８と同じ構成であるが、ホストＰＣＩブリッジ２４のバースト長の最大値が８バイトの場合である。この場合、イニシエータに対してターゲットのバースト長の最大値が小さいので問題となる。但し、図１２に示す場合、バースト長の最大値が８バイトであるイニシエータ（ＰＣＩデバイスＢ）が使用されるので、前述と同様ストップ信号が出力されることはなく、データ転送が正常に行われる。
【００５５】
しかし、図１３に示す場合、イニシエータがバースト長の最大値１６バイトのＰＣＩデバイスＡであり問題となる。すなわち、ＰＣＩブリッジＢに「ＦＲＡＭＥ＃」信号を送出し（同図に示す「４８」）、続いてターゲットであるホストＰＣＩブリッジＡがＰＣＩデバイス２４に「ＤＥＶＳＥＬ＃」信号を送出する（同図に示す「４９」）。さらに、ホストＰＣＩブリッジ２４がＰＣＩデバイスＡに「ＴＲＤＹ＃」信号を送出し（同図に示す「５０」）、ＰＣＩデバイスＡはホストＰＣＩブリッジ２４のデータを取得する（同図に示す「５１」）。
【００５６】
しかし、本例では最大８バイト分のデータがホストＰＣＩブリッジ２４に入力すると、それ以上ＰＣＩブリッジＡからデータを書き込むことができない。したがって、この場合ストップ信号が出力され、ホストＰＣＩブリッジ２４に対するデータ入力処理を停止する（同図に示す「５２」）。このため、クロック信号を必要とし、実質的なデータ転送時間が延びることになる。
【００５７】
そこで、本例では以下の構成とする。図１４は本例の構成を説明する図である。同図において、本例はＰＣＩバーストカウンタ３０、前回までのバースト長レジスタ３１、比較器３２、バースト長レジスタ３３を有する。また、図１５は、本例の処理を説明するフローチャートである。尚、バースト長レジスタ３３には、あるバースト長の最大値が記憶されているものとする。
【００５８】
先ず、例えばＰＣＩデバイスＣがＰＣＩバスにバーストアクセスする（ステップ（以下、Ｗで示す）１）。そして、バーストアクセスが終了した時点で（Ｗ２がＹ）、今回のバースト長と前回のバースト長を比較器３２によって比較する（Ｗ３）。すなわち、ＰＣＩバーストカウンタ３０の新たなバースト長と、前回までのバースト長レジスタ３１のデータを比較し、今回のバースト長が長い時、前回までのバースト長レジスタ３１の値を今回のバースト長の値に更新する（Ｗ４）。
【００５９】
次に、ＰＣＩデバイスＣは規定回数ＰＣＩバスにバーストアクセスしたか判断し（Ｗ５）、規定回数未満であれば再度上記処理を繰り返す（Ｗ５がＮ）。一方、ＰＣＩデバイスＣが規定回数ＰＣＩバスにバーストアクセスした場合（Ｗ５がＹ）、バースト長レジスタ３３に記憶する最大値を今回のバースト長の値に更新する（Ｗ６）。
【００６０】
図１６は、ＰＣＩデバイスＣがイニシエータとして機能し、ホストＰＣＩブリッジ２４がターゲッタとして機能する場合のＰＣＩバスのアクセスを示すタイムチャートである。ＰＣＩデバイスＣのバースト長の最大値は、前述のように１６バイトであり、ホストＰＣＩブリッジ２４のバースト長の最大値は８バイトである。
【００６１】
時点Ｙにおいて、前回までのバースト長レジスタの値で４バイトが記憶されている。ここから規定回数のバーストアクセスを行う。この場合、バースト長の最大値が４→６→８と順次大きくなり、これに伴って前述の比較器３２の比較結果に従ってバースト長レジスタ３３には上記値が順次更新される。尚、図１７は図１６に続くタイムチャートを示し、バースト長の最大値８が以後継続することが分かる。
【００６２】
以上のように、本例によればＰＣＩアクセスにおいて、バースト長を順次対応する大きさに変更することができ、ストップ信号の出力に基づくクロック信号の出力を減らし、データ転送を高速に行うことができる。
【図面の簡単な説明】
【００６３】
【図１】実施形態１のシステム構成図である。
【図２】ホストバスアービタの動作を示す図である。
【図３】ＨＤＤコントローラのＨＤＤに対するアクセスと、ＤＭＡコントローラのＳＤＲＡＭに対するアクセスの動作を示すフローチャートである。
【図４】ビデオ転送コントローラとホストＰＣＩブリッジの動作を示すフローチャートである。
【図５】ＣＰＵとビデオデータ転送が同時にＳＤＲＡＭにアクセスしたときの動作を示すタイムチャートである。
【図６】ＤＭＡコントローラとビデオデータ転送が同時にＨＤＤにアクセスしたときの動作を示すタイムチャートである。
【図７】ＨＤＤにアクセスするバースト長を１６ビット幅×８回に調整したときの動作を示すタイムチャートである。
【図８】実施形態２のネットワーク構成を示す図である。
【図９】ＰＣＩデバイスＡがイニシエータ、ホストＰＣＩブリッジがターゲットのときのＰＣＩバスのアクセスを示すタイムチャートである。
【図１０】ＰＣＩデバイスＢがイニシエータ、ホストＰＣＩブリッジがターゲッタのときのＰＣＩバスのアクセスを示すタイムチャートである。
【図１１】問題となるバースト長の最大値を有するホストＰＣＩブリッジの例を示すネットワーク構成図である。
【図１２】ＰＣＩデバイスＢがイニシエータ、ホストＰＣＩブリッジがターゲットのときのＰＣＩバスのアクセスを示すタイムチャートである。
【図１３】ＰＣＩデバイスＡがイニシエータ、ホストＰＣＩブリッジがターゲットタのときのＰＣＩバスのアクセスを示すタイムチャートである。
【図１４】ＰＣＩデバイスＣのバースト長レジスタの構成図である。
【図１５】バースト長レジスタのピークホールド値の更新処理を説明するフローチャートである。
【図１６】ＰＣＩデバイスＣがイニシエータ、ホストＰＣＩブリッジがターゲットのときのＰＣＩバスのアクセスを示すタイムチャートである。
【図１７】ＰＣＩデバイスＣがイニシエータ、ホストＰＣＩブリッジがターゲットのときのＰＣＩバスのアクセスを示すタイムチャートである。
【符号の説明】
【００６４】
１・・・ビデオ転送コントローラ
２・・・ホストＰＣＩブリッジ
３・・・メモリーコントローラ
４・・・ＣＰＵ
５・・・ＤＭＡコントローラ
６・・・ＨＤＤコントローラ
７・・・ホストバスアービタ
８・・・ＳＤＲＡＭ
９・・・ＨＤＤ
１０・・・ＦＩＦＯ
１１・・・ビデオデータ変換部
１２・・・ＰＣＩマスターコントローラ
１３・・・ＰＣＩターゲットコントローラ
１４・・・ライトカウンタ
１５・・・リードカウンタ
１６・・・比較器
２０・・・CPU
２１・・・ＳRAM
２２・・・ホストＰＣＩブリッジ
２４・・・ホストＰＣＩブリッジＰＣＩバーストカウンタ３０、
３１・・・前回までのバースト長レジスタ
３２・・・比較器、
３３・・・バースト長レジスタ、
【図１】
2007011884.tif 000003
【図２】
2007011884.tif 000004
【図３】
2007011884.tif 000005
【図４】
2007011884.tif 000006
【図５】
2007011884.tif 000007
【図６】
2007011884.tif 000008
【図７】
2007011884.tif 000009
【図８】
2007011884.tif 000010
【図９】
2007011884.tif 000011
【図１０】
2007011884.tif 000012
【図１１】
2007011884.tif 000013
【図１２】
2007011884.tif 000014
【図１３】
2007011884.tif 000015
【図１４】
2007011884.tif 000016
【図１５】
2007011884.tif 000017
【図１６】
2007011884.tif 000018
【図１７】
2007011884.tif 000019