JP2008513907A - 統合キャッシュにおける望ましくない置換動作を低減するための先行犠牲選択のための方法及び装置 - Google Patents

統合キャッシュにおける望ましくない置換動作を低減するための先行犠牲選択のための方法及び装置 Download PDF

Info

Publication number
JP2008513907A
JP2008513907A JP2007533589A JP2007533589A JP2008513907A JP 2008513907 A JP2008513907 A JP 2008513907A JP 2007533589 A JP2007533589 A JP 2007533589A JP 2007533589 A JP2007533589 A JP 2007533589A JP 2008513907 A JP2008513907 A JP 2008513907A
Authority
JP
Japan
Prior art keywords
cache
replacement
replacement candidate
miss
candidate
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
JP2007533589A
Other languages
English (en)
Other versions
JP4226057B2 (ja
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 JP2008513907A publication Critical patent/JP2008513907A/ja
Application granted granted Critical
Publication of JP4226057B2 publication Critical patent/JP4226057B2/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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • 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

キャッシュにおける置換候補を選択及び更新する方法及び装置が開示される。一実施例では、キャッシュミスが、ラストレベルキャッシュにおける現在の置換候補の削除を開始する。キャッシュミスはまた、以降の置換候補の選択を開始する。以降の置換候補を選択すると、対応するキャッシュラインが、下位レベルキャッシュにおいて無効にされるが、ラストレベルキャッシュに存在し続ける。以降の置換候補は、以降のキャッシュミスの前にラストレベルキャッシュの置換候補に対する以降のヒットにより更新されてもよい。

Description

発明の詳細な説明
[技術分野]
本開示は、一般にキャッシュに対するミスに応答してキャッシュライン置換方法を使用するマイクロプロセッサに関し、より詳細には、統合(inclusive)キャッシュにおいてキャッシュライン置換方法を使用するマイクロプロセッサに関する。
[背景]
マイクロプロセッサは、メモリアクセスの遅延を低減するため、マルチレベルキャッシュ設計を利用するかもしれない。プロセッサコアに近いキャッシュレベル(レベル1(L1)キャッシュ)は、遅延の小ささに設計上の力点をおき、プロセッサコアから離れたキャッシュレベル(ラストレベルキャッシュ(LLC))は、より大きな容量に力点をおく。存在する場合には、中間キャッシュレベルは、小さな遅延と大きな容量との間で行われるトレードオフによりパフォーマンスのため設計されるかもしれない。
キャッシュに対してメモリアクセス(リード又はライトなど)が行われると、要求されたメモリ位置がキャッシュ内に存在するか(キャッシュ「ヒット」)、又は存在しないか(キャッシュ「ミス」)決定される。ミスが発生した場合、要求されたラインを上位レベルのキャッシュ又はシステムメモリからロードするため、キャッシュ内に場所が生成されなければならない。キャッシュは一般に、この新たなキャッシュラインに対する場所を生成するため、既存のキャッシュラインの何れが削除(evict)されるべきか決定する置換方法を有している。このプロセスは、しばしば「victimization」と呼ばれるかもしれない。置換方法は、LRU(Least−Recently−Used)法、ランダム選択法、FIFO(First−In−First−Out)法などの周知の方法を含むかもしれない。上記及び他の方法のそれぞれは、長所と短所を有する。
マルチプロセッサコアシステムにおいてキャッシュコヒーレンシを維持するため、要求されたキャッシュラインに対するスヌープ処理(snooping)がしばしば実行される。マルチレベルキャッシュシステムでは、これは一般に、スヌープメッセージがラストレベルキャッシュからスタートし、L1キャッシュまでずっと下方に継続する下方伝搬される必要があることを意味する。これらのスヌープメッセージにより生じる遅延を部分的に低減するため、多数のキャッシュが統合的となるよう設計される。統合キャッシュは、下位レベルのキャッシュに存在するキャッシュラインがまた当該統合キャッシュに存在するという性質を維持する。従って、スヌープ処理は、多くの状況では、ラストレベルキャッシュに対して実行されさえすればよいかもしれない。すなわち、あるキャッシュラインがラストレベルキャッシュに存在しない場合、統合の性質により、それは何れの下位レベルのキャッシュにも存在しない。しかしながら、統合の性質は、自らパフォーマンスを低減させるアーチファクトを生じさせるかもしれない。
[詳細な説明]
以下の説明は、マルチレベルキャッシュにおける犠牲化(victimization)プロセスにおいて利用するための改良されたキャッシュライン置換方法のための技術を記載する。以下の説明では、ロジック実現、ソフトウェアモジュール割当て、バス及び他のインタフェース通知技術、処理の詳細などの多数の具体的詳細が、本発明のより完全な理解を提供するため与えられる。しかしながら、本発明がこのような具体的詳細なしに実現可能であるということは、当業者により理解されるであろう。他の例では、本発明を不明りょうにしないようにするため、制御構造、ゲートレベル回路及び完全なソフトウェア命令シーケンスは図示されない。含まれている記載によって、当業者は過度な実験を行うことなく、適切な機能を実現可能である。ある実施例では、本発明は、インテル(登録商標)コーポレイションによって製造されるものなどのPentium(登録商標)互換プロセッサのマルチコア実現形態に存在するキャッシュに形態により開示される。しかしながら、本発明は、Itanium(登録商標)プロセッサファミリー互換プロセッサ又はX−Scale(登録商標)ファミリー互換プロセッサなどの他のタイプのプロセッサに存在するキャッシュに実現可能である。
図1を参照するに、一実施例によるラストレベルキャッシュ104を有するマルチコアプロセッサ102の概略図が示される。本実施例では、2つのプロセッサコアであるプロセッサコア0(112)とプロセッサコア1(122)を使用するケースが示されている。他の実施例では、単一のプロセッサコア又は3以上のプロセッサコアが使用されるかもしれない。それの名称によって、ラストレベルキャッシュ(last−level cache)104は、これがプロセッサコア112及び122から最も離れ、システムメモリ140に最も近いキャッシュであることを一般に示している。しかしながら、いくつかの実施例では、マルチコアプロセッサ102とシステムメモリ140との間にはより高いレベルのキャッシュが存在するかもしれない。
ラストレベルキャッシュ104は、ユニタリキャッシュ(データと命令の両方)又はデータキャッシュとして構成されるかもしれない。最下位レベルのキャッシュであるレベル1(L1)データキャッシュ0(110)とL1データキャッシュ1(120)が、マルチコアプロセッサのキャッシュ階層のラストレベルキャッシュ104の直下に示される。他の実施例では、L1データキャッシュ110及び120とラストレベルキャッシュ104との間に構成されるレベル2(L2)キャッシュなどのさらなるキャッシュが存在するかもしれない。ラストレベルキャッシュ104は一般に、インタフェース142を介しラストレベルキャッシュ104とシステムメモリ140との間のデータ伝送を可能にするインタフェース回路を有している。各種実施例では、インタフェース142は、マルチドロップバス又はポイント・ツー・ポイントインタフェースであってもよい。
ある実施例では、ラストレベルキャッシュ104は、統合的であるかもしれない。統合キャッシュは、下位レベルのキャッシュに含まれるキャッシュラインがまた統合キャッシュに含まれるキャッシュである。統合の性質は、あるキャッシュラインが存在するか否か決定するため、統合キャッシュのみをスヌープしさえすればよく、下位レベルのキャッシュをスヌープする必要はないため、キャッシュコヒーレンシを保証するための簡略化されたスヌープ処理を可能にする。
図2を参照するに、一実施例によるキャッシュ200の概略図が示される。キャッシュ200は、ある実施例では、図1のラストレベルキャッシュ104であってもよい。他の実施例では、キャッシュ200は、中間レベルキャッシュであってもよい。Nウェイセットアソシエイティブ(N−way set associative)キャッシュでは、M個のセットのそれぞれが、「ウェイ」と呼ばれるキャッシュラインを保持するためのN個の場所を有する。システムメモリ内のあるキャッシュラインは、M個のセットの1つのみにロードされるが、当該キャッシュラインは、当該セットのNウェイの何れにロードされてもよい。境界のケースとして、フルアソシエイティブキャッシュは、1つのみのセットを有するNウェイセットアソシエイティブキャッシュと考えられるかもしれない。
図2は、ラベル付けされたセット0(210)〜セットM−1(240)のM個のセットを備えるキャッシュ200を示す。キャッシュ200は、外部インタフェースとインタフェースをとり、スヌープリクエストに応答し、キャッシュラインミスに応答してリクエストをシステムメモリに転送し、キャッシュラインヒットに応答してキャッシュラインを下位レベルキャッシュに転送する回路を含むキャッシュ制御ロジック242を含むかもしれない。セットの1つであるセット2(218)がより詳細に示されている。その他のセットは、同様の詳細を有するかもしれない。ウェイ0(250)〜ウェイN−1(272)が、セット制御ロジック280と共に示されている。セット制御ロジックは、一般にはキャッシュに対する「ミス」の結果として、新たなキャッシュラインがセット2に追加される必要があるとき、置換方法を特定する回路を有するかもしれない。この置換方法は、何れのウェイが新たなキャッシュラインにより上書きされるべきキャッシュラインを有するか特定する。この特定されたキャッシュラインは、「置換候補」と呼ばれるかもしれない。置換方法は、各種実施例において、LRU(Least−Recently−Used)キャッシュラインを特定することによって、置換候補をランダムに特定することによって、又はセットへのロード順により(FIFO(First−In−First−Out)など)置換候補を特定することによって行われるかもしれない。これらの置換方法のすべてが、最初は無効なキャッシュラインを検索し、無効なキャッシュラインが検出されないときのみに各自の特定の方法に進むかもしれない。他の実施例では、他の置換方法が利用されるかもしれない。
キャッシュが統合的であることの1つのアーチファクトは、置換候補が決定され、当該キャッシュラインが削除(犠牲化)されることが許可されると、下位キャッシュに存在するすべての対応するキャッシュラインもまた無効にされるべきであるということである。これは、コストがかかるが統合性の性質を維持する。このため、下位レベルキャッシュにおいて繰り返し使用されているキャッシュラインは、ラストレベルキャッシュから頻繁にはロードされないかもしれない。LRUなどの置換方法を利用するとき、これにより、当該キャッシュラインが置換候補として選択されることになるかもしれない。現在の実践では、その置換候補は削除され、当該キャッシュラインは、下位レベルキャッシュにおいて無効にされる。このとき、下位レベルキャッシュにアクティブに使用されるキャッシュラインは、システムメモリから戻される必要があることにより、遅延ペナルティを被ることとなる。
従って、一実施例では、セット制御ロジックは、セットに対する各キャッシュミスに対して複数のアクションを行うかもしれない。セット制御ロジックは、以前に特定された現在の置換候補のキャッシュラインを削除するかもしれない。セット制御ロジックはまた、何れの置換方法が利用されても、以降の置換候補を特定するかもしれない。一実施例では、セット制御ロジックは、下位レベルキャッシュに対する以降の置換候補に含まれるキャッシュラインに対して、無効化メッセージを発行するかもしれない。要約すると、一実施例では、セットに対するキャッシュミスは、ラストレベルキャッシュからの現在の置換候補の削除、以降の置換候補の特定及び下位レベルキャッシュの以降の置換候補のキャッシュラインの無効化の3つのアクションを生じさせるかもしれない。
以降の置換候補のキャッシュラインとして下位レベルキャッシュの頻繁に使用されているキャッシュラインが無効にされる場合、当該キャッシュラインが無効化処理が実行された直後に対応するプロセッサコアにより要求される可能性がある。同一のキャッシュセットに対する2回目のミスの前に、これが発生した場合、以降の置換候補は依然としてラストレベルキャッシュにおいて利用可能である。従って、以降の置換候補に対応して、当該キャッシュラインに対してキャッシュヒットが発生する。この場合、セット制御ロジック280は、他の以降の置換候補を特定し、この新たな以降の置換候補のキャッシュラインを無効にし、最初の以降の置換候補のキャッシュラインを下位レベルキャッシュに送信するかもしれない。ラストレベルキャッシュの当該セットに対する2回目のミスの際には、セット制御ロジックは、その後に第2の置換候補のキャッシュラインを削除する。i番目の以降の置換候補を(i+1)番目の以降の置換候補と置換する処理は、ラストレベルキャッシュの当該セットに対する2回目のミスの時点までに必要に応じて複数回実行されてもよい。
対応するキャッシュミスに対して置換候補の削除のタイミングをとるいくつかのやや異なる方法が存在するかもしれない。一実施例では、当該削除は、ミスが発生したという決定がなされる時点において(又はその直後に)行われてもよい。他の実施例では、当該削除は、キャッシュのフィルバッファが上位レベルキャッシュ又はシステムメモリからアクセスされたキャッシュラインを受け付ける時点まで保留されてもよい。
図3を参照するに、一実施例によるキャッシュシステムのイベントのタイミング図が示される。図3の実施例は、LRU置換方法が利用されていることを示しているが、他の実施例では、他の置換方法の何れも利用可能である。時点T0において、ラストレベルキャッシュのセットXに対してミスが発生する。従って、時点T0においてLRUを有するウェイが、以降の置換候補として選択され、当該ウェイのキャッシュラインが、下位レベルキャッシュにおいて無効にされる。
時点T1において、セットXに対する他のミスが発生し、これにより、時点T0においてLRUを有するウェイである以降の置換候補がラストレベルキャッシュから削除される。同時に、新たな以降の置換候補が選択され(時点T1においてLRUを有するウェイ)、この新たな以降の置換候補に対応するキャッシュラインが、下位レベルキャッシュにおいて無効にされる。しかしながら、この新たな以降の置換候補に対応するキャッシュラインは、ラストレベルキャッシュに存在したままである。
時点T2において、当該以降の置換候補(ラストレベルキャッシュに依然として存在する)に対するヒットが発生する。さらなる他の新たな以降の置換候補が選択され(時点T2におけるLRUを有するウェイ)、この新たな以降の置換候補に対応するキャッシュラインが下位レベルキャッシュにおいて無効にされ、ヒットにより要求されたキャッシュラインが、下位レベルキャッシュに送信される。時点T1におけるLRUを有したよる古い以降の置換候補が、その後に時点T2におけるMRU(Most−Recently Used)として置換方法トラッキングによりタグ付けされる。再び、この新たな以降の置換候補に対応するキャッシュラインが、ラストレベルキャッシュに存在し続けることとなる。
時点T3において、この以降の置換候補に対するヒットが発生する(ラストレベルキャッシュに依然として存在する)。さらなる他の新たな以降の置換候補が選択され(時点T3におけるLRUを有するウェイ)、この新たな以降の置換候補に対応するキャッシュラインが、下位レベルキャッシュにおいて無効にされ、ヒットにより要求されたキャッシュラインが下位レベルキャッシュに送信される。時点T2におけるLRUを有した古い以降の置換候補が、その後に時点T3におけるMRUとして置換方法トラッキングにおいてタグ付けされる。再び、この新たな以降の置換候補に対応するキャッシュラインが、ラストレベルキャッシュに存在し続ける。
時点T4において、セットXに対する他のミスが発生する。これにより、時点T3におけるLRUを有した保留中の以降の置換候補がラストレベルキャッシュから削除される。同時に、新たな以降の置換候補が選択され(時点T4におけるLRUを有するウェイ)、この新たな以降の置換候補に対応するキャッシュラインが、下位レベルキャッシュにおいて無効にされる。
本例では、セットXに対する次のミスが時点T5において発生するまで、以降の置換候補に対してヒットは発生しない。これにより、時点T4におけるLRUを有するウェイである保留中の以降の置換候補が、ラストレベルキャッシュから削除される。同時に、新たな以降の置換候補が選択され(時点T5におけるLRUを有するウェイ)、この新たな以降の置換候補に対応するキャッシュラインが、下位レベルキャッシュにおいて無効にされる。
図3の例は時点T1とT4におけるラスとれレベルキャッシュのミスの間の置換候補に対する2つのヒットを示したが、本実施例により提供されるヒット数に対する制限はない。
図4を参照するに、本開示の一実施例による置換候補を選択する方法のフローチャート図が示される。図4の実施例は、L1キャッシュとラストレベルキャッシュの存在を前提としている。他の実施例では、ラストレベルキャッシュより下位のさらなるキャッシュレベルが、存在するかもしれない。当該プロセスはブロック410において開始される。ラストレベルキャッシュに対する最初のミスへのサービスを提供すると、ブロック412において、置換候補が置換方法により選択され、L1キャッシュの対応するキャッシュラインが無効にされる。置換方法がLRUである場合、置換候補はラストレベルキャッシュのLRUの現在値となる。
ブロック414において、メモリ処理が実行される。L1キャッシュルックアップがブロック418において行われ、判定ブロック420において、L1キャッシュに対するヒットが発生しているか判断される。そうである場合、本プロセスはYESパスを介して抜け出し、ブロック440において、L1キャッシュの置換方法の状態が更新され、要求されたキャッシュラインのデータが、プロセッサコアに返される。置換方法がLRUである場合、置換方法の状態の更新は、L1キャッシュのLRUの現在値を更新することである。当該プロセスは、その後、ブロック414に戻る。
判定ブロック420において、ヒットが発生しないと判断される場合、本プロセスは、NOパスを介し抜け出し、ブロック422において、ラストレベルキャッシュルックアップが行われる。そうである場合、本プロセスはYESパスを介し抜け出し、ブロック436において、ラストレベルキャッシュに対する置換方法の状態が更新される。置換方法がLRUである場合、置換方法の状態の更新は、ラストレベルキャッシュのLRUの現在値を更新することである。その後、判定ブロック450において、置換候補に対してヒットがあったか判断される。なかった場合、本プロセスはNOパスを介し抜け出し、ブロック452において、要求されたキャッシュラインに対するデータがL1キャッシュ及びプロセッサコアに返される。しかしながら、置換候補に対してヒットがあった場合、本プロセスはYESパスを介し判定ブロック450から抜け出す。ブロック456において、新たな置換候補が選択され、対応するキャッシュラインがL1キャッシュにおいて無効にされる。置換方法がLRUである場合、置換候補は、ラストレベルキャッシュの次のLRUとなるキャッシュラインの現在値となる。その後、ブロック452において、要求されたキャッシュラインに対するデータがL1キャッシュ及びプロセッサコアに返される。置換方法がLRUである場合、置換方法の状態の更新は、ラストレベルキャッシュの次のLRUとなるキャッシュラインの現在値をLRUのものにすることである。その後、本プロセスは、ブロック414において再びスタートを繰り返す。
しかしながら、判定ブロック428において、ラストレベルキャッシュにヒットが発生しない場合、本プロセスはNOパスを介し判定ブロック428を抜け出す。その後、ブロック434において、複数のアクションが実行されるかもしれない。置換候補のキャッシュラインは、ラストレベルキャッシュのフィルバッファに出現する要求されたキャッシュラインのために削除される。新たな置換候補が選択され、対応するキャッシュラインがL1キャッシュにおいて無効にされる。置換方法がLRUである場合、置換候補は、ラストレベルキャッシュの次のLRUであるキャッシュラインの現在値となる。本プロセスはブロック414においてスタートを再び繰り返すかもしれない。
図4に示される処理では、ブロック430において説明されるラストレベルキャッシュのミスに対するサービスの提供は、システムメモリからのキャッシュラインに対するリクエストを開始する。これは、破線のブロック434において示される。置換のキャッシュラインの削除は、当該要求の開始時(直後)に行われてもよい(図4の実施例では)。他の実施例では、置換候補のキャッシュラインの削除は、キャッシュライン(ミスに対応する)がメモリからラストレベルキャッシュのフィルバッファに到着するまで遅延されるかもしれない。
図5A及び5Bを参照するに、本開示の2つの実施例によるマルチコア及びスロットルを備えたプロセッサを有するシステムの概略図が示される。図5Aのシステムは、一般にプロセッサ、メモリ及び入出力装置がシステムバスに相互接続されるシステムを示し、図5Bのシステムは、一般にプロセッサ、メモリ及び入出力装置がいくつかのポイント・ツー・ポイントインタフェースにより相互接続されるシステムを示す。
図5Aのシステムは、複数のプロセッサを有することが可能であるが、簡単化のため、そのうちの2つのプロセッサ40及び60のみが示されている。プロセッサ40と60は、ラストレベルキャッシュ42と62を有するかもしれない。図5Aのシステムは、バスインタフェース44、64、12及び8を介しシステムバス6と接続される複数の機能を有しているかもしれない。一実施例では、システムバス6は、インテル(登録商標)コーポレイションにより製造されているPentium(登録商標)クラスマイクロプロセッサにより利用されるフロントサイドバス(FSB)であってもよい。他の実施例では、他のバスが使用されるかもしれない。いくつかの実施例では、メモリコントローラ34とバスブリッジ32はまとめてチップセットと呼ばれるかもしれない。いくつかの実施例では、チップセットの機能は、図5Aの実施例に示されるものと異なる物理チップに分割されても良い。
メモリコントローラ34は、プロセッサ40及び60がシステムメモリ10とBIOS(Basic Input/Output System)EPROM(Erasable Programmable Read−Only Memory)36に対して読み書きすることを許可する。いくつかの実施例では、BIOS EPROM36は、フラッシュメモリを利用するかもしれない。メモリコントローラ34は、システムバス6を介しバスエージェントに対してメモリリード及びライトデータを搬送することを許可するバスインタフェース8を有するかもしれない。メモリコントローラ34はまた、ハイパフォーマンスグラフィックスインタフェース39を介しハイパフォーマンスグラフィックス回路38と接続するかもしれない。ある実施例では、ハイパフォーマンスグラフィックスインタフェース39は、アドバンスドグラフィックスポートAGPインタフェースであってもよい。メモリコントローラ34は、ハイパフォーマンスグラフィックスインタフェース39を介しシステムメモリ10からハイパフォーマンスグラフィックス回路38にデータを誘導するかもしれない。
図5Bのシステムはまた、複数のプロセッサを有することが可能であるが、簡単化のため、そのうちの2つのプロセッサ70及び80のみが示されている。プロセッサ70と80はそれぞれ、メモリ2及び4と接続するためのローカルメモリコントローラハブ(MCH)72と82を有するかもしれない。プロセッサ70と80はまた、ラストレベルキャッシュ56と58を有するかもしれない。プロセッサ70と80は、ポイント・ツー・ポイントインタフェース回路78と88を用いてポイント・ツー・ポイントインタフェース50を介しデータをやりとりするかもしれない。プロセッサ70と80はそれぞれ、ポイント・ツー・ポイントインタフェース回路76、94、86及び98を利用して、各ポイント・ツー・ポイントインタフェース52と54を介しチップセット90とデータを交換してもよい。チップセット90はまた、ハイパフォーマンスグラフィックスインタフェース92を介しハイパフォーマンスグラフィックス回路38とデータをやりとりしてもよい。
図5Aのシステムでは、バスブリッジ32は、いくつかの実施例ではISA(Industry Standard Architecture)バス又はPCI(Peripheral Component Interconnect)バスであるかもしれないバス16とシステムバス6との間のデータ交換を可能にするかもしれない。図5Bのシステムでは、チップセット90は、バスインタフェース96を介しバス16とデータをやりとりするかもしれない。何れかのシステムでは、いくつかの実施例では、ローパフォーマンスグラフィックスコントローラ、ビデオコントローラ及びネットワーキングコントローラを含む各種入出力(I/O)装置14がバス16上に存在するかもしれない。他のバスブリッジ18は、いくつかの実施例では、バス16とバス20との間のデータ交換を可能にするため利用されるかもしれない。バス20は、いくつかの実施例では、SCSI(Small Computer System Interface)バス、IDE(Integrated Drive Electronics)バス、又はUSB(Universal Serial Bus)バスであってもよい。追加的なI/O装置がバス20に接続されてもよい。これらは、マウスを含むキーボード及びカーソル制御装置22と、音声I/O24と、モデム及びネットワークインタフェースを含む通信装置26と、データ記憶装置28とを含むかもしれない。ソフトウェアコード30が、データ記憶装置28に格納されてもよい。いくつかの実施例では、データ記憶装置28は、固定式磁気ディスク、フロッピー(登録商標)ディスクドライブ、光ディスクドライブ、光磁気ディスクドライブ、磁気テープ又はフラッシュメモリを含む不揮発性メモリであってもよい。
本明細書において、本発明がそれの具体的実施例を参照して説明された。しかしながら、添付された請求項に与えられるより広範な趣旨及び範囲から逸脱することなく、様々な改良及び変更が可能であるということは明らかであろう。明細書及び図面は、限定的でなく例示的なものとしてみなされる。
図1は、一実施例によるラストレベルキャッシュを含むマルチコアプロセッサの概略図である。 図2は、一実施例によるキャッシュの概略図である。 図3は、一実施例によるキャッシュシステムにおけるイベントのタイミング図である。 図4は、本開示の一実施例による置換候補を選択するための方法のフローチャートである。 図5Aは、本発明の一実施例によるキャッシュを備えたプロセッサを含むシステムの概略図である。 図5Bは、本発明の一実施例によるキャッシュを備えたプロセッサを含むシステムの概略図である。

Claims (37)

  1. 第1ミスに対して第1置換候補を特定し、第2ミスに対して前記第1置換候補を削除するセット制御ロジックと、
    前記第1ミスの後に下位キャッシュにおける前記第1置換候補のキャッシュラインを無効にするメッセージを発行するキャッシュ制御ロジックと、
    を有するキャッシュ。
  2. 前記セット制御ロジックは、前記第1ミスの後に前記第1置換候補に対するヒットが発生すると、第2置換候補を特定する、請求項1記載のキャッシュ。
  3. 前記キャッシュ制御ロジックは、前記第1置換候補に対するヒットの後に、下位キャッシュにおける前記第2置換候補のキャッシュラインを無効にするメッセージを発行する、請求項2記載のキャッシュ。
  4. 前記セット制御ロジックは、前記第1置換候補のキャッシュラインを前記下位キャッシュに送信する、請求項2記載のキャッシュ。
  5. 前記セット制御ロジックは、置換方法により前記第1置換候補を特定する、請求項1記載のキャッシュ。
  6. 前記置換方法はランダム法である、請求項5記載のキャッシュ。
  7. 前記置換方法は、FIFO(First−In−First−Out)法である、請求項5記載のキャッシュ。
  8. 前記置換方法は、LRU(Least−Recently−Used)法である、請求項5記載のキャッシュ。
  9. 前記セット制御ロジックは、前記第1ミスの後に前記第1置換候補に対するヒットが発生すると、第2置換候補を特定し、前記第1置換候補をMRU(Most−Recently−Used)として設定する、請求項8記載のキャッシュ。
  10. 前記セット制御ロジックは、前記第2ミスが発生する前に前記第2置換候補を特定する、請求項9記載のキャッシュ。
  11. キャッシュに対する第1ミスの後に第1置換候補を特定するステップと、
    前記キャッシュに対する下位キャッシュにおける前記第1置換候補に対応するキャッシュラインを無効にするステップと、
    前記キャッシュに対する第2ミスの後に、前記キャッシュから前記第1置換候補を削除するステップと、
    を有する方法。
  12. 前記第1ミスの後に前記第1置換候補に対するヒットが発生すると、第2置換候補を特定するステップをさらに有する、請求項11記載の方法。
  13. 前記ヒットに応答して、前記キャッシュラインを前記下位キャッシュに送信するステップをさらに有する、請求項12記載の方法。
  14. 前記第1置換候補を特定するステップは、置換方法を実現することから構成される、請求項11記載の方法。
  15. 前記置換方法は、ランダム選択により前記第1置換候補を決定する、請求項14記載の方法。
  16. 前記置換方法は、FIFO(First−In−First−Out)を実現することにより前記第1置換候補を決定する、請求項14記載の方法。
  17. 前記置換方法は、LRU(Least−Recently−Used)キャッシュラインを決定することによって、前記第1置換候補を決定する、請求項14記載の方法。
  18. 前記第1ミスの後に前記第1置換候補に対するヒットが発生すると、第2置換候補を特定し、前記第1置換候補をMRU(Most−Recently−Used)として設定するステップをさらに有する、請求項14記載の方法。
  19. 前記第2置換候補を特定するステップは、前記第2ミスの前に行われる、請求項18記載の方法。
  20. 第1ミスに対して第1置換候補を特定し、第2ミスに対して前記第1置換候補を削除するセット制御ロジックと、前記第1ミスの後に下位キャッシュにおける前記第1置換候補のキャッシュラインを無効にするメッセージを発行するキャッシュ制御ロジックとを有するキャッシュと、
    チップセットと、
    前記キャッシュと前記チップセットとを接続するシステムインターコネクトと、
    前記チップセットに接続する音声入出力と、
    を有するシステム。
  21. 前記セット制御ロジックは、前記第1ミスの後に前記第1置換候補に対するヒットが発生すると、第2置換候補を特定する、請求項20記載のシステム。
  22. 前記セット制御ロジックは、前記第1置換候補のキャッシュラインを前記下位キャッシュに送信する、請求項21記載のシステム。
  23. 前記セット制御ロジックは、置換方法により前記第1置換候補を特定する、請求項20記載のシステム。
  24. 前記置換方法はランダム法である、請求23記載のシステム。
  25. 前記置換方法は、FIFO(First−In−First−Out)法である、請求項23記載のシステム。
  26. 前記置換方法は、LRU(Least−Recently−Used)法である、請求項23記載のシステム。
  27. 前記セット制御ロジックは、前記第1ミスの後に前記第1置換候補に対するヒットが発生すると、第2置換候補を特定し、前記第1置換候補をMRU(Most−Recently−Used)として設定する、請求項26記載のシステム。
  28. 前記セット制御ロジックは、前記第2ミスが発生する前に前記第2置換候補を特定する、請求項27記載のシステム。
  29. キャッシュに対する第1ミスの後に第1置換候補を特定する手段と、
    前記キャッシュに対する下位キャッシュにおける前記第1置換候補に対応するキャッシュラインを無効にする手段と、
    前記キャッシュに対する第2ミスの後に、前記キャッシュから前記第1置換候補を削除する手段と、
    を有する装置。
  30. 前記第1ミスの後に前記第1置換候補に対するヒットが発生すると、第2置換候補を特定する手段をさらに有する、請求項29記載の装置。
  31. 前記ヒットに応答して、前記キャッシュラインを前記下位キャッシュに送信する手段をさらに有する、請求項30記載の装置。
  32. 前記第1置換候補を特定する手段は、置換装置を実現する手段を有する、請求項29記載の装置。
  33. 前記置換方法は、ランダム選択により前記第1置換候補を決定する手段を有する、請求項32記載の装置。
  34. 前記置換方法は、FIFO(First−In−First−Out)を実現することにより前記第1置換候補を決定する手段を有する、請求項32記載の装置。
  35. 前記置換方法は、LRU(Least−Recently−Used)キャッシュラインを決定することによって、前記第1置換候補を決定する手段を有する、請求項32記載の装置。
  36. 前記第1ミスの後に前記第1置換候補に対するヒットが発生すると、第2置換候補を特定する手段と、前記第1置換候補をMRU(Most−Recently−Used)として設定する手段とをさらに有する、請求項35記載の装置。
  37. 前記第2置換候補を特定する手段は、前記第2ミスの前に該特定を実行する、請求項36記載の装置。
JP2007533589A 2004-09-23 2005-09-13 包含キャッシュにおける望ましくない置換動作を低減するための先行犠牲選択のための方法及び装置 Expired - Fee Related JP4226057B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/950,279 US7669009B2 (en) 2004-09-23 2004-09-23 Method and apparatus for run-ahead victim selection to reduce undesirable replacement behavior in inclusive caches
PCT/US2005/033700 WO2006034289A1 (en) 2004-09-23 2005-09-13 Method and apparatus for run-ahead victim selection to reduce undesirable replacement behavior in inclusive caches

Publications (2)

Publication Number Publication Date
JP2008513907A true JP2008513907A (ja) 2008-05-01
JP4226057B2 JP4226057B2 (ja) 2009-02-18

Family

ID=35519761

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007533589A Expired - Fee Related JP4226057B2 (ja) 2004-09-23 2005-09-13 包含キャッシュにおける望ましくない置換動作を低減するための先行犠牲選択のための方法及び装置

Country Status (6)

Country Link
US (1) US7669009B2 (ja)
JP (1) JP4226057B2 (ja)
CN (1) CN101023414B (ja)
DE (1) DE112005002268T5 (ja)
GB (1) GB2430288B (ja)
WO (1) WO2006034289A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008129712A (ja) * 2006-11-17 2008-06-05 Toshiba Corp 情報処理装置およびデータ検索方法
KR101602150B1 (ko) * 2014-11-10 2016-03-10 전남대학교산학협력단 공간 지역성 인지 선인출 기법을 이용하는 메모리 장치, 그 메모리 장치를 포함하는 컴퓨팅 시스템, 데이터 인출 방법 및 데이터 인출 프로그램

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8427490B1 (en) 2004-05-14 2013-04-23 Nvidia Corporation Validating a graphics pipeline using pre-determined schedules
US8624906B2 (en) * 2004-09-29 2014-01-07 Nvidia Corporation Method and system for non stalling pipeline instruction fetching from memory
US8725990B1 (en) 2004-11-15 2014-05-13 Nvidia Corporation Configurable SIMD engine with high, low and mixed precision modes
US20060112226A1 (en) * 2004-11-19 2006-05-25 Hady Frank T Heterogeneous processors sharing a common cache
US9092170B1 (en) 2005-10-18 2015-07-28 Nvidia Corporation Method and system for implementing fragment operation processing across a graphics bus interconnect
US8683126B2 (en) 2007-07-30 2014-03-25 Nvidia Corporation Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory
US8411096B1 (en) 2007-08-15 2013-04-02 Nvidia Corporation Shader program instruction fetch
US9024957B1 (en) 2007-08-15 2015-05-05 Nvidia Corporation Address independent shader program loading
US8659601B1 (en) 2007-08-15 2014-02-25 Nvidia Corporation Program sequencer for generating indeterminant length shader programs for a graphics processor
US8698819B1 (en) 2007-08-15 2014-04-15 Nvidia Corporation Software assisted shader merging
US8078805B1 (en) * 2007-10-07 2011-12-13 Wisair Ltd. Method and system for communicating with a universal serial bus device
US8780123B2 (en) 2007-12-17 2014-07-15 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US9064333B2 (en) * 2007-12-17 2015-06-23 Nvidia Corporation Interrupt handling techniques in the rasterizer of a GPU
US8464000B2 (en) * 2008-02-29 2013-06-11 Qualcomm Incorporated Systems and methods for cache line replacements
US9058272B1 (en) 2008-04-25 2015-06-16 Marvell International Ltd. Method and apparatus having a snoop filter decoupled from an associated cache and a buffer for replacement line addresses
US8681861B2 (en) 2008-05-01 2014-03-25 Nvidia Corporation Multistandard hardware video encoder
US8923385B2 (en) 2008-05-01 2014-12-30 Nvidia Corporation Rewind-enabled hardware encoder
US8489851B2 (en) 2008-12-11 2013-07-16 Nvidia Corporation Processing of read requests in a memory controller using pre-fetch mechanism
US8364898B2 (en) * 2009-01-23 2013-01-29 International Business Machines Corporation Optimizing a cache back invalidation policy
US8250303B2 (en) 2009-09-30 2012-08-21 International Business Machines Corporation Adaptive linesize in a cache
US8769209B2 (en) * 2010-12-20 2014-07-01 Intel Corporation Method and apparatus for achieving non-inclusive cache performance with inclusive caches
CN102662861B (zh) * 2012-03-22 2014-12-10 北京北大众志微系统科技有限责任公司 末级高速缓存插入策略软件控制方法
US9244841B2 (en) * 2012-12-31 2016-01-26 Advanced Micro Devices, Inc. Merging eviction and fill buffers for cache line transactions
CN104750423B (zh) * 2013-12-25 2018-01-30 中国科学院声学研究所 一种优化pcm内存写的方法和装置
JP6770230B2 (ja) * 2016-09-30 2020-10-14 富士通株式会社 演算処理装置、情報処理装置及び演算処理装置の制御方法
JP6249120B1 (ja) * 2017-03-27 2017-12-20 日本電気株式会社 プロセッサ
US11556477B2 (en) * 2018-06-15 2023-01-17 Arteris, Inc. System and method for configurable cache IP with flushable address range
US11379380B2 (en) 2020-05-07 2022-07-05 Nxp Usa, Inc. Systems and methods for managing cache replacement

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4008460A (en) * 1975-12-24 1977-02-15 International Business Machines Corporation Circuit for implementing a modified LRU replacement algorithm for a cache
JP3289661B2 (ja) * 1997-11-07 2002-06-10 日本電気株式会社 キャッシュメモリシステム
SE512880C2 (sv) * 1998-07-03 2000-05-29 Ericsson Telefon Ab L M Ett cacheservernät
US6535958B1 (en) * 1999-07-15 2003-03-18 Texas Instruments Incorporated Multilevel cache system coherence with memory selectively configured as cache or direct access memory and direct memory access
US6385695B1 (en) * 1999-11-09 2002-05-07 International Business Machines Corporation Method and system for maintaining allocation information on data castout from an upper level cache
US6687789B1 (en) * 2000-01-03 2004-02-03 Advanced Micro Devices, Inc. Cache which provides partial tags from non-predicted ways to direct search if way prediction misses
US6574710B1 (en) * 2000-07-31 2003-06-03 Hewlett-Packard Development Company, L.P. Computer cache system with deferred invalidation
US6701417B2 (en) * 2001-04-11 2004-03-02 Sun Microsystems, Inc. Method and apparatus for supporting multiple cache line invalidations per cycle
US7103721B2 (en) * 2003-04-28 2006-09-05 International Business Machines Corporation Cache allocation mechanism for biasing subsequent allocations based upon cache directory state
US7284095B2 (en) * 2004-08-18 2007-10-16 International Business Machines Corporation Latency-aware replacement system and method for cache memories

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008129712A (ja) * 2006-11-17 2008-06-05 Toshiba Corp 情報処理装置およびデータ検索方法
KR101602150B1 (ko) * 2014-11-10 2016-03-10 전남대학교산학협력단 공간 지역성 인지 선인출 기법을 이용하는 메모리 장치, 그 메모리 장치를 포함하는 컴퓨팅 시스템, 데이터 인출 방법 및 데이터 인출 프로그램

Also Published As

Publication number Publication date
CN101023414A (zh) 2007-08-22
GB2430288A (en) 2007-03-21
US7669009B2 (en) 2010-02-23
WO2006034289A1 (en) 2006-03-30
CN101023414B (zh) 2012-01-11
GB0700981D0 (en) 2007-02-28
JP4226057B2 (ja) 2009-02-18
GB2430288B (en) 2007-11-07
DE112005002268T5 (de) 2007-08-23
US20060064547A1 (en) 2006-03-23

Similar Documents

Publication Publication Date Title
JP4226057B2 (ja) 包含キャッシュにおける望ましくない置換動作を低減するための先行犠牲選択のための方法及び装置
JP4128878B2 (ja) キャッシュ中のラインを投機的に無効にする方法とシステム
JP2022534892A (ja) 書き込みミスエントリのドレインをサポートする犠牲キャッシュ
US7698508B2 (en) System and method for reducing unnecessary cache operations
US5706464A (en) Method and system for achieving atomic memory references in a multilevel cache data processing system
JP3254433B2 (ja) 再試行されるスヌープ・ヒットに対してコヒーレンシ状態を最終的な状態に向かって進める方法
US8762651B2 (en) Maintaining cache coherence in a multi-node, symmetric multiprocessing computer
US8423736B2 (en) Maintaining cache coherence in a multi-node, symmetric multiprocessing computer
US6374332B1 (en) Cache control system for performing multiple outstanding ownership requests
US10824567B2 (en) Selectively preventing pre-coherence point reads in a cache hierarchy to reduce barrier overhead
CN111263934B (zh) 至少具有三个缓存级别的缓存层级的混合低级缓存包含策略
JP2000250812A (ja) メモリ・キャッシュ・システムおよびその管理方法
US9684595B2 (en) Adaptive hierarchical cache policy in a microprocessor
JPH11328015A (ja) 割振り解除方法およびデ―タ処理システム
JP3245125B2 (ja) 垂直キャッシュのための擬似精細i−キャッシュ包含性
JP2004199677A (ja) キャッシュを動作させるためのシステム及び方法
CN117609110A (zh) 一种缓存方法、高速缓存、电子设备及可读存储介质
JP2023504622A (ja) ある要求に対してコヒーレンス保護を拡張するキャッシュ・スヌーピング・モード
US7669013B2 (en) Directory for multi-node coherent bus
JP2023509334A (ja) 特定のリクエストに対するコヒーレンス保護を拡張するキャッシュ・スヌーピング・モード
TWI793812B (zh) 微處理器、快取記憶體存儲器系統及其中實現的方法
CN114430819B (zh) 数据处理系统及其处理单元和处理方法
US11157408B2 (en) Cache snooping mode extending coherence protection for certain requests
CN115605849A (zh) 核对核高速缓存隐藏和目标发现
US8856444B2 (en) Data caching method

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080708

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081008

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081125

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

Free format text: PAYMENT UNTIL: 20111205

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4226057

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121205

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20131205

Year of fee payment: 5

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

LAPS Cancellation because of no payment of annual fees