JP2016189177A - 画像処理装置、その制御方法およびプログラム - Google Patents

画像処理装置、その制御方法およびプログラム Download PDF

Info

Publication number
JP2016189177A
JP2016189177A JP2015069806A JP2015069806A JP2016189177A JP 2016189177 A JP2016189177 A JP 2016189177A JP 2015069806 A JP2015069806 A JP 2015069806A JP 2015069806 A JP2015069806 A JP 2015069806A JP 2016189177 A JP2016189177 A JP 2016189177A
Authority
JP
Japan
Prior art keywords
job
image processing
area
function
queue
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
Application number
JP2015069806A
Other languages
English (en)
Inventor
美馬 毅
Takeshi Mima
毅 美馬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2015069806A priority Critical patent/JP2016189177A/ja
Publication of JP2016189177A publication Critical patent/JP2016189177A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】再構成可能回路に構成されていない回路機能を使用するジョブを実行する際の処理に要する時間を短縮する。【解決手段】回路構成を部分的に再構成可能な再構成可能回路(140)を有する画像処理装置において、受け付けた順番に従ってジョブをキューに登録し、再構成可能回路の部分的に再構成可能な領域の何れかでの処理が終了した際に、処理が終了した再構成可能な領域を次のジョブを処理する領域として選択し、当該領域に構成されている回路の機能を使用するジョブがキューにある場合には、そのジョブを選択して処理させる。【選択図】図2

Description

本発明は、例えば画像データ等を扱う画像処理装置、その制御方法、プログラムに関する。
内部の論理回路構成を変更可能なPLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)などの再構成可能回路が良く知られている。最近では、動作中に再構成可能回路のチップ全体ではなく特定の領域だけを別の回路へ書き換えることが可能な、いわゆる動的部分再構成可能なFPGAが普及し、MFP等の画像処理装置などに搭載されるようになってきた。このような動的部分再構成可能回路を適用することで、一つの領域に複数の回路を切り換えて実装することが可能であるため、少ないハードウェアリソースで多様な機能を実現することができる。
一方、再構成可能回路を書き換える場合、ROM等の不揮発性メモリに格納された回路構成情報を読み出し、FPGAやPLDの回路構成メモリへ書き込む処理が必要な為、書き換えの処理時間分、回路処理の開始が遅くなる問題がある。この問題を解決する方法として、例えば一つのジョブの処理対象である画像データを文字や写真などの領域種別毎に分割し、同じ領域種別の画像データを連続して処理することで、回路の書き換え処理回数を低減する手法が開示されている(例えば、特許文献1参照)。
これと同様の手法を多機能複写機(MFP)のジョブ処理に適用し、例えば同じ回路を使用するジョブを連続して処理することで、回路の書き換え処理回数の低減を期待できる。
特開2008−242850号公報
動的部分再構成可能回路をMFPのジョブ処理に適用する場合は、全ての部分再構成可能領域(以下、PR領域)が使用中の場合には、いずれかのPR領域が再構成可能な状態となるまで受け付けたジョブをキュー等に保持し待たせる必要がある。キューに保持し待たせているジョブは、PR領域の何れかで実行されていたジョブ処理が終了した場合には、キューの順番に従って、解放されたPR領域を使用する候補のジョブとして選択される。
しかしながら、解放されたPR領域に構成されている回路(回路Aとする)を使用するジョブ(ジョブαとする)がキューに登録されている場合であっても、その回路Aが、キューの先頭のジョブのためのコンフィギュレーションにより別の回路へ上書きされてしまう場合がある。よって上書き前の回路Aを使用するジョブ(すなわちジョブα)を実行する際には、それが必要とする回路(すなわち回路A)を構成するために再度のコンフィギュレーションが必要となってしまう。コンフィギュレーションが行われる分、結果として、キューに登録されている全てのジョブの終了が遅くなってしまう課題がある。
本発明は、このような問題に鑑みてなされたものであり、回路の動的部分再構成が可能な画像処理装置において、ジョブ処理に要する時間を全体として短縮することを目的とする。
上記目的を達成するために本発明は以下の構成を有する。すなわち、本発明の一側面は、
回路構成を領域ごとに動的再構成可能な再構成可能回路を用いた画像処理手段と、
投入されたジョブをキューに登録するジョブ記憶手段と、
前記再構成可能回路の動的再構成可能な領域のうち、停止している領域を判定する判定手段と、
次に実行するジョブとして、前記判定された領域を用いる画像処理を含むジョブを前記キューに登録されたジョブから選択する選択手段と、
前記選択されたジョブを前記キューから取り出し、当該ジョブに含まれる画像処理に応じて必要があれば前記判定された領域の再構成を行い、該領域に構成された回路により前記選択されたジョブの画像処理を実行させる実行制御手段とを有することを特徴とする画像処理装置にある。
本発明によれば、再構成可能回路を再構成する回数を減らしてジョブ処理に要する時間を全体として短縮することができる。
本発明の実施形態に係る画像処理装置の構成の一例を示すブロック図である。 本発明の実施形態1に係る画像処理装置における、動的部分再構成に関わる構成を示すブロック図である。 本発明の実施形態に係る画像処理装置における、再構成部に構成される回路情報の格納方法の一例を示す図である。 本発明の実施形態に係る画像処理装置における、部分再構成される回路機能の例を示す図である。 本発明の実施形態1に係る画像処理装置における、新規ジョブが投入されてからジョブ処理が開始されるまでの制御を示すフローチャートである。 本発明の実施形態1に係る画像処理装置における、キューに登録されるジョブの状態、FPGA140の部分再構成部201〜204で実施される処理、部分再構成部201〜204に構成される機能の関係を表すタイミングチャートである。 本発明の実施形態1に係る、部分再構成部201〜204でのジョブ処理が停止時のPR管理テーブル220の一例である。 本発明の実施形態1に係る画像処理装置における、ジョブ実行処理制御を示すフローチャートである。 従来の画像処理装置における、キューに登録されるジョブの状態、FPGA140の部分再構成部201〜204で実施される処理、部分再構成部201〜204に構成される機能の関係を表すタイミングチャートである。 従来の画像処理装置と、本発明の画像処理装置での、FPGA140の部分再構成部201〜204で実施される処理を比較するタイミングチャートである。 キューに登録されているジョブの処理時間が長い場合における、従来の画像処理装置と、本発明の実施例1の画像処理装置での、FPGA140の部分再構成部201〜204で実施される処理を比較するタイミングチャートである。 本発明の実施形態2に係る画像処理装置における、ジョブ実行処理制御を示すフローチャートである。 本発明の実施形態2に係る画像処理装置における、キューに登録されるジョブの状態、FPGA140の部分再構成部201〜204で実施される処理、部分再構成部201〜204に構成される機能の関係を表すタイミングチャートである。 本発明の実施形態2に係る画像処理装置のFPGA140について、最も遅いジョブを特定して、特定した遅いジョブが早く終了できるPR領域を算出し、選択する手順を示すフローチャートである。 本発明の実施形態2に係る画像処理装置における、機能毎コンフィグ処理時間テーブル1500の一例である。 本発明の実施形態2に係る画像処理装置における、機能毎データ処理時間テーブル1600の一例である。 本発明の実施形態2に係る画像処理装置における、各処理候補のジョブについての各PR領域毎の終了時刻の算出結果、それぞれのタイミング関係を表す模式図である。 本発明の実施形態2に係る画像処理装置にける、PR領域毎に最も終了時刻の遅いジョブを特定する方法を説明する模式図である。 従来の画像処理装置と、本発明の実施形態2における画像処理装置での、FPGA140の部分再構成部201〜204で実施される処理を比較するタイミングチャートである。
以下、本発明を実施するための形態について図面を用いて説明する。
<実施形態1>
[画像処理装置の構成]
図1は、本発明の実施形態に関わる画像処理装置の装置構成を説明するブロック図である。本実施形態の画像処理装置100は、画像処理装置100を使用するユーザが各種の操作を行うための操作部103と、操作部103からの指示に従い画像情報を読み取るスキャナ部109と、画像データを用紙に印刷するプリンタ部107とを有する。スキャナ部109は、スキャナ部109を制御する図示しないCPUや原稿読取を行うための図示しない照明ランプや走査ミラーなどを有する。プリンタ部107は、プリンタ部107の制御を行う図示しないCPUや画像形成や定着を行うための図示しない感光体ドラムや定着器を有する。操作部103は、操作部インターフェイス(I/F)113を介してシステムバス120に接続される。
また、画像処理装置100は、画像処理装置100の動作を統括的に制御するCPU101を備え、画像処理装置の各ユニットを制御するための制御ソフトウェアを実行する。また、画像処理装置100は、CPU101が実行するプログラムが格納されているROM104を有する。また、画像処理装置100は、CPU101が動作するためのシステムワークメモリであり、かつ画像データを一時記憶するための画像メモリでもあるRAM111を有する。RAM111と、RAM111への書き込み、読み出し動作を制御するメモリコントローラ110を有する。メモリコントローラ110は、システムバス120および画像バス121に接続され、RAM111へのアクセスを制御する。
画像処理装置100は、画像処理回路として、回路構成が不変なデバイスのASIC118と、あとで再構成可能なデバイスであるFPGA140を有する。ASIC118は回路構成を変えられないが、量産コストを抑えられる為、MFPにとって必須で不変の機能であるスキャナ用の画像処理回路やプリント用の画像処理回路などにより構成されている。
一方、FPGA140は、部分的に動的再構成可能な再構成可能回路であり、種類は豊富であるが処理によって毎回使用される回路が異なる編集機能用の画像処理回路を動的に切り替えて構成している。本実施形態では再構成可能デバイスとしてFPGAを例に説明しているが、FPGA以外の再構成可能デバイスが接続される構成であってもよい。画像処理装置100は、CPU101の制御のもとにFPGA140の回路構成(コンフィギュレーション)を制御するコンフィグコントローラ130を有する。
また、画像処理装置100はFPGA140に構成する為の論理回路構成情報(コンフィグデータ)が格納されているコンフィギュレーション用ROM150を有する。FPGA140は、動的書き換え可能かつ部分書き換え可能なものである。すなわち、FPGA140の再構成部の一部に構成された回路が動作している間に、その回路が占める部分とは重ならない別の部分に別の回路を再構成することができる。回路構成を定めるコンフィギュレーションデータ(コンフィグデータ)は、たとえばハードディスク(HDD)117に、回路構成ごと(あるいは必要であれば更に再構成部ごと)のファイルのとして予め格納され、HDDI/F116を介してコンフィグレーション用ROM150に書き込まれる。
また、画像処理装置100は、スキャナ部109から画像データが入力されるスキャナI/F108と、プリンタへ画像データを出力するプリンタI/F106とを有する。FPGA140及びスキャナI/F108、プリンタI/F106は、処理される画像データを転送するための画像バス121に接続される。また、画像処理装置100は、ネットワークI/F102を介し、ネットワーク上の図示しない汎用コンピュータと通信(送受信)を行う。また、画像処理装置100は、USBI/F114を介し、画像処理装置100と接続された図示しない汎用コンピュータと通信(送受信)を行う。また、画像処理装置100は、FAX I/F115を介し、公衆回線網と接続し、図示しない他の画像処理装置やファクシミリ装置と通信(送受信)を行う。画像処理装置100は、CPU101が実行するプログラム、ROM104への書き込み、読み出し動作を制御するROM I/F112を有する。また、画像処理装置100は、NFCI/F122を介し、NFCリーダ部123よりユーザ情報を受信し、認証処理を行う。また、画像処理装置100は、カメラI/F124を介し、画像処理装置に設置されたカメラ125により、リモート監視やカメラ認証などで利用するユーザの顔や、プリント出力等の画像を撮影する。
また、画像処理装置100は、CPU101、ネットワークI/F102、操作部103、ROM I/F112、ASIC118、コンフィグコントローラ130、FPGA140を相互に接続するシステムバス120を有する。CPU101は、FPGA140と、ASIC118、スキャナI/F108、プリンタI/F106、NFCI/F122、カメラI/F124のパラメータ設定を、システムバス120を介して行う。
[部分再構成関する構成]
次に、図2を用いて、本実施例にかかる画像処理装置における部分再構成に関する構成について説明する。図2は画像処理装置100の部分再構成に特に関わる構成を示したブロック図である。CPU101、コンフィグコントローラ130、コンフィギュレーション用ROM150、FPGA140、メモリコントローラ110、ROM I/F112については図1を用いて前述した通りである。
FPGA140はその内部に、第1の部分再構成部(PR1)201、第2の部分再構成部(PR2)202、第3の部分再構成部(PR3)203、第4の部分再構成部(PR4)204をさらに持つ。各部分再構成部は動的に画像処理回路等を書き換えることが可能である。動的に再構成可能であるとは、動作していない部分再構成部については、他の再構成部が動作中であっても再構成可能であることを意味する。本実施形態においては、画像処理機能に関する回路を部分再構成部に構成する例について説明をしているが、もちろん画像処理機能以外の機能に関する回路を部分再構成部に構成可能である。
RAM111は後述するPR管理テーブル220、ジョブ記憶部500のための領域を持つ。PR管理テーブル220は4つの部分再構成部(PR1~PR4)がそれぞれ何の機能回路を構成しているかを示す機能ID、またそれらが現在使用されているかどうかを示すフラグから構成される。
ジョブ記憶部500は、操作部103での操作や、ネットワークI/F102を介して外部の図示しないPCからの操作により生成し、受け付けたジョブが記憶される。ジョブ記憶部500へは、受け付けたジョブがCPU101により受け付けた順番に従ってキューイングされる。ジョブ記憶部500へ記憶されているジョブは、FPGA140を使用して処理されるまで保持される。
またROM104は後述する機能毎コンフィグ処理時間テーブル1500と、機能毎データ処理時間テーブル1600とを保持する。ROM104は、部分再構成部に構成され得る回路機能と、各回路機能について各部分再構成部201〜204毎のコンフィグ処理時間と、データ処理時間とを記憶している。コンフィグ処理時間、データ処理時間は画像処理装置が一般的なジョブを実行するにあたって消費される時間を予め想定しておきROM104に用意しておくものである。ROM104に記憶されるこれらのデータは、HDD117に格納しておいてもよい。
次に、図3を用いて本実施形態に係る画像処理装置におけるFPGA140の部分再構成部201〜204に構成されるコンフィギュレーションデータの格納方法について説明する。図3はコンフィギュレーション用ROM150に格納されるFPGA140の各部分再構成部201〜204に構成するコンフィギュレーションデータの例である。
コンフィギュレーション用ROM150には部分再構成に必要な複数個のコンフィギュレーションデータが格納される。PR1用のコンフィギュレーションデータ300は部分再構成部(PR1)201に構成することが可能なコンフィギュレーションデータを表している。図3においては、部分再構成部(PR1)201に構成可能な機能がA、B、C、D、E、Fの6つである場合を例にしている。データ301はPR1に機能Aの回路を構成するためのコンフィギュレーションデータである。同様にコンフィギュレーションデータ302はPR1に機能Bの回路構成を、コンフィギュレーションデータ303はPR1に機能Cの回路構成、コンフィギュレーションデータ304はPR1に機能Dの回路構成を構成するためのコンフィギュレーションデータを表している。コンフィギュレーションデータ305,306は、PR1にそれぞれ機能D,Eの回路を構成するためのコンフィギュレーションデータである。本例では、コンフィギュレーションデータ300は、コンフィギュレーションデータ301〜306のいずれかであり、PR1には、コンフィギュレーションデータに応じた回路が構成される。
また、PR2用のコンフィギュレーションデータ310は部分再構成部(PR2)202に構成することが可能なコンフィギュレーションデータを表している。PR2用のコンフィギュレーションデータ310についても、機能A、B、C、D、E、Fの6つの機能のコンフィギュレーションデータ321~326を格納しており、部分再構成部(PR2)202には6つの機能を切り替えて構成することが可能である。本例では、コンフィギュレーションデータ310は、コンフィギュレーションデータ311〜316のいずれかであり、PR2には、コンフィギュレーションデータに応じた回路が構成される。
また、PR3用のコンフィギュレーションデータ320は部分再構成部(PR3)203に構成することが可能なコンフィギュレーションデータを表している。PR3用のコンフィギュレーションデータ320についても、機能A、B、C、D、E、Fの6つの機能のコンフィギュレーションデータ321~326を格納しており、部分再構成部(PR3)203には6つの機能を切り替えて構成することが可能である。本例では、コンフィギュレーションデータ320は、コンフィギュレーションデータ321〜326のいずれかであり、PR3には、コンフィギュレーションデータに応じた回路が構成される。
また、PR4用のコンフィギュレーションデータ330は部分再構成部(PR4)204に構成することが可能なコンフィギュレーションデータを表している。PR4用のコンフィギュレーションデータ330についても、機能A、B、C、D、E、Fの6つの機能のコンフィギュレーションデータを格納しており、部分再構成部(PR4)204には6つの機能を切り替えて構成することが可能である。本例では、コンフィギュレーションデータ330は、コンフィギュレーションデータ331〜336のいずれかであり、PR4には、コンフィギュレーションデータに応じた回路が構成される。
上述したように、部分再構成部ごとに、そこに構成する回路に応じたコンフィギュレーションデータを用意する必要がある。例えば、機能Aの回路構成を部分再構成部(PR1)201と部分再構成部(PR2)202に構成する場合を例にとる。PR1のためにはコンフィギュレーションデータ301を、PR2のためにはコンフィギュレーションデータ311をロードする、というように同じ機能を実現する場合においても、部分再構成部によって異なるコンフィギュレーションデータを用意しておく必要がある。
本実施形態では、FPGA140は4つの部分再構成部を持ち、部分再構成部に構成する機能がA、B、C、D、E、Fの6つのいずれかである場合を例に説明する。各機能の内容の具体例は図4に示す。ここで部分再構成部の数を4、機能数を6としているが、説明をわかりやすくするためだけであり、それらの数に限定されるわけではない。
[FPGA140へ構成されるデータ処理回路]
本実施形態の画像処理装置100において、FPGA140へはデータ処理回路を構成する場合を例にとり説明する。図4にFPGA140へ構成するデータ処理回路の機能の一例を示す。図4に示すように、画像処理装置100は、データ処理回路の有する機能のうち、機能A〜Fの6つの機能をFPGA140により実現している。
機能Aはプレビュー処理機能401であり、プリンタ部106で印刷処理する前等に、操作部103の画面上に処理前の画像データを表示する機能である。プレビュー処理機能は、操作部103の表示画面の解像度に合わせて、画像データを解像度変換や間引き処理を行う。
機能Bは合成処理機能402であり、入力される2つのページ画像について、特定の合成モードに従って合成処理を行い、合成画像を出力する機能である。合成モードは複数のモードを有し、それぞれの入力画像の画素値について所定の係数で乗算した後に加算するモードや、2つの入力画像のうち各座標の画素毎に最大値もしくは最小値を選択して出力するモード等を有する。
機能Cは色変換処理機能403であり、入力されるページ画像について、色空間フォーマットを変換し、色空間変換画像を出力する機能である。例えばスキャナで読み取られる際に表現されるRGB色空間を、用紙上にプリントする際に表現されるCMYK色空間への変換や、JPEG圧縮方式等の際に扱われるYUV色空間への変換を行う。
機能DはJPEG伸張処理機能404であり、JPEG符号化方式で圧縮された画像データを伸張し、復号化処理を行う。
機能EはNFC通信処理機能405であり、NFC(Near Field Communication)と呼ばれる近距離無線通信方式によりデータ通信処理を行う機能である。
機能Fはカメラ画像処理機能406であり、カメラ160より入力された画像データに対して、撮像素子センサの補正処理や、レンズの歪補正といったカメラ用の画像処理を行う機能である。
上述した機能A、機能B、機能C、機能D、機能Fのデータ処理は、RAM111へ格納されているラスタ画像をメモリコントローラ110により読み出し、画像バス121を介してFPGA140へ入力された画像データに対して行われる。そして画像処理後の画像データは、画像バス121を介してFPGA140より出力され、メモリコントローラ110によりRAM111へ再び格納される。なおFPGA140により実現する機能はこれら6つの機能に限られておらず、部分再構成部に収まる回路規模の機能であれば、他の機能をFPGA140で実現してもよい。
[ジョブ処理前フロー]
図5は本実施形態に係る画像処理装置のFPGA140について、新規ジョブが投入されてからジョブ処理が開始されるまでの制御手順を示すフローチャートである。すなわちジョブの実行制御手段の手順を示す。なお、図5のフローチャートの各手順はCPU101により実行される。
本フローチャートを説明する為に、部分再構成部201〜204が全て使用中の際に、4つのジョブが新規に投入される場合を例にとり説明する。図6に、画像処理装置100において、キューに登録されるジョブの状態、FPGA140の部分再構成部201〜204(PR1〜PR4)で実施される処理、部分再構成部201〜204に構成される機能の関係を表すタイミングチャートを示す。なお或るタイミングTnにおけるキューの状態(Tnの右側に示された状態)は、タイミングTnにおいて、最も優先度が高いジョブをデキューした後の状態を示している。
まずS501では、画像処理装置100に新規のジョブが投入されているか否かを確認(或いは判定)する。S502の判断分岐において、新規ジョブが投入されている場合には、S503へ進む。そうでない場合にはS504へ進む。図6の例では、タイミングT0〜T3の時点で、それぞれジョブ1として機能Eを使用するジョブ、ジョブ2として機能Fを使用するジョブ、ジョブ3として機能Aを使用するジョブ、ジョブ4として機能Dを使用するジョブを受け付ける例を示している。つまりS502の判断分岐において、新規ジョブが投入されるT0〜T3ではYESとなり、S503へ進む。それ以外のタイミングでは、S502の判断分岐においてNOとなり、S504へ進む。
S503では投入されたジョブをキューに登録する。キューの構造上、最も早く登録された側を先頭、その反対側を末尾と呼ぶとすれば、キューの末尾に新たなジョブを追加する。S504では、RAM111内に保存されたPR管理テーブルより部分再構成部201〜204についてのステータスを順次読み出し、ステータスが「停止中」の部分再構成部が有るか否かを判断する。
S505の判断分岐において、ステータスが停止中の部分再構成部201〜204が有る場合はS506へ進む。そうでない場合にはS501へ戻る。S506では、キューに登録されているジョブのうち、最も優先度の高いジョブを取り出し、そのジョブ処理を開始する。もっとも簡易な優先度はキュー内のジョブの順序である。その他の要因を優先度の判断に際して考慮することもできる。例えば図6の例では、次に実行するジョブの決定にあたり、ジョブにより実行される機能のための回路がFPGA140に構成済であること、かつ、当該回路が空いており使用可能であることがジョブの登録順序よりも優先して判断される。なおこの時のジョブの決定の手順については図8を参照して下記の「ジョブ処理フロー」の節で説明する。
図7にFPGA140についてのタイミングT4の時点でのPR管理テーブル220の一例を示す。PR管理テーブル220は部分再構成部201~204(PR1〜PR4)のそれぞれについて、何の機能を持つ回路が構成されているかを示す機能IDと各部分再構成部が使用中であるかどうかを示すステータスとを持つ。これらの機能IDおよびステータスは後述のステップで逐次書き換えられる。図7に示すように、PR1には機能IDとして機能A(プレビュー処理)、PR2には機能IDとして機能B(合成処理)、PR3には機能IDとして機能C(色変換処理)、PR4には機能IDとして機能D(JPEG伸張処理)が設定される。そしてPR1のステータスに「停止中」、PR2〜4の各ステータスに、「使用中」が設定される。
すなわち図6のタイミングT4の時点では、ステップS504により、部分再構成部201〜204についてのステータスとして、部分再構成部(PR1)201は「停止中」、それ以外は「使用中」を読み出す。つまり、ステータスが停止中の部分再構成部201が有る為、S505の判断分岐においてYESとなりS506へ進む。
全ての部分再構成部201〜204のステータスが「使用中」であり、「停止中」の部分再構成部201〜204が無い場合には、S505の判断分岐においてNOとなり、S501へ戻る。すなわちFPGA140の部分再構成部PR1〜PR4の何れかが使用可能なるまで、ジョブはキューで待機させられ、いずれかが使用可能になればその部分再構成部を用いていずれかのジョブがキューから取り出されて実行される。
なお図5ではキューへの登録(キューイング)と取り出し(デキューイング)とを一つの処理をループ実行することで実現しているが、キューとでキューとは非同期に行われるものであることから、互いに独立して実行されるプロセスにより実現することもできる。その場合には、たとえばキューイングのプロセスは新規ジョブが投入される都度、それをキューに登録する。またFPGA140のいずれかの部分再構成部に空きがあれば、デキューイングのプロセスをトリガする。一方デキューイングのプロセスは、たとえばFPGA140のいずれかの部分再構成部の利用の終了またはキューイングプロセスからのトリガにより開始され、キュー中で最も優先度が高いジョブをデキューして実行させる。そのとき利用可能な部分再構成部に、当該ジョブに必要な機能が構成されていないなら、そのための回路を再構成してからデキューする。
[ジョブ処理フロー]
次に、部分再構成領域(PR領域)の何れかでの処理が終了した際に、空いたPR領域を使用するジョブを、キューに登録されているジョブの中から選択するフローについて説明する。図8は、キュー中で最も優先度が高いジョブの選択方法であり、ジョブのスケジューリング方法ともいえる。
図8は本実施形態に係る画像処理装置のFPGA140について、処理の終了したPR領域を使用するジョブをキューに登録されているジョブより選択する手順を示すフローチャートである。この手順は、例えば図5のS506において、実行を開始するジョブを決定するためにCPU101により実行される。
<FPGAの再構成を伴わないジョブの選択と実行>
まずS801では、キューに登録されている全てのジョブに必要な回路機能を取得する。図6のタイミングT4の時点では、キューには、ジョブ1〜4の4つのジョブが登録されている。CPU101は、キューに登録されているジョブの機能IDを読み出し、ジョブ1からジョブ4までの機能IDとしてそれぞれ機能E、機能F、機能A、機能Dを取得する。
S802において、停止したPR領域に構成されている機能IDを取得する。図6のタイミングT4の時点で、停止しているPR領域はPR1である。ここでCPU101は、PR管理テーブル220よりPR1に構成されている回路の機能IDとして機能Aを読み出す。なお、部分再構成領域に構成されている回路で実現される機能のことを、PR領域に構成された機能、と呼ぶ場合もある。
S803では、停止したPR領域を使用して処理するジョブ候補として、キューの先頭の位置に格納されているジョブを選択する。タイミングT4の時点で、キューの先頭に格納されているジョブはジョブ1であるため、PR1を使用して処理するジョブの候補(候補ジョブ)としてジョブ1が選択される。
S804では、候補ジョブに必要な回路機能が、停止したPR領域に構成されているか否かを判定する。S805の分岐において、候補ジョブに必要な回路が停止したPR領域に構成されている場合にはS811へ進む。そうでない場合にはS806へ進む。タイミングT4の時点において、停止したPR領域であるPR1に構成されている機能IDは、S802のステップにより取得した機能IDから、機能Aであることがわかる。又、PR1を使用して処理する候補ジョブとしてジョブ1が選択されている。ジョブ1の実行のために必要とする回路機能は機能Eであり、PR1に構成されている機能Aとは異なるため、S806へ進む。
S806では、停止しているPR領域に構成されている回路を使用するジョブがキューに登録されているか否かを判定する。また該当するジョブがあれば当該ジョブを特定する。S807の分岐において、停止しているPR領域に構成されている回路を使用するジョブがキューに登録されている場合にはS810へ進む。そうでない場合にはS808へ進む。タイミングT4の時点において、キューに登録されているジョブは、ジョブ1〜4であり、それぞれが使用する回路機能は、機能E、機能F、機能A、機能Dである。従って、T4の時点でPR1に構成されている機能Aを使用するジョブ3がキューに登録されているので、S810へ進む。
S810では、キューに登録されているジョブの中から、停止しているPR領域に構成されている回路を使用するジョブを、停止しているPR領域を使用して処理するジョブとして改めて選択する。該当するジョブが複数ある場合には、キューの先頭に近いジョブすなわち登録順序が早いジョブを次に実行するジョブとして決定する。タイミングT4の時点において、PR1に構成されている機能Aを使用するジョブの中で、キューの最も先頭に近い位置に格納されているジョブはジョブ3である。従って、PR1を使用するジョブとしてジョブ3が選択される。
S811では、停止しているPR領域の回路機能を使用して選択したジョブをキューから外してその処理を実行する。タイミングT4の時点において、選択されたジョブ3に必要な機能AはPR1に既に構成されている。よって、ジョブ3を実行する際には、回路機能のコンフィギュレーション処理は必要ないので、直ちにジョブ3のデータ処理を行うことができる。図6には、ジョブキューの内容としてタイミングT4でジョブ3がデキューされ、PR1によりジョブ3すなわちデータ処理Aが実行されている状態を示している。
一方、ステップS807において、停止しているPR領域に構成されている回路を使用するジョブがキューに登録されていない場合にはS808へ進む。S808では、停止しているPR領域に、停止しているPR領域すなわち図5のステップS505で判断されたPR領域を再構成対象として選択し、ステップS809で、選択されたPR領域に必要な回路機能を再構成する。図6のタイミングT5ではこの処理が実行される。
<FPGAの再構成を伴うジョブの選択と実行>
次に、2番目にPR領域が停止するタイミングが到来するタイミングT5の時点について説明する。図6のタイミングT5の時点では、キューには、ジョブ1、ジョブ2、ジョブ4の3つのジョブが登録されている。そして図5の手順により、停止しているPR領域としてPR2があると判定され、ステップS506が実行され、その中で図8の処理が実行される。
S801において、CPU101は、キューに登録されているジョブの機能IDを読み出し、ジョブ3はデキューされているので、残りのジョブそれぞれの機能IDとして機能E、機能F、機能Dを取得する。S802において、停止したPR領域に構成されている機能IDを取得する。図6のタイミングT5の時点で、停止したPR領域はPR2である。ここでCPU101は、PR管理テーブル220よりPR2についての機能IDとして機能Eを読み出す。
S803では、停止したPR領域を使用して処理するジョブ候補として、キューの先頭の位置に格納されているジョブを選択する。タイミングT5の時点で、キューの先頭に格納されているジョブはジョブ1であるため、PR1を使用して処理するジョブ候補としてジョブ1が選択される。
S804では、ジョブに必要な回路機能が停止したPR領域に構成されているか否かを判定する。タイミングT5の時点において、停止したPR領域であるPR2に構成されている機能IDは機能Bであり、又、PR2を使用して処理するジョブ候補としてジョブ1が選択されている。ジョブ1の回路機能は機能Eであり、PR1に構成されている機能Aとは異なるため、S806へ進む。
S806では、停止したPR領域に構成されている回路を使用するジョブがキューに登録されているか否かを判定する。タイミングT5の時点において、キューに登録されているジョブは、ジョブ1、ジョブ2、ジョブ4であり、それぞれが使用する回路機能は、機能E、機能F、機能Dである。従って、PR2に構成されている機能Bを使用するジョブはキューに登録されていないので、S808へ進む。
S808では、停止したPR領域を再構成対象として選択する。タイミングT5の時点においては、停止したPR領域であるPR2が、再構成対象として選択される。
S809では、再構成対象として選択されたPR領域に必要な回路機能を構成する。タイミングT5の時点においては、ジョブ候補として選択されているジョブ1の機能Eを、必要な回路機能としてPR2へ構成するよう制御する。CPU101は、コンフィギュレーション用ROM150のPR2用コンフィギュレーションデータ310より機能EのPR2用コンフィギュレーションデータ315を読み出し、部分再構成部(PR2)202のコンフィギュレーションメモリへ書き込む。なおステップS809の実行の時点で、再構成するPR領域を用いて実行するジョブは決定されているので、そのジョブは実行が予約されたものとしてキューから外すものとして図6のキューの状態には示している。ジョブの実行の予約の時点でキューから外されたジョブが、実行時にデキューする必要は無いことは当然である。これは、再構成を開始してから完了するまでの間に図8の手順が実行されると、既に実行が予約されたジョブまでがスケジュールし直されることを防止するためである。
S811では、停止しているPR領域を使用して回路機能の処理を実行する。タイミングT5の時点において、PR2に構成された機能Eを使用してジョブ1のデータ処理を実行する。図6には、タイミングT5でPR2に機能Eの回路の構成が開始され、ジョブ1がデキューされ、再構成が完了したタイミングT6においてPR2によりジョブ1すなわちデータ処理Eが実行されている状態を示している。
<FPGAの再構成を伴わないジョブの選択と実行>
次に、3番目にPR領域が停止するタイミングが到来するタイミングT6の時点について説明する。図6のタイミングT6の時点では、キューには、ジョブ2、ジョブ4の2つのジョブが登録されている。
S801において、CPU101は、キューに登録されているジョブの機能IDを読み出し、ジョブ2,ジョブ4それぞれの機能F、機能Dを取得する。S802において、停止したPR領域に構成されている機能IDを取得する。図6のタイミングT6の時点で、停止したPR領域はPR4である。ここでCPU101は、PR管理テーブル220よりPR4についての機能IDとして機能Dを読み出す。
S803では、停止したPR領域を使用して処理するジョブ候補として、キューの先頭の位置に格納されているジョブを選択する。タイミングT6の時点で、キューの先頭に格納されているジョブはジョブ2であるため、PR1を使用して処理するジョブ候補としてジョブ2が選択される。
S804では、ジョブに必要な回路機能が停止したPR領域に構成されているか否かを判定する。タイミングT6の時点において、停止したPR領域であるPR4に構成されている機能IDは機能Dであり、又、PR4を使用して処理するジョブ候補としてジョブ2が選択されている。ジョブ2が使用する回路機能は機能Fであり、PR4に構成されている機能Aとは異なるため、S806へ進む。
S806では、停止したPR領域に構成されている回路を使用するジョブがキューに登録されているか否かを判定する。タイミングT6の時点において、キューに登録されているジョブは、ジョブ2、ジョブ4であり、使用する回路機能はそれぞれ機能F、機能Dである。従って、PR4に構成されている機能Dを使用するジョブ4がキューに登録されているので、S810へ進む。
S810では、キューに登録されているジョブの中で、停止したPR領域に構成されている回路を使用するジョブを次に実行するジョブとして選択する。該当するジョブが複数ある場合にはキューの先頭に近いジョブを選択する。タイミングT6の時点において、PR4に構成されている機能Dを使用するジョブの中で、キューの最も先頭近くに格納されているジョブはジョブ4である。従って、PR4を使用するジョブとしてジョブ4が選択される。
S811では、ジョブ4をデキューし、停止したPR領域を使用して回路機能の処理を実行する。タイミングT6の時点において、選択されたジョブ4に必要な機能DはPR4に既に構成されている。よって、ジョブ4を実行する際には、回路機能のコンフィギュレーション処理は必要ないので、直ちにPR4の回路を用いてジョブ4のデータ処理が行われる。
<FPGAの再構成を伴うジョブの選択と実行>
最後に、4番目にPR領域が停止するタイミングが到来するタイミングT7の時点について説明する。図6のタイミングT7の時点では、キューには、ジョブ2のみが登録されている。
S801において、CPU101は、キューに登録されているジョブの機能IDを読み出し、機能Fを取得する。
S802において、停止したPR領域に構成されている機能IDを取得する。図6のタイミングT7の時点で、停止したPR領域はPR3である。ここでCPU101は、PR管理テーブル220よりPR3についての機能IDとして機能Cを読み出す。
S803では、停止したPR領域を使用して処理するジョブ候補として、キューの先頭の位置に格納されているジョブを選択する。タイミングT7の時点で、キューの先頭に格納されているジョブはジョブ2であるため、PR1を使用して処理するジョブ候補としてジョブ2が選択される。
S804では、ジョブに必要な回路機能が停止したPR領域に構成されているか否かを判定する。タイミングT7の時点において、停止したPR領域であるPR3に構成されている機能IDは機能Cであり、又、PR3を使用して処理するジョブ候補としてジョブ2が選択されている。ジョブ2の回路機能は機能Fであり、PR3に構成されている機能Cとは異なるため、S806へ進む。
S806では、停止したPR領域に構成されている回路を使用するジョブがキューに登録されているか否かを判定する。タイミングT7の時点において、キューに登録されているジョブはジョブ2であり、それが使用する回路機能は、機能Fである。従って、PR3に構成されている機能Cを使用するジョブはキューに登録されていないので、S808へ進む。
S808では、停止したPR領域を再構成対象として選択する。タイミングT7の時点においては、停止したPR領域であるPR3が、再構成対象として選択される。
S809では、再構成対象として選択されたPR領域に必要な回路機能を構成する。タイミングT7の時点においては、ジョブ候補として選択されているジョブ3の機能FをPR3へ構成するよう制御する。CPU101はコンフィギュレーション用ROM150のPR3用コンフィギュレーションデータ320より機能FのPR3用コンフィギュレーションデータ326を読み出し、部分再構成部(PR3)203のコンフィギュレーションメモリへ書き込む。また、この時点で次に実行するジョブはジョブ2に決定されたのでジョブ2をデキューする。
S811では、停止したPR領域を使用して回路機能の処理を実行する。タイミングT7の時点において、PR3に構成された機能Fを使用してジョブ2のデータ処理を実行する。以上でジョブ処理が終了する。
以上説明したように本実施形態の画像処理装置では、FPGA140のPR領域の何れかが利用されていない際に、その利用されていないPR領域に構成されている回路機能を使用するジョブを、最も優先度が高いジョブとして決定する。そして該当するジョブをキューより取り出し、処理が終了したPR領域で処理するジョブとして選択する。該当するジョブが複数ある場合、または、該当するジョブがない場合には、キューの先頭への近さを要因として優先度を判定する。本例では、より前のジョブの優先度がより高いものと判定する。そして最も優先度が高いジョブを、空いたPR領域を利用したジョブとして、次に実行する。その際に、空いたPR領域に選択されたジョブが利用する機能の回路が構成されていないなら、実行に先立って回路の再構成を行う。
なお図6に、キューイングされたジョブ1〜4が実行される前後のFPGA140の状態を示した。タイミングT5までは、機能A,B,C,Dの回路がPR領域201〜204にそれぞれ構成されている。タイミングT8以降では、機能A,E,F,Dの回路がPR領域201〜204にそれぞれ構成されている。
<ジョブのスケジューリングの従来例>
図9に上記の制御を行わない従来の画像処理装置での、キューに登録されるジョブの状態、FPGA140の部分再構成部201〜204で実施される処理、部分再構成部201〜204に構成される機能の関係を表すタイミングチャートを示す。この装置では、ジョブはキューに登録された順に実行される。換言すれば優先度の判定基準はキューされた順序のみである。
図9に示すように、従来の画像処理装置では、タイミングT4の時点でPR1の機能Aを使用するジョブ3がキューに登録されていても、キューの先頭ジョブであるジョブ1で使用する機能Eが、PR1に構成される。その結果、FPGA140には機能Aが構成されているPR領域が無くなるので、後のジョブ3が実行されるタイミングT6の時点で、機能Aを構成する必要がある。従って、キューに登録されているジョブを実施する都度、ジョブが使用するPR領域の再構成が必要となるので、キューに登録されている全てのジョブが終了するのが遅くなる。
図10に従来の画像処理装置と、本実施形態の画像処理装置での、FPGA140の部分再構成部201〜204で実施される処理を比較するタイミングチャートを示す。図10に示すように、実施形態1の画像処理装置で最後のジョブ処理が終了するPR3の終了タイミングが、従来の画像処理装置で最後のジョブ処理が終了するPR3の終了タイミングより時間ΔTだけ早くできるという効果を奏する。
先行文献1に記載されている画像処理装置の場合では、部分的に再構成可能なタイプではない、全体の構成回路のみを変更可能なFPGAを使用し、単一の再構成可能領域に構成される回路情報を参照することで、構成回数の減を図っていた。これに対し、本実施形態に係る画像処理装置は、複数のジョブをFPGA内の複数の部分構成可能領域毎に割り当てて並行して処理する。その際に、キューに登録されている処理待ちのジョブをなるべく早く終了させるために、各部分構成可能領域毎に構成される回路情報を参照することで、キューに登録されているジョブを処理する際の構成回数を低減し、早期のジョブ処理終了を実現している。特に再構成が不要なジョブについては、その処理を迅速に完了させることができる。また、それによって複数のジョブ全体についても処理時間の短縮の実現が期待できる。
<実施形態2>
実施形態1では、キューに登録されているジョブをFPGA104で実施する際に、PR領域に構成されている回路機能を使用するジョブをキューより取り出し、処理が終了したPR領域で処理するジョブとして選択する形態について説明した。しかしながら、キューに登録されているジョブの処理時間の長さや、PR領域が停止するタイミングによっては、かえってキューに登録されている全てのジョブが終了するタイミングが遅くなる場合が考えられる。
図11にキューに登録されているジョブの処理時間が長い場合における、従来の画像処理装置と、実施形態1の画像処理装置での、FPGA140の部分再構成部201〜204で実施される処理を比較するタイミングチャートを示す。図11では、キューに登録されているジョブ1(機能E)とジョブ2(機能F)のジョブ処理時間(構成処理時間とデータ処理時間の合計)が、実施形態1で示した図10に比べて長い場合を示している。つまり、FPGA140に既に構成されている回路機能を使用するジョブ3(機能A)、ジョブ4(機能D)の処理時間より、回路の再構成が必要なジョブ1(機能E)、ジョブ2(機能F)の処理時間の方が長い場合についての例を表している。さらに換言すれば、優先度の低いジョブの方が、優先度の高いジョブよりも処理時間が長い場合の、処理タイミングの一例を図11は示している。
図11に示すように、使用する回路機能がFPGA140に構成されているジョブより前のキューの位置に登録されているジョブの処理時間が長いと、処理時間の長いジョブが後回しになることにより、全てのジョブが終了するタイミングが遅くなる。すなわち、優先度が低いジョブは、キュー内での待ち時間が長く、また再構成に時間を要するため実行が開始されるタイミングが遅くなり、さらに処理時間が長くなれば、これらの時間の総計がジョブ全体の処理のクリチカルパスとなり得る。
上記ケースを想定し、実施形態2では、ジョブキューに登録されているジョブの中で、FPGA140での処理が最も遅くなるジョブを特定し、特定したジョブが早く終了できるPR領域を算出し、使用するPR領域として選択するよう制御する。以下、フローチャートを用いて説明する。
図12A,図12Bは、本発明の実施形態2に係る画像処理装置のFPGA140について、キューに登録されたジョブを処理する手順を示すフローチャートである。図13に、実施形態2の画像処理装置100において、キューに登録されるジョブの状態、FPGA140の部分再構成部201〜204で実施される処理、部分再構成部201〜204に構成される機能の関係を表すタイミングチャートを示す。
実施形態2に係る画像処理装置のFPGA140について、新規ジョブが投入されてからジョブ処理が開始されるまでの制御手順は、実施形態1の画像処理装置と同様である為、説明を割愛する。以降、PR領域の何れかでの処理が終了した際に、前記PR領域を使用するジョブをキューに登録されているジョブの中から選択するフローについて説明する。
まずS1201では、キューに登録されている全てのジョブに必要な回路機能IDを取得する。図13のタイミングT4の時点では、キューには、ジョブ1〜4の4つのジョブが登録されている。CPU101は、キューに登録されているジョブの機能IDを読み出し、それぞれ機能E、機能F、機能A、機能Dを取得する。
S1202において、全てのPR領域に構成されている機能IDを取得する。CPU101は、PR管理テーブル220よりPR1〜4についての機能IDとして、それぞれ機能A、機能B、機能C、機能Dを読み出す。
S1203では、キューに登録されているジョブ数が、前回の処理時(すなわち最後にジョブを実行したタイミング)におけるキューのジョブ数よりも増加しているか否かを判断する。前回処理時にキューに登録されていたジョブの数は例えばメモリに記憶されている。メモリへのジョブ数の記憶は、たとえばステップS1210とS1217でジョブをデキューした後に行われる。S1203においてキューのジョブ数が増加していると判定した場合にはS1204へ進む。そうでない場合にはS1205へ進む。図13のタイミングT4の時点では、最後のジョブが実行されたのは遅くともタイミングT0以前であり、キューに登録されているジョブ数が、4つ増加している為、S1204へ進む。
S1204では、キューに登録されているジョブの中で、最も遅いジョブを特定し、当該ジョブが使用するPR領域の選択処理を行う。最も遅いジョブとは、最も遅く完了すると予想されるジョブである。S1204のステップの詳細処理内容については後述する。S1205では、停止しているPR領域が、最も遅いジョブが使用するPR領域であるか否かを判定する。S1206の分岐において、停止したPR領域が、最も遅いジョブが使用するPR領域である場合にはS1207へ進む。そうでない場合にはS1211へ進む。図13のタイミングT4の時点おいては、その直前のS1204のステップにおいて、最も遅いジョブとしてジョブ2が特定され、使用するPR領域としてPR1が選択されている。よってタイミングT4の時点では、停止しているPR領域はPR1であり、最も遅いジョブが使用するPR領域としてPR1が選択されている為、S1207へ進む。
S1207では、最も遅いジョブに必要な回路機能が、停止したPR領域に構成されているか否かを判定する。S1208の分岐において、最も遅いジョブに必要な回路が、停止したPR領域に構成されている場合にはS1210へ進む。そうでない場合にはS1209へ進む。タイミングT4の時点において、停止したPR領域であるPR1に構成されている機能IDは、S1202のステップにより機能Aである。又、PR1を使用して処理するジョブとして、最も遅いジョブであると特定されたジョブ2が選択されている。ジョブ2の回路機能は機能Fであり、PR1に構成されている機能Aとは異なるため、S1209へ進む。
S1209では、停止したPR領域に、最も遅いジョブに必要な回路機能を構成する。タイミングT4の時点においては、最も遅いジョブとして特定されたジョブ2の機能FをPR1へ構成するよう制御する。そのために、CPU101はコンフィギュレーション用ROM150のPR1用コンフィギュレーションデータ300より機能FのPR1用コンフィギュレーションデータ306を読み出し、部分再構成部(PR1)201のコンフィギュレーションメモリへ書き込む。あわせてジョブ2がデキューされる。
S1210では、停止しているPR領域を使用して最も遅いジョブの回路機能の処理を実行する。タイミングT4の時点において、PR1に構成された機能Fを使用してジョブ2のデータ処理を実行する。
次に、2番目にPR領域が停止するタイミングが到来するタイミングT5の時点について説明する。図13のタイミングT5の時点では、キューには、ジョブ1、ジョブ3、ジョブ4の3つのジョブが登録されている。
S1201において、CPU101は、キューに登録されているジョブの機能IDを読み出し、それぞれ機能E、機能A、機能Dを取得する。S1202において、全てのPR領域に構成されている機能IDを取得する。CPU101は、PR管理テーブル220よりPR1〜4についての機能IDとして、それぞれ機能F、機能B、機能C、機能Dを読み出す。
S1203の分岐では、前回のタイミングT4の時点よりキューに登録されているジョブ数が増加していない為、S1205へ進む。S1205では、停止したPR領域が、最も遅いジョブが使用するPR領域であるか否かを判定する。S1206の分岐において、タイミングT5の時点では、停止したPR領域はPR2であり、最も遅いジョブが使用するPR領域としてPR1が選択されていない為、S1211へ進む。
S1211では、停止したPR領域を使用して処理するジョブ候補として、キューの先頭の位置に格納されているジョブを選択する。タイミングT5の時点で、キューの先頭に格納されているジョブはジョブ1であるため、PR1を使用して処理するジョブ候補としてジョブ1が選択される。
S1212では、ジョブに必要な回路機能が停止したPR領域に構成されているか否かを判定する。S1213の分岐において、タイミングT5の時点では、停止したPR領域であるPR2に構成されている機能IDは機能Bであり、又、PR2を使用して処理するジョブ候補としてジョブ1が選択されている。ジョブ1の回路機能は機能Eであり、PR2に構成されている機能Bとは異なるため、S1214へ進む。
S1214では、停止したPR領域に構成されている回路を使用するジョブがキューに登録されているか否かを確認する。タイミングT5の時点において、キューに登録されているジョブは、ジョブ1、ジョブ3、ジョブ4であり、それぞれの回路機能は、機能E、機能A、機能Dである。従って、PR2に構成されている機能Bを使用するジョブはキューに登録されていないので、S1216へ進む。
S1216では、停止したPR領域を再構成対象として選択する。タイミングT5の時点においては、停止したPR領域であるPR2が、再構成対象として選択される。S1217では、再構成対象として選択されたPR領域に必要な回路機能を構成する。タイミングT5の時点においては、ジョブ候補として選択されているジョブ1の機能EをPR2へ構成するよう制御する。CPU101はコンフィギュレーション用ROM150のPR2用コンフィギュレーションデータ310より機能EのPR2用コンフィギュレーションデータ315を読み出し、部分再構成部(PR2)202のコンフィギュレーションメモリへ書き込む。あわせて候補ジョブであったジョブ1の実行の予約がされたことから、ジョブ1をデキューする。
S1219では、停止したPR領域を使用して回路機能の処理を実行する。タイミングT5の時点において、PR2に構成された機能Eを使用してジョブ1のデータ処理を実行する。
次に、3番目にPR領域が停止するタイミングが到来するタイミングT6の時点について説明する。図13のタイミングT6の時点では、キューには、ジョブ3、ジョブ4の2つのジョブが登録されている。
S1201において、CPU101は、キューに登録されているジョブの機能IDを読み出し、それぞれ機能A、機能Dを取得する。S1202において、全てのPR領域に構成されている機能IDを取得する。CPU101は、PR管理テーブル220よりPR1〜4についての機能IDとして、それぞれ機能F、機能E、機能C、機能Dを読み出す。
S1203の分岐では、前回のタイミングT5の時点よりキューに登録されているジョブ数が増加していない為、S1205へ進む。S1205では、停止したPR領域が最も遅いジョブが使用するPR領域であるか否かを判定する。
S1206の分岐において、タイミングT6の時点では、停止したPR領域はPR4であり、最も遅いジョブが使用するPR領域としてPR1が選択されていない為、S1211へ進む。S1211では、停止したPR領域を使用して処理するジョブ候補として、キューの先頭の位置に格納されているジョブを選択する。タイミングT6の時点で、キューの先頭に格納されているジョブはジョブ3であるため、PR4を使用して処理するジョブ候補としてジョブ3が選択される。
S1212では、ジョブに必要な回路機能が停止したPR領域に構成されているか否かを判定する。S1213の分岐において、タイミングT6の時点では、停止したPR領域であるPR4に構成されている機能IDは機能Dであり、又、PR4を使用して処理するジョブ候補としてジョブ3が選択されている。ジョブ3の回路機能は機能Aであり、PR4に構成されている機能Dとは異なるため、S1214へ進む。
S1214では、停止したPR領域に構成されている回路を使用するジョブがキューに登録されているか否かを確認する。タイミングT6の時点において、キューに登録されているジョブは、ジョブ3、ジョブ4であり、それぞれの回路機能は、機能A、機能Dである。従って、PR4に構成されている機能Dを使用するジョブ4がキューに登録されているので、S1218へ進む。
S1218では、停止したPR領域を使用して処理するジョブとして、停止したPR領域に構成されている回路を使用するキューに登録されているジョブの中で、キューの最も早い位置に格納されているジョブを選択する。タイミングT6の時点において、PR4に構成されている機能Dを使用するジョブの中で、キューの最も早い位置に格納されているジョブはジョブ4である。従って、PR4を使用するジョブとしてジョブ4が選択される。
S1219では、選択されたジョブ4をデキューし、停止したPR領域を使用して回路機能の処理を実行する。タイミングT6の時点において、選択されたジョブ4に必要な機能DはPR4に既に構成されている。よって、ジョブ4を実行する際には、回路機能のコンフィギュレーション処理は必要ないので、直ちにジョブ4のデータ処理を行われる。
最後に、4番目にPR領域が停止するタイミングが到来するタイミングT7の時点について説明する。図13のタイミングT7の時点では、キューには、ジョブ3のみが登録されている。
S1201において、CPU101は、キューに登録されているジョブの機能IDを読み出し、機能Aを取得する。S1202において、全てのPR領域に構成されている機能IDを取得する。CPU101は、PR管理テーブル220よりPR1〜4についての機能IDとして、それぞれ機能F、機能E、機能C、機能Dを読み出す。S1203の分岐では、前回のタイミングT6の時点よりキューに登録されているジョブ数が増加していない為、S1205へ進む。
S1205では、停止したPR領域が最も遅いジョブが使用するPR領域であるか否かを判定する。S1206の分岐において、タイミングT7の時点では、停止したPR領域はPR3であり、最も遅いジョブが使用するPR領域としてPR1が選択されていない為、S1211へ進む。S1211では、停止したPR領域を使用して処理するジョブ候補として、キューの先頭の位置に格納されているジョブを選択する。タイミングT7の時点で、キューの先頭に格納されているジョブはジョブ3であるため、PR3を使用して処理するジョブ候補としてジョブ3が選択される。
S1212では、ジョブに必要な回路機能が停止したPR領域に構成されているか否かを判定する。S1213の分岐において、タイミングT7の時点では、停止したPR領域であるPR3に構成されている機能IDは機能Cであり、又、PR3を使用して処理するジョブ候補としてジョブ3が選択されている。ジョブ3の回路機能は機能Aであり、PR3に構成されている機能Cとは異なるため、S1214へ進む。
S1214では、停止したPR領域に構成されている回路を使用するジョブがキューに登録されているか否かを判定する。タイミングT7の時点において、キューに登録されているジョブは、ジョブ3であり、回路機能は、機能Aである。従って、PR3に構成されている機能Cを使用するジョブはキューに登録されていないので、S1216へ進む。
S1216では、停止したPR領域を再構成対象として選択する。タイミングT7の時点においては、停止したPR領域であるPR3が、再構成対象として選択される。S1217では、再構成対象として選択されたPR領域に必要な回路機能を構成する。タイミングT7の時点においては、ジョブ候補として選択されているジョブ3の機能AをPR3へ構成するよう制御する。CPU101はコンフィギュレーション用ROM150のPR3用コンフィギュレーションデータ320より機能AのPR3用コンフィギュレーションデータ321を読み出し、部分再構成部(PR3)203のコンフィギュレーションメモリへ書き込む。あわせてジョブ3がデキューされる。
S1219では、停止したPR領域を使用して回路機能の処理を実行する。タイミングT7の時点において、PR3に構成された機能Aを使用してジョブ3のデータ処理を実行する。
[キューに登録されているジョブの中で最も遅いジョブの選択処理]
次にS1204の、キューに登録されているジョブの中で、最も遅くなるジョブを特定し、前記特定された最も遅いジョブが使用するPR領域を選択する処理の詳細について説明する。図14は本発明の実施形態2に係る画像処理装置のFPGA140について、最も遅いジョブを特定して、特定した遅いジョブが早く終了できるPR領域を算出し、選択する手順を示すフローチャートである。
S1401では、処理候補のジョブとして、キューに登録されているジョブより、先頭からPR領域数分のジョブを選択する。図13のタイミングT4の時点において、キューには、ジョブ1、ジョブ2、ジョブ3、ジョブ4の4つのジョブが登録されている。FGPA140のPR領域数は、PR1〜4の4個である為、処理候補のジョブとして、ジョブ1、ジョブ2、ジョブ3、ジョブ4の4個のジョブが選択される。
S1402では、処理候補のジョブについて、全てのPR領域においてジョブ処理を実行した際の終了時刻を算出する。動的部分再構成可能なFPGAは、ジョブ処理するPR領域毎に費やされるコンフィグ処理時間、データ処理時間が異なる。前記終了時間の算出にあたり、本実施形態の画像処理装置100は、PR領域毎に各機能のジョブ処理を実施した際の、回路の再構成に要するコンフィグ処理時間、およびデータ処理時間を測定しておき、テーブルとして予め保持している。図15に機能毎コンフィグ処理時間テーブル1500の一例、図16に機能毎データ処理時間テーブル1600の一例を示す。図15及び図16は、PR領域数がPR1〜4の4領域それぞれで、構成する機能として機能A〜Fの6機能が存在する場合の例を示している。これらのテーブルは、領域ごと、かつ、回路の種類ごとに、構成に要する時間とジョブの処理(特に当該機能に係る処理)に要する時間とを記憶する時間記憶部として機能している。
S1402は、処理候補のジョブである、ジョブ1〜4について、それぞれPR1〜4についてジョブ処理を実行した際の終了時刻を、機能毎コンフィグ処理時間テーブル1500、機能毎データ処理時間テーブル1600を使用し算出する。例えばジョブ1がPR1で処理される場合の終了時刻について説明する。ジョブ1(機能E)のPR1でのコンフィグ処理時間として、図15の機能毎コンフィグ処理時間テーブル1500より30を取得する。又、ジョブ1(機能E)のPR1でのデータ処理時間として、図16の機能毎データ処理時間テーブル1600より70を取得する。PR1での処理が停止する時刻(図13のタイミングT4)が2:40だとすると、ジョブ1がPR1で処理する場合の終了時刻は、2:40+30+70=4:20を算出する。PR2〜PR4での実行中の処理の終了予定時刻が、それぞれ2:55、3:25、3:10であるとすれば、同様にジョブ1についてPR2〜4で処理する場合の終了時刻を算出し、それぞれ4:30、5:00、4:55の結果を得る。上記のPR1〜4までの終了時刻を、その他の処理候補のジョブであるジョブ2、ジョブ3、ジョブ4についても算出する。
全ての処理候補のジョブについての各PR領域毎の終了時刻の算出結果、それぞれのタイミング関係を表す模式図を図17に示す。なお各PR領域での処理が停止する停止時刻(図13のタイミングT4〜T7)は、上述した要領で、開始時刻を基に、機能毎コンフィグ処理時間テーブル1500、機能毎データ処理時間テーブル1600を参照して算出する。各PR領域において最初に処理するジョブについて算出した終了時刻の結果を保持し、S1402のステップにおいて処理する毎に累積加算することにより求めることができる。もちろん、実際に処理が終了したなら、実際の終了時刻により補正を施すことで、その予測精度を一定の範囲に維持することができる。
S1403では、算出した終了時刻より、PR領域毎に最も終了時刻が遅くなるジョブを特定する。ここでは、S1402で算出した処理候補のジョブについて全てのPR領域においてジョブ処理した際の終了時刻より、各PR領域毎に全ての処理候補のジョブについての終了時刻の中から最も遅い終了時刻のジョブを特定する。図18にPR領域毎に最も終了時刻の遅いジョブを特定する方法を説明する模式図を示す。始めにPR1について最も終了時刻の遅いジョブの特定方法について説明する。PR1を使用した際の、ジョブ1〜4の終了時刻は、図17に示す終了時刻の算出結果より、それぞれ4:20、4:25、3:35、3:55である。従って、PR1における最も終了時刻が遅くなるデータ処理は処理Fであり、それを実行するジョブとしてジョブ2を特定する。次にPR2について最も終了時刻の遅いジョブを特定する。PR2を使用した際の、ジョブ1〜4の終了時刻は、図17に示す終了時刻の算出結果より、それぞれ4:30、4:35、4:00、4:20である。従って、PR2における最も終了時刻が遅くなるデータ処理は処理Fであり、それを実行するジョブとしてジョブ2を特定する。次にPR3について最も終了時刻の遅いジョブを特定する。PR3を使用した際の、ジョブ1〜4の終了時刻は、図17に示す終了時刻の算出結果より、それぞれ5:00、5:05、4:30、4:40である。従って、PR3における最も終了時刻が遅くなるデータ処理は処理Fであり、それを実行するジョブとしてジョブ2を特定する。最後にPR4について最も終了時刻の遅いジョブを特定する。PR4を使用した際の、ジョブ1〜4の終了時刻は、図17に示す終了時刻の算出結果より、それぞれ4:55、4:45、4:20、4:00である。従って、PR4における最も終了時刻が遅くなるデータ処理は処理Eであり、それを実行するジョブとしてジョブ1を特定する。
S1404では、特定したPR領域毎に算出した最も遅いジョブは全て同じであるか否かを確認する。全て同じである場合にはS1405へ進む。そうでない場合にはS1406へ進む。S1403において算出した各PR領域毎に最も終了時刻の遅いジョブは、PR1〜PR4について、それぞれジョブ2、ジョブ2、ジョブ2、ジョブ1である。よって、PR領域毎に算出した最も終了時刻の遅いジョブは、ジョブ1とジョブ2が存在し、全て同じではない為、S1406へ進む。
S1406では、複数の最も遅いジョブについて、最も遅くなるPR領域での終了時刻を比較し、最も終了時刻の遅いジョブを最も遅いジョブとして特定する。ジョブ1についての最も遅くなるPR領域での終了時刻は、図17に示す終了時刻の算出結果より、PR3での終了時刻の5:00である。一方、ジョブ2についての最も遅くなるPR領域での終了時刻は、図17に示す終了時刻の算出結果より、PR3での終了時刻の5:05である。よってジョブ2の方が終了時刻が遅いので、ジョブ2を最も遅いジョブとして特定する。
S1407では、特定された最も遅いジョブについて、最も終了時刻が遅くなるPR領域以外のPR領域を、最も遅いジョブのPR領域として選択する。S1406のステップにおいて特定された最も遅いジョブ2について、最も終了時刻が遅くなるPR領域は、図17に示す終了時刻の算出結果より、PR3である。S1407においては、ジョブ2が処理するPR領域としてPR3以外のPR1、PR2、PR4のいずれかのPR領域を選択する。本実施形態の画像処理装置100においては、最も終了時刻が遅くなるPR領域以外のPR領域として、最も終了時刻が早いPR領域を選択する場合を例にとり説明する。ジョブ2のPR1、PR2、PR4での終了時刻は、それぞれ4:25、4:35、4:45である。よってPR1の終了時刻が最も早いので、最も遅いジョブ2のPR領域としてPR1を選択する。このようにして、S1405,S1406,S1407により、停止したPR領域で実行を開始したとして、最も完了が遅くなるようなジョブとPR領域(すなわち再構成可能な部分)との組を推定する。そしてその組が形成されないように、停止したPR領域に応じて実行するジョブを選択する。
以上で、キューに登録されているジョブの中で最も処理が遅くなるジョブを特定し、前記遅くなるジョブのPR領域を選択する処理が終了する。
以上説明したように実施形態2の画像処理装置では、キューに登録されているジョブの中で最も処理が遅くなるジョブを特定し、最も遅いジョブが最も遅くなるPR領域以外のPR領域を選択するよう制御する。図19に従来の画像処理装置と、実施形態2における画像処理装置での、FPGA140の部分再構成部201〜204で実施される処理を比較するタイミングチャートを示す。図19に示すように、実施形態2における画像処理装置で最後のジョブ処理が終了するPR3の終了タイミングが、従来の画像処理装置で最後のジョブ処理が終了するPR3の終了タイミングより早くできるという効果を奏する。
換言すれば、本実施形態により、ジョブ全体の処理に係るクリチカルパスとなるジョブを前倒しで実行することで、ジョブ全体の処理を短時間で終了させることができる。
[その他の実施例]
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
100 画像処理装置、101 CPU、102 ネットワークI/F、103 操作部、104 ROM、118 ASIC、130 コンフィグコントローラ、140 FPGA、150 コンフィギュレーション用ROM、201 部分再構成部(PR1)、220 PR管理テーブル、221 構成情報容量テーブル、300 PR1用コンフィギュレーションデータ、1500 機能毎コンフィグ処理時間テーブル、1600 機能毎データ処理時間テーブル

Claims (11)

  1. 回路構成を領域ごとに動的再構成可能な再構成可能回路を用いた画像処理手段と、
    投入されたジョブをキューに登録するジョブ記憶手段と、
    前記再構成可能回路の動的再構成可能な領域のうち、停止している領域を判定する判定手段と、
    次に実行するジョブとして、前記判定された領域を用いる画像処理を含むジョブを前記キューに登録されたジョブから選択する選択手段と、
    前記選択されたジョブを前記キューから取り出し、当該ジョブに含まれる画像処理に応じて必要があれば前記判定された領域の再構成を行い、該領域に構成された回路により前記選択されたジョブの画像処理を実行させる実行制御手段と
    を有することを特徴とする画像処理装置。
  2. 前記選択手段は、前記判定された領域に構成されている回路を用いる画像処理を含むジョブが前記キューに登録されている場合には当該ジョブを選択し、前記実行制御手段は、前記判定された領域を再構成せずに前記選択されたジョブを実行させることを特徴とする請求項1に記載の画像処理装置。
  3. 前記選択手段は、前記判定された領域に構成されている回路を用いる画像処理を含む複数のジョブが前記キューに登録されている場合には、前記複数のジョブのうち、最も前記キューの先頭に近いジョブを選択することを特徴とする請求項2に記載の画像処理装置。
  4. 前記選択手段は、前記判定された領域に構成されている回路を用いる画像処理を含むジョブが前記キューに登録されていない場合には、前記キューの先頭のジョブを選択し、前記実行制御手段は、前記判定された領域に前記選択されたジョブの画像処理のための回路を再構成して前記選択されたジョブを実行させることを特徴とする請求項1乃至3のいずれか一項に記載の画像処理装置。
  5. 前記選択手段は、前記キューに登録されたジョブを、停止した前記再構成可能回路の動的再構成可能な前記領域のそれぞれを用いて実行した際に、最も完了が遅くなるジョブと前記領域との組を推定し、停止したと判定された前記領域に応じて、最も完了が遅くなると推定した前記組とはならないようジョブを選択することを特徴とする請求項1に記載の画像処理装置。
  6. 前記選択手段は、前記領域ごとに最も完了が遅くなるジョブを推定し、推定したジョブが全ての前記領域において同じであれば、当該ジョブと、該ジョブの完了が最も遅くなる前記領域との組を、前記最も完了が遅くなるジョブと領域との組であると推定することを特徴とする請求項5に記載の画像処理装置。
  7. 前記選択手段は、前記領域ごとに最も完了が遅くなるジョブを推定し、推定したジョブが全ての前記領域において同じでなければ、最も完了が遅くなるジョブと、該ジョブの完了が最も遅くなる前記領域との組を、前記最も完了が遅くなるジョブと領域との組と推定することを特徴とする請求項5又は6に記載の画像処理装置。
  8. 前記実行制御手段は、前記判定手段により停止したと次に判定された前記領域に構成した回路を用いて、前記最も完了が遅くなるジョブを実行させることを特徴とする請求項5乃至7のいずれか一項に記載の画像処理装置。
  9. 前記再構成可能回路の動的再構成可能な領域ごとに、構成する回路の種類ごとの構成に要する時間と、ジョブの処理に要する処理時間とを記憶した時間記憶手段を更に有し、
    前記選択手段は、前記時間記憶手段に記憶した時間に基づいて、前記最も完了が遅くなるジョブと領域との組を推定することを特徴とする請求項5乃至8のいずれか一項に記載の画像処理装置。
  10. 回路構成を領域ごとに動的再構成可能な再構成可能回路を用いた画像処理手段を有する画像処理装置の制御方法であって、
    投入されたジョブをキューに登録するジョブ記憶工程と、
    前記再構成可能回路の動的再構成可能な領域のうち、停止している領域を判定する判定工程と、
    次に実行するジョブとして、前記判定された領域を用いる画像処理を含むジョブを前記キューに登録されたジョブから選択する選択工程と、
    前記選択されたジョブを前記キューから取り出し、当該ジョブに含まれる画像処理に応じて必要があれば前記判定された領域の再構成を行い、該領域に構成された回路により前記選択されたジョブの画像処理を実行させる実行制御工程と
    を有することを特徴とする画像処理装置の制御方法。
  11. 回路構成を領域ごとに動的再構成可能な再構成可能回路を用いた画像処理手段を有するコンピュータにより、
    投入されたジョブをキューに登録するジョブ記憶工程と、
    前記再構成可能回路の動的再構成可能な領域のうち、停止している領域を判定する判定工程と、
    次に実行するジョブとして、前記判定された領域を用いる画像処理を含むジョブを前記キューに登録されたジョブから選択する選択工程と、
    前記選択されたジョブを前記キューから取り出し、当該ジョブに含まれる画像処理に応じて必要があれば前記判定された領域の再構成を行い、該領域に構成された回路により前記選択されたジョブの画像処理を実行させる実行制御工程と
    を実行させるためのプログラム。
