JPH05216666A - スタック制御方法、及びエミュレータ - Google Patents
スタック制御方法、及びエミュレータInfo
- Publication number
- JPH05216666A JPH05216666A JP4047902A JP4790292A JPH05216666A JP H05216666 A JPH05216666 A JP H05216666A JP 4047902 A JP4047902 A JP 4047902A JP 4790292 A JP4790292 A JP 4790292A JP H05216666 A JPH05216666 A JP H05216666A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- microprocessor
- word
- address
- access
- 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.)
- Withdrawn
Links
Landscapes
- Executing Machine-Instructions (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
(57)【要約】
【目的】 本発明の目的は、マイクロプロセッサによる
プログラム実行/停止の際にスタックポインタ領域によ
りデータバス幅が変化する場合において、ソフトウェア
によるスタックポインタエリア管理を省略することにあ
る。 【構成】 バイトアクセスに係る情報待避のためのメモ
リアドレスカウントアップ量をワードアクセスに係る情
報待避の場合の1/2となるように制御することによ
り、当該マイクロプロセッサ1が、スタックポインタの
示すアドレスに対して常にワードアクセスを行うことを
可能とし、ソフトウェアによるスタックポインタ領域管
理を不要とする。
プログラム実行/停止の際にスタックポインタ領域によ
りデータバス幅が変化する場合において、ソフトウェア
によるスタックポインタエリア管理を省略することにあ
る。 【構成】 バイトアクセスに係る情報待避のためのメモ
リアドレスカウントアップ量をワードアクセスに係る情
報待避の場合の1/2となるように制御することによ
り、当該マイクロプロセッサ1が、スタックポインタの
示すアドレスに対して常にワードアクセスを行うことを
可能とし、ソフトウェアによるスタックポインタ領域管
理を不要とする。
Description
【0001】
【産業上の利用分野】本発明は、マイクロプロセッサの
例外処理時のスタック制御技術、さらには当該プロセッ
サによるプログラム実行/停止の際にスタックポインタ
領域によりデータバス幅が変化する場合においてソフト
ウェアによるスタックポインタ領域管理を省略するため
の技術に関し、例えばターゲットプログラムをマイクロ
プロセッサに実行させることにより、ターゲットシステ
ム上で動作するソフトウェアの開発支援を可能とするイ
ンサーキットエミュレータに適用して有効な技術に関す
る。
例外処理時のスタック制御技術、さらには当該プロセッ
サによるプログラム実行/停止の際にスタックポインタ
領域によりデータバス幅が変化する場合においてソフト
ウェアによるスタックポインタ領域管理を省略するため
の技術に関し、例えばターゲットプログラムをマイクロ
プロセッサに実行させることにより、ターゲットシステ
ム上で動作するソフトウェアの開発支援を可能とするイ
ンサーキットエミュレータに適用して有効な技術に関す
る。
【0002】
【従来の技術】マイクロプロセッサ(マイクロコンピュ
ータ)応用機器の開発において、その応用システムのデ
バッグやそのシステムの詳細な評価を行うため、エミユ
レータが使用されている。例えばインサーキットエミュ
レータは、ソフトウェア開発用のホストコンピュータ
と、開発中のターゲットシステムとの間に接続され、そ
のターゲットシステムに含まれるマイクロプロセッサ
(ターゲットプロセッサ)の機能を代行する一方でデバ
ッガとしての機能をもち、詳細なシステムデバッグを支
援する。そのようなインサーキットエミュレータを用い
た応用システムのデバッグにおいて、任意のプログラム
カウンタの値からプログラムを実行し、任意のアドレス
でそのプログラム実行を停止させることが行われる。す
なわち、エミュレータ側に設けられたスタック専用のメ
モリにプログラム実行に必要なプログラムカウンタ、カ
ウンタのページ、プロセッサのステータスを予めセット
しておくことによって当該専用メモリからプログラムカ
ウンタ、カウンタのページ、プロセッサのステータスが
をプロセッサによって読出され、プログラム実行が開始
される。また、任意のプログラムブレーク条件を予め設
定しておき、プログラム動作中にブレーク条件が一致し
た場合に、プロセッサへのブレーク割込み信号がアサー
トされ、それにより当該プログラム実行が実質的に停止
される。そのとき次のプログラムカウンタ、カウンタの
ページ、プロセッサのステータスが専用メモリに書込ま
れる。実行/停止の際の専用メモリへのリードデータ/
ライトデータはそのときのスタックポインタ値によりバ
イトとして有効な場合とワードとして有効な場合があ
る。
ータ)応用機器の開発において、その応用システムのデ
バッグやそのシステムの詳細な評価を行うため、エミユ
レータが使用されている。例えばインサーキットエミュ
レータは、ソフトウェア開発用のホストコンピュータ
と、開発中のターゲットシステムとの間に接続され、そ
のターゲットシステムに含まれるマイクロプロセッサ
(ターゲットプロセッサ)の機能を代行する一方でデバ
ッガとしての機能をもち、詳細なシステムデバッグを支
援する。そのようなインサーキットエミュレータを用い
た応用システムのデバッグにおいて、任意のプログラム
カウンタの値からプログラムを実行し、任意のアドレス
でそのプログラム実行を停止させることが行われる。す
なわち、エミュレータ側に設けられたスタック専用のメ
モリにプログラム実行に必要なプログラムカウンタ、カ
ウンタのページ、プロセッサのステータスを予めセット
しておくことによって当該専用メモリからプログラムカ
ウンタ、カウンタのページ、プロセッサのステータスが
をプロセッサによって読出され、プログラム実行が開始
される。また、任意のプログラムブレーク条件を予め設
定しておき、プログラム動作中にブレーク条件が一致し
た場合に、プロセッサへのブレーク割込み信号がアサー
トされ、それにより当該プログラム実行が実質的に停止
される。そのとき次のプログラムカウンタ、カウンタの
ページ、プロセッサのステータスが専用メモリに書込ま
れる。実行/停止の際の専用メモリへのリードデータ/
ライトデータはそのときのスタックポインタ値によりバ
イトとして有効な場合とワードとして有効な場合があ
る。
【0003】尚、インサーキットエミュレータの動作に
ついて記載された文献の例としては、1989年6月2
0日に電波新聞社から発行された「マイコン開発のすべ
て(第78頁から第95頁)」がある。
ついて記載された文献の例としては、1989年6月2
0日に電波新聞社から発行された「マイコン開発のすべ
て(第78頁から第95頁)」がある。
【0004】
【発明が解決しようとする課題】上記のようにマイクロ
プロセッサによるプログラム実行/停止の際にスタック
ポインタ領域によりデータバス幅が変化する。このた
め、デバッグ対象とされるプログラムの実行/停止の際
に、スタック専用のメモリにリード/ライトされるデー
タ値が、バイト/ワードのいずれのバス幅で有効になる
かを管理しなければならない。つまり、スタックポイン
タ値によって、スタック/アンスタックされるデータが
バイトとして有効な場合とワードとして有効な場合とが
あるため、スタックポインタが移動されてバイトデータ
とワードデータとにまたがった場合にはスタック/アン
スタックの内容がバイト/ワードのどちらで有効なのか
をソフトウェアによって追跡する必要があった。しかし
ながら、上記のようにバイト/ワードのいずれのバス幅
でデータ値が有効になるかををソフトウェアで管理する
にはバイトアクセス/ワードアクセスのそれぞれにおい
て、データ値が有効になる場合を全て抽出する必要があ
り、そのためのソフトウェア量は膨大なものにならざる
を得なかった。また、そのように膨大なソフトウェアに
おいてはバグを作り込む可能性が高いことが経験的に認
められる。
プロセッサによるプログラム実行/停止の際にスタック
ポインタ領域によりデータバス幅が変化する。このた
め、デバッグ対象とされるプログラムの実行/停止の際
に、スタック専用のメモリにリード/ライトされるデー
タ値が、バイト/ワードのいずれのバス幅で有効になる
かを管理しなければならない。つまり、スタックポイン
タ値によって、スタック/アンスタックされるデータが
バイトとして有効な場合とワードとして有効な場合とが
あるため、スタックポインタが移動されてバイトデータ
とワードデータとにまたがった場合にはスタック/アン
スタックの内容がバイト/ワードのどちらで有効なのか
をソフトウェアによって追跡する必要があった。しかし
ながら、上記のようにバイト/ワードのいずれのバス幅
でデータ値が有効になるかををソフトウェアで管理する
にはバイトアクセス/ワードアクセスのそれぞれにおい
て、データ値が有効になる場合を全て抽出する必要があ
り、そのためのソフトウェア量は膨大なものにならざる
を得なかった。また、そのように膨大なソフトウェアに
おいてはバグを作り込む可能性が高いことが経験的に認
められる。
【0005】本発明の目的は、マイクロプロセッサによ
るプログラム実行/停止の際にスタックポインタ領域に
よりデータバス幅が変化する場合において、ソフトウェ
アによるスタックポインタ領域管理を省略するための技
術を提供することにある。
るプログラム実行/停止の際にスタックポインタ領域に
よりデータバス幅が変化する場合において、ソフトウェ
アによるスタックポインタ領域管理を省略するための技
術を提供することにある。
【0006】また本発明の別の目的は、上記のようにソ
フトウェアによるスタックポインタ領域管理を省略する
ことによってソフトウェア量を低減することにある。
フトウェアによるスタックポインタ領域管理を省略する
ことによってソフトウェア量を低減することにある。
【0007】さらに本発明の別の目的は、エミュレーシ
ョン用マイクロプロセッサによるプログラム実行/停止
の際にスタックポインタ領域によりデータバス幅が変化
する場合においてソフトウェアによるスタックポインタ
領域管理の省略を図ったエミュレータを提供することに
ある。
ョン用マイクロプロセッサによるプログラム実行/停止
の際にスタックポインタ領域によりデータバス幅が変化
する場合においてソフトウェアによるスタックポインタ
領域管理の省略を図ったエミュレータを提供することに
ある。
【0008】本発明の上記並びにその他の目的と新規な
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
【0009】
【課題を解決するための手段】本願において開示される
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
【0010】すなわち、マイクロプロセッサの例外処理
時における当該マイクロプロセッサの動作情報を所定の
メモリへ待避するに際して、バイトアクセスに係る情報
待避のためのメモリアドレスカウントアップ量をワード
アクセスに係る情報待避の場合の1/2となるように制
御するものである。さらに具体的には、上記マイクロプ
ロセッサのアクセスタイプ、すなわちワードアクセスか
バイトアクセスかを当該プロセッサのステータス信号に
より判定し、スタックポインタがワード領域にある場合
には上記メモリのアドレスを+2づつカウントアップす
るとともに、スタックポインタがバイト領域にある場合
には上記メモリのアドレスを+1づつカウントアップす
ることによって上位データと下位データとを偶数アドレ
スと奇数アドレスとに割当てるように制御する。
時における当該マイクロプロセッサの動作情報を所定の
メモリへ待避するに際して、バイトアクセスに係る情報
待避のためのメモリアドレスカウントアップ量をワード
アクセスに係る情報待避の場合の1/2となるように制
御するものである。さらに具体的には、上記マイクロプ
ロセッサのアクセスタイプ、すなわちワードアクセスか
バイトアクセスかを当該プロセッサのステータス信号に
より判定し、スタックポインタがワード領域にある場合
には上記メモリのアドレスを+2づつカウントアップす
るとともに、スタックポインタがバイト領域にある場合
には上記メモリのアドレスを+1づつカウントアップす
ることによって上位データと下位データとを偶数アドレ
スと奇数アドレスとに割当てるように制御する。
【0011】また、マイクロプロセッサのブレーク例外
処理時における当該マイクロプロセッサの動作情報を待
避するためのメモリと、上記マイクロプロセッサのバイ
トアクセス時に有効となるデータバス幅がワードアクセ
ス時の1/2とされるとき、バイトアクセスに係る情報
待避のためのメモリアドレスカウントアップ量をワード
アクセスに係る情報待避の場合の1/2となるように制
御するための制御手段とを含んでエミュレータを構成す
るものである。
処理時における当該マイクロプロセッサの動作情報を待
避するためのメモリと、上記マイクロプロセッサのバイ
トアクセス時に有効となるデータバス幅がワードアクセ
ス時の1/2とされるとき、バイトアクセスに係る情報
待避のためのメモリアドレスカウントアップ量をワード
アクセスに係る情報待避の場合の1/2となるように制
御するための制御手段とを含んでエミュレータを構成す
るものである。
【0012】
【作用】上記した手段によれば、マイクロプロセッサに
よるプログラム実行/停止の際にスタックポインタ領域
によりデータバス幅が変化する場合において、バイトア
クセスに係る情報待避のためのメモリアドレスカウント
アップ量をワードアクセスに係る情報待避の場合の1/
2となるように制御することは、当該マイクロプロセッ
サが、スタックポインタの示すアドレスに対して常にワ
ードアクセスを行うことを可能とし、そのことが、スタ
ック/アンスタックの内容がバイト/ワードのどちらか
で有効となるかを追跡するためのソフトウェアによる処
理を不要とする。
よるプログラム実行/停止の際にスタックポインタ領域
によりデータバス幅が変化する場合において、バイトア
クセスに係る情報待避のためのメモリアドレスカウント
アップ量をワードアクセスに係る情報待避の場合の1/
2となるように制御することは、当該マイクロプロセッ
サが、スタックポインタの示すアドレスに対して常にワ
ードアクセスを行うことを可能とし、そのことが、スタ
ック/アンスタックの内容がバイト/ワードのどちらか
で有効となるかを追跡するためのソフトウェアによる処
理を不要とする。
【0013】
【実施例】図2には本発明の一実施例に係るインサーキ
ットエミュレータと、それを含むソフトウェア開発シス
テムが示される。
ットエミュレータと、それを含むソフトウェア開発シス
テムが示される。
【0014】同図に示されるソフトウェア開発システム
は、特に制限されないが、CRTディスプレイ16とキ
ーボード42とを含むホストコンピュータ32と、当該
ホストコンピュータ32のRS232Cポートを利用し
て結合されたインサーキットエミュレータ43とを含
む。インサーキットエミュレータ43は、ソフトウェア
開発用のホストコンピュータ32と、開発中のターゲッ
トシステム50との間に接続され、そのターゲットシス
テム11に含まれるマイクロプロセッサ(ターゲットプ
ロセッサ)の機能を代行する一方でデバッガとしての機
能をもち、詳細なシステムデバッグを支援する。そのよ
うなインサーキットエミュレータ43において、エミュ
レータ本体33は、シリアルライン34を介して上記ホ
ストコンピュータ32に結合され、このホストコンピュ
ータ32との間で各種制御信号や必要データのやり取り
が可能とされ、また、インタフェースケーブル22を介
してターゲットシステム50に結合される。インタフェ
ースケーブル22の先端部に設けられた接続器具9は、
ターゲットシステム11に設けられたターゲットプロセ
ッサ取付け用ソケット(ICソケットなどと称され
る)、若しくはターゲットシステム11のボードに形成
されたターゲットプロセッサ取付け部に対して着脱自在
とされる。
は、特に制限されないが、CRTディスプレイ16とキ
ーボード42とを含むホストコンピュータ32と、当該
ホストコンピュータ32のRS232Cポートを利用し
て結合されたインサーキットエミュレータ43とを含
む。インサーキットエミュレータ43は、ソフトウェア
開発用のホストコンピュータ32と、開発中のターゲッ
トシステム50との間に接続され、そのターゲットシス
テム11に含まれるマイクロプロセッサ(ターゲットプ
ロセッサ)の機能を代行する一方でデバッガとしての機
能をもち、詳細なシステムデバッグを支援する。そのよ
うなインサーキットエミュレータ43において、エミュ
レータ本体33は、シリアルライン34を介して上記ホ
ストコンピュータ32に結合され、このホストコンピュ
ータ32との間で各種制御信号や必要データのやり取り
が可能とされ、また、インタフェースケーブル22を介
してターゲットシステム50に結合される。インタフェ
ースケーブル22の先端部に設けられた接続器具9は、
ターゲットシステム11に設けられたターゲットプロセ
ッサ取付け用ソケット(ICソケットなどと称され
る)、若しくはターゲットシステム11のボードに形成
されたターゲットプロセッサ取付け部に対して着脱自在
とされる。
【0015】図3には上記エミュレータ本体33の全体
的な構成が示される。
的な構成が示される。
【0016】マイクロプロセッサ応用機器としてのター
ゲットシステム50に搭載されるターゲットマイクロプ
ロセッサと等価なエミュレーション用マイクロプロセッ
サ(エミュレーションプロセッサと称する)1は、最も
優先度が高い割込みとされるNMI(割込み)信号51
の入力端子を有する。エミュレーションバス2には、エ
ミュレーションプロセッサ1がターゲットマイクロプロ
セッサの機能を代行する際に当該プロセッサ1の所定の
状態切換えを行うためのエミュレーション制御部3、エ
ミュレーション動作制御時に使用されるメモリ4、エミ
ュレーションプロセッサ1の制御状態やエミュレーショ
ンバス2の状態を監視することによって、ターゲットプ
ログラムの実行を実質的に停止させるためのブレーク検
出回路5、エミュレーションバス2に与えられるアドレ
スやデータ並びに制御信号を逐次トレースして蓄えるト
レース回路6、ターゲットシステムに含まれるべきデー
タメモリやプログラムメモリを代行するためのエミュレ
ーションメモリ7、及び図2に示されるターゲットシス
テム50との結合のためのユーザインタフェース部8が
それぞれ結合される。上記NMI信号51は、上記ブレ
ーク検出回路5によってブレーク条件成立が検出された
場合にアサートされる。
ゲットシステム50に搭載されるターゲットマイクロプ
ロセッサと等価なエミュレーション用マイクロプロセッ
サ(エミュレーションプロセッサと称する)1は、最も
優先度が高い割込みとされるNMI(割込み)信号51
の入力端子を有する。エミュレーションバス2には、エ
ミュレーションプロセッサ1がターゲットマイクロプロ
セッサの機能を代行する際に当該プロセッサ1の所定の
状態切換えを行うためのエミュレーション制御部3、エ
ミュレーション動作制御時に使用されるメモリ4、エミ
ュレーションプロセッサ1の制御状態やエミュレーショ
ンバス2の状態を監視することによって、ターゲットプ
ログラムの実行を実質的に停止させるためのブレーク検
出回路5、エミュレーションバス2に与えられるアドレ
スやデータ並びに制御信号を逐次トレースして蓄えるト
レース回路6、ターゲットシステムに含まれるべきデー
タメモリやプログラムメモリを代行するためのエミュレ
ーションメモリ7、及び図2に示されるターゲットシス
テム50との結合のためのユーザインタフェース部8が
それぞれ結合される。上記NMI信号51は、上記ブレ
ーク検出回路5によってブレーク条件成立が検出された
場合にアサートされる。
【0017】上記エミュレーション制御部3、メモリ
4、ブレーク検出回路5、トレース回路6、及びエミュ
レーションメモリ7は、システムバス11を通じてコン
トロール用マイクロプロセッサ(コントロールプロセッ
サと称する)12の制御を受けるようになっている。シ
ステムバス11には、システムメモリ13やI/Oイン
タフェース部14が結合され、このI/Oインタフェー
ス部14を介して、CRTディスプレイ16を含むホス
トコンピュータ32が結合される。一般にインサーキッ
トエミュレータでは、割込み入力あるいはインタラプト
命令実行の例外処理によるスタック前にマイクロプロセ
ッサの動作空間をターゲットプログラム実行状態からエ
ミュレータ制御状態に切換え、ブレーク発生時にステー
タスレジスタにセットされたブレーク要因情報からステ
ータスレジスタのブレーク要因を解析するようにしてい
る。
4、ブレーク検出回路5、トレース回路6、及びエミュ
レーションメモリ7は、システムバス11を通じてコン
トロール用マイクロプロセッサ(コントロールプロセッ
サと称する)12の制御を受けるようになっている。シ
ステムバス11には、システムメモリ13やI/Oイン
タフェース部14が結合され、このI/Oインタフェー
ス部14を介して、CRTディスプレイ16を含むホス
トコンピュータ32が結合される。一般にインサーキッ
トエミュレータでは、割込み入力あるいはインタラプト
命令実行の例外処理によるスタック前にマイクロプロセ
ッサの動作空間をターゲットプログラム実行状態からエ
ミュレータ制御状態に切換え、ブレーク発生時にステー
タスレジスタにセットされたブレーク要因情報からステ
ータスレジスタのブレーク要因を解析するようにしてい
る。
【0018】ここで従来方式に従えば、マイクロプロセ
ッサによるプログラム実行/停止の際にスタックポイン
タ領域によりデータバス幅が変化し、そのためにデバッ
グ対象とされるプログラムの実行/停止の際スタックポ
インタの領域によりメモリにリード/ライトされるデー
タ値が、バイト/ワードのいずれのバス幅で有効になる
かをソフトウェアによって管理しなければならならず、
そのためのソフトウェア量は膨大なものにならざるを得
なかった。
ッサによるプログラム実行/停止の際にスタックポイン
タ領域によりデータバス幅が変化し、そのためにデバッ
グ対象とされるプログラムの実行/停止の際スタックポ
インタの領域によりメモリにリード/ライトされるデー
タ値が、バイト/ワードのいずれのバス幅で有効になる
かをソフトウェアによって管理しなければならならず、
そのためのソフトウェア量は膨大なものにならざるを得
なかった。
【0019】そこで本実施例においては、ソフトウェア
によるスタックポインタ領域管理を省略するため、マイ
クロプロセッサの例外処理時における当該マイクロプロ
セッサの動作情報を所定のメモリへ待避するに際して、
バイトアクセスに係る情報待避のためのメモリアドレス
カウントアップ量をワードアクセスに係る情報待避の場
合の1/2となるように制御するようにしている。すな
わち、スタック専用メモリへのアクセスアドレスをスタ
ックポインタの存在する領域に応じて次のようにコント
ロールする。
によるスタックポインタ領域管理を省略するため、マイ
クロプロセッサの例外処理時における当該マイクロプロ
セッサの動作情報を所定のメモリへ待避するに際して、
バイトアクセスに係る情報待避のためのメモリアドレス
カウントアップ量をワードアクセスに係る情報待避の場
合の1/2となるように制御するようにしている。すな
わち、スタック専用メモリへのアクセスアドレスをスタ
ックポインタの存在する領域に応じて次のようにコント
ロールする。
【0020】プログラムの実行/停止の際、スタックポ
インタがデータバス幅つまりワード(例えば16ビッ
ト)のメモリ領域にある場合、リード/ライトされるデ
ータは、ワード単位に有効になる。従ってスタックポイ
ンタがワード領域にある場合には、専用メモリのアクセ
スアドレスを+2づつカウントアップさせ、上位データ
と下位データをワードでアクセスさせる。スタックポイ
ンタがデータバス幅つまりバイト(例えば8ビット)の
メモリ領域にある場合、プロセッサがスタックサイクル
/アンスタックサイクルでワードアクセスするためリー
ド/ライトされるデータは、バイト単位に有効になり下
位データ(又は上位データ)は無効データである。従っ
てスタックポインタがバイト領域にある場合には、専用
メモリのアクセスアドレスを+1づつカウントアップさ
せ、上位データを偶数アドレスに、下位データを奇数ア
ドレスに待避させる。それにより、スタックポインタの
位置がバイト領域かワード領域のいずれにあってもプロ
グラムの実行/停止の際に専用メモリに待避されたデー
タは常にワード単位で有効になる。従って専用メモリへ
のソフトウエア管理は、スタックポインタの位置を意識
せずに常にワードアクセスを行うことができ、ソフトウ
エア自身のプログラム量が軽減でき、そのようなプログ
ラム内容の簡略化により潜在的バグの削減が図れる。以
上のようなスタック制御は、上記エミュレーション制御
部3によって行われる。
インタがデータバス幅つまりワード(例えば16ビッ
ト)のメモリ領域にある場合、リード/ライトされるデ
ータは、ワード単位に有効になる。従ってスタックポイ
ンタがワード領域にある場合には、専用メモリのアクセ
スアドレスを+2づつカウントアップさせ、上位データ
と下位データをワードでアクセスさせる。スタックポイ
ンタがデータバス幅つまりバイト(例えば8ビット)の
メモリ領域にある場合、プロセッサがスタックサイクル
/アンスタックサイクルでワードアクセスするためリー
ド/ライトされるデータは、バイト単位に有効になり下
位データ(又は上位データ)は無効データである。従っ
てスタックポインタがバイト領域にある場合には、専用
メモリのアクセスアドレスを+1づつカウントアップさ
せ、上位データを偶数アドレスに、下位データを奇数ア
ドレスに待避させる。それにより、スタックポインタの
位置がバイト領域かワード領域のいずれにあってもプロ
グラムの実行/停止の際に専用メモリに待避されたデー
タは常にワード単位で有効になる。従って専用メモリへ
のソフトウエア管理は、スタックポインタの位置を意識
せずに常にワードアクセスを行うことができ、ソフトウ
エア自身のプログラム量が軽減でき、そのようなプログ
ラム内容の簡略化により潜在的バグの削減が図れる。以
上のようなスタック制御は、上記エミュレーション制御
部3によって行われる。
【0021】図1には上記エミュレータ本体33におけ
るエミュレーション制御部3の詳細な構成例が示され
る。
るエミュレーション制御部3の詳細な構成例が示され
る。
【0022】図1において、ターゲットマイクロプロセ
ッサの機能を代行してターゲットシステムを制御するた
めのエミュレーションプロセッサ1は、メモリ4のプロ
グラム実行により空間制御回路を動作させることによっ
て、ターゲットプログラムを実行することができる。ま
た、ブレーク検出回路5により、予め設定されたブレー
ク条件がターゲットプログラム実行中に検出された場
合、当該ターゲットプログラムの実行を停止する。スタ
ック/アンスタック専用メモリ66及び67は、ターゲ
ットプログラムの実行/停止の際のエミュレーションプ
ロセッサ1の次のプログラムカウンタ、カウンタのペー
ジ、当該プロセッサ1のステータスの各情報を格納する
ための専用メモリである。このメモリ66,67は選択
信号/HCS,/LCS(各信号名の先頭の/は当外信
号がローアクティブであることを示す)がローレベルに
アサートされることによって動作可能状態とされ、ライ
ト信号/WRがローレベルにアサートされることによっ
て書込み可能状態とされる。ターゲットプログラムは、
以下の手順で実行される。
ッサの機能を代行してターゲットシステムを制御するた
めのエミュレーションプロセッサ1は、メモリ4のプロ
グラム実行により空間制御回路を動作させることによっ
て、ターゲットプログラムを実行することができる。ま
た、ブレーク検出回路5により、予め設定されたブレー
ク条件がターゲットプログラム実行中に検出された場
合、当該ターゲットプログラムの実行を停止する。スタ
ック/アンスタック専用メモリ66及び67は、ターゲ
ットプログラムの実行/停止の際のエミュレーションプ
ロセッサ1の次のプログラムカウンタ、カウンタのペー
ジ、当該プロセッサ1のステータスの各情報を格納する
ための専用メモリである。このメモリ66,67は選択
信号/HCS,/LCS(各信号名の先頭の/は当外信
号がローアクティブであることを示す)がローレベルに
アサートされることによって動作可能状態とされ、ライ
ト信号/WRがローレベルにアサートされることによっ
て書込み可能状態とされる。ターゲットプログラムは、
以下の手順で実行される。
【0023】ターゲットプログラムの実行開始を示すプ
ログラムカウンタ、カウンタのページ、及びプロセッサ
のステータス情報を、エミュレーションプロセッサ1か
ら出力されるプロセッサアドレスCPUAとデータD1
5〜D0とでメモリ66及び67に書込む。その場合の
制御は、メモリ4のシステムプログラムをエミュレーシ
ョンプロセッサが実行することによって可能とされる。
その後プロセッサ動作復帰命令を実行するとエミュレー
ションプロセッサ1は、スタックポインタの示している
アドレスからプロセッサのステータス情報、カウンタの
ページ、プログラムカウンタの順にリードする。その
際、エミュレーション制御部3に含まれる空間制御回路
によりスタックポインタの示しているアドレス領域側の
アクセスを禁止する。そしてSTMアドレスカウンタ6
4からのアドレスSTMAがアドレスマルチプレクサ6
5によって選択されてメモリ66及び67に供給され
る。このアドレスマルチプレクサ65は、アドレスマル
チプレクサ選択信号SELECTによってその切換え動
作が制御される。アドレスマルチプレクサ選択信号SE
LECTは、スタックメモリコントロール信号STMに
等しい。
ログラムカウンタ、カウンタのページ、及びプロセッサ
のステータス情報を、エミュレーションプロセッサ1か
ら出力されるプロセッサアドレスCPUAとデータD1
5〜D0とでメモリ66及び67に書込む。その場合の
制御は、メモリ4のシステムプログラムをエミュレーシ
ョンプロセッサが実行することによって可能とされる。
その後プロセッサ動作復帰命令を実行するとエミュレー
ションプロセッサ1は、スタックポインタの示している
アドレスからプロセッサのステータス情報、カウンタの
ページ、プログラムカウンタの順にリードする。その
際、エミュレーション制御部3に含まれる空間制御回路
によりスタックポインタの示しているアドレス領域側の
アクセスを禁止する。そしてSTMアドレスカウンタ6
4からのアドレスSTMAがアドレスマルチプレクサ6
5によって選択されてメモリ66及び67に供給され
る。このアドレスマルチプレクサ65は、アドレスマル
チプレクサ選択信号SELECTによってその切換え動
作が制御される。アドレスマルチプレクサ選択信号SE
LECTは、スタックメモリコントロール信号STMに
等しい。
【0024】尚、上記STMアドレスカウンタ64にお
いて、アドレスSTMAの初期値は、INDAレベルす
なわちH’0とされる。また、上記STMアドレスカウ
ンタ64には、上記エミュレーションプロセッサ1によ
るターゲットプログラム実行状態を示す信号RUNが入
力されるようになっており、当該信号RUNによって上
記STMアドレスカウンタ64の動作が制御されるよう
になっている。
いて、アドレスSTMAの初期値は、INDAレベルす
なわちH’0とされる。また、上記STMアドレスカウ
ンタ64には、上記エミュレーションプロセッサ1によ
るターゲットプログラム実行状態を示す信号RUNが入
力されるようになっており、当該信号RUNによって上
記STMアドレスカウンタ64の動作が制御されるよう
になっている。
【0025】エミュレーションプロセッサ1のリードサ
イクル時にメモリ66及び67にプロセッサ1のステー
タス情報、カウンタのページ、プログラムカウンタが既
に書込まれており、それがエミュレーションプロセッサ
1に読込まれる。その際、STMアドレスカウンタ64
の出力としてのアドレスSTMAは、エミュレーション
プロセッサ1のリード回数に合わせてカウントアップさ
れる。すなわち、ライト信号/WRがエミュレーション
プロセッサ1によってハイレベルにネゲートされた状態
(リード状態)で負論理積ゲート70から出力されるア
ドレスカウンタクロックSTMACPを計数することに
よってスタックカウンタ用アドレスSTMAがカウント
アップされる。リード終了後、図示されない空間制御回
路により以降の空間がターゲットプログラム実行状態に
なり、メモリ66及び67に供給されるアドレスが、ア
ドレスマルチプレクサ65によりアドレスSTMAから
プロセッサアドレスCPUAに切換えられる。ターゲッ
トプログラムの実行停止の場合は、エミュレーションプ
ロセッサ1の動作が実行の場合とは逆になる。上記ブレ
ーク検出回路5によりエミュレーションプロセッサ1に
対するブレーク割込み信号51がアサートされると、エ
ミュレーションプロセッサ1がそのときのスタックポイ
ンタの示しているアドレスに当該プロセッサの次のプロ
グラムカウンタ、カウンタのページ、ステータス情報を
順にライトする。この場合も上記の実行時と同様に空間
制御回路によりスタックポインタの示しているアドレス
領域側のアクセスが禁止され、STMアドレスカウンタ
64からのアドレスSTMAが、アドレスマルチプレク
サ65で選択されてメモリ66及び67に供給される。
アドレスSTMAもライト回数に従ってカウントアップ
され、エミュレーションプロセッサ1の出力データD1
5〜D0がバッファ68,69を介してメモリ66,6
7に書込まれる。
イクル時にメモリ66及び67にプロセッサ1のステー
タス情報、カウンタのページ、プログラムカウンタが既
に書込まれており、それがエミュレーションプロセッサ
1に読込まれる。その際、STMアドレスカウンタ64
の出力としてのアドレスSTMAは、エミュレーション
プロセッサ1のリード回数に合わせてカウントアップさ
れる。すなわち、ライト信号/WRがエミュレーション
プロセッサ1によってハイレベルにネゲートされた状態
(リード状態)で負論理積ゲート70から出力されるア
ドレスカウンタクロックSTMACPを計数することに
よってスタックカウンタ用アドレスSTMAがカウント
アップされる。リード終了後、図示されない空間制御回
路により以降の空間がターゲットプログラム実行状態に
なり、メモリ66及び67に供給されるアドレスが、ア
ドレスマルチプレクサ65によりアドレスSTMAから
プロセッサアドレスCPUAに切換えられる。ターゲッ
トプログラムの実行停止の場合は、エミュレーションプ
ロセッサ1の動作が実行の場合とは逆になる。上記ブレ
ーク検出回路5によりエミュレーションプロセッサ1に
対するブレーク割込み信号51がアサートされると、エ
ミュレーションプロセッサ1がそのときのスタックポイ
ンタの示しているアドレスに当該プロセッサの次のプロ
グラムカウンタ、カウンタのページ、ステータス情報を
順にライトする。この場合も上記の実行時と同様に空間
制御回路によりスタックポインタの示しているアドレス
領域側のアクセスが禁止され、STMアドレスカウンタ
64からのアドレスSTMAが、アドレスマルチプレク
サ65で選択されてメモリ66及び67に供給される。
アドレスSTMAもライト回数に従ってカウントアップ
され、エミュレーションプロセッサ1の出力データD1
5〜D0がバッファ68,69を介してメモリ66,6
7に書込まれる。
【0026】ここで従来技術に従えば、ターゲットプロ
グラム実行時/停止時のSTMアドレスカウンタ64の
アドレスSTMAがエミュレーションプロセッサ1のリ
ード/ライトサイクルに合わせてカウトアップされ、メ
モリ66及び67の両方がアクセスされる。このため、
バイト単位にデータが有効な場合、上位データと下位デ
ータのどちらが有効なのか不明となる。仮にバイト単位
にデータが有効な場合、有効なデータ側のメモリのみア
クセスしてもソフトウェアでは上位データ/下位データ
のどちらが有効かは検出できない。
グラム実行時/停止時のSTMアドレスカウンタ64の
アドレスSTMAがエミュレーションプロセッサ1のリ
ード/ライトサイクルに合わせてカウトアップされ、メ
モリ66及び67の両方がアクセスされる。このため、
バイト単位にデータが有効な場合、上位データと下位デ
ータのどちらが有効なのか不明となる。仮にバイト単位
にデータが有効な場合、有効なデータ側のメモリのみア
クセスしてもソフトウェアでは上位データ/下位データ
のどちらが有効かは検出できない。
【0027】それに対して本実施例では、エミュレーシ
ョンプロセッサ1から出力されるバイト領域ステータス
信号/B3CY信号により、カウンタ制御回路63でバ
イト領域への2回のバスサイクルのうち、1回目のバス
サイクルではSTMアドレスカウンタ64の許可信号/
ENABLEをハイレベルにネゲートしておき、2回目
のバスサイクルではアドレスSTMAのカウントアップ
を許可する。その際のメモリの選択信号は、バイト領域
ステータス信号/B3CY、ワードアクセスステータス
信号/WORD、スタックメモリコントロール信号ST
M、アドレスA0を取込む/CS作成回路62によって
生成される。1回目の偶数アドレスではメモリ66の選
択信号/HCSがローレベルにアサートされ、2回目の
奇数アドレスではメモリ67の選択信号/LCSがロー
レベルにアサートされる。従って、スタックポインタが
バイト領域にある場合でも、エミュレーションプロセッ
サ1のリード/ライトが、あたかもワード領域に対して
アクセスしたと同じ状態になる。
ョンプロセッサ1から出力されるバイト領域ステータス
信号/B3CY信号により、カウンタ制御回路63でバ
イト領域への2回のバスサイクルのうち、1回目のバス
サイクルではSTMアドレスカウンタ64の許可信号/
ENABLEをハイレベルにネゲートしておき、2回目
のバスサイクルではアドレスSTMAのカウントアップ
を許可する。その際のメモリの選択信号は、バイト領域
ステータス信号/B3CY、ワードアクセスステータス
信号/WORD、スタックメモリコントロール信号ST
M、アドレスA0を取込む/CS作成回路62によって
生成される。1回目の偶数アドレスではメモリ66の選
択信号/HCSがローレベルにアサートされ、2回目の
奇数アドレスではメモリ67の選択信号/LCSがロー
レベルにアサートされる。従って、スタックポインタが
バイト領域にある場合でも、エミュレーションプロセッ
サ1のリード/ライトが、あたかもワード領域に対して
アクセスしたと同じ状態になる。
【0028】図4にはターゲットプログラムの実行停止
時において、スタックポインタの位置がワード領域から
バイト領域に移動した場合の信号状態が示され、図5に
は、そのときのスタック/アンスタック専用メモリ6
6,67のデータ状態が示される。
時において、スタックポインタの位置がワード領域から
バイト領域に移動した場合の信号状態が示され、図5に
は、そのときのスタック/アンスタック専用メモリ6
6,67のデータ状態が示される。
【0029】図4においてのバスサイクルでは、ST
Mアドレスカウンタ64のアドレスSTMAの初期値
H’0が専用メモリ66,67に入力される。スタック
ポインタの値がワード領域にあるため、カウント許可信
号/ENABLEがローレベルにアサートされ、リード
信号/RD,ライト信号/WRから作成されたカウンタ
クロック信号STMACPによりアドレスSTMAが
H’1になる。専用メモリ66,67の0番地にデータ
が書込まれた状態が図5のである。
Mアドレスカウンタ64のアドレスSTMAの初期値
H’0が専用メモリ66,67に入力される。スタック
ポインタの値がワード領域にあるため、カウント許可信
号/ENABLEがローレベルにアサートされ、リード
信号/RD,ライト信号/WRから作成されたカウンタ
クロック信号STMACPによりアドレスSTMAが
H’1になる。専用メモリ66,67の0番地にデータ
が書込まれた状態が図5のである。
【0030】次に図4においてのバスサイクルでは、
スタックポインタ値がバイト領域になるためエミュレー
ションプロセッサ1から出力されるバイト領域ステータ
ス信号/B3CYがローレベルにアサートされる。これ
によりカウンタ制御回路63でカウント許可信号/EN
ABLEがハイレベルにネゲートされるのでアドレスS
TMAは変化せず、H’1のままである。そしてそのと
き選択信号/HCSがローレベルにアサートされ、それ
により上位データD15〜D8がバッファ68を介して
メモリ66の偶数アドレスに書込まれる。これが図5の
に相当する。そしてバイト領域へのワードアクセスし
た場合の2回目のバスサイクルでは、アドレスSTMA
は変化せずH’1のままで専用メモリ67の選択信号/
LCSがローレベルにアサートされ、下位データD7〜
D0がバッファ69を介してメモリ67の奇数アドレス
に書込まれる。カウンタ制御回路63でカウント許可信
号/ENABLEは、2回目のバスサイクルで許可さ
れ、バスサイクルの終りでカウンタクロック信号STM
ACPによりアドレスSTMAがH’2になる。以上の
2回のバスサイクルで図5の、となる。従って、図
5のSTMA1の書込みデータが上記STMA0の場合
と同様にワードで有効になる。このようにエミュレーシ
ョンプロセッサ1のアクセスサイクルがワードかバイト
かをステータス信号により判定し、専用メモリ66,6
7のアドレスカウントアップ量を制御することにより、
スタックポインタの示すアドレスに対して常にワードア
クセスを行うことが可能とされ、それによって、ソフト
ウェアによるスタックポインタ領域管理が不要とされ
る。
スタックポインタ値がバイト領域になるためエミュレー
ションプロセッサ1から出力されるバイト領域ステータ
ス信号/B3CYがローレベルにアサートされる。これ
によりカウンタ制御回路63でカウント許可信号/EN
ABLEがハイレベルにネゲートされるのでアドレスS
TMAは変化せず、H’1のままである。そしてそのと
き選択信号/HCSがローレベルにアサートされ、それ
により上位データD15〜D8がバッファ68を介して
メモリ66の偶数アドレスに書込まれる。これが図5の
に相当する。そしてバイト領域へのワードアクセスし
た場合の2回目のバスサイクルでは、アドレスSTMA
は変化せずH’1のままで専用メモリ67の選択信号/
LCSがローレベルにアサートされ、下位データD7〜
D0がバッファ69を介してメモリ67の奇数アドレス
に書込まれる。カウンタ制御回路63でカウント許可信
号/ENABLEは、2回目のバスサイクルで許可さ
れ、バスサイクルの終りでカウンタクロック信号STM
ACPによりアドレスSTMAがH’2になる。以上の
2回のバスサイクルで図5の、となる。従って、図
5のSTMA1の書込みデータが上記STMA0の場合
と同様にワードで有効になる。このようにエミュレーシ
ョンプロセッサ1のアクセスサイクルがワードかバイト
かをステータス信号により判定し、専用メモリ66,6
7のアドレスカウントアップ量を制御することにより、
スタックポインタの示すアドレスに対して常にワードア
クセスを行うことが可能とされ、それによって、ソフト
ウェアによるスタックポインタ領域管理が不要とされ
る。
【0031】上記実施例によれば以下の作用効果が得ら
れる。
れる。
【0032】(1)マイクロプロセッサによるプログラ
ム実行/停止の際にスタックポインタ領域によりデータ
バス幅が変化する場合において、バイトアクセスに係る
情報待避のためのメモリアドレスカウントアップ量をワ
ードアクセスに係る情報待避の場合の1/2となるよう
に制御することにより、当該マイクロプロセッサが、ス
タックポインタの示すアドレスに対し常にワードアクセ
スを行うことが可能とされ、それによって、ソフトウェ
アによるスタックポインタ領域管理が不要とされる。つ
まり、デバッグするプログラムの実行/停止の際スタッ
クポインタ領域によりデータバス幅が変化するにもかか
わらず、ソフトウェアでのスタックポインタの領域管理
をする必要がなくなり、ソフトウェアではスタック内容
を常にワード単位で処理することができるので、制御用
ソフトウェア量の軽減を図ることができ、また、プログ
ラム内容が簡略化されることにより潜在的バグの削減が
可能とされる。
ム実行/停止の際にスタックポインタ領域によりデータ
バス幅が変化する場合において、バイトアクセスに係る
情報待避のためのメモリアドレスカウントアップ量をワ
ードアクセスに係る情報待避の場合の1/2となるよう
に制御することにより、当該マイクロプロセッサが、ス
タックポインタの示すアドレスに対し常にワードアクセ
スを行うことが可能とされ、それによって、ソフトウェ
アによるスタックポインタ領域管理が不要とされる。つ
まり、デバッグするプログラムの実行/停止の際スタッ
クポインタ領域によりデータバス幅が変化するにもかか
わらず、ソフトウェアでのスタックポインタの領域管理
をする必要がなくなり、ソフトウェアではスタック内容
を常にワード単位で処理することができるので、制御用
ソフトウェア量の軽減を図ることができ、また、プログ
ラム内容が簡略化されることにより潜在的バグの削減が
可能とされる。
【0033】(2)マイクロプロセッサ1のブレーク例
外処理時における当該マイクロプロセッサの動作情報を
待避するためのメモリ66,67を設け、さらに上記マ
イクロプロセッサのバイトアクセス時に有効となるデー
タバス幅がワードアクセス時の1/2とされるとき、バ
イトアクセスに係る情報待避のためのメモリアドレスカ
ウントアップ量をワードアクセスに係る情報待避の場合
の1/2となるように制御するための制御手段としてカ
ウンタ制御回路63,STMアドレスカウンタ64、及
び/CS作成回路62を設けることによって、メモリ6
6,67へのリード/ライトが常にワードデータとして
有効になるようにハードウェアによって制御することが
でき、上記(1)の作用効果を有するインサーキットエ
ミュレータを得ることができる。
外処理時における当該マイクロプロセッサの動作情報を
待避するためのメモリ66,67を設け、さらに上記マ
イクロプロセッサのバイトアクセス時に有効となるデー
タバス幅がワードアクセス時の1/2とされるとき、バ
イトアクセスに係る情報待避のためのメモリアドレスカ
ウントアップ量をワードアクセスに係る情報待避の場合
の1/2となるように制御するための制御手段としてカ
ウンタ制御回路63,STMアドレスカウンタ64、及
び/CS作成回路62を設けることによって、メモリ6
6,67へのリード/ライトが常にワードデータとして
有効になるようにハードウェアによって制御することが
でき、上記(1)の作用効果を有するインサーキットエ
ミュレータを得ることができる。
【0034】以上本発明者によってなされた発明を実施
例に基づいて具体的に説明したが、本発明はそれに限定
されるものではなく、その要旨を逸脱しない範囲におい
て種々変更可能であることは言うまでもない。
例に基づいて具体的に説明したが、本発明はそれに限定
されるものではなく、その要旨を逸脱しない範囲におい
て種々変更可能であることは言うまでもない。
【0035】例えば、上記実施例では、バイトアクセス
に係る情報待避のためのメモリアドレスカウントアップ
量をワードアクセスに係る情報待避の場合の1/2とな
るように制御するための制御手段としてのカウンタ制御
回路63,STMアドレスカウンタ64をエミュレーシ
ョンプロセッサ1の外部に設けるようにしたが、同様の
機能実現手段をマイクロプロセッサの内部に設けること
によって、スタックポインタの存在位置にかかわらず、
常にワード単位でデータが入出力されるようにしてもよ
い。
に係る情報待避のためのメモリアドレスカウントアップ
量をワードアクセスに係る情報待避の場合の1/2とな
るように制御するための制御手段としてのカウンタ制御
回路63,STMアドレスカウンタ64をエミュレーシ
ョンプロセッサ1の外部に設けるようにしたが、同様の
機能実現手段をマイクロプロセッサの内部に設けること
によって、スタックポインタの存在位置にかかわらず、
常にワード単位でデータが入出力されるようにしてもよ
い。
【0036】以上の説明では主として本発明者によって
なされた発明をその背景となった利用分野であるインサ
ーキットエミュレータに適用した場合について説明した
が、本発明はそれに限定されるものではなく、例えば各
種デバッグツールやマイクロコンピュータ応用システム
に広く適用することができる。
なされた発明をその背景となった利用分野であるインサ
ーキットエミュレータに適用した場合について説明した
が、本発明はそれに限定されるものではなく、例えば各
種デバッグツールやマイクロコンピュータ応用システム
に広く適用することができる。
【0037】本発明は、少なくともマイクロプロセッサ
の例外処理時における当該マイクロプロセッサの動作情
報を所定のメモリへ待避することを条件に適用すること
ができる。
の例外処理時における当該マイクロプロセッサの動作情
報を所定のメモリへ待避することを条件に適用すること
ができる。
【0038】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
【0039】すなわち、マイクロプロセッサによるプロ
グラム実行/停止の際にスタックポインタ領域によりデ
ータバス幅が変化する場合において、バイトアクセスに
係る情報待避のためのメモリアドレスカウントアップ量
をワードアクセスに係る情報待避の場合の1/2となる
ように制御することにより、当該マイクロプロセッサが
スタックポインタの示すアドレスに対して常にワードア
クセスを行うことが可能とされる。そのためソフトウェ
アによるスタックポインタ領域管理が不要とされ、制御
用ソフトウェア量の軽減を図ることができる。また、そ
のようにプログラム内容が簡略化されることにより潜在
的バグの削減が可能とされる。
グラム実行/停止の際にスタックポインタ領域によりデ
ータバス幅が変化する場合において、バイトアクセスに
係る情報待避のためのメモリアドレスカウントアップ量
をワードアクセスに係る情報待避の場合の1/2となる
ように制御することにより、当該マイクロプロセッサが
スタックポインタの示すアドレスに対して常にワードア
クセスを行うことが可能とされる。そのためソフトウェ
アによるスタックポインタ領域管理が不要とされ、制御
用ソフトウェア量の軽減を図ることができる。また、そ
のようにプログラム内容が簡略化されることにより潜在
的バグの削減が可能とされる。
【図1】本発明の一実施例に係るインサーキットエミュ
レータにおける主要部の詳細な構成ブロック図である。
レータにおける主要部の詳細な構成ブロック図である。
【図2】上記インサーキットエミュレータを含むソフト
ウェア開発装置の斜視図である。
ウェア開発装置の斜視図である。
【図3】上記インサーキットエミュレータの全体的な構
成ブロック図である。
成ブロック図である。
【図4】上記インサーキットエミュレータの主要部の動
作タイミング図である。
作タイミング図である。
【図5】上記インサーキットエミュレータの主要部の作
用説明図である。
用説明図である。
1 エミュレーションプロセッサ 2 エミュレーションバス 3 エミュレーション制御部 4 メモリ 5 ブレーク検出回路 6 トレース回路 7 エミュレーションメモリ 8 ユーザインタフェース部 9 接続器具 11 システムバス 12 コントロールプロセッサ 13 システムメモリ 14 I/Oインタフェース部 16 CRTディスプレイ 22 インタフェースケーブル 32 ホストコンピュータ 33 エミュレータ本体 34 シリアルライン 42 キーボード 43 インサーキットエミュレータ 50 ターゲットシステム 62 /CS作成回路 63 カウンタ制御回路 64 STMアドレスカウンタ 65 アドレスマルチプレクサ 66 スタック/アンスタック専用メモリ 67 スタック/アンスタック専用メモリ 68 データバスバッファ 69 データバスバッファ /RD リード信号 /WR ライト信号 /B3CY バイト領域ステータス信号 /WORD ワードアクセスステータス信号 STMACP STMアドレスカウンタクロック信号 /ENABLE STMアドレスカウンタ許可信号 RUN ターゲットプログラム実行状態信号 INDA STMA初期値 CPUA プロセッサアドレス D15〜D0 データ STM スタックメモリコントロール信号 SELECT アドレスマルチプレクサ選択信号 STMA スタック/アンスタック用アドレス /HCS メモリ66の選択信号 /LCS メモリ67の選択信号
Claims (3)
- 【請求項1】 マイクロプロセッサの例外処理時におけ
る当該マイクロプロセッサの動作情報を所定のメモリへ
待避するためのスタック制御方法において、上記マイク
ロプロセッサのバイトアクセス時に有効となるデータバ
ス幅がワードアクセス時の1/2とされるとき、当該マ
イクロプロセッサのアクセスタイプを当該プロセッサの
ステータス信号により判定し、バイトアクセスに係る情
報待避のためのメモリアドレスカウントアップ量をワー
ドアクセスに係る情報待避の場合の1/2に制御するこ
とにより、当該メモリに待避されたデータをワード単位
で処理可能にすることを特徴とするスタック制御方法。 - 【請求項2】 スタックポインタがワード領域にある場
合には上記メモリのアドレスカウントアップ量を+2と
し、スタックポインタがバイト領域にある場合には上記
メモリのアドレスカウントアップ量を+1とすることに
よって上位データと下位データとを上記メモリの偶数ア
ドレスと奇数アドレスとに割当てるようにした請求項1
記載のスタック制御方法。 - 【請求項3】 ソフトウェアデバッグ対象とされるター
ゲットプログラムをマイクロプロセッサに実行させるこ
とにより、ターゲットシステム上で動作するソフトウェ
アの開発支援を可能とするエミュレータにおいて、上記
マイクロプロセッサのブレーク例外処理時における当該
マイクロプロセッサの動作情報を待避するためのメモリ
と、上記マイクロプロセッサのバイトアクセス時に有効
となるデータバス幅がワードアクセス時の1/2とされ
るとき、当該マイクロプロセッサのアクセスタイプを当
該マイクロプロセッサのステータス信号により判定し、
バイトアクセスに係る情報待避のためのメモリアドレス
カウントアップ量をワードアクセスに係る情報待避の場
合の1/2となるように制御することにより当該メモリ
に待避されたデータをワード単位で処理可能にするため
の制御手段とを含むことを特徴とするエミュレータ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4047902A JPH05216666A (ja) | 1992-02-04 | 1992-02-04 | スタック制御方法、及びエミュレータ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4047902A JPH05216666A (ja) | 1992-02-04 | 1992-02-04 | スタック制御方法、及びエミュレータ |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH05216666A true JPH05216666A (ja) | 1993-08-27 |
Family
ID=12788328
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4047902A Withdrawn JPH05216666A (ja) | 1992-02-04 | 1992-02-04 | スタック制御方法、及びエミュレータ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH05216666A (ja) |
-
1992
- 1992-02-04 JP JP4047902A patent/JPH05216666A/ja not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR0168656B1 (ko) | 데이터 처리 시스템 | |
US5664199A (en) | Microcomputer free from control of central processing unit (CPU) for receiving and writing instructions into memory independent of and during execution of CPU | |
US5155838A (en) | Computer system with emulation mechanism | |
JP3380827B2 (ja) | エミュレータ装置 | |
JPS60159951A (ja) | 情報処理装置におけるトレ−ス方式 | |
KR100223096B1 (ko) | 내부 메모리 맵 레지스터를 관측하는 방법 및 장치 | |
JPH05216666A (ja) | スタック制御方法、及びエミュレータ | |
JP2760228B2 (ja) | キャッシュメモリを内蔵したマイクロプロセッサとそのトレースアナライザ | |
JPH0581087A (ja) | プロセサのモニタ方式 | |
JP2520158B2 (ja) | ディジタルシグナルプロセッサのデバッグ方式 | |
JP2654105B2 (ja) | マイクロプロセッサ | |
JP2876909B2 (ja) | 割込みエミュレータ | |
JPH0447350A (ja) | 主記憶読み出し応答制御方式 | |
EP0382529A2 (en) | Microprocessor having store buffer | |
JPH0250495B2 (ja) | ||
JP2711159B2 (ja) | プロセッサ動作状態調整方法 | |
JPH04199336A (ja) | マイクロコンピュータ | |
JPH0795288B2 (ja) | マイクロコンピュータ | |
JPS60193046A (ja) | 命令例外検出方式 | |
JPH0782447B2 (ja) | Dmaデータ転送制御装置 | |
JPH04123235A (ja) | マイクロプログラムのデバッグ方式及び方法 | |
JPS62239242A (ja) | デバツク装置 | |
JPH0635760A (ja) | トレース機能付バッファ装置 | |
JPH05189267A (ja) | マイクロプロセッサの動作制御方式、及びエミュレータ | |
JPS61138344A (ja) | デバツグ方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 19990518 |