JP2008501191A - マイクロプロセッサにおける偽エラーを低減する方法及び装置 - Google Patents

マイクロプロセッサにおける偽エラーを低減する方法及び装置 Download PDF

Info

Publication number
JP2008501191A
JP2008501191A JP2007515202A JP2007515202A JP2008501191A JP 2008501191 A JP2008501191 A JP 2008501191A JP 2007515202 A JP2007515202 A JP 2007515202A JP 2007515202 A JP2007515202 A JP 2007515202A JP 2008501191 A JP2008501191 A JP 2008501191A
Authority
JP
Japan
Prior art keywords
instruction
bit
processor
entry
error
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
JP2007515202A
Other languages
English (en)
Other versions
JP4448539B2 (ja
Inventor
ムケルジー,シュブヘンドゥ
エマー,ジョエル
ラインハルト,スティーヴン
ウィーヴァー,クリストファー
スミス,マイケル
Original Assignee
インテル コーポレイション
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 インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2008501191A publication Critical patent/JP2008501191A/ja
Application granted granted Critical
Publication of JP4448539B2 publication Critical patent/JP4448539B2/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
    • 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/3865Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Advance Control (AREA)
  • Detection And Correction Of Errors (AREA)
  • Debugging And Monitoring (AREA)

Abstract

マイクロプロセッサにおける偽のエラー検出を低減する技術。PIビットが、命令フローパスを介し命令と共に伝搬される。パリティエラーが検出されると、マシーンチェック例外処理を提起する代わりに、PIビットが設定される。コミットポイントに達すると、プロセッサは、命令が誤ったパス上にあったか判断することが可能である。

Description

発明の詳細な説明
[関連出願]
本出願は、同日(2004年6月17日)に出願された以下の同一出願人による同時係属中の出願である“Reducing False Error Detection In A Microprocessor By Tracking Instructions Neutral To Erros”及び“Reducing False Error Detection In A Microprocessor By Tracking Dynamically Dead Instructions”に関連する。
[背景情報]
中性子やα粒子の衝突によるトランジェントフォルト(transient fault)は、将来のプロセス技術におけるプロセッサトランジスタの数量の増大に対する重大な障害として出現してきている。各トランジスタのフォルトレートは大きくは増加していないかもしれないが、デバイスにより多くのトランジスタを搭載することは、当該デバイスにフォルトが発生する確率をより大きくする。この結果、プロセッサエラーレートを許容できるレベルに維持することは、設計作業の増大が必要となることが予想される。
トランジェントフォルトからのシングルビットアップセット(single bit upset)は、現在のマイクロプロセッサ設計における主要なチャレンジの1つとして現れてきた。これらのフォルトは、宇宙線からの中性子やパッケージング物質からのα粒子など、エネルギー粒子から生じるものである。トランジスタソース及び拡散ノードが、これらの電荷を収集することができる。十分な量の蓄積された電荷が、SRAMセル、ラッチ、ゲートなどのロジックデバイスの状態を反転させる可能性があり、これにより、回路の動作に論理的フォルトをもたらす。このタイプのフォルトはデバイスの永続的不具合を反映したものではないため、ソフト又はトランジェントエラーとして知られる。
ソフトエラーは、チップに搭載されたトランジスタの個数が指数的に増大し続けるとき、マイクロプロセッサ設計者に対する負担を増大させる。ラッチ又はSRAMビット毎のエラー発生率は、次世代技術に対してほぼ一定又はやや減少することが予測される。従って、さらなるエラープロテクション機構又はよりロウバストな技術の利用(完全空乏型(fully−depleted)SOIなど)がなければ、マイクロプロセッサのエラーレートは、以降の各世代のプロセッサに追加されるデバイス数に直接的に比例して増大するかもしれない。
[詳細な説明]
以下の説明では、限定するためでなく説明のため、本発明の様々な特徴の完全なる理解を提供するため、特定の構造、アーキテクチャ、インタフェース、技術などの具体的詳細が与えられる。しかしながら、本発明の各種特徴がこれらの具体的詳細から逸脱した他の具体例により実施可能であるということは、本開示の利益を有する当業者にとって明らかであろう。ある例では、周知のデバイス、回路及び方法の説明は、本発明の説明を不要な詳細さにより不明りょうにしないように省略される。
図1は、マイクロプロセッサのシングルビットフォルトの可能な結果を示す。まず、マイクロプロセッサは、フォルトビットが読まれたか判断する(100)。フォルトビットが読まれていない場合(110)、それを良性のフォルトとみなし、エラーとはみなさない。フォルトビットが読まれると、次にプロセッサは、当該ビットがエラープロテクションを有するか判断する(115)。フォルトビットが読まれるときについては少なくとも3つの可能性のある結果がある。第1に、エラープロテクションが当該ビットに対して検出され、訂正されると、当該フォルトは訂正されたとみなされる(120)。
第2に、当該ビットがエラープロテクションを有していない場合、プロセッサは、命令がプログラムの結果に影響を及ぼすか判断する(125)。命令がプログラムの結果に影響を及ぼすものではない場合、フォルトビットは良性フォルトとみなされる(130)。フォルト110、120及び130のすべては、当該フォルトが影響を有さず、又は検出及び訂正されたものであるため、非エラー状態を示す。
命令がプログラムの結果に影響を与える場合、それはSDC(Silent Data Corruption)とみなされる(135)。SDC135は、最も油断のできないエラーの形式であり、フォルトはシステムに誤った出力を生成させる。SDC135を回避するため、設計者は、パリティなどの基本的な誤り検出機構を利用するかもしれない。
ビットがエラープロテクションを有する場合に対する第3の可能性のある結果は、このエラーが検出される状況に適用される(140)。フォルトを検出はするが、訂正することはできない場合、システムは、有効でない出力を生成することを回避するが、エラー発生時に復元することはできない。従って、シンプルなエラー検出は、エラーレートを低減せず、失敗を停止する動作を提供し、これにより、データ破壊は低減する。これらのタイプのエラーは、DUE(Detected Unrecoverable Error)として知られている。
DUEイベントはさらに、検出されたエラーが当該実行の最終的な結果に影響を及ぼすか否かに従って細分される。良性の検出エラーは、偽のDUEイベント145として知られ、他のものは、真のDUEイベント150として知られる。マイクロプロセッサでは、偽のDUEイベントは、誤ったパスの命令、誤って予測された命令、及びno−ops、プリフェッチ及びダイナミカリーデッド(dynamically dead)命令を含む最終的なプログラム状態に影響を与えない正しいパスの命令に対する衝突から生じうる。
本発明の一実施例は、トランジェントフォルトがプロセッサにエラー状態を宣言させる可能性を低減することによって、エラーレートを低下させる機構を利用する。偽のDUEイベントを追跡するため、マイクロプロセッサは、PI(Possibly Incorrect)ビットとして知られるビットを、すべての命令及び潜在的には各種ハードウェア構成に添付する。エラーが検出されると、ハードウェアは、エラーを通知する代わりに、影響を受けた命令のPIビットを設定する。その後、PIビットを調べ、命令の性質を特定することによって、ハードウェアは、実際に目に見えるエラーが発生したか決定することができる。
偽のエラーと真のエラーを区別することは複雑である。プロセッサは、それがエラーを検出した時点においてこの区別をするのに十分な情報を有していないかもしれない。例えば、命令キューがある命令にエラーを検出したとき、それは、当該命令が誤ったパスの命令であるのか否か判断することはできないかもしれない。この結果、プロセッサは、パイプラインの下流にエラー情報を伝搬する必要があり、それが上記区別をするのに十分な情報を有しているときには、当該エラーを提起する必要がある。
マイクロプロセッサハードウェアの各部の間にエラー情報を伝搬するため、システムは、PIビットを利用する。PIビットは、それが復号からリタイアメント(retirement)まで下流に移動するとき、各命令に論理的に関連付けされる。
図2a〜2dは、命令にソフトエラーが出現したことを検出するため、PIビットが命令フローパスに沿って使用されるときの一実施例を示す。ある命令について、当該命令が復号されると(200)、PIビットが命令に添付され、ゼロに初期化される。PIビットは、命令にエラーがないことを示すようクリアされる。命令がパイプラインを移動すると(205)、それはマシーンに適応するよう複数回変換され、命令キューなどの多数の各種ストレージ構成に対して読み書きされるであろう。
命令キュー210が当該命令を受信すると、それは、命令と共にPIビットを格納する。命令がシングルビットアップセットを蓄積する場合、パリティエラーがフラグされる。エラーを検出すると、命令キュー210は、マシーンチェック例外処理を行う代わりに、影響を受けた命令のPIビットを1に設定する。その後、当該命令は発信され、パイプライン205を下流に移動する。
エラーチェック及びPIビットの更新はまた、命令実行過程における各種構成のいくつか及び/又はパイプラインにおける複数の段階において利用されるかもしれない。エラーチェックロジックは、既知の又はそうでない場合には利用可能な他の各種エラー検出技術又はパリティチェッカーの形態をとるかもしれない。さらに、エラー検出及び訂正技術は、PIビットが復元不可能なエラーである場合に設定されることによって、各種段階又は各種構成において利用されるかもしれない。
最終的に、当該命令はコミットする(215)。コミット段階において、コミットハードウェアは、命令が誤ったパスの命令であったか判断するのに十分な情報を有している。そうである場合、プロセッサはPIビットを無視し、当該ビットが設定されていたとしても、偽のDUEイベントを回避することが可能となる。そうでない場合、プロセッサは、命令のコミットポイント215においてマシーンチェックエラーを提起する選択肢を有する。
PIビット機構はまた、PIビットがオブジェクトからオブジェクトに正確に伝搬される限り、パイプライン205を移動する各オブジェクトにPIビットを添付することによって、一般化することが可能である。例えば、多くのマイクロプロセッサは、典型的には、ときどきチャンク(chunk)と呼ばれる複数命令をフェッチする。チャンクは、それらが復号されるまで、パイプラインのフロントエンドを通過する。PIビットは、各フェッチチャンクに添付することが可能である。チャンクがエラーに直面した場合、プロセッサは、当該チャンクのPIビットを設定することが可能である。その後、チャンクが複数の命令に復号されると、プロセッサは、各命令のPIビットを初期化するため、チャンクのPIビット値をコピーすることが可能である。従って、プロセッサは、PIビットを使用して、各命令が復号される前に、パイプラインのフロントエンドの構成に対する偽のDUEイベントを回避することが可能となる。
他の実施例では、プロセッサは、命令からレジスタにPIビット情報を転送することが可能であり、これにより、レジスタファイル上のダイナミカリーデッド命令から生じる偽のDUEイベントを回避することが可能となる。命令のPIビットが設定される場合、エラーを提起する代わりに、プロセッサは、それが書き込むデスティネーションレジスタに当該命令のPIビットを転送することが可能である。以降の何れの命令もこのレジスタを読まない場合、レジスタのPIビットは調べられることはなく、プロセッサは、レジスタに書き込んだ第1レベルダイナミカリーデッド(FDD)命令に対するエラーを回避するようにしてもよい。しかしながら、以降の命令が設定されているPIビットによりレジスタを読むとき、プロセッサはエラーを通知するようにしてもよい。
あるいは、レジスタのPIビットが設定される場合、エラーを提起する代わりに、レジスタを読み込む命令は、それのすべてのソースレジスタのPIビットと自らのPIビットとをOR演算し、それをパイプラインを介し搬送することが可能である。この実施例は、従属チェーンを介しPIビットを伝搬し、プロセッサがTDD(Transitively Dynamically Dead)命令を追跡することを可能にする。TDD命令を追跡する1つの方法は、プロセッサがメモリシステム又はI/Oデバイスとやりとりするときに限ってエラーを宣言するというものである。従って、キャッシュとメインメモリを除くプロセッサのすべての構成にPIビットが存在し、上述したように、PIビットに対する同一の継承ルールに従う場合、TDD命令の偽のエラーもまた回避することが可能である。これが実行されるため、システムは、ストア命令220又はI/Oアクセスがそれのデータをキャッシュ、メモリシステム又はI/Oデバイスにコミットしようとするときに限って、エラーをフラグする。この伝搬は、レジスタファイルのTDD命令に対する偽のDUEを回避するだけでなく、これらの命令及び値のフローによりパイプラインを介し他の構成を回避する。
他の実施例では、プロセッサは、ストアバッファやキャッシュ220などのメモリ構成における偽のDUEイベントを追跡するため、命令又はレジスタからメモリ値にPIビットを転送するようにしてもよい。プロセッサは、各キャッシュブロックにPIビットを添付し、ストア命令がアドレスを書き込むとき、プロセッサは、ストア命令のPIビットをキャッシュブロックに転送することが可能である。その後、ロード225がキャッシュブロックを読むとき、それは、PIビットを調べるか、又はそれがロードしているレジスタ213にPIビットを転送することが可能である。PIビットがレジスタ213に転送される場合、プロセッサはまた、ダイナミカリーデッドメモリ値から生じる偽のDUEイベントの通知を回避することが可能である。
あるいは、プロセッサチップ全体及びメモリシステム上にPIビットを有する場合、プロセッサは、メモリを介しFDDとTDD命令の両方について偽のエラーを追跡することが可能である。このような例では、プロセッサがそれのPIビットセットを有するI/Oアクセス(非キャッシュロード又はストアなど)を行うときに限ってエラーが生じる。これは、設計者が共有メモリマルチプロセッサシステムの複数のプロセッサにおいてエラーを追跡することを可能にするかもしれない。
従って、一般にはPIビットは、パイプラインを介し移動するオブジェクト又は何れかのハードウェア構成に添付されてもよいが、PIビットの粒度はその実現形態に依存する。例えば、PIビットが64ビットレジスタ値に添付される場合、1つのPIビットのみが、64ビットの1つにおいてエラーが存在したかもしれないということを通知することが可能である。あるいは、各バイトに対してPIビットが存在する場合、プロセッサは、64ビットの何れのバイトがエラーを有していたか特定するようにしてもよい。
図3は、ソフトエラー検出方法の一実施例を示すフロー図である。本実施例では、フローチャート300は、命令が誤ったパスの命令であるかプロセッサが判断するケースを示す。まず、命令が復号されると(305)、PIビットが当該命令に関連付けされ(310)、ゼロに初期化される。PIビットをゼロに初期化することによって、これは当該命令にエラーが存在しないことを示す。次に、それのPIビットと共に命令が、パイプラインにキュー処理される(315)。命令がパイプラインを移動するとき、それはマシーンに適応するよう複数回変換され、多数の各種ストレージ要素に読み書きされるであろう。
命令がパイプラインを移動している間、当該命令はシングルビットアップセットを蓄積し、パリティエラーが当該命令に対してフラグされてもよい(320)。当該命令に対してエラーが検出される場合、パイプラインは、マシーンチェック例外処理を提起する代わりに、影響を受けた命令のPIビットを1に設定し(325)、最終的に、当該命令はコミットする(330)。エラーが検出されない場合、当該命令は最終的にコミットするようにしてもよい(330)。その後、コミットハードウェアは、当該命令が誤ったパスの命令であったか判断することが可能である(335)。当該命令が誤ったパスの命令であると判断されると、PIビットは無視され、そうでない場合、プロセッサは、マシーンチェックエラーなどのエラーを提起する選択肢を有する(345)。
図4は、ソフトエラーを検出する1つの典型的なシステムの実現形態を示す。プロセッサ405が、中央処理ユニット(CPU)やコンピュータ400の各ユニットを有する複数のプロセッサの1つとして機能するコンピュータ400が示される。典型的には、プロセッサ405は、単一の集積回路チップにより実現される。プロセッサ405は、1以上の実行ユニットを有する実行(処理)コア410を有するようにしてもよい。プロセッサ405のあるセクションは、命令処理装置415を有するよう専用のものとされている。命令処理装置415は、コア410に接続されて示されている。
本発明は、コア410の命令を実行するよう上記説明に従って実現される。メモリは、オンチップ(オンチップメモリ420により示されるように)又はオフチップ(オフチップメモリ425により示されるように)に配置することが可能である。典型的には、オンチップメモリは、キャッシュメモリ又はメインメモリ(RAM)の一部とすることが可能である。オフチップメモリは、典型的には、メインメモリ(存在する場合には、オフチップキャッシュもまた)と、ディスク記憶媒体などの他の記憶装置から構成される。オンチップメモリ420とオフチップメモリ425は共に、個別に又は独立して、音声インタフェースデバイス430などの各種デバイスに接続されていてもよい。しかしながら、本発明はコア410による実行のため命令を処理する他の方法により構成可能であるということに留意されたい。
PIビット機構は、偽のエラーを低減することによって偽のDUEイベントを低減する。フォルト検出機能がない場合、このようなエラーは、プログラムの最終的な結果に影響を及ぼすことはないであろう。例えば、ダイナミカリーデッド命令の結果に影響を与えるフォルトは、最終的なプログラム出力を変更せず、依然としてエラーとしてハードウェアによりフラグすることが可能である。このような偽のエラーの通知を回避するため、PIビット機構は、即座にエラーを通知するのでなく、PIビットを介しPIとして影響を受けた命令及びデータをマークするようパイプラインのエラー検出ロジックを変更する。その後、プロセッサは、PI値がプログラムの出力に影響を及ぼした可能性があると以降において判断した場合に限って、エラーを通知する。
いくつかの実施例では、PIビットは、エラーが実施に偽のエラーから真のエラーであったかプロセッサが判断可能になると、当該エラーが以降に提起することが可能となるように、エラー情報を伝搬する。従って、PIビット機構は、エラーのフラグ処理からエラーの検出を分離するようにしてもよい。このことは、マイクロプロセッサの設計者に値の利用又は値に対するPIビットが範囲外になったとき、エラーを提起する選択肢を可能にする。
いくつかの実施例における他の効果は、フォルトを検出するパリティチェッカーが、マシーンチェック例外処理を提起するすべての位置に追加的なハードウェアを有する必要がないということである。代わりに、エラーがPIビットに示される。コミットハードウェアは、ハードウェアがマシーンチェック例外処理を提起することを求める唯一の位置となるであろう。
以下の説明では、限定することなく説明のために、本発明の各種特徴の完全なる理解を提供するため、特定の構成、アーキテクチャ、インタフェース、技術などの具体的な詳細が与えられた。しかしながら、本発明の各種特徴がこれらの具体的詳細から逸脱した他の具体例により実施可能であるということは、本開示の利益を有する当業者にとって明らかであろう。ある例では、周知のデバイス、回路及び方法の説明は、本発明の説明を不要な詳細さにより不明りょうにしないように省略された。
図1は、マイクロプロセッサのフォルトビットの可能な結果のブロック図である。 ソフトエラーが命令に発生したことを検出するため、PIビットが命令フローパス上で使用されるときの本発明の一実施例を示すブロック図である。 ソフトエラーが命令に発生したことを検出するため、PIビットが命令フローパス上で使用されるときの本発明の一実施例を示すブロック図である。 ソフトエラーが命令に発生したことを検出するため、PIビットが命令フローパス上で使用されるときの本発明の一実施例を示すブロック図である。 ソフトエラーが命令に発生したことを検出するため、PIビットが命令フローパス上で使用されるときの本発明の一実施例を示すブロック図である。 図3は、本発明の一実施例による処理を示すフロー図である。 図4は、ソフトエラーを検出するため本発明を実現する一例となるコンピュータシステムを示すブロック図である。

Claims (42)

  1. 命令を受け付ける復号化モジュールと、
    前記命令と関連付けされ、前記命令を破壊するのに生じたビット状態の変更が前記命令と共に移動するか特定するビットであって、エラービットがパリティと関連付けされるビットと、
    前記復号化モジュールに接続され、前記命令を格納する格納構成と、
    前記格納構成に接続され、前記命令を処理する複数の段階から構成される命令処理ユニットと、
    から構成されるプロセッサであって、
    当該プロセッサは、命令がコミットポイントにおいて誤ったパスの命令であるか判断することを特徴とするプロセッサ。
  2. 請求項1記載のプロセッサであって、
    前記ビットは、前記命令にエラーが存在しないことを示す第1の値に初期化されることを特徴とするプロセッサ。
  3. 請求項1記載のプロセッサであって、
    前記格納構成は、命令キューであることを特徴とするプロセッサ。
  4. 請求項2記載のプロセッサであって、
    前記格納構成は、エラーの検出により、前記命令のエラービットを第2の値に設定することを特徴とするプロセッサ。
  5. 請求項4記載のプロセッサであって、
    前記命令と前記ビットは、前記複数の段階を介し移動することを特徴とするプロセッサ。
  6. 請求項5記載のプロセッサであって、
    前記命令は、それの第2の値のビットによりコミットすることを特徴とするプロセッサ。
  7. 請求項6記載のプロセッサであって、
    当該プロセッサは、前記命令が誤ったパスの命令である場合、前記ビットを無視することを特徴とするプロセッサ。
  8. 請求項6記載のプロセッサであって、
    当該プロセッサは、前記命令が誤ったパス命令でない場合、マシーンチェックエラーを提起することを特徴とするプロセッサ。
  9. 請求項1記載のプロセッサであって、
    前記命令は、チャンクとすることが可能であり、
    各ビットは、各フェッチチャンクに添付される、
    ことを特徴とするプロセッサ。
  10. 請求項9記載のプロセッサであって、
    前記チャンクは、複数の命令に復号され、
    当該プロセッサは、前記複数の命令のそれぞれに前記チャンクのビット値をコピーする、
    ことを特徴とするプロセッサ。
  11. 請求項1記載のプロセッサであって、
    当該プロセッサは、前記命令のビットをデスティネーションレジスタに転送することを特徴とするプロセッサ。
  12. 請求項11記載のプロセッサであって、
    以降の命令の何れも前記デスティネーションレジスタを読まない場合、前記レジスタのビットは調べられないことを特徴とするプロセッサ。
  13. 請求項11記載のプロセッサであって、
    前記命令のすべてのソースレジスタのビットは、シングルビットを提供するため、前記命令自体のビットと論理的にOR演算されることを特徴とするプロセッサ。
  14. 請求項1記載のプロセッサであって、
    当該プロセッサは、命令からメモリモジュールに前記ビットを転送することを特徴とするプロセッサ。
  15. 請求項14記載のプロセッサであって、
    当該プロセッサは、各キャッシュブロックにビットを添付し、アドレスを書き込むストア命令により、前記ストア命令のビットを前記キャッシュブロックに転送することを特徴とするプロセッサ。
  16. 請求項14記載のプロセッサであって、
    ロードは、前記ビットを調べるため、又はそれがロードしている前記レジスタに前記ビットを転送するため、前記キャッシュブロックを読み込むことを特徴とするプロセッサ。
  17. 請求項1記載のプロセッサであって、
    前記ビットは、PIビットであることを特徴とするプロセッサ。
  18. 命令を復号化するステップと、
    前記命令のパリティに係るビットを前記命令と共にロードするステップと、
    前記命令をキュー処理するステップと、
    前記命令を処理するため、パイプラインの段階に前記命令を伝搬するステップと、
    前記命令がコミットポイントにおいて誤ったパスの命令であるか判断するステップと、
    とから構成されることを特徴とする方法。
  19. 請求項18記載の方法であって、さらに、
    前記命令が誤ったパス命令である場合、前記ビットを無視するステップを有することを特徴とする方法。
  20. 請求項19記載の方法であって、さらに、
    前記命令が誤ったパス命令でなかった場合、マシーンチェックエラーを提起するステップを有することを特徴とする方法。
  21. エントリを受け付ける復号化モジュールと、
    前記エントリと関連付けされ、前記エントリを破壊するビット状態の変更が生じたか特定する検出ビットを格納する格納要素と、
    前記エントリを処理する命令キューと、
    エントリのフローを複数の段階に伝搬する命令フローパスと、
    エントリが誤ったパス上にあるか判断するコミットモジュールと、
    から構成されることを特徴とする装置。
  22. 請求項21記載の装置であって、
    前記検出ビットは、PIビットであることを特徴とする装置。
  23. 請求項22記載の装置であって、
    前記検出ビットは、前記命令のパリティに関連付けされることを特徴とする装置。
  24. 請求項21記載の装置であって、
    前記検出ビットは、前記エントリにエラーが存在しないことを示す第1の値に初期化されることを特徴とする装置。
  25. 請求項24記載の装置であって、
    前記命令キューは、エラーを検出すると、前記エントリの検出ビットを第2の値に設定することを特徴とする装置。
  26. 請求項25記載の装置であって、
    前記エントリは、前記命令フローパスの複数の段階に発信及び移動することを特徴とする装置。
  27. 請求項25記載の装置であって、
    前記エントリは、それの第2の値における前記検出ビットによりコミットすることを特徴とする装置。
  28. 請求項27記載の装置であって、
    当該装置は、前記エントリが誤ったパスのエントリであると前記コミットモジュールが判断する場合、前記検出ビットを無視することを特徴とする装置。
  29. 請求項28記載の装置であって、
    当該装置は、前記エントリが誤ったパスエントリでないと前記コミットモジュールが判断する場合、マシーンチェックエラーを提起することを特徴とする装置。
  30. フェッチ処理前にエントリを格納するオフチップメモリと、
    前記オフチップメモリに接続され、エントリを受け付ける復号化モジュールと、前記エントリと関連付けされるビットを格納する格納要素と、前記エントリを処理する命令キューと、エントリのフローを複数の段階に伝搬する命令フローパスと、エントリが誤ったパス上にあるか判断するコミットモジュールとを有するプロセッサと、
    から構成されることを特徴とするシステム。
  31. 請求項30記載のシステムであって、さらに、
    前記オフチップメモリに接続される音声インタフェースを有することを特徴とするシステム。
  32. 請求項30記載のシステムであって、
    前記ビットは、PIビットであることを特徴とするシステム。
  33. 請求項30記載のシステムであって、
    前記ビットは、前記エントリを破壊するビット状態の変更が生じたか特定することを特徴とするシステム。
  34. 請求項33記載のシステムであって、
    前記ビット状態の変更は、パリティであることを特徴とするシステム。
  35. 請求項30記載のシステムであって、
    前記ビットは、前記エントリにエラーが存在しないことを示す第1の値に初期化されることを特徴とするシステム。
  36. 請求項35記載のシステムであって、
    前記命令キューは、エラーを検出すると、前記エントリのビットを第2の値に設定することを特徴とするシステム。
  37. 請求項36記載のシステムであって、
    前記エントリは、前記命令フローパスの複数の段階に発信及び移動することを特徴とするシステム。
  38. 請求項36記載のシステムであって、
    前記エントリは、それの第2の値のビットによりコミットすることを特徴とするシステム。
  39. 請求項38記載のシステムであって、
    当該システムは、前記エントリが誤ったパスエントリであると前記コミットモジュールが判断する場合、前記ビットを無視することを特徴とするシステム。
  40. 請求項39記載のシステムであって、
    当該システムは、前記エントリが誤ったパスエントリでないと前記コミットモジュールが判断する場合、マシーンチェックエラーを提起することを特徴とするシステム。
  41. 請求項30記載のシステムであって、さらに、
    オンチップメモリを有することを特徴とするシステム。
  42. 請求項41記載のシステムであって、さらに、
    前記オンチップメモリに接続される音声インタフェースデバイスを有することを特徴とするシステム。
JP2007515202A 2004-06-17 2005-05-20 マイクロプロセッサにおける偽エラーを低減する方法及び装置 Expired - Fee Related JP4448539B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/871,430 US7555703B2 (en) 2004-06-17 2004-06-17 Method and apparatus for reducing false error detection in a microprocessor
PCT/US2005/017772 WO2006007147A1 (en) 2004-06-17 2005-05-20 Method and apparatus for reducing false error detection in a microprocessor

Publications (2)

Publication Number Publication Date
JP2008501191A true JP2008501191A (ja) 2008-01-17
JP4448539B2 JP4448539B2 (ja) 2010-04-14

Family

ID=34981730

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007515202A Expired - Fee Related JP4448539B2 (ja) 2004-06-17 2005-05-20 マイクロプロセッサにおける偽エラーを低減する方法及び装置

Country Status (6)

Country Link
US (2) US7555703B2 (ja)
JP (1) JP4448539B2 (ja)
CN (1) CN100449480C (ja)
DE (1) DE112005001338T5 (ja)
TW (1) TWI277861B (ja)
WO (1) WO2006007147A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012515386A (ja) * 2009-01-16 2012-07-05 イマジネイション テクノロジーズ リミテッド マルチスレッド式データ処理システム

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050283590A1 (en) * 2004-06-17 2005-12-22 Weaver Christopher T Reducing false error detection in a microprocessor by tracking dynamically dead instructions
US7370231B2 (en) * 2004-12-14 2008-05-06 Intel Corporation Method of handling errors
US7581152B2 (en) * 2004-12-22 2009-08-25 Intel Corporation Fault free store data path for software implementation of redundant multithreading environments
US20060190700A1 (en) * 2005-02-22 2006-08-24 International Business Machines Corporation Handling permanent and transient errors using a SIMD unit
DE102006005817B4 (de) * 2006-02-08 2014-06-26 Infineon Technologies Ag Fehlererkennungsvorrichtung für einen Adressdecoder und Vorrichtung zur Fehlererkennung für einen Adressdecoder
DE102006062703A1 (de) * 2006-02-08 2007-08-30 Infineon Technologies Ag Fehlererkennungsvorrichtung und Verfahren zur Fehlererkennung für einen Befehlsdecoder
US8201067B2 (en) * 2008-02-25 2012-06-12 International Business Machines Corporation Processor error checking for instruction data
US7849387B2 (en) * 2008-04-23 2010-12-07 Intel Corporation Detecting architectural vulnerability of processor resources
US20110099439A1 (en) * 2009-10-23 2011-04-28 Infineon Technologies Ag Automatic diverse software generation for use in high integrity systems
US20110208948A1 (en) * 2010-02-23 2011-08-25 Infineon Technologies Ag Reading to and writing from peripherals with temporally separated redundant processor execution
US8516356B2 (en) 2010-07-20 2013-08-20 Infineon Technologies Ag Real-time error detection by inverse processing
US8671309B2 (en) * 2011-07-01 2014-03-11 Intel Corporation Mechanism for advanced server machine check recovery and associated system software enhancements
US9176739B2 (en) * 2011-08-05 2015-11-03 Cisco Technology, Inc. System and method for checking run-time consistency for sequentially and non-sequentially fetched instructions
US9106258B2 (en) * 2013-11-22 2015-08-11 International Business Machines Corporation Early data tag to allow data CRC bypass via a speculative memory data return protocol
FR3030793B1 (fr) * 2014-12-19 2018-02-16 Clearsy Procede d'arret d'urgence et systeme securitaire associe
US10761925B2 (en) * 2015-03-24 2020-09-01 Nxp Usa, Inc. Multi-channel network-on-a-chip
US9595349B2 (en) * 2015-06-25 2017-03-14 Intel Corporation Hardware apparatuses and methods to check data storage devices for transient faults
US10802932B2 (en) * 2017-12-04 2020-10-13 Nxp Usa, Inc. Data processing system having lockstep operation

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3531631A (en) * 1967-01-11 1970-09-29 Ibm Parity checking system
US4241396A (en) * 1978-10-23 1980-12-23 International Business Machines Corporation Tagged pointer handling apparatus
US4224681A (en) * 1978-12-15 1980-09-23 Digital Equipment Corporation Parity processing in arithmetic operations
US4604750A (en) * 1983-11-07 1986-08-05 Digital Equipment Corporation Pipeline error correction
US4794517A (en) * 1985-04-15 1988-12-27 International Business Machines Corporation Three phased pipelined signal processor
JPS6312030A (ja) 1986-07-02 1988-01-19 Nec Corp 情報処理装置のエラ−処理機構
US5297263A (en) * 1987-07-17 1994-03-22 Mitsubishi Denki Kabushiki Kaisha Microprocessor with pipeline system having exception processing features
US4888679A (en) * 1988-01-11 1989-12-19 Digital Equipment Corporation Method and apparatus using a cache and main memory for both vector processing and scalar processing by prefetching cache blocks including vector data elements
JP2618958B2 (ja) * 1988-03-28 1997-06-11 株式会社東芝 パリティチェック制御装置
GB8810948D0 (en) * 1988-05-09 1988-06-15 Plessey Telecomm Tdm data transmission system
JPH03209523A (ja) 1990-01-11 1991-09-12 Fujitsu Ltd 命令データエラー検出方式
JPH04264624A (ja) 1991-02-19 1992-09-21 Toshiba Corp プロセッサ
US5649090A (en) * 1991-05-31 1997-07-15 Bull Hn Information Systems Inc. Fault tolerant multiprocessor computer system
EP0529303A3 (en) * 1991-08-29 1993-09-22 International Business Machines Corporation Checkpoint synchronization with instruction overlap enabled
EP0596144A1 (en) * 1992-10-07 1994-05-11 International Business Machines Corporation Hierarchical memory system for microcode and means for correcting errors in the microcode
JP3035108B2 (ja) 1993-04-02 2000-04-17 株式会社東芝 並列演算処理装置
US5537559A (en) * 1994-02-08 1996-07-16 Meridian Semiconductor, Inc. Exception handling circuit and method
US5535226A (en) * 1994-05-31 1996-07-09 International Business Machines Corporation On-chip ECC status
US5673426A (en) * 1995-02-14 1997-09-30 Hal Computer Systems, Inc. Processor structure and method for tracking floating-point exceptions
KR100206887B1 (ko) * 1995-12-31 1999-07-01 구본준 프로그램 오동작 방지를 위한 씨피유
US5813027A (en) * 1996-03-08 1998-09-22 Vlsi Technology, Inc. Method for storing and transferring wave table audio samples using a DSP cache, a link list structure, and compression
US5872910A (en) * 1996-12-27 1999-02-16 Unisys Corporation Parity-error injection system for an instruction processor
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
US6253306B1 (en) * 1998-07-29 2001-06-26 Advanced Micro Devices, Inc. Prefetch instruction mechanism for processor
US6457119B1 (en) * 1999-07-23 2002-09-24 Intel Corporation Processor instruction pipeline with error detection scheme
US6738892B1 (en) * 1999-10-20 2004-05-18 Transmeta Corporation Use of enable bits to control execution of selected instructions
US6675341B1 (en) * 1999-11-17 2004-01-06 International Business Machines Corporation Extended error correction for SEC-DED codes with package error detection ability
US6862677B1 (en) * 2000-02-16 2005-03-01 Koninklijke Philips Electronics N.V. System and method for eliminating write back to register using dead field indicator
KR20010087046A (ko) 2000-03-06 2001-09-15 서평원 컴퓨터 시스템
US6543028B1 (en) * 2000-03-31 2003-04-01 Intel Corporation Silent data corruption prevention due to instruction corruption by soft errors
US6654909B1 (en) * 2000-06-30 2003-11-25 Intel Corporation Apparatus and method for protecting critical resources against soft errors in high performance microprocessors
US6662319B1 (en) * 2000-08-31 2003-12-09 Hewlett-Packard Development Company, L.P. Special encoding of known bad data
US6895527B1 (en) * 2000-09-30 2005-05-17 Intel Corporation Error recovery for speculative memory accesses
US6823448B2 (en) * 2000-12-15 2004-11-23 Intel Corporation Exception handling using an exception pipeline in a pipelined processor
US6704890B1 (en) * 2000-12-22 2004-03-09 Nortel Networks Limited Skew compensating interface for operation with arbitrary data
US6804799B2 (en) * 2001-06-26 2004-10-12 Advanced Micro Devices, Inc. Using type bits to track storage of ECC and predecode bits in a level two cache
US7318169B2 (en) 2002-05-15 2008-01-08 David Czajkowski Fault tolerant computer
US7222270B2 (en) * 2003-01-10 2007-05-22 International Business Machines Corporation Method for tagging uncorrectable errors for symmetric multiprocessors
US20050138478A1 (en) * 2003-11-14 2005-06-23 Safford Kevin D. Error detection method and system for processors that employ alternating threads

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012515386A (ja) * 2009-01-16 2012-07-05 イマジネイション テクノロジーズ リミテッド マルチスレッド式データ処理システム

Also Published As

Publication number Publication date
DE112005001338T5 (de) 2007-06-14
WO2006007147A1 (en) 2006-01-19
US20050283712A1 (en) 2005-12-22
TW200619921A (en) 2006-06-16
CN1969256A (zh) 2007-05-23
US7555703B2 (en) 2009-06-30
JP4448539B2 (ja) 2010-04-14
CN100449480C (zh) 2009-01-07
TWI277861B (en) 2007-04-01
US20050283716A1 (en) 2005-12-22
US7543221B2 (en) 2009-06-02

Similar Documents

Publication Publication Date Title
JP4448539B2 (ja) マイクロプロセッサにおける偽エラーを低減する方法及び装置
US6802039B1 (en) Using hardware or firmware for cache tag and data ECC soft error correction
US7243262B2 (en) Incremental checkpointing in a multi-threaded architecture
US7308607B2 (en) Periodic checkpointing in a redundantly multi-threaded architecture
Weaver et al. Techniques to reduce the soft error rate of a high-performance microprocessor
US7373548B2 (en) Hardware recovery in a multi-threaded architecture
US6625756B1 (en) Replay mechanism for soft error recovery
US7747932B2 (en) Reducing the uncorrectable error rate in a lockstepped dual-modular redundancy system
US7512772B2 (en) Soft error handling in microprocessors
US7380169B2 (en) Converting merge buffer system-kill errors to process-kill errors
US20050193283A1 (en) Buffering unchecked stores for fault detection in redundant multithreading systems using speculative memory support
US6543028B1 (en) Silent data corruption prevention due to instruction corruption by soft errors
US9529653B2 (en) Processor register error correction management
US6571363B1 (en) Single event upset tolerant microprocessor architecture
US7596738B2 (en) Method and apparatus for classifying memory errors
US7555692B1 (en) End-to-end residue based protection of an execution pipeline
KR100898650B1 (ko) 애플리케이션 프로그램에의 프로세스 킬 오류 벡터링
JP4531060B2 (ja) 投機的メモリサポートを利用した冗長なマルチスレッディングシステムにおける故障検出のための外部メモリの更新管理
US7386756B2 (en) Reducing false error detection in a microprocessor by tracking instructions neutral to errors
US20160065243A1 (en) Radiation hardening architectural extensions for a radiation hardened by design microprocessor
US8495452B2 (en) Handling corrupted background data in an out of order execution environment
US20050283590A1 (en) Reducing false error detection in a microprocessor by tracking dynamically dead instructions

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080618

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080701

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081001

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090310

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090610

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090714

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091106

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20091124

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

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

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

Free format text: PAYMENT UNTIL: 20130129

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4448539

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

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees