JPH05233288A - 情報処理装置 - Google Patents
情報処理装置Info
- Publication number
- JPH05233288A JPH05233288A JP6987992A JP6987992A JPH05233288A JP H05233288 A JPH05233288 A JP H05233288A JP 6987992 A JP6987992 A JP 6987992A JP 6987992 A JP6987992 A JP 6987992A JP H05233288 A JPH05233288 A JP H05233288A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- exception
- flag
- stage
- 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
Links
- 230000015654 memory Effects 0.000 claims abstract description 72
- 238000012545 processing Methods 0.000 claims abstract description 38
- 238000000034 method Methods 0.000 claims description 44
- 230000008569 process Effects 0.000 claims description 41
- 230000010365 information processing Effects 0.000 claims description 22
- 238000001514 detection method Methods 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 7
- 238000012937 correction Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000000593 degrading effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 2
- 230000006386 memory function Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Landscapes
- Advance Control (AREA)
Abstract
(57)【要約】
【目的】 例外発生によって制御を明け渡したタスクの
再開を可能とし、かつ性能低下を回避する。 【構成】 メモリアクセス命令例外正確化のために、予
め定められた命令によって変更可能である第1にフラグ
と、この第1のフラグの値に応じてメモリアクセスに関
係する処理を第1の命令の例外検出処理の終了まで、こ
の第1の命令に後続する第2の命令の発行による命令カ
ウンタの更新を延期する制御手段(4,5,21〜2
3,24,25)を有し、かつ演算命令例外正確化のた
めに、予め定められた命令によって変更可能である第2
のフラグと、この第2のフラグの値に応じて演算に関係
する処理を行う第3の命令の例外検出処理の終了まで、
この第3の命令に後続する第4の命令の発行による命令
カウンタの更新を延期する制御手段(4,5,21〜2
3,24,25)を有する。
再開を可能とし、かつ性能低下を回避する。 【構成】 メモリアクセス命令例外正確化のために、予
め定められた命令によって変更可能である第1にフラグ
と、この第1のフラグの値に応じてメモリアクセスに関
係する処理を第1の命令の例外検出処理の終了まで、こ
の第1の命令に後続する第2の命令の発行による命令カ
ウンタの更新を延期する制御手段(4,5,21〜2
3,24,25)を有し、かつ演算命令例外正確化のた
めに、予め定められた命令によって変更可能である第2
のフラグと、この第2のフラグの値に応じて演算に関係
する処理を行う第3の命令の例外検出処理の終了まで、
この第3の命令に後続する第4の命令の発行による命令
カウンタの更新を延期する制御手段(4,5,21〜2
3,24,25)を有する。
Description
【0001】
【産業上の利用分野】本発明は情報処理装置の命令制御
方式に係り、特に例外処理の正確化方式を実現するため
の情報処理装置に関するものである。
方式に係り、特に例外処理の正確化方式を実現するため
の情報処理装置に関するものである。
【0002】
【従来の技術】従来、この種の情報処理装置の例として
以下に述べる2つがある。それらは、図3および図4に
示した命令パイプライン構成を持つ。この図3におい
て、3−1はDステージ命令レジスタ、3−2は命令デ
コーダ、3−3はAステージ命令レジスタ、3−4はア
ドレス加算器、3−5はTステージ命令レジスタ、3−
6はTLB(Translation Lookasi
de Buffer)、3−7はOFステージ命令レジ
スタ、3−8はメモリ(キャッシュ)、3−9はEステ
ージ命令レジスタ、3−10はALU(Arithum
etic Logical Unit)、3−11はW
ステージ命令レジスタ、3−12はGR(Genera
l Register:汎用レジスタ)である。図4に
おいて、4−1はAステージ命令レジスタ、4ー2は命
令デコーダ、4−3はBステージ命令レジスタ、4−4
はGR、4−5はCステージ命令レジスタ、4−6はア
ドレス加算器、4−7はDステージ命令レジスタ、4−
8はM1ステージ命令レジスタ、4−9はM2ステージ
命令レジスタ、4−10はMnステージ命令レジスタ、
4−11はWステージ命令レジスタ、4−12はF1ス
テージ命令レジスタ、4−13はF2ステージ命令レジ
スタ、4−14はFmステージ命令レジスタ、4−15
はGRである。
以下に述べる2つがある。それらは、図3および図4に
示した命令パイプライン構成を持つ。この図3におい
て、3−1はDステージ命令レジスタ、3−2は命令デ
コーダ、3−3はAステージ命令レジスタ、3−4はア
ドレス加算器、3−5はTステージ命令レジスタ、3−
6はTLB(Translation Lookasi
de Buffer)、3−7はOFステージ命令レジ
スタ、3−8はメモリ(キャッシュ)、3−9はEステ
ージ命令レジスタ、3−10はALU(Arithum
etic Logical Unit)、3−11はW
ステージ命令レジスタ、3−12はGR(Genera
l Register:汎用レジスタ)である。図4に
おいて、4−1はAステージ命令レジスタ、4ー2は命
令デコーダ、4−3はBステージ命令レジスタ、4−4
はGR、4−5はCステージ命令レジスタ、4−6はア
ドレス加算器、4−7はDステージ命令レジスタ、4−
8はM1ステージ命令レジスタ、4−9はM2ステージ
命令レジスタ、4−10はMnステージ命令レジスタ、
4−11はWステージ命令レジスタ、4−12はF1ス
テージ命令レジスタ、4−13はF2ステージ命令レジ
スタ、4−14はFmステージ命令レジスタ、4−15
はGRである。
【0003】つぎに動作について説明する。まず、図3
に示したような、主に汎用コンピュータで使用される命
令パイプライン方式について説明する。なお、説明簡単
化のため、また、図4で示した命令パイプラインとの比
較平易化のため、命令フェッチを行うステージを省略
し、また、各ステージでの機能回復を抽象化している。
Dステージ命令レジスタ3−1ではフェッチしてきた命
令をデコードするためにDレジスタに命令コードを設定
する。そして、Aステージ命令レジスタ3−3ではオペ
ランドのメモリアドレスを計算するためにAレジスタに
アドレス加算器3−4の入力データを設定し、オペラン
ドの論理アドレスを計算する。Tステージ命令レジスタ
3−5ではアドレス加算器3−4で計算した論理アドレ
スをTレジスタに格納し、TLB3−6で物理アドレス
に変換する。OFステージ命令レジスタ3−7ではOF
レジスタにオペランドの物理アドレスを格納し、メモリ
(あるいはキャッシュ)3−8からオペランドをフェッ
チする。そして、Eステージ命令レジスタ3−9ではE
レジスタにメモリからフェッチしてきたオペランドを格
納し、ALU3−10で演算を行う。Wステージ命令レ
ジスタ3−11ではALU3−10で演算した結果をW
レジスタに格納し、その結果をGR3−12に格納す
る。このように、多少のステージ数等の違いこそあれ、
Dステージの命令デコードからWステージの結果のGR
書き込みまでが、各々1マシンサイクル毎に動作し、流
れ作業的に並列処理することで、性能向上を図っている
汎用計算機が一般的である。
に示したような、主に汎用コンピュータで使用される命
令パイプライン方式について説明する。なお、説明簡単
化のため、また、図4で示した命令パイプラインとの比
較平易化のため、命令フェッチを行うステージを省略
し、また、各ステージでの機能回復を抽象化している。
Dステージ命令レジスタ3−1ではフェッチしてきた命
令をデコードするためにDレジスタに命令コードを設定
する。そして、Aステージ命令レジスタ3−3ではオペ
ランドのメモリアドレスを計算するためにAレジスタに
アドレス加算器3−4の入力データを設定し、オペラン
ドの論理アドレスを計算する。Tステージ命令レジスタ
3−5ではアドレス加算器3−4で計算した論理アドレ
スをTレジスタに格納し、TLB3−6で物理アドレス
に変換する。OFステージ命令レジスタ3−7ではOF
レジスタにオペランドの物理アドレスを格納し、メモリ
(あるいはキャッシュ)3−8からオペランドをフェッ
チする。そして、Eステージ命令レジスタ3−9ではE
レジスタにメモリからフェッチしてきたオペランドを格
納し、ALU3−10で演算を行う。Wステージ命令レ
ジスタ3−11ではALU3−10で演算した結果をW
レジスタに格納し、その結果をGR3−12に格納す
る。このように、多少のステージ数等の違いこそあれ、
Dステージの命令デコードからWステージの結果のGR
書き込みまでが、各々1マシンサイクル毎に動作し、流
れ作業的に並列処理することで、性能向上を図っている
汎用計算機が一般的である。
【0004】つぎに、図4に示すようにメモリアクセス
処理あるいは演算処理が多重ステージ化されている計算
機について説明する。このような情報処理装置は、スー
パーパイプラインと呼ばれている。
処理あるいは演算処理が多重ステージ化されている計算
機について説明する。このような情報処理装置は、スー
パーパイプラインと呼ばれている。
【0005】まず、メモリアクセス命令の動作について
説明する。例えば、ロード命令の場合、Aステージ命令
レジスタ4−1ではレジスタAにフェッチした命令コー
ドを格納し、デコードする。Bステージ命令レジスタ4
−3では命令デコーダ4−2で得た制御情報をレジスタ
Bに格納し、GR4−4からロードする論理アドレスを
計算するための入力データを読み出す。Cステージ命令
レジスタ4−5ではレジスタCにGR4−4から読み出
したデータを格納し、アドレス加算器4−6でロードす
るデータの論理アドレスを計算する。Dステージ命令レ
ジスタ4−7ではメモリアクセス関係の機能ユニットの
繁忙状況等を解析して命令の発行を制御する。このDス
テージ命令レジスタ4−7から発行された命令は、M1
ステージ命令レジスタ4−8からMnステージ命令レジ
スタ4−10までで、キャッシュのアクセス、TLB索
引(物理アドレス・キャッシュの場合は、TLB索引が
先)、キャッシュがミスした場合は主記憶アクセスが行
われる。ロードされたメモリのデータはWステージ命令
レジスタ4−11のWレジスタに格納され、次のサイク
ルでGR4−15に格納され、命令の実行が完了する。
説明する。例えば、ロード命令の場合、Aステージ命令
レジスタ4−1ではレジスタAにフェッチした命令コー
ドを格納し、デコードする。Bステージ命令レジスタ4
−3では命令デコーダ4−2で得た制御情報をレジスタ
Bに格納し、GR4−4からロードする論理アドレスを
計算するための入力データを読み出す。Cステージ命令
レジスタ4−5ではレジスタCにGR4−4から読み出
したデータを格納し、アドレス加算器4−6でロードす
るデータの論理アドレスを計算する。Dステージ命令レ
ジスタ4−7ではメモリアクセス関係の機能ユニットの
繁忙状況等を解析して命令の発行を制御する。このDス
テージ命令レジスタ4−7から発行された命令は、M1
ステージ命令レジスタ4−8からMnステージ命令レジ
スタ4−10までで、キャッシュのアクセス、TLB索
引(物理アドレス・キャッシュの場合は、TLB索引が
先)、キャッシュがミスした場合は主記憶アクセスが行
われる。ロードされたメモリのデータはWステージ命令
レジスタ4−11のWレジスタに格納され、次のサイク
ルでGR4−15に格納され、命令の実行が完了する。
【0006】つぎに、演算命令の動作について説明す
る。Aステージ命令レジスタ4−1からDステージ命令
レジスタ4−7までは、Cステージ命令レジスタ4−5
でアドレス計算を行わないこと以外は同様である。そし
て、Dステージ命令レジスタ4−7から発行された命令
は、F1ステージ命令レジスタ4−12〜Fmステージ
命令レジスタ4−14で演算が行われる。そして、最終
的には、その結果がWステージ命令レジスタ4−11で
GR4−15に格納される。
る。Aステージ命令レジスタ4−1からDステージ命令
レジスタ4−7までは、Cステージ命令レジスタ4−5
でアドレス計算を行わないこと以外は同様である。そし
て、Dステージ命令レジスタ4−7から発行された命令
は、F1ステージ命令レジスタ4−12〜Fmステージ
命令レジスタ4−14で演算が行われる。そして、最終
的には、その結果がWステージ命令レジスタ4−11で
GR4−15に格納される。
【0007】つぎに、図3の汎用機型のパイプラインと
図4のスーパーパイプラインを比較してみると、汎用機
型の長所は、パイプラインの段数が少ないため、パイプ
ラインで受け渡される制御情報を保持するための記憶素
子が少なく済むことであり、逆に、その長所のためにマ
シンサイクルを短くすることができずに性能が向上しな
いことであり、図4のスーパーパイプラインは、ちょう
ど逆のことが言える。また、図4のスーパーパイプライ
ンにおいて、メモリアクセス命令実行時に、例えば、キ
ャッシュ・ミスが発生しても、図3の汎用機のように命
令パイプライン全体が停止することはなく、演算命令の
実行は可能であることもあげられる。また、IC(In
struction Counter)を更新するタイ
ミングも、汎用機とスーパーパイプラインでは異なる。
汎用機の場合、ICに対応する命令の実行が例外発生無
しで完了したことを確認してからE→Wステージの移行
タイミングで行われる。一方、スーパーパイプラインで
は、命令発行ステージであるDステージで行われること
が多い。その理由は、命令実行順序の保持がDステージ
以降では非常に困難であることだ。例えば、メモリアク
セス命令実行時にM1〜Mnステージでキャッシュのミ
スが発生した時などに、発行してからGRに結果が格納
されるまでの時間が予測不可能なものになる。そのた
め、後続の演算命令のGR書き込みが先に行われること
がある。ただ、この種の計算機の場合、このような書き
込みタイミングの追い越しが発生しても、実行結果が保
証されるための制御機構が用意されていることが多い。
その例として、CDC6600という計算機で実現され
ているレジスタ・スコアボードという方式が過去に発生
されている。(文献:THORNTON.J.E.[1
964].「Parallel operation
in the Control Data 660
0」、「Proc.Fall Joint Compu
ter Conf.26,33−40]、または、TH
ORNTON,J.E.[1970].Design
of a Computer,the Control
Data 6600,Scott,Foresma
n,Glenview,I11.)
図4のスーパーパイプラインを比較してみると、汎用機
型の長所は、パイプラインの段数が少ないため、パイプ
ラインで受け渡される制御情報を保持するための記憶素
子が少なく済むことであり、逆に、その長所のためにマ
シンサイクルを短くすることができずに性能が向上しな
いことであり、図4のスーパーパイプラインは、ちょう
ど逆のことが言える。また、図4のスーパーパイプライ
ンにおいて、メモリアクセス命令実行時に、例えば、キ
ャッシュ・ミスが発生しても、図3の汎用機のように命
令パイプライン全体が停止することはなく、演算命令の
実行は可能であることもあげられる。また、IC(In
struction Counter)を更新するタイ
ミングも、汎用機とスーパーパイプラインでは異なる。
汎用機の場合、ICに対応する命令の実行が例外発生無
しで完了したことを確認してからE→Wステージの移行
タイミングで行われる。一方、スーパーパイプラインで
は、命令発行ステージであるDステージで行われること
が多い。その理由は、命令実行順序の保持がDステージ
以降では非常に困難であることだ。例えば、メモリアク
セス命令実行時にM1〜Mnステージでキャッシュのミ
スが発生した時などに、発行してからGRに結果が格納
されるまでの時間が予測不可能なものになる。そのた
め、後続の演算命令のGR書き込みが先に行われること
がある。ただ、この種の計算機の場合、このような書き
込みタイミングの追い越しが発生しても、実行結果が保
証されるための制御機構が用意されていることが多い。
その例として、CDC6600という計算機で実現され
ているレジスタ・スコアボードという方式が過去に発生
されている。(文献:THORNTON.J.E.[1
964].「Parallel operation
in the Control Data 660
0」、「Proc.Fall Joint Compu
ter Conf.26,33−40]、または、TH
ORNTON,J.E.[1970].Design
of a Computer,the Control
Data 6600,Scott,Foresma
n,Glenview,I11.)
【0008】つぎに、図5によって情報処理装置におけ
るプロセスの切り換え動作について説明する。この図5
において、5−1はPSW(Program Stat
us Word)、5−2はIC(Instructi
on Counter)、5−3はGR(Genera
l Register:汎用レジスタ)、5−4はCB
P(Current Block Pointer)、
5−5はNBP(New Block Pointe
r)、5−6はメモリである。マルチタスク環境を実現
している情報処理装置上で実行させるユーザープログラ
ムは、複数のプロセスという処理単位に分割され、共有
されているハードウェア資源の有効利用のために、プロ
セス毎にCPU時間が分割して処理されている。この図
5は(a)に示す最初にプロセスAという処理が実行さ
れている時に、例外が発生し、シーケンスAによってプ
ロセスBの実行に切り替わり、プロセスBの実行が終了
し、シーケンスBによってプロセスAの実行に切り替わ
るまでを示している。
るプロセスの切り換え動作について説明する。この図5
において、5−1はPSW(Program Stat
us Word)、5−2はIC(Instructi
on Counter)、5−3はGR(Genera
l Register:汎用レジスタ)、5−4はCB
P(Current Block Pointer)、
5−5はNBP(New Block Pointe
r)、5−6はメモリである。マルチタスク環境を実現
している情報処理装置上で実行させるユーザープログラ
ムは、複数のプロセスという処理単位に分割され、共有
されているハードウェア資源の有効利用のために、プロ
セス毎にCPU時間が分割して処理されている。この図
5は(a)に示す最初にプロセスAという処理が実行さ
れている時に、例外が発生し、シーケンスAによってプ
ロセスBの実行に切り替わり、プロセスBの実行が終了
し、シーケンスBによってプロセスAの実行に切り替わ
るまでを示している。
【0009】そして、プロセスは、常にコンテクストと
いう実行状態を示す情報を保持し、そのプロセスが実行
中の場合は、そのコンテクストがハードウェアで用意さ
れている図5の(b)に示すPSW5−1,IC5−
2,GR5−3といったCPU内の高速な格納領域に存
在する。このコンテクストは、主にPSW5−1,IC
5−2,GR5−3に格納されるべき値で構成される構
造データである。ここで、PSW5−1はそのプロセス
の状態を示すかあるいはそのプロセスが割込受付を可能
とするかを示すフラグ群等で構成される。IC5−2は
そのプロセスで現在実行されている次の命令が存在する
メモリ中のアドレスを示す。GR5−3は汎用レジスタ
の値である。そして、現存する情報処理装置の中で、コ
ンテクストとして以上の3つを含んでいるものがほとん
どである。シーケンスAはプロセスAのコンテクストを
メモリに退避後、プロセスBのコンテクストをメモリ6
からロードする。逆に、シーケンスBはプロセスBのコ
ンテクストをメモリに退避後、プロセスAのコンテクス
トをメモリ6からロードする。
いう実行状態を示す情報を保持し、そのプロセスが実行
中の場合は、そのコンテクストがハードウェアで用意さ
れている図5の(b)に示すPSW5−1,IC5−
2,GR5−3といったCPU内の高速な格納領域に存
在する。このコンテクストは、主にPSW5−1,IC
5−2,GR5−3に格納されるべき値で構成される構
造データである。ここで、PSW5−1はそのプロセス
の状態を示すかあるいはそのプロセスが割込受付を可能
とするかを示すフラグ群等で構成される。IC5−2は
そのプロセスで現在実行されている次の命令が存在する
メモリ中のアドレスを示す。GR5−3は汎用レジスタ
の値である。そして、現存する情報処理装置の中で、コ
ンテクストとして以上の3つを含んでいるものがほとん
どである。シーケンスAはプロセスAのコンテクストを
メモリに退避後、プロセスBのコンテクストをメモリ6
からロードする。逆に、シーケンスBはプロセスBのコ
ンテクストをメモリに退避後、プロセスAのコンテクス
トをメモリ6からロードする。
【0010】シーケンスAについて、図5の(b)を参
照しさらに詳しく説明する。新たに登場してくるCBP
5−4,NBP5−5というCPU内に存在する格納領
域には、現在実行中のプロセスAのコンテクストが退避
するためのメモリ中のアドレスが保持され、NBP5−
5には、実行中プロセス退避後に新たに実行されるプロ
セスのコンテクストが存在するメモリ中のアドレスを保
持している。これらCBP5−4,NBP5−5の値
は、通常、オペレーティング・システムと呼ばれるソフ
トウェアによって管理される。そして、プロセスAのコ
ンテクストがCPU内の格納領域、PSW5−1,IC
5−2,GR5−3に格納されている。すなわち、プロ
セスAが実行中である時に例外が発生し、プロセスAの
コンテクストをCBP5−4で示されているメモリ5−
6上のアドレスにのように退避する。その後、プロセ
スBのコンテクストをメモリ5−6上のNBP5−5で
示されているメモリ6上のアドレスからのようにロー
ドしてくる。
照しさらに詳しく説明する。新たに登場してくるCBP
5−4,NBP5−5というCPU内に存在する格納領
域には、現在実行中のプロセスAのコンテクストが退避
するためのメモリ中のアドレスが保持され、NBP5−
5には、実行中プロセス退避後に新たに実行されるプロ
セスのコンテクストが存在するメモリ中のアドレスを保
持している。これらCBP5−4,NBP5−5の値
は、通常、オペレーティング・システムと呼ばれるソフ
トウェアによって管理される。そして、プロセスAのコ
ンテクストがCPU内の格納領域、PSW5−1,IC
5−2,GR5−3に格納されている。すなわち、プロ
セスAが実行中である時に例外が発生し、プロセスAの
コンテクストをCBP5−4で示されているメモリ5−
6上のアドレスにのように退避する。その後、プロセ
スBのコンテクストをメモリ5−6上のNBP5−5で
示されているメモリ6上のアドレスからのようにロー
ドしてくる。
【0011】以上説明したように、例外が発生した場合
でもコンテクストの値が正確に保持されている限り、プ
ロセスAの再開時の正当性は保証される。
でもコンテクストの値が正確に保持されている限り、プ
ロセスAの再開時の正当性は保証される。
【0012】
【発明が解決しようとする課題】上述した従来の情報処
理装置では、図4で説明した構成の計算機の構造による
理由から課題が発生する。すなわち、命令発行ステージ
以降の命令実行順序の保証が困難となることから、IC
更新タイミングが命令発行ステージである必要があるこ
とである。その結果、例外が発生した場合のIC値の正
当性保証が困難になることから、例外が発生して退避さ
れたプロセスの再開が困難になるという課題があった。
その課題による最も大きなインパクトは、仮想記憶機能
をオペレーティング・システムが享受できないことであ
る。そのメカニズムについて、図5を参照して説明す
る。プロセスAでメモリアクセス命令を実行している時
に、TLBを索引した結果、そのアクセスするアドレス
が実メモリ上に存在しないことが判明した場合、そのメ
モリアクセス命令で例外が発生する。この種の例外を、
ページ不在例外と呼ぶことが多い。その例外発生によっ
て、シーケンスAが起動しプロセスBに切り替わる。そ
して、このプロセスBは、プロセスAの例外発生メモリ
アクセス命令が必要とするメモリ空間を、ディスク等の
二次記憶から実メモリ上にロードし、TLBに対して要
求したメモリ空間が実メモリ上に存在するようにTLB
を書き換える。この操作は、TLBのページに対応する
TLBのエントリ中の存在/不在を示すビットを書き換
えることを意味する。このプロセスBの処理が終了する
とシーケンスBによってプロセスAに実行制御が移行す
る。プロセスAでは、ページ不在例外を発生させたメモ
リアクセス命令の実行から再開される。このような機能
をハードウェアが提供することによって、プロセスAを
プログラムする設計者は、二次記憶も実記憶のように考
えることが可能で、そのためのプログラミングの容易
さ、実記憶管理の容易さという大きな効果を生む。この
機能に代表されるものを一般に仮想記憶機能と呼んでい
る。
理装置では、図4で説明した構成の計算機の構造による
理由から課題が発生する。すなわち、命令発行ステージ
以降の命令実行順序の保証が困難となることから、IC
更新タイミングが命令発行ステージである必要があるこ
とである。その結果、例外が発生した場合のIC値の正
当性保証が困難になることから、例外が発生して退避さ
れたプロセスの再開が困難になるという課題があった。
その課題による最も大きなインパクトは、仮想記憶機能
をオペレーティング・システムが享受できないことであ
る。そのメカニズムについて、図5を参照して説明す
る。プロセスAでメモリアクセス命令を実行している時
に、TLBを索引した結果、そのアクセスするアドレス
が実メモリ上に存在しないことが判明した場合、そのメ
モリアクセス命令で例外が発生する。この種の例外を、
ページ不在例外と呼ぶことが多い。その例外発生によっ
て、シーケンスAが起動しプロセスBに切り替わる。そ
して、このプロセスBは、プロセスAの例外発生メモリ
アクセス命令が必要とするメモリ空間を、ディスク等の
二次記憶から実メモリ上にロードし、TLBに対して要
求したメモリ空間が実メモリ上に存在するようにTLB
を書き換える。この操作は、TLBのページに対応する
TLBのエントリ中の存在/不在を示すビットを書き換
えることを意味する。このプロセスBの処理が終了する
とシーケンスBによってプロセスAに実行制御が移行す
る。プロセスAでは、ページ不在例外を発生させたメモ
リアクセス命令の実行から再開される。このような機能
をハードウェアが提供することによって、プロセスAを
プログラムする設計者は、二次記憶も実記憶のように考
えることが可能で、そのためのプログラミングの容易
さ、実記憶管理の容易さという大きな効果を生む。この
機能に代表されるものを一般に仮想記憶機能と呼んでい
る。
【0013】ところが、図4のようなスーパーパイプラ
イン方式の情報処理装置では、シーケンスBによってプ
ロセスAの例外発生命令から実行を再開させることは不
可能である。その最も大きな原因はシーケンスAでプロ
セスAのコンテクストを正確に保存できないことであ
り、その中でもICの不正確さは大きな影響を与える。
この動作を図6のタイムチャートで説明する。まず、図
6は図4のスーパーパイプライン計算機で例外が発生し
た場合の、IC更新タイミングについて説明している。
イン方式の情報処理装置では、シーケンスBによってプ
ロセスAの例外発生命令から実行を再開させることは不
可能である。その最も大きな原因はシーケンスAでプロ
セスAのコンテクストを正確に保存できないことであ
り、その中でもICの不正確さは大きな影響を与える。
この動作を図6のタイムチャートで説明する。まず、図
6は図4のスーパーパイプライン計算機で例外が発生し
た場合の、IC更新タイミングについて説明している。
【0014】この図6において、Aステージから順にメ
モリアクセス命令1,命令2,命令3が連続して処理さ
れて、DステージからM1ステージに落ちるサイクル
(5)、(6)、(7)がISSUEタイミングとな
る。その1サイクル後、すなわち、サイクル(6)、
(7)、(8)でIC更新指示信号が発生し、更にその
1サイクル後にICが+4づつカウント・アップされ
る。なお、図6において、記号*は命令2で割込発生を
示す。そして、最も遅い場合、例外は命令2の場合、M
6ステージのサイクル(12)で発生する。発生した
後、後続命令は全てキャンセルされ、更に先行する命令
の実行が完了した後で、図5で説明したシーケンスAの
ような割込シーケンスが起動する。しかし、その割込シ
ーケンスでコンテクストとして退避されるICの値は、
命令3の次の命令を示しているので、図5で説明したよ
うなシーケンスBによる再開は不可能である。そこで、
図2のように例外が発生しないことを確認するまで、後
続命令の発行を延期する方式が考えられる。すなわち、
例外発生のないことを確認していることを示すフラグを
用意し、命令1がM6ステージを通過したときに、その
フラグをリセットし(サイクル(11))、そのフラグ
を見て後続の命令2の発行を延期する制御を採用する。
モリアクセス命令1,命令2,命令3が連続して処理さ
れて、DステージからM1ステージに落ちるサイクル
(5)、(6)、(7)がISSUEタイミングとな
る。その1サイクル後、すなわち、サイクル(6)、
(7)、(8)でIC更新指示信号が発生し、更にその
1サイクル後にICが+4づつカウント・アップされ
る。なお、図6において、記号*は命令2で割込発生を
示す。そして、最も遅い場合、例外は命令2の場合、M
6ステージのサイクル(12)で発生する。発生した
後、後続命令は全てキャンセルされ、更に先行する命令
の実行が完了した後で、図5で説明したシーケンスAの
ような割込シーケンスが起動する。しかし、その割込シ
ーケンスでコンテクストとして退避されるICの値は、
命令3の次の命令を示しているので、図5で説明したよ
うなシーケンスBによる再開は不可能である。そこで、
図2のように例外が発生しないことを確認するまで、後
続命令の発行を延期する方式が考えられる。すなわち、
例外発生のないことを確認していることを示すフラグを
用意し、命令1がM6ステージを通過したときに、その
フラグをリセットし(サイクル(11))、そのフラグ
を見て後続の命令2の発行を延期する制御を採用する。
【0015】そして、この方式を採用した場合、メモリ
アクセス命令発行後の全命令の発行は8サイクル後とな
り、性能上非常に影響が大きい。しかし、その方式を採
用した場合に図2で示しているように、命令2でM6ス
テージで例外が発生した時に、(サイクル(19))I
Cの値は、命令2によるIC更新がキャンセルされるの
で、割込シーケンスが発生した時には、命令2を指して
いる。よって、命令2からの再開可能となる。
アクセス命令発行後の全命令の発行は8サイクル後とな
り、性能上非常に影響が大きい。しかし、その方式を採
用した場合に図2で示しているように、命令2でM6ス
テージで例外が発生した時に、(サイクル(19))I
Cの値は、命令2によるIC更新がキャンセルされるの
で、割込シーケンスが発生した時には、命令2を指して
いる。よって、命令2からの再開可能となる。
【0016】以上の説明をまとめると、例外処理の正確
化のためには、性能が低下するというジレンマがあるこ
とが結論づけられる。すなわち、例外処理の正確化を重
視した構成が図3の汎用機方式で、性能を重視した構成
が図4のスーパーパイプライン方式ということが概ね言
える。
化のためには、性能が低下するというジレンマがあるこ
とが結論づけられる。すなわち、例外処理の正確化を重
視した構成が図3の汎用機方式で、性能を重視した構成
が図4のスーパーパイプライン方式ということが概ね言
える。
【0017】
【課題を解決するための手段】本発明の情報処理装置
は、命令発行後のメモリアクセスが複数段のステージで
処理され、先行する命令の処理が完了しないうちに、次
の命令発行が可能なパイプライン処理を行う情報処理装
置において、予め定められた命令によって変更可能であ
る第1のフラグと、この第1のフラグの値に応じてメモ
リアクセスに関係する処理を行う第1の命令の例外検出
処理の終了までこの第1の命令に後続する第2の命令の
発行による命令カウンタの更新を延期する制御手段を備
えるものである。また、本発明の別の発明による情報処
理装置は、命令発行後の演算が複数段のステージで処理
され、先行する演算命令の処理が完了しないうちに次の
命令発行が可能なパイプライン処理を行う情報処理装置
において、予め定められた命令によって変更可能である
第2のフラグと、この第2のフラグの値に応じて演算に
関係する処理を行う第3の命令の例外検出処理の終了ま
でこの第3の命令に後続する第4の命令発行による命令
カウンタの更新を延期する制御手段を備えるものであ
る。
は、命令発行後のメモリアクセスが複数段のステージで
処理され、先行する命令の処理が完了しないうちに、次
の命令発行が可能なパイプライン処理を行う情報処理装
置において、予め定められた命令によって変更可能であ
る第1のフラグと、この第1のフラグの値に応じてメモ
リアクセスに関係する処理を行う第1の命令の例外検出
処理の終了までこの第1の命令に後続する第2の命令の
発行による命令カウンタの更新を延期する制御手段を備
えるものである。また、本発明の別の発明による情報処
理装置は、命令発行後の演算が複数段のステージで処理
され、先行する演算命令の処理が完了しないうちに次の
命令発行が可能なパイプライン処理を行う情報処理装置
において、予め定められた命令によって変更可能である
第2のフラグと、この第2のフラグの値に応じて演算に
関係する処理を行う第3の命令の例外検出処理の終了ま
でこの第3の命令に後続する第4の命令発行による命令
カウンタの更新を延期する制御手段を備えるものであ
る。
【0018】
【作用】本発明の第1の発明においては、ソフトウェア
にメモリアクセス系例外正確化を意識した命令実行をハ
ードウェアに指示でき、また、第2の発明においては、
メモリ系例外正確化と同様に第2のフラグの操作によっ
て、例外正確化必要な実行部分をプログラム開発者に指
定させることによって、性能を低下させること無しに演
算例外の正確化を実現する。
にメモリアクセス系例外正確化を意識した命令実行をハ
ードウェアに指示でき、また、第2の発明においては、
メモリ系例外正確化と同様に第2のフラグの操作によっ
て、例外正確化必要な実行部分をプログラム開発者に指
定させることによって、性能を低下させること無しに演
算例外の正確化を実現する。
【0019】
【実施例】図1は本発明の一実施例を示すブロック図
で、図4で説明したスーパーパイプライン型計算機をベ
ースにして本発明を実現した例を示すものである。この
図1において、1は命令パイプライン制御部、2はPS
W、3は「ISSUE」フラグ、4はIC更新フラグ、
5はIC更新延期フラグ、6はIC(Instruct
ion Counter)、7は割込シーケンス制御
部、8は+4インクレメンタ、9はメモリ系例外検出
部、10はAステージの命令レジスタ、11はBステー
ジの命令レジスタ、12はCステージの命令レジスタ、
13はDステージの命令レジスタ、14はM1ステージ
の命令レジスタ、15はM2ステージの命令レジスタ、
16はM3ステージの命令レジスタ、17はM4ステー
ジの命令レジスタ、18はM5ステージの命令レジス
タ、19はM6ステージの命令レジスタ、20はM7ス
テージの命令レジスタ、21,22,23はAND回
路、24,25はOR回路である。
で、図4で説明したスーパーパイプライン型計算機をベ
ースにして本発明を実現した例を示すものである。この
図1において、1は命令パイプライン制御部、2はPS
W、3は「ISSUE」フラグ、4はIC更新フラグ、
5はIC更新延期フラグ、6はIC(Instruct
ion Counter)、7は割込シーケンス制御
部、8は+4インクレメンタ、9はメモリ系例外検出
部、10はAステージの命令レジスタ、11はBステー
ジの命令レジスタ、12はCステージの命令レジスタ、
13はDステージの命令レジスタ、14はM1ステージ
の命令レジスタ、15はM2ステージの命令レジスタ、
16はM3ステージの命令レジスタ、17はM4ステー
ジの命令レジスタ、18はM5ステージの命令レジス
タ、19はM6ステージの命令レジスタ、20はM7ス
テージの命令レジスタ、21,22,23はAND回
路、24,25はOR回路である。
【0020】そして、命令発行後のメモリアクセスが複
数段のステージで処理され、先行する命令の処理が完成
しないうちに、次の命令発行が可能なパイプライン処理
を行う情報処理装置において、図1のPSW2における
斜線部分は、予め定められた命令によって変更可能であ
る第1のフラグであり、IC更新フラグ4とIC更新延
期フラグ5およびAND回路21〜23ならびにOR回
路24,25は、この第1のフラグの値に応じてメモリ
アクセスに関係する処理を行う第1の命令の例外検出処
理の終了までこの第1の命令に後続する第2の命令の発
行による命令カウンタの更新を延期する制御手段を構成
している。また、命令発行後の演算が複数段のステージ
で処理され、先行する演算命令の処理が完了しないうち
に、次の命令発行が可能なパイプライン処理を行う情報
処理装置において、図1のPSW2における斜線部分
は、予め定められた命令によって変更可能である第2の
フラグであり、IC更新フラグ4とIC更新延期フラグ
5およびAND回路21〜23ならびにOR回路24,
25は、この第2のフラグの値に応じて演算に関係する
処理を行う第3の命令の例外検出処理の終了までこの第
3の命令に後続する第4の命令発行による命令カウンタ
の更新を延期する制御手段を構成している。
数段のステージで処理され、先行する命令の処理が完成
しないうちに、次の命令発行が可能なパイプライン処理
を行う情報処理装置において、図1のPSW2における
斜線部分は、予め定められた命令によって変更可能であ
る第1のフラグであり、IC更新フラグ4とIC更新延
期フラグ5およびAND回路21〜23ならびにOR回
路24,25は、この第1のフラグの値に応じてメモリ
アクセスに関係する処理を行う第1の命令の例外検出処
理の終了までこの第1の命令に後続する第2の命令の発
行による命令カウンタの更新を延期する制御手段を構成
している。また、命令発行後の演算が複数段のステージ
で処理され、先行する演算命令の処理が完了しないうち
に、次の命令発行が可能なパイプライン処理を行う情報
処理装置において、図1のPSW2における斜線部分
は、予め定められた命令によって変更可能である第2の
フラグであり、IC更新フラグ4とIC更新延期フラグ
5およびAND回路21〜23ならびにOR回路24,
25は、この第2のフラグの値に応じて演算に関係する
処理を行う第3の命令の例外検出処理の終了までこの第
3の命令に後続する第4の命令発行による命令カウンタ
の更新を延期する制御手段を構成している。
【0021】つぎにこの図1に示す実施例の動作を説明
する。まず、ここでは、Aステージの命令レジスタ10
からDステージの命令レジスタ13で命令発行までの様
々な制御を命令パイプライン制御部1が行う。この命令
パイプラインの各ステージへの指示信号を送出する信号
線110,111,112,113はA〜Dステージの
パイプラインの流れを止めるホールド信号である。この
命令パイプライン制御部1によって命令発行タイミング
が決定し、その指示が信号線1003によって送出さ
れ、「ISSUE」フラグ3が点灯する。さらに、次の
サイクルでIC更新フラグ4が信号線3040によって
点灯する。また、この信号線3040はAND回路21
にも接続されている。そして、命令パイプライン制御部
1は信号線1021でDステージに存在する命令がメモ
リアクセス命令であれば、「1」を送出する。更に、P
SW2中のあるメモリ系例外正確化フラグの指示を信号
線2021によってAND回路21に送る。よって、メ
モリアクセス命令の「ISSUE」タイミングで、か
つ、メモリ系例外正確化フラグが点灯しているときに、
IC更新延期フラグ5がセットされる。更に、AND回
路22,23,OR回路24によって、以下に説明する
ような動作を実現する。つまり、メモリ系例外正確化フ
ラグが点灯していない場合、IC更新フラグ4の点灯タ
イミングで信号線2406が「1」を送出し、信号線6
060,8060と+4インクレメンタ8によって、I
C6の値が「4」だけ増加する。
する。まず、ここでは、Aステージの命令レジスタ10
からDステージの命令レジスタ13で命令発行までの様
々な制御を命令パイプライン制御部1が行う。この命令
パイプラインの各ステージへの指示信号を送出する信号
線110,111,112,113はA〜Dステージの
パイプラインの流れを止めるホールド信号である。この
命令パイプライン制御部1によって命令発行タイミング
が決定し、その指示が信号線1003によって送出さ
れ、「ISSUE」フラグ3が点灯する。さらに、次の
サイクルでIC更新フラグ4が信号線3040によって
点灯する。また、この信号線3040はAND回路21
にも接続されている。そして、命令パイプライン制御部
1は信号線1021でDステージに存在する命令がメモ
リアクセス命令であれば、「1」を送出する。更に、P
SW2中のあるメモリ系例外正確化フラグの指示を信号
線2021によってAND回路21に送る。よって、メ
モリアクセス命令の「ISSUE」タイミングで、か
つ、メモリ系例外正確化フラグが点灯しているときに、
IC更新延期フラグ5がセットされる。更に、AND回
路22,23,OR回路24によって、以下に説明する
ような動作を実現する。つまり、メモリ系例外正確化フ
ラグが点灯していない場合、IC更新フラグ4の点灯タ
イミングで信号線2406が「1」を送出し、信号線6
060,8060と+4インクレメンタ8によって、I
C6の値が「4」だけ増加する。
【0022】つぎに、メモリ系例外正確化フラグが点灯
している場合、IC更新フラグ4の信号は、IC更新延
期フラグ5の点灯によってIC6の値を更新することが
できずに、更新指示信号がAND回路22によって消滅
してしまう。しかし、IC更新要求そのものは、IC更
新延期フラグ5に保持され、信号線9025によって送
られてくるメモリ系例外無検出を示す信号によってAN
D回路23を通じて信号線2406が「1」を送出しI
C6の値が更新される。そして、M6ステージに到達し
たメモリアクセス命令は信号線1909で、M6ステー
ジの命令レジスタ19の制御情報をメモリ系例外検出部
9で解析する。ここで、もし、例外が発生すればメモリ
系例外発生信号9007に「1」を送出し、発生しなけ
ればメモリ系例外無検出の信号線9025に「1」を送
出する。例外発生時には、信号線9007がメモリ系例
外発生を割込シーケンス制御部7に通知し、割込シーケ
ンスを起動する。そして、例外発生時に、IC更新延期
フラグ5に保存してあった更新要求が信号線9007,
OR回路25,信号線2505を介してリセットされ、
IC6の更新要求はキャンセルされるが、メモリ系例外
無検出の信号線9025によって確認されると、IC更
新延期フラグ5が同様にリセットされ、それと同時にA
ND回路23,信号線2324,OR回路24,信号線
2406を介してIC6の値が更新される。
している場合、IC更新フラグ4の信号は、IC更新延
期フラグ5の点灯によってIC6の値を更新することが
できずに、更新指示信号がAND回路22によって消滅
してしまう。しかし、IC更新要求そのものは、IC更
新延期フラグ5に保持され、信号線9025によって送
られてくるメモリ系例外無検出を示す信号によってAN
D回路23を通じて信号線2406が「1」を送出しI
C6の値が更新される。そして、M6ステージに到達し
たメモリアクセス命令は信号線1909で、M6ステー
ジの命令レジスタ19の制御情報をメモリ系例外検出部
9で解析する。ここで、もし、例外が発生すればメモリ
系例外発生信号9007に「1」を送出し、発生しなけ
ればメモリ系例外無検出の信号線9025に「1」を送
出する。例外発生時には、信号線9007がメモリ系例
外発生を割込シーケンス制御部7に通知し、割込シーケ
ンスを起動する。そして、例外発生時に、IC更新延期
フラグ5に保存してあった更新要求が信号線9007,
OR回路25,信号線2505を介してリセットされ、
IC6の更新要求はキャンセルされるが、メモリ系例外
無検出の信号線9025によって確認されると、IC更
新延期フラグ5が同様にリセットされ、それと同時にA
ND回路23,信号線2324,OR回路24,信号線
2406を介してIC6の値が更新される。
【0023】つぎに、命令1と例外を発生する命令2お
よび命令3の本発明の実施例における連続動作について
図2のタイム・チャートに沿って説明する。なお、この
動作中は、PSW2のメモリ系例外正確化フラグが点灯
中であり、命令1,命令2はメモリアクセス命令であ
り、命令3は任意の命令である。まず、命令1は、サイ
クル(5)でDステージに到達し、「ISSUE」さ
れ、次のサイクル(6)ではIC更新フラグ4を点灯さ
せる。しかし、メモリ系例外正確化フラグ点灯中なの
で、そのIC更新要求がそのまま受付けられずに、IC
更新延期フラグ5がサイクル(6)でセットされる。そ
の後、命令1はサイクル(11)でM6ステージに到達
し、そこで例外が発生しなかったため、メモリ系例外無
検出信号によって、ICが更新され、IC更新延期フラ
グ5がリセットされる(サイクル(12))。つぎに、
その1サイクル後(サイクル(13))、命令2が「I
SSUE」される。そして、命令1と同様にIC更新が
延期されM6ステージまで到達するが、そこで例外が発
生し、メモリ系例外発生信号によって命令2と後続の命
令3がキャンセルされる(サイクル(20))。その
後、命令「1」以前の命令の実行が完了した後、割込シ
ーケンス制御部7によって、割込シーケンスが起動され
る。このときに退避されるICの値は例外を発生させた
命令を指しているため、再開可能となる。
よび命令3の本発明の実施例における連続動作について
図2のタイム・チャートに沿って説明する。なお、この
動作中は、PSW2のメモリ系例外正確化フラグが点灯
中であり、命令1,命令2はメモリアクセス命令であ
り、命令3は任意の命令である。まず、命令1は、サイ
クル(5)でDステージに到達し、「ISSUE」さ
れ、次のサイクル(6)ではIC更新フラグ4を点灯さ
せる。しかし、メモリ系例外正確化フラグ点灯中なの
で、そのIC更新要求がそのまま受付けられずに、IC
更新延期フラグ5がサイクル(6)でセットされる。そ
の後、命令1はサイクル(11)でM6ステージに到達
し、そこで例外が発生しなかったため、メモリ系例外無
検出信号によって、ICが更新され、IC更新延期フラ
グ5がリセットされる(サイクル(12))。つぎに、
その1サイクル後(サイクル(13))、命令2が「I
SSUE」される。そして、命令1と同様にIC更新が
延期されM6ステージまで到達するが、そこで例外が発
生し、メモリ系例外発生信号によって命令2と後続の命
令3がキャンセルされる(サイクル(20))。その
後、命令「1」以前の命令の実行が完了した後、割込シ
ーケンス制御部7によって、割込シーケンスが起動され
る。このときに退避されるICの値は例外を発生させた
命令を指しているため、再開可能となる。
【0024】そして、図1では、本発明による実施例の
構成をメモリアクセス側に絞って更に詳しく説明してい
る。この図1で示している実施例の動作について補足す
ると、メモリアクセスの際に発生する例外は、M6ステ
ージ以降では発生しない。すなわち、M7ステージに命
令がキャンセルされずに到着したなら、その命令は例外
を起こさずに正常終了すると判断できる。また、説明の
簡略化のため、メモリはバイト・アドレッシングであ
り、命令長はすべて4バイトとする。
構成をメモリアクセス側に絞って更に詳しく説明してい
る。この図1で示している実施例の動作について補足す
ると、メモリアクセスの際に発生する例外は、M6ステ
ージ以降では発生しない。すなわち、M7ステージに命
令がキャンセルされずに到着したなら、その命令は例外
を起こさずに正常終了すると判断できる。また、説明の
簡略化のため、メモリはバイト・アドレッシングであ
り、命令長はすべて4バイトとする。
【0025】このように、本発明は命令発行後のメモリ
アクセスに関係する処理が複数段のステージにまたが
り、先行する命令の処理が完了しないうちに、次の命令
実行が可能な情報処理装置においては、命令によって書
き込み可能である第1のフラグと、この第1のフラグの
値によっては、あるメモリアクセスに関係する処理を必
要とする第1の命令が例外を発生する可能性がなくなる
まで、後続する第2の命令の発行による命令カウンタの
更新を延期させる制御手段を有することによって、ソフ
トウェアにメモリアクセス系例外正確化を意識した命令
実行をハードウェアに指示できるようにする。すなわ
ち、メモリ系の例外正確化が必要な実行部分をプログラ
ム開発者が認識し、その部分だけ第1のフラグの書換に
よって後続する命令のIC更新を延期させることで、性
能を低下させることなく例外正確化が実現する。これに
よって、課題で述べたジレンマが解消できる。
アクセスに関係する処理が複数段のステージにまたが
り、先行する命令の処理が完了しないうちに、次の命令
実行が可能な情報処理装置においては、命令によって書
き込み可能である第1のフラグと、この第1のフラグの
値によっては、あるメモリアクセスに関係する処理を必
要とする第1の命令が例外を発生する可能性がなくなる
まで、後続する第2の命令の発行による命令カウンタの
更新を延期させる制御手段を有することによって、ソフ
トウェアにメモリアクセス系例外正確化を意識した命令
実行をハードウェアに指示できるようにする。すなわ
ち、メモリ系の例外正確化が必要な実行部分をプログラ
ム開発者が認識し、その部分だけ第1のフラグの書換に
よって後続する命令のIC更新を延期させることで、性
能を低下させることなく例外正確化が実現する。これに
よって、課題で述べたジレンマが解消できる。
【0026】一方、命令発行後の演算処理が複数段のス
テージにまたがり、先行する演算命令の処理が完了しな
いうちに次の命令実行が可能な情報処理装置において、
命令によって書き込み可能である第2のフラグと、この
第2のフラグの値によっては、演算処理を必要とする第
3の命令が例外を発生する可能性がなくなるまで、後続
する第4の命令の発行による命令カウンタの更新を延期
させる制御手段を有することで、メモリ系例外正確化と
同様に第2のフラグの操作によって、例外正確化必要な
実行部分をプログラム開発者に指定させる。これによっ
て、性能を低下させること無しに演算例外の正確化が実
現できる。そして、このような命令制御をハードウェア
が提供し、例えば、ページ不在例外の発生をプログラム
開発者、あるいは、オペレーティング・システム設計者
が予測できれば、または、ページ不在例外発生するかど
うかが不明の部分を絞り込むことができれば、本発明は
大きな効果を発揮する。
テージにまたがり、先行する演算命令の処理が完了しな
いうちに次の命令実行が可能な情報処理装置において、
命令によって書き込み可能である第2のフラグと、この
第2のフラグの値によっては、演算処理を必要とする第
3の命令が例外を発生する可能性がなくなるまで、後続
する第4の命令の発行による命令カウンタの更新を延期
させる制御手段を有することで、メモリ系例外正確化と
同様に第2のフラグの操作によって、例外正確化必要な
実行部分をプログラム開発者に指定させる。これによっ
て、性能を低下させること無しに演算例外の正確化が実
現できる。そして、このような命令制御をハードウェア
が提供し、例えば、ページ不在例外の発生をプログラム
開発者、あるいは、オペレーティング・システム設計者
が予測できれば、または、ページ不在例外発生するかど
うかが不明の部分を絞り込むことができれば、本発明は
大きな効果を発揮する。
【0027】
【発明の効果】以上説明したように本発明は、ソフトウ
ェアにメモリアクセス系例外正確化を意識した命令実行
をハードウェアに指示できるようになし、また、メモリ
系例外正確化と同様に第2のフラグの操作によって、例
外正確化必要な実行部分をプログラム開発者に指定させ
るようにしたので、性能を大幅に低下させることなく、
例外処理後の再開が可能となり、プログラミングとマル
チタスク管理の容易さという効果を有する。
ェアにメモリアクセス系例外正確化を意識した命令実行
をハードウェアに指示できるようになし、また、メモリ
系例外正確化と同様に第2のフラグの操作によって、例
外正確化必要な実行部分をプログラム開発者に指定させ
るようにしたので、性能を大幅に低下させることなく、
例外処理後の再開が可能となり、プログラミングとマル
チタスク管理の容易さという効果を有する。
【図1】本発明の一実施例を示すブロック図である。
【図2】図1の動作説明に供する本発明によるスーパー
パイプライン方式における命令の連続発行のタイミング
についての説明図である。
パイプライン方式における命令の連続発行のタイミング
についての説明図である。
【図3】汎用計算機におけるパイプラインの構成例を示
す説明図である。
す説明図である。
【図4】スーパーパイプライン方式での命令パイプライ
ンの構成例を示す説明図である。
ンの構成例を示す説明図である。
【図5】情報処理装置におけるプロセスのコンテクスト
切り替え処理を示す説明図である。
切り替え処理を示す説明図である。
【図6】従来のスーパーパイプライン方式における命令
の連続発行のタイミングについての説明図である。
の連続発行のタイミングについての説明図である。
1 命令パイプライン制御部 2 PSW 3 ISSUEフラグ 4 IC更新フラグ 5 IC更新延期フラグ 21〜23 AND回路 24,25 OR回路
Claims (2)
- 【請求項1】 命令発行後のメモリアクセスが複数段の
ステージで処理され、先行する命令の処理が完了しない
うちに次の命令発行が可能なパイプライン処理を行う情
報処理装置において、予め定められた命令によって変更
可能である第1のフラグと、この第1のフラグの値に応
じてメモリアクセスに関係する処理を行う第1の命令の
例外検出処理の終了までこの第1の命令に後続する第2
の命令の発行による命令カウンタの更新を延期する制御
手段を備えることを特徴とする情報処理装置。 - 【請求項2】 命令発行後の演算が複数段のステージで
処理され、先行する演算命令の処理が完了しないうちに
次の命令発行が可能なパイプライン処理を行う情報処理
装置において、予め定められた命令によって変更可能で
ある第2のフラグと、この第2のフラグの値に応じて演
算に関係する処理を行う第3の命令の例外検出処理の終
了までこの第3の命令に後続する第4の命令発行による
命令カウンタの更新を延期する制御手段を備えることを
特徴とする情報処理装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6987992A JPH05233288A (ja) | 1992-02-19 | 1992-02-19 | 情報処理装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6987992A JPH05233288A (ja) | 1992-02-19 | 1992-02-19 | 情報処理装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH05233288A true JPH05233288A (ja) | 1993-09-10 |
Family
ID=13415505
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP6987992A Pending JPH05233288A (ja) | 1992-02-19 | 1992-02-19 | 情報処理装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH05233288A (ja) |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS57196356A (en) * | 1981-05-27 | 1982-12-02 | Mitsubishi Electric Corp | Data processing method |
| JPS63240632A (ja) * | 1987-03-27 | 1988-10-06 | Nec Corp | 情報処理装置 |
| JPS6468856A (en) * | 1987-09-10 | 1989-03-14 | Matsushita Electric Industrial Co Ltd | Data processor |
| JPH0314025A (ja) * | 1989-06-13 | 1991-01-22 | Nec Corp | 命令実行制御方式 |
-
1992
- 1992-02-19 JP JP6987992A patent/JPH05233288A/ja active Pending
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS57196356A (en) * | 1981-05-27 | 1982-12-02 | Mitsubishi Electric Corp | Data processing method |
| JPS63240632A (ja) * | 1987-03-27 | 1988-10-06 | Nec Corp | 情報処理装置 |
| JPS6468856A (en) * | 1987-09-10 | 1989-03-14 | Matsushita Electric Industrial Co Ltd | Data processor |
| JPH0314025A (ja) * | 1989-06-13 | 1991-01-22 | Nec Corp | 命令実行制御方式 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6895460B2 (en) | Synchronization of asynchronous emulated interrupts | |
| US6266768B1 (en) | System and method for permitting out-of-order execution of load instructions | |
| JP2003085000A (ja) | トレース情報生成装置およびその方法 | |
| JP3242508B2 (ja) | マイクロコンピュータ | |
| US6301654B1 (en) | System and method for permitting out-of-order execution of load and store instructions | |
| US20060149940A1 (en) | Implementation to save and restore processor registers on a context switch | |
| US7376820B2 (en) | Information processing unit, and exception processing method for specific application-purpose operation instruction | |
| JP2000276381A (ja) | タスク実行時間の見積もり方法 | |
| JPH08221272A (ja) | 命令キャッシュに命令をロードする方法 | |
| JPH0810437B2 (ja) | 仮想計算機システムのゲスト実行制御方式 | |
| US7831979B2 (en) | Processor with instruction-based interrupt handling | |
| US5742755A (en) | Error-handling circuit and method for memory address alignment double fault | |
| JPH08137751A (ja) | プロセッサ装置及びその制御方法 | |
| JPH02159624A (ja) | 先入れ先出しレジスタ装置 | |
| JPH1196006A (ja) | 情報処理装置 | |
| JPH1049373A (ja) | パイプライン・デジタル・プロセッサにおいて多重で高精度の事象を操作する方法と装置 | |
| US6233675B1 (en) | Facility to allow fast execution of and, or, and test instructions | |
| EP0374598B1 (en) | Control store addressing from multiple sources | |
| JPH08255476A (ja) | データ処理システムにおけるメモリ拡張スタック装置および方法 | |
| EP0415351A2 (en) | Data processor for processing instruction after conditional branch instruction at high speed | |
| JP2001306334A (ja) | エミュレーション装置 | |
| JPH05233288A (ja) | 情報処理装置 | |
| JP2783285B2 (ja) | 情報処理装置 | |
| JPH0384632A (ja) | データ処理装置 | |
| JPH0377137A (ja) | 情報処理装置 |