JPH04218841A - 割り込み処理方式 - Google Patents

割り込み処理方式

Info

Publication number
JPH04218841A
JPH04218841A JP8082291A JP8082291A JPH04218841A JP H04218841 A JPH04218841 A JP H04218841A JP 8082291 A JP8082291 A JP 8082291A JP 8082291 A JP8082291 A JP 8082291A JP H04218841 A JPH04218841 A JP H04218841A
Authority
JP
Japan
Prior art keywords
processing
interrupt
resource usage
asynchronous
cpu resource
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
Application number
JP8082291A
Other languages
English (en)
Other versions
JPH0786838B2 (ja
Inventor
Haruhiko Ueno
治彦 上埜
Youzou Nakayama
中山 陽象
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.)
Fujitsu Ltd
PFU Ltd
Original Assignee
Fujitsu Ltd
PFU Ltd
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 Fujitsu Ltd, PFU Ltd filed Critical Fujitsu Ltd
Priority to JP3080822A priority Critical patent/JPH0786838B2/ja
Publication of JPH04218841A publication Critical patent/JPH04218841A/ja
Publication of JPH0786838B2 publication Critical patent/JPH0786838B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Abstract

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

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一部の処理時間の長い
CPU資源使用処理の実行を、処理のデータ依存関係を
保証しながら命令の実行と非同期化(命令により処理が
開始されるが処理の終了は、命令の終了以降となる。C
PUは、該当処理を開始した命令を実行後、開始された
処理の終了以前に次の命令の実行を開始する。)したC
PUにおいて、割込み発生時の非同期CPU処理の終了
方法およびこれら非同期CPU処理で発生したCPU資
源使用処理依存割込み要因の報告方法に関する。特に、
OSの割込みハンドラで使用する基本的な処理を、命令
と非同期的に実行する場合に、本発明は有効となる。
【0002】
【従来の技術】処理時間の長いCPU資源使用処理を命
令と同期的に実行するCPUにおいても、後続命令を部
分的に先行実行し前の処理でプログラム割込みが発生し
た場合に先行実行した命令の影響をキャンセルすること
により、処理時間の長い命令の後続命令の部分的な先行
実行を行うことができる。ただし、この場合には、CP
Uの命令パイプラインが複雑となり、また後続命令の先
行実行も限られた範囲でしか実行できない。
【0003】従って、処理時間の長いCPU資源使用処
理の実行時に後続する同時実行可能な(前の処理とデー
タ依存関係の無い)CPUの命令の実行を停止しないこ
とによりCPU性能を向上させるためには、処理時間の
長いCPU資源使用処理の実行を命令の実行とは非同期
化することが、1つの有効な方法である。このとき、1
個以上の非同期CPU資源使用処理を含む複数のCPU
資源使用処理が同時に実行されることになる。
【0004】従来の計算機では、割込み発生時のCPU
資源使用処理の終了方法として、以下のいずれかが用い
られていた。割込みには、CPU資源使用処理依存割込
みと、CPU資源使用処理無依存割込みの2種類がある
。 (1) CPU資源使用処理は、全て命令と同期して実
行される処理のみである。命令の実行でCPU資源使用
処理依存割込み要因が検出されたときには、命令の実行
終了後次の命令の実行開始前に、対応するCPU資源使
用処理依存割込みが発生する。最後に実行された命令で
、CPU資源使用処理依存割込み要因が検出されなかっ
た場合で、かつCPU資源使用処理無依存割込み要因が
存在する場合にのみ、対応するCPU資源使用処理無依
存割込みが発生する。
【0005】
【発明が解決しようとする課題】本方式では、割込み発
生時に割込み前に開始されたCPU資源使用処理は全て
終了しているので、割込みハンドラを作成しやすい。ま
た、必要なCPU資源使用処理依存割込み要因に対する
割込みでは、割込みハンドラの適当な処理後、元のプロ
グラムを再開することができる。
【0006】ただし、この処理(命令)実行方式の場合
には、実行時間の長いCPU資源使用処理の実行中に、
後続CPU資源使用処理の実行を終了することができず
、このときCPUの性能が低下する。 (2) 一部のCPU資源に入出力を行い非同期的に動
作するユニット(例えば浮動小数点演算ユニット)が、
命令により開始され命令の実行とは非同期的に実行され
る処理(非同期CPU資源使用処理)を実行する。これ
らの非同期CPU資源使用処理で、CPU資源使用処理
依存割込み要因が検出されたときには、次にこのユニッ
トからアクセスされるCPU資源を使用する処理または
このユニットが実行する処理を開始する命令の実行時に
、その命令で指定された処理は実行されずに、命令と同
期してその非同期動作ユニットが保持するCPU資源使
用処理依存割込みが発生する。
【0007】非同期動作ユニットで検出されたCPU資
源使用処理依存割込み以外の割込み要因が検出されたこ
れに対応する割込みが発生したとき、非同期動作ユニッ
トの動作の終了待ちは行われない。また、このとき非同
期動作ユニットが保留しているCPU資源使用処理依存
割込み要因は、同時には報告されない。
【0008】CPU資源使用処理無依存割込み要因と、
非同期動作ユニットがCPU資源使用処理依存割込み要
因を同時に保持している場合でも、CPU資源使用処理
依存割込みが優先されずその割込み要因は保留されたま
まで、CPU資源使用処理無依存割込みが発生する。
【0009】非同期CPU資源使用処理とこの処理の出
力資源が、割込みハンドラの環境退避部分で使用されな
い場合には、この方法は有効な割込み方式である。ただ
し、割込みハンドラで使用する基本的なCPU資源使用
処理を非同期化した場合には、この割込み方式では次の
問題がある。
【0010】ある割込み(最初の割込み)の発生後、そ
の割込みを処理する割込みハンドラの動作中に、割込み
発生前に実行していたプログラムが開始した処理で検出
されたCPU資源使用処理依存割込み要因に対する割込
み(2番目の割込み)が発生する。2番目の割込みに対
する処理で、どのプログラムが割込み要因を発生した処
理を開始したかを判別するのが不可能となるかまたは非
常に困難となる。従って、この場合には、割込みハンド
ラが使用するCPU資源使用処理で検出されるCPU資
源使用処理依存割込みに対する処理が不可能となるか、
またはこの割込みに対する割込みハンドラの処理が非常
に複雑となる。 (3) 非同期的に動作するユニットが、命令により開
始され命令の実行とは非同期的に実行される非同期CP
U資源使用処理を実行する。非同期ユニットの出力を後
続処理で使用する場合には、規定された手順が必要な場
合と、後続処理を開始する命令の実行開始が遅れる場合
の2種類がある。
【0011】なんらかの割込み要因が検出されると、C
PUは以下の割込み動作を行う。 ■  新たな命令の実行を開始しない。 ■  非同期動作ユニットが実行中の処理(非同期CP
U資源使用処理)が全て終了するまでCPU待機する。 非同期動作ユニットは、先行する処理でCPU資源使用
処理依存割込み要因が検出されたか否かに依存せず実行
が開始された処理を全て実行する。CPU資源使用処理
依存割込み要因が検出され、期待された値と異なる値と
なった出力も後続処理でそのまま使用する。この場合に
は、後続処理の実行結果も期待されたものとは異なるよ
うになり、また入力が期待された値を持たなかったため
にこの後続処理でもCPU資源使用処理依存割込み要因
が検出されることがある。
【0012】■の動作の結果、非同期動作ユニットで2
個以上のCPU資源使用処理依存割込み要因が検出され
たときには、非同期動作ユニットは最初に検出された割
込み要因を保持するか、検出された全ての割込み要因を
保持するかのいずれかの動作を行う。
【0013】検出された全ての割込み要因を保持する場
合には、あるCPU資源使用処理依存割込み要因が引き
金となって、後続処理でのCPU資源使用処理依存割込
み要因を発生させたとき、元々引き金となった割込み要
因を特定するのが困難となる。
【0014】■  ■で、CPU資源使用処理依存割込
み要因が1個も検出されなかった場合には、割込み動作
を開始したCPU資源使用処理無依存割込みが発生する
。 CPU資源使用処理依存割込み要因が検出されたときに
は、割込み動作を開始させた割込み要因の種別に依存せ
ず、CPU資源使用処理依存割込みが発生する。
【0015】この割込み処理方式では、CPU資源使用
処理依存割込み要因が検出され出力が期待された値とな
った処理の出力を入力として使用する処理の実行を停止
しないので、入力が異常な場合に破壊する資源が特定で
きないような処理(例えば主記憶へのストアなど、入力
として使用するアドレスが異常な場合には、予測できな
い領域を破壊する)を非同期化するとプログラムのデバ
ックが非常に困難となる。
【0016】また、この割込み方式では、非同期化処理
でCPU資源使用処理依存割込み要因が検出された場合
には、元のプログラムを再開することはできない。第1
の発明は、割込みハンドラが使用するような基本的なC
PU資源使用処理の非同期的実行が可能であり、かつ割
込みハンドラの作成が容易な割込み処理方式を目的とす
る。
【0017】第2の発明は、割込みハンドラが使用する
ような基本的なCPU資源使用処理の非同期的実行が可
能であり、必要なCPU資源使用処理依存割込み要因に
対しては、対応する割込みハンドラの処理の終了後、元
のプログラムを再開可能とするための割込み処理方式を
目的とする。
【0018】
【課題を解決するための手段及び作用】本発明の特徴は
下記の通りである。 ■  CPU資源使用処理依存割込み、およびCPU資
源使用処理無依存割込み要因のどちらかが検出されたと
きに、割込み動作を開始する。 ■  割込み動作中で、データ依存関係を保証しつつ実
行中の全てまたは一部の非同期CPU資源使用処理を終
了させる。CPU資源使用処理依存割込み要因の検出さ
れた処理の出力を入力として使用する処理は、未実行で
終了させる。この操作の終了時には、データ依存関係を
消去する。 ■  割込み動作終了時に、CPU資源使用処理依存割
込み要因が検出されている場合には、割込み動作を開始
した割込み要因の種別に依存せず、CPU資源使用処理
依存割込みを発生する。そうでない場合には、CPU資
源使用処理無依存割込みを発生させる。
【0019】CPU資源使用処理依存割込みの発生時に
は、検出された全てのCPU資源使用処理依存割込み要
因の全て、および未実行となった処理に関する情報を表
示する。 ■  再開の期待されるCPU資源使用処理依存割込み
要因および未実行で終了した処理に対して、適当な割込
みハンドラの処理後、元のプログラムに戻ったときにハ
ードウェアが処理を再実行できるようにするか、割込み
ハンドラが処理をエミュレーションするのに十分な情報
を表示する。
【0020】本発明は、(1) レジスタ等のCPU資
源からの入力、CPU資源への出力、またはその双方を
行う処理(CPU資源使用処理)が、同期CPU資源使
用処理と非同期CPU資源使用処理の2種類に分類され
各々次のように実行する。
【0021】■  同期CPU資源使用処理は、処理を
指令する命令により開始され、命令の実行と同期して実
行される処理である。命令の実行終了時には、その命令
により開始された同期CPU資源使用処理は、終了して
いる。
【0022】■  非同期CPU資源使用処理は、処理
を指定する命令により開始され、命令の実行とは非同期
的に実行される処理である。命令の実行終了以降に、そ
の命令により開始された非同期CPU資源使用処理は終
了する。 (2) CPU資源に出力を行う非同期CPU資源使用
処理(先行処理)が命令により開始されたとき、該当処
理を開始した命令より後で発行される命令で開始される
CPU資源使用処理(後行処理)で先行処理の資源への
出力を入力として使用するときは、後行処理での資源の
入力が先行処理での該当資源への出力が終了するまで待
たされる。
【0023】CPU資源使用処理(後行処理)がある資
源への出力を行う場合には、該当処理より先に開始され
た全てのCPU資源使用処理(先行処理)による該当資
源へのアクセス(入力および出力の両者)が終了してか
ら、後行処理は該当資源への出力を行う。
【0024】後行処理が同期CPU資源使用処理の場合
には、先行処理での関係する資源へのアクセスが終了す
るまで後行処理を指定する命令の実行終了を遅らる  
(プログラムカウンタは、その後行処理を開始する命令
を指したままとする)。後行処理が非同期CPU資源使
用処理の場合には、後行処理を開始する命令の実行終了
を前の処理の該当資源への関係するアクセスが終了する
まで遅らせても良いし、後行処理を開始する命令の実行
は完了し後行処理を開始するが後行処理での該当資源へ
のアクセスを遅らせても良い。
【0025】非同期CPU資源使用処理の実行が開始さ
れると、その入力が終了するまでは、後続CPU資源使
用処理での該当資源への出力は待たさる。 (3) 同期CPU資源使用処理の一部、および非同期
CPU資源使用処理の一部は、CPU資源使用処理依存
割込み要因を発生する。CPU資源使用処理依存割込み
要因とは、CPU資源使用処理の実行中に特定の事象が
発生した場合に検出される割込み要因であり、CPU資
源使用処理依存割込み要因が検出された処理の出力が期
待された結果(その出力を後続処理で入力として使用す
る事が期待される結果)にならなかった事を示す割込み
要因である。
【0026】CPU資源使用処理依存割込み要因の検出
された処理の出力を、後行処理で入力として使用すると
、後行処理の実行結果も期待された実行結果と異なる様
になる。
【0027】(4) 実行中のCPU資源使用処理でC
PU資源使用処理依存割込み要因が検出されたとき、ま
たは外部割込み等の実行中のCPU資源使用処理の実行
結果に直接依存せずに発生する割込(CPU資源使用処
理無依存割込み)の割込み要因が検出されたときには、
ハードウェアは以下の割込み動作を行う。
【0028】(A) ハードウェアは新たな命令の実行
は開始しないが、実行中の命令およびすでに実行が開始
されている非同期CPU資源使用処理は継続して実行す
る。 実行可能な非同期CPU資源使用処理が終了し非同期C
PU資源使用処理の状態が変化しなくなるのを待つ。
【0029】(B) ステップ(A) のCPU資源使
用処理の終了待ちを実行後には、割込み動作の開始時に
実行中であった全ての非同期CPU資源使用処理は、以
下のいずれか1つの方法で終了する。
【0030】非■  CPU資源使用処理依存割込み要
因を検出せずに完了した。処理の出力は、期待された出
力となった。 非■  CPU資源使用処理依存割込み要因を検出して
実行が終了した。
【0031】非■  非同期CPU資源使用処理が先行
する処理の資源への出力を使用する処理であり、先行す
る処理がCPU資源使用処理依存割込み要因を検出し期
待された出力を行わなかったときには、そのCPU資源
使用非同期処理は未実行のまま終了する。未実行で終了
した処理の出力に対するデータ依存関係は、消去される
【0032】非■  非■または非■で未実行となった
処理の出力を入力として使用する非同期CPU資源使用
処理は、未実行のまま終了する。未実行で終了した処理
の出力に対するデータ依存関係は、消去される。
【0033】非■  CPU資源使用処理依存割込み要
因が1個でも検出されている場合には、すでに命令によ
り開始されている非同期CPU資源使用処理がこの割込
み要因とデータ依存関係が無い場合でも、未実行で終了
しても良い。
【0034】同期CPU資源使用処理は、その処理を開
始する命令の実行終了時に以下のいずれか1つの方法で
終了している。(A) の操作が終了したときに、実行
中であった同期CPU資源使用処理もこれらのいずれか
の方法で終了している。
【0035】同■  CPU資源使用処理依存割込み要
因を検出せずに完了している。 同■  CPU資源使用処理依存割込み要因を検出して
、処理の実行が終了した。
【0036】(C) (B) でCPU資源使用処理依
存割込み要因が1個も検出されなかったとき:割込み動
作を開始させた割込要因は、CPU資源使用処理無依存
割込み要因である。ハードウェアは、割込み動作を開始
させた割込み要因に対応した割込みを発生する。
【0037】(B) でCPU資源使用処理依存割込み
要因が1個以上検出されたとき:割込み動作を開始させ
た割込み要因によらず、(B) の非■〜非■となった
CPU資源使用非同期処理および同■となったCPU資
源使用同期処理に関する情報を、1回のCPU資源使用
処理依存割込みでプログラムに同時に全て通知する(複
合CPU資源使用処理依存割込みを行う)。 (5) 一部のCPU資源使用処理依存割り込み要因処
理プログラムによる適当な処理の実行後にその割り込み
要因を発生したプログラムの再開が期待される事があり
(ページ不在等の割り込み要因)(ここでは、この種の
CPU資源使用処理依存割り込み要因を、再開期待CP
U資源使用処理依存割り込み要因と呼ぶ)、CPU資源
使用処理依存割り込みが発生したとき、再開期待CPU
資源使用処理依存割り込み要因のみが割り込み要因とし
て存在する場合には、発生した全ての再開期待CPU資
源使用処理依存割り込みに対する適当な処理の後、元の
プログラムを再開できる可能性があり、CPU資源使用
処理依存割り込みの発生時に、再開期待CPU資源使用
処理依存割り込みを発生した処理および未実行で終了し
たCPU資源使用処理の各々に対して、以下のいずれか
が可能であるようにする ■  割り込み元のプログラムに復帰するCPU資源使
用処理を実行すると、指定した再開期待CPU資源使用
処理依存割り込み要因を検出した処理、および未実行で
終了した処理が再実行される、かまたは、■  割り込
み要因処理プログラムが、処理をシュミレーションする
のに十分な情報を割り込み時にプログラムに表示する、
また、要因発生元のプログラムの再開が期待されるある
種のCPU資源使用処理依存割り込み要因で、割込み時
に入力データが保存されていることが必要な場合には、
その割込み要因の発生時に、その要因を発生した処理の
入力資源を出力先とする後続処理は、全て未実行で終了
させる再開期待CPU資源使用処理割込み手段を具備し
、このことにより、再開期待CPU資源使用処理依存割
込み要因の発生時に、割込み要因を発生したプログラム
を再開できるようにする。
【0038】
【実施例】まず、本発明が係わる非同期処理のつき離し
法をこれを使わない場合と比較しながら述べる。つき離
し法を使わないパイプライン方式における基本的なタイ
ミングを図1に示し、つき離し法を使う場合のタイミン
グを図2に示す。
【0039】各時間区域は、1τの時間区域で同期タイ
ミングである。各時間区域の動作を説明するために記号
が使われており各記号の意味は以下に示す。 D  : Decode           :  
命令のデコードと実行開始条件(データ依存関係および
資源のぶつかり)の検出E  : Execute  
        :  演算の実行,主記憶アクセス命
