(57)【要約】【課題】３次元ＦＰＧＡは構造的に熱の影響を受けやすく、局所的に温度が上昇してしまい、半導体のリーク電流の増加による消費電力の増加を引き起こすという問題があった。【解決手段】本発明では、３次元ＦＰＧＡに積層構成で搭載される複数のＦＰＧＡについて、放熱性の高い若しくは温度が低いＦＰＧＡに対して、消費電力が大きいと予想される回路を割り当てるよう制御する。これにより、ＦＰＧＡ動作時におけるリーク電流の低減し、消費電力を極力抑制することができるようになる。【選択図】  図１
2015207950.tif 000002
【特許請求の範囲】
【請求項１】
複数のＦＰＧＡを積層して構成された３次元フィールドプログラマブルゲートアレイ（ＦＰＧＡ）と、
前記３次元ＦＰＧＡに同時に実装すべき複数の回路のうち、より消費電力の高い回路をより放熱性が高いＦＰＧＡに実装されるように、前記３次元ＦＰＧＡの各ＦＰＧＡを再構成する制御を行う制御手段と
を有することを特徴とする、３次元ＦＰＧＡを用いた電子装置。
【請求項２】
前記各ＦＰＧＡの放熱性の高さの順序は、予め指定されていることを特徴とする請求項１に記載の、３次元ＦＰＧＡを用いた電子装置。
【請求項３】
複数のＦＰＧＡを積層して構成された３次元ＦＰＧＡと、
前記３次元ＦＰＧＡに同時に実装すべき複数の回路のうち、より消費電力の高い回路をより温度が低いＦＰＧＡに実装するように、前記３次元ＦＰＧＡの各ＦＰＧＡを再構成する制御を行う制御手段と
を有することを特徴とする、３次元ＦＰＧＡを用いた電子装置。
【請求項４】
前記各ＦＰＧＡについて、実装された回路による消費電力の記録を含む使用履歴を記憶する手段を更に有し、
前記制御手段は、実装されている回路の消費電力がより大きいＦＰＧＡほど前記各ＦＰＧＡの温度が高いものとして、前記使用履歴に基づいて前記３次元ＦＰＧＡの各ＦＰＧＡを再構成する制御を行うことを特徴とする請求項３に記載の、３次元ＦＰＧＡを用いた電子装置。
【請求項５】
前記電子装置は画像形成装置であり、
前記制御手段は、実行するジョブの種類に応じて、当該ジョブにより使用される画像処理回路を前記３次元ＦＰＧＡに実装される回路として、該画像処理回路の消費電力を推定し、前記３次元ＦＰＧＡを再構成する制御を行うことを特徴とする請求項１乃至４のいずれか一項に記載の、３次元ＦＰＧＡを用いた電子装置。
【請求項６】
前記制御手段は、実行するジョブの種類ごとの画像処理回路の動作率に基づいて、該画像処理回路の消費電力を推定することを特徴とする請求項５に記載の、３次元ＦＰＧＡを用いた電子装置。
【請求項７】
前記電子装置は画像形成装置であり、
前記制御手段は、ジョブの種類にかかわらず予め推定した画像処理ごとの消費電力に基づいて前記３次元ＦＰＧＡを再構成を制御することを特徴とする請求項１乃至４のいずれか一項に記載の、３次元ＦＰＧＡを用いた電子装置。
【請求項８】
複数のＦＰＧＡを積層して構成された３次元フィールドプログラマブルゲートアレイ（ＦＰＧＡ）と、
前記３次元ＦＰＧＡに既に実装されている回路による消費電力と、新たに実装する回路による消費電力とを比較し、前記既に実装されている回路による消費電力が、新たに実装しようとする回路の消費電力より閾値以上高くない場合、前記３次元ＦＰＧＡを再構成して前記新たに実装しようとする回路を実装する制御を行う制御手段と
を有することを特徴とする、３次元ＦＰＧＡを用いた電子装置。
【請求項９】
前記電子装置は画像形成装置であり、
前記制御手段は、ジョブの実行に必要な回路と、該回路を実装しようとするＦＰＧＡに既に実装されている回路とのうち、より消費電力が高い方の回路を、当該ＦＰＧＡに新たに実装する回路として、決定することを特徴とする請求項８に記載の、３次元ＦＰＧＡを用いた電子装置。
【請求項１０】
前記制御手段は、前記ジョブの実行に必要な回路の消費電力を、当該ジョブの種類及び印刷設定に基づいて推定することを特徴とする請求項８又は９に記載の、３次元ＦＰＧＡを用いた電子装置。
【請求項１１】
前記制御手段は、前記ジョブの実行に必要な回路の消費電力を、当該ジョブについて指定された電力モードに基づいて推定することを特徴とする請求項８又は９に記載の、３次元ＦＰＧＡを用いた電子装置。
【請求項１２】
複数のＦＰＧＡを積層して構成された３次元ＦＰＧＡを用いた電子装置により、該３次元ＦＰＧＡの再構成を制御するための方法であって、
前記３次元ＦＰＧＡに同時に実装すべき複数の回路のうち、より消費電力の高い回路をより放熱性が高いＦＰＧＡに実装されるように、前記３次元ＦＰＧＡの各ＦＰＧＡを再構成する制御を行う工程を有することを特徴とする方法。
【請求項１３】
複数のＦＰＧＡを積層して構成された３次元ＦＰＧＡを用いた電子装置により、該３次元ＦＰＧＡの再構成を制御するための方法であって、
前記３次元ＦＰＧＡに同時に実装すべき複数の回路のうち、より消費電力の高い回路をより温度が低いＦＰＧＡに実装するように、前記３次元ＦＰＧＡの各ＦＰＧＡを再構成する制御を行う工程を有することを特徴とする方法。
【請求項１４】
複数のＦＰＧＡを積層して構成された３次元ＦＰＧＡを用いた電子装置により、該３次元ＦＰＧＡの再構成を制御するための方法であって、
前記３次元ＦＰＧＡに既に実装されている回路による消費電力と、新たに実装する回路による消費電力とを比較し、前記既に実装されている回路による消費電力が、新たに実装しようとする回路の消費電力より閾値以上高くない場合、前記３次元ＦＰＧＡを再構成して前記新たに実装しようとする回路を実装する制御を行う制御工程を有することを特徴とする方法。
【請求項１５】
請求項１乃至１１のいずれか一項に記載の電子装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のＦＰＧＡのシリコンダイを３次元的に積層して１つの半導体パッケージに収納した３次元ＦＰＧＡを用いた電子装置および該３次元ＦＰＧＡの再構成を制御するための方法に関するものである。
【背景技術】
【０００２】
近年、携帯電話、デジタルカメラ等の携帯型機器は、小型化、薄型化、軽量化が進められ、これに伴い電子部品の小型・薄型化、高性能・多機能化の要求が増している。このような流れの中で、半導体製品においても、パッケージの小型・軽量化、高性能・多機能化が進められてきた。大記憶容量化、小型軽量化、低コスト化のへの要求に対応するため、貫通ビア（以下ＴＳＶ）を使用してチップを三次元的に積層して１個のパッケージ内に内蔵することがごく普通になっている（例えば特許文献１参照）。このような流れの中、貫通ビア（以下ＴＳＶ）の技術がＦＰＧＡの分野にも適用されるようになってきた。ボード面積当たりの論理ゲート数が多くなり、実装するボード面積を格段に小さくできる為、画像処理装置の多機能化・小型軽量化・低コスト化に大きく寄与することが期待できる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−２０９２２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら３次元ＦＰＧＡの積層化構造は、一般に構造的に熱の影響を受けやすい。例えば、ダイの特定領域と、この特定領域の上層部に位置する３次元ＦＰＧＡのＦＰＧＡを同時に活性化すると、活性化された部分が局所的に温度上昇を引き起こす。これにより、温度に対して指数関数的に上昇する半導体のリーク電流が増大し、消費電力が大きくなってしまう。特に上層部と下層部のＦＰＧＡに挟まれているＦＰＧＡ層は、上層部のＦＰＧＡと下層部のＦＰＧＡの両方において動作時に発生する熱の影響を受ける為、非常に高温になる。この為、比較的温度の低い外気や、実装基板と隣り合うＦＰＧＡ層と比較すると、上記消費電力が増加するといった悪影響は更に大きくなる。ＦＰＧＡ動作時の消費電力量は、単位時間当たりの論理回路を構成するトランジスタのＯＮ／ＯＦＦ回数（以下、動作率）に応じて増加する。よって、上記温度が高くなることによる３次元ＦＰＧＡ全体の消費電力量を低減する為には、温度が低いＦＰＧＡ層になるべく動作率が高く消費電力が大きいと予想される回路を割り当てる制御が必要になる。
【０００５】
本発明は上記従来例に鑑みて成されたもので、３次元ＦＰＧＡの冷却を速やかに行い、ひいては消費電力の増大を抑制することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために本発明は以下の構成を有する。
【０００７】
本発明は、その第１の側面によれば、複数のＦＰＧＡを積層して構成された３次元フィールドプログラマブルゲートアレイ（ＦＰＧＡ）と、
前記３次元ＦＰＧＡに同時に実装すべき複数の回路のうち、より消費電力の高い回路をより放熱性が高いＦＰＧＡに実装されるように、前記３次元ＦＰＧＡの各ＦＰＧＡを再構成する制御を行う制御手段と
を有することを特徴とする、３次元ＦＰＧＡを用いた電子装置にある。
【０００８】
あるいは本発明は、その第２の側面によれば、複数のＦＰＧＡを積層して構成された３次元ＦＰＧＡと、
前記３次元ＦＰＧＡに同時に実装すべき複数の回路のうち、より消費電力の高い回路をより温度が低いＦＰＧＡに実装するように、前記３次元ＦＰＧＡの各ＦＰＧＡを再構成する制御を行う制御手段と
を有することを特徴とする、３次元ＦＰＧＡを用いた電子装置にある。
【０００９】
あるいは本発明は、その第３の側面によれば、複数のＦＰＧＡを積層して構成された３次元フィールドプログラマブルゲートアレイ（ＦＰＧＡ）と、
前記３次元ＦＰＧＡに既に実装されている回路による消費電力と、新たに実装する回路による消費電力とを比較し、前記既に実装されている回路による消費電力が、新たに実装しようとする回路の消費電力より閾値以上高くない場合、前記３次元ＦＰＧＡを再構成して前記新たに実装しようとする回路を実装する制御を行う制御手段と
を有することを特徴とする、３次元ＦＰＧＡを用いた電子装置にある。
【発明の効果】
【００１０】
本発明によれば、放熱性の高いＦＰＧＡ層に消費電力の高い回路構成情報を配置するように制御するので、回路動作時に発生する熱の速やかな放出を実現し、熱により増加する３次元ＦＰＧＡ全体の消費電力量を低減することができる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態のＭＦＰのシステム構成を示すブロック図である。
【図２】本実施形態の３次元ＦＰＧＡ１１０の構造を示す模式図である。
【図３】本実施形態の３次元ＦＰＧＡ１１０の内部構成を示すブロック図である。
【図４】本実施形態のロジックセル３００〜３８０のアドレスマップを示すブロック図である。
【図５】第１の実施形態の印刷ジョブの処理内容に応じて、３次元ＦＰＧＡ１１０の回路構成を変更する制御について説明する模式図である。
【図６】第１の実施形態におけるメインの処理フローを示すフローチャートである。
【図７】第１の実施形態における回路構成情報の転送制御の処理フローを示すフローチャートである。
【図８】第１の実施形態における印刷ジョブ毎回路動作率テーブルの一例である。
【図９】第１の実施形態における回路動作率毎消費電力量テーブルの一例である。
【図１０】本実施形態におけるＲＯＭ１０６に格納される各画像処理に対応する回路構成情報のアドレスマップの一例である。
【図１１】第１の実施形態の印刷ジョブの処理内容に応じて、３次元ＦＰＧＡ１１０の回路構成を変更する制御について処理結果を説明する模式図である。
【図１２】第２の実施形態における回路構成情報の転送制御の処理フローを示すフローチャートである。
【図１３】本実施形態のＦＰＧＡ使用履歴の一例である。
【図１４】第３の実施形態における回路構成情報の転送制御の処理フローを示すフローチャートである。
【図１５】第３の実施形態における印刷ジョブ印刷設定毎回路動作率テーブルの一例である。
【図１６】第４の実施形態における回路構成情報の転送制御の処理フローを示すフローチャートである。
【図１７】第４の実施形態における印刷ジョブ電力モード設定毎回路動作率テーブルの一例である。
【図１８】第５の実施形態におけるメインの処理フローを示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための形態について図面を用いて説明する。なお、本提案の実施形態を備える電子装置として、スキャン、プリンタ、コピーなどの複数の機能を有する画像形成装置であるＭＦＰ（デジタル複合機）を例に説明する。
＜第１の実施形態＞
[画像処理システムの全体構成]
図１は、本実施形態に係る画像処理システムの全体構成を示すブロック図である。図１において、ＭＦＰ１００は、画像入力デバイスであるスキャナ１１５と画像出力デバイスであるプリンタエンジン１１６が内部で接続されている。そして画像データの読み取りやプリント出力のための制御を行う。また、ＭＦＰ１００は、ＬＡＮ１１７や公衆回線１１８と接続することで、デバイス情報や画像データの入出力を行うための制御を行う。
【００１３】
ＣＰＵ１０１はＭＦＰ１００を制御するための中央処理装置である。操作部１０２は、ユーザから操作指示の受付及び操作結果の表示を行う。ネットワークＩ／Ｆ１０３は、例えばＬＡＮカード等で実現され、ＬＡＮ１１７に接続して外部装置との間でデバイス情報や画像データの入出力を行う。モデム１０４は、公衆回線１１８に接続して外部装置との間で制御情報や画像データの入出力を行う。ＨＤＤ１０５はハードディスクドライブであり、各種処理のためのシステムソフトウェア及び入力された画像データ等を格納する。ＲＯＭ１０６は、システムのブートプログラム、３次元ＦＰＧＡ（３次元フィールドプログラマブルゲートアレイ）１１０内に構成されるＦＰＧＡ１１１、ＦＰＧＡ１１２、ＦＰＧＡ１１３をコンフィギュレーションする為の論理回路構成情報が格納されている。デバイスＩ／Ｆ１０７は、スキャナ１１５やプリンタエンジン１１６と接続し、画像データの転送処理を行う。
【００１４】
３次元ＦＰＧＡ１１０は、内部にＦＰＧＡ１１１、ＦＰＧＡ１１２、ＦＰＧＡ１１３の複数のＦＰＧＡを有する。３次元ＦＰＧＡの詳細については後述する。ＦＰＧＡ１１１、ＦＰＧＡ１１２、ＦＰＧＡ１１３は、画像処理を行う論理回路が構成されるロジックＩＣであり、動的に回路を書き換え可能なものである。ＦＰＧＡ１１１、ＦＰＧＡ１１２、ＦＰＧＡ１１３は、クロスバースイッチ部１１４を介してシステムバスにそれぞれ接続され、メモリコントローラ１０８を通してＲＡＭ１０９の格納されている画像データを入力画像データとして読み取る。入力された画像データは、画像処理を実施した後、出力画像データとしてＲＡＭ１０９へ格納される。
【００１５】
メモリコントローラ１０８は、例えばＣＰＵ１０１や各画像処理部からのメモリアクセスコマンドをＲＡＭ１０９が解釈可能なコマンドに変換して、ＲＡＭ１０９に対してアクセスを行う。ＲＡＭ１０９は、ＣＰＵ１０１が動作するためのシステムワークメモリであり、入力された画像データを一時記憶するための画像メモリでもある。以上のユニットがクロスバースイッチ部１１４を通してシステムバス上に配置されている。
【００１６】
[３次元ＦＰＧＡの構造]
図２は、３次元ＦＰＧＡ１１０の構造を示す模式図である。図２は３次元ＦＰＧＡ１１０の側面から見た図である。本実施形態における３次元ＦＰＧＡ１１０は、ＦＰＧＡ１１１、ＦＰＧＡ１１２、ＦＰＧＡ１１３により構成される。ＦＰＧＡ１１１、ＦＰＧＡ１１２、ＦＰＧＡ１１３のシリコンダイは積層され、貫通ビア（ＴＳＶ）２０１により、インターポーザ２０２を通してバンプ２０３によりパッケージ基板２０４へ接続されるものである。インターポーザ２０２は、発熱によって生じるシリコンダイの歪みが電気的特性に与える影響を緩和する為のものであり、電極アレイの密度を下げるように変換する。パッケージ基板２０４と３次元ＦＰＧＡ１１０を実装するベース基板とはＢＧＡボール２０５により接続される。本実施形態においては、ＦＰＧＡ１１１、ＦＰＧＡ１１２、ＦＰＧＡ１１３は、図２に示すように３次元ＦＰＧＡ１１０上面（ＢＧＡボール２０５が配置されている面と反対側）から順番に３層構成で積層されているものとする。
【００１７】
[３次元ＦＰＧＡの内部構成]
図３は、３次元ＦＰＧＡの内部構成を示す模式図である。図３に示す模型図は、３次元ＦＰＧＡ１１０を構成するＦＰＧＡ１１１、ＦＰＧＡ１１２、ＦＰＧＡ１１３それぞれの内部構成を示している。シリコンダイには、ロジックセルがアレイ状に配列されている。図３の例では、説明の簡略化のため、ＦＰＧＡ１１１、ＦＰＧＡ１１２、ＦＰＧＡ１１３はそれぞれ９個のロジックセルで構成される例を示している。各ロジックセル３ｎ０（ｎ＝０...８）はマトリクス状に配置され、互いに隣接するロジックセルが格子状に接続されている。各ロジックセルは、３次元切り換えブロック３ｎ１（ｎ＝０...８）、構成情報メモリ３ｎ２（ｎ＝０...８）、ロジックブロック３ｎ３（ｎ＝０...８）を一組として構成され、同一の構成を有する。そこでロジックセル３００を例にとってその構成を説明する。３次元切り換えブロック３０１は、ＦＰＧＡ１１１、ＦＰＧＡ１１２、ＦＰＧＡ１１３、インターポーザ２０２の各層間を貫通接続している貫通ビア２０１の集合体である。３次元切り換えブロック３０１は、３次元切り換えブロック３ｎ１（ｎ＝０...８）同士で接続されている内部配線をどの層へ接続するかを切り換える。構成情報メモリ３０２は、ロジックブロック３０３へ実装する回路構成情報を格納するメモリであり、３次元切り換えブロック３０１〜、ロジックブロック３０３と内部接続されている。ロジックブロック３０３は、ＦＰＧＡの基本のロジック構成要素であり、ＳＲＡＭ、フリップフロップ、スイッチマトリクスなどの組み合わせ回路で構成されている。構成情報メモリ３０２へ格納されている回路構成情報に従って、ＳＲＡＭやスイッチマトリクスへの設定を変更し、組み合わせロジック、シフトレジスタ、ＲＡＭなど様々なロジック回路を実現することができる。
【００１８】
[３次元ＦＰＧＡのコンフィギュレーション]
次に３次元ＦＰＧＡ１１０のコンフィギュレーションについて説明する。本実施形態において３次元ＦＰＧＡ１１０のコンフィギュレーション処理はＣＰＵ１０１のシリアル通信端子から３次元ＦＰＧＡ１１０のコンフィギュレーションモード端子との間のシリアル通信によって行われるものとする。３次元ＦＰＧＡ１１０内に構成されるＦＰＧＡ１１１、ＦＰＧＡ１１２、ＦＰＧＡ１１３は動的部分再構成（パーシャルリコンフィギュレーション）が可能なＦＰＧＡである。動的部分再構成は、ＦＰＧＡ全体の動作を継続したまま、一部分の回路を再構成するためにロックを解除する機能であり、デザイン機能の時分割多重化により、回路設計の柔軟性を向上させるものである。時分割機能により、ＦＰＧＡのサイズと個数が低減し、コストや消費電力を削減することができ、近年はほぼ全てのＦＰＧＡに搭載されている機能である。
【００１９】
図４は３次元ＦＰＧＡ１１０内に構成されるＦＰＧＡ１１１、ＦＰＧＡ１１２、ＦＰＧＡ１１３のロジックセル３００〜３８０のアドレスマップを示す模式図である。本実施形態においては、図４に示すように、ＦＰＧＡ１１１、ＦＰＧＡ１１２、ＦＰＧＡ１１３のロジックセル３００〜３８０は、３次元ＦＰＧＡ１１０において、それぞれアドレス領域１〜２７を割り当てられているものとする。アドレス領域１〜９には、ＦＰＧＡ１１１のロジックセル３００〜３８０が割り当てられている。アドレス領域１０〜１８には、ＦＰＧＡ１１２のロジックセル３００〜３８０が割り当てられている。アドレス領域１９〜２７には、ＦＰＧＡ１１３のロジックセル３００〜３８０が割り当てられている。ただし、各アドレス領域のサイズは図４に図示したものに限定されるものではない。
【００２０】
[ジョブ処理内容に応じた回路構成の変更制御]
第１の実施形態では、ジョブ処理内容に応じて、ＦＰＧＡの回路構成情報について転送先のＦＰＧＡを決定する制御について説明する。図５はジョブの処理内容に応じて、３次元ＦＰＧＡ１１０を構成するＦＰＧＡ１１１、ＦＰＧＡ１１２、ＦＰＧＡ１１３の回路構成を変更する制御について説明する模式図である。図５の例では、コピージョブ、プリントジョブ、ＦＡＸジョブと３つの異なる処理内容のジョブを処理中において、ＦＰＧＡ１１１、ＦＰＧＡ１１２、ＦＰＧＡ１１３の構成情報メモリ３０２に格納される回路構成情報を示している。
【００２１】
コピージョブを処理する際には、ＦＰＧＡ１１１、ＦＰＧＡ１１２、ＦＰＧＡ１１３それぞれの構成情報メモリ３０２には、それぞれ回路構成情報Ａ、回路構成情報Ｂ、回路構成情報Ｃが格納される。
【００２２】
プリントジョブを処理する際には、ＦＰＧＡ１１１、ＦＰＧＡ１１２、ＦＰＧＡ１１３それぞれの構成情報メモリ３０２には、それぞれ回路構成情報Ｂ、回路構成情報Ｃ、回路構成情報Ａが格納される。
【００２３】
ＦＡＸジョブを処理する際には、ＦＰＧＡ１１１、ＦＰＧＡ１１２、ＦＰＧＡ１１３それぞれの構成情報メモリ３０２には、それぞれ回路構成情報Ｃ、回路構成情報Ａ、回路構成情報Ｂが格納される。
【００２４】
このようにジョブの内容（あるいはジョブの種類）に応じて、ＦＰＧＡ１１１、ＦＰＧＡ１１２、ＦＰＧＡ１１３に転送する回路構成情報を決定し、転送する制御を、ジョブ毎に実施する例について説明する。図６はＣＰＵ１０１がコピーやプリント等のジョブを操作部１０２またはネットワークＩ／Ｆ１０３から受け付けた後に、該当ジョブを処理するための回路構成情報について転送先のＦＰＧＡを決定するためのフローチャートである。
【００２５】
Ｓ６０１において、ＦＰＧＡの回路構成情報の転送制御を行う。ＦＰＧＡの回路構成情報の転送制御の詳細は図７を参照して後述する。Ｓ６０２において、ＦＰＧＡに転送された回路構成情報をＦＰＧＡに回路実装する。ＦＰＧＡ１１１、ＦＰＧＡ１１２、ＦＰＧＡ１１３それぞれに転送された回路構成情報は、それぞれのロジックセル３ｎ０の構成情報メモリ３ｎ２に格納されている。本実施例において、ＦＰＧＡへの回路実装は、ＣＰＵ１０１より３次元ＦＰＧＡ１１０に対してシリアル通信により、書き込み命令を送ることにより実施される。書き込み命令を受信すると、３次元ＦＰＧＡ１１０はロジックセル３ｎ０の構成情報メモリ３ｎ２に格納されている構成情報を解釈して、ロジックブロック３ｎ３のＳＲＡＭやスイッチマトリクスへの設定を変更し、ロジック回路を変更する。
【００２６】
Ｓ６０３において、ＦＰＧＡに実装された回路によりジョブの処理を行う。コピージョブを実施する場合についての処理を例にとり説明する。例えばＦＰＧＡ１１１にスキャン画像処理、ＦＰＧＡ１１２にプリント画像処理の回路が実装されているとする。スキャナ１１６で読み取られた画像データは、エンジンＩ／Ｆ１０７、クロスバースイッチ部１１４を介して、スキャン画像処理の回路が実装されたＦＰＧＡ１１１へ転送される。ＦＰＧＡ１１１へ転送された画像データは、スキャン画像処理を実施後、クロスバースイッチ部１１４、メモリコントローラ１０８を介してＲＡＭ１０９へ格納される。ＲＡＭ１０９へ格納された画像データは、次にメモリコントローラ１０８、クロスバースイッチ部１１４を介して、プリント画像処理の回路が実装されたＦＰＧＡ１１２へ転送される。ＦＰＧＡ１１２へ転送された画像データは、プリント画像処理を実施後、クロスバースイッチ部１１４、エンジンＩ／Ｆ１０７を介してプリンタエンジン１１６へ転送される。プリンタエンジン１１６へ転送された画像データは、電子写真方式やインクジェット方式などのプリンタエンジンのプリント方式に従って、用紙上に出力画像を形成する。
【００２７】
図７はＳ６０１にて行われるＦＰＧＡの回路構成情報の転送制御のフローチャートである。図７を基にＦＰＧＡへと回路構成情報を転送（あるいは送信）する転送制御（あるいは送信制御）の詳細を説明する。ここでは、図５に示すようにジョブをコピージョブ、プリントジョブ、ＦＡＸジョブという順番で処理する場合について例にとり説明する。図７では、３次元ＦＰＧＡに同時に実装すべき複数の回路を、より消費電力が大きく高温となってリーク電流が大きくなる回路ほど、より放熱性の高いＦＰＧＡ層に実装するよう、回路構成情報の転送を制御する。
【００２８】
Ｓ７０１において、まずジョブ処理に必要な回路構成情報を取得する。ＣＰＵ１０１は、ジョブキューに格納されているジョブを参照し、次に処理するジョブの情報を取得する。ジョブキューは、ＣＰＵ１０１が受け付けたジョブについて、受け付けた順番にジョブを記憶するためのソフトウェアである。ジョブキューには、受け付けたジョブの内容（ジョブ種別、印刷設定など）が保持されている。図５に示す場合では、ジョブキューには、コピージョブ、プリントジョブ、ＦＡＸジョブという順番でジョブ情報が格納されている。ジョブキューの先頭にはコピージョブの情報が格納されているため、ＣＰＵ１０１は次に処理するジョブがコピージョブであることを識別する。
【００２９】
図８に各種類のジョブについて回路処理毎の回路の稼働率を示す回路動作率テーブルの一例を示す。図８において、ジョブＩＤ８０１〜８０４は、ジョブの種別を識別するＩＤである。回路処理ＩＤ８１１〜８１５は、回路処理情報を識別するＩＤである。すなわち回路構成ＩＤと言い替えることもできる。なお本実施形態では、回路そのものの構成を回路構成と呼び、ある回路構成で実施される処理を回路処理とよぶ。回路動作率テーブルは、ＲＯＭ１０６に予め格納されている。ＣＰＵ１０１は、回路動作率テーブルを参照して、該当するジョブに必要な回路処理情報またはそのＩＤを取得する。回路動作率テーブルには、ジョブ毎の各回路の動作率の情報が回路処理ＩＤ毎に予め格納されている。ＣＰＵ１０１は、該当するジョブ毎の各回路の動作率が０でない回路処理情報を、ジョブ処理に必要な回路であると判断し、必要な回路の回路構成情報を取得する。コピージョブの場合には、コピージョブ８０１の回路処理ＩＤ８１１〜８１５に格納されている回路動作率を参照し、必要な回路構成情報がプリント画像処理とスキャン画像処理の回路構成情報であると判断する。なお、回路処理ＩＤにより識別される単位となる回路処理には、複数の処理を例えば直列に組み合わせた処理が含まれることがある。たとえばプリント画像処理であれば、複数のフィルタリング処理を直列的に実行することがあり、その場合に複数のフィルタリング処理は図３に示した複数のロジックセルにより実装される。そのときプリント画像処理の回路構成情報はそれら複数のロジックセルの再構成のために使用されることとなる。これは他の回路処理についても同様である。そこで本実施形態及び他の実施形態では、一つの回路処理（すなわちひとつの処理単位）のための回路はひとつのＦＰＧＡに割り当てる。したがって複数の回路処理を含むジョブは、回路処理に相当する数のＦＰＧＡを使用するものとしている。
【００３０】
Ｓ７０１において、ジョブ処理に必要な回路処理を判断した後は、本実施形態に係る発明の特徴である放熱性の高いＦＰＧＡより順番に消費電力量の高い回路の構成情報を転送する制御を行う。第１の実施形態においては、ＦＰＧＡ１１１、ＦＰＧＡ１１３、ＦＰＧＡ１１２の順番で放熱性が高いと想定し説明する。これは一例ではあるが、放熱性の高さとＦＰＧＡ層との関連は、例えば表として保持するか、あるいは、図７の手順においてハードコーディングしておいてもよい。いずれにしても本例では、放熱性の高さの順序は予め指定等により知られたものとする。まず初めに、最も放熱性が高いＦＰＧＡ１１１に転送する回路構成情報を決定する。なお図７のステップＳ７０２〜Ｓ７０５を挟む六角形のブロックは、繰り返しを意味している。これは他のフローチャートについても同様である。
【００３１】
Ｓ７０２において、まだ３次元ＦＰＧＡ１１０へ転送していない回路の動作率について回路動作率テーブルより算出する。ループの一巡目では、まだ３次元ＦＰＧＡ１１０へ転送していない回路構成情報は、プリント画像処理とスキャン画像処理であるため、プリント画像処理とスキャン画像処理の回路の動作率を、回路動作率テーブルより取得する。図８に示す回路動作率テーブルの例では、コピージョブ列８０１で、プリント画像処理行８１３とスキャン画像処理行８１４より、プリント画像処理、スキャン画像処理の回路の動作率として、それぞれ８０％、８０％を取得する。
【００３２】
Ｓ７０３において、まだ３次元ＦＰＧＡ１１０へ転送していない回路の消費電力量を、各回路処理について回路動作率毎に示した消費電力量テーブルより算出する。図９に消費電力量テーブルの一例を示す。図９（ａ）、図９（ｂ）、図９（ｃ）は、それぞれＦＰＧＡ１１１、ＦＰＧＡ１１３、ＦＰＧＡ１１２の消費電力量テーブルを示している。回路動作率１０〜１００％９０１〜９１０、９２１〜９３０、９４１〜９５０は、回路の動作率を示している。回路処理ＩＤ９１１〜９１５、９３１〜９３５、９５１〜９５５は、回路処理情報を識別するＩＤである。消費電力量テーブルは、ＲＯＭ１０６に予め格納されている。図９に示す消費電力量テーブルの例では、プリント画像処理の消費電力量は、ＦＰＧＡ１１１の回路動作率８０％列９０８で、プリント画像処理行９１３の欄を参照し、７６ｍＷを取得する。スキャン画像処理の消費電力量は、ＦＰＧＡ１１１の回路動作率８０％列９０８で、スキャン画像処理行９１４の欄を参照し、６０ｍＷを取得する。なお図９の消費電力量テーブルや図８の回路動作率テーブルは、たとえば予め実験的に消費電力や動作率を測定し、作成しておけばよい。
【００３３】
Ｓ７０４において、まだ３次元ＦＰＧＡ１１０へ転送していない回路で最も消費電力量が高い回路の回路構成情報を当該ＦＰＧＡへ転送する。図７の最初のループでまだ３次元ＦＰＧＡ１１０へ転送していない回路は、プリント画像処理、スキャン画像処理であり、消費電力量はそれぞれ７６ｍＷ、６０ｍＷである。従ってコピージョブで行われる回路処理ではプリント画像処理の回路が最も消費電力量が高いと判断し、プリント画像処理の回路構成情報をＦＰＧＡ１１１へ転送するよう制御する。図１０にＲＯＭ１０６に格納される各画像処理に対応する回路構成情報のアドレスマップの一例を示す。レンダリング処理回路構成情報１００１、１０１１、１０２１は、それぞれＦＰＧＡ１１１、ＦＰＧＡ１１２、ＦＰＧＡ１１３におけるレンダリング処理に対応する回路構成情報である。センド画像処理回路構成情報１００２、１０１２、１０２２は、それぞれＦＰＧＡ１１１、ＦＰＧＡ１１２、ＦＰＧＡ１１３におけるセンド画像処理に対応する回路構成情報である。プリント画像処理回路構成情報１００３、１０１３、１０２３は、それぞれＦＰＧＡ１１１、ＦＰＧＡ１１２、ＦＰＧＡ１１３におけるプリント画像処理に対応する回路構成情報である。スキャン画像処理回路構成情報１００４、１０１４、１０２４は、それぞれＦＰＧＡ１１１、ＦＰＧＡ１１２、ＦＰＧＡ１１３におけるスキャン画像処理に対応する回路構成情報である。ＦＡＸ画像処理回路構成情報１００５、１０１５、１０２５は、それぞれＦＰＧＡ１１１、ＦＰＧＡ１１２、ＦＰＧＡ１１３におけるＦＡＸ画像処理に対応する回路構成情報である。このように、各ＦＰＧＡについて、それぞれの回路構成情報が用意されている。なお、第１の実施形態においては、各回路処理に対応する回路構成情報は、ＦＰＧＡのデザインツールを使用して予め作成され、ＲＯＭ１０６の予め決められたアドレス領域に格納されているものとする。ＣＰＵ１０１は、ＦＰＧＡのコンフィギュレーションシーケンスに従って、ＲＯＭ１０６に格納されているＦＰＧＡ１１１のプリント画像処理の回路構成情報１００３を読み出し、シリアルＩ／Ｆを介して３次元ＦＰＧＡ１１０内のＦＰＧＡ１１１へ転送する。
【００３４】
Ｓ７０５では、まだ３次元ＦＰＧＡ１１０へ転送していない回路構成情報が存在するか否かをチェックする。まだ３次元ＦＰＧＡ１１０へ転送していない回路構成情報が存在する場合には、Ｓ７０２へ進む。まだ３次元ＦＰＧＡ１１０へ転送していない回路構成情報が存在しない場合には、Ｓ６０１のＦＰＧＡの回路構成情報の転送制御は終了し、Ｓ６０２へ進む。この時まだスキャン画像処理の回路構成情報が３次元ＦＰＧＡ１１０へ転送されていないため、Ｓ７０２へ進む。次に、２番目に放熱性の高いＦＰＧＡ１１３に転送する回路構成情報を決定する。
【００３５】
Ｓ７０２において、まだ３次元ＦＰＧＡ１１０へ回路構成情報を送信していない処理の動作率を、ジョブ毎回路動作率テーブルより取得する。先の例では、未送信の回路構成情報に係る回路処理はスキャン画像処理のみであるから、図８に示すジョブ毎回路動作率テーブルの例では、コピージョブ列８０１、スキャン画像処理行８１４より、スキャン画像処理の回路の動作率として、８０％を取得する。
【００３６】
Ｓ７０３において、まだ３次元ＦＰＧＡ１１０へ転送していないスキャン画像処理の回路の消費電力量を回路動作率毎消費電力量テーブルより算出する。図９に示す回路動作率毎消費電力量テーブルの例では、スキャン画像処理の消費電力量は、ＦＰＧＡ１１３の回路動作率８０％列９２８で、スキャン画像処理行９３４の欄を参照し、４８ｍＷを取得する。
【００３７】
Ｓ７０４において、まだ３次元ＦＰＧＡ１１０へ転送していない回路で最も消費電力量が高い回路の構成情報を当該ＦＰＧＡへ転送する。この時まだ次元ＦＰＧＡ１１０へ転送していない回路は、スキャン画像処理のみである。従ってスキャン画像処理の回路が最も消費電力量が高いと判断し、スキャン画像処理の回路構成情報をＦＰＧＡ１１３へ転送するよう制御する。ＣＰＵ１０１は、ＦＰＧＡのコンフィギュレーションシーケンスに従って、ＲＯＭ１０６に格納されているＦＰＧＡ１１３のスキャン画像処理回路情報１０２４を読み出し、シリアルＩ／Ｆを介して３次元ＦＰＧＡ１１０のＦＰＧＡ１１３へ転送する。
【００３８】
Ｓ７０５では、まだ３次元ＦＰＧＡ１１０へ転送していない回路構成情報が存在するか否かをチェックする。まだ３次元ＦＰＧＡ１１０へ転送していない回路構成情報が存在する場合には、Ｓ７０２へ進む。まだ３次元ＦＰＧＡ１１０へ転送していない回路構成情報が存在しない場合には、Ｓ６０１のＦＰＧＡの回路構成情報の転送制御は終了し、Ｓ６０２へ進む。この時３次元ＦＰＧＡ１１０へ転送していない回路構成情報は存在しないため、Ｓ６０２へ進む。
【００３９】
プリントジョブ、ＦＡＸジョブ等の他のジョブについても、回路構成情報について転送先のＦＰＧＡを決定する制御を行うため図７の処理を行うが、Ｓ６０１からＳ６０３の処理及び図７の処理は、ジョブの種類に応じて回路処理は異なるものの、手順は上述した通りであるため、説明は省略する。
【００４０】
プリントジョブの場合は、レンダリング処理とプリント画像処理の回路構成情報が必要と判断し、レンダリング処理、プリント画像処理の順番で消費電力量が高いと判断される。よってＦＰＧＡ１１１にはレンダリング処理回路構成情報１００１を転送し、ＦＰＧＡ１１３へはプリント画像処理回路構成情報１０２３を転送するよう制御する。
【００４１】
ＦＡＸジョブの場合は、センド画像処理、スキャン画像処理、ＦＡＸ画像処理の回路構成情報が必要と判断し、スキャン画像処理、ＦＡＸ画像処理、センド画像処理の順番で消費電力量が高いと判断される。よってＦＰＧＡ１１１にはスキャン画像処理回路構成情報１００４を転送し、ＦＰＧＡ１１３へはＦＡＸ画像処理回路構成情報１０２５を転送し、ＦＰＧＡ１１２へはセンド画像処理回路構成情報１０１２を転送するよう制御する。
【００４２】
図１１は上述の処理により、ジョブ毎にＦＰＧＡ１１１、ＦＰＧＡ１１２、ＦＰＧＡ１１３へ転送する回路構成を変更するよう制御した結果を示す模式図である。
【００４３】
以上のように、本実施形態ではジョブを処理するために必要な画像処理回路の構成情報を転送する際に、消費電力量が高い回路の構成情報を放熱性の高いＦＰＧＡへ転送するよう制御する。このため、本実施形態では、複数のＦＰＧＡの中からより放熱性の高いＦＰＧＡを使用して画像処理を行うことができるため、３次元ＦＰＧＡを使用する際の消費電力の低減が可能となる。また本実施形態では、ジョブの種類ごとの回路処理に対応した回路の動作率と、回路処理ごとの動作率に応じた消費電力とを表化して保持し、それらの表を参照して、ジョブの種類ごとに、ＦＰＧＡを用いて構成すべき回路の消費電力を求めている。そのため、回路構成情報の変更等に起因する動作率の変化や消費電力の変化があっても、変化した数字で表を更新するだけで、最新の回路構成による消費電力に応じた回路の配置を実現できる。
【００４４】
なお、本実施形態では、再構成すべき回路が残りひとつになってもその消費電力を求めているが、この場合比較の対象はないため、最後のひとつの回路については、消費電力を求めることなく、最後のひとつとなった時点で利用可能なＦＰＧＡのうち最も放熱効率の高いもの（すなわち放熱性の良いもの）を用いて構成してもよい。
【００４５】
さらに、図７の処理を、ＭＦＰではない汎用コンピュータ等で予め実行し、その工程のうち、ステップＳ７０４の処理を、たとえばその実行時点で最も消費電力の高い回路の回路構成ＩＤと、その時点で使用可能な最も放熱性の高いＦＰＧＡ層とを関連付けて記憶しておく処理とする。そしてこの関連付けを、ジョブの種類ごとに表としてＭＦＰのＲＯＭ１０６等に保存しておく。そしてＭＦＰでは、図６の処理を実行する際に、そのステップＳ６０１において、実行しようとするジョブの種類に応じて、図７の手順で作成し、記憶した表を参照して、そのジョブに必要な回路構成情報と、対応するＦＰＧＡ層とを決定し、必要な回路構成情報をＦＰＧＡ１１０の対応するＦＰＧＡ層に転送する。このように構成することで、より短時間で回路を配置するＦＰＧＡ層を決定できる。
【００４６】
［第２の実施形態］
第１の実施形態では、ジョブ毎にジョブの処理内容に応じて、画像処理回路の消費電力量を算出し、消費電力量が高い画像処理回路が放熱性の高いＦＰＧＡに割り当てるよう制御する形態について説明した。しかしながら、ＦＰＧＡが動作すると発熱により当該ＦＰＧＡの温度が上昇するため、場合によっては、放熱性の高いＦＰＧＡより放熱性の低いＦＰＧＡの方が温度は低くなり、リーク電流による消費電力量を抑制できるケースがある。例えば２つの回路処理を利用し、そのうち放熱性の高いＦＰＧＡ層に実装された回路の動作率が高く、放熱性の低いＦＰＧＡ層に実装された回路の動作率が低いジョブを想定する。そのジョブが連続して実行された場合には、後のジョブの実行中には、放熱性の高いＦＰＧＡ層の方が温度は高くなり、消費電力量はむしろ大きくなる可能性がある。上記ケースを想定し、第２の実施形態では、各ＦＰＧＡで使用された回路の使用履歴を作成し、使用履歴に基づいて、消費電量の高い回路構成情報を転送するＦＰＧＡの順番を決定するよう制御する。本実施形態では、使用履歴に記録された、実装された回路による消費電力が大きいＦＰＧＡ層ほど温度が高いものと判定し、より温度が低いＦＰＧＡ層に、消費電力が大きく、より高温になることが見込まれる回路を実装する。以下、フローチャートを用いて説明する。なお図６のステップＳ６０１の詳細である回路構成データ転送制御処理を示す図７以外は第１の実施形態と概ね共通である。
【００４７】
図１２は第２の実施形態における画像処理装置による回路構成データ転送制御を説明するフローチャートを示す。図１２は第１の実施形態の図７に代えて実行される。説明を簡略化する為に、第１の実施形態と同じ処理を行うステップに関しては説明を割愛する。Ｓ１２０１の処理内容は、第１の実施形態のＳ７０１と同様であるので説明を割愛する。
【００４８】
Ｓ１２０２において、ＦＰＧＡ使用履歴テーブルより過去のＦＰＧＡの消費電力量の情報を取得する。図１３にＦＰＧＡ使用履歴テーブルの一例を示す。図１３において、履歴ＩＤ１３０１はジョブの履歴を識別するＩＤである。ジョブＩＤ１３０２はジョブの種別を識別するＩＤである。開始時刻１３０３はジョブが開始した時刻である。終了時刻１３０４はジョブが終了した時刻である。ＦＰＧＡ１１１画像処理１３０５は、ＦＰＧＡ１１１に実装された画像処理回路である。ＦＰＧＡ１１１消費電力１３０６は、ＦＰＧＡ１１１へ転送する回路構成情報を決定する際に、算出した当該画像処理回路の消費電力量である。ＦＰＧＡ１１２画像処理１３０７は、ＦＰＧＡ１１２に実装された画像処理回路である。ＦＰＧＡ１１２消費電力１３０８は、ＦＰＧＡ１１２へ転送する回路構成情報を決定する際に、算出した当該画像処理回路の消費電力量である。ＦＰＧＡ１１３画像処理１３０９は、ＦＰＧＡ１１３に実装された画像処理回路である。ＦＰＧＡ１１３消費電力１３１０は、ＦＰＧＡ１１３へ転送する回路構成情報を決定する際に、算出した当該画像処理回路の消費電力量である。
【００４９】
第２の実施形態においては、簡略化のため、一つ前に処理されたジョブのＦＰＧＡ消費電力量をＦＰＧＡ使用履歴テーブルより参照し、ＦＰＧＡ１１１、ＦＰＧＡ１１２、ＦＰＧＡ１１３の消費電力量から、ＦＰＧＡの温度が低い順番を判断する。より詳細にＦＰＧＡの温度が低い順番を判断する為に、過去複数分のジョブが実行された頻度と、消費電力量をＦＰＧＡ使用履歴テーブルより取得しても良い。図１３に示すＦＰＧＡ使用履歴テーブルより、一つ前に処理されたジョブである履歴ＩＤ１３０１が１００２のジョブについての、ＦＰＧＡ１１１、ＦＰＧＡ１１２、ＦＰＧＡ１１３の消費電力量として、それぞれ１２１ｍＷ、０ｍＷ、６４ｍＷを取得する。
【００５０】
Ｓ１２０２において、過去のＦＰＧＡの消費電力量より、３次元ＦＰＧＡ１１０を構成するＦＰＧＡ１１１、ＦＰＧＡ１１２、ＦＰＧＡ１１３の温度が低い順番を判断する。第２の実施形態においては、直前に実行されたジョブの回路処理の消費電力量が小さい順番を、当該回路が構成されたＦＰＧＡの温度が低い順番と判断するため、ＦＰＧＡの温度が低い順番は、この場合にはＦＰＧＡ１１２、ＦＰＧＡ１１３、ＦＰＧＡ１１１と判断する。
【００５１】
ＦＰＧＡ毎に行うＳ１２０４〜Ｓ１２０７までの処理は、第１の実施形態のＳ７０２〜Ｓ７０５と同じであるが、第２の実施形態においては、ＦＰＧＡの温度が低い順番に実施する。つまりＦＰＧＡ１１２、ＦＰＧＡ１１３、ＦＰＧＡ１１１の順番で、Ｓ１２０４〜Ｓ１２０７までの処理を行う。Ｓ１２０４〜Ｓ１２０７は、図７のＳ７０２〜Ｓ７０５とそれぞれ同様の処理である。
【００５２】
最後にＳ１２０８において、ＦＰＧＡ使用履歴テーブルに新たな項目を追加する。そのために新たな履歴ＩＤを発行し、ジョブの種類（ジョブＩＤ）と、各ＦＰＧＡ層に構成した回路処理の識別情報すなわちＦＰＧＡ１１１、ＦＰＧＡ１１２、ＦＰＧＡ１１３に実装した画像処理回路の識別情報と、それぞれの回路による消費電力量の情報を、ＦＰＧＡ使用履歴テーブルに追加する。なお開始時刻および終了時刻は、図６のステップＳ６０３において、ジョブの実行時と終了時にそれぞれ記録すればよい。
【００５３】
以上のように、本実施形態ではジョブを処理するために必要な画像処理回路の構成情報を転送する際に、ＦＰＧＡ使用履歴テーブルを使用して、消費電力量が高い回路の構成情報を温度の低いと予想されるＦＰＧＡへ転送するよう制御する。
【００５４】
このため、本実施形態では、複数のＦＰＧＡの中からより温度の低いＦＰＧＡを使用して画像処理を行うことができるため、３次元ＦＰＧＡを使用する際の消費電力の低減が可能となる。
【００５５】
なお、直前のジョブから十分に時間が経過していればＦＰＧＡも冷え、使用履歴を考慮する必要性が低下する。そこで直前のジョブについて、ステップＳ１２０２の前にＦＰＧＡ使用履歴テーブルの終了時刻１３０４を参照し、所定時間以上経過していれば、第１実施形態の手順で回路構成データ転送処理を実行し、経過していなければステップＳ１２０２以降の手順で回路構成データ転送処理をおこなってもよい。
【００５６】
［第３の実施形態］
第１及び第２の実施形態では、ジョブ毎にジョブの処理内容に応じて、画像処理回路の消費電力量を算出し、消費電力量が高い画像処理回路が放熱性の高いもしくは温度の低いＦＰＧＡに割り当てるよう制御する形態について説明した。しかしながら、ＦＰＧＡの回路構成情報を書き換える動作自体でも電力を消費する為、印刷設定によってはジョブ毎に回路構成情報を書き換える動作をしない方が消費電力量を低減できる場合がある。例えば、同じコピージョブであっても、白黒印刷の場合とカラー印刷の場合では、回路の動作率が変わる為、画像処理回路の消費電力量が変わってくる。ジョブの処理内容に応じてＦＰＧＡの回路構成を変更することにより温度上昇を抑制してその結果低減できると見込む消費電力量が、ＦＰＧＡの回路構成情報を書き換える動作により消費する電力量より小さいのであれば、回路構成を変更しない方が良い。上記ケースを想定し、第３の実施形態では、予め決められた閾値を設けて、既にＦＰＧＡに実装されている回路の消費電力量よりも閾値以上上回らない場合（すなわち閾値以上高くない場合）には、当該ＦＰＧＡに対する回路構成情報の転送を行わないよう制御する。以下、フローチャートを用いて説明する。
【００５７】
なお本実施形態及び第４の実施形態は、次のジョブのための画像処理回路は既にＦＰＧＡに備わっているものの、その画像処理回路を用いて次のジョブを実行した場合の消費電力および放熱性を考慮すれば、既存の回路であっても再配置するのが望ましい場合の例である。したがって、図１４（第４実施形態では図１６）の手順は、たとえばその前段階において、ＦＰＧＡ１１０に、次に実行するジョブに必要な回路構成が既に備わっているか判定し、備わっている場合に実行を開始する。備わっていない場合には、たとえば第１又は第２実施形態の手順を実行する。あるいは、上述した判定を行わずに図１４の手順を実行し、その結果次のジョブに必要な画像処理回路をすべて実装できなかった場合には、その回路を改めて実装するようにしてもよい。
【００５８】
図１４は第３の実施形態における画像処理装置の制御を説明するフローチャートを示す。説明を簡略化する為に、第２の実施形態と同じ処理を行うステップに関しては説明を割愛する。Ｓ１４０１〜Ｓ１４０２、Ｓ１４０４の処理内容は、第２の実施形態のＳ１２０１〜Ｓ１２０３と同様であるので説明を割愛する。またステップＳ１４０５以降のループ処理については、第２の実施形態と同様に、温度の低いＦＰＧＡ層から順に着目して、着目ＦＰＧＡ層に構成する回路を決定していく。また、図１３のＦＰＧＡ使用履歴テーブル（単に使用履歴テーブルとも呼ぶ）は本実施形態でも使用される。また、図１３の構成に加えて、現在実装されているＦＰＧＡ層を示す欄も有する。現在は実装されていないのであれば、当該欄には実装されていないことが表示される。その欄を参照することで、現在のＦＰＧＡ１１０のどのＦＰＧＡ層に、どのジョブ種類のどの画像処理回路が実装されているかを識別できる。もちろんこれは一例であり、他の方法によって現在のＦＰＧＡの構成を記録しておいてもよい。
【００５９】
Ｓ１４０３では、現在ＦＰＧＡに実装されている回路による消費電力の総和を求める。これはたとえば、これから実行しようとするジョブにおけるＦＰＧＡを用いた画像処理により消費される電力であり、第１、第２実施形態のように、たとえばジョブ種類ごとの稼働率に応じた消費電力から得ることができる。
【００６０】
さてＳ１４０５において、まだ３次元ＦＰＧＡ１１０へ転送していない回路の動作率についてジョブ印刷設定毎回路動作率テーブルより算出する。図１５にジョブ印刷設定毎回路動作率テーブルの一例を示す。図１５において、カラー種別１５１１は、印刷がカラー印刷であるか、白黒印刷であるかを示す。ページサイズ１５１２は、印刷ページサイズを示す。ここでは用紙サイズをＬａｒｇｅ、Ｓｍａｌｌという２つに区別しているが、Ａ４、Ｂ５サイズなど具体的な用紙サイズを指定するようにすることもできる。本実施例では、Ａ４より大きいサイズをＬａｒｇｅ、Ａ４サイズ以下のサイズをＳｍａｌｌと分類する。両面１５１３は、印刷が両面印刷であるか、片面印刷であるかを示す。レンダリング処理１５１４は、画像処理回路がレンダリング処理の際の回路動作率を示す。センド画像処理１５１５は、画像処理回路がセンド画像処理の際の、回路動作率を示す。プリント画像処理１５１６は、画像処理回路がプリント画像処理の際の、回路動作率を示す。スキャン画像処理１５１７は、画像処理回路がスキャン画像処理の際の、回路動作率を示す。ＦＡＸ画像処理１５１８は、画像処理回路がＦＡＸ画像処理の際の、回路動作率を示す。
【００６１】
図１５において、図１５（ａ）、図１５（ｂ）、図１５（ｃ）、図１５（ｄ）はそれぞれ、ジョブの種類が、コピージョブ、プリントジョブ、ＦＡＸジョブ、センドジョブの際の回路動作率テーブルを示す。例えば図１５（ａ）の欄１５０１は、コピージョブの印刷設定が、カラー印刷かつページサイズＬａｒｇｅかつ片面印刷のときの回路動作率を示している。レンダリング処理、センド画像処理、プリント画像処理、スキャン画像処理、ＦＡＸ画像処理の回路動作率は、それぞれ０％、０％、６０％、６０％、０％である。
【００６２】
図１４の手順を説明する。Ｓ１４０５の処理を実施する際に、ＦＰＧＡ１１１、ＦＰＧＡ１１２、ＦＰＧＡ１１３にはそれぞれスキャン画像処理、レンダリング処理、プリント画像処理の回路が実装されているとする。また、Ｓ１４０４の処理において、ＦＰＧＡの温度の低い順番は、ＦＰＧＡ１１１、ＦＰＧＡ１１３、ＦＰＧＡ１１２の順番であると判断されているとする。この判断は、第２の実施形態と同じく、使用履歴に基づいて行うことができる。そして、実行する対象となる対象ジョブの種類が、コピージョブであり、その印刷設定はカラー印刷、ページサイズＬａｒｇｅ、両面印刷であるとする。従って、Ｓ１４０５〜Ｓ１４０９までのＦＰＧＡ毎の処理は、まず初めに最も温度の低いＦＰＧＡ１１１より実施する。前記印刷設定の場合には、図１５（ａ）のコピージョブの回路動作率テーブルの該当する印刷設定の欄１５０２を参照して、その印刷設定に関連付けられたプリント画像処理、スキャン画像処理の回路の動作率として、それぞれ８０％、８０％を取得する。
【００６３】
Ｓ１４０６の処理内容は、第２の実施形態のＳ１２０５と同様であり、ＦＰＧＡ１１１に実装した際の、プリント画像処理、スキャン画像処理の回路の消費電力量として、それぞれ７６ｍＷ、６０ｍＷを取得する。
【００６４】
Ｓ１４０７において、当該ジョブに必要な回路で、最も消費電力量が高い回路と、着目ＦＰＧＡ層に実装済みの回路について、消費電力量を比較する。コピージョブに必要な回路の消費電力量は、プリント画像処理、スキャン画像処理でそれぞれ７６ｍＷ、６０ｍＷであるため、最も高い消費電力量はプリント画像処理の７６ｍＷである。一方、既にＦＰＧＡ１１１に実装されているスキャン画像処理回路の消費電力量は、図９（ａ）の欄９０８を参照して、６０ｍＷを取得する。そして、必要な回路で最も消費電量が高いプリント画像処理と、着目ＦＰＧＡ層に実装済みのスキャン画像処理の消費電力量の比較を行う。着目ＦＰＧＡ層に実装されている回路の消費電力としては、ステップＳ１４０３においてＦＰＧＡ全体について消費電力量の総和を求めた際に、ＦＰＧＡ層ごとに求めてそれを記憶しておき、ステップＳ１４０７で参照してもよい。
【００６５】
Ｓ１４０８において、ステップＳ１４０７における比較の結果、消費電力が高い方の回路を当該着目ＦＰＧＡ層に実装する回路として選択して予約（あるいは割り当てあるいは仮配置などと呼んでもよい）し、そのＦＰＧＡ層とそこに実装される回路構成情報とを対応付ける情報を記憶しておく。既に実装済みの回路の消費電力の方が高い場合にも、いずれか選択した方の回路の識別情報を記憶しておく。本例ではこれも「予約」とよぶことにする。
【００６６】
ステップＳ１４０９では、まだ予約していない回路構成情報が残っているか判定する。例えばステップＳ１４０８の処理の結果予約された回路が、既に着目ＦＰＧＡ層に実装されている方の回路である場合、それが次のジョブに必要な画像処理回路であれば、当該画像処理回路は既に予約されているものと判断する。Ｓ１４０９の判定の結果、予約されていない回路が残っていればステップＳ１４０５に戻る。一方、着目ジョブで必要とするすべての回路の予約が済んだならステップＳ１４１０に分岐する。
【００６７】
ステップＳ１４１０では、各ＦＰＧＡ層について予約した回路の消費電力量の総和を求める。ステップＳ１４１１では、ステップＳ１４０２で求めた現在ＦＰＧＡに実装されている回路の消費電力量の総和と、ステップＳ１４１０で求めた予約されている回路による消費電力量の総和とを比較する。そして下の不等式の条件がたされなければ、ステップＳ１４１２に分岐し、満たされればステップＳ１４１３に分岐する。
（現在の回路の消費電力量の総和）≧（予約した回路の消費電力量の総和＋閾値）
上記の式の閾値は、ＦＰＧＡの回路構成情報を書き換える動作により消費される消費電力量を考慮して予め決めておき、ＲＯＭ１０６へ格納されている。例えば、閾値として、ＦＰＧＡの再構成のために消費される平均的な電力量を与えてもよいし、ひとつのＦＰＧＡ層の再構成に必要な電力量を記憶しておき、その値に、予約した回路のうちの新たに再構成が必要な回路の数を乗じて閾値としても良い。
【００６８】
Ｓ１４１２において、予約した回路の構成情報を当該ＦＰＧＡへ転送する。ただし、予約した回路と、その回路を実装しようとするＦＰＧＡ層に既に実装されている回路とが同一であれば、転送の必要はない。
【００６９】
以上のように、本実施形態ではジョブを処理するために必要な画像処理回路の構成情報を転送する際に、当該回路について、ジョブ印刷設定毎の回路動作率テーブルを使用して、印刷設定に応じた画像処理回路の消費電力量を算出する。そして各ＦＰＧＡ層について、既にＦＰＧＡに実装されている回路の消費電力量と転送対象の画像処理回路の消費電力量とを比較し、消費電力量が高い方の回路を新たにＦＰＧＡに実装する回路として予約する。現在の回路の消費電力の総和が予約した回路の消費電力の総和をあらかじめ定めた閾値以上上回らない場合には、当該ＦＰＧＡに対する回路構成情報の転送を行わないよう制御する。このため、本実施形態では、印刷設定によってはジョブ毎に回路構成情報を書き換える動作をしないことができるため、回路構成情報を書き換える動作により発生する消費電力量を考慮した、３次元ＦＰＧＡを使用する際の消費電力の低減が可能となる。
【００７０】
［第４の実施形態］
第１から第３までの実施形態では、ジョブ毎にジョブの処理内容に応じて、画像処理回路の消費電力量を算出し、消費電力量が高い画像処理回路が放熱性の高い若しくは温度の低いＦＰＧＡに割り当てるよう制御する形態について説明した。しかしながら、ＦＰＧＡの回路構成情報を書き換える動作をジョブ毎に実行すると、回路構成情報をＲＯＭ１０６より読み出してから、３次元ＦＰＧＡ１１０へ転送するまでに時間がかかる為、ジョブ処理のパフォーマンスが低下する場合がある。上記ケースを想定し、第４の実施形態では、電力モード毎に応じて消費電力量を算出して、既にＦＰＧＡに実装されている回路の消費電力量よりも閾値以上上回らない場合には、当該ＦＰＧＡに対する回路構成情報の転送を行わないよう制御する。以下、フローチャートを用いて説明する。
【００７１】
図１６は第４の実施形態における画像処理装置の制御を説明するフローチャートを示す。説明を簡略化する為に、第３の実施形態と同じ処理を行うステップに関しては説明を割愛する。Ｓ１６０１〜Ｓ１６０４までの処理内容は、第３の実施形態のＳ１４０１〜Ｓ１４０４と同様であるので説明を割愛する。また本実施形態は、電力消費量を印刷設定ごとに推定するのではなく、後述する電力モードごとに推定するという相違はあるものの、第３の実施形態に類似している。ここで電力モードはジョブごとに指定される。たとえばＭＦＰ１００の提供するユーザーインターフェースを介してオペレータにより入力されること等によって電力モードは指定される。あるいは、ジョブの種類や印刷設定等に電力モードを対応付けておき、ＦＰＧＡの再構成に先立って、ジョブの種類や印刷設定等に基づいて電力モードを決定しておいてもよい。
【００７２】
Ｓ１６０５において、まだ３次元ＦＰＧＡ１１０へ転送していない回路の動作率について電力モード設定毎の回路動作率テーブルより算出する。図１７に電力モード設定毎の回路動作率テーブルの一例を示す。図１７において、電力モード１７１１は、電力モードが電力モード１、電力モード２、電力モード３のいずれかであるかを示す。レンダリング処理１７１２は、画像処理回路がレンダリング処理の際の、回路動作率を示す。センド画像処理１７１３は、画像処理回路がセンド画像処理の際の、回路動作率を示す。プリント画像処理１７１４は、画像処理回路がプリント画像処理の際の、回路動作率を示す。スキャン画像処理１７１５は、画像処理回路がスキャン画像処理の際の、回路動作率を示す。ＦＡＸ画像処理１７１６は、画像処理回路がＦＡＸ画像処理の際の、回路動作率を示す。
【００７３】
図１７において、図１７（ａ）、図１７（ｂ）、図１７（ｃ）、図１７（ｄ）、はそれぞれジョブが、コピージョブ、プリントジョブ、ＦＡＸジョブ、センドジョブの際の、ジョブ電力モード設定毎回路動作率テーブルを示す。例えば図１７（ａ）の１７０１は、コピージョブの電力モード１のときの回路動作率を示している。レンダリング処理、センド画像処理、プリント画像処理、スキャン画像処理、ＦＡＸ画像処理の回路動作率は、それぞれ０％、０％、８０％、８０％、０％である。
【００７４】
Ｓ１６０５の処理を実施する際に、ＦＰＧＡ１１１、ＦＰＧＡ１１２、ＦＰＧＡ１１３にはそれぞれスキャン画像処理、レンダリング処理、プリント画像処理の回路が実装されているとする。また、Ｓ１６０４の処理において、ＦＰＧＡの温度の低い順番は、ＦＰＧＡ１１１、ＦＰＧＡ１１３、ＦＰＧＡ１１２の順番であると判断されているとする。そして、処理する当該ジョブがコピージョブであり、電力モードが電力モード３で設定されているとする。従って、Ｓ１６０５〜Ｓ１６０９までのＦＰＧＡ毎の処理は、まず初めにＦＰＧＡ１１１より実施する。なお電力モードごとの回路の動作率は予め定めて図１７に示す回路動作率テーブルに格納しておく。
【００７５】
電力モードが電力モード３に設定されている場合には、図１７（ａ）のコピージョブのジョブ電力モード設定毎回路動作率テーブルの１７０３を参照して、プリント画像処理、スキャン画像処理の回路の動作率として、それぞれ４０％、４０％を取得する。
【００７６】
Ｓ１６０６の処理内容は、第２の実施形態のＳ１４０５と同様であり、ＦＰＧＡ１１１に実装した際の、プリント画像処理、スキャン画像処理の回路の消費電力量として、それぞれ３８ｍＷ、３０ｍＷを取得する。
【００７７】
Ｓ１６０７において、当該ジョブに必要な回路で、最も消費電力量が高い回路と、当該ＦＰＧＡに実装済みの回路について、消費電力量を比較する。コピージョブに必要な回路の消費電力量は、プリント画像処理、スキャン画像処理でそれぞれ３８ｍＷ、３０ｍＷであるため、最も高い消費電力量はプリント画像処理の３８ｍＷである。一方、既にＦＰＧＡ１１１に実装されているスキャン画像処理回路の消費電力量は、図９（ａ）の９０４を参照して、３０ｍＷを取得する。そして、必要な回路で最も消費電量が高いプリント画像処理と、当該ＦＰＧＡに実装済みのスキャン画像処理の消費電力量の比較を行う。着目ＦＰＧＡ層に実装されている回路の消費電力としては、ステップＳ１６０３においてＦＰＧＡ全体について消費電力量の総和を求めた際に、ＦＰＧＡ層ごとに求めてそれを記憶しておき、ステップＳ１４０７で参照してもよい。
【００７８】
Ｓ１６０８において、ステップＳ１４０７における比較の結果、消費電力が高い方の回路を当該着目ＦＰＧＡ層に実装する回路として選択して予約（あるいは割り当てあるいは仮配置などと呼んでもよい）し、そのＦＰＧＡ層とそこに実装される回路構成情報とを対応付ける情報を記憶しておく。既に実装済みの回路の消費電力の方が高い場合にも、いずれか選択した方の回路の識別情報を記憶しておく。
【００７９】
ステップＳ１６０９では、まだ予約していない回路構成情報が残っているか判定する。例えばステップＳ１６０８の処理の結果予約された回路が、既に着目ＦＰＧＡ層に実装されている方の回路である場合、それが次のジョブに必要な画像処理回路であれば、当該画像処理回路は既に予約されているものと判断する。Ｓ１６０９の判定の結果、予約されていない回路が残っていればステップＳ１６０５に戻る。一方、着目ジョブで必要とするすべての回路の予約が済んだならステップＳ１６１０に分岐する。
【００８０】
ステップＳ１６１０では、各ＦＰＧＡ層について予約した回路の消費電力量の総和を求める。ステップＳ１６１１では、ステップＳ１６０２で求めた現在ＦＰＧＡに実装されている回路の消費電力量の総和と、ステップＳ１６１０で求めた予約されている回路による消費電力量の総和とを比較する。そして下の不等式の条件がたされなければ、ステップＳ１６１２に分岐し、満たされればステップＳ１６１３に分岐する。
（現在の回路の消費電力量の総和）≧（予約した回路の消費電力量の総和＋閾値）
上記の式の閾値は、電力モード毎にＦＰＧＡの回路構成情報を書き換える動作により低下するパフォーマンスの許容値を考慮して予め決めておき、ＲＯＭ１０６へ格納されている。閾値は例えば回路構成情報を書き換える動作に必要な消費電力量そのものを示す値であってもよい。
【００８１】
Ｓ１６１２において、予約した回路の構成情報を当該ＦＰＧＡへ転送する。ただし、予約した回路と、その回路を実装しようとするＦＰＧＡ層に既に実装されている回路とが同一であれば、転送の必要はない。
【００８２】
以上のように、本実施形態ではジョブを処理するために必要な画像処理回路の構成情報を転送する際に、ジョブ電力モード設定毎回路動作率テーブルを使用して、電力モード設定に応じた画像処理回路の消費電力量を算出する。そして各ＦＰＧＡ層について、既にＦＰＧＡに実装されている回路の消費電力量と転送対象の画像処理回路の消費電力量とを比較し、消費電力量が高い方の回路を新たにＦＰＧＡに実装する回路として予約する。現在の回路の消費電力の総和が予約した回路の消費電力の総和をあらかじめ定めた閾値以上上回らない場合には、当該ＦＰＧＡに対する回路構成情報の転送を行わないよう制御する。このため、本実施形態では、電力モード設定によってはジョブ毎に回路構成情報を書き換える動作をしないことができるため、書き換える動作により低下するパフォーマンスを考慮した、３次元ＦＰＧＡを使用する際の消費電力の低減が可能となる。
【００８３】
［第５の実施形態］
第１から第４までの実施形態では、ジョブ毎にジョブの処理内容に応じて、画像処理回路の消費電力量を算出し、消費電力量が高い画像処理回路が放熱性の高い若しくは温度の低いＦＰＧＡに割り当てるよう制御する形態について説明した。しかしながら、ジョブ毎に画像処理回路の消費電力量を算出し、回路構成情報を変更する制御を行うためには、消費電力量を算出する手段が必要であるため、その分コストが増加してしまう。上記ケースを想定し、第５の実施形態では、予めＦＰＧＡに実装する回路の消費電力量を算出して、消費電力量の高い回路を放熱性の高いＦＰＧＡに転送されるように決めておき、ジョブ実行前には、当該ＦＰＧＡに実装するよう制御する。以下、フローチャートを用いて説明する。
【００８４】
図１８は第５の実施形態における画像処理装置の制御を説明するフローチャートを示す。説明を簡略化する為に、第１の実施形態と同じ処理を行うステップに関しては説明を割愛する。
【００８５】
Ｓ１８０１において、ＦＰＧＡの回路構成情報の転送制御を行う。第１から第４までの実施形態においては、ジョブ毎に回路構成情報の転送先のＦＰＧＡを決定していたが、第５の実施形態においては、転送先のＦＰＧＡは予め決定しておく。３次元ＦＰＧＡ１１０を構成するＦＰＧＡ１１１、ＦＰＧＡ１１２、ＦＰＧＡ１１３の中での放熱性の高さの順番は、予め３次元ＦＰＧＡ１１０が実装される基板を含めた実装構成や空冷機器などの配置より、事前に決定しておく。第５の実施形態においては、第１の実施形態と同様に、ＦＰＧＡ１１１、ＦＰＧＡ１１３、ＦＰＧＡ１１２の順番で放熱性が高いと想定し説明する。又、画像処理装置に搭載する画像処理機能として、スキャン画像処理、プリント画像処理、レンダリング処理を有している。３次元ＦＰＧＡ１１０に実装時の画像処理回路の消費電力量の大きい順番については、予めＦＰＧＡ実装時に算出しておき、それぞれレンダリング処理、プリント画像処理、スキャン画像処理の順番であるとする。
【００８６】
ＣＰＵ１０１は、ＲＯＭ１０６へ予め格納されているレンダリング処理回路構成情報１００１、プリント画像処理回路構成情報１０２３、スキャン画像処理回路構成情報１０１４を読み出す。読み出した前記回路構成情報は、ＦＰＧＡのコンフィギュレーションシーケンスに従って、３次元ＦＰＧＡ１１０へ転送する。３次元ＦＰＧＡ１１０へ転送されたレンダリング処理回路構成情報１００１、プリント画像処理回路構成情報１０２３、スキャン画像処理回路構成情報１０１４は、対象のＦＰＧＡの構成情報メモリ３０２へ格納される。
【００８７】
Ｓ１８０２において、ＦＰＧＡに転送された回路構成情報をＦＰＧＡに回路実装する。Ｓ１８０２の処理内容は、第１の実施形態のＳ６０２と同様であるので説明を割愛する。Ｓ１８０１からＳ１８０２までの処理は、ジョブ開始前までに実施されていれば良いが、第５の実施形態においては、画像処理装置の電源投入直後に実施されるものとする。以降、ジョブ毎に、Ｓ１８０３において、ＦＰＧＡに実装された回路によりジョブの印刷処理を行う。Ｓ１８０３の処理内容は、第１の実施形態のＳ６０３と同様であるので説明を割愛する。
【００８８】
以上のように、本実施形態ではＦＰＧＡに実装する回路の消費電力量を予め算出し、こちらも予め把握している放熱性の高いＦＰＧＡの順番に、消費電力量の高い回路の構成情報を電源投入直後に転送するよう制御する。このため、本実施形態では、ＦＰＧＡに実装する回路の消費電力量を算出する手段が必要無い為、コストが少なく簡単な構成により、３次元ＦＰＧＡを使用する際の消費電力の低減が可能となる。
【００８９】
［その他の実施例］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００９０】
１０１...ＣＰＵ、１０９...ＲＡＭ、１１０...３次元ＦＰＧＡ、３００...ロジックセル、３０１...３次元切り換えブロック、３０２...構成情報メモリ、３０３...ロジックブロック
【図１】
2015207950.tif 000003
【図２】
2015207950.tif 000004
【図３】
2015207950.tif 000005
【図４】
2015207950.tif 000006
【図５】
2015207950.tif 000007
【図６】
2015207950.tif 000008
【図７】
2015207950.tif 000009
【図８】
2015207950.tif 000010
【図９】
2015207950.tif 000011
【図１０】
2015207950.tif 000012
【図１１】
2015207950.tif 000013
【図１２】
2015207950.tif 000014
【図１３】
2015207950.tif 000015
【図１４】
2015207950.tif 000016
【図１５】
2015207950.tif 000017
【図１６】
2015207950.tif 000018
【図１７】
2015207950.tif 000019
【図１８】
2015207950.tif 000020