(57)【要約】【課題】パーシャルリコンフィグが可能な再構成可能デバイスによりデータ処理を実行するときに、メモリなどのハードウェア資源を増やすことなく、ソフトウェア制御の増加によるパフォーマンスの低下を抑える。【解決手段】コピー操作などに基づいてスキャナ画像処理が始まると、ＣＰＵ８１は、リコンフィグ領域９２が動作中か否かを確認することなく、スキャナ画像処理に必要なレジスタ設定値、リコンフィグ予約情報を、レジスタ予約設定領域８７１、リコンフィグ予約設定領域８７２に設定し、レジスタ予約フラグ、リコンフィグ予約フラグを立てる。リコンフィグ予約フラグが立つと、リコンフィグ制御部９１は、リコンフィグ領域９２が使用中か否かを判定し、使用中でないとき、リコンフィグを実行し、レジスタ予約設定領域８７１に記憶されているレジスタ設定値をリコンフィグにより構築したレジスタに設定する。【選択図】図３
2014165803.tif 000002
【特許請求の範囲】
【請求項１】
パーシャルリコンフィグが可能な再構成可能デバイスであって、
データ処理が必要なジョブに応じて、該データ処理を実行するデータ処理回路のリコンフィグ予約情報を所定の予約設定領域に設定する、ソフトウェアで構成されたリコンフィグ予約手段と、
前記データ処理回路に設定するレジスタ設定値を前記予約設定領域に設定する、ソフトウェアで構成されたレジスタ予約手段と、
前記リコンフィグ予約手段により設定されたリコンフィグ予約情報に基づいて、前記データ処理回路及び設定情報記憶エリアをリコンフィグする、ハードウェアで構成されたリコンフィグ手段と、
前記予約設定領域に設定されたレジスタ設定値を該設定情報記憶エリアに設定する、ハードウェアで構成されたレジスタ設定手段と、
を有する再構成可能デバイス。
【請求項２】
請求項１に記載された再構成可能デバイスにおいて、
前記予約設定領域の空きの有無を判定する空き判定手段を備え、前記リコンフィグ予約手段は、該空き判定手段により空きがあると判定されたとき、前記リコンフィグ予約情報を設定する再構成可能デバイス。
【請求項３】
請求項１に記載された再構成可能デバイスにおいて、
前記リコンフィグ予約手段は、複数個のリコンフィグ予約情報の連続的な設定が可能である再構成可能デバイス。
【請求項４】
請求項２に記載された再構成可能デバイスにおいて、
前記空き判定手段は、空きが無い状態で所定の一つのリコンフィグ予約のリコンフィグが完了したとき、空きがあると判定する再構成可能デバイス。
【請求項５】
請求項１に記載された再構成可能デバイスにおいて、
前記リコンフィグ予約手段は、同じリコンフィグを複数回繰り返す処理を予約する場合は、その回数を設定する再構成可能デバイス。
【請求項６】
請求項１に記載された再構成可能デバイスにおいて、
リコンフィグを含むジョブが完了したとき、リコンフィグ予約がない場合、前記リコンフィグ手段は、デフォルト設定のリコンフィグを行う再構成可能デバイス。
【請求項７】
請求項１に記載された再構成可能デバイスにおいて、
前記レジスタ予約手段で設定された情報を保存する手段を有し、リコンフィグを含むジョブが完了したとき、リコンフィグ予約がない場合、前記リコンフィグ手段は、前記保存された情報の履歴に基づいてリコンフィグを行う再構成可能デバイス。
【請求項８】
請求項１に記載された再構成可能デバイスにおいて、
前記予約設定領域は、リコンフィグされない領域に設けられている再構成可能デバイス。
【請求項９】
請求項１〜８のいずれかに記載された再構成可能デバイスを備えた画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＦＰＧＡ（Field Programmable Gate Array）やＤＲＰ（Dynamic Reconfigurable Processor）などの再構成可能デバイス、及びそれを備えた画像形成装置に関する。
【背景技術】
【０００２】
ＭＦＰ（Multi Function Peripheral）のような画像形成装置においては、複数の複雑なアルゴリズムからなる画像処理を実行する。そこで、所望の実行速度を得るために、画像処理部は、通常、ＣＰＵよりも高速に動作可能なＡＳＩＣ（Application Specific Integrated Circuit）等の論理回路により実現されている。
【０００３】
図８は、従来の画像形成装置において画像処理部を構成するＡＳＩＣの一例を示すブロック図である。このＡＳＩＣ１３０は、それぞれが内部バスに接続されたＣＰＵ１３１、データ入出力部１３２ａ，１３２ｂ，１３２ｃ、モータ制御部１３３、センサ解析部１３４、ＤＡコントローラ１３５、スキャナ入力部１３６、スキャナ画像処理部１３７、プリンタ画像処理部１３８、及び画像データ出力部１３９を備えている。ここで、データ入出力部１３２ａ，１３２ｂ，１３２ｃは、それぞれＵＳＢ、Ethernet（登録商標）、カードに対してデータを入出力する。また、本来はこの他にＲＯＭ／ＲＡＭ制御用のコントローラなどが存在するが、省略した。
【０００４】
この図において、カードからのプリンタ出力の場合、データ入出力部１３２ｃにより画像データを取得し、プリンタ画像処理部１３８によりプロッタエンジン（図示せず）へ出力可能な形式に変換し、画像データ出力部１３９によりプロッタエンジンへ画像データを出力する。
【０００５】
また、画像データ出力部１３９からの出力に並行して、センサ解析部１３４により機器情報を入手してフィードバックしながら、モータ制御部１３３によりプロッタエンジンのモータを動作させて用紙搬送やキャリッジの移動などを行う。さらに、ＤＡコントローラ１３５によりインクジェット記録ヘッドへ出力するアナログデータを出力する。ＣＰＵ１３１はこれらを統括して制御する。このフローでは、スキャナ入力部１３６、スキャナ画像処理部１３７、及びデータ入出力部１３２ａ、１３２ｂは使用しない。
【０００６】
同様に、スキャナ（図示せず）により読み取ったスキャナデータをＵＳＢ経由でＰＣ（パーソナルコンピュータ）へ送信する場合、スキャナ入力部１３６によりスキャナデータを取得し、スキャナ画像処理部１３７によりスキャナの特性に依存しない画像フォーマット・画質に変換し、データ入出力部１３２ａによりＰＣへ送信する。このとき、センサ解析部１３４及びモータ制御部１３３を使用してスキャナを動作させる。ＣＰＵ１３１はこれらを統括して制御する。このフローでは、プリンタ画像処理部１３８、画像データ出力部１３９、ＤＡコントローラ１３５、及びデータ入出力部１３２ｂ、１３２ｃは使用しない。
【０００７】
このように、ユースケースにより使用するモジュールが異なるが、ＡＳＩＣで構成されたモジュールの場合、その機能を自由に変更することができないため、未使用のモジュール用の領域を他の機能に割り当てることはできない。
【０００８】
この問題に対応可能なモジュールとして、ＦＰＧＡやＤＲＰなどの再構成可能デバイスがある。再構成可能デバイスでは、回路を一旦書き込んだ後でも、別の回路を構成するための回路データ（ハードウェア構成情報）を外部から与えることにより、回路を再構成（リコンフィグレーション）することができる。インターネット等の発達により、再構成可能デバイスの回路を再構成するための回路データを、ネットワーク上に接続されたサーバ装置等からダウンロードすることもできるため、製品出荷後であっても、最新の回路データを画像処理装置に供給できる。また、ＦＰＧＡの中には、動的に、即ちＦＰＧＡの動作中に、回路の一部を再構成（パーシャルリコンフィグレーション）可能なものもある。
【０００９】
このようなパーシャルリコンフィグレーション（以下、リコンフィグレーションをリコンフィグと言う）可能な再構成デバイスを用いる画像処理は例えば以下のように行われる。まず、ＣＰＵはリコンフィグ領域が使用中でないことを確認し、所要の画像処理に必要な画像処理回路のリコンフィグの起動命令をＦＰＧＡのリコンフィグ用ブロックに送出する。この起動命令に応じて、リコンフィグ用ブロックは、所要の画像処理回路及びその設定情報記憶エリアとしてのレジスタを内部に構築する。次いで、ＣＰＵはレジスタに画像処理パラメータなどのレジスタ設定値を書き込む。次に、ＣＰＵはリコンフィグ用ブロックに対して画像処理の実行を指示する。
【００１０】
このように、パーシャルリコンフィグ可能な再構成デバイスを用いる画像処理では、画像処理回路をリコンフィグした後、レジスタ設定を行う必要がある。このため、スキャン毎に画像処理を行い、メモリに画像データを記憶する低資源システムでは、パーシャルリコンフィグが１ページに数十回に上る可能性があり、ＣＰＵのソフトウェア制御によるリコンフィグの起動とレジスタ設定にかかる時間が画像形成装置のパフォーマンスに大きな影響を与える。
【００１１】
このパフォーマンス低下の問題に対処した装置として、レジスタ設定済みの回路データを複数組備え、リコンフィグと同時にレジスタ設定が完了するように構成した情報処理装置がある（特許文献１）。
【００１２】
しかしながら、レジスタ設定済みの回路データを複数備える構成では、画像処理回路の数だけ回路データが必要であり、この保存領域を確保するためのメモリ容量が増大するという問題がある。
【発明の概要】
【発明が解決しようとする課題】
【００１３】
本発明は、このような問題を解決するためになされたものであり、その目的は、パーシャルリコンフィグが可能な再構成可能デバイスによりデータ処理を実行するときに、メモリなどのハードウェア資源を増やすことなく、ソフトウェア制御の増加によるパフォーマンスの低下を抑えることである。
【課題を解決するための手段】
【００１４】
本発明は、パーシャルリコンフィグが可能な再構成可能デバイスであって、データ処理が必要なジョブに応じて、該データ処理を実行するデータ処理回路のリコンフィグ予約情報を所定の予約設定領域に設定する、ソフトウェアで構成されたリコンフィグ予約手段と、前記データ処理回路に設定するレジスタ設定値を前記予約設定領域に設定する、ソフトウェアで構成されたレジスタ予約手段と、前記リコンフィグ予約手段により設定されたリコンフィグ予約情報に基づいて、前記データ処理回路及び設定情報記憶エリアをリコンフィグする、ハードウェアで構成されたリコンフィグ手段と、前記予約設定領域に設定されたレジスタ設定値を該設定情報記憶エリアに設定する、ハードウェアで構成されたレジスタ設定手段と、を有する再構成可能デバイスである。
【発明の効果】
【００１５】
本発明によれば、パーシャルリコンフィグが可能な再構成可能デバイスによりデータ処理を実行するときに、メモリなどのハードウェア資源を増やすことなく、ソフトウェア制御の増加によるパフォーマンスの低下を抑えることができる。
【図面の簡単な説明】
【００１６】
【図１】本発明が適用される画像形成装置のハードウェア構成を示すブロック図である。
【図２】図１におけるＦＰＧＡの内部構成を示すブロック図である。
【図３】本発明の実施形態に係るＦＰＧＡの内部構成を説明するための図である。第２のリコンフィグ用ブロックの一般的な内部構成を示すブロック図である。
【図４】図３に示すＦＰＧＡによるデータ処理としてのスキャナ画像処理の基本フローを説明するための図である。
【図５】図４に示す基本フローにおけるリコンフィグ予約のフローの一例を説明するための図である。
【図６】図３における予約設定領域に設定される情報の一例を示す図である。
【図７】ジョブが完了したときの図３に示すＦＰＧＡの動作の一例を説明するための図である。
【図８】従来の画像形成装置において画像処理部を構成するＡＳＩＣの一例を示すブロック図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施形態について図面を参照して説明する。
〈画像形成装置のハードウェア構成〉
図１は、本発明が適用される画像形成装置のハードウェア構成を示すブロック図である。
【００１８】
この画像形成装置５０は、コントローラ部６０と、エンジン部７０からなる。コントローラ部６０は、ＣＰＵ６１、ＲＯＭ６２、ＲＡＭ６３、ＦＰＧＡ６４、ＨＤＤ（ハードディスク装置）６５、操作部６６、及びエンジンＩ／Ｆ（インタフェース）６７と、これら接続するバス６８とを備えている。また、エンジン部７０は、スキャナエンジン７１、プロッタエンジン７２及びコントローラＩ／Ｆ７３を備えている。
【００１９】
ＣＰＵ６１は、この画像形成装置５０の全体の制御を司るプロセッサである。ＲＯＭ６２は、不揮発性の記憶手段であり、各種データや各種プログラムを記憶する。ＲＡＭ６３は、書き換え可能な記憶手段であって、画像データやその圧縮データを一時的に記憶したり、ＣＰＵ６１が各種プログラムを実行する際のワークメモリとして機能し、実行過程で得られるデータ等を一時的に記憶したりする。ＨＤＤ６５は、磁気的又は光学的に記録可能な記録媒体を有し、画像データやその圧縮データ、各種プログラムや各種設定情報、フォントデータ等を記憶する。ＣＰＵ６１は、ＲＯＭ６２やＨＤＤ６５に予め記憶された各種プログラム（ソフトウェア）を実行することにより各種機能（ソフトウェアで構成された各手段）を実現し、画像形成装置５０の各部の制御を統括的に行う。
【００２０】
ＦＰＧＡ６４は、再構成可能なロジックデバイスであり、ＣＰＵ６１が行うには処理能力が不足するような画像処理等の演算処理や、外部機器との間の入出力処理を行う。ＦＰＧＡ６４の内部構成及び動作の詳細については後述する。
【００２１】
操作部６６は、操作ボタンや操作キーから構成され、ユーザからの操作入力を受け付ける。エンジンＩ／Ｆ６７は、エンジン部７０とのインタフェースであり、コントローラＩ／Ｆ７３を介して、スキャナエンジン７１で読み込まれた画像データや、プロッタエンジン７２で印刷する画像データ等のデータの授受を行う。
【００２２】
スキャナエンジン７１は、読取ガラスやＡＤＦ（Auto Document Feeder）などの読取台にセットされた原稿の画像を読み取り、その画像を表す画像データに対して各種読取画像処理を施す。各種読取画像処理とは、例えば、シェーディング処理や、ＲＧＢ処理（色変換処理、フィルタ処理、γ（ガンマ）変換処理、変倍処理等）である。そして、スキャナエンジン７１は、処理後の画像データをＲＧＢフォーマットに変換して出力する。
【００２３】
プロッタエンジン７２は、インクジェット方式の画像形成部を備え、画像形成処理として、ＲＧＢフォーマットの画像データをＣＭＹＫフォーマットに変換し、印刷用紙等に印刷を行う。コントローラＩ／Ｆ７３は、コントローラ部６０とのインタフェースであり、上述したようにエンジンＩ／Ｆ６７を介してコントローラ部６０とデータの授受を行う。
【００２４】
〈ＦＰＧＡの内部構成〉
図２は、図１におけるＦＰＧＡの内部構成を示すブロック図である。ＦＰＧＡ６４は、それぞれが内部バスに接続されたＣＰＵ８１、第１のリコンフィグ用ブロック８２、第２のリコンフィグ用ブロック８３、モータ制御部８４、センサ解析部８５、ＤＡコントローラ８６、及びメモリ８７を備えている。ここで、モータ制御部８４、センサ解析部８５、ＤＡコントローラ８６は、それぞれ図８における同名の部分と同じ構成を有する。メモリ８７は、ＦＰＧＡ６４内のリコンフィグされない領域に設けられており、後述する予約設定領域として使用される。
【００２５】
ＦＰＧＡとはハードウェア構成をプログラミング可能なＬＳＩである。ＦＰＧＡは一般に電源投入時に、内部又は外部のメモリに格納された回路データを取り込み、その回路データに従い内部の回路を構築する。前述したように、ＦＰＧＡの中には、電源投入時以外にも、特定の領域のみの回路データを取り込み、再構成（リコンフィグ）する機能を持つものがある。この機能をパーシャルリコンフィグ機能と呼ぶ。ＦＰＧＡ６４では、パーシャルリコンフィグ機能を用いることで、必要に応じて回路構成を切り替えている。つまり、ＦＰＧＡ６４は、パーシャルリコンフィグ可能な再構成可能デバイスである。
【００２６】
即ち、第１のリコンフィグ用ブロック８２は、回路構成を変えることで、画像データ処理回路として、それぞれＵＳＢ、Ethernet（登録商標）、カードに対する画像データの入出力を行うデータ入出力部８２ａ、８２ｂ、８２ｃとなる。同様に、第２のリコンフィグ用ブロック８３には、画像データ処理回路として、スキャナ入力部８３ａ、スキャナ画像処理部８３ｂ、プリンタ画像処理部８３ｃ、及び画像データ出力部８３ｄの回路が構築される。
【００２７】
従って、カードからのプリンタ動作であれば、第１のリコンフィグ用ブロック８２にデータ入出力部８２ｃを構築し、第２のリコンフィグ用ブロック８３にプリンタ画像処理部８３ｃ及び画像データ出力部８３ｄを構築すればよい。また、スキャナエンジン７１からの画像データをＵＳＢ経由でＰＣへ送信する場合は、第１のリコンフィグ用ブロック８２にデータ入出力部８２ａを構築し、第２のリコンフィグ用ブロック８３にスキャナ入力部８３ａ及びスキャナ画像処理部８３ｂを構築すればよい。同様にして、他のユースケースに対しても、必要な回路のみを構築することで、回路規模を縮小することができる。
【００２８】
〈本発明の実施形態に係るＦＰＧＡの内部構成〉
図３は、本発明の実施形態に係るＦＰＧＡの内部構成を説明するための図である。この内部構成は、主として図２における第２のリコンフィグ用ブロック８３及びメモリ８７内の予約設定領域の内部構成を示しているが、第１のリコンフィグ用ブロック８２の内部構成も第２のリコンフィグ用ブロック８３の内部構成と同じである。
【００２９】
図示のように、第２のリコンフィグ用ブロック８３は、リコンフィグ制御部９１と、リコンフィグ領域９２と、レジスタ９３とを備えている。予約設定領域８７０は、メモリ８７内に設けられた設定情報記憶エリアであり、レジスタ予約設定領域８７１、リコンフィグ予約設定領域８７２、及び予約内容保存領域８７３からなる。
【００３０】
リコンフィグ制御部９１は、リコンフィグ予約設定領域８７２に設定（格納）されたリコンフィグ予約情報（リコンフィグを予約したことを表す情報）を基にリコンフィグ領域９２に対するリコンフィグを実行する。このリコンフィグにより、リコンフィグ領域９２には、画像処理回路、及び設定情報記憶エリアとしてのレジスタが構築される。リコンフィグ制御部９１は、レジスタ予約設定領域８７１に保持されているレジスタ設定値をリコンフィグ領域９２に構築したレジスタに設定する。レジスタ９３には、画像処理の起動命令、リコンフィグ領域使用フラグなどがＣＰＵ８１により設定される。
【００３１】
〈スキャナ画像処理の基本フロー〉
図４は、図３に示すＦＰＧＡによるデータ処理としてのスキャナ画像処理の基本フローを説明するための図である。このスキャナ画像処理は、コピー操作など、ユーザからの命令に基づいて発生するスキャナ画像処理が必要なジョブ（コピージョブなど）に応じて実行される。
【００３２】
スキャナ画像処理が始まると、ＣＰＵ８１は、レジスタ９３に画像処理の起動命令を設定した後、レジスタ予約及びリコンフィグ予約を行う（ステップＳ１）。即ち、スキャナ画像処理に必要な画像処理回路を構成するための設定データをレジスタ予約設定領域８７１に設定し、レジスタ予約フラグを立て、次いでリコンフィグ予約設定領域８７２にリコンフィグ予約情報を設定し、リコンフィグ予約フラグを立てる。つまり、ＣＰＵ８１は本発明に係る「レジスタ予約手段」及び「リコンフィグ予約手段」に対応する。ここで、設定データとしては、使用する画像処理モジュールを表すデータ、画像処理回路のレジスタに設定するレジスタ設定値などがある。ステップＳ１は、リコンフィグ領域９２が使用中（動作中）か否かを確認することなく実行される。
【００３３】
リコンフィグ予約フラグが立つと、リコンフィグ制御部９１は、自身が内部又はレジスタ９３に立てたリコンフィグ領域使用フラグを見て、使用中でないと判定した場合、直ぐにステップＳ２を実行する。また、リコンフィグ領域が使用中であると判定した場合、リコンフィグ領域使用フラグが落ちるまで待ち、落ちたことを確認した後、ステップＳ２を実行する。
【００３４】
ステップＳ２では、リコンフィグ領域９２のリコンフィグを開始し、リコンフィグ（スキャナ画像処理回路及びレジスタの構築）が完了すると、レジスタ予約設定領域８７１に設定されたレジスタ設定値をリコンフィグ領域９２に構築されたレジスタに設定する。つまり、リコンフィグ制御部９１が本発明に係る「リコンフィグ手段」、及び「レジスタ設定手段」に対応する。
【００３５】
リコンフィグ及びレジスタ設定（ステップＳ２）が完了すると、リコンフィグ制御部９１は、リコンフィグ領域９２に構築されたスキャナ画像処理回路を起動する（ステップＳ３）。
【００３６】
その後、スキャナ画像処理回路によるスキャナ画像処理が完了すると、リコンフィグ制御部９１は、スキャナ画像処理が完了したことをＣＰＵ８１に通知する。ＣＰＵ８１がスキャナ画像処理の完了の通知を受け取ると（ステップＳ４：YES）、スキャナ画像処理が完了する。
【００３７】
このように、ステップＳ２、ステップＳ３、及びスキャナ画像処理の完了の通知をハードウェアで構成されたリコンフィグ制御部９１が自動で実行するので、ソフトウェア制御は必要ない。また、リコンフィグ設定及びレジスタ設定を予約できることにより、ソフトウェア制御の負荷の削減はもとより、システム性能を落とすことなく、回路規模削減（低コストコントローラを実現）の効果が得られる。
【００３８】
〈リコンフィグ予約のフロー〉
図５は、図４に示す基本フローにおけるリコンフィグ予約のフローの一例を説明するための図である。ここでは、複数個のリコンフィグ予約を連続的に行うことを可能にした場合のフローを示している。
【００３９】
リコンフィグ予約は、搭載するＦＰＧＡの回路規模により、１ページの処理で数回〜数十回も行う必要がある。即ち、例えば低コストのＦＰＧＡを採用する場合は、リコンフィグブロックを多数に分割するので、リコンフィグの回数が増える傾向にある。必然的にリコンフィグ予約数も多くなるので、予約設定領域８７０（リコンフィグ予約設定領域８７２、及び対応関係を持つレジスタ予約設定領域８７１）が不足する。そこで、予約数を増加させず、且つソフトウェア制御を増加させないで複数個のリコンフィグ予約を行うことを目的として本フローを適用する。
【００４０】
ＣＰＵ８１は、リコンフィグ予約設定領域８７２に空きがあるか否かを判定し（ステップＳ１１）、空きがあればリコンフィグ予約を行う（ステップＳ１１：YES→ステップＳ１２）。空きがない場合、空きが出るまで待つ（ステップＳ１１：NO→ステップＳ１１）。つまり、ＣＰＵ８１は本発明に係る空き判定手段に対応する。
【００４１】
空きが出たことをＣＰＵ８１が知る方法には、「タイマーによるＣＰＵ８１からリコンフィグ制御部９１へのソフトウェアポーリング」、「リコンフィグ制御部９１からＣＰＵ８１への割込みによる通知」がある。ＣＰＵ８１の性能に対して、割込みによる通知の方が効果は高い。
【００４２】
リコンフィグ制御部９１は、「(i）予約済みの全リコンフィグが完了した時、即ち全てのリコンフィグ予約設定領域８７２が空いた時」、「(ii)１個分のリコンフィグ予約設定領域８７２が空いた時」、「（iii）ＣＰＵ８１が実行するプログラムが指定したリコンフィグ予約が完了した時」、リコンフィグ予約設定領域８７２に空きが出たことを検知する。
【００４３】
１つの画像処理を複数のリコンフィグブロックに分ける場合、予約するタイミングによっては、後段の画処理回路のリコンフィグが完了していないために待ち、システムパフォーマンスに影響が出てしまうことがある。この場合、（iii）であれば、画像処理がスムーズに行えるように指定できるので、システムパフォーマンスへの影響は出ないというメリットがある。
【００４４】
即ち、例えばＡ→Ｂ→Ｃという順で画像処理を行うとき、Ａ→Ｂ間、若しくはＢ→Ｃ間が非常に短時間で終わる場合が多い。この場合、Ａの予約で空き領域がなくなると、(i)、(ii)ではＡ→Ｂ間に大きな遅延時間が発生する。これにより、タイミングによって１ページの途中で処理が止まる可能性が大きい。即ちミスプリント状態になる。これに対し、（iii）であれば、Ａ、Ｂ、Ｃ全ての予約設定領域が確保できる状態になってからＡを予約することができるため、途中で処理が止まることはない。
【００４５】
リコンフィグ予約（ステップＳ１２）の後、リコンフィグ制御部９１は予約内容（予約情報）を予約内容保存領域８７３に保存する（ステップＳ１３）。つまり、リコンフィグ制御部９１が、本発明に係る「予約情報を保存する手段」に対応する。ステップＳ１３を省略してもよいが、予約内容を保存すれば、複数回同じ処理を行う際に何回も同じリコンフィグ予約をする必要がなくなるというメリットがある。
【００４６】
リコンフィグ予約が最終であれば（ステップＳ１４：YES）、この図に示すフローを完了する。最終でない場合は次のリコンフィグ予約に移行する（ステップＳ１４：NO→Ｓ１１）。ここで、リコンフィグ予約が最終であるか否かは、例えばレジスタ９３に設けられる予約有無レジスタにＣＰＵ８１が設定した値から判断する。
【００４７】
以上説明したフローでは、リコンフィグ予約とレジスタ予約を毎回行う。次に、予約設定領域をより効率的に使用する方法について説明する。同じリコンフィグを複数回繰り返す処理の場合、例えばスキャナ画像処理を４つのブロックに分け、色毎（Ｃ→Ｍ→Ｙ→Ｋ）に４つのブロックのスキャナ画像処理を繰り返す場合、４つのブロックａ、ｂ、ｃ、ｄを１セットにし、これを４回分リコンフィグ予約する。このように、リコンフィグ予約時に回数指定を行うことでリコンフィグ予約の設定自体を簡素化することができる。
【００４８】
以上説明したスキャナ画像処理の基本フロー（図４）、及びリコンフィグ予約のフロー（図５）について、図３に示すブロック図を用いて補足する。
【００４９】
ユーザからの命令、例えばスキャン処理が発行されると、ＣＰＵ８１は、スキャン処理に必要な設定を行う。必要な設定とは、使用する画像処理モジュールやレジスタ設定値などの設定である。この設定に使用する情報はＦＰＧＡ６４の外部のＲＯＭ（図１におけるＲＯＭ６２）などに記憶されており、この情報をＣＰＵ８１が読み出し、レジスタ予約設定領域８７１に設定する。この設定が完了すると、レジスタ予約設定領域８７１にレジスタ予約フラグを立て、リコンフィグ予約設定領域８７２にリコンフィグ予約を設定する（図４のステップＳ１：レジスタ予約、リコンフィグ予約）。
【００５０】
リコンフィグ予約が完了すると、リコンフィグ制御部９１により、ハード的に自動で予約内容保存領域８７３に予約内容を保存する。ハード的に自動で予約内容を保存することで、図５のステップＳ１３はソフト的に意識することなく実行される。リコンフィグ制御部９１は、現在の画像処理回路による処理が完了したと同時に、リコンフィグ領域使用フラグの状態を参照し、リコンフィグ→レジスタ設定の順に実施する(図４のステップＳ２：リコンフィグ、レジスタ設定)。
【００５１】
この予約設定領域８７０は、リコンフィグ予約をせずにレジスタ予約のみを行う場合、つまり同じリコンフィグを複数回繰り返す処理の場合にも使用可能である。例えば同じ画像処理を色毎（Ｃ→Ｍ→Ｙ→Ｋ）に繰り返すような場合や、リコンフィグする必要がないジョブを行う場合など、リコンフィグ予約は不要であるがレジスタ予約は必要な場合に有効である。
【００５２】
この場合、リコンフィグ予約フラグは立たないが、リコンフィグ制御部９１は、レジスタ予約フラグの状態を判断し、レジスタ設定を実施する。これにより、レジスタ設定用の回路を第２のリコンフィグ用ブロック８３に追加することなく、予約設定領域８７０を有効に活用することができる。
【００５３】
リコンフィグ領域９２におけるレジスタ設定が完了すると、リコンフィグ完了フラグ及びレジスタ設定完了フラグがリコンフィグ制御部９１からＣＰＵ８１に通知され、スキャンデータの画像処理が開始する（図４のステップＳ３：起動）。スキャン処理中のリコンフィグについては、リコンフィグされるモジュールとリコンフィグ制御部９１との間でハード的に完了フラグのやり取りを行うことでソフトウェア制御を介することなく行うことができる。全てのスキャン処理が完了すると、一般的な画像機器コントローラ同様、ジョブ完了通知がリコンフィグ制御部９１からＣＰＵ８１に発行される（図４のステップＳ４（画像処理完了）：YES）。
【００５４】
〈予約設定領域に記憶される情報〉
図６は、図３における予約設定領域８７０に記憶される情報の一例を示す図である。
【００５５】
予約設定領域８７０内のレジスタ予約設定領域８７１には、リコンフィグブロック番号（No.）、アドレス（AD）、データ(DATA)、完了フラグ(CMP)、予約内容保存フラグ(MEM)、及び繰り返し回数(REP)が記憶される。
【００５６】
この図の設定例の内容は下記(i)〜(v)のとおりである。
(i)リコンフィグブロック:No.3のアドレス:AD1にデータ:DATA1を設定する。即ち、第２のリコンフィグ用ブロック８３内のリコンフィグブロック:No.3に構築する回路内のレジスタのアドレス:AD1にレジスタ設定値:DATA1を設定する。
(ii)同様に、リコンフィグブロック:No.3のアドレス:AD2〜ADnにデータ:DATA2〜DATAnを設定する(MEM=1)。これでリコンフィグブロック:No.3の設定が完了する(CMP=1)。予約内容は保存する。リコンフィグブロック:No.2に構築した回路による画像処理を実行した後にリコンフィグブロック:No.3を１回リピートする(REP=21)。
(iii)リコンフィグブロック:No.2のアドレス:AD1にデータ:DATA1を設定する。
(iv)同様に、リコンフィグブロック:No.2のアドレス:AD2〜ADnにデータ:DATA2〜DATAnを設定する。これでリコンフィグブロック:No.2の設定が完了する(CMP=1)。予約内容は保存しない(MEM=0)。リコンフィグブロック:No.2のリピートはしない(REP=00)。
(v)保存されたリコンフィグブロック:No.3を１回行う。
【００５７】
〈ジョブが完了したときのＦＰＧＡの動作〉
図７は、ジョブが完了したときのＦＰＧＡ６４（図３）の動作の一例を説明するための図である。
【００５８】
リコンフィグ処理を含むジョブが完了したとき、リコンフィグ制御部９１はリコンフィグ予約の有無を判断する（ステップＳ２１）。リコンフィグ予約があると判断した場合は（ステップＳ２１：NO）、予約されたリコンフィグを行う（ステップＳ２４）。
【００５９】
リコンフィグ予約がないと判断した場合は（ステップＳ２１：YES）、デフォルト設定されているリコンフィグを実行し（ステップＳ２２）、リコンフィグの後、リコンフィグにより構築された画像処理回路による画像処理を起動する（ステップＳ２３）。
【００６０】
即ち、一般的にジョブが完了してからある一定の期間が経過すると、ＭＦＰの場合、省エネ状態に入る、若しくはＦＡＸ受信状態に入る等の制御が行われる。リコンフィグ処理も同様に、ジョブ完了後、一定期間を経過するとリコンフィグ処理を自動で行うものとした。実施するリコンフィグ処理は、デフォルト設定であるＦＡＸ受信状態の画像処理を推奨する。
【００６１】
このように自動でデフォルト状態に戻すことで、ソフトウェア処理は、省エネ移行など、ＡＳＩＣと同じ処理のみを実行するだけでよく、制御手順が煩雑になることを防止できる。デフォルト設定は、予約設定領域８７０に予め設定しておく。
【００６２】
また別の実施例として、図５のステップＳ１３で予約内容保存領域８７３に保存したユーザ毎の利用履歴に基づいて、ユーザ毎に利用頻度の高い処理に移行しておくことが挙げられる。この実施例によれば、リコンフィグの必要をなくし、再稼動時の最初のプリントまでの時間を短縮することができる。即ち、長時間空きが出る場合、利用頻度の高い動作に自動で移行しておけば、空き時間後の動作が速くなり、無駄がなくなる。
【００６３】
本発明に係る画像形成装置は、下記（１）〜（９）の特徴を備えている。
（１）ＣＰＵ８１がリコンフィグ予約を行うと、リコンフィグ制御部９１は、リコンフィグを行い、それが完了すると直ぐに必要な初期設定（レジスタ設定）を自動で行うので、ＣＰＵ８１はリコンフィグの起動を意識せずに、リコンフィグを含む画像処理を指示することができる。また、リコンフィグ予約後のソフトウェア制御が不要なため、ソフトウェア制御の増加によるパフォーマンスの低下を防止することができる。
（２）複数個のリコンフィグ予約を連続して行えるようにすることで、リコンフィグ時間の制限が厳しい場合でもパフォーマンスの低下を防止することができる。
（３）予約設定領域が予約で満たされているため新たな予約が不可能な場合、リコンフィグ制御部９１は、特定のリコンフィグが完了して予約設定領域に空きが生じ予約可能となった時点でＣＰＵ８１に通知することで、ＣＰＵ８１は予約を再開することができる。これにより、ソフトウェアポーリング等のＣＰＵ８１の負荷やデータ待ち時間が不要となる。
（４）繰り返しが多い画像処理等については、繰り返し回数も予約することで、予約設定領域における予約情報の増加を防止することができる。
（５）予約内容（予約情報）を保存し、その履歴を学習することで、予約設定制御そのものを不要にすることができる。これにより、マルチ動作などの場合は、ＣＰＵ８１を別の処理に宛がうことで、装置全体のパフォーマンスを向上させることができる。
（６）予約設定領域８７０をＦＰＧＡ６４内のリコンフィグしない領域に共有領域として置き、共有化することで予約設定領域を最小とすることができ、且つリコンフィグ中か否かを気にすることなくＣＰＵ８１によるソフトウェア制御ができる。
（７）リコンフィグ予約の必要がないシンプルなジョブの場合、レジスタ予約のみを共有領域（レジスタ予約設定領域８７１）に設定することで、ＦＰＧＡ６４の無駄な使用を抑えることができる。
（８）ジョブ完了後にリコンフィグ予約がない場合は、装置のデフォルト設定に自動で戻るように構成することで、ソフトウェア制御の負荷を削減することができる。
（９）ジョブ完了後にリコンフィグ予約がない場合は、予約履歴の中にある設定、即ちユーザの利用履歴に応じた設定に自動で戻るように構成することで、ソフトウェア制御の負荷の低減、及びユーザビリティの向上を実現できる。
【符号の説明】
【００６４】
５０…画像形成装置、６４…ＦＰＧＡ、８２…第１のリコンフィグ用ブロック、８３…第２のリコンフィグ用ブロック、９１…リコンフィグ制御部、９２…リコンフィグ領域、８７０…予約設定領域、８７１…レジスタ予約設定領域、８７２…リコンフィグ予約設定領域、８７３…予約内容保存領域。
【先行技術文献】
【特許文献】
【００６５】
【特許文献１】特開２００７−１７９３５８号公報
【図１】
2014165803.tif 000003
【図２】
2014165803.tif 000004
【図３】
2014165803.tif 000005
【図４】
2014165803.tif 000006
【図５】
2014165803.tif 000007
【図６】
2014165803.tif 000008
【図７】
2014165803.tif 000009
【図８】
2014165803.tif 000010