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

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

Info

Publication number
JPH01102653A
JPH01102653A JP62260218A JP26021887A JPH01102653A JP H01102653 A JPH01102653 A JP H01102653A JP 62260218 A JP62260218 A JP 62260218A JP 26021887 A JP26021887 A JP 26021887A JP H01102653 A JPH01102653 A JP H01102653A
Authority
JP
Japan
Prior art keywords
signal
address
output
subroutine
micro
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.)
Granted
Application number
JP62260218A
Other languages
English (en)
Other versions
JPH0750444B2 (ja
Inventor
Hisao Harigai
針谷 尚夫
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
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP62260218A priority Critical patent/JPH0750444B2/ja
Publication of JPH01102653A publication Critical patent/JPH01102653A/ja
Publication of JPH0750444B2 publication Critical patent/JPH0750444B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はマイクロ・てログラム制御方式に関し、特にマ
イクロ・プログラムのデバグ方法に関する。
〔従来の技術〕
マイクロ・プログラム制御方式を用いたマイクロ・プロ
セッサなどの情報処理装置に要求される機能が高度で複
雑なものになるにつれ、マイクロ・プログラムも高機能
化のために複雑なものになってきている。とくにマイク
ロ・プロセッサにおいてマイクロ・プログラムは制御記
憶の容量を大幅に増加させることが困難であるため、マ
イクロ・プログラムのレベルでのサブルーチンを有効に
利用する。つまシ機能を分割して共通サブルーチンとし
、検数のマイクロ・プロシージャが一つの共通サブルー
チンを必要なときに呼出すことによって制御記憶の容量
の増加を防止している。しかし、一つのマイクロ・プロ
シージャはいくつかの共通サブルーチンを、引数を用い
て呼出して使用すること、呼出された共通サブルーチン
もまた他のサブルーチンを呼出していること(ネスティ
ング)、制御記憶にたいするアドレス(マイクロ・アド
レス)を直接監視することが困難であること、などの理
由により特にマイクロ・プログラムのデバグは困難にな
ってきている。
第7図はマイクロ・プロセッサの制御記憶に対制御方式
を採用しているマイクロ・プロセッサは互いに重なシの
ない2つのクロックCLKI、CLK2にもとすいて動
作するものとする。
700は以下に説明する従来のマイクロ・プログラム制
御方式を実施しているマイクロ・プロセッサ、701は
制御記憶、702は制御記憶からの出力を1.5クロツ
ク遅延させるためのラッチ、703はCLK2同期のマ
イクロ・デコーダ、704はデコーダ703においてサ
ブルーチン・コール命令がデコードされたときにアクテ
ィブになる信号、705はデコーダ703においてサブ
ルーチンからのリターン命令がデコードされたときにア
クティブになる信号である。706はデコーダからの2
本の信号704.705により制御されるマイクロ・ア
ドレス制御部、707は制御記憶701へのマイクロ・
アドレスを保持するレジスタの4−本からなるレジスタ
群で、その内容はCLKI同期で変化し、それぞれMA
RO,MARI。
MAR2、MAR3と呼ぶ。708はレジスタ群707
の中のどのレジスタからの出力を選んで制御記憶701
/>のアドレスとして出力するかをCLKI同期で決定
するセレクタで、709はセレクタ708から出力され
たアドレスを制御記憶に供給するアドレス信号路である
。710はマイクロ・アドレス制御部706から出力さ
れるレジスタ群707への4本のストローブ信号で、ど
のレジスタにたいしてストローブを発生するかを制御す
る。このストローブ信号はCLKIのノ1イ期間と同じ
期間だけアクティブになる。711はセレクタ708へ
の制御信号で、CLKI同期である。712は制御記憶
701にたいして出力されたCLKI同期のマイクロ・
アドレスを信号路709から入力し、1だけインクリメ
ントしてCLK2同期にする加算器、713は加算器7
12からの出力信号路である。714はレジスタ群70
7の入力セレクタで、加算器712からの出力信号71
3、その他のCLK2同期の信号715を入力とし、デ
コーダ703からのCLK2同期の制御信号716によ
って入力信号の中から1系統をCLK2同期で選んで信
号路717に出力する。
第8図はマイクロ・アドレス制御部706の内部の構造
を示す図である。801はアップ・ダウン・カウンタで
、マイクロ・プロセッサ700全体のリセット信号80
2がアクティブになるとOにクリアされ、デコーダ70
3においてサブルーチン・コール命令がデコードされた
ことを示す信号704がアクティブになる度にその立上
がシエッヂで1ずつカウント・アップし、デコーダ70
3においてサブルーチンからのリターン命令がデコード
されたことを示す信号704がアクティブになる度に七
の立上がシエッヂで1ずつカウント・ダウンする。レジ
スタ群707の中から1つのレジスタを指すポインタと
してカウンタ801を使用する。レジスタ群707には
4本レジスタがあるのでカウンタ801p2ビット幅で
ある。803はカウンタ801の出力信号路である。8
06はり708への制御信号807とレジスタ群707
へのストローブ信号710を生成する。制御信号807
はラッチ808によficLK1同期にしてレジスタ群
707へのセレクト信号711にする。
である。いまレジスタ群707のなかのMAROが使用
されているとし、MAROにはマイクロ・アドレスPが
保持されていたとする。MARoが使用されているとき
カウンタ801はOを出力している。セレクタ708は
セレクト信号711によ、9MAROからの出力を選ん
で制御記憶701にたいしてCLKI同期で発行する。
制御記憶701からの出力を確実に1クロック間デコー
ダ703に供給するためにラッチ702でL5クロック
遅延させてCLK2でデコーダ703に供給される。こ
のあいだにアドレス信号路709上に出力されていたア
ドレスPは、加算器712で1だけインクリメントされ
てP+1となって入力セレクタ714に入力され、セレ
クト信号716により加算器712からの値が選択され
てストローブ信号710によってMAROに格納される
。つまシアドレス信号路709にアドレスP+1が出力
されているときに、デコーダ703には制御記憶701
のアドレスPの内容が供給されてデコードされる。
たとえばMARoを使用しているときにデコーダ703
がサブルーチン・コール命令をデコードすると、信号7
04がCL K 2同期でアクティブにな夛、それと同
時にコールしたサブルーチン先頭アドレスが入力セレク
タ714へ入力され、入力セレクタ714にたいする制
御信号716によりセレクタ714からは該サブルーチ
ン先頭アドレスSが選ばれて出力される。信号704が
アクティブになるとカウンタ801がCLK2同期でカ
ウント・アップされて1を出力し、信号路803により
デコーダ806に伝達される。カウンタ801の変化し
たCLK2からの1クロック間にデコーダ806では、
第11図に示すようKMARlにたいするストローブ信
号をアクティブにするとともにセレクタ708がMAR
Iの内容を選択する制御信号をアクティブにする。該制
御信号はラッチ808によりcLKx同期になって制御
信号711になる。八1AR1にたいするストローブ信
号がアクティブになると、セレクタ714から出力され
ているサブルーチン先頭アドレスSがCLKI同期でM
ARIに保持され、同時に制御信号711によりセレク
タ708が、前記ストローブ信号によ、9MAR1に保
持されたばかシのサブルーチン先頭アドレスSを制御記
憶701にたいして出力することKよ)、サブルーチン
・コールを行なう。
デコーダ703が制御記憶701のアドレスPにあるサ
ブルーチン・コール命令をデコードしているときには、
前述のようにMAROにはアドレスP+1が保持されて
お、9、MAROにアドレスP+1が保持されたつぎの
クロックでは、該サブルーチン・コール命令のデコード
によりMARIにたいするストローブ信号がアクティブ
になってサブルーチン先頭アドレスSがMARIに保持
されるので、MAROに保持されたアドレスP+1はリ
ターン・アドレスとして保存されていることになる。
つぎにリターン命令によるサブルーチンからのリターン
の方法をしめす。第9図のタイミング・チャートはサブ
ルーチンからのリターンを示したものである。たとえば
MARIを使用しているときにデコーダ703がアドレ
スNにあるリターン命令をデコードすることを考える。
MARIを使用しているときにはカウンタ801は1を
出力している。またMARIにはリターン命令のアドレ
スNが保持されており、MAROにはリターン・アドレ
スP+1が保持されているものとする。デコーダ703
がアドレスNにあるリターン命令をデコードすると信号
705がCLK2同期でアクティブになってカウンタ8
01がCLK2同期でカウント・ダウンされてOとなる
。カウンタ801の出力は信号路803を介してデコー
ダ806に伝達される。カウンタ801の変化したCL
K20)とアクティブになっている信号705により、
セレクタ708がMAROの内容を選択するための制御
信号を生成する。この制御信号はラッチ808によりC
LK1同期になって制御信号711になシ、セレクタ7
08は、MAR,0に保持されていたアドレスP+1を
制御記憶701にたいして出力することにより、サブル
ーチンからのリターンを行なう。
このようなマイクロ・プログラム制御方式を採用してい
るマイクロ・プロセッサのマイクロ・プログラムをデバ
グする方法として従来からマイクロ・アドレスの全ビッ
トを直接監視するアドレス・トラップ法があった。この
方法は信号路709上のマイクロ・アドレスが既知のア
ドレスと一致しているか否かを常に監視し、一致した場
合には割込みなどの手段によってデバグ・ルーチンを起
動するものであった。
〔発明が解決しようとする問題点〕
従来のマイクロ・アドレスを直接監視するアドレス・ト
ラップ法は、マイクロ・アドレスの全ビットを直接監視
するため、マイクロ・アドレスのビット要分の比較器と
、トラップをおこすアドレスを格納するためのレジスタ
のような手段と、該レジスタの内容を書き換えるための
手段とを有し、マイクロ・アドレスと該レジスタの内容
とを比較器の入力とし、比較器での比較結果により制御
を変えてトラップを発生させるのに、多量のハードウェ
アが必要であるという欠点がある。
〔発明の従来技術に対する相違点〕
上述した従来のマイクロ・アドレスを直接監視するアド
レス・トラップ法に対し、本発明はマイクロ・アドレス
の全ビットを直接監視するのではなく、マイクロ・アド
レス・スタックの動作を監視してトラップを発生させる
という相違点を有する。
〔問題点を解決するための手段〕
マイクロ・プログラムのサブルーチンの呼出し後膣サブ
ルーチンを呼出したルーチンへの復帰の際に必要なマイ
クロ・アドレスを一時的に退避するハードウェア・スタ
ックを用いているマイクロプロセッサにおけるマイクロ
・プログラム制御方式において、該スタックの任意のレ
ベルを指定するレベル指定手段と、該レベル指定手段の
内容と前記スタックのレベルとを比較する手段と、予め
定められたマイクロ・アドレスを格納しておシ前記スタ
ックとは独立したレジスタ手段とを有し、前記サブルー
チンからの復帰マイクロ命令によって該サブルーチンを
呼出したルーチンへの復帰の際に、前記比較手段により
前記レベル指定手段で指定されたレベルのスタックを使
用しているサブルーチンからの復帰であることが検出さ
れたとき飄 に、該復帰によって元来使用される前記スタックのトッ
プに格納されているマイクロ・アドレス値を使用するか
わりに、前記レジスタ手段に格納されている予め定めら
れたマイクロ・アドレスを使用することによってマイク
ロ・アドレスを変更して制御記憶内の予じめ定めた処理
ルーチンへ制御を移すことを特徴とする。
〔実施例〕
第1図は本発明の第1の実施例を示すブロック図である
本マイクロ・プログラム制御方式を採用しているマイク
ロ・プロセッサーOOは互いに重なりのない2つのクロ
ックCLK1.CLK2にもとずいて動作するものとす
る。
101は制御記憶、102は制御記憶からの出力を1.
5クロツク遅延させるためのラッチ、103はCLK2
同期のマイクロ・デコーダ、104はデコーダ103に
おいてサブルーチン・コール命令がデコードされたとき
にアクティブになる信号、105はデコーダ103にお
いてサブルーチンからのリターン命令がデコードされた
ときにアクティブになる信号である。106はデコーダ
からの2本の信号104.105により制御され、本発
明を実施しているマイクロ・アドレス制御部、107は
制御記憶101へのマイクロ・アドレスを保持するハー
ドウェア・スタックで4本のレジスタからなるレジスタ
群で、その内容はCLKI同期で変化し、それぞれMA
RO,MARI、MAR2゜MAAs2呼ぶ。120は
レジスタ群(スタック)107とは別に本発明で新たに
設けられた5番目のマイクロ・アドレス・レジスタでそ
の内容はCLKI同期で変化し、MARTと呼ぶ。MA
RTは制御記憶101内に予じめ設けられたデバグ・ル
ーチンの先頭アドレスTをマイクロ・アドレスとして保
持しており、マイクロ・プロセッサ100全体のリセッ
ト信号202がアクティブになると、デバグ・ルーチン
の先頭アドレスTがMA几、Tに設定される。108は
レジスタ群107とMARTの5本のレジスタの中から
どのレジスタからの出力を選んで制御記憶101べのア
ドレスとして出力するかをCLKI同期で決定するセレ
クタで、109はセレクタ108から出力されたアドレ
スを制御記憶に供給するアドレス信号路である。
110はマイクロ・アドレス制御部106から出力され
るレジスタ群107への4本のストローブ信号とMAR
Tへの1本の合計5本のストローブ信号で、どのアドレ
ス・レジスタにたいしてストローブを発生するかを制御
する。このストローブ信号はCLKIのハイ期間と同じ
期間だけアクティブになる。111はセレクタ108へ
の制御信号で、CLK1同期である。112は制御記憶
101にたいして出力されたCLKI同期のマイクロ・
アドレスを信号路109から入力して1だけインクリメ
ントし、CLK2同期で出力する加算器、113は加算
器112からの出力信号路である。114はレジスタ群
107の入力セレクタで、加算器112からの出力信号
113、その他のC1,に2同期の信号115を入力と
し、デコーダ103からのCLK2同期の制御信号11
6によって入力信号の中から1系統をCLK2同期で選
んで信号路117に出力する。121は本発明によプ新
たに設けられたレジスタでレジスタ群(スタック)10
70レベルを指定する。122はレジスタ121にデー
タを書込む信号路、123はレジスタ121からの出力
信号路、124はトラップを行なうか否かの動作を規定
する制御信号路である。
本実施例では122,124はマイクロ・プロセッサ1
00の外部端子から直接マイクロ・プロセッサ100の
内部に入力する。
第2図はマイクロ・アドレス制御部106の内部の構造
と前記スタックのレベルを指定するレジスタ121との
接続関係を示す図である。201はアップ・ダウン・カ
ウンタで、前記レジスタ群(スタック)107のいずれ
かをレベルとして選択する信号を出力するためのもので
あシ、マイクロ・プロセッサ100全体のシステムリセ
ット信号202がアクティブになるとOにクリアされる
レジスタ群107には4本レジスタがあるのでカウンタ
201は2ビット幅である。203はカウンタ201の
出力信号路である。206はデコーダで、信号203,
105を入力して、第10図に示すパターンに従ってデ
コードし、セレクタ108への制御信号207とレジス
タ群107とMARTへのストローブ信号110を生成
する。
制御信号207はラッチ208によficLK1同期に
して出力セレクタ108への制御信号111とする。2
11は本発明により新たに設けられた比較器で、カウン
タ201の出力であるレジスタ群(スタック)107を
選択する信号203をラッチ210で1クロツク遅延さ
せた信号と前記レジスタ121の出力であるレベル指定
信号123とを入力とし、2者の一致を検出すると出力
信号212をアクティブにする。213はトラップ用フ
リップ・フロップで、デコーダ103においてサブルー
チンからのリターン命令がデコードされたことを示す信
号105がアクティブになる度にその立上がシエツヂで
比較器211の出力信号212の状態を記憶する。また
フリップ・フロップ213は前記リセット信号202で
クリアされる。214はフリップ・7リツプ213の出
力信号で、論理積ゲート215と論理否定ゲート216
とに入力される。論理積ゲート215はフリップ・フロ
ップ213の出力信号214と前記制御信号124とを
入力として両者の論理積をとってデコーダ206にたい
して出力する。フリップ・70ツブ213の出力信号2
14は論理否定ゲート216により反転され、ラッチ2
17によって1クロツク遅延され、信号路218を介し
て論理積ゲート219に入力される。論理積ゲート21
9は、論理否定ゲート216により反転されラッチ21
7によって1クロツク遅延されたトラップ用フリップ・
フロップ213の出力信号と、デコーダ103において
リターン命令がデコードされたことを示す信号105と
CLK2信号220とを入力とし、3者の論理積をとっ
てカウンタ201のカウント・ダウンを制御する。22
1は論理積ゲート219の出力信号である。222は論
理積ゲートで、デコーダ103においてサブルーチン・
コール命令がデコードされたことを示す信号104とC
LK2信号220とを入力とし、両者の論理積をとって
カウンタ201のカウント・アップを制御する。カウン
タ201は論理積ゲート222の出力がアクティブにな
る度にその立上がシエッヂで1ずつカウント、・アップ
し、論理積ゲート219の出力221がアクティブにな
る度にその立上がシエッヂで1ずろカウント・ダウンす
る。
第1図、第2図、第3図、第10図を用いて本発明によ
るマイクロ・プログラムにたいするデバグの方法を説明
する。本発明によるマイクロ・プログラムにたいするデ
バグの方法は、マイクロ・プログラムの論理的−まとま
りであるサブルーチン単位でトラップを発生させるもの
である。つまりデパグの目標のサブルーチンがすブルー
チン・コール命令によって呼出され、該サブルーチンで
の処理が終了してリターン命令によってもとの処理系に
復帰するときにトラップを発生させて、マイクロ・プロ
グラム・レベルのデバグ・ルーチンを起動し、該デバグ
・ルーチンでの処理が終了すると、目標のサブルーチン
を呼出した処理系に復帰する。
第3図は本発明を説明するタイミング・チャートである
。デパグを行なわないときには、信号124をインアク
ティブに保っておく。デバグを行なう時には、信号12
4をアクティブにし、目標のサブルーチンがレジスタ群
107のなかのどのレジスタを使用するかをレジスタ1
21に書込んでおく。たとえば目標のすブルーチンがM
ARlを使用するときにはレジスタ121にレベル「1
」を書込んでおく。MARIを使用する目標のサブルー
チンはマイクロ・アドレスPK6りたコール命令によっ
て呼出されたものとする。したがってMAROには該サ
ブルーチンからのリターン・アドレスとしてP+1が保
持されている。またフリップ・フロップ213は0を出
力しておシ、シたがって信号218はアクティブである
とする。
第3図にあるようにMARlを使用する目標のサブルー
チンがコール命令によって呼出されて処理が始ると、カ
ウンタ201がカウント・アップされて1を出力するの
で、該サブルーチンからの復帰のためのリターン命令が
実行される直前では比較器211ではレジスタ121の
内容とカラyり201の出力のラッチ210により1ク
ロック遅延された信号とが一致していることになる。カ
ウンタ201の出力はラッチ210により1クロック遅
れて比較器211に入力されるので、該サブルーチンか
らの復帰のためのリターン命令がデコーダ103でデコ
ードされて信号105がアクティブになっている期間ま
で、比較器211の出力信号212はアクティブになっ
ている。
MARlを使用する目標のサブルーチンでの処理が終了
し、アドレスNにあるリターン命令を実行する時、つま
シデコーダ103が制御記憶101のアドレスNにある
リターン命令をデコードすると信号105がアクティブ
になる。信号105の立上がクエッヂにおいてまずフリ
ップ・フロップ213に前記アクティブになっていた比
較器211の出力信号212が記憶される。したがって
信号214がアクティブになるが、信号214の変化は
ラッチ217によって1クロツク遅延されるので、信号
218はアクティブのままであfi、CLK2同期の信
号1050立上がシエッヂおよびCLK2の立上が)エ
ッヂによりカウンタ201がカウント・ダウンされてカ
ウンタ201はOを出力する。前述のようにカウンタ2
01の出力の変化もラッチ210によって1クロツク遅
延されるので、信号105の立上がシエッヂにおいて比
較器211では信号105の立上がシエッヂのlクロッ
ク前のカウンタ201の出力とレジスタ121の内容が
比較されている。1クロツク遅延のためのラッチ210
はリターン命令が実行されたときにレジスタ群107の
どのレジスタを使用しているときのりターン命令であっ
たかを示しておシ、トラップを発生させるべき目標のサ
ブルーチンのリターン命令であったか否かを判別するた
めに必要である。CLK2同期の信号105の立上がシ
ェッヂからの1クロツクの間、信号105がアクティブ
、ターンに従って出力セレクタ108にたいしてMAR
Tの内容を制御記憶101に出力させる制御信号を生成
する。従ってアドレス信号路109にはセレクタ108
からデバグ・ルーチンの先頭アドレスTが出力されて制
御記憶101に入力される。つまシデコーダ206は信
号105がアクティブ、論理積ゲート215がアクティ
ブであることで目標のサブルーチンの実行が終了したこ
とを検出し、カウンタ201が0を示している(MAR
,Qを指す)にも拘らず、出力セレクタ108にたいし
てMARTの内容(デバグ・ルーチンの先頭アドレスT
)を制御記憶101に出力させることによりトラップを
起こして、デバグ・ルーチンを起動する。
制御記憶101のアドレ;、Nにあるリターン命令によ
るC 1.、 K 2同期の信号105の降下エッヂ後
は、比較器211にはカウンタ201が0になったこと
が1クロック遅れで伝達されるので比較器211の出力
信号212がインアクティブになプ、次に信号105が
アクティブになったとき、すなわちデバグ・ルーチンで
リターンが実行されたときに7リツプ・70ツブ213
に信号212がインアクティブであることが保持される
。また論理積ゲート219には7リツプ・フロップ21
3が1になっていたことが1クロック遅れで伝達され、
信号路218はインアクティブになる。デコーダ206
は信号105がインアクティブになっても論理積ゲート
215からアクティブな信号が入力されている間、第1
0図に従ってカウンタ201の出力に拘らず出力セレク
タ108にたいしてMARTの内容を制御記憶101に
出力させる制御信号111と、信号路109に出力され
たMAILTの内容を加算器112によってインクリメ
ントした値を再びMARTに保持させるためのMART
へのストローブ信号110を生成する。
つまシ論理積ゲート215からアクティブな信号がデコ
ーダ206に入力されている間、MARTの内容が1ず
つインクリメントされながらアドレスとして制御記憶1
01にたいして出力され、デパグ・ルーチンによる処理
が続けられる。
デバグ・ルーチンで制御記憶101のアドレスT+1に
あるリターン命令が実行されたとき、すなわちデコーダ
103で制御記憶101のアドレスT+1にあるリター
ン命令がデコードされると、信号105がアクティブに
なる。信号105の立上がシエッヂにおいてまずフリッ
プ・フロップ213に前記インアクティブになっていた
比較器211の出力信号212が記憶される。したがっ
て信号214がインアクティブになるが、信号214の
変化はラッチ217によって1クロツク遅延されるので
、信号218はインアクティブのままである。論理積ゲ
ー)219において信号105の立上がシエッヂおよび
CLK2の立上がシエッヂはインアクティブな信号21
8によってマスクされるので、カウンタ201はカウン
ト・ダウンされない。本例ではOを出力したままである
。1クロツク遅延のためのラッチ217はデバグ・ルー
チンからの復帰のときにカウンタ201をカウント・ダ
ウンすることを防ぐために必要である。前述のようにカ
ウンタ201の出力の変化もラッチ210によって1ク
ロツク遅延されるので、アドレスj+1のリターン命令
による信号105の立上がシェッヂにおいて比較器21
1では信号105の立上がシェッヂの1クロツク前のカ
ウンタ201の出力とレジスタ121の内容が比較され
ている。アドレスT+1のリターン命令によるCLK2
同期のi号105の立上がシェッヂからの1クロツクの
間、信号105がアクティブ、カウンタ201が0、論
理積ゲート215がインアクティブとなるので、デコー
ダ206は第10図のパターンに従って出力セレクタ1
08にたいしてMAR0の内容を制御記憶101に出力
させる制御信号を生成する。従ってアドレス信号路10
9にはMAROに保持されていたアドレスP+1がセレ
クタ108から出力されて制御記憶101に入力される
。つまシデコーダ206はアドレスT+1のリターン命
令による信号105がアクティブで、論理積ゲート21
5がインアクティブであることによりブバグ・ルーチン
の実行が終了したことを検出して再びトラップを起こし
、カウンタ201の値に従って出力セレクタ108にた
いして、該トラップが発生しなければアドレスNにあっ
たリターン命令により本来復帰すべきアドレスP+1を
保持しているMAROの内容をデバグ・ルーチンからの
復帰アドレスとして制御記憶101に出力させることに
より、デパグ・ルーチンからの復帰を行なう。
本発明を実施する際に作成するマイクロ・プログラムの
デバグ・ルーチンは、たとえばマイクロ・プロセッサ1
00内のマイクロ・プログラムによって読むことのでき
るレジスタ等の資源の内容t−マイクロ・プロセッサ1
00の外部メモリの特定のアドレスに書き出すようなプ
ログラムが考えられる。
また本発明によるデバグの方法を簡単に説明する。ここ
ではマイクロ・プロセッサ100はブリフェッチをおこ
なわず、1マクロ命令の実行、つま#)1マイクロ・プ
ロシージャの実行が終了してから次のマクロ命令の7エ
ツチが行なわれるものとする。デバグを行なうときには
マイクロ・プログラムのリストとマクロ命令のリストを
使用する。
目標とするマイクロ・サブルーチンを含むマクロ命令が
マイクロ・プロセッサ100の外部メモリのどのアドレ
スにあるかを調べ、たとえばマイクロ・プロセッサ10
0の外部でアドレス・トラップ法により該マクロ命令を
フェッチするときに本発明によ勺新たに設けられた端子
124をアクティブにするような外部付加回路を設ける
。また該マクロ命令(てたいするマイクロ・プロシージ
ャにおいて目標とするマイクロ・サブルーチンが使用す
るマイクロ・アドレス・スタックのレベルを予想して、
前述のように本発明により新たに設けられた端子122
Ki&マイクロ・アドレス・スタックのレベルを示す情
報を入力する。以上の準備の後マイクロ・プロセッサ1
00をリセットしてマクロ・レベルのプログラムを実行
すると、前述のように目標とするマイクロ・すブルーチ
ンからのリターン命令実行時にトラップが発生し、マイ
クロ・プログラムのデバグ・ルーチンが起動されてマイ
クロ・プロセッサ100内部のレジスタ等の資源の内容
をマイクロ・プロセッサ100の外部メモリの特定のア
ドレスに書き出される。該外部メそりの特定のアドレス
の内容を検討することによりブバグを行なう。
第4図、第5図、第6図は本発明の第2の実施例を示す
ブロック図および波形図である。
第4図において第1図との相違点は402,403゜4
06.430,431,432である。402は制御記
憶101からの出力とマイクロ・アドレス制御部406
からの出力信号の1つの431とを入力とし、該入力を
1.5クロツク遅延させるだめのラッチ、432は信号
431がラッチ402によって1.5クロツク遅延させ
られた信号、403はラッチ402によって1.5クロ
ツク遅延させられた制御記憶101からの出力と信号4
32とを入力してデコードするマイクロ命令デコーダで
ある。
デコーダ403では、サブルーチンからのリターン・マ
イクロ命令のデコードの際に信号432がインアクティ
ブであるときには信号105をアクティブ、信号430
をインアクティブにし、信号432がアクティブである
ときには信号105をインアクティブ、信号430をア
クティブにする。
第5図はマイクロ・アドレス制御部406の内部色レジ
スタ121ルジスタ121への書込み信号路122、レ
ジスタ121の出力信号路123との接続関係を示して
いる。第5図において第2図との相違点は520,52
1,522,523,530゜531.430,431
である。520は論理積ゲートで信号105およびCL
K2(信号220)を入力とし信号521を出力してカ
ウンタ202のカウント・ダウンを制御する。522は
論理積ゲートで信号104およびCLK2(信号220
)を入力とし信号523を出力してカウンタ202のカ
ウント・アップを制御する。530は信号105および
信号430を入力とする論理和ゲートで、フリップ・フ
ロップ213のストローブ信号531を生成する。
第6図は本発明を説明するタイミング・チャートである
。デバグを行なわないときには、信号124をインアク
ティブに保っておく。デバグを行なう時には、信号12
4をアクティブにし、目標のサブルーチンがレジスタ群
107のなかのどのレジスタを使用するかをレジスタ1
21に書込んでおく。たとえば目標のすブルーチンがM
ARlを使用するときKはレジスタ121に1を書込ン
テオく。MARlを使用する目標のサブルーチンはマイ
クロ・アドレスPにあったコール命令によって呼出され
たものとする。したがってMAROには該サブルーチン
からのリターン・アドレスとしてP+1が保持されてい
る。また7リツプ・フロップ213は0を出力しておシ
、シたがって論理積ゲート215の出力信号431はイ
ンアクティブであるとする。
第6図にあるようにMARlを使用する目標のサブルー
チンがコール命令によって呼出されて処理が始ると、カ
ウンタ201がカウント・アップされてlを出力するの
で、該サブルーチンからの復帰のためのリターン命令が
実行される直前では比較器211ではレジスタ121の
内容(1)とカウンタ201の出力信号203のラッチ
210によ)1クロツク遅延された信号とが一致してい
ることになる。従って制御記憶101のアドレスNにあ
る該サブルーチンからの復帰のためのリターン命令がデ
コーダ103でデコードされる期間まで、比較器211
の出力信号212はアクティブになっているが、ストロ
ーブ信号531がアクティブになるまではフリップ・7
0ツブ213の出力信号214はインアクティブである
ので、論理積ゲート21の出力431はインアクティブ
である。
MARIを使用する目標のサブルーチンでの処理が終了
し、アドレスNにある該サブルーチンからの復帰のため
のリターン命令コードがラッチ402人力される時に同
時に該ラッチ402にはインアクティブの信号431が
入力され、1.5クロツク遅延されてデコーダ403に
入力される。
したがって、デコーダ403が制御記憶101のアドレ
スNにあるリターン命令をデコードすると信号105が
アクティブになシ信号430はインアクティブのままで
ある。信号105の立上がシエッヂにおいて論理和ゲー
ト530を介して、まずフリップ・フロップ213に前
記アクティブになっていた比較器211の出力信号21
2が記憶されて信号214がアクティブになる。同時に
CLK2同期の信号105の立上がシエッヂおよびCL
K2の立上がシエッヂが論理積ゲー)520に入力され
てカウンタ201がカウント・ダウンされ、カウンタ2
01は0を出力する。前述のようにカウンタ201の出
力信号203の変化はラッチ210によって1クロツク
遅延されるので、信号1050立上が)エッヂにおいて
比較器211では信号105の立上がシエッヂの1クロ
ツク前のカウンタ201の出力とレジスタ121の内容
が比較されている。1クロツク遅延のためのラッチ21
0はリターン命令が実行されたときにレジスタ群107
のどのレジスタを使用しているときのリターン命令であ
ったかを示しておシ、トラップを発生させるべき目標の
サブルーチンのリターン命令であったか否かを判別する
ために必要である。CLK2同期の信号105の立上が
シエッヂからの1クロツクの間、信号105がアクティ
ブ、カウンタ201がO1論理積ゲート215の出力信
号431がアクティブとなるので、デコーダ206は第
10図のパターンに従って出力セレクタ108にたいし
てMAR,Tの内容を制御記憶101に出力させる制御
信号を生成する。従ってアドレス信号路109にはセレ
クタ108からデパグ・ルーチンの先頭アドレスTが出
力されて制御記憶101に入力される。つま9デコーダ
206は信号105がアクティブ、論理積ゲート215
の出力信号431がアクティブであることで目標のサブ
ルーチンの実行が終了したことを検出し、カウンタ20
1が0を示している(MARQを指す)にも拘らず、出
力セレクタ108にたいしてMARTの内容(デバグ・
ルーチンの先頭アドレスT)を制御記憶101に出力さ
せることによりトラップを起こして、デバグ・ルーチン
を起動する。
制御記憶101のアドレスNにあるリターン命令による
CLK2同期の信号105の降下エッヂ後は、比較器2
11にはカウンタ201が0になったことが1クロック
遅れで伝達されるので比較器211の出力信号212が
インアクティブになるが、次にストローブ信号531が
アクティブになるまでは信号214がアクティブ従って
論理積ゲート215の出力信号431がアクティブのま
まである。デコーダ206は信号105がインアクティ
ブになっても論理積ゲート21−5の出力信号431が
アクティブである間、第10図に従ってカウンタ201
の出力に拘らず出力セレクタ108にたいしてMART
の内容を制御記憶101に出力させる制御信号111と
、信号路109に出力されたMARTの内容を加算器1
12によってインクリメントした値を再びMARTに保
持させるためのMAR,Tへのストローブ信号110e
生成する。つまシ論理積ゲート215の出力信号431
がアクティブである間、MARTの内容が1ずつインク
リメントされながらアドレスとして制御記憶101にた
いして出力され、デバグ・ルーチンによる処理が続けら
れる。
デパグ・ルーチンでの処理が終了し、アドレスT+IK
ある該デバグ・ルーチンからの復帰のためのリターン命
令コードがラッチ402人力される前に同時に該ラッチ
402にはアクティブの信号431が入力され、1.5
クロツク遅延されてデコーダ103に入力される。した
がって、デコーダ403が制御記憶101のアドレスT
+1にあるリターン命令をデコードすると信号105が
インアクティブで信号430がアクティブになる。
信号430の立上がシエッヂにおいてまずフリップ・フ
ロップ213に前記インアクティブになっていた比較器
211の出力信号212が記憶されて信号214がイン
アクティブになる。このとき信号j04,105はイン
アクティブであるのでカウンタ201は変化しない。前
述のようにカウンタ201の出力の変化もラッチ210
によって1クロツク遅延されるので、アドレスT+1の
リターン命令による信号430の立上がシエツヂにおい
て比較器211では信号430の立上がシエッヂの1ク
ロツク前のカウンタ201の出力信号203 (0)と
レジスタ121の内容(1)が比較されている。アドレ
スT+1のリターン命令によるCLK2同期の信号43
0の立上がシエッヂからの1クロツクの間、信号105
がインアクティブ、信号430がアクティブ、カウンタ
201が0、論理積ゲート215の出力信号431がイ
ンアクティブとなるので、デコーダ206は第1θ図の
パターンに従って出力セレクタ108にたいしてMAR
Oの内容を制御記憶101に出力させる制御信号を生成
する。従ってアドレス信号路109にはMARQに保持
されていたアドレスP+1がセレクタ108から出力さ
れて制御記憶101に入力される。つマクアドレスT+
1のリターン命令コードと論理積ゲート215のアクテ
ィブな出力信号431がラッチ402に入力されてデコ
ーダ403でデコードされたときに、デバグ・ルーチン
の実行が終了したことが検出され再びトラップが発生し
、カウンタ201の値(0)に従って出力セレクタ10
8にたいして、該トラップが発生しなければアドレスN
に6ったリターン命令により本来復帰すべきアドレスP
+1を保持しているMAROの内容をデバグ・ルーチン
からの復帰アドレスとして制御記憶101に出力させる
ことにより、デバグ・ルーチンからの復帰を行なう。
〔発明の効果〕
以上説明したように本発明は、マイクロ・アドレスを直
接監視するのではなく、マイクロ・アドレス・スタック
の動作を監視してマイクロ・プログラムの論理的な−ま
とまルであるサブルーチンからの復帰時にトラップを発
生することにより、トラップ発生のためのハードウェア
の増加を最小限に抑えて、かつ効果的なデバグを行なう
ことができるという効果がある。
【図面の簡単な説明】
第1図は本発明の第1の実施例を示すブロック図、第2
図は第1図のマイクロ・アドレス制御部106およびレ
ジスタ121の詳細を示すブロック図、第3図は第1図
、第2図の谷部波形を示すタイミングチャート、第4図
は本発明の第2の実施例を示すブロック図、第5図は第
4図のマイクロ・アドレス制御部406およびレジスタ
121の詳細を示すブロック図、第6図は第4図、第5
図の谷部波形を示すタイミングチャート、第7図。 第8図は従来例を示すブロック図、第9図は第7図、第
8図の各部波形を示すタイミングチャート、第10図、
第11図は各部論理値を示す図である。 100・・・・・・本発明を実施しているマイクロ・プ
ロセッサ、101−・・・・・制御記憶、102・・・
・・・1.5クロツク遅延のためのラッチ、103・・
・・・・マイクロ命令デコーダ、104・・・・・・サ
ブルーチン・コール命令がデコードされた時アクティブ
になる信号、105・・・・・・サブルーチンからのリ
ターン命令がデコードされた時アクティブになる信号、
106・・・・・・マイクロ・アドレス制御部、107
・・・・・・マイクロ・アドレス・レジスタL108・
・・・・・マイクロ・アドレス出力セレクタ、109・
・・・・・マイクロ・アドレス信号路、110・・・・
・・マイクロ・アドレス・レジスタ群107へのストロ
ーブ信号、111・・・・・・マイクロ・アドレス出力
セレクタ108への制御信号、112・・・・・・マイ
クロ・アドレスのインクリメント用加算器、113・・
・・・・加算器112の出力信号路、114・・・・・
・マイクロ・アドレス入力セレクタ、115・・・・・
・マイクロ・アドレス入力セレクタ114への入力信号
、116・・・・・・マイクロ・アドレス入力セレクタ
114への制御信号、117・・・・・・マイクロ・ア
ドレス入力セレクタ114からの出力信号、120・・
・・・・新たに設けられたマイクロ・アドレス・レジス
タ(MART)、121・・・・・・新たに設けられた
レジスタ、122・・・・・・レジスタ121への入力
信号路、123・・・・・・レジスタ121からの出力
信号路、124・・・・・・トラップを行なうか否かを
規定する新たに設けられた制御信号路、201・・・・
・・アップ・ダウン・カウンタ、202・・・・・・マ
イクロ・プロセッサ100全体のリセット信号、203
・・・・・・アップ9ダウン・カウンタ201の出力信
号、206・・・・・・デコーダ、207・・・・・・
デコーダ206の出力信号のなかの1系統でセレクタ1
08の制御信号となるべき信号、208・・・・・・C
LK2同期の入力信号をCL、Kl同期にして出力する
0、5クロツク遅延のためのラッチ、211・・・・・
・新たに設けられた比較器、212・・・・・・比較器
211の出力信号路、213・・・・・・新たに設けら
れたトラップ用フリップ・フロップ、214・・・・・
・フリップ・フロップ213の出力信号路、215・・
・・・・新たに新けられた論理積グー)、216・・・
・・・新たに設けられた論理否定グー)、217・・・
・・・新たに設けられたlクロック遅延のためのラッチ
、218・・・・・・ラッチ217の出力信号路、21
9・・・・・・新たに設けられた論理積ゲート、220
・・・・・・CLK2信号、221・・・・・・論理積
ゲート219の出力信号路、222・・・・・・新たに
設けられた論理積グー)、402・・・・・・1.5ク
ロツク遅延のためのラッチ、403・・・・・・マイク
ロ命令デコーダ、406・・・・・・マイクロ・アドレ
ス制御部、430・・・・・・マイクロ命令デコーダで
信号432が1でかつサブルーチンからの復帰マイクロ
命令がデコードされたときにアクティブになる信号、4
31・・・・・・マイクロ・アドレス制御部406から
の出力信号、432・・・・・・ラッチ402で1.5
クロツク遅延された信号431.520・・・・・・論
理積ゲート、521・・・・・・論理積ゲート520の
出力信号、522・・・・・・論理積ゲート、523・
・・・・・論理積ゲート521の出力信号、530・・
・・・・論理和ゲート、531・・・・・・論理和ゲー
ト530の出力信号、700・・・・・・マイクロ・プ
ロセッサ、701・・・・・・制御記憶、702・・・
・・・1.5クロツク遅延のためのラッチ、703・・
・・・・マイクロ命令デコーダ、704・・・・・・サ
ブルーチン・コール命令がデコードされた時アクティブ
になる信号、705・・・・・・サブルーチンからのリ
ターン命令がデコードされた時アクティブになる信号、
706・・・・・・マイクロ・アドレス制御部、707
・・・・・・マイクロ・アドレス・レジスタ群、708
・・・・・・マイクロ・アドレス出力セレクタ、709
・・・・・−マイクロ・アドレス信号路、710・・・
・・・マイクロ・アドレス・レジスタへのストローブ信
号、711・・・・・・マイクロ・アドレス出力セレク
タへの制御信号、712・・・・・・マイクロ・アドレ
スのインクリメント用加算器、713・・・・・・加算
器の出力信号路、714・・・・・・マイクロ・アドレ
ス入力セレクタ、715・・・・・・マイクロ・アドレ
ス入力セレクタへの入力信号、716・・・・・・マイ
クロ・アドレス入力セレクタへの制御信号、717・・
・・・・マイクロ・アドレス入力セレクタからの出力信
号、801・・・・・・アップ・ダウン・カウンタ、8
02・・・・・・マイクロ・プロセッサ700全体のリ
セット信号、803・・・・・・アップ・ダウン・カウ
ンタ801の出力信号、806・・・・・・デコーダ、
807・・・・・・デコーダ806の出力信号のなかの
1系統、808・・・・・・CLK2同期の入力信号を
CLKI同期にして出力する0、5クロツク遅延のため
のラッチ。 代理人 弁理士  内 原   音 (≧            −一 \           \ \          \

Claims (1)

    【特許請求の範囲】
  1. マイクロ・プログラムのサブルーチンの呼出し後該サブ
    ルーチンを呼出したルーチンへの復帰の際に必要なマイ
    クロ・アドレスを一時的に退避するハードウェア・スタ
    ックを用いているマイクロ・プロセッサにおけるマイク
    ロ・プログラム制御方式において、該スタックの任意の
    レベルを指定するレベル指定手段と、該レベル指定手段
    の内容と前記スタックのレベルとを比較する手段と、予
    め定められたマイクロ・アドレスを格納しており前記ス
    タックとは独立したレジスタ手段とを有し、前記サブル
    ーチンからの復帰マイクロ命令によって該サブルーチン
    を呼出したルーチンへの復帰の際に、前記比較手段によ
    り前記レベル指定手段で指定されたレベルのスタックを
    使用しているサブルーチンからの復帰であることが検出
    されたときに、該復帰によって元来使用される前記スタ
    ックのトップに格納されているマイクロ・アドレス値を
    使用するかわりに、前記レジスタ手段に格納されている
    予め定められたマイクロ・アドレスを使用することによ
    ってマイクロ・アドレスを変更して制御記憶内の予じめ
    定めた処理ルーチンへ制御を移すことを特徴とするマイ
    クロ・プログラム制御方式。
JP62260218A 1987-10-14 1987-10-14 マイクロ・プログラム制御方式 Expired - Lifetime JPH0750444B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62260218A JPH0750444B2 (ja) 1987-10-14 1987-10-14 マイクロ・プログラム制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62260218A JPH0750444B2 (ja) 1987-10-14 1987-10-14 マイクロ・プログラム制御方式

Publications (2)

Publication Number Publication Date
JPH01102653A true JPH01102653A (ja) 1989-04-20
JPH0750444B2 JPH0750444B2 (ja) 1995-05-31

Family

ID=17344989

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62260218A Expired - Lifetime JPH0750444B2 (ja) 1987-10-14 1987-10-14 マイクロ・プログラム制御方式

Country Status (1)

Country Link
JP (1) JPH0750444B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5534745A (en) * 1978-09-04 1980-03-11 Hitachi Ltd Microprogram tracer
JPS5552152A (en) * 1978-10-13 1980-04-16 Hitachi Ltd Control system for program address
JPS59123052A (ja) * 1982-12-29 1984-07-16 Fuji Electric Co Ltd 実行トレ−ス方式

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5534745A (en) * 1978-09-04 1980-03-11 Hitachi Ltd Microprogram tracer
JPS5552152A (en) * 1978-10-13 1980-04-16 Hitachi Ltd Control system for program address
JPS59123052A (ja) * 1982-12-29 1984-07-16 Fuji Electric Co Ltd 実行トレ−ス方式

Also Published As

Publication number Publication date
JPH0750444B2 (ja) 1995-05-31

Similar Documents

Publication Publication Date Title
JP2655615B2 (ja) 情報処理装置
JPH08212100A (ja) シングルチップマイクロコンピュータのエミュレーションチップ
US5758059A (en) In-circuit emulator in which abrupt and deferred arming and disarming of several events on a microprocessor chip are controlled using a single-input pin
JPH0728670A (ja) 情報処理装置
US20090254691A1 (en) Microcontroller waveform generation
JPH01102653A (ja) マイクロ・プログラム制御方式
JP2770420B2 (ja) マイクロプログラム制御方式
JPS6315628B2 (ja)
JPS60124746A (ja) デ−タ処理装置
JP2758624B2 (ja) マイクロプログラムの調速方式
KR100284287B1 (ko) 가변 리셋 어드레스를 가지는 마이크로프로세서
JPS5916054A (ja) マイクロ・プロセツサ
SU1168937A1 (ru) Микропрограммное устройство управлени и отладки микропрограмм процессора
JP2712730B2 (ja) エバリュエーションチップ
JP2844624B2 (ja) データ処理装置
JP3001526B1 (ja) 割り込み処理回路及び割り込みデバッグ方法
JPH0561660B2 (ja)
KR930009798B1 (ko) 숫자 연산 코프로세서의 리세트-레디 카운터회로
RU1786486C (ru) Устройство микропрограммного управлени
JPS60178524A (ja) 1チツプマイクロコンピユ−タ
JPH0365751A (ja) 多重プロセッサシステム
JPS62296236A (ja) マイクロプロセツサの割り込み処理装置
JPS6148189B2 (ja)
JPS6269352A (ja) マイクロプロセツサ
JPH04162150A (ja) ウォッチドッグタイマ制御回路