JP3068469B2 - 2次レベルキャッシュメモリシステム - Google Patents

2次レベルキャッシュメモリシステム

Info

Publication number
JP3068469B2
JP3068469B2 JP8227227A JP22722796A JP3068469B2 JP 3068469 B2 JP3068469 B2 JP 3068469B2 JP 8227227 A JP8227227 A JP 8227227A JP 22722796 A JP22722796 A JP 22722796A JP 3068469 B2 JP3068469 B2 JP 3068469B2
Authority
JP
Japan
Prior art keywords
address
cache
buffer
line
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.)
Expired - Fee Related
Application number
JP8227227A
Other languages
English (en)
Other versions
JPH10307752A (ja
Inventor
雅隆 渡辺
Original Assignee
新潟日本電気株式会社
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 新潟日本電気株式会社 filed Critical 新潟日本電気株式会社
Priority to JP8227227A priority Critical patent/JP3068469B2/ja
Priority to US08/919,194 priority patent/US6256708B1/en
Publication of JPH10307752A publication Critical patent/JPH10307752A/ja
Application granted granted Critical
Publication of JP3068469B2 publication Critical patent/JP3068469B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass

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)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータシス
テムのキャッシュメモリシステムに関し、特に、高速か
つ効率的に動作する2次レベルキャッシュメモリを有す
る2次レベルキャッシュメモリシステムに関する。
【0002】
【従来の技術】図21は、従来の2次レベルキャッシュ
メモリシステム(2次レベルキャッシュシステム;L2
キャッシュシステム)の一例を示すブロック図である。
【0003】従来の2次レベルキャッシュメモリシステ
ムは、図21に示すように、1次レベルキャッシュ(L
1キャッシュ)32を内蔵しているCPU(中央演算処
理装置)31を接続しているホストバス34に、ダイレ
トマップ方式の2次レベルキャッシュ(L2キャッシ
ュ)33とメインメモリ(主記憶装置)36をコントー
ロールする2次レベルシステムコトローラ(システムコ
トローラ)35が接続されており、メインメモリ36
は、システムコトローラ35に接続されている。また、
システムコトローラ35は、ローカルバス37を介して
ローカルバスマスタ38を接続している。
【0004】L1キャッシュ32は、CPU31に内蔵
されているため、L2キャッシュ33よりも高速処理が
可能である。L2キャッシュ33は、メインメモリ36
よりも高速処理が可能である。ホストバス34は、アド
レス・データ・ステータス等を転送するバスである。
【0005】上述の構成において、L2キャッシュ33
は、L1キャッシュ32よりも容量を大きくとることに
より、L1キャッシュ32に格納されていないメインメ
モリ36のデータの一部を格納して性能を向上させる役
割を持っている。
【0006】ダイレクトマップ方式のキャッシュシステ
ムは、図22に示すように、メインメモリとキャッシュ
の間のデータの授受の単位を1ライン(プロック)と
し、物理的にメインメモリとキャッシュをライン単位に
分割して制御する。ラインのアドレス41は、タグ(Di
rectry:アドレス上位部分)42とインデックス(アド
レス下位部分)43に分割される。ダイレトマップ方
式のキャッシュシステムは、1ウェイセットアソシエイ
ティブ方式のキャッシュシステムであり、タグとインデ
ックスが1対1に対応する構成を持つため、キャッシュ
に格納するラインのアドレスは、インデックスに基づい
て、対応するアドレスのタグをTAGRAMに格納し、
データは、データ格納用メモリのインデックスに対応し
たアドレスに格納する。そして、メモリリクエストされ
たアドレスのタグとキャッシュのTAGRAMに格納さ
れたタグが比較され、メモリリクエストされたアドレス
のタグとキャッシュのタグとが等しく、かつそのアドレ
スのラインが有効であるか否かを示すVALIDフラグ
が有効であった場合は、メモリリクエストされたライン
はキャッシュヒットとなる。そうでない場合はキャッシ
ュミスとなる。
【0007】従って、従来のダイレトマップ方式のL
2キャッシュシステムでは、同一の下位アドレス、すな
わち同一のインデックスを有する2組のラインを同時に
L2キャッシュに格納することは不可能である。
【0008】また、ライトバック方式(Store in方式と
もいう)のL2キャッシュシステムは、メモリライトリ
クエストの結果L2キャッシュヒットした場合は、メイ
ンメモリへのライトは実行せず、L2キャッシュに対し
てのみライトを行う。またL2キャッシュのライトミス
をした場合は、下記の2通りの方法がある。
【0009】(1) write allocate方式:リード動作
のときと同様に、L2キャッシュミスであってもL2キ
ャッシュのラインのリプレースメントを実行する。
【0010】(2) nowrite allocate方式:メモリラ
イトリクエストの結果がL2キャッシュミスの場合、L
2キャッシュのリプレースメントは実施せず、メインメ
モリに対するライトのみを実行する。
【0011】本明細書で取扱うライトバック方式のL2
キャッシュシステムは、メモリリクエストの結果がL2
キャッシュミスの場合は、nowrite allocate方式を前提
として取扱う。ライトバック方式のL2キャッシュシス
テムの場合、メモリライトリクエストの結果がL2キャ
ッシュヒットしたとき、L2キャッシュに対してのみラ
イトを実行するため、L2キャッシュに格納されてるラ
インのデータがメインメモリに対して一時的に更新さ
れ、メインメモリに格納されてるラインとの間にデータ
の不一致が発生する。このL2キャッシュに格納されて
るラインのデータがメインメモリに対して更新されたこ
とをDIRTYフラグを用いて記録し、メインメモリと
のデータのコーヒレンシを保証する制御が必要である。
この制御は、メモリリードリクエストの結果、L2キャ
ッシュミスによりL2キャッシュのリプレースメントが
実施されるとき、L2キャッシュから吐き出されるライ
ンのVALIDフラグが有効を示し、かつDIRTYフ
ラグが更新を示している場合に、そのラインを一旦メイ
ンメモリにライトバックすることによってデータのコー
ヒレンシを保証することが可能である。ライトバックの
後、リードリクエストしたラインをL2キャッシュに格
納する。
【0012】従来のダイレトマップ方式のL2キャッ
シュシステムは、上述の他に、L2キャッシュとメイン
メモリの関係において、L2キャッシャブルエリアやノ
ンキャッシャブルエリアやライトスルーエリアやライト
バックエリア等の設定が可能である。しかし、ダイレ
トマップ方式のキャッシュシステムにおいて、特定のメ
モリエリア(以下L2Sキャッシャブルエリアという)
をL2キャッシュにできるかぎり保存するための仕組は
ない。
【0013】2ウェイセットアソシエイティブ方式以上
のキャッシュシステムを改良して、例えば2ウェイのう
ちの1ウェイをL2Sキャッシャブルエリア専用として
割り当てて制御する方法は存在するが、この方法の場合
は、システム構成が複雑になり、費用もダイレトマッ
プ方式と比較して高くなるため、低コストでメモリ性能
を向上させることは難しい。従って一般には、メモリシ
ステム構成を低コストで実現できるダイレトマップ方
式のL2キャッシュシステムがパーソナルコンピュータ
のL2キャッシュとして広く普及している。
【0014】L2キャッシュの有効利用の観点から、
「特開平5−73415号公報」においては、CPUの
内部の1次レベルキャッシュ(L1キャッシュ)と外部
のL2キャッシュに格納されるラインが重複する事を削
減する目的のための手段が開示されている。この手段
は、L2キャッシュの容量がL1キャッシュの容量より
も少ないとき、CPUが要求するアドレスに対応するラ
インがL1キャッシュに存在しないがL2キャッシュに
存在する場合、L2キャッシュに存在しているラインと
L1キャッシュに存在しているラインとを相互に交換す
る手段を使用することにより、L1キャッシュおよびL
Sキャッシュの有効利用を実現している。
【0015】また、「特開平5−257807号公報」
では、L1キャッシュリードミスし、さらにL2キャッ
シュリードミスした場合のメインメモリからのリードの
処理速度の向上手段が開示されている。
【0016】「特開平4−288644号公報」では、
L1キャッシュとL2キャッシュが同時にリードミスし
た場合、メインメモリからのリードデータをL1キャッ
シュおよびL2キャッシュに単純に重複格納するのでは
なく、L1キャッシュモニタを採用することにより、L
1キャッシュの内部の状態によって、例えばL1キャッ
シュにインヴァリッド(INVALID)なキャッシュ
ラインが存在しないケースなどは、L2キャッシュにの
みメインメモリからのキャッシュラインを格納し、L1
キャッシュには格納しないなどの処理を行うことで、L
1キャッシュおよびLSキャッシュの有効利用と、L1
キャッシュとL2キャッシュの同時リードミスを削減す
る手段が開示されている。
【0017】
【発明が解決しようとする課題】上述したように、従来
の技術の第一の問題は、ダイレトマップ方式のL2キ
ャッシュシステムでは、例えばマルチタスク処理等で、
TAGRAMに格納される同じインデックスである下位
アドレスをもったAラインとBラインが頻繁にCPUか
らリードアクセスされるとき、AラインとBラインの両
方を同時にL2キャッシュに格納することが不可能であ
るため、AラインとBラインを交互にアクセスする度に
キャシュラインフィルが行われてしまうことである。従
って、このときのアクセスは、L2キャッシュアクセス
ではなく、メインメモリリードサイクルに変換されてし
まい、AラインおよびBラインはキャッシャブルエリア
に属するラインであるが処理速度が遅くなってしまう。
【0018】第二の問題は、ダイレトマップ方式で
は、システム起動中にユーザができる限りL2キャッシ
ュアクセスしたいエリア(L2Sキャッシャブルエリ
ア)があり、システムが動作中に現在のキャッシャブル
エリアの範囲に別のキャッシャブルエリアの追加または
削除を実施する場合には、L2キャッシュ全てをフラッ
シュしなければならないことである。また、ダイレ
マップ方式のL2キャッシュシステムでは、L2キャッ
シャブルエリアが複数に分割してL2キャッシュマップ
を構成している場合、特定のエリアだけを優先させてL
2キャッシュに格納しておくことはできない。
【0019】本発明の目的は、ダイレトマップ方式を
採用するL2キャッシュシステムの制限事項「TAGR
AMのアドレス、すなわちL2キャッシュラインの下位
アドレスについて、同一の下位アドレスを持った2組の
ラインをL2キャッシュに格納することは不可能であ
る。」に対して、可能な限りコストを抑制いしてその制
限から生じる上述の欠点を緩和し、高速処理化を実現す
ることである。
【0020】詳述すると、第一の目的は、システムに高
負荷のマルチタスク処理をさせる場合、ユーザが設定し
た特定メモリエリア(L2Sキャッシャブルエリア)ア
クセスに対しては、L2キャッシュリードミスした場合
でも、L2キャッシュと同等に近い(メインメモリより
も高速な)アクセスが可能な補助バッファ(L2Sアド
レス・ステータス・データバッファ)にL2Sキャッシ
ャブルエリアに属するラインを格納することにより、他
のL2キャッシャブルエリアよりも高速処理を可能にす
ることである。
【0021】第二の目的は、L2Sアドレス・ステータ
ス・データバッファがL2キャッシュよりも容量が少な
くても、L2Sアドレス・ステータス・データバッファ
内部の制御を工夫することにより、L2キャッシュとL
2Sアドレス・ステータス・データバッファの有効利用
を可能にし、低コストでメモリ性能を向上させることを
可能にすることである。
【0022】
【課題を解決するための手段】本発明の2次レベルキャ
ッシュメモリシステムは、CPUに内蔵されるL1キャ
ッシュと、メインメモリのアドレスとデータとの一部を
格納し、前記メインメモリよりも高速にリードライト動
作を行うことが可能なダイレクトマップライトバック対
応のL2キャッシュと、前記メインメモリを接続し前記
メインメモリおよび前記L2キャッシュを制御するシス
テムコントローラとを備える2次レベルキャッシュメモ
リシステムおいて、ユーザが頻繁に使用するかまたは
可能な限りの高速な処理を希望する前記メインメモリの
特定領域に対し、L2キャッシュのリプレースメントに
よって前記L2キャッシュから追い出されたアドレスお
よびデータと前記L2キャッシュにおけるステータスと
の組の複数組を格納するL2Sアドレス・ステータス・
データバッファを前記システムコントローラ内に設け、
さらに、前記CPUまたは前記システムコントローラに
ローカルバスを介して接続されるローカルバスマスタか
ら前記メインメモリに対するリクエストの結果として前
記L2キャッシュにおいてキャッシュミスが発生したと
き、前記L2Sアドレス・ステータス・データバッファ
から前記CPUまたは前記システムコントローラに対し
てデータを転送し、さらに、前記L2キャッシュに対し
てアドレスとデータをエントリするとき、エントリする
アドレスが前記特定領域であるL2Sキャッシャブルエ
リアに属するか否かを示すSDフラグを用いて前記L2
Sアドレス・ステータス・データバッファと前記L2キ
ャッシュとを制御し、さらに、前記L2Sアドレス・ス
テータス・データバッファの内部に格納しているアドレ
スおよびデータに対する前記CPUまたは前記ローカル
バスマスタからのリクエストに対して、前記L2Sアド
レス・ステータス・データバッファからリクエストされ
たアドレスに対応するデータを転送するとき、前記L2
Sアドレス・ステータス・データバッファからリクエス
トされたアドレスに対応するデータを転送したことを記
録する複数組のアクセスカウンタをL2Sアドレス・ス
テータス・データバッファの組に設け、前記アクセス
カウンタを用いて前記L2Sアドレス・ステータス・デ
ータバッファの内部の制御と前記L2キャッシュの制御
と前記メインメモリの制御とを行うようにしたものであ
る。
【0023】
【発明の実施の形態】次に、本発明の実施の形態につい
て図面を参照して説明する。
【0024】図1は本発明のキャッシュメモリ装置(L
2Sキャッシュメモリシステム)の一実施形態を組込ん
だコンピュータのブロック図、図2は図1の実施形態の
メモリマップ図、図3は図1の実施形態のアドレスを示
すフォーマット図、図4は図1のL2SバッファのL2
Sアドレス・ステータス部を示すブロック図、図5は図
1のL2SバッファのL2Sデータ部を示すブロック
図、図6〜図20は図1の実施形態の各種の動作状態に
おける信号の流れを示す関連図である。
【0025】図1を参照すると、本発明のL2キャッシ
ュメモリシステムを組込んだコンピュータは、L1−キ
ャッシュ100を内部に有するCPU1と、L2−キャ
ッシュ200のアドレス部が各エントリに格納されるL
2−TAGRAM2と、L2−TAGRAM2に対応す
るデータが格納されるL2−データSRAM3と、シス
テムコントローラ7と、上記のすべてを接続するホスト
バス8と、システムコトンローラ7とメモリバス5を介
して接続されるメインメモリ6と、ローカルバス20を
介して接続されるローカルバスマスタとから構成されて
いる。
【0026】L2−キャッシュ200は、L2−TAG
RAM2とL2−データSRAM3とから構成され、L
2−キャッシュ200の各エントリに対応したラインの
L2キャッシュにおけるステータスは、システムコトロ
ーラ7の内部にL2ステータス16として組み込まれて
いる。
【0027】また、システムコントローラ7は、L2S
キャッシャブルエリアに属するラインのアドレス部とス
テータス部とデータ部との組を複数組格納するためのL
2Sバッファ15と、通常のL2キャッシャブルエリア
に関する制御を実施するL2コントロール部11と、L
2Sキャッシャブルエリアに関する制御を実施するL2
Sコントロール部12と、メインメモリ6とメインメモ
リライトバッフア17とを制御するメインメモリコント
ロール部10と、その他の図示していない機能回路とか
ら構成されている。
【0028】また、L2Sバッファ15はFIFO類似
形式を採用したN段のバッファであり、L2Sキャッシ
ャブルエリアのアドレス部とステータス部の組を複数組
格納するL2Sアドレス・ステータス部13と、このL
2Sアドレス・ステータス部13の格段のアドレスに対
応したメインメモリ6上のアドレスに格納されているデ
ータを格納するL2Sデータ部14とから構成されてい
る。
【0029】図2を参照すると、本コンピュータのメモ
リ空間は、最大で4Gバイトであり、したがって、アド
レスは32ビットである。メモリマップはアドレス0h
〜FFFFFFFFh(hは16進数であることを示
す)となる。そして、システムの初期化時に、メモリ空
間の中でL2キャッシャブルエリアとしてアドレス0h
〜A、B〜C、D〜FFFFFFFFhまでが設定さ
れ、さらに、L2SキャッシャブルエリアとしてL2キ
ャッシャブルエリアのB〜Cのブロックの一部であるE
〜Fの領域が設定される。L2Sキャッシャブルエリア
はL2キャッシャブルエリアの一部であり、L2キャッ
シャブルエリアの1ライン長とL2Sキャッシャブルエ
リアの1ライン長とは同じ長さである。
【0030】次に、このメモリ空間と図1のそれぞれの
ブロックに接続されるアドレスとの関係を図3を参照し
て説明する。
【0031】図3(a)を参照すると、本コンピュータ
で扱うアドレスは32ビットであり、アドレス上位タグ
に相当するAD−1(AD31〜AD*)と、アドレス
下位インデクスに相当するAD−2(AD**〜AD0
5)と、L2Sキャッシュライン内アドレスAD−3
(AD04〜AD00)とに区分される。ここで、*=
**+1 である。
【0032】図3(b)を参照すると、L2−TAGR
AM2に格納されるデータ(タグ)は、アドレス上位A
D−1であり、L2−TAGRAM2を索引するアドレ
(インデックス)は、アドレス下位AD−2である。
【0033】図3(c)を参照すると、L2ステータス
16を索引するアドレスは、アドレス下位AD−2であ
り、L2ステータス16に格納されるデータは、L2−
キャッシュ200に格納されているラインが有効である
か否かを示すVALIDフラグと、L2−キャッシュ2
00に格納されているラインがメインメモリ6に対して
更新されているか否かを示すDIRTYフラグと、L2
−キャッシュ200に格納されているラインがL2Sキ
ャッシャブルエリアに属するか否かを示すSDフラグと
から構成されている。
【0034】図3(d)を参照すると、L2Sアドレス
・ステータス部13に格納されるアドレスは、アドレス
上位AD−1およびアドレス下位AD−2である。
【0035】図3(e)を参照すると、L2−データS
RAM3を索引するアドレスは、アドレス下位AD−2
である。
【0036】次に、L2Sバッファ15について、図4
および図5を参照して説明する。
【0037】L2Sバッファ15は、L2Sアドレス・
ステータス部13と、L2Sデータ部14とから構成さ
れている。
【0038】図4を参照するに、L2Sアドレス・ステ
ータス部13は、インタフェースのラッチであるL2S
アドレス入力バッファ500と、L2Sアドレス出力バ
ッフア501と、実質的なアドレスバッファであるL2
Sアドレスバッファ第1段131A〜L2Sアドレスバ
ッファ第N段(131+N)Aと、これらに対応する比
較回路であるL2Sアドレス第1段コンペア部131D
〜L2Sアドレス第N段コンペア部(131+N)D
と、L2Sバッファ15の各段に格納したラインに対し
CPU1またはローカルバスマスタ21からのアクセス
を記録更新するL2Sアクセスカウンタ第1段131B
〜L2Sアクセスカウンタ第N段(131+N)Bと、
L2Sバッファ15に格納する各アドレスのステータス
であるVALIDフラグとDIRTYフラグを格納する
レジスタ第1段131C〜レジスタ第N段(131+
N)Cとから構成されている。
【0039】図5を参照するに、L2Sデータ部14
は、インタフェースのラッチであるL2Sデータ入力バ
ッファ502および504と、L2Sデータ出力バッフ
ア503と、L2Sアドレスバッファ第1段131〜L
2Sアドレスバッファ第N段(131+N)に対応する
データを格納するL2Sデータバッファ第1段141〜
L2Sデータバッファ第N段(141+N)とから構成
されている。
【0040】次に、図1のコンピュータの動作につい
て、図6〜図20を参照して説明する。
【0041】インデクス(アドレス)(AD−2)が等
しいL2Sキャッシャブルエリアに属する2組のライン
をAラインおよびBラインとし、また、アドレス(AD
−2)がAラインおよびBラインと等しい任意のライン
をCラインとする。
【0042】(1) まずCPU1からのBラインに対
するメインメモリ6へのリードリクエストの結果が、L
2キャッシュ200でミスした場合について説明する。
(図6参照)。
【0043】CPU1がリクエストしたBラインのアド
レスをホストバス8を介してL2−TAGRAM2が受
け取ると、L2キャッシュミスであることが判明する。
メインメモリ6に対して、メインメモリコントロール部
10からL2キャッシュ200およびL2Sバッファ1
5でのヒット・ミスの判定を待たずにリード要求が発行
される。もしヒットであれば、後からそのリード要求を
キャンセルする。
【0044】メインメモリコントロール部10は、ホス
トバス8上のリクエストのアドレスによって指定される
データを、メインメモリ6を制御することにより、Bラ
インをメインメモリ6からリードして、ホストバス8を
介してCPU1に転送する。また、L2コントロール部
11によってBラインはL2−データSRAM3に格納
され、さらに、Bラインのアドレスのアドレス上位AD
−1がアドレス下位AD−2で指定されるL2−TAG
RAM2のエントリに格納される。
【0045】また、L2Sコントロール部12は、CP
U1がリードリクエストしたこのアドレスがL2Sキャ
ッシャブルエリアに属するか否かを検出し、L2Sキャ
ッシャブルエリアであればL2ステータス16の対応す
るエントリのSDフラグをL2Sキャッシャブルエリア
を示すように変更し、VALIDフラグを有効にセット
する。DIRTYフラグはメインメモリと共有にセット
する。
【0046】また、CPU1がリクエストしたBライン
のアドレスをホストバス8に出力すると同時に、L2S
コントロール部12は、L2ステータス16のリクエス
アドレスAD−2に対するエントリを索引し、L2キ
ャッシュ200から追い出されるアドレスがL2Sキャ
ッシャブルエリアか否かを、SDフラグとVALIDフ
ラグとDIRTYフラグとにより調べる。この結果、S
DフラグがL2Sキャッシャブルエリアでなく、VAL
IDとDIRTYフラグが共有を示している場合は、
(1)の処理を行うだけである。
【0047】(2) もし追い出されるライン(以下A
ラインと記す)がL2SキャッシャブルエリアでかつA
ラインのVALIDフラグが有効であったときは、Bラ
インをメインメモリ6からCPU1に転送し、L2キャ
ッシュ200に格納する前に(図8参照)、Aラインを
L2Sバッファ15の空いているVALIDフラグが
(有効でない)段に格納する(図6参照)。すなわち、
L2Sアドレス・ステータス部13のL2Sアドレス入
力バッファ500に、L2−TAGRAM2から追い出
されたメモリアドレスのアドレス上位AD−1およびリ
クエストのアドレス下位AD−2を入れ、Aラインのス
テータスフラグのVALIDフラグとDIRTYフラグ
をL2ステータス16より格納し、その後、L2Sアド
レスバッファ第1段131A〜L2Sアドレスバッファ
第N段(131+N)Aのいずれかにアドレス上位AD
−1およびアドレス下位AD−2を格納する。L2Sバ
ッファ15にAラインを格納するとき、AラインのDI
RTYフラグが更新を示している場合、L2Sコントロ
ール部12は、メインメモリコントロール部10にメイ
ンメモリライトバッフア17の状態を確認し、メインメ
モリライトバッフア17に空きがある場合、Aラインを
L2Sバッファ15に格納すると同時に、メインメモリ
6に対するライトバック処理も同時に実施する(図7参
照)。従ってAラインはメインメモリ6に最新のデータ
が存在することになるため、L2Sバッファ15に格納
するAラインのDIRTYフラグは共有にセットされ
る。ただし、メインメモリライトバッフア17に空きが
ない場合、AラインはL2Sバッファ15にのみ格納さ
れ、メインメモリ6には同時にライトバックされない。
従って、そのときL2Sバッファ15に格納されるAラ
インのDIRTYフラグは、更新のまま格納される。
【0048】また、AラインのデータをL2Sデータ部
14のL2Sデータ入力バッファ502を介してL2S
アドレス・ステータス部13の対応する段に格納する。
また、AラインをL2Sバッファ15に格納するとき、
L2Sバッファ15にVALIDフラグが無効を示すラ
インが複数格納されていた場合は、もっとも古い段の無
効ラインが格納されている段にAラインを格納する。単
数の場合はそのラインの段にAラインを格納する。L2
Sバッファ15に格納されている各段のラインのVAL
IDフラグが全て有効を示していた場合、各段のDIR
TYフラグのうち更新でない段、すなわち共有している
段の中からもっとも古い段を消去してAラインを格納す
る。共有ラインが単数の場合はそのラインが格納されて
いる段にAラインを格納する。L2Sバッファ15に格
納されているラインのVALIDフラグが全て更新を示
している場合は、L2Sバッファ15のもっとも古い段
のバッファに格納されているラインをメインメモリ6に
ライトバック処理を行った後、その段にAラインを格納
する。
【0049】(3) 次に、(2)の動作後、L2−T
AGRAM2から追い出されてL2Sバッファ15に格
納されているVALIDフラグが有効を示しているAラ
インに対してCPU1またはローカルバスマスタ21か
らリクエストが出された場合について説明する。Aライ
ンはL2Sバッファ15の第J段に格納されているとす
る。(L2Sバッファ15の総バッファ段数がN段で、
(1〈J〈N)の関係にあるとする。) (1)の場合と同様に、L2−キャッシュ200でキャ
ッシュミスが発生すると同時に、L2Sバッファ15の
L2Sアドレス・ステータス部13およびL2−TAG
RAM2のL2ステータス16にもリクエストのメモリ
アドレスが入力され、L2Sバッファ15のL2Sアド
レス・ステータス部13のL2Sアドレスバッファ第1
段131A〜L2Sアドレスバッファ第N段(131+
N)Aに格納されているアドレスとL2Sアドレス第1
段コンペア部131D〜L2Sアドレス第N段コンペア
部(131+N)Dにより比較される。このとき、
(2)においてAラインのアドレスがL2Sアドレス・
ステータス部13の第J段に格納されているので、比較
した結果は一致する。また、同時にリクエストされたア
ドレス下位AD−2に対応したTAGRAM2のL2ス
テータス16の状態をL2コントロール部11とL2S
コントロール部12は認識して後の処理に役立てる。
【0050】(3−1) CPU1のリクエストがリー
ドであった場合、L2Sコントロール部12はL2Sバ
ッファ15のL2Sデータ部14の第J段からリクエス
トアドレスに一致した段のデータをL2Sデータ出力バ
ッファ503を介し、ホストバス8を介してCPU1対
して転送し(図9参照)、同時にL2Sバッファ15内
のL2Sデータ入力バッファ504にも格納する。同時
に、Aラインが最初格納されていた第J段のアドレス・
ステータス情報もL2Sアドレス入力バッファ500に
移動し、Aラインが格納されていた第J段の内容をクリ
アし、第J−1段を第J段へ、第J−2段を第J−1段
にシフトし、第1段を第2段まで順にシフトして、それ
ぞれアドレス・ステータス・データを順にシフトする。
そしてL2Sアドレス入力バッファ500にコピーされ
たAラインを第1段にシフトし、L2Sアクセスカウン
タ第1段131Bの値をにインクリメントする。そして
L2Sデータ入力バッファ504に格納されたデータを
L2Sデータバッファ第一段141にシフトする。
【0051】(3−2) CPU1のリクエストがライ
トであった場合、ホストバス8に出力されたAラインの
データをL2Sバッファ15のL2Sデータ部14のL
2Sデータ入力バッファ502にラッチすると同時に、
L2Sバッファ15の第J段に格納されているAライン
のアドレス・ステータスをL2Sアドレス・ステータス
部13のL2Sアドレス入力バッファ500にコピー
し、データをL2Sデータ部14のL2Sデータ入力バ
ッファ504にコピーする。CPU1からのAラインに
対するライトがラインライトであった場合はL2Sデー
タ入力バッファ502のデータをそのまま使用し、(3
−1)で処理したと同様にL2Sバッファ15内部のシ
フト処理後L2Sアドレス入力バッファ500のアドレ
スとステータスをL2Sデータ入力バッファ502のデ
ータを第1段にシフトする。CPU1からのAラインに
対するライトがAラインの一部ブロックに対するライト
であった場合、L2Sコントロール部12は、L2S
ータ入力バッファ504に保持したデータに対しL2S
データ入力バッファ502のデータをマージ処理した結
果のAラインを第1段のデータ部に格納する。そしてL
2Sアドレスカウンタ第1段131Bの値をインクリメ
ントし、レジスタ第1段131CのDIRTYフラグを
更新を示すようにセットする。
【0052】(3−3) (3−1)と(3−2)にお
いてCPU1がリード/ライトリクエストしたAライン
のアドレス下位AD−2に相当するL2キャッシュ20
0のシステムコトンローラ7内部に格納されたL2ステ
ータス16のVALIDフラグが無効であった場合、L
2Sコントロール部12はL2Sバッファ15内部の第
J段に格納されていたAラインをCPU1に対してホス
トバス8を介して転送するとき、L2コントロール部1
1と共同で同時にL2キャッシュ200に格納する処理
を行う(図11参照)。この時、L2キャッシュ200
のステータスであるL2ステータス16も同時に変更す
るが、(3−1)の場合はVALIDフラグは有効に、
かつDIRTYフラグはその時点での状態をそのままに
セットされ、(3−2)の場合はVALIDフラグは有
効にDIRTYフラグは更新に必ずセットされる(図1
2参照)。さらに(3−1)(3−2)においてL2キ
ャッシュ200にエントリされてるラインのSDフラグ
がL2Sキャッシャブルエリアに属することを示すよう
にL2ステータス16にセットする。
【0053】(3−4) 次にローカルバスマスタ21
からAラインに対するリクエストがリードであった場合
について説明する。ローカルバスマスタ21のリクエス
トしたラインがCPU1内部のL1キャッシュ100に
存在する場合を考慮し、システムコトンローラ7はホス
トバス8を獲得した後、AラインのアドレスをCPU1
に対してスヌープさせる。
【0054】(3−4−1) まずL1キャッシュ10
0のAラインのスヌープ結果によりL1キャッシュ10
0からAラインのライトバック処理が実行されない場合
について説明する。ローカルバスマスタ21からのリク
エストアドレスは(2)と同様にL2Sアドレスバッフ
ァ第1段131A〜L2Sアドレスバッファ第N段(1
31+N)Aと比較され、第J段にAラインが存在し、
かつAラインのL2Sアドレス・ステータス部13のV
ALIDフラグが有効を示しているので、L2Sコント
ロール部12はリクエストアドレスに一致した第J段の
データをローカルバス20を介してローカルバスマスタ
21に転送する(図13参照)。このとき、L2Sバッ
ファ15に存在するAラインの第J段のステータスのD
IRTYフラグが更新を示していた場合、L2Sコント
ロール部12はメインメモリコントロール部10に対し
てAラインのライトバック処理を実行させる(図14参
照)。同時にCPU1がマスタの時と同様のL2Sバッ
ファ15内部のシフト処理後、AラインをL2Sアドレ
ス入力バッファ500とL2Sデータ入力バッファ50
4にコピーした後L2Sバッファ15のAラインの格納
されている第J段を消去し、第1段から第J−1段のシ
フト処理を実行した後、第1段にL2Sアドレス入力バ
ッファ500およびL2Sデータ入力バッファ504よ
りそれぞれアドレス・ステータス・データをシフトする
際、AラインのステータスのDIRTYフラグを更新か
らメインメモリ6との共有を示すようにレジスタ第1段
131Cにセットし、L2Sアクセスカウンタ第1段1
31Bの値をにインクリメントする。
【0055】(3−4−2) 次にL1キャッシュ10
0に対するAラインのスヌープ結果より、L1キャッシ
ュ100に格納されていたAラインのライトバック処理
が実行された場合について説明する。CPU1に対して
はAラインのリードリクエストのスヌープであるのでA
ラインのステートは無効にはならずに有効状態を保持し
続けることは可能である。すなわち、AラインはL1キ
ャッシュ100に有効のまま存在し続けることが可能で
あるため、L2Sバッファ15にAラインが存在する必
要性が低い。従ってローカルバスマスタ21からのリク
エストアドレスの結果AラインがL2Sバッファ15に
存在した場合、L2Sバッファ15に存在する第J段の
内容を消去しL2Sバッファ15内部のシフト処理を実
行する事で、L2Sバッファ15の有効活用をはかる。
この時、L2Sバッファ15の第1段は空となる。もち
ろんシステムコトンローラ7はAラインのCPU1から
のライトバック処理をメインメモリ6に対して行い、ロ
ーカルバスマスタ21にデータを転送する(図15参
照)。
【0056】(3−5) ローカルバスマスタ21から
Aラインに対するリクエストがライトであった場合、ロ
ーカルバスマスタ21のリクエストしたラインがCPU
1内部のL1キャッシュ100に存在する場合を考慮
し、システムコトンローラ7はホストバス8を獲得した
後、AラインのアドレスをCPU1に対してスヌープさ
せる。
【0057】(3−5−1) ローカルバスマスタ21
からAラインに対するリクエストがラインライトリクエ
ストであった場合、もしCPU1内部のL1キャッシュ
100に対するAラインのスヌープの結果、L1キャッ
シュ100からメインメモリ6に対するAラインのライ
トバック処理が実行された場合、L1キャッシュ100
に存在していたAラインはライトバック後、ローカルバ
スマスタ21からのデータライトをサポートしない場
合、L1キャッシュ100に存在するAラインのステー
タスは無効ラインに変化する。従ってこの場合、L2S
コントロール部12はローカルバスマスタ21からL2
Sバッファ15内部に存在するAラインに対するリクエ
ストがラインライトリクエストであった場合、ライトデ
ータをL2Sデータ入力バッファ502に格納し、メイ
ンメモリ6に対してもAラインをライトする(図16参
照)。そしてL2Sバッファ15内部のAラインが格納
されてていた第J段の内容を消去する。そしてL2Sバ
ッファ15内部の第1段〜第J−1段のシフト処理後、
Aラインを第1段に格納するとき、レジスタ第1段13
1CのDIRTYフラグはメインメモリ6との共有に、
VALIDフラグはそのまま有効にセットし、L2Sア
クセスカウンタ第1段131Bの値をインクリメントす
る。
【0058】(3−5−2) L1キャッシュ100へ
のスヌープの結果、Aラインのメインメモリ6に対する
ライトバック処理が発生しない場合は、ローカルバスマ
スタ21からL2Sバッファ15に存在するAラインに
対するラインライトをサポートするか否かをユーザ選択
可能にする。
【0059】(3−5−3) ローカルバスマスタ21
からAラインに対するライトリクエストがAラインの一
部ブロックに対するライトリクエストであった場合、C
PU1のL1キャッシュ100に対するAラインのスヌ
ープの結果に関わらず、ローカルバスマスタ21からの
ライトによるデータ更新をサポートする意味は少ない。
但し、L1キャッシュ100に対するスヌープの結果ラ
イトバック処理が行われない場合、同時にL2Sバッフ
ァ15に対するスヌープの結果、Aラインのステータス
の内DIRTYフラグがメインメモリ6に対して更新を
示している場合は、ローカルバスマスタ21からのメイ
ンメモリ6に対するライトの前にL2Sバッファ15の
第J段に格納されてているAラインをメインメモリライ
トバッフア17に一旦ライトバックし、メインメモリラ
イトバッフア17内部でローカルバスマスタ21からの
Aラインの一部ブロックに対するライトをマージ処理し
た後、メインメモリ6に対してライトを実施する。ま
た、L1キャッシュ100に対するAラインのスヌープ
処理の結果、ライトバック処理が起動された場合、L2
Sバッファ15の第J段のAラインはL1キャッシュ1
00からのAラインのライトバック処理を無視して、第
J段のステータスのVALIDフラグを無効にし、L2
Sバッファ15内部の第J段のAラインを消去する。従
ってこの場合、AラインはL1キャッシュ100からの
ライトバックされたAラインをメインメモリライトバッ
フア17に対してライトバックした後、ローカルバスマ
スタ21からのAラインに対する一部ブロックのライト
をメインメモリライトバッフア17内部でマージ処理し
た結果をメインメモリ6に対してライトバック処理を実
施し、L2Sバッファ15に対してライトサポートしな
い(図17参照)。このときL2Sコントロール部12
はL2Sバッファ15の第J段を消去しL2Sバッファ
15内部のシフト処理を実行する。L2Sバッファ15
内部のシフト処理の結果L2Sバッファ15の第1段は
空となる。仮に、ローカルバスマスタ21からのAライ
ンに対するライトリクエストが1バイトのライトリクエ
ストであった場合、CPU1に対するAラインのスヌー
プの結果CPU1からメインメモリ6に対するAライン
のライトバック処理が実行された場合、L2Sコントロ
ール部12はL2Sバッファ15に存在するAラインに
対し、CPU1からのAラインライトバック処理を実行
し、さらに、ローカルバスマスタ21からのAラインの
1バイトの変更のためにL2Sバッファ15内部に存在
するAラインに対し、1バイトのデータ変更を実施しな
ければならない。ローカルバスマスタ21からのAライ
ンに対するライトアクセスがAラインを複数ブロックに
分割しそれぞれのブロックに対して分割された複数回に
わたるライトアクセスが実施され、間にその他のL2S
バッファ15内部のシフト処理が実施されるケースで
は、ローカルバスマスタ21からのAラインの一部ブロ
ックライトアクセスをサポートした場合のL2Sバッフ
ァ15内部の処理量が比例して増大する分だけ性能向上
が期待できないので、本発明ではサポートしない。よっ
てローカルバスマスタ21からのAラインに対するライ
ンライト以外のライトリクエストに対し、L2Sコント
ロール部12はL2Sバッファ15に存在するAライン
のステータスのVALIDフラグを無効にセットし、そ
の段の内容を消去する。
【0060】以上がCPU1またはローカルバスマスタ
21からのL2Sバッファ15とL2Sコントロール部
12に関連したリードライトリクエストに対する処理で
ある。次に、上記以外のL2Sバッファ15の各段のス
テータスの変化の仕方、また変化時のL2Sコントロー
ル部12の制御について説明する。
【0061】(4) L2Sバッファ15のステータス
は各段に格納されるアドレスに対応したラインのステー
タスを示すフラグとして、各段のラインが有効であるか
無効であるかを示すVALIDフラグと、各段のライン
がメインメモリ6に対して更新されているか共有してい
るかを示すDIRTYフラグと、L2Sバッファ15に
存在している間にアクセスされた回数を記憶するアクセ
スカウンタとから構成される。
【0062】前述のとおり、L2Sバッファ15の内部
バッファ構造はN段のFIFO類似形式である。従っ
て、最も最近アクセスされたかまたは入力されたライン
が第1段に格納され、最も長くL2Sバッファ15の内
部に存在しているラインが第N段に格納されている。L
2Sバッファ15はCPU1からのライトに対してメイ
ンメモリ6に対してライトバックをサポートしている。
従ってL2Sバッファ15内部においてDIRTYフラ
グが更新を示している状態のラインが格納可能である。
ただし、L2Sバッファ15は有限であるので、L2S
バッファ15内部に格納されているラインのDIRTY
フラグが全て更新を示しているような場合、新たにL2
キャッシャブルエリアに属するラインを格納する場
合、一旦、既に格納されている更新ラインのメインメモ
リへのライトバック処理が必要になる。従って、この場
合は余計な処理時間が必要になるため、L2Sコントロ
ール部12はメインメモリコントロール部10にメモリ
バス5とメインメモリライトバッフア17の状態を常に
確認し、空きがある場合はL2Sバッファ15内部のス
テータスのVALIDフラグが有効でかつDIRTYフ
ラグが更新を示している段の中から第N段にに近い方の
段から順にメインメモリ6へのライトバック処理を他の
メモリアクセスに弊害を与えない範囲で実行し、メイン
メモリ6へのライトバック終了後ライトバックした段の
ラインのステータスのVALIDフラグを共有にセット
し直す処理を実施し、L2Sバッファ15内部のDIR
TYフラグが更新のラインを削減する。この流れを示し
たのが図20である。
【0063】また、L2Sバッファ15内部のL2Sア
クセスカウンタ第1段131B〜L2Sアドレスカウン
タ第N段(131+N)Bまでのうちカウンタ値がいっ
ぱいになった段に対してはL2キャッシュ200に現在
格納されているラインの下位アドレスのインデクスが等
しいSDフラグをチェックした結果がL2Sキャッシャ
ブルエリアに属するラインである場合、そのままL2S
バッファ15内部に保持し、SDフラグがL2Sキャッ
シャブルエリアでないことを示している場合でかつ、そ
のラインのL2ステータスのDIRTYフラグが更新を
示していない場合、ホストバス8がアイドルの時、シス
テムコントローラ7はホストバス権を獲得した後L2S
バッファ15に格納されたラインのアドレスのアドレス
上位AD−1とアドレス下位AD−2とデータとAD−
3とをホストバス8に出力しL2キャッシュ200のL
2−TAGRAM2のアドレス下位AD−2のインデク
スで示されるアドレスにタグアドレスAD−1を格納
し、L2−データSRAM3の、アドレス下位AD−2
で示されるインデクスのアドレスにラインのデータを格
納し、ステータスをL2ステータス16のアドレス下位
AD−2で示されるインデクスアドレスに格納し、L2
キャッシュ200に格納したラインは、L2Sバッファ
15に重複しないようにL2Sバッファ15から出力し
た段を消去し、内部シフト、L2Sバッファ15の有
効的な活用をする。この流れを示したのが図18であ
る。
【0064】この時、L2キャッシュ200にラインを
戻す時、そのラインのDIRTYフラグが更新であった
場合、メインメモリコントロール部10からメインメモ
リライトバッフア17の状態を確認し、空きがある場合
はメインメモリ6に対してライトバック処理を同時に実
施しライトバック処理後、L2ステータス16のDIR
TYフラグを更新から共有にセットする。この流れを示
したのが図19である。
【0065】(5) 次に、システム動作中にユーザが
L2Sキャッシャブルエリアを切り替えたい場合は、L
2Sコントロール部12は、下記の制御を実施する。
【0066】まず、CPU1またはローカルバスマスタ
21からのメインメモリ6に対するメモリリクエストを
一旦中断する。そして、L2Sバッファ15はL2キャ
ッシュ200とは基本的に独立に動作可能であるため、
L2Sバッファ15内のVALIDフラグが有効でかつ
DIRTYフラグが更新を示しているラインが存在して
いる段のすべてのラインをメインメモリ6へ書き戻すこ
とで、L2Sバッファ15の内部におけるメインメモリ
6に対するDIRTYフラグが更新を示しているライン
が存在しなくなる。そしてL2ステータス16初期化
する。この時点でL2Sバッファ15をフラッシュする
ことにより、新たにユーザの設定するL2Sキャッシャ
ブルエリア対応に切り替えが可能になり、中断していた
CPU1またはローカルバスマスタ21からのメモリリ
クエストを開始することで、ユーザは、L2キャッシュ
200をフラッシュすることなくシステム動作中にL2
Sキャッシャブルエリアを切り替えることが可能にな
る。
【0067】
【発明の効果】以上説明したように、本発明のダイレク
トマップライトバック方式を採用したL2キャッシュメ
モリシステムは、高負荷のマルチタスク処理を実施する
場合、ユーザが設定した特定メモリエリア(L2Sキャ
ッシャブルエリア)アクセスに対しては、L2キャッシ
ュミスした場合でも、L2キャッシュと同等に近い(メ
インメモリよりも高速な)アクセスが可能な補助バッフ
ァ(L2Sアドレス・ステータス・データバッファ)に
L2Sキャッシャブルエリアに属するラインを一時的に
格納してメモリリクエストに対応することにより、他の
L2キャッシャブルエリアよりも高速処理が可能になる
という効果がある。
【0068】また、L2Sアドレス・ステータス・デー
タバッファはL2Sキャッシャブルエリアに対するライ
トバックをサポートし、メインメモリとL2キャッシュ
の状態を把握して、他のメモリの制御に負担を与えたり
L2Sキャッシャブルエリア以外のL2キャッシャブル
エリアに弊害を与えることなく、L2Sアドレス・ステ
ータス・データバッファ内部からL2キャッシュへの書
き戻しやメインメモリへのライトバックを実施し、効率
よいL2キャッシュメモリシステムの運用とL2Sアド
レス・ステータス・データバッファの制御をすることに
より、メモリアクセス性能の向上に貢献することができ
るという効果がある。
【0069】更に、L2Sアドレス・ステータス・デー
タバッファはL2Sキャッシュとは基本的に独立に動作
が可能であるため、L2Sアドレス・ステータス・デー
タバッファ内部のVALIDフラグが有効でかつDIR
TYフラグが更新を示しているラインのみをメモリメモ
リに書き戻すという最小限のペナルティを払うことによ
り、システム動作中にL2キャッシュとメインメモリに
対してデータのコーヒレンシを保証し、かつ、L2キャ
ッシュをフラッシュすることなくユーザの設定する特定
メモリエリアを変更することが可能になるため、操作性
を向上することが可能になるという効果がある。
【図面の簡単な説明】
【図1】本発明の一実施形態を示すブロック図である。
【図2】図1の実施形態のメモリマップ図である。
【図3】図1の実施形態のアドレスを示す関連図であ
る。
【図4】図1の実施形態のL2SバッファのL2Sアド
レス・ステータス部の構成を示すブロック図である。
【図5】図1の実施形態のL2SバッファのL2Sデー
タ部の構成を示すブロック図である。
【図6】図1の実施形態の第一の状態における信号の流
れを示す関連図である。
【図7】図1の実施形態の第二の状態における信号の流
れを示す関連図である。
【図8】図1の実施形態の第三の状態における信号の流
れを示す関連図である。
【図9】図1の実施形態の第四の状態における信号の流
れを示す関連図である。
【図10】図1の実施形態の第五の状態における信号の
流れを示す関連図である。
【図11】図1の実施形態の第六の状態における信号の
流れを示す関連図である。
【図12】図1の実施形態の第七の状態における信号の
流れを示す関連図である。
【図13】図1の実施形態の第八の状態における信号の
流れを示す関連図である。
【図14】図1の実施形態の第九の状態における信号の
流れを示す関連図である。
【図15】図1の実施形態の第十の状態における信号の
流れを示す関連図である。
【図16】図1の実施形態の第十一の状態における信号
の流れを示す関連図である。
【図17】図1の実施形態の第十二の状態における信号
の流れを示す関連図である。
【図18】図1の実施形態の第十三の状態における信号
の流れを示す関連図である。
【図19】図1の実施形態の第十四の状態における信号
の流れを示す関連図である。
【図20】図1の実施形態の第十五の状態における信号
の流れを示す関連図である。
【図21】従来のキャッシュメモリ装置の一例を示すブ
ロック図である。
【図22】ダイレクトマップ方式のキャッシュシステム
のアドレスを示す模式図である。
【符号の説明】
1・31 CPU 2 L2TAGRAM 3 L2データSRAM 5 メモリバス 6・36 メインメモリ 7 システムコントローラ 8・34 ホストバス 10 メインメモリコントロール部 11 L2コントロール部 12 L2Sコントロール部 13 L2Sアドレス・ステータス部 14 L2Sデータ部 15 L2Sバッファ 16 L2ステータス 17 メインメモリライトバッファ 20・37 ローカルバス 21・38 ローカルバスマスタ 32・100 L1−キャッシュ 33・200 L2−キャッシュ 35 システムコントローラ 41 アドレス 42 タグ 43 インデックス 500 L2Sアドレス入力バッファ 501 L2Sアドレス出力バッファ502・504 L2Sデータ入力バッファ 503 L2Sデータ出力バッファ

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 CPUに内蔵される1次レベルキャッシ
    ュメモリと、メインメモリのアドレスとデータとの一部
    を格納し前記メインメモリよりも高速にリードライト動
    作を行うことが可能なダイレクトマップライトバック方
    式の2次レベルキャッシュメモリと、前記メインメモリ
    を接続し前記メインメモリおよび前記2次レベルキャッ
    シュメモリを制御するシステムコントローラとを備える
    2次レベルキャッシュメモリシステムであって、 ユーザが頻繁に使用するかまたは可能な限りの高速な処
    理を希望する前記メインメモリの特定領域に対し、前記
    2次レベルキャッシュメモリのリプレースメントによっ
    て前記2次レベルキャッシュメモリから追い出されたア
    ドレスおよびデータと前記アドレスの前記2次レベルキ
    ャッシュメモリにおけるステータスとの組の複数組を格
    納するL2Sアドレス・ステータス・データバッファを
    前記システムコントローラ内に設けることを特徴とする
    2次レベルキャッシュメモリシステム。
  2. 【請求項2】 前記CPUまたは前記システムコントロ
    ーラにローカルバスを介して接続されるローカルバスマ
    スタから前記メインメモリに対するリクエストの結果と
    して前記2次レベルキャッシュメモリにおいてキャッシ
    ュミスが発生したとき、前記L2Sアドレス・ステータ
    ス・データバッファから前記ローカルバスマスタに対し
    てデータを転送することを特徴とする請求項1記載の2
    次レベルキャッシュメモリシステム。
  3. 【請求項3】 前記2次レベルキャッシュメモリに対し
    てアドレスとデータをエントリするとき、エントリする
    アドレスが前記特定領域であるL2Sキャッシャブルエ
    リアに属するか否かを示すフラグを用いて前記L2Sア
    ドレス・ステータス・データバッファと前記2次レベル
    キャッシュメモリとを制御することを特徴とする請求項
    1または請求項2記載の2次レベルキャッシュメモリシ
    ステム。
  4. 【請求項4】 前記L2Sアドレス・ステータス・デー
    タバッファからリクエストされたアドレスに対応するデ
    ータを転送したことを記録する複数組のアクセスカウン
    タを前記L2Sアドレス・ステータス・データバッファ
    の各組に設け、 前記L2Sアドレス・ステータス・デ
    ータバッファの内部に格納しているアドレスおよびデー
    タに対する前記CPUまたは前記システムコントローラ
    にローカルバスを介して接続されるローカルバスマスタ
    からのリクエストに対して、前記L2Sアドレス・ステ
    ータス・データバッファからリクエストされたアドレス
    に対応するデータを転送するとき、前記アクセスカウン
    タを用いて前記L2Sアドレス・ステータス・データバ
    ッファの内部の制御と前記2次レベルキャッシュメモリ
    の制御と前記メインメモリの制御とを行うことを特徴と
    する請求項1または請求項2または請求項3記載の2次
    レベルキャッシュメモリシステム。
