(57)【要約】【課題】  あらかじめ確保される論理ブロックと論理ブロック間の内部インターフェース信号の配線に対してジョブに対応して必要な数の論理コンフィグデータを効率よく再構成する。【解決手段】  ジョブ処理を実行する情報処理装置において、ジョブが要求されることに応じて、第１の記憶手段で使用されていない論理ブロックの数が、前記論理ブロックに再構成される前記ジョブに対応づけられた論理コンフィグデータの数よりも多いかどうかを判断する。ここで、第１の記憶手段で使用されていない論理ブロックの数が、前記論理ブロックに再構成される前記ジョブに対応づけられた論理コンフィグデータの数よりも多く、使用されていないブロックが互いに近い位置に存在すると判断した場合、ＣＰＵ１０１が要求されたジョブに対応する論理コンフィグデータの再構成をコンフィグコントローラ１３０に対して指示する構成を特徴とする。【選択図】  図５
2016111502.tif 000002
【特許請求の範囲】
【請求項１】
ジョブ処理を実行する情報処理装置であって、
所定数に分割されて論理ブロックが確保され、動的に書き換えが可能な第１の記憶手段と、
いずれかの論理ブロックに書き込むべき単一の論理コンフィグデータまたは複数の論理ブロックに書き込むべき前記論理ブロックのサイズに応じて分割された複数の論理コンフィグデータをジョブの属性に対応づけて記憶する第２の記憶手段と、
前記いずれかの論理ブロックに前記第２の記憶手段から読み出される単一のまたは複数の論理コンフィグデータを書き込んで機能処理を再構成する再構成手段と、
ジョブが要求されることに応じて、前記第１の記憶手段で使用されていない論理ブロックの数が、前記論理ブロックに再構成される前記ジョブに対応づけられた論理コンフィグデータの数よりも多いかどうかを判断する第１の判断手段と、
前記第１の記憶手段で使用されていない論理ブロックが複数ある場合、それらが互いに近い位置に配置されているかどうかを判断する第２の判断手段と、
前記第１の判断手段と前記第２の判断手段に基づいて、前記第１の記憶手段で使用されていない論理ブロックの数が、前記論理ブロックに再構成される前記ジョブに対応づけられた論理コンフィグデータの数よりも多く、互いに近い位置にあると判断した場合、要求されたジョブに対応する論理コンフィグデータの再構成を前記再構成手段に対して指示する制御手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記第２の判断手段は、前記第１の記憶手段で使用されていない論理ブロック間に内部インターフェース信号の配線があるかどうかに基づいて判断することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記制御手段は、前記第１の記憶手段で使用されている論理ブロックがある場合、前記第１の記憶手段で使用されてない論理ブロックのうち、前記第１の記憶手段で使用されている論理ブロックに近い位置にある論理ブロックを使って要求されたジョブに対応する論理コンフィグデータの再構成を前記再構成手段に対して指示することを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記第１の判断手段と前記第２の判断手段に基づいて、前記第１の記憶手段で使用されていない論理ブロックの数が、前記論理ブロックに再構成される前記ジョブに対応づけられた論理コンフィグデータの数よりも多いが、前記第１の記憶手段で使用されていない論理ブロックの位置が近い位置にないと判断した場合、前記第１の記憶手段で使用されている論理ブロックの処理を別の使用されていない論理ブロックへ移動可能かを判断する第３の判断手段を備え、
前記制御手段は、前記第３の判断手段で、前記第１の記憶手段で使用されている論理ブロックの処理を別の使用されていない論理ブロックへ移動可能と判断した場合、前記第１の記憶手段で使用されている論理ブロックの処理を別の使用されていない論理ブロックへ移動し、要求されたジョブに対応する論理コンフィグデータの再構成を前記再構成手段に対して指示することを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記論理ブロックに記憶された論理コンフィグデータに基づいて、要求されるジョブを実行する第１のジョブ処理手段を備えることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記第１の記憶手段は、揮発性の記憶媒体であることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項７】
前記第２の記憶手段は、不揮発性の記憶媒体であることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項８】
前記ジョブは、スキャンジョブ、プリントジョブ、ファクシミリジョブを含むことを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。    
【請求項９】
前記情報処理装置は、画像処理装置、画像形成装置、複合画像形成装置を含むことを特徴とする請求項１乃至８のいずれか１項に記載の情報処理装置。
【請求項１０】
所定数に分割されて論理ブロックが確保され、動的に構成が可能な第１の記憶手段と、いずれかの論理ブロックに書き込むべき単一の論理コンフィグデータまたは複数の論理ブロックに書き込むべき前記論理ブロックのサイズに応じて分割された複数の論理コンフィグデータをジョブの属性に対応づけて記憶する第２の記憶手段とを備えてジョブ処理を実行する情報処理装置の制御方法であって、
前記いずれかの論理ブロックに前記第２の記憶手段から読み出される論理コンフィグデータを書き込んで機能処理を再構成する再構成工程と、
ジョブが要求されることに応じて、前記第１の記憶手段で使用されていない論理ブロックの数が、前記論理ブロックに再構成される前記ジョブに対応づけられた論理コンフィグデータの数よりも多いかどうかを判断する第１の判断工程と、
前記第１の記憶手段で使用されていない論理ブロックが複数ある場合、それらが互いに近い位置に配置されているかどうかを判断する第２の判断工程と、
前記第１の判断手段と前記第２の判断手段に基づいて、前記第１の記憶手段で使用されていない論理ブロックの数が、前記論理ブロックに再構成される前記ジョブに対応づけられた論理コンフィグデータの数よりも多く、前記第１の記憶手段で使用されていない論理ブロックの位置が近い位置にあると判断した場合、要求されたジョブに対応する論理コンフィグデータの再構成を前記再構成工程に対して指示する制御工程と、
を備えることを特徴とする情報処理装置の制御方法。
【請求項１１】
請求項１０に記載の情報処理装置の制御方法をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理装置の制御方法、及びプログラムに関するものである。
【背景技術】
【０００２】
情報処理装置に適用される回路として、内部の論理回路構成を変更可能なＰＬＤ（ＰＲＯＧＲＡＭＭＡＢＬＥ  ＬＯＧＩＣ  ＤＥＶＩＣＥ）やＦＰＧＡ（ＦＩＥＬＤ  ＰＲＯＧＲＡＭＭＡＢＬＥ  ＧＡＴＥ  ＡＲＲＡＹ）などの再構成可能回路が良く知られている。
【０００３】
一般的に、ＰＬＤやＦＰＧＡは起動時に不揮発性メモリへ格納された論理コンフィグデータ（以下、コンフィグデータ）を内部の揮発性メモリであるコンフィギュレーションメモリへ書き込み、内部論理ブロックの機能を切り替えることで再構成が実現される。
【０００４】
また、コンフィギュレーションメモリ内の情報は電源切断時にクリアされるため、電源投入時には再度、コンフィグデータをコンフィギュレーションメモリに書き込むことで再構成を行う必要がある。このように、一度だけハードウェアリソースの構成を行う方法を静的再構成という。
一方で、回路が動作中に論理回路構成を変更することが可能なものも開発されてきており、動作中に論理回路を変更する方法を動的再構成という。
【０００５】
また、ＦＰＧＡには、チップ全体ではなく特定の領域だけを書き換えることが可能なものがあり、このような書き換えを部分再構成という。特に、動作中の他の回路を停止しない状態で部分再構成を行うことを動的部分再構成という。動的部分再構成では、動的再構成時にコンフィギュレーションメモリ全体を書き換えるのではなく、コンフィギュレーションメモリ領域の一部のみを書き換えることで、ＦＰＧＡ内部の論理ブロックの部分的な再構成を実現することが可能となる。
【０００６】
このような動的部分再構成技術を用いることで、一つの領域に複数の回路を切り替えて実装することが可能となるため、ハードウェアリソースの時分割多重化を行い論理ブロックで実現する機能を変更することができる。その結果、少ないハードウェアリソースで用途に合わせた様々な機能をハードウェアによる高い演算性能を保ったままで柔軟に実現することが可能となる。
【０００７】
動的部分再構成の際、所望の機能を部分再構成回路上で実行するためには、部分再構成可能な領域に適合する回路構成のコンフィグデータを準備する必要がある。
例えば、１つの機能について、複数の部分再構成可能な領域に適合するよう回路を構成するための別々のコンフィグデータを記憶装置に格納する。そして、再構成可能な空き領域がある場合、その領域に適合する回路構成のコンフィグデータを選択し、再構成を実行する技術が開示されている（例えば、特許文献１参照）。
【０００８】
また、すべての部分再構成領域で所望の機能を実現するためには、部分再構成領域に構成される回路の動作に必要なインターフェース仕様をすべて満たすような、部分再構成領域間の物理的なインターフェース信号の配線をあらかじめ準備しておく必要がある。
この部分再構成領域のインターフェース信号の配線（以下、インターフェース信号と単に呼ぶ）を介した処理回路のデータのやり取りにより、所望の機能を実現するための回路を動作させることができる。
【０００９】
さらに、情報処理装置、例えば近年のＭＦＰ（ＭＵＬＴＩ  ＦＵＮＣＴＩＯＮ  ＰＲＩＮＴＥＲ）等の画像処理装置は、ユーザからの要求に応じた複数の処理（コピージョブ，プリントジョブ，ＳＥＮＤジョブ等）を選択可能である。ＭＦＰの各処理に応じた画像処理はハードウェアまたはソフトウェアにより実現される。
この画像処理装置の画像処理ハードウェアとしてＦＰＧＡ等の再構成可能回路を適用した場合、上述した様な機能毎に回路構成を動的かつ部分的に切り替えることが可能となる。その結果、少ないハードウェアリソースで様々な画像処理機能が実現できる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２０００−２５２８１４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
上述の再構成可能回路を有する画像処理装置において、部分再構成回路に構成する画像処理機能が高機能化すると、予め準備された部分再構成可能な領域に対し、その領域に構成したい高機能な画像処理回路が必要とする領域の方が大きくなる場合がある。そのため、大きい領域を必要とする高機能な画像処理回路を再構成可能回路に構成するために、部分再構成の領域を大きいものにしなければならない。
【００１２】
しかし、大きい部分再構成領域を必要とする機能に合わせて、再構成可能回路の部分再構成の領域を大きい領域で構成してしまうと、再構成可能回路上の部分再構成のための領域数が減ってしまい、その結果、部分再構成の自由度が低下するという課題がある。
【００１３】
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、要求されるジョブに応じて、あらかじめ確保される論理ブロックと論理ブロック間の配線に対し、必要な数の論理コンフィグデータを効率よく再構成できる仕組みを提供することである。
【課題を解決するための手段】
【００１４】
上記目的を達成する本発明の情報処理装置は以下に示す構成を備える。
ジョブ処理を実行する情報処理装置であって、所定数に分割されて論理ブロックが確保され、動的に書き換えが可能な第１の記憶手段と、いずれかの論理ブロックに書き込むべき単一の論理コンフィグデータまたは複数の論理ブロックに書き込むべき前記論理ブロックのサイズに応じて分割された複数の論理コンフィグデータをジョブの属性に対応づけて記憶する第２の記憶手段と、前記いずれかの論理ブロックに前記第２の記憶手段から読み出される単一のまたは複数の論理コンフィグデータを書き込んで機能処理を再構成する再構成手段と、ジョブが要求されることに応じて、前記第１の記憶手段で使用されていない論理ブロックの数が、前記論理ブロックに再構成される前記ジョブに対応づけられた論理コンフィグデータの数よりも多いかどうかを判断する第１の判断手段と、前記１の記憶手段で使用されていない論理ブロックが複数ある場合、それらが互いに近い位置に配置されているかどうかを判断する第２の判断手段と、前記第１の判断手段と前記第２の判断手段に基づいて、前記第１の記憶手段で使用されていない論理ブロックの数が、前記論理ブロックに再構成される前記ジョブに対応づけられた論理コンフィグデータの数よりも多く、互いに近い位置にあると判断した場合、要求されたジョブに対応する論理コンフィグデータの再構成を前記再構成手段に対して指示する制御手段と、を備えることを特徴とする。
【発明の効果】
【００１５】
本発明によれば、あらかじめ確保される論理ブロックと論理ブロック間の内部インターフェース信号の配線に対してジョブに対応して必要な数の論理コンフィグデータを効率よく再構成できる。
【図面の簡単な説明】
【００１６】
【図１】情報処理装置の構成を説明するブロック図である。
【図２】画像処理装置の要部の詳細を説明するブロック図である。
【図３】ＦＰＧＡに搭載される画像処理機能とコンフィグデータの関係を説明する図である。
【図４】コンフィグデータ格納部に格納されるコンフィグデータを示す図である。
【図５】情報処理装置の制御方法を説明するフローチャートである。
【図６】情報処理装置の制御方法を説明するフローチャートである。
【図７】ＦＰＧＡに構成された部分再構成回路の再構成例を示す図である。
【図８】ＦＰＧＡに構成された部分再構成回路の再構成例を示す図である。
【図９】情報処理装置の制御方法を説明するフローチャートである。
【図１０】部分再構成回路の再構成例を示す図である。
【図１１】部分再構成回路の再構成例を示す図である。
【図１２】部分再構成回路の再構成例を示す図である。
【図１３】部分再構成回路の再構成例を示す図である。
【図１４】ＦＰＧＡの部分再構成部を説明するブロック図である。
【図１５】ＦＰＧＡの再構成例を示す図である。
【図１６】ＦＰＧＡの再構成例を示す図である。
【図１７】情報処理装置の制御方法を説明するフローチャートである。
【図１８】部分再構成回路の再構成例を示す図である。
【図１９】部分再構成回路の再構成例を示す図である。
【発明を実施するための形態】
【００１７】
次に本発明を実施するための最良の形態について図面を参照して説明する。
〔第１実施形態〕
＜画像処理装置の構成＞
【００１８】
図１は、本実施形態を示す情報処理装置の構成を説明するブロック図である。なお、本実施形態では、情報処理装置の一例として以下の画像処理装置１００について説明するが、本発明は、画像処理装置に限定されず、後述するような複合画像形成装置も含まれる。また、本実施形態の画像処理装置１００は、画像処理装置１００を使用するユーザが各種の操作を行うための操作部１０３と、操作部１０３からの指示に従い画像情報を読み取るスキャナ部１０９と、画像データを用紙に印刷するプリンタ部１０７とを有する。
【００１９】
図１において、スキャナ部１０９は、スキャナ部１０９を制御する図示しないＣＰＵや原稿読取を行うための図示しない照明ランプや走査ミラーなどを有する。プリンタ部１０７は、プリンタ部１０７の制御を行う図示しないＣＰＵや画像形成や定着を行うための図示しない感光体ドラムや定着器を有する。
また、画像処理装置１００は、画像処理装置１００の動作を統括的に制御するＣＰＵ１０１および、ＣＰＵ１０１が実行するプログラムやＦＰＧＡ１４０をコンフィギュレーションする為のコンフィグデータが格納されているＲＯＭ１０４を有する。
【００２０】
ここで、ＦＰＧＡ１４０は、動的書き換え可能かつ部分書き換え可能なものである。すなわち、ＦＰＧＡ１４０の再構成部の一部に構成された回路が動作している間に、その回路が占める部分とは重ならない別の部分に別の回路を再構成することができる。
本実施形態では再構成可能デバイスとしてＦＰＧＡを例に説明しているが、ＦＰＧＡ以外の再構成可能デバイスが接続される構成であってもよい。
【００２１】
また、画像処理装置１００は、ＣＰＵ１０１が動作するためのシステムワークメモリであり、かつ画像データを一時記憶するための画像メモリでもあるＲＡＭ１１１と、ＲＡＭ１１１へのデータ書き込み、読み出し動作を制御するメモリコントローラ１１０を有する。メモリコントローラ１１０は、システムバス１２０および画像バス１２１に接続され、ＲＡＭ１１１へのアクセスを制御する。
【００２２】
また、画像処理装置１００は、スキャナ部１０９から画像データが入力されるスキャナＩ／Ｆ１０８と、プリンタへ画像データを出力するプリンタＩ／Ｆ１０６とを有する。ＦＰＧＡ１４０及びスキャナＩ／Ｆ１０８、プリンタＩ／Ｆ１０６は、処理される画像データを転送するための画像バス１２１に接続される。
【００２３】
また、画像処理装置１００は、ネットワークＩ／Ｆ１０２を介し、ネットワーク上の図示しない汎用コンピュータと通信（送受信）を行い、情報処理装置で実行可能なジョブを受信する。ここで、実行できるジョブ処理には、スキャンジョブ、プリントジョブ、ファクシミリジョブ等のジョブ処理が含まれる。また、画像処理装置１００はＵＳＢ  Ｉ／Ｆ１１４を介し、画像処理装置１００と接続された図示しない汎用コンピュータと通信（送受信）を行う。
また、画像処理装置１００は、ＦＡＸ  Ｉ／Ｆ１１５を介し、公衆回線網と接続し、図示しない他の画像処理装置やファクシミリ装置と通信（送受信）を行う。
画像処理装置１００は、ＣＰＵ１０１が実行するプログラム、ＲＯＭ１０４への書き込み、読み出し動作を制御するＲＯＭ  Ｉ／Ｆ１１２を有する。また、画像処理装置１００は、ＣＰＵ１０１、ネットワークＩ／Ｆ１０２、操作部１０３、ＲＯＭ  Ｉ／Ｆ１１２、コンフィグコントローラ１３０、ＦＰＧＡ１４０を相互に接続するシステムバス１２０を有する。ＣＰＵ１０１は、ＦＰＧＡ１４０と、スキャナＩ／Ｆ１０８、プリンタＩ／Ｆ１０６のパラメータ設定を、システムバス１２０を介して行う。コンフィグコントローラ１３０は後述のＦＰＧＡ内部の部分再構成部への再構成制御を行う。
【００２４】
［部分再構成に関する構成］
図２は、図１に示した画像処理装置の要部の詳細を説明するブロック図である。なお、図１と同一のものには同一の符号を付してその説明を省略する。
図２において、ＦＰＧＡ１４０は、部分再構成部（ＰＲ１）２０１、部分再構成部（ＰＲ２）２０２、部分再構成部（ＰＲ３）２０３、部分再構成部（ＰＲ４）２０４の計４つの部分再構成部を備える。各部分再構成部は動的に画像処理回路等を書き換えることが可能である。
【００２５】
本実施形態においては、画像処理機能を持つ回路を所定数の部分再構成部に構成する例について説明をしているが、もちろん画像処理機能以外の回路を部分再構成部に構成可能であることは言うまでもない。
【００２６】
また、ＦＰＧＡ１４０の部分再構成部２０１〜２０４は、相互の部分再構成部を接続する内部インターフェース信号の配線（以下、単に内部インターフェース信号と呼ぶ）２０７〜２１０を有する。内部インターフェース信号２０７は部分再構成部２０１と部分再構成部２０２を接続する。内部インターフェース信号２０８は部分再構成部２０２と部分再構成部２０４を接続する。内部インターフェース信号２０９は部分再構成部２０３と部分再構成部２０４を接続する。内部インターフェース信号２１０は部分再構成部２０１、部分再構成部２０３を接続する。
【００２７】
不揮発性メモリであるＲＯＭ１０４はコンフィグデータ格納部２０５を持つ。揮発性メモリであるコンフィグデータ格納部２０５には、後述の部分再構成部２０１〜２０４のための論理コンフィグデータ（コンフィグデータ）がジョブの属性に対応づけて格納される。なお、以下の説明では、所定数に分割された部分再構成部２０１〜２０４が論理ブロックとしてＦＰＧＡ１４０に確保される場合を説明する。また、当該部分再構成部２０１〜２０４に書き込まれるコンフィグデータは、後述する図４に示すように書き込まれる。
具体的には、１つのコンフィグデータが単体（単一）として機能処理を実行するように該部分再構成部２０１〜２０４のいずれかに書き込まれる場合の他に、以下のように複数のコンフィグデータが書き込まれる場合とがある。後者の場合には、一体となるコンフィグデータがあらかじめ部分再構成部２０１〜２０４の記憶領域のサイズに対応づけて分割されている。
そして、当該部分再構成部２０１〜２０４には、後述する制御に従い、空いている複数の部分再構成部に、１つずつ分けて書き込まれる。そして、要求されるジョブに従い、内部インターフェース信号２０７〜２１０を介した処理データのやり取りをしながら一体となって所定の機能処理を行う。
【００２８】
ＲＡＭ１１１は再構成情報格納部２０６を持つ。再構成情報格納部２０６には、後述の部分再構成部２０１〜２０４の回路構成情報や動作状態などの各部分再構成部の回路構成に関する情報が格納される。
【００２９】
コンフィグコントローラ１３０は、各部分再構成部２０１、２０２、２０３、２０４の部分再構成を制御する。コンフィグコントローラ１３０は、ＣＰＵ１０１の指示を受け、部分再構成部の書き換えを行う。その時、再構成情報格納部２０６に格納された部分再構成部２０１〜２０４の回路構成情報から書き換え可能な部分再構成部に対して選択されたコンフィグデータを使って各部分再構成部２０１〜２０４への書き換えを行う。
【００３０】
また、コンフィグコントローラ１３０は、書き換え完了後、再構成情報格納部２０６に格納された、書き換えが完了した部分再構成部の回路構成情報を更新するとともに、ＣＰＵ１０１に書き換え完了を通知する。
【００３１】
図３は、図１に示したＦＰＧＡ１４０に搭載される画像処理機能とコンフィグデータの関係を説明する図である。
図３のように、画像処理装置に搭載される機能Ａ、Ｂ、Ｃ、Ｚ、Ｙに対し、それらの機能を実現する回路の構成に必要なコンフィグデータが準備される。例えば、機能Ａはスキャナ部１０９の読み取り画像データに対するスキャン画像処理、機能Ｂはプリンタ部１０７の印刷画像データに対するプリント画像処理、機能ＣはＦＡＸ  Ｉ／Ｆ１１５を介したＦＡＸ送信画像処理データに対するＦＡＸ画像処理である。
【００３２】
また、機能Ｚ、Ｙはスキャン画像処理機能Ａやプリント画像処理機能Ｂの高機能版として新たに画像処理装置に搭載される高機能画像処理である。これらの機能が部分再構成部２個を用いた回路構成をとる場合、２個のコンフィグデータが準備される。１つの機能に対する複数コンフィグデータはコンフィグデータＺ１、Ｚ２のようにコンフィグデータの機能を示す機能名ラベルとコンフィグ実行の順番を示す番号ラベルで管理される。
【００３３】
例えば、コンフィグデータＺ１、Ｚ２のように、スキャナＩ／Ｆ１０８の読み取り制御を行うスキャンＩＦ処理回路とスキャンＩＦ処理回路の処理結果に対する色変換処理を行うスキャン色処理回路のように機能Ｚを前段処理と後段処理に時分割してもよい。機能Ｚのような処理回路の分割をする場合、内部インターフェース信号２０７〜２１０は画像データ転送用のインターフェース信号の配線となる。または、コンフィグデータＹ１、Ｙ２のように、高解像プリント画像データの生成のためのマトリクステーブル格納回路とそのテーブルを使ったハーフトーン処理を行うハーフトーン処理回路のように機能Ｙを同時連携動作する処理に分割してもよい。
【００３４】
機能Ｙのような処理回路の分割をする場合、内部インターフェース信号２０７〜２１０は画像データ転送用のインターフェース信号の配線と、マトリクステーブルデータ転送用のインターフェース信号の配線を持つ構成となる。
なお、これらは一例であり、所望の機能を実現するための部分再構成部に構成するコンフィグデータの数や処理回路の分割の方法、および部分再構成部間の内部インターフェース信号の配線方法は、上記の方法に限定されない。
【００３５】
図４は、図２に示したコンフィグデータ格納部２０５に格納されるＦＰＧＡ１４０の部分再構成部２０１〜２０４に構成されるコンフィグデータの格納方法を説明する図である。
【００３６】
図４のように、コンフィグデータ格納部２０５には部分再構成に必要な複数個のコンフィグデータが格納される。ＰＲ１用のコンフィグデータ４００は、部分再構成部２０１（ＰＲ１）に構成することが可能なコンフィグデータのセットを表している。
【００３７】
例えば、図３で示した画像処理装置に搭載される機能に対し、４０１は部分再構成部２０１（ＰＲ１）に機能Ａの回路を構成するためのＰＲ１用コンフィグＡを示す。同じく、４０２は機能Ｂの回路を構成するＰＲ１用コンフィグＢ、４０３は機能Ｃの回路を構成するＰＲ１用コンフィグＣである。
【００３８】
また、４０４と４０５は機能Ｚを２個の部分再構成部を使って構成するためのＰＲ１用コンフィグＺ１とＰＲ１用コンフィグＺ２である。同じく、４０６と４０７は機能Ｙを２個の部分再構成部を使って構成するためのＰＲ２用コンフィグＹ１とＰＲ１用コンフィグＹ２である。
【００３９】
また、ＰＲ２用のコンフィグデータ４１０は、部分再構成部２０２（ＰＲ２）に構成することが可能なコンフィグデータのセットを表している。ＰＲ２用コンフィグデータ４１０も、機能Ａ、Ｂ、Ｃ、Ｚ、Ｙのためのコンフィグデータ４１１〜４１７を格納しており、部分再構成部２０２に７つのコンフィグデータを選択し構成することが可能である。
【００４０】
また、ＰＲ３用のコンフィグデータ４２０は、部分再構成部２０３（ＰＲ３）に構成することが可能なコンフィグデータのセットを表している。ＰＲ３用コンフィグデータ４２０も、機能Ａ、Ｂ、Ｃ、Ｚ、Ｙのためのコンフィグデータ４２１〜４２７を格納しており、部分再構成部２０３に７つのコンフィグデータを選択し構成することが可能である。
【００４１】
また、ＰＲ４用のコンフィグデータ４３０は、部分再構成部２０４（ＰＲ４）に構成することが可能なコンフィグデータのセットを表している。ＰＲ４用コンフィグデータ４３０も、機能Ａ、Ｂ、Ｃ、Ｚ、Ｙのためのコンフィグデータ４３１〜４３７を格納しており、部分再構成部２０４には７つのコンフィグデータを構成することが可能である。
【００４２】
上述したように、同一機能でも部分再構成部ごとに異なるコンフィグデータを用意する必要がある。例えば、機能Ａの回路構成を部分再構成部２０１と部分再構成部２０２に構成するためには、ＰＲ１用コンフィグＡ４０１、ＰＲ２用コンフィグＡ４１１というように部分再構成部ごとに複数のコンフィグデータをコンフィグデータ格納部２０５に格納しておく。
また、本実施形態では、ＦＰＧＡ１４０内の部分再構成部の数を４、機能数を５としているが、説明をわかりやすくするためだけであり、それらの数に限定されるわけではない。
【００４３】
［再構成制御フロー］
図５は、本実施形態を示す情報処理装置の制御方法を説明するフローチャートである。本例は、図１に示した画像処理装置におけるＦＰＧＡ１４０の再構成制御例に対応する。
なお、図５の（ａ）は、ＣＰＵ１０１が実行する再構成制御手順に対応し、図５の（ｂ）は、コンフィグコントローラ１３０が実行する再構成制御手順に対応する。なお、Ｓ５０１〜Ｓ５１７は、ＣＰＵ１０１が記憶された制御プログラムを実行することで実現され、Ｓ５１８〜Ｓ５２１は、コンフィグコントローラ１３０が記憶された制御プログラムを実行することで実現される。
【００４４】
まず、図５の（ａ）を用いてＣＰＵ１０１による再構成制御フローについて説明する。Ｓ５０１では、ＣＰＵ１０１は、操作部１０３において指定されたジョブを受信したかどうかを判定する。ここで、ジョブを受信したとＣＰＵ１０１が判断した場合（Ｓ５０１のＹｅｓ）、Ｓ５０２へ移行する。
【００４５】
Ｓ５０２では、ＣＰＵ１０１は、受信したジョブに対応するＦＰＧＡ１４０に構成する画像処理機能を特定する。例えば、高機能スキャンジョブを受信した場合、高機能スキャン画像処理機能をＦＰＧＡ１４０に構成する。
【００４６】
Ｓ５０３では、ＣＰＵ１０１は、ＦＰＧＡ１４０に構成する画像処理機能に対応するコンフィグデータ数ｍ（ｍは１以上の整数）を図３の表に従って取得する。例えば、高機能スキャン画像処理の機能Ｚに対応するコンフィグデータ数ｍは２個となる。
【００４７】
Ｓ５０４では、ＣＰＵ１０１は、Ｓ５０３で取得したコンフィグデータ数ｍが２以上かどうかを判定する。ここで、取得したコンフィグデータ数ｍが２以上でないとＣＰＵ１０１が判断した場合（Ｓ５０４のＮｏ）、すなわち１つのコンフィグデータのみの画像処理機能である場合、Ｓ５０５へ移行する。一方、コンフィグデータ数ｍが２以上であるとＣＰＵ１０１が判断した場合（Ｓ５０４のＹｅｓ）、Ｓ５０７へ移行する。
【００４８】
Ｓ５０５では、ＣＰＵ１０１は、再構成情報格納部２０６に格納された部分再構成部２０１〜２０４の動作情報を取得し、書き換え可能な部分再構成部があるかを確認する。例えば、書き換え可能な部分再構成部の動作情報は「書き換え可能」、動作中の部分再構成部の動作情報は「動作中」と表される。
【００４９】
Ｓ５０６では、ＣＰＵ１０１は、Ｓ５０５で取得した動作情報から、書き換え可能な部分再構成部が１つ以上存在するかどうかを判定する。ここで、書き換え可能な部分再構成部が１つ以上存在しないとＣＰＵ１０１が判断した場合（Ｓ５０６のＮｏ）、Ｓ５０５に移行し、再構成開始を待機する。一方、書き換え可能な部分再構成部が１つ以上存在するとＣＰＵ１０１が判断した場合（Ｓ５０６のＹｅｓ）、Ｓ５１１へ移行する。
Ｓ５０７では、Ｓ５０５と同様に、ＣＰＵ１０１は、再構成情報格納部２０６に格納された部分再構成部２０１〜２０４の動作情報を取得し、書き換え可能な部分再構成部があるかを確認する。
【００５０】
Ｓ５０８では、ＣＰＵ１０１は、Ｓ５０７で取得した書き換え可能な部分再構成部の数がＳ５０３で取得したコンフィグデータ数のｍ個以上存在するかを判定する。ここで、書き換え可能な部分再構成部の数がコンフィグデータ数ｍ以上存在しないとＣＰＵ１０１が判断した場合（Ｓ５０８のＮｏ）、Ｓ５０７に移行し、再構成開始を待機する。一方、コンフィグデータ数ｍ以上存在するとＣＰＵ１０１が判断した場合（Ｓ５０８のＹｅｓ）、Ｓ５０９へ移行する。
Ｓ５０９では、ＣＰＵ１０１は、Ｓ５０７で取得した書き換え可能な部分再構成部の隣接する再構成部の情報を取得し、隣接する再構成部の動作情報も「書き換え可能」であるかを確認する。
【００５１】
Ｓ５１０では、ＣＰＵ１０１は、隣接する書き換え可能な部分再構成部の数がコンフィグデータ数のｍ個以上配置されて存在するかを判定する。ここで、隣接する書き換え可能な部分再構成部の数がコンフィグデータ数ｍ以上存在しないとＣＰＵ１０１が判断した場合（Ｓ５１０のＮｏ）、Ｓ５０７に移行し、再構成開始を待機する。一方、コンフィグデータ数ｍ以上存在するとＣＰＵ１０１が判断した場合（Ｓ５１０のＹｅｓ）、Ｓ５１１へ移行する。
【００５２】
Ｓ５１１では、ＣＰＵ１０１は、コンフィグコントローラ１３０による部分再構成開始を指示する。以降のステップでは、ＦＰＧＡ１４０に構成する機能に対応するコンフィグデータ番号をｉ（ｉは１からｍまでの整数）で表す。なお、部分再構成は、コンフィグデータ番号１から開始する。
Ｓ５１２では、ＣＰＵ１０１は、書き換え可能な部分再構成部に対するコンフィグデータ番号ｉの再構成をコンフィグコントローラ１３０へ指示する。
【００５３】
Ｓ５１３で、ＣＰＵ１０１は、Ｓ５１２でコンフィグコントローラ１３０へ指示したコンフィグデータ番号ｉの再構成が完了したかを判断する。ここで、再構成が完了したとＣＰＵ１０１が判断した場合（Ｓ５１３のＹｅｓ）、Ｓ５１４へ移行する。
【００５４】
Ｓ５１４では、ＣＰＵ１０１は、再構成情報格納部２０６内のコンフィグデータ番号ｉの再構成が完了した部分再構成部に対応する構成情報を更新する。例えば、コンフィグデータ番号ｉの再構成が完了した部分再構成部の構成情報は「コンフィグデータｉ」、動作情報は「構成完了」と表される。
【００５５】
Ｓ５１５では、ＣＰＵ１０１は、ＦＰＧＡ１４０に構成する機能に対応するｍ個すべてのコンフィグデータの再構成が完了したか（ｉ＝ｍとなったか）を判定する。ここで、すべての再構成が完了していないとＣＰＵ１０１が判断した場合（Ｓ５１５のＮｏ）、Ｓ５１６へ移行する。一方、すべての再構成が完了したとＣＰＵ１０１が判断した場合（Ｓ５１５のＹｅｓ）、Ｓ５１７へ移行する。
Ｓ５１６では、ＣＰＵ１０１は、次のコンフィグデータｉ＋１を再構成するため、Ｓ５１２へ戻る。
【００５６】
ｓＳ５１７では、ＣＰＵ１０１は、ＦＰＧＡ１４０に構成する機能に対応するすべてのコンフィグデータの再構成の完了をコンフィグコントローラ１３０へ通知し、図６で後述するＣＰＵ１０１の画像処理制御フローへ移行する。
【００５７】
次に、図５（ｂ）を用いてコンフィグコントローラ１３０による再構成制御フローについて説明する。
Ｓ５１８では、コンフィグコントローラ１３０がＣＰＵ１０１より部分再構成が指示されたかを判定する。ＣＰＵ１０１からの指示内容は、コンフィグデータ番号ｉと部分再構成を実行する部分再構成部が含まれる。再構成が指示されたとコンフィグコントローラ１３０が判断した場合（Ｓ５１８のＹｅｓ）、Ｓ５１９へ移行する。
【００５８】
Ｓ５１９では、コンフィグコントローラ１３０がＣＰＵ１０１の指示で示される部分再構成部に対応するコンフィグデータ番号ｉのコンフィグデータをコンフィグデータ格納部２０５から選択し、再構成を実行する。
例えば、部分再構成部２０１に機能ＺのコンフィグデータＺ１を再構成する場合、コンフィグデータ格納部２０５からコンフィグデータ４０１（ＰＲ１用コンフィグＺ１）を選択すればよい。
Ｓ５２０では、コンフィグコントローラ１３０がコンフィグデータ番号ｉの再構成の完了をＣＰＵ１０１に通知する。
【００５９】
Ｓ５２１では、コンフィグコントローラ１３０がＣＰＵ１０１より再構成完了の通知を受信したかどうかを判定する。ここで、再構成完了の通知を受信していないとコンフィグコントローラ１３０が判断した場合（Ｓ５２１のＮｏ）、Ｓ５１８へ戻り、次の再構成の指示を待機する。一方、再構成完了の通知を受信したとコンフィグコントローラ１３０が判断した場合（Ｓ５２１のＹｅｓ）、フローを終了する。
【００６０】
以上の再構成制御フローにより、ＦＰＧＡ１４０の部分再構成部２０１〜２０４の内部インターフェース信号２０７〜２１０の配線方法と、部分再構成部２０１〜２０４の空き状況に基づいて、複数コンフィグデータを動的に再構成することができる。
【００６１】
［画像処理制御フロー］
図６は、本実施形態を示す情報処理装置の制御方法を説明するフローチャートである。本例は、画像処理装置におけるＦＰＧＡ１４０に構成された部分再構成回路の画像処理制御例である。本例は、画像処理装置におけるＦＰＧＡ１４０に構成された部分再構成回路の画像処理制御例である。なお、各ステップは、ＣＰＵ１０１が記憶された制御プログラムを実行することで実現される。また、Ｓ６０１〜６０５はＦＰＧＡ１４０の部分再構成部の構成回路の画像処理を開始するためのフローである。
【００６２】
Ｓ６０１では、ＣＰＵ１０１は、図５の再構成制御フローでＦＰＧＡ１４０内に構成された部分再構成部の構成回路の画像処理を開始する。図５と同様に、処理を開始するコンフィグデータ番号をｊ（ｊは１からｍまでの整数）とし、処理開始はコンフィグデータ番号１から開始する。
【００６３】
Ｓ６０２では、ＣＰＵ１０１は、再構成情報格納部２０６に格納されたコンフィグデータ番号ｊに対応する部分再構成部情報を取得し、その部分再構成部の回路を起動する。例えば、コンフィグデータ番号１に対応する部分再構成部が部分再構成部２０１（ＰＲ１）ならば、部分再構成部２０１に構成された処理回路を開始する。
【００６４】
Ｓ６０３では、ＣＰＵ１０１は、Ｓ６０２で処理を開始した部分再構成部に対する、再構成情報格納部２０６に格納された動作情報を更新する。例えば、部分再構成部２０１の動作情報を「構成完了」から「動作中」へと変更する。
【００６５】
Ｓ６０４では、ＣＰＵ１０１は、図５の再構成制御フローでＦＰＧＡ１４０内に構成されたすべての部分再構成部の処理開始が完了したか（ｊ＝ｍとなったか）を判定する。ここで、すべての処理開始が完了していないとＣＰＵ１０１が判断した場合（Ｓ６０４のＮｏ）、Ｓ６０５へ移行する。
一方、すべての処理開始が完了したとＣＰＵ１０１が判断した場合（Ｓ６０４のＹｅｓ）、画像処理開始フローを終了する。
【００６６】
Ｓ６０５では、ＣＰＵ１０１は、次のコンフィグデータ番号ｊ＋１の処理開始を実行するため、Ｓ６０２へ戻る。続いて、Ｓ６０６〜６０７では、ＦＰＧＡ１４０の部分再構成部の構成回路の画像処理を終了する処理を実行する。
【００６７】
Ｓ６０６では、ＣＰＵ１０１は、部分再構成部と接続された割り込み信号（不図示）や部分再構成部のステータス確認などにより、コンフィグデータ番号ｊに対応する部分再構成部の回路の処理が終了したかどうかを判定する。ここで、部分再構成部の回路の処理が終了したとＣＰＵ１０１が判断した場合（Ｓ６０６のＹｅｓ）、Ｓ６０７へ移行する。
【００６８】
Ｓ６０７では、再構成情報格納部２０６に格納された、Ｓ６０６で処理終了を確認したコンフィグデータ番号ｊに対応する部分再構成部に対応する動作情報を更新する。例えば、部分再構成部２０１の処理が終了した場合、部分再構成部２０１の動作情報を「動作中」から「書き換え可」へと変更する。
【００６９】
以上の画像処理制御フローにより、複数の部分再構成部に構成された画像処理回路を連携して開始することで、１つの画像処理機能を実現することが可能となる。また、動作中のすべての部分再構成部に対し、処理が終了した部分再構成部の動作情報を更新することで、次に実行する機能の再構成制御フローを実行することができる。
【００７０】
［部分再構成回路の再構成例］
図７、図８は、本発明の実施形態に係る画像処理装置におけるＦＰＧＡ１４０に構成された部分再構成回路の再構成例を示す図である。なお、図７、図８の斜線部は、ＦＰＧＡ１４０の部分再構成部や再構成情報格納部２０６で変化した箇所を示している。
【００７１】
図７は、機能Ｚの実行におけるＦＰＧＡ１４０の部分再構成部２０１〜２０４の構成の例を示す図である。また、図８は、同じく機能Ｚの実行における再構成情報格納部２０６に格納された部分再構成部２０１〜２０４の回路構成情報の例を示す図である。
【００７２】
まず、図７の（ａ）、図８の（ａ）のように、部分再構成部２０２にはコンフィグＡ、部分再構成部２０３にはコンフィグＢ、部分再構成部２０４にはコンフィグＣの処理が構成され、それぞれ動作中とする。また、部分再構成部２０１は書き換え可能な状態となっている。また、部分再構成部２０１〜２０４の内部インターフェース信号２０７〜２１０が未使用であることを点線で示している。
【００７３】
このとき、コンフィグデータ数２個の機能Ｚの実行を行う場合、書き換え可能な部分再構成部の数は１個のため、ＣＰＵ１０１は再構成制御を実行しない。ＣＰＵ１０１は、部分再構成部２０１に隣接し共有する内部インターフェース信号２０７または２１０を有する部分再構成部２０２または２０３のいずれかが書き換え可能になるまで待機する。
【００７４】
次に、図７の（ｂ）、図８の（ｂ）のように、部分再構成部２０４が書き換え可能に変化すると、書き換え可能な部分再構成部の数が２個となる。しかし、部分再構成部２０１と部分再構成部２０４は互いに隣接する部分再構成部ではないため、ＣＰＵ１０１は再構成制御を待機する。
【００７５】
次に、図７の（ｃ）、図８の（ｃ）のように、部分再構成部２０２が書き換え可能に変化すると、部分再構成部２０１と部分再構成部２０２が互いに隣接する書き換え可能な部分再構成部となる。そして、ＣＰＵ１０１は機能ＺのコンフィグデータＺ１、Ｚ２の再構成をコンフィグコントローラ１３０へ指示する。コンフィグコントローラ１３０はコンフィグデータ番号順に隣接する書き換え可能な部分再構成部２０１、２０２に対し、再構成を行う。
【００７６】
図７の（ｄ）、図８の（ｄ）は、コンフィグデータＺ１、Ｚ２の再構成が完了した時点での部分再構成部２０１〜２０４の構成を示す図である。ＣＰＵ１０１はコンフィグデータＺ１、Ｚ２の再構成が完了したことが確認できると、コンフィグデータＺ１、Ｚ２の順番にそれぞれ構成済となった部分再構成部２０１、２０２の処理回路を起動する。
【００７７】
図７の（ｅ）、図８の（ｅ）は、ＣＰＵ１０１により処理回路の起動が実行された後の部分再構成部２０１〜２０４の構成を示す図である。連携して動作する部分再構成部２０１と部分再構成部２０２が有する内部インターフェース信号２０７が使用されていることを実線で示している。
【００７８】
以上のように、複数コンフィグデータを必要とする画像処理機能を、ＦＰＧＡ１４０の部分再構成部２０１〜２０４間の内部インターフェース信号２０７〜２１０の配線方法と、部分再構成部の空き状況に基づいて、動的に再構成することができる。
【００７９】
また、処理回路の連携動作のための部分再構成部間の内部インターフェース信号の配線方法は、本実施形態のように隣接する部分再構成部間に限定されない。本実施形態によれば、ＦＰＧＡ１４０の回路規模や動作周波数を満たす範囲で構成された部分再構成部間の内部インターフェース信号の配線に対して、効果的に動的な部分再構成が実現できる。
【００８０】
〔第２実施形態〕
第１実施形態では、ＣＰＵ１０１が実行する再構成制御フロー及び画像処理制御フローにより複数コンフィグデータを要する機能を実行する際、隣接する書き換え可能な部分再構成部の数がコンフィグデータ数になるまで再構成制御を待機していた。これに対し、実施形態２では、連続するジョブを実行する際、後続のジョブに対して、ＦＰＧＡ１４０の再構成制御の待機時間を削減するための再構成制御フローについて説明する。
【００８１】
［再構成制御フロー］
図９は、本実施形態を示す情報処理装置の制御方法を説明するフローチャートである。本例は、図１に示した画像処理装置におけるＦＰＧＡ１４０の再構成制御例である。なお、Ｓ５０１〜Ｓ５１７は、ＣＰＵ１０１が記憶された制御プログラムを実行することで実現され、Ｓ５１８〜Ｓ５２１は、コンフィグコントローラ１３０が記憶された制御プログラムを実行することで実現される。
【００８２】
図９の（ａ）はＣＰＵ１０１が実行する再構成制御に対応し、図９の（ｂ）はコンフィグコントローラ１３０が実行する再構成制御例である。なお、図５に示した第１実施形態の再構成制御との違いは、図５の（ａ）のＳ５１０とＳ５１１の間に、図９の（ａ）のＳ９０１〜Ｓ９０３のステップが追加される点である。
【００８３】
Ｓ９０１では、ＣＰＵ１０１は、Ｓ５１０までに取得した動作情報から、使用中の部分再構成部が存在するかどうかを判定する。部分再構成部の動作情報が「使用中」とは、「動作中」または「構成済み」の状態であり、書き換えが不可能であること示す。ここで、使用中の部分再構成部が存在しないとＣＰＵ１０１が判断した場合、つまり（Ｓ９０１のＮｏ）、Ｓ９０２に移行する。一方、使用中の部分再構成部が存在するとＣＰＵ１０１が判断した場合（Ｓ９０１のＹｅｓ）、Ｓ９０３へ移行する。
【００８４】
Ｓ９０２では、ＣＰＵ１０１は、使用中の部分再構成部が存在しないときは、どの部分再構成部も書き換え可能となるため、ｍ個のコンフィグデータの書き換えを実行する部分再構成部を任意に選択する。例えば、部分再構成部２０１（ＰＲ１）から順番に隣接するｍ個の部分再構成部を選択する。
【００８５】
Ｓ９０３では、ＣＰＵ１０１は、書き換え可能な部分再構成部のうち、使用中の部分再構成部に隣接する部分再構成部を、ｍ個のコンフィグデータの書き換えを実行する部分再構成部として選択する。ここでは、ｍ個のコンフィグデータの書き換えを実行した結果、残りの書き換え可能な部分再構成部が複数個ある場合、それらが互いに隣接するような部分再構成部を選択することが好ましい。
Ｓ５１１では、ＣＰＵ１０１は、Ｓ９０２またはＳ９０３にて選択した部分再構成部に対し、コンフィグコントローラ１３０による部分再構成開始を指示する。
【００８６】
以上の再構成制御フローにより、部分再構成を実行した結果、互いに隣接する書き換え可能な部分再構成部が多く存在するような動的部分再構成が実行できる。これにより、第１実施形態と比べ、後続のジョブに対する再構成の開始までの待機時間を短縮することが可能となる。
【００８７】
［部分再構成回路の再構成例］
図１０〜図１３は、本実施形態を示す画像処理装置におけるＦＰＧＡ１４０に構成された部分再構成回路の再構成例を示す図である。なお、図７、図８と同様に、図１０〜図１３の斜線部は、ＦＰＧＡ１４０の部分再構成部や再構成情報格納部２０６で変化した箇所を示している。本実施形態では、コンフィグデータ数が１個の機能Ａとコンフィグデータ数が２個の機能Ｚを連続して実行する場合を例として説明する。
まず、図１０と図１１は、本実施形態の再構成制御フローを適用しない場合の再構成例である。
図１０の（ａ）、図１１の（ａ）のように、部分再構成部２０４にはコンフィグＣの処理が構成され、動作中とする。また、部分再構成部２０１〜２０３は書き換え可能である。
【００８８】
ここで、コンフィグデータ１個の機能Ａを実行する場合、図１０の（ｂ）、図１１の（ｂ）のように、ＣＰＵ１０１は書き換え可能な部分再構成部２０１に対する部分再構成を、コンフィグコントローラ１３０へ指示するとする。これにより、部分再構成部２０１は、構成済の状態となる。
【００８９】
図１０の（ｃ）、図１１の（ｃ）は、ＣＰＵ１０１により機能Ａの処理回路の起動が実行された後の部分再構成部２０１〜２０４の構成を示す図である。このとき、部分再構成部２０１にはコンフィグＡが動作中、２０４にはコンフィグＣの処理が動作中、部分再構成部２０２と２０３は書き換え可能な状態となっている。
【００９０】
ここで、コンフィグデータ２個の機能Ｚを実行する場合、書き換え可能な部分再構成部は部分再構成部２０２と２０３の２個存在するが、互いに隣接しない、すなわち連携動作のためのインターフェース信号を持たないため、ＣＰＵ１０１は再構成制御を待機する。
【００９１】
次に、図１０の（ｄ）、図１１の（ｄ）のように、部分再構成部２０４が書き換え可能に変化すると、隣接する書き換え可能な部分再構成部の数が２個となる。そして、ＣＰＵ１０１は機能ＺのコンフィグデータＺ１、Ｚ２の再構成をコンフィグコントローラ１３０へ指示する。
図１０の（ｅ）、図１１の（ｅ）は、コンフィグデータＺ１、Ｚ２の再構成が完了した時点での部分再構成部２０１〜２０４の構成を示す図である。
次に、図１２と図１３は、本実施形態の再構成制御フローを適用する場合の再構成例である。
図１２の（ａ）、図１３の（ａ）は、図１０の（ａ）、図１１の（ａ）と同様に、部分再構成部２０４でコンフィグＣの処理が動作中である。
【００９２】
ここで、コンフィグデータ１個の機能Ａを実行する場合、図９のＳ９０１〜Ｓ９０３のフローに従い、ＣＰＵ１０１は、書き換え可能な部分再構成部２０１〜２０３のうち、動作中の部分再構成部２０４に隣接する部分再構成部２０３を選択する。そして、ＣＰＵ１０１は、部分再構成部２０３に対する部分再構成をコンフィグコントローラ１３０へ指示し、部分再構成部２０３は構成済みの状態となる。
【００９３】
図１２の（ｃ）、図１３の（ｃ）は、ＣＰＵ１０１により機能Ａの処理回路の起動が実行された後の部分再構成部２０１〜２０４の構成を示す図である。このとき、部分再構成部２０３にはコンフィグＡが動作中、２０４にはコンフィグＣの処理が動作中、部分再構成部２０１と２０２は書き換え可能な状態となっている。
【００９４】
ここで、コンフィグデータ２個の機能Ｚを実行する場合、書き換え可能な部分再構成部２０１と２０２は互いに隣接するため、ＣＰＵ１０１は機能ＺのコンフィグデータＺ１、Ｚ２の再構成をコンフィグコントローラ１３０へ指示する。
図１２の（ｄ）、図１３の（ｄ）は、コンフィグデータＺ１、Ｚ２の再構成が完了した時点での部分再構成部２０１〜２０４の構成を示す図である。
次に、図１４〜図１６を用いて、本実施形態でＦＰＧＡ１４０内の部分再構成部の数を６とした場合の部分再構成回路の再構成例について説明する。
【００９５】
図１４は、図１に示したＦＰＧＡ１４０の部分再構成部を説明するブロック図である。
図１４において、ＦＰＧＡ１４０は、部分再構成部（ＰＲ１〜ＰＲ６）１４０１〜１４０６の計６つの部分再構成部を備える。また、ＦＰＧＡ１４０の部分再構成部１４０１〜１４０６は、相互の部分再構成部を接続する内部インターフェース信号１４０７〜１４１３を有する。
図１５、図１６は、図１４に示した６個の部分再構成部を有するＦＰＧＡ１４０の再構成例を示す図である。本例は、本実施形態の再構成制御フローを適用する場合の再構成例である。
【００９６】
まず、図１５の（ａ）、図１６の（ａ）のように、部分再構成部１４０６でコンフィグＣの処理が動作中であるとする。
ここで、コンフィグデータ２個の機能Ｚを実行する場合、図９のＳ９０１〜Ｓ９０３のフローに従い、ＣＰＵ１０１は、書き換え可能な部分再構成部１４０１〜１４０５のうち、動作中の部分再構成部１４０６に隣接する部分再構成部を選択する。このとき、ＣＰＵ１０１は、隣接する２個の書き換え可能な部分再構成部のうち、コンフィグデータＺ１、Ｚ２の書き換えを実行した結果、残りの書き換え可能な部分再構成部が互いに隣接するような部分再構成部を選択する。
【００９７】
図１５の（ｂ）、図１６の（ｂ）は、コンフィグデータＺ１、Ｚ２の再構成が完了した時点での部分再構成部１４０１〜１４０６の構成を示す図である。
図１５の（ｂ）、図１６の（ｂ）のように、部分再構成部１４０２にコンフィグデータＺ１を、部分再構成部１４０３にコンフィグデータＺ２を構成すると、互いに隣接する部分再構成部１４０１、１４０４、１４０５が残りの書き換え可能な状態のままとなる。
以上のように、ＦＰＧＡ１４０の部分再構成部の数が増えても、本実施形態の再構成制御フローを適用することで、書き換え可能な部分再構成部が多く存在するような再構成制御が可能となる。
【００９８】
〔第３実施形態〕
本実施形態では、複数のコンフィグデータを要する機能を実行する際、書き換え可能な部分再構成部が隣接しない場合に適用するＦＰＧＡ１４０の部分再構成制御について説明する。
【００９９】
図１７は、本実施形態を示す情報処理装置の制御方法を説明するフローチャートである。本例は、図１に示したＣＰＵ１０１が実行する再構成制御に対応する。なお、図５に示した第１実施形態の再構成制御との違いは、図５の（ａ）のＳ５１０の判定に対し、図１７のＳ１７０１〜１７０７のフローが追加される点である。
【０１００】
まず、Ｓ５１０にて隣接する書き換え可能な部分再構成部の数がコンフィグデータ数ｍ以上存在するとＣＰＵ１０１が判断した場合、Ｓ１７０１へ移行し、図５（ａ）と同様に、Ｓ５１１〜Ｓ５１７の再構成制御フローを実行する。一方、Ｓ５１０にて隣接する書き換え可能な部分再構成部の数がコンフィグデータ数ｍ以上存在しないとＣＰＵ１０１が判断した場合、Ｓ１７０２へ移行する。すなわち、Ｓ１７０２は、書き換え可能な部分再構成部がコンフィグデータ数のｍ個以上存在するものの、その部分再構成部が隣接していないことで再構成ができない場合に実行するフローである。
【０１０１】
Ｓ１７０２では、ＣＰＵ１０１は、動作中の機能を停止し、別の書き換え可能な部分再構成部にその機能の処理回路を移動が可能かどうかを判定する。ここで、Ｓ１７０２の判定方法の一例として、動作中の機能と再構成を実行する機能との優先度の比較による判定や、動作中の機能と再構成を実行する機能のそれぞれのコンフィグデータ数の比較による判定方法がある。また、動作中の機能の処理終了までの予測時間が所定値以上の場合には、動作中の機能を停止するという判定方法もある。なお、Ｓ１７０２の判定方法は、上記以外の方法を使用してもよい。
【０１０２】
上記の判定により、動作中の機能を停止し、別の部分再構成部に移動できないとＣＰＵ１０１が判断した場合（Ｓ１７０２のＮｏ）、Ｓ５０７に戻り、ＣＰＵ１０１は再構成実行を待機する。
一方、動作中の機能を停止し、別の部分再構成部に移動できるとＣＰＵ１０１が判断した場合（Ｓ１７０２のＹｅｓ）、Ｓ１７０３に移行する。Ｓ１７０３では、ＣＰＵ１０１は、移動する機能が構成されている部分再構成部の処理回路を停止する。
Ｓ１７０４では、ＣＰＵ１０１は、Ｓ１７０３にて処理を停止した部分再構成部の動作情報を「書き換え可能」に更新する。Ｓ１７０５では、ＣＰＵ１０１は、Ｓ１７０４で書き換え可能となった部分再構成部とは異なる部分再構成部に対する、停止した機能の再構成をコンフィグコントローラ１３０へ指示する。
【０１０３】
Ｓ１７０６では、ＣＰＵ１０１は、Ｓ１７０５にてコンフィグコントローラ１３０へ指示した再構成が完了したかを判断する。ここで、再構成が完了したとＣＰＵ１０１が判断した場合（ＳＳ１７０６のＹｅｓ）、Ｓ１７０７へ移行する。
Ｓ１７０７では、ＣＰＵ１０１は、異なる部分再構成部への再構成が完了した移動する機能の処理を開始する。そして、Ｓ５０７へ移行し、待機中の機能に対する再構成制御に戻る。
以上の再構成制御フローにより、第１実施形態と比べ、先行するジョブの機能を含む、一連の機能の再構成制御の待機時間を短縮することが可能となる。
【０１０４】
［部分再構成回路の再構成例］
図１８、図１９は、本実施形態を示す画像処理装置におけるＦＰＧＡ１４０に構成された部分再構成回路の再構成例を示す図である。なお、図７、図８と同様に、図１８、図１９の斜線部は、ＦＰＧＡ１４０の部分再構成部や再構成情報格納部２０６で変化した箇所を示している。本実施形態では、コンフィグデータ数が２個の機能Ｚを実行する場合を例として説明する。
【０１０５】
まず、図１８の（ａ）、図１９の（ａ）のように、部分再構成部２０１にはコンフィグＡの処理が、部分再構成部２０４にはコンフィグＣの処理が構成され、動作中とする。また、部分再構成部２０２、２０３は書き換え可能である。ここで、コンフィグデータ２個の機能Ｚを実行する場合、書き換え可能な部分再構成部は、部分再構成部２０２と２０３の２個存在するが、部分再構成部２０２と２０３を接続する内部インターフェース信号を持たないため、ＣＰＵ１０１は再構成制御を待機する。
【０１０６】
次に、図１８の（ｂ）、図１９の（ｂ）のように、Ｓ１７０２の判定方法に基づき、ＣＰＵ１０１は機能を移動可能と判定した部分再構成部に対し、処理回路を停止し、動作情報を書き換え可能へ変更する。ここでは、ＣＰＵ１０１は機能Ｃが動作中の部分再構成部２０４の処理回路を停止し、動作情報を「書き換え可能」に更新している。
【０１０７】
次に、図１８の（ｃ）、図１９の（ｃ）のように、Ｓ１７０５で示すようにＣＰＵ１０１が部分再構成部２０２へ機能ＣのコンフィグデータＣの再構成をコンフィグコントローラ１３０へと指示する。そして、ＣＰＵ１０１は部分再構成部２０２の動作情報を「構成済み」へ更新する。
【０１０８】
図１８の（ｄ）、図１９の（ｄ）は、コンフィグデータＣの再構成が完了し、部分再構成部２０２の処理を開始した時の構成を示す図である。このとき、ＣＰＵ１０１は部分再構成部２０２の動作情報を「動作中」へ更新する。この時点で、再構成を待機中の機能Ｚの再構成に必要となる隣接する書き換え可能な部分再構成部２０１と２０２が存在することとなる。
そして、図１８の（ｅ）、図１９の（ｅ）のように、ＣＰＵ１０１は、部分再構成部２０１と２０２に対し、コンフィグデータＺ１、Ｚ２の再構成をコンフィグコントローラ１３０へ指示する。
【０１０９】
以上のように、複数コンフィグデータの再構成実行において、書き換え可能な部分再構成部間で内部インターフェース信号を持たないことにより発生する再構成待機時間を、動作中の機能の部分再構成部を移動することにより解消することが可能となる。
【０１１０】
上記各実施形態によれば、あらかじめ確保される論理ブロックに対してジョブに対応して必要な数の論理コンフィグデータを効率よく再構成できる。これにより、ジョブの機能に適応して必要な論理コンフィグデータの数が増えても論理ブロックに対する再構成の自由度を低下させることなく、所望の機能を実現することができる。
上記実施形態によれば、一つの機能の処理回路を複数の論理コンフィグデータに分割する場合、システムバスとのインターフェース信号だけでなく、分割の処理回路が連携動作するための内部インターフェース信号の配線が論理ブロック間に必要となる。そこで、あらかじめ再構成可能回路上で位置が近い論理ブロック間に内部インターフェース信号の配線を限定することで、再構成回路の配線の複雑化による回路規模増加や周波数低下を抑えた論理ブロックの動的部分再構成が可能となる。
【０１１１】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステムまたは装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えばＡＳＩＣ）によっても実現可能である。
また、本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施形態の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。
【符号の説明】
【０１１２】
１００  画像処理装置
１０１  ＣＰＵ
１０４  ＲＯＭ
１１１  ＲＡＭ
１２０  システムバス
１２１  画像バス
１３０  コンフィグコントローラ
１４０  ＦＰＧＡ
【図１】
2016111502.tif 000003
【図２】
2016111502.tif 000004
【図３】
2016111502.tif 000005
【図４】
2016111502.tif 000006
【図５】
2016111502.tif 000007
【図６】
2016111502.tif 000008
【図７】
2016111502.tif 000009
【図８】
2016111502.tif 000010
【図９】
2016111502.tif 000011
【図１０】
2016111502.tif 000012
【図１１】
2016111502.tif 000013
【図１２】
2016111502.tif 000014
【図１３】
2016111502.tif 000015
【図１４】
2016111502.tif 000016
【図１５】
2016111502.tif 000017
【図１６】
2016111502.tif 000018
【図１７】
2016111502.tif 000019
【図１８】
2016111502.tif 000020
【図１９】
2016111502.tif 000021