令では実行アドレスの計算 W  :Write             :  
実行結果の書込みP1 :Priority of l
oad  :  非同期処理キューへのエンキュー及び
実行開始条件(データ依存関係および資源のぶつかり)
の検出 C  :Cache             :  
アドレス変換およびキャッシュからのデータ読込み W1 :Write of load     :  
キャッシュ( および主記憶) から読み込んだデータ
のレジスタへの書込みPf :Priority of
 floating point operation
:非同期実行キューへのエンキューおよび実行開始条件
(データ依存関係および資源のぶつかり)の検出Ef1
:Execute of floating poin
t operation 1 Ef2:Execute
 of floating point operat
ion 2 Ef3:Execute of floa
ting point operation 3 浮動
小数点加算および浮動小数点乗算の演算結果の書込みサ
イクル つき離し法を使わないパイプラインにおいては、図1の
■に示すように、レジスタ−レジスタ間演算の場合には
、D,E,W,の順にパイプライン処理が行われ、Eサ
イクルの終わりにおいて、バイパスが可能となる。キャ
ッシュからのロードが必要な場合には、アドレス変換お
よびキャッシュからのデータ読み込みのためのCサイク
ルが必要となり、このサイクルの終わりにバイパスが可
能となる。
【0040】また、浮動小数点演算の場合には、演算の
実行サイクルが1τから3τに引き延ばされ、Ef1,
Ef2,Ef3が必要となる。バイパスはEf3の後に
なる。
【0041】一方、本発明のようにつき離し法を使う場
合が図2であり、■の場合は、つき離し法を使わない場
合と同じであり、キャッシュからのロードする場合には
、■に示されるように、Dサイクルの終わりにおいて、
P1区間があり、すなわち非同期キューへのエンキュー
及び実行開始条件(データ依存関係および資源のぶつか
り)を検出し、この後に、Cサイクルに入る。但し、こ
れらの動作はつき離し法でできる。浮動小数点の場合も
、つき離し法で行われ、非同期実行キューへのエンキュ
ーおよび実行開始条件データ依存関係および資源のぶつ
かり)の検出が行われ、この後に、浮動小数点の演算サ
イクルとなる。なお、つき離し法では、同期処理からつ
き離した形で、平行動作されるが、同期と非同期の詳細
タイミングは図3に示される。 ■  :  命令実行制御部および同期演算実行部のパ
イプラインD−Wait ,E−Wait , W−W
ait 有り■  :  非同期処理:主記憶読込み(
load) のパイプライン(キャッシュヒット時),
P−Wait有り、Cサイクルが開始されるまで、命令
実行制御部のEサイクルと同期する(実効アドレスをE
サイクルの出力としてCサイクルで入力するため)。
【0042】このようなつき離し法とつき離し法を使わ
ない場合の基本タイミングを用いて配列の和を求めるプ
ログラムについてのタイミング図を図4の例を使って説
明する。
【0043】図4のプログラムは 配列 A〔0:100〕 の各要素の和 X=A
〔0〕+A〔1〕+・・・+A〔100〕を求め
る計算を例に示す。配列の要素はIEEEP754の形
式の(Project 754 )倍精度浮動小数点数
(8バイト長)とする。
【0044】図5のつき離しを使わない同期系の計算機
において、図4のプログラムを実行した場合のタイムチ
ャートを説明する。プログラムの各命令の番号1〜10
のタイムチャートの左側に示している番号と対応する。
【0045】1〜4迄の各命令は同期処理D,E,Wに
従うパイプラインによって可能となる。番号5において
、プログラムはルーピングに入るが、ループの内部に入
った最初の命令、すなわち、5番目の命令において、キ
ャッシュが使われるため、基本サイクルはD,E,C,
Wとなる。6番目の命令においては浮動小数点演算の加
算が行われるが、そのオペランドは4番目の命令の実行
結果と5番目の命令の実行結果である。ここに、データ
依存関係があり、これらのデータがそろわなければ、浮
動小数点の加算に入ることができない。従ってタイムチ
ャート図5の番号6に示すように、1τだけ後れてD,
D,Ef1,Ef2,Ef3,Wfとなる命令7におい
てはGR2と3の加算を行うものであって、これは命令
6の浮動小数点の結果を使わず、それとデータ依存関係
はないが、つき離し法を用いないこの例では、図5の7
番目に示されるように基本タイミングはDサイクルが2
τ分だけ延ばされD,D,D,E,Wとなる。
【0046】以下、8番目のcompare と9番目
のBranch命令は、D,E,Wでパイプラインで行
われ、命令9において命令5にジャンプするときにブラ
ンチペナルティとして1τだけ遅れ、D,E,Wが始ま
る。
【0047】この動作を本発明の計算機のつき離し法を
使って実行する場合が図6である。番号1,2,3につ
いては図5と同じであるが命令5のキャッシュを使うと
ころにおいて、5非に示されるように、キャッシュ動作
は非同期に行われ、Pl  CWlのサイクルがつき離
し的に行われ、5のWの真下に5非Cサイクルが重なり
、同時に実行される。図5の場合に比べてはやくなる。 また、命令6の浮動小数点演算においても、命令6と6
非の2つを使って実行され、デコードした後につき離し
法により6非の状態に進むことができる。図に示される
ように、5非のCの出力が6非においてEf1の入力と
なっている。そして、命令7の同期処理になるが、この
Dサイクルは命令6のEサイクルすなわち6非のPfサ
イクルを同様に行うことができる。
【0048】従って、図5のつき離し法を使わない場合
と比べて2τだけ速くなっている。従って、図5のつき
離しを使う方が使わない方に比べて3tだけ高速になっ
ている。
【0049】命令8,9,10においては前の場合と同
様である。本発明の非同期処理の割込みに対する再開動
作とデータ依存会計に関する発明はこのようなつき離し
法を用いた計算機上で使われるものである。
【0050】次に、本発明の第1の実施例を図7を用い
て説明する。まず、図7の各構成要素を説明する。命令
形式は図8は示すように、下記の通りである。OPC:
  命令コード,OPCの値により、命令中の他のフィ
ールドの位置部が無視される事がある。また、命令のビ
ット17〜31がGRを示すかFRを示すかは、OPC
の値により以下のように決定されるとする。 OPCの最上位ビットが0のとき: 命令のビット17〜31は、GRを示す。 OPCの最上位ビットが1のとき: 命令のビット17〜31は、FRを示す。 ただし、主記憶とFR間のデータ転送命令では、OPC
の最上位ビットは0であるが、ビット17〜26は、G
RN1,GRN2を示し、ビット27〜31は、FRN
3を示すとする。このときGR1+GR2+IMMが実
効アドレスを示し、FRNが主記憶との転送元または転
送先FRを示すとする。
【0051】IMM:  即値データ(入力)GRN1
:  GR Number 1.入力GRレジスタ番号
  その1 GRN2:  GR Number 2.入力GRレジ
スタ番号  その2 GRN3:  GR Number 3.出力GRレジ
スタ番号FRN1:  FR Number 1.入力
FRレジスタ番号  その1 FRN2:  FR Number 2.入力FRレジ
スタ番号  その2 FRN3:  FR Number 3.出力FRレジ
スタ番号同期処理と非同期処理の種類,割り込みの種類
2−1同期処理 ■  分岐処理、プログラム呼出し処理(命令の実行順
序を変更する処理) ■  SVC(スーパバイザコール)処理■  CR(
制御レジスタ)にアクセスする処理(ただし、PSRの
CCのみを変更する処理を除く)■  非同期処理キュ
ー複写レジスタにアクセスする処理2−2非同期処理 ■  実行時間の長い演算処理 ■  GRと主記憶間の転送処理およびFRと主記憶間
の転送処理 2−3割込み ■  プログラム割込み CPU資源使用処理依存割込み、CPU資源使用処理の
出力が期待されたものと異なるものとなったことを示す
■  SVC(スーパバイザコール)割込みSVC命令
の実行時に、割込み要因の生成される割込みである。S
VC命令のIMM部の下位7ビット+0×80の値が呼
び出し番号として使用される。 ■  外部割込み 外部からCPUへの入力信号である外部割込み信号が割
込み要因となる割込みである。外部割込みには、レベル
0〜15があり、PSRのEAL以上のレベルの外部割
込み信号のみが受理され、割込み動作を開始させる。
【0052】非同期処理でアクセスするCPU資源非同
期処理では、CPU資源中ではGR,FR及びCCのみ
をアクセスする。CRおよび非同期処理キュー複写レジ
スタをアクセスする処理は、同期処理のみである。
【0053】  各ハードウェアユニットの説明4−1
CPU資源 ■  GR(General purpose Reg
ister) :汎用レジスタ演算の入出力先、および
主記憶アクセスのアドレス指定のベースレジスタやイン
デックスレジスタとして使用される汎用レジスタである
【0054】GRは、1個32ビット長であり32個存
在する。各GRには固有のGR番号0〜31が割りつけ
られている。GR0は常に0を保持し、GR0への書込
みは無視され、GR0を読み込むと常に0が読まれる。 ■  FR(Floating point Regi
ster):浮動小数点レジスタ 浮動小数点演算の入出力先として使用されるレジスタで
ある。FRは、1個64ビット長であり32個存在する
。各FRには固有のFR番号0〜31が割りつけられて
いる。FR0は常に0を保持し、FR0への書込みは無
視され、FR0を読み込むと常に0が読まれる。 ■  CR(Control Register) :
制御レジスタCPUの動作を制御するためのパラメータ
を保持するレジスタである。32ビット長のCRが32
本存在する。 CR0からCR4には、以下のパラメータが割りつけら
れている。 CR0:PSR(Processor Status 
Register)プログラムの主な動作環境を規定す
るパラメータ(スーパバイザモード/ユーザモード等)
を保持するレジスタである。PSR中に2ビット長のC
C  (Condition Code:条件コード領
域)および4ビット長のEAL(External i
nterruptAccept Level )が存在
する。CCは、特定の処理で出力の対象となり、また条
件分岐処理では分岐判定のための入力として使用される
【0055】EALは、受理される外部割込み要因のレ
ベルを規定する。EALより大きい値を持つ外部割込み
信号のみが受理され、割込み動作を開始させる。 CRI:OPSR(Old PSR) 割込み発生時に、割込み発生前のPSRの値を保持する
レジスタである。
【0056】CR2:OIC(Old Instruc
tion Counter) 割込み発生時に、割込み発生前のPCの値(次に実行す
べき命令のアドレスを指す)を保持するレジスタである
【0057】CR3:OLEP(Old Last E
ntry Pointer)  プログラム割込みの発生時に、非同期処理の終了待ち後
の非同期処理実行キューの最終エントリポインタの値を
保持するレジスタである。
【0058】CR4:INTD(INTerrupt 
Designation) 割込み発生時に、割込み種別を示すコード(INTTY
PE)およびプログラム割込みの発生時に、最後に実行
した同期処理の終了コード(LSRETC) を図9に
示す形式で保持するレジスタである。
【0059】INTTYPE には、例えば以下の値の
割りつけが成される。 0×00〜0×0F:予約されている 0×10          :プログラム割込み0×
11〜0×1F:予約されている 0×20〜0×2F:レベル0〜レベル15の外部割込
み,(L+32)の値がレベルLの外部割込みを示す。 0×30〜0×7F:予約されている 0×80〜0×FF:呼出し番号0×80〜0×FFの
スーパバイザ呼び出し割り込み、SVC命令のIMM値
の下位7ビット+0×80の値がスーパバイザ呼び出し
番号となる。 CR5:INTB(INTerrupt Base a
ddress) 割込み発生時に、新たにIC(命令カ
ウンタ)に設定されるアドレスのベースアドレスを保持
するレジスタである。割込み発生時には、INTB+I
NTTYPE*16の値がICの新しい値として設定さ
れる。 CR6:NPSR(New PSR) 割込み発生時に、新たにPSRに設定される値を保持す
るレジスタである。 CR7〜CR31 他のプログラム動作環境を規定するパラメータを保持す
るレジスタとして使用される。 ■  非同期処理キュー複写レジスタ(Asynchr
onous Process Copy Regist
er) プログラム割込みの発生時、非同期動作の終了
待ち後の非同期処理キューの内容が複写されるレジスタ
である。1本64ビット長で、32本の非同期処理キュ
ー複写レジスタがある。ただし、APCROは、常に0
を保持する。各APCRは、次の形式を持つ。
【0060】また、RTN(ReturN) 命令の実
行時に、OLEPが0 でない時には、APCR1 〜
APCR(OLEP)の内容が非同期処理キューに書き
込まれる。 4−2  命令バッファ 通常のCPUの命令バッファと同じ、実行する命令は、
この命令バッファにいったん取り込まれる。主記憶から
命令バッファへの命令の読み込みは、通常の計算機と同
じ。 4−3  命令実行制御部 命令の実行および割込みの制御を行うユニットである。 分岐を含む命令フェッチの制御、命令のデコード、処理
の実行制御、割込み動作の制御、割込み動作を行う。命
令実行制御部の動作については、/5/を参照。
【0061】命令実行制御部は、以下のレジスタを内蔵
する。 ■  IC(Instrcution Counter
) :命令カウンタ次に実行すべき命令のアドレスを示
すカウンタである。 ■  SRETC(Synchronous proc
ess RETurn code)同期処理の終了コー
ドを保持するレジスタである。 ■  SVCC(SVC Code) 直前に実行されたSVC 命令のSVC コードを保持
するレジスタである。 4−4  同期処理実行部 命令実行制御部の指示により同期処理を実行する部分で
ある。処理の実行結果に応じて、CR中のSRETC 
(Synchronous process RETu
rn code )を設定する。 4−5  非同期処理キュー 実行中の非同期処理、および命令により開始され実行待
ちの非同期処理が保持されるキューである。APQE1
 〜APQE31の31個のエントリが存在する。各エ
ントリは、命令コード、終了コード( RETC:8ビ
ット長) 、実行ID(EXID :EXecutio
nID)から構成される。
【0062】APQE1〜APQE(SEP−1) の
範囲のエントリが実行中である。 APQE(SEP)が次に実行が開始されるエントリで
ある。 APQE(SEP+1)〜 APQE(LEP)が命令
により開始されたが実行待ち状態にあるエントリである
【0063】APQE(LEP+1)が次にエンキュー
されるエントリを示す。 命令バッファ、および開始点ポインタの指すエントリに
対する以下のレジスタ干渉検出機構がある。以下のレジ
スタ干渉検出機構で、命令バッファ中のCR番号が0の
とき、または開始点ポインタの指すエントリ中のGR番
号が0のときは、その領域は比較対象の領域中に含まれ
ないと判定される。 ■  命令バッファ(IB) ・IB.GRN1 がAPQE1 〜APQE(LEP
) のGRN3領域に含まれているか否かの判定機構 ・IB.GRN2 がAPQE1 〜APQE(LEP
) のGRN3領域に含まれているか否かの判定機構 ・IB.GRN3 がAPQE1 〜APQE(LEP
) のGRN1,GRN2 またはGRN3領域に含ま
れているか否かの判定機構・IB中の命令がFRを指定
する命令の場合も上記3 項目と同様の判定機構。 ・IB.OPCがCCを変更するか参照する処理のとき
、APQE1〜APQE(LEP) に、CCを変更す
る処理(OPC) が含まれているか否かの判定機構、
IB.OPCがCCをアクセスしない処理のときには、
CCの干渉がないと判定される。 これらの干渉のいずれかが存在する時には、命令実行制
御部へのデータ干渉信号線の値は1となる。 ■  開始点ポインタの指すエントリ(Start E
ntry)・SE.GRN1 が APQE1〜APQ
E(SEP−1) のGRN3領域に含まれているか否
かの判定機構、 ・SE.GRN2 が APQE1〜APQE(SEP
−1) のGRN3領域に含まれているか否かの判定機
構、 ・SE.GRN3 が APQE1〜APQE(SEP
−1) のGRN1、GRN2またはGRN3領域に含
まれているか否かの判定機構、・SE中の命令がFRを
指定する命令の場合も上記3項目と同様の判定機構 ・SE OPCがCCを変更する処理のとき、APQE
1 〜APQE(SEP−1) にCCを変更する処理
(OPC) が含まれているか否かの判定機構、SE.
OPCがCCを変更しない処理のときには、CCの干渉
がないと判定される。
【0064】非同期処理キューへのエンキュー及びデキ
ューは、エンキューデキュー制御部により次の様に実行
される。 ■  エンキュー 命令実行制御部が、命令バッファ中の命令が非同期処理
を示すことを検出したとき、命令実行制御部が、エンキ
ューデキュ制御部に、非同期処理のエンキュー要求を発
行する。LEP が31未満のときにはエンキューデキ
ュー制御部は、LEP に1を加算し、LEP の新し
い値の指すエントリに命令バッファの内容をコピーする
。該当エントリのRETCおよびEXIDは0に初期化
される。
【0065】LEP が31のときは、非同期処理キュ
ーが1 杯であり、新しいエントリをエンキューするこ
とはできない。このときには、キューのエントリかデキ
ューされるまで命令の実行が遅らされる。 ■  デキュー 開始点ポインタ(SEP) より小さいエントリ番号を
持つ処理が、プログラム割込み要因無しに終了したとき
、非同期処理実行制御部はEXIDを指定してエントリ
のデキューをエンキューデキュー制御部に指示する。エ
ンキューデキュー制御部は、指定されたEXIDを持つ
エントリの以降の全てのエントリを1 つづつ前のエン
トリにずらし、SEP とLEP の値をそれぞれ1 
ずつ減少させる。 4−6  エンキューデキュー制御部 エンキューデキュー制御部は、開始エントリポインタ(
SEP)および最終エントリポインタ(LEP) を保
持し、次の動作を行うハードウェアユニットである。 ■  命令実行制御部からの指示により、命令バッファ
の内容をキューの最後尾にエンキューする。 ■  プログラム割込み要因の発生時に、非同期動作の
終了待ちが行われた後、命令実行制御部の指示により、
APQE1 〜APQE(LEP) の内容をAPCR
1 〜APCR(LEP)に複写し、OLEPにはLE
P の値を複写する。その後、LEP に0 、SEP
に1 を設定する。 ■  非同期処理実行制御部が指定したEXIDを、S
EP の指すエントリに書込み、SEP を1 増加さ
せる。 ■  非同期処理実行制御部が指定したEXIDを持つ
エントリを、デキューする。 ■  非同期処理実行制御部が指定したEXIDを持つ
エントリのRETCに、指定された値を設定する。 4−7  非同期処理実行制御部 非同期処理実行制御部は、SEP の指すエントリの開
始判定、開始した処理に対する命令コードとEXIDの
処理実行ユニットへの送付および処理の実行開始の制御
、および非同期処理の終了時の制御を行う。非同期処理
実行制御部の動作については、/5/ を参照。
【0066】非同期処理実行制御部は、以下の2 つの
31ビット長レジスタを保持する。 ■ EXIDB(EXID Busy flag)各1
 ビット長であるEXIDB#1 〜EXIDB#31
の31ビットのフラグから成るレジスタである。EXI
DB#(X) は、X の値をEXIDとして持つ非同
期処理が使用されているか否かを, 次のように表示す
る。 0:X の値のEXIDは使用されていない。 1:X の値がEXIDとして使用されている。X の
値をEXIDとして持つ非同期処理は、実行中であるか
、プログラム割込み要因を検出して終了しているかのい
ずれかの状態にある。 ■ EXIDR(EXID interRupt fl
ag) 各1 ビット長であるEXIDR#1 〜EX
IDR#31の31ビットのフラグから成るレジスタで
ある。EXIDR#(X) は、X の値をEXIDと
して持つ非同期処理がプログラム割込み要因を検出して
終了しているか否かを次のように表示する。 0:X の値のEXIDを持つ処理は、存在しないか実
行中である。 1:X の値がEXIDとして持つ処理は、プログラム
割込み要因を検出して終了している。
【0067】非同期処理実行制御部は、命令実行制御部
からの次の信号を入力し、その信号が1のとき規定され
た動作を行う。 ■  非同期処理リセット信号 この信号が入力されると、規定されたタイミングで非同
期処理実行制御部は、次の動作を行う。 ・ EXIDBに0 を設定する。 ・ EXIDBに0 を設定する。
【0068】また、非同期処理実行制御部は、命令実行
制御部に次の2種類の信号を送出する。 ■  非同期処理プログラム割込み信号EXIDR#1
 〜 EXIDR#31 の全てのビットの論理和の値
をとる信号である。プログラム割込み要因を検出して終
了した非同期処理が存在するか否かを次のように表示す
る。 0:プログラム割込み要因を検出して終了している非同
期処理は無い。 1:プログラム割込み要因を検出して終了している非同
期処理が存在する。 ■  非同期処理停止信号 実行中の非同期処理が存在せず、また非同期処理実行制
御部が非同期処理キュー中の処理を新たに開始しない状
態となったときに1 となる信号である。この信号は、
次の条件で1 となる。
【0069】(LEP が0)または(EXIDBが全
て0 でなくかつ EXIDBとEXIDR が等しい
) 4−8  非同期処理実行ユニット 非同期処理実行制御部の指示により、特定の非同期処理
を実行するユニット群である。以下の動作を行う。 ■  非同期処理実行制御部から、命令コードとESI
Dが送られ処理の実行を開始する。 ■  処理の終了時に、EXIDとRETCを非同期処
理実行制御部に通知する。
【0070】次に図11,図12を用いて第1の実施例
の命令実行制御用の動作を説明する。まず、図において
[A]から開始し、ICの指すアドレスから4バイトを
命令バッファに読み込む。次に命令読み込みに関するプ
ログラム割り込み要因が発生したかを判断し、YESな
らSRETCに発生したプログラム割り込み要因に対応
する値を出力する。NOなら割り込み動作の開始要因が
無いときは[B]へ移る。割り込み動作の開始要因とは
、 ■  SRETCが0でない。 ■  非同期処理プログラム割り込み信号が1■  S
VCCが0でない。 ■  EALより大きいレベルの外部割り込み信号が存
在する。である。
【0071】次に割り込み動作の開始要因が有りるとき
は、命令バッファ中のOPCが非同期処理を指定してい
るかを判断し、YESのときは命令バッファ中のOPC
が定義されない処理を指定する。
【0072】この指定がNOであれば命令バッファ中の
命令と非同期処理キュー中のLEPより前のエントリ間
にデータ依存関係があるかを見て、NOであれば同期処
理実行部に処理の実行を指示し、同期処理部が処理の終
了時にSRETCに実行結果を出力し、SVC処理では
SVCCを設定し、実行した処理がICを変更する処理
でないときICに4を加算し、SRETCが0か(同期
処理でプログラム割り込み要因が無かどうか)どうかを
みる。
【0073】そしてYESのときは最初にもどる。命令
バッファ中のOPCが定義されない処理を指定するとき
SRETCにOPCの異常を示すコードを設定する。命
令バッファ中のOPCが非同期を指定していないとき、
エンキューデキュー制御部に命令バッファの処理のエン
キューを指令し、非同期処理キューが1バイトかをみて
、NOならICに4を加えて、最初にもどる。
【0074】次に図12に示すように、[B]の処理は
、非同期処理停止信号が0かどうかを判断し、YESの
ときSRETCが0でない、または非同期処理プログラ
ム割り込み信号が1であるかを判断し、NOであるなら
SVCCが0かを見て、NOであるならINTTYPE
にSVCCを複写し、SVCCに0を設定し、OPSR
←PSR,PSR←NPSR(但し、EALの値は無変
更)とする。
【0075】SVCCが0のとき、最もレベルの高い存
在する外部割り込み信号を選択し、選択したレベルをL
とする。そして、OPSR←PSR,INTTYPE←
L+0×20,PSR←NPSR(但し、EALにはL
を設定)とし、OIC←IC,IC←INTB+INT
TYPE*16として、[A]へもどる。
【0076】SRETCが0でないかまたは非同期処理
プログラム割り込み信号が1であるときSVCCが0で
ないとき、ICを4減算し、SVCCを0にする。そし
て、エンキューデキュー制御部に非同期処理キューの非
同期処理キュー複写レジスタへの複写および初期化を指
示し、エンキューデキュー制御部はAPQE#1〜AP
QE#(LEP)を、APCR#1〜APCE#(LE
P)に複写する。また、OLEPにLEP を複写後、
LEP に0,SEP に1を設定する。非同期処理リ
セット信号に一定時間1を出力し、この間に、非同期処
理実行制御部は、EXIDB およびEXIDR を共
に0にする。SRETC をLSRETCに複写し、ま
た、INTTYPE に0×10を設定する。
【0077】そして、OPSR←PSR ,PSR←N
PSR但し、EAL の値は無変更とする。次に図13
を用いて非同期処理実行制御部の動作を説明する。SE
P <=LEP かつEXIDR =0のとき、SEP
 の指すエントリ中の命令と非同期処理キューのSEP
 より前のエントリ間にデータ依存関係が無く、該当処
理を実行する非同期処理ユニットが処理を開始できる状
態にあるかを判断する。YESならば、EXIDB #
1 〜EXIDB #31のうち、0を保持する最も番
号の低いフラグを認識する。この番号XをSEP の指
すエントリのEXIDとして割り当てる。
【0078】EXIDB #X に1を設定する。 SEP の指すエントリの内容に、EXIDとしてX 
を付加して、その処理を実行する非同期処理実行ユニッ
トに送付する。対応する非同期処理実行ユニットは処理
を開始する。
【0079】X を付加して、SEP の変更指示をエ
ンキューデキュー制御部に送信する。エンキューデキュ
ー制御部は、SEP の指すエントリのEXIDにX 
を設定後、SEP に1 を加える。
【0080】次に、各非同期処理実行ユニットが送信す
る実行終了処理のEXIDとRECT(終了コード)を
受理する。受理した全てのEXID−X とRETC−
Y の組に対して以下の処理を行う。
【0081】Yが0である(プログラム割込み要因無で
処理が終了)のとき、エンキューデキュー制御部にEX
ID−X を持つエントリのデキューを指示する。エン
キューデキュー制御部は、EXID−X を持つエント
リ以降のエントリを1つ前のエントリの移動する。SE
P およびLEPの値を1減算する。EXIDB #(
X )に0を設定する。
【0082】Yが0でないとき、エンキューデキュー制
御部にEXID−X を持つエントリのRETCにRE
TC−Y を設定する事を指示する。エンキューデキュ
ー制御部はこれを実行する。EXIDR #(X )に
1を設定する。
【0083】図11で示したフローの中の[C]におけ
るRTN 命令の処理フローを図14に示す。LEP 
が0(SEP は1である)ならPSR ←OPSR,
IC←OIC を設定し、エンキューデキュー制御部に
非同期キュー複写レジスタの内容の非同期処理キューへ
の転送を指示し、エンキューデキュー制御部は、APC
R#1〜APCR#(OLEP) の内容をAPQE#
1〜APQE#(OLEP) に複写後、LEP ← 
OLEP を設定する。 そして、[C]の部分の終わりとなり、LEP が0で
ないなら、NOP として扱われる。
【0084】次に、本発明に用いられるデータ依存関係
を調べる回路について、図15を参照して説明する。図
15において、全ての非同期キューエントリに対するQ
B#X  Conflicts   IBN1信号をO
Rする事で、IB中のN1領域に対するデータ依存関係
の有無が検出できる。
【0085】IBのN2領域についても同様IBのN3
領域については、各キューエントリのN1,N2,N3
領域の全てとの比較が行われる。
【0086】SBP(開始エントリポインタ)が指すエ
ントリのデータ依存関係の検出については、以下の2種
類の方法が考えられる。 (1)   図15のIBの位置にQB#X(キューエ
ントリ#X)を置き、QB#XとQB#X1 〜QB#
( X−1 )間のデータ依存関係の検出回路を、各Q
Bに対して設ける方法。 (2) 非同期処理実行開始バッファ(APSB:As
ynchronous process Start 
Buffer)を設け、SEPの指すエントリをこのA
PSBバッファにコピーする。APSBバッファと各Q
B間に図15に示すようなデータ依存関係検出回路を設
ける。
【0087】図15において、IBをAPSBに置き換
える。また、LEPおよびそのデコーダをSEPとその
デコーダに置き換える。図7の命令バッファと非同期キ
ューエントリ32個のうちの第#番目の非同期キューエ
ントリとの間の依存関係を調べ、依存関係があればQE
#λ  Conflicts IBN1を1とする。
【0088】命令バッファに入ってきたものは、もっと
も新しい命令であり、それが過去に入った非同期命令と
の依存関係を調べることとなる。まず命令バッファのO
PCすなち命令の種類をdecodeして調べる。命令
はGRを指定するものとFRを指定するものに分類され
ている。命令バッファに示されているN1,N2,N3
は、GRのN1,N2,N3またはFRのN1,N2,
N3に対応し、それらはOPCの解読によって明らかに
なる。
【0089】GRかFRかはOPCの最上位以下をみて
、OであればGR、1であればFRである。デコードし
た出力、例えばIB  N1  GRbyOPCは、O
PCによって解読した結果、N1がGRである場合に1
となる信号である。N2,N3に対しても同様である。 同様に非同期キューエントリーに入っている命令のOP
Cを解読することにより、N1,N2,N3の各フィー
ルドがGRであるかFRであるかを判定することができ
、例えばQE#×  N3  GR  by  OPC
は非同期キューに入っている×番目の非同期命令はN3
フィールドGRである場合に1となる信号である。以下
、同様である。
【0090】命令バッファ1B中のN1フィールドをデ
コードし、オール0の検出を行って、0でなければ1B
  N1  NOT  0が1となる。N1領域が0の
場合には、指定された命令はキューイングされている命
令とconflicts (データ依存関係)はないN
1が0のときには、N1によって指定されるGROやF
ROの内容は0固定だから、データ依存関係はない。逆
にいうと、1B  N1  NOT  0が1である場
合にはコンフクリトの可能性があることになる。
【0091】AND1はN1領域がGRであって、N1
の領域が0でないときに1を出力する。同様に、N1領
域がFRであって、かつN1が0でないときにAND2
の出力で1が1となる。
【0092】同じことをN3について行う。AND5は
N3領域がGRであって、N3の領域が0でないときに
1を出力する。
【0093】AND6はN3領域がFRであって、N3
の領域が0でないときに1を出力する。ただし、AND
5,6には、ともにAQE#X  LEP Valid
が入力され、これはキューの最終エントリポインタLE
P をデコードした信号であり、非同期処理がまだ実行
されていない#X 番目のエントリが最終エントリポイ
ンタよりも、前にあるまた実行結果がでていないときに
、1 となる信号である。その有効信号をAND5,6
の出力は、N3がGRであってコンフリクトとの可能性
のある信号である。
【0094】AND3,4は、命令バッファ中にN1が
GRであって、その内容が0でない場合であり、かつま
たそれと同じGRN1がキューイングのN3によって示
されている同じGRであるかどうかを見る。
【0095】OPCのN1がGRであって、そのGRが
キューイングされた命令のN3になっているかどうか、
すなわち、N3が非同期キュー処理の結果を入れるGR
命令バッファのN3が非同期キューのN3と同じになっ
ているかを見るただし、AND5,6には、ともにAQ
E#X  LEP Validが入力され、これはキュ
ーの最終エントリポインタLEP をデコードした信号
であり、非同期処理がまだ実行されていない#X 番目
のエントリが最終エントリポインタよりも、前にあるま
た実行結果がでていないときに、1 となる信号である
。その有効信号をAND5,6の出力は、N3がFRで
あってコンフリクトとの可能性のある信号である。
【0096】AND3,4は、命令バッファ中にN1が
FRであって、その内容が0でない場合であり、かつま
たそれと同じGRN1がキューイングのN3によって示
されている同じFRであるかどうかを見る。
【0097】OPCのN1がFRであって、そのFRが
キューイングされた命令のN3になっているかどうか、
すなわち、N3が非同期キュー処理の結果を入れるFR
命令バッファのN3が非同期キューのN3と同じになっ
ているかを見るAND3と4との出力のORをとること
によはって全体の依存関係有無の信号をつくっている。 ただし、前記AND3,4には、非同期キューエントリ
のN3の内容と命令バッファのN1の内容それぞれ5ビ
ットを比較し、一致していれば、それぞれ1となる信号
がとれる。QE#1N3eqn113N1を条件として
入力している。すなわち、指定されたGRのN1と非同
期キューのGRのN3(結果として使うN3)が一致し
ていれば、データ依存関係がある。
【0098】F1に関しても同じである。IBのF1と
キューイングのF3  同じであれば、データ依存関係
にあることになる。命令バッファは1個であり、非同期
キューは32個であるから図15と同じ回路が32個で
あることになる。
【0099】図16は本発明の第2の実施例を示し、こ
の第2の実施例が図7に示した第1の実施例と異なる点
は、非同期処理キュー複写レジスタを用いるかわりに、
非同期処理キューに非同期処理フリーズ信号を加えて、
非同期処理キューの内容を固定したものである。さらに
、この第2の実施例は、第1の実施例と、FEP ,L
EP, FXIDB ,FXIDR がCRとしてアク
セス可能とし、■  非同期処理リセット信号を■非同
期処理フリーズ信号とした点で異なる。
【0100】図17は第2の実施例における命令実行制
御部の動作を示すフローチャートであり、図12に示し
た第1の実施例のフローチャートと対応するものである
。まず、図11の[B]につづいて、非同期処理停止信
号が0かを判断し、YESのときSRETC が0でな
い、または非同期処理プログラム割り込み信号が1であ
るかを判断し、NOであれば、SVCCが0であるかを
判断する。SVCCが0でないとき、INTTYPE 
にSVCCを複写、SVCCに0を設定し、OPRS←
PSR 、PSR ←NPSR但し、EAL の値は無
変更、また、非同期処理プログラム割込みが存在する場
合にはPRS ,FASPには1が設定される。
【0101】SVCCが0のとき、最もレベルの高い存
在する外部割込み信号を選択する。選択したレベルをL
とする。OPSR←PSR 、INTTYPE ←L 
+0×20、PSR ←NPSR、但しEAL にはL
 を設定し、OIC ←IC、IC←INTB+INT
TYPE *16として、Aへ戻る。
【0102】SRETC が0でない、または非同期処
理プログラム割込み信号が1であるときにSVCCが0
でなければICを4減算し、SVCCを0にする。次に
、非同期処理プログラム割込み信号が1であるかを判断
し、YESのとき、非同期処理フリーズ信号を1とし、
SRETC をLSRETCに複写する。また、INT
TYPE に0×10を設定し、OPSR←PSR 、
PSR ←NPSR但し、EAL の値は無変更、また
、非同期処理プログラム割込みが存在する場合には、P
SR,FASPには1が設定される。非同期処理プログ
ラム割り込み信号が1でないときは、非同期処理フリー
ズ信号を1とすることなく、SRETC をLSRBT
Cに複写する。
【0103】図18は図11の[C]に示したRTN 
命令の処理フローを第2の実施例に沿って示したもので
、第1の実施例の図14に対応するものである。LEP
 が0(SEP は1である)とき、PSR ←OPS
R,IC ←OIC を設定し、LEP が0でないと
きNOPとして扱われ、[C]の部分の終わりとなる。
【0104】
【発明の効果】以上述べたように、本発明によれば、非
同期CPU資源使用処理の高速化を図ることができると
ともに、割込みハンドラが使用するような基本的なCP
U資源使用処理の非同期的実行が可能であり、かつ割込
みハンドラの作成が容易な割込み処理方式を提供でき、
更に割込みハンドラが使用するような基本的なCPU資
源使用処理の非同期的実行が可能であり、必要なCPU
資源使用処理依存割込み要因に対しては、対応する割込
みハンドラの処理の終了後、元のプログラムを再開可能
とするための割込み処理方式が可能となる。
【図面の簡単な説明】
【図1】従来の計算機のパイプラインを示すタイミング
図である。
【図2】本発明の対象となる非同期CPU資源処理の存
在する計算機のパイプラインを示すタイミング図である
【図3】図2において命令実行制御部と主記憶読み込み
のパイプラインの同期を示すタイミング図である。
【図4】プログラムの一例を示す図である。
【図5】従来の計算機における図4のプログラムのタイ
ミング図である。
【図6】本発明の計算機における図4のプログラムのタ
イミング図である。
【図7】本発明の第1の実施例のハードウェア構成図で
ある。
【図8】命令形式を示す図である。
【図9】同期処理の終了コードを示す図である。
【図10】非同期キュー複写レジスタの形式を示す図で
ある。
【図11】第1の実施例における命令実行制御部の動作
を示すフローチャートである。
【図12】第1の実施例における命令実行制御部の動作
を示すフローチャートである。
【図13】第1の実施例における非同期処理実行制御部
の動作を示すフローチャートである。
【図14】第1の実施例におけるRTN 命令の処理を
示すフローチャートである。
【図15】データ依存関係の検出ハード構成図である。
【図16】本発明の第2の実施例のハードウェア構成図
である。
【図17】第2の実施例における命令実行制御部の一部
を示す図である。
【図18】第2の実施例におけるRTN 命令の処理を
示すフローチャートである。

Claims (22)

    【特許請求の範囲】
  1. 【請求項1】  命令バッファに格納された命令が同期
    処理か非同期処理かを判断し、非同期処理である場合に
    は、前記命令をキューイングするキューイング手段と、
    前記キューイングされている命令が指定するレジスタと
    、前記入力された命令が指定するレジスタとが同じレジ
    スタであるかをチェックすることにより、データの依存
    関係をチェックするデータ依存関係チェック手段と、該
    データ依存関係を調べながら同期と非同期処理を行う制
    御手段とからなることを特徴とする命令処理装置。
  2. 【請求項2】  命令バッファに格納された命令が同期
    処理か非同期処理かを判断し、非同期処理である場合に
    は、前記命令をキューイングするキューイング手段と、
    同期処理部または非同期処理部で割り込みが発生した場
    合、またはCPU外部からの割り込みが検出された場合
    に、キューイング済みの1個以上の非同期処理が未処理
    のまま終了または例外を発生して終了することがあり、
    このとき割り込み発生前のプログラムを再開できるよう
    に、未処理または例外を発生した全ての非同期処理の内
    容および終了方法(未実行または例外の種類)を割り込
    み発生時にプログラムに表示する手段とからなることを
    特徴とする割り込み処理方式。
  3. 【請求項3】  前記表示する手段は前記キューイング
    手段とは別のレジスタにキューイング内容を退避させる
    手段を含むことを特徴とする請求項2に記載の割り込み
    処理方式。
  4. 【請求項4】  前記表示する手段は前記キューイング
    手段の内容をフリージング(固定)する手段を含むこと
    を特徴とする請求項2記載の割り込み処理方式。
  5. 【請求項5】  命令バッファに格納された命令が同期
    処理か非同期処理かを判断し、非同期処理である場合に
    は、前記命令をキューイングするキューイング手段と、
    同期処理部または非同期処理部で割り込みが発生した場
    合、またはCPU外部からの割り込みが検出された場合
    に、キューイング済みの1個以上の非同期処理が未処理
    のまま終了または例外を発生して終了することがあり、
    このとき割り込み発生前のプログラムを再開できるよう
    に、未処理または例外を発生した全ての非同期処理の内
    容および終了方法(未実行または例外の種類)を割り込
    み発生時にプログラムに表示する手段と、割り込み発生
    時に示された未処理および例外を発生して終了した非同
    期処理の再開制御手順を有することを特徴とする割り込
    み処理方式。
  6. 【請求項6】  命令バッファに格納された命令が同期
    処理か非同期処理かを判断し、非同期処理である場合に
    は、前記命令をキューイングするキューイング手段と、
    前記キューイングされている命令が指定するレジスタと
    、前記入力された命令が指定するレジスタとが同じレジ
    スタであるかをチェックすることにより、データの依存
    関係をチェックするデータ依存関係チェック手段と、非
    同期処理キュー内の処理と、その処理より先に非同期処
    理キューにキューイングされた処理との間のデータの依
    存関係をチェックする手段を備えることにより、入力さ
    れた命令列のデータ依存関係を保ちつつ命令で指定され
    た処理を実行する処理装置であって、かつ同期処理部ま
    たは非同期処理部で割り込みが発生した場合、またはC
    PU外部からの割り込みが検出された場合に、キューイ
    ング済みの1個以上の非同期処理が未処理のまま終了ま
    たは例外を発生して終了することがあり、このとき割り
    込み発生前のプログラムを再開できるように、未処理ま
    たは例外を発生した全ての非同期処理の内容および終了
    方法(未実行または例外の種類)を割り込み発生時にプ
    ログラムに表示する非同期処理キューイング内容保存手
    段とからなることを特徴とする割り込み処理方式。
  7. 【請求項7】  命令バッファに格納された命令が同期
    処理か非同期処理かを判断し、非同期処理である場合に
    は、前記命令をキューイングするキューイング手段と、
    前記キューイングされている命令が指定するレジスタと
    、前記入力された命令が指定するレジスタとが同じレジ
    スタであるかをチェックすることにより、データの依存
    関係をチェックするデータ依存関係チェック手段と、非
    同期処理キュー内の処理と、その処理より先に非同期処
    理キューにキューイングされた処理との間のデータの依
    存関係をチェックする手段を備えることにより、入力さ
    れた命令列のデータ依存関係を保ちつつ命令で指定され
    た処理を実行する処理装置であって、かつ同期処理部ま
    たは非同期処理部で割り込みが発生した場合、またはC
    PU外部からの割り込みが検出された場合に、キューイ
    ング済みの1個以上の非同期処理が未処理のまま終了ま
    たは例外を発生して終了することがあり、このとき割り
    込み発生前のプログラムを再開できるように、未処理ま
    たは例外を発生した全ての非同期処理の内容および終了
    方法(未実行または例外の種類)を保存し割り込み発生
    時にプログラムに表示する非同期処理キューイング内容
    保持手段と、割り込み発生時に未処理および例外を発生
    して終了した非同期処理の再開制御手順を有することを
    特徴とする割り込み処理方式。
  8. 【請求項8】(1) レジスタ等のCPU資源からの入
    力、CPU資源への出力、またはその双方を行う処理(
    CPU資源使用処理)が同期CPU資源使用処理と非同
    期CPU資源使用処理の2種類に分類され、その各々の
    実行は、 ■  同期CPU資源使用処理を、処理を指令する命令
    により開始し、命令の実行と同期して実行し、命令の実
    行終了時には、その命令により開始した同期CPU資源
    使用処理を、終了して、 ■  非同期CPU資源使用処理を、処理を指定する命
    令により開始し、命令の実行とは非同期的に実行し、命
    令の実行終了以降に、その命令により開始した非同期C
    PU資源使用処理を終了する、同期命令・非同期命令の
    処理手段と、 (2) CPU資源に出力を行う非同期CPU資源使用
    処理(先行処理)を命令により開始したとき、該処理を
    開始した命令より後で発行する命令で開始するCPU資
    源使用処理(後行処理)で先行処理の資源への出力を入
    力として使用するとき、すなわち、データ依存関係があ
    るときは、後行処理での資源の入力が先行処理での該資
    源への出力が終了するまで待たされ、CPU資源使用処
    理(後行処理)がある資源への出力を行う場合には、該
    処理より先に開始された全てのCPU資源使用処理(先
    行処理)による該資源へのアクセス(入力および出力の
    両者)が終了してから、後行処理は該資源への出力を行
    い、後行処理が同期CPU資源使用処理の場合には、先
    行処理での関係する資源へのアクセスが終了するまで後
    行処理を指定する命令の実行終了を遅らせ、すなわち、
    プログラムカウンタを、その後行処理を開始する命令を
    指したままとし、後行処理が非同期CPU資源使用処理
    の場合には、後行処理を開始する命令の実行終了を前の
    処理の該資源への関係するアクセスが終了するまで遅ら
    せても良いし、後行処理を開始する命令の実行は完了し
    後行処理を開始するが、後行処理での該資源へのアクセ
    スを遅らせても良く、非同期CPU資源使用処理の実行
    が開始すると、その入力が終了するまでは、後続CPU
    資源使用処理での該資源への出力を待たせるデータ依存
    関係処理手段と、 (3) さらに実行中のCPU資源使用処理で前記CP
    U資源使用処理依存割り込み要因が検出されたとき、ま
    たは外部割り込み等の実行中のCPU資源使用処理の実
    行結果に直接依存せずに発生する割込(CPU資源使用
    処理無依存割り込み)の割り込み要因が検出されたとき
    には、ハードウェアは以下の割り込み動作を行い、(A
    ) ハードウェアは新たな命令の実行は開始しないが、
    実行中の命令およびすでに実行が開始されている非同期
    CPU資源使用処理は継続して実行する、実行可能な非
    同期CPU資源使用処理が終了し非同期CPU資源使用
    処理の状態が変化しなくなるのを待つ状態待ち手段と、
    (B) ステップ(A) のCPU資源使用処理の終了
    待ちを実行後には、割り込み動作の開始時に実行中であ
    った全ての非同期CPU資源使用処理を終了する非同期
    CPU資源使用処理終了手段と、 同期CPU資源使用処理は、その処理を開始する命令の
    実行終了時に終了し、(A) の操作が終了したとき実
    行中であった同期CPU資源使用処理も終了する同期C
    PU資源使用処理終了手段とからなる割り込み処理方式
  9. 【請求項9】(4) 同期CPU資源使用処理の一部、
    および非同期CPU資源使用処理の一部が、CPU資源
    使用処理依存割り込み要因を発生したことを検出すると
    きこの処理の出力を、後行処理で入力として使用すると
    、後行処理の実行結果も期待された実行結果と異なる様
    にするCPU資源使用処理依存割り込み制御手段をさら
    に具備することを特徴とする請求項8記載の割り込み処
    理方式。
  10. 【請求項10】  前記CPU資源使用処理依存割り込
    み要因とは、CPU資源使用処理の実行中に特定の事象
    が発生した場合に検出される割り込み要因であり、CP
    U資源使用処理依存割り込み要因が検出された処理の出
    力が期待された結果であってその出力を後続処理で入力
    として使用する事が期待される結果にならなかった事を
    示す割り込み要因であることを特徴とする請求項9記載
    の割り込み処理方式。
  11. 【請求項11】  前記非同期CPU資源使用処理終了
    手段は、CPU資源使用処理依存割り込み要因を検出せ
    ずに完了し、処理の出力は、期待された出力とする請求
    項8記載の割り込み処理方式。
  12. 【請求項12】  前記非同期CPU資源使用処理終了
    手段は、CPU資源使用処理依存割り込み要因を検出し
    て実行を終了する請求項8記載の割り込み処理方式。
  13. 【請求項13】  前記非同期CPU資源使用処理終了
    手段は、非同期CPU資源使用処理が先行する処理の資
    源への出力を使用する処理であり、先行する処理がCP
    U資源使用処理依存割り込み要因を検出し期待された出
    力を行わなかったときには、そのCPU資源使用非同期
    処理は未実行のまま終了し、未実行で終了した処理の出
    力に対するデータ依存関係は、消去される請求項8記載
    の記載の割り込み処理方式。
  14. 【請求項14】  前記非同期CPU資源使用処理終了
    手段は、請求項13で未実行となった処理の出力を入力
    として使用する非同期CPU資源使用処理を、未実行の
    まま終了し、未実行で終了した処理の出力に対するデー
    タ依存関係を、消去する請求項8記載の割り込み処理方
    式。
  15. 【請求項15】  前記非同期CPU資源使用処理終了
    手段は、CPU資源使用処理依存割り込み要因が1個で
    も検出されている場合には、すでに命令により開始され
    ている非同期CPU資源使用処理がこの割り込み要因と
    データ依存関係が無い場合でも、未実行で終了しても良
    い請求項8記載の割り込み処理方式。
  16. 【請求項16】  前記同期CPU終了手段は、CPU
    資源使用処理依存割り込み要因を検出せずに完了した請
    求項8記載の割り込み処理方式。
  17. 【請求項17】  前記同期CPU終了手段は、CPU
    資源使用処理依存割り込み要因を検出して、処理の実行
    が終了する請求項8記載の割り込み処理方式。
  18. 【請求項18】(C)  (B)で資源使用処理依存割
    り込み要因が1個も検出されなかったとき:割り込み動
    作を開始させた割込要因は、CPU資源使用処理無依存
    割り込み要因であり、ハードウェアは、割り込み動作を
    開始させた割り込み要因に対応した割り込みを発生する
    割り込み発生手段、 (B) でCPU資源使用処理依存割り込み要因が1個
    以上検出されたとき:割り込み動作を開始させた割り込
    み要因によらず、CPU資源使用非同期処理およびCP
    U資源使用同期処理に関する情報を、1回のCPU資源
    使用処理依存割り込みでプログラムに同時に全て通知す
    る割り込み通知手段を有し、複合CPU資源使用処理依
    存割り込みを行い、(3) の割り込み動作を行うこと
    により、割り込み発生後には、割り込み発生前に実行し
    ていたプログラムで実行が開始された非同期CPU資源
    使用処理が原因となったCPU資源使用処理依存割り込
    み要因が新たに検出されない事が保証され、また、割り
    込み発生後には、CPUの全資源が解放されている事が
    保証される(割り込み発生前に開始された非同期CPU
    資源使用処理の出力となっている為に、CPU資源とし
    て使用するCPU資源使用処理の実行開始が送らされる
    事がない事が保証される)ことを特徴とする請求項8記
    載の割り込み処理方式。
  19. 【請求項19】(5) さらに、CPU資源使用処理依
    存割り込みが発生したとき、再開期待CPU資源使用処
    理依存割り込み要因のみが割り込み要因として依存する
    場合には、発生した全ての再開期待CPU資源使用処理
    依存割り込みに対する適当な処理の後、元のプログラム
    を再開できる可能性があり、CPU資源使用処理依存割
    り込みの発生時に、再開期待CPU資源使用処理依存割
    り込みを発生した処理および未実行で終了したCPU資
    源使用処理の各々に対して、 ■  割り込み元のプログラムに復帰するCPU資源使
    用処理を実行すると、指定した再開期待CPU資源使用
    処理依存割り込み要因を検出した処理、および未実行で
    終了した処理が再実行されるか ■  割り込み要因処理プログラムが、処理をシミュレ
    ーションするのに十分な情報を割り込み時にプログラム
    に表示し、要因発生元のプログラムの再開が期待される
    ある種のCPU資源使用処理依存割り込み要因で、割り
    込み時に入力データか保存されていることが必要な場合
    には、その割り込み要因の発生時に、その要因を発生し
    た処理の入力資源を出力先とする後続処理は、全て未実
    行で終了させる再開期待CPU資源使用処理割り込み手
    段を具備し、このことにより、再開期待CPU資源使用
    処理依存割り込み要因の発生時に、割り込み要因を発生
    したプログラムを再開できるようにすることを特徴とす
    る請求項8記載の割り込み処理方式。
  20. 【請求項20】  一部のCPU資源使用処理保存割り
    込み要因は、対応する割り込み要因処理プログラムによ
    る適当な処理の実行後にその割り込み要因を発生したプ
    ログラムの再開が期待されることがあり、ページ不在等
    の割り込み要因となり、この種のCPU資源使用処理依
    存割り込み要因を、再開期待CPU資源使用処理依存割
    り込み要因と呼ぶ請求項19記載の割り込み処理方式。
  21. 【請求項21】(1) レジスタ等のCPU資源からの
    入力資源への出力、またはその双方向を行うCPU資源
    使用処理を、同期CPU資源使用処理と非同期CPU資
    源使用処理の2種類に分類し、 ■  同期CPU資源使用処理は、処理を指令する命令
    により開始され、命令の実行と同期して実行され、命令
    の実行終了時には、その命令により開始された同期CP
    U資源使用処理を、終了しており、 ■  非同期CPU資源使用処理は、処理を指定する命
    令により開始し、命令の実行とは非同期的に実行し、命
    令の実行終了以降に、その命令により開始した非同期C
    PU資源使用処理を終了し、 (2) CPU資源に出力を行う非同期CPU資源使用
    処理(先行処理)が命令により開始されたとき、該当処
    理を開始した命令より後で発行される命令で開始される
    CPU資源使用処理(後行処理)で先行処理の資源への
    出力を入力として使用するときは,後行処理での資源の
    入力が先行処理での該当資源への出力が終了するまで待
    たされ、CPU資源使用処理(後行処理)がある資源へ
    の出力を行う場合には、該当処理より先に開始された全
    てのCPU資源使用処理(先行処理)による該当資源へ
    のアクセス(入力および出力の両者)が終了してから、
    後行処理は該資源への出力を行い、後行処理が同期CP
    U資源使用処理の場合には、先行処理での関係する資源
    へのアクセスが終了するまで後行処理を指定する命令の
    実行終了を遅らせ、プログラムカウンタは、その後行処
    理を開始する命令を指したままとし、後行処理が非同期
    CPU資源使用処理の場合には、後行処理を開始する命
    令の実行終了を前の処理の該当資源への関係するアクセ
    スが終了するまで遅らせても良いし、後行処理を開始す
    る命令の実行は完了し後行処理を開始するのが後行処理
    での該当資源へのアクセスを遅らせても良く、非同期C
    PU資源使用処理の実行が開始されると、その実行が終
    了するまでは、後続CPU資源使用処理での該当資源へ
    の出力は待たされ、 (3) 同期CPU資源使用処理の一部、および非同期
    CPU資源使用処理の一部は、CPU資源使用処理依存
    割り込み要因を発生し、CPU資源使用処理依存割り込
    み要因とは、CPU資源使用処理の実行中に特定の事象
    が発生した場合に検出される割り込み要因であり、CP
    U資源使用処理依存割り込み要因が検出された処理の出
    力が期待された結果であってその出力を後続処理で入力
    として使用する事が期待される結果とならなかった事を
    示す割り込み要因であり、CPU資源使用処理依存割り
    込み要因の検出された処理の出力を、後行処理で入力と
    して使用すると、後行処理の実行結果も期待された実行
    結果と異なる様になし、 (4) 実行中CPU資源使用処理でCPU資源使用処
    理依存割り込み要因が検出されたとき、または外部割り
    込み等の実行中のCPU資源使用処理の実行結果に直接
    依存せずに発生する割込(CPU資源使用処理無依存割
    り込み)の割り込み要因が検出されたときには、ハード
    ウェアは以下の割り込み動作を行い、 (A) ハードウェアは新たな命令の実行は開始しない
    が、実行中の命令およびすでに実行が開始されている非
    同期CPU資源使用処理は継続して実行し、実行可能な
    全ての非同期CPU資源使用処理が終了し非同期CPU
    資源使用処理の状態が変化しなくなるのを待ち、(B)
     ステップ(A) のCPU資源使用処理の終了待ちを
    実行後には、割り込み動作の開始時に実行中であった全
    ての非同期CPU資源使用処理は、以下のいずれか1つ
    の方法で終了し、 非■  CPU資源使用処理依存割り込み要因を検出せ
    ずに完了し、処理の出力は、期待された出力とし、非■
      CPU資源使用処理依存割り込み要因を検出して実
    行が終了し、 非■  非同期CPU資源使用処理が先行する処理の資
    源への出力を使用する処理であり、先行する処理がCP
    U資源使用処理依存割り込み要因を検出し期待された出
    力を行わなかったときには、そのCPU資源使用非同期
    処理は未実行のまま終了し、未実行で終了した処理の出
    力に対するデータ依存関係は、消去され、非■  非■
    または非■で未実行となった処理の出力を入力として使
    用する非同期CPU資源使用処理は、未実行のまま終了
    し、未実行で終了した処理の出力に対するデータ依存関
    係は、消去され、 非■  CPU資源使用処理依存割り込み要因が1個で
    も検出されている場合には、すでに命令により開始され
    ている非同期CPU資源使用処理がこの割り込み要因と
    データ依存関係が無い場合でも、未実行で終了しても良
    く。 同期CPU資源使用処理は、その処理を開始する命令の
    実行終了時に以下のいずれか1つの方法で終了し、(A
    ) の操作が終了したときに、実行中であった同期CP
    U資源使用処理もこれらのいずれかの方法で終了し、同
    ■  CPU資源使用処理依存割り込み要因を検出せず
    に完了した。 同■  CPU資源使用処理依存割り込み要因を検出し
    て、処理の実行が終了し、 (C) (B) でCPU資源使用処理依存割り込み要
    因が1個も検出されなかったとき:割り込み動作を開始
    させた割り込み要因は、CPU資源使用処理無依存割り
    込み要因であり、ハードウェアは、割り込み動作え開始
    させた割り込み要因に対応した割り込みを発生し、(B
    ) で(c) 資源使用処理依存割り込み要因が1個以
    上検出されたとき:割り込み動作を開始させた割り込み
    要因によらず、(B) の非■〜非■となったCPU資
    源使用非同期処理および同■となったCPU資源使用同
    期処理に関する情報を、1回のCPU資源使用処理依存
    割り込みでプログラムに同時に全て通知し(複合CPU
    資源使用処理依存割り込み)、(4) の割り込み動作
    を行うことにより、割り込み発生後には、割り込み発生
    前に実行していたプログラムで実行が開始された非同期
    CPU資源使用処理が原因となったCPU資源使用処理
    依存割り込み要因が新たに検出されない事が保証され、
    また、割り込み発生後には、CPUの全資源が解放され
    ている事が保証され(割り込み発生前に開始された非同
    期CPU資源使用処理の出力となっている為に、CPU
    資源として使用するCPU資源使用処理の実行開始が送
    らされる事がない事が保証される)、 (5) 一部のCPU資源使用処理依存割り込み要因処
    理プログラムによる適当な処理の実行後にその割り込み
    要因を発生したプログラムの再開が期待される事があり
    (ページ不在等の割り込み要因)(ここでは、この種の
    CPU資源使用処理依存割り込み要因を、再開期待CP
    U資源使用処理依存割り込み要因と呼ぶ)、CPU資源
    使用処理依存割り込みが発生したとき、再開期待CPU
    資源使用処理依存割り込み要因のみが割り込み要因とし
    て存在する場合には、発生した全ての再開期待CPU資
    源使用処理依存割り込みに対する適当な処理の後、元の
    プログラムを再開できる可能性があり、CPU資源使用
    処理依存割り込みの発生時に、再開期待CPU資源使用
    処理依存割り込みを発生した処理および未実行で終了し
    たCPU資源使用処理の各々に対して、以下のいずれか
    が可能であるようにする ■  割り込み元のプログラムに復帰するCPU資源使
    用処理を実行すると、指定した再開期待CPU資源使用
    処理依存割り込み要因を検出した処理、および未実行で
    終了した処理が再実行される、かまたは、■  割り込
    み要因処理プログラムが、処理をシュミレーションする
    のに十分な情報を割り込み時にプログラムに表示する、 また、要因発生元のプログラムの再開が期待されるある
    種のCPU資源使用処理依存割り込み要因で、割り込み
    時に入力データが保存されていることが必要な場合には
    、その割り込み要因の発生時に、その要因を発生した処
    理の入力資源を出力先とする後続処理は、全て未実行で
    終了させる再開期待CPU資源使用処理割り込み手段を
    具備し、このことにより、再開期待CPU資源使用処理
    依存割り込み要因の発生時に、割り込み要因を発生した
    プログラムを再開できるようにすることを特徴とする命
    令処理装置。
  22. 【請求項22】  少なくとも、レジスタ等、中央処理
    装置(CPU)の資源を使用する処理を指定する命令に
    より開始され、該命令の実行と同期して実行される同期
    CPU資源使用処理と、該中央処理装置(CPU)の資
    源を使用する処理を指定する命令により開始され、該命
    令の実行とは非同期的に実行される非同期CPU資源使
    用処理とがあって、該同期CPU資源使用処理と、非同
    期CPU資源使用処理との間、又は非同期CPU資源使
    用処理間に、データ依存関係が保たれるように制御され
    、上記同期CPU資源使用処理、または、非同期CPU
    資源使用処理の実行中に発生する割り込み処理は:プロ
    グラム割り込み等、上記中央処理装置(CPU)の資源
    使用処理に依存する割り込み要因と、入出力割り込み等
    、該中央処理装置(CPU)の資源使用処理に依存しな
    い割り込み要因による割り込み処理が行われるデータ処
    理装置において、上記割り込み要因の何れかが検出され
    たとき、そのとき、中央処理装置(CPU)で実行中の
    上記同期CPU資源使用処理/非同期CPU資源使用処
    理を指示する命令の終了時点で、次の命令の実行の開始
    を抑止し、既に、実行中の複数個の上記非同期CPU資
    源使用処理の実行終了を待つと共に、該非同期CPU資
    源使用処理の終了条件を特定の記憶手段に記憶しておき
    、上記全ての非同期CPU資源使用処理の実行終了時点
    で上記非同期CPU資源使用依存の割り込み要因を発生
    させ、該発生した用意の割り込み処理の終了した時点で
    、上記特定の記憶手段で記憶しておいた、該非同期CP
    U資源使用処理終了条件に基づいて、該中央処理装置(
    CPU)のハードウェア状態を復元することを特徴とす
    る割り込み処理方式。
JP3080822A 1990-03-19 1991-03-19 割り込み処理方式 Expired - Fee Related JPH0786838B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3080822A JPH0786838B2 (ja) 1990-03-19 1991-03-19 割り込み処理方式

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2-69158 1990-03-19
JP6915890 1990-03-19
JP3080822A JPH0786838B2 (ja) 1990-03-19 1991-03-19 割り込み処理方式

Publications (2)

Publication Number Publication Date
JPH04218841A true JPH04218841A (ja) 1992-08-10
JPH0786838B2 JPH0786838B2 (ja) 1995-09-20

Family

ID=26410355

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3080822A Expired - Fee Related JPH0786838B2 (ja) 1990-03-19 1991-03-19 割り込み処理方式

Country Status (1)

Country Link
JP (1) JPH0786838B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5699554B2 (ja) 2010-11-11 2015-04-15 富士通株式会社 ベクトル処理回路、命令発行制御方法、及びプロセッサシステム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS51854A (en) * 1974-06-21 1976-01-07 Hitachi Ltd Deijitarukeisankino senkoseigyohoshiki
JPS57162035A (en) * 1981-03-31 1982-10-05 Fujitsu Ltd Interruption control system
JPS58101346A (ja) * 1981-12-11 1983-06-16 Fujitsu Ltd 命令実行制御方式
JPS62163144A (ja) * 1985-11-14 1987-07-18 デ−タ−・ゼネラル・コ−ポレ−シヨン デ−タ処理システム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS51854A (en) * 1974-06-21 1976-01-07 Hitachi Ltd Deijitarukeisankino senkoseigyohoshiki
JPS57162035A (en) * 1981-03-31 1982-10-05 Fujitsu Ltd Interruption control system
JPS58101346A (ja) * 1981-12-11 1983-06-16 Fujitsu Ltd 命令実行制御方式
JPS62163144A (ja) * 1985-11-14 1987-07-18 デ−タ−・ゼネラル・コ−ポレ−シヨン デ−タ処理システム

Also Published As

Publication number Publication date
JPH0786838B2 (ja) 1995-09-20

Similar Documents

Publication Publication Date Title
US5404552A (en) Pipeline risc processing unit with improved efficiency when handling data dependency
JP3093639B2 (ja) プロセッサ内の資源割当て追跡方法及びそのシステム
EP0381471B1 (en) Method and apparatus for preprocessing multiple instructions in a pipeline processor
US6233670B1 (en) Superscalar processor with direct result bypass between execution units having comparators in execution units for comparing operand and result addresses and activating result bypassing
JP2938426B2 (ja) 順不同ロード命令とストア命令との干渉を検出回復するための方法及び装置
US5596733A (en) System for exception recovery using a conditional substitution instruction which inserts a replacement result in the destination of the excepting instruction
US20060218124A1 (en) Performance of a data processing apparatus
RU2142157C1 (ru) Способ функционирования системы обработки
TW475149B (en) Secondary reorder buffer microprocessor
KR101183270B1 (ko) 오퍼랜드 의존성으로 인한 기능 정지를 감소시키는 방법 및데이터 프로세서
EP0482200B1 (en) Interrupt processing system
US5440703A (en) System and method for saving state information in a multi-execution unit processor when interruptable instructions are identified
US6324640B1 (en) System and method for dispatching groups of instructions using pipelined register renaming
RU2150738C1 (ru) Система обработки и способ ее функционирования
US5742755A (en) Error-handling circuit and method for memory address alignment double fault
JP3146058B2 (ja) 並列処理型プロセッサシステムおよび並列処理型プロセッサシステムの制御方法
US5737562A (en) CPU pipeline having queuing stage to facilitate branch instructions
EP0374598B1 (en) Control store addressing from multiple sources
JPH04218841A (ja) 割り込み処理方式
JPS581246A (ja) 命令処理順序制御方式
WO1999027439A1 (en) Computer system
JPH09138748A (ja) 浮動小数点命令の早期完了方法および装置
JPH0769825B2 (ja) 並列処理装置
JP2824484B2 (ja) パイプライン処理計算機
JPH10283178A (ja) 命令を発行するための方法及びシステム

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19960312

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313532

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080920

Year of fee payment: 13

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080920

Year of fee payment: 13

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090920

Year of fee payment: 14

LAPS Cancellation because of no payment of annual fees