JP4691105B2 - 冗長マルチスレッド環境でのチェッカ命令の実行 - Google Patents

冗長マルチスレッド環境でのチェッカ命令の実行 Download PDF

Info

Publication number
JP4691105B2
JP4691105B2 JP2007533793A JP2007533793A JP4691105B2 JP 4691105 B2 JP4691105 B2 JP 4691105B2 JP 2007533793 A JP2007533793 A JP 2007533793A JP 2007533793 A JP2007533793 A JP 2007533793A JP 4691105 B2 JP4691105 B2 JP 4691105B2
Authority
JP
Japan
Prior art keywords
thread
instruction
checker
tracking
instructions
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
Application number
JP2007533793A
Other languages
English (en)
Other versions
JP2008515064A (ja
JP2008515064A5 (ja
Inventor
マッカジー、シャブヘンドゥ
エメル、ジョエル
ラインハルト、スティーブン
ウィーバー、クリストファー
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of JP2008515064A publication Critical patent/JP2008515064A/ja
Publication of JP2008515064A5 publication Critical patent/JP2008515064A5/ja
Application granted granted Critical
Publication of JP4691105B2 publication Critical patent/JP4691105B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1492Generic software techniques for error detection or fault masking by run-time replication performed by the application software
    • G06F11/1494N-modular type
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1695Error detection or correction of the data by redundancy in hardware which are operating with time diversity

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Hardware Redundancy (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

現在の冗長実行システムは一般に、自己検査式であり且つハードウェアで実装されるチェッカ回路を採用している。チェッカ回路に類似するのは、2つのスレッド(たとえば、ストアアドレス及びデータ)からの結果を比較する比較命令である。両方のスレッドで比較命令を複製し、複製を介して自己検査の効果を得ることが可能であり得る。
米国特許第6463579号明細書
不都合なことに、比較命令を複製することにより、アーキテクチャは冗長マルチスレッド(RMT)の性能利点を失うことになる。RMTの性能利点は、先行スレッドが追跡スレッドのキャッシュミス及び分岐予測をプリフェッチできるように十分に離れた先行スレッド及び追跡スレッドを有することから生じる。比較命令が複製される場合、キューの追加が必要なだけでなく(より高いオーバーヘッドを招く)、アーキテクチャは、両方向で求められる同期により2つのスレッドを十分離れた状態で保持することができなくなり得る。したがって、必要なのは、RMTの性能利点を犠牲にすることなくより低い故障率を実現できる命令である。
本発明の各種特徴が、同様の参照番号が概して全図面を通して同じパーツを指す添付図面に示す好ましい実施形態の以下の説明から明らかになろう。図面は必ずしも一定の縮尺で描かれておらず、それに代えて本発明の原理を示すことに重点が置かれている。
以下の説明では、限定ではなく説明のために、特定の構造、アーキテクチャ、インタフェース、技法等の特定の詳細を記して、本発明の各種態様の完全な理解を提供する。しかし、本発明の各種態様を他の例ではこれら特定の詳細から離れて実施可能なことが、本開示の恩恵を受ける当業者には明白であろう。特定の場合では、本発明の説明を不必要な詳細で曖昧にしないように、既知の装置、回路、及び方法についての説明を省いている。
冗長マルチスレッド環境でのチェッカ命令の方法及び装置について記載する。以下の説明では、説明のために、多くの特定の詳細を記して本発明の完全な理解を提供する。しかし、本発明をこれら特定の詳細なしで実施可能なことが当業者には明白であろう。
図1は、冗長マルチスレッドアーキテクチャの一実施形態のブロック図である。冗長マルチスレッドアーキテクチャでは、故障は、プログラムの2つのコピーを別個のスレッドとして実行することによって検出することができる。
各スレッドには同一の入力が提供され、出力が比較されて、エラーが発生したか否かが判断される。冗長マルチスレッドは、本明細書では「複製範囲(sphere of replication)」と呼ぶ概念に関連して説明することができる。複製範囲とは、論理的又は物理的な冗長動作の境界である。
複製範囲100内の構成要素(たとえば、先行スレッド105を実行しているプロセッサ及び追跡スレッド110を実行しているプロセッサ)が冗長実行の対象である。これとは対照的に、複製範囲100外の構成要素(たとえば、メモリ115)は冗長実行の対象ではない。故障保護は他の技法、たとえばメモリ115の誤り修正符号によって提供される。他の装置は複製範囲100外であってもよく、且つ/又は他の技法を使用して故障保護を複製範囲100外の装置に提供することができる。
複製範囲100に入るデータは、データを複製し且つデータのコピーを先行スレッド105及び追跡スレッド110に送る入力複製エージェント120を通して入る。同様に、複製範囲100を出るデータは、データを比較し且つエラーが発生したか否かを判断する出力比較エージェント125を通って出る。複製範囲100の境界の変更は、性能とハードウェア量との間のトレードオフである。たとえば、メモリ115を複製すると、ストア命令の出力比較を避けることによりメモリへのより高速でのアクセスが可能になるが、システムでのメモリ量を2倍にすることによってシステムコストが増大する。
本発明の一実施形態は、RMTのソフトウェア実装でのチェッカ回路を検査するメカニズムを提案する。RMTはコミットされた命令の出力を比較する(命令毎の比較を必要とする)ため、これはソフトウェアで実装することもできる。RMTのソフトウェア実装があらゆる命令を比較する場合、相当なオーバーヘッドが発生する。しかしそれに代えて、RMTは、ストア命令のみの比較及びロード命令のみの複製を可能にし、これはRMT実装のソフトウェアオーバーヘッドを大幅に低減することができる。
図2は、チェッカ命令を生成する一方法を示す。まず、大半のコンピュータでのようにコンパイラが命令を生成する。コンパイラから、コンピュータはここで、一連のストア命令であり得るがこれに限定されないバイナリプログラムを有する(200)。次に、バイナリトランスレータがバイナリプログラム中の各ストア命令の前にチェッカ命令を挿入することができる(205)。バイナリトランスレータは当該技術分野において既知の任意のバイナリトランスレータであってもよい。バイナリプログラムの変換後、システムは先行スレッド及び追跡スレッドの両方にバイナリプログラムを作成する。先行スレッドのバイナリプログラムは、チェッカ命令をストア命令に追加する(210)。追跡スレッドのバイナリプログラムは、ストア命令を先行スレッドのピアチェッカ命令で置き換える(215)。
図3は、チェッカ命令の一実施態様を示す。RMTが比較を要求すると、プロセッサはチェッカ命令を先行スレッド及び追跡スレッドの両方において発することができる(300)。各チェッカ命令は各スレッドから64ビット量を伝達することができる。チェッカ命令は、各パイプラインの終わりにあるバッファに達するまで各スレッドの個々のパイプラインを独立して移行することができる(305)。チェッカ命令は、ピアチェッカ命令をバッファで待つ(310)。これら2つのチェッカ命令は次いで、伝達している64ビット量の比較を行うことができる(315)。一致しない場合、両方がエラーを報告することができる。一致する場合、プロセッサにチェッカ命令をコミットさせることができる(320)。パイプラインは、CMP中の異なるプロセッサからであっても、又はSMTプロセッサと同じマルチスレッドプロセッサからであってもよい。
この実施態様では、チェッカ命令は、命令キューからの処理命令からの先行する命令を中断しない。むしろ、リタイアポインタのみを、追跡スレッドからの対応するチェッカ命令が現れるまで中断するだけである。また、環境がRMT環境ではない場合、チェッカ命令はNOPとして扱われることができる。
図4は、2つのパイプラインを通って流れるチェッカ命令の一例のブロック図である。ストア命令R1→[R2]が、レジスタR1中の値をレジスタR2中のアドレスによってポイントされるメモリロケーションに記憶するものと仮定する。このストア命令は、チェッカ命令と共に先行スレッド及び追跡スレッドの両方で複製することができる。先行スレッドのストア命令は、チェッカ命令及びストア命令の両方を以下に示すように含むことができる。
Checkerinst R1
Checkerinst R2
Store: R1→[R2]
したがって、先行スレッドは、パイプライン400を移行する時にストア命令とともにチェッカ命令を含むことができる。
追跡スレッドのストア命令は、以下に示すようにチェッカ命令のみを含むことができる。
Checkerinst R1
Checkerinst R2
したがって、追跡スレッドはパイプライン405を通って移行するストア命令を有さない。
パイプライン400中の先行スレッドからのcheckerinst R1は、バッファ410においてピアチェッカ命令を待つ。パイプライン405中の追跡スレッドからのcheckerinst R1は、バッファ415においてピアチェッカ命令を待つ。チェッカ命令は常にその相手方すなわちピアを探すか、又は待つ。ミラースレッドがある場合、チェッカ命令はバッファ410、405においてそのスレッドを探すか、又は待ち、ミラースレッドがそこにあることを確認してから、チェッカ命令を比較する。
先行スレッドからのcheckerinst R1及び追跡スレッドからのcheckerinst R1は、コミット順によりペアになることができ、レジスタ指示子とR1の値を比較して、レジスタがいずれのエラーも有さなかったことを保証する。エラーが見つからない場合、チェッカ命令はコミットされる(420)。チェッカ命令がコミットされると、R1の値が記憶される。R1の値は、コミットポイントを通ってから記憶される。したがって、システムは、従来のように検査をストア毎に行うのではなくすべてのストアを同時に検査することができる。
図5は、マルチスレッドプロセッサ用の環境を提供することができるシステムのブロック図である。図5に示すシステムは或る範囲のシステムを表すことを意図される。代替のシステムは、より多数、より少数、且つ/又は異なる構成要素を備えることができる。
システム500は、情報を伝達するバス510又は他の通信装置、及びバス510に結合されて情報を処理するプロセッサ(複数可)520を備える。システム500は、メモリコントローラ530を介してバス510に結合されて、情報及びプロセッサ(複数可)520が実行する命令を記憶するランダムアクセスメモリ(RAM)又は他のダイナミックメモリ並びにスタティックメモリ、たとえばハードディスク又は他の記憶装置535(メモリと呼ぶ)をさらに備える。メモリ535はまた、プロセッサ(複数可)520による命令の実行中に一時変数又は他の中間情報を記憶するためにも使用することができる。メモリコントローラ530は、1つ又は複数の種類のメモリ及び/又は関連するメモリ装置を制御する1つ又は複数の構成要素を備えることができる。システム500は、バス510に結合されてプロセッサ(複数可)520のためにスタティックな情報及び命令を記憶する読み取り専用メモリ(ROM)及び/又は他のスタティック記憶装置540も備える。
システム500はまた、バス510を介して入/出力(I/O)インタフェース550にも結合することができる。I/Oインタフェース550はI/O装置555へのインタフェースを提供し、I/O装置555はたとえば、コンピュータユーザに情報を表示する陰極線管(CRT)又は液晶ディスプレイ(LCD)、英数字及び他のキーを含む英数字入力装置、並びに/或いはマウス、トラックボール、又はカーソル方向キー等のカーソル制御装置を含むことができる。システム500は、ローカルエリアネットワーク等のネットワークへのアクセスを有無線で提供するネットワークインタフェース560をさらに備える。
命令は、メモリ535に磁気ディスク、読み取り専用メモリ(ROM)集積回路、CD−ROM、DVD等の記憶装置から、有無線のリモート接続(たとえば、ネットワークインタフェース860を介してネットワーク経由で)等を介して提供される。
これより図6を参照すると、システム600は概して、プロセッサ、メモリ、及び入/出力装置が複数のポイントツーポイントインタフェースによって相互接続されるシステムを示す。システム600はいくつかのプロセッサも備えることができ、明瞭にするために、そのうちの2つプロセッサ605、610のみを示す。プロセッサ605、610はそれぞれ、ローカルメモリコントローラハブ(MCH)615、620を備えてメモリ625、630と接続することができる。プロセッサ605、610は、ポイントツーポイントインタフェース回路640、645を使用して、ポイントツーポイントインタフェース635を介してデータを交換することができる。プロセッサ605、610はそれぞれ、ポイントツーポイントインタフェース回路665、670、675、680を使用して、個々のポイントツーポイントインタフェース655、660を介してチップセット650とデータを交換することができる。チップセット650はまた、高性能グラフィックスインタフェース690を介して高性能グラフィックス回路685とデータを交換することもできる。
チップセット650は、バスインタフェース695を介してバス616とデータを交換することができる。いずれのシステムでも、いくつかの実施形態では低性能グラフィックスコントローラ、ビデオコントローラ、及びネットワーキングコントローラを含む様々な入/出力I/O装置614がバス616上にあり得る。いくつかの実施形態では、別のバスブリッジ618を使用して、バス616とバス620との間でデータを交換できるようにすることができる。いくつかの実施形態では、バス620は、小型コンピュータシステムインタフェース(SCSI)バス、統合ドライブエレクトロニクス(IDE)バス、又はユニバーサルシリアルバス(USB)バスであることができる。追加のI/O装置をバス620に接続することができる。これらは、キーボード、マウスを含むカーソル制御装置622、オーディオI/O624、モデム及びネットワークインタフェースを含む通信装置626、及びデータ記憶装置628を含むことができる。ソフトウェアコード630は、データ記憶装置628に記憶することができる。いくつかの実施形態では、データ記憶装置628は、固定磁気ディスク、フロッピーディスクドライブ、光学ディスクドライブ、光磁気ディスクドライブ、磁気テープ、又はフラッシュメモリを含む不揮発性メモリであることができる。
本明細書全体を通して、「命令」という語は、命令、マクロ命令、命令バンドル、又はプロセッサ動作を符号化するために使用される任意の数の他のメカニズムを全体的に指すために使用される。
以下の説明では、限定ではなく説明のために、特定の構造、アーキテクチャ、インタフェース、技法等の特定の詳細を記して、本発明の各種態様の完全な理解を提供する。しかし、本発明の各種態様を他の例ではこれら特定の詳細から離れて実施可能なことが、本開示の恩恵を受ける当業者には明白であろう。特定の場合では、本発明の説明を不必要な詳細で曖昧にしないように、既知の装置、回路、及び方法についての説明を省いている。
マルチスレッドアーキテクチャの一実施形態のブロック図である。 チェッカ命令を生成する一方法を示すフローチャートである。 いずれかのスレッドでのチェッカ命令の一実施態様を示すフローチャートである。 チェッカ命令の一実施形態のブロック図である。 マルチスレッドプロセッサの環境を提供することができるシステムのブロック図である。 マルチスレッドプロセッサの環境を提供することができる代替のシステムのブロック図である。

Claims (28)

  1. コンピュータが、互いに離れて実行される先行スレッドおよび追跡スレッドそれぞれのスレッドからの出力値を指定するチェッカ命令を生成し、前記先行スレッドに、前記出力値を指定する選択された命令を残して前記チェッカ命令を追加し、前記追跡スレッド内の前記選択された命令を前記生成した前記チェッカ命令で置き換える段階と、
    前記コンピュータが、前記先行スレッドおよび前記追跡スレッドからの対応するチェッカ命令を待つ段階と、
    前記コンピュータが、前記先行スレッドおよび前記追跡スレッドからの前記対応するチェッカ命令を比較する段階と
    を備える方法。
  2. 前記先行スレッド内に前記チェッカ命令を追加する場合に、前記選択された命令の前に前記チェッカ命令を挿入する
    請求項1に記載の方法。
  3. 前記チェッカ命令は前記先行スレッドおよび前記追跡スレッドの対応するパイプラインでパイプライン処理される
    請求項1または2に記載の方法。
  4. 前記コンピュータが、前記先行スレッドおよび前記追跡スレッドからの前記対応するチェッカ命令の比較が一致した場合に、前記チェッカ命令をコミットする段階をさらに備える請求項1から3のいずれか一項に記載の方法。
  5. 前記コンピュータが、前記先行スレッドおよび前記追跡スレッドからの前記対応するチェッカ命令の比較が一致した場合に、前記先行スレッドの前記選択された命令に含まれる前記出力値を記憶する段階
    をさらに備える請求項4に記載の方法。
  6. 前記先行スレッドおよび前記追跡スレッドは、単一のプロセッサによって実行される
    請求項1から5のいずれか一項に記載の方法。
  7. 前記先行スレッドおよび前記追跡スレッドは、複数のプロセッサによって実行される
    請求項1から5のいずれか一項に記載の方法。
  8. 前記コンピュータは、前記チェッカ命令によって、前記先行スレッドの命令をホールドすることなく、前記追跡スレッドの前記対応するチェッカ命令が現れるまでリタイアポインタをホールドする
    請求項1から7のいずれか一項に記載の方法。
  9. スレッドからの出力値を指定するチェッカ命令が当該出力値を指定する選択された命令を残してスレッド内に追加された先行スレッドを実行する回路である先行スレッド回路と、
    スレッドからの出力値を指定するチェッカ命令でスレッド内の前記選択された命令が置き換えられた追跡スレッドを実行する回路である追跡スレッド回路と、
    互いに離れて実行される前記先行スレッドおよび前記追跡スレッドからの対応するチェッカ命令を比較して、前記先行スレッドおよび前記追跡スレッドからの対応するチェッカ命令をコミットするコミットユニットと
    を備える装置。
  10. 前記先行スレッド回路および前記追跡スレッド回路はパイプラインを有する
    請求項9に記載の装置。
  11. 前記先行スレッドおよび前記追跡スレッドは、単一のプロセッサによって実行される
    請求項9または10に記載の装置。
  12. 前記先行スレッドおよび前記追跡スレッドは、複数のプロセッサによって実行される
    請求項9または10に記載の装置。
  13. 前記先行スレッド回路および前記追跡スレッド回路に結合されるバッファ
    をさらに備える請求項9から12のいずれか一項に記載の装置。
  14. 前記先行スレッドの前記チェッカ命令および前記追跡スレッドの前記チェッカ命令は、前記バッファにおいて対応するチェッカ命令を待つ
    請求項13に記載の装置。
  15. 前記選択された命令が指定する出力値は、前記先行スレッドおよび前記追跡スレッドのそれぞれの前記対応するチェッカ命令の比較が一致する場合に記憶される
    請求項9から14のいずれか一項に記載の装置。
  16. 前記コミットユニットは、前記対応するチェッカ命令が一致しない場合にエラーを生成する
    請求項9から15のいずれか一項に記載の装置。
  17. 前記先行スレッドにおいて、前記チェッカ命令は前記選択された命令の前にバイナリトランスレータにより配置される
    請求項9から16のいずれか一項に記載の装置。
  18. 前記選択された命令はストア命令である
    請求項9から17のいずれか一項に記載の装置。
  19. 前記チェッカ命令は、前記先行スレッドの命令をホールドすることなく、前記追跡スレッドの前記対応するチェッカ命令が現れるまでリタイアポインタをホールドする
    請求項9から18のいずれか一項に記載の装置。
  20. 第1プロセッサと、
    第2プロセッサへの第1インタフェースと、
    入/出力装置への第2インタフェースと、
    前記第2インタフェースに結合されるオーディオ入出力装置と
    を備え、
    前記第1プロセッサは、
    スレッドからの出力値を指定するチェッカ命令が当該出力値を指定する選択された命令を残してスレッド内に追加された先行スレッドを実行する回路である先行スレッド回路と、
    スレッドからの出力値を指定するチェッカ命令で、スレッド内の前記選択された命令が置き換えられた追跡スレッドを実行する回路である追跡スレッド回路と、
    互いに離れて実行される前記先行スレッドおよび前記追跡スレッドからの対応するチェッカ命令を比較して、前記先行スレッドおよび前記追跡スレッドからの対応するチェッカ命令をリタイアさせるリタイアユニットと
    を有するシステム。
  21. 前記先行スレッド回路および前記追跡スレッド回路はパイプラインを含む
    請求項20に記載のシステム。
  22. 前記選択された命令が指定する出力値は、前記先行スレッドおよび前記追跡スレッドのそれぞれの前記対応するチェッカ命令の比較が一致する場合に記憶される
    請求項20または21に記載のシステム。
  23. 前記先行スレッド回路および前記追跡スレッド回路に結合されるバッファ
    をさらに備える請求項20から22のいずれか一項に記載のシステム。
  24. 前記リタイアユニットは、前記対応するチェッカ命令が一致しない場合にエラーを生成する
    請求項20から23のいずれか一項に記載のシステム。
  25. 前記先行スレッドにおいて、前記チェッカ命令は前記選択された命令の前にバイナリトランスレータにより配置される
    請求項20から24のいずれか一項に記載のシステム。
  26. 前記選択された命令はストア命令である
    請求項20から25のいずれか一項に記載のシステム。
  27. 前記第1インタフェースおよび前記第2インタフェースはポイントツーポイントインタフェースである
    請求項20から26のいずれか一項に記載のシステム。
  28. 前記チェッカ命令は、前記先行スレッドの命令をホールドすることなく、前記追跡スレッドの前記対応するチェッカ命令が現れるまでリタイアポインタをホールドする
    請求項20から27のいずれか一項に記載のシステム。
JP2007533793A 2004-09-29 2005-09-29 冗長マルチスレッド環境でのチェッカ命令の実行 Expired - Fee Related JP4691105B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/953,887 2004-09-29
US10/953,887 US7353365B2 (en) 2004-09-29 2004-09-29 Implementing check instructions in each thread within a redundant multithreading environments
PCT/US2005/035375 WO2006039595A2 (en) 2004-09-29 2005-09-29 Executing checker instructions in redundant multithreading environments

Publications (3)

Publication Number Publication Date
JP2008515064A JP2008515064A (ja) 2008-05-08
JP2008515064A5 JP2008515064A5 (ja) 2011-03-03
JP4691105B2 true JP4691105B2 (ja) 2011-06-01

Family

ID=36001038

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007533793A Expired - Fee Related JP4691105B2 (ja) 2004-09-29 2005-09-29 冗長マルチスレッド環境でのチェッカ命令の実行

Country Status (7)

Country Link
US (1) US7353365B2 (ja)
JP (1) JP4691105B2 (ja)
CN (1) CN101031887B (ja)
DE (1) DE112005002370T5 (ja)
GB (1) GB2430520B (ja)
TW (1) TWI317063B (ja)
WO (1) WO2006039595A2 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7581152B2 (en) * 2004-12-22 2009-08-25 Intel Corporation Fault free store data path for software implementation of redundant multithreading environments
US7321989B2 (en) * 2005-01-05 2008-01-22 The Aerospace Corporation Simultaneously multithreaded processing and single event failure detection method
US7818744B2 (en) * 2005-12-30 2010-10-19 Intel Corporation Apparatus and method for redundant software thread computation
GB0602641D0 (en) * 2006-02-09 2006-03-22 Eads Defence And Security Syst High speed data processing system
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
US9594648B2 (en) * 2008-12-30 2017-03-14 Intel Corporation Controlling non-redundant execution in a redundant multithreading (RMT) processor
US9081688B2 (en) * 2008-12-30 2015-07-14 Intel Corporation Obtaining data for redundant multithreading (RMT) execution
CN101551764B (zh) * 2009-02-27 2010-11-10 北京时代民芯科技有限公司 基于同步冗余线程与编码技术的抗单粒子效应***及方法
EP2537091A4 (en) * 2010-02-16 2014-08-06 Freescale Semiconductor Inc DATA PROCESSING METHOD, DATA PROCESSOR, AND APPARATUS COMPRISING DATA PROCESSOR
US9361104B2 (en) * 2010-08-13 2016-06-07 Freescale Semiconductor, Inc. Systems and methods for determining instruction execution error by comparing an operand of a reference instruction to a result of a subsequent cross-check instruction
JP2012208662A (ja) * 2011-03-29 2012-10-25 Toyota Motor Corp マルチスレッド・プロセッサ
WO2014080245A1 (en) 2012-11-22 2014-05-30 Freescale Semiconductor, Inc. Data processing device, method of execution error detection and integrated circuit
AT515341B1 (de) * 2014-01-23 2015-12-15 Bernecker & Rainer Ind Elektronik Gmbh Verfahren zur Überprüfung der Abarbeitung von Software
US9823983B2 (en) 2014-09-25 2017-11-21 Nxp Usa, Inc. Electronic fault detection unit
US10013240B2 (en) 2016-06-21 2018-07-03 Advanced Micro Devices, Inc. Fingerprinting of redundant threads using compiler-inserted transformation code
US10042687B2 (en) * 2016-08-08 2018-08-07 Advanced Micro Devices, Inc. Paired value comparison for redundant multi-threading operations

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1115661A (ja) * 1997-06-26 1999-01-22 Toshiba Corp Cpuの自己診断方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19625195A1 (de) * 1996-06-24 1998-01-02 Siemens Ag Synchronisationsverfahren
US6463579B1 (en) * 1999-02-17 2002-10-08 Intel Corporation System and method for generating recovery code
US6640313B1 (en) * 1999-12-21 2003-10-28 Intel Corporation Microprocessor with high-reliability operating mode
US6625749B1 (en) * 1999-12-21 2003-09-23 Intel Corporation Firmware mechanism for correcting soft errors
US6854051B2 (en) * 2000-04-19 2005-02-08 Hewlett-Packard Development Company, L.P. Cycle count replication in a simultaneous and redundantly threaded processor
US6854075B2 (en) * 2000-04-19 2005-02-08 Hewlett-Packard Development Company, L.P. Simultaneous and redundantly threaded processor store instruction comparator

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1115661A (ja) * 1997-06-26 1999-01-22 Toshiba Corp Cpuの自己診断方法

Also Published As

Publication number Publication date
TW200634504A (en) 2006-10-01
GB0700979D0 (en) 2007-02-28
GB2430520B (en) 2008-10-22
TWI317063B (en) 2009-11-11
GB2430520A (en) 2007-03-28
WO2006039595A2 (en) 2006-04-13
US7353365B2 (en) 2008-04-01
US20060095821A1 (en) 2006-05-04
JP2008515064A (ja) 2008-05-08
CN101031887A (zh) 2007-09-05
DE112005002370T5 (de) 2007-09-20
CN101031887B (zh) 2010-05-26
WO2006039595A3 (en) 2006-06-29

Similar Documents

Publication Publication Date Title
JP4691105B2 (ja) 冗長マルチスレッド環境でのチェッカ命令の実行
CN106575218B (zh) 持久性存储屏障处理器、方法、***和指令
CN111164578B (zh) 核内锁步模式的错误恢复
KR101546033B1 (ko) Smt 기계에서 비교 및 전달 명령어를 사용한 안정적 실행
TWI740844B (zh) 用於資料處理的方法、設備、及電腦程式
KR102484125B1 (ko) 벡터 처리회로를 사용한 에러 검출
TWI715686B (zh) 用於容錯及錯誤偵測之系統、方法和裝置
CN109416672B (zh) 不对有缺陷数据采取异常的从存储器读取指令、处理器、方法和***
JP2005149496A (ja) 交替スレッドを使用するプロセッサのエラー検出方法およびシステム
CN106663471B (zh) 用于反向存储器备份的方法和装置
KR20170066681A (ko) 이진 변환된 자가 수정 코드 및 교차 수정 코드의 처리
US8601242B2 (en) Adaptive optimized compare-exchange operation
US9594648B2 (en) Controlling non-redundant execution in a redundant multithreading (RMT) processor
JP4531060B2 (ja) 投機的メモリサポートを利用した冗長なマルチスレッディングシステムにおける故障検出のための外部メモリの更新管理
Haas et al. Fault-tolerant execution on cots multi-core processors with hardware transactional memory support
JP2005038420A (ja) 特殊cpu命令による対象を定めたフォールトトレランス
US20220413870A1 (en) Technology For Optimizing Memory-To-Register Operations
US7581152B2 (en) Fault free store data path for software implementation of redundant multithreading environments
US6898738B2 (en) High integrity cache directory
US9063855B2 (en) Fault handling at a transaction level by employing a token and a source-to-destination paradigm in a processor-based system
TWI485621B (zh) 用於選擇性執行確定指令的方法、裝置及系統
US20230273811A1 (en) Reducing silent data errors using a hardware micro-lockstep technique
WO2023108600A1 (en) System, method and apparatus for reducing power consumption of error correction coding using compacted data blocks
KR20240038497A (ko) 프로세서 및 프로세서에서의 소프트 에러 검출 방법

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090421

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090717

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090727

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090806

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100706

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101005

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101013

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101105

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101112

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101203

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101210

A524 Written submission of copy of amendment under section 19 (pct)

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20110105

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: 20110201

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: 20110218

R150 Certificate of patent or registration of utility model

Ref document number: 4691105

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140225

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees