JP2770420B2 - マイクロプログラム制御方式 - Google Patents

マイクロプログラム制御方式

Info

Publication number
JP2770420B2
JP2770420B2 JP1132262A JP13226289A JP2770420B2 JP 2770420 B2 JP2770420 B2 JP 2770420B2 JP 1132262 A JP1132262 A JP 1132262A JP 13226289 A JP13226289 A JP 13226289A JP 2770420 B2 JP2770420 B2 JP 2770420B2
Authority
JP
Japan
Prior art keywords
signal
address
subroutine
micro
control
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 - Lifetime
Application number
JP1132262A
Other languages
English (en)
Other versions
JPH02310638A (ja
Inventor
尚夫 針谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
Nippon Electric Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP1132262A priority Critical patent/JP2770420B2/ja
Publication of JPH02310638A publication Critical patent/JPH02310638A/ja
Application granted granted Critical
Publication of JP2770420B2 publication Critical patent/JP2770420B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】 産業上の利用分野 本発明はマイクロ・プログラム制御方式に関し、特に
マイクロ・プログラムのデバグ方法に関する。
従来の技術 マイクロ・プロセッサなどの情報処理装置に要求され
る機能が高度で複雑なものになるにつれ、マイクロプロ
セッサで使用されるマイクロ・プログラムも複雑なもの
になってきている。
特にマイクロ・プロセッサにおいては制御記憶の容量
を大幅に増加させることが困難であるため、マイクロ・
プログラムのレベルのサブルーチンを有効に利用する、
即ち、機能を分割して共通に使用できるサブルーチンと
し、複数のマイクロ・プロシーシャが1つの共通サブル
ーチンを必要なときに呼出すことによって制御記憶の容
量の増加を防止している。
しかし、1つのマイクロ・プロシージャが引数を用い
て複数の共通サブルーチンを呼出して使用すること、呼
出された共通サブルーチンが更に他のサブルーチンを呼
出すこと(ネスティング)、制御記憶に対するアドレス
(マイクロ・アドレス)を直接監視するのは困難である
こと、などの理由により、マイクロ・プログラムの有効
なデバギングは今や非常に困難な作業となっている。
第7図は、マイクロ・プロセッサの制御記憶に対して
マイクロ・アドレスを発行するためのハードウエアの構
成を示す図である。尚、マイクロ・プログラム制御方式
を採用しているこのマイクロ・プロセッサは、互いに重
なりのない2つのクロックCLK1およびCLK2に基づいて動
作しているものとする。
従来のマイクロ・プログラム制御方式によって動作す
るマイクロ・プロセッサ1000は、制御記憶1001と、制御
記憶からの出力を1.5クロック遅延させるためのラッチ1
002と、CLK2に同期したマイクロ・デコーダ1003とを備
え、これらは、デコーダ1003においてサブルーチン・コ
ール命令がデコードされたときにアクティブになる信号
1004と、デコーダ1003においてサブルーチンからのリタ
ーン命令がデコードされたときにアクティブになる信号
1005とによって接続されている。
また、このマイクロプロセッサ1000は、デコーダから
の2本の信号1004、1005により制御されるマイクロ・ア
ドレス制御部1006と、制御記憶1001へのマイクロ・アド
レスを保持するレジスタの4本からなるレジスタ群1007
とを備えている。このレジスタ群1007は、その内容をCL
K1に同期して変化する4本のレジスタMAR0、MAR1、MAR2
およびMAR3から構成されている。
更に、このマイクロプロセッサ1000は、レジスタ群10
07の中のどのレジスタからの出力を選んで制御記憶1001
へのアドレスとして出力するかをCLK1同期で決定するセ
レクタ1008を備えており、セレクタ1008から出力された
アドレスを制御記憶1001に供給するアドレス信号路1009
が設けられている。
ここで、マイクロ・アドレス制御部1006から出力され
るレジスタ群1007への4本のストローブ信号1010は、ど
のレジスタに対してストローブを発生するかを制御して
いる。例えば、例えば1010−0はMAR0への、1010−1は
MAR1へのストローブ信号である。これらストローブ信号
1010は、CLK1のハイ期間と同じ期間だけ排他的にアクテ
ィブになる。尚、セレクタ1008への制御信号1011はCLK1
に同期している。
また、制御記憶1001に対して出力されたCLK1同期のマ
イクロ・アドレスを信号路1009から入力し、1だけイン
クリメントしてCLK2同期にする加算器1012は、出力信号
路1013を備えている。レジスタ群1007の入力セレクタ10
14は、加算器1012からの出力信号1013およびその他のCL
K2に同期した信号1015を入力され、デコーダ1003からの
CLK2に同期した制御信号1016によって入力信号の中から
1系統をCLK2同期で選んで信号路1017に出力する。この
他に、このマイクロプロセッサ1000には、全体をリセッ
トするリセット信号1018を入力することができる。
第8図は、第7図に示したマイクロプロセッサの、マ
イクロ・アドレス制御部1006の内部構成を示す図であ
る。
アップ・ダウン・カウンタ1101は、マイクロ・プロセ
ッサ1000全体のリセット信号1018がアクティブになると
“0"にクリアされ、デコーダ1003においてサブルーチン
・コール命令がデコードされたことを示す信号1004(CL
K2に同期)がアクティブになる度に、その立上がりエッ
ジで1ずつカウント・アップし、デコーダ1003において
サブルーチンからのリターン命令がデコードされたこと
を示す信号1005がアクティブになる度にその立上がりエ
ッジで1ずつカウント・ダウンする。ここで、カウンタ
1101は、レジスタ群1007の中から1つのレジスタを指す
ポインタとして使用される。尚、レジスタ群1007には4
本レジスタがあるのでカウンタ1101は2ビット幅であ
り、ラッチ1103に出力信号1102を入力してCLK1に同期さ
せるように構成されている。また、ラッチ1004は、ラッ
チ1103の出力をCLK2に同期させて、出力信号1105を出力
させる。即ち、ラッチ1103および1104は、信号1102に対
して信号1105を1クロック遅延させる機能がある。
デコーダ1106は、入力された信号1004、1005および11
05を下記の第3表に示すようなパターンに従ってデコー
ドし、制御信号1107とレジスタ群1007へのストローブ信
号1010と入力セレクタ1014への制御信号1016を生成す
る。制御信号1107は、ラッチ1103によりCLK1に同期され
て出力セレクタ1008へのセレクト信号1011となる。
以上のように構成された従来のマイクロプログラム制
御方式に従うマイクロプロセッサの動作について以下に
説明する。
まず、サブルーチンをコールしていない時の動作は以
下の通りである。
いまレジスタ群1007の中のMAR0が使用されていると
し、MAR0にはマイクロ・アドレスPが保持されていたと
する。MAR0が使用されている時カウンタ1101は“0"を出
力している。セレクタ1008は、セレクト信号1011により
MAR0からの出力を選び、CLK1に同期して制御記憶1001に
対してアドレスを発行する。
続いて、制御記憶1001からの出力をラッチ1002で1.5
クロック遅延させて、CLK2のタイミングで1クロック間
これを保持することにより、デコーダ1003は確実にデコ
ードすることができる。
この間に、アドレス信号路1009上に出力されていたア
ドレスPは、加算器1012で1だけインクリメントされて
P+1となって入力セレクタ1014に入力され、セレクト
信号1016によりCLK2に同期して加算器1012からの値P+
1が選択され、ストローブ信号1010−0により、CLK1に
同期してMAR0に格納される。即ち、アドレス信号路1009
にアドレスP+1が出力さている時に、デコーダ1003に
は制御記憶1001のアドレスPの内容が供給されてデコー
ドされる。
一方、例えば、MAR0を使用している時にデコーダ1003
がアドレスCにあるサブルーチン・コール命令をデコー
ドすると、信号1004はCLK2に同期してアクティブにな
り、同時にコールしたサブルーチンSの先頭アドレスS
が入力セレクタ1014へ入力され、入力セレクタ1014に対
する制御信号1016−2によりセレクタ1014からは該サブ
ルーチン先頭アドレスSが選ばれて出力される。
また、信号1004がアクティブになった時には同時にMA
R0にはC+1が保持されている。信号1004がアクティブ
になると、CLK2に同期してカウンタ1101がカウント・ア
ップされて1を出力し、ラッチ1103、1104により1クロ
ック遅延されてデコーダ1106に伝達される。
カウンタ1101の変化した時からのCLK2の1クロック間
に、デコーダ1106では第3表に示したように、MAR1に対
するストローブ信号1010−1をアクティブにすると共に
セレクタ1008がMAR1の内容を選択する制御信号1107をア
クティブにする。この制御信号1107は、ラッチ1108によ
りCLK1に同期して制御信号1011となる。
MAR1に対するストローブ信号1010−1がアクティブに
なると、セレクタ1014から出力されているサブルーチン
先頭アドレスSがCLK1に同期してMAR1に保持され、同時
にセレクタ1008が、MAR1に保持されたばかりのサブルー
チン先頭アドレスSを制御信号1011により制御記憶1001
に対して出力し、かくしてサブルーチンが呼び出され
る。
尚、デコーダ1003が制御記憶1001のアドレスCにある
サブルーチン・コール命令をデコードしているときに
は、MAR0には前述のようにアドレスC+1が保持されて
いる。MAR0にアドレスC+1が保持された次のクロック
では、サブルーチン・コール命令のデコードによりMAR1
に対するストローブ信号1010−1がアクティブになり、
サブルーチン先頭アドレスSがMAR1保持されるので、MA
R0に保持されたアドレスC+1はリターン・アドレスと
して保存されていることになる。従って、サブルーチン
・コール命令のアドレスCが出力された後サブルーチン
先頭アドレスSが出力されるまでにアドレスC+1が制
御記憶1001に対して出力されるが、このアドレスC+1
に対する制御記憶1001からの出力は実行されない。
次にリターン命令によるサブルーチンからの復帰の動
作を説明する。第8図は、サブルーチンからの復帰動作
を説明するタイミング・チャートであり、ここでは、MA
R1を使用しているときにデコーダ1003がアドレスSにあ
るリターン命令をデコードした場合について説明する。
MAR1を使用している時にはカウンタ1101は1を出力し
ている。また、MAR1にはリターン命令のアドレスSが保
持されており、MAR0にはリターン・アドレスC+1が保
持されている。
デコーダ1003がアドレスSにあるリターン命令をデコ
ーダすると、CLK2に同期して信号1005がアクティブにな
り、CLK2に同期してカウンタ1101がカウント・ダウンさ
れて0となる。
カウンタ1101の出力は、ラッチ1103および1104により
1クロック遅延されてデコーダ1106に伝達される。
カウンタ1101が変化したCLK2上の1クロック間に、第
3表に示したように、デコーダ1106ではカウンタ1101の
値の1クロック遅延された値(この例では1)とアクテ
ィブになっている信号1005により、セレクタ1008がMAR0
の内容を選択して制御信号1107を生成する。この制御信
号は、ラッチ1108によりCLK1に同期して制御信号1011に
なり、セレクタ1008は、MAR0に保持されていたアドレス
C+1を制御記憶1001に対して出力する。かくして、サ
ブルーチンからの復帰が完了する。
以上説明したような従来のマイクロプログラム制御方
式を採用しているマイクロプロセッサにおいて、そのマ
イクロプログラムをデバグする方法としてはマイクロア
ドレスの全ビットを直接監視するアドレス・トラップ法
がある。この方法は信号路1009上のマイクロアドレスが
既知のアドレスと一致しているか否かを常に監視し、一
致した場合に割込みなどの手段によってデバグ・ルーチ
ンを起動するものである。
発明が解決しようとする課題 マイクロアドレスを直接監視するアドレス・トラップ
法は、マイクロアドレスの全ビットを直接監視するの
で、マイクロアドレスのビット長分の比較器と、トラッ
プを起こすアドレスを格納するためのレジスタのような
手段と、このレジスタの内容を書き換えるための手段と
が必要である。また、マイクロアドレスとレジスタの内
容とを比較器の入力とし、比較器での比較結果により制
御を変えてトラップを発生させるためには、大規模なハ
ードウエアが必要であるという欠点がある。
また、比較器の比較結果により制御を変える方法とし
てはマイクロ・レベルの割込みを利用する場合には、マ
イクロアドレス・レジスタのハードウエア・スタック構
造の制限から、スタック・レベル(前述の従来例では4
レベル)を越えてマイクロアドレスをスタック・プッシ
ュしてしまう可能性があり、この場合にはトラップ・ル
ーチンから元の処理に復帰することができないという欠
点がある。
そこで、本発明は、マイクロプログラム制御方式によ
るマイクロプロセッサにおいて、上記従来技術の問題点
を解決して、上述のような欠点のないデバッグを行うこ
とのできる新規なマイクロプログラム制御方式を提供す
ることをその目的としている。
課題を解決するための手段 即ち、本発明に従うと、マイクロプログラムのサブル
ーチンの呼出し後、該サブルーチンを呼出したルーチン
への復帰の際に必要なマイクロアドレスを一時的に退避
するスタックとしてハードウエア・スタックを用いてい
るマイクロプロセッサにおいて、該スタックの任意のレ
ベルを指定する書き換え可能な指定手段と、該指定手段
を書き換える書き換え手段と、該指定手段の内容と該ス
タックのレベルとを比較する比較手段とを備え、サブル
ーチンからの復帰マイクロ命令によって該サブルーチン
を呼出したルーチンへの復帰に際して、該比較手段によ
り該指定手段で指定されたレベルのスタックを使用して
いるサブルーチンからの復帰であることが検出されたと
きに、復帰によって元来使用される前記スタックのトッ
プに格納されているマイクロアドレス値を使用するかわ
りに、スタックの切替えを遅らせて該指定手段により指
定されたレベルのスタックに予め定められた特定マイク
ロアドレスをロードし、該指定されたレベルのスタック
を該サブルーチンから継続して使用した該特定マイクロ
アドレスを制御記憶に対して出力することによりマイク
ロアドレスを変更し、該サブルーチンからの復帰に連続
して制御記憶内の該特定マイクロアドレスから始まる特
別な処理ルーチンへ制御を移すことができるように構成
されていることを特徴とするマイクロプログラム制御方
式が提供される。
作用 前述した従来のマイクロプログラムを直接監視するア
ドレス・トラップ法に対し、本発明に係るマイクロプロ
セッサ制御方式に下では、マイクロアドレスの全ビット
を直接監視するのではなく、マイクロアドレス・レジス
タ・スタックの動作を監視してトラップを発生させると
いう相違点を有する。また、このトラップの発生は、割
込みを使用することなく実現されているという点でも従
来技術とは異なっている。
以下、図面を参照して本発明についてより具体的に説
明するが、以下の開示は本発明の一実施例に過ぎず、本
発明の技術的範囲を何ら限定するものではない。
実施例1 第1図は本発明に係るマイクロプログラム制御方式を
実施するためのマイクロプロセッサの構成例を示す図で
ある。尚、この本発明に係るマイクロ・プログラム制御
方式を採用しているマイクロ・プロセッサ100は互いに
重なりのない2つのクロックCLK1およびCLK2に基づいて
動作するものとする。
このマイクロプロセッサ100は、制御記憶101と、制御
記憶101からの出力を1.5クロック遅延させるためのラッ
チ102と、CLK2に同期したマイクロ・デコーダ103とを備
えている。ここで、マイクロ・デコーダ103は、通常の
デコード出力の他に、サブルーチン・コール命令をデコ
ードしたときにアクティブになる信号104と、サブルー
チンからのリターン命令をデコードしたときにアクティ
ブになる信号105とをそれぞれ出力するように構成され
ている。
また、このマイクロプロセッサ100は、デコーダから
の2本の信号104、105により制御されるマイクロ・アド
レス制御部106と、制御記憶101へのマイクロ・アドレス
を保持するレジスタ群107を備えている。レジスタ群107
は、CLK1に同期して変化するMAR0、MAR1、MAR2およびMA
R3の4本のレジスタを備えており。マイクロ・アドレス
制御部106は、レジスタ群107へストローブ信号110を出
力してどのアドレス・レジスタに対してストローブを発
生するかを制御する。この4本のストローブ信号110
は、CLK1のハイ期間と同じ期間だけ排他的にアクティブ
になる。例えば101−1はMAR0への、101−1はMAR1への
ストローブ信号である。
更に、このマイクロプロセッサ100は、レジスタ群107
の4本のレジスタの中からどのレジスタの出力を選んで
制御記憶101へのアドレスとして出力するかを、CLK1に
同期して決定するセレクタ108を備えている。ここで、
セレクタ108は、出力するアドレスを制御記憶101に供給
するアドレス信号路109を備えている。セレクタ108への
制御信号111は、CLK1に同期している。
また更に、マイクロプロセッサ100は、制御記憶101に
対してCLK1に同期して出力されるマイクロ・アドレスを
信号路109から入力して1だけインクリメントし、CLK2
に同期して出力する出力信号路113を具備する加算器112
を備えている。
また、レジスタ群107は、加算器112からの出力信号11
3とトラップ・アドレス125と、その他のCLK2に同期した
信号115を入力とした入力セレクタ114を備えている。即
ち、この入力セレクタ114は、CLK2に同期したデコーダ1
03からの制御信号116によって、入力信号の中から1系
統を選び、CLK2に同期して信号路117に出力する。ま
た、トラップ・アドレス125は、固定的にトラップ・ア
ドレスTをセレクタに入力してもよいし、条件によりト
ラップ・アドレス値を変えてもよい。
また、レジスタ119は、レジスタ119にデータを書込む
信号路121と、レジスタ119からの出力信号路120と、ト
ラップを行なうか否かの動作を規定する制御信号路124
とを備えており、信号路121と制御信号路124とは、それ
ぞれマイクロ・プロセッサ100の外部端子122および123
から直接入力することができるように構成されている。
尚、このマイクロ・プロセッサ100は、全体をリセット
するリセット信号118を入力することができる。
第2図は、第1図に示したマイクロプロセッサのマイ
クロ・アドレス制御部106の内部構造並びにレジスタ119
との接続関係、およびマイクロアドレス・レジスタのス
トローブ信号110、セレクタ108への制御信号111、セレ
クタ114への制御信号116−1等の接続関係を示す図であ
る。
アップ・ダウン・カウンタ201は、マイクロ・プロセ
ッサ100全体のリセット信号118がアクティブになると0
にクリアされる。レジスタ群107には4本レジスタがあ
るので、このカウンナ201は2ビット幅であり、信号104
がアクティブになる度にその立上がりエッジで1ずつカ
ウント・アップし、ANDゲート218の出力がアクティブに
なる度にその立上がりエッジで1ずつカウント・ダウン
する。尚、カウンタ201は出力信号路202を備えている。
また、このカウンタ201は、ラッチ203および204を介
してデコーダ206に接続されている。ここで、ラッチ203
は、入力信号をCLK1同期にして出力し、また、ラッチ20
4は、入力信号をCLK2に同期して出力する。こうして、
1クロック遅延されたカウンタ201の出力信号202は信号
205となる。
デコーダ206は、信号205、104、105を入力されて、下
記の第1表に示すパターンに従ってデコードを実行し、
制御信号207とレジスタ群107へのストローブ信号110、
サブルーチン・コール、リターン時のレジスタ群107の
入力セレクタ114への制御信号116−1を生成する。尚、
制御信号207は、ラッチ208により、CLK1に同期してセレ
クタ108への制御信号111となる。信号209はCLK1であ
り、レジスタ群107へのストローブ信号110は、CLK1のハ
イ期間だけアクティブとなるように、CLK1信号209と論
理積をとっている。
また、この制御部は、比較器211を備えている。この
比較器211は、カウンタ201の出力202とレジスタ119の出
力120とを入力とし、両者の一致を検出すると出力信号2
12をアクティブにする。出力信号212は、CLK1遅延用ラ
ッチ203およびCLK2遅延用ラッチ204により1クロック遅
延されて信号215になる。
更に、この制御部は、トラップ用フリップ・フロップ
213を備えている。このフリップ・フロップ213は、トラ
ップ・ルーチンが処理中であるか否かを記憶する。トラ
ップ用フリップ・フロップ213の出力信号214は、CLK2遅
延用ラッチ204によりCLK2同期にされて信号224になり、
信号224はNOTゲート225で反転されて信号226になる。
ANDゲート222は、信号226、212、105およびCLK1信号2
09を入力とし、トラップ用フリップ・フロップ213をCLK
1に同期してセットす。また、ANDゲート220は、信号224
および105を入力とし、その出力とリセット信号118との
論理和がORゲート221において生成される。
一方、ANDゲート223は、ゲート221の出力とCLK1信号2
09との論理積をとって、トラップ用フリップ・フロップ
213をCLK1に同期してリセットする。
NANDゲート216は、NOTゲート225の出力とラッチ204の
出力215および124とを入力とし、その出力信号217は、A
NDゲート218とデコーダ206とに入力される。ANDゲート2
18は、デコーダ103においてサブルーチンからのリター
ン命令がデコードされたことを示す信号105により、カ
ウンタ201がカウント・ダウンされることを信号217で制
御する。
次に、上述のように構成されたマイクロプロセッサの
マイクロ・プログラムをデバグする方法を含め、その動
作について説明する。
第3図は、第1図に示したマイクロプロセッサの動作
を説明するタイミング・チャートである。
デバグを行なわないときには、信号124をロー・レベ
ルに保っておくことにより信号217はつねにハイ・レベ
ルとなり、第1表に示したように、トラップを発生させ
ない。
デバグを行なう時には、信号124をハイ・レベルに
し、目標のサブルーチンがレジスタ群107の中のどのレ
ジスタを使用するかをレジスタ119に書込んでおく。例
えば、目標のサブルーチンがMAR1を使用するときにはレ
ジスタ119に1を書込んでおく。
MAR1を使用する目標のサブルーチンSは、マイクロ・
アドレスCにあるコール命令によって呼出されるものと
する。サブルーチンのコールの方法は前記従来例と同様
であり、本実施例のハードウエアにより変化しない。従
って、該サブルーチンSからの本来のリターン・アドレ
スはC+1であり、MAR0にリターン・アドレスが格納さ
れる。このサブルーチンSがマイクロ・アドレスCにあ
るコール命令によって呼出されると、カウンタ201がカ
ウント・アップされて1を出力するが、それまでは比較
器211が0を出力しているため、信号217はハイ・レベル
になっている。
第3図に示すタイミング301において、MAR1を使用す
る目標のサブルーチンがコール命令によって呼出されて
処理が始まると、カウンタ201が信号104によりCLK2に同
期してカウント・アップされて1を出力する。従って、
このサブルーチンからの復帰のためのリターン命令が実
行される直前ではレジスタ119の内容とカウンタ201の出
力とが一致している。
ここで、比較器211の出力212および215はハイ・レベ
ルになっている。フリップ・フロップ213はロー・レベ
ルの信号を出力しているので、NOTゲート225はハイ・レ
ベルを出力している。従って、第3図にタイミング302
として示すように、NANDゲート216の出力217はロー・レ
ベルになる。
次に、このマイクロプロセッサにおけるトラップの発
生過程を説明する。尚、ここでは、説明のためサブルー
チンSはサブルーチンの先頭アドレスSにリターン命令
があるものとする。
MAR1を使用する目標のサブルーチンでの処理が終了
し、アドレスSにあるリターン命令を実行した時、即ち
制御記憶101のアドレスSにあるリターン命令をデコー
ダ103がデコードすると、信号105はハイ・レベルにな
る。
CLK2に同期した信号105がハイ・レベルである期間に
おいて信号212および225がハイ・レベルであることによ
り、まずANDゲート222によりフリップ・フロップ213がC
LK1の立上がりでセットされ、信号路214にハイ・レベル
が出力される。これは、NOTゲート225のハイ・レベル
(トラップ・ルーチンではないこと)、比較器の出力信
号212のハイ・レベル(目標のサブルーチンであるこ
と)により、信号105がハイ・レベルになったとき(リ
ターン命令の実行されたとき)にトラップの発生を意味
する。
信号214の変化は、ラッチ204によって遅延され、CLK2
に同期して信号路224に出力される。即ち、信号路224の
立ち上がりは、NOTゲート225により反転されてNANDゲー
ト216に伝えられるので、信号217は信号224の立上がり
に同期してロー・レベルからハイ・レベルに変化する。
このような信号217の変化は、信号105の降下エッジに
同期しているので、ANDゲート218により信号105がハイ
・レベルであったことはマスクされてカウンタ201に伝
達されない。従って、カウンタ210はカウント・ダウン
されず、MAR1を使用していた前記目標とするサブルーチ
ンからのリターン命令が実行されてもカウンタ210は1
を出力したままである。換言すれば、信号217は目標と
するサブルーチンのリターン命令が実行されてもカウン
タ201を変化させないために生成された信号である。
第3図に示したタイミング303から304までの1クロッ
クの期間は、信号105がハイ・レベル、信号217がロー・
レベルとなるので、デコーダ206は、前述の第1表に従
って入力セレクタ114に対してデバグ・ルーチンの先頭
アドレスT(125)を信号路117に出力させる制御信号11
6−1、MAR1に対するストローブ信号110−1、制御記憶
101に対してMAR1の内容を出力させる制御信号111を生成
する。従って、アドレス信号路109にはセレクタ108から
デバグ・ルーチンの先頭アドレスTが出力されて制御記
憶101に入力される。即ち、デコーダ206は信号105がハ
イ・レベル、信号217がロー・レベルであることで目標
のサブルーチンの実行が終了したことを検出し、デバグ
・ルーチンの先頭アドレスTを制御記憶101に出力させ
ることによりトラップを起こしてデバグ・ルーチンを起
動する。
このように、本実施例に係るマイクロプロセッサで
は、マイクロプログラムの中の目標とするサブルーチン
の実行が終了したことを検出し、そのサブルーチンが使
用していたレベルのマイクロアドレス・レジスタをその
まま使用してマイクロプログラムのトラップ・サブルー
チンを起動することができる。
次に、このトラップ・サブルーチンTからの復帰につ
いて説明する。尚、説明のためトラップ・サブルーチン
Tは先頭アドレスTにリターン命令があるものとする。
第3図にタイミング305として示すように、制御記憶1
01のアドレスTにあるトラップ・サブルーチンからのリ
ターン命令がデコーダ103でデコードされたことによ
り、CLK2に同期した信号105は、信号217がハイ・レベル
であるためANDゲート218によりマスクされない。従っ
て、アドレスTにあるトラップ・サブルーチンからのリ
ターン命令に対応して信号105がハイ・レベルになる
と、カウンタ201がカウント・ダウンされて0を出力す
る。
同時に、タイミング305において、信号224がハイ・レ
ベルであることにより、ANDゲート220はハイ・レベルを
出力し、ORゲート221がハイ・レベルを出力するので、A
NDゲート223により信号105がCLK2に同期してハイ・レベ
ルになると、その後半のCLK1に同期してフリップ・フロ
ップ213がリセットされてロー・レベルの信号を214に出
力する。
タイミング305から306までのCLK2の1クロック期間に
おいて、信号105がハイ・レベル、信号217がハイ・レベ
ル、カウンタ201の出力が1クロック遅延された信号205
は1であるため、第1表に従って、デコーダ206は制御
記憶101に対してMAR0の内容(本来のリターン・アドレ
ス)を出力させる制御信号111を生成する。このとき同
時にデコーダ206からは入力セレクタ114に対して加算器
112の出力113(本例ではT+2)を信号路117に出力さ
せる制御信号116−1が生成されるが、マイクロアドレ
ス・レジスタ群107に対するストローブ信号110は全てイ
ンアクティブとなる。即ち、タイミング305から306の1
クロック期間に、信号105がハイ・レベル(サブルーチ
ンからのリターン命令がデコーダ103でデコードされた
ことを示す)、信号217がハイ・レベル(トラップを発
生させることを示す)、信号205が1であることによ
り、デバグ・ルーチンの実行が終了したことを検出して
再びトラップを起こし、このトラップが発生しなければ
アドレスSにあったリターン命令により本来復帰すべき
アドレスC+1を保持しているMAR0の内容をデバグ・ル
ーチンからの復帰アドレスとして制御記憶101に出力さ
せることにより、デバグ・ルーチンからの復帰を行な
う。
このような本実施例において採用されるマイクロ・プ
ログラムのデバグ・ルーチンは、例えばマイクロ・プロ
セッサ100内のマイクロ・プログラムのみによって読む
ことのできる制御レジスタ等の資源の内容をマイクロ・
プロセッサ100の外部メモリの特定のアドレスに書き出
すようなプログラムが考えられる。
次に、本発明に係るマイクロプログラム制御方式の下
で行なわれるデバグの方法を説明する。
本発明に従う制御方式の下では、マイクロ・プログラ
ムに対するデバグは、マイクロ・プログラムの論理的ま
とまりであるサブルーチン単位でトラップを発生させる
ものである。即ち、デバグの目標のサブルーチンがサブ
ルーチン・コール命令によって呼出され、このサブルー
チンでの処理が終了してリターン命令によって該サブル
ーチンを呼出した処理系に復帰するときにトラップを発
生させてマイクロ・プログラム・レベルのデバグ・ルー
チンを起動し、デバグ・ルーチンの処理が終了すると目
標のサブルーチンを呼出した処理系に復帰する。
本実施例では、マイクロ・プロセッサ100はプリフェ
ッチを行なわず、1マクロ命令の実行、即ち1マイクロ
・プロシージャの実行が終了してから次のマクロ命令の
フェッチが行なわれるものとする。デバグを行なう時に
はマイクロ・プログラムのリストとマクロ命令のリスト
を使用する。
目標とするマイクロ・サブルーチンを含むマクロ命令
がマイクロ・プロセッサ100の外部メモリのどのアドレ
スにあるかを調べ、たとえばマイクロ・プロセッサ100
の外部でアドレス・トラップ法により該マクロ命令をフ
ェッチする時に本発明により新たに設けられた端子123
をアクティブにするような外部付加回路を設ける。
また該マクロ命令に対するマイクロ・プロシージャに
おいて目標とするマイクロ・サブルーチンが使用するマ
イクロ・アドレス・スタックのレベルを予想して、端子
122に該マイクロ・アドレス・スタックのレベルを示す
情報を入力する。
以上のような操作の後、マイクロ・プロセッサ100を
リセットしてマクロ・レベルのプログラムを実行する
と、目標とするマイクロ・サブルーチンからのリターン
命令実行時にトラップが発生し、マイクロ・プログラム
のデバグ・ルーチンが起動されてマイクロ・プロセッサ
100内部のレジスタ等の資源の内容をマイクロ・プロセ
ッサ100の外部メモリの特定のアドレスに書き出す。こ
の外部メモリの特定のアドレスの内容を検討することに
よりデバグを行なうことができる。
実施例2 第4図および第5図は、第1図および第2図に対照し
て、本発明に係るマイクロプログラム制御方式を実施で
きるマイクロプロセッサの他の構成例を示す図である。
即ち、第4図に示すマイクロプロセッサと第1図に示
したマイクロプロセッサとの相違点は、マイクロアドレ
ス制御部406、マイクロアドレス・レジスタ407およびマ
イクロアドレス・レジスタ407に対する新たな制御信号4
10と入力セレクタ114への新たな制御信号416である。
第5図は、第4図に示したマイクロプロセッサのマイ
クロ・アドレス制御部406の内部構成と、レジスタ119、
レジスタ119への書込み信号路121、レジスタ119の出力
信号路120との接続関係を示している。
ここで、第5図に示したマイクロ・アドレス制御部40
6と、第2図に示したマイクロ・アドレス制御部106との
相違点は、デコーダ506、デコーダ506からの出力信号の
510、511および410の構成である。
また、第6図は、マイクロアドレス・レジスタ407中
のMAR1の構成を内部の1ビットについて示す図である。
第6図に示すように、このレジスタは、1対のトラン
スファー・ゲート601、602と、1対のインバータにより
構成された信号の保持回路603と接地604等を備えてい
る。レジスタにおいては、信号110−1がアクティブで
ある時には、トランスファー・ゲート601がアクティブ
になって信号路117上のデータを603に保持する。また、
信号410−1がアクティブである時には、トランスファ
ー・ゲート602がアクティブとなって保持回路603には60
4のグランド・レベルの信号が保持される。
ここで、MAR1のビットにより接地604の接続を電源に
することもでき、これによって信号410−1がアクティ
ブになった時に、特定のデバック・ルーチンの先頭のア
ドレスTをMAR1に保持(ロード)し、出力セレクタ108
に対してデバッグ・ルーチンの先頭アドレスTを出力さ
せることができる。
以上のように構成された実施例2に係るマイクロプロ
セッサと、既に説明した実施例1に係るマイクロプロセ
ッサとの動作の相違点は、目標とするサブルーチンから
のリターン命令がデコードされたとき(トラップが発生
した時)にマイクロアドレス・レジスタにデバッグ・ル
ーチンの先頭アドレスTをロードする方法である。
そこで、以下に本実施例に係るマイクロプロセッサが
デバッグ・ルーチンの先頭アドレスTをロードする処理
について説明する。尚、このマイクロプロセッサのデコ
ーダの動作論理を第2表に示す。
本実施例のマイクロプロセッサにおいても、目標とす
るサブルーチンSはMAR1を使用し、サブルーチンSの本
来のリターン・アドレスはC+1で、MAR0に格納されて
いる。
第3図に示したタイミング・チャートにおけるタイミ
ング303から304の期間では、信号105がハイ・レベル、
信号216がロー・レベル、信号205が1を示している。従
って、デコーダ506は、第2表に従って、信号105、21
6、205をデコードして、信号路410にMAR1にデバグ・ル
ーチンの先頭アドレスTをロードさせる信号を、信号路
110にはどのマイクロアドレス・レジスタ407に対しても
ストローブを発生しない情報を、信号路111には出力セ
レクタ108にはMAR1からの出力を選択する情報を載せ
る。
信号410−1がアクティブになると、前述のトランス
ファー・ゲート602がアクティブになり、MAR1にはデバ
グ・ルーチンの先頭アドレスTがロードされ、信号111
により出力セレクタ108がMAR1からの出力を選択するの
で、制御記憶101に対してデバグ・ルーチンの先頭アド
レスTが出力される。以上のようにして、このマイクロ
プロセッサではトラップが発生する。
発明の効果 以上説明したように、本発明に係るマイクロプログラ
ム制御方式の下では、マイクロ・アドレスを直接監視す
るのではなく、マイクロ・アドレス・スタックの動作を
無視してマイクロ・プログラムの論理的な一まとまりで
あるサブルーチンからの復帰時にトラップを発生してい
る。従って、トラップ発生のためのハードウエアの増加
を最小限に抑えて、かつ効果的なデバグを行なうことが
できる。
【図面の簡単な説明】
第1図は、本発明に係るマイクロプログラム制御方式を
実施し得るマイクロプロセッサの構成例を示す図であ
り、 第2図は、第1図に示したマイクロプロセッサの構成の
一部の具体的構成例を示す図であり、 第3図は、第1図に示したマイクロプロセッサの動作を
説明するタイミング・チャートであり、 第4図は、本発明に係るマイクロプログラム制御方式を
実施し得るマイクロプロセッサの他の構成例を示す図で
あり、 第5図は、第4図に示したマイクロプロセッサの構成の
一部の具体的構成例を示す図であり、 第6図は、第4図に示したマイクロプロセッサの動作を
説明するタイミング・チャートであり、 第7図は、従来のマイクロプログラム制御方式の下で動
作するマイクロプロセッサの他の構成例を示す図であ
り、 第8図は、第7図に示したマイクロプロセッサの構成の
一部の具体的構成例を示す図であり、 第9図は、第7図に示したマイクロプロセッサの動作を
説明するタイミング・チャートである。 〔主な参照番号〕 100……マイクロ・プロセッサ、101……制御記憶、102
……1.5クロック遅延ラッチ、103……マイクロ命令デコ
ーダ、104……サブルーチン・コール命令がデコードさ
れた時アクティブになる信号、105……サブルーチンか
らのリターン命令がデコードされた時アクティブになる
信号、106……マイクロ・アドレス制御部、107……マイ
クロ・アドレス・レジスタ群、108……マイクロ・アド
レス出力セレクタ、109……マイクロ・アドレス信号
路、110……ストローブ信号、111……制御信号、112…
…インクリメント用加算器、113……加算器出力信号
路、114……マイクロ・アドレス入力セレクタ、115……
セレクタ入力信号、116……セレクタ制御信号、117……
セレクタ出力信号、118……リセット信号、119……レジ
スタ、120……レジスタ119の出力信号路、121……レジ
スタ119への入力信号路、122……レジスタ119への入力
端子、123……信号124の入力端子、124……制御信号
路、201……アップ・ダウン・カウンタ、202……カウン
タ201の出力信号、203……CLK1遅延用ラッチ、204……C
LK2遅延用ラッチ、206……デコーダ、207……制御信
号、209……CLK1信号 211……比較器、212……比較器出力信号路、213……ト
ラップ用フリップフロップ、214……フリップ・フロッ
プ213の出力信号路、215……比較器211の出力信号212を
203、204によって1クロック遅延させた信号、216……N
ANDゲート、217……NANDゲート216の出力信号、218、22
0、222、223……ANDゲート、221……ORゲート、224……
CLK2同期にした信号、225……NOTゲート。 406……マイクロ・アドレス制御部、407……マイクロア
ドレス・レジスタ、506……デコーダ、510……ストロー
ブ信号、511……ロード信号、601……トランスファー・
ゲート、602……トランスファー・ゲート、603……保持
回路、604……接地または電源。 1000……マイクロ・プロセッサ、1001……制御記憶、10
02……ラッチ、1003……マイクロ命令デコーダ、1006…
…マイクロ・アドレス制御部、1007……マイクロ・アド
レス・レジスタ群、1008……マイクロ・アドレス出力セ
レクタ、1009……マイクロ・アドレス信号路、1010……
ストローブ信号、1011……マイクロ・アドレス出力セレ
クタ、1012……インクリメント用加算器、1013……加算
器1012の出力信号路、1014……マイクロ・アドレス入力
セレクタ、1015……入力セレクタ1014への入力信号、10
16……入力セレクタ1014への制御信号、1017……入力セ
レクタ1014からの出力信号、1018……リセット信号。 1101……アップ・ダウン・カウンタ、1102……カウンタ
1101の出力信号、1103……CLK1遅延用ラッチ、1104……
CLK2遅延用ラッチ、1106……デコーダ、1107……制御信
号、1109……CLK1信号。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】マイクロプログラムのサブルーチンの呼出
    し後、該サブルーチンを呼出したルーチンへの復帰の際
    に必要なマイクロアドレスを一時的に退避するスタック
    としてハードウエア・スタックを用いているマイクロプ
    ロセッサにおいて、 該スタックの任意のレベルを指定する書き換え可能な指
    定手段と、該指定手段を書き換える書き換え手段と、該
    指定手段の内容と該スタックのレベルとを比較する比較
    手段とを備え、 サブルーチンからの復帰マイクロ命令によって該サブル
    ーチンを呼出したルーチンへの復帰に際して、該比較手
    段により該指定手段で指定されたレベルのスタックを使
    用しているサブルーチンからの復帰であることが検出さ
    れた時に、復帰によって元来使用される前記スタックの
    トップに格納されているマイクロアドレス値を使用する
    かわりに、スタックの切替えを遅らせて該指定手段によ
    り指定されたレベルのスタックに予め定められた特定マ
    イクロアドレスをロードし、該指定されたレベルのスタ
    ックを該サブルーチンから継続して使用して該特定マイ
    クロアドレスを制御記憶に対して出力することによりマ
    イクロアドレスを変更し、該サブルーチンからの復帰に
    連続して制御記憶内の該特定マイクロアドレスから始ま
    る特別な処理ルーチンへ制御を移すことができるように
    構成されていることを特徴とするマイクロプログラム制
    御方式。
JP1132262A 1989-05-25 1989-05-25 マイクロプログラム制御方式 Expired - Lifetime JP2770420B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1132262A JP2770420B2 (ja) 1989-05-25 1989-05-25 マイクロプログラム制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1132262A JP2770420B2 (ja) 1989-05-25 1989-05-25 マイクロプログラム制御方式

Publications (2)

Publication Number Publication Date
JPH02310638A JPH02310638A (ja) 1990-12-26
JP2770420B2 true JP2770420B2 (ja) 1998-07-02

Family

ID=15077168

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1132262A Expired - Lifetime JP2770420B2 (ja) 1989-05-25 1989-05-25 マイクロプログラム制御方式

Country Status (1)

Country Link
JP (1) JP2770420B2 (ja)

Also Published As

Publication number Publication date
JPH02310638A (ja) 1990-12-26

Similar Documents

Publication Publication Date Title
US5548794A (en) Data processor and method for providing show cycles on a fast multiplexed bus
JP2770420B2 (ja) マイクロプログラム制御方式
JPH1078887A (ja) デバッグシステム及びデバッグ方法
EP0290467A1 (en) Apparatus and method for a microprogrammed data processing system having a plurality of control stores
JPH0750444B2 (ja) マイクロ・プログラム制御方式
JPS59186062A (ja) 分散形プロセツサシステム
KR100284287B1 (ko) 가변 리셋 어드레스를 가지는 마이크로프로세서
JP2758624B2 (ja) マイクロプログラムの調速方式
JPS5916054A (ja) マイクロ・プロセツサ
JPS60124746A (ja) デ−タ処理装置
JP3001547B1 (ja) インサーキットエミュレータ
JPH0776931B2 (ja) 情報処理システム
JPH0561660B2 (ja)
JPH04367034A (ja) 割り込み制御装置
JPS6148189B2 (ja)
JPH04251331A (ja) 情報処理装置
JPH0243626A (ja) コンピュータ・プロセッサの実行速度を制御する装置
JPS63163533A (ja) マイクロコンピユ−タ
JPH04140837A (ja) 情報処理装置
JPS6232500B2 (ja)
JPS6198444A (ja) 制御記憶システム
JPH0365751A (ja) 多重プロセッサシステム
JPS6347833A (ja) マイクロコンピユ−タ
JPH06100963B2 (ja) マイクロプログラム制御装置
JPH04162150A (ja) ウォッチドッグタイマ制御回路