(57)【要約】【課題】  低コストで高機能なプロセッサ間通信を実現する。【解決手段】  システムバスと命令コマンドを送信するための命令を生成可能なプロセッサ手段と、複数のプロセッサ間の命令コマンドを送信するためにシステムバスとは異なるバスに接続されている複数のコマンドを保持するためのコマンドキュー手段を有し、前記コマンドキュー手段と前記プロセッサ間には一時バッファ手段が接続され、前記一時バッファは、システムバスと接続されているＤＭＡコントローラ手段とインターフェースおよび前記コマンドキュー手段内部にあるキューとのインターフェースを有し、前記キューがＦｕｌｌ状態になると、前記２つのインターフェースに対する出力データのデータパスを切り換え、さらに、システムバスに出力したデータがＥｍｐｔｙ状態になった後、前記インターフェースをもとの状態に戻す切り替え手段とを有するコマンドキューを有する画像処理装置。【選択図】  図８
2011056703.tif 000002
【特許請求の範囲】
【請求項１】
システムバスと命令コマンドを送信するための命令を生成可能なプロセッサ手段と、複数のプロセッサ間の命令コマンドを送信するためにシステムバスとは異なるバスに接続されている複数のコマンドを保持するためのコマンドキュー手段を有し、前記コマンドキュー手段と前記プロセッサ間には一時バッファ手段が接続され、前記一時バッファは、システムバスと接続されているDMAコントローラ手段とインターフェースおよび前記コマンドキュー手段内部にあるキューとのインターフェースを有し、前記キューがFull状態になると、前記２つのインターフェースに対する出力データのデータパスを切り換え、さらに、システムバスに出力したデータがEmpty状態になった後、前記インターフェースをもとの状態に戻す切り替え手段とを有するコマンドキューを有する画像処理装置。
【請求項２】
請求項１に記載の画像処理装置において、前記システムバス上に接続されるメモリは前記プロセッサ手段が共通でアクセスすることが可能な記憶手段であることを特徴とする画像処理装置。
【請求項３】
請求項１に記載の画像処理装置において、前記コマンドキュー内のキューがFull状態になると、コマンドの内容をDMAの設定コマンドに置換する手段を有することを特徴とする画像処理装置。
【請求項４】
請求項１に記載の画像処理装置において、前記コマンドキュー内のキューがFull状態になると、あらかじめ前記プロセッサあるいはシステムのメインプロセッサによって設定された情報に基づき、コマンドの内容はシステムバスを介して、前記記憶手段に転送する手段を有することを特徴とする画像処理装置。
【請求項５】
請求項１に記載の画像処理装置において、前記記憶手段に移動したデータを読み出すために前記プロセッサが前記コマンドキューのレジスタインターフェースを通じてDMA転送コマンドを転送することを特徴とする画像形成装置。
【請求項６】
請求項１に記載の画像処理装置において、前記記憶手段に存在するデータ量に応じて前記データパスの切り替え手段を自動で行うことを特徴とする画像形成装置。
【請求項７】
請求項１に記載の画像処理装置において、前記記憶手段に転送するデータ量を前記プロセッサあるいは前記メインプロセッサによって指定することを特徴とする画像形成装置。
【請求項８】
請求項１に記載の画像処理装置において、前記コマンドキュー手段を有するマルチプロセッササブシステムはレンダリングを行うことを特徴とする画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサ間にFIFOを配置して、マルチプロセッサによるパイプラインを構成して、小リソースのプロセッサでありながらも、高速なレンダリング処理によってラスタ画像データを形成する画像形成技術に関するものである。
【背景技術】
【０００２】
近年、電子写真方式のカラー画像形成装置におけるラスタ画像形成の方法が複雑になっている。複雑なアルゴリズムを高い品質のもとに高速に行う手段の一つとして、マルチプロセッサによるパイプライン化を実現したサブシステムが提案されている。
【０００３】
マルチプロセッサをパイプライン化する場合、後段のプロセッサに対するコマンド送信の際にメインメモリを介さずに、プロセッサ間にFIFOを配置することでメモリアクセスを削減するシステム構成がある。
【０００４】
この時、一つのコマンドをFIFOへ送信する時間は、各プロセッサの処理時間に依存して変化する。プロセッサ間でコマンドを送信する時間の差分があまりに大きいと、プロセッサ間のFIFOのデータがFull状態になり、Processorはデータ送信ができず、ストールしてしまう。一方、後段のプロセッサの処理時間が早すぎる場合、コマンドが送信されて来ないためのストールが発生するという問題がある。これらの問題に対処するには、システム設計時に膨大なデータを使って、動作解析を行い、FIFOの容量を最適なサイズにすることも可能であるが、コスト面では冗長となる可能性が高い。
【０００５】
これらの要因に対していくつかの対処法が提案されている。
【０００６】
FIFOのFull状態によるプロセッサのストールを解消することがプロセッサパイプラインを効率化する上での最大のポイントとなる。
【０００７】
これまで、この対処方法として、特許文献１には、パイプライン間を結合するFIFOおよびレイテンシの大きい共有メモリを有するシステムにおいて、FIFOがFullになったことを検出して、コマンドを共有メモリへ転送を行う。そして、コマンドを受信したモジュールがデータの保持した場所へアクセスして、コマンドを読み出すと言う方法が記載されている。
【０００８】
特許文献２には、マルチプロセッサ間のデュアルポートRAMを複数の記憶領域に分割し、一部にRAMのデータ量の状態をステータスとして書込み、各プロセッサはステータスとデータを交互に書込みながら、プロセッサ間通信を実現する方法が記載されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００１−２５６２００号公報
【特許文献２】特開平５−３４６９０８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献１で示されるメモリ転送方法では、後段のプロセッサはコマンドが転送されたレイテンシの大きいメモリにアクセスする必要があり、プロセッサ間にFIFOを配置した効果が半減してしまう。また、特許文献２で示されるメモリ転送方法では、FIFOに対して、ステータスを読み書きしながら、対するプロセッサのステータスを確認しながら、制御を変更するようにしている。この方法では、ステータスを確認するためのタイムロスが大きくなり、システムの高速化が期待できなくなる。さらに、FIFOがFullにならないようなFIFOサイズを決定することは、回路は規模が増大し、コストアップにつながってしまう。
【００１１】
本発明は上記の課題を解決するためになされるものであり、マルチプロセッサ間に接続されるFIFOにおいて、次の２点を目的とする。
【００１２】
１つ目は、ＤＭＡコントローラとのインターフェースを有するFIFOを提供すること。
【００１３】
２つ目は、FIFOの前段にFIFOのステータスを確認する手段を有し、FIFOのステータスに応じてFIFOかレイテンシの大きいメモリへのデータパスかを制御する手段を有するFIFOを提供すること。
【課題を解決するための手段】
【００１４】
上述した課題・問題点を解決し、上述した目的を達成するための本発明の画像形成装置におけるFIFOは以下の構成を備える。
【００１５】
システムバスと命令コマンドを送信するための命令を生成可能なプロセッサ手段と、複数のプロセッサ間の命令コマンドを送信するためにシステムバスとは異なるバスに接続されている複数のコマンドを保持するためのコマンドキュー手段を有し、前記コマンドキュー手段と前記プロセッサ間には一時バッファ手段が接続され、前記一時バッファは、システムバスと接続されているDMAコントローラ手段とインターフェースおよび前記コマンドキュー手段内部にあるキューとのインターフェースを有し、前記キューがFull状態になると、前記２つのインターフェースに対する出力データのデータパスを切り換え、さらに、システムバスに出力したデータがEmpty状態になった後、前記インターフェースをもとの状態に戻す切り替え手段とを有するコマンドキューを有する画像処理装置。
【発明の効果】
【００１６】
本発明によれば、マルチプロセッサ構成におけるプロセッサ間通信のためのコマンド用FIFOのデータ量を最大限に削減した小規模なサブシステムおよび画像形成装置及び、その内部で使用するデータ転送方式を提供できる。
【図面の簡単な説明】
【００１７】
【図１】本発明のＭＦＰのシステム構成図である。
【図２】本発明のデータ処理部の構成図である。
【図３】本発明のマルチプロセッサ構成図（−１）と、本発明のマルチプロセッササブシステムにおける各プロセッサおよびブロックの機能説明図（−２）である。
【図４】本発明のコマンドＦＩＦＯ制御装置のブロック図である。
【図５】本発明のコマンドＦＩＦＯ制御装置のレジスタ構成である。
【図６】本発明のモード１の内部回路の動作シーケンスである。
【図７】本発明のスレーブプロセッサの動作例である。
【図８】本発明のコマンドＦＩＦＯ制御装置の回路構成である。
【図９】本発明のモード２の内部回路の動作シーケンスである。
【発明を実施するための形態】
【００１８】
以下、本発明の実施の形態について図面を用いて詳細に説明する。
【００１９】
まず、本発明の各実施形態を実現する装置構成について説明する。
【００２０】
［画像形成装置］
図１は本発明の実施形態に係る画像形成装置の構成を示す図である。
【００２１】
画像形成装置１００は、例えば、複数種類の機能を実現する複合機であるＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）で実現される。また、画像形成装置１００は、ネットワーク１０７を介してネットワークに接続され、ネットワークを利用して画像データや装置情報をやりとりが可能である。
【００２２】
図１において、原稿台とオートドキュメントフィーダ（ＡＤＦ）を含む画像読取部１０４は、束状のあるいは１枚の原稿画像を光源（不図示）で照射し、原稿反射像をレンズで固体撮像素子上に結像する。これにより、画像読取部１０４は、その固体撮像素子からラスタ状の画像読取信号を所定密度（例えば、６００ＤＰＩ）のラスタ画像として得る。
【００２３】
尚、画像読取部１０４で読み取られる印刷物として、紙文書を例に挙げて説明するが、紙以外の記録媒体（例えば、ＯＨＰシート、フィルム等の透過原稿、布等）からなる印刷物を画像読取部１０４の読取対象としても良い。
【００２４】
また、画像形成装置１００は、画像読取信号に対応する画像を画像印字部１０６で記録媒体に印刷する複写機能を有する。特に、原稿画像を１つ複写する場合には、この画像読取信号をデータ処理部１０１で画像処理して記録信号を生成し、これを画像印字部１０６によって記録媒体上に印刷させる。一方、原稿画像を複数複写する場合には、記憶部１０５に一旦一つ分の記録信号を記憶保持させた後、これを画像印字部１０６に順次出力して記録媒体上に印刷させる。
【００２５】
尚、画像印字部１０６を用いる各種印刷制御は、デバイス制御部１０８によって実現される。
【００２６】
画像形成装置１００への操作者の指示は、画像形成装置１００に装備された操作部１０３から行われ、これら一連の動作はデータ処理部１０１内の制御部のデバイス制御部１０８で制御される。また、操作入力の状態表示及び処理中の画像データの表示は、表示部１０２で行われる。
【００２７】
尚、画像形成装置１００では、後述する各種処理を実行するための各種操作・表示をユーザに提供するユーザインタフェースを、表示部１０２及び操作部１０３によって実現している。
【００２８】
［データ処理部］
次に、データ処理部１０１の詳細構成について、図２を用いて説明する。
【００２９】
図２は本発明の実施形態に係るデータ処理部１０１の詳細構成を示す図である。
【００３０】
データ処理部１０１は、デバイス制御部１０８・画像読取データ処理部１０９・画像印字データ処理部１１０から構成される。デバイス制御部１０８は、ホストＩ／Ｆ部２０２を有する。ホストＩ／Ｆ部２０２には、データ処理部１０１から送出された印刷データや装置の動作を指示する設定を入力する入力バッファ（不図示）が設けられている。また、ホストＩ／Ｆ部２０２には、データ処理部１０１へ送出する信号や機器情報データを含む出力データを一時的に保持する出力バッファ（不図示）が設けられている。また、ホストＩ／Ｆ部２０２は、データ処理部１０１との間で送受信される信号や通信パケットの入出力部を構成するとともに、データ処理部１０１との間の通信制御を行う。
【００３１】
ホストＩ／Ｆ部２０２を介して入力された印刷データは、画像データ発生部２０４に与えられる。ここで、入力される印刷データは、例えば、ＰＤＬ（ページ記述言語）データで構成される。画像データ発生部２０４は、予め定められている解析部に基づき入力された印刷データの解析（例えば、ＰＤＬ解析処理）、その解析結果から中間言語を生成し、更に画像印字部（プリンタエンジン）１０６が処理可能なビットマップデータ生成を行う。
【００３２】
具体的には、印刷データの解析とその解析による中間言語情報の作成を行うとともに、その中間言語情報の作成と並行してラスタライズ処理を行う。このラスタライズ処理では、印刷データに含まれる表示色ＲＧＢ（加法混色）から画像印字部１０６が処理可能なＹＭＣＫ（減法混色）への変換がある。また、印刷データに含まれる文字コードから予め格納されているビットパターン、アウトラインフォント等のフォントデータへの変換等の処理がある。その後、ラスタライズ処理では、ページ単位あるいはバンド単位でビットマップデータを作成し、このビットマップデータに対しディザパターンを用いる疑似階調処理を施し、画像印字部１０６において印刷処理が可能なビットマップデータを生成する。
【００３３】
[画像データ発生部]
画像データ発生部２０４は、図３−１に示すような構成になっている。（図では）３つのSub-CPU1/2/3（３００・３０１・３０２）および専用処理モジュール３０３があり、各ブロックは、FIFO1/2/3（３０４・３０５・３０６）によって接続されている。また、FIFO1/2/3(３０４・３０５・３０６)および専用処理モジュール３０３は、DMAコントローラと接続されており、Sub-CPU1/2/3(３００・３０１・３０２)と同じバスへの入出力が可能な構成となっている。各ブロックからのバスアクセスは、バスアービター３０７によって、アービトレーションされて、デバイス制御部１０８のシステムバスに接続される。
【００３４】
次に図３−２を用いて、各Sub-CPU（３００・３０１・３０２）の処理内容について説明を行う。Sub-CPU1（３００）は、中間言語を解析して、ラスタライズするデータのオブジェクト情報を取り出して、FIFO1（３０４）へオブジェクトの重なり情報に対するアクセス実行コマンドを送信する。Sub-CPU2（３０１）は、Sub-CPU1（３００）から受信したオブジェクトの重なり情報を解析して、ラスタライズに必要な情報のみを選択して、FIFO2（３０１）へオブジェクトの色情報に対するアクセスコマンドを送信する。Sub-CPU3（３０２）は、Sub-CPU2（３０１）から受信したオブジェクトの色情報を読み出し、専用処理モジュール３０４（FIFO3-３０６）に対して、最終画像をメモリへの出力コマンドを送信する。専用処理モジュール３０４は、FIFO3（３０６）から画素数情報と色情報を読み出して、ラスタ画像を画像メモリ２０３に格納する。
【００３５】
図３−２の下部に示すグラフについて説明する。グラフに各コマンドFIFOのデータ量を示している。データ１（３０４０）は、各FIFOに出力するデータ量は比較的多いが、データ２（３０５０）の場合は、データ１に比べてデータ量が少ないことを示している。しかし、自明であるが、同じ画像サイズのデータをラスタライズした場合、最終の画像データ量は同じになる。これは簡単な例であり、データによっては、FIFO1（３０４）とFIFO2（３０５）でのデータ量が逆転するケースも存在する。これがFIFOのサイズを決定する上での最大の課題であり、これらをすべて満足するサイズにすると、冗長なシステムが設計されることになる。後述する本発明のコマンドFIFOは、この冗長なFIFOを必要としないシステムである。
【００３６】
上記説明において作成されたビットマップデータは、画像メモリ２０３に格納される。画像メモリ２０３に格納されているビットマップデータの読出は、ＤＭＡコントローラ２０８・２０９・２１０で制御される。このＤＭＡコントローラ２０８・２０９・２１０による画像メモリ２０３からのビットマップデータの読出・書込みに対する制御は、ＣＰＵ２０５からの指示に基づき行なわれる。
【００３７】
画像メモリ２０３から読み出されたビットマップデータは、ＤＭＡコントローラ２０８に画像処理部２１０に転送される。画像処理部２１０では、印字装置にあわせたハーフトーンなどの処理が行われ、再度ＤＭＡコントローラ２０８によって画像メモリ２０３に転送される。次に、ＤＭＡコントローラ２０９が、画像メモリ２０３から画像を読み出し、印字装置用画像処理部２１１へ転送する。印字装置用画像処理部２１１では、印字装置の特性に合わせた画像処理が行われ、ＤＭＡコントローラ２０９によって、再度画像メモリ２０３に転送される。そして、ＤＭＡコントローラ２１０によって、画像メモリから印字装置用画像処理が終了した画像をブレンド処理部２１２に転送する。画像データは、ブレンド処理部２１２から印字装置Ｉ／Ｆ部２１３を介してビデオ信号として画像印字部１０６に転送される。印字装置Ｉ／Ｆ部２１３には、画像印字部１０６へ転送するビデオ信号を一時的に保持する出力バッファ（不図示）と、画像印字部１０６から送出された信号を一時的に保持する入力バッファ（不図示）とが設けられている。また、印字装置Ｉ／Ｆ部２１３は、画像印字部１０６との間で送受信される信号の入出力部を構成するとともに、画像印字部１０６との間の通信制御を行う。
【００３８】
操作部１０３から操作入力によって出されたモード設定に関する指示等の各種指示は、操作部Ｉ／Ｆ部２０１を介して入力され、操作部Ｉ／Ｆ部２０１は操作部１０３とＣＰＵ２０５との間のインターフェースを構成する。
【００３９】
ＣＰＵ２０５は、操作部１０３もしくはデータ処理部１０１から指示されたモードに応じて、上述の各ブロックに対する制御を行い、この制御はＲＯＭ２０７に格納されている制御プログラムに基づき実行される。このＲＯＭ２０７に格納されている制御プログラムは、システムクロックによってタスクと称されるロードモジュール単位に時分割制御を行うためのＯＳ（オペレーティングシステム）がある。また、制御プログラムには、このＯＳによって機能単位に実行制御される複数のロードモジュールがある。
【００４０】
ＣＰＵ２０５による演算処理の作業領域としては、ＲＡＭ２０６が使用される。ＣＰＵ２０５を含む各ブロックはシステムバス２１４に接続されている。システムバス２１４は、アドレスバスとシステムバス（不図示）とから構成される。
【００４１】
[コマンドFIFO]
図４を使って、本発明のDMAコントローラ付きコマンドFIFOについて説明する。FIFO1/2/3（３０４・３０５・３０６）のようなコマンドFIFOは、図４−１に示すようなインターフェースを持っている。第一のインターフェース（４０２）は、マスタプロセッサ（４００）とのインターフェースであり、図に示す信号によって制御されている。第二のインターフェース（４０３）は、スレーブプロセッサ（４０１）とのインターフェースである。第一のインターフェース４０２はFIFOに対する入力、第二のインターフェース４０１はFIFOからの出力である。次に、メインCPUおよびSub-CPU1/2/3（３００・３０１・３０２あるいは４００・４０１）とは、レジスタバスによっても接続されている。レジスタバス４０６はバスアービター４０５によってアービトレーションされて、１つのレジスタバス４０６に集約される。続いて、ライトDMAインターフェース（４１１）およびリードDMAインターフェース（４１４）があり、それぞれライトDMA（４１２）・リードDMA（４１５）に接続されている。
【００４２】
第一のインターフェース４０２に対しては、FIFO input control（４０８）部が入力制御を行っている。第二のインターフェース４０３に対しては、FIFO control（４０９）部が出力制御を行っている。レジスタバス（インターフェース）４０６に対しては、レジスタI/F部４０７がレジスタアクセスを受信している。そして、DMAインターフェース（４１１・４１２）に対しては、Data transfer control1/2部が制御を行っている。
【００４３】
本発明によるコマンドFIFOモジュールは、図５に示すようなレジスタを有している。DMAは良く知られているシンプルなDMA構成でよい。この例では同じ領域をリングバッファとして使用するようなDMAを想定している。一方、メイン制御部は、DMAコントロール部で確保したメモリサイズと、DMA部へデータを転送するときの連続転送量について設定をすることができる。バーストサイズよりも小さくすることが可能であり、これによりFIFO input control部のバッファ量を削減可能である。
【実施例１】
【００４４】
図６・図７を使って、コマンドFIFOの動作を説明する。FIFO input control部６００のシーケンスについて説明する。まず、Commandを受信すると、Spool modeを確認する。FIFO modeとは、DMAを使わずに直接FIFO control部４０９にあるFIFO４０００へデータを転送するモードであり、Memory modeとは、DMAを介してFIFO control部４０９のFIFO４０００へ転送するモードである。
【００４５】
FIFOモードの場合、FIFO４０００の状態をチェックする。Fullでない場合は何もせず、Fullの場合はモード用フラグ信号を変更する６０４。Fullの場合は、FIFO modeにフラグを変更し、CommandをPointerとアクセス実行Commandに置換して、メモリに対してデータ転送を行う（６０６）。一方、spool modeの場合はFIFOに対してデータ転送を行う（６０５）。これらのデータパス制御については、FIFO input control部６００が制御している。
【００４６】
一方、Data transfer control1のシーケンス６１０について説明する。FIFO input control部６００のメモリに対するデータ転送６０６が実行されると、内部のカウンタをカウントアップさせて、メモリ上にデータの残量があるかを確認する６１１。データ残量が０の場合、Wait状態になり、データがメモリ上に存在している場合は、リードDMAに対してデータ転送要求を行う（６１２）。
【００４７】
この方法では、FIFO４０００が一度Fullになると、DMAつまり、メモリを介したモードに切り替わり、CPUによりAbortされるまで、DMAを介すことになる。
【００４８】
一方、スレーブプロセッサ４０２の制御についてシーケンス７００を用いて説明する。コマンドを受信する（７０１）と、コマンド内容が実行可能コマンドかコマンドへのポインタ情報であるかを確認する７０２。コマンドの場合、さらに終了コマンドであるか否かを確認する７０３。この終了コマンドはレジスタとして定義しておき、あらかじめレジスタバス４０６を経由して設定しておくことが可能である。終了コードの場合、コマンドFIFOブロック全体の動作をAbortして動作を終了させる７０６。一方、終了コードでない場合は、通常にコマンドを実行７０４して、再度次のコマンドを受信する。
【００４９】
コマンド内容がポインタ情報である場合、コマンドにはDMA部に対する転送データの開始コマンドとなっており、レジスタバス４０６を経由して、DMA設定および動作開始命令をする７０５。すると、メモリへ退避していたデータが読み出されることになる。この時、一度Memory modeに変更されると、Abortされるまでメモリを介したデータ転送を実行する。
【実施例２】
【００５０】
実施例１の動作に追加して、前述したMemory modeとFIFO modeを自動で切り換えられるように対応したものが図８である。
【００５１】
Data Transfer Control2（４１３）がモード切り換えの機能を持つ。FIFO4000のFull状態をw4_fifo_full信号で検知すると、w3_act_mode信号をアサートして、データパスを切り換える。すると、Data Transfer Control1（４１０）は、データを転送する際のデータ送信先を意識することなく、データを転送する機能だけを実行することができる。データ転送要求w2_reqを出すと、Data Transfer Control2は、FIFO（４０００）のFull信号と、Memory spool先のFull信号を検知して、モードに応じてデータの転送をメモリかFIFO４０００に行う。また、wr_cnr_i/ rd_cnr_iは、メモリに転送したデータ量をカウントしており、FIFO4000がFullでなく、wr_cnr_i - rd_cnr_i = 0となった時点でFIFO modeへ再度切り換えることが可能である。
【００５２】
FIFO input control部のシーケンス８００は次の通りである。コマンドを受信８０１した後、最終コマンドか（DMAブロック４１２・４１５への）連続転送サイズ分のデータがバッファにたまるまでコマンド受信８０１を繰り返す（８０２）。続いて、FIFO4000のステータスを確認して、FIFOもMemoryのいずれもFullでなければ（８０３）、データ転送を行う（８０４）。
【００５３】
Data transfer control1部のシーケンス８１０は次の通りである。FIFO4000のステータスがFullでない場合、つまり、w3_act_modeが０の場合はidle状態となっている（８１１）。Fullになると、データパスを切り換える（８１２）。Full modeにおけるデータ転送が行われたことを確認して、データ転送量を変更する（８１３・８１４）。
【００５４】
Data transfer control2部のシーケンス８２０は次の通りである。FIFO４０００のステータスがFullでない場合は、Idle状態となる（８２１）。転送データ量が０になると、FIFO４０００が再度Fullになるのを待つ。一方、最終コマンドを受信した信号を受信するか、バーストサイズ分のデータがメモリにたまるとリードDMA（４１５）に対して、データリードの転送要求を行う（８２３）。リードDMA（４１５）からデータが転送されてから、FIFO４０００の状態を確認して、Fullの場合はそのまま待ち、Fullでない場合FIFO４０００へデータを転送する（８２５）。
【００５５】
本機能を持つFIFOブロックを利用すると、各FIFO1/2/3のサイズを小さくしても、FIFOからデータがあふれる場合はメモリに転送することで、実質的なFull状態を回避することが可能となる。また、アプリケーションを変更した際は、退避用メモリサイズを各FIFOに対して適切に変更することで効率的にメモリを使用するシステムを実現することが可能となる。
【００５６】
本機能を持つFIFOブロックは、図のようにプロセッサのシステムバスとは別であってもよい。また、同一のシステムバス上のメインメモリとは異なるメモリ空間に対して、FIFOブロック用のアドレスをシステムとして定義する構成も可能である。
【符号の説明】
【００５７】
１００  画像形成装置
１０１  データ処理部
１０２  表示部
１０３  操作部
１０４  画像読取部
１０５  記憶部
１０６  画像印字部
１０７  ネットワークＩ／Ｆ
１０８  デバイス制御部
１０９  画像読取データ処理部
１１０  画像印字データ処理部
２０８  ＤＭＡコントローラ
２０９  ＤＭＡコントローラ
２１０  画像処理部
２１１  印字装置用画像処理部
２１２  ブレンド処理部
２１３  印字装置Ｉ／Ｆ
２１４  システムバス
３００  Ｓｕｂ−ＣＰＵ１
３０１  Ｓｕｂ−ＣＰＵ２
３０２  Ｓｕｂ−ＣＰＵ１
３０３  専用処理モジュール
３０４  ＦＩＦＯ１
３０５  ＦＩＦＯ２
３０６  ＦＩＦＯ３
３０７  バスアービター
４００  マスタプロセッサ
４０１  スレーブプロセッサ
４０２  第一のインターフェース
４０３  第二のインターフェース
４０６  レジスタバス（インターフェース）
４０７  レジスタインターフェース部
４０８  ＦＩＦＯ Ｉｎｐｕｔ Ｃｏｎｔｒｏｌ部
４０９  ＦＩＦＯ Ｃｏｎｔｒｏｌ部
４１０  Ｄａｔａ Ｔｒａｎｓｆｅｒ Ｃｏｎｔｒｏｌ１部
４１１  ライトＤＭＡバス
４１２  ライトＤＭＡコントローラ部
４１３  Ｄａｔａ Ｔｒａｎｓｆｅｒ Ｃｏｎｔｒｏｌ２部
４１４  リードＤＭＡバス
４１５  リードＤＭＡコントローラ部
【図１】
2011056703.tif 000003
【図２】
2011056703.tif 000004
【図３】
2011056703.tif 000005
【図４】
2011056703.tif 000006
【図５】
2011056703.tif 000007
【図６】
2011056703.tif 000008
【図７】
2011056703.tif 000009
【図８】
2011056703.tif 000010
【図９】
2011056703.tif 000011