(57)【要約】【課題】動的部分再構成要求が発生した場合に、全ての部分再構成部で何らかの処理が実行中である場合、再構成する部分再構成部を決定する為に、いずれかの部分再構成部での処理が終了するまで待たねばならず、再構成に時間がかかる。【解決手段】回路構成を再構成可能な複数の領域を含む回路を備える画像処理装置であって、再構成要求が発生した際に、前記複数の領域のすべてが動作中か否かを判定し、前記複数の領域のすべてが動作中であると判定された場合、前記再構成要求にて指定された機能を実装するための回路構成情報であって、前記複数の領域それぞれに対応したすべての回路構成情報を取得して前記記憶部に記憶させておき、前記複数の領域のうちいずれかの領域において処理が完了した際に、当該処理が完了した領域に対応する回路構成情報を前記記憶部から読み出して、当該処理が完了した領域にて再構成を行わせる。【選択図】  図４
2016057828.tif 000002
【特許請求の範囲】
【請求項１】
回路構成を再構成可能な複数の領域を含む回路を備える画像処理装置であって、
前記複数の領域それぞれにおける回路構成の再構成を制御する制御手段と、
前記複数の領域それぞれに対応し、かつ、機能ごとに定義された複数の回路構成情報の中から、前記複数の領域を再構成する際に用いられる少なくとも１つの回路構成情報を記憶部に一時的に記憶させる記憶手段と、
前記複数の領域それぞれが構成された回路構成の機能により動作しているか否かを判定する判定手段と
を有し、
前記判定手段は、再構成要求が発生した際に、前記複数の領域のすべてが動作中か否かを判定し、
前記判定手段にて前記複数の領域のすべてが動作中であると判定された場合、前記記憶手段は、前記再構成要求にて指定された機能を実装するための回路構成情報であって、前記複数の領域それぞれに対応したすべての回路構成情報を取得して前記記憶部に記憶させておき、
前記制御手段は、前記複数の領域のうちいずれかの領域において処理が完了した際に、当該処理が完了した領域に対応する回路構成情報を前記記憶部から読み出して、当該処理が完了した領域にて再構成を行わせることを特徴とする画像処理装置。
【請求項２】
前記再構成要求が発生した際に前記記憶部にて記憶する回路構成情報の取得する順番を決定する決定手段を更に有し、
前記記憶手段は、前記決定手段にて決定された順番に従って、回路構成情報を取得して前記記憶部に記憶させることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記複数の領域それぞれにて動作中の処理が終了する終了時間を推定する推定手段を更に有し、
前記決定手段は、前記推定手段にて推定された終了時間が早い領域に対応する回路構成情報から順に取得するように順番を決定することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記推定手段は、終了時間が推定できない所定の処理が前記領域にて動作中である場合、予め定義された値に従って終了時刻を推定することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記記憶手段は、前記推定手段にて終了時間が推定できない所定の処理が前記領域にて動作中である場合、当該領域に対応する回路構成情報を取得する順番を予め定義された順番とすることを特徴とする請求項３に記載の画像処理装置。
【請求項６】
前記再構成要求が発生した際に前記記憶部に記憶しておくことのできる機能ごとの回路構成情報の数を制限する制限手段を更に有し、
前記記憶手段は、前記制限手段にて制限された数に基づいて、機能ごとに回路構成情報を取得して前記記憶部に記憶させることを特徴とする請求項１乃至５のいずれか一項に記載の画像処理装置。
【請求項７】
前記制限手段は、回路構成情報のサイズ、および、前記記憶部のリソースのサイズに応じて、記憶しておくことのできる機能ごとの回路構成情報の数を動的に決定することを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記記憶手段が回路構成情報を取得して前記記憶部に記憶させている途中で、前記判定手段が前記複数の領域のうちのいずれかの領域において処理が完了したと判定した場合において、当該処理が完了した領域に対応する回路構成情報がすでに前記記憶部に記憶されている場合、前記制御手段は、当該すでに記憶されている回路構成情報を用いて再構成を行わせることを特徴とする請求項１乃至７のいずれか一項に記載の画像処理装置。
【請求項９】
前記記憶部は、揮発性のメモリであり、
前記記憶手段は、前記再構成要求が発生した際に、データに対するアクセス速度が前記記憶部よりも遅い記憶装置から回路構成情報を取得して一時的に記憶させておくことを特徴とする請求項１乃至８のいずれか一項に記載の画像処理装置。
【請求項１０】
回路構成を再構成可能な複数の領域を含む回路を備える画像処理装置の制御方法であって、
前記複数の領域それぞれにおける回路構成の再構成を制御する制御工程と、
前記複数の領域それぞれに対応し、かつ、機能ごとに定義された複数の回路構成情報の中から、前記複数の領域を再構成する際に用いられる少なくとも１つの回路構成情報を記憶部に一時的に記憶させる記憶工程と、
前記複数の領域それぞれが構成された回路構成の機能により動作しているか否かを判定する判定工程と
を有し、
前記判定工程では、再構成要求が発生した際に、前記複数の領域のすべてが動作中か否かを判定し、
前記判定工程にて前記複数の領域のすべてが動作中であると判定された場合、前記記憶工程にて、前記再構成要求にて指定された機能を実装するための回路構成情報であって、前記複数の領域それぞれに対応したすべての回路構成情報を取得して前記記憶部に記憶させておき、
前記制御工程において、前記複数の領域のうちいずれかの領域において処理が完了した際に、当該処理が完了した領域に対応する回路構成情報を前記記憶部から読み出して、当該処理が完了した領域にて再構成を行わせることを特徴とする画像処理装置の制御方法。
【請求項１１】
回路構成を再構成可能な複数の領域を含む回路を備えるコンピュータを、
前記複数の領域それぞれにおける回路構成の再構成を制御する制御手段、
前記複数の領域それぞれに対応し、かつ、機能ごとに定義された複数の回路構成情報の中から、前記複数の領域を再構成する際に用いられる少なくとも１つの回路構成情報を記憶部に一時的に記憶させる記憶手段、
前記複数の領域それぞれが構成された回路構成の機能により動作しているか否かを判定する判定手段
として機能させ、
前記判定手段は、再構成要求が発生した際に、前記複数の領域のすべてが動作中か否かを判定し、
前記判定手段にて前記複数の領域のすべてが動作中であると判定された場合、前記記憶手段は、前記再構成要求にて指定された機能を実装するための回路構成情報であって、前記複数の領域それぞれに対応したすべての回路構成情報を取得して前記記憶部に記憶させておき、
前記制御手段は、前記複数の領域のうちいずれかの領域において処理が完了した際に、当該処理が完了した領域に対応する回路構成情報を前記記憶部から読み出して、当該処理が完了した領域にて再構成を行わせることを特徴とするコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置およびその制御方法、並びにプログラムに関する。
【背景技術】
【０００２】
内部の論理回路構成を変更可能なＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）やＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）などの再構成可能回路が知られている。一般的に、ＰＬＤやＦＰＧＡは起動時にＲＯＭ等の不揮発性メモリへ格納された論理回路構成情報を内部の揮発性メモリであるコンフィギュレーションメモリへ書き込むことにより内部論理ブロックの切り替えを行う。また、コンフィギュレーションメモリ内の情報は電源切断時にクリアされ、電源投入時には再度、論理回路構成情報をコンフィギュレーションメモリに書き込むことで再構成を行う。このように、起動時に一度だけハードウェアリソースの構成を行う方法を静的再構成という。一方、回路が動作中に論理回路構成を変更可能なものも開発されてきており、このような方法を動的再構成という。
【０００３】
また、ＦＰＧＡには、全体ではなく特定の領域だけを書き換え可能なものがあり、このような書き換えを部分再構成と言い、特に、動作中の他の回路を停止しない状態で部分再構成を行うことを動的部分再構成と言う。動的部分再構成では、動的再構成時にコンフィギュレーションメモリ全体を書き換えるのではなく、コンフィギュレーションメモリ領域の一部のみを書き換えることで、ＦＰＧＡ内部の論理ブロックの部分的な再構成を実現する。
【０００４】
部分再構成を行う為には、部分再構成を行える領域を設計時に予め指定する必要がある。部分再構成を行える領域は、ＰＲ（Ｐａｒｔｉａｌ  Ｒｅｃｏｎｆｉｇｕｒａｂｌｅ）領域等と呼ばれる。部分再構成を行う為には、更に各領域専用の論理回路構成情報を用意する必要がある。そのため、同じ機能であっても複数の領域のいずれかに回路を構成する場合、その複数の領域それぞれに適合する複数の論理回路構成情報を用意する必要がある。
【０００５】
近年のＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｒｉｎｔｅｒ）等の画像処理装置は、ユーザからの要求に応じた複数の処理を選択可能であり、各処理に応じた画像処理はハードウェアまたはソフトウェアにより実現される。画像処理装置の画像処理ハードウェアとしてＦＰＧＡ等の再構成可能回路を適用した場合、機能毎に回路構成を動的かつ部分的に切り替えることが可能となる。その結果、少ないハードウェアリソースで様々な画像処理機能が実現可能となる。
【０００６】
一方、動作中の回路構成の変更（書き換え）に要する時間は長く、その時間はコンフィギュレーションメモリに書き込む論理回路構成情報のサイズに比例する。そのため、従来から、回路構成の書き換え時間を低減するための技術が提案されている。従来の書き換え時間を低減するための技術として、画像処理中に次に処理する可能性の高い処理を予測し、予測した処理を実現するための論理回路構成情報を高速なコンフィギュレーションメモリに先行してロードするという技術が開示されている。先行してロードする事により、処理開始までの時間を短縮でき、画像処理全体の高速化を図る事ができる（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１２−２３４３３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
部分再構成において用いる論理回路構成情報を特定するために、所望の処理内容を決定し、さらに再構成する領域を指定する必要がある。しかしながら、特許文献１に記載されている方法では、再構成する領域を考慮していない為、書き換え可能な複数の領域を備える部分再構成可能な機器に適応する事ができない。特に、再構成要求が発生した際に、全ての領域で何らかの処理が実行中である場合、再構成する領域を決定する為には、いずれかの領域での処理が終了するまで待たねばならず、再構成時間を短縮できない。
【課題を解決するための手段】
【０００９】
上記課題を解決するために本願発明は以下の構成を有する。すなわち、回路構成を再構成可能な複数の領域を含む回路を備える画像処理装置であって、前記複数の領域それぞれにおける回路構成の再構成を制御する制御手段と、前記複数の領域それぞれに対応し、かつ、機能ごとに定義された複数の回路構成情報の中から、前記複数の領域を再構成する際に用いられる少なくとも１つの回路構成情報を記憶部に一時的に記憶させる記憶手段と、前記複数の領域それぞれが構成された回路構成の機能により動作しているか否かを判定する判定手段とを有し、前記判定手段は、再構成要求が発生した際に、前記複数の領域のすべてが動作中か否かを判定し、前記判定手段にて前記複数の領域のすべてが動作中であると判定された場合、前記記憶手段は、前記再構成要求にて指定された機能を実装するための回路構成情報であって、前記複数の領域それぞれに対応したすべての回路構成情報を取得して前記記憶部に記憶させておき、前記制御手段は、前記複数の領域のうちいずれかの領域において処理が完了した際に、当該処理が完了した領域に対応する回路構成情報を前記記憶部から読み出して、当該処理が完了した領域にて再構成を行わせる。
【発明の効果】
【００１０】
本願発明により、部分再構成が可能な複数の領域を有する回路のうちの全ての領域が動作中に再構成要求が発生したことにより再構成を行える領域がどの領域になるか未確定の場合でも、再構成時間を短縮でき、処理速度の高速化を図る事が可能となる。
【図面の簡単な説明】
【００１１】
【図１】本願発明に係る画像処理装置のハードウェア構成例を示す図。
【図２】本願発明に係る動的部分再構成に関わる構成の例を示す図。
【図３】本願発明に係るコンフィグデータの構成例を示す図。
【図４】第一の実施形態に係る動的部分再構成の制御処理のフローチャート。
【図５】第一の実施形態に係るＰＲ領域管理テーブルの構成例を示す図。
【図６】本願発明に係る動作状態および効果を説明するための図。
【図７】第二の実施形態に係る管理情報の構成例を示す図。
【図８】第二の実施形態に係る動的部分再構成の制御処理のフローチャート。
【図９】第三の実施形態に係る管理情報の構成例を示す図。
【図１０】第三の実施形態に係る動的部分再構成の制御処理のフローチャート。
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための形態について図面を用いて説明する。
【００１３】
＜第一の実施形態＞
［画像処理装置の構成］
図１は、本実施形態に係る画像処理装置の装置構成例を示す図である。本実施形態の画像処理装置１００は、操作部１０３、スキャナ部１０９、およびプリンタ部１０７を有する。操作部１０３は、画像処理装置１００を使用するユーザが各種の操作を行う際に用いられる。スキャナ部１０９は、スキャナ部１０９を制御するＣＰＵ（不図示）、原稿読取を行うための照明ランプ、走査ミラー（不図示）などを有し、操作部１０３からの指示に従い画像情報を読み取る。プリンタ部１０７は、プリンタ部１０７の制御を行うＣＰＵ（不図示）、画像形成や定着を行うための感光体ドラム、定着器（不図示）などを有し、画像データを用紙に印刷する。
【００１４】
また、画像処理装置１００は、ＣＰＵ１０１、ＲＯＭ１０４、およびＲＡＭ１１１を備える。ＣＰＵ１０１は、画像処理装置１００の動作を統括的に制御し、画像処理装置１００の各ユニットを制御するための制御ソフトウェアを実行する。ＲＯＭ１０４には、ＣＰＵ１０１が実行するプログラムが格納される。ＲＡＭ１１１は、揮発性の記憶部であり、様々な用途にて用いられる。例えば、ＲＡＭ１１１は、ＣＰＵ１０１が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもあり、更には後述する論理回路構成情報を一時的に記憶するためのメモリでもある。ＲＡＭ１１１には、ＲＡＭ１１１への書き込み、読み出し動作を制御するメモリコントローラ１１０が接続される。メモリコントローラ１１０は、システムバス１２０および画像バス１２１に接続され、ＲＡＭ１１１へのアクセスを制御する。ＲＡＭ１１１はＨＤＤ１５０などに比べ高速に読み書きできるものが利用される。
【００１５】
画像処理装置１００は、再構成可能デバイスとして画像処理回路等を構成するＦＰＧＡ１４０を有する。なお、本実施形態では再構成可能デバイスとしてＦＰＧＡを例に説明しているが、ＦＰＧＡ以外の再構成可能デバイスが接続される構成であってもよい。画像処理装置１００は、ＣＰＵ１０１の制御の下、ＦＰＧＡの回路構成（コンフィギュレーション）を制御するコンフィグコントローラ１３０を有する。本実施形態では、コンフィグコントローラ１３０をハードモジュールの形で示しているが、この形態とは違う実装方法でもよい。例えば、ＣＰＵ１０１上で動作するソフトウェアとして実現されていても良い。
【００１６】
また、画像処理装置１００は、ＦＰＧＡ１４０に回路を構成する為の論理回路構成情報（以下、コンフィグデータ）が格納されているＨＤＤ１５０を有する。ＨＤＤ１５０はコンフィグデータのみならず、画像データを記憶する為の記憶領域であり、更にはＣＰＵ１０１で動作するプログラムが格納される記憶領域でもある。ＨＤＤ１５０は、ＨＤＤ  Ｉ／Ｆ１１６を介してシステムバス１２０および画像バス１２１に接続される。ＨＤＤ  Ｉ／Ｆ１１６は、既に説明したＲＡＭ１１１より、読み出し性能（アクセス速度）が劣る事が多い。ＦＰＧＡ１４０は、動的書き換え可能かつ部分書き換え可能である。すなわち、ＦＰＧＡ１４０の再構成部の一部に構成された回路が動作している間に、その回路が占める部分とは重ならない別の部分に別の回路を再構成することができる。
【００１７】
また、画像処理装置１００は、スキャナ部１０９から画像データが入力されるスキャナＩ／Ｆ１０８と、プリンタ部１０７へ画像データを出力するプリンタＩ／Ｆ１０６とを有する。ＦＰＧＡ１４０、スキャナＩ／Ｆ１０８、およびプリンタＩ／Ｆ１０６は、処理される画像データを転送するための画像バス１２１に接続される。
【００１８】
また、画像処理装置１００は、ネットワークＩ／Ｆ１０２を介し、ネットワーク上の汎用コンピュータ（不図示）と通信（送受信）を行う。また、画像処理装置１００は、ＵＳＢ  Ｉ／Ｆ１１４を介し、画像処理装置１００と接続されたＵＳＢデバイス（不図示）と通信（送受信）を行う。また、画像処理装置１００は、ＦＡＸ  Ｉ／Ｆ１１５を介し、公衆回線網と接続し、他の画像処理装置やファクシミリ装置（不図示）と通信（送受信）を行う。画像処理装置１００は、ＲＯＭ１０４への書き込み、読み出し動作を制御するＲＯＭ  Ｉ／Ｆ１１２を有する。また、画像処理装置１００において、ＣＰＵ１０１、ネットワークＩ／Ｆ１０２、操作部Ｉ／Ｆ１１３、ＲＯＭ  Ｉ／Ｆ１１２、ＨＤＤ  Ｉ／Ｆ１１６、メモリコントローラ１１０、コンフィグコントローラ１３０、およびＦＰＧＡ１４０は、システムバス１２０を介して相互に接続される。ＣＰＵ１０１は、ＦＰＧＡ１４０とシステムバス１２０を介して各種情報の送受信を行う。なお、本実施形態では、画像処理装置を例に挙げて説明しているが、これに限定するものではなく、部分再構成が可能な回路を備えた他の情報処理装置であって良い。
【００１９】
［部分再構成に関する構成］
図２を用いて、図１に示した本実施形態に係る画像処理装置１００の構成のうち、部分再構成に関する構成について説明する。ＣＰＵ１０１、メモリコントローラ１１０、ＲＡＭ１１１、コンフィグコントローラ１３０、ＨＤＤ  Ｉ／Ｆ１１６、ＨＤＤ１５０、ＦＰＧＡ１４０については図１を用いて前述した通りである。
【００２０】
ＦＰＧＡ１４０は、内部に、部分再構成の単位として、複数の部分再構成部を備える。本実施形態では、ＦＰＧＡ１４０は、ＰＲ領域２０１（ＰＲ１）、ＰＲ領域２０２（ＰＲ２）、ＰＲ領域２０３（ＰＲ３）、およびＰＲ領域２０４（ＰＲ４）を備えるものとする。各ＰＲ領域において、動的に画像処理回路等が書き換えられることが可能である。本実施形態においては、画像処理機能を持つ回路をＰＲ領域に構成する例について説明をしているが、画像処理機能以外の回路をＰＲ領域に構成可能であってもよい。
【００２１】
コンフィグコントローラ１３０は、再構成管理部２０５を備える。再構成管理部２０５は、各ＰＲ領域の部分再構成を管理する機能を持つ。例えば、各ＰＲ領域が現在の処理に使用されているか否か、機能が書き込まれているか否か等、各ＰＲ領域の空き状況を管理する。その上で、再構成管理部２０５は、各ＰＲ領域が書き換え可能か否かの判定を行う。再構成管理部２０５は、ＣＰＵ１０１の指示と、各ＰＲ領域が書き換え可能か否かの判定とを踏まえて、各ＰＲ領域に使用可能なコンフィグデータのＲＡＭ１１１へのロードと、各ＰＲ領域へのコンフィグデータの書き換えを行う。再構成管理部２０５が全てのＰＲ領域で何らかの処理が実行中であると判定した場合の処理については、図４を用いて後述する。
【００２２】
次に、図３を用いて本実施形態に係るＦＰＧＡ１４０のＰＲ領域２０１〜２０４に構成されるコンフィグデータの格納方法について説明する。図３はＨＤＤ１５０に格納されるＦＰＧＡ１４０のＰＲ領域２０１〜２０４それぞれに対応したコンフィグデータの例である。
【００２３】
ＨＤＤ１５０には部分再構成に必要な複数個のコンフィグデータが定義され格納される。図３において、ＰＲ１用のコンフィグデータ３００は、ＰＲ領域２０１（ＰＲ１）に構成することが可能なコンフィグデータを表している。図３においては、ＰＲ領域２０１（ＰＲ１）に構成可能な機能がＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆの６つである場合を例として示している。コンフィグデータ３０１は、ＰＲ１に機能Ａの回路を構成するためのコンフィグデータである。同様に、コンフィグデータ３０２〜３０６はそれぞれ、ＰＲ１に機能Ｂ〜Ｆの回路構成をそれぞれ構成するためのコンフィグデータを表している。
【００２４】
また、ＰＲ２用のコンフィグデータ３１０は、ＰＲ領域２０２（ＰＲ２）に構成することが可能なコンフィグデータを表している。ＰＲ２用のコンフィグデータ３１０についても、機能Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆの６つの機能のコンフィグデータを格納しており、ＰＲ領域２０２（ＰＲ２）には６つの機能を切り替えて構成することが可能である。また、ＰＲ３用のコンフィグデータ３２０は、ＰＲ領域２０３（ＰＲ３）に構成することが可能なコンフィグデータを表している。ＰＲ３用のコンフィグデータ３２０についても、機能Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆの６つの機能のコンフィグデータを格納しており、ＰＲ領域２０３（ＰＲ３）には６つの機能を切り替えて構成することが可能である。また、ＰＲ４用のコンフィグデータ３３０は、ＰＲ領域２０４（ＰＲ４）に構成することが可能なコンフィグデータを表している。ＰＲ４用のコンフィグデータ３３０についても、機能Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆの６つの機能のコンフィグデータを格納しており、ＰＲ領域２０４（ＰＲ４）には６つの機能を切り替えて構成することが可能である。
【００２５】
上述したように、本願発明の前提として、各ＰＲ領域用にコンフィグデータを用意する必要がある。例えば、機能Ａの回路構成をＰＲ領域２０１とＰＲ領域２０２に構成するためには、構成場所に対応して異なるコンフィグデータ（ここでは、ＰＲ１用の機能Ａのコンフィグデータ３０１と、ＰＲ２用の機能Ａのコンフィグデータ３１１）を用意する必要がある。そのため、多機能な処理をＦＰＧＡ１４０上で行わせる場合、ＨＤＤ１５０等の大容量ストレージを用意し、ここに各部分再構成領域用のコンフィグデータを保持しておくことにより、各部分再構成領域をフレキシブルに使用可能となる。なお、大容量ストレージは画像処理装置１００に組み込まれる必要はなく、画像処理装置１００の外部に設けられネットワークＩ／Ｆ１０２等を通じて画像処理装置１００と通信を行えるように実現されていても良い。
【００２６】
本実施形態では、図２に示すように、ＦＰＧＡ１４０は４つの部分再構成領域を備え、また、部分再構成領域に構成する機能を機能Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆの６つの場合を例に挙げて説明する。もちろん、部分再構成領域の数や、構成可能な機能の数は上記に限定されるものではなく、他の数であっても本願発明を適用可能である。
【００２７】
［再構成実行時の制御フロー］
図４は、本実施形態に係る画像処理装置１００の再構成実行時の制御を表すフローチャートである。なお、図４のフローチャートの各手順は画像処理装置１００が備えるＣＰＵ１０１により実行されるものとして説明するが、一部の処理を再構成管理部２０５が行っても良い。
【００２８】
Ｓ４０１にて、ＣＰＵ１０１は、ユーザ等が設定したジョブを受けつける。つまり、画像処理装置１００での処理開始要求を受け付ける。ここで、ジョブを設定するのは、ユーザ以外でも良い。
【００２９】
Ｓ４０２にて、ＣＰＵ１０１は、Ｓ４０１で受け付けたジョブを実行する上で必要な機能を特定する。更に、ＣＰＵ１０１は、ＦＰＧＡ１４０にて構成する必要がある機能を特定する。例えば、受信したジョブ処理のために、機能Ｅを実現するための回路をＰＲ領域に構成する必要があるとして特定される。もちろん、他の機能を再構成しても良いし、図３に図示していない機能を再構成しても良い。また、複数の機能が必要であるとして特定されても良い。
【００３０】
Ｓ４０３にて、ＣＰＵ１０１は、再構成管理部２０５から各ＰＲ領域の動作状態を示すステータス取得を行う。再構成管理部２０５によって管理される、各ＰＲ領域の動作状態を示すステータスについては、図５を用いて後述する。なお、ここでジョブを実行するうえで必要な機能がすでに構成されている場合には、再構成を行わないようにしてもよい。本実施形態では、この時点では必要な機能が構成されていないものとし、再構成要求により再構成する機能が指定される。
【００３１】
Ｓ４０４にて、ＣＰＵ１０１は、Ｓ４０３にて取得した情報に基づいて、回路が未書き込みである空きＰＲ領域があるか否かを判定する。空きＰＲ領域が存在する場合は（Ｓ４０４にてＹＥＳ）Ｓ４１３へ進み、空きＰＲ領域が存在しない場合は（Ｓ４０４にてＮＯ）、Ｓ４０５へ進む。
【００３２】
Ｓ４０５にて、ＣＰＵ１０１は、Ｓ４０３にて取得した情報に基づいて、処理が終了しているＰＲ領域が１以上あるか否かを判定する。処理が終了しているＰＲ領域が一つでもある場合（Ｓ４０５にてＹＥＳ）Ｓ４１３へ進み、全てのＰＲ領域で何らかの処理を実行中の場合は（Ｓ４０５にてＮＯ）Ｓ４０６へ進む。
【００３３】
Ｓ４０６にて、ＣＰＵ１０１は、コンフィグコントローラ１３０により、Ｓ４０２で特定した機能を実現するコンフィグデータを、全てのＰＲ領域分読み出すように指示する。指示を受けたコンフィグコントローラ１３０は、コンフィグデータをＨＤＤ１５０からＲＡＭ１１１へロードする。図３を用いて述べたように、コンフィグデータは、ＰＲ領域毎に用意され、同じ機能を実現するためのコンフィグデータが複数存在する。なお、これらの複数のコンフィグデータをロードする際の順番は、予め定めていても良いし、ランダムに決定しても良い。
【００３４】
Ｓ４０７にて、ＣＰＵ１０１は、再構成管理部２０５から各ＰＲ領域の動作状態のステータス取得を行う。
【００３５】
Ｓ４０８にて、ＣＰＵ１０１は、Ｓ４０７にて取得した情報に基づいて、いずれかのＰＲ領域での処理が終了したか否かを判定する。いずれかのＰＲ領域での処理が終了していた場合は（Ｓ４０８にてＹＥＳ）Ｓ４０９へ進み、全てのＰＲ領域で処理が続行中の場合は（Ｓ４０８にてＮＯ）、Ｓ４０７へ戻る。
【００３６】
Ｓ４０９にて、ＣＰＵ１０１は、Ｓ４０７にて取得した情報に基づいて、処理が終了したＰＲ領域を特定する。
【００３７】
Ｓ４１０にて、ＣＰＵ１０１は、コンフィグコントローラ１３０に対し、ＲＡＭ１１１にロードされたコンフィグデータの中から、Ｓ４０９もしくはＳ４１３で特定されたＰＲ領域に適合するコンフィグデータの選択を指示する。ここで選択されるコンフィグデータは、Ｓ４０２で特定した機能を実現するためのコンフィグデータである。
【００３８】
Ｓ４１１にて、ＣＰＵ１０１は、コンフィグコントローラ１３０によりＳ４１０で選択されたコンフィグデータをＲＡＭ１１１より読み出し、ＦＰＧＡ１４０の特定されたＰＲ領域に書き込むことで部分再構成を行う。
【００３９】
Ｓ４１２にて、ＣＰＵ１０１は、Ｓ４１１で部分再構成された機能により、Ｓ４０２で特定された処理の実行を開始させる。
【００４０】
Ｓ４１３にて、ＣＰＵ１０１は、Ｓ４０３にて取得した情報に基づいて、未使用ＰＲ領域を特定する。本実施形態では、再構成要求があった場合に、ただちに書き込める領域を「未使用ＰＲ領域」と呼び、Ｓ４０９において処理が終了したために書き込めるようになったとして特定されたＰＲ領域と区別する。
【００４１】
Ｓ４１４にて、ＣＰＵ１０１は、Ｓ４１３で特定した未使用ＰＲ領域に書き込めるコンフィグデータを特定する。具体的には、Ｓ４１３で特定された未使用ＰＲ領域に対応したコンフィグデータであって、Ｓ４０２にて特定された機能に対応するコンフィグデータを、ＲＡＭ１１１やＨＤＤ１５０等の、コンフィグデータが存在する記憶領域の中から検索される。
【００４２】
Ｓ４１５にて、ＣＰＵ１０１は、Ｓ４１４での検索の結果、対象となるコンフィグデータがＲＡＭ１１１にあるか否かを判定する。対象のコンフィグデータがＲＡＭ１１１にある場合は（Ｓ４１５にてＹＥＳ）Ｓ４１０へ進み、対象のコンフィグデータがＲＡＭ１１１に無い場合は（Ｓ４１５にてＮＯ）、Ｓ４１６へ進む。
【００４３】
Ｓ４１６にて、ＣＰＵ１０１は、コンフィグコントローラ１３０により、Ｓ４１４で特定したコンフィグデータをＨＤＤ１５０からＲＡＭ１１１へロードするように指示する。その後、Ｓ４１０へ進む。
【００４４】
図５を用いて、図４にて述べた各ＰＲ領域の動作状態の判定方法の一例を説明する。本実施形態では、再構成管理部２０５が、ＰＲ領域の動作状態を示すＰＲ領域管理テーブル５００を有しているとして説明を行う。ＰＲ領域管理テーブル５００は、各ＰＲ領域に書き込まれているコンフィグデータに対応する機能、および機能の動作のステータスを含んで構成される。これらの情報は、再構成管理部２０５もしくはＣＰＵ１０１の制御の下で更新される。例えば、ＣＰＵ１０１がコンフィグコントローラ１３０を制御して部分再構成を行い、処理開始を命令する際にＰＲ領域管理テーブル５００の該当ＰＲ領域分の動作状態を「動作中」に設定する。更に、ＰＲ領域での処理が終了した場合に、動作状態を「動作終了」などと設定する。なお、動作状態を示すステータスの種類は機能に応じて設定できるようにしてよい。また、ＰＲ領域に書き込まれているコンフィグデータが変更された場合には、変更後のコンフィグデータに対応する機能が示される。これにより、どのＰＲ領域にどの機能が構成され、その機能の動作状態がどのようなものか判別できる。なお、動作状態の判定方法は上記に限られるものではなく、他の方式にて管理されてもよい。
【００４５】
［効果］
次に図６を用いて、本実施形態の具体的な動作を示すとともに、本願発明に係る効果について説明する。図６は、図４に示したフローチャートを実施した場合の各ＰＲ領域の動作内容と、コンフィグコントローラ１３０の動作内容を時系列に並べたタイムチャートを示す。図６において、横軸が時間の経過を示し、本実施形態に係るＰＲ領域であるＰＲ１、ＰＲ２、ＰＲ３、ＰＲ４と、コンフィグコントローラ１３０での動作内容が時系列に並べられている。ＰＲ１にて機能Ａが、ＰＲ２にて機能Ｂが、ＰＲ３、４にて機能Ｃが構成され、各ＰＲ領域において処理中であることが示されている。ここでは、新たに部分再構成を要求された機能を機能Ｅとして説明する。
【００４６】
再構成開始要求のタイミング６０１にて、動作ステータスの判定を行い（図４のＳ４０４、Ｓ４０５）、全ＰＲ領域で処理が実行中であると判定される（Ｓ４０５にてＮＯ）。そして、コンフィグコントローラ１３０が、ＣＰＵ１０１の制御の下、機能Ｅの各ＰＲ領域に対応するコンフィグデータをＨＤＤ１５０からＲＡＭ１１１へロードする（Ｓ４０６）。コンフィグデータのロード終了のタイミング６０２の後、各ＰＲ領域の動作ステータスを確認しながら、いずれかのＰＲ領域での処理終了のタイミングを待つ（Ｓ４０７、Ｓ４０８）。そして、いずれかのＰＲ領域において処理が終了したタイミング（ここでは、ＰＲ４の機能Ｃによる処理が完了したタイミング６０３）になると（Ｓ４０８にてＹＥＳ）、終了したＰＲ領域の特定を行う（Ｓ４０９）。その後、ＲＡＭ１１１にロードされた該当ＰＲ領域（ここではＰＲ４）に対応するコンフィグデータを用いて、該当ＰＲ領域に再構成が実施される。
【００４７】
このように、本実施形態により、処理が終わる前に、全てのＰＲ領域分のコンフィグデータをＲＡＭに読み出しておく事で、いずれかのＰＲ領域での処理が終了後にすぐに部分再構成が可能となる。これに対し、本願発明の構成を適応しない場合は、処理終了のタイミングを迎えてから、処理が終了したＰＲ領域に対応したコンフィグデータのロードと再構成を行うこととなる。つまり、本願発明を実施した場合、再構成要求が発生した場合に全てのＰＲ領域で何らかの処理が実行中であって、いずれのＰＲ領域にて次の機能を再構成すべきか未確定である場合でも、再構成時間を短縮することが可能となる。
【００４８】
＜第二の実施形態＞
第一の実施形態では、再構成要求が発生した場合に全てのＰＲ領域で処理が実行中の場合でも、全ＰＲ領域分のコンフィグデータを事前にＲＡＭに読みだしておく事により、再構成時間を短縮できることを説明した。
【００４９】
第二の実施形態では、ＰＲ領域での処理が終了するタイミングを考慮して、最も終了するタイミングが早いと予測されるＰＲ領域用のコンフィグデータから順にロードする。これにより、全コンフィグのロードが完了する前にいずれかのＰＲ領域での処理が終了した場合でも、効率良く再構成を実施する事が可能となり、再構成時間を短縮できる。
【００５０】
［第二の実施形態に係る構成］
本実施形態では、ＰＲ領域での処理終了のタイミングを事前に予測して算出する。図７（Ａ）に、算出した処理終了タイミングの情報を更に含んで構成されたＰＲ領域管理テーブル７００の例を示す。ＰＲ領域管理テーブル７００に保持されている各ＰＲ領域での処理終了タイミングを考慮し、読み出すコンフィグデータの順番を制御する。本実施形態に係る画像処理装置の機器構成は、第一の実施形態と同様であるとし、ここでの説明を省略する。
【００５１】
図７（Ａ）に示すＰＲ領域管理テーブル７００は、各ＰＲ領域に書き込まれているコンフィグデータに対応する機能、機能の動作のステータス、および、各ＰＲ領域で実行中の処理の終了時刻を含んで構成される。例えば、図７（Ａ）では、ＰＲ１に書き込まれている機能Ａ（読み取り用画像処理）が「動作中」であり、処理の終了時刻が「１５：００」として管理されている。このような情報が、ＰＲ領域毎に保持される。ＣＰＵ１０１の制御により、コンフィグコントローラ１３０がＦＰＧＡ１４０の部分再構成後、ＰＲ領域で処理を開始するタイミングでＰＲ領域管理テーブル７００が更新され、処理終了時刻が取得される。なお、ＰＲ領域管理テーブル７００の更新タイミングは上記のタイミングに限定するものではない。また、ＰＲ領域管理テーブル７００の操作は、ＣＰＵ１０１で動作するソフトウェアとして実現されても良いし、再構成管理部２０５が行うとして実現されても良い。
【００５２】
次に、終了時刻の取得方法の一例を説明する。ハードウェアを占有した一連の処理が終了するまでの時間は予測可能なことがある。例えば、１つの画像データを画像処理する場合、画像データに含まれるデータ量と画像処理装置のスループット性能とから画像処理するのに必要な時間が算出できる。この結果と、処理開始時間を考慮して、処理の終了時間を算出することができる。この結果をＰＲ領域管理テーブル７００に保持しておくことにより、再構成要求発生時に各ＰＲ領域での処理の終了順番を取得する事が可能となる。なお、処理終了時刻の取得方法は上記の方法に限るものではなく、予め定めた値をテーブルとして持っておいても良いし、そのほかの様々な処理時間の算出方法を用いてもよい。
【００５３】
一方、終了時刻を正確に予測することが困難な場合もある。例えば、画像処理装置１００では、原稿のコピーを行う事が可能である。原稿のコピーは、一枚ずつ手動でスキャンして行う方法と、オートドキュメントフィーダー（ＡＤＦ）を用い、複数枚の原稿を自動でコピーして行う方法が広く知られている。一枚ずつ手動でスキャンしてコピーを行う場合も、ＡＤＦを用いて複数枚の原稿を自動でスキャンしてコピーを行う場合も、ユーザが何枚の原稿をスキャンするかを処理開始前に正確に取得するのが難しい。しかし、手動でスキャンしてコピーを行う場合は、一般的に、原稿をスキャンする間隔が空くため、終了時間は1枚の原稿をスキャンしてコピーに要する時間を、終了時刻と推定できる。例えば複数枚のコピーを行った場合での平均所要時間を、このコピーに要する時間として事前に求めておくのが良い。一方、ＡＤＦを用いたコピーの場合では、一般的に、ユーザが何枚の原稿をスキャンするのかを処理開始前に正確に取得するのが難しい上に、時間間隔が短く連続的に複数原稿がスキャンされる。その為、処理時間を推定、および、終了時刻の推定が容易ではない。処理の終了タイミングが装置で推定する事が困難である場合、終了時刻を、図７（Ｃ）に示すような同時実行されている機能の中で最も遅く終了するように設定したり、理論上必要となる最大の処理時間を終了時刻として設定したりすることが考えられる。また、特定の種類もしくは特定の設定の処理については、他のＰＲ領域にて動作中の処理との関係により終了時刻を決定してもよいし、予め決められた処理時間を用いて終了時刻を決定してもよい。
【００５４】
図７（Ｂ）は、ＰＲ領域管理テーブル７００に保持された各ＰＲ領域での処理終了時刻を考慮して決定されたコンフィグデータのロード順リスト７１０である。ここではコンフィグデータのロード順を決定する手法として、処理終了時刻が早いＰＲ領域の順に、それぞれに構成可能なコンフィグデータがロードするよう決定される。前述したように、処理終了時刻の推定が難しい処理については、図７（Ｄ）に示すようにロード順の最後にする等の操作を行っても良い。ロード順リスト７１０は、再構成管理部２０５が管理しても良いし、ＣＰＵ１０１上で動作するソフトウェアで管理しても良い。再構成管理部２０５はＣＰＵ１０１の指示の下、各ＰＲ領域に対応するコンフィグデータのＲＡＭ１１１へのロードを行う場合に、ロード順リスト７１０に保持されている順番に従ってロードを実行する。
【００５５】
［終了時間を考慮した部分再構成の制御フロー］
図８は、ＰＲ領域での処理が終了するタイミングを考慮して、最も終了するタイミングが早いＰＲ領域用のコンフィグデータからロードする方法を利用した、本実施形態に係る画像処理装置のジョブ実行処理制御を表すフローチャートである。なお、Ｓ８０１〜Ｓ８０７以外の処理は、第一の実施形態にて既に説明した図４のフローチャートの処理と同一であるため、重複する箇所は説明を省略する。
【００５６】
処理が終了したＰＲ領域がない場合（Ｓ４０５にてＮＯ）、Ｓ８０１にてＣＰＵ１０１は、ＰＲ領域管理テーブル７００から各ＰＲ領域での処理終了時刻を取得する。処理終了時刻の算出方法は、例えば既に図７（Ａ）の説明で述べた通りである。
【００５７】
Ｓ８０２にて、ＣＰＵ１０１は、Ｓ８０１で取得した処理終了時刻に基づいて、ＲＡＭ１１１にロードするコンフィグデータの順番を決定し、ロード順リスト７１０を生成する。既に述べた通り、部分再構成では同じ機能を実現する場合においても、構成場所によって異なるコンフィグデータを用意しておく必要がある。本実施形態では、最も早く処理が終了すると予測されているＰＲ領域に対応するコンフィグデータから優先的にＲＡＭ１１１にロードしておく。これにより、いずれかのＰＲ領域での処理が終了した時点で、回路構成情報をダウンロードしている途中であっても、再構成可能なコンフィグデータがＲＡＭ１１１に存在している確率がより高めることができる。
【００５８】
Ｓ８０３にて、ＣＰＵ１０１は、コンフィグコントローラ１３０により、Ｓ８０５で決定した順番に基づき、ＲＡＭ１１１にＸ番目のコンフィグデータをロードするように指示する。なお、変数Ｘの初期値は「１」とし、ロード順リスト７１０のうち、最もロードする優先順位の高いものから順に１番目、２番目．．．とする。
【００５９】
Ｓ４０７にて、ＣＰＵ１０１は、再構成管理部２０５から全ＰＲ領域の動作状態のステータス取得を行う。
【００６０】
Ｓ４０８にて、ＣＰＵ１０１は、Ｓ４０７にて取得した情報に基づいて、いずれかのＰＲ領域での処理が終了したか否かを判定する。いずれかのＰＲ領域での処理が終了していた場合は（Ｓ４０８にてＹＥＳ）Ｓ４０９へ進み、全てのＰＲ領域で処理が続行中の場合は（Ｓ４０８にてＮＯ）、Ｓ８０４へ進む。
【００６１】
Ｓ８０４にて、ＣＰＵ１０１は、全てのコンフィグデータがＲＡＭ１１１にロード済み否かを判定する。ロード済みである場合は（Ｓ８０４にてＹＥＳ）、Ｓ４０７へ戻り、いずれかのＰＲ領域での処理が終了するまで待機する。全てのコンフィグデータがロード済みではない場合は（Ｓ８０４にてＮＯ）、Ｓ８０５へ進む。
【００６２】
Ｓ８０５にて、ＣＰＵ１０１は、ロード対象のコンフィグデータを、コンフィグデータのロード順リスト７１０に管理されている順番に従って、現在のロード対象コンフィグデータの次の順番（Ｘ＋１番目）に設定されているコンフィグデータをロード対象とする。
【００６３】
Ｓ４０９にて、ＣＰＵ１０１は、Ｓ４０８で処理が終了したと判定されたＰＲ領域を特定する。
【００６４】
Ｓ８０６にて、ＣＰＵ１０１は、ＲＡＭ１１１へのロードが終了したコンフィグデータの一覧（不図示）を取得する。ロード済みコンフィグデータの一覧は、ＲＡＭ１１１のコンフィグデータを検索して取得しても良いし、その他の方法で予め保持する等しても良い。
【００６５】
Ｓ８０７にて、ＣＰＵ１０１は、Ｓ８０６で取得したロード済みコンフィグデータ一覧と、Ｓ４０９で特定されたＰＲ領域とを比較し、再構成可能なコンフィグデータがＲＡＭ１１１にロード済みか否かを判定する。ロード済みの場合は（Ｓ８０７にてＹＥＳ）Ｓ４１０へ進む。ロード済みでない場合は（Ｓ８０７にてＮＯ）Ｓ４１６へ進む。ロード済みでないケースとしては、再構成要求が発生した時に、コンフィグデータをロードするのに要する時間よりも、いずれかのＰＲ領域での処理終了までの時間が短い場合等が一例として挙げられる。
【００６６】
本実施形態においてＳ４１６の処理が実施される条件として、Ｓ８０７の判定処理が加わっている。すなわち、ロードが完了する前にいずれかのＰＲ領域での処理が終了してしまったケースの場合も、このステップが実施され、必要なコンフィグデータがＲＡＭ１１１にロードされる事になる。
【００６７】
本実施形態により、全てのコンフィグデータのロードが完了する前に、ＰＲ領域での処理が終了した場合でも、効率良く再構成を実施し、構成時間を短縮することが可能となる。すなわち、全ての部分再構成領域での処理終了時間を考慮してコンフィグデータのロード順を定める事で、部分再構成に用いられる可能性の高いコンフィグデータを優先的にロードする。その結果、第一の実施形態の効果に加え、全てのコンフィグデータをロードしていない状態でいずれかのＰＲ領域での処理が終了したとしても、終了後から再構成完了までの時間を短縮できることとなる。
【００６８】
＜第三の実施形態＞
第一、第二の実施形態では、再構成要求が発生した場合に、所望の機能に対応するコンフィグデータを、全てのＰＲ領域分用意する事で、いずれかのＰＲ領域での処理終了後から再構成完了までの時間を短縮できる事を説明した。第三の実施形態では、コンフィグデータの保持に使用できるＲＡＭのスペースが限られたシステムにおいて、１つの機能に対応するコンフィグデータがＲＡＭ上に同時に存在出来る数を制限することで、効率的に再構成が可能となる構成について説明する。
【００６９】
［ＲＡＭの容量を考慮した部分再構成］
一般的に、画像処理装置等の機器では、主にコストの面からＲＡＭのリソースが限られる事が多い。ＲＡＭは第一の実施形態で既に述べたように、様々な処理がその記憶領域に割り振って用いられる一時記憶デバイスであり、一つ当たりの機能に割り当てられるリソースはＲＡＭが備える全リソースよりも小さくなる。一方、部分再構成は構成場所（ＰＲ領域）によって異なるコンフィグデータを用意しておく必要があるという性質を持つ為に、記憶領域を占有しやすい。このようなシステムでは、ＲＡＭに存在できるコンフィグデータの数を制限することで、リソースを占有することなく部分再構成が行える。また、このような制御を行うことで、リソースが限られていても複数の機能に対応するコンフィグデータを用意しておく事も可能になる。その為、複数の再構成要求が発生した場合でも、ＰＲ領域での処理終了までに所望のコンフィグデータをＲＡＭに用意しておけるようになる。本実施形態に係る機器構成は第一、第二の実施形態と同様であるとし、ここでの説明は省略する。
【００７０】
図９を用いて、コンフィグデータの保持に使用できるＲＡＭ１１１の容量が２０ＭＢである場合に、ロード可能なコンフィグデータの個数を算出する方法について説明する。なお、コンフィグデータの保持に使用できるＲＡＭの容量を２０ＭＢに限るものではない。
【００７１】
図９（Ａ）は、各コンフィグデータの容量を保持しておくコンフィグ容量テーブル８００の構成例を示す。コンフィグ容量テーブル８００において、例えば、機能Ａのコンフィグデータの容量は３ＭＢと示されている。同様に、機能毎のコンフィグデータと、そのサイズとが対応付けられて保持されている。
【００７２】
図９（Ｂ）は、現在、再構成要求が発生している機能がロード可能か否かの判定結果を保持するロード可否情報テーブル８１０の構成例を示す。図９（Ｂ）において、再構成要求が発生している機能が、要求発生順に並べられている。ロード可否情報テーブル８１０において、各機能に対応するコンフィグデータのサイズ、コンフィグデータ毎の最大ロード個数情報、ロード済みの個数、ロード後のＲＡＭ１１１の残容量情報、および現在ロード可能か否かを示す情報が対応付けて保持される。ロード可否情報テーブル８１０は、再構成要求が発生した際や、ロードしたコンフィグデータの数が変化した際など、テーブルの要素が変化する何らかのアクションをトリガーとして更新する事が考えられるが、これ以外を契機として更新されてもよい。
【００７３】
次に、ロードの可否を決定する方法の一例について説明する。ここでは、説明の簡単化の為、各コンフィグデータの最大個数が予め設定されている画像処理装置を例に説明する。ロード可否を決定する為には、現在使用可能なＲＡＭ１１１の現在の残容量情報と、ロードしたいコンフィグデータのサイズとから、コンフィグデータをロードした後のＲＡＭ１１１の残容量を算出する。コンフィグデータをロードした後のＲＡＭ１１１の残容量が０以上であれば、ロード可能と判定し、そうでなければロード不可能と判定する。これを再構成要求が発生した機能順に行う。図９（Ｂ）では、２番目に発生した再構成要求に対応するコンフィグデータまでをロードした場合のＲＡＭ１１１の残容量は８ＭＢであり、ここまでのコンフィグデータはロード可能となる。一方、３番目に発生した再構成要求に対応するコンフィグデータをロードする場合、それらのデータサイズは残容量を上回ってしまう為、ロード不可能と判定される。
【００７４】
なお、上記の例ではコンフィグデータの最大個数を固定値とした画像処理装置を例に説明してきたが、最大個数を動的に変化させても良い。例えば、再構成要求が１つしかない場合は、コンフィグデータ保持用に設定されているＲＡＭの最大容量を上限として保持可能とする。そして、新たな再構成要求が発生した場合は、２種類のコンフィグデータをロード出来るように、最大個数を更新する。更新を繰り返した場合、最大個数が既にロードしたコンフィグデータの数を下回る可能性がある。その際には、最後にロードされたコンフィグデータ（優先順位が最も低いコンフィグデータ）を削除するなどしてもよい。上記では２つの例を挙げて、ＲＡＭにロード可能なコンフィグデータの最大個数を制限する方法を述べたが、他の方法を使用しても良い。
【００７５】
［ロード可能なコンフィグ数を制限した部分再構成の制御フロー］
図１０は、予め設定されたＲＡＭ１１１に存在できるコンフィグデータの数の制限を課した、本実施形態に係る画像処理装置の制御処理を表すフローチャートである。Ｓ１００１〜Ｓ１００５以外のステップは上述した実施形態にて既に説明しているため、重複する箇所については説明を省略する。
【００７６】
処理が終了したＰＲ領域がない場合（Ｓ４０５にてＮＯ）、Ｓ１００１にて、ＣＰＵ１０１は、いずれのＰＲ領域に対応するコンフィグデータをロードするかを決定する。決定方法はどのようなものを適用しても良く、例えば第二の実施形態で説明した手法を用い、処理終了が早いＰＲ領域を再構成可能なコンフィグデータからロードすることが考えられる。
【００７７】
Ｓ１００２にて、ＣＰＵ１０１は、図９（Ｂ）に示したロード可否情報テーブル８１０に保持されている情報を取得する。ここで取得する情報としては、再構成要求が発生しているコンフィグデータのロードの可否、最大ロード可能数、およびロード済みのコンフィグデータの数である。ロード可否情報テーブル８１０は、所定のタイミングで更新され続ける。
【００７８】
Ｓ１００３にて、ＣＰＵ１０１は、Ｓ１００２で取得した情報に基づき、コンフィグデータのロード開始が可能か否かを判定する。ロード可能と判定した場合には（Ｓ１００３にてＹＥＳ）Ｓ８０３へ進む。ロード不可と判定した場合には（Ｓ１００３にてＮＯ）、Ｓ４０７へ進む。
【００７９】
Ｓ８０３にて、ＣＰＵ１０１は、Ｓ１００１で決定したロード順にしたがい、現在ロード対象となっているＸ番目のコンフィグデータのロードを、コンフィグコントローラ１３０により実施するように指示する。
【００８０】
Ｓ８０５にて、ＣＰＵ１０１は、ロード対象を次のコンフィグデータ（Ｘ＋１番目）に変更し、Ｓ４０７へ進む。
【００８１】
全てのＰＲ領域で処理が終了していないと判定した場合（Ｓ４０８にてＮＯ）、Ｓ１００４にて、ＣＰＵ１０１は、Ｓ１００２で取得した情報を参照して、ロード済みのコンフィグデータの数と最大ロード可能数を比較し、最大ロード可能数分のコンフィグデータをロードしたか否かを判定する。ロード済みのコンフィグデータの数が最大ロード可能数以上である場合は（Ｓ１００４にてＹＥＳ）、Ｓ４０７へ進む。最大ロード可能数より小さい場合（Ｓ１００４にてＮＯ）、Ｓ１００２へ進む。
【００８２】
本実施形態により、コンフィグデータの保持に使用できるＲＡＭのスペースが限られた画像処理装置においても、効率的に動的部分再構成が可能となる。すなわち、記憶領域を占有しやすい部分再構成において、ＲＡＭに存在できるコンフィグデータの数を制限することで、記憶リソースを占有することなく、部分再構成が行える。そして、このような制御を行うことで、リソースが限られていても、複数の機能のコンフィグデータを用意しておく事も可能になる。その為、複数の再構成要求が発生した場合でも、ＰＲ領域での処理終了までに所望のコンフィグデータをＲＡＭに用意しておけるようになる。
【００８３】
＜その他の実施形態＞
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施例の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００８４】
１００・・・画像処理装置、１０１・・・ＣＰＵ、１０４・・・ＲＯＭ、１１１・・・ＲＡＭ、１２０・・・システムバス、１２１・・・画像バス、１３０・・・コンフィグコントローラ、１４０・・・ＦＰＧＡ、１５０・・・ＨＤＤ
【図１】
2016057828.tif 000003
【図２】
2016057828.tif 000004
【図３】
2016057828.tif 000005
【図４】
2016057828.tif 000006
【図５】
2016057828.tif 000007
【図６】
2016057828.tif 000008
【図７】
2016057828.tif 000009
【図８】
2016057828.tif 000010
【図９】
2016057828.tif 000011
【図１０】
2016057828.tif 000012