JPH0668739B2 - データ処理装置 - Google Patents
データ処理装置Info
- Publication number
- JPH0668739B2 JPH0668739B2 JP60012394A JP1239485A JPH0668739B2 JP H0668739 B2 JPH0668739 B2 JP H0668739B2 JP 60012394 A JP60012394 A JP 60012394A JP 1239485 A JP1239485 A JP 1239485A JP H0668739 B2 JPH0668739 B2 JP H0668739B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- instruction
- general
- bus
- information
- 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.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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)
Description
【発明の詳細な説明】 〔発明の利用分野〕 本発明は、仮想記憶システムをサポートするデータ処理
装置に係り、特に命令再実行を行なう時に必要となるレ
ジスタ回復装置に関する。
装置に係り、特に命令再実行を行なう時に必要となるレ
ジスタ回復装置に関する。
マイクロプロセサの集積度、性能の向上に伴い、従来比
較的大型の計算機でのみサポートされていた仮想記憶の
機能をマイクロプロセサでも、実現する傾向がある。
較的大型の計算機でのみサポートされていた仮想記憶の
機能をマイクロプロセサでも、実現する傾向がある。
仮想記憶のシステムでは、ユーザの仮想アドレス空間は
ある固定長のページに分割され、それぞれのページ単位
で物理メモリに割付けが行なわれる。プログラムが、物
理メモリ内に存在しないページにアクセスすると、ペー
ジ・フオールトが生じプロセサに割込みがかかり、例外
処理が開始される。例外処理ルーチンでは、外部記憶装
置からページをフエツチし、物理メモリ上の他のページ
と置換えるために処理の起動をかける。この置換え処理
の間に、プロセサでは他のプログラムが走り、置換え処
理が終了すると、プロセサはページ・フオールトを起こ
したプログラムの実行を再開する。この様に仮想記憶機
能をサポートするためには、ページ・フオールトの発生
したプログラムの実行を中断した後、他のプログラムの
実行を行ない。その後中断したプログラムの実行を再開
する必要があり、これをサポートする機能をプロセサに
持たせる必要がある。
ある固定長のページに分割され、それぞれのページ単位
で物理メモリに割付けが行なわれる。プログラムが、物
理メモリ内に存在しないページにアクセスすると、ペー
ジ・フオールトが生じプロセサに割込みがかかり、例外
処理が開始される。例外処理ルーチンでは、外部記憶装
置からページをフエツチし、物理メモリ上の他のページ
と置換えるために処理の起動をかける。この置換え処理
の間に、プロセサでは他のプログラムが走り、置換え処
理が終了すると、プロセサはページ・フオールトを起こ
したプログラムの実行を再開する。この様に仮想記憶機
能をサポートするためには、ページ・フオールトの発生
したプログラムの実行を中断した後、他のプログラムの
実行を行ない。その後中断したプログラムの実行を再開
する必要があり、これをサポートする機能をプロセサに
持たせる必要がある。
上記機能の実現方式は、大別すると命令継続方式と命令
再実行方式の2通りのやり方がある。前者は、モトロー
ラ社のマイクロプロセサMC68010で採用されている方式
で、IEEE MICRO,Vol.3,No.3,June 1983,「Virtual Me
mory and the MC68010」にその内容が述べられている。
この方式では、命令実行中にページ・フオールトが検出
されると、そこで命令の実行処理が中断され、その時点
のプロセサの内部状態をすべてスタツクに退避し、例外
処理ルーチンがページ・フオールトを解決した後、この
スタツク内の退避情報を再びプロセサに回復し、中断さ
れた命令の実行をその時点から継続される。この方式の
欠点として、例えば次の2つがある。
再実行方式の2通りのやり方がある。前者は、モトロー
ラ社のマイクロプロセサMC68010で採用されている方式
で、IEEE MICRO,Vol.3,No.3,June 1983,「Virtual Me
mory and the MC68010」にその内容が述べられている。
この方式では、命令実行中にページ・フオールトが検出
されると、そこで命令の実行処理が中断され、その時点
のプロセサの内部状態をすべてスタツクに退避し、例外
処理ルーチンがページ・フオールトを解決した後、この
スタツク内の退避情報を再びプロセサに回復し、中断さ
れた命令の実行をその時点から継続される。この方式の
欠点として、例えば次の2つがある。
(1)プロセサの内部状態は、そのプロセサの内部構造に
依存するために、退避されるスタツクの量が、プロセサ
ごとに異なり、このため同一フアミリのプロセサでも互
換性が保たれなくなる。
依存するために、退避されるスタツクの量が、プロセサ
ごとに異なり、このため同一フアミリのプロセサでも互
換性が保たれなくなる。
(2)退避されるスタツクの量は、プロセサの内部構造が
複雑になるにつれて、多くなる傾向にあり、メモリ空間
を余計に消費する。また、退避および回復に時間がかか
る。
複雑になるにつれて、多くなる傾向にあり、メモリ空間
を余計に消費する。また、退避および回復に時間がかか
る。
命令継続方式には、上記欠点があるために命令再実行方
式を採用するプロセサも多い。この方式では、命令実行
中にページ・フオールトが検出され、プロセサに割込み
が入り、例外処理ルーチンがページ・フオールトを解決
した後、ページ・フオールトが検出された命令の実行
は、最初からやり直される。
式を採用するプロセサも多い。この方式では、命令実行
中にページ・フオールトが検出され、プロセサに割込み
が入り、例外処理ルーチンがページ・フオールトを解決
した後、ページ・フオールトが検出された命令の実行
は、最初からやり直される。
この命令再実行方式では、命令継続方式の上記欠点を解
消するが、その実現にあたつて解決すべき問題点とし
て、ユーザから見えるレジスタの内容の回復問題があ
る。すなわち、ページ・フオールトを起こした命令の再
実行を行なつた結果が、ページ・フオールトを起こさな
かつたと仮定した場合の命令の実行結果と同一になる様
に、レジスタの内容を命令の再実行をする時点までに、
回復しておく必要がある。
消するが、その実現にあたつて解決すべき問題点とし
て、ユーザから見えるレジスタの内容の回復問題があ
る。すなわち、ページ・フオールトを起こした命令の再
実行を行なつた結果が、ページ・フオールトを起こさな
かつたと仮定した場合の命令の実行結果と同一になる様
に、レジスタの内容を命令の再実行をする時点までに、
回復しておく必要がある。
このレジスタ回復問題の解決法の1つは、命令実行にお
いて、ページ・フオールトが起こる可能性がなくなつた
時点で始めて、実際にレジスタの内容を更新するやり方
である。この方法は、専用のハードウエアは少量で済む
が、レジスタの更新を遅らせる必要があるために、その
結果として、命令実行時間が長くなり、プロセサの性能
が落ちる可能性がある。
いて、ページ・フオールトが起こる可能性がなくなつた
時点で始めて、実際にレジスタの内容を更新するやり方
である。この方法は、専用のハードウエアは少量で済む
が、レジスタの更新を遅らせる必要があるために、その
結果として、命令実行時間が長くなり、プロセサの性能
が落ちる可能性がある。
第2の方法としては、各レジスタにコピー用レジスタを
設け、命令実行の最初に、各レジスタの内容をコピー用
レジスタに退避しておき、命令実行中にページ・フオー
ルトが生じた時には、コピー用レジスタの内容を回復す
る方法がある。この方法は、ハードウエアが多量に必要
であり、現状のマイクロプロセサの集積度ではその実現
が難かしい。
設け、命令実行の最初に、各レジスタの内容をコピー用
レジスタに退避しておき、命令実行中にページ・フオー
ルトが生じた時には、コピー用レジスタの内容を回復す
る方法がある。この方法は、ハードウエアが多量に必要
であり、現状のマイクロプロセサの集積度ではその実現
が難かしい。
第3の方法としては、一命令実行中にレジスタの内容に
デイスプレイスメントを加算して求めた実効アドレスに
より読み出したワードをレジスタに格納することにより
該レジスタを更新したときに、該更新したレジスタの名
前および、更新に用いたデイスプレイスメントの値を退
避しておき、再実行時までに実効アドレスからデイスプ
レイスメントを減算してレジスタの内容を回復するやり
方である。この方式は、退避のタイミング、あるいは退
避情報の内容等、プロセサの命令体系も考慮に入れて方
式を工夫する必要がある。この方式を採るプロセサとし
て、例えばデジタル・イクエツプメント社の16ビツト
マイクロピロセツサJ11がある。ところが、このよう
な方式にも、多数ワードのムーブ命令をサポートしよう
とする場合にレジスタ回復の問題が未解決のままであ
る。つまり複数のレジスタの夫々に物理メモリから複数
ワードを読み出して格納する際に、途中のワードの読み
出しにおいてページ・フオールトが起るとデイスプレイ
スメントの値からどのようにしてレジスタの内容を回復
するかの問題が残されているのである。
デイスプレイスメントを加算して求めた実効アドレスに
より読み出したワードをレジスタに格納することにより
該レジスタを更新したときに、該更新したレジスタの名
前および、更新に用いたデイスプレイスメントの値を退
避しておき、再実行時までに実効アドレスからデイスプ
レイスメントを減算してレジスタの内容を回復するやり
方である。この方式は、退避のタイミング、あるいは退
避情報の内容等、プロセサの命令体系も考慮に入れて方
式を工夫する必要がある。この方式を採るプロセサとし
て、例えばデジタル・イクエツプメント社の16ビツト
マイクロピロセツサJ11がある。ところが、このよう
な方式にも、多数ワードのムーブ命令をサポートしよう
とする場合にレジスタ回復の問題が未解決のままであ
る。つまり複数のレジスタの夫々に物理メモリから複数
ワードを読み出して格納する際に、途中のワードの読み
出しにおいてページ・フオールトが起るとデイスプレイ
スメントの値からどのようにしてレジスタの内容を回復
するかの問題が残されているのである。
本発明の目的は、汎用レジスタを内蔵し、その汎用レジ
スタの情報を実効アドレスの計算に利用するデータ処理
装置において、少ないハードウエアで仮想記憶システム
をサポートすることを可能にしたデータ処理装置を提供
することにある。
スタの情報を実効アドレスの計算に利用するデータ処理
装置において、少ないハードウエアで仮想記憶システム
をサポートすることを可能にしたデータ処理装置を提供
することにある。
本発明では、実効アドレスの計算と並列にレジスタの情
報を退避する退避レジスタと、その退避レジスタに退避
された情報がどのレジスタのものであるかを示す識別情
報を格納するためのフラグレジスタと、退避レジスタに
退避された情報をフラグレジスタに格納された識別情報
によって示されるレジスタに回復する手段を設けた。
報を退避する退避レジスタと、その退避レジスタに退避
された情報がどのレジスタのものであるかを示す識別情
報を格納するためのフラグレジスタと、退避レジスタに
退避された情報をフラグレジスタに格納された識別情報
によって示されるレジスタに回復する手段を設けた。
以下、本発明の一実施例の説明を行なう。第1図は、プ
ロセサ内部の汎用レジスタ、および、アドレス計算用の
演算器を中心にその周辺構成を示した図である。
ロセサ内部の汎用レジスタ、および、アドレス計算用の
演算器を中心にその周辺構成を示した図である。
本プロセサは、ユーザから見える汎用レジスタとして、
アドレスレジスタ120が8本と(以下ARと略す)、
データレジスタ130が8本(以下、DRと略す)存在
する。AR120,DR130の出力はそれぞれAバス
310、Bバス320に接続され、その内容をこれらの
バス上に流すことができる。また、AR120の出力
は、Dバス300にも接続されている。一方、AR12
0,DR130の入力は、Cバス330につながり、C
バス330上の内容を取込むことができる。このAバス
310,Bバス320,Dバス300は、演算器関係の
入力バスで、各種の演算器の入力に接続されている。本
図に示されている演算器140は、アドレス計算用の3
入力アダー(以下、Auと略す)である。このAu14
0は、A入力,B入力,D入力の3つの入力を持ち、A
入力は、Aバス310からの値あるいはゼロを選択で
き、B入力は、Bバス320からの値あるいはゼロを選
択でき、D入力はDバス300からの値あるいは固定値
発生器150から発生される0,±1,±2,±4の値
を選択できる。
アドレスレジスタ120が8本と(以下ARと略す)、
データレジスタ130が8本(以下、DRと略す)存在
する。AR120,DR130の出力はそれぞれAバス
310、Bバス320に接続され、その内容をこれらの
バス上に流すことができる。また、AR120の出力
は、Dバス300にも接続されている。一方、AR12
0,DR130の入力は、Cバス330につながり、C
バス330上の内容を取込むことができる。このAバス
310,Bバス320,Dバス300は、演算器関係の
入力バスで、各種の演算器の入力に接続されている。本
図に示されている演算器140は、アドレス計算用の3
入力アダー(以下、Auと略す)である。このAu14
0は、A入力,B入力,D入力の3つの入力を持ち、A
入力は、Aバス310からの値あるいはゼロを選択で
き、B入力は、Bバス320からの値あるいはゼロを選
択でき、D入力はDバス300からの値あるいは固定値
発生器150から発生される0,±1,±2,±4の値
を選択できる。
一方、Cバス330は演算器の出力バスで、各値の演算
器の出力結果がこのバスに流される。PC240は、プ
ログラムカウンタである。
器の出力結果がこのバスに流される。PC240は、プ
ログラムカウンタである。
AOR160は、オペランドの実効アドレス計算後の値を格納
して、プロセサの外にあるメモリに対し、メモリアドレ
スを送出する役目を持つ。OPW210,EXWH220,EXWL230
は、命令ワードを保持するための命令レジスタであり、
OPW210には命令の先頭ワードが、EXWH220,EXWL230に
は、命令の拡張ワードが保持される。
して、プロセサの外にあるメモリに対し、メモリアドレ
スを送出する役目を持つ。OPW210,EXWH220,EXWL230
は、命令ワードを保持するための命令レジスタであり、
OPW210には命令の先頭ワードが、EXWH220,EXWL230に
は、命令の拡張ワードが保持される。
SI100,SJ110は、汎用レジスタの内容を退避
しておくためのレジスタであり、本発明の方式において
特徴的なものの1つである。両レジスタは共にAR12
0あるいはDR130の各レジスタと同じビツト巾を持
つ。SI100の入力は、Aバス310,Bバス32
0,Dバス300につながり、各バスに流れている情報
を取込むことができる。また、その出力はCバス330
につながつているために、SI100に退避された情報
は、Cバス330を介して、AR120あるいはDR1
30に回復できる。また、SJ110の入力は、Bバス
320につながつているため、Bバス上に流れた情報を
取込むことができ、その出力はCバス330につながつ
ているため、AR120あるいはDR130にその値を
回復できる。
しておくためのレジスタであり、本発明の方式において
特徴的なものの1つである。両レジスタは共にAR12
0あるいはDR130の各レジスタと同じビツト巾を持
つ。SI100の入力は、Aバス310,Bバス32
0,Dバス300につながり、各バスに流れている情報
を取込むことができる。また、その出力はCバス330
につながつているために、SI100に退避された情報
は、Cバス330を介して、AR120あるいはDR1
30に回復できる。また、SJ110の入力は、Bバス
320につながつているため、Bバス上に流れた情報を
取込むことができ、その出力はCバス330につながつ
ているため、AR120あるいはDR130にその値を
回復できる。
FI170,FJ180は、それぞれ前記SI100,
SJ110に退避された内容がどの汎用レジスタのもの
であつたかを識別するフラグである。FI170,FJ
180は共に16ビツト長あり、各ビツトはAR120
の8本のレジスタおよびDR130の8本のレジスタに
対応している。例えば、FI170の第3ビツト目に1
が立つていれば、SI100には、AR120の第3番
目のレジスタの更新前の値が退避されていることにな
る。また、FI170,FJ180は、一つの命令実行
の最初ですべてのビツトがクリアされる。
SJ110に退避された内容がどの汎用レジスタのもの
であつたかを識別するフラグである。FI170,FJ
180は共に16ビツト長あり、各ビツトはAR120
の8本のレジスタおよびDR130の8本のレジスタに
対応している。例えば、FI170の第3ビツト目に1
が立つていれば、SI100には、AR120の第3番
目のレジスタの更新前の値が退避されていることにな
る。また、FI170,FJ180は、一つの命令実行
の最初ですべてのビツトがクリアされる。
回路190は、FI170,FJ180に前段落で述べ
た通りの値を設定するための回路である。この回路は、
OPW210,EXWL230に格納された命令の先頭ワード
および拡張ワードのうちの汎用レジスタの番号が指定さ
れるフイールドの情報340,350,360から、F
I170,FJ180に設定すべき値を決定する。この
値のFI170,FJ180への設定は、実際にSI1
00,SJ110に汎用レジスタの値を退避する時に行
なわれる。
た通りの値を設定するための回路である。この回路は、
OPW210,EXWL230に格納された命令の先頭ワード
および拡張ワードのうちの汎用レジスタの番号が指定さ
れるフイールドの情報340,350,360から、F
I170,FJ180に設定すべき値を決定する。この
値のFI170,FJ180への設定は、実際にSI1
00,SJ110に汎用レジスタの値を退避する時に行
なわれる。
回路200は、Cバス330上の値をAR120あるい
はDR130にセツトするための指示信号370を作成
する回路である。回路200は、FI170、あるい
は、FJ180の間接指定により、セツト指示信号37
0を作成することができる。例えば、FI170の第4
番目のビツトが1になつている時、AR120の8本レ
ジスタのうち第4番目のレジスタのセツト指示信号に起
動がかかる。この回路を用いれば、SI100,SJ1
10に退避されたレジスタの値を、FI170あるい
は、FJ180に示された汎用レジスタにCバス330
を介して回復することができる。
はDR130にセツトするための指示信号370を作成
する回路である。回路200は、FI170、あるい
は、FJ180の間接指定により、セツト指示信号37
0を作成することができる。例えば、FI170の第4
番目のビツトが1になつている時、AR120の8本レ
ジスタのうち第4番目のレジスタのセツト指示信号に起
動がかかる。この回路を用いれば、SI100,SJ1
10に退避されたレジスタの値を、FI170あるい
は、FJ180に示された汎用レジスタにCバス330
を介して回復することができる。
次に本プロセサの命令フオーマツトおよびオペランドの
実効アドレス計算を行なうためのアドレシング・モード
についての説明を行ない、各モード別に汎用レジスタの
内容の退避、回復について述べる。
実効アドレス計算を行なうためのアドレシング・モード
についての説明を行ない、各モード別に汎用レジスタの
内容の退避、回復について述べる。
第2図は本プロセサの命令フオーマツトを示したもので
ある。第2図(a)は、命令の先頭16ビツトのフオー
マツトの典型である。11〜9ビツトはRXフイールド
でありオペランドとなる汎用レジスタ番号を示す。アド
レスレジスタ、データレジスタの区別は、他ビツトで指
定される。ビツト5〜3は、Modeフイールドでありもう
一方のオペランドに対するアドレシング・モードを示
し、ビツト2〜0は、RYフイールドであり、Modeフイ
ールドで示されたアドレシングモードに用いられる汎用
レジスタの番号が指定される。第3図は、Modeフイール
ドで指定される8種類のアドレシング・モードの一覧で
ある。以下、これらのアドレシング・モードの内容と、
第1図における実効アドレス計算の手順と、汎用レジス
タの内容を退避する方法について述べる。
ある。第2図(a)は、命令の先頭16ビツトのフオー
マツトの典型である。11〜9ビツトはRXフイールド
でありオペランドとなる汎用レジスタ番号を示す。アド
レスレジスタ、データレジスタの区別は、他ビツトで指
定される。ビツト5〜3は、Modeフイールドでありもう
一方のオペランドに対するアドレシング・モードを示
し、ビツト2〜0は、RYフイールドであり、Modeフイ
ールドで示されたアドレシングモードに用いられる汎用
レジスタの番号が指定される。第3図は、Modeフイール
ドで指定される8種類のアドレシング・モードの一覧で
ある。以下、これらのアドレシング・モードの内容と、
第1図における実効アドレス計算の手順と、汎用レジス
タの内容を退避する方法について述べる。
(1)データレジスタ,アドレスレジスタ このモードは、オペランドがデータレジスタあるいはア
ドレスレジスタそのものである場合である。従つて実効
アドレスの計算は行なわず、汎用レジスタ内容の退避も
行なわない。
ドレスレジスタそのものである場合である。従つて実効
アドレスの計算は行なわず、汎用レジスタ内容の退避も
行なわない。
(2)アドレスレジスタ間接 このモードは、オペランドの実効アドレスがRYフイー
ルドで指定されるアドレスレジスタの値の場合である。
第1図において、この実効アドレスはAR120からD
バス300を介してAOR160に格納される、Dバス
300上にAR120の値が流れている時にSI100
にその値が退避される。また、これと同時に、命令ワー
ドのRYフイールドで示されたアドレスレジスタ番号に
対応するFI170のビツト位置に1が立つ。この様に
実効アドレスをAORに格納する処理と並列して、汎用レ
ジスタの内容の退避ができるため、性能上のオーバーヘ
ツドは全くない。
ルドで指定されるアドレスレジスタの値の場合である。
第1図において、この実効アドレスはAR120からD
バス300を介してAOR160に格納される、Dバス
300上にAR120の値が流れている時にSI100
にその値が退避される。また、これと同時に、命令ワー
ドのRYフイールドで示されたアドレスレジスタ番号に
対応するFI170のビツト位置に1が立つ。この様に
実効アドレスをAORに格納する処理と並列して、汎用レ
ジスタの内容の退避ができるため、性能上のオーバーヘ
ツドは全くない。
(3)ポスト・インクリメント このモードでは、オペランドの実効アドレスはRYフイ
ールドで指定されるアドレスレジスタの値であり、その
アドレスレジスタに内容は、固定長だけ後で加算され
る。第1図において、この実効アドレスはAR120か
らDバス300を介してAOR160に格納される。そ
れと同時にAR120からAバス310を介してAu1
40のA入力にアドレスレジスタの値が入り、D入力に
は固定長発生器150から固定長が入り、B入力にはゼ
ロが入り、これらの加算結果がCバス330を介してA
R120に設定される。SI100へのアドレスレジス
タの内容の退避は(2)の場合と同じである。
ールドで指定されるアドレスレジスタの値であり、その
アドレスレジスタに内容は、固定長だけ後で加算され
る。第1図において、この実効アドレスはAR120か
らDバス300を介してAOR160に格納される。そ
れと同時にAR120からAバス310を介してAu1
40のA入力にアドレスレジスタの値が入り、D入力に
は固定長発生器150から固定長が入り、B入力にはゼ
ロが入り、これらの加算結果がCバス330を介してA
R120に設定される。SI100へのアドレスレジス
タの内容の退避は(2)の場合と同じである。
(4)プレ・デイクリメント このモードでは、オペランドの実効アドレスは、RYフ
イールドで指定されるアドレスレジスタの値に固定長を
減じた値であり、その値によつてアドレスレジスタの内
容が更新される。この場合には、第1図において、AR
120の値がAバス310を介してAu140のA入力
に入り、固定長発生器150からはマイナスの固定長が
D入力に入り、B入力にはゼロが入る。これにより、実
効アドレスが計算されそのAu140の結果がAOR1
60に格納され、また、Cバス330を介して、AR1
20に設定される。また、Aバス310上にAR120
の値が流れている時にSI100にその値が退避され
る。FI170の設定は(2)のケースと同じである。
イールドで指定されるアドレスレジスタの値に固定長を
減じた値であり、その値によつてアドレスレジスタの内
容が更新される。この場合には、第1図において、AR
120の値がAバス310を介してAu140のA入力
に入り、固定長発生器150からはマイナスの固定長が
D入力に入り、B入力にはゼロが入る。これにより、実
効アドレスが計算されそのAu140の結果がAOR1
60に格納され、また、Cバス330を介して、AR1
20に設定される。また、Aバス310上にAR120
の値が流れている時にSI100にその値が退避され
る。FI170の設定は(2)のケースと同じである。
(5)インデツクス付アドレスレジスタ間接 このモードでは、命令は拡張ワードを持つ。第2図
(b)にこの拡張ワードのフオーマツトを示す。このワ
ードのRZフイールドは、インデツクスレジスタとなる
汎用レジスタの番号を示す。このレジスタがデータレジ
スタであるか、あるいは、アドレスレジスタであるかの
区別はDビツトで区分ける。Dispフイールドは、デイス
プレイスメントの値を示す。さて、このモードでは、オ
ペランドの実効アドレスは、RYフイールドで指定され
るベースレジスタとなるアドレスレジスタの値に、Dビ
ツトおよびRZフイールドで指定されるインデツクスレ
ジスタの値と、Dispフイールドに入つているデイスプレ
ースメントの値を加算した値である。
(b)にこの拡張ワードのフオーマツトを示す。このワ
ードのRZフイールドは、インデツクスレジスタとなる
汎用レジスタの番号を示す。このレジスタがデータレジ
スタであるか、あるいは、アドレスレジスタであるかの
区別はDビツトで区分ける。Dispフイールドは、デイス
プレイスメントの値を示す。さて、このモードでは、オ
ペランドの実効アドレスは、RYフイールドで指定され
るベースレジスタとなるアドレスレジスタの値に、Dビ
ツトおよびRZフイールドで指定されるインデツクスレ
ジスタの値と、Dispフイールドに入つているデイスプレ
ースメントの値を加算した値である。
この場合には、第1図において、ベースレジスタとなる
AR120の値がAバス310を介してAu140のA
入力に入り、インデツクスレジスタとなるAR120あ
るいはDR130の値がBバス320を介してB入力に
入り、デイスプレースメントの値が、拡張ワードの格納
されたEXWL230からDバス300を介してD入力に入
る。Au140は、これらの入力を加算して実効アドレ
スを作成し、AOR160にそれを格納する。
AR120の値がAバス310を介してAu140のA
入力に入り、インデツクスレジスタとなるAR120あ
るいはDR130の値がBバス320を介してB入力に
入り、デイスプレースメントの値が、拡張ワードの格納
されたEXWL230からDバス300を介してD入力に入
る。Au140は、これらの入力を加算して実効アドレ
スを作成し、AOR160にそれを格納する。
一方、Aバス310上にAR120の値が流れている時
にSI100にその値を退避し、Bバス320上にAR
120あるいはDR130の値が流れている時にSJ1
10にその値を退避する。また、これと同等に、命令ワ
ードのRYフイールドで示されたアドレスレジスタ番号
に対応するFI170のビツト位置に1が立ち、また、
拡張ワードのDビツトとRZフイールドで示されたデー
タレジスタあるいはアドレスレジスタ番号に対応するF
J180のビツト位置に1が立つ。この場合も、実効ア
ドレスの計算と並列して汎用レジスタ内容の退避ができ
るため、性能上のオーバーヘツドは全くない。
にSI100にその値を退避し、Bバス320上にAR
120あるいはDR130の値が流れている時にSJ1
10にその値を退避する。また、これと同等に、命令ワ
ードのRYフイールドで示されたアドレスレジスタ番号
に対応するFI170のビツト位置に1が立ち、また、
拡張ワードのDビツトとRZフイールドで示されたデー
タレジスタあるいはアドレスレジスタ番号に対応するF
J180のビツト位置に1が立つ。この場合も、実効ア
ドレスの計算と並列して汎用レジスタ内容の退避ができ
るため、性能上のオーバーヘツドは全くない。
(6)インデツクス付プログラムカウンタ このモードは、(5)のケースにおいて、ベースレジス
タをプログラムカウンタに置換えた場合である。また、
プログラムカウンタの退避は行なわないこと以外は、
(5)と全く同じ処理が行なわれる。
タをプログラムカウンタに置換えた場合である。また、
プログラムカウンタの退避は行なわないこと以外は、
(5)と全く同じ処理が行なわれる。
(7)絶対番地 このモードでは、オペランドの実効アドレスは、命令の
拡張ワードに入つている値そのものである。汎用レジス
タとは関係ないので、レジスタ内容の退避は行なわな
い。
拡張ワードに入つている値そのものである。汎用レジス
タとは関係ないので、レジスタ内容の退避は行なわな
い。
以上述べた通り、本方式では実効アドレスの計算と並列
して汎用レジスタの内容を退避しておくことができるた
めにこれに関して性能上のオーバヘツドが出ない。
して汎用レジスタの内容を退避しておくことができるた
めにこれに関して性能上のオーバヘツドが出ない。
命令実行中に、ページフオールトが検出されてSI10
0,SJ110に退避されている内容を命令再実行前に
回復することは回路200を介して行なわれる。この手
順は、回路200の説明で述べた通りである。
0,SJ110に退避されている内容を命令再実行前に
回復することは回路200を介して行なわれる。この手
順は、回路200の説明で述べた通りである。
以上、本発明の一実施例を述べたが、この方式が他の命
令フオーマツト,アドレシング・モードを持つプロセサ
に対しても適用できることは明らかである。
令フオーマツト,アドレシング・モードを持つプロセサ
に対しても適用できることは明らかである。
又、多数ワードのムーブ命令に対してもレジスタの値を
退避しているため、途中のワードにおいてページフオル
トが起つたとしても、退避した値を復帰するだけで命令
再開が可能となる。
退避しているため、途中のワードにおいてページフオル
トが起つたとしても、退避した値を復帰するだけで命令
再開が可能となる。
本発明によれば、フラグレジスタに汎用レジスタの識別
情報を格納することにより、命令再実行の際のオペラン
ドの実効アドレスの計算に必要な汎用レジスタの内容だ
け、退避レジスタに退避することができ、少ないウェア
で仮想記憶システムをサポートすることが可能となる。
情報を格納することにより、命令再実行の際のオペラン
ドの実効アドレスの計算に必要な汎用レジスタの内容だ
け、退避レジスタに退避することができ、少ないウェア
で仮想記憶システムをサポートすることが可能となる。
また、汎用レジスタの情報の退避レジスタへの退避は実
効アドレスの計算と並列に行われるため、仮想記憶シス
テムをサポートするための性能上のオーバーヘッドが抑
えられる。
効アドレスの計算と並列に行われるため、仮想記憶シス
テムをサポートするための性能上のオーバーヘッドが抑
えられる。
第1図はプロセサの内部構成図、第2図は命令フオーマ
ツト、第3図はアドレシング・モード一覧図である。 100,110……退避用レジスタ、120,130…
…汎用レジスタ、140……アドレス計算用アダー、1
70,180……退避用レジスタ内容指示フラグ、19
0……フラグ設定回路、200……汎用レジスタ設定回
路。
ツト、第3図はアドレシング・モード一覧図である。 100,110……退避用レジスタ、120,130…
…汎用レジスタ、140……アドレス計算用アダー、1
70,180……退避用レジスタ内容指示フラグ、19
0……フラグ設定回路、200……汎用レジスタ設定回
路。
Claims (3)
- 【請求項1】情報を格納する汎用レジスタ群と、 命令のアドレシングモードが上記汎用レジスタ群のひと
つのレジスタの情報をオペランドの実効アドレスの計算
に使用するアドレシングモードである際に、上記実効ア
ドレス計算と並列に上記汎用レジスタ群の上記ひとつの
レジスタの情報を退避するための退避レジスタと、 上記退避レジスタに退避された情報が上記汎用レジスタ
群のどのレジスタのものであるかを示す識別情報を格納
するためのフラグレジスタと、 上記フラグレジスタと上記汎用レジスタ群とに接続さ
れ、上記退避レジスタに退避された情報を上記フラグレ
ジスタに格納された上記識別情報によって示された汎用
レジスタへ回復する手段を具備したことを特徴とするデ
ータ処理装置。 - 【請求項2】上記データ処理装置は仮想記憶システムを
サポートするデータ処理装置であって、 命令実行時に上記仮想記憶システムに関連したフォール
トを検出した時に、該フォールトを生じた命令の再実行
の前に、上記退避レジスタに退避された情報が上記識別
情報によって示された上記汎用レジスタへ回復されるこ
とを特徴とする特許請求の範囲第1項記載のデータ処理
装置。 - 【請求項3】上記フラグレジスタに格納される上記識別
情報は命令の特定フィールドの情報に従って設定される
ことを特徴とする特許請求の範囲第1項または第2項記
載のデータ処理装置。
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 JPS61173358A (ja) | 1986-08-05 |
| JPH0668739B2 true 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) |
Families Citing this family (7)
| 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 |
| JPH0281242A (ja) * | 1988-09-19 | 1990-03-22 | Matsushita Electric Ind Co Ltd | データ処理装置 |
| JPH0769806B2 (ja) * | 1988-10-14 | 1995-07-31 | 三菱電機株式会社 | データ処理装置 |
| EP0365322A3 (en) * | 1988-10-19 | 1991-11-27 | Hewlett-Packard Company | Method and apparatus for exception handling in pipeline processors having mismatched instruction pipeline depths |
| 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
Also Published As
| Publication number | Publication date |
|---|---|
| JPS61173358A (ja) | 1986-08-05 |
| US4797816A (en) | 1989-01-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP0217168B1 (en) | Method for processing address translation exceptions in a virtual memory system | |
| US5003458A (en) | Suspended instruction restart processing system based on a checkpoint microprogram address | |
| US5574872A (en) | Method and apparatus for controlling the saving of pipelines in pipelined processors during trap handling | |
| US5146569A (en) | System for storing restart address of microprogram, determining the validity, and using valid restart address to resume execution upon removal of suspension | |
| JPH0668739B2 (ja) | データ処理装置 | |
| JPS58121457A (ja) | 情報処理装置 | |
| JPH04373026A (ja) | プログラム中断方法 | |
| US5906002A (en) | Method and apparatus for saving and restoring the context of registers using different instruction sets for different sized registers | |
| JPH056281A (ja) | 情報処理装置 | |
| JP2906799B2 (ja) | 情報処理装置 | |
| JP2562838B2 (ja) | プロセッサ及びストアバッファ制御方法 | |
| JP2574918B2 (ja) | 割り込み復帰処理方式 | |
| JP2000112754A (ja) | データ処理装置 | |
| JPH01231126A (ja) | 情報処理装置 | |
| JPH02148226A (ja) | 情報処理装置 | |
| JPS63138432A (ja) | 情報処理装置 | |
| JPS58166454A (ja) | デ−タ処理装置 | |
| JPS6368947A (ja) | ペ−ジフオ−ルト再開処理方式 | |
| JPH07120286B2 (ja) | 浮動小数点関数擬似命令処理方法 | |
| JPS626329A (ja) | デ−タ転送回路 | |
| JPS63124149A (ja) | プロセッサ | |
| JPS61123937A (ja) | データ処理装置のデータ駆動型制御方式 | |
| JPH04133132A (ja) | 多段遅延命令を配置した遅延分岐処理方式 | |
| JPS60142748A (ja) | 演算処理装置 | |
| JP2003271381A (ja) | エラー訂正制御回路 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| EXPY | Cancellation because of completion of term |