(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023146920
(43)【公開日】2023-10-12
(54)【発明の名称】情報処理装置および集積回路
(51)【国際特許分類】
G06F 11/22 20060101AFI20231004BHJP
【FI】
G06F11/22 675C
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2022054359
(22)【出願日】2022-03-29
(71)【出願人】
【識別番号】000005496
【氏名又は名称】富士フイルムビジネスイノベーション株式会社
(74)【代理人】
【識別番号】100104880
【弁理士】
【氏名又は名称】古部 次郎
(74)【代理人】
【識別番号】100125346
【弁理士】
【氏名又は名称】尾形 文雄
(72)【発明者】
【氏名】佐々木 日史
【テーマコード(参考)】
5B048
【Fターム(参考)】
5B048AA01
5B048FF02
(57)【要約】
【課題】FPGAにおいて回路の固定的に設定された箇所から信号を取得する構成と比較して、発生したエラーに応じて、解析に必要な信号を取得できるようにする。
【解決手段】論理回路を再構成可能であり、データ処理を実行すると共に、当該データ処理においてエラーが発生した場合に、当該データ処理を行う回路部分に対して設定された取得対象位置から信号のデータを取得して出力するFPGAデバイス10を備え、制御部110は、発生したエラーに応じて、解析対象を絞り込む。FPGAデバイス10は、信号のデータを出力した後、制御部110による取得対象位置の絞り込みの結果に応じて、取得対象位置を変更する。
【選択図】
図4
【特許請求の範囲】
【請求項1】
論理回路を再構成可能であり、データ処理を実行すると共に、当該データ処理においてエラーが発生した場合に、当該データ処理を行う回路部分に対して設定された取得対象位置から信号のデータを取得して出力する集積回路と、
発生したエラーに応じて、解析対象を絞り込む絞り込み手段と、
前記集積回路から前記信号のデータが出力された後、前記取得対象位置を前記絞り込み手段による絞り込みの結果に応じて変更する変更手段と、
を備えることを特徴とする、情報処理装置。
【請求項2】
前記絞り込み手段は、前記データ処理を行う回路部分のうちエラーが発生したモジュールを前記解析対象として絞り込み、
前記変更手段は、前記絞り込み手段により前記解析対象として絞り込まれたモジュールにおける信号を取得するように前記取得対象位置を設定することを特徴とする、請求項1に記載の情報処理装置。
【請求項3】
前記集積回路に構成された処理経路上の複数のモジュールでエラーが発生した場合、前記絞り込み手段は、当該処理経路において、より前段に位置するモジュールを前記解析対象として絞り込むことを特徴とする、請求項2に記載の情報処理装置。
【請求項4】
設定値の異常に基づくエラーが発生したモジュールがあった場合、前記絞り込み手段は、前記処理経路上の位置に関わらず、当該モジュールを前記解析対象として絞り込むことを特徴とする、請求項3に記載の情報処理装置。
【請求項5】
設定値の異常に基づくエラーが発生したモジュールがあった場合、前記絞り込み手段は、他のエラーが発生したモジュールがある場合であっても、当該設定値の異常に基づくエラーが発生したモジュールを前記解析対象として絞り込むことを特徴とする、請求項2に記載の情報処理装置。
【請求項6】
前記絞り込み手段は、発生したエラーの解析に必要な信号を前記解析対象として絞り込み、
前記変更手段は、前記データ処理を行う回路部分のうち、前記絞り込み手段により前記解析対象として絞り込まれた信号が得られる箇所を前記取得対象位置として設定することを特徴とする、請求項1に記載の情報処理装置。
【請求項7】
前記集積回路に構成された処理経路上の複数の箇所でエラーが発生した場合、前記絞り込み手段は、当該処理経路において、より前段に位置するエラーの発生箇所から得られる信号を前記解析対象として絞り込むことを特徴とする、請求項6に記載の情報処理装置。
【請求項8】
設定値の異常に基づくエラーが発生した場合、前記絞り込み手段は、当該設定値の異常に基づくエラーとは別にエラーが発生した場合であっても、当該設定値の異常に基づくエラーが発生した箇所から得られる信号を前記解析対象として絞り込むことを特徴とする、請求項6に記載の情報処理装置。
【請求項9】
論理回路を再構成可能な集積回路であって、
データ処理を実行するための演算部と、
前記演算部のデータ処理においてエラーが発生した場合に、当該演算部からエラー発生時の信号のデータを取得する取得部と、を備え、
前記取得部により前記信号のデータが取得された後、発生したエラーに応じて、当該エラーに関連する回路部分の信号のデータを取得するように論理回路を再構成することを特徴とする、集積回路。
【請求項10】
前記演算部に構成された処理経路上の複数の箇所でエラーが発生した場合、当該処理経路において、より前段に位置するエラーの発生箇所から得られる信号を取得するように論理回路を再構成することを特徴とする、請求項9に記載の集積回路。
【請求項11】
設定値の異常に基づくエラーが発生した場合、当該設定値の異常に基づくエラーとは別にエラーが発生した場合であっても、当該設定値の異常に基づくエラーが発生した箇所から得られる信号を取得するように論理回路を再構成することを特徴とする、請求項9に記載の集積回路。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置および集積回路に関する。
【背景技術】
【0002】
FPGA(Field Programmable Gate Array)の内部動作の分析やデバッグを行うため、FPGA内部の素子間の信号を抽出し、ロジックアナライザを用いて分析することが行われている。
【0003】
特許文献1には、FPGA等の半導体装置に実装されて、この半導体装置の内部状態をモニタし、得られた内部状態を表す信号を外部のロジック解析端末へ送るモニタ回路が開示されている。
【0004】
特許文献2には、プログラマブル論理デバイスにロジック(論理)アナライザを埋め込むことにより、トリガ条件(ブレークポイント)の前および後の双方で信号を捕捉することを可能とした構成が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2016-62351号公報
【特許文献2】特開平11-296403号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
FPGAにロジックアナライザを搭載し、このロジックアナライザを用いてFPGAの内部状態を解析しようとする場合、FPGA内部から引き出せる信号の本数や時間幅が限られているため、解析するのに必要な信号を得られない場合があった。例えば、異常が発生したときに取得した内部波形の取得箇所が異常発生箇所と合致せず、解析に使えない場合があった。また、解析するためにある程度の時間長の信号が必要な異常に対し、解析に有効なだけの時間幅を得られない場合があった。
【0007】
本発明は、FPGAにおいて回路の固定的に設定された箇所から信号を取得する構成と比較して、発生した異常に応じて、解析に必要な信号を取得できるようにすることを目的とする。
【課題を解決するための手段】
【0008】
請求項1に係る本発明は、
論理回路を再構成可能であり、データ処理を実行すると共に、当該データ処理においてエラーが発生した場合に、当該データ処理を行う回路部分に対して設定された取得対象位置から信号のデータを取得して出力する集積回路と、
発生したエラーに応じて、解析対象を絞り込む絞り込み手段と、
前記集積回路から前記信号のデータが出力された後、前記取得対象位置を前記絞り込み手段による絞り込みの結果に応じて変更する変更手段と、
を備えることを特徴とする、情報処理装置である。
請求項2に係る本発明は、
前記絞り込み手段は、前記データ処理を行う回路部分のうちエラーが発生したモジュールを前記解析対象として絞り込み、
前記変更手段は、前記絞り込み手段により前記解析対象として絞り込まれたモジュールにおける信号を取得するように前記取得対象位置を設定することを特徴とする、請求項1に記載の情報処理装置である。
請求項3に係る本発明は、
前記集積回路に構成された処理経路上の複数のモジュールでエラーが発生した場合、前記絞り込み手段は、当該処理経路において、より前段に位置するモジュールを前記解析対象として絞り込むことを特徴とする、請求項2に記載の情報処理装置である。
請求項4に係る本発明は、
設定値の異常に基づくエラーが発生したモジュールがあった場合、前記絞り込み手段は、前記処理経路上の位置に関わらず、当該モジュールを前記解析対象として絞り込むことを特徴とする、請求項3に記載の情報処理装置である。
請求項5に係る本発明は、
設定値の異常に基づくエラーが発生したモジュールがあった場合、前記絞り込み手段は、他のエラーが発生したモジュールがある場合であっても、当該設定値の異常に基づくエラーが発生したモジュールを前記解析対象として絞り込むことを特徴とする、請求項2に記載の情報処理装置である。
請求項6に係る本発明は、
前記絞り込み手段は、発生したエラーの解析に必要な信号を前記解析対象として絞り込み、
前記変更手段は、前記データ処理を行う回路部分のうち、前記絞り込み手段により前記解析対象として絞り込まれた信号が得られる箇所を前記取得対象位置として設定することを特徴とする、請求項1に記載の情報処理装置である。
請求項7に係る本発明は、
前記集積回路に構成された処理経路上の複数の箇所でエラーが発生した場合、前記絞り込み手段は、当該処理経路において、より前段に位置するエラーの発生箇所から得られる信号を前記解析対象として絞り込むことを特徴とする、請求項6に記載の情報処理装置である。
請求項8に係る本発明は、
設定値の異常に基づくエラーが発生した場合、前記絞り込み手段は、当該設定値の異常に基づくエラーとは別にエラーが発生した場合であっても、当該設定値の異常に基づくエラーが発生した箇所から得られる信号を前記解析対象として絞り込むことを特徴とする、請求項6に記載の情報処理装置である。
請求項9に係る本発明は、
論理回路を再構成可能な集積回路であって、
データ処理を実行するための演算部と、
前記演算部のデータ処理においてエラーが発生した場合に、当該演算部からエラー発生時の信号のデータを取得する取得部と、を備え、
前記取得部により前記信号のデータが取得された後、発生したエラーに応じて、当該エラーに関連する回路部分の信号のデータを取得するように論理回路を再構成することを特徴とする、集積回路である。
請求項10に係る本発明は、
前記演算部に構成された処理経路上の複数の箇所でエラーが発生した場合、当該処理経路において、より前段に位置するエラーの発生箇所から得られる信号を取得するように論理回路を再構成することを特徴とする、請求項9に記載の集積回路である。
請求項11に係る本発明は、
設定値の異常に基づくエラーが発生した場合、当該設定値の異常に基づくエラーとは別にエラーが発生した場合であっても、当該設定値の異常に基づくエラーが発生した箇所から得られる信号を取得するように論理回路を再構成することを特徴とする、請求項9に記載の集積回路である。
【発明の効果】
【0009】
請求項1の発明によれば、FPGAにおいて回路の固定的に設定された箇所から信号を取得する構成と比較して、発生したエラーに応じて、解析に必要な信号を取得することができる。
請求項2の発明によれば、FPGAにおいて回路の固定的に設定された箇所から信号を取得する構成と比較して、エラーが発生したモジュールにおける詳細な信号の情報を得ることができる。
請求項3の発明によれば、FPGAにおいて回路の固定的に設定された箇所から信号を取得する構成と比較して、よりエラーに関連すると推定される信号の情報を得ることができる。
請求項4の発明によれば、FPGAにおいて回路の固定的に設定された箇所から信号を取得する構成と比較して、設定値の異常に関連する信号の情報を得ることができる。
請求項5の発明によれば、FPGAにおいて回路の固定的に設定された箇所から信号を取得する構成と比較して、設定値の異常に関連する信号の情報を得ることができる。
請求項6の発明によれば、FPGAにおいて回路の固定的に設定された箇所から信号を取得する構成と比較して、エラーの解析に必要な信号の情報を得ることができる。
請求項7の発明によれば、FPGAにおいて回路の固定的に設定された箇所から信号を取得する構成と比較して、よりエラーに関連すると推定される信号の情報を得ることができる。
請求項8の発明によれば、FPGAにおいて回路の固定的に設定された箇所から信号を取得する構成と比較して、設定値の異常に関連する信号の情報を得ることができる。
請求項9の発明によれば、FPGAにおいて回路の固定的に設定された箇所から信号を取得する構成と比較して、発生したエラーに関連する詳細な信号の情報を得ることができる。
請求項10の発明によれば、FPGAにおいて回路の固定的に設定された箇所から信号を取得する構成と比較して、よりエラーに関連すると推定される信号の情報を得ることができる。
請求項11の発明によれば、FPGAにおいて回路の固定的に設定された箇所から信号を取得する構成と比較して、設定値の異常に関連する信号の情報を得ることができる。
【図面の簡単な説明】
【0010】
【
図1】本実施形態が適用される画像形成装置の構成例を示す図である。
【
図3】初期状態のFPGAデバイスおよび取得データの例を示す図であり、
図3(A)は、データ取得部とモジュールとの接続関係を示す図であり、
図3(B)は、取得された波形データを示す図である。
【
図4】再構成されたFPGAデバイスおよび取得データの例を示す図である。
図4(A)は、データ取得部とモジュールとの接続関係を示す図であり、
図4(B)は、取得された波形データを示す図である。
【
図5】エラーに応じたFPGAデバイスの再構成の一例を示す図である。
【
図6】エラーに応じたFPGAデバイスの再構成の他の一例を示す図である。
【
図7】エラーに応じたFPGAデバイスの再構成の他の一例を示す図である。
【
図8】画像形成装置におけるエラーの発生に関連する動作を示すフローチャートである。
【発明を実施するための形態】
【0011】
以下、添付図面を参照して、本発明の実施形態について詳細に説明する。
【0012】
<システム構成>
本実施形態は、FPGAを備えた情報処理装置に対して適用される。適用対象となる情報処理装置は、プロセッサとしてFPGAを有する者であれば良く、装置の種類は特に限定しない。以下では、情報処理装置の一例として画像形成装置を用いる場合について説明する。
【0013】
<装置構成>
図1は、本実施形態が適用される画像形成装置の構成を示す図である。画像形成装置100は、制御部110と、記憶部120と、操作部130と、表示部140と、画像読み取り部150と、画像形成部160と、通信部170と、画像処理部180とを備える。これらの各機能部は、バス101に接続され、このバス101を介してデータの授受を行う。
【0014】
制御部110は、画像形成装置100における上記の各機能部を制御する。また、制御部110は、各種のデータ処理を実行する機能部である。制御部110は、演算手段であるCPU(Central Processing Unit)111と、記憶手段であるRAM(Random Access Memory)112およびROM(Read Only Memory)113とを備える。RAM112は、主記憶装置(メイン・メモリ)であり、CPU111が演算処理を行う際の作業用メモリとして用いられる。ROM113にはプログラムや予め用意された設定値等のデータが保持されており、CPU111はROM113から直接プログラムやデータを読み込んで処理を実行する。また、プログラムやデータは、記憶部120にも記憶される。CPU111は記憶部120に格納されたプログラムをRAM112に読み込んで実行する。
【0015】
本実施形態では、制御部110のCPU111がプログラムを読み込んで実行することにより、後述する各種の機能を実現する。本実施形態において実現される機能には、FPGAデバイスによる処理で発生したエラーの種類の判断、エラーの内容に応じたFPGAの構成データ(Configuration Data)の選択等がある。
【0016】
記憶部120は、上記のようにCPU111が実行するためのプログラムやデータを記憶する他、画像読み取り部150により読み取った画像のデータ等、各種の動作により生成された種々のデータを記憶する機能部である。記憶部120は、例えば、磁気ディスク装置やSSD(Solid State Drive)等の記憶装置により実現される。
【0017】
操作部130は、ユーザの操作を受け付ける機能部である。操作部130は、例えば、ハードウェアキーや、指等で押圧または触れた位置に応じた制御信号を出力するタッチセンサ等により構成される。タッチセンサと表示部140を構成する液晶ディスプレイとを組み合わせたタッチパネルとして構成しても良い。
【0018】
表示部140は、ユーザに各種の情報を提示する情報画像、読み取りや出力等の処理対象となる画像のプレビュー画像、ユーザが操作を行うための操作画像等を表示する機能部である。表示部140は、例えば、液晶ディスプレイにより構成される。上記の操作部130と表示部140とを組み合わせて、ユーザが画像形成装置100に対して情報の入出力を行うためのユーザインターフェイス手段として用い得る。
【0019】
画像読み取り部150は、原稿上の画像を光学的に読み取る機能部である。画像の読み取り方式としては、例えば、光源から原稿に照射した光に対する反射光をレンズで縮小してCCD(Charge Coupled Devices)で受光するCCD方式や、LED(Light Emitting Diode)光源から原稿に順に照射した光に対する反射光をCIS(Contact Image Sensor)で受光するCIS方式等が用いられる。
【0020】
画像形成部160は、用紙等の媒体に対して、画像形成材を用いて画像データに基づく画像を形成する機能部である。媒体に画像を形成する方式としては、例えば、画像形成材としてトナーを用い、感光体に付着させたトナーを媒体に転写して像を形成する電子写真方式が用いられる。
【0021】
通信部170は、外部装置との間で命令やデータを送受信する機能部である。通信部170としては、外部装置との通信方式に応じたインターフェイスが用いられる。外部装置との接続は、ネットワークを介して行っても良いし、直接接続により行っても良い。通信回線は、有線回線であっても無線回線であっても良い。
【0022】
画像処理部180は、演算手段であるプロセッサと作業用メモリとを備え、画像データが表す画像に色補正や階調補正等の画像処理を施す機能部である。本実施形態では、画像処理部180の機能を実現するプロセッサとしてFPGAが用いられるものとする。
【0023】
<FPGAデバイスの構成>
図2は、FPGAデバイスの構成例を示す図である。
図2に示すFPGAデバイス10は、画像形成装置100の画像処理部180を実現するデバイスとして用いられた例を示す。
図2に示すFPGAデバイス10は、データ処理を実行するモジュール群11と、割り込み制御部12と、データ取得部13とを備える集積回路である。モジュール群11は、演算部の一例である。
【0024】
図2に示すモジュール群11は、PCIeモジュール11aと、第1画像処理部11bと、メモリ・インターフェイス(IF)部11cと、第2画像処理部11dと、外部機器インターフェイス(IF)部11eとを含む。以下、これらの各モジュールを区別しない場合は、モジュール11a~11e等と記載する。
【0025】
PCIeモジュール11aは、PCIe(Peripheral Component Interconnect-express)により外部装置と通信を行うためのモジュールである。
図2に示す例では、FPGAデバイス10は、PCIeモジュール11aを用いて記憶部120に接続されており、記憶部120に対して画像の読み書きを行う。
【0026】
第1画像処理部11bは、画像処理部180における画像処理を実行するモジュールの一つである。
図2に示す例では、第1画像処理部11bは、例えば、アクセラレータとして動作し、処理対象の画像に対する色変換や、変換後の画像を記憶部120にスプールするために圧縮する処理等を実行する。圧縮された画像は、例えば、PCIeモジュール11aを介して記憶部120にスプールされる。
【0027】
メモリ・インターフェイス(IF)部11cは、外部メモリ20に接続するためのインターフェイス・モジュールである。外部メモリ20は、第1画像処理部11bによる画像処理において用いられる作業メモリである。外部メモリ20としては、例えば、SDRAM(Synchronous Dynamic Random Access Memory)等が用いられる。制御部110のRAM112を外部メモリ20として用いても良い。
【0028】
第2画像処理部11dは、画像処理部180における画像処理を実行するモジュールの一つである。
図2に示す例では、第2画像処理部11dは、例えば、圧縮された画像の伸長処理等を実行する。例えば、第2画像処理部11dは、第1画像処理部11bにより圧縮され、記憶部120にスプールされた画像を、PCIeモジュール11aを介して読み込み、画像形成部160により印刷出力するために伸長する。
【0029】
外部機器インターフェイス(IF)部11eは、外部機器30に接続するためのインターフェイス・モジュールである。外部機器30としては、例えば、画像形成部160が挙げられる。第2画像処理部11dで処理された画像は、外部機器IF部11eを介して画像形成部160へ送信され、画像形成部160により印刷出力される。
【0030】
FPGAデバイス10の割り込み制御部12は、モジュール群11に含まれる各モジュール(
図2示す例では、上記の11a~11e)を監視する。そして、割り込み制御部12は、モジュール群11によるデータ処理で不正な事象が発生すると、これを検知し(各モジュール11a~11eから割り込み制御部12へ延びる実線の矢印参照)、エラー割り込み処理を実行する。
【0031】
データ取得部13は、モジュール群11に含まれるモジュールの内部信号の波形データを取得する(各モジュール11a~11eからデータ取得部13へ延びる破線の矢印参照)。データ取得部13は、取得した波形データを一時的に保持するメモリ(図示せず)を有する。そして、データ取得部13は、メモリに保持した波形データをログとして出力する。出力された波形データのログは、例えば、記憶部120に格納される。なお、
図2では、各モジュール11a~11eに対応付けて複数のデータ取得部13が設けられているように示されているが、データ取得部13の構成は、図示の構成に限定されない。
図2に示すように、モジュールごとに個別にデータ取得部13を設けても良いし、一つのデータ取得部13が各モジュール11a~11eから波形データを取得する構成としても良い。以下、データ取得部13の数および個々のモジュール11a~11eとの対応を区別せずに説明する。
【0032】
<取得データの解析例>
FPGAデバイス10の論理回路は、FPGAデバイス10が構成データを読み込んで回路構成を書き換えることにより、再構成することができる。本実施形態では、FPGAデバイス10で発生したエラーに応じてFPGAデバイス10の論理回路を再構成し、エラー発生時に取得される波形データの絞り込みを行う。
【0033】
図3は、初期状態のFPGAデバイス10および取得データの例を示す図である。
図3(A)は、データ取得部13とモジュール11a~11eとの接続関係を示す図であり、
図3(B)は、取得された波形データを示す図である。
図3に示す例では、モジュール11a~11eのうち外部機器IF部11eにおいてエラーが発生したものとする。
【0034】
図3(A)に示す構成例では、データ取得部13は、モジュール群11を構成するモジュール11a~11eの各々から波形データを取得している。データ取得部13は、取得した波形データを一時的にメモリに保持した後、ログとして出力する。したがって、データ取得部13が一時的に保持し得る波形データの量には、メモリの記憶容量に基づく上限がある。
図3(A)の構成によれば、データ取得部13は、全てのモジュール11a~11eからの波形データをメモリに保持する。一例として、データ取得部13のメモリの記憶容量を5KBとすると、例えば、各モジュール11a~11eからの波形データが1KBずつ保持される。
【0035】
図3(B)には、
図3(A)に示したFPGAデバイス10の各モジュール11a~11eから得られた取得データのうち、外部機器IF部11eからの取得データが示されている。上記のように、
図3(A)のFPGAデバイス10においてデータ取得部13は、外部機器IF部11eから取得した1KB分の波形データを保持する。
図3(B)に示す例では、リセット信号(rst_n)、割り込みステータス信号(int_sts)、割り込みマスク・ステータス信号(int_mask_sts)、データ要求信号(Data_req_n)、データ検証信号(Data_valid_n)の5つの信号が取得されている。
【0036】
図3に示す構成例では、データ取得部13は、5KBのメモリに取得データを保持するため、モジュール群11に含まれる5つのモジュール11a~11eから得られる波形データを1KBずつ保持する構成とした。ここで、FPGAデバイス10で発生したエラーの被疑箇所が特定のモジュール11a~11eであるものとする。この場合、エラーの原因を解析するために、この特定のモジュール11a~11eから、より多くの波形データを得られるように、FPGAデバイス10を再構成することが考えられる。
【0037】
図4は、再構成されたFPGAデバイス10および取得データの例を示す図である。
図4(A)は、データ取得部13とモジュール11a~11eとの接続関係を示す図であり、
図4(B)は、取得された波形データを示す図である。
図4に示す例では、モジュール11a~11eのうち外部機器IF部11eにおいて、
図3の場合と同様のエラーが発生したものとする。
【0038】
図4(A)に示す構成例では、データ取得部13は、モジュール群11を構成するモジュール11a~11eのうち外部機器IF部11eのみから波形データを取得している。したがって、データ取得部13のメモリの記憶容量が5KBである場合、波形データの取得対象(エラーの解析対象)のモジュール11a~11eを絞り込んだことにより、5KB分の外部機器IF部11eからの波形データが保持される。
【0039】
図4(B)には、
図4(A)に示したFPGAデバイス10の外部機器IF部11eからの取得データが示されている。上記のように、
図4(A)のFPGAデバイス10においてデータ取得部13は、外部機器IF部11eから取得した5KB分の波形データを保持する。
図4(B)に示す例では、
図3(B)に示したリセット信号(rst_n)、割り込みステータス信号(int_sts)、割り込みマスク・ステータス信号(int_mask_sts)、データ要求信号(Data_req_n)、データ検証信号(Data_valid_n)の5つの信号に加え、データ(Data)、カウント開始信号(Req_cnt_en)、カウント信号(Req_cnt)、カウント閾値(Req_cnt_th)、リセット信号(Sw_rst_n)のさらに5つの信号が取得されている。
【0040】
図3(B)に示す取得データを参照すると、リセット信号(rst_n)により外部機器IF部11eがリセットされ、外部機器IF部11eからデータ要求が行われたが(Data_req_n参照)、外部機器IF部11eはデータ検証信号(Data_valid_n)を受信せず、エラー割り込みが発生(int_stsおよびint_mask_sts参照)したことがわかる。しかし、
図3(B)に示す取得データからは、エラーが発生した原因を特定することができない。
【0041】
一方、
図4(B)に示す取得データを参照すると、外部機器IF部11eにおいてデータ要求が行われると共に(Data_req_n参照)、カウンタによるクロックの計数が開始される(Req_cnt_enおよびReq_cnt参照)。
図4(B)に示す例では、クロックの計数は、クロック数がカウント閾値(Req_cnt_th)により定められる規定時間(0x30)になるまで行われる(Req_cnt参照)。しかし、クロック数が規定時間に達する前に、リセット信号(Sw_rst_n)が発生したために、カウント時間を定めるカウント閾値(Req_cnt_th)の値が0x00に戻っている。このため、割り込み制御部12は、規定時間が0x00だと認識し、規定時間内にデータが受信されなかったと判断してエラー割り込み処理を行っている(int_stsおよびint_mask_sts参照)。したがって、エラーの発生原因が、不正なリセット信号(Sw_rst_n)であることがわかる。
【0042】
以上のように、
図4(B)に示す例では、
図3(B)に示す例よりも外部機器IF部11eからの取得データが増えたことにより、エラーの発生原因を特定することができた。
図3および
図4を参照して説明した例では、外部機器IF部11eのエラーについて解析したが、各モジュール11a~11eで発生するエラーに対しても同様に、取得データの量を増やすことによりエラーの解析を詳細に行うことが可能となる。また、上記の例では、取得データの信号数を増やすことでエラーの原因を特定する解析が可能となったが、エラーの種類によっては、取得データの時間幅(取得時間)を増やすことでエラーの原因の特定が可能となる場合もある。この場合も、被疑箇所に対するデータ取得部13のメモリの記憶容量の割り当てを増やすことにより、エラーの原因を特定できるようになる可能性がある。
【0043】
<FPGAデバイス10の再構成と取得対象位置の特定>
上記のように、FPGAデバイス10の論理回路を再構成し、波形データの取得位置(以下、「取得対象位置」と呼ぶ)を絞り込むことにより、絞り込まれた特定の取得対象位置の取得データを増やすことができる。したがって、FPGAデバイス10においてあるジョブを実行した際にエラーが発生した場合、発生したエラーに応じてFPGAデバイス10を再構成し、次に同じジョブを実行して同じエラーが発生した際に、被疑箇所の取得データを増やすことができる。以下、エラーに応じたFPGAデバイス10の再構成における取得対象位置の特定方法について説明する。
【0044】
まず、エラーの分類について説明する。エラーの分類は、例えば、画像形成装置100の制御部110が、FPGAデバイス10においてエラー割り込みが発生したことを検知し、このエラーの際に得られた取得データのログに基づいて行う。本実施形態では、エラーに応じて適切に取得対象位置を絞り込むため、エラーを、設定値エラーと、その他の画像処理関連のエラーと、基板に関連するエラーとに分類する。
【0045】
設定値エラーは、FPGAデバイス10において行われる画像処理で用いられる設定値の誤りに起因するエラーである。設定値エラーの原因となる誤りとしては、例えば、処理対象の画像のサイズに関する情報と実際の画像サイズとが異なる場合、処理対象の画像のサイズと画像処理で使用されるLUT(Look-Up Table)のサイズとが異なる場合等が挙げられる。
【0046】
その他の画像処理関連のエラーとしては、例えば、個々のモジュール11a~11eにおけるデータのオーバーフローやアンダーフロー、パケット数の不一致、チェックサムによる誤りの検出等が挙げられる。
【0047】
基板に関連するエラーは、FPGAデバイス10の基板(言わば、ハードウェア)の不良に基づくエラーである。この基板に関連するエラーの場合、FPGAデバイス10の再構成によって対応することはできないため、基板を交換することが必要となる。
【0048】
制御部110は、上記のエラーの分類に応じて、次のように取得対象位置を特定する。第1に、エラーがFPGAデバイス10のモジュール群11の一か所で発生した場合、エラーが発生したモジュール11a~11eを取得対象位置とする。
【0049】
第2に、エラーが複数のモジュール11a~11eで発生した場合、設定値エラーとその他の画像処理関連のエラーとが混在している場合は、設定値エラーが発生したモジュール11a~11eを取得対象位置とする。これに対し、その他の画像処理関連のエラーのみが複数のモジュール11a~11eで発生している場合、エラーの発生したモジュール11a~11eが同じ処理経路上に配置されているモジュール11a~11eであるならば、その処理経路上の最も前段に位置するモジュール11a~11eを取得対象位置とする。
【0050】
また、エラーの発生したモジュール11a~11eが異なる処理経路上に配置されているモジュール11a~11eである場合は、関連性のない複数のエラーが個別に発生したものとして、上記の第1の方法による取得対象位置の決定を、エラーの発生した各モジュール11a~11eに対し、順次適用する。設定値エラーが複数のモジュール11a~11eで発生した場合も同様に、関連性のない複数のエラーが個別に発生したものとして、上記の第1の方法による取得対象位置の決定を、エラーの発生した各モジュール11a~11eに対し、順次適用する。
【0051】
FPGAデバイス10の再構成は、FPGAデバイス10が、構成データ(configuration data)を読み込んで、デバイス内部の論理回路を書き換えることにより行われる。したがって、上記のように取得対象位置を選択してFPGAデバイス10を再構成するためには、モジュール群11の様々な箇所を取得対象位置に設定した構成データを予め用意しておき、発生したエラーの種別に応じて、再構築に用いる構成データが選択される。エラーの種別の判断および構成データの選択は、例えば、制御部110が行う。言い換えれば、制御部110は、エラーの種別に応じて解析対象(波形データの取得対象)としてのモジュール11a~11eまたは取得する信号を絞り込む。したがって、制御部110は、絞り込み手段の一例である。種々の取得対象位置が設定された構成データは、例えば、記憶部120に予め格納されている。したがって、構成データを格納した記憶部120、構成データを読み込んで再構成するFPGAデバイス10、FPGAデバイス10の再構成を制御する制御部110は、変更手段の一例である。
【0052】
<エラーに応じたFPGAデバイス10の再構成例>
上記のFPGAデバイス10に対する取得対象位置の特定方法に基づき、発生したエラーに応じて行われるFPGAデバイス10の再構成について、いくつかの例を示す。
【0053】
図5は、エラーに応じたFPGAデバイス10の再構成の一例を示す図である。
図5に示す例では、FPGAデバイス10のモジュール群11に含まれるモジュール11a~11eのうち、外部機器IF部11eにおいて、画像データのアンダーフローによるエラーが発生したものとする(図中、太枠で示す)。また、他のモジュール11a~11dではエラーが発生していないものとする。
【0054】
この場合、被疑箇所は外部機器IF部11eとなるので、データ取得部13が外部機器IF部11eのみから波形データを取得するように、FPGAデバイス10が再構成される。これにより、
図5に示すように構成されたFPGAデバイス10を用い、画像形成装置100がジョブを実行し、外部機器IF部11eにおいて同じエラーが発生すると、初期状態のFPGAデバイス10(
図3(A)参照)よりも多くの波形データが外部機器IF部11eから取得される。
【0055】
図6は、エラーに応じたFPGAデバイス10の再構成の他の一例を示す図である。
図6に示す例では、FPGAデバイス10のモジュール群11に含まれるモジュール11a~11eのうち、PCIeモジュール11a、第2画像処理部11d、外部機器IF部11eの3カ所でエラーが発生したものとする(図中、太枠で示す)。具体的には、PCIeモジュール11aにおいてDMAアンダーランによるエラー、第2画像処理部11dにおいてアンダーランによるエラー、外部機器IF部11eにおいて画像データのアンダーフローによるエラーがそれぞれ発生したものとする。また、他のモジュール11b、11cではエラーが発生していないものとする。
【0056】
この場合、エラーが発生した3つのモジュール11a、11d、11eは、同一の処理経路上でPCIeモジュール11a→第2画像処理部11d→外部機器IF部11eの順に並んでいるので、最も前段に位置するPCIeモジュール11aが被疑箇所となる。そして、被疑箇所であるPCIeモジュール11aのみから波形データを取得するように、FPGAデバイス10が再構成される。これにより、
図6に示すように構成されたFPGAデバイス10を用い、画像形成装置100がジョブを実行し、PCIeモジュール11aにおいて同じエラーが発生すると、初期状態のFPGAデバイス10よりも多くの波形データがPCIeモジュール11aから取得される。
【0057】
図7は、エラーに応じたFPGAデバイス10の再構成の他の一例を示す図である。
図7に示す例では、FPGAデバイス10のモジュール群11に含まれるモジュール11a~11eのうち、第1画像処理部11b、外部機器IF部11eの2カ所でエラーが発生したものとする(図中、太枠で示す)。具体的には、第1画像処理部11bにおいてLUTサイズの設定値エラー、外部機器IF部11eにおいて画像データのアンダーフローによるエラーがそれぞれ発生したものとする。また、他のモジュール11a、11c、11dではエラーが発生していないものとする。
【0058】
この場合、エラーが発生した2つのモジュール11b、11eは、異なる処理経路上に配置されたモジュールである。しかし、第1画像処理部11bで発生したエラーが設定値エラーであるので、こちらが優先され、第1画像処理部11bが被疑箇所となる。そして、被疑箇所である第1画像処理部11bのみから波形データを取得するように、FPGAデバイス10が再構成される。これにより、
図7に示すように構成されたFPGAデバイス10を用い、画像形成装置100がジョブを実行し、第1画像処理部11bにおいて同じエラーが発生すると、初期状態のFPGAデバイス10よりも多くの波形データが第1画像処理部11bから取得される。なお、
図7に示す例では、第1画像処理部11bと外部機器IF部11eとが異なる処理経路に存在するが、これらのモジュール11b,11eが同じ処理経路上に存在する場合であっても、第1画像処理部11bで発生したエラーが設定値エラーであるため、第1画像処理部11bが被疑箇所となる。
【0059】
<画像形成装置100の動作>
図8は、画像形成装置100におけるエラーの発生に関連する動作を示すフローチャートである。まず、画像形成装置100は、ジョブの実行指示を受け付け、指示されたジョブの動作を開始する(S801)。ジョブの動作においてエラーが発生しなければ(S802でNO)、画像形成装置100は、ジョブを正常終了する(S803)。
【0060】
ジョブの動作においてエラーが発生した場合(S802でYES)、画像形成装置100の制御部110は、発生したエラーを分類する。発生したエラーが基板関連のエラーである場合(S804でYES)、制御部110は、ジョブをエラー終了させる(S805)。このエラー終了において制御部110は、例えば、基板の交換を促すメッセージを表示部140に表示させても良い。
【0061】
発生したエラーが設定値関連のエラーである場合(S804でNO、S806でYES)、制御部110は、エラーが発生したモジュール11a~11eを被疑箇所としてFPGAデバイス10を再構成する(S807)。
【0062】
発生したエラーが基板関連のエラーでも設定値関連のエラーでもない場合(S804でNO、S806でNO)、エラーが発生したモジュールが一つであれば(S808でNO)、制御部110は、エラーが発生したモジュール11a~11eを被疑箇所としてFPGAデバイス10を再構成する(S807)。
【0063】
エラーが発生したモジュールが同じ処理経路上で複数ある場合(S808でYES)、制御部110は、エラーが発生したモジュール11a~11eのうちで最も前段のモジュールを被疑箇所としてFPGAデバイス10を再構成する(S809)。
【0064】
制御部110は、上記のようにFPGAデバイス10を再構成した後、終了条件を満足したか否かを判断する。ここでは、エラーの種別および発生位置に対応する全ての構成データに関して、その構成データを用いてFPGAデバイス10の再構成が行われた場合に終了条件を満足するものとする。エラーの種類によっては、発生したエラーを解析するために用い得るFPGAデバイス10の構成(モジュール11a~11eとデータ取得部13との接続関係)が複数存在する場合がある。例えば、
図4(B)を参照して説明したように、取得データの信号数を増やすことでエラーの原因を特定する解析が可能となる場合や、取得データの時間幅(取得時間)を増やすことでエラーの原因の特定が可能となる場合があり、エラーの種類によっては、何れの方針で取得データを増やすのが適当かわからない場合がある。このような場合、用い得る全ての構成でそれぞれ波形データのログを取得し、解析することが必要となる。したがって、発生したエラーを解析するために用い得る構成データであって、FPGAデバイス10の再構成に使用されていない構成データがある場合は、制御部110は、終了条件を満足しないと判断して、未使用の構成データを適用したFPGAデバイス10の再構成を行う。
【0065】
上記のように、終了条件を満足しない場合(S810でNO)、制御部110は、FPGAデバイス10が再構成された画像形成装置100を再起動し(S811)、S801に戻る。なお、ここでは、FPGAデバイス10を再構成し、画像形成装置100を再起動した後にジョブの実行指示待ちの状態になるものとする。再起動後の画像形成装置100において、次に実行されるジョブは、S802でエラーが発生したジョブと同じのジョブには限定されない。ただし、同じジョブが実行され、同じエラーが発生すれば、FPGAデバイス10が再構成されたことにより、被疑箇所に関して、初期状態のFPGAデバイス10(
図3(A)参照)よりも多くの波形データが得られる。
【0066】
一方、終了条件を満足した場合(S810でYES)、制御部110は、画像形成装置100を再起動せず、ジョブをエラー終了させる(S805)。このエラー処理において制御部110は、発生したエラーに関する情報を示すメッセージを表示部140に表示させても良い。
【0067】
以上、本発明の実施形態について説明したが、本発明の技術的範囲は上記実施形態には限定されない。例えば、上記の実施形態では、異なる処理経路上の複数のモジュールでエラーが発生した場合、関連性のない複数のエラーが個別に発生したものとして、個々のエラーに対して個別に対応しながら、順次、FPGAデバイスを再構成することとした。これに対し、例えば、まず、エラーが発生した各モジュールを取得対象位置としてFPGAデバイスを再構成して波形データを取得し、必要に応じて、さらに個々のモジュールを取得対象位置としてFPGAデバイス10を再構成して波形データを取得しても良い。
【0068】
また、上記の実施形態では、FPGAデバイス10のデータ処理を行うモジュール群を構成するモジュールごとに取得対象位置を設定したが、取得対象位置は、個々のモジュールに対応しなくても良い。例えば、一つのモジュールに含まれる演算素子の入出力の一部を取得対象位置に設定しても良いし、複数のモジュールにまたがって取得対象位置を設定しても良い。この場合、波形データの取得対象をモジュール単位で絞り込むのではなく、エラーの解析に必要な信号を解析対象(取得対象)として絞り込む。
【0069】
また、上記の実施形態では、情報処理装置として画像形成装置を用いた例について説明したが、本実施形態の適用対象は、上記の例には限定されない。本実施形態は、例えばサーバ、通信機器、自動車、ゲーム機など、データ処理を行うプロセッサの少なくとも一部にFPGAデバイスを用いた種々の情報処理装置に対して適用し得る。その他、本発明の技術思想の範囲から逸脱しない様々な変更や構成の代替は、本発明に含まれる。
【符号の説明】
【0070】
10…FPGAデバイス、11…モジュール群、11a…PCIeモジュール、11b…第1画像処理部、11c…メモリIF部、11d…第2画像処理部、11e…外部機器IF部、12…割り込み制御部、13…データ取得部、100…画像形成装置、110…制御部、111…CPU、112…RAM、113…ROM、120…記憶部、130…操作部、140…表示部、150…画像読み取り部、160…画像形成部、170…通信部、180…画像処理部