JPH11506850A - 多重レベルキャッシュシステムにおけるキャッシュ・スヌーピング・オーバヘッドを減少するための方法および装置 - Google Patents

多重レベルキャッシュシステムにおけるキャッシュ・スヌーピング・オーバヘッドを減少するための方法および装置

Info

Publication number
JPH11506850A
JPH11506850A JP9501108A JP50110897A JPH11506850A JP H11506850 A JPH11506850 A JP H11506850A JP 9501108 A JP9501108 A JP 9501108A JP 50110897 A JP50110897 A JP 50110897A JP H11506850 A JPH11506850 A JP H11506850A
Authority
JP
Japan
Prior art keywords
cache
level
address
storage locations
memory
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.)
Ceased
Application number
JP9501108A
Other languages
English (en)
Inventor
クラニッヒ,ウーベ
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JPH11506850A publication Critical patent/JPH11506850A/ja
Ceased 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/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies

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)【要約】 キャッシュ・スヌーピング・オーバヘッドを減少するための多重レベルキャッシュシステムのためのメモリシステムでは、最上位キャッシュレベルはメインメモリに接続され、最下位キャッシュレベルはプロセッサまたは他のメモリアクセス装置に接続される。中間レベルのキャッシュの各々は、そのキャッシュの1つ上位のレベルおよび1つ下位のレベルのキャッシュに接続される。最上位のキャッシュレベルは共有メモリバス上でメモリアクセスを検出し、そのメモリアクセスがそのキャッシュ内に存在するかどうかを判定する。そのキャッシュにおいてヒットが起こった場合、最上位キャッシュレベルは、その最上位レベルキャッシュ内のすべての記憶場所のためのヒットフラグを調べ、メモリアクセスが次の下位キャッシュレベル内の記憶場所をもヒットするかどうかを判定する。次の下位キャッシュレベルにおいてヒットが起こった場合、そのキャッシュもまた、そのキャッシュ内のすべての記憶場所のためのヒットフラグを調べ、メモリアクセスが次の下位キャッシュレベル内の記憶場所をもヒットするかどうかを判定する。このプロセスは、メモリアクセスが特定のキャッシュレベルでヒットを起こさないことがあるか、または最下位キャッシュレベルに達するまで続けられる。

Description

【発明の詳細な説明】 多重レベルキャッシュシステムにおける キャッシュ・スヌーピング・オーバヘッドを減少するための方法および装置 発明の背景 1.発明の分野 この発明は、多重レベルキャッシュシステムにおいて必要な、それぞれのキャ ッシュでキャッシュヒットまたはミスが起こったかどうかを判定するための、キ ャッシュアクセス(またはスヌーピング(詮索))オーバヘッドを減じるための 方法および装置に関する。 2.関連技術の説明 コンピュータシステムの性能を高める1つの方法は、メモリからプロセッサの 必要とする情報をプロセッサに提供するのに必要な時間を減少することである。 このことは、メモリがプロセッサからアドレスを受信した時点からプロセッサへ 必要な情報を送信するまでの間の経過時間を減少することによってなされる。こ の経過時間はメモリの「速度」によって定められる。現在では、メモリのコスト はその速度が速ければ速いほど飛躍的に増加する。大量のメモリを必要とするシ ステムでは、入手可能な最も速いメモリを用いると、多くの場合コストが非常に 高くなる。システムメモリへのアクセスもまた、システムのデータバスおよびア ドレスバス上で生じる遅延によって遅くなる。このような遅延はバスの帯域幅が 制限されていることとシステムのリソースをめぐる競争とのために生じる。 「キャッシュ」メモリと呼ばれる比較的高速のメモリのバンクを用いて、シス テム(またはメイン)メモリなどの、より速度の遅いメモリのより大きなバンク のためのバッファとして動作させることで、情報要求から情報供給までの平均速 度を改善することができる。特定的には、キャッシュメモリを有する処理システ ムでは、プロセッサは最初にキャッシュから必要な情報を要求する。その情報が キャッシュメモリに記憶されていると、キャッシュヒット(ヒット)が起こった ことになり、要求された情報はキャッシュメモリからプロセッサへ、より速い速 度で提供される。要求された情報がキャッシュメモリに記憶されていないと、キ ャッシュミス(ミス)が起こったことになり、要求された情報はシステムのメモ リからより遅い転送速度で引出される。キャッシュ内に情報が存在するか否かを 判定する1つの方法は、キャッシュ内に記憶されたアドレスのリストをTAGア レイ内に保持し、プロセッサの要求するアドレスとTAGアレイ内のアドレスと を比較することである。 多重レベルキャッシュシステムは、プロセッサからメインメモリへのアクセス 経路に2つ以上のキャッシュレベルを含む。プロセッサはレベル1キャッシュに 接続され、レベル1キャッシュはレベル2キャッシュに接続され、レベル2キャ ッシュ自体はレベル3キャッシュに接続され、以下同様である。複数のキャッシ ュレベルを用いる複数のプロセッサは、共有されるメモリバスを介して共有メイ ンメモリにアクセスできる。このバスは通常、各プロセッサに割当てられた最上 位レベルでキャッシュ同士を接続する。そのプロセッサのキャッシュを含んだ各 プロセッサは、そのプロセッサのアクセス経路にあるキャッシュのいずれの中に もないデータを必要とするまでは、同じメインメモリを共有する他のプロセッサ とは個別に動作することができる。 通常、多重レベルキャッシュシステムの各キャッシュは、「内包」する。つま り、レベルn+1のキャッシュは、対応するプロセッサによってアクセスされる レベルnキャッシュに含まれるアドレスおよびデータのすべてを含んでいるとい う意味である。複数のレベルのキャッシュメモリを有するシステムでは、最下位 レベルのキャッシュがキャッシュミスを起こすと、次のレベルのキャッシュがそ の中に記憶している情報からプロセッサの情報要求に応えようと(service)試み る。次の上位レベルのキャッシュでもまたミスが起こると、次に、順番に次の上 位レベルのキャッシュがその要求に応えようと試みる。この手順はヒットが起き るまでか、または最上位レベルのキャッシュがミスを起こすまで続くことになる 。最上位レベルのキャッシュでミスが起こった場合、プロセッサの情報要求はメ インメモリから提供される。 キャッシュ間での情報の一貫性を維持するために、共有メモリバス上のアクセ スを、システムメモリへの外部からのアクセスを行なうプロセッサまたは他の装 置(マスタープロセッサまたはバスマスタ)に接続されていないキャッシュのす べてによって監視しなければならない。このような監視はスヌーピングプロセス によって行なわれ、スヌーピングプロセスでは、これらのキャッシュの各々が外 部からのアクセスを観察し、外部からのアクセスに対応するアドレスがそのキャ ッシュに内在するアドレスであるかどうかを、たとえばTAGアレイを検査する ことによって判定する。もしそうであれば、キャッシュヒットが起こり、対応す るキャッシュにおいて必要な措置が講じられる。この措置はアドレス位置を無効 にしたり、またはメインメモリから読出しを行ない、キャッシュ内のそのアドレ ス位置のための更新されたデータを得ることも含む。 2レベルのキャッシュシステムでは、レベル2キャッシュが外部からのアクセ スを共有メモリバスにわたってスヌーピングする。アクセスがレベル2キャッシ ュをヒットしない場合、レベル1のアドレスのすべてがレベル2キャッシュに含 まれていることから、レベル1キャッシュミスもまた起こったことになる。ミス が起こったのはレベル2キャッシュにおいてであるため、レベル1またはレベル 2キャッシュのいずれにおいても措置を講じる必要はない。 スヌーピングの結果、レベル2キャッシュヒットを生じた場合、レベル2キャ ッシュコントローラは、対応するレベル1キャッシュへスヌーピングについての 問合せを発して、レベル1キャッシュがそのアドレスを含むかどうかを判定する 。レベル1キャッシュでのスヌープがミスに終わった場合、レベル1キャッシュ においてはさらなる措置が取られることはなく、レベル2キャッシュのみが必要 な措置を講じる。レベル1キャッシュのスヌープの結果がヒットであった場合、 レベル1キャッシュは、そのアドレスに関して、そのアドレス位置を無効にする 等、必要な措置を講じることができる。この場合、プロセッサが後から、たとえ ばメモリ読出においてレベル1キャッシュのそのアドレスにアクセスしても、プ ロセッサはデータが無効であることに気づき、データを上位レベルのキャッシュ またはメインメモリから引出すことになる。 多重レベルキャッシュ・スヌーピング・プロトコルは、デイビッド・A.パタ ーソン(David A.Patterson)およびジョン・L.ヘネシー(John L.Hennessy )によるComputer Architecture : A Quantitative Approach(1990),chapter 8 .8に開示される。たとえば、471頁では、パターソンおよびヘネシーは、複数 のプロセッサを用いた多重レベルキャッシュシステムにおいてキャッシュがどの ように更新されるかを開示する。キャッシュ更新の状況としては、以下の4 つの可能性がある。1)読出ミスであり、プロセッサはメモリから読出しを要求 するが、要求されたアドレスがどのキャッシュにも存在しない場合である。2) 読出ヒットであって、プロセッサはメモリから読出しを要求して、その要求され たアドレスがそのプロセッサに割当てられたキャッシュに存在する場合である。 3)書込ミスであって、プロセッサはメモリに書込むが、書込むべきアドレスが どのキャッシュにも存在しない場合である。4)書込ヒットであって、プロセッ サはメモリへ書込み、書込むべきアドレスがそのプロセッサに割当てられたキャ ッシュの中に存在する場合である。読出ヒットのためにキャッシュの状態が変わ ることはない。読出ミスが起こった場合、キャッシュ内のそのアドレス位置に対 応するデータは、そのデータがプロセッサによって更新されていた場合はメイン メモリへ書き戻される。読出ミスがあると他のキャッシュは各々スヌーピングし 、そのアドレスがそのキャッシュ内にあるかどうかを調べる。あるキャッシュが そのアドレスを有し、かつ読出/書込状態にある場合、そのアドレスに対応する データはメモリに書込まれ、そのアドレスは無効の状態に変えられる。読出しを 要求して読出ミスを発生したプロセッサはメインメモリから現在のデータを引出 す。そのプロセッサのキャッシュ内に更新されたデータが入れられる。 プロセッサがあるアドレス位置に書込みをして書込ヒットが起こった場合、無 効化信号がバスにわたって外へ出される。他のキャッシュの各々はバスを監視し 、自分がそのアドレスを有しているかどうかを調べる。そのアドレスを有してい た場合、そのキャッシュはそのアドレスを無効化する。書込ミスの場合では、そ のアドレスを備えたキャッシュの各々は無効な状態となる。 多重レベルキャッシュシステム内のレベル1キャッシュの各スヌープは、レベ ル1キャッシュのTAGアレイにアクセスすることが必要である。TAGアレイ のポートが1つである場合、各スヌープはプロセッサのレベル1キャッシュへの アクセスを停止させるので、その結果性能が低下することになる。この問題は多 重レベルキャッシュシステムにおけるレベルの数が増加するにつれ一層ひどくな る。 発明の概要 関連技術の限界を考慮した上で、この発明の目的はキャッシュスヌーピングオ ーバヘッドを減少する、改善された多重レベルキャッシュシステムのための方法 および装置を提供することである。 この発明の別の目的は、下位レベルのキャッシュの不必要なスヌーピングをな くすことである。 この発明の一局面によれば、メモリシステムはプロセッサまたは他のメモリア クセス装置、およびプロセッサのメモリ要求に応えるためにプロセッサに接続さ れたレベル1キャッシュを有する。レベル2キャッシュもまた存在し、これはレ ベル1キャッシュおよびメインメモリに接続される。レベル2キャッシュは、プ ロセッサからのメモリ要求でレベル1キャッシュが応えることのできないものに 応える。レベル2キャッシュは、レベル2キャッシュ内の各記憶場所のためのレ ベル1ヒットアレイを含む。このレベル1ヒットアレイは、レベル2キャッシュ 内の特定の記憶場所に存在する情報が、同じプロセッサに割当てられたレベル1 キャッシュの中にも存在するかどうかを示す。 この発明の別の局面によれば、メモリシステムはプロセッサおよびそのプロセ ッサに割当てられた多重レベルのキャッシュを有し、キャッシュレベルの数は3 以上である。レベル1キャッシュはプロセッサに動作的に接続され、レベル2キ ャッシュはレベル1キャッシュに動作的に接続され、上位レベルのキャッシュは 次の下位レベルのキャッシュに動作的に接続されている。レベルnと呼ばれる最 上位レベルのキャッシュはレベルn−1キャッシュおよびメインメモリに接続さ れる。レベル1より大きいキャッシュレベルの各々は、そのキャッシュ内に各記 憶場所のためのヒットアレイを含む。このヒットアレイは、現レベルのキャッシ ュの特定の記憶場所にある情報が、同じプロセッサに割当てられた一連のキャッ シュにおいて現レベルのキャッシュの1つ下位のレベルのキャッシュにも存在す るかどうかを示す。 この発明の別の局面によれば、スヌーピングオーバヘッドを減少するための多 重レベルキャッシュシステムは、共有メモリバスに接続される最上位レベルのキ ャッシュを含む。この最上位レベルキャッシュは共有メモリバスを監視して外部 からのメモリアクセスを調べる手段を含む。 この発明によれば、キャッシュヒットが起こると、キャッシュは、たとえばキ ャッシュ内のそのアドレス位置に対して無効化フラグを設ける等の適切な措置を 講じる。そのアドレスに対するヒットフラグを調べ、共有メモリバス上のそのア ドレスが現キャッシュのレベルの1つ下位のレベルのキャッシュにも存在するか どうかを判定する。存在する場合には、最上位レベルのキャッシュは通知手段に よって1つ下位のレベルのキャッシュに通知し、そのレベルのキャッシュにおい てもそのアドレスについて適切な措置を講じるようにする。 最下位レベルのキャッシュを除いて各キャッシュレベルはヒットフラグ更新ア レイを有し、ヒットフラグ更新アレイは1つ下位のレベルのキャッシュに現存す るメモリアドレスの動きを追跡するように用いられる。メモリヒットがあるキャ ッシュにおいて起こり、かつ次の下位レベルのキャッシュにそのアドレスが存在 しないことをヒットフラグが示した場合、下位レベルのキャッシュでは何の措置 も講じる必要はない。その結果、上位レベルのキャッシュによる下位レベルのキ ャッシュのスヌープは行なわれない。このことで多重レベルキャッシュシステム におけるスヌーピングオーバヘッドは減少する。 図面の簡単な説明 この発明は、さらなる目的およびその利点と共に、添付の図面に関連して以下 の説明を参照することによって最もよく理解されるであろう。添付の図面のいく つかの図においては、類似する参照番号は類似の要素を示す。 図1は、この発明の好ましい実施例によるマルチプロセッサ環境における2レ ベルのキャッシュシステムをブロック図で示す。 図2は、この発明の好ましい実施例によるレベル1およびレベル2キャッシュ の構成要素をブロック図で示す。 図3は、キャッシュ・スヌーピング・オーバヘッドを減少するのに用いられる 方法のフローチャートの図である。 図4は、ヒットフラグアレイを更新するのに用いられる方法のフローチャート の図である。 図5は、この発明による置換えアドレスサイクルに用いられる信号およびタイ ミングを示す。 好ましい実施例の詳細な説明 この発明は、2レベルのキャッシュシステムについてここに開示されるが、こ れは例示のためであり制限するものではなく、当業者には知られるように、この 発明は複数のレベルのキャッシュを含む多重レベルキャッシュシステムにも等し く適用可能である。図1は、プロセッサまたは他のメモリアクセス装置10、レ ベル1キャッシュ20、レベル2キャッシュ30、共有メモリバス40、および メインメモリ50を含む2レベルのキャッシュメモリシステムを示す。複数のプ ロセッサまたは他のメモリアクセス装置11、12が、それら自体の2レベルキ ャッシュシステム21、31、22、32を介してメインメモリ50に接続され てもよい。そのようなプロセッサおよびキャッシュは数がいくつであっても図1 に示されるように構成することができる。 たとえばプロセッサ10がメインメモリ50の中のあるアドレスから情報を要 求すると、対応するレベル1キャッシュ20はまず、そのアドレスがその中に記 憶されているかどうかを調べる。これは図2に示されるようにキャッシュコント ローラ211の制御の下で、要求されたアドレスとTAGアレイ213の中にリ ストされているアドレスとを比較することによって実行される。TAGアレイ2 13とは、レベル1キャッシュ20に記憶されたアドレスのリストを含む記憶さ れたアレイである。図1を再び参照すると、レベル1キャッシュ20がその記憶 場所のいずれにも要求されたアドレスを有さない場合、レベル2キャッシュ30 が次にプロセッサのアドレス要求に応えようと試みる。レベル2キャッシュ30 がその記憶場所のいずれにもそのアドレスを有さない場合は、プロセッサのアド レス要求は、メインメモリ50からの要求されたアドレスにアクセスすることに よって満たされる。 図2は、レベル1キャッシュ20およびレベル2キャッシュ30の構成要素を 示す。レベル1キャッシュ20はキャッシュコントローラ211と、レベル1キ ャッシュ20にデータを記憶するためのキャッシュデータメモリ215と、メイ ンまたはシステムメモリ50のどのアドレスがレベル1キャッシュ20に記憶さ れているのかを示すためのTAGステータスアレイ213と、レベル1キャッシ ュ20に記憶されているどのデータが有効なものであるのかを示すステータスア レイ217とを含む。レベル2キャッシュ30は、対応する構成要素を含み、そ れはキャッシュデータメモリ205と、メインまたはシステムメモリ50のどの アドレスがレベル2キャッシュ30に記憶されているのかを示すTAGステータ スアレイ203と、レベル2キャッシュ30に記憶されたどのデータが有効なも のであるのかを示すステータスアレイ209とである。 内包によって、レベル1キャッシュ20に記憶されるアドレスのすべてはレベ ル2キャッシュ30に記憶される。しかしながら、従来のシステムではレベル2 キャッシュ30において、レベル2キャッシュ30に記憶されるライン(つまり メモリアドレスおよび対応するデータ)がレベル1キャッシュ20にも記憶され ているかどうかを表示するものは何もない。そのため、この発明によれば、レベ ル2キャッシュ30はさらに、ヒットアレイ207を含む。ヒットアレイ207 は、レベル2キャッシュ30内の各ラインに対してフラグを含み、フラグはその ラインがレベル1キャッシュ20にも記憶されているかどうかを示す。2より多 いレベルを備えたキャッシュシステムでは、レベル1より上のキャッシュレベル のすべては、レベル2キャッシュ30と全く同じ構造を有する。いずれの場合に も、キャッシュ内に記憶された各ラインに対するヒットフラグはキャッシュのヒ ットアレイ内に存在し、そのラインに対応するメモリアドレスが、同じプロセッ サに割当てられた次の下位レベルのキャッシュにも存在するかどうかを示す。こ こでさらに説明されるように、この発明によってヒットアレイを組込むことで上 位レベルのキャッシュが下位レベルのキャッシュをスヌーピングする必要は減少 する。 図1を再び参照すると、キャッシュメモリの各階層における最上位レベルのキ ャッシュ30、31、32の各々は、別のプロセッサのキャッシュによって応じ られなかった要求のため生じる外部からのメモリアクセスを共有メモリバス40 にわたって検出する。最上位レベルキャッシュ30、31、32は各々、次に、 外部からのメモリアクセスのアドレスが、そのキャッシュ内に存在するアドレス に対応するかどうかを、そのキャッシュ内のすべての記憶場所について、アクセ スされたメモリアドレスとTAGステータスアレイ203(図2参照)内のアド レスとを比較することによって判定する。一致がない場合、そのキャッシュは何 の措置も講じない。さらに、内包によって最上位レベルのキャッシュは下位レベ ルのキャッシュのすべてのアドレスを含むため、同じプロセッサに割当てられた 下位レベルのキャッシュのいずれも措置を講じる必要がない。 外部からのメモリアクセスのアドレスがTAGステータスアレイにおいてヒッ トを生じた場合、つまり外部からアクセスされたメモリアドレスが最上位レベル のキャッシュのTAGステータスアレイ内のエントリと一致する場合、最上位レ ベルのキャッシュは、たとえば対応するアドレスを無効にするなどの適切な措置 を講じる。さらに、この発明によれば、最上位レベルのキャッシュコントローラ はヒットアレイ内の対応するエントリを調べ、外部からのメモリアクセスに一致 するアドレスがないかどうか探す。そのエントリが、外部からのメモリアクセス に対応するアドレスが最上位レベルのキャッシュのすぐ1つ下位レベルのキャッ シュにも現存することを示した場合、最上位レベルのキャッシュコントローラは 1つ下位レベルのキャッシュに対して、次の下位レベルのキャッシュのそのアド レスに関して適切な措置を講じるように通知する。 このプロセスは外部からメモリアクセスのアドレスが次の下位レベルのキャッ シュに見当たらないことをヒットアレイが示すまで続けられる。この表示が起き ない場合、このプロセスはキャッシュ階層のレベル1キャッシュに達するまで続 けられる。レベル1以外のレベルにおいてヒットアレイを各キャッシュの中に組 込むことで、アクセスされたアドレスが次の下位レベルのキャッシュに存在する かどうかが直ちに表示され、それによって上位レベルのキャッシュが下位レベル のキャッシュのTAGステータスアレイをスヌーピングし、アクセスされたアド レスが下位レベルのキャッシュに存在するかどうかを判定する必要がなくなる。 その結果、多くの場合上位レベルのキャッシュは次の下位レベルのキャッシュ に全くアクセスすることなく必要な動作を実行することができる。たとえば、8 KByteの大きさを有するレベル1キャッシュ(L1キャッシュ)20および 128KByteの大きさを有するレベル2キャッシュ(L2キャッシュ)30 については、L2キャッシュ30内のラインがL1キャッシュ20に含まれてい ない可能性は高い。この発明によるヒットアレイ207がL2キャッシュ30内 のどのラインがL1キャッシュ20内に見いだされるかを示すことによって、L 1キャッシュ20をスヌーピングしてL2キャッシュ30内のより数多くあるラ インの内の1つが、より小さいL1キャッシュ20内にも記憶されているかどう かを判定する必要がなくなる。こうして、下位レベルのキャッシュをスヌーピン グするのに費やす時間を減少することによってスヌーピングオーバヘッドを減少 し、システムの性能を改善する。 この発明による2レベルのキャッシュ階層のための方法のフローチャート図が 図3に示される。ステップ301では、レベル2キャッシュは共有メモリバスを 監視してメモリアクセスがないかどうかを探す。ステップ302にあるように、 外部からのメモリアクセスが起こると、ステップ303にあるようにレベル2キ ャッシュはメモリアクセスのアドレスをレベル2キャッシュに記憶されているタ グアドレスのすべてに照らし合わせて調べる。このことを実行する1つの方法は 、ここで上に説明したように、メモリアクセスのアドレスをTAGステータスア レイのアドレスと比較することである。レベル2キャッシュ内でタグアドレスヒ ットがない場合は、ステップ304に示されるように、そのメモリアクセスに関 してさらなる措置を講じる必要はない。レベル2キャッシュ内でタグアドレスヒ ットが生じた場合は、レベル2キャッシュはステップ305に示されるように、 そのタグアドレスヒットに対応する記憶場所に関連して必要とされる何らかのキ ャッシュ更新動作を行なわなければならない。これらの更新動作は、その記憶場 所に対してステータスフラグを無効にセットすること、またはそのメモリアクセ スヒットに対応する情報の最も新しいものをメインメモリから得るためにメモリ 読出動作を行なうことなどを含む。レベル2キャッシュでヒットが起こった場合 、レベル2キャッシュはまたステップ306に示されるように、ヒットアレイを 調べて、ヒットされた記憶場所に対応するエントリを探す。このタグアドレスが レベル1キャッシュにも存在しないことをヒットアレイが示した場合、レベル1 キャッシュをスヌーピングする必要はなく、ステップ307に示されるようにさ らなる措置は講じられない。そのヒットアレイが、アクセスされたアドレスがレ ベル1キャッシュにも存在することをフラグで示した場合は、レベル2キャッシ ュコントローラはレベル1キャッシュへコマンドを送り、ステップ308に示さ れるように、レベル1キャッシュ内の、メモリアクセスに対応する記憶場所を更 新するようにする。この手順は、上に説明したように2レベルのキャッシュシス テ ムのものであるが、2レベルより大きい多重レベルキャッシュシステムにおいて も同様にうまく動作するであろう。 この発明によるヒットアレイは特定の実現例に制限されるものではない。たと えば、キャッシュ内の各アドレスが対応するフラグを有し、フラグは、ラインが 次の下位レベルのキャッシュにも存在することを示す第1の状態と、対応するラ インが次の下位レベルのキャッシュに存在しないことを示す第2の状態とを有す る別個のアレイが形成されてもよい。代わりに、ヒットアレイは、そのようなフ ラグをTAGステータスアレイ内のエントリの各々に加えることによって簡単に 実現することもできる。 この発明によるシステムが正しく動作するには、上位レベルのキャッシュ、た とえばL2キャッシュ30が、下位レベルのキャッシュ、たとえばL1キャッシ ュ20の動作を監視して、どのラインが実際に下位レベルのキャッシュに存在す るのかを判定しなければならない。新しいラインがL1キャッシュ20に加えら れるのはキャッシュライン充填動作の間のみである。そのようなキャッシュライ ン充填はL2キャッシュコントローラ201(図2参照)によって容易に監視さ れる。なぜなら、そのようなキャッシュライン充填の間、L1キャッシュ20は 大抵キャッシュライン充填を完了するために必要なアドレスを生成し、それによ ってL2キャッシュ30は、これらの必要とされるアドレスを適切なバスから読 取り、これに従ってそのヒットアレイ207を更新することができるからである 。キャッシュライン置換えなどによって、L1キャッシュ20からのラインの削 除を検出するには、L1キャッシュ20は典型的にはラインが置換えられたこと を示さないため、付加的なステップが必要である。この発明によれば、このよう な変化はダミースヌープを用いるか、または置換えアドレスサイクルによって検 出することができる。 下位レベルのL1キャッシュ20からのラインの削除または置換えを検出する のに特別なサイクルが用いられない場合、上位レベルのL2キャッシュヒットア レイ207の有する、ヒットを示すラインの数は実際にL1キャッシュ20に存 在するものより多くなる。L2キャッシュコントローラ201がL1キャッシュ 20内のそのようなアドレスに対して発生するスヌープは結果としてミスにつな がる。なぜなら、そのアドレスは実際にはL1キャッシュ20に存在しないから である。このようなスヌープはダミースヌープと名付けることができる。L2キ ャッシュ30はミスを検出し、L2ヒットアレイ207内の対応するエントリが 、L1キャッシュ20にそのラインが存在しないことを示すように設定する。そ の結果、L1キャッシュ20へのさらなるスヌープは防がれる。 このアプローチでは下位レベルのキャッシュにおける置換え動作を監視する必 要がないため実現するのが容易である。このようなダミースヌープのおかげで、 ミスが起こった後L1キャッシュ20をスヌーピングする必要をなくすことでL 1キャッシュ20へのスヌープの数が減少するが、スヌーピングプロセスにミス が起こることはさらに性能を改善できることを示している。このような性能改善 はこの発明による置換えアドレスサイクルを用いることによって達成される。そ のような置換えアドレスサイクルにおいては、キャッシュライン充填の間、さら にここで説明されるように、下位レベルのキャッシュはどのラインを置換えるこ とにするのかを示し、それによってダミースヌープの発生をなくす。 図4は、レベル2キャッシュがそのヒットアレイを常に最新に保ち、レベル1 キャッシュでのスヌーピングが必要であるかどうかを判定するための方法を示す 。ステップ401では、レベル2キャッシュはレベル1キャッシュを監視してレ ベル1キャッシュライン充填があるかどうかを探す。レベル1のキャッシュライ ン充填は、メインメモリからのアドレスがレベル1キャッシュに読込まれるとき に起こる。レベル2キャッシュはレベル1キャッシュライン充填を検出すると、 ステップ402に示されるようにレベル1キャッシュに読込まれたアドレスに対 応するヒットアレイ内のフラグを更新し、このアドレスもまたレベル1キャッシ ュ内に存在することを示す。内包により、レベル1キャッシュへのすべてのメイ ンメモリ書込はレベル2キャッシュの中にも書込まれる。すなわち、レベル1キ ャッシュ充填は常にレベル2キャッシュのヒットフラグをセットすることにつな がる。 この発明による置換えアドレスサイクルでは、ステップ403に示されるよう に、L1キャッシュはキャッシュライン充填の開始アドレスを発生する。L1キ ャッシュは次に、置換えられるラインのアドレスを外部メモリアドレスバス上に 置き、そのラインを置換えることになるのかどうかを示す。ラインは、データの 初めの語が転送された後に信号(REPL♯)がアサートされると置換えられる ことになる。REPL♯は、図5に示されるように置換えアドレスBがアドレス バス上に置かれるとアサートされる。置換えられるラインがない場合、REPL ♯は全くアサートされない。このようにして、L2キャッシュコントローラは、 L1キャッシュのどのラインが置換えられるかを判定することができ、L2キャ ッシュ内に記憶されているL1ヒットアレイ内の対応するフラグをリセットする 。開始アドレスを用いて、L2キャッシュコントローラは自らキャッシュライン 充填アドレスシーケンスを発生する。 この発明による別の局面では、別の信号R_MODを発生させ、置換えられる ラインが変更されているかどうかを示すこともできる。外部コントローラは、こ の信号を、後にコピーバックアクセスが続くかどうかを検出するのに用いてもよ い。コピーバックにおいては、メインメモリに書込むために特定のラインをキャ ッシュから外部バスへコピーバックするための要求をキャッシュコントローラへ 送信する。図5に示されるように、R_MODはREPL♯がアサートされてい る間有効である。R_MODはREPL♯がアサートされていない場合は無効で ある。 この発明の特徴および利点は前述の説明に示されるが、その開示は例示するこ とのみを目的にしていることを理解されたい。上に説明されるすべての変形は、 この発明の真の意図および範囲内であるかぎり、請求の範囲に含められる。
【手続補正書】特許法第184条の8第1項 【提出日】1997年4月9日 【補正内容】 つの可能性がある。1)読出ミスであり、プロセッサはメモリから読出しを要求 するが、要求されたアドレスがどのキャッシュにも存在しない場合である。2) 読出ヒットであって、プロセッサはメモリから読出しを要求して、その要求され たアドレスがそのプロセッサに割当てられたキャッシュに存在する場合である。 3)書込ミスであって、プロセッサはメモリに書込むが、書込むべきアドレスが どのキャッシュにも存在しない場合である。4)書込ヒットであって、プロセッ サはメモリへ書込み、書込むべきアドレスがそのプロセッサに割当てられたキャ ッシュの中に存在する場合である。読出ヒットのためにキャッシュの状態が変わ ることはない。読出ミスが起こった場合、キャッシュ内のそのアドレス位置に対 応するデータは、そのデータがプロセッサによって更新されていた場合はメイン メモリへ書き戻される。読出ミスがあると他のキャッシュは各々スヌーピングし 、そのアドレスがそのキャッシュ内にあるかどうかを調べる。あるキャッシュが そのアドレスを有し、かつ読出/書込状態にある場合、そのアドレスに対応する データはメモリに書込まれ、そのアドレスは無効の状態に変えられる。読出しを 要求して読出ミスを発生したプロセッサはメインメモリから現在のデータを引出 す。そのプロセッサのキャッシュ内に更新されたデータが入れられる。 プロセッサがあるアドレス位置に書込みをして書込ヒットが起こった場合、無 効化信号がバスにわたって外へ出される。他のキャッシュの各々はバスを監視し 、自分がそのアドレスを有しているかどうかを調べる。そのアドレスを有してい た場合、そのキャッシュはそのアドレスを無効化する。書込ミスの場合では、そ のアドレスを備えたキャッシュの各々は無効な状態となる。 多重レベルキャッシュシステム内のレベル1キャッシュの各スヌープは、レベ ル1キャッシュのTAGアレイにアクセスすることが必要である。TAGアレイ のポートが1つである場合、各スヌープはプロセッサのレベル1キャッシュへの アクセスを停止させるので、その結果性能が低下することになる。この問題は多 重レベルキャッシュシステムにおけるレベルの数が増加するにつれ一層ひどくな る。 EP−A−0 461 926では、請求項1の前文の特徴を有するメモリシ ステムが開示される。 発明の概要 関連技術の限界を考慮した上で、この発明の目的はキャッシュスヌーピングオ 請求の範囲 1.メモリアクセス装置(10)によってアクセス可能なメモリシステムであっ て、 前記メモリアクセス装置(10)に接続されるレベル1キャッシュ(20)を 含み、前記レベル1キャッシュは複数の記憶場所を含み、前記メモリシステムは さらに 前記レベル1キャッシュ(20)およびメインメモリ(50)に接続されるレ ベル2キャッシュ(30)を含み、前記レベル2キャッシュ(30)は複数の記 憶場所と、前記レベル2キャッシュ(30)内の前記複数の記憶場所の各々に対 応するヒットフラグとを含み、前記ヒットフラグは前記レベル2キャッシュ(3 0)内の前記複数の記憶場所の対応する1つに記憶されている情報が前記レベル 1キャッシュにも記憶されているかどうかを示し、 置換えアドレスラインは前記レベル1キャッシュ(20)および前記レベル2 キャッシュ(30)に接続され、前記置換えアドレスラインは第1の状態にある 場合は前記レベル1キャッシュに関するキャッシュライン置換えを示し、第2の 状態にある場合はキャッシュライン置換えがないことを示すことを特徴とする、 メモリシステム。 2.メモリシステムであって、前記レベル1キャッシュおよび前記レベル2キャ ッシュに接続されるアドレスバスをさらに含み、 アドレスバスが第1の状態に置かれ、レベル1キャッシュの中に書込まれるべ き第1のメモリアドレスに対応する、アドレスバス上の有効なアドレスを示すと 、置換えアドレスラインは第1の状態に置かれ、第1の状態にある置換えアドレ スラインと同時に現われる、アドレスバス上の第2のメモリアドレスは、レベル 1キャッシュ内に現在記憶されているがレベル1キャッシュ内で第1のメモリア ドレスに関連づけられたデータによって重ね書きされることになる、関連のある データを有するメモリアドレスに対応する、請求項1に記載のメモリシステム。 3.メモリシステムであって、 前記レベル1キャッシュおよび前記レベル2キャッシュに接続される変更ライ ンをさらに含み、変更ラインはメモリアクセス装置によって前記レベル1キャッ シュ内で変更されたキャッシュライン置換えの対応するデータを示す、請求項2 に記載のメモリシステム。 4.変更ラインがキャッシュライン置換えの間、メモリアクセス装置による対応 するデータの変更を示すと、メインメモリへのコピーバックサイクルが実行され データの完全性を確実にする、請求項3に記載のメモリシステム。 5.プロセッサ(10)を有する処理システムにおいて用いるための多重レベル キャッシュシステムであって、前記プロセッサは要求されるデータを表わすアド レスを生成し、多重レベルキャッシュシステムは前記プロセッサに接続され、共 有メモリバス(40)はメインメモリ(50)および前記多重レベルキャッシュ システムに接続され、前記多重レベルキャッシュシステムは、 前記プロセッサからのアドレス要求に応答して情報を供給するレベル1キャッ シュ(20)を含み、前記レベル1キャッシュは前記プロセッサに接続され、前 記プロセッサからの前記アドレス要求を受け、前記レベル1キャッシュはデータ を記憶するための複数の記憶場所と、前記レベル1キャッシュに記憶されるアド レスを示すTAGアレイとを含み、前記多重レベルキャッシュシステムはさらに 直列配置に接続されるレベル2からレベルiまでのキャッシュ(30)を含み 、iは3からnまでの整数であり、前記レベル2キャッシュは下位レベルのキャ ッシュとしての前記レベル1キャッシュに接続され、かつ次の上位レベルのキャ ッシュとしての前記レベル3キャッシュに接続されており、前記レベル2からレ ベルiまでのキャッシュの各々は、いずれの下位レベルのキャッシュも情報を供 給できない場合に前記プロセッサからのアドレス要求に応答して情報を供給する ことを試み、前記レベル2から前記レベルiまでのキャッシュの各々はデータを 記憶するための複数の記憶場所と、前記対応するキャッシュに記憶されるアドレ スを示すTAGアレイと、前記対応するキャッシュの前記複数の記憶場所の各々 のためのヒットフラグとを含み、前記レベルiキャッシュは前記共有メモリバス (40)にわたって前記メインメモリ(50)に接続されており、前記多重レベ ルキャッシュシステムはさらに、 前記共有メモリバスにわたって前記メインメモリ(50)へのメモリアクセス を検出するための、前記レベルiキャッシュ内の監視手段と、 前記メモリアクセスが次の下位レベルのキャッシュ内の前記複数の記憶場所の 1つと一致することを前記次の下位レベルのキャッシュに通知するための、前記 レベル2からレベルiまでのキャッシュの各々の中の下位レベルキャッシュ通知 手段と、 前記対応するキャッシュ内の前記複数の記憶場所の1つに対応するヒットフラ グを更新するための、前記レベル2からレベルiまでのキャッシュの各々の中の ヒットフラグ更新手段と、 前記レベル1からレベルiまでのキャッシュの各々に接続される置換えアドレ スラインとを含み、前記置換えアドレスラインは、第1の状態にある場合は前記 レベル1からレベルiまでのキャッシュの1つに関するキャッシュライン置換え を示し、第2の状態にある場合はキャッシュライン置換えがないことを示し、前 記置換えアドレスラインは第1の状態にある場合は前記レベル1からレベルiま でのキャッシュのうち、どれがキャッシュライン置換えを実行しているのかを示 し、 前記置換えアドレスラインが第1の状態にある場合、キャッシュライン置換え を実行している前記対応するキャッシュ内の前記複数の記憶場所の1つに現在記 憶されているが別のデータで重ね書きされることになるデータに関連づけられた メモリアドレスは、前記レベル1からレベルiまでのキャッシュの各々に接続さ れるアドレスバス上に出力され、 前記レベル2キャッシュからレベルiキャッシュまでの直列配置内のより上位 レベルの前記キャッシュの各々は、前記対応するレベル2キャッシュからレベル iキャッシュ内の重ね書きされたデータの関連づけられたアドレスのための対応 するヒットフラグを更新するように構成される、多重レベルキャッシュシステム 。 6.前記アドレスバスが第1の状態に置かれ、キャッシュライン置換えを実行し ている前記レベル1からレベルiまでのキャッシュのうちの前記1つの中に書込 まれるべき第1のメモリアドレスに対応する、前記アドレスバス上の有効アドレ スを示す場合、置換えアドレスラインは第1の状態に置かれ、第1の状態にある 置換えアドレスラインと同時に現われる、前記アドレスバス上の第2のメモリア ドレスは、前記レベル1からレベルiまでのキャッシュの中の前記1つの中に現 在記憶される関連のあるデータを有するメモリアドレスに対応するが、これは前 記第1のメモリアドレスに関連づけられるデータによって前記レベル1からレベ ルiまでのキャッシュのうちの前記1つにおいて重ね書きされることになる、多 重レベルキャッシュシステム。 7.多重レベルキャッシュシステムであって、前記レベル1からレベルiまでの キャッシュの各々に動作的に接続される変更ラインをさらに含み、変更ラインは 前記プロセッサによって前記レベル1からレベルiまでのキャッシュのうちの前 記1つにおいて変更されたキャッシュライン置換えの対応するデータを示す、請 求項6に記載の多重レベルキャッシュシステム。 8.変更ラインがキャッシュライン置換えの間、前記プロセッサによる対応する データの変更を示す場合、前記メインメモリへのコピーバックサイクルが実行さ れ、データの完全性を確実にする、請求項7に記載の多重レベルキャッシュシス テム。 9.プロセッサ(10)およびメインメモリ(50)を備えた多重レベルキャッ シュシステムにおけるキャッシュ・スヌーピング・オーバヘッドを減少する方法 であって、 最上位レベルのキャッシュで共有メモリバスを監視し、前記共有メモリバス上 でメモリアクセスを検出するステップと、 前記最上位レベルのキャッシュで、前記メモリアクセスを、前記最上位レベル のキャッシュの複数の記憶場所の各々のためのタグアドレスと比較するステップ と、 前記最上位レベルのキャッシュで、前記メモリアクセスが次の下位レベルのキ ャッシュ内に記憶される前記タグアドレスの1つと一致することを前記次の下位 レベルのキャッシュに通知するステップと、 前記最上位レベルのキャッシュで、前記最上位レベルのキャッシュの複数の記 憶場所の1つに対応するヒットフラグを更新するステップとを含み、前記ヒット フラグは、前記最上位レベルのキャッシュの前記複数の記憶場所の1つに現在記 憶されている情報が、前記次の下位レベルのキャッシュ内にも現在記憶されてい るかどうかを示し、前記方法はさらに 前記次の下位レベルのキャッシュ内のキャッシュラインを置換え、置換えアド レスサイクルにおいて実現される最上位レベルのキャッシュに以下のステップに よって通知するステップとを含み、すなわち a) 前記次の下位レベルのキャッシュ内に置かれるべきデータに関連する メモリアドレスに対応する第1のアドレスをアドレスバス上に置くステップと、 b) ステップa)と同時に、アドレス有効信号をアドレスバス上の有効な アドレスを示す状態に置くステップと、 c) 前記次の下位レベルのキャッシュ内で重ね書きされるべきデータに関 連のある別のメモリアドレスに対応する第2のアドレスをアドレスバス上に置く ステップと、 d) 前記最上位レベルのキャッシュによって第2のアドレスを読み、その 結果、前記最上位レベルのキャッシュ内の第2のアドレスに対応するヒットフラ グを更新するようにするステップとを含む、方法。 10.前記置換えアドレスラインが第1の状態にある場合、前記レベル1キャッ シュ内の前記複数の記憶場所の1つに現在記憶されているが別のデータで重ね書 きされるべきデータに関連づけられたメモリアドレスは、前記レベル1キャッシ ュおよび前記レベル2キャッシュに接続されるアドレスバス上に出力され、 前記レベル2キャッシュはその結果、前記レベル2キャッシュ内の重ね書きさ れたデータの関連のあるアドレスのための対応するヒットフラグを更新するよう に構成される、請求項1に記載のメモリシステム。
───────────────────────────────────────────────────── 【要約の続き】 メモリアクセスが特定のキャッシュレベルでヒットを起 こさないことがあるか、または最下位キャッシュレベル に達するまで続けられる。

Claims (1)

  1. 【特許請求の範囲】 1.メモリシステムであって、 メモリアクセス装置と、前記メモリアクセス装置に動作的に接続されるレベル 1キャッシュとを含み、前記レベル1キャッシュは複数の記憶場所を含み、前記 メモリシステムはさらに 前記レベル1キャッシュおよびメインメモリに動作的に接続されるレベル2キ ャッシュを含み、前記レベル2キャッシュは複数の記憶場所と、前記レベル2キ ャッシュ内の前記複数の記憶場所の各々に対応するヒットフラグとを含み、前記 ヒットフラグは前記レベル2キャッシュ内の前記複数の記憶場所の対応する1つ に記憶されている情報が前記レベル1キャッシュにも記憶されているかどうかを 示す、メモリシステム。 2.メモリシステムであって、 プロセッサと、 前記プロセッサに動作的に接続されるレベル1キャッシュとを含み、前記レベ ル1キャッシュは複数の記憶場所を含み、前記メモリシステムはさらに レベルiキャッシュを含み、iは2からnまでの整数であり、前記レベルiキ ャッシュはレベルi−1キャッシュに動作的に接続され、前記レベルiキャッシ ュは、複数の記憶場所と、前記レベルi−1キャッシュ内の前記複数の記憶場所 の各々に対応するヒットフラグとを含み、前記ヒットフラグは前記レベルiキャ ッシュ内の前記記憶場所の対応する1つに記憶されている情報が前記レベルi− 1キャッシュにも記憶されているかどうかを示し、前記レベルnキャッシュはメ インメモリに動作的に接続されている、メモリシステム。 3.要求されたデータを表わすアドレスを生成するプロセッサを有する処理シス テムにおいて、前記プロセッサに接続された多重レベルキャッシュシステムであ って、共有メモリバスがメインメモリおよび前記多重レベルキャッシュシステム に接続され、前記多重レベルキャッシュシステムは、 前記プロセッサからのアドレス要求に応答して情報を供給するレベル1キャッ シュを含み、前記レベル1キャッシュはレベル2キャッシュおよび前記プロセッ サに動作的に接続され前記アドレス要求を前記プロセッサから受け、前記レベル 1キャッシュはデータを記憶するための複数の記憶場所と、前記レベル1キャッ シュに記憶されたアドレスを示すTAGアレイとを含み、前記多重レベルキャッ シュシステムはさらに レベルiキャッシュを含み、iは2からnまでの整数であり、前記レベルiキ ャッシュは前記プロセッサからのアドレス要求に応答して情報を供給し、前記レ ベルiキャッシュは前記プロセッサに動作的に接続され、前記アドレス要求を受 け、前記レベルiキャッシュはデータを記憶するための複数の記憶場所と、前記 レベルiキャッシュ内に記憶されたアドレスを示すTAGアレイと、前記レベル iキャッシュ内の前記複数の記憶場所の各々のためのヒットフラグとを含み、前 記レベルnキャッシュは前記メインメモリに前記共有メモリバスにわたって動作 的に接続されており、前記多重レベルキャッシュシステムはさらに 前記共有メモリバスにわたっての前記メインメモリへのメモリアクセスを検出 するための、前記レベルnキャッシュ内の監視手段と、 前記メモリアクセスが前記レベルi−1キャッシュ内の前記複数の記憶場所の 1つと一致することを前記レベルi−1キャッシュに通知するための、前記レベ ルiキャッシュ内の下位レベルキャッシュ通知手段と、 前記レベルiキャッシュ内の前記複数の記憶場所の1つに対応するヒットフラ グを更新するための、前記レベルiキャッシュ内のヒットフラグ更新手段とを含 む、多重レベルキャッシュシステム。 4.必要なデータを表わすアドレスを発生するプロセッサを有する処理システム において、前記プロセッサに接続された2レベルのキャッシュシステムであって 、共有メモリバスはメインメモリおよび前記2レベルのキャッシュシステムに接 続され、前記2レベルのキャッシュシステムは、 前記プロセッサからのアドレス要求に応答して情報を供給するレベル1キャッ シュを含み、前記レベル1キャッシュは前記プロセッサに動作的に接続され前記 アドレス要求を受け、前記レベル1キャッシュは、データを記憶するための第1 の複数の記憶場所と、前記データのタグアドレスと、前記データのステータスと を含み、前記2レベルのキャッシュシステムはさらに 前記プロセッサからの前記アドレス要求に応答して情報を供給するレベル2キ ャッシュを含み、前記レベル2キャッシュは前記レベル1キャッシュおよび前記 プロセッサに動作的に接続され前記プロセッサから前記アドレス要求を受け、前 記レベル2キャッシュは、データを記憶するための第2の複数の記憶場所と、前 記データのタグアドレスと、前記データのステータスと、前記データのヒットフ ラグとを含み、前記レベル2キャッシュは前記メインメモリに前記共有メモリバ スにわたって動作的に接続されており、前記2レベルキャッシュシステムはさら に 前記共有メモリバスにわたっての前記メインメモリへのメモリアクセスを検出 するための、前記レベル2キャッシュ内の監視手段と、 前記メモリアクセスが前記レベル1キャッシュ内の前記第1の複数の記憶場所 の1つと一致することを前記レベル1キャッシュに通知するための、前記レベル 2キャッシュ内の下位レベルキャッシュ通知手段と、 前記レベル2キャッシュ内の前記第2の複数の記憶場所の1つに対応するヒッ トフラグを更新するための、前記レベル2キャッシュ内のヒットフラグ更新手段 とを含む、2レベルのキャッシュシステム。 5.前記レベルiキャッシュはまた、前記下位レベルキャッシュ通知手段および 前記ヒットフラグ更新手段を実現するためのレベルiキャッシュコントローラを 含み、前記レベルnキャッシュコントローラはまた前記監視手段を実現する、請 求項3に記載の多重レベルキャッシュシステム。 6.前記レベル2キャッシュはまた、前記下位レベルキャッシュ通知手段および 前記ヒットフラグ更新手段を実現するためのレベル2キャッシュコントローラを 含み、前記レベル2キャッシュコントローラはまた前記監視手段を実現する、請 求項4に記載の2レベルのキャッシュシステム。 7.前記ヒットフラグ更新手段は、前記レベルi−1キャッシュ内の前記複数の 記憶場所の1つの中に前記メインメモリから書込まれた情報に基づいて、前記レ ベルiキャッシュ内の前記複数の記憶場所の前記1つのものに対応するヒットフ ラグを更新する、請求項5に記載の多重レベルキャッシュシステム。 8.前記レベルiキャッシュ内の前記複数の記憶場所の前記1つのものに対応す る前記ヒットフラグは、前記レベルiキャッシュ内の前記複数の記憶場所の前記 1つのものに記憶された情報が前記レベルi−1キャッシュ内の前記複数の記憶 場所のいずれにも存在しないことを示す第1の状態か、前記レベルiキャッシュ 内の前記複数の記憶場所の前記1つのものに記憶された前記情報が前記レベルi −1キャッシュ内の前記複数の記憶場所の1つに存在することを示す第2の状態 かのいずれか1つに設定される、請求項7に記載の多重レベルキャッシュシステ ム。 9.前記ヒットフラグ更新手段は、前記レベルi−1キャッシュの中に前記メイ ンメモリから書込まれた情報に基づいて、前記レベルiキャッシュ内の前記複数 の記憶場所の前記1つのものに対応するヒットフラグを更新する、請求項3に記 載の多重レベルキャッシャシステム。 10.前記メインメモリから前記レベルi−1キャッシュの中に書込まれる前記 情報は特定のメモリアドレスに対応し、前記レベルiキャッシュ内の前記ヒット フラグ更新手段によって更新された前記ヒットフラグは、前記特定のメモリアド レスに一致する前記TAGアレイの中の対応するアドレスを有する前記レベルi キャッシュの中の前記複数の記憶場所の前記1つのものに対応する、請求項9に 記載の多重レベルキャッシュシステム。 11.前記レベル2キャッシュ内の前記第2の複数の記憶場所の前記1つのもの に対応する前記ヒットフラグは、前記レベル2キャッシュ内の前記第2の複数の 前記記憶場所の前記1つのものに記憶された情報が、前記レベル1キャッシュ内 の前記第1の複数の記憶場所のいずれにも存在しないことを示す第1の状態か、 前記レベル2キャッシュ内の前記第2の複数の記憶場所の前記1つのものに記憶 された前記情報が、前記レベル1キャッシュ内の前記第1の複数の記憶場所の1 つに存在することを示す第2の状態かのいずれか1つに設定される、請求項4に 記載の2レベルのキャッシュシステム。 12.前記ヒットフラグ更新手段は、前記レベルiキャッシュが前記レベルi− 1キャッシュのデータ転送のやりとりを監視することによって実現され、前記レ ベルiキャッシュは前記レベルi−1キャッシュ内の前記複数の記憶場所に現存 するすべてのタグアドレスを定める、請求項3に記載の多重レベルキャッシュシ ステム。 13.前記レベル1キャッシュおよび前記レベルiキャッシュに接続される置換 えバスをさらに含み、iは2からnまでの整数であり、前記置換えバスは、前記 レベル1からレベルnまでのキャッシュの1つに記憶されるアドレスを置換える べきである場合は第1の状態にあり、そうでなければ第2の状態にあり、 前記レベルi−1キャッシュに記憶されたアドレスが新しいアドレスと置換え られる場合、前記新しいアドレスは、前記置換えバスが前記第1の状態にある間 、前記レベル1からレベルnまでのキャッシュのすべてを接続する前記共有メモ リバスの上に置かれ、 前記レベルiキャッシュ内の前記ヒットフラグ更新手段は、前記置換えられる べきアドレスに対応するヒットフラグを変更して、前記置換えられるべきアドレ スが前記レベルi−1キャッシュ内にもはや存在しないことを示す、請求項3に 記載の多重レベルキャッシュシステム。 14.前記レベル1キャッシュおよび前記レベル2キャッシュに接続される置換 えバスをさらに含み、前記置換えバスは、前記レベル1キャッシュに記憶された アドレスを置換えるべきである場合は第1の状態にあり、そうでなければ第2の 状態にあり、 前記レベル1キャッシュに記憶されたアドレスが新しいアドレスで置換えられ る場合、前記新しいアドレスは、前記置換えバスが前記第1の状態にある間、前 記レベル1キャッシュおよび前記レベル2キャッシュを接続する前記共有メモリ バスの上に置かれ、 前記レベル2キャッシュ内の前記ヒットフラグ更新手段は、前記置換えられる べきアドレスに対応するヒットフラグを変更して、前記置換えられるべきアドレ スが前記レベル1キャッシュにもはや存在しないことを示す、請求項4に記載の 2レベルのキャッシュシステム。 15.前記レベルiキャッシュは前記レベルi−1キャッシュによって開始され る置換えアドレスサイクルを検出し、前記レベルi−1キャッシュは、前記共有 メモリバス上に、前記レベルi−1キャッシュ内の前記複数の記憶場所の1つに 記憶された置換えられるべきアドレスに対応するアドレスを出力し、前記レベル iキャッシュ内の前記ヒットフラグ更新手段は、これに従って前記共有メモリバ ス上の前記アドレスに対応するヒットフラグを更新する、請求項10に記載の多 重レベルキャッシュシステム。 16.前記レベル2キャッシュは前記レベル1キャッシュによって開始された置 換えアドレスサイクルを検出し、前記レベル1キャッシュは、前記共有メモリバ ス上に、前記レベル1キャッシュ内の前記第1の複数の記憶場所の1つに記憶さ れた置換えられるべきアドレスに対応するアドレスを出力し、前記レベル2キャ ッシュ内の前記ヒットフラグ更新手段は、これに従って前記共有メモリバス上の 前記アドレスに対応するヒットフラグを更新する、請求項4に記載の2レベルの キャッシュシステム。 17.プロセッサおよびメインメモリを備えたnレベルキャッシュシステムにお けるキャッシュ・スヌーピング・オーバヘッドを減少するための方法であって、 nは2以上の整数であり、前記方法は、 レベルnキャッシュが共有メモリバスを監視するステップと、 前記レベルnキャッシュが前記共有メモリバス上のメモリアクセスを検出する ステップと、 前記レベルnキャッシュが前記メモリアクセスを、前記レベルnキャッシュ内 の複数の記憶場所の各々のタグアドレスと比較するステップと、 前記メモリアクセスが前記レベルj−1キャッシュ内に記憶された前記タグア ドレスの1つと一致することを、前記レベルjキャッシュがレベルj−1キャッ シュに通知するステップとを含み、jは2からnまでの整数であり、前記方法は さらに 前記レベルjキャッシュが前記レベルjキャッシュ内の複数の記憶場所の1つ に対応するヒットフラグを更新するステップを含み、前記ヒットフラグは前記レ ベルjキャッシュ内の前記複数の記憶場所の1つに現在記憶されている情報が前 記レベルj−1キャッシュ内にも現在記憶されているかどうかを示す、方法。 18.前記レベルjキャッシュは、前記レベルj−1キャッシュがキャッシュラ イン置換えを実行する度に前記レベルjキャッシュ内の前記複数の記憶場所の特 定の1つに対応するヒットフラグを更新する、請求項17に記載の方法。
