JP2007249971A - 統合キャッシュ階層における最新性情報の同期 - Google Patents

統合キャッシュ階層における最新性情報の同期 Download PDF

Info

Publication number
JP2007249971A
JP2007249971A JP2007063584A JP2007063584A JP2007249971A JP 2007249971 A JP2007249971 A JP 2007249971A JP 2007063584 A JP2007063584 A JP 2007063584A JP 2007063584 A JP2007063584 A JP 2007063584A JP 2007249971 A JP2007249971 A JP 2007249971A
Authority
JP
Japan
Prior art keywords
cache
level cache
message
throttling
synchronization
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
JP2007063584A
Other languages
English (en)
Other versions
JP4195902B2 (ja
Inventor
Christopher Shannon
シャノン クリストファー
Ronak Singhal
シンガル ロナク
Per Hammarlund
ハメルルンド ペル
Hermann Gartler
ガートラー ハーマン
Glenn Hinton
ヒントン グレン
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 JP2007249971A publication Critical patent/JP2007249971A/ja
Application granted granted Critical
Publication of JP4195902B2 publication Critical patent/JP4195902B2/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/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list

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

【課題】 本発明の課題は、プロセッサにより頻繁にアクセスされる下位レベルキャッシュのキャッシュラインを上位レベルキャッシュから排除する可能性を低減させることによりパフォーマンスを向上させるための方法、装置、物及びシステムを提供することである。
【解決手段】 本発明は、下位レベルキャッシュの下位レベルキャッシュラインに存在するデータに対するキャッシュアクセスリクエストを受け付けるステップと、前記下位レベルキャッシュに統合される上位レベルキャッシュに前記下位レベルキャッシュラインに関する最新性情報を送信するステップとを有する方法を提供する。
【選択図】 図2

Description

本発明は、プロセッサに関し、より詳細には、マルチレベルキャッシュ階層を有するシステムのプロセッサに関する。
多くのシステムは、データが使用されるプロセッサにより密接に関連してデータを一時的に格納する1以上のキャッシュメモリを有する。このようにして、短縮されたデータ抽出時間がプロセッサにより実現することが可能であり、パフォーマンスを向上させることができる。マルチレベルキャッシュメモリが、システムに存在するかもしれない。これらのキャッシュレベルは、プロセッサ内に設けることが可能ないわゆるレベルゼロ(L0)キャッシュメモリと、プロセッサ内に設けることがさらに可能ないわゆるレベルワン(L1)キャッシュメモリとを有するかもしれない。プロセッサ内部又はそれに密接に接続されるさらなるレベルのキャッシュメモリがさらに、各種システムに設けることが可能である。
いくつかのシステムでは、マルチレベルキャッシュメモリが、統合(inclusive)キャッシュ階層として実現されるかもしれない。統合キャッシュ階層では、キャッシュメモリの1つは(すなわち、下位レベルキャッシュメモリ)、他のキャッシュメモリ(すなわち、上位レベルキャッシュメモリ)に含まれるデータの一部を有する。キャッシュ階層は、それらが相対的に速いアクセススピードを有するより小さなキャッシュが頻繁に使用されるデータを有することを可能にするため、プロセッサのパフォーマンスを向上させるかもしれない。他方、より低速なアクセススピードを有するより小さなキャッシュより大きなキャッシュは、頻繁には使用されないデータ(下位レベルキャッシュのデータのコピーと共に)を格納する。典型的には、このような統合キャッシュ階層の下位レベルキャッシュメモリは、より上位のレベルのキャッシュメモリより小さなものとなる。
統合キャッシュ階層はある共通のデータを有しているため、1つのキャッシュレベルのキャッシュラインの排除(eviction)は、キャッシュコヒーレンシを維持するため、他のレベルのキャッシュ階層における対応するキャッシュラインの排除を引き起こすかもしれない。より詳細には、より上位のレベルのキャッシュにおける排除は、より下位のレベルのキャッシュにおける排除を引き起こすかもしれない。各種排除スキームが、異なるキャッシュメモリにおいて利用可能である。1つの共通した排除スキームは、最も最近利用されていないキャッシュラインが排除に選ばれるLRU(Least Recently Used)スキームとして知られている。従って、各キャッシュラインは、キャッシュにおける他のキャッシュラインに関するそれの経時を示すためのそれに係る最新性情報を有するかもしれない。さらなるキャッシュ処理技術は、キャッシュラインのアクセス可能性及び/又は有効性を示すため、状態データとキャッシュラインとを関連付けることを含む。例えば、状態データは、いわゆるMESI状態として知られている、modified(M)、exclusive(E)、shared(S)及び/又はinvalid(I)の各状態を含むかもしれない。
従来の排除技術を利用して、より上位のレベルのキャッシュのキャッシュラインは、下位レベルキャッシュにおける当該キャッシュラインの対応するコピーがプロセッサにより多くアクセスされていても、古い(すなわち、最も最近利用されていないキャッシュライン)ものであるとして排除されるかもしれない。統合性(inclusivity)を有する階層では、より上位のレベルのキャッシュラインが排除されると、下位レベルキャッシュの対応するキャッシュラインもまた明示的に無効にされなければならない。このような下位レベルにおいて無効にされたキャッシュラインは、プロセッサにより頻繁にアクセスされるデータを有するかもしれず、不要なキャッシュミスを引き起こすこととなる。これらのキャッシュミスは、メインメモリなどの他のメモリ位置から有効なデータを取得するための大きな遅延を引き起こす。
さらに、統合キャッシュ階層が、マルチコアプロセッサのマルチコアなどの複数のプロセッサの間に共有されているより上位のレベルのキャッシュを有するとき、問題が生じる。このシナリオでは、各コアは上位レベルキャッシュにおいて少なくともいくつかのキャッシュラインを占有するが、すべてのコアが共有されるリソースについて競合する。コアの1つがそれの下位レベルキャッシュ内に適合する小さなワーキングセットを使用するとき、当該コアは、リクエストがそれの下位レベルキャッシュにおいてヒットするため、(あったとして)ほとんど上位レベルキャッシュにリクエストを送信する必要がなくなる。この結果、上位レベルキャッシュにおける当該コアのラインは、当該コアがそれらを使用する頻度に関係なく古いものとなる。キャッシュラインを上位レベルキャッシュに持続的に割り当てる他のコアと上位レベルキャッシュを共有するとき、当該コアのデータが排除され、パフォーマンスの低下を招くこととなる。
上記問題点に鑑み、本発明は、プロセッサにより頻繁にアクセスされる下位レベルキャッシュのキャッシュラインを上位レベルキャッシュから排除する可能性を低減させることによりパフォーマンスを向上させるための方法、装置、物及びシステムを提供することである。
上記課題を解決するため、本発明は、下位レベルキャッシュの下位レベルキャッシュラインに存在するデータに対するキャッシュアクセスリクエストを受け付けるステップと、
前記下位レベルキャッシュに統合される上位レベルキャッシュに前記下位レベルキャッシュラインに関する最新性情報を送信するステップとを有する方法を提供する。
さらに、本発明は、第1レベルキャッシュと、前記第1レベルキャッシュに接続される第2レベルキャッシュと、アクセスリクエストが前記第1レベルキャッシュに存在するデータに対応する場合、前記第2レベルキャッシュにメッセージを送信するメッセージユニットとを有する装置を提供する。
さらに、本発明は、マシーンにより実行されると、ある期間にキャッシュ階層の第1キャッシュから第2キャッシュに送信される同期メッセージの個数を決定するステップと、前記同期メッセージの個数がメッセージ閾値を超過する場合、前記同期メッセージをスロットリングするステップとを有する方法を前記マシーンが実行することを可能にする命令を有するマシーン可読記憶媒体を有する物を提供する。
さらに、本発明は、第1キャッシュメモリを有する第1プロセッサコアと、第2キャッシュメモリを有する第2プロセッサコアと、前記第1プロセッサコアと前記第2プロセッサコアとに接続され、前記第1キャッシュメモリにおいてヒットが生じた場合、前記第1プロセッサコアが同期メッセージを送信する共有キャッシュメモリと、前記共有キャッシュメモリに接続されるDRAM(Dynamic Random Access Memory)とを有するシステムを提供する。
本発明によると、プロセッサにより頻繁にアクセスされる下位レベルキャッシュのキャッシュラインを上位レベルキャッシュから排除する可能性を低減させることによりパフォーマンスを向上させるための方法、装置、物及びシステムを提供することができる。
本発明の実施例は、キャッシュ階層の複数レベル間の経時情報(ここではまた、最新性又はLRU情報と呼ばれる)を同期するのに利用可能である。より詳細には、最新性データを提供する同期メッセージが、統合キャッシュ階層の複数レベル間の最新性データを同期するのに利用可能である。このように、上位レベルキャッシュは、下位レベルキャッシュの対応するキャッシュラインの使用に関する情報によって更新される。この結果、上位レベルキャッシュからの排除は、下位レベルキャッシュに存在するそれのキャッシュラインに対する正しい経時情報を考慮するかもしれない。従って、プロセッサにより頻繁にアクセスされる下位レベルキャッシュのキャッシュラインは、上位レベルキャッシュから排除される可能性は低くなり、これによりパフォーマンスが向上する。すなわち、より最近に使用された下位レベルキャッシュのキャッシュラインが、上位レベルキャッシュの対応するキャッシュラインに維持され、下位レベルキャッシュにおけるキャッシュミスから生じるパフォーマンスペナルティを低減する。
さらに、マルチコアプロセッサ又は他のマルチプロセッサシステムが存在する実施例では、当該LRU情報を提供することは、1つのコアが上位レベルキャッシュからの過剰な排除を生じさせることを回避するかもしれない。このように、より少ないキャッシュミスしか有しないコアは、関連するキャッシュラインが排除されることを回避するため(上位レベルキャッシュと下位レベルキャッシュの両方において)、それに関連する下位レベルキャッシュからのLRU情報を上位レベルキャッシュに送信することが可能である。
本発明の実施例により送信されるLRU情報は所望されない排除を回避することが可能であるが、バストラフィックの増大を生じさせるかもしれない。従って、いくつかの実施例は、各種システム基準に基づき同期メッセージの送信を抑制するスロットリング機構を有するかもしれない。例えば、このような同期メッセージの特定数のみが所与の時間インターバルに送信されるようにしてもよい。さらに、同期トラフィックは有用な作業の進捗をブロックするかもしれないため、かなりの量の他のトランザクショントラフィックが生じているときは、コアは同期メッセージの送信を回避するかもしれない。
ここで説明されるように、各種ハードウェア、ソフトウェア、ファームウェア及び/又はそれらの組み合わせが、本発明の実施例による方法を実行するのに実現可能である。さらに、ここでは特にマルチコアプロセッサに関して説明されるが、本発明の範囲がこれに限定されず、統合キャッシュ階層を含む他のシステムや、このような階層は備えないが、スヌープフィルタなどの他の統合データ構造を維持する他のシステムにおいて実現されてもよいということが理解されるべきである。
図1を参照するに、本発明の一実施例によるプロセッサのブロック図が示される。図1に示されるように、プロセッサ10は、複数のプロセッサコア20〜20(コア20により総称される)を含むマルチコアプロセッサであってもよい。図1に示されるように、各コアは、キャッシュ階層の複数レベルを有するかもしれない。具体的には、図1に示されるように、各コア20は最下位レベルキャッシュ25〜25(キャッシュ25により総称される)を有するかもしれない。一実施例では、キャッシュ25は、本発明の範囲がこれに限定されるものではないが、L0キャッシュに対応するものであってもよい。各コア20はさらに、中間レベルキャッシュ28〜28(キャッシュ28により総称される)を有してもよい。中間レベルキャッシュ28は、いくつかの実施例ではL1キャッシュに対応するかもしれない。さらに図1に示されるように、各コア20はさらに、メッセージユニット22〜22(メッセージユニット22として総称される)を有する。以下でさらに説明されるように、メッセージユニット22は、最新性メッセージを生成及び送信するのに利用可能である。
プロセッサ10はさらに、下位レベルキャッシュに存在するデータのコピーを含む上位レベルキャッシュであるかもしれないラストレベルキャッシュ(LLC)40を有するかもしれない。図1に示されるように、各コア20は、LLC40が共有メモリとして機能するように、リンク30〜30(リンク30として総称される)を介しLLC40に接続されるかもしれない。
各実施例では、プロセッサ10は、統合キャッシュ階層を有するかもしれない。例えば、図1の統合キャッシュ階層では、キャッシュ25は、キャッシュ28の内部にデータの一部を有し、さらにキャッシュ28が、キャッシュ40にデータの一部を有するかもしれない。ラストレベルキャッシュ40からのキャッシュラインの排除に応答して、キャッシュコヒーレンシを維持するため、いくつかの実施例では、所与の中間レベルキャッシュ28と最下位レベルキャッシュ25の対応するキャッシュラインがまた排除されるかもしれない。
動作中、与えられたコアの実行ユニットからのメモリリクエストはまず(図1に図示せず)、システム内の他の何れかのキャッシュを検索する前に、キャッシュ階層の最下位レベルにアクセスするかもしれない。従って、パフォーマンスを向上させるため、頻繁にアクセスされたデータが可能な最下位キャッシュレベル、すなわち、キャッシュ25に存在するかもしれない。リクエストされたデータがキャッシュ25に存在しない場合、キャッシュ28は次に、当該データがそこにあるか判断するためアクセスされるかもしれない。図1に示される実施例では、各中間レベルキャッシュ28は、複数のコアの間の共有コアであるLLC40にリクエストが発行される前に、各コア20に対する最終的なルックアップポイントとなる。
各実施例では、明示的なメッセージセットが、それの対応する上位レベルキャッシュの1以上とコアとの間でLRU情報を通信するのに利用されてもよい。このように、経時又は最新性情報が上位レベルキャッシュにおいて更新されてもよく、頻繁に使用される下位レベルキャッシュラインに係るキャッシュラインの排除を低減することができる。これらの最新性メッセージは、下位レベルキャッシュ内でヒットするトランザクションに対するリードリクエストであるかもしれず、メッセージユニット22から提供されるかもしれない。各実施例では、これらのリードリクエストは、コアにデータを返すことを要求しない。その代わりに、当該リードリクエストは、対応するキャッシュラインを読み出すことなく、それの最新性情報を更新するため上位レベルキャッシュにより利用される。
図2を参照するに、本発明の一実施例による方法のフロー図が示される。方法100は、下位レベルキャッシュからリクエストされたデータにアクセスし、下位レベルキャッシュにおけるヒットに応答して、上位レベルキャッシュに最新性情報を提供するのに利用されるかもしれない。一実施例では、方法100は、プロセッサコアのキャッシュコントローラにおいて実現されてもよい。図2に示されるように、方法100は、キャッシュからデータをリクエストすることによって開始される(ブロック105)。例えば、プロセッサコアは、最下位レベルキャッシュからデータをリクエストするかもしれない。次に、最下位レベルキャッシュにキャッシュヒットがあるか判断される(ブロック110)。
キャッシュミスがある場合(すなわち、当該データが最下位レベルキャッシュに存在しない場合)、コントロールはブロック115に移行する。そこでは、リクエストされたデータがメモリ階層から取得される(ブロック115)。図2に示されるように、方法100は、当該地点で終了するかもしれず、リクエストされたデータが従来方法によりアクセスされるかもしれない。
図2をさらに参照するに、ブロック110においてキャッシュヒットがあると判断される場合、コントロールはブロック120に移行する。そこにおいて、リクエストされたデータが要求元に返されるかもしれない(ブロック120)。すなわち、要求されたデータを含むキャッシュラインが、最下位レベルキャッシュからプロセッサコアに送信される。次に、メッセージ抑制が起動されるか判断される(ブロック130)。以下で詳細に説明されるように、このようなスロットリングは下位レベルキャッシュから上位レベルキャッシュへのメッセージトラフィックを回避するのに起動されるかもしれない。スロットリングが起動されない場合、コントロールはブロック130から140に移行する。その後、対応するキャッシュライン(ヒットとなった下位レベルキャッシュのキャッシュライン)に対する同期メッセージが、キャッシュ階層の次のレベルに送信されるかもしれない(ブロック140)。これらのメッセージは1以上のキャッシュレベルに送信され、キャッシュ階層の何れか所望されるレベルからのものであってもよいということに留意されたい。さらに、同期メッセージに基づき、送信されたこのようなメッセージのカウント(すなわち、メッセージカウント)が更新されてもよい(ブロック140)。
図2をさらに参照するに、対応するキャッシュラインの最新性情報が次のレベルのキャッシュにおいて更新されるかもしれない(ブロック150)。一例として、次のレベルのキャッシュメモリは、当該キャッシュラインに係るタグを、当該キャッシュラインをMRU(Most Recently Used)キャッシュラインとして示すよう更新するようにしてもよい。コントロールはブロック150又は130からブロック160に移行する。そこでは、リクエストはトランザクションキューから割当解除されるかもしれない(ブロック160)。すなわち、当該データに対する初期的なプロセッサリクエストが、保留中のコアトランザクションを格納するトランザクションバッファなどのバッファから割当解除されるかもしれない。これにより、方法100は終了する。図2の実施例を用いて説明されたが、本発明の範囲はこれに限定されるものでなく、下位レベルキャッシュから上位レベルキャッシュにLRU情報を提供する異なる方法が実現されてもよい。
下位レベルキャッシュから上位レベルキャッシュに最新性情報を提供することによって、下位レベルキャッシュ(又は統合上位レベルキャッシュに存在する)において最も最近使用されたデータが、MRUキャッシュラインとして上位レベルキャッシュにおいて更新されるかもしれない。このように、当該キャッシュラインは、上位レベルキャッシュ(従って、下位レベルキャッシュにおいても)における排除を回避するかもしれない。
統合キャッシュ階層におけるキャッシュ間で送信される同期メッセージはまたプロセッサの共有リソースに影響を与えるため、このようなメッセージは実際にはパフォーマンスの低下を引き起こすかもしれない。従って、送信される最新性情報がキャッシュ動作に対するかなり肯定的な影響を有していない場合、さらなるキャッシュトラフィックは実際にはパフォーマンスの低下を引き起こす可能性がある。従って、このようなメッセージについて利用可能な最大帯域幅を制限するため、様々な方法により同期メッセージを抑制するようにしてもよい。このように、可能性のある否定的な影響を最小限に抑えながら、このようなメッセージを送信する潜在的なパフォーマンスゲインが最大化されるかもしれない。
各実施例では、スロットリングのための複数の機構が実現可能である。例えば、カウンタベーススロットリング及び占有ベーススロットリングが所与のシステムにおいて実現可能である。一実施例では、1ビットの状態が、同期メッセージが所与の時点に送信可能であるか示すようにするかもしれない。ここではヒントビット(hint bit)と呼ばれる当該ビットは、同期メッセージが送信されることを回避するため、カウンタベーススロットリング及び/又は占有ベーススロットリングによって抑制することができる。一実施例では、第1のスロットリング機構は、同期メッセージに利用可能な帯域幅を効果的に制限するカウンタベースアプローチであってもよい。設定可能なカウンタは、ヒントビットが設定可能な時間インターバルを決定するのに利用可能である。当該カウンタのオーバーフローにより、新たなインターバルがトリガーされるかもしれない。各実施例において、別のカウンタが、所与のインターバルにおいて送信される同期メッセージの個数を追跡するのに利用可能である。ヒントビットは、各インターバルの最初に設定され、同期メッセージの個数が当該インターバルに対して超過するとクリアされる。しかしながら、いくつかの実施例では、1つのメッセージのみがインターバル毎に送信され、これにより、第2のカウンタの必要性が回避されるかもしれない。
第2のスロットリング機構は、キャッシュ階層が他の有用な作業により占有されるとき、メッセージ帯域幅を制限する占有ベースアプローチであってもよい。例えば、キャッシュ階層において保留されるリクエストの個数が、占有ベーススロットリングを実現するか否か判断するのに分析される。一実施例では、保留中のトランザクションを保持するコアの共通のキュー処理構造が解析される。より詳細には、いくつかの実施例では、ある状態のトランザクションのみがキャッシュ階層の他の何れかにおいて現在保留中のリクエストに対応するように、キューの各エントリが分析されてもよい。所与の時間インターバルにおける発行されたエントリの個数が閾値を超過する場合、同期メッセージは次にインターバルまで抑制される。
異なるスロットリングアプローチが、ヒントビットを設定及びクリアするのに実現されるかもしれない。一例では、ヒントビットは第1カウンタがオーバーフローすると設定され、新たなインターバルのスタートを示すこととなる。この時点において、トランザクションキューの発行済みエントリの個数がチェックされ、閾値レベルと比較される。当該キューの占有レベルが閾値未満である場合に限って、ヒントビットは実際に設定されるかもしれない。そうでない場合、当該ビットは抑制され、以降におけるキューの占有に変更に関係なく、次のインターバルの開始まで設定することができない。
図3を参照するに、本発明の一実施例によるメッセージスロットリング方法のフロー図が示される。方法200は、与えられたコアから最新性メッセージをスロットリングするか否か判断するため実行されるかもしれない。図3に示されるように、方法200は、メッセージスロットリングを不可にすることによって、すなわち、同期メッセージをイネーブルとすることによって開始されるかもしれない(ブロック210)。例えば、プロセッサが起動されると、同期メッセージが送信に対してイネーブルとされるかもしれない。
次に、カウンタがオーバーフローしたか否か判断される(ブロック220)。このカウンタは、所定の範囲の数に対して継続的にカウントとされるカウンタであるかもしれない。各実施例において、当該カウンタはキャッシュアクセスなどのイベントやサイクルをカウントするかもしれない。当該カウンタは、オーバーフローが発生するまでそれのカウントを持続的にインクリメントするかもしれない。カウンタがオーバーフローすると、コントロールはブロック210に移行する。そこにおいて、メッセージスロットリング(起動されている場合)が不可とされるかもしれない。
図3を参照するに、ブロック220においてカウンタがオーバーフローしていないと判断すると、コントロールはブロック230に移行し、そこで同期メッセージカウントがメッセージ閾値を超過するか判断される(ブロック230)。同期メッセージカウントは、カウンタの所与のサイクルにおいて(すなわち、カウンタがオーバーフローする前に)送信される同期メッセージの個数に対応するかもしれない。メッセージ閾値は可変的なものであってもよく、異なる実施例では、ユーザ制御可能なものであってもよいということに留意されたい。同期メッセージカウントがメッセージ閾値を超過する場合、コントロールはブロック240に移行し、そこにおいてメッセージスロットリングがイネーブルとされる。従って、コントロールは、カウンタのカウント値の持続的な判定のためブロック220に戻る。
ブロック230において、同期メッセージカウントがメッセージ閾値を超過しないと判断されると、コントロールはブロック250に移行する。そこでは、コアのトランザクションキューレベルがウォーターマーク又は水準閾値(watermark threshold)を超過しているか判断される(ブロック250)。すなわち、コアがそれのすべての保留中のトランザクションに対するエントリを含むそれに関連するトランザクションキューを有しているかもしれない。このようなトランザクションは、スヌープトラフィックや他のバストランザクションなどからメモリリード及びライトを含むかもしれない。このようなエントリが多数存在する場合、これは、メッセージトラフィックに依存するコアにおいて実行される有用な作業の作業量の表示となる。エントリ数がウォーターマーク閾値を超過する場合、上述したように、メッセージスロットリングをイネーブルにするため、コントロールはブロック240にわたされる。このように、同期メッセージに係るメッセージトラフィックは回避され、その代わりに、有用な作業が当該同期メッセージによって妨げられることなく進捗する。ブロック250において、トランザクションキューレベルがウォーターマーク閾値未満である場合、コントロールは上述したブロック220に戻る。図3の実施例を用いて説明したが、本発明の範囲がこれに限定されるものでないということは理解されるであろう。
スロットリング機構を実現する各種方法が、各実施例において実現される。例えば、ハードウェア、ソフトウェア、ファームウェア又はその組み合わせがスロットリングを実行するのに利用可能である。図4を参照するに、本発明の一実施例によるスロットルユニット300のブロックズが示される。一実施例では、スロットルユニット300は、図1のメッセージユニット22などのメッセージ生成ユニット内に構成されてもよい。しかしながら他の実施例では、スロットルユニット300が他の位置に設けられるかもしれない。スロットルユニット300は、その出力としてオーバーフロー信号(OF)を有する第1カウンタ310を含むかもしれない。第1カウンタ310は、所定の範囲において継続的にカウントし、その後オーバーフローするよう構成される。同期メッセージカウンタ320は、コアにより生成される各同期メッセージに対する信号を受信するよう接続される。従って、同期メッセージカウンタ320は、メッセージカウントを生成するかもしれない。カウンタ310及び320の出力は、スロットルロジック330に接続されるかもしれない。スロットルロジック330は、各種システムパラメータに基づき同期メッセージをスロットリングするか否か判断するため、図3に関して上述されたような方法を実現する。各閾値は、スロットルロジック330のレジスタに格納される。例えば、第1レジスタ335はメッセージ閾値を格納し、第2レジスタ340はウォーターマーク閾値を格納するようにしてもよい。これらの閾値は、同期メッセージをスロットリングするか否かの解析において各種カウントと比較するため、図3に関して上述されたように利用されるかもしれない。
図4にさらに示されるように、スロットルロジック330は、キューエントリの個数に対応する信号を受信するよう接続される。この個数は、関連付けされたコアなどのトランザクションキューのレベルに対応するかもしれない。各種閾値及び入力カウントに基づき、スロットルロジック330は、同期メッセージをスロットリングするか否か判断するかもしれない。スロットリングが起動されるべき場合、スロットル信号がスロットルロジック330から送信されるかもしれない。各実施例では、このようなスロットル信号は、同期メッセージを送信するキャッシュコントローラなどに送信される。図4の実施例を用いて説明したが、本発明の範囲がこれに限定されるものでないということが理解されるべきである。
各実施例を用いて、同期メッセージは下位レベルキャッシュから上位レベルキャッシュに送信される。これらのメッセージに基づき、キャッシュラインに係るタグデータの経時情報が更新される。これらの上位レベルキャッシュにおいて排除が行われると、更新された最新性情報は、上位レベルキャッシュにおいて最近アクセスされていないが、下位レベルキャッシュにおいて最近アクセスされたキャッシュラインの排除を回避するかもしれない。
図5を参照するに、本発明の一実施例による方法のフロー図が示される。図5に示されるように、方法400は、同期メッセージを生成し、当該メッセージを上位レベルキャッシュに送信し、当該メッセージデータにより上位レベルキャッシュを更新するのに利用可能である。図5を参照するに、方法400は、下位レベルキャッシュにおいてヒットしたラインに対応するキャッシュラインに対する同期メッセージを受信することによって開始される(ブロック410)。この同期メッセージのコンテンツは各実施例において可変的であるが、一実施例では、同期メッセージはゼロ長のリードリクエストであるかもしれない。同期メッセージを受信すると、上位レベルキャッシュは下位レベルキャッシュにアクノリッジメント信号を送り返す(ブロック420)。いくつかの実施例では、このアクノリッジメントメッセージは、本発明の範囲がこれに限定されるものではないが、グローバルオブザベーション(GO)信号であってもよい。
図5をさらに参照するに、ブロック420からコントロールがブロック430にわたされる。そこにおいて、同期メッセージに対応するキャッシュラインが上位レベルキャッシュに存在するか判断される(ブロック430)。典型的には、統合キャッシュメモリ階層では、下位レベルキャッシュに存在するキャッシュラインはまた、下位レベルキャッシュのデータを含む対応する上位レベルキャッシュに存在すべきである。しかしながら、データが上位レベルキャッシュに存在しない場合、コントロールはブロック430からブロック440にわたされる。そこでは、データがメモリ階層の他の部分からリクエストされるかもしれない(ブロック440)。しかしながら、他の実施例では、当該メッセージは省かれ、メッセージ関するさらなるアクションが実行されることはないかもしれない。ブロック440から、方法400は終了するかもしれない。
図5をさらに参照するに、データが上位レベルキャッシュに存在する場合、コントロールはブロック430からブロック450にわたされる。そこでは、関連するキャッシュラインに対する最新性情報が、上位レベルキャッシュにおいて更新されるかもしれない(ブロック450)。例えば、関連するキャッシュラインに対するキャッシュタグが最新性情報によって更新されるかもしれない。この最新性情報は、各実施例において可変的なものであるが、例えば、各トランザクションに対して継続的にインクリメントされるカウント値であってもよい、他の実施例では、タイムスタンプなどの値が利用されてもよく、又は他のLRU指標が利用されてもよい。このため、上位レベルキャッシュは、下位レベルキャッシュのそれの存続するキャッシュラインの利用に関するより正確な情報によって更新される。
図5をさらに参照するに、通常動作中、キャッシュラインは、新たなキャッシュラインが挿入可能となるように、上位レベルキャッシュから排除される必要があるかもしれない。このため、上位レベルキャッシュは、排除のためのラインを選択するため、排除ルーチンを実行するかもしれない(ブロック460)。排除ルーチンは、多数の各種形態をとりうる。一実施例では、LRU排除スキームが実現されるかもしれない。このため、上位レベルキャッシュは、何れのキャッシュラインが最も最近利用されていないキャッシュラインであるか判断し、当該ラインを排除用に選択するかもしれない。下位レベルキャッシュの最近利用されたキャッシュラインに対して送信された同期メッセージによって(すなわち、ブロック410)、上位レベルキャッシュの対応するキャッシュラインが、それの最新性情報に基づき維持され、上位レベルキャッシュの異なるキャッシュラインが代わりに破棄される(ブロック470)。図5の実施例を用いて説明したが、本発明の範囲がこれに限定されるものでなく、同期メッセージを実現し、排除を実行する他の方法が有効であるかもしれない。
本発明の実施例は、上位レベルキャッシュにおける経時情報の精度を向上させるかもしれない。このように、キャッシュは、よりグローバルに正確な情報に基づき、排除に関するより良好な決定を行うかもしれない。各実施例では、同期メッセージは、それが何れのデータのリターンも求めないという点で軽量なメッセージであるかもしれない。このため、各実施例では、下位レベルキャッシュのMRUキャッシュラインがキャッシュミスがなくても上位レベルキャッシュに可視的なものとすることが可能であるという点で、同期メッセージは上位レベルキャッシュが最適なキャッシュ処理を実行するためキャッシュラインの置換を処理することを可能にするかもしれない。
さらに統合上位レベルキャッシュを共有する複数の独立したキャッシュ階層を有するマルチコアシステムでは、コアのうちの上位レベルキャッシュへの非対称的なアクセスパターンが、同期メッセージを送信することによって一様にすることが可能であり、これにより、上位レベルキャッシュのより公平な共有を可能にする。従って、わずかなキャッシュミスを上位レベルキャッシュに送信するコアが、同期メッセージを介した負のパフォーマンスへの影響を回避することが可能となる。さらに、本発明の実施例により同期メッセージをスロットリングすることによって、マルチコアプロセッサのシングルコアが、例えば、コードストリームの実行時など、当該コアがそれのコアキャッシュに対する高いミスレートを被るとき、それの帯域幅を超過することが回避されるかもしれない。
多数の異なるシステムタイプによって、実施例が実現されるかもしれない。図6を参照するに、本発明の実施例によるマルチプロセッサシステムのブロック図が示される。図6に示されるように、マルチプロセッサシステム500は、ポイント・ツー・ポイントインターコネクトシステムであって、ポイント・ツー・ポイントインターコネクト550を介し接続される第1プロセッサ570と第2プロセッサ580とを有する。しかしながら他の実施例では、マルチプロセッサシステムは、マルチドロップバスや他の同様の実現形態などの他のバスアーキテクチャを有するものであってもよい。図6に示されるように、プロセッサ570と580のそれぞれは、他のコア及び潜在的には多数の他のコアが存在するかもしれないが、第1及び第2プロセッサコア(すなわち、プロセッサコア574aと574b及びプロセッサコア584aと584b)を含むマルチコアプロセッサであってもよい。図6の実施例には図示されていないが、第1及び第2プロセッサコアはそれぞれ1以上のキャッシュメモリを有してもよいということが理解されるべきである。さらに図6に示されるように、ラストレベルキャッシュメモリ575及び585はそれぞれ、プロセッサコア574aと574b及び584aと584bの各ペアに接続されてもよい。このようなアーキテクチャにおけるパフォーマンスを向上させるため、プロセッサ570及び680の内部のキャッシュコントローラ又は他のコントロールロジックは、本発明の実施例により最新性メッセージを生成、送信及び/又はスロットリングしてもよい。
図6をさらに参照するに、第1プロセッサ570はさらに、メモリコントローラハブ(MCH)572とポイント・ツー・ポイント(P−P)インタフェース586及び578を有する。同様に、第2プロセッサ580は、MCH582とP−Pインタフェース586及び588を有する。図6に示されるように、MCH572と582は、上記プロセッサを各自のメモリ、すなわち、各プロセッサにローカルに付属されるメインメモリの一部であるかもしれないメモリ532と534とに接続される。
第1プロセッサ570と第2プロセッサ580は、それぞれP−Pインターコネクト552と554を介しチップセット590に接続される。図6に示されるように、チップセット590は、P−Pインタフェース594と598を有する。さらに、チップセット590は、チップセット590をハイパフォーマンスグラフィックスエンジン538に接続するインタフェース592を有する。一実施例では、アドバンスドグラフィックスポート(AGP)バス539が、グラフィックスエンジン538とチップセット590とを接続するのに利用可能である。AGPバス539は、カリフォルニア州サンタクララにあるインテルコーポレイションによって1998年5月4日に公表されたAccelerated Graphics Port Interface Specification,Revision 2.0に準拠するものであってもよい。あるいは、ポイント・ツー・ポイントインターコネクト539がこれらのコンポーネントを接続してもよい。
チップセット590は、インタフェース596を介し第1バス516に接続されてもよい。一実施例では、第1バス516は、1995年6月のPCI Local Bus Specification,Production Version,Revision 2.1によって規定されるようなPCI(Peripheral Component Interconnect)バス、又はPCI Expressバスや他の第3世代入出力(I/O)インターコネクトバスなどのバスであってもよい。しかしながら、本発明の範囲はこれに限定されるものでない。
図6に示されるように、各種I/O装置514が、第1バス516と第2バス520とを接続するバスブリッジ518と共に第1バス516に接続されてもよい。一実施例では、第2バス520はLPC(Low Pin Count)バスであってもよい。例えば、キーボード/マウス522、通信装置526及びコード530を有するデータストレージユニット528などを含む各種装置が、第2バス520に接続されてもよい。さらに、音声I/O524が第2バス520に接続されてもよい。
各実施例はコードにより実現可能であり、当該命令を実行するようシステムをプログラムするのに利用可能な命令を格納した記憶媒体に格納されてもよい。記憶媒体は、以下に限定されるものではないが、フロッピー(登録商標)ディスク、光ディスク、CD−ROM(Compact Disk Read Only Memory)、CD−RW(Compact Disk ReWritable)、光磁気ディスクなどの任意のタイプのディスク、ROM(Read Only Memory)、RAM(Random Access Memory)、DRAM(Dynamic RAM)、SRAM(Static RAM)、EPROM(Erasable Programmable ROM)、EEPROM(Electrically EPROM)、フラッシュメモリ、磁気又は光カードなどの半導体デバイス、又は電子命令を格納するのに適した他の何れかのタイプのメディアを含む。
本発明が特定の実施例に関して説明されたが、当業者は、多数の改良及び変形を理解するであろう。添付した請求項は、本発明の趣旨及び範囲内に属するそのようなすべての改良及び変形をカバーするものであると意図される。
図1は、本発明の一実施例によるプロセッサのブロック図である。 図2は、本発明の一実施例による同期方法のフロー図である。 図3は、本発明の一実施例によるメッセージスロットリング方法のフロー図である。 図4は、本発明の一実施例によるスロットルユニットのブロック図である。 図5は、本発明の一実施例による方法のフロー図である。 図6は、本発明の一実施例によるマルチプロセッサシステムのブロック図である。
符号の説明
10 プロセッサ
20 プロセッサコア
22 メッセージユニット
25、28 キャッシュ
30 リンク
40 ラストレベルキャッシュ
300 スロットルユニット
310、320 カウンタ
330 スロットルロジック
335、340 レジスタ
500 マルチプロセッサシステム
550 ポイント・ツー・ポイントインターコネクト
570、580 プロセッサ

Claims (28)

  1. 下位レベルキャッシュの下位レベルキャッシュラインに存在するデータに対するキャッシュアクセスリクエストを受け付けるステップと、
    前記下位レベルキャッシュに統合される上位レベルキャッシュに前記下位レベルキャッシュラインに関する最新性情報を送信するステップと、
    を有する方法。
  2. 前記最新性情報に基づき、前記下位レベルキャッシュラインに対応する上位レベルキャッシュの上位レベルキャッシュラインに係る経時データを更新するステップをさらに有する、請求項1記載の方法。
  3. 前記経時データに少なくとも部分的に基づき、前記上位レベルキャッシュラインを排除せず、当該キャッシュラインに係るより古い経時データを有する第2の上位レベルキャッシュラインを排除するステップをさらに有する、請求項2記載の方法。
  4. 前記最新性情報を送信するステップは、ゼロ長リードリクエストを前記上位レベルキャッシュに送信するステップを有する、請求項1記載の方法。
  5. 前記ゼロ長リードリクエストに対応する最も最近利用された状態に、前記下位レベルキャッシュラインに対応する上位レベルキャッシュラインを設定するステップをさらに有する、請求項4記載の方法。
  6. 各々が複数のプロセッサコアの1つに係る複数の下位レベルキャッシュからのキャッシュアクセスリクエストに関する最新性情報を前記上位レベルキャッシュに送信するステップをさらに有する、請求項1記載の方法。
  7. 前記複数の下位レベルキャッシュの少なくとも1つに関する最新性情報の送信をスロットリングするステップをさらに有する、請求項6記載の方法。
  8. 前記複数の下位レベルキャッシュの少なくとも1つに係るプロセッサコアに対する帯域幅割当に基づきスロットリングするステップをさらに有する、請求項7記載の方法。
  9. 第1レベルキャッシュと、
    前記第1レベルキャッシュに接続される第2レベルキャッシュと、
    アクセスリクエストが前記第1レベルキャッシュに存在するデータに対応する場合、前記第2レベルキャッシュにメッセージを送信するメッセージユニットと、
    を有する装置。
  10. 前記メッセージユニットは、ゼロの長さフィールドを有するリードリクエストとして前記メッセージを生成する、請求項9記載の装置。
  11. 閾値数のメッセージが第1期間に前記メッセージユニットから送信された場合、前記送信をスロットリングするスロットル装置をさらに有する、請求項9記載の装置。
  12. 前記メッセージユニットは、前記第1レベルキャッシュにかかるコアのトランザクショントラフィックに少なくとも部分的に基づき、前記送信をスロットリングする、請求項11記載の装置。
  13. 前記スロットル装置はさらに、前記トランザクショントラフィックがトラフィック閾値を超過しているか判断し、超過している場合、前記送信をスロットリングするロジックを有する、請求項12記載の装置。
  14. 前記第2レベルキャッシュは、前記データを含む前記第2レベルキャッシュのキャッシュラインに対する最新性情報を更新する、請求項9記載の装置。
  15. 前記第2レベルキャッシュは、前記最新性情報に少なくとも部分的に基づき、前記データを有するキャッシュラインを維持し、異なるキャッシュラインを排除する、請求項14記載の装置。
  16. 前記第2レベルキャッシュは、前記第1レベルキャッシュより上位のレベルを有する、請求項9記載の装置。
  17. マシーンにより実行されると、
    ある期間にキャッシュ階層の第1キャッシュから第2キャッシュに送信される同期メッセージの個数を決定するステップと、
    前記同期メッセージの個数がメッセージ閾値を超過する場合、前記同期メッセージをスロットリングするステップと、
    を有する方法を前記マシーンが実行することを可能にする命令を有するマシーン可読記憶媒体を有する物。
  18. 前記方法はさらに、前記同期メッセージの個数が前記メッセージ閾値を超過する場合、スロットル指標を設定するステップを有する、請求項17記載の物。
  19. 前記方法はさらに、前記期間後に前記スロットル指標をクリアするステップを有する、請求項18記載の物。
  20. 前記方法はさらに、保留中のプロセッサトランザクションの個数がウォーターマーク閾値を超過するか判断するステップを有する、請求項17記載の物。
  21. 前記方法はさらに、前記保留中のプロセッサトランザクションの個数がウォーターマーク閾値を超過している場合、前記同期メッセージをスロットリングするステップを有する、請求項20記載の方法。
  22. 前記方法はさらに、第2プロセッサコアから共有キャッシュメモリに同期メッセージをスロットリングしない間、第1プロセッサコアから前記共有キャッシュメモリに同期メッセージをスロットリングするステップを有する、請求項17記載の物。
  23. 第1キャッシュメモリを有する第1プロセッサコアと、
    第2キャッシュメモリを有する第2プロセッサコアと、
    前記第1プロセッサコアと前記第2プロセッサコアとに接続され、前記第1キャッシュメモリにおいてヒットが生じた場合、前記第1プロセッサコアが同期メッセージを送信する共有キャッシュメモリと、
    前記共有キャッシュメモリに接続されるDRAM(Dynamic Random Access Memory)と、
    を有するシステム。
  24. 前記共有キャッシュメモリは、前記第1キャッシュメモリと前記第2キャッシュメモリとに関する統合キャッシュメモリを有する、請求項23記載のシステム。
  25. 前記第1プロセッサコアと、前記第2プロセッサコアと、前記共有キャッシュメモリとを有するマルチコアプロセッサをさらに有する、請求項23記載のシステム。
  26. 前記第1プロセッサコアはさらに、前記同期メッセージを生成するメッセージユニットを有し、
    前記同期メッセージは、ゼロ長リードリクエストを有する、請求項23記載のシステム。
  27. 前記メッセージユニットはさらに、前記第1プロセッサコアに保留中のトランザクションのレベルに少なくとも部分的に基づき、同期メッセージの送信をスロットリングするスロットルロジックを有する、請求項24記載のシステム。
  28. 前記スロットルロジックは、ある期間に送信される同期メッセージの個数に少なくとも部分的に基づき、同期メッセージの送信をスロットリングする、請求項27記載のシステム。
JP2007063584A 2006-03-13 2007-03-13 統合キャッシュ階層における最新性情報の同期 Expired - Fee Related JP4195902B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/374,222 US7757045B2 (en) 2006-03-13 2006-03-13 Synchronizing recency information in an inclusive cache hierarchy

Publications (2)

Publication Number Publication Date
JP2007249971A true JP2007249971A (ja) 2007-09-27
JP4195902B2 JP4195902B2 (ja) 2008-12-17

Family

ID=38480274

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007063584A Expired - Fee Related JP4195902B2 (ja) 2006-03-13 2007-03-13 統合キャッシュ階層における最新性情報の同期

Country Status (5)

Country Link
US (1) US7757045B2 (ja)
JP (1) JP4195902B2 (ja)
CN (1) CN101127005B (ja)
DE (1) DE102007012058A1 (ja)
TW (1) TWI337708B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010140362A (ja) * 2008-12-12 2010-06-24 Nec Corp 分散キャッシュシステム、方法、プログラム、及び計算ノード
KR101602150B1 (ko) * 2014-11-10 2016-03-10 전남대학교산학협력단 공간 지역성 인지 선인출 기법을 이용하는 메모리 장치, 그 메모리 장치를 포함하는 컴퓨팅 시스템, 데이터 인출 방법 및 데이터 인출 프로그램

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090019306A1 (en) * 2007-07-11 2009-01-15 Herbert Hum Protecting tag information in a multi-level cache hierarchy
US9035959B2 (en) 2008-03-28 2015-05-19 Intel Corporation Technique to share information among different cache coherency domains
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
US8930644B2 (en) * 2008-05-02 2015-01-06 Xilinx, Inc. Configurable transactional memory for synchronizing transactions
US8015365B2 (en) * 2008-05-30 2011-09-06 Intel Corporation Reducing back invalidation transactions from a snoop filter
US8214602B2 (en) * 2008-06-23 2012-07-03 Advanced Micro Devices, Inc. Efficient load queue snooping
EP2443574A4 (en) 2009-06-19 2014-05-07 Blekko Inc EVOLVING CLUSTER DATABASE
US8971470B2 (en) * 2011-02-25 2015-03-03 Intel Corporation System, method, and device to distribute accurate synchronization timestamps in an expandable and timing critical system
US9110658B2 (en) * 2011-04-29 2015-08-18 International Business Machines Corporation Automatic verification and synthesis for weak memory models
US8972661B2 (en) * 2011-10-31 2015-03-03 International Business Machines Corporation Dynamically adjusted threshold for population of secondary cache
US9170955B2 (en) 2012-11-27 2015-10-27 Intel Corporation Providing extended cache replacement state information
US9158702B2 (en) 2012-12-28 2015-10-13 Intel Corporation Apparatus and method for implementing a scratchpad memory using priority hint
US9378148B2 (en) 2013-03-15 2016-06-28 Intel Corporation Adaptive hierarchical cache policy in a microprocessor
US9336144B2 (en) * 2013-07-25 2016-05-10 Globalfoundries Inc. Three-dimensional processing system having multiple caches that can be partitioned, conjoined, and managed according to more than one set of rules and/or configurations
CN106155936B (zh) * 2015-04-01 2019-04-12 华为技术有限公司 一种缓存替换方法与相关装置
US9600417B2 (en) 2015-04-29 2017-03-21 Google Inc. Data caching
US20170300427A1 (en) * 2016-04-18 2017-10-19 Mediatek Inc. Multi-processor system with cache sharing and associated cache sharing method
US9946646B2 (en) * 2016-09-06 2018-04-17 Advanced Micro Devices, Inc. Systems and method for delayed cache utilization
US10847196B2 (en) 2016-10-31 2020-11-24 Rambus Inc. Hybrid memory module
WO2019074743A1 (en) 2017-10-12 2019-04-18 Rambus Inc. NON-VOLATILE PHYSICAL MEMORY WITH DRAM CACHE MEMORY
US11467964B1 (en) * 2020-03-09 2022-10-11 Marvell Asia Pte Ltd Mergeable counter system and method
US11379370B1 (en) 2020-04-08 2022-07-05 Marvell Asia Pte Ltd System and methods for reducing global coherence unit snoop filter lookup via local memories
US11886342B2 (en) 2021-12-01 2024-01-30 International Business Machines Corporation Augmenting cache replacement operations

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61229142A (ja) 1985-04-04 1986-10-13 Hitachi Ltd 階層構成をなすバツフアメモリシステムにおけるリブレ−ス制御用アレイ管理装置
US5590308A (en) 1993-09-01 1996-12-31 International Business Machines Corporation Method and apparatus for reducing false invalidations in distributed systems
US5809526A (en) * 1996-10-28 1998-09-15 International Business Machines Corporation Data processing system and method for selective invalidation of outdated lines in a second level memory in response to a memory request initiated by a store operation
US6970976B1 (en) * 1999-06-25 2005-11-29 International Business Machines Corporation Layered local cache with lower level cache optimizing allocation mechanism
US6457101B1 (en) * 1999-12-20 2002-09-24 Unisys Corporation System and method for providing the speculative return of cached data within a hierarchical memory system
US6574714B2 (en) 2001-02-12 2003-06-03 International Business Machines Corporation Efficient instruction cache coherency maintenance mechanism for scalable multiprocessor computer system with write-back data cache
US6820143B2 (en) * 2002-12-17 2004-11-16 International Business Machines Corporation On-chip data transfer in multi-processor system
CN1320464C (zh) 2003-10-23 2007-06-06 英特尔公司 用于维持共享高速缓存一致性的方法和设备
US7711901B2 (en) 2004-02-13 2010-05-04 Intel Corporation Method, system, and apparatus for an hierarchical cache line replacement
US7228388B2 (en) * 2004-11-19 2007-06-05 International Business Machines Corporation Enabling and disabling cache bypass using predicted cache line usage
US20090019306A1 (en) 2007-07-11 2009-01-15 Herbert Hum Protecting tag information in a multi-level cache hierarchy

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010140362A (ja) * 2008-12-12 2010-06-24 Nec Corp 分散キャッシュシステム、方法、プログラム、及び計算ノード
KR101602150B1 (ko) * 2014-11-10 2016-03-10 전남대학교산학협력단 공간 지역성 인지 선인출 기법을 이용하는 메모리 장치, 그 메모리 장치를 포함하는 컴퓨팅 시스템, 데이터 인출 방법 및 데이터 인출 프로그램

Also Published As

Publication number Publication date
CN101127005B (zh) 2015-11-25
DE102007012058A1 (de) 2008-01-10
TW200813716A (en) 2008-03-16
JP4195902B2 (ja) 2008-12-17
US20070214321A1 (en) 2007-09-13
TWI337708B (en) 2011-02-21
US7757045B2 (en) 2010-07-13
CN101127005A (zh) 2008-02-20

Similar Documents

Publication Publication Date Title
JP4195902B2 (ja) 統合キャッシュ階層における最新性情報の同期
US8140759B2 (en) Specifying an access hint for prefetching partial cache block data in a cache hierarchy
US7917699B2 (en) Apparatus and method for controlling the exclusivity mode of a level-two cache
EP1388065B1 (en) Method and system for speculatively invalidating lines in a cache
US8041897B2 (en) Cache management within a data processing apparatus
US7434007B2 (en) Management of cache memories in a data processing apparatus
US8176255B2 (en) Allocating space in dedicated cache ways
US10579531B2 (en) Multi-line data prefetching using dynamic prefetch depth
US20070156963A1 (en) Method and system for proximity caching in a multiple-core system
US20060218352A1 (en) Cache eviction technique for reducing cache eviction traffic
US20060064547A1 (en) Method and apparatus for run-ahead victim selection to reduce undesirable replacement behavior in inclusive caches
US9524232B2 (en) Inter-core cooperative TLB prefetchers
US20100217937A1 (en) Data processing apparatus and method
JP2003186744A (ja) キャッシュエントリのプリエンプティブな追い出しのために使用される時間を調整することによるコンピュータパフォーマンスの向上方法
JPWO2005091146A1 (ja) キャッシュメモリ及びその制御方法
US20070288694A1 (en) Data processing system, processor and method of data processing having controllable store gather windows
US20210182214A1 (en) Prefetch level demotion
US7454580B2 (en) Data processing system, processor and method of data processing that reduce store queue entry utilization for synchronizing operations
US8473686B2 (en) Computer cache system with stratified replacement
US9280476B2 (en) Hardware stream prefetcher with dynamically adjustable stride
US7610458B2 (en) Data processing system, processor and method of data processing that support memory access according to diverse memory models
US8176254B2 (en) Specifying an access hint for prefetching limited use data in a cache hierarchy
US20240111677A1 (en) Region pattern-matching hardware prefetcher
JP2006260378A (ja) 半導体集積回路
KR20240069323A (ko) 이종 메모리로 구성된 메인 메모리 장치를 포함하는 컴퓨터 시스템 및 그 동작 방법

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080512

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080527

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080827

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20111003

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121003

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20131003

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees