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

データ処理装置

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

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はスタック領域のオーバーフロー検出技術さらに
はスタック領域の有効利用を図る技術に関し1例えば半
導体チップに内蔵された記憶手段をスタック領域として
利用するマイクロプロセッサに適用して有効な技術に関
するものである。
〔従来技術〕
マイクロプロセッサなどのデータ処理装置において割込
みや例外処理などの発生により動作プログラムを分岐さ
せるとき、それ以前のデータ処理に利用されていた各種
情報を状態復帰の後に再度利用可能とするためにはそれ
ら情報を所定のスタック領域に退避しておかなければな
らない。このような情報の退避や復帰はサブルーチンコ
ール命令やリターン命令などを実行することにより行わ
れるが、退避すべき情報が多かったり、動作プログラム
の分岐が頻繁に起こるような場合にはそのような命令の
実行に無視し得ない時間が費やされる。そこで、内蔵メ
モリにスタック領域を割り当てて、情報の退避や復帰処
理にかかるメモリアクセス時間を短縮し、これによって
処理の高速化を図る技術が提案されており、例えばこの
技術は、株式会社アスキー発行の月刊「アスキー」19
88年9月号の第167頁乃至第169頁に記載されて
いる。
ところで、内蔵メモリに割り当てられるスタック領域の
記憶容量には限りがあるため、スタック領域の未使用領
域に必要な情報を退避することができない場合には、先
入れ後出し形式とれさるスタック領域の性質上、先に内
蔵スタック領域に退避されている情報を外部メモリやそ
の他のメモリ領域に退避させて、内蔵スタック領域に空
き領域を形成してやることが必要になる。そのためには
スタック領域における未使用領域の記憶容量即ち残存ス
タック長を管理しなければならないが、従来その管理は
、サブルーチン毎に利用可能なスタック長を固定化して
残存スタック長をサブルーチンのネスト数即ち呼び出し
回数で把握したり、サブルーチンコールが起こる度に残
りのスタック長と必要なスタック長とを予めソフトウェ
アを介して比較判定したりすることにより行われていた
〔発明が解決しようとする課題〕
しかしながら、残存スタック長をサブルーチンのネスト
数で管理する手法では、サブルーチン毎に固定化して割
り当てられたスタック長を必ずしも毎回最大限に利用す
るとは限らず、内蔵スタック領域を有効に利用すること
ができない。また、1つのサブルーチンに利用可能なス
タック長が固定されるというような制限事項は、コンパ
イラによる処理を複雑化する虞がある。
また、ソフトウェアにより残存スタック長と必要なスタ
ック長とを予め比較判定する手法では、ソフトウェアに
負担がかかると共に、その比較判定ステップによりサブ
ルーチンコール命令のような分岐命令の実行に時間がか
かってしまう。
本発明の目的は、スタック領域を有効に利用することが
できるデータ処理装置を提供することにある。更に本発
明の別の目的は、スタック領域の管理に費やされる時間
、さらには状態保存処理にかかる時間を短縮することが
できるデータ処理装置を提供することにある。
本発明の前記ならびにそのほかの目的と新規な特徴は、
本明細書の記述及び添付図面から明らかになるであろう
〔課題を解決するための手段〕
本願において開示される発明のうち代表的なものの概要
を簡単に説明すれば下記の通りである。
すなわち、記憶手段に割り当てられたスタック領域にお
けるスタック可能なアドレスを指示するためのスタック
ポインタと、そのスタック領域の限界を指示するための
リミットポインタとの値を比較し、その一致検出に基づ
いてその記憶手段に含まれるスタック領域のオーバーフ
ローを検出し、このオーバーフロー検出に基づいて状態
保存のための制御手順をシーケンス制御手段により変更
可能とするようにデータ処理装置を構成するものである
また、スタックポインタの値を更新する演算器から出力
されるキャリー信号を利用し、これに基づいて状態保存
のための制御手順をシーケンス制御手段により変更可能
とするようにデータ処理装置を構成することもできる。
上記夫々のデータ処理装置において、上記シーケンス制
御手段は、オーバーフロー検出又はキャリー出力に基づ
いて、スタック領域に先に退避されている情報を外部に
退避させてそのスタック領域に空き領域を形成するため
の制御手順に分岐させるように構成することができる。
上記夫々のデータ処理装置を1つの半導体チップに形成
すると、スタック領域として利用される記憶手段は当該
半導体チップに内蔵されるため、状態保存や復帰のため
にスタック領域を高速アクセスすることができるが、さ
らに状態保存のための制御手順を変更する処理を高速化
するには、そのような制御手順を変更する指示を直接マ
イクロアドレスコントローラに与えてマイクロフローを
分岐させるようにすることが望ましい。
〔作 用〕
上記した手段によれば、状態保存処理の制御手順を変更
指示するためのスタック領域のオーバーフロー信号や演
算器のキャリー信号は記憶手段のスタック領域が完全に
もしくはほぼ完全に利用された状態で有意とされること
により、スタック領域の有効利用を可能とする。ここで
演算器のキャリー信号を利用する場合には、キャリー信
号が有意とされるときにスタックポインタが指すアドレ
スをスタック領域の限界アドレスに一致するようにスタ
ック領域を設定しておくことが望ましい。
これに対し、リミットポインタを用いる場合には当該リ
ミットポインタに対する情報設定に従ってスタック領域
の限界は記憶手段上において自由に設定可能である。
状態保存処理の制御手順を変更指示するためのスタック
領域のオーバーフロー検出や演算器のキャリー信号生成
は、スタックポインタの内容更新に従ってハードウェア
的に行われることにより、スタック領域の管理や命令の
分岐処理に対するソフトウェアの負担を軽減すると共に
、ソフトウェアによる固有の処理ステップを必要としな
いように作用し、これによりスタック領域の管理に費や
される時間、さらには状態保存処理にかかる時間の短縮
を達成するものである。
〔実施例〕
第4図には本発明の一実施例であるコプロセッサのブロ
ック図が示される。このコプロセッサ1は、特に制限さ
れないが、主プロセツサ(図示せず)の演算処理能力を
補うための1つの周辺回路として位置付けられ、主プロ
セツサが発行するコマンドのような命令(以下単にコマ
ンドとも記す)を解釈してそれを実行する。このコプロ
セッサ1は、特に制限されないが、バスインタフェース
2を持つ内部バス3に、マイクロプログラムに従って各
種制御信号を生成する命令制御部4と実行部5が結合さ
れ、さらに実行部5には比較的記憶容量の大きな2個の
レジスタファイル6.7が結合されて成る。斯るコプロ
セッサ1は、特に制限されないが、RISC(リデュー
スト・インストラクション・セット・コンピュータ)マ
シンとされ、命令それ自体が簡素化されていると共に命
令セットも小さく、しかも演算処理では上記内蔵レジス
タファイル6.7を利用して、処理の高速化を図ってい
る。
第1図には上記コプロセッサ1の要部がブロック図によ
り詳細に示されている。
このコプロセッサ1の内部で処理されるデータは、特に
制限されないが、40ビツトで構成され、その下位32
ビツトがデータ又はアドレスを含む情報フィールドであ
り、上位8ビツトがその情報フィールドの属性を示すタ
グフィールドになる。
上記内部バス3は、特に制限されないが、ソースオペラ
ンドやその前の命令による演算結果を並列的にもしくは
連続的にやりとりして1命令を1マシンサイクルで実行
可能なように、夫々40ビツトの第1バス3A、第2バ
ス3B、第3バス3Cを主体に構成される。上記各内部
バス3A〜3Cの外部とのインタフェースは、外部デー
タバス10に結合されるデータインプットレジスタ11
並びにデータアウトプットレジスタ12、及び外部アド
レスバス13に結合される論理アドレスレジスタ14に
より行われる。
レジスタファイル6は、特に制限されないが、1ワード
を40ビツトとする256ワードのレジスタRFo−R
F2S5によって構成され、3個のポートを介して個別
的に結合された上記第1バス3A、第2バス3B、第3
バス3Cとの間でデータをやりとりする。レジスタファ
イル6に含まれる256個のレジスタRFD−RF2.
.は、レジスタファイルセレクタ20から出力される8
ビツトのアドレス情報をアドレスデコーダ21がデコー
ドして出力する選択信号により何れか1つが選択される
。このレジスタファイル6はソースオペランドや演算結
果の一時格納領域として利用されると共に、内部動作制
御手順を分岐させる場合に状態保存を行うためのスタッ
ク領域5TACKEとしても利用される。
レジスタファイル6に設定されるスタック領域5TAC
KHのスタックトップ即ちスタック領域5TACKEに
書き込まれた最新情報の所在を指すスタックポインタ2
3は、複数ワードのポインタレジスタを含むポインタレ
ジスタ群25に含まれている。さらにこのポインタレジ
スタ群25には、レジスタファイル6に設定されるスタ
ック領域5TACKEの限界アドレスを指すリミットポ
インタ26を含む。このポインタレジスタ群25に含ま
れるその他のポインタレジスタはレジスタファイル6に
おけるスタック領域5TACKE以外のレジスタをアク
セスする場合に利用される。
尚、ポインタレジスタ群25に含まれるポインタレジス
タは命令制御部4のマイクロプログラムに従って所定の
1つが選択され、内部バス3A、3B、3Gとの間での
アドレス情報の入出力、ローカルアドレスバス26から
のアドレス情報の入力、又は加算器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」になる。
上記スタックポインタ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の値をデクリ
メン・トする。
尚、内部バス3A、3B、3Cにはデータ演算や論理ア
ドレス演算のための算術論理演算器31や図示しないバ
レルシフタが結合され、その算術論理演算器31による
演算結果はアキュムレータ32を介して内部バス3A、
3B、3Cに出力可能になっている。また、第1図には
示されていないが、レジスタファイル7側にもポインタ
レジスタ群、加算器、レジスタブアイルセレクタ、及び
アドレスデコーダが設けられている。
命令制御部4は、特に制限されないが、図示しない主プ
ロセツサが出力するコマンドに従で内部を制御するため
のマイクロ制御記憶としてマイクロROM (リード・
オンリ・メモリ)40を持つ。
マイクロROM40は、コプロセッサ1の動作制御に必
要な各種マイクロ命令の系列から成るマイクロプログラ
ムを含み、マイクロアドレスデコーダ41の出力によっ
てアクセスされる。このマイクロアドレスデコーダ41
は、コマンドレジスタ42にフェッチされた図示しない
主プロセツサの発行コマンドに基づいてマイクロアドレ
スコントローラ43が出力するアドレス情報を受は取り
、これをデコードすることによって、そのコマンドを実
行するための一連のマイクロ命令系列の先頭のマイクロ
命令が読み出される。コマンドに対応する一連のマイク
ロ命令系列のうち第2番目以降のマイクロ命令は、特に
制限されないが、直前に読み出されたマイクロ命令のネ
クストアドレスフィールドの情報がマイクロアドレスコ
ントローラ43に供給されることによって指示される。
また、マイクロアドレスコントローラ43には、マイク
ロフローを分岐させる場合に選択されるべきマイクロプ
ログラムの先頭マイクロ命令のアドレスが複数ワードの
コントロールアドレスレジスタ群44から入力されてい
る。コントロールアドレスレジスタ群44から供給され
ているアドレス情報は、各種状態フラグや上記コンパレ
ータ30の比較結果GOMPなどに基づいて選択される
。尚、この選択タイミングは現在実行中のマイクロ命令
系列の実行終了後とされる。
斯るマイクロアドレスコントローラ43からマイクロア
ドレスデコーダ41に選択的に出力されるアドレス情報
に従ってマイクロROM40から順次読み出されるマイ
クロ命令はマイクロ命令ラッチ45を介してマイクロ命
令デコーダ46に供給される。このマイクロ命令デコー
ダ46によってマイクロ命令が解釈されることにより、
実行部5に対する各種制御信号が形成される。
上記マイクロROM40には、スタック領域5TACK
Eがオーバーフローしたときに、当該スタック領域に先
に退避されている情報を外部に退避させてレジスタファ
イル6上のスタック領域5TACKHに空き領域を形成
するための例外処理的な一連のマイクロ命令系列を保有
する。斯るマイク命令系列の先頭アドレスはコントロー
ルアドレスレジスタ群44に含まれる所定のレジスタに
設定される。
サブルーチンコール命令のような分岐命令の実行段階に
おいて、必要な情報をスタック領域5TACKEに状態
保存しているとき、スタックポインタ23とリミットポ
インタ24との値が一致してスタック領域5TACKH
のオーバーフローがコンパレータ30により検出される
と、その比較結果COMPを受けるマイクロアドレスコ
ントローラ43は、上記スタック領域5TACKEの情
報を外部メモリに退避するための一連のマイクロ命令系
列の先頭アドレスを所定のタイミングで選択してマイク
ロアドレスデコーダ41に与える。
このマイクロフローの分岐タイミングは、スタック領域
5TACKEがオーバーフローしたときのブツシュ操作
に続く次のブツシュ操作が開始される前のタイミングと
される。このようにしてマイクロフローが分岐されると
、例えば、スタック領域5TACKEに対してポツプ操
作を行って読み出した情報をブツシュ操作にて書き込む
動作が順次繰返されると共に、引き続いて外部メモリに
退避させるべき一層の情報フレームに対してはポツプ操
作だけが行われ、ポツプ操作で得られた情報は外部メモ
リに転送され、これにより、スタック領域5TACKE
に空き領域が形成される。空き領域が形成されると、特
に制限されないが、当該マイクロプログラムの最後のマ
イクロ命令によってマイクロフローの戻り番地が指定さ
れ、引き続いてスタック領域5TACKEに対する状態
保存が継続される。
上記説明ではオーバーフローしたスタック領域5TAC
KEに空き領域を形成するための例外処理的な一連のマ
イクロ命令系列への分岐指示をコンパレータ30の比較
結果GOMPに基づいて与えるようにしたが、例えば第
3図に示されるように、上記加算器27のキャリー信号
CARによって指示することもできる。この場合、レジ
スタファイル6に設定可能なスタック領域S T A、
CKの大きさは加算器27の構成に制限される。即ち、
キャリー信号CARが有意とされるときにスタックポイ
ンタ23が指すアドレスをスタック領域5TACKEの
限界アドレスに一致させるようにスタック領域5TAC
KEを設定しておくことが必要になる。
上記実施例によれば以下の作用効果を得るものである。
(1)スタックポインタ23とリミットポインタ24と
の値を比較し、その比較結果COMPによる両者の一致
検出に基づいてレジスタファイル6に含まれるスタック
領域5TACKEのオーバーフローを検出し、その後で
このオーバーフロー検出に基づいて状態保存のための制
御手順を切換制御するから、スタック領域5TACKE
をオーバーフロー状態まで有効に利用することができる
(2)スタック領域5TACKEをオーバーフロー状態
まで有効に利用するこができることにより、スタック領
域5TACKEに先にスタックされている情報を外部メ
モリに転送してスタック領域5TACKEに空き領域を
形成する処理回数を最小限にすることができ、これによ
って状態保存処理のための総動作時間をシステム動作全
体において短縮することができる。
(3)スタック領域5TACKEのオーバーフロー検出
は、スタックポインタ23のインクリメント/デクリメ
ントに従ってコンパレータ30がハードウェア的にもし
くは自動的に行うことにより、スタック領域5TACK
Eの管理や状態保存処理に対するソフトウェアの負担を
軽減すると共に、ソフトウェアによる固有の処理ステッ
プが必要なくなり、こりによりスタック領域の管理に費
やされる時間、さらには個々の状態保存処理にかかる時
間を短縮することができる。
(4)コプロセッサ1は1つの半導体チップに形成され
、この半導体チップに内蔵されるレジスタファイル6を
スタック領域5TACKEとして利用するため、状態保
存や復帰のためにスタック領域5TACKEを高速アク
セスすることができるが、さらにスタック領域5TAC
KEのオーバーフローに起因して状態保存のための制御
手順を変更する処理の指示を直接マイクロアドレスコン
トローラ43に与えてマイクロフローを分岐させること
により、スタック領域5TACKEがオーバーフローし
たときに状態保存処理の制御手順を変更する処理を高速
化することができ、ひいては状態保存処理を一層高速化
することができる。
(5)リミットポインタ24を用いることにより、当該
リミットポインタ24に対する情報設定に従ってスタッ
ク領域5TACKEの限界をレジスタファイル6上にお
いて自由に設定することができる。
(6)加算器27から出力されるキャリー信号CARを
利用し、これに基づいて状態保存のための制御手順をマ
イクロアドレスコントローラ43を介して変更するよう
にしても、上記(1)乃至(5)に記載の効果と同様の
効果を得ることができる。
但し、この場合には、キャリー信号CARが有意とされ
るときにスタックポインタ23が指すアドレスをスタッ
ク領域5TACKEの限界アドレスに一致するようにス
タック領域を設定しておくことが必要になり、レジスタ
ファイル6に設定可能なスタック領域5TACKEは加
算器27のハードウェアによって制限される。
以上本発明者によってなされた発明を実施例に基づいて
具体的に説明したが、本発明はそれに限定されるもので
はなく、その要旨を逸脱しない範囲において種々変更す
ることができる。
例えば上記実施例では状態保存処理の制御手順を変更す
る指示を直接マイクロアドレスコントローラに与える場
合について説明したが、本発明はそれに限定されるもの
ではなく、割込みコントローラを内蔵する場合にはレジ
スタファイルのオーバーフロー検出信号を割込み信号と
してそのコントローラに与えるようにしてもよい。また
、上記実施例では分岐先アドレスそのものをコントロー
ルアドレスレジスタに保有させたが、演算処理を介して
分岐先アドレスを生成するようにしてもより)。
また、レジスタファイルはスタック領域として専用化す
ることができ、さらにスタック領域はレジスタファイル
構造に限定されず、メモリアクセス命令でアクセスされ
る構造の記憶手段にしてもよい。レジスタファイルをア
クセスする場合のアドレス演算は、上記実施例とは逆に
ブツシュ操作に応じてデクリメントし、ポツプ操作に応
じてインクリメントするようにしてもよい。この場合ス
タック領域の限界アドレスはスタックポインタの値に対
してレジスタファイルの下位アドレス側になる。
また、スタック領域のオーバーフロー検出に加算器のキ
ャリー信号を用いる場合、設定可能なスタック領域が当
該加算器のハードウェアに制限される性質上、レジスタ
ファイル6の一部をスタック領域5TACKEとして用
いる場合に、上記実施例のようにスタック限界をレジス
タファイル6の最上位側レジスタとしないときには、そ
の加算器27と並列的にスタックポインタの値をインク
リメン/デクリメントする別の加算器を用いてスタック
領域のオーバーフローを検出してもよい。
このとき、当該専用加算器の演算結果はスタックポイン
タに戻さなくてもよい。
以上本発明者によってなされた発明を実施例に基づいて
具体的に説明したが、本発明はそれに限定されるもので
はなく、その要旨を逸脱しない範囲において種々変更す
ることができる。
例えば上記実施例では状態保存処理の制御手順を変更す
る指示を直接マイクロアドレスコントローラに与える場
合について説明したが、本発明はそれに限定されるもの
ではなく、割込みコントローラを内蔵する場合にはレジ
スタファイルのオーバーフロー検出信号を割込み信号と
してそのコントローラに与えるようにしてもよい。また
、上記実施例では分岐先アドレスそのものをコントロー
ルアドレスレジスタに保有させたが、演算処理を介して
分岐先アドレスを生成するようにしてもよい。
また、レジスタファイルはスタック領域として専用化す
ることができ、さらにスタック領域はレジスタファイル
構造に限定されず、メモリアクセス命令でアクセスされ
る構造の記憶手段にしてもよい。レジスタファイルをア
クセスする場合のアドレス演算は、上記実施例とは逆に
ブツシュ操作に応じてデクリメントし、ポツプ操作に応
じてインクリメントするようにしてもよい。この場合ス
タック領域の限界アドレスはスタックポインタの値に対
してレジスタファイルの下位アドレス側になる。
また、スタック領域のオーバーフロー検出に加算器のキ
ャリー信号を用いる場合、設定可能なスタック領域が当
該加算器のハードウェアに制限される性質上、レジスタ
ファイル6の一部をスタック領域5TACK’Eとして
用いる場合に、上記実施例のようにスタック限界をレジ
スタファイル6の最上位側レジスタとしないときには、
その加算器27と並列的にスタックポインタの値をイン
クリメント/デクリメントする別の加算器を用いてスタ
ック領域のオーバーフローを検出してもよい。
このとき、当該専用加算器の演算結果はスタックポイン
タに戻さなくてもよい。
以上本発明者によってなされた発明をその背景となった
利用分野であるコプロセッサに適用した場合について説
明したが、本発明はそれに限定されるものではなく、そ
の他のマイクロプロセッサやマイクロコンピュータ、そ
してインテリジェント化されたその他の周辺コントロー
ラなどに広く適用することができ、さらにRISCマシ
ンに限定されずCl5C(コンプレックス・インストラ
クション・セット・コンピュータ)マシンにも適用可能
であることは言うまでもない。本発明は少なくともデー
タ処理動作中に状態保存を行う必要のあるものに適用す
ることができる。
〔発明の効果〕
本願において開示される発明のうち代表的なものによっ
て得られる効果を簡単に説明すれば下記の通りである。
すなわち、スタックポインタとリミットポインタの値を
比較し、その比較結果による両者の一致検出に基づいて
スタック領域のオーバーフローを検出し、このオーバー
フローを検出した後に状態保存のための制御手順を切換
制御するから、スタック領域をオーバーフロー状態まで
有効に利用することができるという効果がある。
また、スタックポインタの値を更新する演算器から出力
されるキャリー信号を利用し、これに基づいて状態保存
のための制御手順を変更可能とすることによっても、上
記同様スタック領域をオーバーフロー状態まで有効に利
用することができるという効果を得る。
スタック領域をオーバーフロー状態まで有効に利用する
こができることにより、スタック領域に先にスタックさ
れている情報を外部に転送してスタック領域に空き領域
を形成する処理回数をシステム動作上最小限にすること
ができ、これによって状態保存処理のための総動作時間
をシステム動作全体において短縮することができるとい
う効果を得る。
スタック領域のオーバーフロー検出は、スタックポイン
タの値とリミットポインタの値を比較する比較手段や、
スタックポインタの値を更新する演算手段によりハード
ウェア的にもしくは自動的に行われるから、スタック領
域の管理や状態保存処理に対するソフトウェアの負担が
軽減されると共に、ソフトウェアによる固有の処理ステ
ップが必要なくなり、こりによりスタック領域の管理に
費やされる時間、さらには個々の状態保存処理にかかる
時間を短縮することができるという効果がある。
データ処理装置を1つの半導体チップに形成すると、ス
タック領域として利用される記憶手段は当該半導体チッ
プに内蔵されるため、状態保存や復帰のためにスタック
領域を高速アクセスすることができ、さらにスタック領
域のオーバーフローに起因して状態保存のための制御手
順を変更する処理の指示を直接マイクロアドレスコント
ローラに与えてマイクロフローを分岐させることにより
、スタック領域がオーバーフローしたときに状態保存処
理の制御手順を変更する処理を高速化することができる
という効果がある。
そして、リミットポインタを用いてスタック領域のオー
バーフローを検出することにより、当該リミットポイン
タに対する情報設定に従ってスタック領域の限界を記憶
手段上において自由に設定することができるようになる
【図面の簡単な説明】
第1図は本発明の一実施例に斯るコプロセッサの要部を
示すブロック図、 第2図はスタック領域のオーバーフローをリミットポイ
ンタとスタックポインタの値を比較して検出のための構
成を概念的に示すブロック図、第3図はスタック領域の
オーバーフローをスタックポインタの加算器値から出力
されるキャリー信号を用いて検出のための構成を概念的
に示すブロック図、 第4図はコプロセッサ全体を概略的に示すブロック図で
ある。 1・・・コプロセッサ、4・・・命令制御部、5・・・
実行部、6.7・・・レジスタファイル、RFo−RF
、、5・・レジスタ、5TACKE・・・スタック領域
、23・・・スタックポインタ、24・・・リミットポ
インタ、25・ポインタレジスタ群、27・・・加算器
、30・・・コンパレータ、GOMP・・・比較結果、
40・・・マイクロROM、43・・・マイクロアドレ
スコントローラ、44・・・コントロールアドレスレジ
スタ群、CAR・・・キャリー信号。

Claims (1)

  1. 【特許請求の範囲】 1、命令の実行に利用される記憶手段の一部又は全部を
    状態保存のためのスタック領域として利用するデータ処
    理装置であって、上記記憶手段のスタック領域における
    スタック可能なアドレスを指示するためのスタックポイ
    ンタと、そのスタック領域の限界を指示するためのリミ
    ットポインタと、上記スタックポインタの値とリミット
    ポインタの値を比較し、その一致検出に基づいて記憶手
    段に含まれるスタック領域のオーバーフローを検出する
    検出手段と、この検出手段によるオーバーフロー検出に
    基づいて状態保存のための制御手順を変更可能なシーケ
    ンス制御手段を有するデータ処理装置。 2、1つの半導体チップに形成されていて、上記シーケ
    ンス制御手段は、検出手段によるオーバーフロー検出に
    基づいて、スタック領域に先に退避されている情報を外
    部に退避させて内蔵記憶手段上のスタック領域に空き領
    域を形成するための制御手順に動作制御手順を分岐させ
    るものである請求項1記載のデータ処理装置。 3、上記シーケンス制御手段は、マイクロプログラムを
    保有するマイクロ制御記憶と、上記検出手段によるオー
    バーフロー検出に基づいて状態保存のためのマイクロプ
    ログラムを分岐させるマイクロアドレスコントローラと
    を含むものである請求項2記載のデータ処理装置。 4、命令の実行に利用される記憶手段の一部又は全部を
    状態保存のためのスタック領域として利用するデータ処
    理装置であって、上記記憶手段に含まれるスタック領域
    におけるスタック可能なアドレスを指示するためのスタ
    ックポインタと、このスタックポインタの値を更新する
    演算器と、この演算器から出力されるキャリー信号に基
    づいて状態保存のための制御手順を変更可能なシーケン
    ス制御手段を有するデータ処理装置。
JP3561989A 1989-02-15 1989-02-15 データ処理装置 Pending JPH02214938A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3561989A JPH02214938A (ja) 1989-02-15 1989-02-15 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3561989A JPH02214938A (ja) 1989-02-15 1989-02-15 データ処理装置

Publications (1)

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

Family

ID=12446871

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3561989A Pending JPH02214938A (ja) 1989-02-15 1989-02-15 データ処理装置

Country Status (1)

Country Link
JP (1) JPH02214938A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011008611A (ja) * 2009-06-26 2011-01-13 Fujitsu Ltd 情報処理装置及びその方法
JP5079326B2 (ja) * 2004-03-26 2012-11-21 三菱電機株式会社 エレベータ制御装置
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 (ja) * 2004-03-26 2012-11-21 三菱電機株式会社 エレベータ制御装置
JP2011008611A (ja) * 2009-06-26 2011-01-13 Fujitsu Ltd 情報処理装置及びその方法
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
US4648034A (en) Busy signal interface between master and slave processors in a computer system
EP0476722B1 (en) Data processing system
KR0138468B1 (ko) 마이크로 컴퓨터
US4833640A (en) Register bank change including register to register transfer in a data processing system
US5757685A (en) Data processing system capable of processing long word data
JPS63240664A (ja) 高速処理計算機
JPH10207717A (ja) マイクロコンピュータ
JPS5911921B2 (ja) 数値制御装置
JPH02214938A (ja) データ処理装置
US4816992A (en) Method of operating a data processing system in response to an interrupt
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 (ko) 데이터요소의 수정장치 및 그 방법
US5687380A (en) Macro service processing of interrupt requests in a processing system where a single interrupt is generated for a plurality of completed transactions
JP3067253B2 (ja) データ処理装置
JPH0377137A (ja) 情報処理装置
JP2583614B2 (ja) ベクトル演算装置
JPH06324861A (ja) Cpu制御システム及び制御方法
JP2918570B2 (ja) 中央演算処理装置
JPS62151942A (ja) タスク切換え方式
JP2743947B2 (ja) マイクロプログラム制御方式
JP2883489B2 (ja) 命令処理装置
JPS6235694B2 (ja)