JPH0822417A - 回復可能なセット連想キャッシュ - Google Patents

回復可能なセット連想キャッシュ

Info

Publication number
JPH0822417A
JPH0822417A JP7072711A JP7271195A JPH0822417A JP H0822417 A JPH0822417 A JP H0822417A JP 7072711 A JP7072711 A JP 7072711A JP 7271195 A JP7271195 A JP 7271195A JP H0822417 A JPH0822417 A JP H0822417A
Authority
JP
Japan
Prior art keywords
data
line
replacement
cache memory
defective
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
Application number
JP7072711A
Other languages
English (en)
Inventor
David Charles Mcclure
シー. マククルーア デイビッド
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.)
STMicroelectronics lnc USA
Original Assignee
SGS Thomson Microelectronics Inc
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 SGS Thomson Microelectronics Inc filed Critical SGS Thomson Microelectronics Inc
Publication of JPH0822417A publication Critical patent/JPH0822417A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/88Masking faults in memories by using spares or by reconfiguring with partially good memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability 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)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

(57)【要約】 (修正有) 【目的】 セット連想キャッシュメモリ内の一つ又はそ
れ以上の欠陥性ビットのデータを有するラインのデータ
をバイパスさせることによりセット連想キャッシュメモ
リを使用可能なものとさせる技術を提供する。 【構成】 例えば行/列冗長性などの従来の修復手段に
よって修復することの不可能な一つ又はそれ以上の欠陥
性データビットを有するセット連想キャッシュメモリの
欠陥性ラインのデータを、キャッシュミス条件の発生し
た後にアップデートさせることはなく実効的にバイパス
させる。置換論理回路が、セット連想キャッシュメモリ
の各ラインのデータと関連する置換ステータスビットの
状態を検知し且つ制御して、該キャッシュ内のそのライ
ンのデータがアップデートされるべきか又はバイパスさ
れるべきかを決定する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、大略、集積回路メモリ
に関するものであって、更に詳細には、セット連想キャ
ッシュメモリに関するものである。
【0002】
【従来の技術】集積回路メモリ装置の製造期間中に、ダ
イのあるビットが欠陥性であるが容易に識別したり修復
したりすることができない場合に、ダイを廃棄すること
が多々ある。ダイの大部分が完全に機能的なものであっ
たとしても、そのダイの欠陥性ビットが修復可能なもの
でない場合には、ダイ全体を廃棄することが必要な場合
が多々ある。この問題は、メモリ装置が、例えばマイク
ロプロセサ又は応用特定集積回路(ASIC)などの別
のより高価な装置内に埋込まれている場合に更に悪化さ
れる。例えば、マイクロプロセサ内に埋込まれているメ
モリが欠陥性ビットを有するという理由で高価なマイク
ロプロセサを廃棄することは望ましいことではない。欠
陥性のビットを有することのあるメモリは、キャッシュ
メモリ、メモリカード及びASIC内に埋込まれている
メモリなどがある。
【0003】キャッシュメモリは典型的なキャッシュシ
ステムの重要な要素であり、且つ高性能マイクロプロセ
サ内に埋込まれた一次メモリとして又はマイクロプロセ
サ外部の二次キャッシュとして益々使用されている。マ
イクロプロセサの動作速度が益々高速化されると、マイ
クロプロセサへ供給されねばならない要求されたデータ
の速度は対応して高速化される。キャッシュメモリは、
典型的に、メインメモリよりも高速のアクセス時間を有
しており、従って、マイクロプロセサによって要求され
たデータを迅速に供給するためにしばしば使用される。
キャッシュメモリ内の1「ライン」のデータ、一つ又は
幾つかの連続したバイト又はワードのデータとすること
の可能な1ブロックのデータと関連するタグがタグRA
M内に格納され、タグRAMはデータキャッシュ内に格
納されるデータのアドレス位置を保持する。アドレス情
報に加えて、特定のアドレス位置に格納されているデー
タが有効であるか無効であるかを表わす有効ビットをし
ばしば包含する一つ又はそれ以上のステータスビットが
タグRAM内に格納される。マイクロプロセサが情報を
要求すると、読取り信号がメインメモリとタグRAMの
両方へ送給される。タグRAMは、要求されたメモリア
ドレスをキャッシュメモリ内に格納されている全てのデ
ータのメモリアドレスと比較する。要求されたメモリア
ドレスがタグRAM内に存在する場合には、「ヒット」
条件が存在し、且つその位置からのデータはキャッシュ
メモリからマイクロプロセサへゲート動作される。
【0004】「ヒット」条件においては、タグRAMが
有効比較マッチ出力信号を発生し、且つ、メインメモリ
が応答する前に、キャッシュメモリが要求されたデータ
をデータバス上へゲート動作させる。この様に、キャッ
シュメモリはマイクロプロセサに対して迅速にデータを
供給し、且つマイクロプロセサの待機状態が回避され
る。しかしながら、タグRAMの比較動作が、所望され
るデータがキャッシュメモリ内に格納されていないこと
を表わす場合には、「ミス」条件が存在し、且つデータ
はメインメモリから供給されねばならず、メインメモリ
は典型的にキャッシュメモリよりもより多くのデータを
保持しており、従ってより低速である。その結果、マイ
クロプロセサは数サイクルの間待機せねばならない場合
があり、その期間中に、マイクロプロセサはメインメモ
リからデータを受取るまでアイドル状態となる。この様
な非生産的なサイクルは「待機状態」と呼ばれる。なぜ
ならば、要求したデータがメインメモリから供給される
までマイクロプロセサは待機せねばならないからであ
る。
【0005】上述した直列マップ型キャッシュメモリの
代わりに、性能が向上されているためにセット連想キャ
ッシュメモリがしばしば使用される。セット連想キャッ
シュメモリにおいては、マイクロプロセサへデータを供
給することが可能な二つ又はそれ以上の「セット」が存
在している。従って、一つのセットが要求されたデータ
を保持していない場合には、別のセットが有効なデータ
を供給することが可能な場合がある。例えば、二方向セ
ット連想キャッシュシステムにおいては、キャッシュが
二つのより小型で幾分独立的なキャッシュに分割され
る。このことは、与えられたインデックスアドレスに対
して二つのタグを格納し且つ各キャッシュメモリにおい
て二つの関連したラインのデータを格納することを可能
とし、該タグのインデックスは与えられたタグ位置をア
ドレスするために使用されるアドレスフィールドの最小
桁ビット(LSB)であり、且つ該タグビットは最大桁
ビット(MSB)である。ミス条件が発生した場合にど
のタグRAMのどのキャッシュ位置の上書きを行うかを
決定する置換アルゴリズムにおいて複雑性が付加される
が、セット連想キャッシュシステムは、典型的に、同等
の直列マップ型キャッシュよりも一層高いヒット率を有
している。
【0006】図1はセット連想キャッシュシステム10
のブロック図を示しており、それは、五つの主要要素、
即ちマイクロプロセサ12と、メインメモリ13と、タ
グRAM A14と、タグRAM B16と、キャッシ
ュメモリセットA18と、キャッシュメモリセットB1
9と、制御論理20とである。キャッシュメモリはマイ
クロプロセサから分離されているので、キャッシュシス
テム10は二次キャッシュシステムである。一次キャッ
シュシステムにおいては、キャッシュメモリセットA1
8及びセットB19はマイクロプロセサ内に埋込まれ、
従ってその場合には埋込み型キャッシュメモリと呼称さ
れる。マイクロプロセサ12は低速のメインメモリ13
から全ての必要なデータを得ることが可能である。しか
しながら、メインメモリ13は、典型的に、マイクロプ
ロセサ12よりも速度が遅いので、マイクロプロセサ1
2はメインメモリ13からのデータが到着するまで「待
機状態」を経験する。待機状態期間中に、マイクロプロ
セサ12はアイドル状態となる。待機状態はマイクロプ
ロセサの効率に悪影響を与える。
【0007】これらの理由により、マイクロプロセサ待
機時間を減少させるか又は除去することの期待を持って
より一層タイムリーな態様でマイクロプロセサにデータ
を供給するためにキャッシュシステムが使用される。タ
グRAM A14と、タグRAM B16と、キャッシ
ュメモリセットA18と、キャッシュメモリセットB1
9と、制御論理20とから構成される二次キャッシュシ
ステムはマイクロプロセサ12とメインメモリ13との
間に存在している。セットA18とセットB19とは共
に二方向セット連想キャッシュメモリを構成しており、
その各々はしばしばアクセスされるメインメモリのデー
タのコピーを格納する。マイクロプロセサ12によって
頻繁にアクセスされるデータを格納することによって、
キャッシュメモリセットA18又はセットB19がマイ
クロプロセサのメモリサイクルにおいて要求されるデー
タを有することの蓋然性が増加される。
【0008】メインメモリ13に対してトランスペアレ
ント即ちメインメモリ13を介することなしに、キャッ
シュメモリセットA18又はキャッシュメモリセットB
19は、それらが要求されたデータを有している場合に
は、マイクロプロセサ読取りサイクル時にマイクロプロ
セサ12へデータを供給する。タグRAM A14は、
キャッシュメモリセットA18がマイクロプロセサ12
によって要求されたデータを有しているか否かを決定
し、一方タグRAM B16はキャッシュメモリセット
B19がその要求されたデータを有しているか否かを決
定する。タグRAM A14は、キャッシュメモリセッ
トA18内に格納されるデータのメモリアドレス及びス
テータスビット情報を格納し、且つタグRAM B16
はキャッシュメモリセットB19内に格納されるデータ
のメモリアドレス及びステータスビット情報を格納す
る。有効ビット17は、特定のアドレス位置に格納され
たデータが有効であるか又は無効であるかを表わすステ
ータスビットである。タグRAM A14及びタグRA
M B16内に格納されるアドレス位置の有効ビット
は、典型的に、新たなプロセス又はプログラムの開始時
にソフトウエア又はハードウエア手段によってタグRA
M内の全てのアドレス位置に対する有効ビットの値をリ
セットすることによってクリアされる。有効ビット17
は、マイクロプロセサ12からのその後の書込みサイク
ルが新たに書込まれるタグRAMアドレス位置に「1」
を書込むように、図1に示した如く、論理高電圧レベル
ccへ接続される。マイクロプロセサ12がキャッシュ
メモリ位置へデータを書込むまで、そのアドレス位置に
対する有効ビット17は無効であるか又は論理低レベル
に等しい。
【0009】マイクロプロセサの読取りが行われると、
タグRAM A14及びタグRAMB16は、要求され
たデータのアドレスと、キャッシュメモリセットA18
及びキャッシュメモリセットB19内に格納されている
データのそれぞれのアドレスと比較する。セットA18
又はセットB19の何れかに「ヒット」即ちマッチ(一
致)条件が存在し、且つ有効ビット17及びそのアドレ
スインデックス位置に対するその他のステータスビット
が有効である場合には、適宜のタグRAMA14又はタ
グRAM B16がそのキャッシュメモリセットA18
又はセットB19が所望されたデータを有していること
を表わす論理高マッチ(一致)出力信号15を発生す
る。制御論理20は、そのマッチ及びステータスビット
の関数としてどのセットがそのデータを供給するかを決
定し、且つ該キャッシュメモリの適宜のセットからのデ
ータはデータバス上へゲート動作され、そこでマイクロ
プロセサ12によって受取られる。しかしながら、タグ
RAM A14又はタグRAM B16が所望されたデ
ータのアドレスがキャッシュメモリセットA18又はキ
ャッシュメモリセットB19のそれぞれに格納されてい
る何れのアドレス共マッチ即ち一致しない場合には、そ
のセットに対して「ミス」条件が存在する。又は、所望
されたデータアドレスがキャッシュメモリセットA18
又はキャッシュメモリセットB19内に格納されたアド
レスとマッチ即ち一致するがそのアドレスに対する有効
ビット17が無効である場合には、「ミス」条件が存在
する。「ミス」条件に応答して、タグRAMは論理低マ
ッチ出力信号を発生する。
【0010】キャッシュメモリセットA18又はキャッ
シュメモリセットB19が要求されているメモリアドレ
スのデータを有しており、且つそのデータが有効である
ことが決定されると、関連するタグRAMがマッチ(一
致)出力信号15を発生する。マッチ出力信号15は高
速チップセレクト信号として機能し、該信号はキャッシ
ュメモリからのデータがマイクロプロセサへのデータバ
ス上へゲート動作されることを許容するか又は不許可す
べく機能する。タグRAM比較機能が「ヒット」条件を
示している場合には、キャッシュメモリ出力はイネーブ
ル即ち動作可能状態とされる。「ミス」条件が示される
場合には、適宜のキャッシュメモリセットの出力はイネ
ーブルされず、究極的には、メインメモリ13がマイク
ロプロセサ12に対してデータを供給する。「ミス」が
発生すると、例えば最も古くに使用された(LRU)、
先入れ先出し(FIFO)、後入れ先出し(LIF
O)、ランダム置換アルゴリズム、及び擬似的LRU置
換アルゴリズムなどの置換アルゴリズムが使用されて、
セットA18又はセットB19をアップデートするため
にメインメモリからの置換ラインのデータが使用される
か否かを決定する。キャッシュメモリ読取りサイクル期
間中のこの並列動作は、時間を節約し、且つ、多分、待
機状態なしで、単一のサイクルでマイクロプロセサ12
によってデータが読取られることを許容することを可能
とする。
【0011】一つ又はそれ以上のセットがランダムに発
生するビット欠陥を有する場合のセット連想キャッシュ
メモリはしばしば廃棄される。しかしながら、例えば単
一ビット欠陥、粒子汚染、ロックされた行、ロックされ
た列、及びメタル又はポリシリコンの短絡などのランダ
ムに発生する処理問題に起因してビット欠陥を被る場合
がある。これらの欠陥は容易に修復可能なものでない場
合があり、特に行又は列冗長性テストが使用されていな
い場合にはそうである。レーザ修復における冗長性テス
トが使用される場合であっても、この技術は全てのビッ
ト欠陥を解消するのに十分なものでない場合がある。従
って、ビット欠陥を有するセット連想キャッシュメモリ
がマイクロプロセサ、ASIC又はその他の装置内に存
在している場合には、その欠陥性のキャッシュメモリの
みならずそれが埋込まれている高価で且つ完全に機能的
な装置をも廃棄されることが多々ある。従って、欠陥性
データビットを有するセット連想キャッシュメモリを使
用可能な状態とさせるようにランダムなビット欠陥を補
償する技術の開発が望まれている。キャッシュメモリ及
びそれが埋込まれている何らかの装置がスクラップされ
ることが必要でないように、セット連想キャッシュメモ
リにおける欠陥性のデータ位置をバイパスすることが望
ましい。
【0012】
【発明が解決しようとする課題】本発明は、以上の点に
鑑みなされたものであって、上述した如き従来技術の欠
点を解消し、セット連想キャッシュメモリ内の一つ又は
それ以上の欠陥性ビットのデータを有するラインのデー
タをバイパスすることによりセット連想キャッシュメモ
リを使用可能な状態とする技術を提供することを目的と
する。
【0013】
【課題を解決するための手段】本発明によれば、例えば
行/列冗長性などの従来の修復手段によっては修復する
ことの不可能な一つ又はそれ以上の欠陥性データビット
を有するセット連想キャッシュメモリの欠陥性ラインの
データを、キャッシュミス条件が発生した後にアップデ
ートさせることはなく、その際に実効的にバイパスさせ
る。置換論理回路が、セット連想キャッシュメモリの各
ラインのデータと関連する置換ステータスビットの状態
を検知し且つ制御し、該キャッシュ内のラインのデータ
がアップデートされるべきか又はバイパスされるべきか
を決定する。従って、1ラインのデータを置換する場合
には、該置換論理回路が特定のセット内の欠陥性ライン
のデータのアドレスを検知し且つその欠陥性ラインのデ
ータをアップデートすることを回避し、その代わりに別
のセットの別のラインのデータをアップデートさせる。
この置換論理回路は、例えば最も古く使用した(LR
U)置換アルゴリズム、先入れ先出し(FIFO)置換
アルゴリズム、後入れ先出し(LIFO)置換アルゴリ
ズム、ランダム置換アルゴリズム、又は擬似的LRU置
換アルゴリズムなどの多様な置換アルゴリズムと共に使
用することが可能である。
【0014】
【実施例】セット連想キャッシュメモリは、従来の直接
マップ型キャッシュメモリと比較して、ヒット率が一層
高く且つ性能が一層優れているので魅力のあるものであ
る。セット連想キャッシュメモリは2個又はそれ以上の
セットのデータから構成されているので、キャッシュミ
ス条件が発生した後にどのセットをアップデートさせる
かを決定する制御回路が複雑である。キャッシュミス条
件が発生した後にどのセットのデータをアップデートす
るかを追跡するために、最も最近でなく使用した、即ち
最も古くに使用した(LRU)、先入れ先出し(FIF
O)、後入れ先出し(LIFO)、ランダム置換アルゴ
リズム、及び擬似的LRU置換アルゴリズムなどの置換
論理アルゴリズムが典型的に使用される。
【0015】本発明は、キャッシュミス条件が発生した
後に、一つのセットのデータの欠陥性ラインはアップデ
ートされずに実効的にバイパスされ、一つのセット内の
一つの不良ラインのデータアップデートされるために選
択されることがないことを確保するために、セット選択
を制御する置換論理回路を使用している。欠陥性ライン
のデータとは、一つ又はそれ以上の欠陥性ビットのデー
タを有する1ラインのデータとして定義される。該欠陥
性ビットのデータは、種々のラインのデータを格納する
データキャッシュ(又はそれと関連するタグ)内のセッ
ト連想キャッシュメモリ内に存在する。アップデートと
いう用語は、セット連想キャッシュメモリの特定の位置
に対して新たなラインのデータを書込むことを意味して
いる。一つのセットの個々の欠陥性データの位置は置換
論理回路へ通知され、従って、セット連想キャッシュメ
モリのセット選択期間中に、特定のインデックスアドレ
スに対して欠陥性ラインのデータを有するセットは選択
されることはなく、従って、実効的にバイパスされる。
本発明は、従来の冗長性テストを実施した後又は実施し
ない場合においても使用することが可能である。
【0016】本発明は、セット連想キャッシュメモリを
使用する多様なキャッシュ適用場面において使用するこ
とが可能であり、且つ特に、大型のキャッシュメモリを
廃棄する代わりに使用可能な状態とさせるために使用す
る場合に有効である。歩留り制限が減少されるので大型
のキャッシュメモリを使用することを可能とする。又、
埋込み型のセット連想キャッシュメモリを使用する例え
ばマイクロプロセサ及びASICなどの高価な装置を救
済することが可能である。本発明は例えば単一ビット、
ロックされた行、ロックされた列、粒子汚染などの欠陥
を有する埋込み型メモリを使用可能な状態とさせるため
に使用することが可能である。
【0017】例えば、LRU置換アルゴリズムが使用さ
れる場合には、セット連想キャッシュの最も最近でなく
使用された即ち最も古くに使用されたラインのデータ置
換されるべく選択され、且つ要求されたインデックスア
ドレスに対する全てのステータスビットがアップデート
されて関連するタグに対する新たなLRUステータスが
反映される。例えば、二方向セット連想キャッシュは、
データが格納されるセットは二つ存在するだけであるか
ら、タグ当たり一つのビットの置換ステータスが必要と
されるに過ぎない。同様に、四方向セット連想キャッシ
ュメモリの場合には、データが格納されるセットは四つ
存在しているので、タグ当たり二つの置換ステータスビ
ットが必要とされる。従って、置換ステータスビットの
第一論理レベル(例えば、論理低レベル)は、1ライン
のデータがLRUラインのデータであることを表わし、
一方、置換ステータスビットの第二論理レベル(例え
ば、論理高レベル)はそのラインのデータがそのインデ
ックスアドレスに対してタグ内に含まれているより最近
に使用されたラインのデータであることを表わす。より
最近に使用されたラインのデータは、最も最近に使用さ
れた(MRU)ラインのデータである場合もない場合も
ある。例えば、二方向セット連想キャッシュにおいて
は、より最近に使用されたラインのデータはMRUライ
ンのデータであり、一方、より大きなセット連想キャッ
シュメモリ、例えば四方向セット連想キャッシュにおい
ては、より最近に使用されたラインのデータは必ずしも
MRUラインのデータではない。従って、メインメモリ
からの置換ラインのデータの置換ステータスビットは高
論理レベルへ設定され、且つ置換されなかった他のセッ
トにおける残りのラインのデータの置換ステータスビッ
トは低論理レベルへリセットされる。何故ならば、それ
は現在インデックスアドレスに対するLRUラインのデ
ータだからである。
【0018】図2の二方向セット連想キャッシュメモリ
30を参照すると、与えられたインデックスアドレスに
対して、二方向セット連想キャッシュメモリのキャッシ
ュメモリセットA32が一つ又はそれ以上の欠陥性ビッ
トのデータを有する欠陥性ラインのデータ34を有する
ものと仮定する。この欠陥性ラインのデータ34又はそ
れと関連するタグが常にバイパスされ且つキャッシュミ
スが発生した後にアップデートされることがないことを
確保するために、セットA32の欠陥性ラインのデータ
34と関連するインデックスアドレスの置換ステータス
ビットは、常に、論理高レベルへ強制され、且つキャッ
シュメモリセットB36の1ラインのデータ38と関連
する置換ステータスビットはこの二方向セット連想キャ
ッシュメモリLRU実施例の場合に、常に論理低レベル
へ強制される。従って、キャッシュミス条件が発生した
後に、メインメモリ40からの置換ラインのデータ42
は、常に、キャッシュメモリセットB36の1ラインの
データ38と置換させ、且つキャッシュメモリセットA
32の欠陥性ラインのデータ34をアップデートするこ
とはなく、実効的にバイパスさせる。欠陥性ラインのデ
ータ34は、置換論理回路へ通信を行うプログラミング
手段によって識別される。該プログラミング手段は、多
様なヒューズプログラミング又は当該技術分野において
公知なレジスタ技術における格納を使用して達成するこ
とが可能である。例えば、レジスタをビルトインセルフ
テスト(BIST)回路を使用してロードさせることが
可能である。更に、例えば電気的にプログラム可能なリ
ードオンリメモリ(EPROM)、電気的に消去可能プ
ログラム可能リードオンリメモリ(EEPROM)、フ
ラッシュEPROMなどの非揮発性プログラミング手段
を使用することが可能である。
【0019】図3を参照すると、本発明に基づいて構成
された置換論理回路60を有する回路50が示されてい
る。置換論理回路60は四つのセグメントに分割されて
おり、それらは、四方向セット連想キャッシュメモリの
セットA、セットB、セットC、セットDを表わすもの
として点線で示されている。図示した入力信号59,6
2,64はセットAのみに対するものであり、従って回
路52−58、入力信号62,64及び出力信号66が
各セットに対して複製されている。置換論理回路60
は、信号66を発生するために、信号59,62,64
に類似する四つの信号に関して論理演算を行う。
【0020】欠陥性の1ラインのデータの複数個の欠陥
性アドレスが欠陥性アドレス識別ブロック52,54,
56を使用して識別され、それらのブロックは、前述し
た如く、当該技術分野において公知のヒューズ回路又は
レジスタ回路を有することが可能である。欠陥性アドレ
ス識別ブロック52,54,56の出力信号は、信号5
9を発生する例えば論理ORゲート58などの論理回路
への入力信号である。信号59、アドレスヒット/ミス
信号62、ステータスビット信号64は、全て、図示し
た如く置換論理回路60への入力信号であり、且つこれ
らの信号は特定のセット、例えばセットAと関連してい
る。アドレスヒット/ミス信号62は、セットAに対し
てキャッシュヒット又はキャッシュミス条件が存在する
か否かを表わし、且つステータスビット信号64は、セ
ットAの置換ステータスビットの論理レベルを包含する
セットAに関するステータス情報を置換論理回路60へ
供給する。置換論理回路60は、信号59,62,64
に関して論理演算を行って信号66を発生し、該信号6
6は置換ステータスビットの提示を決定する。
【0021】上述した実施例は、LRU置換アルゴリズ
ムを使用する第一好適実施例に関連してどの様にして置
換論理回路60を使用することが可能であるかを示して
いる。置換論理回路60は、更に、一例としてLRU置
換アルゴリズムを使用する第二好適実施例に関連して使
用することも可能である。欠陥性のラインのデータを有
するセットは、その置換ステータスビットを所定の論理
レベルへ強制させることによりバイパスされることはな
い。そうではなく、欠陥性ラインのデータがLRUライ
ンのデータとなると、前述したプログラミング手段に基
づいてそれはアップデートされることはない。該プログ
ラミング手段は、その欠陥性ラインのデータが欠陥性で
あると定義し、従ってそれはアップデートされることは
ない。その代わりに、次にアップデートされるべきライ
ンのデータ、例えばLRU+1ラインのデータがすぐさ
まアップデートされる。
【0022】上述した欠陥性ラインのデータをバイパス
するプロセスは、実効的に、バイパスされる欠陥性デー
タ位置の数だけより小型のセット連想キャッシュメモリ
とさせる。冗長性テストを行った後においてはランダム
欠陥性ビットが多数存在する蓋然性はない。例えば、四
方向セット連想キャッシュメモリが使用され、且つ一つ
のデータ位置が欠陥性データを有している場合には、そ
の欠陥性データと関連するインデックスアドレスに対し
ては、データが得られるセットは4個ではなく3個しか
存在していないので、キャッシュは三方向セット連想キ
ャッシュメモリとして機能する。しかしながら、バイパ
スされる使用可能なアドレスの割合は通常比較的小さな
ものであるに過ぎないので、その結果発生する性能の劣
化は無視可能な程度のものである。
【0023】更に、置換論理の速度経路は何ら障害を被
ることはないので、本発明を使用することによりセット
連想キャッシュメモリの速度が低下することはない。四
つのセットのうちの一つにおいて欠陥性データを有する
四方向セット連想キャッシュメモリの場合には、置換論
理回路は四つのセットの各々と関連する四つの置換ステ
ータスビットの各々の状態を検知する。何れかの欠陥性
ラインのデータに対する置換ステータスビットは、その
欠陥性ラインのデータが、キャッシュミス条件の発生の
後に、アップデートさせることはない。キャッシュミス
が発生すると、新たなラインのデータがメインメモリか
らキャッシュへ持込まれる。キャッシュが満杯であると
仮定すると、この持込まれる置換ラインによって既存の
ラインのデータが置換されねばならない。どのラインの
データを置換させるかの選択は、キャッシュ内に格納さ
れている各ラインのデータと関連するインデックスアド
レスのタグ内の置換ステータスビットの状態に基づいて
行われる。従って、欠陥性位置は、それが置換のために
選択されないように固定される。
【0024】以上、本発明の具体的実施の態様について
詳細に説明したが、本発明は、これら具体例にのみ限定
されるべきものではなく、本発明の技術的範囲を逸脱す
ることなしに種々の変形が可能であることは勿論であ
る。例えば、本明細書において説明した二方向セット連
想キャッシュLRU実施例は本発明の一実施例であるに
過ぎない。本発明は、前述したような、例えばFIFO
置換アルゴリズム、LIFO置換アルゴリズム、ランダ
ム置換アルゴリズム、及び擬似的LRU置換アルゴリズ
ムなどのその他の置換アルゴリズムと共に使用すること
が可能であることは勿論である。
【図面の簡単な説明】
【図1】 セット連想キャッシュメモリシステムを示し
た概略ブロック図。
【図2】 欠陥性ラインのデータと、アップデートされ
るべき1ラインのデータと、置換ラインのデータとを示
した概略ブロック図。
【図3】 本発明に基づいて構成されたセット連想キャ
ッシュメモリの置換論理回路を示した概略図。
【符号の説明】
10 セット連想キャッシュシステム 12 マイクロプロセサ 13 メインメモリ 14 タグRAM A 16 タグRAM B 18 キャッシュメモリセットA 19 キャッシュメモリセットB 20 制御論理 30 二方向セット連想キャッシュメモリ 32 キャッシュメモリセットA 34 欠陥性ラインのデータ 36 キャッシュメモリセットB 40 メインメモリ 42 置換ラインのデータ 60 置換論理回路

Claims (31)

    【特許請求の範囲】
  1. 【請求項1】 セット連想キャッシュメモリの欠陥性ラ
    インのデータ又はそれと関連するタグをバイパスする方
    法において、 セット連想キャッシュメモリの第一セットと関連する欠
    陥性ラインのデータのアドレスを識別し、 置換論理回路を使用して前記欠陥性ラインのデータのア
    ドレスに対してフラグをたて、従って前記欠陥性ライン
    のデータのアドレスに対応するアドレスを有する置換ラ
    インのデータが前記セット連想キャッシュメモリへ書込
    まれる場合に、前記置換論理回路によって決定される如
    く前記置換ラインのデータが前記セット連想キャッシュ
    メモリの第二セットへ書込まれ、前記第一セットの前記
    欠陥性ラインのデータを実効的にバイパスする、上記各
    ステップを有することを特徴とする方法。
  2. 【請求項2】 請求項1において、前記セット連想キャ
    ッシュメモリが複数個のセットに含まれる複数ラインの
    データを有しており、且つ各ラインのデータが1個のア
    ドレスとそれと関連する少なくとも1個の置換ステータ
    スビットを有しており、前記置換ステータスビットは、
    同一のアドレスに対応する異なるセットの他のラインの
    データに対して各ラインのデータが使用された場合を表
    わすことを特徴とする方法。
  3. 【請求項3】 請求項2において、前記置換論理回路
    が、前記置換ラインのデータで最も古くに使用された
    (LRU)ラインのデータをアップデートするために最
    も古くに使用された(LRU)置換アルゴリズムを使用
    することを特徴とする方法。
  4. 【請求項4】 請求項3において、前記欠陥性ラインの
    データの置換ステータスビットが、強制的に、前記欠陥
    性ラインのデータが前記置換ラインのデータによりアッ
    プデートされることのない最も古くに使用されたライン
    のデータとして指定する第一論理レベルとされ、その代
    わりに、その置換ステータスビットがそのラインのデー
    タが最も古くに使用された(LRU)ラインのデータで
    あることを指定する第二論理レベルに等しい第二セット
    の1ラインのデータが前記置換ラインのデータでアップ
    デートされることを特徴とする方法。
  5. 【請求項5】 請求項3において、1ラインのデータの
    置換ステータスビットがそのラインのデータが最も古く
    に使用された(LRU)ラインのデータであることを指
    定する場合に、そのラインのデータは前記置換ラインの
    データでアップデートされ、しかしながら、前記欠陥性
    ラインのデータが最も古くに使用された(LRU)ライ
    ンのデータである場合には、前記欠陥性ラインのデータ
    がバイパスされ且つ前記置換論理回路によって決定され
    る如くに別のラインのデータが前記置換ラインのデータ
    でアップデートされることを特徴とする方法。
  6. 【請求項6】 請求項1において、前記欠陥性ラインの
    データのアドレスを識別するためにプログラミング手段
    を使用することを特徴とする方法。
  7. 【請求項7】 請求項6において、前記プログラミング
    手段がヒューズプログラミングを使用することを特徴と
    する方法。
  8. 【請求項8】 請求項6において、前記プログラミング
    手段が複数個のレジスタを使用することを特徴とする方
    法。
  9. 【請求項9】 請求項8において、前記レジスタがビル
    トインセルフテスト(BIST)回路を使用してロード
    されることを特徴とする方法。
  10. 【請求項10】 請求項6において、前記プログラミン
    グ手段が非揮発性装置を使用することを特徴とする方
    法。
  11. 【請求項11】 請求項1において、前記置換論理回路
    が先入れ先出し(FIFO)置換アルゴリズムを使用す
    ることを特徴とする方法。
  12. 【請求項12】 請求項1において、前記置換論理回路
    が後入れ先出し(LIFO)置換アルゴリズムを使用す
    ることを特徴とする方法。
  13. 【請求項13】 請求項1において、前記置換論理回路
    がランダム置換アルゴリズムを使用することを特徴とす
    る方法。
  14. 【請求項14】 請求項1において、前記置換論理回路
    が擬似的な最も古くに使用した(LRU)置換アルゴリ
    ズムを使用することを特徴とする方法。
  15. 【請求項15】 請求項1において、前記セット連想キ
    ャッシュメモリが埋込み型キャッシュメモリであること
    を特徴とする方法。
  16. 【請求項16】 請求項15において、前記埋込み型キ
    ャッシュメモリがマイクロプロセサの一次キャッシュで
    あることを特徴とする方法。
  17. 【請求項17】 セット連想キャッシュメモリの欠陥性
    ラインのデータ又はそれと関連するタグをバイパスする
    装置において、 複数個のセット内に含まれる複数個のラインのデータを
    有するセット連想キャッシュメモリが設けられており、
    各ラインのデータはそれと関連しており且つ一つのアド
    レスに対応する異なるセットの他のラインのデータに対
    して各ラインのデータが使用された場合を表わす少なく
    とも1個の置換ステータスビットを有しており、 キャッシュミス条件に続いて置換サイクル期間中に欠陥
    性ラインのデータのアドレスが検知される場合に1ライ
    ンのデータをバイパスする置換論理回路が設けられてい
    る、ことを特徴とする装置。
  18. 【請求項18】 請求項17において、前記置換論理回
    路が、置換ラインのデータで最も古くに使用された(L
    RU)ラインのデータをアップデートするために最も古
    くに使用された(LRU)置換アルゴリズムを使用する
    ことを特徴とする装置。
  19. 【請求項19】 請求項18において、前記欠陥性ライ
    ンのデータの置換ステータスビットが、前記欠陥性ライ
    ンのデータを前記置換性ラインのデータによってアップ
    デートされることのない最も最近に使用されたラインの
    データとして指定する第一論理レベルへ強制され、その
    代わりに、その置換ステータスビットがそのラインのデ
    ータが最も古くに使用された(LRU)ラインのデータ
    であることを指定する第二論理レベルに等しい1ライン
    のデータが前記置換ラインのデータでアップデートされ
    ることを特徴とする装置。
  20. 【請求項20】 請求項18において、1ラインのデー
    タの置換ステータスビットがそのラインのデータが最も
    古くに使用された(LRU)ラインのデータとして指定
    する場合に、そのラインのデータが前記置換ラインのデ
    ータでアップデートされ、しかしながら、前記欠陥性ラ
    インのデータが前記最も古くに使用された(LRU)ラ
    インのデータである場合には、前記欠陥性ラインのデー
    タがバイパスされ且つ前記置換論理回路によって決定さ
    れる如く別のラインのデータが前記置換ラインのデータ
    でアップデートされることを特徴とする装置。
  21. 【請求項21】 請求項17において、前記欠陥性ライ
    ンのデータのアドレスを識別するためにプログラミング
    手段が使用されることを特徴とする装置。
  22. 【請求項22】 請求項21において、前記プログラミ
    ング手段がヒューズプログラミングを使用することを特
    徴とする装置。
  23. 【請求項23】 請求項21において、前記プログラミ
    ング手段が複数個のレジスタを使用することを特徴とす
    る装置。
  24. 【請求項24】 請求項23において、前記レジスタが
    ビルトインセルフテスト(BIST)回路を使用してロ
    ードされることを特徴とする装置。
  25. 【請求項25】 請求項21において、前記プログラミ
    ング手段が非揮発性装置を使用することを特徴とする装
    置。
  26. 【請求項26】 請求項17において、前記置換論理回
    路が先入れ先出し(FIFO)置換アルゴリズムを使用
    することを特徴とする装置。
  27. 【請求項27】 請求項17において、前記置換論理回
    路が後入れ先出し(LIFO)置換アルゴリズムを使用
    することを特徴とする装置。
  28. 【請求項28】 請求項17において、前記置換論理回
    路がランダム置換アルゴリズムを使用することを特徴と
    する装置。
  29. 【請求項29】 請求項17において、前記置換論理回
    路が擬似的な最も古くに使用された(LRU)置換アル
    ゴリズムを使用することを特徴とする装置。
  30. 【請求項30】 請求項17において、前記セット連想
    キャッシュメモリが埋込み型キャッシュメモリであるこ
    とを特徴とする装置。
  31. 【請求項31】 請求項30において、前記埋込み型キ
    ャッシュメモリがマイクロプロセサの一次キャッシュで
    あることを特徴とする装置。
JP7072711A 1994-03-31 1995-03-30 回復可能なセット連想キャッシュ Pending JPH0822417A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US22107294A 1994-03-31 1994-03-31
US221072 1994-03-31

Publications (1)

Publication Number Publication Date
JPH0822417A true JPH0822417A (ja) 1996-01-23

Family

ID=22826220

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7072711A Pending JPH0822417A (ja) 1994-03-31 1995-03-30 回復可能なセット連想キャッシュ

Country Status (4)

Country Link
US (1) US5666482A (ja)
EP (1) EP0675436B1 (ja)
JP (1) JPH0822417A (ja)
DE (1) DE69421379T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006515441A (ja) * 2002-10-16 2006-05-25 トムソン ライセンシング エレメントのリストを記憶するための装置、1つの係る装置におけるエレメントを記憶する方法

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6044441A (en) * 1995-09-29 2000-03-28 Intel Corporation Method and apparatus for encoding valid and invalid states in a cache with an invalid pattern
JPH09319569A (ja) * 1996-05-31 1997-12-12 Mitsubishi Electric Corp マイクロコンピュータ
US6412051B1 (en) * 1996-11-27 2002-06-25 International Business Machines Corp. System and method for controlling a memory array in an information handling system
US6038680A (en) * 1996-12-11 2000-03-14 Compaq Computer Corporation Failover memory for a computer system
US6006311A (en) * 1997-04-14 1999-12-21 Internatinal Business Machines Corporation Dynamic updating of repair mask used for cache defect avoidance
US6223248B1 (en) * 1997-04-29 2001-04-24 Texas Instruments Incorporated Circuits systems and methods for re-mapping memory row redundancy during two cycle cache access
US6289438B1 (en) 1998-07-29 2001-09-11 Kabushiki Kaisha Toshiba Microprocessor cache redundancy scheme using store buffer
US6510493B1 (en) 1999-07-15 2003-01-21 International Business Machines Corporation Method and apparatus for managing cache line replacement within a computer system
US6473834B1 (en) 1999-12-22 2002-10-29 Unisys Method and apparatus for prevent stalling of cache reads during return of multiple data words
US6415357B1 (en) 1999-12-23 2002-07-02 Unisys Corporation Caching method and apparatus
JP3457611B2 (ja) * 2000-02-16 2003-10-20 日本電気株式会社 半導体記憶装置
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
US6918071B2 (en) * 2001-04-20 2005-07-12 Sun Microsystems, Inc. Yield improvement through probe-based cache size reduction
US6385071B1 (en) 2001-05-21 2002-05-07 International Business Machines Corporation Redundant scheme for CAMRAM memory array
US20030084389A1 (en) * 2001-10-25 2003-05-01 Sailesh Kottapalli Method and apparatus for flexible memory for defect tolerance
JP3953903B2 (ja) * 2002-06-28 2007-08-08 富士通株式会社 キャッシュメモリ装置、及び、参照履歴のビット誤り検出方法
US7168010B2 (en) 2002-08-12 2007-01-23 Intel Corporation Various methods and apparatuses to track failing memory locations to enable implementations for invalidating repeatedly failing memory locations
US7467377B2 (en) * 2002-10-22 2008-12-16 Intel Corporation Methods and apparatus for compiler managed first cache bypassing
US6922754B2 (en) * 2002-12-09 2005-07-26 Infabric Technologies, Inc. Data-aware data flow manager
US7131039B2 (en) * 2002-12-11 2006-10-31 Hewlett-Packard Development Company, L.P. Repair techniques for memory with multiple redundancy
CN1846278B (zh) * 2003-09-04 2010-04-28 Nxp股份有限公司 集成电路和高速缓冲存储器的重新映射方法
US7401189B2 (en) * 2005-02-09 2008-07-15 International Business Machines Corporation Pipelining D states for MRU steerage during MRU/LRU member allocation
US7363433B2 (en) * 2005-02-09 2008-04-22 International Business Machines Corporation Cache member protection with partial make MRU allocation
US7343455B2 (en) * 2005-02-09 2008-03-11 International Business Machines Corporation Cache mechanism and method for avoiding cast out on bad victim select and recycling victim select operation
JP2008269142A (ja) * 2007-04-18 2008-11-06 Hitachi Ltd ディスクアレイ装置
US7856576B2 (en) * 2007-04-25 2010-12-21 Hewlett-Packard Development Company, L.P. Method and system for managing memory transactions for memory repair
US7949913B2 (en) * 2007-08-14 2011-05-24 Dell Products L.P. Method for creating a memory defect map and optimizing performance using the memory defect map
US9373362B2 (en) * 2007-08-14 2016-06-21 Dell Products L.P. System and method for implementing a memory defect map
US7945815B2 (en) * 2007-08-14 2011-05-17 Dell Products L.P. System and method for managing memory errors in an information handling system
US7809980B2 (en) 2007-12-06 2010-10-05 Jehoda Refaeli Error detector in a cache memory using configurable way redundancy
US7987320B2 (en) * 2007-12-06 2011-07-26 International Business Machines Corporation Cache mechanism and method for avoiding cast out on bad victim select and recycling victim select operation
US8392658B2 (en) * 2009-07-10 2013-03-05 Apple Inc. Cache implementing multiple replacement policies
US8839025B2 (en) * 2011-09-30 2014-09-16 Oracle International Corporation Systems and methods for retiring and unretiring cache lines
US8724408B2 (en) 2011-11-29 2014-05-13 Kingtiger Technology (Canada) Inc. Systems and methods for testing and assembling memory modules
US9117552B2 (en) 2012-08-28 2015-08-25 Kingtiger Technology(Canada), Inc. Systems and methods for testing memory
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
KR101805028B1 (ko) * 2016-06-28 2017-12-06 고려대학교 산학협력단 물리 영역과 가상 영역을 근거로 결함 리페어를 적용하는 메모리 장치 및 그의 제어 방법

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3768071A (en) * 1972-01-24 1973-10-23 Ibm Compensation for defective storage positions
US4168541A (en) * 1978-09-25 1979-09-18 Sperry Rand Corporation Paired least recently used block replacement system
US4506364A (en) * 1982-09-30 1985-03-19 International Business Machines Corporation Memory address permutation apparatus
US4633429A (en) * 1982-12-27 1986-12-30 Motorola, Inc. Partial memory selection using a programmable decoder
US4538247A (en) * 1983-01-14 1985-08-27 Fairchild Research Center Redundant rows in integrated circuit memories
US4608687A (en) * 1983-09-13 1986-08-26 International Business Machines Corporation Bit steering apparatus and method for correcting errors in stored data, storing the address of the corrected data and using the address to maintain a correct data condition
EP0173556A3 (en) * 1984-08-31 1987-05-27 Texas Instruments Incorporated Hierarchical architecture for determining the least recently used cache memory
JPS6246347A (ja) * 1985-08-24 1987-02-28 Hitachi Ltd 情報処理装置のエラ−処理方式
US4791642A (en) * 1986-10-17 1988-12-13 Amdahl Corporation Buffer error retry
AU604101B2 (en) * 1987-04-13 1990-12-06 Computervision Corporation High availability cache organization
US4833601A (en) * 1987-05-28 1989-05-23 Bull Hn Information Systems Inc. Cache resiliency in processing a variety of address faults
DD274923A1 (de) * 1988-08-16 1990-01-03 Dresden Mikroelektronik Internes selbsttest- und redundanzprogrammierungsverfahren fuer speicherschaltkreise und anordnung zur durchfuehrung des verfahrens
US5070502A (en) * 1989-06-23 1991-12-03 Digital Equipment Corporation Defect tolerant set associative cache
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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006515441A (ja) * 2002-10-16 2006-05-25 トムソン ライセンシング エレメントのリストを記憶するための装置、1つの係る装置におけるエレメントを記憶する方法

Also Published As

Publication number Publication date
EP0675436A1 (en) 1995-10-04
EP0675436B1 (en) 1999-10-27
DE69421379T2 (de) 2000-05-11
US5666482A (en) 1997-09-09
DE69421379D1 (de) 1999-12-02

Similar Documents

Publication Publication Date Title
JPH0822417A (ja) 回復可能なセット連想キャッシュ
US10860495B2 (en) Storage circuitry responsive to a tag-matching command
EP0596636B1 (en) Cache tag memory
JP3620473B2 (ja) 共有キャッシュメモリのリプレイスメント制御方法及びその装置
US8117395B1 (en) Multi-stage pipeline for cache access
JP5160448B2 (ja) 高速入力データをメモリ・デバイスのマトリクスに記録する方法および装置
JPS6367686B2 (ja)
EP0626644B1 (en) Structure to utilize a partially functional cache memory
US20090094435A1 (en) System and method for cache access prediction
US9524242B2 (en) Cache memory system with simultaneous read-write in single cycle
US7370151B2 (en) Method and system for absorbing defects in high performance microprocessor with a large n-way set associative cache
US5708789A (en) Structure to utilize a partially functional cache memory by invalidation of faulty cache memory locations
US6289438B1 (en) Microprocessor cache redundancy scheme using store buffer
US6862663B1 (en) Cache having a prioritized replacement technique and method therefor
US5749087A (en) Method and apparatus for maintaining n-way associative directories utilizing a content addressable memory
US6240532B1 (en) Programmable hit and write policy for cache memory test
US6918071B2 (en) Yield improvement through probe-based cache size reduction
US6212609B1 (en) Alternate access mechanism for saving and restoring state of read-only register
US6041390A (en) Token mechanism for cache-line replacement within a cache memory having redundant cache lines
US5581730A (en) Condition detector and prioritizer with associativity determination logic
AU604101B2 (en) High availability cache organization
JP2000122929A (ja) 情報処理装置
JP2701703B2 (ja) キャッシュメモリ
US20050013181A1 (en) Assisted memory device with integrated cache
JPH0210446A (ja) バッファ記憶装置