JP8227227A 1996-08-28 1996-08-28 2次レベルキャッシュメモリシステム Expired - Fee Related JP3068469B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP8227227A JP3068469B2 (ja) 1996-08-28 1996-08-28 2次レベルキャッシュメモリシステム
US08/919,194 US6256708B1 (en) 1996-08-28 1997-08-28 Auxiliary buffer for direct map cache

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8227227A JP3068469B2 (ja) 1996-08-28 1996-08-28 2次レベルキャッシュメモリシステム

Publications (2)

Publication Number Publication Date
JPH10307752A JPH10307752A (ja) 1998-11-17
JP3068469B2 true JP3068469B2 (ja) 2000-07-24

Family

ID=16857504

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8227227A Expired - Fee Related JP3068469B2 (ja) 1996-08-28 1996-08-28 2次レベルキャッシュメモリシステム

Country Status (2)

Country Link
US (1) US6256708B1 (ja)
JP (1) JP3068469B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2001259655A1 (en) * 2000-05-08 2001-11-20 Crossroads Systems, Inc. Hardware method to reduce cpu code latency
JP2002055879A (ja) * 2000-08-11 2002-02-20 Univ Hiroshima マルチポートキャッシュメモリ
KR100395768B1 (ko) * 2001-06-16 2003-08-21 삼성전자주식회사 멀티 레벨 캐쉬 시스템
TW569219B (en) * 2002-09-30 2004-01-01 Via Tech Inc Architecture and method for updating cache data
US7546418B2 (en) * 2003-08-20 2009-06-09 Dell Products L.P. System and method for managing power consumption and data integrity in a computer system
US7464181B2 (en) * 2003-09-11 2008-12-09 International Business Machines Corporation Method for caching lookups based upon TCP traffic flow characteristics
GB2411019B (en) * 2004-02-16 2007-03-07 Advanced Risc Mach Ltd Data accesses in data processing
JP2012194742A (ja) * 2011-03-16 2012-10-11 Nec Engineering Ltd リプレースメントデータメモリ装置、中央演算装置及びリプレースメントデータ処理方法
CN102646071B (zh) * 2012-02-17 2014-07-30 中国科学院微电子研究所 单周期执行高速缓存写命中操作的装置及方法
JP5791133B2 (ja) * 2014-08-13 2015-10-07 Necエンジニアリング株式会社 リプレースメントデータメモリ装置、中央演算装置及びリプレースメントデータ処理用プログラム
US10296458B2 (en) * 2017-05-31 2019-05-21 Dell Products L.P. Multi-level cache system in a software application

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0625984B2 (ja) * 1990-02-20 1994-04-06 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン マルチプロセツサ・システム
EP0449540B1 (en) 1990-03-27 2000-05-17 Digital Equipment Corporation Memory system and method with prefetch buffer
JPH04288644A (ja) 1991-01-21 1992-10-13 Oki Electric Ind Co Ltd キャッシュメモリ制御方法
GB2256512B (en) * 1991-06-04 1995-03-15 Intel Corp Second level cache controller unit and system
JPH0573415A (ja) 1991-09-17 1993-03-26 Oki Electric Ind Co Ltd 階層化キヤツシユ方式
GB2264577B (en) 1992-02-27 1995-06-14 Hewlett Packard Co Cache memory system
JPH05257807A (ja) 1992-03-13 1993-10-08 Sumitomo Electric Ind Ltd キャッシュメモリ制御装置
US5381539A (en) * 1992-06-04 1995-01-10 Emc Corporation System and method for dynamically controlling cache management
US5465342A (en) * 1992-12-22 1995-11-07 International Business Machines Corporation Dynamically adaptive set associativity for cache memories
US5640531A (en) * 1993-06-22 1997-06-17 Unisys Corporation Enhanced computer operational system using auxiliary mini-cache for enhancement to general cache
US5603004A (en) 1994-02-14 1997-02-11 Hewlett-Packard Company Method for decreasing time penalty resulting from a cache miss in a multi-level cache system
US5623700A (en) * 1994-04-06 1997-04-22 Dell, Usa L.P. Interface circuit having zero latency buffer memory and cache memory information transfer
US5561779A (en) * 1994-05-04 1996-10-01 Compaq Computer Corporation Processor board having a second level writeback cache system and a third level writethrough cache system which stores exclusive state information for use in a multiprocessor computer system
US5829027A (en) * 1994-05-04 1998-10-27 Compaq Computer Corporation Removable processor board having first, second and third level cache system for use in a multiprocessor computer system
US5490113A (en) * 1994-06-15 1996-02-06 Digital Equipment Corporation Memory stream buffer
US5875462A (en) * 1995-12-28 1999-02-23 Unisys Corporation Multi-processor data processing system with multiple second level caches mapable to all of addressable memory
US5680571A (en) * 1995-12-28 1997-10-21 Unisys Corporation Multi-processor data processing system with multiple, separate instruction and operand second level caches
US5918245A (en) * 1996-03-13 1999-06-29 Sun Microsystems, Inc. Microprocessor having a cache memory system using multi-level cache set prediction
JP2852232B2 (ja) 1996-04-24 1999-01-27 新潟日本電気株式会社 コンピュータ
US5752261A (en) * 1996-11-07 1998-05-12 Ncr Corporation Method and apparatus for detecting thrashing in a cache memory

