(57)【要約】【課題】ターゲットプログラムをホストプロセッサ上でシミュレートする際にシミュレーションの高速実行を可能にすると共にデバッグが可能なプロセッサシミュレータを提供する。【解決手段】ターゲットプロセッサ上で直接実行可能なマシン語レベルの第１の命令コードで記述された第１のプログラムを、ホストプロセッサ上で直接実行可能なマシン語レベルの第２の命令コードで記述された第２のプログラムに変換するコード変換生成手段２と、ホストプロセッサが第２のプログラムをシミュレートする際に、第１のプログラムに関するデバッグ情報を表示するデバッグ情報表示手段３と、第２のプログラムをホストプロセッサでシミュレートするための制御を行う実行制御手段３とを備える。【選択図】  図１
2006163684.tif 000002
【特許請求の範囲】
【請求項１】
特定のターゲットプロセッサ上で実行することを想定して作成されたプログラムを前記ターゲットプロセッサとは構成が異なるホストプロセッサ上でシミュレートするためのプロセッサシミュレータにおいて、
前記ターゲットプロセッサ上で直接実行可能なマシン語レベルの第１の命令コードで記述された第１のプログラムを、前記ホストプロセッサ上で直接実行可能なマシン語レベルの第２の命令コードで記述された第２のプログラムに変換するコード変換生成手段と、
前記ホストプロセッサが前記第２のプログラムをシミュレートする際に、前記第１のプログラムに関するデバッグ情報を表示するデバッグ情報表示手段と、
前記第２のプログラムをホストプロセッサでシミュレートするための制御を行う実行制御手段と、
を備えたことを特徴とするプロセッサシミュレータ。
【請求項２】
請求項１に記載のプロセッサシミュレータにおいて、
前記コード変換生成手段は、前記第１のプログラムから第２のプログラムを生成する際に、第１のプログラム上のステップ毎に、第１の命令コードの各々が配置される先頭アドレスと、第２のプログラム上の対応する第２の命令コードが配置される先頭アドレスとの対応関係を表すアドレス変換テーブルを生成することを特徴とするプロセッサシミュレータ。
【請求項３】
請求項２に記載のプロセッサシミュレータにおいて、
前記アドレス変換テーブルは、第１のプログラムのステップ毎に、プログラムの一時停止の有無を表すブレーク情報を保持する領域を備えることを特徴とするプロセッサシミュレータ。
【請求項４】
請求項３に記載のプロセッサシミュレータにおいて、
前記実行制御手段は、前記ホストプロセッサが第２のプログラムをシミュレートする際に、実行するステップ毎に、各命令コードのアドレスに基づいて前記アドレス変換テーブルのブレーク情報を参照して、第２のプログラムのシミュレートの一時停止の有無を決定することを特徴とするプロセッサシミュレータ。
【請求項５】
請求項４に記載のプロセッサシミュレータにおいて、
前記ターゲットプロセッサ上の全レジスタの各々の内容を保持する内部情報保持テーブルを備え、
前記コード変換生成手段は、前記第１のプログラムから第２のプログラムを生成する際に、前記ターゲットプロセッサ上の各レジスタを前記内部情報保持テーブルに置き換え、
前記デバッグ情報表示手段は、前記実行制御手段が第２のプログラムのシミュレートを一時停止した際に、前記内部情報保持テーブルの内容を前記ターゲットプロセッサの内部情報として表示することを特徴とするプロセッサシミュレータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特定のプロセッサ（コンピュータの中央処理装置）上で実行することを想定して作成されたプログラムのシミュレーション及びデバッグを行うために用いられるプロセッサシミュレータに関する。
【背景技術】
【０００２】
例えば、メーカにおいて特定の装置を新たに製造するような場合には、前記装置のプロセッサを含むハードウェアとそれに組み込まれる制御用のプログラムとを別々の部門で設計及び作成する場合が多い。また、効率的にプログラムを作成するために、例えば装置のハードウェアが完成する前やハードウェアが完成した後であっても、プログラム単独でそのデバッグや性能評価を行う必要が生じる。そこで、特定のホストコンピュータをプロセッサシミュレータとして動作させ、特定の装置用に開発されたプログラム（ターゲットプログラム）に関するデバッグ及び性能評価をシミュレーションにより行う場合が多い。ホストコンピュータに備わっているプロセッサと評価対象のプログラムが組み込まれる装置のハードウェアに設けられるプロセッサ（ターゲットプロセッサ）とは異なる場合が多いので、ターゲットプログラムをホストコンピュータで直接実行することはできない。
【０００３】
従来のプロセッサシミュレータでは、ターゲットプロセッサが直接実行可能な命令コードを逐次解釈するオブジェクトシミュレーション方式が主流である。すなわち、ターゲットプロセッサの命令コードの組み合わせとして構成されているターゲットプログラムの内容をホストプロセッサ上で１命令コードずつ逐次に解釈して模擬的に実行する。このような方式のプロセッサシミュレータでは、ターゲットプロセッサ内部のレジスタの動作も忠実に模擬できるため、ターゲットプロセッサ上でターゲットプログラムを実行する場合と同様の環境でデバッグを容易に行うことができる。しかし、命令コードの解釈の処理に比較的大きな時間がかかるため、この時間がシミュレーション時間のオーバーヘッドとなり、プログラムのシミュレートを高速で行うことができないのが実情である。
【０００４】
そのため、例えば特許文献１の技術においては、プログラムのシミュレートの際に、ターゲットプロセッサの命令コードの解釈を不要にすることを提案している。この技術では、シミュレーションを行う前に、ターゲットプロセッサの命令コードの組み合わせとして記述されたターゲットプログラムから、ホストプロセッサ上で実行可能なアセンブラ言語又はマシン語レベルの命令コードの組み合わせで表現されたシミュレーションプログラムを生成する。生成されたシミュレーションプログラムをホストプロセッサで直接実行することにより、シミュレーションの際にターゲットプロセッサの命令コードを解釈する必要がなくなるので、プログラムのシミュレートを高速で行うことが可能になる。
【特許文献１】特開平６−２０２９０３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１では、ターゲットプログラムのデバッグを行う際に必要とされる技術は開示されていない。従って、ターゲットプログラムのシミュレートはできるが、デバッグを行うことができない。すなわち、ターゲットプログラムと実際にシミュレートされるプログラムとが完全に一致するわけではなく、例えば各ステップの命令コードの長さや使用するレジスタなどに違いが生じるので、ターゲットプログラムのシミュレート中に問題が生じたような場合に、プログラム中のどの部分でどのような状況で問題が生じたのか把握することができず、問題を解決するのが極めて困難になる。実際にターゲットプログラムのデバッグを行うためには、ターゲットプログラムのシミュレートを行いながら、ターゲットプロセッサにおけるレジスタやメモリのアクセスに関する状況を把握したり、所望の位置でプログラムを停止するためのブレークポイントを割り当てるための機能が不可欠である。本発明は、特定のプロセッサ用に開発されたターゲットプログラムをホストプロセッサ上でシミュレートする際に、シミュレーションの高速実行を可能にすると共に、ターゲットプログラムのデバッグが可能なプロセッサシミュレータを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、特定のターゲットプロセッサ上で実行することを想定して作成されたプログラムを前記ターゲットプロセッサとは構成が異なるホストプロセッサ上でシミュレートするためのプロセッサシミュレータにおいて、前記ターゲットプロセッサ上で直接実行可能なマシン語レベルの第１の命令コードで記述された第１のプログラムを、前記ホストプロセッサ上で直接実行可能なマシン語レベルの第２の命令コードで記述された第２のプログラムに変換するコード変換生成手段と、前記ホストプロセッサが前記第２のプログラムをシミュレートする際に、前記第１のプログラムに関するデバッグ情報を表示するデバッグ情報表示手段と、前記第２のプログラムをホストプロセッサでシミュレートするための制御を行う実行制御手段とを備える。この構成によれば、コード変換生成手段が生成した第２のプログラムの各命令コードはホストプロセッサが直接実行できるので、プログラムのシミュレートを高速で処理できる。また、実行制御手段がホストプロセッサにおけるプログラムのシミュレートを制御するので、デバッグに必要なシミュレートのブレーク処理などが可能になる。また、デバッグ情報表示手段が第１のプログラムに関するデバッグ情報を表示するので、プログラムに問題が発生した場合の状況の把握が容易になる。
【０００７】
本発明において、前記コード変換生成手段は、前記第１のプログラムから第２のプログラムを生成する際に、第１のプログラム上のステップ毎に、第１の命令コードの各々が配置される先頭アドレスと、第２のプログラム上の対応する第２の命令コードが配置される先頭アドレスとの対応関係を表すアドレス変換テーブルを生成する。この構成によれば、アドレス変換テーブルを参照することにより、第２のプログラムにおける実行中のステップのアドレスから、第１のプログラムにおける対応するステップのアドレスを知ることができる。従って、第２のプログラムをシミュレートしている途中で問題が発生した場合には、第１のプログラムのどのアドレスの位置で問題が発生したのかを把握して原因を究明することができる。
【０００８】
本発明において、前記アドレス変換テーブルは、第１のプログラムのステップ毎に、プログラムの一時停止の有無を表すブレーク情報を保持する領域を備える。この構成によれば、アドレス変換テーブルにステップ毎のブレーク情報を保持することができるので、ステップ毎にアドレス変換テーブルの内容を参照することにより、プログラムのシミュレートを一時停止すべきか否かをステップ毎に判断することができる。従って、事前にユーザが指定した任意のステップ（ブレークポイント）でプログラムのシミュレートを一時停止することが可能になる。
【０００９】
本発明において、前記実行制御手段は、前記ホストプロセッサが第２のプログラムをシミュレートする際に、実行するステップ毎に、各命令コードのアドレスに基づいて前記アドレス変換テーブルのブレーク情報を参照して、第２のプログラムのシミュレートの一時停止の有無を決定する。この構成によれば、実行制御手段がアドレス変換テーブルのブレーク情報に基づいて第２のプログラムのシミュレートの一時停止の有無を決定するので、事前にユーザが指定した任意のステップでプログラムのシミュレートを一時停止することが可能になる。
【００１０】
本発明において、前記ターゲットプロセッサ上の全レジスタの各々の内容を保持する内部情報保持テーブルを備え、前記コード変換生成手段は、前記第１のプログラムから第２のプログラムを生成する際に、前記ターゲットプロセッサ上の各レジスタを前記内部情報保持テーブルに置き換え、前記デバッグ情報表示手段は、前記実行制御手段が第２のプログラムのシミュレートを一時停止した際に、前記内部情報保持テーブルの内容を前記ターゲットプロセッサの内部情報として表示する。この構成によれば、内部情報保持テーブルにターゲットプロセッサ上の各レジスタに相当する情報が割り当てられた状態でホストプロセッサがプログラムをシミュレートするので、第１のプログラムをターゲットプロセッサで実行した場合のターゲットプロセッサ内部の各レジスタの内容に相当する情報を前記内部情報保持テーブルから得ることができる。従って、ホストプロセッサがプログラムをシミュレートする際に、デバッグ情報表示手段はターゲットプロセッサ内部のレジスタの内容を表示することができる。
【発明の効果】
【００１１】
本発明によれば、ターゲットプロセッサ用に作成されたターゲットプログラムからホストプロセッサで実行可能なシミュレーション用のプログラムを第２のプログラムとして事前に生成するので、プログラムのシミュレートを高速で処理することができる。また、ブレークポイントでプログラムのシミュレートを一時的に停止したり、プロセッサの内部情報を表示することも可能であり、プログラムのデバッグを容易に行うことができる。
【発明を実施するための最良の形態】
【００１２】
図１はプロセッサシミュレータの構成を示すブロック図である。図１に示すように、プロセッサシミュレータ１は、コード変換生成手段２，デバッグ情報表示手段３，シミュレート用プログラム１２及び実行制御手段１３を備えており、ターゲットプログラム１１からシミュレート用プログラム１２を生成し、プロセッサシミュレータ１上の図示しないホストプロセッサを用いてシミュレート用プログラム１２をシミュレートする。
【００１３】
ターゲットプログラム１１は、特定のターゲットプロセッサを用いたコンピュータシステム上で実行することを想定して開発されたプログラムであり、ターゲットプロセッサが直接実行可能なマシン語レベルの命令コード１１１〜１１ｎで構成されている。シミュレート用プログラム１２は、ホストプロセッサが直接実行可能なマシン語レベルの命令コード１２１〜１２ｎで構成されている。このシミュレート用プログラム１２は、ターゲットプログラム１１をシミュレートするために生成されるプログラムであり、命令コード１２１〜１２ｎのそれぞれが、命令コード１１１〜１１ｎと対応している。
【００１４】
コード変換生成手段２は、ターゲットプログラム１１の命令コード１１１〜１１ｎを順次に読み込んで命令の内容を解釈し、命令コード１２１〜１２ｎにそれぞれ変換しシミュレート用プログラム１２を生成する。なお、コード変換生成手段２，デバッグ情報表示手段３及び実行制御手段１３についてはホストプロセッサが実行可能なプログラムとして構成されているが、専用のハードウェアで構成することも可能である。
【００１５】
図２はコード変換手段の構成を示すブロック図である。図２に示すように、コード変換生成手段２は、ターゲットプログラム入力部２１，命令解釈部２２，命令変換部２３，コンパイル部２４，シミュレート用プログラム出力部２５及びアドレス変換テーブル生成部２６を備えている。
【００１６】
ターゲットプログラム入力部２１は、前述のターゲットプログラム１１を１命令ずつ順次に入力して命令解釈部２２に送る。命令解釈部２２では、入力された１命令毎に、ターゲットプロセッサにおける命令の種類，使用するレジスタ，メモリアドレス，定数などを判別し、その結果を命令変換部２３に送る。命令変換部２３では、命令解釈部２２の判別結果に基づいて、それに対応するホストプロセッサ用のプログラムのコードを生成する。  実際には、命令コード１１１〜１１ｎを直接命令コード１２１〜１２ｎに変換するのは難しいので、命令変換部２３は命令解釈部２２の判別結果から、Ｃ言語のような高級言語で記述されたプログラム、あるいはホストプロセッサ用のマシン語のニーモニックコードで記述されたアセンブラソースコードを生成する。そして、命令変換部２３が生成したプログラムをコンパイル部２４がコンパイルして命令コード１２１〜１２ｎを生成する。すなわち、コンパイル部２４は命令変換部２３が生成するプログラムの言語に対応したコンパイラである。また、コンパイル部２４は命令コードを生成する際に、処理すべき命令が分岐命令の場合には分岐先アドレスの割り付けなどの処理も行い、最終的にホストプロセッサ側のコンピュータの実メモリ上に展開すべきプログラム全体のイメージを生成する。
【００１７】
シミュレート用プログラム出力部２５は、コンパイル部２４が生成したプログラム全体のイメージを、ホストプロセッサ側のコンピュータの実メモリ上にロードする。アドレス変換テーブル生成部２６は、コンパイル部２４が生成したプログラム全体のイメージに基づいて、アドレス変換テーブルを生成する。このアドレス変換テーブルは、例えば図４に示すように構成され、プログラムの命令コードの処理ステップ毎に、ターゲットプログラム１１の各命令コード（１１１〜１１ｎ）の先頭アドレスと、シミュレート用プログラム１２の各命令コード（１２１〜１２ｎ）の先頭アドレスとの対応関係を表す情報を保持している。
【００１８】
コード変換生成手段２の動作の具体例について、図５を参照しながら説明する。この例では、ターゲットプロセッサがインテル社製の１６ビットマイクロプロセッサ「８０８６」である場合に、ターゲットプログラムからＣ言語で記述されたプログラム（シミュレート用プログラム１２のソースコード）を生成する場合を想定している。なお、高級言語であるＣ言語のプログラムを生成することにより、所定のＣコンパイラを利用して、様々な種類のホストプロセッサで利用可能なシミュレート用プログラム１２を生成することができる。図５の（１）に示す例では、レジスタに即値を転送する命令コードを変換する場合を表している。
【００１９】
ところで、ターゲットプロセッサとホストプロセッサとは構成が異なるため、ターゲットプロセッサ内部のレジスタ群とホストプロセッサ内部のレジスタ群とは必ずしも一致しない。そこで、生成するシミュレート用プログラム１２においては、レジスタの内容を把握するために、ターゲットプロセッサ内部のレジスタ群に相当するレジスタ管理テーブルをメモリ上に配置する。図５において、配列「Ｒｅｇ」がターゲットプロセッサ内部のレジスタ群に相当するレジスタ管理テーブルである。このレジスタ管理テーブルは、例えば図６に示すように構成される。すなわち、１４個のレジスタ群（ＩＰ，ＳＰ，ＢＰ，ＡＸ，ＢＸ，ＣＸ，ＤＸ，ＣＳ，ＤＳ，ＥＳ，ＳＳ，ＳＩ，ＤＩ，Ｆｌａｇ）のそれぞれに相当する情報が配列「Ｒｅｇ」の０〜１３の各番号の要素として管理されている。実際には、コンパイル部２４がコンパイルする際に、ターゲットプログラム１１における各レジスタは配列「Ｒｅｇ」の各要素に置き換えられる。例えば、図５の（１）の場合にはレジスタ「ＡＸ」を使用するので、図６における番号「３」の要素に相当し、コンパイル時にＣプリプロセッサにより「ＡＸ」が「３」に置き換えられる。すなわち、「Ｒｅｇ［ＡＸ］＝０ｘ１０００」（０ｘは１６進数を表す）が「Ｒｅｇ［３］＝０ｘ１０００」に置き換えられる。
【００２０】
図５の（２）に示す例では、命令コードが加算命令の場合を表している。この例では、配列Ｒｅｇ内部のレジスタ同士の加算を実行した後で、「ＳｅｔＦｌａｇ」関数を呼んで、ターゲットプロセッサ（８０８６）のフラグレジスタ「Ｆｌａｇ」に加算結果のフラグ値を反映する。「ＳｅｔＦｌａｇ」関数の引数は命令、レジスタ、演算結果の順となる。図５の（３）に示す例では、レジスタ「ＢＸ」の値が示すアドレスへの分岐命令を処理する場合を表している。ここで、配列「TargetToHostAddress」はアドレス変換テーブル生成部２６が生成するアドレス変換テーブル３１に相当し、ターゲットプログラム１１における該当ステップの先頭アドレスからシミュレート用プログラム１２の該当する命令コードの先頭アドレスを調べることを意味する。そして、該当するアドレスに「ｇｏｔｏ」文でジャンプしプログラムの処理経路の分岐を実現する。
【００２１】
図３は、デバッグ情報表示手段の構成を示すブロック図である。図３に示すように、デバッグ情報表示手段３はアドレス変換テーブル３１，ブレーク情報制御手段３２及びプロセッサ情報表示手段３３を備えている。アドレス変換テーブル３１は、前述のアドレス変換テーブル生成部２６が生成した情報から作成されたものである。このアドレス変換テーブル３１は、例えば図４に示すように、ターゲットプログラム１１の処理ステップ毎に、ターゲットプログラム１１の命令コード（ターゲット命令コード）の先頭アドレスとシミュレート用プログラム１２の命令コード（ホストプロセッサ命令コード）の先頭アドレスとの対応関係を保持すると共に、処理ステップ毎にブレーク情報を保持するための領域を備えている。
【００２２】
ブレーク情報制御手段３２は、使用者からの入力に従ってアドレス変換テーブル３１にブレーク情報を書き込む。すなわち、使用者が所定のデバッグ画面を見ながら必要な処理ステップの位置にプログラムの一時停止をするための指示を入力すると、アドレス変換テーブル３１の該当する位置にブレーク情報として「ＴＲＵＥ」を書き込む。一時停止する位置以外には「ＦＡＬＳＥ」が書き込まれている。
【００２３】
アドレス変換テーブル３１には、処理ステップ毎にターゲットプログラム１１における命令コードの先頭アドレスとシミュレート用プログラム１２における命令コードの先頭アドレスとの対応関係が保持されているので、ブレーク情報として「ＴＲＵＥ」が書き込まれた処理ステップについても、ターゲットプログラム１１上のアドレスとシミュレート用プログラム１２上のアドレスとの双方をアドレス変換テーブル３１から知ることができる。つまり、シミュレート用プログラム１２をシミュレートしながら、ブレーク情報として「ＴＲＵＥ」が書き込まれた処理ステップで正しく一時停止すると共に、ターゲットプログラム１１上の実行位置（アドレス）を正しく知ることができる。
【００２４】
プロセッサ情報表示手段３３は、ターゲットプログラム１１をデバッグする際に、ターゲットプロセッサに関する内部レジスタの情報やメモリアクセスの情報を表示するために設けてある。実際には、シミュレート用プログラム１２をホストプロセッサでシミュレートしながらデバッグを行うことになるが、前述のアドレス変換テーブル３１やレジスタ管理テーブル（図６参照）を参照することにより、ターゲットプログラム１１のデバッグに必要な情報を取得することができる。
【００２５】
プロセッサ情報表示手段３３によって表示される情報の具体例が図７に示されている。  図７（１）の例では、ターゲットプロセッサである「８０８６」プロセッサの内部レジスタのそれぞれが保持している値の一覧を表している。すなわち、ホストプロセッサがシミュレート用プログラム１２をシミュレートする際には、ターゲットプロセッサの各レジスタの代わりに、図６に示すレジスタ管理テーブル（配列Ｒｅｇ）が用いられるので、このレジスタ管理テーブルの各番号を各レジスタに置き換えて一覧表示すれば、図７（１）に示すような情報が得られる。図７（２）の例では、ターゲットプログラム１１における各変数のメモリアドレス割り当て及び変数の値を一覧で表している。実際には、ホストプロセッサがシミュレート用プログラム１２をシミュレートする際に、プログラムの実行が予め割り当てたブレークポイントなどで一時停止すると、実行制御手段１３からの指示に従って図７に示すような表示内容を最新の値に更新する。
【００２６】
プログラムの実行がブレークポイントなどで一時停止すると、シミュレート用プログラム１２における現在の実行位置の命令コード列の先頭アドレスのデータが抽出され、これがデバッグ情報表示手段３に入力される。この場合、デバッグ情報表示手段３はアドレス変換テーブル３１を参照して、シミュレート用プログラム１２における現在の命令コード列の先頭アドレスからターゲットプログラム１１における該当する命令コードの先頭アドレスを取得することにより、ターゲットプログラム１１の実行位置を表示することができる。なお、プロセッサ情報表示手段３３によって表示された値を強制的に変更し、その変更をプログラムのシミュレートにおけるレジスタの値や変数の値に反映することも可能である。
【００２７】
図１に示す実行制御手段１３は、ホストプロセッサがシミュレート用プログラム１２をシミュレートするための制御を行うものである。具体的には、シミュレート用プログラム１２の命令コード１２１〜１２ｎをホストプロセッサで順次に実行していくことにより、ターゲットプログラム１１のシミュレーションを実現する。また、１ステップの命令コードを実行するたびに、ホストプロセッサが実行中の命令コードのアドレスに基づいて、デバッグ情報表示手段３内部のアドレス変換テーブル３１の内容を参照し、該当する位置のブレーク情報を調べる。
【００２８】
アドレス変換テーブル３１の該当する位置にブレーク情報として「ＴＲＵＥ」が書き込まれていた場合には、実行制御手段１３は該当するアドレスの命令コードを実行する前に、ホストプロセッサにおけるシミュレート用プログラム１２のシミュレートを一時停止させる。更に、実行制御手段１３はプログラムのシミュレートが一時停止したことをデバッグ情報表示手段３内部のプロセッサ情報表示手段３３及びブレーク情報制御手段３２に通知する。
【００２９】
この情報を受け取った場合、ブレーク情報制御手段３２はアドレス変換テーブル３１上の現在停止しているアドレスのブレーク情報を「ＦＡＬＳＥ」にクリアする。また、使用者からの入力によりシミュレート用プログラム１２のシミュレートの再開が指示された場合には、ブレーク情報制御手段３２は次に停止すべきブレークポイントを決定した後、停止していたアドレスの位置からシミュレート用プログラム１２上の命令コードの実行を再開する。例えば、アドレス変換テーブル３１上の全ステップのブレーク情報の位置にそれぞれブレーク情報制御手段３２が「ＴＲＵＥ」を順次に書き込むように制御すれば、ステップ毎にプログラムのシミュレートを一時停止することになるので、ターゲットプログラム１１をステップ実行することも可能になる。
【産業上の利用可能性】
【００３０】
本発明のプロセッサシミュレータは、ターゲットプロセッサ用に作成されたターゲットプログラムからホストプロセッサで実行可能なシミュレーション用のプログラムを第２のプログラムとして事前に生成するので、プログラムのシミュレートを高速で処理することができ、また、ブレークポイントでプログラムのシミュレートを一時的に停止したり、プロセッサの内部情報を表示することも可能であり、プログラムのデバッグを容易に行うことができるという効果を有し、特定のプロセッサ（コンピュータの中央処理装置）上で実行することを想定して作成されたプログラムのシミュレーション及びデバッグを行うために用いられるプロセッサシミュレータ等として有用である。
【図面の簡単な説明】
【００３１】
【図１】プロセッサシミュレータの構成を示すブロック図
【図２】コード変換生成手段の構成を示すブロック図
【図３】デバッグ情報表示手段の構成を示すブロック図
【図４】アドレス変換テーブルの構成例を示す模式図
【図５】コード変換前後のプログラムのコード列の具体例を示す模式図
【図６】レジスタ管理テーブルの構成例を示す模式図
【図７】表示可能なデバッグ情報の具体例を示す模式図
【符号の説明】
【００３２】
１    プロセッサシミュレータ
１１  ターゲットプログラム
１１１，１１２，１１ｎ  命令コード
１２  シミュレート用プログラム
１２１，１２２，１２ｎ  命令コード
１３  実行制御手段
２    コード変換生成手段
２１  ターゲットプログラム入力部
２２  命令解釈部
２３  命令変換部
２４  コンパイル部
２５  シミュレート用プログラム出力部
２６  アドレス変換テーブル生成部
３    デバッグ情報表示手段
３１  アドレス変換テーブル
３２  ブレーク情報制御手段
３３  プロセッサ情報表示手段
【図１】
2006163684.tif 000003
【図２】
2006163684.tif 000004
【図３】
2006163684.tif 000005
【図４】
2006163684.tif 000006
【図５】
2006163684.tif 000007
【図６】
2006163684.tif 000008
【図７】
2006163684.tif 000009