(57)【要約】【課題】入出力バスに接続された入出力装置とメモリバスに接続されたメモリとの間で両バスを介してデータをＤＭＡ転送する際に、メモリバスの占有率が高くなるのを防止することができるデータ転送制御装置を提供すること。【解決手段】本発明のデータ転送制御装置１は、Ｉ／Ｏバス１０に接続されたＩ／Ｏデバイス６とＳＤＲＡＭバス９に接続されたＳＤＲＡＭ５との間でデータのＤＭＡ転送を行う装置であり、Ｉ／Ｏバス１０とＳＤＲＡＭバス９の転送速度差を緩衝するＦＩＦＯメモリ１１を備えており、ＳＤＲＡＭ５のデータをＩ／Ｏデバイス６へＤＭＡ転送する場合に、ＤＭＡ転送が許可された時点で、ＳＤＲＡＭ５のデータをＳＤＲＡＭバス９を介してＦＩＦＯメモリ１１へバースト転送・格納し、Ｉ／Ｏデバイス６からの転送要求を受けて、ＦＩＦＯメモリ１１に格納されているデータをＩ／Ｏバス１０を介してＩ／Ｏデバイス６へシングル転送する。【選択図】      図１
2006195612.tif 000002
【特許請求の範囲】
【請求項１】
入出力バスに接続された入出力装置とメモリバスに接続されたメモリとの間でデータのＤＭＡ転送を行うＤＭＡ転送手段を備えたデータ転送制御装置において、
前記ＤＭＡ転送手段は、前記入出力バスと前記メモリバスの転送速度差を緩衝するバッファを備えており、前記メモリのデータを前記入出力装置へＤＭＡ転送する場合に、ＤＭＡ転送が許可された時点で、前記メモリのデータを前記メモリバスを介して前記バッファへバースト転送・格納するとともに、前記入出力装置からの転送要求を受けて、前記バッファに格納されているデータを前記入出力バスを介して前記入出力装置へシングル転送することを特徴とするデータ転送制御装置。
【請求項２】
前記ＤＭＡ転送手段は、前記バッファに格納されたデータを前記入出力装置へ全て転送した時点で、次に転送すべき前記メモリのデータを前記バッファへバースト転送することを特徴とする請求項１記載のデータ転送制御装置。
【請求項３】
前記ＤＭＡ転送手段は、自身が備えるチャネル毎に前記バッファを有していることを特徴とする請求項１又は２記載のデータ転送制御装置。
【請求項４】
前記ＤＭＡ転送手段は、前記入出力装置のデータを前記メモリへＤＭＡ転送する場合に、前記入出力装置からの転送要求を受けて、前記入出力装置のデータを前記入出力バスを介して前記バッファへシングル転送・格納し、該バッファのメモリ残量がなくなった時点で、該バッファに格納されているデータを前記メモリバスを介して前記メモリへバースト転送することを特徴とする請求項１乃至３のいずれか１に記載のデータ転送制御装置。
【請求項５】
前記ＤＭＡ転送手段は、前記バッファから前記メモリへのバースト転送によるデータの取込みを前記メモリに途中で中止させるためのバースト転送中止命令を発行する命令発行手段を備えており、前記バッファに無効データが格納されている場合に、前記バースト転送中止命令を発行して、有効データのみを前記メモリへバースト転送することを特徴とする請求項４記載のデータ転送制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送制御装置に関し、詳しくは、入出力装置とメモリ間でデータのＤＭＡ転送を行うデータ転送制御装置に関する。
【背景技術】
【０００２】
入出力バス（Ｉ／Ｏバス）に接続された入出力装置（Ｉ／Ｏデバイス）とメモリバスに接続されたメモリとの間で前記２つのバスを介して各種データを転送する装置では、実際にデータを転送する際には装置内のＣＰＵを介すことなくデータを転送する、いわゆるＤＭＡ転送（Direct Memory Access Transfer）がＤＭＡコントローラによって行われる。これにより、ＣＰＵに負荷をかけることなく各種データを転送することができる（例えば、特許文献１参照。）。
【０００３】
また、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）等のメモリでは、メモリバス（ＳＤＲＡＭバス）を介して高速なデータ転送を行うことができるという利点を活かして、１回のバスサイクルで複数個のワードデータをまとめて転送する、いわゆるバースト転送が可能であり、転送速度の向上が図られている。ここで、ワードとは、４、８、１６、３２ビット等、転送されるデータの単位を表す。
【特許文献１】特開平７−２１０５００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、メモリバスを介して高速なデータ転送が可能な上記のＳＤＲＡＭ等のメモリと、入出力バスを介して高速なデータ転送を行うことができない入出力装置と、の間でＤＭＡ転送を行う場合、低速な入出力装置の転送速度に合せてＤＭＡ転送を行う必要がある。そのため、バースト転送を使うことができず、メモリバスの占有率が高くなってメモリのアクセス効率が低下し、メモリの高速性を活かすことができないという問題があった。
【０００５】
本発明は、かかる課題に鑑みてなされたものであり、入出力バスに接続された入出力装置とメモリバスに接続されたメモリとの間で両バスを介してデータをＤＭＡ転送する際に、メモリバスの占有率が高くなるのを防止することができるデータ転送制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、請求項１記載のデータ転送制御装置は、入出力バスに接続された入出力装置とメモリバスに接続されたメモリとの間でデータのＤＭＡ転送を行うＤＭＡ転送手段を備えたデータ転送制御装置において、前記ＤＭＡ転送手段は、前記入出力バスと前記メモリバスの転送速度差を緩衝するバッファを備えており、前記メモリのデータを前記入出力装置へＤＭＡ転送する場合に、ＤＭＡ転送が許可された時点で、前記メモリのデータを前記メモリバスを介して前記バッファへバースト転送・格納するとともに、前記入出力装置からの転送要求を受けて、前記バッファに格納されているデータを前記入出力バスを介して前記入出力装置へシングル転送することを特徴としている。
【０００７】
請求項２記載のデータ転送制御装置は、請求項１に記載のデータ転送制御装置において、前記ＤＭＡ転送手段は、前記バッファに格納されたデータを前記入出力装置へ全て転送した時点で、次に転送すべき前記メモリのデータを前記バッファへバースト転送することを特徴としている。
【０００８】
請求項３記載のデータ転送制御装置は、請求項１又は２に記載のデータ転送制御装置において、前記ＤＭＡ転送手段は、自身が備えるチャネル毎に前記バッファを有していることを特徴としている。
【０００９】
請求項４記載のデータ転送制御装置は、請求項１乃至３のいずれか１に記載のデータ転送制御装置において、前記ＤＭＡ転送手段は、前記入出力装置のデータを前記メモリへＤＭＡ転送する場合に、前記入出力装置からの転送要求を受けて、前記入出力装置のデータを前記入出力バスを介して前記バッファへシングル転送・格納し、該バッファのメモリ残量がなくなった時点で、該バッファに格納されているデータを前記メモリバスを介して前記メモリへバースト転送することを特徴としている。
【００１０】
請求項５記載のデータ転送制御装置は、請求項４に記載のデータ転送制御装置において、前記ＤＭＡ転送手段は、前記バッファから前記メモリへのバースト転送によるデータの取込みを前記メモリに途中で中止させるためのバースト転送中止命令を発行する命令発行手段を備えており、前記バッファに無効データが格納されている場合に、前記バースト転送中止命令を発行して、有効データのみを前記メモリへバースト転送することを特徴としている。
【発明の効果】
【００１１】
請求項１に記載のデータ転送制御装置によれば、入出力バスにおけるデータの転送速度がメモリバスにおけるデータの転送速度よりも遅い場合でも、メモリバスを介してメモリとバッファとの間で高速なデータ転送を行うことができる。したがって、メモリバスの占有率が高くなるのを防止することができ、メモリのアクセス効率が向上するという利点がある。
【００１２】
請求項２に記載のデータ転送制御装置によれば、バッファに格納されたデータが全て入出力装置へ転送されるまでＤＭＡ転送手段（ＤＭＡコントローラ）がメモリにアクセスしないため、バッファに格納されたデータが全て入出力装置へ転送されるまでの間、メモリバスが開放され、メモリバスの占有率が高くなるのを防止することができる。
【００１３】
請求項３に記載のデータ転送制御装置によれば、入出力装置毎にバッファを備えているので、例えば、メモリと複数の入出力装置との間でデータ転送を行う場合でも、メモリバスの占有率が高くなるのを防止することができる。
【００１４】
請求項４に記載のデータ転送制御装置によれば、バッファが入出力装置から転送されたデータで一杯になるまでＤＭＡ転送手段はメモリにアクセスしないため、それまでの間メモリバスが開放される。また、バッファに格納されたデータは、メモリバスを介してメモリへバースト転送される。したがって、入出力装置からメモリへデータをＤＭＡ転送する場合に、メモリバスの占有率が高くなるのを防止することができる。
【００１５】
請求項５に記載のデータ転送制御装置によれば、入出力装置からメモリへデータをＤＭＡ転送する場合に、メモリへ転送する必要のない無効データがメモリへ転送されるのを防止することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施の形態に係るデータ転送制御装置をコピー機能やファクシミリ機能を備える画像処理装置に適用した場合について、図面に基づき説明する。本発明の実施の形態に係るＤＭＡ（Direct Memory Access）コントローラ（データ転送制御装置）１を備える画像処理装置２は、制御部（ＣＰＵ：Central Processing Unit）３、ＲＯＭ（Read Only Memory）４、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）５、及びＩ／Ｏデバイス６を備えており、各部１、３、及び４は、システムバス７によって通信可能に接続されている。なお、画像処理装置２は、これらの各部の他に、図示しないが、原稿の画像データを読取る原稿読取部、ユーザが各種の情報を入力するための操作部、該操作部に併設されたＬＣＤからなり、各種の画面情報を表示する表示部、画像データの画像を用紙に記録する記録部等を備えているが、本発明の実施の形態においては、これらの説明は省略する。
【００１７】
制御部３は、この画像処理装置２を構成する各部を制御する。ＲＯＭ４は、制御部３によって画像処理装置２の各部が制御されるための制御プログラムを格納している。ＳＤＲＡＭ（メモリ）５は、画像処理装置２の動作の実行に伴って取得される画像データや設定情報等の各種データを書込み及び読み出し可能に格納するものであり、Ｉ／Ｏデバイス（入出力装置）６へ転送すべきデータや、Ｉ／Ｏデバイス６から転送されたデータを格納する。このＳＤＲＡＭ５は、該ＳＤＲＡＭ５と各種デバイス間でデータを転送するためのＳＤＲＡＭバス（メモリバス）９に接続されている。
【００１８】
Ｉ／Ｏデバイス６ａ（６）とＩ／Ｏデバイス６ｂ（６）は、例えば、コピーやファクシミリ送受信などのために画像データを符号化及び復号するＣＯＤＥＣ（Coder and Decoder）や、ファクシミリ送受信データの変調及び復調を行うＭＯＤＥＭ等であり、Ｉ／Ｏデバイス６ａ及び６ｂは、ＤＭＡコントローラ１との間でデータ転送を行うためのＩ／Ｏバス（入出力バス）１０に接続されている。なお、Ｉ／Ｏバス１０に接続されるＩ／Ｏデバイス６の数は２個に限定されるものではなく、３個以上のＩ／Ｏデバイス６を接続するようにしてもよい。
【００１９】
ＤＭＡコントローラ１は、Ｉ／Ｏバス１０及びＳＤＲＡＭバス９に接続されており、Ｉ／Ｏバス１０に接続されたＩ／Ｏデバイス６とＳＤＲＡＭバス９に接続されたＳＤＲＡＭ５との間でデータのＤＭＡ転送を行うものであり、具体的には、ＳＤＲＡＭ５に格納されているデータをＩ／Ｏデバイス６へ転送するＤＭＡ転送と、Ｉ／Ｏデバイス６のデータをＳＤＲＡＭ５へ転送するＤＭＡ転送を行う。
【００２０】
なお、Ｉ／Ｏバス１０におけるデータの転送速度とＳＤＲＡＭバス９におけるデータの転送速度は異なる。そのため、ＤＭＡコントローラ１は、上記のＤＭＡ転送を行う場合に、Ｉ／Ｏバス１０とＳＤＲＡＭバス９の転送速度差を緩衝するためのＦＩＦＯ（First In First Out）メモリ（バッファ）１１を備えており、ＳＤＲＡＭ５とＩ／Ｏデバイス６との間のデータ転送は、このＦＩＦＯメモリ１１を介して行われる。また、ＤＭＡコントローラ１は、各Ｉ／Ｏデバイス６（ここでは、Ｉ／Ｏデバイス６ａとＩ／Ｏデバイス６ｂ）がＤＭＡコントローラ１に対して、ＤＭＡ転送を要求するために使用するチャネルを複数備えており、自身が備えるこれらのチャネル毎にＦＩＦＯメモリ１１を有している。なお、ＦＩＦＯメモリ１１に格納されたデータは、先入れ先出し方式（ＦＩＦＯ方式）で処理される。
【００２１】
また、本実施形態においては、ＳＤＲＡＭ５が高速アクセス可能なデバイスなので、ＳＤＲＡＭバス９は、高速なデータ転送が可能な高速バスであり、ＤＭＡコントローラ１は、ＳＤＲＡＭバス９を介してＳＤＲＡＭ５とＦＩＦＯメモリ１１との間でＤＭＡ転送を行う場合にはバースト転送を行う。一方、Ｉ／Ｏデバイス６が低速アクセスしかできないデバイスなので、Ｉ／Ｏバス１０は、高速なデータ転送を行うことができない低速バスであり、ＤＭＡコントローラ１は、Ｉ／Ｏバス１０を介してＦＩＦＯメモリ１１とＩ／Ｏデバイス６との間でＤＭＡ転送を行う場合にはシングル転送を行う。ここで、バースト転送は、１回のバスサイクルで複数個のワードデータをまとめて転送するＤＭＡ転送であり、シングル転送は、１回のバスサイクルで１個のワードデータを転送するＤＭＡ転送である。
【００２２】
また、ＤＭＡコントローラ１は、ＦＩＦＯメモリ１１からＳＤＲＡＭ５へのバースト転送によるデータの取込みをＳＤＲＡＭ５に途中で中止させるためのバーストストップコマンド（バースト転送中止命令）を発行するコマンド生成回路（不図示）を備えており、ＦＩＦＯメモリ１１からＳＤＲＡＭ５へデータをバースト転送中にコマンド生成回路によりバーストストップコマンドを発行すると、発行したバーストストップコマンドがＳＤＲＡＭ５へ入力される。これにより、ＳＤＲＡＭ５は、ＳＤＲＡＭバス９からのデータの取込みを中止する。
【００２３】
上記構成を備える画像処理装置２のＤＭＡコントローラ１は、Ｉ／Ｏバス１０に接続されたＩ／Ｏデバイス６とＳＤＲＡＭバス９に接続されたＳＤＲＡＭ５との間で２つのバス１０及び９を介してデータのＤＭＡ転送を行う機能を備えている。以下、ＳＤＲＡＭ５のデータをＩ／Ｏデバイス６（ここでは、Ｉ／Ｏデバイス６ａ又はＩ／Ｏデバイス６ｂのいずれか）へＤＭＡ転送する場合に、画像処理装置２において行われる処理動作について、図２に示すフローチャートに基づいて説明する。
【００２４】
制御部３は、ＤＭＡコントローラ１によるＤＭＡ転送を許可する前に、転送元のＳＤＲＡＭ５のアドレス及び転送ワード数（転送カウンタ）をＤＭＡコントローラ１に初期設定する（Ｓ１）。
【００２５】
そして、ＤＭＡコントローラ１は、制御部３によりＳＤＲＡＭ５からＩ／Ｏデバイス６へのＤＭＡ転送が許可されたか否かを判断する（Ｓ２）。すなわち、Ｉ／Ｏデバイス６からの転送要求（ＤＲＥＱ：ＤＭＡリクエスト）を受付けるか否かを判断する。ここで、ＤＭＡ転送が許可されたと判断した場合（Ｓ２：ＹＥＳ）、ＤＭＡ転送が許可された時点で、ＳＤＲＡＭ５のデータをＳＤＲＡＭバス９を介してＦＩＦＯメモリ１１へバースト転送・格納する（Ｓ３）。すなわち、複数個のワードデータをＳＤＲＡＭ５からＦＩＦＯメモリ１１へバースト転送して当該ＦＩＦＯメモリ１１に格納する。
【００２６】
なお、ＳＤＲＡＭ５には、専用コマンドにより予めバースト長（１度にまとめて転送するデータ長）が、例えば１ワード、２ワード、４ワード、８ワード、ｆｕｌｌ Ｐａｇｅ等の中から設定されるようになっており、この設定されたバースト長に基づいてＳ３におけるバースト転送が行われる。例えば、バースト長が「８（ワード）」に設定されている場合には、ＤＭＡコントローラ１は、ＳＤＲＡＭ５からＦＩＦＯメモリ１１へ「８」個のワードデータを連続してＤＭＡ転送（バースト転送）する。なお、ＤＭＡコントローラ１は、Ｉ／Ｏデバイス６からの転送要求（ＤＲＥＱ）の有無に関わらず、ＤＭＡ転送が許可された時点でＳ３のバースト転送を開始する。
【００２７】
次に、ＤＭＡコントローラ１は、Ｉ／Ｏデバイス６からの転送要求があったか否かを判断する（Ｓ４）。ここで、転送要求があったと判断した場合（Ｓ４：ＹＥＳ）、そのＩ／Ｏデバイス６からの転送要求を受けて、応答信号（ＤＡＣＫ：ＤＭＡアクノリッジ）を返信するとともにＦＩＦＯメモリ１１に格納されているデータをＩ／Ｏバス１０を介してＩ／Ｏデバイス６へシングル転送する（Ｓ５）。すなわち、１個のワードデータを転送する。そして、転送カウンタを１カウントダウンさせるとともに、ＦＩＦＯメモリ１１からＩ／Ｏデバイス６へシングル転送されたワードデータのデータサイズに応じて、転送元アドレスを所定量増加させる（Ｓ６）。
【００２８】
ＤＭＡコントローラ１は、Ｓ５のシングル転送及びＳ６の処理動作を行った後、ＤＭＡ転送が終了したか否かを判断する（Ｓ７）。具体的には、Ｉ／Ｏデバイス６へ転送すべきＳＤＲＡＭ５のデータを全てＩ／Ｏデバイス６へ転送したか否かを転送カウンタが「０」であるか否かに基づいて判断する。ここで、ＤＭＡ転送が終了していないと判断した場合（Ｓ７：ＮＯ）、ＦＩＦＯメモリ１１のデータを全てＩ／Ｏデバイス６へ転送したか否かを判断する（Ｓ８）。このＳ８において、ＦＩＦＯメモリ１１のデータを全て転送していないと判断した場合には（Ｓ８：ＮＯ）、Ｓ４以降の処理動作を再度行うことにより、ＦＩＦＯメモリ１１に格納されているデータをシングル転送によりＩ／Ｏデバイス６へ転送する。
【００２９】
一方、ＤＭＡコントローラ１は、ＦＩＦＯメモリ１１のデータを全て転送したと判断した場合（Ｓ８：ＹＥＳ）、更にＤＭＡ転送すべきデータがＳＤＲＡＭ５に格納されているので、Ｓ３以降の処理動作を再度行う。このように、ＤＭＡコントローラ１は、ＦＩＦＯメモリ１１に格納されたデータをＩ／Ｏデバイス６へ全て転送した時点で、次に転送すべきＳＤＲＡＭ５のデータをＦＩＦＯメモリ１１へバースト転送する。そして、Ｉ／Ｏデバイス６へ転送すべきデータを全て転送した場合、ＤＭＡ転送が終了したと判断し（Ｓ７：ＹＥＳ）、処理を完了する。
【００３０】
図３は、ＳＤＲＡＭ５に格納されているデータをＩ／Ｏデバイス６へＤＭＡ転送する際の画像処理装置２内のタイミングチャートを示した図である。この図３において、ＤＭＡ許可は、制御部３からＤＭＡコントローラ１に対するＤＭＡ転送を許可する信号、ＳＤＲＡＭ〜ＦＩＦＯメモリは、ＳＤＲＡＭ５からＦＩＦＯメモリ１１へバースト転送されるデータ、ＤＲＥＱは、Ｉ／Ｏデバイス６からＤＭＡコントローラ１に対する転送要求、ＤＡＣＫは、ＤＲＥＱに対するＤＭＡコントローラ１の応答信号、ＦＩＦＯメモリ〜Ｉ／Ｏデバイスは、ＦＩＦＯメモリ１１からＩ／Ｏデバイス６へシングル転送されるデータを示している。
【００３１】
図示するように、ＤＭＡコントローラ１は、制御部３によってＤＭＡ転送が許可されると、Ｉ／Ｏデバイス６からのＤＲＥＱに先立って、ＳＤＲＡＭ５のデータをＳＤＲＡＭバス９を介してＦＩＦＯメモリ１１へバースト転送・格納する。なお、ここでは、バースト長が「１６」に設定されており、１６個のワードデータ（図中の四角で囲まれた０〜１５）を連続して転送する。そして、それとともに、Ｉ／Ｏデバイス６からのＤＲＥＱを受けて、応答信号としてＤＡＣＫをＩ／Ｏデバイス６へ返信するとともに、ＦＩＦＯメモリ１１に格納されている１個のワードデータをシングル転送する。ＤＭＡコントローラ１は、Ｉ／Ｏデバイス６からのＤＲＥＱを受ける毎にＤＡＣＫの返信及びこのシングル転送を行う。
【００３２】
そして、ＤＭＡコントローラ１は、ＦＩＦＯメモリ１１に格納されたデータをＩ／Ｏデバイス６へシングル転送により全て転送すると、その時点で、次に転送すべきＳＤＲＡＭ５のデータをＦＩＦＯメモリ１１へバースト転送する。
【００３３】
以上説明したように、ＤＭＡコントローラ１は、ＤＭＡ転送が許可された時点で、Ｉ／Ｏデバイス６からの転送要求に先立って、Ｉ／Ｏデバイス６へ転送すべきＳＤＲＡＭ５のデータをＦＩＦＯメモリ１１へ予めバースト転送し、ＦＩＦＯメモリ１１のデータをＩ／Ｏデバイス６へシングル転送する。したがって、Ｉ／Ｏバス１０の転送速度がＳＤＲＡＭバス９の転送速度に比べて低速であってもＳＤＲＡＭバス９を介してＳＤＲＡＭ５からＦＩＦＯメモリ１１へデータを高速転送することができる。また、図３からも明らかなように、ＤＭＡコントローラ１は、ＦＩＦＯメモリ１１に格納されたデータが全てＩ／Ｏデバイス６へ転送されるまでＳＤＲＡＭ５にアクセスしない。そのため、ＳＤＲＡＭバス９の転送速度の高速性が失われることもなく、ＳＤＲＡＭバス９の占有率が高くなるのを防止することができる。結果として、他のＩ／Ｏデバイス６がＳＤＲＡＭ５との間でデータ転送を行う場合に、ＳＤＲＡＭバス９におけるデータ転送速度が低下するのを防止することができる。
【００３４】
また、Ｉ／Ｏデバイス６から転送要求を受けた時点で、ＦＩＦＯメモリ１１には既に転送すべきデータが格納されているので、ＤＭＡコントローラ１は、ＳＤＲＡＭ５からＩ／Ｏデバイス６へ転送すべきデータをＩ／Ｏデバイス６からの転送要求があった後に直ちに転送することができる。
【００３５】
次に、Ｉ／Ｏデバイス６のデータをＳＤＲＡＭ５へＤＭＡ転送する場合に、画像処理装置２において行われる処理動作について、図４に示すフローチャートに基づいて説明する。制御部３は、ＤＭＡコントローラ１によるＤＭＡ転送を許可する前に、転送先のＳＤＲＡＭ５のアドレス及び転送ワード数（転送カウンタ）をＤＭＡコントローラ１に初期設定する（Ｓ１１）。
【００３６】
そして、ＤＭＡコントローラ１は、制御部３によってＩ／Ｏデバイス６からＳＤＲＡＭ５へのデータのＤＭＡ転送が許可された後、Ｉ／Ｏデバイス６からの転送要求（ＤＲＥＱ）があったか否かを判断する（Ｓ１２）。ここで、転送要求があったと判断した場合（Ｓ１２：ＹＥＳ）、Ｉ／Ｏデバイス６からの転送要求を受けて、Ｉ／Ｏデバイス６のデータをＩ／Ｏバス１０を介してＦＩＦＯメモリ１１へシングル転送・格納する（Ｓ１３）。すなわち、１個のワードデータをＩ／Ｏデバイス６からＦＩＦＯメモリ１１に転送して当該ＦＩＦＯメモリ１１に格納する。そして、転送カウンタを１カウントダウンさせるとともに、Ｉ／Ｏデバイス６からＦＩＦＯメモリ１１へシングル転送されたワードデータのデータサイズに応じて、転送先アドレスを所定量増加させる（Ｓ１４）。
【００３７】
続いて、ＤＭＡコントローラ１は、次のデータをＦＩＦＯメモリ１１に格納することが可能であるか否かを判断する（Ｓ１５）。すなわち、Ｉ／Ｏデバイス６から更にデータをシングル転送してそのデータをＦＩＦＯメモリ１１に格納することができるか否かをＦＩＦＯメモリ１１のメモリ残量に基づいて判断する。ここで、次のデータをＦＩＦＯメモリ１１に格納することができないと判断した場合（Ｓ１５：ＮＯ）、すなわち、ＦＩＦＯメモリ１１がＳＤＲＡＭ５へ転送すべきデータで一杯の場合、ＦＩＦＯメモリ１１に格納されているデータをＳＤＲＡＭバス９を介してＳＤＲＡＭ５へバースト転送する（Ｓ１６）。すなわち、専用コマンドによりＳＤＲＡＭ５に予め設定されたバースト長（例えば１ワード、２ワード、４ワード、８ワード、ｆｕｌｌ Ｐａｇｅ等）に基づいて複数個のワードデータをＦＩＦＯメモリ１１からＳＤＲＡＭ５へバースト転送して当該ＳＤＲＡＭ５に格納する。このように、ＤＭＡコントローラ１は、ＦＩＦＯメモリ１１のメモリ残量がなくなった時点で、ＦＩＦＯメモリ１１に格納されているデータをＳＤＲＡＭバス９を介してＳＤＲＡＭ５へバースト転送する。
【００３８】
ＤＭＡコントローラ１は、Ｓ１５において次のデータを格納することが可能であると判断した場合（Ｓ１５：ＹＥＳ）、又はＳ１６の処理動作を行った場合、Ｉ／Ｏデバイス６からの転送要求が最後にあった時からの経過時間が所定時間を経過したか否かを判断する（Ｓ１７）。ここで、所定時間を経過していないと判断した場合には（Ｓ１７：ＮＯ）、Ｓ１２以降の処理動作を再度行う。一方、所定時間を経過したと判断した場合（Ｓ１７：ＹＥＳ）、ＳＤＲＡＭ５へ転送すべきデータがＦＩＦＯメモリ１１にあるか否かを判断する（Ｓ１８）。
【００３９】
ＤＭＡコントローラ１は、ＳＤＲＡＭ５へ転送すべきデータがＦＩＦＯメモリ１１にあると判断した場合には（Ｓ１８：ＹＥＳ）、ＦＩＦＯメモリ１１に格納されているデータに無効データが含まれているか否かを判断する（Ｓ１９）。ここで、無効データとは、ＦＩＦＯメモリ１１においてＳＤＲＡＭ５へ転送すべきデータ（有効データ）に隣接してＦＩＦＯメモリ１１に格納されているＳＤＲＡＭ５へ転送する必要のないデータである。このＳ１９において、無効データは含まれていないと判断した場合（Ｓ１９：ＮＯ）、ＦＩＦＯメモリ１１に格納されているデータをＳＤＲＡＭバス９を介してＳＤＲＡＭ５へバースト転送する（Ｓ２０）。
【００４０】
逆に、ＦＩＦＯメモリ１１に格納されているデータに無効データが含まれていると判断した場合（Ｓ１９：ＹＥＳ）、ＦＩＦＯメモリ１１に格納されているデータをＳＤＲＡＭバス９を介してＳＤＲＡＭ５へバースト転送するとともに、途中でバーストストップコマンドを発行する（Ｓ２１）。ここで発行されたバーストストップコマンドは、ＳＤＲＡＭ５へ入力される。これにより、ＳＤＲＡＭ５は、ＳＤＲＡＭバス９からのデータの取込みを中止する。このようにして、ＤＭＡコントローラ１は、ＦＩＦＯメモリ１１に無効データが格納されている場合に、バーストストップコマンドを発行して、有効データのみをＳＤＲＡＭ５へバースト転送する。
【００４１】
ＤＭＡコントローラ１は、ＳＤＲＡＭ５へ転送すべきデータがＦＩＦＯメモリ１１にないと判断した場合（Ｓ１８：ＮＯ）、Ｓ２０の処理動作を行った場合、又はＳ２１の処理動作を行った場合、ＤＭＡ転送が終了したか否かを判断する（Ｓ２２）。具体的には、Ｉ／Ｏデバイス６からＳＤＲＡＭ５へ転送すべきデータを全てＳＤＲＡＭ５へ転送したか否かを転送カウンタが「０」であるか否かに基づいて判断する。そして、ＤＭＡ転送が終了していないと判断した場合には（Ｓ２２：ＮＯ）、Ｓ１２以降の処理動作を再度行い、ＤＭＡ転送が終了したと判断した場合には（Ｓ２２：ＹＥＳ）、処理を完了する。
【００４２】
図５は、Ｉ／Ｏデバイス６のデータをＳＤＲＡＭ５へＤＭＡ転送する際の画像処理装置２内のタイミングチャートを示した図である。この図５において、ＤＭＡ許可は、制御部３からＤＭＡコントローラ１に対するＤＭＡ転送を許可する信号、ＤＲＥＱは、Ｉ／Ｏデバイス６からＤＭＡコントローラ１に対する転送要求、ＤＡＣＫは、ＤＲＥＱに対するＤＭＡコントローラ１の応答信号、Ｉ／Ｏデバイス〜ＦＩＦＯメモリは、Ｉ／Ｏデバイス６からＦＩＦＯメモリ１１へシングル転送されるデータ、ＦＩＦＯメモリ〜ＳＤＲＡＭは、ＦＩＦＯメモリ１１からＳＤＲＡＭ５へバースト転送されるデータを示している。
【００４３】
図示するように、ＤＭＡコントローラ１は、制御部３によってＤＭＡ転送が許可された状態で、Ｉ／Ｏデバイス６からのＤＲＥＱを受けると、応答信号としてＤＡＣＫをＩ／Ｏデバイス６に返信するとともにＩ／Ｏデバイス６の１個のワードデータをＩ／Ｏバス１０を介してＦＩＦＯメモリ１１へシングル転送・格納する。ＤＭＡコントローラ１は、上記のＤＡＣＫの返信及びシングル転送を繰返し行ってＦＩＦＯメモリ１１のメモリ残量がなくなると、その時点でＦＩＦＯメモリ１１に格納されているデータをＳＤＲＡＭバス９を介してＳＤＲＡＭ５へバースト転送する。なお、ここでは、バースト長が「１６」に設定されており、１６個のワードデータ（図中の四角で囲まれた０〜１５）を連続して転送する。
【００４４】
以上説明したように、ＤＭＡコントローラ１は、ＦＩＦＯメモリ１１がＩ／Ｏデバイス６から転送されたデータで一杯になるまでＳＤＲＡＭ５にアクセスしないので、それまでの間、ＳＤＲＡＭバス９が開放される。また、ＦＩＦＯメモリ１１に格納されたデータをＳＤＲＡＭバス９を介してＳＤＲＡＭ５へバースト転送する。したがって、ＳＤＲＡＭバス９の占有率が高くなるのを防止することができる。そのため、他のデバイスがＳＤＲＡＭ５との間でデータ転送を行う場合に、ＳＤＲＡＭバス９におけるデータ転送速度が低下するのを防止することができる。
【００４５】
なお、本実施の形態で示したＤＭＡコントローラ１及び該ＤＭＡコントローラ１を備える画像処理装置２の構成は、本発明に係るデータ転送制御装置の一態様にすぎず、本発明の要旨を逸脱しない範囲内で適宜設計変更できることは勿論であり、本発明に係るデータ転送制御装置は、例えば、複写機、ファクシミリ装置、スキャナ、プリンタ、これらの複合機等に適用することができる。
【産業上の利用可能性】
【００４６】
本発明は、例えば、入出力装置とメモリ間でデータのＤＭＡ転送を行うデータ転送制御装置に適用可能である。
【図面の簡単な説明】
【００４７】
【図１】本発明の実施の形態に係るＤＭＡコントローラを備える画像処理装置の構成例を示したブロック図である。
【図２】ＳＤＲＡＭからＩ／ＯデバイスへデータをＤＭＡ転送する場合に、画像処理装置において行われる処理動作を示したフローチャートである。
【図３】ＳＤＲＡＭからＩ／ＯデバイスへデータをＤＭＡ転送する際の画像処理装置内のタイミングチャートを例示した図である。
【図４】Ｉ／ＯデバイスからＳＤＲＡＭへデータをＤＭＡ転送する場合に、画像処理装置において行われる処理動作を示したフローチャートである。
【図５】Ｉ／ＯデバイスからＳＤＲＡＭへデータをＤＭＡ転送する際の画像処理装置内のタイミングチャートを例示した図である。
【符号の説明】
【００４８】
１    ＤＭＡコントローラ（データ転送制御装置）
２    画像処理装置
３    制御部（ＣＰＵ）
５    ＳＤＲＡＭ（メモリ）
６    Ｉ／Ｏデバイス（入出力装置）
９    ＳＤＲＡＭバス（メモリバス）
１０    Ｉ／Ｏバス（入出力バス）
１１    ＦＩＦＯメモリ（バッファ）
【図１】
2006195612.tif 000003
【図２】
2006195612.tif 000004
【図３】
2006195612.tif 000005
【図４】
2006195612.tif 000006
【図５】
2006195612.tif 000007