JP2007207224A - データ・ラインをキャッシュに書き込む方法 - Google Patents

データ・ラインをキャッシュに書き込む方法 Download PDF

Info

Publication number
JP2007207224A
JP2007207224A JP2006350532A JP2006350532A JP2007207224A JP 2007207224 A JP2007207224 A JP 2007207224A JP 2006350532 A JP2006350532 A JP 2006350532A JP 2006350532 A JP2006350532 A JP 2006350532A JP 2007207224 A JP2007207224 A JP 2007207224A
Authority
JP
Japan
Prior art keywords
cache
processor
data line
data
line
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
JP2006350532A
Other languages
English (en)
Inventor
Kathryn M Jackson
キャスリン・エム・ジャクソン
Keith N Langston
キース・エヌ・ラングストン
S Hutton David
デビッド・エス・ハットン
Pak-Kin Mak
パクキン・マク
Arthur J O'neill Jr
アーサー・ジェイ・オニール・ジュニア
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 JP2007207224A publication Critical patent/JP2007207224A/ja
Pending legal-status Critical Current

Links

Images

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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/507Control mechanisms for virtual memory, cache or TLB using speculative control

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

【課題】ローカル変更ビットを使用してデータ・ラインのインストール状態を指示する方法を提供すること。
【解決手段】マルチプロセッサ・システムは複数の個別のプロセッサを備え、各プロセッサは関連するL1キャッシュを備える。また、マルチプロセッサ・システムは、少なくとも1つの共有主メモリと、少なくとも1つの共有L2キャッシュを備える。本明細書に記載の方法は、データ・ラインをL2キャッシュに書き込む方法に関し、ローカル変更ビットを使用してデータ・ラインのインストール状態を指示するステップを含む。
【選択図】図2

Description

