JPH04162135A - Data processor - Google Patents

Data processor

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
Japanese (ja)
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/en
Publication of JPH04162135A publication Critical patent/JPH04162135A/en
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

PURPOSE:To decrease the accesses given to a stack memory in the sub-routine cell and interruption processing operations by storing the return address information in a buffer register provided between a program counter and the stack memory. CONSTITUTION:A buffer register 4 provided between 8 program counter 3 and a stack memory 1 holds the return addresses in the sub-routine cell and interruption processing operations. A control logic circuit 8 controls the transmission of return addresses among the register 4, the counter 5 end the memory 1. Thus the access to the memory 1 can overlap the execution of an instruction having no access to a main memory. Furthermore the access time of the memory 1 can be hidden. As a result, the return address received from the counter 3 is saved and the return address is reset to the counter 3 respectively at a high speed.

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、データ処理装置に関し、特にストアード・プ
ログラム制御により、サブルーチン呼圧しや割込処理に
おいて戻り番地を記憶するスタックメモリを備えた構成
のデータ処理装置に関する。
DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to a data processing device, and in particular to a data processing device configured to have a stack memory for storing a return address during subroutine calling or interrupt processing under stored program control. The present invention relates to a data processing device.

口従来の技術〕 ストアード・プログラム制御のデータ処理装置としては
、マイクロコンピュータが知られており、メモリに記憶
させるプログラムにより各種の機能を実現できることか
ら、各種の機器で応用されている。
BACKGROUND ART Microcomputers are known as stored program controlled data processing devices, and are used in a variety of devices because they can implement various functions using programs stored in memory.

コノマイクロフンピユータは、当初は電卓ヤタイマーな
ど、計算やデータ処理を行なう機器から利用が始ったが
、近年、自動車のエンジンやブレーキの制御、さらには
VTRのサーボモータ制御など、高速で動作するものの
状態を検知してその動作を制御する信号を発生する機器
にも利用されている。
Konomi Computers were first used in devices that performed calculations and data processing, such as calculators and timers, but in recent years, they have been used in applications that operate at high speeds, such as the control of automobile engines and brakes, and even the servo motor control of VTRs. It is also used in devices that detect the state of objects and generate signals to control their operations.

これらのリアルタイムで処理を行なう応用では、高速で
処理が行なえるマイクロコンピュータが望まれており、
特に、外部の変化を素速く検知してブロクラム処理を切
換える、割込処理の応答速度が重視されている。
In these real-time processing applications, microcomputers that can perform high-speed processing are desired.
In particular, emphasis is placed on the response speed of interrupt processing, which quickly detects external changes and switches block diagram processing.

従来のデータ処理装置の一例について、第6図に示され
たブロック図を参照して説明する。
An example of a conventional data processing device will be described with reference to the block diagram shown in FIG.

このデータ処理装置は、プロクラムカウンタ鴬の値をプ
ログラムのアドレスとしてアドレスバス130に出力し
てメインメモリー10から命令語を読み出し、データバ
ス120.データータハス30を経由して命令レジスタ
40に取込んで、命令の解釈ならびに処理を行っている
This data processing device outputs the value of the program counter 120 to the address bus 130 as a program address, reads the instruction word from the main memory 10, and reads the instruction word from the data bus 120. The command is fetched into the instruction register 40 via the data bus 30, and the command is interpreted and processed.

割込処理は、このデータ処理装置(マイクロフンピユー
タ)に割込コントレーラ140を接続し、割込コントロ
ーラー40で割込信号の発生を検知して制御部10Aの
割込要求端子(INT)に信号を入力することによって
実現している。この制御としては、割込処理のプログラ
ムを実行した後で、割込を受は付けた以前のプログラム
処理を再開する必要があるため、サブルーチンの呼出し
と同様な処理を行なっている。
For interrupt processing, an interrupt controller 140 is connected to this data processing device (microphone computer), and the interrupt controller 40 detects the occurrence of an interrupt signal and sends it to the interrupt request terminal (INT) of the control unit 10A. This is achieved by inputting a signal. For this control, after executing the interrupt processing program, it is necessary to restart the previous program processing in which the interrupt was accepted, so processing similar to calling a subroutine is performed.

つまり、割込の受は付けにて、実行中のプログラムのア
ドレス値であるプログラムカウンタ2の値をスタックメ
モリlに待避させたあと、プロクラムカウンタ3に割込
処理プログラムのアドレス値を設定し、割込処理プログ
ラムの実行を開始する。さらに、割込処理が終った時に
は、リターン命令を実行して、待避させておいたプログ
ラムのアドレス値をスタックメモリ1からプログラムカ
ウンタ3に復帰させて、中断したプログラム処理を再開
させる。
In other words, when accepting an interrupt, the value of program counter 2, which is the address value of the program being executed, is saved in stack memory l, and then the address value of the interrupt processing program is set in program counter 3. Start execution of the interrupt processing program. Further, when the interrupt processing is finished, a return instruction is executed to restore the address value of the saved program from the stack memory 1 to the program counter 3, thereby restarting the interrupted program processing.

ここで、スタックメモリ1は、最後に書込んだデータが
最初に読み出される構造のメモリで、スタックポインタ
2によってこのスタックメモリ1のアドレスを指定し、
スタックメモリlに対するデータの書込みまたは読み出
しに連動して、スタックポインタ2をインクリメントも
しくはデクリメントさせる。
Here, the stack memory 1 is a memory with a structure in which the data written last is read out first, and the address of this stack memory 1 is specified by the stack pointer 2,
The stack pointer 2 is incremented or decremented in conjunction with data writing or reading from the stack memory l.

また、スタックメモリ1のデータ幅は8ビツト(以下1
バイトという)であり、プログラムカウンタ3のデータ
幅は16ビツト (2バイト)となっている。
Furthermore, the data width of stack memory 1 is 8 bits (hereinafter referred to as 1
The data width of the program counter 3 is 16 bits (2 bytes).

〔発明が解決しようとする課題〕[Problem to be solved by the invention]

上述した従来のデータ処理装置は、データ幅1バイトの
スタックメモリlと、データ幅2バイトのプログラムカ
ウンタ3とを備え、サブルーチンノ呼出しや割込処理の
たびにスタックメモリlをアクセスする構成となってい
るので、プログラムカウンタ3の値の待避と復帰でスタ
ックメモリ1に対するメモリ・アクセスヘマし、処理時
間が増大するという問題点がある。つまり、サブルーチ
ンヲ例に説明すると、スタックメモリ1のデータ幅は1
バイトであり、プログラムカウンタ3が2バイトである
ため、サブルーチンの呼比しでは、呼出し命令を判断す
るために1バイト、さらに分岐先アドレスを得るため2
ハイドの命令フェッチと、プログラムカウンタ3の値を
待避するため2ハイトノメモリ書込みがあり、サブルー
チンがらの復帰では、リターン命令を判断するため1バ
イトの命令フェッチとプログラムカウンタ3の値を復帰
させるため2バイトのメモリ読み出しがある。
The conventional data processing device described above includes a stack memory 1 with a data width of 1 byte and a program counter 3 with a data width of 2 bytes, and has a structure in which the stack memory 1 is accessed every time a subroutine is called or interrupt processing is performed. Therefore, there is a problem that memory access to the stack memory 1 is slow due to saving and restoring the value of the program counter 3, and processing time increases. In other words, to explain the subroutine as an example, the data width of stack memory 1 is 1
Since the program counter 3 is 2 bytes, in subroutine call comparison, 1 byte is required to determine the calling instruction, and 2 bytes are required to obtain the branch destination address.
There is a Hyde instruction fetch and a 2-high memory write to save the value of program counter 3. When returning from a subroutine, there is a 1-byte instruction fetch to determine the return instruction and a 2-byte memory write to restore the value of program counter 3. There is a 2-byte memory read.

従って、スタックメモリ1に対するアクセスが、命令フ
ェッチと同じ回数となる。
Therefore, the number of accesses to the stack memory 1 is the same as the number of instruction fetches.

ストアーF・プログラム制御のデータ処理装置では、メ
モリ・アクセスの速度によって、処理能力が支配される
ことが知られており、前述のメモリ・アクセスを減らす
手8望まれている。特にリアルタイムで制御を行なう応
用では、頻繁に割込が発生するため、スタックメモリに
対するアクセスを減少できれば、トータルでの処理能力
を上げることが可能になる。
It is known that the processing capacity of a data processing device controlled by a store F program is dominated by the speed of memory access, and there is a desire to reduce the aforementioned memory access. Particularly in applications that perform real-time control, interrupts occur frequently, so if access to stack memory can be reduced, total processing capacity can be increased.

本発明の目的は、サブルーチンの呼出しや割込処理にお
ける、スタックメモリへのアクセスを減少させ、処理能
力を上げることができるデータ処理装置を提供すること
にある。
SUMMARY OF THE INVENTION An object of the present invention is to provide a data processing device that can reduce access to stack memory during subroutine calls and interrupt processing, and increase processing performance.

5課題を解決するための手段〕 本発明のデータ処理装置は、メインメモリのアドレスを
指定するためのプログラムカウンタと、サブルーチンの
呼出し及び割込処理を含む分岐処理に入るとき前記プロ
グラムカウンタに保持されている前記分岐処理の戻り番
地を格納し、前記分岐処理から分岐前の処理に戻るとき
格納されている戻り番地を前記プログラムカウンタべ供
給するスタックメモリとを有するデータ処理装置におい
て、前記プログラムカウンタと前記スタックメモリとの
間に、前記プログラムカウンタからの戻り番地の保持及
びこの保持された戻り番地の前記スタックメモリへの伝
達、並びに前記スタックメモリからの戻り番地の保持及
びこの保持された戻り番地の前記プログラムカウンタべ
の伝達を行うバッファレジスタを設け、かつこのバッフ
ァレジスタと前記プログラムカウンタ及びスタックメモ
リとの間の前記戻り番地の伝達を制御する制御論理回路
を設けて構成される。
5 Means for Solving Problems] The data processing device of the present invention includes a program counter for specifying an address in the main memory, and a program counter that is retained in the program counter when entering branch processing including subroutine calling and interrupt processing. a stack memory that stores a return address of the branch processing that is being executed, and supplies the stored return address to the program counter when returning from the branch processing to processing before the branch; A method for holding a return address from the program counter and transmitting the held return address to the stack memory, and holding a return address from the stack memory and transmitting the held return address to the stack memory. A buffer register is provided for transmitting the program counter data, and a control logic circuit is provided for controlling the transfer of the return address between the buffer register and the program counter and stack memory.

〔実施例〕〔Example〕

次に、本発明の実施例について図面を参照して説明する
Next, embodiments of the present invention will be described with reference to the drawings.

第1図は本発明の第1の実施例を示すブロック図である
FIG. 1 is a block diagram showing a first embodiment of the present invention.

この実施例は、スタックポインタ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とを有する構成と
なっている。
This embodiment includes a stack memory 1 that stores return addresses in subroutine calls and interrupt processing at addresses specified by a stack pointer 2, and a program counter 3 that stores address data for specifying addresses in the main memory. is provided in two stages between the stack memory 1 and the program counter 3, and is used to hold the return address from the program counter 3, transmit the held return address to the stack memory l, and stack memory 1.
a buffer register 4 that holds the return address from and transmits the held return address to the program counter 3;
A+ 4B, indicates whether a valid return address is held in the buffer register 4A, and a buffer status flag register 5, which stores a buffer status flag, and indicates whether a valid return address is held in the buffer register 4B. a buffer status flag register 6 that stores a buffer status flag indicating the buffer status flag; and a stack counter circuit 7 that stores data indicating how many return addresses from the buffer register 4B have been stored in the stack memory 1.
Then, according to the control unit 10, the return address is transmitted between the buffer registers 4A, 411, the program counter 3, and the stack memory l by referring to the data stored in the buffer status flag register 5.6 and the stack counter circuit 7. The configuration includes a control logic circuit 8 for controlling the .

次に、この実施例を動作について説明する。Next, the operation of this embodiment will be explained.

第2図はこの実施例の動作状態を説明するための状態遷
移図であり、次に示すような6種類の状態がある。
FIG. 2 is a state transition diagram for explaining the operating states of this embodiment, and there are six types of states as shown below.

第1の状態は、初期化(第2図中ではRESETで表示
している)された直後で、−バッファステータスフラグ
5(第2図中BUFAで表示している)とバッファステ
ータスフラグ6(第2図中EUFBで表示している)が
共に空(第2−中ではEmpで表示している)であるこ
とを示し、スタックカウンタ回路7(第2図中5TAC
Kで表示している)がバッファレジスタ4a、  4i
+の値を全くスタックメモリ1に格納していないことを
示す状態で、第2図中ステートAと表示している。
The first state is immediately after initialization (represented by RESET in Figure 2), and - buffer status flag 5 (represented by BUFA in Figure 2) and buffer status flag 6 (represented by BUFA in Figure 2). The stack counter circuit 7 (indicated by EUFB in Fig. 2) is empty (indicated by Emp in Fig. 2), and the stack counter circuit 7 (indicated by 5TAC in Fig.
) are buffer registers 4a, 4i
This state is indicated as state A in FIG. 2, indicating that no + value is stored in the stack memory 1.

第2Nの状態は、初期化の後でサブルーチンもしくは割
込処理が呼出された(第2図中ではCALLで表示して
いる)後で、バッファステータスフラグ5が有効データ
ありを示し、バッファステータスフラグ6が空を示し、
スタックカウンタ回路7がバッファレジスタ4A、4.
の値を全くスタックメモリ1に格納していないことを示
す状態で、第2図中ステー)Bと表示している。
In the 2N state, after the subroutine or interrupt processing is called after initialization (indicated by CALL in Figure 2), the buffer status flag 5 indicates that there is valid data, and the buffer status flag 5 indicates that there is valid data. 6 indicates the sky,
The stack counter circuit 7 is connected to the buffer registers 4A, 4.
In FIG. 2, B is displayed to indicate that the value of is not stored in the stack memory 1 at all.

第3151の状態は、バッファレジスタ4A、4Bが 
/全て空の状態であるため、スタックメモリ1がら戻り
番地を書き戻した(第2図中ではPOPで表示している
)状態で、バッファステータスフラグ5が有効データあ
りになって、バッファステータスフラグ6が空のままで
、スタックカウンタ回路7がバッファレジスタ4a、4
aの値のうち1語がスタックメモリ1に記憶されている
ことを示す状態で、第2図中ステートCと表示している
In the 3151st state, buffer registers 4A and 4B are
/ Since all of them are empty, when the return address is written back from stack memory 1 (indicated by POP in Figure 2), buffer status flag 5 becomes valid data, and the buffer status flag 6 remains empty, and the stack counter circuit 7 fills the buffer registers 4a and 4.
A state indicating that one word of the value of a is stored in the stack memory 1 is indicated as state C in FIG.

第4の状態は、第2の状態でサブルーチンもしくは割込
処理が呼出された後で、バッファステータスフラッグ5
及びバッファステータスフラグ6ともに有効データあり
となり、スタックカウンタ回路7がバッファレジスタ4
A、4Bの値を全くスタックメモリ1に記憶していない
ことを示す状態で、第2図中ステートDと表示している
In the fourth state, the buffer status flag 5 is set after the subroutine or interrupt processing is called in the second state.
and buffer status flag 6 both indicate valid data, and stack counter circuit 7 registers buffer register 4.
State D in FIG. 2 indicates that the values of A and 4B are not stored in the stack memory 1 at all.

第5の状態は、第2の状態からバッファレジスタ4Bが
空であるためスタックメモリ1かう戻す番地を読み出し
、もしくは、第4の状態からバッファレジスタ4Bの値
を戻るべき番地として格納した(第2図中ではPUSH
で表示している)後で、バッファステータスフラグ5及
びバッファステータスフラグ6ともに有効データありと
なり、スタックカウンタ回路7がバッファレジスタ4A
+4Bの値のうち1語をスタックメモリ1に記憶させた
ことを示す状態で、第2図中ステートEと表示している
In the fifth state, since the buffer register 4B is empty from the second state, the address to return to is read from the stack memory 1, or the value of the buffer register 4B from the fourth state is stored as the address to return to (the second state). In the diagram, PUSH
) Later, both the buffer status flag 5 and the buffer status flag 6 become valid data, and the stack counter circuit 7 registers the buffer register 4A.
A state indicating that one word of the value +4B has been stored in the stack memory 1 is indicated as state E in FIG.

第6の状態は、バッファレジスタ4Bが空の状態である
ため、さらにスタックメモリ1かう戻す番地を書き戻し
た状態で、バッファステータスフラグ5及びバッファス
テータスフラグ6ともに有効データありとなり、スタッ
クカウンタ回路7がバッファレジスタ4A、4mの値2
語を共にスタックメモリlに記憶させたことを示す状態
で、第2図中ステー)Fと表示している。
In the sixth state, since the buffer register 4B is empty, the address to be returned to the stack memory 1 is written back, and both the buffer status flag 5 and the buffer status flag 6 have valid data, and the stack counter circuit 7 is the value 2 of buffer registers 4A and 4m
In FIG. 2, F is displayed to indicate that both words have been stored in the stack memory l.

ここで、この実施例では、バッファレジスタ4A、4B
ともに有効データがありその値を全くスタックメモリ1
に格納していない場合にはバッファレジスタ4A、4B
からスタックメモリlに転送し、バッファレジスタ4A
もしくはバッファレジスタ43が空である場合にはスタ
ックメモリ1がら空のバッファレジスタに転送する制御
論理を採用している。上述の制御論理によって、第2図
に示す状態遷移が実現されている。
Here, in this embodiment, buffer registers 4A, 4B
Both have valid data and their values are completely stored in stack memory 1.
If not stored in buffer registers 4A and 4B
from the stack memory l and transfer it to the buffer register 4A.
Alternatively, if the buffer register 43 is empty, a control logic is adopted that transfers the stack memory 1 to the empty buffer register. The state transition shown in FIG. 2 is realized by the control logic described above.

以下、この実施例の詳細な動作について、第3図の具体
的な回路例を参照しながら説明する。
The detailed operation of this embodiment will be explained below with reference to the specific circuit example shown in FIG.

第3図において、番号lから7までは第1図に示された
スタックメモリ1からスタックカウンタ回路7までと対
応し、その他の部分が制御論理回路8と対応する。
In FIG. 3, numbers l to 7 correspond to stack memory 1 to stack counter circuit 7 shown in FIG. 1, and other parts correspond to control logic circuit 8.

セットリセット・フリップフロップで構成された第1の
バッファステータスフラグレジスタ5は、セット状態で
バッファレジスタ4Aに戻り番地として有効データが記
憶されていることを示し、リセット状態で有効データが
記憶されていない、つまり空であることを示す。このバ
ッファステータスフラグレジスタ5は、自身がリセット
状態に有る時のスタックメモリ1からの読み出しと、サ
ブルーチンの呼出しもしくは割込処理の起動でセットさ
れ、システムの初期化(RESET)と、バッファレジ
スタ4Bが空の状態におけるザブルーチンもしくは割込
からの復帰命令を実行した時にリセットさh、その状態
信号をバッファステータスフラグAとして出力する。
The first buffer status flag register 5, which is composed of a set-reset flip-flop, indicates that valid data is stored as a return address in the buffer register 4A in the set state, and indicates that no valid data is stored in the reset state. , indicating that it is empty. This buffer status flag register 5 is set when it is read from the stack memory 1 when it is in the reset state, when a subroutine is called or when an interrupt process is started, and when the system is initialized (RESET) and the buffer register 4B is set. It is reset when a subroutine in an empty state or a return instruction from an interrupt is executed, and its status signal is output as the buffer status flag A.

