JPH10301846A - 修復マスクを使用したキャッシュ・アレイ欠陥の機能的迂回方法及びシステム - Google Patents
修復マスクを使用したキャッシュ・アレイ欠陥の機能的迂回方法及びシステムInfo
- Publication number
- JPH10301846A JPH10301846A JP10097589A JP9758998A JPH10301846A JP H10301846 A JPH10301846 A JP H10301846A JP 10097589 A JP10097589 A JP 10097589A JP 9758998 A JP9758998 A JP 9758998A JP H10301846 A JPH10301846 A JP H10301846A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- defective
- line
- cache line
- lines
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/16—Protection against loss of memory contents
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/78—Masking faults in memories by using spares or by reconfiguring using programmable devices
- G11C29/84—Masking faults in memories by using spares or by reconfiguring using programmable devices with improved access time or stability
- G11C29/846—Masking faults in memories by using spares or by reconfiguring using programmable devices with improved access time or stability by choosing redundant lines at an output stage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Debugging And Monitoring (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
(57)【要約】
【課題】 コンピュータ・システムのプロセッサによっ
て使用されるキャッシュ内の欠陥を迂回する方法。 【解決手段】 修復マスクが、キャッシュ内のキャッシ
ュ・ラインに対応するビット・フィールドの配列を有
し、キャッシュ内の特定のキャッシュ・ラインが欠陥が
あるものと識別されると、その特定のキャッシュ・ライ
ンに欠陥があることを示すように修復マスク配列内の対
応するビット・フィールドが設定され、修復マスク配列
内の対応するビット・フィールドに基づいて、欠陥のあ
るキャッシュ・ラインへのそれ以上のアクセスが防止さ
れる。この修復マスクを使用して、欠陥のあるキャッシ
ュ・ラインが決してキャッシュ・ヒットにならないよう
に防止することができ、欠陥のあるキャッシュ・ライン
がキャッシュ置換のための犠牲として決して選択されな
いように防止することができる。セット・アソシアティ
ブ・キャッシュを使用し、それによって欠陥のあるキャ
ッシュ・ラインをそれぞれの合同クラスから実質的に除
去する。
て使用されるキャッシュ内の欠陥を迂回する方法。 【解決手段】 修復マスクが、キャッシュ内のキャッシ
ュ・ラインに対応するビット・フィールドの配列を有
し、キャッシュ内の特定のキャッシュ・ラインが欠陥が
あるものと識別されると、その特定のキャッシュ・ライ
ンに欠陥があることを示すように修復マスク配列内の対
応するビット・フィールドが設定され、修復マスク配列
内の対応するビット・フィールドに基づいて、欠陥のあ
るキャッシュ・ラインへのそれ以上のアクセスが防止さ
れる。この修復マスクを使用して、欠陥のあるキャッシ
ュ・ラインが決してキャッシュ・ヒットにならないよう
に防止することができ、欠陥のあるキャッシュ・ライン
がキャッシュ置換のための犠牲として決して選択されな
いように防止することができる。セット・アソシアティ
ブ・キャッシュを使用し、それによって欠陥のあるキャ
ッシュ・ラインをそれぞれの合同クラスから実質的に除
去する。
Description
【0001】
【発明の属する技術分野】本発明は一般にはコンピュー
タ・システムに関し、具体的にはコンピュータ・システ
ムのプロセッサが使用するキャッシュのパフォーマンス
を向上させる方法に係わる。
タ・システムに関し、具体的にはコンピュータ・システ
ムのプロセッサが使用するキャッシュのパフォーマンス
を向上させる方法に係わる。
【0002】
【従来の技術】従来のコンピュータ・システム10の基
本構造を図1に示す。コンピュータ・システム10は、
1つまたは複数の処理ユニットを有することができ、そ
のうちの2つ12a及び12bが図示されている。処理
装置は、入出力(I/O)装置14(表示モニタ、キー
ボード、永続記憶装置など)、処理装置がプログラム命
令を実行するために使用するメモリ・デバイス16(ラ
ンダム・アクセス・メモリ、またはRAM)、及び、コ
ンピュータに最初に電源を入れたときに周辺装置の1つ
(通常は永続記憶装置)からオペレーティング・システ
ムを探し出してロードすることを主な目的とするファー
ムウェア18を含む様々な周辺装置に接続されている。
処理装置12a及び12bは、汎用相互接続機構または
バス20を含む様々な手段によって周辺装置と通信す
る。コンピュータ・システム10は、たとえばモデムや
プリンタなどに接続するためのシリアル・ポートやパラ
レル・ポートなど、図示されていない多くの追加の構成
要素を有することができる。当業者ならさらに、図1の
ブロック図に図示されている構成要素と共に使用可能な
他の構成要素もあることがわかるであろう。たとえば、
ビデオ表示モニタを制御するためにディスプレイ・アダ
プタを使用したり、メモリ16にアクセスするためにメ
モリ・コントローラを使用することができる。また、I
/O装置14をバス20に直接接続する代わりに、二次
(I/O)バスに接続することもでき、二次バスはさら
にI/Oブリッジに接続され、I/Oブリッジはバス2
0に接続される。コンピュータは3個以上の処理装置を
有することもできる。
本構造を図1に示す。コンピュータ・システム10は、
1つまたは複数の処理ユニットを有することができ、そ
のうちの2つ12a及び12bが図示されている。処理
装置は、入出力(I/O)装置14(表示モニタ、キー
ボード、永続記憶装置など)、処理装置がプログラム命
令を実行するために使用するメモリ・デバイス16(ラ
ンダム・アクセス・メモリ、またはRAM)、及び、コ
ンピュータに最初に電源を入れたときに周辺装置の1つ
(通常は永続記憶装置)からオペレーティング・システ
ムを探し出してロードすることを主な目的とするファー
ムウェア18を含む様々な周辺装置に接続されている。
処理装置12a及び12bは、汎用相互接続機構または
バス20を含む様々な手段によって周辺装置と通信す
る。コンピュータ・システム10は、たとえばモデムや
プリンタなどに接続するためのシリアル・ポートやパラ
レル・ポートなど、図示されていない多くの追加の構成
要素を有することができる。当業者ならさらに、図1の
ブロック図に図示されている構成要素と共に使用可能な
他の構成要素もあることがわかるであろう。たとえば、
ビデオ表示モニタを制御するためにディスプレイ・アダ
プタを使用したり、メモリ16にアクセスするためにメ
モリ・コントローラを使用することができる。また、I
/O装置14をバス20に直接接続する代わりに、二次
(I/O)バスに接続することもでき、二次バスはさら
にI/Oブリッジに接続され、I/Oブリッジはバス2
0に接続される。コンピュータは3個以上の処理装置を
有することもできる。
【0003】対称マルチプロセッサ(SMP)コンピュ
ータでは、すべての処理装置は一般に同じである。すな
わち、すべての処理装置が命令及びプロトコルの共通の
セットまたはサブセットを使用して動作し、一般に同じ
アーキテクチャを有する。典型的なアーキテクチャは図
1に示す通りである。処理装置は、複数のレジスタと、
コンピュータを動作させるためにプログラム命令を実行
する実行ユニットとを含むプロセッサ・コア22を含
む。処理装置の例としては、インターナショナル・ビジ
ネス・マシーンズ・コーポレイション(IBM)が販売
するPowerPCTMプロセッサがある。処理装置は、
高速メモリ・デバイスを使用して実装された命令キャッ
シュ24やデータ・キャッシュ26などの1つまたは複
数のキャッシュも有することができる。キャッシュは、
メモリ16から値をロードする長いステップを回避する
ことによって処理を高速化する目的で、プロセッサが繰
り返しアクセスする可能性のある値を一時的に記憶する
ために一般に使用される。これらのキャッシュは、単一
の集積チップ28上にプロセッサ・コアと一体にパッケ
ージされているときは、「オンボード」キャッシュと呼
ばれる。各キャッシュには、プロセッサ・コアとキャッ
シュ・メモリとの間のデータの転送を管理するキャッシ
ュ・コントローラ(図示せず)が付随している。
ータでは、すべての処理装置は一般に同じである。すな
わち、すべての処理装置が命令及びプロトコルの共通の
セットまたはサブセットを使用して動作し、一般に同じ
アーキテクチャを有する。典型的なアーキテクチャは図
1に示す通りである。処理装置は、複数のレジスタと、
コンピュータを動作させるためにプログラム命令を実行
する実行ユニットとを含むプロセッサ・コア22を含
む。処理装置の例としては、インターナショナル・ビジ
ネス・マシーンズ・コーポレイション(IBM)が販売
するPowerPCTMプロセッサがある。処理装置は、
高速メモリ・デバイスを使用して実装された命令キャッ
シュ24やデータ・キャッシュ26などの1つまたは複
数のキャッシュも有することができる。キャッシュは、
メモリ16から値をロードする長いステップを回避する
ことによって処理を高速化する目的で、プロセッサが繰
り返しアクセスする可能性のある値を一時的に記憶する
ために一般に使用される。これらのキャッシュは、単一
の集積チップ28上にプロセッサ・コアと一体にパッケ
ージされているときは、「オンボード」キャッシュと呼
ばれる。各キャッシュには、プロセッサ・コアとキャッ
シュ・メモリとの間のデータの転送を管理するキャッシ
ュ・コントローラ(図示せず)が付随している。
【0004】処理装置12は、オンボード(一次)キャ
ッシュ24及び26をサポートするため二次キャッシュ
(L2)と呼ばれるキャッシュ30などの追加のキャッ
シュを備えることができる。言い換えると、キャッシュ
30はメモリ16とオンボード・キャッシュとの間の媒
介として機能し、オンボード・キャッシュよりもはるか
に大量の情報(命令及びデータ)を記憶することができ
るが、アクセス・ペナルティは長い。たとえば、キャッ
シュ30は、256キロバイトまたは512キロバイト
の記憶容量を有するチップとすることができ、プロセッ
サは64キロバイトの合計記憶容量を持つオンボード・
キャッシュを有するIBM PowerPCTM604シ
リーズのプロセッサとすることができる。キャッシュ3
0はバス20に接続され、メモリ16からプロセッサ・
コア22への情報のロードはすべてキャッシュ30を介
して行わなければならない。図1には二次キャッシュ階
層しか図示されていないが、多くのレベルの相互接続さ
れたキャッシュを備えたマルチレベル・キャッシュ階層
を設けることもできる。
ッシュ24及び26をサポートするため二次キャッシュ
(L2)と呼ばれるキャッシュ30などの追加のキャッ
シュを備えることができる。言い換えると、キャッシュ
30はメモリ16とオンボード・キャッシュとの間の媒
介として機能し、オンボード・キャッシュよりもはるか
に大量の情報(命令及びデータ)を記憶することができ
るが、アクセス・ペナルティは長い。たとえば、キャッ
シュ30は、256キロバイトまたは512キロバイト
の記憶容量を有するチップとすることができ、プロセッ
サは64キロバイトの合計記憶容量を持つオンボード・
キャッシュを有するIBM PowerPCTM604シ
リーズのプロセッサとすることができる。キャッシュ3
0はバス20に接続され、メモリ16からプロセッサ・
コア22への情報のロードはすべてキャッシュ30を介
して行わなければならない。図1には二次キャッシュ階
層しか図示されていないが、多くのレベルの相互接続さ
れたキャッシュを備えたマルチレベル・キャッシュ階層
を設けることもできる。
【0005】キャッシュは、様々な命令及びデータ値を
個別に記憶する多くの「ブロック」を有する。どのキャ
ッシュ内のブロックも「セット」または「合同クラス」
と呼ばれるブロックのグループに分けられている。セッ
トとは、その中に所与のメモリ・ブロックが入ることが
できるキャッシュ・ブロックの集まりである。どの所与
のメモリ・ブロックについても、事前設定マッピング機
能に従ってブロックをマップすることができるキャッシ
ュ内の固有のセットがある。セット内のブロック数をキ
ャッシュのアソシアティビティと呼び、たとえば2ウェ
イ・セット・アソシアティブとは、所与のメモリ・ブロ
ックについてキャッシュ内にそのメモリ・ブロックをマ
ップすることができるブロックが2個あることを意味す
る。しかし、所与のセットにメイン・メモリ内のいくつ
かの異なるブロックをマップすることができる。1ウェ
イ・セット・アソシアティブ・キャッシュにはダイレク
ト・マップされる。すなわち、特定のメモリ・ブロック
を含むことができるキャッシュ・ブロックは1つしかな
い。メモリ・ブロックがいずれかのキャッシュ・ブロッ
クを専有することができる場合、すなわち1つの合同ク
ラスがあり、アドレス・タグがメモリ・ブロックのフル
・アドレスである場合、キャッシュはフル・アソシアテ
ィブであると言う。
個別に記憶する多くの「ブロック」を有する。どのキャ
ッシュ内のブロックも「セット」または「合同クラス」
と呼ばれるブロックのグループに分けられている。セッ
トとは、その中に所与のメモリ・ブロックが入ることが
できるキャッシュ・ブロックの集まりである。どの所与
のメモリ・ブロックについても、事前設定マッピング機
能に従ってブロックをマップすることができるキャッシ
ュ内の固有のセットがある。セット内のブロック数をキ
ャッシュのアソシアティビティと呼び、たとえば2ウェ
イ・セット・アソシアティブとは、所与のメモリ・ブロ
ックについてキャッシュ内にそのメモリ・ブロックをマ
ップすることができるブロックが2個あることを意味す
る。しかし、所与のセットにメイン・メモリ内のいくつ
かの異なるブロックをマップすることができる。1ウェ
イ・セット・アソシアティブ・キャッシュにはダイレク
ト・マップされる。すなわち、特定のメモリ・ブロック
を含むことができるキャッシュ・ブロックは1つしかな
い。メモリ・ブロックがいずれかのキャッシュ・ブロッ
クを専有することができる場合、すなわち1つの合同ク
ラスがあり、アドレス・タグがメモリ・ブロックのフル
・アドレスである場合、キャッシュはフル・アソシアテ
ィブであると言う。
【0006】キャッシュ・ライン(ブロック)の例とし
ては、アドレス・タグ・フィールド、状態ビット・フィ
ールド、包含ビット・フィールド、実際の命令及びデー
タを記憶する値フィールドがある。状態ビット・フィー
ルドと包含ビット・フィールドは、マイクロプロセッサ
・コンピュータ・システム内のキャッシュ・コヒーレン
シを維持するために使用される(キャッシュに記憶され
ている値の有効性を示す)。アドレス・タグは、対応す
るメモリ・ブロックのフル・アドレスのサブセットであ
る。着信アドレスとアドレス・タグ・フィールド内のタ
グの1つとの比較一致によって、キャッシュ「ヒット」
が示される。キャッシュ内のすべてのアドレス・タグ
(及び場合によっては状態ビット・フィールドと包含ビ
ット・フィールド)の集まりをディレクトリと呼び、す
べての値フィールドの集まりはキャッシュ項目配列であ
る。
ては、アドレス・タグ・フィールド、状態ビット・フィ
ールド、包含ビット・フィールド、実際の命令及びデー
タを記憶する値フィールドがある。状態ビット・フィー
ルドと包含ビット・フィールドは、マイクロプロセッサ
・コンピュータ・システム内のキャッシュ・コヒーレン
シを維持するために使用される(キャッシュに記憶され
ている値の有効性を示す)。アドレス・タグは、対応す
るメモリ・ブロックのフル・アドレスのサブセットであ
る。着信アドレスとアドレス・タグ・フィールド内のタ
グの1つとの比較一致によって、キャッシュ「ヒット」
が示される。キャッシュ内のすべてのアドレス・タグ
(及び場合によっては状態ビット・フィールドと包含ビ
ット・フィールド)の集まりをディレクトリと呼び、す
べての値フィールドの集まりはキャッシュ項目配列であ
る。
【0007】所与のクラスの合同クラス内のすべてのブ
ロックがいっぱいであり、そのキャッシュがいっぱいに
なった合同クラスにマップする記憶場所に対する「読取
り」または「書込み」要求を受け取った場合、キャッシ
ュは現在そのクラスに入っているブロックの1つを「追
い出し」しなければならない。キャッシュは、当業者に
周知のいくつかの手段(最低使用頻度(LRU)法、ラ
ンダム法、疑似LRU法など)の1つによって、追い出
すブロックを選択する。選択されたブロック内のデータ
が変更された場合、そのデータはメモリ階層内の次に低
いレベルに書き込まれる。これは他のキャッシュ(この
場合は一次キャッシュすなわちオンボード・キャッシ
ュ)またはメイン・メモリ(この場合は図1の2レベル
・アーキテクチャに図示するような二次キャッシュ)で
もよい。包含の原理により、階層の下位レベルは書き込
まれた変更データを保持するために使用可能なブロック
をすでに持っていることになる。しかし、選択されたブ
ロック内のデータが変更されなかった場合、そのブロッ
クは単に放棄されるだけで、階層内の次に低いレベルに
は書き込まれない。階層の1つのレベルからブロックを
除去するこのプロセスを「追い出し」と呼ぶ。このプロ
セスの終わりに、キャッシュは追い出されたブロックの
コピーをもはや保持しない。
ロックがいっぱいであり、そのキャッシュがいっぱいに
なった合同クラスにマップする記憶場所に対する「読取
り」または「書込み」要求を受け取った場合、キャッシ
ュは現在そのクラスに入っているブロックの1つを「追
い出し」しなければならない。キャッシュは、当業者に
周知のいくつかの手段(最低使用頻度(LRU)法、ラ
ンダム法、疑似LRU法など)の1つによって、追い出
すブロックを選択する。選択されたブロック内のデータ
が変更された場合、そのデータはメモリ階層内の次に低
いレベルに書き込まれる。これは他のキャッシュ(この
場合は一次キャッシュすなわちオンボード・キャッシ
ュ)またはメイン・メモリ(この場合は図1の2レベル
・アーキテクチャに図示するような二次キャッシュ)で
もよい。包含の原理により、階層の下位レベルは書き込
まれた変更データを保持するために使用可能なブロック
をすでに持っていることになる。しかし、選択されたブ
ロック内のデータが変更されなかった場合、そのブロッ
クは単に放棄されるだけで、階層内の次に低いレベルに
は書き込まれない。階層の1つのレベルからブロックを
除去するこのプロセスを「追い出し」と呼ぶ。このプロ
セスの終わりに、キャッシュは追い出されたブロックの
コピーをもはや保持しない。
【0008】図2に、上述のキャッシュ構造と追い出し
プロセスを示す。キャッシュ40(一次またはそれより
下位レベル)は、キャッシュ・ディレクトリ42と、キ
ャッシュ項目配列と44と、LRU配列46と、特定の
合同クラスから追い出すブロックを選択する制御論理回
路48とを含む。図のキャッシュ40は8ウェイ・セッ
ト・アソシアティブであり、したがってディレクトリ4
2とキャッシュ項目配列44とLRU配列46とはそれ
ぞれ、50に示すように特定の合同クラスについて8ブ
ロックから成る特定のセットを有する。言い換えると、
合同クラス50の「X」で示すようにキャッシュ・ディ
レクトリ42内の合同クラスの特定のメンバには、キャ
ッシュ項目配列44内の合同クラスの特定のメンバと、
LRU配列46内の合同クラスの特定のメンバとが関連
づけられている。
プロセスを示す。キャッシュ40(一次またはそれより
下位レベル)は、キャッシュ・ディレクトリ42と、キ
ャッシュ項目配列と44と、LRU配列46と、特定の
合同クラスから追い出すブロックを選択する制御論理回
路48とを含む。図のキャッシュ40は8ウェイ・セッ
ト・アソシアティブであり、したがってディレクトリ4
2とキャッシュ項目配列44とLRU配列46とはそれ
ぞれ、50に示すように特定の合同クラスについて8ブ
ロックから成る特定のセットを有する。言い換えると、
合同クラス50の「X」で示すようにキャッシュ・ディ
レクトリ42内の合同クラスの特定のメンバには、キャ
ッシュ項目配列44内の合同クラスの特定のメンバと、
LRU配列46内の合同クラスの特定のメンバとが関連
づけられている。
【0009】ディレクトリ42内の各ブロックは誤り修
正コード(ECC)回路52を介して制御論理回路に接
続されている。ソフト誤り(漂遊放射や静電放電など)
またはハード誤り(欠陥セル)のために、所与のキャッ
シュ・ブロック内のビットに不正な値が入っていること
がある。ECCを使用すれば適正なデータ・ストリーム
を再構築することができる。ある種のECCは単一ビッ
ト誤りの検出と修正にのみ使用することができる。すな
わち、特定のブロック内の2つ以上のビットが無効な場
合、そのECCは適正なデータ・ストリームは実際には
どのようなストリームであるかを判断することはできな
いが、少なくともその欠陥は検出することができる。ま
た、二重ビット誤りの検出や修正も行うことができるよ
り高度なECCもある。この二重ビット誤りは修正する
のにコストがかかるが、その設計は二重ビット誤りが発
生すると機械を停止させるものである。ディレクトリ4
2のみECC回路を有するように図示されているが、こ
れらの回路はキャッシュ項目配列44など、他の配列で
も同様に使用することができる。
正コード(ECC)回路52を介して制御論理回路に接
続されている。ソフト誤り(漂遊放射や静電放電など)
またはハード誤り(欠陥セル)のために、所与のキャッ
シュ・ブロック内のビットに不正な値が入っていること
がある。ECCを使用すれば適正なデータ・ストリーム
を再構築することができる。ある種のECCは単一ビッ
ト誤りの検出と修正にのみ使用することができる。すな
わち、特定のブロック内の2つ以上のビットが無効な場
合、そのECCは適正なデータ・ストリームは実際には
どのようなストリームであるかを判断することはできな
いが、少なくともその欠陥は検出することができる。ま
た、二重ビット誤りの検出や修正も行うことができるよ
り高度なECCもある。この二重ビット誤りは修正する
のにコストがかかるが、その設計は二重ビット誤りが発
生すると機械を停止させるものである。ディレクトリ4
2のみECC回路を有するように図示されているが、こ
れらの回路はキャッシュ項目配列44など、他の配列で
も同様に使用することができる。
【0010】(修正された)メモリ・ブロック・アドレ
スに対応する値を持つECC回路52の出力がそれぞれ
の比較器54に接続され、各比較器は要求されたメモリ
・ブロックのアドレスも受け取る。要求されたメモリ・
ブロックの有効なコピーが合同クラス50内にある場
合、比較器54のうちの1つの比較器だけがアクティブ
信号を出力する。比較器54の出力はマルチプレクサ5
6に接続され、ORゲート58にも接続されている。O
Rゲート58の出力はマルチプレクサ56を制御する。
キャッシュ・ヒットが起こると(要求されたアドレスが
キャッシュ・ディレクトリ42内のアドレスと一致す
る)、ORゲート58はマルチプレクサ56をアクティ
ブにして合同クラスのどのメンバがそのアドレスと一致
するかを示す信号を渡す。この信号は、キャッシュ項目
配列44内の各項目から入力値を受け取るもう一つのマ
ルチプレクサ60を制御する。このようにして、ディレ
クトリ内でキャッシュ・ヒットが起こると、それに対応
する値がマルチプレクサ60からバス62に流される。
スに対応する値を持つECC回路52の出力がそれぞれ
の比較器54に接続され、各比較器は要求されたメモリ
・ブロックのアドレスも受け取る。要求されたメモリ・
ブロックの有効なコピーが合同クラス50内にある場
合、比較器54のうちの1つの比較器だけがアクティブ
信号を出力する。比較器54の出力はマルチプレクサ5
6に接続され、ORゲート58にも接続されている。O
Rゲート58の出力はマルチプレクサ56を制御する。
キャッシュ・ヒットが起こると(要求されたアドレスが
キャッシュ・ディレクトリ42内のアドレスと一致す
る)、ORゲート58はマルチプレクサ56をアクティ
ブにして合同クラスのどのメンバがそのアドレスと一致
するかを示す信号を渡す。この信号は、キャッシュ項目
配列44内の各項目から入力値を受け取るもう一つのマ
ルチプレクサ60を制御する。このようにして、ディレ
クトリ内でキャッシュ・ヒットが起こると、それに対応
する値がマルチプレクサ60からバス62に流される。
【0011】キャッシュ・ミスが起こったとき、特定の
合同クラス50内のすべてのブロックがメモリ・ブロッ
クの有効なコピーをすでに持っている場合は、合同クラ
ス50内のキャッシュ・ブロックのうちの1つを選択し
て犠牲にしなければならない。この選択はLRU配列4
6内の合同クラスのLRUビットを使用して行われる。
クラス内の各キャッシュ・ブロックについて複数のLR
Uビットがある。たとえば、8ウェイ・アソシアティブ
・キャッシュの場合は1ブロックにつき3つのLRUビ
ットがある。クラス内の各ブロックからLRUビットが
デコーダ64に入力値として供給される。デコーダはど
のブロックを犠牲にするかを示す8ビットの出力値を有
する。この出力値はマルチプレクサ56に結合される。
このようにして、ORゲート58がアクティブでない場
合、マルチプレクサ56はデコーダ64の出力に基づい
て使用するキャッシュ・ブロックを示す標識を渡す。
合同クラス50内のすべてのブロックがメモリ・ブロッ
クの有効なコピーをすでに持っている場合は、合同クラ
ス50内のキャッシュ・ブロックのうちの1つを選択し
て犠牲にしなければならない。この選択はLRU配列4
6内の合同クラスのLRUビットを使用して行われる。
クラス内の各キャッシュ・ブロックについて複数のLR
Uビットがある。たとえば、8ウェイ・アソシアティブ
・キャッシュの場合は1ブロックにつき3つのLRUビ
ットがある。クラス内の各ブロックからLRUビットが
デコーダ64に入力値として供給される。デコーダはど
のブロックを犠牲にするかを示す8ビットの出力値を有
する。この出力値はマルチプレクサ56に結合される。
このようにして、ORゲート58がアクティブでない場
合、マルチプレクサ56はデコーダ64の出力に基づい
て使用するキャッシュ・ブロックを示す標識を渡す。
【0012】上述のECC回路はメモリ・セル内で発生
したソフト誤りを処理する1つの方法である。ハード誤
りを処理する他の手法は、配列(ディレクトリ、LR
U、キャッシュ)内に冗長性をもたせることである。キ
ャッシュ・チップを製作するとき、各配列内に欠陥のあ
る行ラインまたは列ラインがないかどうか検査して調べ
ることができる(キャッシュ、ディレクトリ、及びLR
U全体について行ライン及び列ラインを検査する)。配
列に欠陥がある場合、ヒューズを永続的に切ってその欠
陥性を示すことができる。次に、各アクセスされるアド
レスについて配列内部で比較を行い、欠陥のあるアドレ
スと一致していないか調べる。一致している場合、適切
な論理回路がそのアドレスを、チップ上に形成された多
くの余分の行ライン及び列ライン(すなわち冗長ビット
・ライン(列)及びワード・ライン(行)で形成された
ライン)の1つに経路指定し直す。余分のビット・ライ
ン及びワード・ラインの数は欠陥率と所望のチップ歩留
まりとによって異なることがある。低欠陥(物理サイズ
が比較的大きい)キャッシュの場合、正規のライン25
6本ごとに2本ずつの余分なラインを設け、高欠陥(物
理サイズが比較的小さい)キャッシュでは正規のライン
8本ごとに2本の余分のラインを設ける。
したソフト誤りを処理する1つの方法である。ハード誤
りを処理する他の手法は、配列(ディレクトリ、LR
U、キャッシュ)内に冗長性をもたせることである。キ
ャッシュ・チップを製作するとき、各配列内に欠陥のあ
る行ラインまたは列ラインがないかどうか検査して調べ
ることができる(キャッシュ、ディレクトリ、及びLR
U全体について行ライン及び列ラインを検査する)。配
列に欠陥がある場合、ヒューズを永続的に切ってその欠
陥性を示すことができる。次に、各アクセスされるアド
レスについて配列内部で比較を行い、欠陥のあるアドレ
スと一致していないか調べる。一致している場合、適切
な論理回路がそのアドレスを、チップ上に形成された多
くの余分の行ライン及び列ライン(すなわち冗長ビット
・ライン(列)及びワード・ライン(行)で形成された
ライン)の1つに経路指定し直す。余分のビット・ライ
ン及びワード・ラインの数は欠陥率と所望のチップ歩留
まりとによって異なることがある。低欠陥(物理サイズ
が比較的大きい)キャッシュの場合、正規のライン25
6本ごとに2本ずつの余分なラインを設け、高欠陥(物
理サイズが比較的小さい)キャッシュでは正規のライン
8本ごとに2本の余分のラインを設ける。
【0013】上述のキャッシュ構成にはいくつかの欠陥
と制約がある。ECC回路52については、その種の回
路はかなり複雑で、チップ上のスペースをとるだけでな
く、キャッシュ値を(ディレクトリまたはキャッシュか
ら)取り出すためのクリティカル(タイミング)パス内
にあるため処理速度がさらに遅くなる。ECC回路は二
重ビット誤りの修正は可能であるかも知れないが、2ビ
ットを超える不正ビットのある複数ビット誤りは修正す
ることができない。複雑さを増し、処理速度を低下させ
るこれらの従来技術のキャッシュ構成のもう一つの面
は、キャッシュをCPUスヌープのためにCPUに相互
接続したりシステム・バス・スヌープのためにシステム
・バスに相互接続したりを選択的に行うために必要なア
ービトレーション論理回路66である。この論理回路も
クリティカル・パスにある。このように2つのスヌーピ
ング装置が1つのキャッシュを使用すると、本質的に、
CPUとシステム・バスの両方が同時にそのキャッシュ
の読取りを行う必要がある場合など、他の特定の遅延を
生じさせる。この2つの読取り操作を同時に行うことは
できず、アービトレーション論理回路によって順次化し
なければならない。これと同じことは書込み操作にも言
える。
と制約がある。ECC回路52については、その種の回
路はかなり複雑で、チップ上のスペースをとるだけでな
く、キャッシュ値を(ディレクトリまたはキャッシュか
ら)取り出すためのクリティカル(タイミング)パス内
にあるため処理速度がさらに遅くなる。ECC回路は二
重ビット誤りの修正は可能であるかも知れないが、2ビ
ットを超える不正ビットのある複数ビット誤りは修正す
ることができない。複雑さを増し、処理速度を低下させ
るこれらの従来技術のキャッシュ構成のもう一つの面
は、キャッシュをCPUスヌープのためにCPUに相互
接続したりシステム・バス・スヌープのためにシステム
・バスに相互接続したりを選択的に行うために必要なア
ービトレーション論理回路66である。この論理回路も
クリティカル・パスにある。このように2つのスヌーピ
ング装置が1つのキャッシュを使用すると、本質的に、
CPUとシステム・バスの両方が同時にそのキャッシュ
の読取りを行う必要がある場合など、他の特定の遅延を
生じさせる。この2つの読取り操作を同時に行うことは
できず、アービトレーション論理回路によって順次化し
なければならない。これと同じことは書込み操作にも言
える。
【0014】キャッシュ構成の他の欠点は、ビット・ラ
イン冗長構成とワード・ライン冗長構成の使用に関係す
る。この技法によってチップ歩留まりを向上させること
はできるが、これらの冗長構成は配列アクセスのための
クリティカル・パス内に直接入る。欠陥のある行ライン
及び列ラインを探索し、欠陥のあるラインと一致する要
求をリダイレクトするのに余分な時間を要する。したが
って、歩留まり向上とキャッシュ応答速度の低下との間
にトレードオフがある。他の欠点は冗長ラインのために
用意しなければならない追加の物理サイズである。正規
ライン8本ごとに2本の余分なラインを備える例では、
25%の余分なキャッシュ・サイズ(オーバーヘッド)
が必要であり、その空間の多くは一度も使用されること
がない。また、冗長ラインはあまりうまく拡張されな
い。たとえば、キャッシュ・ライン・サイズが2倍(6
4バイトから128バイトに)になった場合、冗長ライ
ンに必要なシリコンの量(チップ空間)も同様に2倍に
なる。最後に、キャッシュ内のヒューズ切れに基づいて
使用される冗長ラインの使用は静的であり、かなり無駄
がある。冗長ラインの可用性は検査時のキャッシュの状
態に基づく。接合部の温度と内部電圧が変化する条件の
下で動作する高密度の大規模なキャッシュ・チップで
は、キャッシュ内の欠陥が増大するが、それらの追加の
欠陥ラインをリダイレクトすることができない。歩留ま
りを向上させるために多くの余分なラインを設けなけれ
ばならないが、それらのラインの多くは一度も使用され
ない。
イン冗長構成とワード・ライン冗長構成の使用に関係す
る。この技法によってチップ歩留まりを向上させること
はできるが、これらの冗長構成は配列アクセスのための
クリティカル・パス内に直接入る。欠陥のある行ライン
及び列ラインを探索し、欠陥のあるラインと一致する要
求をリダイレクトするのに余分な時間を要する。したが
って、歩留まり向上とキャッシュ応答速度の低下との間
にトレードオフがある。他の欠点は冗長ラインのために
用意しなければならない追加の物理サイズである。正規
ライン8本ごとに2本の余分なラインを備える例では、
25%の余分なキャッシュ・サイズ(オーバーヘッド)
が必要であり、その空間の多くは一度も使用されること
がない。また、冗長ラインはあまりうまく拡張されな
い。たとえば、キャッシュ・ライン・サイズが2倍(6
4バイトから128バイトに)になった場合、冗長ライ
ンに必要なシリコンの量(チップ空間)も同様に2倍に
なる。最後に、キャッシュ内のヒューズ切れに基づいて
使用される冗長ラインの使用は静的であり、かなり無駄
がある。冗長ラインの可用性は検査時のキャッシュの状
態に基づく。接合部の温度と内部電圧が変化する条件の
下で動作する高密度の大規模なキャッシュ・チップで
は、キャッシュ内の欠陥が増大するが、それらの追加の
欠陥ラインをリダイレクトすることができない。歩留ま
りを向上させるために多くの余分なラインを設けなけれ
ばならないが、それらのラインの多くは一度も使用され
ない。
【0015】上記に鑑みて、キャッシュ・アクセスの高
速化と例外誤り修正機能とを含む、欠陥キャッシュ・ラ
インの改良型処理機能を有するキャッシュ構成を備える
ことが望ましいであろう。さらに、複雑な論理回路を設
けずにすべての使用可能なキャッシュ・ラインを効率的
かつ動的に使用し、キャッシュ・ラインの拡張に合わせ
て適切に拡張されるようなキャッシュ構成を備えれば有
利であろう。
速化と例外誤り修正機能とを含む、欠陥キャッシュ・ラ
インの改良型処理機能を有するキャッシュ構成を備える
ことが望ましいであろう。さらに、複雑な論理回路を設
けずにすべての使用可能なキャッシュ・ラインを効率的
かつ動的に使用し、キャッシュ・ラインの拡張に合わせ
て適切に拡張されるようなキャッシュ構成を備えれば有
利であろう。
【0016】
【発明が解決しようとする課題】したがって、本発明の
目的は、コンピュータ・システムのプロセッサが使用す
る改良されたキャッシュを提供することである。
目的は、コンピュータ・システムのプロセッサが使用す
る改良されたキャッシュを提供することである。
【0017】本発明の他の目的は、クリティカル・パス
に余分の論理回路のない、すべての使用可能なキャッシ
ュ・ラインを効率的に使用する前記キャッシュを提供す
ることである。
に余分の論理回路のない、すべての使用可能なキャッシ
ュ・ラインを効率的に使用する前記キャッシュを提供す
ることである。
【0018】本発明の他の目的は、欠陥回避及び誤り修
正を含む、欠陥の改良型処理機能を有する前記キャッシ
ュを提供することである。
正を含む、欠陥の改良型処理機能を有する前記キャッシ
ュを提供することである。
【0019】本発明の他の目的は、より高速の読取りア
クセス機能を有する前記キャッシュを提供することであ
る。
クセス機能を有する前記キャッシュを提供することであ
る。
【0020】
【課題を解決するための手段】上記の目的は、コンピュ
ータ・システムのプロセッサが使用するキャッシュ内の
欠陥を迂回する方法であって、一般に、各ビット・フィ
ールドがキャッシュ内の複数のキャッシュ・ラインのう
ちのそれぞれ1つのキャッシュ・ラインに対応するビッ
ト・フィールドの配列を有する修復マスクを設けるステ
ップと、キャッシュ内の特定のキャッシュ・ラインを欠
陥があるものと識別するステップと、修復マスク配列内
の対応するビット・フィールドを設定して欠陥キャッシ
ュ・ラインに欠陥があることを示すステップと、修復マ
スク配列内の対応するビット・フィールドに基づいて欠
陥キャッシュ・ラインへのアクセスを防ぐステップとを
含む方法で達成される。修復マスクを使用して、欠陥キ
ャッシュ・ラインがキャッシュ・ヒットになるのを防
ぎ、欠陥キャッシュ・ラインがキャッシュ置換のための
犠牲として選択されるのを防ぐことができる。セット・
アソシアティブ・キャッシュを使用して、欠陥キャッシ
ュ・ラインをそれぞれの合同クラスから実質的に除去す
る。この手法によって、キャッシュは欠陥のないすべて
のキャッシュ・ラインを使用することができ、冗長性を
もたせるために確保しておかれるキャッシュ・ラインは
ない。一実施例では、キャッシュは、要求されたアドレ
スがキャッシュ・ラインの一部にあるアドレス・タグに
対応するかどうかを判断する複数の比較器を有し、所与
の比較器は、要求されたアドレスがアドレス・タブ部分
と一致しない場合はイナクティブであるが、要求された
アドレスがアドレス・タブ部分と一致する場合はアクテ
ィブである出力信号を有し、欠陥キャッシュ・ラインが
キャッシュ・ヒットになるのを防止する前記ステップ
が、各信号が比較器のうちの所与の1つの比較器の出力
信号と修復マスクからのビット・フィールドのそれぞれ
1つのビット・フィールドの出力信号とのAND結合で
ある複数の信号を入力信号として受け取るマルチプレク
サを設けるステップを含む。キャッシュは、複数のキャ
ッシュ・ラインのうちのいずれのキャッシュ・ラインを
置換のための犠牲として選択するかを示す複数の出力信
号を有するキャッシュ置換(追い出し)回路も有し、マ
ルチプレクサが、各信号がキャッシュ置換回路の出力信
号のうちの所与の1つの出力信号と修復マスクからのビ
ット・フィールドのうちのそれぞれ1つのビット・フィ
ールドの出力信号とのAND結合である他の複数の信号
を入力信号として受け取る。
ータ・システムのプロセッサが使用するキャッシュ内の
欠陥を迂回する方法であって、一般に、各ビット・フィ
ールドがキャッシュ内の複数のキャッシュ・ラインのう
ちのそれぞれ1つのキャッシュ・ラインに対応するビッ
ト・フィールドの配列を有する修復マスクを設けるステ
ップと、キャッシュ内の特定のキャッシュ・ラインを欠
陥があるものと識別するステップと、修復マスク配列内
の対応するビット・フィールドを設定して欠陥キャッシ
ュ・ラインに欠陥があることを示すステップと、修復マ
スク配列内の対応するビット・フィールドに基づいて欠
陥キャッシュ・ラインへのアクセスを防ぐステップとを
含む方法で達成される。修復マスクを使用して、欠陥キ
ャッシュ・ラインがキャッシュ・ヒットになるのを防
ぎ、欠陥キャッシュ・ラインがキャッシュ置換のための
犠牲として選択されるのを防ぐことができる。セット・
アソシアティブ・キャッシュを使用して、欠陥キャッシ
ュ・ラインをそれぞれの合同クラスから実質的に除去す
る。この手法によって、キャッシュは欠陥のないすべて
のキャッシュ・ラインを使用することができ、冗長性を
もたせるために確保しておかれるキャッシュ・ラインは
ない。一実施例では、キャッシュは、要求されたアドレ
スがキャッシュ・ラインの一部にあるアドレス・タグに
対応するかどうかを判断する複数の比較器を有し、所与
の比較器は、要求されたアドレスがアドレス・タブ部分
と一致しない場合はイナクティブであるが、要求された
アドレスがアドレス・タブ部分と一致する場合はアクテ
ィブである出力信号を有し、欠陥キャッシュ・ラインが
キャッシュ・ヒットになるのを防止する前記ステップ
が、各信号が比較器のうちの所与の1つの比較器の出力
信号と修復マスクからのビット・フィールドのそれぞれ
1つのビット・フィールドの出力信号とのAND結合で
ある複数の信号を入力信号として受け取るマルチプレク
サを設けるステップを含む。キャッシュは、複数のキャ
ッシュ・ラインのうちのいずれのキャッシュ・ラインを
置換のための犠牲として選択するかを示す複数の出力信
号を有するキャッシュ置換(追い出し)回路も有し、マ
ルチプレクサが、各信号がキャッシュ置換回路の出力信
号のうちの所与の1つの出力信号と修復マスクからのビ
ット・フィールドのうちのそれぞれ1つのビット・フィ
ールドの出力信号とのAND結合である他の複数の信号
を入力信号として受け取る。
【0021】
【発明の実施の形態】図面、特に図3を参照すると、本
発明により構成されたセット・アソシアティブ・キャッ
シュ70の一実施例を示す高水準略図が図示されてい
る。キャッシュ70は一般に、キャッシュ・ディレクト
リ72と、LRU配列74と、修復マスク76と、制御
論理回路78とを含む。キャッシュ・ディレクトリ72
は、関連づけられていくつかのセットになっている複数
のアドレス・タグを有し、図の実施例は8ウェイ・セッ
ト・アソシアティブであるため、ディレクトリ72、L
RU配列74、及び修復マスク76は図80に示すよう
にそれぞれ特定の合同クラスについて8ブロックからな
る特定のセットを有する。キャッシュ項目配列(図示せ
ず)はディレクトリ72内のアドレス・タグに関連づけ
られた値を有する。
発明により構成されたセット・アソシアティブ・キャッ
シュ70の一実施例を示す高水準略図が図示されてい
る。キャッシュ70は一般に、キャッシュ・ディレクト
リ72と、LRU配列74と、修復マスク76と、制御
論理回路78とを含む。キャッシュ・ディレクトリ72
は、関連づけられていくつかのセットになっている複数
のアドレス・タグを有し、図の実施例は8ウェイ・セッ
ト・アソシアティブであるため、ディレクトリ72、L
RU配列74、及び修復マスク76は図80に示すよう
にそれぞれ特定の合同クラスについて8ブロックからな
る特定のセットを有する。キャッシュ項目配列(図示せ
ず)はディレクトリ72内のアドレス・タグに関連づけ
られた値を有する。
【0022】ディレクトリ72の所与の合同クラス内の
各ブロックは、それぞれの比較器82に接続された出力
線を有し、各比較器は要求されたメモリ・ブロックのア
ドレスを受け取る。要求されたメモリ・ブロックの有効
なコピーが合同クラス80内にある場合、比較器82の
うちのただ1つの比較器がセットのどのメンバが有効な
コピーを保持しているかを示すアクティブ信号を出力す
る。ディレクトリ72からの各出力線は、それぞれの比
較器82との接続と並列してそれぞれのパリティ検査器
84にも接続されている。パリティ検査器84は誤りビ
ットの修正は行わず、ディレクトリ72からのアドレス
・タグ(または状態ビット)の読取りの際に誤りが発生
したことを示すためにのみ使用される。この誤り情報は
以下で詳述するように使用される。重要なのは、パリテ
ィ検査器は比較器と並列して接続されているため、クリ
ティカル・パスの外にあることである。すなわち、パリ
ティ検査器は、残りの論理回路が要求を処理していると
きに同時に並行してパリティ検査を行うことができるた
めキャッシュ・パフォーマンスに影響を与えない(すな
わち速度を低下させない)。(当然ながら、誤りが発生
したことが検出された場合はパリティ検査器によって速
度が低下するが、これは例外である。)また、パリティ
検査器は、従来のパリティ検査技法を使用することがで
き、従来技術で使用されているような誤り修正コード
(ECC)回路よりも複雑でなく(図2と比較)、した
がってキャッシュ・チップ(シリコン・ウエハ)上の占
有空間が少ない。キャッシュ・ディレクトリのためのオ
フライン・パリティ検査器の使用が図示されているが、
さらにキャッシュ項目配列も従来のECC論理回路を設
けずにこれを使用することができる。
各ブロックは、それぞれの比較器82に接続された出力
線を有し、各比較器は要求されたメモリ・ブロックのア
ドレスを受け取る。要求されたメモリ・ブロックの有効
なコピーが合同クラス80内にある場合、比較器82の
うちのただ1つの比較器がセットのどのメンバが有効な
コピーを保持しているかを示すアクティブ信号を出力す
る。ディレクトリ72からの各出力線は、それぞれの比
較器82との接続と並列してそれぞれのパリティ検査器
84にも接続されている。パリティ検査器84は誤りビ
ットの修正は行わず、ディレクトリ72からのアドレス
・タグ(または状態ビット)の読取りの際に誤りが発生
したことを示すためにのみ使用される。この誤り情報は
以下で詳述するように使用される。重要なのは、パリテ
ィ検査器は比較器と並列して接続されているため、クリ
ティカル・パスの外にあることである。すなわち、パリ
ティ検査器は、残りの論理回路が要求を処理していると
きに同時に並行してパリティ検査を行うことができるた
めキャッシュ・パフォーマンスに影響を与えない(すな
わち速度を低下させない)。(当然ながら、誤りが発生
したことが検出された場合はパリティ検査器によって速
度が低下するが、これは例外である。)また、パリティ
検査器は、従来のパリティ検査技法を使用することがで
き、従来技術で使用されているような誤り修正コード
(ECC)回路よりも複雑でなく(図2と比較)、した
がってキャッシュ・チップ(シリコン・ウエハ)上の占
有空間が少ない。キャッシュ・ディレクトリのためのオ
フライン・パリティ検査器の使用が図示されているが、
さらにキャッシュ項目配列も従来のECC論理回路を設
けずにこれを使用することができる。
【0023】比較器82の出力線はANDゲート86の
配列に接続されている。各ANDゲート86は、1つの
比較器出力信号と修復マスク76からもう一つの出力信
号を受け取る。修復マスク76を使用して特定のブロッ
ク(ディレクトリ72、キャッシュ項目配列、またはL
RU配列74内の部分を含む、キャッシュ・ラインの一
部)に欠陥があるかどうかを示す。この実施例では、対
応するキャッシュ・ラインが有効な場合、修復マスク7
6の出力の状態はアクティブ(または高)である。キャ
ッシュ・ラインに欠陥がある場合、修復マスク78の対
応する出力がイナクティブ(オフまたは低)になる。こ
のようにして、ANDゲート86の出力は、(1)対応
する比較器82がキャッシュ・ヒットを示しており、
(2)修復マスク76内の対応する項目によってライン
が有効であることが示された場合にのみアクティブにな
る。言い換えると、修復マスク76内の対応する項目に
よってそのラインに欠陥があることが示されることを除
けばキャッシュ・ヒットが起こることになる場合、修復
マスク76内のその項目の出力はイナクティブになり、
対応するANDゲート86の出力もイナクティブになる
(「ミス比較」)。したがって、欠陥のあるキャッシュ
・ラインがキャッシュ・ヒットになることは決してな
い。
配列に接続されている。各ANDゲート86は、1つの
比較器出力信号と修復マスク76からもう一つの出力信
号を受け取る。修復マスク76を使用して特定のブロッ
ク(ディレクトリ72、キャッシュ項目配列、またはL
RU配列74内の部分を含む、キャッシュ・ラインの一
部)に欠陥があるかどうかを示す。この実施例では、対
応するキャッシュ・ラインが有効な場合、修復マスク7
6の出力の状態はアクティブ(または高)である。キャ
ッシュ・ラインに欠陥がある場合、修復マスク78の対
応する出力がイナクティブ(オフまたは低)になる。こ
のようにして、ANDゲート86の出力は、(1)対応
する比較器82がキャッシュ・ヒットを示しており、
(2)修復マスク76内の対応する項目によってライン
が有効であることが示された場合にのみアクティブにな
る。言い換えると、修復マスク76内の対応する項目に
よってそのラインに欠陥があることが示されることを除
けばキャッシュ・ヒットが起こることになる場合、修復
マスク76内のその項目の出力はイナクティブになり、
対応するANDゲート86の出力もイナクティブになる
(「ミス比較」)。したがって、欠陥のあるキャッシュ
・ラインがキャッシュ・ヒットになることは決してな
い。
【0024】ANDゲート86の出力信号はマルチプレ
クサ88に供給され、ORゲート90にも供給される。
ORゲート90の出力信号によってマルチプレクサ88
が制御される。欠陥のないキャッシュ・ラインでキャッ
シュ・ヒットが起こった場合、ORゲート90はマルチ
プレクサ88をアクティブにして、合同クラスのどのメ
ンバがそのアドレスと一致するかを示す信号をキャッシ
ュ項目配列に渡す。キャッシュ・ミスが起こった場合、
及び特定の合同クラス80内のすべてのブロックがメモ
リ・ブロックの有効なコピーをすでに持っている場合、
キャッシュ・ブロックの1つを選択して犠牲にしなけれ
ばならない。この選択は、従来のLRU(最長期間未使
用)アルゴリズムを含むことができるLRU配列74に
よって暫定的に行われる。LRUの出力信号は、どのブ
ロックが犠牲のために暫定的に選択されたかを示し、代
替犠牲選択論理回路92に接続される。この選択回路9
2は修復マスク76からも入力信号を受け取る。暫定的
に選択された犠牲ブロックに欠陥がない場合、代替犠牲
選択論理回路92は単にLRU出力信号をマルチプレク
サ88に渡し、マルチプレクサ88はその犠牲情報をキ
ャッシュ項目配列に渡す。暫定的に選択された犠牲ブロ
ックに欠陥がある場合、代替犠牲選択論理回路92は新
しい暫定的犠牲を選択する。新しい暫定的犠牲に欠陥が
ない場合、それに対応する情報がマルチプレクサ88に
送られる。新しい暫定的犠牲にも欠陥がある場合、代替
犠牲選択論理回路92は、欠陥のない犠牲が選択される
までこのプロセスを繰り返す。したがって、欠陥のある
キャッシュ・ラインは決して犠牲として選択されない。
所与の合同クラスのマスク・ビットがすべて設定されて
クラスの全てのメンバに欠陥があることが示された場
合、システムは2ビットECC誤りの場合のように停止
またはその他の操作で応答する。
クサ88に供給され、ORゲート90にも供給される。
ORゲート90の出力信号によってマルチプレクサ88
が制御される。欠陥のないキャッシュ・ラインでキャッ
シュ・ヒットが起こった場合、ORゲート90はマルチ
プレクサ88をアクティブにして、合同クラスのどのメ
ンバがそのアドレスと一致するかを示す信号をキャッシ
ュ項目配列に渡す。キャッシュ・ミスが起こった場合、
及び特定の合同クラス80内のすべてのブロックがメモ
リ・ブロックの有効なコピーをすでに持っている場合、
キャッシュ・ブロックの1つを選択して犠牲にしなけれ
ばならない。この選択は、従来のLRU(最長期間未使
用)アルゴリズムを含むことができるLRU配列74に
よって暫定的に行われる。LRUの出力信号は、どのブ
ロックが犠牲のために暫定的に選択されたかを示し、代
替犠牲選択論理回路92に接続される。この選択回路9
2は修復マスク76からも入力信号を受け取る。暫定的
に選択された犠牲ブロックに欠陥がない場合、代替犠牲
選択論理回路92は単にLRU出力信号をマルチプレク
サ88に渡し、マルチプレクサ88はその犠牲情報をキ
ャッシュ項目配列に渡す。暫定的に選択された犠牲ブロ
ックに欠陥がある場合、代替犠牲選択論理回路92は新
しい暫定的犠牲を選択する。新しい暫定的犠牲に欠陥が
ない場合、それに対応する情報がマルチプレクサ88に
送られる。新しい暫定的犠牲にも欠陥がある場合、代替
犠牲選択論理回路92は、欠陥のない犠牲が選択される
までこのプロセスを繰り返す。したがって、欠陥のある
キャッシュ・ラインは決して犠牲として選択されない。
所与の合同クラスのマスク・ビットがすべて設定されて
クラスの全てのメンバに欠陥があることが示された場
合、システムは2ビットECC誤りの場合のように停止
またはその他の操作で応答する。
【0025】修復マスク76は、欠陥キャッシュ・ライ
ンが決してキャッシュ・ヒットを示さないようにする目
的と、欠陥キャッシュ・ラインが決して犠牲として選択
されないようにする目的の両方にとって好都合な手段で
あることがわかるであろう。したがって修復マスク76
は、従来技術のキャッシュ構成要素で設けられるビット
・ライン冗長構成及びワード・ライン冗長構成の代わり
に使用することができる。修復マスクを追加するために
キャッシュ・チップ上にいくらかの余分な空間が必要で
あるが、この空間は一般に、ディレクトリ配列、LRU
配列、及びキャッシュ配列内の冗長ビット・ライン及び
冗長ワード・ラインをなくすことによって節約される空
間量と比較すれば無視可能な程度である。この利点はキ
ャッシュ・ライン・サイズが増大すると共に大きくな
る。すなわち、キャッシュ・ライン・サイズの拡大に伴
って修復マスク配列サイズが増大しない。また、修復マ
スク76を使用することにより、一部の(冗長)キャッ
シュ・ラインが一度も使用されなくなることはなくすべ
ての使用可能キャッシュ・ラインが使用され、キャッシ
ュの全体的使用効率が向上する。さらに修復マスク76
はこれらの利点を、再経路指定オーバーヘッドなしに、
ディレクトリ配列、LRU配列、またはキャッシュ配列
の「ヒューズ切り」を必要とせずに得られるようにす
る。さらにこれによって、キャッシュ操作が格段に高速
化し、製造コストが大幅に低減される。
ンが決してキャッシュ・ヒットを示さないようにする目
的と、欠陥キャッシュ・ラインが決して犠牲として選択
されないようにする目的の両方にとって好都合な手段で
あることがわかるであろう。したがって修復マスク76
は、従来技術のキャッシュ構成要素で設けられるビット
・ライン冗長構成及びワード・ライン冗長構成の代わり
に使用することができる。修復マスクを追加するために
キャッシュ・チップ上にいくらかの余分な空間が必要で
あるが、この空間は一般に、ディレクトリ配列、LRU
配列、及びキャッシュ配列内の冗長ビット・ライン及び
冗長ワード・ラインをなくすことによって節約される空
間量と比較すれば無視可能な程度である。この利点はキ
ャッシュ・ライン・サイズが増大すると共に大きくな
る。すなわち、キャッシュ・ライン・サイズの拡大に伴
って修復マスク配列サイズが増大しない。また、修復マ
スク76を使用することにより、一部の(冗長)キャッ
シュ・ラインが一度も使用されなくなることはなくすべ
ての使用可能キャッシュ・ラインが使用され、キャッシ
ュの全体的使用効率が向上する。さらに修復マスク76
はこれらの利点を、再経路指定オーバーヘッドなしに、
ディレクトリ配列、LRU配列、またはキャッシュ配列
の「ヒューズ切り」を必要とせずに得られるようにす
る。さらにこれによって、キャッシュ操作が格段に高速
化し、製造コストが大幅に低減される。
【0026】機能的マスクを使用してキャッシュ内の欠
陥を迂回するこの新規な方法により、パフォーマンス低
下と標準のキャッシュ欠陥修復方法によるシリコン面積
の増大がなくなる。機能の観点から見ると、特定の合同
クラスは(8ウェイ・セット・アソシアティブではな
く)6ウェイまたは7ウェイのセット・アソシアティブ
を有効に稼働させることができる。しかし、キャッシュ
動作の統計的な性質のために、このアソシアティビティ
の減少はユーザ・レベルでは一般には目に付かない。
陥を迂回するこの新規な方法により、パフォーマンス低
下と標準のキャッシュ欠陥修復方法によるシリコン面積
の増大がなくなる。機能の観点から見ると、特定の合同
クラスは(8ウェイ・セット・アソシアティブではな
く)6ウェイまたは7ウェイのセット・アソシアティブ
を有効に稼働させることができる。しかし、キャッシュ
動作の統計的な性質のために、このアソシアティビティ
の減少はユーザ・レベルでは一般には目に付かない。
【0027】さらに、修復マスクを使用すると、誤りが
検出されたときに修復マスクをリアルタイムで更新する
ことによって動的なキャッシュ欠陥迂回が可能になる。
最初にキャッシュ・ラインを製作時に検査し、欠陥が見
つかった場合は修復マスク内の対応するフィールドの値
を永続的に設定することによってその欠陥を処理するこ
とができる。その後、コンピュータをブート(電源投
入)するたびに、ブート・プロセスの一部としてファー
ムウェア検査に基づいてマスクを自動的に更新すること
ができる。最後に、修復マスクはディレクトリ・パリテ
ィ誤り、キャッシュ項目配列ECC誤り、またはLRU
誤りの検出時に更新することができる。修復マスク配列
内の値を設定するハードウェア・アルゴリズムを備える
こともできる。たとえば、各キャッシュ・ラインの修復
マスク内に1つの2ビット・フィールドを設けることが
できる。この2ビット・フィールドを最初にゼロに設定
し、そのキャッシュ・ライン上で誤りが検出されるたび
に増分することができる。これによって、2ビット・フ
ィールドはカウンタとして機能することができ、所与の
キャッシュ・ラインについて3つの累積パリティ誤りが
記録された場合にのみキャッシュ・ラインに欠陥がある
ものとして設定される。
検出されたときに修復マスクをリアルタイムで更新する
ことによって動的なキャッシュ欠陥迂回が可能になる。
最初にキャッシュ・ラインを製作時に検査し、欠陥が見
つかった場合は修復マスク内の対応するフィールドの値
を永続的に設定することによってその欠陥を処理するこ
とができる。その後、コンピュータをブート(電源投
入)するたびに、ブート・プロセスの一部としてファー
ムウェア検査に基づいてマスクを自動的に更新すること
ができる。最後に、修復マスクはディレクトリ・パリテ
ィ誤り、キャッシュ項目配列ECC誤り、またはLRU
誤りの検出時に更新することができる。修復マスク配列
内の値を設定するハードウェア・アルゴリズムを備える
こともできる。たとえば、各キャッシュ・ラインの修復
マスク内に1つの2ビット・フィールドを設けることが
できる。この2ビット・フィールドを最初にゼロに設定
し、そのキャッシュ・ライン上で誤りが検出されるたび
に増分することができる。これによって、2ビット・フ
ィールドはカウンタとして機能することができ、所与の
キャッシュ・ラインについて3つの累積パリティ誤りが
記録された場合にのみキャッシュ・ラインに欠陥がある
ものとして設定される。
【0028】キャッシュ内のラインに関連づけられた修
復マスク項目が設定されてそのラインに欠陥があること
が示された場合、欠陥のあるキャッシュ場所に遭遇した
後でプロセッサを信頼性をもって稼働させ続けるため
に、その場所にあるキャッシュの内容をフラッシュす
る。修復マスク項目が設定された後は、そのキャッシュ
・ラインが将来アクセスされてもそのアクセスは修復マ
スクによってそのライン上で強制的にミスにされ、その
ラインは二度と再使用(犠牲に)されない。この解決策
は、冗長ラインなどの従来技術の方式と比較すると実質
的にオーバーヘッドがない。これは、プロセッサが苛酷
な環境で稼働しており、万一ランタイム欠陥が発生して
も機能し続けなければならない応用分野で特に有用でも
ある。
復マスク項目が設定されてそのラインに欠陥があること
が示された場合、欠陥のあるキャッシュ場所に遭遇した
後でプロセッサを信頼性をもって稼働させ続けるため
に、その場所にあるキャッシュの内容をフラッシュす
る。修復マスク項目が設定された後は、そのキャッシュ
・ラインが将来アクセスされてもそのアクセスは修復マ
スクによってそのライン上で強制的にミスにされ、その
ラインは二度と再使用(犠牲に)されない。この解決策
は、冗長ラインなどの従来技術の方式と比較すると実質
的にオーバーヘッドがない。これは、プロセッサが苛酷
な環境で稼働しており、万一ランタイム欠陥が発生して
も機能し続けなければならない応用分野で特に有用でも
ある。
【0029】図3には1つのディレクトリ72しか図示
されていないが、本発明により構成されたキャッシュは
図4に示すように追加のディレクトリ96を有すること
もできる。ディレクトリ72及び96は冗長であるが、
ディレクトリ72はCPUスヌープに使用され、ディレ
クトリ96はシステム・バス・スヌープに使用される。
言い換えると、各スヌーピング装置/相互接続機構に1
つのディレクトリを備える。この構成によっていくつか
の利点が得られる。第1に、両方のディレクトリを図3
に関連して説明したパリティ検査器を使用して構成した
場合、各ディレクトリは他方のディレクトリのバックア
ップとして機能することができる。言い換えると、たと
えばディレクトリ72内のアドレス・タグ上でパリティ
誤りが発生した場合、そのアドレス・タグを代わりにデ
ィレクトリ96から読み取ることができる。
されていないが、本発明により構成されたキャッシュは
図4に示すように追加のディレクトリ96を有すること
もできる。ディレクトリ72及び96は冗長であるが、
ディレクトリ72はCPUスヌープに使用され、ディレ
クトリ96はシステム・バス・スヌープに使用される。
言い換えると、各スヌーピング装置/相互接続機構に1
つのディレクトリを備える。この構成によっていくつか
の利点が得られる。第1に、両方のディレクトリを図3
に関連して説明したパリティ検査器を使用して構成した
場合、各ディレクトリは他方のディレクトリのバックア
ップとして機能することができる。言い換えると、たと
えばディレクトリ72内のアドレス・タグ上でパリティ
誤りが発生した場合、そのアドレス・タグを代わりにデ
ィレクトリ96から読み取ることができる。
【0030】パリティ誤りが発生した場合、図3に示す
ようなパリティ誤り制御(PEC)装置98を使用して
その誤りを処理することができる。100の接続線で示
すように、PEC装置98は各パリティ検査器84だけ
でなく、他方のディレクトリ96のパリティ検査器にも
接続されている。PEC装置98は最初にいずれかのパ
リティ検査器からパリティ誤りを検出すると、キャッシ
ュを強制的にビジー・モードにし、その場合、誤りが処
理されるまで要求が再試行されるか、または肯定応答さ
れない。PEC装置98は次に、他方の(非エラー発
生)ディレクトリ内の指定ブロックからアドレス・タグ
(及び状態ビット)を読取り、そのアドレス・タグを問
題のあるディレクトリ、すなわち該当する比較器82に
直接供給する。問題のある配列を更新した後、PEC装
置82はキャッシュが通常の操作を再開することができ
るようにする。
ようなパリティ誤り制御(PEC)装置98を使用して
その誤りを処理することができる。100の接続線で示
すように、PEC装置98は各パリティ検査器84だけ
でなく、他方のディレクトリ96のパリティ検査器にも
接続されている。PEC装置98は最初にいずれかのパ
リティ検査器からパリティ誤りを検出すると、キャッシ
ュを強制的にビジー・モードにし、その場合、誤りが処
理されるまで要求が再試行されるか、または肯定応答さ
れない。PEC装置98は次に、他方の(非エラー発
生)ディレクトリ内の指定ブロックからアドレス・タグ
(及び状態ビット)を読取り、そのアドレス・タグを問
題のあるディレクトリ、すなわち該当する比較器82に
直接供給する。問題のある配列を更新した後、PEC装
置82はキャッシュが通常の操作を再開することができ
るようにする。
【0031】本発明のPEC及びパリティ検査器の特に
有利な一態様は、それらを使用して複数ビット誤り検出
の一形態を提供することができることである。24ビッ
トのアドレス・タグを3個の8ビット・バイトに分ける
など、特定の値(アドレス・タグ)をいくつかの部分に
分けることができる。次に、各部分についてパリティ・
ビットを設ける。すなわち、この例では1つのアドレス
・タグについて3つのパリティ・ビットを設ける。各部
分がパリティ誤りを示すことになるため各部分の1ビッ
トに誤りのある値がある場合でもその誤りは検出され、
1つの部分のみのパリティ誤りだけでPEC98に警告
するのに十分である。その後、他方のディレクトリから
そのビット・フィールド(アドレス・タグ)を代用する
ことによって3つの誤りすべてが修正され、したがって
本発明によって複数ビット誤りの修正が可能になる。
有利な一態様は、それらを使用して複数ビット誤り検出
の一形態を提供することができることである。24ビッ
トのアドレス・タグを3個の8ビット・バイトに分ける
など、特定の値(アドレス・タグ)をいくつかの部分に
分けることができる。次に、各部分についてパリティ・
ビットを設ける。すなわち、この例では1つのアドレス
・タグについて3つのパリティ・ビットを設ける。各部
分がパリティ誤りを示すことになるため各部分の1ビッ
トに誤りのある値がある場合でもその誤りは検出され、
1つの部分のみのパリティ誤りだけでPEC98に警告
するのに十分である。その後、他方のディレクトリから
そのビット・フィールド(アドレス・タグ)を代用する
ことによって3つの誤りすべてが修正され、したがって
本発明によって複数ビット誤りの修正が可能になる。
【0032】図4で、「CPUスヌープ」と示されてい
る線は一般にキャッシュのCPU側の相互接続からの操
作を指し、CPUへの直接相互接続または他のスヌープ
装置、すなわちより上位のキャッシュ(たとえばL1)
への直接相互接続を含むことができる。「システム・バ
ス・スヌープ」は一般にキャッシュのシステム・バス側
の相互接続からの操作を指し、システム・バスへの直接
相互接続または他のスヌープ装置、すなわち下位キャッ
シュ(たとえばL2)への直接相互接続を含むことがで
きる。したがって本発明はキャッシュ階層の特定のレベ
ルにもその全体的な深さにも限定されない。
る線は一般にキャッシュのCPU側の相互接続からの操
作を指し、CPUへの直接相互接続または他のスヌープ
装置、すなわちより上位のキャッシュ(たとえばL1)
への直接相互接続を含むことができる。「システム・バ
ス・スヌープ」は一般にキャッシュのシステム・バス側
の相互接続からの操作を指し、システム・バスへの直接
相互接続または他のスヌープ装置、すなわち下位キャッ
シュ(たとえばL2)への直接相互接続を含むことがで
きる。したがって本発明はキャッシュ階層の特定のレベ
ルにもその全体的な深さにも限定されない。
【0033】図4には、冗長キャッシュ・ディレクトリ
しか図示されていないが、幹線ECC回路の代わりにパ
リティ検査器を備えた冗長キャッシュ項目配列(2個)
も同様に使用することができ、その場合、1つのキャッ
シュ項目配列内に誤りがあると、他方のキャッシュ項目
配列の対応するキャッシュ・ラインから値が読み取られ
ることになる。この手法は、キャッシュのサイズを実際
に2倍にする必要があるが、キャッシュ操作が高速化さ
れ、技術の進歩によってキャッシュ・サイズをますます
小さくすることが可能になるに伴い、キャッシュの全体
的サイズはその速度よりも重要ではなくなると考えられ
る。また、このようなキャッシュ・サイズの増加は、前
述の修復マスクの使用によって生じるサイズの縮小によ
って部分的に相殺することができる。
しか図示されていないが、幹線ECC回路の代わりにパ
リティ検査器を備えた冗長キャッシュ項目配列(2個)
も同様に使用することができ、その場合、1つのキャッ
シュ項目配列内に誤りがあると、他方のキャッシュ項目
配列の対応するキャッシュ・ラインから値が読み取られ
ることになる。この手法は、キャッシュのサイズを実際
に2倍にする必要があるが、キャッシュ操作が高速化さ
れ、技術の進歩によってキャッシュ・サイズをますます
小さくすることが可能になるに伴い、キャッシュの全体
的サイズはその速度よりも重要ではなくなると考えられ
る。また、このようなキャッシュ・サイズの増加は、前
述の修復マスクの使用によって生じるサイズの縮小によ
って部分的に相殺することができる。
【0034】キャッシュにおいて2つのディレクトリを
使用することによる他の利点は、1サイクルに2つの読
取り操作を行うことができることである。すなわち、C
PUスヌープからの1つの読取り操作とシステム・バス
・スヌープからの1つの読取り操作を並列して行うこと
ができる。従来技術のキャッシュ設計では所与のサイク
ルで1つの読取り操作しか行うことができないため、こ
の特徴によってCPU及びシステム・バスからの全体的
な読取りアクセス時間が大幅に短縮される。本発明で
は、両方の読取りを1クロック・サイクルで行うことが
できる。冗長ディレクトリの使用の唯一の考えられる欠
点は、キャッシュ・ディレクトリ・サイズを2倍にする
必要だけである。しかし、1サイクルで2つのスヌープ
操作を行う能力に伴うパフォーマンスの向上があれば、
このサイズの増大は許容可能なものである。さらに、ク
リティカル・パスからECC回路を除去したことによっ
て読取り操作がさらに高速で行われるため、キャッシュ
速度をさらに向上させることができる。
使用することによる他の利点は、1サイクルに2つの読
取り操作を行うことができることである。すなわち、C
PUスヌープからの1つの読取り操作とシステム・バス
・スヌープからの1つの読取り操作を並列して行うこと
ができる。従来技術のキャッシュ設計では所与のサイク
ルで1つの読取り操作しか行うことができないため、こ
の特徴によってCPU及びシステム・バスからの全体的
な読取りアクセス時間が大幅に短縮される。本発明で
は、両方の読取りを1クロック・サイクルで行うことが
できる。冗長ディレクトリの使用の唯一の考えられる欠
点は、キャッシュ・ディレクトリ・サイズを2倍にする
必要だけである。しかし、1サイクルで2つのスヌープ
操作を行う能力に伴うパフォーマンスの向上があれば、
このサイズの増大は許容可能なものである。さらに、ク
リティカル・パスからECC回路を除去したことによっ
て読取り操作がさらに高速で行われるため、キャッシュ
速度をさらに向上させることができる。
【0035】複数のスヌープ装置からの操作に独立して
応答するように複数のキャッシュ・ディレクトリを設け
ることによる他の利点は、CPUスヌープかシステム・
バス・スヌープかを選択するアービトレーション論理回
路がなくなることである。アービトレーション論理回路
は従来、クリティカル・パスにあるため、これによって
アクセス時間が短縮されると共に、一般にキャッシュの
複雑さが緩和される。2つのディレクトリを設ける他の
利点は物理層に関する。単一ディレクトリを使用した場
合、キャッシュ・チップ上のディレクトリから物理的に
離れたところにあるいくつかのキャッシュ・ラインには
より長いアクセス時間を必要とする。たとえば、単一デ
ィレクトリはそのようなアクセス時間の増加を最小限に
するためにチップの中心付近に配置されることが多い。
2つのディレクトリを設けることにより、それらをキャ
ッシュ・チップ上で物理的に離して(すなわち中心部で
はなく側面付近に)配置することができ、チップ上の導
体経路を短縮することによって応答時間を短縮すること
ができる。
応答するように複数のキャッシュ・ディレクトリを設け
ることによる他の利点は、CPUスヌープかシステム・
バス・スヌープかを選択するアービトレーション論理回
路がなくなることである。アービトレーション論理回路
は従来、クリティカル・パスにあるため、これによって
アクセス時間が短縮されると共に、一般にキャッシュの
複雑さが緩和される。2つのディレクトリを設ける他の
利点は物理層に関する。単一ディレクトリを使用した場
合、キャッシュ・チップ上のディレクトリから物理的に
離れたところにあるいくつかのキャッシュ・ラインには
より長いアクセス時間を必要とする。たとえば、単一デ
ィレクトリはそのようなアクセス時間の増加を最小限に
するためにチップの中心付近に配置されることが多い。
2つのディレクトリを設けることにより、それらをキャ
ッシュ・チップ上で物理的に離して(すなわち中心部で
はなく側面付近に)配置することができ、チップ上の導
体経路を短縮することによって応答時間を短縮すること
ができる。
【0036】この二重読取り能力は、単一キャッシュ項
目配列でも2(冗長)キャッシュ項目配列でも備えるこ
とができる。後者の場合、2つのディレクトリ72及び
96にそれぞれ接続された2つの異なる制御回路によっ
て別々に制御される2つの異なるマルチプレクサを使用
して、2つのキャッシュ項目配列からデータを読み取
る。前者の場合も2つの異なるマルチプレクサを使用す
ることができるが、それらは同じキャッシュ項目配列に
接続することができる。すなわち、各キャッシュ・ブロ
ックが2つのキャッシュ・ラインを有し、一方はCPU
スヌープのために第1のマルチプレクサに接続され、他
方はシステム・バス・スヌープのために第2のマルチプ
レクサに接続される。
目配列でも2(冗長)キャッシュ項目配列でも備えるこ
とができる。後者の場合、2つのディレクトリ72及び
96にそれぞれ接続された2つの異なる制御回路によっ
て別々に制御される2つの異なるマルチプレクサを使用
して、2つのキャッシュ項目配列からデータを読み取
る。前者の場合も2つの異なるマルチプレクサを使用す
ることができるが、それらは同じキャッシュ項目配列に
接続することができる。すなわち、各キャッシュ・ブロ
ックが2つのキャッシュ・ラインを有し、一方はCPU
スヌープのために第1のマルチプレクサに接続され、他
方はシステム・バス・スヌープのために第2のマルチプ
レクサに接続される。
【0037】図4のキャッシュにメモリ・ブロックを書
き込むとき、アドレス・タグ(及び状態フィールドや包
含フィールドなどの各種ビット)を両方のディレクトリ
72及び96に書き込まなければならない。書込みは、
ディレクトリ72及び96に接続された1つまたは複数
の書込み待ち行列94を使用して行うことができる。2
つのディレクトリへの書込みは並列して行うことができ
る。しかし、これにはCPUポートもシステム・バス・
ポートも読取りを実行していないことを必要とし、した
がって、どのサイクル中にもディレクトリのいずれか一
方によって実行される読取り操作がある延長期間がある
場合があるためにそのような並列書込みがキャッシュ・
ディレクトリの書込み待ち行列から排出されるのにより
長い時間がかかる可能性がある。したがって、2つのデ
ィレクトリへの書込みをずらすこともでき、これは複数
(冗長)キャッシュ・ディレクトリを設けることに伴う
もう一つの利点である。
き込むとき、アドレス・タグ(及び状態フィールドや包
含フィールドなどの各種ビット)を両方のディレクトリ
72及び96に書き込まなければならない。書込みは、
ディレクトリ72及び96に接続された1つまたは複数
の書込み待ち行列94を使用して行うことができる。2
つのディレクトリへの書込みは並列して行うことができ
る。しかし、これにはCPUポートもシステム・バス・
ポートも読取りを実行していないことを必要とし、した
がって、どのサイクル中にもディレクトリのいずれか一
方によって実行される読取り操作がある延長期間がある
場合があるためにそのような並列書込みがキャッシュ・
ディレクトリの書込み待ち行列から排出されるのにより
長い時間がかかる可能性がある。したがって、2つのデ
ィレクトリへの書込みをずらすこともでき、これは複数
(冗長)キャッシュ・ディレクトリを設けることに伴う
もう一つの利点である。
【0038】後者の実施態様では、たとえばCPUがデ
ィレクトリ72を介して読み取り操作を行っている場
合、同じサイクル中にシステム・バスがディレクトリ9
6に対して書き込み操作を行うことができる。ディレク
トリ72への対応する書込み操作は、CPUスヌープが
読取り(またはその他の非書込み)操作を行っていない
次のサイクルまたはそれ以降のサイクルまで延期する
(書込み待ち行列に入れておく)ことができる。冗長デ
ィレクトリを使用する場合、書込み操作をこのように分
割することによってキャッシュ操作を高速化することが
できる。2つのキャッシュ・ディレクトリと共に別個の
(冗長)キャッシュ項目配列を使用した場合、それらの
キャッシュ項目配列にメモリ・ブロックを書き込む操作
も同様にずらすことができる。
ィレクトリ72を介して読み取り操作を行っている場
合、同じサイクル中にシステム・バスがディレクトリ9
6に対して書き込み操作を行うことができる。ディレク
トリ72への対応する書込み操作は、CPUスヌープが
読取り(またはその他の非書込み)操作を行っていない
次のサイクルまたはそれ以降のサイクルまで延期する
(書込み待ち行列に入れておく)ことができる。冗長デ
ィレクトリを使用する場合、書込み操作をこのように分
割することによってキャッシュ操作を高速化することが
できる。2つのキャッシュ・ディレクトリと共に別個の
(冗長)キャッシュ項目配列を使用した場合、それらの
キャッシュ項目配列にメモリ・ブロックを書き込む操作
も同様にずらすことができる。
【0039】このずらした書込みはディレクトリから別
個の読取りを行う能力も補完する。たとえば、第1のサ
イクル中にディレクトリ72に対して読み取り操作が行
われており、ディレクトリ96への第1の書込みによる
ずらされた書込み操作が開始されたばかりであるシーケ
ンスを考えてみる。第2のサイクル中に、ずらされた書
込み操作はディレクトリ72への書込みによって完了
し、ディレクトリ96に対してまったく無関係の読取り
が行われる。したがって、2サイクルで2つの読取り操
作と1つの書込み操作が行われたことになる。この効果
は、(たとえば第1のサイクル中に2つの読取り操作を
行わせ、次に第2のサイクル中に両方のディレクトリへ
の並列書込みを行うことによって)ずらされた書込みを
行わなくても偶然得られることもあるが、この機能を使
用することによってスヌープ操作の実行の柔軟性が高く
なり、それによってパフォーマンスがさらに向上する。
個の読取りを行う能力も補完する。たとえば、第1のサ
イクル中にディレクトリ72に対して読み取り操作が行
われており、ディレクトリ96への第1の書込みによる
ずらされた書込み操作が開始されたばかりであるシーケ
ンスを考えてみる。第2のサイクル中に、ずらされた書
込み操作はディレクトリ72への書込みによって完了
し、ディレクトリ96に対してまったく無関係の読取り
が行われる。したがって、2サイクルで2つの読取り操
作と1つの書込み操作が行われたことになる。この効果
は、(たとえば第1のサイクル中に2つの読取り操作を
行わせ、次に第2のサイクル中に両方のディレクトリへ
の並列書込みを行うことによって)ずらされた書込みを
行わなくても偶然得られることもあるが、この機能を使
用することによってスヌープ操作の実行の柔軟性が高く
なり、それによってパフォーマンスがさらに向上する。
【0040】まとめとして、本発明の構成に関して以下
の事項を開示する。
の事項を開示する。
【0041】(1)コンピュータ・システムのプロセッ
サによって使用されるキャッシュにおいて欠陥を迂回す
る方法であって、各ビット・フィールドがキャッシュ内
の複数のキャッシュ・ラインのうちのそれぞれ1つのキ
ャッシュ・ラインに対応するビット・フィールドの配列
を有する修復マスクを設けるステップと、キャッシュ内
の特定のキャッシュ・ラインを欠陥があるものとして識
別するステップと、修復マスク配列内の対応するビット
・フィールドを設定して特定のキャッシュ・ラインに欠
陥があることを示すステップと、修復マスク配列二の対
応するビット・フィールドに基づいて欠陥のあるキャッ
シュ・ラインへのアクセスを防止するステップとを含む
方法。 (2)防止する前記ステップが、欠陥のあるキャッシュ
・ラインが決してキャッシュ・ヒットにならないように
防止するステップを含む、上記(1)に記載の方法。 (3)欠陥のあるキャッシュ・ラインが決してキャッシ
ュ置換のための犠牲として選択されないように防止する
ステップを含む、上記(1)に記載の方法。 (4)各合同クラスが複数のキャッシュ・ラインからな
る複数の合同クラスのうちの1つに所与のメモリ・ブロ
ックをマップするステップをさらに含み、欠陥のあるキ
ャッシュ・ラインへのアクセスを防止する前記ステップ
の結果、欠陥のあるキャッシュ・ラインがそれぞれの合
同クラスから実質的に除去される、上記(1)に記載の
方法。 (5)欠陥のあるキャッシュ・ラインへのアクセスを防
止する前記ステップによって、キャッシュが、冗長性を
もたせるためにキャッシュ・ラインを確保しておくこと
なく欠陥のないすべてのキャッシュ・ラインを使用する
ことができるようにする、上記(1)に記載の方法。 (6)キャッシュが、要求されたアドレスがキャッシュ
・ラインの一部にあるアドレス・タグに対応するかどう
かを判断する複数の比較器を有し、所与の比較器が、要
求されたアドレスが前記アドレス・タグ部分と一致しな
い場合はイナクティブであるが、要求されたアドレスが
前記アドレス・タグ部分と一致する場合はアクティブで
あり、欠陥のあるキャッシュ・ラインが決してキャッシ
ュ・ヒットにならないように防止する前記ステップが、
各信号が比較器のうちの所与の1つの比較器の出力と修
復マスクからのビット・フィールドのうちのそれぞれ1
つのビット・フィールドの出力とのAND結合である複
数の信号を入力信号として受け取るマルチプレクサを設
けるステップを含む、上記(2)に記載の方法。 (7)キャッシュが、複数のキャッシュ・ラインのうち
のどのキャッシュ・ラインを置換のための暫定的犠牲と
して選択するかを示す複数の出力信号を有するキャッシ
ュ置換回路を有し、欠陥のあるキャッシュ・ラインが犠
牲として選択されないように防止する前記ステップが、
複数の信号を入力信号として受け取るマルチプレクサを
設けるステップを含み、各信号が、暫定犠牲に欠陥がな
いように保証するために修復マスクのビット・フィール
ドから入力信号を受け取る代替犠牲選択論理回路によっ
て変更されたキャッシュ置換回路の出力信号である、上
記(3)に記載の方法。 (8)防止する前記ステップが、欠陥のあるキャッシュ
・ラインが決してキャッシュ・ヒットにならないように
防止するステップをさらに含む、上記(3)に記載の方
法。 (9)プロセッサと、メモリ・デバイスと、前記プロセ
ッサと前記メモリ・デバイスとに接続され、前記メモリ
・デバイスのアドレスに対応するメモリ・ブロックを記
憶する複数のキャッシュラインを有するキャッシュと、
各ビット・フィールドが、選択されたキャッシュ・ライ
ンに欠陥があることを示す値を有する前記選択されたキ
ャッシュ・ラインに対応する前記ビット・フィールドの
うちの所与の1つのビット・フィールドに基づいて前記
複数のキャッシュ・ラインのうちの選択された1つのキ
ャッシュ・ラインへのアクセスを防止する、前記キャッ
シュ・ラインのうちのそれぞれ1つのキャッシュ・ライ
ンに対応する複数のビット・フィールドを有する修復マ
スクとを含むコンピュータ・システム。 (10)前記修復マスク手段が、欠陥のあるキャッシュ
・ラインが決してキャッシュ・ヒットにならないように
防止する、上記(9)に記載のコンピュータ・システ
ム。 (11)前記修復マスク手段が、欠陥のあるキャッシュ
・ラインが決してキャッシュ置換のための犠牲として選
択されないように防止する、上記(9)に記載のコンピ
ュータ・システム。 (12)前記キャッシュが、各合同クラスが複数の前記
キャッシュ・ラインから成る複数の合同クラスの1つに
所与のメモリ・ブロックをマップし、前記修復マスク手
段が、欠陥のあるキャッシュ・ラインをその対応する合
同クラスから有効に除去することにより、その欠陥のあ
るキャッシュ・ラインへのアクセスを防止する、上記
(9)に記載のコンピュータ・システム。 (13)前記修復マスク手段によって、前記キャッシュ
がキャッシュ・ラインを冗長性をもたせるために確保し
ておくことなくすべての欠陥のないキャッシュ・ライン
を使用することができるようにする、上記(9)に記載
のコンピュータ・システム。 (14)前記キャッシュが、要求されたアドレスがキャ
ッシュ・ラインの一部にあるアドレス・タグに対応する
かどうかを判断する複数の比較器を有し、前記比較器の
うちの所与の1つの比較器が、前記要求されたアドレス
が前記アドレス・タグ部分と一致しない場合はイナクテ
ィブであるが、前記要求されたアドレスが前記アドレス
・タグ部分と一致する場合はアクティブである出力信号
を有し、前記キャッシュが、複数の信号を受け取り、各
信号が前記比較器の前記出力信号の1つと前記修復マス
ク手段から前記ビット・フィールドのうちのそれぞれ1
つのビット・フィールドの出力信号とのAND結合であ
る複数の信号を入力信号として受け取るマルチプレクサ
をさらに含む、上記(10)に記載のコンピュータ・シ
ステム。 (15)前記キャッシュが、複数の前記キャッシュ・ラ
インのうちのどのキャッシュ・ラインを置換のための暫
定的犠牲として選択するかを示す複数の出力信号を有す
るキャッシュ置換回路を有し、各信号が前記修復マスク
手段の前記ビット・フィールドから入力信号を受け取る
代替犠牲選択論理回路によって変更された前記キャッシ
ュ置換回路の出力信号を有する複数の信号を入力信号と
して受け取るマルチプレクサをさらに含む、上記(1
1)に記載のコンピュータ・システム。 (16)前記修復マスク手段が欠陥のあるキャッシュ・
ラインが決してキャッシュ・ヒットにならないようにさ
らに防止する、上記(11)に記載のコンピュータ・シ
ステム。
サによって使用されるキャッシュにおいて欠陥を迂回す
る方法であって、各ビット・フィールドがキャッシュ内
の複数のキャッシュ・ラインのうちのそれぞれ1つのキ
ャッシュ・ラインに対応するビット・フィールドの配列
を有する修復マスクを設けるステップと、キャッシュ内
の特定のキャッシュ・ラインを欠陥があるものとして識
別するステップと、修復マスク配列内の対応するビット
・フィールドを設定して特定のキャッシュ・ラインに欠
陥があることを示すステップと、修復マスク配列二の対
応するビット・フィールドに基づいて欠陥のあるキャッ
シュ・ラインへのアクセスを防止するステップとを含む
方法。 (2)防止する前記ステップが、欠陥のあるキャッシュ
・ラインが決してキャッシュ・ヒットにならないように
防止するステップを含む、上記(1)に記載の方法。 (3)欠陥のあるキャッシュ・ラインが決してキャッシ
ュ置換のための犠牲として選択されないように防止する
ステップを含む、上記(1)に記載の方法。 (4)各合同クラスが複数のキャッシュ・ラインからな
る複数の合同クラスのうちの1つに所与のメモリ・ブロ
ックをマップするステップをさらに含み、欠陥のあるキ
ャッシュ・ラインへのアクセスを防止する前記ステップ
の結果、欠陥のあるキャッシュ・ラインがそれぞれの合
同クラスから実質的に除去される、上記(1)に記載の
方法。 (5)欠陥のあるキャッシュ・ラインへのアクセスを防
止する前記ステップによって、キャッシュが、冗長性を
もたせるためにキャッシュ・ラインを確保しておくこと
なく欠陥のないすべてのキャッシュ・ラインを使用する
ことができるようにする、上記(1)に記載の方法。 (6)キャッシュが、要求されたアドレスがキャッシュ
・ラインの一部にあるアドレス・タグに対応するかどう
かを判断する複数の比較器を有し、所与の比較器が、要
求されたアドレスが前記アドレス・タグ部分と一致しな
い場合はイナクティブであるが、要求されたアドレスが
前記アドレス・タグ部分と一致する場合はアクティブで
あり、欠陥のあるキャッシュ・ラインが決してキャッシ
ュ・ヒットにならないように防止する前記ステップが、
各信号が比較器のうちの所与の1つの比較器の出力と修
復マスクからのビット・フィールドのうちのそれぞれ1
つのビット・フィールドの出力とのAND結合である複
数の信号を入力信号として受け取るマルチプレクサを設
けるステップを含む、上記(2)に記載の方法。 (7)キャッシュが、複数のキャッシュ・ラインのうち
のどのキャッシュ・ラインを置換のための暫定的犠牲と
して選択するかを示す複数の出力信号を有するキャッシ
ュ置換回路を有し、欠陥のあるキャッシュ・ラインが犠
牲として選択されないように防止する前記ステップが、
複数の信号を入力信号として受け取るマルチプレクサを
設けるステップを含み、各信号が、暫定犠牲に欠陥がな
いように保証するために修復マスクのビット・フィール
ドから入力信号を受け取る代替犠牲選択論理回路によっ
て変更されたキャッシュ置換回路の出力信号である、上
記(3)に記載の方法。 (8)防止する前記ステップが、欠陥のあるキャッシュ
・ラインが決してキャッシュ・ヒットにならないように
防止するステップをさらに含む、上記(3)に記載の方
法。 (9)プロセッサと、メモリ・デバイスと、前記プロセ
ッサと前記メモリ・デバイスとに接続され、前記メモリ
・デバイスのアドレスに対応するメモリ・ブロックを記
憶する複数のキャッシュラインを有するキャッシュと、
各ビット・フィールドが、選択されたキャッシュ・ライ
ンに欠陥があることを示す値を有する前記選択されたキ
ャッシュ・ラインに対応する前記ビット・フィールドの
うちの所与の1つのビット・フィールドに基づいて前記
複数のキャッシュ・ラインのうちの選択された1つのキ
ャッシュ・ラインへのアクセスを防止する、前記キャッ
シュ・ラインのうちのそれぞれ1つのキャッシュ・ライ
ンに対応する複数のビット・フィールドを有する修復マ
スクとを含むコンピュータ・システム。 (10)前記修復マスク手段が、欠陥のあるキャッシュ
・ラインが決してキャッシュ・ヒットにならないように
防止する、上記(9)に記載のコンピュータ・システ
ム。 (11)前記修復マスク手段が、欠陥のあるキャッシュ
・ラインが決してキャッシュ置換のための犠牲として選
択されないように防止する、上記(9)に記載のコンピ
ュータ・システム。 (12)前記キャッシュが、各合同クラスが複数の前記
キャッシュ・ラインから成る複数の合同クラスの1つに
所与のメモリ・ブロックをマップし、前記修復マスク手
段が、欠陥のあるキャッシュ・ラインをその対応する合
同クラスから有効に除去することにより、その欠陥のあ
るキャッシュ・ラインへのアクセスを防止する、上記
(9)に記載のコンピュータ・システム。 (13)前記修復マスク手段によって、前記キャッシュ
がキャッシュ・ラインを冗長性をもたせるために確保し
ておくことなくすべての欠陥のないキャッシュ・ライン
を使用することができるようにする、上記(9)に記載
のコンピュータ・システム。 (14)前記キャッシュが、要求されたアドレスがキャ
ッシュ・ラインの一部にあるアドレス・タグに対応する
かどうかを判断する複数の比較器を有し、前記比較器の
うちの所与の1つの比較器が、前記要求されたアドレス
が前記アドレス・タグ部分と一致しない場合はイナクテ
ィブであるが、前記要求されたアドレスが前記アドレス
・タグ部分と一致する場合はアクティブである出力信号
を有し、前記キャッシュが、複数の信号を受け取り、各
信号が前記比較器の前記出力信号の1つと前記修復マス
ク手段から前記ビット・フィールドのうちのそれぞれ1
つのビット・フィールドの出力信号とのAND結合であ
る複数の信号を入力信号として受け取るマルチプレクサ
をさらに含む、上記(10)に記載のコンピュータ・シ
ステム。 (15)前記キャッシュが、複数の前記キャッシュ・ラ
インのうちのどのキャッシュ・ラインを置換のための暫
定的犠牲として選択するかを示す複数の出力信号を有す
るキャッシュ置換回路を有し、各信号が前記修復マスク
手段の前記ビット・フィールドから入力信号を受け取る
代替犠牲選択論理回路によって変更された前記キャッシ
ュ置換回路の出力信号を有する複数の信号を入力信号と
して受け取るマルチプレクサをさらに含む、上記(1
1)に記載のコンピュータ・システム。 (16)前記修復マスク手段が欠陥のあるキャッシュ・
ラインが決してキャッシュ・ヒットにならないようにさ
らに防止する、上記(11)に記載のコンピュータ・シ
ステム。
【図1】従来技術のマルチプロセッサ・コンピュータ・
システムのブロック図である。
システムのブロック図である。
【図2】従来技術のセット・アソシアティブ・キャッシ
ュを示す高水準略図である。
ュを示す高水準略図である。
【図3】パリティ誤り制御回路と動的修復マスクとを有
する、本発明により構成されたセット・アソシアティブ
・キャッシュを示す高水準略図である。
する、本発明により構成されたセット・アソシアティブ
・キャッシュを示す高水準略図である。
【図4】2つの冗長ディレクトリを有する、本発明によ
り構成されたキャッシュを示すブロック図である。
り構成されたキャッシュを示すブロック図である。
70 セット・アソシアティブ・キャッシュ 72 キャッシュ・ディレクトリ 74 LRU配列 76 修復マスク 78 制御論理回路 80 合同クラス 82 比較器 84 パリティ検査器 86 ANDゲート 88 マルチプレクサ 90 ORゲート 92 代替犠牲選択回路
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジョン・スチィーブン・ダッドソン アメリカ合衆国78660 テキサス州フラジ ャービル ベル・ロック・サークル 1205 (72)発明者 ジェリー・ドン・ルイス アメリカ合衆国78681 テキサス州ラウン ド・ロック アローヘッド・サークル 3409 (72)発明者 ティモシー・エム・スカーガン アメリカ合衆国78759 テキサス州オース チン バックソーン・ドライブ 10805
Claims (16)
- 【請求項1】コンピュータ・システムのプロセッサによ
って使用されるキャッシュにおいて欠陥を迂回する方法
であって、 各ビット・フィールドがキャッシュ内の複数のキャッシ
ュ・ラインのうちのそれぞれ1つのキャッシュ・ライン
に対応するビット・フィールドの配列を有する修復マス
クを設けるステップと、 キャッシュ内の特定のキャッシュ・ラインを欠陥がある
ものとして識別するステップと、 修復マスク配列内の対応するビット・フィールドを設定
して特定のキャッシュ・ラインに欠陥があることを示す
ステップと、 修復マスク配列二の対応するビット・フィールドに基づ
いて欠陥のあるキャッシュ・ラインへのアクセスを防止
するステップとを含む方法。 - 【請求項2】防止する前記ステップが、欠陥のあるキャ
ッシュ・ラインが決してキャッシュ・ヒットにならない
ように防止するステップを含む、請求項1に記載の方
法。 - 【請求項3】欠陥のあるキャッシュ・ラインが決してキ
ャッシュ置換のための犠牲として選択されないように防
止するステップを含む、請求項1に記載の方法。 - 【請求項4】各合同クラスが複数のキャッシュ・ライン
からなる複数の合同クラスのうちの1つに所与のメモリ
・ブロックをマップするステップをさらに含み、欠陥の
あるキャッシュ・ラインへのアクセスを防止する前記ス
テップの結果、欠陥のあるキャッシュ・ラインがそれぞ
れの合同クラスから実質的に除去される、請求項1に記
載の方法。 - 【請求項5】欠陥のあるキャッシュ・ラインへのアクセ
スを防止する前記ステップによって、キャッシュが、冗
長性をもたせるためにキャッシュ・ラインを確保してお
くことなく欠陥のないすべてのキャッシュ・ラインを使
用することができるようにする、請求項1に記載の方
法。 - 【請求項6】キャッシュが、要求されたアドレスがキャ
ッシュ・ラインの一部にあるアドレス・タグに対応する
かどうかを判断する複数の比較器を有し、所与の比較器
が、要求されたアドレスが前記アドレス・タグ部分と一
致しない場合はイナクティブであるが、要求されたアド
レスが前記アドレス・タグ部分と一致する場合はアクテ
ィブであり、 欠陥のあるキャッシュ・ラインが決してキャッシュ・ヒ
ットにならないように防止する前記ステップが、各信号
が比較器のうちの所与の1つの比較器の出力と修復マス
クからのビット・フィールドのうちのそれぞれ1つのビ
ット・フィールドの出力とのAND結合である複数の信
号を入力信号として受け取るマルチプレクサを設けるス
テップを含む、請求項2に記載の方法。 - 【請求項7】キャッシュが、複数のキャッシュ・ライン
のうちのどのキャッシュ・ラインを置換のための暫定的
犠牲として選択するかを示す複数の出力信号を有するキ
ャッシュ置換回路を有し、 欠陥のあるキャッシュ・ラインが犠牲として選択されな
いように防止する前記ステップが、複数の信号を入力信
号として受け取るマルチプレクサを設けるステップを含
み、各信号が、暫定犠牲に欠陥がないように保証するた
めに修復マスクのビット・フィールドから入力信号を受
け取る代替犠牲選択論理回路によって変更されたキャッ
シュ置換回路の出力信号である、請求項3に記載の方
法。 - 【請求項8】防止する前記ステップが、欠陥のあるキャ
ッシュ・ラインが決してキャッシュ・ヒットにならない
ように防止するステップをさらに含む、請求項3に記載
の方法。 - 【請求項9】プロセッサと、 メモリ・デバイスと、 前記プロセッサと前記メモリ・デバイスとに接続され、
前記メモリ・デバイスのアドレスに対応するメモリ・ブ
ロックを記憶する複数のキャッシュラインを有するキャ
ッシュと、 各ビット・フィールドが、選択されたキャッシュ・ライ
ンに欠陥があることを示す値を有する前記選択されたキ
ャッシュ・ラインに対応する前記ビット・フィールドの
うちの所与の1つのビット・フィールドに基づいて前記
複数のキャッシュ・ラインのうちの選択された1つのキ
ャッシュ・ラインへのアクセスを防止する、前記キャッ
シュ・ラインのうちのそれぞれ1つのキャッシュ・ライ
ンに対応する複数のビット・フィールドを有する修復マ
スクとを含むコンピュータ・システム。 - 【請求項10】前記修復マスク手段が、欠陥のあるキャ
ッシュ・ラインが決してキャッシュ・ヒットにならない
ように防止する、請求項9に記載のコンピュータ・シス
テム。 - 【請求項11】前記修復マスク手段が、欠陥のあるキャ
ッシュ・ラインが決してキャッシュ置換のための犠牲と
して選択されないように防止する、請求項9に記載のコ
ンピュータ・システム。 - 【請求項12】前記キャッシュが、各合同クラスが複数
の前記キャッシュ・ラインから成る複数の合同クラスの
1つに所与のメモリ・ブロックをマップし、 前記修復マスク手段が、欠陥のあるキャッシュ・ライン
をその対応する合同クラスから有効に除去することによ
り、その欠陥のあるキャッシュ・ラインへのアクセスを
防止する、請求項9に記載のコンピュータ・システム。 - 【請求項13】前記修復マスク手段によって、前記キャ
ッシュがキャッシュ・ラインを冗長性をもたせるために
確保しておくことなくすべての欠陥のないキャッシュ・
ラインを使用することができるようにする、請求項9に
記載のコンピュータ・システム。 - 【請求項14】前記キャッシュが、要求されたアドレス
がキャッシュ・ラインの一部にあるアドレス・タグに対
応するかどうかを判断する複数の比較器を有し、前記比
較器のうちの所与の1つの比較器が、前記要求されたア
ドレスが前記アドレス・タグ部分と一致しない場合はイ
ナクティブであるが、前記要求されたアドレスが前記ア
ドレス・タグ部分と一致する場合はアクティブである出
力信号を有し、前記キャッシュが、複数の信号を受け取
り、各信号が前記比較器の前記出力信号の1つと前記修
復マスク手段から前記ビット・フィールドのうちのそれ
ぞれ1つのビット・フィールドの出力信号とのAND結
合である複数の信号を入力信号として受け取るマルチプ
レクサをさらに含む、請求項10に記載のコンピュータ
・システム。 - 【請求項15】前記キャッシュが、複数の前記キャッシ
ュ・ラインのうちのどのキャッシュ・ラインを置換のた
めの暫定的犠牲として選択するかを示す複数の出力信号
を有するキャッシュ置換回路を有し、各信号が前記修復
マスク手段の前記ビット・フィールドから入力信号を受
け取る代替犠牲選択論理回路によって変更された前記キ
ャッシュ置換回路の出力信号を有する複数の信号を入力
信号として受け取るマルチプレクサをさらに含む、請求
項11に記載のコンピュータ・システム。 - 【請求項16】前記修復マスク手段が欠陥のあるキャッ
シュ・ラインが決してキャッシュ・ヒットにならないよ
うにさらに防止する、請求項11に記載のコンピュータ
・システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/839554 | 1997-04-14 | ||
US08/839,554 US5958068A (en) | 1997-04-14 | 1997-04-14 | Cache array defect functional bypassing using repair mask |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH10301846A true JPH10301846A (ja) | 1998-11-13 |
Family
ID=25280046
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10097589A Pending JPH10301846A (ja) | 1997-04-14 | 1998-04-09 | 修復マスクを使用したキャッシュ・アレイ欠陥の機能的迂回方法及びシステム |
Country Status (3)
Country | Link |
---|---|
US (1) | US5958068A (ja) |
JP (1) | JPH10301846A (ja) |
KR (1) | KR100273907B1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7131039B2 (en) | 2002-12-11 | 2006-10-31 | Hewlett-Packard Development Company, L.P. | Repair techniques for memory with multiple redundancy |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6178549B1 (en) * | 1998-03-12 | 2001-01-23 | Winbond Electronics Corporation | Memory writer with deflective memory-cell handling capability |
US6163857A (en) * | 1998-04-30 | 2000-12-19 | International Business Machines Corporation | Computer system UE recovery logic |
JP3871469B2 (ja) * | 1998-11-27 | 2007-01-24 | 松下電器産業株式会社 | 半導体メモリ装置および信号線切替回路 |
US6671822B1 (en) * | 2000-08-31 | 2003-12-30 | Hewlett-Packard Development Company, L.P. | Method and system for absorbing defects in high performance microprocessor with a large n-way set associative cache |
US6385071B1 (en) | 2001-05-21 | 2002-05-07 | International Business Machines Corporation | Redundant scheme for CAMRAM memory array |
US7073099B1 (en) | 2002-05-30 | 2006-07-04 | Marvell International Ltd. | Method and apparatus for improving memory operation and yield |
US6922754B2 (en) * | 2002-12-09 | 2005-07-26 | Infabric Technologies, Inc. | Data-aware data flow manager |
US20050050400A1 (en) * | 2003-08-30 | 2005-03-03 | Wuu John J. | Shift redundancy encoding for use with digital memories |
ATE366985T1 (de) * | 2003-09-04 | 2007-08-15 | Koninkl Philips Electronics Nv | Integrierte schaltung und verfahren zum cache- umabbilden |
US6988237B1 (en) | 2004-01-06 | 2006-01-17 | Marvell Semiconductor Israel Ltd. | Error-correction memory architecture for testing production errors |
US7380180B2 (en) * | 2004-07-16 | 2008-05-27 | Intel Corporation | Method, system, and apparatus for tracking defective cache lines |
US7266635B1 (en) | 2004-07-22 | 2007-09-04 | Marvell Semiconductor Israel Ltd. | Address lookup apparatus having memory and content addressable memory |
US7366953B2 (en) | 2004-12-09 | 2008-04-29 | International Business Machines Corporation | Self test method and apparatus for identifying partially defective memory |
US7707463B2 (en) * | 2005-11-30 | 2010-04-27 | International Business Machines Corporation | Implementing directory organization to selectively optimize performance or reliability |
KR101342074B1 (ko) | 2006-10-25 | 2013-12-18 | 삼성전자 주식회사 | 컴퓨터시스템 및 그 제어방법 |
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 |
US8145985B2 (en) * | 2008-09-05 | 2012-03-27 | Freescale Semiconductor, Inc. | Error detection schemes for a unified 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 |
US8438431B2 (en) * | 2009-11-10 | 2013-05-07 | International Business Machines Corporation | Support element office mode array repair code verification |
US8570820B2 (en) | 2011-03-08 | 2013-10-29 | International Business Machines Corporation | Selectable repair pass masking |
US9489255B2 (en) * | 2015-02-12 | 2016-11-08 | International Business Machines Corporation | Dynamic array masking |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4216541A (en) * | 1978-10-05 | 1980-08-05 | Intel Magnetics Inc. | Error repairing method and apparatus for bubble memories |
US5255384A (en) * | 1985-02-22 | 1993-10-19 | Intergraph Corporation | Memory address translation system having modifiable and non-modifiable translation mechanisms |
US5019971A (en) * | 1987-04-13 | 1991-05-28 | Prime Computer, Inc. | High availability cache organization |
US4905141A (en) * | 1988-10-25 | 1990-02-27 | International Business Machines Corporation | Partitioned cache memory with partition look-aside table (PLAT) for early partition assignment identification |
US5070502A (en) * | 1989-06-23 | 1991-12-03 | Digital Equipment Corporation | Defect tolerant set associative cache |
JP2830218B2 (ja) * | 1989-11-22 | 1998-12-02 | 株式会社日立製作所 | キャッシュ付ディスク制御装置の障害処理方法 |
JPH0452741A (ja) * | 1990-06-14 | 1992-02-20 | Toshiba Corp | キャッシュメモリ装置 |
JP2632753B2 (ja) * | 1991-05-02 | 1997-07-23 | 三菱電機株式会社 | 読出専用半導体メモリ装置 |
JP3451099B2 (ja) * | 1991-12-06 | 2003-09-29 | 株式会社日立製作所 | 外部記憶サブシステム |
KR950013342B1 (ko) * | 1992-10-06 | 1995-11-02 | 삼성전자주식회사 | 반도체 메모리장치의 결함구제회로 |
JP2744882B2 (ja) * | 1993-01-15 | 1998-04-28 | インターナショナル・ビジネス・マシーンズ・コーポレイション | キューにより命令の実行を制御する装置及び方法 |
US5551004A (en) * | 1993-05-28 | 1996-08-27 | Sgs-Thomson Microelectronics, Inc. | Structure which renders faulty data of a cache memory uncacheable in order that a partially functional cache memory may be utilized |
US5502333A (en) * | 1994-03-30 | 1996-03-26 | International Business Machines Corporation | Semiconductor stack structures and fabrication/sparing methods utilizing programmable spare circuit |
US5488702A (en) * | 1994-04-26 | 1996-01-30 | Unisys Corporation | Data block check sequence generation and validation in a file cache system |
US5701431A (en) * | 1996-01-26 | 1997-12-23 | Unisys Corporation | Method and system for randomly selecting a cache set for cache fill operations |
US5787479A (en) * | 1996-04-29 | 1998-07-28 | International Business Machines Corporation | Method and system for preventing information corruption in a cache memory caused by an occurrence of a bus error during a linefill operation |
US5802563A (en) * | 1996-07-01 | 1998-09-01 | Sun Microsystems, Inc. | Efficient storage of data in computer system with multiple cache levels |
-
1997
- 1997-04-14 US US08/839,554 patent/US5958068A/en not_active Expired - Fee Related
-
1998
- 1998-02-09 KR KR1019980003717A patent/KR100273907B1/ko not_active IP Right Cessation
- 1998-04-09 JP JP10097589A patent/JPH10301846A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7131039B2 (en) | 2002-12-11 | 2006-10-31 | Hewlett-Packard Development Company, L.P. | Repair techniques for memory with multiple redundancy |
Also Published As
Publication number | Publication date |
---|---|
KR19980079692A (ko) | 1998-11-25 |
US5958068A (en) | 1999-09-28 |
KR100273907B1 (ko) | 2000-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6006311A (en) | Dynamic updating of repair mask used for cache defect avoidance | |
US6023746A (en) | Dual associative-cache directories allowing simultaneous read operation using two buses with multiplexors, address tags, memory block control signals, single clock cycle operation and error correction | |
US5958068A (en) | Cache array defect functional bypassing using repair mask | |
US6480975B1 (en) | ECC mechanism for set associative cache array | |
US7430145B2 (en) | System and method for avoiding attempts to access a defective portion of memory | |
US7987407B2 (en) | Handling of hard errors in a cache of a data processing apparatus | |
US8291168B2 (en) | Disabling cache portions during low voltage operations | |
KR100572800B1 (ko) | 에러 체크 방법, 에러 정정 코드 체커 및 이를 포함하는 컴퓨터 시스템 | |
US8977820B2 (en) | Handling of hard errors in a cache of a data processing apparatus | |
US7272773B2 (en) | Cache directory array recovery mechanism to support special ECC stuck bit matrix | |
US7533321B2 (en) | Fault tolerant encoding of directory states for stuck bits | |
US6085288A (en) | Dual cache directories with respective queue independently executing its content and allowing staggered write operations | |
US5883904A (en) | Method for recoverability via redundant cache arrays | |
US7134057B1 (en) | Off-pitch column redundancy using dynamic shifters | |
US5943686A (en) | Multiple cache directories for non-arbitration concurrent accessing of a cache memory | |
US5867511A (en) | Method for high-speed recoverable directory access | |
US10528473B2 (en) | Disabling cache portions during low voltage operations | |
US7707463B2 (en) | Implementing directory organization to selectively optimize performance or reliability | |
US7689891B2 (en) | Method and system for handling stuck bits in cache directories | |
JPH02184946A (ja) | キヤツシユ・バイパス装置 | |
US7254746B1 (en) | Method and apparatus for using a fault tolerant memory in processor testing and design |