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

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

Info

Publication number
JP2011227921A
JP2011227921A JP2011145496A JP2011145496A JP2011227921A JP 2011227921 A JP2011227921 A JP 2011227921A JP 2011145496 A JP2011145496 A JP 2011145496A JP 2011145496 A JP2011145496 A JP 2011145496A JP 2011227921 A JP2011227921 A JP 2011227921A
Authority
JP
Japan
Prior art keywords
cache
core
llc
processor
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.)
Granted
Application number
JP2011145496A
Other languages
English (en)
Other versions
JP5535991B2 (ja
Inventor
Jeffrey Gilbert
ギルバート,ジェフリー
Jongmin Choi
ツァイ,ジョン−ニン
Yeon Cheon Yoo
リュー,イェン−チェン
Sistla Krishnakanth
シストラ,クリシュナカント
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of JP2011227921A publication Critical patent/JP2011227921A/ja
Application granted granted Critical
Publication of JP5535991B2 publication Critical patent/JP5535991B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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

【課題】マイクロプロセッサ内及び/又はコンピュータ・システム内のキャッシュ・アクセス競合の防止。
【解決手段】処理401では、コア・キャッシュ線への読み取り要求が検出され、対応するコア・キャッシュへの読み取り要求から「ミス」が生じた場合に、それに応じて、対応するLLC線がアクセスされる。処理405では、LLC線のコヒーレンシ状態情報が保存される。コヒーレンシ状態情報が保存された後、要求がクロス・スヌープをもたらすことになり、CBSOロジックによって取り消し信号が何ら検出されなかった場合に、LLC線が無効にされていると後のトランザクションがみなすことになるようにLLC内の対応する線が処理410でアトミックに無効にされる。処理415で、適切なコア又はプロセッサへのLLCによるクロス・スヌープによって、要求されたデータがコア又はプロセッサから、要求エージェントに戻される。
【選択図】図4

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つの実施例を用い得るフロントサイドバスを示す図である。 本発明の少なくとも1つの実施例を用い得るポイントツーポイント・コンピュータ・システムを示す図である。
本発明は、限定としてではなく例として添付図面の図に示す。同様な参照符号は同様な構成要素を示す。
本明細書には、同じキャッシュ線をいくつかの要求エージェントがアクセスしようとする場合の競合の解決及び回避をはじめとする、マルチプロセッサ内及び/又はマルチコア・コンピュータ・システム内の従来技術のキャッシュ手法に関連した課題を解決するための、本発明の種々の実施例を記載している。本発明の少なくとも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に示すいくつかの回路、ロジック・ユニット、又はデバイスにわたって分散させることができる。
本明細書記載の本発明の実施例は、相補性金属酸化膜半導体デバイス若しくは「ハードウェア」を用いた回路によって、又は、マシン(プロセッサなど)によって実行されると、本発明の実施例に関連した処理を行う、媒体に記憶された命令組、若しくは「ソフトウェア」を用いて実現することができる。あるいは、本発明の実施例は、ハードウェア及びソフトウェアの組み合わせを用いて実現することができる。
例証的な実施例を参照して本発明を説明したが、この説明は、限定的な意味合いで解されることを意図するものでない。本発明が関係する当該技術分野における当業者に明らかである例証的な実施例の種々の修正及びその他の実施例は、本発明の趣旨及び範囲内に収まるものと認められる。
505 プロセッサ

Claims (8)

  1. マイクロプロセッサ・システムであって、
    共有された包含的キャッシュを備えた第1のプロセッサを備え、前記共有された包含的キャッシュは、前記第1のプロセッサ内のコアからのスヌープに応じて、無効状態を有する第1のキャッシュ線を含み、前記無効状態は、前記第1のキャッシュ線が無効である旨を、読み出しアクセスに後続するが、前記読み出しアクセスが完了する前のトランザクション全てに示すシステム。
  2. 請求項1記載のシステムであって、前記スヌープに応じて、前記第1のキャッシュ線のコヒーレンシ情報を記憶するための記憶装置を備えるシステム。
  3. 請求項2記載のシステムであって、対応する少なくとも1つのコア・キャッシュをそれぞれが有する複数のプロセッサ・コアを備えるシステム。
  4. 請求項3記載のシステムであって、前記共有された包含的キャッシュは、前記対応する少なくとも1つのコア・キャッシュ内に記憶されたデータと同じデータを記憶するための最終レベルのキャッシュであるシステム。
  5. 請求項4記載のシステムであって、前記第1のプロセッサは、前記スヌープに応じて、前記無効状態をセットし、前記コヒーレンシ情報を記憶するためのロジックを備えるシステム。
  6. 請求項5記載のシステムであって、前記第1のプロセッサは、前記複数のプロセッサ・コア及び第2のプロセッサとの間のアクセスそれぞれを記憶するための内部要求キュー及び外部要求キューを備えるシステム。
  7. 請求項6記載のシステムであって、前記第1のプロセッサ及び前記第2のプロセッサはポイントツーポイント相互接続を介して併せて結合されるシステム。
  8. 請求項6記載のシステムであって、前記第1のプロセッサ及び前記第2のプロセッサはフロントサイドバス相互接続を介して併せて結合されるシステム。
JP2011145496A 2004-09-09 2011-06-30 キャッシュ競合の解決 Expired - Fee Related JP5535991B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US93797304A 2004-09-09 2004-09-09
US10/937,973 2004-09-09

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2007531199A Division JP2008512772A (ja) 2004-09-09 2005-08-26 キャッシュ競合の解決

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2014006733A Division JP5714733B2 (ja) 2004-09-09 2014-01-17 キャッシュ競合の解決

Publications (2)

Publication Number Publication Date
JP2011227921A true JP2011227921A (ja) 2011-11-10
JP5535991B2 JP5535991B2 (ja) 2014-07-02

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 Before (1)

Application Number Title Priority Date Filing Date
JP2007531199A Pending JP2008512772A (ja) 2004-09-09 2005-08-26 キャッシュ競合の解決

Family Applications After (1)

Application Number Title Priority Date Filing Date
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) CN100498739C (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
US7506108B2 (en) * 2006-06-30 2009-03-17 Intel Corporation Requester-generated forward for late conflicts in a cache coherency protocol
US7536515B2 (en) * 2006-06-30 2009-05-19 Intel Corporation Repeated conflict acknowledgements in a cache coherency protocol
US7721050B2 (en) * 2006-06-30 2010-05-18 Intel Corporation Re-snoop for conflict resolution 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 国际商业机器公司 共享缓存管理方法和系统
DE112013005093T5 (de) * 2012-10-22 2015-10-22 Intel Corporation Hochleistungszusammenschaltungsbitübertragungsschicht
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 上海芷锐电子科技有限公司 一种缓存数字电路处理请求冲突的方法
US12079516B2 (en) * 2022-08-30 2024-09-03 Micron Technology, Inc. Host-preferred memory operation

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10501914A (ja) * 1995-07-19 1998-02-17 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 共用キャッシュ・メモリ装置
JPH10154102A (ja) * 1996-10-21 1998-06-09 Internatl Business Mach Corp <Ibm> 多重階層のキャッシュ・メモリを有する情報処理システムにおけるデータ・コヒーレンシを強化する装置および方法
JPH10161930A (ja) * 1996-11-29 1998-06-19 Hitachi Ltd マルチプロセッサシステムおよびキャッシュコヒーレンシ制御方法
JP2001034533A (ja) * 1999-07-21 2001-02-09 Nec Kofu Ltd キャッシュコヒーレンシ制御装置、2次キャッシュメモリ、中央処理装置、マルチプロセッサシステム、プロセッサノード、キャッシュコヒーレンシ制御方法
WO2002093385A2 (en) * 2001-05-16 2002-11-21 Advanced Micro Devices, Inc. Method and system for speculatively invalidating lines in a cache
WO2003001383A2 (en) * 2001-06-26 2003-01-03 Sun Microsystems, Inc. Using an l2 directory to facilitate speculative loads in a multiprocessor system

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2820752B2 (ja) * 1990-01-19 1998-11-05 日本電信電話株式会社 密結合マルチプロセッサシステムにおけるキャッシュメモリ一致制御方法
US5398325A (en) * 1992-05-07 1995-03-14 Sun Microsystems, Inc. Methods and apparatus for improving cache consistency using a single copy of a cache tag memory in multiple processor computer systems
JP3013631B2 (ja) * 1992-09-28 2000-02-28 日本電気株式会社 キャッシュメモリ同期方法
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
JP3360933B2 (ja) * 1994-06-01 2003-01-07 富士通株式会社 情報処理システムにおける記憶制御方法および記憶制御装置
US5623632A (en) * 1995-05-17 1997-04-22 International Business Machines Corporation System and method for improving multilevel cache performance in a multiprocessing system
US5893160A (en) * 1996-04-08 1999-04-06 Sun Microsystems, Inc. Deterministic distributed multi-cache coherence method and system
JPH1165929A (ja) * 1997-08-26 1999-03-09 Kofu Nippon Denki Kk バスブリッジ回路
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
US6263407B1 (en) * 1998-02-17 2001-07-17 International Business Machines Corporation Cache coherency protocol including a hovering (H) state having a precise mode and an imprecise mode
US6314491B1 (en) 1999-03-01 2001-11-06 International Business Machines Corporation Peer-to-peer cache moves in a multiprocessor data processing system
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
KR100329969B1 (ko) * 1999-12-23 2002-03-27 오길록 캐시 동일성 유지 메모리 시스템에서 캐시 충돌 방지 장치및 그 방법
US6516393B1 (en) * 2000-09-29 2003-02-04 International Business Machines Corporation Dynamic serialization of memory access in a multi-processor system
US20020169935A1 (en) 2001-05-10 2002-11-14 Krick Robert F. System of and method for memory arbitration using multiple queues
US20030159003A1 (en) * 2001-10-23 2003-08-21 Ip-First, Llc Associative cache memory with replacement way information integrated into directory
US6976131B2 (en) * 2002-08-23 2005-12-13 Intel Corporation Method and apparatus for shared cache coherency for a chip multiprocessor or 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 (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10501914A (ja) * 1995-07-19 1998-02-17 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 共用キャッシュ・メモリ装置
JPH10154102A (ja) * 1996-10-21 1998-06-09 Internatl Business Mach Corp <Ibm> 多重階層のキャッシュ・メモリを有する情報処理システムにおけるデータ・コヒーレンシを強化する装置および方法
JPH10161930A (ja) * 1996-11-29 1998-06-19 Hitachi Ltd マルチプロセッサシステムおよびキャッシュコヒーレンシ制御方法
JP2001034533A (ja) * 1999-07-21 2001-02-09 Nec Kofu Ltd キャッシュコヒーレンシ制御装置、2次キャッシュメモリ、中央処理装置、マルチプロセッサシステム、プロセッサノード、キャッシュコヒーレンシ制御方法
WO2002093385A2 (en) * 2001-05-16 2002-11-21 Advanced Micro Devices, Inc. Method and system for speculatively invalidating lines in a cache
WO2003001383A2 (en) * 2001-06-26 2003-01-03 Sun Microsystems, Inc. Using an l2 directory to facilitate speculative loads in a multiprocessor system

Also Published As

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

Similar Documents

Publication Publication Date Title
JP5714733B2 (ja) キャッシュ競合の解決
US7698508B2 (en) System and method for reducing unnecessary cache operations
US6289420B1 (en) System and method for increasing the snoop bandwidth to cache tags in a multiport cache memory subsystem
JP5431525B2 (ja) アクセラレータ用低コストのキャッシュ一貫性を維持するシステム
US8015365B2 (en) Reducing back invalidation transactions from a snoop filter
JP3737834B2 (ja) 2重化キャッシュ・スヌープ機構
US6330643B1 (en) Cache coherency protocols with global and local posted operations
CN107506312B (zh) 在不同高速缓存一致性域之间共享信息的技术
US7305523B2 (en) Cache memory direct intervention
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
US20140229678A1 (en) Method and apparatus for accelerated shared data migration
US7325102B1 (en) Mechanism and method for cache snoop filtering
US6418514B1 (en) Removal of posted operations from cache operations queue
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
US20080082756A1 (en) Mechanisms and methods of using self-reconciled data to reduce cache coherence overhead in multiprocessor systems

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130226

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130522

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130527

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130621

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130626

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130723

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130726

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130826

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130917

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140117

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20140124

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: 20140325

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140423

R150 Certificate of patent or registration of utility model

Ref document number: 5535991

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees