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
Application number
JP2002185571A
Other languages
English (en)
Other versions
JP3663393B2 (ja
Inventor
Harry Stefan Dr Barowski
ドクトル・ハリー・シュテファン・バロフスキ
Hartmut Dr Schwermer
ドクトル・ハルトムート・シュヴェルマー
Hans-Werner Tast
ハンス=ヴェルナー・タスト
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2003067184A publication Critical patent/JP2003067184A/ja
Application granted granted Critical
Publication of JP3663393B2 publication Critical patent/JP3663393B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • G06F9/30174Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining memory consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3863Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent 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

(57)【要約】 (修正有) 【課題】 所与のチェックポイントからの組込みエラー
・リカバリを有するデータ処理システムを提供するこ
と。 【解決手段】 1サイクル毎に複数の命令をチェックポ
インティングするために、それぞれの複数のCISC/
RISC命令によって実行されるレジスタ内容の所定の
最大個数の更新を、チェックポイント状態用のバッファ
(CSB)(60)に収集し、これによって、チェック
ポイント状態が、前記複数のCISC命令によって更新
され得るレジスタと同数のバッファ・スロットと、前記
複数のCISC命令の最も若い外部命令に関連するプロ
グラム・カウンタ値の項目とを含み、レジスタ・データ
内でエラーが検出されないと判定された後に、前記複数
の外部命令の前記最も若い外部命令の完了の前または完
了と共に、新たに収集されたレジスタ・データを用いて
設計済みレジスタ・アレイ(ARA)(64)を更新す
ることとが提案される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、エラーリカバリを
提供するための、複数プロセッサ・データ処理システム
のチェックポインティング(checkpointing)の方法お
よびシステムに関する。
【0002】
【従来の技術】現代のプロセッサで高い命令レベルの並
列性を可能にするために、複数の命令を、並列に実行
し、最終的にリタイヤ(retire)させることができる。
これは、CISCプロセッサの複雑な命令が複数のより
単純なRISC様命令に変換される場合と、1サイクル
毎に実行される命令の数(IPC)を高くしなければな
らない場合に必須である。これらの命令のリタイヤは、
設計済みレジスタ・アレイ(architected register arr
ay)の内容が、内部命令の結果によって更新され、対応
するストア・データが、キャッシュ/メモリにライト・
バックされることを意味する。プログラムによって与え
られる命令シーケンスを反映するために、リタイヤすな
わち命令の完了は、概念上の順序で発生する。したがっ
て、用語「若い」命令および「古い」命令は、それぞ
れ、命令シーケンス内で後にまたは早期に見つかる命令
を表す。チェックポインティングは、設計済みレジスタ
およびデータ・キャッシュに保管された対応するデータ
の状態のスナップショットが、ある頻度すなわち、固定
された時間間隔でとられることを意味する。スナップシ
ョットが、すべてのサイクルでとられる場合に、最高の
分解能が得られる。そのような従来技術のチェックポイ
ンティング方法が、米国特許第5418916号に開示
されている。チェックポイント再試行機能は、通常動作
中にストア・キューを確立し、再試行動作中にチェック
ポイント再試行に必要なデータを供給するために、スト
ア・バッファを使用する。そこにバッファリングされる
データには、浮動小数点レジスタ、汎用レジスタ、およ
びアクセス・レジスタのレジスタ・データと、プログラ
ム状況ワードも含まれる。
【0003】これは、基本的に、処理ユニットのそれぞ
れのL1キャッシュに関連する複数のストア・バッファ
の助けを得て行われる。ストア・バッファのそれぞれ
は、ストレージ・データを、他のCPUがそのデータに
アクセスできるストレージ階層内の他の部分に解放でき
るようになるまで、そのストレージ・データを保持する
ための中間バッファとして使用される。
【0004】ストレージ・データの解放を制御するため
に、2つの情報ビットすなわち、「命令の終り(end of
instruction)」(EOI)ビットと「チェックポイン
ト完了(checkpoint complete)」(COMP)ビット
が、ストア・キュー設計に装備される。ストア・バッフ
ァ内のデータは、それに直接に関連するプロセッサだけ
が使用可能である。他のプロセッサは、このデータが、
すべての他のプロセッサの公用であるL2キャッシュま
たはメモリに書き込まれるまで、このデータにアクセス
することができない。しかし、この従来技術の手法は、
1サイクル毎に複数の外部命令(CISC)をチェック
ポインティングすることが必要な時に、弱みを有する。
すなわち、1サイクル毎に多くとも1つの命令しかチェ
ックポインティングすることができない。
【0005】
【発明が解決しようとする課題】したがって、本発明の
目的は、1サイクル毎に複数の外部命令をチェックポイ
ンティングすることができる、スーパースカラ・システ
ムをチェックポインティングする改良された方法および
システムを提供することである。
【0006】
【課題を解決するための手段】プロセッサが、1サイク
ル毎にある(最大の)個数の内部RISC様命令をリタ
イヤでき、外部CISC命令を表す内部命令の数が固定
されておらず、たとえば動作コードに依存する場合に、
プロセッサの状態のチェックポインティングが、複数の
外部命令に基づく可能性がある。
【0007】紹介例を図1に示す。プロセッサの一意の
外部命令ID40(EID)を有するCISC命令42
を、設計済みレジスタに作用する1つから4つまでの内
部命令44と、キャッシュ/メモリからのデータのフェ
ッチ(fetch)およびストアを扱う1つから4つまでの
ロード/ストア命令46に変換できると仮定する。
【0008】最大4つの内部命令を同時にリタイヤでき
るという仮定は、プロセッサの状態のスナップショット
をすべてのサイクルにとる場合に、4つまでの外部CI
SC命令をチェックポインティングしなければならない
ことを意味する。
【0009】プロセッサの設計済みレジスタのチェック
ポインティングは、レジスタ内容を、すべてのレジスタ
がマスタ・コピーを有するチェックポインティング・ア
レイにコピーすることによって行うことができる。スト
ア・データのチェックポインティングは、ストア・デー
タが低位(たとえばL1)キャッシュに最初にライト・
バックされる可能性があるが、チェックポイントの完了
時に高位キャッシュ・メモリ(たとえばL2)内で解放
される、メモリ階層に基づく可能性がある。レジスタ・
ベースの内部命令および対応するストア命令を、外部命
令に関係させることができることを保証するために、こ
れらの命令に、一意の命令識別子番号(ID)を用いて
タグを付けなければならない。
【0010】添付の独立請求項に記載された特徴によっ
て、本発明の上述の目的が達成される。本発明のさらな
る有利な配置および実施形態は、それぞれの従属項に記
載されている。追加された請求項を参照してはならな
い。
【0011】最も広義の態様によれば、エラー・リカバ
リを達成するために、単一プロセッサまたは複数プロセ
ッサのデータ処理システムをチェックポインティングす
る方法であって、 a.)チェックポイント状態バッファ内のそれぞれの複
数のCISC/RISC命令によって実行される、レジ
スタ内容の所定の最大個数の更新、たとえば、最大4個
のレジスタ更新を収集するステップであって、チェック
ポイント状態が、前記複数の(CISCから導出され
た)命令によって更新され得るレジスタと同数のバッフ
ァリング・スロットと、前記複数のCICS命令の最も
若い外部命令に関連するプログラム・カウンタ値の項目
とを含む、ステップと、 b.)エラーがレジスタ・データ内で検出されなかった
ことを判定した後で、前記複数の外部命令の前記最も若
い外部命令の完了の前または完了と共に、新たに収集さ
れたレジスタ・データを用いて設計済みレジスタ・アレ
イ(ARA)を更新するステップとを特徴とする方法が
提供される。
【0012】したがって、この利点は、それぞれがレジ
スタに対して動作する複数の外部命令を含む命令シーケ
ンスを、1サイクル毎にチェックポインティングできる
ことをもたらす。
【0013】したがって、本発明は、1サイクル毎に1
つまたは複数の外部CISC命令によって実行されるレ
ジスタ内容の更新が、前記チェックポイント状態を形成
することによって収集されるという発想に基づく。チェ
ックポイント状態は、1サイクル毎に1つまたは複数の
CISC命令によって更新され得るレジスタと同数のス
ロットからなることが好ましい。さらに、すべての命令
によって、プロセッサの状況、たとえばプログラム・カ
ウンタが更新される。複数の命令のチェックポインティ
ングのためには、最後の状況だけが重要であり、たとえ
ば、複数の外部CISC命令が同時に完了する場合に
は、外部命令のシーケンス内で最後に完了した完了によ
って、プログラム・カウンタが決定される。
【0014】エラーがプログラム実行時に検出されない
場合には、このチェックポイント状態が、チェックポイ
ンティング・アレイの更新を実行するのに(最終的に)
使用される。この更新は、チェックポイント状態が作成
されてから数サイクル後に行われる可能性がある。チェ
ックポイント状態が、チェックポインティング・アレ
イ、たとえば上のARAの更新に最終的に使用されるま
で、複数のチェックポイント状態を、チェックポイント
状態バッファ(CSB)に収集することができ、CSB
には、すべてのサイクルに新しいチェックポイント状態
が収集される。プロセッサ内のエラーが検出される場合
には、チェックポインティング・アレイ更新機構が、即
座にブロックされ、したがって、破壊されたデータがチ
ェックポインティング・アレイを汚染しなくなる。
【0015】さらに、この発明的方法に、ARA項目に
エラー検出および訂正(ECC)ビットを設けるステッ
プが含まれる時に、効率的で面積を節約するエラー訂正
機構が、ビット障害に対して設けられる。
【0016】この発明的方法に、さらに、 a)複数のSTORE命令からの結果のSTOREデー
タの、ストア・バッファ(STB)から設計済み状態キ
ャッシュ・メモリへの解放を制御する第2制御パスを、
前記ARA更新と並列に提供するステップと、 b)前記複数の命令の最も若い外部命令の外部命令ID
を用いて前記チェックポイント状態バッファ項目にタグ
を付けることによって、前記STOREデータ解放を前
記ARA更新と同期化するステップと、 c)最も若いIDより古いIDを有するデータだけを設
計済み状態キャッシュ・メモリに解放するステップとが
含まれる時に、上述のシーケンスに1つまたは複数のS
TORE命令も含めることができるという長所がもたら
される。したがって、レジスタ操作命令とキャッシュ操
作命令の混合されたシーケンスを、1サイクル毎にチェ
ックポインティングすることができる。したがって、こ
の発明的概念は、レジスタ更新命令だけに焦点を合わせ
るように制限はされない。
【0017】チェックポイント状態更新とキャッシュ/
メモリへのデータのストアの間の同期化に関する基本的
な発想は、すべてのチェックポイント状態が、チェック
ポインティングされるシーケンス内の最後の外部命令の
IDを用いてタグを付けられるということである。スト
ア・データは、対応する命令IDのIDを用いてタグを
付けられる。すべてのSTOREデータは、キャッシュ
/メモリに解放されるまで前記ストア・バッファに保持
される。同期化が得られるのは、チェックポインティン
グ・アレイの更新に使用された最後のチェックポイント
状態のIDと比較してより古いか等しいIDを所有する
STOREデータだけが、システム・メモリ(すなわち
L2キャッシュ)に解放される場合である。まだチェッ
クポインティング・アレイにチェックポインティングさ
れていない命令に対応するストア・データは、対応する
チェックポイント状態がチェックポインティング・アレ
イの更新に使用されるまで、ストア・バッファに保持さ
れる。したがって、チェックポインティング・アレイの
内容およびシステム・メモリに保管されたデータが、い
つでも一貫性を有することが保証される。プロセッサの
内部でエラーが発生する場合に、破壊されたデータは、
システム・メモリに入っていない。リカバリで、チェッ
クポインティング・アレイを使用し、プロセッサ状態、
たとえばプログラム・カウンタを復元することによっ
て、設計済みレジスタが復元される場合に、そのプロセ
ッサは、システム・メモリ内のデータに損傷を与えず
に、プログラム実行を再始動することができる。
【0018】さらに、上の同期化ステップに、ARA更
新制御とSTOREデータ解放制御の間のダブル・ハン
ドシェーク動作であって、 a)少なくとも最も若い外部命令に関連するそれぞれの
STOREデータが前記ストア・キューに常駐する時
に、前記最も若い外部命令のIDを前記ARA更新制御
にシグナリングする第1ステップであって、これによっ
て、前記シグナリングされる最も若い外部命令のIDと
比較してより古いIDを有するレジスタ命令を含むAR
A更新がトリガされる、第1ステップと、 b)最も新しいARA更新に関連する最も若い外部命令
IDをSTOREデータ解放制御にシグナリングし、し
たがって、前記ストア・バッファから前記設計済み状態
キャッシュ・メモリへのSTOREデータ解放をトリガ
する第2ステップであって、前記解放が、前記シグナリ
ングされる最も若い外部命令のIDと比較してより古い
IDを有する命令から生じるSTOREデータを含む、
第2ステップとを含むダブル・ハンドシェーク動作が含
まれる時に、同期化の好ましい方法が提供される。とい
うのは、これによって、効率的で一貫性のあるチェック
ポインティング・システムが提供されるからである。さ
らなる詳細を、下で図6に関して示す。
【0019】この発明的概念を、それぞれの複雑な外部
命令によって、たとえばチェックポイント状態バッファ
内の16個までのレジスタを更新するLOAD MUL
TIPLE命令として実行される、所定の拡張された最
大個数のレジスタ内容の更新、たとえば最大16個のレ
ジスタ更新を収集するように有利に拡張することがで
き、この拡張は、 a)レジスタ更新データを受け取るために、それぞれの
拡張された複数のチェックポイント状態バッファ項目、
たとえば16/4=4項目を予約するステップと、 b)グルー・ビットを用いて、1つの同一の複雑な外部
命令に関連する後続項目をマークするステップと、 c)複数のサイクルのアトミック・オペレーションで、
このように拡張されたチェックポイント状態を更新する
ステップとを提供することによることが好ましい。
【0020】この特徴を用いると、4つを超える内部命
令に変換される必要がある非常に複雑な外部CISC命
令を、アトミックな形すなわち、成功裡に完了されるか
全く開始されない形であるが、たとえばチェックポイン
ト・サイクル中の電源障害などの動作障害がないと仮定
して、複数のサイクル以内に、チェックポインティング
することができる。
【0021】上で述べた変形形態の1つまたは複数のス
テップを実行する論理回路手段を有するプロセッサ・ユ
ニットを提供し、所定の最大個数のレジスタ内容の更新
を収集する手段が、それぞれが命令ID、ターゲット・
レジスタ・アドレス、ターゲット・レジスタ・データ、
およびプログラム・カウンタを含むことが好ましい複数
の項目を有するチェックポイント状態バッファであるよ
うにすることが好ましい。論理チェックポイント状態
に、複数の、好ましくは4つの、そのような項目が含ま
れる(図2から4を参照されたい)。
【0022】この形で、各内部命令によって、基本的に
1つのレジスタを更新することができ(これはしばしば
発生する)、バッファは、4つまでの内部命令を受け取
るのに十分な大きさである。このCBSバッファ編成
は、面積消費と、向上したランタイム安定性によって暗
示される性能利得との間のよい妥協であることがわかっ
た。
【0023】したがって、当業者は、本発明が、複数の
外部CISC命令をチェックポインティングする新しい
方式を提案し、設計済みレジスタ内容とキャッシュ/シ
ステム・メイン・メモリに保管されたデータとの間の一
貫性を保証することを諒解するであろう。
【0024】本発明を、例によって示すが、本発明は、
添付図面の図の形状によって制限されない。
【0025】
【発明の実施の形態】全般的に図面を参照し、ここでは
特に図2を参照すると、発明的概念を例示するために、
例示的プロセッサ・アーキテクチャが選択されている。
これは、レジスタ・データが、キャッシュにストアまた
はロードされるデータと別に操作されるプロセッサ・ア
ーキテクチャである。レジスタ・データ「ストリーム」
が、命令ウィンドウ・バッファ(Instruction Window B
uffer、IWB)と称するプロセッサ部分で操作され、
ストアまたはロードのデータ「ストリーム」が、異なる
部分すなわちストレージ・ウィンドウ・バッファ(Stor
age Window Buffer、SWB)で操作される。チェック
ポインティングを考える時には、両方のデータ・ストリ
ームが、一貫性を有するようにしなければならない。し
かし、この発明的概念は、チェックポインティング制御
が他のシステム・メモリ・データとの一貫性を有するレ
ジスタ・データを保持することが必要である限り、おそ
らくデータ分離の他の判断基準に従う異なる方式を実施
する他のすべてのタイプのプロセッサ・アーキテクチャ
を包含することを理解されたい。
【0026】次に、そのようなIWB/SWBアーキテ
クチャに有利なチェックポイント状態定義を、詳細に説
明する。
【0027】チェックポイント状態には、1サイクル毎
に更新され得るレジスタと同数のスロットが含まれる。
したがって、1例では、1つのCISC命令が、4つの
レジスタのうちの複数を更新することができる。したが
って、チェックポイント状態に、4つのスロットすなわ
ち、スロット0、スロット1、スロット2、およびスロ
ット3と、プログラム・カウンタを保管するための追加
のスロットが含まれる。4つのターゲット・スロットの
それぞれに、レジスタ・アドレス10およびそれぞれの
レジスタ・データ12が含まれる。
【0028】この例示的なチェックポイント状態定義を
用いて、4つまでの外部CISC命令を表す4つの内部
命令を、1サイクル毎にリタイヤすることができる。こ
れは、すべてのサイクルに4つまでのレジスタが更新さ
れることを意味する。さらに、すべての命令によって、
プロセッサの状態、たとえばスロットに保管されるプロ
グラム・カウンタ14が更新される。
【0029】本発明による複数の命令のチェックポイン
ティングのためには、最終的な状況だけが重要である、
すなわち、複数の外部CISC命令が同時に完了される
場合に、プログラム・カウンタは、外部命令のシーケン
ス内で最後に完了された命令によって決定される。
【0030】次に、2つの例を示し、それぞれ図3およ
び4に関して説明する。
【0031】あるCISC命令(図3の上側の第1列を
参照されたい)が、上側の表の4行に対応する4つのR
ISC様命令に変換されるが、このCISC命令では、
第1および第3のRISC命令によって2つのターゲッ
ト・レジスタに書き込む。したがって、これが、チェッ
クポイント状態の2スロットを占め、下側の部分で、左
端の2つのスロットが、図1に示されたように構成され
る。プログラム・カウンタ14によって、次の順次命令
の命令アドレスが決定される。チェックポイント状態の
2つのスロット(すなわち左端の2スロット)が、使用
され、有効ビットによってマークされる。
【0032】図4に示されたもう1つの例では、3つの
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から抽出される。
【0033】ここで図5および図6を参照すると、追加
の同期化機構(ダブル・ハンドシェーク)特徴が開示さ
れており、これは、たとえば命令オペランドなどのレジ
スタ・データおよびたとえばメモリに保管される変数な
どの上述のSTOREデータが、1つの同一のCISC
命令によって使用される、マイクロプロセッサ・アーキ
テクチャに有利に適用することができる。
【0034】基本的に、すべてのチェックポイント状態
(基本については図2を参照されたい)が、チェックポ
インティングされたシーケンスの最後の外部命令の命令
ID40を用いて有利にタグを付けられる。これを、図
5および図6に示す。
【0035】図6では、右側のSWB部分に、すべての
STOREデータが含まれる。この例示的なSTORE
データ処理アーキテクチャでは、たとえばプログラム変
数に関連するデータなどのデータが、ストア・キュー
(STQ)62から来る。STOREデータは、ストア
スルー(またはライトスルー)L1キャッシュ61aお
よびECC生成61bに送られ、ECC生成61bは、
たとえば4ワードをカバーし、新しいSTOREデータ
を含む完全なL1キャッシュ・ラインに有利に対応し、
STOREデータは、その後、命令実行の後にECC処
理される。その後、それぞれのECC生成61bが、ス
トア・バッファ65内でエラーなしでバッファリングさ
れ、ストア・バッファ65は、やはりL1キャッシュ部
分に配置できることが好ましいが、代替案ではL1キャ
ッシュ部分の近くに配置される。
【0036】その後、前記データが、L2キャッシュ6
6またはメモリ階層の他の適合された部分に、レジスタ
・データの解放と同期化された形で解放される。前記S
TOREデータ処理は、ECC処理中に最終的に訂正さ
れる可能性があるデータが、オフ・チップで、たとえば
L2キャッシュ内に配置されるデータのECC処理と比
較してより高速にオンチップで完全に処理されるので、
好ましい。しかし、左側のIWB部分に、チェックポイ
ント状態バッファ(CSB)60および基本的にチェッ
クポインティング・アレイ64が含まれ、チェックポイ
ンティング・アレイ64には、エラー検出されエラー訂
正された設計済みレジスタ・データ(error-checked an
d error-corrected architected Register)が含まれ
る。したがって、これを、(ECC−ARA)と略す。
【0037】一般に、チェックポインティング・アレイ
64(ECC−ARA)へのチェックポインティング
は、アトミック手順で行われる。「アトミック」は、1
つまたは複数のプロセッサの信頼性のあるリセット点を
保証するために、チェックポイント手順が、完全に行わ
れるすなわち成功裡に完了すると期待されなければなら
ず、さもなければ、開始されることすら許可されないこ
とを意味する。
【0038】一般に、チェックポイントが完了されない
限り、チェックポインティング・アレイ64のECC−
ARAへの読取アクセスもECC−ARAに関連するリ
セット機能も不可能である。これによって、完了した外
部命令だけがECC−ARAにチェックポインティング
されることが保証される。
【0039】具体的に言うと、チェックポインティング
・アレイ64の更新と対応する「設計済み」メモリ部
分、L2キャッシュ66の更新の間の好ましい同期化
(ダブル・ハンドシェーク)方式は、次の通りである。
チェックポインティング・アレイ64に保管されたレジ
スタ内容をL2キャッシュ66に保管されたデータと同
期化するために、STQ62とCSB60の間で第1の
同期化が確立され、チェックポインティング・アレイ6
4(の制御ロジック)とストア・バッファ65の間でも
う1つの第2の同期化が確立される。
【0040】空のSTQ62を仮定すると、チェックポ
インティングは、完全なチェックポイント状態がCSB
60内で使用可能である場合に、必ず発生する。したが
って、すべてのデータ、具体的には図3および図4に関
して上で説明したレジスタ・アドレス10およびレジス
タ・データ12が、存在しなければならない。
【0041】STOREデータが、STQ62内で見つ
かる場合に、命令識別子IDが、CSB60にシグナル
され(第1ハンドシェーク信号の矢印68を参照された
い)、そのチェックポイント状態を、チェックポインテ
ィング・アレイ64(ECC−ARA)にチェックポイ
ンティングできるようになる。したがって、これは、こ
れがそれに応じてシグナルされる時に読取についてCS
B60にアクセスし、読取/書込アクセスについてチェ
ックポインティング・アレイ64にアクセスするように
配置された読取ポート63を含む制御ロジックを介して
行われることが好ましい。
【0042】チェックポイント状態が、チェックポイン
ティング・アレイ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を有する。
【0043】言い換えると、同期化は、基本的に、チェ
ックポインティング・アレイ64の更新に使用された最
後のチェックポイント状態のIDと比較してより古いか
等しいIDを有する特定のSTOREデータが、システ
ム・メモリに解放される場合に限って得られる。まだチ
ェックポインティング・アレイにチェックポインティン
グされていない命令に対応するストア・データは、対応
するチェックポイント状態がチェックポインティング・
アレイ64の更新に使用されるまで保持される。したが
って、チェックポインティング・アレイの内容と、L2
キャッシュまたはメモリに保管されたデータが、いつで
も一貫性を有することが保証される。
【0044】プロセッサの内部でエラーが発生する場合
に、破壊されたデータは、L2キャッシュまたはメモリ
に入っていない。リカバリで、チェックポインティング
・アレイ64を使用し、プロセッサ状態、たとえばプロ
グラム・カウンタを復元することによって設計済みレジ
スタが復元される場合に、プロセッサは、システム・メ
モリ内のデータに損傷を与えずにプログラム実行を再始
動することができ、L1キャッシュの内容をパージしな
ければならない。最後にチェックポインティングされた
命令のIDに関してより古いすべての項目も、ストア・
バッファ65内で消去されなければならないことに留意
されたい。
【0045】CSB60が満杯の時に、命令コミッタが
停止され、したがって、新しい命令がコミットされない
ことを追加しなければならない。これは、STQ62が
ストア・バッファ65にデータをストアするまでのプロ
セッサの停止につながる。
【0046】さらに、チェックポインティング・アレイ
64の更新は、チェックポイント状態が作成されてから
数サイクル後に発生する可能性がある。この時間の間
に、チェックポイント状態がチェックポインティング・
アレイ64の一貫性のある更新に最終的に使用されるま
で、複数のチェックポイント状態(好ましくは1サイク
ル毎に1つ)を、前記チェックポイント状態バッファ
(CSB)に収集することができる。別に設けられ本発
明の対象ではないなんらかの従来技術のエラー検出ロジ
ックによるエラーの認識の際に、CSB60に保管され
た次のチェックポイント状態のチェックポインティング
が、即座にブロックされる。したがって、エラーが、チ
ェックポインティング・アレイ64に影響せず、L2キ
ャッシュに保管された「正しい」データを破壊しないこ
とが保証される。
【0047】さらに、図7を参照して、4つを超える内
部命令からなる非常に複雑な外部命令のためのチェック
ポイント状態の拡張を、さらに開示する。
【0048】非常に複雑な外部(CISC)命令を、本
発明の開示の利益を得ながら4つを超える内部命令に変
換する必要がある場合には、基本的な技術的発明的特徴
を放棄せず、それぞれの増加した数の内部命令を受け取
るためにはるかに広く、したがってより面積を消費する
CSB60を設けることに制限されずに、発明的方式を
拡張することができる。
【0049】この前提の下で、複雑な命令のリタイヤ
は、最大4つの内部命令だけを1サイクル毎にリタイヤ
できる場合に、複数サイクルにわたって続く。これは、
すべてのサイクルに作成されるチェックポイント状態
が、1つの完全な外部命令を表さず、したがって、これ
をチェックポインティング・アレイの更新に使用しては
ならないことを意味する。
【0050】この問題に対する解決策は、複数のチェッ
クポイント状態が、複雑な外部命令全体を表す単一の
「拡張チェックポイント状態(extended checkpoint st
ate)」を形成するとみなすという発想に基づく。
【0051】好ましい実施形態によれば、これらの不完
全なチェックポイント状態が、CSB60の複数の項目
を占める。前記複数の項目が、シーケンスを形成するこ
とが好ましい。ストア・バッファ65の各項目内のある
位置に設けられるグルー/リンク・ビット72によっ
て、ストア・バッファ65に保管された連続するチェッ
クポイント状態が拡張チェックポイント状態を形成する
ことをマークする(図7を参照されたい)。したがっ
て、ストア・バッファ65が、少なくとも、すべての可
能な完全なCISC命令の拡張チェックポイント状態を
表すのに必要なものと同数の項目を所有することが必要
である。
【0052】さらに、チェックポインティング・アレイ
64の更新(図6を参照されたい)は、アトミック・オ
ペレーションが完全に更新されるまで割り込まれてはな
らない。
【0053】エラーの検出時には、アトミック・オペレ
ーションが完全にチェックポインティングされるまで、
更新機構をブロックしてはならない。これは、拡張チェ
ックポイント状態のチェックポインティング・アレイ6
4へのチェックポインティングが、複数サイクルにわた
って続く場合があることも意味する。
【0054】前述の明細書で、本発明を、その特定の例
示的実施形態に関して説明した。しかし、請求項に記載
された本発明の広義の趣旨および範囲から逸脱せずに、
さまざまな修正および変更を行えることは明白である。
したがって、本明細書および図面は、制限的な意味では
なく、例示的であるものとみなされなければならない。
【0055】当業者は、本発明が、たとえば同時にリタ
イヤされる複数のCISC命令に関するチェックポイン
ティング・アレイ64などのチェックポインティング・
バッファ手段の内容を更新し、プロセッサ・レジスタ内
容およびシステム・メモリ内のデータの最も正確なチェ
ックポイントを達成するために、たとえばL2キャッシ
ュ66などのキャッシュ階層へのSTOREデータの解
放とチェックポインティング・バッファ手段の更新を同
期化する、新しく有利な方式を提案することを諒解する
であろう。チェックポインティングの正確な方法によっ
て、メモリに保管されたデータを破壊せずに、プロセッ
サ内のソフト・エラーまたはハード・エラーの検出時の
プロセッサのリカバリが可能になる。これは、高められ
たレベルのコンピューティング要件を満足するのに重要
とみなされる。
【0056】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0057】(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命令からの結果の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)に記載のプロセッサ・ユニットを有す
るコンピュータ・システム。
【図面の簡単な説明】
【図1】発明的命令IDを導入する、CISC命令から
複数のRISC命令への変換の概念を示す概略図であ
る。
【図2】本発明によるチェックポイント状態定義の概略
表現を示す図である。
【図3】2つのレジスタ更新を有する2つの内部命令に
変換されるCISC命令を含むチェックポイント状態の
概略表現を示す図である。
【図4】3つのCISC命令が4つの内部命令と2+1
+1レジスタ更新に変換される、図2による表現を示す
図である。
【図5】最後のチェックポインティングされたCISC
命令のIDを用いてタグを付けられたチェックポイント
状態の概略表現を示す図である。
【図6】本発明による、レジスタ・チェックポインティ
ングとSTOREデータ処理の同期化を示す概略表現図
である。
【図7】本発明による拡張されたチェックポイント状態
の原理を示す概略表現図である。
【符号の説明】
10 レジスタ・アドレス 12 レジスタ・データ 14 プログラム・カウンタ 40 命令ID 42 CISC命令 44 内部命令 46 ロード/ストア命令 60 チェックポイント状態バッファ(CSB) 61a L1キャッシュ 61b ECC生成 62 ストア・キュー(STQ) 63 読取ポート 64 チェックポインティング・アレイ 65 ストア・バッファ 66 L2キャッシュ 72 グルー/リンク・ビット
フロントページの続き (72)発明者 ドクトル・ハリー・シュテファン・バロフ スキ ドイツ ディー−71034 ベーブリンゲン イム・アイヒェンプフェドレ 64 (72)発明者 ドクトル・ハルトムート・シュヴェルマー ドイツ ディー−70199 シュトゥットガ ルト ヴァネンシュトラーセ 21 (72)発明者 ハンス=ヴェルナー・タスト ドイツ ディー−71093 ヴァイル・イ ム・シェンブッフ ハルトマンシュトラー セ 66 Fターム(参考) 5B013 EE04 EE09 5B027 AA01 BB01 CC04 5B033 AA14 FA10 FA16 FA24

Claims (7)

    【特許請求の範囲】
  1. 【請求項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. 【請求項2】前記ARA(64)項目にエラー検出およ
    び訂正ビットを設けるステップをさらに含む、請求項1
    に記載の方法。
  3. 【請求項3】複数のSTORE命令からの結果のSTO
    REデータの、ストア・バッファ(65)から設計済み
    状態キャッシュ・メモリ(66)への解放を制御する第
    2制御パスを、前記ARA(64)更新と並列に提供す
    るステップと、 前記複数の命令(42)の前記最も若い外部命令の前記
    外部命令ID(40)を用いて前記チェックポイント状
    態バッファ(60)項目にタグを付けることによって、
    前記STOREデータ解放を前記ARA更新と同期化す
    るステップと、 最も若いIDより古いかそれと等しいID(40)を有
    するデータだけを設計済み状態キャッシュ・メモリ(6
    6)に解放するステップとをさらに含む、請求項1に記
    載の方法。
  4. 【請求項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. 【請求項5】それぞれの複雑な外部命令によって実行さ
    れる、チェックポイント状態バッファ(60)内の所定
    の拡張された最大個数のレジスタ内容の更新を収集する
    ように拡張され、 a)前記レジスタ更新データを受け取るために、それぞ
    れの拡張された複数のチェックポイント状態バッファ
    (60)項目を予約するステップと、 b)グルー・ビット(72)を用いて、1つの同一の複
    雑な外部命令に関連する後続項目をマークするステップ
    と、 c)複数のサイクルのアトミック・オペレーションで、
    このように拡張されたチェックポイント状態を更新する
    ステップとを含む、請求項1に記載の方法。
  6. 【請求項6】請求項1ないし5のいずれか一項に記載の
    方法のステップを実行する論理回路手段を有するプロセ
    ッサ・ユニットであって、 所定の最大個数のレジスタ内容の更新を収集する手段
    が、それぞれが命令ID、ターゲット・レジスタ・アド
    レス、ターゲット・レジスタ・データ、およびプログラ
    ム・カウンタを含む複数のバッファ項目を含むチェック
    ポイント状態バッファ(60)(CSB)であり、 これによって、チェックポイント状態に、複数の、好ま
    しくは4つの項目が含まれるプロセッサ・ユニット。
  7. 【請求項7】請求項6に記載のプロセッサ・ユニットを
    有するコンピュータ・システム。
JP2002185571A 2001-06-27 2002-06-26 複数プロセッサ・データ処理システムをチェックポインティングする方法、プロセッサ・ユニットおよびコンピュータ・システム Expired - Fee Related JP3663393B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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