JP2008512772A - キャッシュ競合の解決 - Google Patents

キャッシュ競合の解決 Download PDF

Info

Publication number
JP2008512772A
JP2008512772A JP2007531199A JP2007531199A JP2008512772A JP 2008512772 A JP2008512772 A JP 2008512772A JP 2007531199 A JP2007531199 A JP 2007531199A JP 2007531199 A JP2007531199 A JP 2007531199A JP 2008512772 A JP2008512772 A JP 2008512772A
Authority
JP
Japan
Prior art keywords
processor
cache
core
line
access
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
JP2007531199A
Other languages
English (en)
Inventor
ギルバート,ジェフリー
ツァイ,ジョン−ニン
リュー,イェン−チェン
シストラ,クリシュナカント
Original Assignee
インテル コーポレイション
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 インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2008512772A publication Critical patent/JP2008512772A/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/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • 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

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

マイクロプロセッサ内及び/又はコンピュータ・システム内のキャッシュ競合の防止。特に、本発明の実施例は、特定のキャッシュ又はキャッシュ群へいくつかのアクセスを行い得るプロセッサ内及び/又はコンピュータ・システム内のキャッシュ・アクセス競合を管理するための手法に関する。

Description

本発明の実施例は、マイクロプロセッサ及びマイクロプロセッサ・システムに関する。特に、本発明の実施例は、同じキャッシュ又はキャッシュ群へのいくつかのアクセスが生じるプロセッサ又はコンピュータ・システム内のキャッシュ・アクセス競合の解決に関する。
従来技術のプロセッサ及びコンピュータ・システムは、同時に管理可能な特定のキャッシュ又はキャッシュ群へのアクセスの数において制限され得る。この課題に対処するのに用いられる従来技術手法の1つは、1つ又は複数のプロセッサのコア特有のキャッシュ(レベル1(L1)キャッシュなど)のキャッシュ・エントリにキャッシュ・エントリが対応する包含的なキャッシュ構造を用いることである。すなわち、従来技術のマルチコア・プロセッサ、及び/又はマルチプロセッサ・コンピュータ・システムは、共有された包含的なキャッシュ構造(最終レベル・キャッシュ(LLC)など。包含的なキャッシュ構造が対応するプロセッサ・コア又はエージェントのキャッシュ・エントリの全てを含んでいる)にキャッシュ・アクセスの一部を単に導くことによってコア・キャッシュ内のキャッシュ・アクセス競合を削減しようとしてきた。しかし、マルチコア・プロセッサ内のコアからのキャッシュ・アクセスの場合、コアは通常、それ自身のキャッシュからまずデータをアクセスし、次いで、共有キャッシュに頼ろうとする。共有された包含的なキャッシュ構造は、過剰なキャッシュ・アクセスからコア・キャッシュを、よって、他のエージェントからバス・トラフィックを、コアのキャッシュの代わりに包含的なキャッシュから前述のエージェントに要求データを供給することによって遮蔽するので、場合によっては「キャッシュ・フィルタ」と呼ばれる。
種々のエージェントからのキャッシュ要求を処理するためにキャッシュ構造(LLCなど)を用いる従来技術手法は、例えば、特定のプロセッサ・コアによってデータが排他的に所有又は修正されない場合、プロセッサ・コアのキャッシュに頼ることなく必要なデータを要求エージェントが得ることを可能にする一助となる。エージェント(プロセッサやプロセッサ・コアなど)が、要求エージェントがアクセスしようとしている、そのキャッシュのキャッシュ線を所有している範囲で、キャッシュ構造(LLCなど)によって、要求エージェントが、所有しているエージェントがデータを共有するのを待つのではなく、要求しているデータを得ることが可能になる。
しかし、LLCを用いてキャッシュ要求を処理する場合、他の競合が生じ得る。例えば、図1は、アクセスされた線のLLCからの立ち退きの間にLLCの同じキャッシュ線をアクセスしようとする2つのコアを示す。特に、コア1が新たなデータのライトバックを起動させている間、コア0は、コア1のキャッシュ内の線への(LLCスヌープを介した)コア・キャッシュ要求を、その線がLLCから立ち退かされている時点とほぼ同時点で起動させている。この場合、コア0は、コア1からのライトバックが行われる前にコア0の要求が行われた場合、誤ったデータをLLCから取り出し得る。特定の場合、コア0のコア要求を満たすために、スヌープをLLCによってコア1のキャッシュに行う必要があり得る(「クロス・スヌープ」)。これによって、コア0の要求と、コア1への、LLCのクロス・スヌープと、LLCの立ち退きと、LLCへの、更新データのコア1のライトバックとの間で4重競合が生じる。
図1に表した従来技術の問題点は、プロセッサ・コアやその他のバス・エージェントの数がシステムにおいて増加するにつれ、悪化する。例えば、図1に表す競合は、図1に示す2つのコアの代わりに4つのコアを含むマルチコア・プロセッサにおいては倍増し得る。同様に、プロセッサ数がコンピュータ・システムにおいて増加するにつれ、何れかの特定のコア・キャッシュへのアクセスの数も増加する。それによって、LLC立ち退きの間に生じ得る競合の数が増加する。
キャッシュ競合(図1に表したキャッシュ競合など)は、プロセッサ性能に不利な影響を与え得る。要求エージェントは、LLC立ち退き及び対応するライトバックの完了を待つか、又は競合の結果、誤ったデータの取り出しを検出し、そうした取り出しから回復するからである。よって、特定のキャッシュ構造にアクセスすることができるエージェントの数は、従来技術のプロセッサ及び/又はコンピュータ・システムにおいて制限され得る。
本発明の実施例は、マイクロプロセッサ内及び/又はコンピュータ・システム内のキャッシュ・アーキテクチャに関する。特に、本発明の実施例は、特定のキャッシュ又はキャッシュ群へいくつかのアクセスを行い得るプロセッサ内及び/又はコンピュータ・システム内のキャッシュ・アクセス競合を管理するための手法に関する。
本発明は、限定としてではなく例として添付図面の図に示す。同様な参照符号は同様な構成要素を示す。
本明細書には、同じキャッシュ線をいくつかの要求エージェントがアクセスしようとする場合の競合の解決及び回避をはじめとする、マルチプロセッサ内及び/又はマルチコア・コンピュータ・システム内の従来技術のキャッシュ手法に関連した課題を解決するための、本発明の種々の実施例を記載している。本発明の少なくとも1つの実施例では、関連したキャッシュ(レベル1(L1)キャッシュなど)を有するいくつかのプロセッサ又はプロセッサ・コアとともに、包含的なキャッシュ構造(最終レベル・キャッシュ(LLC)など)を用いる。包含的なキャッシュ構造(LLCなど)は、包含的なキャッシュ構造が対応する他のキャッシュと少なくとも同じデータを含む構造を含む。包含的なキャッシュ構造と、対応するコア及び/プロセッサ・キャッシュとの間のコヒーレンスを維持することによって、対応するコア/プロセッサ・キャッシュへのアクセスは、包含的なキャッシュによって処理される。それによって、対応するコア/プロセッサへのバス・トラフィックが削減され、コア/プロセッサに余裕が与えられる。
包含的なキャッシュ構造が用いられる本発明の実施例は、包含的なキャッシュ構造内の同じキャッシュ線をいくつかのプロセッサ及び/又はプロセッサ・コアがアクセスしようとする場合に生じ得る競合の数及び/又はタイプを削減又は軽減することも可能である。例えば、本発明の少なくとも1つの実施例は、コア・キャッシュとして立ち退かされており、立ち退かされており、かつ同じ組へのLLCへの別のフィルの結果である、包含的キャッシュ構造内(LLC内など)の線への、マルチプロセッサ・システム内のプロセッサからの、かつ/又はマルチコア・プロセッサ内のコアからのキャッシュ要求、及び線が対応する、立ち退かされているコアからのライトバックによってもたらされるキャッシュ競合を軽減する。更に、少なくとも1つの実施例は、フィルされている、共有された包含的キャッシュ内(LLC内など)の線への、マルチプロセッサ・システム内のプロセッサからの、かつ/又はマルチコア・プロセッサ内のコアからのキャッシュ要求、及び結果として生じる、共有された包含的キャッシュの線の立ち退きによってもたらされるキャッシュ競合を軽減する。他の実施例は、種々の要求エージェントから、立ち退かされた包含的なキャッシュ線への複数アクセスから生じる他の競合を解決することができる。
図2は、立ち退かされた包含的なキャッシュ線へのいくつかのアクセス間の競合を解決する、本発明の一実施例によるキャッシュ・ブリッジ・アーキテクチャを示す。特に、図2のキャッシュ・ブリッジ・アーキテクチャは、コンピュータ・システム相互接続インタフェース205(フロントサイド・バス・インタフェースやポイントツーポイント・インタフェースなど)を介して外部エージェントによってアクセスすることができるLLC201を示す。更に、LLCは、コア0(210)及び/又はコア1(215)によってコア相互接続インタフェース213及び217それぞれを介してアクセスすることができる。キャッシュ・ブリッジ・スケジューリング及びオーダリング(CBSO)ロジック220は、本発明の少なくとも1つの実施例において、外部エージェント及び/又はコア・エージェントによって行われる、LLCへのアクセスに対応するコマンド、アドレス、及び/又はデータを記憶するのに用いることが可能な内部要求キュー225及び外部要求キュー230それぞれを用いて、外部エージェント及びコア・エージェントからのLLCへのアクセスを管理する。
本発明の少なくとも1つの実施例では、CBSOロジックを用いて、LLCルックアップ、LLCキャッシュ立ち退き、LLC線のフィル、及びクロス・スヌープ、のトランザクションをはじめとするいくつかのトランザクションから生じる競合を管理し、解決することができる。
LLCルックアップには通常、所望のキャッシュ線を読み取るか、そうしたキャッシュ線の所有権を得るためにLLCにアクセスするコアからの読み取り、及び所有権のための読み取りのトランザクションが関係する。LLCルックアップがミスをもたらした場合、コンピュ―タ・システム相互接続インタフェースに対応する外部要求キューに要求を割り当てることができる。しかし、LLCルックアップがヒットをもたらしており、対応するLLC線が、別のコア又はプロセッサによって排他的に所有されるものでない場合、要求を完了し、要求しているコアにデータを戻すことが可能である。要求エージェントからの特定のコアへのアクセスは、LLCの要求線を別のコアが排他的に所有しているか否かのレコードを保持することによって削減することができる。レコードは、プロセッサ内のコアの数に対応する、レジスタ内のビット数であり得る。各ビットは、対応するコア/プロセッサが、要求LLC線を所有しているか否かを示している。しかし、レコードは他のやり方で実現することができる。
LLC立ち退きには、LLCキャッシュ線を入れ替えるために1つ又は複数のコア若しくはプロセッサへのスヌープ(「バック・スヌープ」)が必要であり得る。バック・スヌープが複数のコア又はプロセッサに送出された場合、バック・スヌープを1つ又は複数のコア/プロセッサが受信しない状態が存在し得る。よって、協業が生じ得る。
LLCへのフィルは通常、元の要求がLLCをミスした場合に、コア又はプロセッサがデータをLLCに書き込むことによって生じる。メモリ・エージェント(ダイ上のメモリ・コントローラ又はダイ外のメモリ・コントローラであり得る)から、新たなデータ及びコヒーレンス状態を得ることが可能である。要求しているコアに新たなデータ及びコヒーレンス状態を戻した後、この線はLLCにフィルインされる。フィルが行われているキャッシュ組が満杯の場合、LLCからの立ち退きが行われる。この立ち退きは、LLCにおける容量の制約によってもたらされるので「容量立ち退き」と、場合によっては呼ばれている。フィルは、フィルする対象のLLC線が対応するコアに応じて、マルチコア・プロセッサ内のコアからのものであり得る。更に、本発明の一実施例では、フィルされたLLC線は、いくつかの所有状態(共有、排他的や修正など)にあり得る。特定のマルチコア・プロセッサでは、LLCコヒーレンシ状態は、マルチコア・プロセッサの外部のエージェントへキャッシュ線の状態を示すのに対してコアにキャッシュ線の状態を示すための拡張状態を含み得る。例えば、特定の実施例では、LLCコヒーレンシ状態ESは、フィルされたLLC線が共有されている旨を他のコアに示す一方で、フィルされたLLC線が特定のコアによって排他的に所有されている旨を、マルチコア・プロセッサの外部のエージェントに示す。同様に、MSコヒーレンシ状態は、LLC線が共有されている旨をコアに示す一方で、LLC線が修正されていることを外部エージェントに示し得る。
LLC線が別のコア又はエージェントによって所有されていることを、コアや他のエージェントからの所有要求が判定する場合に、LLCへのクロス・スヌープ・トランザクションが通常、生じる。この場合、所有を要求するコア/エージェントは、線を所有しているコア/エージェントへのスヌープ(「クロス・スヌープ」)を行う。これにより、用いられる特定のコヒーレンシ・プロトコルに応じて線状態が「排他的」から「無効」又は「共有」に変動し得る。
前述のトランザクション(バック・スヌープ、クロス・スヌープ、読み取り及び立ち退き)の何れかがほぼ同時に起こる場合、プロセッサ及び/又はシステムの性能に不利な影響を及ぼす競合が生じ得る。よって、本発明の一実施例は、前述のトランザクションのうちの2つの間の競合を防止するか、又は少なくとも管理する(「2重競合」管理)。更に、本発明の別の実施例は、前述のトランザクションのうちの3つの間の競合を防止するか、又は少なくとも管理する(「3重競合」管理)。
本発明の一実施例では、CBSOロジックは、LLCから立ち退かされている線へのコア・エージェント又は外部バス・エージェントからのLLCへのライトバックからもたらされる競合を管理又は防止する。立ち退かされている同じLLC線にライトバックが行われている場合、ライトバックを行っているコア又はエージェントとは別のコア又はエージェントからバック・スヌープがデータを取り出していれば、立ち退きから生じるバック・スヌープとライトバック処理との間で競合が生じ得る。競合によって、誤ったデータが、立ち退かされたLLC線に書き込まれることになり得る。
別の実施例では、CBSOロジックは、図2のコンピュータ・システム・インタフェース上のエージェントからのLLC線へのスヌープ、コアからのLLC線へのライトバック、及びラインをフィルするためのLLCバック・スヌープから生じる競合を管理又は防止する。バック・スヌープ及びライトバックが行われている同じLLC線に外部スヌープが行われる場合、外部エージェントは、誤ったデータを取り出しかねない。LLC線は、コアからのライトバック、又はバック・スヌープから生じるコアからのデータによってフィルすることが可能であるからである。
図3は、本発明の一実施例による、通常のクロス・スヌープ・トランザクションに関連した処理を示す状態図である。アイドル状態301から、LLCへの読み取りトランザクション(マルチコア・プロセッサ内のコアからなど)によって、状態図が保留状態303に遷移する。要求エージェントに線を付与することが可能になった時点で状態はルックアップ状態305に変わる。ルックアップ状態の間、LLCは、要求された線のコヒーレンシ状態(別のコアが現在、要求された線を所有している旨を示し得る)を、要求しているコアに戻す。LLC内の要求された線を別のコアが所有している場合、状態308で、別のコア又はエージェントへのLLCからのクロス・スヌープが起動される。肯定応答が、クロス・スヌープを起動させる対象のコアから送出された後、状態310で、クロス・スヌープが発行される。クロス・スヌープ・データがコアから取り出された後、状態313で、クロス・スヌープは完了し、状態315で、クロス・スヌープ・データは要求しているコアに供給される。状態320で、LLCはクロス・スヌープ・データによって更新され、アイドル状態に戻される。
状態308乃至320の間、クロス・スヌープは、要求が対応するLLCの立ち退きから生じる処理との競合を受け得る。クロス・スヌープと競合し得る、LLC立ち退きから生じる処理の1つは、立ち退かされたLLC線が対応するコアからのライトバックである。LLC内の立ち退かされた線にライトバックをそこから行うそのコアへのクロス・スヌープを読み取り要求がもたらす場合に別の競合が生じ得る。クロス・スヌープの前にライトバックが行われた場合、間違ったデータが、要求しているコア又はエージェントに戻され得る。更に、立ち退き、クロス・スヌープ及びライトバックと同じLLCアドレスを伴う外部スヌープがLLCにほぼ同時に行われる場合に競合が生じ得る。
本発明の一実施例では、LLCにおいて要求が行われる対象の線のコヒーレンス情報を一時的な記憶場所に複製し、後のトランザクション(「アトミック」)に線が無効に見えるように、対応するLLC線を無効にし、それによって、要求から生じるクロス・スヌープとトランザクションが競合することになり得る、LLC線の立ち退きがないようにすることによって、前述の競合がないようにすることが可能である。読み取り要求を受信した後にLLC線コヒーレンシ情報を記憶することによって、結果として生じるクロス・スヌープによって、最新のデータを要求者に供給することが保証される。更に、LLC線をアトミックに無効にすることによって、LLCの立ち退きが、後のトランザクションによって回避され、したがって、LLC線への競合LLC立ち退きは何ら生じないことになる。
要求されたデータを要求者に供給した後、データ及びコヒーレンシ情報を、無効化LLC線に記憶して包含を維持することができる。別の実施例では、一機構を用いて、LLCへのアクセスがクロス・スヌープをもたらさないようにし得るトランザクションを何れも取り消すことができる。この状態は、例えば、LLC線への読み取りの後にLLC線へのライトバックが行われる場合に生じ得る。
図4は、本発明の一実施例に関係した処理を示す流れ図である。処理401では、コア・キャッシュ線への読み取り要求が検出され、対応するコア・キャッシュへの読み取り要求から「ミス」が生じた場合に、それに応じて、対応するLLC線がアクセスされる。処理405では、LLC線のコヒーレンシ状態情報が保存される。一実施例では、コヒーレンシ状態データが、図2のCBSOロジック内のレジスタに保存される。他の実施例では、コヒーレンシ情報は、メモリ又は特定の他の記憶構造に保存することができる。コヒーレンシ状態情報が保存された後、要求がクロス・スヌープをもたらすことになり、CBSOロジックによって取り消し信号が何ら検出されなかった場合に、LLC線が無効にされていると後のトランザクションがみなすことになるようにLLC内の対応する線が処理410でアトミックに無効にされる。処理415で、適切なコア又はプロセッサへのLLCによるクロス・スヌープによって、要求されたデータがコア又はプロセッサから、要求エージェントに戻されることになる。
本発明の一実施例では、図4に示す処理の少なくとも一部は、図2のCBSOロジックによって行われる。別の実施例では、処理は、他の手段(ソフトウェアなど)、又は、図2のキャッシュ・ブリッジ・アーキテクチャ内の特定の他のロジックによって行うことができる。
図5は、本発明の一実施例を用い得るフロントサイドバス(FSB)コンピュータ・システムを示す。プロセッサ505が、レベル1(L1)キャッシュ・メモリ510及び主メモリ515からデータをアクセスする。本発明の他の実施例では、キャッシュ・メモリは、コンピュータ・システム・メモリ階層内のレベル2(L2)キャッシュや他のメモリであり得る。更に、特定の実施例では、図5のコンピュータ・システムは、コヒーレンシ・データがL1キャッシュとL2キャッシュとの間で共有される包含的なキャッシュ階層を備えるL1キャッシュ及びL2キャッシュを含み得る。
図5のプロセッサ内には、本発明の一実施例506を示す。特定の実施例では、図5のプロセッサはマルチコア・プロセッサであり得る。
種々のメモリ・ソース(動的ランダムアクセス・メモリ(DRAM)、ハード・ディスク・ドライブ(HDD)520など)、又は種々の記憶装置及び技術を含む、ネットワーク・インタフェース530を介してコンピュータ・システムから離れた場所にあるメモリ・ソースにおいて実現することができる。キャッシュ・メモリは、プロセッサ内、又はプロセッサ近接(プロセッサの局所バス507上)にあり得る。更に、キャッシュ・メモリは、速度が比較的高いメモリ・セル(6トランジスタ型(6T)のセルなど)や、アクセス速度がほぼ等しいか、又は更に高い他のメモリ・セルを含み得る。
図5のコンピュータ・システムは、ポイントツ―ポイント・ネットワーク(PtP)上の各エージェントに特化したバス信号を介して通信するバス・エージェント(マイクロプロセッサなど)から成るPtPであり得る。記憶処理をバス・エージェント間で迅速に促進することが可能であるように、本発明の少なくとも一実施例506が、各バス・エージェント内にあるか、又は各バス・エージェントに少なくとも関係付けられている。
図6は、ポイントツーポイント(PtP)構成に配置されたコンピュータ・システムを示す。特に、図6は、プロセッサ、メモリ、及び入出力装置が、いくつかのポイントツーポイント・インタフェースによって相互接続されるシステムを示す。
図6のシステムは、いくつかのプロセッサ(明瞭にするためにこのうち、2つのプロセッサ(プロセッサ670、680)のみを示している)も含み得る。プロセッサ670、680はそれぞれ、メモリ62、64と接続するための局所メモリ・コントローラ・ハブ(MCH)672、682を含む。プロセッサ670、680は、ポイントツーポイント(PtP)インタフェース650を介してPtPインタフェース回路678、688を用いてデータを交換することができる。プロセッサ670、680はそれぞれ、ポイントツーポイント・インタフェース回路676、694、686、698を用いて個々のPtPインタフェース652、654を介してチップセット690とデータを交換することができる。チップセット690は、高性能グラフィックス・インタフェース639を介して高性能グラフィックス回路638とデータを交換することもできる。
本発明の少なくとも1つの実施例は、プロセッサ670内及びプロセッサ680内にあり得る。しかし、本発明の他の実施例は、図6のシステム内の他の回路内、ロジック・ユニット内、又はデバイス内に存在し得る。更に、本発明の他の実施例を、図6に示すいくつかの回路、ロジック・ユニット、又はデバイスにわたって分散させることができる。
本明細書記載の本発明の実施例は、相補性金属酸化膜半導体デバイス若しくは「ハードウェア」を用いた回路によって、又は、マシン(プロセッサなど)によって実行されると、本発明の実施例に関連した処理を行う、媒体に記憶された命令組、若しくは「ソフトウェア」を用いて実現することができる。あるいは、本発明の実施例は、ハードウェア及びソフトウェアの組み合わせを用いて実現することができる。
例証的な実施例を参照して本発明を説明したが、この説明は、限定的な意味合いで解されることを意図するものでない。本発明が関係する当該技術分野における当業者に明らかである例証的な実施例の種々の修正及びその他の実施例は、本発明の趣旨及び範囲内に収まるものと認められる。
従来技術のプロセッサ又はコンピュータ・システムにおける同じキャッシュ線へのいくつかのアクセス間の競合を示す図である。 本発明の一実施例によるキャッシュ・ブリッジ・アーキテクチャを示す図である。 本発明の一実施例に関して用いるプロセッサのクロス・スヌープ状態マシンを示す図である。 本発明の少なくとも1つの実施例とともに用いる処理を示す流れ図である。 本発明の少なくとも1つの実施例を用い得るフロントサイドバスを示す図である。 本発明の少なくとも1つの実施例を用い得るポイントツーポイント・コンピュータ・システムを示す図である。

