JP3181001B2 - キャッシュ・メモリ・システム並びにキャッシュ・メモリ・アクセス方法及びシステム - Google Patents

キャッシュ・メモリ・システム並びにキャッシュ・メモリ・アクセス方法及びシステム

Info

Publication number
JP3181001B2
JP3181001B2 JP09029994A JP9029994A JP3181001B2 JP 3181001 B2 JP3181001 B2 JP 3181001B2 JP 09029994 A JP09029994 A JP 09029994A JP 9029994 A JP9029994 A JP 9029994A JP 3181001 B2 JP3181001 B2 JP 3181001B2
Authority
JP
Japan
Prior art keywords
array
cache
redundant
main
accessing
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.)
Expired - Fee Related
Application number
JP09029994A
Other languages
English (en)
Other versions
JPH06348596A (ja
Inventor
ジョージ・マリア・ブラセラス
ローレンス・カーレイ・ハウエル、ジュニア
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH06348596A publication Critical patent/JPH06348596A/ja
Application granted granted Critical
Publication of JP3181001B2 publication Critical patent/JP3181001B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はデータ処理システムに関
し、特に、こうしたデータ処理システムにより使用され
るメモリ・キャッシュに関する。
【0002】
【従来の技術】キャッシュは小容量で高速なメモリであ
り、大容量のメモリを使用する装置と大容量の低速な主
メモリとの間のバッファとして機能する。キャッシュの
目的は平均メモリ・アクセス時間を低減することであ
る。キャッシュはソフトウェア・プログラムの2つの特
性すなわち空間的局所性及び時間的局所性により効果的
である。空間的局所性とは、プログラムは一般に順次的
に実行されるサブルーチン及びプロシージャにより構成
されるために、これらがそのアドレスが最も近いデータ
及び命令をしばしば使用することを意味する。時間的局
所性は、多くのプログラムがループを含み、リスト及び
アレイ内に並ぶデータを処理するために、最近使用され
た情報が旧情報よりも再使用される可能性が高いことを
認識する。
【0003】メモリ・キャッシュはデータ処理システム
において、こうしたデータ処理システム内のマイクロプ
ロセッサまたは実行ユニットにより統計的に使用される
可能性の高い命令またはデータを保持することにより、
システム性能を改良する。こうした使用の可能性は、一
般に、現在実行中の命令または現在アクセスされるデー
タに極めて接近する命令/データにおいて存在すると見
なされる。図1を参照すると、高速メモリ・キャッシュ
11は、こうした命令またはデータをマイクロプロセッ
サまたはCPU(実行ユニット)9に迅速に提供し、そ
れによりプロセッサが低速な主メモリ13をアクセスす
ることを要求される場合に生じる遅延を最小化するため
に使用される。この低速な主メモリは、例えばダイナミ
ックRAM、読出し専用メモリ(ROM)、電気的、磁
気的または光学的ディスクまたはディスケット、または
他の型の揮発性記憶装置または不揮発性記憶装置などで
ある。
【0004】メモリ・キャッシュの内容は、主メモリか
らの命令/データにより周期的に補充されなければなら
ない。キャッシュと主メモリ間のデータ転送レートは、
それらの間で情報を移動するためのブロック・データ転
送を使用することにより、著しく向上される。キャッシ
ュ・メモリは通常データ・ラインで編成され、各ライン
は複数のデータ・バイトまたはワードを含む。このライ
ンは、単一のバイト/ワードではなくグループ単位のバ
イト/ワードをキャッシュで転送するために使用され
る。例えば、各キャッシュ・ラインは32バイト、64
バイトまたは128バイトのデータを有する。32バイ
トのキャッシュ・ラインでは、キャッシュ・ミスの度に
主メモリからの単一のブロック・データ転送を使用し
て、32バイトがフェッチされる。
【0005】キャッシュ・ミスは、キャッシュがCPU
により必要とされる命令またはデータを含まない時に発
生する。キャッシュ・ミスが発生すると、現キャッシュ
・ラインは、低速なメモリ/記憶装置から、要求値及び
後続の(n−1)バイトの命令/データで再ロードされ
る(ここでnはキャッシュ・ラインのサイズを示す)。
【0006】しかしながら、しばしば、現キャッシュ内
に存在するラインを置換(displace)または上書きする
ことなく、特定のロード/ストア動作に対応して、メモ
リからラインをフェッチすることが有利である。非置換
性(non-displacement)に対するこの要求は、例えば、
キャッシュ内に含まれるデータに対しマトリクス演算を
実行する時に発生する。非マトリクス・データをアクセ
スする時にキャッシュ・ミスが発生する場合、既存のマ
トリクス・データを乱さずに、この非マトリクス・デー
タ値をアクセスすることが望ましい。非置換性に対する
この要求は、ロードされるラインが長い時間再使用され
ないことが知られている場合(例えばページ・フレーム
・テーブルの更新)、または1ワードだけが稀にメモリ
から読出される必要がある場合にも発生する。現在知ら
れているシステムは、キャッシュ・ラインの再ロードを
先取りする選択的なメモリ・アクセスを許可しない。
【0007】
【発明が解決しようとする課題】本発明の目的は、改良
されたデータ処理システムを提供することである。
【0008】本発明の別の目的は、データ処理システム
における改良された性能を提供することである。
【0009】更に本発明の別の目的は、データ処理シス
テムにおける改良されたキャッシュを提供することであ
る。
【0010】更に本発明の別の目的は、データ処理シス
テムにおいて要求されるキャッシュ・ライン再ロードの
回数を最小化することである。
【0011】更に本発明の別の目的は、キャッシュ・ラ
イン再ロードをプリエンプト(preempt)しながら、選
択的にメモリをアクセスすることである。
【0012】
【課題を解決するための手段】記憶アレイの冗長な行の
1つを使用することにより、データ・キャッシュ内に追
加のラインが提供される。記憶アレイへの入力信号によ
り、この追加ラインがいつアクセスされるかが示され
る。キャッシュ・アレイの他の行に対し実行される全て
の動作が、この追加ラインに対しても同様に実行でき
る。
【0013】アレイセット・アソシアティビティが考慮
される場合、複数ラインが行内に配置される。例えば、
4ウェイ・セット・アソシアティビティでは、合計4本
の追加ラインが追加の行にもたらされる。キャッシュ・
ラインの余分なラインを提供するアレイ冗長行の使用
は、より多くのラインを含むようにキャッシュを拡張す
る従来方法よりも優れている。これらの従来方法は、追
加されるキャッシュ・ラインに対応するレジスタ、マル
チプレクサ及び制御論理の追加を必要とした。アレイ冗
長行を追加のキャッシュ・ラインとして使用することに
より、物理的空間及び結果的な配線の密集が最小化され
る。
【0014】本明細書においては、理解を容易にするた
めに、1ウェイ・セット・アソシアティビティ・アレイ
について述べるが、これはMウェイに拡張し、より多く
の "追加ライン" を提供することを妨げるものではな
い。
【0015】
【実施例】本明細書で述べられるデータ・キャッシュの
主アレイは8行を含む。各行は256バイトのライン・
データを含む。追加ラインは、キャッシュ・チップの冗
長行セクションから提供され、この追加ラインに対し実
行される動作は、主アレイ行の内容に影響しない。用
語"行(row)" が使用されるが、これは特定の物理的方
向に制限されることを意味するものではない。列、対角
線または他の型の物理的方向に構成されるメモリにおい
ても、本明細書で述べられる技術を同様に使用すること
が可能である。行は、読出し、書込み、フラッシュなど
の単一の動作を使用する際にアクセスまたは動作される
複数のメモリ・ロケーションを単に意味する。
【0016】図2は好適な実施例のメモリ・キャッシュ
11を表す。主アレイ10は合計8つの行をアドレスす
る3本のアドレス・ライン12を含む。冗長行14は、
典型的には、主アレイの行の1つが故障の場合に使用さ
れる。主アレイ内に故障が判断されると、製造工程の間
に主アレイ10内の故障行をバイパスするために、予備
/冗長行14の1つが使用される。悪いビットを含む行
は、通常はヒューズ・リンクを切断することにより使用
禁止とされ、冗長行がこれに代わり使用可能とされる。
主アレイ内の1行を予備/冗長行により代替可能とする
ために、予備/冗長行は、自身が置換する行と同一の論
理的外観を有さなければならない。予備/冗長行14
は、予備/冗長行を主アレイの故障行または列の論理ロ
ケーションにマップする時、論理的に上書きされる。こ
の冗長的置換は、業界では一般に知られており、米国特
許第4630241号及び1991年7月17日出願の
米国特許出願第731487号(及び対応する欧州特許
出願第523996−A1号)に述べられている。
【0017】アレイ制御論理18(図3を参照してより
詳細に後述される)は、冗長行14が主アレイ10内の
他の行と同一の論理機能を有するように実現される。冗
長行14は主アレイ行と同一の論理的外観を有するた
め、主アレイに対する"追加行"と見なすことができる。
従って、故障行に対する代替としてマップされていない
冗長行は、追加行またはキャッシュ・ラインとして使用
することが可能である。主アレイの行の代替行として使
用される場合、これを「マップ化」といい、未使用の場
合、これを「非マップ化」という。それにより主アレイ
に対する論理的拡張を提供する。これらのマップされて
いない冗長なキャッシュ・ライン(冗長非マップ化キャ
ッシュ・ライン)14は、キャッシュの主アレイ内容を
置換または上書きすることなく、一時キャッシュ・ロケ
ーションとして使用可能である。
【0018】"追加行"入力信号が16に提供される。後
述されるように、この信号16はキャッシュ制御装置に
より生成され、要求ラインが主アレイ10内に存在する
か、主アレイ10外の(主アレイをバイパスする)冗長
行領域14内に存在するかに依存して、セットされる。
この信号はまた、アレイの"高位"アドレス・ビットとし
ても考慮される。この信号が論理"0"にセットされる場
合、アクセスは主アレイに対して実施され、また論理"
1"にセットされる場合、"追加行"がアクセスされる。
【0019】図3はアレイ制御論理18を示し、アレイ
・アドレス・デコーダ20及びアレイ・インタフェース
22を含む。アレイ・アドレス・デコーダは追加の行信
号16を処理するように拡張される。この拡張は24に
おいて、アレイ・アドレス・デコーダ20の出力と追加
行信号16の論理積により達成される。行信号16はキ
ャッシュ制御装置により生成される。この追加行信号は
24で論理積演算される以前に、26において反転され
る。論理積演算の出力は、23、25及び27で示され
るように、主アレイ10のそれぞれの行(0乃至7)を
アクセス/許可するために使用される。追加行信号16
は、キャッシュ11の冗長行14部分の追加非マップ化
行をアクセス/許可するために使用される。
【0020】キャッシュ制御装置18は、いつラインを
冗長行領域の"追加行"に配置するかを知らされなければ
ならない。これは、メモリからキャッシュへの再ロード
を引き起こす全てのCPU命令(すなわちロード、スト
ア、ゼロ・ライン)内に、ビットを割当てることにより
達成される。例えば、10ビット命令は表1に示される
ように構成され、ビット5が追加行をアクセスするため
に使用される。
【0021】
【表1】
【0022】アプリケーション・プログラムを作成する
プログラマ(またはこの選択キャッシュを管理する知能
的コンパイラまたはオペレーティング・システム)は、
このビットを"1"にセットし、メモリから入力されるラ
インが追加行に配置されるべきことを示す。このビット
が"0"の場合、ラインは主アレイ10に配置される。C
PU9(図1)はOPコード内のこのビットを解釈し、
それに従い上述のようにキャッシュの制御セクションに
伝達する。
【0023】このビットの値は次に表2に示すように、
ラインのアドレスと一緒にタグ・テーブル内に記憶され
る。
【0024】
【表2】 (タグ・テーブル・エントリ) 追加行 ラインのメモリ・アドレス 0または1 XXXXX
【0025】このラインのアドレスにおいて"キャッシ
ュ・ヒット"が発生する時、タグ・テーブルに以前に記
憶された"追加行"ビットが、対応するアドレス・ビット
と一緒に制御装置からキャッシュに送られる。"キャッ
シュ・ライン"がメモリに記憶され戻す必要がある場
合、同一のキャッシュ・アドレス機構が使用される(す
なわち、追加行ビットがアクセスするラインを示すアド
レスと共に送られる)。上述のシナリオは、実行ユニッ
トのストア/ロードが発生している場合にも、キャッシ
ュの再ロード/ストアバックが発生している場合にも適
用可能であり、主アレイ動作と比較して、"追加行"を処
理するために余計な対策は要求されない。
【0026】上述のシナリオにおいて、プログラマは単
に初期にラインが追加行に配置されるかどうかを識別す
ればよく、更に別のモニタリングまたは活動は要求され
ない。
【0027】更に多くの"追加行"がアレイ内に設計され
る場合にも、制御装置によるそれらへのアクセスの妨げ
は存在しない。第2の"追加行"を設けるために、次の変
更が実施される。
【0028】表1を参照して述べたのと同様にして、"
第2追加行"アドレス・ビットが命令内に割当てられ
る。(表2の)タグ・テーブルがこの新たなラインを収
容するために1ビット分広げられる。しかしながら、冗
長行領域を使用する時を示す "追加行信号" の使用はそ
のまま維持される。"追加行信号"が活動状態かまたは許
可される場合、冗長行に対してアクセスが実施され
る。"第2追加行"信号が論理 "0" の場合、追加行0が
アクセスされ、この信号が論理"1"の場合、追加行1が
アクセスされる。
【0029】図3の追加行信号16は、図4に示される
ように拡張される。"第2追加行"信号が30に提供され
る。この信号30は32で反転され、次に34で追加行
信号16と論理積される。AND34の出力は信号38
で示され、冗長行14の追加非マップ化行0をアクセス
/許可するために使用される。同様にして、 "第2追加
行" 信号30は、36においても追加行信号16と論理
積される。AND36の出力は信号40で示され、冗長
行14の追加非マップ化行1をアクセス/許可するため
に使用される。
【0030】追加行の数は更に拡張可能であるが、この
場合、論理オーバヘッドを低減するために、例えば2対
4ウェイ、または3対8ウェイ・エンコーダなどを使用
する従来方法により、第2、第3、...などのアドレ
ス・ビット及びそれらに対応する信号の符号化を開始す
ることが好ましい。これは従来の既知の技術を使用して
達成される。
【0031】Mウェイ・セット・アソシアティブ・アレ
イでは、図5の42で示されるように、1行がM個のラ
インを含む。従って、セット・アソシアティビティが使
用される場合、複数の "追加" ラインが冗長行にもたら
される。セット・アソシアティビティは一般に知られて
おり、本発明がセット・アソシアティビティと共存する
様子が簡単な例により示される。
【0032】図6を参照すると、アレイ44は46で示
されるY行から構成され、各行は48で示されるように
Xバイトを含む。任意のバイトをアクセスするために、
行アドレス(1〜Y)及びバイト・アドレス(1〜X)
が指定されなければならない。1ラインが行全体として
定義されると、その長さはXバイトである。この場合、
ライン及び行は同一の意味を有する。
【0033】セット・アソシアティビティが使用される
場合、アレイ44は図7に示されるように、選択される
セット数Sにもとづき、追加のグループに分割される。
セットの幅はX/Sバイト(Xは行の合計バイト長)で
あり、この値が新たなライン長になる。従って、Sセッ
トを有するアレイ行はS個のラインを含む。任意のバイ
トをアクセスするために、行アドレス、セット番号、及
びセット内のバイト・アドレスが、キャッシュ制御装置
により指定されなければならない。冗長行は主アレイの
行と同一の特性(すなわち幅及びアドレス指定)を有す
るため、冗長行も同様に同一のセット・アソシアティビ
ティ機構を有する。従って、追加ラインを記憶するため
に冗長行を使用することは、同様にセット・アソシアテ
ィビティにも拡張され、冗長非マップ化行は1ウェイ・
セット・アソシアティビティに対して上述されたのと同
一の技術を使用してS個のラインを記憶するか、または
保持することができる。
【0034】本欄のまとめとして、本発明の構成を以下
のとおりに開示する。
【0035】1.キャッシュ内の複数のキャッシュ・ラ
インと、1または複数のマップされていない冗長キャッ
シュ・ラインとを含むキャッシュと、上記キャッシュ
に、上記複数のキャッシュ・ラインまたは上記冗長キャ
ッシュ・ラインの1つをアクセスすることを信号で知ら
せる手段と、を含むキャッシュ・メモリ・システム。
【0036】2.主アレイ及び冗長アレイを有するキャ
ッシュ・メモリ・システムであって、該冗長アレイがマ
ップ化及び非マップ化キャッシュ・ラインを含むものに
おいて、上記主アレイをアクセスする第1のアクセス手
段と、上記マップ化キャッシュ・ラインをアクセスする
第2のアクセス手段と、上記非マップ化キャッシュ・ラ
インをアクセスする第3のアクセス手段と、を含むキャ
ッシュ・メモリ・システム。
【0037】3.上記2.に記載の方法において、上記
マップ化キャッシュ・ラインが上記主アレイに対する論
理上書きである、キャッシュ・メモリ・システム。
【0038】4.上記2.に記載の方法において、上記
非マップ化キャッシュ・ラインが上記主アレイの論理拡
張である、キャッシュ・メモリ・システム。
【0039】5.主アレイ及び冗長アレイを有するキャ
ッシュ・メモリをアクセスする方法であって、該主アレ
イが少なくとも1つの主キャッシュ・ラインを有し、該
冗長アレイが少なくとも1つの冗長非マップ化キャッシ
ュ・ラインを有するものにおいて、上記主アレイのメモ
リ・ロケーションのアドレスを生成するステップと、上
記アドレスに対応するキャッシュ・ラインをアクセスす
るステップと、上記冗長アレイをアクセスする信号を生
成するステップと、上記冗長アレイ内の冗長非マップ化
キャッシュ・ラインをアクセスするステップと、を含む
方法。
【0040】6.主アレイ及び冗長アレイを有するキャ
ッシュ・メモリをアクセスする方法であって、該主アレ
イ及び該冗長アレイが複数のメモリ・ロケーションを有
するものにおいて、上記主アレイのメモリ・ロケーショ
ンのアドレスを生成するステップと、第1のデータを上
記主アレイの複数のメモリ・ロケーションの少なくとも
1つに読出しまたは書込みするステップと、上記冗長ア
レイをアクセスする信号を生成するステップと、上記第
1のデータを置換することなく、第2のデータを上記冗
長アレイに読出しまたは書込みするステップと、を含む
方法。
【0041】7.主アレイ及び少なくとも1つの冗長非
マップ化キャッシュ・ラインを有するキャッシュ・メモ
リをアクセスする方法であって、該主アレイが複数のメ
モリ・ロケーションを有するものにおいて、上記少なく
とも1つの冗長非マップ化キャッシュ・ラインをアクセ
スする信号を生成するステップと、上記複数のメモリ・
ロケーションの内容を変更することなく、上記少なくと
も1つの冗長非マップ化キャッシュ・ラインをアクセス
するステップと、を含む方法。
【0042】8.主アレイ及び冗長アレイを有するキャ
ッシュ・メモリをアクセスする方法であって、該主アレ
イが少なくとも1つの主キャッシュ・ラインを有し、該
冗長アレイが少なくとも1つの冗長キャッシュ・ライン
を有するものにおいて、上記冗長アレイをアクセスする
信号を生成するステップと、上記主アレイ内の上記少な
くとも1つの主キャッシュ・ラインを置換することな
く、上記冗長アレイ内の冗長キャッシュ・ラインをアク
セスするステップと、を含む方法。
【0043】9.主アレイ及び冗長アレイを有するキャ
ッシュ・メモリをアクセスするシステムであって、該主
アレイが少なくとも1つの主キャッシュ・ラインを有
し、該冗長アレイが少なくとも1つの冗長キャッシュ・
ラインを有するものにおいて、上記主アレイのメモリ・
ロケーションのアドレスを生成する手段と、上記アドレ
スに対応するキャッシュ・ラインをアクセスする手段
と、上記冗長アレイをアクセスする信号を生成する手段
と、上記主アレイ内の上記少なくとも1つの主キャッシ
ュ・ラインを置換することなく、上記冗長アレイ内の冗
長キャッシュ・ラインをアクセスする手段と、を含むシ
ステム。
【0044】10.主アレイ及び冗長アレイを有するキ
ャッシュ・メモリをアクセスするシステムであって、該
主アレイ及び該冗長アレイが複数のメモリ・ロケーショ
ンを有するものにおいて、上記主アレイのメモリ・ロケ
ーションのアドレスを生成する手段と、第1のデータを
該主アレイの該メモリ・ロケーションの少なくとも1つ
に読出しまたは書込みする手段と、上記冗長アレイをア
クセスする信号を生成する手段と、上記第1のデータを
置換することなく、第2のデータを上記冗長アレイに読
出しまたは書込みする手段と、を含むシステム。
【0045】11.主アレイ及び少なくとも1つの冗長
非マップ化キャッシュ・ラインを有するキャッシュ・メ
モリをアクセスするシステムであって、該主アレイが複
数のメモリ・ロケーションを有するものにおいて、上記
少なくとも1つの冗長非マップ化キャッシュ・ラインを
アクセスする信号を生成する手段と、上記複数のメモリ
・ロケーションの内容を変更することなく、上記少なく
とも1つの冗長非マップ化キャッシュ・ラインをアクセ
スする手段と、を含むシステム。
【0046】12.主アレイ及び冗長アレイを有するキ
ャッシュ・メモリをアクセスするシステムであって、該
主アレイが少なくとも1つの主キャッシュ・ラインを有
し、該冗長アレイが少なくとも1つの冗長キャッシュ・
ラインを有するものにおいて、上記冗長アレイをアクセ
スする信号を生成する手段と、上記主アレイ内の上記少
なくとも1つの主キャッシュ・ラインを置換することな
く、上記冗長アレイ内の冗長キャッシュ・ラインをアク
セスする手段と、を含むシステム。
【0047】13.主アレイ及び非マップ化冗長アレイ
を有するキャッシュ・メモリをアクセスするシステムで
あって、該主アレイ及び該冗長アレイが複数のメモリ・
ロケーションを有するものにおいて、上記キャッシュ・
メモリに接続される中央処理ユニットと、上記キャッシ
ュ・メモリに接続される主メモリと、上記中央処理ユニ
ットにより、上記主メモリのメモリ・ロケーションのア
ドレスを生成する手段と、第1のデータを上記主アレイ
のメモリ・ロケーションに読出しまたは書込みする手段
と、上記中央処理ユニットにより、上記非マップ化冗長
アレイをアクセスする信号を生成する手段と、上記第1
のデータを置換することなく、第2のデータを上記冗長
非マップ化アレイに読出しまたは書込みする手段と、を
含むシステム。
【0048】
【発明の効果】以上説明したように、本発明によれば、
データ処理システムにおいてキャッシュ・ライン再ロー
ドをプリエンプトし、選択的にメモリをアクセスするこ
とにより、要求されるキャッシュ・ライン再ロードの回
数を最小化し、システム・スループットを向上すること
が可能となる。
【図面の簡単な説明】
【図1】データ処理キャッシュ及びその制御システムを
示す図である。
【図2】キャッシュの全体的アレイ・ブロック及び制御
インタフェースを示す図である。
【図3】1つの追加冗長非マップ化行に対するアレイ・
ブロックのアレイ制御論理を示す図である。
【図4】2つの追加冗長非マップ化行に対するアレイ・
ブロックのアレイ制御論理を示す図である。
【図5】セット・アソシアティビティが使用される時の
複数ラインを有するアレイ行を示す図である。
【図6】1ウェイ・セット・アソシアティブ・キャッシ
ュ構成を示す図である。
【図7】Mウェイ・セット・アソシアティブ・キャッシ
ュ構成を示す図である。
【符号の説明】
9 CPU 10 主アレイ 11 高速メモリ・キャッシュ 12 アドレス・ライン 13 主メモリ 14 冗長行 16 追加行信号 18 アレイ制御論理 20 アレイ・アドレス・デコーダ 22 アレイ・インタフェース
フロントページの続き (72)発明者 ジョージ・マリア・ブラセラス アメリカ合衆国05446、バーモント州コ ルチェスター、キャニオン・エステー ト・ドライブ 12 (72)発明者 ローレンス・カーレイ・ハウエル、ジュ ニア アメリカ合衆国78727、テキサス州オー スティン、ノースフィールド・ロード 3903 (56)参考文献 特開 昭60−15758(JP,A) 特開 平3−30036(JP,A)

Claims (13)

    (57)【特許請求の範囲】
  1. 【請求項1】複数のキャッシュ・ラインと、1または複
    数のマップされていない冗長キャッシュ・ラインとを含
    むキャッシュと、 上記キャッシュに、上記複数のキャッシュ・ラインまた
    は上記冗長キャッシュ・ラインの1つをアクセスするこ
    とを信号で知らせる手段と、 を含むキャッシュ・メモリ・システム。
  2. 【請求項2】主アレイ及び冗長アレイを有するキャッシ
    ュ・メモリ・システムであって、該冗長アレイがマップ
    化及び非マップ化キャッシュ・ラインを含むものにおい
    て、 上記主アレイをアクセスする第1のアクセス手段と、 上記マップ化キャッシュ・ラインをアクセスする第2の
    アクセス手段と、 上記非マップ化キャッシュ・ラインをアクセスする第3
    のアクセス手段と、 を含むキャッシュ・メモリ・システム。
  3. 【請求項3】上記マップ化キャッシュ・ラインが上記主
    アレイに対する論理上書きである、請求項2記載のキャ
    ッシュ・メモリ・システム。
  4. 【請求項4】上記非マップ化キャッシュ・ラインが上記
    主アレイの論理拡張である、請求項2記載のキャッシュ
    ・メモリ・システム。
  5. 【請求項5】主アレイ及び冗長アレイを有するキャッシ
    ュ・メモリをアクセスする方法であって、該主アレイが
    少なくとも1つの主キャッシュ・ラインを有し、該冗長
    アレイが少なくとも1つの冗長非マップ化キャッシュ・
    ラインを有するものにおいて、 上記主アレイのメモリ・ロケーションのアドレスを生成
    するステップと、 上記アドレスに対応するキャッシュ・ラインをアクセス
    するステップと、 上記冗長アレイをアクセスする信号を生成するステップ
    と、 上記冗長アレイ内の冗長非マップ化キャッシュ・ライン
    をアクセスするステップと、 を含む方法。
  6. 【請求項6】主アレイ及び冗長アレイを有するキャッシ
    ュ・メモリをアクセスする方法であって、該主アレイ及
    び該冗長アレイが複数のメモリ・ロケーションを有する
    ものにおいて、 上記主アレイのメモリ・ロケーションのアドレスを生成
    するステップと、 第1のデータを上記主アレイの複数のメモリ・ロケーシ
    ョンの少なくとも1つに読出しまたは書込みするステッ
    プと、 上記冗長アレイをアクセスする信号を生成するステップ
    と、 上記第1のデータを置換することなく、第2のデータを
    上記冗長アレイに読出しまたは書込みするステップと、 を含む方法。
  7. 【請求項7】主アレイ及び少なくとも1つの冗長非マッ
    プ化キャッシュ・ラインを有するキャッシュ・メモリを
    アクセスする方法であって、該主アレイが複数のメモリ
    ・ロケーションを有するものにおいて、 上記少なくとも1つの冗長非マップ化キャッシュ・ライ
    ンをアクセスする信号を生成するステップと、 上記複数のメモリ・ロケーションの内容を変更すること
    なく、上記少なくとも1つの冗長非マップ化キャッシュ
    ・ラインをアクセスするステップと、 を含む方法。
  8. 【請求項8】主アレイ及び冗長アレイを有するキャッシ
    ュ・メモリをアクセスする方法であって、該主アレイが
    少なくとも1つの主キャッシュ・ラインを有し、該冗長
    アレイが少なくとも1つの冗長キャッシュ・ラインを有
    するものにおいて、 上記冗長アレイをアクセスする信号を生成するステップ
    と、 上記主アレイ内の上記少なくとも1つの主キャッシュ・
    ラインを置換することなく、上記冗長アレイ内の冗長キ
    ャッシュ・ラインをアクセスするステップと、 を含む方法。
  9. 【請求項9】主アレイ及び冗長アレイを有するキャッシ
    ュ・メモリをアクセスするシステムであって、該主アレ
    イが少なくとも1つの主キャッシュ・ラインを有し、該
    冗長アレイが少なくとも1つの冗長キャッシュ・ライン
    を有するものにおいて、 上記主アレイのメモリ・ロケーションのアドレスを生成
    する手段と、 上記アドレスに対応するキャッシュ・ラインをアクセス
    する手段と、 上記冗長アレイをアクセスする信号を生成する手段と、 上記主アレイ内の上記少なくとも1つの主キャッシュ・
    ラインを置換することなく、上記冗長アレイ内の冗長キ
    ャッシュ・ラインをアクセスする手段と、 を含むシステム。
  10. 【請求項10】主アレイ及び冗長アレイを有するキャッ
    シュ・メモリをアクセスするシステムであって、該主ア
    レイ及び該冗長アレイが複数のメモリ・ロケーションを
    有するものにおいて、 上記主アレイのメモリ・ロケーションのアドレスを生成
    する手段と、 第1のデータを該主アレイの該メモリ・ロケーションの
    少なくとも1つに読出しまたは書込みする手段と、 上記冗長アレイをアクセスする信号を生成する手段と、 上記第1のデータを置換することなく、第2のデータを
    上記冗長アレイに読出しまたは書込みする手段と、 を含むシステム。
  11. 【請求項11】主アレイ及び少なくとも1つの冗長非マ
    ップ化キャッシュ・ラインを有するキャッシュ・メモリ
    をアクセスするシステムであって、該主アレイが複数の
    メモリ・ロケーションを有するものにおいて、 上記少なくとも1つの冗長非マップ化キャッシュ・ライ
    ンをアクセスする信号を生成する手段と、 上記複数のメモリ・ロケーションの内容を変更すること
    なく、上記少なくとも1つの冗長非マップ化キャッシュ
    ・ラインをアクセスする手段と、 を含むシステム。
  12. 【請求項12】主アレイ及び冗長アレイを有するキャッ
    シュ・メモリをアクセスするシステムであって、該主ア
    レイが少なくとも1つの主キャッシュ・ラインを有し、
    該冗長アレイが少なくとも1つの冗長キャッシュ・ライ
    ンを有するものにおいて、 上記冗長アレイをアクセスする信号を生成する手段と、 上記主アレイ内の上記少なくとも1つの主キャッシュ・
    ラインを置換することなく、上記冗長アレイ内の冗長キ
    ャッシュ・ラインをアクセスする手段と、 を含むシステム。
  13. 【請求項13】主アレイ及び非マップ化冗長アレイを有
    するキャッシュ・メモリをアクセスするシステムであっ
    て、該主アレイ及び該冗長アレイが複数のメモリ・ロケ
    ーションを有するものにおいて、 上記キャッシュ・メモリに接続される中央処理ユニット
    と、 上記キャッシュ・メモリに接続される主メモリと、 上記中央処理ユニットにより、上記主メモリのメモリ・
    ロケーションのアドレスを生成する手段と、 第1のデータを上記主アレイのメモリ・ロケーションに
    読出しまたは書込みする手段と、 上記中央処理ユニットにより、上記非マップ化冗長アレ
    イをアクセスする信号を生成する手段と、 上記第1のデータを置換することなく、第2のデータを
    上記非マップ化冗長アレイに読出しまたは書込みする手
    段と、 を含むシステム。
JP09029994A 1993-06-01 1994-04-27 キャッシュ・メモリ・システム並びにキャッシュ・メモリ・アクセス方法及びシステム Expired - Fee Related JP3181001B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US7116893A 1993-06-01 1993-06-01
US071168 1993-06-01

Publications (2)

Publication Number Publication Date
JPH06348596A JPH06348596A (ja) 1994-12-22
JP3181001B2 true JP3181001B2 (ja) 2001-07-03

Family

ID=22099704

Family Applications (1)

Application Number Title Priority Date Filing Date
JP09029994A Expired - Fee Related JP3181001B2 (ja) 1993-06-01 1994-04-27 キャッシュ・メモリ・システム並びにキャッシュ・メモリ・アクセス方法及びシステム

Country Status (2)

Country Link
US (1) US6754791B1 (ja)
JP (1) JP3181001B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3457611B2 (ja) * 2000-02-16 2003-10-20 日本電気株式会社 半導体記憶装置
US8356145B2 (en) * 2010-01-15 2013-01-15 Qualcomm Incorporated Multi-stage multiplexing operation including combined selection and data alignment or data replication
US9824030B2 (en) 2015-10-30 2017-11-21 International Business Machines Corporation Adjusting active cache size based on cache usage
US10540295B2 (en) * 2017-06-21 2020-01-21 International Business Machines Corporation Processing cache miss rates to determine memory space to add to an active cache to reduce a cache miss rate for the active cache

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4197580A (en) * 1978-06-08 1980-04-08 Bell Telephone Laboratories, Incorporated Data processing system including a cache memory
JPS6015758A (ja) * 1983-07-06 1985-01-26 Mitsubishi Electric Corp バツフア記憶装置
US4637024A (en) * 1984-11-02 1987-01-13 International Business Machines Corporation Redundant page identification for a catalogued memory
US4751656A (en) * 1986-03-10 1988-06-14 International Business Machines Corporation Method for choosing replacement lines in a two dimensionally redundant array
US5070502A (en) * 1989-06-23 1991-12-03 Digital Equipment Corporation Defect tolerant set associative cache
JPH0330036A (ja) * 1989-06-28 1991-02-08 Hitachi Ltd 半導体記憶装置
US5297094A (en) * 1991-07-17 1994-03-22 Sgs-Thomson Microelectronics, Inc. Integrated circuit memory device with redundant rows
US5367655A (en) * 1991-12-23 1994-11-22 Motorola, Inc. Memory and associated method including an operating mode for simultaneously selecting multiple rows of cells
US5341381A (en) * 1992-01-21 1994-08-23 Tandem Computers, Incorporated Redundant array parity caching system
US5301153A (en) * 1992-06-03 1994-04-05 Mips Computer Systems, Inc. Redundant element substitution apparatus
US5497347A (en) * 1994-06-21 1996-03-05 Motorola Inc. BICMOS cache TAG comparator having redundancy and separate read an compare paths

Also Published As

Publication number Publication date
JPH06348596A (ja) 1994-12-22
US6754791B1 (en) 2004-06-22

Similar Documents

Publication Publication Date Title
US5091851A (en) Fast multiple-word accesses from a multi-way set-associative cache memory
JP2554449B2 (ja) キャッシュ・メモリを有するデータ処理システム
US5640534A (en) Method and system for concurrent access in a data cache array utilizing multiple match line selection paths
KR100423276B1 (ko) 명령어인출방법및장치
US7493446B2 (en) System and method for completing full updates to entire cache lines stores with address-only bus operations
US7237067B2 (en) Managing a multi-way associative cache
US5668972A (en) Method and system for efficient miss sequence cache line allocation utilizing an allocation control cell state to enable a selected match line
JPH06243039A (ja) キャッシュメモリシステムおよびマイクロプロセッサ内の命令を操作するための方法
JPH0364893B2 (ja)
JPS624745B2 (ja)
US6826652B1 (en) Smart cache
CN109416656B (zh) 混合存储器模块
US6438672B1 (en) Memory aliasing method and apparatus
US20040215900A1 (en) System and method for reducing contention in a multi-sectored cache
EP0803818B1 (en) Single-cycle multi-accessible interleaved cache
EP0533427B1 (en) Computer memory control system
EP1111511B1 (en) Cache with multiple fill modes
US6202128B1 (en) Method and system for pre-fetch cache interrogation using snoop port
EP0470739B1 (en) Method for managing a cache memory system
US7219197B2 (en) Cache memory, processor and cache control method
US5287512A (en) Computer memory system and method for cleaning data elements
EP0706132A2 (en) Method and system for miss sequence handling in a data cache array having multiple content addressable fields per cache line
JP3181001B2 (ja) キャッシュ・メモリ・システム並びにキャッシュ・メモリ・アクセス方法及びシステム
JPH06202951A (ja) キャッシュ・メモリ・システム
JPH044617B2 (ja)

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees