JPH06231044A - キャッシュ・メモリを有するデータ処理システム - Google Patents

キャッシュ・メモリを有するデータ処理システム

Info

Publication number
JPH06231044A
JPH06231044A JP5312984A JP31298493A JPH06231044A JP H06231044 A JPH06231044 A JP H06231044A JP 5312984 A JP5312984 A JP 5312984A JP 31298493 A JP31298493 A JP 31298493A JP H06231044 A JPH06231044 A JP H06231044A
Authority
JP
Japan
Prior art keywords
cache
memory
cache memory
data processing
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP5312984A
Other languages
English (en)
Other versions
JP2554449B2 (ja
Inventor
Stephen J Walsh
ステファン・ジェームズ・ウォルシュ
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 JPH06231044A publication Critical patent/JPH06231044A/ja
Application granted granted Critical
Publication of JP2554449B2 publication Critical patent/JP2554449B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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
    • 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/1016Performance improvement
    • G06F2212/1021Hit rate improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/502Control mechanisms for virtual memory, cache or TLB using adaptive policy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/601Reconfiguration of cache memory

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)

Abstract

(57)【要約】 (修正有) 【目的】 コンピュータ・システムの挙動に応答してキ
ャッシュの連想性(Associativity)の度合いを一時的
及び動的に増加する。 【構成】 主キャッシュ・メモリ中の特定の位置におけ
る頻繁な参照及びキャッシュ・ミスに応答して、1つ又
は複数のマイクロキャッシュがその位置に一時的に割り
当てられる。マイクロキャッシュが一時的に割り当てら
れると、該マイクロキャッシュが他の位置に割り当てら
れるまでその特定の位置のセット連想性が増加する。マ
イクロキャッシュは再割当て可能なので、必要な合計キ
ャッシュ・サイズ及びキャッシュの管理に必要な制御回
路の複雑さが低減される。所定の値を超えるとマイクロ
キャッシュが再割り当てされるというキャッシュ・ミス
しきい値が使用され、また、マイクロキャッシュは、ウ
ィンドウ・サイズという所定の回数のキャッシュ・アク
セスの間だけ特定の位置に割り当てられたままになる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はキャッシュ・メモリに関
し、より詳しくは、そのようなキャッシュの動的利用に
応じたそのようなキャッシュ・メモリの適応セット連想
性(associativity)に関する。
【0002】
【従来の技術】キャッシュ・メモリは、現代のディジタ
ル・コンピュータの中央演算処理装置(CPU)と主記
憶装置の間に、できるだけCPUの近くに配置された
(主記憶装置に比べ)小型の高速バッファ・メモリであ
る。キャッシュ・メモリは、主記憶装置の内容のうち、
CPUが現在使用中である、または使用すると予想され
る部分を複製し、一時的に保持する。キャッシュ・メモ
リの利点は、そのアクセス時間にある。キャッシュ・メ
モリのアクセス時間は一般に、主記憶装置のアクセス時
間よりもはるかに短く、たとえば5分の1ないし10分
の1である。キャッシュ・メモリを使用すると、関連す
るCPUが、命令やオペランドが取り出され、または記
憶されるのを待つ時間を大幅に短縮することができ、実
効メモリ・アクセス時間がかなり短くなるので、処理効
率が向上する。
【0003】たとえば、コンピュータ主記憶装置から命
令またはデータにアクセスするとき、これらの命令やデ
ータは近い将来に再び必要となる可能性が高いことが分
かっている。このように再使用の確率が高いことを利用
するために、アクセスされた命令やデータを、主記憶装
置からよりもはるかに高速にアクセスできるローカルの
高速キャッシュに記憶する。キャッシュ・メモリを使用
することにより、全体的なアクセス時間が、主記憶装置
の速度よりもキャッシュ・メモリの速度に近くなる。
【0004】CPUによって命令またはデータのアクセ
スが要求されるたびに、要求された項目がキャッシュ・
メモリにあるかどうかキャッシュ・メモリが検査され
る。キャッシュ・メモリにある場合はキャッシュ「ヒッ
ト(hit)」と呼ばれ、その項目がキャッシュ・メモリ
から取り出される。その項目がキャッシュ・メモリにな
い場合は、キャッシュ「ミス(miss)」と呼ばれ、その
項目を主記憶装置から取り出す必要がある。アクセスさ
れる命令またはデータを「ターゲット(target)」と呼
ぶ。キャッシュの有効性は、主としてヒット率、すなわ
ちヒットを生成するターゲットの割合によって測定する
が、キャッシュ・メモリのもう一つの重要なパラメータ
は、ヒットが発生したときにターゲットにアクセスする
のに必要な平均時間である。
【0005】キャッシュ・ヒットの数を増すために、キ
ャッシュ・サイズを増し、キャッシュ中の利用可能な項
目の数を増やして、ヒットの可能性を上げる方法が知ら
れている。しかし、残念なことに、キャッシュを大きく
すればするほど、キャッシュ自体のアドレス指定が複雑
になり、そのため平均キャッシュ・メモリ・アクセス時
間が長くなる。また、キャッシュを大きくするとコスト
がかさみ、より多くのチップ面積、電力、および冷却が
必要になる。
【0006】キャッシュ・メモリのヒット率を上げるた
めの最も簡単な技法は、多数の主記憶装置位置を1つの
キャッシュ位置だけにマップする、直接マップ式(dire
ct mapped)キャッシュである。ヒット率を上げるため
のもう一つのキャッシュ技法は、セット連想式(set as
sociative)キャッシュである。この場合は、主記憶装
置中の多数の位置が、キャッシュ中の少数の位置にマッ
プされる。1連想セット当たりの情報要素の数(すなわ
ちウェイ数)を増やすと、一般にヒット率が上がる。し
かし、そのように連想性(associativity)を増すと、
アクセス遅延が発生し、さらに、必要なチップ面積の量
および設計の複雑さのためにコストがかさむ。現代の単
一チップ中央演算処理装置では、そのようなキャッシュ
・メモリおよびキャッシュ制御回路用の空間の量が限ら
れている。一般に、ヒット率の高い大形キャッシュの効
果を高めるには、低い連想性に伴う短いアクセス時間が
必要であるが、ヒット率の低い小形キャッシュの場合は
連想性のレベルが高い方が有利である。
【0007】キャッシュ・メモリの価値は、コンピュー
タ・メモリ・アクセスの「局在性」特性に依存する。そ
のような局在性は空間的であると共に時間的でもある。
すなわち、コンピュータ・プログラムは一般に、短時間
の間に、メモリ・アドレス空間上に参照されるメモリを
不均一に分散し、そのような参照されるメモリをアドレ
ス空間中の比較的小さな場所に集中させる。また、参照
されるメモリは長時間大体同じままとなる傾向がある。
空間的局在性は、データが連続した配列になり、命令が
連続した位置にくる傾向から生じる。時間的局在性は、
データおよび命令を、たとえばループとして再使用する
傾向から生じる。
【0008】
【発明が解決しようとする課題】したがって、大きな問
題は、コンピュータ中央演算処理装置に使用するうキャ
ッシュ・メモリ、あるいはそのようなキャッシュ・メモ
リの制御に必要な論理回路を収納するための余分な空間
を必要とせずに、キャッシュ・メモリのヒット率を上げ
ることである。具体的には、キャッシュが複雑になった
り、大きなキャッシュ・チップ面積が必要になるとい
う、通常付随するどんな欠点も被らずに、キャッシュ・
バッファ中の連想性の度合の向上という利点を達成する
ことが望ましい。
【0009】
【課題を解決するための手段】本発明の実施例によれ
ば、キャッシュのウェイ数の度合が最適になる。すなわ
ち、キャッシュ性能に基づきキャッシュの設定サイズを
動的に修正することによって、キャッシュのウェイ数
が、一時的に増大する。具体的には、特定のキャッシュ
位置が頻繁にアクセスされ、数回にわたってミスが発生
する場合、そのキャッシュ位置のウェイ数の動的増加を
使用して、キャッシュのヒット率を上げる。ウェイ数が
増大すると、キャッシュのヒット率は向上するが、単一
または少数の補助キャッシュが再割当て可能なので、連
想キャッシュのサイズおよび複雑さは最小限に抑えられ
る。
【0010】さらに詳細に言うと、主キャッシュ・メモ
リ中の位置に一時的および動的に割り当てることができ
る1つまたは複数の小型の補助マイクロキャッシュ(mi
crocache)を設け、それによって、そのキャッシュ位置
のウェイ数を増大させる。そのキャッシュ位置のウェイ
数が増すと、キャッシュのサイズやキャッシュを管理す
るのに必要な制御回路を過度に増やさずに、キャッシュ
全体のヒット率が上がる。
【0011】本発明の一態様によれば、主キャッシュ位
置において、事前に選択されたミスしきい値を上回る十
分な数のミスが発生して始めて、マイクロキャッシュが
その位置に割り当てられる。ミスしきい値を使用するこ
とにより、マイクロキャッシュが、最もよく働く、すな
わち大部分のミスがなくなるキャッシュ位置に割り当て
られる。
【0012】本発明のもう一つの態様によれば、マイク
ロキャッシュは、「ウィンドウ・サイズ」と呼ばれる、
事前に選択されたキャッシュ・アクセスの数に対応する
限られた期間の間だけ、特定の主キャッシュ位置に接続
される。ウィンドウ・サイズを制限すると、キャッシュ
動作全体にとって不都合な、1つのキャッシュ位置によ
るマイクロキャッシュの独占がなくなる。ウィンドウ・
サイズに達すると、マイクロキャッシュは解放され、ミ
スしきい値を超えた他の主キャッシュ位置に自由に割り
当てることができるようになる。
【0013】本発明のもう一つの態様によれば、キャッ
シュ・ミスが発生したときに置き換えられるキャッシュ
位置は、最も長い間アクセスされていないキャッシュ位
置が選択されるようにするLRU(Least Recently Use
d)アルゴリズムによって決定される。そのようなLR
Uアルゴリズムにより、重ね書きされる情報が、将来ア
クセスされる可能性が非常に低い情報となることが保証
される。
【0014】
【実施例】図1に、キャッシュ・メモリを使用してコン
ピュータの主記憶装置への平均アクセス時間を短縮する
従来技術のコンピュータ・アーキテクチャの全体的ブロ
ック図を示す。図1のキャッシュ・メモリは、(中央演
算処理装置(CPU)に対して)ローカルな主キャッシ
ュ・メモリ11、タグ/状況記憶回路10、およびキャ
ッシュ制御装置12を備えている。これらの要素10〜
12は、アドレス・バス15、データ・バス16、およ
び制御バス17という3種類のバスによって相互接続さ
れている。これら3種類のバス15〜17は汎用アクセ
ス・バスであり、要素10〜12をCPU(図示せず)
およびコンピュータ・システムの入出力回路13に接続
するのにも使用される。入出力回路13は、バス15〜
17をコンピュータの主記憶装置14に接続している。
【0015】主キャッシュ・メモリ11は、中央演算処
理装置(CPU)の近くに配置された(主記憶装置14
に比べて)小型の高速メモリである。キャッシュ・メモ
リの利点は、局在性の原理に基づいている。すなわち、
最近主記憶装置14からアクセスされたデータまたは命
令は、他の位置にあるデータまたは命令よりも近い将来
に再びアクセスされる可能性が高い。局在性の原理は、
データおよび命令がしばしば再使用されることに基づく
ものである。小型で高速の主キャッシュ・メモリ11
に、最近アクセスされた情報を格納することにより、こ
れよりも低速の主記憶装置14をキャッシュ・メモリ1
1とほぼ同じ速度をもつように見せることができる。
【0016】キャッシュ制御装置12は、タグ/状況記
憶回路10および主キャッシュ・メモリ11を管理し、
キャッシュ内容置換アルゴリズムを実施する責任を負っ
ている。タグ/状況記憶回路10は、タグと状況ビット
を含む。タグは、主記憶装置14に記憶された、主キャ
ッシュ・メモリ11中のデータまたは命令の実アドレス
の最上位部分の数字である。このタグは、CPUが要求
している情報が主キャッシュ・メモリ11中にすでにあ
るかどうかを制御装置12が判定するために使用され
る。タグ/状況記憶回路10の状況ビットは、使用する
置換アルゴリズムと、ライトスルー方式とライトバック
方式のどちらを使用するかに応じて、複数の目的を有す
る。主キャッシュ・メモリ11は記憶域のブロックで編
成され、通常ブロックはワードで編成される。ブロック
中のワードの数は通常、2進アドレス指定を容易にする
ために2の累乗になっている。
【0017】「直接マップ式」キャッシュ・アーキテク
チャおよび「連想式」キャッシュ・アーキテクチャとい
う2種類の一般的なキャッシュ動作がある。直接マップ
式キャッシュでは、主記憶装置14用のアドレスが、主
キャッシュ・メモリ11に、1対1の関係で直接マップ
される。例を示すとこれがよく理解されよう。直接マッ
プ式キャッシュについて、主記憶装置14が32ビット
(ビット1〜32)のアドレス幅を有し、4ギガバイト
のバイト・アドレス可能主記憶装置が使用可能であると
仮定する。また、主記憶装置14中のデータまたは命令
ワードが32ビットの幅を有し、主記憶装置14が、ブ
ロック・サイズが4ワードのブロックに分割されるもの
と仮定する。この場合、主記憶装置14用のアドレスを
次のようにキャッシュ・メモリ11にマップすることが
できる。4つの最下位アドレス・ビット(ビット1〜
4)を使用して、主記憶装置14中の各4ワード・ブロ
ックの16バイトからの選択と、主キャッシュ・メモリ
11中の各4ワード・ブロックの対応する16バイトか
らの選択を行うことができる。次の4つの最下位アドレ
ス・ビット(ビット5〜8)を使用して、主記憶装置1
4および主キャッシュ・メモリ11中の16個の4ワー
ド・ブロックのうちの1つを選択することができる。こ
の場合、主キャッシュ・メモリ11は16個の16バイ
ト・ブロックの配列を含む(32ビット×32=102
4ビット=1キロビット(1KB))。主記憶アドレス
の残りの24ビットは、タグを構成し、タグ/状況記憶
回路10のタグ部分に記憶される。主キャッシュ・メモ
リ11中の4ワード記憶域の16個のブロックは、それ
ぞれ関連する24ビットのタグを有する。このタグに
は、主キャッシュ・メモリ11から実データまたは命令
にアクセスするために使用されるのと同じ4ビットのブ
ロック・アドレスによってタグ/状況記憶回路10から
アクセスすることができる。このタグをブロック・アド
レスと共に使用して、要求された主記憶装置14の内容
が主キャッシュ・メモリ11にすでに存在しているかど
うかを判定する。タグ/状況記憶回路10の状況ビット
を使用して、たとえば、主キャッシュ・メモリ11の対
応するアドレスに記憶されたデータが有効であることを
示すことができる。このような状況ビットには、たとえ
ば、単純なパリティ・ビットやエラー検査コードがあ
る。以下に説明するように、他の種類の状況情報も可能
である。
【0018】図1のキャッシュ・メモリ構成は、次のよ
うに動作する。中央演算処理装置(CPU)がアドレス
・バス15上に所望の情報のアドレスを入力すると、キ
ャッシュ制御装置12はアドレスからブロック・アドレ
ス・ビット(ビット5〜8)を抽出し、このブロック・
アドレスを使用してタグ/状況記憶回路10中の関連す
るタグにアクセスする。このタグがアドレス・バス15
上のアドレスの最上位24ビットと一致する場合、キャ
ッシュ「ヒット」が発生して、アドレス・バス15上の
アドレスの最下位4ビット(ビット1〜4)から成るバ
イト・アドレスから始まる主キャッシュ・メモリ11中
のワードが主キャッシュ・メモリ11から読み取られ、
データ・バス16を介してCPUに転送される。記憶さ
れているタグがアドレス・バス15上のアドレスの最上
位24ビットに一致しない場合、キャッシュ「ミス」が
発生しており、キャッシュ制御装置12は、主記憶装置
14に、アドレスされた情報を要求する。すると、この
情報は、アドレス・バス15上のアドレスのブロック・
アドレス部分によって識別される高速キャッシュ・メモ
リ11のブロックに入力され、前にそこにあった情報と
置き換わる。このメモリ・アドレスのブロック・アドレ
ス部分をセット(set)IDと呼ぶ。したがって、セッ
トIDは、主記憶装置14中および主キャッシュ・メモ
リ11中の情報のブロック位置を識別する。キャッシュ
・メモリ・アドレスが主記憶アドレスに1対1でマッピ
ングされるこの構成を、直接マップ式と呼ぶ。
【0019】主キャッシュ・メモリ11のもう一つの構
成方法は、各セットIDごとに複数の記憶位置ブロック
を提供することである。この後者の種類の構成をセット
連想式と呼ぶ。すなわち、各セットIDに2つのタグ
(ブロック)が関連している場合、この構成を2重セッ
ト連想式キャッシュと呼び、各セットIDに4つのタグ
(ブロック)が関連している場合、この構成を4重セッ
ト連想式キャッシュと呼び、以下同様である。主キャッ
シュ・メモリ11のすべてのタグが1つのセットIDと
関連している場合、この構成は完全連想式キャッシュと
呼ぶことになる。直接マップ式と2重セット連想式は、
今日使用されている最も一般的な構成であるが、これら
よりも高次の連想性も使用されている。
【0020】直接マップ式キャッシュ・アーキテクチャ
の利点は、制御機構が単純であること、および主キャッ
シュ・メモリ11のサイズが小さいことである。直接マ
ップ式キャッシュの主な欠点は、このようにキャッシュ
・サイズが小さいためにミス率が高くなることである。
一方、セット連想式アーキテクチャはヒット率が高い
が、キャッシュの複雑さが増し、キャッシュ・メモリの
物理サイズが大きくなる。さらに、ウェイ数が大きくな
ればなるほど、必要な制御論理機構が増大する。制御論
理機構が増大すると、メモリへのアクセスに要する時間
が増し、そのため全体的な性能に悪影響が及ぶ。したが
って効率の得失は、ウェイ数の高さと関連がある。本発
明は、直接マップ式キャッシュの単純さと、セット連想
式キャッシュの改善された性能を併せもつキャッシュ・
アーキテクチャを提供しようと試みるものである。この
新しいキャッシュ・アーキテクチャを適応セット連想式
キャッシュ・アーキテクチャと呼び、図2に関して説明
する。
【0021】図2に、本発明による適応セット連想性を
備えたキャッシュ・メモリ構成の全体的ブロック図を示
す。図2では、図1と同様に、キャッシュ・メモリはタ
グ/状況記憶回路10、主キャッシュ・メモリ11、お
よびキャッシュ制御装置12を備えている。やはり、図
1と同様に、これらの要素10〜12がアドレス・バス
15、データ・バス16、および制御バス17によって
相互接続されている。バス15〜17はまた、キャッシ
ュ・メモリ10〜12を、システム入出力回路13を介
して主記憶装置14に接続し、かつ中央演算処理装置
(図示せず)に接続している。図2の適応セット連想式
キャッシュ・システムに含まれるが、図1の従来の技術
のアーキテクチャにはないのが、動的に割当て可能なマ
イクロキャッシュ18である。
【0022】図2の適応セット連想式アーキテクチャ
は、キャッシュの性能に基づいてセット・サイズを動的
に修正することができる。すなわち、特定のキャッシュ
・タグが頻繁にアクセスされ、それにミスが数回発生し
た場合、ウェイ数が動的に増加する。このウェイ数の増
加は、キャッシュ・タグにミスが発生する場合に限って
起こり、この増加によってそのキャッシュ・タグのヒッ
ト率が向上する。このようなウェイ数の増加は、マイク
ロキャッシュ18を、タグ/状況記憶回路10および主
キャッシュ・メモリ11中の1つのセットID位置に動
的かつ一時的に接続することによって実現される。マイ
クロキャッシュ18は非常に小型のキャッシュであり、
高速キャッシュ・メモリ11の任意のセットID位置に
論理的に接続することができ、それによって、そのセッ
トIDのセット・サイズを大きくすることができる。
【0023】本発明の適応セット連想式アーキテクチャ
についてさらに詳細に説明する前に、そのような適応セ
ット連想式アーキテクチャの実施態様で有用ないくつか
の概念を定義しておく。図2のキャッシュ制御装置12
は、動作時に、すべてのセットIDに対するミスの数を
監視して、そのようなセットIDのうちで、事前に選択
された「ミスしきい値」に達したものがあるかどうか調
べる。ミスしきい値を超えた場合にかぎって、該しきい
値に達したセットIDのうちで最近にアクセスされたも
のにマイクロキャッシュ18が割り当てられる。それば
かりでなく、複数のマイクロキャッシュ18を提供し、
以降にミスしきい値に達する他のセットIDにもそのよ
うなマイクロキャッシュを割り当てることも可能であ
る。そのような複数マイクロキャッシュ構成の実施態様
は、当業者には以下の説明から明らかなので、以下では
単一マイクロキャッシュの実施例だけについて説明す
る。
【0024】図2のマイクロキャッシュ18は、限定ら
れた時間の間だけ特定のセットIDに接続されており、
したがって他のセットIDもウェイ数の増加の効果を得
ることができる。この目的のために、マイクロキャッシ
ュ18は、事前に選択された回数のキャッシュ・アクセ
スの間だけ特定のセットIDに接続されている。この数
を「ウィンドウ・サイズ」と呼び、適応セット連想性の
効果が最適になるように選択される。ウィンドウ・サイ
ズ値に達すると、マイクロキャッシュ18が解放され、
ミスしきい値に達した他のセットIDに対する割当てに
使用できるようになる。
【0025】適応セット連想システムでキャッシュ・ミ
スが発生した場合、キャッシュ・ミスが発生したセット
IDと関連する多数のタグのうちのどれを、図2の主記
憶装置14から取り出された新しい情報で重ね書きする
か決定する必要がある。置換セットIDを決定するため
の1つのアルゴリズムは、「LRU」アルゴリズムであ
る。このアルゴリズムでは、1つまたは複数の状況ビッ
トをタグ/状況記憶回路10に保持し、共通のセットI
Dをもつタグのアクセスされた順序を追跡する。そのセ
ットIDに関して最も以前にアクセスされたタグ(LR
Uタグ)が置換すべく選択される。この戦略により、置
き換えられるタグは、将来にアクセスされる可能性が低
いタグとなる。
【0026】図3に、本発明による適応セット連想式ア
ーキテクチャのさらに詳細なブロック図を示す。図3
で、タグ/状況記憶回路10は図2のタグ/状況記憶回
路10に対応し、主キャッシュ・メモリ11は図2の主
キャッシュ・メモリ11に対応する。セットID内容ア
ドレス可能メモリ68(CAM 68)およびタグ内容
アドレス可能メモリ69(CAM 69)が、図2のマ
イクロキャッシュ18の一部を構成している。キャッシ
ュ制御装置12は図2のキャッシュ制御装置12に対応
し、復号/制御論理回路66は記憶回路10および11
にアクセスするのに必要な制御回路を提供する。
【0027】図3のタグ/状況記憶回路10は、記憶域
を備え、その中でビット62がミス・カウント用に予約
される。これらのビットは、マイクロキャッシュ18
(図2)が前回割り当てられて以降のキャッシュ・ミス
の数が各タグごとにタグ/状況記憶回路10中で累積さ
れていることを示す。このミス・カウントが、事前に選
択されたミス・カウントしきい値を上回らないと、マイ
クロキャッシュの割当てに関してセットIDが考慮され
ない。一例として、9つのミス・カウント・ビットを使
用すると512までの最大ミス・カウントが可能にな
る。ただし、ミス・カウントしきい値は最大値より小さ
などんな値にすることもできる。特定のセットIDのミ
ス・カウント・ビット62は、そのセットIDにマイク
ロキャッシュが割り当てられるたびに、ゼロにリセット
される。これによって、他のセットIDは、前回に割り
当てられたセットIDとの競合なしに、マイクロキャッ
シュを取り合うことができ、1つのセットIDがマイク
ロキャッシュを独占することはなくなる。セットIDが
アクセスされるたびに、ミス・カウントの値が読み取ら
れ、MAXビット61およびMISS信号の値に応じて
1ずつ増分される。MAXビット61は、関連するセッ
トIDが、ミス・カウントしきい値を超えたために、マ
イクロキャッシュ割当ての候補になっていることを示
す。ミス・カウント・ビットと同様に、MAXビット6
1も、マイクロキャッシュが割り当てられるたびにゼロ
にリセットされる。MISS信号は、そのセットIDに
ついての現キャッシュ・ミスを示す。
【0028】タグ/状況記憶回路10もタグ・ビット6
3を含む。タグ・ビット63は、主記憶装置アドレス
の、ブロックセットIDおよびバイト・アドレスを表す
最下位ビットを除く部分を表す。タグ/状況記憶回路1
0の状況部分は、このセットIDに対応する主記憶装置
アドレスから回復されたデータが有効であることを示
す、データ有効ビット64を含む。これらのデータ有効
ビットは、単にパリティ・ビットではなく、またそれよ
りも複雑なエラー検出コードでもよい。LRUビット6
5は、マイクロキャッシュ18および主キャッシュ・メ
モリ11中の対応するエントリが前回にアクセスされた
かどうかを示す。このビットは、置換アルゴリズムで、
キャッシュ・ミスが必要とする新しい情報をキャッシュ
のどこに重ね書きすべきかを決定する際に使用される。
【0029】復号/制御論理回路66は、端子74に接
続された制御バスからの読取りコマンドおよび書込みコ
マンドと、端子73に接続されたアドレス・バスからの
アドレスを、タグ/状況記憶回路10および主キャッシ
ュ・メモリ11にアクセスするのに必要な制御信号に変
換する。アドレスのセットID部分が、これらのメモリ
10および11の各々へのインデックスとして使用され
ることに留意されたい。復号/制御論理回路66は、端
子73のアドレスからセットIDビットを選択し、これ
らのセットIDビットを使用してメモリ10および11
の対応するエントリを検索する(または書き込む)。タ
グ/状況記憶回路10のエントリはそのセットIDに対
応するタグ/状況情報である。一方、高速キャッシュ・
メモリ11のエントリは、主記憶装置14から前に検索
された実データまたは命令、あるいは主記憶装置14か
ら取り出されたばかりのデータまたは命令および主キャ
ッシュ・メモリ11に記憶すべきデータまたは命令であ
る。
【0030】セットID CAM68は、マイクロキャ
ッシュが現在割り当てられている主キャッシュ・メモリ
11のエントリのセットIDを記憶する。タグ内容CA
M69は、セットID CAM68に記憶されているセ
ットIDに対応するデータまたは命令のブロックの各ワ
ードの現タグ値を含む。キャッシュ制御装置12は、図
3の構成要素のバランスを制御する制御回路を含む。
【0031】図4および5に、それぞれ図3のタグ/状
況記憶回路10および主キャッシュ・メモリ11に対応
するタグ/状況記憶回路10および主キャッシュ・メモ
リ11を備えた、本発明による適応セット連想式キャッ
シュ・メモリ・アーキテクチャの詳細な回路図を示す。
同様に、図4のセットID CAM68およびタグ内容
CAM69はそれぞれ、セットID CAM68および
タグ内容CAM69に対応する。CPUが制御バス17
上にCPUread信号を出力すると、この信号は図4
の端子30に現われて、メモリ・アクセス・サイクルを
開始する。同時に、CPUはアドレス・バス73上に主
記憶装置14(図2)のアドレスを置く。このアドレス
は、図4の端子55に現れる。セットID CAM68
は、このアドレスと、端子55におけるこのアドレスの
セットID部分を使用して、セットID CAM68に
照会し、このセットIDがセットID CAM68に記
憶されているかどうかを調べる。同時に、端子52にお
けるCread信号が、復号/制御論理回路66中で、
タグ/状況記憶回路10にアクセスするために使用され
る。端子55におけるアドレスのタグが、比較回路57
中で、タグ/状況記憶回路10にアクセスするためにア
ドレスのセットID部分を使用して、タグ/状況記憶回
路10中のアドレスされたタグと比較される。セットI
D CAM68で一致が発生すると、ヒット出力によっ
てタグ内容CAM69が使用可能になり、端子55にお
けるアドレスのタグ部分がタグ内容CAM69中のタグ
と比較される。別のヒットが発生すると、ANDゲート
29が部分的に使用可能になる。一方、比較回路57で
タグの一致が発生すると、Chit信号が印加され、A
NDゲート24が部分的に使用可能になる。ANDゲー
ト24および29は、それぞれORゲート44または4
3からのデータ有効信号によって完全に使用可能にな
る。
【0032】前述のように、セットIDおよびタグを使
用してキャッシュ・ヒットを確立する間に、タグ/状況
記憶回路10に記憶されたデータ有効ビットがセレクタ
41に印加される。同時に、端子55におけるアドレス
のバイト・アドレス部分が1−Nデコーダ45に印加さ
れる。すると、1−Nデコーダ45の出力が、タグ/状
況記憶回路10から適切なデータ有効ビットを選択し、
それらをORゲート44に印加するために、セレクタ4
1中で使用される。ORゲート44の出力は、ANDゲ
ート24へのもう一つの入力を形成する。同様に、マイ
クロキャッシュ・データ有効バッファ46は、マイクロ
キャッシュ18中のデータ用の同様なデータ有効ビット
を含む。デコーダ45の同じ出力がセレクタ42にも印
加される。セレクタ42には、マイクロキャッシュ・デ
ータ有効バッファ46中のデータ有効ビットが印加され
る。セレクタ42で選択されたデータ有効ビットはOR
ゲート43に印加される。データ有効ビットが"1"であ
る場合、Mval信号がANDゲート29に印加され
る。ANDゲート29が完全に使用可能になると、LR
Uフリップフロップ回路25がセットされ、LRUフリ
ップフロップ回路25のQ出力でLRU信号が生成され
る。このLRU信号は出力端子26に印加される。一
方、ANDゲート24が完全に使用可能になると、LR
Uフリップフロップ回路25がリセットされ、Q出力が
除去されて出力端子26のLRU信号が終了する。この
LRU信号は、タグ/状況記憶回路10(図3)中の"
LRU"ビット65の"LRU"キャッシュ位置としての
このタグのマーキングを変更するために使用される。す
なわち、このキャッシュ位置が以前にLRUキャッシュ
位置としてマークされていた場合、このLRUビット
は、この位置への最近のアクセスを反映するように変更
される。
【0033】マイクロキャッシュ・データ有効バッファ
46中のデータ有効ビットは、端子49(ロード)、端
子51(リセット)、および端子48(クリア)上の制
御信号に応答して端子47から導入される。これらのデ
ータ有効ビットは、タグ/状況記憶回路10に記憶され
たデータ有効ビットが作成されるのと同時に、同じ方法
で作成される。すなわち、主記憶装置14から回復され
たデータを分析してパリティが適切であるかどうかを判
定する。この判断はデータ有効(または無効)ビットに
変換され、そのビットがマイクロキャッシュ・データ有
効バッファ46またはタグ/状況記憶回路10に記憶さ
れる。
【0034】セットID CAM68およびタグ内容C
AM69中で有効データ・ビットが発生したことが、A
NDゲート29の出力によって示されると、ANDゲー
ト40が部分的に使用可能になる。ANDゲート40は
マイクロキャッシュ18からの"data ready"(Mrea
dy)信号によって完全に使用可能になり、"outputlat
ch enable"(OLE)信号がマイクロキャッシュ18に導
入され、それによって(端子55からの)このアドレス
に対応するデータがマイクロキャッシュ18からデータ
端子31上に読み込まれる。データ端子31では、この
データを、データ・バス16(図2)を介してCPUに
転送することができる。同様に、タグ/状況記憶回路1
0中で有効データ・ヒットが発生したことが、ANDゲ
ート24の出力によって示されると、ANDゲート56
は部分的に使用可能になる。ANDゲート56が高速キ
ャッシュ・メモリ11からのdata ready(Dread
y)信号によって完全に使用可能になり、output latch
enable信号が主キャッシュ・メモリ11に導入され、
それによって(端子52および復号/制御論理回路66
におけるCread信号を使用して、端子55からの)
このアドレスに対応するデータが、キャッシュ・メモリ
11からデータ端子31上に読み込まれ、そこから図2
のデータ・バス16を介してCPUに読み込まれる。し
たがって、主キャッシュ・メモリ11またはマイクロキ
ャッシュ18中で有効ヒットが発生すると、要求された
データ項目が、主キャッシュ・メモリ11とマイクロキ
ャッシュ18のいずれか適切な方からCPUに転送され
る。
【0035】比較回路57中でもCAM68および69
中でもヒットが発生しない場合、ANDゲート24およ
び29はどちらも使用可能にならない。この条件は、イ
ンバータ58および22によって検出され、"1"入力と
してANDゲート19に印加される。端子20に印加さ
れるANDゲート19の出力は、MISS信号であり、
要求されたターゲット情報がキャッシュ・メモリのどこ
にもなく、主記憶装置からアクセスする必要があること
を示す。したがって、主記憶アクセス・サイクルが開始
される。主記憶装置14は、アドレス・バス15(図
2)上のアドレスに応答して、アドレスされた情報ブロ
ックをデータ・バス16を介して転送する。図4では、
このデータは端子31に現われる。MISS信号が存在
し、主キャッシュ・メモリ11中でミスが発生したこと
を示すときに端子50にCwrite信号が存在する場
合、復号制御論理回路66によって、端子55における
アドレスの同じセットID部分の制御下でそのデータ自
体を主キャッシュ・メモリ11に書き込むことができ
る。
【0036】マイクロキャッシュ18に関してキャッシ
ュ・ミスが発生し、マイクロキャッシュ18がLRUデ
ータを含む場合、端子39におけるMwrite信号に
よって、端子55におけるアドレスのタグ部分をタグ内
容CAM69に書き込むことができる。同時に、Mwr
ite信号に応答して、端子31におけるデータまたは
命令がマイクロキャッシュ18に書き込まれる。
【0037】セットID CAM68が、端子30にお
けるCPUread信号または端子38におけるMre
ad信号に応答してORゲート28によって使用可能に
されることに留意されたい。すなわち、セットID C
AM68は、ターゲットについて新しいCPU開始プロ
ーブをテストするための読取り(CPU読取り)、また
はマイクロキャッシュ18からのデータの読取り(Mr
ead)に対して使用可能になる。セットID CAM
68への書込みは端子38におけるMread信号、端
子36におけるTimeup信号、および端子37にお
けるMAX信号の組合せによって使用可能になるAND
ゲート35の制御下で行われる。Timeup信号は、
ウィンドウ・カウントがウィンドウしきい値を上回った
ことを示す。MAX信号は、タグ/状況記憶回路10
(図3)中の、前回のプローブでミス・カウントを超え
たことを示すエントリの状況部分から取られる。
【0038】図5に、本発明の適応セット連想式キャッ
シュのウィンドウ処理およびミス・カウント部分の詳細
な回路図を示す。図5では、ミス・カウンタ83が、キ
ャッシュ・ミスの数、すなわちCPUがデータまたは命
令を要求し、そのデータまたは命令がキャッシュになか
った回数をカウントするために使用される。したがっ
て、このカウントは3入力ANDゲート82の出力によ
って増分される。ANDゲート82の1つの出力は端子
84におけるMAX信号であり、タグ/状況記憶回路1
0(図3)中のアドレスされた位置にMAXビット61
が存在していることを表す。MAXは、ANDゲート8
2に印加される前に反転されるので、ミスしきい値をす
でに超えている記憶位置についてミス・カウントを増加
することはできない。ANDゲート82へのもう一つの
入力は、端子85から取られ、図4の端子20から誘導
された主キャッシュ・メモリ11にもマイクロキャッシ
ュ18にもデータまたは命令が存在しないというCPU
メモリ・プローブを示すMISS信号を表す。ANDゲ
ート82への最後の入力は、D形フリップフロップ回路
81の"Q"出力から取られる。D形フリップフロップ回
路81は、端子91におけるクロック信号と、図2のキ
ャッシュ・メモリ11からのDready信号の組合せ
によってセット、リセットされる。ANDゲート82へ
のこの入力はタイミング信号であり、ミス・カウンタ8
3の増分がキャッシュ読取りサイクルの途中で行われる
ようにタイミングを取る。
【0039】キャッシュ・メモリ11中の各エントリが
それ自体のミス・カウントを維持する必要があるので、
タグ/状況記憶回路10から現ミス・カウントを取り出
し、それをミス・カウンタ83にロードし、ミス・カウ
ントの値を増分し、増分されたミス・カウントをタグ/
状況記憶回路10に返す必要がある。この目的のため
に、タグ/状況記憶回路10からのミス・カウントは端
子86上に現れ、ミス・カウンタ83の"DIN"端子に
ロードされる。ANDゲート82の出力によってカウン
トが増分された後、端子87におけるCread信号
が、増分されたカウントをミス・カウンタ83から読み
取って端子86上に提供する。ミス・カウントは、端子
86から、タグ/状況記憶回路10の適切な位置に返す
ことができる。ミス・カウンタ83中のカウントは、比
較機構101からのSetMAX信号によってゼロにセ
ットされ、ミス・カウントがミスしきい値を超えたこと
を示すことができる。
【0040】ミス・カウントしきい値レジスタ100は
ミス・カウントしきい値の値を記憶し、ウィンドウ・レ
ジスタ96は、マイクロキャッシュ18が特定のセット
IDに接続されている期間であるウィンドウ・サイズの
値を記憶する。大きな柔軟性を得るために、レジスタ9
6および100をそれぞれ、(ウィンドウ・レジスタ9
6をロードするために)端子104のLoadWR信号
または(しきい値レジスタをロードするために)端子1
06のLoadTR信号の制御下で、端子105におけ
るRegData信号によって任意の所望の値でロード
することができる。ウィンドウ・レジスタ96の値とし
きい値レジスタ100の値は、コンピュータ上で走行す
るアプリケーションの実メモリ参照パターンに大きく依
存するが、ウィンドウ・サイズとしては25、ミス・カ
ウントしきい値としては10が多数のアプリケーション
に適切であることが分かっている。
【0041】比較機構101は、ミス・カウントしきい
値レジスタ100中のミス・カウントしきい値を、現在
参照されているセットIDについてのミス・カウントに
対応する端子102におけるミス・カウントと比較す
る。ミス・カウントがミス・カウントしきい値を超えて
いる場合、比較機構101は、端子103でSetMA
X信号を生成する。この信号を使用して、図3のMAX
ビット61を設定することができる。前述のように、こ
のSetMAX信号はまた、ミス・カウンタ83のミス
・カウントの値をゼロにリセットするために使用され
る。その後に、ミス・カウントのゼロの値が、タグ/状
況記憶回路10に記憶するために返される。
【0042】マイクロキャッシュ18を前回再割り当て
した以降に発生したキャッシュ参照の数を追跡するため
にウィンドウ・カウンタ95が設けられている。この目
的のために、ORゲート97は端子99におけるCPU
読取り(CPUread)信号と端子98におけるCP
U書込み(CPUwrite)信号を組み合わせ、組み
合わされた信号をウィンドウ・カウンタ95の増分入力
に印加する。すなわち、CPUによってCPUread
信号またはCPUwrite信号が出力されると、ウィ
ンドウ・カウンタ95が増分され、ウィンドウ・カウン
トが1だけ増加する。ウィンドウ・カウンタ95のウィ
ンドウ・カウントは、比較機構92中で、ウィンドウ・
レジスタ96のウィンドウ・サイズ値と比較される。ウ
ィンドウ・カウンタ95中のウィンドウ・カウントがウ
ィンドウ・レジスタ96中のウィンドウ・サイズを超え
ると、Timeup信号が生成され、RSフリップフロ
ップ回路88のセット入力に印加される。RSフリップ
フロップ回路88は、このようにセットされると、ウィ
ンドウ・カウンタ95をリセットし、マイクロキャッシ
ュの再割当てに対応する新しいウィンドウ・カウント・
サイクルを開始する信号を、"QN"("Q"ではない)出
力に発生する。
【0043】ANDゲート89は、端子90のMAX信
号とRSフリップフロップ回路88の"Q"出力を組み合
わせて、端子93でResetMAX信号を発生する。
ResetMAX信号は、新たにマイクロキャッシュ1
8を割り当てられたセットIDに関する、タグ/状況記
憶回路10中のMAXビット61(図3)をリセットす
るために使用される。このように、最も最新にマイクロ
キャッシュ18を割り当てられたセットIDが、次の再
割当てサイクルでマイクロキャッシュ18を再割り当て
されないようになる。このResetMAX信号は、R
Sフリップフロップ回路88をリセットすることによっ
て新しいウィンドウ処理サイクルを開始するのにも使用
される。端子91におけるクロック(clock)信号は、
RSフリップフロップ回路88のセットおよびリセット
を適切にクロックするために使用される。
【0044】図6、7、および8に、図4および5の適
応セット連想式(ASA)キャッシュ回路の動作を要約
する状態図を示す。最初に、ASAキャッシュが動作可
能状態(READY)150にあり、CPUがCPUr
ead信号もCPUwrite信号も出力しておらず、
進行中のキャッシュの更新がないものと仮定する。キャ
ッシュ制御装置12は、新しいCPU要求(CPUre
adまたはCPUwrite)が進行中の主記憶装置ア
クセスを妨害するのを防止するWAIT信号を発生す
る。WAIT信号が制御バス上で出力されないものと仮
定すると、コンピュータの中央演算処理装置(CPU)
はCPUwrite信号(図5の端子98)またはCP
Uread(図4の端子30および図5の端子99)を
出力する。CPUは、同時に、アドレス・バス15上に
主記憶アドレスを出力し、CPUwriteの場合はデ
ータ・バス16上にデータ・ワードを出力する。
【0045】CPUread信号が出力されると、読取
りサイクル開始状態152に入る。同時に、図8に示す
ように後述の、ウィンドウ・カウンタ増分状態171に
入る。CPUread信号の出力に応答して、キャッシ
ュ制御装置12(図2)は、Cread信号を出力して
図6のキャッシュ・アクセス状態154に入ることによ
り、キャッシュ読取りを開始する。キャッシュ・アクセ
ス状態154では、図4に関して詳細に説明したよう
に、主キャッシュ・メモリ11およびマイクロキャッシ
ュ18が検査され、要求されたデータまたは命令が主キ
ャッシュ・メモリ11またはマイクロキャッシュ18中
にあるかどうかが判定される。主キャッシュ・メモリ1
1中の一致するエントリのデータが有効である場合、C
hit信号が出力される。Chit信号は、キャッシュ
・ヒット状態157に入るためにCread信号と共に
使用される。一方、マイクロキャッシュ18中の一致す
るエントリのデータが有効である場合、Mhit信号が
出力される。Mhit信号は、マイクロキャッシュ・ヒ
ット状態159に入るためにMread信号と共に使用
される。要求されたデータが主キャッシュ・メモリ11
(Dready)またはマイクロキャッシュ18(Mr
eady)から取り出されると、CPU通知/状況ビッ
ト更新状態158に入る。
【0046】図4および5に関して説明したように、C
PU通知/状況ビット更新状態158では、主キャッシ
ュ・メモリ11またはマイクロキャッシュ18の一方か
らデータ・バス16にデータが転送され、CPUは、デ
ータ・バス16から要求されたデータを取り出すことが
できる。同時に、図4の端子26におけるLRU信号を
使用して、タグ/状況記憶回路10中のLRUビット6
5が更新される。すると、キャッシュ制御装置12はD
ataReady信号を発生する。この信号によって、
システムは作動可能状態150に戻り、次のCPU活動
を待つ。
【0047】キャッシュ・アクセス状態154のとき、
要求された情報が主キャッシュ・メモリ11にもマイク
ロキャッシュ18にもないと判定されると、端子20
(図4)でMISS信号が出力される。このMISS信
号の出力により、ミス・サイクル開始状態155に入
る。ミス・サイクル開始状態155に入ったことに応答
して、キャッシュ制御装置12はCPUが進行中のブロ
ック更新に割り込むのを防止するWAIT信号を出力す
る。このWAIT信号に応答して、ミス・カウント更新
/メモリ・アクセス開始状態156に入る。図5に関し
て述べたように、ミス・カウント更新/メモリ・アクセ
ス開始状態156ではタグ/状況記憶回路10中でミス
・カウントが更新され、その後に、キャッシュ制御装置
12がSYSread信号を出力して、主記憶装置14
のアクセスを開始する。したがって、SYSread信
号に応答して、主記憶装置アクセス状態160に入る。
主記憶装置アクセス状態160では、従来技術の技法を
使用して、主記憶装置14から、要求されたデータまた
は命令を取り出す。主記憶装置14からのデータは一時
に1ブロックずつ取り出されることに留意されたい。こ
のデータの第1ワードがデータ・バス16上で利用可能
になると、主記憶装置14によってSYSDready
信号が出力され、システム・データ・ラッチ/CPU通
知状態161に入る。このデータは、言うまでもなく、
処理するためにCPUに送られる。しかし、このデータ
は、将来の要求に備えてローカル・キャッシュにも入力
しておく必要がある。
【0048】システム・データ・ラッチ/CPU通知状
態161では、ミスが主キャッシュ・メモリ11で発生
したか、それともマイクロキャッシュ18で発生したか
が判定される。ミスがマイクロキャッシュ18中で発生
したことがMhit信号で示された場合、キャッシュ及
びマイクロキャッシュ更新状態162に入る。一方、ミ
スが主キャッシュ・メモリ11中で発生したことが、C
hit信号で示された場合は、キャッシュのみ更新状態
163に入る。キャッシュ及びマイクロキャッシュ更新
状態162およびキャッシュのみ更新状態163で行わ
れる動作については、図7に関してさらに詳細に説明す
る。一般に、キャッシュ及びマイクロキャッシュ更新状
態162およびキャッシュのみ更新状態163では、主
記憶装置14から主キャッシュ・メモリ11またはマイ
クロキャッシュ18に、一時に1つずつデータ・ワード
が転送される。図6に示すように、CPUread(読
取りサイクル開始状態152への出口)またはCPUw
rite(読取りサイクル開始状態151への出口)が
出力されると、システム・データ・ラッチ/CPU通知
状態161またはキャッシュ及びマイクロキャッシュ更
新状態162が終了する。ブロック全体が首尾よく主キ
ャッシュ・メモリ11またはマイクロキャッシュ18に
入力されると、再び作動可能状態150に入り、新しい
メモリ・アクセス・サイクルが開始する。
【0049】動作可能状態150の間にCPUwrit
e信号が発生すると、WAIT信号が出力されていない
ものとすると、書き込みサイクル開始状態151に入
る。書込みサイクル開始状態151で、図8のウィンド
ウ処理状態図に入る。主記憶装置14に書き込むべき情
報がまず先入れ先出し(FIFO)バッファに入力され
るものと仮定する。このメモリ・アクセス方式は、「ポ
ステッド・ライト(Posted Write)」と呼ばれる。従来
技術の技法を使用してキャッシュの内容が更新される。
FIFOバッファ中でデータが利用可能になると、キャ
ッシュ制御装置12はCPUにWriteACK信号を
出力し、主記憶装置アクセス開始/ラッチ更新状態15
3に移行する。主記憶アクセス開始/ラッチ更新状態1
53では、主記憶装置14がFIFOバッファからデー
タを取り出して主記憶装置14に記憶する。このメモリ
書込み状態の間に、CPUがCPUread信号または
CPUwrite信号を出力すると、読取りサイクル開
始状態152または書込みサイクル開始状態151に入
り、CPU要求が実行される。主記憶装置書込みサイク
ルが完了すると、再び作動可能状態150に入り、サイ
クル全体が新たに開始する。
【0050】図7に、図6のキャッシュ及びマイクロキ
ャッシュ更新状態162およびキャッシュのみ更新状態
163で要約したキャッシュ更新プロセスの状態図を示
す。情報が、主記憶装置14から主キャッシュ・メモリ
11またはマイクロキャッシュ18にマルチワード・ブ
ロック単位で転送されることに留意されたい。各ブロッ
クのワード数は、多数の要因によって決まり、値Nで表
されている。すなわち、主キャッシュ・メモリ11およ
びマイクロキャッシュ18中の各セットID記憶位置
は、少なくともNワードの記憶域を含む。メモリ・アド
レスの最下位ビットは、ブロック中のどのワードが望ま
れるかを識別するが、メモリ・アクセスをより効率的に
するために、ブロック全体が、一時に1ワードずつ取り
出される。このマルチワード・メモリ検索については、
図7の状態図で説明する。
【0051】図7では、キャッシュのみ更新状態163
に入っている場合、リード線193上のSetHT信号
の不在が、新しいデータが書き込まれる主キャッシュ・
メモリ11中の記憶位置にマイクロキャッシュ18が接
続されていないことを示し、DataReady信号の
存在がキャッシュ・ヒット処理が完了したことを示し、
WAIT信号の存在が進行中のブロック転送がないこと
を示すと、システムは次更新サイクル開始状態180に
入る。すると、キャッシュ制御装置12は、Cwrit
e信号を出力して、キャッシュ書込みサイクルが開始し
たことを示し、WAIT信号を出力して、メモリ転送が
割り込まれるのを防止する。Cwrite信号およびW
AIT信号に応答して、次ワード及びDVビット転送状
態181に入り、次の主記憶装置ワードが主記憶装置1
4からキャッシュ・メモリ11に転送され、このワード
に関連するデータ有効ビット(DV)がタグ/状況記憶
回路10に入力される。このプロセスが完了すると、C
write信号およびWAIT信号が除去され、ワード
・カウント増分状態182に移行する。ワード・カウン
ト増分状態182では、主記憶装置14から転送される
ワードのカウントが維持され増分される。その結果生じ
るカウントがN以下である場合、再び次更新サイクル開
始状態180に入り、そのブロックの次のワードの検索
が開始される。ブロックのすべてのワードが検索される
と、ワード・カウント増分状態182のワード・カウン
トがNより大きくなり、キャッシュ更新サイクル終了状
態183に入って、キャッシュの更新が完了する。次
に、図7に円189で表した動作可能状態150に戻
る。
【0052】主キャッシュ・メモリ11とマイクロキャ
ッシュ18の両方を更新する必要があることが、リード
線193上にSetHT信号が存在することによって示
される場合、2重更新サイクル開始状態184に入る。
すると、キャッシュ制御装置12はCwrite信号を
出力して、書込みサイクルが開始したことを示し、WA
IT信号を出力して、メモリ転送の割込みを防止する。
Cwrite信号およびWAIT信号に応答して、LR
Uビット照会状態185に入る。LRUビット照会状態
185では、キャッシュ制御装置12が、このメモリ・
ワードに関連するセットIDの、タグ/状況記憶回路1
0中のLRUビット65(図3)の値を確認する。LR
Uビット65の値がゼロである場合、次更新サイクル開
始状態192に入り、Cwrite信号ではなくMwr
ite信号に応答して、状態180ないし183とまっ
たく同じように主記憶装置14からブロックのワードが
転送され、主キャッシュ・メモリ11ではなくマイクロ
キャッシュ18に情報が記憶される。すなわち、次ワー
ド及びDVビット転送状態186は次ワード及びDVビ
ット転送状態181に対応し、ワード・カウント増分状
態187はワード・カウント増分状態182に対応し、
キャッシュ更新サイクル終了状態188はキャッシュ更
新サイクル終了状態183に対応する。マイクロキャッ
シュ18への転送が完了すると、再び動作可能状態15
0に入り(円189)、次のCPU要求を待つ。
【0053】LRUビット照会状態185で、この位置
のLRUビットが1であると判定されると、次更新サイ
クル開始状態180に入り、マイクロキャッシュ18で
はなくキャッシュ・メモリ11中に情報のブロックが転
送される。すなわち、マイクロキャッシュ18は、タグ
/状況記憶回路10のセットID位置のLRUビット
が"1"を含まず、主キャッシュ・メモリ11のキャッシ
ュ・メモリ・エントリ自体がLRUエントリでないこと
を示す場合だけ更新される。この場合、その代わりにマ
イクロキャッシュ18が更新される。キャッシュ・メモ
リ11のエントリが実際にLRUである場合、状態18
0ないし183の更新手順を使ってこのエントリが置き
換えられる。いずれの場合も、適切なエントリが重ね書
きされる。
【0054】更新サイクル開始状態180または2重更
新サイクル開始状態184の間に、CPUwrite信
号の出力によって、システムは書込みサイクル開始状態
151に戻る。これは円190で示されている。同様
に、更新サイクル開始状態180または2重更新サイク
ル開始状態184の間に、CPUread信号の出力に
よって、システムは読取りサイクル開始状態152に戻
る。これは円191で示されている。すなわち、CPU
read信号またはCPUwrite信号を出力する
と、各ワードが転送される前には更新サイクルが打ち切
られるがワード転送中は、打ち切られない。
【0055】図8に、図4および5の適応セット連想式
キャッシュ・アーキテクチャに使用されるウィンドウ処
理手順の状態図を示す。動作可能状態150から開始
し、CPUread信号またはCPUwrite信号の
出力によって、システムはウィンドウ・カウンタ増分状
態171に入る。図5に関して述べたように、適切なセ
ットIDについてウィンドウ・カウンタ83が増分され
る。増分されたウィンドウ・カウントがウィンドウ・サ
イズを超えない場合(比較機構92、図5)、システム
は、CPUread信号またはCPUwrite信号が
除去されたときに動作可能状態150に戻る。ウィンド
ウ・カウンタ83の増分された値がウィンドウ・レジス
タ96中のウィンドウ・サイズに一致するかまたはそれ
を上回る場合、Timeup信号が発生され、システム
はリセット・サイクル開始状態172に入る。リセット
・サイクル開始状態172では、RSフリップフロップ
回路88がセットされる。そして、MAX信号が受信さ
れると、ウィンドウ・カウンタ・リセット状態173に
入る。ウィンドウ・カウンタ・リセット状態173で
は、ウィンドウ・カウンタ95がリセットされ、Res
etMAX信号が発生されて、図3のMAXビット61
がリセットされる。Timeup信号が終了すると、シ
ステムはウィンドウ・カウンタ増分状態171に戻り、
CPUread信号またはCPUwrite信号が終了
するとき、ウィンドウ・カウンタ増分状態171から動
作可能状態150に戻る。
【0056】
【発明の効果】本発明による適応セット連想式キャッシ
ュは、ウェイ数を増大させることが好ましい場合にそう
することによって、キャッシュのヒット率を上げる。同
時に、1つまたは少数のキャッシュ記憶位置だけについ
て、限られた期間の間だけウェイ数を増大させることに
より、連続した高いウェイ数をサポートするのに必要な
制御回路の大幅な増加が、回避される。
【図面の簡単な説明】
【図1】データ処理システムにおいてキャッシュ・メモ
リの性能を向上させる従来の技術のキャッシュ・メモリ
・アーキテクチャの全体的ブロック図である。
【図2】動的に割当て可能なマイクロキャッシュの使用
法を示す、本発明による適応セット連想式キャッシュ・
メモリの全体的ブロック図である。
【図3】内容アドレス可能メモリを使用して、動的に割
当て可能なマイクロキャッシュ中のキャッシュ・ヒット
の判定を容易にする方法を示す、本発明による適応セッ
ト連想式キャッシュ・メモリ・アーキテクチャのさらに
詳細なブロック図である。
【図4】図3の適応セット連想式キャッシュ・メモリの
一部分の詳細回路図である。
【図5】図3の適応セット連想式キャッシュ・メモリの
別の部分の詳細回路図である。
【図6】図4および5の適応連想式キャッシュ・メモリ
のメモリ・アクセス・プロセスの状態図である。
【図7】図4および5の適応連想式キャッシュ・メモリ
のキャッシュ更新プロセスの状態図である。
【図8】図4および5の適応連想式キャッシュ・メモリ
のキャッシュ接続ウィンドウ処理プロセスの状態図であ
る。
【符号の説明】
10 タグ/状況記憶回路 11 主キャッシュ・メモリ 12 キャッシュ制御装置 13 コンピュータ・システム入出力回路 14 コンピュータ主記憶装置 15 アドレス・バス 16 データ・バス 17 制御バス 18 マイクロキャッシュ 25 LRUフリップフロップ回路 41 セレクタ 45 デコーダ 46 マイクロキャッシュ・データ有効バッファ 57 比較回路 66 復号/制御論理回路 68 セットID内容アドレス可能メモリ 69 内容アドレス可能メモリ

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】データ処理システムを操作するためのデー
    タおよび命令を記憶する主記憶装置と、 前記データおよび命令のうちの選択されたものを一時的
    に記憶するキャッシュ・メモリと、 前記キャッシュ・メモリの少なくとも1つの記憶位置の
    ウェイ数を一時的に増加する手段と、 を備える、データ処理システム。
  2. 【請求項2】前記キャッシュ・メモリが直接マップ式キ
    ャッシュを備えることを特徴とする、請求項1に記載の
    データ処理システム。
  3. 【請求項3】前記キャッシュ・メモリが連想式キャッシ
    ュを備えることを特徴とする、請求項1に記載のデータ
    処理システム。
  4. 【請求項4】前記少なくとも1つの記憶位置のウェイ数
    を増加するために該記憶位置に一時的に割り当てること
    のできる補助キャッシュ・メモリを備えることを特徴と
    する、請求項1に記載のデータ処理システム。
  5. 【請求項5】前記キャッシュ・メモリ中の各記憶位置に
    対するキャッシュ・ミスをカウントする手段と、 前記キャッシュ・メモリ中のある記憶位置に対するキャ
    ッシュ・ミスの数が、所定のしきい値を上回る場合に限
    り、該記憶位置のウェイ数を増加する手段と、 を備えることを特徴とする、請求項1に記載のデータ処
    理システム。
  6. 【請求項6】前回ウェイ数が増加した以降に発生したキ
    ャッシュ・アクセスをカウントする手段と、 前記アクセス・カウント手段に応答して、前回増加した
    ウェイ数を削減する手段とを備えることを特徴とする、
    請求項1に記載のデータ処理システム。
  7. 【請求項7】キャッシュ・ミスが発生したときに前記キ
    ャッシュ・メモリ中のLRU記憶位置を重ね書きする手
    段を備えることを特徴とする、請求項1に記載のデータ
    処理システム。
  8. 【請求項8】データ処理システムを操作するためのデー
    タおよび命令を主記憶装置に記憶するステップと、 前記データおよび命令のうちの選択されたものをキャッ
    シュ・メモリに一時的に記憶するステップと、 前記キャッシュ・メモリの1つ以上の記憶位置のウェイ
    数を一時的に増加するステップとを含む、データ処理シ
    ステムを操作する方法。
  9. 【請求項9】前記一時的に記憶ステップが、前記主記憶
    装置中の記憶位置を前記キャッシュ・メモリに直接マッ
    プするステップを含むことを特徴とする、請求項8に記
    載の、データ処理システムを操作する方法。
  10. 【請求項10】前記一時的記憶ステップが、前記主記憶
    装置中の複数の位置を前記キャッシュ・メモリ中の各位
    置と関連付けるステップを含むことを特徴とする、請求
    項8に記載の、データ処理システムを操作する方法。
  11. 【請求項11】前記1つ以上の記憶位置に1つ以上の補
    助キャッシュ・メモリを一時的に割り当て、その1つの
    記憶位置のウェイ数を増加するステップを含むことを特
    徴とする、請求項8に記載の、データ処理システムを操
    作する方法。
  12. 【請求項12】前記キャッシュ・メモリ中の各記憶位置
    に対するキャッシュ・ミスをカウントするステップと、 前記キャッシュ・メモリ中のある記憶位置に対するキャ
    ッシュ・ミスの数が、所定のしきい値を上回る場合に限
    り、該位置のウェイ数を増加するステップと、 を含むことを特徴とする、請求項8に記載の、データ処
    理システムを操作する方法。
  13. 【請求項13】前回ウェイ数が増加した以降に発生した
    キャッシュ・アクセスをカウントするステップと、 前記アクセスをカウントするステップの結果に応答し
    て、前回増加したウェイ数を削減するステップとを含む
    ことを特徴とする、請求項8に記載の、データ処理シス
    テムを操作する方法。
  14. 【請求項14】キャッシュ・ミスが発生したときに前記
    キャッシュ・メモリのLRU記憶位置を重ね書きするス
    テップを含むことを特徴とする、請求項8に記載の、デ
    ータ処理システムを操作する方法。
JP5312984A 1992-12-22 1993-12-14 キャッシュ・メモリを有するデータ処理システム Expired - Lifetime JP2554449B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US995619 1992-12-22
US07/995,619 US5465342A (en) 1992-12-22 1992-12-22 Dynamically adaptive set associativity for cache memories

Publications (2)

Publication Number Publication Date
JPH06231044A true JPH06231044A (ja) 1994-08-19
JP2554449B2 JP2554449B2 (ja) 1996-11-13

Family

ID=25542018

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5312984A Expired - Lifetime JP2554449B2 (ja) 1992-12-22 1993-12-14 キャッシュ・メモリを有するデータ処理システム

Country Status (2)

Country Link
US (1) US5465342A (ja)
JP (1) JP2554449B2 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998019242A1 (fr) * 1996-10-30 1998-05-07 Hitachi, Ltd. Processeur de donnees et systeme de traitement de donnees
JP2007206806A (ja) * 2006-01-31 2007-08-16 Matsushita Electric Ind Co Ltd キャッシュ観測装置、プロセッサの解析方法およびキャッシュメモリ
US8086802B2 (en) 2008-09-19 2011-12-27 Kabushiki Kaisha Toshiba Instruction cache system, instruction-cache-system control method, and information processing apparatus
JP2013517577A (ja) * 2010-01-14 2013-05-16 クアルコム,インコーポレイテッド レベル2メモリの一部分とレベル1メモリとにアクセスするシステムおよび方法
JP2015532496A (ja) * 2012-10-18 2015-11-09 ゼットティーイー コーポレーションZte Corporation キャッシュのキャッシュライン長を調整する方法及び装置
JP2017503299A (ja) * 2014-12-14 2017-01-26 ヴィア アライアンス セミコンダクター カンパニー リミテッド モードに応じてセットの1つ又は複数を選択的に選択するように動的に構成可能であるマルチモード・セット・アソシエイティブ・キャッシュ・メモリ
JP2017503298A (ja) * 2014-12-14 2017-01-26 ヴィア アライアンス セミコンダクター カンパニー リミテッド アドレス・タグ・ビットに基づく動的キャッシュ置換ウェイ選択
JP2017507442A (ja) * 2014-12-14 2017-03-16 ヴィア アライアンス セミコンダクター カンパニー リミテッド モードに応じてウェイの全部又はサブセットに選択的に割り当てるように動的に構成可能であるマルチモード・セット・アソシエイティブ・キャッシュ・メモリ

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5539894A (en) * 1993-04-20 1996-07-23 Sun Microsystems, Inc. Method and apparatus for optimizing a sector cache tag, block and sub-block structure base on main memory size
US5555392A (en) * 1993-10-01 1996-09-10 Intel Corporation Method and apparatus for a line based non-blocking data cache
JPH07271672A (ja) * 1994-03-30 1995-10-20 Toshiba Corp マルチウェイセットアソシアティブキャッシュシステム
US5905997A (en) * 1994-04-29 1999-05-18 Amd Inc. Set-associative cache memory utilizing a single bank of physical memory
US5903915A (en) * 1995-03-16 1999-05-11 Intel Corporation Cache detection using timing differences
JP3598589B2 (ja) * 1995-06-28 2004-12-08 株式会社日立製作所 プロセッサ
US5706467A (en) * 1995-09-05 1998-01-06 Emc Corporation Sequential cache management system utilizing the establishment of a microcache and managing the contents of such according to a threshold comparison
JPH09101916A (ja) * 1995-10-06 1997-04-15 Fujitsu Ltd マルチプロセス処理装置
US5710905A (en) * 1995-12-21 1998-01-20 Cypress Semiconductor Corp. Cache controller for a non-symetric cache system
US5860095A (en) * 1996-01-02 1999-01-12 Hewlett-Packard Company Conflict cache having cache miscounters for a computer memory system
KR100188012B1 (ko) * 1996-01-12 1999-06-01 윤종용 캐시 메모리의 사용 모드 설정 장치
JP3068469B2 (ja) * 1996-08-28 2000-07-24 新潟日本電気株式会社 2次レベルキャッシュメモリシステム
US6202125B1 (en) * 1996-11-25 2001-03-13 Intel Corporation Processor-cache protocol using simple commands to implement a range of cache configurations
US6223256B1 (en) * 1997-07-22 2001-04-24 Hewlett-Packard Company Computer cache memory with classes and dynamic selection of replacement algorithms
US6260114B1 (en) 1997-12-30 2001-07-10 Mcmz Technology Innovations, Llc Computer cache memory windowing
US6341281B1 (en) 1998-04-14 2002-01-22 Sybase, Inc. Database system with methods for optimizing performance of correlated subqueries by reusing invariant results of operator tree
US6510493B1 (en) 1999-07-15 2003-01-21 International Business Machines Corporation Method and apparatus for managing cache line replacement within a computer system
US7114059B2 (en) * 2001-11-05 2006-09-26 Intel Corporation System and method to bypass execution of instructions involving unreliable data during speculative execution
CN1714347A (zh) * 2002-12-17 2005-12-28 国际商业机器公司 选择性可变行宽存储器
US7406579B2 (en) * 2002-12-17 2008-07-29 International Business Machines Corporation Selectively changeable line width memory
US7290093B2 (en) * 2003-01-07 2007-10-30 Intel Corporation Cache memory to support a processor's power mode of operation
FR2859292A1 (fr) * 2003-08-27 2005-03-04 St Microelectronics Sa Dispositif de controle de l'acces a une memoire securisee, comprenant un circuit synchrome de recherche d'attributs
US7464181B2 (en) * 2003-09-11 2008-12-09 International Business Machines Corporation Method for caching lookups based upon TCP traffic flow characteristics
US20050275034A1 (en) * 2004-04-08 2005-12-15 International Business Machines Corporation A manufacturable method and structure for double spacer cmos with optimized nfet/pfet performance
JP3834323B2 (ja) 2004-04-30 2006-10-18 日本電気株式会社 キャッシュメモリおよびキャッシュ制御方法
US7328309B2 (en) * 2004-10-14 2008-02-05 International Business Machines Corporation On-demand cache memory for storage subsystems
US7395373B2 (en) * 2005-09-20 2008-07-01 International Business Machines Corporation Set-associative cache using cache line decay counts and set overflow
KR20080070342A (ko) * 2007-01-26 2008-07-30 삼성전자주식회사 화상형성장치
US9424194B2 (en) * 2012-05-01 2016-08-23 International Business Machines Corporation Probabilistic associative cache
US11074169B2 (en) * 2013-07-03 2021-07-27 Micron Technology, Inc. Programmed memory controlled data movement and timing within a main memory device
US10853267B2 (en) * 2016-06-14 2020-12-01 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Adaptive method for selecting a cache line replacement algorithm in a direct-mapped cache
US10552327B2 (en) 2016-08-23 2020-02-04 Apple Inc. Automatic cache partitioning
US10303379B2 (en) 2017-09-25 2019-05-28 International Business Machines Corporation Efficient adaptive read-ahead in log structured storage
US20190303476A1 (en) * 2018-03-30 2019-10-03 Ca, Inc. Dynamic buffer pools for process non-conforming tasks
US11144356B2 (en) * 2019-10-30 2021-10-12 International Business Machines Corporation Dynamic determination of memory requirements for function as a service multi-invocation flows

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0315957A (ja) * 1988-09-15 1991-01-24 Internatl Business Mach Corp <Ibm> コンピュータ・システム
JPH03255531A (ja) * 1990-03-06 1991-11-14 Nec Corp 命令取出装置

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58147879A (ja) * 1982-02-26 1983-09-02 Toshiba Corp キヤツシユメモリ制御方式
US4493026A (en) * 1982-05-26 1985-01-08 International Business Machines Corporation Set associative sector cache
US4724518A (en) * 1983-07-29 1988-02-09 Hewlett-Packard Company Odd/even storage in cache memory
US4985829A (en) * 1984-07-31 1991-01-15 Texas Instruments Incorporated Cache hierarchy design for use in a memory management unit
US4914582A (en) * 1986-06-27 1990-04-03 Hewlett-Packard Company Cache tag lookaside
US4811209A (en) * 1986-07-31 1989-03-07 Hewlett-Packard Company Cache memory with multiple valid bits for each data indication the validity within different contents
US4802085A (en) * 1987-01-22 1989-01-31 National Semiconductor Corporation Apparatus and method for detecting and handling memory-mapped I/O by a pipelined microprocessor
JPH0673114B2 (ja) * 1987-03-31 1994-09-14 日本電気株式会社 キヤツシユ制御装置
US5113510A (en) * 1987-12-22 1992-05-12 Thinking Machines Corporation Method and apparatus for operating a cache memory in a multi-processor
US5025366A (en) * 1988-01-20 1991-06-18 Advanced Micro Devices, Inc. Organization of an integrated cache unit for flexible usage in cache system design
US4905188A (en) * 1988-02-22 1990-02-27 International Business Machines Corporation Functional cache memory chip architecture for improved cache access
JPH0786847B2 (ja) * 1988-08-09 1995-09-20 松下電器産業株式会社 キャッシュメモリ
US4928225A (en) * 1988-08-25 1990-05-22 Edgcore Technology, Inc. Coherent cache structures and methods
US5029070A (en) * 1988-08-25 1991-07-02 Edge Computer Corporation Coherent cache structures and methods
US4991088A (en) * 1988-11-30 1991-02-05 Vlsi Technology, Inc. Method for optimizing utilization of a cache memory
US5091851A (en) * 1989-07-19 1992-02-25 Hewlett-Packard Company Fast multiple-word accesses from a multi-way set-associative cache memory
US5043885A (en) * 1989-08-08 1991-08-27 International Business Machines Corporation Data cache using dynamic frequency based replacement and boundary criteria
US5014195A (en) * 1990-05-10 1991-05-07 Digital Equipment Corporation, Inc. Configurable set associative cache with decoded data element enable lines
JP2646854B2 (ja) * 1990-12-18 1997-08-27 三菱電機株式会社 マイクロプロセッサ
US5210842A (en) * 1991-02-04 1993-05-11 Motorola, Inc. Data processor having instruction varied set associative cache boundary accessing
US5367653A (en) * 1991-12-26 1994-11-22 International Business Machines Corporation Reconfigurable multi-way associative cache memory

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0315957A (ja) * 1988-09-15 1991-01-24 Internatl Business Mach Corp <Ibm> コンピュータ・システム
JPH03255531A (ja) * 1990-03-06 1991-11-14 Nec Corp 命令取出装置

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998019242A1 (fr) * 1996-10-30 1998-05-07 Hitachi, Ltd. Processeur de donnees et systeme de traitement de donnees
US6351788B1 (en) 1996-10-30 2002-02-26 Hitachi, Ltd. Data processor and data processing system
JP2007206806A (ja) * 2006-01-31 2007-08-16 Matsushita Electric Ind Co Ltd キャッシュ観測装置、プロセッサの解析方法およびキャッシュメモリ
US8086802B2 (en) 2008-09-19 2011-12-27 Kabushiki Kaisha Toshiba Instruction cache system, instruction-cache-system control method, and information processing apparatus
JP2013517577A (ja) * 2010-01-14 2013-05-16 クアルコム,インコーポレイテッド レベル2メモリの一部分とレベル1メモリとにアクセスするシステムおよび方法
JP2015532496A (ja) * 2012-10-18 2015-11-09 ゼットティーイー コーポレーションZte Corporation キャッシュのキャッシュライン長を調整する方法及び装置
JP2017503299A (ja) * 2014-12-14 2017-01-26 ヴィア アライアンス セミコンダクター カンパニー リミテッド モードに応じてセットの1つ又は複数を選択的に選択するように動的に構成可能であるマルチモード・セット・アソシエイティブ・キャッシュ・メモリ
JP2017503298A (ja) * 2014-12-14 2017-01-26 ヴィア アライアンス セミコンダクター カンパニー リミテッド アドレス・タグ・ビットに基づく動的キャッシュ置換ウェイ選択
JP2017507442A (ja) * 2014-12-14 2017-03-16 ヴィア アライアンス セミコンダクター カンパニー リミテッド モードに応じてウェイの全部又はサブセットに選択的に割り当てるように動的に構成可能であるマルチモード・セット・アソシエイティブ・キャッシュ・メモリ
US9798668B2 (en) 2014-12-14 2017-10-24 Via Alliance Semiconductor Co., Ltd. Multi-mode set associative cache memory dynamically configurable to selectively select one or a plurality of its sets depending upon the mode
US10698827B2 (en) 2014-12-14 2020-06-30 Via Alliance Semiconductor Co., Ltd. Dynamic cache replacement way selection based on address tag bits
US10719434B2 (en) 2014-12-14 2020-07-21 Via Alliance Semiconductors Co., Ltd. Multi-mode set associative cache memory dynamically configurable to selectively allocate into all or a subset of its ways depending on the mode

Also Published As

Publication number Publication date
JP2554449B2 (ja) 1996-11-13
US5465342A (en) 1995-11-07

Similar Documents

Publication Publication Date Title
JP2554449B2 (ja) キャッシュ・メモリを有するデータ処理システム
US5091851A (en) Fast multiple-word accesses from a multi-way set-associative cache memory
JP4486750B2 (ja) テンポラリ命令及び非テンポラリ命令用の共用キャッシュ構造
US6990557B2 (en) Method and apparatus for multithreaded cache with cache eviction based on thread identifier
US6912623B2 (en) Method and apparatus for multithreaded cache with simplified implementation of cache replacement policy
US5689679A (en) Memory system and method for selective multi-level caching using a cache level code
US6339813B1 (en) Memory system for permitting simultaneous processor access to a cache line and sub-cache line sectors fill and writeback to a system memory
US7676632B2 (en) Partial cache way locking
US5813031A (en) Caching tag for a large scale cache computer memory system
US6912628B2 (en) N-way set-associative external cache with standard DDR memory devices
US6292871B1 (en) Loading accessed data from a prefetch buffer to a least recently used position in a cache
US6874077B2 (en) Parallel distributed function translation lookaside buffer
US20080301371A1 (en) Memory Cache Control Arrangement and a Method of Performing a Coherency Operation Therefor
US5715427A (en) Semi-associative cache with MRU/LRU replacement
JPH06243039A (ja) キャッシュメモリシステムおよびマイクロプロセッサ内の命令を操作するための方法
JP7340326B2 (ja) メンテナンス動作の実行
US7039768B2 (en) Cache predictor for simultaneous multi-threaded processor system supporting multiple transactions
JPH08272682A (ja) ロード・バッファを備えたロード/ストア・ユニット内にて切り離されたタグ及びデータ・アレイへのアクセス方法及びそのアレイを有する装置
US6332179B1 (en) Allocation for back-to-back misses in a directory based cache
US6832294B2 (en) Interleaved n-way set-associative external cache
US8621152B1 (en) Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access
US6240489B1 (en) Method for implementing a pseudo least recent used (LRU) mechanism in a four-way cache memory within a data processing system
US6715040B2 (en) Performance improvement of a write instruction of a non-inclusive hierarchical cache memory unit
US6202128B1 (en) Method and system for pre-fetch cache interrogation using snoop port
US7007135B2 (en) Multi-level cache system with simplified miss/replacement control