IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社リコーの特許一覧

特許7151514シミュレーションシステム、情報処理装置、プログラム及びシミュレーション方法
<>
  • 特許-シミュレーションシステム、情報処理装置、プログラム及びシミュレーション方法 図1
  • 特許-シミュレーションシステム、情報処理装置、プログラム及びシミュレーション方法 図2
  • 特許-シミュレーションシステム、情報処理装置、プログラム及びシミュレーション方法 図3
  • 特許-シミュレーションシステム、情報処理装置、プログラム及びシミュレーション方法 図4
  • 特許-シミュレーションシステム、情報処理装置、プログラム及びシミュレーション方法 図5
  • 特許-シミュレーションシステム、情報処理装置、プログラム及びシミュレーション方法 図6
  • 特許-シミュレーションシステム、情報処理装置、プログラム及びシミュレーション方法 図7
  • 特許-シミュレーションシステム、情報処理装置、プログラム及びシミュレーション方法 図8
  • 特許-シミュレーションシステム、情報処理装置、プログラム及びシミュレーション方法 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-03
(45)【発行日】2022-10-12
(54)【発明の名称】シミュレーションシステム、情報処理装置、プログラム及びシミュレーション方法
(51)【国際特許分類】
   G06F 11/34 20060101AFI20221004BHJP
   G06F 30/10 20200101ALI20221004BHJP
   G06F 30/20 20200101ALI20221004BHJP
   G06Q 50/10 20120101ALI20221004BHJP
【FI】
G06F11/34 157
G06F30/10
G06F30/20
G06Q50/10
【請求項の数】 11
(21)【出願番号】P 2019013187
(22)【出願日】2019-01-29
(65)【公開番号】P2020123033
(43)【公開日】2020-08-13
【審査請求日】2021-10-21
(73)【特許権者】
【識別番号】000006747
【氏名又は名称】株式会社リコー
(74)【代理人】
【識別番号】100090527
【弁理士】
【氏名又は名称】舘野 千惠子
(72)【発明者】
【氏名】宮島 将太
【審査官】小林 秀和
(56)【参考文献】
【文献】特開2007-221183(JP,A)
【文献】特開2010-224629(JP,A)
【文献】国際公開第2011/007463(WO,A1)
【文献】特開2017-159501(JP,A)
【文献】特開平03-269736(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/34
G06F 30/10
G06F 30/20
G06Q 50/10
(57)【特許請求の範囲】
【請求項1】
対象装置と、該対象装置のハードウェア資源を仮想的に構築して前記対象装置で行われた処理を再現する情報処理装置とを備えるシミュレーションシステムであって、
保存部及び再現部を備え、
前記保存部は、前記対象装置において処理が行われたときのハードウェア負担率を時系列で保存し、
前記再現部は、
前記対象装置で行われた処理を前記情報処理装置に再現させるとともに、
前記保存部により保存された前記ハードウェア負担率を第1のハードウェア負担率とし、前記情報処理装置が前記処理を再現中に、前記情報処理装置において仮想的に構築された前記ハードウェア資源のハードウェア負担率を第2のハードウェア負担率としたとき、
前記処理の再現中に、前記第1のハードウェア負担率と前記第2のハードウェア負担率とを時系列で比較し、前記第2のハードウェア負担率が前記第1のハードウェア負担率よりも低い場合に、前記情報処理装置において実行されるダミータスクにより、前記第2のハードウェア負担率を上げて前記第2のハードウェア負担率を前記第1のハードウェア負担率に近づける
ことを特徴とするシミュレーションシステム。
【請求項2】
前記再現部は、前記第1のハードウェア負担率と前記第2のハードウェア負担率とを比較した際に、前記第1のハードウェア負担率と前記第2のハードウェア負担率との差を求め、該差に応じて、前記ダミータスクにより上げられる前記第2のハードウェア負担率を調整することを特徴とする請求項1に記載のシミュレーションシステム。
【請求項3】
前記ダミータスクは、前記情報処理装置が前記処理を再現している間、稼働し続けることを特徴とする請求項1又は2に記載のシミュレーションシステム。
【請求項4】
前記対象装置は、複数のファームウェアを有し、前記ファームウェアどうしが情報をやり取りして前記処理を行い、
前記情報処理装置は、前記対象装置が有する複数のファームウェアを構築して前記処理を再現することを特徴とする請求項1~3のいずれかに記載のシミュレーションシステム。
【請求項5】
前記第1のハードウェア負担率及び前記第2のハードウェア負担率は、CPU(Central Processing Unit)使用率であることを特徴とする請求項1~4のいずれかに記載のシミュレーションシステム。
【請求項6】
前記第1のハードウェア負担率及び前記第2のハードウェア負担率は、HD(Hard Disk)のアクセス率であることを特徴とする請求項1~4のいずれかに記載のシミュレーションシステム。
【請求項7】
前記第1のハードウェア負担率及び前記第2のハードウェア負担率は、CPU(Central Processing Unit)使用率及びHD(Hard Disk)のアクセス率であることを特徴とする請求項1~4のいずれかに記載のシミュレーションシステム。
【請求項8】
前記対象装置は、画像形成装置であることを特徴とする請求項1~7のいずれかに記載のシミュレーションシステム。
【請求項9】
対象装置のハードウェア資源を仮想的に構築して前記対象装置で行われた処理を再現する情報処理装置であって、
前記対象装置で行われた処理を再現する再現部を備え、
前記再現部は、
前記対象装置において処理が行われたときのハードウェア負担率を時系列で保存された情報を用い、
前記保存された前記ハードウェア負担率を第1のハードウェア負担率とし、当該情報処理装置が前記処理を再現中に、当該情報処理装置において仮想的に構築された前記ハードウェア資源のハードウェア負担率を第2のハードウェア負担率としたとき、
前記処理の再現中に、前記第1のハードウェア負担率と前記第2のハードウェア負担率とを時系列で比較し、前記第2のハードウェア負担率が前記第1のハードウェア負担率よりも低い場合に、前記情報処理装置において実行されるダミータスクにより、前記第2のハードウェア負担率を上げて前記第2のハードウェア負担率を前記第1のハードウェア負担率に近づける
ことを特徴とする情報処理装置。
【請求項10】
対象装置のハードウェア資源を仮想的に構築して前記対象装置で行われた処理を再現する情報処理装置用のプログラムであって、
コンピュータを、前記対象装置で行われた処理を再現する再現部として機能させるとともに、
前記再現部は、
前記対象装置において処理が行われたときのハードウェア負担率を時系列で保存された情報を用い、
前記保存された前記ハードウェア負担率を第1のハードウェア負担率とし、前記情報処理装置が前記処理を再現中に、前記情報処理装置において仮想的に構築された前記ハードウェア資源のハードウェア負担率を第2のハードウェア負担率としたとき、
前記処理の再現中に、前記第1のハードウェア負担率と前記第2のハードウェア負担率とを時系列で比較し、前記第2のハードウェア負担率が前記第1のハードウェア負担率よりも低い場合に、前記情報処理装置において実行されるダミータスクにより、前記第2のハードウェア負担率を上げて前記第2のハードウェア負担率を前記第1のハードウェア負担率に近づける
ことを特徴とするプログラム。
【請求項11】
対象装置のハードウェア資源を仮想的に構築して前記対象装置で行われた処理を再現する情報処理装置を用いて解析するシミュレーション方法であって、
保存工程及び再現工程を含み、
前記保存工程は、前記対象装置において処理が行われたときのハードウェア負担率を時系列で保存し、
前記再現工程は、
前記対象装置で行われた処理を前記情報処理装置に再現させるとともに、
前記保存工程により保存された前記ハードウェア負担率を第1のハードウェア負担率とし、前記情報処理装置が前記処理を再現中に、前記情報処理装置において仮想的に構築された前記ハードウェア資源のハードウェア負担率を第2のハードウェア負担率としたとき、
前記処理の再現中に、前記第1のハードウェア負担率と前記第2のハードウェア負担率とを時系列で比較し、前記第2のハードウェア負担率が前記第1のハードウェア負担率よりも低い場合に、前記情報処理装置において実行されるダミータスクにより、前記第2のハードウェア負担率を上げて前記第2のハードウェア負担率を前記第1のハードウェア負担率に近づける
ことを特徴とするシミュレーション方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、シミュレーションシステム、情報処理装置、プログラム及びシミュレーション方法に関する。
【背景技術】
【0002】
近年、画像形成装置等では制御ソフトウェアの処理が複雑化してきており、発生した障害を解析する際に、稼働ログのみを解析するやり方では障害の原因を特定することが困難になることが多い。
【0003】
このため、従来より、画像形成装置等の実稼働中に発生した障害を解析する方法として、発生した障害をシミュレーション装置で再現して解析することが行われている。シミュレーション装置で障害を再現する手法は、障害が発生したときの処理をトレースすることができ、障害の原因を発見しやすいなどの利点がある。
【0004】
しかし、実際に稼働する装置(対象装置)上の処理をシミュレーション装置(情報処理装置)で再現する場合には、再現の精度が問題となるため、複雑化した制御ソフトウェアの処理に対しても、実稼働中の処理を精度よく再現できる技術が求められている。
【0005】
例えば特許文献1では、画像形成装置における制御系から被制御系へ出力される制御値と、被制御系から制御系へ入力される入力値を時系列で保存し、被制御系の制御結果をシミュレートするシミュレーション装置のアルゴリズムに、制御値と入力値の相関関係を組み込ませることが開示されている。特許文献1は、高い同定精度で画像形成装置の動作をシミュレートすることを目的としている。
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1では、画像形成装置の性能情報が考慮されていないため、例えばCPU(Central Processing Unit)負荷やHD(Hard Disk)アクセスの負荷が集中している場合にのみ起こる障害を精度よく再現できないという問題があった。また、CPU負荷やHDアクセスの負荷が対象装置とシミュレーション装置とで異なる場合に、再現されない障害が生じることがあり、発生した障害を精度よく再現できない場合があった。
【0007】
そこで、本発明は、対象装置で行われた処理を情報処理装置上で再現する際に、精度よく再現できるシミュレーションシステムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するために、本発明は、対象装置と、該対象装置のハードウェア資源を仮想的に構築して前記対象装置で行われた処理を再現する情報処理装置とを備えるシミュレーションシステムであって、保存部及び再現部を備え、前記保存部は、前記対象装置において処理が行われたときのハードウェア負担率を時系列で保存し、前記再現部は、前記対象装置で行われた処理を前記情報処理装置に再現させるとともに、前記保存部により保存された前記ハードウェア負担率を第1のハードウェア負担率とし、前記情報処理装置が前記処理を再現中に、前記情報処理装置において仮想的に構築された前記ハードウェア資源のハードウェア負担率を第2のハードウェア負担率としたとき、前記処理の再現中に、前記第1のハードウェア負担率と前記第2のハードウェア負担率とを時系列で比較し、前記第2のハードウェア負担率が前記第1のハードウェア負担率よりも低い場合に、前記情報処理装置において実行されるダミータスクにより、前記第2のハードウェア負担率を上げて前記第2のハードウェア負担率を前記第1のハードウェア負担率に近づける
ことを特徴とする。
【発明の効果】
【0009】
本発明によれば、対象装置で行われた処理を情報処理装置上で再現する際に、精度よく再現することができる。
【図面の簡単な説明】
【0010】
図1】本発明に係るシミュレーションシステムの構成の一例を示す図である。
図2】本発明に係る情報処理装置の機能ブロックの一例を示す図である。
図3】画像形成装置の機能ブロックの一例を示す図である。
図4】ハードウェア負担率を時系列で保存する場合の一例を説明するための図である。
図5】本発明に係るシミュレーションシステムの機能構成の一例を示す図である。
図6】本発明に係る解析方法の一例を示すフローチャートである。
図7】対象装置と情報処理装置のCPU使用率を時系列で表した場合の一例を示す図である。
図8】対象装置と情報処理装置における処理の順序の一例を説明するための図である。
図9】情報処理装置におけるダミータスクの構成の一例を説明するための図である。
【発明を実施するための形態】
【0011】
以下、本発明に係るシミュレーションシステム、情報処理装置、プログラム及びシミュレーション方法について図面を参照しながら説明する。なお、本発明は以下に示す実施形態に限定されるものではなく、他の実施形態、追加、修正、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【0012】
本発明は、対象装置と、該対象装置のハードウェア資源を仮想的に構築して前記対象装置で行われた処理を再現する情報処理装置とを備えるシミュレーションシステムであって、
保存部及び再現部を備え、
前記保存部は、前記対象装置において処理が行われたときのハードウェア負担率を時系列で保存し、
前記再現部は、
前記対象装置で行われた処理を前記情報処理装置に再現させるとともに、
前記保存部により保存された前記ハードウェア負担率を第1のハードウェア負担率とし、前記情報処理装置が前記処理を再現中に、前記情報処理装置において仮想的に構築された前記ハードウェア資源のハードウェア負担率を第2のハードウェア負担率としたとき、
前記処理の再現中に、前記第1のハードウェア負担率と前記第2のハードウェア負担率とを時系列で比較し、前記第2のハードウェア負担率が前記第1のハードウェア負担率よりも低い場合に、前記情報処理装置において実行されるダミータスクにより、前記第2のハードウェア負担率を上げて前記第2のハードウェア負担率を前記第1のハードウェア負担率に近づける
ことを特徴とする。
【0013】
(第1の実施形態)
図1は、本発明の一実施形態に係るシミュレーションシステムの構成を示す図である。図1に示すように、本実施形態のシミュレーションシステムは、MFP9、PC5を備えており、各装置は通信ネットワーク100に接続している。
【0014】
本実施形態では、対象装置として画像形成装置の一例であるMFP(Multifunction Peripheral/Product/Printer)を例に挙げて説明する。対象装置は、市場で用いられているか否かは問われるものではなく、販売前の装置も含まれる。また、対象装置を実機とも称することがある。
【0015】
本実施形態では、情報処理装置としてPC(パーソナルコンピュータ)を例に挙げて説明する。情報処理装置は対象装置で行われた処理を再現する装置であり、シミュレーション装置などとも称する。
【0016】
本実施形態においては、MFP9とPC5が通信ネットワーク100を介して通信可能であることが好ましいが、これに限られるものではない。MFP9とPC5とが直接接続されていてもよいし、互いに接続されていなくてもよい。対象装置において処理が行われたときのハードウェア負担率を時系列で保存した情報を、PC5が用いることができればよい。
【0017】
図2は、PC5のハードウェア構成図である。なお、PC5はサーバとして用いられてもよい。
図2に示されているように、PC5は、コンピュータによって構築されており、CPU501、ROM502、RAM503、HD504、HDD(Hard Disk Drive)コントローラ505、ディスプレイ506、外部機器接続I/F(Interface)508、ネットワークI/F509、データバス510、キーボード511、ポインティングデバイス512、DVD-RW(Digital Versatile Disk Rewritable)ドライブ514、メディアI/F516を備えている。
【0018】
これらのうち、CPU501は、PC5全体の動作を制御する。ROM502は、IPL等のCPU501の駆動に用いられるプログラムを記憶する。RAM503は、CPU501のワークエリアとして使用される。HD504は、プログラム等の各種データを記憶する。HDDコントローラ505は、CPU501の制御にしたがってHD504に対する各種データの読み出し又は書き込みを制御する。ディスプレイ506は、カーソル、メニュー、ウィンドウ、文字、又は画像などの各種情報を表示する。外部機器接続I/F508は、各種の外部機器を接続するためのインターフェースである。この場合の外部機器は、例えば、USB(Universal Serial Bus)メモリやプリンタ等である。ネットワークI/F509は、通信ネットワーク100を利用してデータ通信をするためのインターフェースである。バスライン510は、図2に示されているCPU501等の各構成要素を電気的に接続するためのアドレスバスやデータバス等である。
【0019】
また、キーボード511は、文字、数値、各種指示などの入力のための複数のキーを備えた入力手段の一種である。ポインティングデバイス512は、各種指示の選択や実行、処理対象の選択、カーソルの移動などを行う入力手段の一種である。DVD-RWドライブ514は、着脱可能な記録媒体の一例としてのDVD-RW513に対する各種データの読み出し又は書き込みを制御する。なお、DVD-RWに限らず、DVD-R等であってもよい。メディアI/F516は、フラッシュメモリ等の記録メディア515に対するデータの読み出し又は書き込み(記憶)を制御する。
【0020】
図3は、MFP9のハードウェア構成図である。図3に示されているように、MFP9は、コントローラ910、近距離通信回路920、エンジン制御部930、操作パネル940、ネットワークI/F950を備えている。
【0021】
これらのうち、コントローラ910は、コンピュータの主要部であるCPU901、システムメモリ(MEM-P)902、ノースブリッジ(NB)903、サウスブリッジ(SB)904、ASIC(Application Specific Integrated Circuit)906、記憶部であるローカルメモリ(MEM-C)907、HDDコントローラ908、及び、記憶部であるHD909を有し、NB903とASIC906との間をAGP(Accelerated Graphics Port)バス921で接続した構成となっている。
【0022】
これらのうち、CPU901は、MFP9の全体制御を行う制御部である。NB903は、CPU901と、MEM-P902、SB904、及びAGPバス921とを接続するためのブリッジであり、MEM-P902に対する読み書きなどを制御するメモリコントローラと、PCI(Peripheral Component Interconnect)マスタ及びAGPターゲットとを有する。
【0023】
MEM-P902は、コントローラ910の各機能を実現させるプログラムやデータの格納用メモリであるROM902a、プログラムやデータの展開、及びメモリ印刷時の描画用メモリなどとして用いるRAM902bとからなる。なお、RAM902bに記憶されているプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD-ROM、CD-R、DVD等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
【0024】
SB904は、NB903とPCIデバイス、周辺デバイスとを接続するためのブリッジである。ASIC906は、画像処理用のハードウェア要素を有する画像処理用途向けのIC(Integrated Circuit)であり、AGPバス921、PCIバス922、HDD908及びMEM-C907をそれぞれ接続するブリッジの役割を有する。このASIC906は、PCIターゲット及びAGPマスタ、ASIC906の中核をなすアービタ(ARB)、MEM-C907を制御するメモリコントローラ、ハードウェアロジックなどにより画像データの回転などを行う複数のDMAC(Direct Memory Access Controller)、並びに、スキャナ部931及びプリンタ部932との間でPCIバス922を介したデータ転送を行うPCIユニットとからなる。
【0025】
なお、ASIC906には、USB(Universal Serial Bus)のインターフェースや、IEEE1394(Institute of Electrical and Electronics Engineers 1394)のインターフェースを接続するようにしてもよい。
【0026】
MEM-C907は、コピー用画像バッファ及び符号バッファとして用いるローカルメモリである。HD909は、画像データの蓄積、印刷時に用いるフォントデータの蓄積、フォームの蓄積を行うためのストレージである。HD909は、CPU901の制御にしたがってHD909に対するデータの読出又は書込を制御する。AGPバス921は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレータカード用のバスインタフェースであり、MEM-P902に高スループットで直接アクセスすることにより、グラフィックスアクセラレータカードを高速にすることができる。
【0027】
また、近距離通信回路920には、近距離通信回路920aが備わっている。近距離通信回路920は、NFC、Bluetooth(登録商標)等の通信回路である。
【0028】
更に、エンジン制御部930は、スキャナ部931及びプリンタ部932によって構成されている。また、操作パネル940は、現在の設定値や選択画面等を表示させ、操作者からの入力を受け付けるタッチパネル等のパネル表示部940a、並びに、濃度の設定条件などの画像形成に関する条件の設定値を受け付けるテンキー及びコピー開始指示を受け付けるスタートキー等からなる操作パネル940bを備えている。コントローラ910は、MFP9全体の制御を行い、例えば、描画、通信、操作パネル940からの入力等を制御する。スキャナ部931又はプリンタ部932には、誤差拡散やガンマ変換などの画像処理部分が含まれている。
【0029】
なお、MFP9は、操作パネル940のアプリケーション切り替えキーにより、ドキュメントボックス機能、コピー機能、プリンタ機能、およびファクシミリ機能を順次に切り替えて選択することが可能となる。ドキュメントボックス機能の選択時にはドキュメントボックスモードとなり、コピー機能の選択時にはコピーモードとなり、プリンタ機能の選択時にはプリンタモードとなり、ファクシミリモードの選択時にはファクシミリモードとなる。
【0030】
また、ネットワークI/F950は、通信ネットワーク100を利用してデータ通信をするためのインターフェースである。近距離通信回路920及びネットワークI/F950は、PCIバス922を介して、ASIC906に電気的に接続されている。
【0031】
対象装置(実機)として、画像形成装置を例に挙げて説明したが、通信機能を備えた装置であれば、画像形成装置に限られない。対象装置としては、例えば、PJ(Projector:プロジェクタ)、IWB(Interactive White Board:相互通信が可能な電子式の黒板機能を有する白板)、デジタルサイネージ等の出力装置、HUD(Head Up Display)装置、産業機械、撮像装置、集音装置、医療機器、ネットワーク家電、自動車(Connected Car)、ノートPC(Personal Computer)、携帯電話、スマートフォン、タブレット端末、ゲーム機、PDA(Personal Digital Assistant)、デジタルカメラ、ウェアラブルPCまたはデスクトップPC等であってもよい。
【0032】
情報処理装置は、対象装置のハードウェア資源を仮想的に構築して、対象装置で行われた処理を再現する。ハードウェア資源としては、例えば、CPU、HD等が挙げられる。
ハードウェア資源を仮想的に構築する方法としては、特に制限されるものではなく、公知の手法を用いることができる。例えば、シミュレーションを行うためのシステムやソフトウェア等を用いてもよい。
再現とあるのは、シミュレーション、シミュレートなどとも称される。
【0033】
対象装置のハードウェア資源を仮想的に構築して、対象装置で行われた処理を再現する方法の一例としては、例えば、対象装置に用いられるファームウェアを情報処理装置上で構築し、構築されたファームウェアを動作させて再現する方法が挙げられる。なお、ここでいう構築とは、例えば公知のソフトウェアやプログラム等により、対象装置に用いられるファームウェア等のハードウェア資源の管理、制御等を行う仕組みが情報処理装置上で動作できる状態にすることをいう。
【0034】
次に、本実施形態における保存部及び再現部について説明する。
保存部は、対象装置において処理が行われたときのハードウェア負担率を時系列で保存する。保存部は対象装置に備えられていてもよいし、対象装置とは別に備えられていてもよい。
【0035】
図4に、ハードウェア負担率を時系列で保存する場合の例を示す。図4では、縦軸を対象装置におけるCPU使用率とし、横軸を時間T(ms)としている。時間ごとに、対象装置で実行されるタスクA~DのCPU使用率を模式的に表している。
【0036】
本実施形態では、0msからスタートして、時間情報をあわせて保存できる仕組みを用いる。ここで示される例では、10msごとにCPU使用率をログに保存する。図中、a~dは記録ポイントを示し、それぞれのCPU使用率は、記録ポイントaで10%、記録ポイントbで90%、記録ポイントc及びdで40%である。
【0037】
また、20ms付近において、タスクBはタスクAと同時に実行されている。タスクAとBはタスク優先度が同じで、ラウンドロビン方式で実施した場合に重なることがある。重なった部分も加味して図の太線がCPU使用率となる。
【0038】
図に示される例では、10msごとにCPU使用率を保存しているが、記録ポイントを取得する時間間隔はこれに限られるものではなく、適宜変更することができる。
【0039】
なお、対象装置において処理が行われたときのハードウェア負担率を時系列で保存された情報は、対象装置に保存されていてもよいし、対象装置とは別の場所に保存されていてもよい。
【0040】
また、市場で稼働している対象装置において動作ログを取得するようにすれば、処理が集中している場合にのみ発生するなどの障害を解析することができ、対象装置の試験中に想定されなかった障害を解析することができるため好ましい。
【0041】
時系列の情報とするには、例えばMFPソフトにおけるリアルタイムクロックを用いて時間情報を取得することにより行う。
【0042】
動作ログの取得方法としては、例えば対象装置において、システムのOS部に起動後から所定の間隔で、利用中のタスク名をログ領域に保存していく。この際、障害解析用に、同時系列で論理処理の既存ログを保存していくことが好ましい。これにより、情報処理装置における再現性をより向上させることができる。
【0043】
再現部は、対象装置で行われた処理を情報処理装置に再現させる。再現部は情報処理装置に備えられていてもよいし、情報処理装置とは別に備えられていてもよい。本実施形態の情報処理装置は再現部が備えられている。
【0044】
再現対象となる対象装置で行われた処理としては、特に制限されるものではなく、通常運転時の処理であってもよいし、障害と称される通常運転時とは異なる処理であってもよいし、設計、開発時に想定されなかった処理であってもよい。
【0045】
図5に、対象装置及び情報処理装置における機能構成の一例の要部を示す。
図5(A)では、PC5に再現部102が備えられており、MFP9に保存部101が備えられている。
また、図5(B)に示すように、別装置10に保存部101と再現部102が備えられていてもよい。この場合、別装置10は通信ネットワーク100を介して、MFP9におけるハードウェア負担率を取得・保存し、PC5に再現処理を行わせる。
【0046】
上記の他にも、PC5に再現部102が備えられ、別装置10に保存部101が備えられている構成など、適宜変更することができる。
なお、別装置10としては、特に制限されるものではなく、例えば情報処理装置と同様の装置を用いることができる。
【0047】
ハードウェア負担率としては、例えば、CPU(Central Processing Unit)使用率、HD(Hard Disk)のアクセス率等が挙げられ、これらは1種であってもよいし、2種以上であってもよい。第1のハードウェア負担率と第2のハードウェア負担率とで同じ指標を用いることが好ましい。中でもCPU使用率とHDアクセス率をあわせて用いることが好ましく、この場合、再現の精度をより向上させることができる。
【0048】
CPU使用率やHDのアクセス率等のハードウェア負担率は、公知の手法により求めることができる。例えば、対象装置に用いられるファームウェア等により取得することができる。また、情報処理装置においては、対象装置に用いられるファームウェア等の動作を再現し、再現したファームウェアの動作から取得するようにしてもよい。
【0049】
図6に、本実施形態における再現部の処理フローの一例を示す。
本実施形態では、保存部により保存されたハードウェア負担率を第1のハードウェア負担率と称し、情報処理装置が対象装置で行われた処理を再現中に、情報処理装置において仮想的に構築されたハードウェア資源のハードウェア負担率を第2のハードウェア負担率と称する。
【0050】
処理の再現中に、第1のハードウェア負担率と第2のハードウェア負担率とを時系列で比較する(S101)。
比較する間隔は、適宜変更することができる。第1のハードウェア負担率を取得した時間間隔で比較してもよいし、第1のハードウェア負担率を取得した時間間隔よりも長い時間間隔で比較してもよい。
【0051】
S101で比較した際に、第2のハードウェア負担率が第1のハードウェア負担率よりも低い場合、ダミータスクにより第2のハードウェア負担率を高くする(S102)。これにより、第2のハードウェア負担率を第1のハードウェア負担率に近づけることができる。
【0052】
S101で比較した際に、第2のハードウェア負担率が第1のハードウェア負担率よりも低くない場合、何もしない(S103)。
【0053】
シミュレーションシステムにおいては、動作の再現性を保つために、各タスクの処理が一定処理コード行数進むごとに時間を進める仕組みを用いることが好ましく、この場合、リアルタイムにハードウェア負担率を確認できる。そのため、対象装置のハードウェア負担率とリアルタイムで、例えば10msに一回比較しながら足りない負担分のみをダミータスクを追加させながら処理を進めることが可能となる。
【0054】
情報処理装置で再現する際には、例えばPCを用いる場合、PCのスペックやPC上で他に動作しているプロセスの影響を受けないようにするために、時間の進み度合いを調整することが好ましい。これにより、処理を再現する際に、複数回再現を実施しても、再現度合いのばらつきを抑えることができる。
【0055】
上記のように、本実施形態によれば、対象装置の処理を再現する情報処理装置において、意図的にCPU負荷やHDアクセスが高い状態を作ることができる。このため、CPU負荷やHDアクセスの負荷が対象装置とシミュレーション装置とで異なる場合に生じていた再現されない障害を抑制することができる。従って、対象装置で行われた処理を情報処理装置上で再現する際に、精度よく再現することができる。
【0056】
また、本実施形態によれば、対象装置の動作ログに加えて、ハードウェア負担率も含めて再現させることにより、対象装置の処理を更に精度よく再現することができる。
【0057】
図7に、本実施形態におけるハードウェア負担率を時系列にした場合の一例を示す。ここでは、ハードウェア負担率として、CPU使用率を例に挙げて説明する。図7において、縦軸はCPU使用率であり、横軸は時間である。
【0058】
図中、破線で示される(A)は対象装置におけるCPU使用率を示し、実線で示される(B)は情報処理装置におけるCPU使用率を示す。ここで、(B)は対象装置で行われた処理を情報処理装置において再現中に、仮想的に構築されたハードウェア資源のCPU使用率(ハードウェア負担率)を示すものである。なお、CPU使用率の単位は、例えば%である。
【0059】
図示されるように、AとBは差が生じており、特にaとbの箇所で、大きな差となっている。このような大きな差が生じる場合、対象装置で行われた処理を精度よく再現できていないといえ、再現できない障害が生じる可能性が高くなる。
【0060】
一方、本実施形態によれば、ダミータスクによりCPU使用率(ハードウェア負担率)を対象装置に合わせることができるため、精度よく再現することができる。また、これにより、従来の技術ではCPU使用率の差異によって再現できなかった障害が生じていたが、本実施形態によればこのような障害を再現することができる。
【0061】
本実施形態においては、第1のハードウェア負担率と第2のハードウェア負担率とを比較した際に、第1のハードウェア負担率と第2のハードウェア負担率との差を求め、差に応じて、ダミータスクにより上げられる第2のハードウェア負担率を調整してもよい。差が大きい場合には第2のハードウェア負担率を大きく上げるようにし、差が小さい場合には第2のハードウェア負担率を少なく上げるようにすることで、再現及び解析に要する時間を減らすことができる。
【0062】
また、本実施形態では、第1のハードウェア負担率と第2のハードウェア負担率との差が、閾値を超えた場合に、ダミータスクにより第2のハードウェア負担率を上げるようにしてもよい。
閾値としては、適宜変更することができるため、特に制限されるものではない。対象装置や情報処理装置、また再現する処理によっても異なるため、一概にはいえないが、例えば、第1のハードウェア負担率:第2のハードウェア負担率=10:2~10:9.9が好ましい。10:2以上であると、微差に対して処理を行う必要がなく、全体の処理を速くすることができる。
【0063】
閾値を超えた場合にダミータスクに処理をさせる場合、例えば、閾値を超えた場合のみダミータスクの優先度をチェンジプライオリティ処理により最優先として、OSによるディスパッチを可能にさせることが好ましい。
【0064】
また、上記のように、第1のハードウェア負担率と第2のハードウェア負担率とを比較した際に、都度、ダミータスクで第2のハードウェア負担率を調整してもよいが、この他にも、ある程度の期間差異が続く場合に第2のハードウェア負担率を調整するようにしてもよい。例えば、時系列で比較した際に、10回連続で第2のハードウェア負担率が低い場合、ダミータスクにより第2のハードウェア負担率を上げるようにしてもよい。この場合、ダミータスクの処理を減らすことができ、全体の処理を速くすることができる。
【0065】
ダミータスクは、適宜変更することが可能であるが、例えば、情報処理装置が処理を再現している間、稼働し続けるようにすることが好ましい。この場合、必要なタイミングでハードウェア負担率を調整することができる。また、ダミータスクをタスクの切り替え対象に含めないようにしてもよい。
【0066】
また、上述のように、本発明によれば、情報処理装置、プログラム、シミュレーション方法が提供される。
【0067】
本発明の情報処理装置は、対象装置のハードウェア資源を仮想的に構築して前記対象装置で行われた処理を再現する情報処理装置であって、
前記対象装置で行われた処理を再現する再現部を備え、
前記再現部は、
前記対象装置において処理が行われたときのハードウェア負担率を時系列で保存された情報を用い、
前記保存された前記ハードウェア負担率を第1のハードウェア負担率とし、当該情報処理装置が前記処理を再現中に、当該情報処理装置において仮想的に構築された前記ハードウェア資源のハードウェア負担率を第2のハードウェア負担率としたとき、
前記処理の再現中に、前記第1のハードウェア負担率と前記第2のハードウェア負担率とを時系列で比較し、前記第2のハードウェア負担率が前記第1のハードウェア負担率よりも低い場合に、前記情報処理装置において実行されるダミータスクにより、前記第2のハードウェア負担率を上げて前記第2のハードウェア負担率を前記第1のハードウェア負担率に近づける
ことを特徴とする。
【0068】
本発明のプログラムは、対象装置のハードウェア資源を仮想的に構築して前記対象装置で行われた処理を再現する情報処理装置用のプログラムであって、
コンピュータを、前記対象装置で行われた処理を再現する再現部として機能させるとともに、
前記再現部は、
前記対象装置において処理が行われたときのハードウェア負担率を時系列で保存された情報を用い、
前記保存された前記ハードウェア負担率を第1のハードウェア負担率とし、前記情報処理装置が前記処理を再現中に、前記情報処理装置において仮想的に構築された前記ハードウェア資源のハードウェア負担率を第2のハードウェア負担率としたとき、
前記処理の再現中に、前記第1のハードウェア負担率と前記第2のハードウェア負担率とを時系列で比較し、前記第2のハードウェア負担率が前記第1のハードウェア負担率よりも低い場合に、前記情報処理装置において実行されるダミータスクにより、前記第2のハードウェア負担率を上げて前記第2のハードウェア負担率を前記第1のハードウェア負担率に近づける
ことを特徴とする。
【0069】
本発明のシミュレーション方法は、対象装置のハードウェア資源を仮想的に構築して前記対象装置で行われた処理を再現する情報処理装置を用いて解析するシミュレーション方法であって、
保存工程及び再現工程を含み、
前記保存工程は、前記対象装置において処理が行われたときのハードウェア負担率を時系列で保存し、
前記再現工程は、
前記対象装置で行われた処理を前記情報処理装置に再現させるとともに、
前記保存工程により保存された前記ハードウェア負担率を第1のハードウェア負担率とし、前記情報処理装置が前記処理を再現中に、前記情報処理装置において仮想的に構築された前記ハードウェア資源のハードウェア負担率を第2のハードウェア負担率としたとき、
前記処理の再現中に、前記第1のハードウェア負担率と前記第2のハードウェア負担率とを時系列で比較し、前記第2のハードウェア負担率が前記第1のハードウェア負担率よりも低い場合に、前記情報処理装置において実行されるダミータスクにより、前記第2のハードウェア負担率を上げて前記第2のハードウェア負担率を前記第1のハードウェア負担率に近づける
ことを特徴とする。
【0070】
上記で説明した実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP(digital signal processor)、FPGA(field programmable gate array)や従来の回路モジュール等のデバイスを含むものとする。
【0071】
(第2の実施形態)
次に、本発明の他の実施形態について説明する。上記実施形態と同様の事項については説明を省略する。本実施形態では、システムの結合環境で用いられる場合について説明する。
【0072】
システムの結合環境とは、対象装置が複数のシステム(ファームウェア)を有し、システム間で情報のやり取りを行うことで対象装置全体の処理を行うことを意味する。情報処理装置では、対象装置と同様に、複数のシステムを有し、システム間で情報のやり取りを行うことで対象装置全体の処理を再現する。本実施形態において、対象装置は複数のシステムを有しており、ここでいうシステムとは、ファームウェアを意味し、1CPUで動作するファームウェアであることが好ましい。
【0073】
すなわち、本実施形態において、対象装置は複数のファームウェアを有し、ファームウェアどうしが情報をやり取りして対象装置における処理を行う。情報処理装置は対象装置が有する複数のファームウェアを構築して対象装置の処理を再現する。
【0074】
ファームウェアどうしがやり取りする情報としては、特に制限されるものではないが、例えば、1つのファームウェアの処理が終了したことを他のファームウェアに知らせる通知等が挙げられる。また、他のファームウェアが処理を行うための入力データ等が挙げられる。
【0075】
以下、本実施形態より得られる優れた効果について説明する。まず、対象装置が複数のシステムを有する場合における、本実施形態を用いない場合の問題点について図8を用いて説明する。
【0076】
図8は、対象装置及び情報処理装置でのスレッド処理の一例である。
図8(A)は対象装置でのスレッド処理A、Bの実行開始から実行終了を模式的に示しており、図8(B)は情報処理装置でスレッド処理A、Bをシミュレートさせたときの実行開始から実行終了を模式的に示している。システムXでスレッド処理Aを行い、システムYでスレッド処理Bを行った場合の例であり、スレッド処理A、Bは、処理が終了したらそれぞれ通知a、通知bをお互いに送付する。
【0077】
図8(A)では、処理Aの処理負荷が非常に高く、処理Bの処理負荷が低くなっており、時系列としては、処理Bが終了して通知bがなされ、その後、処理Aが終了して通知aがなされる。
【0078】
一方、図8(B)では、処理Aの処理負荷が低くなっており、時系列としては、処理Aが終了して通知aがなされ、その後、処理Bが終了して通知bがなされる。この場合、処理の順序性が対象装置と情報処理装置とで異なってしまい、対象装置で行われた処理が精度よく再現されなくなってしまう。
【0079】
例えば、システムXをエンジンとし、システムYを周辺機とした場合、システムXがシステムYを制御しながら処理を進めていくこととなるが、この場合、例えばデバイス情報をお互いが通信してやり取りするため、複雑な動きとなることが多い。こういった場合に、処理の順序性が対象装置と情報処理装置とで異なると、対象装置で行われた処理を再現しにくくなってしまう。
【0080】
図9は、情報処理装置において、ハードウェア資源のハードウェア負担率を高めるためのダミータスクの構築例を表した図である。
【0081】
図9は、情報処理装置内の構成図を表した図であり、ここで示される例では、システムXとシステムYとを用いて、対象装置での処理を再現する。システムX、Yは1CPUが有するファームウェア(1CPUで動作するファームウェア)であり、本例の情報処理装置はCPUを複数備えている。
なお、実際のCPUが1つであってもよく、この場合、1つのCPUを仮想的に複数のCPUとして用いることが好ましい。
【0082】
タスク1~3は対象装置上に存在するタスクであり、対象装置においても処理が行われる。タスク1~3はリアルタイムOS上のタスクである。
【0083】
図示されるように、対象装置上に存在しないタスクをダミータスクとして情報処理装置におけるシステムX及びシステムYに設けておく。情報処理装置上で対象装置と同様の動作(処理)を再現させた場合に、対象装置で行われた場合よりもハードウェア負担率(CPU使用率等)が低いタイミングがあれば、ダミータスクにより同等のハードウェア負担率まで上昇させる。
【0084】
例えば、上記の例では、システムXの処理Aに対して、ダミータスクによりハードウェア負担率を上昇させる。これにより、情報処理装置において、処理Aの負荷が上がるため、システムYの処理Bが先に処理を終了し、b通知を行い、その後、システムXの処理Aが終了し、a通知を行うこととなる。その結果、対象装置と処理の順序性を一致させることができる。
【0085】
従って、本実施形態によれば、複数のシステムにおける処理の順序性を対象装置と情報処理装置とで合わせることができ、対象装置で行われた処理を更に精度よく再現することができる。
【符号の説明】
【0086】
5 PC
9 MFP
10 別装置
101 保存部
102 再現部
【先行技術文献】
【特許文献】
【0087】
【文献】特開2007-172127号公報
図1
図2
図3
図4
図5
図6
図7
図8
図9