(57)【要約】      （修正有）【課題】データ処理装置において、データ転送途中で真のデータ転送量が確定したとき、真のデータ転送量までデータを転送した後、ＤＭＡ転送を終了させ、データ転送の効率を低下させることのない手法を提供する。【解決手段】ＤＭＡコントローラにより、複数回の転送をする装置であって、、データの転送途中で終端認識部がデータの終端を認識したときに仮のデータ量より小さい真のデータ量を確定した後、中央演算処理部により設定された真のデータ量を転送し終えたときに転送を停止すると共に上流側へ停止信号を発し、上流側の各ＤＭＡコントローラは、停止信号の下流側から上流側への連鎖により転送をそれぞれ停止することを特徴とするデータ処理装置。【選択図】図１
2008257451.tif 000002
【特許請求の範囲】
【請求項１】
ＤＭＡ（ダイレクト・メモリー・アクセス）コントローラにより複数回の転送を順次行って一連のデータを処理する装置であって、
データを転送するためのバスと、
バスを介した転送を行うための複数のＤＭＡコントローラと、
各ＤＭＡコントローラが転送すべきデータ量をバスを介して設定する中央演算処理部と、
各ＤＭＡコントローラの転送をバスを介さずそれぞれ起動する起動信号と各ＤＭＡコントローラの転送をバスを介さず停止させる停止信号と互いのＤＭＡコントローラ間で所定関係に接続する接続部と、
データの終端を認識する終端認識部とを備え、
中央演算処理部は、各ＤＭＡコントローラがデータの転送を開始し得るように各ＤＭＡコントローラに仮のデータ量を設定し、かつ、データの転送途中で終端認識部がデータの終端を認識したときに仮のデータ量より小さい真のデータ量を確定した後、最下流のＤＭＡコントローラに真のデータ量を設定し、
各ＤＭＡコントローラは、データ始端が入力されたことに応じて起動信号の上流側から下流側への連鎖により転送をそれぞれ開始し、
さらに最下流のＤＭＡコントローラは、中央演算処理部により設定された真のデータ量を転送し終えたときに転送を停止すると共に上流側へ停止信号を発し、
上流側の各ＤＭＡコントローラは、停止信号の下流側から上流側への連鎖により転送をそれぞれ停止することを特徴とするデータ処理装置。
【請求項２】
最下流を除く各ＤＭＡコントローラは、各ユニットの転送終了を示す終了信号を出力し、
最上流を除く各ＤＭＡコントローラは、データが終端まで転送されたことを示す終端信号を出力し、
前記接続部は、上流側の各ＤＭＡコントローラからの終了信号をその下流側のＤＭＡコントローラが起動信号として受け、
下流側の各ＤＭＡコントローラからの終端信号をその上流側の各ＤＭＡコントローラが停止信号として受けるように接続する請求項１記載のデータ処理装置。
【請求項３】
データを処理する複数の処理部と、
データを格納する格納部とをさらに備え、
各処理部と格納部とはそれぞれがバスに接続され、
各ＤＭＡコントローラは、バスを介して格納部と各処理部との間でデータを転送するものである請求項１記載のデータ処理装置。
【請求項４】
一連のデータは、所定データ量以下の複数のユニットに分割されてなり、
真のデータ量は、各ユニットのデータ量の和に等しい請求項１記載のデータ処理装置。
【請求項５】
前記データは、主走査方向と副走査方向とに配列される画素に応じたデータの集合としての画像データであり、かつ、副走査方向に原稿を搬送して得られるものであり、
真のデータ量は、副走査方向の原稿長さに対応する量である請求項１記載のデータ処理装置。
【請求項６】
請求項１〜５のいずれか一つに記載のデータ処理装置と、
原稿の画像を読み取って画像データを提供する原稿読取装置とを備えてなる画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ＤＭＡコントローラにより複数回の転送を順次行って一連のデータを処理するデータ処理装置及びそれを備えてなる画像形成装置に関する。
【背景技術】
【０００２】
画像データなどの大容量データを高速で転送し、処理する必要がある装置では、バスを介したデータの転送にダイレクト・メモリー・アクセス（ＤＭＡ）コントローラを用いるものが多い。ＤＭＡコントローラは、中央演算処理部（ＣＰＵ）を介在させずにデータを転送するものであり、ＤＭＡコントローラを用いたデータ転送は、ＤＭＡ転送と呼ばれる。
【０００３】
ＤＭＡ転送にバスが使用されている間、ＣＰＵは処理を進めることができない。なぜならば、ＣＰＵは、それが実行すべき手順をプログラムとして格納するＲＯＭまたはＲＡＭにバスを介してアクセスし、プログラムを取得する。また、取得したプログラムの内容に応じ、バスに接続されたＲＯＭ、ＲＡＭ、周辺回路およびＤＭＡコントローラにバスを介してアクセスする。ＤＭＡコントローラがバスを開放するまでそれらのアクセスが待たされるからである。通常、ＤＭＡコントローラの動作条件、例えば、転送すべきデータ量（転送量）は、ＣＰＵがバスを介してＤＭＡコントローラにアクセスし、設定するように構成される。そこで、ＣＰＵは、データ転送前にＤＭＡや周辺回路に対して必要な設定を行う。その後、ＤＭＡコントローラを起動してデータの転送を開始する。ＤＭＡコントローラがデータを転送し終えた後、再びＣＰＵは処理を実行する。
【０００４】
画像データを扱う画像形成装置では、外部から入力される画像データを入力処理部からＤＭＡ転送し一旦、内部の画像メモリに格納し、その後、複数段階の処理を経て最終的に画像メモリから出力処理部へ転送し、外部へ出力する形態のものがある。ここで、画像データは、各転送の段階で、格納部としての画像メモリへ、あるいは、画像メモリからＤＭＡ転送される。この場合、画像メモリから読み出されたデータは、画像メモリの他の領域（空き領域）へ格納される。
【０００５】
画像形成装置では、ページ単位で画像を扱うのが通例である。しかし、１ページを一度にＤＭＡ転送すると、長時間にわたってＣＰＵの処理が待たされることになり、あるいは、先のページ処理が終了してから出ないと次のページの処理が開始できなくなるので、１ページを所定データ量以下のユニット（バンド）に分割し、バンド単位で画像データを転送し、処理する手法が提案されている（例えば、特許文献１参照）。このように、各ページの画像データをさらにバンドに分割し、バンド単位でＤＭＡ転送および処理することにより、１回のＤＭＡ転送の時間に比べて十分長い期間を平均すれば複数のバンドが並行して処理されているように構成することができる。換言すれば、入力処理部、画像処理部、出力処理部の各処理部を同時並行的に動作させ、大局的に見た場合に効率的な処理を行うことができる。
【特許文献１】特開平１１−１１２７５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ここで、バンドの転送ごとにＣＰＵが転送量を設定すると前の転送と次の転送との時間が長くなってしまう。そこで、ＤＭＡコントローラは、ページ単位とバンド単位の２つのレベルで転送量を設定でき、制御するように構成される。即ち、ＤＭＡコントローラは、転送がバンド単位の最大転送量Ｎｂに達するか、あるいは、予め決定されたページ単位の転送量Ｎｐに達するとその転送を終了する。例えば、Ｎｐが、Ｎｂの３倍よりも大きいが４倍より小さいとき、ＤＭＡコントローラは、そのページを４回に分けて転送する。最初の３回の転送は、転送量がＮｂに達したことにより終了する。最終の４回目の転送は、転送量がＮｐに達したことにより終了する。
【０００７】
前述したように、ＤＭＡコントローラの設定は、各ページのデータ転送前にのみ行うことが好ましい。バンド単位のＤＭＡ転送の途中でＣＰＵによる設定変更はできないし、バンドとバンドの間でＣＰＵによる設定変更を行うと１ページの転送に時間を要するからである。しかし、データの中には、転送を開始してから条件が確定するものがある。例えば、画像形成装置において、原稿を走査してその画像を画像データとして読み取るが、原稿の走査方向の長さは読取開始後でなければ確定しないといったケースである。このようなケースは、特に、原稿送り装置を用いて原稿を読み取る場合に起こり得る。
【０００８】
例えば、原稿が読取装置にセットされ読み取りを開始する前の状態で、原稿のサイズを検知する手段を持たないものがある。これは、主としてコスト的な理由による。また、読取開始前に原稿サイズを検知するものであっても、正確な原稿サイズを検出できない場合がある。異種サイズの複数ページが重ねてセットされた場合、各ページのサイズを前もって検出することはむずかしい。結局、読取開始前は各ページのうち最大のサイズが仮のサイズとして検知される。現行の各ページが１ページずつ読み取り部へ送られ、読み取られるときにそのページの最終的なサイズが確定する。これは主として検出機構の構成上の理由による。
【０００９】
このようなケースに対処する手法として、例えば、読取開始前、ＣＰＵは、読取可能な最大サイズをＤＭＡコントローラに設定した後、読み取りを開始する。ページのサイズ、即ちデータ転送量が確定した後、バンド単位のＤＭＡ転送の間でＣＰＵにより各ＤＭＡコントローラの設定を変更する。変更するのは、ページ単位の転送量であり、その値は、確定したデータ転送量である。
【００１０】
ところが、このような手法では、処理部の数が多くなるほど、設定に時間がかかる。各設定変更は、各ＤＭＡコントローラのデータ転送が変更後の転送量に達する前に行われなければならない。しかし、ＣＰＵの処理はＤＭＡ転送の合間に行われるので、設定変更の対象となるＤＭＡコントローラが多くなるほど、設定変更が間に合わないといったリスクが増える。
【００１１】
この問題に対処する一つの方法は、バンド単位の転送量を小さくしてＣＰＵ処理が可能になる機会を増やすことである。しかし、そのトレードオフは、ＤＭＡ転送の起動および停止にまつわる無駄時間が増えることである。バンド単位の転送量を小さくすると、１ページ中のバンド数が増える。即ち、ＤＭＡ転送の回数が増える。ＤＭＡの起動および停止に伴って、ＤＭＡコントローラの応答時間や、バスの調停に要する時間が増える。従って、１ページのデータ転送に時間がかかることになる。即ち、転送効率が低下する。
【００１２】
この発明は、以上のような事情を考慮してなされたものであって、複数のＤＭＡコントローラで順次データをＤＭＡ転送し、そのデータを処理するデータ処理装置において、データ転送途中で真のデータ転送量が確定したとき、真のデータ転送量までデータを転送した後、確実にＤＭＡ転送を終了させ、また、データ転送の効率を大きく低下させることのない手法を提供するものである。
【課題を解決するための手段】
【００１３】
この発明は、ＤＭＡ（ダイレクト・メモリー・アクセス）コントローラにより複数回の転送を順次行って一連のデータを処理する装置であって、データを転送するためのバスと、バスを介した転送を行うための複数のＤＭＡコントローラと、各ＤＭＡコントローラが転送すべきデータ量をバスを介して設定する中央演算処理部と、各ＤＭＡコントローラの転送をバスを介さずそれぞれ起動する起動信号と各ＤＭＡコントローラの転送をバスを介さず停止させる停止信号と互いのＤＭＡコントローラ間で所定関係に接続する接続部と、データの終端を認識する終端認識部とを備え、中央演算処理部は、各ＤＭＡコントローラがデータの転送を開始し得るように各ＤＭＡコントローラに仮のデータ量を設定し、かつ、データの転送途中で終端認識部がデータの終端を認識したときに仮のデータ量より小さい真のデータ量を確定した後、最下流のＤＭＡコントローラに真のデータ量を設定し、各ＤＭＡコントローラは、データ始端が入力されたことに応じて起動信号の上流側から下流側への連鎖により転送をそれぞれ開始し、さらに最下流のＤＭＡコントローラは、中央演算処理部により設定された真のデータ量を転送し終えたときに転送を停止すると共に上流側へ停止信号を発し、上流側の各ＤＭＡコントローラは、停止信号の下流側から上流側への連鎖により転送をそれぞれ停止することを特徴とするデータ処理装置を提供する。
【００１４】
また、この発明は、前記データ処理装置と、原稿の画像を読み取って画像データを提供する原稿読取装置とを備えてなる画像形成装置を提供する。
【発明の効果】
【００１５】
この発明のデータ処理装置において、中央演算処理部は、各ＤＭＡコントローラがデータの転送を開始し得るように各ＤＭＡコントローラに仮のデータ量を設定し、かつ、データの転送途中で終端認識部がデータの終端を認識したときに仮のデータ量より小さい真のデータ量を確定した後、最下流のＤＭＡコントローラに真のデータ量を設定し、各ＤＭＡコントローラは、データ始端が入力されたことに応じて起動信号の上流側から下流側への連鎖により転送をそれぞれ開始し、さらに最下流のＤＭＡコントローラは、中央演算処理部により設定された真のデータ量を転送し終えたときに転送を停止すると共に上流側へ停止信号を発し、上流側の各ＤＭＡコントローラは、停止信号の下流側から上流側への連鎖により転送をそれぞれ停止するので、データの終端が認識されたとき、ＣＰＵが最下流のＤＭＡコントローラに真のデータ量を設定するだけで、最下流のＤＭＡコントローラが真のデータ量を転送し終えたときに下流側から上流側へ連鎖的にＤＭＡ転送が停止する。従って、真のデータ転送量が確定したら、そのデータ量に達したときにＤＭＡ転送を確実に終了させることができる。また、データ転送の効率を大きく低下させることがない。
【００１６】
また、この発明の構成によれば、一連のデータ転送の途中で、転送を強制的に停止させたい場合、ＣＰＵは最下流のＤＭＡコントローラのみを停止させればよい。そうすれば、最下流のＤＭＡコントローラからの停止信号によって上流側の各ＤＭＡコントローラが連鎖的に転送を停止する。ＣＰＵは、各ＤＭＡコントローラに対してそれぞれ停止処理を行う必要がない。従って、確実かつ迅速に強制停止を行うことができる。
【００１７】
以下、この発明の好ましい実施形態について説明する。
最下流を除く各ＤＭＡコントローラは、各ユニットの転送終了を示す終了信号を出力し、最上流を除く各ＤＭＡコントローラは、データが終端まで転送されたことを示す終端信号を出力し、前記接続部は、上流側の各ＤＭＡコントローラからの終了信号をその下流側のＤＭＡコントローラが起動信号として受け、下流側の各ＤＭＡコントローラからの終端信号をその上流側の各ＤＭＡコントローラが停止信号として受けるように接続してもよい。このようにすれば、バスを介さずにＤＭＡ転送の起動および停止を連鎖させることができる。
【００１８】
また、データを処理する複数の処理部と、データを格納する格納部とをさらに備え、各処理部と格納部とはそれぞれがバスに接続され、各ＤＭＡコントローラは、バスを介して格納部と各処理部との間でデータを転送するものであってもよい。
【００１９】
さらにまた、一連のデータは、所定データ量以下の複数のユニットに分割されてなり、
真のデータ量は、各ユニットのデータ量の和に等しくてもよい。
【００２０】
また、前記データは、主走査方向と副走査方向とに配列される画素に応じたデータの集合としての画像データであり、かつ、副走査方向に原稿を搬送して得られるものであり、
真のデータ量は、副走査方向の原稿長さに対応する量であってもよい。
【００２１】
ここで示した種々の好ましい実施形態は、それら複数を組み合わせることもできる。
【発明を実施するための最良の形態】
【００２２】
以下、図面を用いてこの発明をさらに詳述する。なお、以下の説明は、すべての点で例示であって、この発明を限定するものと解されるべきではない。
【００２３】
図２は、この発明のデータ処理装置の構成例を示すブロック図である。図２のデータ処理装置は、より具体的には画像形成装置を想定している。従って、データは、ページ単位で読み込まれる画像データを想定している。画像デ―タは、画像形成装置の原稿読取部で読み取られ、データ処理装置１へ入力され、処理された後に印刷部へ出力される。ただし、これに限定されるものではない。例えば、外部から入力されるデータは、通信線を介して接続される外部のホストから提供されるページ記述言語等の印字データであってもよい。また、データの出力先は、印刷部でなく、通信線を介して接続される外部の機器、たとえばコンピュータであってもよい。
【００２４】
データ処理装置１は、複数の画像処理モジュールを含む。具体的には、画像処理モジュールＡ、画像処理モジュールＢおよび画像処理モジュールＣを含む。また、格納部としての画像メモリ１１を含む。さらに、接続部としての信号接続部１３を含む。また、画像データを転送するためのバス１５を含む。さらに、データ処理装置１の各部の動作を制御するＣＰＵ１７を含む。また、原稿読取部から各ページの終端を示す信号を受領し、ページの認識するページ終端認識部を含む。
【００２５】
画像処理モジュールＡ，ＢおよびＣ、信号接続部１３、バス１５は、ＬＳＩ上に集積された回路として実現されてもよい。信号接続部１３は、セレクタなどの回路要素を組み合わせて実現される。入力処理部は、例えば、画像フィルタ、色変換、倍率変換などの処理を画像データに対して施す周知の回路である。画像処理部は、画像フィルタ、画像回転などの処理を画像データに対して施す周知の回路である。出力処理部は、色補正、中間調補正などの処理を画像データに対して施す周知の回路である。
ページ終端認識部は、例えば、原稿を読取部へ給送する原稿送り装置から、原稿が後端部まで給送されたことを示す信号を受け、ページの終端を認識する。あるいは、読み取られた画像データの内容として、所定の値、例えば黒を示すレベルが所定量続いたらページの終端として認識する。
【００２６】
画像処理モジュールＡには、外部の原稿読取部から画像データが入力される。画像処理モジュールＡは、バス１５を介して画像メモリ１１と接続されている。また、画像処理モジュールＢは、バス１５を介して画像メモリ１１と接続されている。さらに、画像処理モジュールＣは、バス１５を介して画像メモリ１１と接続されている。画像処理モジュールＣは、外部の印刷部へ画像データを出力する。ＣＰＵ１７は、バス１５を介して画像処理モジュールＡ、ＢおよびＣと信号接続部１３とにアクセス可能である。
【００２７】
画像処理モジュールＡは、入力された画像データを処理する入力処理部と、処理された画像データを画像メモリ１１へ転送するためのＤＭＡコントローラW_DMA_Aとを含む。また、画像処理モジュールＡへは、w_band_end_in A信号とdma-stop_in A信号が入力され、画像処理モジュールＡからは、w_band_end_out A信号とdma_stop_out A信号が出力される。w_band_end_in A信号は、ＤＭＡコントローラW_DMA_AのＤＭＡ転送を外部から開始させる信号ためのである。dma_stop_in A信号は、ＤＭＡコントローラW_DMA_AのＤＭＡ転送を外部から強制的に停止させるための信号である。なお、強制停止後、ＤＭＡコントローラW_DMA_Aは新たなＤＭＡ転送を開始できる状態になる。また、w_band_end_outA信号は、ＤＭＡコントローラW_DMA_Aが設定された転送量のＤＭＡ転送を終了したことを示す信号である。dma_stop_out A信号は、dma_stop_in A信号に応答して出力され、ＤＭＡコントローラW_DMA_Aが停止したこと、あるいは、既に停止していることを示す信号である。
【００２８】
ここで、w_band_end_in A信号は起動信号、dma-stop_in A信号は停止信号、w_band_end_out A信号は終了信号、dma_stop_out A信号は終端信号に相当する。
【００２９】
画像処理モジュールＢは、画像データを処理する画像処理部と、画像メモリ１１の画像データを画像処理部へＤＭＡ転送するＤＭＡコントローラR_DMA_Bと、画像処理部で処理された画像データを画像メモリ１１へ転送するためのＤＭＡコントローラW_DMA_Bとを含む。また、画像処理モジュールＢへは、r_band_end_in B信号、w_band_end_in B信号およびdma_stop_in B信号が入力される。一方、画像処理モジュールＢからは、r_band_end_out B信号、w_band_end_out B信号およびdma_stop_out B信号が出力される。r_band_end_in B信号は、ＤＭＡコントローラR_DMA_BのＤＭＡ転送を外部から開始させるための信号である。w_band_end_in B信号は、ＤＭＡコントローラW_DMA_BのＤＭＡ転送を開始させるための信号である。dma_stop_in B信号は、ＤＭＡコントローラR_DMA_BおよびW_DMA_BのＤＭＡ転送を外部から強制的に停止させるための信号である。なお、強制停止後、ＤＭＡコントローラW_DMA_Bは新たなＤＭＡ転送を開始できる状態になる。また、r_band_end_outB信号は、ＤＭＡコントローラR_DMA_Bが設定された転送量のＤＭＡ転送を終了したことを示す信号である。w_band_end_outB信号は、ＤＭＡコントローラW_DMA_Bが設定された転送量のＤＭＡ転送を終了したことを示す信号である。dma_stop_out B信号は、dma_stop_in B信号に応答して出力され、ＤＭＡコントローラR_DMA_BおよびW_DMA_Bが停止したこと、あるいは、既に停止していることを示す信号である。
【００３０】
ここで、r_band_end_in Bおよびw_band_end_in B信号は起動信号、dma-stop_in B信号は停止信号、r_band_end_out Bおよびw_band_end_out B信号は終了信号、dma_stop_out B信号は終端信号に相当する。
【００３１】
画像処理モジュールＣは、画像データを処理して外部へ出力する出力処理部と、画像メモリ１１の画像データを出力処理部へＤＭＡ転送するＤＭＡコントローラR_DMA_Cとを含む。画像処理モジュールＣへは、r_band_end_in C信号とdma_stop_in C信号とが入力される。一方、画像処理モジュールＣからは、r_band_end_out C信号とdma_stop_out C信号とが出力される。r_band_end_in C信号は、ＤＭＡコントローラR_DMA_CのＤＭＡ転送を外部から開始させるための信号である。dma_stop_in C信号は、ＤＭＡコントローラR_DMA_CのＤＭＡ転送を外部から強制的に停止させるための信号である。なお、強制停止後、ＤＭＡコントローラR_DMA_Cは新たなＤＭＡ転送を開始できる状態になる。また、r_band_end_outC信号は、ＤＭＡコントローラR_DMA_Cが設定された転送量のＤＭＡ転送を終了したことを示す信号である。r_band_end_outC信号は、ＤＭＡコントローラR_DMA_Cが設定された転送量のＤＭＡ転送を終了したことを示す信号である。dma_stop_out C信号は、dma_stop_in C信号に応答して出力され、ＤＭＡコントローラR_DMA_Cが停止したこと、あるいは、既に停止していることを示す信号である。
【００３２】
ここで、r_band_end_in C信号は起動信号、dma_stop_in C信号は停止信号、r_band_end_out C信号は終了信号、dma_stop_out C信号は終端信号に相当する。
【００３３】
信号接続部１３は、ＣＰＵ１７の指示に応じ、各軌道信号、停止信号、終了信号、終端信号を所定関係に接続する。各信号を接続することにより、ＤＭＡコントローラW_DMA_A、R_DMA_B、W_DMA_BおよびR_DMA_CのＤＭＡ転送の起動および停止が、バスを介さず連鎖する。
【００３４】
図２の実施形態において、信号接続部１３は、w_band_end_out Aをr_band_end_in Bに接続し、ＤＭＡコントローラW_DMA_Aの転送終了とR_DMA_Bの転送開始を連鎖させる。さらに、w_band_end_out Bをr_band_end_in Cに接続し、ＤＭＡコントローラW_DMA_Bの転送終了とR_DMA_Cの転送開始を連鎖させる。なお、画像処理モジュールＢにおいて、ＤＭＡコントローラR_DMA_Bの転送終了とW_DMA_Bの転送開始とは連鎖している。以上の連鎖によって、画像処理モジュールＡへ入力された画像データは、ＤＭＡコントローラの連鎖により、入力処理部、画像メモリ１１、画像処理部、画像メモリ１１、出力処理部の順にＤＭＡ転送される。
【００３５】
一方、信号接続部１３は、dma_stop_out C信号をdma_stop_in B信号に接続し、dma_stop_out B信号をdma_stop_in A信号に接続する。これによって、ＤＭＡコントローラR_DMA_Cが強制的に停止させられると、それに連鎖してR_DMA_B、W_DMA_B、W_DMA_Aが停止する。
【００３６】
図３は、この実施形態のデータ処理装置において、１ページの画像データの流れを時系列的に示す説明図である。図３で、下方へ行くに従って時間が経過する。また、左側の枠内にＤＭＡコントローラW_DMA_AによるＤＭＡ転送の起動および停止と、それに関連する信号を示している。中央の枠内には、ＤＭＡコントローラR_DMA_BおよびW_DMA_BによるＤＭＡ転送の起動および停止と、それに関連する信号を示している。さらに、右側の枠内には、ＤＭＡコントローラR_DMA_CによるＤＭＡ転送の起動および停止と、それに関連する信号を示している。
【００３７】
また、図３には、４つの鎖線の枠がある。それぞれの枠は、一つのバンドに対応している。即ち、１ページの画像データは４つのバンドに分割されてＤＭＡ転送され、図２に示すように、各バンドに分けて画像メモリ１１内に格納される。図３の最も上の鎖線の枠は、第１のバンド（バンド１）に対応するＤＭＡ転送を示している。その下の枠は、第２のバンド（バンド２）に対応するＤＭＡ転送を示している。さらにその下の枠は、第３のバンド（バンド３）に対応するＤＭＡ転送を示している。最も下の枠は、最終のバンド（バンド４）に対応するＤＭＡ転送を示している。
【００３８】
時間の経過に沿って各部の動作を説明する。データの入力に先立って、ＣＰＵ１７は、画像処理モジュールＡ、ＢおよびＣの設定を行う（図３のステップＳ１、Ｓ２およびＳ３）。その中には、バンド単位の最大転送量の設定と、ページ単位の転送量としての仮の転送量の設定も含まれる。ここで、仮の転送量は、読み込み可能な最大サイズの原稿に対応する転送量である。従って、後に確定する真の転送量は、仮の転送量以下である。具体的には、バス１５を介して画像処理モジュールＡ，ＢおよびＣにそれぞれアクセスし、図示しないレジスタに所定の値を書き込むことで設定が行われる。
【００３９】
また、ＣＰＵ１７は、信号接続部１３に対し、各信号の接続を図２のように接続させる。具体的には、図示しない信号接続部のレジスタにバス１５を介して所定の値を書き込むことで各信号の接続がなされる。
【００４０】
さらに、ＣＰＵ１７は、入力処理部、画像処理部、出力処理部に設定をする。設定の一例は、画像フィルタの特性の選択、色補正に関する特性の選択、編集機能に関するパラメータの選択などである。このような設定は周知のものであり、この発明の本質ではないのでこれ以上の説明は省略する。
【００４１】
その後、ＤＭＡコントローラW_DMA_Aが起動されることによりＤＭＡ転送が開始される。（ステップＳ４）起動は、例えば、ＣＰＵが割込み処理でＤＭＡコントローラに指示を与えてもよい。あるいは、図示しない外部からの信号がw_band_in A信号に接続され、これよって起動されてもよい。
【００４２】
ＤＭＡコントローラW_DMA_Aは、バンド１の転送を開始する。その後、画像データの転送がステップＳ２で設定されたバンド単位の最大転送量に達すると、ＤＭＡ転送を終了する。そして、w_band_end_out A信号を出力する（ステップＳ５）。w_band_end_out A信号は、パルス状の信号である。このＤＭＡ転送によって、バンド１の画像データが画像メモリ１１に格納される。図２で、バンド１の画像データが格納される領域を、フェーズ１のバンド１の枠で示している。
【００４３】
前述したステップＳ５で出力されたw_band_end_out A信号は、画像処理モジュールＢのr_band_end_in B信号と接続されている。従って、w_band_end_out A信号が出力されると、ＤＭＡコントローラR_DMA_BおよびW_DMA_BのＤＭＡ転送が起動される。これによって、画像メモリ１１のフェーズ１のバンド１に格納された画像データは、画像処理部へ転送され、画像処理部で所定の処理をされたのち、再び画像メモリ１１へ転送される。転送された画像データは、転送元とは異なる領域に格納される。図２で、転送先の領域をフェーズ２のバンド１の枠で示している。画像データの転送がステップＳ２で設定されたバンド単位の最大転送量に達すると、ＤＭＡコントローラR_DMA_BおよびW_DMA_BはＤＭＡ転送を終了する。そして、w_band_end_out B信号を出力する（ステップＳ６）。
【００４４】
w_band_end_out B信号は、画像処理モジュールＣのr_band_end_in C信号と接続されている。従って、w_band_end_out B信号が出力されると、ＤＭＡコントローラR_DMA_CのＤＭＡ転送が起動される。これによって、画像メモリ１１のフェーズ２のバンド１に格納された画像データは、出力処理部へ転送され、出力処理部で所定の処理をされたのち、外部の印刷部へ転送される。このようにして、バンド１のデータが外部へ出力される。
【００４５】
一方、ステップＳ５でＤＭＡ転送を終了すると、ＤＭＡコントローラW_DMA_Aは、次のバンド２の転送を開始する。なお、入力処理部は、データバッファを有している。バンド１の転送後、バンド２の転送が開始されるまで若干の遅延があるが、その遅延量に相当する画像データはデータバッファに蓄積される。バンド２の転送が開始された後、画像データの転送がステップＳ２で設定されたバンド単位の最大転送量に達すると、ＤＭＡ転送を終了する。そして、再びw_band_end_out A信号を出力する（ステップＳ７）。このＤＭＡ転送によって、バンド２の画像データが画像メモリ１１のフェーズ１のバンド２の領域に格納される。
【００４６】
w_band_end_out A信号が出力されると、ＤＭＡコントローラR_DMA_BおよびW_DMA_BのＤＭＡ転送が起動される。これによって、画像メモリ１１のフェーズ１のバンド２に格納された画像データは、画像処理部へ転送され、画像処理部で所定の処理をされたのち、再び画像メモリ１１のフェーズ２のバンド２へ転送される。画像データの転送がステップＳ２で設定されたバンド単位の最大転送量に達すると、ＤＭＡコントローラR_DMA_BおよびW_DMA_BはＤＭＡ転送を終了する。そして、w_band_end_out B信号を出力する（ステップＳ８）。
【００４７】
w_band_end_out B信号が出力されると、ＤＭＡコントローラR_DMA_CのＤＭＡ転送が起動される。これによって、画像メモリ１１のフェーズ２のバンド２に格納された画像データは、出力処理部へ転送され、出力処理部で所定の処理をされたのち、外部の印刷部へ転送される。このようにして、バンド２のデータが外部へ出力される。
【００４８】
一方、ステップＳ７でＤＭＡ転送が終了すると、ＤＭＡコントローラW_DMA_Aは、次のバンド３の転送を開始する。バンド３についても、バンド１およびバンド２と同様にＤＭＡ転送がなされる。即ち、w_band_end_out A信号（ステップＳ９）、w_band_end_out B信号（ステップＳ１０）によってＤＭＡ転送が連鎖する。バンド３の画像データは、入力処理部から画像メモリ１１のフェーズ１のバンド３、画像処理部、画像メモリ１１のフェーズ２のバンド３、出力処理部を経て外部へ出力される。
【００４９】
さらに、ステップＳ９でＤＭＡ転送が終了すると、ＤＭＡコントローラW_DMA_Aは、次のバンド４の転送を開始する。バンド４についても、他のバンドと同様にＤＭＡ転送が連鎖的に起動される。即ち、w_band_end_out A信号（ステップＳ１１）、w_band_end_out B信号（ステップＳ１２）によってＤＭＡ転送が連鎖する。バンド４の画像データは、入力処理部から画像メモリ１１のフェーズ１のバンド４、画像処理部、画像メモリ１１のフェーズ２のバンド４および出力処理部を経て外部へ出力される。
【００５０】
バンド４の画像データの終了前に、画像読取部は、ページの終端を検出する。そして、ページの終端を示す信号をページ終端認識部へ送る。ページ終端認識部は、ページの終端が検出されるとＣＰＵ１７に割り込みで通知する。ＣＰＵ１７は、割込み処理中で真の転送量を確定し、バス１５を介して画像処理モジュールＣのＤＭＡコントローラR_DMA_Cの設定を変更する（ステップＳ１３）。変更するのは、ページ単位の転送量を設定するレジスタである。ＤＭＡコントローラR_DMA_CのＤＭＡ転送は、ページ単位の転送量が真の転送量に達したときに終了する。
【００５１】
ＤＭＡ転送が終了すると、ＤＭＡコントローラR_DMA_Cは、dma_stop_out C信号を出力する（ステップＳ１４）。dma_stop_out C信号は、dma_stop_in B信号に接続されている。dma_stop_out C信号が出力されると、ＤＭＡコントローラR_DMA_BおよびW_DMA_BはＤＭＡ転送を停止する。そして、dma_stop_out B信号を出力する（ステップＳ１５）。dma_stop_out B信号は、dma_stop_in A信号に接続されている。dma_stop_out B信号が出力されると、ＤＭＡコントローラW_DMA_AはＤＭＡ転送を停止する。なお、バンド４の転送量がバンド単位の最大転送量と等しい場合は、ＤＭＡコントローラW_DMA_A、R_DMA_BあるいはW_DMA_Bがdma_stop_in信号を待たずに転送を終了する。しかし、このようなケースは非常に稀である。通常は、バンド単位の最大転送量に達する前に外部からのデータ入力が途絶え、ＤＭＡコントローラW_DMA_A、R_DMA_BおよびW_DMA_Bは、ページ外の無効なデータを転送している。dma_stop_in信号が入力されることにより、無効なデータの転送が停止し、次のページ転送が開始できるようになる。
【００５２】
図１は、この実施形態のデータ処理装置において、ページの終端を認識した後の処理の具体例を示す説明図である。図１で、ページ単位の転送量は、原稿の副走査方向のライン数で制御され、各ＤＭＡコントローラのレジスタVAREAにライン数を書き込むと、ＤＭＡ転送が設定されたライン数に達したときに転送を終了する。
【００５３】
図３のステップＳ１、Ｓ２およびＳ３で、ＣＰＵ１７は、設定可能な最大ライン数５０００を各レジスタVAREAに設定する。その後、画像データの転送が開始され、転送途中でページの終端が認識されたときを「状態１」としている。状態１で、ページの真の転送量が、３８０ラインに確定される。図３で、「状態１」の枠内には、各ＤＭＡコントローラが転送したライン数を示している。即ち、「状態１」で、ＤＭＡコントローラW_DMA_Aは、３８０ラインの画像データを既に転送している。しかし、VAREAには転送量として５０００に設定されているので、さらに無効なデータを転送し続ける。なお、一例として、バンドの最大転送量は、１００ラインである。また、バンド４の転送が８０ラインに達したとき、即ち、ページの初めから３８０ラインに達したとき、ページの終端が認識されたとする。
【００５４】
図１の「状態２」は、図３のステップＳ１３に対応する。「状態３」の枠内に示すように、ＣＰＵ１７は、割込み処理中で、画像処理モジュールＣのＤＭＡコントローラR_DMA_CのレジスタVAREAに３８０を書き込む。即ち、ページ単位の転送量の設定を真の転送量に変更する。しかし、他のＤＭＡコントローラに対しては、真の転送量を設定せずに放置する。
【００５５】
図１の「状態３」は、図３のステップＳ１４およびＳ１５に対応する。dma_stop_out C信号が出力された時点でＤＭＡコントローラW_DMA_A、R_DMA_BおよびW_DMA_Bは４８０ラインまで転送している。また、dma_stop_out B信号が出力された時点でＤＭＡコントローラW_DMA_Aは５８０ラインまで転送している。この状態で、各ＤＭＡコントローラは転送を停止する。
【００５６】
なお、状態１でページの終端が認識されてから、ＣＰＵ１７がバスの使用権を獲得し、割込み処理でVAREAを変更するまでには多少の遅延がある。しかし、この実施形態によれば、最も下流のＤＭＡコントローラR_DMA_Cの設定を変更するので、ＤＭＡコントローラR_DMA_Cの転送量が真の転送量である３８０ラインに達するまでには時間的余裕がある。即ち、最も時間的余裕のあるＤＭＡコントローラのみに対して設定変更を行えばよいので、確実にＤＭＡ転送を停止されることができる。
【００５７】
なお、dma_stop_outの連鎖によって各ＤＭＡコントローラを停止させる手法は、ＤＭＡ転送の途中でページ終端が認識されたときのほか、読取部へ搬送される原稿が紙詰まりを起こして、ＤＭＡ転送を強制的に停止させたい場合にも適用される。この場合、ＣＰＵ１７は、図示しない経路で原稿読取部から紙詰まりの発生を通知される。通知に応答して、ＣＰＵは、最下流のＤＭＡコントローラR_DMA_Cを即時停止させる。このため、ＤＭＡコントローラは、ＣＰＵが転送の即時停止を指示するためのレジスタを備えている。指示に応答して、ＤＭＡコントローラR_DMA_Cが転送を終了するとdma_stop_out C信号が出力され、それに応答して、上流側のＤＭＡコントローラR_DMA_BおよびW_DMA_Bが停止し、さらにW_DMA_Aが停止する。
【００５８】
図１〜３は、画像処理部を含む画像処理モジュールＢが１つの場合を例にしているが、画像処理モジュールＢは、複数個あってもよい。複数への拡張は、前述した説明に基づいて容易に行うことができる。
【００５９】
なお、前述の実施形態は、いずれもデータが、入力処理部、格納部、画像処理部、格納部、出力処理部の順に転送される態様である。これに対し、第１の変形例として、データの転送経路が入力処理部、格納部、画像処理部、格納部であってもよい。即ち、データが最終的に格納部に格納されてもよい。このような態様の具体的な一例は、画像形成装置において、読み取った現行の画像を画像データとして記憶しておく機能、いわゆる画像ファイリング機能である。この場合、転送経路の最下流のＤＭＡコントローラは画像処理モジュールＢにある。ＣＰＵは、画像処理モジュールＢのＤＭＡコントローラに真のデータ転送量を設定する。
また、第２の変形例として、データの転送経路が格納部、画像処理部、格納部、出力処理部であってもよい。
【００６０】
前述した実施の形態の他にも、この発明について種々の変形例があり得る。それらの変形例は、この発明の範囲に属さないと解されるべきものではない。この発明には、請求の範囲と均等の意味および前記範囲内でのすべての変形とが含まれるべきである。
【図面の簡単な説明】
【００６１】
【図１】この実施形態のデータ処理装置において、ページの終端を認識した後の処理の具体例を示す説明図である。
【図２】この発明のデータ処理装置の構成例を示すブロック図である。
【図３】この実施形態のデータ処理装置において、１ページの画像データの流れを時系列的に示す説明図である。
【符号の説明】
【００６２】
１    データ処理装置
１１    画像メモリ
１３    信号接続部
１５    バス
１７    ＣＰＵ
【図１】
2008257451.tif 000003
【図２】
2008257451.tif 000004
【図３】
2008257451.tif 000005