JPH0359727A - マイクロプロセッサにおける退避・復元方式 - Google Patents

マイクロプロセッサにおける退避・復元方式

Info

Publication number
JPH0359727A
JPH0359727A JP19433089A JP19433089A JPH0359727A JP H0359727 A JPH0359727 A JP H0359727A JP 19433089 A JP19433089 A JP 19433089A JP 19433089 A JP19433089 A JP 19433089A JP H0359727 A JPH0359727 A JP H0359727A
Authority
JP
Japan
Prior art keywords
stack
internal registers
internal
data
registers
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
JP19433089A
Other languages
English (en)
Inventor
Yasuo Hirota
廣田 泰生
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP19433089A priority Critical patent/JPH0359727A/ja
Publication of JPH0359727A publication Critical patent/JPH0359727A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 〔概 要〕 状態情報およびデータなどの情報をそれぞれ格納する複
数の内部レジスタを備えるとともに、割込みが発生した
ときにこれら内部レジスタが格納している情報をスタッ
クに退避するようにしたマイクロプロセッサの退避・復
元方式に関し、割込んだプログラムの実行中に実際に使
用されたレジスタおよび状態情報だけを復元するように
してマイクロプロセッサのオーバーヘッドをなくすこと
を目的とし、 内部レジスタのそれぞれに書換えが行われたことを示す
更新フラグを設けるとともにスタックにもこの更新フラ
グをそれぞれの内部レジスタに対応して格納し得るよう
にa威し、割込みが発生したときには状態レジスタと割
込んだプログラムで指定されたデータレジスタとが格納
している情報とこれらに対応する更新フラグとをスタッ
クに退避させた後これらの内部レジスタの更新フラグを
リセットするようにし、割込み処理が終了したときには
更新フラグがセットされている内部レジスタについてだ
け復元を行うように構成した。
〔産業上の利用分野〕
状態情報およびデータなどの情報をそれぞれ格納する複
数の内部レジスタを備えるとともに、割込みが発生した
ときにこれら内部レジスタが格納している情報をスタッ
クのスタックポインタによって指示されたアドレスに退
避するようにしたマイクロプロセッサに関する。
〔従来の技術〕
プロセッサが処理の実行中に優先度の高い処理からの割
込み、例外処理あるいはサブルーチン・コールなどの割
込みが発生するとこの処理を中断してプロセッサの状態
情報および内部レジスタが格納している命令、データな
ど(本明細書では命令、データなどを単に、データ、と
いう)はスタックなどの退避メモリに退避される。
この退避処理を迅速かつ容易に行うために、上記のよう
に内部レジスタに格納されているデータについては、当
該割込み処理を実行する際に使用される内部レジスタが
格納しているデータだけを退避させるようにしている。
そして、この割込み処理が終了すると、退避していたデ
ータがスタックなどの退避メモリからもとの内部レジス
タに復元されるとともに、リターン命令の実行によって
状態情報が復元されて処理が再開される。
第4図はこのような従来の退避・復元方式のフローチャ
ートであって、プログラムAの実行中に割込みが発生す
ると、ステップB1でノ\−ドウエアのプログラムカウ
ンタ、ステータスレジスタあるいは内部フラグなどの状
態情報を退避メモリに退避させる。
次のステップB2では割込んだプログラムBで使用する
ために指定されているレジスタの内容を退避メモリに退
避させ、次にステップB3で割込んだプログラムBの処
理を行う。
このプログラムBの処理が終了すると、ステップB4で
上記ステップB2で退避したレジスタの内容を元のレジ
スタに復元し、続くステップB5でリターン命令を実行
することによってステップB1で退避した状態情報、を
ステップB6で復元してから、割込みによって中断して
いたプログラムへの処理を再開する。
もしステップB3でのプログラムBの実行中に更にプロ
グラムCによる割込みが発生すると、このプログラムB
の処理を中断して上記ステップB1〜B6と同様なステ
ップC1〜C6の処理によってプログラムCを実行し、
その終了後ステ、ツブB3に戻ってプログラムBの処理
を再開する。
〔発明が解決しようとする課題〕
しかしながら、割込んだプログラムによって使用が指定
されている内部レジスタは、このプログラムを実行した
際に使用される可能性のあるすべての内部レジスタを含
んでいるものであるから、割込み処理の内容によっては
必ずしもそのすべての内部レジスタが処理に使用される
とは限らず、使用されなかった内部レジスタは割込まれ
る前の内容を保っている。
しかしながら、上記の従来技術においては、このように
割込み前の内容を保っている内部レジスタについても復
元を行うためにマイクロプロセッサのオーバーヘッドを
招くことになる。
本発明は割込んだプログラムの実行中に実際に使用され
たレジスタおよび状態情報だけを復元するようにしてマ
イクロプロセッサのオーバーヘッドをなくすことを目的
とする。
〔課題を解決するための手段〕
状態情報およびデータなどの情報をそれぞれ格納する複
数の内部レジスタRS +、 −−−Rs□、Rd+、
  ・・Rd、、を備えるとともに、割込みが発生した
ときにこれら内部レジスタが格納している情報をスタッ
クBのスタックポインタSPによって指示されたアドレ
スに退避するようにしたマイクロプロセッサにおいて、 上記内部レジスタRs、Rdのそれぞれに書換えが行わ
れたことを示す更新フラグfを設けるとともに上記スタ
ックBもこの更新フラグをそれぞれの内部レジスタに対
応して格納し得るように構成し、割込みが発生したとき
には、状態情報を格納している内部レジスタと割込んだ
プログラムで指定割込みが発生したときには、状態情報
とこれらに対応する更新フラグとをスタックに退避させ
た後、これらの内部レジスタの更新フラグをリセットす
るようにし、割込み処理が終了したときにはスタックポ
インタによってスタックのアドレスを順次指示し、更新
フラグがセットされている内部レジスタについてはスタ
ックから読出した情報および更新フラグによってこの内
部レジスタを復元し、更新フラグによつてこの内部レジ
スタについてはスタックからの読出しを行わずにスタッ
クポインタの値のみを更新するようにした。
した。
〔作 用〕
第1図は本発明の原理を示す図であって、マイクロプロ
セッサにはその状態を示す状態情報を格納する状態レジ
スタRS l l  Rs 2r−Rs +aおよび命
令、数値などのデータなどを格納するデータレジスタR
d l 、  Rd 2.   Rdhを含む内部レジ
スタを備えており、これらの内部レジスタRs、Rdに
はそれぞれ書換えが行われたことを示すたの更新フラグ
fが設けられている。
プロセッサが処理の実行中にこの処理より優先度の高い
処理からの割込み、例外処理あるいはサブルーチン・コ
ールなどの割込みを受けると、状態情報を格納する内部
レジスタRsl 、RS2゜Rs、およびこの割込んだ
プログラムで指定されたデータを格納する内部レジスタ
例えばRd、。
Rdイ、、、1が格納しているデータはスタックポイン
タSPで指示されたアドレスによって上記更新フラグと
ともにスタックBに退避される。なお、この第1図では
退避すべきレジスタには右上がりのハツチングをして示
しである。
この退避は例えば内部レジスタRS I 、  Rs 
2゜RS、 、  Rds、−−−Rd+、−1の順序
でスタックにブツシュダウンされるものであり、スタッ
クにはその上方から内部レジスタRa h、、、、、、
、、、、、、 Rd31  R5l11+”””””R
S21  Rs l の順序でそれぞれのデータがスト
ックされる。
この退避が終了するとすべての内部レジスタRs、Rd
の更新フラグは例えば“0″にリセットされる。
その後、割込んだプログラムが実行されるが、この処理
の際に書換えが行われた内部レジスタRs、Rdの更新
フラグは例えば1″にセットされ、書換えが行われなか
った内部レジスタのフラグは“0”に維持される。なお
、第1図における各内部レジスタの更新フラグは、この
割込んだプログラムの実行によって、状態情報を格納す
る内部レジスタRS2.R5m−+ およびデータを格
納する内部レジスタRd3が書換えられたものとして示
しである。
この割込んだプログラムの実行力4%了すると内部レジ
スタの復元が行われる。すなわち、スタックにはその上
方から内部レジスタRdh−,,Rd31  RS11
”””””RS21  RSl の順序でそれぞれのデ
ータがストックされているのでこれをスタックポインタ
の指示によるブツシュアップによって読出すが、この際
に復元すべき内部レジスタの更新フラグを参照してこの
更新フラグが例えばR83のように0″であれば割込ん
だプログラムの実行の際にも書換えが行われていないの
で復元する必要がなく、したがってスタックからの読出
しは行わずにスタックポインタの値だけを更新して次の
データRS2にアクセスするようにする。
第1図では割込んだプログラムの実行の際に書換えが行
われて更新フラグが”1”になっているために復元が行
われた内部レジスタに右下がりのハンチングを前記の右
上がりのハツチングに重ねて示してあり、内部レジスタ
RS、、Rs3.R3II + Rd n−1について
はこの右上がりのハツチングのみが施されていることに
よって復元がなされないことが示されている。
以上のように本発明では書換えが行われていない内部レ
ジスタへの復元を行わないため、マイクロプロセッサの
オーバーヘッドをなくすことができる。
〔実施例〕
第2図は本発明の実施例を示すものであり、第3図のフ
ローチャートにしたがってこの実施例の動作を説明する
。なお、この第3図のフローチャーFでは説明の便宜上
1つの割込みに対応する場合について示しである。
この実施例のマイクロプロセッサは第2図に示すように
演算・制御回路Cからの状態情報を格納する状態レジス
タSおよび処理に用いる命令や数値などのデータを格納
するデータレジスタRを含む内部レジスタ、これらの内
部レジスタS、Hに格納されている情報を退避するため
の退避スタックBの最も新しい格納アドレスを示すスタ
ックポインタSPとを備えており、上記のように内部レ
ジスタS、 Rに格納されている情報を退避するための
退避スタックBがこのマイクロプロセッサのデータバス
DBに接続されている。なお、上記の内部レジスタS、
RおよびスタックBは演算・制御装置Cによって書込・
続出が行われるものであることはいうまでもない。
なお、説明の便宜上上記スタックのアドレスは最新の格
納アドレス、すなわち第2図ではスタックBの最上位に
あるアドレスを1として下方に1ずつ増加するものとし
て、このアドレスを“B″の添字として用いており、括
弧内に退避した内部レジスタの符号を付記しである。
第3図において、処理要求によってステップ■の処理X
を実行し、ステップ■ではこの処理の終了を識別して終
了でなければステップ■で割込要求があるか否かを判断
し、割込みがなければステ/プ■に戻って処理Xを続け
るが、処理Zの割込要求があるとステップ■から内部レ
ジスタS、  Rの退避動作が開始される。
この退避動作はステップ■で状態レジスタSのデータを
スタックBをブツシュダウンしながら退避させ、続くス
テップ■で割込んだ処理Zのプログラムで指定されたA
の範囲のデータレジスタR2〜Rfi−1が格納してい
るデータをこれと同様にスタックBに退避させる。した
がって、このスタックBには、第2図に括弧内に示すよ
うに状態情報S1〜S、、が下位のアドレスBsff1
.イ〜Bs0、に、その上方のアドレスBd、、、〜B
1 にデータR5〜Rfi−1がそれぞれフラグfとと
もに格納されることになる。
次のステップ■てはこのように退避が完了したすべての
内部レジスタのフラグをリセットして例えば0°′とし
、次のステップ■で割込んだ処理Zの実行を開始する。
なお、この処理Zに使用されないデータレジスタ、第2
図図示の例ではRRnについては退避する必要はない。
この処理Zを実行している際に内部レジスタに書込みを
行った場合には当該内部レジスタの更新フラグを“1″
にセットするようにし、その実行状態をステップ■で判
断して処理が終了すると次のステップQ以降に移って内
部レジスタの復元を行う。
ステップ@ではスタックポインタSPの値をスタックB
の最新の格納アドレスである1にセットし、ステップ0
でこの値で指定されるスタックに格納されているデータ
に対応する内部レジスタ、図示の例ではRh−1の更新
フラグを参照し、ステップ○でこの更新フラグが“1″
であるか否かを判断する。
第2図図示のようにこの内部レジスタR9−1の更新フ
ラグがパ1”であればステップ○からステップ0に移り
、このステップ■でスタックのBからデータを読出して
このデータで上記内部レジスタRh−1を復元し、その
後にステップ0に移るが、もしこの内部レジスタの更新
フラグが“0”であれば処理Zの実行によってもこの内
部レジスタのデータは書換えられておらず復元を行う必
要がないのでステップ0から直接ステップ0に移ってス
タックポインタの値に1を加算する。
次のステップ0ではこのスタックポインタの値がデータ
の格納領域Bd内にあるか否かを識別するために最初に
退避されたデータが格納されているスタックのアドレス
d□イと比較し、スタックポインタの値pがこのd□8
の値より小さければデータの格納領域であるのでステッ
プ■に戻るが、スタックポインタの値pがd maイよ
り大きければデータレジスタR1〜R,の復元がすべて
終了して状態情報レジスタSの状態格納領域Bsに入る
ことになるので次のステップ[相]に移ってリターン命
令が到来するのを待つ。
このリターン命令が到来するとステップ0でスタックポ
インタの値を状態情報格納領域の最小のアドレスSm1
n とし、以下ステップ0〜■と同様の処理をステップ
■まで行ってスタックのアドレスB5m1h〜Bsma
+<に格納されていた状態情報によって状態情報レジス
タの中で処理Zで書換えられたレジスタを復元し、これ
力増塾了すると割込が行われる前の状態に戻るのでステ
ップのに戻って処理Xの実行を再開する。
〔発明の効果〕
本発明によれば、割込んだ処理の実行中に書換えられな
かった内部レジスタについての復元処理を行う必要がな
いので、この処理に伴うマイクロプロセッサのオーバー
ヘッドをなくすることができるという格別の効果が達成
される。
【図面の簡単な説明】
第1図は本発明の原理を示すブロック図、第2図は本発
明の実施例を示すブロック図、第3図は第2図の実施例
の動作を説明するためのフローチャート、 第4図は従来の退避・復元方式のフローチャートである

Claims (1)

  1. 【特許請求の範囲】 状態情報およびデータなどの情報をそれぞれ格納する複
    数の内部レジスタ(Rs_l、・・・・・・・・・・R
    s_m、Rd_1、・・・・・・・・・・Rd_n)を
    備えるとともに、割込みが発生したときにこれら内部レ
    ジスタが格納している情報をスタック(B)のスタック
    ポインタ(SP)によって指示されたアドレスに退避す
    るようにしたマイクロプロセッサにおいて、 上記内部レジスタ(Rs、Rd)のそれぞれに書換えが
    行われたことを示す更新フラグ(f)を設けるとともに
    上記スタック(B)もこの更新フラグをそれぞれの内部
    レジスタに対応して格納し得るように構成し、 割込みが発生したときには、状態情報を格納している内
    部レジスタと割込んだプログラムで指定された内部レジ
    スタとが格納している情報とこれらに対応する更新フラ
    グとをスタックに退避させた後、これらの内部レジスタ
    の更新フラグをリセットするようにし、 割込み処理が終了したときにはスタックポインタによっ
    てスタックのアドレスを順次指示し、更新フラグがセッ
    トされている内部レジスタについてはスタックから読出
    した情報および更新フラグによってこの内部レジスタを
    復元し、更新フラグがセットされていない内部レジスタ
    についてはスタックからの読出しを行わずにスタックポ
    インタの値のみを更新するようにしたことを特徴とする
    退避・復元方式。
JP19433089A 1989-07-28 1989-07-28 マイクロプロセッサにおける退避・復元方式 Pending JPH0359727A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP19433089A JPH0359727A (ja) 1989-07-28 1989-07-28 マイクロプロセッサにおける退避・復元方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP19433089A JPH0359727A (ja) 1989-07-28 1989-07-28 マイクロプロセッサにおける退避・復元方式

Publications (1)

Publication Number Publication Date
JPH0359727A true JPH0359727A (ja) 1991-03-14

Family

ID=16322798

Family Applications (1)

Application Number Title Priority Date Filing Date
JP19433089A Pending JPH0359727A (ja) 1989-07-28 1989-07-28 マイクロプロセッサにおける退避・復元方式

Country Status (1)

Country Link
JP (1) JPH0359727A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03242313A (ja) * 1990-02-19 1991-10-29 Kawasaki Steel Corp 一酸化炭素の精製方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03242313A (ja) * 1990-02-19 1991-10-29 Kawasaki Steel Corp 一酸化炭素の精製方法

Similar Documents

Publication Publication Date Title
JPH09212371A (ja) レジスタ退避及び復元システム
JP3970609B2 (ja) プロセッサシステム
JPS62226234A (ja) スタツクポインタ制御回路
JPH0359727A (ja) マイクロプロセッサにおける退避・復元方式
JPH04373026A (ja) プログラム中断方法
JPS61184643A (ja) 仮想計算機の起動制御方式
JPH01217635A (ja) レジスタ退避方式
JPS59218569A (ja) マイクロ・コンピユ−タ
JP2573391B2 (ja) プログラマブルコントローラ
JPH03182945A (ja) 主記憶内データ転送方式
JP2663600B2 (ja) 制御表再配置処理方式
JPS626329A (ja) デ−タ転送回路
JPS63155338A (ja) プログラム実行履歴記録制御方式
JPS63314647A (ja) タスク走行環境退避復元方式
JPH0262633A (ja) プログラム間通知方式
JPS6120139A (ja) 割込み制御方式
JPH0486923A (ja) タスク管理制御方式
JPH05298119A (ja) マイクロプロセッサのコンテキストスイッチ機構
JPH04127333A (ja) アプリケーションタスクの障害検出方式
JPH01175034A (ja) レジスタ群・ロード高速化方式
JPH0486919A (ja) マイクロプログラム制御装置
JPH031252A (ja) ページフォルト処理方式
JPS63153650A (ja) メモリダンプ方式
JPH04264625A (ja) レジスタ管理方式
JPS617940A (ja) マイクロプログラム制御装置