JP2015197863A - 画像処理装置及びその制御方法、並びにプログラム - Google Patents
画像処理装置及びその制御方法、並びにプログラム Download PDFInfo
- Publication number
- JP2015197863A JP2015197863A JP2014076462A JP2014076462A JP2015197863A JP 2015197863 A JP2015197863 A JP 2015197863A JP 2014076462 A JP2014076462 A JP 2014076462A JP 2014076462 A JP2014076462 A JP 2014076462A JP 2015197863 A JP2015197863 A JP 2015197863A
- Authority
- JP
- Japan
- Prior art keywords
- image processing
- unit
- circuit
- reconfiguration
- register
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
- Logic Circuits (AREA)
Abstract
【課題】動的部分再構成が可能な回路により画像処理を行う画像処理装置において、回路の動作状態を示す回路情報が再構成によって失われることを防ぐ技術を提供する。
【解決手段】画像処理装置100は、一部の回路構成を動的に再構成可能な再構成可能回路として、動的再構成部131を備える。動的再構成部131には、動的部分再構成により、画像処理を行う画像処理部132と、画像処理部132の動作状態を示す、画像処理のためのレジスタ値(回路情報)を保持するレジスタ部とが構成される。CPU101は、動的再構成部131が、コンフィグコントローラ130によって第1の画像処理を実行可能な回路構成に再構成された後、次に実行されるべき第2の画像処理を実行可能な回路構成に再構成される前に、レジスタ部133に保持されているレジスタ値を、動的再構成部131の外部に設けられたSRAM134に格納する。
【選択図】図1
【解決手段】画像処理装置100は、一部の回路構成を動的に再構成可能な再構成可能回路として、動的再構成部131を備える。動的再構成部131には、動的部分再構成により、画像処理を行う画像処理部132と、画像処理部132の動作状態を示す、画像処理のためのレジスタ値(回路情報)を保持するレジスタ部とが構成される。CPU101は、動的再構成部131が、コンフィグコントローラ130によって第1の画像処理を実行可能な回路構成に再構成された後、次に実行されるべき第2の画像処理を実行可能な回路構成に再構成される前に、レジスタ部133に保持されているレジスタ値を、動的再構成部131の外部に設けられたSRAM134に格納する。
【選択図】図1
Description
本発明は、画像処理装置及びその制御方法、並びにプログラムに関するものである。
論理回路の構成を変更可能なPLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)等の再構成可能回路が良く知られている。一般的に、PLDやFPGAの論理回路の変更は、起動時に、ROM等の不揮発性メモリに格納された回路構成情報(回路構成データ)を、PLDやFPGA内部の揮発性メモリであるコンフィギュレーションメモリへ書き込むことで実現される。また、コンフィギュレーションメモリの情報は電源遮断時にクリアされるため、電源投入時に、再度、ROMに記憶している回路構成情報をコンフィギュレーションメモリに書き込む必要がある。このように、電源が供給されている状態で、一度だけPLDやFPGAの論理回路を構成する方法を静的再構成という。これに対して、論理回路が動作中に、その論理回路の構成を動的に変更できるFPGA等が開発されており、このように動的に論理回路を変更する方法を動的再構成という。
またFPGAには、FPGAのチップ全体の回路構成でなく、特定の領域の回路構成だけを書き換えることが可能なものがあり、このような書き換えを部分再構成という。特に、動作中の回路の動作を停止させずに、それ以外の他の回路構成を変更することを動的部分再構成という。動的部分再構成では、動的再構成時に、コンフィギュレーションメモリ全体を書き換えるのではなく、コンフィギュレーションメモリの一部の領域のみを書き換えることで、FPGAの論理回路を部分的に再構成することができる。このような動的部分再構成を用いることで、例えばFPGAのある領域に、時分割で複数の論理回路を切り替えて実装できる。この結果、少ないハードウェアリソースで、用途に合わせた様々な機能を、ハードウェアによる高速の演算性能を保ったままで柔軟に実現できる。
また、MFP(Multi Function Printer)等の画像処理装置は、実行可能な複数の処理(コピージョブ、プリントジョブ、SENDジョブ等)のうちでユーザからの要求に応じて選択した画像処理を実行する。このような画像処理装置では、画像不良、ハングアップ等のエラーが発生する場合がある。そのようなエラーの解析及びデバッグ等のために、一般に、各種機能を実行するアプリケーションソフトウェア及び画像処理用のハードウェアに対するレジスタ設定を行うドライバソフトウェアが扱う各種のソフトウェアパラメータが解析されうる。更に、画像処理用のハードウェア内部に保持される画像処理パラメータ及び回路内部のステータス等のレジスタ値が、ソフトウェアによって外部の不揮発メモリへ格納され、エラーの解析に使用されうる。
例えば特許文献1では、FPGA等の再構成可能なコア(回路)の再構成用のコンフィギュレーションデータの付随情報(バージョン情報、更新日時等)を、再構成可能なコアの外部の記憶部に格納する、再構成可能な回路装置が提案されている。これにより、外部デバイスから付随情報を読み出すことができ、再構成可能なコアに構成されている回路に関する情報を外部から知ることを可能にしている。
しかし、複数の画像処理を時分割で実行するために、動的部分再構成が可能な回路に対して時分割で複数の論理回路を切り替えて実装するような場合、再構成により新たな回路が実装されると再構成前の回路に関する情報の少なくとも一部が失われてしまう。具体的には、特許文献1では、コンフィギュレーションデータの付随情報を再構成可能回路の外部の記憶部に格納することで、当該回路のハードウェア構成を示す回路情報を得ることは可能である。一方で、画像処理で用いられたパラメータ(レジスタ値)、及び回路のステータス等の、回路の動作状態を示す回路情報は、回路の再構成によって失われてしまう。その結果、そのような回路情報を、エラーの解析及びデバッグ等に使用することができない。このように、再構成可能回路の再構成によって当該回路の動作状態を示す回路情報が失われると、エラーが発生した場合のエラーの解析及びデバッグ等に、そのような回路情報を利用することができなくなってしまう。
本発明は、上述の問題に鑑みてなされたものである。本発明は、動的部分再構成が可能な回路により画像処理を行う画像処理装置において、回路の動作状態を示す回路情報が再構成によって失われることを防ぐ技術を提供することを目的とする。
本発明は、例えば、画像処理装置として実現できる。本発明の一態様に係る画像処理装置は、一部の回路構成を動的に再構成可能な再構成可能回路であって、画像処理を行う画像処理部と、前記画像処理部の動作状態を示す、前記画像処理のための回路情報を保持するレジスタ部とが構成される、前記再構成可能回路と、前記再構成可能回路を、ジョブで必要となる画像処理を実行可能な回路構成に再構成する再構成手段と、前記再構成手段によって、前記再構成可能回路が、第1の画像処理を実行可能な回路構成に再構成された後、次に実行されるべき第2の画像処理を実行可能な回路構成に再構成される前に、前記レジスタ部に保持されている前記回路情報を、前記再構成可能回路の外部に設けられた記憶手段に格納するよう制御する制御手段とを備えることを特徴とする。
本発明の他の一態様に係る画像処理装置は、一部の回路構成を動的に再構成可能な再構成可能回路であって、画像処理を行う画像処理部と、前記画像処理部の動作状態を示す、前記画像処理のための回路情報を保持するレジスタ部とが構成される、前記再構成可能回路と、前記画像処理部を、ジョブで必要となる画像処理を実行可能な回路構成に再構成する再構成手段と、第1の画像処理を実行可能な回路構成に前記画像処理部が再構成された後、前記第1の画像処理のための前記回路情報が前記レジスタ部に保持されたまま、次に実行されるべき第2の画像処理を実行可能な回路構成に前記画像処理部が再構成されるよう、前記再構成手段を制御する制御手段とを備えることを特徴とする。
本発明によれば、動的部分再構成が可能な回路により画像処理を行う画像処理装置において、回路の動作状態を示す回路情報が再構成によって失われることを防ぐことが可能になる。
以下、本発明を実施するための形態について図面を用いて説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものでなく、また実施形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
<画像処理装置の構成>
図1は、第1の実施形態に係る画像処理装置100の構成例を示すブロック図である。なお、本実施形態では、画像処理装置100が、スキャナ部及びプリンタ部を有する複合機(多機能処理装置)である場合を例に説明する。
図1は、第1の実施形態に係る画像処理装置100の構成例を示すブロック図である。なお、本実施形態では、画像処理装置100が、スキャナ部及びプリンタ部を有する複合機(多機能処理装置)である場合を例に説明する。
画像処理装置100は、画像処理装置100を使用するユーザが各種の操作を行うための操作部103と、原稿の画像情報を読み取るスキャナ部109と、画像データに基づいて用紙に画像を印刷するプリンタ部107とを有する。スキャナ部109は、スキャナ部109を制御するCPU(不図示)や原稿の読取を行うための照明ランプや走査ミラー(いずれも不図示)等を有する。プリンタ部107は、当該プリンタ部107の制御を行うCPU(不図示)や、画像の形成(印刷)や定着を行うための感光体ドラムや定着器(いずれも不図示)等を有する。
また、画像処理装置100は、画像処理装置100の制御を行うコントローラとして、動的再構成部を備えるFPGA140を有する。この例では、FPGA140が、画像処理装置100の動作を統括的に制御するCPU101を備える。このCPU101が、FPGA140や、再構成を制御するコンフィグコントローラ130等を制御するためのプログラムを実行する。尚、FPGA140がCPU101を備えていることはあくまで一例にすぎず、FPGA140の外部にCPUを設けてもよい。
また、画像処理装置100は、ROM104及びRAM111を有する。ROM104には、CPU101が実行するブートプログラム、及び、動的再構成部131を構成する(コンフィギュレーションする)ための回路構成データ(コンフィギュレーションデータ)が格納されている。RAM111は、CPU101が動作するためのシステムワークメモリであり、かつ画像データを一時記憶するための画像メモリでもある。CPU101は、ROM104に格納された回路構成データの複製データをRAM111に格納するとともに、RAM111から回路構成データを高速に読み出すことができる。
FPGA140は、CPU101、ネットワークインタフェース(ネットワークI/F)102、プリンタI/F106、スキャナI/F108、メモリコントローラ110、ROM I/F112、操作部I/F113、USB I/F115、FAX I/F116、コンフィグコントローラ130、動的再構成部131、SRAM134、システムバス120、及び画像バス121を備える。CPU101、ネットワークI/F102、ROM I/F112、操作部I/F113、USB I/F115、FAX I/F116、コンフィグコントローラ130、並びに動的再構成部131の画像処理部132及びレジスタ部133は、システムバス120を介して相互に接続される。また、動的再構成部131の画像処理部132、スキャナI/F108、及びプリンタI/F106は、画像バス121を介して相互に接続される。画像バス121は、処理される画像データを転送するために用いられる。なお、メモリコントローラ110は、システムバス120及び画像バス121の両方に接続される。
動的再構成部131は、回路構成(コンフィギュレーション)を動的に再構成可能(書き換え可能)であり、かつ、一部の回路構成を書き換え可能な再構成可能回路である。即ち、動的再構成部131の一部の回路が動作している間に、その回路が占める部分とは重ならない別の部分に別の回路を再構成することができる。コンフィグコントローラ130は、動的再構成部131の回路構成(コンフィギュレーション)を制御し、CPU101による制御に従って動的再構成部131を再構成する。本実施形態で、コンフィグコントローラ130は、動的再構成部131(再構成可能回路)を、ジョブで必要となる画像処理を実行可能な回路構成に再構成する再構成手段の一例である。
動的再構成部131には、動的部分再構成により、画像処理部132とレジスタ部133とが構成される。画像処理部132は、各種の画像処理を行うための論理回路を部分的に再構成可能であり、再構成された回路構成によって画像処理を行う。レジスタ部133は、画像処理部132による画像処理のためのパラメータ(レジスタ値)を保持する。レジスタ部133によって保持されるパラメータは、画像処理部132による画像処理の実行中に画像処理部132によって使用され、画像処理部132の動作状態を示す回路情報に相当する。なお、本実施形態では動的再構成部131に構成される画像処理部及びレジスタ部の数がそれぞれ1つの場合を示しているが、画像処理部及びレジスタ部の数は1つに限定されるものではない。SRAM134は、動的再構成部131の外部に設けられ、動的再構成部131のレジスタ部133が保持するパラメータ(レジスタ値)を格納しておくための不揮発性メモリである。
CPU101は、画像処理装置100の動作を統括的に制御する。また、CPU101は、ネットワークI/F102を介して、ネットワーク上の汎用コンピュータ(不図示)と通信(送受信)を行う。ROM I/F112は、ROM104へのアクセス(ROM104へのデータの書き込み及びROM104からのデータの読み出し)を制御する。また、CPU101は、動的再構成部131内に構成されたレジスタ部133に対するパラメータ設定を、システムバス120を介して行う。
CPU101は、USBI/F115を介して、画像処理装置100と接続された汎用コンピュータ(不図示)と通信(送受信)を行う。また、CPU101は、FAX I/F116を介して公衆回線網に接続されており、他の画像処理装置またはファクシミリ装置(不図示)と通信(送受信)を行う。FAX I/F116は、公衆回線網からの呼出信号であるCI(Call Indicator)信号を検知するCI検知回路(不図示)を含む。
操作部I/F113は、システムバス120と操作部103との間のインタフェースとして機能する。スキャナI/F108は、スキャナ部109から画像データが入力される。プリンタI/F106は、プリンタ部107へ画像データを出力する。メモリコントローラ110は、RAM111へのデータの書き込み、RAM111からのデータの読み出しを制御する。メモリコントローラ110は、システムバス120及び画像バス121に接続されている。メモリコントローラ110は、画像バス121に接続されたバスマスタからのRAM111へのアクセスと、システムバス120に接続されたバスマスタからのRAM111へのアクセスとを排他的に切り替える。
<動的再構成部の再構成例>
次に、図2及び図3を参照して、本実施形態に係る画像処理装置100における動的再構成部131の再構成の例について説明する。
図2(A)は、ROM104に格納される回路構成データ(コンフィギュレーションデータ)の一例を示す図である。図2(A)に示すように、ROM104には、動的再構成部131の一部の回路(画像処理部132及びレジスタ部133)を再構成するための複数のコンフィギュレーションデータ(以下、「コンフィグデータ」と省略して表記する。)が予め格納されている。各コンフィグデータは、それぞれ特定の画像処理機能を実現する(画像処理を実行可能な)論理回路を動的再構成部131に実装するためのデータである。
次に、図2及び図3を参照して、本実施形態に係る画像処理装置100における動的再構成部131の再構成の例について説明する。
図2(A)は、ROM104に格納される回路構成データ(コンフィギュレーションデータ)の一例を示す図である。図2(A)に示すように、ROM104には、動的再構成部131の一部の回路(画像処理部132及びレジスタ部133)を再構成するための複数のコンフィギュレーションデータ(以下、「コンフィグデータ」と省略して表記する。)が予め格納されている。各コンフィグデータは、それぞれ特定の画像処理機能を実現する(画像処理を実行可能な)論理回路を動的再構成部131に実装するためのデータである。
動的再構成部131の画像処理部132及びレジスタ部133は、各コンフィグデータを用いた再構成により、特定の画像処理機能を実現する論理回路に再構成される。例えば、コンフィグデータ1を用いた再構成により、画像処理部132及びレジスタ部133は、画像処理A(フィルタ処理)を実行する画像処理部A及び画像処理A用のレジスタ値が格納されるレジスタ部Aに再構成される。画像処理装置100は、ROM104に格納されているコンフィグデータを用いて動的再構成部131を再構成することで、様々な画像処理機能を実現できる。
画像処理装置100は、各ジョブで必要となる一連の画像処理機能を実現するための論理回路を動的再構成部131に順に時分割で再構成することで、一連の画像処理機能を実現可能である。図2(B)は、画像処理装置100で実行可能なジョブごとの、各ジョブで必要となる画像処理機能(即ち、各ジョブで実行される画像処理)及びその実行順序と、各画像処理機能に対応するコンフィグデータとの一例を示す図である。なお本実施形態では、画像処理装置100が実行可能なジョブの例として、コピージョブ、プリントジョブ及びSENDジョブを示している。図2(B)の「再構成番号」は、画像処理装置100が各ジョブを実行する際に、必要となる画像処理機能に対応するコンフィグデータを用いた動的再構成部131の再構成の実行順序を表す。
例えば、図2(B)に示すように、4つの画像処理A〜Dを順に実行することで、コピージョブ用の画像処理機能を実現できる。画像処理Aは、スキャナ部109で得られた画像の、デバイス特性に起因した特性のばらつきを補正するテーブル変換処理やフィルタ処理等である。画像処理Bは、原稿画像の文字部分や写真部分等の属性判定を行う像域分離処理等である。画像処理Cは、RGBデータをCMYKデータへ変換する色変換処理である。画像処理Dは、入力画像データを所定の閾値と比較することによりN値化を行うハーフトーン処理等である。
画像処理装置100は、コピージョブを実行する場合、画像処理A〜Dに対応するコンフィグデータ1〜4を時分割で順にROM104から読み出して、動的再構成部131の再構成に使用する。これにより、画像処理部132は、画像処理A〜Dを実行する回路(画像処理部A〜D)に順に再構成されながら、画像処理A〜Dを順に時分割で実行する。
また、図2(B)に示すように、画像処理C,Dを実行した後に、画像処理Eを実行することで、プリントジョブ用の画像処理機能を実現できる。画像処理Eは、プリンタ部107のプリンタ画像出力を走査する際のレジずれを補正するレジ補正処理等である。画像処理装置100は、プリントジョブを実行する場合には、画像処理C〜Eに対応するコンフィグデータ1〜4を時分割で順にROM104から読み出して、動的再構成部131の再構成に使用する。
また、図2(B)に示すように、画像処理A,Bを実行した後、画像処理Fを実行することで、SENDジョブ用の画像処理機能を実現できる。画像処理Fは、スキャン画像データをネットワーク転送するために適したフォーマットに変換するための高解像圧縮処理等である。画像処理装置100は、SENDジョブを実行する場合には、画像処理A,B,Fに対応するコンフィグデータ1,2,6を時分割で順にROM104から読み出して、動的再構成部131の再構成に使用する。
次に、図3は、画像処理装置100がコピージョブを実行する場合の、動的再構成部131の再構成手順の例を示す図である。本実施形態の画像処理装置100は、ジョブの実行を開始すると、ジョブの種類に応じて定まる順序で、ROM104から必要なコンフィグデータを読み出して、動的再構成部131を順次再構成し、再構成された動的再構成部131に画像処理を実行させる。
操作部103を介してコピージョブの実行が指示されると、画像処理装置100は、図2(B)に示すように、まず再構成番号を「1」に設定し、コンフィグデータ1を用いて動的再構成部131を再構成する。これにより、画像処理部132及びレジスタ部133はに、画像処理Aを実行する画像処理部A及び画像処理A用のレジスタ値が格納されるレジスタ部Aが構成される。
画像処理Aの実行が完了すると、画像処理装置100は、次に再構成番号を「2」に設定し、コンフィグデータ2を用いて動的再構成部131を再構成する。これにより、画像処理部132及びレジスタ部133には、画像処理Bを実行する画像処理部B及び画像処理B用のレジスタ値が格納されるレジスタ部Bが構成される。
画像処理Bの実行が完了すると、画像処理装置100は、次に再構成番号を「3」に設定し、コンフィグデータ3を用いて動的再構成部131を再構成する。これにより、画像処理部132及びレジスタ部133には、画像処理Cを実行する画像処理部C及び画像処理C用のレジスタ値が格納されるレジスタ部Cが構成される。
画像処理Cの実行が完了すると、画像処理装置100は、次に再構成番号を「4」に設定し、コンフィグデータ4を用いて動的再構成部131を再構成する。これにより、画像処理部132及びレジスタ部133には、画像処理Dを実行する画像処理部C及び画像処理D用のレジスタ値が格納されるレジスタ部Dが構成される。
このように、本実施形態の画像処理装置100では、ジョブで必要となる一連の画像処理機能を実現するための論理回路を動的再構成部131に順に時分割で再構成することで、各ジョブ用の画像処理機能を実現できる。なお、図2及び図3に示すジョブは一例にすぎず、画像処理装置100が実行可能なジョブは図2及び図3に示すものに限定されるわけではない。また、画像処理の単位に関しても、図2及び図3に示すものに限定されるわけではなく、各ジョブに含まれている画像処理を、より細かい処理に分割することも可能である。
図3に示すように、動的再構成131を用いた特定の画像処理の完了後、動的再構成部131を、次に実行すべき画像処理を実行可能な回路構成に再構成することによって、ジョブで必要となる画像処理を動的再構成部131で順に実行することが可能である。しかし、次の画像処理に対応する回路構成を得るために動的再構成部131を再構成すると、画像処理部132だけでなくレジスタ部133も再構成される。その結果、上述のように、レジスタ部133に保持されている、画像処理部132の動作状態を示すレジスタ値が失われることになる。
本実施形態では、画像処理装置100において、動的再構成部131の再構成によってレジスタ部133に保持されているレジスタ値(回路情報)が失われることを避けるために、以下のような制御を実行する。CPU101は、動的再構成部131が、第1の画像処理を実行可能な回路構成に再構成された後、次に実行されるべき第2の画像処理を実行可能な回路構成に再構成される前に、レジスタ部133から他の記憶デバイスにレジスタ値を退避させる制御を行う。具体的には、CPU101は、レジスタ部133に保持されているレジスタ値を、動的再構成部131の外部に設けられたSRAM134に格納するための制御を行う。これにより、レジスタ部133が保持されているレジスタ値(回路情報)が、動的再構成部131の再構成によって消えてしまうことを防ぐことが可能である。
<動的再構成部の再構成制御>
図4は、本実施形態に係る画像処理装置100が動的再構成部131を用いてジョブを実行する際の、動的再構成部131の再構成制御の手順を示すフローチャートである。なお、図4(A)のフローチャートに示す各処理は、CPU101がROM104等に予め格納された制御プログラムをRAM111に読み出して実行することによって実現される。また、図4(B)のフローチャートに示す各処理は、コンフィグコントローラ130によって実行され、図4(C)のフローチャートに示す各処理は、画像処理部132によって実行される。
図4は、本実施形態に係る画像処理装置100が動的再構成部131を用いてジョブを実行する際の、動的再構成部131の再構成制御の手順を示すフローチャートである。なお、図4(A)のフローチャートに示す各処理は、CPU101がROM104等に予め格納された制御プログラムをRAM111に読み出して実行することによって実現される。また、図4(B)のフローチャートに示す各処理は、コンフィグコントローラ130によって実行され、図4(C)のフローチャートに示す各処理は、画像処理部132によって実行される。
画像処理装置100が電源停止状態から起動またはスリープ状態から復帰すると、CPU101は、S101の処理を開始する。S101で、CPU101は、操作部103から受信した情報、ネットワークI/F102を介して受信した情報等に基づいて、ジョブの実行要求が生じたか否かを判定する。CPU101は、実行要求が生じると(S101で「YES」)、S102に処理を進める。S102で、CPU101は、実行要求で指定されたジョブの種類を判定する。CPU101は、例えば、指定されたジョブがコピージョブ、プリントジョブ及びSENDジョブ等のうちのいずれのジョブであるかを判定する。
次にS103で、CPU101は、指定されたジョブの実行を開始して、処理をS104に進める。ここで、CPU101は、S102で判定されたジョブ種類に応じて、図2(B)に示すように、必要となる画像処理の実行順序と、それらの画像処理に対応する、動的再構成部131の再構成のためのコンフィグデータの使用順序とを決定する。上述のように、指定されたジョブの実行中には、当該ジョブで必要となる複数の画像処理に対応する複数のコンフィグデータを順に用いて、動的再構成部131の再構成が繰り返し実行される。CPU101は、再構成番号N(Nは整数)を用いて動的再構成部131の再構成の回数を管理する。CPU101は、N=1に設定してジョブの実行を開始する。このようにして、CPU101は、ジョブで必要となる(第1及び第2の画像処理を含む)複数の画像処理に対応する複数の回路構成が、動的再構成部131に時分割で再構成されるよう、コンフィグコントローラ130を制御しながら、当該ジョブを実行しうる。
S104で、CPU101は、動的再構成部131についての再構成番号Nに対応する再構成を実行すべきことを示す再構成指示を、システムバス120を介して、コンフィグコントローラ130に対して送信する。なお、CPU101は、再構成番号Nに対応する再構成に関する情報として、図2(B)に示す再構成番号Nに対応するコンフィグデータに関する情報を再構成指示に含める。その後S105で、CPU101は、コンフィグコントローラ130から再構成完了通知を受信するまで待機し、再構成完了通知を受信するとS106に処理を進める。
(コンフィグコントローラ130の処理)
コンフィグコントローラ130は、CPU101から再構成指示を受信すると、図4(B)に示す手順に従って、動的再構成部131を再構成する。まず、S121で、コンフィグコントローラ130は、CPU101からの再構成指示を受信するまで待機する。コンフィグコントローラ130は、再構成指示を受信すると(S121で「YES」)、処理をS122に進める。
コンフィグコントローラ130は、CPU101から再構成指示を受信すると、図4(B)に示す手順に従って、動的再構成部131を再構成する。まず、S121で、コンフィグコントローラ130は、CPU101からの再構成指示を受信するまで待機する。コンフィグコントローラ130は、再構成指示を受信すると(S121で「YES」)、処理をS122に進める。
S122で、コンフィグコントローラ130は、CPU101からの再構成指示に従って、ROM104からコンフィグデータを読み出す。更に、コンフィグコントローラ130は、読み出したコンフィグデータを用いて、動的再構成部131の再構成対象の領域(画像処理部132及びレジスタ部133)の回路構成を再構成する。このようにして、コンフィグコントローラ130は、動的再構成部131の対象領域の再構成を行う。これにより、再構成番号Nに対応するコンフィグデータを用いて動的再構成部131が再構成される。
その後、コンフィグコントローラ130は、動的再構成部131の対象領域の再構成が完了すると(S123で「YES」)、処理をS124に進める。S124で、コンフィグコントローラ130は、再構成指示に従った再構成が完了したことを示す通知(再構成完了通知)を、システムバス120を介してCPU101に送信し、処理をS121に戻す。その後、コンフィグコントローラ130は、再び再構成指示をCPU101から受信するまでS121で待機状態となる。
説明を再び図4(A)のフローチャートに戻し、CPU101は、S105で再構成完了通知をコンフィグコントローラ130から受信すると(S105で「YES」)、処理をS106に進める。S106で、CPU101は、システムバス120を介して、動的再構成部131に再構成されたレジスタ部133に対して、再構成番号Nに対応する画像処理の実行に必要なレジスタ値を設定する。
更にS107で、CPU101は、再構成番号Nに対応する画像処理(第1の画像処理)を開始すべきことを示す指示を、システムバス120を介して、動的再構成部131に再構成された画像処理部132に対して送信する。これにより、画像処理部132は、RAM111から転送される画像データに対する画像処理の実行を開始する。
(画像処理部132の処理)
画像処理部132は、CPU101から画像処理の開始指示を受信すると、図4(C)に示す手順に従って画像処理を実行する。まず、S131で、画像処理部132は、CPU101から画像処理の開始指示を受信するまで待機する。画像処理部132は、画像処理の開始指示を受信すると(S131で「YES」)、処理をS132に進める。S132で、画像処理部132は、当該開始指示に従って、RAM111から転送される画像データに対する画像処理を開始する。
画像処理部132は、CPU101から画像処理の開始指示を受信すると、図4(C)に示す手順に従って画像処理を実行する。まず、S131で、画像処理部132は、CPU101から画像処理の開始指示を受信するまで待機する。画像処理部132は、画像処理の開始指示を受信すると(S131で「YES」)、処理をS132に進める。S132で、画像処理部132は、当該開始指示に従って、RAM111から転送される画像データに対する画像処理を開始する。
その後、画像処理部132は、CPU101からの指示に従った画像処理を完了すると(S133で「YES」)、処理をS134に進める。S134で、画像処理部132は、画像処理が完了したことを示す通知(画像処理完了通知)を、システムバス120を介してCPU101に送信し、処理をS131に戻す。その後、画像処理部132は、再び画像処理の開始指示をCPU101から受信するまでS131で待機状態となる。
説明を再び図4(A)のフローチャートに戻し、CPU101は、画像処理部132から画像処理完了通知を受信すると(S108で「YES」)、処理をS109に進める。S109で、CPU101は、動的再構成部131についての次の再構成(再構成番号N+1)を実行すべきか否かを判定する。ここでは、S103で使用順序を決定した複数のコンフィグデータに関して、動的再構成部131の再構成に使用すべきコンフィグデータが残っているか(即ち、実行順序を決定した複数の画像処理に関して、実行すべき画像処理が残っているか)が判定される。CPU101は、動的再構成部131についての次の再構成(再構成番号N+1)を実行しない場合(S109で「NO」)、ジョブの実行を終了し、次の再構成を実行する場合(S109で「YES」)、処理をS110に進める 。
S110で、CPU101は、レジスタ部133に設定されている、再構成番号Nに対応する画像処理用のレジスタ値をSRAM134へ転送して格納する。このように、CPU101は、動的再構成部131を、次の画像処理(第2の画像処理)に対応する回路構成に再構成すべきことをコンフィグコントローラ130に指示する前に、レジスタ部133に保持されているレジスタ値をSRAM134に格納する。これにより、動的再構成部131についての次の再構成が行われる前に、レジスタ部133に保持されたレジスタ値(回路情報)が保存され、レジスタ部133の再構成によって回路情報が消えてしまうことを防ぐことができる。
その後S111で、CPU101は、再構成番号Nをインクリメントする(NからN+1に1増加させる)とともに、処理をS104に戻す。これにより、CPU101は、動的再構成部131についての次の再構成番号N+1に対応する、次に実行されるべき画像処理(第2の画像処理)のための動的再構成部131の再構成に関する制御を開始する。
以上説明したように、本実施形態では、動的再構成部131についての次の再構成が行われる前に、レジスタ部133が保持するレジスタ値(回路情報)をSRAM134に格納することで、当該再構成に伴って回路情報が消えることを防ぐことが可能である。これにより、動的再構成部131の再構成の実行後において、SRAM134に保存した回路情報を、画像処理装置100でエラーが発生した場合のエラーの解析、及びエラーのデバッグ等に使用することが可能になる。その結果、そのような情報を使用して、FPGA等の再構成可能回路を備える装置の品質を向上させることが可能になる。
なお、画像処理部132が正常に動作しており、エラーが発生していなければ(即ち、エラーのデバッグが不要であれば)、CPU101は、S110の処理を省略し、レジスタ値をSRAM134に転送及び格納しなくてもよい。これにより、画像処理装置100が正常に動作している場合には、S110の処理に要する時間だけ、ジョブの実行に要する時間を短縮できる。なお、特定の画像処理について生じるエラーのデバッグが必要な場合には、CPU101は、特定の画像処理で用いられたレジスタ値(回路情報)のみをSRAM134に転送及び格納することも可能である。
また、ジョブの実行終了後の任意のタイミングに、再構成番号M(Mは整数)に対応するコンフィグデータを用いた再構成を再び実行し、S110でSRAM134に格納されたレジスタ値をレジスタ部133に書き戻すことも可能である。この場合、レジスタ部133に書き戻されるレジスタ値は、再構成番号Mに対応する画像処理用のレジスタ値である。これにより、例えば、再構成番号Mに対応する再構成後の動的再構成部131でエラーが発生した場合、エラーが発生した際の動的再構成部131の回路構成及び回路状態を再現することができ、エラーの解析及びデバッグに使用できるようになる。
[第2の実施形態]
第1の実施形態では、CPU101は、ジョブの実行中に、次に実行すべき画像処理に対応する回路に動的再構成部131を再構成する前に、レジスタ部133に保持されたレジスタ値(回路情報)をSRAM134に保存する。第2の実施形態では、CPU101による処理の負荷を軽減するために、レジスタ部133に保持されたレジスタ値(回路情報)の保存を、CPU101による処理によることなく自動的に実行する例について説明する。なお、説明の簡略化のため、第1の実施形態と同様の構成及び制御については説明を省略する。
第1の実施形態では、CPU101は、ジョブの実行中に、次に実行すべき画像処理に対応する回路に動的再構成部131を再構成する前に、レジスタ部133に保持されたレジスタ値(回路情報)をSRAM134に保存する。第2の実施形態では、CPU101による処理の負荷を軽減するために、レジスタ部133に保持されたレジスタ値(回路情報)の保存を、CPU101による処理によることなく自動的に実行する例について説明する。なお、説明の簡略化のため、第1の実施形態と同様の構成及び制御については説明を省略する。
<画像処理装置の構成>
図5は、第2の実施形態に係る画像処理装置100の構成例を示すブロック図である。図5に示すように、本実施形態に係る画像処理装置100は、第1の実施形態と異なり、FPGA140内に、システムバス120に接続されたレジスタ格納制御部500を更に備えることを特徴としている。
図5は、第2の実施形態に係る画像処理装置100の構成例を示すブロック図である。図5に示すように、本実施形態に係る画像処理装置100は、第1の実施形態と異なり、FPGA140内に、システムバス120に接続されたレジスタ格納制御部500を更に備えることを特徴としている。
レジスタ格納制御部500は、CPU101からの指示に従って、動的再構成部131のレジスタ部133に保持されているレジスタ値(回路情報)をSRAM134に格納する。このような処理は、後述するように、コンフィグコントローラ130による動的再構成部131の再構成のタイミングに合わせて行われる。
<動的再構成部の再構成制御>
図6は、本実施形態に係る画像処理装置100が動的再構成部131を用いてジョブを実行する際の、動的再構成部131の再構成制御の手順を示すフローチャートである。なお、図6(A)のフローチャートに示す各処理は、CPU101がROM104等に予め格納された制御プログラムをRAM111に読み出して実行することによって実現される。コンフィグコントローラ130及び画像処理部132によって実行される処理は、第1の実施形態(図4(B)及び(C))と同様である。また、図6(B)のフローチャートに示す各処理は、レジスタ格納制御部500によって実行される。
図6は、本実施形態に係る画像処理装置100が動的再構成部131を用いてジョブを実行する際の、動的再構成部131の再構成制御の手順を示すフローチャートである。なお、図6(A)のフローチャートに示す各処理は、CPU101がROM104等に予め格納された制御プログラムをRAM111に読み出して実行することによって実現される。コンフィグコントローラ130及び画像処理部132によって実行される処理は、第1の実施形態(図4(B)及び(C))と同様である。また、図6(B)のフローチャートに示す各処理は、レジスタ格納制御部500によって実行される。
まず、S101〜S109は、第1の実施形態と同様である。S109で、CPU101は、動的再構成部131についての次の再構成(再構成番号N+1)を実行する場合(S109で「YES」)、処理をS201に進める。
S201で、CPU101は、レジスタ部133に保持されている、再構成番号Nに対応する画像処理用のレジスタ値をSRAM134へ格納すべきことを示す指示(格納開始指示)を、システムバス120を介して、レジスタ格納制御部500へ送信する。このように、CPU101は、動的再構成部131を、次の画像処理(第2の画像処理)に対応する回路構成に再構成すべきことをコンフィグコントローラ130に指示する前に、格納開始指示をレジスタ格納制御部500に送信する。これにより、レジスタ格納制御部500は、画像処理部132によって実行される、再構成番号Nに対応する画像処理用にレジスタ部133に対して設定されたレジスタ値を、SRAM134に格納する。
その後、S202で、CPU101は、レジスタ格納制御部500から、SRAM134へのレジスタ値の格納が完了したことを示す通知(格納完了通知)を受信するまで待機する。この格納完了通知によって、CPU101は、次の再構成(再構成番号N+1)の開始が可能であることを知らされる。CPU101は、レジスタ格納制御部500からの格納完了通知を受信すると(S202で「YES」)、処理をS111に進め、再構成番号Nをインクリメントする(NからN+1に1増加させる)とともに、処理をS104に戻す。これにより、CPU101は、動的再構成部131についての次の再構成番号N+1に対応する再構成に関する制御を開始する。
(レジスタ格納制御部500の処理)
レジスタ格納制御部500は、CPU101から格納開始指示を受信すると、図6(B)に示す手順に従って処理を実行する。まず、S241で、レジスタ格納制御部500は、CPU101から格納開始指示を受信するまで待機する。レジスタ格納制御部500は、格納開始指示を受信すると(S241で「YES」)、処理をS242に進める。
レジスタ格納制御部500は、CPU101から格納開始指示を受信すると、図6(B)に示す手順に従って処理を実行する。まず、S241で、レジスタ格納制御部500は、CPU101から格納開始指示を受信するまで待機する。レジスタ格納制御部500は、格納開始指示を受信すると(S241で「YES」)、処理をS242に進める。
S242で、レジスタ格納制御部500は、再構成番号Nに対応する画像処理用のレジスタ値をレジスタ部133から読み出して、SRAM134に格納する。更に、レジスタ格納制御部500は、SRAM134へのレジスタ値の格納が完了すると(S243で「YES」)、S244で、システムバス120を介して格納完了通知をCPU101に送信し、処理をS241に戻す。その後、レジスタ格納制御部500は、再びレジスタ値の格納開始指示をCPU101から受信するまでS241で待機状態となる。
以上説明したように、本実施形態では、レジスタ格納制御部500は、CPU101からの通知を受信すると、レジスタ部133に保持されているレジスタ値をSRAM134に自動的に保存する。これにより、ジョブの実行中に、CPU101の負荷を軽減しつつ、次に実行すべき画像処理に対応する回路に動的再構成部131を再構成する前にレジスタ部133が保持するレジスタ値(回路情報)を自動的に保存することが可能である。
<変形例>
上述の第2の実施形態の変形例として、以下のように、画像処理部132でエラーが発生した場合の処理を追加することも可能である。
図7は、本変形例に係る画像処理装置100が動的再構成部131を用いてジョブを実行する際の、動的再構成部131の再構成制御の手順を示すフローチャートである。なお、図7のフローチャートに示す各処理は、CPU101がROM104等に予め格納された制御プログラムをRAM111に読み出して実行することによって実現される。また、コンフィグコントローラ130によって実行される処理は、第1の実施形態(図4(B))と同様である。
上述の第2の実施形態の変形例として、以下のように、画像処理部132でエラーが発生した場合の処理を追加することも可能である。
図7は、本変形例に係る画像処理装置100が動的再構成部131を用いてジョブを実行する際の、動的再構成部131の再構成制御の手順を示すフローチャートである。なお、図7のフローチャートに示す各処理は、CPU101がROM104等に予め格納された制御プログラムをRAM111に読み出して実行することによって実現される。また、コンフィグコントローラ130によって実行される処理は、第1の実施形態(図4(B))と同様である。
図7に示すように、本変形例は、S108においてCPU101が画像処理部132から画像処理完了通知を受信していない場合に(S108で「NO」)、S109に処理を進める点で、図6と異なっている。この場合、CPU101は、S109で、画像処理エラーの発生が発生したことを示す通知を画像処理部132から受信したか否かを判定する。CPU101は、画像処理部132から当該通知を受信した場合(S109で「YES」)、ジョブの実行を終了し、当該通知を受信していない場合(S109で「NO」)、処理をS108に戻し、ジョブの実行を継続する。
(画像処理部132の処理)
本変形例では、画像処理部132は、CPU101から画像処理の開始指示を受信すると(S107)、図8(A)に示す手順に従って画像処理を実行する。本変形例は、S133において画像処理部132がCPU101からの指示に従った画像処理を完了していない場合に(S133で「NO」)、S231に処理を進める点で、図4(C)と異なっている。この場合、S231で、画像処理部132は、画像処理の実行中にエラーが発生したか否かを判定する。画像処理部132は、エラーが発生していない場合には(S231で「NO」)、処理をS133に戻し、エラーが発生した場合には(S231で「YES」)、処理をS232に進める。S232で、画像処理部132は、画像処理エラーが発生したことを示す通知(画像処理エラー通知)を、システムバス120を介して、CPU101及びレジスタ格納制御部500に対して送信し、処理を終了する
本変形例では、画像処理部132は、CPU101から画像処理の開始指示を受信すると(S107)、図8(A)に示す手順に従って画像処理を実行する。本変形例は、S133において画像処理部132がCPU101からの指示に従った画像処理を完了していない場合に(S133で「NO」)、S231に処理を進める点で、図4(C)と異なっている。この場合、S231で、画像処理部132は、画像処理の実行中にエラーが発生したか否かを判定する。画像処理部132は、エラーが発生していない場合には(S231で「NO」)、処理をS133に戻し、エラーが発生した場合には(S231で「YES」)、処理をS232に進める。S232で、画像処理部132は、画像処理エラーが発生したことを示す通知(画像処理エラー通知)を、システムバス120を介して、CPU101及びレジスタ格納制御部500に対して送信し、処理を終了する
(レジスタ格納制御部500の処理)
本変形例では、レジスタ格納制御部500は、図8(B)に示す手順に従って処理を実行する。本変形例は、レジスタ格納制御部500が、CPU101からレジスタ値の格納開始指示を受信していない場合に(S241で「NO」)、処理をS245に進める点で、図6(B)と異なっている。この場合、レジスタ格納制御部500は、画像処理エラーの発生が発生したことを示す通知を画像処理部132から受信したか否かを判定する。レジスタ格納制御部500は、画像処理部132から当該通知を受信していない場合には(S245で「NO」)、処理をS241に戻し、当該通知を受信した場合には(S245で「YES」)、処理をS242に進める。
本変形例では、レジスタ格納制御部500は、図8(B)に示す手順に従って処理を実行する。本変形例は、レジスタ格納制御部500が、CPU101からレジスタ値の格納開始指示を受信していない場合に(S241で「NO」)、処理をS245に進める点で、図6(B)と異なっている。この場合、レジスタ格納制御部500は、画像処理エラーの発生が発生したことを示す通知を画像処理部132から受信したか否かを判定する。レジスタ格納制御部500は、画像処理部132から当該通知を受信していない場合には(S245で「NO」)、処理をS241に戻し、当該通知を受信した場合には(S245で「YES」)、処理をS242に進める。
画像処理部132でエラーが発生した場合、S242で、レジスタ格納制御部500は、エラー発生時点においてレジスタ部133に保持されているレジスタ値をレジスタ部133から読み出して、SRAM134に格納する。更に、レジスタ格納制御部500は、SRAM134へのレジスタ値の格納が完了すると(S243で「YES」)、S244で、システムバス120を介して格納完了通知をCPU101に送信し、処理をS241に戻す。その後、レジスタ格納制御部500は、再びレジスタ値の格納開始指示をCPU101から受信するまでS241で待機状態となる。
以上説明したように、本変形例では、画像処理部132でエラーが発生すると、レジスタ格納制御部500は、画像処理部132からの通知に応じて自動的に、レジスタ部133に保持されているレジスタ値(回路情報)をSRAM134に保存する。これにより、画像処理部132においてエラーが発生していない通常の動作時だけでなく、エラーの発生時にも、CPU101の負荷を軽減しつつ、レジスタ部133が保持する回路情報を自動的に保存することが可能である。
なお、本実施形態及び本変形例では、レジスタ格納制御部500は、動的再構成部131の内部に構成されてもよい。その場合、実行されるジョブ及び画像処理の内容に応じて様々な回路構成をとりうる画像処理部132及びレジスタ部133に適した構成で、レジスタ格納制御部500を実現することが可能となる。
[第3の実施形態]
第1及び第2の実施形態では、レジスタ部133に保持されたレジスタ値(回路情報)をSRAM134に格納することで、動的再構成部131の再構成に伴って回路情報が消えることを防いでいる。第3の実施形態では、各ジョブで必要となる一連の画像処理機能を実現するための論理回路を動的再構成部131に順に時分割で再構成する際に、画像処理部132を部分的に再構成し、レジスタ部133で回路情報を継続的に保持する例について説明する。なお、説明の簡略化のため、第1の実施形態と同様の構成及び制御については説明を省略する。
第1及び第2の実施形態では、レジスタ部133に保持されたレジスタ値(回路情報)をSRAM134に格納することで、動的再構成部131の再構成に伴って回路情報が消えることを防いでいる。第3の実施形態では、各ジョブで必要となる一連の画像処理機能を実現するための論理回路を動的再構成部131に順に時分割で再構成する際に、画像処理部132を部分的に再構成し、レジスタ部133で回路情報を継続的に保持する例について説明する。なお、説明の簡略化のため、第1の実施形態と同様の構成及び制御については説明を省略する。
<動的再構成部の再構成例>
図9は、画像処理装置100がコピージョブを実行する場合の、動的再構成部131の再構成手順の例を示す図である。第1及び第2の実施形態(図3)との相違点は、動的再構成部131の画像処理部132のみをコンフィグデータによる再構成の対象とし、レジスタ部133を再構成しない点である。
図9は、画像処理装置100がコピージョブを実行する場合の、動的再構成部131の再構成手順の例を示す図である。第1及び第2の実施形態(図3)との相違点は、動的再構成部131の画像処理部132のみをコンフィグデータによる再構成の対象とし、レジスタ部133を再構成しない点である。
本実施形態の画像処理装置100は、ジョブの実行を開始すると、ジョブの種類に応じて定まる順序で、ROM104から必要なコンフィグデータを読み出して、動的再構成部131の画像処理部132のみを順次再構成する。レジスタ部133は、画像処理装置100が実行可能なあらゆるジョブで実行される一連の画像処理に用いられるレジスタ値の全てを格納可能な記憶容量を有するように、動的再構成部131に予め構成されている。
本実施形態では、操作部103を介してコピージョブの実行が指示されると、画像処理装置100は、図2(B)に示すように、まず再構成番号を「1」に設定し、コンフィグデータ1を用いて動的再構成部131の画像処理部132を再構成する。これにより、画像処理部132には、画像処理Aを実行する画像処理部Aが構成される。更に、レジスタ部133には、画像処理A用のレジスタ値が格納される。これにより、レジスタ部133は、レジスタ部Aとして機能する。
画像処理Aの実行が完了すると、画像処理装置100は、次に再構成番号を「2」に設定し、コンフィグデータ2を用いて動的再構成部131の画像処理部132を再構成する。これにより、画像処理部132には、画像処理Bを実行する画像処理部Bが構成される。更に、レジスタ部133には、画像処理A用のレジスタ値が保持されたまま、画像処理B用のレジスタ値が新たに格納される。これにより、レジスタ部133は、レジスタ部A,Bとして機能する。
画像処理Bの実行が完了すると、画像処理装置100は、次に再構成番号を「3」に設定し、コンフィグデータ2を用いて動的再構成部131の画像処理部132を再構成する。これにより、画像処理部132には、画像処理Cを実行する画像処理部Cが構成される。更に、レジスタ部133には、画像処理A,B用のレジスタ値が保持されたまま、画像処理C用のレジスタ値が新たに格納される。これにより、レジスタ部133は、レジスタ部A,B,Cとして機能する。
画像処理Cの実行が完了すると、画像処理装置100は、次に再構成番号を「4」に設定し、コンフィグデータ2を用いて動的再構成部131の画像処理部132を再構成する。これにより、画像処理部132には、画像処理Dを実行する画像処理部Dが構成される。更に、レジスタ部133には、画像処理A,B,C用のレジスタ値が保持されたまま、画像処理D用のレジスタ値が新たに格納される。これにより、レジスタ部133は、レジスタ部A,B,C,Dとして機能する。
このように、本実施形態の画像処理装置100では、各ジョブで必要となる一連の画像処理機能を実現するためのレジスタ値(回路情報)をレジスタ部133に保持した状態で、動的再構成部131に順に時分割で再構成する。これにより、次の画像処理の実行のための動的再構成部131の再構成に伴って、レジスタ部133に保持された回路情報が消えてしまうことを防ぎつつ、とで、各ジョブ用の画像処理機能を実現できる。
<動的再構成部の再構成制御>
図10は、本実施形態に係る画像処理装置100が動的再構成部131を用いてジョブを実行する際の、動的再構成部131の再構成制御の手順を示すフローチャートである。なお、図10のフローチャートに示す各処理は、CPU101がROM104等に予め格納された制御プログラムをRAM111に読み出して実行することによって実現される。コンフィグコントローラ130及び画像処理部132によって実行される処理は、第1の実施形態(図4(B)及び(C))と同様である。
図10は、本実施形態に係る画像処理装置100が動的再構成部131を用いてジョブを実行する際の、動的再構成部131の再構成制御の手順を示すフローチャートである。なお、図10のフローチャートに示す各処理は、CPU101がROM104等に予め格納された制御プログラムをRAM111に読み出して実行することによって実現される。コンフィグコントローラ130及び画像処理部132によって実行される処理は、第1の実施形態(図4(B)及び(C))と同様である。
まず、S101〜S103は、第1の実施形態と同様である。S103の後、S301で、CPU101は、動的再構成部131についての再構成番号Nに対応する再構成を実行すべきことを示す再構成指示を、システムバス120を介して、コンフィグコントローラ130に対して送信する。その際、CPU101は、再構成番号Nに対応する再構成に関する情報として、図2(B)に示す再構成番号Nに対応するコンフィグデータに関する情報を再構成指示に含めるとともに、画像処理部132のみを再構成対象の領域として指定する。
これにより、コンフィグコントローラ130は、S122で、CPU101からの再構成指示に従って、ROM104からコンフィグデータを読み出して、再構成対象の領域として指定された画像処理部132のみの回路を再構成する。一方、コンフィグコントローラ130は、再構成対象の領域として指定されていないレジスタ部133の回路の再構成は行わない。その後S105で、CPU101は、コンフィグコントローラ130から再構成完了通知を受信するまで待機し、再構成完了通知を受信するとS106に処理を進める。S106で、CPU101は、システムバス120を介して、レジスタ部133に対して、再構成番号Nに対応する画像処理の実行に必要なレジスタ値を新たに設定し、処理をS107に進める。
S107〜S109は、第1の実施形態と同様である。本実施形態では、CPU101は、動的再構成部131についての次の再構成(再構成番号N+1)を実行する場合(S109で「YES」)、処理をS302に進める。S302で、CPU101は、第1の実施形態のように、再構成番号Nに対応する画像処理用のレジスタ値をSRAM134へ転送して格納するのではなく、レジスタ部133のレジスタ値をそのままレジスタ部133に保持させる。これは、本実施形態ではS104における再構成指示によって画像処理部132のみの再構成が行われ、レジスタ部133の再構成が行われることがなく、レジスタ部133の再構成によってレジスタ値が消えることがないためである。このように、CPU101は、再構成番号Nに対応する画像処理用のレジスタ値がレジスタ部133に保持されたまま、次に実行されるべき画像処理を実行可能な回路構成に画像処理部132が再構成されるよう、コンフィグコントローラ130を制御する。
その後S111で、CPU101は、第1の実施形態と同様、再構成番号Nをインクリメントする(NからN+1に1増加させる)とともに、処理をS104に戻す。これにより、CPU101は、動的再構成部131についての次の再構成番号N+1に対応する再構成に関する制御を開始する。
以上説明したように、本実施形態では、ジョブの実行中に、動的再構成部131内のレジスタ部133の再構成を行わず、画像処理部132のみを部分的に再構成する。これにより、ジョブの実行中に動的再構成部131についての次の再構成が行われる前に、レジスタ部133でレジスタ値(回路情報)を継続的に保持する。その結果、第1及び第2の実施形態と同様、動的再構成部131の再構成に伴って回路情報が消えることを防ぐことが可能である。また、動的再構成部131の再構成の実行後において、レジスタ部133に保持されている回路情報を、画像処理装置100でエラーが発生した場合のエラーの解析、及びエラーのデバッグ等に使用することが可能になる。
<変形例>
上述の第2の実施形態の変形例として、以下のように、画像処理部132でエラーが発生した場合の処理を追加することも可能である。
図11は、本変形例に係る画像処理装置100が動的再構成部131を用いてジョブを実行する際の、動的再構成部131の再構成制御の手順を示すフローチャートである。なお、図11のフローチャートに示す各処理は、CPU101がROM104等に予め格納された制御プログラムをRAM111に読み出して実行することによって実現される。コンフィグコントローラ130及び画像処理部132によって実行される処理は、第1の実施形態(図4(B)及び(C))と同様である。
上述の第2の実施形態の変形例として、以下のように、画像処理部132でエラーが発生した場合の処理を追加することも可能である。
図11は、本変形例に係る画像処理装置100が動的再構成部131を用いてジョブを実行する際の、動的再構成部131の再構成制御の手順を示すフローチャートである。なお、図11のフローチャートに示す各処理は、CPU101がROM104等に予め格納された制御プログラムをRAM111に読み出して実行することによって実現される。コンフィグコントローラ130及び画像処理部132によって実行される処理は、第1の実施形態(図4(B)及び(C))と同様である。
まず、S101〜S103は、第1の実施形態と同様である。S103の処理が完了すると、次にS311で、CPU101は、動的再構成部131のレジスタ部133を、指定されたジョブの内容に応じて再構成すべきことを示す再構成指示を、システムバス120を介して、コンフィグコントローラ130へ送信する。具体的には、CPU101は、コンフィグコントローラ130に、実行中のジョブで必要となる全ての画像処理用のレジスタ値を格納可能な記憶容量を有するようにレジスタ部133を再構成させる。例えば、コピージョブの場合、レジスタ部133は、画像処理A,B,C,D用のレジスタ値を格納可能な記憶容量を有する回路に再構成される。
その後、CPU101は、レジスタ部133についての再構成完了通知をコンフィグコントローラ130から受信すると、処理をS301に進める。S301以降の処理は、上述の図10に示す実施形態と同様である。
上述のように、図10に示す実施形態では、ジョブの実行開始後にレジスタ部133の再構成は行われない。このため、レジスタ部133は、画像処理装置100が実行可能な各ジョブで必要となる全ての画像処理のためのレジスタ値を同時に格納可能な記憶容量を有するように、予め構成されている必要がある。例えば、図2(A)に示すように、画像処理A〜Xに対応するコンフィグデータがROM104に格納されている場合、画像処理A〜Xに用いられるレジスタ値を格納可能な記憶容量を有するレジスタ部133を用意する必要がある。
これに対し、図11に示す変形例では、CPU101は、ジョブを実行するごとに、当該ジョブで必要となる全ての画像処理のためのレジスタ値を同時に格納可能な記憶容量を有するよう、コンフィグコントローラ130にレジスタ部133を再構成させる。例えば図2(B)に示すように、コピージョブの場合は画像処理A〜D、プリントジョブの場合は画像処理C〜Eに用いられるレジスタ値を格納可能な記憶容量を有するようにレジスタ部133が再構成される。したがって、本変形例では、図10に示す実施形態よりも、画像処理装置100でエラーが発生した場合のエラーの解析、及びエラーのデバッグ等のためにレジスタ値(回路情報)を保持するレジスタ部133の記憶容量を、必要最小限に抑えることが可能である。
[その他の実施形態]
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワークまたは各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワークまたは各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
100:画像処理装置、131:動的再構成部、132:画像処理部、133:レジスタ部、134:SRAM、101:CPU、104:ROM、111:RAM、140:FPGA
Claims (13)
- 一部の回路構成を動的に再構成可能な再構成可能回路であって、画像処理を行う画像処理部と、前記画像処理部の動作状態を示す、前記画像処理のための回路情報を保持するレジスタ部とが構成される、前記再構成可能回路と、
前記再構成可能回路を、ジョブで必要となる画像処理を実行可能な回路構成に再構成する再構成手段と、
前記再構成手段によって、前記再構成可能回路が、第1の画像処理を実行可能な回路構成に再構成された後、次に実行されるべき第2の画像処理を実行可能な回路構成に再構成される前に、前記レジスタ部に保持されている前記回路情報を、前記再構成可能回路の外部に設けられた記憶手段に格納するよう制御する制御手段と
を備えることを特徴とする画像処理装置。 - 前記制御手段は、前記第1及び第2の画像処理を含む複数の画像処理に対応する複数の回路構成が、前記再構成可能回路に時分割で再構成されるよう、前記再構成手段を制御しながら、前記複数の画像処理を必要とするジョブを実行する
ことを特徴とする請求項1に記載の画像処理装置。 - 前記制御手段は、前記再構成可能回路を用いた前記第1の画像処理の実行後、前記第2の画像処理に対応する回路構成に、前記再構成可能回路を再構成すべきことを前記再構成手段に指示する前に、前記レジスタ部に保持されている前記回路情報を前記記憶手段に格納する
ことを特徴とする請求項1または2に記載の画像処理装置。 - 前記制御手段は、前記再構成可能回路を用いた前記第1の画像処理の実行中に、前記画像処理部においてエラーが発生していなければ、前記レジスタ部に保持されている前記回路情報を前記記憶手段に格納することなく、前記第2の画像処理に対応する回路構成に、前記再構成可能回路を再構成すべきことを前記再構成手段に指示する
ことを特徴とする請求項3に記載の画像処理装置。 - 前記レジスタ部に保持されている前記回路情報を前記記憶手段に格納する格納制御手段を更に備え、
前記制御手段は、前記再構成可能回路を用いた前記第1の画像処理の実行後、前記第2の画像処理に対応する回路構成に、前記再構成可能回路を再構成すべきことを前記再構成手段に指示する前に、前記格納制御手段に対して、前記レジスタ部に保持されている前記回路情報を前記記憶手段に格納すべきことを指示する
ことを特徴とする請求項1または2に記載の画像処理装置。 - 前記格納制御手段は、更に、前記画像処理部においてエラーが発生すると、前記レジスタ部に保持されている前記回路情報を自動的に前記記憶手段に格納する
ことを特徴とする請求項5に記載の画像処理装置。 - 一部の回路構成を動的に再構成可能な再構成可能回路であって、画像処理を行う画像処理部と、前記画像処理部の動作状態を示す、前記画像処理のための回路情報を保持するレジスタ部とが構成される、前記再構成可能回路と、
前記画像処理部を、ジョブで必要となる画像処理を実行可能な回路構成に再構成する再構成手段と、
第1の画像処理を実行可能な回路構成に前記画像処理部が再構成された後、前記第1の画像処理のための前記回路情報が前記レジスタ部に保持されたまま、次に実行されるべき第2の画像処理を実行可能な回路構成に前記画像処理部が再構成されるよう、前記再構成手段を制御する制御手段と
を備えることを特徴とする画像処理装置。 - 前記レジスタ部は、前記画像処理装置が実行可能な各ジョブで必要となる全ての画像処理のための前記回路情報を同時に格納可能な記憶容量を有するように予め構成されることを特徴とする請求項7に記載の画像処理装置。
- 前記制御手段は、前記ジョブの実行を開始する際に、当該ジョブで必要となる全ての画像処理のための前記回路情報を同時に格納可能な記憶容量を有するように、前記再構成手段によって前記レジスタ部を再構成させることを特徴とする請求項7に記載の画像処理装置。
- 前記制御手段は、前記再構成手段によって、前記第2の画像処理を実行可能な回路構成に前記画像処理部が再構成された後に、前記第2の画像処理のための前記回路情報を前記レジスタ部に設定する
ことを特徴とする請求項7から9のいずれか1項に記載の画像処理装置。 - 一部の回路構成を動的に再構成可能な再構成可能回路であって、画像処理を行う画像処理部と、前記画像処理部の動作状態を示す、前記画像処理のための回路情報を保持するレジスタ部とが構成される、前記再構成可能回路を備える画像処理装置の制御方法であって、
前記再構成可能回路を、ジョブで必要となる画像処理を実行可能な回路構成に再構成する再構成工程と、
前記再構成工程で、前記再構成可能回路が、第1の画像処理を実行可能な回路構成に再構成された後、次に実行されるべき第2の画像処理を実行可能な回路構成に再構成される前に、前記レジスタ部に保持されている回路情報を、前記再構成可能回路の外部に設けられた記憶手段に格納するよう制御する制御工程と
を含むことを特徴とする画像処理装置の制御方法。 - 一部の回路構成を動的に再構成可能な再構成可能回路であって、画像処理を行う画像処理部と、前記画像処理部の動作状態を示す、前記画像処理のための回路情報を保持するレジスタ部とが構成される、前記再構成可能回路を備える画像処理装置の制御方法であって、
前記画像処理部を、ジョブで必要となる画像処理を実行可能な回路構成に再構成する再構成工程と、
第1の画像処理を実行可能な回路構成に前記画像処理部が再構成された後、前記第1の画像処理のための前記回路情報が前記レジスタ部に保持されたまま、次に実行されるべき第2の画像処理を実行可能な回路構成に前記画像処理部が再構成されるよう制御する制御工程と
を含むことを特徴とする画像処理装置の制御方法。 - コンピュータを請求項1から10のいずれか1項に記載の画像処理装置の各手段として機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014076462A JP2015197863A (ja) | 2014-04-02 | 2014-04-02 | 画像処理装置及びその制御方法、並びにプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014076462A JP2015197863A (ja) | 2014-04-02 | 2014-04-02 | 画像処理装置及びその制御方法、並びにプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015197863A true JP2015197863A (ja) | 2015-11-09 |
Family
ID=54547483
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014076462A Pending JP2015197863A (ja) | 2014-04-02 | 2014-04-02 | 画像処理装置及びその制御方法、並びにプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2015197863A (ja) |
-
2014
- 2014-04-02 JP JP2014076462A patent/JP2015197863A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9407784B2 (en) | Image processing apparatus, control method thereof, and storage medium | |
JP5943736B2 (ja) | 情報処理装置、情報処理装置の制御方法及びプログラム | |
JP6598432B2 (ja) | 画像処理装置、その制御方法およびプログラム | |
US10122883B2 (en) | Image processing apparatus including circuit configuration and method of controlling the same | |
US20160036998A1 (en) | Image processing apparatus and system for controlling processing for writing configuration data to partial reconfiguration area, and information processing method | |
US20150244898A1 (en) | Image processing apparatus, method for controlling the same, and storage medium | |
JP6370063B2 (ja) | 画像処理装置及びその制御方法、並びにプログラム | |
US9560164B2 (en) | Image processing apparatus, method of controlling the same, non-transitory computer readable storage medium, and data processing apparatus | |
US9332151B2 (en) | Image processing apparatus, method of controlling the same and storage medium | |
US10037591B2 (en) | Information processing apparatus and method of controlling the same | |
JP2016076867A (ja) | 情報処理装置、情報処理装置の制御方法、及びプログラム | |
JP5979176B2 (ja) | 画像処理装置及び画像形成装置 | |
JP2015197863A (ja) | 画像処理装置及びその制御方法、並びにプログラム | |
US20160050332A1 (en) | Image processing apparatus for controlling dynamic reconfigurable apparatus, information processing method for image processing apparatus, and storage medium for storing program to achieve information processing method | |
JP2015198405A (ja) | 画像処理装置及びその制御方法、並びにプログラム | |
JP6864721B2 (ja) | 情報処理装置、およびその制御方法 | |
JP2015139009A (ja) | 画像処理装置、その制御方法及びプログラム | |
JP5904148B2 (ja) | 再構成可能回路、画像形成装置及びプログラム | |
JP2017118450A (ja) | データ処理装置、その制御方法、及びプログラム | |
JP2015191335A (ja) | 画像処理装置、その制御方法及びプログラム | |
JP2015106751A (ja) | 画像処理装置、その制御方法およびプログラム | |
JP6417704B2 (ja) | 情報処理装置、画像処理装置およびプログラム | |
JP2016136359A (ja) | 画像処理装置、その制御方法及びプログラム | |
JP2006261773A (ja) | 画像形成装置及びネットワークシステム |