JPS61173358A - データ処理装置 - Google Patents
データ処理装置Info
- Publication number
- JPS61173358A JPS61173358A JP60012394A JP1239485A JPS61173358A JP S61173358 A JPS61173358 A JP S61173358A JP 60012394 A JP60012394 A JP 60012394A JP 1239485 A JP1239485 A JP 1239485A JP S61173358 A JPS61173358 A JP S61173358A
- Authority
- JP
- Japan
- Prior art keywords
- register
- registers
- instruction
- bus
- 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.)
- Granted
Links
- 238000011084 recovery Methods 0.000 title claims abstract description 9
- 238000000034 method Methods 0.000 description 33
- 238000006073 displacement reaction Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000006386 memory function Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3863—Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔発明の利用分野〕
本発明は、データ処理装置における仮想記憶の実現方式
に係り、特に命令再実行を行なう時に必要となるレジス
タ回復方式に関する。
に係り、特に命令再実行を行なう時に必要となるレジス
タ回復方式に関する。
マイクロプロセサの集積度、性能の向上に伴い。
従来比較的大型の計算機でのみサポートされていた仮想
記憶の機能をマイクロプロセサでも、実現する傾向があ
る。
記憶の機能をマイクロプロセサでも、実現する傾向があ
る。
仮想記憶のシステムでは、ユーザの仮想アドレス空間は
ある固定長のページに分割され、それぞれのページ単位
で物理メモリに割付けが行なわれ゛る。プログラムが、
物理メモリ内に存在しないページにアクセスすると、ペ
ージ・フォールトが生じプロセサに割込みがかかり1例
外処理が開始される1例外処理ルーチンでは、外部記憶
装置からページをフェッチし、物理メモリ上の他のペー
ジと置換えるための処理の起動をかける。この置換え処
理の間に、プロセサでは他のプログラムが走り、置換え
処理が終了すると、プロセサはページ・フォールトを起
こしたプログラムの実行を再開する。この様に仮想記憶
機能をサポートするためには、ページ・フォールトの発
生したプログラムの実行を中断した後、他のプログラム
の実行を行ない、その後中断したプログラムの実行を再
開する必要があり、これをサポート、する機能をプロセ
サに持たせる必要がある。
ある固定長のページに分割され、それぞれのページ単位
で物理メモリに割付けが行なわれ゛る。プログラムが、
物理メモリ内に存在しないページにアクセスすると、ペ
ージ・フォールトが生じプロセサに割込みがかかり1例
外処理が開始される1例外処理ルーチンでは、外部記憶
装置からページをフェッチし、物理メモリ上の他のペー
ジと置換えるための処理の起動をかける。この置換え処
理の間に、プロセサでは他のプログラムが走り、置換え
処理が終了すると、プロセサはページ・フォールトを起
こしたプログラムの実行を再開する。この様に仮想記憶
機能をサポートするためには、ページ・フォールトの発
生したプログラムの実行を中断した後、他のプログラム
の実行を行ない、その後中断したプログラムの実行を再
開する必要があり、これをサポート、する機能をプロセ
サに持たせる必要がある。
上記機能の実現方式は、大別すると命令継続方式と命令
再実行方式の2通りのやり方がある。前者は、モトロー
ラ社のマイクロプロセサMC68010で採用されてい
る方式で、IEEE MICRO,Vol、3゜k 3
、 Juna 1983. rVirtual M
e+1ory and theMC68010Jにその
内容が述べられている。この方j[”は、命令実行中に
ページ・フォールトが検出されると、そこで命令の実行
処理が中断され、その時点のプロセサの内部状態をすべ
てスタックに退避し、例外処理ルーチンがページ・フォ
ールトを解決した後、このスタック内の退避情報を再び
プロセサに回復し、中断された命令の実行をその時点か
ら継続させる。この方式の欠点として、例えば次の2つ
がある。
再実行方式の2通りのやり方がある。前者は、モトロー
ラ社のマイクロプロセサMC68010で採用されてい
る方式で、IEEE MICRO,Vol、3゜k 3
、 Juna 1983. rVirtual M
e+1ory and theMC68010Jにその
内容が述べられている。この方j[”は、命令実行中に
ページ・フォールトが検出されると、そこで命令の実行
処理が中断され、その時点のプロセサの内部状態をすべ
てスタックに退避し、例外処理ルーチンがページ・フォ
ールトを解決した後、このスタック内の退避情報を再び
プロセサに回復し、中断された命令の実行をその時点か
ら継続させる。この方式の欠点として、例えば次の2つ
がある。
(1)プロセサの内部状態は、そのプロセサの内部構造
に依存するために、退避されるスタックの量が、プロセ
サごとに異なり、このため、同一ファミリのプロセサで
も互換性が保たれなくなる。
に依存するために、退避されるスタックの量が、プロセ
サごとに異なり、このため、同一ファミリのプロセサで
も互換性が保たれなくなる。
(2)退避されるスタックの量は、プロセサの内部構造
が複雑になるにつれて、多くなる傾向にあり、メモリ空
間を余計に消費する。また、退避および回復に時間がか
かる。
が複雑になるにつれて、多くなる傾向にあり、メモリ空
間を余計に消費する。また、退避および回復に時間がか
かる。
命令継続方式には、上記欠点があるために命令再実行方
式を採用するプロセサも多い、この方式では、命令実行
中にページ・フォールトが検出され、プロセサに割込み
が入り、例外処理ルーチンがページ・フォールトを解決
した後、ページ・フォールトが検出された命令の実行は
、最初からやり直される。
式を採用するプロセサも多い、この方式では、命令実行
中にページ・フォールトが検出され、プロセサに割込み
が入り、例外処理ルーチンがページ・フォールトを解決
した後、ページ・フォールトが検出された命令の実行は
、最初からやり直される。
この命令再実行方式では、命令継続方式の上記欠点を解
消するが、その実現にあたって解決すべき問題点として
、ユーザから見えるレジスタの内容の回復問題がある。
消するが、その実現にあたって解決すべき問題点として
、ユーザから見えるレジスタの内容の回復問題がある。
すなわち、ページ・フォールトを起こした命令の再実行
を行なった結果が、ページ・フォールトを起こさなかっ
たと仮定した場合の命令の実行結果と同一になる様に、
レジスタの内容を命令の再実行をする時点までに、回復
しておく必要がある。
を行なった結果が、ページ・フォールトを起こさなかっ
たと仮定した場合の命令の実行結果と同一になる様に、
レジスタの内容を命令の再実行をする時点までに、回復
しておく必要がある。
このレジスタ回復問題の解決法の1つは、命令実行にお
いて、ページ・フォールトが起こる可能性がなくなった
時点で始めて、実際にレジスタの内容を更新するやり方
である。この方法は、専用のハードウェアは少量で済む
が、レジスタの更新を遅らせる必要があるために、その
結果として、命令実行時間が長くなり、プロセサの性能
が落ちる可能性がある。
いて、ページ・フォールトが起こる可能性がなくなった
時点で始めて、実際にレジスタの内容を更新するやり方
である。この方法は、専用のハードウェアは少量で済む
が、レジスタの更新を遅らせる必要があるために、その
結果として、命令実行時間が長くなり、プロセサの性能
が落ちる可能性がある。
第2の方法としては、各レジスタにコピー用レジスタを
設け、命令実行の最初に、各レジスタの内容をコピー用
レジスタに退避しておき、命令実行中にページ・フォー
ルトが生じた時には、コピー用レジスタの内容を回復す
る方法がある。この方法は、ハードウェアが多、量に必
要であり、現状のマイクロプロセサの集積度ではその実
現が難かしい。
設け、命令実行の最初に、各レジスタの内容をコピー用
レジスタに退避しておき、命令実行中にページ・フォー
ルトが生じた時には、コピー用レジスタの内容を回復す
る方法がある。この方法は、ハードウェアが多、量に必
要であり、現状のマイクロプロセサの集積度ではその実
現が難かしい。
第3の方法としては、−命令実行中にレジスタことによ
り該レジスタを更新したときに、該更新したレジスタの
名前および、更新に用いたディスプレイスメントの値を
退避しておき、再実行時までに実行アドレスからディス
プレイスメントを減算してレジスタの内容を回復するや
り方である。
り該レジスタを更新したときに、該更新したレジスタの
名前および、更新に用いたディスプレイスメントの値を
退避しておき、再実行時までに実行アドレスからディス
プレイスメントを減算してレジスタの内容を回復するや
り方である。
この方式は、退避のタイミング、あるいは退避情報の内
容等、プロセサの命令体系も考慮に入れて方式を工夫す
る必要がある。この方式を採るプロセサとして1例えば
デジタル・エクイツプメント社の16ビツトマイクロピ
ロセツサJllがある。
容等、プロセサの命令体系も考慮に入れて方式を工夫す
る必要がある。この方式を採るプロセサとして1例えば
デジタル・エクイツプメント社の16ビツトマイクロピ
ロセツサJllがある。
ところが、このような方式にも、多数ワードのムーブ命
令をサポートしようとする場合にレジスタ回復の問題が
未解決のままである。つまり複数のレジスタの夫々に物
理メモリから複数ワードを読み出して格納する際に、途
中のワードの読み出しにおいてページ・フォールトが起
るとディスプレイスメントの値からどのようにしてレジ
スタの内容を回復するかの問題が残されているのである
。
令をサポートしようとする場合にレジスタ回復の問題が
未解決のままである。つまり複数のレジスタの夫々に物
理メモリから複数ワードを読み出して格納する際に、途
中のワードの読み出しにおいてページ・フォールトが起
るとディスプレイスメントの値からどのようにしてレジ
スタの内容を回復するかの問題が残されているのである
。
本発明の目的は、仮想記憶サポートのための性能上のオ
ーバヘッドが少なく、少量のハードウェアで実現できる
レジスタ回復方式を提供することにある。
ーバヘッドが少なく、少量のハードウェアで実現できる
レジスタ回復方式を提供することにある。
前記目的を達成するためのレジスタ回復方式を実現する
ためには、プロセサの命令実行順序を解析する必要があ
る。一つの命令実行中において、すべてのメモリアクセ
スが終った後、レジスタの内容を更新する様なケースは
、レジスタの更新後、ページ・フォールトが起こること
はないので、特別に何もする必要はない、この逆のケー
スで、レジスタの内容を更新後、あるいは、更新と同時
にメモリ・アクセスを行なう場合には、このメモリ・ア
クセス中にページ・フォールトが検出される可能性があ
り、もしページ・フォールトが生じたならば、命令再実
行のためにはレジスタの内容を元に戻さなければならな
い、この様な場合としては、例えば次のものがある。
ためには、プロセサの命令実行順序を解析する必要があ
る。一つの命令実行中において、すべてのメモリアクセ
スが終った後、レジスタの内容を更新する様なケースは
、レジスタの更新後、ページ・フォールトが起こること
はないので、特別に何もする必要はない、この逆のケー
スで、レジスタの内容を更新後、あるいは、更新と同時
にメモリ・アクセスを行なう場合には、このメモリ・ア
クセス中にページ・フォールトが検出される可能性があ
り、もしページ・フォールトが生じたならば、命令再実
行のためにはレジスタの内容を元に戻さなければならな
い、この様な場合としては、例えば次のものがある。
(1)ポスト・インクリメントのアドレシング・モード
によるオペランドのアクセス、これは、レジスタの内容
をオペランドの実効アドレスとして、メモリ・アクセス
すると同時に、そのレジスタの内容を固定長(例えば、
1,2.4)だけ加算する。
によるオペランドのアクセス、これは、レジスタの内容
をオペランドの実効アドレスとして、メモリ・アクセス
すると同時に、そのレジスタの内容を固定長(例えば、
1,2.4)だけ加算する。
(2)プレ・ディクリメントのアドレシング・モードに
よるオペランドのアクセス。これは、レジスタの内容を
固定長だけ減算した後、その内容をオペランドの実効ア
ドレスとして、メモリ・アクセスする。
よるオペランドのアクセス。これは、レジスタの内容を
固定長だけ減算した後、その内容をオペランドの実効ア
ドレスとして、メモリ・アクセスする。
(3)メモリの複数ワードをレジスタに移動させるムー
ブ・マルチプル命令で、次のアドレシング・モードを用
いるケース。
ブ・マルチプル命令で、次のアドレシング・モードを用
いるケース。
(i)レジスタ間接モード、レジスタの内容をオペラン
ドの実効アドレスとする。
ドの実効アドレスとする。
(五)ディスプレイスメント付しジスタ間接モード、レ
ジスタの内容とディスプレイスメントの和がオペランド
の実効アドレスとなる。
ジスタの内容とディスプレイスメントの和がオペランド
の実効アドレスとなる。
(■)インデックス付レジスタ間接モード、レジスタの
内容とインデックス・レジスタの内容とディスプレイス
メントの和がオペランドの実効アドレスとなる。
内容とインデックス・レジスタの内容とディスプレイス
メントの和がオペランドの実効アドレスとなる。
(辻)インデックス付プログラムカウンタ・モード、プ
ログラムカウンタの内容とインデックス・レジスタの内
容とディスプレイスメントの和がオペランドの実効アド
レスとなる。
ログラムカウンタの内容とインデックス・レジスタの内
容とディスプレイスメントの和がオペランドの実効アド
レスとなる。
本発明では、命令再実行の際、オペランドの実効アドレ
スの計算に必要なレジスタの値だけ、もとに戻す方針を
取る0例えば上記(1)、(2)に対しては、加算ある
いは減算される前のレジスタ内容を退避しておき、命令
を再実行する前にその値を元にもどす様にしている。ま
た、上記(3)については、レジスタ間接に用いられる
レジスタ。
スの計算に必要なレジスタの値だけ、もとに戻す方針を
取る0例えば上記(1)、(2)に対しては、加算ある
いは減算される前のレジスタ内容を退避しておき、命令
を再実行する前にその値を元にもどす様にしている。ま
た、上記(3)については、レジスタ間接に用いられる
レジスタ。
インデックス・レジスタの内容を退避しておき。
命令を再実行する前にその値を元にもどす、このムーブ
・マルチプル命令のケースでは、オペランドの実効アド
レスを計算するのに必要なレジスタ以外のレジスタの内
容は1元にもどさない、しかし、この状態でこの命令を
再実行しても、レジスタには同じ値がムーブされるため
、再実行した命令の結果に矛盾は生じない。
・マルチプル命令のケースでは、オペランドの実効アド
レスを計算するのに必要なレジスタ以外のレジスタの内
容は1元にもどさない、しかし、この状態でこの命令を
再実行しても、レジスタには同じ値がムーブされるため
、再実行した命令の結果に矛盾は生じない。
以下、本発明の一実施例の説明を行なう、第1図は、プ
ロセサ内部の汎用レジスタ、および、アドレス計算用の
演算器を中心にその周辺構成を示した図である。
ロセサ内部の汎用レジスタ、および、アドレス計算用の
演算器を中心にその周辺構成を示した図である。
本プロセサは、ユーザから見える汎用レジスタとして、
アドレスレジスタ120が8本と(以下ARと略す)、
データレジスタ130が8本(以下、DRと略す)存在
する。 AR12G、 DR130の出力はそれぞれA
バス310、Bバス320に接続され、その内容をこれ
らのバス上に流すことができる。また、AR120の出
力は、Dバス300にも接続されている。一方、AR1
20゜DR130の入力は、Cバス330につながり、
Cバス330上の内容を取込むことができる。このAバ
ス310.Bバス320.Dバス300は、演算器関係
の入力バスで、各種の演算器の入力に接続されている0
本図に示されている演算器140は、アドレス計算用の
3人カアダー(以下、Auと略す)である、このA u
l 40は、A入力、B入力、D入力の3つの入力を
持ち、A入力は、Aバス310からの値あるいはゼロを
選択でき、B入力は、Bバス320からの値あるいはゼ
ロを選択でき、D入力はDバス300からの値あるいは
固定値発生器150から発生されるO9±1.±2、±
4の値を選択できる。
アドレスレジスタ120が8本と(以下ARと略す)、
データレジスタ130が8本(以下、DRと略す)存在
する。 AR12G、 DR130の出力はそれぞれA
バス310、Bバス320に接続され、その内容をこれ
らのバス上に流すことができる。また、AR120の出
力は、Dバス300にも接続されている。一方、AR1
20゜DR130の入力は、Cバス330につながり、
Cバス330上の内容を取込むことができる。このAバ
ス310.Bバス320.Dバス300は、演算器関係
の入力バスで、各種の演算器の入力に接続されている0
本図に示されている演算器140は、アドレス計算用の
3人カアダー(以下、Auと略す)である、このA u
l 40は、A入力、B入力、D入力の3つの入力を
持ち、A入力は、Aバス310からの値あるいはゼロを
選択でき、B入力は、Bバス320からの値あるいはゼ
ロを選択でき、D入力はDバス300からの値あるいは
固定値発生器150から発生されるO9±1.±2、±
4の値を選択できる。
一方、Cバス330は演算器の出力バスで、各僅の演算
器の出力結果がこのバスに流される。
器の出力結果がこのバスに流される。
PC240は、プログラムカウンタである。
AOR160は、オペランドの実効アドレス計算後の値
を格納して、プロセサの外にあるメモリに対し、メモリ
アドレスを送出する役目を持つ、 OPw210゜EX
VH220,EXi230は、命令ワードを保持するた
めの命令レジスタであり、0P1210には命令の先頭
ワードが、H)fl)1220. EXIIL230L
:、は、命令の拡張ワードが保持される。
を格納して、プロセサの外にあるメモリに対し、メモリ
アドレスを送出する役目を持つ、 OPw210゜EX
VH220,EXi230は、命令ワードを保持するた
めの命令レジスタであり、0P1210には命令の先頭
ワードが、H)fl)1220. EXIIL230L
:、は、命令の拡張ワードが保持される。
5I100,5JIIOは、汎用レジスタの内容を退避
しておくためのレジスタであり、本発明の方式において
特徴的なものの1つである0両レジスタは共にAR12
0あるいはDR130の各レジスタと同じビット巾を持
つ、5I100の入力は、Aバス310.Bバス320
.Dバス300につながり、各バスに流れている情報を
取込むことができる。また、その出力はCバス330に
つながっているために、5I100に退避された情報は
、Cバス330を介して、AR120あるいはDR13
0に回復できる。また、5J11017)入力は、Bバ
ス320につながっているため、Bバス上に流れた情報
を取込むことができ、その出力はCバス330につなが
っているため、AR120あるいはDR130にその値
を回復できる。
しておくためのレジスタであり、本発明の方式において
特徴的なものの1つである0両レジスタは共にAR12
0あるいはDR130の各レジスタと同じビット巾を持
つ、5I100の入力は、Aバス310.Bバス320
.Dバス300につながり、各バスに流れている情報を
取込むことができる。また、その出力はCバス330に
つながっているために、5I100に退避された情報は
、Cバス330を介して、AR120あるいはDR13
0に回復できる。また、5J11017)入力は、Bバ
ス320につながっているため、Bバス上に流れた情報
を取込むことができ、その出力はCバス330につなが
っているため、AR120あるいはDR130にその値
を回復できる。
F1170.FJ180は、それぞれ前記51100.
5JIIOに退避された内容がどの汎用レジスタのもの
であったかを識別するフラグである。F1170.FJ
180は共に16ビツト長あり、各ビットはAR120
の8本のレジスタおよびDR130の8本のレジスタに
対応している。
5JIIOに退避された内容がどの汎用レジスタのもの
であったかを識別するフラグである。F1170.FJ
180は共に16ビツト長あり、各ビットはAR120
の8本のレジスタおよびDR130の8本のレジスタに
対応している。
例えば、FI170の第3ビツト目に1が立っていれば
、51100には、AR120の第3番目のレジスタの
更新前の値が退避されていることになる。また、F11
70.FJ180は、一つの命令実行の最初ですべての
ビットがクリアされる。
、51100には、AR120の第3番目のレジスタの
更新前の値が退避されていることになる。また、F11
70.FJ180は、一つの命令実行の最初ですべての
ビットがクリアされる。
回路190は、F1170.FJ180に前段落で述べ
た通りの値を設定するための回路である。
た通りの値を設定するための回路である。
コノ回路は、0PW210. EX%1L230に格納
された命令の先頭ワードおよび拡張ワードのうちの汎用
レジスタの番号が指定されるフィールドの情報340.
350,360から、F1170.FJ180に設定す
べき値を決定する。この値のF1170、FJ180へ
の設定は、実際に5I100゜5JIIOに汎用レジス
タの値を退避する時に行なめれる。
された命令の先頭ワードおよび拡張ワードのうちの汎用
レジスタの番号が指定されるフィールドの情報340.
350,360から、F1170.FJ180に設定す
べき値を決定する。この値のF1170、FJ180へ
の設定は、実際に5I100゜5JIIOに汎用レジス
タの値を退避する時に行なめれる。
回路200は、Cバス330上の値をAR120あるい
はDR130にセットするための指示信号370を作成
する回路である0回路200は。
はDR130にセットするための指示信号370を作成
する回路である0回路200は。
F1170、あるいは、FJ180の間接指定により、
セット指示信号370を作成することができる0例えば
、F1170の第4番目のビットが1になっている時、
AR120の8本レジスタのうち第4番目のレジスタの
セット指示信号に起動がかかる。この回路を用いれば、
5I100゜5J110に退避されたレジスタの値を、
F1170あるいは、FJ180に示された汎用レジス
タにCバス330を介して回復することができる。
セット指示信号370を作成することができる0例えば
、F1170の第4番目のビットが1になっている時、
AR120の8本レジスタのうち第4番目のレジスタの
セット指示信号に起動がかかる。この回路を用いれば、
5I100゜5J110に退避されたレジスタの値を、
F1170あるいは、FJ180に示された汎用レジス
タにCバス330を介して回復することができる。
次に本プロセサの命令フォーマットおよびオペランドの
実効アドレス計算を行なうためのアドレシング・モード
についての説明を行ない、各モード別に汎用レジスタの
内容の退避1回復について述べる。
実効アドレス計算を行なうためのアドレシング・モード
についての説明を行ない、各モード別に汎用レジスタの
内容の退避1回復について述べる。
第2図は本プロセサの命令フォーマットを示したもので
ある。第2図(a)は、命令の先頭16ビツトのフォー
マットの典型である。11〜9ビツトはRXフィールド
でありオペランドとなる汎用レジスタ番号を示す、アド
レスレジスタ、データレジスタの区別は、他ビットで指
定される。ビット5〜3は、Modeフィールドであり
もう一方のオペランドに対するアドレシング・モードを
示し、ビット2〜0は、RYフィールドであり、Mod
eフィールドで示されたアドレシングモードに用いられ
る汎用レジスタの番号が指定される。第3図は。
ある。第2図(a)は、命令の先頭16ビツトのフォー
マットの典型である。11〜9ビツトはRXフィールド
でありオペランドとなる汎用レジスタ番号を示す、アド
レスレジスタ、データレジスタの区別は、他ビットで指
定される。ビット5〜3は、Modeフィールドであり
もう一方のオペランドに対するアドレシング・モードを
示し、ビット2〜0は、RYフィールドであり、Mod
eフィールドで示されたアドレシングモードに用いられ
る汎用レジスタの番号が指定される。第3図は。
Modeフィールドで指定される8種類のアドレシング
・モードの一覧である。以下、これらのアドレシング・
モードの内容と、第1図における実効アドレス計算の手
順と、汎用レジスタの内容を退避する方法について述べ
る。
・モードの一覧である。以下、これらのアドレシング・
モードの内容と、第1図における実効アドレス計算の手
順と、汎用レジスタの内容を退避する方法について述べ
る。
(1)データレジスタ、アドレスレジスタこのモードは
、オペランドがデータレジスタあるいはアドレスレジス
タそのものである場合である。従って実効アドレスの計
算は行なわず、汎用レジスタ内容の退避も行なわない。
、オペランドがデータレジスタあるいはアドレスレジス
タそのものである場合である。従って実効アドレスの計
算は行なわず、汎用レジスタ内容の退避も行なわない。
(2)アドレスレジスタ間接
このモードは、オペランドの実効アドレスがRYフィー
ルドで指定されるアドレスレジスタの値の場合である。
ルドで指定されるアドレスレジスタの値の場合である。
第1111において、この実効アドレスはAR120か
らDバス300を介してAOR160に格納される。D
バス300上にAR120の値が流れている時に5I1
00にその値が退避される。また、これと同時に、命令
ワードのRYフィールドで示さ九たアドレスレジスタ番
号に対応するF1170のビット位置に1が立つ、この
様に実効アドレスをAORに格納する処理と並列して、
汎用レジスタの内容の退避ができるため、性能上のオー
バーヘッドは全くない。
らDバス300を介してAOR160に格納される。D
バス300上にAR120の値が流れている時に5I1
00にその値が退避される。また、これと同時に、命令
ワードのRYフィールドで示さ九たアドレスレジスタ番
号に対応するF1170のビット位置に1が立つ、この
様に実効アドレスをAORに格納する処理と並列して、
汎用レジスタの内容の退避ができるため、性能上のオー
バーヘッドは全くない。
(3)ポスト・インクリメント
このモードでは、オペランドの実効アドレスはRYフィ
ールドで指定されるアドレスレジスタの値であり、その
アドレスレジスタの内容は、固定長だけ後で加算される
。第1図において、この実効アドレスはAR120から
Dバス300を介してAOR160に格納される。それ
と同時にAR120からAバス310を介してAu14
0の八人力にアドレスレジスタの値が入り、D入力には
固定長発生器150から固定長が入り、B入力・にはゼ
ロが入り、これらの加算結果がCバス330を介してA
R120に設定される。S工100へのアドレスレジス
タの内容の退避は(2)の場合と同じである。
ールドで指定されるアドレスレジスタの値であり、その
アドレスレジスタの内容は、固定長だけ後で加算される
。第1図において、この実効アドレスはAR120から
Dバス300を介してAOR160に格納される。それ
と同時にAR120からAバス310を介してAu14
0の八人力にアドレスレジスタの値が入り、D入力には
固定長発生器150から固定長が入り、B入力・にはゼ
ロが入り、これらの加算結果がCバス330を介してA
R120に設定される。S工100へのアドレスレジス
タの内容の退避は(2)の場合と同じである。
(4)ブレ・ディクリメント
このモードでは、オペランドの実効アドレスは、RYフ
ィールドで指定されるアドレスレジスタの値に固定長を
減じた値であり、その値によってアドレスレジスタの内
容が更新される。
ィールドで指定されるアドレスレジスタの値に固定長を
減じた値であり、その値によってアドレスレジスタの内
容が更新される。
この場合には、第1図において、AR120の値がAバ
ス310を介してAu140の八人力に入り、固定長発
生器150からはマイナスの固定長がD入力に入り、B
入力にはゼロが入る。
ス310を介してAu140の八人力に入り、固定長発
生器150からはマイナスの固定長がD入力に入り、B
入力にはゼロが入る。
これにより、実効アドレスが計算されそのAu140の
結果がAOR160に格納され、また。
結果がAOR160に格納され、また。
Cバス330を介して、AR120に設定される。また
、Aバス310上にAR120の値が流れている時に5
I100にその値が退避される。F1170の設定は(
2)のケースと同じである。
、Aバス310上にAR120の値が流れている時に5
I100にその値が退避される。F1170の設定は(
2)のケースと同じである。
(5)インデックス付アドレスレジスタ間接このモード
では、命令は拡張ワードを持つ。
では、命令は拡張ワードを持つ。
第2図(b)にこの拡張ワードのフォーマットを示す、
このワードのRZフィールドは、インデックスレジスタ
となる汎用レジスタの番号を示す、このレジスタがデー
タレジスタであるか。
このワードのRZフィールドは、インデックスレジスタ
となる汎用レジスタの番号を示す、このレジスタがデー
タレジスタであるか。
あるいは、アドレスレジスタであるかの区別はDビット
で区分ける@ Dispフィールドは、ディスプレイス
メントの値を示す、さて、このモードでは、オペランド
の実効アドレスは、RYフィールドで指定されるペース
レジスタとなるアドレスレジスタの値に、Dビットおよ
びRZフィールドで指定されるインデックスレジスタの
値と、 Dispフィールドに入っているディスプレー
スメントの値を加算した値である。
で区分ける@ Dispフィールドは、ディスプレイス
メントの値を示す、さて、このモードでは、オペランド
の実効アドレスは、RYフィールドで指定されるペース
レジスタとなるアドレスレジスタの値に、Dビットおよ
びRZフィールドで指定されるインデックスレジスタの
値と、 Dispフィールドに入っているディスプレー
スメントの値を加算した値である。
この場合には、第1図において、ペースレジスタとなる
AR120の値がAバス310を介してA u 140
のA入力に入り、インデックスレジスタとなるAR12
0あるいはDR130の値がBバス320を介してB入
力に入り、ディスプレースメントの値が、拡張ワードの
格納されたEXVL230からDバス300を介してD
入力に入る。Au140は、これらの入力を加算して実
効アドレスを作成し、AOR160にそれを格納する。
AR120の値がAバス310を介してA u 140
のA入力に入り、インデックスレジスタとなるAR12
0あるいはDR130の値がBバス320を介してB入
力に入り、ディスプレースメントの値が、拡張ワードの
格納されたEXVL230からDバス300を介してD
入力に入る。Au140は、これらの入力を加算して実
効アドレスを作成し、AOR160にそれを格納する。
一方、Aバス310上にAR120の値が流れている時
に5I100にその値を退避し、Bバス320上にAR
120あるいはDR130の値が流れている時に5JI
IOにその値を退避する。また、これと同等に、命令ワ
ードのRYフィールドで示されたアドレスレジスタ番号
に対応するF1170のビット位置に1が立ち、また、
拡張ワードのDビットとRZフィールドで示されたデー
タレジスタあるいはアドレスレジスタ番号に対応するF
J180のビット位置に1が立つ、この場合も、実効ア
ドレスの計算と並列して汎用レジスタ内容の退避ができ
るため、性能上のオーバーヘッドは全くない。
に5I100にその値を退避し、Bバス320上にAR
120あるいはDR130の値が流れている時に5JI
IOにその値を退避する。また、これと同等に、命令ワ
ードのRYフィールドで示されたアドレスレジスタ番号
に対応するF1170のビット位置に1が立ち、また、
拡張ワードのDビットとRZフィールドで示されたデー
タレジスタあるいはアドレスレジスタ番号に対応するF
J180のビット位置に1が立つ、この場合も、実効ア
ドレスの計算と並列して汎用レジスタ内容の退避ができ
るため、性能上のオーバーヘッドは全くない。
(6)インデックス付プログラムカウンタこのモードは
、(5)のケースにおいて、ベースレジスタをプログラ
ムカウンタに置換えた場合である。また、プログラムカ
ウンタの退避は行なわないこと以外は、(5)と全く同
じ処理が行なわれる。
、(5)のケースにおいて、ベースレジスタをプログラ
ムカウンタに置換えた場合である。また、プログラムカ
ウンタの退避は行なわないこと以外は、(5)と全く同
じ処理が行なわれる。
(7)絶対番地
このモードでは、オペランドの実効アドレスは、命令の
拡張ワードに入っている値そのものである。汎用レジス
タとは関係ないので、レジスタ内容の退避は行なわない
。
拡張ワードに入っている値そのものである。汎用レジス
タとは関係ないので、レジスタ内容の退避は行なわない
。
以上述べた通り1本方式では実効アドレスの計算と並列
して汎用レジスタの内容を退避しておくことができるた
めにこれに関して性能上のオーバヘッドが出ない。
して汎用レジスタの内容を退避しておくことができるた
めにこれに関して性能上のオーバヘッドが出ない。
命令実行中に、ページフォールトが検出されて5I10
0,5JIIOに退避されている内容を命令再実行前に
回復することは回路200を介して行なわれる。この手
順は1回路200の説明で述べた通りである。
0,5JIIOに退避されている内容を命令再実行前に
回復することは回路200を介して行なわれる。この手
順は1回路200の説明で述べた通りである。
以上1本発明の一実施例を述べたが、この方式が他の命
令フォーマット、アドレシング・モードを持つプロセサ
に対しても適用できることは明らかである。
令フォーマット、アドレシング・モードを持つプロセサ
に対しても適用できることは明らかである。
又、多数ワードのムーブ命令に対してもレジスタの値を
退避しているため、途中のワードにおいてページフォル
トが起ったとしても、退避した値を復帰するだけで命令
再開が可能となる。
退避しているため、途中のワードにおいてページフォル
トが起ったとしても、退避した値を復帰するだけで命令
再開が可能となる。
本発明によれば、第1に命令再実行の際に回復しておく
べき汎用レジスタを、オペランドの実効アドレスの計算
に必要なものだけに限定しているために、少量のハード
ウェアで命令の再実行が可能となる。第2に、汎用レジ
スタの退避が、オペランドの実効アドレス計算と並列に
できる手段を持つために、仮想記憶サポーj〜のための
性能上のオーバーヘッドが少ない。
べき汎用レジスタを、オペランドの実効アドレスの計算
に必要なものだけに限定しているために、少量のハード
ウェアで命令の再実行が可能となる。第2に、汎用レジ
スタの退避が、オペランドの実効アドレス計算と並列に
できる手段を持つために、仮想記憶サポーj〜のための
性能上のオーバーヘッドが少ない。
第1図はプロセサの内部構成図、第2図は命令フォーマ
ット、第3図はアドレシング・モード−白 覧表である。
ット、第3図はアドレシング・モード−白 覧表である。
Claims (1)
- 1、汎用レジスタ群を有するデータ処理装置において、
該汎用レジスタの内容を退避するための退避用レジスタ
と、該退避用レジスタに退避すべきデータを格納してい
る汎用レジスタの識別情報を記憶するための制御レジス
タと、該データ処理装置で処理される機械命令の情報か
ら該制御レジスタに前記識別情報を設定する手段と、該
制御レジスタに記憶された識別情報に従つて、該汎用レ
ジスタへ退避用レジスタの内容を設定する手段とを設け
たことを特徴とするレジスタ回復装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP60012394A JPH0668739B2 (ja) | 1985-01-28 | 1985-01-28 | データ処理装置 |
US06/822,231 US4797816A (en) | 1985-01-28 | 1986-01-24 | Virtual memory supported processor having restoration circuit for register recovering |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP60012394A JPH0668739B2 (ja) | 1985-01-28 | 1985-01-28 | データ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS61173358A true JPS61173358A (ja) | 1986-08-05 |
JPH0668739B2 JPH0668739B2 (ja) | 1994-08-31 |
Family
ID=11804051
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP60012394A Expired - Lifetime JPH0668739B2 (ja) | 1985-01-28 | 1985-01-28 | データ処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US4797816A (ja) |
JP (1) | JPH0668739B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0281242A (ja) * | 1988-09-19 | 1990-03-22 | Matsushita Electric Ind Co Ltd | データ処理装置 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5341482A (en) * | 1987-03-20 | 1994-08-23 | Digital Equipment Corporation | Method for synchronization of arithmetic exceptions in central processing units having pipelined execution units simultaneously executing instructions |
US5247628A (en) * | 1987-11-30 | 1993-09-21 | International Business Machines Corporation | Parallel processor instruction dispatch apparatus with interrupt handler |
JPH0769806B2 (ja) * | 1988-10-14 | 1995-07-31 | 三菱電機株式会社 | データ処理装置 |
JP2858140B2 (ja) * | 1988-10-19 | 1999-02-17 | アポロ・コンピューター・インコーポレーテッド | パイプラインプロセッサ装置および方法 |
US5721857A (en) * | 1993-12-30 | 1998-02-24 | Intel Corporation | Method and apparatus for saving the effective address of floating point memory operations in an out-of-order microprocessor |
US7055151B1 (en) * | 1998-04-03 | 2006-05-30 | Applied Micro Circuits Corporation | Systems and methods for multi-tasking, resource sharing and execution of computer instructions |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3979725A (en) * | 1973-08-06 | 1976-09-07 | Xerox Corporation | Multi-way program branching circuits |
US4287559A (en) * | 1977-02-09 | 1981-09-01 | Texas Instruments Incorporated | Electronic microprocessor system having two cycle branch logic |
JPS54146549A (en) * | 1978-05-09 | 1979-11-15 | Hitachi Ltd | Information processor |
US4520441A (en) * | 1980-12-15 | 1985-05-28 | Hitachi, Ltd. | Data processing system |
US4524415A (en) * | 1982-12-07 | 1985-06-18 | Motorola, Inc. | Virtual machine data processor |
-
1985
- 1985-01-28 JP JP60012394A patent/JPH0668739B2/ja not_active Expired - Lifetime
-
1986
- 1986-01-24 US US06/822,231 patent/US4797816A/en not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0281242A (ja) * | 1988-09-19 | 1990-03-22 | Matsushita Electric Ind Co Ltd | データ処理装置 |
Also Published As
Publication number | Publication date |
---|---|
JPH0668739B2 (ja) | 1994-08-31 |
US4797816A (en) | 1989-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5812868A (en) | Method and apparatus for selecting a register file in a data processing system | |
US4794524A (en) | Pipelined single chip microprocessor having on-chip cache and on-chip memory management unit | |
EP0217168B1 (en) | Method for processing address translation exceptions in a virtual memory system | |
JP3663317B2 (ja) | コンピュータ・システム | |
JPH0242569A (ja) | ベクター処理システムに用いる文脈スイッチング方法及び装置 | |
US20060036824A1 (en) | Managing the updating of storage keys | |
US4961161A (en) | Arithmetic processor performing mask and trap operations for exceptions | |
JPS61173358A (ja) | データ処理装置 | |
JP3170472B2 (ja) | レジスタ・リマップ構造を有する情報処理システム及び方法 | |
GB2461851A (en) | Processor, which stores interrupt enable flags in a location used for other functions | |
US5906002A (en) | Method and apparatus for saving and restoring the context of registers using different instruction sets for different sized registers | |
CA1323437C (en) | Method and apparatus for handling faults of vector instructions causing memory management exceptions | |
JPH0754467B2 (ja) | データ処理装置 | |
JPH0668725B2 (ja) | データ処理システムにおける割込条件に応答する装置及び非同期割込条件に応答する方法 | |
JP2562838B2 (ja) | プロセッサ及びストアバッファ制御方法 | |
JPH0133856B2 (ja) | ||
Anderson et al. | A virtual memory for microprocessors | |
JP2574918B2 (ja) | 割り込み復帰処理方式 | |
JPS59172044A (ja) | 命令制御方式 | |
JPH02148226A (ja) | 情報処理装置 | |
JP3239042B2 (ja) | マイクロコンピュータ | |
JPS626329A (ja) | デ−タ転送回路 | |
JPH07120286B2 (ja) | 浮動小数点関数擬似命令処理方法 | |
JPS62264345A (ja) | ベクトル・プロセツサにおけるアドレス変換例外時の処理方式 | |
JPS62154166A (ja) | マイクロコンピユ−タ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EXPY | Cancellation because of completion of term |