JP2004145830A - シミュレーション装置、シミュレーション方法及びシミュレーションプログラム - Google Patents

シミュレーション装置、シミュレーション方法及びシミュレーションプログラム Download PDF

Info

Publication number
JP2004145830A
JP2004145830A JP2002312819A JP2002312819A JP2004145830A JP 2004145830 A JP2004145830 A JP 2004145830A JP 2002312819 A JP2002312819 A JP 2002312819A JP 2002312819 A JP2002312819 A JP 2002312819A JP 2004145830 A JP2004145830 A JP 2004145830A
Authority
JP
Japan
Prior art keywords
data
hardware
simulator
software
processing
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.)
Pending
Application number
JP2002312819A
Other languages
English (en)
Inventor
Satoshi Tajima
田嶋 聡
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2002312819A priority Critical patent/JP2004145830A/ja
Publication of JP2004145830A publication Critical patent/JP2004145830A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】ハードウェアと連帯して動作するソフトウェアの検証及び不具合の発見が容易なシミュレーション装置及びシミュレーションを提供する。
【解決手段】ハードウェアの動作をハードウェア情報として記述し仮想的に実行するハードウェアシミュレータ3と、ハードウェアシミュレータ3と処理データの受け渡しを行いハードウェアを動作させるためのソフトウェアを実行するソフトウェアシミュレータ2と、ハードウェアシミュレータ3とソフトウェアシミュレータ2との間で送受信された処理データ及び処理データに付随する情報を格納するデータ記憶装置50とを具備するシミュレーション装置。
【選択図】   図1

Description

【0001】
【発明の属する技術分野】
本発明は、コンピュータ等の演算処理システムにおけるハードウェアとソフトウェアを試験するためのシミュレシミュレーション装置、シミュレーション方法及びシミュレーションプログラムに関する。
【0002】
【従来の技術】
家電製品、事務機器、情報端末機器などにおいて一般的に利用されているシステムは、主にハードウェアとこのハードウェアを動作させるためのソフトウェアから構成されている。このようなソフトウェアは、CPU上で動作するプログラムであり、入力ボタンや表示画面やモーターなどのハードウェアを制御するものである。そのため、ソフトウェアの開発には、ハードウェアと連帯して動作確認のための試験を行う必要があるが、ハードウェアが未完成の場合、ソフトウェアの試験を行うことは困難である。そこで、ハードウェアをコンピュータ上で仮想的(等価的)に構築し、ハードウェアシミュレータとしてソフトウェアシミュレータと連動して試験を行う技術が知られている。
【0003】
従来、ハードウェアシミュレータがソフトウェアシミュレータへ渡すデータ列の記録は、ハードウェアシミュレータが行っていた。たとえば、特許文献1に記載されるシミュレーション装置は、ソフトウェアシミュレータとハードウェアシミュレータとを有しており、これらのシミュレータを同期させてデータの受け渡しを行い、システム全体の試験を行うシミュレーション装置である。更に、このハードウェアシミュレータは、ソフトウェアシミュレータへ渡すデータ列をデータ記憶装置へ記録する機能を有しており、データ記憶装置に記録されたデータ列を記録された時と同じタイミングでソフトウェアシミュレータへデータを渡す機能を有している。
【0004】
ハードウェアシミュレータがソフトウェアシミュレータへ渡すデータ列の記録は、図13に示すように、まず、ステップS201において、ソフトウェアシミュレータ102の時刻175とシミュレーション時刻176とを同期させる。次に、ステップS202において、入力データ174をハードウェアシミュレータ103へ渡すと、ハードウェアシミュレータ103は入力データ174を処理する。次に、ステップS203において、ハードウェアシミュレータ103がシミュレーション時刻176を参照する。また、ステップS204において、ハードウェアシミュレータ103は、図14に示すような、「シミュレーション時刻」、「要求処理」、入力データ174を処理した「値」、ソフトウェアシミュレータ102へ渡すべき「アドレス」等の情報からなるデータ190をデータ記憶装置150に記録する。そして、ステップS205において、ソフトウェアシミュレータ102へ、入力データ174を処理した値とアドレス等の情報を渡す。
【0005】
また、図15に示すように、従来技術において、同一のデータ列におけるソフトウェアの試験を再現するためには、まず、ステップS211において、ソフトウェアシミュレータ102の時刻175とシミュレーション時刻176とが同期しているかどうか判断する。そして、ソフトウェアシミュレータ102の時刻175とシミュレーション時刻176とが同期している場合は、ステップS212において、ハードウェアシミュレータ103がシミュレーション時刻176を参照する。更に、ステップS213において、データ記憶装置150に格納されているデータ190を参照する。そして、シミュレーション時刻176とデータ190中に記録しておいたシミュレーション時刻とが等しい場合は、ステップS214において、データ190をソフトウェアシミュレータ102へ渡すことにより、実現している。
【0006】
【特許文献1】
特開平10−161906号公報
【0007】
【発明が解決しようとする課題】
しかし、従来のシミュレーション装置では、同一のタイミングを持つデータ列に対するシステムの不具合を再現することはできるが、データ列のどのデータに対してシステムの不具合が生じたのかを特定することは困難である。たとえば、図14に示すように、データA、データB及びデータCがハードウェアシミュレータ103からソフトウェアシミュレータ102へそれぞれの時刻で渡され、データA、データB、データCからなるデータ列から処理を行うソフトウェアの試験を想定してみた場合、処理結果がユーザの意図したものと異なり、ソフトウェアに問題がないとすると、データA、データB、データCのうち少なくとも1つのデータに問題があると考えられる。しかし、従来のシミュレーション装置では、データA、データB、データCを再現することは可能であるが、問題のあるデータを特定するためには、各データ及び各データに対するソフトウェアシミュレータ102の処理を再度実行し直して確認しなければならないという問題点があった。
【0008】
さらに、同一のタイミングを持つデータ列を用いて、繰り返しソフトウェアの試験を行う場合、同一のデータ列であるにもかかわらず、そのデータ列をソフトウェアシミュレータ102へ渡すため、ハードウェアシミュレータ103の作動が必要となってしまう。そのため、ハードウェアシミュレータ103は、ソフトウェアシミュレータ102と同期をとって作動しているため、ソフトウェアシミュレータ102が単体でシミュレーションを実行するよりも余計な時間がかかるという問題点があった。
【0009】
本発明は上述の如き従来の課題を解決するためになされたもので、その目的は、コンピュータ等の演算処理システムのハードウェアとソフトウェアを試験する際に、不具合の原因となるデータを特定することが容易なシミュレーション装置、シミュレーション方法及びシミュレーションプログラムを提供することである。
【0010】
本発明のその他の目的は、ハードウェアシミュレータの作動を軽減することができ、システム全体のシミュレーションを高速に実行することができるシミュレーション装置、シミュレーション方法及びシミュレーションプログラムを提供することである。
【0011】
本発明のその他の目的は、ソフトウェアの試験を効率よく行うことができるシミュレーション装置、シミュレーション方法及びシミュレーションプログラムを提供することである。
【0012】
【課題を解決するための手段】
上記目的を達成するために、本発明の第1の特徴は、ハードウェアの一部又は全ての動作をハードウェア情報として記述し仮想的に実行するハードウェアシミュレータと、ハードウェアシミュレータと処理データの受け渡しを行い、ハードウェアを動作させるためのソフトウェアを実行するソフトウェアシミュレータと、ハードウェアシミュレータとソフトウェアシミュレータとの間で送受信された処理データ及び処理データに付随する情報を格納するデータ記憶装置とを具備するシミュレーション装置としたことである。
【0013】
ここで、「処理データに付随する情報」とは、処理データの処理結果、処理データを受け取った時のシミュレーション時刻、処理データを受け取った時のプログラムカウンタ、及び処理データを受け取った時のソフトウェアの状態(プログラムの割り込みマスク状態等)等の情報のことをいう。
【0014】
本発明の第1の特徴に係るシミュレーション装置では、コンピュータ等の演算処理システムのハードウェアとソフトウェアを試験する際に、不具合の原因となるデータを特定することが容易なシミュレーション装置を提供することができる。また、本発明の第1の特徴に係るシミュレーション装置では、ハードウェアシミュレータの作動を軽減することができ、システム全体のシミュレーションを高速に実行することができるシミュレーション装置を提供することができる。
【0015】
本発明の第2の特徴は、(イ)ハードウェアの一部又は全ての動作をハードウェア情報として記述し、ハードウェアシミュレータで仮想的に実行するステップ、(ロ)ハードウェアシミュレータとハードウェアを動作させるためのソフトウェアを実行するソフトウェアシミュレータとの間で処理データの受け渡しを行うステップ、(ハ)受け渡された処理データを同期し、ソフトウェアシミュレータはソフトウェアを実行するステップ、(ニ)ハードウェアシミュレータとソフトウェアシミュレータとの間で送受信された処理データ及び処理データに付随する情報をデータ記憶装置に格納するステップとからなるシミュレーション方法としたことである。
【0016】
本発明の第2の特徴に係るシミュレーション方法では、コンピュータ等の演算処理システムのハードウェアとソフトウェアを試験する際に、不具合の原因となるデータを特定することが容易なシミュレーション方法を提供することができる。更に、本発明の第2の特徴に係るシミュレーション方法では、ソフトウェアの試験を効率よく行うことができるシミュレーション方法を提供することができる。
【0017】
本発明の第3の特徴は、ハードウェアシミュレータと、ソフトウェアシミュレータと、データ記憶装置と、からなり、ハードウェアとソフトウェアとから構成される装置を試験するシミュレーション装置を制御するためのプログラムであって、(イ)ハードウェアの一部又は全ての動作をハードウェア情報として記述し、ハードウェアシミュレータで仮想的に実行する命令と、(ロ)ハードウェアシミュレータと処理データの受け渡しを行い、ソフトウェアシミュレータでソフトウェアを実行する命令と、(ハ)ハードウェアシミュレータとソフトウェアシミュレータとの間で送受信された処理データ及び処理データに付随する情報をデータ記憶装置に格納する命令とをシミュレーション装置に実行させるシミュレーションプログラムとしたことである。
【0018】
本発明の第3の特徴に係るシミュレーションプログラムでは、コンピュータ等の演算処理システムのハードウェアとソフトウェアを試験する際に、不具合の原因となるデータを特定することが容易なシミュレーションプログラムを提供することができる。更に、本発明の第2の特徴に係るシミュレーション方法では、ソフトウェアの試験を効率よく行うことができるシミュレーションプログラムを提供することができる。
【0019】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。
【0020】
(シミュレーション装置の構成)
図1に示すように、本発明の実施の形態に係るシミュレーション装置は、ソフトウェアシミュレータ2と、ハードウェアシミュレータ3と、入力装置41と、データ記憶装置50とから構成される。ソフトウェアシミュレータ2は、設計の対象となるシステムのソフトウェアをシミュレート(試験)するものであって、命令セットシミュレータ21と、選択手段22と、記録手段23と、参照手段24とから構成される。命令セットシミュレータ21は、プログラムを命令単位で実行するものであり、入力装置41で入力されたCPU情報82に基づいてCPUの機能をシミュレーション装置で実現する。選択手段22は、入力装置41からの入力データに基づき、命令セットシミュレータ21を作動させてソフトウェアを試験(シミュレート)する際に、ハードウェアシミュレータ3から受け取る処理データを利用するのか、データ記憶装置50に格納されている格納データを利用するのかを選択する。例えば、図10に示すような選択画面70において、「データ記録」若しくは「データ参照」のいずれか1つが選択されると、入力装置41を介して選択された情報を取得し、選択手段22は、ハードウェアシミュレータ3から受け取る処理データを利用するのか、データ記憶装置50に格納されている格納データを用いるのかを選択する。
【0021】
記録手段23は、ハードウェアを制御するために処理データや処理データに付随する情報の受け渡しを行う際に、処理データ及び処理データに付随する情報を記録する。たとえば、選択手段22において、ハードウェアシミュレータ3から受け取る処理データを利用することが選択されている場合に、記録手段23は、ハードウェアシミュレータ3から渡される処理データの有無をチェックし、もし処理データがあれば、処理データに付随する情報に基づいて処理データの処理を行う。更に、記録手段23は、(a)ハードウェアシミュレータ3から受け取った処理データの値、(b)受け取った処理データに付随する情報、(c)受け取った処理データの処理結果、(d)処理データを受け取った時のシミュレーション時刻、(e)処理データを受け取った時のプログラムカウンタ、(f)処理データを受け取った時のプログラムの割り込みマスク状態等をデータ記憶装置50に記録する。ここで「処理結果」とは、例えば、受け取った処理データをメモリアドレスに正しく格納できたかどうかといったものを指す。また、「ソフトウェアの状態」とは、例えば、受け取った時刻におけるソフトウェアプログラムの割り込みマスク状態等を意味する。また、「ハードウェア制御命令」とは、ハードウェア制御用の入出力レジスタへのデータの書き込みや読み込み等の処理命令を意味する。たとえば、図9に示すように、表示画面の表示を更新するためのレジスタとして、LCDUPDATEレジスタがアドレス「0xFFFFFE20」に割り当ててあり、ステップS121において、プログラムによってこのレジスタに「01」が書き込まれると、ソフトウェアシミュレータ2は、ステップS122において、データ値「01」とアドレス「0xFFFFFE20」とをハードウェアシミュレータ3へ渡す。
【0022】
参照手段24は、データ記録装置50に格納されている格納データ(処理データおよび処理データに付随する情報)を参照する。選択手段22において、データ記憶装置50に格納されている格納データを利用することが選択されている場合に、参照手段24は、データ記憶装置50に格納されている処理データのシミュレーション時刻をチェックし、命令セットシミュレータ21のシミュレーション時刻と一致する場合、格納データ(処理データ及び処理データに付随する情報)を取り出す。そして、命令セットシミュレータ21が処理データに付随する情報に基づき、処理データの処理を行う。たとえば、図7に示すように、データ記憶装置50に格納されている格納データ(処理データ及び処理データに付随する情報)90aのシミュレーション時刻が「100」であり、現在のシミュレーション時刻が「100」である場合、データ記憶装置50に格納されている処理データの値「1」と、処理データに付随する情報として処理データの格納アドレス「0xFFFFFE00」と、処理データに付随する情報として命令セットシミュレータ21に要求される処理が「書き込み」処理であるという情報を取り出す。そして、命令セットシミュレータ21は、アドレス「0xFFFFFE00」に値「1」を書き込む。
【0023】
ハードウェアシミュレータ3は、ハードウェアの一部あるいは全てをPC上に仮想的に用意するものであって、実行手段31と、表示手段32と、データ生成手段33とから構成される。本発明の実施の形態に係るシミュレーション装置は、ハードウェアシミュレータ3とソフトウェアシミュレータ2との間で必要な処理データを送受信させることにより、ハードウェアとソフトウェアとの動作検証を進めていくものである。実行手段31は、ハードウェア情報83に基づいて、入力装置41から入力された入力データを処理し、必要に応じて処理した処理データをソフトウェアシミュレータへ送信する。表示手段32は、表示画面(液晶画面)、入力ボタン、LEDランプなどのハードウェア部品の状態を出力装置42に出力する。例えば、入力された入力データの処理状況によってLEDランプが点灯状態になった場合、点灯したLEDランプが液晶ディスプレイ(出力装置)に表示(出力)される。また、入力された入力データの処理状況によって液晶ディスプレイに表示された画像が更新された場合、更新された画像を表示する。データ生成手段33は、液晶ディスプレイに表示されたハードウェア状態に対してなされる入力装置41からの操作により、実行手段31へ送信する実行データを生成する。たとえば、図11に示すように、表示画面73に表示されているボタンをマウス等でクリックすることによって、ボタンが押されたことを示す実効データを生成する。
【0024】
入力装置41は、キーボード、マウス、OCR等の認識装置、イメージスキャナ等の図形入力装置、音声認識装置等の特殊入力装置などにより構成される。出力装置42は、液晶ディスプレイ、CRTディスプレイ等の表示装置、インクジェットプリンタ、レーザープリンタなどの印刷装置等によりそれぞれ構成される。
【0025】
データ記憶装置50は、ハードウェアシミュレータ3から受け取った処理データの値と、受け取った処理データに付随する情報(処理データの処理結果、処理データを受け取った時のシミュレーション時刻、処理データを受け取った時のプログラムカウンタ、及び処理データを受け取った時のプログラムの割り込みマスク状態等)とを格納する。なお、データ記憶装置50は、例えば、コンピュータの外部メモリ装置、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク、磁気テープなどの記録媒体に記録されている。ここで記録媒体とは、具体的には、フレキシブルディスク、ハードディスク、CD−ROM、MOディスク、カセットテープ、オープンリールテープなどが含まれる。なお、データ記憶装置50は、ソフトウェアシミュレータ2の内部に収納されていても良く、外部記憶装置として接続されていても良い。
【0026】
次に、図2から図12を用いて、本発明の実施の形態に係るシミュレーション方法について、ユーザー、ハードウェアシミュレータ3、ソフトウェアシミュレータ2に分けて処理フローを説明する。
【0027】
(ユーザー)
(イ)ユーザーは、まず、図2のステップS51において、出力装置42に表示されている画面を閲覧する。次に、ステップS52において、ハードウェア情報83を入力する。たとえば、表示画面のハードウェア情報83として、画像データを読み込むメモリアドレスを「0xFFFFF000」とし、画像データの更新条件として、「0xFFFFFE00」に「1」が書き込まれた場合として設定する。更に、画面上に表示された入力ボタンのハードウェア情報83として、入力ボタンがおされた場合、「0xFFFFFE10」に「1」を書き込み、割り込み番号「3」の割り込みを発生させる処理を要求するものとして設定する。
【0028】
(ロ)また、予め設定されているソフトウェアシミュレータ2のソフトウェアプログラムの処理フローは、図4及び図5に示すように、ステップS21からステップS12に戻る、あるいはステップS37からステップS31に戻る無限ループになっている。そこで、割り込み番号3の割り込みを受けた場合、その割り込み処理の内部で、アドレス「0xFFFFFE10」に格納されたデータの値が「1」であると、あらかじめメモリアドレスに格納された画像データをデコードして、メモリアドレス「0xFFFFF000」に転送し、アドレス「0xFFFFFE10」に「1」を書き込む処理が設定されている。更に、ユーザーは、シミュレーション形態として「データ記録」又は「データ参照」を選択する。
【0029】
(ハ)次に、ステップS53において、ユーザーが入力装置41を用いて、図11の表示画面73に表示されている入力ボタンをマウスでクリックする等して操作し、ハードウェアシミュレータ3又はソフトウェアシミュレータ2へ送信する。このステップS53は、図11のステップS131に対応する。
【0030】
(ハードウェアシミュレータ)
次に、図3及び図11を参照して、図1に示すハードウェアシミュレータ3の処理フローについて説明する。
【0031】
(イ)図11のステップS131でユーザーが入力データをハードウェアシミュレータ3へ送信すると、ハードウェアシミュレータ3は、ステップS132において、ハードウェア情報83を取得し、図3のステップS41において、実行手段31に渡すための実行データをデータ生成手段33を用いて生成する。次に、ステップS42において、実行手段31は、データ生成手段33で生成された実行データを読み込み、ステップS43において解読し、ステップS44において実行する。
【0032】
(ロ)次に、ステップS45において、実行手段31は、実行結果がソフトウェア制御命令であるか否かを判断する。ソフトウェア制御命令である場合は、ステップS46において、実行結果をソフトウェアシミュレータ2へ送信し、図4のソフトウェアシミュレータ2における処理フローへ進む。たとえば、図11のステップS133において、ハードウェアシミュレータ3は、データ格納アドレス「0xFFFFFE10」と、データ値「1」と、書き込み要求処理と、割り込み番号「3」と、割り込みを発生させる要求処理を処理データとしてソフトウェアシミュレータ2へ渡す。実行結果がソフトウェア制御命令ではない場合は、ステップS47において、実行結果を出力装置42へ送信し、出力装置42において、実行結果が表示等される。
【0033】
(ソフトウェアシミュレータ)
次に、図4を参照し、ソフトウェアシミュレータ2の処理フローについて説明する。
【0034】
(イ)まず、図2のステップS53又は図6のステップS101において、入力装置41を介して入力された入力データ84がハードウェアシミュレータ3へ渡されると、ハードウェアシミュレータ3は、図3のステップS41〜S44において、入力データ84を処理し、ステップS46又は図6のステップS102において、ハードウェアシミュレータ3はソフトウェアシミュレータ2へ入力データ84の処理結果や、入力データ84に対する処理要求等の処理データを送信する。
【0035】
(ロ)すると、ソフトウェアシミュレータ2は、図4のステップS11において、選択手段22を用いて、受け取った処理データ(ハードウェアシミュレータ3の実行結果)のシミュレーション形態をチェックする。シミュレーション形態が「データ参照」である場合は、図5のステップS31の処理へ進む。
【0036】
ここで、シミュレーション形態がデータ参照である場合とは、ソフトウェアシミュレータ2が、データ記憶装置50に格納されている格納データ(処理データ及び処理データに付随する情報等)を使用する場合である。また、シミュレーション形態がデータ記録である場合は、ステップS12の処理へ進む。シミュレーション形態がデータ記録である場合とは、ソフトウェアシミュレータ2が、ハードウェアシミュレータ3から処理データを受け取って使用し、受け取った処理データを命令セットシミュレータ21における実行結果等と共にデータ記録媒体50に格納する場合である。
【0037】
(データ記録フロー)
(イ)まず、シミュレーション形態が「データ記録」であった場合、図4のステップS12において、ハードウェアシミュレータ3から受信した処理データを読み込み、ステップS13において、データを解読し、ステップS14において、解読結果に基づき命令を実行する。
【0038】
(ロ)次に、ステップS15において、命令セットシミュレータ21は、ステップS14で実行した命令がハードウェア制御命令であるか否かを判断する。ハードウェア制御命令でない場合は、ステップS18の処理へ進む。ハードウェア制御命令である場合、命令セットシミュレータ21は、ステップS16において、ハードウェアシミュレータ3へステップS14で実行した処理データ(命令)と、処理データ(命令)に付属する情報をハードウェアシミュレータ3へ送信する。そして、ハードウェアシミュレータ3へ送信した情報を、ステップS17において、記録手段23がデータ記憶装置50へ格納する。
【0039】
(ハ)次に、ステップS18において、ハードウェアシミュレータ3から渡された処理データ又は入力装置41から入力された入力データ84の有無を判断する。処理データ又は入力データ84がない場合は、ステップS21の処理へ進む。
【0040】
(ニ)処理データ又は入力データ84がある場合は、ステップS19において、命令セットシミュレータ21は、処理データ又は入力データ84の処理を実行する。そして、ステップS20において、図6のステップS103に示すように、記録手段23を用いて、現在の時刻と、受け取った処理データと、受け取った処理データの処理結果、現在の時刻におけるソフトウェアの状態等の情報をデータ記憶装置50へ格納する。たとえば、図12に示すように、シミュレーション時刻が「200」であり、プログラムカウンタが「0x1230」であり、割り込みマスク状態が割り込み禁止であり、アドレス「0xFFFFFE10」への書き込みが正常終了したとする。このような場合、記録手段23は、データ記憶装置50へデータ90bを格納する。
【0041】
(ホ)次に、ステップS21において、プログラムカウンタとシミュレーション時刻のカウントを行う。そして、ステップS12からステップS21までの処理は、ソフトウエアシミュレータ2外部の入力手段41によりシミュレーションを終了する信号が送信されるまで繰り返す。
【0042】
このように、ユーザー、ハードウェアシミュレータ3、ソフトウェアシミュレータ2の処理フローから、シミュレーションを実行したユーザーは、表示画面上で入力ボタンを押したにも関わらず、表示画面上に画像データが表示されないことを確認した場合、システムの不具合を発見したことになる。
【0043】
システムの不具合を発見した場合、ユーザは、シミュレーションを中段し、データ記憶装置50に記録されている格納データのデータ列を参照する。たとえば、格納データのデータ列には、割り込み要求処理がハードウェアシミュレータからソフトウェアシミュレータへ通知されたが、ソフトウェアの状態が割り込み禁止状態であったということ等が確認されると、ソフトウェアプログラムの不具合が原因であることが考えられる。たとえば、プログラムの初期化ルーチンの際に、割り込み許可の設定を忘れていた場合は、ユーザーは割り込み状態を許可するようにソフトウェア・プログラムを修正することができる。
【0044】
(データ参照フロー)
(イ)図4のステップS11において、シミュレーション形態が「データ参照」であると判断された場合、図5のステップS31の処理へ進む。そして、ステップS31において、命令セットシミュレータ21は、ハードウェアシミュレータ3から受信したデータを読み込む。更に、命令セットシミュレータ21は、ステップS32において、読み込んだデータを解読し、ステップS33において、解読した命令を実行する。
【0045】
(ロ)次に、ステップS34において、図8のステップS111に示すように、参照手段24は、データ記憶装置50を参照し、データ記憶装置50に格納されている格納データ(処理データ及び処理データに付随する情報)のシミュレーション時刻と、現在のシミュレーション時刻75とが一致するか否かを判断する。一致しない場合は、ステップS37の処理へ進む。一致する場合は、ステップS35において、データ記憶装置50に格納されている格納データを読み込み、ステップS36において、読み込んだ格納データの処理を行う。たとえば、シミュレーション時刻が「100」である場合、参照手段24は、データ記憶装置50の読み込みポインタが示す位置のデータ列を参照する。データ記憶装置50に格納されているデータが図12に示すようなものである場合、シミュレーション時刻は「200」であるため、このデータ列は無視される。
【0046】
シミュレーション時刻が「200」のとき、参照手段24は、データ記憶装置50の格納データを参照し、シミュレーション時刻が一致するため、このデータ列を取り出して処理を行う。図12に示すような格納データ90bが格納されている場合は、アドレス「0xFFFFFE10」に「1」を書き込み、割り込み番号「3」の割り込み要求を発生させる。
【0047】
(ハ)次に、ステップS37において、ソフトウエアシミュレータ2は、プログラムカウンタとシミュレーション時刻のカウントを行う。そして、プログラムのサイズに応じて、ステップS31からステップS37の処理を繰り返す。このとき、ソフトウェアの状態として割り込みが禁止されている状態である場合は、割り込み処理は行われないため、割り込み処理として画像データのデコードが設定されている場合は、画像データのデコード処理は行われない。割り込み処理が禁止されていない場合は、割り込み処理が行われる。たとえば、図12に示すように、割り込み番号3の割り込み要求があり、割り込み許可になっている場合は、割り込み処理を行い、アドレス「0xFFFFFE10」に格納されている処理データの値が「1」であるため、画像データをデコードし、メモリアドレス「0xFFFFF000」にデータを転送し、アドレス「0xFFFFFE00」に「1」を書き込む。そして、アドレス「0xFFFFFE00」に「1」を書き込む処理は、ハードウェア制御に関する命令であるため、処理データの値「1」とアドレス「0xFFFFFE00」をハードウェアシミュレータ3へ渡す。ハードウェアシミュレータ3は、処理データの値「1」と、アドレス「0xFFFFFE00」を受け取ると、ハードウェア情報83に基づき、アドレス「0xFFFFF000」から画像データを取り出し、この画像データを処理し、表示手段32を用いて、表示画面に画像を表示する。
【0048】
このように、本発明の実施の形態に係るシミュレーション装置、シミュレーション方法及びシミュレーションプログラムを用いれば、システムのシミュレーションに不具合が生じた場合、データ記憶装置50に格納された格納データ(処理データ及び処理データに付随する情報)を確認することによって、原因を特定することができ、効率良くシステムのシミュレーションを行うことができる。
【0049】
また、本発明の実施の形態に係るシミュレーション装置、シミュレーション方法及びシミュレーションプログラムによれば、シミュレーション形態が「データ参照」の場合、シミュレーションを実行したユーザが操作をしなくても、シミュレーション形態が「データ記録」の場合と同一のシミュレーションを行うことができる。
【0050】
更に、本発明の実施の形態に係るシミュレーション装置、シミュレーション方法及びシミュレーションプログラムによれば、ソフトウェアシミュレータ2がデータ記憶装置50に格納されている格納データを直接参照するため、ハードウェアシミュレータ3の処理が軽減され、システム全体のシミュレーション速度を高速に実行することができる。
【0051】
また、本発明の実施の形態に係るシミュレーション装置、シミュレーション方法及びシミュレーションプログラムを用いれば、ユーザーは、任意の時刻に入力データを生成することが出来、シミュレーションを効率良く実行することができる。
【0052】
(その他の実施の形態)
上記のように、本発明は実施の形態によって記載したが、この開示の一部をなす論述及び図面は、この発明を限定するものであると理解すべきではない。この開示から、当業者には様々な代替実施の形態、実施例、及び製造工程技術が明らかとなろう。
【0053】
本発明の実施の形態に係るシミュレーション装置、シミュレーション方法及びシミュレーションプログラムは、コンピュータ読み取り可能な記録媒体に保存しても良い。そして、シミュレーションを行う際には、この記録媒体又はプログラムをコンピュータシステムに読み込ませ、コンピュータシステム内のメモリ等の記憶部にプログラムを格納し、シミュレーションプログラムを演算装置で実行することにより、本発明のシミュレーション装置、及びシミュレーション方法を実現することができる。ここで、記録媒体とは、例えば、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク、磁気テープなどのプログラム記録することができるようなコンピュータ読み取り可能な記録媒体等が含まれる。
【0054】
また、本発明の実施の形態に係るシミュレーション装置において、ハードウェアシミュレータ及びソフトウェアシミュレータは、同一のシミュレーション装置に具備されてもよく、別々のシミュレーション装置に具備されても良い。
【0055】
本発明はここでは記載していない様々な実施の形態などを含むことは勿論である。従って、本発明の技術的な範囲は上記説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【0056】
【発明の効果】
本発明によれば、入力されたデータと入力されたデータに対するソフトウェアによる処理情報とをソフトウェアシミュレータがデータ記録装置に格納するため、入力データに対してソフトウェアが行った処理の検証や不具合の発見が容易なシミュレーション装置、シミュレーション方法及びシミュレーションプログラムを提供することができる。
【0057】
本発明によれば、ソフトウェアシミュレータがデータ記録装置に格納されたデータを利用することによって、ハードウェアシミュレータの作動を軽減することができ、同一のデータ列に対するシミュレーションを高速に実行するシミュレーション装置、シミュレーション方法及びシミュレーションプログラムを提供することができる。
【0058】
本発明によれば、ハードウェアシミュレータを操作することによって、ソフトウェアシミュレータへ与える様々なデータを容易に作成することができるため、ソフトウェアのシミュレーション(試験)を効率よく行うシミュレーション装置、シミュレーション方法及びシミュレーションプログラムを提供することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態に係るシミュレーション装置の構成を示す概念図である。
【図2】本発明の実施の形態に係るシミュレーション方法のユーザー側における処理のフロー図である。
【図3】本発明の実施の形態に係るシミュレーション方法のハードウェアシミュレータ側における処理のフロー図である。
【図4】本発明の実施の形態に係るシミュレーション方法のソフトウェアシミュレータ側における処理のフロー図(その1)である。
【図5】本発明の実施の形態に係るシミュレーション方法のソフトウェアシミュレータ側における処理のフロー図(その2)である。
【図6】本発明の実施の形態に係るシミュレーション方法の概念図(その1)である。
【図7】本発明の実施の形態に係るデータ記憶装置に格納されている情報(その1)の一例である。
【図8】本発明の実施の形態に係るシミュレーション方法の概念図(その2)である。
【図9】本発明の実施の形態に係るシミュレーション方法の概念図(その3)である。
【図10】本発明の実施の形態に係るユーザー表示画面(その1)の一例である。
【図11】本発明の実施の形態に係るシミュレーション方法の概念図(その4)である。
【図12】本発明の実施の形態に係るデータ記憶装置に格納されている情報(その2)の一例である。
【図13】従来のシミュレーション方法の概念図(その1)である。
【図14】従来のシミュレーション装置において格納される情報の一例である。
【図15】従来のシミュレーション方法の概念図(その2)である。
【符号の説明】
2 ソフトウェアシミュレータ
3 ハードウェアシミュレータ
21 命令セットシミュレータ
22 選択手段
23 記録手段
24 参照手段
31 実行手段
32 表示手段
33 データ生成手段
41 入力装置
42 出力装置
50 データ記憶装置
70 画面
73 入力画面
75 時刻
82 CPU情報
83 ハードウェア情報
84 入力データ
90、93 情報
91 メモリ
102 ソフトウェアシミュレータ
103 ハードウェアシミュレータ
150 データ記憶装置
174 入力データ
175 時刻
176 シミュレーション時刻
190 データ

Claims (15)

  1. ハードウェアの一部又は全ての動作をハードウェア情報として記述し仮想的に実行するハードウェアシミュレータと、
    前記ハードウェアシミュレータと処理データの受け渡しを行い、前記ハードウェアを動作させるためのソフトウェアを実行するソフトウェアシミュレータと、前記ハードウェアシミュレータと前記ソフトウェアシミュレータとの間で送受信された前記処理データ及び前記処理データに付随する情報を格納するデータ記憶装置
    とを具備することを特徴とするシミュレーション装置。
  2. 前記ハードウェアシミュレータと前記ソフトウェアシミュレータに外部から入力データを入力する入力手段と、
    前記ハードウェアシミュレータにおける処理により変化する前記ハードウェアの状態を表示する出力手段
    とを具備することを特徴とする請求項1記載のシミュレーション装置。
  3. 前記ハードウェアシミュレータは、
    前記入力データから前記ハードウェアシミュレータ内で解読できる形式の実行データを生成するデータ生成手段と、
    前記ハードウェア情報に基づき前記実行データを解読し、処理し、前記実行データから処理データを生成し、必要に応じて前記ソフトウェアシミュレータへ前記処理データを送信する実行手段と、
    前記実行手段における処理結果に基づき、前記出力手段へ前記ハードウェアの状態を出力する表示手段
    とを具備することを特徴とする請求項1又は2に記載のシミュレーション装置。
  4. 前記ソフトウェアシミュレータは、
    前記ハードウェアシミュレータから送信された前記処理データ及び前記データ記憶装置に格納されている情報のいずれかに基づき、前記ソフトウェアの命令を命令単位で実行する命令セットシミュレータと、
    前記処理データ及び前記処理データに付随する情報を格納データとして前記データ記憶装置に格納する記録手段と、
    前記命令セットシミュレータでは、前記ハードウェアシミュレータから受け取る前記処理データを利用するのか、前記データ記憶装置に格納されている前記格納データを利用するのかを判断する選択手段と、
    前記データ記憶装置に格納されている前記格納データを参照する参照手段
    とを具備することを特徴とする請求項1又は2のいずれか1項記載のシミュレーション装置。
  5. 前記処理データに付随する情報は、処理結果、ソフトウェアの状態、プログラムカウンタのいずれか1つを少なくとも有することを特徴とする請求項1乃至4のいずれか1項記載のシミュレーション装置。
  6. ハードウェアの一部又は全ての動作をハードウェア情報として記述し、ハードウェアシミュレータで仮想的に実行するステップと、
    前記ハードウェアシミュレータと前記ハードウェアを動作させるためのソフトウェアを実行するソフトウェアシミュレータとの間で処理データの受け渡しを行うステップと、
    受け渡された処理データを同期し、前記ソフトウェアシミュレータは前記ソフトウェアを実行するステップと、
    前記ハードウェアシミュレータと前記ソフトウェアシミュレータとの間で送受信された前記処理データ及び前記処理データに付随する情報をデータ記憶装置に格納するステップ
    とを有することを特徴とするシミュレーション方法。
  7. 前記入力データに基づき、前記ハードウェアシミュレータ内で解読できる形式の実行データを生成するステップと、
    前記ハードウェア情報に基づいて前記実行データを解読及び処理し、必要に応じて前記ソフトウェアシミュレータへデータを送信するステップと、
    前記実行データを処理した結果、前記ハードウェアの状態を出力手段に表示するステップ
    とを更に有することを特徴とする請求項6記載のシミュレーション方法。
  8. 前記入力データ又は前記ハードウェアシミュレータから送信された前記処理データに基づき、前記ソフトウェアの命令を命令単位で実行するステップと、
    前記処理データ及び前記処理データに付随する情報を格納データとして前記データ記憶装置に格納するステップと、
    前記ハードウェアシミュレータから受け取る前記処理データを利用するのか、前記データ記憶装置に格納されている前記格納データを利用するのかを判断する判断するステップ
    とを更に有することを特徴とする請求項6又は7のいずれか1項記載のシミュレーション方法。
  9. 前記処理データに付随する情報は、処理結果、ソフトウェアの状態、プログラムカウンタのいずれか1つを少なくとも有することを特徴とする請求項6乃至8のいずれか1項記載のシミュレーション方法。
  10. 前記データ記憶装置に格納されている前記格納データを参照するステップを更に有することを特徴とする請求項8記載のシミュレーション方法。
  11. ハードウェアシミュレータと、ソフトウェアシミュレータと、データ記憶装置と、からなり、ハードウェアとソフトウェアとから構成される装置を試験するシミュレーション装置を制御するためのプログラムであって、前記ハードウェアの一部又は全ての動作をハードウェア情報として記述し、ハードウェアシミュレータで仮想的に実行する命令と、
    前記ハードウェアシミュレータと処理データの受け渡しを行い、ソフトウェアシミュレータで前記ソフトウェアを実行する命令と、
    前記ハードウェアシミュレータと前記ソフトウェアシミュレータとの間で送受信された前記処理データ及び前記処理データに付随する情報をデータ記憶装置に格納する命令
    とをシミュレーション装置に実行させることを特徴とするシミュレーションプログラム。
  12. 前記入力データに基づき、前記ハードウェアシミュレータ内で解読できる形式の実行データを生成する命令と、
    前記ハードウェア情報に基づいて前記実行データを解読及び処理し、必要に応じて前記ソフトウェアシミュレータへデータを送信する命令と、
    前記実行データを処理した結果、前記ハードウェアの状態を出力手段に表示する命令
    とを更にシミュレーション装置に実行させることを特徴とする請求項11記載のシミュレーションプログラム。
  13. 前記入力データ又は前記ハードウェアシミュレータから送信された前記処理データに基づき、前記ソフトウェアの命令を命令単位で実行する命令と、
    前記処理データ及び前記処理データに付随する情報を格納データとして前記データ記憶装置に格納する命令と、
    前記ハードウェアシミュレータから受け取る前記処理データを利用するのか、前記データ記憶装置に格納されている前記格納データを利用するのかを判断する判断する命令
    とを更にシミュレーション装置に実行させることを特徴とする請求項11記載のシミュレーションプログラム。
  14. 前記処理データに付随する情報は、処理結果、ソフトウェアの状態、プログラムカウンタのいずれか1つを少なくとも有することを特徴とする請求項11乃至13のいずれか1項記載のシミュレーションプログラム。
  15. 前記データ記憶装置に格納されている前記格納データを参照する命令を更にシミュレーション装置に実行させることを特徴とする請求項13記載のシミュレーションプログラム。
JP2002312819A 2002-10-28 2002-10-28 シミュレーション装置、シミュレーション方法及びシミュレーションプログラム Pending JP2004145830A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002312819A JP2004145830A (ja) 2002-10-28 2002-10-28 シミュレーション装置、シミュレーション方法及びシミュレーションプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002312819A JP2004145830A (ja) 2002-10-28 2002-10-28 シミュレーション装置、シミュレーション方法及びシミュレーションプログラム

Publications (1)

Publication Number Publication Date
JP2004145830A true JP2004145830A (ja) 2004-05-20

Family

ID=32457610

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002312819A Pending JP2004145830A (ja) 2002-10-28 2002-10-28 シミュレーション装置、シミュレーション方法及びシミュレーションプログラム

Country Status (1)

Country Link
JP (1) JP2004145830A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012248055A (ja) * 2011-05-30 2012-12-13 Hitachi Advanced Digital Inc シミュレーション装置及びシミュレーション方法
JP2016038887A (ja) * 2014-08-11 2016-03-22 富士電機株式会社 シミュレーション装置および仮想デバイスモデル構築方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012248055A (ja) * 2011-05-30 2012-12-13 Hitachi Advanced Digital Inc シミュレーション装置及びシミュレーション方法
JP2016038887A (ja) * 2014-08-11 2016-03-22 富士電機株式会社 シミュレーション装置および仮想デバイスモデル構築方法

Similar Documents

Publication Publication Date Title
US7784045B2 (en) Method and system for computer based testing using an amalgamated resource file
JP4396994B2 (ja) リソース・ファイルの翻訳検証方法、装置、およびプログラム
JP2007001237A (ja) 機器、機器システム、画像形成装置、機器の制御方法及びプログラム
US20050026130A1 (en) System and method for computer based testing using cache and cacheable objects to expand functionality of a test driver application
US20080120553A1 (en) Remote gui control by replication of local interactions
JP4059547B2 (ja) クライアント/サーバ型の医療用イメージング・システムで指令を実行する方法
JP4201363B2 (ja) セル・オーバーラップ検出及び補正方法
US20070240131A1 (en) Application prototyping
WO2010044150A1 (ja) プログラム変更管理装置、プログラム変更管理プログラムおよびプログラム変更管理方法
CN114253841A (zh) 测试脚本生成方法、装置及存储介质
JP2004145830A (ja) シミュレーション装置、シミュレーション方法及びシミュレーションプログラム
JP7176806B1 (ja) プログラム学習装置
US20150317404A1 (en) Accessing Content in a Rich Internet Application
JP2014171053A (ja) 電子文書コンテナデータファイル、電子文書コンテナデータファイル生成装置、電子文書コンテナデータファイル生成プログラム、サーバ装置および電子文書コンテナデータファイル生成方法
JP2007286654A (ja) シーケンサシミュレーション装置
JP2009098896A (ja) 履歴情報の動作制御装置および方法
CN109542568A (zh) 用于Android系统设备的屏幕适配方法及系统
JP6549209B2 (ja) データ入力装置及びデータ入力プログラム
GB2509098A (en) Synchronising screenshots in documentation with product functionality
WO2023162260A1 (ja) 環境構築支援装置、システム及び方法、並びに、コンピュータ可読媒体
Barney Developing hybrid applications for the iPhone: using HTML, CSS, and JavaScript to build dynamic apps for the iPhone
WO2023248307A1 (ja) 操作支援システム、操作支援方法および操作支援プログラム
US20190258375A1 (en) Methods and systems for resident control of devices using html and javascript
JP2004037542A (ja) 表示システム、並びにそれに用いる表示装置および制御装置
JPH11282693A (ja) Mcuシミュレーション装置、そのシミュレーション方法及びそのシミュレーションプログラムを記録したコンピュータ読み取り可能な記録媒体