JPH09259036A - ライトバックキャッシュおよびライトバックキャッシュ内で整合性を維持する方法 - Google Patents

ライトバックキャッシュおよびライトバックキャッシュ内で整合性を維持する方法

Info

Publication number
JPH09259036A
JPH09259036A JP9040832A JP4083297A JPH09259036A JP H09259036 A JPH09259036 A JP H09259036A JP 9040832 A JP9040832 A JP 9040832A JP 4083297 A JP4083297 A JP 4083297A JP H09259036 A JPH09259036 A JP H09259036A
Authority
JP
Japan
Prior art keywords
cache
memory
write
data
byte
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
JP9040832A
Other languages
English (en)
Inventor
Vikufubai Pateru Rajesshu
ラジェッシュ・ヴィクフバイ・パテル
Marric Somia
ソウミャ・マリック
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 JPH09259036A publication Critical patent/JPH09259036A/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/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
    • 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating

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)【要約】 【課題】 ライトバックキャッシュメモリと、そのメモ
リ内で整合性を維持する方法を提供すること。 【解決手段】 ライトバックキャッシュメモリは、関連
づけられるメモリ内のアドレスに関連したデータを記憶
する複数のキャッシュラインを含む。キャッシュライン
の各々は複数のバイト集合を含む。さらに、ライトバッ
クキャッシュメモリは整合標識を含み、この整合標識
は、キャッシュラインに含まれる複数のバイト集合の中
のどのバイト集合が、関連づけられるメモリ内の対応す
るアドレスに記憶されたデータとは異なったデータを含
むかを識別する。さらに、ライトバックキャッシュメモ
リはキャッシュ制御ロジックを含み、このロジックは、
ライトバックキャッシュメモリ内の特定のキャッシュラ
インが置換されるとき、識別されたバイト集合のみを、
関連づけられるメモリへ書き込むので、メモリアクセス
が少なくなる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は一般的にはキャッシ
ュメモリに関し、具体的にはライトバック(write
−back)キャッシュメモリ内で整合性を維持するこ
とに関する。さらに具体的には、本発明は、キャッシュ
ライン内に含まれるデータが細分されたラインサイズで
更新されるライトバックキャッシュメモリと、このライ
トバックキャッシュメモリ内で整合性を維持する方法に
関する。
【0002】
【従来の技術】キャッシュは高価な小型の高速メモリで
あり、関連づけられるメモリ内に記憶されたデータへの
アクセス時間を改善し、プロセッサの遅延を減少させる
ために、データ処理システムで普通に使用されている。
典型的には、キャッシュは多数のキャッシュラインから
構成され、各キャッシュラインはいくつかのデータバイ
トを含む。メモリ内に記憶されたデータは、そのデータ
に関連づけられたメモリアドレスのインデックス部分を
使用してキャッシュへマップされ、同じインデックス部
分をもつ複数のメモリアドレスが同じキャッシュライン
にマップされるようになっている。特定のメモリアドレ
スに関連づけられたキャッシュ内のデータは、アドレス
タグによって、同じインデックス部分をもつ他のアドレ
スに関連づけられたデータから識別される。アドレスタ
グは、典型的には高順位のアドレスビットであり、キャ
ッシュ内のデータと関連づけて記憶されている。同じイ
ンデックス部分をもつアドレスに関連づけられたデータ
相互間の衝突を最小にするため、多くのキャッシュは各
キャッシュラインについて複数のウエイすなわち記憶位
置を備えている。
【0003】プロセッサから要求されたデータがキャッ
シュ内に存在しないとき、キャッシュミスが起こり、要
求されたデータはメモリからフェッチされる。要求され
たデータがキャッシュ内にあるようにするため、要求さ
れたデータがマップされたキャッシュラインのウエイに
存在するデータは、しばしば置換すなわちカーストアウ
ト(cast−out)される必要がある。キャッシュ
が複数のウエイを有するとき、置換されるキャッシュ位
置は、プロセッサによって高い確率で要求されるデータ
がカーストアウトされないように、典型的には、LRU
(leastrecently used)アルゴリズ
ムのようなアルゴリズムを使用して選択される。同様
に、キャッシュ位置を検査して、キャッシュ位置に含ま
れるデータが、対応するメモリアドレス内に記憶された
最新のデータと整合性をもたない場合、キャッシュ位置
を置換すなわちプッシュアウト(push−out)す
ることができる。
【0004】キャッシュ内のデータとメモリ内のデータ
との整合性は、キャッシュ整合プロトコルによって実効
化される。このプロトコルは典型的にはプロセッサまた
はキャッシュコントローラによって実施される。データ
アクセスがライトスルー(write−throug
h)として指定されると、キャッシュ内データの更新は
自動的にメモリへ書かれ、したがってデータアクセスの
完了時にはキャッシュとメモリの整合性が維持される。
他方、ライトバック(write−back)キャッシ
ュでは、キャッシュラインの置換時またはバス活動が少
ないときにコピーバック動作を実行することによっての
み、データの整合性が維持される。ライトバックキャッ
シュでは、バスの使用が少なくなるので、パフォーマン
スの点からいえば、ソフトウェアとハードウェア環境に
よって低い整合性が許される場合には、一般的にライト
バックキャッシュの方がライトスルーキャッシュよりも
優っている。
【0005】キャッシュの整合および置換動作は、典型
的にはライン単位で実行される。したがって、通常のラ
イトバックキャッシュでは、各キャッシュラインの各ウ
エイに1つのビットが関連づけられており、このビット
は、データバイトがキャッシュへ書き込まれた後でウエ
イ内のデータバイトが変更されたかどうかを示してい
る。変更されたデータを含むウエイが置換されるとき、
コピーバック動作が呼び出され、置換されるウエイの各
バイトを、対応するメモリアドレスへ書き込む。典型的
には、キャッシュラインの長さは、キャッシュが接続さ
れているバスのバンドワイズ(bandwidth)よ
りも数倍長いので、通常、コピーバック動作が完了する
までに、多くのマルチサイクルバストランザクションす
なわちビート(beat)を必要とする。
【0006】ライトバックキャッシュは、ライトスルー
アーキテクチャのキャッシュと比較して優れたパフォー
マンスを示すが、通常のライトバックキャッシュは、変
更されないデータバイトも不必要にメモリへ書かれるた
めに、置換されるウエイ内にあるデータバイトの一部だ
けが変更されるとき、バスのバンドワイズを不必要に消
費する。変更されないデータバイトのライトバックは、
バスのバンドワイズを消費してシステムの全体的パフォ
ーマンスを低下させるだけでなく、特にバッテリ電源の
コンピューティング環境(たとえば、携帯用コンピュー
タ)で問題となるが、キャッシュの能動化とバスの駆動
時に電力を浪費する。したがって、変更されていないデ
ータはメモリへ書き戻さないようなライトバックキャッ
シュが望まれる。
【発明が解決しようとする課題】
【0007】本発明の目的は、キャッシュメモリを提供
することである。
【0008】本発明の他の目的は、ライトバックキャッ
シュメモリ内で整合性を維持するための改善された方法
を提供することである。
【0009】さらに、本発明の他の目的は、各キャッシ
ュライン内に含まれるデータの変更を、細分されたライ
ンサイズで行うライトバックキャッシュメモリと、その
ライトバックキャッシュメモリ内で整合性を維持する方
法を提供することである。
【課題を解決するための手段】
【0010】前記の目的を達成するライトバックキャッ
シュメモリと、そのライトバックキャッシュメモリ内で
整合性を維持する方法の手段は次のとおりである。すな
わち、ライトバックキャッシュメモリは、関連づけられ
るメモリ内のアドレスに関連したデータを記憶する多数
のキャッシュラインを含む。キャッシュラインの各々は
複数のバイト集合を含む。さらに、ライトバックキャッ
シュメモリは整合標識を含み、この整合標識は、キャッ
シュライン内の複数のバイト集合の中でどのバイト集合
が、関連づけられるメモリ内の対応するアドレスに記憶
されたデータとは異なったデータを含むかを識別する。
さらに、ライトバックキャッシュメモリはキャッシュ制
御ロジックを含む。このキャッシュ制御ロジックは、ラ
イトバックキャッシュメモリ内の特定のキャッシュライ
ンを置換するとき、メモリアクセスが最小になるよう
に、識別されたバイト集合のみを、関連づけられるメモ
リへ書き込む。
【0011】本発明の前記および他の目的、特徴、利点
は以下の詳細な説明から明らかとなる。
【0012】
【発明の実施の形態】ここで図1を参照すると、そこに
は本発明のライトバックキャッシュを含むデータ処理シ
ステム10が示される。データ処理システム10はプロ
セッサ12、オンボードのレベル1(L1)キャッシュ
14、オプションのレベル2(L2)キャッシュ16、
メモリ18、システムバス20、プロセッサバス22、
およびメモリコントローラ24を含む。
【0013】プロセッサ12はソフトウェア命令を実行
する。ソフトウェア命令はメモリ18に記憶されるか、
システムバス20へ接続された他の装置からプロセッサ
12によって受け取られる。メモリ18への反復アクセ
スによって遅延が生じるのを避けるため、メモリ18か
ら検索された命令とデータは、それらが再び要求される
可能性があるため、レベル1(L1)キャッシュ14ま
たはレベル2(L2)キャッシュ16(もしあれば)に
記憶される。プロセッサ12は、縮小命令セットコンピ
ュータ(RISC)技術に従って動作する、IBM M
icroelectronicsから入手できるPow
erPC系マイクロプロセッサの1つであることが望ま
しい。しかし、80x86、Intel Pentiu
m、または他の適当なプロセッサであってもよい。
【0014】レベル1(L1)キャッシュ14は小型の
(たとえば16Kバイト)の高速メモリを含む。このメ
モリに対しては、プロセッサ12内のレジスタおよび実
行ユニットが、高速のプロセッサバス22およびシステ
ムバス20を介してメモリ18から検索された最新のデ
ータと命令へ迅速にアクセスすることができる。前述し
たように、データをメモリ18へ書き戻すために使用さ
れるシステムバス20のバンドワイズを少なくすること
によってデータ処理システム10のバフォーマンスを最
大にするため、レベル1(L1)キャッシュ14はライ
トバックキャッシュとして構成するのが望ましい。しか
し、レベル1(L1)キャッシュ14の構成は、そこに
含まれるデータへのアクセスがキャッシュライン単位で
ライトスルーで行われるかライトバックで行われるかを
ソフトウェアで決めることができる。レベル1(L1)
キャッシュ14はデータと命令の双方を記憶する一体型
キャッシュとして示されているが、当業者に明らかなよ
うに、データキャッシュと命令キャッシュの2つに分け
てもよい。
【0015】プロセッサ12は、ダッシ線で示されるよ
うに、オプションのレベル2(L2)キャッシュ16に
接続することができる。レベル2(L2)キャッシュ1
6は、レベル1(L1)キャッシュ14と同じく高速メ
モリを含み、メモリ18内に記憶されたデータと命令の
サブセットを含む。データアクセスの効率を最大限にす
るため、レベル2(L2)キャッシュ16のサイズはレ
ベル1(L1)キャッシュ14よりも大きく、またライ
トバックキャッシュとして構成するのが望ましい。レベ
ル2(L2)キャッシュ16は、専用バス26を介して
プロセッサ12へ接続されるように示されているが、当
業者に明らかなように、プロセッサ12のオンボードと
し、インラインまたはルックアサイド構成でプロセッサ
バス22に接続するか、システムバス20へ接続するこ
とができる。
【0016】メモリ18はランダムアクセスメモリ(R
AM)から構成され、このランダムアクセスメモリは、
図示されるようにメモリコントローラ24に関連づけら
れている。メモリコントローラ24はデータの記憶と検
索を行うための読み出し能動信号と書き込み能動信号を
生成し、またプロセッサ12によって使用される論理ア
ドレスをメモリ18内の物理アドレスへ対応づけるアド
レス変換機構を含んでいる。当業者に明らかであるよう
に、メモリ18は多数の揮発性メモリモジュールから構
成してよく、このメモリモジュールは、電力がデータ処
理システム10へ供給されている間、データと、オペレ
ーティング・システムおよびアプリケーションソフトウ
ェアのセグメントとを記憶する。さらに、当業者に明ら
かであるように、システムバス20にはメモリ18のほ
かに各種の装置を接続して、プロセッサ12、レベル1
(L1)キャッシュ14、レベル2(L2)キャッシュ
16、およびメモリ18と交信を行わせることができ
る。しかし、このような装置は本実施例の理解には不必
要であり、説明を簡単にするために省いてある。
【0017】ここで図2を参照すると、そこには図1で
示したデータ処理システムに使用されるライトバックキ
ャッシュが示される。図2に示されたライトバックキャ
ッシュはレベル1(L1)キャッシュ14として示され
ているが、この図はレベル2(L2)キャッシュ16へ
も同じく適用可能であることを理解されたい。図2にお
いて、レベル1(L1)キャッシュ14は多数のキャッ
シュライン30を含む2ウエイセット関連キャッシュで
ある。キャッシュライン30の各々は、2つのウエイの
各々で4つのバスパケットP0−P3を含んでいる。バ
スパケットP0−P3の各々は、1つまたは複数のデー
タバイトを含み、またプロセッサバス22およびシステ
ムバス20の幅に等しいパケットサイズであることが望
ましい。したがって、プロセッサバス22およびシステ
ムバス20が64ビットのバスであれば、バスパケット
P0−P3の各々は8つのデータバイトを含むことが望
ましい。
【0018】通常のキャッシュと同じく、データは、デ
ータを記憶するメモリアドレスのインデックス部分によ
って、レベル1(L1)キャッシュ14の特定のキャッ
シュライン30へマップされる。特定のメモリアドレス
に関連づけられたデータは、レベル1(L1)キャッシ
ュ14に記憶されたとき、アドレスタグ32によって、
同じインデックス部分をもつ他のメモリアドレスに関連
づけられたデータから識別される。アドレスタグ32
は、データが記憶されているメモリ18内の物理アドレ
スの高順位ビットから構成されることが望ましい。
【0019】さらに、レベル1(L1)キャッシュ14
は整合プロトコルビット34を含む。これらのビット
は、実施例ではMEI(Modified,Exclu
sive,Invalid)キャッシュ整合プロトコル
で使用される。当業者に明らかであるように、このプロ
トコルの代わりに他のキャッシュ整合プロトコル、たと
えばMESI(Modified,Exclusiv
e,Shared,Invalid)プロトコルをレベ
ル1(L1)キャッシュ14内で使用できる。整合プロ
トコルビット34は、1つの排他ビット(E)37、1
つの無効ビット(I)36、および各キャッシュライン
30の各ウエイに関連した4つの変更ビット38(M0
−M3)を含む。キャッシュライン30の特定のウエイ
に関連した排他ビット37がセットされているとき、そ
れはウエイ内に記憶されたデータブロックがレベル1
(L1)キャッシュ14にのみ含まれ(レベル2(L
2)キャッシュ16には含まれず)、メモリ18と整合
していることを示す。キャッシュライン30の特定のウ
エイに関連した無効ビット36がセットされていると
き、それは対応するアドレスタグ32に関連したデータ
がレベル1(L1)キャッシュ14内に存在していない
ことを示す。たとえば、データ処理システム10内で第
2バスマスタによってメモリ18内の同じ場所にキャッ
シュ可能な読み取りアクセスまたは書き込みアクセスが
行われたとき、スヌープヒット(snoop hit)
が起こると無効ビット36がセットされる。変更ビット
38(M0−M3)の各々は、対応するキャッシュライ
ンウエイ内のバスパケットP0−P3の特定の1つに関
連づけられている。変更ビットM0−M3は、対応する
バスパケットP0−P3がメモリ18に関して変更され
たときにセットされる。したがって、変更ビットM0−
M3の1つがセットされているとき、それは対応するバ
スパケット内のデータがレベル1(L1)キャッシュ1
4内でのみ有効であることを示し、そのデータが最終的
には整合性を維持するためにメモリ18へ書き戻されな
ければならないことを示す。
【0020】レベル1(L1)キャッシュ14はキャッ
シュ制御ロジック40を含む。キャッシュ制御ロジック
40は、整合プロトコルビット34をセットまたはクリ
アすることによってキャッシュ整合プロトコルを実行す
るだけでなく、論理アドレスからアドレスタグを生成
し、LRUアルゴリズムに従って置換のためのキャッシ
ュラインを選択する。
【0021】ここで図3を参照すると、そこには図1の
データ処理システム10内でキャッシュの整合を維持す
る方法のフローチャートが示される。キャッシュアクセ
ス要求がレベル1(L1)キャッシュ14によってプロ
セッサ12から受け取られたとき、プロセスがブロック
50で始まる。プロセスはブロック50からブロック5
2へ進み、キャッシュ制御ロジック40が、オペランド
データの論理(実効)アドレスに基づいて、アドレスタ
グ(すなわち、オペランドデータの物理アドレスの高順
位ビット)を生成する。さらに、キャッシュ制御ロジッ
ク40は、論理アドレスのインデックス部分を使用し
て、キャッシュアクセス要求を、指定されたキャッシュ
ライン30へマップする。次に、プロセスはブロック5
2からブロック54へ進む。ブロック54は、キャッシ
ュアクセス要求が読み取り要求か書き込み要求かを決定
する。キャッシュアクセス要求が読み取り要求であると
決定されると、プロセスはブロック54からブロック5
6へ進む。
【0022】ブロック56は、読み取り要求がヒットに
なるかミスになるかを決定する。ブロック56の決定
は、ブロック52で生成されたアドレスタグを、指定さ
れたキャッシュライン30の各ウエイに関連づけられた
アドレスタグ32と比較することによって行われる。生
成されたアドレスタグが、指定されたキャッシュライン
30のウエイに関連づけられたアドレスタグ32の1つ
と一致すると、キャッシュヒットが起こり、プロセスは
ブロック57へ進む。ブロック57では、レベル1(L
1)キャッシュ14が、要求されたデータをプロセッサ
12へ戻す。その後で、プロセスはブロック70で終了
する。しかし、レベル1(L1)キャッシュ14で、読
み取り要求がミスになると、プロセスはブロック64か
らブロック68までに進む。これらのブロックでは、以
下説明するように、要求されたデータのメモリアドレス
がマップされたキャッシュライン30のウエイの1つで
置換が実行される。
【0023】ブロック54へ戻って、キャッシュアクセ
ス要求が、指定されたキャッシュライン30への書き込
みであることが決定されると、プロセスはブロック54
からブロック58へ進む。ブロック58は、書き込み要
求がヒットになるかミスになるかを決定する。ブロック
58の決定は、ブロック52で生成されたアドレスタグ
を、指定されたキャッシュライン30の各ウエイに関連
したアドレスタグ32と比較することによって行われ
る。生成されたアドレスタグが、アドレスタグ32の1
つと一致すると、ヒットが起こり、プロセスはブロック
60および62へ進む。ブロック60および62では、
指定されたキャッシュライン30内の適切なバイトが更
新され、更新されたバイトを含むバスパケットに関連し
た変更ビット38がセットされる。したがって、ライト
バックに必要なバスの使用を減らすために、レベル1
(L1)キャッシュ14は、従来型のライトバックキャ
ッシュよりも精細に、キャッシュ内のデータの変更を表
示することができる。次にプロセスはブロック62から
ブロック70へ進み、そこでプロセスは終了する。
【0024】再びブロック58を参照すると、キャッシ
ュアクセス要求がミスになると(すなわち、生成された
アドレスタグが、指定されたキャッシュライン30のウ
エイに関連したアドレスタグ32と一致しないという決
定がなされると)、プロセスはブロック64からブロッ
ク68に進む。前述したように、ブロック64からブロ
ック68は、指定されたキャッシュライン30の選択さ
れたウエイのライトバックを示している。実施例では、
置換されるウエイはLRUアルゴリズムに従って選択さ
れる。このLRUアルゴリズムは、単一のLRUビット
をキャッシュライン30の各々に関連づけることによっ
て実行することができる。しかし、当業者に明らかであ
るように、他の置換方式を使用することができる。
【0025】図3のブロック64では、キャッシュ制御
ロジック40が、バスパケットP0−P3のどれが変更
されたかを識別するために、指定されたキャッシュライ
ン30内で置換のために選択されたウエイに関連する変
更ビット38を検査する。次に、プロセスはブロック6
6へ進む。そこでは、変更をマークされたバスパケット
のみをメモリ18へ書き込む。従来型のライトバックキ
ャッシュとは対照的に、変更をマークされないバスパケ
ットはカーストアウトされるだけで、メモリ18へは書
き戻されず、したがってライトバックに必要なバスの使
用は減少する。次に、プロセスはブロック68へ進む。
そこでは、要求されたデータを含むデータブロックがレ
ベル2(L2)キャッシュ16またはメモリ18からフ
ェッチされ、そのデータブロックが、指定されたキャッ
シュライン30の選択されたウエイへ書き込まれる。さ
らに、バスパケットP0−P3のいずれが、変更された
データを含むかを表示するために、選択されたウエイに
関連する変更ビット38がセットまたはクリアされる。
したがって、選択されたウエイの置換が読み取りミスに
応答してなされる場合、選択されたウエイに関連する変
更ビット38のすべてがクリアされる。しかし、書き込
みミスによってウエイが置換される場合、バスパケット
P0−P3のいずれが変更されたデータを含むかを表示
するために、変更ビット38の1つまたは複数がセット
される。その後で、プロセスはブロック70へ進み、そ
こで終了する。
【0026】これまでに説明したデータ処理システムの
実施例から分かるように、変更された整合プロトコル情
報をキャッシュラインの細分精度で保持することによ
り、ライトバックのバス使用が最小になる優れたライト
バックキャッシュが提供される。整合プロトコル情報を
バスパケット単位で保持することは、スラッシングを最
小にするために、低集合関連のキャッシュで特に利点が
ある。
【0027】実施例を詳細に説明したので、形式と細部
については、本発明の精神と範囲を逸脱することなく各
種の変更を加えてよいことが当業者に明らかであろう。
【0028】まとめとして、本発明の構成に関して以下
の事項を開示する。 (1)複数のバイト集合を含む複数のキャッシュライン
であって、関連づけられるメモリ内のアドレスに関連づ
けられたデータを記憶するものと、上記キャッシュライ
ン内の上記複数のバイト集合の中で、上記関連づけられ
るメモリ内の対応するアドレスに記憶されたデータとは
異なったデータを含むバイト集合を識別する整合標識
と、上記キャッシュラインの特定のものを置換すると
き、上記識別されたバイト集合のみを上記関連づけられ
るメモリへ書き込むキャッシュ制御ロジックと、を具備
するライトバックキャッシュメモリ。 (2)上記(1)において、上記整合標識が複数のビッ
トを含み、該複数のビットの各々が上記複数のバイト集
合の1つと関連づけられているライトバックキャッシュ
メモリ。 (3)上記(1)において、上記バイト集合の各々が、
ライトバックキャッシュメモリによって、上記関連づけ
られるメモリへ同時に書き込むことができる最大数のバ
イトを含むことを特徴とするライトバックキャッシュメ
モリ。 (4)上記(1)において、上記複数のキャッシュライ
ンの各々が、複数のバイト集合を含む複数のウエイを有
し、該複数のウエイの各々が、その上記複数のバイト集
合の中で変更されたバイト集合を識別する整合標識を有
することを特徴とするライトバックキャッシュメモリ。 (5)上記(1)において、プロセッサと関連づけられ
た上位レベルキャッシュが含まれていることを特徴とす
るライトバックキャッシュメモリ。 (6)上記(1)において、上記キャッシュ制御ロジッ
クが、LRUアルゴリズムに従って上記キャッシュライ
ンの特定のものを置換することを特徴とするキャッシュ
メモリ。 (7)プロセッサと、上記プロセッサへ接続されたメモ
リと、上記メモリへ接続されたライトバックキャッシュ
メモリとを具備し、該ライトバックキャッシュメモリに
は、複数のバイト集合を含む複数のキャッシュラインで
あって、上記メモリ内のアドレスと関連づけられたデー
タを記憶するものと、上記キャッシュライン内の上記複
数のバイト集合の中で、上記メモリ内の対応するアドレ
スに記憶されたデータとは異なったデータを含むバイト
集合を識別する整合標識と、上記ライトバックキャッシ
ュメモリ内の特定のキャッシュラインを置換するとき、
上記識別されたバイト集合のみを上記メモリへ書き込む
キャッシュ制御ロジックと、が含まれていることを特徴
とするデータ処理システム。 (8)上記(7)において、上記整合標識が複数のビッ
トを含み、該複数のビットの各々が上記複数のバイト集
合の1つに関連づけられていることを特徴とするデータ
処理システム。 (9)上記(7)において、上記バイト集合の各々が、
上記ライトバックキャッシュメモリによって上記メモリ
へ同時に書き込むことができる最大数のバイトを含むこ
とを特徴とするデータ処理システム。 (10)上記(7)において、上記複数のキャッシュラ
インの各々が、複数のバイト集合を含む複数のウエイを
有し、該複数のウエイの各々が、そのバイト集合の中の
変更されたものを識別する整合標識を有することを特徴
とするデータ処理システム。 (11)上記(7)において、上記ライトバックキャッ
シュメモリが上位レベルのキャッシュを含むことを特徴
とするデータ処理システム。 (12)上記(7)において、上記キャッシュ制御ロジ
ックがLRUアルゴリズムに従って上記特定のキャッシ
ュラインを置換することを特徴とするデータ処理システ
ム。 (13)複数のキャッシュラインを有するライトバック
キャッシュメモリの中で整合性を維持する方法であっ
て、関連づけられるメモリ内のアドレスに関連づけられ
たデータを、上記複数のキャッシュラインの中の特定の
キャッシュラインに記憶するステップと、上記特定のキ
ャッシュライン内の複数のバイト集合の中で、上記関連
づけられるメモリ内の対応するアドレスに記憶されたデ
ータとは異なったデータを含むバイト集合を識別するス
テップと、上記ライトバックキャッシュメモリ内の上記
特定のキャッシュラインを置換するとき、上記識別され
たバイト集合のみを上記関連づれられるメモリへ書き込
むステップとより成る、ライトバックキャッシュメモリ
内で整合性を維持する方法。 (14)上記(13)において、上記ライトバックキャ
ッシュメモリがそれに関連づけられた複数のビットを有
し、上記識別ステップでは、上記複数のビットの中で、
識別されるバイト集合に関連づけられたビットがセット
されることを特徴とする、ライトバックキャッシュメモ
リ内で整合性を維持する方法。 (15)上記(13)において、上記ライトバックキャ
ッシュメモリと上記関連づけられるメモリがバスによっ
て接続され、上記書き込みステップでは、識別されたバ
イト集合のためのバストランザクションのみが必要とさ
れることを特徴とする、ライトバックキャッシュメモリ
内で整合性を維持する方法。 (16)上記(13)において、上記複数のキャッシュ
ラインの各々が、複数のバイト集合を含む複数のウエイ
を有し、該複数のウエイの各々が、その上記複数のバイ
ト集合の中の変更されたものを識別する整合標識を有
し、上記識別ステップでは、上記特定のキャッシュライ
ンの選択されたウエイに含まれる上記複数のバイト集合
の中の識別されるべきバイト集合に関連したビットがセ
ットされることを特徴とする、ライトバックキャッシュ
メモリ内で整合性を維持する方法。 (17)上記(13)において、上記特定のキャッシュ
ラインがLRUアルゴリズムに従って置換されることを
特徴とする、ライトバックキャッシュメモリ内で整合性
を維持する方法。
【図面の簡単な説明】
【図1】少なくとも1つのライトバックキャッシュを含
むデータ処理システムのブロック図である。
【図2】ライトバックキャッシュの実施例を示す図であ
る。
【図3】ライトバックキャッシュ内でキャッシュの整合
性を維持するために使用される方法を示すフローチャー
トである。
【符号の説明】
10 データ処理システム 12 プロセッサ 14 レベル1(L1)キャッシュ 16 レベル2(L2)キャッシュ 18 メモリ 20 システムバス 22 プロセッサバス 24 メモリコントローラ 26 専用バス 30 キャッシュライン 32 アドレスタグ 34 整合プロトコルビット 36 無効ビット 37 排他ビット 38 変更ビット 40 キャッシュ制御ロジック 50 ブロック 52 ブロック 54 ブロック 56 ブロック 57 ブロック 58 ブロック 60 ブロック 62 ブロック 64 ブロック 66 ブロック 68 ブロック 70 ブロック
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ソウミャ・マリック アメリカ合衆国78729、 テキサス州オー スティン パートリッジ ベント ドライ ブ 13032

