(57)【要約】  投機的メモリサポートを利用して冗長マルチスレッディングシステムにおける故障検出のため、外部メモリ更新を管理するマルチスレッドアーキテクチャが開示される。特に、投機的メモリサポートを利用して冗長スレッドを外部の更新から分離することによって、方法は、ＳＲＴプロセッサ上のロード値の入力複製を提供する。これにより、本方法は、専用の構成が入力複製を提供する必要を回避する。
2007519101.tif 000002
【特許請求の範囲】
【請求項１】
リーディングスレッドとトレイリングスレッドとして、対応する命令スレッドをパラレルに実行するステップと、
前記リーディングスレッドにおいて実行される命令からの結果と、前記トレイリングスレッドにおいて実行される命令からの結果とをメモリにセーブするステップと、
前記メモリにセーブされた結果を比較するステップと、
前記比較された結果に基づき、単独の命令セットをメモリ状態にコミットするステップと、
前記コミットするステップの完了まで外部の更新を保留するステップと、
から構成されることを特徴とする方法。
【請求項２】
請求項１記載の方法であって、
前記セーブされた結果は、投機的としてセーブされることを特徴とする方法。
【請求項３】
請求項１記載の方法であって、
前記命令は、エポック命令であることを特徴とする方法。
【請求項４】
請求項３記載の方法であって、
前記エポック中に前記リーディングスレッドにより読まれる対応する命令は、前記対応するトレイリングスレッドのロードが行われるとき、同一の値を含むことを特徴とする方法。
【請求項５】
リーディングスレッドとトレイリングスレッドとして、パラレルスレッドを実行する手段と、
前記実行されたスレッドをメモリにセーブする手段と、
前記メモリにセーブされた結果を比較する手段と、
前記比較された結果に基づき、単独のスレッドセットをメモリ状態にコミットする手段と、
前記コミットするステップの完了まで外部の更新を保留する手段と、
から構成されることを特徴とする装置。
【請求項６】
請求項５記載の装置であって、
前記実行されたスレッドは、エポックスレッドであることを特徴とする装置。
【請求項７】
請求項６記載の装置であって、
各エポックは、２回実行されることを特徴とする装置。
【請求項８】
請求項５記載の装置であって、
前記エポック中に前記リーディングスレッドにより読まれる対応する命令は、前記対応するトレイリングスレッドのロードが行われるとき、同一の値を含むことを特徴とする装置。
【請求項９】
請求項８記載の装置であって、
前記バッファされたスレッドは、投機的として格納されることを特徴とする装置。
【請求項１０】
請求項９記載の装置であって、
前記単独のセットは、前記比較結果が一致する場合、コミットされることを特徴とする装置。
【発明の詳細な説明】
【発明の詳細な説明】
【０００１】
［関連出願］
本米国特許出願は、２００３年１２月３０日に出願された米国特許出願番号第１０／７４９，６１８号「ＢＵＦＦＥＲＩＮＧ  ＵＮＣＨＥＣＫＥＤ  ＳＴＯＲＥＳ  ＦＯＲ  ＦＡＵＬＴ  ＤＥＴＥＣＴＩＯＮ  ＩＮ  ＲＭＳ  ＵＳＩＮＧ  ＳＰＥＣＵＬＡＴＩＶＥ  ＭＥＭＯＲＹ  ＳＵＰＰＯＲＴ」に関連する。
【０００２】
［背景情報］
プロセッサは、アルファ粒子や宇宙線の衝突によりもたらされる過渡故障（ｔｒａｎｓｉｅｎｔ  ｆａｕｌｔ）に対してますます脆弱となってきている。これらの故障は、「ソフト」エラーと呼ばれるオペレーショナルエラーを導くかもしれない。なぜなら、これらのエラーはプロセッサのパーマネントな障害をもたらさないためである。中性子などの宇宙線粒子による衝突は、プロセッサの実際的な保護がないため特に重大である。過渡故障は、現在プロセッサベース装置の故障の９０％以上を説明するものとなっている。
【０００３】
トランジスタのサイズが縮小するに従い、各トランジスタは宇宙線の衝突に対して脆弱性が低くなってきている。しかしながら、電圧レベルの低下は、トランジスタサイズの縮小を伴い、対応するプロセッサのトランジスタ数の減少は、宇宙線の衝突又は他のソフトエラーの原因に対するプロセッサ全体の影響を指数的に増大させる。この問題を調整するため、マルチプロセッサシステムの選択された故障レートの実現は、各プロセッサのさらなる低い故障レートを要求する。このトレンドの結果として、典型的には、ミッションクリティカル（ｍｉｓｓｉｏｎ−ｃｒｉｔｉｃａｌ）なアプリケーションに対して用意される故障検出及び回復技術は、他のプロセッサアプリケーションにますます適用可能となってきている。
【０００４】
エラーが検出されないとき、ＳＤＣ（Ｓｉｌｅｎｔ  Ｄａｔａ  Ｃｏｒｒｕｐｔｉｏｎ）が発生し、プロセッサがリセットされるまで持続しうるデータ値の損傷を招くかもしれない。ＳＤＣレートは、ＳＤＣイベントが発生するレートである。ソフトエラーは、例えば、パリティチェックを利用して検出されるが、訂正不可能なエラーである。
【０００５】
故障検出サポートは、故障がパーマネントストレージに伝搬しうる前に、計算を停止することによりプロセッサのＳＤＣレートを低下させることができる。例えば、パリティは、メモリ構造のシングル・ビットエラーに対するＳＤＣを回避する周知の故障検出機構である。残念なことに、ハイパフォーマンスプロセッサのラッチ又はロジックにパリティを加えることは、サイクル時間及び全体的なパフォーマンスに悪影響を及ぼしうる。この結果、プロセッサ設計者は、プロセッサ内の故障を検出するため、冗長実行機構に依存してきた。
【０００６】
現在の冗長実行システムは、一般に２つの同一のロックステップ（サイクル同期）プロセッサ上で同一のプログラムの同一のコピーを実行することにより、プロセッサ故障を検出する「ロックステッピング（ｌｏｃｋｓｔｅｐｐｉｎｇ）」として知られる技術を利用する。各サイクルでは、２つのプロセッサに同一の入力が与えられ、チェッカー回路がこれらの出力を比較する。出力が一致しないと、チェッカーはエラーをフラグし、回復シーケンスを開始することができる。残念なことに、ロックステッピングは、パフォーマンスを向上させるのに利用可能なプロセッサリソースを浪費する。
【０００７】
［詳細な説明］
以下の説明では、限定のためでなく説明のため、本発明の各種特徴の完全なる理解を提供するため、特定の構造、アーキテクチャ、インタフェース、技術などの具体的詳細が提供される。しかしながら、本発明の各種特徴がこれらの具体的詳細から逸脱した他の例により実施可能であるということは、本開示の利用する当業者にとって明らかであろう。ある例では、周知の装置、回路及び方法の説明は、不要な詳細により本発明の説明を不明りょうにしないように省略される。
【０００８】
複製範囲（Ｓｐｈｅｒｅ  ｏｆ  Ｒｅｐｌｉｃａｔｉｏｎ）
図１は、冗長マルチスレッドアーキテクチャの一実施例のブロック図である。冗長マルチスレッドアーキテクチャでは、独立したスレッドとしてプログラムの２つのコピーを実行することにより故障を検出することができる。各スレッドには同一の入力が与えられ、これらの出力がエラーが発生しているか判断するのに比較される。「複製範囲」としてここで呼ばれるコンセプトに関して、冗長マルチスレッド処理を説明することができる。複製範囲は、論理的又は物理的冗長処理の境界である。
【０００９】
複製範囲１３０内のコンポーネント（例えば、リーディングスレッド１１０を実行するプロセッサとトレイリングスレッド１２０を実行するプロセッサなど）は、冗長実行の対象となる。他方、複製範囲１３０外のコンポーネント（例えば、メモリ１５０、ＲＡＩＤ１６０など）は、冗長実行の対象外である。故障保護が、ＲＡＩＤ１６０に対するパリティ及びメモリ１５０に対する誤り訂正符号などの他の技術により提供される。他の装置は、複製範囲１３０の外部に存在することが可能であり、及び／又は複製範囲１３０外の装置に対して故障保護を提供するため、他の技術が利用可能である。
【００１０】
複製範囲１３０に入力されるデータは、当該データを複製し、データのコピーをリーディングスレッド１１０とトレイリングスレッド１２０に送る入力複製エージェント１７０を介して入力される。同様に、複製範囲１３０から出力されるデータは、当該データを比較し、エラーが発生しているか判断する出力比較エージェント１８０を介して出力される。複製範囲１３０の境界を変更することは、パフォーマンス対ハードウェア量のトレードオフをもたらす。例えば、メモリ１５０の複製は、ストア命令の出力比較を回避することによりメモリへのより高速なアクセスを可能にするが、システム内のメモリ量を２倍にすることによりシステムコストを増大させるであろう。
【００１１】
一般に、「ＳｏＲ−レジスタ」と「ＳｏＲ−キャッシュ」と呼ぶことが可能な２つの複製範囲がある。ＳｏＲ−レジスタアーキテクチャでは、レジスタファイルとキャッシュは、複製範囲外にある。ＳｏＲ−レジスタ複製範囲からの出力は、故障について比較されるストアアドレス及びデータ（ｓｔｏｒｅ  ａｄｄｒｅｓｓ  ａｎｄ  ｄａｔａ）並びにレジスタライト（ｒｅｇｉｓｔｅｒ  ｗｒｉｔｅ）を含む。ＳｏＲ−キャッシュアーキテクチャでは、命令及びデータキャッシュは複製範囲外であり、レジスタライト以外のすべてのストアアドレス及びデータは、故障のため比較される。
【００１２】
ＳｏＲ−キャッシュアーキテクチャは、ストアのみが（及びおそらく限られた個数の他の選択された命令）故障のため比較されるという効果を有し、それは、チェッカー帯域幅を減少させ、ストア処理を遅延させないことによりパフォーマンスを向上させる。他方、ＳｏＲ−レジスタアーキテクチャは、故障について大部分の命令を比較することを必要とし、これは、より大きなチェッカー帯域幅を必要とし、ストア処理以前のすべての命令が故障がないということをチェッカーが判断するまで、ストア処理を遅延させることが可能である。ＳｏＲ−キャッシュは、ＳｏＲ−レジスタと同一の過渡故障カバレッジレベルを提供することが可能である。なぜなら、複製範囲の境界においてエラーとして明示されない故障はシステム状態を損傷させず、このため、効果的にマスクされるためである。
【００１３】
故障回復を提供するため、各命令結果は、各命令に対応するチェックポイントを提供するよう比較されるべきである。従ってここでは、ＳｏＲ−レジスタアーキテクチャが、より詳細に説明される。
【００１４】
同時冗長スレッドアーキテクチャの概略
図２は、同時冗長スレッドアーキテクチャの一実施例のブロック図である。図２のアーキテクチャは、各命令からの出力又は結果がエラーを検出するため比較されるＳｏＲ−レジスタアーキテクチャである。
【００１５】
リーディングスレッド２１０とトレイリングスレッド２２０は、リーディングスレッド２１０がトレイリングスレッド２２０が同一の命令を実行する前に命令を実行するように、異なる時点から実行される対応するスレッドを表す。一実施例では、リーディングスレッド２１０とトレイリングスレッド２２０は同一である。あるいは、リーディングスレッド２１０及び／又はトレイリングスレッド２２０は、コントロール又は他方のスレッドには含まれない他の情報を含むことが可能である。リーディングスレッド２１０とトレイリングスレッド２２０は、同一のプロセッサにより実行可能であり、又は異なるプロセッサにより実行可能である。
【００１６】
命令アドレスは、命令複製キュー２３０を介しリーディングスレッド２１０からトレイリングスレッド２２０にわたされる。命令複製キュー２３０を介し命令をわたすことは、リーディングスレッド２１０における命令の実行とトレイリングスレッド２２０における同一の命令の実行との間の異なる時点又は「スラック（ｓｌａｃｋ）」に対するコントロールを可能にする。
【００１７】
入力データは、ソースレジスタ値キュー２４０を介しリーディングスレッド２１０からトレイリングスレッド２２０にわたされる。一実施例では、ソースレジスタ値キュー２４０は、リーディングスレッド２１０とトレイリングスレッド２２０の両方について入力データを複製する。出力データは、デスティネーションレジスタ値キュー２５０を介しトレイリングスレッド２２０からリーディングスレッド２１０にわたされる。一実施例では、デスティネーションレジスタ値キュー２４０は、リーディングスレッド２１０とトレイリングスレッド２２０の両方からの出力データを比較する。
【００１８】
一実施例では、リーディングスレッド２１０は、トレイリングスレッド２２０の前に数百の命令を実行する。任意数の「スラック」の命令が利用可能である。一実施例では、トレイリングスレッド２２０の命令フェッチを低速化及び／又は遅延させることにより、スラックが行われる。他の実施例では、命令複製が命令複製キュー２３０により実行されない場合、命令複製キュー２３０又は命令複製機構によりスラックを行うことが可能である。
【００１９】
同時冗長スレッドアーキテクチャにおけるスラックを発生させる技術に関するさらなる詳細は、Ｓｈｕｎｈｅｎｄｕ  Ｓ．Ｍｕｋｈｅｒｊｅｅ、Ｍｉｃｈａｅｌ  Ｋｏｎｔｚ及びＳｔｅｖｅｎ  Ｋ．Ｒｅｉｎｈａｒｄｔによる“Ｄｅｔａｉｌｅｄ  Ｄｅｓｉｇｎ  ａｎｄ  Ｅｖａｌｕａｔｉｏｎ  ｏｆ  Ｒｅｄｕｎｄａｎｔ  Ｍｕｌｔｉｔｈｒｅａｄｉｎｇ  Ａｌｔｅｒｎａｔｉｖｅｓ”（Ｐｒｏｃ．２９ｔｈ  Ｉｎｔ‘ｌ  Ｓｙｍｐ．ｏｎ  Ｃｏｍｐｕｔｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ，Ｍａｙ  ２００２）と、Ｓｔｅｖｅｎ  Ｋ．Ｒｅｉｎｈａｒｄｔ及びＳｈｕｎｈｅｎｄｕ  Ｓ．Ｍｕｋｈｅｒｊｅｅによる“Ｔｒａｎｓｉｅｎｔ  Ｆａｕｌｔ  Ｄｅｔｅｃｔｉｏｎ  ｖｉａ  Ｓｉｍｕｌｔａｎｅｏｕｓ  Ｍｕｌｔｉｔｈｒｅａｄｉｎｇ”（Ｐｒｏｃ．２７ｔｈ  Ｉｎｔ’ｌ  Ｓｙｍｐ．ｏｎ  Ｃｏｍｐｕｔｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ，Ｊｕｎｅ  ２０００）に見つけることできる。
【００２０】
図３は、同時冗長スレッドアーキテクチャの一実施例の最小最大スラック関係を示す。図３の実施例は、上述のＳｏＲ−レジスタである。最小スラックは、キャッシュミス、実行からリタイアまでの遅延、ロードアドレス及び値をトレイリングスレッドに転送するのに生ずる遅延のトータルの遅延である。リーディングスレッドがキャッシュミスを被り、トレイリングスレッドからの対応するロードが最小スラック前に実行ポイントに到着する場合、トレイリングスレッドはストール（ｓｔａｌｌ）される。
【００２１】
同様に、最大スラックは、リーディングスレッドにおけるリタイアから故障検出までの遅延である。一般に、リーディングスレッドからのリタイアされた命令が、リタイアメント後にプロセッサに留まることを可能にするだけのある量のバッファリングが存在する。これは、リーディングスレッドとトレイリングスレッド２２０との間の最大スラックを規定する。バッファがいっぱいになると、トレイリングスレッドがバッファからさらなる命令を使用することを可能にするため、リーディングスレッドがストールされる。これにより、２つのスレッド間のスラックが最大スラックより大きい場合、全体的なパフォーマンスは低下する。
【００２２】
投機的メモリサポート
投機的マルチスレッディングシステムでは、シーケンシャルプログラムは、エポック（ｅｐｏｃｈ）又はタスク（ｔａｓｋ）と呼ばれる論理的にシーケンシャルなセグメントに分割される。ＳＭＴプロセッサ内の別々のスレッド又は別々のプロセッサコアにおいて、複数のエポックがパラレルに実行される。任意の与えられた時点において、最先のエポックのみが元のシーケンシャルプログラムの実行に対応する。他のすべてのエポックの実行は、過去の潜在的なコントロール及びデータハザードの投機に基づく。エポック間の投機ミスの場合、投機ミスのエポックがスカッシュ（ｓｑｕａｓｈ）される。エポックが実行を完了し、最先のエポックになると、それの結果が当該計算のシーケンシャルアーキテクチャ状態にコミットされる。
【００２３】
投機的マルチスレッディングシステムの一実施例では、コンパイラがヒューリスティックに基づき、コードを統計的にエポックにパーティションする。例えば、ループボディがしばしばエポックを構成するのに利用されてもよい。この場合、ループの複数回の繰り返しにより、パラレルに実行される実行時間に複数のエポックが生成される。
【００２４】
本システムは、エポック間データハザードにこのパラレル実行中にシーケンシャルプログラムのセマティックを維持させる必要がある。一実施例では、コンパイラは、エポックの生成のためのものであり、レジスタベースのエポック間通信を明示的に管理することが可能である（おそらく、ハードウェアサポートにより）。メモリベースデータハザードは、（一般には）統計的に予測可能ではなく、従って、実行時間において処理される必要がある。可能なときにはそれらを満たし、そうでない場合には、違反を検出し、エポックをスカッシュするエポック間メモリデータ依存性を管理するメモリシステム拡張が、投機的マルチスレッディングシステムのキーコンポーネントとなる。
【００２５】
図４は、エポック間メモリデータ依存性を管理するメモリシステム拡張を示す。違反を検出し、エポックをすことは、投機的マルチスレッディングシステムの重要な特徴である。一実施例では、ステップ４００において、ロードはプログラムの論理的シーケンシャル実行におけるその直前の同一のアドレスにストアの値を返す必要がある。例えば、本システムは、以下の優先順位により返す必要がある。第１に、存在する場合には、同一エポック内の直近のストアからの値、第２に、論理的に最も近い論理的に先行するエポックの直近のストアからの値、最後に、コミットされているシーケンシャルメモリ状態からの値の順序でされる。さらに、ロードはすでに実行された論理的に後続するストアによる影響を受けてはならない。これは、メモリ参照がエポック内でシーケンシャルに実行されるようであり、これにより、論理的に後続するストアが論理的に連続するエポックに属することをプロセッサが保証すると仮定している。
【００２６】
次にステップ４１０において、ストアは、何れかの論理的に後続するロードがすでに実行されているか検出しなければならない。実行されている場合、それはデータ依存性に違反している。その後、そのようなロードを含む任意のエポックと、潜在的に以降のエポックがスカッシュされる必要がある。ステップ４２０において、コミット処理がエポック中に実行されるエクスポーズ（ｅｘｐｏｓｅｄ）されたストアセットを取得し、それらをコミットされたシーケンシャルメモリ状態にアトミックに適用する。エクスポーズされたストアは、エポック内のある位置への直近のストアである。非エクスポーズストア、すなわち、同一エポック内に上書きされた値を有するストアは、それらが実行されるエポックの外部においては観察することはできない。最後にステップ４３０において、アボート（ａｂｏｒｔ）処理が、エポック中に実行されたストアセットを取得し、それらを破棄する。
【００２７】
図５は、投機的メモリサポートを利用した冗長マルチスレッディングシステムにおける故障検出のため、外部メモリ更新から冗長実行を分離するブロック図である。外部メモリ更新から実行を分離することによって、ロード入力の正確な複製が提供される。
【００２８】
本実施例では、リーディングスレッド５１０とトレイリングスレッド２２０は、パラレルにエポックを実行する。命令複製キュー５３０は、リーディングスレッド５１０からトレイリングスレッド５２０にエポックを送信する。リーディングスレッド５１０とトレイリングスレッド５２０は、複製範囲５００を有する。
【００２９】
あるエポックの個別の実行は、「インスタンス」というエポックとして知られる。エポックの２つのインスタンスは、ＲＭＴシステムのリーディングスレッド５１０とトレイリングスレッド５２０によりパラレルに実行される。実行されると、ストアはメモリシステム５４０に送信される。現在のエポック中にすでにアクセスされた位置を変更する外部エージェントからのメモリ変更は、適用されない。むしろ、それらはメモリ５４０に配置される。それらがメモリに配備されているため、当該エポック中にリーディングスレッドにより読まれる任意の位置は、対応するトレイリングスレッドのロードが発生するとき同一の値を有することとなる。これらのストアは、上述の投機的メモリサポートを利用して、投機的ストアとしてメモリシステムに保持される。エポックの両方のインスタンスが完了すると、５５０においてエクスポーズされたストアが比較される。比較されたストアが一致する場合、１つのエクスポーズストアセットが、アーキテクチャメモリ状態５６０にコミットされる。
【００３０】
本実施例では、上述のように検出される状態は、現在実行中のエポック内で読まれた位置への外部書き込みである。投機的メモリシステムでは、この状態の出現は、誤った投機を示し、現在実行中のエポックがスカッシュされる。ＲＭＴシステムの現在のエポックの２つのインスタンスをスカッシュすることは、同様にダイバージェント（ｄｉｖｅｒｇｅｎｔ）な実行を回避し、順方向の進行が保証可能である限り適切な解を表すであろう。しかしながら、緩和されたメモリコンシスタンシモデルによるＲＭＴシステムでは、このイベントはスカッシュを生じさせる必要はない。外部に書き込まれた位置の以前の値が、エポックの終わりまで維持可能であり、両方のエポックインスタンス内の以降のロードに提供することが可能である場合、２つのインスタンスは、同一の実行パスに沿って続けられる。ステップ５７０において、外部書き込みは、現在のエポックの完了によりローカルエポックに視認可能とされる。
【００３１】
投機的メモリシステムのコンフリクトするアクセス検出機構は、ＲＭＴシステムにおいてダイバージェントな実行を引き起こしうるイベントのスーパーセットを特定するかもしれない。具体的には、現在のエポック中にローカルに読まれたブロック内の位置への外部の書き込みが行われる３つの状況が存在し、これらはすべて投機的メモリシステムによりフラグされることとなる。
【００３２】
第１の状況では、同一のキャッシュブロック内の外部書き込みされた位置は、ローカルプロセッサにより読まれる位置と異なる。この場合、投機的メモリシステムは、「フォースコンフリクト（ｆａｌｓｅ  ｃｏｎｆｌｉｃｔ）」を示す。この状況は、当該ブロック内のどのワードがアクセスされたか正確に示すための追加的な状態ビットを使用することにより回避することができる。
【００３３】
第２の状況では、リーディングスレッドとトレイリングスレッドの両方がそれらの対応するアクセスを完了させた後（しかし、当該エポックの終了前）、外部書き込みが行われる。これら２つの冗長スレッドはすでに同一の値を抽出し、このためダイバージェンス（ｄｉｖｅｒｇｅｎｃｅ）は行われない。
【００３４】
第３の状況では、一方のスレッドがそれのアクセスを完了させた後であって、他方のスレッドがそれの対応するアクセスを完了させる前に、外部書き込みが行われる。この場合、それの到着時点において外部書き込みを適用することは、ダイバージェントな実行を引き起こすかもしれない。
【００３５】
効果的には、検出されたアクセスコンフリクトにより、現在のエポックがスカッシュされる場合、最初の２つのケースと第３のケースを区別することは、必要以上に作業を廃棄することを回避するのにプラスであるかもしれない。コンフリクトする外部書き込みがエポック境界まで単に保留される場合、すべてのケースについて当該ポリシーを適用するためのペナルティは最小のものであるべきである。
【００３６】
もとのＬＶＱ設計に対する投機的メモリアプローチの他の効果は、メモリシステムに２回アクセスがされ、キャッシュアクセスパスを複製範囲にもたらし、ＲＭＴのフォルトカバレッジを拡張するということである。しかしながら、この効果は、メモリシステムの帯域幅要求を増大させるというコストをもたらす。
【００３７】
さらに、現在の投機的メモリアプローチは、エポック内のすべてのロードをグループ化する。外部的な無効をエポック間のみに強制することは、先行するエポック内のすべてのロードの２つのインスタンスが完了したことを保証し、後続するエポック内のロードの何れのインスタンスも発生させない。
【００３８】
以下の説明では、限定のためでなく説明のため、本発明の各種特徴の完全なる理解を提供するため、特定の構造、アーキテクチャ、インタフェース、技術などの具体的詳細が提供される。しかしながら、本発明の各種特徴がこれらの具体的詳細から逸脱した他の例により実施可能であるということは、本開示の利用する当業者にとって明らかであろう。ある例では、周知の装置、回路及び方法の説明は、不要な詳細により本発明の説明を不明りょうにしないように省略される。
【図面の簡単な説明】
【００３９】
【図１】図１は、冗長スレッドによる冗長マルチスレッドアーキテクチャの一実施例のブロック図である。
【図２】図２は、同時冗長スレッドアーキテクチャの一実施例のブロック図である。
【図３】図３は、同時冗長マルチスレッドアーキテクチャの一実施例の最小最大スラック関係を示す。
【図４】図４は、エポック間メモリデータ依存性を管理するメモリシステム拡張のフロー図である。
【図５】図５は、冗長マルチスレッディングシステムにおける故障検出のための外部メモリ更新の一実施例のブロック図である。
【図１】
2007519101.tif 000003
【図２】
2007519101.tif 000004
【図３】
2007519101.tif 000005
【図４】
2007519101.tif 000006
【図５】
2007519101.tif 000007
【国際調査報告】
2007519101.tif 000008
2007519101.tif 000009