JPH1055309A - 階層キャッシュメモリ装置 - Google Patents

階層キャッシュメモリ装置

Info

Publication number
JPH1055309A
JPH1055309A JP8227440A JP22744096A JPH1055309A JP H1055309 A JPH1055309 A JP H1055309A JP 8227440 A JP8227440 A JP 8227440A JP 22744096 A JP22744096 A JP 22744096A JP H1055309 A JPH1055309 A JP H1055309A
Authority
JP
Japan
Prior art keywords
cache
cache memory
line
replacement
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.)
Pending
Application number
JP8227440A
Other languages
English (en)
Inventor
Akihiro Yamato
明宏 大和
Takashi Yamamoto
敬 山本
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP8227440A priority Critical patent/JPH1055309A/ja
Publication of JPH1055309A publication Critical patent/JPH1055309A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 下位キャッシュでリプレースが起きた場合で
もシステムの性能低下を起こさないリプレース制御を実
現する階層キャッシュメモリ装置を提供する。 【解決手段】 上位のタグ部にリプレース情報保持領域
を設ける。(1)下位のカラムにラインAが、上位のAがキ
ャッシュインするカラムには各ローにA、B、C、Dのライ
ンがあるとする。(2)キャッシュミスが起き、ラインX
がLT(ライン転送)データとして主記憶から転送、(3)X
がキャッシュインすべきカラムに有効なAが存在するの
で、Aはパージされ、Xがそこにキャッシュインし、上位
へリプレース発生が通知され、又Xがブロック転送さ
れ、(4)上位のAに対応するリプレース情報保持領域の
リプレースフラグをセットし、又、例えばDをパージ
し、その後にXを格納する。キャッシュにストアすると
き、上位でキャッシュヒットし、かつフラグがセットな
らば、主記憶からデータを書き込み後、ストア動作を行
う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はキャッシュメモリ装
置に係り、特にキャッシュ・ラインの置き換え制御可能
な階層キャッシュメモリ装置に関する。
【0002】
【従来の技術】近年のコンピュータ・システムの多くは
キャッシュメモリ装置を有する。
【0003】キャッシュを用いることでシステムの見か
け上のメモリアクセスは速めることができるが、最近の
中央処理装置(CPU)の高速化は著しく、主記憶の速
度が相対的に遅くなりつつある。このような状況を改善
すべく、今日のコンピュータ・システムでは従来のキャ
ッシュと主記憶との間にもう一つ以上のキャッシュレベ
ルを設け、第1レベルのキャッシュはCPUのクロック
サイクルに適合するように高速で小容量のものへ、第2
レベル以下のキャッシュは主記憶アクセスの大半をキャ
ッシュで捉えることができるよう大容量のものにする、
という手法を採り、システム性能を上げる傾向にある。
複数レベルのキャッシュシステムにおいては、制御簡易
性の観点から、ストア実行時にはストアデータを第1レ
ベルのキャッシュだけでなく、同時に第2レベル以下の
キャッシュにも書き込みを行い(ストアスルー)、最下
層キャッシュと主記憶との間は、読み込後に変更された
データが、リプレースによって最下層キャッシュから追
い出される時にのみ書き込みを行なう方式(ストアイ
ン)が用いられることが多い。
【0004】しかし、殆んどの場合チップ内部にある第
1レベルのキャッシュと比較した場合、チップ外にSR
AM等で構成されることの多い第2レベル以下のキャッ
シュはアクセス速度が遅いので、ストア実行毎に第2レ
ベル以下のキャッシュに対してヒットチェックを実行す
ると、オーバーヘッドが増加し性能低下を招く。この問
題に対する一般的な解法としては、「上位キャッシュの
内容が常に下位キャッシュに包含されていることが保証
されていれば、ストア時に下位キャッシュにおいてヒッ
トチェックを行なう必要は生じない」という思想に基づ
き、この思想を実現する制御法を採用している場合が多
い。一方、上位キャッシュと下位キャッシュ双方でキャ
ッシュミスが起きた場合には、ストア先ラインを両キャ
ッシュに転送してきてから書き込みを行なう方法(ライ
トアロケート)が一般的に用いられている。
【0005】図2に、一般的な階層キャッシュメモリ装
置の構成例をブロック図で示す。図2において、1は主
記憶装置、2は下位キャッシュ制御装置、3は下位キャ
ッシュメモリ、4は上位キャッシュ制御装置、5は上位
キャッシュメモリ、6は中央処理装置キャッシュ入出力
系(処理部)、7はLT(ライン転送)データ送出信
号、8は3ステート制御信号、9は下位キャッシュメモ
リ制御系、10はライン転送データ送出信号、11はパ
ージ通知信号、12はキャッシュデータセレクト信号、
13は3ステート制御信号、14は上位キャッシュメモ
リ制御系、15はLTデータ受取用ラッチ、16はLT
データ受取用ラッチ、17はBT(ブロック転送)デー
タ送出用ラッチ、18はBTデータ受取用ラッチ、19
はストアデータ書込用ラッチ、20はロードデータ読込
用ラッチ、21はLTデータ、22はリプレース発生通
知信号である。図2において、ロード命令やストア命令
の実行時に上位及び下位キャッシュ双方でキャッシュミ
スが生じた場合、もしくはプリフェッチ命令を実行した
場合、下位キャッシュ制御装置2は主記憶装置1に対し
てデータ転送、即ちライン転送(以下、LTと略す)要
求を出す。主記憶装置1はLTデータが読み出し可能に
なると下位キャッシュ制御装置2に対してLTデータ送
出信号7を出し、それに伴ってLTデータ21を送出す
る。下位キャッシュ制御装置2は3ステート制御信号8
により3ステートバッファを開き、ラッチ16に到達し
たLTデータを1ライン分下位キャッシュメモリ3に書
き込む。この際、既に書き込み位置に有効なラインが存
在していれば、これを追い出してからデータを書き込む
必要がある。下位キャッシュ制御装置2はリプレースを
検出すると、上位キャッシュ制御装置4に対して、下位
キャッシュメモリ3でリプレースされたラインを上位キ
ャッシュメモリ5で無効化(パージ)するためのパージ
要求信号11を送出する。上位キャッシュ制御装置4
は、下位キャッシュ制御装置2からパージ要求信号11
を受けとると、要求されたラインが上位キャッシュメモ
リ5中に存在するかを確認し、存在した(ヒットした)
場合にはそのラインをパージする。
【0006】上記状況に対応した従来のリプレース制御
を、図3を用いて摸式的に説明する。図3においてはキ
ャッシュ階層を2レベル、キャッシング方式は下位キャ
ッシュがダイレクトマップ、上位キャッシュが4ウェイ
セットアソシアティブであるとする。図3(1)の初期
状態では、下位キャッシュのあるカラムにラインAが、
そして上位キャッシュにおける、ラインAがキャッシュ
インするカラムには各ローに、A、B、C、Dの4つの
ラインがあるものとする。次に、図3(2)でキャッシ
ュミスが起き、ラインXがLTデータとして主記憶から
転送されてくる。図3(3)で、LTデータXがキャッ
シュインするべきカラムに既に有効なブロックAが存在
しているので、ラインAはパージされ、LTデータXが
ラインAの存在したカラムへキャッシュインする。この
時、Xが上位キャッシュへブロック転送されると共にラ
インAのパージ要求も通知される。図3(4)で、パー
ジ要求のあったラインAは、上位キャッシュでヒットす
るので、上位キャッシュメモリからパージされる。
【0007】
【発明が解決しようとする課題】上記に示したようなリ
プレース制御では、ロード命令やストア命令実行時のキ
ャッシュミスもしくはプリフェッチ命令の実行などによ
って下位キャッシュ中でリプレースが発生した場合、下
位キャッシュから上位キャッシュに対して、必ずリプレ
ースされたラインのパージ要求が通知される。このパー
ジ要求に該当するラインが上位キャッシュ中に存在した
場合、その該当ラインは強制的にパージされる。結果、
上位キャッシュ中で現在アクセスされているか、もしく
は近い将来使用されるはずであったラインは再度、より
下位レベルのキャッシュもしくは主記憶から読み込んで
来る必要が生じ、本来の命令実行に悪影響を及ぼす。一
方、この問題を回避するために、下位キャッシュのリプ
レースに伴うパージ要求を上位キャッシュに通知しない
とすると、前述したキャッシュ間の包含関係が失われ、
ストア実行の度に毎回下位キャッシュに対してヒットチ
ェックを行なわなければならないという、従来存在しな
かったオーバーヘッドが生じ、性能低下を招く原因とな
る。本発明の目的は、上記のような問題点を解決するこ
とにあり、下位キャッシュでリプレースが起きた場合で
もシステムの性能低下を起こさないリプレース制御を実
現するハードウェア構造を提供することにある。
【0008】
【課題を解決するための手段】上記目的を達成するため
に、本発明は、データをライン単位に記憶するキャッシ
ュメモリとキャッシュ制御装置を備える複数階層のキャ
ッシュメモリ装置において、前記複数階層キャッシュメ
モリ装置中の任意の2階層のうち、上位のキャッシュメ
モリ装置の一部に、該上位キャッシュメモリ中のライン
の下位キャッシュメモリ中における存在の有無を示すフ
ラグを各ライン対応に設け、該下位キャッシュメモリ
に、該下位キャッシュメモリにおけるラインの置換え
(リプレース)の発生を検知し該上位キャッシュメモリ
装置に対してそのリプレース発生情報を通知する手段を
設け、該上位キャッシュメモリ装置に、受信した該リプ
レース発生情報を基に該ラインが該上位キャッシュメモ
リに存在するかチェックし、該ラインが存在したならば
前記フラグをセットする手段を設けるようにしている。
さらに、ストア実行時に前記上位キャッシュメモリ中に
目的データが存在するか確認を行ない(ヒットチェッ
ク)、その結果、存在していた(キャッシュヒット)と
き、前記フラグをチェックし、セットされていない場合
には直ちにキャッシュにストアを実行し、セットされて
いる場合には、該下位キャッシュに当該ラインを転送し
てきてからストアを実行する手段を設けるようにしてい
る。
【0009】
【発明の実施の形態】以下、本発明に基づく階層キャッ
シュメモリ装置の一実施例を、図面により詳細に説明す
る。図1は、実施例の階層キャッシュメモリ装置の構成
を示すブロック図である。図1で、22はリプレース発
生通知信号、23は直接LT要求信号、24はリプレー
ス情報保持領域を表し、符合1〜21については図2と
同様である。リプレース情報保持領域24には複数のリ
プレースフラグ格納領域があり、各リプレースフラグ格
納領域はそれぞれラインエントリ対応に設けられてい
る。図1において、下位キャッシュメモリ3でリプレー
スが発生した場合の動作を説明する。下位キャッシュメ
モリ3でリプレースが発生すると、下位キャッシュ制御
装置2は上位キャッシュ制御装置4に対してリプレース
発生通知信号22を送信する。上位キャッシュ制御装置
4は、この信号を受信すると上位キャッシュメモリ5に
対して該当するラインの有無を調べる。その結果該当ブ
ロックが存在した場合、リプレース情報保持領域24中
の該当ラインエントリのリプレースフラグをセットす
る。そして、上位キャッシュメモリ5の他のブロックを
選択して、該ブロック内のデータをパージして、該ブロ
ックにリプレースデータを格納する。
【0010】一方ストア時には、上位キャッシュ制御装
置4が、ストア先ラインが上位キャッシュメモリ5中に
存在するかを確認し、目的ラインが存在した場合は、更
にリプレース情報保持領域24中の目的ラインのエント
リを調べる。この結果、エントリ中のリプレースフラグ
がセットされていなければ即座にキャッシュにストアデ
ータを書き込めるが、リプレースフラグがセットされて
いれば、目的ラインが下位キャッシュに存在しないこと
がわかるので、下位キャッシュ制御装置2に対して直接
LT要求信号23を送信し、目的ラインの到着を待って
からストアを実行する。
【0011】図4は、実施例の階層キャッシュメモリ装
置における、上位キャッシュ制御装置の例を示す図であ
る。なお、上位キャッシュのキャッシング方式は、4ウ
ェイセットアソシアティブと仮定する。以下、図4を用
いて、実施例の動作を説明する。図4において、下位キ
ャッシュ制御装置から下位リプレース発生信号34を受
信すると、上位キャッシュ制御装置55は下位キャッシ
ュ制御装置から送信されたリプレースアドレス35に基
づきヒットチェック回路50を通じてヒットチェックを
行なう。この結果ヒットが検出された場合(キャッシュ
ヒット信号41の値が真)、上位キャッシュ制御装置5
5は、図3に示したようなヒットしたラインのパージを
実行することはせず、本発明によって設けられた、キャ
ッシュタグ中のリプレース情報保持領域53の該当エン
トリのリプレースフラグをセットする。なお、図4にお
いて、51は上位キャッシュメモリのタグ部、52は上
位キャッシュメモリのタグ部の有効フラグ領域、53は
上位キャッシュメモリのタグ部のリプレース情報保持領
域、54は上位キャッシュメモリのタグ部のアドレスタ
グ領域である。
【0012】上記状況に対応した本実施例のリプレース
制御を、図5を用いて模式的に説明する。図5(1)の
初期状態では、下位キャッシュのあるカラムにラインA
が、そして上位キャッシュにおける、ラインAがキャッ
シュインするカラムには各ローに、A、B、C、Dの4
つのラインがあるものとする。次に、図5(2)でキャ
ッシュミスが起き、ラインXがLTデータとして主記憶
から転送されてくる。図5(3)で、LTデータXがキ
ャッシュインするべきカラムに既に有効なブロックAが
存在しているので、ラインAはパージされ、LTデータ
XがラインAの存在したカラムへキャッシュインする。
この時、上位キャッシュへリプレースの発生が通知さ
れ、また、LTデータXが転送される。図5(4)で、
上位キャッシュのラインAに対応するリプレース情報保
持領域のリプレースフラグをセットし、また、例えばラ
インDをパージし、その後に転送されたLTデータXを
格納する。この処理により、上位キャッシュメモリ5に
おけるリプレースが抑止されるので、不必要にパージさ
れたライン再読み込みのオーバーヘッドを防ぐことが可
能になる。また、下位キャッシュのリプレース情報を保
持することにより、以下の例に見られるストア時のオー
バーヘッドを抑止できる。
【0013】CPU内に存在する命令ユニットから図4
に示すようにWrite要求信号31とストアアドレス
33を受信すると、上位キャッシュ制御装置52は前例
同様にヒットチェックを行なう。この結果、キャッシュ
ヒットしていてかつリプレース情報保持領域53のリプ
レースフラグがセットされていない場合には、ストアを
行なう。一方、キャッシュヒットしていてかつプレース
情報保持領域のリプレースフラグがセットされていれ
ば、すなわち、例えば、図5に示したラインAに対応す
るリプレースフラグがセットされていれば、上位キャッ
シュ、下位キャッシュともにミスヒットであると見倣
し、即座にデータ転送を開始するよう、下位キャッシュ
制御装置に対してライン転送要求信号46を送出する。
下位キャッシュ制御装置は、この信号を受信すると、下
位キャッシュにおけるヒットチェックをすることなく、
ライン転送処理を開始する。この場合、下位キャッシュ
にライン転送し、上位キャッシュにもブロック転送す
る。なお、下位キャッシュに対してのみライン転送を
し、上位キャッシュへのブロック転送を省略するように
してもよい。なお、図5において上位キャッシュからパ
ージされたラインDに対してストア命令が出された場合
には、下位キャッシュに対してヒットチェックを行い、
ラインDを上位キャッシュに書き込むだけで済む。
【0014】上述の説明から、本発明による階層キャッ
シュメモリ装置は、上位キャッシュメモリ装置中に「こ
のエントリのラインは既に下位キャッシュにメモリ存在
しない」ことを表すリプレースフラグを有し、下位キャ
ッシュメモリでリプレースが起きた際、上位キャッシュ
中にそのラインが存在すれば、前記リプレースフラグを
セットし、ストア時には、該当ラインに対応する前記リ
プレースフラグがセットされている際に、下位キャッシ
ュに対するヒットチェックを行わずに、下位キャッシュ
制御装置にライン転送要求を出すようにすることを特徴
とする。
【0015】
【発明の効果】以上説明したように、本発明によれば、
下位キャッシュメモリ中のリプレースによる上位キャッ
シュメモリの不必要な強制パージを防ぐことが可能にな
るので、再読み込みやスラッシング等によるプロセッサ
の性能低下を防ぐことができる。また、上位キャッシュ
のラインが下位キャッシュに存在するか否かを上位キャ
ッシュメモリ装置のみで判断できるので、ストア実行時
に下位キャッシュメモリのヒットチェックをするオーバ
ーヘッドが不必要になる。
【図面の簡単な説明】
【図1】実施例の階層キャッシュメモリ装置の構成例で
ある。
【図2】従来の一般的な階層キャッシュメモリ装置の構
成例である。
【図3】従来のリプレース制御例を説明するための図で
ある。
【図4】実施例における上位キャッシュメモリ制御装置
の構成例を示す図である。
【図5】実施例におけるリプレース制御例を説明するた
めの図である。
【符号の説明】
1 主記憶装置 2 下位キャッシュ制御装置 3 下位キャッシュメモリ 4 上位キャッシュ制御装置 5 上位キャッシュメモリ 6 中央処理装置キャッシュ入出力系 7 LTデータ送出信号 8 3ステート制御信号 9 下位キャッシュメモリ制御系 10 ライン転送データ送出信号 11 パージ要求信号 12 キャッシュデータセレクト信号 13 3ステート制御信号 14 上位キャッシュメモリ制御系 15 LTデータ受取用ラッチ 16 LTデータ受取用ラッチ 17 BTデータ送出用ラッチ 18 BTデータ受取用ラッチ 19 ストアデータ書込用ラッチ 20 ロードデータ読込用ラッチ 21 LTデータ 22 リプレース発生通知信号 23 直接LT要求信号 24 リプレース情報保持領域 31 キャッシュリード要求信号 32 キャッシュライト要求信号 33 キャッシュリード/ライトアドレス 34 下位キャッシュリプレース発生通知 35 下位キャッシュリプレースアドレス 36 キャッシュセットインデックス 37 キャッシュデータバリッドビット 38 リプレースビット 39 キャッシュタグ 40 リプレースビットセット信号 41 キャッシュヒット信号 42 リードBT要求信号 43 キャッシュリード・ローセレクト信号 44 キャッシュライト・ローセレクト信号 45 ライトBT要求信号 46 ライトLT要求信号 47 比較器 48 ANDゲート 49 ORゲート 50 ヒットチェック回路 51 上位キャッシュメモリのタグ部 52 上位キャッシュメモリのタグ部の有効リプレース
フラグ領域 53 上位キャッシュメモリのタグ部のリプレース情報
保持領域 54 上位キャッシュメモリのタグ部のアドレスタグ領
域 55 上位キャッシュ制御装置

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 データをライン単位に記憶するキャッシ
    ュメモリとキャッシュ制御装置を備える複数階層のキャ
    ッシュメモリ装置において、 前記複数階層キャッシュメモリ装置中の任意の2階層の
    うち、上位のキャッシュメモリ装置の一部に、該上位キ
    ャッシュメモリ中のラインの下位キャッシュメモリ中に
    おける存在の有無を示すフラグを各ライン対応に設け、 該下位キャッシュメモリに、該下位キャッシュメモリに
    おけるラインの置換え(リプレース)の発生を検知し該
    上位キャッシュメモリ装置に対してそのリプレース発生
    情報を通知する手段を設け、 該上位キャッシュメモリ装置に、受信した該リプレース
    発生情報を基に該ラインが該上位キャッシュメモリに存
    在するかチェックし、該ラインが存在したならば前記フ
    ラグをセットする手段を設けたことを特徴とする階層キ
    ャッシュメモリ装置。
  2. 【請求項2】 請求項1記載の階層キャッシュメモリ装
    置において、 ストア実行時に前記上位キャッシュメモリ中に目的デー
    タが存在するか確認を行ない(ヒットチェック)、その
    結果、存在していた(キャッシュヒット)とき、前記フ
    ラグをチェックし、セットされていない場合には直ちに
    キャッシュにストアを実行し、セットされている場合に
    は、該下位キャッシュに当該ラインを転送してきてから
    ストアを実行する手段を設けたことを特徴とする階層キ
    ャッシュメモリ装置。
JP8227440A 1996-08-09 1996-08-09 階層キャッシュメモリ装置 Pending JPH1055309A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8227440A JPH1055309A (ja) 1996-08-09 1996-08-09 階層キャッシュメモリ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8227440A JPH1055309A (ja) 1996-08-09 1996-08-09 階層キャッシュメモリ装置

Publications (1)

Publication Number Publication Date
JPH1055309A true JPH1055309A (ja) 1998-02-24

Family

ID=16860906

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8227440A Pending JPH1055309A (ja) 1996-08-09 1996-08-09 階層キャッシュメモリ装置

Country Status (1)

Country Link
JP (1) JPH1055309A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10983914B2 (en) 2018-06-26 2021-04-20 Fujitsu Limited Information processing apparatus, arithmetic processing device, and method for controlling information processing apparatus

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10983914B2 (en) 2018-06-26 2021-04-20 Fujitsu Limited Information processing apparatus, arithmetic processing device, and method for controlling information processing apparatus

Similar Documents

Publication Publication Date Title
US11347649B2 (en) Victim cache with write miss merging
US5091851A (en) Fast multiple-word accesses from a multi-way set-associative cache memory
CN107066396B (zh) 用于操作虚拟索引的物理标记的缓存的装置及方法
US6460114B1 (en) Storing a flushed cache line in a memory buffer of a controller
JP4486750B2 (ja) テンポラリ命令及び非テンポラリ命令用の共用キャッシュ構造
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
EP0434250B1 (en) Apparatus and method for reducing interference in two-level cache memories
EP0470734B1 (en) Cache memory management system
US8095734B2 (en) Managing cache line allocations for multiple issue processors
US6332179B1 (en) Allocation for back-to-back misses in a directory based cache
JP3609656B2 (ja) コンピュータシステム
US20030149842A1 (en) Method for controling cache system comprising direct-mapped cache and fully-associative buffer
US6449698B1 (en) Method and system for bypass prefetch data path
US6240489B1 (en) Method for implementing a pseudo least recent used (LRU) mechanism in a four-way cache memory within a data processing system
KR100851738B1 (ko) 로우-레벨 캐시를 포함한 액세스 촉진용 리버스 디렉토리
US6792498B2 (en) Memory system with mechanism for assisting a cache memory
US6976130B2 (en) Cache controller unit architecture and applied method
US6839806B2 (en) Cache system with a cache tag memory and a cache tag buffer
US20010032297A1 (en) Cache memory apparatus and data processing system
JP3733604B2 (ja) キャッシュメモリ
JPH1055309A (ja) 階層キャッシュメモリ装置
JP2000047942A (ja) キャッシュメモリ制御装置及びその制御方法
JPH04315235A (ja) キャッシュメモリにおけるキャッシュデータリプレース方法及びキャッシュデータリプレース装置
JPH10207773A (ja) バス接続装置
KR19990068873A (ko) 캐쉬 메모리