Claims (17)

    【特許請求の範囲】
  1. 【請求項1】 複数のバイト集合を含む複数のキャッシ
    ュラインであって、関連づけられるメモリ内のアドレス
    に関連づけられたデータを記憶するものと、上記キャッ
    シュライン内の上記複数のバイト集合の中で、上記関連
    づけられるメモリ内の対応するアドレスに記憶されたデ
    ータとは異なったデータを含むバイト集合を識別する整
    合標識と、上記キャッシュラインの特定のものを置換す
    るとき、上記識別されたバイト集合のみを上記関連づけ
    られるメモリへ書き込むキャッシュ制御ロジックと、を
    具備するライトバックキャッシュメモリ。
  2. 【請求項2】請求項1において、上記整合標識が複数の
    ビットを含み、該複数のビットの各々が上記複数のバイ
    ト集合の1つと関連づけられているライトバックキャッ
    シュメモリ。
  3. 【請求項3】請求項1において、上記バイト集合の各々
    が、ライトバックキャッシュメモリによって、上記関連
    づけられるメモリへ同時に書き込むことができる最大数
    のバイトを含むことを特徴とするライトバックキャッシ
    ュメモリ。
  4. 【請求項4】請求項1において、上記複数のキャッシュ
    ラインの各々が、複数のバイト集合を含む複数のウエイ
    を有し、該複数のウエイの各々が、その上記複数のバイ
    ト集合の中で変更されたバイト集合を識別する整合標識
    を有することを特徴とするライトバックキャッシュメモ
    リ。
  5. 【請求項5】請求項1において、プロセッサと関連づけ
    られた上位レベルキャッシュが含まれていることを特徴
    とするライトバックキャッシュメモリ。
  6. 【請求項6】請求項1において、上記キャッシュ制御ロ
    ジックが、LRUアルゴリズムに従って上記キャッシュ
    ラインの特定のものを置換することを特徴とするキャッ
    シュメモリ。
  7. 【請求項7】プロセッサと、上記プロセッサへ接続され
    たメモリと、上記メモリへ接続されたライトバックキャ
    ッシュメモリとを具備し、該ライトバックキャッシュメ
    モリには、複数のバイト集合を含む複数のキャッシュラ
    インであって、上記メモリ内のアドレスと関連づけられ
    たデータを記憶するものと、上記キャッシュライン内の
    上記複数のバイト集合の中で、上記メモリ内の対応する
    アドレスに記憶されたデータとは異なったデータを含む
    バイト集合を識別する整合標識と、上記ライトバックキ
    ャッシュメモリ内の特定のキャッシュラインを置換する
    とき、上記識別されたバイト集合のみを上記メモリへ書
    き込むキャッシュ制御ロジックと、が含まれていること
    を特徴とするデータ処理システム。
  8. 【請求項8】請求項7において、上記整合標識が複数の
    ビットを含み、該複数のビットの各々が上記複数のバイ
    ト集合の1つに関連づけられていることを特徴とするデ
    ータ処理システム。
  9. 【請求項9】請求項7において、上記バイト集合の各々
    が、上記ライトバックキャッシュメモリによって上記メ
    モリへ同時に書き込むことができる最大数のバイトを含
    むことを特徴とするデータ処理システム。
  10. 【請求項10】請求項7において、上記複数のキャッシ
    ュラインの各々が、複数のバイト集合を含む複数のウエ
    イを有し、該複数のウエイの各々が、そのバイト集合の
    中の変更されたものを識別する整合標識を有することを
    特徴とするデータ処理システム。
  11. 【請求項11】請求項7において、上記ライトバックキ
    ャッシュメモリが上位レベルのキャッシュを含むことを
    特徴とするデータ処理システム。
  12. 【請求項12】請求項7において、上記キャッシュ制御
    ロジックがLRUアルゴリズムに従って上記特定のキャ
    ッシュラインを置換することを特徴とするデータ処理シ
    ステム。
  13. 【請求項13】複数のキャッシュラインを有するライト
    バックキャッシュメモリの中で整合性を維持する方法で
    あって、関連づけられるメモリ内のアドレスに関連づけ
    られたデータを、上記複数のキャッシュラインの中の特
    定のキャッシュラインに記憶するステップと、上記特定
    のキャッシュライン内の複数のバイト集合の中で、上記
    関連づけられるメモリ内の対応するアドレスに記憶され
    たデータとは異なったデータを含むバイト集合を識別す
    るステップと、上記ライトバックキャッシュメモリ内の
    上記特定のキャッシュラインを置換するとき、上記識別
    されたバイト集合のみを上記関連づれられるメモリへ書
    き込むステップとより成る、ライトバックキャッシュメ
    モリ内で整合性を維持する方法。
  14. 【請求項14】請求項13において、上記ライトバック
    キャッシュメモリがそれに関連づけられた複数のビット
    を有し、上記識別ステップでは、上記複数のビットの中
    で、識別されるバイト集合に関連づけられたビットがセ
    ットされることを特徴とする、ライトバックキャッシュ
    メモリ内で整合性を維持する方法。
  15. 【請求項15】請求項13において、上記ライトバック
    キャッシュメモリと上記関連づけられるメモリがバスに
    よって接続され、上記書き込みステップでは、識別され
    たバイト集合のためのバストランザクションのみが必要
    とされることを特徴とする、ライトバックキャッシュメ
    モリ内で整合性を維持する方法。
  16. 【請求項16】請求項13において、上記複数のキャッ
    シュラインの各々が、複数のバイト集合を含む複数のウ
    エイを有し、該複数のウエイの各々が、その上記複数の
    バイト集合の中の変更されたものを識別する整合標識を
    有し、上記識別ステップでは、上記特定のキャッシュラ
    インの選択されたウエイに含まれる上記複数のバイト集
    合の中の識別されるべきバイト集合に関連したビットが
    セットされることを特徴とする、ライトバックキャッシ
    ュメモリ内で整合性を維持する方法。
  17. 【請求項17】請求項13において、上記特定のキャッ
    シュラインがLRUアルゴリズムに従って置換されるこ
    とを特徴とする、ライトバックキャッシュメモリ内で整
    合性を維持する方法。