セットリセット・フリップフロップで構成された第2の
バッファステータスフラグレジスタ6は、セット状態で
バッファレジスタ4Bに戻り番地として有効データが記
憶されていることを示し、リセットセット状態で空であ
ることを示す。このバッファステータスフラグレジスタ
6は、バッファレジスタ4Aに有効データがある時のス
タックメモリlからの読み出しと、バッファレジスタ4
Aに有効データがある時のサブルーチンの呼出しもしく
は割込処理の起動でセットされ、システムの初期化と、
サブレーチンもしくは割込からの復帰命令を実行した時
にリセットされる。
The second buffer status flag register 6, which is composed of a set-reset flip-flop, indicates that valid data is stored in the buffer register 4B as a return address in the set state, and indicates that it is empty in the reset-set state. . This buffer status flag register 6 is used for reading from the stack memory l when there is valid data in the buffer register 4A, and for reading from the stack memory l when there is valid data in the buffer register 4A.
It is set when a subroutine is called or interrupt processing is started when there is valid data in A, and the system is initialized.
It is reset when a sub-latin or interrupt return instruction is executed.

スタックカウンタ71は、バッファレジスタ4A、4.
の値を何語スタックメモリlに格納したかを示し、シス
テムの初期化で°″0″にクリアーされ、スタックメモ
リ1に対する書込みもしくは読み出しにてインクリメン
トし、バッファレジスタ4A、4Bともに有効データが
ある時のサブルーチンの呼比しもしくは割込処理の起動
と、自身のカウント値“2″である時もしくはカウント
値が“1”でバッファレジスタ4Bが空である時のサブ
ルーチンおよび割込からの復帰命令の実行によりディク
リメントされる。
Stack counter 71 includes buffer registers 4A, 4.
Indicates how many words have been stored in the stack memory 1, and is cleared to 0 when the system is initialized, and is incremented when writing or reading stack memory 1, and both buffer registers 4A and 4B have valid data. Command to call the subroutine or start interrupt processing at the time, and return from the subroutine and interrupt when its own count value is "2" or when the count value is "1" and the buffer register 4B is empty. is decremented by the execution of .

テコーダ72は、スタックカウンタ71の値を解読して
、何語のデータがスタックメモリlに格納されているか
の信号を制御論理回路8の各部に供給する。
The decoder 72 decodes the value of the stack counter 71 and supplies each part of the control logic circuit 8 with a signal indicating how many words of data are stored in the stack memory l.

論理ゲートG8は、バッファレジスタ4A、4Bともに
空の状態でサブルーチンもしくは割込からの復帰命令(
図中RETで表示している)を実行しようとする動作を
検知する回路で、この出力をマイクロコンピュータの制
御部lOにも伝えて、復帰命令の実行を保留させる。
Logic gate G8 receives a return instruction (from a subroutine or interrupt) when both buffer registers 4A and 4B are empty.
This circuit detects an attempt to execute a command (represented by RET in the figure), and transmits this output to the microcomputer control unit 10 to suspend execution of the return command.

論理ゲートG9は、バッファレジスタ4A+  4aと
もに有効データであり、さらにこれらの値を全くスタッ
クメモリ1に格納していない状態にて、サブルーチンの
呼出しもしくは割込処理の起動をしようとする動作を検
知する回路で、この出力をマイクロコンピュータの制御
部10にも伝えて、前述の動作を保留させる6 論理ゲー)Gl 8.GI Oは、スタックメモリlか
らバッファレジスタ4A、4□に戻り番地のデータを読
み出す条件を判断し、マイクロコンピュータ命令処理の
ためにメインメモリ110をアクセスしてないことを反
転回路IVIから得て、バッファレジスタ4A又はバッ
ファレジスタ4Bのいずれかが空の状態ならば、スタッ
クメモリ1からの読み出し動作(図中POPと表示して
いる)を起動させる。
Logic gate G9 detects an attempt to call a subroutine or start interrupt processing when both buffer registers 4A+4a are valid data and these values are not stored in stack memory 1 at all. The circuit also transmits this output to the control unit 10 of the microcomputer to suspend the above-mentioned operation.6 Logic Game) Gl 8. The GIO determines the conditions for reading the data at the return address from the stack memory l to the buffer registers 4A and 4□, and obtains from the inversion circuit IVI that the main memory 110 is not being accessed for microcomputer instruction processing. If either the buffer register 4A or the buffer register 4B is empty, a read operation from the stack memory 1 (indicated by POP in the figure) is activated.

論理ゲー)GIIは、ノぐッファレジスタ4A。Logic game) GII is the noguffa register 4A.

4Bからスタックメモリ1に戻り番地のデータを格納す
る条件を判断し、バッファレジスタ4 A r4Bとも
に有効データがありマイクロコンピュータが命令処理の
ためにメインメモリ110をアクセスしてない時に、ス
タックメモリ1に対する書込み動作(図中F’USHと
表示している)を起動させる。
The condition for storing the data at the return address from 4B to stack memory 1 is determined, and when buffer registers 4A and 4B both have valid data and the microcomputer is not accessing main memory 110 for instruction processing, Start the write operation (displayed as F'USH in the figure).

バッファレジスタ4A、4Bには、以下に示す5種類の
動作がある。
The buffer registers 4A and 4B have five types of operations as shown below.

(1)サブルーチンの呼出しや割込処理の起動(図中C
AL、Lで表示している)において、論理ゲートG9で
CALLを保留すべきと判断されなかったナラば、バッ
ファレジスタ4Aの値をバッファレジスタ4Bに転送す
るとともにプログラムカウンタ3の値をバッファレジス
タ4Aに転送する。
(1) Calling a subroutine and starting interrupt processing (C in the diagram)
(indicated by AL, L), if logic gate G9 does not determine that the CALL should be suspended, the value of buffer register 4A is transferred to buffer register 4B, and the value of program counter 3 is transferred to buffer register 4A. Transfer to.

(2)サブルーチンや割込処理からの復帰(図中RET
で表示している)において、論理ゲー)G8でRETを
保留すべきと判断されなかったならば、バッファレジス
タ4Aの値をプログラムカウンタ3に転送するとともに
バッファレジスタ4!lの値ヲバッファレジスタ4Aに
転送する。     ゛(3)  !理ゲートG11で
バッファレジスタ4A。
(2) Returning from a subroutine or interrupt processing (RET in the figure)
If it is not determined in logic game G8 that RET should be suspended, the value of buffer register 4A is transferred to program counter 3, and the value of buffer register 4A is transferred to program counter 3. The value of l is transferred to the buffer register 4A.゛(3)! buffer register 4A at control gate G11.

4Bの値をスタックメモリ1に格納(図中PUSHで表
示している)すべきと判断された場合、バッファレジス
タ4Bの値をスタックメモリ1に転送するとともにスタ
ックポインタ2の値を修飾する。
When it is determined that the value of buffer register 4B should be stored in stack memory 1 (indicated by PUSH in the figure), the value of buffer register 4B is transferred to stack memory 1, and the value of stack pointer 2 is modified.

(4)論理ゲー)Gl Oでスタックメモリ1から・・
ツファレジスタ4A、411に戻り番地を復帰(図中P
OPと表示している)させるべきと判断され、バッファ
ステータスフラグレジスタ5の出力のバッファステータ
スフラグAが空の状態を示す場合、スタックメモリ1か
らデータを読み出してバッファレジスタ4Aに転送スる
とともにスタックポインタ2の値を修飾する。
(4) Logic game) From stack memory 1 with Gl O...
Return address to Tufa registers 4A and 411 (P in the figure)
If it is determined that the buffer status flag A output from the buffer status flag register 5 indicates an empty state, the data is read from the stack memory 1 and transferred to the buffer register 4A, and the stack is Modify the value of pointer 2.

(5)論理ゲートG10のスタックメモリ1からバッフ
ァレジスタ4A、4Bに戻り番地を復帰させるべきと判
断され、バッファステータスフラグレジスタ5の出力バ
ッファステータスフラクAが有効データありの状態を示
す場合、スタックメモリ1からデ゛−夕を読み出してバ
ッファレジスタ4Bに転送するとともにスタックポイン
タ2の値を修飾する。
(5) If it is determined that the return address should be restored from the stack memory 1 of the logic gate G10 to the buffer registers 4A and 4B, and the output buffer status flag A of the buffer status flag register 5 indicates that there is valid data, the stack memory The data is read from 1 and transferred to buffer register 4B, and the value of stack pointer 2 is modified.

上述の(3)から(5)では、スタックメモリlのアク
セスでスタックポインタ2を修飾しており、通常、スタ
ックメモリ1の書込みに先立ってスタックポインタ2を
ディクリメントし、スタックメモリ1からの読み出しの
後でスタックポインタ2をインクリメントする操作を行
なっている。
In (3) to (5) above, stack pointer 2 is modified by accessing stack memory l, and normally stack pointer 2 is decremented before writing to stack memory 1, and reading from stack memory 1 is After that, an operation is performed to increment stack pointer 2.

ところが、第2図の状態遷移の内、ステートFからステ
ー)Eへの遷移、及びステートEからステートDへの遷
移では、サブルーチンの呼出しでバッファレジスタ4A
、4Bに保持された有効データを捨る意味の動作になる
ため、改めてスタックメモリ1から有効データを読み出
せるようにスタックポインタ2をディクリメントしてお
く。
However, among the state transitions in FIG. 2, in the transition from state F to state E and from state E to state D, the buffer register 4A is
, 4B, the stack pointer 2 is decremented so that the valid data can be read out from the stack memory 1 again.

次に総合的な動作の一例として、ネスティングレベルが
2重のサブルーチンを呼出した場合について、第2図の
状態遷移を参照しながら説明する。
Next, as an example of overall operation, a case where subroutines with double nesting levels are called will be described with reference to the state transitions in FIG. 2.

通常、システムの初期化の後ではステートAになるカ、
バッファレジスタ4Aまたはノ\ツファレジスタ4Bが
空の状態にあるので、スタックメモリlからの読み出し
を2回行なって、ステートCを経由してステートFに遷
移している。
Normally, after system initialization, it will be in state A.
Since the buffer register 4A or the buffer register 4B is in an empty state, reading from the stack memory I is performed twice, and a transition is made to state F via state C.

ここで、サブルーチンが呼出されると、バッファレジス
タ4Aの値をバッファレジスタ4Bに転送しながら、プ
ログラムカウンタ3の値をバッファレジスタ4Aに記憶
して、ステートEに遷移する。この時には、バッファレ
ジスタ4A、4.ll内だけの転送で、スタックメモリ
1に対するアクセスは生じない。
Here, when the subroutine is called, the value of the program counter 3 is stored in the buffer register 4A while the value of the buffer register 4A is transferred to the buffer register 4B, and a transition is made to state E. At this time, buffer registers 4A, 4. The transfer is only within ll, and no access to stack memory 1 occurs.

さらに、サブルーチンが呼出されると、再度、バッファ
レジスタ4Aの値ヲハッファレジスタ4゜に転送しなが
ら、プログラムカウンタ3の値をバッファレジスタ4A
に記憶して、ステートDに遷移する。このステートでは
、バッファレジスタ4A、  4T3の値が全くスタッ
クメモリ1に保存されていない状態なので、スタックメ
モリ1に対する書込みが起動され、その書込みが終了す
るとステートEに遷移する。
Furthermore, when the subroutine is called, the value of the program counter 3 is transferred to the buffer register 4A again while the value of the buffer register 4A is transferred to the buffer register 4°.
, and transitions to state D. In this state, the values of the buffer registers 4A and 4T3 are not stored in the stack memory 1 at all, so writing to the stack memory 1 is started, and when the writing is completed, a transition is made to state E.

次に、サブルーチンからの復帰命令が実行されると、バ
ッファレジスタ4Aの値をプログラムカウンタ3に戻し
ながらバッファレジスタ4Bの値をバッファレジスタ4
Aに転送して、ステー)Cに遷移する。
Next, when a return instruction from the subroutine is executed, the value of the buffer register 4B is returned to the program counter 3 while the value of the buffer register 4A is returned to the program counter 3.
Transfer to A and transition to STATE)C.

ステートCでは、バッファレジスタ4Bが空の状態にあ
るので、スタックメモリ1から戻り番地のデータ読み出
しが起動され、その読み出し終了でステートFに遷移す
る。
In state C, since the buffer register 4B is empty, reading of data at the return address from the stack memory 1 is started, and a transition is made to state F when the reading is completed.

さらに、サブルーチンからの復帰命令が実行されると、
バッファレジスタ4Aの値をプログラムカウンタ3に戻
しながらバッファレジスタ43の値ヲバッファレジスタ
4Aに転送して、ステートCに遷移する。その後に、再
度、スタックメモリ1からの読み出しを行なってステー
)Fに落着く。
Furthermore, when a return instruction from a subroutine is executed,
While returning the value of the buffer register 4A to the program counter 3, the value of the buffer register 43 is transferred to the buffer register 4A, and a transition is made to state C. Thereafter, reading from the stack memory 1 is performed again, and the process settles on stage (F).

従って従来のデータ処理装置では、4回のスタックメモ
リ1のアクセスがあったのに対し、この実施例では3回
で済ますことが出来る。また、サブルーチンのネスティ
ングレベルが1重の場合には、呼□出しでステートFか
らステートEに遷移し、その後、復帰でステートCを経
由してステートFに戻るためスタックメモリ1に対する
アクセスが1回しか発生しない。
Therefore, whereas in the conventional data processing apparatus, the stack memory 1 is accessed four times, in this embodiment, the access can be accessed only three times. Furthermore, if the nesting level of the subroutine is one, the stack memory 1 is accessed once because the call □ transitions from state F to state E, and then returns to state F via state C. only occurs.

以上説明したように本発明の実施例では、2個のバッフ
ァレジスタに2語の戻り番地情報を記憶させているため
、ネスティングレベルが2重以下ならばスタックメモリ
に対するアクセス回数を減少さすることができる。さら
に、スタックメモリ1に対するアクセスは、マイクロコ
ンピュータが割込の許可・禁止や内部レジスタを操作し
ている時に、メインメモリ110へのアクセスが無いこ
とを検知して実行しているため、スタックメモリ1のア
クセスが生じても、このスタックメモリ1により処理速
度が低下することがなく、高速処理を行うことができる
As explained above, in the embodiment of the present invention, two words of return address information are stored in two buffer registers, so if the nesting level is two or less, the number of accesses to the stack memory can be reduced. can. Furthermore, access to the stack memory 1 is executed by detecting that there is no access to the main memory 110 while the microcomputer is enabling or disabling interrupts or operating internal registers. Even if accesses occur, the stack memory 1 prevents the processing speed from decreasing, allowing high-speed processing to be performed.

第4図は本発明の第2の実施例を示す回路図である。FIG. 4 is a circuit diagram showing a second embodiment of the present invention.

第1の実施例では2個のバッファレジスタ4A。In the first embodiment, there are two buffer registers 4A.

4ヨにより戻り番地2語記憶させているが、スタックメ
モリ1に対するアクセス回数を減少させなくとも処理速
度を向上させることが期待できるので、この第2の実施
例ではバッファレジスタ4を1個にしてハードウェア量
を減少させたものである。
Although 2 words of the return address are stored using 4-Yo, it is expected that the processing speed will be improved without reducing the number of accesses to the stack memory 1, so in this second embodiment, the number of buffer registers 4 is reduced to one. This reduces the amount of hardware.

次に、この実施例の動作について説明する。Next, the operation of this embodiment will be explained.

第5図はこの実施例の動作を説明するための状態遷移図
であり、次に示すような3種類の状態がある。
FIG. 5 is a state transition diagram for explaining the operation of this embodiment, and there are three types of states as shown below.

第1の状態は、初期化された直後て、バッファステータ
スフラグレジスタ5(第5図中ステートで表示している
)が空であることを示し、スタック状態フラグレジスタ
9(第5図中5TACKで表示している)がバッファレ
ジスタ4の値をスタックメモリ1に格納していないこと
を示す状態で、第5図中ステートJと表示している。
In the first state, immediately after initialization, the buffer status flag register 5 (indicated by state in Figure 5) is empty, and the stack status flag register 9 (indicated by 5TACK in Figure 5) is empty. State J in FIG. 5 indicates that the value of the buffer register 4 is not stored in the stack memory 1.

第2の状態は、初期化の後でサブルーチンもしくは割込
処理が呼出された後で、バッファステータスフラグレジ
スタ5が有効データありを示し、スタック状態フラグレ
ジスタ9がバッファレジスタ4の値をスタックメモリ1
に格納していないことを示す状態で、第5図中ステート
にと表現している。
In the second state, after the subroutine or interrupt processing is called after initialization, the buffer status flag register 5 indicates that there is valid data, and the stack status flag register 9 transfers the value of the buffer register 4 to the stack memory 1.
The state shown in FIG. 5 indicates that the state is not stored in the state.

第3菌の状態は、バッファレジスタ4に有効データが保
持されているためバッファステータスフラグレジスタ5
がセットされており、その値がスタックメモリ1に記憶
されて(・ることをスタック状態フラグレジスタ9が示
している状態で、第5図中ステートLと表示している。
The status of the third bacterium is determined by the buffer status flag register 5 because valid data is held in the buffer register 4.
is set, and the value is stored in the stack memory 1 (*). This state is indicated by the stack state flag register 9 as state L in FIG.

この実施例では、バッファレジスタ4に有効データがあ
ればその値をスタックメモリlに格納し、バッファレジ
スタ4が空ならばスタックメモリ1からバッファレジス
タ4に転送する制御論理を採用している。この制御論理
によって、第5図に示す状態遷移が実現されている。
This embodiment employs a control logic that stores valid data in the stack memory 1 if the buffer register 4 has valid data, and transfers the value from the stack memory 1 to the buffer register 4 if the buffer register 4 is empty. This control logic realizes the state transition shown in FIG.

次に、この実施例の詳細な動作について、第4図、第5
図を参照しながら説明する。
Next, the detailed operation of this embodiment will be explained in FIGS. 4 and 5.
This will be explained with reference to the figures.

バツフアステータスフラグレジスタ5は、セット状態で
バッファレジスタ4に戻り番地として有効データが記憶
されていることを示し、リセット状態て有効データが記
憶されていない、つまり空であることを示す。このバッ
ファステータスフラグレジスタ5は、サブルーチンの呼
出しもしくは割込処理の起動でセットされ、システムの
初期化(RESET)と、サブルーチンもしくは割込か
らの復帰命令を実行した時にリセットされる。
The buffer status flag register 5 indicates that valid data is stored as a return address in the buffer register 4 in a set state, and indicates that no valid data is stored in the buffer register 4 as a return address, that is, it is empty. This buffer status flag register 5 is set when a subroutine is called or interrupt processing is activated, and is reset when the system is initialized (RESET) and a return instruction from the subroutine or interrupt is executed.

スタック状態フラグレジスタ9は、セラ)状態でバッフ
ァレジスタ4の値をスタックメモリlに格納したことを
示し、リセット状態で格納していないことを示す。この
スタック状態フラグレジスタ9は、バッファレジスタ4
の値をスタックメモリ1に格納もしくは読み比したとぎ
セットされ、システムの初期化と、サブルーチンの呼出
しもしくは割込処理の起動と、サブルーチンもしくは割
込からの復帰命令を実行した時にリセットされる。
The stack state flag register 9 indicates that the value of the buffer register 4 is stored in the stack memory 1 in the cellar state, and indicates that it is not stored in the reset state. This stack state flag register 9 is the buffer register 4.
It is set by storing or reading the value in stack memory 1, and is reset when the system is initialized, a subroutine is called or interrupt processing is started, and a return instruction from a subroutine or interrupt is executed.

論理ゲートG8は、バッファレジスタ4が空の状態でサ
ブルーチンもしくは割込からの復帰命令(図中RETで
表示している)を実行しようとする動作を検知する回路
で、この出力はマイクロコンピュータの制御部にも伝え
られて、復帰命令の実行を保留させる。
Logic gate G8 is a circuit that detects an attempt to execute a return instruction from a subroutine or interrupt (indicated by RET in the figure) when the buffer register 4 is empty, and its output is controlled by the microcomputer. The department will also be notified and the execution of the return order will be put on hold.

論理ゲートG9Aは、バッファレジスタ4に有効データ
であり、さらにその値をスタックメモリ1に格納してい
ない状態で、サブルーチンの呼出しもしくは割込処理の
起動をしようとする動作を検知する回路で、この出力は
マイクロコビュータの制御部にも伝えられて、前述の動
作を保留させる。
Logic gate G9A is a circuit that detects an attempt to call a subroutine or start interrupt processing when there is valid data in buffer register 4 and the value is not yet stored in stack memory 1. The output is also transmitted to the control section of the microcomputer to suspend the aforementioned operations.

論理ゲートG10Aは、スタックメモリ1からバッファ
レジスタ4に戻り番地のデータを読み出す条件を判断し
、マイクロコンピュータが命令処理のためにメインメモ
リをアクセスしてないことを反転回路IVIから得て、
バッファレジスタ4が空の状態で、スタック状態フラグ
レジスタ9がリセッ)[態ならば、スタックメモリ1か
らの読み出し動作(図中POPと表示している)を起動
させる。
The logic gate G10A determines the conditions for reading the data at the return address from the stack memory 1 to the buffer register 4, and obtains from the inversion circuit IVI that the microcomputer is not accessing the main memory for instruction processing.
If the buffer register 4 is empty and the stack status flag register 9 is reset), a read operation from the stack memory 1 (indicated by POP in the figure) is activated.

論理ゲートGlIAは、バッファレジスタ4からスタッ
クメモリ1に戻り番地のデータを格納する条件を判断し
、バッファレジスタ4に有効テークかあり、スタック状
態フラグレジスタ9がリセット状態ならば、マイクロコ
ンピュータが命令処理のためにメインメモリをアクセス
してない時に、スタックメモリ1に対する書込み動作(
図中PUSHと表示している)を起動させる。
Logic gate GlIA determines the conditions for storing data at the return address from buffer register 4 to stack memory 1, and if there is a valid take in buffer register 4 and stack state flag register 9 is in a reset state, the microcomputer starts processing instructions. Write operation to stack memory 1 (when main memory is not accessed for
(indicated as PUSH in the figure).

この実施例では、第5図の状態遷移図にも示すように、
サブルーチンの呼出しもしくは割込処理の起動でステー
トKに遷移し、バッファレジスタ4からスタックメモリ
lへの転送が行なわれ、ステー)Lになる。また、サブ
ルーチンおよび割込処理からの復帰命令の実行によりス
テートJに遷移し、スタックメモリ1からバッファレジ
スタ4への転送が行なわれて、ステー)Lになる。
In this embodiment, as shown in the state transition diagram of FIG.
When a subroutine is called or an interrupt process is activated, a transition is made to state K, a transfer from buffer register 4 to stack memory l is performed, and state is changed to state (L). Further, by executing a return instruction from the subroutine and interrupt processing, the state is transited to state J, where the transfer from the stack memory 1 to the buffer register 4 is performed, and the state becomes state (L).

従って、呼出や復帰において、必ずバッファレジスタ4
とスタックメモリ1との間で転送が行なわれるが、スタ
ックメモリ1に対するアクセスが命令処理でメインメモ
リをアクセスしない時に行なわれるため、このスタック
メモリlのアクセスにより処理速度を低下させることが
なく、高速処理を行うことができる。
Therefore, when calling or returning, the buffer register 4 is always
Transfer is performed between the stack memory 1 and the stack memory 1, but since access to the stack memory 1 is performed when the main memory is not accessed during instruction processing, the access to the stack memory 1 does not reduce the processing speed and can be performed at high speed. can be processed.

なお、両実施例ともにシステムの初期化直後にバッファ
レジスタ4.4A、4Bが空であることを検知し、スタ
ックメモリ1からバッファレジスタ4.4,4.4Bへ
の転送が行なわれる回路になっているが、スタックポイ
ンタ2の上限値をコンパレータ等により判断したり、ス
タックメモリ1に格納されている語数をカウントして、
バッファレジスタ4.4A、41]の空き判別によるス
タックメモリ1からの読出しを禁止しても良い。
In both embodiments, the circuit detects that buffer registers 4.4A and 4B are empty immediately after system initialization, and transfers data from stack memory 1 to buffer registers 4.4 and 4.4B. However, by determining the upper limit of stack pointer 2 using a comparator, etc., or by counting the number of words stored in stack memory 1,
Reading from the stack memory 1 based on determination of whether the buffer registers 4.4A, 41] are free may be prohibited.

〔発明の効果〕〔Effect of the invention〕

以上説明したように本発明は、プロダラムカウンタとス
タックメモリとの間に、サブルーチン呼出しや割込処理
における戻り番地を保持するバラ戻り番地の伝達を制御
する制御論理回路を設けた構成とすることにより、スタ
ックメモリのアクセスをメインメモリアクセスの無い命
令の実行トオーハラツプさせることができ、スタックメ
モリのアクセス時間を隠しこむことができるので、プロ
クラムカウンタからの戻り番地の待避、及びプロクラム
カウンタへの戻り番地の復帰を高速処理することができ
る効果がある。
As explained above, the present invention has a configuration in which a control logic circuit is provided between the program counter and the stack memory to control the transmission of a discrete return address that holds a return address in subroutine calls and interrupt processing. This allows stack memory access to be interrupted by the execution of instructions that do not access main memory, and the stack memory access time can be hidden, so the return address from the program counter can be saved and the return address to the program counter can be saved. This has the effect of allowing high-speed recovery processing.

【図面の簡単な説明】[Brief explanation of drawings]

第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に
1 and 2 are a block diagram showing a first embodiment of the present invention and a state transition diagram for explaining the operation of this embodiment, respectively, and FIG. 3 is a block diagram of the embodiment shown in FIG. 1. FIGS. 4 and 5 are circuit diagrams showing specific circuit examples, and FIGS. 4 and 5 are respectively circuit diagrams showing a second embodiment of the present invention and state transition diagrams for explaining the operation of the embodiment. FIG. 6 is a conventional circuit diagram. 1 is a block diagram showing an example of a data processing device of FIG. 1...Stack memory, 2...Stack pointer, 3...Program counter, 4.4
A, 4B...Buffer 7 register, 5, 6...
...Buffer status flag register, 7...
...stack counter circuit, 8.8A ...control logic circuit, 9 ...stack state flag register,
10.10A...Control! , 20... Take buffer circuit, 30... Internal data bus, 40...
...Instruction register, 50...Tefuda, 60.
... Address latch circuit, 70 ... Address buffer circuit, 71 ... Stack counter, 72 ... Tekoter, 110 ... Main memory, 120 ... ...Take bus, 130...
・Address bus, 140... Interrupt controller, 01 to G22. G9A~Gl IA, Gl 5A・
...Logic gate, INI~IN4...Inverter. Agent Patent Attorney Susumu Uchihara \1 RESET Figure 2 RESE No. 5

Claims (1)

【特許請求の範囲】 1、メインメモリのアドレスを指定するためのプログラ
ムカウンタと、サブルーチンの呼出し及び割込処理を含
む分岐処理に入るとき前記プログラムカウンタに保持さ
れている前記分岐処理の戻り番地を格納し、前記分岐処
理から分岐前の処理に戻るとき格納されている戻り番地
を前記プログラムカウンタへ供給するスタックメモリと
を有するデータ処理装置において、前記プログラムカウ
ンタと前記スタックメモリとの間に、前記プログラムカ
ウンタからの戻り番地の保持及びこの保持された戻り番
地の前記スタックメモリへの伝達、並びに前記スタック
メモリからの戻り番地の保持及びこの保持された戻り番
地の前記プログラムカウンタへの伝達を行うバッファレ
ジスタを設け、かつこのバッファレジスタと前記プログ
ラムカウンタ及びスタックメモリとの間の前記戻り番地
の伝達を制御する制御論理回路を設けたことを特徴とす
るデータ処理装置。 2、バッファレジスタが複数段で構成された請求項1記
載のデータ処理装置。 3、バッファレジスタに有効な戻り番地が保持されてい
るか否かを示すバッファステータスフラグを格納する第
1のフラグレジスタと、前記バッファレジスタに保持さ
れた戻り番地をスタックメモリに格納したことを示すス
タック状態フラグを格納する第2のフラグレジスタとを
設け、制御論理回路を、これら第1及び第2のフラグレ
ジスタに格納されているフラグの値に従って前記バッフ
ァレジスタとプログラムカウンタ及びスタックメモリと
の間の前記戻り番地の伝達を制御する構成とした請求項
1記載のデータ処理装置。
[Claims] 1. A program counter for specifying an address in main memory, and a return address of the branch process held in the program counter when entering a branch process including calling a subroutine and interrupt process. and a stack memory for supplying the stored return address to the program counter when returning from the branch processing to the processing before the branch, wherein the A buffer that holds a return address from the program counter and transmits the retained return address to the stack memory, and holds a return address from the stack memory and transmits the retained return address to the program counter. A data processing device comprising a register and a control logic circuit for controlling transmission of the return address between the buffer register and the program counter and stack memory. 2. The data processing device according to claim 1, wherein the buffer register is configured in multiple stages. 3. A first flag register that stores a buffer status flag indicating whether or not a valid return address is held in the buffer register, and a stack that indicates that the return address held in the buffer register is stored in the stack memory. a second flag register for storing status flags, and a control logic circuit is provided between the buffer register and the program counter and stack memory according to the values of the flags stored in the first and second flag registers. 2. The data processing apparatus according to claim 1, wherein said data processing apparatus is configured to control transmission of said return address.
JP28894190A 1990-10-26 1990-10-26 Data processor Pending JPH04162135A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP28894190A JPH04162135A (en) 1990-10-26 1990-10-26 Data processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP28894190A JPH04162135A (en) 1990-10-26 1990-10-26 Data processor

Publications (1)

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

Family

ID=17736792

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28894190A Pending JPH04162135A (en) 1990-10-26 1990-10-26 Data processor

Country Status (1)

Country Link
JP (1) JPH04162135A (en)

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 (en) * 1998-12-31 2000-07-25 강병호 Method for controlling interrupt stack of microprocessor

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 (en) * 1998-12-31 2000-07-25 강병호 Method for controlling interrupt stack of microprocessor

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 (en) Execution of data processing instructions
JPH04290150A (en) Device and method for controlling bidirectional fifo as interface between two buses in multi-task system
US5386519A (en) Information processing apparatus incorporating buffer storing a plurality of branch target instructions for branch instructions and interrupt requests
JP3420091B2 (en) Microprocessor
JPH04162135A (en) Data processor
US5677859A (en) Central processing unit and an arithmetic operation processing unit
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 (en) Information processing device
JPH0414376B2 (en)
JPH06324861A (en) System and method for controlling cpu
JP2501393B2 (en) Direct memory access device
JPH0447350A (en) Main storage read/response control
JPH05250161A (en) Microcomputer device
JP3239042B2 (en) Microcomputer
JPH036758A (en) Microprocessor
JP2591211B2 (en) High-speed interrupt processing device
JP3182796B2 (en) Central processing unit
JPS6218933B2 (en)
JPS60193046A (en) Detecting system for instruction exception
JPH05324871A (en) Microcomputer
JPH0424733B2 (en)
JPS6221130B2 (en)