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