JPH04162135A - データ処理装置 - Google Patents

データ処理装置

Info

Publication number
JPH04162135A
JPH04162135A JP28894190A JP28894190A JPH04162135A JP H04162135 A JPH04162135 A JP H04162135A JP 28894190 A JP28894190 A JP 28894190A JP 28894190 A JP28894190 A JP 28894190A JP H04162135 A JPH04162135 A JP H04162135A
Authority
JP
Japan
Prior art keywords
stack memory
buffer
stack
memory
return 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
Application number
JP28894190A
Other languages
English (en)
Inventor
Mineo Akashi
明石 峰雄
Norihiko Ishizaki
徳彦 石崎
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 JP28894190A priority Critical patent/JPH04162135A/ja
Publication of JPH04162135A publication Critical patent/JPH04162135A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、データ処理装置に関し、特にストアード・プ
ログラム制御により、サブルーチン呼圧しや割込処理に
おいて戻り番地を記憶するスタックメモリを備えた構成
のデータ処理装置に関する。
口従来の技術〕 ストアード・プログラム制御のデータ処理装置としては
、マイクロコンピュータが知られており、メモリに記憶
させるプログラムにより各種の機能を実現できることか
ら、各種の機器で応用されている。
コノマイクロフンピユータは、当初は電卓ヤタイマーな
ど、計算やデータ処理を行なう機器から利用が始ったが
、近年、自動車のエンジンやブレーキの制御、さらには
VTRのサーボモータ制御など、高速で動作するものの
状態を検知してその動作を制御する信号を発生する機器
にも利用されている。
これらのリアルタイムで処理を行なう応用では、高速で
処理が行なえるマイクロコンピュータが望まれており、
特に、外部の変化を素速く検知してブロクラム処理を切
換える、割込処理の応答速度が重視されている。
従来のデータ処理装置の一例について、第6図に示され
たブロック図を参照して説明する。
このデータ処理装置は、プロクラムカウンタ鴬の値をプ
ログラムのアドレスとしてアドレスバス130に出力し
てメインメモリー10から命令語を読み出し、データバ
ス120.データータハス30を経由して命令レジスタ
40に取込んで、命令の解釈ならびに処理を行っている
割込処理は、このデータ処理装置(マイクロフンピユー
タ)に割込コントレーラ140を接続し、割込コントロ
ーラー40で割込信号の発生を検知して制御部10Aの
割込要求端子(INT)に信号を入力することによって
実現している。この制御としては、割込処理のプログラ
ムを実行した後で、割込を受は付けた以前のプログラム
処理を再開する必要があるため、サブルーチンの呼出し
と同様な処理を行なっている。
つまり、割込の受は付けにて、実行中のプログラムのア
ドレス値であるプログラムカウンタ2の値をスタックメ
モリlに待避させたあと、プロクラムカウンタ3に割込
処理プログラムのアドレス値を設定し、割込処理プログ
ラムの実行を開始する。さらに、割込処理が終った時に
は、リターン命令を実行して、待避させておいたプログ
ラムのアドレス値をスタックメモリ1からプログラムカ
ウンタ3に復帰させて、中断したプログラム処理を再開
させる。
ここで、スタックメモリ1は、最後に書込んだデータが
最初に読み出される構造のメモリで、スタックポインタ
2によってこのスタックメモリ1のアドレスを指定し、
スタックメモリlに対するデータの書込みまたは読み出
しに連動して、スタックポインタ2をインクリメントも
しくはデクリメントさせる。
また、スタックメモリ1のデータ幅は8ビツト(以下1
バイトという)であり、プログラムカウンタ3のデータ
幅は16ビツト (2バイト)となっている。
〔発明が解決しようとする課題〕
上述した従来のデータ処理装置は、データ幅1バイトの
スタックメモリlと、データ幅2バイトのプログラムカ
ウンタ3とを備え、サブルーチンノ呼出しや割込処理の
たびにスタックメモリlをアクセスする構成となってい
るので、プログラムカウンタ3の値の待避と復帰でスタ
ックメモリ1に対するメモリ・アクセスヘマし、処理時
間が増大するという問題点がある。つまり、サブルーチ
ンヲ例に説明すると、スタックメモリ1のデータ幅は1
バイトであり、プログラムカウンタ3が2バイトである
ため、サブルーチンの呼比しでは、呼出し命令を判断す
るために1バイト、さらに分岐先アドレスを得るため2
ハイドの命令フェッチと、プログラムカウンタ3の値を
待避するため2ハイトノメモリ書込みがあり、サブルー
チンがらの復帰では、リターン命令を判断するため1バ
イトの命令フェッチとプログラムカウンタ3の値を復帰
させるため2バイトのメモリ読み出しがある。
従って、スタックメモリ1に対するアクセスが、命令フ
ェッチと同じ回数となる。
ストアーF・プログラム制御のデータ処理装置では、メ
モリ・アクセスの速度によって、処理能力が支配される
ことが知られており、前述のメモリ・アクセスを減らす
手8望まれている。特にリアルタイムで制御を行なう応
用では、頻繁に割込が発生するため、スタックメモリに
対するアクセスを減少できれば、トータルでの処理能力
を上げることが可能になる。
本発明の目的は、サブルーチンの呼出しや割込処理にお
ける、スタックメモリへのアクセスを減少させ、処理能
力を上げることができるデータ処理装置を提供すること
にある。
5課題を解決するための手段〕 本発明のデータ処理装置は、メインメモリのアドレスを
指定するためのプログラムカウンタと、サブルーチンの
呼出し及び割込処理を含む分岐処理に入るとき前記プロ
グラムカウンタに保持されている前記分岐処理の戻り番
地を格納し、前記分岐処理から分岐前の処理に戻るとき
格納されている戻り番地を前記プログラムカウンタべ供
給するスタックメモリとを有するデータ処理装置におい
て、前記プログラムカウンタと前記スタックメモリとの
間に、前記プログラムカウンタからの戻り番地の保持及
びこの保持された戻り番地の前記スタックメモリへの伝
達、並びに前記スタックメモリからの戻り番地の保持及
びこの保持された戻り番地の前記プログラムカウンタべ
の伝達を行うバッファレジスタを設け、かつこのバッフ
ァレジスタと前記プログラムカウンタ及びスタックメモ
リとの間の前記戻り番地の伝達を制御する制御論理回路
を設けて構成される。
〔実施例〕
次に、本発明の実施例について図面を参照して説明する
第1図は本発明の第1の実施例を示すブロック図である
この実施例は、スタックポインタ2により指定されたア
ドレスに、サブルーチンの呼出しや割込処理における戻
り番地を格納するスタックメモリ1と、メインメモリの
アドレスを指定するためのアドレステータを格納するプ
ログラムカウンタ3と、スタックメモリ1とプログラム
カウンタ3との間に2段に設けられ、プログラムカウン
タ3からの戻り番地の保持及びこの保持された戻り番地
のスタックメモリlへの伝達、並びにスタックメモリ1
からの戻り番地の保持及びこの保持された戻り番地のプ
ログラムカウンタ3への伝達を行うバッファレジスタ4
A+  4Bと、バッファレジスタ4Aに有効な戻り番
地が保持されているか否かを示スバッファステータスフ
ラグを格納するバッファステータスフラグレジスタ5と
、バッファレジスタ4Bに有効な戻り番地が保持されて
いるか否かを示すバッファステータスフラグを格納する
バッファステータスフラグレジスタ6と、バッファレジ
スタ4Bからの戻り番地を何個スタックメモリ1に格納
したかを示すデータを格納するスタックカウンタ回路7
と、制御部10に従い、バッファステータスフラグレジ
スタ5.6及びスタックカウンタ回路7に格納されてい
るデータを参照してバッファレジスタ4A、411とプ
ログラムカウンタ3及びスタックメモリlとの間の戻り
番地の伝達を制御する制御論理回路8とを有する構成と
なっている。
次に、この実施例を動作について説明する。
第2図はこの実施例の動作状態を説明するための状態遷
移図であり、次に示すような6種類の状態がある。
第1の状態は、初期化(第2図中ではRESETで表示
している)された直後で、−バッファステータスフラグ
5(第2図中BUFAで表示している)とバッファステ
ータスフラグ6(第2図中EUFBで表示している)が
共に空(第2−中ではEmpで表示している)であるこ
とを示し、スタックカウンタ回路7(第2図中5TAC
Kで表示している)がバッファレジスタ4a、  4i
+の値を全くスタックメモリ1に格納していないことを
示す状態で、第2図中ステートAと表示している。
第2Nの状態は、初期化の後でサブルーチンもしくは割
込処理が呼出された(第2図中ではCALLで表示して
いる)後で、バッファステータスフラグ5が有効データ
ありを示し、バッファステータスフラグ6が空を示し、
スタックカウンタ回路7がバッファレジスタ4A、4.
の値を全くスタックメモリ1に格納していないことを示
す状態で、第2図中ステー)Bと表示している。
第3151の状態は、バッファレジスタ4A、4Bが 
/全て空の状態であるため、スタックメモリ1がら戻り
番地を書き戻した(第2図中ではPOPで表示している
)状態で、バッファステータスフラグ5が有効データあ
りになって、バッファステータスフラグ6が空のままで
、スタックカウンタ回路7がバッファレジスタ4a、4
aの値のうち1語がスタックメモリ1に記憶されている
ことを示す状態で、第2図中ステートCと表示している
第4の状態は、第2の状態でサブルーチンもしくは割込
処理が呼出された後で、バッファステータスフラッグ5
及びバッファステータスフラグ6ともに有効データあり
となり、スタックカウンタ回路7がバッファレジスタ4
A、4Bの値を全くスタックメモリ1に記憶していない
ことを示す状態で、第2図中ステートDと表示している
第5の状態は、第2の状態からバッファレジスタ4Bが
空であるためスタックメモリ1かう戻す番地を読み出し
、もしくは、第4の状態からバッファレジスタ4Bの値
を戻るべき番地として格納した(第2図中ではPUSH
で表示している)後で、バッファステータスフラグ5及
びバッファステータスフラグ6ともに有効データありと
なり、スタックカウンタ回路7がバッファレジスタ4A
+4Bの値のうち1語をスタックメモリ1に記憶させた
ことを示す状態で、第2図中ステートEと表示している
第6の状態は、バッファレジスタ4Bが空の状態である
ため、さらにスタックメモリ1かう戻す番地を書き戻し
た状態で、バッファステータスフラグ5及びバッファス
テータスフラグ6ともに有効データありとなり、スタッ
クカウンタ回路7がバッファレジスタ4A、4mの値2
語を共にスタックメモリlに記憶させたことを示す状態
で、第2図中ステー)Fと表示している。
ここで、この実施例では、バッファレジスタ4A、4B
ともに有効データがありその値を全くスタックメモリ1
に格納していない場合にはバッファレジスタ4A、4B
からスタックメモリlに転送し、バッファレジスタ4A
もしくはバッファレジスタ43が空である場合にはスタ
ックメモリ1がら空のバッファレジスタに転送する制御
論理を採用している。上述の制御論理によって、第2図
に示す状態遷移が実現されている。
以下、この実施例の詳細な動作について、第3図の具体
的な回路例を参照しながら説明する。
第3図において、番号lから7までは第1図に示された
スタックメモリ1からスタックカウンタ回路7までと対
応し、その他の部分が制御論理回路8と対応する。
セットリセット・フリップフロップで構成された第1の
バッファステータスフラグレジスタ5は、セット状態で
バッファレジスタ4Aに戻り番地として有効データが記
憶されていることを示し、リセット状態で有効データが
記憶されていない、つまり空であることを示す。このバ
ッファステータスフラグレジスタ5は、自身がリセット
状態に有る時のスタックメモリ1からの読み出しと、サ
ブルーチンの呼出しもしくは割込処理の起動でセットさ
れ、システムの初期化(RESET)と、バッファレジ
スタ4Bが空の状態におけるザブルーチンもしくは割込
からの復帰命令を実行した時にリセットさh、その状態
信号をバッファステータスフラグAとして出力する。
セットリセット・フリップフロップで構成された第2の
バッファステータスフラグレジスタ6は、セット状態で
バッファレジスタ4Bに戻り番地として有効データが記
憶されていることを示し、リセットセット状態で空であ
ることを示す。このバッファステータスフラグレジスタ
6は、バッファレジスタ4Aに有効データがある時のス
タックメモリlからの読み出しと、バッファレジスタ4
Aに有効データがある時のサブルーチンの呼出しもしく
は割込処理の起動でセットされ、システムの初期化と、
サブレーチンもしくは割込からの復帰命令を実行した時
にリセットされる。
スタックカウンタ71は、バッファレジスタ4A、4.
の値を何語スタックメモリlに格納したかを示し、シス
テムの初期化で°″0″にクリアーされ、スタックメモ
リ1に対する書込みもしくは読み出しにてインクリメン
トし、バッファレジスタ4A、4Bともに有効データが
ある時のサブルーチンの呼比しもしくは割込処理の起動
と、自身のカウント値“2″である時もしくはカウント
値が“1”でバッファレジスタ4Bが空である時のサブ
ルーチンおよび割込からの復帰命令の実行によりディク
リメントされる。
テコーダ72は、スタックカウンタ71の値を解読して
、何語のデータがスタックメモリlに格納されているか
の信号を制御論理回路8の各部に供給する。
論理ゲートG8は、バッファレジスタ4A、4Bともに
空の状態でサブルーチンもしくは割込からの復帰命令(
図中RETで表示している)を実行しようとする動作を
検知する回路で、この出力をマイクロコンピュータの制
御部lOにも伝えて、復帰命令の実行を保留させる。
論理ゲートG9は、バッファレジスタ4A+  4aと
もに有効データであり、さらにこれらの値を全くスタッ
クメモリ1に格納していない状態にて、サブルーチンの
呼出しもしくは割込処理の起動をしようとする動作を検
知する回路で、この出力をマイクロコンピュータの制御
部10にも伝えて、前述の動作を保留させる6 論理ゲー)Gl 8.GI Oは、スタックメモリlか
らバッファレジスタ4A、4□に戻り番地のデータを読
み出す条件を判断し、マイクロコンピュータ命令処理の
ためにメインメモリ110をアクセスしてないことを反
転回路IVIから得て、バッファレジスタ4A又はバッ
ファレジスタ4Bのいずれかが空の状態ならば、スタッ
クメモリ1からの読み出し動作(図中POPと表示して
いる)を起動させる。
論理ゲー)GIIは、ノぐッファレジスタ4A。
4Bからスタックメモリ1に戻り番地のデータを格納す
る条件を判断し、バッファレジスタ4 A r4Bとも
に有効データがありマイクロコンピュータが命令処理の
ためにメインメモリ110をアクセスしてない時に、ス
タックメモリ1に対する書込み動作(図中F’USHと
表示している)を起動させる。
バッファレジスタ4A、4Bには、以下に示す5種類の
動作がある。
(1)サブルーチンの呼出しや割込処理の起動(図中C
AL、Lで表示している)において、論理ゲートG9で
CALLを保留すべきと判断されなかったナラば、バッ
ファレジスタ4Aの値をバッファレジスタ4Bに転送す
るとともにプログラムカウンタ3の値をバッファレジス
タ4Aに転送する。
(2)サブルーチンや割込処理からの復帰(図中RET
で表示している)において、論理ゲー)G8でRETを
保留すべきと判断されなかったならば、バッファレジス
タ4Aの値をプログラムカウンタ3に転送するとともに
バッファレジスタ4!lの値ヲバッファレジスタ4Aに
転送する。     ゛(3)  !理ゲートG11で
バッファレジスタ4A。
4Bの値をスタックメモリ1に格納(図中PUSHで表
示している)すべきと判断された場合、バッファレジス
タ4Bの値をスタックメモリ1に転送するとともにスタ
ックポインタ2の値を修飾する。
(4)論理ゲー)Gl Oでスタックメモリ1から・・
ツファレジスタ4A、411に戻り番地を復帰(図中P
OPと表示している)させるべきと判断され、バッファ
ステータスフラグレジスタ5の出力のバッファステータ
スフラグAが空の状態を示す場合、スタックメモリ1か
らデータを読み出してバッファレジスタ4Aに転送スる
とともにスタックポインタ2の値を修飾する。
(5)論理ゲートG10のスタックメモリ1からバッフ
ァレジスタ4A、4Bに戻り番地を復帰させるべきと判
断され、バッファステータスフラグレジスタ5の出力バ
ッファステータスフラクAが有効データありの状態を示
す場合、スタックメモリ1からデ゛−夕を読み出してバ
ッファレジスタ4Bに転送するとともにスタックポイン
タ2の値を修飾する。
上述の(3)から(5)では、スタックメモリlのアク
セスでスタックポインタ2を修飾しており、通常、スタ
ックメモリ1の書込みに先立ってスタックポインタ2を
ディクリメントし、スタックメモリ1からの読み出しの
後でスタックポインタ2をインクリメントする操作を行
なっている。
ところが、第2図の状態遷移の内、ステートFからステ
ー)Eへの遷移、及びステートEからステートDへの遷
移では、サブルーチンの呼出しでバッファレジスタ4A
、4Bに保持された有効データを捨る意味の動作になる
ため、改めてスタックメモリ1から有効データを読み出
せるようにスタックポインタ2をディクリメントしてお
く。
次に総合的な動作の一例として、ネスティングレベルが
2重のサブルーチンを呼出した場合について、第2図の
状態遷移を参照しながら説明する。
通常、システムの初期化の後ではステートAになるカ、
バッファレジスタ4Aまたはノ\ツファレジスタ4Bが
空の状態にあるので、スタックメモリlからの読み出し
を2回行なって、ステートCを経由してステートFに遷
移している。
ここで、サブルーチンが呼出されると、バッファレジス
タ4Aの値をバッファレジスタ4Bに転送しながら、プ
ログラムカウンタ3の値をバッファレジスタ4Aに記憶
して、ステートEに遷移する。この時には、バッファレ
ジスタ4A、4.ll内だけの転送で、スタックメモリ
1に対するアクセスは生じない。
さらに、サブルーチンが呼出されると、再度、バッファ
レジスタ4Aの値ヲハッファレジスタ4゜に転送しなが
ら、プログラムカウンタ3の値をバッファレジスタ4A
に記憶して、ステートDに遷移する。このステートでは
、バッファレジスタ4A、  4T3の値が全くスタッ
クメモリ1に保存されていない状態なので、スタックメ
モリ1に対する書込みが起動され、その書込みが終了す
るとステートEに遷移する。
次に、サブルーチンからの復帰命令が実行されると、バ
ッファレジスタ4Aの値をプログラムカウンタ3に戻し
ながらバッファレジスタ4Bの値をバッファレジスタ4
Aに転送して、ステー)Cに遷移する。
ステートCでは、バッファレジスタ4Bが空の状態にあ
るので、スタックメモリ1から戻り番地のデータ読み出
しが起動され、その読み出し終了でステートFに遷移す
る。
さらに、サブルーチンからの復帰命令が実行されると、
バッファレジスタ4Aの値をプログラムカウンタ3に戻
しながらバッファレジスタ43の値ヲバッファレジスタ
4Aに転送して、ステートCに遷移する。その後に、再
度、スタックメモリ1からの読み出しを行なってステー
)Fに落着く。
従って従来のデータ処理装置では、4回のスタックメモ
リ1のアクセスがあったのに対し、この実施例では3回
で済ますことが出来る。また、サブルーチンのネスティ
ングレベルが1重の場合には、呼□出しでステートFか
らステートEに遷移し、その後、復帰でステートCを経
由してステートFに戻るためスタックメモリ1に対する
アクセスが1回しか発生しない。
以上説明したように本発明の実施例では、2個のバッフ
ァレジスタに2語の戻り番地情報を記憶させているため
、ネスティングレベルが2重以下ならばスタックメモリ
に対するアクセス回数を減少さすることができる。さら
に、スタックメモリ1に対するアクセスは、マイクロコ
ンピュータが割込の許可・禁止や内部レジスタを操作し
ている時に、メインメモリ110へのアクセスが無いこ
とを検知して実行しているため、スタックメモリ1のア
クセスが生じても、このスタックメモリ1により処理速
度が低下することがなく、高速処理を行うことができる
第4図は本発明の第2の実施例を示す回路図である。
第1の実施例では2個のバッファレジスタ4A。
4ヨにより戻り番地2語記憶させているが、スタックメ
モリ1に対するアクセス回数を減少させなくとも処理速
度を向上させることが期待できるので、この第2の実施
例ではバッファレジスタ4を1個にしてハードウェア量
を減少させたものである。
次に、この実施例の動作について説明する。
第5図はこの実施例の動作を説明するための状態遷移図
であり、次に示すような3種類の状態がある。
第1の状態は、初期化された直後て、バッファステータ
スフラグレジスタ5(第5図中ステートで表示している
)が空であることを示し、スタック状態フラグレジスタ
9(第5図中5TACKで表示している)がバッファレ
ジスタ4の値をスタックメモリ1に格納していないこと
を示す状態で、第5図中ステートJと表示している。
第2の状態は、初期化の後でサブルーチンもしくは割込
処理が呼出された後で、バッファステータスフラグレジ
スタ5が有効データありを示し、スタック状態フラグレ
ジスタ9がバッファレジスタ4の値をスタックメモリ1
に格納していないことを示す状態で、第5図中ステート
にと表現している。
第3菌の状態は、バッファレジスタ4に有効データが保
持されているためバッファステータスフラグレジスタ5
がセットされており、その値がスタックメモリ1に記憶
されて(・ることをスタック状態フラグレジスタ9が示
している状態で、第5図中ステートLと表示している。
この実施例では、バッファレジスタ4に有効データがあ
ればその値をスタックメモリlに格納し、バッファレジ
スタ4が空ならばスタックメモリ1からバッファレジス
タ4に転送する制御論理を採用している。この制御論理
によって、第5図に示す状態遷移が実現されている。
次に、この実施例の詳細な動作について、第4図、第5
図を参照しながら説明する。
バツフアステータスフラグレジスタ5は、セット状態で
バッファレジスタ4に戻り番地として有効データが記憶
されていることを示し、リセット状態て有効データが記
憶されていない、つまり空であることを示す。このバッ
ファステータスフラグレジスタ5は、サブルーチンの呼
出しもしくは割込処理の起動でセットされ、システムの
初期化(RESET)と、サブルーチンもしくは割込か
らの復帰命令を実行した時にリセットされる。
スタック状態フラグレジスタ9は、セラ)状態でバッフ
ァレジスタ4の値をスタックメモリlに格納したことを
示し、リセット状態で格納していないことを示す。この
スタック状態フラグレジスタ9は、バッファレジスタ4
の値をスタックメモリ1に格納もしくは読み比したとぎ
セットされ、システムの初期化と、サブルーチンの呼出
しもしくは割込処理の起動と、サブルーチンもしくは割
込からの復帰命令を実行した時にリセットされる。
論理ゲートG8は、バッファレジスタ4が空の状態でサ
ブルーチンもしくは割込からの復帰命令(図中RETで
表示している)を実行しようとする動作を検知する回路
で、この出力はマイクロコンピュータの制御部にも伝え
られて、復帰命令の実行を保留させる。
論理ゲートG9Aは、バッファレジスタ4に有効データ
であり、さらにその値をスタックメモリ1に格納してい
ない状態で、サブルーチンの呼出しもしくは割込処理の
起動をしようとする動作を検知する回路で、この出力は
マイクロコビュータの制御部にも伝えられて、前述の動
作を保留させる。
論理ゲートG10Aは、スタックメモリ1からバッファ
レジスタ4に戻り番地のデータを読み出す条件を判断し
、マイクロコンピュータが命令処理のためにメインメモ
リをアクセスしてないことを反転回路IVIから得て、
バッファレジスタ4が空の状態で、スタック状態フラグ
レジスタ9がリセッ)[態ならば、スタックメモリ1か
らの読み出し動作(図中POPと表示している)を起動
させる。
論理ゲートGlIAは、バッファレジスタ4からスタッ
クメモリ1に戻り番地のデータを格納する条件を判断し
、バッファレジスタ4に有効テークかあり、スタック状
態フラグレジスタ9がリセット状態ならば、マイクロコ
ンピュータが命令処理のためにメインメモリをアクセス
してない時に、スタックメモリ1に対する書込み動作(
図中PUSHと表示している)を起動させる。
この実施例では、第5図の状態遷移図にも示すように、
サブルーチンの呼出しもしくは割込処理の起動でステー
トKに遷移し、バッファレジスタ4からスタックメモリ
lへの転送が行なわれ、ステー)Lになる。また、サブ
ルーチンおよび割込処理からの復帰命令の実行によりス
テートJに遷移し、スタックメモリ1からバッファレジ
スタ4への転送が行なわれて、ステー)Lになる。
従って、呼出や復帰において、必ずバッファレジスタ4
とスタックメモリ1との間で転送が行なわれるが、スタ
ックメモリ1に対するアクセスが命令処理でメインメモ
リをアクセスしない時に行なわれるため、このスタック
メモリlのアクセスにより処理速度を低下させることが
なく、高速処理を行うことができる。
なお、両実施例ともにシステムの初期化直後にバッファ
レジスタ4.4A、4Bが空であることを検知し、スタ
ックメモリ1からバッファレジスタ4.4,4.4Bへ
の転送が行なわれる回路になっているが、スタックポイ
ンタ2の上限値をコンパレータ等により判断したり、ス
タックメモリ1に格納されている語数をカウントして、
バッファレジスタ4.4A、41]の空き判別によるス
タックメモリ1からの読出しを禁止しても良い。
〔発明の効果〕
以上説明したように本発明は、プロダラムカウンタとス
タックメモリとの間に、サブルーチン呼出しや割込処理
における戻り番地を保持するバラ戻り番地の伝達を制御
する制御論理回路を設けた構成とすることにより、スタ
ックメモリのアクセスをメインメモリアクセスの無い命
令の実行トオーハラツプさせることができ、スタックメ
モリのアクセス時間を隠しこむことができるので、プロ
クラムカウンタからの戻り番地の待避、及びプロクラム
カウンタへの戻り番地の復帰を高速処理することができ
る効果がある。
【図面の簡単な説明】
第1図及び第2図はそれぞれ本発明の第1の実施例を示
すブロック図及びこの実施例の動作を説明するための状
態遷移図、第3図は第1図に示された実施例の具体的な
回路例を示す回路図、第4図及び第5図はそれぞれ本発
明の第2の実施例を示す回路図及び実施例の動作を説明
するための状態遷移図、第6図は従来のデータ処理装置
の一例を示すブロック図である。 1・・・・・スタックメモリ、2・・・・・・スタック
ポインタ、3・・・・・・プログラムカウンタ、4.4
A、4B・・・・・・バッフ7レジスタ、5,6・・・
・・・バッファステータスフラグレジスタ、7・・・・
・・スタックカウンタ回路、8.8A・・・・・制御論
理回路、9・・・・・・スタック状態フラグレジスタ、
10.10A・・・・・制御!、  20・・・テーク
バッファ回路、30・・・・内部データバス、40・・
・・命令レジスタ、50・・・・・・テフーダ、60・
・・・・・アドレスラッチ回路、70・・・・・・アド
レスバッファ回路、71・・・・・・スタックカウンタ
、72・・・・テコータ、110・・・・・・メインメ
モリ、120・・・・・テークバス、130・・・・・
・アドレスバス、140・・・・・割込ミコントローラ
、01〜G22.G9A〜Gl IA、 Gl 5A・
・・・・・論理ゲート、INI〜IN4・・・・・・イ
ンバータ。 代理人 弁理士  内 原   晋 d       \1 RESET 第2図 RESE丁 第5に

Claims (1)

  1. 【特許請求の範囲】 1、メインメモリのアドレスを指定するためのプログラ
    ムカウンタと、サブルーチンの呼出し及び割込処理を含
    む分岐処理に入るとき前記プログラムカウンタに保持さ
    れている前記分岐処理の戻り番地を格納し、前記分岐処
    理から分岐前の処理に戻るとき格納されている戻り番地
    を前記プログラムカウンタへ供給するスタックメモリと
    を有するデータ処理装置において、前記プログラムカウ
    ンタと前記スタックメモリとの間に、前記プログラムカ
    ウンタからの戻り番地の保持及びこの保持された戻り番
    地の前記スタックメモリへの伝達、並びに前記スタック
    メモリからの戻り番地の保持及びこの保持された戻り番
    地の前記プログラムカウンタへの伝達を行うバッファレ
    ジスタを設け、かつこのバッファレジスタと前記プログ
    ラムカウンタ及びスタックメモリとの間の前記戻り番地
    の伝達を制御する制御論理回路を設けたことを特徴とす
    るデータ処理装置。 2、バッファレジスタが複数段で構成された請求項1記
    載のデータ処理装置。 3、バッファレジスタに有効な戻り番地が保持されてい
    るか否かを示すバッファステータスフラグを格納する第
    1のフラグレジスタと、前記バッファレジスタに保持さ
    れた戻り番地をスタックメモリに格納したことを示すス
    タック状態フラグを格納する第2のフラグレジスタとを
    設け、制御論理回路を、これら第1及び第2のフラグレ
    ジスタに格納されているフラグの値に従って前記バッフ
    ァレジスタとプログラムカウンタ及びスタックメモリと
    の間の前記戻り番地の伝達を制御する構成とした請求項
    1記載のデータ処理装置。
JP28894190A 1990-10-26 1990-10-26 データ処理装置 Pending JPH04162135A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP28894190A JPH04162135A (ja) 1990-10-26 1990-10-26 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP28894190A JPH04162135A (ja) 1990-10-26 1990-10-26 データ処理装置

Publications (1)

Publication Number Publication Date
JPH04162135A true JPH04162135A (ja) 1992-06-05

Family

ID=17736792

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28894190A Pending JPH04162135A (ja) 1990-10-26 1990-10-26 データ処理装置

Country Status (1)

Country Link
JP (1) JPH04162135A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0992881A1 (en) * 1998-10-06 2000-04-12 Texas Instruments Inc. A processor
KR20000046572A (ko) * 1998-12-31 2000-07-25 강병호 마이크로프로세서의 인터럽트 스택 제어방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0992881A1 (en) * 1998-10-06 2000-04-12 Texas Instruments Inc. A processor
KR20000046572A (ko) * 1998-12-31 2000-07-25 강병호 마이크로프로세서의 인터럽트 스택 제어방법

Similar Documents

Publication Publication Date Title
EP0464615B1 (en) Microcomputer equipped with DMA controller
US4090238A (en) Priority vectored interrupt using direct memory access
US4949241A (en) Microcomputer system including a master processor and a slave processor synchronized by three control lines
KR100335785B1 (ko) 데이타처리명령의실행
JPH04290150A (ja) Fifoバッファの制御装置及び制御方法並びにデータ転送を制御する装置
JP2734468B2 (ja) プロセッサ
US5386519A (en) Information processing apparatus incorporating buffer storing a plurality of branch target instructions for branch instructions and interrupt requests
JP3420091B2 (ja) マイクロプロセッサ
JPH04162135A (ja) データ処理装置
US4628450A (en) Data processing system having a local memory which does not use a directory device with distributed resident programs and a method therefor
JP2643931B2 (ja) 情報処理装置
JPH0414376B2 (ja)
JPH06324861A (ja) Cpu制御システム及び制御方法
JP2501393B2 (ja) 直接メモリアクセス装置
JPH0447350A (ja) 主記憶読み出し応答制御方式
JPH05250161A (ja) マイクロコンピュータ装置
JP2635863B2 (ja) 中央処理装置
JP3239042B2 (ja) マイクロコンピュータ
JPH036758A (ja) マイクロプロセッサ
JP2591211B2 (ja) 高速割込み処理装置
JPS6218933B2 (ja)
JPS60193046A (ja) 命令例外検出方式
JPH05324871A (ja) マイクロコンピュータ
JPH0424733B2 (ja)
JPS6221130B2 (ja)