(57)【要約】【課題】パーシャルリコンフィグ可能な再構成可能デバイスにより画像データ処理を実行するときのソフトウェア制御を、ＡＳＩＣで画像データ処理を実行する場合のソフトウェア制御から極力変更せずに実現する。【解決手段】第２のリコンフィグ用ブロック８３は、ＣＰＵＩ／Ｆ９１、レジスタ９２〜９５、リコンフィグ制御部９６、テーブル設定部９７、リコンフィグ領域９８を備えている。回路規模を要するテーブルデータは外部のメインメモリなどに格納される。外部のＣＰＵより起動命令が入力されると、リコンフィグ制御部９６はリコンフィグ領域９８に回路をリコンフィグする。リコンフィグが完了すると、リコンフィグ制御部９６はテーブル設定部９７にテーブル設定を指示する。テーブル設定部９７はテーブル設定の指示を受け、外部に格納されたテーブルデータを設定する。【選択図】図６
2014154935.tif 000002
【特許請求の範囲】
【請求項１】
パーシャルリコンフィグ可能なリコンフィグ領域を有するリコンフィグ用ブロックを備えた再構成可能デバイスであって、
前記リコンフィグ用ブロックは、画像データ処理要求の入力を検知する入力検知手段と、該入力検知手段による検知に基づいてリコンフィグを実行し、画像データ処理回路及び設定情報記憶エリアを構築するリコンフィグ手段と、前記設定情報記憶エリアに、外部の記憶部に保持されている設定情報を書き込む設定情報書込み手段と、リコンフィグ領域に設定された画像データ処理回路を起動する起動手段と、を有する再構成可能デバイス。
【請求項２】
請求項１に記載された再構成可能デバイスにおいて、
前記リコンフィグ手段は、リコンフィグ領域のリコンフィグの要否を判断し、必要と判断した場合のみリコンフィグを実行する、再構成可能デバイス。
【請求項３】
請求項１に記載された再構成可能デバイスにおいて、
前記入力検知手段は、画像データ処理の起動情報がＣＰＵの制御により設定されるレジスタである、再構成可能デバイス。
【請求項４】
請求項１に記載された再構成可能デバイスにおいて、
前記入力検知手段は、外部インタフェースからのアクセス要求の検知手段である、再構成可能デバイス。
【請求項５】
請求項３に記載された再構成可能デバイスにおいて、
前記画像データ処理に必要な設定情報のうち、外部に保持されている設定情報以外のものが前記ＣＰＵの制御により設定されるレジスタを有する、再構成可能デバイス。
【請求項６】
請求項１に記載された再構成可能デバイスにおいて、
前記外部の記憶部は、他のリコンフィグ用ブロックの使用していない領域である、再構成可能デバイス。
【請求項７】
請求項１に記載された再構成可能デバイスにおいて、
前記外部の記憶部は、メインメモリ又はフラッシュメモリである、再構成可能デバイス。
【請求項８】
請求項１に記載された再構成可能デバイスにおいて、
前記リコンフィグ手段は、リコンフィグ領域が動作中か否かを判断し、動作中であった場合は、データ修理要求をリコンフィグ用ブロック内に記憶しておき、前記動作が終了した後にリコンフィグを実行する、再構成可能デバイス。
【請求項９】
請求項１〜８のいずれかに記載された再構成可能デバイスを備えた画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＦＰＧＡ（Field Programmable Gate Array）やＤＲＰ（Dynamic Reconfigurable Processor）などの再構成可能デバイス、及びそれを備えた画像形成装置に関し、さらに詳しくは、再構成を行うときのソフトウェア制御を簡単にした再構成可能デバイス、及びそれを備えた画像形成装置に関する。
【背景技術】
【０００２】
ＭＦＰ（Multi Function Peripheral）のような画像形成装置においては、複数の複雑なアルゴリズムからなる画像処理を実行する。そこで、所望の実行速度を得るために、画像処理部は、通常、ＣＰＵ（Central Processor Unit）よりも高速に動作可能なＡＳＩＣ（Application Specific Integrated Circuit）等の論理回路により実現されている。
【０００３】
図１１は、従来の画像形成装置において画像処理部を構成するＡＳＩＣの一例を示すブロック図である。このＡＳＩＣ１３０は、それぞれが内部バスに接続されたＣＰＵ１３１、データ入出力部１３２ａ〜ｃ、モータ制御部１３３、センサ解析部１３４、ＤＡコントローラ１３５、スキャナ入力部１３６、スキャナ画像処理部１３７、プリンタ画像処理部１３８、及び画像データ出力部１３９を備えている。ここで、データ入出力部１３２ａ、ｂ、ｃは、それぞれＵＳＢ、Ethernet（登録商標）、カードに対してデータを入出力する。また、本来はこの他にＲＯＭ／ＲＡＭ制御用のコントローラなどが存在するが、省略した。
【０００４】
この図において、カードからのプリンタ出力の場合、データ入出力部１３２ｃにより画像データを取得し、プリンタ画像処理部１３８によりプロッタエンジン（図示せず）へ出力可能な形式に変換し、画像データ出力部１３９によりプロッタエンジンへ画像データを出力する。
【０００５】
また、画像データ出力部１３９からの出力に並行して、センサ解析部１３４により機器情報を入手してフィードバックしながら、モータ制御部１３３によりプロッタエンジンのモータを動作させて用紙搬送やキャリッジの移動などを行う。さらに、ＤＡコントローラ１３５によりインクジェット記録ヘッドへ出力するアナログデータ（駆動波）を出力する。ＣＰＵ１３１はこれらを統括して制御する。このフローでは、スキャナ入力部１３６、スキャナ画像処理部１３７、及びデータ入出力部１３２ａ、１３２ｂは使用しない。
【０００６】
同様に、スキャナ（図示せず）により読み取ったスキャナデータをＵＳＢ経由でＰＣ（パーソナルコンピュータ）へ送信する場合、スキャナ入力部１３６によりスキャナデータを取得し、スキャナ画像処理部１３７によりスキャナの特性に依存しない画像フォーマット・画質に変換し、データ入出力部１３２ａによりＰＣへ送信する。このとき、センサ解析部１３４及びモータ制御部１３３を使用してスキャナを動作させる。ＣＰＵ１３１はこれらを統括して制御する。このフローでは、プリンタ画像処理部１３８、画像データ出力部１３９、ＤＡコントローラ１３５、及びデータ入出力部１３２ｂ、１３２ｃは使用しない。
【０００７】
図１２は、ＡＳＩＣ１３０によりスキャナ画像処理を実行するときのソフト制御フローについて説明するための図である。このソフト制御フローは、ＣＰＵ１３１がスキャナ画像処理部１３７を制御するための処理であり、例えば１ページに１回実行される。
【０００８】
図示のように、まずＣＰＵ１３１はレジスタ設定、即ち画像処理パラメータをスキャナ画像処理部１３７内のレジスタに設定する処理を行い（ステップＳ２１）、次にスキャナ画像処理部１３７を起動する（ステップＳ２２）。その後、スキャナ画像処理部１３７からの画像処理完了の通知を受信したら（ステップＳ２３：YES）、スキャナ画像処理を完了させる。
【０００９】
このように、ユースケースにより使用するモジュールが異なるが、ＡＳＩＣで構成されたモジュールの場合、その機能を自由に変更することができないため、未使用のモジュール用の領域を他の機能に割り当てることはできない。
【００１０】
この問題に対応可能なモジュールとして、ＦＰＧＡやＤＲＰなどの再構成可能デバイスがある。再構成可能デバイスでは、回路を一旦書き込んだ後でも、別の回路を構成するための回路データ（ハード構成情報）を外部から与えることにより、回路を再構成（リコンフィグレーション）することができる。インターネット等の発達により、再構成可能デバイスの回路を再構成するための回路データを、ネットワーク上に接続されたサーバ装置等からダウンロードすることもできるため、製品出荷後であっても、最新の回路データを画像処理装置に供給できる。また、ＦＰＧＡの中には、動的に、即ちＦＰＧＡの動作中に、回路の一部を再構成（パーシャルリコンフィグレーション）可能なものもある。なお、画像処理部に再構成可能デバイスを用いた画像形成装置としては、特許文献１、２に記載された画像形成装置がある。
【００１１】
しかし、今までのパーシャルリコンフィグレーション（以下、リコンフィグレーションをリコンフィグと言う）では、リコンフィグの開始命令の送出、リコンフィグの完了待ち、及びレジスタやテーブルの初期化など、ＡＳＩＣに比べてソフトの制御項目が増えるという問題がある。その理由は、リコンフィグには、「リコンフィグ期間はハードに対する外部モジュール(ＣＰＵなど)のアクセスを受け付けない。」、「リコンフィグすると、内部状態は初期状態に戻る。」という性質があるからである。
【発明の概要】
【発明が解決しようとする課題】
【００１２】
本発明は、このような問題を解決するためになされたものであり、その目的は、パーシャルリコンフィグ可能な再構成可能デバイスにより画像データ処理を実行するときのソフトウェア制御を、ＡＳＩＣで画像データ処理を実行する場合のソフトウェア制御から極力変更せずに実現することである。
【課題を解決するための手段】
【００１３】
本発明は、パーシャルリコンフィグ可能なリコンフィグ領域を有するリコンフィグ用ブロックを備えた再構成可能デバイスであって、前記リコンフィグ用ブロックは、画像データ処理要求の入力を検知する入力検知手段と、該入力検知手段による検知に基づいてリコンフィグを実行し、画像データ処理回路及び設定情報記憶エリアを構築するリコンフィグ手段と、前記設定情報記憶エリアに、外部の記憶部に保持されている設定情報を書き込む設定情報書込み手段と、リコンフィグ領域に設定された画像データ処理回路を起動する起動手段と、を有する再構成可能デバイスである。
【発明の効果】
【００１４】
本発明によれば、パーシャルリコンフィグ可能な再構成可能デバイスにより画像データ処理を実行するときのソフトウェア制御を、ＡＳＩＣで画像データ処理を実行する場合のソフトウェア制御から極力変更せずに実現することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明が適用される画像形成装置のハードウェア構成を示すブロック図である。
【図２】図１におけるＦＰＧＡの内部構成を示すブロック図である。
【図３】図２における第２のリコンフィグ用ブロックの一般的な内部構成を示すブロック図である。
【図４】図３に示す第２のリコンフィグ用ブロックを有するＦＰＧＡによりスキャナ画像処理を実行するときのソフト制御フローを示すフローチャートである。
【図５】本発明の実施形態に係るＦＰＧＡにおけるリコンフィグの基本動作について説明するための図である。
【図６】本発明の実施形態に係る第２のリコンフィグ用ブロックの内部構成を示すブロック図である。
【図７】図６に示す第２のリコンフィグ用ブロックを有するＦＰＧＡによりスキャナ画像処理を実行するときのソフト制御フローを示すフローチャートである。
【図８】本発明の実施形態に係る第１のリコンフィグ用ブロックの内部構成を示すブロック図である。
【図９】本発明の実施形態に係るＦＰＧＡにおけるメモリ構成を示す図である。
【図１０】図９における各メモリの特徴を示す図である。
【図１１】従来の画像形成装置において画像処理部を構成するＡＳＩＣの一例を示すブロック図である。
【図１２】図１１に示すＡＳＩＣによりスキャナ画像処理を実行するときのソフト制御フローについて説明するための図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施形態について図面を参照して説明する。
〈画像形成装置のハードウェア構成〉
図１は、本発明が適用される画像形成装置のハードウェア構成を示すブロック図である。
【００１７】
この画像形成装置５０は、コントローラ部６０と、エンジン部７０からなる。コントローラ部６０は、ＣＰＵ６１、ＲＯＭ６２、ＲＡＭ６３、ＦＰＧＡ６４、ＨＤＤ（ハードディスク装置）６５、操作部６６、及びエンジンＩ／Ｆ（インタフェース）６７と、これらを接続するバス６８とを備えている。また、エンジン部７０は、スキャナエンジン７１、プロッタエンジン７２及びコントローラＩ／Ｆ７３を備えている。
【００１８】
ＣＰＵ６１は、この画像形成装置５０の全体の制御を司るプロセッサである。ＲＯＭ６２は、不揮発性の記憶手段であり、各種データや各種プログラムを記憶する。ＲＡＭ６３は、書き換え可能な記憶手段であって、画像データやその圧縮データを一時的に記憶したり、ＣＰＵ６１が各種プログラムを実行する際のワークメモリとして機能し、実行過程で得られるデータ等を一時的に記憶したりする。ＨＤＤ６５は、磁気的又は光学的に記録可能な記録媒体を有し、画像データやその圧縮データ、各種プログラムや各種設定情報、フォントデータ等を記憶する。ＣＰＵ６１は、ＲＯＭ６２やＨＤＤ６５に予め記憶された各種プログラムを実行することにより各種機能を実現させ、画像処理装置５０の各部の制御を統括的に行う。
【００１９】
ＦＰＧＡ６４は、再構成可能なロジックデバイスであり、ＣＰＵ６１が行うには処理能力が不足するような画像処理等の演算処理や、外部機器との間の入出力処理を行う。ＦＰＧＡ６４の内部構成及び動作の詳細については後述する。
【００２０】
操作部６６は、操作ボタンや操作キーから構成され、ユーザからの操作入力を受け付ける。エンジンＩ／Ｆ６７は、エンジン部７０とのインタフェースであり、コントローラＩ／Ｆ７３を介して、スキャナエンジン７１で読み込まれた画像データや、プロッタエンジン７２で印刷する画像データ等のデータの授受を行う。
【００２１】
スキャナエンジン７１は、読取ガラスやＡＤＦ（Auto Document Feeder）などの読取台にセットされた原稿の画像を読み取り、その画像を表す画像データに対して各種読取画像処理を施す。各種読取画像処理とは、例えば、シェーディング処理や、ＲＧＢ処理（色変換処理、フィルタ処理、γ（ガンマ）変換処理、変倍処理等）である。そして、スキャナエンジン７１は、処理後の画像データをＲＧＢフォーマットに変換して出力する。
【００２２】
プロッタエンジン７２は、電子写真方式やインクジェット方式等の画像形成部を備え、画像形成処理として、ＲＧＢフォーマットの画像データをＣＭＹＫフォーマットに変換し、印刷用紙等に印刷を行う。コントローラＩ／Ｆ７３は、コントローラ部６０とのインタフェースであり、上述したようにエンジンＩ／Ｆ６７を介してコントローラ部６０とデータの授受を行う。
【００２３】
〈ＦＰＧＡの内部構成〉
図２は、図１におけるＦＰＧＡの内部構成を示すブロック図である。ＦＰＧＡ６４は、それぞれが内部バスに接続されたＣＰＵ８１、第１のリコンフィグ用ブロック８２、第２のリコンフィグ用ブロック８３、モータ制御部８４、センサ解析部８５、ＤＡコントローラ８６を備えている。ここで、モータ制御部８４、センサ解析部８５、ＤＡコントローラ８６は、それぞれ図１１における同名の部分と同じ構成を有する。
【００２４】
ＦＰＧＡとはハード構成をプログラミング可能なＬＳＩである。ＦＰＧＡは一般に電源投入時に、内部又は外部のメモリに格納されたハード構成情報を取り込み、そのハード構成情報に従い内部のハード構成を構築する。また、ＦＰＧＡの中には、電源投入時以外にも、特定の領域のみのハード構成情報を取り込み、再構成（リコンフィグ）する機能を持つものがある。この機能をパーシャルリコンフィグ機能と呼ぶ。ＦＰＧＡ６４では、パーシャルリコンフィグ機能を用いることで、必要に応じてハード構成を切り替えている。つまり、ＦＰＧＡ６４は、パーシャルリコンフィグ可能なリコンフィグ領域を有するリコンフィグ用ブロックを備えた再構成可能デバイスである。
【００２５】
即ち、第１のリコンフィグ用ブロック８２は、ハード構成を変えることで、画像データ処理回路として、それぞれＵＳＢ、Ethernet（登録商標）、カードに対する画像データの入出力を行うデータ入出力部８２ａ、８２ｂ、８２ｃとなる。同様に、第２のリコンフィグ用ブロック８３には、画像データ処理回路として、スキャナ入力部８３ａ、スキャナ画像処理部８３ｂ、プリンタ画像処理部８３ｃ、及び画像データ出力部８３ｄのハード構成が構築される。
【００２６】
従って、カードからのプリンタ動作であれば、第１のリコンフィグ用ブロック８２にはデータ入出力部８２ｃを構成し、第２のリコンフィグ用ブロック８３にはプリンタ画像処理部８３ｃ、及び画像データ出力部８３ｄを構成すればよい。また、スキャナエンジン７１からの画像データをＵＳＢ経由でＰＣへ送信する場合は、第１のリコンフィグ用ブロック８２にはデータ入出力部８２ａを構成し、第２のリコンフィグ用ブロック８３にはスキャナ入力部８３ａ、及びスキャナ画像処理部８３ｂを構成すればよい。同様にして、他のユースケースに対しても、必要な回路のみを構成することで、回路規模を縮小することができる。
【００２７】
〈一般的な構成のリコンフィグ用ブロックの内部構成、及びそれを有するＦＰＧＡにおけるソフト制御フロー〉
図３は、図２における第２のリコンフィグ用ブロックの一般的な内部構成を示すブロック図である。図示のように、第２のリコンフィグ用ブロック８３は、リコンフィグ制御部９６と、リコンフィグ領域９８を備えている。
【００２８】
図４は、図３に示す第２のリコンフィグ用ブロックを有するＦＰＧＡによりスキャナ画像処理を実行するときのソフト制御フローを示すフローチャートである。このフローは、ＦＰＧＡ６４内のＣＰＵ８１が実行する。
【００２９】
ＣＰＵ８１は、まず第２のリコンフィグ用ブロック８３内のリコンフィグ領域９８が使用中か否かをリコンフィグ制御部９６に対する問い合わせの回答により判断する（ステップＳ１）。そして、使用中でない場合は（ステップＳ１：NO）、そのままステップＳ２へ進む。また、使用中の場合は（ステップＳ１：YES）、使用中でなくなるまで待ち、使用中でなくなったらステップＳ２へ進む。
【００３０】
ステップＳ２では、リコンフィグ領域９８にスキャナ画像処理部８３ｂが構成されているか否かを判断する（ステップＳ２）。判断の結果、構成されていない場合は（ステップＳ２：NO）、リコンフィグ領域９８にスキャナ画像処理部８３ｂを構成するように、リコンフィグ制御部９６に指示する（ステップＳ３）。
【００３１】
その後、リコンフィグ制御部９６からのリコンフィグ完了の通知を待ち（ステップＳ４：NO→Ｓ４）、その通知を受けたら（ステップＳ４：YES）、ステップＳ５へ進む。リコンフィグ領域９８にスキャナ画像処理部８３ｂが構成されている場合は（ステップＳ２：YES）、そのままステップＳ５へ進む。
【００３２】
ステップＳ５では、レジスタ設定、即ちスキャナ画像処理部８３ｂの画像処理パラメータを、リコンフィグによりリコンフィグ領域９８に作成された設定情報記憶エリアとしてのレジスタに、設定情報(レジスタ設定値、テーブルデータ)を書き込む。
【００３３】
レジスタ設定の後、第２のリコンフィグ用ブロック８３内の図示されていない起動レジスタに起動命令を送る（ステップＳ６）。その後、リコンフィグ領域９８に作成された（もしくは第２のリコンフィグ用ブロック８３内の図示されていない）完了通知レジスタからの画像処理完了の通知を受信したら（ステップＳ７：YES）、スキャナ画像処理を完了させる。
【００３４】
この図に示すフローと、図１２に示すフローとを比較すると、この図に示すフローは、ステップＳ１〜Ｓ４が追加されているため、煩雑になっている。また、ステップＳ５の内容がステップＳ２１の内容と同様になるとは限らない。
【００３５】
例えばスキャナ画像処理の内容がテーブルの参照による色変換であり、かつ１ページの画像を２ラインずつ変換する処理の場合について説明する。この場合、ＡＳＩＣを使用する図１２のステップＳ２１では、１ライン目は入出力データの領域・色変換のテーブルなどを設定し、２ライン目以降は色変換のテーブルは既に設定したものを使用する。従って、テーブルを書き換える必要はないため、入出力データ領域などを設定するのみでよい。
【００３６】
これに対し、ＦＰＧＡを使用する図４のステップＳ５では、1ライン目の処理はステップＳ２１と同様である。しかし、２ライン目以降については、リコンフィグが発生していなければテーブルの入力は不要であるが、例えば１ライン目と２ライン目との間にリコンフィグが発生していると、テーブルが初期化されるため、再設定を行う必要がある。また、リコンフィグ毎にステップＳ１〜Ｓ４を実行することも必要になる。このように、処理単位を細かくする程、設定に要するオーバーヘッドが増加していく。つまり、一般的なリコンフィグでは、ＡＳＩＣに比べてソフトの制御項目が増えるという問題がある。
【００３７】
〈本発明の実施形態に係るリコンフィグの基本動作〉
そこで、本発明の実施形態では、ＦＰＧＡ６４内のリコンフィグ用ブロックの内部構成及び動作を工夫することで、ＡＳＩＣに比べてソフトの制御項目が増えるという問題を解決している。まず、本発明の実施形態に係るリコンフィグの基本動作について説明する。
【００３８】
図５は、本発明の実施形態に係るＦＰＧＡにおけるリコンフィグの基本動作について説明するための図である。この図において、リコンフィグ用ブロック８７は、図２における第１のリコンフィグ用ブロック８２、第２のリコンフィグ用ブロック８３に対応し、モジュール固定ブロック８８は、モータ制御部８４、センサ解析部８５、ＤＡコントローラ８６に対応する。
【００３９】
ここで、リコンフィグ用ブロック８７にモジュールＡとモジュールＢが排他的にリコンフィグされる構成であり、現在、モジュールＢが展開されているものとする。この状態からモジュールＡをリコンフィグするとき、ＦＰＧＡ６４は下記（i）〜(vi)の動作を行う。
【００４０】
（i）ソフト→ハード：ＣＰＵ８１はリコンフィグ用ブロック８７に対し、モジュールＡをリコンフィグさせるコマンドを送る。
(ii)ハード：リコンフィグ用ブロック８７は、受け付けたコマンドを内部に記憶する。
(iii)ハード：リコンフィグ用ブロック８７は、モジュールＢについて、必要な内部情報（レジスタ設定値など）を他領域(外部)に格納（退避）する。
(iv)ハード：リコンフィグ用ブロック８７は、モジュールＡのリコンフィグに必要なハード構成情報、及び内部情報を他領域から取得し、リコンフィグ及び設定を行う。
(v)ハード：リコンフィグ用ブロック８７は、モジュールＡを起動する。
(vi)ハード→ソフト：リコンフィグ用ブロック８７は、モジュールＡによる処理の完了をＣＰＵ８１に通知する。
このように、(ii)〜(v)をソフトによる行う必要のないハード構成（ソフトに対して隠蔽）しているため、リコンフィグを意識しないソフト開発が可能となる。
【００４１】
〈本発明の実施形態に係る第２のリコンフィグ用ブロックの内部構成〉
図６は、本発明の実施形態に係る第２のリコンフィグ用ブロックの内部構成を示すブロック図である。この構成は、図５に示す基本動作を図２における第２のリコンフィグ用ブロック８３で実現可能にしたものである。
【００４２】
図示のように、第２のリコンフィグ用ブロック８３は、ＣＰＵＩ／Ｆ９１、画像データ出力用レジスタ９２、プリンタ画像処理用レジスタ９３、スキャナ画像処理用レジスタ９４、スキャナ入力用レジスタ９５、リコンフィグ制御部９６、テーブル設定部９７、及びリコンフィグ領域９８を備えている。ここで、リコンフィグ制御部９６が本発明に係るリコンフィグ手段及び起動手段に対応し、テーブル設定部９７が設定情報書込み手段に対応する。
【００４３】
ＣＰＵＩ／Ｆ９１は、ＣＰＵ８１との間でデータの入出力を行う手段である。画像データ出力用レジスタ９２、プリンタ画像処理用レジスタ９３、スキャナ画像処理用レジスタ９４、スキャナ入力用レジスタ９５は、それぞれ画像データ出力部８３ｄ、プリンタ画像処理部８３ｃ、スキャナ画像処理部８３ｂ、スキャナ入力部８３ａが画像データ処理を行うときに使用するパラメータの内、比較的データ量の少ないデータ、即ち例えば画像サイズなどのようなデータを格納する。色変換テーブルデータなど、回路規模を要するデータは、第２のリコンフィグ用ブロック８３内ではなく、外部の記憶部としてのメインメモリ（図１におけるＲＡＭ６３）などに格納する。
【００４４】
また、画像データ出力用レジスタ９２、プリンタ画像処理用レジスタ９３、スキャナ画像処理用レジスタ９４、スキャナ入力用レジスタ９５は、ＣＰＵ８１が、それぞれ画像データ出力部８３ｄ、プリンタ画像処理部８３ｃ、スキャナ画像処理部８３ｂ、スキャナ入力部８３ａを用いる画像処理を起動するための起動レジスタを有する。これらのレジスタは本発明に係る入力検知手段に対応する。
【００４５】
ＣＰＵ８１は、リコンフィグ領域９８の状態に関わらず、各機能のレジスタ９２〜９５にアクセス可能である。ここでは、ＣＰＵ８１からテーブルデータへのアクセス方法として、ＣＰＵＩ／Ｆ９１やレジスタ９２〜９５を経由しているが、直接メインメモリの特定領域に書き込み、その領域を指示する形態でもかまわない。
【００４６】
リコンフィグ制御部９６は、第２のリコンフィグ用ブロック８３全体の動作を制御する手段である。テーブル設定部９７は、テーブルデータを外部から取得し、リコンフィグ領域９８に設定する手段である。リコンフィグ領域９８は、リコンフィグ制御部９６が外部から取得したリコンフィグデータによりリコンフィグされるブロックである。
【００４７】
上述の構成をとることで、ＣＰＵ８１は、リコンフィグ領域９８の状態に関わらず、全レジスタ及びテーブルにアクセスできる。従って、ハードを起動するためのレジスタにもアクセス可能であり、リコンフィグ領域９８が他の機能として使用されていなければ、いつでも起動をかけることができる。
【００４８】
ＣＰＵ８１より起動命令がレジスタ９２〜９５に書き込まれると、それを基にリコンフィグ制御部９６が動作し、リコンフィグデータを取得してリコンフィグ領域９８に、対応する機能の回路を構成する。リコンフィグデータは、一般にはＦＰＧＡ６４の外部のＲＯＭ（ここでは図１におけるＲＯＭ６２）に格納されている。
【００４９】
リコンフィグ領域９８のリコンフィグが完了すると、リコンフィグ制御部９６はテーブル設定部９７にテーブル設定の起動を指示する。テーブル設定部９７はテーブル設定の起動を受け、リコンフィグ領域９８に構成されたテーブルに対し、外部に格納されたテーブルデータを設定する。
【００５０】
テーブル設定部９７は、テーブルデータの設定が完了すると、そのことをリコンフィグ制御部９６に通知する。通知を受けたリコンフィグ制御部９６は、リコンフィグ領域９８に対して起動をかける。
【００５１】
全処理（リコンフィグされた機能を用いた画像データ処理を含む）が完了すると、リコンフィグ領域９８から、レジスタ９２〜９５を通してＣＰＵ８１に対して完了通知を発行する。
【００５２】
なお、リコンフィグ領域９８の状態が起動しようとしている機能と一致する場合は、リコンフィグは不要であるため、リコンフィグ制御部９６により、リコンフィグ領域９８の状態を検知し、リコンフィグの有無を判断する。
【００５３】
また、上述の説明では、テーブルデータの流れはメインメモリ→リコンフィグ領域９８の一方向であった。しかし、処理の途中で使用するテーブルデータが変化し、そのテーブルデータを次の処理で使用するような用途も存在する場合のように、変化したテーブルデータの保持が必要な場合がある。その場合、リコンフィグを実施する前に、リコンフィグ領域９８のテーブルに格納されたテーブルデータを、テーブル設定部９７を通して、メインメモリに退避させることで、必要な機能を実現する。
【００５４】
〈本発明の実施形態に係る第２のリコンフィグ用ブロック〉
図７は、図６に示す第２のリコンフィグ用ブロックを有するＦＰＧＡによりスキャナ画像処理を実行するときのソフト制御フローを示すフローチャートである。
【００５５】
この図において、ステップＳ１１、Ｓ１２、Ｓ１３、Ｓ１４は、それぞれ図４におけるステップＳ１、Ｓ５、Ｓ６、Ｓ７と同様である。即ち、図４におけるステップＳ２〜Ｓ４に対応するステップが不要なため、ＣＰＵ８１によるソフトウェアの制御が簡略化されている。
【００５６】
ステップＳ２〜Ｓ４に対応するステップが不要な理由は以下のとおりである。リコンフィグの要否は、リコンフィグ制御部９６がハード的に実行するため、ステップＳ２に対応するステップは不要となる。リコンフィグ自体もリコンフィグ制御部９６がハード的に自動で実行するため、ステップＳ３及びＳ４に対応するステップも不要となる。また、レジスタ設定値はレジスタ９２〜９５により保持されており、テーブルデータはテーブル設定部９７によりハード的に自動で設定されるので、リコンフィグすることによる特有の処理はステップＳ２のみとなる。また、テーブルの設定もハード化により高速化されているため、全体の処理性能も図４に示すフローに比べて向上する。
【００５７】
さらに、以下のような予約機能を加えることで、ステップＳ１１も省略でき、従来のＡＳＩＣの場合のフロー（図１２）と同等のフローで処理を実現することもできる。即ち、例えば、リコンフィグ領域９８にスキャナ入力部８３ａが構成されており、動作中であるとする。ここでＣＰＵ８１によりスキャナ画像処理の起動がかけられ、スキャナ画像処理用レジスタ９４に起動命令が書き込まれた場合、リコンフィグ制御部９６は、その起動情報をスキャナ画像処理用レジスタ９４の予約領域に格納する。スキャナ入力部８３ａの処理が完了して、リコンフィグ領域９８がフリーとなると、リコンフィグ制御部９６は、上記で予約されていたスキャナ画像処理の起動後の処理を実行する。
【００５８】
〈本発明の実施形態に係る第１のリコンフィグ用ブロックの内部構成〉
図８は、本発明の実施形態に係る第１のリコンフィグ用ブロックの内部構成を示すブロック図である。
【００５９】
図示のように、第１のリコンフィグ用ブロック８２は、ＣＰＵＩ／Ｆ１０１、それぞれＵＳＢ、Ethernet（登録商標）、カードに対するデータ入出力に使用するレジスタ値を格納するためのデータ入出力用レジスタ１０２、１０３、１０４を備えている。また、第１のリコンフィグ用ブロック８２は、リコンフィグ制御部１０５、リコンフィグ領域１０６、及び、それぞれＵＳＢ、Ethernet（登録商標）、カードからのアクセス要求を検知するアクセス要求検知部１０７、１０８、１０９を備えている。
【００６０】
外部アクセスを有する場合、特に、ＵＳＢやEthernet（登録商標）のように外部からのアクセスが不特定のタイミングで発生するインタフェースの場合、リコンフィグ領域に全ての回路を配置するとアクセス要求を取りこぼすことにつながる。一方で、ローエンドの装置ではＵＳＢプリント時にはEthernet（登録商標）経由でのプリント動作を排除するものもあり、それらの機能が必ずしも同時に実装されている必要がない場合がある。
【００６１】
そこで、本実施形態では、アクセス要求を検知する回路をリコンフィグ領域１０６外に配置して、アクセス要求があり次第、リコンフィグ領域１０６にそれぞれのハードを再構成するという構成を採用した。
【００６２】
例えば、アクセス要求検知部１０８であれば、自分宛のパケットか否かを判定し、自分以外宛のパケットを破棄するフィルタリング回路や、リコンフィグが完了するまでの間に受け取るパケットを保持するためのバッファを備えていることが望ましい。
【００６３】
また、リコンフィグ領域１０６がＵＳＢとして使用中であるなど、すぐに再構成ができない場合や、バッファの容量が足りなくてオーバーフローする場合など向けに、再送要求する回路まで含んでいてもよい。
【００６４】
また、外部からではなく、内部から外部に対してアクセス要求を出す場合に関しては、図６で示した例のように、ＣＰＵ８１からの起動信号をＣＰＵＩ／Ｆ１０１がデータ入出力用レジスタ１０２、１０３、１０４に設定することにより、起動信号をトリガとしてリコンフィグを行うことができる。
【００６５】
〈ＦＰＧＡにおけるメモリ構成〉
図９は、本発明の実施形態に係るＦＰＧＡにおけるメモリ構成を示す図であり、図１０は、図９における各メモリの特徴を示す図である。
【００６６】
一般的に、組み込みシステムではＤＲＡＭ等のメインメモリとフラッシュメモリ等の不揮発性メモリを使用する。図２では省略したが、ＦＰＧＡ６４は、メインメモリコントローラ１２１、及び不揮発性メモリコントローラ１２２を備えており、それぞれメインメモリ１２３、不揮発性メモリ１２４が接続される。また、図示を省略したが、ＦＰＧＡ６４内にＳＲＡＭが配置されている。回路構成によっては、汎用のＳＲＡＭとして使用することもできる。
【００６７】
次に図１０に示す各種メモリを図６におけるテーブルデータの退避先として使用する場合について説明する。
《ＳＲＡＭ》
例えば、第２のリコンフィグ用ブロック８３で使用したテーブルデータの退避が必要であるとする。第１のリコンフィグ用ブロック８２ではブロックサイズに対して、現在使用している機能の実現に要するメモリサイズが小さく、未使用領域がある場合には、未使用領域を汎用ＳＲＡＭとして構成し、その汎用ＳＲＡＭにテーブルデータを退避させることができる。
【００６８】
この場合の優位点は、アクセス自体が高速であることに加え、ＣＰＵなど、他の機能にアクセスを阻害されないため、より高速にテーブルを設定可能なことである。劣位点は、未使用領域以上のテーブルデータを格納することができず、第１のリコンフィグ用ブロック８２を再構成して未使用領域が減った場合には格納したテーブルデータが破壊されることである。
【００６９】
《フラッシュメモリ》
フラッシュメモリは主にプログラムを格納するメモリとして使用される。また、ＦＰＧＡの場合、コンフィグ用のデータを格納するためのメモリとしても使用される。近年では、超高集積のＮＡＮＤ型のフラッシュメモリが広く出回り、容量に余裕のあるシステムが増えているので、その空き容量にテーブルデータを退避させることができる。
【００７０】
この場合の優位点は、より多くのテーブルデータを格納できることである。また、不揮発性であるため、仮に省エネモードで周辺のＩＣの電源を落とすなどの制御を実施する場合や、場合によっては機器電源をオフにした場合においても、ＣＰＵによるテーブルの設定が不要となる場合もある。
【００７１】
劣位点は、書き換え回数に制限があることと、速度が遅いことであり、短時間にテーブルを何度も書き換える場合や、退避させるテーブルデータが頻繁に変化する場合には向かない。
【００７２】
《ＤＲＡＭ》
ＤＲＡＭはプログラム実行領域や、データを一時的に格納するためのメモリであり、テーブルデータを格納することもできる。アクセス速度・集積度に関してはＳＲＡＭとフラッシュメモリの中間的な性質といえる。
【００７３】
《複合利用》
上記のとおり、高速性能ではＳＲＡＭが優位であるため、高速性能を求められる場合には、ＦＰＧＡ内に未使用領域がある時は極力ＳＲＡＭを使用することが望ましい。ただし、回路構成によってはテーブルデータを格納できる容量が確保できなかったり、リコンフィグの際にテーブルデータが破壊されたりする場合がある。それを防ぐために、ＳＲＡＭでテーブル分の容量を確保できない場合や、リコンフィグが発生する場合にはテーブルデータをメインメモリなどに退避させる手段が考えられる。このように、柔軟に格納先を切り替えることで、最適な機能・性能を選択することができる。
【００７４】
以上詳細に説明したように、本発明の実施形態に係るＦＰＧＡによれば、下記(１)〜(１０)の効果がえられる。
（１）画像データ処理を実行するときのソフトウェアの制御をＡＳＩＣで構成した場合から極力変更なしで実現することができるので、ＦＰＧＡの回路規模を削減できる。
（２）設定情報を外部の記憶部に格納しておくので、大容量のテーブルデータを設定する場合にも、ＦＰＧＡの回路規模を抑えることができる。
（３）外部の記憶部として、メインメモリを用いた場合、書き換えの回数の制限がなく、比較的高速にアクセス可能である。
（４）外部の記憶部として、フラッシュメモリなどの不揮発性メモリを用いた場合、途中で省エネ状態に移行するなどで、仮にメインメモリの電源を落としても設定データが保持される。
（５）設定情報をＦＰＧＡの使用していない領域を用いた場合、最高速でアクセス可能であり、回路規模の増加にはつながらない。
（６）「ＦＰＧＡの使用していない領域が足りない場合は外部のメモリを使用する。」、「メインメモリの電源を落とす場合には不揮発性メモリを使用する。」のように、状況に応じて柔軟に格納先を切り替えることで、最適な機能・性能を選択することができる。
（７）起動命令があったことをリコンフィグ実行の判断材料とすることで、不要なリコンフィグを避けることができる。
（８）リコンフィグしようとする領域の回路が動作中であった場合には、起動命令を予約しておき、動作が完了した後、自動的に再構成・設定・起動を制御するので、ソフト制御的に、リコンフィグであることを意識する必要がなくなる。
（９）外部インタフェースからのアクセス要求を検知する回路をリコンフィグ領域ではなく固定領域に確保し、アクセス要求を検知次第、リコンフィグ領域に外部インタフェース回路をリコンフィグする。これにより、アクセス要求のとりこぼしを防止し、確実にリコンフィグすることができる。
（１０）アクセス要求を検知するための回路内（又は該回路に併設して）外部インタフェースに再送を要求する回路を設けることにより、リコンフィグの遅れなどに対処することができる。
【符号の説明】
【００７５】
５０…画像形成装置、６４…ＦＰＧＡ、８２…第１のリコンフィグ用ブロック、８３…第２のリコンフィグ用ブロック、９１，１０１…ＣＰＵＩ／Ｆ、９２…画像データ出力用レジスタ、９３…プリンタ画像処理用レジスタ、９４…スキャナ画像処理用レジスタ、９５…スキャナ入力用レジスタ、９６，１０５…リコンフィグ制御部、９７…テーブル設定部、９８，１０６…リコンフィグ領域。
【先行技術文献】
【特許文献】
【００７６】
【特許文献１】特開２００９−２２５２７２号公報
【特許文献２】特開２０１１−２１８７８１号公報
【図１】
2014154935.tif 000003
【図２】
2014154935.tif 000004
【図３】
2014154935.tif 000005
【図４】
2014154935.tif 000006
【図５】
2014154935.tif 000007
【図６】
2014154935.tif 000008
【図７】
2014154935.tif 000009
【図８】
2014154935.tif 000010
【図９】
2014154935.tif 000011
【図１０】
2014154935.tif 000012
【図１１】
2014154935.tif 000013
【図１２】
2014154935.tif 000014