JPH01142942A - レジスタ退避方式 - Google Patents

レジスタ退避方式

Info

Publication number
JPH01142942A
JPH01142942A JP62302181A JP30218187A JPH01142942A JP H01142942 A JPH01142942 A JP H01142942A JP 62302181 A JP62302181 A JP 62302181A JP 30218187 A JP30218187 A JP 30218187A JP H01142942 A JPH01142942 A JP H01142942A
Authority
JP
Japan
Prior art keywords
register
saved
saving
instruction
contents
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
JP62302181A
Other languages
English (en)
Inventor
Takuya Fujii
藤井 卓哉
Yoshiyuki Miki
三木 良行
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP62302181A priority Critical patent/JPH01142942A/ja
Publication of JPH01142942A publication Critical patent/JPH01142942A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

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

Description

【発明の詳細な説明】 産業上の利用分野 本発明は、情報処理装置における中央処理装置の動作に
関するものである。より詳細には、中央処理装置の特定
の動作において、レジスタの内容□を主記憶装置へ退避
動作を実行する際の新規な方式に関するものである。
従来の技術 一般に、情報処理装置における中央処理装置に右いては
、サブルーチンコールを実行するに先立って、そのサブ
ルーチン上で使用するレジスタの値をメインルーチンへ
の復帰時に再現するために、そのレジスタの内容を主記
憶装置へ退避して保存していた。
このような動作を指示する典型的なプログラムリストと
しては、以下のようなものがある。
pushm   reg−1ist call    Address ここで、pushmは、所定のレジスタのリスト(以下
、reg−1istと記載する)によって指示された複
数のレジスタの内容を、スタックポインタから読み出さ
れた主記憶装置内のアドレスに退避する命令である(以
下、レジスタ退避命令と記載する)。
第6図は、上述のような動作を説明するブロック図であ
る。
第6図を参照して、レジスタ退避命令を実行する際に実
行される汎用レジスタ (以下、REGSと記す)60
5から主記憶装置(以下、MSと記す)604への退避
動作を説明する。
まず、REGS605に格納された退避命令が、命令解
読部(以下、IDUと記載する)601によりデコード
される。尚、この場合、IDU601は次の命令を先取
りは行わない。
命令実行部(以下、EXUと記載する)602は、I 
D U2O5のからの情報により、命令がレジスタ退避
命令であることを認知し、スタックポインタで示されて
いるアドレスにREGS605の内容を書込むように主
記憶装置制御部(以下、BCUと記載する)603に指
示する。そして、B CU2O5はREGS605の内
容をMS604へ書込む。
更に、実際には、これらのレジスタ退避命令の実行終了
後に、次のサブルーチンコール命令をデコードしその実
行を開始する。
発明が解決使用とする問題点 ところで、第7図(I)、(n)、(III)は、上述
のような情報処理装置の動作を模式的に示す図である。
第7図(I)は、レジスタ退避命令の実行を表しており
、第6図において示したように、情報処理装置の各要素
(IDU、EXUXBCUSMS)の処理実行への関与
を表している。
また、第7図(II)は、サブルーチンコール命令の実
行についての各要素の関与を表している。
更に、第7図、(■)は、異なるサブルーチンコール命
令の実行についての各要素の関与を表している。
即ち、ザブルーチンの処理内容によって、情報処理装置
の各要素は使用される場合とされない場合とがある。こ
の点、前述した従来の退避方式では、レジスタ退避命令
とサブルーチンコール命令とが組合わさった場合、レジ
スタ退避命令と次のサブルーチンコール命令とは有機的
に連携していないことがわかる。
即ち、レジスタ退避命令が実行されると、主記憶装置に
レジスタの退避が完全に終了するまでは次のサブルーチ
ンコール命令が実行できないが、従来の退避方式では、
サブルーチンにおけるレジスタの使用の有無に関わらず
、常にレジスタの全内容を退避してからサブルーチンの
実行が開始されている。従って、メインルーチンへの復
帰の際は、全てのレジスタの内容をも復帰する必要があ
る。このために、サブルーチンを使用したプログラムで
は、必要以上に実行時間が非常に長くなるという欠点が
あった。
問題点を解決するための手段 即ち、本発明に従い、サブルーチンの実行時にレジスタ
の内容を主記憶装置内の所定のアドレスに退避する動作
を行う情報処理装置のレジスタ退避方式において、サブ
ルーチンの実行時に内容を退避すべきレジスタであるこ
とを表示する第1のフラグと、該レジスタの内容が既に
退避されているか否かを表示する第2のフラグとを前記
レジスタの各々が備え、サブルーチンへの動作移行を含
む命令が入力された際に、まず前記第1フラグにそのレ
ジスタが内容を退避すべきものであることをセットし、
サブルーチン内であるレジスタを使用する際に前記第2
フラグを参照して、該レジスタの内容がまだ退避されて
いない場合に該レジスタの内容の退避動作を実行するこ
とを特徴とするレジスタ退避方式が提供される。
作用 本発明のレジスタ退避方式は、転送装置により主記憶装
置に転送すべきレジスタであることを示す第1のフラグ
と、主記憶装置に転送が済んだレジスタであることを示
す第2のフラグとを備え、前記転送装置を起動するレジ
スタ退避命令が、退避すべきレジスタを指示したときに
、前記転送装置により前記第1のフラグおよび、前記第
2のフラグの該当するbitをセットし、以降の命令に
おいて前記レジスタを参照する場合に、前記第1のフラ
グの該当するレジスタ番号の部分を参照して、前記主記
憶装置に退避するべきかどうかを判定し、前記第2のフ
ラグの該当するレジスタ番号の部分を参照して、まだ前
記主記憶装置に退避されていないときに初めてレジスタ
を前記主記憶装置に退避するために転送装置を起動する
ことを主要な特徴としている。
即ち、従来のレジスタ退避命令とサブルーチンコール命
令の組合わせでは、汎用レジスタの退避が終了しなけれ
ば次のサブルーチンコール命令の実行ができなかった。
これに対して、本発明では、サブルーチンコール命令に
対して退避するレジスタのリストをあたえ、サブルーチ
ン内の命令が、レジスタを更新しない場合や、退避レジ
スタのリストにないレジスタを用いる場合は、レジスタ
の退避を行わず、退避レジスタのリストにあるレジスタ
を更新する場合で、かつまだ退避していないレジスタの
場合は、その命令を実行する前にレジスタの退避を行う
以下に図面を参照して本発明をより具体的に詳述するが
、以下に開示するものは本発明の一実施例に過ぎず、本
発明の技術的範囲を何ら限定するものではない。
実施例 第1図は、本発明のレジスタ退避方式を実現する際の情
報処理装置の構成を模式的に示すブロック図である。
第1図に示す情報処理装置は、人力された命令を解読す
る命令解読部(以下、IDUと記す)101と、バス1
03を介してこのIDUIOI と接続された命令解読
部から得られた情報により命令を実行に移す命令実行部
(以下、EXUと記す)102とを中心に構成されてい
る。
E X U2O5には、実行結果を主記憶装置(以下、
MSと記す)106に格納するための主記憶装置制御部
(以下、BCUと記す)に接続されている。
また、この情報処理装置は、汎用のレジスタ群(以下、
REGSと記す)108を備えており、これらの構成は
、基本的には第6図に示した従来の装置と同じ構成であ
る。
更に、本実施例の情報処理装置は、レジスタの退避を制
御するレジスタ退避制御装置(以下、5TCUと記す)
109と、レジスタが内容を退避すべきものであるか否
かを表示する退避指示フラグ(以下、5TCRと記す)
111と、レジスタの内容が既に退避しているか否かを
表示する退避済み表示レジスタ(以下、5TERと記す
)112とを備えている。
第2図は、本発明の実施例における汎用レジスタの構成
を示す図である。
第2図に示すように、この情報処理装置における汎用レ
ジスタ201は、そのレジスタが退避するか否かを示す
、5TCRの1bitを構成しているフラグ202と、
そのレジスタが退避済みか否かを示す、5TERの1b
itを構成しているフラグ203とを備えている。
以下に、上述のような構成の装置における本発明に従う
レジスタ退避方式の実行を、パイプライン方式による先
行制御方式を採用した場合について説明する。尚、この
動作方式においては、IDUIOI 、EXU102並
びにBCU104の3つのステージからなり、それぞれ
が並行処理を行うことができるものとする。また、また
汎用レジスタは、レジスタ0 (以下、ROと記す)か
らレジスタ31(以下、R31と記す)の32本の汎用
レジスタから構成され、更に、前述のように、1つの汎
用レジスタに対して、第1並びに第2のフラグ202.
203が、それぞれ5TCRと5TERの1ビツトを構
成している。即ち、5TCRと5TERは32ビツトの
大きさからなるレジスタで、32本の汎用レジスタに対
しては、汎用レジスタROに対して5TCRSSTER
のbitQ、R1に対してSTCRと5TERのbit
lと対応している。
第3図は、本実施例における主記憶装置に退避されたレ
ジスタの構成図である。
本実施例では、サブルーチンコール命令の実行と複数の
レジスタの主記憶装置上への退避がともなうときに、サ
ブルーチンコール命令に退避するレジスタのリストを与
え、サブルーチン内の命令がレジスタを更新しない場合
は、レジスタの退避を行わず、レジスタの更新される場
合で、そのレジスタが退避するレジスタのリストにある
場合で、かつまだ退避していないレジスタの場合は、そ
の命令を実行する前にレジスタの退避を行う命令につい
て説明する。以下、この命令をレジスタ退避付きサブル
ーチンコール命令とする。
第4図は、本発明の実施例における命令の形式レジスタ
退避付きサブルーチンコール命令は、第4図に示すよう
に命令コード401 と退避レジスタのリスト402と
オペランド403に分離する。
まず第1図において、レジスタ退避付きサブルーチンコ
ール命令の過程を説明する。
IDUIOIは、レジスタ退避付きサブルーチンコール
命令を、デコードするS T CU2O5に退避レジス
タのリストを送り、EXU102にサブルーチンコール
の実行を指示する。
サブルーチンコール命令では、まず始めに戻り番地をス
タックに退避し、汎用レジスタと5TCRと5TERの
、退避する領域を確保するためにスタックを進める。次
に、フレームポインタをスタックに退避し、現在のスタ
ックの値をフレームポインタに転送する。以後フレーム
ポインタを基準とし、汎用レジスタの退避を行う。
次にIDUは、次の命令デコードを先取りする。
退避レジスタのリストを受は取ったS T C0109
は、5TCRIII とS T E R112に、退避
レジスタのリストをセットする。すなわち、退避するレ
ジスタに対応するbitを” 1”にセットする。
次にIDUIOIに解読された命令が、レジスタを使用
しない場合や、レジスタの更新を行わない場合は、ID
UIOIは、S T CU2O5に対して何も行わない
。IDUIOIが命令を解読した結果が、レジスタの更
新をともなう場合は、IDUIOIは5TCU109に
対して更新するレジスタ番号を知らせる。5TCU10
9は、IDUIOIから受は取ったレジスタ番号から、
退避を行わなければならないレジスタかどうかを、フラ
グを参照して判定する。すなわち、汎用レジスタ番号に
対応する5TCRIIIのbitが”1”のとき退避を
行うレジスタと判定し、II O11のときは何も行わ
ない。
次にS T CU2O5は、退避を行うレジスタと判定
したレジスタ番号に対して、5TER112を参照して
すでにレジスタが、退避されているかを調べる。すなわ
ち、汎用レジスタ番号に対応するST E R112の
bitが#1”のときレジスタの退避をフレームポイン
タを参照して行う、パ0”のときは何も行わない。
レジスタ退避付きサブルーチンコール命令により、サブ
ルーチンに実行を移したのちに、そのサブルーチン内に
レジスタ退避付きサブルーチンコール命令が、ある場合
は5TERに示されたまだ退避していないレジスタと5
TCRと5TERとを退避する。
第5図は、本発明の実施例におけるタイミング図である
第5図は、本実施例のタイミングチャートである。■は
、レジスタ退避付きサブルーチンコール命令の実行を表
して“いる。■は、レジスタの退避を必要としない命令
の実行を表している。■は、レジスタの退避を必要な命
令の実行を、表している。この図かられかるように命令
の実行を高速に行うことが出来ることがわかる。
実施例2 次に、本発明の他の態様について具体的に説明する。
前述の第一実施例では、複数のレジスタの退避を伴うレ
ジスタ退避付きサブルーチンコール命令について説明を
行ったが、この方法は、並行動作可能なプログラムの単
位(以下、タスクと記す)の、並行副動作のためのタス
ク切り換えの場合にも用いることが出来る。
即ち、タスク切り換えでは、現在実行中のタスクの中断
を行う場合、中断したときの状態を保持するためにその
ときのレジスタの値を主記憶装置に退避する。従って、
この場合のレジスタの退避にも、切り換え後のタスクを
サブルーチンと見做すことによって、前述の第一実施例
の方式を適用することができる。
発明の効果 以上の説明のように、本発明に従うレジスタ退避方式に
よれば、複数のレジスタを有する中央処理装置において
、複数のレジスタの退避をともなうサブルーチンコール
命令のレジスタの退避を遅らせ、次の命令を先に実行し
、退避するレジスタの値が更新する必要が生じた場合に
、そのレジスタの値を主記憶装置へ退避を行い、サブル
ーチンの実行時間を短縮できることが出来る。また、退
避が不用なレジスタの主記憶への退避を抑制し、サブル
ーチン実行時間を短縮できる。
【図面の簡単な説明】
第1図は、本発明のレジスタ退避方式を実現する中央処
理装置の構成を模式的に示すブロック図であり、 第2図は、第1図に示す中央処理装置内の汎用レジスタ
の構成を示す図であり、 第3図は、第1図に示した装置において、主記憶装置に
退避されたレジスタの構成を説明する図であり、 第4図は、本発明の実施例における命令の形式%式% 第5図は、本発明の実施例におけるタイミング図であり
、 第6図は、従来のレジスタ退避方式における中央処理装
置の構成を示すブロック図であり、第7図(I)、(n
)、(III)は、第6図に示した従来の方式における
レジスタ退避時の動作をそれぞれ模式的に示す図である
。 〔主な参照番号〕 101.601  ・・・命令解読部(IDU)、10
2.602 −−−命令実行部(EXU)、104.6
03  ・・・主記憶装置制御部(BCU)、106.
604  ・・・主記憶装置(MS)、108.605
  ・・・汎用レジスタ (REGS)、109  ・
・・レジスタ退避制御装置(STCU)、111  ・
・・退避指示フラグ(STCR)、112  ・・・退
避済み表示レジスタ(STER)、201  ・・・汎
用レジスタ、 202  ・・・、203 フラグ、 401  ・ ・ ・命令コード、 402  ・ ・ ・リスト、 403  ・・・オペランド

Claims (1)

    【特許請求の範囲】
  1. サブルーチンの実行時にレジスタの内容を主記憶装置内
    の所定のアドレスに退避する動作を行う情報処理装置の
    レジスタ退避方式において、サブルーチンの実行時に内
    容を退避すべきレジスタであることを表示する第1のフ
    ラグと、該レジスタの内容が既に退避されているか否か
    を表示する第2のフラグとを前記レジスタの各々が備え
    、サブルーチンへの動作移行を含む命令が入力された際
    に、まず前記第1フラグにそのレジスタが内容を退避す
    べきものであることをセットし、サブルーチン内である
    レジスタを使用する際に前記第2フラグを参照して、該
    レジスタの内容がまだ退避されていない場合に該レジス
    タの内容の退避動作を実行することを特徴とするレジス
    タ退避方式。
JP62302181A 1987-11-30 1987-11-30 レジスタ退避方式 Pending JPH01142942A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62302181A JPH01142942A (ja) 1987-11-30 1987-11-30 レジスタ退避方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62302181A JPH01142942A (ja) 1987-11-30 1987-11-30 レジスタ退避方式

Publications (1)

Publication Number Publication Date
JPH01142942A true JPH01142942A (ja) 1989-06-05

Family

ID=17905907

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62302181A Pending JPH01142942A (ja) 1987-11-30 1987-11-30 レジスタ退避方式

Country Status (1)

Country Link
JP (1) JPH01142942A (ja)

Similar Documents

Publication Publication Date Title
US5682531A (en) Central processing unit
KR100777772B1 (ko) 연산 처리 장치, 정보 처리 장치 및 레지스터 파일의 제어방법
JPS645330B2 (ja)
JPS62140137A (ja) Aluを用いたデータ保持方法
JPH01142942A (ja) レジスタ退避方式
US6775762B1 (en) Processor and processor system
US5621909A (en) Specialized millicode instruction for range checking
JPS6217773B2 (ja)
JPH056281A (ja) 情報処理装置
JP2000112754A (ja) データ処理装置
JPS622332B2 (ja)
US5802346A (en) Method and system for minimizing the delay in executing branch-on-register instructions
JPH02100142A (ja) 任意のレジスタ退避、復帰方式
JPS5829051A (ja) 演算処理装置
JPH11249907A (ja) マイクロコンピュータ
JPH05282133A (ja) 演算方式
JPH03127171A (ja) ベクトル処理装置
JPS63240633A (ja) 中央処理装置
JP2583614B2 (ja) ベクトル演算装置
JPH01175034A (ja) レジスタ群・ロード高速化方式
JPS63245524A (ja) マイクロプロセツサ
JPH02103635A (ja) ディジタルシステム
JPS63208945A (ja) 情報処理装置
JPH0212535A (ja) 命令実行方式
JPS63228224A (ja) プログラム修正方法