JP9501108A 1995-06-05 1996-06-04 多重レベルキャッシュシステムにおけるキャッシュ・スヌーピング・オーバヘッドを減少するための方法および装置 Ceased JPH11506850A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/464,350 US5850534A (en) 1995-06-05 1995-06-05 Method and apparatus for reducing cache snooping overhead in a multilevel cache system
US08/464,350 1995-06-05
PCT/US1996/008540 WO1996039665A1 (en) 1995-06-05 1996-06-04 Method and apparatus for reducing cache snooping overhead in a multilevel cache system

Publications (1)

Publication Number Publication Date
JPH11506850A true JPH11506850A (ja) 1999-06-15

Family

ID=23843590

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9501108A Ceased JPH11506850A (ja) 1995-06-05 1996-06-04 多重レベルキャッシュシステムにおけるキャッシュ・スヌーピング・オーバヘッドを減少するための方法および装置

Country Status (4)

Country Link
US (1) US5850534A (ja)
EP (1) EP0834129A1 (ja)
JP (1) JPH11506850A (ja)
WO (1) WO1996039665A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7870340B2 (en) 2002-05-06 2011-01-11 Sony Computer Entertainment Inc. Methods and apparatus for controlling hierarchical cache memory

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11272555A (ja) * 1998-03-20 1999-10-08 Fujitsu Ltd キャッシュメモリ制御システム
US6928517B1 (en) * 2000-08-30 2005-08-09 Unisys Corporation Method for avoiding delays during snoop requests
US7093104B2 (en) * 2001-03-22 2006-08-15 Sony Computer Entertainment Inc. Processing modules for computer architecture for broadband networks
US6526491B2 (en) * 2001-03-22 2003-02-25 Sony Corporation Entertainment Inc. Memory protection system and method for computer architecture for broadband networks
US7231500B2 (en) 2001-03-22 2007-06-12 Sony Computer Entertainment Inc. External data interface in a computer architecture for broadband networks
US7233998B2 (en) * 2001-03-22 2007-06-19 Sony Computer Entertainment Inc. Computer architecture and software cells for broadband networks
US6809734B2 (en) 2001-03-22 2004-10-26 Sony Computer Entertainment Inc. Resource dedication system and method for a computer architecture for broadband networks
US6826662B2 (en) 2001-03-22 2004-11-30 Sony Computer Entertainment Inc. System and method for data synchronization for a computer architecture for broadband networks
US7516334B2 (en) 2001-03-22 2009-04-07 Sony Computer Entertainment Inc. Power management for processing modules
US7146468B2 (en) * 2002-04-24 2006-12-05 Ip-First, Llc. Cache memory and method for handling effects of external snoops colliding with in-flight operations internally to the cache
US7155572B2 (en) * 2003-01-27 2006-12-26 Advanced Micro Devices, Inc. Method and apparatus for injecting write data into a cache
US7334102B1 (en) 2003-05-09 2008-02-19 Advanced Micro Devices, Inc. Apparatus and method for balanced spinlock support in NUMA systems
US7404047B2 (en) * 2003-05-27 2008-07-22 Intel Corporation Method and apparatus to improve multi-CPU system performance for accesses to memory
US8224639B2 (en) 2004-03-29 2012-07-17 Sony Computer Entertainment Inc. Methods and apparatus for achieving thermal management using processing task scheduling
US8347034B1 (en) * 2005-01-13 2013-01-01 Marvell International Ltd. Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access
US7991959B2 (en) * 2005-05-16 2011-08-02 Texas Instruments Incorporated Visualizing contents and states of hierarchical storage systems
US7640398B2 (en) * 2005-07-11 2009-12-29 Atmel Corporation High-speed interface for high-density flash with two levels of pipelined cache
US20070038814A1 (en) * 2005-08-10 2007-02-15 International Business Machines Corporation Systems and methods for selectively inclusive cache
US7577793B2 (en) * 2006-01-19 2009-08-18 International Business Machines Corporation Patrol snooping for higher level cache eviction candidate identification
US10776281B2 (en) 2018-10-04 2020-09-15 International Business Machines Corporation Snoop invalidate filter for distributed memory management unit to reduce snoop invalidate latency

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4797814A (en) * 1986-05-01 1989-01-10 International Business Machines Corporation Variable address mode cache
US5136700A (en) * 1989-12-22 1992-08-04 Digital Equipment Corporation Apparatus and method for reducing interference in two-level cache memories
CA2044689A1 (en) * 1990-06-15 1991-12-16 Roger E. Tipley Multilevel inclusion in multilevel cache hierarchies
US5530832A (en) * 1993-10-14 1996-06-25 International Business Machines Corporation System and method for practicing essential inclusion in a multiprocessor and cache hierarchy

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7870340B2 (en) 2002-05-06 2011-01-11 Sony Computer Entertainment Inc. Methods and apparatus for controlling hierarchical cache memory