JP2015069806A 2015-03-30 2015-03-30 画像処理装置、その制御方法およびプログラム Pending JP2016189177A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015069806A JP2016189177A (ja) 2015-03-30 2015-03-30 画像処理装置、その制御方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015069806A JP2016189177A (ja) 2015-03-30 2015-03-30 画像処理装置、その制御方法およびプログラム

Publications (1)

Publication Number Publication Date
JP2016189177A true JP2016189177A (ja) 2016-11-04

Family

ID=57239760

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015069806A Pending JP2016189177A (ja) 2015-03-30 2015-03-30 画像処理装置、その制御方法およびプログラム

Country Status (1)

Country Link
JP (1) JP2016189177A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019021046A (ja) * 2017-07-18 2019-02-07 富士通株式会社 情報処理装置、情報処理方法および情報処理プログラム
JP7427501B2 (ja) 2020-03-27 2024-02-05 グローリー株式会社 貨幣識別装置、貨幣処理装置、貨幣識別方法及び貨幣識別プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019021046A (ja) * 2017-07-18 2019-02-07 富士通株式会社 情報処理装置、情報処理方法および情報処理プログラム
JP7427501B2 (ja) 2020-03-27 2024-02-05 グローリー株式会社 貨幣識別装置、貨幣処理装置、貨幣識別方法及び貨幣識別プログラム

Similar Documents

Publication Publication Date Title
US7605819B2 (en) Image processing device, method, and storage medium which stores a program
US7602394B2 (en) Image processing device, method, and storage medium which stores a program
US7602392B2 (en) Image processing device, method, and storage medium which stores a program
US7605818B2 (en) Image processing device, method, and storage medium which stores a program
US7602391B2 (en) Image processing device, method, and storage medium which stores a program
US7595803B2 (en) Image processing device, method, and storage medium which stores a program
US10313547B2 (en) Data processing apparatus, data processing method, and storage medium
JP2008009697A (ja) 画像処理装置及びプログラム
US7602393B2 (en) Image processing device, method, and storage medium which stores a program
US20060274964A1 (en) Image processing device, method, and storage medium which stores a program
JP6351315B2 (ja) 画像処理装置、その制御方法及びプログラム
JP2016189177A (ja) 画像処理装置、その制御方法およびプログラム
JP5517607B2 (ja) 情報処理装置、画像圧縮方法、及びコンピュータプログラム
US11256459B2 (en) Data processing apparatus that switches to execution of a different command list at a preset control point, method of controlling the same, and computer-readable storage medium
US20180182059A1 (en) Information processing apparatus and communication control method having communication mode based on function
JP4892429B2 (ja) 画像形成装置、画像形成装置の制御方法及びプログラム
US10037591B2 (en) Information processing apparatus and method of controlling the same
JP6655963B2 (ja) 画像処理装置、画像処理装置の制御方法。
JP5298154B2 (ja) データ処理装置およびデータ処理プログラム
JP2018144372A (ja) 画像形成装置、画像形成装置の制御方法、及びプログラム
JP2016076867A (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
JP2018144361A (ja) 画像形成装置、画像形成装置の制御方法、及びプログラム
JP2016136359A (ja) 画像処理装置、その制御方法及びプログラム
US11205242B2 (en) Memory error recovery for complex page RIP
US10755150B2 (en) Image processing apparatus that performs pixel synthesis processing and image processing method