JP9040832A 1996-03-15 1997-02-25 ライトバックキャッシュおよびライトバックキャッシュ内で整合性を維持する方法 Pending JPH09259036A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/616612 1996-03-15
US08/616,612 US5802572A (en) 1996-03-15 1996-03-15 Write-back cache having sub-line size coherency granularity and method for maintaining coherency within a write-back cache

Publications (1)

Publication Number Publication Date
JPH09259036A true JPH09259036A (ja) 1997-10-03

Family

ID=24470244

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9040832A Pending JPH09259036A (ja) 1996-03-15 1997-02-25 ライトバックキャッシュおよびライトバックキャッシュ内で整合性を維持する方法

Country Status (2)

Country Link
US (1) US5802572A (ja)
JP (1) JPH09259036A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005050454A1 (ja) * 2003-11-18 2005-06-02 Matsushita Electric Industrial Co., Ltd. キャッシュメモリおよびその制御方法
US8364893B2 (en) 2007-08-28 2013-01-29 Fujitsu Limited RAID apparatus, controller of RAID apparatus and write-back control method of the RAID apparatus
US9880939B2 (en) 2015-09-04 2018-01-30 Toshiba Memory Corporation Memory system and information processing system

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5924121A (en) * 1996-12-23 1999-07-13 International Business Machines Corporation Adaptive writeback of cache line data in a computer operated with burst mode transfer cycles
US5943684A (en) * 1997-04-14 1999-08-24 International Business Machines Corporation Method and system of providing a cache-coherency protocol for maintaining cache coherency within a multiprocessor data-processing system
US6182201B1 (en) * 1997-04-14 2001-01-30 International Business Machines Corporation Demand-based issuance of cache operations to a system bus
US6341331B1 (en) 1999-10-01 2002-01-22 International Business Machines Corporation Method and system for managing a raid storage system with cache
US6467031B1 (en) * 1999-12-10 2002-10-15 Intel Corporation Method and apparatus for reducing processor bus loading
US6339813B1 (en) * 2000-01-07 2002-01-15 International Business Machines Corporation Memory system for permitting simultaneous processor access to a cache line and sub-cache line sectors fill and writeback to a system memory
US6438647B1 (en) 2000-06-23 2002-08-20 International Business Machines Corporation Method and apparatus for providing battery-backed immediate write back cache for an array of disk drives in a computer system
JP2008501126A (ja) * 2004-05-25 2008-01-17 新世代株式会社 データ処理装置、描画装置及びピクセルパッカ
JP4113524B2 (ja) * 2004-09-13 2008-07-09 インターナショナル・ビジネス・マシーンズ・コーポレーション キャッシュ・メモリ・システムとその制御方法
US7380070B2 (en) * 2005-02-17 2008-05-27 Texas Instruments Incorporated Organization of dirty bits for a write-back cache
US8180968B2 (en) * 2007-03-28 2012-05-15 Oracle America, Inc. Reduction of cache flush time using a dirty line limiter
US8250307B2 (en) * 2008-02-01 2012-08-21 International Business Machines Corporation Sourcing differing amounts of prefetch data in response to data prefetch requests
US8117401B2 (en) * 2008-02-01 2012-02-14 International Business Machines Corporation Interconnect operation indicating acceptability of partial data delivery
US8024527B2 (en) * 2008-02-01 2011-09-20 International Business Machines Corporation Partial cache line accesses based on memory access patterns
US8108619B2 (en) * 2008-02-01 2012-01-31 International Business Machines Corporation Cache management for partial cache line operations
US8255635B2 (en) * 2008-02-01 2012-08-28 International Business Machines Corporation Claiming coherency ownership of a partial cache line of data
US8140771B2 (en) * 2008-02-01 2012-03-20 International Business Machines Corporation Partial cache line storage-modifying operation based upon a hint
US8266381B2 (en) * 2008-02-01 2012-09-11 International Business Machines Corporation Varying an amount of data retrieved from memory based upon an instruction hint
US20090198910A1 (en) * 2008-02-01 2009-08-06 Arimilli Ravi K Data processing system, processor and method that support a touch of a partial cache line of data
US8117390B2 (en) * 2009-04-15 2012-02-14 International Business Machines Corporation Updating partial cache lines in a data processing system
US8140759B2 (en) * 2009-04-16 2012-03-20 International Business Machines Corporation Specifying an access hint for prefetching partial cache block data in a cache hierarchy
US8886870B2 (en) * 2010-05-25 2014-11-11 Marvell World Trade Ltd. Memory access table saving and restoring system and methods
US8806158B2 (en) 2010-09-22 2014-08-12 International Business Machines Corporation Intelligent computer memory management
US9342461B2 (en) * 2012-11-28 2016-05-17 Qualcomm Incorporated Cache memory system and method using dynamically allocated dirty mask space
US9086974B2 (en) 2013-09-26 2015-07-21 International Business Machines Corporation Centralized management of high-contention cache lines in multi-processor computing environments
US9298623B2 (en) * 2013-09-26 2016-03-29 Globalfoundries Inc. Identifying high-conflict cache lines in transactional memory computing environments
US9329890B2 (en) * 2013-09-26 2016-05-03 Globalfoundries Inc. Managing high-coherence-miss cache lines in multi-processor computing environments
US9298626B2 (en) * 2013-09-26 2016-03-29 Globalfoundries Inc. Managing high-conflict cache lines in transactional memory computing environments
US9292444B2 (en) * 2013-09-26 2016-03-22 International Business Machines Corporation Multi-granular cache management in multi-processor computing environments
US9298620B2 (en) * 2013-11-25 2016-03-29 Apple Inc. Selective victimization in a multi-level cache hierarchy
US9740614B2 (en) 2014-06-27 2017-08-22 International Business Machines Corporation Processor directly storing address range of co-processor memory accesses in a transactional memory where co-processor supplements functions of the processor
US9477481B2 (en) 2014-06-27 2016-10-25 International Business Machines Corporation Accurate tracking of transactional read and write sets with speculation
US9720837B2 (en) 2014-06-27 2017-08-01 International Business Machines Corporation Allowing non-cacheable loads within a transaction
US10013351B2 (en) 2014-06-27 2018-07-03 International Business Machines Corporation Transactional execution processor having a co-processor accelerator, both sharing a higher level cache
US10025715B2 (en) 2014-06-27 2018-07-17 International Business Machines Corporation Conditional inclusion of data in a transactional memory read set
US9658961B2 (en) 2014-06-27 2017-05-23 International Business Machines Corporation Speculation control for improving transaction success rate, and instruction therefor
US10114752B2 (en) 2014-06-27 2018-10-30 International Business Machines Corporation Detecting cache conflicts by utilizing logical address comparisons in a transactional memory
US10073784B2 (en) 2014-06-27 2018-09-11 International Business Machines Corporation Memory performance when speculation control is enabled, and instruction therefor
US9703718B2 (en) 2014-06-27 2017-07-11 International Business Machines Corporation Managing read tags in a transactional memory
US9772944B2 (en) 2014-06-27 2017-09-26 International Business Machines Corporation Transactional execution in a multi-processor environment that monitors memory conflicts in a shared cache
JP2017010396A (ja) * 2015-06-24 2017-01-12 富士通株式会社 ストレージ装置、キャッシュ書込制御方法及びキャッシュ書込制御プログラム
US10048868B2 (en) * 2016-09-29 2018-08-14 Intel Corporation Replacement of a block with a compressed block to increase capacity of a memory-side cache

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US4914573A (en) * 1987-10-05 1990-04-03 Motorola, Inc. Bus master which selectively attempts to fill complete entries in a cache line
US5029070A (en) * 1988-08-25 1991-07-02 Edge Computer Corporation Coherent cache structures and methods
US5155824A (en) * 1989-05-15 1992-10-13 Motorola, Inc. System for transferring selected data words between main memory and cache with multiple data words and multiple dirty bits for each address
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 三菱電機株式会社 マイクロプロセッサ
US5586297A (en) * 1994-03-24 1996-12-17 Hewlett-Packard Company Partial cache line write transactions in a computing system with a write back cache

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005050454A1 (ja) * 2003-11-18 2005-06-02 Matsushita Electric Industrial Co., Ltd. キャッシュメモリおよびその制御方法
US7555610B2 (en) 2003-11-18 2009-06-30 Panasonic Corporation Cache memory and control method thereof
US8364893B2 (en) 2007-08-28 2013-01-29 Fujitsu Limited RAID apparatus, controller of RAID apparatus and write-back control method of the RAID apparatus
US9880939B2 (en) 2015-09-04 2018-01-30 Toshiba Memory Corporation Memory system and information processing system

Also Published As

Publication number Publication date
US5802572A (en) 1998-09-01

Similar Documents

Publication Publication Date Title
JPH09259036A (ja) ライトバックキャッシュおよびライトバックキャッシュ内で整合性を維持する方法
US6021468A (en) Cache coherency protocol with efficient write-through aliasing
US6629205B2 (en) System and method for increasing the snoop bandwidth to cache tags in a cache memory subsystem
US7032074B2 (en) Method and mechanism to use a cache to translate from a virtual bus to a physical bus
EP0945805B1 (en) A cache coherency mechanism
US4959777A (en) Write-shared cache circuit for multiprocessor system
EP0461926B1 (en) Multilevel inclusion in multilevel cache hierarchies
US5325504A (en) Method and apparatus for incorporating cache line replacement and cache write policy information into tag directories in a cache system
US5895495A (en) Demand-based larx-reserve protocol for SMP system buses
US6343347B1 (en) Multiprocessor system bus with cache state and LRU snoop responses for read/castout (RCO) address transaction
USRE45078E1 (en) Highly efficient design of storage array utilizing multiple pointers to indicate valid and invalid lines for use in first and second cache spaces and memory subsystems
US5787478A (en) Method and system for implementing a cache coherency mechanism for utilization within a non-inclusive cache memory hierarchy
US6275909B1 (en) Multiprocessor system bus with system controller explicitly updating snooper cache state information
US6353875B1 (en) Upgrading of snooper cache state mechanism for system bus with read/castout (RCO) address transactions
JP3264319B2 (ja) バスブリッジ
US6343344B1 (en) System bus directory snooping mechanism for read/castout (RCO) address transaction
US20070136535A1 (en) System and Method for Reducing Unnecessary Cache Operations
US6502171B1 (en) Multiprocessor system bus with combined snoop responses explicitly informing snoopers to scarf data
JP2006277762A (ja) 分散共有メモリマルチプロセッサシステムのための分割疎ディレクトリ
US8621152B1 (en) Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access
US7117312B1 (en) Mechanism and method employing a plurality of hash functions for cache snoop filtering
US7325102B1 (en) Mechanism and method for cache snoop filtering
US20040148471A1 (en) Multiprocessing computer system employing capacity prefetching
KR100322223B1 (ko) 대기행렬및스누프테이블을갖는메모리제어기
US6279086B1 (en) Multiprocessor system bus with combined snoop responses implicitly updating snooper LRU position