(57)【要約】      （修正有）【課題】対象装置で行われた処理を情報処理装置上で再現する際に、精度よく再現できるシミュレーションシステムを提供する。【解決手段】シミュレーションシステムは、対象装置（ＭＦＰ）９と、対象装置の処理を再現する情報処理装置（ＰＣ）５とを備える。保存部１０１は、ＭＦＰにおいて処理が行われたときのハードウェア負担率を第１のハードウェア負担率として時系列で保存する。ＰＣが再現部１０２で処理を再現中に、ＰＣにおいて仮想的に構築されたハードウェア資源のハードウェア負担率を第２のハードウェア負担率としたとき、処理の再現中に、第１のハードウェア負担率と第２のハードウェア負担率とを時系列で比較し、第２のハードウェア負担率が第１のハードウェア負担率よりも低い場合に、ＰＣにおいて実行されるダミータスクにより、第２のハードウェア負担率を上げて第２のハードウェア負担率を第１のハードウェア負担率に近づける。【選択図】図５
2020123033.tif 000002
【特許請求の範囲】
【請求項１】
対象装置と、該対象装置のハードウェア資源を仮想的に構築して前記対象装置で行われた処理を再現する情報処理装置とを備えるシミュレーションシステムであって、
保存部及び再現部を備え、
前記保存部は、前記対象装置において処理が行われたときのハードウェア負担率を時系列で保存し、
前記再現部は、
前記対象装置で行われた処理を前記情報処理装置に再現させるとともに、
前記保存部により保存された前記ハードウェア負担率を第１のハードウェア負担率とし、前記情報処理装置が前記処理を再現中に、前記情報処理装置において仮想的に構築された前記ハードウェア資源のハードウェア負担率を第２のハードウェア負担率としたとき、
前記処理の再現中に、前記第１のハードウェア負担率と前記第２のハードウェア負担率とを時系列で比較し、前記第２のハードウェア負担率が前記第１のハードウェア負担率よりも低い場合に、前記情報処理装置において実行されるダミータスクにより、前記第２のハードウェア負担率を上げて前記第２のハードウェア負担率を前記第１のハードウェア負担率に近づける
ことを特徴とするシミュレーションシステム。
【請求項２】
前記再現部は、前記第１のハードウェア負担率と前記第２のハードウェア負担率とを比較した際に、前記第１のハードウェア負担率と前記第２のハードウェア負担率との差を求め、該差に応じて、前記ダミータスクにより上げられる前記第２のハードウェア負担率を調整することを特徴とする請求項１に記載のシミュレーションシステム。
【請求項３】
前記ダミータスクは、前記情報処理装置が前記処理を再現している間、稼働し続けることを特徴とする請求項１又は２に記載のシミュレーションシステム。
【請求項４】
前記対象装置は、複数のファームウェアを有し、前記ファームウェアどうしが情報をやり取りして前記処理を行い、
前記情報処理装置は、前記対象装置が有する複数のファームウェアを構築して前記処理を再現することを特徴とする請求項１〜３のいずれかに記載のシミュレーションシステム。
【請求項５】
前記第１のハードウェア負担率及び前記第２のハードウェア負担率は、ＣＰＵ（Central Processing Unit）使用率であることを特徴とする請求項１〜４のいずれかに記載のシミュレーションシステム。
【請求項６】
前記第１のハードウェア負担率及び前記第２のハードウェア負担率は、ＨＤ（Hard Disk）のアクセス率であることを特徴とする請求項１〜４のいずれかに記載のシミュレーションシステム。
【請求項７】
前記第１のハードウェア負担率及び前記第２のハードウェア負担率は、ＣＰＵ（Central Processing Unit）使用率及びＨＤ（Hard Disk）のアクセス率であることを特徴とする請求項１〜４のいずれかに記載のシミュレーションシステム。
【請求項８】
前記対象装置は、画像形成装置であることを特徴とする請求項１〜７のいずれかに記載のシミュレーションシステム。
【請求項９】
対象装置のハードウェア資源を仮想的に構築して前記対象装置で行われた処理を再現する情報処理装置であって、
前記対象装置で行われた処理を再現する再現部を備え、
前記再現部は、
前記対象装置において処理が行われたときのハードウェア負担率を時系列で保存された情報を用い、
前記保存された前記ハードウェア負担率を第１のハードウェア負担率とし、当該情報処理装置が前記処理を再現中に、当該情報処理装置において仮想的に構築された前記ハードウェア資源のハードウェア負担率を第２のハードウェア負担率としたとき、
前記処理の再現中に、前記第１のハードウェア負担率と前記第２のハードウェア負担率とを時系列で比較し、前記第２のハードウェア負担率が前記第１のハードウェア負担率よりも低い場合に、前記情報処理装置において実行されるダミータスクにより、前記第２のハードウェア負担率を上げて前記第２のハードウェア負担率を前記第１のハードウェア負担率に近づける
ことを特徴とする情報処理装置。
【請求項１０】
対象装置のハードウェア資源を仮想的に構築して前記対象装置で行われた処理を再現する情報処理装置用のプログラムであって、
コンピュータを、前記対象装置で行われた処理を再現する再現部として機能させるとともに、
前記再現部は、
前記対象装置において処理が行われたときのハードウェア負担率を時系列で保存された情報を用い、
前記保存された前記ハードウェア負担率を第１のハードウェア負担率とし、前記情報処理装置が前記処理を再現中に、前記情報処理装置において仮想的に構築された前記ハードウェア資源のハードウェア負担率を第２のハードウェア負担率としたとき、
前記処理の再現中に、前記第１のハードウェア負担率と前記第２のハードウェア負担率とを時系列で比較し、前記第２のハードウェア負担率が前記第１のハードウェア負担率よりも低い場合に、前記情報処理装置において実行されるダミータスクにより、前記第２のハードウェア負担率を上げて前記第２のハードウェア負担率を前記第１のハードウェア負担率に近づける
ことを特徴とするプログラム。
【請求項１１】
対象装置のハードウェア資源を仮想的に構築して前記対象装置で行われた処理を再現する情報処理装置を用いて解析するシミュレーション方法であって、
保存工程及び再現工程を含み、
前記保存工程は、前記対象装置において処理が行われたときのハードウェア負担率を時系列で保存し、
前記再現工程は、
前記対象装置で行われた処理を前記情報処理装置に再現させるとともに、
前記保存工程により保存された前記ハードウェア負担率を第１のハードウェア負担率とし、前記情報処理装置が前記処理を再現中に、前記情報処理装置において仮想的に構築された前記ハードウェア資源のハードウェア負担率を第２のハードウェア負担率としたとき、
前記処理の再現中に、前記第１のハードウェア負担率と前記第２のハードウェア負担率とを時系列で比較し、前記第２のハードウェア負担率が前記第１のハードウェア負担率よりも低い場合に、前記情報処理装置において実行されるダミータスクにより、前記第２のハードウェア負担率を上げて前記第２のハードウェア負担率を前記第１のハードウェア負担率に近づける
ことを特徴とするシミュレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シミュレーションシステム、情報処理装置、プログラム及びシミュレーション方法に関する。
【背景技術】
【０００２】
近年、画像形成装置等では制御ソフトウェアの処理が複雑化してきており、発生した障害を解析する際に、稼働ログのみを解析するやり方では障害の原因を特定することが困難になることが多い。
【０００３】
このため、従来より、画像形成装置等の実稼働中に発生した障害を解析する方法として、発生した障害をシミュレーション装置で再現して解析することが行われている。シミュレーション装置で障害を再現する手法は、障害が発生したときの処理をトレースすることができ、障害の原因を発見しやすいなどの利点がある。
【０００４】
しかし、実際に稼働する装置（対象装置）上の処理をシミュレーション装置（情報処理装置）で再現する場合には、再現の精度が問題となるため、複雑化した制御ソフトウェアの処理に対しても、実稼働中の処理を精度よく再現できる技術が求められている。
【０００５】
例えば特許文献１では、画像形成装置における制御系から被制御系へ出力される制御値と、被制御系から制御系へ入力される入力値を時系列で保存し、被制御系の制御結果をシミュレートするシミュレーション装置のアルゴリズムに、制御値と入力値の相関関係を組み込ませることが開示されている。特許文献１は、高い同定精度で画像形成装置の動作をシミュレートすることを目的としている。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１では、画像形成装置の性能情報が考慮されていないため、例えばＣＰＵ（Central Processing Unit）負荷やＨＤ（Hard Disk）アクセスの負荷が集中している場合にのみ起こる障害を精度よく再現できないという問題があった。また、ＣＰＵ負荷やＨＤアクセスの負荷が対象装置とシミュレーション装置とで異なる場合に、再現されない障害が生じることがあり、発生した障害を精度よく再現できない場合があった。
【０００７】
そこで、本発明は、対象装置で行われた処理を情報処理装置上で再現する際に、精度よく再現できるシミュレーションシステムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明は、対象装置と、該対象装置のハードウェア資源を仮想的に構築して前記対象装置で行われた処理を再現する情報処理装置とを備えるシミュレーションシステムであって、保存部及び再現部を備え、前記保存部は、前記対象装置において処理が行われたときのハードウェア負担率を時系列で保存し、前記再現部は、前記対象装置で行われた処理を前記情報処理装置に再現させるとともに、前記保存部により保存された前記ハードウェア負担率を第１のハードウェア負担率とし、前記情報処理装置が前記処理を再現中に、前記情報処理装置において仮想的に構築された前記ハードウェア資源のハードウェア負担率を第２のハードウェア負担率としたとき、前記処理の再現中に、前記第１のハードウェア負担率と前記第２のハードウェア負担率とを時系列で比較し、前記第２のハードウェア負担率が前記第１のハードウェア負担率よりも低い場合に、前記情報処理装置において実行されるダミータスクにより、前記第２のハードウェア負担率を上げて前記第２のハードウェア負担率を前記第１のハードウェア負担率に近づける
ことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、対象装置で行われた処理を情報処理装置上で再現する際に、精度よく再現することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明に係るシミュレーションシステムの構成の一例を示す図である。
【図２】本発明に係る情報処理装置の機能ブロックの一例を示す図である。
【図３】画像形成装置の機能ブロックの一例を示す図である。
【図４】ハードウェア負担率を時系列で保存する場合の一例を説明するための図である。
【図５】本発明に係るシミュレーションシステムの機能構成の一例を示す図である。
【図６】本発明に係る解析方法の一例を示すフローチャートである。
【図７】対象装置と情報処理装置のＣＰＵ使用率を時系列で表した場合の一例を示す図である。
【図８】対象装置と情報処理装置における処理の順序の一例を説明するための図である。
【図９】情報処理装置におけるダミータスクの構成の一例を説明するための図である。
【発明を実施するための形態】
【００１１】
以下、本発明に係るシミュレーションシステム、情報処理装置、プログラム及びシミュレーション方法について図面を参照しながら説明する。なお、本発明は以下に示す実施形態に限定されるものではなく、他の実施形態、追加、修正、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【００１２】
本発明は、対象装置と、該対象装置のハードウェア資源を仮想的に構築して前記対象装置で行われた処理を再現する情報処理装置とを備えるシミュレーションシステムであって、
保存部及び再現部を備え、
前記保存部は、前記対象装置において処理が行われたときのハードウェア負担率を時系列で保存し、
前記再現部は、
前記対象装置で行われた処理を前記情報処理装置に再現させるとともに、
前記保存部により保存された前記ハードウェア負担率を第１のハードウェア負担率とし、前記情報処理装置が前記処理を再現中に、前記情報処理装置において仮想的に構築された前記ハードウェア資源のハードウェア負担率を第２のハードウェア負担率としたとき、
前記処理の再現中に、前記第１のハードウェア負担率と前記第２のハードウェア負担率とを時系列で比較し、前記第２のハードウェア負担率が前記第１のハードウェア負担率よりも低い場合に、前記情報処理装置において実行されるダミータスクにより、前記第２のハードウェア負担率を上げて前記第２のハードウェア負担率を前記第１のハードウェア負担率に近づける
ことを特徴とする。
【００１３】
（第１の実施形態）
図１は、本発明の一実施形態に係るシミュレーションシステムの構成を示す図である。図１に示すように、本実施形態のシミュレーションシステムは、ＭＦＰ９、ＰＣ５を備えており、各装置は通信ネットワーク１００に接続している。
【００１４】
本実施形態では、対象装置として画像形成装置の一例であるＭＦＰ（Ｍultifunction Peripheral／Product／Printer）を例に挙げて説明する。対象装置は、市場で用いられているか否かは問われるものではなく、販売前の装置も含まれる。また、対象装置を実機とも称することがある。
【００１５】
本実施形態では、情報処理装置としてＰＣ（パーソナルコンピュータ）を例に挙げて説明する。情報処理装置は対象装置で行われた処理を再現する装置であり、シミュレーション装置などとも称する。
【００１６】
本実施形態においては、ＭＦＰ９とＰＣ５が通信ネットワーク１００を介して通信可能であることが好ましいが、これに限られるものではない。ＭＦＰ９とＰＣ５とが直接接続されていてもよいし、互いに接続されていなくてもよい。対象装置において処理が行われたときのハードウェア負担率を時系列で保存した情報を、ＰＣ５が用いることができればよい。
【００１７】
図２は、ＰＣ５のハードウェア構成図である。なお、ＰＣ５はサーバとして用いられてもよい。
図２に示されているように、ＰＣ５は、コンピュータによって構築されており、ＣＰＵ５０１、ＲＯＭ５０２、ＲＡＭ５０３、ＨＤ５０４、ＨＤＤ（Hard Disk Drive）コントローラ５０５、ディスプレイ５０６、外部機器接続Ｉ／Ｆ（Interface）５０８、ネットワークＩ／Ｆ５０９、データバス５１０、キーボード５１１、ポインティングデバイス５１２、ＤＶＤ−ＲＷ（Digital Versatile Disk Rewritable）ドライブ５１４、メディアＩ／Ｆ５１６を備えている。
【００１８】
これらのうち、ＣＰＵ５０１は、ＰＣ５全体の動作を制御する。ＲＯＭ５０２は、ＩＰＬ等のＣＰＵ５０１の駆動に用いられるプログラムを記憶する。ＲＡＭ５０３は、ＣＰＵ５０１のワークエリアとして使用される。ＨＤ５０４は、プログラム等の各種データを記憶する。ＨＤＤコントローラ５０５は、ＣＰＵ５０１の制御にしたがってＨＤ５０４に対する各種データの読み出し又は書き込みを制御する。ディスプレイ５０６は、カーソル、メニュー、ウィンドウ、文字、又は画像などの各種情報を表示する。外部機器接続Ｉ／Ｆ５０８は、各種の外部機器を接続するためのインターフェースである。この場合の外部機器は、例えば、ＵＳＢ（Universal Serial Bus）メモリやプリンタ等である。ネットワークＩ／Ｆ５０９は、通信ネットワーク１００を利用してデータ通信をするためのインターフェースである。バスライン５１０は、図２に示されているＣＰＵ５０１等の各構成要素を電気的に接続するためのアドレスバスやデータバス等である。
【００１９】
また、キーボード５１１は、文字、数値、各種指示などの入力のための複数のキーを備えた入力手段の一種である。ポインティングデバイス５１２は、各種指示の選択や実行、処理対象の選択、カーソルの移動などを行う入力手段の一種である。ＤＶＤ−ＲＷドライブ５１４は、着脱可能な記録媒体の一例としてのＤＶＤ−ＲＷ５１３に対する各種データの読み出し又は書き込みを制御する。なお、ＤＶＤ−ＲＷに限らず、ＤＶＤ−Ｒ等であってもよい。メディアＩ／Ｆ５１６は、フラッシュメモリ等の記録メディア５１５に対するデータの読み出し又は書き込み（記憶）を制御する。
【００２０】
図３は、ＭＦＰ９のハードウェア構成図である。図３に示されているように、ＭＦＰ９は、コントローラ９１０、近距離通信回路９２０、エンジン制御部９３０、操作パネル９４０、ネットワークＩ／Ｆ９５０を備えている。
【００２１】
これらのうち、コントローラ９１０は、コンピュータの主要部であるＣＰＵ９０１、システムメモリ（ＭＥＭ−Ｐ）９０２、ノースブリッジ（ＮＢ）９０３、サウスブリッジ（ＳＢ）９０４、ＡＳＩＣ（Application Specific Integrated Circuit）９０６、記憶部であるローカルメモリ（ＭＥＭ−Ｃ）９０７、ＨＤＤコントローラ９０８、及び、記憶部であるＨＤ９０９を有し、ＮＢ９０３とＡＳＩＣ９０６との間をＡＧＰ（Accelerated Graphics Port）バス９２１で接続した構成となっている。
【００２２】
これらのうち、ＣＰＵ９０１は、ＭＦＰ９の全体制御を行う制御部である。ＮＢ９０３は、ＣＰＵ９０１と、ＭＥＭ−Ｐ９０２、ＳＢ９０４、及びＡＧＰバス９２１とを接続するためのブリッジであり、ＭＥＭ−Ｐ９０２に対する読み書きなどを制御するメモリコントローラと、ＰＣＩ（Peripheral Component Interconnect）マスタ及びＡＧＰターゲットとを有する。
【００２３】
ＭＥＭ−Ｐ９０２は、コントローラ９１０の各機能を実現させるプログラムやデータの格納用メモリであるＲＯＭ９０２ａ、プログラムやデータの展開、及びメモリ印刷時の描画用メモリなどとして用いるＲＡＭ９０２ｂとからなる。なお、ＲＡＭ９０２ｂに記憶されているプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
【００２４】
ＳＢ９０４は、ＮＢ９０３とＰＣＩデバイス、周辺デバイスとを接続するためのブリッジである。ＡＳＩＣ９０６は、画像処理用のハードウェア要素を有する画像処理用途向けのＩＣ（Integrated Circuit）であり、ＡＧＰバス９２１、ＰＣＩバス９２２、ＨＤＤ９０８及びＭＥＭ−Ｃ９０７をそれぞれ接続するブリッジの役割を有する。このＡＳＩＣ９０６は、ＰＣＩターゲット及びＡＧＰマスタ、ＡＳＩＣ９０６の中核をなすアービタ（ＡＲＢ）、ＭＥＭ−Ｃ９０７を制御するメモリコントローラ、ハードウェアロジックなどにより画像データの回転などを行う複数のＤＭＡＣ（Direct Memory Access Controller）、並びに、スキャナ部９３１及びプリンタ部９３２との間でＰＣＩバス９２２を介したデータ転送を行うＰＣＩユニットとからなる。
【００２５】
なお、ＡＳＩＣ９０６には、ＵＳＢ（Universal Serial Bus）のインターフェースや、ＩＥＥＥ１３９４（Institute of Electrical and Electronics Engineers 1394）のインターフェースを接続するようにしてもよい。
【００２６】
ＭＥＭ−Ｃ９０７は、コピー用画像バッファ及び符号バッファとして用いるローカルメモリである。ＨＤ９０９は、画像データの蓄積、印刷時に用いるフォントデータの蓄積、フォームの蓄積を行うためのストレージである。ＨＤ９０９は、ＣＰＵ９０１の制御にしたがってＨＤ９０９に対するデータの読出又は書込を制御する。ＡＧＰバス９２１は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレータカード用のバスインタフェースであり、ＭＥＭ−Ｐ９０２に高スループットで直接アクセスすることにより、グラフィックスアクセラレータカードを高速にすることができる。
【００２７】
また、近距離通信回路９２０には、近距離通信回路９２０ａが備わっている。近距離通信回路９２０は、ＮＦＣ、Ｂｌｕｅｔｏｏｔｈ（登録商標）等の通信回路である。
【００２８】
更に、エンジン制御部９３０は、スキャナ部９３１及びプリンタ部９３２によって構成されている。また、操作パネル９４０は、現在の設定値や選択画面等を表示させ、操作者からの入力を受け付けるタッチパネル等のパネル表示部９４０ａ、並びに、濃度の設定条件などの画像形成に関する条件の設定値を受け付けるテンキー及びコピー開始指示を受け付けるスタートキー等からなる操作パネル９４０ｂを備えている。コントローラ９１０は、ＭＦＰ９全体の制御を行い、例えば、描画、通信、操作パネル９４０からの入力等を制御する。スキャナ部９３１又はプリンタ部９３２には、誤差拡散やガンマ変換などの画像処理部分が含まれている。
【００２９】
なお、ＭＦＰ９は、操作パネル９４０のアプリケーション切り替えキーにより、ドキュメントボックス機能、コピー機能、プリンタ機能、およびファクシミリ機能を順次に切り替えて選択することが可能となる。ドキュメントボックス機能の選択時にはドキュメントボックスモードとなり、コピー機能の選択時にはコピーモードとなり、プリンタ機能の選択時にはプリンタモードとなり、ファクシミリモードの選択時にはファクシミリモードとなる。
【００３０】
また、ネットワークＩ／Ｆ９５０は、通信ネットワーク１００を利用してデータ通信をするためのインターフェースである。近距離通信回路９２０及びネットワークＩ／Ｆ９５０は、ＰＣＩバス９２２を介して、ＡＳＩＣ９０６に電気的に接続されている。
【００３１】
対象装置（実機）として、画像形成装置を例に挙げて説明したが、通信機能を備えた装置であれば、画像形成装置に限られない。対象装置としては、例えば、ＰＪ（Projector：プロジェクタ）、ＩＷＢ（Interactive White Board：相互通信が可能な電子式の黒板機能を有する白板）、デジタルサイネージ等の出力装置、ＨＵＤ（Head Up Display）装置、産業機械、撮像装置、集音装置、医療機器、ネットワーク家電、自動車（Connected Car）、ノートＰＣ（Personal Computer）、携帯電話、スマートフォン、タブレット端末、ゲーム機、ＰＤＡ（Personal Digital Assistant）、デジタルカメラ、ウェアラブルＰＣまたはデスクトップＰＣ等であってもよい。
【００３２】
情報処理装置は、対象装置のハードウェア資源を仮想的に構築して、対象装置で行われた処理を再現する。ハードウェア資源としては、例えば、ＣＰＵ、ＨＤ等が挙げられる。
ハードウェア資源を仮想的に構築する方法としては、特に制限されるものではなく、公知の手法を用いることができる。例えば、シミュレーションを行うためのシステムやソフトウェア等を用いてもよい。
再現とあるのは、シミュレーション、シミュレートなどとも称される。
【００３３】
対象装置のハードウェア資源を仮想的に構築して、対象装置で行われた処理を再現する方法の一例としては、例えば、対象装置に用いられるファームウェアを情報処理装置上で構築し、構築されたファームウェアを動作させて再現する方法が挙げられる。なお、ここでいう構築とは、例えば公知のソフトウェアやプログラム等により、対象装置に用いられるファームウェア等のハードウェア資源の管理、制御等を行う仕組みが情報処理装置上で動作できる状態にすることをいう。
【００３４】
次に、本実施形態における保存部及び再現部について説明する。
保存部は、対象装置において処理が行われたときのハードウェア負担率を時系列で保存する。保存部は対象装置に備えられていてもよいし、対象装置とは別に備えられていてもよい。
【００３５】
図４に、ハードウェア負担率を時系列で保存する場合の例を示す。図４では、縦軸を対象装置におけるＣＰＵ使用率とし、横軸を時間Ｔ（ｍｓ）としている。時間ごとに、対象装置で実行されるタスクＡ〜ＤのＣＰＵ使用率を模式的に表している。
【００３６】
本実施形態では、０ｍｓからスタートして、時間情報をあわせて保存できる仕組みを用いる。ここで示される例では、１０ｍｓごとにＣＰＵ使用率をログに保存する。図中、ａ〜ｄは記録ポイントを示し、それぞれのＣＰＵ使用率は、記録ポイントａで１０％、記録ポイントｂで９０％、記録ポイントｃ及びｄで４０％である。
【００３７】
また、２０ｍｓ付近において、タスクＢはタスクＡと同時に実行されている。タスクＡとＢはタスク優先度が同じで、ラウンドロビン方式で実施した場合に重なることがある。重なった部分も加味して図の太線がＣＰＵ使用率となる。
【００３８】
図に示される例では、１０ｍｓごとにＣＰＵ使用率を保存しているが、記録ポイントを取得する時間間隔はこれに限られるものではなく、適宜変更することができる。
【００３９】
なお、対象装置において処理が行われたときのハードウェア負担率を時系列で保存された情報は、対象装置に保存されていてもよいし、対象装置とは別の場所に保存されていてもよい。
【００４０】
また、市場で稼働している対象装置において動作ログを取得するようにすれば、処理が集中している場合にのみ発生するなどの障害を解析することができ、対象装置の試験中に想定されなかった障害を解析することができるため好ましい。
【００４１】
時系列の情報とするには、例えばＭＦＰソフトにおけるリアルタイムクロックを用いて時間情報を取得することにより行う。
【００４２】
動作ログの取得方法としては、例えば対象装置において、システムのＯＳ部に起動後から所定の間隔で、利用中のタスク名をログ領域に保存していく。この際、障害解析用に、同時系列で論理処理の既存ログを保存していくことが好ましい。これにより、情報処理装置における再現性をより向上させることができる。
【００４３】
再現部は、対象装置で行われた処理を情報処理装置に再現させる。再現部は情報処理装置に備えられていてもよいし、情報処理装置とは別に備えられていてもよい。本実施形態の情報処理装置は再現部が備えられている。
【００４４】
再現対象となる対象装置で行われた処理としては、特に制限されるものではなく、通常運転時の処理であってもよいし、障害と称される通常運転時とは異なる処理であってもよいし、設計、開発時に想定されなかった処理であってもよい。
【００４５】
図５に、対象装置及び情報処理装置における機能構成の一例の要部を示す。
図５（Ａ）では、ＰＣ５に再現部１０２が備えられており、ＭＦＰ９に保存部１０１が備えられている。
また、図５（Ｂ）に示すように、別装置１０に保存部１０１と再現部１０２が備えられていてもよい。この場合、別装置１０は通信ネットワーク１００を介して、ＭＦＰ９におけるハードウェア負担率を取得・保存し、ＰＣ５に再現処理を行わせる。
【００４６】
上記の他にも、ＰＣ５に再現部１０２が備えられ、別装置１０に保存部１０１が備えられている構成など、適宜変更することができる。
なお、別装置１０としては、特に制限されるものではなく、例えば情報処理装置と同様の装置を用いることができる。
【００４７】
ハードウェア負担率としては、例えば、ＣＰＵ（Central Processing Unit）使用率、ＨＤ（Hard Disk）のアクセス率等が挙げられ、これらは１種であってもよいし、２種以上であってもよい。第１のハードウェア負担率と第２のハードウェア負担率とで同じ指標を用いることが好ましい。中でもＣＰＵ使用率とＨＤアクセス率をあわせて用いることが好ましく、この場合、再現の精度をより向上させることができる。
【００４８】
ＣＰＵ使用率やＨＤのアクセス率等のハードウェア負担率は、公知の手法により求めることができる。例えば、対象装置に用いられるファームウェア等により取得することができる。また、情報処理装置においては、対象装置に用いられるファームウェア等の動作を再現し、再現したファームウェアの動作から取得するようにしてもよい。
【００４９】
図６に、本実施形態における再現部の処理フローの一例を示す。
本実施形態では、保存部により保存されたハードウェア負担率を第１のハードウェア負担率と称し、情報処理装置が対象装置で行われた処理を再現中に、情報処理装置において仮想的に構築されたハードウェア資源のハードウェア負担率を第２のハードウェア負担率と称する。
【００５０】
処理の再現中に、第１のハードウェア負担率と第２のハードウェア負担率とを時系列で比較する（Ｓ１０１）。
比較する間隔は、適宜変更することができる。第１のハードウェア負担率を取得した時間間隔で比較してもよいし、第１のハードウェア負担率を取得した時間間隔よりも長い時間間隔で比較してもよい。
【００５１】
Ｓ１０１で比較した際に、第２のハードウェア負担率が第１のハードウェア負担率よりも低い場合、ダミータスクにより第２のハードウェア負担率を高くする（Ｓ１０２）。これにより、第２のハードウェア負担率を第１のハードウェア負担率に近づけることができる。
【００５２】
Ｓ１０１で比較した際に、第２のハードウェア負担率が第１のハードウェア負担率よりも低くない場合、何もしない（Ｓ１０３）。
【００５３】
シミュレーションシステムにおいては、動作の再現性を保つために、各タスクの処理が一定処理コード行数進むごとに時間を進める仕組みを用いることが好ましく、この場合、リアルタイムにハードウェア負担率を確認できる。そのため、対象装置のハードウェア負担率とリアルタイムで、例えば１０ｍｓに一回比較しながら足りない負担分のみをダミータスクを追加させながら処理を進めることが可能となる。
【００５４】
情報処理装置で再現する際には、例えばＰＣを用いる場合、ＰＣのスペックやＰＣ上で他に動作しているプロセスの影響を受けないようにするために、時間の進み度合いを調整することが好ましい。これにより、処理を再現する際に、複数回再現を実施しても、再現度合いのばらつきを抑えることができる。
【００５５】
上記のように、本実施形態によれば、対象装置の処理を再現する情報処理装置において、意図的にＣＰＵ負荷やＨＤアクセスが高い状態を作ることができる。このため、ＣＰＵ負荷やＨＤアクセスの負荷が対象装置とシミュレーション装置とで異なる場合に生じていた再現されない障害を抑制することができる。従って、対象装置で行われた処理を情報処理装置上で再現する際に、精度よく再現することができる。
【００５６】
また、本実施形態によれば、対象装置の動作ログに加えて、ハードウェア負担率も含めて再現させることにより、対象装置の処理を更に精度よく再現することができる。
【００５７】
図７に、本実施形態におけるハードウェア負担率を時系列にした場合の一例を示す。ここでは、ハードウェア負担率として、ＣＰＵ使用率を例に挙げて説明する。図７において、縦軸はＣＰＵ使用率であり、横軸は時間である。
【００５８】
図中、破線で示される（Ａ）は対象装置におけるＣＰＵ使用率を示し、実線で示される（Ｂ）は情報処理装置におけるＣＰＵ使用率を示す。ここで、（Ｂ）は対象装置で行われた処理を情報処理装置において再現中に、仮想的に構築されたハードウェア資源のＣＰＵ使用率（ハードウェア負担率）を示すものである。なお、ＣＰＵ使用率の単位は、例えば％である。
【００５９】
図示されるように、ＡとＢは差が生じており、特にａとｂの箇所で、大きな差となっている。このような大きな差が生じる場合、対象装置で行われた処理を精度よく再現できていないといえ、再現できない障害が生じる可能性が高くなる。
【００６０】
一方、本実施形態によれば、ダミータスクによりＣＰＵ使用率（ハードウェア負担率）を対象装置に合わせることができるため、精度よく再現することができる。また、これにより、従来の技術ではＣＰＵ使用率の差異によって再現できなかった障害が生じていたが、本実施形態によればこのような障害を再現することができる。
【００６１】
本実施形態においては、第１のハードウェア負担率と第２のハードウェア負担率とを比較した際に、第１のハードウェア負担率と第２のハードウェア負担率との差を求め、差に応じて、ダミータスクにより上げられる第２のハードウェア負担率を調整してもよい。差が大きい場合には第２のハードウェア負担率を大きく上げるようにし、差が小さい場合には第２のハードウェア負担率を少なく上げるようにすることで、再現及び解析に要する時間を減らすことができる。
【００６２】
また、本実施形態では、第１のハードウェア負担率と第２のハードウェア負担率との差が、閾値を超えた場合に、ダミータスクにより第２のハードウェア負担率を上げるようにしてもよい。
閾値としては、適宜変更することができるため、特に制限されるものではない。対象装置や情報処理装置、また再現する処理によっても異なるため、一概にはいえないが、例えば、第１のハードウェア負担率：第２のハードウェア負担率＝１０：２〜１０：９．９が好ましい。１０：２以上であると、微差に対して処理を行う必要がなく、全体の処理を速くすることができる。
【００６３】
閾値を超えた場合にダミータスクに処理をさせる場合、例えば、閾値を超えた場合のみダミータスクの優先度をチェンジプライオリティ処理により最優先として、ＯＳによるディスパッチを可能にさせることが好ましい。
【００６４】
また、上記のように、第１のハードウェア負担率と第２のハードウェア負担率とを比較した際に、都度、ダミータスクで第２のハードウェア負担率を調整してもよいが、この他にも、ある程度の期間差異が続く場合に第２のハードウェア負担率を調整するようにしてもよい。例えば、時系列で比較した際に、１０回連続で第２のハードウェア負担率が低い場合、ダミータスクにより第２のハードウェア負担率を上げるようにしてもよい。この場合、ダミータスクの処理を減らすことができ、全体の処理を速くすることができる。
【００６５】
ダミータスクは、適宜変更することが可能であるが、例えば、情報処理装置が処理を再現している間、稼働し続けるようにすることが好ましい。この場合、必要なタイミングでハードウェア負担率を調整することができる。また、ダミータスクをタスクの切り替え対象に含めないようにしてもよい。
【００６６】
また、上述のように、本発明によれば、情報処理装置、プログラム、シミュレーション方法が提供される。
【００６７】
本発明の情報処理装置は、対象装置のハードウェア資源を仮想的に構築して前記対象装置で行われた処理を再現する情報処理装置であって、
前記対象装置で行われた処理を再現する再現部を備え、
前記再現部は、
前記対象装置において処理が行われたときのハードウェア負担率を時系列で保存された情報を用い、
前記保存された前記ハードウェア負担率を第１のハードウェア負担率とし、当該情報処理装置が前記処理を再現中に、当該情報処理装置において仮想的に構築された前記ハードウェア資源のハードウェア負担率を第２のハードウェア負担率としたとき、
前記処理の再現中に、前記第１のハードウェア負担率と前記第２のハードウェア負担率とを時系列で比較し、前記第２のハードウェア負担率が前記第１のハードウェア負担率よりも低い場合に、前記情報処理装置において実行されるダミータスクにより、前記第２のハードウェア負担率を上げて前記第２のハードウェア負担率を前記第１のハードウェア負担率に近づける
ことを特徴とする。
【００６８】
本発明のプログラムは、対象装置のハードウェア資源を仮想的に構築して前記対象装置で行われた処理を再現する情報処理装置用のプログラムであって、
コンピュータを、前記対象装置で行われた処理を再現する再現部として機能させるとともに、
前記再現部は、
前記対象装置において処理が行われたときのハードウェア負担率を時系列で保存された情報を用い、
前記保存された前記ハードウェア負担率を第１のハードウェア負担率とし、前記情報処理装置が前記処理を再現中に、前記情報処理装置において仮想的に構築された前記ハードウェア資源のハードウェア負担率を第２のハードウェア負担率としたとき、
前記処理の再現中に、前記第１のハードウェア負担率と前記第２のハードウェア負担率とを時系列で比較し、前記第２のハードウェア負担率が前記第１のハードウェア負担率よりも低い場合に、前記情報処理装置において実行されるダミータスクにより、前記第２のハードウェア負担率を上げて前記第２のハードウェア負担率を前記第１のハードウェア負担率に近づける
ことを特徴とする。
【００６９】
本発明のシミュレーション方法は、対象装置のハードウェア資源を仮想的に構築して前記対象装置で行われた処理を再現する情報処理装置を用いて解析するシミュレーション方法であって、
保存工程及び再現工程を含み、
前記保存工程は、前記対象装置において処理が行われたときのハードウェア負担率を時系列で保存し、
前記再現工程は、
前記対象装置で行われた処理を前記情報処理装置に再現させるとともに、
前記保存工程により保存された前記ハードウェア負担率を第１のハードウェア負担率とし、前記情報処理装置が前記処理を再現中に、前記情報処理装置において仮想的に構築された前記ハードウェア資源のハードウェア負担率を第２のハードウェア負担率としたとき、
前記処理の再現中に、前記第１のハードウェア負担率と前記第２のハードウェア負担率とを時系列で比較し、前記第２のハードウェア負担率が前記第１のハードウェア負担率よりも低い場合に、前記情報処理装置において実行されるダミータスクにより、前記第２のハードウェア負担率を上げて前記第２のハードウェア負担率を前記第１のハードウェア負担率に近づける
ことを特徴とする。
【００７０】
上記で説明した実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC（Application Specific Integrated Circuit）、DSP（digital signal processor）、FPGA（field programmable gate array）や従来の回路モジュール等のデバイスを含むものとする。
【００７１】
（第２の実施形態）
次に、本発明の他の実施形態について説明する。上記実施形態と同様の事項については説明を省略する。本実施形態では、システムの結合環境で用いられる場合について説明する。
【００７２】
システムの結合環境とは、対象装置が複数のシステム（ファームウェア）を有し、システム間で情報のやり取りを行うことで対象装置全体の処理を行うことを意味する。情報処理装置では、対象装置と同様に、複数のシステムを有し、システム間で情報のやり取りを行うことで対象装置全体の処理を再現する。本実施形態において、対象装置は複数のシステムを有しており、ここでいうシステムとは、ファームウェアを意味し、１ＣＰＵで動作するファームウェアであることが好ましい。
【００７３】
すなわち、本実施形態において、対象装置は複数のファームウェアを有し、ファームウェアどうしが情報をやり取りして対象装置における処理を行う。情報処理装置は対象装置が有する複数のファームウェアを構築して対象装置の処理を再現する。
【００７４】
ファームウェアどうしがやり取りする情報としては、特に制限されるものではないが、例えば、１つのファームウェアの処理が終了したことを他のファームウェアに知らせる通知等が挙げられる。また、他のファームウェアが処理を行うための入力データ等が挙げられる。
【００７５】
以下、本実施形態より得られる優れた効果について説明する。まず、対象装置が複数のシステムを有する場合における、本実施形態を用いない場合の問題点について図８を用いて説明する。
【００７６】
図８は、対象装置及び情報処理装置でのスレッド処理の一例である。
図８（Ａ）は対象装置でのスレッド処理Ａ、Ｂの実行開始から実行終了を模式的に示しており、図８（Ｂ）は情報処理装置でスレッド処理Ａ、Ｂをシミュレートさせたときの実行開始から実行終了を模式的に示している。システムＸでスレッド処理Ａを行い、システムＹでスレッド処理Ｂを行った場合の例であり、スレッド処理Ａ、Ｂは、処理が終了したらそれぞれ通知ａ、通知ｂをお互いに送付する。
【００７７】
図８（Ａ）では、処理Ａの処理負荷が非常に高く、処理Ｂの処理負荷が低くなっており、時系列としては、処理Ｂが終了して通知ｂがなされ、その後、処理Ａが終了して通知ａがなされる。
【００７８】
一方、図８（Ｂ）では、処理Ａの処理負荷が低くなっており、時系列としては、処理Ａが終了して通知ａがなされ、その後、処理Ｂが終了して通知ｂがなされる。この場合、処理の順序性が対象装置と情報処理装置とで異なってしまい、対象装置で行われた処理が精度よく再現されなくなってしまう。
【００７９】
例えば、システムＸをエンジンとし、システムＹを周辺機とした場合、システムＸがシステムＹを制御しながら処理を進めていくこととなるが、この場合、例えばデバイス情報をお互いが通信してやり取りするため、複雑な動きとなることが多い。こういった場合に、処理の順序性が対象装置と情報処理装置とで異なると、対象装置で行われた処理を再現しにくくなってしまう。
【００８０】
図９は、情報処理装置において、ハードウェア資源のハードウェア負担率を高めるためのダミータスクの構築例を表した図である。
【００８１】
図９は、情報処理装置内の構成図を表した図であり、ここで示される例では、システムＸとシステムＹとを用いて、対象装置での処理を再現する。システムＸ、Ｙは１ＣＰＵが有するファームウェア（１ＣＰＵで動作するファームウェア）であり、本例の情報処理装置はＣＰＵを複数備えている。
なお、実際のＣＰＵが１つであってもよく、この場合、１つのＣＰＵを仮想的に複数のＣＰＵとして用いることが好ましい。
【００８２】
タスク１〜３は対象装置上に存在するタスクであり、対象装置においても処理が行われる。タスク１〜３はリアルタイムＯＳ上のタスクである。
【００８３】
図示されるように、対象装置上に存在しないタスクをダミータスクとして情報処理装置におけるシステムＸ及びシステムＹに設けておく。情報処理装置上で対象装置と同様の動作（処理）を再現させた場合に、対象装置で行われた場合よりもハードウェア負担率（ＣＰＵ使用率等）が低いタイミングがあれば、ダミータスクにより同等のハードウェア負担率まで上昇させる。
【００８４】
例えば、上記の例では、システムＸの処理Ａに対して、ダミータスクによりハードウェア負担率を上昇させる。これにより、情報処理装置において、処理Ａの負荷が上がるため、システムＹの処理Ｂが先に処理を終了し、ｂ通知を行い、その後、システムＸの処理Ａが終了し、ａ通知を行うこととなる。その結果、対象装置と処理の順序性を一致させることができる。
【００８５】
従って、本実施形態によれば、複数のシステムにおける処理の順序性を対象装置と情報処理装置とで合わせることができ、対象装置で行われた処理を更に精度よく再現することができる。
【符号の説明】
【００８６】
５  ＰＣ
９  ＭＦＰ
１０  別装置
１０１  保存部
１０２  再現部
【先行技術文献】
【特許文献】
【００８７】
【特許文献１】特開２００７−１７２１２７号公報
【図１】
2020123033.tif 000003
【図２】
2020123033.tif 000004
【図３】
2020123033.tif 000005
【図４】
2020123033.tif 000006
【図５】
2020123033.tif 000007
【図６】
2020123033.tif 000008
【図７】
2020123033.tif 000009
【図８】
2020123033.tif 000010
【図９】
2020123033.tif 000011