JPS61202234A - アドレス制御回路 - Google Patents
アドレス制御回路Info
- Publication number
- JPS61202234A JPS61202234A JP60044136A JP4413685A JPS61202234A JP S61202234 A JPS61202234 A JP S61202234A JP 60044136 A JP60044136 A JP 60044136A JP 4413685 A JP4413685 A JP 4413685A JP S61202234 A JPS61202234 A JP S61202234A
- Authority
- JP
- Japan
- Prior art keywords
- signal
- stack
- push
- circuit
- address
- 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.)
- Pending
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔概要〕
一重のスタックを持つプロセッサにおいて、外部環境の
変動等により、スタックレジスタの内容が書き換わって
、無限ループ状態に陥っても、プッシュ信号の状態を監
視することにより、自動的にその状態から脱出すること
ができるアドレス制御回路を開示している。
変動等により、スタックレジスタの内容が書き換わって
、無限ループ状態に陥っても、プッシュ信号の状態を監
視することにより、自動的にその状態から脱出すること
ができるアドレス制御回路を開示している。
本発明は1例えば音声信号処理を行うようなディジタル
信号処理装置等のマイクロプロセッサにおけるアドレス
制御回路であって、−重のスタックを持ち、該スタック
にサブルーチンからのり夕 。
信号処理装置等のマイクロプロセッサにおけるアドレス
制御回路であって、−重のスタックを持ち、該スタック
にサブルーチンからのり夕 。
−ン・アドレスを設定するアドレス制御回路に関するも
のである。
のである。
第5図は従来のアドレス制御回路の例、第6図は従来方
式の問題点説明図を示す。
式の問題点説明図を示す。
例えば、ディジタル信号処理装置(DSP)等の比較的
簡単なアドレス制御を行うマイクロプロセッサのアドレ
ス制御回路は、第5図図示のようになっている。
簡単なアドレス制御を行うマイクロプロセッサのアドレ
ス制御回路は、第5図図示のようになっている。
第5図において、1はアドレスバス、2は命令コードが
読み出される命令バス、3は次に実行される命令コード
のアドレスを保持するプログラムカウンタレジスタ、4
は次のアドレスを生成するための+1加算器、5はアド
レスを選択するアドレス選択回路、6はいわゆるジャン
プサブルーチン(J S R)命令によってサブルーチ
ンからのリターン・アドレスが退避されるスタックレジ
スタ。
読み出される命令バス、3は次に実行される命令コード
のアドレスを保持するプログラムカウンタレジスタ、4
は次のアドレスを生成するための+1加算器、5はアド
レスを選択するアドレス選択回路、6はいわゆるジャン
プサブルーチン(J S R)命令によってサブルーチ
ンからのリターン・アドレスが退避されるスタックレジ
スタ。
7は命令コードをデコードし、アドレス選択回路5に対
する制御信号を出力する命令デコーダを表す。
する制御信号を出力する命令デコーダを表す。
プログラムカウンタレジスタ3は、クロック信号PCK
により、フェッチする命令のアドレスを出力する。+1
加算器4は、そのアドレスに1を加算して出力する回路
である。通常の命令では。
により、フェッチする命令のアドレスを出力する。+1
加算器4は、そのアドレスに1を加算して出力する回路
である。通常の命令では。
命令デコーダ7によって、アドレスをセレクトする制御
信号aが出力され、アドレス選択回路5は。
信号aが出力され、アドレス選択回路5は。
+1加算器4の出力を選択して、プログラムカウンタレ
ジスタ3に逐次セ・ツ卜する。
ジスタ3に逐次セ・ツ卜する。
例えば、命令が2サイクル以上かかる命令であって、ア
ドレスの歩進を行わない場合には、制御信号すによって
、プログラムカウンタレジスタ3の内容が、そのままプ
ログラムカウンタレジスタ3に再設定される。
ドレスの歩進を行わない場合には、制御信号すによって
、プログラムカウンタレジスタ3の内容が、そのままプ
ログラムカウンタレジスタ3に再設定される。
実行命令が、いわゆるサブルーチンをコールするJSR
命令である場合には、命令デコーダ7の出力するプッシ
ュ信号PUSHにより、プログラムカウンタレジスタ3
の内容が、スタックレジスタ6にセットされる。
命令である場合には、命令デコーダ7の出力するプッシ
ュ信号PUSHにより、プログラムカウンタレジスタ3
の内容が、スタックレジスタ6にセットされる。
実行命令が、サブルーチンからのリターン(RET)命
令である場合には、命令デコーダ7の出力であるスタッ
ク信号STKの制御信号Cによって、アドレス選択回路
5は、スタックレジスタ6の内容を選択し、プログラム
カウンタレジスタ3に送出する。
令である場合には、命令デコーダ7の出力であるスタッ
ク信号STKの制御信号Cによって、アドレス選択回路
5は、スタックレジスタ6の内容を選択し、プログラム
カウンタレジスタ3に送出する。
分岐命令等の場合には、アドレスセレクトの制御信号d
によって、命令バス2を介して供給される分岐先アドレ
スが、プログラムカウンタレジスタ3に送られる。
によって、命令バス2を介して供給される分岐先アドレ
スが、プログラムカウンタレジスタ3に送られる。
第6図は従来方式の問題点を説明するための。
ROM (続出し専用メモリ)8の内容を示している。
ROM8には、アドレスのθ番地からME番地まで、メ
インプログラムの命令コードが格納され。
インプログラムの命令コードが格納され。
アドレスのSS番地からSE番地まで、サブルーチンの
命令コードが格納されている。例えばメインプログラム
において、サブルーチンを呼び出すJSR命令が発行さ
れると、JSR命令の次のアドレスがスタックレジスタ
6にセットされ、サブルーチンに制御が移行される。サ
ブルーチンにおいて処理が終了し、メインプログラムに
復帰するRET命令が発行されると、スタックレジスタ
6からリターン・アドレスが読み出され、制御が戻され
る。
命令コードが格納されている。例えばメインプログラム
において、サブルーチンを呼び出すJSR命令が発行さ
れると、JSR命令の次のアドレスがスタックレジスタ
6にセットされ、サブルーチンに制御が移行される。サ
ブルーチンにおいて処理が終了し、メインプログラムに
復帰するRET命令が発行されると、スタックレジスタ
6からリターン・アドレスが読み出され、制御が戻され
る。
ところが2例えば電源の瞬断やノイズ等による外部環境
の変動によって、スタックレジスタ6の内容が書き換え
られてしまい、その内容がメインプログラム外のアドレ
ス、即ち、 (ME+1)番地〜SE番地になってし
まうと、サブルーチン内において発行されるRET命令
により、再びサブルーチンへ制御が移り、無限ループ状
態に陥ってしまうことになる。
の変動によって、スタックレジスタ6の内容が書き換え
られてしまい、その内容がメインプログラム外のアドレ
ス、即ち、 (ME+1)番地〜SE番地になってし
まうと、サブルーチン内において発行されるRET命令
により、再びサブルーチンへ制御が移り、無限ループ状
態に陥ってしまうことになる。
従来、このような場合1人間が障害を認知して。
リセット相等により、システムをリセットしない限り、
その無限ループから脱出できないという問題があった。
その無限ループから脱出できないという問題があった。
本発明は上記問題点の解決を図り、外部環境の変動等に
より、スタックレジスタの内容が壊れてしまっても、サ
ブルーチン内で暴走することなく。
より、スタックレジスタの内容が壊れてしまっても、サ
ブルーチン内で暴走することなく。
自動的にメインプログラムに制御が戻り、正常動作に即
座に復帰する手段を提供する。そのため。
座に復帰する手段を提供する。そのため。
本発明のアドレス制御回路は、第1図図示の如く。
−重のスタックによるプロセッサでは、サブルーチンジ
ャンプ時に出力されるべきプッシュ信号が出力されてい
ない状態において、スタック信号が出力されることはあ
り得ないことに着目し、スタック6からアドレスをフェ
ッチするスタック信号の出力を、スタック6へのプッシ
ュ状態によって抑止する暴走防止回路10を設け、これ
により。
ャンプ時に出力されるべきプッシュ信号が出力されてい
ない状態において、スタック信号が出力されることはあ
り得ないことに着目し、スタック6からアドレスをフェ
ッチするスタック信号の出力を、スタック6へのプッシ
ュ状態によって抑止する暴走防止回路10を設け、これ
により。
スタック6の内容がサブルーチン内を指していても、即
座に無限ループから脱出するようにしている。
座に無限ループから脱出するようにしている。
例えば第6図において、ノイズ等により、スタックの内
容が、 (ME+1)番地〜SE番地内のアドレスに
なってしまったとする。本発明の場合。
容が、 (ME+1)番地〜SE番地内のアドレスに
なってしまったとする。本発明の場合。
サブルーチン内でRET命令が発行されると、スタック
の保持するアドレスに制御を戻すと共に。
の保持するアドレスに制御を戻すと共に。
暴走防止回路10におけるプッシュに関する記憶情報を
解除する。スタック6は、 (ME+1)番地からS
E番地までのアドレスを持っていたので。
解除する。スタック6は、 (ME+1)番地からS
E番地までのアドレスを持っていたので。
再びサブルーチンが動作し、最終的に再度RET命令が
発行されることになる。このように続けて2回、RET
命令が発行されると 2回目以降ではプッシュに関する
記憶情報が解除されているので、RET命令によるスタ
ック6からのアドレスの取り出しは無視される。このと
き、アドレス選択回路5は、いずれの入力もセレクトし
ない。このため、プログラムカウンタの内容は「0」に
なる。メインプログラムのO番地に初期化処理を組込ん
でおくことにより、以後、メインプログラムが正常に動
作を再開させることになる。以下1図面を参照しつつ、
実施例に従って詳細に説明する。
発行されることになる。このように続けて2回、RET
命令が発行されると 2回目以降ではプッシュに関する
記憶情報が解除されているので、RET命令によるスタ
ック6からのアドレスの取り出しは無視される。このと
き、アドレス選択回路5は、いずれの入力もセレクトし
ない。このため、プログラムカウンタの内容は「0」に
なる。メインプログラムのO番地に初期化処理を組込ん
でおくことにより、以後、メインプログラムが正常に動
作を再開させることになる。以下1図面を参照しつつ、
実施例に従って詳細に説明する。
第2図は本発明の一実施例ブロック図、第3図は第2図
図示暴走防止回路の詳細図、第4図は本発明の一実施例
動作を説明するためのタイムチャートを示す。
図示暴走防止回路の詳細図、第4図は本発明の一実施例
動作を説明するためのタイムチャートを示す。
第2図において、符号1ないし8は第5図図示のものに
対応し、10は暴走防止回路、11はプッシュ信号出力
抑止回路、12はスタック信号出力抑止回路、13はプ
ッシュ記憶回路を表す。
対応し、10は暴走防止回路、11はプッシュ信号出力
抑止回路、12はスタック信号出力抑止回路、13はプ
ッシュ記憶回路を表す。
また、PCKはアドレス制御に関するクロック信号、R
ESはシステムのリセット信号、PUSHはジャンプサ
ブルーチン(JSR)命令のデコードによって出力され
るプッシュ信号、STKはリターン(RET)命令のデ
コードによって出力されるスタック信号、PUSH’
は実質的なプッシュ信号、STK’ は実質的なスタッ
ク信号を表している。
ESはシステムのリセット信号、PUSHはジャンプサ
ブルーチン(JSR)命令のデコードによって出力され
るプッシュ信号、STKはリターン(RET)命令のデ
コードによって出力されるスタック信号、PUSH’
は実質的なプッシュ信号、STK’ は実質的なスタッ
ク信号を表している。
プログラムカウンタレジスタ3.+1加算器4゜アドレ
ス選択回路5.スタックレジスタ6および命令デコーダ
7については、第5図において説明した従来のものと同
様でよいので、再度説明することを省略する。本発明の
場合、命令デコーダ7と、スタックレジスタ6およびア
ドレス選択回路5との間に、命令デコーダ7の出力する
プッシュ信号PUSHおよびスタック信号STKについ
て。
ス選択回路5.スタックレジスタ6および命令デコーダ
7については、第5図において説明した従来のものと同
様でよいので、再度説明することを省略する。本発明の
場合、命令デコーダ7と、スタックレジスタ6およびア
ドレス選択回路5との間に、命令デコーダ7の出力する
プッシュ信号PUSHおよびスタック信号STKについ
て。
エラーを検出して、その信号の出力を抑止する暴走防止
回路10が設けられる。
回路10が設けられる。
プッシュ信号出力抑止回路11は、JSR命令が続けて
2回以上発行されたときに、2回目以降のプッシュ信号
PUSHを無視する回路である。
2回以上発行されたときに、2回目以降のプッシュ信号
PUSHを無視する回路である。
なお通常、JSR命令が誤って続けて2回発行されても
、プログラム上にバグがない限り、無限ループに陥るこ
とはないので、この回路は、必要に応じて設ければよい
。
、プログラム上にバグがない限り、無限ループに陥るこ
とはないので、この回路は、必要に応じて設ければよい
。
スタック信号出力抑止回路12は、RET命令が続けて
2回以上発行されたときに、2回目以降のスタック信号
STKの出力を抑止する回路である。
2回以上発行されたときに、2回目以降のスタック信号
STKの出力を抑止する回路である。
プッシュ記憶回路13は、プッシュ信号とスタック信号
とが交互に出力されることをチェックする回路である。
とが交互に出力されることをチェックする回路である。
即ち5プッシュ記憶回路13は。
プッシュ信号の状態を記憶し、プッシュ信号が出力され
ていない状態でスタック信号が出力されたとき、スタッ
ク信号出力抑止回路12に制御信号を出力し、スタック
信号の出力を抑止する。
ていない状態でスタック信号が出力されたとき、スタッ
ク信号出力抑止回路12に制御信号を出力し、スタック
信号の出力を抑止する。
これにより、アドレス選択回路5は、入力“a陣〜“d
″のいずれもセレクトしないので、出力は「0」となる
。この「0」がプログラムカウンタレジスタ3にセント
されるので2次のクロックでは、アドレス「0」番地を
アクセスすることになる。従って、無限ループを脱出す
ることが可能となる。そして、この「0」番地にシステ
ムをすセットする命令を記憶させておけば、システムを
一重リセットすることができ、正常状態に復帰させるこ
とができる。
″のいずれもセレクトしないので、出力は「0」となる
。この「0」がプログラムカウンタレジスタ3にセント
されるので2次のクロックでは、アドレス「0」番地を
アクセスすることになる。従って、無限ループを脱出す
ることが可能となる。そして、この「0」番地にシステ
ムをすセットする命令を記憶させておけば、システムを
一重リセットすることができ、正常状態に復帰させるこ
とができる。
プッシュ信号出力抑止回路11.スタック信号出力抑止
回路12.プッシュ記憶回路13は1例えば第3図に示
すように、比較的簡単な回路で構成できる。なお、以下
の実施例説明では、各信号はLレベルで有効になるもの
とする。
回路12.プッシュ記憶回路13は1例えば第3図に示
すように、比較的簡単な回路で構成できる。なお、以下
の実施例説明では、各信号はLレベルで有効になるもの
とする。
プッシュ記憶回路13は、2つのナンド回路22.23
からなるランチと、D形フリップフロップ24とからな
る。フリップフロップ24の出力Q2は、JSR命令の
発行でHレベルになり、RET命令の発行またはシステ
ムのリセット信号でLレベルになる。
からなるランチと、D形フリップフロップ24とからな
る。フリップフロップ24の出力Q2は、JSR命令の
発行でHレベルになり、RET命令の発行またはシステ
ムのリセット信号でLレベルになる。
プッシュ信号出力抑止回路11.スタック信号出力抑止
回路12は、それぞれオア回路20.21で構成される
。
回路12は、それぞれオア回路20.21で構成される
。
以下、第4図に示すタイムチャートに従って。
動作を説明する。
■ システムのリセット信号RESによって、ナンド回
路22の出力Q1は、Lレベルになる。
路22の出力Q1は、Lレベルになる。
■ この出力Q1は、クロック信号PCKの立上がりで
、フリップフロップ24に取り込まれる。
、フリップフロップ24に取り込まれる。
■ メインプログラムの実行により、JSR命令が発行
されると、プッシュ信号PUSHにより。
されると、プッシュ信号PUSHにより。
QlはHレベルになる。
■ このとき、プッシュ信号PUSHはLレベルであり
、Q2もLレベルであることから、プッシュ信号PUS
H’ は、オア回路20によりLレベルとなって有効と
なる。なお、Q2は次のクロック信号PCKの立上がり
でHレベルとなる。
、Q2もLレベルであることから、プッシュ信号PUS
H’ は、オア回路20によりLレベルとなって有効と
なる。なお、Q2は次のクロック信号PCKの立上がり
でHレベルとなる。
■ この状態で、外部環境の変動等により、プ・7シユ
信号PUSHに誤動作がおきても、Q2はHレベルであ
ることから、オア回路20により、プッシュ信号PUS
H’ の出力は抑止される。
信号PUSHに誤動作がおきても、Q2はHレベルであ
ることから、オア回路20により、プッシュ信号PUS
H’ の出力は抑止される。
■ RET命令の発行により、スタック信号丁子XがL
レベルになると、ナンド回路22の出力Q1はLレベル
になる。
レベルになると、ナンド回路22の出力Q1はLレベル
になる。
■ このとき、Q2はHレベルであるので、オア回路2
1の出力は、Lレベルになり、スタック信号STK’
は有効となる。Q2は9次のクロック信号PCKの立上
がりでLレベルに戻る。
1の出力は、Lレベルになり、スタック信号STK’
は有効となる。Q2は9次のクロック信号PCKの立上
がりでLレベルに戻る。
■ 例えば外部環境の変動等によりスタックに異常があ
り、再びスタック信号STKが出力されると、Q2はL
レベルになっているので、オア回路21の出力はHレベ
ルのままであり、スタック信号STK’ の出力は抑止
される。
り、再びスタック信号STKが出力されると、Q2はL
レベルになっているので、オア回路21の出力はHレベ
ルのままであり、スタック信号STK’ の出力は抑止
される。
以上説明したように2本発明は2例えばDSPのような
一重のスタックを持つマイクロ制御プロセッサにおいて
、マイクロプログラムが暴走する原因の1つが、スタッ
クの内容破壊であることに着眼することによりなされた
ものであって、比較的簡単な回路でもって、自動的に暴
走による無限ループからの脱出を可能とすることができ
る。
一重のスタックを持つマイクロ制御プロセッサにおいて
、マイクロプログラムが暴走する原因の1つが、スタッ
クの内容破壊であることに着眼することによりなされた
ものであって、比較的簡単な回路でもって、自動的に暴
走による無限ループからの脱出を可能とすることができ
る。
第1図は本発明の原理図、第2図は本発明の一実施例ブ
ロック図、第3図は第2図図示暴走防止回路の詳細図、
第4図は本発明の一実施例動作を説明するためのタイム
チャート、第5図は従来のアドレス制御回路の例、第6
図、は従来方式の問題点説明図を示す。 図中、10は暴走防止回路、11はプシノシュ信号出力
抑止回路、12はスタック信号出力抑止回路、13はプ
ッシュ記憶回路、PUSHはプッシュ信号、STKはス
タック信号、PCKはクロック信号、RESはリセット
信号を表す。 特許出願人 富士通株式会社 代理人弁理士 森1)寛(外1名) t :F絶朗め原理図 暴楚11方肛回浴1羊紳出 才31X1 才4閃 ’<L釆ざ六七藺鶏臥悦朗口 栄6叩
ロック図、第3図は第2図図示暴走防止回路の詳細図、
第4図は本発明の一実施例動作を説明するためのタイム
チャート、第5図は従来のアドレス制御回路の例、第6
図、は従来方式の問題点説明図を示す。 図中、10は暴走防止回路、11はプシノシュ信号出力
抑止回路、12はスタック信号出力抑止回路、13はプ
ッシュ記憶回路、PUSHはプッシュ信号、STKはス
タック信号、PCKはクロック信号、RESはリセット
信号を表す。 特許出願人 富士通株式会社 代理人弁理士 森1)寛(外1名) t :F絶朗め原理図 暴楚11方肛回浴1羊紳出 才31X1 才4閃 ’<L釆ざ六七藺鶏臥悦朗口 栄6叩
Claims (1)
- 【特許請求の範囲】 一重のスタックを持つマイクロプログラム制御プロセッ
サにおけるアドレス制御回路であって、プッシュ信号に
より上記スタック(6)にアドレスを設定し、スタック
信号により上記スタックからアドレスを読み出す制御を
行うアドレス制御回路において、 上記プッシュ信号が出力されていない状態のもとで、上
記スタック信号が出力されたことを検出したとき、上記
スタック信号の出力を抑止する暴走防止回路(10)を
備えたことを特徴とするアドレス制御回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP60044136A JPS61202234A (ja) | 1985-03-06 | 1985-03-06 | アドレス制御回路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP60044136A JPS61202234A (ja) | 1985-03-06 | 1985-03-06 | アドレス制御回路 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS61202234A true JPS61202234A (ja) | 1986-09-08 |
Family
ID=12683210
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP60044136A Pending JPS61202234A (ja) | 1985-03-06 | 1985-03-06 | アドレス制御回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS61202234A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02304635A (ja) * | 1989-05-19 | 1990-12-18 | Pfu Ltd | プログラム暴走検知方法 |
-
1985
- 1985-03-06 JP JP60044136A patent/JPS61202234A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02304635A (ja) * | 1989-05-19 | 1990-12-18 | Pfu Ltd | プログラム暴走検知方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4669059A (en) | Method and apparatus in a data processor for selectively disabling a power-down instruction | |
CA1200913A (en) | Data processing system with virtual machines | |
US4573117A (en) | Method and apparatus in a data processor for selectively disabling a power-down instruction | |
US20060224866A1 (en) | Selecting subroutine return mechanisms | |
US4446517A (en) | Microprogram memory with page addressing and address decode in memory | |
US4491912A (en) | Data processing system with improved microsubroutine facility | |
JPH04211843A (ja) | マイクロプロセッサ装置 | |
JPH0877075A (ja) | 情報処理装置 | |
JPH10500517A (ja) | 障害を有するマイクロコードを訂正するためのデータ処理装置および方法 | |
JPS61202234A (ja) | アドレス制御回路 | |
EP0423773A2 (en) | Emergency resumption processing apparatus for an information processing system | |
US5210758A (en) | Means and method for detecting and correcting microinstruction errors | |
KR940011040B1 (ko) | 마이크로컴퓨터 | |
KR100239438B1 (ko) | 오동작 방지 기능을 갖는 중앙 처리 장치 | |
JPS58107963A (ja) | 割込処理装置 | |
JPS59129995A (ja) | 記憶装置 | |
JPS6083149A (ja) | コンピユ−タ | |
JPH05173840A (ja) | マイクロコンピュータ | |
JPH05158808A (ja) | マイクロプログラム制御装置 | |
JPS6161417B2 (ja) | ||
JPS63250753A (ja) | メモリアクセスチエツク方式 | |
JP3585940B2 (ja) | 計算機 | |
JP3183982B2 (ja) | ディジタル制御装置 | |
JPH087679B2 (ja) | マイクロプロセッサ | |
JPH0764822A (ja) | マイクロコンピュータ |