Also Published As

Publication number Publication date
JPH10307752A (ja) 1998-11-17
US6256708B1 (en) 2001-07-03

Similar Documents

Publication Publication Date Title
US6021468A (en) Cache coherency protocol with efficient write-through aliasing
US6631447B1 (en) Multiprocessor system having controller for controlling the number of processors for which cache coherency must be guaranteed
KR101014394B1 (ko) 통합 디렉토리 및 프로세서 캐시를 구비한 컴퓨터 시스템
US6901495B2 (en) Cache memory system allowing concurrent reads and writes to cache lines to increase snoop bandwith
KR100970229B1 (ko) 원격 캐시 존재 정보를 저장하는 프로세서 캐시를 구비한 컴퓨터 시스템
US6272602B1 (en) Multiprocessing system employing pending tags to maintain cache coherence
JP4447580B2 (ja) 分散共有メモリマルチプロセッサシステムのための分割疎ディレクトリ
JPH09259036A (ja) ライトバックキャッシュおよびライトバックキャッシュ内で整合性を維持する方法
JPH11506852A (ja) 多数のバスマスタと共用レベル2キャッシュとを備える多レベルキャッシュシステムでのキャッシュスヌーピングオーバーヘッドの低減
JP2000250813A (ja) I/oキャッシュ・メモリにおけるデータ管理方法
JP2000250812A (ja) メモリ・キャッシュ・システムおよびその管理方法
JP2010517184A (ja) スヌープ要求キャッシュを用いたスヌープ・フィルタリング
US8621152B1 (en) Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access
JPH10254772A (ja) キャッシュ・メモリ階層内で利用するキャッシュ・コヒーレンシ機構を実施するための方法およびシステム
JP3609656B2 (ja) コンピュータシステム
JP2000010860A (ja) キャッシュメモリ制御回路及びプロセッサ及びプロセッサシステム及び並列プロセッサシステム
US5551000A (en) I/O cache with dual tag arrays
US11409656B2 (en) Semiconductor device
JP3068469B2 (ja) 2次レベルキャッシュメモリシステム
US5987544A (en) System interface protocol with optional module cache
JPH11288386A (ja) コンピュータシステム
KR100322223B1 (ko) 대기행렬및스누프테이블을갖는메모리제어기
US7949833B1 (en) Transparent level 2 cache controller
US9442856B2 (en) Data processing apparatus and method for handling performance of a cache maintenance operation
CN110737407A (zh) 一种支持混合写策略的数据缓冲存储器实现方法

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20000418

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090519

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100519

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110519

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110519

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120519

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120519

Year of fee payment: 12

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120519

Year of fee payment: 12

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120519

Year of fee payment: 12

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120519

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120519

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120519

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees