JPS6211744B2 - - Google Patents
Info
- Publication number
- JPS6211744B2 JPS6211744B2 JP55015552A JP1555280A JPS6211744B2 JP S6211744 B2 JPS6211744 B2 JP S6211744B2 JP 55015552 A JP55015552 A JP 55015552A JP 1555280 A JP1555280 A JP 1555280A JP S6211744 B2 JPS6211744 B2 JP S6211744B2
- Authority
- JP
- Japan
- Prior art keywords
- interrupt
- program
- address
- microprogram
- executed
- 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
Links
- 238000000034 method Methods 0.000 claims description 34
- 230000006870 function Effects 0.000 claims description 16
- 230000004044 response Effects 0.000 claims description 5
- 230000008569 process Effects 0.000 description 8
- 230000008901 benefit Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Description
【発明の詳細な説明】
本発明はLSI化されたマイクロプログラム制御
のデータ処理装置におけるマイクロプログラムの
トレース方法に関する。
のデータ処理装置におけるマイクロプログラムの
トレース方法に関する。
従来、LSI化が進む以前のMSI/SSIで設計さ
れているマイクロプログラム制御のデータ処理装
置において、マイクロプログラムのデバツクをす
る時、プログラムのトレースの諸機能即ちシング
ルステツプ、アドレスストツプ、データストツプ
などを積極的に利用していた。
れているマイクロプログラム制御のデータ処理装
置において、マイクロプログラムのデバツクをす
る時、プログラムのトレースの諸機能即ちシング
ルステツプ、アドレスストツプ、データストツプ
などを積極的に利用していた。
従来のシングルステツプの方式は第1図、第2
図に示すようにモード選択スイツチ15よりシン
グルステツプを選択すると、SNGLクロツク発生
要求スイツチ16の出力161がOFFの間はデ
ータ処理部11へはクロツク121は一発も送ら
れず、SNGLクロツク発生要求スイツチ16の出
力161がONになると一発だけデータ処理部1
1へクロツク121を送り一クロツク分だけプロ
グラムを先に進める方式であつた。そして、この
方法で、マイクロプログラムを一命令ずつ進め、
プログラムカウンタ/レジスタ表示部14で各レ
ジスタの値を監視しながらデバツクをおこなつて
いた。
図に示すようにモード選択スイツチ15よりシン
グルステツプを選択すると、SNGLクロツク発生
要求スイツチ16の出力161がOFFの間はデ
ータ処理部11へはクロツク121は一発も送ら
れず、SNGLクロツク発生要求スイツチ16の出
力161がONになると一発だけデータ処理部1
1へクロツク121を送り一クロツク分だけプロ
グラムを先に進める方式であつた。そして、この
方法で、マイクロプログラムを一命令ずつ進め、
プログラムカウンタ/レジスタ表示部14で各レ
ジスタの値を監視しながらデバツクをおこなつて
いた。
また、従来のアドレス・ストツプの方式はデー
タ処理装置11内に第3図、第4図に示すよう
に、アドレス一致スイツチ32とアドレス一致回
路33をもうけ、マイクロプログラムカウンタ3
1の値がアドレス一致スイツチ32の値を一致す
るとアドレス一致回路33の出力331がONと
なり、クロツク制御回路12からクロツク121
の出力を禁止する方式であつた。
タ処理装置11内に第3図、第4図に示すよう
に、アドレス一致スイツチ32とアドレス一致回
路33をもうけ、マイクロプログラムカウンタ3
1の値がアドレス一致スイツチ32の値を一致す
るとアドレス一致回路33の出力331がONと
なり、クロツク制御回路12からクロツク121
の出力を禁止する方式であつた。
そして、この方法で、マイクロプログラムがあ
る番地にくるまで進め、プログラムカウンタ/レ
ジスタ表示部14を監視しながらデバツクしてい
た。
る番地にくるまで進め、プログラムカウンタ/レ
ジスタ表示部14を監視しながらデバツクしてい
た。
従来のデータストツプの方式はアドレスストツ
プの方式と同様に、ストツプさせたいレジスタと
その値をスイツチで設定しておき、データが一致
〓〓〓〓〓
すれば、クロツクを停止する方式であつた。そし
て、この方式をもちいて、プログラムのデバツク
をおこなつていた。
プの方式と同様に、ストツプさせたいレジスタと
その値をスイツチで設定しておき、データが一致
〓〓〓〓〓
すれば、クロツクを停止する方式であつた。そし
て、この方式をもちいて、プログラムのデバツク
をおこなつていた。
また、従来のアドレスストツプ、データストツ
プにおいて、停止するアドレス又はデータを一回
だけでなく任意の回数通過後停止させたい場合、
第5図に示すように、Upカウンタ51をアドレ
ス一致回路33から送られて来た一致パルスでカ
ウント一致スイツチの設定した値になるまでカウ
ントしていく。そして、一致するとカウント一致
回路53から一致信号が出力されクロツク制御回
路12へ送られ、クロツクが停止させることがで
きた。
プにおいて、停止するアドレス又はデータを一回
だけでなく任意の回数通過後停止させたい場合、
第5図に示すように、Upカウンタ51をアドレ
ス一致回路33から送られて来た一致パルスでカ
ウント一致スイツチの設定した値になるまでカウ
ントしていく。そして、一致するとカウント一致
回路53から一致信号が出力されクロツク制御回
路12へ送られ、クロツクが停止させることがで
きた。
このようにすれば、任意の回数通過後、クロツ
クを停止でき、プログラムのデバツクに有効に利
用されていた。
クを停止でき、プログラムのデバツクに有効に利
用されていた。
また、従来のアドレスストツプ、データストツ
プにおいて、停止した後、停止する直前のマイク
ロプログラムカウンタの履歴を知りたい場合、第
6図に示すように、マイクロプログラムカウンタ
31の出力をシフトレジスタ61に接続しておき
シフトレジスタ61の内容をプログラムカウン
タ/レジスタ表示部14に表示することにより履
歴を調べていた。そして、この方法を、プログラ
ムのデバツクに有効に利用していた。
プにおいて、停止した後、停止する直前のマイク
ロプログラムカウンタの履歴を知りたい場合、第
6図に示すように、マイクロプログラムカウンタ
31の出力をシフトレジスタ61に接続しておき
シフトレジスタ61の内容をプログラムカウン
タ/レジスタ表示部14に表示することにより履
歴を調べていた。そして、この方法を、プログラ
ムのデバツクに有効に利用していた。
ところが、データ処理装置のLSI化が進むと、
以上説明してきた、プログラムのトレース方式の
諸機能に問題が生じてきた。
以上説明してきた、プログラムのトレース方式の
諸機能に問題が生じてきた。
まず、従来では、マイクロプログラムカウンタ
を含むレジスタの内容を直接配線することによ
り、表示部から直接その値を監視できた。また、
配線あるいは表示部の部分の大きさから表示部に
表示できなくとも、レジスタの端子に直接測定用
プローブ等をあてて、シンクロで測定する方法も
あつた。しかし、LSI化が進むと、マイクロプロ
グラムカウンタやレジスタはLSI内部に入つてし
まうので、直接監視することは不可能になるとい
う問題が生じた。これにともない、従来のシング
ルステツプにおいては、LSI内部のプログラムカ
ウンタを含むレジスタを直接監視できないため、
この方法によるデバツクは効果が少なくなつた。
を含むレジスタの内容を直接配線することによ
り、表示部から直接その値を監視できた。また、
配線あるいは表示部の部分の大きさから表示部に
表示できなくとも、レジスタの端子に直接測定用
プローブ等をあてて、シンクロで測定する方法も
あつた。しかし、LSI化が進むと、マイクロプロ
グラムカウンタやレジスタはLSI内部に入つてし
まうので、直接監視することは不可能になるとい
う問題が生じた。これにともない、従来のシング
ルステツプにおいては、LSI内部のプログラムカ
ウンタを含むレジスタを直接監視できないため、
この方法によるデバツクは効果が少なくなつた。
また、従来の、アドレスストツプ、データスト
ツプにおいては、アドレス一致スイツチ/データ
一致スイツチとその一致回路を新たに追加しても
うけることは容易であつた。しかし、LSI化が進
むと、マイクロプログラムカウンタやレジスタは
LSI内部に入つてしまい、それらに対する一致ス
イツチ(あるいは一致レジスタ)および一致回路
を追加することは、即ちLSI内部に追加すること
を意味するので不可能になるという問題が生じ
た。
ツプにおいては、アドレス一致スイツチ/データ
一致スイツチとその一致回路を新たに追加しても
うけることは容易であつた。しかし、LSI化が進
むと、マイクロプログラムカウンタやレジスタは
LSI内部に入つてしまい、それらに対する一致ス
イツチ(あるいは一致レジスタ)および一致回路
を追加することは、即ちLSI内部に追加すること
を意味するので不可能になるという問題が生じ
た。
また、従来の任意の回数通過後、アドレススト
ツプ、データストツプをおこなうために、アドレ
ス一致スイツチ/データ一致スイツチとその一致
回路、さらにUpカウンタ、カウント一致スイツ
チカウント一致回路を追加することは容易であつ
た。しかし、LSI化が進むとマイクロプログラム
カウンタやレジスタはLSI内部に入つてしまい、
それらに対する一致スイツチ、一致回路、カウン
タその他を追加することは、即ち、LSI内部に追
加することを意味するので、不可能になるという
問題が生じた。最後に、従来のマイクロプログラ
ムカウンタやレジスタの履歴を知りたい場合、シ
フトレジスタを追加することにより容易におこな
われてきた。しかし、LSI化が進むと、マイクロ
プログラムカウンタやレジスタはLSI内部に入い
り、履歴用のシフトレジスタを追加することは、
LSI内部に追加することになるので、不可能にな
るという問題が生じた。
ツプ、データストツプをおこなうために、アドレ
ス一致スイツチ/データ一致スイツチとその一致
回路、さらにUpカウンタ、カウント一致スイツ
チカウント一致回路を追加することは容易であつ
た。しかし、LSI化が進むとマイクロプログラム
カウンタやレジスタはLSI内部に入つてしまい、
それらに対する一致スイツチ、一致回路、カウン
タその他を追加することは、即ち、LSI内部に追
加することを意味するので、不可能になるという
問題が生じた。最後に、従来のマイクロプログラ
ムカウンタやレジスタの履歴を知りたい場合、シ
フトレジスタを追加することにより容易におこな
われてきた。しかし、LSI化が進むと、マイクロ
プログラムカウンタやレジスタはLSI内部に入い
り、履歴用のシフトレジスタを追加することは、
LSI内部に追加することになるので、不可能にな
るという問題が生じた。
この他、従来ではソフトウエアのプログラムに
よるデバツク用プログラムがあり、前記アドレス
ストツプの機能を利用していた。つまり、アドレ
スストツプしたい番地にデバツク用プログラムに
分岐する命令を書き換えておき、デバツクしたい
プログラムを実行させ、アドレスストツプの番地
に来るとデバツク用プログラムに分岐し、そのプ
ログラム内で各レジスタの内容を監視しデバツク
をしていた。
よるデバツク用プログラムがあり、前記アドレス
ストツプの機能を利用していた。つまり、アドレ
スストツプしたい番地にデバツク用プログラムに
分岐する命令を書き換えておき、デバツクしたい
プログラムを実行させ、アドレスストツプの番地
に来るとデバツク用プログラムに分岐し、そのプ
ログラム内で各レジスタの内容を監視しデバツク
をしていた。
しかし、この方法だと、デバツクしたいプログ
ラムがROM(EPROMを含む)にロードされて
いる場合、アドレスストツプしたい番地にデバツ
ク用プログラムに分岐する命令を書き換えること
は不可能になり、デバツクができなくなるという
問題が生じた。
ラムがROM(EPROMを含む)にロードされて
いる場合、アドレスストツプしたい番地にデバツ
ク用プログラムに分岐する命令を書き換えること
は不可能になり、デバツクができなくなるという
問題が生じた。
本発明は上記事情に鑑みて為されたものであ
り、その目的は、一部もしくは全部がLSI化され
たマイクロプログラム制御のデータ処理装置内に
設けられているLSI内部のプログラムカウンタ及
〓〓〓〓〓
び各種レジスタの内容を容易に監視することがで
きるマイクロプログラムトレース方法を提供する
にある。
り、その目的は、一部もしくは全部がLSI化され
たマイクロプログラム制御のデータ処理装置内に
設けられているLSI内部のプログラムカウンタ及
〓〓〓〓〓
び各種レジスタの内容を容易に監視することがで
きるマイクロプログラムトレース方法を提供する
にある。
本発明他の目的は、LSI化されたデータ処理装
置において、マイクロプログラムのデバツクにシ
ングルステツプの機能を利用できるトレース方法
を提供することにある。
置において、マイクロプログラムのデバツクにシ
ングルステツプの機能を利用できるトレース方法
を提供することにある。
本発明の更に他の目的はLSI化されたデータ処
理装置において、マイクロプログラムのデバツク
にアドレス・ストツプの機能を利用できるトレー
ス方法を提供することにある。
理装置において、マイクロプログラムのデバツク
にアドレス・ストツプの機能を利用できるトレー
ス方法を提供することにある。
本発明の更に他の目的はLSI化されたデータ処
理装置においてマイクロプログラムのデバツクに
任意の回数通過後プログラムの実行を停止するア
ドレスストツプの機能を利用できるトレース方法
を提供することにある。
理装置においてマイクロプログラムのデバツクに
任意の回数通過後プログラムの実行を停止するア
ドレスストツプの機能を利用できるトレース方法
を提供することにある。
本発明の更に他の目的はLSI化されたデータ処
理装置において、マイクロプログラムのデバツク
にデータストツプの機能を利用できるトレース方
法を提供することにある。
理装置において、マイクロプログラムのデバツク
にデータストツプの機能を利用できるトレース方
法を提供することにある。
本発明の更に他の目的はLSI化されたデータ処
理装置において、マイクロプログラムのデバツク
に任意の回数一致後プログラムの実行を停止する
データストツプの機能を利用できるトレース方法
を提供することにある。
理装置において、マイクロプログラムのデバツク
に任意の回数一致後プログラムの実行を停止する
データストツプの機能を利用できるトレース方法
を提供することにある。
本発明の更に他の目的はLSI化されたデータ処
理装置において、ROMにロードされているプロ
グラムのデバツクに上記アドレスストツプ、デー
タストツプ、シングルステツプの諸機能を利用で
きるトレース方法を提供することにある。
理装置において、ROMにロードされているプロ
グラムのデバツクに上記アドレスストツプ、デー
タストツプ、シングルステツプの諸機能を利用で
きるトレース方法を提供することにある。
本発明の更に他の目的は、LSI化されたデータ
処理装置において、直前のマイクロプログラムカ
ウンタの履歴を知ることのできるトレース方法を
提供することにある。
処理装置において、直前のマイクロプログラムカ
ウンタの履歴を知ることのできるトレース方法を
提供することにある。
本発明は、一部あるいは全部がLSI化されたマ
イクロプログラム制御のデータ処理装置における
デバツクに好適である。本発明においては、デー
タ処理装置がプログラムの1乃至数マイクロ命令
を実行するたびに割込む(以下この割込みをシン
グル割込みと呼ぶ)マイクロプログラムレベルで
の割込みの機能が設けられる。このシングル割込
みによりプログラムのトレースを行なうトレース
プログラムが起動される。そしてこのトレースプ
ログラムの中で、シングルステツプ、アドレスス
トツプ、データストツプなどのトレースの機能を
実行するように為されている。
イクロプログラム制御のデータ処理装置における
デバツクに好適である。本発明においては、デー
タ処理装置がプログラムの1乃至数マイクロ命令
を実行するたびに割込む(以下この割込みをシン
グル割込みと呼ぶ)マイクロプログラムレベルで
の割込みの機能が設けられる。このシングル割込
みによりプログラムのトレースを行なうトレース
プログラムが起動される。そしてこのトレースプ
ログラムの中で、シングルステツプ、アドレスス
トツプ、データストツプなどのトレースの機能を
実行するように為されている。
またデータ処理装置では通常複数の各種割込み
を行なう機能を有し、それぞれの割込みによつて
対応する割込み処理プログラムの実行が行なわれ
る。
を行なう機能を有し、それぞれの割込みによつて
対応する割込み処理プログラムの実行が行なわれ
る。
本発明においては、上記シングル割込みの優先
順位を他の割込み(以下単に割込みを呼ぶ)のい
ずれよりも低くするとともに、各割込みに対して
1対1に対応して設けられている割込みマスクを
制御することにより、上記した割込み処理プログ
ラムのトレースをも行なうことができる。
順位を他の割込み(以下単に割込みを呼ぶ)のい
ずれよりも低くするとともに、各割込みに対して
1対1に対応して設けられている割込みマスクを
制御することにより、上記した割込み処理プログ
ラムのトレースをも行なうことができる。
まず、本発明におけるプログラムの流れを説明
するが、本発明の理解の一助とするため、データ
処理装置の通常のプログラムの流れ(以下通常モ
ードと呼ぶ)と、本発明に係るトレースを行なう
流れ(以下トレースモードと呼ぶ)とを対比して
いる。第7図a,bはそれぞれ割込みが発生しな
い場合の通常モード及びトレースモードを示して
いる。通常モードでは、第7図aに示すように、
メインプログラム71の各マイクロ命令711,
712,713が順次実行される。トレースモー
ドでは、第7図bに示すように、メインプログラ
ム71のそれぞれ1マイクロ命令711,71
2,713を実行する毎にシングル割込み処理プ
ログラム721,722,723へ分岐し、シン
グル割込み処理が行なわれる。
するが、本発明の理解の一助とするため、データ
処理装置の通常のプログラムの流れ(以下通常モ
ードと呼ぶ)と、本発明に係るトレースを行なう
流れ(以下トレースモードと呼ぶ)とを対比して
いる。第7図a,bはそれぞれ割込みが発生しな
い場合の通常モード及びトレースモードを示して
いる。通常モードでは、第7図aに示すように、
メインプログラム71の各マイクロ命令711,
712,713が順次実行される。トレースモー
ドでは、第7図bに示すように、メインプログラ
ム71のそれぞれ1マイクロ命令711,71
2,713を実行する毎にシングル割込み処理プ
ログラム721,722,723へ分岐し、シン
グル割込み処理が行なわれる。
例えば、メインプログラム71の1マイクロ命
令711を実行すると、シングル割込み処理プロ
グラム72へ分岐するためのスワツプ動作731
に入り、シングル割込み処理プログラム721に
分岐する。このスワツプ動作については後述す
る。シングル割込み処理プログラム721は、シ
ングルステツプ、アドレスストツプ、データスト
ツプなどのトレースの各種機能を実現するマイク
ロプログラムからなり、必要とするマイクロプロ
グラムカウンタや各種レジスタの内容を調べた
り、その内容を表示部で表示させるためのマイク
ロ命令群等で構成されている。この処理が終了す
ると割込みリターン動作741で再びメインプロ
グラム71に戻る。後述するように、割込みリタ
ーン動作741は割込みリターンのマイクロ命令
の実行によつて為され、この命令を実行中は、シ
ングル割込みを含めてすべての割込みが禁止され
〓〓〓〓〓
るので、割込みリターン命令の終了時にシングル
割込みへのスワツプは起こらない。またこの終了
時にはシングル割込みの禁止が解除されるので、
メインプログラム71の次のマイクロ命令712
を実行すると、スワツプ動作732により再びシ
ングル割込み処理プログラム722へ分岐する。
本例では、メインプログラム71のマイクロ命令
を1つだけ実行する毎にシングル割込み処理プロ
グラム72へ分岐するが、数マイクロ命令を実行
する毎に分岐する場合も同様である。
令711を実行すると、シングル割込み処理プロ
グラム72へ分岐するためのスワツプ動作731
に入り、シングル割込み処理プログラム721に
分岐する。このスワツプ動作については後述す
る。シングル割込み処理プログラム721は、シ
ングルステツプ、アドレスストツプ、データスト
ツプなどのトレースの各種機能を実現するマイク
ロプログラムからなり、必要とするマイクロプロ
グラムカウンタや各種レジスタの内容を調べた
り、その内容を表示部で表示させるためのマイク
ロ命令群等で構成されている。この処理が終了す
ると割込みリターン動作741で再びメインプロ
グラム71に戻る。後述するように、割込みリタ
ーン動作741は割込みリターンのマイクロ命令
の実行によつて為され、この命令を実行中は、シ
ングル割込みを含めてすべての割込みが禁止され
〓〓〓〓〓
るので、割込みリターン命令の終了時にシングル
割込みへのスワツプは起こらない。またこの終了
時にはシングル割込みの禁止が解除されるので、
メインプログラム71の次のマイクロ命令712
を実行すると、スワツプ動作732により再びシ
ングル割込み処理プログラム722へ分岐する。
本例では、メインプログラム71のマイクロ命令
を1つだけ実行する毎にシングル割込み処理プロ
グラム72へ分岐するが、数マイクロ命令を実行
する毎に分岐する場合も同様である。
第8図a,bは通常の割込みの発生がある場合
の通常モード及びトレースモードを示している。
の通常モード及びトレースモードを示している。
通常モードでは、第8図aに示すように、メイ
ンプログラム81のマイクロ命令811,812
を順次実行している間に割込み信号83がONと
なると、対応する割込み処理プログラム82へ分
岐する。すなわち、スワツプ動作861によつて
割込み処理プログラム82のマイクロ命令821
の実行が開始される。マイクロ命令822を実行
した後、割込みリターン命令823の実行によ
り、スワツプ動作を行ないメインプログラム82
に戻る。そして、メインプログラム81のマイク
ロ命令812を実行した後、中断していた処理を
再開し、順次マイクロ命令813,814を実行
する。なお、割込み信号83は割込み処理プログ
ラム82の中でリセツトされる。
ンプログラム81のマイクロ命令811,812
を順次実行している間に割込み信号83がONと
なると、対応する割込み処理プログラム82へ分
岐する。すなわち、スワツプ動作861によつて
割込み処理プログラム82のマイクロ命令821
の実行が開始される。マイクロ命令822を実行
した後、割込みリターン命令823の実行によ
り、スワツプ動作を行ないメインプログラム82
に戻る。そして、メインプログラム81のマイク
ロ命令812を実行した後、中断していた処理を
再開し、順次マイクロ命令813,814を実行
する。なお、割込み信号83は割込み処理プログ
ラム82の中でリセツトされる。
第8図bに示すトレースモードでは、メインプ
ログラム81を実行中に割込み信号83がONと
なると同様に割込み処理プログラム82へ分岐す
るが、この割込み処理プログラムを含めてシング
ル割込み処理プログラム84が行なわれる。
ログラム81を実行中に割込み信号83がONと
なると同様に割込み処理プログラム82へ分岐す
るが、この割込み処理プログラムを含めてシング
ル割込み処理プログラム84が行なわれる。
まず、メインプログラム81の1マイクロ命令
811を実行すると、シングル割込みが入り、割
込みスワツプ動作841により分岐してシングル
割込み処理プログラム831を実行する。そし
て、この処理の終りでは割込みリターンのマイク
ロ命令によりリターン動作851を行ない、メイ
ンプログラム81に戻る。いま、メインプログラ
ムの次のマイクロ命令812を実行中に、割込み
信号83がONになると、マイクロ命令812の
終了時にはこの割込み信号83に応答する割込み
とシングル割込みとが同時に割込もうとする。し
かし、上述のように、シングル割込みのほうが優
先順位が低いので、割込み信号83に応答してス
ワツプ動作861を行ない対応する割込み処理プ
ログラム82に分岐する。ところで、割込み処理
中も、シングル割込み処理マスクを開けておけ
ば、スワツプ動作861の終了時に再びシングル
割込みが入り、シングル割込みのスワツプ動作8
42を行なうので、シングル割込み処理プログラ
ム84の処理832に分岐する。したがつて、本
発明においては、通常の割込みの処理中は割込み
許可マスクのうちシングル割込みに対応する許可
マスクは開けておく。また本発明においては、シ
ングル割込み処理中は割込み許可マスクのすべて
が閉じられる。これによつて、処理832が終了
して割込みリターン命令でリターン動作をすると
き、そのリターン先は割込みスワツプ動作842
の元の番地であるから割込み処理プログラム82
に戻る。そして1マイクロ命令821を実行する
とスワツプ動作843によりシングル割込み処理
プログラム84の処理833に分岐する。このよ
うに通常の割込み処理プログラム82も、1マイ
クロ命令実行毎にシングル割込み処理プログラム
によつてトレースが行なわれる。
811を実行すると、シングル割込みが入り、割
込みスワツプ動作841により分岐してシングル
割込み処理プログラム831を実行する。そし
て、この処理の終りでは割込みリターンのマイク
ロ命令によりリターン動作851を行ない、メイ
ンプログラム81に戻る。いま、メインプログラ
ムの次のマイクロ命令812を実行中に、割込み
信号83がONになると、マイクロ命令812の
終了時にはこの割込み信号83に応答する割込み
とシングル割込みとが同時に割込もうとする。し
かし、上述のように、シングル割込みのほうが優
先順位が低いので、割込み信号83に応答してス
ワツプ動作861を行ない対応する割込み処理プ
ログラム82に分岐する。ところで、割込み処理
中も、シングル割込み処理マスクを開けておけ
ば、スワツプ動作861の終了時に再びシングル
割込みが入り、シングル割込みのスワツプ動作8
42を行なうので、シングル割込み処理プログラ
ム84の処理832に分岐する。したがつて、本
発明においては、通常の割込みの処理中は割込み
許可マスクのうちシングル割込みに対応する許可
マスクは開けておく。また本発明においては、シ
ングル割込み処理中は割込み許可マスクのすべて
が閉じられる。これによつて、処理832が終了
して割込みリターン命令でリターン動作をすると
き、そのリターン先は割込みスワツプ動作842
の元の番地であるから割込み処理プログラム82
に戻る。そして1マイクロ命令821を実行する
とスワツプ動作843によりシングル割込み処理
プログラム84の処理833に分岐する。このよ
うに通常の割込み処理プログラム82も、1マイ
クロ命令実行毎にシングル割込み処理プログラム
によつてトレースが行なわれる。
さらに、マイクロプログラムレベルでの割込み
が2種類発生した場合、つまり、優先順位の低い
割込み(緊急度の低い割込み)処理中、優先順位
の高い割込み(緊急度の高い割込み)が発生した
場合について説明する。この時、優先順位の高い
割込みに対する割込み許可マスクが閉じていれ
ば、この割込みは無視され、優先順位の低い割込
みの処理が引き続きおこなわれ、処理を終了した
後、優先順位の高い割込みの処理が開始される。
が2種類発生した場合、つまり、優先順位の低い
割込み(緊急度の低い割込み)処理中、優先順位
の高い割込み(緊急度の高い割込み)が発生した
場合について説明する。この時、優先順位の高い
割込みに対する割込み許可マスクが閉じていれ
ば、この割込みは無視され、優先順位の低い割込
みの処理が引き続きおこなわれ、処理を終了した
後、優先順位の高い割込みの処理が開始される。
しかし、優先順位の高い割込みに対する許可マ
スクが開いていれば、この割込みは受け付けら
れ、優先順位の低い割込みの処理は中断し、この
割込みの処理が開始される。この場合のプログラ
ムの流れは、通常モードの場合は、第8図aに相
当し、81が優先順位の低い割込処理プログラ
ム、82が優先順位の高い割込処理プログラムに
なる。トレースモードの場合は第8図bに相当す
る。
スクが開いていれば、この割込みは受け付けら
れ、優先順位の低い割込みの処理は中断し、この
割込みの処理が開始される。この場合のプログラ
ムの流れは、通常モードの場合は、第8図aに相
当し、81が優先順位の低い割込処理プログラ
ム、82が優先順位の高い割込処理プログラムに
なる。トレースモードの場合は第8図bに相当す
る。
従つて、マイクロプログラムレベルでの割込み
が2種類以上発生しても、トレースは問題なくで
きる。
が2種類以上発生しても、トレースは問題なくで
きる。
なお、割込み許可マスクを開けるか、閉じるか
はマイクロプログラムの作成者の判断による。
はマイクロプログラムの作成者の判断による。
〓〓〓〓〓
次に割込み処理プログラム82が終了したとき
のメインプログラム81へ戻る動作を説明する。
割込み処理プログラム82の割込みリターン命令
の直前のマイクロ命令822を実行し(この時点
では割込み信号83は既にOFFとなつている)、
シングル割込みスワツプ動作844でシングル割
込み処理834に分岐しているとしする。この処
理834が終了すると、割込みリターン命令で割
込みリターン動作854を行ない、割込み処理プ
ログラム82へ戻る。そこで再びメインプログラ
ム81へ戻る割込みリターン命令823を実行
し、割込みリターン動作871でメインプログラ
ム81に戻り、マイクロ命令813の実行を行な
う。
次に割込み処理プログラム82が終了したとき
のメインプログラム81へ戻る動作を説明する。
割込み処理プログラム82の割込みリターン命令
の直前のマイクロ命令822を実行し(この時点
では割込み信号83は既にOFFとなつている)、
シングル割込みスワツプ動作844でシングル割
込み処理834に分岐しているとしする。この処
理834が終了すると、割込みリターン命令で割
込みリターン動作854を行ない、割込み処理プ
ログラム82へ戻る。そこで再びメインプログラ
ム81へ戻る割込みリターン命令823を実行
し、割込みリターン動作871でメインプログラ
ム81に戻り、マイクロ命令813の実行を行な
う。
なお、シングル割込み処理プログラム84を実
行中に割込信号83がONとなつた(第8図bの
破線)場合についてもプログラムの流れとしては
同じである。すなわち、割込みリターン命令85
1を実行中はすべての割込みが禁止されているの
で、その終了時に割込み処理プログラム82への
スワツプ動作861には入らず、メインプログラ
ム81のマイクロ命令812を実行する。この命
令812の実行中は割込みが受け付けられるので
命令812の終了によつて割込み処理プログラム
82へのスワツプ動作861が行なわれる。
行中に割込信号83がONとなつた(第8図bの
破線)場合についてもプログラムの流れとしては
同じである。すなわち、割込みリターン命令85
1を実行中はすべての割込みが禁止されているの
で、その終了時に割込み処理プログラム82への
スワツプ動作861には入らず、メインプログラ
ム81のマイクロ命令812を実行する。この命
令812の実行中は割込みが受け付けられるので
命令812の終了によつて割込み処理プログラム
82へのスワツプ動作861が行なわれる。
以上のようなトレース方法によれば、メインプ
ログラムがROMにかかれていても、メインプロ
グラムのマイクロ命令のいずれも変更することな
くトレースが行なえる。
ログラムがROMにかかれていても、メインプロ
グラムのマイクロ命令のいずれも変更することな
くトレースが行なえる。
第9図に本発明の一実施例としてのLSI化され
たマイクロプログラム制御のデータ処理装置を示
す。本データ処理装置は中央演算処理部
(CPU)91、マイクロプログラムメモリ
(MPM)95、表示部94を有している。CPU9
1は1チツプLSI化されており、第9図には本発
明に関連する主要部分のみが示されているが、周
知のようにゼネラルレジスタ、レジスタフアイル
等も含まれている。MPM95はCPU91を制御
するための各種マイクロプログラムを収容するも
ので、ROM951、RAM952、アドレス制御
部957により構成されている。MPM95は、
メインプログラム、各種割込み処理プログラムに
加えてシングル割込み処理プログラム等を収容し
ている。表示部94はCPU91が現在実行中の
アドレス及びトレース結果等を表示出力する際に
用いられる。
たマイクロプログラム制御のデータ処理装置を示
す。本データ処理装置は中央演算処理部
(CPU)91、マイクロプログラムメモリ
(MPM)95、表示部94を有している。CPU9
1は1チツプLSI化されており、第9図には本発
明に関連する主要部分のみが示されているが、周
知のようにゼネラルレジスタ、レジスタフアイル
等も含まれている。MPM95はCPU91を制御
するための各種マイクロプログラムを収容するも
ので、ROM951、RAM952、アドレス制御
部957により構成されている。MPM95は、
メインプログラム、各種割込み処理プログラムに
加えてシングル割込み処理プログラム等を収容し
ている。表示部94はCPU91が現在実行中の
アドレス及びトレース結果等を表示出力する際に
用いられる。
CPU91は32ビツトのマイクロ命令により制
御されており、マイクロ命令はMPM95より読
み出しデータライン(RDL)954を経由し
て、マイクロ命令レジスタ(EIR)923に供給
される。以下EIR923の上位16ビツトをECRH
9231、下位16ビツトをEIRL9232で示
す。マイクロプログラムカウンタ(MPC)92
1は16ビツトのカウンタからなり、その内容は
CPU91が次に実行する予定のマイクロ命令を
格納している番地を現わしている。インタラプト
アドレスレジスタ(IAD)925は割込みを受け
付けたとき、次に実行する予定のマイクロ命令の
ロケーシヨンを保持しているレジスタで、CPU
91が1マイクロ命令の実行を終了する毎に
MPC921の値をとりこむ。
御されており、マイクロ命令はMPM95より読
み出しデータライン(RDL)954を経由し
て、マイクロ命令レジスタ(EIR)923に供給
される。以下EIR923の上位16ビツトをECRH
9231、下位16ビツトをEIRL9232で示
す。マイクロプログラムカウンタ(MPC)92
1は16ビツトのカウンタからなり、その内容は
CPU91が次に実行する予定のマイクロ命令を
格納している番地を現わしている。インタラプト
アドレスレジスタ(IAD)925は割込みを受け
付けたとき、次に実行する予定のマイクロ命令の
ロケーシヨンを保持しているレジスタで、CPU
91が1マイクロ命令の実行を終了する毎に
MPC921の値をとりこむ。
割込み信号931は複数種類あり、そのうちの
一部はCPU91の内部の割込み原因による割込
み信号9311であり、残りはCPU91の外部
の割込み原因による割込み信号9312である。
本発明に係るシングル割込みに対応する割込み信
号は割込み信号9312の1つとなつている。す
なわち、シングル割込みを行なう場合には、
CPU91の外部に設けたスイツチ(図示せず)
によつて割込み信号を発生させることができる。
一部はCPU91の内部の割込み原因による割込
み信号9311であり、残りはCPU91の外部
の割込み原因による割込み信号9312である。
本発明に係るシングル割込みに対応する割込み信
号は割込み信号9312の1つとなつている。す
なわち、シングル割込みを行なう場合には、
CPU91の外部に設けたスイツチ(図示せず)
によつて割込み信号を発生させることができる。
割込みマスクレジスタ(IMR)922は全部の
割込みに一対一に対応するマスクレジスタであり
マスクゲート(AND)926によりマスクされ
ている。そして、AND926で許可された割込
みが複数種類あれば、そのうちから最も高い優先
度をもつ割込みを選択し、そのビツトをエンコー
ドする割込選択回路(プライオリテイ・エンコー
ダ、以下PE)927によりひとつだけ選択さ
れ、エンコードされた値が出力され、割込み番号
レジスタ(IN)929にセツトされる。
割込みに一対一に対応するマスクレジスタであり
マスクゲート(AND)926によりマスクされ
ている。そして、AND926で許可された割込
みが複数種類あれば、そのうちから最も高い優先
度をもつ割込みを選択し、そのビツトをエンコー
ドする割込選択回路(プライオリテイ・エンコー
ダ、以下PE)927によりひとつだけ選択さ
れ、エンコードされた値が出力され、割込み番号
レジスタ(IN)929にセツトされる。
割込みが発生した時、割込み分岐先番地と新し
くIMR922に入いる値はMPM95のRAM部分
952の一部に入つており、その番地を割込分岐
ポインタ(IFP)928とIN929より示して
いる。従つて、MPM95へのアドレスライン
(ADRS)956はMPC921と(IFP928+
IN929)とで、マルチプレクサMPX930
で選択されている。なお、割込みが発生した時、
〓〓〓〓〓
戻り番地と古いIMR922の値は同じく(IFP9
28+IN929)で指定された番地に格納さ
れる。この時、MPM95の同じ番地(IFP92
8+IN929)に同時に読み書きができない
ので、まず、新しいIMR922の値と割込み分岐
先番地を読み出してから、次に古いIMR922の
値と、割込み戻り番地を書きこむ。このために一
度読み出した値を保存しておくために、新しい
IMR922の値はMXR924に、割込み分岐先
番地はEIRL9232にそれぞれセツトし、その
後それぞれIMR922とMPC921にセツトす
る。
くIMR922に入いる値はMPM95のRAM部分
952の一部に入つており、その番地を割込分岐
ポインタ(IFP)928とIN929より示して
いる。従つて、MPM95へのアドレスライン
(ADRS)956はMPC921と(IFP928+
IN929)とで、マルチプレクサMPX930
で選択されている。なお、割込みが発生した時、
〓〓〓〓〓
戻り番地と古いIMR922の値は同じく(IFP9
28+IN929)で指定された番地に格納さ
れる。この時、MPM95の同じ番地(IFP92
8+IN929)に同時に読み書きができない
ので、まず、新しいIMR922の値と割込み分岐
先番地を読み出してから、次に古いIMR922の
値と、割込み戻り番地を書きこむ。このために一
度読み出した値を保存しておくために、新しい
IMR922の値はMXR924に、割込み分岐先
番地はEIRL9232にそれぞれセツトし、その
後それぞれIMR922とMPC921にセツトす
る。
MPM95からの出力データはRDL954より
出力され、入力データはライトデータライン
(WDL)953より入力され、書き込み信号
(WE)955は書きこみを指示する信号であ
り、アドレスライン(ADRS)956はアドレス
を指定する信号線である。また、RAM952の
一部に、割込みスワツプ時の情報格納エリアとし
ての割込みフアイル(IF)958があり、上位
16bitは割込みマスクデータが格納されている割
込みマスクフアイル(IMF)9581、下位
16bitは分岐先の番地が格納されている割込みア
ドレスフアイル(IAF)9582から構成されて
いる。
出力され、入力データはライトデータライン
(WDL)953より入力され、書き込み信号
(WE)955は書きこみを指示する信号であ
り、アドレスライン(ADRS)956はアドレス
を指定する信号線である。また、RAM952の
一部に、割込みスワツプ時の情報格納エリアとし
ての割込みフアイル(IF)958があり、上位
16bitは割込みマスクデータが格納されている割
込みマスクフアイル(IMF)9581、下位
16bitは分岐先の番地が格納されている割込みア
ドレスフアイル(IAF)9582から構成されて
いる。
表示部94は表示データレジスタDDR941
の内容を表示している。
の内容を表示している。
マルチプレクサ2(MPX2)943は表示デ
ータレジスタ(DDR)941にセツトするレジ
スタを選択するマルチプレクサである。
ータレジスタ(DDR)941にセツトするレジ
スタを選択するマルチプレクサである。
CPU91内の各レジスタ(図示せず)の出力
信号942はマルチプレクサ2(MPX2)94
3を経由して表示データレジスタ(DDR)94
1にセツトされ、表示部94により表示される。
なお、表示データレジスタ(DDR)941への
セツトはマイクロ命令の実行によりおこなわれ
る。
信号942はマルチプレクサ2(MPX2)94
3を経由して表示データレジスタ(DDR)94
1にセツトされ、表示部94により表示される。
なお、表示データレジスタ(DDR)941への
セツトはマイクロ命令の実行によりおこなわれ
る。
次に割込みスワツプ動作(すべてのマイクロプ
ログラムレベルの割込みはこの動作をおこないス
ワツプする)について第9図、第10図、第11
図をもちいて説明する。
ログラムレベルの割込みはこの動作をおこないス
ワツプする)について第9図、第10図、第11
図をもちいて説明する。
割込みスワツプ動作はマイクロプログラムカウ
ンタMPC921とマイクロプログラムメモリ
MPM95の割込み番地フアイル(IAF)958
2との交換動作、ならびに割込みマスクレジスタ
IMR922とMPM95の割込みマスクフアイル
(IMF)9581との交換動作である。
ンタMPC921とマイクロプログラムメモリ
MPM95の割込み番地フアイル(IAF)958
2との交換動作、ならびに割込みマスクレジスタ
IMR922とMPM95の割込みマスクフアイル
(IMF)9581との交換動作である。
プログラムの流れは第10図に示すように、メ
インプログラム100のa番地のマイクロ命令A
を実行後、割込みスワツプ動作に入いり、シング
ル割込み処理プログラム110の先頭番地iに分
岐し、i番地のマイクロ命令Iを実行する。
インプログラム100のa番地のマイクロ命令A
を実行後、割込みスワツプ動作に入いり、シング
ル割込み処理プログラム110の先頭番地iに分
岐し、i番地のマイクロ命令Iを実行する。
つまり、あらかじめ割込み番地フアイル
(IAF)9582に割込み処理プログラムの先頭
アドレスiをセツトしておき、また、割込みマス
クフアイル(IMF)に割込み処理中の割込みマス
クレジスタIMR922の値miをセツトしてお
く。割込みスワツプ動作により、先頭アドレスi
をマイクロプログラムカウンタMPC921にセ
ツトし、新割込みマスクの値miをIMR922に
セツトし、割込み処理プログラムへの分岐がおこ
なわれる。
(IAF)9582に割込み処理プログラムの先頭
アドレスiをセツトしておき、また、割込みマス
クフアイル(IMF)に割込み処理中の割込みマス
クレジスタIMR922の値miをセツトしてお
く。割込みスワツプ動作により、先頭アドレスi
をマイクロプログラムカウンタMPC921にセ
ツトし、新割込みマスクの値miをIMR922に
セツトし、割込み処理プログラムへの分岐がおこ
なわれる。
この時、メインプログラム100の次に実行す
る予定のb番地がIAF9582にセーブされ、ま
た、メインプログラム100を実行している時の
割込みマスクの値maがIMF9581にセーブさ
れ、割込み処理が終了したら、元に戻れる。
る予定のb番地がIAF9582にセーブされ、ま
た、メインプログラム100を実行している時の
割込みマスクの値maがIMF9581にセーブさ
れ、割込み処理が終了したら、元に戻れる。
ここではシングル割込みを例にしているが他の
割込みでも同様に動作させることができる。
割込みでも同様に動作させることができる。
この割込みスワツプ動作を前後のマイクロ命令
の実行を含めてさらに詳細に説明する。
の実行を含めてさらに詳細に説明する。
第11図において、T0の間、a番地のマイク
ロ命令Aを実行している。この時シングル割込み
はONになつているから、T0で割込みが受け付け
られ割込みスワツプ動作に入る。割込みスワツプ
動作はT1,T2,T3の3サイクルかかる。
ロ命令Aを実行している。この時シングル割込み
はONになつているから、T0で割込みが受け付け
られ割込みスワツプ動作に入る。割込みスワツプ
動作はT1,T2,T3の3サイクルかかる。
まず、T1サイクルで命令をノーオペレーシヨ
ン(NOP)にすると同時に、MPM95への
ADRS956への出力を(IFP+IN)側になる
ようMPX930を変える。そして、IMF958
1、IAF9582の所定の(IFP+IN)番地に
ある新しいIMR922にセツトする値および分岐
先番地を読み出し、RDL954を経由してMXR
924とEIRL9232にT1サイクルの終わりで
セツトする。
ン(NOP)にすると同時に、MPM95への
ADRS956への出力を(IFP+IN)側になる
ようMPX930を変える。そして、IMF958
1、IAF9582の所定の(IFP+IN)番地に
ある新しいIMR922にセツトする値および分岐
先番地を読み出し、RDL954を経由してMXR
924とEIRL9232にT1サイクルの終わりで
セツトする。
次のT2サイクルで現IMR922の値とIAD92
5の内容がMPM95のWDL953を経由して、
IMF9581、IAF8528の所定の番地(IFP
〓〓〓〓〓
+IN)に書きこまれる。
5の内容がMPM95のWDL953を経由して、
IMF9581、IAF8528の所定の番地(IFP
〓〓〓〓〓
+IN)に書きこまれる。
また、T2サイクルの終わりで、MXR924の
内容がIMR922に、EIRL9232の内容が
MPC921にセツトされる。
内容がIMR922に、EIRL9232の内容が
MPC921にセツトされる。
T3サイクルでは、今MPC921にセツトされ
たi番地の内容IをMPM95から読み出し、
CPU91のEIR923にセツトする。
たi番地の内容IをMPM95から読み出し、
CPU91のEIR923にセツトする。
そして、T4サイクルでマイクロ命令Iを実行
する。
する。
以上より、割込みスワツプ動作により、新しい
マスクレジスタの値miと分岐先番地iがMPM9
5のIMF9581、IAF9582が読み出され、
古いマスクレジスタmaと割込みの戻り番地bが
MPM95のIMF9581、IAF9582に書き
込まれる。
マスクレジスタの値miと分岐先番地iがMPM9
5のIMF9581、IAF9582が読み出され、
古いマスクレジスタmaと割込みの戻り番地bが
MPM95のIMF9581、IAF9582に書き
込まれる。
この後、CPU91内の各種レジスタの内容を
保存するためのルーチンがあり、ここでは、保存
領域にMPM95のRAM部分952の一部を用い
ている。
保存するためのルーチンがあり、ここでは、保存
領域にMPM95のRAM部分952の一部を用い
ている。
割込み処理が終了すると元のメインプログラム
100に戻る割込みリターン命令Kを実行して、
メインプログラム100に分岐し、次のマイクロ
命令Bを実行できるようにする。もちろん、この
時までには、前記レジスタのリセーブは終了して
いるものとする。
100に戻る割込みリターン命令Kを実行して、
メインプログラム100に分岐し、次のマイクロ
命令Bを実行できるようにする。もちろん、この
時までには、前記レジスタのリセーブは終了して
いるものとする。
第12図に示すように、割込みリターン命令K
による割込みリターンのスリツプ動作には、4サ
イクルかかり、このうち第2サイクル〜第4サイ
クルの3サイクルは上述した割込みスワツプ動作
と全く同じである。既に説明したように、割込み
リターン命令Kを実行中はすべての割込みが禁止
される。すなわち、第13図に示すように、割込
みリターン命令KがEIR923にセツトされる
と、命令Kのオペレーシヨン部OP981がデコ
ーダ982によつてデコードされ、制御信号98
3がONになる。この制御信号983は命令Kを
実行中はActiueになつている。制御信号983は
NOTゲート984を介してAND926を構成す
る各割込みに対応するアンド回路9261,92
62,……………,6269に供給され、すべて
のアンド回路の出力が禁止される。
による割込みリターンのスリツプ動作には、4サ
イクルかかり、このうち第2サイクル〜第4サイ
クルの3サイクルは上述した割込みスワツプ動作
と全く同じである。既に説明したように、割込み
リターン命令Kを実行中はすべての割込みが禁止
される。すなわち、第13図に示すように、割込
みリターン命令KがEIR923にセツトされる
と、命令Kのオペレーシヨン部OP981がデコ
ーダ982によつてデコードされ、制御信号98
3がONになる。この制御信号983は命令Kを
実行中はActiueになつている。制御信号983は
NOTゲート984を介してAND926を構成す
る各割込みに対応するアンド回路9261,92
62,……………,6269に供給され、すべて
のアンド回路の出力が禁止される。
再び第12図において、割込みリターン命令K
の第1サイクルT1では、MPC921の内容を
IAD925にセツトする他は何もしない。そして
第2サイクルT2〜第4サイクルT4において、割
込みスワツプ動作を行ない、元のIMR922の値
maをIMF9581の(IFP+IN)番地から、
また戻り番地bをIAF9582の(IFP+IN)
番地からそれぞれ読み出し、それぞれMXR92
4、EIRL9232を経由してIMR922、MPC
921にセツトする。一方、割込み処理中のIMR
922の値miとシングル割込み処理プログラム
110の先頭番地iはIMF9581、IAF958
2の(IFP+IN)番地にそれぞれ格納される。
その後、メインプログラム100のb番地のマイ
クロ命令Bを実行すべくMPM95にADRS95
6を通してb番地を送る。これによつてMPM9
5はマイクロ命令Bを読み出し、RDL954を
介してCPU91に送り、割込みリターン動作が
終了する。したがつて、次のサイクルT5ではメ
インプログラム100のマイクロ命令Bが実行さ
れる。
の第1サイクルT1では、MPC921の内容を
IAD925にセツトする他は何もしない。そして
第2サイクルT2〜第4サイクルT4において、割
込みスワツプ動作を行ない、元のIMR922の値
maをIMF9581の(IFP+IN)番地から、
また戻り番地bをIAF9582の(IFP+IN)
番地からそれぞれ読み出し、それぞれMXR92
4、EIRL9232を経由してIMR922、MPC
921にセツトする。一方、割込み処理中のIMR
922の値miとシングル割込み処理プログラム
110の先頭番地iはIMF9581、IAF958
2の(IFP+IN)番地にそれぞれ格納される。
その後、メインプログラム100のb番地のマイ
クロ命令Bを実行すべくMPM95にADRS95
6を通してb番地を送る。これによつてMPM9
5はマイクロ命令Bを読み出し、RDL954を
介してCPU91に送り、割込みリターン動作が
終了する。したがつて、次のサイクルT5ではメ
インプログラム100のマイクロ命令Bが実行さ
れる。
以上はメインプログラム100からシングル割
込み処理プログラム110へ分岐し戻る場合を説
明したが、通常の割込み処理プログラムからの場
合も全く同様である。
込み処理プログラム110へ分岐し戻る場合を説
明したが、通常の割込み処理プログラムからの場
合も全く同様である。
本発明によれば一部もしくは全部がLSI化され
たマイクロプログラム制御のデータ処理装置にお
いて、シングルステツプ、アドレスストツプのデ
ータストツプの機能を実現でき、プログラムのデ
バツクに効果的におこなえる利点をもつ。
たマイクロプログラム制御のデータ処理装置にお
いて、シングルステツプ、アドレスストツプのデ
ータストツプの機能を実現でき、プログラムのデ
バツクに効果的におこなえる利点をもつ。
さらに、マイクロプログラムカウンタの履歴の
機能を簡単に実現でき、プログラムのデバツクを
効果的におこなえる利点をもつ。さらに、デバツ
クの対象となるマイクロプログラムの一部あるい
は全部がROM内にロードされていてもプログラ
ムのデバツクを効果的におこなえる利点をもつ。
さらに、他の割込み処理プログラムもトレースで
きる利点をもつ。
機能を簡単に実現でき、プログラムのデバツクを
効果的におこなえる利点をもつ。さらに、デバツ
クの対象となるマイクロプログラムの一部あるい
は全部がROM内にロードされていてもプログラ
ムのデバツクを効果的におこなえる利点をもつ。
さらに、他の割込み処理プログラムもトレースで
きる利点をもつ。
第1図乃至第6図は従来のトレース方法を説明
するための図、第7図a,b及び第8図a,bは
本発明によるトレース方法によるプログラムの流
れを示す図、第9図は本発明の一実施例を示すブ
ロツク図、第10図乃至第12図は本発明の一実
施例の動作を説明するための図、第13図は本発
明の一実施例の一部分の構成例を示す図である。 91……中央処理部、94……表示部、95…
〓〓〓〓〓
…マイクロプログラムメモリ、923……マイク
ロ命令レジスタ、921……マイクロプログラム
カウンタ。 〓〓〓〓〓
するための図、第7図a,b及び第8図a,bは
本発明によるトレース方法によるプログラムの流
れを示す図、第9図は本発明の一実施例を示すブ
ロツク図、第10図乃至第12図は本発明の一実
施例の動作を説明するための図、第13図は本発
明の一実施例の一部分の構成例を示す図である。 91……中央処理部、94……表示部、95…
〓〓〓〓〓
…マイクロプログラムメモリ、923……マイク
ロ命令レジスタ、921……マイクロプログラム
カウンタ。 〓〓〓〓〓
Claims (1)
- 1 複数の割込み機能と、その夫々の割込みに対
応して割込みを1対1にマスクする割込み許可マ
スクとを有する一部もしくは全部がLSI化された
マイクロプログラム制御のデータ処理装置におい
て、プログラムのトレースを行なうためのトレー
スプログラムを収容し、前記プログラムの1乃至
数マイクロ命令を実行する毎にマイクロプログラ
ムレベルのシングル割込みを発生し、このシング
ル割込みに応答して前記トレースプログラムを実
行するとともに、このシングル割込みは前記割込
みのいずれよりも割込みの優先順位を低くし、シ
ングル割込み処理中は前記割込み許可マスクのす
べてを閉じ、シングル割込みを除いた前記割込み
の処理中は前記割込み許可マスクのうちシングル
割込みの許可マスクを開けておくことにより、割
込み処理プログラムのトレースを行なうことを特
徴とするマイクロプログラムトレース方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1555280A JPS56114052A (en) | 1980-02-13 | 1980-02-13 | Microprogram tracing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1555280A JPS56114052A (en) | 1980-02-13 | 1980-02-13 | Microprogram tracing method |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS56114052A JPS56114052A (en) | 1981-09-08 |
JPS6211744B2 true JPS6211744B2 (ja) | 1987-03-14 |
Family
ID=11891928
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1555280A Granted JPS56114052A (en) | 1980-02-13 | 1980-02-13 | Microprogram tracing method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS56114052A (ja) |
-
1980
- 1980-02-13 JP JP1555280A patent/JPS56114052A/ja active Granted
Also Published As
Publication number | Publication date |
---|---|
JPS56114052A (en) | 1981-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPS5933553U (ja) | プロセツサ | |
JPS6019028B2 (ja) | 情報処理装置 | |
JPS6211744B2 (ja) | ||
JPS6339928B2 (ja) | ||
JPH01125633A (ja) | マルチプロセッサシステムのデバッグ法 | |
JP2768677B2 (ja) | シングルチップマイクロコンピュータのテスト制御回路 | |
JPS5958549A (ja) | マイクロプログラム制御方式 | |
JPS62130427A (ja) | メモリリ−ド/ライト方式 | |
JP2555912B2 (ja) | マイクロプロセッサ | |
JPH0239812B2 (ja) | ||
JPS6319895B2 (ja) | ||
JPS6020771B2 (ja) | マイクロ診断方式 | |
JPH0619752A (ja) | マイクロコンピュータ | |
JPS60193046A (ja) | 命令例外検出方式 | |
JPH0436841A (ja) | マイクロコンピュータ | |
JPS6229813B2 (ja) | ||
JPS6129022B2 (ja) | ||
JPS6232509B2 (ja) | ||
JPS607295B2 (ja) | デ−タ処理装置 | |
JPS63153637A (ja) | デ−タ処理装置 | |
JPS6144346B2 (ja) | ||
JPS63163533A (ja) | マイクロコンピユ−タ | |
JPH0322146A (ja) | マイクロプログラム制御装置 | |
JPS61143856A (ja) | マイクロプログラムデバツグ装置 | |
JPS60220430A (ja) | マイクロプログラムトレ−ス回路 |