JPH0991168A - エミュレータ - Google Patents
エミュレータInfo
- Publication number
- JPH0991168A JPH0991168A JP7247514A JP24751495A JPH0991168A JP H0991168 A JPH0991168 A JP H0991168A JP 7247514 A JP7247514 A JP 7247514A JP 24751495 A JP24751495 A JP 24751495A JP H0991168 A JPH0991168 A JP H0991168A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- start address
- program
- address
- memory
- 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
Links
Landscapes
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
(57)【要約】
【課題】 アクセス可能なメモリ領域内であれば、正し
い命令の先頭アドレス以外のアドレスから命令が実行さ
れていてもそれを検出できず、プログラムの暴走等が起
こる危険性があった。 【解決手段】 プログラムが格納されているメモリ2上
の、各命令の先頭アドレスを命令先頭アドレス格納メモ
リ6に格納し、その命令先頭アドレス格納メモリ6の情
報と実際に実行される命令のフェッチアドレスとを、モ
ニタ回路7で比較して実行時の命令フェッチアドレスが
正しい命令の先頭アドレスであるか否かを判定し、正し
い命令の先頭アドレスではないと判定された場合には、
ブレーク回路8にてプログラムの実行をブレークするよ
うにした。
い命令の先頭アドレス以外のアドレスから命令が実行さ
れていてもそれを検出できず、プログラムの暴走等が起
こる危険性があった。 【解決手段】 プログラムが格納されているメモリ2上
の、各命令の先頭アドレスを命令先頭アドレス格納メモ
リ6に格納し、その命令先頭アドレス格納メモリ6の情
報と実際に実行される命令のフェッチアドレスとを、モ
ニタ回路7で比較して実行時の命令フェッチアドレスが
正しい命令の先頭アドレスであるか否かを判定し、正し
い命令の先頭アドレスではないと判定された場合には、
ブレーク回路8にてプログラムの実行をブレークするよ
うにした。
Description
【0001】
【発明の属する技術分野】この発明は、マイクロコンピ
ュータのプログラム開発で使用されるエミュレータに関
するもので、特に、不正アドレスの命令実行を検出する
と実行中のプログラムを停止させるブレーク機能を備え
たエミュレータに関するものである。
ュータのプログラム開発で使用されるエミュレータに関
するもので、特に、不正アドレスの命令実行を検出する
と実行中のプログラムを停止させるブレーク機能を備え
たエミュレータに関するものである。
【0002】
【従来の技術】マイクロコンピュータのプログラム開発
では、プログラムの誤りを発見・修正するための支援シ
ステムとしてエミュレータが使用される。従来のエミュ
レータでは、プログラム実行中に不正なアドレスでの命
令実行を検出する機能として、メモリ保護機能がある。
このメモリ保護機能は、読み取り専用メモリ(ROM)
領域に対して何らかのデータが書き込まれたり、メモリ
の空き領域に対して、読み出し/書き込み/命令フェッ
チなどのアクセスがなされた場合に、プログラムの実行
をブレークさせる機能である。
では、プログラムの誤りを発見・修正するための支援シ
ステムとしてエミュレータが使用される。従来のエミュ
レータでは、プログラム実行中に不正なアドレスでの命
令実行を検出する機能として、メモリ保護機能がある。
このメモリ保護機能は、読み取り専用メモリ(ROM)
領域に対して何らかのデータが書き込まれたり、メモリ
の空き領域に対して、読み出し/書き込み/命令フェッ
チなどのアクセスがなされた場合に、プログラムの実行
をブレークさせる機能である。
【0003】図6はこのようなメモリ保護機能を備えた
従来のエミュレータを示すブロック図である。図におい
て、1は当該エミュレータのエミュレータマイクロコン
ピュータユニット(以下、エミュレータMCUという)
であり、2はプログラムやデータを格納するメモリであ
る。3はメモリ2の読み出し/書き込み/命令フェッチ
などのアクセス条件が設定されるマップメモリであり、
4はエミュレータMCU1から出力されるアドレスバス
/データバス/制御信号の状態を監視するモニタ回路で
ある。5はエミュレータMCU1のメモリ2の読み出し
/書き込み/命令フェッチなどのアクセス状態を、マッ
プメモリ3に設定されたアクセス条件と比較して、アク
セス状態が異なっているときに実行中のプログラムを停
止させるブレーク回路である。
従来のエミュレータを示すブロック図である。図におい
て、1は当該エミュレータのエミュレータマイクロコン
ピュータユニット(以下、エミュレータMCUという)
であり、2はプログラムやデータを格納するメモリであ
る。3はメモリ2の読み出し/書き込み/命令フェッチ
などのアクセス条件が設定されるマップメモリであり、
4はエミュレータMCU1から出力されるアドレスバス
/データバス/制御信号の状態を監視するモニタ回路で
ある。5はエミュレータMCU1のメモリ2の読み出し
/書き込み/命令フェッチなどのアクセス状態を、マッ
プメモリ3に設定されたアクセス条件と比較して、アク
セス状態が異なっているときに実行中のプログラムを停
止させるブレーク回路である。
【0004】次に動作について説明する。なお、ここで
はこの発明に関連する、メモリ保護機能の動作について
のみ説明し、他の動作についてはその説明を省略する。
ユーザがプログラムをエミュレータで実行する前に、メ
モリ保護機能のアクセス条件をマップメモリ3に設定す
る。モニタ回路4では、エミュレータMCU1から出力
されているアドレスバス/データバス/制御信号を常に
監視し、エミュレータMCU1のメモリ2のアクセス状
態と、マップメモリ3に設定されたアクセス条件とを比
較する。アクセス条件が一致しない場合、モニタ回路4
はその旨を伝える制御信号をブレーク回路5に送る。ブ
レーク回路5はモニタ回路4から送られてきた制御信号
により、実行中のプログラムを停止させるための制御信
号を、エミュレータMCU1へ送る。この制御信号を受
けたエミュレータMCU1は実行中のプログラムを停止
させる。
はこの発明に関連する、メモリ保護機能の動作について
のみ説明し、他の動作についてはその説明を省略する。
ユーザがプログラムをエミュレータで実行する前に、メ
モリ保護機能のアクセス条件をマップメモリ3に設定す
る。モニタ回路4では、エミュレータMCU1から出力
されているアドレスバス/データバス/制御信号を常に
監視し、エミュレータMCU1のメモリ2のアクセス状
態と、マップメモリ3に設定されたアクセス条件とを比
較する。アクセス条件が一致しない場合、モニタ回路4
はその旨を伝える制御信号をブレーク回路5に送る。ブ
レーク回路5はモニタ回路4から送られてきた制御信号
により、実行中のプログラムを停止させるための制御信
号を、エミュレータMCU1へ送る。この制御信号を受
けたエミュレータMCU1は実行中のプログラムを停止
させる。
【0005】なお、このようなブレーク機能としては、
例えば特開平5−53843号公報や、特開平5−20
058号公報などに示されたものもある。上記特開平5
−53843号公報に記載のブレーク機能は、ソースプ
ログラムからアセンブラまたはコンパイラを介して送出
する複数バイトからなる命令コードの1バイト目を示す
フラグを設け、そのフラグをデコードした1バイト目の
信号、および前回フェッチして記憶しておいたオペコー
ドアドレスと、今回フェッチしたアドレスとを比較し
て、不一致であった場合に出力されるプログラム分岐検
出信号から命令の1バイト目以外へのプログラム分岐を
検出し、その場合にCPUが暴走したと判定してCPU
へ通知するようにしたものである。
例えば特開平5−53843号公報や、特開平5−20
058号公報などに示されたものもある。上記特開平5
−53843号公報に記載のブレーク機能は、ソースプ
ログラムからアセンブラまたはコンパイラを介して送出
する複数バイトからなる命令コードの1バイト目を示す
フラグを設け、そのフラグをデコードした1バイト目の
信号、および前回フェッチして記憶しておいたオペコー
ドアドレスと、今回フェッチしたアドレスとを比較し
て、不一致であった場合に出力されるプログラム分岐検
出信号から命令の1バイト目以外へのプログラム分岐を
検出し、その場合にCPUが暴走したと判定してCPU
へ通知するようにしたものである。
【0006】また、特開平5−20058号公報に記載
のブレーク機能は以下のようなものである。すなわち、
マイクロコンピュータの中には、先頭の命令コード(オ
ペコード)と内部のフラグ状態の組み合わせで、その命
令の動作が確定する特殊なマイクロコンピュータがあ
る。このようなマイクロコンピータでは、先頭の命令コ
ードが同じでも、内部フラグの“0”/“1”の状態に
よって、全く違う動作をする。例えば、内部フラグが
“0”のときには続くオペランドを16ビットデータと
見なして、2バイト分のオペランドをフェッチする。と
ころが、内部フラグが“1”のときにはオペランドを8
ビットデータと見なして、1バイトしかオペランドをフ
ェッチしないという動作をする。このようなマイクロコ
ンピータでは、プログラムの不具合でオペランドと内部
フラグに不都合が生じた場合、誤って次のオペコードを
オペランドとしてフェッチしたり、オペランドを次の命
令として誤って実行してしまうことになり、不正なアド
レスから命令を実行してしまうことになる。そのため、
各命令語に当該命令語がオペコードであるかオペランド
であるかを示す判別ビットを付加し、命令レジスタから
は格納された命令語の判別ビットを出力させ、命令デコ
ーダからは命令レジスタに格納された命令語をオペコー
ドとして解読するかオペランドとして解読するかを示す
信号を出力させてそれらを比較し、一致していない場合
には割り込み要求を発生するようにしたものである。
のブレーク機能は以下のようなものである。すなわち、
マイクロコンピュータの中には、先頭の命令コード(オ
ペコード)と内部のフラグ状態の組み合わせで、その命
令の動作が確定する特殊なマイクロコンピュータがあ
る。このようなマイクロコンピータでは、先頭の命令コ
ードが同じでも、内部フラグの“0”/“1”の状態に
よって、全く違う動作をする。例えば、内部フラグが
“0”のときには続くオペランドを16ビットデータと
見なして、2バイト分のオペランドをフェッチする。と
ころが、内部フラグが“1”のときにはオペランドを8
ビットデータと見なして、1バイトしかオペランドをフ
ェッチしないという動作をする。このようなマイクロコ
ンピータでは、プログラムの不具合でオペランドと内部
フラグに不都合が生じた場合、誤って次のオペコードを
オペランドとしてフェッチしたり、オペランドを次の命
令として誤って実行してしまうことになり、不正なアド
レスから命令を実行してしまうことになる。そのため、
各命令語に当該命令語がオペコードであるかオペランド
であるかを示す判別ビットを付加し、命令レジスタから
は格納された命令語の判別ビットを出力させ、命令デコ
ーダからは命令レジスタに格納された命令語をオペコー
ドとして解読するかオペランドとして解読するかを示す
信号を出力させてそれらを比較し、一致していない場合
には割り込み要求を発生するようにしたものである。
【0007】
【発明が解決しようとする課題】従来のエミュレータは
以上のように構成されているので、そのメモリ保護機能
は、プログラムの不具合等により不正なアドレスから命
令が実行された場合でも、その領域がプログラム領域な
どのアクセス可能なメモリ領域であれば異常が検出でき
ないという課題があった。つまり、プログラム領域のよ
うなアクセス可能なメモリ領域内であれば、正しい命令
の先頭アドレス以外のアドレスから命令が実行されてい
ても、それを検出することができないため、プログラム
の暴走等が起こる危険性があった。
以上のように構成されているので、そのメモリ保護機能
は、プログラムの不具合等により不正なアドレスから命
令が実行された場合でも、その領域がプログラム領域な
どのアクセス可能なメモリ領域であれば異常が検出でき
ないという課題があった。つまり、プログラム領域のよ
うなアクセス可能なメモリ領域内であれば、正しい命令
の先頭アドレス以外のアドレスから命令が実行されてい
ても、それを検出することができないため、プログラム
の暴走等が起こる危険性があった。
【0008】また、上記特開平5−53843号公報に
記載のブレーク機能では、オペコードを示すフラグをデ
コードした1バイト目の信号、および前回フェッチして
記憶しておいたオペコードアドレスと、今回フェッチし
たアドレスとを比較して異常実行を検出するものである
ため、ハードウェアおよびソフトウェアの構成が複雑化
し、特開平5−20058号公報に記載のブレーク機能
では、マイクロコンピュータにオペコードかオペランド
かを示すビットの判別機能を持たせる必要があるため、
既存のマイクロコンピュータをそのまま使用するのは困
難であるなどの課題があった。
記載のブレーク機能では、オペコードを示すフラグをデ
コードした1バイト目の信号、および前回フェッチして
記憶しておいたオペコードアドレスと、今回フェッチし
たアドレスとを比較して異常実行を検出するものである
ため、ハードウェアおよびソフトウェアの構成が複雑化
し、特開平5−20058号公報に記載のブレーク機能
では、マイクロコンピュータにオペコードかオペランド
かを示すビットの判別機能を持たせる必要があるため、
既存のマイクロコンピュータをそのまま使用するのは困
難であるなどの課題があった。
【0009】この発明は上記のような課題を解決するた
めになされたものであり、プログラム実行中にプログラ
ムの不具合等で正しい命令の先頭アドレス以外から命令
実行が行われた場合には、それを検出してプログラムの
実行を停止させることができ、それによってプログラム
が暴走することのない、ハードウェアおよびソフトウェ
アの構成がシンプルで、既存のマイクロコンピュータが
そのまま使用できるエミュレータを得ることを目的とす
る。
めになされたものであり、プログラム実行中にプログラ
ムの不具合等で正しい命令の先頭アドレス以外から命令
実行が行われた場合には、それを検出してプログラムの
実行を停止させることができ、それによってプログラム
が暴走することのない、ハードウェアおよびソフトウェ
アの構成がシンプルで、既存のマイクロコンピュータが
そのまま使用できるエミュレータを得ることを目的とす
る。
【0010】
【課題を解決するための手段】請求項1記載の発明に係
るエミュレータは、プログラムが格納されているメモリ
上の、各命令の先頭アドレスを格納している命令先頭ア
ドレス格納メモリの情報と、実際に実行される命令のフ
ェッチアドレスとを比較して、実行時の命令フェッチア
ドレスが正しい命令の先頭アドレスであるか否かを判定
し、正しい命令の先頭アドレスではないと判定された場
合には、プログラムの実行をブレークするようにしたも
のである。
るエミュレータは、プログラムが格納されているメモリ
上の、各命令の先頭アドレスを格納している命令先頭ア
ドレス格納メモリの情報と、実際に実行される命令のフ
ェッチアドレスとを比較して、実行時の命令フェッチア
ドレスが正しい命令の先頭アドレスであるか否かを判定
し、正しい命令の先頭アドレスではないと判定された場
合には、プログラムの実行をブレークするようにしたも
のである。
【0011】
【発明の実施の形態】以下、この発明の実施の一形態を
説明する。 実施の形態1.図1はこの発明の実施の一形態によるエ
ミュレータを示すブロック図である。図において、1は
当該エミュレータのエミュレータMCU、2はそのプロ
グラムやデータを格納するメモリ、3はメモリ2の読み
出し/書き込み/命令フェッチなどのアクセス条件が設
定されるマップメモリであり、これらは図6に同一符号
を付して示した、従来のエミュレータにおけるそれらと
同様のものである。6は上記メモリ2に格納されたプロ
グラムの、各命令の先頭アドレスを格納する命令先頭ア
ドレス格納メモリであり、7はこの命令先頭アドレス格
納メモリ6に格納された情報と、エミュレータMCU1
にて実際に実行される命令のフェッチアドレスとを比較
し、実行時の命令フェッチアドレスが正しい命令の先頭
アドレスであるか否かを判定するモニタ回路である。8
はモニタ回路7が実行時の命令フェッチアドレスが正し
い命令の先頭アドレスでないと判定した場合に発生する
制御信号を受け取ると、エミュレータMCU1に実行中
のプログラムを停止させるブレーク回路である。
説明する。 実施の形態1.図1はこの発明の実施の一形態によるエ
ミュレータを示すブロック図である。図において、1は
当該エミュレータのエミュレータMCU、2はそのプロ
グラムやデータを格納するメモリ、3はメモリ2の読み
出し/書き込み/命令フェッチなどのアクセス条件が設
定されるマップメモリであり、これらは図6に同一符号
を付して示した、従来のエミュレータにおけるそれらと
同様のものである。6は上記メモリ2に格納されたプロ
グラムの、各命令の先頭アドレスを格納する命令先頭ア
ドレス格納メモリであり、7はこの命令先頭アドレス格
納メモリ6に格納された情報と、エミュレータMCU1
にて実際に実行される命令のフェッチアドレスとを比較
し、実行時の命令フェッチアドレスが正しい命令の先頭
アドレスであるか否かを判定するモニタ回路である。8
はモニタ回路7が実行時の命令フェッチアドレスが正し
い命令の先頭アドレスでないと判定した場合に発生する
制御信号を受け取ると、エミュレータMCU1に実行中
のプログラムを停止させるブレーク回路である。
【0012】次に動作について説明する。まず、メモリ
2上の各命令の先頭アドレスの、命令先頭アドレス格納
メモリ6への格納について説明する。ここで、図2はこ
の実施の形態1の説明で使用されるプログラムの一例を
示す説明図であり、図3は図2に示したプログラムをア
センブルする際に、アセンブラで生成する命令先頭アド
レス情報ファイルを示す説明図である。また、図4はこ
のアセンブラで生成した命令先頭アドレス情報ファイル
を格納するため、エミュレータに備える命令先頭アドレ
ス格納メモリ6の構成を示す説明図である。
2上の各命令の先頭アドレスの、命令先頭アドレス格納
メモリ6への格納について説明する。ここで、図2はこ
の実施の形態1の説明で使用されるプログラムの一例を
示す説明図であり、図3は図2に示したプログラムをア
センブルする際に、アセンブラで生成する命令先頭アド
レス情報ファイルを示す説明図である。また、図4はこ
のアセンブラで生成した命令先頭アドレス情報ファイル
を格納するため、エミュレータに備える命令先頭アドレ
ス格納メモリ6の構成を示す説明図である。
【0013】メモリ2に格納されている、図2に示した
プログラムの各命令(LDA,CMP,JSR,LD
M)の先頭アドレス(8000,8002,8004,
8007)は、当該プログラムをアセンブルする際に、
図3に示す構成の命令先頭アドレス情報ファイルとして
アセンブラによって生成される。この命令先頭アドレス
情報ファイルはメモリ2上に格納されたプログラムの、
各命令の先頭アドレスのみ出力している。
プログラムの各命令(LDA,CMP,JSR,LD
M)の先頭アドレス(8000,8002,8004,
8007)は、当該プログラムをアセンブルする際に、
図3に示す構成の命令先頭アドレス情報ファイルとして
アセンブラによって生成される。この命令先頭アドレス
情報ファイルはメモリ2上に格納されたプログラムの、
各命令の先頭アドレスのみ出力している。
【0014】エミュレータでは、プログラムをダウンロ
ードする際に、このアセンブラで生成された図3に示す
命令先頭アドレス情報ファイルを読み込んで、命令先頭
アドレス格納メモリ6に格納する。すなわち、命令先頭
アドレス格納メモリ6は図4に示すように、メモリ2の
プログラム領域の各アドレスに対応したメモリ領域を備
えており、それら各メモリ領域には初期値として“0”
が格納されている。そして、メモリ2上のプログラムの
各命令の先頭アドレスを格納する際に、読み込んだ命令
先頭アドレス情報ファイルに基づいて、各命令の先頭ア
ドレスに対応したメモリ領域の内容を“1”に書き換え
る。このようにして、メモリ2のプログラム領域のアド
レス8000,8002,8004,8007に対応し
た、命令先頭アドレス格納メモリ6のメモリ領域が
“1”に書き換えられる。
ードする際に、このアセンブラで生成された図3に示す
命令先頭アドレス情報ファイルを読み込んで、命令先頭
アドレス格納メモリ6に格納する。すなわち、命令先頭
アドレス格納メモリ6は図4に示すように、メモリ2の
プログラム領域の各アドレスに対応したメモリ領域を備
えており、それら各メモリ領域には初期値として“0”
が格納されている。そして、メモリ2上のプログラムの
各命令の先頭アドレスを格納する際に、読み込んだ命令
先頭アドレス情報ファイルに基づいて、各命令の先頭ア
ドレスに対応したメモリ領域の内容を“1”に書き換え
る。このようにして、メモリ2のプログラム領域のアド
レス8000,8002,8004,8007に対応し
た、命令先頭アドレス格納メモリ6のメモリ領域が
“1”に書き換えられる。
【0015】次に、このメモリ2上の各命令の先頭アド
レスが格納された命令先頭アドレス格納メモリ6を用い
たブレーク機能について説明する。ここで、図5は正し
い命令の先頭アドレス以外のアドレスからの不正な命令
実行を検出する処理のアルゴリズムを示すフローチャー
トである。エミュレータMCU1でプログラムを実行し
たとき、モニタ回路7では命令先頭アドレス格納メモリ
6に格納したメモリ2上の各命令の先頭アドレスと、エ
ミュレータMCU1で実際に実行される命令のフェッチ
アドレスとの比較を行う。その結果、実行時の命令フェ
ッチアドレスが正しい命令の先頭アドレスでない場合、
すなわち、図4で“0”が格納されているメモリ領域に
対応したアドレスであった場合には、モニタ回路7は不
正なアドレスからの命令実行である旨を伝える制御信号
をブレーク回路8に送る。当該制御信号を受けたブレー
ク回路8は、実行中のプログラムを停止させるための制
御信号をエミュレータMCU1へ送り、そのプログラム
の実行を停止させる。一方、実行時の命令フェッチアド
レスが正しい命令の先頭アドレスである場合、すなわ
ち、図4で“1”が格納されているメモリ領域に対応し
たアドレスであった場合には、モニタ回路7は適正なア
ドレスからの命令実行である旨を伝える制御信号をブレ
ーク回路8に送る。当該制御信号を受けたブレーク回路
8はエミュレータMCU1に当該命令をそのまま実行さ
せる。
レスが格納された命令先頭アドレス格納メモリ6を用い
たブレーク機能について説明する。ここで、図5は正し
い命令の先頭アドレス以外のアドレスからの不正な命令
実行を検出する処理のアルゴリズムを示すフローチャー
トである。エミュレータMCU1でプログラムを実行し
たとき、モニタ回路7では命令先頭アドレス格納メモリ
6に格納したメモリ2上の各命令の先頭アドレスと、エ
ミュレータMCU1で実際に実行される命令のフェッチ
アドレスとの比較を行う。その結果、実行時の命令フェ
ッチアドレスが正しい命令の先頭アドレスでない場合、
すなわち、図4で“0”が格納されているメモリ領域に
対応したアドレスであった場合には、モニタ回路7は不
正なアドレスからの命令実行である旨を伝える制御信号
をブレーク回路8に送る。当該制御信号を受けたブレー
ク回路8は、実行中のプログラムを停止させるための制
御信号をエミュレータMCU1へ送り、そのプログラム
の実行を停止させる。一方、実行時の命令フェッチアド
レスが正しい命令の先頭アドレスである場合、すなわ
ち、図4で“1”が格納されているメモリ領域に対応し
たアドレスであった場合には、モニタ回路7は適正なア
ドレスからの命令実行である旨を伝える制御信号をブレ
ーク回路8に送る。当該制御信号を受けたブレーク回路
8はエミュレータMCU1に当該命令をそのまま実行さ
せる。
【0016】
【発明の効果】以上のように、請求項1の発明によれ
ば、各命令の先頭アドレスを格納している命令先頭アド
レス格納メモリの情報と、実際に実行される命令のフェ
ッチアドレスとを比較して、実行時の命令フェッチアド
レスが正しい命令の先頭アドレスであるか否かを判定
し、その結果、正しい命令の先頭アドレスでなければプ
ログラムの実行をブレークするように構成したので、正
しい命令の先頭アドレス以外のアドレスからの不正な命
令実行が検出でき、プログラムの暴走を防ぐことが可能
となり、プログラムのデバッグ時間を短縮することがで
き、さらに、オペコードを示すフラグをデコードした1
バイト目の信号、および前回フェッチして記憶しておい
たオペコードアドレスと、今回フェッチしたアドレスと
を比較して異常実行を検出する、特開平5−53843
号公報に示されたブレーク機能のように、ハードウェア
およびソフトウェアの構成が複雑化することなく、ま
た、特開平5−20058号公報に示されたブレーク機
能のように、マイクロコンピュータにオペコードかオペ
ランドかを示すビットの判別機能を持たせる必要がない
ため、既存のマイクロコンピュータをそのまま使用する
ことができるエミュレータが得られる効果がある。
ば、各命令の先頭アドレスを格納している命令先頭アド
レス格納メモリの情報と、実際に実行される命令のフェ
ッチアドレスとを比較して、実行時の命令フェッチアド
レスが正しい命令の先頭アドレスであるか否かを判定
し、その結果、正しい命令の先頭アドレスでなければプ
ログラムの実行をブレークするように構成したので、正
しい命令の先頭アドレス以外のアドレスからの不正な命
令実行が検出でき、プログラムの暴走を防ぐことが可能
となり、プログラムのデバッグ時間を短縮することがで
き、さらに、オペコードを示すフラグをデコードした1
バイト目の信号、および前回フェッチして記憶しておい
たオペコードアドレスと、今回フェッチしたアドレスと
を比較して異常実行を検出する、特開平5−53843
号公報に示されたブレーク機能のように、ハードウェア
およびソフトウェアの構成が複雑化することなく、ま
た、特開平5−20058号公報に示されたブレーク機
能のように、マイクロコンピュータにオペコードかオペ
ランドかを示すビットの判別機能を持たせる必要がない
ため、既存のマイクロコンピュータをそのまま使用する
ことができるエミュレータが得られる効果がある。
【図1】 この発明の実施の一形態によるエミュレータ
を示すブロック図である。
を示すブロック図である。
【図2】 上記実施の形態の説明で使用されるプログラ
ムの一例を示す説明図である。
ムの一例を示す説明図である。
【図3】 上記プログラムのアセンブルに際してアセン
ブラが生成する命令先頭アドレス情報ファイルの形式を
示す説明図である。
ブラが生成する命令先頭アドレス情報ファイルの形式を
示す説明図である。
【図4】 上記実施の形態における命令先頭アドレス格
納メモリの構成を示す説明図である。
納メモリの構成を示す説明図である。
【図5】 上記実施の形態における不正な命令実行の検
出処理のアルゴリズムを示すフローチャートである。
出処理のアルゴリズムを示すフローチャートである。
【図6】 従来のエミュレータを示すブロック図であ
る。
る。
2 メモリ、6 命令先頭アドレス格納メモリ、7 モ
ニタ回路、8 ブレーク回路。
ニタ回路、8 ブレーク回路。
Claims (1)
- 【請求項1】 プログラムが格納されているメモリ上
の、各命令の先頭アドレスを格納する命令先頭アドレス
格納メモリと、前記命令先頭アドレス格納メモリ内の前
記各命令の先頭アドレスと、実際に実行される命令のフ
ェッチアドレスを比較して、前記実行時の命令フェッチ
アドレスが正しい命令の先頭アドレスであるか否かを判
定するモニタ回路と、前記モニタ回路による判定の結
果、前記実行時の命令フェッチアドレスが正しい命令の
先頭アドレスでなければ、プログラムの実行をブレーク
するブレーク回路とを備えたエミュレータ。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7247514A JPH0991168A (ja) | 1995-09-26 | 1995-09-26 | エミュレータ |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7247514A JPH0991168A (ja) | 1995-09-26 | 1995-09-26 | エミュレータ |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0991168A true JPH0991168A (ja) | 1997-04-04 |
Family
ID=17164621
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP7247514A Pending JPH0991168A (ja) | 1995-09-26 | 1995-09-26 | エミュレータ |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0991168A (ja) |
-
1995
- 1995-09-26 JP JP7247514A patent/JPH0991168A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5386565A (en) | Method and system for controlling/monitoring computer system having plural operating systems to run thereon | |
| US5471620A (en) | Data processor with means for separately receiving and processing different types of interrupts | |
| US6697971B1 (en) | System and method for detecting attempts to access data residing outside of allocated memory | |
| US6304957B1 (en) | Multitask processing unit | |
| US6385714B1 (en) | Data processing apparatus | |
| US6990569B2 (en) | Handling problematic events in a data processing apparatus | |
| JPH0991168A (ja) | エミュレータ | |
| JP2762829B2 (ja) | 電子計算機 | |
| JPH05257815A (ja) | 中央処理装置 | |
| JP2531791B2 (ja) | フエッチアクセス時の異常処理方法 | |
| KR100239438B1 (ko) | 오동작 방지 기능을 갖는 중앙 처리 장치 | |
| EP0525672A2 (en) | Microprocessor with program tracing | |
| JP2871429B2 (ja) | 暴走監視機能を有するプロセッサ | |
| JPH06103109A (ja) | データプロセッサ、及びこれを用いるデバッグ装置 | |
| JP2689894B2 (ja) | マイクロプログラム制御型情報処理装置 | |
| JPH04290130A (ja) | プロセッサのエラー管理方式 | |
| JPS62144246A (ja) | 計算機 | |
| JPH0287239A (ja) | マイクロプログラム処理装置 | |
| JP3169879B2 (ja) | マイクロプロセッサ暴走検出方式 | |
| JP3616588B2 (ja) | マイクロプログラムチェックシステム | |
| JP2786215B2 (ja) | 再開処理制御方式 | |
| JPH10312310A (ja) | 中央処理装置の自己診断方法および自己診断機能を備えた中央処理装置 | |
| JPH10333936A (ja) | プロセッサの異常分岐検出方法 | |
| JPH07160539A (ja) | マイクロコンピュータ | |
| JPH06250856A (ja) | マイクロコンピュータ |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20041202 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041207 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20050405 |