Also Published As

Publication number Publication date
EP0834129A1 (en) 1998-04-08
US5850534A (en) 1998-12-15
WO1996039665A1 (en) 1996-12-12

Similar Documents

Publication Publication Date Title
US5740400A (en) Reducing cache snooping overhead in a multilevel cache system with multiple bus masters and a shared level two cache by using an inclusion field
CN107066396B (zh) 用于操作虚拟索引的物理标记的缓存的装置及方法
US5850534A (en) Method and apparatus for reducing cache snooping overhead in a multilevel cache system
US6366984B1 (en) Write combining buffer that supports snoop request
EP0434250B1 (en) Apparatus and method for reducing interference in two-level cache memories
KR101038963B1 (ko) 캐쉬 할당을 위한 장치, 시스템, 방법 및 기계 액세스가능 매체
KR100274771B1 (ko) Smp 버스의 공유 상태에서의 캐시 라인들의 공유 개입 방법
US5146603A (en) Copy-back cache system having a plurality of context tags and setting all the context tags to a predetermined value for flushing operation thereof
EP0950222B1 (en) Prefetch management in cache memory
JPH10333985A (ja) データ供給方法及びコンピュータ・システム
KR20030097871A (ko) 캐시에서의 라인들을 추론적으로 무효화하는 방법 및 시스템
JPH0575134B2 (ja)
US5724547A (en) LRU pointer updating in a controller for two-way set associative cache
US7197605B2 (en) Allocating cache lines
US5590310A (en) Method and structure for data integrity in a multiple level cache system
JP3245125B2 (ja) 垂直キャッシュのための擬似精細i−キャッシュ包含性
US5479629A (en) Method and apparatus for translation request buffer and requestor table for minimizing the number of accesses to the same address
EP0835490B1 (en) Write cache for write performance improvement
US5920891A (en) Architecture and method for controlling a cache memory
JPH06318174A (ja) キャッシュ・メモリ・システム及び主メモリに記憶されているデータのサブセットをキャッシュする方法
US20040111566A1 (en) Method and apparatus for supporting opportunistic sharing in coherent multiprocessors
JPH05324468A (ja) 階層化キャッシュメモリ
JPH04336641A (ja) 処理システムにおける使用のためのデータキャッシュおよび方法
JPH10105461A (ja) 処理装置及びルックアサイド・キャッシュをスヌープする改善された装置及び方法
JP3302905B2 (ja) バスインタフェースアダプタおよびコンピュータシステム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060124

A313 Final decision of rejection without a dissenting response from the applicant

Free format text: JAPANESE INTERMEDIATE CODE: A313

Effective date: 20060612

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060718