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

レジスタ退避・回復方式

Info

Publication number
JPH01142943A
JPH01142943A JP62302655A JP30265587A JPH01142943A JP H01142943 A JPH01142943 A JP H01142943A JP 62302655 A JP62302655 A JP 62302655A JP 30265587 A JP30265587 A JP 30265587A JP H01142943 A JPH01142943 A JP H01142943A
Authority
JP
Japan
Prior art keywords
register
subroutine
arithmetic unit
save
saving
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
JP62302655A
Other languages
English (en)
Inventor
Masahiko Yoshimura
政彦 吉村
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP62302655A priority Critical patent/JPH01142943A/ja
Publication of JPH01142943A publication Critical patent/JPH01142943A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

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

Description

【発明の詳細な説明】 [発明の目的] (産業上の利用分野) この発明は、サブルーチン呼出しに伴うレジスタ内容の
退避・回復処理に好適なレジスタ退避・回復方式に関す
る。
(従来の技術) 一般にデータ処理装置は第3図に示すように構成されて
いる。第3図において、11は命令を解読して実行する
演算装置、12は演算装置11が命令を実行するときに
利用する複数レジスタから成るレジスタ部、13は各種
ブOグラム、データ等を格納する記憶装置である。記憶
装置13には、レジスタ部12の内容を退避するだめの
スタック領1414が確保される。このスタック領域1
4のトップアドレス、即ち次にレジスタ部12のレジス
タ内容を退避するのに供されるスタック・フレームの先
頭アドレスは、スタック・ポイント・レジスタ(以下、
SPレジスタと称する)15に設定されるスタック・ポ
インタ(SP)によって示される。
さて、第3図のデータ処理装置が第4図に示すようにル
ーチンAの処理状態にあり、演算装置11がそのための
命令実行をレジスタ部12(内のレジスタ)を利用して
行なっている状態で、第4図に示すようにサブルーチン
Bが呼出された(コールされた)ものとする。この場合
、演算袋W111は、呼出し元(ルーチンA)のサブル
ーチン呼出しの前後でのレジスタ部12の内容の一致を
保証するために、まず呼出されたサブルーチンBの入口
において、レジスタ部12(の内容)を記憶装置13上
に確保されたスタック領域14に退避するレジスタ退避
処理(セーブ処理)を行なう。このレジスタ退避処理が
終了すると、演算装置11は第4図に示すように呼出さ
れたサブルーチン8本来の処理を行なう。そして演算装
置11は、サブルーチンBの処理(手続き)を終了する
と、呼出し元(ルーチンA)へのリターン直前に、先に
ルーチンBの入口でスタック領域14に退避しておいた
レジスタ内容をレジスタ部12に戻してレジスタ部12
(の内容)を回復するレジスタ回復処理を行なう。
(発明が解決しようとする問題点) 上記したように従来は、プログラムの命令の実行がサブ
ルーチンの呼出しにより一時的に変化する場合、演算装
置は、サブルーチン本来の処理を行なうことで先のルー
チンで利用されたレジスタ部の内容が変化してしまう前
に、このレジスタ部の内容を記憶装置上に確保されたス
タック領域に退避するレジスタ退避処理を行ない、サブ
ルーチンの手続き終了時には、先にスタック領域に退避
しておいてレジスタ内容をレジスタ部に戻ルジスタ回復
処理を行なっていた。このレジスタ退避・回復方式では
、呼出し元にお【プるサブルーチン呼出し前後でのレジ
スタ部内容の一致は保証されるものの、サブルーチン呼
出しを行なわない場合に比べて、レジスタ退避・回復処
理の分だけ余分に時間を要することから、プログラム全
体の処理速度が著しく低下する問題があった。
この発明は上記事情に鑑みてなされたものでその目的は
、サブルーチン呼出しに伴うレジスタ退避・回復処理が
演算装置の命令実行処理と並行して行なえ、もってプロ
グラム全体の処理速度が著しく向上するレジスタ退避・
回復方式を提供することにある。
[発明の構成] (問題点を解決するための手段) この発明は、演算装置に接続されることにより同装置の
命令実行に利用可能な複数組のレジスタ部と、この複数
のレジスタ部のうちの1組をサブルーチン呼出し時また
はサブルーチンからのリターン時に演算装置に切替え接
続し、上記複数組のレジスタ部のうちサブルーチン呼出
し元のルーチンで演算装置に利用されていたレジスタ部
の内容を、記憶装置上に確保されたスタック領域との間
で退避・回復するレジスタ退避・回復手段とを設けたこ
とを特徴とする。
(作用) 上記の構成によれば、サブルーチン呼出し元のルーチン
で演算@置に利用されるレジスタ部と、呼出されたサブ
ルーチンで演算装置に利用されるレジスタ部とは異なり
、した、がってレジスタ退避・回復手段が演算装置から
独立にレジスタ退避・回復処理を行なうことにより、演
算装置はレジスタ退避・回復手段のレジスタ回復/退避
処理を持たずに命令実行を行なうことができる。
(実施例) 第1図はこの発明を適用するデータ処理装置の一実施例
を示すブロック構成図である。同図において、21は命
令を解読して実行する演算装置、22a 、 22bは
演算袋gi121が命令を実行するときに利用する複数
レジスタ(ここではレジスター1〜レジスターnのnレ
ジスタ)から成るレジスタ部、23は各種プログラム、
データ等を格納する記憶装置である。記憶袋W!23に
は、レジスタ部22aまたは22bの内容(更には後述
するSPレジスタ25に設定されているSP値)を退避
(セーブ)するためのスタック領域24が確保される。
25はスタック領域24のトップアドレス、即ち次にレ
ジスタ部22aまたは22bの内容を退避するのに供さ
れるスタック・フレームの先頭アドレスを示すスタック
・ポインタ値(SP値)が設定されるSPレジスタ(ス
タック・ポイント・レジスタ)、26はサブル−チン呼
出しに伴うレジスタ退避・回復処理を行なうレジスタ退
避・回復装置である。このレジスタ退避・回復装置26
は、レジスタ部22aおよび22bのいずれか一方を演
算装置21が利用するレジスタ部として演算装置21に
切替え接続するレジスタ部切替え機能と、レジスタ部2
2aまたは22b(ここでは演算装置21に接続されて
いない側のレジスタ部)とスタック領域24との間での
レジスタ・  退避・回復処理を、演算装置21から独
立に実行するレジスタ退避・回復処理機能とを有してい
る。
次に、第1図の構成の動作を、第2図のサブルーチン呼
出し時の処理の流れを示す図を参照して説明する。なお
、第2図においては、演算装置21の動作は実線で表わ
され、レジスタ退避・回復装置26の動作は波線で表わ
されている。
まず、レジスタ部22a 、 22bのうちの例えばレ
ジスタ部22aがレジスタ退避・回復装置26によって
演算装置21に切替え接続されており、これにより演算
装置21は、レジスタ部22aを利用しながらルーチン
(メインルーチン)Aの命令を実行しているものとする
。この状態にJ5いてサブルーチンBの呼出しが発生す
ると、演算装置21はレジスタ退避・回復装置26にサ
ブルーチン呼出しが発生した旨を通知し、レジスタ退避
・回復装置26から命令実行開始可が通知されるまで待
機状態に入る。
レジスタ退避・回復装置26は、演算装置21からのサ
ブルーチン呼出し発生通知を受取ると、演算装置21に
接続するレジスタ部を、これまで演算装置21によって
利用されていたレジスタ部22aから、これまで演算装
置21に接続されていなかったレジスタ部22bに切替
え、しかる後に演算装置21に命令実行開始可を通知す
る。演算装置21は、レジスタ退避・回復装置2Gから
の命令実行開始可通知を受取ると、それまで利用してい
たレジスタ部(ここではレジスタ22a)の内容の退避
処理を行なうことなく、第2図に示すようにサブルーチ
ンBの命令実行を開始する。
一方、レジスタ退避・回復装置26は、上記したように
演算装置1i21への命令実行開始可通知を行なうと、
それまで演口装置21に接続されていたレジスタ部22
aの内容、即ちルーチンAの処理で演算装置21に利用
されていたレジスタ部22aの内容(およびSPレジス
タ25の示すSP値)を、SPレジスタ25の指定する
スタック領域24内位置を\ら順に退避する退避処理を
、演算装置21から独立に且つ演算装置21のサブルー
チン処理(ここではサブルーチンBの処理)と並行して
実行する。そしてレジスタ退避・回復1i置26は、以
上の退避処理を終了すると、SPレジスタ25に設定さ
れているSP値を、次のレジスタ退避先の先頭位置を示
すように更新する。
次に、サブルーチンBの処理中に、第2図に示すように
サブルーチンCの呼出しが発生したものとする。この場
合、演算装置21は前記したサブルーチンB呼出し時と
同様に、レジスタ退避・回復装置26へのサブルーチン
呼出し発生通知を行なって待機状態に入る。演算装置2
1からサブルーチン呼出し発生を通知されたレジスタ退
避・回復装置26は、演算装置!121が利用可能なレ
ジスタをレジスタ部22bからレジスタ部22aに切替
え、演算装置21への命令実行開始可通知を行なった後
、(サブルーチンBの処理で演算装置21に利用されて
いた)レジスタ部22bの内容のスタック領域24への
退避処理を行なう。
一方、演算装置21はレジスタ退避・回復装置26から
の命令実行開始可通知を受けると、レジスタ退避・回復
装置26の動作に無関係にサブルーチンCの命令実行を
開始する。今、このサブルーチンCの処理中に、しかも
サブルーチンC呼出しに伴うレジスタ退避・回復装置2
6のレジスタ退避処理(レジスタ部22bの内容を退避
する処理)が完了しないうちに、第2図に示すようにサ
ブルーチンDの呼出しが発生したものとする。この場合
、演算袋W121は前記したようにレジスタ退避・回復
装置26へのサブルーチン呼出し発生通知を行ない、レ
ジスタ退避・回復装置26から命令実行開始可通知が与
えられるまで待機状態に入る。一方、レジスタ退避・回
復装W!26は、サブルーチンDの処理で利用すべきレ
ジスタ部22bの内容の退避処理中であり、レジスタ部
22aからレジスタ部22bへのレジスタ切替を行なう
ことができないことから、レジスタ切替に入らずに、レ
ジスタ部22bの内容の退避処理を継続する。そして、
この退避処理が完了しレジスタ部22bが利用可能状態
になると、レジスタ31″m・回復装置26は演算vA
置21が利用可能なレジスタをレジスタ部22aからレ
ジスタ部22bに切替へ、演i5A置21への命令実行
開始可通知を行なう。これにより、待機状態にあった演
算装置21はサブルーチンDの命令実行を開始し、命令
実行開始可通知を行なったレジスタ退避・回復装置26
は(サブルーチンCの処理で演算装置21に利用されて
いた)レジスタ部22aの内容のスタック領域24への
退避処理を行なう。
サブルーチンDの処理が終了し、リターン命令が実行さ
れると、演算装置21はレジスタ退避・回復装置26に
リターン発生を通知して待機状態に入る。レジスタ退避
・回復装置26は、演算5Ai121からのリターン発
生通知を受取ると、演算波@21が利用可能なレジスタ
をレジスタ部22bからレジスタ部22aに切替える。
レジスタ退避・回復装置2Gは更に、スタック領域24
の状態を、サブルーチンDが呼出された際の状l1l(
言替えれば、サブルーチンD呼出しに伴うレジスタ退避
処理を開始する直前の状!!1)に戻し、演算装置21
に命令実行開始可を通知する。なお、スタック領域24
の状態をサブルーチンDが呼出された際の状態に戻す処
理(スタック巻戻し処理)は、SPレジスタ25に設定
されているSP値を更新することで行なわれるため、短
時間で終了する。
レジスタ退避・回復5A置26から命令実行開始可を通
知された演算波@21は、サブルーチンCの処理を、サ
ブルーチンDの呼出し命令の次の命令から再開する。こ
のサブルーチンCの処理ではレジスタ部22aが用いら
れる。一方、レジスタ退避・回復装置26は、演算装置
21への命令実行開始可通知を行なうと、SIi算装置
21から独立に且つ演算装置21の命令実行動作と並行
して、スタック領域24に退避しておいてレジスタ部2
2bの内容をレジスタ部22bに戻すレジスタ回復処理
を行なう。
次に、レジスタ退避・回復装置26によるレジスタ回復
処理の途中で、第2図に示すようにサブルーチンEの呼
出しが発生したものとする。この場合、演算装置21は
レジスタ退避・回復袋e26へのサブルーチン呼出し発
生通知を行なって待機状態に入る。一方、レジスタ回復
処理中に演算装置21からサブルーチン呼出し発生を通
知されたレジスタ退避・回復装置26は、第2図に示す
ようにレジスタ回復処理を放棄し、SPレジスタ25の
SP値を更新することにより、スタック領域24の状態
を同レジスタ回復処理(ここではレジスタ部22bの回
復処理)の開始直前の状態に戻す。以降の動作はサブル
ーチンDを呼出した場合と同様であり、レジスタ退避・
回復袋@26によるレジスタ切替え(ここではレジスタ
部22bへの切替え)並びにレジスタ退避処理(ここで
はレジスタ部22aの内容の退避)と、演算装置21に
よるサブルーチンEの処理とが行なわれる。
次に、レジスタ退避・回復装置26による上記のレジス
タ退避処理の途中でサブルーチンEの処理が終了し、第
2図に示すようにリターン命令が実行されたものとする
。この場合、演算装置21はレジスタ退避・回復装置2
6にリターン発生を通知して待機状態に入る。レジスタ
退避・回復装置26は、レジスタ退避処理中に演算装置
21からのリターン発生通知を受取るとレジスタ退避処
理を放棄し、演算装置21が利用可能なレジスタをレジ
スタ部22bからレジスタ部22aに切替えると共に、
SPレジスタ25のSP値更新処理によりスタック領域
24の状態をレジスタ退避処理(ここではレジスタ部2
2aの退避処理)の開始直前の状態に戻す。
ぞしてレジスタ退避・回復装置26は、演算装置21に
命令実行開始可を通知し、しかる後に一度放棄したレジ
スタ部22bの回復処理を改めて開始する。
一方、演算波W121は、レジスタ退避・回復装置26
からの命令実行開始可通知を受取ると、サブルーチンC
の処理を、サブルーチンEの呼出し命令の次の命令から
再開する。
次に、レジスタ退避・回復装置26によるレジスタ部2
2bの回復処理の途中でサブルーチンCの処理が終了し
、第2図に示すようにリターン命令が実行されたものと
する。この場合、演算装置21はレジスタ退避・回復装
置26にリターン発生を通知して待機状態に入る。レジ
スタ退避・回復装置26は、レジスタ回復処理途中で演
算装置21からのリターン発生通知を受取るとレジスタ
回復処理を続け、この処理が終了した後に、演R@rI
I21が利用可能なレジスタをレジスタ部22aからレ
ジスタ部22bに切替え、演算装置21に命令実行開始
可を通知する。これにより演算袋@21は、サブルーチ
ンBの処理を、サブルーチンCの呼出し命令の次の命令
から再開する。一方、レジスタ退避・回復装置26は、
演算装置21に命令実行開始可を通知するとレジスタ部
22aの回復処理を開始する。この回復処理の完了後に
サブルーチンへBの処理が終了しリターン命令が実行さ
れると、演痒装置21はレジスタ退避・回復装置26に
リターン発生を通知し、このリターン発生通知に応じて
レジスタ退避・回復装置26がレジスタ切替え(ここで
はレジスタ部22bからレジスタ部22aへの切替え)
を行なって命令実行開始可を通知するまで待機状態に入
る。そして演算装置21は、レジスタ退避・回復装置2
6から命令実行開始可を通知されると、ルーチンAの処
理を、サブルーチンBの呼出し命令の次の命令から再開
する。
なお、前記実施例では、レジスタ部をレジスタ部22a
 、 22bの2組用意した場合について説明したが、
3組以上用息することも可能である。例えばレジスタ部
22a 、 22bの他にレジスタ部22cを用意した
場合には、次のような効果を有する。
即ち前記実施例では、レジスタ22bの回復処理の途中
でサブルーチンEが呼出されると、この回復処理は放棄
されなければならなかったが、サブルーチンEで利用可
能なレジスタ部を(レジスタ部22aでなくて)レジス
タ部22cとすることで、上記の回復処理を中断し、サ
ブルーチンEからのリターン時にこの回復処理を再開す
ることが可能となる。
[発明の効果] 以上詳述したようにこの発明によれば、サブルーチン呼
出しに伴うレジスタ退避・回復処理が演算袋・置での命
令実行処理と並行して行なえるので、プログラム全体の
処理速度が著しく向上する。
【図面の簡単な説明】
第1図はこの発明を適用するデータ処理装置の一実施例
を示すブロック構成図、第2図は第1図の構成における
サブルーチン呼出し時の処理の流れを説明する図、第3
図は従来例を示すブロック構成図、第4図はサブルーチ
ン呼出し時の従来の処理の流れを説明する図である。 21・・・演算装置、22a 、 22b・・・レジス
タ部、23・・・記憶装置、24・・・スタックwA域
、25・・・SPレジスタ(スタック・ポイント・レジ
スタ)、26・・・レジスタ退避・回復装置。 出願人代理人 弁理士 鈴江武彦 第1図

Claims (1)

    【特許請求の範囲】
  1. 命令を解読して実行する演算装置を備えたデータ処理装
    置において、上記演算装置に切替え接続可能な複数組の
    レジスタ部であつて、上記演算装置に接続されることに
    より同装置の命令実行に利用される複数組のレジスタ部
    と、この複数のレジスタ部のうちの1組をサブルーチン
    呼出し時またはサブルーチンからのリターン時に上記演
    算装置に切替え接続し、上記複数組のレジスタ部のうち
    サブルーチン呼出し元のルーチンで上記演算装置に利用
    されていたレジスタ部の内容を、記憶装置上に確保され
    たスタック領域との間で退避・回復するレジスタ退避・
    回復手段とを具備し、上記レジスタ退避・回復手段によ
    るレジスタ回復/退避処理を上記演算装置から独立に行
    なうようにしたことを特徴とするレジスタ退避・回復方
    式。
JP62302655A 1987-11-30 1987-11-30 レジスタ退避・回復方式 Pending JPH01142943A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP62302655A JPH01142943A (ja) 1987-11-30 1987-11-30 レジスタ退避・回復方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62302655A JPH01142943A (ja) 1987-11-30 1987-11-30 レジスタ退避・回復方式

Publications (1)

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

Family

ID=17911599

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62302655A Pending JPH01142943A (ja) 1987-11-30 1987-11-30 レジスタ退避・回復方式

Country Status (1)

Country Link
JP (1) JPH01142943A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7237092B2 (en) 2001-01-18 2007-06-26 Infineon Technologies Ag Microprocessor circuit for portable data carriers and method for operating the circuit
KR20130111343A (ko) * 2012-03-29 2013-10-10 가부시키가이샤 한도오따이 에네루기 켄큐쇼 프로세서 및 그 구동 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7237092B2 (en) 2001-01-18 2007-06-26 Infineon Technologies Ag Microprocessor circuit for portable data carriers and method for operating the circuit
KR20130111343A (ko) * 2012-03-29 2013-10-10 가부시키가이샤 한도오따이 에네루기 켄큐쇼 프로세서 및 그 구동 방법
JP2013229019A (ja) * 2012-03-29 2013-11-07 Semiconductor Energy Lab Co Ltd プロセッサ、及びその駆動方法

Similar Documents

Publication Publication Date Title
US6820155B1 (en) Interruption managing device and interruption managing method
JPS6364144A (ja) 記憶装置間デ−タ転送方式
JPH01142943A (ja) レジスタ退避・回復方式
JPH04373026A (ja) プログラム中断方法
JPH04288625A (ja) マイクロコンピュータ
JP3838182B2 (ja) プロセッサにおける割込み発生時のレジスタ退避方法および装置
JPH01217635A (ja) レジスタ退避方式
JPH02187829A (ja) ディジタル信号処理プロセッサ
JP2979108B2 (ja) データ処理装置における非同期処理の同期化方式
JPS61210440A (ja) レベルトレ−ス装置
JPS6027032A (ja) プログラム起動方法
JPH04155532A (ja) タスク切替方式
JP3079238B2 (ja) デバッグ装置
JPH04138529A (ja) オブジェクト互換維持方法
JPS5843043A (ja) デ−タ処理装置の呼び出し命令方式
JPH08166887A (ja) 割込み処理からの復帰方法
JPH03164940A (ja) 割込み時期を複数化した計算機
JPH02113363A (ja) マルチプロセッサシステムにおけるタイムスライス制御方式
JPH0319033A (ja) システム中断・再開方式
JPH0333954A (ja) 情報処理装置
JPH0764802A (ja) リアルタイムシステムのシミュレーション装置
JPH06169323A (ja) パケット交換モジュールの現用/予備切り替え処理方式
JPH04140851A (ja) 情報処理装置の診断方式
JPH03172937A (ja) 非同期事象処理ハンドリング装置
JPH047642A (ja) マイクロコンピュータ