(57)【要約】【課題】  通信エラーが発生した場合のデータ転送の遅れを低減。【解決手段】  割当て時間Ｙ内に所要時間Ｘで転送できる量の全データをＤＭＡＣにより転送するにおいて、Ｙ，Ｘおよび通信エラーのときの通信再開に要するオーバヘッド時間Ｚから定まるタイミングマージンＡ以内で転送し得るデータ量以下のバンドに１プレーンの画像データを区切ってデータを転送し、通信エラーが発生するとそのとき転送中のバンド又はその直前のバンドから転送を再開する。また、通信エラー発生許容設定値をＮとすると、タイミングマージンＡ／Ｎ以内で転送し得るデータ量以下のバンドに区切ってデータを転送する。また、符号データ量が、タイミングマージンＡ以内で転送し得るデータ量以下となる画像データ量で、１プレーンの画像データをバンドに区切って、バンド毎に符号データに圧縮符号化してＨＤＤに転送する。【選択図】  図８
2007299304.tif 000002
【特許請求の範囲】
【請求項１】
割当て時間内に所要時間で転送できる量の全データをＤＭＡＣにより転送する場合に、
前記割当て時間，所要時間および通信エラーのときの通信再開に要するオーバヘッド時間から定まるタイミングマージン以内で転送し得るデータ量以下のバンドに区切ってデータを転送し、通信エラーが発生するとそのとき転送中のバンド又はその直前のバンドから転送を再開する、ことを特徴とするデータ転送制御方法。
【請求項２】
前記全データ転送の通信エラー発生回数の許容設定値をＮとすると、前記タイミングマージン／Ｎ以内で転送し得るデータ量以下のバンドに区切ってデータを転送し、通信エラーが発生するとそのとき転送中のバンド又はその直前のバンドから転送を再開する、請求項１に記載のデータ転送制御方法。
【請求項３】
前記全データは１プレーンの画像データであり、前記ＤＭＡＣによる転送は、シリアルＡＴＡを用いる通信である、請求項１または２に記載のデータ転送制御方法。
【請求項４】
１プレーンの画像データを圧縮符号化した、割当て時間内に所要時間で転送できる量の全符号データをＤＭＡＣにより転送する場合に、
符号データ量が、前記割当て時間，所要時間および通信エラーのときの通信再開に要するオーバヘッド時間から定まるタイミングマージン以内で転送し得るデータ量以下となる画像データ量で、１プレーンの画像データをバンドに区切ってバンド毎に符号データに圧縮符号化し、これによって生成した符号データのバンドを転送し、通信エラーが発生するとそのとき転送中の符号データのバンド又はその直前のバンドから転送を再開する、ことを特徴とするデータ転送制御方法。
【請求項５】
前記全符号データ転送の通信エラー発生回数の許容設定値をＮとすると、前記タイミングマージン／Ｎ以内で転送し得るデータ量以下となる画像データ量で、１プレーンの画像データをバンドに区切ってバンド毎に符号データに圧縮符号化し、これによって生成した符号データのバンドを転送し、通信エラーが発生するとそのとき転送中の符号データのバンド又はその直前のバンドから転送を再開する、請求項４に記載のデータ転送制御方法。
【請求項６】
前記ＤＭＡＣによる転送は、シリアルＡＴＡを用いる通信である、請求項４または５に記載のデータ転送制御方法。
【請求項７】
データの転送先又は転送元は、ＨＤＤである、請求項１乃至６のいずれか１つに記載のデータ転送制御方法。
【請求項８】
再送を開始するバンドは、通信エラーを検出したバンドの一つ前のバンドである、請求項１乃至７のいずれか１つに記載のデータ転送制御方法。
【請求項９】
転送対象データ群に関する割当て時間，所要時間および通信エラーのときの通信再開に要するオーバヘッド時間、から定まるタイミングマージン以内で転送し得るデータ量以下のバンドに、前記転送対象データ群を区切るためのディスクリプタチェーンをメモリ上に構成する管理情報生成手段；および、
前記ディスクリプタチェーンにもとづいて前記バンドの区分ごとに転送対象データ群を転送し、該転送の間に通信エラーを生じると、そのとき転送中のバンド又はその直前のバンドからの転送を再開するＤＭＡＣ；
を備えるデータ転送制御装置。
【請求項１０】
前記管理情報生成手段は、前記転送対象データ群転送の通信エラー発生回数の許容設定値をＮとすると、前記タイミングマージン／Ｎ以内で転送し得るデータ量以下のバンドに、前記転送対象データ群を区切るためのディスクリプタチェーンをメモリ上に構成する、請求項９に記載のデータ転送制御装置。
【請求項１１】
前記転送対象データ群は１プレーンの画像データであり、前記ＤＭＡＣは、シリアルＡＴＡを用いて転送する、請求項９または１０に記載のデータ転送制御装置。
【請求項１２】
符号データ量が、前記割当て時間，所要時間および通信エラーのときの通信再開に要するオーバヘッド時間から定まるタイミングマージン以内で転送し得るデータ量以下となる画像データ量で、１プレーンの画像データをバンドに区切ってバンド毎に符号データに圧縮符号化する手段；
前記符号データのバンドを転送するためのディスクリプタチェーンをメモリ上に構成する管理情報生成手段；および、
前記ディスクリプタチェーンにもとづいて前記符号データのバンドを転送し、該転送の間に通信エラーを生じると、そのとき転送中のバンド又はその直前のバンドからの転送を再開するＤＭＡＣ；
を備えるデータ転送制御装置。
【請求項１３】
前記１プレーンの画像データをバンドに区切ってバンド毎に符号データに圧縮符号化する手段は、全バンドの前記転送の完了の間の通信エラー発生回数の許容設定値をＮとすると、前記符号データのバンドがタイミングマージン／Ｎ以内で転送し得るデータ量以下となる画像データ量で、１プレーンの画像データをバンドに区切ってバンド毎に符号データに圧縮符号化する、請求項１２に記載のデータ転送制御装置。
【請求項１４】
前記ＤＭＡＣは、シリアルＡＴＡを用いる通信で転送する、請求項１２または１３に記載のデータ転送制御装置。
【請求項１５】
前記ＤＭＡＣが再送を開始するバンドは、通信エラーを検出したバンドの一つ前のバンドである、請求項９乃至１４のいずれか１つに記載のデータ転送制御装置。
【請求項１６】
前記ＤＭＡＣは、転送中のディスクリプタより１つ前のディスクリプタの情報を保持するレジスタを持ち、通信エラーが発生したときは、前記管理情報生成手段の再転送指示に応答して、該１つ前のディスクリプタに基づいてバンドの転送を再開する、請求項９乃至１５のいずれか１つに記載のデータ転送制御装置。
【請求項１７】
前記ＤＭＡＣは、転送中のディスクリプタより１つ前のディスクリプタの情報を保持するレジスタを持ち、通信エラーが発生したときは、自起動で該１つ前のディスクリプタに基づいてバンドの転送を再開する、請求項９乃至１５のいずれか１つに記載のデータ転送制御装置。
【請求項１８】
１以上のプレーンの画像データを格納できる一次記憶手段；
１以上のプレーンの画像データを格納できる二次記憶手段；
画像出力手段；
前記一次記憶手段の画像データを前記二次記憶手段に転送する、請求項９乃至１１のいずれか１つに記載のデータ転送制御装置；および、
前記二次記憶手段に転送したバンド区分の画像データを前記一次記憶手段を介して前記画像出力手段に転送する手段；
を備える画像形成装置。
【請求項１９】
１以上のプレーンの画像データを格納できる一次記憶手段；
１以上のプレーンの画像データの符号データを格納できる二次記憶手段；
前記一次記憶手段の画像データをバンド区分で符号化して前記二次記憶手段に格納する、請求項１２乃至１４のいずれか１つに記載のデータ転送制御装置；および、
前記二次記憶手段に転送したバンド区分の符号データを前記一次記憶手段に転送し、該一次記憶手段から読み出して画像データに復号化して前記画像出力手段に転送する手段；
を備える画像形成装置。
【請求項２０】
前記二次記憶手段はＨＤＤである、請求項１８または１９に記載の画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送制御に関し、例えばＳＡＴＡ（Serial AT Attachment）など、シリアル通信データをＤＭＡ（Direct Memory Access）でメモリに転送するデータ転送制御方法，装置および画像形成装置に関する。本発明は例えば、複写機，プリンタ，ＰＣ（Personal Computer：パソコン），ハードディスクレコーダ、及び、その他のＳＡＴＡを利用するデバイス、に使用できる。
【背景技術】
【０００２】
【特許文献１】特開２０００−２９８６４０号公報。
【０００３】
引用文献１には、ＤＭＡＣ（Direct Memory Access Controller）の基本的な構成および動作に関する記載がある。複数バンドに分かれた画像データをＤＭＡＣでチェーンしながら転送する方法は、特許文献１およびその他の特許文献などにより周知である。さらに特許文献１では、バンド毎の転送完了時に継続割り込みを発生して次バンドの転送を開始する方法を記載している。
【０００４】
ところで、シリアルデータ通信は、パラレルデータ通信と比較して伝送速度を高速化することができる反面、伝送路における通信エラーが発生しやすいため、エラー発生時の再送制御が必須となる。特にシリアルＡＴＡ（Serial AT Attachment：SATA）では、通信エラーが発生した際には、データのみの再送ではなくコマンドの再発行が必要であるため、一般にソフトが介在して再送制御を行う。
【０００５】
図１５に、図１に示す複合機能カラー複写システムでの印刷時の、従来の画像データ転送パスを示す。ここで「符号」とは、画像データを圧縮符号化した圧縮データである。ホストであるパソコンＰＣから送られる印刷データをプリンタ１４でプリントアウトする場合の、データ転送を次に示す：
１．ネットワークＩ／Ｆ１０９，ＡＳＩＣ（Application Specific IC）１０２およびＣＰＵ１０１が、ホストＰＣが入力した印刷データ（ＰＤＬ：Page Description Language）を、メモリ１０５に格納する；
２．ＣＰＵ１０１が、ＡＳＩＣ１０２を用いて印刷データを画像ピクセルデータ（画像データ）に変換（イメージ変換）してメモリ１０５に書込む；
３．コントローラＡＳＩＣ１０２内のＤＭＡＣで、メモリ１０５の画像データを圧縮（符号化）してＨＤＤ１１１に格納する。カラー画像の場合は、各プレーン（各色）毎にＨＤＤに格納する；
４．ＨＤＤに格納した圧縮データ（符号）は、ＡＳＩＣ１０２内のＤＭＡＣにより符号のままメモリ１０５に転送する。転送は、プレーン毎に順次行なう；
５ａ．全てのプレーンをメモリ１０５に転送した後、ＡＳＩＣ１０２内のＤＭＡＣにより伸長（圧縮データの、画像データへの復号化）しつつプリンタ１４に出力する。低速機の場合は、上記の手順を踏むため安全性に問題は無い。しかし、高速機では機器の生産性すなわち画像処理速度（頁／分）を上げるため、
５ｂ．各プレーンがメモリ１０５に転送された時点で、各プレーン毎にＤＭＡＣにより符号を画像データに伸長しつつプリンタに出力する制御を行う場合がある。この制御を行うことで、ファーストコピーやマルチページの場合の紙間（用紙搬送ピッチ）を詰めることができる。反面、ＨＤＤ１１１のシリアル通信エラー発生時の再送で、出力画像が異常になる恐れがある。図１６にその動作を示す。図１６を参照する。
【０００６】
−正常時（シリアル通信エラーが発生しなかった時）：図１６の（ａ）−
１．印字要求があると、ＡＳＩＣ１０２内のＤＭＡＣを用いて各プレーンのデータをＨＤＤ１１１からメモリ１０５に転送する；
２．各プレーンの転送完了毎に、ビデオ出力（符号を画像データに伸張しつつ、ＶＯＵＴ，プリンタ１４へ出力）を起動する。図１６の（ａ）では、Ｃ色（シアン），Ｍ色（マゼンダ），Ｙ色（イエロー），Ｋ色（ブラック）を順次メモリに転送し、メモリへの転送が完了すると直ちにそのプレーンのビデオ出力を起動している。
【０００７】
−異常時（シリアル通信エラーが発生した時）：図１６の（ｂ）−
１．印字要求があると、ＡＳＩＣ１０２内のＤＭＡＣを用いて各プレーンのデータをＨＤＤ１１１からメモリ１０５に転送する；
２．Ｃ色の、上記１．の転送が完了した時点でＣ色のビデオ出力を起動する；
３．例として、Ｍ色転送中にＨＤＤ１１１のシリアル通信エラーが発生したとすると；
４．Ｍ色の転送を中断し、Ｍ色の先頭から再送（再転送）を行なう；
５．プリンタ１４は、Ｃ色のデータを引き取り印刷を開始し始めているが、Ｍ色のデータが来ないので異常画像となる。システムによってはエラーによる印刷中止になる。
【０００８】
これまでの説明は、以下を前提としている：
・プリンタ１４側には各プレーンの画像を格納するだけのメモリを持たない；
・ＨＤＤ１１１からメモリ１０５へＤＭＡ転送するのは、１プレーン単位。これは、従来のパラレルＡＴＡを用いるＨＤＤ１１１では通信エラーを想定していないためである。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
従来の複写機またはプリンタのＳＡＴＡによるデータ転送制御では、ＳＡＴＡ−メモリ間のデータ転送をＤＭＡで行う際、１ページ分の画像データを一つの連続した符号として扱っているため、再送が発生する最悪のケースでは、１ページ転送するのに２ページ分の時間を要すことになり、機器の生産性が低下する。また、例えばカラー画像の場合は、図１５に示したように、１ページあたり４プレーン（４色）のデータを所定の時間内に転送する必要がある。機器の生産性を上げるため、４プレーン分のデータをメモリに転送し終えるのを待たずに、先行して画像をプリンタに出力し始める制御を行う場合、再送が発生して後続のプレーンのメモリ転送が遅れると、所定の時間内にプリンタへの転送が終了せず異常画像を引き起す。そこで、再送が発生しても安全にかつ高生産性を期待できるシステムが必要である。
【００１０】
本発明は、通信エラーが発生した場合のデータ転送の遅れを低減することを目的とする。
【課題を解決するための手段】
【００１１】
（１）割当て時間(Y)内に所要時間(X)で転送できる量の全データをＤＭＡＣにより転送する場合に、
前記割当て時間(Y)，所要時間(X)および通信エラーのときの通信再開に要するオーバヘッド時間(z)から定まるタイミングマージン(A)以内で転送し得るデータ量以下のバンドに区切ってデータを転送し、通信エラーが発生するとそのとき転送中のバンド又はその直前のバンドから転送を再開する、ことを特徴とするデータ転送制御方法。
【００１２】
なお、理解を容易にするために括弧内には、図面に示し後述する実施例の対応要素又は対応事項の符号を、例示として参考までに付記した。以下も同様である。
【発明の効果】
【００１３】
バンド分割することで、バンド毎の再送となり、また通信エラー発生時に転送中、又はその直前のバンドから転送を開始するので、再送時の時間ロスが低減する。
【発明を実施するための最良の形態】
【００１４】
（２）前記全データ転送の通信エラー発生回数の許容設定値をＮとすると、前記タイミングマージン(A)／Ｎ以内で転送し得るデータ量以下のバンドに区切ってデータを転送し、通信エラーが発生するとそのとき転送中のバンド又はその直前のバンドから転送を再開する、上記（１）に記載のデータ転送制御方法。
【００１５】
分割された何れかのデータの再送がＮ回だけ発生した場合でも、トータルの転送時間がＹ以下となるため、生産性／リアルタイム性を維持することができる。
【００１６】
（３）前記全データは１プレーンの画像データであり、前記ＤＭＡＣによる転送は、シリアルＡＴＡを用いる通信である、上記（１）または（２）に記載のデータ転送制御方法。
【００１７】
（４）１プレーンの画像データを圧縮符号化した、割当て時間(Y)内に所要時間(X)で転送できる量の全符号データをＤＭＡＣにより転送する場合に、
符号データ量が、前記割当て時間(Y)，所要時間(X)および通信エラーのときの通信再開に要するオーバヘッド時間(z)から定まるタイミングマージン(A)以内で転送し得るデータ量以下となる画像データ量で、１プレーンの画像データをバンドに区切ってバンド毎に符号データに圧縮符号化し、これによって生成した符号データのバンドを転送し、通信エラーが発生するとそのとき転送中の符号データのバンド又はその直前のバンドから転送を再開する、ことを特徴とするデータ転送制御方法。
【００１８】
（５）前記全符号データ転送の通信エラー発生回数の許容設定値をＮとすると、前記タイミングマージン(A)／Ｎ以内で転送し得るデータ量以下となる画像データ量で、１プレーンの画像データをバンドに区切ってバンド毎に符号データに圧縮符号化し、これによって生成した符号データのバンドを転送し、通信エラーが発生するとそのとき転送中の符号データのバンド又はその直前のバンドから転送を再開する、上記（４）に記載のデータ転送制御方法。
【００１９】
（６）前記ＤＭＡＣによる転送は、シリアルＡＴＡを用いる通信である、上記（４）または（５）に記載のデータ転送制御方法。
【００２０】
（７）データの転送先又は転送元は、ＨＤＤである、上記（１）乃至（６）のいずれか１つに記載のデータ転送制御方法。
【００２１】
（８）再送を開始するバンドは、通信エラーを検出したバンドの一つ前のバンドである、上記（１）乃至（７）のいずれか１つに記載のデータ転送制御方法。これによれば、ＨＤＤをリードするＤＭＡＣは次のディスクリプタをリードし始めているが、メモリをライトするＤＭＡＣはメモリが混雑していてまだ前のバンドを転送中というようなクリティカルな場合でも、安全に再送を行える。
【００２２】
（９）転送対象データ群に関する割当て時間(Y)，所要時間(X)および通信エラーのときの通信再開に要するオーバヘッド時間(z)、から定まるタイミングマージン(A)以内で転送し得るデータ量以下のバンドに、前記転送対象データ群を区切るためのディスクリプタチェーンをメモリ上に構成する管理情報生成手段(101)；および、
前記ディスクリプタチェーンにもとづいて前記バンドの区分ごとに転送対象データ群を転送し、該転送の間に通信エラーを生じると、そのとき転送中のバンド又はその直前のバンドからの転送を再開するＤＭＡＣ；
を備えるデータ転送制御装置。
【００２３】
（１０）前記管理情報生成手段(101)は、前記転送対象データ群転送の通信エラー発生回数の許容設定値をＮとすると、前記タイミングマージン(A)／Ｎ以内で転送し得るデータ量以下のバンドに、前記転送対象データ群を区切るためのディスクリプタチェーンをメモリ上に構成する、上記（９）に記載のデータ転送制御装置。
【００２４】
（１１）前記転送対象データ群は１プレーンの画像データであり、前記ＤＭＡＣは、シリアルＡＴＡを用いて転送する、上記（９）または（１０）に記載のデータ転送制御装置。
【００２５】
（１２）符号データ量が、前記割当て時間(Y)，所要時間(X)および通信エラーのときの通信再開に要するオーバヘッド時間(z)から定まるタイミングマージン(A)以内で転送し得るデータ量以下となる画像データ量で、１プレーンの画像データをバンドに区切ってバンド毎に符号データに圧縮符号化する手段；
前記符号データのバンドを転送するためのディスクリプタチェーンをメモリ上に構成する管理情報生成手段(101)；および、
前記ディスクリプタチェーンにもとづいて前記符号データのバンドを転送し、該転送の間に通信エラーを生じると、そのとき転送中のバンド又はその直前のバンドからの転送を再開するＤＭＡＣ；
を備えるデータ転送制御装置。
【００２６】
（１３）前記１プレーンの画像データをバンドに区切ってバンド毎に符号データに圧縮符号化する手段は、全バンドの前記転送の完了の間の通信エラー発生回数の許容設定値をＮとすると、前記符号データのバンドがタイミングマージン(A)／Ｎ以内で転送し得るデータ量以下となる画像データ量で、１プレーンの画像データをバンドに区切ってバンド毎に符号データに圧縮符号化する、上記（１２）に記載のデータ転送制御装置。
【００２７】
（１４）前記ＤＭＡＣは、シリアルＡＴＡを用いる通信で転送する、上記（１２）または（１３）に記載のデータ転送制御装置。
【００２８】
（１５）前記ＤＭＡＣが再送を開始するバンドは、通信エラーを検出したバンドの一つ前のバンドである、上記（９）乃至（１４）のいずれか１つに記載のデータ転送制御装置。
【００２９】
（１６）前記ＤＭＡＣは、転送中のディスクリプタより１つ前のディスクリプタの情報を保持するレジスタを持ち、通信エラーが発生したときは、前記管理情報生成手段(101)の再転送指示に応答して、該１つ前のディスクリプタに基づいてバンドの転送を再開する、上記（９）乃至（１５）のいずれか１つに記載のデータ転送制御装置。
【００３０】
これによれば、エラー発生時、転送に必要なバンド毎の管理情報を再度メモリから読み出す時間が不要となるため、再送時間ロスを最低限に抑えることができる。エラー発生時、転送に必要なバンド毎の管理情報を再度メモリから読み出す時間が不要となるため、再送時間ロスを最低限に抑えることができる。
【００３１】
（１７）前記ＤＭＡＣは、転送中のディスクリプタより１つ前のディスクリプタの情報を保持するレジスタを持ち、通信エラーが発生したときは、自起動で該１つ前のディスクリプタに基づいてバンドの転送を再開する、上記（９）乃至（１５）のいずれか１つに記載のデータ転送制御装置。
【００３２】
これによれば、再送の時間効率が良く、且つ、利便性が高まる。ハードウェアで自動再送することで、再送の時間効率が良く、且つ、利便性が高まる。
【００３３】
（１８）１以上のプレーンの画像データを格納できる一次記憶手段(105)；
１以上のプレーンの画像データを格納できる二次記憶手段(111)；
画像出力手段(14)；
前記一次記憶手段(105)の画像データを前記二次記憶手段(111)に転送する、請求項９乃至１１のいずれか１つに記載のデータ転送制御装置；および、
前記二次記憶手段(111)に転送したバンド区分の画像データを前記一次記憶手段(105)を介して前記画像出力手段(14)に転送する手段(101,102)；
を備える画像形成装置。
【００３４】
（１９）１以上のプレーンの画像データを格納できる一次記憶手段(105)；
１以上のプレーンの画像データの符号データを格納できる二次記憶手段(111)；
前記一次記憶手段(105)の画像データをバンド区分で符号化して前記二次記憶手段(111)に格納する、請求項１２乃至１４のいずれか１つに記載のデータ転送制御装置；および、
前記二次記憶手段(111)に転送したバンド区分の符号データを前記一次記憶手段(105)に転送し、該一次記憶手段(105)から読み出して画像データに復号化して前記画像出力手段(14)に転送する手段(101,102)；
を備える画像形成装置。
【００３５】
（２０）前記二次記憶手段はＨＤＤ(111)である、上記（１８）又は（１９）に記載の画像形成装置。
【００３６】
本発明の他の目的および特徴は、図面を参照した以下の実施例の説明より明らかになろう。
【実施例１】
【００３７】
図１に、本発明の一実施例のデジタルカラー複写機の画像処理系統のシステム構成を示す。プリンタコントローラ１００は、メインＣＰＵ（Central Processing Unit）１０１，ＡＳＩＣ１０２，Ｉ／ＣカードＩ／Ｆ１０３，ＲＯＭ（Read Only Memory）１０４およびＲＡＭ（Random Access Memory）１０５等を備え、ＲＯＭ１０４内には、複写機のシステムプログラムおよび画像情報管理プログラム等の各種プログラムが格納されているとともに、これらのプログラムを実行するに必要な各種データおよびシステムデータ等が格納されている。メインＣＰＵ１０１は、ＲＯＭ１０４内のプログラムに基づいて、ＲＡＭ１０５をワークメモリとして利用して、複写機の各部を制御して、画像読み取り，画像蓄積，ＰＣ（パソコン）との書画の送受信，ファクシミリ送受信，複写，印刷（プリンタとしてのプリントアウト），蓄積情報の管理，使用管理等を行う。ＲＡＭ１０５は、画像や圧縮後の符号を格納するための一次記憶装置でもある。
【００３８】
操作表示ボード２０は、テンキー，スタートキー，ストップキーおよびファンクションキー等の各種操作キーを備えると共に、ディスプレイ（液晶ディスプレイ）を備えており、各操作キーによりユーザ指示を入力しディスプレイに表示することができる。ディスプレイにはまた、複写機の状態、および、ＰＣやファクシミリからの通知が表示される。
【００３９】
ファクシミリ制御ユニットＦＣＵには、電話回線ＰＮが接続され、相手ファクシミリ装置との間でファクシミリ制御信号を交換して、ファクシミリ通信手順を実行するとともに、網制御部やモデム等を備え、その網制御部により、自動発・着呼処理を行い、また、そのモデムにより、送・受信信号の変・復調処理を行う。ファクシミリ制御ユニットＦＣＵは、上述のように、ファクシミリ通信時、相手ファクシミリ装置との間で、ファクシミリ制御信号を交換して、ファクシミリ通信手順を実行するが、特に、受信時に自機の機能を相手先（送信側ファクシミリ装置）に通知するファクシミリ制御信号に、プリンタ１４，符号化・復号化等の、各種機能を備えている旨を付加して、相手先に送信する。ネットワークインターフェイス（ネットワーク  Ｉ／Ｆ）１０９には、ＬＡＮ（Local Area Network）を介してＰＣ（Personal Computer）等の情報処理装置が接続され、ネットワーク  Ｉ／Ｆ  １０９は、ＰＣ等との間で書画情報の授受を行って、特に、ＨＤＤ１１１に蓄積されている書画情報をＰＣに転送して、ＰＣでの画情報の利用を可能としている。ＰＣは、図１に示す複写機に対して、印字命令出力，スキャナデータの引き取りを行う。ＨＤＤ１１１は、画像や圧縮後の符号を格納するための二次記憶装置である。
【００４０】
ＡＳＩＣ１０２は、ＨＤＤ１１１に対するデータの読み書きを行うものであり、圧縮伸張器およびＤＭＡＣを内蔵し、ＣＰＵ転送、ＤＭＡ転送を制御する。
【００４１】
図２に、ＡＳＩＣ１０２に構成された機能要素の概要を示す。このＡＳＩＣ１０２は、ＲＡＭ１０５に格納された画像データを圧縮伸張器１２３で圧縮（符号化）してＨＤＤ１１１に蓄積、及び、ＨＤＤ１１１に蓄積された符号（圧縮データ）を圧縮伸張器で画像データに伸張してＲＡＭ１０５に展開することが可能な構成にしたものである。なお、ＨＤＤ１１１には、圧縮された符号のみならず、非圧縮の画像データそのものを格納することもでき、ＡＳＩＣ１０２は、圧縮伸張器１２３の圧縮，伸張をバイパスして画像データのままＲＡＭ１０５／ＨＤＤ１１１間ならびにエンジン（スキャナ１０，プリンタ１４）／ＨＤＤ１１１間のデータ転送を行うこともできる。
【００４２】
システム制御部１２０は、メインＣＰＵ１０１からの、ＡＳＩＣ内部の各モジュール（１２１〜１２７）およびＡＳＩＣ１０２外部のＲＡＭ１０５，ＨＤＤ１１１へのアクセスを制御するメモリコントローラを含む。システム制御部１２０が、メインＣＰＵ１０１のコマンドをデコードして、該コマンドを実行する制御信号および制御データをＡＳＩＣ内部の各モジュール（１２１〜１２７）およびＡＳＩＣ１０２外部のＲＡＭ１０５，ＨＤＤ１１１に与える。ＨＤＤ１１１への画像データの格納のときには、画像データＤＭＡＣ１２４がＲＡＭ  Ｉ／Ｆ１２５を介してＲＡＭ１０５にアクセスしてＲＡＭ１０５の画像データを読み出して、ＤＭＡ転送でＩ／Ｆ回路１２７を介して圧縮伸張器１２３に転送する。圧縮伸張器１２３は受けた画像データを圧縮し、符号データＤＭＡＣ１２２が圧縮データをＨＤＤ  Ｉ／Ｆ１２１に転送しＩ／Ｆ１２１を介してＨＤＤ１１１に格納する。画像データＤＭＡＣ１２４は、画像転送用のＤＭＡコントローラであり、画像を２次元として扱い、主走査単位で転送を行う。ＨＤＤ１１１からの圧縮データの読み出しのときには、符号データＤＭＡＣ１２２がＨＤＤ  Ｉ／Ｆ１２１を介してＨＤＤ１１１にアクセスしてＨＤＤ１１１の圧縮データを読み出して、ＤＭＡ転送で圧縮伸張器１２３に転送する。圧縮伸張器１２３は受けた圧縮データを画像データに伸張して、Ｉ／Ｆ回路１２７を介して画像ＤＭＡＣ１２４に転送し、画像ＤＭＡＣ１２４がＲＡＭ  Ｉ／Ｆ１２５を介してＲＡＭ１０５にアクセスしてＲＡＭ１０５に書込む。
【００４３】
圧縮伸張器１２３内にも、上述のデータ転送を圧縮伸張器１２３で行うＤＭＡＣがある（図８）。また、圧縮伸張器１２３には、ラインメモリ１２６が接続されている。一般に、ラインメモリは１ライン又は数ライン分の画像データを蓄積するために使用される。ラインメモリを使用するケースとしては、以下のような理由がある：
１）圧縮伸張の方式が、前ラインを参照する２次元圧縮方式であるとき，
２）圧縮伸張器が、１ラインの画像をスキャンして最適な圧縮方式、または内部パラメータを選択するとき，
３）外部Ｉ／Ｆとの速度的なボトルネックの解消など。
【００４４】
ＤＭＡを行う前に、ＣＰＵ１０１がＲＡＭ１０５に、各ＤＭＡＣ宛てのディスクリプタを用意する。図３に、ＲＡＭ１０５上にＤＭＡＣ３１宛ての２つのディスクリプタ６１０，６２０を生成した態様を示す。図３に示すようにディスクリプタを２つ生成したとすると、第１のディスクリプタ６１０のネクストディスクリプタポインタレジスタ６１１（メモリの１領域：１つのレジスタ）には、第２のディスクリプタ６２０の先頭アドレスが格納されている。
【００４５】
第２のディスクリプタ６２０の転送元アドレスレジスタ６１２のデ−タは、バッファメモリ６３０の先頭のアドレスを示す。バッファメモリ６３０には転送すべきデータが格納されている。第１のディスクリプタ６１０の転送バイト数レジスタ６１３には、バッファメモリ６３０に格納されたデータのうち、転送すべきバイト数が格納されている。第１のディスクリプタ６１０のモードワードレジスタ６１４の、最下位ビットすなわちビットＮｏ．０には、この第１のディスクリプタ６１０で示される転送が終了したら、割り込みを発生するかどうかをきめるフラグデ−タＣＯＮＴが存在し、これが「１」のとき、ＤＭＡＣ３１が割り込み信号を発生する。
【００４６】
同様に、第２のディスクリプタ６２０に示されるネクストディスクリプタポインタレジスタ６２１には、もし、あれば第３のディスクリプタの先頭アドレスが格納されるが、図示例では、第２のディスクリプタ６２０は最後のディスクリプタなので、終了であることをＤＭＡＣ３１に教えるために、「０」が格納される。第２のディスクリプタ６２０の転送元アドレスレジスタ６２２はバッファメモリ６４０の先頭アドレスを示し、バッファメモリ６４０には転送すべきデータが格納されている。第２のディスクリプタ６２０の転送バイト数レジスタ６２３にはバッファメモリ６４０に格納されたデータのうち、転送すべきバイト数が格納されている。第２のディスクリプタ６２０のモードワードレジスタ６２４には、何も設定されていない。
【００４７】
最終ディスクリプタの前のディスクリプタ６１０内に割り込みイネーブルビット「ＣＯＮＴ」があり、これを用いてディスクリプタ単位で割り込みを発生させることができる。ディスクリプタのサイズは何ワードでも問題はない。ネクストディスクリプタアドレスレジスタ６１１は、ディスクリプスタ６１０，６２０をチェーン構造にしてリンクしていけるように、次に実行すべきディスクリプスタ６２０のアドレスを格納する。転送元アドレスレジスタ６１２のデ−タは、このディスクリプタ６１０がバッファメモリ６３０からＩ／Ｏデバイス５００への転送を行うものとして、ＲＡＭメモリ６００上に確保された転送データ（６３０）の先頭アドレスを示す。転送バイト数レジスタ６１３のデ−タは転送すべき長さ（バイト数）を示す。モードワードレジスタ６１４は、ディスクリプタ単位での動作モードを設定するためのワードを格納する。モードワードレジスタ６１４は、この実施例の場合３２ｂｉｔの長さをもつ。その最下位ビットであるビットＮｏ．０のデ−タＣＯＮＴは、「０」と「１」の２つの状態を取ることができ、このｂｉｔデ−タＣＯＮＴは割り込みイネーブルビットとして機能する。割り込みイネーブルビットとは、このビットが「１」に設定されているディスクリプタの示す転送が完了したら、割り込みを発生することを許可することを示す。
【００４８】
図４の（ａ）に、ＤＭＡＣ３１の構成を示す。ディスクリプタポインタレジスタ４０１は、ＲＡＭメモリ６００上に格納されたディスクリプタ（６１０／６２０）の先頭アドレスを格納するためのレジスタである。コントロールレジスタ４０２は、ＣＰＵ１０１からＤＭＡ動作開始の指示をうけるためのレジスタである。アドレスレジスタ４０３は、ディスクリプタが保持する転送元アドレスを格納するものであり、転送カウンタ４０９は実際の転送バイト数をカウントするカウンタである。転送バイト数レジスタ４１０はディスクリプタで示される転送バイト数を格納するためのレジスタである。
【００４９】
ＤＭＡ転送制御回路４０４は、アドレスレジスタ４０３の転送元アドレスと転送カウンタ４０９のカウント値（転送済バイト数）の和で示されるアドレスのメモリをアクセスし、実際の転送を行う回路である。モードレジスタ４０６はディスクリプタのモードワードレジスタ６１４，６２４のデ−タを格納するためのレジスタである。ディスクリプタ制御回路４０５は、ディスクリプタ６１０，６２０の読み込みを行う回路である。割込みイネーブル信号ライン４０７を介して、モ−ドレジスタ４０６の割込み指示ビットＣＯＮＴのデ−タ（「１」又は「０」）がＤＭＡ転送制御回路４０４に与える。これが転送完了時に割り込みを発生させるかどうかを知らせる信号である。ディスクリプタで示される転送が完了したときに、ＤＭＡ転送制御回路４０４（ＤＭＡＣ３１）は、割込み信号ライン４０８を介してＣＰＵ１０１に対して割込みを知らせる信号を与える。
【００５０】
ＣＰＵ１０１が、ＲＡＭ１０５上に転送デ−タおよびディスクリプタを設定し、そしてＤＭＡＣ３１のディスクリプタポィンタレジスタ４０１に第１ディスクリプタの先端アドレスを書込み、コントロールレジスタ４０２の、図４の（ｃ）に示すビットＥＸＥＣに、「１」を書くと、これに応答してＤＭＡＣ３１が転送動作を開始し、ＤＭＡＣ３１はまずディスクリプタ読み出し７０２に進む。すなわちメモリ上のディスクリプタを読み出しに行く。具体的には、ＤＭＡＣ３１は、ディスクリプタポインタレジスタ４０１のデ−タが示すアドレス（ディスクリプタ６１０）の内容を４ワード読み出して、最初のワード（ネクスディスクリプタアドレス）を図４の（ａ）に示すネクストディスクリプタポインタレジスタ４１１へ格納し、２番目のワード（転送元アドレス）はアドレスレジスタ４０３へ格納し、３番目のワード（転送バイト数）は転送バイト数レジスタ４１０へ格納し、４番目のワード（モ−ドワ−ド）はモードレジスタ４０６およびコントロ−ルレジスタ４０２へ格納する。
【００５１】
次にＤＭＡＣ３１は、各レジスタ４１１，４０３，４１０，４０６のデ−タが規定するＤＭＡ転送を開始し、１つのディスクリプタ（第１ディスクリプタ６１０）で指定されたブロックの転送が完了したかどうかチェックする。ブロックの転送が完了していなければ、次の転送のためにアドレスを更新する。ブロックの転送が完了するまで、転送を繰り返す。ブロックの転送が完了すると、ＤＭＡＣ３１は、ディスクリプタそのもののチェーンが完了した、すなわち全体の転送が完了した、かどうかをチェックする。
【００５２】
先に述べたが図示例では、第２のディスクリプタ６２０が最後のディスクリプタなので、終了であることをＤＭＡＣ３１に教えるために、「０」がネクストディスクリプタポインタ６２１に書込まれており、今転送を実行したディスクリプタが、仮に最後のディスクリプタ（第２ディスクリプタ６２０）であるとすると、ＤＭＡＣ３１のネクストディスクリプタポインタレジスタ４１１にはデ−タ「０」が書込まれているので、このデ−タに基づいて、全体の転送が完了した、と判定する。
【００５３】
しかし、今終えた転送が第１ディスクリプタ６１０のデ−タに基づくものであると、ネクストディスクリプタポインタレジスタ４１１には第１ディスクリプタ６１０のネクストディスクリプタポインタ６１１のデ−タ（第２ディスクリプタ６２０の先頭アドレス）があるので、ＤＭＡＣ３１は、次のディスクリプタ（６２０）が有効であるので、モ−ドレジスタ４０６に格納している、元はモードワードレジスタ６１４にあったビットＣＯＮＴをライン４０７経由で読んで、それが「１」であるので、コントロ−ルレジスタ４０２に書込んでいるタイマ変数（元はモードワードレジスタ６１４にあったデ−タ）を計時タイマに設定して計時を開始し、タイマ変数が表わす時間が経過すると、継続の割込みを発生する。すなわち、ＤＭＡＣ３１は、コントロ−ルレジスタ４０２のビットＥＸＥＣを「０」にクリアして、ＣＰＵ１０１への割込要求ライン４０８に割込み信号を与える。そして、ＣＰＵ１０１がこれに応答してコントロールレジスタ４０２のビットＥＸＥＣを「１」にするのを待つ。そして、「１」になると、第２ディスクリプタ６２０のデ−タを読込んでレジスタ各レジスタ４１１，４０３，４１０，４０６，４０２に書込み、転送を行なう。ＣＯＮＴに「１」が設定されていないときには、該継続の割込み処理は行なわないで、第２ディスクリプタ６２０のデ−タを読込んでレジスタ各レジスタ４１１，４０３，４１０，４０６，４０２に書込み、転送を行なう。
【００５４】
第２ディスクリプタ６２０のデ−タに基づいた転送を完了すると、ネクストディスクリプタポインタレジスタ４１１のデ−タが「０」になっているので、ＤＭＡＣ３１は、完了割込み信号を発生して、全処理を完了する。継続割込みは、ＤＭＡＣ３１のコントロールレジスタのＣＯＮＴビットが「１」（第１ディスクリプタ６１０）のとき、有効となるが「０」（第２ディスクリプタ６２０）のときは、継続割込みは発生しない。最終ディスクリプタ（６２０）中のモードワード（６２４）にもＣＯＮＴビット相当のビットは存在するが、それは「０」とされ、コントロールレジスタ４０２のＣＯＮＴビットが「０」になるので、ＤＭＡＣ３１は、継続割込みは発生せず、完了割込み信号を発生する。
【００５５】
上述の例では、図４の（ｂ）に示すように、ディスクリプタのモードワードレジスタ６１４内にタイマ変数を用意して、１ブロックの転送完了後タイマ変数で指定した時間待ってから、継続割込みを発生する。このタイマ変数にて、１ブロック転送完了から継続割込み発生までの時間を設定することができる。最終ディスクリプタ（６２０）のモードワードレジスタ（６２４）にもタイマ変数を含めて、最終ブロックの転送完了からその時間分の遅延の後に完了割込み信号を発生するようにすることによって、完了割込みのタイミングも設定可能になる。
【００５６】
図４の（ｃ）に示すように、ディスクリプタのモードワードレジスタ６１４内に、ディスクリプタによる転送制御には無関係の「未使用」ビットを用意し、ＤＭＡＣ３１がこれを使わないようにすることで、ソフトウェアによる該「未使用」ビットへの読み書きが可能であり、ソフトウェアによるディスクリプタの管理に使用することができる。
【００５７】
ＡＳＩＣ１０２のその他のＤＭＡＣの構成及び機能も、ＤＭＡＣ３１の上述の構成および機能と同様である。
【００５８】
図５に、パソコンＰＣの印刷データをプリンタ１４でプリントアウトする場合の、ＣＰＵ１０１のデータ転送制御の概要を示す。ＣＰＵ１０１は、ネットワークＬＡＮ経由でパソコンＰＣから送られてきたＰＤＬをＲＡＭ１０５に格納する（ステップ１）。以下では、括弧内には、ステップという語を省略して、ステップＮｏ．数字又は記号のみを記す。ネットワークＩ／Ｆ１０９（又はＮＩＣ）からＲＡＭ１０５への転送は、ＤＭＡＣを用いるＤＭＡ転送又はＣＰＵ  Ｉ／Ｏ転送である。
【００５９】
ＣＰＵ１０１は、ＲＯＭ１０４のフォント変換データ（フォントＲＯＭ）を用いて、ＰＤＬをイメージデータ（描画データ：画像データ）に変換する。すなわちＲＡＭ１０４にページ画像を展開（描画）して（２）、フルカラー画像記録となる場合は、各色（Ｃ，Ｍ，Ｙ，Ｋ）の画像（プレーン）を生成して、プレーンごとにＨＤＤ１１１に転送する（３）。単色記録（例えば白黒（モノクロ）記録）となる場合には、単色の画像（１プレーンのみ）を生成して、ＨＤＤ１１１に転送する（３）。
【００６０】
なお、ファクシミリ受信データの場合は、ＲＡＭ１０５に受け入れてから画像データに伸張してＲＡＭ１０５に展開してから、ＨＤＤ１１１に転送する（３）。複写の場合には、原稿読み取りの画像データをＡＳＩＣ１０２でプリンタ１４で印刷するための画像データに変換してＲＡＭ１０５に読込み、そしてＨＤＤ１１１に転送する（３）。ＨＤＤ１１１への転送（３）以下の処理は、印刷，ファクシミリ受信出力および複写のいずれの画像形成モードでも、共通である。以下では、フルカラー画像記録となる場合を例に、ＨＤＤ１１１への転送（３）以下の処理を説明する。
【００６１】
この転送においてＣＰＵ１０１はまず、バンド分割情報を生成する（４）。すなわち、各プレーンの画像データのバンド区分情報を生成する。ここで、バンド分割について説明する。図６を参照されたい。
【００６２】
−正常時の転送：図６の（ａ）−
１プレーンをＨＤＤ１１１からメモリ１０５に転送するための時間を、図６の（ａ）に、矢印の長さで表している。その時間をＸとする。ここで言う１プレーンのデータ量は、圧縮して符号化された圧縮データを、圧縮データのままメモリ１０５に転送する場合には、圧縮率により変動するので、説明を簡単にするため非圧縮の画像データをＨＤＤ１１１に格納し、そしてＨＤＤ１１１から読み出してメモリ１０５に転送する場合について説明する。
【００６３】
−従来方法で再送が発生した場合の転送：図６の（ｂ）−
１プレーンの転送の最後尾近くで転送エラーが発生し再送をした場合、２プレーン分の転送が必要になる。さらに、エラー割り込みの処理や、ＤＭＡＣによる再送の場合はＤＭＡＣのディスクリプタ情報の再読み込みなどのオーバーヘッド（無駄時間又はエラー対処処理時間）が発生する。そのオーバーヘッドすなわちオーバヘッド時間をＺとする。割り込み制御に掛かる時間は変動幅が大きいため、ある程度のワーストケースを考慮して、長めにＺを決める必要がある。
【００６４】
−本実施例でエラー対応の再送が発生した場合の転送：図６の（ｃ），（ｄ）−
実際に転送にかけてよい時間すなわち割当て時間をＹとする。実際の転送時間すなわち所要時間Ｘと比較してＹが長い。また、再送する際には上記オーバヘッド時間Ｚの時間が必要なので、（Ｙ−Ｘ−Ｚ）が実際のタイミングマージンとなる。その時間をＡとする。「バンド分割情報の生成」（４）は、次のように行う：
１．「Ｙ−Ｘ−Ｚ＝Ａ（ｓ）」を計算，
２．Ａ（ｓ）で転送できるデータ量  「ＨＤＤ転送速度（ｂｐｓ）×Ａ（ｓ）」を算出，
３．該転送できるデータ量以下で、ＲＡＭ１０５上のデータを分割する区分情報を生成する。この区分情報によって区分される画像データ群（区分単位）を「バンド」という。
【００６５】
タイミングマージンＡのとり方により、バンド分割の方法はことなるが、上記方法は、１プレーン転送する間に只１度しか再送が発生しないと仮定した場合の分割方法である。シリアル通信エラーの発生頻度が低い（ＳＡＴＡ規格では、１／１０１２以下のビットエラーレート）ことを根拠とする。この分割は、各プレーンに適応する。先のプレーンで再送が発生しないと、後続のプレーンのタイミングマージンは実際には増えるが、バンド分割する段階では分からないので、各プレーン毎に１回の再送があることを想定してバンド分割する。
【００６６】
次にＣＰＵ１０１は生成した、バンド分割情報に基づいたプレーン分割によって生ずる各バンドを、ＲＡＭ１０５から読み出してＳＡＴＡに送出するＤＭＡのための、リードＤＭＡＣ３１宛ての各ディスクリプタのチェーン、ならびに、ＳＡＴＡに送出された各バンドをＨＤＤ１１１に書込みするＤＭＡのための、ライトＤＭＡＣ３４宛ての各ディスクリプタのチェーン、をＲＡＭ１０５に生成する（５）。すなわち、前述の図３に示す態様のディスクリプタを生成する。なお、本実施例では、各ディスクリプタのＣＯＮＴは「０」とする。すなわち、１ブロック（バンド）転送完了毎の継続割り込みは発生させない。
【００６７】
次にＣＰＵ１０１は、ＤＭＡＣ３１および３４の各種レジスタ（図４）に転送制御データを書き込み（６）、ＤＭＡＣ３１および３４のコントロールレジスタのＥＸＥＣに１を書込む（７）。これによりＤＭＡＣ３１および３４が起動し、ＲＡＭ１０５からＨＤＤ１１１に、画像データが転送され、ＨＤＤ１１１書き込まれる。複数のディスクリプタがチェーンしながら転送し、これにより、ＲＡＭ１０５上の各プレーンの画像データは、ディスクリプタごとにバンドに区分される（８）。転送が完了すると、COMPLETE割り込みがＣＰＵ１０１に入り（９）、これに応答してＣＰＵ１０１は転送終了処理をする（１０）。
【００６８】
次にＣＰＵ１０１は、ＨＤＤ１１１に格納した各プレーンの各バンドをＲＡＭ１０５に転送し、かつＲＡＭ１０５に転送した各プレーンの各バンドをプリンタ１４に転送するための、各ＤＭＡＣ用のディスクリプタチェーンであって、図７に示すように、ＨＤＤ１１１から各バンドをＲＡＭ１０５の異なった２記憶領域に交互に書き込み、その間、書込みを行っていない方の記憶領域からバンドを読み出してプリンタ１４に転送する、ＲＡＭ１０５に対してトグル読み書きのバンド転送をするディスクリプタチェーンを、ＲＡＭ１０５上に生成して、それに基づいて、ＨＤＤ１１１の各プレーンの各画像データを、ＲＡＭ１０５経由でプリンタ１４に転送する（１１，１２）。
【００６９】
図７に、上記転送（１１，１２）における転送パスを示す。図７では、Ｃ色を８群に分けて格納している例を示している。分けられた圧縮データの各群を、「バンド」と呼ぶ。図７では、Ｃ色のみについて記述しているが、Ｍ色、Ｙ色、Ｋ色についても同様である。
【００７０】
上記ＨＤＤ１１１からＲＡＭ１０５にバンド単位で画像データＳｄｒを転送しているときに、データ受信側でＣＲＣエラー，プロトコル違反などを検出することによる、シリアル通信エラーが発生した場合の制御を次に示す：
１．エラーが発生し、ＤＭＡＣ（又はハードディスクコントローラＨＤＣ他）からのエラー割り込みがＣＰＵ１０１に発生する；
２．ＤＭＡＣはエラー発生で自動停止。ディスクリプタ情報は保持し、転送量カウンタを停止させる；
３．ＣＰＵ１０１は、ＤＭＡＣ（及びハードディスクコントローラＨＤＣ）のレジスタを読み、どのバンドの転送で停止したか確認する；
４．転送中のバンドの一つ前のバンドから転送するよう、再送すべきバンドのスタートアドレスをＤＭＡＣにセットしてＤＭＡＣを再度起動する；
５．ＤＭＡＣは設定されたバンドのディスクリプタを再度読み、その情報に従ってデータ転送を再開する。転送中のバンドから再送しても良いが、安全のため一つ前のバンドから再送する。ＨＤＤ１１１をリードするＤＭＡＣ３３は次のディスクリプタをリードし初めているが、ＲＡＭ１０５をライトするＤＭＡＣ３２は、ＲＡＭ１０５が混雑していてまだ前のバンドを転送中というような混乱を回避するためである。
【００７１】
例えば図８に示すように、第３ディスクリプタに基づいて第３バンドの画像データＳｄｒをＲＡＭ１０５に転送しているときに通信エラーによる割り込みが発生すると、ＣＰＵ１０１は、通信エラー割り込み処理により、第３ディスクリプタの一つ前の第２ディスクリプタを転送する制御情報をＤＭＡＣ３３，３２に再設定して、第２ディスクリプタからの転送を再開する。
【００７２】
なお、図５に示すＲＡＭ１０５からＨＤＤ１１１への、バンド区分の画像データの転送においても、通信エラーが発生すると、上述と同様に、通信エラー割り込み処理により、通信エラーを生じたときにＤＭＡＣに保持するディスクリプタの一つ前のディスクリプタ（先行ディスクリプタ）を転送する制御情報をＤＭＡＣ３１，３４に再設定して、先行ディスクリプタからの転送を再開する。
【００７３】
上記第１実施例によれば、分割された何れかのデータ（バンド）の、通信エラーによる再送が一度だけ発生した場合、トータルの転送時間が割当て時間Ｙ以下となるため、生産性／リアルタイム性を維持できる。ＳＡＴＡの規格エラー率すなわちビットエラーレートは、１／１０１２なので、近接するデータ転送で複数回エラーが発生することはない、すなわち、上記全データの転送の間に、２回以上の通信エラーが発生することはない、と考えられる。従って、バンド分割数を最小限に抑えることが出来る。分割数が多いとソフト上のデータ管理が煩雑となる他、ＤＭＡＣのディスクリプタの数も増えメモリが無駄となる。
【実施例２】
【００７４】
第２実施例のハードウェアは、上述の第１実施例のものと同じであるが、第２実施例では、ＨＤＤ１１１に対しては、画像データを圧縮伸張器１２３で圧縮符号化した圧縮データを格納する。
【００７５】
図９に、パソコンＰＣの印刷データをプリンタ１４でプリントアウトする場合の、ＣＰＵ１０１のデータ転送制御の概要を示す。ＣＰＵ１０１は、ネットワークＬＡＮ経由でパソコンＰＣから送られてきたＰＤＬをＲＡＭ１０５に格納する（１）。ＣＰＵ１０１は、ＲＯＭ１０４のフォント変換データ（フォントＲＯＭ）を用いて、ＲＡＭ１０４にページ画像を展開（描画）して、フルカラー画像記録となる場合は、ＲＡＭ１０４上に各色（Ｃ，Ｍ，Ｙ，Ｋ）の画像（プレーン）を生成する（２）。そして圧縮符号化する（２１）。
【００７６】
なお、ファクシミリ受信データの場合は、ＲＡＭ１０５に受け入れてから画像データに伸張してＲＡＭ１０５に展開してから、圧縮符号化する（２１）。複写の場合には、原稿読み取りの画像データをＡＳＩＣ１０２でプリンタ１４で印刷するための画像データに変換してＲＡＭ１０５に読込み、そして圧縮符号化する（２１）。圧縮符号化（２１）以下の処理は、印刷，ファクシミリ受信出力および複写のいずれの画像形成モードでも、共通である。以下では、フルカラー画像記録となる場合を例に、圧縮符号化する（２１）以下の処理を示す。図１０には、圧縮符号化（２１）でのデータの流れを、実線矢印で示す。
【００７７】
この圧縮符号化（２１）においてＣＰＵ１０１はまず、バンド分割情報を生成する（２２）。すなわち、各プレーンの画像データのバンド区分情報を生成する。ここでは、符号データ量が、前記割当て時間Ｙ，所要時間Ｘおよび通信エラーのときの通信再開に要するオーバヘッド時間Ｚから定まるタイミングマージンＡ以内で転送し得るデータ量以下となる画像データ量で、１プレーンの画像データをバンドに区切るためのバンド分割情報を生成する。
【００７８】
次にＣＰＵ１０１は、生成したバンド分割情報に基づいたプレーン分割によって生ずる各バンドを、ＲＡＭ１０５から読み出して圧縮伸張器１２３に転送し、圧縮伸張器１２３が圧縮符号化した符号データをＲＡＭ１０５に転送するための、画像ＤＭＡＣ１２４内および圧縮伸張器１２３の、各リードＤＭＡＣおよび各ライトＤＭＡＣ宛てのディスクリプタチェーンをＲＡＭ１０５に生成する（２３）。
【００７９】
次にＣＰＵ１０１は、各ＤＭＡＣの各種レジスタに転送制御データを書き込み（２４）、各ＤＭＡＣのコントロールレジスタのＥＸＥＣに１を書込む（２５）。これにより各ＤＭＡＣが起動し、ＲＡＭ１０５から圧縮伸張器１２３に画像データがバンド単位で転送され、バンド単位で符号データに変換されて、符号データバンドがＲＡＭ１０５に書き込まれる（２６）。複数のディスクリプタがチェーンしながら転送し、これにより、ＲＡＭ１０５上の各プレーンの画像データは、ディスクリプタごとにバンドに区分され符号化されてＲＡＭ１０５に書き込まれる。転送が完了すると、COMPLETE割り込みがＣＰＵ１０１に入り（２７）、これに応答してＣＰＵ１０１は転送終了処理をする（２８）。
【００８０】
つぎにＣＰＵ１０１は、ＲＡＭ１０５上のバンド区分の符号化データをＨＤＤ１１１に転送する（３Ｂ）。この内容は、図５に示すＨＤＤ１１１への転送（３）の中のステップ５〜１０の転送制御と同様である。ただし、転送データは符号化データのバンドである。図１０には、ＲＡＭ１０５からＨＤＤ１１１への符号化データの流れを、点線矢印で示す。
【００８１】
上記ＲＡＭ１０５からＨＤＤ１１１にバンド単位で符号化データＳｄｗを転送しているときに、データ受信側でＣＲＣエラー，プロトコル違反などを検出することによる、シリアル通信エラーが発生した場合、前述と同様に、ＣＰＵ１０１は、ＤＭＡＣ（及びハードディスクコントローラＨＤＣ）のレジスタを読み、どのバンドの転送で停止したか確認して、転送中のバンドの一つ前のバンドから転送するように、再送すべきバンドのスタートアドレスをＤＭＡＣにセットしてＤＭＡＣを再起動する。ＤＭＡＣは設定されたバンドのディスクリプタを再度読み、その情報に従ってデータ転送を再開する。例えば図１１に示すように、第３ディスクリプタに基づいて第３バンドの符号化データをＨＤＤ１１１に転送しているときに通信エラーによる割り込みが発生すると、ＣＰＵ１０１は、通信エラー割り込み処理により、第３ディスクリプタの一つ前の第２ディスクリプタを転送する制御情報をＤＭＡＣに再設定して、第２ディスクリプタからの転送を再開する。
【００８２】
なお、図１０に矢印で示すように、ＲＡＭ１０５から圧縮伸張器１２３に画像データを転送して圧縮符号化し、符号化データをＲＡＭ１０５に書き込んでから、ＲＡＭ１０５からＨＤＤ１１１に転送する転送処理に代えて、図１２に示すように、ＲＡＭ１０５から圧縮伸張器１２３に画像データＳｄｗを転送して圧縮符号化し、符号化データを圧縮伸張器１２３からＨＤＤ１１１に転送する転送処理を採用することもできる。
【００８３】
再度図９を参照する。符号化データをＨＤＤ１１１に転送すると、ＣＰＵ１０１は、ＨＤＤ１１１のバンドの符号データＳｄｒをＲＡＭ１０５に転送し（３１）、そしてＲＡＭ１０５から圧縮伸張器１２３に転送しそこで画像データに復号化してビデオ出力ＶＯＵＴを介してプリンタ１４に出力する（１２Ｂ）。この転送過程のデータの流れを、図１３に示す。
【００８４】
この転送過程のデータの流れを、図１３に示す。ＨＤＤ１１１に格納された圧縮データは、ＡＳＩＣ１０２内のＤＭＡＣにより圧縮データのままＲＡＭ１０５に転送する（図１３上の点線矢印）。この転送は、プレーン毎に順次行なう。各プレーンの転送はバンド毎に順次行う。各プレーンをＲＡＭ１０５に転送した時点で、各プレーン毎にＡＳＩＣ１０２内のＤＭＡＣにより画像データに伸長しつつプリンタ１４に出力する（図１３上の実線矢印）。この転送態様は、高速機への適用を想定している。各プレーン毎にプリンタ１４に出力し始めても、もしシリアル通信エラーが発生してもバンド毎に再送できるためタイミング的にプリンタ１４を待たせないシステムを構築することが出来る。また、ＲＡＭ１０５の読み書きは、ＲＡＭ１０５の第１領域に第１バンドの画像データを書き込み、次に第１領域から第１バンドの画像データを読み出してプリンタ１４に出力するのと並行してＲＡＭ１０５の第２領域には第２バンドの画像データを書き込み、そして次には第２領域から第２バンドの画像データを読み出してプリンタ１４に出力するのと並行してＲＡＭ１０５の第１領域には第３バンドの画像データを書き込む、という具合に、ＲＡＭ１０５の第１領域と第２領域の読み出しと書き込みを交互に切り換えて、ＲＡＭ１０５の少領域を効率よく使用する、トグル方式の読み書き制御である。しかし、ＲＡＭ１０５を、全てのデータが入る大容量メモリにして、各バンドをＲＡＭ１０５の異なる領域に順次に書き込むとともに、それと並行して、先に書き込んだバンドから順次にプロッタに読み出す態様にしてもよい。
【００８５】
上記ＨＤＤ１１１からＲＡＭ１０５にバンド単位で符号化データを転送しているときに、データ受信側でＣＲＣエラー，プロトコル違反などを検出することによる、シリアル通信エラーが発生した場合、前述と同様に、ＣＰＵ１０１は、ＤＭＡＣ（及びハードディスクコントローラＨＤＣ）のレジスタを読み、どのバンドの転送で停止したか確認して、転送中のバンドの一つ前のバンドから転送するように、再送すべきバンドのスタートアドレスをＤＭＡＣにセットしてＤＭＡＣを再起動する。ＤＭＡＣは設定されたバンドのディスクリプタを再度読み、その情報に従ってデータ転送を再開する。例えば図１４に示すように、第３ディスクリプタに基づいて第３バンドの符号化データをＨＤＤ１１１に転送しているときに通信エラーによる割り込みが発生すると、ＣＰＵ１０１は、通信エラー割り込み処理により、第３ディスクリプタの一つ前の第２ディスクリプタを転送する制御情報をＤＭＡＣに再設定して、第２ディスクリプタからの転送を再開する。
【００８６】
なお、図１３に実線矢印で示すようにＲＡＭ１０５から圧縮伸張器１２３に符号データバンドを転送して画像データに復号化し画像データをビデオ出力ＶＯＵＴを介してプリンタ１４に出力する転送処理に代えて、圧縮伸張器１２３が復号化した画像データをＲＡＭ１０５に転送してから、ＲＡＭ１０５からビデオ出力ＶＯＵＴを介してプリンタ１４に出力する転送処理を採用することもできる。
【００８７】
第２実施例のその他の構成及び機能は、上述の第１実施例と同様である。
【実施例３】
【００８８】
第３実施例のハードウェアは第１実施例と大要では同様ではあるが、ＡＳＩＣ１０２内の、ＡＳＡＴＡ転送を行うＤＭＡＣ内に、直前のレジスタ設定値を保存するバックアップレジスタと、エラー発生に応答してバックアップレジスタの保存データ（直前のレジスタ設定値）を、転送開始（再開）のレジスタに設定する機構を備える。第３実施例のＣＰＵ１０１とＡＳＩＣ１０２によるデータ転送形式の態様は、第２実施例と同様に、ＨＤＤ１１１には画像データを圧縮符号化した符号データ（圧縮データ）を格納するものである。ここでも第２実施例と同様に、符号データ量が、前記割当て時間Ｙ，所要時間Ｘおよび通信エラーのときの通信再開に要するオーバヘッド時間Ｚから定まるタイミングマージンＡを用いる。
【００８９】
そして第３実施例のＣＰＵ１０１は、１プレーンをバンドに分割してディスクリプタチェーンに基づいてＳＡＴＡ転送するにおいて、Ｎ回のエラー対応の再送があっても、データ処理又は画像処理に障害を及ぼさないようにするために、つぎのように各プレーンをバンドに分割する：
１．「（Ｙ−Ｘ−Ｚ）／Ｎ＝Ｂ（ｓ）」を計算〔（Ｙ−Ｘ−Ｚ）＝Ａ〕，
２．Ｂ（ｓ）で転送できるデータ量「ＨＤＤ転送速度（ｂｐｓ）×Ｂ（ｓ）」を算出，
３．該転送できるデータ量以下でＲＡＭ１０５の１プレーンの画像データをバンド分割してＲＡＭ１０５から読み出して、各バンドの画像データを圧縮符号化して、符号データを該バンドの区分で、ＨＤＤ１１１に格納する。
【００９０】
尚、上記バンド分割の考え方において、ＤＭＡＣがバンド毎にディスクリプタをＲＡＭ１０５からリードする時間が発生するが、その時間が省略されている。これは、上述のように、ＤＭＡＣに直前のレジスタ設定値を保存するレジスタ機構により、メモリアクセスが発生しないことを想定しているためである。レジスタ設定値の保存機構が無い実施態様では、（Ｎ−１）回の、ＲＡＭ１０５からのディスクリプタのリード時間Ｃを考慮し、「（Ｙ−Ｘ−Ｚ−Ｃ）／Ｎ＝Ｂ（ｓ）」とする。
【００９１】
第３実施例のＡＳＩＣ１０２のＳＡＴＡ転送を行うＤＭＡＣは、一つ前のディスクリプタをレジスタに保持しておき、またあるレジスタ（例えばコントロールレジスタ４０２）に「リトライビット」を設けており、つぎのように動作する：
１．ＣＰＵ１０１に通信エラー割り込みが通知される。ＤＭＡＣは自動停止する；
２．ＣＰＵ１０１は本来の「起動ビット」ＥＸＥＣの代わりに「リトライビット」に１を書く；
３．直前のディスクリプタ情報が保存されている場合は、その情報を動作用のレジスタ４０１にロードしＤＭＡＣが起動する。直前のディスクリプタ情報が保存されていない場合（例えばエラー発生時以外であった場合）は、エラー割り込みをＣＰＵ１０１に発行する；
４．以降は、通常の動作と同じ。第３実施例のその他の構成及び機能は、上述の第２実施例と同様である。
【実施例４】
【００９２】
第３実施例のＡＳＩＣ１０２のＳＡＴＡ転送を制御するＤＭＡＣは、図４に示すディスクリプタポインタレジスタ４０１およびネクストディスクリプタポインタ４１１に加えて、ディスクリプタポインタレジスタ４０１が表わすディスクリプタの前のディスクリプタを表わすデータを格納するアヘッドディスクリプタポインタ（４１２：図示せず）を備えて、通信エラーで転送を停止すると、ディスクリプタ制御回路４０５が、ディスクリプタポインタレジスタ４０１のデータをネクストディスクリプタポインタ４１１に書き込み、アヘッドディスクリプタポインタ４１２のデータをディスクリプタポインタレジスタ４０１に書いて、アヘッド使用レジスタに「１」を書き込んで、ＣＰＵ１０１がＥＸＥＣを１にすると、転送を起動するものである。ディスクリプタ制御回路４０５この転送を正常に終えるとディスクリプタ制御回路４０５はアヘッド使用レジスタをクリアするが、また通信エラーが発生し、アヘッド使用レジスタに「１」がある場合には、ディスクリプタポインタレジスタ４０１，４１１のデータは更新せず、ＣＰＵ１０１がＥＸＥＣを１にすると、転送を起動する。すなわち、通信エラーを生じたときのディスクリプタに基づいて、再度同一バンドの転送を再開する。
【００９３】
第４実施例のその他の構成及び機能は、上述の第２実施例と同様である。
【実施例５】
【００９４】
第４実施例と同様に、第５実施例のＡＳＩＣ１０２のＳＡＴＡ転送を制御するＤＭＡＣは、アヘッドディスクリプタポインタ（４１２：図示せず）を備えて、通信エラーで転送を停止すると、ディスクリプタ制御回路４０５が、ディスクリプタポインタレジスタ４０１のデータをネクストディスクリプタポインタ４１１に書き込み、アヘッドディスクリプタポインタ４１２のデータをディスクリプタポインタレジスタ４０１に書いて、エラー回数レジスタに１０進数の１を書き込む。そして第５実施例では、ディスクリプタ制御回路４０５が、通信エラーに応答して上述のデータ更新を行うと、自動的にＤＭＡＣの転送を起動する。ディスクリプタ制御回路４０５は、この転送を正常に終えるとディスクリプタ制御回路４０５はエラー回数レジスタをクリアするが、また通信エラーが発生し、エラー回数レジスタの値が１以上である場合には、ディスクリプタポインタレジスタ４０１，４１１のデータは更新せず、転送を自動起動する。すなわち、通信エラーを生じたときのディスクリプタに基づいて、再度同一バンドの転送を再開する。１プレーンの転送を完了すると、エラー回数レジスタのデータをＣＰＵ１０１に送出して、エラー回数レジスタを初期化する。
【００９５】
このように第５実施例では、通信エラー割り込みはＣＰＵ１０１では無くＤＭＡＣ自身が解釈し、以降の再送手順を自動的に行う。転送終了後、ＣＰＵにエラー発生を伝えるため、レジスタにエラー数を累積表示することが望ましい。第５実施例のその他の構成および機能は、第４実施例と同様である。
【図面の簡単な説明】
【００９６】
【図１】本発明の第１実施例の複合機能デジタルカラー複写機の、電気系統のシステム構成を示すブロック図である。
【図２】図１に示すＡＳＩＣ１０２の、主に画像データ転送に関わる機能構成を示すブロック図である。
【図３】図２に示すＣＰＵ１０１がＲＡＭ１０５上に生成するＤＭＡＣ用のディスクリプタチェーンを示すブロック図である。
【図４】（ａ）は、図２に示すリードＤＭＡＣ３１の機能構成の概要を示すブロック図、（ｂ）および（ｃ）は、（ａ）に示すレジスタ４０１に格納するデータ名を示すブロック図である。
【図５】図２に示すＣＰＵ１０１がＡＳＩＣ１０２を用いて行う、「印刷」時の画像データ転送制御の概要を示すフローチャートである。
【図６】図２に示すＣＰＵ１０１がバンド分割に用いる時間パラメータＸ，Ｙ，ＺおよびＺの長さを模式的に示すタイムチャートであり、横軸が時間軸である。
【図７】図５に示す「ＲＡＭ１０５に転送」（１１）と「プリンタ１４への転送」（１２）によってプリンタ１４に転送される画像データの流れ（実線矢印）を示すブロック図である。
【図８】図７に示す転送で、第３バンド転送中に通信エラーが発生した場合に、第２バンド用のディスクリプタを用いて再転送を開始する過程を示すブロック図である。
【図９】第２実施例のＣＰＵ１０１が第２実施例のＡＳＩＣ１０２を用いて行う、「印刷」時の画像データ転送制御の概要を示すフローチャートである。
【図１０】図９に示す「符号化」（２１）および「ＨＤＤ１１１に転送」（３Ｂ）による転送データの流れを示すブロック図である。
【図１１】図１０に示す転送で、第３バンド転送中に通信エラーが発生した場合に、第２バンド用のディスクリプタを用いて再転送を開始する過程を示すブロック図である。
【図１２】図１０に示す転送の１変形態様を示すブロック図である。
【図１３】図９に示す「ＲＡＭ１０５に転送」（３１）および「復号化とプリンタ１４への転送」（１２Ｂ）による転送データの流れを示すブロック図である。
【図１４】図１３に示す転送で、第３バンド転送中に通信エラーが発生した場合に、第２バンド用のディスクリプタを用いて再転送を開始する過程を示すブロック図である。
【図１５】従来のフルカラー各プレーンの符号データをＨＤＤから読み出してＲＡＭ１０５経由で、プレーン単位で、圧縮伸張器ＣＥＰに転送してそこで画像データに復号化してから、プリンタ１４に出力するデータ転送の流れを示すブロック図である。
【図１６】図１５に示すデータ転送において、１プレーンＭの転送中に通信エラーを生じ、これに応じて再度１プレーンＭから転送を再開する場合の、各プレーン転送時間を示すタイムチャートであり、横軸が時間軸である。
【符号の説明】
【００９７】
１０：スキャナ
１４：プリンタ
２０：操作ボード
１０１：ＣＰＵ
１０２：コントローラＡＳＩＣ
１０３：ＩＣカードＩ／Ｆ
１０４：ＲＯＭ
１０５：ＲＡＭ
１０６：ＨＤＤＩ／Ｆ
１０７：操作部Ｉ／Ｆ
１０８：エンジンＩ／Ｆ
１０９：ネットワークＩ／Ｆ
１１０：ＩＣカード
１１１：ＨＤＤ
ＦＣＵ：ファクシミリコントロールユニット
ＰＮ：電話回線
ＰＣ：ホスト（パソコン）
【図１】
2007299304.tif 000003
【図２】
2007299304.tif 000004
【図３】
2007299304.tif 000005
【図４】
2007299304.tif 000006
【図５】
2007299304.tif 000007
【図６】
2007299304.tif 000008
【図７】
2007299304.tif 000009
【図８】
2007299304.tif 000010
【図９】
2007299304.tif 000011
【図１０】
2007299304.tif 000012
【図１１】
2007299304.tif 000013
【図１２】
2007299304.tif 000014
【図１３】
2007299304.tif 000015
【図１４】
2007299304.tif 000016
【図１５】
2007299304.tif 000017
【図１６】
2007299304.tif 000018