JPH0812617B2 - 命令の並行処理を可能にするチェックポイント同期化 - Google Patents
命令の並行処理を可能にするチェックポイント同期化Info
- Publication number
- JPH0812617B2 JPH0812617B2 JP4202291A JP20229192A JPH0812617B2 JP H0812617 B2 JPH0812617 B2 JP H0812617B2 JP 4202291 A JP4202291 A JP 4202291A JP 20229192 A JP20229192 A JP 20229192A JP H0812617 B2 JPH0812617 B2 JP H0812617B2
- Authority
- JP
- Japan
- Prior art keywords
- checkpoint
- instruction
- function instruction
- signal
- checkpoint function
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operations
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1405—Saving, restoring, recovering or retrying at machine instruction level
- G06F11/1407—Checkpointing the instruction stream
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Retry When Errors Occur (AREA)
- Advance Control (AREA)
Description
【0001】
【産業上の利用分野】本発明は、複数の命令を並行処理
方式ないしパイプライン方式で実行することができ、且
つその実行に伴うエラーを検出することができるように
してある、データ処理システムに関する。更に詳しく
は、本発明は、エラーの影響を、実行中の命令ストリー
ムの特定の部分だけに限局することを必要とする種類
の、データ処理システムに関する。
方式ないしパイプライン方式で実行することができ、且
つその実行に伴うエラーを検出することができるように
してある、データ処理システムに関する。更に詳しく
は、本発明は、エラーの影響を、実行中の命令ストリー
ムの特定の部分だけに限局することを必要とする種類
の、データ処理システムに関する。
【0002】
【従来の技術】データ処理システムは、その処理速度が
高速化してきており、またその構造も複雑化してきてい
ることから、複数の命令を並行して実行する際の、並行
処理の程度も高度なものになってきている。その結果、
データ処理システムにランダム・エラーが発生したとき
に、そのランダム・エラーの影響がただ1つの命令にし
か及ばないようにする、エラーの影響の限局が、次第に
困難になってきており、実際に、1つのエラーの影響
が、幾つかの命令の実行に及んでしまうおそれが生じて
いる。当業界においては、その対処法の1つとして、あ
るエラーが発生したならば、そのエラーの影響を受けた
可能性のある全ての命令を白紙に戻してそれら命令を再
度実行し直すようにする機構を、コンピュータ・システ
ムに装備し、それによって、そのエラーの影響がプログ
ラムの実行の結果にまでは及ばないようにするという対
処法が公知となっている。この種の機構は例えば、米国
特許第4912707号(Kogge et al.)や、米国特許
第4044337号(Hicks etal.)に記載されている
(これらの米国特許は、いずれもIBM社に譲渡されて
いる)。
高速化してきており、またその構造も複雑化してきてい
ることから、複数の命令を並行して実行する際の、並行
処理の程度も高度なものになってきている。その結果、
データ処理システムにランダム・エラーが発生したとき
に、そのランダム・エラーの影響がただ1つの命令にし
か及ばないようにする、エラーの影響の限局が、次第に
困難になってきており、実際に、1つのエラーの影響
が、幾つかの命令の実行に及んでしまうおそれが生じて
いる。当業界においては、その対処法の1つとして、あ
るエラーが発生したならば、そのエラーの影響を受けた
可能性のある全ての命令を白紙に戻してそれら命令を再
度実行し直すようにする機構を、コンピュータ・システ
ムに装備し、それによって、そのエラーの影響がプログ
ラムの実行の結果にまでは及ばないようにするという対
処法が公知となっている。この種の機構は例えば、米国
特許第4912707号(Kogge et al.)や、米国特許
第4044337号(Hicks etal.)に記載されている
(これらの米国特許は、いずれもIBM社に譲渡されて
いる)。
【0003】しかしながら、この種の再実行機構は、全
てのエラーの影響を払拭し得るものではない。例えば、
ある命令が、命令の再実行が可能なポイント(時点)を
通過した後に、エラーが発生したならば、それによって
ある特別な問題が生じることになる。これ以外にも、こ
の再実行方式によるのでは、プログラムからエラーの影
響を完全には払拭することができないような様々な状況
があり、そのような場合、これまでは一般的に、「機械
チェック」割込みにより、システムがプログラムに対し
てエラーに関する警告を発するという方式が取られてい
た。
てのエラーの影響を払拭し得るものではない。例えば、
ある命令が、命令の再実行が可能なポイント(時点)を
通過した後に、エラーが発生したならば、それによって
ある特別な問題が生じることになる。これ以外にも、こ
の再実行方式によるのでは、プログラムからエラーの影
響を完全には払拭することができないような様々な状況
があり、そのような場合、これまでは一般的に、「機械
チェック」割込みにより、システムがプログラムに対し
てエラーに関する警告を発するという方式が取られてい
た。
【0004】プログラムは、機械チェックをかけられた
ときには、いかなる修正動作を実行すべきかを判断しな
ければならない。その判断のために、なによりも必要な
ものは、そのとき発生しているかも知れないアーキテク
チャに規定されている諸々の機構や命令ストリームに関
する損傷の程度を示す、データ処理システムから提供さ
れる情報である。IBM社の「エンタープライズ・シス
テム体系/390(ESA/390)」というアーキテ
クチャでは、この情報を、記憶装置の中に用意してあ
る、機械チェック割込みコード(Machine Check Interr
uption Code:MCIC)を使用して、伝達するようにし
ている。このESA/390のアーキテクチャについて
は、ニューヨーク州、アーモンクに所在のIBM社が頒
布している「エンタープライズ・システム体系/390
−動作の基本規則(Enterprise Systems Architecture/
390 - Principles of Operation (document SA22-7201-
0)」という文献の中に、更に詳細に記載されており、同
文献の内容は、この言及をもってその全体を本開示に包
含するものとする。
ときには、いかなる修正動作を実行すべきかを判断しな
ければならない。その判断のために、なによりも必要な
ものは、そのとき発生しているかも知れないアーキテク
チャに規定されている諸々の機構や命令ストリームに関
する損傷の程度を示す、データ処理システムから提供さ
れる情報である。IBM社の「エンタープライズ・シス
テム体系/390(ESA/390)」というアーキテ
クチャでは、この情報を、記憶装置の中に用意してあ
る、機械チェック割込みコード(Machine Check Interr
uption Code:MCIC)を使用して、伝達するようにし
ている。このESA/390のアーキテクチャについて
は、ニューヨーク州、アーモンクに所在のIBM社が頒
布している「エンタープライズ・システム体系/390
−動作の基本規則(Enterprise Systems Architecture/
390 - Principles of Operation (document SA22-7201-
0)」という文献の中に、更に詳細に記載されており、同
文献の内容は、この言及をもってその全体を本開示に包
含するものとする。
【0005】この機械チェック割込みコード(MCI
C)の中の幾つかのビットは、アーキテクチャに規定さ
れている様々なレジスタないし機構の有効性を表わして
おり、その他のビットは、発生したエラーの重大性の程
度を表わしている。機械チェック割込みの、重大性につ
いての種類のうちでも、本発明に特に関係があるのは、
最大級に深刻なものであることを表わす種類と、それに
次いで深刻であることを表わす種類との2つであり、そ
れらは、 ・命令処理損傷(Instruction-Processing Damage:IP
D) ・システム損傷(System Damage:SD) という2種類であり、最大級に深刻なのは、下のSDの
方である。
C)の中の幾つかのビットは、アーキテクチャに規定さ
れている様々なレジスタないし機構の有効性を表わして
おり、その他のビットは、発生したエラーの重大性の程
度を表わしている。機械チェック割込みの、重大性につ
いての種類のうちでも、本発明に特に関係があるのは、
最大級に深刻なものであることを表わす種類と、それに
次いで深刻であることを表わす種類との2つであり、そ
れらは、 ・命令処理損傷(Instruction-Processing Damage:IP
D) ・システム損傷(System Damage:SD) という2種類であり、最大級に深刻なのは、下のSDの
方である。
【0006】これらのIPDとSDという2種類の機械
チェックは、いずれも、その機械チェックと共に報告さ
れる命令アドレスが示しているところの、実行を完了し
た命令の結果が、エラーの影響を受けている可能性があ
ることを表わしている。換言すれば、IPD機械チェッ
クとSD機械チェックとはいずれも、機械状態(記憶装
置やレジスタ等をはじめとする、アーキテクチャによっ
て規定されている諸々の機構の状態)が破壊されている
可能性があり、従ってその状態が、実行を完了した命令
との間の整合性を欠いているおそれがあることを、示す
ものである。更に、状況次第では、機械エラーが発生し
たときに、処理を続行することが不可能であったり、或
いは処理の続行が、望ましくないこともあり得る。その
ような場合には、処理装置がチェック停止状態におかれ
ることになるため、機械チェック割込みはかからなくな
る。
チェックは、いずれも、その機械チェックと共に報告さ
れる命令アドレスが示しているところの、実行を完了し
た命令の結果が、エラーの影響を受けている可能性があ
ることを表わしている。換言すれば、IPD機械チェッ
クとSD機械チェックとはいずれも、機械状態(記憶装
置やレジスタ等をはじめとする、アーキテクチャによっ
て規定されている諸々の機構の状態)が破壊されている
可能性があり、従ってその状態が、実行を完了した命令
との間の整合性を欠いているおそれがあることを、示す
ものである。更に、状況次第では、機械エラーが発生し
たときに、処理を続行することが不可能であったり、或
いは処理の続行が、望ましくないこともあり得る。その
ような場合には、処理装置がチェック停止状態におかれ
ることになるため、機械チェック割込みはかからなくな
る。
【0007】機械チェックの種類としての、IPDとS
Dとの間の重要な相違は、命令ストリーム上の、障害を
発生しているおそれのある範囲の広さにある。即ち、I
PD機械チェックでは、障害の影響が及んでいるおそれ
のある範囲が、命令ストリーム上の特定の時点において
実行されていた命令だけに限局されているのに対し、S
D機械チェックの原因となったエラーは、そのエラーの
影響が及んでいるおそれのある範囲が、命令ストリーム
上の特定の期間に限局されていない。従ってプログラム
は、IPD機械チェック割込みを受け取ったときには、
命令ストリームのうちの現在実行中のセグメント以外
は、そのエラーの影響を受けていないと判断することが
できるため、特定の修正動作を実行することができる。
これに対して、受け取った機械チェック割込みがSD機
械チェック割込みであったならば、プログラムは、命令
ストリームのうちのある特定の部分やアーキテクチャに
規定されている状態のうちのある特定の部分を適正であ
ると見なしてそれらの部分に基づいて修正動作を行なう
ということは、もはや不可能であり、そのため、より大
がかりな修正動作が必要とされ、場合によっては、プロ
グラム全体が停止する(即ちシステムが「クラッシュ」
する)という結果に至ることも少なくない。従って、で
きるだけ多くの場合にエラーの影響を小さな範囲内に限
局できるようにしておくことが望ましく、そうしておけ
ば、システム(ハードウェアとソフトウェアの両方)の
全体としての、ユーザに取っての使用可能度を、可及的
に向上させることができる。
Dとの間の重要な相違は、命令ストリーム上の、障害を
発生しているおそれのある範囲の広さにある。即ち、I
PD機械チェックでは、障害の影響が及んでいるおそれ
のある範囲が、命令ストリーム上の特定の時点において
実行されていた命令だけに限局されているのに対し、S
D機械チェックの原因となったエラーは、そのエラーの
影響が及んでいるおそれのある範囲が、命令ストリーム
上の特定の期間に限局されていない。従ってプログラム
は、IPD機械チェック割込みを受け取ったときには、
命令ストリームのうちの現在実行中のセグメント以外
は、そのエラーの影響を受けていないと判断することが
できるため、特定の修正動作を実行することができる。
これに対して、受け取った機械チェック割込みがSD機
械チェック割込みであったならば、プログラムは、命令
ストリームのうちのある特定の部分やアーキテクチャに
規定されている状態のうちのある特定の部分を適正であ
ると見なしてそれらの部分に基づいて修正動作を行なう
ということは、もはや不可能であり、そのため、より大
がかりな修正動作が必要とされ、場合によっては、プロ
グラム全体が停止する(即ちシステムが「クラッシュ」
する)という結果に至ることも少なくない。従って、で
きるだけ多くの場合にエラーの影響を小さな範囲内に限
局できるようにしておくことが望ましく、そうしておけ
ば、システム(ハードウェアとソフトウェアの両方)の
全体としての、ユーザに取っての使用可能度を、可及的
に向上させることができる。
【0008】ESA/390のアーキテクチャでは、I
PD機械チェックに必要な限局の程度を設定することが
でき、その設定の方法は、命令ストリーム上の然るべき
ポイントにおいて、チェックポイント同期化動作が行な
われるように定めるというものである。チェックポイン
ト同期化動作というのは、基本的には、命令ストリーム
上のある特定の時点、即ちポイント(以下、簡単に「チ
ェックポイント」と呼ぶことにする)を定めて、そのチ
ェックポイント以前からの命令に関する全ての動作を、
そのチェックポイント以後の命令の実行を開始する前に
確実に完了させるようにするというものである。ただ
し、ここで、動作を「完了」させるということの意味
は、その動作によってIPD機械チェックが発生するこ
とが、もはやあり得ない状態にするということである。
また、処理装置があるチェックポイントを通過してしま
ったならば、そのチェックポイント以前の動作にエラー
が付随していた場合には、そのエラーが報告されるとす
ればSD機械チェックとして報告されざるを得ず、ま
た、そのエラーが報告されるのではなく、そのエラーの
ために処理装置がチェック停止状態になることもある。
PD機械チェックに必要な限局の程度を設定することが
でき、その設定の方法は、命令ストリーム上の然るべき
ポイントにおいて、チェックポイント同期化動作が行な
われるように定めるというものである。チェックポイン
ト同期化動作というのは、基本的には、命令ストリーム
上のある特定の時点、即ちポイント(以下、簡単に「チ
ェックポイント」と呼ぶことにする)を定めて、そのチ
ェックポイント以前からの命令に関する全ての動作を、
そのチェックポイント以後の命令の実行を開始する前に
確実に完了させるようにするというものである。ただ
し、ここで、動作を「完了」させるということの意味
は、その動作によってIPD機械チェックが発生するこ
とが、もはやあり得ない状態にするということである。
また、処理装置があるチェックポイントを通過してしま
ったならば、そのチェックポイント以前の動作にエラー
が付随していた場合には、そのエラーが報告されるとす
ればSD機械チェックとして報告されざるを得ず、ま
た、そのエラーが報告されるのではなく、そのエラーの
ために処理装置がチェック停止状態になることもある。
【0009】以上のチェックポイントは、一般的には、
ある種の命令の直前及び直後と、全ての割込みの直前及
び直後とに設定される。尚、ESA/390のアーキテ
クチャでは、場合により、ある特定の命令については、
その直前または直後のいずれか一方だけにしかチェック
ポイント同期化を要求しないこともあるが、しかしなが
ら、本発明の好適実施例においては、いかなる場合に
も、該当する命令の直前と直後の両方でチェックポイン
ト同期化を実行するようにしており、以下の説明は全
て、この好適実施例の実施態様を採用しているものとし
て説明することにする。
ある種の命令の直前及び直後と、全ての割込みの直前及
び直後とに設定される。尚、ESA/390のアーキテ
クチャでは、場合により、ある特定の命令については、
その直前または直後のいずれか一方だけにしかチェック
ポイント同期化を要求しないこともあるが、しかしなが
ら、本発明の好適実施例においては、いかなる場合に
も、該当する命令の直前と直後の両方でチェックポイン
ト同期化を実行するようにしており、以下の説明は全
て、この好適実施例の実施態様を採用しているものとし
て説明することにする。
【0010】以上に説明したチェックポイントの更なる
特質として、ESA/390のアーキテクチャでは、全
てのチェックポイントが、チェックポイントとして規定
されていると同時にシリアル化ポイントとしても規定さ
れているということがある。シリアル化のアーキテクチ
ャは、複数の処理装置が共用している資源に関して行な
われるそれら複数の処理装置の間の対話に関係したもの
であり、従って、チェックポイント同期化のアーキテク
チャとは、その目的において異なっている。しかしなが
ら、それらの動作を要求するポイントが共通化されてい
るために、当然のことながら、アーキテクチャの実現形
態に共通性が存在している。従来のESA/390のア
ーキテクチャ(並びにそれに先行するESA/370の
アーキテクチャ)の実現形態では、シリアル化を実行す
るためには、命令の並行処理を完全に中止することが必
要とされていた。そのため、あるシリアル化ポイントよ
り以前からの処理をオペランド格納動作も含めて全て完
了してしまうまでは、そのシリアル化ポイント以後の命
令を処理することは許されていなかった。しかもチェッ
クポイントがシリアル化ポイントのうちの一部分であっ
たため、これは全てのチェックポイントについても当て
はまり、そのため、命令の処理に付随して発生したエラ
ーの影響を2つのチェックポイントの間の1つの期間の
中に限局することは、非常に簡単なことであった。とこ
ろが、本願の基礎米国出願の同時係属出願である、19
91年1月16日付で出願され、後、IBM社に譲渡さ
れた、米国特許出願第07/641987号(発明の名
称:並行シリアル化方式(Overlapped Serializatio
n)、出願人:Comfort et al.)には、シリアル化ポイ
ントの付近において、アーキテクチャの定義との間で整
合性を保って命令の並行処理を行なえるようにした機構
が記載されている。シリアル化の実現態様をこのように
した場合には、たとえ、全てのチェックポイントが同時
にシリアル化ポイントでもあるようにしても、そのこと
だけでは、確実に、チェックポイントの付近において並
行処理される命令が存在しなくなるようにすることはで
きない。従ってその場合には、チェックポイント同期化
にエラーの限局の機能を持たせるための別のなんらかの
機構が必要である。
特質として、ESA/390のアーキテクチャでは、全
てのチェックポイントが、チェックポイントとして規定
されていると同時にシリアル化ポイントとしても規定さ
れているということがある。シリアル化のアーキテクチ
ャは、複数の処理装置が共用している資源に関して行な
われるそれら複数の処理装置の間の対話に関係したもの
であり、従って、チェックポイント同期化のアーキテク
チャとは、その目的において異なっている。しかしなが
ら、それらの動作を要求するポイントが共通化されてい
るために、当然のことながら、アーキテクチャの実現形
態に共通性が存在している。従来のESA/390のア
ーキテクチャ(並びにそれに先行するESA/370の
アーキテクチャ)の実現形態では、シリアル化を実行す
るためには、命令の並行処理を完全に中止することが必
要とされていた。そのため、あるシリアル化ポイントよ
り以前からの処理をオペランド格納動作も含めて全て完
了してしまうまでは、そのシリアル化ポイント以後の命
令を処理することは許されていなかった。しかもチェッ
クポイントがシリアル化ポイントのうちの一部分であっ
たため、これは全てのチェックポイントについても当て
はまり、そのため、命令の処理に付随して発生したエラ
ーの影響を2つのチェックポイントの間の1つの期間の
中に限局することは、非常に簡単なことであった。とこ
ろが、本願の基礎米国出願の同時係属出願である、19
91年1月16日付で出願され、後、IBM社に譲渡さ
れた、米国特許出願第07/641987号(発明の名
称:並行シリアル化方式(Overlapped Serializatio
n)、出願人:Comfort et al.)には、シリアル化ポイ
ントの付近において、アーキテクチャの定義との間で整
合性を保って命令の並行処理を行なえるようにした機構
が記載されている。シリアル化の実現態様をこのように
した場合には、たとえ、全てのチェックポイントが同時
にシリアル化ポイントでもあるようにしても、そのこと
だけでは、確実に、チェックポイントの付近において並
行処理される命令が存在しなくなるようにすることはで
きない。従ってその場合には、チェックポイント同期化
にエラーの限局の機能を持たせるための別のなんらかの
機構が必要である。
【0011】ESA/390のアーキテクチャに適合す
るようにしたシステムの多くは、その処理装置の実現形
態が、エラーの検出並びに限局が可能な形態となってお
り、しかも殆どの場合、それを命令方式で行なうように
している。即ち、命令の処理に際してエラーが発生した
ことが検出されたならば、大部分のエラーでは、そのエ
ラーの影響を受けているおそれのある命令を完了させな
いようにし、そして、アーキテクチャに規定されている
様々な機構に対する変更を管理して、もし完了しなかっ
た命令のうちに何らかの変更を生じさせる命令が含まれ
ていたならば、それら様々な機構に対する夫々の変更を
元に戻すようにしている。従って、この方法では、ある
エラーが検出されたときには、その時点で完了していな
い全ての命令の完了を阻止し、また、それら命令のため
に、アーキテクチャに規定されている様々な機構に対し
て加えられるはずだった変更の全てを廃棄し、そして、
それら命令を再度取り出して、その検出されたエラーの
影響を受けていない状態から、それら命令の処理をやり
直すようにすれば良い。この方式では、命令の完了以前
に発生したエラーに関する限り、その命令がいかなる種
類のものであっても(即ち、アーキテクチャによって要
求された命令に限られず、あらゆる種類の命令が)、そ
のエラーに対してチェックポイントとして機能すること
になる。
るようにしたシステムの多くは、その処理装置の実現形
態が、エラーの検出並びに限局が可能な形態となってお
り、しかも殆どの場合、それを命令方式で行なうように
している。即ち、命令の処理に際してエラーが発生した
ことが検出されたならば、大部分のエラーでは、そのエ
ラーの影響を受けているおそれのある命令を完了させな
いようにし、そして、アーキテクチャに規定されている
様々な機構に対する変更を管理して、もし完了しなかっ
た命令のうちに何らかの変更を生じさせる命令が含まれ
ていたならば、それら様々な機構に対する夫々の変更を
元に戻すようにしている。従って、この方法では、ある
エラーが検出されたときには、その時点で完了していな
い全ての命令の完了を阻止し、また、それら命令のため
に、アーキテクチャに規定されている様々な機構に対し
て加えられるはずだった変更の全てを廃棄し、そして、
それら命令を再度取り出して、その検出されたエラーの
影響を受けていない状態から、それら命令の処理をやり
直すようにすれば良い。この方式では、命令の完了以前
に発生したエラーに関する限り、その命令がいかなる種
類のものであっても(即ち、アーキテクチャによって要
求された命令に限られず、あらゆる種類の命令が)、そ
のエラーに対してチェックポイントとして機能すること
になる。
【0012】しかしながら、以上の方式の実現形態とし
た場合であっても、ある特定の種類の命令の処理に付随
して発生するエラーの中には、その命令の完了を阻止す
ることができないものがある。具体的には、命令を完了
させるための処理それ自体の実行中に発生するエラー
や、その命令によって発生されたオペランドを格納する
動作の処理中に発生するエラーが、この種のエラーに該
当する。命令を完了させるための処理それ自体の実行中
のエラーは、一般的には、回復不可能な(即ち、機械チ
ェック割込みが必要な)ものであるが、ただし、そのエ
ラーの発生ポイント(発生時点)の直後のチェックポイ
ントを過ぎてからは、いかなる命令も完了していないと
いう場合に限って、現在チェックポイント期間にエラー
を限局するというアーキテクチャの要求を満たすことが
でき、従って、IPD機械チェックをかけるだけで済ま
せることができる。即ち、その種のエラーが、そのよう
な状況において検出されたときには、後続の命令の完了
を阻止することによって、IPD機械チェックだけで済
ませることができるのである。
た場合であっても、ある特定の種類の命令の処理に付随
して発生するエラーの中には、その命令の完了を阻止す
ることができないものがある。具体的には、命令を完了
させるための処理それ自体の実行中に発生するエラー
や、その命令によって発生されたオペランドを格納する
動作の処理中に発生するエラーが、この種のエラーに該
当する。命令を完了させるための処理それ自体の実行中
のエラーは、一般的には、回復不可能な(即ち、機械チ
ェック割込みが必要な)ものであるが、ただし、そのエ
ラーの発生ポイント(発生時点)の直後のチェックポイ
ントを過ぎてからは、いかなる命令も完了していないと
いう場合に限って、現在チェックポイント期間にエラー
を限局するというアーキテクチャの要求を満たすことが
でき、従って、IPD機械チェックをかけるだけで済ま
せることができる。即ち、その種のエラーが、そのよう
な状況において検出されたときには、後続の命令の完了
を阻止することによって、IPD機械チェックだけで済
ませることができるのである。
【0013】
【発明が解決しようとする課題】ところが、オペランド
格納動作の実行中に発生するエラーは、チェックポイン
ト同期化に関する問題を、更に困難なものにしている。
その原因は、オペランド格納動作は、その格納命令が完
了するまではバッファの中に留められており(これは、
その命令が最終的に完了不能になった場合に、その格納
動作を放棄できるようにするためである)、そして、あ
る格納命令に対応した格納動作は、その格納命令が完了
処理された後にはじめて、記憶キャッシュ等をはじめと
する記憶装置アレイの中への書き込みとして実行される
ようになっているからである。従って、ある命令の完了
と、その命令に関するオペランド格納動作の実行との間
にはかなりの長さの時間遅れが存在することがある。そ
こで、この時間遅れの間に、後続の命令を完了させられ
るようにすることが望まれ、そうすれば、高性能な処理
装置に必要とされる、命令の並行処理の程度を高度に維
持するということが可能になる。しかもそれと同時に、
あるチェックポイントの以前からの命令に関する格納動
作がまだ処理中である間は、処理装置がそのチェックポ
イントを超えて先へ進むことのないようにしておくこと
が望まれる。なぜならば、もしそのようなことが行なわ
れたならば、その格納動作の実行中にエラーが発生した
場合に、そのエラーを確実に1つのチェックポイント期
間の中に限局することができなくなり、そのエラーのた
めに、SD機械チェック、ないしは、処理装置のチェッ
ク停止が必要となってしまうからである。ここに説明す
る本発明の機構は、以上のような処理装置において、オ
ペランド格納動作の際に発生するエラーを限局すること
ができるようにするという要求に応え、しかもそれと同
時に、命令の並行処理の程度を高度に維持することを可
能にするものである。
格納動作の実行中に発生するエラーは、チェックポイン
ト同期化に関する問題を、更に困難なものにしている。
その原因は、オペランド格納動作は、その格納命令が完
了するまではバッファの中に留められており(これは、
その命令が最終的に完了不能になった場合に、その格納
動作を放棄できるようにするためである)、そして、あ
る格納命令に対応した格納動作は、その格納命令が完了
処理された後にはじめて、記憶キャッシュ等をはじめと
する記憶装置アレイの中への書き込みとして実行される
ようになっているからである。従って、ある命令の完了
と、その命令に関するオペランド格納動作の実行との間
にはかなりの長さの時間遅れが存在することがある。そ
こで、この時間遅れの間に、後続の命令を完了させられ
るようにすることが望まれ、そうすれば、高性能な処理
装置に必要とされる、命令の並行処理の程度を高度に維
持するということが可能になる。しかもそれと同時に、
あるチェックポイントの以前からの命令に関する格納動
作がまだ処理中である間は、処理装置がそのチェックポ
イントを超えて先へ進むことのないようにしておくこと
が望まれる。なぜならば、もしそのようなことが行なわ
れたならば、その格納動作の実行中にエラーが発生した
場合に、そのエラーを確実に1つのチェックポイント期
間の中に限局することができなくなり、そのエラーのた
めに、SD機械チェック、ないしは、処理装置のチェッ
ク停止が必要となってしまうからである。ここに説明す
る本発明の機構は、以上のような処理装置において、オ
ペランド格納動作の際に発生するエラーを限局すること
ができるようにするという要求に応え、しかもそれと同
時に、命令の並行処理の程度を高度に維持することを可
能にするものである。
【0014】これまでの様々なチェックポイント同期化
のための機構はいずれも、システムの処理性能と、シス
テムの信頼性及び使用可能度との間の、妥協を計ったも
のとなっている。更に具体的に説明すると、先ず、オペ
ランド格納動作の処理の中のどの時点(ポイント)をも
って、その格納動作が「完了」したと見なすのかという
問題があり、即ち、このポイントは様々に設定すること
ができる。もし、そのポイントを、格納動作の初期の時
点に選定した場合には、早くの時点でチェックポイント
が「クリア」されたと見なされることになり、それによ
って多くの場合処理装置の処理性能が向上するものの、
SD機械チェックを必要とするエラーの発生率もそれに
よって増大する。また、これとは逆に、格納動作の処理
の中の、より後の方にそのポイントを選定した場合に
は、チェックポイントをクリアするまでにより長い時間
がかかることになり、それに伴って処理性能が犠牲にさ
れるが、ただし、システムの信頼性及び使用可能度に悪
影響を及ぼすエラーの発生の可能性は低下する。このよ
うな妥協は、本発明では、チェックポイント同期化の処
理の、全体としての性能が犠牲になることが少なくなる
ようにするということを除けば、考慮する必要はなくな
っている。
のための機構はいずれも、システムの処理性能と、シス
テムの信頼性及び使用可能度との間の、妥協を計ったも
のとなっている。更に具体的に説明すると、先ず、オペ
ランド格納動作の処理の中のどの時点(ポイント)をも
って、その格納動作が「完了」したと見なすのかという
問題があり、即ち、このポイントは様々に設定すること
ができる。もし、そのポイントを、格納動作の初期の時
点に選定した場合には、早くの時点でチェックポイント
が「クリア」されたと見なされることになり、それによ
って多くの場合処理装置の処理性能が向上するものの、
SD機械チェックを必要とするエラーの発生率もそれに
よって増大する。また、これとは逆に、格納動作の処理
の中の、より後の方にそのポイントを選定した場合に
は、チェックポイントをクリアするまでにより長い時間
がかかることになり、それに伴って処理性能が犠牲にさ
れるが、ただし、システムの信頼性及び使用可能度に悪
影響を及ぼすエラーの発生の可能性は低下する。このよ
うな妥協は、本発明では、チェックポイント同期化の処
理の、全体としての性能が犠牲になることが少なくなる
ようにするということを除けば、考慮する必要はなくな
っている。
【0015】
【課題を解決するための手段】本発明は、命令の完了処
理を利用して、命令完了後処理であるオペランド格納動
作において発生するエラーをも含めた様々なエラーを、
チェックポイント間の1つの期間に限局すると共に、チ
ェックポイント機能命令の処理とチェックポイント命令
以外の命令の処理とを、並行して行なえるようにするも
のである。チェックポイント機能命令の直前と直後とに
各々チェックポイント(直前のチェックポイントを第1
チェックポイント、直後のチェックポイントを第2チェ
ックポイントとする)を設定し、第1チェックポイント
より以前からの全ての処理(オペランド格納動作を含
む)を終了させなければならない刻限を、そのチェック
ポイント機能命令の完了が許可されるまで(第2チェッ
クポイントまで)とすることにより、第1チェックポイ
ントを超えて先へ進めるようにしている。しかもそれと
同時に、第1チェックポイントより後の命令も、その命
令の完了の直前まで処理した状態で、その第2チェック
ポイントがクリアされるのを待てば良いようにしてい
る。従って、先行するチェックポイントに関して、命令
が待機しなければならない刻限(ポイント)を、その命
令の処理の最後の段階(即ち、その命令を完了させる段
階)まで先送りすることが可能となっており、これによ
って、その待機の刻限を命令の取出しの時点、解読の時
点、ないしは実行時としている従来の実現形態と比較し
て、顕著な処理性能上の利点が得られるものとしてい
る。
理を利用して、命令完了後処理であるオペランド格納動
作において発生するエラーをも含めた様々なエラーを、
チェックポイント間の1つの期間に限局すると共に、チ
ェックポイント機能命令の処理とチェックポイント命令
以外の命令の処理とを、並行して行なえるようにするも
のである。チェックポイント機能命令の直前と直後とに
各々チェックポイント(直前のチェックポイントを第1
チェックポイント、直後のチェックポイントを第2チェ
ックポイントとする)を設定し、第1チェックポイント
より以前からの全ての処理(オペランド格納動作を含
む)を終了させなければならない刻限を、そのチェック
ポイント機能命令の完了が許可されるまで(第2チェッ
クポイントまで)とすることにより、第1チェックポイ
ントを超えて先へ進めるようにしている。しかもそれと
同時に、第1チェックポイントより後の命令も、その命
令の完了の直前まで処理した状態で、その第2チェック
ポイントがクリアされるのを待てば良いようにしてい
る。従って、先行するチェックポイントに関して、命令
が待機しなければならない刻限(ポイント)を、その命
令の処理の最後の段階(即ち、その命令を完了させる段
階)まで先送りすることが可能となっており、これによ
って、その待機の刻限を命令の取出しの時点、解読の時
点、ないしは実行時としている従来の実現形態と比較し
て、顕著な処理性能上の利点が得られるものとしてい
る。
【0016】
【実施例】これより図1〜図4を参照しつつ本発明を説
明して行く。図1は中央電子複合体(Central Electron
ic Complex:CEC)のブロック図であり、このCEC
は3つの中央処理装置(Central Processor:CP)10
2A〜102Cを含んでいる。それらCPは、その各々
が、個々に、一般的な構成の第1レベルの高速バッファ
(L1)104A〜104Cを備えている。これらL1
は、第2レベルの高速バッファ(L2)に接続されてお
り、このL2は、全ての中央処理装置によって共用され
ている。また、このL2は、システム制御部(System C
ontrol Element:SCE)を介して中央記憶装置108
に接続されており、この中央記憶装置108は、主記憶
装置とも呼ばれるものである。尚、包括的に「記憶」と
いう用語を使用する場合、それは、いずれかのレベルの
高速バッファ(104A〜104C、或いは106)の
中に存在しているデータと、中央記憶装置108それ自
体の中に存在しているデータとの、いずれをも指し示す
ものである。
明して行く。図1は中央電子複合体(Central Electron
ic Complex:CEC)のブロック図であり、このCEC
は3つの中央処理装置(Central Processor:CP)10
2A〜102Cを含んでいる。それらCPは、その各々
が、個々に、一般的な構成の第1レベルの高速バッファ
(L1)104A〜104Cを備えている。これらL1
は、第2レベルの高速バッファ(L2)に接続されてお
り、このL2は、全ての中央処理装置によって共用され
ている。また、このL2は、システム制御部(System C
ontrol Element:SCE)を介して中央記憶装置108
に接続されており、この中央記憶装置108は、主記憶
装置とも呼ばれるものである。尚、包括的に「記憶」と
いう用語を使用する場合、それは、いずれかのレベルの
高速バッファ(104A〜104C、或いは106)の
中に存在しているデータと、中央記憶装置108それ自
体の中に存在しているデータとの、いずれをも指し示す
ものである。
【0017】図1のCECは更に、相互接続通信部(In
terconnect Communication Element:ICE)110A
を含んでおり、この相互接続通信部110Aは、システ
ム制御部118と、拡張記憶装置(Expanded Storage:
ES)112と、チャネル・サブシステム110Bとの
間の、データ転送並びに通信を制御している。相互接続
通信部110Aとチャネル・サブシステム110Bと
は、それらを合せてひとまとめにして、I/Oサブシス
テムと呼ばれることもある。システム操作やシステム支
援機能(例えば電源のオン・オフ操作やシステムの構成
(コンフィギュレーション)等)は、処理装置制御部
(Processor Controller Element:PCE)116と呼
ばれる、支援処理装置によって制御されている。この処
理装置制御部116は更に、エラーからの回復を行なう
際に、様々なシステム要素を援助をするためにも使用さ
れるものである。機械チェック・エラーの取扱い、チェ
ックポイント同期化、並びにシステムの一般的動作は、
ESA/390のアーキテクチャに沿ったものであり、
これらについては、先に挙げた「エンタープライズ・シ
ステム体系/390−動作の基本規則」の中に更に詳細
に説明されている。
terconnect Communication Element:ICE)110A
を含んでおり、この相互接続通信部110Aは、システ
ム制御部118と、拡張記憶装置(Expanded Storage:
ES)112と、チャネル・サブシステム110Bとの
間の、データ転送並びに通信を制御している。相互接続
通信部110Aとチャネル・サブシステム110Bと
は、それらを合せてひとまとめにして、I/Oサブシス
テムと呼ばれることもある。システム操作やシステム支
援機能(例えば電源のオン・オフ操作やシステムの構成
(コンフィギュレーション)等)は、処理装置制御部
(Processor Controller Element:PCE)116と呼
ばれる、支援処理装置によって制御されている。この処
理装置制御部116は更に、エラーからの回復を行なう
際に、様々なシステム要素を援助をするためにも使用さ
れるものである。機械チェック・エラーの取扱い、チェ
ックポイント同期化、並びにシステムの一般的動作は、
ESA/390のアーキテクチャに沿ったものであり、
これらについては、先に挙げた「エンタープライズ・シ
ステム体系/390−動作の基本規則」の中に更に詳細
に説明されている。
【0018】図2は、図1のCECの中に備えられてい
る本発明の好適実施例に係る中央処理装置の一具体例の
機能的ブロック図である。この図2の中央処理装置はI
BM社のESA/390のアーキテクチャに従って動作
するように構成したものである。一般的にそうであるよ
うに、各々の中央処理装置は第1レベルの高速バッファ
(L1)を備えており、このL1は、命令キャッシュ2
02とデータ・キャッシュ210とを含んでいるスプリ
ット・キャッシュ形の高速バッファである。命令キャッ
シュ202からは、命令取出し制御ロジック203が、
命令を取り出して命令解読ロジック204へ供給するよ
うにしてある。
る本発明の好適実施例に係る中央処理装置の一具体例の
機能的ブロック図である。この図2の中央処理装置はI
BM社のESA/390のアーキテクチャに従って動作
するように構成したものである。一般的にそうであるよ
うに、各々の中央処理装置は第1レベルの高速バッファ
(L1)を備えており、このL1は、命令キャッシュ2
02とデータ・キャッシュ210とを含んでいるスプリ
ット・キャッシュ形の高速バッファである。命令キャッ
シュ202からは、命令取出し制御ロジック203が、
命令を取り出して命令解読ロジック204へ供給するよ
うにしてある。
【0019】命令解読ロジック204は、実行すべき命
令の種類と、その命令を実行するために必要なデータの
種類(汎用レジスタ内のデータ、浮動小数点レジスタ内
のデータ、記憶装置内のデータ、等々)とを判断した上
で、その命令を、その命令を実行すべき該当する実行部
(浮動小数点処理実行部(FXE)222、分岐処理実
行部(BXE)224、一般処理実行部(GXE)22
6、或いはシステム実行部(SXE)228)や、支援
ロジック(レジスタ管理システム(RMS)206、ア
ドレス計算部208、或いは完了/割込み制御部24
0)へ宛てて転送する。更に、この命令解読ロジック2
04は、制御部204Aを含んでおり、この制御部20
4Aは、中央処理装置に、全ての種類の命令の解読、或
いは、指定した種類の命令の解読を、阻止、即ち一時中
止させる(並びに阻止解除、即ち再開させる)ことがで
きるようにしたものである。
令の種類と、その命令を実行するために必要なデータの
種類(汎用レジスタ内のデータ、浮動小数点レジスタ内
のデータ、記憶装置内のデータ、等々)とを判断した上
で、その命令を、その命令を実行すべき該当する実行部
(浮動小数点処理実行部(FXE)222、分岐処理実
行部(BXE)224、一般処理実行部(GXE)22
6、或いはシステム実行部(SXE)228)や、支援
ロジック(レジスタ管理システム(RMS)206、ア
ドレス計算部208、或いは完了/割込み制御部24
0)へ宛てて転送する。更に、この命令解読ロジック2
04は、制御部204Aを含んでおり、この制御部20
4Aは、中央処理装置に、全ての種類の命令の解読、或
いは、指定した種類の命令の解読を、阻止、即ち一時中
止させる(並びに阻止解除、即ち再開させる)ことがで
きるようにしたものである。
【0020】レジスタ管理システム206は、物理レジ
スタ(浮動小数点レジスタ・アレイ(FPRアレイ)1
21や汎用レジスタ・アレイ(GPRアレイ)216)
を、命令が参照する、その物理レジスタに対応した論理
レジスタに割当てる、レジスタ割当てを制御している。
このレジスタ管理システムの構造並びに動作について
は、米国特許第4901233号に更に詳細に記載され
ている。
スタ(浮動小数点レジスタ・アレイ(FPRアレイ)1
21や汎用レジスタ・アレイ(GPRアレイ)216)
を、命令が参照する、その物理レジスタに対応した論理
レジスタに割当てる、レジスタ割当てを制御している。
このレジスタ管理システムの構造並びに動作について
は、米国特許第4901233号に更に詳細に記載され
ている。
【0021】図2の中央処理装置は、各々を特別の構造
とした複数の実行部を含んでおり、それら実行部は、命
令解読ロジック204から命令を受け取り、データ・キ
ャッシュ210からデータを受け取る。従来のシステム
と同様に、命令取出し制御ロジック203には、一般的
な構造の分岐履歴テーブル(branch history table:B
HT)を付設してあり、この分岐履歴テーブルによっ
て、分岐をする場合に、取るべき進路を推定するように
している。この分岐進路の推定に従って、その進路に沿
った後続の命令を取り出し、その命令を暫定的に実行す
る。分岐処理実行部(BXE)224は、ある分岐が実
際に決定した経路を判断することと、先に行なった推定
が正しかったか否かを判断することとを専ら担当してい
る。浮動小数点処理実行部(FXE)222は、複数の
物理レジスタから成るアレイである浮動小数点レジスタ
・アレイ(FPRアレイ)212に接続されており、浮
動小数点命令の処理を専ら担当している。一般処理実行
部(GXE)226は、複数の物理レジスタから成るア
レイである汎用レジスタ・アレイ(GPRアレイ)21
6に接続されている。この一般処理実行部226は、汎
用レジスタ(GPR)に対して変更を加えることになる
(即ち汎用レジスタを使用する)単純な命令を実行する
と共に、簡単な格納命令のうちの幾つか(例えば「MOVE
IMMEDIATE」命令等)を実行する。
とした複数の実行部を含んでおり、それら実行部は、命
令解読ロジック204から命令を受け取り、データ・キ
ャッシュ210からデータを受け取る。従来のシステム
と同様に、命令取出し制御ロジック203には、一般的
な構造の分岐履歴テーブル(branch history table:B
HT)を付設してあり、この分岐履歴テーブルによっ
て、分岐をする場合に、取るべき進路を推定するように
している。この分岐進路の推定に従って、その進路に沿
った後続の命令を取り出し、その命令を暫定的に実行す
る。分岐処理実行部(BXE)224は、ある分岐が実
際に決定した経路を判断することと、先に行なった推定
が正しかったか否かを判断することとを専ら担当してい
る。浮動小数点処理実行部(FXE)222は、複数の
物理レジスタから成るアレイである浮動小数点レジスタ
・アレイ(FPRアレイ)212に接続されており、浮
動小数点命令の処理を専ら担当している。一般処理実行
部(GXE)226は、複数の物理レジスタから成るア
レイである汎用レジスタ・アレイ(GPRアレイ)21
6に接続されている。この一般処理実行部226は、汎
用レジスタ(GPR)に対して変更を加えることになる
(即ち汎用レジスタを使用する)単純な命令を実行する
と共に、簡単な格納命令のうちの幾つか(例えば「MOVE
IMMEDIATE」命令等)を実行する。
【0022】システム実行部(SXE)228は、マイ
クロコードで駆動するように構成した実行部である。こ
のシステム実行部228のマイクロコードは、全てのチ
ェックポイント機能命令(これについては後に詳述す
る)を装備していると共に、中央処理装置回復用マイク
ロコードも包含している。システム実行部228は、レ
ジスタ集合体218(このレジスタ集合体には、複数の
作業レジスタ218A、複数の制御レジスタ218B、
それに複数のアクセス・レジスタ218Cが含まれてい
る)に接続されている。このシステム実行部228の作
業レジスタ218Cは、中間結果や、記憶装置から取り
出したデータ、それに、システム・データのうちでアク
セス容易な状態で保持しておく必要があるデータ等を記
憶させておくための、一時的な記憶場所とするためのレ
ジスタである。また、システム実行部228は、プログ
ラム・ステータス・ワード(Program Status Word:PS
W)229の、第0番ビット〜第31番ビットに接続さ
れている。このPSWの、第32番ビット〜第63番ビ
ットは、第0番ビット〜第31番ビットとは異なった取
扱いをされるビットであって、即ち、第32番ビット〜
第63番ビットは命令アドレス201を形成しているビ
ットである。このシステム実行部228は、更に、記憶
装置(レジスタ等)どうしの間で実行される種類の命令
である論理命令や10進計算命令、それに、例えば「LO
AD PSW」機能や「START INTERPRETIVE EXECUTION」機能
等の、システム制御機能を実行する。
クロコードで駆動するように構成した実行部である。こ
のシステム実行部228のマイクロコードは、全てのチ
ェックポイント機能命令(これについては後に詳述す
る)を装備していると共に、中央処理装置回復用マイク
ロコードも包含している。システム実行部228は、レ
ジスタ集合体218(このレジスタ集合体には、複数の
作業レジスタ218A、複数の制御レジスタ218B、
それに複数のアクセス・レジスタ218Cが含まれてい
る)に接続されている。このシステム実行部228の作
業レジスタ218Cは、中間結果や、記憶装置から取り
出したデータ、それに、システム・データのうちでアク
セス容易な状態で保持しておく必要があるデータ等を記
憶させておくための、一時的な記憶場所とするためのレ
ジスタである。また、システム実行部228は、プログ
ラム・ステータス・ワード(Program Status Word:PS
W)229の、第0番ビット〜第31番ビットに接続さ
れている。このPSWの、第32番ビット〜第63番ビ
ットは、第0番ビット〜第31番ビットとは異なった取
扱いをされるビットであって、即ち、第32番ビット〜
第63番ビットは命令アドレス201を形成しているビ
ットである。このシステム実行部228は、更に、記憶
装置(レジスタ等)どうしの間で実行される種類の命令
である論理命令や10進計算命令、それに、例えば「LO
AD PSW」機能や「START INTERPRETIVE EXECUTION」機能
等の、システム制御機能を実行する。
【0023】更に加えて、システム実行部228は、回
復制御レジスタ(Recovery ControlRegister:RCR)
227の制御も行なう。回復制御レジスタ227は、回
復用足跡を保持するための機構であり、この回復用足跡
は、処理の実行中にアセンブルされ、システム・エラー
が発生したときに、そのエラーからの回復を行なうため
に使用される。中央処理装置回復用マイクロコードは、
この回復制御レジスタ227に対する、ロード、セッ
ト、及び読出しの動作を行ない、また、中央処理装置エ
ラー回復処理手順を実行するための、マイクロコードで
ある。
復制御レジスタ(Recovery ControlRegister:RCR)
227の制御も行なう。回復制御レジスタ227は、回
復用足跡を保持するための機構であり、この回復用足跡
は、処理の実行中にアセンブルされ、システム・エラー
が発生したときに、そのエラーからの回復を行なうため
に使用される。中央処理装置回復用マイクロコードは、
この回復制御レジスタ227に対する、ロード、セッ
ト、及び読出しの動作を行ない、また、中央処理装置エ
ラー回復処理手順を実行するための、マイクロコードで
ある。
【0024】以上に説明した種々の実行部には、そのう
ちの分岐処理実行部224を除いてその他の全ての実行
部に、夫々1組ずつの格納バッファ(Store Buffer:S
T BFR)232A〜232Cを付設してある。それら
格納バッファは、記憶装置に格納すべき実行結果を保持
しておくためのバッファであり、この実行結果の保持を
いつまで持続するかといえば、それは、その格納動作を
実行した命令の「完了」の処理がなされて、その実行結
果のデータを、高速バッファ210ないしは図1の高速
バッファ106へ転送しても良い状況になるまでであ
る。更に、アドレス計算部(ACE)208、浮動小数
点処理実行部(FXE)222、分岐処理実行部(BX
E)224、一般処理実行部(GXE)226、及びシ
ステム実行部(SXE)の各々には、入力命令キュー
(不図示)も付設してある。
ちの分岐処理実行部224を除いてその他の全ての実行
部に、夫々1組ずつの格納バッファ(Store Buffer:S
T BFR)232A〜232Cを付設してある。それら
格納バッファは、記憶装置に格納すべき実行結果を保持
しておくためのバッファであり、この実行結果の保持を
いつまで持続するかといえば、それは、その格納動作を
実行した命令の「完了」の処理がなされて、その実行結
果のデータを、高速バッファ210ないしは図1の高速
バッファ106へ転送しても良い状況になるまでであ
る。更に、アドレス計算部(ACE)208、浮動小数
点処理実行部(FXE)222、分岐処理実行部(BX
E)224、一般処理実行部(GXE)226、及びシ
ステム実行部(SXE)の各々には、入力命令キュー
(不図示)も付設してある。
【0025】データ・キャッシュ210は、格納動作キ
ュー210Aと、データ・キャッシュ・メモリ・アレイ
210Bと、チェックポイント制御部210Cとを含ん
でいる。格納動作キュー210Aは、格納バッファ23
2A〜232Cの中にバッファされるオペランド格納動
作のための、アドレスと制御情報とを保持しておくため
のキューである。データ・キャッシュ・メモリ・アレイ
210Bは、一般的な構成の、セット動作に関連したキ
ャッシュ・メモリである。また、このデータ・キャッシ
ュ210のチェックポイント制御部210Cは、チェッ
クポイント同期化が完了したときに、それが完了したと
いうことを判断する働きをする。データ・キャッシュ2
10は、図1のCECの、第2レベルの高速バッファ1
06に接続されている。
ュー210Aと、データ・キャッシュ・メモリ・アレイ
210Bと、チェックポイント制御部210Cとを含ん
でいる。格納動作キュー210Aは、格納バッファ23
2A〜232Cの中にバッファされるオペランド格納動
作のための、アドレスと制御情報とを保持しておくため
のキューである。データ・キャッシュ・メモリ・アレイ
210Bは、一般的な構成の、セット動作に関連したキ
ャッシュ・メモリである。また、このデータ・キャッシ
ュ210のチェックポイント制御部210Cは、チェッ
クポイント同期化が完了したときに、それが完了したと
いうことを判断する働きをする。データ・キャッシュ2
10は、図1のCECの、第2レベルの高速バッファ1
06に接続されている。
【0026】完了/割込み制御部240は、命令を「完
了」させる処理と、割込みの取扱いとを制御している。
その制御は、複数の命令の実行が「終了」しているとき
に、それら複数の命令をその論理順序に従って「完了」
させて行くようにし、また、実行中に遭遇した可能性の
あるプログラムの異常の有無や、未決着のまま残存して
いる可能性のある非同期割込みの有無を確認するという
ものである。ある命令を「完了」させる処理を行なった
ときには、その結果、条件コード(COND CODE)
214が更新されることがある。条件コード214が更
新されたならば、分岐処理実行部224は、それを参照
して、先に暫定的に推定した分岐進路を確定する。
了」させる処理と、割込みの取扱いとを制御している。
その制御は、複数の命令の実行が「終了」しているとき
に、それら複数の命令をその論理順序に従って「完了」
させて行くようにし、また、実行中に遭遇した可能性の
あるプログラムの異常の有無や、未決着のまま残存して
いる可能性のある非同期割込みの有無を確認するという
ものである。ある命令を「完了」させる処理を行なった
ときには、その結果、条件コード(COND CODE)
214が更新されることがある。条件コード214が更
新されたならば、分岐処理実行部224は、それを参照
して、先に暫定的に推定した分岐進路を確定する。
【0027】命令アドレス201は、次に完了させるべ
き命令のアドレスであり、また、最後に完了させた命令
の、その完了の結果として得られた命令アドレスである
と言うこともできる。この命令アドレス201は、シス
テム実行部228と、完了/割込み制御部240が発生
する完了報告241と、分岐先アドレスとによって更新
される。
き命令のアドレスであり、また、最後に完了させた命令
の、その完了の結果として得られた命令アドレスである
と言うこともできる。この命令アドレス201は、シス
テム実行部228と、完了/割込み制御部240が発生
する完了報告241と、分岐先アドレスとによって更新
される。
【0028】アドレス計算部(ACE)208は、オペ
ランドのアドレスの計算を行ない、オペランド取出し要
求ないしはオペランド格納要求を発生し、そして、発生
したそれら要求をデータ・キャッシュ210に宛てて送
出する。データ・キャッシュ210は、受け取ったそれ
ら要求を、命令ストリームに指定されている順序で処理
して行く。1つのオペランド格納要求を受け取ったなら
ば、そのオペランド格納動作に関係した、種々のアドレ
スと制御情報とを包含している格納動作キュー210A
の中に、エントリを1つ加えるようにしている。そし
て、あるオペランド格納動作を含んでいる、ある命令が
処理されると、実行部(小数点処理実行部222、一般
処理実行部226、或いは、システム実行部228)か
ら、格納すべき実行結果が発生され、この実行結果は、
その実行部に対応した格納バッファ232A〜232C
の中に記憶される。
ランドのアドレスの計算を行ない、オペランド取出し要
求ないしはオペランド格納要求を発生し、そして、発生
したそれら要求をデータ・キャッシュ210に宛てて送
出する。データ・キャッシュ210は、受け取ったそれ
ら要求を、命令ストリームに指定されている順序で処理
して行く。1つのオペランド格納要求を受け取ったなら
ば、そのオペランド格納動作に関係した、種々のアドレ
スと制御情報とを包含している格納動作キュー210A
の中に、エントリを1つ加えるようにしている。そし
て、あるオペランド格納動作を含んでいる、ある命令が
処理されると、実行部(小数点処理実行部222、一般
処理実行部226、或いは、システム実行部228)か
ら、格納すべき実行結果が発生され、この実行結果は、
その実行部に対応した格納バッファ232A〜232C
の中に記憶される。
【0029】図2に示した中央処理装置は、複数の命令
を幾つかの異なった実行部において互いに同時に、しか
も順不同で処理することができるようにしたものであ
る。ただし、複数の命令を順不同に実行することは可能
であるが、大部分の命令においては、その命令を、完了
/割込み制御部240が「アーキテクチャの規定に従っ
て完了」させた後でなければ、この中央処理装置の外部
のその他のシステム要素が、その命令の実行結果を見る
ことはできないようにしてある。ある命令を「完了」さ
せるのは、その命令の実行が「終了」しており、その命
令にいかなる異常状態も付随していないことが既に確認
されており、しかもその命令が、論理順序に従って次に
完了させるべき命令である場合である(即ち、複数の命
令が順不同に終了しても、それら複数の命令を完了させ
て行くときには、それら複数の命令のプログラムにおけ
る論理順序に従って、それらを完了させて行くようにし
ている)。
を幾つかの異なった実行部において互いに同時に、しか
も順不同で処理することができるようにしたものであ
る。ただし、複数の命令を順不同に実行することは可能
であるが、大部分の命令においては、その命令を、完了
/割込み制御部240が「アーキテクチャの規定に従っ
て完了」させた後でなければ、この中央処理装置の外部
のその他のシステム要素が、その命令の実行結果を見る
ことはできないようにしてある。ある命令を「完了」さ
せるのは、その命令の実行が「終了」しており、その命
令にいかなる異常状態も付随していないことが既に確認
されており、しかもその命令が、論理順序に従って次に
完了させるべき命令である場合である(即ち、複数の命
令が順不同に終了しても、それら複数の命令を完了させ
て行くときには、それら複数の命令のプログラムにおけ
る論理順序に従って、それらを完了させて行くようにし
ている)。
【0030】完了/割込み制御部240が、「完了報
告」241を発生することによって、ある命令を完了さ
せたことを表示したならば、データ・キャッシュ210
は、その完了したばかりの命令に対応した格納動作キュ
ー210Aの中の全てのエントリに、完了したことを示
すマークを付ける。続いて、データ・キャッシュ210
は、格納バッファ232A〜232Cの中から、格納す
べき結果を取り出して、それをデータ・キャッシュ21
0のメモリ・アレイ210Bの中へ書き込む。この格納
すべき結果は、このとき更に、第2レベルの高速バッフ
ァ(L2)106へも転送して、その中に格納する。す
ると、このL2(106)は、データ・キャッシュ21
0へ宛てて、転送されてきた結果の格納動作が「終了」
したことを表わす表示を送出する。本発明の目的を達成
するために、この実施例では、格納すべき結果がこのL
2(106)の中へ転送された時点で、格納動作が「終
了」したものと見なすようにしており、それは、格納す
べき結果がL2の中へ転送されてしまえば、それ以後、
そのオペランド格納動作に関してエラーが発生すること
は、非常にまれなことになるか、或いは、決して起こら
なくなるからである。一方、オペランド格納動作の処理
中の、格納動作が「終了」したものと見なすこの時点
(ポイント)より前にエラーが発生した場合には、その
エラーは現在チェックポイント期間の中に限局されるこ
とになる。また、その処理中のそのポイントを過ぎてか
ら、万一エラーが発生した場合には、そのエラーは、現
在チェックポイント期間の中に限局されないものとな
る。
告」241を発生することによって、ある命令を完了さ
せたことを表示したならば、データ・キャッシュ210
は、その完了したばかりの命令に対応した格納動作キュ
ー210Aの中の全てのエントリに、完了したことを示
すマークを付ける。続いて、データ・キャッシュ210
は、格納バッファ232A〜232Cの中から、格納す
べき結果を取り出して、それをデータ・キャッシュ21
0のメモリ・アレイ210Bの中へ書き込む。この格納
すべき結果は、このとき更に、第2レベルの高速バッフ
ァ(L2)106へも転送して、その中に格納する。す
ると、このL2(106)は、データ・キャッシュ21
0へ宛てて、転送されてきた結果の格納動作が「終了」
したことを表わす表示を送出する。本発明の目的を達成
するために、この実施例では、格納すべき結果がこのL
2(106)の中へ転送された時点で、格納動作が「終
了」したものと見なすようにしており、それは、格納す
べき結果がL2の中へ転送されてしまえば、それ以後、
そのオペランド格納動作に関してエラーが発生すること
は、非常にまれなことになるか、或いは、決して起こら
なくなるからである。一方、オペランド格納動作の処理
中の、格納動作が「終了」したものと見なすこの時点
(ポイント)より前にエラーが発生した場合には、その
エラーは現在チェックポイント期間の中に限局されるこ
とになる。また、その処理中のそのポイントを過ぎてか
ら、万一エラーが発生した場合には、そのエラーは、現
在チェックポイント期間の中に限局されないものとな
る。
【0031】更に、レジスタ管理システム206は、完
了/割込み制御部240から完了報告を受け取ったなら
ば、みずからのポインタを更新し、それによって、その
命令によって変更された汎用レジスタ(GPR)の値
と、浮動小数点レジスタ(FPR)の値とが、アーキテ
クチャの規定に適した値になっていることと、条件コー
ド214が更新されたことと、命令アドレス201がイ
ンクリメント、即ち変更されたこととを表示する。
了/割込み制御部240から完了報告を受け取ったなら
ば、みずからのポインタを更新し、それによって、その
命令によって変更された汎用レジスタ(GPR)の値
と、浮動小数点レジスタ(FPR)の値とが、アーキテ
クチャの規定に適した値になっていることと、条件コー
ド214が更新されたことと、命令アドレス201がイ
ンクリメント、即ち変更されたこととを表示する。
【0032】格納バッファ232A〜232Cとレジス
タ管理システム206とを備えたことによって、処理装
置がそこからデータの取出しを行なえるようになってい
るばかりでなく、更に、処理装置が、幾つもの未確定の
分岐を経過して実行を進めて行くことも可能になってい
る。この点については、米国特許第4901233号に
詳細に説明されているとおりである。即ち、ある分岐の
推定が誤っていたことが判明したならば、論理順序にお
いてその分岐よりも後の全ての命令を、それら命令の実
行が終了しているといないとにかかわらず、白紙に戻す
ことができるようになっている。これが可能であるの
は、それらの命令の結果は、その分岐の推定が誤ってい
たことが判明した時点ではまだ、格納バッファの中に留
められていて、システムのその他の部分に対して提示さ
れていないからである。プログラムの異常に遭遇した場
合にも、これと同様のことを行なうことができる。即
ち、ある命令を完了したときに、プログラムの異常が生
じていたならば、論理順序がその命令よりも後の、全て
の命令を抹消するようにすれば良い。また、処理装置が
非同期割込みをかけ得る状態にあって、実際に非同期割
込みがかけられた場合にも、その非同期割込みを、その
命令を完了した時点で取扱うようにする。この場合に
も、論理順序がその非同期割込みのポイントよりも後の
命令を白紙に戻した上で、別の命令ストリームへと処理
を転じるようにする。
タ管理システム206とを備えたことによって、処理装
置がそこからデータの取出しを行なえるようになってい
るばかりでなく、更に、処理装置が、幾つもの未確定の
分岐を経過して実行を進めて行くことも可能になってい
る。この点については、米国特許第4901233号に
詳細に説明されているとおりである。即ち、ある分岐の
推定が誤っていたことが判明したならば、論理順序にお
いてその分岐よりも後の全ての命令を、それら命令の実
行が終了しているといないとにかかわらず、白紙に戻す
ことができるようになっている。これが可能であるの
は、それらの命令の結果は、その分岐の推定が誤ってい
たことが判明した時点ではまだ、格納バッファの中に留
められていて、システムのその他の部分に対して提示さ
れていないからである。プログラムの異常に遭遇した場
合にも、これと同様のことを行なうことができる。即
ち、ある命令を完了したときに、プログラムの異常が生
じていたならば、論理順序がその命令よりも後の、全て
の命令を抹消するようにすれば良い。また、処理装置が
非同期割込みをかけ得る状態にあって、実際に非同期割
込みがかけられた場合にも、その非同期割込みを、その
命令を完了した時点で取扱うようにする。この場合に
も、論理順序がその非同期割込みのポイントよりも後の
命令を白紙に戻した上で、別の命令ストリームへと処理
を転じるようにする。
【0033】ESA/390のアーキテクチャは、ある
種の命令をチェックポイント機能命令として定義してお
り、また、このアーキテクチャでは、チェックポイント
機能命令の処理の直前と直後とに、チェックポイント同
期化動作を実行することが要求される。(ただし、場合
によっては、このアーキテクチャによって、チェックポ
イント機能命令の直前と直後との両方ではなく、直前ま
たは直後の一方のみにおいてチェックポイント同期化動
作を実行することが要求されることもある。これに対し
て本発明の好適実施例では、あらゆる場合に、チェック
ポイント機能命令の直前と直後との両方で、チェックポ
イント同期化動作を実行するようにしている)。ある命
令がチェックポイント機能命令であるか否かは、命令解
読ロジック204が判断する。そして、チェックポイン
ト機能命令は全て、システム実行部(SXE)228に
おいて実行される。
種の命令をチェックポイント機能命令として定義してお
り、また、このアーキテクチャでは、チェックポイント
機能命令の処理の直前と直後とに、チェックポイント同
期化動作を実行することが要求される。(ただし、場合
によっては、このアーキテクチャによって、チェックポ
イント機能命令の直前と直後との両方ではなく、直前ま
たは直後の一方のみにおいてチェックポイント同期化動
作を実行することが要求されることもある。これに対し
て本発明の好適実施例では、あらゆる場合に、チェック
ポイント機能命令の直前と直後との両方で、チェックポ
イント同期化動作を実行するようにしている)。ある命
令がチェックポイント機能命令であるか否かは、命令解
読ロジック204が判断する。そして、チェックポイン
ト機能命令は全て、システム実行部(SXE)228に
おいて実行される。
【0034】ESA/390のアーキテクチャにおいて
は、1つの動作の実行によって1つの命令が実行される
ような命令もあれば、2つ以上の動作の実行によって1
つの命令が実行されるような命令もある。ここでいう
「動作」とは、「単位動作」と呼ばれるものである。中
央処理装置は、1つの命令を実行するときにはその命令
の単位動作を1つずつ完了させて行く。ESA/390
のアーキテクチャでは、割込みを取り込むことができる
のは、単位動作と単位動作との間の時点(即ち、各単位
動作を完了した後)だけとされている。複数の単位動作
から成る命令の場合には、最後の単位動作が「完了」し
たときをもって、その命令が「完了」したものと見なす
ようにしている。また、ESA/390のアーキテクチ
ャに含まれている命令の大部分は、その命令の実行の全
体が、1つの単位動作として扱われている。ただし、命
令のうちの幾つかは、2つ以上の単位動作から構成され
たものとなっている。その種の命令(例えば、「MOVE L
ONG 」命令、「COMPARE LOGICAL LONG」命令、「TEST B
LOCK」命令等)は割込みが可能であり、なぜならば、そ
の種の命令は、実行中の、その内部のある1つの単位動
作が完了した直後の時点で、その命令を中断させること
ができるからである。尚、完了処理、割込み可能な命
令、単位動作、並びにプログラムの実行については、先
に挙げた「エンタープライズ・システム体系/390−
動作の基本規則」の中に更に詳細に説明されている。
は、1つの動作の実行によって1つの命令が実行される
ような命令もあれば、2つ以上の動作の実行によって1
つの命令が実行されるような命令もある。ここでいう
「動作」とは、「単位動作」と呼ばれるものである。中
央処理装置は、1つの命令を実行するときにはその命令
の単位動作を1つずつ完了させて行く。ESA/390
のアーキテクチャでは、割込みを取り込むことができる
のは、単位動作と単位動作との間の時点(即ち、各単位
動作を完了した後)だけとされている。複数の単位動作
から成る命令の場合には、最後の単位動作が「完了」し
たときをもって、その命令が「完了」したものと見なす
ようにしている。また、ESA/390のアーキテクチ
ャに含まれている命令の大部分は、その命令の実行の全
体が、1つの単位動作として扱われている。ただし、命
令のうちの幾つかは、2つ以上の単位動作から構成され
たものとなっている。その種の命令(例えば、「MOVE L
ONG 」命令、「COMPARE LOGICAL LONG」命令、「TEST B
LOCK」命令等)は割込みが可能であり、なぜならば、そ
の種の命令は、実行中の、その内部のある1つの単位動
作が完了した直後の時点で、その命令を中断させること
ができるからである。尚、完了処理、割込み可能な命
令、単位動作、並びにプログラムの実行については、先
に挙げた「エンタープライズ・システム体系/390−
動作の基本規則」の中に更に詳細に説明されている。
【0035】ESA/390のアーキテクチャでは、複
数の単位動作から成る命令として規定されている命令以
外の命令であっても、処理装置が、必要に応じてその命
令を複数の単位動作に分割することができるようにして
ある。ただしこうして分割した命令では、その単位動作
と単位動作との間で割込みをかけることは許されず、命
令と命令との間で割込みをかけることしかできない。そ
して、最初から複数の単位動作として構成されている命
令であっても、また、こうして分割された命令であって
も、その1つの単位動作が完了したならば、その実行結
果が、アーキテクチャに規定されている様々な機構へ引
き渡されてしまうため、それら機構の以前の値を復元す
ることは一般的に不可能である。このことは、新たな値
をレジスタにロードする場合も同じであり、また、オペ
ランド格納動作として、実行結果を記憶装置へ書き込む
場合も同じである。
数の単位動作から成る命令として規定されている命令以
外の命令であっても、処理装置が、必要に応じてその命
令を複数の単位動作に分割することができるようにして
ある。ただしこうして分割した命令では、その単位動作
と単位動作との間で割込みをかけることは許されず、命
令と命令との間で割込みをかけることしかできない。そ
して、最初から複数の単位動作として構成されている命
令であっても、また、こうして分割された命令であって
も、その1つの単位動作が完了したならば、その実行結
果が、アーキテクチャに規定されている様々な機構へ引
き渡されてしまうため、それら機構の以前の値を復元す
ることは一般的に不可能である。このことは、新たな値
をレジスタにロードする場合も同じであり、また、オペ
ランド格納動作として、実行結果を記憶装置へ書き込む
場合も同じである。
【0036】これに対して、本発明の一実施例では、オ
ペランド格納動作を含んでいるチェックポイント機能命
令については、その各命令を少なくとも2つの単位動作
から構成するようにしており、しかも、その最後の単位
動作は、新たな結果を発生することのない単位動作にす
るようにしている。これによって、チェックポイント機
能命令によって得られた結果を、そのチェックポイント
機能命令を完了させる前に、アーキテクチャに規定され
ているレジスタや記憶装置へ引き渡すことができるよう
にしている。またこれにより、通常では命令を完了した
後に実行される動作に付随するエラーが、チェックポイ
ント機能命令がこのように構成されているために、その
チェックポイント機能命令が完了する前に検出されるよ
うになっており、従ってその種のエラーの発生時期が、
チェックポイント機能命令の直後に必要とされるチェッ
クポイントの以前に限局されるようにしている。更に
は、チェックポイント機能命令の最初の単位動作は、そ
のチェックポイント機能命令に先行している、記憶装置
へオペランドを格納する動作を含んでいる様々な命令の
全ての処理が終了するまでは、終了してはならず、また
完了してはならないものとしている。これによって、そ
のチェックポイント機能命令より先行している様々な命
令に付随する可能性のある、いかなるエラーの発生時期
も、そのチェックポイント機能命令の直前に必要とされ
るチェックポイントの以前に、限局されるようにしてい
る。一方、オペランド格納動作を含まない種類のチェッ
クポイント機能命令の場合には、そのチェックポイント
機能命令の完了の後にエラーが発生することはあり得
ず、そのため、この種のチェックポイント機能命令は、
複数の単位動作で構成しておく必要はない。また、この
種のチェックポイント機能命令は、そのチェックポイン
ト機能命令より先行している全ての命令の処理が終了す
るまでは、終了してはならず、また完了してはならない
ものとしている。以上の2種類のチェックポイント機能
命令の処理を更に詳細に示した図が、次の図3と図4と
である。
ペランド格納動作を含んでいるチェックポイント機能命
令については、その各命令を少なくとも2つの単位動作
から構成するようにしており、しかも、その最後の単位
動作は、新たな結果を発生することのない単位動作にす
るようにしている。これによって、チェックポイント機
能命令によって得られた結果を、そのチェックポイント
機能命令を完了させる前に、アーキテクチャに規定され
ているレジスタや記憶装置へ引き渡すことができるよう
にしている。またこれにより、通常では命令を完了した
後に実行される動作に付随するエラーが、チェックポイ
ント機能命令がこのように構成されているために、その
チェックポイント機能命令が完了する前に検出されるよ
うになっており、従ってその種のエラーの発生時期が、
チェックポイント機能命令の直後に必要とされるチェッ
クポイントの以前に限局されるようにしている。更に
は、チェックポイント機能命令の最初の単位動作は、そ
のチェックポイント機能命令に先行している、記憶装置
へオペランドを格納する動作を含んでいる様々な命令の
全ての処理が終了するまでは、終了してはならず、また
完了してはならないものとしている。これによって、そ
のチェックポイント機能命令より先行している様々な命
令に付随する可能性のある、いかなるエラーの発生時期
も、そのチェックポイント機能命令の直前に必要とされ
るチェックポイントの以前に、限局されるようにしてい
る。一方、オペランド格納動作を含まない種類のチェッ
クポイント機能命令の場合には、そのチェックポイント
機能命令の完了の後にエラーが発生することはあり得
ず、そのため、この種のチェックポイント機能命令は、
複数の単位動作で構成しておく必要はない。また、この
種のチェックポイント機能命令は、そのチェックポイン
ト機能命令より先行している全ての命令の処理が終了す
るまでは、終了してはならず、また完了してはならない
ものとしている。以上の2種類のチェックポイント機能
命令の処理を更に詳細に示した図が、次の図3と図4と
である。
【0037】図3は、本発明を用いて、1つないし複数
のオペランド格納動作を含んでいるチェックポイント機
能命令を処理する際の方法を例示したものである。この
図3から分るように、ステップ303〜316は、ステ
ップ317〜325と並行して実行される。ステップ3
02においては、命令解読ロジック204が、チェック
ポイント機能命令を解読して、その命令をシステム実行
部(SXE)228とアドレス計算部(ACE)208
との両方へ送出する。そのチェックポイント機能命令が
解読されたならば、命令解読ロジック204の制御部2
04Aは、そのチェックポイント機能命令が完了するま
では、後続のチェックポイント機能命令の解読を禁止す
る。チェックポイント機能命令以外の命令であれば、一
般的に、そのチェックポイント機能命令の処理と並行し
て解読を行なってかまわない。ただし、命令によっては
(その中にはチェックポイント機能命令のうちの幾つか
も含まれる)、チェックポイント同期化とは無関係な何
らかの理由で、命令解読ロジック204の制御部204
Aに、その命令の実行中は、その他全ての命令の解読を
禁止させるような命令もある。このように、その他全て
の命令の解読を禁止することを、命令の並行処理のディ
スエーブルという。
のオペランド格納動作を含んでいるチェックポイント機
能命令を処理する際の方法を例示したものである。この
図3から分るように、ステップ303〜316は、ステ
ップ317〜325と並行して実行される。ステップ3
02においては、命令解読ロジック204が、チェック
ポイント機能命令を解読して、その命令をシステム実行
部(SXE)228とアドレス計算部(ACE)208
との両方へ送出する。そのチェックポイント機能命令が
解読されたならば、命令解読ロジック204の制御部2
04Aは、そのチェックポイント機能命令が完了するま
では、後続のチェックポイント機能命令の解読を禁止す
る。チェックポイント機能命令以外の命令であれば、一
般的に、そのチェックポイント機能命令の処理と並行し
て解読を行なってかまわない。ただし、命令によっては
(その中にはチェックポイント機能命令のうちの幾つか
も含まれる)、チェックポイント同期化とは無関係な何
らかの理由で、命令解読ロジック204の制御部204
Aに、その命令の実行中は、その他全ての命令の解読を
禁止させるような命令もある。このように、その他全て
の命令の解読を禁止することを、命令の並行処理のディ
スエーブルという。
【0038】ステップ303では、SXE228が、そ
のチェックポイント機能命令を受け取り、ステップ30
4では、SXE228が、そのチェックポイント機能命
令の実行を開始する。ステップ305では、SXE22
8が、そのチェックポイント機能命令の実行を続行し、
そのチェックポイント機能命令の先頭の単位動作(unit
-of-operation:UOP)の終点まで実行する。続いて、
ステップ306では、SXE228が、そのチェックポ
イント機能命令より以前から存在していた格納動作の全
てが終了したことを表わす信号がデータ・キャッシュ2
10から送られてくるのを待つ。続いてステップ307
では、SXE228が、そのチェックポイント機能命令
のその先頭の単位動作を終了し、そしてステップ308
では、完了/割込み制御部240が、その単位動作を完
了させる。
のチェックポイント機能命令を受け取り、ステップ30
4では、SXE228が、そのチェックポイント機能命
令の実行を開始する。ステップ305では、SXE22
8が、そのチェックポイント機能命令の実行を続行し、
そのチェックポイント機能命令の先頭の単位動作(unit
-of-operation:UOP)の終点まで実行する。続いて、
ステップ306では、SXE228が、そのチェックポ
イント機能命令より以前から存在していた格納動作の全
てが終了したことを表わす信号がデータ・キャッシュ2
10から送られてくるのを待つ。続いてステップ307
では、SXE228が、そのチェックポイント機能命令
のその先頭の単位動作を終了し、そしてステップ308
では、完了/割込み制御部240が、その単位動作を完
了させる。
【0039】もしそのチェックポイント機能命令が、2
つ以上の単位動作をも含むものであったならば(これは
ステップ309で判断する)、ステップ310におい
て、先頭の単位動作のときと同様にして、SXE228
が、それら単位動作を実行、及び終了し(これは、ステ
ップ306をとばして、ステップ305、307、及び
308を反復実行することによって行なう)、そして完
了/割込み制御部240が、それら単位動作を完了させ
る。
つ以上の単位動作をも含むものであったならば(これは
ステップ309で判断する)、ステップ310におい
て、先頭の単位動作のときと同様にして、SXE228
が、それら単位動作を実行、及び終了し(これは、ステ
ップ306をとばして、ステップ305、307、及び
308を反復実行することによって行なう)、そして完
了/割込み制御部240が、それら単位動作を完了させ
る。
【0040】一方、そのチェックポイント機能命令が、
命令解読ロジックの制御部204Aに、命令の並行処理
をディスエーブルさせる種類の命令であったならば(こ
れはステップ311で判断する)、ステップ312にお
いて、全ての単位動作が実行されて完了された後に、S
XE228が命令解読ロジックの制御部204Aへ、命
令解読を再開しても良いということを表わす信号を送出
する。
命令解読ロジックの制御部204Aに、命令の並行処理
をディスエーブルさせる種類の命令であったならば(こ
れはステップ311で判断する)、ステップ312にお
いて、全ての単位動作が実行されて完了された後に、S
XE228が命令解読ロジックの制御部204Aへ、命
令解読を再開しても良いということを表わす信号を送出
する。
【0041】全ての単位動作が実行されて完了された後
には、ステップ313において、SXE228が、その
チェックポイント機能命令に関係したオペランド格納動
作が終了したことを知らせる信号が、データ・キャッシ
ュ210から送られてくるのを待つ。続いて、ステップ
314では、SXE228が、そのチェックポイント機
能命令を終了し、そしてステップ315では、完了/割
込み制御部240が、そのチェックポイント機能命令を
完了させる。ステップ316では、命令解読ロジックの
制御部204Aが、そのチェックポイント機能命令が完
了したことに応答して、次のチェックポイント機能命令
の解読を許可する。
には、ステップ313において、SXE228が、その
チェックポイント機能命令に関係したオペランド格納動
作が終了したことを知らせる信号が、データ・キャッシ
ュ210から送られてくるのを待つ。続いて、ステップ
314では、SXE228が、そのチェックポイント機
能命令を終了し、そしてステップ315では、完了/割
込み制御部240が、そのチェックポイント機能命令を
完了させる。ステップ316では、命令解読ロジックの
制御部204Aが、そのチェックポイント機能命令が完
了したことに応答して、次のチェックポイント機能命令
の解読を許可する。
【0042】ステップ317では、ACE208が、命
令解読ロジック204から、そのチェックポイント機能
命令を受け取る。ステップ318では、ACE208
が、そのチェックポイント機能命令に関係した、オペラ
ンド取り出し要求ないしオペランド格納要求を発生し、
そして発生した要求に、それがチェックポイント機能命
令関係の要求であることを示す標識を付した上で、それ
を、データ・キャッシュ210へ宛てて送出する。ステ
ップ319では、データ・キャッシュ210が、チェッ
クポイント機能命令関係の要求を受け取ったときに、そ
のとき格納動作キューの中に入れられている格納動作の
うちの最も新しい格納動作に、チェックポイント機能命
令より以前の最後の格納動作であることを示すマークを
付ける。
令解読ロジック204から、そのチェックポイント機能
命令を受け取る。ステップ318では、ACE208
が、そのチェックポイント機能命令に関係した、オペラ
ンド取り出し要求ないしオペランド格納要求を発生し、
そして発生した要求に、それがチェックポイント機能命
令関係の要求であることを示す標識を付した上で、それ
を、データ・キャッシュ210へ宛てて送出する。ステ
ップ319では、データ・キャッシュ210が、チェッ
クポイント機能命令関係の要求を受け取ったときに、そ
のとき格納動作キューの中に入れられている格納動作の
うちの最も新しい格納動作に、チェックポイント機能命
令より以前の最後の格納動作であることを示すマークを
付ける。
【0043】ステップ322では、データ・キャッシュ
のチェックポイント制御部210Cが、そのチェックポ
イント機能命令より以前の最後の格納動作が終了するの
を待っており、それが終了したならば、第2レベルの高
速バッファ106からその旨が知らされる。それを知ら
されたならば、データ・キャッシュのチェックポイント
制御部210Cは、ステップ323において、SXE2
28へ宛てて信号を送出して、そのチェックポイント機
能命令より以前の全ての格納動作が終了したことを知ら
せる。この信号は、SXE228がステップ306にお
いて、送られてくるのを待っている信号に他ならない。
ステップ320では、データ・キャッシュ210が、そ
のチェックポイント機能命令に関係した要求を処理す
る。それら要求の全てを処理したならば、データ・キャ
ッシュ210は、ステップ321において、格納動作キ
ュー210Aの中に入れられている、そのチェックポイ
ント機能命令に関係した終了した格納動作のうちの、最
後の格納動作にマークを付ける。
のチェックポイント制御部210Cが、そのチェックポ
イント機能命令より以前の最後の格納動作が終了するの
を待っており、それが終了したならば、第2レベルの高
速バッファ106からその旨が知らされる。それを知ら
されたならば、データ・キャッシュのチェックポイント
制御部210Cは、ステップ323において、SXE2
28へ宛てて信号を送出して、そのチェックポイント機
能命令より以前の全ての格納動作が終了したことを知ら
せる。この信号は、SXE228がステップ306にお
いて、送られてくるのを待っている信号に他ならない。
ステップ320では、データ・キャッシュ210が、そ
のチェックポイント機能命令に関係した要求を処理す
る。それら要求の全てを処理したならば、データ・キャ
ッシュ210は、ステップ321において、格納動作キ
ュー210Aの中に入れられている、そのチェックポイ
ント機能命令に関係した終了した格納動作のうちの、最
後の格納動作にマークを付ける。
【0044】ステップ324では、データ・キャッシュ
のチェックポイント制御部210Cが、そのチェックポ
イント機能命令に関係した格納動作のうちの、最後の格
納動作が終了するのを待っており、それが終了したなら
ば、第2レベルの高速バッファ106からその旨が知ら
される。それを知らされたならば、データ・キャッシュ
のチェックポイント制御部210Cは、ステップ325
において、SXE228へ宛てて信号を送出して、その
チェックポイント機能命令に関係した全ての格納動作が
終了したことを知らせる。この信号は、SXE228が
ステップ313において、送られてくるのを待っている
信号に他ならない。
のチェックポイント制御部210Cが、そのチェックポ
イント機能命令に関係した格納動作のうちの、最後の格
納動作が終了するのを待っており、それが終了したなら
ば、第2レベルの高速バッファ106からその旨が知ら
される。それを知らされたならば、データ・キャッシュ
のチェックポイント制御部210Cは、ステップ325
において、SXE228へ宛てて信号を送出して、その
チェックポイント機能命令に関係した全ての格納動作が
終了したことを知らせる。この信号は、SXE228が
ステップ313において、送られてくるのを待っている
信号に他ならない。
【0045】図4は、本発明を用いて、オペランド格納
動作を含まないチェックポイント機能命令を処理する際
の方法を例示したものである。この図4から分るよう
に、ステップ402〜408は、ステップ410〜42
1と並行して実行される。ステップ401においては、
命令解読ロジック204が、チェックポイント機能命令
を解読して、その命令をシステム実行部(SXE)22
8とアドレス計算部(ACE)208との両方へ送出す
る。そのチェックポイント機能命令が解読されたなら
ば、命令解読ロジック204の制御部204Aは、その
チェックポイント機能命令が完了するまでは、後続のチ
ェックポイント機能命令の解読を禁止する。チェックポ
イント機能命令以外の命令であれば、一般的に、そのチ
ェックポイント機能命令の処理と並行して解読を行なっ
てかまわない。ただし、命令によっては(その中にはチ
ェックポイント機能命令のうちの幾つかも含まれる)、
チェックポイント同期化とは無関係な何らかの理由で、
命令解読ロジック204の制御部204Aに、その命令
の実行中は、その他全ての命令の解読を禁止させるよう
な命令もある。
動作を含まないチェックポイント機能命令を処理する際
の方法を例示したものである。この図4から分るよう
に、ステップ402〜408は、ステップ410〜42
1と並行して実行される。ステップ401においては、
命令解読ロジック204が、チェックポイント機能命令
を解読して、その命令をシステム実行部(SXE)22
8とアドレス計算部(ACE)208との両方へ送出す
る。そのチェックポイント機能命令が解読されたなら
ば、命令解読ロジック204の制御部204Aは、その
チェックポイント機能命令が完了するまでは、後続のチ
ェックポイント機能命令の解読を禁止する。チェックポ
イント機能命令以外の命令であれば、一般的に、そのチ
ェックポイント機能命令の処理と並行して解読を行なっ
てかまわない。ただし、命令によっては(その中にはチ
ェックポイント機能命令のうちの幾つかも含まれる)、
チェックポイント同期化とは無関係な何らかの理由で、
命令解読ロジック204の制御部204Aに、その命令
の実行中は、その他全ての命令の解読を禁止させるよう
な命令もある。
【0046】ステップ402では、SXE228が、そ
のチェックポイント機能命令を受け取り、ステップ40
3では、SXE228が、そのチェックポイント機能命
令の実行を開始する。ステップ404では、SXE22
8による、そのチェックポイント機能命令の実行が終了
する。続いてステップ405では、SXE228が、そ
のチェックポイント機能命令より以前から存在していた
格納動作の全てが終了したことを表わす信号がデータ・
キャッシュ210から送られてくるのを待つ。続いてス
テップ406では、SXE228が、そのチェックポイ
ント機能命令を終了し、そして、ステップ407では、
完了/割込み制御部240が、そのチェックポイント機
能命令を完了させる。ステップ408では、命令解読ロ
ジックの制御部204Aが、そのチェックポイント機能
命令が完了したことに応答して、次のチェックポイント
機能命令の解読を許可する。
のチェックポイント機能命令を受け取り、ステップ40
3では、SXE228が、そのチェックポイント機能命
令の実行を開始する。ステップ404では、SXE22
8による、そのチェックポイント機能命令の実行が終了
する。続いてステップ405では、SXE228が、そ
のチェックポイント機能命令より以前から存在していた
格納動作の全てが終了したことを表わす信号がデータ・
キャッシュ210から送られてくるのを待つ。続いてス
テップ406では、SXE228が、そのチェックポイ
ント機能命令を終了し、そして、ステップ407では、
完了/割込み制御部240が、そのチェックポイント機
能命令を完了させる。ステップ408では、命令解読ロ
ジックの制御部204Aが、そのチェックポイント機能
命令が完了したことに応答して、次のチェックポイント
機能命令の解読を許可する。
【0047】ステップ410では、ACE208が、命
令解読ロジック204から、そのチェックポイント機能
命令を受け取る。ステップ411では、ACE208
が、そのチェックポイント機能命令に関係したオペラン
ド取り出し要求を(もし必要であれば)発生し、そして
発生した要求に、それがチェックポイント機能命令関係
の要求であることを示す標識を付した上で、それを、デ
ータ・キャッシュ210へ宛てて送出する。ステップ4
12では、データ・キャッシュ210が、そのとき格納
動作キュー210Aの中に入れられている格納動作のう
ちの最も新しい格納動作に、チェックポイント機能命令
より以前の最後の格納動作であることを示すマークを付
ける。ステップ420では、データ・キャッシュのチェ
ックポイント制御部210Cが、そのチェックポイント
機能命令より以前の最後の格納動作が終了するのを待っ
ており、それが終了したならば、第2レベルの高速バッ
ファ106からその旨が知らされる。それを知らされた
ならば、データ・キャッシュのチェックポイント制御部
210Cは、ステップ421において、SXE228へ
宛てて信号を送出して、そのチェックポイント機能命令
より以前の全ての格納動作が終了したことを知らせる。
この信号は、SXE228がステップ405において、
送られてくるのを待っている信号に他ならない。
令解読ロジック204から、そのチェックポイント機能
命令を受け取る。ステップ411では、ACE208
が、そのチェックポイント機能命令に関係したオペラン
ド取り出し要求を(もし必要であれば)発生し、そして
発生した要求に、それがチェックポイント機能命令関係
の要求であることを示す標識を付した上で、それを、デ
ータ・キャッシュ210へ宛てて送出する。ステップ4
12では、データ・キャッシュ210が、そのとき格納
動作キュー210Aの中に入れられている格納動作のう
ちの最も新しい格納動作に、チェックポイント機能命令
より以前の最後の格納動作であることを示すマークを付
ける。ステップ420では、データ・キャッシュのチェ
ックポイント制御部210Cが、そのチェックポイント
機能命令より以前の最後の格納動作が終了するのを待っ
ており、それが終了したならば、第2レベルの高速バッ
ファ106からその旨が知らされる。それを知らされた
ならば、データ・キャッシュのチェックポイント制御部
210Cは、ステップ421において、SXE228へ
宛てて信号を送出して、そのチェックポイント機能命令
より以前の全ての格納動作が終了したことを知らせる。
この信号は、SXE228がステップ405において、
送られてくるのを待っている信号に他ならない。
【0048】以上、本発明をその好適実施例に即して説
明したが、当業者であれば、本発明の範囲から逸脱する
ことなくこの好適実施例に対して加え得る、様々な変更
ないし改変にも容易に想到し得ることは明らかである。
明したが、当業者であれば、本発明の範囲から逸脱する
ことなくこの好適実施例に対して加え得る、様々な変更
ないし改変にも容易に想到し得ることは明らかである。
【図1】中央電子複合体(CEC)のブロック図であ
る。
る。
【図2】図1のCECの中に備えられている本発明の好
適実施例に係る中央処理装置の一具体例の機能的ブロッ
ク図である。
適実施例に係る中央処理装置の一具体例の機能的ブロッ
ク図である。
【図3】本発明を用いて、オペランド格納動作を含んで
いるチェックポイント機能命令を処理するときの方法を
例示したフローチャートである。
いるチェックポイント機能命令を処理するときの方法を
例示したフローチャートである。
【図4】本発明を用いて、オペランド格納動作を含まな
いチェックポイント機能命令を処理するときの方法を例
示したフローチャートである。
いチェックポイント機能命令を処理するときの方法を例
示したフローチャートである。
102A〜102C 中央処理装置 104A〜104C 第1レベルの高速バッファ 106 第2レベルの高速バッファ 201 命令アドレス 202 命令キャッシュ 204 命令解読ロジック 208 アドレス計算部(ACE) 210 データ・キャッシュ 228 システム実行部(SXE) 232A〜232C 格納バッファ 240 完了/割込み制御部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 クリフォード・オーエン・ハイデン アメリカ合衆国02130、マサチューセッツ 州 ジャマイカ・プレイン、エリオット・ ストリート 51番地 (72)発明者 ジョン・スティーブン・リプテイ アメリカ合衆国12572、ニューヨーク州 ラインベック、トロイ・ドライブ 1番地 (72)発明者 スーザン・バーバラ・スティルマン アメリカ合衆国12601、ニューヨーク州 ポウキープシイ、スタウト・コート 3− 11番地 (72)発明者 チャールズ・フランクリン・ウェブ アメリカ合衆国12603、ニューヨーク州 ポウキープシイ、メイネッティ・ドライブ 4番地 (56)参考文献 特開 平1−303529(JP,A)
Claims (2)
- 【請求項1】チェックポイント機能命令の直前に第1チ
ェックポイントを設定し、且つチェックポイント機能命
令の直後に第2チェックポイントを設定するようにした
アーキテクチャを有する処理装置における、チェックポ
イント機能命令の実行中の並行処理を可能にする方法に
おいて、 命令を解読するステップと、 前記命令がチェックポイント機能命令か否かを判断する
ステップと、 前記命令がチェックポイント機能命令であると判断され
た場合に、後続のチェックポイント機能命令の処理を中
止するステップと、 チェックポイント機能命令以外の命令を復号し、該命令
の完了直前まで前記チェックポイント機能命令と同時に
該命令を実行するステップと、 前記チェックポイント機能命令の実行に少なくとも1つ
のオペランド格納動作が付随するか否かを判断するステ
ップと、 前記チェックポイント機能命令の実行に少なくとも1つ
のオペランド格納動作が付随すると判断された場合に、
前記第1チェックポイント以前の最後のオペランド格納
動作(第1格納動作)と前記第2チェックポイント以前
の最後のオペランド格納動作(第2格納動作)とに夫々
に識別を施し、第1格納動作が完了したときに第1チェ
ックポイント完了信号を発生し、第2格納動作が完了し
たときに第2チェックポイント完了信号を発生するステ
ップと、 前記チェックポイント機能命令の実行にオペランド格納
動作が付随しないと判断された場合に、前記第1チェッ
クポイント完了信号と前記第2チェックポイント完了信
号とを発生するステップと、 前記第1チェックポイント信号と前記第2チェックポイ
ント信号とが発生されたときにその発生を検出するステ
ップと、 前記検出に応答して、前記チェックポイント機能命令を
完了すると共に、後続のチェックポイント機能命令の解
読を再びイネーブルするステップと、 を含んでいることを特徴とする方法。 - 【請求項2】チェックポイント機能命令の直前に第1チ
ェックポイントを設定し、且つチェックポイント機能命
令の直後に第2チェックポイントを設定するようにした
アーキテクチャを有する処理装置における、チェックポ
イント機能命令の実行中の並行処理を可能にする装置に
おいて、 解読器であって、命令がチェックポイント機能命令か否
かを判断しその判断に応じて後続のチェックポイント機
能命令の解読を阻止する手段を備え、更に、その解読の
阻止の後にもチェックポイント機能命令以外の命令を復
号し、該命令の完了直前まで前記チェックポイント機能
命令と同時に該命令を実行する手段を備えた、前記解読
器と、 前記解読器に結合した、該チェックポイント機能命令の
実行に少なくとも1つのオペランド格納動作が付随する
か否かを判断する判断手段と、 前記判断手段に結合した、前記第1チェックポイント以
前の最後のオペランド格納動作(第1格納動作)と前記
第2チェックポイント以前の最後のオペランド格納動作
(第2格納動作)との夫々に識別を施すマーク付け手段
と、 前記マーク付け手段と前記判断手段とに結合した、第1
格納動作が完了したときに第1チェックポイント完了信
号(第1UOC信号)を発生し、第2格納動作が完了し
たときに第2チェックポイント完了信号(第2UOC信
号)を発生する信号発生手段であって、前記チェックポ
イント機能命令の実行にオペランド格納動作が付随しな
いと判断された場合に、前記第1UOC信号と前記第2
UOC信号との両方を発生する手段を備えた、前記信号
発生手段と、 前記信号発生手段に結合した、前記第1チェックポイン
ト完了信号(第1UOC信号)と前記第2チェックポイ
ント完了信号(第2UOC信号)とが発生されたときに
その発生を検出する検出手段と、 前記解読器に結合した、前記チェックポイント機能命令
を実行する実行手段と、 前記実行手段と前記検出手段とに結合した、前記チェッ
クポイント機能命令が完了されたときにその完了を判断
する完了手段であって、前記第1UOC信号と前記第2
UOC信号との両方の受け取りに応答して前記チェック
ポイント機能命令を完了すると共に後続のチェックポイ
ント機能命令の解読を再びイネーブルするための手段を
備えた、前記完了手段と、 を備えたことを特徴とする装置。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US75215191A | 1991-08-29 | 1991-08-29 | |
| US752151 | 1991-08-29 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH05210526A JPH05210526A (ja) | 1993-08-20 |
| JPH0812617B2 true JPH0812617B2 (ja) | 1996-02-07 |
Family
ID=25025110
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP4202291A Expired - Lifetime JPH0812617B2 (ja) | 1991-08-29 | 1992-07-29 | 命令の並行処理を可能にするチェックポイント同期化 |
Country Status (3)
| Country | Link |
|---|---|
| US (2) | US5495587A (ja) |
| EP (1) | EP0529303A3 (ja) |
| JP (1) | JPH0812617B2 (ja) |
Families Citing this family (47)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW353732B (en) * | 1994-03-31 | 1999-03-01 | Ibm | Processing system and method of operation |
| TW260765B (ja) * | 1994-03-31 | 1995-10-21 | Ibm | |
| DE69506404T2 (de) * | 1994-06-10 | 1999-05-27 | Texas Micro Inc., Houston, Tex. | Hauptspeichervorrichtung und wiederanlaufkennzeichnungsverfahren für ein fehlertolerantes rechnersystem |
| US5465336A (en) * | 1994-06-30 | 1995-11-07 | International Business Machines Corporation | Fetch and store buffer that enables out-of-order execution of memory instructions in a data processing system |
| US5655115A (en) * | 1995-02-14 | 1997-08-05 | Hal Computer Systems, Inc. | Processor structure and method for watchpoint of plural simultaneous unresolved branch evaluation |
| US5860104A (en) * | 1995-08-31 | 1999-01-12 | Advanced Micro Devices, Inc. | Data cache which speculatively updates a predicted data cache storage location with store data and subsequently corrects mispredicted updates |
| US5987561A (en) * | 1995-08-31 | 1999-11-16 | Advanced Micro Devices, Inc. | Superscalar microprocessor employing a data cache capable of performing store accesses in a single clock cycle |
| US5706489A (en) * | 1995-10-18 | 1998-01-06 | International Business Machines Corporation | Method for a CPU to utilize a parallel instruction execution processing facility for assisting in the processing of the accessed data |
| US5864657A (en) * | 1995-11-29 | 1999-01-26 | Texas Micro, Inc. | Main memory system and checkpointing protocol for fault-tolerant computer system |
| US5812823A (en) * | 1996-01-02 | 1998-09-22 | International Business Machines Corporation | Method and system for performing an emulation context save and restore that is transparent to the operating system |
| US5675768A (en) * | 1996-02-01 | 1997-10-07 | Unisys Corporation | Store software instrumentation package instruction |
| US5838943A (en) | 1996-03-26 | 1998-11-17 | Advanced Micro Devices, Inc. | Apparatus for speculatively storing and restoring data to a cache memory |
| US5655072A (en) * | 1996-04-12 | 1997-08-05 | Samsung Information Systems America | Method and apparatus for testing a sytem component with test checkpointing |
| JPH09330237A (ja) * | 1996-06-07 | 1997-12-22 | Toshiba Corp | プロセス切り替え装置およびプロセス切り替え方法 |
| US5872910A (en) * | 1996-12-27 | 1999-02-16 | Unisys Corporation | Parity-error injection system for an instruction processor |
| US6088791A (en) * | 1998-04-30 | 2000-07-11 | International Business Machines Corporation | Computer processor system for implementing the ESA/390 STOSM and STNSM instructions without serialization or artificially extending processor execution time |
| US6178495B1 (en) * | 1998-04-30 | 2001-01-23 | International Business Machines Corporation | Processor E-unit to I-unit interface instruction modification with E-unit opcode computer logic in the unit |
| US6256727B1 (en) | 1998-05-12 | 2001-07-03 | International Business Machines Corporation | Method and system for fetching noncontiguous instructions in a single clock cycle |
| US6247118B1 (en) | 1998-06-05 | 2001-06-12 | Mcdonnell Douglas Corporation | Systems and methods for transient error recovery in reduced instruction set computer processors via instruction retry |
| US6332200B1 (en) | 1998-10-29 | 2001-12-18 | International Business Machines Corporation | Capturing and identifying a complete and consistent set of checkpoint files |
| US6874104B1 (en) * | 1999-06-11 | 2005-03-29 | International Business Machines Corporation | Assigning recoverable unique sequence numbers in a transaction processing system |
| US6473850B1 (en) * | 1999-09-02 | 2002-10-29 | International Business Machines Corporation | System and method for handling instructions occurring after an ISYNC instruction |
| US6584581B1 (en) * | 1999-12-06 | 2003-06-24 | Ab Initio Software Corporation | Continuous flow checkpointing data processing |
| US7167850B2 (en) * | 2002-10-10 | 2007-01-23 | Ab Initio Software Corporation | Startup and control of graph-based computation |
| US7007043B2 (en) * | 2002-12-23 | 2006-02-28 | Storage Technology Corporation | Storage backup system that creates mountable representations of past contents of storage volumes |
| US7007044B1 (en) * | 2002-12-26 | 2006-02-28 | Storage Technology Corporation | Storage backup system for backing up data written to a primary storage device to multiple virtual mirrors using a reconciliation process that reflects the changing state of the primary storage device over time |
| US7000145B2 (en) * | 2003-06-18 | 2006-02-14 | International Business Machines Corporation | Method, system, and program for reverse restore of an incremental virtual copy |
| US6983352B2 (en) * | 2003-06-19 | 2006-01-03 | International Business Machines Corporation | System and method for point in time backups |
| US7386756B2 (en) * | 2004-06-17 | 2008-06-10 | Intel Corporation | Reducing false error detection in a microprocessor by tracking instructions neutral to errors |
| US7555703B2 (en) * | 2004-06-17 | 2009-06-30 | Intel Corporation | Method and apparatus for reducing false error detection in a microprocessor |
| US7467325B2 (en) * | 2005-02-10 | 2008-12-16 | International Business Machines Corporation | Processor instruction retry recovery |
| US20060184771A1 (en) * | 2005-02-11 | 2006-08-17 | International Business Machines | Mini-refresh processor recovery as bug workaround method using existing recovery hardware |
| US7877350B2 (en) * | 2005-06-27 | 2011-01-25 | Ab Initio Technology Llc | Managing metadata for graph-based computations |
| CN101501678B (zh) | 2006-08-10 | 2013-10-16 | 起元科技有限公司 | 在基于图的计算中分配服务 |
| EP2174222A4 (en) | 2007-07-26 | 2010-10-27 | Ab Initio Technology Llc | TRANSACTIONAL GRAPH-BASED CALCULATION WITH ERROR HANDLING |
| US9886319B2 (en) | 2009-02-13 | 2018-02-06 | Ab Initio Technology Llc | Task managing application for performing tasks based on messages received from a data processing application initiated by the task managing application |
| US8667329B2 (en) * | 2009-09-25 | 2014-03-04 | Ab Initio Technology Llc | Processing transactions in graph-based applications |
| EP2583168B1 (en) | 2010-06-15 | 2017-11-08 | Ab Initio Technology LLC | Dynamically loading graph-based computations |
| US10108521B2 (en) | 2012-11-16 | 2018-10-23 | Ab Initio Technology Llc | Dynamic component performance monitoring |
| US9507682B2 (en) | 2012-11-16 | 2016-11-29 | Ab Initio Technology Llc | Dynamic graph performance monitoring |
| US9274926B2 (en) | 2013-01-03 | 2016-03-01 | Ab Initio Technology Llc | Configurable testing of computer programs |
| CA2932763C (en) | 2013-12-05 | 2022-07-12 | Ab Initio Technology Llc | Managing interfaces for dataflow graphs composed of sub-graphs |
| FR3039347B1 (fr) * | 2015-07-20 | 2017-09-08 | Bull Sas | Procede de sauvegarde de l'environnement de travail d'une session d'un utilisateur sur un serveur |
| US10657134B2 (en) | 2015-08-05 | 2020-05-19 | Ab Initio Technology Llc | Selecting queries for execution on a stream of real-time data |
| EP3394739B1 (en) | 2015-12-21 | 2020-11-11 | AB Initio Technology LLC | Sub-graph interface generation |
| US9858151B1 (en) * | 2016-10-03 | 2018-01-02 | International Business Machines Corporation | Replaying processing of a restarted application |
| US10956168B2 (en) | 2019-03-08 | 2021-03-23 | International Business Machines Corporation | Post completion execution in an out-of-order processor design |
Family Cites Families (19)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3736566A (en) * | 1971-08-18 | 1973-05-29 | Ibm | Central processing unit with hardware controlled checkpoint and retry facilities |
| US4044337A (en) * | 1975-12-23 | 1977-08-23 | International Business Machines Corporation | Instruction retry mechanism for a data processing system |
| US4387427A (en) * | 1978-12-21 | 1983-06-07 | Intel Corporation | Hardware scheduler/dispatcher for data processing system |
| US4513367A (en) * | 1981-03-23 | 1985-04-23 | International Business Machines Corporation | Cache locking controls in a multiprocessor |
| US4445174A (en) * | 1981-03-31 | 1984-04-24 | International Business Machines Corporation | Multiprocessing system including a shared cache |
| US5043871A (en) * | 1986-03-26 | 1991-08-27 | Hitachi, Ltd. | Method and apparatus for database update/recovery |
| US4740969A (en) * | 1986-06-27 | 1988-04-26 | Hewlett-Packard Company | Method and apparatus for recovering from hardware faults |
| FR2602891B1 (fr) * | 1986-08-18 | 1990-12-07 | Nec Corp | Systeme de correction d'erreur d'un systeme a multiprocesseurs pour corriger une erreur dans un processeur en mettant le processeur en condition de controle apres achevement du redemarrage du microprogramme a partir d'un point de reprise |
| DE3735828C2 (de) * | 1986-10-24 | 1994-11-10 | Hitachi Ltd | Verfahren zur Wiederaufnahme der Ausführung von Anweisungen nach einer Unterbrechung in einer mikroprogrammgesteuerten Datenverarbeitungsvorrichtung |
| US4901233A (en) * | 1987-07-20 | 1990-02-13 | International Business Machines Corporation | Computer system with logic for writing instruction identifying data into array control lists for precise post-branch recoveries |
| JPH0789328B2 (ja) * | 1988-05-31 | 1995-09-27 | 日本電気株式会社 | データ処理装置 |
| JPH0752399B2 (ja) * | 1988-06-30 | 1995-06-05 | インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン | 記憶システム |
| US4912707A (en) * | 1988-08-23 | 1990-03-27 | International Business Machines Corporation | Checkpoint retry mechanism |
| JPH02287858A (ja) * | 1989-04-28 | 1990-11-27 | Toshiba Corp | 分散処理システムのリスタート方式 |
| US5127006A (en) * | 1989-05-01 | 1992-06-30 | Digital Equipment Corporation | Fault diagnostic system |
| JP2677414B2 (ja) * | 1989-05-15 | 1997-11-17 | 富士通株式会社 | 命令実行のシリアライズ制御方式 |
| DE69021712T2 (de) * | 1990-02-08 | 1996-04-18 | Ibm | Wiederanlaufkennzeichnungsmechanismus für fehlertolerierende Systeme. |
| US5257354A (en) * | 1991-01-16 | 1993-10-26 | International Business Machines Corporation | System for monitoring and undoing execution of instructions beyond a serialization point upon occurrence of in-correct results |
| US5355457A (en) * | 1991-05-21 | 1994-10-11 | Motorola, Inc. | Data processor for performing simultaneous instruction retirement and backtracking |
-
1992
- 1992-07-21 EP EP19920112491 patent/EP0529303A3/en not_active Withdrawn
- 1992-07-29 JP JP4202291A patent/JPH0812617B2/ja not_active Expired - Lifetime
-
1994
- 1994-06-21 US US08/263,497 patent/US5495587A/en not_active Expired - Fee Related
-
1995
- 1995-06-07 US US08/480,107 patent/US5495590A/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| EP0529303A3 (en) | 1993-09-22 |
| US5495590A (en) | 1996-02-27 |
| JPH05210526A (ja) | 1993-08-20 |
| US5495587A (en) | 1996-02-27 |
| EP0529303A2 (en) | 1993-03-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH05210526A (ja) | 命令の並行処理を可能にするチェックポイント同期化 | |
| US6237081B1 (en) | Queuing method and apparatus for facilitating the rejection of sequential instructions in a processor | |
| US7478276B2 (en) | Method for checkpointing instruction groups with out-of-order floating point instructions in a multi-threaded processor | |
| US5584009A (en) | System and method of retiring store data from a write buffer | |
| US4912707A (en) | Checkpoint retry mechanism | |
| US5471598A (en) | Data dependency detection and handling in a microprocessor with write buffer | |
| US6854051B2 (en) | Cycle count replication in a simultaneous and redundantly threaded processor | |
| US8327188B2 (en) | Hardware transactional memory acceleration through multiple failure recovery | |
| JP2597811B2 (ja) | データ処理システム | |
| US5666506A (en) | Apparatus to dynamically control the out-of-order execution of load/store instructions in a processor capable of dispatchng, issuing and executing multiple instructions in a single processor cycle | |
| US7721076B2 (en) | Tracking an oldest processor event using information stored in a register and queue entry | |
| EP0505706B1 (en) | Alternate processor continuation of the task of a failed processor | |
| US7159154B2 (en) | Technique for synchronizing faults in a processor having a replay system | |
| US5930832A (en) | Apparatus to guarantee TLB inclusion for store operations | |
| US6754856B2 (en) | Memory access debug facility | |
| US9513925B2 (en) | Marking long latency instruction as branch in pending instruction table and handle as mis-predicted branch upon interrupting event to return to checkpointed state | |
| JPH05303492A (ja) | データ処理装置 | |
| JPH0812618B2 (ja) | 再試行及びチェックポイント設定によるエラー回復装置及び方法 | |
| US6457119B1 (en) | Processor instruction pipeline with error detection scheme | |
| WO2006012103A2 (en) | Method and apparatus for speculative execution of uncontended lock instructions | |
| EP0651331B1 (en) | A write buffer for a superpipelined, superscalar microprocessor | |
| US20010037447A1 (en) | Simultaneous and redundantly threaded processor branch outcome queue | |
| US6061777A (en) | Apparatus and method for reducing the number of rename registers required in the operation of a processor | |
| US20020023202A1 (en) | Load value queue input replication in a simultaneous and redundantly threaded processor | |
| US6715060B1 (en) | Utilizing a scoreboard with multi-bit registers to indicate a progression status of an instruction that retrieves data |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090519 Year of fee payment: 9 |
|
| FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110519 Year of fee payment: 11 |
|
| EXPY | Cancellation because of completion of term |