JPH04262430A - マイクロプロセッサ - Google Patents
マイクロプロセッサInfo
- Publication number
- JPH04262430A JPH04262430A JP3044471A JP4447191A JPH04262430A JP H04262430 A JPH04262430 A JP H04262430A JP 3044471 A JP3044471 A JP 3044471A JP 4447191 A JP4447191 A JP 4447191A JP H04262430 A JPH04262430 A JP H04262430A
- Authority
- JP
- Japan
- Prior art keywords
- stack
- emulation
- interrupt
- register
- microprocessor
- 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
- 238000011161 development Methods 0.000 abstract description 8
- 238000001514 detection method Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000000034 method Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 2
- GNLJOAHHAPACCT-UHFFFAOYSA-N 4-diethoxyphosphorylmorpholine Chemical compound CCOP(=O)(OCC)N1CCOCC1 GNLJOAHHAPACCT-UHFFFAOYSA-N 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 210000002784 stomach Anatomy 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【産業上の利用分野】本発明は、ユーザプログラム実行
中の割り込み又はインタラプト命令に対する例外処理機
能を有するマイクロプロセッサに関し、例えばソフトウ
ェアデバッグの為のエミュレーションにおいて用いられ
るインサーキットエミュレータに適用して有効な技術に
関する。
中の割り込み又はインタラプト命令に対する例外処理機
能を有するマイクロプロセッサに関し、例えばソフトウ
ェアデバッグの為のエミュレーションにおいて用いられ
るインサーキットエミュレータに適用して有効な技術に
関する。
【0002】
【従来の技術】マイクロコンピュータ応用機器(ユーザ
システム)の開発において、ソフトウェアデバッグやシ
ステム評価を行うために用いられるインサーキットエミ
ュレータは、ユーザシステムに搭載されるマイクロプロ
セッサ若しくはそれと同等のエミュレーション専用マイ
クロプロセッサ(エバチップとも称される)をユーザシ
ステムとのインタフェース部に備え、このマイクロプロ
セッサにソフトウェアデバッグ対象とされるユーザプロ
グラムを実行させてユーザシステムを代行制御する。こ
のとき、デバッグ対象プログラムの内容を任意に変更し
たりして、その制御状態をトレースし、所定のブレーク
ポイントでそのトレース結果を確認可能にしながらユー
ザシステムのソフトウェアデバッグを支援する。
システム)の開発において、ソフトウェアデバッグやシ
ステム評価を行うために用いられるインサーキットエミ
ュレータは、ユーザシステムに搭載されるマイクロプロ
セッサ若しくはそれと同等のエミュレーション専用マイ
クロプロセッサ(エバチップとも称される)をユーザシ
ステムとのインタフェース部に備え、このマイクロプロ
セッサにソフトウェアデバッグ対象とされるユーザプロ
グラムを実行させてユーザシステムを代行制御する。こ
のとき、デバッグ対象プログラムの内容を任意に変更し
たりして、その制御状態をトレースし、所定のブレーク
ポイントでそのトレース結果を確認可能にしながらユー
ザシステムのソフトウェアデバッグを支援する。
【0003】インサーキットエミュレータを用いたデバ
ッグにおいては、ユーザプログラムを任意のアドレスか
ら実行させることができる。このような機能は、一般に
はインサーキットエミュレータにおいてファームウェア
として備えられているモニタプログラムによって実行さ
れる。ユーザプログラムを任意のアドレスから実行させ
るには、プロセッサのプログラムカウンタにそのアドレ
スを入力してやれば良い。技術的には、プログラムカウ
ンタに所望の値を設定するための命令をプロセッサに実
行させる方法もあるが、それよりも簡単な方法として、
リターン命令を実行するときにスタックから戻り番地を
読むことを利用する方式がある。すなわち、実行したい
アドレスを予めスタックに書いておき、モニタプログラ
ムを終了するときにリターン命令を使うとそのアドレス
に実行が移るので、任意のアドレスからの実行が可能と
される。
ッグにおいては、ユーザプログラムを任意のアドレスか
ら実行させることができる。このような機能は、一般に
はインサーキットエミュレータにおいてファームウェア
として備えられているモニタプログラムによって実行さ
れる。ユーザプログラムを任意のアドレスから実行させ
るには、プロセッサのプログラムカウンタにそのアドレ
スを入力してやれば良い。技術的には、プログラムカウ
ンタに所望の値を設定するための命令をプロセッサに実
行させる方法もあるが、それよりも簡単な方法として、
リターン命令を実行するときにスタックから戻り番地を
読むことを利用する方式がある。すなわち、実行したい
アドレスを予めスタックに書いておき、モニタプログラ
ムを終了するときにリターン命令を使うとそのアドレス
に実行が移るので、任意のアドレスからの実行が可能と
される。
【0004】上記ブレークポイントには、大きく分けて
ソフトウェアブレークポイントと、ハードウェアブレー
クポイントがある。ブレークは、機能としては単純であ
り、ブレーク割り込み入力又はインタラプト命令の実行
によりユーザプログラムの流れを変えることによって行
われる。すなわち、予め設定されたブレーク条件が発生
すればユーザプログラムの実行が中断され、モニタプロ
グラムの実行に移行され、そこでメモリの内容を見たり
レジスタを変更したりした後、更にユーザプログラムの
実行に移行される。
ソフトウェアブレークポイントと、ハードウェアブレー
クポイントがある。ブレークは、機能としては単純であ
り、ブレーク割り込み入力又はインタラプト命令の実行
によりユーザプログラムの流れを変えることによって行
われる。すなわち、予め設定されたブレーク条件が発生
すればユーザプログラムの実行が中断され、モニタプロ
グラムの実行に移行され、そこでメモリの内容を見たり
レジスタを変更したりした後、更にユーザプログラムの
実行に移行される。
【0005】尚、インサーキットエミュレータについて
記載された文献の例としては、1989年6月20日に
電波新聞社より発行された「マイコン開発のすべて(7
8頁〜95頁)」がある。
記載された文献の例としては、1989年6月20日に
電波新聞社より発行された「マイコン開発のすべて(7
8頁〜95頁)」がある。
【0006】
【発明が解決しようとする課題】上記インサーキットエ
ミュレータを用いたソフトウェアデバッグにおいて、ブ
レーク割り込み入力又はインタラプト命令の実行による
、スタック、アンスタック動作時に、ユーザプログラム
のスタック領域を使用すると、ユーザプログラムのスタ
ックポイントが変更され、その後のユーザプログラムの
実行に支障を来すので、ブレーク割り込み入力又はイン
タラプト命令実行によるスタック、アンスタックは、ユ
ーザプログラムのスタック領域を使用しないように、エ
ミュレーションマイクロプロセッサの外部ハードウェア
すなわちインサーキットエミュレータに設けられたRA
M(ランダム・アクセス・メモリ)に対して行うように
していた。従って従来のインサーキットエミュレータに
は、上記のスタック、アンスタックを行うRAMとその
制御を行うための制御回路とが搭載されている。
ミュレータを用いたソフトウェアデバッグにおいて、ブ
レーク割り込み入力又はインタラプト命令の実行による
、スタック、アンスタック動作時に、ユーザプログラム
のスタック領域を使用すると、ユーザプログラムのスタ
ックポイントが変更され、その後のユーザプログラムの
実行に支障を来すので、ブレーク割り込み入力又はイン
タラプト命令実行によるスタック、アンスタックは、ユ
ーザプログラムのスタック領域を使用しないように、エ
ミュレーションマイクロプロセッサの外部ハードウェア
すなわちインサーキットエミュレータに設けられたRA
M(ランダム・アクセス・メモリ)に対して行うように
していた。従って従来のインサーキットエミュレータに
は、上記のスタック、アンスタックを行うRAMとその
制御を行うための制御回路とが搭載されている。
【0007】しかしながら上記のようにソフトウェアデ
バッグにおけるスタック、アンスタックのためのRAM
やその制御回路をインサーキットエミュレータに設ける
ことは、以下のような問題点のあることが本発明者によ
って見いだされた。
バッグにおけるスタック、アンスタックのためのRAM
やその制御回路をインサーキットエミュレータに設ける
ことは、以下のような問題点のあることが本発明者によ
って見いだされた。
【0008】即ち、上記のようにソフトウェアデバッグ
におけるスタック、アンスタックのためのRAMやその
制御回路をインサーキットエミュレータに設けることは
インサーキットエミュレータの規模の増大、コストの増
大を招来する。また、マイクロプロセッサの高集積化が
進むにつれてDMAC(ダイレクト・メモリ・アクセス
・コントローラ)やリフレッシュコントローラがプロセ
ッサに搭載されるようになるとバスサイクルが複雑とな
り、それによってエミュレーション制御も複雑となるか
ら、マイクロプロセッサの品種毎にそれに応じた、スタ
ック、アンスタックのためのRAMやその制御回路を用
意しなければならないのはインサーキットエミュレータ
の開発期間を大幅に遅延させる主たる要因とされる。さ
らに、上記のように高集積化につれて高機能化されたマ
イクロプロセッサにおいては、例えばブレーク割り込み
が有効とされたか否かの判断は、プロセッサに結合され
た外部バスの複雑なバスサイクルによらざるを得ないか
ら、上記スタック、アンスタックのための外部制御回路
の構成は非常に複雑なものとされ、プロセッサの品種に
よっては割り込みサイクルの検出が不可能とされる場合
も考えられる。
におけるスタック、アンスタックのためのRAMやその
制御回路をインサーキットエミュレータに設けることは
インサーキットエミュレータの規模の増大、コストの増
大を招来する。また、マイクロプロセッサの高集積化が
進むにつれてDMAC(ダイレクト・メモリ・アクセス
・コントローラ)やリフレッシュコントローラがプロセ
ッサに搭載されるようになるとバスサイクルが複雑とな
り、それによってエミュレーション制御も複雑となるか
ら、マイクロプロセッサの品種毎にそれに応じた、スタ
ック、アンスタックのためのRAMやその制御回路を用
意しなければならないのはインサーキットエミュレータ
の開発期間を大幅に遅延させる主たる要因とされる。さ
らに、上記のように高集積化につれて高機能化されたマ
イクロプロセッサにおいては、例えばブレーク割り込み
が有効とされたか否かの判断は、プロセッサに結合され
た外部バスの複雑なバスサイクルによらざるを得ないか
ら、上記スタック、アンスタックのための外部制御回路
の構成は非常に複雑なものとされ、プロセッサの品種に
よっては割り込みサイクルの検出が不可能とされる場合
も考えられる。
【0009】本発明の目的は、ブレーク割り込み入力又
はインタラプト命令の実行による、スタック、アンスタ
ック動作のためのRAMやその制御回路としてマイクロ
プロセッサの外部に配置されていたものを省略すること
にある。また、本発明の別の目的は、インサーキットエ
ミュレータの規模の低減、コストの低下、開発期間の短
縮を可能とする技術を提供することにある。
はインタラプト命令の実行による、スタック、アンスタ
ック動作のためのRAMやその制御回路としてマイクロ
プロセッサの外部に配置されていたものを省略すること
にある。また、本発明の別の目的は、インサーキットエ
ミュレータの規模の低減、コストの低下、開発期間の短
縮を可能とする技術を提供することにある。
【0010】本発明の前記並びにその他の目的と新規な
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
【0011】
【課題を解決するための手段】本願において開示される
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
【0012】すなわち、ユーザプログラムのスタックポ
インタ値とは無関係に、ブレーク割り込み又はインタラ
プト命令によるスタック動作及びリターン命令によるア
ンスタック動作を可能とするエミュレーション専用スタ
ックレジスタをマイクロプロセッサ内蔵するものである
。この場合においてユーザプログラムのスタック内容が
プログラムカウンタ値とステータスレジスタ値とされる
とき、上記エミュレーション専用レジスタのバイト数は
、当該プログラムカウンタと当該ステータスレジスタと
のバイト数の合計に等しくなるように設定することがで
きる。また、上記エミュレーション専用スタックレジス
タに対するアクセスのためにそれの専用命令を設定する
ことができる。
インタ値とは無関係に、ブレーク割り込み又はインタラ
プト命令によるスタック動作及びリターン命令によるア
ンスタック動作を可能とするエミュレーション専用スタ
ックレジスタをマイクロプロセッサ内蔵するものである
。この場合においてユーザプログラムのスタック内容が
プログラムカウンタ値とステータスレジスタ値とされる
とき、上記エミュレーション専用レジスタのバイト数は
、当該プログラムカウンタと当該ステータスレジスタと
のバイト数の合計に等しくなるように設定することがで
きる。また、上記エミュレーション専用スタックレジス
タに対するアクセスのためにそれの専用命令を設定する
ことができる。
【0013】
【作用】上記した手段によれば、マイクロプロセッサに
内蔵されたエミュレーション専用スタックレジスタに対
する、ブレーク割り込み又はインタラプト命令によるス
タック動作及びリターン命令によるアンスタック動作が
ユーザプログラムのスタックポインタ値とは無関係に行
われ、それによってユーザプログラムのスタック領域が
保護される。このことが、上記スタック、アンスタック
のためのRAMやその制御回路の外部形成を不要とし、
インサーキットエミュレータの規模の低減、コストの低
下、開発期間の短縮を可能とする。
内蔵されたエミュレーション専用スタックレジスタに対
する、ブレーク割り込み又はインタラプト命令によるス
タック動作及びリターン命令によるアンスタック動作が
ユーザプログラムのスタックポインタ値とは無関係に行
われ、それによってユーザプログラムのスタック領域が
保護される。このことが、上記スタック、アンスタック
のためのRAMやその制御回路の外部形成を不要とし、
インサーキットエミュレータの規模の低減、コストの低
下、開発期間の短縮を可能とする。
【0014】
【実施例】図2には、本発明の一実施例としてのインサ
ーキットエミュレータが示される。図2において20は
インサーキットエミュレータ本体であり、この本体20
は、ユーザインタフェース部11より引き出されたイン
タフェースケーブル12を介して図示されないユーザシ
ステムに結合可能にされている。ユーザインタフェース
部11にはエミュレーションバス5が結合され、さらに
このエミュレーションバス5には、本発明の一実施例と
してのマイクロプロセッサ1が結合される。それにより
、ユーザシステムとマイクロプロセッサ1とがやりとり
する情報や当該マイクロプロセッサ1の内部状態に応ず
る情報がエミュレーションバス5に与えられ、また、こ
のエミュレーションバス5を介してエミュレーションの
ための各種制御信号や情報がマイクロプロセッサ1に与
えられるようになっている。そして上記エミュレーショ
ンバス5には、エミュレーション動作を制御するエミュ
レーション制御部6、エミュレーション動作制御時に使
用されるメモリ10、エミュレーションバス5に与えら
れるデータやアドレスさらには制御情報を逐次トレース
して蓄えるトレースメモリ7、マイクロプロセッサ1の
制御状態やエミュレーションバス5の状態を監視してそ
の状態が予め設定された状態に到達したときエミュレー
ション動作をブレークするためのブレーク検出回路8、
ユーザシステムの未完成時にそれに含まれるべきデータ
メモリやプログラムメモリを代行するために当該ユーザ
システムの任意のアドレス空間に割り付けて使用可能な
エミュレーションメモリ9が結合される。
ーキットエミュレータが示される。図2において20は
インサーキットエミュレータ本体であり、この本体20
は、ユーザインタフェース部11より引き出されたイン
タフェースケーブル12を介して図示されないユーザシ
ステムに結合可能にされている。ユーザインタフェース
部11にはエミュレーションバス5が結合され、さらに
このエミュレーションバス5には、本発明の一実施例と
してのマイクロプロセッサ1が結合される。それにより
、ユーザシステムとマイクロプロセッサ1とがやりとり
する情報や当該マイクロプロセッサ1の内部状態に応ず
る情報がエミュレーションバス5に与えられ、また、こ
のエミュレーションバス5を介してエミュレーションの
ための各種制御信号や情報がマイクロプロセッサ1に与
えられるようになっている。そして上記エミュレーショ
ンバス5には、エミュレーション動作を制御するエミュ
レーション制御部6、エミュレーション動作制御時に使
用されるメモリ10、エミュレーションバス5に与えら
れるデータやアドレスさらには制御情報を逐次トレース
して蓄えるトレースメモリ7、マイクロプロセッサ1の
制御状態やエミュレーションバス5の状態を監視してそ
の状態が予め設定された状態に到達したときエミュレー
ション動作をブレークするためのブレーク検出回路8、
ユーザシステムの未完成時にそれに含まれるべきデータ
メモリやプログラムメモリを代行するために当該ユーザ
システムの任意のアドレス空間に割り付けて使用可能な
エミュレーションメモリ9が結合される。
【0015】14はホストCPUであり、このホストC
PU14は、インサーキットエミュレータ本体20全体
の動作を制御する機能を有し、システムバス13を介し
て上記エミュレーション制御部6、メモリ10、ブレー
ク検出回路8、トレースメモリー7、エミュレーション
メモリ9に結合されるとともに、システムメモリ15、
I/Oインタフェース部16に結合される。I/Oイン
タフェース部16は、マンマシンインタフェースとして
のCRTディスプレイ/キーボード17や、図示しない
ソフトウェア開発装置からオブジェクトデータなどをダ
ウンロードするためのデータ読み取り装置などが結合さ
れる。
PU14は、インサーキットエミュレータ本体20全体
の動作を制御する機能を有し、システムバス13を介し
て上記エミュレーション制御部6、メモリ10、ブレー
ク検出回路8、トレースメモリー7、エミュレーション
メモリ9に結合されるとともに、システムメモリ15、
I/Oインタフェース部16に結合される。I/Oイン
タフェース部16は、マンマシンインタフェースとして
のCRTディスプレイ/キーボード17や、図示しない
ソフトウェア開発装置からオブジェクトデータなどをダ
ウンロードするためのデータ読み取り装置などが結合さ
れる。
【0016】上記マイクロプロセッサ1は、上記ブレー
ク検出回路8からのブレーク割り込み信号を取り込むた
めの専用の入力端子4や、このブレーク割り込み専用入
力端子4からのブレーク割り込み、又は所定のインタラ
プト命令によるスタック動作、及びリターン命令による
アンスタック動作を、ユーザプログラムのスタックポイ
ンタ値とは無関係に可能とするためのエミュレーション
専用スタックレジスタ(STR)3を含み、以下のよう
に構成される。
ク検出回路8からのブレーク割り込み信号を取り込むた
めの専用の入力端子4や、このブレーク割り込み専用入
力端子4からのブレーク割り込み、又は所定のインタラ
プト命令によるスタック動作、及びリターン命令による
アンスタック動作を、ユーザプログラムのスタックポイ
ンタ値とは無関係に可能とするためのエミュレーション
専用スタックレジスタ(STR)3を含み、以下のよう
に構成される。
【0017】図1には上記マイクロプロセッサ1の詳細
な構成が示される。
な構成が示される。
【0018】図1に示されるマイクロプロセッサ1は、
特に制限されないが、公知の半導体集積回路製造技術に
より、シリコンなどの一つの半導体基板に形成される。
特に制限されないが、公知の半導体集積回路製造技術に
より、シリコンなどの一つの半導体基板に形成される。
【0019】図1に示されるマイクロプロセッサ1は、
特に制限されないが、16ビット構成の内部バス21を
有し、この内部バス21には、演算器(算術論理演算回
路)22や、プログラムの制御のためのプログラムカウ
ンタ(PC)23、各ビットに状態表示の意味が割り当
てられたステータスレジスタ(SR)24、ワーク領域
が形成されるメモリ25、上記のようにブレーク割り込
み専用入力端子4からのブレーク割り込み、又は所定の
インタラプト命令によるスタック動作、及びリターン命
令によるアンスタック動作を、ユーザプログラムのスタ
ックポインタ値とは無関係に可能とするためのエミュレ
ーション専用スタックレジスタ(STR)3、さらには
バスコントローラ28を介して上記エミュレーションバ
ス5との間でデータやアドレスの転送を可能とするデー
タレジスタ26及びアドレスレジスタ27などが結合さ
れる。上記メモリ25には、ユーザプログラムのスタッ
クポインタ(SP)25A、汎用レジスタ25B、スタ
ック領域25Cが形成される。また、ユーザプログラム
のスタック内容は、プログラムカウンタ23の値とステ
ータスレジスタ24の値の各々2バイトで、合計4バイ
トとされる。それに呼応して上記エミュレーション専用
スタックレジスタ3のバイト数は、4バイトとされる。 また、特に制限されないが、このエミュレーション専用
スタックレジスタ3のアクセスのためにそれ専用の命令
が設定されており、当該専用命令によってのみ上記エミ
ュレーション専用スタックレジスタ3のアクセスが可能
とされる。
特に制限されないが、16ビット構成の内部バス21を
有し、この内部バス21には、演算器(算術論理演算回
路)22や、プログラムの制御のためのプログラムカウ
ンタ(PC)23、各ビットに状態表示の意味が割り当
てられたステータスレジスタ(SR)24、ワーク領域
が形成されるメモリ25、上記のようにブレーク割り込
み専用入力端子4からのブレーク割り込み、又は所定の
インタラプト命令によるスタック動作、及びリターン命
令によるアンスタック動作を、ユーザプログラムのスタ
ックポインタ値とは無関係に可能とするためのエミュレ
ーション専用スタックレジスタ(STR)3、さらには
バスコントローラ28を介して上記エミュレーションバ
ス5との間でデータやアドレスの転送を可能とするデー
タレジスタ26及びアドレスレジスタ27などが結合さ
れる。上記メモリ25には、ユーザプログラムのスタッ
クポインタ(SP)25A、汎用レジスタ25B、スタ
ック領域25Cが形成される。また、ユーザプログラム
のスタック内容は、プログラムカウンタ23の値とステ
ータスレジスタ24の値の各々2バイトで、合計4バイ
トとされる。それに呼応して上記エミュレーション専用
スタックレジスタ3のバイト数は、4バイトとされる。 また、特に制限されないが、このエミュレーション専用
スタックレジスタ3のアクセスのためにそれ専用の命令
が設定されており、当該専用命令によってのみ上記エミ
ュレーション専用スタックレジスタ3のアクセスが可能
とされる。
【0020】31はマイクロプログラムが格納されるマ
イクロプログラムメモリ、30はこのマイクロプログラ
ムメモリ31を制御するためのマイクロインストラクシ
ョンコントローラであり、このコントローラ30の制御
によって上記マイクロプログラムメモリ31から読出さ
れたマイクロ命令は、後段のデコード回路32によって
解釈され、それにより、上記演算器22、プログラムカ
ウンタ23、ステータスレジスタ24、メモリ25、エ
ミュレーション専用スタックレジスタ3、データレジス
タ26、及びアドレスレジスタ27の動作制御信号が生
成される。
イクロプログラムメモリ、30はこのマイクロプログラ
ムメモリ31を制御するためのマイクロインストラクシ
ョンコントローラであり、このコントローラ30の制御
によって上記マイクロプログラムメモリ31から読出さ
れたマイクロ命令は、後段のデコード回路32によって
解釈され、それにより、上記演算器22、プログラムカ
ウンタ23、ステータスレジスタ24、メモリ25、エ
ミュレーション専用スタックレジスタ3、データレジス
タ26、及びアドレスレジスタ27の動作制御信号が生
成される。
【0021】29は割り込みコントローラであり、この
割り込みコントローラ29は、上記ブレーク検出回路8
からのブレーク割り込み信号を取り込み、それがアサー
トされた場合に上記マイクロインストラクションコント
ローラ30に対して所定の処理ルーチンへの分岐を要求
する。種々の割り込みに対して原因別に処理ルーチンの
先頭番地のテーブル(ベクタ)が、マイクロインストラ
クションコントローラ30内にあり、上記ブレーク割り
込みが受け付けられると、それに対応するテーブルが引
かれて該当する処理ルーチンへ分岐される。
割り込みコントローラ29は、上記ブレーク検出回路8
からのブレーク割り込み信号を取り込み、それがアサー
トされた場合に上記マイクロインストラクションコント
ローラ30に対して所定の処理ルーチンへの分岐を要求
する。種々の割り込みに対して原因別に処理ルーチンの
先頭番地のテーブル(ベクタ)が、マイクロインストラ
クションコントローラ30内にあり、上記ブレーク割り
込みが受け付けられると、それに対応するテーブルが引
かれて該当する処理ルーチンへ分岐される。
【0022】図3には、エミュレーション起動時(ユー
ザプログラム起動時)におけるスタックポインタ(SP
)25Aとエミュレーション専用スタックレジスタ(S
TR)3の設定の一例が示される。
ザプログラム起動時)におけるスタックポインタ(SP
)25Aとエミュレーション専用スタックレジスタ(S
TR)3の設定の一例が示される。
【0023】エミュレーション起動はリターン命令によ
り行われるが、このリターン命令の実行前に、エミュレ
ーション専用レジスタ3のアクセス専用として設定され
た所定のアクセス命令を実行させることにより、ユーザ
プログラム開始時のプログラムカウンタ(PC)23の
値とステータスレジスタ(SR)24の値とが上記専用
スタックレジスタ3に設定される。図3の例ではPC■
、SR■がエミュレーション専用スタックレジスタ(S
TR)3に設定されている。またこのとき、スタックポ
インタ(SP)25Aは、上記リターン命令実行後にユ
ーザプログラム状態に整合するように、ユーザプログラ
ム実行時の値より4を減じた値に設定される。図3に示
される例では、ユーザプログラム実行時のスタックポイ
ンタ(SP)値を$110とする場合に、リターン命令
実行前のスタックポインタ(SP)の値は$106に設
定されている。
り行われるが、このリターン命令の実行前に、エミュレ
ーション専用レジスタ3のアクセス専用として設定され
た所定のアクセス命令を実行させることにより、ユーザ
プログラム開始時のプログラムカウンタ(PC)23の
値とステータスレジスタ(SR)24の値とが上記専用
スタックレジスタ3に設定される。図3の例ではPC■
、SR■がエミュレーション専用スタックレジスタ(S
TR)3に設定されている。またこのとき、スタックポ
インタ(SP)25Aは、上記リターン命令実行後にユ
ーザプログラム状態に整合するように、ユーザプログラ
ム実行時の値より4を減じた値に設定される。図3に示
される例では、ユーザプログラム実行時のスタックポイ
ンタ(SP)値を$110とする場合に、リターン命令
実行前のスタックポインタ(SP)の値は$106に設
定されている。
【0024】リターン命令によるアンスタックにより、
エミュレーション専用スタックレジスタ(STR)3の
内容がSR■、PC■の順に読出され、それと同時にス
タックポインタ(SP)は+4されることにより、$1
0Aとなり、ユーザプログラム状態とされる。SR■に
よりステータスレジスタ24の内容が設定され、その後
PC■よりユーザプログラムが実行される(エミュレー
ション起動)。
エミュレーション専用スタックレジスタ(STR)3の
内容がSR■、PC■の順に読出され、それと同時にス
タックポインタ(SP)は+4されることにより、$1
0Aとなり、ユーザプログラム状態とされる。SR■に
よりステータスレジスタ24の内容が設定され、その後
PC■よりユーザプログラムが実行される(エミュレー
ション起動)。
【0025】図4にはブレーク時のスタックポインタ(
SP)25Aとエミュレーション専用スタックレジスタ
(STR)3の設定の一例が示される。
SP)25Aとエミュレーション専用スタックレジスタ
(STR)3の設定の一例が示される。
【0026】ユーザプログラムの実行において、ブレー
ク検出回路8からのブレーク割り込み信号がアサートさ
れると、エミュレーション専用スタックレジスタ3のア
クセス専用命令により、ブレーク直前のユーザプログラ
ムのプログラムカウンタ(PC)23の値PC■と、ス
テータスレジスタ(SR)24の値SR■の値がエミュ
レーション専用スタックレジスタ(STR)3にスタッ
クされる。同時にスタックポインタ(SP)は−4され
て$106とされる。尚、本実施例ではユーザシステム
に影響を与えないようにするため、スタックにおけるラ
イトサイクルのライト信号をマイクロプロセッサ1の外
部に出力しないようにしている。ブレーク例外処理が終
了されと、マイクロプロセッサ1は、モニタプログラム
(エミュレータ制御プログラム)を実行するが、このモ
ニタプログラムの実行において、エミュレーション専用
スタックレジスタ(STR)3のアクセス専用命令を実
行させて当該専用スタックレジスタ3の内容を読み出す
ことにより、ユーザプログラムのブレーク時のプログラ
ムカウンタ(PC)23、ステータスレジスタ(SR)
24の内容を知ることができる。
ク検出回路8からのブレーク割り込み信号がアサートさ
れると、エミュレーション専用スタックレジスタ3のア
クセス専用命令により、ブレーク直前のユーザプログラ
ムのプログラムカウンタ(PC)23の値PC■と、ス
テータスレジスタ(SR)24の値SR■の値がエミュ
レーション専用スタックレジスタ(STR)3にスタッ
クされる。同時にスタックポインタ(SP)は−4され
て$106とされる。尚、本実施例ではユーザシステム
に影響を与えないようにするため、スタックにおけるラ
イトサイクルのライト信号をマイクロプロセッサ1の外
部に出力しないようにしている。ブレーク例外処理が終
了されと、マイクロプロセッサ1は、モニタプログラム
(エミュレータ制御プログラム)を実行するが、このモ
ニタプログラムの実行において、エミュレーション専用
スタックレジスタ(STR)3のアクセス専用命令を実
行させて当該専用スタックレジスタ3の内容を読み出す
ことにより、ユーザプログラムのブレーク時のプログラ
ムカウンタ(PC)23、ステータスレジスタ(SR)
24の内容を知ることができる。
【0027】このように上記エミュレーション起動時及
びブレーク時にユーザプログラムのスタック領域を使用
しないため、スタックの内容$106〜$108のデー
タを保証することができる。
びブレーク時にユーザプログラムのスタック領域を使用
しないため、スタックの内容$106〜$108のデー
タを保証することができる。
【0028】尚、以上の説明では、ブレーク検出回路8
からのブレーク割り込み信号がアサートされることによ
ってブレークされた場合について説明したが、それとは
別に、ユーザプログラムに予め挿入されたインタラプト
命令によってブレークされる場合にも、上記と同様に、
エミュレーション専用スタックレジスタ3に対して、ス
タック、アンスタックの動作が行われることによりスタ
ックの内容$106〜$108のデータが保証される。
からのブレーク割り込み信号がアサートされることによ
ってブレークされた場合について説明したが、それとは
別に、ユーザプログラムに予め挿入されたインタラプト
命令によってブレークされる場合にも、上記と同様に、
エミュレーション専用スタックレジスタ3に対して、ス
タック、アンスタックの動作が行われることによりスタ
ックの内容$106〜$108のデータが保証される。
【0029】本実施例によれば以下の作用効果を得るこ
とができる。
とができる。
【0030】(1)マイクロプロセッサ1に内蔵された
エミュレーション専用スタックレジスタ3に対する、ブ
レーク割り込み又はインタラプト命令によるスタック動
作及びリターン命令によるアンスタック動作がユーザプ
ログラムのスタックポインタ値とは無関係に行われ、そ
れによってユーザプログラムのスタック領域が保護され
るので、上記スタック、アンスタックのためのRAMや
その制御回路をインサーキットエミュレータ本体20で
形成する必要がない。
エミュレーション専用スタックレジスタ3に対する、ブ
レーク割り込み又はインタラプト命令によるスタック動
作及びリターン命令によるアンスタック動作がユーザプ
ログラムのスタックポインタ値とは無関係に行われ、そ
れによってユーザプログラムのスタック領域が保護され
るので、上記スタック、アンスタックのためのRAMや
その制御回路をインサーキットエミュレータ本体20で
形成する必要がない。
【0031】(2)上記(1)の作用効果により、イン
サーキットエミュレータの規模の低減、コストの低下、
開発期間の短縮が可能とされる。
サーキットエミュレータの規模の低減、コストの低下、
開発期間の短縮が可能とされる。
【0032】以上本発明者によってなされた発明を実施
例に基づいて具体的に説明したが、本発明はそれに限定
されるものではなく、その要旨を逸脱しない範囲におい
て種々変更可能であることは言うまでもない。
例に基づいて具体的に説明したが、本発明はそれに限定
されるものではなく、その要旨を逸脱しない範囲におい
て種々変更可能であることは言うまでもない。
【0033】例えば、上記実施例では、エミュレーショ
ン専用レジスタ3のアクセス専用命令によって当該レジ
スタ3をアクセスするようにしたが、マイクロプロセッ
サ1内のCPU2によって管理されるアドレス空間にエ
ミュレーション専用スタックレジスタ3を配置するよう
にすれば、上記のアクセス専用命令は不要とされる。ま
た、上記実施例では、図3、図4で説明したようにブレ
ーク時及びエミュレーション起動時の夫々において、ス
タックポインタの値を変更する処理を行ったが、ブレー
クとエミュレーションを連続させる場合には、何れか一
方で対処すればよい。
ン専用レジスタ3のアクセス専用命令によって当該レジ
スタ3をアクセスするようにしたが、マイクロプロセッ
サ1内のCPU2によって管理されるアドレス空間にエ
ミュレーション専用スタックレジスタ3を配置するよう
にすれば、上記のアクセス専用命令は不要とされる。ま
た、上記実施例では、図3、図4で説明したようにブレ
ーク時及びエミュレーション起動時の夫々において、ス
タックポインタの値を変更する処理を行ったが、ブレー
クとエミュレーションを連続させる場合には、何れか一
方で対処すればよい。
【0034】以上の説明では主として本発明者によって
なされた発明をその背景となった利用分野であるインサ
ーキットエミュレータ本体に適用した場合について説明
したが、本発明はそれに限定されるものではなく、各種
のマイクロプロセッサデバッグ用装置に適用することが
できる。
なされた発明をその背景となった利用分野であるインサ
ーキットエミュレータ本体に適用した場合について説明
したが、本発明はそれに限定されるものではなく、各種
のマイクロプロセッサデバッグ用装置に適用することが
できる。
【0035】本発明は、少なくとも割り込み又はインタ
ラプタ命令による例外処理機能を含む条件のものに適用
することができる。
ラプタ命令による例外処理機能を含む条件のものに適用
することができる。
【0036】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
【0037】すなわち、マイクロプロセッサに内蔵され
たエミュレーション専用レジスタに対する、ブレーク割
り込み又はインタラプト命令によるスタック動作及びリ
ターン命令によるアンスタック動作がユーザプログラム
のスタックポインタ値とは無関係に行われ、それによっ
てユーザプログラムのスタック領域が保護されるので、
上記スタック、アンスタックのためのRAMやその制御
回路を当該マイクロプロセッサの外部に形成する必要が
なく、またそれによってインサーキットエミュレータの
規模の低減、コストの低下、開発期間の短縮が可能とさ
れる。
たエミュレーション専用レジスタに対する、ブレーク割
り込み又はインタラプト命令によるスタック動作及びリ
ターン命令によるアンスタック動作がユーザプログラム
のスタックポインタ値とは無関係に行われ、それによっ
てユーザプログラムのスタック領域が保護されるので、
上記スタック、アンスタックのためのRAMやその制御
回路を当該マイクロプロセッサの外部に形成する必要が
なく、またそれによってインサーキットエミュレータの
規模の低減、コストの低下、開発期間の短縮が可能とさ
れる。
【図1】図1は本発明の一実施例としてのインサーキッ
トエミュレータに含まれるマイクロプロセッサの構成ブ
ロック図である。
トエミュレータに含まれるマイクロプロセッサの構成ブ
ロック図である。
【図2】図2は上記インサーキットエミュレータの全体
的な構成ブロック図である。
的な構成ブロック図である。
【図3】図3はエミュレーション起動時のスタックポイ
ンタとエミュレーション専用スタックレジスタの設定例
の説明図である。
ンタとエミュレーション専用スタックレジスタの設定例
の説明図である。
【図4】図4はブレーク時におけるスタックポインタと
エミュレーション専用スタックレジスタの設定例の説明
図である。
エミュレーション専用スタックレジスタの設定例の説明
図である。
1 マイクロプロセッサ
2 CPU
3 エミュレーション専用スタックレジスタ4 ブ
レーク割り込み専用入力端子 20 インサーキットエミュレータ本体21 内部
バス 22 演算器 23 プログラムカウンタ 24 ステータスレジスタ 25 メモリ 26 データレジスタ 27 アドレスレジスタ 28 バスコントローラ 29 割り込みコントローラ 30 マイクロインストラクションコントローラ31
マイクロプログラムメモリ 32 デコード回路
レーク割り込み専用入力端子 20 インサーキットエミュレータ本体21 内部
バス 22 演算器 23 プログラムカウンタ 24 ステータスレジスタ 25 メモリ 26 データレジスタ 27 アドレスレジスタ 28 バスコントローラ 29 割り込みコントローラ 30 マイクロインストラクションコントローラ31
マイクロプログラムメモリ 32 デコード回路
Claims (3)
- 【請求項1】 ユーザプログラム実行中のブレーク割
り込み又はインタラプト命令に対する例外処理機能を有
するマイクロプロセッサにおいて、ユーザプログラムの
スタックポインタ値とは無関係に、上記のブレーク割り
込み又はインタラプト命令によるスタック動作及びリタ
ーン命令によるアンスタック動作を可能とするエミュレ
ーション専用スタックレジスタを内蔵することを特徴と
するマイクロプロセッサ。 - 【請求項2】 ユーザプログラムのスタック内容がプ
ログラムカウンタ値とステータスレジスタ値とされると
き、上記エミュレーション専用レジスタのバイト数は、
当該プログラムカウンタと当該ステータスレジスタとの
バイト数の合計に等しくなるように設定されて成る請求
項1記載のマイクロプロセッサ。 - 【請求項3】 上記エミュレーション専用スタックレ
ジスタに対するアクセス専用命令が設定されて成る請求
項1又は2記載のマイクロプロセッサ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3044471A JPH04262430A (ja) | 1991-02-15 | 1991-02-15 | マイクロプロセッサ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3044471A JPH04262430A (ja) | 1991-02-15 | 1991-02-15 | マイクロプロセッサ |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH04262430A true JPH04262430A (ja) | 1992-09-17 |
Family
ID=12692432
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3044471A Withdrawn JPH04262430A (ja) | 1991-02-15 | 1991-02-15 | マイクロプロセッサ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH04262430A (ja) |
-
1991
- 1991-02-15 JP JP3044471A patent/JPH04262430A/ja not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR0168656B1 (ko) | 데이터 처리 시스템 | |
EP0525831A1 (en) | A method and apparatus for coordinating execution of an instruction by a coprocessor | |
JPH04262430A (ja) | マイクロプロセッサ | |
KR100223096B1 (ko) | 내부 메모리 맵 레지스터를 관측하는 방법 및 장치 | |
JPS62197831A (ja) | デ−タ処理装置 | |
JPH0550016B2 (ja) | ||
JPH04199336A (ja) | マイクロコンピュータ | |
JPH03134783A (ja) | シングルチップマイクロコンピュータ | |
JP2876909B2 (ja) | 割込みエミュレータ | |
JPH0619735A (ja) | マイクロプロセッサ | |
JPH02264340A (ja) | マイクロプロセッサ | |
JPH05189267A (ja) | マイクロプロセッサの動作制御方式、及びエミュレータ | |
JP2654105B2 (ja) | マイクロプロセッサ | |
JPH05173830A (ja) | 異常動作検出方法、及びエミュレータ | |
JPS6319895B2 (ja) | ||
JPH0782447B2 (ja) | Dmaデータ転送制御装置 | |
JPH0635760A (ja) | トレース機能付バッファ装置 | |
JPS62269237A (ja) | デ−タプロセツサ | |
JPH05216666A (ja) | スタック制御方法、及びエミュレータ | |
JPH03225551A (ja) | 入出力装置アクセス制御方式 | |
JPH0481939A (ja) | マイクロコンピュータの制御方式 | |
JPS60193046A (ja) | 命令例外検出方式 | |
JPH04160650A (ja) | マイクロプロセッサ | |
JPH0438526A (ja) | マイクロコンピュータ | |
JPH0340037A (ja) | デバッグ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 19980514 |