JP2005182749A - キャッシュ・メモリおよびそのエラー訂正方法 - Google Patents

キャッシュ・メモリおよびそのエラー訂正方法 Download PDF

Info

Publication number
JP2005182749A
JP2005182749A JP2004236257A JP2004236257A JP2005182749A JP 2005182749 A JP2005182749 A JP 2005182749A JP 2004236257 A JP2004236257 A JP 2004236257A JP 2004236257 A JP2004236257 A JP 2004236257A JP 2005182749 A JP2005182749 A JP 2005182749A
Authority
JP
Japan
Prior art keywords
cache
error
cache line
data
bit
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
JP2004236257A
Other languages
English (en)
Other versions
JP4454432B2 (ja
JP2005182749A5 (ja
Inventor
David Kevin Hart
デーヴィッド、ケヴィン、ハート
Patrick Gerard Mcglew
ジェラード マックグレウ パトリック
Andrew Burdass
バーダス アンドリュー
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.)
ARM Ltd
Original Assignee
ARM Ltd
Advanced Risc Machines Ltd
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 ARM Ltd, Advanced Risc Machines Ltd filed Critical ARM Ltd
Publication of JP2005182749A publication Critical patent/JP2005182749A/ja
Publication of JP2005182749A5 publication Critical patent/JP2005182749A5/ja
Application granted granted Critical
Publication of JP4454432B2 publication Critical patent/JP4454432B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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/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
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1064Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】アンチ・ロック・ブレーキ・システムを制御するプロセッサ内のクリティカルで安全関連のシステムなど、高度な安全性が要求され、証明できなければならないシステムにおけるキャッシュ・メモリ内のビット値に起こるエラーを敏速に訂正する。
【解決手段】キャッシュ・メモリ2はデータの各行に対応するエラー・ビットを含む。エラー検出回路はこれらのエラー・ビット12,14,16,18を使用して、キャッシュ行のデータ内にソフト・エラーが起きたかどうかを検出する。そうしたエラーが発生したならば、この行は主メモリから補充されるか、またはライト・バックまたはソフト・エラー・アボート信号の発生など、何か他の動作が取られる。
【選択図】図2

Description

本発明はデータ処理システムの分野に関する。特に、本発明は、キャッシュ・メモリ内に保持されるビット値に起こるエラー、たとえばイオン化放射により引き起こされるソフト・エラーなどのエラーの訂正に適したキャッシュ・メモリおよびエラー訂正方法に関する。
処理速度を改良するためにデータ処理システムにキャッシュ・メモリを備えることが知られている。これらのキャッシュ・メモリは典型的に記憶容量がより大きくなりつつあり、集積回路内の他の要素と共に、より小さな回路ジオメトリを用いて製作される傾向になっている。この結果として、キャッシュ・メモリは、電離放射線の影響または通過により起こるような、いわゆる「ソフト・エラー」を、ますます受けやすくなってきている。そうしたソフト・エラーは、キャッシュ・メモリ内に記憶された1つまたはそれ以上のビット値を不適当に変更させる。
キャッシュ・メモリ内のソフト・エラーを処理する公知のシステムが、米国特許第6,332,181号に説明されている。このシステムにおいて、エラーが検出されれば、ソフトウェア・エラー処理メカニズムがトリガされる。このタイプのエラー検出およびエラー訂正メカニズムが望ましいクリティカル・システムの関係において、そうしたエラーを処理するソフトウェア・メカニズムが遅いことは、重大な短所であって、ソフトウェア内でそうした1つのエラーが処理される間に数百または数千の処理サイクルにわたって、たとえばアンチ・ロック・ブレーキ・システムまたはエンジン・システムが、その正常な機能を使用不能になる。
このタイプのエラーは、たとえばアンチ・ロック・ブレーキ・システムを制御するプロセッサ内のクリティカルで安全関連のシステムにおいて、特に重要である。そうしたシステムでは、高度な安全性が要求され、証明できなければならない。
1つの面から見ると、本発明はキャッシュ・メモリを供給し、このキャッシュ・メモリは、
1行のデータおよびキャッシュ行について1つまたはそれ以上のエラー・チェック・ビットを記憶するように各々動作可能な複数の前記キャッシュ行と、
前記1つまたはそれ以上のエラー・チェック・ビットを使用して、アクセスされる1つのキャッシュ行の少なくとも一部分をチェックするように動作できるエラー・チェック回路と、
前記エラー・チェック回路が前記キャッシュ行の部分にエラーを検出したならば、主メモリから少なくとも前記キャッシュの部分の補充をトリガするように動作できるエラー処理回路を含む。
本発明はそうしたエラーの純粋にソフトウェア的な処理に関連する問題を認識して、それによりそうしたエラーをハードウェア内に検出するだけでなく、単純なキャッシュ行補充を用いてハードウェア内でそうしたエラーを修復することもできる。キャッシュ・メモリの性質として、キャッシュ・メモリ内で改変されていない間にデータのコピーを保持することが多く、これは主メモリ内にあるので、損傷したキャッシュ行に迅速に補充することが容易であり、発生したエラーを効果的に修復できる。キャッシュ行を補充するメカニズムは正常な運転中に使用するために典型的に既設されているので、このハードウェア・エラー処理メカニズムはまた有利にも僅かな追加回路しか必要としない。ハードウェアのために必要な追加回路はまた、このハードウェアにより置き換えられた機能の例外処理コードを記憶するのに必要な追加回路よりも少ない。
キャッシュ行の補充はこのエラーを含む部分の部分的な補充であり得ることが、理解できるが、多くの実施例において、エラーになっている部分があるキャッシュ行全体を単に補充するだけが、有利に簡便である。
キャッシュの内容が変更済みであって、主メモリへまだライト・バックされていないことを示すために、ダーティ・ビットが使用されているキャッシュをライト・バックする状況において、追加の複雑さが起きる。そうしたシステムの状況において、キャッシュ行へ補充されるデータが期限切れであるために、関係するキャッシュ行またはキャッシュ行の部分がダーティであると示されれば、エラー処理回路は補充をトリガしない。
キャッシュ行全体のために単一のダーティ・ビットが供給されることもあり、または、代わりに、キャッシュ行ごとおよびキャッシュ行データの各部分に対応して、2つまたはそれ以上のダーティ・ビットが供給されることもある。
エラー・チェック・ビットにより占められる空間と、それらがエラーを識別できるようにするための粒度との間に、バランスを得る必要がある。本発明の好ましい実施例において、各キャッシュ行のために複数のエラー・チェック・ビットが供給される。
エラー・チェック・ビットは、それらがエラー・チェック能力を加えるキャッシュ行内のビットの特定の性質によって、さまざまな異なった形を取り得るし、特に、パリティ・ビット、複写ビット、チェック・サム・ビットおよび/またはエラー訂正コード・ビットであり得る。
前に指摘したように、エラーを含むキャッシュ行の一部分の内にダーティ・ビットがセットされれば、単なる補充は不可能であり、そうした場合システムは、一層複雑な解決方法を取るソフトウエア・エラー処理をトリガするように働くか、または代わりに、エラーが修復不可能であるとして、全システムを単純にリセットする。
キャッシュ・メモリの状況内で理解すべきことは、データTAGが提示されて、そうしたデータTAG内にエラーが起こるならば、誤ったTAGと共にそれを使用できないので関連のキャッシュ行が補充され、その空間は他のデータにより使用でき、たとえばエラー・チェックがキャッシュ・アクセスに際して遂行される場合は、壊れたTAGを有する行へのヒットは、そのTAGを有する行が本当に必要とされていることを示し、誤ってヒットを与えられた壊れたTAGにより、このキャッシュ行へ有利に補充されることを示す。
以前に指摘したダーティ・ビットは、それ自体エラーを受けやすく、エラー・チェック・ビットを備えている。そうしたエラーが起こると、主メモリへのキャッシュ行のライト・バックがトリガされる。
キャッシュ行はまた関連の有効ビットを有し、それは全キャッシュ行のための有効ビット、または各キャッシュ行のための複数の有効ビットである。そうした有効ビットはエラーを受けやすく、対応するエラー・チェック・ビットを備えている。有効ビット内にエラーが検出されると、キャッシュ行がダーティな場合はライト・バックがトリガされ、またキャッシュ行がダーティでなければ、このキャッシュ行の補充がトリガされる。
キャッシュ・メモリは、データ・キャッシュ・メモリ、命令キャッシュ・メモリ、ユニファイド・キャッシュ・メモリまたはHarvard・キャッシュ・メモリを含む多くの異なった形を取り得る。
エラー・チェック・ビットは、キャッシュ行が書き込まれるときに計算され、キャッシュ行内へ更新されるのが便利である。
本発明のもう1つの面から見ると、キャッシュ・メモリ内のソフト・エラーを訂正する方法を供給し、前記方法は、
複数のキャッシュ行の各々の中に1行のデータと、前記キャッシュ行のための1つまたはそれ以上のエラー・チェック・ビットを記憶するステップと、
前記1つまたはそれ以上のエラー・チェック・ビットを使用して、アクセスされる1つのキャッシュ行の少なくとも一部分をエラー・チェックするステップと、
前記エラー・チェックが前記キャッシュ行の部分内にエラーを検出するならば、ハードウエアが主メモリから前記キャッシュ行の少なくとも部分を補充することをトリガするステップを含む。
本発明の上記およびその他の諸目的、特徴および利点は、添付図面と共に下記の例示的実施例の詳細な説明を読めば一層明らかになる。
図1は、キャッシュ・メモリ2を図示している。この図示された例は、4ウェイ・データ・キャッシュ・メモリである。この技法は、シングル・ウェイ・キャッシュおよびマルチプル・ウエイ・キャッシュの両方に使用できる。この技法はまた、ノン・アソシエイティブ・キャッシュ、命令キャッシュ、Harvard・キャッシュ、ユニファイド・キャッシュなどのような他のタイプのキャッシュ・メモリにも応用できる。図1に示すように、キャッシュ2は、データ部4、TAG部6、有効ビット部8およびダーティ・ビット部10を含む。このキャッシュ配列の基本的なタイプは、そうしたキャッシュの補充、ライト・バックおよび制御のためのノン・エラー関連メカニズムと共に当技術分野に知られているので、本書ではさらに詳細な説明はしない。
本発明は、エラー・チェック・ビットを各キャッシュ行へ加えることにより、キャッシュ・メモリの既知の形式上に構築する。一層詳細には、パリティ・ビット12をデータ部4へ加える。この実施例において、ダブル・ワードごとに8個のパリティ・ビットがあり、32バイト・キャッシュ行に32個のパリティ・ビットを与える。パリティ・ビット14はまたTAG部6へ加えられる。TAG部6はデータ部4よりも遥かに小さいので、TAG部6に関して3個のパリティ・ビットのみが必要である。複写有効ビット16および複写ダーティ・ビット18もまた、それぞれキャッシュ2の有効ビット部8およびダーティ・ビット部10に加えられる。キャッシュ2がアクセスされて、そこからある値が読み取られると、キャッシュ2はエラー・チェック・ビット12、14、16、18を使用して、エラー・チェック回路20によりエラー・チェックされる。パリティ・ビット12、14は、XORツリーを使用するパリティを表現する対応の8ビットに対してチェックされる。複写有効ビット16および複写ダーティ・ビット18は、それらの対応する有効ビットおよびダーティ・ビットに対してチェックされる。検出されるエラーおよび関連キャッシュ行の状態により、エラー・チェック回路20はまたエラー処理回路として働いて、たとえば適当な応答をトリガし、キャッシュ行補充またはライト・バック動作またはソフト・エラー・アボート信号の発行を行い、ソフト・エラー・アボート専用の割り込みハンドラをトリガする。
図2は、エラー検出およびエラー処理回路20によりトリガされるさまざまな応答を示す表である。特定の補充動作において、関係する行のライト・バック(WB)動作と無効化が、ソフト・エラー・アボート信号の発行と共にトリガされる。いくつかの状況においては、関係する行が無効なので、あるエラー信号が無視されることもある。
この表の上部の2つの入力は、関係するキャッシュ行が有効でダーティでない状況において、データまたはTAG内のエラーの検出を示す。データ・エラーの場合は補充動作が遂行されて、これにより主メモリから正しいデータが取られて、エラーのあるキャッシュ行へ補充される。これは迅速で効果的であって、処理時間の僅かな損失と正しい修復を結果する。エラー内にTAGがある場合は、キャッシュ行の補充が遂行されるが、これは、プロセッサによりデータが要求されたが、TAGが既に壊れているので、TAGの一致が誤っているために、キャッシュへのヒットが発生したからである。しかし、データはなお要求されているので、データの補充は誤ったキャッシュ行を除去して、探しているデータへの要求を満足させる。これの例外は、マルチプル・ウェイがTAGの一致を報告する場合で、この状況においては、一致が起きた他の誤りでないキャッシュ・ウェイにおいて、関連のデータが既に存在するので、誤りのTAGを保持するキャッシュ行は充填されるよりも、むしろ無効にされるべきである。
表の5行目と6行目は、キャッシュ行が有効およびダーティである時に起きるそれぞれのデータ・エラーおよびTAGエラーを示す。これらのタイプのエラーは、修復が容易でなく、システムまたは少なくとも関連の処理をリセットするなどして、これらのエラーをソフトウエアが処理できるようにするために、ハードウエアはソフト・エラー・アボート割り込み信号を発生する。
データおよびTAGは、キャッシュ行に関連するビット記憶領域の主要部分を物理的に占有するので、これらは、ソフト・エラーが最も起こるであろう場所である。しかし、キャッシュ行の有効ビットまたはダーティ・ビット内にも、ソフト・エラーが起こり得る。図2は、これらの場合に取られる動作を図示する。理解すべきは、多重エラーの同時的な発生は、統計的に非常に起こり難い発生であって、本技法の実用的な実施例は、そうした発生およびそれに対する極端にまれな応答を取り扱わないだけである。1つの代案は、そうした状況では、多重エラーの発生を検出してシステムを強制的にリセットすることである。
図3は、発生するエラーをどのように分析して、図2のそれに従って適当な動作のコースを検出するかを、図式的に示すフローチャートである。何らかの形のエラーが検出されると、これらは更に検査されて、ダーティ・ビット・エラーが発生したかどうか、有効ビットが発生したかどうか、またはこのエラーが必然的にデータまたはTAGのエラーでなければならないかどうかが決定される。ダーティ・ビット・エラーを処理する場合は、有効ビットもまたダーティ・ビット・エラーが無視されるのと違った仕方で、セットされる。同じことがデータまたはTAGのエラーの訂正においても、真実である。ステップ22に達する処理により示されるデータまたはTAGエラーの場合は、キャッシュ行がダーティでなければ、ハード・ウエア・メカニズムにより制御され遂行されて、ステップ24でキャッシュ行補充動作がトリガされる。
図4は、図2に示した適当な状況において、種々なエラー応答をトリガするためのエラー検出回路およびエラー処理回路20内に備えられる回路を図示する。発生する信号の論理的な組み合わせが比較的に簡単であり、このことがこの技法を効率的にし、また迅速に実施するようにしていることが理解される。
図5は、図4の回路により遂行される評価の代数的表現である。
添付図面を参照しながら本発明の例示的実施例を、本書に詳細に説明してきたが、本発明はこれらの実施例に厳密に制限されるものではなく、添付の特許請求の範囲により定義される本発明の範囲と精神から離れることなく、当業者がそれに種々の変更と修正を加えることが可能であることを理解すべきである。
エラー・チェック・ビット、エラー検出回路およびエラー処理回路を組み込んだ4ウェイ・キャッシュ・メモリを図式的に示す。 特定エラーが発生した場合にトリガされるアクションを示す表である。 エラー処理選択メカニズムの単純化された形式を図式的に示すフローチャートである。 種々のエラー条件の組み合わせが発生したときに、異なった応答をトリガするハードウェア回路を図示する。 図4の回路により遂行される評価の代数的表現である。
符号の説明
2 キャッシュ・メモリ
4 データ部
6 TAG部
8 有効ビット部
10 ダーティ・ビット部
12 データ部4のパリティ・ビット
14 TAG部6のパリティ・ビット
16 有効ビット部8の複写有効ビット
18 ダーティ・ビット部10の複写有効ビット
20 エラー・チェック回路

Claims (36)

  1. 1行のデータおよびキャッシュ行について1つまたはそれ以上のエラー・チェック・ビットを記憶するように各々動作可能な複数の前記キャッシュ行と、
    前記1つまたはそれ以上のエラー・チェック・ビットを使用してアクセスされる1つのキャッシュ行の少なくとも一部分をチェックするように動作できるエラー・チェック回路と、
    前記エラー・チェック回路が前記キャッシュ行の部分にエラーを検出したならば、主メモリから少なくとも前記キャッシュの部分の補充をトリガするように動作できるエラー処理回路を含むキャッシュ・メモリ。
  2. 請求項1に記載のキャッシュ・メモリにおいて、前記補充は、前記キャッシュ行の部分を含むキャッシュ行全体の補充であるキャッシュ・メモリ。
  3. 請求項1に記載のキャッシュ・メモリにおいて、各キャッシュ行もまた前記データの行のための1つまたはそれ以上のダーティ・ビットを記憶し、1つのセット・ダーティ・ビットは、それが前記主メモリから読取られてから前記データの行の対応する部分が変更されているが、いまだ前記主メモリへライト・バックされてないことを示すキャッシュ・メモリ。
  4. 請求項3に記載のキャッシュ・メモリにおいて、前記キャッシュの部分に対応するいずれかのダーティ・ビットがセットされている場合は、前記エラー処理回路が前記補充をトリガしないキャッシュ・メモリ。
  5. 請求項3に記載のキャッシュ・メモリにおいて、単一のダーティ・ビットがデータの一行全体に対応するキャッシュ・メモリ。
  6. 請求項3に記載のキャッシュ・メモリにおいて、複数のダーティ・ビットが前記データの行の複数の部分のそれぞれ1つに対応するキャッシュ・メモリ。
  7. 請求項1に記載のキャッシュ・メモリにおいて、複数のエラー・チェック・ビットが1つのキャッシュ行に対応するキャッシュ・メモリ。
  8. 請求項1に記載のキャッシュ・メモリにおいて、前記1つまたはそれ以上のエラー・チェック・ビットが、
    パリティ・ビット、
    重複ビット、
    チェックサム・ビット、および
    エラー訂正コード・ビット
    の1つまたはそれ以上であるキャッシュ・メモリ。
  9. 請求項4に記載のキャッシュ・メモリにおいて、前記キャッシュ行の部分に対応するいずれかのダーティ・ビットがセットされれば、前記エラー処理回路がソフトウェア処理ルーチンの実施をトリガするキャッシュ・メモリ。
  10. 請求項1に記載のキャッシュ・メモリにおいて、前記データの行が1つまたはそれ以上のデータ・ワードとデータTAGを含み、またデータ検出回路が前記データTAG内にエラーを発見するならば、前記エラー処理回路が前記キャッシュ行の補充をトリガするキャッシュ・メモリ。
  11. 請求項1に記載のキャッシュ・メモリにおいて、前記キャッシュ・メモリはマルチプル・ウェイ・キャッシュ・メモリであって、前記データの行が1つまたはそれ以上のデータ・ワードとデータTAGを含み、前記キャッシュ行について1つよりも多いTAGの一致が起きたときに前記エラー検出回路が前記データTAG内のエラーを検出するならば、前記キャッシュ行が無効にされるキャッシュ・メモリ。
  12. 請求項3に記載のキャッシュ・メモリにおいて、各キャッシュ行は前記1つまたはそれ以上のダーティ・ビットについて少なくとも1つのエラー・チェック・ビットを記憶し、また前記エラー処理回路は前記1つまたはそれ以上のダーティ・ビットについてエラー・チェック・ビット内にエラーを検出するのに応答して、前記主メモリへ向けて前記キャッシュ行のライト・バックをトリガするキャッシュ・メモリ。
  13. 請求項1に記載のキャッシュ・メモリにおいて、各キャッシュ行が1つの有効ビットを記憶し、1つのセット有効ビットが前記有効データを記憶する前記キャッシュ行を示すキャッシュ・メモリ。
  14. 請求項1に記載のキャッシュ・メモリにおいて、各キャッシュ行が複数の有効ビットを記憶し、1つのセット有効ビットが有効データを記憶する前記キャッシュ行の対応する部分を示すキャッシュ・メモリ。
  15. 請求項3に記載のキャッシュ・メモリにおいて、各キャッシュ行が各有効ビットについて1つのエラー・チェック・ビットを記憶し、前記エラー処理回路は、いずれかの有効ビットについていずれかのエラー・チェック・ビット内のエラーの検出に応答して、
    (i) 前記キャッシュ行のいずれかの部分にダーティ・ビットがセットされれば、前記主メモリへ前記キャッシュ行のライト・バックをトリガし、
    (ii) 前記キャッシュ行のいずれの部分にもダーティ・ビットが何もセットされなければ、前記主メモリから前記キャッシュ行の補充をトリガするキャッシュ・メモリ。
  16. 請求項13に記載のキャッシュ・メモリにおいて、対応する有効ビットがノン・エラーであって無効性を示すキャッシュ行内で検出されるエラーは、無視されるキャッシュ・メモリ。
  17. 請求項1に記載のキャッシュ・メモリにおいて、
    (i) データ・キャッシュ・メモリ、
    (ii) 命令キャッシュ・メモリ、
    (iii) ユニファイド・キャッシュ・メモリ、および、
    (iv) Harvard・キャッシュ・メモリの内の1つであるキャッシュ・メモリ。
  18. 請求項1に記載のキャッシュ・メモリにおいて、前記1つまたはそれ以上のエラー・チェック・ビットの少なくともいくつかは、前記キャッシュ行が書き込まれる時に更新されるキャッシュ・メモリ。
  19. キャッシュ・メモリ内のソフト・エラーを訂正する方法であって、
    複数のキャッシュ行の各々の中に1行のデータと、前記キャッシュ行のための1つまたはそれ以上のエラー・チェック・ビットを記憶するステップと、
    前記1つまたはそれ以上のエラー・チェック・ビットを使用して、アクセスされる1つのキャッシュ行の少なくとも一部分をエラー・チェックするステップと、
    前記エラー・チェックが前記キャッシュ行の部分内にエラーを検出するならば、ハードウエアが主メモリから前記キャッシュ行の少なくとも部分を補充することをトリガするステップを含む方法。
  20. 請求項19に記載の方法において、前記補充は、前記キャッシュ行の部分を含む前記キャッシュ行全体の補充である方法。
  21. 請求項19に記載の方法において、各キャッシュ行はまた前記データの行について1つまたはそれ以上のダーティ・ビットを記憶し、主メモリから読取られたがまだ前記主メモリにライト・バックされていないために、前記行の変更済みのデータに対応する部分を1つのセット・ダーティ・ビットが指示する方法。
  22. 請求項21に記載の方法において、前記キャッシュ行の部分に対応するダーティ・ビットが何もセットされていなければ、前記補充がトリガされない方法。
  23. 請求項21に記載の方法において、単一のダーティ・ビットがデータの1行全体に対応する方法。
  24. 請求項21に記載の方法において、複数のダーティ・ビットが、前記データの行の複数の部分のそれぞれに対応する方法。
  25. 請求項19に記載の方法において、複数のエラー・チェック・ビットが1つのキャッシュ行に対応する方法。
  26. 請求項19に記載の方法において、前記1つまたはそれ以上のエラー・チェック・ビットが、
    パリティ・ビット、
    重複ビット、
    チェック・サム・ビット、
    エラー訂正コード・ビット、
    の1つまたはそれ以上である方法。
  27. 請求項22に記載の方法において、前記キャッシュ行の部分に対応するいずれかのダーティ・ビットがセットされれば、ソフトウェア処理ルーチンの実行がトリガされる方法。
  28. 請求項19に記載の方法において、前記データの行が1つまたはそれ以上のデータ・ワードおよびデータTAGを含み、前記データTAG内にエラーが検出されれば、前記キャッシュ行の補充がトリガされる方法。
  29. 請求項19に記載の方法において、前記キャッシュ・メモリはマルチプル・ウェイ・キャッシュ・メモリであり、前記データの行は1つまたはそれ以上のデータ・ワードおよびデータTAGを含み、前記キャッシュ行について1つ以上のタグ一致が起きたときに、前記エラー検出回路が前記データTAG内にエラーを検出すれば、前記キャッシュ行が無効にされる方法。
  30. 請求項21に記載の方法において、各キャッシュ行が前記1つまたはそれ以上のダーティ・ビットについて少なくとも1つのエラー・チェック・ビットを記憶し、前記1つまたはそれ以上のダーティ・ビットについてエラー・チェック・ビット内のエラー検出に応答して、前記主メモリへ前記キャッシュ行のライト・バックがトリガされる方法。
  31. 請求項19に記載の方法において、各キャッシュ行は1つの有効ビットを含み、前記キャッシュ行が有効データを記憶することをセット有効ビットが指示する方法。
  32. 請求項19に記載の方法において、各キャッシュ行は複数の有効ビットを含み、前記キャッシュ行の対応する部分が有効データを記憶することをセット有効ビットが指示する方法。
  33. 請求項21に記載の方法において、各キャッシュ行が各有効ビットについて1つのエラー・チェック・ビットを記憶し、いずれかの有効ビットについていずれかのエラー・チェック・ビット内でのエラー検出に応答して、
    (i) 前記キャッシュ・メモリのいずれかの部分についてダーティ・ビットがセットされれば、前記主メモリへの前記キャッシュ行のライト・バックがトリガされ、また、
    (ii) 前記キャッシュ・メモリのいずれの部分にもダーティ・ビットが何もセットされなければ、前記主メモリからの前記キャッシュ行の補充がトリガされる方法。
  34. 請求項31に記載の方法において、対応する有効ビットがノン・エラーであって無効性を示すキャッシュ行内で検出されたエラーは無視される方法。
  35. 請求項19に記載の方法において、前記キャッシュ・メモリが、
    (i) データ・キャッシュ・メモリ、
    (ii) 命令キャッシュ・メモリ、
    (iii) ユニファイド・キャッシュ・メモリ
    (iv) Harvard・キャッシュ・メモリ
    のうちの1つである方法。
  36. 請求項19に記載の方法において、前記キャッシュ行が書き込まれたときに、前記1つまたはそれ以上のエラー・チェック・ビットが更新される方法。
JP2004236257A 2003-12-18 2004-08-16 キャッシュ・メモリおよびそのエラー訂正方法 Expired - Lifetime JP4454432B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB0329326A GB2409301B (en) 2003-12-18 2003-12-18 Error correction within a cache memory

Publications (3)

Publication Number Publication Date
JP2005182749A true JP2005182749A (ja) 2005-07-07
JP2005182749A5 JP2005182749A5 (ja) 2006-11-02
JP4454432B2 JP4454432B2 (ja) 2010-04-21

Family

ID=30471296

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004236257A Expired - Lifetime JP4454432B2 (ja) 2003-12-18 2004-08-16 キャッシュ・メモリおよびそのエラー訂正方法

Country Status (3)

Country Link
US (1) US7328391B2 (ja)
JP (1) JP4454432B2 (ja)
GB (1) GB2409301B (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007183844A (ja) * 2006-01-10 2007-07-19 Hitachi Global Storage Technologies Netherlands Bv 補助記憶装置および記録再生方法
JP2011107888A (ja) * 2009-11-16 2011-06-02 Fujitsu Ltd 演算処理装置及び演算処理装置の制御方法
KR101319670B1 (ko) 2010-11-09 2013-10-17 후지쯔 가부시끼가이샤 캐시 메모리 시스템 및 캐시 메모리 시스템의 제어 방법

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070022250A1 (en) * 2005-07-19 2007-01-25 International Business Machines Corporation System and method of responding to a cache read error with a temporary cache directory column delete
US7890836B2 (en) * 2006-12-14 2011-02-15 Intel Corporation Method and apparatus of cache assisted error detection and correction in memory
US8977820B2 (en) * 2007-12-21 2015-03-10 Arm Limited Handling of hard errors in a cache of a data processing apparatus
US7987384B2 (en) * 2008-02-12 2011-07-26 International Business Machines Corporation Method, system, and computer program product for handling errors in a cache without processor core recovery
US8868831B2 (en) 2009-09-14 2014-10-21 Oracle International Corporation Caching data between a database server and a storage system
US10430338B2 (en) 2008-09-19 2019-10-01 Oracle International Corporation Selectively reading data from cache and primary storage based on whether cache is overloaded
US8010847B2 (en) 2008-09-30 2011-08-30 Infineon Technologies Ag Memory repair
US8095831B2 (en) * 2008-11-18 2012-01-10 Freescale Semiconductor, Inc. Programmable error actions for a cache in a data processing system
US8266498B2 (en) * 2009-03-31 2012-09-11 Freescale Semiconductor, Inc. Implementation of multiple error detection schemes for a cache
US7987407B2 (en) * 2009-08-20 2011-07-26 Arm Limited Handling of hard errors in a cache of a data processing apparatus
JP2011065565A (ja) * 2009-09-18 2011-03-31 Toshiba Corp キャッシュシステム及びマルチプロセッサシステム
JP2011100269A (ja) * 2009-11-05 2011-05-19 Renesas Electronics Corp キャッシュシステム
US8386834B1 (en) * 2010-04-30 2013-02-26 Network Appliance, Inc. Raid storage configuration for cached data storage
US8645796B2 (en) * 2010-06-24 2014-02-04 International Business Machines Corporation Dynamic pipeline cache error correction
US8458532B2 (en) * 2010-10-27 2013-06-04 Arm Limited Error handling mechanism for a tag memory within coherency control circuitry
US10592416B2 (en) * 2011-09-30 2020-03-17 Oracle International Corporation Write-back storage cache based on fast persistent memory
US9195596B2 (en) * 2011-11-02 2015-11-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Mapping of valid and dirty flags in a caching system
US10223204B2 (en) * 2011-12-22 2019-03-05 Intel Corporation Apparatus and method for detecting and recovering from data fetch errors
US9444496B2 (en) 2012-04-04 2016-09-13 University Of Southern California Correctable parity protected memory
US9063908B2 (en) 2012-05-31 2015-06-23 Oracle International Corporation Rapid recovery from loss of storage device cache
US10380021B2 (en) 2013-03-13 2019-08-13 Oracle International Corporation Rapid recovery from downtime of mirrored storage device
US9772793B2 (en) 2013-09-20 2017-09-26 Oracle International Corporation Data block movement offload to storage systems
US10642837B2 (en) 2013-03-15 2020-05-05 Oracle International Corporation Relocating derived cache during data rebalance to maintain application performance
US9176895B2 (en) 2013-03-16 2015-11-03 Intel Corporation Increased error correction for cache memories through adaptive replacement policies
US9898365B2 (en) 2013-07-31 2018-02-20 Hewlett Packard Enterprise Development Lp Global error correction
US10229161B2 (en) 2013-09-20 2019-03-12 Oracle International Corporation Automatic caching of scan and random access data in computing systems
US9798655B2 (en) 2013-09-20 2017-10-24 Oracle International Corporation Managing a cache on storage devices supporting compression
US9430383B2 (en) 2013-09-20 2016-08-30 Oracle International Corporation Fast data initialization
US9329930B2 (en) 2014-04-18 2016-05-03 Qualcomm Incorporated Cache memory error detection circuits for detecting bit flips in valid indicators in cache memory following invalidate operations, and related methods and processor-based systems
US9495242B2 (en) 2014-07-30 2016-11-15 International Business Machines Corporation Adaptive error correction in a memory system
KR102131337B1 (ko) 2014-10-20 2020-07-07 한국전자통신연구원 고장 제어 기능을 구비한 캐시 메모리
KR102515417B1 (ko) 2016-03-02 2023-03-30 한국전자통신연구원 캐시 메모리 장치 및 그것의 동작 방법
US10133667B2 (en) 2016-09-06 2018-11-20 Orcle International Corporation Efficient data storage and retrieval using a heterogeneous main memory
US10331573B2 (en) 2016-11-04 2019-06-25 Oracle International Corporation Detection of avoidable cache thrashing for OLTP and DW workloads
US10740167B2 (en) 2016-12-07 2020-08-11 Electronics And Telecommunications Research Institute Multi-core processor and cache management method thereof
US10642782B2 (en) 2016-12-08 2020-05-05 Electronics And Telecommunications Research Institute Multi-core processor and operation method thereof
US10803039B2 (en) 2017-05-26 2020-10-13 Oracle International Corporation Method for efficient primary key based queries using atomic RDMA reads on cache friendly in-memory hash index
US10719446B2 (en) 2017-08-31 2020-07-21 Oracle International Corporation Directly mapped buffer cache on non-volatile memory
US11086876B2 (en) 2017-09-29 2021-08-10 Oracle International Corporation Storing derived summaries on persistent memory of a storage device
US10956335B2 (en) 2017-09-29 2021-03-23 Oracle International Corporation Non-volatile cache access using RDMA
US10732836B2 (en) 2017-09-29 2020-08-04 Oracle International Corporation Remote one-sided persistent writes
US10802766B2 (en) 2017-09-29 2020-10-13 Oracle International Corporation Database with NVDIMM as persistent storage

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4995041A (en) * 1989-02-03 1991-02-19 Digital Equipment Corporation Write back buffer with error correcting capabilities
WO1996033459A1 (en) * 1995-04-18 1996-10-24 International Business Machines Corporation High available error self-recovering shared cache for multiprocessor systems
US5912906A (en) * 1997-06-23 1999-06-15 Sun Microsystems, Inc. Method and apparatus for recovering from correctable ECC errors
US6636991B1 (en) * 1999-12-23 2003-10-21 Intel Corporation Flexible method for satisfying complex system error handling requirements via error promotion/demotion
US20030131277A1 (en) * 2002-01-09 2003-07-10 Taylor Richard D. Soft error recovery in microprocessor cache memories

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007183844A (ja) * 2006-01-10 2007-07-19 Hitachi Global Storage Technologies Netherlands Bv 補助記憶装置および記録再生方法
JP2011107888A (ja) * 2009-11-16 2011-06-02 Fujitsu Ltd 演算処理装置及び演算処理装置の制御方法
US8621309B2 (en) 2009-11-16 2013-12-31 Fujitsu Limited Processor and method of control of processor
KR101319670B1 (ko) 2010-11-09 2013-10-17 후지쯔 가부시끼가이샤 캐시 메모리 시스템 및 캐시 메모리 시스템의 제어 방법

Also Published As

Publication number Publication date
GB0329326D0 (en) 2004-01-21
GB2409301B (en) 2006-12-06
US20050188249A1 (en) 2005-08-25
JP4454432B2 (ja) 2010-04-21
US7328391B2 (en) 2008-02-05
GB2409301A (en) 2005-06-22

Similar Documents

Publication Publication Date Title
JP4454432B2 (ja) キャッシュ・メモリおよびそのエラー訂正方法
US7437597B1 (en) Write-back cache with different ECC codings for clean and dirty lines with refetching of uncorrectable clean lines
US7430145B2 (en) System and method for avoiding attempts to access a defective portion of memory
US5267242A (en) Method and apparatus for substituting spare memory chip for malfunctioning memory chip with scrubbing
US8756363B2 (en) Efficient storage of memory version data
US8572441B2 (en) Maximizing encodings of version control bits for memory corruption detection
US8190973B2 (en) Apparatus and method for error correction of data values in a storage device
US8751736B2 (en) Instructions to set and read memory version information
JP5202130B2 (ja) キャッシュメモリ、コンピュータシステム、及びメモリアクセス方法
US8205136B2 (en) Fault tolerant encoding of directory states for stuck bits
US10929222B2 (en) Storing address of spare in failed memory location
JP2012103826A (ja) キャッシュメモリシステム
US9058290B2 (en) Memory protection cache
US6108753A (en) Cache error retry technique
US10908991B2 (en) Bit error protection in cache memories
JP2005302027A (ja) 自律的エラー回復方法、システム、キャッシュ、およびプログラム・ストレージ装置(メモリ装置のための自律的エラー回復のための方法、システム、およびプログラム)
JP4181500B2 (ja) ブロッキングなく、キャッシュ参照間に直面するビットエラーを修正する方法および装置
WO2003098439A2 (en) Method and apparatus for providing error correction within a register file of a cpu
CN112181712B (zh) 一种提高处理器核可靠性的方法及装置
US7689891B2 (en) Method and system for handling stuck bits in cache directories
US11509333B2 (en) Masked fault detection for reliable low voltage cache operation
US10379944B2 (en) Bit error protection in cache memories
Nair Architectural techniques to enable reliable and scalable memory systems
JP3130796B2 (ja) 制御記憶装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060920

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060920

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090909

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091002

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091228

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

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

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

Free format text: PAYMENT UNTIL: 20130212

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4454432

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140212

Year of fee payment: 4

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

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