JPH04233051A - キャッシュシステム - Google Patents

キャッシュシステム

Info

Publication number
JPH04233051A
JPH04233051A JP3170562A JP17056291A JPH04233051A JP H04233051 A JPH04233051 A JP H04233051A JP 3170562 A JP3170562 A JP 3170562A JP 17056291 A JP17056291 A JP 17056291A JP H04233051 A JPH04233051 A JP H04233051A
Authority
JP
Japan
Prior art keywords
way
signal
input
processor
cache
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
JP3170562A
Other languages
English (en)
Inventor
Michael J Collins
マイケル・ジェイ・コリンズ
Roger E Tipley
ロガー・イー・ティプレイ
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.)
Compaq Computer Corp
Original Assignee
Compaq Computer 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 Compaq Computer Corp filed Critical Compaq Computer Corp
Publication of JPH04233051A publication Critical patent/JPH04233051A/ja
Pending 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)
  • Transition And Organic Metals Composition Catalysts For Addition Polymerization (AREA)
  • Materials For Medical Uses (AREA)
  • Polymers With Sulfur, Phosphorus Or Metals In The Main Chain (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、コンピュータシステム
に用いられるキャッシュメモリシステムに関し、特に新
規な項目がキャッシュメモリシステムに追加されなけば
ならない時に入れ換えられるキャッシュシステムに関す
る。
【0002】
【従来の技術】パーソナルコンピュータは、次第に強力
になっている。これらのシステムの性能は、最高である
が、常により強力な性能が要求されている。この結果、
絶えずより高速の部品がコンピュータシステムに使用さ
れる。コンピュータシステムの要となる部品、即ちマイ
クロプロセッサの開発速度は、マイクロプロセッサと共
に動作するメモリ装置の開発速度より先んじている。非
常に高速のメモリ装置を使用できても、マイクロプロセ
ッサのサイクル時間が全く遅いと、マイクロプロセッサ
の操作を遅くしなければならず、従ってシステムの性能
が低下する。従って、高速のメモリ装置でコンピュータ
システムの全部の主メモリを構成することは、費用の点
で通常望めない。従って、性能は経済性の問題をもろに
受ける。
【0003】この相いれない問題を解決する1つの歩み
寄りはキャッシュメモリシステムを使用することである
。キャッシュメモリシステムにおいては、少容量の高速
メモリが大容量の低速メモリと関連して使用される。 低速メモリが主システムメモリを形成し、一方少容量の
高速メモリが低速主メモリのデータの部分を含む。キャ
ッシュメモリは、統計に基づく見込みで、データが間も
なく再使用できる最小の使用済みデータを通常含んでい
る。従って、データは、低速主メモリをアクセスした時
に展開する遅延状態を起こさないで、高速キャッシュメ
モリから直接得られる。
【0004】しかし、キャッシュメモリは、主メモリよ
り相当少容量で、幾つかの置換処置が必要である。幾つ
かのデータは、新規データを記憶できるようにキャッシ
ュメモリから取り出さなければならない。最も広範囲に
好ましい技術は、最近最小使用(LRU)技術である。 この歩み寄りにおいては、一連の位置の最近最小使用デ
ータがキャッシュに書込まれ、従って最小データが使用
できる状態を維持する。これは、望ましいゴールである
が、実際、ある場合導入することが困難である。セット
アソシアティブキャッシュ仕様の種々の方法に依存して
、真性LRUの形成に要求されるメモリのビット数は全
く多い。十分な情報は、キャッシュのセット毎にLRU
ウエイのトラック(軌跡)を保持するために保持されな
ければならない。更に、LRU情報を展開する合計時間
はどのサイクルも遅延させてはならず、そうでなければ
いずれかの性能に影響し、或はコストが上昇する。
【0005】
【発明が解決しようする課題】これら問題の幾つかを解
決するために、シュードLRU技術が開発された。シュ
ードLRU技術の一例は、4ウエイセットアソシアティ
ブキャッシュアーキテクチャを使用したインテル社のi
486マイクロプロセッサである。3ビットは、まずウ
エイのどの半分が最近最小使用であったかを決定し、そ
の後その半分における2ウエイのどれが最近最小使用で
あったかを決定するために、設けられる。これは、読出
ヒットに基づく序列を特定のウエイに好ましく入れ換え
ることを考慮しないのでシュードLRU技術である。第
1の半分における最近最小使用ウエイにとっては、もし
、第1半分における最近最大使用ウエイが絶えず割り込
みの読出ヒットに基づくならば、第2半分の両ウエイよ
り長い期間未使用に留まることが可能である。従って、
かなりの失効データが存在できて、キャッシュシステム
の性能を低下させる。
【0006】シュードLRU技術を用いる主な理由は、
LRU状態情報に要求されるより少容量のメモリとロジ
ックの単純性である。設計者は、システムの複雑さと性
能損失との間で妥協しなければならず、そこで多くの場
合シュードLRU技術が使用された。しかし、シュード
LRU技術は、全体のキャッシュ容量がより小さくなり
、ウエイの数が増加しているので、最適とは言われなく
なって来ている。従って、真性LRU技術がより重要と
なり、そうでなければ多数の性能損失が発生する。
【0007】
【課題を解決するための手段】本発明は、LRU状態情
報のために大規模のメモリを使用せず、極めて複雑なロ
ジックを使用しないで、真性LRU技術が使用できる。 4ウエイセットアソシアティブキャッシュが使用でき、
6ビットがLRU、LRU+1及びMRUウエイの指示
を記憶するために使用され、MRU−1ウエイがこれら
の値から決定できる。割り込みヒット操作の効果が完全
に理解され、補償がなされる。スヌープ操作が発生して
いる時には、スヌープ位置が最近最小使用を考慮して、
第1半分が置換されるので、操作は逆に作業する。スヌ
ープ操作は、プロセッサ以外のバスマスタがメモリをア
クセスし、キャッシュコントローラがバスマスタの操作
を監視している時に発生する。通常、バスマスタ書込の
みは、キャッシュデータがこれらの場合無効となるので
、重要である。
【0008】キャッシュにおける各セット毎の6LRU
ビットは、6ビット幅のRAMに書込まれる。各メモリ
操作中に、現行値がLRURAMによって形成される。 もし、プロセッサ操作キャッシュヒットが発生したなら
ば、特定のウエイがMRUウエイを作り、このウエイが
LRU、LRU+1或はMRUウエイであったかの指示
を形成する。これら指示を用いて、LRU値が入れ替わ
って、ウエイのエージング順序を参照した最適時間を指
示する。もし、プロセッサキャッシュ読出ミス操作が発
生したならば、LRUウエイは読出されるデータを受信
して、MRUとして指定し、残りのウエイが好ましく入
れ換えられる。もし、スヌープキャッシュが発生したな
らば、特定のウエイがLRUウエイを作り、ウエイがL
RU、LRU+1或はMRUウエイであったかの指示を
伴って、残りのウエイが好ましく入れ換えられる。
【0009】LRU情報は、得られ、各メモリサイクル
を再計算させるが、ヒット或はプロセッサ読出キャッシ
ュミスが発生した時のみ書込まれる。
【0010】
【実施例】本発明の良好な理解は、添付図面を参照して
以下の詳細な説明を読んだときに展開できる。
【0011】図1を参照すると、コンピュータシステム
Cが示される。このコンピュータシステムCは、好まし
くはインテル社の80386SXであるプロセッサ20
を備える。プロセッサ20には、プロセッサアドレスバ
スPA、プロセッサデータバスPD及びプロセッサ制御
バスPC等の3種のバス、好ましくはインテル社の80
387SXである数値演算コプロセッサ22及びキャッ
シュシステム24が接続される。キャッシュシステム2
4は、本発明による最近最小使用(LRU)技術と協働
する。これらプロセッサアドレスバスPA、プロセッサ
データバスPD及びプロセッサ制御バスPCをコンピュ
ータCの他の部分と結合するために、一連のバッファ2
6が使用される。例えば、バッファ26がメモリデータ
バスMD、外部アドレスバスXA及び外部データバスX
Dを含む外部バス、及びシステム制御バスSC、システ
ムデータバスSD及びシステムアドレスバスLA及びS
Aを含むシステムバスに接続される。メモリ及びバスコ
ントローラ28は、システム制御バスSC及びシステム
アドレスバスLA及びSAと同様に、プロセッサアドレ
スバスPA及びプロセッサ制御バスPCに接続される。 また、メモリ及びバスコントローラ28は、プロセッサ
20で形成される制御信号及びアドレス情報をシステム
バスに用いる信号に変換するために、応答する。更に、
メモリ及びバスコントローラ28は、システムのどこか
に存在する種々の装置、通常他のバスマスタからの制御
信号及びアドレス信号を、もし適切ならばプロセッサバ
スPC及びPAに転送する。追加的に、メモリ及びバス
コントローラ28は、メモリ30にメモリ制御及びアド
レス情報を提供する。外部アドレスバスXA、外部デー
タバスXD及びシステム制御バスSCには、直接メモリ
アクセス(DMA)システム、割り込みコントローラ及
び種々のタイマーを内蔵したモジュール32が接続され
る。これらXA、XD及びSCには読出メモリ(ROM
)34も接続される。ROM34は、コンピュータシス
テムCの基本操作命令を含む。更に、XA、XD及びS
Cには、キーボード38、マウス或は他の指示装置40
からのキーボード入力をプロセッサ20に供給するため
に、プロセッサ20とインターフェースする、代表的に
8042マイクロコントローラのキーボードコントロー
ラ36が接続される。コンピュータC用には、合同回路
42が並列、直列及びハードディスク制御機能を提供す
る。それゆえ、この合同回路42には、並列ポート44
、直列ポート46及びハードディスクユニット48が接
続される。また、合同回路42は、XA、XD及びSC
バスを介してプロセッサ20と通信する。同様に、XA
、XD及びSCバスを経由して、フロッピーディスクコ
ントローラ50も接続されて、フロッピーディスクユニ
ット52が制御できる。
【0012】コンピュータCのビデオ出力は、XA、L
A、SA、SD及びSCバスに結合し、モニター56と
接続するVGAコントローラ54を好ましく含む。勿論
、システムバスLA、SA、SD及びSCには、一連の
スロット58が接続されて、要望の回路基板を抜き差し
できる。これら抜き差し回路基板は、コンピュータCの
個性化に用いられる追加機能或はバスマスタ装置を提供
する。バスマスタがスロット58の1つに配置され、或
はDMAが動作している時には、プロセッサ20がホー
ルド状態にあり、バスマスタからのデータがバッファ2
6を通して、プロセッサバスPA、PD及びPCに乗っ
てバスコントローラ28内のメモリに供給されることが
注目される。従って、1つのマスタ装置のみが所定時間
コンピュータシステムC内で動作される。
【0013】図2には、キャッシュシステム24が詳細
に示される。キャッシュシステム24の好ましい実施例
は、合計4Kバイトのメモリを持つ4ウエイセットアソ
シアティブキャッシュである。この結果、キャッシュシ
ステム24は、4バンクのデータRAM100A、10
0B、100C及び100Dを含み、これらを総称して
データRAM100とする。各データRAM100A〜
100Dは、好ましくは16ビットの幅を持ち、入出力
データポートが別々に設けられる。プロセッサアドレス
バスPAの9〜1ビット目は、データRAM100のア
ドレス入力に供給される。データをデータRAM100
に書込む必要がある時には、タイミング及び制御ロジッ
クモジュール102からデータ書込イネーブル(信号D
WE)がデータRAM100に供給される。
【0014】更に、タイミング及び制御ロジックモジュ
ール102によって、データ上位バイトDH及びデータ
下位バイトDLが供給されて、データワードのどのバイ
トが供給即ち記憶されるかを選択する。データRAM1
00A〜100Dの、キャッシュシステム24のウエイ
に対応する各バンクには、個別のチップ選択信号DRA
MCSが供給される。ウエイ即ちバンク3〜0毎のDR
AMCS<3〜0>信号は、タイミング及び制御ロジッ
ク102によって供給され、従って特定のウエイの個別
の動作を許容する。データRAM100のデータ出力は
、ルートがタイミング及び制御ロジック102からの信
号で制御される16ビット幅の4対1マルチプレクサ1
04に供給される。マルチプレクサ104の出力は、出
力がプロセッサデータバスPDに接続される16ビット
幅のトライステートバッファ106に供給される。この
バッファ106の出力制御はタイミング及び制御ロジッ
ク102によって形成される。勿論、プロセッサデータ
バスPDは、出力がデータRAM100のデータ入力D
に接続される16ビット幅のバッファ108に接続され
る。
【0015】キャッシュシステム24は、データ記憶に
加えて、データRAM100における位置で記憶された
特定のデータ値と関連したタグ即ち上部アドレス値及び
ライン有効ビットを含む一連のRAMを含んでいる。好
ましいタグ値は、上位14ビットのアドレスであり、ラ
イン用の2バイト、セット用の8ライン及び64セット
がキャッシュ構成パラメータの値である。これは、4ウ
エイセットアソシアティブキャッシュシステムで好まし
いので、4つの個別バンクのタグRAM110、個別に
参照すると110A、110B、110C及び110D
がある。タグRAM110は、好ましくは、プロセッサ
アドレスビット23〜10及び8つのライン有効ビット
<7〜0>を記憶する22ビット幅である。プロセッサ
アドレスビット<9〜4>は、アドレス目的でタグRA
M110の入力をアドレスするために形成される。書込
イネーブル信号TAGWEは、タイミング及び制御ロジ
ック102から供給されるが、4つの信号TAGCS<
3〜0>は、タグRAM110A〜110Dのチップ選
択入力に接続される。この方法において、タイミング及
び制御ロジック102は、データがタグRAM110に
書込まれる時を決定でき、タグRAM110から得られ
る。
【0016】4つのタグRAM110A〜110Dから
の出力は、比較器112に供給される。勿論、比較器1
12には、プロセッサアドレスライン23〜10及び3
〜1が供給されて、プロセッサアドレスバスPA上でア
サートされる特定のアドレスがキャッシュシステム24
に存在するか否かの決定がなされる。勿論、種々の制御
信号は、タイミング及び制御ロジック102から比較器
112に供給される。タグRAM110A〜110Dの
各バンクからの22ビットデータは、比較器112に供
給されて、タグアドレス及びライン有効の検査のために
、プロセッサアドレス信号23〜10及び3〜1と共に
使用される。
【0017】勿論、比較器112は、タグ有効RAM1
14に接続される。このRAMは、好ましくは、1ビッ
トが1ウエイに対応する4ビット幅である。タグ有効R
AM114は、アドレス入力として、プロセッサアドレ
スライン9〜4を受信して、4ビットのデータMOUT
<3〜0>を比較器112に供給する。比較器112は
、信号MIN<3〜0>をタグ有効RAM114のデー
タ入力に供給する。それ故、比較器112は、もし特定
のタグ値がメモリに存在するならば、特定のライン或は
タグ値が有効であるか否かを決定するために必要なロジ
ックを含んでいる。勿論、タグ有効RAM114は、タ
イミング及び制御ロジック102から汎用RAM選択用
のMRAMCS信号及び書込イネーブル用のTAGWE
信号を受信する。
【0018】キャッシュシステム24には、6ビット幅
のLRURAM116が存在する。LRURAM116
は、キャッシュシステム24内の各セット毎のLRUデ
ータが記憶される場所である。LRURAM116は、
アドレス入力として、プロセッサアドレスライン9〜4
を受信し、タイミング及び制御ロジック102から書込
イネーブル及びチップ選択入力に供給されるTAGWE
及びLRAMCS信号を受信する。LRURAM116
から供給される6つのデータ出力LOUT<5〜0>は
、LRUロジック118に送られる。LRURAM11
6へのデータ入力LIN<5〜0>は、LRUロジック
から供給される。LRUロジック118及びタイミング
及び制御ロジック102間には、スヌープサイクルが進
展していることを指示するSNPCYCLE信号、キャ
ッシュ読出ミスが発生したことを指示するALLOCA
TE*信号、タグ一致が発生したことを指示するMAT
CH<3〜0>*信号、LRURAM116を初期化す
べきであることを指示するLRUINIT信号、及びど
のウエイをデータの記憶に用いるべきかをタイミング及
び制御ロジック102に指示するLRUWAY<3〜0
>*信号を含む種々の信号が接続される。スヌープサイ
クルは、スロット58に装着されるDMAコントローラ
或はバスマスタのようなバスマスタがシステムCを制御
し、アドレス情報をメモリ30に供給する1つである。 スヌープサイクルは、もしバスマスタがキャッシュ内の
メモリ位置に書込んだならば、キャッシュデータが無効
化できるので、特に書込サイクルにおいて興味深い。従
って、キャッシュシステム24は、恐らく起こるライン
無効化のためのスヌープ書込操作をモニターする。
【0019】再考すると、タグRAM110は、キャッ
シュ内の128セットの各々毎にタグ値及びライン有効
値を含み、一方タグ有効RAM114は、セット用のタ
グが有効か否かを指示する値を含んでいる。LRURA
M116は、各セット毎のLRU関連情報を含んでいる
。比較器112は、もしキャッシュヒット或はミスが両
方のプロセッサ及びスヌープサイクル用に起こり、ミス
が無効中のライン或は無効中の全タグによるか否かを決
定するために、タグ値、ライン有効値及びタグ有効値を
使用する。LRURAM116及びLRUロジック11
8は、新規なデータをキャッシュに記憶しなければなら
ない時にどのウエイを使用べきかの指示を形成する。
【0020】このシステムの種々の信号のタイミングは
、第3図に詳細に示される。4通りの実施サイクル、即
ち2つの読出ミス或は割り当てサイクル、読出ヒットサ
イクル及び書込ヒットサイクルが示される。スヌープサ
イクルのタイミングは、データがデータRAM100に
書込まれず、適切なラインがタグRAM110内で無効
化される以外、割り当てサイクルのそれと類似する。 記載の順序において、プロセッサ20はアイドル状態に
あり、読出操作を開始する。操作は、プロセッサがT1
状態に入る時刻200から開始される。時刻200で、
ADS*信号がLになって、アドレスがバス上に供給さ
れていることを指示する。時刻200の直後には前のア
ドレス及び制御が残っている。CLK2信号は、プロセ
ッサ20で使用される基本タイミング信号であり、プロ
セッサ制御バスPCに供給される。CLK2信号の次の
立上がりの時刻202で、アドレスがバス上で十分安定
とみなされ、タグ比較操作が開始される。この結果、タ
グイネーブル信号TAGEN、適切に選んだTRAMC
S信号、MRAMCS信号及びLRAMCS信号は、タ
グ値、ライン値、タグ有効情報及びLRU情報が種々の
RAMから得られるように、Hに駆動される。CLK2
信号の次の立上がりの時刻204で、TRAMCS信号
、MRAMCS信号及びLRAMCS信号がLになり、
ADS*信号がHになる。非パイプライン操作のこの場
合、データRAM100チップ選択信号は活性化して、
ゼロウエイト状態操作を許容する。
【0021】比較器112は、これがプロセッサ読出キ
ャッシュミス或は割り当て操作であると決定するので、
新規なタグ値及びライン有効情報がタグRAM110に
供給しなければならず、新規なタグ有効情報が供給され
て、タグ有効RAM114及びLRU値を入れ換えなけ
ればならない。それ故、CLK2信号の次の立下がりの
時刻206で、TAGEN信号をHにして、種々のRA
M110、114及び116の書込操作の準備をする。 CLK2信号の次の立上がりの時刻208で、適切に選
んだTRAMCS信号がHになり、MRAMCS信号が
Hになり、LRAMCS信号がHになる。これは、種々
のRAMに供給されるデータを記憶させて、記憶させら
れた新規情報を反映したタグ値、ライン有効ビット、タ
グ有効ビット及びLRUデータを更新する。CLK2信
号の次の立下がりの時刻210で、これは読出ミスであ
り、それ故データをキャッシュすべきであるので、デー
タ書込イネーブル信号DWEをHにして、データをデー
タRAM100に書込む準備をする。CLK2信号の次
の立上がりの時刻212で、ADS*信号がLになって
、次のアドレスがバス上に供給されていることを指示す
る。勿論、この時点で、タグRAM110、タグ有効R
AM114及びLRURAM116のチップ選択信号C
SがLになって、タグ更新が完了する。CLK2信号の
次の立下がりの時刻214で、TAGWE信号がLにな
って、キャッシュタグ及びLRU情報書込サイクルを完
了する。CLK2信号の次の立上がりの時刻216で、
第1サイクル(サイクル1)が完了したことを指示する
RDY*信号がプロセッサ20に供給される。勿論、こ
の時点で、アドレス2(第2アドレス)がバス上に供給
されて、ミス或はヒット操作を進展的に決定することが
最適である。それ故、TAGEN、タグRAM、タグ有
効RAM及びLRURAMのチップ選択信号CSがHに
なる。
【0022】CLK2信号の次の立上がりの時刻218
で、ADS*及びRDY*信号がHになる。勿論、この
時点で、タグ関連信号はLになって、種々の比較操作が
完了する。最終的に、特定のウエイにとって最適である
DRAMCS信号がHになって、データのデータRAM
100への書込が形成される。CLK2信号の次の立下
がりの時刻220で、これが記載の実施例において入れ
換え操作であると決定し、それ故、データが種々のRA
Mに書込まれて、タグ及びLRU情報を更新しなければ
ならないので、TAGWE信号がHになる。CLK2信
号の次の立上がりの時刻222で、適切に選んだTRA
MCS信号、MRAMCS信号及びLRAMCS信号が
各々Hになって、新規な更新された情報が種々のRAM
110、114及び116に書込まれる。勿論、この時
点で、DRAMCS信号がLになって、サイクル1用の
データRAM100の書込操作を完了する。
【0023】CLK2信号の次の立下がりの時刻224
で、もし適切ならばDWE信号がLになるが、記載の場
合、第2入れ換え操作が進行中であり、それ故、DWE
信号がH状態に留まる。CLK2信号の次の立上がりの
時刻226で、ADS*信号がLになって、アドレスが
サイクル3のためにバス上に供給されていることを指示
する。この時点で、タグ及びLRU情報の更新が完了し
、それ故TRAMCS、MRAMCS及びLRAMCS
信号が各々Lになる。CLK2信号の次の立下がりの時
刻228で、TAGWE信号がLになって、タグ情報更
新シークエンスを完了する。CLK2信号の次の立上が
りの時刻230で、第2サイクルの完了を指示するRD
Y*信号がLになる。追加的に、この時点で、アドレス
がアドレスバス上に安定に存在しているので、第3サイ
クルのためのタグ検査操作が初期化されなければならな
い。それ故、TAGEN、TRAMCS、MRAMCS
及びLRAMCS信号が各々Hになって、種々の情報が
読出できる。サイクル3の特定の場合においては、これ
は、タグデータを更新せず、LRU情報のみを更新する
必要がある読出ヒット操作である。CLK2信号の次の
立上がりの時刻232で、ADS*及びRDY*信号が
Hになって、第2サイクルデータ段階の完了を指示する
。追加的に、この時点で、TAGEN、TRAMCS、
MRAMCS及びLRAMCS信号が各々Lになって、
タグ検査操作の完了を指示する。最終的に、時刻232
で、サイクル2用のDRAMCS信号がHになって、デ
ータRAM100にあるデータが記憶される。
【0024】CLK2信号の次の立下がりの時刻234
で、これが読出ヒットであり、LRURAM116を更
新する必要があるので、TAGWE信号がHになる。C
LK2信号の次の立上がりの時刻236で、LRAMC
S信号がHになって、LRURAM116への書込操作
が発生できる。勿論、この時点で、より好ましい1つ或
は複数のDRAMCS信号がLになって、サイクル2の
データの書込操作がデータRAM100に対して完了す
る。CLK2信号の次の立下がりの時刻238で、DW
E信号は、もはやデータRAM100への書込が必要と
しないので、Lになる。CLK2信号の次の立上がりの
時刻240で、ADS*信号がLになって、第4サイク
ル用のアドレスがアドレスバス上に供給されていること
を指示する。追加的に、この時点で、LRAMCS信号
がLになって、LRURAM116への実書込操作を終
端する。最終的に、この時点で、DRAMCS信号がH
になり、一方DWE信号がLになって、これがデータR
AM100の読出操作であり、従ってデータがサイクル
3のために、主メモリ20でなく、キャッシュシステム
24から供給されることを指示する。CLK2信号の次
の立下がりの時刻242で、TAGWE信号がLになっ
て、LRURAM116への書込サイクルを完了する。 CLK2信号の次の立上がりの時刻244で、第3サイ
クルの完了を指示するRDY*信号がLになる。追加的
に、この時点で、アドレスが第4サイクルのためにアド
レスバス上に存在しているので、タグ情報を得るために
、TAGEN、TRAMCS、MRAMCS及びLRA
MCS信号が各々Hになる。最終的に、この時点で、D
RAMCS信号がLになって、データRAM100から
の読出操作を完了する。
【0025】CLK2信号の次の立上がりの時刻246
で、ADS*及びRDY*信号がHになって、第3サイ
クルのデータ段階の完了を指示する。追加的に、この時
点で、種々のタグ関連信号が各々Lになって、タグ読出
及び比較操作の完了を指示する。CLK2信号の次の立
下がりの時刻248で、これが書込ヒットであり、それ
故、タグRAM110を更新する必要がないが、LRU
RAM116を更新する必要があり、それ故TAGWE
信号をHにしなければならないので、TAGWE信号が
Hになる。CLK2信号の次の立上がりの時刻250で
、LRAMCS信号がHになって、新規なLRU情報が
LRURAM116に書込まれる。CLK2信号の次の
立下がりの時刻252で、DWE信号は、これが書込ヒ
ットであり、それ故、データがデータRAM100に書
込まれなければならないので、Hになる。CLK2信号
の次の立上がりの時刻254で、LRAMCS信号がL
になって、LRU情報のLRURAM116への書込を
完了する。CLK2信号の次の立下がりの時刻256で
、TAGWE信号がLになる。CLK2信号の次の立上
がりの時刻258で、第4サイクルの完了を指示するR
DY*信号がLになる。プロセッサ20がアイドル状態
に入り、それ故アドレスが供給される必要がないので、
新規なADS*信号が供給されないことが注目される。 CLK2信号の次の立上がりの時刻260で、RDY*
信号がHになって、DRAMCS信号もHになる。 従って、DRAMCS信号がLになった時には、データ
がデータRAM100に書込まれ、操作がCLK2信号
の次の立上がりの時刻262で完了する。サイクルを完
了するためには、CLK2信号の次の立下がりの時刻2
64で、DWE信号をLにさせる。
【0026】それ故、各メモリ操作毎にタグRAM10
0、タグ有効RAM114及びLRURAM116が読
出されるが、入れ換えサイクル中の新規アドレス或はス
ヌープサイクル中の無効ビットのような、情報の更新が
必要なる時にのみ、タグ有効RAM114に書込まれ、
LRURAM116がヒット或は入れ換えサイクルが発
生してLRU情報のカレントを保持する時に書込まれる
【0027】LRUロジック118、タイミング及び制
御ロジック102のより詳述した概略の幾つかを進めて
みると、LRURAM116から供給される6ビットの
情報は、6個のインバータ300の入力で受信される。 LRURAM116の0及び1位ビットは、セットにお
ける4ウエイの最近最小使用(LRU)ウエイに関連す
る情報を含み、一方、2及び3位ビットがLRU+1の
ウエイ即ち最近最小使用の次を指示し、4及び5位ビッ
トが最近最大使用(MRU)のウエイを指示する。2ビ
ットは、キャッシュにおける4ウエイにとって、2ビッ
トが各ウエイの指示に必要なので、各ウエイと関連する
。第4のウエイ即ちMRU−1が示すように他の3つの
ウエイから展開できるので3セットのみをセーブする必
要がある。インバータ300の出力は、各々BLOUT
<5〜0>*信号である。
【0028】BLOUT<0>*信号は、2対1マルチ
プレクサ302の一入力として供給される。BLOUT
<1>*信号は、第2の2対1マルチプレクサ304の
類似入力として供給される。マルチプレクサ302の他
入力には、2入力ナンドゲート306の出力が供給され
る。ナンドゲート306の一入力は、Lの場合に、マッ
チ(一致)がウエイ1でなされたことを指示するMAT
CH<1>*信号である。ナンドゲート306の第2入
力は、Lの場合に、一致がウエイ3でなされたことを指
示するMATCH<3>*信号である。マルチプレクサ
304の第2入力には、その一入力信号がMATCH<
3>*信号である、2入力ナンドゲート308の出力が
供給される。ナンドゲート308の他入力は、Lの場合
に、一致がキャッシュのウエイ2でなされたことを指示
するMATCH<2>*信号である。この明細書の目的
のマッチは、タグアドレス値が現在のアドレスと一致し
た時であり、種々の有効ビットがMATCH*信号の展
開(進展)を無視する。マルチプレクサ302及び30
4の選択入力は、その入力がALLOCATE*信号で
あるインバータ310から供給される。このALLOC
ATE*信号は、キャッシュ用の入れ換え或はプロセッ
サ読出ミスが発生した時にLとなる。マルチプレクサ3
02の出力がLRUMUX<0>信号であり、一方マル
チプレクサ304の出力がLRUMUX<1>信号であ
る。これらLRUMUX信号は、ヒット、プロセッサ基
準の読出或は書込ヒット或はスヌープヒットのいずれか
、或は入れ換えサイクルの場合におけるLRUウエイの
結果として展開したマッチを基礎として、データRAM
100から選択されるウエイを指示する。
【0029】LRUMUX<0>信号は、2入力アンド
ゲート312の一入力として供給される。アンドゲート
312の他入力には、Lの時に、LRURAM116が
初期化されることを指示するLRUINIT*信号が供
給される。同様に、LRUMUX<1>信号は、他入力
がLRUINIT*信号である、2入力アンドゲート3
12の一入力として供給される。アンドゲート312及
び314の出力は、ヒット操作からアクセスされ、或は
特定のメモリ操作において読出ミス操作においてアクセ
スされるウエイを示すACCESS<1〜0>信号であ
る。
【0030】LRUMUX<0>及びLRUMUX<1
>信号は、勿論、LRU、LRU+1或はMRUが現在
アクセスされたかどうかを決定する一連のイコール(X
NOR)ゲートに入力として使用される。LRUMUX
<0>信号がイコールゲート316、318及び320
に一入力として供給され、一方、LRUMUX<1>信
号が一連の2入力イコールゲート322、324及び3
26に一入力として供給される。イコールゲート316
の第2入力がBLOUT<0>*信号であり、一方イコ
ールゲート322の第2入力がBLOUT<1>*信号
である。イコールゲート316及び322の出力は、そ
の出力がLRU  EQ  ACCESS*信号である
2入力ナンドゲート328の2つの入力である。それ故
、現在或はアクセスされるウエイがLRUウエイならば
、LRU  EQ  ACCESS*信号がLになる。
【0031】イコールゲート318の第2入力がBLO
UT<2>*信号であり、一方イコールゲート324の
第2入力がBLOUT<3>*信号である。イコールゲ
ート318及び324の出力は、その出力がLRU+1
  EQ  ACCESS*信号である2入力ナンドゲ
ート330の2つの入力である。同様に、BLOUT<
4>*信号がイコールゲート320の第2入力として供
給され、一方BLOUT<5>*信号がイコールゲート
326の第2入力として供給される。イコールゲート3
20及び326の出力は、その出力がMRU  EQ 
 ACCESS*信号として参照される2入力ナンドゲ
ート332の2つの入力である。それ故、イコールゲー
トの組は、記憶されたウエイの1つがアクセスされるか
どうかを決定するために使用される。
【0032】更に、MRU−1ウエイを決定することが
必要であり、これは2個の3入力XORゲート334及
び336で形成される。3入力XORゲート334がB
LOUT<1>*、BLOUT<3>*及びBLOUT
<5>*信号を受信し、一方3入力XORゲート336
がBLOUT<0>*、BLOUT<2>*及びBLO
UT<4>*信号を受信する。3入力XORゲート33
4の出力がMRU−1<1>*信号であり、一方3入力
XORゲート336の出力がMRU−1<0>信号であ
る。従って、4ウエイの内3つを記憶することが必要で
あり、第4ウエイが容易に展開できることが解る。各ヒ
ット或は入れ換えサイクルがデータを読出或は書込させ
るので、これらの操作の各々でLRU値を入れ換え或は
更新することが必要である。次の等式は、LRURAM
116に発生する入れ換えウエイの決定に使用される。 もし、プロセッササイクルが発生したならば、等式は次
の通りである。
【0033】   MRU=ACCESS   LRU+1=MRU−1〔(ACCESS=LRU
)+(ACCESS=              L
RU+1)の場合〕+LRU+1〔(ACCESS=M
RU)              +(ACCESS
=MRU−1)の場合〕  LRU=LRU+1〔AC
CESS=LRUの場合〕+            
  LRU〔ACCESS<>LRUの場合〕但し、A
CCESSは、現在ある或はアクセスされるウエイの値
である。
【0034】従って、現存或はアクセスされるウエイが
MRUウエイとしてセットされ、一方LRUウエイは、
LRUウエイが現存せず或はアクセスされるならば前の
LRUウエイに留まり、或はLRUウエイが現存或はア
クセスされるならば、前のLRU+1ウエイに割当てら
れる。LRU+1ウエイは、もしMRU或はMRU−1
ウエイが現存或はアクセスされるならば前のLRU+1
ウエイに留まり、或はLRU或はLRU+1ウエイが現
存或はアクセスされるならば前のMRU−1ウエイにセ
ットされる。
【0035】もしスヌープサイクルが発生したならば、
次の等式が使用される。
【0036】   MRU=MRU〔ACCESS<>MRUの場合〕
          +MRU−1〔ACCESS=M
RUの場合〕  LRU+1=LRU+1〔ACCES
S=LRUの場合〕              +L
RU〔ACCESS<>LRUの場合〕  LRU=A
CCESS
【0037】従って、現存或はアクセスされるウエイは
LRUウエイにセットされる。これは、この位置がスヌ
ープヒットで無効にされ、従って入れ換えられない有効
データの機会が増加するので、プロセッサ基準の場合と
異なる。MRUウエイは、アクセスがMRUウエイに対
してでないならば前のMRUウエイに留まり、アクセス
がMRUウエイに対するならば前のMRU−1にセット
される。LRU+1ウエイは、もしアクセスが前のLR
Uウエイに対してであるならば前のLRU+1にセット
され、もしアクセスが前のLRUウエイに対してである
ならば前のLRUウエイにセットされる。
【0038】従って、入れ換え、再入れ換えがプロセッ
サアクセスの回数、ウエイの使用歴に好ましく基づいて
いる。
【0039】この入れ換えは、図5に示す一連のマルチ
プレクサを用いて展開される。LRURAM116の2
つの入力であるLIN<1,0>信号は、2ビット幅の
2対1マルチプレクサ350の反転出力から供給される
。マルチプレクサ350の選択入力は、LRUINIT
*信号が入力されるインバータ352の出力から供給さ
れる。マルチプレクサ350のB入力には、LRUIN
IT*信号をLで示すように、もしLRURAM116
が初期化されるならば、LIN<1,0>信号は、ウエ
イ0が最近最小使用であることを指示する2つのLを送
るように、2つのH値(1値)を受信する。マルチプレ
クサ350の2組のA入力には、2ビット幅の4対1マ
ルチプレクサ354の出力が各々供給される。マルチプ
レクサ354のB選択入力にはSNPCYCLE信号が
供給され、一方マルチプレクサ選択の低次ビット即ちA
入力に、2入力アンドゲート356の出力が供給される
。アンドゲート356の一入力は、SNPCYCLE*
信号、即ちSNPCYCLE信号の反転信号であり、他
の入力がLRU  EQ  ACCESS*信号である
。 マルチプレクサ354は、00入力にBLOUT<3,
2>*信号が供給され、01入力にBLOUT<1,0
>*信号が供給され、10入力にACCESS<1,0
>信号が供給され、11入力にL値(0値)が供給され
る。それ故、スヌープサイクルが発生した時には、マル
チプレクサ354で10入力が選択される。従って、ス
ヌープサイクルのアクセスされたウエイは常に最近最小
使用(LRU)として指示される。スヌープサイクルが
発生しない時には、アクセスされるウエイが前のLRU
であるか否かに依存して、00或いは01入力が選択さ
れる。もしそうであれば、BLOUT<3,2>*信号
或はLRU+1値がLRUに供給される。もしそうでな
ければ、一入力が選択され、現行のLRU値が通り過ぎ
て、LRU値に留まる。
【0040】LRURAM116にLIN<3,2>信
号即ちLRU+1情報を供給するためには、2ビット幅
の2対1マルチプレクサ358が用いられる。LIN<
3,2>信号は、選択入力がインバータ352の出力か
ら供給される、マルチプレクサ358の反転出力から供
給される。マルチプレクサ358のB即ち第2チャンネ
ル入力には、LRUの開始時に、LRU+1指示がウエ
イ1であるように、H及びL信号が各々供給される。マ
ルチプレクサ358のA入力には、2ビット幅の4対1
マルチプレクサ360の出力が各々供給される。マルチ
プレクサ360は、00入力にBLOUT<3,2>*
信号が供給され、01入力にMRU−1<1,0>*信
号が供給され、10入力にBLOUT<1,0>*信号
が供給され、11入力にL値(0値)が供給される。マ
ルチプレクサ360の選択入力のLSBは、2入力ノア
ゲート362の出力から供給される。このノアゲート3
62は、反転入力がSNPCYCLE信号に接続され、
他の入力が2入力アンドゲート364の出力に接続され
る。アンドゲート364は、一入力がLRU  EQ

0041】ACCESS*信号であり、他の入力がLR
U+1  EQ  ACCESS*信号である。マルチ
プレクサ360の高次選択入力が2入力にアンドゲート
366の出力から供給される。このアンドゲート366
は、一入力がSNPCYCLE信号であり、他の入力が
LRU  EQ  ACCESS*信号である。関連の
ロジック回路362、364及び366を伴うマルチプ
レクサ360及び358の接続は、スヌープ及びプロセ
ッササイクルのために前述したLRU+1の等式を形成
する。
【0042】MRU即ちLIN<5,4>ビットは、2
ビット幅の2対1マルチプレクサ368の反転出力から
供給される。マルチプレクサ368の選択入力がインバ
ータ352の出力から供給され、一方、B即ち第2チャ
ンネル入力には、LRURAM116の開始時に、MR
Uウエイがウエイ3となるように、2つのLが各々接続
される。マルチプレクサ368のA入力には、2ビット
幅の4対1マルチプレクサ370の出力が各々供給され
る。マルチプレクサ370は、00入力にBLOUT<
5,4>*信号が供給され、01入力にMRU−1<1
,0>*信号が供給され、10入力にACCESS<1
,0>信号が供給され、11入力にL値が各々供給され
る。マルチプレクサ370のLS選択Bは、2入力ノア
ゲート372の出力から供給される。このノアゲート3
72は、一入力がMRU  EQACCESS*信号か
ら供給され、他の入力がSNPCYCLE*信号を受信
する。マルチプレクサ370の高次選択入力がSNPC
YCLE*信号に接続される。それ故、マルチプレクサ
368及び370及びゲート372の合同は、前述した
ようにMRUの等式の機能を形成する。
【0043】このLRU再入れ換えロジックは、各アク
セス毎に働き、それ故チップ選択及び書込制御ロジック
は、プロセッサ読出或は書込ヒット操作、スヌープヒッ
ト操作及び入れ換え即ちプロセッサ読出ミス操作でのみ
のLRU再入れ換え情報を好ましくセーブすることが必
要である。このロジックは、図5以下の図面に各々詳述
される。
【0044】LRUロジック118の機能の1つは、ウ
エイデータが入れ換え状況において配置されるべき位置
の指示をタイミング及び制御ロジック102に供給する
ことである。このロジックは図6に示される。2入力ア
ンドゲート400は、入力としてBLOUT<1>*及
びLRUINIT*信号を受信する。第2の2入力アン
ドゲート402は、入力としてBLOUT<0>*及び
LRUINIT*信号を受信する。アンドゲート400
の出力にはインバータ404が接続され、一方アンドゲ
ート402の出力にはインバータ406が接続される。 所望のLRUウエイの指示は、4個の2入力ナンドゲー
ト408、410、412及び414から供給される。 ナンドゲート408は、2つの入力がアンドゲート40
0の出力及びアンドゲート402の出力であり、その出
力がウエイ3を用いるべきことを指示するLRUWAY
<3>*信号である。ナンドゲート410は、2つの入
力にアンドゲート400の出力及びインバータ406の
出力が供給されて、その出力がウエイ2を選択すべきこ
とを指示するLRUWAY<2>*信号である。ナンド
ゲート412は、2つの入力がアンドゲート402の出
力及びインバータ404の出力であり、その出力がウエ
イ1を使用すべきことを指示するLRUWAY<1>*
信号を送出する。LRUWAY<0>*信号は、入力と
してインバータ404及び406の出力を受信するナン
ドゲート414の出力として形成される。従って、入れ
換え操作のために、LRUウエイが直接指示され、タイ
ミング及び制御ロジック102で使用するためにデコー
ドされる。
【0045】TAGWE信号は、図6に示すように生成
される。BADS信号、即ちプロセッサ制御バスに供給
されるADS*信号のバッファされた反転信号は、2入
力ナンドゲート420の一入力として供給される。タグ
アクセス早見サイクルが進行していることを指示するT
AGEN信号は、ナンドゲート420の第2入力として
供給される。このナンドゲート420の出力は4入力ナ
ンドゲート422の一入力である。このナンドゲート4
22の第2入力は、プロセッサ20或はプロセッサバス
が状態(ステート)T2Pでないことを指示するT2P
*信号である。このステート状況は、図3のタイミング
図に示しているが、プロセッサバスのステートは示さな
い。ナンドゲート422は、第3入力が書込操作の進行
中及びバスマスタの制御中を指示するSNPWE*信号
であり、第4入力に2入力ナンドゲート424の出力が
供給される。ナンドゲート424は、1入力がもし必要
ならば、タグ或はLRU値が更新或は書込まれるステー
トにバスサイクルがある時に発生するSYCTAG信号
であり、第2入力がD型フリップフロップ426の非反
転出力である。このフリップフロップ426は、D入力
にナンドゲート422の出力が供給され、クロック信号
がCLK2信号から供給される。勿論フリップフロップ
426の非反転出力がラッチ428のD入力に供給され
る。このラッチ428は、反転イネーブル入力にCLK
2出力が接続され、反転出力がインバータ430に接続
される。インバータ430の出力はTAGWE信号であ
る。従って、TAGWE信号が図3に示すように生成さ
れる。
【0046】操作がスヌープサイクルにあるか否かを決
定するためにステートマシンが形成される。このステー
トマシンは図8に示される。3入力ノアゲート440に
は、Lの時にプロセッサバスがステートT1にあること
を指示するT1*信号、Lの時にプロセッサ20がホー
ルド状態にあることを指示するHOLDA*信号、及び
Lの時にスヌープ書込操作が発生していることを指示す
るSNPSTB*信号即ちスヌープストローブ信号が各
々供給される。このノアゲート440の出力がD型フリ
ップフロップ442のD入力に供給される。フリップフ
ロップ442は、クロック入力にCLK2信号が供給さ
れ、非反転出力がD型フリップフロップ444のD入力
に供給される。このフリップフロップ444は、クロッ
ク入力にCLK2信号が供給され、非反転出力がSNO
OPING信号であり、反転出力がLの時にスヌープサ
イクルの進行中を指示するSNPCYCLE*信号であ
る。SNPCYCLE*信号は、2個のノアゲート44
6及び448の入力に各々供給される。ノアゲート44
6の第2入力には、2入力アンドゲート450の出力が
供給される。アンドゲート450は、一入力にD型フリ
ップフロップ452の反転出力が供給され、他の入力に
D型フリップフロップ454の反転出力が供給される。 フリップフロップ452及び454は、CLK2信号で
クロックされる。ノアゲート446の出力は、フリップ
フロップ452のD入力と、インバータ456とに供給
される。インバータ456の出力がSNPWE*信号で
ある。フリップフロップ452は、非反転出力がSNP
B信号であり、反転出力がSNPB*信号である。SN
PB*信号は、2入力アンドゲート458の一入力に供
給される。このアンドゲート458は、他の入力にフリ
ップフロップ454の出力が供給されて、その出力がノ
アゲート448の第2入力に接続される。フリップフロ
ップ454のD入力にはノアゲート448の出力が接続
される。従って、ステートマシンは、スヌープ操作のサ
イクルを追跡するように展開される。
【0047】フリップフロップ454の反転信号即ちS
NPA*信号及びSNOOPING信号は、2個の3入
力ナンドゲート460及び462に供給される。ナンド
ゲート460の第3入力がSNPB*信号であり、一方
ナンドゲート462の第3入力がSNPB信号である。 ナンドゲート460の出力は、タグ読出操作を形成する
スヌープバスサイクルの時間を指示するSNPCHEC
K*信号であり、一方ナンドゲート462の出力が2入
力オアゲート464の一入力として供給される。オアゲ
ート464の他の入力は、後に定義するIHIT*信号
であり、その出力が後述されるSNPLRU*信号であ
る。
【0048】比較器112を形成する回路の部分は図9
に示す。図示の回路は、MATCH(一致)及びヒット
が展開されたか否かを決定する。図9には、比較器11
2の1つのウエイのみが示されるが、比較器112には
、4グループの類似回路が形成されて、4ウエイの各々
毎に比較操作を形成することが注目される。グループ間
の差異は図面で小文字のnで表示される。タグRAM1
10からの記憶されたタグアドレス出力即ちTOUTn
<23〜10>は、一群14個のイコールゲート470
に各々供給される。イコールゲート470の各他入力に
は、一連(一群)のイコールゲート470が早見を形成
し、タグアドレス値が現在のアドレス値と等しいかどう
かを決定するマッチングを形成するように、プロセッサ
アドレスバスPAの23〜10位ビットが供給される。 イコールゲート470の14個の出力は、一連のアンド
ゲート472、474、476及び478に供給される
。これらアンドゲートは、4入力型で、アンドゲート4
72、474及び476の全入力と、アンドゲート47
8の2つの入力とにイコールゲート470の各出力が接
続される。アンドゲート478の第3入力は、タグが有
効であるか否かを指示するために、特定のウエイ毎にタ
グ有効RAM114から供給されるMOUT<n>信号
である。アンドゲート478の第4入力には3入力アン
ドゲート480の出力が供給される。このアンドゲート
480の一入力には3入力ナンドゲート482の出力が
供給される。ナンドゲート482の入力は、読出操作の
進行中を指示するCCHERD1*信号、書込操作の進
行中を指示するCCHEWR*信号及びSNPCYCL
E*信号である。一方、アンドゲート480の第2入力
は、キャッシュシステム24がイネーブルであることを
指示するCCHEN信号である。これは、キャッシュシ
ステム24におけるアドレスできるレジスタ(図示略)
の出力として形成される。アンドゲート480の第4入
力は、キャッシュシステム24が準備できず、或は現行
のサイクルを進行でき、読出ミスが強制されることを指
示するBYPASS*信号である。この信号は、起こり
得るコヒーレンシ問題が関わらないように、一斉操作中
にのみ有効である。従って、アンドゲート472、47
4、476及び478は、アドレスが等しいか、タグが
有効かどうかの決定を完成するために使用される。
【0049】検査されるタグ値を持つ外に、ライン値が
有効であることも要求される。この結果、ライン有効出
力がタグRAM110から8対1マルチプレクサ484
に供給される。プロセッサアドレスビット3〜1は、マ
ルチプレクサ選択入力に供給されて、適切な16ビット
のライン有効ビットがマルチプレクサ484の出力から
供給される。
【0050】種々のヒット指示が比較器112で形成さ
れる。MATCH<n>*信号は4入力ナンドゲート4
86の出力である。従って、MATCH<n>*信号は
、有効タグ一致が発生したことを指示するが、ラインが
かならずしも有効であることを指示しない。TAGIH
IT<n>*信号は、ライン有効情報と協働ぜす、5入
力ナンドゲート488の出力として形成される。マルチ
プレクサ484の出力及び4個のアンドゲート472〜
478の出力は、ナンドゲート488の入力である。
【0051】4ウエイ毎のTAGIHIT<n>*信号
は、4入力アンドゲート500の4つの入力として供給
される(図10)。アンドゲート500の出力は、Lの
時にいずれかのウエイでヒットが決定されたことを指示
するIHIT*信号である。勿論、4つのTAGIHI
T<n>*信号は、第2の4入力アンドゲート502に
供給される。4ウエイ毎のMATCH<n>*信号は、
4入力ナンドゲート504の入力に各々供給される。4
つのMATCH信号は、4入力アンドゲート506の入
力にも供給される。3入力アンドゲート508は、それ
らの入力として、CCHEN信号、BYPASS*信号
及び、入力としてCCHERD1*信号を受信するイン
バータ510の出力を受信する。アンドゲート502の
出力、ナンドゲート504の出力、アンドゲート508
の出力及び、Lをアサートした時に、プロセッサバス上
でアドレスされた特定のアドレスがキャッシュ用のアド
レスでないことを指示するNCA*信号は、4入力ナン
ドゲート512の4つの入力として供給される。ナンド
ゲート512の出力は、Lの時に、キャッシュ読出ミス
操作がライン無効化で発生したことを指示するVALI
DATE*信号である。アンドゲート502の出力、ア
ンドゲート506の出力、アンドゲート508の出力及
びNCA*信号は、その出力がALLOCATE*信号
である、4入力ナンドゲート514の4つの入力に供給
される。ALLOCATE*信号は、Lの時に、プロセ
ッサ読出操作中にいずれかのキャッシュミスが発生し、
それ故新規なデータが供給されなればならず、或はキャ
ッシュに配置しなければならないことを指示する。
【0052】LRURAM116が活性化した時を決定
するために、LRAMCS信号を展開する必要がある。 LRAMCS信号は、2入力ナンドゲート520の出力
として形成される(図7)。ナンドゲート520の一入
力に2入力ナンドゲート522の出力が供給される。ナ
ンドゲート522の一入力は、アドレスがプロセッサバ
スに供給している時にHとなるADS信号である。ナン
ドゲート522の第2入力は、D型フリップフロップ5
24の非反転出力である。フリップフロップ524のD
入力には、T1或はT2Pプロセッサ制御バスステート
の発生中を指示し、ADSで制限した時にプロセッササ
イクルのためのタグ読出操作が起こることを指示するA
SYNCTAG信号が供給される。フリップフロップ5
24のクロック入力がCLK2信号から供給される。
【0053】ナンドゲート520の第2入力は、D型フ
リップフロップ526の反転出力から供給される。この
フリップフロップ526は、クロック入力がCLK2信
号から供給され、D入力に2入力ナンドゲート528の
出力が接続される。ナンドゲート528の一入力には2
入力ナンドゲート530の出力が接続される。ナンドゲ
ート530の一入力は、タグシステムが活性化し、更新
をすべきであることを指示するためのCCHEN信号及
びBYPASS*信号の合同から展開された、タグ値が
更新されるべきことを指示するTAGUPDEN信号で
ある。ナンドゲート530の第2入力には、2入力ナン
ドゲート532の出力が供給される。ナンドゲート53
2の一入力がSNPLRU*信号であり、他の入力がS
NPCHECK*信号である。ナンドゲート528の第
2入力には3入力ナンドゲート534の出力が供給され
る。ナンドゲート534は、一入力がTAGUPDEN
信号であり、第2入力がSYNCTAG信号であり、第
3入力に3入力ナンドゲート536の出力が供給される
。ナンドゲート536の3つの入力は、ALLOCAT
E*、VALIDATE*及びIHIT*信号である。 フリップフロップ526の非反転出力は、LRAMUP
D信号である。従って、スヌープサイクルが進行中で、
ヒットに基づくタグ値を検査する時となり、或はプロセ
ッサヒット或はキャッシュミスサイクルが発生している
ならば、タグRAM116がイネーブルである。
【0054】本発明の前の開示及び記載は、例示及び説
明のためになされたもので、寸法、形状、材料、部品、
回路要素、結線接続及び接点の種々の変更が、記載の回
路及び構成及び操作方法と同様に、本発明の技術的範囲
を逸脱しないでなされてもよい。
【0055】
【発明の効果】以上説明したように、本発明による真性
LRUの入れ換え方法及び装置は、キャッシュメモリー
のヒット率を従来のそれより高めることができる。
【図面の簡単な説明】
【図1】本発明と協働するコンピュータシステムのブロ
ック図である。
【図2】図1のコンピュータのキャッシュシステムのブ
ロック図である。
【図3】図1のコンピュータ及び図2のキャッシュシス
テムに使用される種々の信号のタイミング図である。
【図4】図2のキャッシュシステムの回路の部分概略図
である。
【図5】図2のキャッシュシステムの回路の部分概略図
である。
【図6】図2のキャッシュシステムの回路の部分概略図
である。
【図7】図2のキャッシュシステムの回路の部分概略図
である。
【図8】図2のキャッシュシステムの回路の部分概略図
である。
【図9】図2のキャッシュシステムの回路の部分概略図
である。
【図10】図2のキャッシュシステムの回路の部分概略
図である。
【符号の説明】
20  プロセッサ 24  キャッシュシステム 100  データRAM 102  タイミング及び制御ロジック110  タグ
RAM 114  タグ有効RAM 116  LRURAM 118  LRUロジック

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】プロセッサと、メモリアクセス操作を形成
    する他の手段とを有するコンピュータシステムに用いる
    キャッシュシステムにおいて、キャッシュがnウエイセ
    ットアソシアティブキャッシュとして組織され、但しn
    が2より大きく、キャッシュシステムがメモリアクセス
    操作をモニターし、このキャッシュシステムは、メモリ
    アドレスが供給された時と同時にアクセスされるビット
    として、キャッシュシステムにおける各セット毎にn−
    1使用年令用のウエイ使用歴の情報を記憶するメモリ手
    段と、残りの使用歴のための各セットの残りのウエイ情
    報を決定する手段と、プロセッサ形成或は他の手段形成
    サイクルがモニターされたかどうかを決定する手段と、
    各メモリアクセス毎にウエイ使用歴情報を入れ換える手
    段とを備え、この入れ換え手段は、前記メモリ手段及び
    前記残りのウエイ手段から既に記憶されたウエイ使用歴
    情報を受信し、プロセッサキャッシュヒットでのアクセ
    スされた位置を含むウエイ或はプロセッサキャッシュミ
    スでアクセスされたウエイを最近最大使用ウエイにセッ
    トし、他の記憶されたウエイ使用歴情報をプロセッサ使
    用歴の順序に再配置して、スヌープ書込キャッシュヒッ
    トでのアクセスされた位置を含む前記ウエイを最近最小
    使用ウエイに配置し、他の記憶されたウエイ使用歴情報
    をプロセッサ使用歴の順序に再配置し、プロセッサキャ
    ッシュヒット、プロセッサ読出キャッシュミス及び他の
    手段書込キャッシュヒットでの前記メモリ手段における
    前記記憶された使用歴情報を更新して、前記入れ換え手
    段で展開された入れ換えウエイ使用歴情報を反映するこ
    とを特徴とするキャッシュシステム。
  2. 【請求項2】前記メモリ手段は、n−1倍のウエイを識
    別するに必要なビット数の幅を持つRAMを含む請求項
    1記載のキャッシュシステム。
  3. 【請求項3】前記入れ換え手段は、どの使用歴ウエイが
    アクセスされたかを決定する手段を備えた請求項1記載
    のキャッシュシステム。
  4. 【請求項4】前記入れ換え手段は、更に、n−1個のマ
    ルチプレクサを備え、各マルチプレクサは、前記メモリ
    手段の定義された使用歴を持つウエイの情報を形成し、
    前記マルチプレクサの入力がプロセッサ或は他の手段が
    メモリサイクルを形成するか否か、使用歴を持つ特定の
    ウエイが変更されるかどうかに基づいて選択される請求
    項3記載のキャッシュシステム。
  5. 【請求項5】前記アクセスされた使用歴ウエイ決定手段
    は、ウエイがアクセスされた情報を伴って、記憶された
    使用歴ウエイ情報の各々を比較する手段を備えた請求項
    3記載のキャッシュシステム。
  6. 【請求項6】前記残りのウエイ決定手段は、n−1使用
    歴ウエイ情報での排他的或は操作を形成する手段を備え
    た請求項1記載のキャッシュシステム。
  7. 【請求項7】前記入れ換え手段は、メモリデータを記憶
    するために、プロセッサ読出キャッシュミス操作中に使
    用されるウエイを指示する手段を備えた請求項1記載の
    キャッシュシステム。
JP3170562A 1990-06-15 1991-06-15 キャッシュシステム Pending JPH04233051A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US53902690A 1990-06-15 1990-06-15
US539,026 1990-06-15

Publications (1)

Publication Number Publication Date
JPH04233051A true JPH04233051A (ja) 1992-08-21

Family

ID=24149447

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3170562A Pending JPH04233051A (ja) 1990-06-15 1991-06-15 キャッシュシステム

Country Status (5)

Country Link
US (1) US5325511A (ja)
EP (1) EP0461923B1 (ja)
JP (1) JPH04233051A (ja)
AT (1) ATE158882T1 (ja)
DE (1) DE69127773T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6704843B1 (en) * 2000-10-26 2004-03-09 International Business Machines Corporation Enhanced multiprocessor response bus protocol enabling intra-cache line reference exchange

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5471605A (en) * 1992-08-27 1995-11-28 Intel Corporation Apparatus for updating a multi-way set associative cache memory status array
US5813028A (en) * 1993-10-12 1998-09-22 Texas Instruments Incorporated Cache read miss request invalidation prevention method
US5548742A (en) * 1994-08-11 1996-08-20 Intel Corporation Method and apparatus for combining a direct-mapped cache and a multiple-way cache in a cache memory
US5594886A (en) * 1994-10-23 1997-01-14 Lsi Logic Corporation Pseudo-LRU cache memory replacement method and apparatus utilizing nodes
US5893921A (en) * 1995-02-10 1999-04-13 International Business Machines Corporation Method for maintaining memory coherency in a computer system having a cache utilizing snoop address injection during a read transaction by a dual memory bus controller
US5652859A (en) * 1995-08-17 1997-07-29 Institute For The Development Of Emerging Architectures, L.L.C. Method and apparatus for handling snoops in multiprocessor caches having internal buffer queues
US5897651A (en) * 1995-11-13 1999-04-27 International Business Machines Corporation Information handling system including a direct access set associative cache and method for accessing same
US5715427A (en) * 1996-01-26 1998-02-03 International Business Machines Corporation Semi-associative cache with MRU/LRU replacement
US5845320A (en) * 1996-04-29 1998-12-01 Micron Technology, Inc. Circuit and method to implement a least recently used cache set replacement technique
US5781924A (en) * 1996-09-30 1998-07-14 Sun Microsystems, Inc. Computer caching methods and apparatus
US5809528A (en) * 1996-12-24 1998-09-15 International Business Machines Corporation Method and circuit for a least recently used replacement mechanism and invalidated address handling in a fully associative many-way cache memory
US6078995A (en) * 1996-12-26 2000-06-20 Micro Magic, Inc. Methods and apparatus for true least recently used (LRU) bit encoding for multi-way associative caches
TW374873B (en) * 1997-06-30 1999-11-21 Hyundai Electronics Ind A high-performance LRU memory capable of supporting multiple ports
WO2000062205A1 (en) * 1999-04-13 2000-10-19 Schulze Michael D Method of obtaining an electronically-stored financial document
US20120179715A1 (en) 1999-04-13 2012-07-12 Mirror Imaging L.L.C. Method of Obtaining An Electronically-Stored Financial Document
US6430655B1 (en) * 2000-01-31 2002-08-06 Mips Technologies, Inc. Scratchpad RAM memory accessible in parallel to a primary cache
US6658545B1 (en) * 2000-02-16 2003-12-02 Lucent Technologies Inc. Passing internal bus data external to a completed system
US6446171B1 (en) 2000-03-02 2002-09-03 Mips Technologies, Inc. Method and apparatus for tracking and update of LRU algorithm using vectors
US6604174B1 (en) 2000-11-10 2003-08-05 International Business Machines Corporation Performance based system and method for dynamic allocation of a unified multiport cache
US6587384B2 (en) * 2001-04-21 2003-07-01 Hewlett-Packard Development Company, L.P. Multi-function serial I/O circuit
US6950904B2 (en) * 2002-06-25 2005-09-27 Intel Corporation Cache way replacement technique
JP3953903B2 (ja) * 2002-06-28 2007-08-08 富士通株式会社 キャッシュメモリ装置、及び、参照履歴のビット誤り検出方法
US7734901B2 (en) * 2005-10-31 2010-06-08 Mips Technologies, Inc. Processor core and method for managing program counter redirection in an out-of-order processor pipeline
US7711934B2 (en) * 2005-10-31 2010-05-04 Mips Technologies, Inc. Processor core and method for managing branch misprediction in an out-of-order processor pipeline
US7562191B2 (en) * 2005-11-15 2009-07-14 Mips Technologies, Inc. Microprocessor having a power-saving instruction cache way predictor and instruction replacement scheme
US7496771B2 (en) * 2005-11-15 2009-02-24 Mips Technologies, Inc. Processor accessing a scratch pad on-demand to reduce power consumption
US7873820B2 (en) * 2005-11-15 2011-01-18 Mips Technologies, Inc. Processor utilizing a loop buffer to reduce power consumption
US7721071B2 (en) * 2006-02-28 2010-05-18 Mips Technologies, Inc. System and method for propagating operand availability prediction bits with instructions through a pipeline in an out-of-order processor
US20070204139A1 (en) 2006-02-28 2007-08-30 Mips Technologies, Inc. Compact linked-list-based multi-threaded instruction graduation buffer
US7370178B1 (en) * 2006-07-14 2008-05-06 Mips Technologies, Inc. Method for latest producer tracking in an out-of-order processor, and applications thereof
US20080016326A1 (en) * 2006-07-14 2008-01-17 Mips Technologies, Inc. Latest producer tracking in an out-of-order processor, and applications thereof
US7650465B2 (en) 2006-08-18 2010-01-19 Mips Technologies, Inc. Micro tag array having way selection bits for reducing data cache access power
US7657708B2 (en) * 2006-08-18 2010-02-02 Mips Technologies, Inc. Methods for reducing data cache access power in a processor using way selection bits
US7647475B2 (en) * 2006-09-06 2010-01-12 Mips Technologies, Inc. System for synchronizing an in-order co-processor with an out-of-order processor using a co-processor interface store data queue
US8032734B2 (en) 2006-09-06 2011-10-04 Mips Technologies, Inc. Coprocessor load data queue for interfacing an out-of-order execution unit with an in-order coprocessor
US7594079B2 (en) * 2006-09-29 2009-09-22 Mips Technologies, Inc. Data cache virtual hint way prediction, and applications thereof
US8078846B2 (en) 2006-09-29 2011-12-13 Mips Technologies, Inc. Conditional move instruction formed into one decoded instruction to be graduated and another decoded instruction to be invalidated
US20080082793A1 (en) * 2006-09-29 2008-04-03 Mips Technologies, Inc. Detection and prevention of write-after-write hazards, and applications thereof
US9946547B2 (en) 2006-09-29 2018-04-17 Arm Finance Overseas Limited Load/store unit for a processor, and applications thereof

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3949368A (en) * 1974-01-23 1976-04-06 Data General Corporation Automatic data priority technique
US4181937A (en) * 1976-11-10 1980-01-01 Fujitsu Limited Data processing system having an intermediate buffer memory
US4168541A (en) * 1978-09-25 1979-09-18 Sperry Rand Corporation Paired least recently used block replacement system
US4334289A (en) * 1980-02-25 1982-06-08 Honeywell Information Systems Inc. Apparatus for recording the order of usage of locations in memory
US4442488A (en) * 1980-05-05 1984-04-10 Floating Point Systems, Inc. Instruction cache memory system
US4467411A (en) * 1981-03-06 1984-08-21 International Business Machines Corporation Scheduling device operations in a buffered peripheral subsystem
US4464712A (en) * 1981-07-06 1984-08-07 International Business Machines Corporation Second level cache replacement method and apparatus
US4811203A (en) * 1982-03-03 1989-03-07 Unisys Corporation Hierarchial memory system with separate criteria for replacement and writeback without replacement
US4504902A (en) * 1982-03-25 1985-03-12 At&T Bell Laboratories Cache arrangement for direct memory access block transfer
WO1984002799A1 (en) * 1982-12-30 1984-07-19 Ibm A hierarchical memory system including separate cache memories for storing data and instructions
US5091850A (en) * 1987-09-28 1992-02-25 Compaq Computer Corporation System for fast selection of non-cacheable address ranges using programmed array logic
US5055999A (en) * 1987-12-22 1991-10-08 Kendall Square Research Corporation Multiprocessor digital data processing system
US5113510A (en) * 1987-12-22 1992-05-12 Thinking Machines Corporation Method and apparatus for operating a cache memory in a multi-processor
US4996641A (en) * 1988-04-15 1991-02-26 Motorola, Inc. Diagnostic mode for a cache
US4967414A (en) * 1989-01-06 1990-10-30 International Business Machines Corp. LRU error detection using the collection of read and written LRU bits
US5125085A (en) * 1989-09-01 1992-06-23 Bull Hn Information Systems Inc. Least recently used replacement level generating apparatus and method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6704843B1 (en) * 2000-10-26 2004-03-09 International Business Machines Corporation Enhanced multiprocessor response bus protocol enabling intra-cache line reference exchange

Also Published As

Publication number Publication date
EP0461923A2 (en) 1991-12-18
ATE158882T1 (de) 1997-10-15
DE69127773D1 (de) 1997-11-06
DE69127773T2 (de) 1998-04-02
EP0461923A3 (en) 1992-03-25
EP0461923B1 (en) 1997-10-01
US5325511A (en) 1994-06-28

Similar Documents

Publication Publication Date Title
JPH04233051A (ja) キャッシュシステム
US8015358B2 (en) System bus structure for large L2 cache array topology with different latency domains
US6192458B1 (en) High performance cache directory addressing scheme for variable cache sizes utilizing associativity
US8001330B2 (en) L2 cache controller with slice directory and unified cache structure
EP0734553B1 (en) Split level cache
US5640339A (en) Cache memory including master and local word lines coupled to memory cells
US7783834B2 (en) L2 cache array topology for large cache with different latency domains
JP3669555B2 (ja) 可変キャッシュ・サイズのための改良されたキャッシュ・ディレクトリ・アドレシング方法及び装置
EP1278125A2 (en) Indexing and multiplexing of interleaved cache memory arrays
US5778432A (en) Method and apparatus for performing different cache replacement algorithms for flush and non-flush operations in response to a cache flush control bit register
US7308537B2 (en) Half-good mode for large L2 cache array topology with different latency domains
US5822756A (en) Microprocessor cache memory way prediction based on the way of a previous memory read
EP0284751A2 (en) Cache memory
US5895490A (en) Computer system cache performance on write allocation cycles by immediately setting the modified bit true
US5835948A (en) Single bank, multiple way cache memory
US20030188124A1 (en) History-based carry predictor for data cache address generation
US5781925A (en) Method of preventing cache corruption during microprocessor pipelined burst operations
JP3614956B2 (ja) メモリ制御システム
JP2004259098A (ja) バンク制御回路及びキャッシュメモリ装置、並びにキャッシュメモリ装置の設計方法及びマイクロプロセッサの設計方法
US6460117B1 (en) Set-associative cache memory having a mechanism for migrating a most recently used set
Crisu An architectural survey and modeling of data cache memories in verilog hdl
WO2024035555A1 (en) Metadata-caching integrated circuit device
Martin et al. 68040 memory modules and bus controller
CA2044488A1 (en) True least recently used replacement method and apparatus
JPH0981458A (ja) データ処理システムにおけるキャッシュのアクセス方法