JPH04186432A - データ処理方式 - Google Patents

データ処理方式

Info

Publication number
JPH04186432A
JPH04186432A JP31670790A JP31670790A JPH04186432A JP H04186432 A JPH04186432 A JP H04186432A JP 31670790 A JP31670790 A JP 31670790A JP 31670790 A JP31670790 A JP 31670790A JP H04186432 A JPH04186432 A JP H04186432A
Authority
JP
Japan
Prior art keywords
general
instruction
subroutine
register
purpose register
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
JP31670790A
Other languages
English (en)
Inventor
Yutaka Murata
裕 村田
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP31670790A priority Critical patent/JPH04186432A/ja
Publication of JPH04186432A publication Critical patent/JPH04186432A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

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

Description

【発明の詳細な説明】 [産業上の利用分野] この発明はデータ処理方式に係わり、特に計算機のプロ
グラム実行の高速化に関するものである。
[従来の技術] 計算機で実行されるプログラムは多くの場合、本体とな
るメインルーチンおよび個別処理を行うサブルーチンか
ら構成されている。プログラム実行に際してはメインル
ーチンからサブルーチンを呼び出して制御を渡し、サブ
ルーチンでの処理が終了したらメインルーチンへ制御を
戻す。また、サブルーチンがさらにサブルーチンを呼び
呂すことも一般的である。
サブルーチンに制御を移す場合には、サブルーチンを呼
び出す側のプログラムと呼び出されたサブルーチンとの
独立性を保証するために、呼び出し側のプログラムが使
用する情報(汎用レジスタの内容)を主記憶上に退避し
、その後サブルーチン本体の処理を行なう。サブルーチ
ンでの処理が終了すると、主記憶上に退避している情報
を汎用レジスタへ復帰させてサブルーチン呼び出し側の
プログラムを再開させる。
サブルーチンコール、リターンに伴うこれらの手続きに
は予め規定があり、それに基づいてプログラミングする
のが一般的である。この手続きについては、例えば「ア
センブラプログラミング入門」 (金山裕著、近代科学
社刊)に述べられているような方式がある。
第4図はサブルーチンコールとリターンの手続きを簡単
に示す図であり、サブルーチンコールにおけるレジスタ
の退避とサブルーチンリターンにおけるレジスタの復帰
の実施方法を示している。
この方式を適用する計算機は、プログラムが使用できる
汎用レジスタを16個備えており、0番から15番まで
の番号が付けられている。図において、汎用レジスタ(
以後GRまたは単にRという略称を用いる場合もある)
14はサブルーチンからの戻り先番地(すなわち呼び出
し側プログラムがサブルーチンに制御を移すための分岐
命令の次の命令アドレス)、GR15は呼び出されるサ
ブルーチンの入り口の番地が格納されている。その他の
汎用レジスタはプログラムの中で自由に使用することが
できる。
呼び出し側プログラムは、LOAD (ロード)命令で
R15にサブルーチンの入り口のアドレスをロードした
後、BRANCH(分岐)命令でR14に次命令アドレ
ス(サブルーチンからの戻り番地)を設定してR15で
指定されるサブルーチンへ分岐する。サブルーチンでは
、STRMUL(ストアマルチプル:複数レジスタのス
トア)命令で汎用レジスタの内容を主記憶上の指定され
た退避領域に退避する。この命令は、退避する汎用レジ
スタの始点番号と終点番号を指定してその範囲内のレジ
スタを指定順に格納する命令である。
退避した後、サブルーチン本体の処理に移る。次に、本
体の処理が終了したら、サブルーチンの最後でLDMU
L (ロードマルチプル:複数レジスタのロード)命令
により退避した情報を汎用レジスタに復帰させた後、B
R(無条件分岐)命令でR14で指定される読み出し側
プログラムの戻り番地に分岐して呼び出し側プログラム
を再開する。LDMUL命令は、汎用レジスタの始点番
号と終点番号を指定してその範囲内のレジスタに対して
指定されたメモリ領域から指定順にデータをロードする
命令である。
次に、このサブルーチンコール、リターンにおける汎用
レジスタ内情報の退避および復帰に関する計算機の中央
処理装置の動作を従来例について説明する。第3図は、
例えばrLSI技術の助けを借りてパイプライン方式を
強化した最高速の商用汎用コンピュータ」 (日経エレ
クトロニクス1979.12.24)に示されるような
従来の中央処理装置を表している。ただし、図は本願を
説明する便宜を考慮して一部変更を加えている。図中、
(1)は中央処理装置で実行する命令を格納している命
令レジスタ、(2)は命令レジスタ(1)に格納されて
いる命令をデコードして命令実行のための制御信号を生
成する命令デコーダ、(3)は命令デコーダ(2)の出
力を受は取って演算を実行する演算実行部、(4)は命
令のオペランドアドレスを生成するアドレス生成部、(
5)は汎用レジスタ、(7)は演算実行部(3)の制御
により主記憶とのデータ転送を行なうメモリインタフェ
ース、(8)はバス、(13)は主記憶である。
次に動作について説明する。
BRANCH命令によりサブルーチンに制御が移ると、
サブルーチンの先頭でSTRMUL命令で汎用レジスタ
の退避を行なう。中央処理装置は、命令レジスタ(1)
内にSTRMUL命令がセットされると、命令デコーダ
(2)でデコードして演算実行部(3)にSTRMUL
命令の実行を指示する。演算実行部(3)は、STRM
UL命令で指定された汎用レジスタ番号とメモリアドレ
スに従って、汎用レジスタの内容をメモリインタフェー
ス(7)を介して主記憶(13)上へ順次格納して行く
。サブルーチンでの処理が終了して退避情報を復帰させ
る段階では、中央処理装置は命令レジスタ(1)内にL
DMUL命令がセットされると、命令デコーダ(2)で
デコードして演算実行部(:3)にLDMUL命令の実
行を指示する。演算実行部(3)は、LDMUL命令で
指定された汎用レジスタ番号とメモリアドレスに従って
主記憶(13)からメモリインタフェース(7)を介し
て汎用レジスタ(5)に順次データをロードする。この
動作により呼び出し側プログラムの汎用レジスタの内容
が復帰される。この際、呼び出し側プログラムへの戻り
番地はGR14に設定される。次に、命令レジスタ(1
)にセットされたBR命令をデコードしてGR14で指
定される戻り番地へ分岐し、呼び出し側プログラムに制
御を戻す。
[発明が解決しようとする課題] 従来の計算機の中央処理装置は以上のように構成され、
処理されているので、サブルーチンコール、リターンに
伴って汎用レジスタの退避、復帰を行なうためにそれぞ
れ最大でレジスタ数分の主記憶アクセスを行なうことに
なり、サブルーチンを多用するプログラムではコール、
リターン処理に多くの時間がかかってしまうという問題
点があった。
この発明は上記のような問題点製解決するためになされ
たもので、サブルーチンからのリターンに際して汎用レ
ジスタの復帰処理を高速化することによって、サブルー
チンでのオーバーヘッドを削減するデータ処理方式を得
ることを目的とする。
[課題を解決するための手段] この発明に係るデータ処理方式は、汎用レジスタを2以
上の複数セット備え、第nの汎用レジスタセットを使用
しているとき、サブルーチンコール時の汎用レジスタの
主記憶上への退避後に使用レジスタを第n+1の汎用レ
ジスタセットに切り換えるとともに、第n+1の汎用レ
ジスタセットを使用しているとき、サブルーチンリター
ン時の汎用レジスタ復帰に際して使用レジスタを第nの
汎用レジスタセットに切り換えるようにしたものである
[作用] この発明における汎用レジスタセットの切り換え制御は
、第nの汎用レジスタセットを使用しているとき、ST
RMtJL命令を実行した後に第n+1の汎用レジスタ
セットに切り換えるとともに、第n+1の汎用レジスタ
セットを使用しているとき、LDMUL命令を実行する
際に第nの汎用レジスタセットに切り換えるので、サブ
ルーチンリターン時のLDMUL命令では主記憶へのア
クセスを省略することが可能となる。
[実施例] 以下、この発明の一実施例を図について説明する。
第1図において、(1)は処理する命令を格納する命令
レジスタ、(2)は命令レジスタ(1)に格納されてい
る命令をデコードして命令実行に必要な制御信号を生成
する命令デコーダ、(3)は命令デコーダ(2)の制御
信号を受けて命令の実行制御を行なう演算実行部、(4
)は命令のオペランドアドレスを生成するアドレス生成
部、(51)は第1の汎用レジスタセット、(52)は
第2の汎用レジスタセット、(6)は現在使用している
汎用レジスタセットを指定するポインタ、(7)は主記
憶との間のデータ転送を行なうメモリインタフェース、
(8)はバス、(91)はSTRMUL命令で主記憶上
に退避した汎用レジスタの範囲を記憶するレジスタ、(
101)はSTRMUL命令で格納を行なった主記憶の
アドレスを記憶するレジスタ、(11)および(12)
は比較器、(13)は主記憶である。
次に動作について説明する。
まず、最初の状態として、ポインタ(6)は第1の汎用
レジスタセット(51)を使用することを指定している
。サブルーチンの入り口でSTRMUL命令を実行する
ときの動作について以下に説明する。命令レジスタ(1
)にSTRMUL命令が設定されると、命令デコーダ(
2)がこれを解読し、S T RMU L命令が主記憶
(13)上に退避する汎用レジスタの範囲を命令語から
切り出してレジスタ(91)にセットするとともに、ア
ドレス生成部(4)、演算実行部(3′)に対して制御
信号を与える。アドレス生成部(4)は、制御信号に従
って退避するアドレスを生成して演算実行部(3)に渡
すとともに、レジスタ(101)にセットする。演算実
行部(3)は、制御信号に従ってポインタ(6)で指定
された第1の汎用レジスタセット(51)から命令で指
定された範囲の汎用レジスタをバス(8)、メモリイン
タフェース(7)を介して主記憶(13)へ格納する。
これと同時に、第2の汎用レジスタセット(52)の同
一レジスタ位置へもバス(8)を介してデータを格納す
る。汎用レジスタの格納が終了したら、演算実行部(3
)はポインタ(6)を第2の汎用レジスタセット(52
)を指定するように変更する。STRMUL命令の実行
が完了したら、ポインタ(6)の指定に従って第2の汎
用レジスタセット(52)を使用して命令を実行する。
なお、第1の汎用レジスタセット(51)をポインタ(
6)が指定しているときは、第2の汎用レジスタセット
(52)の内容は変更しない。また、第2の汎用レジス
タセット(52)をポインタ(6)が指定しているとき
は、第1の汎用レジスタセット(51)の内容は変更し
ない。
次に、サブルーチンの最後でLDMUL命令により汎用
レジスタの内容を復帰させるときの制御について説明す
る。命令レジスタ(1)にLDMUL命令が設定される
と、命令デコーダ(2)がこれを解読し、LDMUL命
令で復帰する汎用レジスタの範囲を切り出して、レジス
タ(91)に格納されている。STRMUL命令で退避
した汎用レジスタの範囲と比較器(11)により比較す
るとともに、アドレス生成部(4)および演算実行部(
3)に対して制御信号を与える。アドレス生成部(4)
は、制御信号に従って復帰するアドレスを生成して演算
実行部(3)に渡すとともに、レジスタ(101)に格
納されている。STRMUL命令での退避アドレスとの
比較を比較器(12)により行なう。演算実行部(3)
は上記2種類の比較結果により動作が異なる。まず、汎
用レジスタの範囲の比較と退避および復帰アドレスとの
比較がいずれも一致した場合には、第2の汎用レジスタ
セット(52)を指定しているポインタ(6)を第1の
汎用レジスタセット(51)を指定するように変更させ
る。このとき、汎用レジスタヘロードするための主記憶
アクセスは行わない。次に、いずれか一方、あるいは両
方の比較が一致しなかった場合には、第2の汎用レジス
タセット(52)を指定しているポインタ(6)を第1
の汎用レジスタセット(51)を指定するように変更さ
せるとともに、アドレス生成部(4)で生成されたアド
レスを用いて主記憶(13)から命令語で指定された範
囲の汎用レジスタにメモリインタフェース(7)を介し
てデータをロードする。LDMUL命令の実行完了後は
、ポインタ(6)の指定に従って第1の汎用レジスタセ
ット(51)を使用して命令を実行する。
次に他の実施例について説明する。
第2図は、第1図に示した実施例に加えて汎用レジスタ
を3以上の複数セット備えることによって、サブルーチ
ンコールが階層的に行われるときのサブルーチンリター
ン処理の高速化を実現する実施例について示している。
なお、図では汎用レジスタセットの数が3の場合につい
て示しているが、4以上の場合についても前記実施例に
対して同様の拡張を行うことによって実現可能である。
図において、(53)は第3の汎用レジスタセット、(
61)はポインタ、(92)はSTRMUL命令で主記
憶(13)上に退避した汎用レジスタの範囲を記憶する
第2のレジスタ、(102)はSTRMUL命令で格納
を行なった主記憶(13)のアドレスを記憶する第2の
レジスタである。
まず、最初の状態として、ポインタ(61)は第1の汎
用レジスタセット(51)を使用することを指定してい
る。サブルーチンの入り口でSTRMUL命令を実行す
るときの動作は、STRMUL命令が主記憶(13)上
に退避する汎用レジスタの範囲を命令語から切り畠して
レジスタ(91)にセットすること、アドレス生成部(
4)が退避するアドレスをレジスタ(101)にセット
すること、および演算実行部(3)が第2および第3の
汎用レジスタセット(52)。
(53)の同一レジスタ位置へもバス(8)を介してデ
ータを格納することを除いては前記第1の実施例に示し
たものと同様である。STRMUL命令の実行が終了す
るとサブルーチン内部処理に入るが、このとき更にサブ
ルーチンコールがあると、そのサブルーチンの入り口で
再度STRMUL命令を実行する。この場合は、前述の
ようなSTRMUL命令の処理を行なうが、退避する汎
用レジスタの範囲をレジスタ(92)にセットし、退避
するアドレスをレジスタ(102)にセットし、第3の
汎用レジスタセット(53)に第2の汎用レジスタセッ
ト(52)の内容を書込み、ポインタ(61)は第3の
汎用レジスタセット(53)を指定する。
次に、サブルーチンの最後でLDMUL命令により汎用
レジスタの内容を復帰させるときの制御について説明す
る。基本的な動作は前述の通りであるが、復帰する汎用
レジスタの範囲の比較対象はレジスタ(92)であり、
復帰するデータのアドレス比較対象はレジスタ(102
)である。演算実行部(3)は上記2種類の比較結果に
より動作が異なる。まず、汎用レジスタの範囲の比較と
退避および復帰アドレスとの比較がいずれも一致した場
合には、第3の汎用レジスタ(53)を指定しているポ
インタ(61)を第2の汎用レジスタセット(52)を
指定するように変更させる。
このとき、汎用レジスタヘロードするための主記憶アク
セスは行わない。次に、いずれか一方、あるいは両方の
比較が一致しなかった場合には、第3の汎用レジスタ(
53)を指定しているポインタ(61)を第2の汎用レ
ジスタセット(52)を指定するように変更させるとと
もに、アドレス生成部(4)で生成されたアドレスを用
いて主記憶(13)から命令語で指定された範囲の汎用
レジスタにメモリインタフェース(7)を介してデータ
をロードする。LDMUL命令の実行完了後はポインタ
(61)の指定に従って第2の汎用レジスタセット(5
2)を使用して命令を実行する。
この状態で更にサブルーチンのリターンに伴うLDMU
L命令をデコードすると、上記と同様の処理を行って、
ポインタ(61)の指定を第2の汎用レジスタセット(
52)から第1の汎用レジスタセット(51)に切り換
える。
[発明の効果] 以上のように、この発明によれば、2以上の複数の汎用
レジスタセットを備えて、サブルーチンコール、リター
ン毎に使用するレジスタセットを切り換え、リターンに
伴う主記憶アクセスを省略できるようにしたので、サブ
ルーチンのリターン処理が高速化されるという効果があ
る。
【図面の簡単な説明】
第1図はこの発明の一実施例を示すデータ処理装置の基
本構成図、第2図はこの発明の他の実施例を示すデータ
処理装置の基本構成図、第3図は従来のデータ処理装置
を示す一基本構成図、第4図はサブルーチンコールとリ
ターンの手続きを簡単に示す図である。 (1)は命令レジスタ、(2)は命令デコーダ、(3)
は演算実行部、(4)はアドレス生成部、(51)〜(
53)は第1〜第3の汎用レジスタセット、(6)、(
61)はポインタ、(7)はメモリインタフェース、(
8)はバス、(91) 、 (92) 、 (101)
 、 (102)はレジスタ、(11)、(12)は比
較器。 なお、図中、同一符号は同一、又は相当部分を示す。 代理人  弁理士  宮 園 純 − 第1図 13図

Claims (1)

  1. 【特許請求の範囲】 プログラム実行に際して当該プログラムが使用する情報
    を保持する汎用レジスタを有し、主記憶内に格納された
    プログラムを取り込んで実行するとともに、サブルーチ
    ンコール時には汎用レジスタの内容を主記憶上に退避す
    る計算機の中央処理装置において、 上記汎用レジスタを複数セット具備し、第nの汎用レジ
    スタセットを使用しているとき、サブルーチンコール時
    の汎用レジスタの主記憶上への退避後に使用レジスタを
    第n+1の汎用レジスタセットに切り換えるとともに、
    第n+1の汎用レジスタセットを使用しているとき、サ
    ブルーチンリターン時の汎用レジスタ復帰に際して使用
    レジスタを第nの汎用レジスタセットに切り換えるよう
    にしたことを特徴とするデータ処理方式。
JP31670790A 1990-11-21 1990-11-21 データ処理方式 Pending JPH04186432A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP31670790A JPH04186432A (ja) 1990-11-21 1990-11-21 データ処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP31670790A JPH04186432A (ja) 1990-11-21 1990-11-21 データ処理方式

Publications (1)

Publication Number Publication Date
JPH04186432A true JPH04186432A (ja) 1992-07-03

Family

ID=18080008

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31670790A Pending JPH04186432A (ja) 1990-11-21 1990-11-21 データ処理方式

Country Status (1)

Country Link
JP (1) JPH04186432A (ja)

Similar Documents

Publication Publication Date Title
US5386563A (en) Register substitution during exception processing
JPH10505444A (ja) 処理システム、プロセッサ、命令ストリーム格納用メモリ及びコンパイラ
JPH10207717A (ja) マイクロコンピュータ
JPH03233630A (ja) 情報処理装置
JPS6212529B2 (ja)
JPH04186432A (ja) データ処理方式
JPH0414376B2 (ja)
JPH0377137A (ja) 情報処理装置
JP2883488B2 (ja) 命令処理装置
JP2506591B2 (ja) 補助処理装置
JPH0279122A (ja) 浮動小数点演算機構
JP4116752B2 (ja) 計算機とその制御方法
JPS638841A (ja) 割込み受取り装置
JPS6143347A (ja) ベクトル命令シミユレ−シヨン方法
JPH0259829A (ja) マイクロコンピュータ
JPH01175632A (ja) マイクロプログラム制御装置
JPH0198023A (ja) 条件付きサブルーチン呼出し方式
JPH03127171A (ja) ベクトル処理装置
JPS6337439B2 (ja)
JPH06222935A (ja) 情報処理装置および情報処理装置によるタスク切替方法
JPH03256127A (ja) マイクロプロセッサシステム
JPH04293159A (ja) ベクトルデータ処理装置
JPS6148746B2 (ja)
JPH04245333A (ja) 情報処理装置
JPS6234238A (ja) マイクロプロセツサ