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

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

Info

Publication number
JP5444724B2
JP5444724B2 JP2009009873A JP2009009873A JP5444724B2 JP 5444724 B2 JP5444724 B2 JP 5444724B2 JP 2009009873 A JP2009009873 A JP 2009009873A JP 2009009873 A JP2009009873 A JP 2009009873A JP 5444724 B2 JP5444724 B2 JP 5444724B2
Authority
JP
Japan
Prior art keywords
application
simulation
hardware
executed
virtual machine
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.)
Expired - Fee Related
Application number
JP2009009873A
Other languages
English (en)
Other versions
JP2010170188A (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 JP2009009873A priority Critical patent/JP5444724B2/ja
Priority to US12/570,241 priority patent/US20100186005A1/en
Publication of JP2010170188A publication Critical patent/JP2010170188A/ja
Application granted granted Critical
Publication of JP5444724B2 publication Critical patent/JP5444724B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable

Landscapes

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

Description

この発明は、シミュレーションの実行結果を用いて所定のアプリケーションを検証するための検証支援プログラム、情報処理装置および検証支援方法に関する。
従来より、特定のOS(Operating System)上で動作するアプリケーションを開発するには、このOSを動作させるハードウェア環境を考慮していなければならない。また、既存のハードウェア環境に、3Dアクセラレータなどのあらたなハードマクロを追加する場合には、ハードマクロに対応したドライバを用意しなければ、アプリケーションからハードマクロを呼び出すような処理を実行できない。したがって、既存のシステムに、任意のハードマクロが追加されたようなハードウェア環境においての実行を目的としたアプリケーションを開発する場合には、まず、追加されたハードマクロを呼び出すためのドライバを用意しなければならない。
図14は、従来のアプリケーション開発ステップを示す説明図である。任意のハードマクロを追加する場合、図14のように、まず、ハードマクロ自体の開発を行ない、ハードマクロの開発が完了した後、続いてハードマクロに対応したドライバの開発に移行する(ステップ1)。同様に、ドライバの開発が完了した後にアプリケーションの開発が行なわれる(ステップ2)。そして、ステップ2にて開発されたアプリケーションをハードウェア上にて実行させることによって、検証処理、すなわち、アプリケーションの性能・電力の見積りが可能となる(ステップ3)。
近年では、上述のようにハードマクロやドライバの開発を待たずにアプリケーションの実機評価を可能にする技術として、アプリケーションとハードウェアとの橋渡しをする評価用制御プログラムが提供されている。このようなプログラムを利用することによって、システム開発の早期段階でアプリケーションの評価も可能になっている。
しかしながら、上述したようなアプリケーションとハードウェアとの橋渡しをする評価用制御プログラムの場合、実際にアプリケーションを実行させる開発対象のハードウェアとは異なる特定のハードウェア上で仮想API(Application Program Interface)を用いてソフトウェア的に開発対象のハードウェアを実現している。すなわち、代替のハードウェア環境下にてアプリケーションのシミュレーションを行なっているに過ぎなかった。したがって、実際にアプリケーションを実行させるハードウェア環境とは異なるため、シミュレーション結果として高精度の情報を得ることができないという問題があった。
高精度なシミュレーション結果を得るには、図14にて説明したように、ハードウェア環境に追加されるハードマクロの開発ならびにハードマクロに対応したドライバが開発されるまで、アプリケーションの開発は待機状態となる。結果として、アプリケーションの開発に至るまでに多大な時間を要してしまうという問題があった。
また、図14に示した従来の開発ステップでは、ハードマクロとドライバとの開発が完了してから初めてアプリケーションの開発が可能となる。したがって、開発したアプリケーションのシミュレーション結果をハードマクロの構成にフィードバックしたい場合には、再度、ハードマクロの開発に戻り、ハードマクロの修正を行なった後、修正したハードマクロに対応したドライバを開発しなければならない。結果として、検証結果を活用できたとしても、アプリケーションの開発が大幅に遅延してしまうという問題があった。
特開2000−293403号公報
この発明は、上述した従来技術による問題点を解消するため、ハードウェアやドライバの開発を待たずにアプリケーションの評価を可能にする検証支援プログラム、情報処理装置および検証支援方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、開示する技術は、コンピュータが、システムのハードウェア環境をソフトウェアによって実現した仮想マシンを用いて前記システムによって実行させるアプリケーションのシミュレーションを行なう処理と、前記ハードウェア環境に追加するハードウェアのシミュレーションモデルと、当該追加するハードウェアを呼び出す箇所に特定のコードが挿入されたアプリケーションを取得する処理と、取得されたアプリケーションが、前記実行手段によって実行されると、当該実行中のアプリケーションの中から前記特定のコードが挿入されている箇所を検出する処理と、前記特定のコードが挿入されていると検出された箇所では、取得されたシミュレーションモデルを用いて前記アプリケーションのシミュレーションを行なう処理と、前記アプリケーションのシミュレーション結果を出力する処理と、を含むことを要件とする。
開示する技術によれば、ハードウェアやドライバの開発を待たずにアプリケーションの評価を可能にするという効果を奏する。
本実施の形態にかかる検証支援処理の概要を示す説明図である。 本実施の形態にかかる仮想マシンの構成を示す説明図である。 仮想マシンにおける基本的なオペレーションの手順を示す説明図である。 情報処理装置のハードウェア構成を示すブロック図である。 情報処理装置におけるシミュレーション実行手順を示す説明図である。 情報処理装置における仮想マシンの機能的構成を示すブロック図である。 仮想マシンを用いたシミュレーションの実行手順を示す説明図である。 仮想マシンによるハードマクロ呼び出し例を示すモデル図である。 ハードマクロ呼び出しを含むアプリケーションの記述例を示す説明図である。 マーク検出に応じた仮想マシンのシミュレーション制御を示す説明図である。 アプリケーションのマーク挿入例を示す説明図である。 ハードマクロを含む仮想マシンのシミュレーション手順を示す説明図である。 本実施の形態を適用した場合のアプリケーション開発ステップを示す説明図である。 従来のアプリケーション開発ステップを示す説明図である。
以下に添付図面を参照して、この検証支援プログラム、情報処理装置および検証支援方法の好適な実施の形態を詳細に説明する。この検証支援プログラム、情報処理装置および検証支援方法では、ドライバが用意されていないハードウェア(ハードマクロ)を呼び出す処理が記述された箇所に特定のコード(たとえば仮想マシンによって判別可能な所定のマーク)を含むアプリケーションを用意する。そして、このアプリケーションを仮想マシンによって実行させることによって、アプリケーションをシミュレートする。仮想マシンでは、特定のコードが検出された箇所については、ハードマクロのシミュレーションモデルの情報を用いてアプリケーションのシミュレーションを行なう。すなわち、ドライバを用いることなくアプリケーションから直接に仮想マシンを呼び出すことができる。以下、このような動作を可能にする検証支援プログラム、情報処理装置および検証支援方法を実現するための具体的な構成について説明する。
(検証支援処理の概要)
まず、本実施の形態にかかる検証支援処理の概要について説明する。図1は、本実施の形態にかかる検証支援処理の概要を示す説明図である。図1のように、本実施の形態では、情報処理装置100において実現されたシミュレーションツールによって、検証対象となるアプリケーション120のシミュレーションを行なうことにより、アプリケーション120の実行時間や消費電力などの評価をすることができる。
本実施の形態にかかる検証支援処理では、情報処理装置100上に、アプリケーション120を実行させるハードウェア環境をソフトウェアによって実現した仮想マシン110を用意する。この仮想マシン110によって、アプリケーション120のシミュレーションを行なうが、仮想マシン110によって実現可能なハードウェア環境は、対応したドライバが用意された開発済みのハードウェアに限定される。
したがって、情報処理装置100では、ドライバが用意されていないハードマクロを呼び出すようなアプリケーション120のシミュレーションを行なうために、ハードマクロに対応したシミュレーションモデル130を用意する。また、情報処理装置100によってシミュレーションを行なうアプリケーション120には、ハードマクロ呼び出しを行なう処理が記述された箇所に特定のコード(たとえば、アプリケーション120の斜線部分)を挿入しておく。
仮想マシン110では、検証対象となるアプリケーション120が読み込まれると、順次シミュレーションを行ない、特定のコードが挿入されていると検出された箇所については、シミュレーションモデル130の情報を用いてシミュレーションを行なう。通常であれば、仮想マシン110にはハードマクロに対応したドライバが用意されていないため、ハードマクロを呼び出す処理を含むアプリケーション120を実行することはできなかった。
ところが、情報処理装置100では、アプリケーション120に挿入された特定のコードに基づいて、仮想マシン110によるシミュレーションを、シミュレーションモデル130の情報を用いたシミュレーションに切り換え、シームレスにアプリケーションを実行することができる。このように、本実施の形態にかかる検証支援処理では、仮想マシン110によって実行されたアプリケーション120のシミュレーション結果を参照してアプリケーションの性能・電力の予測値を得ることができる。
以下に、本実施の形態にかかる検証支援処理を実現するための具体的な構成ならびに動作について順次説明する。
(仮想マシンの構成)
まず、仮想マシン110の構成について説明する。図2は、本実施の形態にかかる仮想マシンの構成を示す説明図である。図2のように、本実施の形態にかかる情報処理装置値100では、ソフトウェアによって仮想マシン110を構成する。仮想マシン110では、アプリケーション101を実行させるターゲットシステムのハードウェア構成をハードウェアモデル110aとしてソフトウェア的に実現している。また、図2に示した仮想マシン110によって実現されたハードウェアモデル110aは、CPU(モデル)111、ハードマクロ(モデル)112、メモリ(モデル)113を備えている。さらに、仮想マシン110には、ハードウェアモデル110aによって実現された各ハードウェア(CPU111〜メモリ113)の動作を制御する仮想マシンモニタ110bが用意されている。
そして、情報処理装置100には、上述した仮想マシン110を動作させるためのOS103と、ハードウェアモデル110aのハードウェア環境に対応したドライバ102と、OS103上で実行させるアプリケーション101とが用意されている。なお、ここで用意されたドライバ102は、ハードウェアモデル110aを構成するハードマクロ112を呼び出すためのソフトウェアであるが、上述したように、追加したハードマクロ112の中で、対応するドライバ102が開発されていない部分については、用意する必要はない。
(仮想マシンにおける基本的なオペレーション手順)
つぎに、仮想マシン110の基本的なオペレーション手順について説明する。上述した構成の仮想マシン110は、アプリケーション101を読み込むと、所定のオペレーションを実行する。この実行結果が、オペレーションのシミュレーション結果として出力される。
図3は、仮想マシンにおける基本的なオペレーションの手順を示す説明図である。図3には、仮想マシン110によって実行される基本的なオペレーション手順を示している。仮想マシン110では、アプリケーション101が読み込まれると、アプリケーション101の記述に応じて、CPU111、ハードマクロ112それぞれによって所定のオペレーションが実行される。また、メモリ113は、CPU111、ハードマクロ112のオペレーションに応じて適宜アクセスされる。
具体的に説明すると、CPU111は、アプリケーション101から命令フェッチを行ない(ステップS311)、フェッチした命令を実行する(ステップS312)。そして、命令の実行に応じてレジスタ/メモリを更新し(ステップS313)、この更新処理に応じてバスアクセスが行なわれる(ステップS314)。更新が終了すると、実機にて同一の命令を実行した場合の時間と消費電力が加算され(ステップS315,316)、ステップS311に戻り、つぎの命令フェッチを行なう。このステップS315,316によって加算される時間ならびに消費電力は、あらかじめ実機の性能に応じた予測値や実測値が用意され、これらの値が加算される。
同様に、ハードマクロ112では、アプリケーション101の記述に応じたアルゴリズムを実行し(ステップS321)、実行したアルゴリズムに応じてレジスタ/メモリを更新すると(ステップS322)、この更新処理に応じてバスアクセスが行なわれる(ステップS323)。更新が終了すると、ここでも、実機にて同一のアルゴリズムを実行した場合の時間と消費電力が加算され(ステップS324,325)、ステップS321に戻り、つぎのアルゴリズムを実行する。ここでも、ステップS324,325によって加算される時間ならびに消費電力は、あらかじめ実機の性能に応じた予測値や実測値が用意され、これらの値が加算される。
なお、上述したCPU111ならびにハードマクロ112それぞれのオペレーションは、仮想マシンモニタ110bによって同期制御が行なわれる。したがって、仮想マシン110によるオペレーション実行結果を取得することによって、実機と同様にCPU111ならびにハードマクロ112が協働したシミュレーション結果を得ることができる。
(情報処理装置のハードウェア構成)
つぎに、情報処理装置100の具体的なハードウェア構成について説明する。図4は、情報処理装置のハードウェア構成を示すブロック図である。図4において、情報処理装置100は、CPU(Central Processing Unit)401と、ROM(Read‐Only Memory)402と、RAM(Random Access Memory)403と、磁気ディスクドライブ404と、磁気ディスク405と、通信I/F(Interface)406と、入力デバイス407と、出力デバイス408と、を備えている。また、各構成部はバス410によってそれぞれ接続されている。
ここで、CPU401は、情報処理装置100の全体の制御を司る。ROM402は、ブートプログラムや、本実施の形態にかかる検証支援処理を実現するための検証支援プログラムなどの各種プログラムを記憶している。RAM403は、CPU401のワークエリアとして使用される。磁気ディスクドライブ404は、CPU401の制御にしたがって磁気ディスク405に対するデータの更新/参照を制御する。磁気ディスク405は、磁気ディスクドライブ404の制御で書き込まれたデータを記憶する。なお、図4のハードウェア構成では、記録媒体として、磁気ディスク405を用いているが、光ディスクや、フラッシュメモリなど他の記録媒体を利用してもよい。
通信I/F406は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワーク(NET)409に接続され、このネットワーク409を介して他の情報処理装置100やその他の外部装置に接続される。そして、通信I/F406は、ネットワーク409と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。通信I/F406の構成例としては、たとえばモデムやLANアダプタなどを採用することができる。
入力デバイス407は、情報処理装置100に対しての外部からの入力を受け付ける。入力デバイス407としては、具体的には、キーボード、マウスなどが挙げられる。なお、図2に示したような情報処理装置100によって、シミュレーションを行なうアプリケーション101は、ROM402、RAM403、磁気ディスク405などの記憶領域にあらかじめ格納されていてもよいが、入力デバイス407から入力されて、上述の記憶領域に格納されてもよい。
キーボードの場合、たとえば、文字、数字、各種指示などの入力のためのキーを備え、データの入力を行なう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウスの場合、たとえば、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。また、ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
出力デバイス408は、情報処理装置100に配置されたデータや、シミュレーションの実行結果などを出力する。出力デバイス408としては、具体的には、ディスプレイ、プリンタなどが挙げられる。
ディスプレイの場合、たとえば、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイとしてさらに、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。また、プリンタの場合、たとえば、画像データや文書データを印刷する。さらに、レーザプリンタやインクジェットプリンタを採用することができる。
以上説明したように、本実施の形態にかかる情報処理装置100は、仮想マシン110を用いてアプリケーション101のシミュレーションを実行することができるが(図3参照)、ドライバ102が用意されていないハードマクロ112に関しては、アプリケーション101から正しく処理を呼び出すことができない。したがって、ドライバ102が用意されていないハードマクロ112を含むアプリケーション101を上述した仮想マシン110によって実行させるための構成について説明する。
(情報処理装置におけるシミュレーション実行手順)
まず、情報処理装置100によって、ドライバ102が用意されていないハードマクロ112を含むアプリケーション101のシミュレーションを実行するための手順について説明する。図5は、情報処理装置におけるシミュレーション実行手順を示す説明図である。
図5のように、情報処理装置100では、仮想マシン110への入力情報を用意するために、アプリケーション501と、ハードマクロ仕様書502と、ドライバパラメータ503とが用意される。これらの情報のうち、ドライバパラメータ503以外の情報は、仮想マシン110への入力情報とするための加工処理が行なわれる。
まず、検証対象となるアプリケーション501には、ドライバ102が用意されてないハードマクロ112の読み出し箇所には、特定のコードが挿入されている。ここでは、特定のコードの挿入例として未定義命令、もしくは割り込み命令を使ったマークが埋め込まれる。また、アプリケーション501は、所定のプログラミング言語によって記述されたコード群であるため、仮想マシン110によってシミュレーションを行なうには、コンパイラ・アセンブラによってアプリケーションバイナリ511に変換する処理(ステップS510)が必要となる。
また、ハードマクロ仕様書502には、ドライバ102が用意されていないハードマクロ112の動作仕様が設定されている。したがって、ハードマクロ仕様書502を用いて、ハードマクロ112のシミュレーションモデルであるCモデル521を作成する(ステップS520)。作成されたCモデル521は、仮想マシン110に組み込まれる。
ドライバパラメータ503には、アプリケーション501がハードマクロ112を呼び出す際や、ハードマクロ112から他のハードウェアに処理が移る際に実行される命令や、実行時間、消費電力の予測値が用意されている。これらのドライバパラメータ503は、ハードマクロ112を呼び出す際の設定値として参照される(詳細については後述する)。
また、仮想マシン110は、図3にて説明した基本的なオペレーションの他に、入力されたアプリケーションバイナリ511に挿入されたマークを検出する機能と、検出されたマークに基づいて、ドライバ102/OS103のシミュレーションを実行する機能とを備えている。また、仮想マシン110は、マークの検出に応じて命令ブレークを実行するように設定することもできる。なお、どのようなマークを検出した場合に命令ブレークを実行するか、さらには、アプリケーション501に含まれるハードマクロ112を呼び出す処理のうち、どの部分にマークを挿入するかについては、検証者がアプリケーション501の検証目的に応じて適宜設定することができる。
なお、Cモデル521の作成に利用されたハードマクロ仕様書502は、実チップ540を制作する場合にも利用される。この場合、まず、ハードマクロ仕様書502からRTL(Register Transfer Level)記述を作成する(ステップS530)。そして、作成されたRTL記述/ネットリスト(RTL記述から生成)531を用いて実チップ540が製造される。また、製造された実チップ540によってアプリケーション501を実行させた場合の性能・電力は、仮想マシン110によるシミュレーション結果によって得られた、性能・電力予測と比較することによって、シミュレーションの精度を確認することもできる。
(仮想マシンの機能的構成)
つぎに、情報処理装置100によって実現される仮想マシン110の機能的構成について説明する。図6は、情報処理装置における仮想マシンの機能的構成を示すブロック図である。情報処理装置100によって実現された仮想マシン110は、取得部601と、実行部602と、検出部603と、制御部604と、出力部605と、を含む構成である。この制御部となる機能(取得部601〜出力部605)は、具体的には、たとえば、図4に示したROM402、RAM403、磁気ディスク405などの記憶領域に記憶されたプログラムをCPU401に実行させることにより、または、通信I/F406により、その機能を実現する。
取得部601は、既存のハードウェア環境に追加するハードウェアのシミュレーションモデルと、検証対象となるアプリケーション501を実行させるためのアプリケーションバイナリ511を取得する機能を有する。取得部601によって取得されるハードウェア環境に追加するハードウェアのシミュレーションモデルとは、たとえば、追加されたハードマクロ112のCモデル521である。また、アプリケーションバイナリ511は、上述したようにアプリケーション501を変換して生成されているため、ハードマクロ112の呼び出し処理を行なう箇所にマークが挿入されている。取得されたアプリケーションバイナリ511は、一旦、RAM403、磁気ディスク405などの記憶領域に記憶される。
実行部602は、仮想マシン110を用いてアプリケーションバイナリ511を実行することによって、検証対象となるアプリケーション501のシミュレーションを行なう機能を有する。シミュレーションとは、通常は、図3にて説明したようなCPU111、ハードマクロ112のオペレーションの実行を意味する。
検出部603は、実行部602によって、アプリケーションバイナリ511の実行が開始されると、実行中のアプリケーションバイナリ511の中から特定のコード(たとえば、上述したようなマーク)が挿入されている箇所を検出する機能を有する。
制御部604は、検出部603によるマークの検出に応じて、実行部602におけるアプリケーションバイナリ511の実行を制御する。具体的には、マークが挿入されているとして検出された箇所では、取得部601によって取得されたCモデル521の情報を用いてアプリケーションバイナリ511を実行する。すなわち制御部604は、図3にて説明したようなCPU111、ハードマクロ112のオペレーションの実行の際に、Cモデル521として用意されたシミュレーション情報が利用されるように、実行部602を制御する。
また、制御部604は、検出部603によって検出されたマークに設定されているコマンドに応じて、実行部602によるアプリケーション501のシミュレーション実行時にCモデル521の情報を用いるか否かや、Cモデル521の情報を用いたシミュレーションの実行開始ならびに終了の有無を制御することもできる。
出力部605は、実行部602によるアプリケーション501のシミュレーション結果、すなわち、アプリケーションバイナリ511の実行結果を出力する。出力形式としては、たとえば、出力デバイス408として用意されたディスプレイへの表示、プリンタへの印刷出力や、通信I/F406による外部装置への送信がある。また、RAM403、磁気ディスク405などの記憶領域に記憶することとしてもよい。
また、図5にて説明したように、仮想マシン110によってCモデル521の情報を利用したシミュレーションを行なう場合には、ドライバパラメータ503を参照することができる。したがって、制御部604では、ドライバパラメータ503に設定されているパラメータを予測値として、Cモデル521の情報を用いたシミュレーションに利用させる事もできる。
(仮想マシンにおけるシミュレーションの実行手順)
つぎに、上述した構成をもつ仮想マシン110におけるシミュレーションの実行手順について説明する。図7は、仮想マシンを用いたシミュレーションの実行手順を示す説明図である。図7では、アプリケーション501のシミュレーションにおいて、通常のシミュレーション実行中にハードマクロ112を呼び出す処理が発生し、ハードマクロ112に対応したシミュレーションを実行した後、再度、通常のシミュレーション実行に戻る場合の処理手順を表している。
したがって、仮想マシン110では、実行中のアプリケーションの記述に応じて、処理を制御する対象が、CPU(モデル)111とハードマクロ(モデル)112とのいずれかに切り換わる。ステップS701,S702では、通常のシミュレーションが実行されるため、CPU111によって処理される。そして、ハードマクロ112が呼び出されてからのステップS703〜ステップS705の処理は、ハードマクロ112によって実行される。ハードマクロ112によるシミュレーションが終了して、通常のシミュレーションが復帰するステップS706は、再びCPU111によって処理される。
また、図7に示した一連の処理において、特徴となるのが、破線円で囲んだ710,730の処理と、720の構成である。710では、アプリケーション501(実際にはアプリケーションバイナリ511)によってハードマクロ112を呼び出す箇所に挿入されたマークを認識することによって仮想マシン110の制御対象を切り換える処理が行なわれている。このとき、マークを挿入する箇所としては、たとえば、未定義命令/未使用割込/ブレークなど記述部分が挙げられる。
また、720は、アプリケーション501において、仮想マシン110における実行が想定されるドライバ102やOS103が実際にハードマクロ112を呼び出す場合、呼び出し処理の前後の実行が予想される実行命令列や、実行時間・消費電力値などをドライバパラメータ503として格納する構成を表している。
そして、730では、710の処理によって仮想マシン110の制御対象がハードマクロ112に切り換わった後、720の構成として用意されたドライバパラメータ503を参照して、ドライバ102ならびにOS103のコードによるシミュレート(ステップS703)と、ハードマクロ112によるCモデル521の呼び出し(ステップS704)と、Cモデル521による呼び出し終了後のドライバ102ならびにOS103のコードによるシミュレート(ステップS705)とを実行することにより、シミュレーションの制御対象をCPU111に戻す処理が行なわれる。仮想マシン110は、シミュレーションの制御対象をCPU111に戻すことによって、通常のシミュレーションを復帰させることができる(ステップS706)。
ここで、図8は、仮想マシンによるハードマクロ呼び出し例を示すモデル図である。図8に示すように、仮想マシン110は、マークが挿入されたアプリケーション501を実行すると、ハードマクロ112の呼び出し処理を実現するために、ハードマクロ112のCモデル521を参照する。また、図8に示したモデル図において、上述した710,730の処理と、720の構成の対応する箇所には、図7と同様の符号の破線円を施してある。
・710の処理(アプリケーションへのマーク挿入)
つぎに、710の処理について詳細に説明する。図8に示した、アプリケーション501では、「call_hw」記述箇所にマークが挿入されている。図9は、ハードマクロ呼び出しを含むアプリケーションの記述例を示す説明図である。アプリケーション501の「call_hw」記述箇所には、記述列900のようなマークと、対応する命令がセットになって記述されている。図10は、マーク検出に応じた仮想マシンのシミュレーション制御を示す説明図である。
図9の記述例900の処理内容を、図10を用いて説明すると、まず、マーク1の埋め込みによって、仮想マシン110によって実行中の性能・電力観測を停止させる。マーク1をトリガにして仮想マシン110のCPU111によって実行されていた性能・電力観測が停止されると、つぎに、仮想マシン110へのパラメータを設定する。ここで設定されるパラメータは、ドライバパラメータ503が参照される。
パラメータが設定されると、つぎに、マーク2をトリガにして、仮想マシン110の制御対象が切り換わり、ハードマクロ112によるドライバシミュレーションが実行される。その後、仮想マシン110によるドライバシミュレーションが終了すると、マーク1をトリガにして切り換えられた元のパラメータを受け取って、仮想マシン110に再度設定する。そして、マーク3をトリガにして、仮想マシン110のCPU111によって実行されていた性能・電力観測を再開させる。なお、マーク1〜マーク2の間のパラメータ設定時と、ドライバシミュレーションの終了〜マーク3までの間のパラメータ受け取り時には、仮想マシン110のCPU111、ハードマクロ112のいずれも性能・電力観測を停止させる。
また、それぞれのマーク挿入は以下の様な手法により実現することができる、たとえば、call_hw内に#pragmaなどでは、仮想マシン110のCPU111では、未定義命令となるコードを埋め込み、その実行に伴う未定義例外に関するシミュレーション結果を仮想マシン110によって捕捉することもできる。また、call_hw内に未使用のソフト割り込み(SWI)を埋め込み、その実行に伴う割り込みのシミュレーション結果を、仮想マシン110によって捕捉することもできる。さらに、call_hw内の特定箇所に仮想マシン110のCPU111の持つ命令ブレークを設定しておき、この命令ブレークをトリガとしたシミュレーション結果を仮想マシン110によって捕捉することもできる。
図11は、アプリケーションのマーク挿入例を示す説明図である。記述例1110は、asm関数を用いた未定義命令を、マーク(mark1〜mark3)を用いて挿入している。また、記述例1120では、asm関数を用いた割り込み命令を、マーク(mark1〜mark3)を用いて挿入している。この他にも、デバッガなどがもつ命令ブレーク機能を、マーク(mark1〜mark3)を用いて挿入することもできる。
・720の構成(ドライバパラメータへのパラメータ格納)
つぎに、720の構成について詳しく説明する。720の構成とは、ドライバパラメータ503の構成であり、このドライバパラメータ503へ格納する各パラメータ値はそれぞれ以下のような手法によって得られている。まず、実行時間・電力情報に関するパラメータは、ハードマクロ112に対応したドライバ102に類似したドライバを仮想マシン110上で実行させ、その際の実行時間・電力情報が利用される。なお類似したドライバを利用せずに、検証者の経験に基づいて、マニュアルで実行時間・電力情報に関するパラメータを格納してもよい。また、ハードマクロ112のシミュレーションを行なう際に設定するパラメータは、Cモデル521の情報から別途取得して格納する。
その他にも、想定もしくは目標とされるドライバ102の処理内容に合わせて、ハードマクロ112のシミュレーションの実行時の前処理・後処理によって想定される実行時間と電力情報値をパラメータとして生成して、格納してもよい。
・730の処理(仮想マシン110によるシミュレーション)
最後に、730の処理について詳しく説明する。730では、仮想マシン110によるシミュレーションが実行される。ここで、図12は、ハードマクロを含む仮想マシンのシミュレーション手順を示す説明図である。図12のように、仮想マシン110では、まず、前処理部のシミュレートを行なう(ステップS1201)。このステップS1201の処理では、ドライバパラメータ503に格納されている前処理部分の性能・電力情報に基づいて、シミュレーション時間と消費電力値が調整(加算)される。
ステップS1201の処理が完了すると、続いて、ハードマクロ112のCモデル521部分を呼び出して実行する(ステップS1202)。ステップS1302の処理が完了すると、後処理部のシミュレートを行なう(ステップS1203)。このステップS1203の処理では、ドライバパラメータ503に格納されている後処理部分の性能・電力情報に基づいて、シミュレーション時間と消費電力値とが調整(加算)される。
このように、仮想マシン110ではマークを抽出することによって正しい処理位置にて、Cモデル521を用いたシミュレーションを実行することができる。さらに、ドライバパラメータ503に格納されたパラメータ値を参照することによって、正しいシミュレーション結果を得ることができる。
(本実施の形態にかかる検証支援処理を適用した場合の開発ステップ)
ここで、図13は、本実施の形態を適用した場合のアプリケーション開発ステップを示す説明図である。図13のように、本実施の形態にかかる情報処理装置100を用いた場合、従来の開発ステップ(図14参照)のように、ハードマクロならびにドライバの開発を待つことなく、早期段階でアプリケーションの開発に着手することができる。具体的には、図13のように、ハードマクロ開発が始まった時点でも、ハードマクロのCモデルが用意されていれば、即座にアプリケーションの開発に着手することができる。
また、ハードマクロならびにハードマクロに対応したドライバの開発と並行してアプリケーションを検証できる。したがって、この検証結果をハードマクロとドライバの開発にフィードバックすることができる。ハードマクロ開発工程やドライバ開発工程においても早期の段階で、アプリケーションのシミュレーション結果を得ることができるため、性能評価をハードウェアにフィードバックすることもできる。
以上説明したように、本実施の形態によれば、仮想マシン110は、アプリケーション501から検出したマークに応じて、通常のシミュレーションと、Cモデル521を用いたシミュレーションとのいずれかの実行内容に切り換える。このようにCモデル521を用いたシミュレーションを実行することによって、本来はドライバ102経由でしか呼び出すことができないハードマクロ112の呼び出し処理を、あたかもドライバ102経由で呼び出したかのように実行させることができる。
このように、本実施の形態では、ドライバの開発に至っていない、開発ステップの早期の段階であっても、仮想マシン110を用いることによって、アプリケーションをハードマクロ込みで動作させることが可能となる。したがって、ハードマクロの開発を待たずとも、アプリケーションのシステムレベルでの性能・電力の測定・予測が可能となり、高精度な検証環境を提供することができる。
また、本実施の形態にかかる検証支援処理は、上述した情報処理装置100としての実現にとどまらず、たとえば、特定アプリケーション向けハードウェアや、マルチコアシステムの性能・電力見積りを行なう低電力化ツールにも応用が可能である。
なお、本実施の形態で説明した検証支援方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネットなどのネットワークを介して配布することが可能な媒体であってもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)コンピュータを、
システムのハードウェア環境をソフトウェアによって実現した仮想マシンを用いて前記システムによって実行させるアプリケーションのシミュレーションを行なう実行手段、
前記ハードウェア環境に追加するハードウェアのシミュレーションモデルと、当該追加するハードウェアを呼び出す箇所に特定のコードが挿入されたアプリケーションを取得する取得手段、
前記取得手段によって取得されたアプリケーションが、前記実行手段によって実行されると、当該実行中のアプリケーションの中から前記特定のコードが挿入されている箇所を検出する検出手段、
前記実行手段を制御して、前記検出手段によって前記特定のコードが挿入されていると検出された箇所では、前記取得手段によって取得されたシミュレーションモデルの情報を用いて前記アプリケーションのシミュレーションを行なう制御手段、
前記実行手段による前記アプリケーションのシミュレーション結果を出力する出力手段、
として機能させることを特徴とする検証支援プログラム。
(付記2)前記制御手段は、前記検出手段によって検出された前記特定のコードに設定されているコマンドに応じて、前記仮想マシンを用いた前記アプリケーションのシミュレーションと、前記シミュレーションモデルの情報を用いた前記アプリケーションのシミュレーションの実行開始ならびに終了を制御することを特徴とする付記1に記載の検証支援プログラム。
(付記3)前記取得手段は、さらに、前記アプリケーションが前記追加するハードウェアを呼び出す際のパラメータの予測値を取得し、
前記制御手段は、前記検出手段によって前記特定のコードが挿入されていると検出された箇所では、前記予測値をパラメータとして設定した後、前記取得手段によって取得されたシミュレーションモデルを用いて前記アプリケーションのシミュレーションを行なわせることを特徴とする付記1または2に記載の検証支援プログラム。
(付記4)前記制御手段は、前記ミュレーションモデルを用いた前記アプリケーションのシミュレーションを終了させた場合、当該シミュレーション終了時に設定されているパラメータを、前記仮想マシンを用いた前記アプリケーションのシミュレーションに設定して、当該シミュレーションを行なわせることを特徴とする付記1〜3のいずれか一つに記載の検証支援プログラム。
(付記5)前記取得手段は、前記追加するハードウェアに関する未定義命令箇所に特定のコードが挿入されたアプリケーションを取得することを特徴とする付記1〜4のいずれか一つに記載の検証支援プログラム。
(付記6)前記取得手段は、前記追加するハードウェアに関する未使用割り込み箇所に特定のコードが挿入されたアプリケーションを取得することを特徴とする付記1〜4のいずれか一つに記載の検証支援プログラム。
(付記7)前記取得手段は、前記追加するハードウェアに関するブレーク箇所に特定のコードが挿入されたアプリケーションを取得することを特徴とする付記1〜4のいずれか一つに記載の検証支援プログラム。
(付記8)システムのハードウェア環境をソフトウェアによって実現した仮想マシンを用いて前記システムによって実行させるアプリケーションのシミュレーションを行なう実行手段と、
前記ハードウェア環境に追加するハードウェアのシミュレーションモデルと、当該追加するハードウェアを呼び出す箇所に特定のコードが挿入されたアプリケーションを取得する取得手段と、
前記取得手段によって取得されたアプリケーションが、前記実行手段によって実行されると、当該実行中のアプリケーションの中から前記特定のコードが挿入されている箇所を検出する検出手段と、
前記実行手段を制御して、前記検出手段によって前記特定のコードが挿入されていると検出された箇所では、前記取得手段によって取得されたシミュレーションモデルの情報を用いて前記アプリケーションのシミュレーションを行なう制御手段と、
前記実行手段による前記アプリケーションのシミュレーション結果を出力する出力手段と、
を備えた検証支援機能を有することを特徴とする情報処理装置。
(付記9)コンピュータが、
システムのハードウェア環境をソフトウェアによって実現した仮想マシンを用いて前記システムによって実行させるアプリケーションのシミュレーションを行なう実行工程と、
前記ハードウェア環境に追加するハードウェアのシミュレーションモデルと、当該追加するハードウェアを呼び出す箇所に特定のコードが挿入されたアプリケーションを取得する取得工程と、
前記取得工程によって取得されたアプリケーションが、前記実行工程によって実行されると、当該実行中のアプリケーションの中から前記特定のコードが挿入されている箇所を検出する検出工程と、
前記検出工程によって前記特定のコードが挿入されていると検出された箇所では、前記取得工程によって取得されたシミュレーションモデルの情報を用いた前記アプリケーションのシミュレーションに切り換えて実行する切り換えを行なう切換工程と、
前記アプリケーションのシミュレーション結果を出力する出力工程と、
を実行することを特徴とする検証支援方法。
100 情報処理装置
101,120,501 アプリケーション
102 ドライバ
103 OS(Operating System)
110 仮想マシン
110a ハードウェアモデル
110b 仮想マシンモニタ
111 CPU(モデル)
112 ハードマクロ(モデル)
113 メモリ(モデル)
130 シミュレーションモデル
502 ハードマクロ仕様書
503 ドライバパラメータ
511 アプリケーションバイナリ
521 Cモデル
531 RTL記述/ネットリスト
601 取得部
602 実行部
603 検出部
604 制御部
605 出力部

