JPH02173826A - データ処理装置 - Google Patents
データ処理装置Info
- Publication number
- JPH02173826A JPH02173826A JP63331762A JP33176288A JPH02173826A JP H02173826 A JPH02173826 A JP H02173826A JP 63331762 A JP63331762 A JP 63331762A JP 33176288 A JP33176288 A JP 33176288A JP H02173826 A JPH02173826 A JP H02173826A
- Authority
- JP
- Japan
- Prior art keywords
- subroutine
- registers
- register
- contents
- data
- 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
Links
- 238000010586 diagram Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 238000006073 displacement reaction Methods 0.000 description 1
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、主記憶装置及び複数のレジスタを有し、複数
階層のサブルーチンへ分岐するプログラムの実行が可能
であって、各階層のサブルーチンへ分岐する都度、レジ
スタの内容を主記憶装置へ退避するデータ処理装置に関
する。
階層のサブルーチンへ分岐するプログラムの実行が可能
であって、各階層のサブルーチンへ分岐する都度、レジ
スタの内容を主記憶装置へ退避するデータ処理装置に関
する。
(従来の技術〕
第2図は、例えば?IC68000,VAX−11等ノ
マイクロプロセッサを備えたマイクロコンピュータの構
成を示すブロック図であって、図中1はMPUである。
マイクロプロセッサを備えたマイクロコンピュータの構
成を示すブロック図であって、図中1はMPUである。
MPUIは、RAM、ROM等からなる主記憶装置2と
接続され、MPUI及び主記憶装置2は、プログラム、
データを読み込む入力装置3及び演算結果等を出力する
出力装置4と接続される。MPUIは、MPUIに接続
される各部を制御する制御装置11と、プログラム及び
データに基づき演算、論理演算を行う演算装置12とが
らなり、演算データ及びアドレスデータを記憶する汎用
レジスタ、プログラム・カウンタ、スタック・ポインタ
等の複数のレジスタを備える。主記憶装置2は、ワーキ
ングRAM内に、プログラムを記憶する作業領域21と
、レジスタの内容等のデータを一時的に記憶するスタッ
ク領域22とを設けている。
接続され、MPUI及び主記憶装置2は、プログラム、
データを読み込む入力装置3及び演算結果等を出力する
出力装置4と接続される。MPUIは、MPUIに接続
される各部を制御する制御装置11と、プログラム及び
データに基づき演算、論理演算を行う演算装置12とが
らなり、演算データ及びアドレスデータを記憶する汎用
レジスタ、プログラム・カウンタ、スタック・ポインタ
等の複数のレジスタを備える。主記憶装置2は、ワーキ
ングRAM内に、プログラムを記憶する作業領域21と
、レジスタの内容等のデータを一時的に記憶するスタッ
ク領域22とを設けている。
次に、サブルーチンへ分岐する動作につき説明する。M
C68000等のBSR(Branch to 5ub
routine)命令によってサブルーチンへ分岐する
際、BS+?命令の直後の命令ステップのアドレスをス
タック領域22に格納し、プログラムカウンタに(現在
のプログラムカウンタ)+(ディスプレースメント)を
格納する。その際、サブルーチン呼び出し側のルーチン
がサブルーチンを呼び出す時点で使用している全レジ・
スタの内容を主記憶装置2へ退避する。
C68000等のBSR(Branch to 5ub
routine)命令によってサブルーチンへ分岐する
際、BS+?命令の直後の命令ステップのアドレスをス
タック領域22に格納し、プログラムカウンタに(現在
のプログラムカウンタ)+(ディスプレースメント)を
格納する。その際、サブルーチン呼び出し側のルーチン
がサブルーチンを呼び出す時点で使用している全レジ・
スタの内容を主記憶装置2へ退避する。
一方、VAX−11(7)CALLG命令によッテサブ
ルーチンヘ分岐する際、CALLG命令の直後の命令ス
テップのアドレスをスタック領域22に格納し、プログ
ラムカウンタにサブルーチンのアドレスを格納する。そ
の際、サブルーチンで使用するレジスタを指定している
セーブマスクの内容に従って、サブルーチンで使用する
全レジスタの内容をスタック領域22へ退避する。
ルーチンヘ分岐する際、CALLG命令の直後の命令ス
テップのアドレスをスタック領域22に格納し、プログ
ラムカウンタにサブルーチンのアドレスを格納する。そ
の際、サブルーチンで使用するレジスタを指定している
セーブマスクの内容に従って、サブルーチンで使用する
全レジスタの内容をスタック領域22へ退避する。
従来のマイクロコンピュータは、以上のように構成され
ているので、MPUとしてMC68000を備えている
場合は、分岐したサブルーチンで使用するレジスタの種
類に関係なく、サブルーチン呼び出し倒のルーチンで使
用している全レジスタの内容を主記憶装置へ退避し、一
方、VAX−11を備えている場合は、呼び出し側のル
ーチンで使用しているレジスタの種類に関係なく分岐し
たサブルーチンで使用する全レジスタの内容を主記憶装
置へ退避しなければならないため、いずれのMPUの場
合にも不必要な退避が行われて処理速度の向上を妨げる
という問題があった。
ているので、MPUとしてMC68000を備えている
場合は、分岐したサブルーチンで使用するレジスタの種
類に関係なく、サブルーチン呼び出し倒のルーチンで使
用している全レジスタの内容を主記憶装置へ退避し、一
方、VAX−11を備えている場合は、呼び出し側のル
ーチンで使用しているレジスタの種類に関係なく分岐し
たサブルーチンで使用する全レジスタの内容を主記憶装
置へ退避しなければならないため、いずれのMPUの場
合にも不必要な退避が行われて処理速度の向上を妨げる
という問題があった。
本発明はこのような問題を解決するためになされたもの
であって、サブルーチンへの分岐時に、必要なレジスタ
のみの内容を主記憶装置へ退避して処理速度を高速化す
るデータ処理装置の提供を目的とする。
であって、サブルーチンへの分岐時に、必要なレジスタ
のみの内容を主記憶装置へ退避して処理速度を高速化す
るデータ処理装置の提供を目的とする。
本発明のデータ処理装置は、サブルーチンへ分岐する際
、実行中の現ルーチンで使用しているレジスタを主記憶
装置に記憶する手段と、サブルーチンへ分岐する都度、
現ルーチンまでの全階層のルーチンにて使用したレジス
タを記憶するレジスタ記憶手段と、サブルーチンへ分岐
する都度、該サブルーチンで使用するレジスタを指定す
るレジスタ指定手段と、レジスタ指定手段が指定するレ
ジスタとレジスタ記憶手段が記憶しているレジスタとに
基づき、両方に共通するレジスタを検出する手段と、検
出した共通レジスタのみの内容を主記憶装置へ退避する
手段とを備えたことを特徴とする。
、実行中の現ルーチンで使用しているレジスタを主記憶
装置に記憶する手段と、サブルーチンへ分岐する都度、
現ルーチンまでの全階層のルーチンにて使用したレジス
タを記憶するレジスタ記憶手段と、サブルーチンへ分岐
する都度、該サブルーチンで使用するレジスタを指定す
るレジスタ指定手段と、レジスタ指定手段が指定するレ
ジスタとレジスタ記憶手段が記憶しているレジスタとに
基づき、両方に共通するレジスタを検出する手段と、検
出した共通レジスタのみの内容を主記憶装置へ退避する
手段とを備えたことを特徴とする。
本発明のデータ処理装置は、サブルーチンへ分岐する際
、実行中の現ルーチンで使用しているレジスタを主記憶
装置に記憶するとともに、現ルーチンまでの全階層のル
ーチンにて使用したレジスタを記憶し、このレジスタと
、サブルーチンで使用すべく指定されたレジスタとに基
づき、両方に共通するレジスタを検出し、共通して使用
するレジスタのみの内容を主記憶装置へ退避する。
、実行中の現ルーチンで使用しているレジスタを主記憶
装置に記憶するとともに、現ルーチンまでの全階層のル
ーチンにて使用したレジスタを記憶し、このレジスタと
、サブルーチンで使用すべく指定されたレジスタとに基
づき、両方に共通するレジスタを検出し、共通して使用
するレジスタのみの内容を主記憶装置へ退避する。
以下、本発明をその実施例を示す図面に基づき詳述する
。
。
第2図は、本発明に係るマイクロコンピュータの構成を
示すブロック図であって、図中1はMPUである。MP
UIは、RAM、ROM等からなる主記憶装置2と接続
され、MPUI及び主記憶装置2は、プログラム、デー
タを読み込む入力装置3及び演算結果等を出力する出力
装置4と接続される。MPUIは、MPUIに接続され
る各部を制御する制御装置11と、プログラム及びデー
タに基づき演算、論理演算を行う演算装置12とからな
り、演算データ及びアドレスデータを記憶する汎用レジ
スタ、プログラム・カウンタ、スタック・ポインタ及び
使用中及び使用予定レジスタを記憶するレジスタの複数
のレジスタを備える。主記憶装置2は、ワーキングRA
Mに、プログラムを記憶する作業領域21と、レジスタ
の内容、使用レジスタのリスト等のデータを一時的に記
憶するスタック領域22とを設けている。
示すブロック図であって、図中1はMPUである。MP
UIは、RAM、ROM等からなる主記憶装置2と接続
され、MPUI及び主記憶装置2は、プログラム、デー
タを読み込む入力装置3及び演算結果等を出力する出力
装置4と接続される。MPUIは、MPUIに接続され
る各部を制御する制御装置11と、プログラム及びデー
タに基づき演算、論理演算を行う演算装置12とからな
り、演算データ及びアドレスデータを記憶する汎用レジ
スタ、プログラム・カウンタ、スタック・ポインタ及び
使用中及び使用予定レジスタを記憶するレジスタの複数
のレジスタを備える。主記憶装置2は、ワーキングRA
Mに、プログラムを記憶する作業領域21と、レジスタ
の内容、使用レジスタのリスト等のデータを一時的に記
憶するスタック領域22とを設けている。
第1図は、前記レジスタ群を模式的に示す概念図であっ
て、第1図fa)は、演算データ及びアドレスデータを
記憶する16個の汎用レジスタRO−R15プログラム
・カウンタPC,スタック・ポインタSPである。また
、第1図中)は、汎用レジスタRO〜l?15に各ビッ
トを対応させ、サブルーチン呼出時における呼出側のレ
ジスタ使用、不使用の状況を“0”、“1”で記憶する
16ビツトからなる使用状況レジスタRAである。
て、第1図fa)は、演算データ及びアドレスデータを
記憶する16個の汎用レジスタRO−R15プログラム
・カウンタPC,スタック・ポインタSPである。また
、第1図中)は、汎用レジスタRO〜l?15に各ビッ
トを対応させ、サブルーチン呼出時における呼出側のレ
ジスタ使用、不使用の状況を“0”、“1”で記憶する
16ビツトからなる使用状況レジスタRAである。
次に、複数階層のサブルーチンへ分岐する動作につき説
明する。なお、本実施例では、メインルーチンでレジス
タRO,R1,R3、第1階層のサブルーチン5tlB
1でレジスタI?1.R2,l?4、第2階層のサブル
ーチン5UB2でレジスタRO,R3,l?5を使用す
る。
明する。なお、本実施例では、メインルーチンでレジス
タRO,R1,R3、第1階層のサブルーチン5tlB
1でレジスタI?1.R2,l?4、第2階層のサブル
ーチン5UB2でレジスタRO,R3,l?5を使用す
る。
呼出側ルーチンに対応する使用状況レジスタRAには初
期値として“0′が書き込まれている。第1階層のサブ
ルーチン5IJBIを呼び出すと、サブルーチン5UB
Iのアドレスと共に、メインルーチンにて現在使用中の
レジスタRO,R1,R3に対応するビットを1”で表
したデータリストが呼出命令のオペランドとして与えら
れる。このデータリストと使用状況レジスタRAとの論
理和をとり、演算の結果、即ち、呼出時にメインルーチ
ンで使用中のレジスタRO,R1,R3を1”で表した
レジスタリストを使用状況レジスタRAに書き込む。ま
た、サブルーチン5UBIの冒頭では、サブルーチン5
UBIで使用するレジスタR1,R2,R4に対応する
ビットを1”で表したデータリストが与えられる。使用
状況レジスタRAとデータリストとの論理積をとり、演
算結果、即ちサブルーチン5tlB1とメインルーチン
とが共通して使用するレジスタ、本実施例ではレジスタ
R1の内容を主記憶装置2のスタック領域22へ退避す
る。さらに、使用状況レジスタRAの値をスタック領域
22に格納する。続いて、現在のPCの値をスタック領
域22へ退避した後、サブルーチン5UBIのアドレス
をPCに格納して第1階層のサブルーチン5IIBIの
呼出が完了する。
期値として“0′が書き込まれている。第1階層のサブ
ルーチン5IJBIを呼び出すと、サブルーチン5UB
Iのアドレスと共に、メインルーチンにて現在使用中の
レジスタRO,R1,R3に対応するビットを1”で表
したデータリストが呼出命令のオペランドとして与えら
れる。このデータリストと使用状況レジスタRAとの論
理和をとり、演算の結果、即ち、呼出時にメインルーチ
ンで使用中のレジスタRO,R1,R3を1”で表した
レジスタリストを使用状況レジスタRAに書き込む。ま
た、サブルーチン5UBIの冒頭では、サブルーチン5
UBIで使用するレジスタR1,R2,R4に対応する
ビットを1”で表したデータリストが与えられる。使用
状況レジスタRAとデータリストとの論理積をとり、演
算結果、即ちサブルーチン5tlB1とメインルーチン
とが共通して使用するレジスタ、本実施例ではレジスタ
R1の内容を主記憶装置2のスタック領域22へ退避す
る。さらに、使用状況レジスタRAの値をスタック領域
22に格納する。続いて、現在のPCの値をスタック領
域22へ退避した後、サブルーチン5UBIのアドレス
をPCに格納して第1階層のサブルーチン5IIBIの
呼出が完了する。
さらに、第1階層のサブルーチン5UBIから第2階層
のサブルーチン5tlB2を呼び出す場合につき説明す
る。使用状況レジスタRAには、メインルーチンで使用
中のレジスタRO,R1,R3のビットフィールドに“
1”が書き込まれている。第2階層のサブルーチン80
82を呼び出すと、サブルーチン5UB2のアドレスと
共に、サブルーチン5IIBIにて現在使用中のレジス
タI?l、R2,R4に対応するビットを1”で表した
データリストが呼出命令のオペランドとして与えられる
。このデータリストと使用状況レジスタRAとの論理和
をとり、演算の結果、即ち、呼出時までにメインルーチ
ン及びサブルーチン5UBIで使用中のレジスタRO,
!?1.R2,R3,R4を“1”で表したレジスタリ
ストを使用状況レジスタRAに書き込む。また、サブル
ーチン5UB2の冒頭では、サブルーチン5UB2で使
用するレジスタ170. R3,R5に対応するビット
を“1”で表したデータリストが与えられる。使用状況
レジスタR^とデータリストとの論理積をとり、演算結
果、即ち、メインルーチン及びサブルーチン5UBIと
サブルーチン5UB2とが共通して使用するレジスタ、
本実施例ではレジスタtlO,+13の内容を主記憶装
置2のスタック領域22へ退避する。さらに、使用状況
レジスタRAの値をスタック領域22に格納する。続い
て、現在のPCの値をスタック領域22へ退避した後、
サブルーチン5tlB2のアドレスをPCに格納して第
2階層の号ブルーチン5UB2の呼出が完了する。
のサブルーチン5tlB2を呼び出す場合につき説明す
る。使用状況レジスタRAには、メインルーチンで使用
中のレジスタRO,R1,R3のビットフィールドに“
1”が書き込まれている。第2階層のサブルーチン80
82を呼び出すと、サブルーチン5UB2のアドレスと
共に、サブルーチン5IIBIにて現在使用中のレジス
タI?l、R2,R4に対応するビットを1”で表した
データリストが呼出命令のオペランドとして与えられる
。このデータリストと使用状況レジスタRAとの論理和
をとり、演算の結果、即ち、呼出時までにメインルーチ
ン及びサブルーチン5UBIで使用中のレジスタRO,
!?1.R2,R3,R4を“1”で表したレジスタリ
ストを使用状況レジスタRAに書き込む。また、サブル
ーチン5UB2の冒頭では、サブルーチン5UB2で使
用するレジスタ170. R3,R5に対応するビット
を“1”で表したデータリストが与えられる。使用状況
レジスタR^とデータリストとの論理積をとり、演算結
果、即ち、メインルーチン及びサブルーチン5UBIと
サブルーチン5UB2とが共通して使用するレジスタ、
本実施例ではレジスタtlO,+13の内容を主記憶装
置2のスタック領域22へ退避する。さらに、使用状況
レジスタRAの値をスタック領域22に格納する。続い
て、現在のPCの値をスタック領域22へ退避した後、
サブルーチン5tlB2のアドレスをPCに格納して第
2階層の号ブルーチン5UB2の呼出が完了する。
サブルーチン5UB2又はサブルーチン5UBIからサ
ブルーチン5UB1又はメインルーチンへリターンする
際は、各階層へ分岐する都度、スタック領域22に格納
した各階層の使用状況レジスタIIAの値に基づき、退
避しであるレジスタの内容を復帰して分岐命令以降の命
令を再開する。
ブルーチン5UB1又はメインルーチンへリターンする
際は、各階層へ分岐する都度、スタック領域22に格納
した各階層の使用状況レジスタIIAの値に基づき、退
避しであるレジスタの内容を復帰して分岐命令以降の命
令を再開する。
本発明のデータ処理装置は、サブルーチンへ分岐する際
に、そのサブルーチンで、現ルーチンまでの階層で使用
中の全レジスタと共通して使用するレジスタのみの内容
を主記憶装置へ退避する構成とし、不必要な退避動作を
回避して処理速度を向上させるという優れた効果を奏す
る。
に、そのサブルーチンで、現ルーチンまでの階層で使用
中の全レジスタと共通して使用するレジスタのみの内容
を主記憶装置へ退避する構成とし、不必要な退避動作を
回避して処理速度を向上させるという優れた効果を奏す
る。
第1図は本発明に係るデータ処理装置のレジスタ構成を
示す概念図、第2図はマイクロコンピュータの概略構成
を示すブロック図である。
示す概念図、第2図はマイクロコンピュータの概略構成
を示すブロック図である。
Claims (1)
- (1)主記憶装置及び複数のレジスタを有し、複数階層
のサブルーチンへ分岐する処理が可能であって、各階層
のサブルーチンへ分岐する都度、レジスタの内容を主記
憶装置へ退避するデータ処理装置において、 サブルーチンへ分岐する際、実行中の現ル ーチンで使用しているレジスタを主記憶装置に記憶する
手段と、 サブルーチンへ分岐する都度、現ルーチン までの全階層のルーチンにて使用したレジスタを記憶す
るレジスタ記憶手段と、 サブルーチンへ分岐する都度、該サブルー チンで使用するレジスタを指定するレジスタ指定手段と
、 レジスタ指定手段が指定するレジスタとレ ジスタ記憶手段が記憶しているレジスタとに基づき、両
方に共通するレジスタを検出する手段と、 検出した共通レジスタのみの内容を主記憶 装置へ退避する手段と を備えたことを特徴とするデータ処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63331762A JPH02173826A (ja) | 1988-12-26 | 1988-12-26 | データ処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63331762A JPH02173826A (ja) | 1988-12-26 | 1988-12-26 | データ処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH02173826A true JPH02173826A (ja) | 1990-07-05 |
Family
ID=18247334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63331762A Pending JPH02173826A (ja) | 1988-12-26 | 1988-12-26 | データ処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH02173826A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04147339A (ja) * | 1990-10-09 | 1992-05-20 | Nec Software Ltd | 情報処理装置 |
US6495722B1 (en) | 2001-09-17 | 2002-12-17 | Huntsman Petrochemical Corporation | Mannich polyols for rigid spray foams |
JP2020025753A (ja) * | 2018-08-13 | 2020-02-20 | 株式会社ソフイア | 遊技機 |
-
1988
- 1988-12-26 JP JP63331762A patent/JPH02173826A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04147339A (ja) * | 1990-10-09 | 1992-05-20 | Nec Software Ltd | 情報処理装置 |
US6495722B1 (en) | 2001-09-17 | 2002-12-17 | Huntsman Petrochemical Corporation | Mannich polyols for rigid spray foams |
JP2020025753A (ja) * | 2018-08-13 | 2020-02-20 | 株式会社ソフイア | 遊技機 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH02173826A (ja) | データ処理装置 | |
JP3595028B2 (ja) | リアルタイムosの処理方法 | |
JPS6290728A (ja) | 割込処理方法 | |
JPH0668725B2 (ja) | データ処理システムにおける割込条件に応答する装置及び非同期割込条件に応答する方法 | |
JPH04241032A (ja) | システムコール実行装置 | |
JPH04169937A (ja) | マイクロ・プロセッサ | |
JPS6327746B2 (ja) | ||
JPS62267869A (ja) | ベクトル・プロセツサにおける演算例外時の処理方式 | |
JPH07105043A (ja) | プログラムエラー検出装置 | |
JPH03208132A (ja) | シングルチツプマイクロコンピユータ | |
JPH0527975A (ja) | マイクロコンピユータ | |
WO1990005951A1 (en) | Method of handling unintended software interrupt exceptions | |
JPS59191614A (ja) | ロボツトの制御装置 | |
JP3239042B2 (ja) | マイクロコンピュータ | |
JPH04195629A (ja) | 演算フラグ生成装置 | |
JPH0477826A (ja) | マイクロプロセツサ | |
JPH04148331A (ja) | マイクロコンピユータ | |
JPS61100836A (ja) | 移動命令論理比較命令処理方式 | |
JPS59173876A (ja) | ベクトル・デ−タ処理装置 | |
JPS61184644A (ja) | 仮想計算機システム制御方式 | |
JPS61294582A (ja) | 演算装置 | |
JPS63104141A (ja) | レジスタの固定方式 | |
JPS61233865A (ja) | ベクトルプロセツサ | |
JPH04177532A (ja) | マイクロプロセッサ | |
JPH01309135A (ja) | マイクロプロセッサ |