JP2570119B2 - ソフトウェアシミュレータ - Google Patents

ソフトウェアシミュレータ

Info

Publication number
JP2570119B2
JP2570119B2 JP5184291A JP18429193A JP2570119B2 JP 2570119 B2 JP2570119 B2 JP 2570119B2 JP 5184291 A JP5184291 A JP 5184291A JP 18429193 A JP18429193 A JP 18429193A JP 2570119 B2 JP2570119 B2 JP 2570119B2
Authority
JP
Japan
Prior art keywords
input data
function
execution
registration
command
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
JP5184291A
Other languages
English (en)
Other versions
JPH0744421A (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP5184291A priority Critical patent/JP2570119B2/ja
Publication of JPH0744421A publication Critical patent/JPH0744421A/ja
Application granted granted Critical
Publication of JP2570119B2 publication Critical patent/JP2570119B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はソフトウェアシミュレー
タに関し、特に演算処理用のプログラムのデバッグや検
査を行うソフトウェアシミュレータに関する。
【0002】
【従来の技術】新規にプログラムを開発する場合には、
完成したプログラムが設計者の意図通りに正しく動作す
ることをデバッグや検査工程等で検証する必要がある。
これらのデバッグや検査工程は、CPUとその周辺機器
とから成るハードウェアシミュレータや、上記CPUの
動作をソフトウェアによりシミュレーションしたソフト
ウェアシミュレータ等のデバッグ手段を用いて行われる
ことが多い。
【0003】上記デバッグ手段は、情報入力手段からコ
ンパイラ等の言語処理手段によりオブジェクト形式に変
換されたデバッグ対象のプログラムの実行や一時停止等
の動作を指令するコマンドの供給を受けて解析し上記コ
マンド対応の処理の実行後はこの実行結果出力等の処理
を行なうコマンド処理部と、上記コマンドの解析結果に
対応するコマンド実行の指令を受け上記コマンドの実行
を行うコマンド実行部とを備える。
【0004】上記コマンド処理部は、後述するハードウ
ェアエミュレータおよびソフトウェアシミュレータ共通
のソフトウェアで実現することができる。しかし、上記
コマンド実行部はハードウェアエミュレータとソフトウ
ェアシミュレータとではそれぞれ独自の実現方法をと
る。ハードウェアエミュレータを用いたコマンド実行部
は、実際のあるいは相当するCPUと、メモリ等の周辺
機器とから成るシステムを構成することで実現される
が、ソフトウェアシミュレータによるコマンド実行部
は、実際のCPUと周辺機器とをシミュレータプログラ
ムというソフトウェア資源の形で代替することで実現さ
せる。
【0005】従来のソフトウェアシミュレータのシステ
ム構成をブロックで示す図6を参照すると、この図に示
す従来のソフトウェアシミュレータ10は、コマンド処
理部1とコマンド実行部2とを備える。コマンド処理部
1は、コマンド入力を受け付けるコマンド入力部11
と、入力されたコマンドを解析するコマンド解析部12
と、解析された各々のコマンド対応の処理の実行部を起
動し、実行結果の供給を受け出力する、初期化/終了,
メモリアクセス、プログラム実行、デバッグ機能設定の
各々のコマンドの制御部13〜16とを備える。
【0006】コマンド実行部2は、各々のコマンドの制
御部13〜16からの指令を受けコマンド対応の処理を
それぞれ実行する初期化/終了部21と、メモリアクセ
ス部22と、プログラム実行部23と、デバッグ機能設
定部24とを備える。プログラム実行部23は、命令コ
ード取得機能31と、命令コード解析機能32と、命令
シミュレーション機能33と、デバッグ機能実現機能3
4と、実行フラグ管理機能35の各機能を有する。
【0007】従来のソフトウェアシミュレータの内部の
処理のフローチャートである図7を参照して動作を説明
すると、ソフトウェアシミュレータは起動後、コマンド
待ち状態になり(ステップP1)コマンドの入力に応答
し(ステップP2)、そのコマンドの解析を行ない(ス
テップP3)、デバッグ対象のプログラム実行コマンド
であれば(ステップP4)、プログラム実行コマンド対
応の処理を実行する、(ステップP7)。この部分の処
理の詳細については後述する。ステップP7で、コマン
ドがデバッグ対象のプログラム実行コマンドでなく、か
つ、次のステップP5でシミュレータ終了コマンドでも
ない時には、各コマンドの実行部で指令されたコマンド
実行処理を行なうが(ステップ6)、ステップP5でシ
ミュレータ終了コマンドが検出された場合には、ソフト
ウェアシミュレータの処理を終了する。
【0008】従来のプログラム実行部23の処理フロー
チャートである図8を参照して、上述のステップP7の
詳細を説明すると、デバッグ対象のプログラム実行コマ
ンドの発行の認識に応答して実行フラグがONされる
(ステップP7)。次に、実行開始アドレスから命令コ
ードを取得し(ステップP72)、解析して(ステップ
P73)、実行対象の命令の認識に応答し、ステップP
74で命令シミュレーションを行なう。このとき、シミ
ュレーション異常が発生した場合は(ステップP7
5)、実行フラグをOFF(ステップP79)してプロ
グラム実行部23の処理を終了する。ステップP75で
シミュレーション異常の発生がない場合は、命令実行時
間の計測や網羅度のチェック等の実現すべきデバッグ機
能があるかどうかをチェックして(ステップP76)、
その結果に基づいて所要のデバッグ機能を実現する(ス
テップP77)。また、ブレーク等の命令実行中止要求
が発生した場合には(ステップP78)、実行フラグO
FF(ステップP79)して処理を終了する。ステップ
P78で命令実行中止要求が発生しない場合には、次の
指定アドレスから命令コードを取得し実行する上記の処
理を繰り返す。
【0009】
【発明が解決しようとする課題】上述した従来のソフト
ウェアシミュレータは、CPU等のハードウェアの動作
のシミュレーションによる処理速度が上記ハードウェア
の処理速度に比較して10〜1000分の1のオーダで
遅いため、デバッグや検査を行うときの大きな支障要因
となるという欠点があった。
【0010】本発明のソフトウェアシミュレータは、デ
バッグ対象のプログラムの実行を指令するコマンドデー
タの供給を受けて解析しこのコマンドデータの解析結果
に対応するコマンド実行命令を発行するコマンド処理部
と、前記コマンド実行命令を受けこのコマンド実行命令
対応の処理を実行するコマンド実行部とを備え、前記プ
ログラムの適用対象のハードウェアである中央処理装置
の動作をソフトウェアによりシミュレーションしたソフ
トウェアシミュレータにおいて、前記コマンド実行部が
第1の演算実行の時に供給を受けデバッグ対象関数の
引数およびこの関数内で参照する外部変数から成る第1
の入力データと対応する第1の演算結果とを登録する登
録手段と、前記登録手段から読出した前記第1の入力デ
ータと前記第1の演算実行の後の第2の演算実行の時に
供給される第2の入力データとを比較しこの比較結果前
記第1および第2の入力データが同一の場合に前記第1
の演算結果を前記第2の入力データ対応の第2の演算結
果として供給する入力データ比較手段とを備えて構成さ
れている。
【0011】
【実施例】次に、本発明の第1の実施例を図7と共通の
構成要素には共通の符号を付して同様にブロックで示し
た図1を参照すると、この図に示した本実施例のソフト
ウェアシミュレータ10Aは、プログラム実行部23を
含むコマンド実行部2の代りにデバッグ対象関数の入力
データ情報および対応の実行結果をそれぞれ登録データ
および登録結果として登録する登録機能36と、現在処
理中のデバッグ対象関数の入力データと上記登録データ
と比較する比較機能37とをさらに備えるプログラム実
行部23Aを含むコマンド実行部2Aを備える。
【0012】本実施例のソフトウェアシミュレータ10
Aを含むプログラムデバッグシステムの概念図である図
2を参照して説明すると、これら登録機能36と比較機
能37は、ソフトウェアシミュレータ10Aにデバッグ
対象のプログラム5に加えて入力データ情報および対応
の実行結果の登録および管理等の制御を行なう登録用プ
ログラム6をロードすることにより有効となる。これに
より、プログラム5の実行時に、登録機能36により上
記入力データ情報および対応の実行結果のデータをそれ
ぞれ登録データおよび登録結果として登録すること、お
よび比較機能37によりこれから実行するデバッグ対象
関数の入力データと上記登録データとを比較することが
可能となる。ここで、プログラム5にはデバッグ情報と
して上記関数の冒頭や末尾を検出するためのライン情報
を付加しておく。
【0013】プログラム5と登録用プログラム6のデー
タ構造を具体的に示す図3を参照すると、図3(A)に
示すようなプログラム5の一部であるmain.c51
のデバッグ時に、登録機能36と比較機能37とを使用
するため、登録用プログラム6は、main.c51の
各関数main( )やsub1(arg)等に対応の
入力データおよび実行結果を登録データおよび登録結果
として登録するための図3(B)に例示するデータ構造
の登録用のテーブル61を備える。
【0014】テーブル61に例示した内容は関数sub
1(arg)対応の例であり、管理対象の関数の名称s
ub1(arg)を示すラベル部611と、登録対象の
入力データの種別arg等を示す種別部612と、対応
の実行結果データの種別global1等を示す種別部
613と、入力および実行結果の各々のデータ格納領域
614,615とを含む。
【0015】本実施例のソフトウェアシミュレータのプ
ログラム実行部23Aの処理のフローチャートである図
4を参照して動作について説明すると、まず、デバッグ
対象のプログラム実行コマンドの発行の認識に応答して
実行フラグがONされる(ステップS71)。次に、ス
テップS72で、比較機能37に制御が移り、対象のコ
マンドが、関数の冒頭かどうかをチェックする。このチ
ェック結果、関数の冒頭である場合には、ステップS8
3に進み、その関数に対する現在の入力データとテーブ
ル61の登録データとの比較を行ない、一致したデータ
がある場合には(ステップS84)、テーブル61から
該当する登録結果を読出す(ステップS85)。次にス
テップS86で、関数の末尾までスキップして、次の命
令の処理モードに移る。ステップS84で一致したデー
タがなかった場合には、ステップS87に進み、登録機
能36で入力データを登録用テーブル61に記録して、
従来のソフトウェアシミュレータ10と同様のステップ
S73〜S79,S82の実行処理に移る。
【0016】まず、指定アドレスから命令コードを取得
し(ステップS73)、解析し(ステップS74)、こ
の解析結果に応答してステップS75で命令シミュレー
ションを行う。このとき、シミュレーション異常が発生
した場合は(ステップS76)、実行フラグをOFF
(ステップS82)してプログラム実行部23Aの処理
を終了する。ステップS76でシミュレーション異常の
発生がない場合には、次に、命令実行時間の計測や網羅
度のチェック等の実現すべきデバッグ機能があるかどう
かをチェックして(ステップS77)、ある場合には所
要のデバッグ機能を実現する(ステップS78)。ま
た、ブレーク等の命令実行中止要求が発生した場合には
(ステップS79)、実行フラグOFF(ステップS8
2)してプログラム実行部23Aの処理を終了する。こ
のようにして一命令が終了すると、ステップS80で関
数の末尾かどうかをチェックし、関数の末尾である場合
には、この関数の実行結果をテーブル61に登録結果と
して登録して(ステップS81)、次の命令の実行に移
る。
【0017】次に、本発明の第2の実施例について説明
する。
【0018】関数には、プログラム実行中に数箇所から
頻繁にコールされるような実行頻度の多いのものと、実
行頻度の少ないものとがある。後者について、入力デー
タや実行結果を登録しても、結局、これらのデータを使
用することなくプログラムが終了し無駄となることが多
い。この第2の実施例は入力および対応の実行結果の登
録対象の関数を限定して処理する方法である。
【0019】図2、および図3を再度参照して本実施例
を説明すると、まず、実行頻度の多い関数に限定して、
図3(B)のテーブル61のような関数データ保存用の
テーブルを作成、管理するための登録用プログラム6A
を作成する。
【0020】本実施例の登録用プログラム6Aをロード
した場合の、ソフトウェアシミュレータのプログラム実
行部23Aの処理のフローチャートを示す図5を参照す
ると、このフローチャートの図4に示す第1の実施例の
フローチャートに対する相違点は、デバック対象関数の
冒頭または末尾であることを認識したときに、この関数
対応の上記テーブルが存在するかどうかをチェックする
テーブルチェック機能ステップS91,S92を付加し
たことである。
【0021】まず、ステップS71,S72で、プログ
ラム実行コマンドの発行の認識に応答して実行フラグが
ONされ、関数の比較機能に制御が移り、関数の冒頭か
どうかをチェックする。チェック結果、関数の冒頭であ
った場合には、ステップS92に進みこの関数に対応す
るテーブルが存在するかをチェックする。チェック結
果、上記テーブルがないものに関しては、ステップS7
3〜S79の第1の実施例と同様の処理をステップS7
9まで実行する。ステップS79でブレーク等が発生し
ない場合には、ステップS80で関数の末尾であるかど
うかのチェックを行ない、ステップS91でこの関数に
対応するテーブルが存在しなければそのまま次の命令処
理に移る。ステップS91,S92で対応するテーブル
が存在する関数に関しては、ステップS83でその関数
に対する現入力データと登録データとの比較を行ない、
一致したデータがある場合には、ステップS84でテー
ブルから該当する実行結果を読み出す。次にステップS
86で関数の末尾までスキップして次の命令の実行に移
る。ステップS84で一致したデータがなかった場合に
は、登録機能36で入力データをテーブルに記録して
(ステップS87)、関数の実行処理に移る。関数の実
行処理後、すなわち、ステップS80で関数の末尾かど
うかをチェックし、チェック結果関数の末尾であれば関
数対応のテーブルが存在するので(ステップS91)、
ステップS81で関数の実行結果をテーブルに登録して
次の命令の実行に移る。
【0022】
【発明の効果】以上説明したように、本発明のソフトウ
ェアシミュレータは、コマンド実行部が前の演算実行時
の第1の入力データと対応の第1の演算結果とを登録す
る登録手段と、この登録手段から読出した上記第1の入
力データと現在の演算実行時の第2の入力データとを比
較し一致した場合に上記第1の演算結果を上記第2の入
力データ対応の第2の演算結果として供給する入力デー
タ比較手段とを備えることにより、シミュレーションに
よる処理速度が大幅に向上するので、デバッグや検査の
時間を短縮することができるという効果がある。
【図面の簡単な説明】
【図1】本発明のソフトウェアシミュレータの第1の実
施例を示すブロック図である。
【図2】本実施例のソフトウェアシミュレータ10Aを
含むプログラムデバッグシステムの概念図である。
【図3】デバッグ対象のプログラムと登録用プログラム
のデータ構造を示す図である。
【図4】本実施例のソフトウェアシミュレータの動作の
フローチャートである。
【図5】本発明のソフトウェアシミュレータの第2の実
施例を示すフローチャートである。
【図6】従来のソフトウェアシミュレータの一例を示す
ブロック図である。
【図7】従来のソフトウェアシミュレータの動作のフロ
ーチャートである。
【図8】図7のフローチャートの細部をさらに示すフロ
ーチャートである。
【符号の説明】
1 コマンド処理部 2,2A コマンド実行部 4 情報入力手段 5 プログラム 6,6A 登録用プログラム 10,10A ソフトウェアシミュレータ 11 コマンド入力部 12 コマンド解析部 13 初期化/終了制御部 14 メモリアクセス制御部 15 プログラム実行制御部 16 デバッグ機能設定制御部 21 初期化/終了部 22 メモリアクセス部 23,23A プログラム実行部 24 デバッグ機能設定部 31 命令コード取得機能 32 命令コード解析機能 33 命令シミュレーション機能 34 デバッグ機能実現機能 35 実行フラグ管理機能 36 登録機能 37 比較機能 51 main.c 61 テーブル

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】 デバッグ対象のプログラムの実行を指令
    するコマンドデータの供給を受けて解析しこのコマンド
    データの解析結果に対応するコマンド実行命令を発行す
    るコマンド処理部と、前記コマンド実行命令を受けこの
    コマンド実行命令対応の処理を実行するコマンド実行部
    とを備え、前記プログラムの適用対象のハードウェアで
    ある中央処理装置の動作をソフトウェアによりシミュレ
    ーションしたソフトウェアシミュレータにおいて、 前記コマンド実行部が第1の演算実行の時に供給を受け
    デバッグ対象関数の引数およびこの関数内で参照する
    外部変数から成る第1の入力データと対応する第1の演
    算結果とを登録する登録手段と、 前記登録手段から読出した前記第1の入力データと前記
    第1の演算実行の後の第2の演算実行の時に供給される
    第2の入力データとを比較しこの比較結果前記第1およ
    び第2の入力データが同一の場合に前記第1の演算結果
    を前記第2の入力データ対応の第2の演算結果として供
    給する入力データ比較手段とを備えることを特徴とする
    ソフトウェアシミュレータ。
  2. 【請求項2】 前記登録手段が、前記第1の入力データ
    と前記第1の演算結果とを対照表の形式で記録する登録
    テーブルを備える登録用プログラムを備え、 前記登録用プログラムのロードに応答して前記登録手段
    と前記比較手段とを活性化することをことを特徴とする
    請求項1記載のソフトウェアシミュレータ。
  3. 【請求項3】 前記比較手段が、予め限定した関数に対
    応する前記第1の入力データである登録関数データと前
    記第2の入力データとを比較して前記第2の入力データ
    対応の前記登録テーブルの有無を点検する登録関数デー
    タ点検手段をさらに備え 前記登録手段が、前記第2の入力データ対応の前記登録
    テーブルの無い場合にこの第2の入力データの登録を行
    わずに次の処理に移行させる登録限定機能を有す ること
    を特徴とする請求項2記載のソフトウェアシミュレー
    タ。
JP5184291A 1993-07-27 1993-07-27 ソフトウェアシミュレータ Expired - Fee Related JP2570119B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5184291A JP2570119B2 (ja) 1993-07-27 1993-07-27 ソフトウェアシミュレータ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5184291A JP2570119B2 (ja) 1993-07-27 1993-07-27 ソフトウェアシミュレータ

Publications (2)

Publication Number Publication Date
JPH0744421A JPH0744421A (ja) 1995-02-14
JP2570119B2 true JP2570119B2 (ja) 1997-01-08

Family

ID=16150764

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5184291A Expired - Fee Related JP2570119B2 (ja) 1993-07-27 1993-07-27 ソフトウェアシミュレータ

Country Status (1)

Country Link
JP (1) JP2570119B2 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04112331A (ja) * 1990-09-03 1992-04-14 Matsushita Electric Ind Co Ltd 多段推論装置
JPH0589160A (ja) * 1991-09-26 1993-04-09 Hitachi Ltd モンテカルロシミユレーシヨン方法

Also Published As

Publication number Publication date
JPH0744421A (ja) 1995-02-14

Similar Documents

Publication Publication Date Title
EP0111952B1 (en) Verification of a processor architecture having a partial instruction set
JPH0748182B2 (ja) プログラム・エラー検出方法
JP2570119B2 (ja) ソフトウェアシミュレータ
JP2828590B2 (ja) マイクロプログラム検証方法
JP3745968B2 (ja) 試験システム及び試験方法及び試験プログラム及び試験プログラムを記録した計算機で読み取り可能な記録媒体
JP2533489B2 (ja) シミユレ−シヨン方式
JP4149047B2 (ja) シミュレータ
JPS5835648A (ja) プログラム実行制御方式
JPS63300330A (ja) ファ−ムウェアのデバッグ方法
JP2967741B2 (ja) Cpu互換性テスト装置
JPH0290243A (ja) マイクロプログラム論理検証方式
JP2704117B2 (ja) シミュレータ
JPH02244343A (ja) プログラムのデバッグ方式
JPH10326188A (ja) リソース競合チェック装置、アセンブル装置、リンク装置、命令パイプラインシミュレーション装置、リソース競合チェック方法、およびリソース競合チェックプログラムを記録した媒体
JPH04205469A (ja) 情報処理装置の論理シミュレーション方法
JPH05204698A (ja) デバッガ処理方式
JPS604492B2 (ja) 計算機
JPS6277657A (ja) 利用者プログラムの実行履歴情報収集方式
JPH09185525A (ja) プロトコルデバッグ方式
JPS6225340A (ja) 検査装置
JPH11353206A (ja) テスト支援システム
JPH04533A (ja) 情報処理システム
JPS6269329A (ja) メモリ破壊位置検出方式
JPH02137032A (ja) テストプログラム作成方法
JPH0333944A (ja) 命令アドレストレース方式

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19960820

LAPS Cancellation because of no payment of annual fees