Claims (6)

  1. コンピュータを、
    システムのハードウェア環境をソフトウェアによって実現した仮想マシンを用いて前記システムによって実行させるアプリケーションのシミュレーションを行なう実行手段、
    前記ハードウェア環境に追加するハードウェアのシミュレーションモデルと、当該追加するハードウェアを呼び出す箇所に特定のコードが挿入されたアプリケーションを取得する取得手段、
    前記取得手段によって取得されたアプリケーションが、前記実行手段によって実行されると、当該実行中のアプリケーションの中から前記特定のコードが挿入されている箇所を検出する検出手段、
    前記実行手段を制御して、前記検出手段によって前記特定のコードが挿入されていると検出された箇所では、前記取得手段によって取得されたシミュレーションモデルの情報を用いて前記アプリケーションのシミュレーションを行なう制御手段、
    前記実行手段による前記アプリケーションのシミュレーション結果を出力する出力手段、
    として機能させることを特徴とする検証支援プログラム。
  2. 前記制御手段は、前記検出手段によって検出された前記特定のコードに設定されているコマンドに応じて、前記仮想マシンを用いた前記アプリケーションのシミュレーションと、前記シミュレーションモデルの情報を用いた前記アプリケーションのシミュレーションの実行開始ならびに終了を制御することを特徴とする請求項1に記載の検証支援プログラム。
  3. 前記取得手段は、さらに、前記アプリケーションが前記追加するハードウェアを呼び出す際のパラメータの予測値を取得し、
    前記制御手段は、前記検出手段によって前記特定のコードが挿入されていると検出された箇所では、前記予測値をパラメータとして設定した後、前記取得手段によって取得されたシミュレーションモデルを用いて前記アプリケーションのシミュレーションを行なわせることを特徴とする請求項1または2に記載の検証支援プログラム。
  4. 前記制御手段は、前記シミュレーションモデルを用いた前記アプリケーションのシミュレーションを終了させた場合、当該シミュレーション終了時に設定されているパラメータを、前記仮想マシンを用いた前記アプリケーションのシミュレーションに設定して、当該シミュレーションを行なわせることを特徴とする請求項1〜3のいずれか一つに記載の検証支援プログラム。
  5. システムのハードウェア環境をソフトウェアによって実現した仮想マシンを用いて前記システムによって実行させるアプリケーションのシミュレーションを行なう実行手段と、
    前記ハードウェア環境に追加するハードウェアのシミュレーションモデルと、当該追加するハードウェアを呼び出す箇所に特定のコードが挿入されたアプリケーションを取得する取得手段と、
    前記取得手段によって取得されたアプリケーションが、前記実行手段によって実行されると、当該実行中のアプリケーションの中から前記特定のコードが挿入されている箇所を検出する検出手段と、
    前記実行手段を制御して、前記検出手段によって前記特定のコードが挿入されていると検出された箇所では、前記取得手段によって取得されたシミュレーションモデルの情報を用いて前記アプリケーションのシミュレーションを行なう制御手段と、
    前記実行手段による前記アプリケーションのシミュレーション結果を出力する出力手段と、
    を備えた検証支援機能を有することを特徴とする情報処理装置。
  6. コンピュータが、
    システムのハードウェア環境をソフトウェアによって実現した仮想マシンを用いて前記システムによって実行させるアプリケーションのシミュレーションを行なう実行工程と、
    前記ハードウェア環境に追加するハードウェアのシミュレーションモデルと、当該追加するハードウェアを呼び出す箇所に特定のコードが挿入されたアプリケーションを取得する取得工程と、
    前記取得工程によって取得されたアプリケーションが、前記実行工程によって実行されると、当該実行中のアプリケーションの中から前記特定のコードが挿入されている箇所を検出する検出工程と、
    前記検出工程によって前記特定のコードが挿入されていると検出された箇所では、前記取得工程によって取得されたシミュレーションモデルの情報を用いた前記アプリケーションのシミュレーションに切り換えて実行する切り換えを行なう切換工程と、
    前記アプリケーションのシミュレーション結果を出力する出力工程と、
    を実行することを特徴とする検証支援方法。
JP2009009873A 2009-01-20 2009-01-20 検証支援プログラム、情報処理装置および検証支援方法 Expired - Fee Related JP5444724B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009009873A JP5444724B2 (ja) 2009-01-20 2009-01-20 検証支援プログラム、情報処理装置および検証支援方法
US12/570,241 US20100186005A1 (en) 2009-01-20 2009-09-30 Computer readable recording medium storing verification support program, information processing apparatus and verification support method

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JP2010170188A JP2010170188A (ja) 2010-08-05
JP5444724B2 true JP5444724B2 (ja) 2014-03-19

Family

ID=42337976

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009009873A Expired - Fee Related JP5444724B2 (ja) 2009-01-20 2009-01-20 検証支援プログラム、情報処理装置および検証支援方法

Country Status (2)

Country Link
US (1) US20100186005A1 (ja)
JP (1) JP5444724B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8650552B1 (en) * 2012-06-22 2014-02-11 Google Inc. Methods and systems for simulation of energy consumption in mobile operating system emulators
JP6538529B2 (ja) * 2015-11-17 2019-07-03 株式会社東芝 仮想試験システム、映像作成方法およびプログラム
CN106940647B (zh) * 2017-03-20 2020-09-04 广州视源电子科技股份有限公司 代码管理方法和装置
EP3841475B1 (en) * 2018-09-28 2024-02-21 Siemens Industry Software Inc. Method and aparatus for verifying a software system
KR20220035611A (ko) * 2020-09-14 2022-03-22 현대자동차주식회사 모의 시험 장치 및 그 제어 방법

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6301655B1 (en) * 1997-09-15 2001-10-09 California Institute Of Technology Exception processing in asynchronous processor
JPH11194960A (ja) * 1997-12-26 1999-07-21 Toshiba Corp ソフトウェア試験装置
US6598105B1 (en) * 1999-04-13 2003-07-22 Microsoft Corporation Interrupt arbiter for a computing system
US6553565B2 (en) * 1999-04-23 2003-04-22 Sun Microsystems, Inc Method and apparatus for debugging optimized code
JP2001175504A (ja) * 1999-10-05 2001-06-29 Matsushita Electric Ind Co Ltd デバイスシミュレータ管理装置
JP2001216178A (ja) * 2000-02-04 2001-08-10 Seiko Epson Corp シミュレーション装置およびシミュレーション方法ならびにシミュレーションプログラムを記憶した記憶媒体
US8180943B1 (en) * 2003-03-27 2012-05-15 Nvidia Corporation Method and apparatus for latency based thread scheduling
US7055007B2 (en) * 2003-04-10 2006-05-30 Arm Limited Data processor memory circuit
JP2005018485A (ja) * 2003-06-26 2005-01-20 Nec Corp ファームウェアデバッグ方法
US7624383B2 (en) * 2004-04-30 2009-11-24 Cornell University System for and method of improving discrete event simulation using virtual machines
US20070052715A1 (en) * 2005-09-07 2007-03-08 Konstantin Levit-Gurevich Device, system and method of graphics processing
US7702843B1 (en) * 2006-04-27 2010-04-20 Vmware, Inc. Determining memory conditions in a virtual machine
JP5020562B2 (ja) * 2006-07-25 2012-09-05 株式会社 液晶先端技術開発センター シミュレーション装置、シミュレーション方法、及び半導体装置の製造方法

Also Published As

Publication number Publication date
US20100186005A1 (en) 2010-07-22
JP2010170188A (ja) 2010-08-05

Similar Documents

Publication Publication Date Title
JP4975544B2 (ja) シミュレーション装置及びプログラム
US10360322B2 (en) Simulation of virtual processors
US20060282248A1 (en) Integrated simulation system
JP5444724B2 (ja) 検証支援プログラム、情報処理装置および検証支援方法
JP5298967B2 (ja) 検証支援プログラム、情報処理装置および検証支援方法
JP5672311B2 (ja) 同期処理方法
JP5034916B2 (ja) 性能評価モデル生成方法、システム性能評価方法、及び性能評価モデル生成装置
US7043717B2 (en) Debugging apparatus and method
Pohl et al. vMAGIC—automatic code generation for VHDL
US8886512B2 (en) Simulation apparatus, computer-readable recording medium, and method
JP5542643B2 (ja) シミュレーション装置及びシミュレーションプログラム
JP2009075965A (ja) ソフトウェア開発方法及びソフトウェア開発装置
JP4342392B2 (ja) ソフトウェア検証モデル生成方法
JP5262909B2 (ja) 検証支援プログラム、検証支援装置および検証支援方法
JP5374965B2 (ja) シミュレーション制御プログラム、シミュレーション制御装置、およびシミュレーション制御方法
JP5262774B2 (ja) シミュレーション制御プログラム、シミュレーション装置、およびシミュレーション制御方法
JP5226848B2 (ja) シミュレーション装置及びプログラム
JP5021584B2 (ja) マイコンシミュレータ、そのシミュレーション方法、プログラム、及びコンピュータ読み取り可能な媒体
JP5390464B2 (ja) シミュレーション装置、シミュレーション装置の制御方法およびプログラム
JP2009223861A (ja) 論理検証システム
JP2008033472A (ja) プリンタの自動評価システム
Baklashov An on-line memory state validation using shadow memory cloning
WO2018163387A1 (ja) 解析装置、解析方法及び解析プログラム
JP2001222565A (ja) ハードウエア記述の検証システム及びその検証方法
JP4802130B2 (ja) 図面作成プログラム、図面作成装置および図面作成方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111006

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130626

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130709

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130909

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: 20131126

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131209

R150 Certificate of patent or registration of utility model

Ref document number: 5444724

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees