JPH05250161A - マイクロコンピュータ装置 - Google Patents

マイクロコンピュータ装置

Info

Publication number
JPH05250161A
JPH05250161A JP4049220A JP4922092A JPH05250161A JP H05250161 A JPH05250161 A JP H05250161A JP 4049220 A JP4049220 A JP 4049220A JP 4922092 A JP4922092 A JP 4922092A JP H05250161 A JPH05250161 A JP H05250161A
Authority
JP
Japan
Prior art keywords
stack
data
memory
register
dedicated
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
Application number
JP4049220A
Other languages
English (en)
Inventor
Koichi Koga
弘一 古賀
Katsuhiro Hirayama
勝啓 平山
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP4049220A priority Critical patent/JPH05250161A/ja
Publication of JPH05250161A publication Critical patent/JPH05250161A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 【目的】 サブルーチン分岐時・復帰時、あるいは割込
み処理分岐時・復帰時に、プログラムカウンタおよびマ
イクロコンピュータ状態レジスタとスタック間の高速な
データの待避および復帰動作を行わせる。 【構成】 PCおよびPSWの専用スタックブロック1
1と、専用スタックがオーバーフローした時、オーバー
フローデータをメモリに待避させるための専用スタック
ポインタブロック3を備えた。また、スタックブロック
11の状態を示す内部スタックステータスフラグ13と
メモリのスタックの状態を示す外部スタックステータス
フラグ12により、CPU制御部1はスタックブロック
11とメモリ間のデータの転送が必要かどうかを判定
し、データ転送を行う必要がある場合、バスの空きサイ
クルを利用してデータの転送をする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はプログラムカウンタや状
態レジスタの退避処理や復帰処理に必要な時間を減ら
し、プログラムの実行速度を高めたマイクロコンピュー
タ装置に関するものである。
【0002】
【従来の技術】近年、マイクロコンピュータ(以下、C
PUという)の処理速度の向上には目ざましいものがあ
るが、その一方で、処理内容もますます複雑化、大規模
化してきている。プログラムの処理スピードを決める要
因の一つに、命令実行時のメモリアクセス頻度がある。
一般に、レジスタ間の算術・論理演算、またはレジスタ
間のデータ転送と比較して、レジスタとメモリ間のデー
タ転送には時間がかかる。このため、メモリアクセスの
頻度が高いとプログラムの処理スピードも低下してく
る。特に、サブルーチン処理時あるいは割込み処理時の
プログラムカウンタ(以下、PCという)、マイクロコ
ンピュータ状態レジスタ(以下、PSWという)、そし
て汎用レジスタのスタックポインタ(以下、SPとい
う)で示されるメモリ領域への待避・復帰動作は、本来
の目的とする処理以外のオーバーヘッドである。
【0003】以下、図7〜図11を参照して従来のマイ
クロコンピュータ装置について説明する。
【0004】まず、図9に、割込み要求受理時のプログ
ラムの処理の流れを示す。図9において、メインルーチ
ン実行中に割込み要求が受理されると、PCおよびPS
Wはスタックに待避され、PCには割込みルーチンの先
頭アドレスがセットされて、新しいアドレスより命令が
実行される。割込みルーチンでは、一般に先ずそのルー
チンで使用する汎用レジスタの待避命令が実行される。
その後、割込み要求に対する応答処理の実行し、次に待
避したレジスタの復帰命令の実行し、そして最後に復帰
命令が実行されて、PCおよびPSWは元の値に復帰
し、メインルーチンの実行が再開される。ここで、分岐
時のPC、PSWの待避、およびレジスタ待避命令の実
行は、割込みが受理されてから実際に応答処理に入るま
でのオーバヘッドタイムであり、特に早急な応答を必要
とする場合には、このオーバヘッドタイムが大きな問題
となる場合がある。
【0005】また、このレジスタ群の待避・復帰処理の
中で、汎用レジスタは、割込みルーチンの中で使用する
レジスタのみが割込みルーチン(あるいはサブルーチ
ン)内に書かれているレジスタ待避の機械語命令により
待避されるのに対して、PCおよびPSWは、割込み分
岐処理(あるいはサブルーチン分岐処理)のマイクロシ
ーケンスの実行過程で必ず待避される。
【0006】以下、従来のサブルーチン分岐・復帰処理
(あるいは割込み分岐・復帰)処理実行時のPC、PS
Wのメモリへの待避・復帰動作の一例について説明す
る。
【0007】先ず、サブルーチン分岐(あるいは割込み
分岐)処理実行時のPCおよびPSWの待避処理につい
て説明する。
【0008】図10はサブルーチン分岐(あるいは割込
み分岐)処理実行時のマイクロ命令の実行シーケンスを
フローチャートで示したものである。図10に示す通
り、サブルーチン分岐(あるいは割込み分岐)時には、
CPU内部では、次の順序でマイクロ命令が実行され
る。すなわち、SPデクリメント命令実行、PC待避命
令実行、SPデクリメント命令実行、PSW待避命令実
行、PC更新命令実行の順である。
【0009】図7は従来のCPUの一回路構成を示した
ブロック図である。同図中、1はCPU制御部、3は従
来のSPブロック(以下、SP2ブロックと呼ぶ。)、
4はPCブロック、5はPSWブロック、6はアドレス
バス(AB)、7はデータバス(DB)、8はCPU制
御部1からCPU内部の各ブロックにマイクロ命令を送
るマイクロ命令バス(MB)、9はメモリ読み出し制御
信号(MRE)、10はメモリ書込み制御信号(MW
E)である。また、アドレスバス6、データバス7、メ
モリ読み出し制御信号9、メモリ書込み制御信号10は
メモリ(図示せず)に接続される。
【0010】図8は図7に示したSP2ブロック3の内
部構成の一例である。図8において、図7と同じものに
は、同じ符号6、7、8を付してある。
【0011】図8において、39はマイクロ命令バス8
からの入力をデコードするデコーダ、30はポインタ値
計算用のカウンタ、また33、34、35、36は全て
デコーダ39からの出力信号であり、カウンタ30に入
力される。このうち、33はカウンタ・インクリメント
信号、34はカウンタ・デクリメント信号、35はカウ
ンタ書込み信号、36はカウンタ読み出し信号である。
【0012】次に、サブルーチン分岐処理(あるいは割
込みルーチン分岐処理)実行時のCPU内部の動作につ
いて、図7および図8のブロック図を参照しながら説明
する。
【0013】サブルーチン分岐命令がCPU制御部1に
より解読されるか、あるいはCPU制御部1に対して割
込み要求(図示せず)が入力され、受理されると、CP
Uは次に示す一連のマイクロ・シーケンスを実行する。
【0014】まず、CPU制御部1はマイクロ命令バス
8に、SP2ブロック3のポインタ・デクリメント命令
を出力する。このマイクロ命令を図8のデーコーダ39
で解読し、カウンタ・デクリメント信号34を“1”と
し、スタックポインタ値がデクリメントされる。
【0015】次に、CPU制御部1はマイクロ命令バス
8にPCのメモリ上のスタック領域への待避命令を出力
する。SP2ブロック3内のデコーダ39は、このマイ
クロ命令を解読し、カウンタ読み出し信号36を“1”
にする。カウンタ30は、この読み出し信号36が入力
されることにより、カウンタ値をアドレスバス6に出力
する。また、同時にPCブロック4はこの命令を解読
し、PCの値をデータバス7に出力する。同時にCPU
制御部1はメモリ書込み制御信号10を“1”にし、P
Cの内容はSPで示されるメモリ上のアドレスに書き込
まれる。
【0016】次に、CPU制御部1はマイクロ命令バス
8にSPのポインタ・デクリメント命令を出力する。前
記同様にSP2ブロック3内のカウンタ30の内容はデ
クリメントされる。
【0017】次に、CPU制御部1はマイクロ命令バス
8に、PSWのメモリ上のスタック領域への待避命令を
出力する。SP2ブロック3内のデコーダ39はこのマ
イクロ命令を解読し、前記と同様にカウンタ30の内容
がアドレスバス6に出力される。また、PSWブロック
5はこの命令を解読し、PSWの内容をデータバス7に
出力する。同時にCPU制御部1はメモリ書込み制御信
号10を“1”にし、PCの内容はSPで示されるアド
レスに書き込まれる。
【0018】次に、CPU制御部1は、データバス7に
分岐アドレスを、マイクロ命令バスにPC更新命令を出
力する。PCブロック4は、このマイクロ命令を解読
し、データバス7の分岐アドレスをPCに書込み、PC
の内容は更新される。以後、CPUは新しいアドレスよ
りプログラムを実行する。
【0019】次に、従来のサブルーチンからの復帰時
(あるいは、割込み処理からの復帰時)のPCおよびP
SWの復帰のためのマイクロ・シーケンスの実行過程に
ついて説明する。
【0020】図11はサブルーチンからの復帰(あるい
は割込みからの復帰)処理実行時のマイクロ命令の実行
シーケンスをフローチャートで示したものである。図1
1に示すとうり、サブルーチンからの復帰(あるいは割
込みからの復帰)時には、CPU内部では、次の順序で
マイクロ命令が実行される。すなわち、PSW復帰命令
実行、SPインクリメント命令実行、PC復帰命令実
行、SPインクリメント命令実行の順である。
【0021】サブルーチンからの復帰(あるいは割込み
からの復帰)処理実行時のCPU内部の動作について、
図7および図8を参照して説明する。
【0022】サブルーチンからの復帰命令(あるいは、
割込み処理からの復帰命令)が、CPU制御部1により
解読されると、CPUは次に示す、一連のマイクロ・シ
ーケンスを実行する。
【0023】まず、CPU制御部1は、マイクロ命令バ
ス8にPSWのメモリ上のスタック領域からの復帰命令
を出力する。また、同時にメモリ読み出し制御信号9を
“1”にする。SP2ブロック3内のデコーダ39はこ
のマイクロ命令を解読し、カウンタ読み出し信号36を
“1”にする。図8のカウンタ30はこの読み出し信号
入力によりカウンタの内容をアドレスバス6に出力す
る。メモリはメモリ読み出し制御信号9が“1”となる
ためアドレスバスで示されるアドレスの内容を読み出
し、データバス7に出力する。PSWブロック5はマイ
クロ命令を解読し、この時のデータバス7の内容をPS
Wレジスタに書き込み、PSWの内容は復帰される。
【0024】次に、CPU制御部1はマイクロ命令バス
8に、SPのポインタ・インクリメント命令を出力す
る。このマイクロ命令をSP2ブロック3内のデコーダ
39で解読し、カウンタ・インクリメント信号33を
“1”にする。カウンタ30はこのカウンタ・インクリ
メント信号入力により、カウンタ値をインクリメントす
る。
【0025】次に、CPU制御部1はマイクロ命令バス
8にPCのメモリ上のスタック領域からの復帰命令を出
力する。また、同時にメモリ読み出し制御信号9を
“1”にする。SP2ブロック3はこのマイクロ命令を
解読し、前記と同様SPの値をアドレスバス6に出力す
る。メモリは、メモリ読み出し制御信号9が“1”とな
るため、アドレスバス6で示されるアドレスの内容を読
み出し、データバス7に出力する。PCブロック4はマ
イクロ命令を解読し、この時のデータバス7の内容をP
Cに書き込み、PCの内容は復帰される。
【0026】次に、CPU制御部1はマイクロ命令バス
8に、SPのポインタ・インクリメント命令を出力す
る。このマイクロ命令をSP2ブロック3内のデコーダ
39で解読し、前記と同様SP2ブロック3内のカウン
タ30の内容をインクリメントする。以後、プログラム
の実行はメインルーチンに戻る。
【0027】
【発明が解決しようとする課題】上記従来のマイクロコ
ンピュータ装置は、サブルーチン分岐、または割込み処
理分岐時(あるいは各々の復帰時)に、PCおよびPS
Wの値をメモリ上のスタック領域に待避(あるいは、メ
モリ上のスタック領域から復帰)させる必要がある。こ
れらの待避処理(あるいは、復帰処理)は、レジスタと
メモリ間のデータ転送であり、一般にレジスタ間の算術
演算やレジスタ間の論理演算と比較して多くの実行サイ
クルを必要とする。
【0028】またこれらの待避処理や復帰処理は、サブ
ルーチンあるいは割込みルーチンの本来の目的とする処
理以外のオーバヘッドであり、特に早急な応答を要求す
るような割込み処理時には、このオーバヘッドタイムが
大きな問題となる場合がある。
【0029】本発明の目的は、このPCおよびPSWの
待避処理や復帰処理に必要な時間を減らし、プログラム
の実行スピードを上げることである。
【0030】
【課題を解決するための手段】本発明は、上記問題を解
決するために、スタックポインタによるメモリへのレジ
スタ待避方式のマイクロコンピュータ装置において、マ
イクロコンピュータ制御装置と、プログラムカウンタ
と、マイクロコンピュータ状態レジスタと、レジスタ待
避命令実行時に汎用レジスタ内容をメモリに待避させる
ための汎用レジスタ用スタックポインタと、サブルーチ
ン分岐処理、あるいは割込み分岐処理のマイクロ・シー
ケンス内でプログラムカウンタおよびマイクロコンピュ
ータ状態レジスタの内容を待避するための専用スタック
と、さらに、専用スタックに最初に待避したデータがオ
ーバーフローした時、オーバーフローしたデータを一時
記憶するための出力バッファレジスタと、出力バッファ
レジスタにセットされたオーバーフローデータをメモリ
に待避するための専用スタックポインタと、専用スタッ
クとメモリ上のスタック領域との間でデータの転送をお
こなうかどうかを決定する手段とを備え、サブルーチン
処理時、あるいは割込み処理時のマイクロ・シーケンス
実行時に、プログラムカウンタおよびマイクロコンピュ
ータ状態レジスタの待避・復帰動作を専用スタックとの
間でおこない、かつ専用スタックとメモリ上のスタック
領域との間でデータの転送をおこなうかどうかを決定
し、データの転送が必要な時には、メモリのバスサイク
ル空き時間にデータ転送をおこなうことを可能とするも
のである。
【0031】また、本発明は、前記専用スタックとメモ
リ上のスタック領域との間でデータ転送をおこなうかど
うかを決定する手段は、専用スタックがオーバーフロー
し、オーバーフローしたデータが専用スタックの出力バ
ッファレジスタにセットされているときのみ“1”とな
り、出力バッファレジスタのデータがメモリ上のスタッ
ク領域に転送されたときに“0”にリセットされる内部
スタックステータスフラグと、プログラムカウンタおよ
びマイクロコンピュータ状態レジスタのメモリ上のスタ
ック領域にデータが存在するときにのみ“1”となるよ
うな外部スタックステータスフラグをプログラムカウン
タおよびマイクロコンピュータ状態レジスタの専用スタ
ックポインタ内に備え、マイクロコンピュータ制御装置
は、サブルーチン分岐あるいは割込み処理分岐のマイク
ロ・シーケンス実行後に、専用スタック内の出力バッフ
ァレジスタの内部スタックステータスフラグを調べ、内
部スタックステータスフラグが“1”の時のみ専用スタ
ックからメモリへのデータ書込みをおこない、またサブ
ルーチン復帰または割込み処理復帰のマイクロ・シーケ
ンス実行後に、プログラムカウンタおよびマイクロコン
ピュータ状態レジスタの待避用スタックポインタの外部
スタックステータスフラグを調べ、外部スタックステー
タスフラグが“1”の時のみメモリから専用スタックへ
データの転送をおこなうものである。
【0032】さらに、本発明は、専用スタックを双方向
にデータ移動可能な多段シフトレジスタ構成にすること
により、スタックポインタおよびプログラムカウンタの
データ復帰時には、専用スタックの初段のシフトレジス
タの内容、つまり最後に待避されたデータをスタックポ
インタおよびプログラムカウンタに転送し、スタックポ
インタおよびプログラムカウンタのデータ待避時に専用
スタックがオーバーフローした場合には、スタックの最
終段のシフトレジスタの内容、つまりスタックに最初に
待避されたデータが出力バッファレジスタを経由してメ
モリ上のスタック領域に転送するものである。
【0033】
【作用】本発明によれば、PCとPSWの専用スタック
をマイクロコンピュータ装置内に備えるため、サブルー
チン分岐・復帰処理実行時(あるいは、割込みルーチン
分岐・復帰処理実行時)にメモリアクセスをする必要が
なく、高速なスタックの待避・復帰動作が可能となる。
また、サブルーチン分岐処理実行時(あるいは割込みル
ーチン分岐処理実行時)に専用スタックがオーバーフロ
ーした場合、あるいはサブルーチンからの復帰処理実行
時(あるいは割込みルーチンからの復帰処理実行時)に
メモリ上のPCとPSWの専用スタック領域にデータが
存在した場合は専用スタックとメモリ上のスタック領域
間でデータの転送処理が必要となるが、PCおよびPS
Wの待避(あるいは復帰)動作は終了しているため、以
降の分岐後のプログラム処理(あるいは、復帰後のプロ
グラム処理)と並行して該データの転送処理の実行が可
能である。また、バスの空きサイクルを利用することに
より、処理時間の増加なしに該データの転送処理が可能
となる。
【0034】また、本発明によれば、マイクロコンピュ
ータ制御部は、サブルーチン分岐時(あるいは割込み処
理分岐時)には、PCおよびPSWの専用スタックの内
部スタックステータスフラグを調べ、内部スタックステ
ータスフラグが“1”の時のみ専用スタックからメモリ
へデータの転送を行い、また、サブルーチンからの復帰
時(あるいは、割込み処理からの復帰時)には、PCお
よびPSWの専用スタックポインタ出力を調べ、専用ス
タックポインタ出力が“1”の時のみメモリから専用ス
タックへのデータの転送をおこなうことにより、PCお
よびPSWの専用スタックのオーバフローデータの待避
・復帰動作が可能となる。
【0035】さらに、本発明によれば、スタックポイン
タおよびプログラムカウンタのデータ復帰時には、専用
スタックの初段のシフトレジスタの内容、つまり最後に
待避されたデータをスタックポインタおよびプログラム
カウンタに転送し、スタックポインタおよびプログラム
カウンタのデータ待避時に専用スタックがオーバーフロ
ーした場合には、スタックの最終段のシフトレジスタの
内容、つまり最初に待避されたデータが、出力バッファ
レジスタを経由してメモリ上のスタック領域に転送され
るため、この点でも高速化を図ることができる。
【0036】
【実施例】以下、本発明の実施例について図面を参照し
ながら説明する。図1は本発明の一実施例のマイクロコ
ンピュータの構成を示したものである。同図において図
7と同じものには、同じ符号1、3、4、5、6、7、
8、9、10を付してある。また、SP2ブロック3の
内部構成は、図7の場合と同様に図8に示す通りであ
る。また図1において、11はPCおよびPSWの専用
スタックブロック、2はサブルーチン分岐、あるいは割
込み処理分岐時に専用スタックがオーバーフローした時
にオーバーフローデータをメモリに待避させるための専
用SPブロック(以下、SP1ブロックという)、12
はSP1ブロック2からの出力であり、SP1ブロック
2内のポインタ値で示されるメモリ上のスタック領域に
データが存在するときにのみ“1”となる外部スタック
ステータスフラグである。13はPCおよびPSWの専
用スタックブロック11からの出力であり、スタックブ
ロック11内のスタックがオーバーフローし、オーバー
フローデータが出力バッファレジスタにセットされたと
きに“1”にセットされ、出力バッファレジスタからデ
ータが読み出され、メモリ上のスタック領域に転送され
たとき“0”にリセットされる内部スタックステータス
フラグである。14はPCブロック4とスタックブロッ
ク11間のデータ転送専用バス、15はPSWブロック
5とスタックブロック11間のデータ転送専用バスであ
る。
【0037】図2は図1の実施例のPC・PSW用スタ
ックブロック11の一回路構成を示すブロック図であ
る。同図において、図1と同じものには同じ符号7、
8、13、14、15を付してある。
【0038】図2において、20はスタックブロック用
マイクロ命令デコーダ回路、21はPCおよびPSWの
専用スタックレジスタ回路、22はスタックレジスタ回
路21からメモリ上のスタック領域へデータを転送する
際の出力バッファレジスタ、23はスタックレジスタ回
路21のオーバーフローデータの出力バッファレジスタ
22への転送用データバス、24は転送用データバス2
3の書込み制御信号、25はスタックレジスタ回路21
からPCブロック4、PSWブロック5へのデータ復帰
制御信号、26は出力バッファレジスタ22からメモリ
へのPCおよびPSWのオーバーフローデータの書込み
制御信号、27はPCブロック4、PSWブロック5か
らスタックレジスタ回路21へのデータ待避制御信号で
ある。28はメモリ上のスタック領域からスタックレジ
スタ回路21へのデータ読み出し制御信号である。
【0039】図3は図2のスタックレジスタ回路21の
内部構成の一例であり、双方向に移動可能なn段のシフ
トレジスタ、411〜41nから構成される。同図におい
て、図2と同じものには同じ符号、7、14、15、2
3、24、25、27、28を付してある。
【0040】図3の回路構成により、PC、PSWの待
避・復帰動作時には初段のシフトレジスタ411との間
でデータの転送を行い、PC、PSWのデータ待避時に
専用スタックがオーバーフローすると、最終段のシフト
レジスタ41nの内容が出力バッファレジスタ22への
転送用データバス23に出力され、同時に出力バッファ
レジスタ22への書込み信号24が“1”になり、最初
に待避した最終段のシフトレジスタ41nの内容が出力
バッファレジスタ22に書き込まれる。また、メモリ上
のスタック領域のデータのスタックレジスタ回路21へ
のデータ転送時には、データバス7を介してシフトレジ
スタ41nに転送される。
【0041】図4は図1の実施例のSP1ブロック2の
一回路構成を示すブロック図である。同図において、図
1と同じものには同じ符号6、7、8、12を付してあ
る。また、図8と同じものにも同じ符号30、33、3
4、35、36を付してある。
【0042】図4において、31はスタックポインタの
初期値記憶用レジスタ、37はカウンタ30のカウンタ
値出力信号、38は初期値記憶用レジスタ31の出力信
号である。カウンタ値出力信号37と初期値記憶用レジ
スタ31の出力信号38はコンパレータ32の入力とな
る。12はコンパレータ32の出力信号であり、前述の
カウンタ値37とレジスタ値38が不一致のとき、つま
りメモリ上のスタック領域にデータが存在するときにの
み“1”を出力する。40はSP1ブロック2のマイク
ロ命令デコーダ回路である。
【0043】以上の構成において、サブルーチン処理時
または割込み処理時のマイクロコンピュータのPCおよ
びPSWの待避・復帰動作を、図1、図2、図3および
図4を参照しながら説明する。
【0044】まず、PCおよびPSWの待避時のマイク
ロコンピュータの動作について説明する。サブルーチン
分岐命令がCPU制御部1により解読されるか、あるい
はCPU制御部1に対して割込み要求が入力され受理さ
れると、CPU制御部1は次に示す一連のマイクロ・シ
ーケンスを実行する。
【0045】まず、図1においてCPU制御部1はマイ
クロ命令バス8に、PCおよびPSWのスタックブロッ
ク11への待避命令を出力する。このマイクロ命令はP
Cブロック4およびPSWブロック5により解読され、
各々の専用バス14および15にその内容を出力する。
【0046】また、図2において、デコーダ回路20に
はマイクロ命令バス8より、PCおよびPSWのデータ
待避命令が入力される。デコーダ回路20はこの命令を
解読し、スタックレジスタ回路21へのデータ待避制御
信号27を“1”にする。スタックレジスタ回路21は
データ待避制御信号27を受けて、その時点のPCデー
タ専用バス14およびPSWデータ専用バス15上のデ
ータを、図3に示すスタックレジスタ回路21内の初段
のシフトレジスタ411に書き込む。このようにして、
PCブロック4およびPSWブロック5の内容は、マイ
クロコンピュータ内部のスタックブロック11に待避さ
れる。
【0047】その後、マイクロ命令バスには、PCブロ
ック4の内容の更新命令が出され、PCブロック4は、
新しいアドレス値をデータバス7から受け取り、以降、
新しいアドレスよりプログラムが実行される。
【0048】以上のように、本実施例の回路構成では、
PCおよびPSWのスタックレジスタ回路21への待避
のためには、一つのマイクロ命令の実行だけでよい。
【0049】もし、PCおよびPSWのスタックブロッ
ク11への待避のためのマイクロ命令実行によりスタッ
クレジスタ回路21がオーバーフローした場合、オーバ
ーフローデータは、出力バッファレジスタ22の書込み
信号24により、図3の最終段のシフトレジスタ411
から転送用データバス23を介して、出力バッファレジ
スタ22にセットされる。同時に、スタックブロック1
1からの内部スタックステータスフラグ13は“1”と
なる。CPU制御装置1はサブルーチン(あるいは、割
込みルーチン)への分岐後、サブルーチン(あるいは、
割込みルーチン)プログラム実行中にこの内部スタック
ステータスフラグ13を調べ、“1”の場合、出力バッ
ファレジスタ22からメモリ上のスタック領域にオーバ
ーフローデータの待避のためのマイクロ・シーケンスを
実行する。
【0050】このマイクロ・シーケンスは従来例で示し
たPCおよびPSWのメモリへの待避のマイクロ・シー
ケンスと同様であり、以下の順序で実行される。すなわ
ち、SPデクリメント命令実行、出力バッファレジスタ
のPCデータ待避命令実行、SPデクリメント命令実
行、出力バッファレジスタのPSWデータ待避命令実行
の順である。
【0051】以上述べた本実施例の回路構成によるサブ
ルーチン分岐処理(あるいは、割込みルーチン分岐処
理)実行時のCPU内部の動作の流れをフローチャート
に表わしたのが図5である。図5に示すように、スタッ
クブロックの内部スタックステータスフラグ13のチェ
ック、および出力バッファレジスタ22にセットされて
いるオーバーフローデータのメモリ上のスタック領域へ
の転送処理は分岐処理完了後に実行するため、分岐ルー
チンのプログラム実行と並行して実行することが可能で
あり、また、バスの空きサイクルを利用してオーバーフ
ローデータの待避処理を実行することにより、プログラ
ムの実行時間の増加なしにオーバーフローデータの転送
処理が可能となる。
【0052】次に、PCおよびPSWの復帰時のマイク
ロコンピュータの動作について説明する。
【0053】サブルーチン(あるいは、割込みルーチ
ン)実行中に、サブルーチンからの復帰命令(または、
割込みルーチンからの復帰命令)がCPU制御部1によ
り解読されると、CPUは次に示す動作をおこなう。
【0054】まず、図1においてCPU制御部1はマイ
クロ命令バス8に、PCおよびPSWのスタックブロッ
ク11からの復帰命令を出力する。このマイクロ命令を
受けて、スタックブロック11では、図2において、デ
コーダ回路20がこの命令をデコードし、スタックレジ
スタ回路21からPC、PSWへのデータ復帰制御信号
25を“1”にする。スタックレジスタ回路21はデー
タ復帰制御信号25を受けて、スタックレジスタ回路2
1の初段のシフトレジスタ411の内容、つまりスタッ
クに最後に書き込まれたPC、PSWの待避データを、
PCデータ転送用バス14、PSWデータ転送用バス1
5に出力する。
【0055】また、PCブロック4およびPSWブロッ
ク5はこのマイクロ命令を解読し、各々、PCデータ転
送用バス14、PSWデータ転送用バス15から待避さ
れていたデータを受け取る。このようにして、PCブロ
ック4およびPSWブロック5は復帰し、待避直前のア
ドレスからプログラムの実行が行われる。
【0056】以上のように、本発明の一実施例の回路構
成では、PCおよびPSWのスタックレジスタ回路21
からのデータ復帰のためには、一つのマイクロ命令の実
行だけでよい。
【0057】もし、PCブロック4およびPSWブロッ
ク5のPCおよびPSW専用のスタックブロック11か
らの復帰処理を実行後、メモリ上のスタック領域にデー
タが存在するかどうかを示すSP1ブロック2からの外
部スタックステータスフラグ12が“1”であると、外
部スタックステータスフラグ12はCPU制御部1に接
続されており、CPU制御部1はメモリからスタックブ
ロック11内のスタックレジスタ回路21へのデータ復
帰のために、CPUは前記従来のメモリ上のスタック領
域から、PC、PSWへのデータ復帰動作と同様のマイ
クロ・シーケンスを、メモリ上のスタック領域と図2の
スタックレジスタ回路21との間でおこなう。
【0058】本マイクロ・シーケンスの実行手順は以下
のとうりである。すなわち、PSWデータのスタックレ
ジスタ回路への復帰命令実行、SPインクリメント命令
実行、PCデータのスタックレジスタ回路への復帰命令
実行、SPインクリメント命令実行の順である。
【0059】以上述べた本発明の一回路構成によるサブ
ルーチンからの復帰処理(あるいは、割込みルーチンか
らの復帰処理)実行時のCPU内部の動作の流れをフロ
ーチャートに表わしたのが図6である。図6に示すよう
に、SP1ブロックの外部スタックステータスフラグ1
2のチェック、およびメモリ上のスタック領域からスタ
ックレジスタ回路21へのデータ復帰処理はメインルー
チンへの復帰処理完了後に実行するため、メインルーチ
ンのプログラム実行と並行して実行することが可能であ
り、また、バスの空きサイクルを利用してデータの転送
処理を実行することにより、プログラムの実行時間の増
加なしにメモリ上のスタック領域からスタックレジスタ
回路21へのデータ転送処理が可能となる。
【0060】
【発明の効果】本発明によれば、PCおよびPSWの待
避・復帰動作をメモリ上のスタック領域ではなく、マイ
クロコンピュータ装置内の専用スタックに対しておこな
うことにより、高速なレジスタ内容の待避・復帰動作が
可能となる。
【0061】また本発明によれば、CPU内部のスタッ
クとメモリ上のスタック領域間でデータの転送をおこな
う必要があるかどうか判定することが可能である。ま
た、CPU内部のスタックとメモリ上のスタック領域間
でデータの転送処理が発生した場合でも、バスの空きサ
イクルを利用してデータの転送処理をおこなうことによ
り、他のマイクロ処理と並行してデータ転送を実行する
ことが可能となり、データの転送処理による実行時間の
増加なしにプログラムを実行できる。
【0062】さらに、本発明によれば、サブルーチン復
帰時(あるいは、割込み復帰時)には、CPU内部のス
タックに最後に待避したデータがPCおよびPSWに転
送され、サブルーチン分岐時(あるいは、割込み分岐
時)にCPU内部のスタックがオーバーフローした場合
には、最初にCPU内部のスタックに待避したデータが
メモリ上のスタック領域に転送される。したがって、こ
の点でも高速動作が可能となる。
【図面の簡単な説明】
【図1】本発明のマイクロコンピュータ装置の一実施例
の回路構成を示したブロック図
【図2】図1のマイクロコンピュータ装置内部のPCお
よびPSWの専用スタックブロックの一回路構成を示し
たブロック図
【図3】図2のPCおよびPSWの専用スタックブロッ
ク内部のスタックレジスタ回路の一回路構成を示したブ
ロック図
【図4】図1のSP1ブロックの一回路構成を示すブロ
ック図
【図5】本発明の一実施例において、サブルーチン(あ
るいは、割込みルーチン)分岐処理の実行シーケンスを
表わすフローチャート
【図6】本発明の一実施例において、サブルーチン(あ
るいは、割込みルーチン)からの復帰処理の実行シーケ
ンスを表わすフローチャート
【図7】従来のマイクロコンピュータ装置の回路構成を
示すブロック図
【図8】従来のSP2ブロックの回路構成を示すブロッ
ク図
【図9】従来例における割込み処理の実行シーケンスを
表わすフローチャート
【図10】従来例におけるサブルーチン(あるいは、割
込みルーチン)分岐処理のマイクロ命令実行シーケンス
を表わすフローチャート
【図11】従来例におけるサブルーチン(あるいは、割
込みルーチン)からの復帰処理のマイクロ命令実行シー
ケンスを表わすフローチャート
【符号の説明】
1 CPU制御部 2 PCおよびPSWの専用スタックポインタ・ブロッ
ク(SP1) 3 スタックポインタ・ブロック(SP2) 4 プログラムカウンタ・ブロック(PCブロック) 5 マイクロコンピュータ状態レジスタ・ブロック(P
SWブロック) 6 アドレスバス(AB) 7 データバス(DB) 8 マイクロ命令バス(MB) 9 メモリ読み出し制御信号(MRE) 10 メモリ書込み制御信号(MWE) 11 PCおよびPSWの専用スタックブロック 12 外部スタックステータスフラグ 13 内部スタックステータスフラグ 14 PCデータ転送専用バス 15 PSWデータ転送専用バス 20 スタックブロック用マイクロ命令デコーダ回路 21 PCおよびPSWの専用スタックレジスタ回路 22 出力バッファレジスタ 23 PCおよびPSW用の専用スタックレジスタ回路
から出力バッファレジスタへのデータ転送用バス 24 バス23のデータ転送制御信号 25 スタックレジスタ回路からPCおよびPSWへの
データ復帰制御信号 26 出力バッファレジスタからメモリへのPCおよび
PSWのオーバーフローデータの書込み制御信号 27 PC、PSWからスタックレジスタ回路へのデー
タ待避制御信号 28 メモリからスタックレジスタ回路へのデータ読み
出し制御信号 30 スタックポインタ値計算用のカウンタ 31 スタックポインタの初期値記憶用レジスタ 32 スタックポインタ値と初期値比較用のコンパレー
タ 33 カウンタ・インクリメント信号 34 カウンタ・デクリメント信号 35 カウンタ書込み信号 36 カウンタ読み出し信号 37 カウンタ値出力信号 38 カウンタ初期値出力信号 39 SP2ブロックのマイクロ命令デコーダ回路 40 SP1ブロックのマイクロ命令デコーダ回路 411 スタックレジスタの初段のシフトレジスタ 41n スタックレジスタの最終段のシフトレジスタ

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】スタックポインタによるメモリへのレジス
    タ待避方式のマイクロコンピュータ装置において、マイ
    クロコンピュータ制御装置と、プログラムカウンタと、
    マイクロコンピュータ状態レジスタと、レジスタ待避命
    令実行時に汎用レジスタ内容をメモリに待避させるため
    の汎用レジスタ用スタックポインタと、サブルーチン分
    岐処理あるいは割込み分岐処理のマイクロ・シーケンス
    内で前記プログラムカウンタおよびマイクロコンピュー
    タ状態レジスタの内容を待避するための専用スタック
    と、前記専用スタックに最初に待避したデータがオーバ
    ーフローした時、オーバーフローしたデータを一時記憶
    するための出力バッファレジスタと、前記出力バッファ
    レジスタにセットされたデータをメモリに待避するため
    の専用スタックポインタと、前記専用スタックとメモリ
    上のスタック領域との間でデータの転送をおこなうかど
    うかを決定する手段とを備え、サブルーチン処理時ある
    いは割込み処理時のマイクロ・シーケンス実行時に、前
    記プログラムカウンタおよびマイクロコンピュータ状態
    レジスタの待避・復帰動作を、前記専用スタックとの間
    でおこない、かつ前記専用スタックとメモリ上のスタッ
    ク領域との間でデータの転送をおこなうかどうかを決定
    し、データの転送が必要な時にはメモリのバスサイクル
    空き時間にデータ転送をおこなうことを特徴とするマイ
    クロコンピュータ装置。
  2. 【請求項2】専用スタックとメモリ上のスタック領域と
    の間でデータ転送をおこなうかどうかを決定する手段
    は、前記専用スタックがオーバーフローし、オーバーフ
    ローしたデータが前記専用スタックの出力バッファレジ
    スタにセットされているときのみ“1”となり、出力バ
    ッファレジスタのデータがメモリ上のスタック領域に転
    送されたときに“0”にリセットされる内部スタックス
    テータスフラグと、プログラムカウンタおよびマイクロ
    コンピュータ状態レジスタのメモリ上のスタック領域に
    データが存在するときにのみ“1”となる外部スタック
    ステータスフラグを備え、マイクロコンピュータ制御装
    置によって、サブルーチン分岐あるいは割込み処理分岐
    のマイクロ・シーケンス実行後に、前記内部スタックス
    テータスフラグを調べ、内部スタックステータスフラグ
    が“1”の時のみ前記専用スタックの出力バッファレジ
    スタからメモリへのデータ転送をおこない、またサブル
    ーチン復帰または割込み処理復帰のマイクロ・シーケン
    ス実行後に、前記外部スタックステータスフラグを調
    べ、外部スタックステータスフラグが“1”の時のみメ
    モリから前記専用スタックへデータの転送をおこなうこ
    とを特徴とする請求項1記載のマイクロコンピュータ装
    置。
  3. 【請求項3】専用スタックを双方向にデータ移動可能な
    多段シフトレジスタで構成し、スタックポインタおよび
    プログラムカウンタのデータ復帰時には、初段のシフト
    レジスタの内容をスタックポインタおよびプログラムカ
    ウンタに転送し、前記スタックポインタおよびプログラ
    ムカウンタのデータ待避時に前記専用スタックがオーバ
    ーフローした場合には、最終段のシフトレジスタの内容
    を前記専用スタックの出力バッファレジスタに一時的に
    記憶し、出力バッファレジスタを経由してメモリに転送
    することを特徴とする請求項1記載のマイクロコンピュ
    ータ装置。
JP4049220A 1992-03-06 1992-03-06 マイクロコンピュータ装置 Pending JPH05250161A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4049220A JPH05250161A (ja) 1992-03-06 1992-03-06 マイクロコンピュータ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4049220A JPH05250161A (ja) 1992-03-06 1992-03-06 マイクロコンピュータ装置

Publications (1)

Publication Number Publication Date
JPH05250161A true JPH05250161A (ja) 1993-09-28

Family

ID=12824865

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4049220A Pending JPH05250161A (ja) 1992-03-06 1992-03-06 マイクロコンピュータ装置

Country Status (1)

Country Link
JP (1) JPH05250161A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0720087A1 (en) * 1994-12-27 1996-07-03 Motorola, Inc. Apparatus and method for a memory extension stack in a data processing system
KR100895686B1 (ko) * 2002-03-26 2009-04-30 어보브반도체 주식회사 마이크로 컨트롤러의 데이터 로드 타이밍을 감소시키는 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS52133738A (en) * 1976-04-30 1977-11-09 Sharp Corp Caluculation control system
JPS5688541A (en) * 1979-12-21 1981-07-18 Fujitsu Ltd Stack control system
JPH02299025A (ja) * 1989-05-12 1990-12-11 Nec Corp マイクロコンピュータ

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS52133738A (en) * 1976-04-30 1977-11-09 Sharp Corp Caluculation control system
JPS5688541A (en) * 1979-12-21 1981-07-18 Fujitsu Ltd Stack control system
JPH02299025A (ja) * 1989-05-12 1990-12-11 Nec Corp マイクロコンピュータ

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0720087A1 (en) * 1994-12-27 1996-07-03 Motorola, Inc. Apparatus and method for a memory extension stack in a data processing system
KR100895686B1 (ko) * 2002-03-26 2009-04-30 어보브반도체 주식회사 마이크로 컨트롤러의 데이터 로드 타이밍을 감소시키는 방법

Similar Documents

Publication Publication Date Title
US5168571A (en) System for aligning bytes of variable multi-bytes length operand based on alu byte length and a number of unprocessed byte data
EP0155211B1 (en) System for by-pass control in pipeline operation of computer
US5696989A (en) Microcomputer equipped with DMA controller allowed to continue to perform data transfer operations even after completion of a current data transfer operation
US5155817A (en) Microprocessor
US4274138A (en) Stored program control system with switching between instruction word systems
US5233691A (en) Register window system for reducing the need for overflow-write by prewriting registers to memory during times without bus contention
US4750110A (en) Method and apparatus for executing an instruction contingent upon a condition present in another data processor
JP3707581B2 (ja) 自己整合スタック・ポインタを有するデータ処理システムおよびその方法
US4541047A (en) Pipelined data processing system
JP2655615B2 (ja) 情報処理装置
JPS63279328A (ja) 仮想計算機システムのゲスト実行制御方式
EP0385136B1 (en) Microprocessor cooperating with a coprocessor
US5742842A (en) Data processing apparatus for executing a vector operation under control of a master processor
JPH05250161A (ja) マイクロコンピュータ装置
US4758978A (en) Method and apparatus for selectively evaluating an effective address for a coprocessor
US20050216708A1 (en) Processor for performing context switching, a method for performing context switching, a computer program for perform context switching
JPH0414376B2 (ja)
JPS6376028A (ja) 仮想計算機システムにおける命令ステツプ実行制御方式
JPH04288625A (ja) マイクロコンピュータ
US5557772A (en) Data processing apparatus including a register storing a parameter and a microinstruction execution arrangement including a correction arrangement for causing a first value of the parameter to be change to a second, correct value
JPH0377137A (ja) 情報処理装置
JPH06324861A (ja) Cpu制御システム及び制御方法
JPH02191042A (ja) 割込み制御方式
JP2574918B2 (ja) 割り込み復帰処理方式
JPH03269628A (ja) 例外処理方式