JP2003067184A - エラー・リカバリのためのスーパースカラ、アウトオブオーダ・プロセッサのチェックポインティング - Google Patents
エラー・リカバリのためのスーパースカラ、アウトオブオーダ・プロセッサのチェックポインティングInfo
- Publication number
- JP2003067184A JP2003067184A JP2002185571A JP2002185571A JP2003067184A JP 2003067184 A JP2003067184 A JP 2003067184A JP 2002185571 A JP2002185571 A JP 2002185571A JP 2002185571 A JP2002185571 A JP 2002185571A JP 2003067184 A JP2003067184 A JP 2003067184A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- data
- register
- instructions
- checkpoint
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000011084 recovery Methods 0.000 title claims abstract description 9
- 239000000872 buffer Substances 0.000 claims abstract description 56
- 238000012545 processing Methods 0.000 claims abstract description 11
- 238000000034 method Methods 0.000 claims description 22
- 101000574648 Homo sapiens Retinoid-inducible serine carboxypeptidase Proteins 0.000 claims description 5
- 102100025483 Retinoid-inducible serine carboxypeptidase Human genes 0.000 claims description 5
- 238000001514 detection method Methods 0.000 claims description 5
- 239000003292 glue Substances 0.000 claims description 5
- 230000011664 signaling Effects 0.000 claims description 5
- 238000012937 correction Methods 0.000 claims description 4
- 101001074449 Crotalus durissus terrificus Phospholipase A2 inhibitor CNF Proteins 0.000 claims description 3
- 230000001960 triggered effect Effects 0.000 claims description 3
- 108091008717 AR-A Proteins 0.000 claims description 2
- 230000007246 mechanism Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
- G06F9/30174—Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3863—Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Retry When Errors Occur (AREA)
- Executing Machine-Instructions (AREA)
Abstract
・リカバリを有するデータ処理システムを提供するこ
と。 【解決手段】 1サイクル毎に複数の命令をチェックポ
インティングするために、それぞれの複数のCISC/
RISC命令によって実行されるレジスタ内容の所定の
最大個数の更新を、チェックポイント状態用のバッファ
(CSB)(60)に収集し、これによって、チェック
ポイント状態が、前記複数のCISC命令によって更新
され得るレジスタと同数のバッファ・スロットと、前記
複数のCISC命令の最も若い外部命令に関連するプロ
グラム・カウンタ値の項目とを含み、レジスタ・データ
内でエラーが検出されないと判定された後に、前記複数
の外部命令の前記最も若い外部命令の完了の前または完
了と共に、新たに収集されたレジスタ・データを用いて
設計済みレジスタ・アレイ(ARA)(64)を更新す
ることとが提案される。
Description
提供するための、複数プロセッサ・データ処理システム
のチェックポインティング(checkpointing)の方法お
よびシステムに関する。
列性を可能にするために、複数の命令を、並列に実行
し、最終的にリタイヤ(retire)させることができる。
これは、CISCプロセッサの複雑な命令が複数のより
単純なRISC様命令に変換される場合と、1サイクル
毎に実行される命令の数(IPC)を高くしなければな
らない場合に必須である。これらの命令のリタイヤは、
設計済みレジスタ・アレイ(architected register arr
ay)の内容が、内部命令の結果によって更新され、対応
するストア・データが、キャッシュ/メモリにライト・
バックされることを意味する。プログラムによって与え
られる命令シーケンスを反映するために、リタイヤすな
わち命令の完了は、概念上の順序で発生する。したがっ
て、用語「若い」命令および「古い」命令は、それぞ
れ、命令シーケンス内で後にまたは早期に見つかる命令
を表す。チェックポインティングは、設計済みレジスタ
およびデータ・キャッシュに保管された対応するデータ
の状態のスナップショットが、ある頻度すなわち、固定
された時間間隔でとられることを意味する。スナップシ
ョットが、すべてのサイクルでとられる場合に、最高の
分解能が得られる。そのような従来技術のチェックポイ
ンティング方法が、米国特許第5418916号に開示
されている。チェックポイント再試行機能は、通常動作
中にストア・キューを確立し、再試行動作中にチェック
ポイント再試行に必要なデータを供給するために、スト
ア・バッファを使用する。そこにバッファリングされる
データには、浮動小数点レジスタ、汎用レジスタ、およ
びアクセス・レジスタのレジスタ・データと、プログラ
ム状況ワードも含まれる。
れのL1キャッシュに関連する複数のストア・バッファ
の助けを得て行われる。ストア・バッファのそれぞれ
は、ストレージ・データを、他のCPUがそのデータに
アクセスできるストレージ階層内の他の部分に解放でき
るようになるまで、そのストレージ・データを保持する
ための中間バッファとして使用される。
に、2つの情報ビットすなわち、「命令の終り(end of
instruction)」(EOI)ビットと「チェックポイン
ト完了(checkpoint complete)」(COMP)ビット
が、ストア・キュー設計に装備される。ストア・バッフ
ァ内のデータは、それに直接に関連するプロセッサだけ
が使用可能である。他のプロセッサは、このデータが、
すべての他のプロセッサの公用であるL2キャッシュま
たはメモリに書き込まれるまで、このデータにアクセス
することができない。しかし、この従来技術の手法は、
1サイクル毎に複数の外部命令(CISC)をチェック
ポインティングすることが必要な時に、弱みを有する。
すなわち、1サイクル毎に多くとも1つの命令しかチェ
ックポインティングすることができない。
目的は、1サイクル毎に複数の外部命令をチェックポイ
ンティングすることができる、スーパースカラ・システ
ムをチェックポインティングする改良された方法および
システムを提供することである。
ル毎にある(最大の)個数の内部RISC様命令をリタ
イヤでき、外部CISC命令を表す内部命令の数が固定
されておらず、たとえば動作コードに依存する場合に、
プロセッサの状態のチェックポインティングが、複数の
外部命令に基づく可能性がある。
外部命令ID40(EID)を有するCISC命令42
を、設計済みレジスタに作用する1つから4つまでの内
部命令44と、キャッシュ/メモリからのデータのフェ
ッチ(fetch)およびストアを扱う1つから4つまでの
ロード/ストア命令46に変換できると仮定する。
るという仮定は、プロセッサの状態のスナップショット
をすべてのサイクルにとる場合に、4つまでの外部CI
SC命令をチェックポインティングしなければならない
ことを意味する。
ポインティングは、レジスタ内容を、すべてのレジスタ
がマスタ・コピーを有するチェックポインティング・ア
レイにコピーすることによって行うことができる。スト
ア・データのチェックポインティングは、ストア・デー
タが低位(たとえばL1)キャッシュに最初にライト・
バックされる可能性があるが、チェックポイントの完了
時に高位キャッシュ・メモリ(たとえばL2)内で解放
される、メモリ階層に基づく可能性がある。レジスタ・
ベースの内部命令および対応するストア命令を、外部命
令に関係させることができることを保証するために、こ
れらの命令に、一意の命令識別子番号(ID)を用いて
タグを付けなければならない。
て、本発明の上述の目的が達成される。本発明のさらな
る有利な配置および実施形態は、それぞれの従属項に記
載されている。追加された請求項を参照してはならな
い。
リを達成するために、単一プロセッサまたは複数プロセ
ッサのデータ処理システムをチェックポインティングす
る方法であって、 a.)チェックポイント状態バッファ内のそれぞれの複
数のCISC/RISC命令によって実行される、レジ
スタ内容の所定の最大個数の更新、たとえば、最大4個
のレジスタ更新を収集するステップであって、チェック
ポイント状態が、前記複数の(CISCから導出され
た)命令によって更新され得るレジスタと同数のバッフ
ァリング・スロットと、前記複数のCICS命令の最も
若い外部命令に関連するプログラム・カウンタ値の項目
とを含む、ステップと、 b.)エラーがレジスタ・データ内で検出されなかった
ことを判定した後で、前記複数の外部命令の前記最も若
い外部命令の完了の前または完了と共に、新たに収集さ
れたレジスタ・データを用いて設計済みレジスタ・アレ
イ(ARA)を更新するステップとを特徴とする方法が
提供される。
スタに対して動作する複数の外部命令を含む命令シーケ
ンスを、1サイクル毎にチェックポインティングできる
ことをもたらす。
つまたは複数の外部CISC命令によって実行されるレ
ジスタ内容の更新が、前記チェックポイント状態を形成
することによって収集されるという発想に基づく。チェ
ックポイント状態は、1サイクル毎に1つまたは複数の
CISC命令によって更新され得るレジスタと同数のス
ロットからなることが好ましい。さらに、すべての命令
によって、プロセッサの状況、たとえばプログラム・カ
ウンタが更新される。複数の命令のチェックポインティ
ングのためには、最後の状況だけが重要であり、たとえ
ば、複数の外部CISC命令が同時に完了する場合に
は、外部命令のシーケンス内で最後に完了した完了によ
って、プログラム・カウンタが決定される。
場合には、このチェックポイント状態が、チェックポイ
ンティング・アレイの更新を実行するのに(最終的に)
使用される。この更新は、チェックポイント状態が作成
されてから数サイクル後に行われる可能性がある。チェ
ックポイント状態が、チェックポインティング・アレ
イ、たとえば上のARAの更新に最終的に使用されるま
で、複数のチェックポイント状態を、チェックポイント
状態バッファ(CSB)に収集することができ、CSB
には、すべてのサイクルに新しいチェックポイント状態
が収集される。プロセッサ内のエラーが検出される場合
には、チェックポインティング・アレイ更新機構が、即
座にブロックされ、したがって、破壊されたデータがチ
ェックポインティング・アレイを汚染しなくなる。
エラー検出および訂正(ECC)ビットを設けるステッ
プが含まれる時に、効率的で面積を節約するエラー訂正
機構が、ビット障害に対して設けられる。
タの、ストア・バッファ(STB)から設計済み状態キ
ャッシュ・メモリへの解放を制御する第2制御パスを、
前記ARA更新と並列に提供するステップと、 b)前記複数の命令の最も若い外部命令の外部命令ID
を用いて前記チェックポイント状態バッファ項目にタグ
を付けることによって、前記STOREデータ解放を前
記ARA更新と同期化するステップと、 c)最も若いIDより古いIDを有するデータだけを設
計済み状態キャッシュ・メモリに解放するステップとが
含まれる時に、上述のシーケンスに1つまたは複数のS
TORE命令も含めることができるという長所がもたら
される。したがって、レジスタ操作命令とキャッシュ操
作命令の混合されたシーケンスを、1サイクル毎にチェ
ックポインティングすることができる。したがって、こ
の発明的概念は、レジスタ更新命令だけに焦点を合わせ
るように制限はされない。
メモリへのデータのストアの間の同期化に関する基本的
な発想は、すべてのチェックポイント状態が、チェック
ポインティングされるシーケンス内の最後の外部命令の
IDを用いてタグを付けられるということである。スト
ア・データは、対応する命令IDのIDを用いてタグを
付けられる。すべてのSTOREデータは、キャッシュ
/メモリに解放されるまで前記ストア・バッファに保持
される。同期化が得られるのは、チェックポインティン
グ・アレイの更新に使用された最後のチェックポイント
状態のIDと比較してより古いか等しいIDを所有する
STOREデータだけが、システム・メモリ(すなわち
L2キャッシュ)に解放される場合である。まだチェッ
クポインティング・アレイにチェックポインティングさ
れていない命令に対応するストア・データは、対応する
チェックポイント状態がチェックポインティング・アレ
イの更新に使用されるまで、ストア・バッファに保持さ
れる。したがって、チェックポインティング・アレイの
内容およびシステム・メモリに保管されたデータが、い
つでも一貫性を有することが保証される。プロセッサの
内部でエラーが発生する場合に、破壊されたデータは、
システム・メモリに入っていない。リカバリで、チェッ
クポインティング・アレイを使用し、プロセッサ状態、
たとえばプログラム・カウンタを復元することによっ
て、設計済みレジスタが復元される場合に、そのプロセ
ッサは、システム・メモリ内のデータに損傷を与えず
に、プログラム実行を再始動することができる。
新制御とSTOREデータ解放制御の間のダブル・ハン
ドシェーク動作であって、 a)少なくとも最も若い外部命令に関連するそれぞれの
STOREデータが前記ストア・キューに常駐する時
に、前記最も若い外部命令のIDを前記ARA更新制御
にシグナリングする第1ステップであって、これによっ
て、前記シグナリングされる最も若い外部命令のIDと
比較してより古いIDを有するレジスタ命令を含むAR
A更新がトリガされる、第1ステップと、 b)最も新しいARA更新に関連する最も若い外部命令
IDをSTOREデータ解放制御にシグナリングし、し
たがって、前記ストア・バッファから前記設計済み状態
キャッシュ・メモリへのSTOREデータ解放をトリガ
する第2ステップであって、前記解放が、前記シグナリ
ングされる最も若い外部命令のIDと比較してより古い
IDを有する命令から生じるSTOREデータを含む、
第2ステップとを含むダブル・ハンドシェーク動作が含
まれる時に、同期化の好ましい方法が提供される。とい
うのは、これによって、効率的で一貫性のあるチェック
ポインティング・システムが提供されるからである。さ
らなる詳細を、下で図6に関して示す。
命令によって、たとえばチェックポイント状態バッファ
内の16個までのレジスタを更新するLOAD MUL
TIPLE命令として実行される、所定の拡張された最
大個数のレジスタ内容の更新、たとえば最大16個のレ
ジスタ更新を収集するように有利に拡張することがで
き、この拡張は、 a)レジスタ更新データを受け取るために、それぞれの
拡張された複数のチェックポイント状態バッファ項目、
たとえば16/4=4項目を予約するステップと、 b)グルー・ビットを用いて、1つの同一の複雑な外部
命令に関連する後続項目をマークするステップと、 c)複数のサイクルのアトミック・オペレーションで、
このように拡張されたチェックポイント状態を更新する
ステップとを提供することによることが好ましい。
令に変換される必要がある非常に複雑な外部CISC命
令を、アトミックな形すなわち、成功裡に完了されるか
全く開始されない形であるが、たとえばチェックポイン
ト・サイクル中の電源障害などの動作障害がないと仮定
して、複数のサイクル以内に、チェックポインティング
することができる。
テップを実行する論理回路手段を有するプロセッサ・ユ
ニットを提供し、所定の最大個数のレジスタ内容の更新
を収集する手段が、それぞれが命令ID、ターゲット・
レジスタ・アドレス、ターゲット・レジスタ・データ、
およびプログラム・カウンタを含むことが好ましい複数
の項目を有するチェックポイント状態バッファであるよ
うにすることが好ましい。論理チェックポイント状態
に、複数の、好ましくは4つの、そのような項目が含ま
れる(図2から4を参照されたい)。
1つのレジスタを更新することができ(これはしばしば
発生する)、バッファは、4つまでの内部命令を受け取
るのに十分な大きさである。このCBSバッファ編成
は、面積消費と、向上したランタイム安定性によって暗
示される性能利得との間のよい妥協であることがわかっ
た。
外部CISC命令をチェックポインティングする新しい
方式を提案し、設計済みレジスタ内容とキャッシュ/シ
ステム・メイン・メモリに保管されたデータとの間の一
貫性を保証することを諒解するであろう。
添付図面の図の形状によって制限されない。
特に図2を参照すると、発明的概念を例示するために、
例示的プロセッサ・アーキテクチャが選択されている。
これは、レジスタ・データが、キャッシュにストアまた
はロードされるデータと別に操作されるプロセッサ・ア
ーキテクチャである。レジスタ・データ「ストリーム」
が、命令ウィンドウ・バッファ(Instruction Window B
uffer、IWB)と称するプロセッサ部分で操作され、
ストアまたはロードのデータ「ストリーム」が、異なる
部分すなわちストレージ・ウィンドウ・バッファ(Stor
age Window Buffer、SWB)で操作される。チェック
ポインティングを考える時には、両方のデータ・ストリ
ームが、一貫性を有するようにしなければならない。し
かし、この発明的概念は、チェックポインティング制御
が他のシステム・メモリ・データとの一貫性を有するレ
ジスタ・データを保持することが必要である限り、おそ
らくデータ分離の他の判断基準に従う異なる方式を実施
する他のすべてのタイプのプロセッサ・アーキテクチャ
を包含することを理解されたい。
クチャに有利なチェックポイント状態定義を、詳細に説
明する。
に更新され得るレジスタと同数のスロットが含まれる。
したがって、1例では、1つのCISC命令が、4つの
レジスタのうちの複数を更新することができる。したが
って、チェックポイント状態に、4つのスロットすなわ
ち、スロット0、スロット1、スロット2、およびスロ
ット3と、プログラム・カウンタを保管するための追加
のスロットが含まれる。4つのターゲット・スロットの
それぞれに、レジスタ・アドレス10およびそれぞれの
レジスタ・データ12が含まれる。
用いて、4つまでの外部CISC命令を表す4つの内部
命令を、1サイクル毎にリタイヤすることができる。こ
れは、すべてのサイクルに4つまでのレジスタが更新さ
れることを意味する。さらに、すべての命令によって、
プロセッサの状態、たとえばスロットに保管されるプロ
グラム・カウンタ14が更新される。
ティングのためには、最終的な状況だけが重要である、
すなわち、複数の外部CISC命令が同時に完了される
場合に、プログラム・カウンタは、外部命令のシーケン
ス内で最後に完了された命令によって決定される。
び4に関して説明する。
参照されたい)が、上側の表の4行に対応する4つのR
ISC様命令に変換されるが、このCISC命令では、
第1および第3のRISC命令によって2つのターゲッ
ト・レジスタに書き込む。したがって、これが、チェッ
クポイント状態の2スロットを占め、下側の部分で、左
端の2つのスロットが、図1に示されたように構成され
る。プログラム・カウンタ14によって、次の順次命令
の命令アドレスが決定される。チェックポイント状態の
2つのスロット(すなわち左端の2スロット)が、使用
され、有効ビットによってマークされる。
CISC命令CISC#0、…、CISC#2が、4つ
のRISC様命令に変換されると仮定する。具体的に言
うと、最初のCISC#0命令が、図4の上部の上の2
つの行に対応する2つの命令に変換され、それに続くC
ISC#1命令およびCISC#2命令が、それぞれが
表の1つの行だけを占める単一のRISC様命令によっ
て表される。このシーケンスでは、4つのレジスタが更
新され、したがって、対応するチェックポイント状態
は、4つすなわち使用可能なすべてのスロットを使用す
る。このチェックポイントの状況情報は、このチェック
ポインティングされたCISC命令のシーケンスの最後
の命令から導出される、すなわち、プログラム・カウン
タが、第3の命令であるCISC#2から抽出される。
の同期化機構(ダブル・ハンドシェーク)特徴が開示さ
れており、これは、たとえば命令オペランドなどのレジ
スタ・データおよびたとえばメモリに保管される変数な
どの上述のSTOREデータが、1つの同一のCISC
命令によって使用される、マイクロプロセッサ・アーキ
テクチャに有利に適用することができる。
(基本については図2を参照されたい)が、チェックポ
インティングされたシーケンスの最後の外部命令の命令
ID40を用いて有利にタグを付けられる。これを、図
5および図6に示す。
STOREデータが含まれる。この例示的なSTORE
データ処理アーキテクチャでは、たとえばプログラム変
数に関連するデータなどのデータが、ストア・キュー
(STQ)62から来る。STOREデータは、ストア
スルー(またはライトスルー)L1キャッシュ61aお
よびECC生成61bに送られ、ECC生成61bは、
たとえば4ワードをカバーし、新しいSTOREデータ
を含む完全なL1キャッシュ・ラインに有利に対応し、
STOREデータは、その後、命令実行の後にECC処
理される。その後、それぞれのECC生成61bが、ス
トア・バッファ65内でエラーなしでバッファリングさ
れ、ストア・バッファ65は、やはりL1キャッシュ部
分に配置できることが好ましいが、代替案ではL1キャ
ッシュ部分の近くに配置される。
6またはメモリ階層の他の適合された部分に、レジスタ
・データの解放と同期化された形で解放される。前記S
TOREデータ処理は、ECC処理中に最終的に訂正さ
れる可能性があるデータが、オフ・チップで、たとえば
L2キャッシュ内に配置されるデータのECC処理と比
較してより高速にオンチップで完全に処理されるので、
好ましい。しかし、左側のIWB部分に、チェックポイ
ント状態バッファ(CSB)60および基本的にチェッ
クポインティング・アレイ64が含まれ、チェックポイ
ンティング・アレイ64には、エラー検出されエラー訂
正された設計済みレジスタ・データ(error-checked an
d error-corrected architected Register)が含まれ
る。したがって、これを、(ECC−ARA)と略す。
64(ECC−ARA)へのチェックポインティング
は、アトミック手順で行われる。「アトミック」は、1
つまたは複数のプロセッサの信頼性のあるリセット点を
保証するために、チェックポイント手順が、完全に行わ
れるすなわち成功裡に完了すると期待されなければなら
ず、さもなければ、開始されることすら許可されないこ
とを意味する。
限り、チェックポインティング・アレイ64のECC−
ARAへの読取アクセスもECC−ARAに関連するリ
セット機能も不可能である。これによって、完了した外
部命令だけがECC−ARAにチェックポインティング
されることが保証される。
・アレイ64の更新と対応する「設計済み」メモリ部
分、L2キャッシュ66の更新の間の好ましい同期化
(ダブル・ハンドシェーク)方式は、次の通りである。
チェックポインティング・アレイ64に保管されたレジ
スタ内容をL2キャッシュ66に保管されたデータと同
期化するために、STQ62とCSB60の間で第1の
同期化が確立され、チェックポインティング・アレイ6
4(の制御ロジック)とストア・バッファ65の間でも
う1つの第2の同期化が確立される。
インティングは、完全なチェックポイント状態がCSB
60内で使用可能である場合に、必ず発生する。したが
って、すべてのデータ、具体的には図3および図4に関
して上で説明したレジスタ・アドレス10およびレジス
タ・データ12が、存在しなければならない。
かる場合に、命令識別子IDが、CSB60にシグナル
され(第1ハンドシェーク信号の矢印68を参照された
い)、そのチェックポイント状態を、チェックポインテ
ィング・アレイ64(ECC−ARA)にチェックポイ
ンティングできるようになる。したがって、これは、こ
れがそれに応じてシグナルされる時に読取についてCS
B60にアクセスし、読取/書込アクセスについてチェ
ックポインティング・アレイ64にアクセスするように
配置された読取ポート63を含む制御ロジックを介して
行われることが好ましい。
ティング・アレイ64に完全にチェックポインティング
された時に、対応するIDが、CSB60から、または
好ましくは読取ポート63を介してチェックポインティ
ング・アレイ64から読み出され、ECC保護されたS
OTREデータを含むストア・バッファ65に送られる
(第2ハンドシェーク信号の矢印69を参照された
い)。ストア・バッファ65のそれぞれの項目に保管さ
れたSTOREデータは、それぞれのIDがチェックポ
インティング・アレイ64から受け取られた場合に限っ
てL2キャッシュに解放される。したがって、これは、
IDを受け取った後に行われる。当業者が諒解できるよ
うに(これらの規則に従う時に)L2キャッシュ66の
メモリ内容は、必ず、チェックポインティング・アレイ
64で見つかるレジスタ・データとの一貫性を有する。
同一の命令に関連するデータは、前記記憶手段すなわち
CSB60、チェックポインティング・アレイ64、S
TQ62、ストア・バッファ65、およびL2キャッシ
ュ66のそれぞれで同一のIDを有する。
ックポインティング・アレイ64の更新に使用された最
後のチェックポイント状態のIDと比較してより古いか
等しいIDを有する特定のSTOREデータが、システ
ム・メモリに解放される場合に限って得られる。まだチ
ェックポインティング・アレイにチェックポインティン
グされていない命令に対応するストア・データは、対応
するチェックポイント状態がチェックポインティング・
アレイ64の更新に使用されるまで保持される。したが
って、チェックポインティング・アレイの内容と、L2
キャッシュまたはメモリに保管されたデータが、いつで
も一貫性を有することが保証される。
に、破壊されたデータは、L2キャッシュまたはメモリ
に入っていない。リカバリで、チェックポインティング
・アレイ64を使用し、プロセッサ状態、たとえばプロ
グラム・カウンタを復元することによって設計済みレジ
スタが復元される場合に、プロセッサは、システム・メ
モリ内のデータに損傷を与えずにプログラム実行を再始
動することができ、L1キャッシュの内容をパージしな
ければならない。最後にチェックポインティングされた
命令のIDに関してより古いすべての項目も、ストア・
バッファ65内で消去されなければならないことに留意
されたい。
停止され、したがって、新しい命令がコミットされない
ことを追加しなければならない。これは、STQ62が
ストア・バッファ65にデータをストアするまでのプロ
セッサの停止につながる。
64の更新は、チェックポイント状態が作成されてから
数サイクル後に発生する可能性がある。この時間の間
に、チェックポイント状態がチェックポインティング・
アレイ64の一貫性のある更新に最終的に使用されるま
で、複数のチェックポイント状態(好ましくは1サイク
ル毎に1つ)を、前記チェックポイント状態バッファ
(CSB)に収集することができる。別に設けられ本発
明の対象ではないなんらかの従来技術のエラー検出ロジ
ックによるエラーの認識の際に、CSB60に保管され
た次のチェックポイント状態のチェックポインティング
が、即座にブロックされる。したがって、エラーが、チ
ェックポインティング・アレイ64に影響せず、L2キ
ャッシュに保管された「正しい」データを破壊しないこ
とが保証される。
部命令からなる非常に複雑な外部命令のためのチェック
ポイント状態の拡張を、さらに開示する。
発明の開示の利益を得ながら4つを超える内部命令に変
換する必要がある場合には、基本的な技術的発明的特徴
を放棄せず、それぞれの増加した数の内部命令を受け取
るためにはるかに広く、したがってより面積を消費する
CSB60を設けることに制限されずに、発明的方式を
拡張することができる。
は、最大4つの内部命令だけを1サイクル毎にリタイヤ
できる場合に、複数サイクルにわたって続く。これは、
すべてのサイクルに作成されるチェックポイント状態
が、1つの完全な外部命令を表さず、したがって、これ
をチェックポインティング・アレイの更新に使用しては
ならないことを意味する。
クポイント状態が、複雑な外部命令全体を表す単一の
「拡張チェックポイント状態(extended checkpoint st
ate)」を形成するとみなすという発想に基づく。
全なチェックポイント状態が、CSB60の複数の項目
を占める。前記複数の項目が、シーケンスを形成するこ
とが好ましい。ストア・バッファ65の各項目内のある
位置に設けられるグルー/リンク・ビット72によっ
て、ストア・バッファ65に保管された連続するチェッ
クポイント状態が拡張チェックポイント状態を形成する
ことをマークする(図7を参照されたい)。したがっ
て、ストア・バッファ65が、少なくとも、すべての可
能な完全なCISC命令の拡張チェックポイント状態を
表すのに必要なものと同数の項目を所有することが必要
である。
64の更新(図6を参照されたい)は、アトミック・オ
ペレーションが完全に更新されるまで割り込まれてはな
らない。
ーションが完全にチェックポインティングされるまで、
更新機構をブロックしてはならない。これは、拡張チェ
ックポイント状態のチェックポインティング・アレイ6
4へのチェックポインティングが、複数サイクルにわた
って続く場合があることも意味する。
示的実施形態に関して説明した。しかし、請求項に記載
された本発明の広義の趣旨および範囲から逸脱せずに、
さまざまな修正および変更を行えることは明白である。
したがって、本明細書および図面は、制限的な意味では
なく、例示的であるものとみなされなければならない。
イヤされる複数のCISC命令に関するチェックポイン
ティング・アレイ64などのチェックポインティング・
バッファ手段の内容を更新し、プロセッサ・レジスタ内
容およびシステム・メモリ内のデータの最も正確なチェ
ックポイントを達成するために、たとえばL2キャッシ
ュ66などのキャッシュ階層へのSTOREデータの解
放とチェックポインティング・バッファ手段の更新を同
期化する、新しく有利な方式を提案することを諒解する
であろう。チェックポインティングの正確な方法によっ
て、メモリに保管されたデータを破壊せずに、プロセッ
サ内のソフト・エラーまたはハード・エラーの検出時の
プロセッサのリカバリが可能になる。これは、高められ
たレベルのコンピューティング要件を満足するのに重要
とみなされる。
の事項を開示する。
複数プロセッサ・データ処理システムをチェックポイン
ティングする方法であって、 a)チェックポイント状態バッファ(60)内のそれぞ
れの複数のCISC(42)またはRISC(44、4
6)命令によって実行される、レジスタ内容(12)の
所定の最大個数の更新を収集するステップであって、チ
ェックポイント状態が、前記複数のCISC命令によっ
て更新され得るレジスタと同数のバッファリング・スロ
ットと、前記複数のCICS命令(42)の最も若い外
部命令に関連するプログラム・カウンタ値(14)の項
目とを含むステップと、 b)前記レジスタ・データ(10、12)内でエラーが
検出されなかったことを判定した後で、前記複数の外部
命令(42)の前記最も若い外部命令の完了の前または
完了と共に、現在収集されているレジスタ・データ(1
0、12)を用いて設計済みレジスタ・アレイ(AR
A)(64)を更新するステップとを特徴とする、方
法。 (2)前記ARA(64)項目にエラー検出および訂正
ビットを設けるステップをさらに含む、上記(1)に記
載の方法。 (3)複数のSTORE命令からの結果のSTOREデ
ータの、ストア・バッファ(65)から設計済み状態キ
ャッシュ・メモリ(66)への解放を制御する第2制御
パスを、前記ARA(64)更新と並列に提供するステ
ップと、前記複数の命令(42)の前記最も若い外部命
令の前記外部命令ID(40)を用いて前記チェックポ
イント状態バッファ(60)項目にタグを付けることに
よって、前記STOREデータ解放を前記ARA更新と
同期化するステップと、最も若いIDより古いかそれと
等しいID(40)を有するデータだけを設計済み状態
キャッシュ・メモリ(66)に解放するステップとをさ
らに含む、上記(1)に記載の方法。 (4)前記同期化ステップに、ARA更新制御(63)
とSTOREデータ解放制御の間のダブル・ハンドシェ
ーク動作であって、 a)少なくとも前記最も若い外部命令に関連するそれぞ
れのSTOREデータが前記ストア・バッファ(65)
に常駐する時に、前記最も若い外部命令ID(40)を
前記ARA更新制御(63)にシグナリング(68)す
る第1ステップであって、これによって、前記シグナリ
ングされる最も若い外部命令IDと比較してより古いI
Dを有するレジスタ命令を含むARA更新がトリガされ
る、第1ステップと、 b)最も新しいARA(64)更新に関連する前記最も
若い外部命令ID(40)をSTOREデータ解放制御
にシグナリング(69)し、したがって、前記ストア・
バッファ(65)から前記設計済み状態キャッシュ・メ
モリ(66)へのSTOREデータ解放をトリガする第
2ステップであって、前記解放が、前記シグナリングさ
れる最も若い外部命令IDと比較してより古いIDを有
する命令から生じるSTOREデータを含む、第2ステ
ップとを含むダブル・ハンドシェーク動作が含まれる、
上記(1)ないし(3)のいずれかに記載の方法。 (5)それぞれの複雑な外部命令によって実行される、
チェックポイント状態バッファ(60)内の所定の拡張
された最大個数のレジスタ内容の更新を収集するように
拡張され、 a)前記レジスタ更新データを受け取るために、それぞ
れの拡張された複数のチェックポイント状態バッファ
(60)項目を予約するステップと、 b)グルー・ビット(72)を用いて、1つの同一の複
雑な外部命令に関連する後続項目をマークするステップ
と、 c)複数のサイクルのアトミック・オペレーションで、
このように拡張されたチェックポイント状態を更新する
ステップとを含む、上記(1)に記載の方法。 (6)上記(1)ないし(5)のいずれか一項に記載の
方法のステップを実行する論理回路手段を有するプロセ
ッサ・ユニットであって、所定の最大個数のレジスタ内
容の更新を収集する手段が、それぞれが命令ID、ター
ゲット・レジスタ・アドレス、ターゲット・レジスタ・
データ、およびプログラム・カウンタを含む複数のバッ
ファ項目を含むチェックポイント状態バッファ(60)
(CSB)であり、これによって、チェックポイント状
態に、複数の、好ましくは4つの項目が含まれるプロセ
ッサ・ユニット。 (7)上記(6)に記載のプロセッサ・ユニットを有す
るコンピュータ・システム。
複数のRISC命令への変換の概念を示す概略図であ
る。
表現を示す図である。
変換されるCISC命令を含むチェックポイント状態の
概略表現を示す図である。
+1レジスタ更新に変換される、図2による表現を示す
図である。
命令のIDを用いてタグを付けられたチェックポイント
状態の概略表現を示す図である。
ングとSTOREデータ処理の同期化を示す概略表現図
である。
の原理を示す概略表現図である。
Claims (7)
- 【請求項1】エラーリカバリを提供するための、複数プ
ロセッサ・データ処理システムをチェックポインティン
グする方法であって、 a)チェックポイント状態バッファ(60)内のそれぞ
れの複数のCISC(42)またはRISC(44、4
6)命令によって実行される、レジスタ内容(12)の
所定の最大個数の更新を収集するステップであって、チ
ェックポイント状態が、前記複数のCISC命令によっ
て更新され得るレジスタと同数のバッファリング・スロ
ットと、前記複数のCICS命令(42)の最も若い外
部命令に関連するプログラム・カウンタ値(14)の項
目とを含むステップと、 b)前記レジスタ・データ(10、12)内でエラーが
検出されなかったことを判定した後で、前記複数の外部
命令(42)の前記最も若い外部命令の完了の前または
完了と共に、現在収集されているレジスタ・データ(1
0、12)を用いて設計済みレジスタ・アレイ(AR
A)(64)を更新するステップとを特徴とする、方
法。 - 【請求項2】前記ARA(64)項目にエラー検出およ
び訂正ビットを設けるステップをさらに含む、請求項1
に記載の方法。 - 【請求項3】複数のSTORE命令からの結果のSTO
REデータの、ストア・バッファ(65)から設計済み
状態キャッシュ・メモリ(66)への解放を制御する第
2制御パスを、前記ARA(64)更新と並列に提供す
るステップと、 前記複数の命令(42)の前記最も若い外部命令の前記
外部命令ID(40)を用いて前記チェックポイント状
態バッファ(60)項目にタグを付けることによって、
前記STOREデータ解放を前記ARA更新と同期化す
るステップと、 最も若いIDより古いかそれと等しいID(40)を有
するデータだけを設計済み状態キャッシュ・メモリ(6
6)に解放するステップとをさらに含む、請求項1に記
載の方法。 - 【請求項4】前記同期化ステップに、ARA更新制御
(63)とSTOREデータ解放制御の間のダブル・ハ
ンドシェーク動作であって、 a)少なくとも前記最も若い外部命令に関連するそれぞ
れのSTOREデータが前記ストア・バッファ(65)
に常駐する時に、前記最も若い外部命令ID(40)を
前記ARA更新制御(63)にシグナリング(68)す
る第1ステップであって、これによって、前記シグナリ
ングされる最も若い外部命令IDと比較してより古いI
Dを有するレジスタ命令を含むARA更新がトリガされ
る、第1ステップと、 b)最も新しいARA(64)更新に関連する前記最も
若い外部命令ID(40)をSTOREデータ解放制御
にシグナリング(69)し、したがって、前記ストア・
バッファ(65)から前記設計済み状態キャッシュ・メ
モリ(66)へのSTOREデータ解放をトリガする第
2ステップであって、前記解放が、前記シグナリングさ
れる最も若い外部命令IDと比較してより古いIDを有
する命令から生じるSTOREデータを含む、第2ステ
ップとを含むダブル・ハンドシェーク動作が含まれる、
請求項1ないし3のいずれかに記載の方法。 - 【請求項5】それぞれの複雑な外部命令によって実行さ
れる、チェックポイント状態バッファ(60)内の所定
の拡張された最大個数のレジスタ内容の更新を収集する
ように拡張され、 a)前記レジスタ更新データを受け取るために、それぞ
れの拡張された複数のチェックポイント状態バッファ
(60)項目を予約するステップと、 b)グルー・ビット(72)を用いて、1つの同一の複
雑な外部命令に関連する後続項目をマークするステップ
と、 c)複数のサイクルのアトミック・オペレーションで、
このように拡張されたチェックポイント状態を更新する
ステップとを含む、請求項1に記載の方法。 - 【請求項6】請求項1ないし5のいずれか一項に記載の
方法のステップを実行する論理回路手段を有するプロセ
ッサ・ユニットであって、 所定の最大個数のレジスタ内容の更新を収集する手段
が、それぞれが命令ID、ターゲット・レジスタ・アド
レス、ターゲット・レジスタ・データ、およびプログラ
ム・カウンタを含む複数のバッファ項目を含むチェック
ポイント状態バッファ(60)(CSB)であり、 これによって、チェックポイント状態に、複数の、好ま
しくは4つの項目が含まれるプロセッサ・ユニット。 - 【請求項7】請求項6に記載のプロセッサ・ユニットを
有するコンピュータ・システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP01115448-1 | 2001-06-27 | ||
EP01115448 | 2001-06-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003067184A true JP2003067184A (ja) | 2003-03-07 |
JP3663393B2 JP3663393B2 (ja) | 2005-06-22 |
Family
ID=8177831
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002185571A Expired - Fee Related JP3663393B2 (ja) | 2001-06-27 | 2002-06-26 | 複数プロセッサ・データ処理システムをチェックポインティングする方法、プロセッサ・ユニットおよびコンピュータ・システム |
Country Status (2)
Country | Link |
---|---|
US (1) | US6968476B2 (ja) |
JP (1) | JP3663393B2 (ja) |
Families Citing this family (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6834358B2 (en) * | 2001-03-28 | 2004-12-21 | Ncr Corporation | Restartable database loads using parallel data streams |
US6981104B2 (en) * | 2002-07-12 | 2005-12-27 | Hewlett-Packard Development Company, L.P. | Method for conducting checkpointing within a writeback cache |
US7478276B2 (en) * | 2005-02-10 | 2009-01-13 | International Business Machines Corporation | Method for checkpointing instruction groups with out-of-order floating point instructions in a multi-threaded processor |
US7478278B2 (en) * | 2005-04-14 | 2009-01-13 | International Business Machines Corporation | Template based parallel checkpointing in a massively parallel computer system |
US7480836B2 (en) * | 2005-04-25 | 2009-01-20 | Hewlett-Packard Development Company, L.P. | Monitoring error-handler vector in architected memory |
US7409589B2 (en) * | 2005-05-27 | 2008-08-05 | International Business Machines Corporation | Method and apparatus for reducing number of cycles required to checkpoint instructions in a multi-threaded processor |
US8209524B2 (en) | 2005-08-29 | 2012-06-26 | The Invention Science Fund I, Llc | Cross-architecture optimization |
US8402257B2 (en) | 2005-08-29 | 2013-03-19 | The Invention Science Fund I, PLLC | Alteration of execution of a program in response to an execution-optimization information |
US7647487B2 (en) | 2005-08-29 | 2010-01-12 | Searete, Llc | Instruction-associated processor resource optimization |
US8423824B2 (en) | 2005-08-29 | 2013-04-16 | The Invention Science Fund I, Llc | Power sparing synchronous apparatus |
US20070050605A1 (en) * | 2005-08-29 | 2007-03-01 | Bran Ferren | Freeze-dried ghost pages |
US8181004B2 (en) * | 2005-08-29 | 2012-05-15 | The Invention Science Fund I, Llc | Selecting a resource management policy for a resource available to a processor |
US7627739B2 (en) | 2005-08-29 | 2009-12-01 | Searete, Llc | Optimization of a hardware resource shared by a multiprocessor |
US7607042B2 (en) * | 2005-08-29 | 2009-10-20 | Searete, Llc | Adjusting a processor operating parameter based on a performance criterion |
US8255745B2 (en) * | 2005-08-29 | 2012-08-28 | The Invention Science Fund I, Llc | Hardware-error tolerant computing |
US8516300B2 (en) | 2005-08-29 | 2013-08-20 | The Invention Science Fund I, Llc | Multi-votage synchronous systems |
US7779213B2 (en) * | 2005-08-29 | 2010-08-17 | The Invention Science Fund I, Inc | Optimization of instruction group execution through hardware resource management policies |
US8214191B2 (en) * | 2005-08-29 | 2012-07-03 | The Invention Science Fund I, Llc | Cross-architecture execution optimization |
US7774558B2 (en) | 2005-08-29 | 2010-08-10 | The Invention Science Fund I, Inc | Multiprocessor resource optimization |
US7725693B2 (en) | 2005-08-29 | 2010-05-25 | Searete, Llc | Execution optimization using a processor resource management policy saved in an association with an instruction group |
US7739524B2 (en) * | 2005-08-29 | 2010-06-15 | The Invention Science Fund I, Inc | Power consumption management |
US7877584B2 (en) * | 2005-08-29 | 2011-01-25 | The Invention Science Fund I, Llc | Predictive processor resource management |
US7653834B2 (en) | 2005-08-29 | 2010-01-26 | Searete, Llc | Power sparing synchronous apparatus |
US7877630B1 (en) * | 2005-09-28 | 2011-01-25 | Oracle America, Inc. | Trace based rollback of a speculatively updated cache |
US8015359B1 (en) | 2005-09-28 | 2011-09-06 | Oracle America, Inc. | Method and system for utilizing a common structure for trace verification and maintaining coherency in an instruction processing circuit |
US7870369B1 (en) | 2005-09-28 | 2011-01-11 | Oracle America, Inc. | Abort prioritization in a trace-based processor |
US7937564B1 (en) | 2005-09-28 | 2011-05-03 | Oracle America, Inc. | Emit vector optimization of a trace |
US8019944B1 (en) * | 2005-09-28 | 2011-09-13 | Oracle America, Inc. | Checking for a memory ordering violation after a speculative cache write |
US8370576B1 (en) * | 2005-09-28 | 2013-02-05 | Oracle America, Inc. | Cache rollback acceleration via a bank based versioning cache ciruit |
US8024522B1 (en) * | 2005-09-28 | 2011-09-20 | Oracle America, Inc. | Memory ordering queue/versioning cache circuit |
US7953961B1 (en) | 2005-09-28 | 2011-05-31 | Oracle America, Inc. | Trace unit with an op path from a decoder (bypass mode) and from a basic-block builder |
US8499293B1 (en) | 2005-09-28 | 2013-07-30 | Oracle America, Inc. | Symbolic renaming optimization of a trace |
US8051247B1 (en) * | 2005-09-28 | 2011-11-01 | Oracle America, Inc. | Trace based deallocation of entries in a versioning cache circuit |
US8032710B1 (en) | 2005-09-28 | 2011-10-04 | Oracle America, Inc. | System and method for ensuring coherency in trace execution |
US7966479B1 (en) | 2005-09-28 | 2011-06-21 | Oracle America, Inc. | Concurrent vs. low power branch prediction |
US7546420B1 (en) | 2005-09-28 | 2009-06-09 | Sun Microsystems, Inc. | Efficient trace cache management during self-modifying code processing |
US8037285B1 (en) | 2005-09-28 | 2011-10-11 | Oracle America, Inc. | Trace unit |
US7987342B1 (en) | 2005-09-28 | 2011-07-26 | Oracle America, Inc. | Trace unit with a decoder, a basic-block cache, a multi-block cache, and sequencer |
US7949854B1 (en) | 2005-09-28 | 2011-05-24 | Oracle America, Inc. | Trace unit with a trace builder |
WO2007089545A2 (en) * | 2006-01-31 | 2007-08-09 | Searete Llc | Handling processor computational errors |
US8370609B1 (en) | 2006-09-27 | 2013-02-05 | Oracle America, Inc. | Data cache rollbacks for failed speculative traces with memory operations |
US8010745B1 (en) * | 2006-09-27 | 2011-08-30 | Oracle America, Inc. | Rolling back a speculative update of a non-modifiable cache line |
US8341352B2 (en) * | 2007-04-17 | 2012-12-25 | International Business Machines Corporation | Checkpointed tag prefetcher |
US8131951B2 (en) * | 2008-05-30 | 2012-03-06 | Freescale Semiconductor, Inc. | Utilization of a store buffer for error recovery on a store allocation cache miss |
US8381032B2 (en) * | 2008-08-06 | 2013-02-19 | O'shantel Software L.L.C. | System-directed checkpointing implementation using a hypervisor layer |
US7853827B2 (en) * | 2008-08-29 | 2010-12-14 | International Business Machines Corporation | Isotropic processor |
US8533572B2 (en) * | 2010-09-24 | 2013-09-10 | Intel Corporation | Error correcting code logic for processor caches that uses a common set of check bits |
US9298521B1 (en) * | 2013-04-29 | 2016-03-29 | Seagate Technology Llc | Command sets and functions |
US10152396B2 (en) | 2014-05-05 | 2018-12-11 | Oracle International Corporation | Time-based checkpoint target for database media recovery |
US10713174B2 (en) * | 2016-12-20 | 2020-07-14 | Texas Instruments Incorporated | Streaming engine with early and late address and loop count registers to track architectural state |
US10838733B2 (en) * | 2017-04-18 | 2020-11-17 | International Business Machines Corporation | Register context restoration based on rename register recovery |
US10782979B2 (en) | 2017-04-18 | 2020-09-22 | International Business Machines Corporation | Restoring saved architected registers and suppressing verification of registers to be restored |
US11010192B2 (en) | 2017-04-18 | 2021-05-18 | International Business Machines Corporation | Register restoration using recovery buffers |
US10963261B2 (en) | 2017-04-18 | 2021-03-30 | International Business Machines Corporation | Sharing snapshots across save requests |
US20190391856A1 (en) * | 2018-06-26 | 2019-12-26 | Intel Corporation | Synchronization of multiple queues |
US11188516B2 (en) | 2018-08-24 | 2021-11-30 | Oracle International Corproation | Providing consistent database recovery after database failure for distributed databases with non-durable storage leveraging background synchronization point |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6115730A (en) * | 1996-02-28 | 2000-09-05 | Via-Cyrix, Inc. | Reloadable floating point unit |
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 |
US6581155B1 (en) * | 1999-08-25 | 2003-06-17 | National Semiconductor Corporation | Pipelined, superscalar floating point unit having out-of-order execution capability and processor employing the same |
JP3327283B2 (ja) * | 2000-03-10 | 2002-09-24 | ヤマハ株式会社 | ディジタルシグナルプロセッサ |
US6810489B1 (en) * | 2000-09-06 | 2004-10-26 | Hewlett-Packard Development Company, L.P. | Checkpoint computer system utilizing a FIFO buffer to re-synchronize and recover the system on the detection of an error |
-
2002
- 2002-06-26 US US10/180,385 patent/US6968476B2/en not_active Expired - Lifetime
- 2002-06-26 JP JP2002185571A patent/JP3663393B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20030005265A1 (en) | 2003-01-02 |
JP3663393B2 (ja) | 2005-06-22 |
US6968476B2 (en) | 2005-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2003067184A (ja) | エラー・リカバリのためのスーパースカラ、アウトオブオーダ・プロセッサのチェックポインティング | |
CN100489801C (zh) | 纠正软错误的固件机制 | |
US10909006B2 (en) | Main processor error detection using checker processors | |
EP1966697B1 (en) | Software assisted nested hardware transactions | |
JP3706586B2 (ja) | マルチプロセッシングの方法及びシステム | |
US6640313B1 (en) | Microprocessor with high-reliability operating mode | |
US6615366B1 (en) | Microprocessor with dual execution core operable in high reliability mode | |
KR100382126B1 (ko) | 오예측 이후에 재실행될 수 있는 명령어를 홀드하기 위한 파이프라인 외부의 트레이스 버퍼 | |
CN101601009B (zh) | 处理器及在其中执行指令的方法 | |
US20080163255A1 (en) | Core sparing on multi-core platforms | |
KR20010033242A (ko) | 실행 파이프라인 외부에 복수의 프로그램 카운터 및트레이스 버퍼를 구비한 프로세서 | |
CN103842959A (zh) | 在计算机系统中维持操作数活性信息 | |
KR20010024751A (ko) | 비순서적 멀티스레드 실행을 수행하는 적재 및 저장명령어를 배열하기 위한 시스템 | |
US8583900B2 (en) | Register renaming table recovery method and system for use in a processor | |
JP3808314B2 (ja) | 長レイテンシ命令に対する命令属性およびステータス情報を示す処理システムおよび方法 | |
US7200742B2 (en) | System and method for creating precise exceptions | |
US8713361B2 (en) | Error protection for pipeline resources | |
US7069411B1 (en) | Mapper circuit with backup capability | |
JP3170472B2 (ja) | レジスタ・リマップ構造を有する情報処理システム及び方法 | |
JP4155052B2 (ja) | エミュレータ、エミュレーション方法およびプログラム | |
JP3988740B2 (ja) | 並列処理装置、命令再試行方法、およびプログラム | |
JP2000259411A (ja) | プロセッサ | |
GB2456891A (en) | Updating corrupted local working registers in a multi-staged pipelined execution unit by refreshing from the last state hold a global checkpoint array | |
JP2003015956A (ja) | 障害回復機能を備えたキャッシュシステムとそのキャッシュ制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050112 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050118 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050222 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050315 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050328 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090401 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090401 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100401 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110401 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110401 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120401 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130401 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130401 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140401 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |