JPH02214938A - Data processor - Google Patents

Data processor

Info

Publication number
JPH02214938A
JPH02214938A JP3561989A JP3561989A JPH02214938A JP H02214938 A JPH02214938 A JP H02214938A JP 3561989 A JP3561989 A JP 3561989A JP 3561989 A JP3561989 A JP 3561989A JP H02214938 A JPH02214938 A JP H02214938A
Authority
JP
Japan
Prior art keywords
stack area
stack
pointer
overflow
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
JP3561989A
Other languages
Japanese (ja)
Inventor
Hiroshi Watase
弘 渡瀬
Shunpei Kawasaki
俊平 河崎
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.)
Hitachi Microcomputer System Ltd
Hitachi Ltd
Original Assignee
Hitachi Ltd
Hitachi Microcomputer Engineering 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 Hitachi Ltd, Hitachi Microcomputer Engineering Ltd filed Critical Hitachi Ltd
Priority to JP3561989A priority Critical patent/JPH02214938A/en
Publication of JPH02214938A publication Critical patent/JPH02214938A/en
Pending legal-status Critical Current

Links

Abstract

PURPOSE:To effectively use a stack area by comparing the value of a stack pointer with that of a limit pointer to detect the overflow of the stack area and changing the control procedures set for storage of a state. CONSTITUTION:The overflow of a stack area is detected by a comparator 30 when the coincidence is obtained between the value of a stack pointer 23 which points the place of the latest information written into a stack area set to a register file 6 and the value of a limit pointer 24 which points the limit address of the stack area. A microaddress controller 43 of a control part 4 selects the head address of a series of microinstruction systems set to save the information on the stack area into an external memory in the prescribed timing and gives the head address to a microaddress decoder 41. Thus the switch control is given to the control procedure set for storage of a state based on the detection of the overflow of the stack area. As a result, the stack area is effectively used up to its overflow state.

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はスタック領域のオーバーフロー検出技術さらに
はスタック領域の有効利用を図る技術に関し1例えば半
導体チップに内蔵された記憶手段をスタック領域として
利用するマイクロプロセッサに適用して有効な技術に関
するものである。
DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to a stack area overflow detection technique and a technique for effectively utilizing the stack area. It relates to techniques that are effective when applied to microprocessors.

〔従来技術〕[Prior art]

マイクロプロセッサなどのデータ処理装置において割込
みや例外処理などの発生により動作プログラムを分岐さ
せるとき、それ以前のデータ処理に利用されていた各種
情報を状態復帰の後に再度利用可能とするためにはそれ
ら情報を所定のスタック領域に退避しておかなければな
らない。このような情報の退避や復帰はサブルーチンコ
ール命令やリターン命令などを実行することにより行わ
れるが、退避すべき情報が多かったり、動作プログラム
の分岐が頻繁に起こるような場合にはそのような命令の
実行に無視し得ない時間が費やされる。そこで、内蔵メ
モリにスタック領域を割り当てて、情報の退避や復帰処
理にかかるメモリアクセス時間を短縮し、これによって
処理の高速化を図る技術が提案されており、例えばこの
技術は、株式会社アスキー発行の月刊「アスキー」19
88年9月号の第167頁乃至第169頁に記載されて
いる。
When an operating program is branched due to the occurrence of an interrupt or exception handling in a data processing device such as a microprocessor, the various information that was used in the previous data processing must be made available again after the state is restored. must be saved in a predetermined stack area. Saving and restoring such information is performed by executing subroutine call instructions, return instructions, etc., but if there is a lot of information to save or branches in the operating program occur frequently, such instructions A non-negligible amount of time is spent on the execution. Therefore, a technology has been proposed that allocates a stack area in the built-in memory to shorten the memory access time required to save and restore information, thereby speeding up processing.For example, this technology is published by ASCII Co., Ltd. Monthly “ASCII” 19
It is described on pages 167 to 169 of the September 1988 issue.

ところで、内蔵メモリに割り当てられるスタック領域の
記憶容量には限りがあるため、スタック領域の未使用領
域に必要な情報を退避することができない場合には、先
入れ後出し形式とれさるスタック領域の性質上、先に内
蔵スタック領域に退避されている情報を外部メモリやそ
の他のメモリ領域に退避させて、内蔵スタック領域に空
き領域を形成してやることが必要になる。そのためには
スタック領域における未使用領域の記憶容量即ち残存ス
タック長を管理しなければならないが、従来その管理は
、サブルーチン毎に利用可能なスタック長を固定化して
残存スタック長をサブルーチンのネスト数即ち呼び出し
回数で把握したり、サブルーチンコールが起こる度に残
りのスタック長と必要なスタック長とを予めソフトウェ
アを介して比較判定したりすることにより行われていた
By the way, since the storage capacity of the stack area allocated to the internal memory is limited, if necessary information cannot be saved to an unused area of the stack area, the nature of the stack area is changed to a first-in, last-out format. First, it is necessary to first save the information saved in the built-in stack area to an external memory or other memory area to create a free area in the built-in stack area. To do this, it is necessary to manage the storage capacity of the unused area in the stack area, that is, the remaining stack length. Conventionally, this management has been done by fixing the available stack length for each subroutine, and then adjusting the remaining stack length to the number of nested subroutines, that is, the remaining stack length. This has been done by determining the number of calls, or by comparing and determining the remaining stack length and the required stack length through software each time a subroutine call occurs.

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

しかしながら、残存スタック長をサブルーチンのネスト
数で管理する手法では、サブルーチン毎に固定化して割
り当てられたスタック長を必ずしも毎回最大限に利用す
るとは限らず、内蔵スタック領域を有効に利用すること
ができない。また、1つのサブルーチンに利用可能なス
タック長が固定されるというような制限事項は、コンパ
イラによる処理を複雑化する虞がある。
However, with the method of managing the remaining stack length by the number of nested subroutines, the fixed and allocated stack length for each subroutine is not necessarily utilized to the maximum every time, and the built-in stack area cannot be used effectively. . Further, restrictions such as a fixed stack length available for one subroutine may complicate processing by the compiler.

また、ソフトウェアにより残存スタック長と必要なスタ
ック長とを予め比較判定する手法では、ソフトウェアに
負担がかかると共に、その比較判定ステップによりサブ
ルーチンコール命令のような分岐命令の実行に時間がか
かってしまう。
Furthermore, the method of comparing and determining the remaining stack length and the necessary stack length in advance by software places a burden on the software, and the comparison and determination step takes time to execute a branch instruction such as a subroutine call instruction.

本発明の目的は、スタック領域を有効に利用することが
できるデータ処理装置を提供することにある。更に本発
明の別の目的は、スタック領域の管理に費やされる時間
、さらには状態保存処理にかかる時間を短縮することが
できるデータ処理装置を提供することにある。
An object of the present invention is to provide a data processing device that can effectively utilize stack areas. Still another object of the present invention is to provide a data processing device that can reduce the time spent managing stack areas and further the time required for state saving processing.

本発明の前記ならびにそのほかの目的と新規な特徴は、
本明細書の記述及び添付図面から明らかになるであろう
The above and other objects and novel features of the present invention include:
It will become clear from the description of this specification and the accompanying drawings.

〔課題を解決するための手段〕[Means to solve the problem]

本願において開示される発明のうち代表的なものの概要
を簡単に説明すれば下記の通りである。
A brief overview of typical inventions disclosed in this application is as follows.

すなわち、記憶手段に割り当てられたスタック領域にお
けるスタック可能なアドレスを指示するためのスタック
ポインタと、そのスタック領域の限界を指示するための
リミットポインタとの値を比較し、その一致検出に基づ
いてその記憶手段に含まれるスタック領域のオーバーフ
ローを検出し、このオーバーフロー検出に基づいて状態
保存のための制御手順をシーケンス制御手段により変更
可能とするようにデータ処理装置を構成するものである
That is, the values of the stack pointer indicating the stackable address in the stack area allocated to the storage means and the limit pointer indicating the limit of the stack area are compared, and the value is determined based on the detection of a match. The data processing device is configured to detect an overflow of a stack area included in the storage means, and to enable the sequence control means to change the control procedure for saving the state based on the overflow detection.

また、スタックポインタの値を更新する演算器から出力
されるキャリー信号を利用し、これに基づいて状態保存
のための制御手順をシーケンス制御手段により変更可能
とするようにデータ処理装置を構成することもできる。
Further, the data processing device is configured so that the control procedure for saving the state can be changed by the sequence control means based on the carry signal output from the arithmetic unit that updates the value of the stack pointer. You can also do it.

上記夫々のデータ処理装置において、上記シーケンス制
御手段は、オーバーフロー検出又はキャリー出力に基づ
いて、スタック領域に先に退避されている情報を外部に
退避させてそのスタック領域に空き領域を形成するため
の制御手順に分岐させるように構成することができる。
In each of the above data processing devices, the sequence control means is configured to save information previously saved in the stack area to the outside to form a free area in the stack area based on overflow detection or carry output. It can be configured to branch into control procedures.

上記夫々のデータ処理装置を1つの半導体チップに形成
すると、スタック領域として利用される記憶手段は当該
半導体チップに内蔵されるため、状態保存や復帰のため
にスタック領域を高速アクセスすることができるが、さ
らに状態保存のための制御手順を変更する処理を高速化
するには、そのような制御手順を変更する指示を直接マ
イクロアドレスコントローラに与えてマイクロフローを
分岐させるようにすることが望ましい。
When each of the above data processing devices is formed on one semiconductor chip, the storage means used as the stack area is built into the semiconductor chip, so the stack area can be accessed at high speed for saving and restoring the state. Furthermore, in order to speed up the process of changing the control procedure for saving the state, it is desirable to directly give an instruction to change the control procedure to the microaddress controller to branch the microflow.

〔作 用〕[For production]

上記した手段によれば、状態保存処理の制御手順を変更
指示するためのスタック領域のオーバーフロー信号や演
算器のキャリー信号は記憶手段のスタック領域が完全に
もしくはほぼ完全に利用された状態で有意とされること
により、スタック領域の有効利用を可能とする。ここで
演算器のキャリー信号を利用する場合には、キャリー信
号が有意とされるときにスタックポインタが指すアドレ
スをスタック領域の限界アドレスに一致するようにスタ
ック領域を設定しておくことが望ましい。
According to the above-mentioned means, the overflow signal of the stack area and the carry signal of the arithmetic unit for instructing to change the control procedure of the state saving process are not significant when the stack area of the storage means is completely or almost completely utilized. This enables effective use of the stack area. When using the carry signal of the arithmetic unit here, it is desirable to set the stack area so that the address pointed to by the stack pointer when the carry signal is determined to be significant matches the limit address of the stack area.

これに対し、リミットポインタを用いる場合には当該リ
ミットポインタに対する情報設定に従ってスタック領域
の限界は記憶手段上において自由に設定可能である。
On the other hand, when a limit pointer is used, the limit of the stack area can be freely set on the storage means according to the information setting for the limit pointer.

状態保存処理の制御手順を変更指示するためのスタック
領域のオーバーフロー検出や演算器のキャリー信号生成
は、スタックポインタの内容更新に従ってハードウェア
的に行われることにより、スタック領域の管理や命令の
分岐処理に対するソフトウェアの負担を軽減すると共に
、ソフトウェアによる固有の処理ステップを必要としな
いように作用し、これによりスタック領域の管理に費や
される時間、さらには状態保存処理にかかる時間の短縮
を達成するものである。
Stack area overflow detection and arithmetic unit carry signal generation to instruct changes to the control procedure of state saving processing are performed by hardware according to the stack pointer contents update, thereby improving stack area management and instruction branch processing. This reduces the burden on the software and eliminates the need for specific software processing steps, thereby reducing the time spent managing the stack area and further reducing the time required to save the state. be.

〔実施例〕〔Example〕

第4図には本発明の一実施例であるコプロセッサのブロ
ック図が示される。このコプロセッサ1は、特に制限さ
れないが、主プロセツサ(図示せず)の演算処理能力を
補うための1つの周辺回路として位置付けられ、主プロ
セツサが発行するコマンドのような命令(以下単にコマ
ンドとも記す)を解釈してそれを実行する。このコプロ
セッサ1は、特に制限されないが、バスインタフェース
2を持つ内部バス3に、マイクロプログラムに従って各
種制御信号を生成する命令制御部4と実行部5が結合さ
れ、さらに実行部5には比較的記憶容量の大きな2個の
レジスタファイル6.7が結合されて成る。斯るコプロ
セッサ1は、特に制限されないが、RISC(リデュー
スト・インストラクション・セット・コンピュータ)マ
シンとされ、命令それ自体が簡素化されていると共に命
令セットも小さく、しかも演算処理では上記内蔵レジス
タファイル6.7を利用して、処理の高速化を図ってい
る。
FIG. 4 shows a block diagram of a coprocessor that is an embodiment of the present invention. This coprocessor 1 is positioned as one peripheral circuit to supplement the arithmetic processing capacity of the main processor (not shown), although it is not particularly limited. ) and execute it. In this coprocessor 1, an internal bus 3 having a bus interface 2 is coupled with an instruction control section 4 that generates various control signals according to a microprogram, and an execution section 5, although this is not particularly limited. It is formed by combining two register files 6.7 with large storage capacity. Although not particularly limited, such coprocessor 1 is a RISC (Reduced Instruction Set Computer) machine, has simplified instructions, has a small instruction set, and uses the built-in register file mentioned above for arithmetic processing. 6.7 is used to speed up processing.

第1図には上記コプロセッサ1の要部がブロック図によ
り詳細に示されている。
FIG. 1 shows the main parts of the coprocessor 1 in detail in a block diagram.

このコプロセッサ1の内部で処理されるデータは、特に
制限されないが、40ビツトで構成され、その下位32
ビツトがデータ又はアドレスを含む情報フィールドであ
り、上位8ビツトがその情報フィールドの属性を示すタ
グフィールドになる。
Although not particularly limited, the data processed inside this coprocessor 1 consists of 40 bits, and the lower 32
The bits are an information field containing data or an address, and the upper eight bits are a tag field indicating the attributes of the information field.

上記内部バス3は、特に制限されないが、ソースオペラ
ンドやその前の命令による演算結果を並列的にもしくは
連続的にやりとりして1命令を1マシンサイクルで実行
可能なように、夫々40ビツトの第1バス3A、第2バ
ス3B、第3バス3Cを主体に構成される。上記各内部
バス3A〜3Cの外部とのインタフェースは、外部デー
タバス10に結合されるデータインプットレジスタ11
並びにデータアウトプットレジスタ12、及び外部アド
レスバス13に結合される論理アドレスレジスタ14に
より行われる。
Although not particularly limited, the internal bus 3 has a 40-bit bus so that one instruction can be executed in one machine cycle by exchanging source operands and the operation results of the previous instruction in parallel or continuously. It is mainly composed of a first bus 3A, a second bus 3B, and a third bus 3C. The interface of each of the internal buses 3A to 3C with the outside is a data input register 11 coupled to an external data bus 10.
and a data output register 12 and a logical address register 14 coupled to an external address bus 13.

レジスタファイル6は、特に制限されないが、1ワード
を40ビツトとする256ワードのレジスタRFo−R
F2S5によって構成され、3個のポートを介して個別
的に結合された上記第1バス3A、第2バス3B、第3
バス3Cとの間でデータをやりとりする。レジスタファ
イル6に含まれる256個のレジスタRFD−RF2.
.は、レジスタファイルセレクタ20から出力される8
ビツトのアドレス情報をアドレスデコーダ21がデコー
ドして出力する選択信号により何れか1つが選択される
。このレジスタファイル6はソースオペランドや演算結
果の一時格納領域として利用されると共に、内部動作制
御手順を分岐させる場合に状態保存を行うためのスタッ
ク領域5TACKEとしても利用される。
The register file 6 is a 256-word register RFo-R with 40 bits per word, although it is not particularly limited.
The first bus 3A, the second bus 3B, and the third bus are configured by F2S5 and are individually coupled through three ports.
Data is exchanged with bus 3C. 256 registers RFD-RF2. included in register file 6.
.. is the 8 output from the register file selector 20.
One of them is selected by a selection signal output by the address decoder 21 decoding bit address information. This register file 6 is used as a temporary storage area for source operands and operation results, and is also used as a stack area 5TACK for saving the state when branching the internal operation control procedure.

レジスタファイル6に設定されるスタック領域5TAC
KHのスタックトップ即ちスタック領域5TACKEに
書き込まれた最新情報の所在を指すスタックポインタ2
3は、複数ワードのポインタレジスタを含むポインタレ
ジスタ群25に含まれている。さらにこのポインタレジ
スタ群25には、レジスタファイル6に設定されるスタ
ック領域5TACKEの限界アドレスを指すリミットポ
インタ26を含む。このポインタレジスタ群25に含ま
れるその他のポインタレジスタはレジスタファイル6に
おけるスタック領域5TACKE以外のレジスタをアク
セスする場合に利用される。
Stack area 5TAC set in register file 6
Stack pointer 2 indicating the location of the latest information written to the stack top of KH, that is, stack area 5TACKE
3 is included in a pointer register group 25 that includes pointer registers of multiple words. Furthermore, this pointer register group 25 includes a limit pointer 26 that points to the limit address of the stack area 5TACKE set in the register file 6. Other pointer registers included in the pointer register group 25 are used when accessing registers other than the stack area 5TACKE in the register file 6.

尚、ポインタレジスタ群25に含まれるポインタレジス
タは命令制御部4のマイクロプログラムに従って所定の
1つが選択され、内部バス3A、3B、3Gとの間での
アドレス情報の入出力、ローカルアドレスバス26から
のアドレス情報の入力、又は加算器27へのアドレス情
報の出力が行われる。
A predetermined one of the pointer registers included in the pointer register group 25 is selected according to the microprogram of the instruction control unit 4, and input/output of address information between the internal buses 3A, 3B, and 3G, and from the local address bus 26 is performed. Address information is input to the adder 27, or address information is output to the adder 27.

上記加算器27はレジスタファイル6をアクセスするた
めの専用加算器であって、ポインタレジスタ群25から
選択されたポインタレジスタの値に上記命令制御部4の
マイクロプログラムに従って生成されるパラメータPR
MTを加算し、これによって得られたアドレス情報を上
記レジスタファイルセレクタ20やポインタレジスタ群
25、さらには論理アドレスレジスタ14にも供給可能
になっている。ここで、1ワード40ビツトの256個
のレジスタRF、−RF2.5の中から1つを選択する
ための8ビツトのアドレス情報、即ち、レジスタファイ
ルセレクタ20が選択して出力する8ビツトのアドレス
情報は、特に制限されないが、加算器27から与えられ
る40ビツトの情報のうち最下位ビットから8ビツトと
される。この場合、加算器27に与えられる上記パラメ
ータPRMTは、インクリメント及びデクリメントの双
方を考慮した「±1」になる。
The adder 27 is a dedicated adder for accessing the register file 6, and is a parameter PR generated according to the microprogram of the instruction control unit 4 based on the value of the pointer register selected from the pointer register group 25.
The address information obtained by adding MT can be supplied to the register file selector 20, the pointer register group 25, and even the logical address register 14. Here, 8-bit address information for selecting one of the 256 registers RF and -RF2.5 of 40 bits per word, that is, the 8-bit address selected and output by the register file selector 20. Although the information is not particularly limited, it is assumed to be 8 bits from the least significant bit of the 40 bits of information provided from the adder 27. In this case, the parameter PRMT given to the adder 27 is "±1" taking into account both increment and decrement.

上記スタックポインタ23の値とリミットポインタ24
の値はコンパレータ30によりその一致の有無が判別さ
れ、その比較結果COMPは、特に制限されないが、常
時命令制御部4に与えられる。例えば第2図に概念的に
示されるようにレジスタファイル6の上位側のレジスタ
RFiをスタック限界レジスタとする場合にはそのレジ
スタRFiのアドレスがリミットポインタ24に設定さ
れる。レジスタファイル6に含まれるスタック領域5T
ACKEは、状態保存すべき情報をブツシュ又はポツプ
操作により先入れ後出し形式で入出力する。サブルーチ
ンコール命令やマイクロプログラムの分岐に際して必要
な状態保存を行うとき、加算器27によってスタックポ
インタ23の値にパラメータPRMT (+1)が加算
され、加算によりインクリメントされたアドレス情報に
従ってスタック領域5TACKの所定レジスタにデータ
が書き込まれる。このブツシュ操作を保存すべき情報量
に従って繰り返すことにより必要な状態保存を完了する
。このとき、加算器27でインクリメントされたアドレ
ス情報はスタックポインタ23に順次戻される。スタッ
ク領域5TACKEに対するブツシュ操作時にスタック
ポインタ23の値がリミットポインタ24の値に一致す
ると、スタック領域5TACKEは新たな状態保存が不
可能なオーバーフロー状態となり、この状態を上記コン
パレータ30の比較結果COMPにより命令制御部4に
知らせる。状態復帰時にはスタックポインタ23の指し
ているアドレスに従ってスタック領域5TACKの所定
レジスタからデータが読み出されると共に、そのときの
スタックポインタ23の指す値にパラメータPRMT 
(−1)を加算してスタックポインタ23の値をデクリ
メン・トする。
The value of the stack pointer 23 above and the limit pointer 24
The comparator 30 determines whether or not the values match, and the comparison result COMP is constantly provided to the instruction control unit 4, although this is not particularly limited. For example, as conceptually shown in FIG. 2, when the upper register RFi of the register file 6 is set as the stack limit register, the address of the register RFi is set in the limit pointer 24. Stack area 5T included in register file 6
ACKE inputs and outputs information to be saved in a first-in, last-out format using a push or pop operation. When saving the state necessary for a subroutine call instruction or branching of a microprogram, the adder 27 adds the parameter PRMT (+1) to the value of the stack pointer 23, and according to the address information incremented by the addition, a predetermined register in the stack area 5TACK is stored. data is written to. By repeating this push operation according to the amount of information to be saved, the necessary state preservation is completed. At this time, the address information incremented by the adder 27 is sequentially returned to the stack pointer 23. When the value of the stack pointer 23 matches the value of the limit pointer 24 during a push operation on the stack area 5TACKE, the stack area 5TACKE enters an overflow state in which it is impossible to save a new state, and this state is changed to an instruction by the comparison result COMP of the comparator 30. Notify the control unit 4. When returning to the state, data is read from a predetermined register in the stack area 5TACK according to the address pointed to by the stack pointer 23, and the parameter PRMT is set to the value pointed to by the stack pointer 23 at that time.
The value of the stack pointer 23 is decremented by adding (-1).

尚、内部バス3A、3B、3Cにはデータ演算や論理ア
ドレス演算のための算術論理演算器31や図示しないバ
レルシフタが結合され、その算術論理演算器31による
演算結果はアキュムレータ32を介して内部バス3A、
3B、3Cに出力可能になっている。また、第1図には
示されていないが、レジスタファイル7側にもポインタ
レジスタ群、加算器、レジスタブアイルセレクタ、及び
アドレスデコーダが設けられている。
The internal buses 3A, 3B, and 3C are connected to an arithmetic and logic unit 31 for data calculations and logical address calculations and a barrel shifter (not shown), and the results of the arithmetic and logic unit 31 are transferred to the internal bus via an accumulator 32. 3A,
It is possible to output to 3B and 3C. Although not shown in FIG. 1, the register file 7 side is also provided with a pointer register group, an adder, a register aisle selector, and an address decoder.

命令制御部4は、特に制限されないが、図示しない主プ
ロセツサが出力するコマンドに従で内部を制御するため
のマイクロ制御記憶としてマイクロROM (リード・
オンリ・メモリ)40を持つ。
The instruction control unit 4 includes, although not particularly limited to, a micro ROM (read memory) as a micro control memory for controlling the internal parts according to commands output by a main processor (not shown).
only memory) has 40.

マイクロROM40は、コプロセッサ1の動作制御に必
要な各種マイクロ命令の系列から成るマイクロプログラ
ムを含み、マイクロアドレスデコーダ41の出力によっ
てアクセスされる。このマイクロアドレスデコーダ41
は、コマンドレジスタ42にフェッチされた図示しない
主プロセツサの発行コマンドに基づいてマイクロアドレ
スコントローラ43が出力するアドレス情報を受は取り
、これをデコードすることによって、そのコマンドを実
行するための一連のマイクロ命令系列の先頭のマイクロ
命令が読み出される。コマンドに対応する一連のマイク
ロ命令系列のうち第2番目以降のマイクロ命令は、特に
制限されないが、直前に読み出されたマイクロ命令のネ
クストアドレスフィールドの情報がマイクロアドレスコ
ントローラ43に供給されることによって指示される。
The micro ROM 40 contains a micro program consisting of a series of various micro instructions necessary for controlling the operation of the coprocessor 1, and is accessed by the output of the micro address decoder 41. This micro address decoder 41
receives the address information output by the micro address controller 43 based on a command issued by the main processor (not shown) fetched into the command register 42, and decodes this to create a series of micro controllers for executing the command. The first microinstruction in the instruction sequence is read. Although the second and subsequent microinstructions in a series of microinstructions corresponding to a command are not particularly limited, information in the next address field of the microinstruction read immediately before is supplied to the microaddress controller 43. be instructed.

また、マイクロアドレスコントローラ43には、マイク
ロフローを分岐させる場合に選択されるべきマイクロプ
ログラムの先頭マイクロ命令のアドレスが複数ワードの
コントロールアドレスレジスタ群44から入力されてい
る。コントロールアドレスレジスタ群44から供給され
ているアドレス情報は、各種状態フラグや上記コンパレ
ータ30の比較結果GOMPなどに基づいて選択される
。尚、この選択タイミングは現在実行中のマイクロ命令
系列の実行終了後とされる。
Further, the address of the first microinstruction of the microprogram to be selected when branching the microflow is inputted to the microaddress controller 43 from a control address register group 44 of multiple words. The address information supplied from the control address register group 44 is selected based on various status flags, the comparison result GOMP of the comparator 30, and the like. Note that this selection timing is after the execution of the currently executing microinstruction sequence is completed.

斯るマイクロアドレスコントローラ43からマイクロア
ドレスデコーダ41に選択的に出力されるアドレス情報
に従ってマイクロROM40から順次読み出されるマイ
クロ命令はマイクロ命令ラッチ45を介してマイクロ命
令デコーダ46に供給される。このマイクロ命令デコー
ダ46によってマイクロ命令が解釈されることにより、
実行部5に対する各種制御信号が形成される。
Microinstructions sequentially read from the microROM 40 in accordance with address information selectively output from the microaddress controller 43 to the microaddress decoder 41 are supplied to the microinstruction decoder 46 via the microinstruction latch 45. By interpreting the microinstruction by the microinstruction decoder 46,
Various control signals for the execution unit 5 are generated.

上記マイクロROM40には、スタック領域5TACK
Eがオーバーフローしたときに、当該スタック領域に先
に退避されている情報を外部に退避させてレジスタファ
イル6上のスタック領域5TACKHに空き領域を形成
するための例外処理的な一連のマイクロ命令系列を保有
する。斯るマイク命令系列の先頭アドレスはコントロー
ルアドレスレジスタ群44に含まれる所定のレジスタに
設定される。
The micro ROM 40 has a stack area of 5TACK.
When E overflows, a series of exception-handling microinstructions is created to save the information previously saved in the stack area to the outside and create a free area in the stack area 5TACKH on the register file 6. Possess. The start address of the microphone command series is set in a predetermined register included in the control address register group 44.

サブルーチンコール命令のような分岐命令の実行段階に
おいて、必要な情報をスタック領域5TACKEに状態
保存しているとき、スタックポインタ23とリミットポ
インタ24との値が一致してスタック領域5TACKH
のオーバーフローがコンパレータ30により検出される
と、その比較結果COMPを受けるマイクロアドレスコ
ントローラ43は、上記スタック領域5TACKEの情
報を外部メモリに退避するための一連のマイクロ命令系
列の先頭アドレスを所定のタイミングで選択してマイク
ロアドレスデコーダ41に与える。
During the execution stage of a branch instruction such as a subroutine call instruction, when necessary information is saved in the stack area 5TACKE, the values of the stack pointer 23 and limit pointer 24 match and the stack area 5TACKH is saved.
When an overflow is detected by the comparator 30, the microaddress controller 43, which receives the comparison result COMP, determines at a predetermined timing the starting address of a series of microinstructions for saving the information in the stack area 5TACKE to the external memory. It is selected and applied to the microaddress decoder 41.

このマイクロフローの分岐タイミングは、スタック領域
5TACKEがオーバーフローしたときのブツシュ操作
に続く次のブツシュ操作が開始される前のタイミングと
される。このようにしてマイクロフローが分岐されると
、例えば、スタック領域5TACKEに対してポツプ操
作を行って読み出した情報をブツシュ操作にて書き込む
動作が順次繰返されると共に、引き続いて外部メモリに
退避させるべき一層の情報フレームに対してはポツプ操
作だけが行われ、ポツプ操作で得られた情報は外部メモ
リに転送され、これにより、スタック領域5TACKE
に空き領域が形成される。空き領域が形成されると、特
に制限されないが、当該マイクロプログラムの最後のマ
イクロ命令によってマイクロフローの戻り番地が指定さ
れ、引き続いてスタック領域5TACKEに対する状態
保存が継続される。
The branch timing of this microflow is the timing before the start of the next bushing operation following the bushing operation when the stack area 5TACKE overflows. When the microflow is branched in this way, for example, the operation of performing a pop operation on the stack area 5TACKE and writing the read information using a push operation is sequentially repeated, as well as sequentially writing the information that should be saved to the external memory. Only a pop operation is performed on the information frame of
An empty area is created. Once the free area is created, the last microinstruction of the microprogram specifies the return address of the microflow, although this is not particularly limited, and the state continues to be saved in the stack area 5TACKE.

上記説明ではオーバーフローしたスタック領域5TAC
KEに空き領域を形成するための例外処理的な一連のマ
イクロ命令系列への分岐指示をコンパレータ30の比較
結果GOMPに基づいて与えるようにしたが、例えば第
3図に示されるように、上記加算器27のキャリー信号
CARによって指示することもできる。この場合、レジ
スタファイル6に設定可能なスタック領域S T A、
CKの大きさは加算器27の構成に制限される。即ち、
キャリー信号CARが有意とされるときにスタックポイ
ンタ23が指すアドレスをスタック領域5TACKEの
限界アドレスに一致させるようにスタック領域5TAC
KEを設定しておくことが必要になる。
In the above explanation, the overflowed stack area 5TAC
A branch instruction to a series of exception handling microinstructions for creating a free area in the KE is given based on the comparison result GOMP of the comparator 30. For example, as shown in FIG. It can also be instructed by the carry signal CAR of the device 27. In this case, the stack area STA that can be set in the register file 6,
The size of CK is limited by the configuration of adder 27. That is,
The stack area 5TAC is configured to match the address pointed to by the stack pointer 23 with the limit address of the stack area 5TACKE when the carry signal CAR is significant.
It is necessary to set KE.

上記実施例によれば以下の作用効果を得るものである。According to the above embodiment, the following effects can be obtained.

(1)スタックポインタ23とリミットポインタ24と
の値を比較し、その比較結果COMPによる両者の一致
検出に基づいてレジスタファイル6に含まれるスタック
領域5TACKEのオーバーフローを検出し、その後で
このオーバーフロー検出に基づいて状態保存のための制
御手順を切換制御するから、スタック領域5TACKE
をオーバーフロー状態まで有効に利用することができる
(1) Compare the values of the stack pointer 23 and the limit pointer 24, and detect an overflow of the stack area 5TACKE included in the register file 6 based on the comparison result COMP, which detects a match between the two, and then performs this overflow detection. The control procedure for saving the state is switched based on the stack area 5TACKE.
can be used effectively up to the overflow state.

(2)スタック領域5TACKEをオーバーフロー状態
まで有効に利用するこができることにより、スタック領
域5TACKEに先にスタックされている情報を外部メ
モリに転送してスタック領域5TACKEに空き領域を
形成する処理回数を最小限にすることができ、これによ
って状態保存処理のための総動作時間をシステム動作全
体において短縮することができる。
(2) By being able to effectively use the stack area 5TACKE up to the overflow state, it is possible to minimize the number of times the information previously stacked in the stack area 5TACKE is transferred to external memory to create a free space in the stack area 5TACKE. This can reduce the total operating time for state saving processing over the entire system operation.

(3)スタック領域5TACKEのオーバーフロー検出
は、スタックポインタ23のインクリメント/デクリメ
ントに従ってコンパレータ30がハードウェア的にもし
くは自動的に行うことにより、スタック領域5TACK
Eの管理や状態保存処理に対するソフトウェアの負担を
軽減すると共に、ソフトウェアによる固有の処理ステッ
プが必要なくなり、こりによりスタック領域の管理に費
やされる時間、さらには個々の状態保存処理にかかる時
間を短縮することができる。
(3) Overflow detection of the stack area 5TACK is performed by the comparator 30 hardware-wise or automatically according to the increment/decrement of the stack pointer 23.
In addition to reducing the burden on the software for E management and state saving processing, there is no need for specific software processing steps, thereby reducing the time spent managing the stack area and further reducing the time required for individual state saving processing. be able to.

(4)コプロセッサ1は1つの半導体チップに形成され
、この半導体チップに内蔵されるレジスタファイル6を
スタック領域5TACKEとして利用するため、状態保
存や復帰のためにスタック領域5TACKEを高速アク
セスすることができるが、さらにスタック領域5TAC
KEのオーバーフローに起因して状態保存のための制御
手順を変更する処理の指示を直接マイクロアドレスコン
トローラ43に与えてマイクロフローを分岐させること
により、スタック領域5TACKEがオーバーフローし
たときに状態保存処理の制御手順を変更する処理を高速
化することができ、ひいては状態保存処理を一層高速化
することができる。
(4) Since the coprocessor 1 is formed on one semiconductor chip and uses the register file 6 built into this semiconductor chip as the stack area 5TACKE, it is possible to access the stack area 5TACKE at high speed for saving and restoring the state. Yes, but additional stack area 5TAC
The state saving process can be controlled when the stack area 5TACKE overflows by directly giving the micro address controller 43 an instruction to change the control procedure for saving the state due to the overflow of the KE and branching the microflow. It is possible to speed up the process of changing the procedure, and further speed up the state saving process.

(5)リミットポインタ24を用いることにより、当該
リミットポインタ24に対する情報設定に従ってスタッ
ク領域5TACKEの限界をレジスタファイル6上にお
いて自由に設定することができる。
(5) By using the limit pointer 24, the limit of the stack area 5TACKE can be freely set on the register file 6 according to the information setting for the limit pointer 24.

(6)加算器27から出力されるキャリー信号CARを
利用し、これに基づいて状態保存のための制御手順をマ
イクロアドレスコントローラ43を介して変更するよう
にしても、上記(1)乃至(5)に記載の効果と同様の
効果を得ることができる。
(6) Even if the carry signal CAR output from the adder 27 is used and the control procedure for saving the state is changed via the microaddress controller 43 based on the carry signal CAR, the above (1) to (5) ) It is possible to obtain the same effect as described in .

但し、この場合には、キャリー信号CARが有意とされ
るときにスタックポインタ23が指すアドレスをスタッ
ク領域5TACKEの限界アドレスに一致するようにス
タック領域を設定しておくことが必要になり、レジスタ
ファイル6に設定可能なスタック領域5TACKEは加
算器27のハードウェアによって制限される。
However, in this case, it is necessary to set the stack area so that the address pointed to by the stack pointer 23 when the carry signal CAR is significant matches the limit address of the stack area 5TACKE, and the register file The stack area 5TACKE that can be set to 6 is limited by the hardware of the adder 27.

以上本発明者によってなされた発明を実施例に基づいて
具体的に説明したが、本発明はそれに限定されるもので
はなく、その要旨を逸脱しない範囲において種々変更す
ることができる。
Although the invention made by the present inventor has been specifically described above based on examples, the present invention is not limited thereto, and various changes can be made without departing from the gist thereof.

例えば上記実施例では状態保存処理の制御手順を変更す
る指示を直接マイクロアドレスコントローラに与える場
合について説明したが、本発明はそれに限定されるもの
ではなく、割込みコントローラを内蔵する場合にはレジ
スタファイルのオーバーフロー検出信号を割込み信号と
してそのコントローラに与えるようにしてもよい。また
、上記実施例では分岐先アドレスそのものをコントロー
ルアドレスレジスタに保有させたが、演算処理を介して
分岐先アドレスを生成するようにしてもより)。
For example, in the above embodiment, a case was explained in which an instruction to change the control procedure of state saving processing is given directly to the microaddress controller, but the present invention is not limited to this, and if an interrupt controller is built in, the register file The overflow detection signal may be given to the controller as an interrupt signal. Further, in the above embodiment, the branch destination address itself is held in the control address register, but it is also possible to generate the branch destination address through arithmetic processing).

また、レジスタファイルはスタック領域として専用化す
ることができ、さらにスタック領域はレジスタファイル
構造に限定されず、メモリアクセス命令でアクセスされ
る構造の記憶手段にしてもよい。レジスタファイルをア
クセスする場合のアドレス演算は、上記実施例とは逆に
ブツシュ操作に応じてデクリメントし、ポツプ操作に応
じてインクリメントするようにしてもよい。この場合ス
タック領域の限界アドレスはスタックポインタの値に対
してレジスタファイルの下位アドレス側になる。
Further, the register file can be dedicated as a stack area, and the stack area is not limited to the register file structure, but may be a storage means with a structure accessed by a memory access instruction. Address calculation when accessing a register file may be performed by decrementing in response to a push operation and incrementing in response to a pop operation, contrary to the above embodiment. In this case, the limit address of the stack area is on the lower address side of the register file relative to the value of the stack pointer.

また、スタック領域のオーバーフロー検出に加算器のキ
ャリー信号を用いる場合、設定可能なスタック領域が当
該加算器のハードウェアに制限される性質上、レジスタ
ファイル6の一部をスタック領域5TACKEとして用
いる場合に、上記実施例のようにスタック限界をレジス
タファイル6の最上位側レジスタとしないときには、そ
の加算器27と並列的にスタックポインタの値をインク
リメン/デクリメントする別の加算器を用いてスタック
領域のオーバーフローを検出してもよい。
Furthermore, when using the carry signal of an adder to detect an overflow in the stack area, the settable stack area is limited to the hardware of the adder, so when using a part of the register file 6 as the stack area 5TACKE, When the stack limit is not set to the highest register of the register file 6 as in the above embodiment, another adder that increments/decrements the value of the stack pointer in parallel with the adder 27 is used to prevent overflow of the stack area. may be detected.

このとき、当該専用加算器の演算結果はスタックポイン
タに戻さなくてもよい。
At this time, the operation result of the dedicated adder does not need to be returned to the stack pointer.

以上本発明者によってなされた発明を実施例に基づいて
具体的に説明したが、本発明はそれに限定されるもので
はなく、その要旨を逸脱しない範囲において種々変更す
ることができる。
Although the invention made by the present inventor has been specifically described above based on examples, the present invention is not limited thereto, and various changes can be made without departing from the gist thereof.

例えば上記実施例では状態保存処理の制御手順を変更す
る指示を直接マイクロアドレスコントローラに与える場
合について説明したが、本発明はそれに限定されるもの
ではなく、割込みコントローラを内蔵する場合にはレジ
スタファイルのオーバーフロー検出信号を割込み信号と
してそのコントローラに与えるようにしてもよい。また
、上記実施例では分岐先アドレスそのものをコントロー
ルアドレスレジスタに保有させたが、演算処理を介して
分岐先アドレスを生成するようにしてもよい。
For example, in the above embodiment, a case was explained in which an instruction to change the control procedure of state saving processing is given directly to the microaddress controller, but the present invention is not limited to this, and if an interrupt controller is built in, the register file The overflow detection signal may be given to the controller as an interrupt signal. Further, in the above embodiment, the branch destination address itself is held in the control address register, but the branch destination address may be generated through arithmetic processing.

また、レジスタファイルはスタック領域として専用化す
ることができ、さらにスタック領域はレジスタファイル
構造に限定されず、メモリアクセス命令でアクセスされ
る構造の記憶手段にしてもよい。レジスタファイルをア
クセスする場合のアドレス演算は、上記実施例とは逆に
ブツシュ操作に応じてデクリメントし、ポツプ操作に応
じてインクリメントするようにしてもよい。この場合ス
タック領域の限界アドレスはスタックポインタの値に対
してレジスタファイルの下位アドレス側になる。
Further, the register file can be dedicated as a stack area, and the stack area is not limited to the register file structure, but may be a storage means with a structure accessed by a memory access instruction. Address calculation when accessing a register file may be performed by decrementing in response to a push operation and incrementing in response to a pop operation, contrary to the above embodiment. In this case, the limit address of the stack area is on the lower address side of the register file relative to the value of the stack pointer.

また、スタック領域のオーバーフロー検出に加算器のキ
ャリー信号を用いる場合、設定可能なスタック領域が当
該加算器のハードウェアに制限される性質上、レジスタ
ファイル6の一部をスタック領域5TACK’Eとして
用いる場合に、上記実施例のようにスタック限界をレジ
スタファイル6の最上位側レジスタとしないときには、
その加算器27と並列的にスタックポインタの値をイン
クリメント/デクリメントする別の加算器を用いてスタ
ック領域のオーバーフローを検出してもよい。
In addition, when using the carry signal of the adder to detect overflow of the stack area, a part of the register file 6 is used as the stack area 5TACK'E because the stack area that can be set is limited to the hardware of the adder. In this case, when the stack limit is not set to the highest register of the register file 6 as in the above embodiment,
An overflow of the stack area may be detected using another adder that increments/decrements the value of the stack pointer in parallel with the adder 27.

このとき、当該専用加算器の演算結果はスタックポイン
タに戻さなくてもよい。
At this time, the operation result of the dedicated adder does not need to be returned to the stack pointer.

以上本発明者によってなされた発明をその背景となった
利用分野であるコプロセッサに適用した場合について説
明したが、本発明はそれに限定されるものではなく、そ
の他のマイクロプロセッサやマイクロコンピュータ、そ
してインテリジェント化されたその他の周辺コントロー
ラなどに広く適用することができ、さらにRISCマシ
ンに限定されずCl5C(コンプレックス・インストラ
クション・セット・コンピュータ)マシンにも適用可能
であることは言うまでもない。本発明は少なくともデー
タ処理動作中に状態保存を行う必要のあるものに適用す
ることができる。
Although the invention made by the present inventor is applied to coprocessors, which is the background field of application, the present invention is not limited thereto, and can be applied to other microprocessors, microcomputers, and intelligent Needless to say, the present invention can be widely applied to other standardized peripheral controllers, and is not limited to RISC machines, but can also be applied to Cl5C (complex instruction set computer) machines. The present invention can be applied to at least those that require state preservation during data processing operations.

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

本願において開示される発明のうち代表的なものによっ
て得られる効果を簡単に説明すれば下記の通りである。
A brief explanation of the effects obtained by typical inventions disclosed in this application is as follows.

すなわち、スタックポインタとリミットポインタの値を
比較し、その比較結果による両者の一致検出に基づいて
スタック領域のオーバーフローを検出し、このオーバー
フローを検出した後に状態保存のための制御手順を切換
制御するから、スタック領域をオーバーフロー状態まで
有効に利用することができるという効果がある。
That is, it compares the values of the stack pointer and limit pointer, detects an overflow of the stack area based on whether they match based on the comparison result, and switches control procedures for saving the state after detecting this overflow. This has the effect that the stack area can be used effectively up to an overflow state.

また、スタックポインタの値を更新する演算器から出力
されるキャリー信号を利用し、これに基づいて状態保存
のための制御手順を変更可能とすることによっても、上
記同様スタック領域をオーバーフロー状態まで有効に利
用することができるという効果を得る。
In addition, by using the carry signal output from the arithmetic unit that updates the value of the stack pointer and making it possible to change the control procedure for saving the state based on this, the stack area can be used up to the overflow state as described above. The effect is that it can be used for

スタック領域をオーバーフロー状態まで有効に利用する
こができることにより、スタック領域に先にスタックさ
れている情報を外部に転送してスタック領域に空き領域
を形成する処理回数をシステム動作上最小限にすること
ができ、これによって状態保存処理のための総動作時間
をシステム動作全体において短縮することができるとい
う効果を得る。
By being able to effectively utilize the stack area up to an overflow state, the number of times information previously stacked in the stack area is transferred to the outside to create free space in the stack area can be minimized in terms of system operation. This has the effect that the total operating time for state saving processing can be shortened in the entire system operation.

スタック領域のオーバーフロー検出は、スタックポイン
タの値とリミットポインタの値を比較する比較手段や、
スタックポインタの値を更新する演算手段によりハード
ウェア的にもしくは自動的に行われるから、スタック領
域の管理や状態保存処理に対するソフトウェアの負担が
軽減されると共に、ソフトウェアによる固有の処理ステ
ップが必要なくなり、こりによりスタック領域の管理に
費やされる時間、さらには個々の状態保存処理にかかる
時間を短縮することができるという効果がある。
Stack area overflow detection is performed using a comparison method that compares the value of the stack pointer and the value of the limit pointer,
This is done either hardware-wise or automatically using arithmetic means that updates the value of the stack pointer, which reduces the burden on software for stack area management and state saving processing, and eliminates the need for specific software processing steps. This has the effect of reducing the time spent managing the stack area and further reducing the time required for individual state saving processing.

データ処理装置を1つの半導体チップに形成すると、ス
タック領域として利用される記憶手段は当該半導体チッ
プに内蔵されるため、状態保存や復帰のためにスタック
領域を高速アクセスすることができ、さらにスタック領
域のオーバーフローに起因して状態保存のための制御手
順を変更する処理の指示を直接マイクロアドレスコント
ローラに与えてマイクロフローを分岐させることにより
、スタック領域がオーバーフローしたときに状態保存処
理の制御手順を変更する処理を高速化することができる
という効果がある。
When the data processing device is formed on one semiconductor chip, the storage means used as the stack area is built into the semiconductor chip, so the stack area can be accessed at high speed for saving and restoring the state. Change the control procedure for state saving processing when the stack area overflows by giving processing instructions directly to the microaddress controller and branching the microflow. This has the effect of speeding up the processing.

そして、リミットポインタを用いてスタック領域のオー
バーフローを検出することにより、当該リミットポイン
タに対する情報設定に従ってスタック領域の限界を記憶
手段上において自由に設定することができるようになる
By detecting overflow of the stack area using the limit pointer, it becomes possible to freely set the limit of the stack area on the storage means according to the information setting for the limit pointer.

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

第1図は本発明の一実施例に斯るコプロセッサの要部を
示すブロック図、 第2図はスタック領域のオーバーフローをリミットポイ
ンタとスタックポインタの値を比較して検出のための構
成を概念的に示すブロック図、第3図はスタック領域の
オーバーフローをスタックポインタの加算器値から出力
されるキャリー信号を用いて検出のための構成を概念的
に示すブロック図、 第4図はコプロセッサ全体を概略的に示すブロック図で
ある。 1・・・コプロセッサ、4・・・命令制御部、5・・・
実行部、6.7・・・レジスタファイル、RFo−RF
、、5・・レジスタ、5TACKE・・・スタック領域
、23・・・スタックポインタ、24・・・リミットポ
インタ、25・ポインタレジスタ群、27・・・加算器
、30・・・コンパレータ、GOMP・・・比較結果、
40・・・マイクロROM、43・・・マイクロアドレ
スコントローラ、44・・・コントロールアドレスレジ
スタ群、CAR・・・キャリー信号。
Fig. 1 is a block diagram showing the main parts of a coprocessor according to an embodiment of the present invention, and Fig. 2 is a conceptual configuration for detecting stack area overflow by comparing the values of the limit pointer and the stack pointer. 3 is a block diagram conceptually showing a configuration for detecting overflow in the stack area using a carry signal output from the adder value of the stack pointer, and FIG. 4 is a block diagram showing the entire coprocessor. FIG. 2 is a block diagram schematically showing the FIG. 1...Coprocessor, 4...Instruction control unit, 5...
Execution unit, 6.7...Register file, RFo-RF
, 5...Register, 5TACKE...Stack area, 23...Stack pointer, 24...Limit pointer, 25...Pointer register group, 27...Adder, 30...Comparator, GOMP... ·Comparison result,
40... Micro ROM, 43... Micro address controller, 44... Control address register group, CAR... Carry signal.

Claims (1)

【特許請求の範囲】 1、命令の実行に利用される記憶手段の一部又は全部を
状態保存のためのスタック領域として利用するデータ処
理装置であって、上記記憶手段のスタック領域における
スタック可能なアドレスを指示するためのスタックポイ
ンタと、そのスタック領域の限界を指示するためのリミ
ットポインタと、上記スタックポインタの値とリミット
ポインタの値を比較し、その一致検出に基づいて記憶手
段に含まれるスタック領域のオーバーフローを検出する
検出手段と、この検出手段によるオーバーフロー検出に
基づいて状態保存のための制御手順を変更可能なシーケ
ンス制御手段を有するデータ処理装置。 2、1つの半導体チップに形成されていて、上記シーケ
ンス制御手段は、検出手段によるオーバーフロー検出に
基づいて、スタック領域に先に退避されている情報を外
部に退避させて内蔵記憶手段上のスタック領域に空き領
域を形成するための制御手順に動作制御手順を分岐させ
るものである請求項1記載のデータ処理装置。 3、上記シーケンス制御手段は、マイクロプログラムを
保有するマイクロ制御記憶と、上記検出手段によるオー
バーフロー検出に基づいて状態保存のためのマイクロプ
ログラムを分岐させるマイクロアドレスコントローラと
を含むものである請求項2記載のデータ処理装置。 4、命令の実行に利用される記憶手段の一部又は全部を
状態保存のためのスタック領域として利用するデータ処
理装置であって、上記記憶手段に含まれるスタック領域
におけるスタック可能なアドレスを指示するためのスタ
ックポインタと、このスタックポインタの値を更新する
演算器と、この演算器から出力されるキャリー信号に基
づいて状態保存のための制御手順を変更可能なシーケン
ス制御手段を有するデータ処理装置。
[Scope of Claims] 1. A data processing device that uses part or all of a storage means used for executing instructions as a stack area for saving a state, wherein a stackable memory in the stack area of the storage means is provided. A stack pointer for indicating an address, a limit pointer for indicating the limit of the stack area, the value of the stack pointer and the value of the limit pointer are compared, and the stack included in the storage means is stored based on the detection of a match. A data processing device comprising a detection means for detecting an overflow of an area, and a sequence control means capable of changing a control procedure for state preservation based on the overflow detected by the detection means. 2. The sequence control means is formed in one semiconductor chip, and the sequence control means saves the information previously saved in the stack area to the outside based on the overflow detection by the detection means, and stores the information in the stack area on the built-in storage means. 2. The data processing apparatus according to claim 1, wherein the operation control procedure branches into a control procedure for forming a free area in the data processing apparatus. 3. The data according to claim 2, wherein the sequence control means includes a microcontrol memory storing a microprogram, and a microaddress controller that branches the microprogram for state preservation based on overflow detection by the detection means. Processing equipment. 4. A data processing device that uses part or all of the storage means used for executing instructions as a stack area for state storage, and indicates a stackable address in the stack area included in the storage means. A data processing device comprising: a stack pointer for a stack pointer; an arithmetic unit that updates the value of the stack pointer; and a sequence control means that can change a control procedure for state preservation based on a carry signal output from the arithmetic unit.
JP3561989A 1989-02-15 1989-02-15 Data processor Pending JPH02214938A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3561989A JPH02214938A (en) 1989-02-15 1989-02-15 Data processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3561989A JPH02214938A (en) 1989-02-15 1989-02-15 Data processor

Publications (1)

Publication Number Publication Date
JPH02214938A true JPH02214938A (en) 1990-08-27

Family

ID=12446871

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3561989A Pending JPH02214938A (en) 1989-02-15 1989-02-15 Data processor

Country Status (1)

Country Link
JP (1) JPH02214938A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011008611A (en) * 2009-06-26 2011-01-13 Fujitsu Ltd Information processing apparatus and method
JP5079326B2 (en) * 2004-03-26 2012-11-21 三菱電機株式会社 Elevator control device
EP3330848A3 (en) * 2016-12-01 2018-07-18 Cisco Technology, Inc. Detection of stack overflow in a multithreaded processor

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5079326B2 (en) * 2004-03-26 2012-11-21 三菱電機株式会社 Elevator control device
JP2011008611A (en) * 2009-06-26 2011-01-13 Fujitsu Ltd Information processing apparatus and method
EP3330848A3 (en) * 2016-12-01 2018-07-18 Cisco Technology, Inc. Detection of stack overflow in a multithreaded processor
US10649786B2 (en) 2016-12-01 2020-05-12 Cisco Technology, Inc. Reduced stack usage in a multithreaded processor

Similar Documents

Publication Publication Date Title
US3401376A (en) Central processor
US4679140A (en) Data processor with control of the significant bit lengths of general purpose registers
KR0138468B1 (en) Microcomputer
EP0476722B1 (en) Data processing system
US4833640A (en) Register bank change including register to register transfer in a data processing system
JPS63240664A (en) Fast processing computer
US5757685A (en) Data processing system capable of processing long word data
US4047245A (en) Indirect memory addressing
JPS5911921B2 (en) numerical control device
JPH02214938A (en) Data processor
US4816992A (en) Method of operating a data processing system in response to an interrupt
JPS59106075A (en) Data processing system
CA1155231A (en) Pipelined digital processor arranged for conditional operation
EP0301707A2 (en) Apparatus and method for providing an extended processing environment on nonmicrocoded data processing system
KR0136111B1 (en) Apparatus and method for synhcronization of access to main memory signal groups in a multiprocessor data processing
JP3067253B2 (en) Data processing device
JPH0377137A (en) Information processor
US5687380A (en) Macro service processing of interrupt requests in a processing system where a single interrupt is generated for a plurality of completed transactions
JPH0635800A (en) Microprocessor and data processing system using it
JP2583614B2 (en) Vector arithmetic unit
JP2918570B2 (en) Central processing unit
JPS62151942A (en) Task changing-over system
JPS5999552A (en) Microcomputer
JP2743947B2 (en) Micro program control method
JP2883489B2 (en) Instruction processing unit