JP2017118450A - データ処理装置、その制御方法、及びプログラム - Google Patents
データ処理装置、その制御方法、及びプログラム Download PDFInfo
- Publication number
- JP2017118450A JP2017118450A JP2015254868A JP2015254868A JP2017118450A JP 2017118450 A JP2017118450 A JP 2017118450A JP 2015254868 A JP2015254868 A JP 2015254868A JP 2015254868 A JP2015254868 A JP 2015254868A JP 2017118450 A JP2017118450 A JP 2017118450A
- Authority
- JP
- Japan
- Prior art keywords
- reconfiguration
- processing apparatus
- partial
- area
- unit
- 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
- Logic Circuits (AREA)
Abstract
【課題】動的部分再構成が失敗した場合においても、リカバリー制御を実行することにより、意図しない回路構成を原因としたデバイス故障を回避する仕組みを提供する。
【解決手段】本データ処理装置は、FPGA140の少なくとも一部の領域を再構成する部分再構成が失敗したことを検知すると、当該領域に対応する初期化データを用いて、当該領域を再構成させる。
【選択図】 図3
【解決手段】本データ処理装置は、FPGA140の少なくとも一部の領域を再構成する部分再構成が失敗したことを検知すると、当該領域に対応する初期化データを用いて、当該領域を再構成させる。
【選択図】 図3
Description
本発明は、データ処理装置、その制御方法、及びプログラムに関する。
論理回路構成を変更可能なPLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)等の再構成可能回路が知られている。一般的には、PLDやFPGAは起動時に、ROM等の不揮発性メモリに格納された回路構成情報を、内部の揮発性メモリであるコンフィギュレーションメモリへ書き込むことにより論理回路の切り替えを行うことができる。また、コンフィギュレーションメモリ内の情報は電源切断時に消去されるため、電源投入時には再度、不揮発性メモリから回路構成情報をコンフィギュレーションメモリに書き込むことで、論理回路の再構成を行う必要がある。このように、一度だけ、PLDやFPGAの論理回路の構成を行う方法を静的再構成という。
一方、回路が動作中に論理回路を変更できるFPGA等が開発されてきており、動作中に論理回路を変更する方法を動的再構成という。また、FPGAには、チップ全体ではなく特定の領域だけを書き換えることが可能なものがあり、このような書き換えを部分再構成という。特に、動作中の論理回路の動作を停止させずに、他の論理回路部分を部分再構成することを動的部分再構成という。動的部分再構成では、動的再構成時にコンフィギュレーションメモリ全体を書き換えるのではなく、コンフィギュレーションメモリ領域の一部のみを書き換えることで、FPGA内の論理回路を部分的に再構成できる。このような動的部分再構成技術を用いることで、FPGA内の一つの領域に複数の論理回路を実装できるため、ハードウェアリソースを時分割多重化した論理回路を実現できる。その結果、少ないハードウェアリソースで、用途に合わせた様々な機能をハードウェアによる高い演算性能を保ったままで柔軟に実現することが可能となる。
特許文献1には、動的部分再構成を用いて、パイプライン構成の処理において、パイプラインの先頭の回路から順に再構成可能回路上に再構成して、機能を切り替えながらデータを処理する手法が開示されている。近年のMFP(Multi Function Peripheral)等のデータ処理装置は、ユーザからの要求に応じた複数の処理(コピージョブ、プリントジョブ、SENDジョブ等)を選択することができる。また、これらの処理に応じた画像処理はハードウェア又はソフトウェアにより実行される。このデータ処理装置のデータ処理用のハードウェアにFPGA等の再構成可能回路を採用した場合、上述したような機能毎に、FPGAの回路構成を動的かつ部分的に切り替えて実現できる。その結果、少ないハードウェアリソースで様々なデータ処理機能が実現可能となる。
しかしながら、上記従来技術には以下に記載する課題がある。例えば、上記従来技術では、部分再構成を行う構成において、デバイス故障や電気的なノイズ等の要因により部分再構成が失敗した場合、必要な回路が構成されないことになり、意図したデータ処理が実現できなくなってしまう。また、部分再構成が失敗した領域には、意図しない回路が構成されており、予期せぬ動作により早期デバイス故障につながる可能性がある。具体的には、構成される回路によっては、内部での信号衝突が発生し、貫通電流により再構成可能デバイスの早期故障につながる可能性があるため、デバイス故障の原因となってしまう。
本発明は、上述の問題に鑑みて成されたものであり、動的部分再構成が失敗した場合においても、リカバリー制御を実行することにより、意図しない回路構成を原因としたデバイス故障を回避する仕組みを提供することを目的とする。
本発明は、データ処理装置であって、回路構成を部分的に再構成可能な再構成可能デバイスと、前記再構成可能デバイスの少なくとも一部の領域を再構成する再構成手段と、前記再構成手段による部分的な再構成を行う部分的再構成が成功したか又は失敗したかを検知する検知手段と、前記検知手段によって前記部分再構成が失敗したことを検知すると、初期化データを用いて、前記再構成手段によって該領域を再構成させる制御手段とを備えることを特徴とする。
本発明によれば、動的部分再構成が失敗した場合においても、リカバリー制御を実行することにより、意図しない回路構成を原因としたデバイス故障を回避することができる。
以下、添付図面を参照して本発明の実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
<画像処理装置の構成>
まず、図1を参照して、本発明の実施形態に係るデータ処理装置の一例である画像処理装置の装置構成について説明する。本実施形態の画像処理装置100は、画像処理装置100を使用するユーザが各種の操作を行うための操作部103を有する。また、画像処理装置100は、操作部103からの指示に従い、原稿を読み取って画像データを生成するスキャナ部109と、画像データを用紙に印刷するプリンタ部107とを有する。スキャナ部109は、スキャナ部109を制御するCPUや原稿の読取を行うための不図示の照明ランプや走査ミラーなどを有する。プリンタ部107は、プリンタ部107の制御を行う不図示のCPUや画像形成や定着を行うための不図示の感光体ドラムや定着器を有する。
まず、図1を参照して、本発明の実施形態に係るデータ処理装置の一例である画像処理装置の装置構成について説明する。本実施形態の画像処理装置100は、画像処理装置100を使用するユーザが各種の操作を行うための操作部103を有する。また、画像処理装置100は、操作部103からの指示に従い、原稿を読み取って画像データを生成するスキャナ部109と、画像データを用紙に印刷するプリンタ部107とを有する。スキャナ部109は、スキャナ部109を制御するCPUや原稿の読取を行うための不図示の照明ランプや走査ミラーなどを有する。プリンタ部107は、プリンタ部107の制御を行う不図示のCPUや画像形成や定着を行うための不図示の感光体ドラムや定着器を有する。
また、画像処理装置100は、画像処理装置100の動作を統括的に制御するCPU101を備え、画像処理装置の各ユニットを制御するための制御ソフトウェアを実行する。また、画像処理装置100は、CPU101が実行するプログラムが格納されているROM104を有する。また、画像処理装置100は、CPU101が動作するためのシステムワークメモリであり、かつ画像データを一時記憶するための画像メモリでもあるRAM111を有する。RAM111と、RAM111への書き込み、読み出し動作を制御するメモリコントローラ110を有する。メモリコントローラ110は、システムバス120及び画像バス121に接続され、RAM111へのアクセスを制御する。
画像処理装置100は、回路構成を部分的、かつ、動的に再構成可能な再構成可能デバイスとして画像処理回路等を構成するFPGA140を有する。本実施例では再構成可能デバイスとしてFPGAを例に説明しているが、FPGA以外の再構成可能デバイスが接続される構成であってもよい。
画像処理装置100は、CPU101の制御の基、FPGAの回路構成(コンフィギュレーション)を制御するコンフィグコントローラ130を有する。
画像処理装置100は、CPU101の制御の基、FPGAの回路構成(コンフィギュレーション)を制御するコンフィグコントローラ130を有する。
また、画像処理装置100はFPGA140に構成する為の論理回路構成情報(コンフィグデータ)が格納されているコンフィギュレーション用ROM150を有する。FPGA140は、動的書き換え可能かつ部分書き換え可能なものである。すなわち、FPGA140の再構成部の一部に構成された回路が動作している間に、その回路が占める部分とは重ならない別の部分に別の回路を再構成することができる。
また、画像処理装置100は、スキャナ部109から画像データが入力されるスキャナI/F108と、プリンタへ画像データを出力するプリンタI/F106とを有する。FPGA140及びスキャナI/F108、プリンタI/F106は、処理される画像データを転送するための画像バス121に接続される。
また、画像処理装置100は、ネットワークI/F102を介し、ネットワーク上の不図示の汎用コンピュータと通信(送受信)を行う。さらに、画像処理装置100は、USBI/F114を介し、画像処理装置100と接続された不図示の汎用コンピュータと通信(送受信)を行う。また、画像処理装置100は、FAXI/F115を介し、公衆回線網と接続し、不図示の他の画像処理装置やファクシミリ装置と通信(送受信)を行う。画像処理装置100は、CPU101が実行するプログラム、ROM104への書き込み、読み出し動作を制御するROM I/F112を有する。また、画像処理装置100は、CPU101、ネットワークI/F102、操作部103、ROM I/F112、コンフィグコントローラ130、FPGA140を相互に接続するシステムバス120を有する。CPU101は、FPGA140と、スキャナI/F108、プリンタI/F106のパラメータ設定を、システムバス120を介して行う。
<部分再構成に関する構成>
次に、図2を参照して、本実施形態に係る画像処理装置における部分再構成に関する構成について説明する。CPU101、コンフィグコントローラ130、コンフィギュレーション用ROM150、及びFPGA140については図1を用いて前述した通りである。
次に、図2を参照して、本実施形態に係る画像処理装置における部分再構成に関する構成について説明する。CPU101、コンフィグコントローラ130、コンフィギュレーション用ROM150、及びFPGA140については図1を用いて前述した通りである。
FPGA140は内部に、部分再構成部(PR1)201、部分再構成部(PR2)202、部分再構成部(PR3)203、及び部分再構成部(PR4)204を有する。各部分再構成部は動的に画像処理回路等を書き換えることが可能である。本実施形態では、画像処理機能を有する回路を部分再構成部に構成する例について説明するが、もちろん画像処理機能以外の回路を部分再構成部に構成可能である。
コンフィグコントローラ130は、再構成管理部205及びエラー検知部206を有する。再構成管理部205は各部分再構成部201、202、203、204の部分再構成を管理する機能を有する。例えば、各部分再構成部201、202、203、204が現在の処理に使用されているか等、各部分再構成部の空き状況を管理する。その上で、各部分再構成部が書き換え可能かどうかの判断を行う。再構成管理部205はCPU101の指示と、各部分再構成部が書き換え可能かどうかの判断を加味し、各部分再構成部201、202、203、204へのコンフィギュレーションデータの書き換えを行う。
エラー検知部206は部分再構成が正常に終了しなかった場合のエラーを検知する機能を有する。例えば、部分再構成部201の書き換えを実施した際に、なんらかの要因で失敗してしまったときに再構成可能デバイスが出力するエラー信号をモニタし、エラーを検知する。また、当該エラーとは、CRC(Cyclic Redundancy Check)エラーも想定されうる。エラー検知部206は、エラー信号を検知すると、再構成管理部205にエラーを通知する。エラー検知部206により、エラーが検知された場合の処理フローについては図4乃至図7を用いて後述する。
<コンフィグレーションデータ>
次に、図3を参照して、本実施形態に係る画像処理装置におけるFPGA140の部分再構成部201〜204に構成されるコンフィギュレーションデータの格納方法について説明する。
次に、図3を参照して、本実施形態に係る画像処理装置におけるFPGA140の部分再構成部201〜204に構成されるコンフィギュレーションデータの格納方法について説明する。
コンフィギュレーション用ROM150には、部分再構成に必要な複数のコンフィギュレーションデータが格納される。PR1用のコンフィギュレーションデータ300は部分再構成部(PR1)201に構成することが可能なコンフィギュレーションデータを表している。図3においては、部分再構成部(PR1)201に構成可能な機能がA、B、Cの3つである場合を例にしている。301はPR1に機能Aの回路を構成するためのコンフィギュレーションデータである。同様に302はPR1に機能Bの回路構成を、303はPR1に機能Cの回路構成を構成するためのコンフィギュレーションデータを表している。304はPR1用のブランクコンフィギュレーションデータである。
ここでブランクコンフィギュレーションデータについて説明する。ブランクコンフィギュレーションデータは部分再構成部を初期状態にするためのコンフィギュレーションデータである。このブランクコンフィギュレーションデータを部分再構成部に書き込むことにより、部分再構成部の回路構成を何も書き込まれていない状態、つまり初期化することが可能である。ただし、部分再構成部が出力ポートを持ち、部分再構成部以外と接続されている場合、その出力値を非アクティブ方向に固定し、外部の回路に影響を与えない構成とするものである。即ち、部分再構成部にブランクコンフィグレーションデータが構成されている場合に、動作されることにより、内部での信号衝突が発生し、貫通電流によりFPGA140に影響を与えることはない。
図3の説明に戻る。PR2用のコンフィギュレーションデータ310は部分再構成部(PR2)202に構成することが可能なコンフィギュレーションデータを表している。PR2用のコンフィギュレーションデータ310についても、機能A、B、Cの3つの機能のコンフィギュレーションデータを格納しており、部分再構成部(PR2)202には3つの機能を切り替えて構成することが可能である。また、PR2用のブランクコンフィギュレーションデータ314も格納しており、PR2の初期化が可能である。
また、PR3用のコンフィギュレーションデータ320は部分再構成部(PR3)203に構成することが可能なコンフィギュレーションデータを表している。PR3用のコンフィギュレーションデータ320についても、機能A、B、Cの3つの機能のコンフィギュレーションデータを格納しており、部分再構成部(PR3)203には4つの機能を切り替えて構成することが可能である。また、PR3用のブランクコンフィギュレーションデータ324も格納しており、PR3の初期化が可能である。
また、PR4用のコンフィギュレーションデータ330は部分再構成部(PR4)204に構成することが可能なコンフィギュレーションデータを表している。PR4用のコンフィギュレーションデータ330についても、機能A、B、Cの3つの機能のコンフィギュレーションデータを格納しており、部分再構成部(PR4)204には3つの機能を切り替えて構成することが可能である。また、PR4用のブランクコンフィギュレーションデータ334も格納しており、PR4の初期化が可能である。
上述したように、各部分再構成部ごとにコンフィギュレーションデータを用意する必要がある。例えば、機能Aの回路構成を部分再構成部(PR1)201と部分再構成部(PR2)202に構成するためには、PR1用の機能A301、PR2用の機能A311というように同じ機能を実現することを想定する。このような場合でも、構成場所によって異なるコンフィギュレーションデータを用意しておく必要がある。そのため、各部分再構成領域用のコンフィギュレーションデータを多くもっておけば、各部分再構成領域をフレキシブルに使用可能となるが、コンフィギュレーション用ROM150に格納されるデータ容量は大きくなってしまう。一方で、機能毎にコンフィギュレーションする部分再構成部の場所を限定すれば、各部分再構成部をフレキシブルに使用できなくなるがコンフィギュレーションROMの容量を削減することができる。
本実施形態では、FPGA140は4つの部分再構成領域を有し、部分再構成領域に構成する機能をA、B、Cの3つと、ブランクコンフィギュレーションを有する場合を例に説明する。もちろん、部分再構成の領域を4つであることと、そこに構成する機能を3つに限定した理由は、説明を容易にするためだけであり、限定する意図はない。
<ジョブ実行の処理手順>
次に、図4を参照して、本発明の実施形態に係る画像処理装置のジョブ実行の処理手順について説明する。以下で説明する処理は、CPU101がROM104に格納された制御プログラムをRAM111に読み出して実行することにより実現される。なお、CPU101の指示に従って、コンフィグコントローラ130が実行する処理も含まれる。
次に、図4を参照して、本発明の実施形態に係る画像処理装置のジョブ実行の処理手順について説明する。以下で説明する処理は、CPU101がROM104に格納された制御プログラムをRAM111に読み出して実行することにより実現される。なお、CPU101の指示に従って、コンフィグコントローラ130が実行する処理も含まれる。
まず、画像処理装置100はジョブの受信待ち状態となる。S401で、CPU101は、ジョブを受信したか否かを判定する。ジョブには、コピージョブや、プリントジョブ、SENDジョブ等がある。コピージョブは、スキャナ部109によって原稿の画像を読み取って画像データを生成し、画像データに基づく印刷をプリンタ部107に実行させるジョブである。プリントジョブは、ネットワークI/F102を介して外部装置(PC等)から印刷データと印刷設定を受け付け、受け付けた印刷データと印刷設定に基づいてプリンタ部107に印刷を実行させるジョブである。SENDジョブは、読み取った原稿の画像を、スキャナ部109によって原稿の画像を読み取って画像データを生成し、画像データをネットワークI/F102を介して外部装置に送信するジョブである。コピージョブやSENDジョブの場合、操作部103に設けられたスタートキーが押下されたときに、S401で、CPU101は、ジョブを受信したと判定する。プリントジョブの場合、ネットワークI/F102を介して印刷データと設定とを受け付けたときに、S401で、CPU101は、ジョブを受信したと判定する。ジョブを受信するとS402へ進む。
S402で、CPU101は、受信したジョブを実行するにあたり、FPGA140に構成する必要がある機能を特定する。例えば受信したジョブ処理のために、機能Aを実現する回路を部分再構成部に構成する必要がある等を特定する。なお、1つのジョブにおいて複数の機能が必要である場合もありうる。
S403で、CPU101は、S402で特定したFPGA140に構成する必要がある機能をFPGA140の部分再構成部に構成する。S403はCPU101の指示のもとコンフィグコントローラ130がコンフィギュレーション用ROM150から、必要なコンフィギュレーションデータを読み出し、FPGA140の部分再構成部に書き込むことにより行われる。S403の部分再構成実行処理の詳細については図5を用いて後述する。
S404で、CPU101は、S402で特定した部分再構成部に構成する必要がある全ての機能のコンフィギュレーションが成功したか否かを判定する。S404はCPU101の指示のもとコンフィグコントローラ130の再構成管理部205がエラー検知部206の検知結果に基づいて成功か否かを判定する。S402で特定したジョブ実行に必要な全ての機能の部分再構成が正常終了した場合にはS407へ進み、エラー終了した場合にはS405へ進む。
S405で、ジョブ実行に必要な機能の部分再構成がエラー終了しているため、コンフィグコントローラ130は、FPGA140の全面再構成処理を実行する。この全面再構成処理を実行することにより、FPGA140の部分再構成部の全てが初期化されることとなる。従って、S405では、予め定められた初期化データを用いて全面再構成が行われる。S405で実行するFPGA140の全面再構成の詳細な処理手順については図7を用いて後述する。続いて、S406でFPGA140の全面再構成が正常終了したか否かを判定する。この判定もCPU101の指示に従って、コンフィグコントローラ130の再構成管理部205がエラー検知部206の検知結果に従って成功したか否かを判定する。FPGA140の全面再構成が正常終了した場合はS407へ進み、エラー終了した場合はS408へ進む。なお、ここでの正常終了とは、S403で失敗した部分再構成の領域についても当該必要な回路構成の再構成が成功したことを示す。つまり、全ての領域において、正常な回路が構成されていることが条件となる。なお、後述するブランクコンフィグデータを用いて再構成された領域があってもよく、ジョブを処理するために必要な回路構成が構成されていればよい。
S408で、CPU101は、S402で特定した必要な機能が構成できないためジョブを実行できない場合、CPU101はエラー通知を行う。このエラー通知はCPU101の指示の基、操作部103の表示部にエラーの旨を表示し、操作者に電源の再投入等を促す。その後、処理を終了する。
S407で、CPU101は、受信ジョブを処理するための全ての機能のコンフィギュレーションが完了しているので、受信ジョブの処理を実行する。その後、ジョブの実行が完了すると処理を終了する。
<部分再構成>
次に、図5を参照して、上記S403で行われる部分再構成の詳細な処理手順について説明する。以下で説明する処理は、CPU101がROM104に格納された制御プログラムをRAM111に読み出して実行することにより実現される。なお、CPU101の指示に従って、コンフィグコントローラ130が実行する処理も含まれる。ここでは、部分再構成部(PR1)201に機能Aを構成する場合を例に説明する。
次に、図5を参照して、上記S403で行われる部分再構成の詳細な処理手順について説明する。以下で説明する処理は、CPU101がROM104に格納された制御プログラムをRAM111に読み出して実行することにより実現される。なお、CPU101の指示に従って、コンフィグコントローラ130が実行する処理も含まれる。ここでは、部分再構成部(PR1)201に機能Aを構成する場合を例に説明する。
S501で、CPU101は、コンフィギュレーション用ROM150に格納されているコンフィギュレーションデータの中から、部分再構成部に構成するコンフィギュレーションデータを特定する。例えば部分再構成部(PR1)201に機能Aの回路を構成する場合、コンフィギュレーション用ROM150に格納されているコンフィギュレーションデータの中からPR1用機能A301を特定する。
S502で、コンフィグコントローラ130は、部分再構成を実行する。具体的にはS501で特定したコンフィギュレーションデータを、書き換えるべき部分再構成部に構成する。続いて、S503で、コンフィグコントローラ130は、部分再構成が正常終了したか否かを判定する。この判定は、FPGA140が出力する部分再構成の正常終了を表す信号を再構成管理部205がモニタする等により行われる。部分再構成が正常終了した場合はS510に進み、エラーにより正常に終了しなかった場合はS504へ進む。このエラー終了の判断はFPGA140が出力する部分再構成がエラー終了したことを表す信号をエラー検知部206がモニタし、エラー信号が出力されたことを再構成管理部205に通知することにより行われる。
S504で、コンフィグコントローラ130は、S502で実行した部分再構成が何らかの要因により失敗しているため、S502で実施した部分再構成の再実行を行う。S505で、コンフィグコントローラ130は、S504で実行した部分再構成の再実行が正常終了したか否かを判定する。この判定もS503と同様に、再構成管理部205とエラー検知部206がFPGA140の正常終了、エラー終了を表す信号をモニタすることにより行われる。ここで、部分再構成が正常終了したと判断した場合は、S510へ進み、部分再構成が正常終了しなかったと判定した場合は、即ち、エラー終了した場合はS506へ進む。なお、部分再構成が正常終了しなかったと判定した場合、S504とS505のステップを複数回実行するように制御してもよい。
S506で、CPU101は、S504で実行した部分再構成の再実行が失敗しているため、部分再構成領域(PR1)201には意図しない回路が構成されている可能性がある。S506では、部分再構成の失敗により構成された意図しない回路を削除するために、部分再構成が失敗した領域にブランクコンフィグデータの書き込みを実行する。S506でブランクコンフィグデータの書き込みを実行するのは、S504で実行した部分再構成の失敗により構成された意図しない回路を削除するためである。先述したように、ブランクコンフィグデータは部分再構成部を初期化するためのコンフィギュレーションデータである。また、部分再構成部が出力ポートを持っている場合、出力値を非アクティブの方向に固定するものであり、部分再構成部以外の回路に対しても影響を与えることはない。S506でのブランクコンフィグデータの書き込みが成功した場合、部分再構領域(PR1)201には、意図しない回路が構成されておらず、部分再構成領域(PR1)201以外の回路に対しても影響を与えない構成となる。
S507で、コンフィグコントローラ130は、S506で実行した、ブランクコンフィグデータの書き込みが成功したか否かを判定する。この判定もS503と同様に、再構成管理部205とエラー検知部206が部分再構成の正常終了、エラー終了を表す信号をモニタすることにより行われる。ここで、ブランクコンフィグデータの書き込みが正常終了したと判定した場合はS508へ進み、エラー終了した場合は、部分再構成実行のフローを終了し、図4のS404へ進む。
S508において、S506で実行したブランクコンフィグデータの書き込みが成功しているため、部分再構成領域(PR1)201には意図しない回路は残っていない状態となる。従って、S508で、コンフィグコントローラ130は、部分再構成領域を他の領域に変えて、同じ機能の部分再構成を実行する。例えば、部分再構成部(PR1)201に機能Aの回路を構成しようとした際に失敗した場合には、部分再構成部(PR2)202等に機能Aの回路の再構成を実施する。このS508において他の領域に変更して部分再構成を実行する詳細な処理手順については、図6を用いて後述する。
次に、S509で、コンフィグコントローラ130は、S508で実行した領域を変更して部分再構成が成功したか否かを判定する。この判定もS503と同様に、再構成管理部205とエラー検知部206がFPGA140の正常終了、エラー終了を表す信号をモニタすることにより行われる。S509において部分再構成が正常終了したと判断した場合はS510へ進み、エラー終了した場合は部分再構成の処理を終了し、図4のS404へ進む。
S510で、コンフィグコントローラ130は、ジョブの実行に必要な全ての機能の部分再構成が終了したか否かを判定する。ジョブの実行に必要な全ての機能の部分再構成が終了していれば、部分再構成の処理を終了し、図4のS404へ進む。一方、ジョブ実行に必要な全ての機能の部分再構成が終了していなければ、必要な機能の部分再構成を実行するためS501に処理を戻す。
<領域を変更した部分再構成>
次に、図6を参照して、S508で、他の領域に変更して部分再構成を実行する詳細な処理手順について説明する。以下で説明する処理は、CPU101がROM104に格納された制御プログラムをRAM111に読み出して実行することにより実現される。なお、CPU101の指示に従って、コンフィグコントローラ130が実行する処理も含まれる。ここでは、他の領域として部分再構成部(PR2)202に機能Aを構成する場合を例に説明する。
次に、図6を参照して、S508で、他の領域に変更して部分再構成を実行する詳細な処理手順について説明する。以下で説明する処理は、CPU101がROM104に格納された制御プログラムをRAM111に読み出して実行することにより実現される。なお、CPU101の指示に従って、コンフィグコントローラ130が実行する処理も含まれる。ここでは、他の領域として部分再構成部(PR2)202に機能Aを構成する場合を例に説明する。
S601で、再構成管理部205は、FPGA140の部分再構成部に空いている領域があるか否かを判定する。S601で、FPGA140の部分再構成部に空いている領域があった場合はS602に進み、空いている領域がなかった場合はS604へ進む。
S602で、FPGA140の部分再構成部に空いている領域があるので、コンフィグコントローラ130は、S601で特定した空き領域に構成するコンフィグデータを特定する。例えば、部分再構成部(PR2)が空いていた場合で機能Aを構成する場合はコンフィギュレーション用ROM150の中からPR2用機能A311を特定する。続いて、S603で、コンフィグコントローラ130は、S602で特定したコンフィギュレーションデータを用いて、S601で特定した空き領域に対して部分再構成を実行する。
一方、S604で、FPGA140の部分再構成部に空いている領域がなかったため、再構成管理部205は、FPGA140の部分再構成部に書き換え可能な領域があるか否かを判定する。ここで、書き換え可能な領域とは、すでに部分再構成部に何らかのコンフィギュレーションデータが書き込まれているが、現在の処理に使用されていない領域のことを示している。また、S401で受信したジョブを処理するために使用しない領域であることも必要である。S604で、FPGA140の部分再構成部に書き換え可能な領域があった場合、S605へ進む。S604において、部分再構成部に書き換え可能な領域がなかった場合、領域を変更して部分再構成の処理を終了し、図5のS509へ進む。
S605で、FPGA140の部分再構成部に書き換え可能な領域があるので、コンフィグコントローラ130は、S604で特定した書き換え可能な領域に対して部分再構成を実行し、処理を終了して図5のS509へ進む。
<全面再構成>
次に、図7を参照して、S405で全面再構成を実行する詳細な処理手順について説明する。以下で説明する処理は、CPU101がROM104に格納された制御プログラムをRAM111に読み出して実行することにより実現される。なお、CPU101の指示に従って、コンフィグコントローラ130が実行する処理も含まれる。
次に、図7を参照して、S405で全面再構成を実行する詳細な処理手順について説明する。以下で説明する処理は、CPU101がROM104に格納された制御プログラムをRAM111に読み出して実行することにより実現される。なお、CPU101の指示に従って、コンフィグコントローラ130が実行する処理も含まれる。
S701で、コンフィグコントローラ130は、部分再構成部に構成されているコンフィグデータの種類を記憶する。ここで、部分再構成部に構成されているコンフィグデータの種類を記憶するのは、全面再構成後に初期化された部分再構成部に対して、必要に応じて部分再構成を実行し、FPGA140の当該部分を全面再構成前と同じ状態にするためである。なお、ここでの全面再構成による初期化は、全ての回路構成が初期化されるため上述のような処理が必要となる。
S702で、コンフィグコントローラ130は、所定の初期化データを用いて、FPGA140の全面再構成の実行を行う。続いて、S703で、コンフィグコントローラ130は、S701で記憶した全面再構成前の状態と同じになるように必要に応じて部分再構成の実行を行う。ここでは、例えば、S403で部分再構成を行ってエラー終了した以外の部分再構成部が対象となりうる。以上で、全面再構成の実行を終了し、図4のS406へと進む。
以上説明したように、本実施形態に係る画像処理装置は、FPGA140の少なくとも一部の領域を再構成する部分再構成処理が失敗したことを検知すると、当該領域に対応する初期化データを用いて、当該領域を再構成させる。これにより、本実施形態によれば、意図しない回路構成が動作することにより、内部での信号衝突が発生し、貫通電流によるデバイス故障が引き起こされることを回避することができる。
<その他の実施形態>
上述した実施形態では、画像データを処理する画像処理装置100を例に説明したが、画像データ以外のテキストデータや音声データを処理するデータ処理装置に適用してもよい。
上述した実施形態では、画像データを処理する画像処理装置100を例に説明したが、画像データ以外のテキストデータや音声データを処理するデータ処理装置に適用してもよい。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
100:画像処理装置、101:CPU、104:ROM、111:RAM、120:システムバス、121:画像バス、130:コンフィグコントローラ、140:FPGA、150:コンフィギュレーション用ROM
Claims (10)
- データ処理装置であって、
回路構成を部分的に再構成可能な再構成可能デバイスと、
前記再構成可能デバイスの少なくとも一部の領域を再構成する再構成手段と、
前記再構成手段による部分的な再構成を行う部分再構成が成功したか又は失敗したかを検知する検知手段と、
前記検知手段によって前記部分再構成が失敗したことを検知すると、初期化データを用いて、前記再構成手段によって該領域を再構成させる制御手段と
を備えることを特徴とするデータ処理装置。 - 前記制御手段は、
前記初期化データを用いた部分再構成が成功した場合には、前記再構成手段によって他の領域に必要な回路構成を再構成させることを特徴とする請求項1に記載のデータ処理装置。 - 前記制御手段は、
前記初期化データを用いた部分再構成が失敗した場合には、前記再構成手段によって、前記再構成可能デバイスの全ての部分を初期化データを用いて再構成する全面再構成を実行させることにより、該再構成可能デバイスを初期化することを特徴とする請求項1又は2に記載のデータ処理装置。 - 前記再構成手段は、
前記全面再構成を実行させる前に、各領域に構成されている回路構成に対応するデータを記憶し、
前記全面再構成を実行した後に、各領域に必要な回路構成を再構成することを特徴とする請求項3に記載のデータ処理装置。 - 前記他の領域とは、回路構成が構成されていない領域であることを特徴とする請求項2に記載のデータ処理装置。
- 前記他の領域とは、回路構成が構成されているものの、前記データ処理装置における次の処理に必要のない領域であることを特徴とする請求項2に記載のデータ処理装置。
- 前記初期化データは、対応する領域の再構成部が出力ポートを有する場合には、該出力ポートの出力値を非アクティブ方向に固定するデータであることを特徴とする請求項1乃至6の何れか1項に記載のデータ処理装置。
- 前記制御手段は、
前記再構成手段による初期化データを用いた再構成が失敗した場合に、操作者にエラーを通知することを特徴とする請求項1乃至7の何れか1項に記載のデータ処理装置。 - 回路構成を部分的に再構成可能な再構成可能デバイスを備えるデータ処理装置の制御方法であって、
再構成手段が、前記再構成可能デバイスの少なくとも一部の領域を再構成する再構成工程と、
検知手段が、前記再構成工程による部分的な再構成を行う部分再構成が成功したか又は失敗したかを検知する検知工程と、
制御手段が、前記検知工程で前記部分再構成が失敗したことを検知すると、初期化データを用いて、前記再構成手段によって該領域を再構成させる制御工程と
を実行することを特徴とするデータ処理装置の制御方法。 - 回路構成を部分的に再構成可能な再構成可能デバイスを備えるデータ処理装置の制御方法における各工程をコンピュータに実行させるためのプログラムであって、前記方法は、
再構成手段が、前記再構成可能デバイスの少なくとも一部の領域を再構成する再構成工程と、
検知手段が、前記再構成工程による部分的な再構成を行う部分再構成が成功したか又は失敗したかを検知する検知工程と、
制御手段が、前記検知工程で前記部分再構成が失敗したことを検知すると、初期化データを用いて、前記再構成手段によって該領域を再構成させる制御工程と
を実行することを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015254868A JP2017118450A (ja) | 2015-12-25 | 2015-12-25 | データ処理装置、その制御方法、及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015254868A JP2017118450A (ja) | 2015-12-25 | 2015-12-25 | データ処理装置、その制御方法、及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017118450A true JP2017118450A (ja) | 2017-06-29 |
Family
ID=59234685
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015254868A Pending JP2017118450A (ja) | 2015-12-25 | 2015-12-25 | データ処理装置、その制御方法、及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2017118450A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019044141A1 (ja) * | 2017-08-28 | 2019-03-07 | 日立オートモティブシステムズ株式会社 | 電子制御装置、回路の再構成方法 |
-
2015
- 2015-12-25 JP JP2015254868A patent/JP2017118450A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019044141A1 (ja) * | 2017-08-28 | 2019-03-07 | 日立オートモティブシステムズ株式会社 | 電子制御装置、回路の再構成方法 |
CN110915138A (zh) * | 2017-08-28 | 2020-03-24 | 日立汽车系统株式会社 | 电子控制装置和电路的重构方法 |
US11342917B2 (en) | 2017-08-28 | 2022-05-24 | Hitachi Astemo, Ltd. | Electronic control device and circuit reconfiguration method |
CN110915138B (zh) * | 2017-08-28 | 2023-07-25 | 日立安斯泰莫株式会社 | 电子控制装置和电路的重构方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6598432B2 (ja) | 画像処理装置、その制御方法およびプログラム | |
JP5943736B2 (ja) | 情報処理装置、情報処理装置の制御方法及びプログラム | |
US7750676B2 (en) | Embedded system and control method therefor | |
JP2013152695A (ja) | 画像形成装置 | |
US20160036998A1 (en) | Image processing apparatus and system for controlling processing for writing configuration data to partial reconfiguration area, and information processing method | |
US10084452B2 (en) | Information processing apparatus, image processing apparatus with information processing apparatus, and control method for information processing apparatus | |
JP2019016026A (ja) | 電子制御システム | |
US9509878B2 (en) | Image processing apparatus and method for controlling the same, and storage medium | |
JP2017045318A (ja) | 電子機器 | |
JP2015149025A (ja) | 画像処理装置およびその制御方法、並びにプログラム | |
JP5034979B2 (ja) | 起動装置、起動方法、及び、起動プログラム | |
JP2017118450A (ja) | データ処理装置、その制御方法、及びプログラム | |
US9760285B2 (en) | Image processing system and image processing apparatus for configuring logical circuit on circuit according to configuration data | |
KR100503484B1 (ko) | 화상형성장치 | |
JP5080318B2 (ja) | 画像処理装置及びアクセス制御方法 | |
JP6864721B2 (ja) | 情報処理装置、およびその制御方法 | |
JP6111680B2 (ja) | 信号処理装置およびプログラマブルロジックデバイスの構成方法 | |
EP3547194A1 (en) | Apparatus and method for secure boot | |
WO2018179739A1 (ja) | 情報処理装置、情報処理方法及びプログラム | |
JP6745586B2 (ja) | プログラマブルデバイス、情報処理装置、およびプログラマブルデバイスにおける処理回路の制御方法 | |
JP7185587B2 (ja) | 制御方法および制御装置 | |
JP7287651B2 (ja) | 分散処理装置、分散処理方法、及びプログラム | |
JP2015191335A (ja) | 画像処理装置、その制御方法及びプログラム | |
JP2015139009A (ja) | 画像処理装置、その制御方法及びプログラム | |
JP2015197863A (ja) | 画像処理装置及びその制御方法、並びにプログラム |