(57)【要約】【課題】再構成可能回路において、複数の再構成領域とＳＲＡＭとのポート間の配線長が異なると、各再構成領域でのＳＲＡＭアクセスレイテンシが異なってしまう。【解決手段】再構成可能回路において、ＳＲＡＭと再構成領域を接続する回路を、どの再構成領域でも同一のレイテンシとするように構成する。あるいは、ある処理に対して、各再構成領域で異なる回路からコンフィグデータを作成し、どの再構成領域でも同一の処理レイテンシとなるようにする。【選択図】図２
2015207832.tif 000002
【特許請求の範囲】
【請求項１】
回路構成を、再構成領域ごとに再構成可能な再構成可能回路と、
ＳＲＡＭと、
前記各再構成領域と前記ＳＲＡＭとを接続する、再構成可能回路で構成した遅延調整回路と、
前記再構成可能回路および前記遅延調整回路の再構成を制御する再構成制御手段とを有し、
前記再構成制御手段は、前記各再構成領域から前記ＳＲＡＭへのアクセスレイテンシが同一となるように、前記遅延調整回路を再構成することを特徴とする、再構成可能回路を含む電子装置。
【請求項２】
前記再構成可能回路は動的再構成可能回路であり、前記遅延調整回路は静的再構成可能回路であることを特徴とする請求項１に記載の再構成可能回路を含む電子装置。
【請求項３】
前記遅延調整回路は、前記各再構成可能回路に、それぞれのアクセスレイテンシが同一となるように分散して配置されることを特徴とする請求項１に記載の再構成可能回路を含む電子装置。
【請求項４】
前記遅延調整回路は、前記各再構成領域と前記ＳＲＡＭとの間の配線遅延に応じた段数のフリップフロップにより生じるアクセスレイテンシを、前記各再構成領域と前記ＳＲＡＭとの間で同一とするためのフリップフロップとを含むことを特徴とする請求項１乃至３のいずれか一項に記載の再構成可能回路を含む電子装置。
【請求項５】
前記再構成制御手段は、前記各再構成領域の位置と処理回路とに応じたコンフィグデータを保存し、選択した前記再構成領域と、実行する処理内容から特定した処理回路とに応じて選択したコンフィグデータにより前記各再構成領域の回路を再構成することを特徴とする請求項４に記載の再構成可能回路を含む電子装置。
【請求項６】
前記再構成制御手段は、処理回路に応じた第１のコンフィグデータと、前記各再構成領域の位置と前記アクセスレイテンシの調整の必要性とに応じて前記遅延調整回路を再構成するための第２のコンフィグデータとを保存し、実行する処理内容から特定した処理回路に応じて選択した第１のコンフィグデータにより前記各再構成領域の回路を再構成し、選択した前記再構成領域と前記アクセスレイテンシの調整の必要性とに応じて選択した第２のコンフィグデータにより前記遅延調整回路を再構成することを特徴とする請求項４に記載の再構成可能回路を含む電子装置。
【請求項７】
前記遅延調整回路にはさらに、組み合わせ回路を含むことを特徴とする請求項３乃至６のいずれか一項に記載の再構成可能回路を含む電子装置。
【請求項８】
前記電子装置は画像処理装置であり、
前記再構成制御手段は、処理対象のジョブに含まれた画像処理機能を実行する画像処理回路を前記各再構成領域に再構成し、
再構成された画像処理回路により、前記処理対象のジョブに含まれた前記画像処理機能を実行することを特徴とする請求項１乃至７のいずれか一項に記載の再構成可能回路を含む電子装置。
【請求項９】
前記再構成制御手段は、ジョブごとに前記画像処理回路を前記各再構成領域に再構成することを特徴とする請求項８に記載の再構成可能回路を含む電子装置。
【請求項１０】
処理対象のジョブから、処理回路により実行する画像処理機能を特定する手段と、
再構成可能回路に含まれた複数の再構成領域のうちから、使用可能な再構成領域を判定する手段と、
特定した前記画像処理機能に応じたコンフィグデータを特定する手段と、
特定した前記コンフィグデータを用いて、前記画像処理機能に応じた処理回路を判定した前記再構成領域に再構成する再構成制御手段と、
再構成した前記処理回路を用いて、特定した前記画像処理機能を実行する手段と
を有することを特徴とする画像処理装置。
【請求項１１】
前記再構成可能回路にはさらに、前記各再構成領域とＳＲＡＭとを接続する遅延調整回路を含み、
前記再構成制御手段は、前記各再構成領域から前記ＳＲＡＭへのアクセスレイテンシを等しくする必要がある場合には、前記遅延調整回路を、前記各再構成領域から前記ＳＲＡＭへのアクセスレイテンシを等しくするための回路要素を含むよう再構成することを特徴とする請求項１０に記載の画像処理装置。
【請求項１２】
画像処理装置により実行される画像処理方法であって、
処理対象のジョブから、処理回路により実行する画像処理機能を特定する工程と、
再構成可能回路に含まれた複数の再構成領域のうちから、使用可能な再構成領域を判定する工程と、
特定した前記画像処理機能に応じたコンフィグデータを特定する工程と、
特定した前記コンフィグデータを用いて、前記画像処理機能に応じた処理回路を判定した前記再構成領域に再構成する再構成制御工程と、
再構成した前記処理回路を用いて、特定した前記画像処理機能を実行する工程と
を有することを特徴とする画像処理方法。
【請求項１３】
前記再構成可能回路にはさらに、前記各再構成領域とＳＲＡＭとを接続する遅延調整回路を含み、
前記再構成制御工程では、前記各再構成領域から前記ＳＲＡＭへのアクセスレイテンシを等しくする必要がある場合には、前記遅延調整回路を、前記各再構成領域から前記ＳＲＡＭへのアクセスレイテンシを等しくするための回路要素を含むよう再構成することを特徴とする請求項１２に記載の画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、再構成可能回路を含む電子装置及び画像処理装置及び画像処理方法に関する。
【背景技術】
【０００２】
内部の論理回路構成を変更可能なＰＬＤ（ＰＲＯＧＲＡＭＭＡＢＬＥ  ＬＯＧＩＣ  ＤＥＶＩＣＥ）やＦＰＧＡ（ＦＩＥＬＤ  ＰＲＯＧＲＡＭＭＡＢＬＥ  ＧＡＴＥ  ＡＲＲＡＹ）などの再構成可能回路が良く知られている。一般的に、ＰＬＤやＦＰＧＡは起動時に不揮発性メモリへ格納された論理コンフィグデータ（以下、コンフィグデータ）を内部の揮発性メモリであるコンフィギュレーションメモリへ書き込み、内部論理ブロックの機能を切り替えることで再構成が実現される。再構成には、電源投入時にコンフィグデータをコンフィギュレーションメモリに書き込むことで再構成を行う静的再構成と、回路が動作中に論理回路構成を変更することが可能な動的再構成とがある。
【０００３】
また、ＦＰＧＡには、チップ全体ではなく特定の領域だけを書き換えることが可能なものがあり、このような書き換えを部分再構成という。特に、動作中の他の回路を停止しない状態で部分再構成を行うことを動的部分再構成という。動的部分再構成では、動的再構成時にコンフィギュレーションメモリ全体を書き換えるのではなく、コンフィギュレーションメモリ領域の一部のみを書き換えることで、ＦＰＧＡ内部の論理ブロックの部分的な再構成を実現することが可能となる。このような動的部分再構成技術を用いることで、一つの領域に複数の回路を切り替えて実装することが可能となるため、ハードウェアリソースの時分割多重化を行い論理ブロックで実現する機能を変更することができる。
【０００４】
特許文献１では、粗粒度の再構成可能回路と細粒度の再構成可能回路という二種類の再構成可能回路を有する情報処理装置が記載されている。再構成時間の短い粗粒度の再構成可能回路では帰還回路のレイテンシが大きいため性能低下が発生する場合、再構成の時間が長いもののレイテンシの小さい細粒度の再構成可能回路で再構成をおこない、性能低下を防ぐ。
【０００５】
また、従来、異なるＳＲＡＭアクセスレイテンシで回路が動作させるために、アクセスレイテンシを設定するレジスタを有する回路が存在する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−２０５１０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、複数の再構成される処理回路がＳＲＡＭを使用する場合、各再構成領域のポートからＳＲＡＭのポートまでの配線長が大きく異なってしまう可能性がある。結果として、再構成された処理回路のＳＲＡＭアクセスレイテンシが各再構成領域で異なってしまう。ある処理のトリガ（例えば、水平同期信号）で処理を開始して、所望の遅延（例えば、水平同期信号から有効な画像データを出力までの期間）でその結果が得たい場合がある。再構成された処理回路のＳＲＡＭアクセスレイテンシが各再構成領域で異なってしまうと、所望の遅延で処理結果を得ることが困難である。
【０００８】
特許文献１に開示される技術では、動的再構成される回路内でのレイテンシ低下は防げるが、再構成領域とＳＲＡＭの配線遅延に関わるレイテンシを短くすることはできない。
【０００９】
また、ソフトウェアにより、レジスタでＳＲＡＭアクセスレイテンシを設定する回路では、次のような問題がある。再構成可能回路では、コンフィグデータの再生成の際、再構成領域とＳＲＡＭの配置の位置関係がコンフィグデータ再生成前とは異なり、ＳＲＡＭアクセスレイテンシも異なるものとなる可能性がある。ソフトウェアによるレジスタ設定での対応では、コンフィグデータの再生成に応じてレジスタ設定のソフトウェアも変更しなければならない。このようなことから、ソフトウェアに依らない解決手段が必須である。
【００１０】
このように、再構成された処理回路のＳＲＡＭアクセスレイテンシが各再構成領域で異なってしまう場合、各再構成領域の処理回路のレイテンシを同一にするなど、再構成可能回路のＳＲＡＭアクセスレイテンシを調整することが困難である。
【００１１】
本発明は上記従来例に鑑みて成されたもので、再構成可能回路のＳＲＡＭアクセスレイテンシを調整する、特に遅延させることで調整することができる再構成可能回路を含む電子装置及び画像処理装置及び画像処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するために本発明は以下の構成を有する。
【００１３】
すなわち、回路構成を、再構成領域ごとに再構成可能な再構成可能回路と、
ＳＲＡＭと、
前記各再構成領域と前記ＳＲＡＭとを接続する、再構成可能回路で構成した遅延調整回路と、
前記再構成可能回路および前記遅延調整回路の再構成を制御する再構成制御手段とを有し、
前記再構成制御手段は、前記各再構成領域から前記ＳＲＡＭへのアクセスレイテンシが同一となるように、前記遅延調整回路を再構成することを特徴とする、再構成可能回路を含む電子装置。
【００１４】
あるいは他の側面によれば本発明は以下の構成を有する。すなわち、処理対象のジョブから、処理回路により実行する画像処理機能を特定する手段と、
再構成可能回路に含まれた複数の再構成領域のうちから、使用可能な再構成領域を判定する手段と、
特定した前記画像処理機能に応じたコンフィグデータを特定する手段と、
特定した前記コンフィグデータを用いて、前記画像処理機能に応じた処理回路を判定した前記再構成領域に再構成する再構成制御手段と、
再構成した前記処理回路を用いて、特定した前記画像処理機能を実行する手段と
を有することを特徴とする画像処理装置。
【発明の効果】
【００１５】
本発明によれば、再構成された処理回路のＳＲＡＭアクセスレイテンシを調整することができる。このため、たとえばＳＲＡＭアクセスレイテンシが各再構成領域で異なってしまう場合でも、各再構成領域に構成された処理回路の処理のレイテンシを同一にすることができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態１に係る画像処理装置の構成の一例を示すブロック図である。
【図２】本発明の実施形態１に係る再構成可能回路の構成の一例を示すブロック図である。
【図３】本発明の実施形態１に係る再構成可能回路のＳＲＡＭ  ｓｅｌｅｃｔｏｒの構成の一例を示すブロック図である。
【図４】本発明の実施形態１に係る再構成可能回路のＳＲＡＭ  ｓｅｌｅｃｔｏｒの動作を示すタイミングチャートである。
【図５】本発明の実施形態２に係る再構成可能回路のＳＲＡＭ  ｓｅｌｅｃｔｏｒの構成の一例を示すブロック図である。
【図６】本発明の実施形態２に係る再構成可能回路のコンフィグデータの元となる処理回路の構成の一例を示すブロック図である。
【図７】本発明の実施形態２に係る再構成可能回路のコンフィグデータの構成の一例を示す図である。
【図８】本発明の実施形態２に係る画像処理装置の再構成可能回路の再構成を示すフローチャートである。
【図９】本発明の実施形態２に係る画像処理装置の再構成可能回路の再構成フローにおける再構成すべき領域の決定処理のフローチャートである。
【図１０】本発明の実施形態２に係る画像処理装置の再構成可能回路の再構成フローにおけるコンフィグデータの決定処理のフローチャートである。
【図１１】本発明の実施形態３に係る再構成可能回路のコンフィグデータの元となる処理回路の構成の一例を示すブロック図である。
【図１２】本発明の実施形態３に係る再構成可能回路のコンフィグデータの元となる処理回路の動作を示すタイミングチャートである。
【図１３】本発明の実施形態４に係る再構成可能回路のコンフィグデータの元となる処理回路の構成の一例を示すブロック図である。
【図１４】本発明の実施形態４に係る再構成可能回路のコンフィグデータの元となる処理回路の構成の他の一例を示すブロック図である。
【図１５】本発明の実施形態４に係る再構成可能回路のコンフィグデータの構成の一例を示す図である。
【図１６】本発明の実施形態４に係る画像処理装置の再構成可能回路の再構成を示すフローチャートである。
【図１７】本発明の実施形態４に係る画像処理装置の再構成可能回路の再構成フローにおける、１００３１に対するコンフィグデータの決定処理のフローチャートである。
【図１８】本発明の実施形態４に係る画像処理装置の再構成可能回路の再構成フローにおける、１００３２に対するコンフィグデータの決定処理のフローチャートである。
【発明を実施するための形態】
【００１７】
以下、本発明を実施するための形態について図面を用いて説明する。
＜実施形態１＞
［画像処理装置の構成］
図１は、本発明の実施形態１に係る電子装置である画像処理装置の装置構成を説明するブロック図である。本実施形態の画像処理装置１００は、ユーザが各種の操作および設定変更を行うための操作部１０３と、操作部１０３からの指示に従い画像情報を読み取るスキャナ部１０９と、画像データを用紙に印刷するプリンタ部１０７とを有する。スキャナ部１０９は、スキャナ部１０９を制御する図示しないＣＰＵや原稿読取を行うための図示しない照明ランプや走査ミラーなどを有する。プリンタ部１０７は、プリンタ部１０７の制御を行う図示しないＣＰＵや画像形成や定着を行うための図示しない感光体ドラムや定着器を有する。
【００１８】
また、画像処理装置１００は、画像処理装置１００の画像処理を行うコントローラとして、再構成可能回路１０００を有する。ＣＰＵ１０１が再構成可能回路１０００や再構成を制御するコンフィグコントローラ１３０などといった、この画像処理装置の各ユニットを制御するための制御ソフトウェアを実行する。なお、再構成可能回路１０００が画像処理のみを備えていることはあくまで一例にすぎず、再構成可能回路１０００中に他の回路を含んでもよい。
【００１９】
また、画像処理装置１００は、ＣＰＵ１０１が実行するブートプログラム、および、再構成可能回路１０００をコンフィギュレーションする為のコンフィグデータが格納されているＲＯＭ１０４を有する。また、画像処理装置１００は、ＣＰＵ１０１が動作するためのシステムワークメモリであり、かつ画像データを一時記憶するための画像メモリでもあるＲＡＭ１１１を有する。
【００２０】
また、画像処理装置１００は、スキャナ部１０９から画像データが入力されるスキャナＩ／Ｆ１０８と、プリンタへ画像データを出力するプリンタＩ／Ｆ１０６とを有する。再構成可能回路１０００、及びスキャナＩ／Ｆ１０８、プリンタＩ／Ｆ１０６は、処理される画像データを転送するための画像バス１２１に接続される。
【００２１】
また、画像処理装置１００は、画像処理装置の動作を統括的に制御するＣＰＵ１０１を備える。また、画像処理装置１００は、ネットワークＩ／Ｆ１０２を介し、ネットワーク上の図示しない汎用コンピュータと通信（送受信）を行う。また、画像処理装置１００は、ＵＳＢＩ／Ｆ１１４を介し、画像処理装置１００と接続された図示しない汎用コンピュータと通信（送受信）を行う。また、画像処理装置１００は、ＦＡＸＩ／Ｆ１１５を介し、公衆回線網と接続し、図示しない他の画像処理装置やファクシミリ装置と通信（送受信）を行う。ＦＡＸ  Ｉ／Ｆには公衆回線網からの呼出信号（ＣＩ信号：ＣＡＬＬ  ＩＮＤＩＣＡＴＯＲ）を検知する図示しないＣＩ検知回路がある。画像処理装置１００は、ＣＰＵ１０１が実行するブートプログラム、および、再構成可能回路１０００をコンフィギュレーションするためのコンフィグデータが格納されているＲＯＭ１０４への書き込み、読み出し動作を制御するＲＯＭ  Ｉ／Ｆ１１２を有する。また、画像処理装置１００は、ＣＰＵ１０１、ネットワークＩ／Ｆ１０２、操作部１０３、ＲＯＭ  Ｉ／Ｆ１１２、コンフィグコントローラ１３０、再構成可能回路１０００を相互に接続するシステムバス１２０を有する。ＣＰＵ１０１は、再構成可能回路１０００内にコンフィギュレーションされた画像処理パラメータと、スキャナＩ／Ｆ１０８、プリンタＩ／Ｆ１０６のパラメータ設定を、システムバス１２０を介して行う。また、画像処理装置１００は、ＲＡＭ１１１への書き込み、読み出し動作を制御するメモリコントローラ１１０を有する。メモリコントローラ１１０は、システムバス１２０および画像バス１２１に接続され、画像バス１２１に接続されたバスマスタのＲＡＭ１１１へのアクセスと、システムバス１２０に接続されたバスマスタのＲＡＭ１１１アクセスとを、排他的に切り替える。
【００２２】
[再構成可能回路の構成例]
次に、図２を用いて本実施形態に係る画像処理装置における再構成可能回路１０００の構成の例を説明する。再構成可能回路１０００は、コンフィグコントローラ１３０からのＲＯＭ１０４に格納されたコンフィグデータを受け取り、再構成可能回路１０００の再構成を制御する再構成制御部１００１を有する。また、再構成可能回路１０００は、複数の再構成領域１００３と、システムバス１２０および画像バス１２１の入出力データと再構成領域１００３の入出力を接続するバス１００２を有する。さらに、再構成可能回路１０００は、スタティックＲＡＭ（ＳＲＡＭ）部１００５と、各再構成領域１００３からＳＲＡＭ部１００５のアクセスを可能とするＳＲＡＭ  ｓｅｌｅｃｔｏｒ（ＳＲＡＭセレクタあるいは遅延調整回路とも呼ぶ）１００４を有する。図２において、Ｓｔａｔｉｃ  Ｌｏｇｉｃと記された領域は、電源投入時にのみコンフィグデータにより再構成される、静的再構成領域を意味する。また、再構成領域１００３（ＡＲＥＡ＃０）の配置位置がＳＲＡＭ部１００５の配置位置に最も近く、再構成領域１００３（ＡＲＥＡ＃１、＃２、＃３）の順でＳＲＡＭ部１００５から離れた位置に配置される例を示している。構成領域１００３はこの例では動的再構成可能回路である。
【００２３】
図３は、本実施形態に係る再構成可能回路１０００のＳＲＡＭ  ｓｅｌｅｃｔｏｒ１００４の構成例を説明する図である。再構成領域１００３（ＡＲＥＡ＃０）とＳＲＡＭ部１００５とは、対応するポートが直結できるので、配線遅延により必要なＦＦは必要ない。それに対して、再構成領域１００３（ＡＲＥＡ＃１）とＳＲＡＭ部１００５間は、ＳＲＡＭ部１００５からのリードデータが、１クロックでは再構成領域１００３（ＡＲＥＡ＃１）へ到達しない。そのため、図３のフリップフロップ（以下、ＦＦ）１をＳＲＡＭリードデータの経路上に挿入しなければならない。再構成領域１００３（ＡＲＥＡ＃２）とＳＲＡＭ部１００５間は、ＳＲＡＭ部１００５のリードデータと制御信号（アドレス等）が、１クロックでは再構成領域１００３（ＡＲＥＡ＃２）へ到達しない。そのため、図３のＦＦ２及びＦＦ３をそれぞれ、ＳＲＡＭリードデータと制御信号の経路上に挿入しなければならない。さらに、最も離れた、再構成領域１００３（ＡＲＥＡ＃３）に関しては、リードデータが２クロック、制御信号（アドレス等）が１クロックでは、再構成領域１００３（ＡＲＥＡ＃３）へ到達しない。そのため、図３のＦＦ４及びＦＦ５とＦＦ６をそれぞれ、ＳＲＡＭリードデータの経路と制御信号の経路上に挿入しなければならない。図３のＦＦ１０からＦＦ１４が、それぞれの再構成領域１００３に対するＳＲＡＭアクセスレイテンシを同一にするために挿入される回路要素となるＦＦである。再構成領域１００３（ＡＲＥＡ＃３）に関するレイテンシが、制御信号およびリードデータ共に最大であるため、その他の再構成領域１００３とＳＲＡＭとの間の信号線にも、そのレイテンシに合わせるべくフリップフロップ１０−１４が挿入されている。
【００２４】
なお図３において、各再構成領域１００３からの制御信号は、選択回路２０を介してＳＲＡＭセレクタ１００４から出力され、ＳＲＡＭ１００５に入力される。また制御信号は、アドレス信号、チップセレクト信号、ライトイネーブル信号、ライトデータ（書き込みデータ）を含んでいる。そのた図３では便宜的に制御信号およびリードデータとも１ビット信号として表しているが、それぞれの信号の幅に応じたフリップフロップが各信号に挿入される。
【００２５】
図４のタイミングチャートを用いて、本実施形態に係る再構成可能回路１０００のＳＲＡＭ  ｓｅｌｅｃｔｏｒ１００４の動作を説明する。図４（Ａ）は再構成領域１００３（ＡＲＥＡ＃０）からＳＲＡＭ部１００５へのアクセスを示す。再構成領域１００３（ＡＲＥＡ＃０）に構成された処理回路が、タイミングＴ０で、ＳＲＡＭ制御信号を出力する。ＦＦ１０により、図３の位置３０におけるＳＲＡＭ制御信号は１クロック遅れたＴ１で出力される。ＳＲＡＭ部１００５はＴ１でＳＲＡＭ制御信号を受け取り、Ｔ２でリードデータを出力する。図３の位置３０において、リードデータはＴ２で出力される。二つのＦＦ１１により、再構成領域１００３（ＡＲＥＡ＃０）のポートでは、２クロック遅れたＴ４でリードデータを受け取る。
【００２６】
図４（Ｂ）は再構成領域１００３（ＡＲＥＡ＃１）からＳＲＡＭ部１００５へのアクセスを示す。再構成領域１００３（ＡＲＥＡ＃１）に構成された処理回路がＴ０で、ＳＲＡＭ制御信号を出力する。ＦＦ１２により、図３の位置３１におけるＳＲＡＭ制御信号は１クロック遅れたＴ１で出力される。ＳＲＡＭ部１００５はＴ１でＳＲＡＭ制御信号を受け取り、Ｔ２でリードデータを出力する。ＦＦ１により、図３の位置３１において、リードデータは１クロック遅れたＴ３で出力される。ＦＦ１３により、再構成領域１００３（ＡＲＥＡ＃１）のポートでは、１クロック遅れたＴ４でリードデータを受け取る。
【００２７】
図４（Ｃ）は再構成領域１００３（ＡＲＥＡ＃２）からＳＲＡＭ部１００５へのアクセスを示す。再構成領域１００３（ＡＲＥＡ＃２）に構成された処理回路がＴ０で、ＳＲＡＭ制御信号を出力する。図３の位置３２において、ＳＲＡＭ制御信号はＴ０で出力される。ＦＦ２により、ＳＲＡＭ部１００５は１クロック遅れたＴ１でＳＲＡＭ制御信号を受け取り、Ｔ２でリードデータを出力する。ＦＦ３により、図３の位置３２におけるリードデータは1クロック遅れたＴ３で出力される。ＦＦ１４により、再構成領域１００３（ＡＲＥＡ＃２）のポートでは、１クロック遅れたＴ４でリードデータを受け取る。
【００２８】
図４（Ｄ）は再構成領域１００３（ＡＲＥＡ＃３）からＳＲＡＭ部１００５へのアクセスを示す。再構成領域１００３（ＡＲＥＡ＃３）に構成された処理回路がＴ０で、ＳＲＡＭ制御信号を出力する。図３の位置３３において、ＳＲＡＭ制御信号はＴ０で出力される。ＦＦ４により、ＳＲＡＭ部１００５は１クロック遅れたＴ１でＳＲＡＭ制御信号を受け取り、Ｔ２でリードデータを出力する。ＦＦ５とＦＦ６により、図３位置の３３におけるリードデータは２クロック遅れたＴ４で出力される。再構成領域１００３（ＡＲＥＡ＃３）のポートでは、Ｔ４でリードデータを受け取る。
【００２９】
以上のように、どの再構成領域１００３（ＡＲＥＡ＃０−３）においても、Ｔ０でＳＲＡＭ部１００５へのリードアクセスを開始すれば、Ｔ４でリードデータを受け取ることができる。すなわち、ＳＲＡＭ  ｓｅｌｅｃｔｏｒ１００４により、各再構成領域１００３（ＡＲＥＡ＃０−３）からＳＲＡＭ部１００５へのＳＲＡＭアクセスレイテンシは同一となる。
【００３０】
以上の構成により、ＳＲＡＭ１００５と各再構成領域１００３との位置関係に起因する信号遅延を、静的再構成可能回路であるＳＲＡＭセレクタ１００４により調整して、各再構成領域１００３によるＳＲＡＭに対する信号入出力の同期を維持できる。また再構成領域１００３（ＡＲＥＡ＃０）ないし再構成領域１００３（ＡＲＥＡ＃３）が動的に再構成されたとしても、この同期を維持できる。一方、各再構成領域１００３によるＳＲＡＭの入出力が非同期で良い場合には、ＳＲＡＭセレクタ１００４を静的再構成して、レイテンシ調整用のフリップフロップ１０乃至１４を取り除くことで、より迅速な処理が可能となる。なお、たとえば、複数の同一の処理回路により同一の処理を並列に行うなど、複数の回路の処理を同期させる場合に、各再構成領域のＳＲＡＭレイテンシを等しくする必要性があると判定できる。そこで、たとえば複数の同一の処理回路を再構成する場合などは、アクセスレイテンシが等しくなるように再構成すると判断できる。これは他の実施形態、たとえば後述する実施形態４などでも同様である。なお本例における処理回路は、たとえば画像処理を行うための画像処理回路である。画像処理回路には種々の処理が含まれるが、フィルタ処理はその主たる処理であり、並列処理になじみ、アクセスレイテンシの等価が有効である。
【００３１】
そして、本実施形態の（また他の実施形態でも）画像処理装置では、再構成領域に、処理対象のジョブにより必要とされる画像処理機能をハードウェアで実装でき、しかも画像処理機能に応じてハードウェア構成を再構成することができる。このため、限られたハードウェア資源により時分割的に複数の機能を実現でき、ハードウェアの使用効率を高めることができる。
＜実施形態２＞
実施形態１では、ＳＲＡＭ  ｓｅｌｅｃｔｏｒ１００４により、各再構成領域１００３（ＡＲＥＡ＃０−３）からＳＲＡＭ部１００５へのＳＲＡＭアクセスレイテンシを同一となるようにした。これに対し、実施形態２では、再構成領域１００３に再構成される処理回路のコンフィグデータを、各再構成領域１００３で異なるものとする。それにより、再構成された処理回路のＳＲＡＭアクセスレイテンシが同一にする。実施形態２は、図１で示した実施形態１と同様の画像処理装置構成である。すなわち、本実施形態では、実施形態１のＳＲＡＭセレクタに含まれていた遅延調整回路が、各再構成領域に分散して配置されている。
【００３２】
[再構成可能回路の構成例]
実施形態２の再構成可能回路１０００の構成は、図２で示した実施形態１と同様である。図５は、本実施形態に係る再構成可能回路１０００のＳＲＡＭ  ｓｅｌｅｃｔｏｒ１００４の構成例を説明する図である。実施形態１と異なり、配線遅延により必要なＦＦ１乃至ＦＦ６のみを含む。
【００３３】
図６は各再構成領域１００３（ＡＲＥＡ＃０−３）に構成される回路構成の例を示す図である。図６において、処理回路４０は処理内容に対応する処理回路を示す。処理回路４０は、例えば本実施形態と実施形態１とで同一の回路を構成する場合に、実施形態１において再構成領域１００３に構成される回路に相当する。図６（Ａ）は再構成領域１００３（ＡＲＥＡ＃０）に構成される回路構成の例であり、ＦＦ１０'とＦＦ１１'は図３におけるＦＦ１０とＦＦ１１に対応する。図６（Ｂ）は再構成領域１００３（ＡＲＥＡ＃１）に構成される回路構成の例であり、ＦＦ１２'とＦＦ１３'は図３におけるＦＦ１２とＦＦ１３に対応する。また、図６（Ｃ）は再構成領域１００３（ＡＲＥＡ＃２）に構成される回路構成の例であり、ＦＦ１４'は図３におけるＦＦ１４に対応する。さらに、図６（Ｄ）は再構成領域１００３（ＡＲＥＡ＃３）に構成される回路構成の例である。このように、レイテンシ調整用のＦＦが、静的再構成領域であるＳＲＡＭセレクタ１００４から、動的再構成領域である再構成領域１００３に移されている。
【００３４】
[コンフィグデータの構成例]
図７は、本実施形態に係るＲＯＭ１０４に格納される再構成可能回路１０００のコンフィグデータの構成例である。図７に示すように、ＲＯＭ１０４には画像処理装置に搭載するすべての処理を実現可能であり、ある処理に対して、再構成可能回路１０００の再構成領域１００３ごとに再構成を行うために必要なコンフィグデータが格納される。
【００３５】
図７の回路ｎｍ（ｎは１からＮ、ｍは０から３）のコンフィグデータは、処理ｎに対応する処理回路ｎ（図６の処理回路４０）とＡＲＥＡ＃ｍに対応するＦＦ（図６（Ａ）から図６（Ｄ）の処理回路４０以外の部分）とを組み合わせた回路を再構成するためのコンフィグデータである。
【００３６】
[再構成制御フロー]
図８は本実施形態に係る画像処理装置１００の再構成可能回路１０００の再構成制御を示すフローチャートである。図８のフローチャートの各手順は、ＣＰＵ１０１により実行される。本制御フローは、電源投入後またはスリープ復帰後、操作部１０３によるジョブ開始の指示がされた時点で開始される。
【００３７】
ステップＳ１００１では、操作部１０３においてジョブ指定がなされたかどうかを判定する。ジョブ指定がされている場合（ステップＳ１００１のＹｅｓ）、ステップＳ１００２へ移行する。ジョブ指定には必要とされる処理内容が含まれる。ステップＳ１００２では、ＣＰＵ１０１が再構成領域１００３のうち、再構成の対象となる再構成領域を（ＡＲＥＡ＃ｎ）決定する。この決定処理の詳細は後述する。ステップＳ１００３では、ＣＰＵ１０１がジョブで要求される処理内容とステップＳ１００２で決定した再構成領域（ＡＲＥＡ＃ｎ）から、例えば図７のごとくＲＯＭ１０４に格納されたコンフィグデータのうち、どのコンフィグデータを決定された再構成領域に使用するかを決定する。この決定処理の詳細は後述する。ステップＳ１００４では、ＣＰＵ１０１がコンフィグコントローラ１３０に対し、再構成開始を指示する。これにより、コンフィグコントローラ１３０はＲＯＭ１０４からステップＳ１００３で決定したコンフィグデータを使って、ステップＳ１００２で決定した再構成領域（ＡＲＥＡ＃ｎ）の回路を書き換える。ステップＳ１００５では、再構成領域（ＡＲＥＡ＃ｎ）の回路の書き換え完了を待つ。書き換えが終了した場合（ステップＳ１００５のＹｅｓ）、ステップ１００６へ移行する。ステップＳ１００６では、次の再構成が必要であるかを判定する。必要がない場合（ステップＳ１００６のＮｏ）、再構成を終了する。一方、必要ががある場合（ステップＳ１００６のＹｅｓ）、ステップＳ１００２へ移行する。なお、図９で説明するように、本実施形態の再構成領域の選択は、いずれかの再構成領域が使用可能であることを前提として行われる。そこで、ステップＳ１００６では、処理中の（あるいはこれから処理する）ジョブで要求されるさらなる処理内容があり、かつ、使用可能な再構成領域がある場合に、再構成の必要性があると判定する。ジョブで要求されるさらなる処理（ただし再構成可能回路１０００により実現できる処理）があることは、たとえばジョブの記述中に、そこで行われる処理内容を示す識別情報を含めておくことで知ることができる。さらに、ジョブに含まれる処理の進捗を示す情報を例えばＲＡＭ１１１等に保持しておく。さらにたとえば、図７に示したコンフィグデータを、処理内容を示す識別情報と関連付けてＲＯＭに格納しておき、それを参照することで、ジョブに含まれた未実行の処理内容が、再構成可能回路１０００により実現できるか否かを判定できる。さらに、ジョブの進行に応じて、処理により使用されている再構成領域をマークしてＲＡＭ等に記憶し、実行が完了したならそのマークを解除することで、使用中の再構成用域と、解放され再利用可能な再構成領域を知ることができる。このマークは、たとえば図８のステップＳ１００２で使用するものと決定された再構成領域に対してセットされ、ジョブの進捗による処理の完了に応じてリセットされる。なお、実行の完了とは、たとえば処理中のジョブにおける最後の処理の完了という意味である。
【００３８】
図８の手順は、いったん開始されたならジョブの進捗とは独立して進行してよい。これにより、ジョブの進捗を先取りして、ジョブに必要な回路を再構成できる。ただし、再利用可能な再構成領域がないために進行が妨げられることはある。一方ジョブの実行は。図８の手順、特にステップＳ１００５と同期して行われる必要がある。たとえば、ステップＳ１００５で着目処理内容に応じた回路の再構成が完了したと判定されてから、当該着目処理が実行可能となるからである。
【００３９】
図９は、図８の再構成制御フローのステップＳ１００２から呼ばれる再構成領域の決定処理を示すフローチャートである。ステップＳ２００１では、ＣＰＵ１０１が、再構成領域（ＡＲＥＡ＃０）が使用可能であるかを判断する。使用可能である状態とは、換言すれば当該再構成領域がスケジュールされていないことである。これはたとえば上述したように、再構成領域ごとに、再構成済みであるか、あるいは解放された状態かを示す情報をマークすることで実現できる。再構成領域は、たとえばジョブの終了の都度、解放して、解放されたこと（すなわち使用可能であること）を示す情報が再構成領域ごとにセットされる。再構成領域（ＡＲＥＡ＃０）が使用可能であれば（ステップＳ２００１のＹｅｓ）、ステップＳ２００４へ移行し、ＡＲＥＡ＃０を再構成領域として決定して、図８の再構成制御フローへ戻る。このとき、当該再構成領域について、使用ができない状態であることを示す情報をセットする。再構成領域（ＡＲＥＡ＃０）が使用中（すなわち使用可能でない）であれば（ステップＳ２００１のＮｏ）、ステップＳ２００２へ移行する。ステップＳ２００２では、ＣＰＵ１０１が、再構成領域（ＡＲＥＡ＃１）が使用可能であるかを判断する。再構成領域（ＡＲＥＡ＃１）が使用可能であれば（ステップＳ２００２のＹｅｓ）、ステップＳ２００５へ移行し、ＡＲＥＡ＃１を再構成領域として決定して、図８の再構成制御フローへ戻る。再構成領域（ＡＲＥＡ＃１）が使用可能でなければ（ステップＳ２００２のＮｏ）、ステップＳ２００３へ移行する。ステップＳ２００３では、ＣＰＵ１０１が、再構成領域（ＡＲＥＡ＃２）が使用可能であるかを判断する。再構成領域（ＡＲＥＡ＃２）が使用可能であれば（ステップＳ２００３のＹｅｓ）、ステップＳ２００６へ移行し、ＡＲＥＡ＃２を再構成領域として決定して、図８の再構成制御フローへ戻る。再構成領域（ＡＲＥＡ＃２）が使用可能でなければ（ステップＳ２００２のＮｏ）、ステップＳ２００７へ移行し、ＡＲＥＡ＃３を再構成領域として決定して、図８の再構成制御フローへ戻る。
【００４０】
図１０は、図８の再構成制御フローのステップＳ１００３から呼ばれるコンフィグデータの決定処理を示すフローチャートである。ステップＳ３００１では、ＣＰＵ１０１がジョブ指定から処理内容を確認する。ここで処理内容を確認するとは、再構成可能回路１０００により実行可能な処理内容を示す識別情報などをジョブチケット等のジョブの記述から読み取ることである。さらにここで読み取るのは、ジョブの先頭から順次処理内容に着目して次に着目すべき処理内容である。着目する処理内容は、図８のステップＳ１００２〜Ｓ１００６のループを１周するごとに次に進められる。ステップＳ３００２では、ＣＰＵ１０１がステップＳ１００２で決定した再構成領域を確認する。なおステップＳ１００２で決定した再構成領域を特定の記憶領域などに格納しておけば、ステップＳ３００２では特段の処理を行う必要はない。
【００４１】
ステップＳ３００３では、ステップＳ３００１で確認した処理内容が処理１（図７）であるかを判断する。処理内容が処理１であれば（ステップＳ３００３のＹｅｓ）、ステップＳ３００４へ移行する。ステップＳ３００４では、ＣＰＵ１０１がステップＳ１００２で決定し、ステップＳ３００２で確認した再構成領域がＡＲＥＡ＃０であるかを判断する。再構成領域がＡＲＥＡ＃０であれば（ステップＳ３００４のＹｅｓ）、ステップＳ３００７へ移行し、回路１０（図７）をコンフィグデータとして決定して、図８の再構成制御フローへ戻る。再構成領域がＡＲＥＡ＃０でなければ（ステップＳ３００４のＮｏ）、ステップＳ３００５へ移行する。ステップＳ３００５では、ＣＰＵ１０１がステップＳ３００２で確認した再構成領域がＡＲＥＡ＃１であるかを判断する。再構成領域がＡＲＥＡ＃１であれば（ステップＳ３００５のＹｅｓ）、ステップＳ３００８へ移行し、回路１１（図７）をコンフィグデータとして決定して、図８の再構成制御フローへ戻る。再構成領域がＡＲＥＡ＃１でなければ（ステップＳ３００５のＮｏ）、ステップＳ３００６へ移行する。ステップＳ３００６では、ＣＰＵ１０１がステップＳ３００２で確認した再構成領域がＡＲＥＡ＃２であるかを判断する。再構成領域がＡＲＥＡ＃２であれば（ステップＳ３００６のＹｅｓ）、ステップＳ３００９へ移行し、回路１２（図７）をコンフィグデータとして決定して、図８の再構成制御フローへ戻る。再構成領域がＡＲＥＡ＃２でなければ（ステップＳ３００６のＮｏ）、ステップＳ３０１０へ移行し、回路１３（図７）をコンフィグデータとして決定して、図８の再構成制御フローへ戻る。ステップＳ３００３で、処理内容が処理１でなければ（ステップＳ３００３のＮｏ）、ステップＳ３０１１へ移行する。
【００４２】
ステップＳ３０１１では、ステップＳ３００１で確認した処理内容が処理２（図７）であるかを判断する。処理内容が処理２であれば（ステップＳ３０１１のＹｅｓ）、ステップＳ３０１２へ移行する。ステップＳ３０１２からステップＳ３０１８までの処理は、ステップＳ３００４からステップＳ３０１０の処理と同様である。これらのステップで、処理内容が処理２である時のコンフィグデータとして、回路２０、２１、２２及び２３（図７）のいずれかを決定して、図８の再構成制御フローへ戻る。ステップＳ３０１１で、処理内容が処理２でなければ（ステップＳ３０１１のＮｏ）、処理内容が処理３であるかの判断へ移行する（不図示）。ＣＰＵ１０１は処理内容が処理１から処理（Ｎ−２）のいずれでもない場合には、ステップＳ３０１９を実行する。
【００４３】
ステップＳ３０１９では、ステップＳ３００１で確認した処理内容が処理（Ｎ−１）であるかを判断する。処理内容が処理（Ｎ−１）であれば（ステップＳ３０１９のＹｅｓ）、処理内容が処理（Ｎ−１）である時のコンフィグデータ決定の処理を行い、図８の再構成制御フローへ戻る（不図示）。処理内容が処理（Ｎ−１）でなければ（ステップＳ３０１９のＮｏ）、ステップＳ３０２０へ移行する。ステップＳ３０２０からステップＳ３０２６までの処理は、ステップＳ３００４からステップＳ３０１０の処理と同様である。これらのステップで、処理内容が処理Ｎである時のコンフィグデータとして、回路Ｎ０、Ｎ１、Ｎ２及びＮ３（図７）のいずれかを決定して、図８の再構成制御フローへ戻る。
【００４４】
以上の再構成フローにより、各再構成領域１００３に処理レイテンシが同一となる回路が再構成されることが可能となる。
【００４５】
なお、図７に示すように、コンフィグデータが、処理内容を示す識別情報と再構成領域を示す識別情報とをインデックスとして関連付けられた二次元テーブルで構成されている場合には、特定した処理内容の識別情報と、ステップＳ１００２で決定した再構成可能領域の識別情報とをインデックスとして、コンフィグデータを特定することができる。
【００４６】
また本実施形態では、ジョブの完了をトリガとして再構成領域を解放しているが、全ての再構成領域が使用中である状態で、さらに再構成領域を必要とする場合もあり得る。そのような場合には、ジョブの記述を参照して、当該上ではもはや使用されることのない処理回路を探し、該当する処理回路があればその再構成領域を使用して、必要な処理回路を再構成する。該当する処理回路がない場合には、たとえば最も長い期間使用されていない処理回路が構成された再構成領域を、次に使用する再構成領域として選択する。もちろんこれらは一例にすぎない。
【００４７】
本実施形態によれば、実施形態１と比べて、レイテンシを調整する回路要素であるフリップフロップも動的再構成の対象となるので、たとえばＳＲＡＭセレクタ１００４を再構成可能ではない固定回路で構成しても、レイテンシを調整できる。また、ＳＲＡＭに対する信号を再構成領域間で同期させる必要の有無が切り替わった場合にも、ＳＲＡＭセレクタの再構成を行う必要がなく、動的再構成のみにより対応することができる。
【００４８】
＜実施形態３＞
実施形態２では、再構成するためのコンフィグデータの元なる回路構成は、図３で示すレイテンシを同一にするためのＦＦ（ＦＦ１０からＦＦ１４）を、ＳＲＡＭセレクタ１００４から移動して処理回路に付加した形であった。実施形態３では、再構成するためのコンフィグデータの元なる回路構成を実施形態２と異なる形とする。実施形態３は、図１で示した実施形態１と同様の画像処理装置構成である。
【００４９】
[再構成可能回路の構成例]
実施形態３の再構成可能回路１０００の構成は、図２で示した実施形態１と同様である。また、本実施形態に係る再構成可能回路１０００のＳＲＡＭ  ｓｅｌｅｃｔｏｒ１００４の構成は、図５で示した実施形態２と同様である。図１１は本実施形態に係る各再構成領域１００３（ＡＲＥＡ＃０−３）に構成される回路構成の例を示す図である。図１１において、処理回路５０は処理内容に対応する処理回路を示す。図１２は図１１の回路構成におけるタイミングチャートであり、これを用いて動作を説明する。
【００５０】
図１１（Ａ）は再構成領域１００３（ＡＲＥＡ＃０）に構成される回路構成の例であり、図１２（Ａ）がこの回路でのタイミングチャートである。再構成領域１００３（ＡＲＥＡ＃０）に構成された処理回路５０が、Ｔ０で、ＳＲＡＭ制御信号を出力する。この時の信号６０Ａには、パルスＣＤ０が出力される。再構成領域１００３（ＡＲＥＡ＃０）では、１クロック後のＴ１でＳＲＡＭリードデータを入力する。このリードデータとＦＦ７０で１クロックだけ遅延したパルスＣＤ０からパルスＣＤ１が生成され、信号６１Ａに出力される（Ｔ１）。ＣＤ１は直列に接続された３個のＦＦ７２Ａにより、３クロック後のＴ４で信号６２Ａに出力される。なお図１１（Ａ）中、Ｃｏｍｂｉｎａｔｉｏｎ（  ）と記載した回路は、フリップフロップやラッチ等を含まない組み合わせ回路であり、論理的には遅延のない回路を示す。組み合わせ回路の内容は処理に応じたものであってよい。きわめて簡単な例としては、Ｃｏｍｂｉｎａｔｉｏｎ（０）は、ゲートのない結線であり、Ｃｏｍｂｉｎａｔｉｏｎ（１）は、ＦＦ７０の出力とＳＲＡＭリードデータとを入力とする２入力アンドゲートを含む。もちろん、複雑な組み合わせ回路を処理に応じて用意することもできる。図１１（Ｂ）〜図１１（Ｃ）についても同様である。
【００５１】
図１１（Ｂ）は再構成領域１００３（ＡＲＥＡ＃１）に構成される回路構成の例であり、図１２（Ｂ）がこの回路でのタイミングチャートである。再構成領域１００３（ＡＲＥＡ＃１）に構成された処理回路５０が、Ｔ０で、ＳＲＡＭ制御信号を出力する。この時の信号６０Ｂには、パルスＣＤ０が出力される。再構成領域１００３（ＡＲＥＡ＃１）では、２クロック後のＴ２でＳＲＡＭリードデータを入力する。このリードデータとＦＦ７０とＦＦ７１Ｂで２クロックだけ遅延したパルスＣＤ０からパルスＣＤ１が生成され、信号６１Ｂに出力される（Ｔ２）。パルスＣＤ１は２個のＦＦ７２Ｂにより、２クロック後のＴ４で信号６２Ｂに出力される。
【００５２】
図１１（Ｃ）は再構成領域１００３（ＡＲＥＡ＃２）に構成される回路構成の例であり、図１２（Ｃ）がこの回路でのタイミングチャートである。再構成領域１００３（ＡＲＥＡ＃２）に構成された処理回路５０が、Ｔ０で、ＳＲＡＭ制御信号を出力する。この時の信号６０Ｃには、パルスＣＤ０が出力される。再構成領域１００３（ＡＲＥＡ＃２）では、３クロック後のＴ３でＳＲＡＭリードデータを入力する。このリードデータと３個のＦＦ７０、７１Ｃで３クロックだけ遅延したパルスＣＤ０からパルスＣＤ１が生成され、信号６１Ｃに出力される（Ｔ３）。パルスＣＤ１はＦＦ７２（Ｃ）により、１クロック後のＴ４で信号６２Ｃに出力される。
【００５３】
図１１（Ｄ）は再構成領域１００３（ＡＲＥＡ＃３）に構成される回路構成の例であり、図１２（Ｄ）がこの回路でのタイミングチャートである。再構成領域１００３（ＡＲＥＡ＃３）に構成された処理回路５０が、Ｔ０で、ＳＲＡＭ制御信号を出力する。この時の信号６０Ｄには、パルスＣＤ０が出力される。再構成領域１００３（ＡＲＥＡ＃３）では、４クロック後のＴ４でＳＲＡＭリードデータを入力する。このリードデータと４個のＦＦ７０．７１Ｄで４クロックだけ遅延したパルスＣＤ０からパルスＣＤ１が生成され、信号６１Ｄに出力される（Ｔ４）。信号６１Ｄと信号６２ＤにはＦＦがないので、パルスＣＤ１はＴ４で信号６２Ｃに出力される。
【００５４】
図１２（Ａ）から図１２（Ｄ）でわかるとおり、どの再構成領域１００３（ＡＲＥＡ＃０−３）においても、タイミングＴ０でＳＲＡＭ部１００５へのリードアクセスを開始すれば、タイミングＴ４でリードデータに関わる内部信号を生成している。つまり、どの再構成領域１００３（ＡＲＥＡ＃０−３）に構成された回路も同一の処理レイテンシとなる。
【００５５】
図１１のＦＦ７１Ｂ、７１Ｃ及び７１Ｄは各再構成領域でのＳＲＡＭアクセスレイテンシに対応するためのＦＦであり、一方、ＦＦ７２Ａ、７２Ｂ及び７２Ｃは各再構成領域で構成された回路の処理レイテンシを同一にするためのＦＦである。このように各再構成領域にＳＲＡＭアクセスレイテンシに対応するためのＦＦを有しているために、ＳＲＡＭセレクタ１００４には、アクセスレイテンシを等しくするための回路（例えばＦＦ）は持たなくともよい。
【００５６】
[コンフィグデータの構成例]
本実施形態に係るＲＯＭ１０４に格納される再構成可能回路１０００のコンフィグデータの構成は図７で示した実施形態２と同様であり、処理内容と再構成領域との組み合わせに応じて定義される。ただし、本実施形態では、回路ｎｍ（ｎは処理内容に応じた回路のインデックス１からＮ、ｍは再構成領域のインデックス０から３）を、処理ｎに対応する処理回路５０とＡＲＥＡ＃ｍに対応するＦＦと組み合わせ回路（すなわち図１１（Ａ）から図１１（Ｄ）のうち処理回路５０以外の部分）とを組み合わせた回路に置き換える。
【００５７】
[再構成制御フロー]
本実施形態に係る画像処理装置の再構成可能回路１０００の再構成制御フローは、実施形態２と同様の、図８乃至図１０に示したフローである。この構成により本実施形態に係る発明によれば、実施形態１と比べて、レイテンシを調整する回路要素であるフリップフロップも動的再構成の対象となるので、たとえばＳＲＡＭセレクタ１００４を再構成可能ではない固定回路で構成しても、レイテンシを調整できる。また、ＳＲＡＭに対する信号を再構成領域間で同期させる必要の有無が切り替わった場合にも、ＳＲＡＭセレクタの再構成を行う必要がなく、動的再構成のみにより対応することができる。また本実施形態では、実施形態２と比較して、ＳＲＡＭ制御信号を、ＳＲＡＭリードデータの遅延に同期して遅延させ、それらのコンビネーションを、最も遅延したＳＲＡＭリードデータに合合わせて更に遅延させる構成を有する。
【００５８】
＜実施形態４＞
実施形態２及び３では、各再構成領域１００３に対して、再構成するためのコンフィグデータを異なる回路構成、具体的には、信号遅延に応じた段数のフリップフロップによる遅延回路を含む回路構成に基づき作成し、ＳＲＡＭアクセスレイテンシを最も遅いタイミングの回路に合わせて同一とした。実施形態４では、再構成領域１００３をＳＲＡＭアクセスレイテンシに無関係な回路部分の再構成領域１００３１とレイテンシを調整する部分の再構成領域１００３２で別々に構成する。レイテンシを調整する部分（レイテンシ調整回路）を再構成領域１００３２に配置し、その回路構成のみを再構成することで、ＳＲＡＭアクセスレイテンシを全ての回路で同期させることも、一部の回路で同期させることも、あるいはすべて非同期とすることもできる。なお実施形態４の画像処理装置は、図１で示した実施形態１と同様の画像処理装置構成である。
【００５９】
[再構成可能回路の構成例]
実施形態４の再構成可能回路１０００の構成は、図２で示した実施形態１と同様である。また、本実施形態に係る再構成可能回路１０００のＳＲＡＭ  ｓｅｌｅｃｔｏｒ１００４の構成は、図５で示した実施形態２と同様である。
図１３は、本実施形態に係る各再構成領域１００３（ＡＲＥＡ＃０−３）に構成される回路構成の例を示す図であり、図１１の回路構成の例に対応するものである。図１３で再構成領域１００３１と再構成領域１００３２は、再構成領域１００３を分割したそれぞれの再構成領域である。再構成領域１００３１には、ＳＲＡＭアクセスレイテンシに無関係な回路部分５１が構成される。一方、再構成領域１００３２には、レイテンシを調整する回路部分（レイテンシ調整部とも呼び、図１３の回路０Ａから回路３Ａ、図１４の回路０Ｂから回路３Ｂに相当）が構成される。
【００６０】
図１３の７２Ａ、７２Ｂ及び７２Ｃは各再構成領域で構成された回路の処理レイテンシを同一するためのＦＦである。したがって、処理内容によっては同一な処理レイテンシが必要ない場合には、図１４のごとく、これらＦＦを省いた回路を再構成領域１００３２に構成すればよい。そうすれば、各再構成領域で構成された回路の処理レイテンシは異なるが、処理速度は向上する。
【００６１】
[コンフィグデータの構成例]
図１５は、本実施形態に係るＲＯＭ１０４に格納される再構成可能回路１０００のコンフィグデータの構成例である。図１５に示すように、ＲＯＭ１０４にはある処理に対して、二種類のコンフィグデータが格納される。図１５（Ａ）は、処理内容のみで決定されるＳＲＡＭアクセスレイテンシに無関係な回路部分４０から作成されたコンフィグデータであり、再構成領域１００３１に適用される。また、処理内容に対して、同一レイテンシでの処理が必要か否かの情報も格納される。図１５（Ｂ）は、再構成領域１００３ごとにレイテンシを調整する回路部分から作成されたコンフィグデータで、再構成領域１００３２に適用される。図１５（Ａ）に関しては、用いる再構成領域の位置およびレイテンシ調整の必要性（すなわちＳＲＡＭ関連信号の同期の必要性）の有無とは無関係に、処理内容のみに応じてコンフィグデータが決まる。したがって、図１５（Ａ）に関しては、処理内容とコンフィグデータとを関連付けておけばよく、「同一レイテンシ」と再構成領域との関連付けは不要である。一方、再構成領域１００３２のレイテンシ調整回路については、再構成領域の位置とレイテンシ調整の必要性の有無とに関連付けてコンフィグデータが格納されている。
【００６２】
[再構成制御フロー]
図１６は本実施形態に係る画像処理装置の再構成可能回路１０００の再構成制御を示すフローチャートである。図１６のフローチャートの各手順は、ＣＰＵ１０１により実行される。本制御フローは、電源投入後またはスリープ復帰後、操作部１０３によるジョブ開始の指示がされた時点で開始される。図８に示した実施形態２の再構成制御フローとの違いは、ステップＳ４００３とステップＳ４００４である。
【００６３】
ステップＳ４００１では、操作部１０３においてジョブ指定がなされたかどうかを判定する。ジョブ指定がされている場合（ステップＳ４００１のＹｅｓ）、ステップＳ４００２へ移行する。ステップＳ４００２では、ＣＰＵ１０１が、再構成領域１００３のうちから再構成領域（ＡＲＥＡ＃ｎ）を決定する。この決定処理フローは図９で示すフローと同じである。
【００６４】
ステップＳ４００３では、ＣＰＵ１０１がジョブで要求される処理内容から再構成領域ＡＲＥＡ＃ｎの再構成領域１００３１に構成するコンフィグデータを決定する。この決定処理の詳細は図１７を参照して後述する。
【００６５】
ステップＳ４００４では、ＣＰＵ１０１がジョブで要求される処理内容に対する同一レイテンシの必要性から再構成領域ＡＲＥＡ＃ｎの再構成領域１００３２に構成するコンフィグデータを決定する。この決定処理の詳細は図１８を参照して後述する。
【００６６】
ステップＳ４００５では、ＣＰＵ１０１がコンフィグコントローラ１３０に対し、ＡＲＥＡ＃ｎの１００３１の再構成開始を指示する。これにより、コンフィグコントローラ１３０はＲＯＭ１０４からステップＳ４００３で決定したコンフィグデータを使って、再構成領域ＡＲＥＡ＃ｎの再構成領域１００３１の回路を書き換える。ステップＳ４００６では、再構成領域ＡＲＥＡ＃ｎの１００３１の回路の書き換え完了を待つ。書き換えが終了した場合（ステップＳ４００６のＹｅｓ）、ステップ４００７へ移行する。
【００６７】
ステップＳ４００７では、ＣＰＵ１０１がコンフィグコントローラ１３０に対し、ＡＲＥＡ＃ｎの再構成領域１００３２の再構成開始を指示する。これにより、コンフィグコントローラ１３０はＲＯＭ１０４からステップＳ４００４で決定したコンフィグデータを使って、再構成領域ＡＲＥＡ＃ｎの再構成領域１００３２の回路を書き換える。ステップＳ４００８では、再構成領域ＡＲＥＡ＃ｎの再構成領域１００３２の回路の書き換え完了を待つ。書き換えが終了した場合（ステップＳ４００８のＹｅｓ）、ステップ５００９へ移行する。
【００６８】
ステップＳ４００９では、ジョブで要求される、さらなる処理内容があるかを判定する。さらなる処理内容がない場合（ステップＳ４００９のＮｏ）、再構成を終了する。一方、さらなる処理内容がある場合（ステップＳ４００９のＹｅｓ）、ステップＳ４００２へ移行する。
【００６９】
図１７は、図１６の再構成領域１００３１に構成するコンフィグデータの決定処理を示すフローチャートである。ステップＳ５００１では、ＣＰＵ１０１がジョブ指定から処理内容を確認する。ステップＳ５００２では、ＣＰＵ１０１がステップＳ４００２で決定した再構成領域を確認する。ステップＳ５００３では、ＣＰＵ１０１が処理内容と決定した再構成領域から図１９（Ａ）に基づき、コンフィグデータを決定し、図１６の再構成制御フローへ戻る。
【００７０】
図１８は、図１６の１００３２に構成するコンフィグデータの決定処理を示すフローチャートである。ステップＳ６００１では、ＣＰＵ１０１がジョブ指定から処理内容を確認する。たとえばジョブ指定に記述された処理内容を示す識別情報を読み取る。ステップＳ６００２では、ＣＰＵ１０１がステップＳ４００２で決定した再構成領域を確認する。決定された再構成領域を示す情報が保存されているのであれば、特に何もしなくともよい。
【００７１】
ステップＳ６００３では、決定した再構成領域がＡＲＥＡ＃０であるかを判断する。再構成領域がＡＲＥＡ＃０であれば（ステップＳ６００３のＹｅｓ）、ステップＳ６００４へ移行する。ステップＳ６００４では、処理内容において同一レイテンシの処理が必要か否かを判断する。同一レイテンシの処理が必要であれば（ステップＳ６００４のＹｅｓ）、回路０Ａ（図１５（Ｂ））をコンフィグデータとして決定（ステップＳ６００５）して、図１６の再構成制御フローへ戻る。同一レイテンシの処理が必要でなければ（ステップＳ６００４のＮｏ）、回路０Ｂ（図１５（Ｂ））をコンフィグデータとして決定（ステップＳ６００６）して、図１６の再構成制御フローへ戻る。なお同一レイテンシの必要性の有無の判定基準は、たとえば複数の同一の処理回路を再構成する場合などには、並列処理が行われる可能性があるので、同一の回路が形成される再構成領域のアクセスレイテンシを等しくする必要性があると判定してもよい。
【００７２】
ステップＳ６００３で、再構成領域がＡＲＥＡ＃０でなければ（ステップＳ６００３のＮｏ）、ステップＳ６００７へ移行する。ステップＳ６００７では、決定した再構成領域がＡＲＥＡ＃１であるかを判断する。再構成領域がＡＲＥＡ＃１であれば（ステップＳ６００７のＹｅｓ）、ステップＳ６００８へ移行する。ステップＳ６００８では、処理内容において同一レイテンシの処理が必要か否かを判断する。同一レイテンシの処理が必要であれば（ステップＳ６００８のＹｅｓ）、回路１Ａ（図１５（Ｂ））をコンフィグデータとして決定（ステップＳ６００９）して、図１６の再構成制御フローへ戻る。同一レイテンシの処理が必要でなければ（ステップＳ６００８のＮｏ）、回路１Ｂ（図１５（Ｂ））をコンフィグデータとして決定（ステップＳ６０１０）して、図１６の再構成制御フローへ戻る。
【００７３】
ステップＳ６００７で、再構成領域がＡＲＥＡ＃１でなければ（ステップＳ６００７のＮｏ）、ステップＳ６０１１へ移行する。
【００７４】
ステップＳ６０１１では、決定した再構成領域がＡＲＥＡ＃２であるかを判断する。再構成領域がＡＲＥＡ＃２であれば（ステップＳ６０１１のＹｅｓ）、ステップＳ６０１２へ移行する。ステップＳ６０１２では、処理内容において同一レイテンシの処理が必要か否かを判断する。同一レイテンシの処理が必要であれば（ステップＳ６０１２のＹｅｓ）、回路２Ａ（図１５（Ｂ））をコンフィグデータとして決定（ステップＳ６０１３）して、図１６の再構成制御フローへ戻る。同一レイテンシの処理が必要でなければ（ステップＳ６０１２のＮｏ）、回路２Ｂ（図１５（Ｂ））をコンフィグデータとして決定（ステップＳ６０１４）して、図１６の再構成制御フローへ戻る。
【００７５】
ステップＳ６０１１で、再構成領域がＡＲＥＡ＃２でなければ（ステップＳ６０１１のＮｏ）、ステップＳ６０１５へ移行する。ステップＳ６０１５では、処理内容において同一レイテンシの処理が必要か否かを判断する。同一レイテンシの処理が必要であれば（ステップＳ６０１５のＹｅｓ）、回路３Ａ（図１５（Ｂ））をコンフィグデータとして決定（ステップＳ６０１６）して、図１６の再構成制御フローへ戻る。同一レイテンシの処理が必要でなければ（ステップＳ６０１５のＮｏ）、回路２Ｂ（図１５（Ｂ））をコンフィグデータとして決定（ステップＳ６０１７）して、図１６の再構成制御フローへ戻る。
【００７６】
以上の再構成フローにより、各再構成領域１００３（１００３１と１００３２）に処理レイテンシが同一となる回路が再構成されることが可能となる。なお、図１５（Ｂ）の処理に代えて、再構成領域を示す情報と同一レイテンシの必要性を示す情報とをインデックスとして図１５（Ｂ）のテーブルを検索する構成であってもよい。
以上の構成により、再構成可能回路１０００は機能向上や不具合の解消のために、固定部分や再構成される回路を変更し、コンフィグデータを再生成できる。しかし、コンフィグデータの再生成の際、再構成領域とＳＲＡＭの配置の位置関係が変更前とは異なり、ＳＲＡＭアクセスレイテンシも異なるものとなる可能性がある。本実施形態では、レイテンシに関わる回路は、処理回路が再構成される各再構成領域に対応させて、各再構成領域とは別の再構成領域に設けた小さい回路である。したがって、変更前とＳＲＡＭアクセスレイテンシも異なった場合でも、この小さなレイテンシに関わる回路のみの回路変更を行い、そのコンフィグデータを再生成すればよい。
【００７７】
［その他の実施例］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００７８】
１００...画像処理装置、１３０...コンフィグコントローラ、１０００...再構成可能回路、１００１...再構成制御部、１００３...再構成領域、１００４...ＳＲＡＭ  ｓｅｌｅｃｔｏｒ、１００５...ＳＲＡＭ部
【図１】
2015207832.tif 000003
【図２】
2015207832.tif 000004
【図３】
2015207832.tif 000005
【図４】
2015207832.tif 000006
【図５】
2015207832.tif 000007
【図６】
2015207832.tif 000008
【図７】
2015207832.tif 000009
【図８】
2015207832.tif 000010
【図９】
2015207832.tif 000011
【図１０】
2015207832.tif 000012
【図１１】
2015207832.tif 000013
【図１２】
2015207832.tif 000014
【図１３】
2015207832.tif 000015
【図１４】
2015207832.tif 000016
【図１５】
2015207832.tif 000017
【図１６】
2015207832.tif 000018
【図１７】
2015207832.tif 000019
【図１８】
2015207832.tif 000020