JP5298967B2 - 検証支援プログラム、情報処理装置および検証支援方法 - Google Patents

検証支援プログラム、情報処理装置および検証支援方法 Download PDF

Info

Publication number
JP5298967B2
JP5298967B2 JP2009054148A JP2009054148A JP5298967B2 JP 5298967 B2 JP5298967 B2 JP 5298967B2 JP 2009054148 A JP2009054148 A JP 2009054148A JP 2009054148 A JP2009054148 A JP 2009054148A JP 5298967 B2 JP5298967 B2 JP 5298967B2
Authority
JP
Japan
Prior art keywords
trace
behavior
arbitrary
state
information
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.)
Active
Application number
JP2009054148A
Other languages
English (en)
Other versions
JP2010211316A (ja
Inventor
敦 池
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009054148A priority Critical patent/JP5298967B2/ja
Priority to US12/631,441 priority patent/US8479168B2/en
Publication of JP2010211316A publication Critical patent/JP2010211316A/ja
Application granted granted Critical
Publication of JP5298967B2 publication Critical patent/JP5298967B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3457Performance evaluation by simulation
    • G06F11/3461Trace driven simulation

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Description

この発明は、任意のシステムにおける動作検証を支援するための検証支援プログラム、情報処理装置および検証支援方法に関する。
従来より、新たなシステムを開発し、さらにこのシステム上で動作させるOS(Operating System)によって動作させるようなアプリケーションを開発する際には、システム自体やアプリケーションについての性能評価が必要となる。アプリケーションの性能評価を行うにはアプリケーションを動作させるシステムのハードウェア環境を考慮しなければならない。したがって、想定するシステムの開発完了後にこのシステム上でアプリケーションを動作させることによってはじめて正確な性能評価が可能となる。
そこで、近年では想定するシステムの開発完了を待たずに、想定するシステムのハードウェア環境をソフトウェアによって実現する仮想マシンを用意し、この仮想マシン上でアプリケーションを動作させることによって性能評価を行う手法も提供されている。図17は、従来の仮想マシンの構成を示す説明図である。図17のように、情報処理装置10によって所定のソフトウェアを実行させることによって仮想マシン20を実現する。
仮想マシン20には、想定するシステムと同様のハードウェアをソフトウェアによって実現したハードウェアモデル21と、ハードウェアモデル21によって実現された各ハードウェア(図17の例ではCPU、ハードマクロ、メモリ)の動作を制御する仮想マシンモニタ22とが用意されている。そして、この仮想マシン20上でOS13ならびに仮想マシン20によって実現されたハードウェア環境に対応したドライバー12を起動させることによってアプリケーション11の動作を検証することができる。
図18は、従来の仮想マシンにおける基本的なオペレーションを示す説明図である。図18では、仮想マシン20を用いてアプリケーション11を検証する際の基本的なオペレーションの手順を示している。仮想マシン20では、アプリケーション11が読み込まれると、アプリケーション11の記述に応じて、ハードウェアモデル21内のCPU、ハードマクロそれぞれによって所定のオペレーションが実行される。また、ハードウェアモデル21内のメモリは、CPU、ハードマクロのオペレーションに応じて適宜アクセスされデータの書き込みならびに読み出しが行われる。
具体的に説明すると、CPUの場合、まず、アプリケーション11から命令フェッチを行い(ステップS11)、フェッチした命令を実行する(ステップS12)。そして、命令の実行に応じてレジスタ/メモリを更新し(ステップS14)、この更新処理に応じてバスアクセスが行われる(ステップS13)。更新が終了すると、実機にて同一の命令を実行した場合の時間と消費電力が加算され(ステップS15,16)、ステップS11に戻り、つぎの命令フェッチを行う。このステップS15,S16によって加算される時間ならびに消費電力は、あらかじめ実機の性能に応じた予測値や実測値が用意されており、これらの値が加算される。
同様に、ハードマクロの場合は、まず、アプリケーション11の記述に応じたアルゴリズムを実行し(ステップS21)、実行したアルゴリズムに応じてレジスタ/メモリを更新すると(ステップS22)、この更新処理に応じてバスアクセスが行われる(ステップS23)。更新が終了すると、ここでも、実機にて同一のアルゴリズムを実行した場合の時間と消費電力が加算され(ステップS24,25)、ステップS21に戻り、つぎのアルゴリズムを実行する。ここでも、ステップS24,25によって加算される時間ならびに消費電力は、あらかじめ実機の性能に応じた予測値や実測値が用意され、これらの値が加算される。
なお、上述したCPUならびにハードマクロそれぞれのオペレーションは、仮想マシンモニタ22によって同期制御が行われる。したがって、仮想マシン20によるオペレーション実行結果を取得することによって、実機と同様にアプリケーション11をハードウェアモデル21によって動作させた場合と同様にCPUならびにハードマクロが協働したシミュレーション結果を得て動作を検証することができる。
また、図19は、従来の仮想マシンを用いたアプリケーションの検証支援処理を示す説明図である。上述したように、仮想マシン20を用いてアプリケーション11の検証支援のために想定されるシステムを実現するためには、まず、Cモデル作成部30によって、ハードマクロ仕様書31を参照してハードマクロのシミュレーションモデルであるCモデル32を作成しなければならない。
そして、仮想マシン20によって動作させるアプリケーション11についても、実際にはそのまま利用できないため、コンパイラ・アセンブラ部40によってアプリケーションバイナリ42へ変換するとともに、アプリケーションバイナリ42に付随した関数マップ情報43を生成する必要がある。これらの準備が整うことによってはじめて仮想マシン20によってアプリケーション11のシミュレーションを実行することができる。
なお、Cモデル32の作成に利用されたハードマクロ仕様書31は、実チップ60を製造する場合にも利用される。この場合、まず、RTL作成部50によってハードマクロ仕様書31からRTL(Register Transfer Level)記述を作成する。そして、作成されたRTL記述/ネットリスト(RTL記述から生成)51を用いて実チップ60が製造される。また、製造された実チップ60によってアプリケーション11を実行させた場合の性能・電力は、仮想マシン20によるシミュレーション結果によって得られた性能・電力予測と比較することによって、シミュレーションの精度を確認することもできる。
しかしながら、実際に開発中のシステムの場合には、ハードウェア環境の仕様変更やハードマクロの追加などが頻繁に発生する可能性があり、正しいハードマクロ仕様書31を用意することが困難な場合が多い。また、ハードマクロ仕様書31が用意できた場合であってもCモデル32を作成するには、多大な時間や開発コストがかかってしまう。そして、実際に作成されたCモデル32を利用するには、実チップ60の設計と同等の検証作業が必要となり、結果として検証者の負担が大きく、現実的な手法として採用できないという問題があった。
また、アプリケーション11に関しても、実際に動作させるシステムのハードウェア環境が確定していないため、アプリケーションバイナリ42がそのままでは、仮想マシン20上で正常に動作しない事も多い。したがって、アプリケーションバイナリ42に対して仮想マシン20のハードウェア環境に対応させるための修正を施さなければならず、高精度な検証が必要とされる複雑なシステムほど、修正処理や、実際の検証に多大な時間を費やさなければならないという問題があった。
特開平8−241327号公報
この発明は、上述した従来技術による問題点を解消するため、ハードウェア環境の開発を待たずに対象とするシステムやアプリケーションの性能評価を可能にする検証支援プログラム、情報処理装置および検証支援方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、開示する技術は、コンピュータを、任意のシステムにおいて任意のアプリケーションを実行させた場合の各処理の実行時刻および実行内容の形跡を表すトレース群と、前記任意のアプリケーションを実行させた場合の前記任意のシステムのプロセッサの挙動を表す挙動情報および前記プロセッサ以外の任意のハードウェアの状態遷移を表す状態情報とを取得する処理と、前記挙動情報によって表された挙動の中から任意の挙動が指定されると、当該任意の挙動の実行時刻に基づいて、前記取得されたトレース群の中から前記指定された挙動に対応するトレースを検索する処理と、前記状態情報によって表された状態遷移の中から任意の状態遷移が指定されると、当該任意の状態遷移の実行時刻に基づいて、前記取得されたトレース群の中から前記任意の状態遷移に対応するトレースを検索する処理と、前記任意の挙動と前記任意の状態遷移とをそれぞれ実行させた場合の動作の関連性についての指示を受け付けると、当該指示に応じて前記検索されたトレース群それぞれを関連付ける処理と、前記関連付けられたトレース群を前記挙動のシミュレーション用のトレースとして出力する処理と、を含むことを要件とする。
開示する技術によれば、ハードウェア環境の開発を待たずに、対象とするシステムやアプリケーションの性能評価を可能にするという効果を奏する。
本実施の形態にかかる検証支援処理の概要を示す説明図である。 本実施の形態にかかる情報処理装置によって実現される仮想マシンの構成を示す説明図である。 情報処理装置のハードウェア構成を示すブロック図である。 情報処理装置の機能的構成を示すブロック図である。 着目トレースの抽出処理を示す説明図である。 生トレース、CPU挙動情報ならびにステート情報の構成を示す説明図である。 トレース抽出例(CPU)を示す説明図である。 トレース抽出例(ハードマクロ)を示す説明図である。 トレースの関連付け処理を示す説明図である。 トレースの関連付けの設定例を示す説明図である。 トレースシミュレーションの実行処理を示す説明図である。 関連付けDBからの関連付け情報の入力例を示す説明図である。 トレースシミュレーションの実行例を示す説明図である。 トレースシミュレーションにおける入出力例を示す説明図である。 仮想マシンにおける基本的なオペレーションを示す説明図である。 複数のアプリケーションを実行するシステムにおける検証支援処理の適用手順を示す説明図である。 従来の仮想マシンの構成を示す説明図である。 従来の仮想マシンにおける基本的なオペレーションを示す説明図である。 従来の仮想マシンを用いたアプリケーションの検証支援処理を示す説明図である。
以下に添付図面を参照して、開示する技術の好適な実施の形態を詳細に説明する。まず、検証対象となるアプリケーションを任意のハードウェアによって動作させた際の実行形跡であるトレースを用意する。そして、このトレースの中から、所望のシステムにおいて、アプリケーションが指定された処理を実行した場合の実行形跡となるトレースのみを抽出する。ここで抽出されたトレースを用いて、アプリケーションのシミュレーションを行う。このシミュレーション結果を参照することによって、検証対象となるシステムにおいてアプリケーションが検証対象となる処理をおこなった場合の動作を検証可能にする。すなわち、システムのハードウェア環境の開発が完了していない設計段階から、このシステムにおいてアプリケーションを実行させた場合の高性能な性能評価を行うことができる。以下、このような動作を実現するための具体的な構成について説明する。
(検証支援処理の概要)
まず、本実施の形態にかかる検証支援処理の概要について説明する。図1は、本実施の形態にかかる検証支援処理の概要を示す説明図である。本実施の形態では、検証対象となるシステムを忠実に再現した仮想マシンを用意する必要はなく、任意のシステムにおいて検証対象となるアプリケーションを実行させた際の実行形跡を表すトレース群(後述する「生トレース」)を取得する。なお、上述したトレースを採取するための任意のシステムは、検証対象となるCPUや動作に関連するハードマクロを備えた構成がそれぞれあればよい。
また、検証対象となるシステムによってアプリケーションを実行させた場合と異なって、任意のシステムによってアプリケーションを実行させた場合に得られるトレース群には、検証したい動作以外の処理や任意のシステム内の他のハードウェアの挙動についての実行形跡が含まれている。さらに、採取したトレース群の中には任意のシステムに搭載されているOSの挙動についての実行形跡なども含まれている。これらの情報は、検証対象となるシステムにおけるアプリケーションの動作を検証する場合には、不必要な雑情報となる。
したがって、本実施の形態では、情報処理装置を用いて、これらのトレース群の中から検証したい動作に関するトレースのみを適切に抽出する。そして、抽出したトレースを動作させた場合の読み出しや戻り値などの関連付けを行い、抽出したトレースのみで、検証対象となる動作についてのシミュレーションを実行させる。そして、検証者が、このシミュレーション結果を検証することによって(検証ツールなどを利用してもよい)、検証対象となるシステム(ターゲットシステム)において、任意のアプリケーションを実行させた場合の性能評価を行うことができる。
上述のような検証支援処理を実現するため、本実施の形態では、A,B,C,Dの4つの処理を行う。
A:検証対象となるCPUの挙動に対応したトレースの抽出
B:検証対象となるハードマクロの状態遷移に対応したトレースの抽出
C:抽出したトレース同士の関連付け情報の作成
D:抽出したトレースを用いたトレースシミュレーション
また、A,Bの処理を開始するための前処理として、検証支援装処理をおこなう情報処理装置は、任意のシステムによってアプリケーションを実行させて採取したトレース群を生トレース101として取得するとともに、上述のアプリケーションを実行させた際の関連情報(OS挙動情報、ステート情報)102を取得しておく(ステップS100)。関連情報102とは、CPUやハードマクロなど、システム内のハードウェアの動作状態を表す情報である。この関連情報102は、生トレース101と同様に、任意のアプリケーションを実行した任意のシステムから採取することができる。なお、生トレース101ならびに関連情報102を採取する任意のシステムは、実機環境でもよいし、仮想マシンなどによるソフトウェア環境でもよい。
そして、情報処理装置は、Aの処理としてステップS100によって取得された関連情報102の中のOS挙動情報に基づいて生トレース101の中から検証者が着目した挙動に対応する着目トレース111を抽出する(ステップS110)。検証者が着目した挙動とは、検証したい動作に関する挙動である。
同じく、情報処理装置は、Bの処理としてステップS100によって取得された関連情報102の中のステート情報に基づいて生トレース101の中から検証者が着目した状態遷移に対応する着目トレース111を抽出する(ステップS110)。
つぎに、Cの処理として、情報処理装置は、抽出された着目トレース111を構成するトレース間の関連付け情報を作成する(ステップS120)。処理A,Bにて説明したように、着目トレースには、CPUの挙動を表すトレースとハードマクロの状態遷移を表すトレースとが存在する。したがって、トレース間の関連付け情報とは、CPUのどの挙動に応答してハードマクロの状態遷移が変化したかといった対応付けを表す情報である。着目トレース111自体は、任意のシステムによってアプリケーションが実行された実行形跡であるため、検証したい動作以外の処理が含まれていたり、他のハードウェアの呼び出し処理が含まれていることがあるため、CPUとハードマクロとが直接対応付けられているとは限らない。
したがって、Cの処理において、情報処理装置は、外部からトレース間の関連付け指示を受け付けることによって、抽出した着目トレース111がシームレスに動作するように関連付け情報を作成する。なお、ステップS120によって作成された関連付け情報は関連付けDB121に格納される。
最後に、Dの処理として情報処理装置は、A,Bによって抽出された着目トレース111と、Cの処理によって作成された関連付け情報が格納された関連付けDB121とを利用して検証者が検証したい動作についてトレースシミュレーションを行う(ステップS130)。上述したように、着目トレース111同士ではCPUとハードマクロとの対応関係が正しく設定されていない場合があるため、情報処理装置は、関連付けDB121に格納された関連付け情報を参照して着目トレース111のトレースシミュレーションを行う。
このように、本実施の形態にかかる検証支援処理を用いることによって、検証対象となるシステムのハードウェア環境が開発途中であったり、設計段階で実機の仕様が確定していないような早期の段階からシステムの性能評価が可能となる。以下に、本実施の形態にかかる検証支援処理を実現するための具体的な構成ならびに動作について順次説明する。
(仮想マシンの構成)
つぎに、本実施の形態にかかる情報処理装置100によって構成される仮想マシンの構成について説明する。図2は、本実施の形態にかかる情報処理装置によって実現される仮想マシンの構成を示す説明図である。本実施の形態の場合、仮想マシンによって検証対象となるシステムのハードウェア環境を忠実に再現する必要はなく、類似するハードウェア環境によって任意のアプリケーションを実行させた場合のトレースを採取すればよい。その後、採取したトレースを加工(トレースの抽出・関連付け)することによって、あたかも検証対象となるシステム上で実行させたかのようなシミュレーション結果を得ることができる。
したがって、本実施の形態にかかる情報処理装置100によって実現する仮想マシン210は、検証したい動作によってCPUから呼び出されるハードマクロを備えた構成であればよい。したがって、ここでは、図2のように、CPU211、ハードマクロ212およびメモリ213を備えたハードウェアモデル210aと、仮想マシンモニタ210bによって構成されている。しかしながら、仮想マシン210は、トレースを加工するための情報として、着目トレース(CPUトレース111a、ハードマクロトレース111b)の格納部と、関連付けDB121とが用意されている。
なお、仮想マシン210上で動作させるアプリケーション201は、検証対象となるシステムによって動作させたい(検証したい)アプリケーションを用意するが、ドライバ202、OS203は、仮想マシン210のハードウェアモデル210aに対応していればよい。
(情報処理装置のハードウェア構成)
まず、本実施の形態にかかる情報処理装置のハードウェア構成について説明する。図3は、情報処理装置100のハードウェア構成を示すブロック図である。図3において、情報処理装置100は、CPU(Central Processing Unit)301と、ROM(Read‐Only Memory)302と、RAM(Random Access Memory)303と、磁気ディスクドライブ304と、磁気ディスク305と、通信I/F(Interface)306と、入力デバイス307と、出力デバイス308と、を備えている。また、各構成部はバス310によってそれぞれ接続されている。
ここで、CPU301は、情報処理装置100の全体の制御を司る。ROM302は、ブートプログラムや、本実施の形態にかかる検証支援処理を実現するための検証支援プログラムなどの各種プログラムを記憶している。RAM303は、CPU301のワークエリアとして使用される。磁気ディスクドライブ304は、CPU301の制御にしたがって磁気ディスク305に対するデータの更新/参照を制御する。磁気ディスク305は、磁気ディスクドライブ304の制御で書き込まれたデータを記憶する。なお、図4のハードウェア構成では、記録媒体として、磁気ディスク305を用いているが、光ディスクや、フラッシュメモリなど他の記録媒体を利用してもよい。
通信I/F306は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク(NET)309に接続され、このネットワーク309を介して他の情報処理装置100やその他の外部装置に接続される。そして、通信I/F306は、ネットワーク309と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。通信I/F306の構成例としては、たとえばモデムやLANアダプタなどを採用することができる。
入力デバイス307は、情報処理装置100に対しての外部からの入力を受け付ける。入力デバイス307としては、具体的には、キーボード、マウスなどが挙げられる。なお、図2に示したような情報処理装置100によって、シミュレーションを行うアプリケーション201は、ROM302、RAM303、磁気ディスク305などの記憶領域にあらかじめ格納されていてもよいが、入力デバイス307から入力されて、上述の記憶領域に格納されてもよい。
キーボードの場合、たとえば、文字、数字、各種指示などの入力のためのキーを備え、データの入力を行う。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウスの場合、たとえば、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。また、ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
出力デバイス308は、情報処理装置100に配置されたデータや、シミュレーションの実行結果などを出力する。出力デバイス308としては、具体的には、ディスプレイ、プリンタなどが挙げられる。
ディスプレイの場合、たとえば、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイとしてさらに、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。また、プリンタの場合、たとえば、画像データや文書データを印刷する。さらに、レーザプリンタやインクジェットプリンタを採用することができる。
(情報処理装置の機能的構成)
つぎに、情報処理装置100の機能的構成について説明する。図4は、情報処理装置の機能的構成を示すブロック図である。図4のように、情報処理装置100は、取得部401と、挙動トレース検索部402と、状態トレース検索部403と、関連付け部404と、出力部405と、実行部406と、生成部407と、表示部408と、を含む構成である。この制御部となる機能(取得部401〜表示部408)は、具体的には、たとえば、図3に示したROM302、RAM303、磁気ディスク305などの記憶領域に記憶された検証支援プログラムをCPU301に実行させることにより、または、通信I/F306により、その機能を実現する。
取得部401は、生トレース101とOS挙動情報ならびにステート情報102とを取得する機能を有する。生トレース101とは、上述したように、任意のシステムにおいて任意のアプリケーションを実行させた場合のCPU211もしくはCPU211以外のハードマクロの各処理の実行時刻および実行内容の形跡を表すトレース群である。ここでCPU211以外のハードマクロに対する生トレースの場合は、当該ハードマクロ内の各動作ブロックが同時刻に行った実行内容の形跡が全て含まれる。また、OS挙動情報102aとは、上述した任意のアプリケーションを実行させた場合のシステム内のCPU211の挙動を表す情報である。そして、ステート情報102bとは、同じく上述した任意のアプリケーションを実行した場合のシステム内のCPU以外のハードウェア、すなわち、任意のアプリケーションの実行によってCPU211から呼び出されるハードマクロ内の各動作ブロックの状態遷移を表す。
なお、取得された生トレース101とOS挙動情報ならびにステート情報102は、一旦、RAM303、磁気ディスク305などの記憶領域に記憶される。また、これら取得部401によって取得される情報は、検証対象として想定されるシステムに近いハードウェア環境をもつ実機によって任意のアプリケーションを実行した場合の実行結果を取得してもよい。また、他の仮想マシンによって任意のアプリケーションを実行させた場合の実行結果を取得してもよい。
挙動トレース検索部402は、OS挙動情報によって表された挙動の中から任意の挙動が指定されると、この任意の挙動の実行時刻に基づいて、生トレース101として取得されたトレース群の中から上述の任意の挙動に対応するトレースを検索する機能を有する。
状態トレース検索部403は、ステート情報によって表された状態遷移の中から任意の状態遷移が指定されると、この任意の状態遷移の実行時刻に基づいて、生トレース101として取得されたトレース群の中から上述の任意の状態遷移に対応するトレースを検索する。
なお、挙動トレース検索部402および状態トレース検索部403によって検索されたトレースは、一旦、RAM303、磁気ディスク305などの記憶領域に記憶され、着目トレース111として抽出された状態で保存される。
また、上述した挙動トレース検索部402ならびに状態トレース検索部403では、着目するべき挙動ならびに状態遷移についての指示をそれぞれ独立して受付けていたが、特定の挙動が指定されると、自動的に挙動に対応する状態遷移を指定するような構成にしてもよい。このような構成にする場合には、挙動トレース検索部402によって任意の挙動が指定されると、この任意の挙動に応じたハードウェアの状態遷移を特定する特定部(不図示)を用意する。そして、状態トレース検索部403は、この特定部によって特定された状態遷移の実行時刻に基づいて、生トレース101の中から抽出して特定された状態遷移に対応するトレースを検索する。
関連付け部404は、上述の任意の挙動と任意の状態遷移とをそれぞれ実行させた場合の各動作の関連性についての指示を受け付けると、この指示に応じて挙動トレース検索部402によって検索されたトレースと状態トレース検索部403によって検索されたトレースとを関連付ける機能を有する。関連付け部404によって関連付けされた各トレースの対応情報は、関連付け情報としてRAM303、磁気ディスク305などの記憶領域に記憶される。
出力部405は、関連付け部404によって関連付けられたトレース群を挙動についてのシミュレーションを行うための専用のトレース(着目トレース111)として出力する機能を有する。出力トレースは、一旦、RAM303、磁気ディスク305などの記憶領域に記憶される。
実行部406は、出力部405によって出力されたシミュレーション用のトレースを用いて任意の挙動についてシミュレーションを実行する機能を有する。なお、図4にて説明した情報処理装置100の場合、実行部406を備え、情報処理装置100内で所望する動作についてのシミュレーションを実行することができるが、実行部406の機能を外部の機器によって実現させてもよい。実行部406の機能を外部に用意した場合、情報処理装置100は、シミュレーション用のトレース群を作成する装置として提供してもよい。このように、機能ごとに装置を分けることによって装置に求められる処理性能を低く設定することができる。また、既存の装置を利用してシミュレーションを実行させてもよい。
また、情報処理装置100は、検証者からのCPUの挙動に対応したトレースとハードマクロの状態遷移に対応したトレースとの関連付け指示103を受け付けているが、このとき、検証者による関連付け指示103の入力を補助する機能を備えていてもよい。図4の場合、生成部407によって、各トレースの状態を表すグラフ(後述のコールグラフ、ステートグラフ)を生成する機能が用意されている。
生成部407は、挙動トレース検索部402によって検索された各トレースと、当該各トレースにおいて読み出された関数情報とを対応させたコールグラフを生成する機能を有している。更に、生成部407は、状態トレース検索部403によって検索された各トレースと、当該各トレースにおいて遷移された状態情報とを対応させたステートグラフを生成する機能も有している。生成されたコールグラフ、ステートグラフは、一旦、RAM303、磁気ディスク305などの記憶領域に記憶された後、出力部405に出力させて検証者に提供してもよい。
抽出したトレースからグラフを生成することによって、検証者が各トレースの対応関係を容易に把握できるような情報を提供することができる。結果として、検証者の関連付け指示の入力操作を支援するため、検証者の負担を軽減させることができる。
表示部408は、出力部405によって出力された情報を情報処理装置100に接続可能な表示機器によって表示させる。なお、情報処理装置100の出力デバイス308としてディスプレイが用意されている場合には、このディスプレイを表示機器として表示させてもよい。表示部408によって表示される情報としては、挙動トレース検索部402、状態トレース検索部403によって検索されたトレース群(着目トレース111)や、上述した生成部407によって生成されたコールグラフ、ステートグラフ、また、実行部406によって実行されたシミュレーション結果121を表示させてもよい。
以上説明したように、情報処理装置100では、仮想マシン210を実現する機能部に加えて、トレースを加工して検証対象となる動作に着目したシミュレーションを実行するための機能部(取得部401〜表示部408)が用意されている。
つぎに、情報処理装置100によって図1にて説明したA〜Dの処理を行う際の具体的な動作について説明する。
(A,B:着目トレースの抽出)
まず、図1に示した処理A,Bについて説明する。これらの処理は、生トレース101の中から、検証対象となる処理に関するトレースを着目トレース111として抽出する処理である。そして、図5は、着目トレースの抽出処理を示す説明図である。図5のように、まず着目トレース111の抽出処理の前処理(ステップS100)として、情報処理装置100は、トレース生成が可能な実機環境もしくはトレース生成が可能なESL(Electronic System Level)環境を実現する(ステップS501,S502)。そして、これらの環境におけるアプリケーションの実行結果から、生トレース101、OS挙動情報102a、ステート情報102bを採取する。ESL環境とは、ESL設計によって作成されたソフトウェアモデルによって実現された動作環境である。ESL設計の場合、たとえば、C++などのような高級言語を使ってシステムの動作を表現し、さらにシステムをモデル化し、ソフトウェア/ハードウェアの構成要素を規定することができる。
つぎに、情報処理装置100は、着目トレース111の抽出のため、トレースの解析をおこなう(ステップS503)。トレースの解析とは、取得した生トレース101、OS挙動情報102a、ステート情報102bのデータを読み出し、検証対象として指定された動作に対応するトレースを、OS挙動情報102a、ステート情報102bを参照して検索する処理が含まれる。
ここで、図6は、生トレース、CPU挙動情報ならびにステート情報の構成を示す説明図である。ステップS100によって取得された生トレース101は、データ列600のような構成のデータ群である。また、同じくステップS100によって取得されたOS挙動情報102a、ステート情報102bは、それぞれデータ列610,620のような構成のデータ群である。
そして、CPUの挙動に対応するトレースを検索する場合には、ステップS503において、たとえば、着目するスレッド/プロセスの指定を受け付ける(一例であり、他にタスクを受け付けてもよい)。また、同じくハードマクロの状態遷移に対応するトレースを検索する場合には、ステップS503において、着目するステートの指定を受け付ける。
ステップS503によって、着目するスレッド/プロセスならびにステートが指定されると、取得したOS挙動情報102a、ステート情報102b内のスレッド/プロセスコード、ステートコードと一致するか否かを判断する(ステップS504)。一致しなければ(ステップS504:No)、ステップS503に戻り、つぎのトレースを解析する。そして、一致するOS挙動情報102a、ステート情報102b内のスレッド/プロセスコード、ステートコードと一致すると判断された場合(ステップS504:Yes)、生トレース101中から一致したOS挙動情報102a、ステート情報102bのタイムスタンプと対応するトレースを検索して、着目トレース111として抽出する。以下に、OS挙動情報102aを用いたトレース抽出と、ステート情報102bを用いたトレース抽出の具体例を挙げる。
<トレース抽出例(CPU)>
図7は、トレース抽出例(CPU)を示す説明図である。たとえば、仮想マシン210によって再現したハードウェアモデル210aから生トレース101とOS挙動情報102aが採取される。図7のように、pid(プロセスID)=520が着目されると、タイムスタンプ3920392を参照する。そして生トレース101からタイムスタンプ3920392〜4538293(つぎのプロセスのタイムスタンプ)の間のトレースをプロセス/タスク単位で抽出する。
その後、OS挙動情報に記述されている各アドレスに対応する関数名の設定が格納された関数マップ情報701を用いてコールグラフを作成した後、着目トレース111として提供される。このとき抽出した着目トレース111は、図7のように時間軸に沿って、あるまとまりの単位(図7の例では、関数単位)で視覚化して提供されてもよい。
<トレース抽出例(ハードマクロ)>
図8は、トレース抽出例(ハードマクロ)を示す説明図である。たとえば、仮想マシン210によって再現したハードウェアモデル210aから生トレース101とステート情報102bが採取される。図8のように、内部動作ブロックAとそれに対応するStateA=3(Run)が着目されると、タイムスタンプ3391323を参照する。そして生トレース101からタイムスタンプ3391323〜3508723(つぎステート変化時のタイムスタンプ)の間のトレースを着目する動作ブロックAに関して抽出する。
その後、ステート情報に記述されている各ステートコードに対応するステート名の設定が格納されたステートマップ情報801を用いてステートグラフを作成した後、着目トレース111として提供される。このとき抽出した着目トレース111は、図8のように、時間軸に沿って、あるまとまりの単位で階層化、視覚化してもよい。
(C:トレースの関連付け処理)
つぎに、図1にて説明したCのトレースの関連付け処理について説明する。図9は、トレースの関連付け処理を示す説明図である。図9に示した左半分の処理ステップS911〜S913は、図7にて説明した着目トレース111をコールグラフとして提供する処理を表している。同様に、右半分の処理ステップS921〜S923は、図8にて説明した着目トレース111をステートグラフとして提供する処理を表している。検証者は、作成されたコールグラフとステートグラフを比較して、各トレースの関連付け指示103を入力する。
図10は、トレースの関連付けの設定例を示す説明図である。情報処理装置100では、図10のように、タイムスタンプの時刻を基準にコールグラフおよびステートグラフによって表された動作を視覚的に提供することができる。したがって、検証者は、CPUの挙動とハードマクロのステートを比較して、各動作の関連箇所を設定する。たとえば、図10の例では、CPUのS1の挙動[Kick]の処理対象としてハードマクロのH1のステート変化[setup/start]に関連付けR1が指示されている。同様に、図10の例では、検証者によってR2,R3の関連付け指示が行われている。
図9の説明に戻り、関連付け指示103が入力されると、入力された指示に応じて関数もしくはステート情報とを相互に関連付けし(ステップS914)、この関連付け結果を関連付けDB121に格納する。
(D:トレースシミュレーション)
最後に、図1にて説明したDのトレースシミュレーションについて説明する。図11は、トレースシミュレーションの実行処理を示す説明図である。図11のように、情報処理装置100は、抽出トレース111と関連付けDB121を参照して、初期トレースの読み込みを行う(ステップS1101)。
つぎに、情報処理装置100は、関連付けDB121を参照して[現在のトレースポインタ]に処理すべき項目があるか否かを判断する(ステップS1102)。図12は、関連付けDBからの関連付け情報の入力例を示す説明図である。関連付けDB121から読込んだ関連付け情報はデータ列1200のようなデータによって構成されている。したがって、ステップS1102において、処理すべき項目があると判断された場合(ステップS1102:Yes)、つぎに、情報処理装置100は、対応するトレースポインタからのトレース実行を追加する(ステップS1103)。
そして、情報処理装置100は、トレース内容にしたがって内部情報とバスアクセスを実行する(ステップS1104)。なお、ステップS1102において、処理すべき項目がないと判断された場合(ステップS1102:No)にも、このステップS1104の処理に移行する。
ステップS1104の処理が終了すると、情報処理装置100は、着目トレース111の中に実行するトレースが残っているか否かを判断する(ステップS1105)。このステップS1105において、実行するトレースが残っていると判断された場合(ステップS1105:Yes)、ステップS1102の処理に戻り、情報処理装置100は、残りのトレース内容を実行する。そして、ステップS1105において、実行するトレースが残っていない(ステップS1105:No)と判断されると、着目トレース111を利用したトレースシミュレーションが完了したと判断され、情報処理装置100は、シミュレーション結果131を出力する。
ここで、図13は、トレースシミュレーションの実行例を示す説明図である。あるシステム上で任意のアプリケーションを実行する場合、図12によって説明したCPUとハードマクロに関する動作にも様々な要因が影響することがある。したがって、実際にトレースシミュレーションを実行する場合には、検証対象となるシステムに応じて想定される外乱(検証対象となるハードマクロ以外のハードウェアによって生じるノイズなど)に関するトレースを用意してシミュレーションを行うことによって、より精度の高い性能評価が可能になる。なお、外乱に関するトレースも実機環境から採取してもよいし、ソフトウェア環境から採取してもよい。
そして、図14は、トレースシミュレーションにおける入出力例を示す説明図である。入力情報として外乱を加えることによって、CPUならびにハードマクロに関しても図11〜13にて説明したトレースシミュレーションを実行することによって、外乱を含んだシミュレーション結果を得ることができる。
(仮想マシンにおける基本的なオペレーション)
つぎに、本実施の形態にかかる情報処理装置100によって実現された仮想マシン210によって検証対象となる動作を検証する場合の基本的なオペレーションについて説明する。図15は、仮想マシンにおける基本的なオペレーションを示す説明図である。図18では、従来の仮想マシン20の基本的なオペレーションについて説明したが、図15では、トレースを読み込んだシミュレーションがオペレーションの主たる処理となる。
具体的に説明すると、CPUの場合、まず、情報処理装置100は、CPUトレース(CPUの挙動に関する着目トレース)を読込み(ステップS1511)、関連付けDB121を参照する(ステップS1512)。その後、情報処理装置100は、内部状態を更新し(ステップS1513)、更新処理に応じてバスアクセスが行われる(ステップS1514)。更新が終了すると、実機にて同一の命令を実行した場合の時間と消費電力が加算され(ステップS1515,S1516)、ステップS1511に戻り、つぎのCPUトレースの読込みに移行する。このステップS1515,S1516によって加算される時間ならびに消費電力は、あらかじめ実機の性能に応じた予測値や実測値が用意されており、これらの値が加算される。
同様に、ハードマクロの場合、情報処理装置100は、ハードトレース(ハードマクロの挙動に関する着目トレース)を読込み(ステップS1521)、関連付けDB121を参照する(ステップS1522)。その後、内部状態を更新し(ステップS1523)、更新処理に応じてバスアクセスが行われる(ステップS1524)。更新が終了すると、実機にて同一の処理を実行した場合の時間と消費電力が加算され(ステップS1525,S1526)、ステップS1521に戻り、つぎのCPUトレースの読込みに移行する。ここでも、ステップS1524,S1525によって加算される時間ならびに消費電力は、あらかじめ実機の性能に応じた予測値や実測値が用意され、これらの値が加算される。
なお、上述したCPUならびにハードマクロそれぞれのオペレーションは、仮想マシンモニタ22によって同期制御が行われる。したがって、仮想マシン21よるオペレーション実行結果を取得することによって、実機と同様にアプリケーション11をハードウェアモデル21によって動作させた場合と同様にCPUならびにハードマクロが協働したシミュレーション結果を得て動作を検証することができる。
(複数のアプリケーションの検証)
上述した検証支援処理の場合、検証対象システムにおいてある特定のアプリケーションを実行する場合の動作について着目して性能評価を行ったが、実際には検証対象システムでは、用途の異なる複数のアプリケーションが実行されるような場合が大半を占める。そして、検証者からも、これら複数のアプリケーションの検証が可能になるような技術が求められている。したがって、以下に、検証対象システムによって実行される複数のアプリケーションについてそれぞれトレースシミュレーションを実行する場合の検証支援処理の適用手順について説明する。
図16は、複数のアプリケーションを実行するシステムにおける検証支援処理の適用手順を示す説明図である。図16のように、同一の検証対象システムにおいて動作する複数のアプリケーションの動作についての検証を行う場合には、Step1〜Step3に大別された3つの処理が必要となる。
・Step1:検証対象システムをSW(アプリ)、HW(マクロ)など検証対象として必要な構成に分割する。図16の例では、画面制御、動画、音声の3つの検証対象の構成ごとに分割されている。
・Setp2:任意のシステムから選択した検証対象の構成の動作に最も類似するシステムを選択し、生トレース101ならびに関連情報102を採取する。このとき、検証対象システムの構成により近づけるため、必要により任意のシステムに部品追加してから生トレース101を採取してもよい。
・Step3:最後に、各構成について本実施の形態にかかる検証支援処理(A〜Cの処理)を実行し、着目トレース111を抽出する。抽出した構成ごとの着目トレース111は、検証対象システムの構成情報や同期情報などに基づいて再構築される。そして、再構築したトレース群を用いて検証対象となるシステムのトレースシミュレーションが実行される。
このように、実際には、複数のハードウェアからなるシステムを証対象システム内で複数のアプリケーションを動作させた場合の性能評価が求められており、上述した3つのステップによって柔軟に対応することができる。また、図16のように画面制御、動画、音声の構成ごとに抽出されたトレースA,B,Cは、同様の構成を用いる他の検証対象システムについての性能評価の際に再利用することができる。
たとえば、あるシステムAにおいて、Step1の処理によって分割した検証対象として図15の画像制御に相当する構成含まれていれば、トレースAをそのまま利用して、Step3の処理の際にシステムAの構成に応じて着目トレースを再構築すればよい。
このように、本実施の形態では、ハードウェア環境やOSにかかわらず、トレースを基準にシミュレーションを実行する手法をとることにより、従来困難であった、システムの開発段階、さらには、システム自体がまだ存在しないような初期段階であっても、検証対象となるシステムの性能評価を可能にすることができる。また、ハードウェア環境の開発と並行してアプリケーションを検証できるため、検証結果をハードウェア環境の開発にフィードバックするためより高精度な検証を早期に実現することができる。
また、一旦採取したトレースは、他のシステムを検証する際に再利用することができる。したがって、本実施の形態にかかる検証支援処理を利用するほど、システムの検証に要する時間やコストの削減が見込まれる。
また、本実施の形態にかかる検証支援処理は、上述した情報処理装置100としての実現にとどまらず、たとえば、特定アプリケーション向けハードウェアや、マルチコアシステムの性能・電力見積りを行う低電力化ツールにも応用が可能である。
なお、本実施の形態で説明した検証支援方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)コンピュータを、
任意のシステムにおいて任意のアプリケーションを実行させた場合の各処理の実行時刻および実行内容の形跡を表すトレース群と、前記任意のアプリケーションを実行させた場合の前記任意のシステムのプロセッサの挙動を表す挙動情報および前記プロセッサ以外の任意のハードウェアの状態遷移を表す状態情報とを取得する取得手順、
前記挙動情報によって表された挙動の中から任意の挙動が指定されると、当該任意の挙動の実行時刻に基づいて、前記取得手順によって取得されたトレース群の中から前記指定された挙動に対応するトレースを検索する挙動トレース検索手順、
前記状態情報によって表された状態遷移の中から任意の状態遷移が指定されると、当該任意の状態遷移の実行時刻に基づいて、前記取得手順によって取得されたトレース群の中から前記任意の状態遷移に対応するトレースを検索する状態トレース検索手順、
前記任意の挙動と前記任意の状態遷移とをそれぞれ実行させた場合の動作の関連性についての指示を受け付けると、当該指示に応じて前記挙動トレース検索手順によって検索されたトレースと前記状態トレース検索手順によって検索されたトレースとを関連付ける関連付け手順、
前記関連付け手順によって関連付けられたトレース群を前記挙動のシミュレーション用のトレースとして出力する出力手順、
として機能させることを特徴とする検証支援プログラム。
(付記2)前記コンピュータを、さらに、
前記挙動トレース検索手順において、前記任意の挙動が指定されると、当該任意の挙動に応じた前記任意のハードウェアの状態遷移を特定する特定手順として機能させ、
前記状態トレース検索手順は、前記特定手順によって特定された状態遷移の実行時刻に基づいて、前記取得手順によって取得されたトレース群の中から前記状態遷移に対応するトレースを検索することを特徴とする付記1に記載の検証支援プログラム。
(付記3)前記コンピュータを、さらに、
前記挙動トレース検索手順によって検索された各トレースと、当該各トレースにおいて読み出された関数情報を対応させたコールグラフを生成するコールグラフ生成手順、として機能させ、
前記出力手順は、前記コールグラフ生成手順によって生成されたコールグラフを出力することを特徴とする付記1または2に記載の検証支援プログラム。
(付記4)前記コンピュータを、さらに、
前記状態トレース検索手順によって検索された各トレースと、当該各トレースにおいて遷移された状態情報とを対応させたステートグラフを生成するステートグラフ生成手順、として機能させ、
前記出力手順は、前記ステートグラフ生成手順によって生成されたステートグラフを出力することを特徴とする付記1〜3のいずれか一つに記載の検証支援プログラム。
(付記5)前記コンピュータを、さらに、
前記出力手順によって出力された情報を前記コンピュータに接続可能な表示機器によって表示させる表示手順、として機能させることを特徴とする付記1〜4のいずれか一つに記載の検証支援プログラム。
(付記6)前記コンピュータを、さらに、
前記出力手順によって出力されたシミュレーション用のトレースを用いて前記任意の挙動についてシミュレーションを実行する実行手順、
として機能させることを特徴とする付記1〜5のいずれか一つに記載の検証支援プログラム。
(付記7)任意のシステムにおいて任意のアプリケーションを実行させた場合の各処理の実行時刻および実行内容の形跡を表すトレース群と、前記任意のアプリケーションを実行させた場合の前記任意のシステムのプロセッサの挙動を表す挙動情報および前記プロセッサ以外の任意のハードウェアの状態遷移を表す状態情報とを取得する取得手段と、
前記挙動情報によって表された挙動の中から任意の挙動が指定されると、当該任意の挙動の実行時刻に基づいて、前記取得手段によって取得されたトレース群の中から前記指定された挙動に対応するトレースを検索する挙動トレース検索手段と、
前記状態情報によって表された状態遷移の中から任意の状態遷移が指定されると、当該任意の状態遷移の実行時刻に基づいて、前記取得手段によって取得されたトレース群の中から前記任意の状態遷移に対応するトレースを検索する状態トレース検索手段と、
前記任意の挙動と前記任意の状態遷移とをそれぞれ実行させた場合の動作の関連性についての指示を受け付けると、当該指示に応じて前記挙動トレース検索手段によって検索されたトレースと前記状態トレース検索手段によって検索されたトレースとを関連付ける関連付け手段と、
前記関連付け手段によって関連付けられたトレース群を前記挙動のシミュレーション用のトレースとして出力する出力手段と、
を備えることを特徴とする情報処理装置。
(付記8)コンピュータが、
任意のシステムにおいて任意のアプリケーションを実行させた場合の各処理の実行時刻および実行内容の形跡を表すトレース群と、前記任意のアプリケーションを実行させた場合の前記任意のシステムのプロセッサの挙動を表す挙動情報および前記プロセッサ以外の任意のハードウェアの状態遷移を表す状態情報とを取得する取得工程と、
前記挙動情報によって表された挙動の中から任意の挙動が指定されると、当該任意の挙動の実行時刻に基づいて、前記取得工程によって取得されたトレース群の中から前記指定された挙動に対応するトレースを検索する挙動トレース検索工程と、
前記状態情報によって表された状態遷移の中から任意の状態遷移が指定されると、当該任意の状態遷移の実行時刻に基づいて、前記取得工程によって取得されたトレース群の中から前記任意の状態遷移に対応するトレースを検索する状態トレース検索工程と、
前記任意の挙動と前記任意の状態遷移とをそれぞれ実行させた場合の動作の関連性についての指示を受け付けると、当該指示に応じて前記挙動トレース検索工程によって検索されたトレースと前記状態トレース検索工程によって検索されたトレースとを関連付ける関連付け工程と、
前記関連付け工程によって関連付けられたトレース群を前記挙動のシミュレーション用のトレースとして出力する出力工程と、
を実行することを特徴とする検証支援方法。
100 情報処理装置
101 生トレース
102 関連情報(OS挙動情報、ステート情報)
121 関連付けDB
201 アプリケーション
202 ドライバ
203 OS
210a ハードウェアモデル
210b 仮想マシンモニタ
301 CPU
302 ROM
303 RAM
304 磁気ディスクドライブ
305 磁気ディスク
306 通信I/F
307 入力デバイス
308 出力デバイス
310 バス
401 取得部
402 挙動トレース検索部
403 状態トレース検索部
404 関連付け部
405 出力部
406 実行部
407 生成部
408 表示部

Claims (6)

  1. コンピュータ
    任意のシステムにおいて任意のアプリケーションを実行させた場合の各処理の実行時刻および実行内容の形跡を表すトレース群と、前記任意のアプリケーションを実行させた場合の前記任意のシステムのプロセッサの挙動を表す挙動情報および前記プロセッサ以外の任意のハードウェアの状態遷移を表す状態情報とを取得する取得手順、
    前記挙動情報によって表された挙動の中から任意の挙動が指定されると、当該任意の挙動の実行時刻に基づいて、前記取得手順によって取得されたトレース群の中から前記指定された挙動に対応するトレースを検索する挙動トレース検索手順、
    前記状態情報によって表された状態遷移の中から任意の状態遷移が指定されると、当該任意の状態遷移の実行時刻に基づいて、前記取得手順によって取得されたトレース群の中から前記任意の状態遷移に対応するトレースを検索する状態トレース検索手順、
    前記任意の挙動と前記任意の状態遷移とをそれぞれ実行させた場合の動作の関連性についての指示を受け付けると、当該指示に応じて前記挙動トレース検索手順によって検索されたトレースと前記状態トレース検索手順によって検索されたトレースとを関連付ける関連付け手順、
    前記関連付け手順によって関連付けられたトレース群を前記挙動のシミュレーション用のトレースとして出力する出力手順、
    を実行させることを特徴とする検証支援プログラム。
  2. 前記コンピュータ、さらに、
    前記挙動トレース検索手順によって検索された各トレースと、当該各トレースにおいて読み出された関数情報を対応させたコールグラフを生成するコールグラフ生成手順、を実行させ、
    前記出力手順は、前記コールグラフ生成手順によって生成されたコールグラフを出力することを特徴とする請求項1に記載の検証支援プログラム。
  3. 前記コンピュータ、さらに、
    前記状態トレース検索手順によって検索された各トレースと、当該各トレースにおいて遷移された状態情報とを対応させたステートグラフを生成するステートグラフ生成手順、を実行させ、
    前記出力手順は、前記ステートグラフ生成手順によって生成されたステートグラフを出力することを特徴とする請求項1または2に記載の検証支援プログラム。
  4. 前記コンピュータ、さらに、
    前記出力手順によって出力されたシミュレーション用のトレースを用いて前記任意の挙動についてシミュレーションを実行する実行手順、
    を実行させることを特徴とする請求項1〜3のいずれか一つに記載の検証支援プログラム。
  5. 任意のシステムにおいて任意のアプリケーションを実行させた場合の各処理の実行時刻および実行内容の形跡を表すトレース群と、前記任意のアプリケーションを実行させた場合の前記任意のシステムのプロセッサの挙動を表す挙動情報および前記プロセッサ以外の任意のハードウェアの状態遷移を表す状態情報とを取得する取得手段と、
    前記挙動情報によって表された挙動の中から任意の挙動が指定されると、当該任意の挙動の実行時刻に基づいて、前記取得手段によって取得されたトレース群の中から前記指定された挙動に対応するトレースを検索する挙動トレース検索手段と、
    前記状態情報によって表された状態遷移の中から任意の状態遷移が指定されると、当該任意の状態遷移の実行時刻に基づいて、前記取得手段によって取得されたトレース群の中
    から前記任意の状態遷移に対応するトレースを検索する状態トレース検索手段と、
    前記任意の挙動と前記任意の状態遷移とをそれぞれ実行させた場合の動作の関連性についての指示を受け付けると、当該指示に応じて前記挙動トレース検索手段によって検索されたトレースと前記状態トレース検索手段によって検索されたトレースとを関連付ける関連付け手段と、
    前記関連付け手段によって関連付けられたトレース群を前記挙動のシミュレーション用のトレースとして出力する出力手段と、
    を備えることを特徴とする情報処理装置。
  6. コンピュータが、
    任意のシステムにおいて任意のアプリケーションを実行させた場合の各処理の実行時刻および実行内容の形跡を表すトレース群と、前記任意のアプリケーションを実行させた場合の前記任意のシステムのプロセッサの挙動を表す挙動情報および前記プロセッサ以外の任意のハードウェアの状態遷移を表す状態情報とを取得する取得工程と、
    前記挙動情報によって表された挙動の中から任意の挙動が指定されると、当該任意の挙動の実行時刻に基づいて、前記取得工程によって取得されたトレース群の中から前記指定された挙動に対応するトレースを検索する挙動トレース検索工程と、
    前記状態情報によって表された状態遷移の中から任意の状態遷移が指定されると、当該任意の状態遷移の実行時刻に基づいて、前記取得工程によって取得されたトレース群の中から前記任意の状態遷移に対応するトレースを検索する状態トレース検索工程と、
    前記任意の挙動と前記任意の状態遷移とをそれぞれ実行させた場合の動作の関連性についての指示を受け付けると、当該指示に応じて前記挙動トレース検索工程によって検索されたトレースと前記状態トレース検索工程によって検索されたトレースとを関連付ける関連付け工程と、
    前記関連付け工程によって関連付けられたトレース群を前記挙動のシミュレーション用のトレースとして出力する出力工程と、
    を実行することを特徴とする検証支援方法。
JP2009054148A 2009-03-06 2009-03-06 検証支援プログラム、情報処理装置および検証支援方法 Active JP5298967B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009054148A JP5298967B2 (ja) 2009-03-06 2009-03-06 検証支援プログラム、情報処理装置および検証支援方法
US12/631,441 US8479168B2 (en) 2009-03-06 2009-12-04 Computer-readable recording medium storing verification support program, information processor, and verification support method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009054148A JP5298967B2 (ja) 2009-03-06 2009-03-06 検証支援プログラム、情報処理装置および検証支援方法

Publications (2)

Publication Number Publication Date
JP2010211316A JP2010211316A (ja) 2010-09-24
JP5298967B2 true JP5298967B2 (ja) 2013-09-25

Family

ID=42679373

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009054148A Active JP5298967B2 (ja) 2009-03-06 2009-03-06 検証支援プログラム、情報処理装置および検証支援方法

Country Status (2)

Country Link
US (1) US8479168B2 (ja)
JP (1) JP5298967B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8776028B1 (en) 2009-04-04 2014-07-08 Parallels IP Holdings GmbH Virtual execution environment for software delivery and feedback
US9747187B2 (en) 2010-10-27 2017-08-29 International Business Machines Corporation Simulating black box test results using information from white box testing
US9195570B2 (en) 2013-09-27 2015-11-24 International Business Machines Corporation Progressive black-box testing of computer software applications
US9846627B2 (en) * 2015-02-13 2017-12-19 North Carolina State University Systems and methods for modeling memory access behavior and memory traffic timing behavior
US9858167B2 (en) * 2015-12-17 2018-01-02 Intel Corporation Monitoring the operation of a processor
CN108965343A (zh) * 2018-09-29 2018-12-07 武汉极意网络科技有限公司 验证安全策略动态更新方法、系统、服务器及存储介质
FR3091106B1 (fr) * 2018-12-20 2021-02-12 Commissariat Energie Atomique Système de supervision formelle de communications

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08241327A (ja) 1995-03-06 1996-09-17 Nippon Telegr & Teleph Corp <Ntt> データベースシステムの性能チューニング装置及びデータベースシステムの性能チューニング方法
JP4503203B2 (ja) * 2001-07-03 2010-07-14 富士通株式会社 情報処理装置を評価するためのテストプログラムを作成する方法、装置、およびそのための処理を記述したプログラム
US7898977B2 (en) * 2002-03-01 2011-03-01 Enterasys Networks Inc. Using signal characteristics to determine the physical location of devices in a data network
JP2004251694A (ja) * 2003-02-19 2004-09-09 Yamaha Corp 道案内機能を有する携帯端末装置及び携帯端末装置を利用した道案内方法
JP4469576B2 (ja) * 2003-08-19 2010-05-26 株式会社東芝 トレースデータ処理装置、トレースデータ処理方法およびトレースデータ処理プログラム
JP4842783B2 (ja) * 2006-11-30 2011-12-21 三菱電機株式会社 情報処理装置及び情報処理方法及びプログラム

Also Published As

Publication number Publication date
JP2010211316A (ja) 2010-09-24
US20100229158A1 (en) 2010-09-09
US8479168B2 (en) 2013-07-02

Similar Documents

Publication Publication Date Title
JP5298967B2 (ja) 検証支援プログラム、情報処理装置および検証支援方法
JP5198132B2 (ja) 状態遷移テスト支援装置、状態遷移テスト支援プログラム、および状態遷移テスト支援方法
JP2006350686A (ja) 命令セット・シミュレータ生成装置及びシミュレータ生成方法
JP4842783B2 (ja) 情報処理装置及び情報処理方法及びプログラム
JPWO2020008991A1 (ja) 検証自動化装置、検証自動化方法、およびプログラム
JP2007025497A (ja) 教育支援プログラムおよび教育支援装置
JP2008009861A (ja) システム構成管理方式
JP2008305019A (ja) シミュレーション装置及びシミュレーション方法及びプログラム
JP2005148901A (ja) ジョブスケジューリングシステム
US9262060B1 (en) Method and apparatus for performing viewmarking
JP4602312B2 (ja) 機器設定装置、機器設定方法、情報取得装置、情報取得方法、記録媒体及びプログラム
JP2006293548A (ja) 業務プロセストラッキングプログラム、該プログラムを記録した記録媒体、および業務プロセストラッキング装置
JP4881769B2 (ja) 半導体集積回路設計支援装置、半導体集積回路設計支援方法、半導体集積回路設計支援プログラム
WO2021205589A1 (ja) テストスクリプト生成装置、テストスクリプト生成方法及びプログラム
JP4583260B2 (ja) 汎用計算機の操作手順作成装置、プログラム、及び記憶媒体
JP5162531B2 (ja) シミュレーション支援方法、シミュレーション支援プログラムを記憶した記憶媒体およびシミュレーション支援装置
JP5971399B2 (ja) 実行フロー作成支援プログラム
US20020062208A1 (en) Method and apparatus for visualization of microprocessor pipeline operation
EP4155944B1 (en) Database troubleshooting with automated functionality
CN102782657B (zh) 动作检验装置及动作检验方法
CN101901145A (zh) 图控化程序单晶片的方法
EP4254108A1 (en) Operating assistance system and operating assistance method
JP2022096311A (ja) 情報処理装置、情報処理方法およびプログラム
JPH10161891A (ja) タスク余裕度解析装置、タスク余裕度解析方法及びタスク余裕度解析プログラムを格納した記録媒体
JP2007265358A (ja) 情報処理装置、プログラム及び業務アプリケーション導入方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111107

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130226

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130411

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130521

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130603

R150 Certificate of patent or registration of utility model

Ref document number: 5298967

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150