JP2003216493A - キャッシュメモリのエラー保護方法 - Google Patents
キャッシュメモリのエラー保護方法Info
- Publication number
- JP2003216493A JP2003216493A JP2003000812A JP2003000812A JP2003216493A JP 2003216493 A JP2003216493 A JP 2003216493A JP 2003000812 A JP2003000812 A JP 2003000812A JP 2003000812 A JP2003000812 A JP 2003000812A JP 2003216493 A JP2003216493 A JP 2003216493A
- Authority
- JP
- Japan
- Prior art keywords
- entry
- cache
- storage device
- tag
- parity 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.)
- Pending
Links
Classifications
-
- 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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1064—Adding 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)
Abstract
(57)【要約】
【課題】ソフトエラーからメモリキャッシュを保護する
ための改善された技術を提供する。 【解決手段】 キャッシュは、データ記憶装置及びタグ
記憶装置を含む。データ記憶装置へのエントリは、タグ
記憶装置への対応するエントリを有する。パリティビッ
トメモリは、データ記憶装置への各エントリ及びタグ記
憶装置への各エントリについてパリティビットを記憶す
る。読取りサイクルの間に、キャッシュのキャッシュコ
ントローラは、タグエントリについてパリティビットを
チェックし、ヒットが表示されると、対応するデータ記
憶装置エントリについてパリティビットをチェックす
る。両方のパリティチェックがノーエラーを示すなら
ば、データ記憶装置から対応するエントリが取り出され
る。
ための改善された技術を提供する。 【解決手段】 キャッシュは、データ記憶装置及びタグ
記憶装置を含む。データ記憶装置へのエントリは、タグ
記憶装置への対応するエントリを有する。パリティビッ
トメモリは、データ記憶装置への各エントリ及びタグ記
憶装置への各エントリについてパリティビットを記憶す
る。読取りサイクルの間に、キャッシュのキャッシュコ
ントローラは、タグエントリについてパリティビットを
チェックし、ヒットが表示されると、対応するデータ記
憶装置エントリについてパリティビットをチェックす
る。両方のパリティチェックがノーエラーを示すなら
ば、データ記憶装置から対応するエントリが取り出され
る。
Description
【0001】
【発明の属する技術分野】本発明は、一般にエラー検出
に関し、かつさらに特定すればソフトエラーに対して保
護するためにパリティビットを利用するキャッシュメモ
リに関する。
に関し、かつさらに特定すればソフトエラーに対して保
護するためにパリティビットを利用するキャッシュメモ
リに関する。
【0002】
【従来の技術】プロセッサのクロック速度は、典型的に
はシステムメモリのアクセス速度を越えている。システ
ムメモリの一層遅いアクセス速度が処理速度に衝突する
ことを防止するために、プロセッサは、システムメモリ
に加えて小さいが一層速いキャッシュメモリを利用す
る。キャッシュメモリは、システムメモリよりも速いア
クセス速度を有するので、プロセッサは、システムメモ
リの利用による遅延を受けることなく、キャッシュに読
み出し又は書き込みすることができる。この時、図1に
よれば、従来のレベル2のキャッシュメモリ10は、シ
ステムバス14を介してプロセッサ12に結合されてい
る。システムメモリ16は、プロセッサ12のためのオ
ペレーティングシステム・コードを記憶している。動作
の間に、プロセッサ12は、システムメモリ16からオ
ペレーティングシステム命令及びデータを読み出す。キ
ャッシュメモリ10はより速いアクセスを有するので、
システムメモリから読み出す前に、まず第1にリクエス
トされた命令/データがキャッシュ10に常駐している
かどうかをプロセッサ12がチェックする。キャッシュ
コントローラ18は、キャッシュ10がリクエストされ
たシステムメモリ項目を有するかどうか(“ヒット”と
称する)を判定する。
はシステムメモリのアクセス速度を越えている。システ
ムメモリの一層遅いアクセス速度が処理速度に衝突する
ことを防止するために、プロセッサは、システムメモリ
に加えて小さいが一層速いキャッシュメモリを利用す
る。キャッシュメモリは、システムメモリよりも速いア
クセス速度を有するので、プロセッサは、システムメモ
リの利用による遅延を受けることなく、キャッシュに読
み出し又は書き込みすることができる。この時、図1に
よれば、従来のレベル2のキャッシュメモリ10は、シ
ステムバス14を介してプロセッサ12に結合されてい
る。システムメモリ16は、プロセッサ12のためのオ
ペレーティングシステム・コードを記憶している。動作
の間に、プロセッサ12は、システムメモリ16からオ
ペレーティングシステム命令及びデータを読み出す。キ
ャッシュメモリ10はより速いアクセスを有するので、
システムメモリから読み出す前に、まず第1にリクエス
トされた命令/データがキャッシュ10に常駐している
かどうかをプロセッサ12がチェックする。キャッシュ
コントローラ18は、キャッシュ10がリクエストされ
たシステムメモリ項目を有するかどうか(“ヒット”と
称する)を判定する。
【0003】システムメモリは数メガバイトの寸法であ
ることができるが、一方キャッシュ10におけるデータ
記憶装置20は数100キロバイトを記憶できるだけで
あることに注意されたい。データ記憶装置20内のデー
タのアドレスにシステムメモリ16内におけるデータの
アドレスをマッピングするために、所定の方式を利用し
なければならない。このマッピングが与えられると、キ
ャッシュ10内のタグ記憶装置22は、データ記憶装置
20に記憶されたデータのシステムメモリアドレスを記
憶する。したがってキャッシュコントローラは、タグ記
憶装置22に記憶されたものとリクエストされたデータ
のシステムメモリアドレスを比較してヒットを判定す
る。このようにしてヒットが起こると、プロセッサ12
は、システムメモリ16を利用するのではなくデータ記
憶装置20から直接データにアクセスすることができ
る。
ることができるが、一方キャッシュ10におけるデータ
記憶装置20は数100キロバイトを記憶できるだけで
あることに注意されたい。データ記憶装置20内のデー
タのアドレスにシステムメモリ16内におけるデータの
アドレスをマッピングするために、所定の方式を利用し
なければならない。このマッピングが与えられると、キ
ャッシュ10内のタグ記憶装置22は、データ記憶装置
20に記憶されたデータのシステムメモリアドレスを記
憶する。したがってキャッシュコントローラは、タグ記
憶装置22に記憶されたものとリクエストされたデータ
のシステムメモリアドレスを比較してヒットを判定す
る。このようにしてヒットが起こると、プロセッサ12
は、システムメモリ16を利用するのではなくデータ記
憶装置20から直接データにアクセスすることができ
る。
【0004】より速いアクセス時間の結果として、キャ
ッシュ10のような2次キャッシュの利用が普及してき
ている。技術が進歩するにつれて、キャッシュにおける
シリコンの幾何学的配置(形状寸法)は小さくなり続
け、キャッシュは、ソフトエラーの問題にさらされるよ
うになる。ハードウエアの欠陥によって引起こされるハ
ードエラーとは相違して、ソフトエラーは再現不可能で
ある。その代わりに放射性崩壊によるアルファ粒子のよ
うな一時的な妨害によれば、記憶されたビットは、誤っ
た2進状態によって読取られ、ソフトエラーを引起こ
す。デバイスがアイドル状態にある間、データはきわめ
て長い期間にわたって(数日又は数年さえ)キャシュさ
れたままであることがあるので、キャッシュはとくにソ
フトエラーの影響を受けやすい。命令キャッシュにおけ
る1ビットが変られると、デバイスはほぼ確実に誤動作
する。その結果として、メモリキャッシュをソフトエラ
ー保護する多数の技術が開発されている。
ッシュ10のような2次キャッシュの利用が普及してき
ている。技術が進歩するにつれて、キャッシュにおける
シリコンの幾何学的配置(形状寸法)は小さくなり続
け、キャッシュは、ソフトエラーの問題にさらされるよ
うになる。ハードウエアの欠陥によって引起こされるハ
ードエラーとは相違して、ソフトエラーは再現不可能で
ある。その代わりに放射性崩壊によるアルファ粒子のよ
うな一時的な妨害によれば、記憶されたビットは、誤っ
た2進状態によって読取られ、ソフトエラーを引起こ
す。デバイスがアイドル状態にある間、データはきわめ
て長い期間にわたって(数日又は数年さえ)キャシュさ
れたままであることがあるので、キャッシュはとくにソ
フトエラーの影響を受けやすい。命令キャッシュにおけ
る1ビットが変られると、デバイスはほぼ確実に誤動作
する。その結果として、メモリキャッシュをソフトエラ
ー保護する多数の技術が開発されている。
【0005】例えば誤り訂正回路が信号及び/又は多重
ビットエラーを検出しかつ訂正するために利用されてい
る。しかしながらこのような回路は、製造コストを著し
く増加する。さらに回路によって実行される誤り訂正論
理の複雑さは、結果として性能の低下を引起こす。キャ
ッシュアクセス時間はシステム性能にとってきわめて重
要なので、キャッシュに誤り訂正論理を利用するシステ
ムは不利である。別のアプローチは、低レベルの放射性
崩壊する不純物を有する高価なパッケージ材料を使用し
て、アルファ粒子の放出を減少することである。しかし
ながらコストの増加に加えて、このようなアプローチ
は、アルファ粒子放射による誤動作を完全に除去するこ
とができない。
ビットエラーを検出しかつ訂正するために利用されてい
る。しかしながらこのような回路は、製造コストを著し
く増加する。さらに回路によって実行される誤り訂正論
理の複雑さは、結果として性能の低下を引起こす。キャ
ッシュアクセス時間はシステム性能にとってきわめて重
要なので、キャッシュに誤り訂正論理を利用するシステ
ムは不利である。別のアプローチは、低レベルの放射性
崩壊する不純物を有する高価なパッケージ材料を使用し
て、アルファ粒子の放出を減少することである。しかし
ながらコストの増加に加えて、このようなアプローチ
は、アルファ粒子放射による誤動作を完全に除去するこ
とができない。
【0006】別のアプローチは、ソフトエラー破損の機
会を減少するために、アイドル期間の間にキャッシュを
フラッシュしディスエーブルすることである。しかしキ
ャッシュのフラッシュは、時間がかかり、かつシステム
性能を低下させる。
会を減少するために、アイドル期間の間にキャッシュを
フラッシュしディスエーブルすることである。しかしキ
ャッシュのフラッシュは、時間がかかり、かつシステム
性能を低下させる。
【0007】ソフトエラーの問題を克服する試みにおい
て、パリティビットエラー保護方式を有するキャッシュ
メモリが開発されている。例えば米国特許6,226,763号
は、キャッシュのタグ記憶装置へのエントリにパリティ
ビットが関連したキャッシュメモリを開示している。
て、パリティビットエラー保護方式を有するキャッシュ
メモリが開発されている。例えば米国特許6,226,763号
は、キャッシュのタグ記憶装置へのエントリにパリティ
ビットが関連したキャッシュメモリを開示している。
【0008】このようなアプローチは、上に述べた従来
の技術のアプローチよりもソフトエラーに対して丈夫で
あるとはいえ、いぜんとしてデータ記憶装置において起
こるソフトエラーに影響を受けやすい。
の技術のアプローチよりもソフトエラーに対して丈夫で
あるとはいえ、いぜんとしてデータ記憶装置において起
こるソフトエラーに影響を受けやすい。
【0009】
【発明が解決しようとする課題】したがってソフトエラ
ーからメモリキャッシュを保護するための改善された技
術に対する要求が、当該技術分野において存在する。
ーからメモリキャッシュを保護するための改善された技
術に対する要求が、当該技術分野において存在する。
【0010】
【課題を解決するための手段】本発明の1つの面によれ
ば、キャッシュは、データ記憶装置及びタグ記憶装置を
含む。データ記憶装置へのエントリは、タグ記憶装置へ
の対応するエントリを有する。パリティビットメモリ
は、データ記憶装置への各エントリ及びタグ記憶装置へ
の各エントリについてパリティビットを記憶する。読取
りサイクルの間に、キャッシュのキャッシュコントロー
ラは、タグエントリについてパリティビットをチェック
し、ヒットが表示されると、対応するデータ記憶装置エ
ントリについてパリティビットをチェックする。両方の
パリティチェックがノーエラーを示すならば、データ記
憶装置から対応するエントリが取り出される。
ば、キャッシュは、データ記憶装置及びタグ記憶装置を
含む。データ記憶装置へのエントリは、タグ記憶装置へ
の対応するエントリを有する。パリティビットメモリ
は、データ記憶装置への各エントリ及びタグ記憶装置へ
の各エントリについてパリティビットを記憶する。読取
りサイクルの間に、キャッシュのキャッシュコントロー
ラは、タグエントリについてパリティビットをチェック
し、ヒットが表示されると、対応するデータ記憶装置エ
ントリについてパリティビットをチェックする。両方の
パリティチェックがノーエラーを示すならば、データ記
憶装置から対応するエントリが取り出される。
【0011】次の説明及び図面は、本発明の別の面及び
利点を開示している。次の図面を考察することによっ
て、本発明の種々の面及び特徴を一層良好に理解するこ
とができる。
利点を開示している。次の図面を考察することによっ
て、本発明の種々の面及び特徴を一層良好に理解するこ
とができる。
【0012】
【発明の実施の形態】図2は、ソフトエラー保護を有す
るキャッシュ10に結合されたプロセッサ12を図示し
ている。次の議論は、キャッシュ10がレベル2のキャ
ッシュであることを仮定しているが、本発明の基本方式
は、同様に1次キャッシュ(primary cache)及び3次以
上のキャッシュに等しく適用することができる。キャッ
シュ10は、データ記憶装置55及びタグ記憶装置60
を含んでいる。分離して示されているが、データ記憶装
置55及びタグ記憶装置60は、単一のメモリ(図示せ
ず)内に統合することができる。キャッシュ10のアク
セス時間は、システムメモリ16のアクセス時間より速
いので、プロセッサ12がシステムメモリ16からの読
み出しをリクエストしたとき、キャッシュコントローラ
18は、リクエストされたデータがデータ記憶装置55
内に記憶されているかどうかをチェックする。データ記
憶装置55がリクエストされたデータを含むことを、一
般に“ヒット”と称する。
るキャッシュ10に結合されたプロセッサ12を図示し
ている。次の議論は、キャッシュ10がレベル2のキャ
ッシュであることを仮定しているが、本発明の基本方式
は、同様に1次キャッシュ(primary cache)及び3次以
上のキャッシュに等しく適用することができる。キャッ
シュ10は、データ記憶装置55及びタグ記憶装置60
を含んでいる。分離して示されているが、データ記憶装
置55及びタグ記憶装置60は、単一のメモリ(図示せ
ず)内に統合することができる。キャッシュ10のアク
セス時間は、システムメモリ16のアクセス時間より速
いので、プロセッサ12がシステムメモリ16からの読
み出しをリクエストしたとき、キャッシュコントローラ
18は、リクエストされたデータがデータ記憶装置55
内に記憶されているかどうかをチェックする。データ記
憶装置55がリクエストされたデータを含むことを、一
般に“ヒット”と称する。
【0013】データ記憶装置55がキャッシュラインに
組織化されており、これらのキャッシュラインのそれぞ
れが所定の数のバイトを記憶していることは、通常の当
業者にとって明らかであろう。データ記憶装置55の容
量がMバイトであり、かつそれぞれのラインがNバイト
を記憶している場合、ラインの数はM/Nである。ヒッ
トの場合、キャッシュコントローラ18は、典型的にプ
ロセッサ12に一つのキャッシュライン全体を返す。し
たがってデータ記憶装置55にはM/Nのアドレスしか
なく、各キャッシュラインについて1つしかない。これ
らのアドレスは、大容量のシステムメモリ16にマッピ
ングされている。適当なマッピング技術は、直接のマッ
ピング、完全に関連したマッピング、又はNウェイセッ
ト(N-wayset)の連想マッピングを含んでいる。実行され
ている特定のマッピング技術に関係なく、データ記憶装
置55の容量がシステムメモリ16のものより小さいの
で、システムメモリ16における多数のメモリ位置が、
データ記憶装置55における同じ位置(location)にマッ
ピングし共有する。システムメモリ16からリクエスト
されたデータがデータ記憶装置55内にあるかどうかを
キャッシュコントローラ18が判定することができるよ
う、タグ記憶装置60が、データ記憶装置のラインアド
レスからシステムメモリ16の実際のアドレスへのマッ
ピングを提供する。データ記憶装置55は、M/Nのラ
インアドレスを有するので、タグ記憶装置60も、M/
Nの対応するアドレスを有する。
組織化されており、これらのキャッシュラインのそれぞ
れが所定の数のバイトを記憶していることは、通常の当
業者にとって明らかであろう。データ記憶装置55の容
量がMバイトであり、かつそれぞれのラインがNバイト
を記憶している場合、ラインの数はM/Nである。ヒッ
トの場合、キャッシュコントローラ18は、典型的にプ
ロセッサ12に一つのキャッシュライン全体を返す。し
たがってデータ記憶装置55にはM/Nのアドレスしか
なく、各キャッシュラインについて1つしかない。これ
らのアドレスは、大容量のシステムメモリ16にマッピ
ングされている。適当なマッピング技術は、直接のマッ
ピング、完全に関連したマッピング、又はNウェイセッ
ト(N-wayset)の連想マッピングを含んでいる。実行され
ている特定のマッピング技術に関係なく、データ記憶装
置55の容量がシステムメモリ16のものより小さいの
で、システムメモリ16における多数のメモリ位置が、
データ記憶装置55における同じ位置(location)にマッ
ピングし共有する。システムメモリ16からリクエスト
されたデータがデータ記憶装置55内にあるかどうかを
キャッシュコントローラ18が判定することができるよ
う、タグ記憶装置60が、データ記憶装置のラインアド
レスからシステムメモリ16の実際のアドレスへのマッ
ピングを提供する。データ記憶装置55は、M/Nのラ
インアドレスを有するので、タグ記憶装置60も、M/
Nの対応するアドレスを有する。
【0014】したがってヒットが存在するかどうかを判
定するために、キャッシュコントローラ18は、リクエ
ストされたシステムメモリアドレスを検査し、実行され
ているシステムメモリ対データ記憶装置マッピングに基
づいて、データ記憶装置55におけるどのキャッシュラ
インアドレスがリクエストされたデータに対応するかを
判定する。キャッシュコントローラ18は、このキャッ
シュラインアドレスにおけるタグ記憶装置60の内容を
チェックする。タグ記憶装置60の内容は、このキャッ
シュラインアドレスを共有するどのシステムメモリ位置
がこのキャッシュラインに記憶されているかを判定す
る。タグ記憶装置60の内容がヒットを示すならば、キ
ャッシュライン全体がデータ記憶装置から取り出され、
システムバス14を介してプロセッサ12に送られて読
取りサイクルを完了する。
定するために、キャッシュコントローラ18は、リクエ
ストされたシステムメモリアドレスを検査し、実行され
ているシステムメモリ対データ記憶装置マッピングに基
づいて、データ記憶装置55におけるどのキャッシュラ
インアドレスがリクエストされたデータに対応するかを
判定する。キャッシュコントローラ18は、このキャッ
シュラインアドレスにおけるタグ記憶装置60の内容を
チェックする。タグ記憶装置60の内容は、このキャッ
シュラインアドレスを共有するどのシステムメモリ位置
がこのキャッシュラインに記憶されているかを判定す
る。タグ記憶装置60の内容がヒットを示すならば、キ
ャッシュライン全体がデータ記憶装置から取り出され、
システムバス14を介してプロセッサ12に送られて読
取りサイクルを完了する。
【0015】ソフトエラー保護を提供するために、タグ
記憶装置60及びデータ記憶装置55の各ラインは、1
つ又は複数のパリティビットと関連する。単一のパリテ
ィビットが使用される場合、パリティは奇数又は偶数の
いずれかであることができる。図3を参照すると、フロ
ーチャートは、キャッシュコントローラ18が読取りサ
イクルの間にこれらのパリティビットをチェックするス
テップを示している。ステップ80において、キャッシ
ュコントローラ18は、リクエストされたシステムメモ
リアドレスに相当するキャッシュラインアドレスを判断
する。ステップ85において、キャッシュコントローラ
18は、タグ記憶装置60においてこのキャッシュライ
ンアドレスを有するタグエントリに関連するパリティビ
ットをチェックする。
記憶装置60及びデータ記憶装置55の各ラインは、1
つ又は複数のパリティビットと関連する。単一のパリテ
ィビットが使用される場合、パリティは奇数又は偶数の
いずれかであることができる。図3を参照すると、フロ
ーチャートは、キャッシュコントローラ18が読取りサ
イクルの間にこれらのパリティビットをチェックするス
テップを示している。ステップ80において、キャッシ
ュコントローラ18は、リクエストされたシステムメモ
リアドレスに相当するキャッシュラインアドレスを判断
する。ステップ85において、キャッシュコントローラ
18は、タグ記憶装置60においてこのキャッシュライ
ンアドレスを有するタグエントリに関連するパリティビ
ットをチェックする。
【0016】1つ又は複数のタグパリティビットのチェ
ックによってタグにエラーが存在することが示されるな
らば、ステップ90において、キャッシュコントローラ
18は、判定されたキャッシュラインアドレスにおける
キャッシュエントリを無効にし、かつミスを宣言する。
その逆に1つ又は複数のタグパリティビットのチェック
が、タグにエラーがないことを示すならば、ステップ9
5において、キャッシュコントローラ18は、リクエス
トされたシステムメモリアドレスをタグの内容と比較す
ることによって、ヒットが存在するかどうか判定する。
比較によって、キャッシュラインがリクエストされたシ
ステムメモリデータを含まないことが示されると、ステ
ップ100において、キャッシュコントローラ18は、
ミスを宣言する。その逆に比較によって、キャッシュラ
インがリクエストされたシステムメモリデータを含むこ
とが示されると、ステップ105において、キャッシュ
コントローラ18は、データ記憶装置55においてキャ
ッシュラインアドレスに関連した1つ又は複数のデータ
パリティビットをチェックする。1つ又は複数のデータ
パリティビットがデータ記憶装置55のエラーを示す
と、ステップ110において、キャッシュコントローラ
18は、判定されたキャッシュラインアドレスにおける
キャッシュラインを無効にし、ミスを宣言する。その逆
に1つ又は複数のデータパリティビットがエラーをない
ことを示すならば、ステップ115において、キャッシ
ュコントローラ18は、判定されたキャッシュラインア
ドレスにおけるデータエントリを取り出す。ヒットが宣
言されているので、システムメモリ16からの対応する
読取りは阻止される。しかしながらミスが宣言される場
合、システムメモリからの対応する読取りが継続し、最
終的にはリクエストされたデータをシステムバス14を
介してプロセッサ12に返す。ちょうどデータ記憶装置
55の場合と同様に、所望のアドレスにおけるデータの
単一バイトを返すのではなく、キャッシュラインと同じ
長さのデータの固まりまたはラインが、システムメモリ
16から取り出される。図3に図示した方法は全体的に
ハードウエアにおいて実行することができ、ファームウ
エアのサポートを必要としないことは、通常の当業者に
とって明らかであろう。代替的に、この方法は、ソフト
ウエアサポートを利用して実行することもできる。
ックによってタグにエラーが存在することが示されるな
らば、ステップ90において、キャッシュコントローラ
18は、判定されたキャッシュラインアドレスにおける
キャッシュエントリを無効にし、かつミスを宣言する。
その逆に1つ又は複数のタグパリティビットのチェック
が、タグにエラーがないことを示すならば、ステップ9
5において、キャッシュコントローラ18は、リクエス
トされたシステムメモリアドレスをタグの内容と比較す
ることによって、ヒットが存在するかどうか判定する。
比較によって、キャッシュラインがリクエストされたシ
ステムメモリデータを含まないことが示されると、ステ
ップ100において、キャッシュコントローラ18は、
ミスを宣言する。その逆に比較によって、キャッシュラ
インがリクエストされたシステムメモリデータを含むこ
とが示されると、ステップ105において、キャッシュ
コントローラ18は、データ記憶装置55においてキャ
ッシュラインアドレスに関連した1つ又は複数のデータ
パリティビットをチェックする。1つ又は複数のデータ
パリティビットがデータ記憶装置55のエラーを示す
と、ステップ110において、キャッシュコントローラ
18は、判定されたキャッシュラインアドレスにおける
キャッシュラインを無効にし、ミスを宣言する。その逆
に1つ又は複数のデータパリティビットがエラーをない
ことを示すならば、ステップ115において、キャッシ
ュコントローラ18は、判定されたキャッシュラインア
ドレスにおけるデータエントリを取り出す。ヒットが宣
言されているので、システムメモリ16からの対応する
読取りは阻止される。しかしながらミスが宣言される場
合、システムメモリからの対応する読取りが継続し、最
終的にはリクエストされたデータをシステムバス14を
介してプロセッサ12に返す。ちょうどデータ記憶装置
55の場合と同様に、所望のアドレスにおけるデータの
単一バイトを返すのではなく、キャッシュラインと同じ
長さのデータの固まりまたはラインが、システムメモリ
16から取り出される。図3に図示した方法は全体的に
ハードウエアにおいて実行することができ、ファームウ
エアのサポートを必要としないことは、通常の当業者に
とって明らかであろう。代替的に、この方法は、ソフト
ウエアサポートを利用して実行することもできる。
【0017】ステップ90、100または110のいず
れかにおいてミスの場合、キャッシュコントローラ18
は、システムメモリ16から取り出されたデータのライ
ンをキャッシュ10に書き込む。キャッシュコントロー
ラ18は、取り出されたデータのラインをどのキャッシ
ュラインアドレスに記憶するかを、使用する特定のマッ
ピング技術に依存して判断する。加えてキャッシュコン
トローラ18は、タグ記憶装置60においてキャッシュ
ラインアドレスと同じアドレスに記憶されるタグアドレ
スを発生する。キャッシュコントローラ18は、パリテ
ィビット発生器120によって発生される関連付けられ
るパリティビットの書き込みも調整する。パリティビッ
ト発生器120は、実行される特定のパリティ方式によ
って決定される1つ又は複数のパリティビットを発生す
る。例えば偶数パリティが選択された場合、パリティビ
ット発生器120は、検索されたデータライン内におけ
る“1”のビットの数を計数する。“1”のビットの数
が奇数であった場合、結び付けられたパリティビットは
“1”である。その逆に“1”のビットの数が偶数であ
った場合、結び付けられるパリティビットは“0”であ
る。奇数パリティが選択された場合、関連付けられるパ
リティビットは、偶数パリティビットの補数である。1
つ又は複数の単一パリティビットが組合せたタグ及びデ
ータパリティのために利用することができることは明ら
かである。このような実施例において、1つ又は複数の
パリティビットは、検索されたデータライン及びタグの
両方に基づいて発生される。この組み合わされたパリテ
ィビットは、データ記憶装置55又はタグ記憶装置60
のいずれかに記憶することができる。
れかにおいてミスの場合、キャッシュコントローラ18
は、システムメモリ16から取り出されたデータのライ
ンをキャッシュ10に書き込む。キャッシュコントロー
ラ18は、取り出されたデータのラインをどのキャッシ
ュラインアドレスに記憶するかを、使用する特定のマッ
ピング技術に依存して判断する。加えてキャッシュコン
トローラ18は、タグ記憶装置60においてキャッシュ
ラインアドレスと同じアドレスに記憶されるタグアドレ
スを発生する。キャッシュコントローラ18は、パリテ
ィビット発生器120によって発生される関連付けられ
るパリティビットの書き込みも調整する。パリティビッ
ト発生器120は、実行される特定のパリティ方式によ
って決定される1つ又は複数のパリティビットを発生す
る。例えば偶数パリティが選択された場合、パリティビ
ット発生器120は、検索されたデータライン内におけ
る“1”のビットの数を計数する。“1”のビットの数
が奇数であった場合、結び付けられたパリティビットは
“1”である。その逆に“1”のビットの数が偶数であ
った場合、結び付けられるパリティビットは“0”であ
る。奇数パリティが選択された場合、関連付けられるパ
リティビットは、偶数パリティビットの補数である。1
つ又は複数の単一パリティビットが組合せたタグ及びデ
ータパリティのために利用することができることは明ら
かである。このような実施例において、1つ又は複数の
パリティビットは、検索されたデータライン及びタグの
両方に基づいて発生される。この組み合わされたパリテ
ィビットは、データ記憶装置55又はタグ記憶装置60
のいずれかに記憶することができる。
【0018】データ記憶装置55は、ライトスルー(wri
te-through)データ記憶装置又はライトバック(write-ba
ck)データ記憶装置のいずれかとして構成することがで
き、システムメモリ16からの読み出しがキャッシュさ
れるだけでなく、システムメモリ16への書き込みも同
様にキャッシュされるようになっている。ライトスルー
構成において、キャッシュされたメモリ位置に対するシ
ステムメモリ16への書き込みサイクルは、データ記憶
装置55及びシステムメモリ16の両方にデータを書き
込む。ライトバック構成において、キャッシュコントロ
ーラ18は、データ記憶装置55に書き込むが、システ
ムメモリ16は更新されない。書き込まれたデータを記
憶するデータ記憶装置55のアドレスを再利用する必要
がある場合、このアドレスにおけるデータのラインは、
システムメモリ16に“ライトバック”される。ライト
バックが起こるまで、このような位置にキャッシュされ
たエントリは、システムメモリ16に記憶された対応す
るデータとは相違している。典型的にキャッシュされた
データがシステムメモリ16に記憶された対応するデー
タと同じであるかどうかを示すために、“ダーティビッ
ト(dirty bit)”が、データ記憶装置55のそれぞれの
ラインに関連付けられる。システムメモリ16の更新を
維持するために、キャッシュコントローラ18は、シス
テムメモリ16に記憶された対応するデータが異なるこ
とをダーティビットが示すすべてのデータラインをライ
トバックすることによって、データ記憶装置55を周期
的に“フラッシュ”することができる。ソフトエラーに
対して保護するためにパリティビットアプローチが、シ
ステムメモリ16に記憶されたデータの完全性に依存す
ることは明らかであろう。したがってデータ記憶装置5
5は、システムメモリ16の完全性を維持するために、
タイムアウトフラッシュサイクルを有するライトスルー
又はライトバックとして構成することができる。すべて
のフラッシュサイクルの後に、再びタイムアウト期間が
始まり、その際、データ記憶装置55は、タイムアウト
期間が終了した後に、再びフラッシュされる。
te-through)データ記憶装置又はライトバック(write-ba
ck)データ記憶装置のいずれかとして構成することがで
き、システムメモリ16からの読み出しがキャッシュさ
れるだけでなく、システムメモリ16への書き込みも同
様にキャッシュされるようになっている。ライトスルー
構成において、キャッシュされたメモリ位置に対するシ
ステムメモリ16への書き込みサイクルは、データ記憶
装置55及びシステムメモリ16の両方にデータを書き
込む。ライトバック構成において、キャッシュコントロ
ーラ18は、データ記憶装置55に書き込むが、システ
ムメモリ16は更新されない。書き込まれたデータを記
憶するデータ記憶装置55のアドレスを再利用する必要
がある場合、このアドレスにおけるデータのラインは、
システムメモリ16に“ライトバック”される。ライト
バックが起こるまで、このような位置にキャッシュされ
たエントリは、システムメモリ16に記憶された対応す
るデータとは相違している。典型的にキャッシュされた
データがシステムメモリ16に記憶された対応するデー
タと同じであるかどうかを示すために、“ダーティビッ
ト(dirty bit)”が、データ記憶装置55のそれぞれの
ラインに関連付けられる。システムメモリ16の更新を
維持するために、キャッシュコントローラ18は、シス
テムメモリ16に記憶された対応するデータが異なるこ
とをダーティビットが示すすべてのデータラインをライ
トバックすることによって、データ記憶装置55を周期
的に“フラッシュ”することができる。ソフトエラーに
対して保護するためにパリティビットアプローチが、シ
ステムメモリ16に記憶されたデータの完全性に依存す
ることは明らかであろう。したがってデータ記憶装置5
5は、システムメモリ16の完全性を維持するために、
タイムアウトフラッシュサイクルを有するライトスルー
又はライトバックとして構成することができる。すべて
のフラッシュサイクルの後に、再びタイムアウト期間が
始まり、その際、データ記憶装置55は、タイムアウト
期間が終了した後に、再びフラッシュされる。
【0019】図面を参照して本発明の特定の例を示し詳
細に説明したが、本発明は、特定の形又は方法に限定さ
れるものではない。本発明は、特許請求の範囲によって
包含されるあらゆる変形、均等物及び代案を広くカバー
するものである。
細に説明したが、本発明は、特定の形又は方法に限定さ
れるものではない。本発明は、特許請求の範囲によって
包含されるあらゆる変形、均等物及び代案を広くカバー
するものである。
【図1】キャッシュ、キャッシュコントローラ及びシス
テムメモリを有する従来の技術のプロセッサのブロック
図である。
テムメモリを有する従来の技術のプロセッサのブロック
図である。
【図2】本発明の1つの実施例によるソフトエラー保護
を実行するキャッシュを有するプロセッサのブロック図
である。
を実行するキャッシュを有するプロセッサのブロック図
である。
【図3】本発明の1つの実施例による読取りサイクルの
間に図2のキャッシュコントローラによって実行される
ステップを図示するフローチャートである。
間に図2のキャッシュコントローラによって実行される
ステップを図示するフローチャートである。
10 キャッシュ
12 プロセッサ
14 システムバス
16 システムメモリ
18 キャッシュコントローラ
55 データ記憶装置
60 タグ記憶装置
85 パリティビットのチェック
90 ミスの宣言
105 パリティビットのチェック
110 ミスの宣言
─────────────────────────────────────────────────────
フロントページの続き
(72)発明者 リチャード・ディー・テイラー
アメリカ合衆国83616アイダホ州イーグル、
ノース・チョーサー・ウェイ 1752
(72)発明者 グレッグ・エル・アレン
アメリカ合衆国83704アイダホ州ボイジー、
ウェスト・アライアンス・ドライヴ 9857
Fターム(参考) 5B005 JJ01 MM01 NN43 PP02 VV12
VV13 VV14 WW02
5B018 GA01 HA12 KA22 MA03 QA14
RA04
Claims (10)
- 【請求項1】キャッシュメモリにおけるタグ記憶装置及
びデータ記憶装置への各エントリがパリティビットに関
連づけられているキャシュメモリのエラー保護方法であ
って、 (a)前記タグ記憶装置及び前記データ記憶装置のエン
トリに関係する読取りリクエストを前記キャッシュメモ
リに関連するシステムメモリに出すこと、 (b)前記タグ記憶装置における前記エントリに関連す
るパリティビット及び前記データ記憶装置における前記
エントリに関連するパリティビットをチェックするこ
と、および (c)上記(a)又は(b)のいずれかが、対応するエ
ントリについてエラーを示すならば、ミスを宣言するこ
と、を含む方法。 - 【請求項2】前記キャッシュメモリが、第2レベルのキ
ャッシュである請求項1に記載の方法。 - 【請求項3】上記(c)においてミスが宣言されるなら
ば、前記データ記憶装置の前記エントリを無効にするこ
とをさらに含む請求項1に記載の方法。 - 【請求項4】上記(b)が、 前記タグ記憶装置の前記エントリに関連する前記パリテ
ィビットをチェックすること、および前記タグ記憶装置
の前記エントリに関連する前記パリティビットがノーエ
ラーを示すならば、前記タグ記憶装置の前記エントリが
ヒットを示すかどうかを判定し、ヒットが存在するなら
ば、前記データ記憶装置の前記エントリに関連する前記
パリティビットをチェックすること、 を含む請求項3に記載の方法。 - 【請求項5】前記データ記憶装置の前記エントリに関連
する前記パリティビットがノーエラーを示すならば、前
記データ記憶装置から前記エントリを取り出すことをさ
らに含む、請求項4に記載の方法。 - 【請求項6】前記データ記憶装置動作から前記エントリ
を取り出すことが、前記エントリを含むデータラインを
取り出すことを含む、請求項5に記載の方法。 - 【請求項7】データ記憶装置、 タグ記憶装置、及び前記データ記憶装置における各エン
トリ及び前記タグ記憶装置における各エントリについて
パリティビットを記憶するよう構成されたパリティビッ
トメモリ、 を備えるキャッシュ。 - 【請求項8】前記データ記憶装置における各エントリ
が、前記タグ記憶装置において対応するエントリを有
し、かつ前記データ記憶装置における各エントリについ
て記憶された前記パリティビットが、前記タグ記憶装置
における前記対応するエントリについての前記パリティ
ビットとは独立である、請求項7に記載のキャッシュ。 - 【請求項9】前記データ記憶装置における各エントリ
が、前記タグ記憶装置において対応するエントリを有
し、かつ前記パリティビットメモリが、データ記憶装置
の各エントリ及びこれに対応するタグ記憶装置の各エン
トリについて一つのパリティビットを記憶するように構
成されている、請求項7に記載のキャッシュ。 - 【請求項10】前記キャッシュが、ライトスルーキャッ
シュとして構成されている請求項7に記載のキャッシ
ュ。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/044,080 | 2002-01-09 | ||
US10/044,080 US20030131277A1 (en) | 2002-01-09 | 2002-01-09 | Soft error recovery in microprocessor cache memories |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2003216493A true JP2003216493A (ja) | 2003-07-31 |
Family
ID=21930426
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003000812A Pending JP2003216493A (ja) | 2002-01-09 | 2003-01-07 | キャッシュメモリのエラー保護方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20030131277A1 (ja) |
JP (1) | JP2003216493A (ja) |
DE (1) | DE10254649A1 (ja) |
GB (1) | GB2387936B (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017511547A (ja) * | 2014-04-18 | 2017-04-20 | クアルコム,インコーポレイテッド | 無効化動作後のキャッシュメモリ内の有効インジケータにおけるビットフリップを検出するためのキャッシュメモリエラー検出回路、ならびに関連する方法およびプロセッサベースのシステム |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6901532B2 (en) * | 2002-03-28 | 2005-05-31 | Honeywell International Inc. | System and method for recovering from radiation induced memory errors |
WO2004109704A1 (en) * | 2003-06-05 | 2004-12-16 | Koninklijke Philips Electronics N.V. | Integrity control for data stored in a non-volatile memory |
US7525679B2 (en) | 2003-09-03 | 2009-04-28 | Marvell International Technology Ltd. | Efficient printer control electronics |
US7290179B2 (en) * | 2003-12-01 | 2007-10-30 | Intel Corporation | System and method for soft error handling |
GB2409301B (en) * | 2003-12-18 | 2006-12-06 | Advanced Risc Mach Ltd | Error correction within a cache memory |
US7275202B2 (en) * | 2004-04-07 | 2007-09-25 | International Business Machines Corporation | Method, system and program product for autonomous error recovery for memory devices |
US7418582B1 (en) | 2004-05-13 | 2008-08-26 | Sun Microsystems, Inc. | Versatile register file design for a multi-threaded processor utilizing different modes and register windows |
US7509484B1 (en) | 2004-06-30 | 2009-03-24 | Sun Microsystems, Inc. | Handling cache misses by selectively flushing the pipeline |
US7366829B1 (en) * | 2004-06-30 | 2008-04-29 | Sun Microsystems, Inc. | TLB tag parity checking without CAM read |
US7571284B1 (en) | 2004-06-30 | 2009-08-04 | Sun Microsystems, Inc. | Out-of-order memory transactions in a fine-grain multithreaded/multi-core processor |
US8291305B2 (en) * | 2008-09-05 | 2012-10-16 | Freescale Semiconductor, Inc. | Error detection schemes for a cache in a data processing system |
US8356239B2 (en) * | 2008-09-05 | 2013-01-15 | Freescale Semiconductor, Inc. | Selective cache way mirroring |
JP2010237739A (ja) * | 2009-03-30 | 2010-10-21 | Fujitsu Ltd | キャッシュ制御装置,情報処理装置およびキャッシュ制御プログラム |
US8806294B2 (en) * | 2012-04-20 | 2014-08-12 | Freescale Semiconductor, Inc. | Error detection within a memory |
US9176895B2 (en) | 2013-03-16 | 2015-11-03 | Intel Corporation | Increased error correction for cache memories through adaptive replacement policies |
JP6228523B2 (ja) * | 2014-09-19 | 2017-11-08 | 東芝メモリ株式会社 | メモリ制御回路および半導体記憶装置 |
US10185619B2 (en) * | 2016-03-31 | 2019-01-22 | Intel Corporation | Handling of error prone cache line slots of memory side cache of multi-level system memory |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3789204A (en) * | 1972-06-06 | 1974-01-29 | Honeywell Inf Systems | Self-checking digital storage system |
US4357656A (en) * | 1977-12-09 | 1982-11-02 | Digital Equipment Corporation | Method and apparatus for disabling and diagnosing cache memory storage locations |
US4483003A (en) * | 1982-07-21 | 1984-11-13 | At&T Bell Laboratories | Fast parity checking in cache tag memory |
DE3431770A1 (de) * | 1984-08-29 | 1986-03-13 | Siemens AG, 1000 Berlin und 8000 München | Verfahren und anordnung zur sicherung von wichtigen informationen in speichereinheiten mit wahlweisem zugriff, insbesondere solchen aus ram-bausteinen |
US4967414A (en) * | 1989-01-06 | 1990-10-30 | International Business Machines Corp. | LRU error detection using the collection of read and written LRU bits |
US5345582A (en) * | 1991-12-20 | 1994-09-06 | Unisys Corporation | Failure detection for instruction processor associative cache memories |
US5479641A (en) * | 1993-03-24 | 1995-12-26 | Intel Corporation | Method and apparatus for overlapped timing of cache operations including reading and writing with parity checking |
JPH09511088A (ja) * | 1995-04-18 | 1997-11-04 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マルチプロセッサ・システムのための高可用性のエラー自己回復共用キャッシュ |
US5832250A (en) * | 1996-01-26 | 1998-11-03 | Unisys Corporation | Multi set cache structure having parity RAMs holding parity bits for tag data and for status data utilizing prediction circuitry that predicts and generates the needed parity bits |
US5784548A (en) * | 1996-03-08 | 1998-07-21 | Mylex Corporation | Modular mirrored cache memory battery backup system |
US6438660B1 (en) * | 1997-12-09 | 2002-08-20 | Intel Corporation | Method and apparatus for collapsing writebacks to a memory for resource efficiency |
US6226763B1 (en) * | 1998-07-29 | 2001-05-01 | Intel Corporation | Method and apparatus for performing cache accesses |
US6832294B2 (en) * | 2002-04-22 | 2004-12-14 | Sun Microsystems, Inc. | Interleaved n-way set-associative external cache |
-
2002
- 2002-01-09 US US10/044,080 patent/US20030131277A1/en not_active Abandoned
- 2002-11-22 DE DE10254649A patent/DE10254649A1/de not_active Withdrawn
-
2003
- 2003-01-07 JP JP2003000812A patent/JP2003216493A/ja active Pending
- 2003-01-09 GB GB0300493A patent/GB2387936B/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017511547A (ja) * | 2014-04-18 | 2017-04-20 | クアルコム,インコーポレイテッド | 無効化動作後のキャッシュメモリ内の有効インジケータにおけるビットフリップを検出するためのキャッシュメモリエラー検出回路、ならびに関連する方法およびプロセッサベースのシステム |
Also Published As
Publication number | Publication date |
---|---|
GB0300493D0 (en) | 2003-02-12 |
US20030131277A1 (en) | 2003-07-10 |
GB2387936A (en) | 2003-10-29 |
DE10254649A1 (de) | 2003-07-24 |
GB2387936B (en) | 2005-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6205521B1 (en) | Inclusion map for accelerated cache flush | |
US7840848B2 (en) | Self-healing cache operations | |
US5912906A (en) | Method and apparatus for recovering from correctable ECC errors | |
JP2003216493A (ja) | キャッシュメモリのエラー保護方法 | |
US7650557B2 (en) | Memory scrubbing of expanded memory | |
US7430145B2 (en) | System and method for avoiding attempts to access a defective portion of memory | |
US6782453B2 (en) | Storing data in memory | |
CN108701070B (zh) | 对多级系统存储器的存储器侧高速缓存的容易出错的高速缓存行槽的处理 | |
US12019514B2 (en) | Handling non-correctable errors | |
US9058290B2 (en) | Memory protection cache | |
US6874116B2 (en) | Masking error detection/correction latency in multilevel cache transfers | |
US6502218B1 (en) | Deferred correction of a single bit storage error in a cache tag array | |
US7577791B2 (en) | Virtualized load buffers | |
JP4181500B2 (ja) | ブロッキングなく、キャッシュ参照間に直面するビットエラーを修正する方法および装置 | |
JPH10161938A (ja) | ディスク制御装置 | |
US7747896B1 (en) | Dual ported replicated data cache | |
US7093190B1 (en) | System and method for handling parity errors in a data processing system | |
US12147301B2 (en) | Parallelized scrubbing transactions | |
JPH0773106A (ja) | キャッシュメモリ | |
JP3716190B2 (ja) | キャッシュメモリにおけるデータアレイの訂正不能障害救済方式 | |
JPH0822416A (ja) | キャッシュメモリの制御方法 | |
JPH0564376B2 (ja) |