JPH0353328A - レジスタ退避回復方法ならびに処理装置 - Google Patents

レジスタ退避回復方法ならびに処理装置

Info

Publication number
JPH0353328A
JPH0353328A JP1189976A JP18997689A JPH0353328A JP H0353328 A JPH0353328 A JP H0353328A JP 1189976 A JP1189976 A JP 1189976A JP 18997689 A JP18997689 A JP 18997689A JP H0353328 A JPH0353328 A JP H0353328A
Authority
JP
Japan
Prior art keywords
register
unit
save
instruction
area
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
JP1189976A
Other languages
English (en)
Inventor
Shinobu Koizumi
小泉 忍
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 JP1189976A priority Critical patent/JPH0353328A/ja
Priority to US07/551,562 priority patent/US5414864A/en
Publication of JPH0353328A publication Critical patent/JPH0353328A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 大容量のレジスタファイルを有する計算機の中央処理装
置において、レジスタ内容を主記憶装置へ退避回復する
回数を低減させたレジスタ退避回復方法に関する. 〔従来技術〕 プロセッサ内部において、レジスタはメモリに比べてア
クセスコストが低いため、レジスタを有効利用すること
が,プログラムの処理速度を向上させる上での鍵となる
一方、レジスタ数は有限であること及び一つのプログラ
ムは、通常,レジスタ割当て処理が別個に行なわれる複
数の副プログラムから構成されていることから,プログ
ラムの実行中に,既に使用中のレジスタを、別の目的で
使用する必要が生じ,レジスタ内容を一時的に主記憶装
置上に退避し、その後回復することが必要となる。この
レジスタの主記憶装置上への退避回復はレジスタ利用上
のオーバヘッドであるため、その回数を低減させること
がレジスタを有効利用する上での重点課題の一つとなる
. この種の、レジスタを副プログラム間で有効に利用する
方法として、呼び出し時にレジスタ番号を動的に割り当
てる方法(例えば、米国特許第4,777,588号)
,ローカルレジスタを呼び出し時にスタックフレームに
マツピングする方法(例えば、特開昭62−28612
8号公報)などがある.そして、レジスタの退避回復回
数を最少にするには次のような条件が要求される.すな
わち、(1)使用中のレジスタは、実際にそのレジスタ
を他の目的で使用する必要が生じた時にのみ退避する. (2)退避した値は、再度その値が必要になった時点で
回復する. 〔発明が解決しようとする課題〕 しかしながら、現在利用されている一般的な計算機、お
よびプログラムの実行方式では、ある副プログラムで使
用中のレジスタを、別の副プログラムで使用する場合、
レジスタの利用状況およびレジスタの退避領域を、プロ
グラムの実行中に把握することができないために前記し
た条件(1),(2)を満足させることができず、従っ
てレジスタの退避回復回数を低減させることができない
という問題があった。
本発明は、前記問題点を解決するためになされたもので
ある. 本発明の目的は、遂次的に実行される副プログラム呼び
出し/復帰のシーケンスの中にあって、使用中のレジス
タの内容を、別の目的で使用する時点で主記憶装置上に
退避し,かつ、退避内容を再度必要となった時点で回復
する、退避回復回・数を低減せしめたレジスタ退避/回
復方法およびそのための処理装置を提供することにある
〔課題を解決するための手段〕
前記目的を達成するために、 複数のレジスタユニットを有する中央処理装置と主記憶
装置との間でレジスタの退避回復を行う方法において, 指定されたレジスタユニットの使用状況フラグを検査し
、当該レジスタユニットが使用中ならば当該レジスタユ
ニットの退避領域ポインタが指示する主記憶装置上の領
域へ、当該レジスタユニットを構成する使用中の各レジ
スタの値を退避する,レジスタ退避命令を設け、 指定されたレジスタユニットの使用状況フラグを設定し
,主記憶装置上の退避すべき領域を指示する退避領域ポ
インタを設定するレジスタ使用開始命令を設けている。
また、指定されたレジスタユニットの使用状況フラグを
検査し、当該レジスタユニットが退避済であれば、指定
された主記憶装置上の領域から、当該レジスタユニット
へ値を回復するレジスタ回復命令が設けられ、さらに、
指定されたレジスタユニットの使用状況フラグを解除す
るレジスタ使用終了命令が設けられている. そして、レジスタ退避命令とレジスタ使用開始命令とを
一命令で構成している。
前記レジスタユニットは,当該レジスタユニツトの使用
状況である使用・未使用を表示するための使用状況フラ
グと、当該レジスタユニットを構成している各レジスタ
の値を主記憶装置上の所定の領域に退避するための領域
を指示する退避領域ポインタと、前記値を保持する複数
の汎用レジスタとからなり、前記構成のレジスタユニッ
トを複数個備えたレジスタファイルを中央処理装置内に
設けている。
フレームポインタとスタックポインタで指示されるスタ
ックフレーム中に退避領域が設定され、プログラムの処
理開始時に所定の大きさのスタックフレームが確保され
,処理終了時に使用済のスタックフレームが開放される
〔作 用〕
前述した手段によれば、レジスタの退避領域はレジスタ
を使用する副プログラムが指定し、あるレジスタXを使
用する副プログラムは、(a)副プログラムの入口点か
ら、レジスタXの使用を開始する前に、レジスタ退避命
令を発行する。
(b)レジスタXの使用開始時点で,レジスタ使用開始
命令を発行する。
(c)レジスタXの使用終了時点で、レジスタ使用終了
命令を発行する。
(d)レジスタXの使用開始から使用終了の間に同レジ
スタXを別途使用する可能性のある副プログラム呼び出
しがある場合、当該プログラム呼び出し復帰後、再度レ
ジスタを使用する時点でレジスタ回復命令を発行する。
レジスタXの使用を再開するまでにレジスタXを使用す
る副プログラムの呼び出しが複数ある場合、レジスタ回
復命令の発行はそれら呼び出しの最後に行う。
レジスタXを使用する副プログラムにおいてレジスタX
を使用しない副プログラムを呼び出した場合、呼び出さ
れた側では、レジスタXの退避は発生せず、レジスタX
の使用終了命令も実行されないため、呼び出し側に復帰
後レジスタXの回復命令を実行してもレジスタXの回復
は生じない。
また、レジスタXを使用する副プログラムにおいて、同
レジスタXを使用する別の副プログラムを呼び出す場合
、呼び出された側で呼び出し時のレジスタXの退避が発
生し、さらにレジスタXの使用終了命令が実行され、呼
び出し側に復帰後、レジスタXの回復命令によりレジス
タXが回復される。
さらに、レジスタXを使用する副プログラムにおいて、
同レジスタを使用する他の2つの副プログラムを連続し
て呼び出す場合、最初に呼び出された側でレジスタχの
退避が発生するが、次に呼び出された側では、レジスタ
Xが使用終了であるためレジスタXの退避は発生しない
〔発明の実施例〕
以下.本発明の一実施例を図面を用いて具体的に説明す
る。
なお、実施例を説明するための全回において、同一機能
を有するものは同一符号を付け,その繰り返しの説明は
省略する。
第2図は、本発明の計算機システムのブロックダイヤグ
ラムを示す図である。計算機システムは中央処理装置(
CPU)1、主記憶装置2、およびそれらを接続するア
ドレスバス3とデータバス4から構成される。CPUI
は、命令デコーダ(ID)5.マイクロ制御ユニット(
MU)6、実行ユニット(EU)7、バスコントローラ
8、およびそれらを接続する2本の内部データバスS,
マイクロ制御バス10、マイクロ命令バス11から構威
される. 命令デコーダ(ID)5はCPU1に対して与えられた
命令を復号し、その命令の実行を制御する.すなわち,
命令ポインタ(IP)12が示す位置の主記憶装置2の
内容(命令コード)を命令バッファ(IB)13に取込
み、命令語のオペランドを計算して,オペランドレジス
タ(ORO・・・14,およびORI・・・15)に値
を設定する。さらに、命令コードに応じたマイクロプロ
グラムシーケンスの開始を、マイクロ制御バス10を介
してMUGに指示する.ID5には上記の制御を行なう
ロジックを含むデコーダ制御部16を含む.マイクロ制
御ユニット(MU)6は、マイクロプログラムにおける
分岐,反復、終了等のマイクロ命令の実行順序の制御を
行なう。MU6には、CPUI命令に対応したマイクロ
プログラムシーケンスを保持するマイクロプログラムR
OM17、および制御ロジックであるマイクロシーケン
サ18を含む。また,実行すべきマイクロ命令は、マイ
クロ命令バス1lを介してEU7に指示される。
実行ユニット(EU)7は、MU6が指示するマイクロ
命令を実行する。EU7には、ALU19、シフタ20
,マイクロ命令が使用するスクラッチレジスタ(SRO
・・・21,SRI・・・22),主記憶装置上のスタ
ック領域を管理するフレームポインタ(FP)23、お
よびスタックポインタ(SP)24、CPU命令で直接
参照できるレジスタファイル(RF)25、およびそれ
らを制御する実行制御ロジック26を含む,EU7とI
D5の各レジスタは二本の内部データバス9によりデー
タ交換が可能である。また、各レジスタは.内部データ
バス9およびバスコントローラ8を介して、主記憶装置
2とデータ交換が可能である。
第3図は,本発明のレジスタファイル(RF)25の構
成を示す. レジスタファイルは、各々がn個のレジスタからなるm
個のレジスタユニット27で構成される.ここで、レジ
スタのビット幅をkとしたとき,2 < n  かつ 
n ( k である.また,各ユニットのレジスタは連続したレジス
タ番号を持ち、ユニット番号をiとした時そのユニット
に含まれるレジスタは, iXn〜(i+1)Xn−1 の番号を持つレジスタである. 各々のレジスタユニットを構成するn本のレジスタのう
ち,1本は当該レジスタユニットの使用状況を示す使用
状況フラグ28、また他の1本は,主記憶装置上のレジ
スタユニット退避領域の先頭アドレス位置を保持する退
避領域ポインタ29である.本発明の実施例では、使用
状況フラグ28を各ユニットの先頭のレジスタ(ユニッ
ト番号をiとした時,レジスタ番号iXnのレジスタ)
、退避領域ポインタ29を各ユニットの2番目のレジス
タ(同、レジスタ番号i x n + 1 )とする.
第1図は、本発明のレジスタユニットのIMを示す図で
ある. 各ユニットの使用状況フラグ28は,ユニット全体の使
用状況を示すフラグ31とユニット内の個々のレジスタ
の使用状況を示すフラグ32. 33とからなる.ここ
では、使用状況フラグ28の先頭ビット(ビット位置0
)がレジスタユニット全体の使用状況を示し(′1′な
ら使用中)、第2ビット以後は、使用状況フラグ28、
退避領域ポインタ29以外の汎用レジスタ30が使用中
であるかを示し、第jビットがレジスタ番号iXn+j
 (ただしiはユニット番号)に対するフラグである.
ここで第Oビットは、使用状況フラグ28自身が使用中
か否かを示すことも兼ねている。また、各ユニットにお
いて使用状゛況フラグ28及び退避領域ポインタ29以
外の汎用レジスタ30は、プログラマに開放された汎用
レジスタとして使用する。
第4図に本発明の実施例であるレジスタ操作命令の一覧
を示す。
以下に本発明の命令の動作を詳細に説明する。
(1)レジスタ退避命令(SAVE) 第lオペランドは退避すべきレジスタユニットの番号で
ある。
命令デコーダID5は、第エオペランドから、当該ユニ
ットの使用状況フラグ28及び退避領域ポインタ29の
レジスタ番号を算出し、(それぞれ第1オペランド×n
、第1オペランドXn+1)オペランドレジスタORO
、およびORIに設定し、第1オペランド×nから第l
オペランドXn+n−1までのレジスタの内容を退避領
域ポインタ29の示す主記憶装置上へ退避するマイクロ
プログラムをスタートさせる。
上記したレジスタ退避命令をマイクロ命令によって実行
する場合の処理手順の一例を、第5図のフローチャート
に示す.すなわち、 ステップ1:使用状況フラグ28の先頭ビットの値をチ
ェックする.′0′であればマイクロプログラムを終了
する(使用状況フラグ28のレジスタ番号はOROが保
持している)(・・34)。
ステップ2:スクラッチレジスタS R O 21に退
避領域ポインタ29の内容をコピーする(退避領域ポイ
ンタ29のレジスタ番号はオペランドレジスタORIが
保持している)(・・35)。
ステップ3:オペランドレジスタORIにオペランドレ
ジスタOROの内容をコピーする(・・36)。
ステップ4:スクラッチレジスタS R 1 22にI
 O + を設定する(・・37)。
ステップ5:使用状況フラグ28の先頭ビットをチェッ
クし(・・38)  ’1’ならば、ORIの内容を番
号とするレジスタの内容をSROが指示する主記憶装置
にストアする(・・39)。
ステップ6:使用状況フラグ28を1ビット左にシフト
する(・・40)。
ステップ7:○R1に′工′を加算する(・・41)。
ステップ8 : SROに1レジスタ分の主記憶領域サ
イズを加算する(・・42)。
ステップ9 : SRIに11′を加算する(・・43
)。
ステップ10:SR1がnより小さければ((SRl)
<n) 、ステップ5に戻る(・44)。
ステップ11:使用状況フラグ28の先頭ビットに1 
0 1を設定する(・・45). ステップ12:マイクロプログラムを終了する。
なお、上記において、ステップ3および4,ステップ6
〜9は,それぞれ順序を入れ替えてもよい。
(2)使用開始命令(LOCK) 第1オペランドは、使用を開始するレジスタユニットの
番号、第2オペランドは主記憶装置上の退避領域の先頭
アドレスである6ここで,退避領域はフレームポインタ
FPをベースとしたスタックフレームの中にあることを
想定しているが、使用可能な他のレジスタが示す別の領
域であってもよい. ID5は、第1オペランドから、当該ユニットの使用状
況フラグ28のレジスタ番号を算出しオペランドレジス
タOROに設定し、第2オペランドから、退避領域の主
記憶上の先頭アドレスを算出し○R1に設定後、さらに
、使用状況フラグ28の全ビットに11′を設定し,退
避領域ポインタ29に○R1の内容をコピーする。
第6図は,このLOCK命令をマイクロプログラムで実
現したフローチャートである。すなわち、ステップ1:
使用状況フラグ28の全ビットに′1′を設定する(た
だし、使用状況フラグ28のレジスタ番号はOROが保
持している)(・・451)。
ステップ2二OROに11′を加算する(・・461)
.ステップ3:退避領域ポインタ29にORIの内容を
コピーする(ただし、退避領域ポインタ29のレジスタ
番号はOROが保持している)(・・471)。
(3)レジスタ回復命令(RESTORE)第1オペラ
ンドは、使用を開始するレジスタユニットの番号、第2
オペランドは回復すべきレジスタの内容が格納された主
記憶装置上のアドレスである。
ID5は、第1オペランドから当該ユニットの使用状況
フラグ28のレジスタ番号を算出しオペランドレジスタ
○ROに設定し、第2オペランドから回復内容を格納し
た主記憶装置上のアドレスをORIに設定後、まず、使
用状況フラグ28の先頭ビットをチェックし、“O′で
あれば、使用状況フラグ28と退避領域ポインタ29以
下のレジスタの内容を主記憶装置から回復する. 上記RESTORE命令を実現するマイクロプログラム
の一例を第7図にフローチャートで示す.すなわち、 ステップ1:使用状況フラグ28の先頭ビットの値をチ
ェックする.′1′であればマイクロプログラムを終了
する(使用状況フラグ28のレジスタ番号はOROが保
持している)(・・48).ステップ2:使用状況フラ
グ28にORIが示す主記憶装置の内容をロードする(
・・49)。
ステップ3:使用状況フラグ28の内容をスクラッチレ
ジスタSROにコピーする(・・50).ステップ4 
: SRIに′1′を設定する(・・5l).ステップ
5 : OROに′1′を加算する(・・52).ステ
ップ6:OR1に1レジスタ分の主記憶領域サイズを加
算する(・・53). ステップ7 : SROを1ビット左にシフトする(・
・54). ステップ8 : SROの先頭ビットをチェックし(・
・55)、11′ならばORIが示す主記憶装置の内容
をOROが示すレジスタにコピーする(・・56). ステップ9 : SRIに′1′を加算する(・・57
).ステップ10:SR1がn以下ならばステップSに
戻る(・・58). ステップll:マイクロプログラムを終了する。
なお、上記ステップにおいて、ステップ5〜7は順序を
入れ替えてもよい. (4)使用終了命令(UNLOCK) 第1オペランドは退避すべきレジスタユニットの番号で
ある. ID5は第1オペランドから,当該ユニットの使用状況
フラグ28のレジスタ番号を算出しオペランドレジスタ
OROに設定する.マイクロ命令では使用状況フラグ2
8の先頭ビットに″O′を設定する.(第8図)(・・
59) 第9図は、前述した本発明のレジスタ操作命令を用いた
プログラムの一実施例を示す。
この実施例は、副プログラムAεOが、同一のレジスタ
ユニット(ユニット番号3)を使用する副プログラムB
61及びC62を呼び出している場合を示している. ここで、各副プログラムは,計算の中間結果の保持やレ
ジスタの退避等に使用するデータ領域を主記憶装置上に
各副プログラムに対応して個別に持ち、このデータ領域
をスタックフレームと呼ぶ.各副プログラムの実行中、
スタックフレームはフレームポインタ23(FP・・ス
タックフレームの先頭番地を保持)とスタックポインタ
24(SP・・スタックフレームの終了番地を示し、次
に確保されるスタックフレームの先頭番地を保持)の2
つのレジスタにより指定される. また、各副プログラムはそれぞれの処理開始時に、その
副プログラムでの処理に必要な大きさのスタックフレー
ムを新たに確保し、終了時に使用済のスタックフレーム
を開放する。
なお、この実施例のプログラム中で使用される、呼び出
し命令、復帰命令、スタック初期化命令、ロード命令に
ついて、その動作を説明する。
呼び出し命令(CALL) :第1オペランドは呼び出
し先の副プログラムの入口位置を指示する。スタックポ
インタSPの示す主記憶装置上の位置にフレームポイン
タFPと命令ポインタIPの内容を退避する.さらにフ
レームポインタFPにスタックポインタSPの内容をコ
ピー後,命令ポインタIPの内容を第1オペランドで指
示された入口位置に変更する(この結果、第1オペラン
ドで指示された副プログラムの実行が開始される)。
復帰命令(RETURN) :オペランドはない。スタ
ックポインタSPにフレームポインタFPの内容をコピ
ーし,スタックポインタSPが示す主記憶装置からフレ
ームポインタFPおよび命令ポインタIPの内容を回復
する(この結果呼び出し元の副プログラムの実行が再開
される)。
スタック初期化命令(ENTRY)  :第1オペラン
ドは,スタックフレームの大きさの指示である。
スタックポインタSPに第1オペランドで指示された値
を加算する。
ロード命令(LOAD)  :第■オペランドはレジス
タ番号,第2オペランドは設定値の指示である。
第2オペランドで指示された値を第1オペランドのレジ
スタに設定する。
第9図〜第13図を参照して、本発明のレジスタ退避回
復動作を詳細に説明する. 副プログラムAでは、まずスタック初期化命令(ステッ
プ63)でスタックフレームを作成し、レジスタユニッ
ト3の退避を指示する(ステップ64).プログラムの
ある時点でレジスタユニット3の使用開始を指示する(
ステップ65)。ここで、退避領域(LA)は現在のス
タックフレーム中にあるとする。次にレジスタユニット
3の内の1レジスタ(GR,2)に値′A″を設定する
(ステップ66)。
第lO図にこの時点における主記憶装置及びレジスタの
状態を示す。
その後副プログラムBを呼び出す(ステップ67) ,
副プログラムBでは、スタックフレームを作或し(ステ
ップ72)、レジスタユニット3の退避を指示する(ス
テップ73)。このとき,先の副プログラムAからの呼
び出し命令67によって呼ばれた時には、使用開始命令
65で設定した使用状況フラグ28の使用中フラグが′
1′であるので、レジスタユニット3のレジスタはLA
の位置に退避される。副プログラムBではさらに、レジ
スタユニット3を使用し(ステップ74および75、第
11図にロード命令75実行直後の主記憶装置及びレジ
スタの状態を示す)、戻り直前でレジスタユニット3の
使用を終了し(ステップ76)、呼び出し元に復帰する
(ステップ77)。
副プログラムAでは,副プログラムBを呼び出し後、さ
らに副プログラムCを呼び出す(ステップ68)。第l
2図に副プログラムCの呼び出し直前の主記憶装置及び
レジスタの状態を示す。
副プログラムCでは,スタックフレームの確保を行なっ
た(ステップ78)後、レジスタユニット3の退避を指
示する(ステップ79)。ここで、副プログラムCの呼
び出しが副プログラムBの呼び出し後で、副プログラム
Cの呼び出し前にレジスタユニット3を回復していなけ
れば、使用状況フラグの先頭ビットが′O″となってい
るので、レジスタユニット3の内容が再度、主記憶装置
に退避されることはない。副プログラムCではさらにレ
ジスタユニット3を使用して、呼び出し元に復帰する(
ステップ80〜83)。第13図にロード命令81実行
直後の主記憶装置及びレジスタの状態を示す。
副プログラムAでは、副プログラムCの呼び出し後、レ
ジスタユニット3の回復を指示する(ステップ69)。
ここで副プログラムAが使用していたレジスタユニット
3の内容は副プログラムBの呼び出し時に退避されてお
り、レジスタユニット3は未使用の状態になっているの
で、レジスタユニット3の内容は、主記憶装置上のLA
の位置から回復される。さらに、副プログラムAでは、
呼び出し元への復帰直前にレジスタユニット3の使用を
終了し(ステップ70)、呼び出し元に復帰する(ステ
ップ71)。
第l4図は、第9図の本発明のプログラムを従来のレジ
スタ退避方式を用いて記述したものである。
(ここで、各副プログラムの作成時点では、各副プログ
ラムがどのレジスタを使用しているかが判らないものと
する。) 各副プログラムではスタックフレームを確保した後、そ
の各副プログラム中で使用するレジスタ(ユニット)の
退避を行い(ステップ88. 94、99)、その副プ
ログラムの終了時点で当該レジスタの内容の回復を行う
(ステップ92、96. 101)。
従って,この従来技術から明らかなように、副プログラ
ムAから副プログラムBの呼び出し時(ステップ90)
及び副プログラムCの呼び出し時(ステップ91)にレ
ジスタ(ユニット)の退避及び回復がそれぞれ1回づつ
合計2回発生している。
これに対して,本発明によるレジスタ退避回復方法によ
れば、副プログラムBの呼び出し中のSAVE命令(ス
テップ73)で1回退避するだけで済むことが理解され
よう(回復は副プログラムA中のRESTORE命令(
ステップ69)で発生する)。
なお、本発明の使用状況フラグには、レジスタユニット
内の個々のレジスタの使用状況を示すフラグを設けてい
るので、退避不要のレジスタに:いてはプログラム中の
別の命令により使用状況フラグの当該フラグを′0′に
することにより、責にレジスタの退避回復量を低減する
ことも可能てある. また、レジスタ退避命令と使用開始命令を統1し、レジ
スタ退避処理後続けて使用開始処理を行なうような1命
令とすることにより、マルチタスク環境における、タス
ク間のレジスタ内容の排他制御にも適用できる. 〔発明の効果〕 以上、説明したように、本発明のレジスタ退迩回復方法
によれば,プログラムの実行中にレジスタの使用状況が
判定できるので,無駄なレジスタの退避回復を行う必要
性がなくなり、レジスタの退避回復量が大幅に低減され
るという効果が得られる.
【図面の簡単な説明】
第1図は、本発明のレジスタユニットの構成を示す図、 第2図は、本発明の計算機システムのブロックダイヤグ
ラムを示す図、 第3図は,本発明のレジスタファイルの構成を示す図、 第4図は,本発明の実施例であるレジスタ操作命令の一
覧を示す図, 第5図は、本発明のレジスタ退避命令のマイクロプログ
ラムのフローチャート、 第6図は、本発明の使用開始命令のマイクロプログラム
のフローチャート、 第7図は、,本発明のレジスタ回復命令のマイクロプロ
グラムのフローチャート, 第8図は、本発明の使用終了命令のマイクロプログラム
のフローチャート、 第9図は、本発明のレジスタ操作命令を用いたプログラ
ムの一実施例を示す図, 第10図〜第13図は、本発明の動作を説明するための
主記憶装置とレジスタの状態を示す図、第14図は、従
来のレジスタ退避方式で記述したプログラムの例を示す
図である.

Claims (1)

  1. 【特許請求の範囲】 1、複数のレジスタユニットを有する中央処理装置と主
    記憶装置との間でレジスタの退避回復を行う方法におい
    て、 レジスタ退避命令が発行されると、指定されたレジスタ
    ユニットの使用状況フラグを検査し、当該レジスタユニ
    ットが使用中ならば当該レジスタユニットの退避領域ポ
    インタが指示する主記憶装置上の領域へ当該レジスタユ
    ニットを構成する使用中の各レジスタの値を退避するこ
    とを特徴とするレジスタ退避回復方法。 2、請求項1記載のレジスタ退避回復方法において、 レジスタ使用開始命令が発行されると、指定されたレジ
    スタユニットの使用状況フラグを設定し、主記憶装置上
    の退避すべき領域を指示する退避領域ポインタを設定す
    ることを特徴とするレジスタ退避回復方法。 3、請求項1記載のレジスタ退避回復方法において、 レジスタ回復命令が発行されると、指定されたレジスタ
    ユニットの使用状況フラグを検査し、当該レジスタユニ
    ットが退避済であれば、指定された主記憶装置上の領域
    から、当該レジスタユニットへ値を回復することを特徴
    とするレジスタ退避回復方法。 4、請求項1記載のレジスタ退避回復方法において、 レジスタ使用終了命令が発行されると、指定されたレジ
    スタユニットの使用状況フラグを解除することを特徴す
    るレジスタ退避回復方法。 5、請求項2あるいは3のいずれかに記載のレジスタ退
    避回復方法において、レジスタ退避命令とレジスタ使用
    開始命令とを一命令で構成したことを特徴とするレジス
    タ退避回復方法。 6、主記憶装置と中央処理装置からなる計算機システム
    において、複数個のレジスタから構成されたレジスタユ
    ニットであって、前記レジスタユニットは、当該レジス
    タユニットの使用状況である使用・未使用を表示するた
    めの使用状況フラグと、当該レジスタユニットを構成し
    ている各レジスタの値を主記憶装置上の所定の領域に退
    避するための領域を指示する退避領域ポインタと、前記
    値を保持する複数の汎用レジスタとからなり、前記構成
    のレジスタユニットを複数個備えたレジスタファイルを
    設けたことを特徴とする中央処理装置。 7、請求項6記載の中央処理装置において、前記退避領
    域はフレームポインタとスタックポインタで指示される
    スタックフレーム中に設定されることを特徴とする中央
    処理装置。 8、請求項7記載の中央処理装置において、プログラム
    の処理開始時に所定の大きさのスタックフレームが確保
    されることを特徴とする中央処理装置。 9、請求項7記載の中央処理装置において、処理終了時
    に使用済のスタックフレームが開放されることを特徴と
    する中央処理装置。
JP1189976A 1989-07-20 1989-07-20 レジスタ退避回復方法ならびに処理装置 Pending JPH0353328A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP1189976A JPH0353328A (ja) 1989-07-20 1989-07-20 レジスタ退避回復方法ならびに処理装置
US07/551,562 US5414864A (en) 1989-07-20 1990-07-19 Method for selectively saving/restoring first registers and bypassing second registers in register units based on individual lock/unlock status thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1189976A JPH0353328A (ja) 1989-07-20 1989-07-20 レジスタ退避回復方法ならびに処理装置

Publications (1)

Publication Number Publication Date
JPH0353328A true JPH0353328A (ja) 1991-03-07

Family

ID=16250324

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1189976A Pending JPH0353328A (ja) 1989-07-20 1989-07-20 レジスタ退避回復方法ならびに処理装置

Country Status (2)

Country Link
US (1) US5414864A (ja)
JP (1) JPH0353328A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015501019A (ja) * 2011-10-03 2015-01-08 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation コンピュータ・システム内のオペランド活性情報の維持

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2766217B2 (ja) * 1994-06-14 1998-06-18 甲府日本電気株式会社 並列処理装置
JP2889845B2 (ja) * 1995-09-22 1999-05-10 松下電器産業株式会社 情報処理装置
US5812823A (en) * 1996-01-02 1998-09-22 International Business Machines Corporation Method and system for performing an emulation context save and restore that is transparent to the operating system
US6173376B1 (en) 1996-10-03 2001-01-09 International Business Machines Corp. Data backup and restore method and system in a multisystem environment
US6219779B1 (en) * 1997-06-16 2001-04-17 Matsushita Electric Industrial Co., Ltd. Constant reconstructing processor which supports reductions in code size
US5928356A (en) * 1997-10-11 1999-07-27 Institute For The Development Of Emerging Architectures, L.L.C. Method and apparatus for selectively controlling groups of registers
US6199156B1 (en) * 1998-12-16 2001-03-06 Bull Hn Information Systems Inc. System for explicitly referencing a register for its current content when performing processor context switch
JP2002189603A (ja) * 2000-12-19 2002-07-05 Fujitsu Ltd 計算機とその制御方法
US6826681B2 (en) * 2001-06-18 2004-11-30 Mips Technologies, Inc. Instruction specified register value saving in allocated caller stack or not yet allocated callee stack
DE10245367A1 (de) * 2002-09-27 2004-04-15 Infineon Technologies Ag Prozessor mit expliziter Angabe über zu sichernde Informationen bei Unterprogrammsprüngen
US6981083B2 (en) * 2002-12-05 2005-12-27 International Business Machines Corporation Processor virtualization mechanism via an enhanced restoration of hard architected states
JP4347582B2 (ja) * 2003-02-04 2009-10-21 パナソニック株式会社 情報処理装置
US7627869B2 (en) * 2003-08-21 2009-12-01 Nxp B.V. Hardware register access via task tag ID
US8171268B2 (en) * 2005-09-19 2012-05-01 Intel Corporation Technique for context state management to reduce save and restore operations between a memory and a processor using in-use vectors
JP5186802B2 (ja) * 2007-05-08 2013-04-24 富士通セミコンダクター株式会社 マイクロプロセッサ
US8762692B2 (en) * 2007-09-27 2014-06-24 Intel Corporation Single instruction for specifying and saving a subset of registers, specifying a pointer to a work-monitoring function to be executed after waking, and entering a low-power mode
US8161273B2 (en) * 2008-02-26 2012-04-17 Oracle America, Inc. Method and apparatus for programmatically rewinding a register inside a transaction
JP5644307B2 (ja) 2010-09-17 2014-12-24 富士通株式会社 情報処理装置、情報処理装置の制御方法及び制御プログラム
US9898330B2 (en) * 2013-11-11 2018-02-20 Intel Corporation Compacted context state management
GB2549774B (en) 2016-04-28 2019-04-10 Imagination Tech Ltd Method for handling exceptions in exception-driven system
US10838733B2 (en) 2017-04-18 2020-11-17 International Business Machines Corporation Register context restoration based on rename register recovery
US10782979B2 (en) 2017-04-18 2020-09-22 International Business Machines Corporation Restoring saved architected registers and suppressing verification of registers to be restored
US10963261B2 (en) 2017-04-18 2021-03-30 International Business Machines Corporation Sharing snapshots across save requests
US11010192B2 (en) * 2017-04-18 2021-05-18 International Business Machines Corporation Register restoration using recovery buffers
US10839877B1 (en) * 2019-04-23 2020-11-17 Nxp Usa, Inc. Register protection circuit for hardware IP modules
US20240069920A1 (en) * 2022-08-26 2024-02-29 Texas Instruments Incorporated Securing registers across security zones

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4493020A (en) * 1980-05-06 1985-01-08 Burroughs Corporation Microprogrammed digital data processor employing microinstruction tasking and dynamic register allocation
US4484274A (en) * 1982-09-07 1984-11-20 At&T Bell Laboratories Computer system with improved process switch routine
JPS6151243A (ja) * 1984-08-20 1986-03-13 Toshiba Corp レジスタ式演算処理装置
US4777588A (en) * 1985-08-30 1988-10-11 Advanced Micro Devices, Inc. General-purpose register file optimized for intraprocedural register allocation, procedure calls, and multitasking performance
US4903196A (en) * 1986-05-02 1990-02-20 International Business Machines Corporation Method and apparatus for guaranteeing the logical integrity of data in the general purpose registers of a complex multi-execution unit uniprocessor
US4811208A (en) * 1986-05-16 1989-03-07 Intel Corporation Stack frame cache on a microprocessor chip
US4853849A (en) * 1986-12-17 1989-08-01 Intel Corporation Multi-tasking register set mapping system which changes a register set pointer block bit during access instruction
JPS63156236A (ja) * 1986-12-19 1988-06-29 Toshiba Corp レジスタ装置
JPS63245529A (ja) * 1987-03-31 1988-10-12 Toshiba Corp レジスタ退避復元装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015501019A (ja) * 2011-10-03 2015-01-08 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation コンピュータ・システム内のオペランド活性情報の維持
US10061588B2 (en) 2011-10-03 2018-08-28 International Business Machines Corporation Tracking operand liveness information in a computer system and performing function based on the liveness information
US10078515B2 (en) 2011-10-03 2018-09-18 International Business Machines Corporation Tracking operand liveness information in a computer system and performing function based on the liveness information

Also Published As

Publication number Publication date
US5414864A (en) 1995-05-09

Similar Documents

Publication Publication Date Title
JPH0353328A (ja) レジスタ退避回復方法ならびに処理装置
US5613114A (en) System and method for custom context switching
EP0211152A2 (en) Program switching with vector registers
EP0217168B1 (en) Method for processing address translation exceptions in a virtual memory system
JPH08505965A (ja) コンテキスト切り換え装置及び方法
JPH02227769A (ja) データ処理システム
EP0646861B1 (en) A history buffer system
JP3142813B2 (ja) レジスタの名前変更を管理するための情報処理システムおよび方法
CN1099631C (zh) 双执行部件处理器的反回逻辑线路
JPH0348537B2 (ja)
JPS62221732A (ja) 情報処理装置
US20050125801A1 (en) Method and apparartus for context switching in computer operating systems
JPH02148223A (ja) レジスタ退避復活装置
JPH076045A (ja) 多重処理システムにおけるメモリ管理方法
JPH0222736A (ja) 中央処理装置
JPH0546410A (ja) タスク切り換え制御システム
JPH0333954A (ja) 情報処理装置
JPH0756633B2 (ja) タスク切換え方式
JPH11353193A (ja) マルチプログラミング実行制御方法
JPH02163834A (ja) マルチ・タスク処理方式
JPH04182741A (ja) 計算機
JPS626329A (ja) デ−タ転送回路
JPH03188531A (ja) 時分割マルチタスク実行装置
JPH03184127A (ja) レジスタ退避制御方法
JPH0340139A (ja) マルチタスクシステムにおけるコンテキスト切換方法