JPH01161442A - レジスタ退避・回復方式 - Google Patents

レジスタ退避・回復方式

Info

Publication number
JPH01161442A
JPH01161442A JP62320851A JP32085187A JPH01161442A JP H01161442 A JPH01161442 A JP H01161442A JP 62320851 A JP62320851 A JP 62320851A JP 32085187 A JP32085187 A JP 32085187A JP H01161442 A JPH01161442 A JP H01161442A
Authority
JP
Japan
Prior art keywords
register
registers
saved
saving
procedure
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
JP62320851A
Other languages
English (en)
Inventor
Ichiro Kushima
久島 伊知郎
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 Ltd
Original Assignee
Hitachi 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 filed Critical Hitachi Ltd
Priority to JP62320851A priority Critical patent/JPH01161442A/ja
Publication of JPH01161442A publication Critical patent/JPH01161442A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、レジスタ退避・回復方式に関し、複数の汎用
レジスタを持つ情報処理装置において、手続呼出しの際
の汎用レジスタ退避・回復を効率良く行う方式に関する
〔従来の技術〕
従来、手続き呼出しの際に行われる汎用レジスタの退避
・回復は、次の2つの方式があった。(D手続きを呼び
出す側が、呼出しの前に、値を保存しておきたいレジス
タを主記憶に退避し、呼出し後に回復する、■呼び出さ
れた手続きの側が、手続の入口で、自分の側で使うレジ
スタを主記憶に退避し、帰る前に回復する。前者を呼出
し側退避方式、後者を被呼出し側退避方式と呼ぶ。また
両者の折衷方式として、レジスタ集合を2つに分割し、
一方を呼出し側退避方式、他方を被呼出し側退避方式で
管理するという方法もあった。
このようなレジスタの退避・回復を効率良く行うため、
計算機の側では、指定されたレジスタだけを主記憶へ移
動するような一括スドア・ロード命令を用意していた。
これは、退避したいレジスタを表すビット列(退避すべ
きレジスタ番号に対応するビットが立っている)をマス
クとして命令語内に含み、そのマスクが指定するレジス
タのみを主記憶へ移動する命令である。これについては
、モトローラ・セミコンダクターズ・ジャパン二MC6
8000,16ビツト マイクロプロセッサユーザーズ
マニュア;i、+(昭和56年)第157頁〜第159
頁に記載されている。
〔発明が解決しようとする問題点〕
従来のレジスタ退避・回復方式には、次のような問題点
があった。それは、実際には退避する必要のないレジス
タをも、退避している場合が往々にして起こることであ
る。
こ九を、手続きAが手続きBを呼び出す際のレジスタ退
避を例にとって説明する。いま、Aの方は、Bの呼び出
しの際に、レジスタ(0)からレジスタ(7)までの内
容を保存しておくことを要求し、Bの方は、その処理内
でレジスタ(4)からレジスタ(10)までを使用して
いるとする。この時、退避されるレジスタは、呼出し側
退避方式ならばレジスタ(0)からレジスタ(7)まで
の8個、被呼出し側退避方式ならばレジスタ(4)から
レジスタ(10)までの7個である。しかしながら、実
際に退避すべきレジスタは両者の交わり、すなわちレジ
スタ(4)からレジスタ(7)までの4個でよい。
このような無駄なレジスタ退避をなくすためには、呼出
し側と被呼出し側の双方で退避が必要となるレジスタ集
合だけを選択して退避しなければならない。ところが、
従来のように、命令語中に退避するレジスタマスクを含
むような、コード」二で1静的に退避するレジスタを指
定する方法では、これを行うのは非常に困難であった。
例えば被呼出し側退避方式でこれを行うことは不可能で
ある。というのは、その手続きが、複数の手続きから呼
び出されることがあるからで、この時は、退避すべきレ
ジスタ集合を被呼出し側で一意に決めることができなく
なる。
一方呼出し側退避方式の場合には、これを行うのは可能
である。ただし、呼出し側と被呼出し側双方のオブジェ
クトコードがわからないと、退避すべきレジスタ集合が
決まらないので、コンパイル処理が複雑になる。また、
2つの手続きが別々にコンパイルされる場合を考えると
、実際上はリンク時にこれを解決しなければならず、事
実上不可能に近い。
本発明の目的は、このような従来の問題を解決し、コン
パイラやリンケージエディタの負担を重くすることなく
、レジスタの退避・回復処理を効率的に行え、処理時間
の′fi、縮化を図れるレジスタ退避・回復方式を提供
することにある。
〔問題点を解決するための手段〕
上記問題点を解決するため、本発明のレジスタ回復・退
避方式は、複数の汎用レジスタと、汎用レジスタの内容
を退避するための記憶装置とを有する情報処理装駈にお
いて、前記情報処理装置」二で実行されるプログラムの
、ある手続きから別の手続きを呼び出す際に、呼出し側
が、呼出しの前に、呼出し側の手続きで値の保存を必要
とするレジスタの集合を表す情報を指定し、呼出し側か
ら呼出され側に制御を移行し、呼び出された側では。
指定された前記情報と、自分の側で使用するレジスタの
集合を表す情報とから、その両者に含まれるレジスタの
集合をプログラム実行時に求め、該求められだレジスタ
集合のみを前記記憶装置に退避し、また回復時には、退
避したものと同じレジスタ集合を回復することに特徴が
ある。
また、前記値の保存を必要とするレジスタの集合を示す
情報を指定する手段として1作業用レジスタ(マスクレ
ジスタ)を設け、呼び出された側では、呼び出された側
で使用するレジスタの集合を示す情報と、前記作業用レ
ジスタとから、AND回路を介してその両者に含まれる
レジスタ集合を求めることに特徴がある。さらに、前記
退避したレジスタの集合を示す情報を作業用レジスタに
保存しておき、レジスタ回復の際には前記作業用レジス
タの内容から、回復すべきレジスタの内容を決定するこ
とにも特徴がある。
〔作用〕
本発明においては、手続きを呼出す側は、呼出し命令(
ジャンプサブルーチン命令)を行う前に(または同時に
)、呼出し前後で値を保存しておきたいレジスタ集合を
示す値、例えばビットパターンを、マスクレジスタに設
定する。呼び出された側は、自分の側で使用するレジス
タ集合を示す値と、マスクレジスタの値の間に演算を施
すことによって両レジスタ集合の交わりを求め、該当す
るレジスタのみを退避するようにする。
〔実施例〕
以下、本発明の一実施例を、図面により詳細に説明する
第2図は1本発明に係る計算機の全体構成を示すブロッ
ク図である。
第2図において、CPU20は、命令レジスタや命令解
説装置、マイクロプログラムメモリ等よりなる命令制御
ユニット21と、ALUやオペランドバッファ等よりな
る演算ユニット22と5汎用レジスタフアイル6とから
構成される。また、CI) U 20は、バスを通じて
主記憶袋ロ5.入出力装駈23と接続されている。
本発明では、退避するレジスタを動的に求めるために、
(a)]″、続き呼出し時、(b)呼び出された手続き
内でのレジスタ退避処理時に、従来技術と異なる特別の
処理を行う。第3図(a)、 (b)は、それぞれ処理
を機械語1命令で行うようにしたマイコンの命令語のフ
ォーマットを示した図、第4図はそれぞれの命令の動作
を示した図である。
第3図(a)は手続き呼出し命令のフォーマットを示す
。命令語は、OPコード101.飛び先アドレス102
.レジスタリス1−マスク103から成る。レジスタリ
スl−マスク103は、レジスタファイル6の中で、呼
び側でその内容を保存しておきたいレジスタ集合を示す
ピッ!・パターンである。すなわち、保存しておきたい
レジスタ番号に対応するビット位置の値がII I I
Iそれ以外はII OIIとなっている。
第3図(b)は呼び出された手続きが実行するレジスタ
退避命令のフォーマツ1〜を示す。命令語はopコード
301.退避先アドレス302.レジスタリストマスク
303からなる。レジスタリストマスク303は、呼び
出された手続き内で使用するレジスタ集合を示すビット
パターンである。
また第5図は上記命令を実行するC )−’ Uの構成
の一例を示した図であり、第2図のCPU20の命令制
御ユニット21と汎用レジスタファイル6およびその他
のレジスタを示している。第5図において、2は実際に
退避すべきレジスタを求めるために設けられたマスクレ
ジスタ、7はAND回路である。6は独立に操作・転送
が可能な汎用レジスタファイル、9は命令語を一時的に
貯えておくための命令レジスタ、4は主記憶装置5内で
アクセスする番地を貯えておくためのアドレスレジスタ
である。8はレジスタの内容をインクリメント(+1)
する加算回路、11は次に実行すべき命令番地を保持す
るプログラムカウンタ、12はスタックの先頭番地を指
すスタックポインタである。
第1図は、本発明をマイクロプログラム制御の計算機に
適用した場合の処理手順の一実施例を示すフローチャー
トである。以下、第1図のフローチャー1・に従って第
4図に示された各命令の動作を説明する。
最初に、(a)に示す手続き呼出し命令について説明す
る。
まず、手続き呼出し命令では、マイクロプログラム制御
装置10内に配設された命令デコーダにより、命令レジ
スタ9内の命令語が手続呼出し命令であると認識される
(ステップ501)。すると、マイクロプログラム制御
装置10から出される各種制御信号により、命令レジス
タ9内の命令語のうちレジスタリストマスク103の部
分が、バス13を通してマスクレジスタ2に転送される
(ステップ502)。次いでプログラムカウンタ11の
値を、主記憶装置上に取られたスタックヘプツシュしく
ステップ503)、スタックポインタ12をインクリメ
ントする(ステップ504)。最後に命令レジスタ9内
の命令語のうち、飛び先アドレス102をプログラムカ
ウンタ11に転送する(ステップ505)。なお、ステ
ップ501およびステップ503から505は通常の計
算機で行われている動作であるので、第4図では本発明
の特徴を表すステップ502の動作のみを示している。
ここでステップ502は、ステップ503から505と
は独立の動作であるので、これらの2つは並列に行うこ
ともできる。
次に、第1図(b)に示すレジスタ退避命令の場合を説
明する。
まず、命令デコーダにより、命令レジスタ9内の命令語
がレジスタ退避命令であると認識される(ステップ60
1)。すると、各種制御信号により、命令レジスタ9内
の命令語のうち、退避先アドレス302の部分が、バス
13を通じてアドレスレジスタ4に転送される(ステッ
プ602)。次いで命令語内のレジスタリス1〜マスク
303の部分の値と、マスクレジスタ2の値のビットご
とのANDが、AND回路7により計算され、新たにマ
スクレジスタ2に設定される(ステップ603)。なお
、ステップ602と603は並列に動作可能である。
次にマスクレジスタ2の値を最上位ビット(MSB)か
ら1つずつ調べていき(ステップ6o4)、その値がL
L I 11であればそのビット位置に対応する、σを
用レジスタファイル6中のレジスタの内容を主記憶装置
5のアドレスレジスタ4の指す番地へ転送しくステップ
605)、アドレスレジスタ4の値を、加算回路8を用
いてインクリメントする(ステップ606)。ビットが
lI OI+であれば何も行わない。次に、今調べたピ
ッ1−が最下位ビット(LSB)でなければ(ステップ
607)、次のピッ1〜に移り(ステップ608)、ス
テップGO4から繰り返す。最下位ビットであれば、マ
スクレジスタ2の内容を主記憶装置内へ書き込む(ステ
ップ609)。 ステップ608は1手続き呼出しのネ
ストにより、マスクレジスタ自身の内容が更新された時
にも、その値を復元できるようにするために行っている
手続き呼出しを行う際には、呼出し側で、(a)の手続
き呼出し命令を実行し、呼び出された側で最初に(b)
のレジスタ退避命令を実行するようにすれば、呼出し側
で保存を必要とするレジスタ集合と、被呼出し側で実際
に使用するレジスタ集合の交わり集合のみが主記憶に退
避されることになる。
レジスタの回復は、呼び出された側で行われるが、それ
はレジスタ退避と逆の手順によって達成される。すなわ
ち、退避先アドレス(これは命令語中に含まれる)によ
って指示される主記憶内の番地から、レジスタ退避命令
の最後に退避されていたマスクレジスタの値をまず取り
出してそれをマスクレジスタにセットし、その値に従っ
て退避時と同様に、主記憶装置内に退避されていたレジ
スタ値を該当する汎用レジスタに転送するようにすれば
よい。
このように、本実施例においては、マスクレジスタの操
作を1通常の手続き呼出しやレジスタ退避命令の中に組
み込んで1命令で行わせているので、本発明のレジスタ
退避方式を採用した際の時間的なオーバヘッドを小さく
できるという利点がある。
また1手続き呼出し命令語内のレジスタリストマスク1
03の値を全ビット111 +7とすれば、従来の被呼
出し側退避方式による方法と同様の効果が得られ、また
、レジスタ退避命令語内のレジスタリス1〜マスク30
3の値を全ピッ1〜“ソ′とすれば、従来の呼出し側退
避方式による方法と同様の効果が得られるという点で、
従来のレジスタ退避方式をサポートすることもできる。
先程も述べたように、本実施例では、1命令で、手続き
呼出し時のマスクレジスタの設定や、レジスタ退避時の
AND計算とマスクレジスタの更新を行っていたが、本
発明はこれに限定されるものではなく、それぞれを別々
の命令で行わせてもよい。例えば、第3図のような命令
語中にレジスタリストマスクを含む形ではなく、レジス
タリストマスクの値を、ある汎用レジスタに格納してお
き、(これを別の1つの命令で行う)1手続き呼出しで
はそのレジスタをマスクレジスタとして指定する形で、
情報の受は渡しを行うこともできる。呼び出された側で
はそのレジスタをマスクレジスタとして扱い、そのレジ
スタとレジスタリストマスク値とのANDを計算しくこ
れを1命令で行う)、ΔNL)の結果値が入っているレ
ジスタをマスクレジスタとして、レジスタ退避命令を実
行する。という形で実現することも可能である。
上記実施例の応用例として、手続き呼出しを含む原始プ
ログラムをコンパイルする際に、手続きの呼出し側で内
容と保存を必要とするレジスタの集合と、呼び出された
側で使用するレジスタの集合とを、コンパイラがコンパ
イル時に求めて、目的プログラム中に指定することによ
り、」−記実施例のようなレジスタ退避・回復を行うコ
ートを生成し、この生成されたコードにより実行させて
もよい。
〔発明の効果〕
以」二説明したように、本発明によれば、手続き呼出し
に伴うレジスタ退避・回復において、実際に退避すべき
必要のあるレジスタのみを選択して退避することができ
るので、退避するレジスタの数を減らすことができる。
多くの場合、レジスタの一括移動命令にかかる時間は、
移動するレジスタの数に比例するので、退避にかかる時
間を減少でき、処理時間をう;σ縮できる。
【図面の簡単な説明】
第1図は本発明のマイクロプログラムによる処理手順の
一実施例を示すフローチャー1−1第2図は本発明に係
る計算機の全体構成を示すブロック図、第3図は本発明
の処理を機械語1命令で行った実施例の命令語フォーマ
ツ1−を示す図、第4図はその命令の動作を示す図、第
5図はその命令を実現するC P 1.Jの構成図であ
る。 2:マスクレジスタ、5:主記憶装置、6:汎用レジス
タファイル、7:AND回路、10:マイクロプログラ
!1制御装置。 第   1   図 (aン M   l   図 第  2  図 第  3  図 第   4   図 第   4   図

Claims (1)

  1. 【特許請求の範囲】 1、複数の汎用レジスタと、汎用レジスタの内容を退避
    するための記憶装置とを有する情報処理装置において、
    前記情報処理装置上で実行されるプログラムの、ある手
    続きから別の手続きを呼び出す際に、呼出し側が、呼出
    しの前に、呼出し側の手続きで値の保存を必要とするレ
    ジスタの集合を示す情報を指定し、呼出し側から呼出さ
    れ側に制御を移行し、呼び出された側では、指定された
    前記情報と、自分の側で使用するレジスタの集合を示す
    情報とから、その両者に含まれるレジスタの集合をプロ
    グラム実行時に求め、該求められたレジスタ集合のみを
    前記記憶装置に退避し、また回復時には、退避したもの
    と同じレジスタ集合を回復することを特徴とするレジス
    タ退避・回復方式。 2、前記値の保存を必要とするレジスタの集合を示す情
    報を指定する手段として、作業用レジスタを設け、呼び
    出された側では、呼び出された側で使用するレジスタの
    集合を示す情報と、前記作業用レジスタとから、AND
    回路を介してその両者に含まれるレジスタ集合を求める
    ことを特徴とする特許請求の範囲第1項記載のレジスタ
    退避・回復方式。 3、前記退避したレジスタの集合を示す情報を作業用レ
    ジスタに保存しておき、レジスタ回復の際には前記作業
    用レジスタの内容から、回復すべきレジスタの内容を決
    定することを特徴とする特許請求の範囲第1項記載のレ
    ジスタ退避・回復方式。 4、前記手続き呼出しの際に、値の保存を必要とするレ
    ジスタの集合を示す情報を作業用レジスタに指定する処
    理と、手続き呼出しの際の制御の移行の処理を並列して
    行うことを特徴とする特許請求の範囲第2項記載のレジ
    スタ退避・回復方式。 5、前記呼び出された側で使用するレジスタの集合を示
    す情報と、前記作業用レジスタの値から、実際に退避す
    べきレジスタ集合を求める処理と、その処理により求め
    られたレジスタ集合を退避する処理を並列して行うこと
    を特徴とする特許請求の範囲第2項記載のレジスタ退避
    ・回復方式。
JP62320851A 1987-12-17 1987-12-17 レジスタ退避・回復方式 Pending JPH01161442A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62320851A JPH01161442A (ja) 1987-12-17 1987-12-17 レジスタ退避・回復方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62320851A JPH01161442A (ja) 1987-12-17 1987-12-17 レジスタ退避・回復方式

Publications (1)

Publication Number Publication Date
JPH01161442A true JPH01161442A (ja) 1989-06-26

Family

ID=18125954

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62320851A Pending JPH01161442A (ja) 1987-12-17 1987-12-17 レジスタ退避・回復方式

Country Status (1)

Country Link
JP (1) JPH01161442A (ja)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07297388A (ja) * 1994-04-15 1995-11-10 Internatl Business Mach Corp <Ibm> 半導体デバイス
JP2019022562A (ja) * 2017-07-23 2019-02-14 株式会社三洋物産 遊技機
JP2019022570A (ja) * 2017-07-23 2019-02-14 株式会社三洋物産 遊技機
JP2019022567A (ja) * 2017-07-23 2019-02-14 株式会社三洋物産 遊技機
JP2019022564A (ja) * 2017-07-23 2019-02-14 株式会社三洋物産 遊技機
JP2019022566A (ja) * 2017-07-23 2019-02-14 株式会社三洋物産 遊技機
JP2019022565A (ja) * 2017-07-23 2019-02-14 株式会社三洋物産 遊技機
JP2019022561A (ja) * 2017-07-23 2019-02-14 株式会社三洋物産 遊技機
JP2019022549A (ja) * 2017-07-23 2019-02-14 株式会社三洋物産 遊技機
JP2019022554A (ja) * 2017-07-23 2019-02-14 株式会社三洋物産 遊技機
JP2019022563A (ja) * 2017-07-23 2019-02-14 株式会社三洋物産 遊技機
JP2019022548A (ja) * 2017-07-23 2019-02-14 株式会社三洋物産 遊技機
JP2019022568A (ja) * 2017-07-23 2019-02-14 株式会社三洋物産 遊技機
JP2019022569A (ja) * 2017-07-23 2019-02-14 株式会社三洋物産 遊技機
JP2020022900A (ja) * 2019-11-22 2020-02-13 株式会社三洋物産 遊技機

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07297388A (ja) * 1994-04-15 1995-11-10 Internatl Business Mach Corp <Ibm> 半導体デバイス
JP2019022562A (ja) * 2017-07-23 2019-02-14 株式会社三洋物産 遊技機
JP2019022570A (ja) * 2017-07-23 2019-02-14 株式会社三洋物産 遊技機
JP2019022567A (ja) * 2017-07-23 2019-02-14 株式会社三洋物産 遊技機
JP2019022564A (ja) * 2017-07-23 2019-02-14 株式会社三洋物産 遊技機
JP2019022566A (ja) * 2017-07-23 2019-02-14 株式会社三洋物産 遊技機
JP2019022565A (ja) * 2017-07-23 2019-02-14 株式会社三洋物産 遊技機
JP2019022561A (ja) * 2017-07-23 2019-02-14 株式会社三洋物産 遊技機
JP2019022549A (ja) * 2017-07-23 2019-02-14 株式会社三洋物産 遊技機
JP2019022554A (ja) * 2017-07-23 2019-02-14 株式会社三洋物産 遊技機
JP2019022563A (ja) * 2017-07-23 2019-02-14 株式会社三洋物産 遊技機
JP2019022548A (ja) * 2017-07-23 2019-02-14 株式会社三洋物産 遊技機
JP2019022568A (ja) * 2017-07-23 2019-02-14 株式会社三洋物産 遊技機
JP2019022569A (ja) * 2017-07-23 2019-02-14 株式会社三洋物産 遊技機
JP2020022900A (ja) * 2019-11-22 2020-02-13 株式会社三洋物産 遊技機

Similar Documents

Publication Publication Date Title
US4268903A (en) Stack control system and method for data processor
JPH01161442A (ja) レジスタ退避・回復方式
JPH06332792A (ja) データ処理装置及びそのデータ読み出し制御回路,データ書き込み制御回路
JP3619939B2 (ja) 中央処理装置
JPH04296937A (ja) ハードウエアデータストリング演算コントローラ及び主記憶ストリング動作を行わせる方法
EP0471191B1 (en) Data processor capable of simultaneous execution of two instructions
JPH04260930A (ja) データ処理装置
JP2003044273A (ja) データ処理装置及びデータ処理方法
JPS645330B2 (ja)
JPH04260927A (ja) データ処理装置
US5077659A (en) Data processor employing the same microprograms for data having different bit lengths
JPS6212529B2 (ja)
JPH034936B2 (ja)
JPH04260929A (ja) データ処理装置
JPH09152971A (ja) データ処理装置
EP0180077B1 (en) A data processing machine for compiling computer programs
JPH04260926A (ja) ビット検索回路及びそれを備えたデータ処理装置
US20050216708A1 (en) Processor for performing context switching, a method for performing context switching, a computer program for perform context switching
JPS62150435A (ja) デ−タ処理方式
JP2000112754A (ja) データ処理装置
JPH04362738A (ja) 変数管理方法
JPS6220032A (ja) 情報処理装置
JP2583614B2 (ja) ベクトル演算装置
JPS6149695B2 (ja)
JPH01236327A (ja) 割込みマスク制御方法