JP4041402B2 - サイクルあたりの多重キャッシュライン無効化をサポートするための方法および装置 - Google Patents

サイクルあたりの多重キャッシュライン無効化をサポートするための方法および装置 Download PDF

Info

Publication number
JP4041402B2
JP4041402B2 JP2002582367A JP2002582367A JP4041402B2 JP 4041402 B2 JP4041402 B2 JP 4041402B2 JP 2002582367 A JP2002582367 A JP 2002582367A JP 2002582367 A JP2002582367 A JP 2002582367A JP 4041402 B2 JP4041402 B2 JP 4041402B2
Authority
JP
Japan
Prior art keywords
cache
bank
line
level cache
banks
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2002582367A
Other languages
English (en)
Other versions
JP2004528647A (ja
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems 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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=26741128&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP4041402(B2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JP2004528647A publication Critical patent/JP2004528647A/ja
Application granted granted Critical
Publication of JP4041402B2 publication Critical patent/JP4041402B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • 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/0808Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
    • 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
    • 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
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means

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)
  • Multi Processors (AREA)

Description

本発明は、マルチプロセッサコンピュータシステムの設計に関する。より詳細には、本発明は、同時に多重キャッシュライン無効化を実行するための方法および装置に関する。
(関連技術)
コンピュータ性能の高速化を達成するために、コンピュータシステム設計者は、単一のコンピュータタスクを実行するために並行に動作するマルチプロセッサシステムを利用し始めた。1つの共通のマルチプロセッサ設計は、複数のレベル1(L1)キャッシュ161〜164を有する複数のプロセッサ151〜154を含み、複数のレベル1(L1)キャッシュ161〜164は、単一のレベル2(L2)キャッシュ180およびメモリ183を共用する(図1を参照されたい)。動作中、プロセッサ151が、ローカルL1キャッシュ161に存在しないデータアイテムにアクセスする場合、システムは、L2キャッシュ180からデータアイテムを取り出そうと試みる。データアイテムがL2キャッシュ180に存在しない場合は、システムは、最初に、データアイテムを、メモリ183からL2キャッシュ180へ取り出し、続いて、L2キャッシュ180からL1キャッシュ161へ取り出す。
留意すべきは、1つより多いL1キャッシュにおいて、同一のデータアイテムが存在する場合、干渉性の問題が生じ得ることである。この場合、L1キャッシュ161におけるデータアイテムの第1のバージョンに対する修正によって、第1のバージョンが、L1キャッシュ162におけるデータアイテムの第2のバージョンと異なるようにし得る。
干渉性の問題を防ぐために、コンピュータシステムは、しばしば、バス170を介して動作する干渉性プロトコルを提供する。典型的には、干渉性プロトコルが確実にするのは、データアイテムの1つのコピーがL1キャッシュ161で修正される場合、L1キャッシュ162〜164、L2キャッシュ180およびメモリ183における同一データアイテムの他のコピーは、その修正を反映するようにアップデートされるか、無効化される。
干渉性プロトコルは、典型的には、バス170を介して無効メッセージをブロードキャストすることによって、無効化を実行する。そのような無効化が頻繁に発生する場合、これらの無効メッセージは、潜在的にバス170を拘束させ得、それにより全体的なシステム性能を低下させ得る。
この問題を改善するために、いくらかの設計者は、L2キャッシュ180内にディレクトリ情報を維持する可能性を検討し始めた。このディレクトリ情報は、どのL1キャッシュが特定のデータアイテムのコピーを含むかを特定する。このことにより、システムは、全てのL1キャッシュにブロードキャストメッセージを送信するのではなく、そのデータアイテムを含むL1キャッシュに対してのみ無効情報を送信することになる。(このタイプのシステムは、各L1キャッシュ161〜164への無効メッセージのための別個の伝達経路が存在することを仮定している。これらの伝達経路は、図1Aに示されるシステムには存在しない。)
留意すべきは、さらなる伝達経路が、L1キャッシュ161〜164とL2キャッシュ180との間に提供される場合に、複数のプロセッサは、同時に無効化を引き起こすアクセスを実行することが可能になることである。つまり、L1キャッシュ161〜164は、同時に多重の無効要求を受信し得る。
必要とされるのは、同時に、L1キャッシュで、多重の無効化を実行することを容易にする方法および装置である。
さらに、留意すべきは、L1キャッシュ161〜164は、典型的にはセットアソシアティブ(set−associative)である。従って、無効メッセージがL1キャッシュ161によって受信されると、ルックアップおよび比較がL1キャッシュ161内で必ず実行されて、データアイテムのウェイ位置を決定する。例えば、4ウェイセットアソシアティブL1キャッシュにおいて、特定のセットに所属するデータアイテムは、4つの可能な「ウェイ」の1つで、格納され得る。結果として、各4つの可能なウェイからのタグは、必ず取り出され比較されて、データアイテムのウェイ位置を決定する。このルックアップは、時間を消費し、システム性能を低下させる。
つまり、必要とされるのは、エントリのウェイ位置を決定するために、ルックアップを実行することなく、L1キャッシュにおけるエントリを無効化するための方法および装置である。
(要旨)
本発明の1つの実施形態は、同一のサイクル内の多重キャッシュライン無効化をサポートするマルチプロセッサシステムを提供する。このマルチプロセッサシステムは、複数のプロセッサと、多重同時操作をサポートするように構成される下位レベルキャッシュとを含む。このマルチプロセッサシステムはまた、複数のプロセッサに接続される複数の上位レベルキャッシュを含み、所与の上位レベルキャッシュは、所与の上位レベルキャッシュ内のラインの多重同時無効化をサポートするように構成される。
本発明の1つの実施形態では、下位レベルキャッシュは、多重同時操作をサポートするために並行してアクセスされ得る多重のバンクを含む。
上述の実施形態のバリエーションでは、マルチプロセッサシステムは、複数の下位レベルキャッシュのバンクを、複数の上位レベルキャッシュに接続するように構成されるスイッチを含む。
上述の実施形態のバリエーションでは、所与の上位レベルキャッシュにおける各ラインは、ラインを無効化するために利用され得る有効ビットを含む。これらの有効ビットは、下位レベルキャッシュの多重のバンクに関連する多重のバンクへ組織化されるメモリ内に含まれる。さらに、有効ビットを含む各バンクは、下位レベルキャッシュの関連するバンクに配線接続され、その結果、所与の上位レベルキャッシュは、下位レベルキャッシュから多重同時無効化信号を受信し得る。
この実施形態におけるバリエーションでは、有効ビットを含む各バンクは、第1のポートおよび第2のポートを含む。ここで、第1のポートは、バンクの第1の位置から読み出す、または、バンクの第1の位置へ書き込むため利用され得る一方、第2のポートは、バンクの第2の位置を無効化するために利用される。このことは、バンクの第2のポートに対するワードラインを選択する専用のデコーダを有効ビットを含む各バンクに提供し、かつ、全てのバンクを介して単一のワードラインを選択する単一のデコーダを共用することによって、達成され得る。さらなるバリエーションでは、第2のポートのワードラインによって、メモリエレメントを対応するビットラインに接続することなく、メモリエレメントはリセットされる。
本発明の1つの実施形態では、所与の上位レベルキャッシュにより受信される所与の無効化信号は、所与の上位レベルキャッシュにおいて無効化されるべきラインのセット位置と、所与の上位レベルキャッシュにおいて無効化されるべきラインのウェイ位置とを含む。
本発明の1つの実施形態では、マルチプロセッサシステムは、単一の半導体チップ内に配置される。
本発明の1つの実施形態では、下位レベルキャッシュは、L2キャッシュであり、各複数の上位レベルキャッシュは、L1キャッシュである。
本発明の1つの実施形態では、複数の上位レベルキャッシュは、ライトスルーキャッシュとして組織化され、その結果、複数の上位レベルキャッシュに対するアップデートは、直ちに下位レベルキャッシュに対してライトスルーされる。
(詳細な説明)
以下の説明は、任意の当業者が本発明を作製し利用することができるように表現されており、特定の用途および必要性の関連で提供される。開示される実施形態に対する様々な改変が、当業者には容易に理解され、本明細書中で定義される一般原理は、本発明の意図および範囲から逸脱することなく、他の実施形態および用途に適用され得る。従って、本発明は、示される実施形態に制限されることが意図されないが、本明細書中で開示される原理および特徴と一貫する最大範囲が許容され得る。
(マルチプロセッサシステム)
図1Bは、本発明の実施形態に従った、リバースディレクトリを有するマルチプロセッサシステムを示す。マルチプロセッサシステム100のほとんどは、単一の半導体チップ101内に配置されていることを留意されたい。より詳細には、半導体チップ101は、複数のプロセッサ110、120、130および140を含み、それらのプロセッサは、レベル1キャッシュ112、122、132および142をそれぞれ含む。留意すべきは、L1キャッシュ112、122、132および142は、別個の命令およびデータキャッシュであってもよく、もしくは、代替として、統一された命令/データキャッシュであってもよいことである。L1キャッシュ112、122、132および142は、レベル2(L2)キャッシュ106に接続され、L2キャッシュ106は、リバースディレクトリ302(以下の図3〜6を参照して、より詳細が述べられる)を含む。L2キャッシュ106は、メモリコントローラ104を介して、オフチップメモリ102に接続される。
本発明の1つの実施形態では、L1キャッシュ112、122、132および142は、ライトスルーキャッシュであり、つまり、L1キャッシュ112、122、132および142に対する全てのアップデートは、自動的に、L2キャッシュ106に伝播されることを意味する。このことは、プロセッサ110が、L1キャッシュ112に存在するデータアイテムを必要とする場合、プロセッサ110は、そのデータを調達するためにL1キャッシュ112を待つ必要もなく、L2キャッシュ106からそのデータを受信することができるので、干渉性プロトコルを単純化する。さらに、L1キャッシュ112にそのデータを調達できるようにするために、ネットワークをフォワードする必要もない。留意すべきは、本発明の1つの実施形態では、L2キャッシュ106は「包含的キャッシュ」であり、つまり、L1キャッシュ112、122、132および142内の全てのアイテムは、L2キャッシュ106に含まれることを意味することである。
(多重のバンクを有するL2キャッシュ)
図2は、本発明の実施形態に従った、多重のバンクを有するL2キャッシュを示す。この実施形態では、L2キャッシュ106は、4つのバンク202〜205で実装され、4つのバンク202〜205は、スイッチ215および218を介して、プロセッサ110、120、130および140によって並列にアクセスされ得る。スイッチ215は、プロセッサ110、120、130および140からL2バンク202〜205へ搬送する伝達を操作する一方、スイッチ216は、L2バンク202〜205からプロセッサ110、120、130および140への逆方向における伝達操作する。
留意すべきは、2ビットのアドレスだけが、メモリ要求がどのバンク202〜205に向けられているかを決定するために必要とされることである。また留意すべきは、スイッチ215は、I/Oデバイスに伝達を受信するために、I/Oポート150をさらに含み、スイッチ216は、I/Oデバイスからの伝達を送信するために、I/Oポート152を含むことである。さらに、本発明の1つの実施形態では、各これらのバンク202〜205は、リバースディレクトリを含み、図5を参照して、以下により詳細に説明される。
留意すべきは、「バンク化された」アーキテクチャを利用することによって、各L1キャッシュは、それ専用のL2キャッシュのバンクと同時に接続可能であり、それにより、L2キャッシュ106の処理能力が増加することである。
しかし、L2キャッシュ106に対する同時アクセスは、潜在的に、L1キャッシュ112、122、132および142内に、ラインの多重無効化を引き起こさせ得る。これらの無効化をサポートするために、各L1キャッシュは、L2キャッシュ106の各バンク202〜205から、無効信号を受信する別個の経路を有する。
図1に示されるように、L1キャッシュ112は、L2バンク202からの無効信号221と、L2バンク203からの無効信号222と、L2バンク204からの無効信号223と、L2バンク205からの無効信号224とを受信する。各他のL1キャッシュ122、132および142は、L2バンク202〜205から同様の無効信号を受信する。しかし、これらのさらなる無効信号は、簡便さのために、図1には示されない。
(リバースディレクトリ)
図3は、本発明の実施形態に従った、関連するリバースディレクトリ302と一緒のL2バンク202を示す。L2バンク202は、命令およびデータを格納するための8ウェイのセットアソシアティブキャッシュ304を含む。アドレスの一部分は、キャッシュ304内のセット(行)を決定するために利用される。所与のセット内では、8つの異なるエントリが、各8つの異なる「ウェイ位置」に格納され得る。ウェイ位置は、キャッシュ304内の8つの列によって表現される。
リバースディレクトリ302は、各L1キャッシュに対して別個のブロックを含む。より具体的には、ブロック312は、L1キャッシュ112と関連し、ブロック322は、L1キャッシュ122と関連し、ブロック332は、L1キャッシュ132と関連し、そしてブロック342は、L1キャッシュ142と関連する。
留意すべきは、各これらのブロック312、322、332および342は、関連するL1キャッシュ112、122、132および142内の各ラインに対するエントリを含むことである。さらに、L1キャッシュ112が、4ウェイセットアソシアティブキャッシュとして組織化されるので、リバースディレクトリ302内の関連するブロック312はまた、同一の形式で組織化される。しかし、L1キャッシュ112内のエントリは、データおよび命令を含む。ここで、関連するブロック312内のエントリは、キャッシュ304内のラインの位置を特定するインデックス情報を含む。
(無効信号)
図4は、本発明の実施形態に沿った、アドレス400および関連する無効信号430を示す。
図4の上側は、アドレス400を示し、アドレス400は、メモリ内のデータアイテム(または命令)の位置を特定する。L1キャッシュ112は、このアドレスを、L1タグ412、L1セットナンバー414、および、L1ラインオフセット418へ分割する。L1セットナンバー414は、4ウェイセットアソシアティブL1キャッシュ112の特定のセットを調べるために、利用される。L1タグ412は、L1キャッシュ112内に格納され、各セットに対する4ウェイセットアソシアティブメモリを実装するために、比較を実行するように利用される。L1ラインオフセット418は、L1キャッシュ112のライン内の特定のデータアイテムの位置を決定する。
L2キャッシュ106は、アドレス400を、L2タグ402、L2セットナンバー404、L2バンクナンバー406およびL2ラインオフセット408に分割する。L2バンクナンバー406は、L2キャッシュ106の4つのバンク202〜205から、特定のバンクを決定する。L2セットナンバー404は、L2キャッシュ106の8ウェイセットアソシアティブバンクの特定のセットをルックアップするために利用される。L2タグ402は、L2キャッシュ106の特定のバンクに格納され、各セットに対する8ウェイセットアソシアティブメモリを実装するために、比較を実行するように利用される。L2ラインオフセット408は、L2キャッシュ106のライン内の特定のデータアイテムの位置を決定する。
アドレス400に対する対応する無効信号430は、縮小されたL1セットナンバー424およびL1ウェイナンバー429を含む。縮小されたL1セットナンバー424は、L2バンクナンバー406に対するビットなしのL1セットナンバー414を含む。図5から理解し得るように、各無効信号が、L2キャッシュ106の対応するバンクへ配線接続されるので、L2バンクナンバーに対するビットは、取り除かれ得、その結果、L2バンクナンバー406は、必要とされない。L1ウェイナンバー429は、L1キャッシュ112においてラインに対する4つの可能なウェイ位置からラインのウェイ(列)位置を特定する、2ビットインデックスを含む。
(多重同時無効化をサポートするメモリ)
図5は、本発明の実施形態に沿った、L1キャッシュ112内にラインに対する有効ビットを格納するメモリ構造を示す。このメモリは、多重のバンク501〜504と、無効信号221〜225を受信する複数ポートとを含む。ここで、各無効信号は、それ専用のメモリのバンクに接続される。より具体的には、無効信号221は、バンク501に接続され、無効信号222は、バンク502に接続され、無効信号223は、バンク503に接続され、そして無効信号224は、バンク504に接続される。
また留意すべきは、各これらのバンクは、4つの「ウェイ」へ分割され、L1キャッシュ112の4ウェイアソシアティブ構造を反映することである。つまり、各無効信号221〜224に対するウェイナンバー429は、セットナンバー424から分離され、セットナンバー424は、ワードラインを選択するデコーダを介して送り込まれる。留意すべきは、各バンクエントリは、各ウェイに対する別個の有効ビットを有することである。また留意すべきは、L1ウェイナンバー429は、操作に関連する特定の有効ビットを有効にすることである。
例えば、無効信号211は、セットナンバー511およびウェイナンバー521へ分割される。ウェイナンバー521は、バンク501の列を選択するために利用される一方、セットナンバー511は、バンク501に対するワードラインを駆動するデコーダ531を介して、送り込まれる。
留意すべきは、メモリはまた、無効化が左手側から発生するのと同時に読み書き操作を実行するために、右手側に少なくとも1つのポートを含むことである。このポートは、アドレス541を受信する。アドレス541は、メモリの全てのバンク501〜504を介して単一のワードラインを選択するデコーダ541を介して、送り込まれる。
(メモリセル構造)
図6は、本発明の実施形態に沿った、図5に示されるメモリ内の単一のメモリセルの構造を示す。このメモリセルは、無効ポートからのワードライン551と、読み/書きポートからのワードライン552とを受信する。留意すべきは、これらのメモリセルは、潜在的に、他のポートおよび関連するワードラインに接続され得ることである。
ワードライン551を駆動することにより、メモリセルは、左手側で、接地に接続され、右手側で、VDDに接続される。留意すべきは、無効化操作は、常にメモリエレメントを論理ゼロ値にセットするので、無効化操作に対してビットラインは必要とされないことである。また留意すべきは、L1ウェイナンバー429から決定されるイネーブル信号630は、ワードライン551の操作を有効にすることである。
反対に、ワードライン552を駆動することにより、メモリエレメントは、異なるビットラインD+601およびD+602に接続される。異なるビットラインD+601およびD+602は、メモリエレメントからの読み出し、または、メモリエレメントへの書き込みのために利用される。
(同時無効化を実行するプロセス)
図7は、本発明の実施形態に沿った、多重キャッシュラインを同時に無効化するプロセスを示すフローチャートである。本プロセスは、多重無効化信号221〜224が、L1キャッシュ112で受信される(ステップ702)ときに開始する。これらの多重無効化信号221〜224に応対して、システムは、図5に示されるL1キャッシュ112の多重のバンク501〜504で、同時無効化を実行する(ステップ704)。留意すべきは、読み/書きアクセスは、これらの同時無効化が発生すると同時に、別個の読み/書きポートを介して、メモリ上で実行され得ることである(ステップ706)。
本発明の実施形態の上述の説明は、図および説明のためにのみ示された。これらは、包括的であり、開示された形式に対して本発明を制限することを、意図されない。従って、多くの改変および変更が、当業者にとって理解される。つまり、上述の開示は、本発明を制限することが意図されない。本発明の範囲は、上掲の特許請求の範囲によって定義される。
図1Aは、マルチプロセッサシステムを示す。 図1Bは、本発明の実施形態に沿った、リバースディレクトリを有するL2キャッシュを含むマルチプロセッサシステムを示す。 図2は、本発明の実施形態に沿った、マルチプロセッサシステム内の多重のバンクを有するL2キャッシュを示す。 図3は、本発明の実施形態に沿った、リバースディレクトリを示す。 図4は、本発明の実施形態に沿った、アドレスおよび関連する無効信号を示す。 図5は、本発明の実施形態に沿った、無効化のための多重ポートを含むメモリ構造を示す。 図6は、本発明の実施形態に沿った、図5に示されるメモリ内の単一のメモリセルの構造を示す。 図7は、本発明の実施形態に沿った、複数キャッシュラインを同時に無効化するプロセスを示すフローチャートである。

Claims (22)

  1. 同一のサイクル内の多重キャッシュライン無効化をサポートするマルチプロセッサシステムであって、
    複数のプロセッサと、
    多重同時操作をサポートするように構成される下位レベルキャッシュと、
    該複数のプロセッサに接続される複数の上位レベルキャッシュであって、該複数の上位レベルキャッシュは、該下位レベルキャッシュを介してメモリアクセスを実行するように構成される、複数の上位レベルキャッシュと
    を含み、
    複数の上位レベルキャッシュの各々は、該上位レベルキャッシュ内のラインの多重同時無効化をサポートするように構成され
    該下位レベルキャッシュは、多重同時操作をサポートするために、並行にアクセスされ得る複数のバンクを含み、
    所与の上位レベルキャッシュの各ラインは、該ラインを無効化するために利用され得る有効ビットを含み、
    該所与の上位レベルキャッシュに対する該有効ビットは、該下位レベルキャッシュの該複数のバンクと関連する複数のバンクへ組織化されるメモリに含まれ、
    有効ビットを含む各バンクは、該下位レベルキャッシュの関連するバンクに配線接続され、その結果、該所与の上位レベルキャッシュは、該下位レベルキャッシュから、多重同時無効信号を受信し得る、マルチプロセッサシステム。
  2. 前記下位レベルキャッシュの前記複数のバンクを、前記複数の上位レベルキャッシュと接続するように構成されるスイッチをさらに含む、請求項に記載のマルチプロセッサシステム。
  3. 有効ビットを含む各バンクは、第1のポートおよび第2のポートを含み、該第1のポートは、該バンク内の第1の位置から読み出す、または、該バンクの第1の位置に書き込むために利用され得る一方で、該第2のポートは、該バンクの第2の位置を無効化するために利用される、請求項に記載のマルチプロセッサシステム。
  4. 前記第2のポートのワードラインにより、メモリエレメントは、該メモリエレメントを対応するビットラインに接続することなしにリセットされる、請求項に記載のマルチプロセッサシステム。
  5. 有効ビットを含む各バンクは、該バンクの第2のポートに対してワードラインを選択する専用のデコーダを含み、
    複数のバンクは、該複数のバンクの前記第1のポートを介して単一のワードラインを選択する単一のデコーダを共用する、請求項に記載のマルチプロセッサシステム。
  6. 所与の上位レベルキャッシュにより受信される所与の無効信号は、
    該所与の上位レベルキャッシュで無効化されるべきラインのセット位置と、
    該所与の上位レベルキャッシュで無効化されるべき該ラインのウェイ位置と
    を含む、請求項1に記載のマルチプロセッサシステム。
  7. 前記マルチプロセッサシステムは、単一の半導体チップ上に配置される、請求項1に記載のマルチプロセッサシステム。
  8. 前記下位レベルキャッシュは、L2キャッシュであり、
    前記複数の上位レベルキャッシュの各々は、L1キャッシュである、請求項1に記載のマルチプロセッサシステム。
  9. 前記複数の上位レベルキャッシュは、ライトスルーキャッシュとして組織化され、その結果、該複数の上位レベルキャッシュに対するアップデートは、直ちに前記下位レベルキャッシュへライトスルーされる、請求項1に記載のマルチプロセッサシステム。
  10. 同一のサイクル内の多重キャッシュライン無効化をサポートするキャッシュであって、
    コードおよび/またはデータを格納するための複数のキャッシュラインであって、該複 数のキャッシュラインの各々は、該キャッシュラインを無効化するために利用され得る有効ビットを含む、複数のキャッシュラインと、
    複数のキャッシュラインに対して有効ビットを格納するためのメモリであって、該メモリは複数のバンクへ組織化され、各バンクは、多重無効化が並行に発生し得るように、専用の無効信号を受信する、メモリと
    を含む、キャッシュ。
  11. 各バンクは、第1のポートおよび第2のポートを含み、該第1のポートは、該バンク内の第1の位置から読み出す、または、該バンクの第1の位置に書き込むために利用され得る一方で、該第2のポートは、該バンクの第2の位置を無効化するために利用される、請求項10に記載のキャッシュ。
  12. 前記第2のポートのワードラインにより、メモリエレメントは、該メモリエレメントをビットラインに接続することなしにリセットされる、請求項11に記載のキャッシュ。
  13. 前記キャッシュは、L2キャッシュから無効信号を受信するL1キャッシュである、請求項10に記載のキャッシュ。
  14. 前記L2キャッシュは、多重同時操作をサポートするために、並行にアクセスされ得る複数のL2バンクを含み、
    有効ビットを含む各バンクは、関連するL2バンクに配線接続され、その結果、L1キャッシュは、該L2キャッシュから多重同時無効信号を受信し得る、請求項13に記載のキャッシュ。
  15. バンクは、バンクの第2のポートに対してワードラインを選択する専用のデコーダを含み、
    複数のバンクは、該複数のバンクの前記第1のポートを介して単一のワードラインを選択する単一のデコーダを共用する、請求項11に記載のキャッシュ。
  16. 前記キャッシュにより受信される所与の無効信号は、
    該キャッシュで無効化されるべきラインのセット位置と、
    該キャッシュで無効化されるべき該ラインのウェイ位置と
    を含む、請求項10に記載のキャッシュ
  17. 同一サイクル内の多重キャッシュライン無効化を実行する方法であって、該方法は、複数のプロセッサと、下位レベルキャッシュと、該複数のプロセッサに接続される複数の上位レベルキャッシュとを含むシステムにおいて作動し、該複数の上位レベルキャッシュは、該下位レベルキャッシュを介してメモリアクセスを実行するように構成され、該方法は、
    該下位レベルキャッシュから、上位レベルキャッシュにおいて多重無効信号を受信することであって、該多重無効信号は、該下位レベルキャッシュの多重同時操作によって発生する、ことと、
    上位レベルキャッシュ内で同時に多重エントリを無効化するために、多重無効化を同時に実行すること
    を含み、
    該下位レベルキャッシュは、該多重同時操作をサポートするために、並行にアクセスされ得る複数のバンクを含み、
    該上位レベルキャッシュの各ラインは、該ラインを無効化するために利用され得る有効ビットを含み、
    該上位レベルキャッシュに対する該有効ビットは、該下位レベルキャッシュの該複数のバンクと関連する複数のバンクへ組織化されるメモリに含まれ、
    有効ビットを含む各バンクは、該下位レベルキャッシュの関連するバンクに配線接続され、その結果、該上位レベルキャッシュは、該下位レベルキャッシュから、多重同時無効信号を受信し得る、方法。
  18. 多重無効化操作が前記上位レベルキャッシュで実行されるのと同時に、該上位レベルキャッシュで読み出し、または、書き込み操作を実行することをさらに含む、請求項17に記載の方法。
  19. 無効化を実行することは、メモリエレメントをビットラインに接続することなく、該メモリエレメントをリセットする該メモリエレメントのワードラインをアサートすることを含む、請求項17に記載の方法。
  20. 無効信号を受信することは、
    前記上位レベルキャッシュで無効化されるべきラインのセット位置と、
    該上位レベルキャッシュで無効化されるべき該ラインのウェイ位置と
    を受信することを含む、請求項17に記載の方法。
  21. 前記下位レベルキャッシュは、L2キャッシュであり、
    前記複数の上位レベルキャッシュの各々は、L1キャッシュである、請求項17に記載の方法。
  22. 前記複数の上位レベルキャッシュは、ライトスルーキャッシュとして組織化され、その結果、該複数の上位レベルキャッシュに対するアップデートは、直ちに前記下位レベルキャッシュへライトスルーされる、請求項17に記載の方法。
JP2002582367A 2001-04-11 2002-04-11 サイクルあたりの多重キャッシュライン無効化をサポートするための方法および装置 Expired - Lifetime JP4041402B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US28325201P 2001-04-11 2001-04-11
US10/061,493 US6701417B2 (en) 2001-04-11 2002-01-31 Method and apparatus for supporting multiple cache line invalidations per cycle
PCT/US2002/011561 WO2002084494A2 (en) 2001-04-11 2002-04-11 Method and apparatus for supporting multiple cache line invalidations per cycle

Publications (2)

Publication Number Publication Date
JP2004528647A JP2004528647A (ja) 2004-09-16
JP4041402B2 true JP4041402B2 (ja) 2008-01-30

Family

ID=26741128

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002582367A Expired - Lifetime JP4041402B2 (ja) 2001-04-11 2002-04-11 サイクルあたりの多重キャッシュライン無効化をサポートするための方法および装置

Country Status (7)

Country Link
US (1) US6701417B2 (ja)
EP (1) EP1377908B1 (ja)
JP (1) JP4041402B2 (ja)
KR (1) KR100828869B1 (ja)
DE (1) DE60204676T2 (ja)
TW (1) TW564351B (ja)
WO (1) WO2002084494A2 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100685095B1 (ko) * 2001-10-22 2007-02-22 엘지전자 주식회사 도킹 시스템과의 버스 연결을 위한 본체 시스템 및 그제어 방법
US6834327B2 (en) * 2002-02-08 2004-12-21 Hewlett-Packard Development Company, L.P. Multilevel cache system having unified cache tag memory
US6813694B2 (en) * 2002-08-08 2004-11-02 International Business Machines Corporation Local invalidation buses for a highly scalable shared cache memory hierarchy
US6826654B2 (en) * 2002-08-08 2004-11-30 International Business Machines Corporation Cache invalidation bus for a highly scalable shared cache memory hierarchy
US6826655B2 (en) * 2002-08-08 2004-11-30 International Business Machines Corporation Apparatus for imprecisely tracking cache line inclusivity of a higher level cache
US7669009B2 (en) * 2004-09-23 2010-02-23 Intel Corporation Method and apparatus for run-ahead victim selection to reduce undesirable replacement behavior in inclusive caches
US7308557B2 (en) * 2005-02-09 2007-12-11 International Business Machines Corporation Method and apparatus for invalidating entries within a translation control entry (TCE) cache
US7716377B2 (en) * 2005-05-25 2010-05-11 Harris Steven T Clustering server providing virtual machine data sharing
US8904115B2 (en) * 2010-09-28 2014-12-02 Texas Instruments Incorporated Cache with multiple access pipelines
US10387314B2 (en) * 2015-08-25 2019-08-20 Oracle International Corporation Reducing cache coherence directory bandwidth by aggregating victimization requests
US9720834B2 (en) * 2015-12-11 2017-08-01 Oracle International Corporation Power saving for reverse directory
US10262721B2 (en) * 2016-03-10 2019-04-16 Micron Technology, Inc. Apparatuses and methods for cache invalidate
US10102000B2 (en) * 2016-04-01 2018-10-16 Intel Corporation Apparatus and method for non-serializing split locks
US11556477B2 (en) * 2018-06-15 2023-01-17 Arteris, Inc. System and method for configurable cache IP with flushable address range
US11947456B2 (en) * 2021-09-30 2024-04-02 Advanced Micro Devices, Inc. Weak cache line invalidation requests for speculatively executing instructions

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0512117A (ja) 1991-07-04 1993-01-22 Toshiba Corp キヤツシユ一致化方式
US5553263A (en) 1993-07-16 1996-09-03 Unisys Corporation Cache memory system with fault tolerance having concurrently operational cache controllers processing disjoint groups of memory
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
JP3872118B2 (ja) 1995-03-20 2007-01-24 富士通株式会社 キャッシュコヒーレンス装置
JPH1153260A (ja) 1997-08-06 1999-02-26 Nec Corp キャッシュメモリー内蔵半導体装置
US6122709A (en) 1997-12-19 2000-09-19 Sun Microsystems, Inc. Cache with reduced tag information storage
US6178484B1 (en) * 1998-02-17 2001-01-23 International Business Machines Corporation DCBST with ICBI mechanism to maintain coherency of bifurcated data and instruction caches
US6151655A (en) * 1998-04-30 2000-11-21 International Business Machines Corporation Computer system deadlock request resolution using timed pulses
US6349363B2 (en) * 1998-12-08 2002-02-19 Intel Corporation Multi-section cache with different attributes for each section
US6338119B1 (en) * 1999-03-31 2002-01-08 International Business Machines Corporation Method and apparatus with page buffer and I/O page kill definition for improved DMA and L1/L2 cache performance
US6725334B2 (en) * 2000-06-09 2004-04-20 Hewlett-Packard Development Company, L.P. Method and system for exclusive two-level caching in a chip-multiprocessor

Also Published As

Publication number Publication date
WO2002084494A3 (en) 2003-03-20
KR20040032095A (ko) 2004-04-14
DE60204676T2 (de) 2006-05-11
KR100828869B1 (ko) 2008-05-09
US20020152359A1 (en) 2002-10-17
JP2004528647A (ja) 2004-09-16
EP1377908A2 (en) 2004-01-07
US6701417B2 (en) 2004-03-02
WO2002084494A2 (en) 2002-10-24
TW564351B (en) 2003-12-01
EP1377908B1 (en) 2005-06-15
DE60204676D1 (de) 2005-07-21

Similar Documents

Publication Publication Date Title
US6801984B2 (en) Imprecise snooping based invalidation mechanism
US6757784B2 (en) Hiding refresh of memory and refresh-hidden memory
US5559986A (en) Interleaved cache for multiple accesses per clock cycle in a microprocessor
US6289420B1 (en) System and method for increasing the snoop bandwidth to cache tags in a multiport cache memory subsystem
JP4041402B2 (ja) サイクルあたりの多重キャッシュライン無効化をサポートするための方法および装置
US6192458B1 (en) High performance cache directory addressing scheme for variable cache sizes utilizing associativity
JP4447580B2 (ja) 分散共有メモリマルチプロセッサシステムのための分割疎ディレクトリ
US20080270708A1 (en) System and Method for Achieving Cache Coherency Within Multiprocessor Computer System
JPH10133947A (ja) 統合されたプロセッサ・メモリ装置
JPH04233048A (ja) 多重レベルキャッシュの制御方法及び装置
JPH11232173A (ja) ローカルメモリに組み込んでいるリモートキャッシュとcc−NUMA(キャッシュ整合型の不均一メモリアクセス)アーキテクチュアを有するデータ処理システム
JP2000298659A (ja) コンプリート・アンド・コンサイス・リモート(ccr)ディレクトリ
US8621152B1 (en) Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access
JPH08235052A (ja) ディレクトリ内にアドレス・タグを記憶するためのシステムおよび方法
JPH08235061A (ja) マルチプロセッサ・データ処理システム
JP2004054931A (ja) 分散メモリマルチプロセッサシステムにおけるメモリ移行のためのシステムおよび方法
JP4162493B2 (ja) 下位レベルのキャッシュを含むアクセスを促進するためのリバースディレクトリ
US5761714A (en) Single-cycle multi-accessible interleaved cache
US6857051B2 (en) Method and apparatus for maintaining cache coherence in a computer system
JP3732397B2 (ja) キャッシュシステム
JPH10301850A (ja) データ処理システム内のキャッシュ・コヒーレンシを維持するためにセクタ化キャッシュ・メモリに疑似精密包含方式を設ける方法及びシステム
US6813694B2 (en) Local invalidation buses for a highly scalable shared cache memory hierarchy
US20080104333A1 (en) Tracking of higher-level cache contents in a lower-level cache
US6826655B2 (en) Apparatus for imprecisely tracking cache line inclusivity of a higher level cache
JP3293872B2 (ja) キャッシュ一致化方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050328

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070724

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070803

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071023

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20071105

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071109

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

Free format text: PAYMENT UNTIL: 20101116

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4041402

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20111116

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20111116

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121116

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20121116

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20131116

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term