本発明は、遅い主メモリに格納されたデータの一部が、1つまたは複数の要求元プロセッサと主メモリの間に存在する、より高速なメモリに転送されるメモリ・キャッシングに関し、詳細には、ローカルな変更ビットが、主メモリからキャッシュに選択されたデータを指示するメモリ・キャッシングに関する。
マルチプロセッサ・システムにおいてデータが最初に参照されるとき、例えば、要求元プロセッサによる「格納(store)」なのか、あるいは単なる「読出し(read)」なのかによって、そのデータが最終的に変更されるかどうかを予測することは困難である。データがキャッシュに「読出し」状態でインストールされ、プロセッサがそのラインを「格納」しない場合は、キャッシュ・コヒーレンシを保証するために余分の遅延が必要になる。すなわち、そのラインの他のすべてのコピーを他のキャッシュから削除しなければならない。
一方、ラインは、例えば「格納」によって変更され、そのラインが「排他」でプロセッサにインストールされると想定される場合もある。しかし、この場合もやはり、そのラインの他のすべてのコピーは、他のキャッシュから削除されることになる。次に、データが両方のプロセッサによって「読出し」専用である場合、すなわち、共有データの場合は、そのラインでキャッシュ間の「綱引き(tug of war)」が生じることになり、結果として性能が低下する。
したがって、各ラインがどのように使用されるか、すなわち読出し専用かあるいは変更されるかに関して、各ラインがどのように使用されるかを指示するようにソフトウェア・スタック内のすべてのソフトウェアを修正する必要なしに、ソフトウェアにハードウェアを指示させるという効果を得ることが明らかに必要とされている。
このソフトウェアの修正は、ローカルな変更ビットを使用してデータ・ラインのインストール状態を指示する、履歴ベースのインストールによって不要になる。詳細には、システム実装では、メモリからデータ・ラインが最初に第1のプロセッサによって参照されるときに、そのラインをすべてのキャッシュに「排他」で実装して最終的な格納に備える。この時点で、このラインは他のどのプロセッサとも共有されていない。したがって、これは最も効率のよい状態である。
しかし、上記最終的な格納の前、すなわち上記データ・ラインが第1のプロセッサのキャッシュ内において変更されていない状態において、第2のプロセッサがそのラインを要求すると、そのラインは両方のプロセッサに対して「読出し専用」となる。このことは、第1のプロセッサ、すなわち要求元プロセッサによってそのラインが今もまだ使用されているか否か、あるいは第1のプロセッサがそのラインを終了し、現在第2のプロセッサだけがそのデータ・ラインの唯一のユーザであるかどうかには関係しない。
本明細書に記載の方法によれば、対応するキャッシュに対し、当該キャッシュに格納されたデータ・ラインについてのローカルな変更状態情報を維持するローカル変更ビットに基づいて、すなわちデータ・ラインの履歴を使用して、そのデータ・ラインを新しいキャッシュにインストールするための状態が決定される。ラインが第1のプロセッサのキャッシュ内に存在する間に変更された場合は、モデリングは、そのラインが新しいプロセッサによって変更される可能性が高いことを示唆する。しかし、ラインが第1のプロセッサのキャッシュ内に存在する間に変更されなかった場合は、モデリングは、そのラインが同様に新しいプロセッサによって変更されない可能性が高いことを示唆する。
このことは、追加のソフトウェア命令なしで、全体のソフトウェア・スタックに適用される。
各図は、本発明の様々な実施形態および実施例を示すものである。
本明細書で説明するのは、複数の個別のプロセッサを有するマルチプロセッサ・システムである。各プロセッサは関連するL1キャッシュを有し、マルチプロセッサ・システムは、少なくとも1つの共有主メモリ、および少なくとも1つの共有L2キャッシュを有する。本明細書に記載の方法は、データ・ラインをL2キャッシュに書き込む方法に関し、ローカルな変更ビットを使用してデータ・ラインのインストール状態を指示するステップを含む。
ローカル変更ビットは、いずれかのキャッシュに格納された各ラインに関連するビットであり、ある特定のキャッシュに格納されたある特定のラインについてのローカルな変更状態情報を維持する。詳細には、ローカル変更ビットは、ある特定のキャッシュに格納されたある特定のラインが、その特定のキャッシュに存在する間に、マルチプロセッサ・システムのいずれかのプロセッサによって変更されたか否かを示すものである。
図1は、プロセッサ111およびL1キャッシュ113、L2キャッシュ121、ならびに主メモリ131を含むプロセッサ・システム101を示す。システム上で動作するアプリケーションは、主メモリではなくキャッシュからデータをフェッチすることによってこの機能拡張を利用する。キャッシュへの短いアクセス時間のおかげで、アプリケーションの性能は向上する。もちろん、メモリとキャッシュの間のトラフィックは依然として存在するが、それは最小限のものである。
システム101は、プロセッサ111によって必要とされるデータを、最初に主メモリ131からL2キャッシュ121にコピーし、次いでL2キャッシュ121からL1キャッシュ113にコピーし、さらにプロセッサ111のレジスタ(図示せず)にコピーする。結果の格納は、その逆向きになる。システムは、最初にデータをプロセッサ111からL1キャッシュ113にコピーし、さらにL2キャッシュ121にコピーする。キャッシュ・アーキテクチャの詳細に応じて、次にデータは直ちにメモリ131にコピーされるか(ライトスルー)、または後ほどコピーされる(ライトバック)。アプリケーションが同じデータを再度必要とする場合で、データがまだL1キャッシュ113およびL2キャッシュ121に存在しているか、またはL2キャッシュ121だけに存在している場合は、データ・アクセス時間は大幅に短縮される。メモリ転送のコストをさらに削減するために、複数の要素がキャッシュにロードされる。転送の単位はキャッシュ・ブロックまたはキャッシュ・ラインと呼ばれる。単一のデータ要素へのアクセスにより、全体のラインがキャッシュに取り込まれる。ラインには、要求された要素が含まれることが保証される。
待ち時間と帯域幅は、キャッシュとメモリに関係する2つの尺度である。そのどちらもが一定ではなく、メモリ階層の個々のコンポーネントに特有のものである。待ち時間は、プロセッサ・サイクルまたはナノ秒の単位で表されることが多い。一方、帯域幅は、通常はメガバイト/秒またはギガバイト/秒の単位で表される。
実際には、メモリ・コンポーネントの待ち時間は、転送単位(一般にはキャッシュ・ライン)の最初の部分をフェッチするために要する時間として測定される。コンポーネントのスピードは階層中の相対的な位置に応じて決まるので、待ち時間は一定にはならない。経験則として、L1キャッシュ113からL2キャッシュ121、さらに主メモリ131へと移るにつれて、待ち時間は増加すると言っても差し支えない。
メモリ・コンポーネントの一部、例えばL1キャッシュ113は、物理的にプロセッサ111上に配置することができる。その利点は、それらの速度がプロセッサ・クロックに比例することである。したがって、このようなコンポーネントの待ち時間を、ナノ秒ではなく、プロセッサ・クロック・サイクルの単位で表すことは意味のあることである。
マイクロプロセッサによっては、L1キャッシュ113として組み込まれた(オンチップの)キャッシュは、必ずしもプロセッサの速度で動作するとは限らない。それらは、プロセッサ・クロックの整数商(1/2、1/3、など)のクロック・レートで動作する。
プロセッサの外部にあるキャッシュ・コンポーネントは通常、まったくまたは部分的にしかプロセッサ・クロック向上の恩恵を受けない。それらのコンポーネントの待ち時間は、通常はナノ秒で示される。主メモリの待ち時間は、ほとんど常にナノ秒で表される。
帯域幅は、メモリ・コンポーネントの漸近速度(asymptotic speed)の尺度である。この数値は、大量のデータをどの程度速く入出力できるかを反映する。待ち時間と同様に、帯域幅も一定ではない。一般に、帯域幅はプロセッサ111から1つ離れるごとに減少する。
データ・フェッチのステップ数が削減できる場合は、待ち時間が短縮されることになる。
図2は、L1キャッシュ213a、213bを備えたプロセッサ211a、211b、共有L2キャッシュ221、および主メモリ231を備えたシステム201を示す。データ・ライン241および制御ライン251は、それらの通常の機能を実施する。図2に関して、排他ラインがL1キャッシュ213aまたは213bから失効した(age out)とき、L1キャッシュ213aまたは213bはL2キャッシュ221に信号を送り、そのラインが既にL1キャッシュ213aまたは213bに存在しないことを指示する。その結果、L2キャッシュ221が更新されて、そのラインが「非所有(disown)」されたことが示される。すなわち、所有権は、特定のプロセッサから「非所有(unowned)」に変更される。
図2を参照すると、この方法は相互問合せ処理(cross interrogateprocessing)を削減、または場合によっては削除することによって性能を向上する。相互問合せ処理を削除することにより、L1の置換またはL1の失効置換のためにL1キャッシュ213aまたは213bに既に存在しないラインに関する、L1キャッシュ213aまたは213bへの相互問合せを送信することが回避される。その結果、他のプロセッサがそのラインを要求したときの待ち時間が短縮されるとともに、他のL1キャッシュでの無駄なディレクトリ検索が回避される。
さらに、相互問合せ処理を削除することにより、L2キャッシュ221で置換されるラインに対する、L1キャッシュ213aまたは213bへの相互無効化(cross invalidate)の送信も回避される。通常は、あるラインがL2キャッシュ221から失効するとき、そのラインはL1キャッシュ213aまたは213bにおいても無効化しなければならない。このことにより、L1キャッシュ213aまたは213bとL2キャッシュ221との間のサブセット・ルールが維持される。この2つの無効化により、L1キャッシュ213aまたは213bでの通常の処理が混乱することになる。ラインが既にL1キャッシュ213aまたは213bに存在しない場合は、この混乱は不要のものであり性能にマイナスの影響を及ぼす。
本明細書に記載の方法によれば、データ・ラインの履歴を使用して、そのラインを新しいキャッシュにインストールするための状態を決定する。すなわち、ローカル変更ビットを使用して、データ・ラインのインストール状態を指示する。第1のプロセッサのキャッシュに存在している間にラインが変更された場合は、モデリングは、そのラインが新しいプロセッサによって変更される可能性が高いことを示唆する。しかし、ラインが第1のプロセッサのキャッシュに存在する間に変更されなかった場合は、モデリングは、そのラインが同様に新しいプロセッサによって変更されない可能性が高いことを示唆する。
このことは、追加のソフトウェア命令なしで全体のソフトウェア・スタックに適用される。
最初に、すべての格納により、キャッシュ・ディレクトリ・エントリにおいて「値1のローカル変更(locally changed)」ビットがセットされる。すなわち、あるキャッシュ内においてデータ・ラインが変更されると、対応するローカル変更ビットはイネーブルにセットされる。これは、すべてのキャッシュ・データ・ラインに対して存在するグローバル変更ビットに追加される。グローバル変更ビットは、すべての累積された変更でメモリを最終的にリフレッシュする必要があることを示す。
データ・フェッチが、ローカル・プロセッサのデータ・キャッシュはミスするが、他のキャッシュにヒットし、他のキャッシュのローカル変更ビットがイネーブル、いいかえると値1である場合は、そのラインは他のプロセッサ・キャッシュから削除され、その新しいプロセッサに「排他」でインストールされる。さらに、その新しいキャッシュでは、ローカル変更ビットがリセット(オフ)される。このことは、「複数のプロセッサに対する読出し専用」としてインストールされることになる、先行の実施方法とは対照的である。
データ・フェッチが、ローカル・プロセッサのデータ・キャッシュはミスするが、他のキャッシュにヒットし、他のキャッシュのローカル変更ビットが「オフ」、いいかえると値0である場合は、そのラインは、その新しいプロセッサに「読出し専用」でインストールされ、システムにインストールされたこのラインの複数のコピーの存在を指示するように両方のキャッシュ状態がセットされる。ローカル変更ビットは、どちらのキャッシュも「オフ」にセットされる。
このように、ローカル変更ビットを使用して、データ・ラインのインストール状態が指示される。
次に図3乃至図6のフローチャートを参照して、本発明の一実施形態に係る、データ・ラインをキャッシュに書き込む方法を説明する。図3乃至図5は、第1のプロセッサがデータをフェッチする処理の一例を示すフローチャートである。図3のステップ100において、まずデータ・フェッチが第1のL1キャッシュにヒットするか否か判断する。第1のL1キャッシュにヒットする場合(ステップ100:YES)、第1のプロセッサにデータを返す(ステップ105)。
第1のL1キャッシュにヒットしない場合(ステップ100:NO)、データ・フェッチが第1の共有L2キャッシュにヒットするか否か判断する(ステップ110)。第1の共有L2キャッシュにヒットする場合(ステップ110でYESの場合)の処理は図4を参照して後述する。第1の共有L2キャッシュにヒットしない場合(ステップ110:NO)、データ・フェッチが第2の共有L2キャッシュにヒットするか否か判断する(ステップ115)。第2の共有L2キャッシュにヒットする場合(ステップ115でYESの場合)の処理は図5を参照して後述する。
第2の共有L2キャッシュにヒットしない場合(ステップ115:NO)、主メモリからデータをフェッチする(ステップ120)。そして第1のL2キャッシュにデータをインストールする(ステップ125)。また第1のL1キャッシュにデータを「排他的に」インストールする(ステップ130)。次に第1のL1キャッシュのローカル変更ビットを0にセットする(ステップ135)。最後にデータを第1のプロセッサへ返して(ステップ140)、処理は終了する。
次に図4を参照して、ステップ110で第1の共有L2キャッシュにヒットする場合の後の処理を説明する。ステップ145で、第2のL1キャッシュの状態が「排他」であるか否か判断する(ステップ145)。第2のL1キャッシュの状態が「排他」である場合(ステップ145:YES)、更に第2のL1キャッシュのローカル変更ビットが1であるか否か判断する(ステップ150)。
第2のL1キャッシュのローカル変更ビットが1である場合(ステップ150:YES)、第2のL1キャッシュからデータを削除する(ステップ155)。また第2のL1キャッシュのローカル変更ビットを0にセットする(ステップ160)。次に第1のL1キャッシュにデータを「排他的」にインストールする(ステップ165)。また第1のL1キャッシュのローカル変更ビットを0にセットする(ステップ170)。最後に第1のプロセッサにデータを返して(ステップ175)、処理は終了する。
一方、第2のL1キャッシュのローカル変更ビットが1でない場合(ステップ150:NO)、第2のL1キャッシュの状態を「読出し専用」に変更する(ステップ180)。また第1のL1キャッシュにデータを「読出し専用」でインストールする(ステップ185)。そして第1のL1キャッシュのローカル変更ビットを0にセットする(ステップ190)。最後に第1のプロセッサにデータを返して(ステップ195)、処理は終了する。
一方、ステップ145において第2のL1キャッシュの状態が「排他」でない場合(ステップ145:NO)、第1のL1キャッシュにデータを「読出し専用」でインストールする(ステップ200)。そして第1のプロセッサへデータを返して(ステップ205)、処理は終了する。
次に図5を参照して、ステップ115で第2の共有L2キャッシュにヒットする場合の後の処理を説明する。ステップ210で、第2のL1キャッシュの状態が「排他」であるか否か判断する(ステップ210)。第2のL1キャッシュの状態が「排他」である場合(ステップ210:YES)、更に第2のL1キャッシュのローカル変更ビットが1であるか否か判断する(ステップ215)。
第2のL1キャッシュのローカル変更ビットが1である場合(ステップ215:YES)、第2のL1キャッシュからデータを削除する(ステップ220)。また第2のL1キャッシュのローカル変更ビットを0にセットする(ステップ225)。更に、第2のL2キャッシュからデータを削除する(ステップ230)。次に第1のL2キャッシュにデータをインストールする(ステップ235)。また第1のL1キャッシュにデータを「排他的」にインストールする(ステップ240)。そして第1のL1キャッシュのローカル変更ビットを0にセットする(ステップ245)。最後に第1のプロセッサにデータを返して(ステップ250)、処理は終了する。
一方、第2のL1キャッシュのローカル変更ビットが1でない場合(ステップ215:NO)、第2のL1キャッシュの状態を「読出し専用」に変更する(ステップ255)。また第1のL2キャッシュにデータをインストールする(ステップ260)。更に第1のL1キャッシュにデータを「読出し専用」でインストールする(ステップ265)。そして第1のL1キャッシュのローカル変更ビットを0にセットする(ステップ270)。最後に第1のプロセッサにデータを返して(ステップ275)、処理は終了する。
図6は、第1のプロセッサが第1のL1キャッシュ内のデータを変更、言い換えると更新する場合の処理の一例を示すフローチャートである。図6のステップ300において、第1のL1キャッシュ内のデータを更新する(ステップ300)。次に第1のL1キャッシュのローカル変更ビットを1にセットする(ステップ305)。その後処理は終了する。
本発明を、特定の好ましい実施形態および例示に関して説明してきたが、それらによって本発明の範囲を制限することを意図したものではなく、本発明の範囲は、添付の特許請求の範囲によってのみ制限されることが意図される。
プロセッサ、L1キャッシュおよびL2キャッシュ、ならびに主メモリを示す図である。 L1キャッシュを備えた2つのプロセッサ、共有キャッシュL2、および主メモリを示す図である。 第1のプロセッサがデータをフェッチする処理の一例を示すフローチャートである。 第1のプロセッサがデータをフェッチする処理の一例を示すフローチャートである。 第1のプロセッサがデータをフェッチする処理の一例を示すフローチャートである。 第1のプロセッサが第1のL1キャッシュ内のデータを変更する処理の一例を示すフローチャートである。
符号の説明
101 プロセッサ・システム
111 プロセッサ
113 L1キャッシュ
121 L2キャッシュ
131 主メモリ
201 システム
211a プロセッサ
211b プロセッサ
213a L1キャッシュ
213b L1キャッシュ
221 L2キャッシュ
231 主メモリ
241 データ・ライン
251 制御ライン

Claims (7)

  1. 各々が関連するL1キャッシュを備える複数の個別のプロセッサと、少なくとも1つの共有主メモリと、少なくとも1つの共有L2キャッシュとを備えるマルチプロセッサ・システムにおいて、データ・ラインをキャッシュに書き込む方法であって、対応するキャッシュに対し当該キャッシュに格納されたデータ・ラインについてのローカルな変更状態情報を維持するローカル変更ビットに基づいて、前記データ・ラインを新しいキャッシュにインストールするための状態を決定するステップを含む方法。
  2. 最初に第1のプロセッサがデータ・ラインを要求すると、前記共有主メモリから前記データ・ラインを参照するステップと、
    第2のプロセッサが前記データ・ラインを要求したとき、前記ローカル変更ビットが、前記第1のプロセッサの前記L1キャッシュにおいて前記データ・ラインが変更されていないことを示すことを条件として、前記データ・ラインを「読出し専用」として提示させるステップと
    を含む、請求項1に記載の方法。
  3. 前記データ・ラインの変更によるすべての格納により、キャッシュ・ディレクトリ・エントリ内の対応する前記ローカル変更ビットをイネーブルにセットするステップを含む、請求項1に記載の方法。
  4. ローカル・プロセッサのデータ・ラインのフェッチが第1のL1キャッシュにおいてミスするが、対応する前記ローカル変更ビットがイネーブルである他のキャッシュにヒットする場合、前記他のキャッシュから前記データ・ラインを削除し、前記データ・ラインを前記ローカル・プロセッサに「排他」でインストールする、請求項1に記載の方法。
  5. 前記他のキャッシュの対応する前記ローカル変更ビットを「オフ」にリセットするステップを含む、請求項4に記載の方法。
  6. データ・ラインのフェッチがローカル・プロセッサのL1データ・キャッシュをミスするが、対応する前記ローカル変更ビットが「オフ」である他のキャッシュにヒットする場合、前記データ・ラインを前記ローカル・プロセッサに「読出し専用」でインストールし、システム内にインストールされた前記データ・ラインの複数のコピーの存在を示すように前記ローカル・プロセッサのL1データ・キャッシュ及び前記他のキャッシュの両方のキャッシュ状態を「読出し専用」としてセットする、請求項1に記載の方法。
  7. 前記ローカル・プロセッサのL1データ・キャッシュ及び前記他のキャッシュの両方のキャッシュの前記ローカル変更ビットを「オフ」に変更するステップを含む、請求項6に記載の方法。
JP2006350532A 2006-01-30 2006-12-26 データ・ラインをキャッシュに書き込む方法 Pending JP2007207224A (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/342,993 US20070180193A1 (en) 2006-01-30 2006-01-30 History based line install

Publications (1)

Publication Number Publication Date
JP2007207224A true JP2007207224A (ja) 2007-08-16

Family

ID=38323489

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006350532A Pending JP2007207224A (ja) 2006-01-30 2006-12-26 データ・ラインをキャッシュに書き込む方法

Country Status (3)

Country Link
US (1) US20070180193A1 (ja)
JP (1) JP2007207224A (ja)
CN (1) CN101013399A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009054158A (ja) * 2007-08-28 2009-03-12 Internatl Business Mach Corp <Ibm> ディレクトリ・ベースのキャッシュ・システムにおけるメモリ・ディレクトリ更新を少なくするシステムおよび方法ならびに設計構造情報記憶媒体
US8688918B2 (en) 2011-11-09 2014-04-01 Kabushiki Kaisha Toshiba Program converting apparatus, program converting method, and medium

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9075732B2 (en) 2010-06-15 2015-07-07 International Business Machines Corporation Data caching method

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5317716A (en) * 1988-08-16 1994-05-31 International Business Machines Corporation Multiple caches using state information indicating if cache line was previously modified and type of access rights granted to assign access rights to cache line
US5197139A (en) * 1990-04-05 1993-03-23 International Business Machines Corporation Cache management for multi-processor systems utilizing bulk cross-invalidate
US6253316B1 (en) * 1996-11-19 2001-06-26 Advanced Micro Devices, Inc. Three state branch history using one bit in a branch prediction mechanism
US6839739B2 (en) * 1999-02-09 2005-01-04 Hewlett-Packard Development Company, L.P. Computer architecture with caching of history counters for dynamic page placement
US6877089B2 (en) * 2000-12-27 2005-04-05 International Business Machines Corporation Branch prediction apparatus and process for restoring replaced branch history for use in future branch predictions for an executing program
JP3969009B2 (ja) * 2001-03-29 2007-08-29 株式会社日立製作所 ハードウェアプリフェッチシステム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009054158A (ja) * 2007-08-28 2009-03-12 Internatl Business Mach Corp <Ibm> ディレクトリ・ベースのキャッシュ・システムにおけるメモリ・ディレクトリ更新を少なくするシステムおよび方法ならびに設計構造情報記憶媒体
US8688918B2 (en) 2011-11-09 2014-04-01 Kabushiki Kaisha Toshiba Program converting apparatus, program converting method, and medium

Also Published As

Publication number Publication date
US20070180193A1 (en) 2007-08-02
CN101013399A (zh) 2007-08-08

Similar Documents

Publication Publication Date Title
US9513904B2 (en) Computer processor employing cache memory with per-byte valid bits
US8996812B2 (en) Write-back coherency data cache for resolving read/write conflicts
US7366847B2 (en) Distributed cache coherence at scalable requestor filter pipes that accumulate invalidation acknowledgements from other requestor filter pipes using ordering messages from central snoop tag
US11586542B2 (en) Reducing cache transfer overhead in a system
US8180981B2 (en) Cache coherent support for flash in a memory hierarchy
JP5063104B2 (ja) エントリの時間経過によるキャッシュ・エントリの所有権喪失
US7409500B2 (en) Systems and methods for employing speculative fills
US6272602B1 (en) Multiprocessing system employing pending tags to maintain cache coherence
US9892039B2 (en) Non-temporal write combining using cache resources
ZA200205198B (en) A cache line flush instruction and method, apparatus, and system for implementing the same.
US20100293339A1 (en) Data processing system, processor and method for varying a data prefetch size based upon data usage
JP2004326758A (ja) 局所的なキャッシュ・ブロック・フラッシュ命令
CN115176237B (zh) 具有混合回写和透写的数据高速缓存
KR20070084441A (ko) 로컬 메모리 데이터의 가간섭성 캐싱
JP2007207224A (ja) データ・ラインをキャッシュに書き込む方法
US7409503B2 (en) Register file systems and methods for employing speculative fills
US7383409B2 (en) Cache systems and methods for employing speculative fills
Bhat et al. Cache Hierarchy in Modern Processors and Its Impact on Computing
US20230099256A1 (en) Storing an indication of a specific data pattern in spare directory entries
US20050154865A1 (en) Multi-processor systems and methods for backup for non-coherent speculative fills
GB2401227A (en) Cache line flush instruction and method