Claims (29)

  1. 装置であって、
    第1のキャッシュ線への読み取りアクセスと、前記第1のキャッシュ線へのライトバック・アクセスとの間のキャッシュ・アクセス競合を防止するためのオーダリング・ロジックを備える装置。
  2. 請求項1記載の装置であって、キャッシュ線が、共有された包含的キャッシュ・メモリ内にある装置。
  3. 請求項1記載の装置であって、前記第1のキャッシュ線への読み取りアクセスが、共有された包含的キャッシュ・メモリからコア・キャッシュ・メモリへのクロス・スヌープ・アクセスである装置。
  4. 請求項1記載の装置であって、前記第1のキャッシュ線への、キャッシュ線のフィルが、共有された包含的キャッシュ・メモリ内のキャッシュ線の立ち退きをもたらす装置。
  5. 請求項1記載の装置であって、前記読み取りアクセスが、マルチコア・プロセッサ内の第1のコアからであり、前記ライトバック・アクセスが、前記マルチコア・プロセサ内の第2のコアからである装置。
  6. 請求項1記載の装置であって、前記読み取りアクセスが、マルチプロセッサ・システム内の第1のプロセッサからであり、ライトバックが、前記マルチコア・プロセサ内の第1のコアからである装置。
  7. 請求項1記載の装置であって、前記第1のキャッシュ線に関するコヒーレンシ状態情報を前記読み取りアクセスに応じて一時的に記憶するための記憶装置を更に備える装置。
  8. 請求項7記載の装置であって、前記コヒーレンシ状態情報は、前記読み取りアクセスの結果として前記第1のキャッシュ線がアトミックに無効にされている旨を示すための少なくとも一ビットを含む装置。
  9. システムであって、
    共有された包含的キャッシュを備える第1のプロセッサを備え、前記共有された包含的キャッシュは、前記第1のプロセッサ内の別のコアからのスヌープに応じて無効状態を有する第1のキャッシュ線を含み、前記無効状態は、前記第1のキャッシュ線が無効である旨を、読み取りアクセスの完了に先行してではあるが読み取りアクセスに後続してトランザクション全てに示すシステム。
  10. 請求項9記載のシステムであって、前記第1のキャッシュ線のコヒーレンシ情報を前記スヌープに応じて記憶するための記憶装置を備えるシステム。
  11. 請求項10記載のシステムであって、対応する少なくとも1つのコア・キャッシュをそれぞれが有する複数のプロセッサ・コアを備えるシステム。
  12. 請求項11記載のシステムであって、前記共有された包含的キャッシュが、前記対応する少なくとも1つのコア・キャッシュ内に記憶された同じデータを記憶するための最終レベル・キャッシュであるシステム。
  13. 請求項12記載のシステムであって、前記第1のプロセッサは、前記無効状態を設定し、前記スヌープに応じて前記コヒーレンシ情報を記憶するためのロジックを備えるシステム。
  14. 請求項13記載のシステムであって、前記第1のプロセッサは、前記複数のプロセッサ・コア及び第2のプロセッサとの間でのアクセスをそれぞれ記憶するための内部要求キュー及び外部要求キューを備えるシステム。
  15. 請求項14記載のシステムであって、前記第1のプロセッサ及び前記第2のプロセッサが、ポイントツーポイント相互接続を介して互いに結合されるシステム。
  16. 請求項14記載のシステムであって、前記第1のプロセッサ及び前記第2のプロセッサが、フロントサイドバス相互接続を介して互いに結合されるシステム。
  17. 方法であって、
    包含的キャッシュ構造の、同じ線への複数のアクセスを行う工程と、
    複数のプロセッサ・コアから前記線への前記複数のアクセス間の競合を防止する工程であって、前記複数のアクセスが、前記線の外部スヌープ、前記線の立ち退き、前記包含的キャッシュからのクロス・スヌープ、及び前記線へのライトバックから成る群のうちの何れか2つのトランザクションによってもたらされる工程とを備える方法。
  18. 請求項17記載の方法であって、前記防止する工程は、前記複数のアクセスのうちの1つに応じて前記線のコヒーレンシ情報を記憶する工程を備える方法。
  19. 請求項18記載の方法であって、前記防止する工程は、前記複数のアクセスのうちの1つに応じて前記線をアトミックに無効にする工程を更に備える方法。
  20. 請求項19記載の方法であって、前記複数のアクセスのうちの前記1つの完了に応じて前記線の前記コヒーレンシ情報を再記録する工程を更に備える方法。
  21. 請求項20記載の方法であって、前記複数のアクセスのうちの前記1つの完了に応じて前記線を有効状態に設定する工程を更に備える方法。
  22. プロセッサであって、
    第1のキャッシュ線への読み取りアクセスと、前記第1のキャッシュ線へのライトバック・アクセスとの間のキャッシュ・アクセス競合を防止する手段を備えるプロセッサ。
  23. 請求項22記載のプロセッサであって、前記キャッシュ線が、共有された包含的キャッシュ・メモリ内にあるプロセッサ。
  24. 請求項22記載のプロセッサであって、前記第1のキャッシュ線への前記読み取りアクセスが、共有された包含的キャッシュ・メモリからコア・キャッシュ・メモリへのクロス・スヌープ・アクセスであるプロセッサ。
  25. 請求項22記載のプロセッサであって、前記第1のキャッシュ線への、キャッシュ線のフィルが、共有された包含的キャッシュ・メモリ内のキャッシュ線の立ち退きをもたらすプロセッサ。
  26. 請求項22記載のプロセッサであって、前記読み取りアクセスが、マルチコア・プロセッサ内の第1のコアからであり、前記ライトバック・アクセスが、前記マルチコア・プロセッサ内の第2のコアからであるプロセッサ。
  27. 請求項22記載のプロセッサであって、前記読み取りアクセスが、マルチプロセッサ・システム内の第1のプロセッサからであり、ライトバックが、マルチコア・プロセッサ内の第1のコアからであるプロセッサ。
  28. 請求項22記載のプロセッサであって、前記第1のキャッシュ線に関するコヒーレンシ状態情報を前記読み取りアクセスに応じて一時的に記憶するための記憶装置を更に備えるプロセッサ。
  29. 請求項28記載のプロセッサであって、前記コヒーレンシ状態情報は、前記読み取りアクセスの結果として前記第1のキャッシュ線がアトミックに無効にされている旨を示すための少なくとも一ビットを含むプロセッサ。
JP2007531199A 2004-09-09 2005-08-26 キャッシュ競合の解決 Pending JP2008512772A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US93797304A 2004-09-09 2004-09-09
PCT/US2005/030444 WO2006031414A2 (en) 2004-09-09 2005-08-26 Resolving cache conflicts

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2011145496A Division JP5535991B2 (ja) 2004-09-09 2011-06-30 キャッシュ競合の解決

Publications (1)

Publication Number Publication Date
JP2008512772A true JP2008512772A (ja) 2008-04-24

Family

ID=35478629

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2007531199A Pending JP2008512772A (ja) 2004-09-09 2005-08-26 キャッシュ競合の解決
JP2011145496A Expired - Fee Related JP5535991B2 (ja) 2004-09-09 2011-06-30 キャッシュ競合の解決
JP2014006733A Expired - Fee Related JP5714733B2 (ja) 2004-09-09 2014-01-17 キャッシュ競合の解決

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2011145496A Expired - Fee Related JP5535991B2 (ja) 2004-09-09 2011-06-30 キャッシュ競合の解決
JP2014006733A Expired - Fee Related JP5714733B2 (ja) 2004-09-09 2014-01-17 キャッシュ競合の解決

Country Status (5)

Country Link
US (2) US9727468B2 (ja)
JP (3) JP2008512772A (ja)
CN (3) CN101425042B (ja)
DE (1) DE112005002180T5 (ja)
WO (1) WO2006031414A2 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10031848B2 (en) * 2005-06-14 2018-07-24 Intel Corporation Method and apparatus for improving snooping performance in a multi-core multi-processor
US7962694B2 (en) * 2006-03-31 2011-06-14 Intel Corporation Partial way hint line replacement algorithm for a snoop filter
US7721050B2 (en) * 2006-06-30 2010-05-18 Intel Corporation Re-snoop for conflict resolution in a cache coherency protocol
US7536515B2 (en) * 2006-06-30 2009-05-19 Intel Corporation Repeated conflict acknowledgements in a cache coherency protocol
US7506108B2 (en) * 2006-06-30 2009-03-17 Intel Corporation Requester-generated forward for late conflicts in a cache coherency protocol
US20080109624A1 (en) * 2006-11-03 2008-05-08 Gilbert Jeffrey D Multiprocessor system with private memory sections
US7827357B2 (en) 2007-07-31 2010-11-02 Intel Corporation Providing an inclusive shared cache among multiple core-cache clusters
US7844779B2 (en) * 2007-12-13 2010-11-30 International Business Machines Corporation Method and system for intelligent and dynamic cache replacement management based on efficient use of cache for individual processor core
US7917699B2 (en) * 2007-12-21 2011-03-29 Mips Technologies, Inc. Apparatus and method for controlling the exclusivity mode of a level-two cache
US8015365B2 (en) * 2008-05-30 2011-09-06 Intel Corporation Reducing back invalidation transactions from a snoop filter
US20090300291A1 (en) * 2008-06-03 2009-12-03 Gerald Keith Bartley Implementing Cache Coherency and Reduced Latency Using Multiple Controllers for Memory System
US8250311B2 (en) * 2008-07-07 2012-08-21 Intel Corporation Satisfying memory ordering requirements between partial reads and non-snoop accesses
CN101739298B (zh) * 2008-11-27 2013-07-31 国际商业机器公司 共享缓存管理方法和系统
WO2014065879A1 (en) * 2012-10-22 2014-05-01 Venkatraman Iyer High performance interconnect physical layer
US10268583B2 (en) 2012-10-22 2019-04-23 Intel Corporation High performance interconnect coherence protocol resolving conflict based on home transaction identifier different from requester transaction identifier
US9563425B2 (en) 2012-11-28 2017-02-07 Intel Corporation Instruction and logic to provide pushing buffer copy and store functionality
CN104951240B (zh) * 2014-03-26 2018-08-24 阿里巴巴集团控股有限公司 一种数据处理方法及处理器
CN104035888B (zh) * 2014-06-11 2017-08-04 华为技术有限公司 一种缓存数据的方法及存储设备
US9892803B2 (en) 2014-09-18 2018-02-13 Via Alliance Semiconductor Co., Ltd Cache management request fusing
US10133670B2 (en) * 2014-12-27 2018-11-20 Intel Corporation Low overhead hierarchical connectivity of cache coherent agents to a coherent fabric
CN107870848B (zh) * 2016-09-23 2020-08-28 腾讯科技(深圳)有限公司 Cpu性能冲突的检测方法、装置和系统
GB2554442B (en) * 2016-09-28 2020-11-11 Advanced Risc Mach Ltd Apparatus and method for providing an atomic set of data accesses
CN112965668B (zh) * 2021-03-30 2022-04-29 上海芷锐电子科技有限公司 一种缓存数字电路处理请求冲突的方法
US20240069800A1 (en) * 2022-08-30 2024-02-29 Micron Technology, Inc. Host-preferred memory operation

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03214337A (ja) * 1990-01-19 1991-09-19 Nippon Telegr & Teleph Corp <Ntt> 密結合マルチプロセッサシステムにおけるキャッシュメモリ一致制御方法
JPH06110785A (ja) * 1992-09-28 1994-04-22 Nec Corp キャッシュメモリ同期方式
JPH06131263A (ja) * 1992-05-07 1994-05-13 Sun Microsyst Inc キャッシュメモリ構成体とその使用方法
JPH07325760A (ja) * 1994-06-01 1995-12-12 Fujitsu Ltd 情報処理システムにおける記憶制御方法および記憶制御装置
JPH10501914A (ja) * 1995-07-19 1998-02-17 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 共用キャッシュ・メモリ装置
JPH10105464A (ja) * 1996-04-08 1998-04-24 Sun Microsyst Inc マルチプロセッサ内の多数のキャッシュ用のキャッシュ・コヒーレンシ方式
JPH11328025A (ja) * 1998-02-17 1999-11-30 Internatl Business Mach Corp <Ibm> 厳密モ―ド及び非厳密モ―ドを有するホバ―リング(h)状態を含むキャッシュ・コヒ―レンシ・プロトコル
US6055605A (en) * 1997-10-24 2000-04-25 Compaq Computer Corporation Technique for reducing latency of inter-reference ordering using commit signals in a multiprocessor system having shared caches
JP2001188766A (ja) * 1999-12-23 2001-07-10 Korea Electronics Telecommun キャッシュ状態衝突を減少させるための装置及びその方法並びにディレクトリ基盤キャッシュ同一性メモリシステム
JP2002182976A (ja) * 2000-09-29 2002-06-28 Internatl Business Mach Corp <Ibm> マルチプロセッサ・システムにおけるメモリ・アクセスの動的直列化
WO2002093385A2 (en) * 2001-05-16 2002-11-21 Advanced Micro Devices, Inc. Method and system for speculatively invalidating lines in a cache
US20030159003A1 (en) * 2001-10-23 2003-08-21 Ip-First, Llc Associative cache memory with replacement way information integrated into directory
US20040039880A1 (en) * 2002-08-23 2004-02-26 Vladimir Pentkovski Method and apparatus for shared cache coherency for a chip multiprocessor or multiprocessor system

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06187239A (ja) 1992-12-18 1994-07-08 Nippon Telegr & Teleph Corp <Ntt> 多階層キャッシュメモリにおけるデータ一致制御方式
US5682516A (en) * 1994-03-01 1997-10-28 Intel Corporation Computer system that maintains system wide cache coherency during deferred communication transactions
US5623632A (en) * 1995-05-17 1997-04-22 International Business Machines Corporation System and method for improving multilevel cache performance in a multiprocessing system
US5802571A (en) * 1996-10-21 1998-09-01 International Business Machines Corporation Apparatus and method for enforcing data coherency in an information handling system having multiple hierarchical levels of cache memory
JP3210590B2 (ja) * 1996-11-29 2001-09-17 株式会社日立製作所 マルチプロセッサシステムおよびキャッシュコヒーレンシ制御方法
JPH1165929A (ja) * 1997-08-26 1999-03-09 Kofu Nippon Denki Kk バスブリッジ回路
US6314491B1 (en) 1999-03-01 2001-11-06 International Business Machines Corporation Peer-to-peer cache moves in a multiprocessor data processing system
JP2001034533A (ja) 1999-07-21 2001-02-09 Nec Kofu Ltd キャッシュコヒーレンシ制御装置、2次キャッシュメモリ、中央処理装置、マルチプロセッサシステム、プロセッサノード、キャッシュコヒーレンシ制御方法
US6587930B1 (en) * 1999-09-23 2003-07-01 International Business Machines Corporation Method and system for implementing remstat protocol under inclusion and non-inclusion of L1 data in L2 cache to prevent read-read deadlock
US20020169935A1 (en) 2001-05-10 2002-11-14 Krick Robert F. System of and method for memory arbitration using multiple queues
WO2003001383A2 (en) * 2001-06-26 2003-01-03 Sun Microsystems, Inc. Using an l2 directory to facilitate speculative loads in a multiprocessor system
US6954829B2 (en) 2002-12-19 2005-10-11 Intel Corporation Non-speculative distributed conflict resolution for a cache coherency protocol
US7284097B2 (en) * 2003-09-30 2007-10-16 International Business Machines Corporation Modified-invalid cache state to reduce cache-to-cache data transfer operations for speculatively-issued full cache line writes

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03214337A (ja) * 1990-01-19 1991-09-19 Nippon Telegr & Teleph Corp <Ntt> 密結合マルチプロセッサシステムにおけるキャッシュメモリ一致制御方法
JPH06131263A (ja) * 1992-05-07 1994-05-13 Sun Microsyst Inc キャッシュメモリ構成体とその使用方法
JPH06110785A (ja) * 1992-09-28 1994-04-22 Nec Corp キャッシュメモリ同期方式
JPH07325760A (ja) * 1994-06-01 1995-12-12 Fujitsu Ltd 情報処理システムにおける記憶制御方法および記憶制御装置
JPH10501914A (ja) * 1995-07-19 1998-02-17 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 共用キャッシュ・メモリ装置
JPH10105464A (ja) * 1996-04-08 1998-04-24 Sun Microsyst Inc マルチプロセッサ内の多数のキャッシュ用のキャッシュ・コヒーレンシ方式
US6055605A (en) * 1997-10-24 2000-04-25 Compaq Computer Corporation Technique for reducing latency of inter-reference ordering using commit signals in a multiprocessor system having shared caches
JPH11328025A (ja) * 1998-02-17 1999-11-30 Internatl Business Mach Corp <Ibm> 厳密モ―ド及び非厳密モ―ドを有するホバ―リング(h)状態を含むキャッシュ・コヒ―レンシ・プロトコル
JP2001188766A (ja) * 1999-12-23 2001-07-10 Korea Electronics Telecommun キャッシュ状態衝突を減少させるための装置及びその方法並びにディレクトリ基盤キャッシュ同一性メモリシステム
JP2002182976A (ja) * 2000-09-29 2002-06-28 Internatl Business Mach Corp <Ibm> マルチプロセッサ・システムにおけるメモリ・アクセスの動的直列化
WO2002093385A2 (en) * 2001-05-16 2002-11-21 Advanced Micro Devices, Inc. Method and system for speculatively invalidating lines in a cache
US20030159003A1 (en) * 2001-10-23 2003-08-21 Ip-First, Llc Associative cache memory with replacement way information integrated into directory
US20040039880A1 (en) * 2002-08-23 2004-02-26 Vladimir Pentkovski Method and apparatus for shared cache coherency for a chip multiprocessor or multiprocessor system

Also Published As

Publication number Publication date
JP5714733B2 (ja) 2015-05-07
CN100498739C (zh) 2009-06-10
CN101425043A (zh) 2009-05-06
CN101425043B (zh) 2012-06-20
CN101425042B (zh) 2011-07-06
WO2006031414A2 (en) 2006-03-23
WO2006031414A3 (en) 2007-01-25
JP2014089760A (ja) 2014-05-15
CN101425042A (zh) 2009-05-06
US9727468B2 (en) 2017-08-08
CN101010670A (zh) 2007-08-01
US20170337131A1 (en) 2017-11-23
JP5535991B2 (ja) 2014-07-02
US10078592B2 (en) 2018-09-18
DE112005002180T5 (de) 2007-07-05
JP2011227921A (ja) 2011-11-10
US20060053257A1 (en) 2006-03-09

Similar Documents

Publication Publication Date Title
JP5714733B2 (ja) キャッシュ競合の解決
US7698508B2 (en) System and method for reducing unnecessary cache operations
JP5116418B2 (ja) マルチプロセッサ・データ処理システムにおいて、データを処理する方法、マルチプロセッサ・データ処理システムのための処理ユニット、およびデータ処理システム
US8015365B2 (en) Reducing back invalidation transactions from a snoop filter
US7305522B2 (en) Victim cache using direct intervention
US6366984B1 (en) Write combining buffer that supports snoop request
US7305523B2 (en) Cache memory direct intervention
US6289420B1 (en) System and method for increasing the snoop bandwidth to cache tags in a multiport cache memory subsystem
US6049851A (en) Method and apparatus for checking cache coherency in a computer architecture
US6330643B1 (en) Cache coherency protocols with global and local posted operations
US20170109287A1 (en) Technique to share information among different cache coherency domains
US6145059A (en) Cache coherency protocols with posted operations and tagged coherency states
KR20110031361A (ko) 스누프 필터링 메커니즘
US20060053258A1 (en) Cache filtering using core indicators
US7117312B1 (en) Mechanism and method employing a plurality of hash functions for cache snoop filtering
US7325102B1 (en) Mechanism and method for cache snoop filtering
US6418514B1 (en) Removal of posted operations from cache operations queue
US20140229678A1 (en) Method and apparatus for accelerated shared data migration
US6976132B2 (en) Reducing latency of a snoop tenure
US6345340B1 (en) Cache coherency protocol with ambiguous state for posted operations
US6347361B1 (en) Cache coherency protocols with posted operations
US8489822B2 (en) Providing a directory cache for peripheral devices
US20060117148A1 (en) Preventing system snoop and cross-snoop conflicts
US20080082756A1 (en) Mechanisms and methods of using self-reconciled data to reduce cache coherence overhead in multiprocessor systems
US7234028B2 (en) Power/performance optimized cache using memory write prevention through write snarfing

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100609

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100622

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100917

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110301

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110630