JP4886826B2 - フォールト・トレラント・コンピュータ・システム、方法及びプログラム - Google Patents
フォールト・トレラント・コンピュータ・システム、方法及びプログラム Download PDFInfo
- Publication number
- JP4886826B2 JP4886826B2 JP2009193089A JP2009193089A JP4886826B2 JP 4886826 B2 JP4886826 B2 JP 4886826B2 JP 2009193089 A JP2009193089 A JP 2009193089A JP 2009193089 A JP2009193089 A JP 2009193089A JP 4886826 B2 JP4886826 B2 JP 4886826B2
- Authority
- JP
- Japan
- Prior art keywords
- thread
- code
- computer system
- processor
- executing
- 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 - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 39
- 230000004044 response Effects 0.000 claims description 11
- 230000006870 function Effects 0.000 claims description 8
- 238000005096 rolling process Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 28
- 239000000872 buffer Substances 0.000 description 23
- 238000012545 processing Methods 0.000 description 20
- 230000001052 transient effect Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 4
- JJWKPURADFRFRB-UHFFFAOYSA-N carbonyl sulfide Chemical compound O=C=S JJWKPURADFRFRB-UHFFFAOYSA-N 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000003892 spreading Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
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, look ahead
- G06F9/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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 operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1405—Saving, restoring, recovering or retrying at machine instruction level
- G06F11/1407—Checkpointing the instruction stream
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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 operation
- G06F11/1479—Generic software techniques for error detection or fault masking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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 operation
- G06F11/1497—Details of time redundant execution on a single processing unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1695—Error detection or correction of the data by redundancy in hardware which are operating with time diversity
-
- 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, 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/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- 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, look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
Description
"Compiler-Managed Software-based Redundant Multi-Threading for Transient
Fault Detection", In the Proceedings of the International Symposium on Code
Generation and Optimization, pp.244-258 (2007).は、次のようにしてトランジェント・フォールトを検出する仕組みを開示する。すなわち、これによれば、ソースコードを 2 種類のバージョンにコンパイルし、それぞれを別々のCPUコアで実行する。便宜上、それらのスレッドを、主導スレッド(Leading Thread)と冗長スレッド(Trailing Thread)と呼ぶことにする。主導スレッドと冗長スレッドは、同一の計算 を両者で重複して行い、共有メモリの読書き時に比較することにより、トランジェント・フォールトを検出する。しかしこの方式では、トランジェント・フォールトを検出しても、そこから回復することができない。すなわち、計算結果の不一致を検出しても、計算を行う以前の状態を復元する手段がなく、そのままプログラムを終了せざるを得ないためである。
// オリジナル・コード
lock();
compute val1;
p1 = val1;
compute val2;
s1 = val2;
unlock();
// ---------------
ここでlock()は、例えば、Javaの文脈でのロック取得であり、unlock()は、Javaの文脈でのロック解放である。lock()とunlock()は、コミット・ポイントに該当する。
// 主導スレッド・コード
lock();
backup(p1);
compute val1
p1 = val1;
compute val2;
buffer(s1, val2);
if (compare_buffer_and_private_data() /* 冗長スレッドとの同期 */ == FALSE) {
restore(p1);
reset_buffer();
goto retry_with_synch;
}
commit_buffer();
unlock();
// ---------------
p1 = val1は、スレッドにおけるプライベート・データの書込みである。
buffer(s1, val2)は、val2の値を、スレッド・ローカルなメモリの領域で、変数s1にコピーあるいはバッファする処理を意味する。
compare_buffer_and_private_data()は、主導スレッドがバッファした値及び主導スレッドにおけるプライベート・データの値と、冗長スレッドがバッファした値及び冗長スレッドにおけるプライベート・データの値とを比較する処理を示す。主導スレッドがバッファした値と冗長スレッドがバッファした値が一致し、且つ主導スレッドにおけるプライベート・データの値と冗長スレッドにおけるプライベート・データの値が一致するとき、compare_buffer_and_private_data()はTRUEを返し、そうでなければ、FALSEを返す。
restore(p1)は、p1の値を復元する処理である。
reset_buffer()は、バッファをフラッシュする処理である。
goto retry_with_synchは、典型的にはプログラムのセクション境界であるロールバック点まで処理を戻す。
示されているように、restore(p1)、reset_buffer()、及びgoto retry_with_synchは、compare_buffer_and_private_data()の結果がFALSEである場合に実行され、特に、goto retry_with_synchによって、ロールバックが引き起こされる。
一方、compare_buffer_and_private_data()がTRUE、すなわち、主導スレッドがバッファした値と冗長スレッドがバッファした値が一致し、且つ、主導スレッドにおけるプライベート・データの値と冗長スレッドにおけるプライベート・データの値が一致するなら、次のcommit_buffer()に進む。
commit_buffer()は、バッファされている値を実際に書き出すコミット処理のことである。すなわち、書込みバッファには、書き込む場所と値のペアがバッファリングされている。そこで、コミット処理とは、バッファリングされている書き込む場所に、その値を実際に書き込むことである。
(1) スレッドローカルなメモリ領域に、実行結果の値をバッファするコード。
また本発明の実施例に従い、主導スレッドにおいて、コミットポイントの直前に挿入されるコードは次のとおりである。
(2) 主導スレッドにバッファされた実行結果と、冗長スレッドにバッファされた実行結果を比較するコード。
(3) 実行結果が不一致なら、前のコミット・ポイントまでロールバックするコード。
(4) 実行結果が一致するなら、バッファされた実行結果をコミットするコード。
// 冗長スレッド・コード
backup(p1);
compute val1;
p1 = val1;
compute val2;
buffer(s1, val2);
if (compare_buffer_and_private_data() /* 主導スレッドとの同期 */ == FALSE) {
restore(p1);
reset_buffer();
goto retry_with_synch;
}
// -----------------
これは、上記擬似コードで、compare_buffer_and_private_data()として示した処理である。
104 CPU
110 キーボード
112 マウス
114 ディスプレイ
106 主記憶
108 ハードディスク・ドライブ
202 ソースコード
204 コンパイラ
206 主導スレッド・コード
208 冗長スレッド・コード
210 実行環境
Claims (18)
- プロセッサをもち、フォールト・トレラントに実行されるコンピュータ・システムであって、
所定の演算結果をもたらす第1のコードを含む第1のスレッドと、前記第1のコードと同一の演算を行なう第2のコードを含む第2のスレッドとを並列的に実行する手段と、
前記第1のスレッドと前記第2のスレッドがコミット・ポイントに到達したことに応答して、前記第1のコードの演算結果と、前記第2のコードの演算結果とを比較する手段と、
前記演算結果が不一致であることに応答して、前記第1のスレッドと前記第2のスレッドをロールバックさせる手段とを有する、
コンピュータ・システム。 - 前記プロセッサが、マルチコア・プロセッサであり、前記第1のスレッドと前記第2のスレッドとがそれぞれ前記プロセッサの異なるコアに割り当てられる、請求項1に記載のコンピュータ・システム。
- 前記演算結果が一致することに応答して、前記第1のスレッドが、前記第1のコードの演算結果を共有メモリに書き出す、請求項1に記載のコンピュータ・システム。
- 前記ロールバック後、前記第1のスレッドと前記第2のスレッドをスレッド間通信させる手段をさらに有する、請求項1に記載のコンピュータ・システム。
- 前記コミット・ポイントが、スレッドの同期、システム・コールの呼出し、外部にあるライブラリ関数、ロックの獲得、及びロックの解除のどれかである、請求項1に記載のコンピュータ・システム。
- 前記ロールバックは、1つ前のコミット・ポイントへの移動である、請求項1に記載のコンピュータ・システム。
- プロセッサをもつコンピュータ・システムを、フォールト・トレラントに実行する方法であって、
所定の演算結果をもたらす第1のコードを含む第1のスレッドを実行するステップと、
前記第1のコードと同一の演算を行なう第2のコードを含む第2のスレッドを、前記第1のスレッドと並列的に実行するステップと、
前記第1のスレッドと前記第2のスレッドがコミット・ポイントに到達したことに応答して、前記第1のコードの演算結果と、前記第2のコードの演算結果とを比較するステップと、
前記演算結果が不一致であることに応答して、前記第1のスレッドと前記第2のスレッドをロールバックさせるステップとを有する、
コンピュータ・システムの実行方法。 - 前記プロセッサが、マルチコア・プロセッサであり、前記第1のスレッドと前記第2のスレッドとがそれぞれ前記プロセッサの異なるコアに割り当てられる、請求項7に記載のコンピュータ・システムの実行方法。
- 前記演算結果が一致することに応答して、前記第1のスレッドが、前記第1のコードの演算結果を共有メモリに書き出す、請求項7に記載のコンピュータ・システムの実行方法。
- 前記ロールバック後、前記第1のスレッドと前記第2のスレッドをスレッド間通信させるステップをさらに有する、請求項7に記載のコンピュータ・システムの実行方法。
- 前記コミット・ポイントが、スレッドの同期、システム・コールの呼出し、外部にあるライブラリ関数、ロックの獲得、及びロックの解除のどれかである、請求項7に記載のコンピュータ・システムの実行方法。
- 前記ロールバックは、1つ前のコミット・ポイントへの移動である、請求項7に記載のコンピュータ・システムの実行方法。
- プロセッサをもつコンピュータ・システムを、フォールト・トレラントに実行するプログラムであって、
前記コンピュータ・システムをして、
所定の演算結果をもたらす第1のコードを含む第1のスレッドを実行するステップと、
前記第1のコードと同一の演算を行なう第2のコードを含む第2のスレッドを、前記第1のスレッドと並列的に実行するステップと、
前記第1のスレッドと前記第2のスレッドがコミット・ポイントに到達したことに応答して、前記第1のコードの演算結果と、前記第2のコードの演算結果とを比較するステップと、
前記演算結果が不一致であることに応答して、前記第1のスレッドと前記第2のスレッドをロールバックさせるステップと実行させる、
コンピュータ・システムの実行プログラム。 - 前記プロセッサが、マルチコア・プロセッサであり、前記第1のスレッドと前記第2のスレッドとがそれぞれ前記プロセッサの異なるコアに割り当てられる、請求項13に記載のコンピュータ・システムの実行プログラム。
- 前記演算結果が一致することに応答して、前記第1のスレッドが、前記第1のコードの演算結果を共有メモリに書き出す、請求項13に記載のコンピュータ・システムの実行プログラム。
- 前記ロールバック後、前記第1のスレッドと前記第2のスレッドをスレッド間通信させるステップをさらに有する、請求項13に記載のコンピュータ・システムの実行プログラム。
- 前記コミット・ポイントが、スレッドの同期、システム・コールの呼出し、外部にあるライブラリ関数、ロックの獲得、及びロックの解除のどれかである、請求項13に記載のコンピュータ・システムの実行プログラム。
- 前記ロールバックは、1つ前のコミット・ポイントへの移動である、請求項13に記載のコンピュータ・システムの実行プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009193089A JP4886826B2 (ja) | 2009-08-24 | 2009-08-24 | フォールト・トレラント・コンピュータ・システム、方法及びプログラム |
US12/859,842 US9032190B2 (en) | 2009-08-24 | 2010-08-20 | Recovering from an error in a fault tolerant computer system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009193089A JP4886826B2 (ja) | 2009-08-24 | 2009-08-24 | フォールト・トレラント・コンピュータ・システム、方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011044078A JP2011044078A (ja) | 2011-03-03 |
JP4886826B2 true JP4886826B2 (ja) | 2012-02-29 |
Family
ID=43606224
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009193089A Expired - Fee Related JP4886826B2 (ja) | 2009-08-24 | 2009-08-24 | フォールト・トレラント・コンピュータ・システム、方法及びプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US9032190B2 (ja) |
JP (1) | JP4886826B2 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5850774B2 (ja) | 2012-03-22 | 2016-02-03 | ルネサスエレクトロニクス株式会社 | 半導体集積回路装置及びそれを用いたシステム |
JP2014063258A (ja) | 2012-09-20 | 2014-04-10 | Renesas Electronics Corp | 半導体集積回路装置及びマイクロコントローラ |
US9251014B2 (en) * | 2013-08-08 | 2016-02-02 | International Business Machines Corporation | Redundant transactions for detection of timing sensitive errors |
JP5988444B2 (ja) * | 2014-02-14 | 2016-09-07 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 最適化したバイナリー・モジュールをテストする方法、並びに、当該最適化したバイナリー・モジュールをテストするためのコンピュータ及びそのコンピュータ・プログラム |
GB2537942B (en) * | 2015-05-01 | 2017-06-14 | Imagination Tech Ltd | Fault tolerant processor for real-time systems |
US10678792B2 (en) | 2015-10-23 | 2020-06-09 | Oracle International Corporation | Parallel execution of queries with a recursive clause |
US10783142B2 (en) | 2015-10-23 | 2020-09-22 | Oracle International Corporation | Efficient data retrieval in staged use of in-memory cursor duration temporary tables |
US10452655B2 (en) * | 2015-10-23 | 2019-10-22 | Oracle International Corporation | In-memory cursor duration temp tables |
US11194701B2 (en) * | 2020-05-11 | 2021-12-07 | International Business Machines Corporation | Identifying software interaction defects using differential speed processors |
JP7419157B2 (ja) | 2020-05-13 | 2024-01-22 | 株式会社日立製作所 | プログラム生成装置、並列演算デバイス、及び、並列演算デバイスに並列演算を実行させるためのコンピュータプログラム |
US11921785B2 (en) | 2022-01-25 | 2024-03-05 | Oracle International Corporation | Inline graph algorithm execution with a relational SQL engine |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS55125598A (en) | 1979-03-21 | 1980-09-27 | Fujitsu Ltd | Restoration system of memory content |
JPS5751514A (en) | 1980-09-09 | 1982-03-26 | Mitsubishi Electric Corp | Automobile cooler |
JPH02287858A (ja) * | 1989-04-28 | 1990-11-27 | Toshiba Corp | 分散処理システムのリスタート方式 |
JPH03269745A (ja) | 1990-03-20 | 1991-12-02 | Yokogawa Electric Corp | 二重化プロセッサシステム |
JPH05112508A (ja) | 1991-10-17 | 1993-05-07 | Mita Ind Co Ltd | スチルベン誘導体およびそれを用いた電子写真感光体 |
JP3085899B2 (ja) * | 1995-06-19 | 2000-09-11 | 株式会社東芝 | マルチプロセッサシステム |
JPH09251393A (ja) * | 1996-03-18 | 1997-09-22 | Toshiba Corp | 計算機システム |
JP3919274B2 (ja) * | 1996-12-26 | 2007-05-23 | 株式会社東芝 | 状態記録再現機能を有する計算機システム及び状態記録再現プログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP3725318B2 (ja) * | 1997-01-24 | 2005-12-07 | 株式会社東芝 | プロセス状態の管理方法およびプロセス管理装置、並びにこれを行うプログラムを記録した記録媒体 |
JP3253883B2 (ja) * | 1997-01-31 | 2002-02-04 | 株式会社東芝 | プロセスリスタート方法及びプロセス監視装置 |
JPH1139178A (ja) * | 1997-07-22 | 1999-02-12 | Toshiba Corp | 計算機システム及び計算機システムにおけるチェックポイントスレッド方法 |
JP3052908B2 (ja) | 1997-09-04 | 2000-06-19 | 日本電気株式会社 | トランザクションプログラム並列実行方法およびトランザクションプログラム並列実行方式 |
US6854075B2 (en) * | 2000-04-19 | 2005-02-08 | Hewlett-Packard Development Company, L.P. | Simultaneous and redundantly threaded processor store instruction comparator |
US20030188141A1 (en) * | 2002-03-29 | 2003-10-02 | Shailender Chaudhry | Time-multiplexed speculative multi-threading to support single-threaded applications |
JP3702815B2 (ja) | 2001-07-12 | 2005-10-05 | 日本電気株式会社 | プロセッサ間レジスタ継承方法及びその装置 |
US7444544B2 (en) * | 2006-07-14 | 2008-10-28 | International Business Machines Corporation | Write filter cache method and apparatus for protecting the microprocessor core from soft errors |
JP2008102748A (ja) | 2006-10-19 | 2008-05-01 | Hitachi Ltd | プログラム実行方法、言語処理系、及び実行時ルーチン |
US20080244354A1 (en) * | 2007-03-28 | 2008-10-02 | Gansha Wu | Apparatus and method for redundant multi-threading with recovery |
-
2009
- 2009-08-24 JP JP2009193089A patent/JP4886826B2/ja not_active Expired - Fee Related
-
2010
- 2010-08-20 US US12/859,842 patent/US9032190B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20110047364A1 (en) | 2011-02-24 |
US9032190B2 (en) | 2015-05-12 |
JP2011044078A (ja) | 2011-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4886826B2 (ja) | フォールト・トレラント・コンピュータ・システム、方法及びプログラム | |
US10997027B2 (en) | Lightweight checkpoint technique for resilience against soft errors | |
US7516361B2 (en) | Method for automatic checkpoint of system and application software | |
CN109891393B (zh) | 使用检查器处理器的主处理器错误检测 | |
US20080244354A1 (en) | Apparatus and method for redundant multi-threading with recovery | |
US20060190702A1 (en) | Device and method for correcting errors in a processor having two execution units | |
US6708288B1 (en) | Compiler-based checkpointing for support of error recovery | |
US7802136B2 (en) | Compiler technique for efficient register checkpointing to support transaction roll-back | |
US7308607B2 (en) | Periodic checkpointing in a redundantly multi-threaded architecture | |
US7444544B2 (en) | Write filter cache method and apparatus for protecting the microprocessor core from soft errors | |
US7757237B2 (en) | Synchronization of threads in a multithreaded computer program | |
US20100318746A1 (en) | Memory change track logging | |
US20090044044A1 (en) | Device and method for correcting errors in a system having at least two execution units having registers | |
US20050193283A1 (en) | Buffering unchecked stores for fault detection in redundant multithreading systems using speculative memory support | |
US8935678B2 (en) | Methods and apparatus to form a resilient objective instruction construct | |
US9164846B2 (en) | Restarting a software system | |
US20190129814A1 (en) | Application fault tolerance via battery-backed replication of volatile state | |
US20230115158A1 (en) | Method for detecting and recovery from soft errors in a computing device | |
JP4531060B2 (ja) | 投機的メモリサポートを利用した冗長なマルチスレッディングシステムにおける故障検出のための外部メモリの更新管理 | |
US20100169628A1 (en) | Controlling non-redundant execution in a redundant multithreading (RMT) processor | |
Yalcin et al. | Combining error detection and transactional memory for energy-efficient computing below safe operation margins | |
US8745440B1 (en) | Computer-implemented system and method for providing software fault tolerance | |
Kuru et al. | Parv: Parallelizing runtime detection and prevention of concurrency errors | |
Zhang et al. | A local checkpoint mechanism for on-board computing | |
Skarlatos et al. | Towards reliable task parallel programs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110823 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111101 |
|
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: 20111122 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20111209 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20141216 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |