(57)【特許請求の範囲】
【請求項１】
パイプラインを形成する複数のプロセッサと、
前記パイプラインの上流のプロセッサと下流のプロセッサとの間で前記上流のプロセッサから前記下流のプロセッサに対して出力されたプロセッサ間の通信データを一時的に内部のＦＩＦＯ式のバッファに記憶する複数の通信部と、
前記各プロセッサ及び前記各通信部からアクセス可能なメモリとを有し、
前記各プロセッサは、
下流のプロセッサにコマンドを送信する場合に、前記コマンドに、前記コマンドの作成に用いた前記メモリ上のデータのアドレス、及び、前記コマンドが前記メモリ内の前記アドレスに存在するか否かを示す識別情報を付加した通信データを出力する作成手段を有し、
前記各通信部は、
前記メモリへのＤＭＡアクセスを制御するＤＭＡ制御手段と、
前記上流のプロセッサから入力された前記通信データ内の識別情報を解析し、前記通信データ内のコマンドが前記メモリ内に存在しないと判断した場合には前記通信データから前記アドレスを削除し、一方、前記通信データ内のコマンドが前記メモリ内に存在すると判断した場合には前記通信データから前記コマンドを削除し、前記アドレス又は前記コマンドが削除された前記通信データを前記ＤＭＡ制御手段に送信して前記メモリに転送する入力処理を行う入力制御手段と、
前記バッファに空きができると、前記メモリにＤＭＡ転送された前記通信データを前記ＤＭＡ制御手段により前記メモリから取得し、該取得した前記通信データ内の識別情報を解析し、前記通信データ内にコマンドが含まれていると判断した場合には前記通信データ内のコマンドを前記バッファに出力し、一方、前記通信データ内にアドレスが含まれていると判断した場合には前記通信データ内のアドレスを用いて前記ＤＭＡ制御手段によりコマンドを前記メモリから取得し、該取得したコマンドを前記バッファに出力するように制御する出力処理を行う出力制御手段を有する、
ことを特徴とする情報処理装置。
【請求項２】
前記入力制御手段は、前記バッファに空きがある場合には、前記上流のプロセッサから入力された前記通信データから前記アドレスを削除したデータを前記出力制御手段に送信し、一方、前記バッファに空きがない場合には、前記通信データを前記メモリにＤＭＡ転送することを示す識別情報を前記出力制御手段に送信する処理と前記入力処理を行うものであり、
前記出力制御手段は、前記入力制御手段からデータを受け取ると、該データ内の識別情報を解析し、前記識別情報が前記通信データを前記メモリにＤＭＡ転送することを示す識別情報でない場合には、前記バッファに空きができると、前記データ内のコマンドを前記バッファに出力し、一方、前記識別情報が前記通信データを前記メモリにＤＭＡ転送することを示す識別情報である場合には、前記出力処理を行う、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
パイプラインを形成する複数のプロセッサと、前記パイプラインの上流のプロセッサと下流のプロセッサとの間で前記上流のプロセッサから前記下流のプロセッサに対して出力されたプロセッサ間の通信データを一時的に内部のＦＩＦＯ式のバッファに記憶する複数の通信部と、前記各プロセッサ及び前記各通信部からアクセス可能なメモリとを有する情報処理装置におけるプロセッサ間通信制御方法であって、
前記各プロセッサが、下流のプロセッサにコマンドを送信する場合に、前記コマンドに、前記コマンドの作成に用いた前記メモリ上のデータのアドレス、及び、前記コマンドが前記メモリ内の前記アドレスに存在するか否かを示す識別情報を付加した通信データを出力する作成ステップと、
前記各通信部の入力制御手段が、前記上流のプロセッサから入力された前記通信データ内の識別情報を解析し、前記通信データ内のコマンドが前記メモリ内に存在しないと判断した場合には前記通信データから前記アドレスを削除し、一方、前記通信データ内のコマンドが前記メモリ内に存在すると判断した場合には前記通信データから前記コマンドを削除し、前記アドレス又は前記コマンドが削除された前記通信データをＤＭＡ制御手段により前記メモリに転送する入力処理を行う入力制御ステップと、
前記各通信部の出力制御手段が、前記バッファに空きができると、前記メモリにＤＭＡ転送された前記通信データを前記ＤＭＡ制御手段により前記メモリから取得し、該取得した前記通信データ内の識別情報を解析し、前記通信データ内にコマンドが含まれていると判断した場合には前記通信データ内のコマンドを前記バッファに出力し、一方、前記通信データ内にアドレスが含まれていると判断した場合には前記通信データ内のアドレスを用いて前記ＤＭＡ制御手段によりコマンドを前記メモリから取得し、該取得したコマンドを前記バッファに出力するように制御する出力処理を行う出力制御ステップと、
を有することを特徴とするプロセッサ間通信制御方法。
【請求項４】
前記入力制御ステップでは、前記入力制御手段は、前記バッファに空きがある場合には、前記上流のプロセッサから入力された前記通信データから前記アドレスを削除したデータを前記出力制御手段に送信し、一方、前記バッファに空きがない場合には、前記通信データを前記メモリにＤＭＡ転送することを示す識別情報を前記出力制御手段に送信する処理と前記入力処理を行うものであり、
前記出力制御ステップは、前記出力制御手段は、前記入力制御手段からデータを受け取ると、該データ内の識別情報を解析し、前記識別情報が前記通信データを前記メモリにＤＭＡ転送することを示す識別情報でない場合には、前記バッファに空きができると、前記データ内のコマンドを前記バッファに出力し、一方、前記識別情報が前記通信データを前記メモリにＤＭＡ転送することを示す識別情報である場合には、前記出力処理を行う、
ことを特徴とする請求項３に記載のプロセッサ間通信制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサ間にＦＩＦＯ式のバッファを配置したマルチプロセッサによるパイプライン構成を有する情報処理装置、及び、プロセッサ間通信制御方法に関する。
【背景技術】
【０００２】
近年、カラー画像処理装置におけるラスタ画像処理の方法が複雑になっている。複雑なアルゴリズムを高い品質のもとに高速に行う手段の一つとして、マルチプロセッサによるパイプライン化を実現したシステムが提案されている。
【０００３】
マルチプロセッサをパイプライン化する場合に、プロセッサ間にＦＩＦＯ式のバッファを配置することでメモリアクセスを高速化する方法が知られている。
【０００４】
この時、一つのコマンドをＦＩＦＯ式のバッファへ送信する時間は、各プロセッサの処理時間に依存して変化する。プロセッサ間でコマンドを送信する時間の差分があまりに大きいと、プロセッサ間のＦＩＦＯ式のバッファに記憶されるデータがフル状態になり、プロセッサはデータ送信ができず、ストールしてしまう。一方、後段のプロセッサの処理時間が早すぎる場合、上流のプロセッサからコマンドが送信されて来ないために下流のプロセッサにストールが発生するという問題がある。これらの問題に対処するには、システム設計時に膨大なデータを使って、動作解析を行い、ＦＩＦＯ式のバッファの容量を最適なサイズにすることも可能であるが、動作解析に膨大な作業が必要となる。
【０００５】
これらの要因に対処して、マルチプロセッサのパイプライン化を実現するには、ＦＩＦＯ式のバッファのフル状態に起因するプロセッサのストールを解消することが必要となる。
特許文献１には、パイプライン間を結合するＦＩＦＯ式のバッファ及びレイテンシの大きい共有メモリを有するシステムにおいて、ＦＩＦＯ式のバッファがフル状態になったことを検出して、上流のプロセッサがコマンドを共有メモリへ転送し、下流のプロセッサが共有メモリにアクセスして、コマンドを読み出す方法が提案されている。
【０００６】
特許文献２には、ＣＰＵ（プロセッサ）を介さないＤＭＡ制御において、転送の必要が無いデータを削除したデータ転送を短時間で処理する方法が提案されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００１−２５６２００号公報
【特許文献２】特開平６−３４８６４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１で示されるデータ転送技術では、下流のプロセッサがコマンドが転送されたレイテンシの大きいメモリにアクセスする必要があり、プロセッサ間にＦＩＦＯ式のバッファを配置した効果が半減してしまう。
【０００９】
また、特許文献２で示されるＤＭＡ制御技術では、転送データの内容を予め設定された転送の必要が無いデータと比較する必要がり、ＤＭＡ制御部を低コストで構成することができない。
【００１０】
本発明は、上記の問題点を解決するためになされたものである。本発明の目的は、マルチプロセッサをパイプライン化しつつ、低コスト／高性能なプロセッサ間データ転送を実現する仕組みを提供することである。
【課題を解決するための手段】
【００１１】
本発明は、パイプラインを形成する複数のプロセッサと、前記パイプラインの上流のプロセッサと下流のプロセッサとの間で前記上流のプロセッサから前記下流のプロセッサに対して出力されたプロセッサ間の通信データを一時的に内部のＦＩＦＯ式のバッファに記憶する複数の通信部と、前記各プロセッサ及び前記各通信部からアクセス可能なメモリとを有し、前記各プロセッサは、下流のプロセッサにコマンドを送信する場合に、前記コマンドに、前記コマンドの作成に用いた前記メモリ上のデータのアドレス、及び、前記コマンドが前記メモリ内の前記アドレスに存在するか否かを示す識別情報を付加した通信データを出力する作成手段を有し、前記各通信部は、前記メモリへのＤＭＡアクセスを制御するＤＭＡ制御手段と、前記上流のプロセッサから入力された前記通信データ内の識別情報を解析し、前記通信データ内のコマンドが前記メモリ内に存在しないと判断した場合には前記通信データから前記アドレスを削除し、一方、前記通信データ内のコマンドが前記メモリ内に存在すると判断した場合には前記通信データから前記コマンドを削除し、前記アドレス又は前記コマンドが削除された前記通信データを前記ＤＭＡ制御手段に送信して前記メモリに転送する入力処理を行う入力制御手段と、前記バッファに空きができると、前記メモリにＤＭＡ転送された前記通信データを前記ＤＭＡ制御手段により前記メモリから取得し、該取得した前記通信データ内の識別情報を解析し、前記通信データ内にコマンドが含まれていると判断した場合には前記通信データ内のコマンドを前記バッファに出力し、一方、前記通信データ内にアドレスが含まれていると判断した場合には前記通信データ内のアドレスを用いて前記ＤＭＡ制御手段によりコマンドを前記メモリから取得し、該取得したコマンドを前記バッファに出力するように制御する出力処理を行う出力制御手段を有することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、マルチプロセッサをパイプライン化しつつ、低コスト／高性能なプロセッサ間データ転送を実現する仕組みを提供することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施例を示す画像処理装置を適用可能な画像処理システムの構成の一例を示すブロック図である。
【図２】図１に示した画像処理装置１１０のコントローラ１１１の構成を示すブロック図である。
【図３】図２に示した画像生成部２１１の構成を示すブロック図である。
【図４】図３に示した画像生成部２１１の動作概要を示す図である。
【図５】画像生成部２１１で使用するパケットデータのフォーマットを示す概略図である。
【図６】Ｓｕｂ-ＣＰＵが実行するパケットデータ作成処理の一例を示すフローチャートである。
【図７】実施例１におけるＤＭＡ付ＦＩＦＯの構成を示すブロック図である。
【図８】実施例１における入力データ制御部７０１の動作の一例を示すフローチャートである。
【図９】実施例１におけるＤＭＡ制御部７０３のシステムメモリ２０３へのデータ送信動作の一例を示すフローチャートである。
【図１０】実施例１における出力制御部７０５の動作の一例を示すフローチャートである。
【図１１】実施例１におけるＤＭＡ制御部７０３のシステムメモリ２０３からのデータ受信動作の一例を示すフローチャートである。
【図１２】実施例２におけるＤＭＡ付ＦＩＦＯの構成を示すブロック図である。
【図１３】実施例２における入力データ制御部７０１の動作の一例を示すフローチャートである。
【図１４】実施例２における出力制御部７０５の動作の一例を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【実施例１】
【００１５】
本実施例では、本発明の情報処理装置の一実施例を示す画像処理装置として、スキャン、プリント、コピーなどの複数機能を有するデジタル複合機（ＭＦＰ；Multifunction Peripheral）を例に説明する。
【００１６】
図１は、本発明の一実施例を示す画像処理装置を適用可能な画像処理システムの構成の一例を示すブロック図である。
このシステムではホストコンピュータ１３０及び２台の画像処理装置（１００，１１０）がＬＡＮ１４０に接続されているが、本発明における画像処理システムにおいては、これらの接続数に限られることはない。また、本実施例では接続方法としてＬＡＮを適用しているが、これに限られることはない。例えば、ＷＡＮ（公衆回線）などの任意のネットワーク、ＵＳＢなどのシリアル伝送方式、セントロニクスやＳＣＳＩなどのパラレル伝送方式なども適用可能である。
【００１７】
ホストコンピュータ（以下、ＰＣと称する）１３０は、パーソナルコンピュータの機能を有している。このＰＣ１３０は、ＬＡＮ１４０やＷＡＮを介してＦＴＰやＳＭＢプロトコルを用いファイルを送受信したり電子メールを送受信したりすることができる。さらには、ＰＣ１３０は、画像処理装置１００，１１０に対して、プリンタドライバを介した印刷命令を送信することも可能となっている。
【００１８】
画像処理装置１００と１１０は同じ構成で、スキャナ部を有する画像処理装置である。以下では、説明の簡単のために、画像処理装置１００、１１０のうちの画像処理装置１１０に注目して、その構成を詳細に説明する。
【００１９】
画像処理装置１１０は、画像入力デバイスであるスキャナ部１１３、画像出力デバイスであるプリンタ部１１４、画像処理装置１１０全体の動作制御を司るコントローラ１１１、ユーザインターフェース（ＵＩ）である操作部１１２を有する。
【００２０】
図２は、図１に示した画像処理装置１１０のコントローラ１１１の構成を示すブロック図である。
ＣＰＵ２０１は、画像処理装置１１０全体を制御するためのコントローラである。ＣＰＵ２０１は、ＲＯＭ２０２に格納されているブートプログラムによりＯＳ（Operating System）を起動する。このＯＳ上で大容量ストレージ２０６に記憶されているコントローラプログラムや各種アプリケーションプログラムを実行させる。ＣＰＵ２０１はデータバス２０４などの内部バスによって各部と接続されている。
【００２１】
ＲＡＭ２０３は、ＣＰＵ２０１の主メモリやワークエリア等の一時記憶領域として動作する。さらに、ＲＡＭ２０３は、画像処理の一時記憶領域としても使用される。以下、ＲＡＭ２０３をシステムメモリ２０３とも呼ぶ。
【００２２】
ストレージ制御部２０５は、大容量ストレージ２０６からのデータの読み出しや、大容量ストレージ２０６へのデータの書き込み等を制御する。
インターフェース制御部２０７は、ＮＩＣ（Network Interface Card）２０８などのネットワークＩ／Ｆを制御して、ＬＡＮ１４０などのネットワークに対して、画像データをはじめとするさまざまなデータの送受信を行う。また、インターフェース制御部２０７は、モデム２０９を制御して、電話回線に対してデータの送受信を行う。
【００２３】
操作Ｉ／Ｆ２１０は、操作部１１２の入力部（タッチパネルやハードキー等）からユーザの操作支持を入力する。また、操作Ｉ／Ｆ２１０は、操作部１１２の出力部（ＬＣＤやＣＲＴ等）を制御して、操作画面をユーザに対して表示する。
【００２４】
画像生成部２１１は、インターフェース制御部２０７を介して受信したデータに基づきプリンタ部１１４が処理可能なビットマップデータの生成と属性データの生成を行う（詳細は図４に示す）。
【００２５】
圧縮部２１２は、ビットマップデータと属性データの圧縮を行う。伸張部２１３では圧縮部２１２で圧縮されたデータの伸張を行い、ビットマップデータと属性データの生成を行う。
【００２６】
スキャナ画像処理部２１４は、スキャナ部１１３からスキャナＩ／Ｆ２１５を介して受取ったビットマップデータに対して、補正、加工、及び編集を行う。なお、スキャナ画像処理部２１４は、受取ったビットマップデータがカラー原稿か白黒原稿か、文字原稿か写真原稿かなどを判定し、その判定を属性データとして画像データに付随させる。
プリンタ画像形成部２１６は、プリンタ用画像処理を行い、プリンタＩ／Ｆ２１７を介してプリンタ部１１４に前述のビットマップデータを送信する。
【００２７】
図３は、図２に示した画像生成部２１１の構成を示すブロック図である。
図３に示すように、画像生成部２１１は、パイプラインを構成する複数のプロセッサを有する。図３の例では、４つのＳｕｂ-ＣＰＵ、Ｓｕｂ-ＣＰＵ１（３００）、Ｓｕｂ-ＣＰＵ２（３０１）、Ｓｕｂ-ＣＰＵ３（３０２）、Ｓｕｂ-ＣＰＵ４（３０３）を有する。
【００２８】
Ｓｕｂ-ＣＰＵ１（３００）とＳｕｂ-ＣＰＵ２（３０１）は、ＤＭＡ付ＦＩＦＯ１（３０４）によって接続されている。また、Ｓｕｂ-ＣＰＵ２（３０１）とＳｕｂ-ＣＰＵ３（３０２）は、ＤＭＡ付ＦＩＦＯ２（３０５）によって接続されている。さらに、Ｓｕｂ-ＣＰＵ３（３０２）とＳｕｂ-ＣＰＵ４（３０３）は、ＤＭＡ付ＦＩＦＯ３（３０６）によって接続されている。これらのＤＭＡ付ＦＩＦＯは、前記パイプラインの上流のＳｕｂ-ＣＰＵと下流のＳｕｂ-ＣＰＵとの間で上流のＳｕｂ-ＣＰＵから下流のＳｕｂ-ＣＰＵに対して出力されたプロセッサ間の通信データを一時的に内部のＦＩＦＯ式のバッファに記憶する通信部として機能する。
【００２９】
また、Ｓｕｂ-ＣＰＵ１（３００）／Ｓｕｂ-ＣＰＵ２（３０１）／Ｓｕｂ-ＣＰＵ３（３０２）／Ｓｕｂ-ＣＰＵ４（３０３）、及び、ＤＭＡ付ＦＩＦＯ１(３０４）／ＤＭＡ付ＦＩＦＯ２（３０５）／ＤＭＡ付ＦＩＦＯ３(３０６)は、それぞれデータバス２０４への入出力が可能な構成となっている。これらブロックからのバスアクセスは、バスアービター（Ｂｕｓ Ａｒｂｉｔｏｒ）３０７によって、アービトレーションされて、データバス２０４へ接続される。これらのＳｕｂ-ＣＰＵ、及び、ＤＭＡ付ＦＩＦＯは、それぞれバスアービター３０７、データバス２０４を介してシステムメモリ２０３にアクセス可能である。
【００３０】
さらに、Ｓｕｂ-ＣＰＵ１（３００）／Ｓｕｂ-ＣＰＵ２（３０１）／Ｓｕｂ-ＣＰＵ３（３０２）／Ｓｕｂ-ＣＰＵ４（３０３）は、それぞれシステムメモリ２０３に格納されたファームウェアを実行することにより処理を実行する。
【００３１】
図４は、図３に示した画像生成部２１１の動作概要を示す図である。
画像生成部２１１は、システムメモリ２０３に格納された中間データ（ディスプレイリスト）を用いてプリンタ部１１４の主走査ライン単位で画像生成を行う。まず、Ｓｕｂ-ＣＰＵ１（３００）は、システムメモリ２０３内のディスプレイリスト（描画コマンド群）を読み出し、該ディスプレイリストに含まれる画像生成するデータのオブジェクト情報からエッジを抽出する処理を行う。さらに、Ｓｕｂ-ＣＰＵ１（３００）は、重なり抽出コマンドを作成して、ＤＭＡ付ＦＩＦＯ１（３０４）を介してＳｕｂ-ＣＰＵ２（３０１）へ重なり抽出コマンドを送信する。
【００３２】
次いで、Ｓｕｂ-ＣＰＵ２（３０１）は、受信した重なりコマンドにより重なりを抽出する。図４の例では、Ｓｕｂ-ＣＰＵ１（３００）で抽出したエッジ間での重なりをＬｅｖｅｌとして示している。なお、Ｌｅｖｅｌ０が最背面のオブジェクトを示し、Ｌｅｖｅｌ０、Ｌｅｖｅｌ１、Ｌｅｖｅｌ２のように、Ｌｅｖｅｌの数値が大きくなるほど、より前面にあるオブジェクトを示す。即ち、図４の例では、Ｌｅｖｅｌ２が最前面のオブジェクトを示す。
【００３３】
さらに、Ｓｕｂ-ＣＰＵ２（３０１）は、抽出した重なり情報により色作成コマンドを作成し、ＤＭＡ付ＦＩＦＯ２（３０５）を介してＳｕｂ-ＣＰＵ３（３０２）へ色作成コマンドを送信する。
【００３４】
次いで、Ｓｕｂ-ＣＰＵ３（３０２）は、受信した色コマンドにより、各Ｌｅｖｅｌの色を作成する。さらに、Ｓｕｂ-ＣＰＵ３（３０２）は、ＲＯＰ(Raster Operation)コマンドを作成して、ＤＭＡ付ＦＩＦＯ３（３０６）を介してＳｕｂ-ＣＰＵ４（３０３）へＲＯＰコマンドを送信する。
【００３５】
Ｓｕｂ-ＣＰＵ４（３０３）は、受信したＲＯＰコマンドによりラスタオペレーションを実行し画素を作成して、該作成した画素をシステムメモリ２０３へ送信する。
画像生成部２１１は、以上のような動作をライン毎に実行することにより、１ページ分の画像データ４００を作成する。
なお、Ｓｕｂ-ＣＰＵ１（３００）／Ｓｕｂ-ＣＰＵ２（３０１）／Ｓｕｂ-ＣＰＵ３（３０２）は、コマンドを生成する際に、システムメモリ２０３から読み出した中間データを利用する。
【００３６】
図５は、画像生成部２１１で使用するパケットデータのフォーマットを示す概略図である。
図５において、５００はパケットデータであり、上流のＳｕｂ-ＣＰＵから下流のＳｕｂ-ＣＰＵに対して出力するプロセッサ間の通信データである。
パケットデータ５００は、ＩＤ情報５０１と、アドレスデータ（adress）５０２と、コマンドデータ（command）５０３とで構成される。
ＩＤ情報５０１は、コマンドデータ５０３が、アドレスデータ５０２が示すシステムメモリ２０３上に格納されているものか（即ち、システムメモリ２０３から読み出されたデータそのものか）、パケットデータ５００を生成したＳｕｂ-ＣＰＵにより作成されたものかを示す識別情報を含む。上流のＳｕｂ-ＣＰＵから下流のＳｕｂ-ＣＰＵに対してコマンドを出力する場合、上流のＳｕｂ-ＣＰＵは、システムメモリ２０３から読み出した中間データを利用してコマンドを作成する。この際、上流のＳｕｂ-ＣＰＵ自身がコマンドを作成する場合と、システムメモリ２０３から読み出した中間データをそのままコマンドとする場合とがある。そのため、コマンドが上記いずれのコマンドであるかを下流のＤＭＡ付ＦＩＦＯ３に識別させるために、ＩＤ情報５０１を設けている。
なお、ＩＤ情報５０１は、パケットデータ５００で送信するコマンドがプリンタ部１１４の主走査ライン内の最終コマンドであるか否かを示す情報等も含むものとする。
【００３７】
アドレスデータ５０２は、コマンドデータ５０３を作成するために用いたシステムメモリ２０３上に格納されている中間データ（コマンド）のアドレス（メモリ上のアドレス）である。コマンドデータ５０３は、下流のＳｕｂ-ＣＰＵに対するコマンドである。
【００３８】
図６は、Ｓｕｂ-ＣＰＵ１（３００）／Ｓｕｂ-ＣＰＵ２（３０１）／Ｓｕｂ-ＣＰＵ３（３０２）が実行するパケットデータ作成処理の一例を示すフローチャートである。なお、このフローチャートの処理は、Ｓｕｂ-ＣＰＵ１（３００）／Ｓｕｂ-ＣＰＵ２（３０１）／Ｓｕｂ-ＣＰＵ３（３０２）／Ｓｕｂ-ＣＰＵ４（３０３）が、システムメモリ２０３に格納されるプログラムを読み出して実行することにより実現される。なお、ここではＳｕｂ-ＣＰＵ１（３００）／Ｓｕｂ-ＣＰＵ２（３０１）／Ｓｕｂ-ＣＰＵ３（３０２）を、Ｓｕｂ-ＣＰＵと、ＤＭＡ付ＦＩＦＯ１(３０４）／ＤＭＡ付ＦＩＦＯ２（３０５）／ＤＭＡ付ＦＩＦＯ３(３０６)をＤＭＡ付ＦＩＦＯと記す。
【００３９】
Ｓｕｂ-ＣＰＵは、下流のＳｕｂ-ＣＰＵへ送信するコマンドを作成すると、下流のＳｕｂ-ＣＰＵへ送信するパケットデータの作成を開始する。
まず、Ｓｕｂ-ＣＰＵは、作成したコマンドが、システムメモリ２０３上に格納されているものか（システムメモリ２０３から読み出した中間データそのものか）、自身で作成したものかを示すＩＤ情報を割り当てる（ＩＤ情報取得（Ｓ６０１））。
【００４０】
次に、Ｓｕｂ-ＣＰＵは、コマンド生成を行う際に利用した中間データのシステムメモリ２０３内の格納アドレスを取得する（Ｓ６０２）。
さらに、Ｓｕｂ-ＣＰＵは、上記Ｓ６０１で取得したＩＤ情報、上記Ｓ６０２で取得したアドレス、上記作成したコマンドを、ＩＤ情報５０１、アドレスデータ５０２、コマンドデータ５０３とし、パケットデータ５００の作成を行う（Ｓ６０３）。
最後に、Ｓｕｂ-ＣＰＵは、上記Ｓ６０３で作成したパケットデータ５００を下流のＤＭＡ付ＦＩＦＯへ送信する（Ｓ６０４）。
以上の処理により、Ｓｕｂ-ＣＰＵは、通信データ内にＩＤ情報５０１、アドレスデータ５０２、コマンドデータ５０３を格納したパケットデータ５００を、下流のＳｕｂ-ＣＰＵに送信することができる。
【００４１】
以下、図７を参照して、ＤＭＡ付ＦＩＦＯ１(３０４）／ＤＭＡ付ＦＩＦＯ２（３０５）／ＤＭＡ付ＦＩＦＯ３(３０６)の構成について説明する。なお、図７では、ＤＭＡ付ＦＩＦＯ１(３０４）を代表して説明する。
【００４２】
図７は、実施例１におけるＤＭＡ付ＦＩＦＯの構成を示すブロック図である。
入力データ制御部７０１は、上流Ｓｕｂ-ＣＰＵからコネクション７００を介して受信したパケットデータを解析し、ＤＭＡ制御部７０３へデータを転送する入力制御部である。入力データ制御部７０１は、ＤＭＡ制御部７０３とコネクション７０２で接続する。なお、入力データ制御部７０１の入力処理動作は、後述する図８に示す。ＤＭＡ制御部７０３は、システムメモリ２０３へのＤＭＡアクセス（ＤＭＡ転送）を制御する。
また、ＤＭＡ制御部７０３の動作は、後述する図９、図１１に示す。
【００４３】
出力制御部７０５は、ＦＩＦＯ７０７とはコネクション７０６で接続し、ＤＭＡ制御部７０３とはコネクション７０４で接続する。なお、出力制御部７０５の出力処理動作は、後述する図１０に示す。
【００４４】
ＦＩＦＯ７０７は、出力制御部７０５から受信し、先に受信したデータから先に出力するいわゆるファーストインファーストアウト方式（ＦＩＦＯ方式）でデータを記憶するバッファである。
【００４５】
以下、図８、図９、図１０、図１１を用いて、実施例１におけるＤＭＡ付ＦＩＦＯのデータ入出力動作を説明する。
まず、入力データ制御部７０１の動作を図８のフローチャートを用いて説明する。
図８は、実施例１における入力データ制御部７０１の動作の一例を示すフローチャートである。
入力データ制御部７０１は、上流のＳｕｂ-ＣＰＵからのパケットデータ５００を受信すると、パケットデータ５００内のＩＤ情報５０１を解析する（Ｓ８０１）。このＩＤ情報の解析により、当該コマンドが上流Ｓｕｂ-ＣＰＵにより作成されたものか、システムメモリ２０３に存在するもの（システムメモリ２０３から読み出されたままのデータ）かを判断する（Ｓ８０２）。
【００４６】
そして、当該コマンドがメモリ内に存在するものであると判断した場合（Ｓ８０２でＹｅｓ）、入力データ制御部７０１は、Ｓ８０４へ処理を進める。
Ｓ８０４では、入力データ制御部７０１は、システムメモリ２０３内に存在するコマンドをそのまま使用できるため、コマンドデータ５０３は不要と判断し、パケットデータ５００内のコマンドデータ５０３を削除する（Ｓ８０４）。そして、Ｓ８０５に処理を進める。
【００４７】
一方、当該コマンドがメモリ内に存在しないものであると判断した場合（Ｓ８０２でＮｏ）、入力データ制御部７０１は、Ｓ８０３へ処理を進める。
Ｓ８０３では、入力データ制御部７０１は、システムメモリ２０３内に存在するコマンドをそのまま使用できずコマンドデータ５０３を利用することとなるため、アドレスデータ５０２は不要と判断し、パケットデータ５００内のアドレスデータ５０２を削除する。そして、Ｓ８０５に処理を進める。
Ｓ８０５では、入力データ制御部７０１は、ＤＭＡ制御部７０３へ上記パケットデータ５００を送信し、処理を終了する。
【００４８】
次に、ＤＭＡ制御部７０３のシステムメモリ２０３へのデータ送信動作を図９のフローチャートを用いて説明する。
図９は、実施例１におけるＤＭＡ制御部７０３のシステムメモリ２０３へのデータ送信動作の一例を示すフローチャートである。
ＤＭＡ制御部７０３は、入力データ制御部７０１からデータを受信すると、該データをＤＭＡ制御部７０３内の送信バッファ（不図示）へ格納する（Ｓ９０１）。
次に、ＤＭＡ制御部７０３は、送信バッファがフル状態か否かを判断する（Ｓ９０２）。
そして、送信バッファがフル状態であると判断した場合（Ｓ９０２でＹｅｓ）、ＤＭＡ制御部７０３は、送信バッファ内のデータをシステムメモリ２０３へバースト転送する（Ｓ９０３）。さらに、ＤＭＡ制御部７０３は、上記Ｓ９０３でデータを送信したシステムメモリ２０３内のアドレス情報をアドレスバッファ（不図示）へ格納し（Ｓ９０４）、処理を終了する。
【００４９】
一方、送信バッファがフル状態でないと判断した場合（Ｓ９０２でＮｏ）、ＤＭＡ制御部７０３は、上記データ内のＩＤ情報５０１を解析し（Ｓ９０５）、最終コマンド（プリンタの主走査ラインの最後のデータ）か否を判断する（Ｓ９０６）。
【００５０】
そして、最終コマンドでないと判断した場合（Ｓ９０６でＮｏ）、ＤＭＡ制御部７０３は、そのまま処理を終了する。
一方、最終コマンドであると判断した場合（Ｓ９０６でＹｅｓ）、ＤＭＡ制御部７０３は、送信バッファ内のデータをシステムメモリ２０３へ転送する（Ｓ９０３）。さらに、ＤＭＡ制御部７０３は、上記Ｓ９０３でデータ送信したシステムメモリ２０３内のアドレス情報をＤＭＡ制御部７０３内のアドレスバッファへ格納し（Ｓ９０４）、処理を終了する。
【００５１】
次に、実施例１における出力制御部７０５の動作を図１０のフローチャートを用いて説明する。
図１０は、実施例１における出力制御部７０５の動作の一例を示すフローチャートである。なお、出力制御部７０５は、起動中は常に本フローチャートの処理を実行する。
出力制御部７０５は、ＦＩＦＯ７０７の状態取得を行う（Ｓ１００１）。そして、出力制御部７０５は、ＦＩＦＯ７０７の状態を判断し（Ｓ１００２）、ＦＩＦＯ７０７がフル状態である場合（Ｓ１００２でＹｅｓ）、再度、ＦＩＦＯの状態取得を行う（Ｓ１００１）。
【００５２】
一方、ＦＩＦＯ７０７がフル状態でないと判断した場合（Ｓ１００２でＮｏ）、出力制御部７０５は、ＤＭＡ制御部７０３へ読み出し要求を行う（Ｓ１００３）。この要求により、ＤＭＡ制御部７０３は送信バッファ内のデータ（又はシステムメモリ２０３に転送した後にシステムメモリ２０３から読み出したデータ）を、出力制御部７０５に送信する。
【００５３】
次に、出力制御部７０５は、ＤＭＡ制御部７０３からデータを受信するまで待ち（Ｓ１００４）、ＤＭＡ制御部７０３からデータを受信したと判断した場合（Ｓ１００４でＹｅｓ）、該受信したデータ内のＩＤ情報５０１を解析する（Ｓ１００５）。
【００５４】
次に、出力制御部７０５は、上記Ｓ１００５のＩＤ情報の解析により、上記受信したデータがコマンドデータ５０３を含むか否かを判断する（Ｓ１００６）。この際、出力制御部７０５は、ＩＤ情報５０１が、コマンドがデータを生成したＳｕｂ-ＣＰＵにより作成されたものであることを示す場合、データがコマンドデータ５０３を含むと判断する。一方、ＩＤ情報５０１が、コマンドがシステムメモリ２０３上に格納されていることを示す場合、出力制御部７０５は、データがコマンドデータ５０３を含まないと判断する。
【００５５】
そして、上記受信したデータがコマンドデータ５０３を含むと判断した場合（Ｓ１００６でＹｅｓ）、出力制御部７０５は、上記受信したデータからＩＤ情報５０１を削除し、ＦＩＦＯ７０７へ上記コマンドデータ５０３を送信する（Ｓ１０１０）。そして、処理を終了し、再度、本フローチャートの処理を開始する。
【００５６】
一方、上記受信したデータがコマンドデータ５０３を含まない（つまりアドレスデータ５０２を含む）と判断した場合（Ｓ１００６でＮｏ）、出力制御部７０５は、ＤＭＡ制御部７０３へ上記アドレスデータ５０２を設定し、読み出し要求を行う（Ｓ１００８）。この要求により、ＤＭＡ制御部７０３は、システムメモリ２０３の上記設定されたアドレスに格納されているデータを出力制御部７０５に送信する。
【００５７】
ＤＭＡ制御部７０３は、ＤＭＡ制御部７０３からのデータを受信するまで待ち（Ｓ１００９）、ＤＭＡ制御部７０３からデータを受信したと判定した場合（Ｓ１００９でＹｅｓ）、該受信したデータをＦＩＦＯ７０７へ送信する（Ｓ１０１０）。そして、処理を終了し、再度、本フローチャートの処理を開始する。
【００５８】
次に、実施例１におけるＤＭＡ制御部７０３のシステムメモリ２０３からのデータ受信動作を図１１のフローチャートを用いて説明する。
図１１は、実施例１におけるＤＭＡ制御部７０３のシステムメモリ２０３からのデータ受信動作の一例を示すフローチャートである。
ＤＭＡ制御部７０３は、出力制御部７０５から読み出し要求（図１０のＳ１００３又はＳ１００８の要求）を受けると、出力制御部７０５からの読み出しアドレス設定があるか否かを判断する（Ｓ１１０１）。
【００５９】
そして、出力制御部７０５からの読み出しアドレス設定があると判断した場合（Ｓ１１０１でＹｅｓ）、ＤＭＡ制御部７０３は、上記アドレス設定で設定されたアドレスをリードアドレスに設定し（Ｓ１１０２）、Ｓ１１０４に処理を進める。
【００６０】
一方、出力制御部７０５からの読み出しアドレス設定がないと判断した場合（Ｓ１１０１でＮｏ）、ＤＭＡ制御部７０３は、システムメモリ２０３へデータ送信した際に格納したアドレス情報をアドレスバッファから読み出して、リードアドレスへ設定し（Ｓ１１０３）、Ｓ１１０４に処理を進める。
【００６１】
次に、ＤＭＡ制御部７０３は、上記リードアドレスに対応するデータが既にシステムメモリ２０３から読み出されて受信バッファ（不図示）にあるか否かを判断する（Ｓ１１０４）。
【００６２】
そして、上記リードアドレスに対応するデータが既に受信バッファにあると判断した場合（Ｓ１１０４でＹｅｓ）、ＤＭＡ制御部７０３は、Ｓ１１０７に処理を進める。Ｓ１１０７では、ＤＭＡ制御部７０３は、上記リードアドレスに対応するデータを受信バッファから読み出し、該読み出したデータを出力制御部７０５へ送信し（Ｓ１１０８）、処理を終了する。
【００６３】
一方、上記リードアドレスに対応するデータが受信バッファにないと判断した場合（Ｓ１１０４でＮｏ）、ＤＭＡ制御部７０３は、Ｓ１１０５に処理を進める。
Ｓ１１０５では、ＤＭＡ制御部７０３は、上記リードアドレスに対応するデータをシステムメモリ２０３からＤＭＡ読み出し転送し、該転送されたデータを受信バッファへ格納する（Ｓ１１０６）。さらに、ＤＭＡ制御部７０３は、出力制御部７０５からの読み出しアドレス設定があるか否かを判断する（Ｓ１１０９）。
【００６４】
そして、出力制御部７０５からの読み出しアドレス設定がないと判断した場合（Ｓ１１０９でＮｏ）、ＤＭＡ制御部７０３は、上記アドレスバッファからリードアドレスデータを削除し（Ｓ１１１０）、Ｓ１１０７に処理を進める。
【００６５】
一方、出力制御部７０５からの読み出しアドレス設定があると判断した場合（Ｓ１１０９でＹｅｓ）、ＤＭＡ制御部７０３は、そのままＳ１１０７に処理を進める。
Ｓ１１０７では、出力制御部７０５は、上記システムメモリ２０３から転送したデータを受信バッファから読み出し、該読み出したデータを出力制御部７０５へ送信し（Ｓ１１０８）、処理を終了する。
【００６６】
以上示したプロセッサ間通信制御により、実施例１の画像処理装置では、ＤＭＡ付ＦＩＦＯ内のＤＭＡ制御部７０３がレイテンシの大きいメモリからコマンドを取得する構成により、下流のプロセッサが上記レイテンシの大きいメモリからコマンドを取得する必要がない。このため、レイテンシの大きいメモリへのアクセスによりプロセッサパイプラインの効率を落とすことなく、ＦＩＦＯのフル状態によるプロセッサのストールを解消することができる。
【００６７】
また、実施例１の画像処理装置では、上流のプロセッサから送信されるデータに識別情報（ＩＤ情報５０１）を付加しているため、メモリ転送の必要が無いデータを容易に識別することができる。こたのめ、実施例１の画像処理装置では、実施例１のパイプラインでは、データの内容を予め設定された転送の必要が無いデータと比較するといった複雑な処理を行う必要がなく、ＤＭＡ制御部を低コストで構成することができる。
【００６８】
したがって、実施例１の画像処理装置では、マルチプロセッサ構成におけるプロセッサ間通信のためのコマンド用ＦＩＦＯ容量の小規模なサブシステムにてパフォーマンス劣化の少ない高性能なデータ転送を安価に実現することができる。即ち、マルチプロセッサパイプラインで低コスト／高性能なプロセッサ間データ転送を実現することができる。
【００６９】
よって、実施例１の画像処理装置の画像生成部２１１は、小リソースのプロセッサでありながらも、高速なレンダリング処理によってラスタ画像データを形成することができる。
【実施例２】
【００７０】
実施例２では、上記実施例１の構成に追加して、入力データ制御部７０１と出力制御部７０５を通信可能に構成した。以下、実施例２の構成について、図１２、図１３及び図１４を用いて説明する。
【００７１】
図１２は、実施例２におけるＤＭＡ付ＦＩＦＯの構成を示すブロック図である。なお、図７と同一のものには同一の符号を付してある。
入力データ制御部７０１は、実施例１と同様に、上流Ｓｕｂ-ＣＰＵからコネクション７００を介して受信したパケットデータを解析し、出力制御部７０５もしくはＤＭＡ制御部７０３へデータを転送する。入力データ制御部７０１は、出力制御部７０５とコネクション１２０１で接続し、ＤＭＡ制御部７０３とコネクション７０２で接続する。なお、実施例２の入力データ制御部７０１の動作は、後述する図１３に示す。
【００７２】
出力制御部７０５は、ＦＩＦＯ７０７とコネクション７０６で接続し、ＤＭＡ制御部７０３とはコネクション７０４で接続する。なお、実施例２の出力制御部７０５の動作は、後述する図１４に示す。
【００７３】
ＦＩＦＯ７０７は、実施例１と同様に、出力制御部７０５から受信し、先に受信したデータから先に出力するいわゆるファーストインファーストアウト方式でデータを記憶するものである。
【００７４】
以下、図１３、図１４を用いて実施例２におけるＤＭＡ付ＦＩＦＯのデータ入出力動作を説明する。
まず、入力データ制御部７０１の動作を図１３のフローチャートを用いて説明する。
図１３は、実施例２における入力データ制御部７０１の動作の一例を示すフローチャートである。
入力データ制御部７０１は、上流のＳｕｂ-ＣＰＵからのパケットデータ５００を受信すると、出力制御部７０５からＦＩＦＯ７０７の状況取得を行う（Ｓ１３０１）。入力データ制御部７０１が、コネクション１２０１を介して出力制御部７０５にＦＩＦＯ７０７の状況取得要求を行うと、出力制御部７０５からＦＩＦＯ７０７の状況を示す情報が返信される。
【００７５】
入力データ制御部７０１は、上記Ｓ１３０１で取得したＦＩＦＯ７０７の状況から、ＦＩＦＯ７０７がフル状態であるか否かを判断する（Ｓ１３０２）。
そして、ＦＩＦＯ７０７がフル状態であると判断した場合（Ｓ１３０２でＹｅｓ）、入力データ制御部７０１は、出力制御部７０５へＤＭＡ格納ＩＤを送信する（Ｓ１３０５）。なお、ＤＭＡ格納ＩＤとは、ＦＩＦＯがＦｕｌｌであったため、上流のＳｕｂ-ＣＰＵから受信したデータを、ＤＭＡ制御部７０３に送信する旨を示す識別情報である。
【００７６】
次に、入力データ制御部７０１は、実施例１と同様の処理でＤＭＡ制御部７０３へ上流のＳｕｂ-ＣＰＵから受信したデータを転送する（Ｓ１３０６〜Ｓ１３１０）。なお、Ｓ１３０６〜Ｓ１３１０の処理は、図８のＳ８０１〜Ｓ８０５と同一の処理であるので説明は省略する。
【００７７】
一方、ＦＩＦＯ７０７がフル状態でないと判断した場合（Ｓ１３０２でＮｏ）、入力データ制御部７０１は、パケットデータ５００内部のアドレスデータ５０２を削除し（Ｓ１３０３）、該パケットデータ５００を出力制御部７０５へ送信する（Ｓ１３０４）。そして、処理を終了する。
【００７８】
次に、出力制御部７０５の動作を図１４のフローチャートを用いて説明する。
図１４は、実施例２における出力制御部７０５の動作の一例を示すフローチャートである。なお、出力制御部７０５は、入力データ制御部７０１から送信されたデータ（図１３のＳ１３０５又はＳ１３０４で送信されたデータ）を受信すると、本フローチャートの処理を開始する。
【００７９】
出力制御部７０５は、ＦＩＦＯ７０７の状態取得を行う（Ｓ１４０１）。そして、出力制御部７０５は、ＦＩＦＯ７０７の状態を判断し（Ｓ１４０２）、ＦＩＦＯ７０７がフル状態である場合（Ｓ１４０２でＹｅｓ）、再度、ＦＩＦＯの状態取得を行う（Ｓ１４０１）。なお、出力制御部７０５は、本フローチャートの処理を実行中でも、入力データ制御部７０１からＦＩＦＯ７０７の状況取得要求を受けると、ＦＩＦＯ７０７の状況を取得し、ＦＩＦＯ７０７の状況を入力データ制御部７０１に返信する。
【００８０】
一方、ＦＩＦＯ７０７がフル状態でないと判断した場合（Ｓ１４０２でＮｏ）、出力制御部７０５は、上記入力データ制御部７０１から受信したデータ内のＩＤ情報を解析する（Ｓ１４０３）。このＩＤ情報の解析により、当該データが図１３のＳ１３０５で送信されたＤＭＡ格納ＩＤか、Ｓ１３０４で送信されたデータかを判断する。
【００８１】
そして、当該データがＤＭＡ格納ＩＤでないと判断した場合（Ｓ１４０４でＮｏ）、入力データ制御部７０１は、Ｓ１４１１へ処理を進める。
１４１１では、出力制御部７０５は、上記受信したデータからＩＤ情報を削除して、該データ（即ち、コマンドデータ）をＦＩＦＯ７０７へ送信する（Ｓ１４１３）。そして、処理を終了する。
【００８２】
一方、当該データがＤＭＡ格納ＩＤであると判断した場合（Ｓ１４０４でＹｅｓ）、入力データ制御部７０１は、Ｓ１４０５へ処理を進める。
Ｓ１４０５では、出力制御部７０５は、ＤＭＡ制御部７０３へ読み出し要求を行う。この要求により、ＤＭＡ制御部７０３は送信バッファ内のデータ（又はシステムメモリ２０３に転送した後にシステムメモリ２０３から読み出したデータ）を、出力制御部７０５に送信する。
【００８３】
次に、出力制御部７０５は、ＤＭＡ制御部７０３からデータを受信するまで待ち（Ｓ１４０６）、ＤＭＡ制御部７０３からデータを受信したと判断した場合（Ｓ１４０６でＹｅｓ）、該受信したデータ内のＩＤ情報５０１を解析する（Ｓ１４０７）。
【００８４】
次に、出力制御部７０５は、上記Ｓ１４０７のＩＤ情報の解析により、上記受信したデータがコマンドデータ５０３を含むか否かを判断する（Ｓ１４０８）。この際、出力制御部７０５は、ＩＤ情報５０１が、コマンドがデータを生成したＳｕｂ-ＣＰＵにより作成されたものであることを示す場合、データがコマンドデータ５０３を含むと判断する。一方、ＩＤ情報５０１が、コマンドがシステムメモリ２０３上に格納されていることを示す場合、出力制御部７０５は、データがコマンドデータ５０３を含まないと判断する。
【００８５】
そして、上記受信したデータがコマンドデータ５０３を含むと判断した場合（Ｓ１４０８でＹｅｓ）、出力制御部７０５は、上記受信したデータからＩＤ情報５０１を削除し（Ｓ１４１１）、ＦＩＦＯ７０７へ上記コマンドデータ５０３を送信する（Ｓ１４１２）。そして、処理を終了する。
【００８６】
一方、上記受信したデータがコマンドデータ５０３を含まない（つまりアドレスデータ５０２を含む）と判断した場合（Ｓ１４０８でＮｏ）、出力制御部７０５は、ＤＭＡ制御部７０３へ上記アドレスデータ５０２を設定し、読み出し要求を行う（Ｓ１４０９）。この要求により、ＤＭＡ制御部７０３は、システムメモリ２０３の上記設定されたアドレスに格納されているデータを出力制御部７０５に送信する。
【００８７】
ＤＭＡ制御部７０３は、ＤＭＡ制御部７０３からのデータを受信するまで待ち（Ｓ１４１０）、ＤＭＡ制御部７０３からデータを受信したと判定した場合（Ｓ１４１０でＹｅｓ）、該受信したデータをＦＩＦＯ７０７へ送信する（Ｓ１４１２）。そして、処理を終了する。
【００８８】
なお、ＤＭＡ制御部７０３の動作は実施例１で示したＤＭＡ制御部７０３と同じ動作を行う。
以上示したように、実施例２の画像処理装置では、ＦＩＦＯ７０７に空きがある場合には、上流のプロセッサから出力されたコマンドをシステムメモリを介することなくＦＩＦＯに送信する構成を有する。このため、マルチプロセッサ構成におけるプロセッサ間通信のパフォーマンスの劣化をさらに抑えることができる。
【００８９】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施例を組み合わせた構成も全て本発明に含まれるものである。
【００９０】
（他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００９１】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。
本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施例の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施例及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【００９２】
１１０    ＭＦＰ
１１１    コントローラ
２０１    ＣＰＵ
２０３    ＲＡＭ（システムメモリ）
２１１    画像生成部
３００、３０１、３０２、３０３    Ｓｕｂ-ＣＰＵ（プロセッサ）
３０４、３０５、３０６  ＤＭＡ付ＦＩＦＯ
【図１】
0005555116.tif 000002
【図２】
0005555116.tif 000003
【図３】
0005555116.tif 000004
【図４】
0005555116.tif 000005
【図５】
0005555116.tif 000006
【図６】
0005555116.tif 000007
【図７】
0005555116.tif 000008
【図８】
0005555116.tif 000009
【図９】
0005555116.tif 000010
【図１０】
0005555116.tif 000011
【図１１】
0005555116.tif 000012
【図１２】
0005555116.tif 000013
【図１３】
0005555116.tif 000014
【図１４】
0005555116.tif 000015