JP5706322B2 - リージョン・キャッシュの援助によってデータ要求を効率的に処理する方法 - Google Patents

リージョン・キャッシュの援助によってデータ要求を効率的に処理する方法 Download PDF

Info

Publication number
JP5706322B2
JP5706322B2 JP2011517068A JP2011517068A JP5706322B2 JP 5706322 B2 JP5706322 B2 JP 5706322B2 JP 2011517068 A JP2011517068 A JP 2011517068A JP 2011517068 A JP2011517068 A JP 2011517068A JP 5706322 B2 JP5706322 B2 JP 5706322B2
Authority
JP
Japan
Prior art keywords
cache
region
access
coherence array
configuration
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.)
Active
Application number
JP2011517068A
Other languages
English (en)
Other versions
JP2011527060A (ja
Inventor
カンティン、ジェイソン、フレデリック
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2011527060A publication Critical patent/JP2011527060A/ja
Application granted granted Critical
Publication of JP5706322B2 publication Critical patent/JP5706322B2/ja
Active 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/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/082Associative directories
    • 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/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/601Reconfiguration of cache memory
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)

Description

本発明は、一般的にはデータ処理システムに関し、特に、クラスタ構成の共用メモリ・マルチプロセッサに関する。更に詳しくいえば、本発明は、クラスタ構成の共用メモリ・マルチプロセッサ・システムにおけるキャッシュ・アクセスの順序付けに関する。
コンピュータ・システムにおけるグローバル帯域幅要件を削減するために、多くの最新型の共用メモリ・マルチプロセッサ・システムはクラスタ化されている。プロセッサは、対称マルチプロセッシング・ノード(SMPノード)と呼ばれるグループに分けられ、従って、同じSMPノード内のプロセッサが、物理的なキャビネット、回路基板、マルチチップ・モジュール、またはチップを共用し得るし、それにより、同じSMPノード内でのプロセッサ間における低待ち時間の高帯域通信を可能にする。2レベル・キャッシュ・コヒーレンス・プロトコルは、グローバル帯域幅を浪費しないようにクラスタリング構成を活用する。先ず、データ・ラインに関するメモリ要求をプロセッサからローカルSMPノードにブロードキャストし、必要に応じて(例えば、要求されたラインがローカルSMPノードにおいてキャッシュされてないことが最初のブロードキャストに対する応答から判断される場合)、メモリ要求を他のSPMノードに送るだけで、このタイプの2レベル・キャッシュ・コヒーレンス・プロトコルは、コンピュータ・システムのグローバル帯域幅要件を削減するが、いずれ他のSMPノードにブロードキャストされなければならないメモリ要求は、先ずその要求されたラインに関してローカルSMPノードをチェックすることにより遅らされ、コンピュータ・システムに大量のSMPノード帯域幅および電力を消費量させる。キャッシュされたデータが最も見つかりそうなその共用メモリ・コンピュータ・システムの適切な部分に先ずメモリ要求を送ることが、パフォーマンス、スケーラビリティ、および電力消費量にとって重要である。
リージョン・コヒーレンス・アレイ(Region CoherenceArray)の助けによる粗粒度コヒーレンス・トラッキング(Coarse-Grain Coherence Tracking)は、ブロードキャスト・ベースの共用メモリ・マルチプロセッサ・システムのパフォーマンス、スケーラビリティ、および電力消費量を改善し得る技術である。リージョン・コヒーレンス・アレイは、要求待ち時間を最小にし、相互接続帯域幅(interconnect bandwidth)を維持し、および電力消費量を削減するために、この情報を使ってメモリ要求を経路指定する。
リージョン・コヒーレンス・アレイにより促進される粗コヒーレンス・トラッキングに関連した3つの実施上の考慮事項、即ち、領域、待ち時間、および電力消費量が存在する。 第1に、リージョン・コヒーレンス・アレイは、プロセッサのキャッシュ階層に含まれたデータをそのリージョン・コヒーレンス・アレイが何回もマップし得るように効果的であるためには多少大きいことが必要である。(128バイトのキャッシュ・ラインを仮定すると)、4KBのリージョンを有するリージョン・コヒーレンス・アレイは効果的であるためにはプロセッサのキャッシュ階層のロケーションの数の少なくとも4分の1を必要とするということを、経験的な結果は示している。従って、リージョン・コヒーレンス・アレイは、粗コヒーレンス・トラッキングを促進する場合にかなりの領域を消費量する。第2に、そのサイズの理由の一部として、リージョン・コヒーレンス・アレイは、外部の要求に付加される待ち時間を最小にするには、最低レベルのキャッシュと同時にアクセスされる必要がある。外部の要求を経路指定するためにキャッシュ・ミスが検知されるとき、リージョン・コヒーレンス状態が使用される。 第3に、リージョン・コヒーレンス・アレイは電力欠乏になることがある。リージョン・コヒーレンス・アレイの異常なサイズおよび最低レベルのキャッシュと同時にアクセスされる必要性はかなり大きな電力消費量を導くことがある。従って、最低レベルのキャッシュのヒット時にリージョン・コヒーレンス・アレイをアクセスすると、電力が浪費される。
本発明の目的は、効率的にプロセッサ要求を処理するようにキャッシュ・メモリ・システムを構成する方法およびシステムを提供することにある。
リージョン・キャッシュ、リージョン・コヒーレンス・アレイ、および最低レベル・キャッシュを含むキャッシュ・エレメントのグループが、待ち時間および電力消費量の要件のトレードオフに基づいたプロセッサ・アクセスのために構成される。1つの選択された構成は、キャッシュ・エレメントを相互にアクセスする順序が他の可能な構成とは異なる。リージョン・コヒーレンス・アレイの電力消費量、待ち時間、および帯域幅要件を削減するために、リージョン・キャッシュは多くの構成で使用される。リージョン・キャッシュは、電力消費量を削減すると共にリージョン・キャッシュにおいてヒットした要求にリージョン・コヒーレンス状態を効率的に供給して、大きなリージョン・コヒーレンス・アレイよりも前に(またはそれと同時に)プロセッサ要求によってアクセスされる。
本発明の一実施例に従って、データ処理システムのブロック図を示す。 本発明の実施例に従って、リージョン・コヒーレンス・アレイおよび最低レベル・キャッシュに関するシステムにおけるリージョン・キャッシュおよびそのリージョン・キャッシュの可能な配置を示すブロック図である。 一実施例に従って、プロセッサおよび他のキャッシュ・エレメントに関連したリージョン・キャッシュの配置を示す第1のキャッシュ構成を示すブロック図である。 一実施例に従って、プロセッサに関連したリージョン・キャッシュおよび他のキャッシュ・エレメントの配置を示す第2のキャッシュ構成を示すブロック図である。 一実施例に従って、プロセッサに関連したリージョン・キャッシュおよび他のキャッシュ・エレメントの配置を示す第3のキャッシュ構成を示すブロック図である。 一実施例に従って、プロセッサに関連したリージョン・キャッシュおよび他のキャッシュ・エレメントの配置を示す第4のキャッシュ構成を示すブロック図である。 一実施例に従って、プロセッサに関連したリージョン・キャッシュおよび他のキャッシュ・エレメントの配置を示す第5のキャッシュ構成を示すブロック図である。 一実施例に従って、キャッシュ共用構成を示すブロック図である。 一実施例に従って、第1のキャッシュ構成における要求の処理を示すフローチャートである。 一実施例に従って、キャッシュ構成を決定および具体化するための方法を示すフローチャートである。
図示の実施例は、プロセッサ要求を効率的に処理するようにキャッシュ・メモリ・システムを構成する方法およびシステムを提供する。リージョン・キャッシュ、リージョン・コヒーレンス・アレイ、および最低レベル・キャッシュを含むキャッシュ・エレメントのグループは、待ち時間および電力消費量の要件のトレードオフに基づいてプロセッサ・アクセスを行なうように構成される。1つの選択されたキャッシュ構成は、キャッシュ・エレメントを相互にアクセスする順序が他の可能な構成とは異なる。リージョン・キャッシュは、リージョン・コヒーレンス・アレイの電力消費量、待ち時間、および帯域幅の要件を削減するために、多くのキャッシュ構成で使用される。リージョン・キャッシュは、リージョン・キャッシュにおいてヒットした要求にリージョン・コヒーレンス状態を効率的に供給して、大型のリージョン・コヒーレンス・アレイよりも前に(または、それと同時に)プロセッサ要求によってアクセスされる。
本発明の実施例に関する詳細な説明において、本発明を実施し得る特定の実施例が、当業者が本発明を実施することを可能にするように十分に詳しく記述されており、他の実施例が利用され得ること、および、本発明の技術的範囲から逸脱することなく、論理的、体系的、プログラム的、機械的、電気的、およびその他の変更が行われ得ることは当然である。従って、以下の詳細な説明は、限定的な意味に解釈されるべきではなく、本発明の技術的範囲は、「特許請求の範囲」の記載によってのみ定義される。
図の説明では、同様のエレメントが先出の図と同様の名称および参照番号を与えられている。後出の図がそのエレメントを異なるコンテキストでまたは異なる機能に関連して利用する場合、そのエレメントは図番を表わす先行数字(例えば、図1に関しては1xxおよび図2に関しては2xx)を与えられる。それらのエレメントに割り当てられた特定の数字は、単に記述を補足するためだけに用いられており、本発明に関して如何なる限定(構造的または機能的限定)を暗示することを意味するものではない。
特定のコンポーネント、デバイス、および/またはパラメータの名称の使用が単なる例示であって、本発明に関して如何なる限定も示唆するものではない、ということは当然である。本発明は、この明細書においてコンポーネント/デバイス/パラメータを説明するために、限定なく利用された種々の命名法/用語を用いて具現化され得る。本明細書において利用された各用語は、その用語が利用される際に与える最も広義の解釈を与えられるべきものである。
次に図1を参照すると、データ処理システム(および接続されたネットワーク)のブロック図が示される。データ処理システム(DPS)100は、システム相互接続バス102を介してシステム・メモリ106に接続された少なくとも1つのプロセッサまたは中央処理装置(CPU)101を含む。DPS100は、システム・バス102に接続されたキャッシュ・サブシステム/階層103も含む。他の実施態様では、キャッシュ・サブシステム103は、いくつかの可能な構成の1つにおいて、1つまたは複数のプロセッサ(CPU101)およびメモリ106の間に直接接続され得る。更に、オンチップ・プロセッサ・キャッシュ(例えば、レベル1(L1)キャッシュ)および最低レベル・キャッシュ104、並びに1つまたは複数の他のキャッシュまたはキャッシュ構造(例えば、リージョン・キャッシュ105およびリージョン・コヒーレンス・アレイ(RCA)107)を含む複数レベルのキャッシュが提供され得る。
DPS100が、ネットワーク・インターフェース装置(NID)125と共に示される。NID125により、DPS100はアクセス・ネットワーク130を介して1つまたは複数のプロセッサ133に接続している。図1に示されたハードウェアおよび基本構成が変更可能であることは、当業者には明らかであろう。例えば、図示のハードウェアに加えてまたはそのハードウェアの代わりに、他の装置/コンポーネントを使用することも可能である。図示の例は、本発明に関して体系上の限定を暗示することを意味するものではない。
開示された実施例は、DPS100のコンポーネントを利用して具現化されるいくつもの機能的特徴を提供する。特に、CPU101およびキャッシュ・サブシステム103は、種々の機能的な特徴を提供するためのロジック(例えば、キャッシュ・コントローラ・ロジック)を含み、そのロジックは、(a)待ち時間および電力消費量の要件に基づいてプロセッサ要求を効率的に処理するようにキャッシュ・メモリ・システムを構成するためのロジック、および(b)構成されたキャッシュ・メモリ・システムを具現化するためのロジックを含む。本実施例によれば、それらの機能的特徴および付加的な特徴/機能も図2乃至図10に関する説明において後述される。
次に図2を参照すると、本発明の実施例に従って、リージョン・キャッシュ、並びに、システム内のリージョン・コヒーレンス・アレイおよび最低レベル・キャッシュに関するそのリージョン・キャッシュの適切な配置が示される。キャッシュ・エレメント200はプロセッサ101およびキャッシュ・サブシステム103を含む。キャッシュ・サブシステム103は、更に、リージョン・キャッシュ105、リージョン・コヒーレンス・アレイ107、および最低レベル・キャッシュ104を含む。更に、キャッシュ・エレメント200内にはリージョンID202が示される。
リージョン・キャッシュ105は、プロセッサ101によって最近使用されたリージョンに関する(リージョンID202によって表わされ、識別される)状態情報を格納する小型のタグ付けされたセット・アソシエイティブ・アレイである。リージョン・キャッシュ105は、本質的にはリージョン・コヒーレンス・アレイ107のための小型キャッシュである。プロセッサ要求は、大型のリージョン・コヒーレンス・アレイ107にアクセスする前に(または、アクセスと同時に)その要求されたリージョンに関してリージョン・キャッシュ105をチェックする。各エントリは、(1)リージョン・アドレス・タグ212、(2)リージョン・コヒーレンス状態214、(3)最低使用頻度(LRU)置換ポリシ213を具現化すためのビット、(4)有効ビット210、および(5)1つまたは複数のパリティ・ビット211を含む。リージョン・キャッシュ105におけるエントリは、リージョン・コヒーレンス・アレイ107から得られた状態情報を用いてプロセッサ要求により割り当てられる。リージョン・キャッシュ105における情報は、単にリージョン・コヒーレンス・アレイ107における情報のサブセットであり、リージョンは、リージョン・コヒーレンス・アレイ107を更新することなくリージョン・キャッシュ105から取り除かれ得る。リージョン・コヒーレンス・アレイのエントリにおける情報が変化する場合、対応するリージョン・キャッシュ・エントリ(それが存在する場合)は、更新または無効化され得る。リージョン・キャッシュ105は、それが小型であるために、リージョン・コヒーレンス・アレイ107よりもアクセスが高速であり、必要とする電力が少ない。リージョン・コヒーレンス・アレイ107は、リージョン・キャッシュ105をバックアップしたり外部要求を処理したりするにために必要な容量を提供する。
リージョン・キャッシュ105は大型のリージョン・コヒーレンス・アレイよりも前に(または、それと同時に)プロセッサ要求によってアクセスされて、リージョン・コヒーレンス状態が、リージョン・キャッシュ105においてヒットした要求を素早く且つ電力的に効率よく処理することを可能にする。プロセッサ要求は、外部要求を経路指定するためにそのリージョンと関連したリージョン・コヒーレンス状態を得ることを必要とするだけである。従って、リージョン・キャッシュ105は、システムにおける他のプロセッサからの要求も処理しなければならないリージョン・コヒーレンス・アレイ107が必要とするようなライン・カウントまたは存在ビットを必要としない。リージョン・キャッシュ105は、リージョン・コヒーレンス・アレイの電力消費量、待ち時間、および帯域幅の要件を削減するフィルタとも考えられ得る。
リージョン・キャッシュ105は、電力消費量および/または待ち時間をトレードオフするために5つのキャッシュ構成のうちの1つにおいて使用され得る。これらの5つのキャッシュ構成は、後述される図3乃至図7に示される。そのキャッシュ構成は、リージョン・キャッシュ105およびリージョン・コヒーレンス・アレイ107がプロセッサ要求によって相互におよび最低レベル・キャッシュに関連してアクセスされる態様/順序が異なる。そのキャッシュ構成は電力および待ち時間に関して順序付けられる。第1のキャッシュ構成から第5のキャッシュ構成まで、電力消費量は増加および待ち時間は減少する。
それらのキャッシュ構成のうちの2つ(図3のキャッシュ構成1(300)および図5のキャッシュ構成3(500))では、リージョン・コヒーレンス・アレイ107は、領域を節約するために単一のチップ上のプロセッサによって任意選択的に共用され得るし、リージョン・キャッシュ105は、共用のリージョン・コヒーレンス・アレイ107への要求をフィルタする。
図3は、一実施例に従って、プロセッサおよび他のキャッシュ・エレメントに関連したリージョン・キャッシュの配置を示す第1のキャッシュ構成である。キャッシュ構成1(300)は、プロセッサ101(図示されてない)からの要求を最初に受け取る最低レベル・キャッシュ104を含む。最低レベル・キャッシュ104にリージョン・キャッシュ105が接続されている。更に、リージョン・キャッシュ105は、リージョン・コヒーレンス・アレイ107にも接続されている。
キャッシュ構成1(300)では、キャッシュ・ミスが検知された後、リージョン・キャッシュ105およびリージョン・コヒーレンス・アレイ107は相互に順次アクセスされる。キャッシュ構成1(300)は、外部要求に付加される待ち時間のコストでシステムの電力消費量に関する2つの構造(リージョン・キャッシュ105およびリージョン・コヒーレンス・アレイ107)の影響を最小にする。 しかし、リージョン・キャッシュ105内におけるキャッシュ・ヒットの場合、リージョン・コヒーレンス・アレイ107内のキャッシュ・ヒットに起因する待ち時間よりも少ない待ち時間が外部要求に付加される。 キャッシュ構成1(300)では、図8に示されるように、リージョン・コヒーレンス・アレイ107が、領域を節約するために1つのチップ上のプロセッサ・コア間で任意選択的に共用され得る。その後、リージョン・キャッシュ105は、共用のリージョン・コヒーレンス・アレイ107の付加される待ち時間のペナルティを緩和し、共用のリージョン・コヒーレンス・アレイ107における帯域幅要求を削減する。
図4は、一実施例に従って、プロセッサおよび他のキャッシュ・エレメントに関連したリージョン・キャッシュの配置を示す第2のキャッシュ構成である。キャッシュ構成2(400)は、プロセッサ101(図示されてない)からの要求を最初に受け取る最低レベル・キャッシュ104を含む。最低レベル・キャッシュ104には、それぞれリージョン・キャッシュ105およびリージョン・コヒーレンス・アレイ107を含む一対の分岐が接続されている。その一対の分岐は、リージョン・キャッシュ105およびリージョン・コヒーレンス・アレイ107への並列的アクセスを可能にする。
キャッシュ構成2(400)において、リージョン・キャッシュ105およびリージョン・コヒーレンス・アレイ107は、最低レベル・キャッシュ104でキャッシュ・ミスが検出された後、並列的に(或いは同時にまたはほぼ同時に)相互にアクセスされる。キャッシュ構成2(400)は、電力を節約するためにキャッシュ・ミスが検出された後にしかその構造がアクセスされないので、キャッシュ構成1(300)と同じであるが、わずかに多い電力のコストでより少ない平均待ち時間およびより少ない最悪時の待ち時間となる。
図5は、一実施例に従って、プロセッサおよび他のキャッシュ・エレメントに関連したリージョン・キャッシュの配置を表わす第3のキャッシュ構成を示す。キャッシュ構成3(500)は、最低レベル・キャッシュ104およびリージョン・キャッシュ105を含む一対の分岐を含む。その一対の分岐は、最低レベル・キャッシュ104およびリージョン・キャッシュ105への並列的アクセスを可能にする。その一対の分岐の各エレメントは、リージョン・コヒーレンス・アレイ107に接続される。
キャッシュ構成3(500)において、リージョン・キャッシュ105は、最低レベル・キャッシュと並列的にアクセスされるが、大型のリージョン・コヒーレンス・アレイ107は、キャッシュ・ミスが検知され且つリージョン・キャッシュ・ミスが生じた後にだけ、アクセスされる。リージョン・キャッシュのヒット時には、キャッシュ・ミスが検知される前にリージョン・コヒーレンス状態が得られる。キャッシュ構成3(500)は第2のキャッシュ構成(キャッシュ構成2(400))より多くの電力を使用するが、第2のキャッシュ構成よりも少ない待ち時間を外部要求に及ぼす。更に、第1のキャッシュ構成のように、リージョン・コヒーレンス・アレイ107は、領域を節約するためにチップ上のプロセッサ・コア間で任意選択的に共用され得る(図8)。従って、リージョン・キャッシュ105は、共用のリージョン・コヒーレンス・アレイ107における付加的な待ち時間ペナルティを緩和し、すべてのプロセッサ・コアの帯域幅の要件を削減する。
図6は、一実施例に従って、プロセッサおよび他のキャッシュ・エレメントに関連したリージョン・キャッシュの配置を表わす第4のキャッシュ構成を示す。キャッシュ構成4(600)は最低レベル・キャッシュ104を含む。 更に、プロセッサ101(図示されてない)がリージョン・キャッシュ105に接続されている。リージョン・キャッシュ105は、更にリージョン・コヒーレンス・アレイ107に接続されている。
キャッシュ構成4(600)において、リージョン・キャッシュ105はリージョン・コヒーレンス・アレイ107と順次にアクセスされる。しかし、リージョン・キャッシュ105およびリージョン・コヒーレンス・アレイ107は最低レベル・キャッシュ104と並列的にアクセスされる。キャッシュ構成4(600)は第3のキャッシュ構成より多くの電力を使用する。それは、両方の構造(リージョン・キャッシュ105およびリージョン・コヒーレンス・アレイ107)が最低レベル・キャッシュ104(キャッシュ・ヒット時に電力を浪費する)と並列的にアクセスされるためである。しかし、キャッシュ構成4(600)は、リージョン・キャッシュ105においてヒットした要求に対して(リージョン・コヒーレンス・アレイ107だけを備えたシステムよりも)電力を節約するが、リージョン・キャッシュ105においてキャッシュ・ミスした要求に対してわずかな電力の増加を伴う。
図7は、一実施例に従って、プロセッサおよび他のキャッシュ・エレメントに関連したリージョン・キャッシュの配置を表す第5のキャッシュ構成を示す。そのキャッシュ構成5(700)は、最低レベル・キャッシュ104、リージョン・キャッシュ105、およびリージョン・コヒーレンス・アレイ107を含む。
キャッシュ構成5(700)において、リージョン・キャッシュ105は、リージョン・コヒーレンス・アレイ107および最低レベル・キャッシュ104と並列的にアクセスされる。キャッシュ構成5(700)では、リージョン・キャッシュ105は、ヒット時にリージョン・コヒーレンス・アレイ107より速くリージョン・コヒーレンス・アレイ状態情報を提供することができ、リージョン・コヒーレンス・アレイ107が、最低レベル・キャッシュ104のアクセス待ち時間よりも少ないまたはそれと同等のアクセス待ち時間を有するという要件を緩和する。キャッシュ構成5(700)は、すべての構造体を即座にアクセスすることにより待ち時間を最小にするが、他のキャッシュ構成よりも多くの電力を必要とする。
リージョン・キャッシュ105を有することの主な利点は、ほとんどのプロセッサ要求がリージョン・キャッシュ105においてヒットし、リージョン・コヒーレンス・アレイ107よりも少ない待ち時間または少ない電力消費量のいずれかでもって満たされるということである。経験的なデータは、わずか128個のエントリでプロセッサ要求の半分以上がヒットすることを示唆している。他の利点はプロセッサ要求のフィルタリングを含む。そのフィルタリングは、領域を節約するために1つのチップ当たり1つの共用のリージョン・コヒーレンス・アレイ107を持つことを可能にする。
図8は、一実施例に従って、キャッシュ共用構成を示す。キャッシュ構成6(800)は、第1のプロセッサ101、第2のプロセッサ801、および第3のプロセッサ802を含む複数のプロセッサを含む。キャッシュ構成6(800)は、更に、第1のリージョン・キャッシュ105、第2のリージョン・キャッシュ803、および第3のリージョン・キャッシュ804を含む複数のリージョン・キャッシュを含む。キャッシュ構成6(800)には、キャッシュ構成6(800)におけるすべてのプロセッサの間で共用されるリージョン・コヒーレンス・アレイ107が含まれる。
キャッシュ構成1(300)およびキャッシュ構成3(500)では、キャッシュ構成6(800)に示されるように、リージョン・コヒーレンス・アレイ107は1つのチップ上のプロセッサ・コアの間で(任意選択的に)共用され得る。1つの大型のリージョン・コヒーレンス・アレイを共用することによって、リージョン・コヒーレンス・アレイ107の遠隔の部分をアクセスする大きい待ち時間というを犠牲を払って、共通のコードおよびデータのために小型の記憶装置が使用される。共用のリージョン・コヒーレンス・アレイ107により、リージョン・キャッシュ(例えば、リージョン・キャッシュ105)は、待ち時間のペナルティを緩和し、リージョン・コヒーレンス・アレイ107をアクセスするためにオンチップ通信を削減し、1つのリージョン・コヒーレンス・アレイ107における多数のプロセッサ・コアの帯域幅の要件の増加を緩和することができる。
図9は、一実施例に従って、第1のキャッシュ構成における要求の処理を示すフローチャートである。図9のプロセスは、開始ブロック901で始まり、ブロック902に進む。そこでは、プロセッサ要求が、先ず、最低レベル・キャッシュに送られる。判断ブロック903において、データ処理システムは、キャッシュ・ヒットが最低レベル・キャッシュにおいて生じたかどうかを判断する。ブロック903において、キャッシュ・ヒットが最低レベル・キャッシュにおいて生じたということをデータ処理システムが判断した場合、プロセスはブロック904に進む。そこでは、プロセッサ要求が最低レベル・キャッシュによって満たされる。ブロック903において、キャッシュ・ミスが最低レベル・キャッシュにおいて生じたということをデータ処理システムが判断した場合、プロセスはブロック905に進み、そこでは、その要求がリージョン・キャッシュに送られる。
判断ブロック906では、データ処理システムは、キャッシュ・ヒットがリージョン・キャッシュにおいて生じたかどうかを判断する。ブロック906において、キャッシュ・ヒットがリージョン・キャッシュにおいて生じたということをデータ処理システムが判断した場合、プロセスはブロック907に進み、そこでは、要求を満たすためにリージョン・キャッシュ状態が利用される。ブロック906において、キャッシュ・ミスがリージョン・キャッシュにおいて生じたということをデータ処理システムが判断した場合、プロセスはブロック908に進み、そこでは、要求がリージョン・コヒーレンス・アレイに送られる。
判断ブロック909では、データ処理システムは、キャッシュ・ヒットがリージョン・コヒーレンス・アレイにおいて生じたかどうかを判断する。ブロック909において、キャッシュ・ヒットがリージョン・コヒーレンス・アレイで生じたということをデータ処理システムが判断した場合、プロセスはブロック911に進み、そこでは、要求を満たすためにリージョン・コヒーレンス・アレイ状態が利用される。ブロック909において、キャッシュ・ミスがリージョン・コヒーレンス・アレイで生じたということをデータ処理システムが判断した場合、プロセスはブロック910に進み、そこでは、(データ領域が共用される可能性のある)データ領域に対するサーチが、データ処理システムに関連した共用のメモリ・クラスタにおいて継続する。プロセスは、ブロック912において終了する。
図10は、一実施例に従って、キャッシュ構成を決定および具現化する方法を示すフローチャートである。図10に示された方法は、図1乃至図9に示されたコンポーネントに関連して説明され得るが、当然のことながら、これが単に便宜的なものであること、および種々な方法を具現化するとき、代替のコンポーネントおよび/またはそれのキャッシュ構成が使用されてもよい。
図10のプロセスは開始ブロック1001において始まり、ブロック1002に進む。そこでは、データ処理システムの設計者が、システムにとって望ましい待ち時間および電力消費量の要件のセットを決定/識別する。ブロック1003では、待ち時間および電力消費量の要件を満たすようにキャッシュ構成が選択される。そのキャッシュ構成は、多数の設計/構成のうちの選択された1つにおいて最低レベル・キャッシュ、リージョン・キャッシュ、およびリージョン・コヒーレンス・アレイを含むキャッシュ・エレメントのセットを相互接続する。ブロック1004において示されるように、選択された構成はデータ処理システムにおいて具現化される。プロセスはブロック1005において終了する。
上記のフローチャートでは、本方法の1つまたは複数個がコンピュータ可読コードを含み、そのコンピュータ可読コードがコンピューティング装置において実行されるときに一連のステップが遂行されるよう、コンピュータ・プログラムとしてコンピュータ可読媒体において具体化される。或る実施態様では、本方法における幾つかのステップが、本発明の主旨および技術的範囲から逸脱することなく、結合されるか、または同時にもしくは種々の順序で遂行されたり、省略されたりすることもある。従って、本方法ステップは特定のシーケンスで記述および図解されているが、特定のステップ・シーケンスの使用が本発明に対する如何なる限定も暗示することを意味しない。本発明の主旨および技術的範囲から逸脱することなく、ステップ・シーケンスに関する変更が行なわれ得る。従って、特定のシーケンスの使用は限定の意味として解されるべきではなく、本発明の技術的範囲は「特許請求の範囲」の記載によってのみ定義される。
「特許請求の範囲」における記載に示されるように、本実施例は、プロセッサと、キャッシュ・グループと、ロジックとを含むデータ処理システムを提供する。キャッシュ・グループは、そのキャッシュ・グループ内のデータ要求を解決するために要求待ち時間および電力消費量の考慮事項に基づいて事前選択された多数のアクセス構成の1つで相互に且つプロセッサに接続された少なくとも1つの低レベル・キャッシュ、リージョン・キャッシュ、およびリージョン・コヒーレンス・アレイを含む複数のキャッシュ・エレメントを有する。上記ロジックは、データ要求に応答して、キャッシュ・グループにおける複数のキャッシュ・エレメントの1つまたは複数個へのアクセスを、事前選択されたアクセス順序に対応する順序で開始する。
更に、本実施例の特徴は、キャッシュ・メモリ・システムを設計するための方法をカバーする。その方法は、低レベル・キャッシュ、リージョン・キャッシュ、およびリージョン・コヒーレンス・アレイを含む複数のキャッシュ・エレメントを持ったキャッシュ・グループにおけるデータ要求を解決するために望ましい最適の要求待ち時間および電力消費量の要件を決定するステップと、要求待ち時間および電力消費量の要件の考慮事項に基づいて、要求待ち時間および電力消費量の要件を満たすアクセス順序がデータ要求を解決することを可能にするために、キャッシュ・グループのキャッシュ・エレメントが相互接続され得る複数の可能なキャッシュ構成の中から第1のキャッシュ構成を選択するステップと、第1のキャッシュ構成を有するキャッシュ・メモリ・システムを設計するステップとを含む。更に、その方法は、プロセッサと、第1のキャッシュ構成で配列されたキャッシュ・エレメントを有するキャッシュ・グループを含むキャッシュ・メモリ・システムとを持った処理装置の製造をカバーする。
一実施例では、上記設計するプロセス(ステップ)は、データ要求が先ず低レベル・キャッシュにおいてキャッシュ・ミスを生じ、次にリージョン・キャッシュにおいてキャッシュ・ミスを生じるとき、低レベル・キャッシュから、それぞれ、リージョン・キャッシュへのアクセス、次にリージョン・コヒーレンス・アレイへの順次アクセス順序を可能にするようにキャッシュ・エレメントを構成するステップであって、上記順次アクセス順序は、キャッシュ・エレメントの1つが他のキャッシュ・エレメントよりも前にアクセスされることを可能にする、ステップ、または、データ要求が低レベル・キャッシュおよびリージョン・キャッシュにおいてキャッシュ・ミスを生じるとき、リージョン・コヒーレンス・アレイへのアクセスの前に低レベル・キャッシュおよびリージョン・キャッシュに関する同時アクセスを可能にするようにキャッシュ・エレメントを構成するステップ、または、低レベル・キャッシュ、リージョン・キャッシュ、およびリージョン・コヒーレンス・アレイに関する同時アクセスを可能にするようにキャッシュ・エレメントを構成するステップであって、キャッシュ・エレメントが実質的に同時にアクセスされる、ステップ、を含む。
更に別の実施例では、本発明の方法は、キャッシュ・エレメントの事前選択された設計構成に基づいて特定の順序でキャッシュ・エレメントを選択的にアクセスするためのロジックを提供するステップを含み、そのロジックは、リージョン・キャッシュおよびリージョン・コヒーレンス・アレイが第1のキャッシュ構成を介して最低レベル・キャッシュと相互接続されているとき、最低レベル・キャッシュにおけるキャッシュ・ミスに続いてリージョン・キャッシュおよびリージョン・コヒーレンス・アレイを同時にアクセスするステップ、または、第2のキャッシュ構成を介して相互接続されたそのリージョン・キャッシュおよび最低レベル・キャッシュを、リージョン・コヒーレンス・アレイのアクセスよりも前に、同時にアクセスするステップであって、リージョン・コヒーレンス・アレイへのアクセスがリージョン・キャッシュおよび最低レベル・キャッシュの1つまたは複数個におけるキャッシュ・ミスの後に生じる,ステップ、または、第3のキャッシュ構成を介して相互接続されたリージョン・コヒーレンス・アレイ、リージョン・キャッシュ、および最低レベル・キャッシュを同時にアクセスするステップ、または、リージョン・キャッシュおよびリージョン・コヒーレンス・アレイが第4のキャッシュ構成を介して相互接続されているとき、最低レベル・キャッシュからリージョン・キャッシュへのアクセス、次に、リージョン・コヒーレンス・アレイへの順次アクセスを行なうステップであって、リージョン・キャッシュのアクセスが最低レベル・キャッシュにおけるキャッシュ・ミスの後にだけ生じ、リージョン・コヒーレンス・アレイのその後のアクセスがリージョン・キャッシュにおけるキャッシュ・ミスの後にだけ生じる、ステップと、第5のキャッシュ構成を介して相互接続されているリージョン・キャッシュおよび最低レベル・キャッシュを、リージョン・コヒーレンス・アレイのアクセスよりも前に、同時にアクセスするステップであって、リージョン・コヒーレンス・アレイへのアクセスがリージョン・キャッシュにおけるキャッシュ・ミスの後に生じる、ステップ、のうちの1つを遂行するためのロジックを含み、それらのキャッシュ構成の各々はデータ要求を解決するための電力消費量および要求待ち時間の異なる平衡を与える。
別の実施例は、プロセッサを有し、プロセッサに結合されたキャッシュ・グループのキャッシュ・エレメント間におけるキャッシュ・アクセスの順序を実施するためのデータ処理システムにおける方法を提供する。その方法は、キャッシュ・エレメントの第1のアクセス順序を持つ第1のキャッシュ構成を選択するステップであって、その選択された第1のキャッシュ構成は、キャッシュ・グループ内のデータ要求を解決するための要求待ち時間を最小にすることがキャッシュ・グループ内の電力消費量を最小にすることに関する優先考慮事項であるとき、データ要求に関連した要求待ち時間の量を最小にし、前記キャッシュ・エレメントは、最低レベル・キャッシュ、リージョン・キャッシュ、およびリージョン・コヒーレンス・アレイを含む、ステップと、キャッシュ・エレメントの第2のアクセス順序を有する第2のキャッシュ構成を選択するステップであって、第2のアクセス順序は、キャッシュ・グループ内のデータ要求を解決すると共にキャッシュ・グループの電力消費量を削減することがキャッシュ・グループ内の電力消費量の最小化に関する優先考慮事項であるとき、キャッシュ・エレメント内のデータ要求の処理に関連した電力消費量のレベルを削減する、ステップと、要求待ち時間の最小化と電力消費量の削減との間における設計ベースのトレードオフを可能にするために、各々がキャッシュ・エレメントの異なるアクセス順序を有する複数の他のキャッシュ構成の1つを選択するステップとを含む。
更に明らかなように、本発明の実施例の各プロセスは、ソフトウェア、ファームウェア、またはハードウェアの任意の組み合わせを使って具現化され得る。本発明をソフトウェアで実施する準備段階として、プログラム・コード(ソフトウェアまたはファームウェアのいずれも)は、一般には、本発明に従って、固定(ハード)ディスク・ドライブ、ディスケット、光ディスク、磁気テープ、半導体メモリ(例えば、ROM、PROM等)のような1つまたは複数の機械読取可能な記憶媒体に記憶され、それによって生産品(または、コンピュータ・プログラム製品)となるであろう。プログラム・コードを含むその生産品は、そのコードを記憶装置から直接に実行することによって、そのコードを記憶装置からハード・ディスク、RAM等のような別の記憶装置にコピーすることによって、または、デジタルおよびアナログ通信リンクのような伝送タイプの媒体を使って、そのコードを遠隔実行のために伝送することによって使用される。本発明の方法は、本発明によるコードを含む1つまたは複数の機械読取可能な記憶装置を、そのコードを実行するための適切な処理ハードウェアと組み合わせることによって実施され得る。本発明を実施するための装置は、本発明に従ってコード化されたプログラムへのネットワーク・アクセスを含むまたは有する1つまたは複数の処理装置および記憶システムであってもよい。
従って、本発明の実施例はインストールされた(または実行された)ソフトウェアを有する完全に機能的なコンピュータ(サーバ)システムとの関連で説明されたが、重要なこととして、本発明の実施例のソフトウェア態様がコンピュータ・プログラムとして種々の形式で配布され得ること、および本発明の実施例が実際に配布を行なうために使用される媒体の特定のタイプに関係なく等しく適用し得ることは当業者には明らかであろう。例えば、媒体のタイプに関する非排他的なものは、フロッピ・ディスク、サム・ドライブ、ハード・ディスク・ドライブ、CD−ROM、DVDのような記録可能タイプの(実体的な)媒体、並びに、デジタルおよびアナログ通信リンクのような伝送タイプの媒体を含む。
本発明は例示的な実施例に関して説明されたが、本発明の技術的範囲から逸脱することなく、種々の変更が行なわれ得ることおよび均等物がそのエレメントに対して代用され得ることは当業者には明らかであろう。更に、本発明の本質的な技術的範囲から逸脱することなく、特定のシステム、デバイス、またはコンポーネントを本発明の教示事項に適合させるように多くの修正を行なうことも可能である。従って、本発明は、本発明を実行するための開示された特定の実施例に限定されず、「特許請求の範囲」に記載された技術的範囲内にあるすべての実施例を含むものである。更に、第1、第2等の用語の使用は如何なる順番または重要性も表わさず、むしろ、第1、第2等の用語は或るエレメントを別のエレメントから区別するために使用された。

Claims (4)

  1. プロセッサと、
    複数のキャッシュ・エレメントを有するキャッシュ・グループであって、前記キャッシュ・グループ内のデータ要求を解決するために要求待ち時間および電力消費量の考慮事項に基づいて事前選択された複数のアクセス構成の1つで相互に且つ前記プロセッサに接続された少なくとも1つの低レベル・キャッシュ、リージョン・キャッシュ、およびリージョン・コヒーレンス・アレイを含む、キャッシュ・グループと、
    前記データ要求に応答して、前記キャッシュ・グループにおける前記複数のキャッシュ・エレメントの1つまたは複数個へのアクセスを、事前選択されたアクセス構成に対応する順序で開始するロジックと、
    前記キャッシュ・エレメントの事前選択された設計構成に基づいて特定の順序で前記キャッシュ・エレメントを選択的にアクセスするためのロジックと、
    を含み、前記キャッシュ・エレメントを選択的にアクセスするためのロジックは、
    前記リージョン・キャッシュおよび前記リージョン・コヒーレンス・アレイが第1の構成を介して前記低レベル・キャッシュと相互接続されているとき、前記低レベル・キャッシュにおけるキャッシュ・ミスに続いて、前記リージョン・キャッシュおよび前記リージョン・コヒーレンス・アレイを同時にアクセスするステップと、
    前記リージョン・コヒーレンス・アレイのアクセスよりも前に、第2の構成を介して相互接続された前記リージョン・キャッシュおよび前記低レベル・キャッシュを同時にアクセスするステップであって、前記リージョン・コヒーレンス・アレイへのアクセスが前記リージョン・キャッシュおよび前記低レベル・キャッシュの1つまたは複数個におけるキャッシュ・ミスの後に生じる、ステップと、
    第3の構成を介して相互接続された前記リージョン・コヒーレンス・アレイ、前記リージョン・キャッシュ、および前記低レベル・キャッシュを同時にアクセスするステップと、
    前記リージョン・キャッシュおよび前記リージョン・コヒーレンス・アレイが第4の構成を介して相互接続されているとき、前記低レベル・キャッシュから前記リージョン・キャッシュへのアクセス、次に前記リージョン・コヒーレンス・アレイへの順次アクセスを遂行するステップであって、前記リージョン・キャッシュのアクセスが前記低レベル・キャッシュにおけるキャッシュ・ミスの後にだけ生じ、前記リージョン・コヒーレンス・アレイのその後のアクセスが前記リージョン・キャッシュにおけるキャッシュ・ミスの後にだけ生じる、ステップと、
    前記リージョン・コヒーレンス・アレイのアクセスよりも前に、第5の構成を介して相互接続されている前記リージョン・キャッシュおよび前記低レベル・キャッシュを同時にアクセスするステップであって、前記リージョン・コヒーレンス・アレイへのアクセスが前記リージョン・キャッシュにおけるキャッシュ・ミスの後に生じる、ステップと
    のうちの1つを遂行するためのロジックを含み、前記構成の各々はデータ要求を解決するための電力消費量および要求待ち時間の異なる平衡を与える、データ処理システム。
  2. キャッシュ・メモリ・システムを構成するための方法であって、
    データ処理システム内のロジックが、低レベル・キャッシュ、リージョン・キャッシュ、およびリージョン・コヒーレンス・アレイを含む複数のキャッシュ・エレメントを持ったキャッシュ・グループにおけるデータ要求を解決するために望ましい最適の要求待ち時間および電力消費量の要件を決定するステップと、
    前記ロジックが、前記キャッシュ・エレメントの事前選択された設計構成に基づいて特定の順序で前記キャッシュ・エレメントを選択的にアクセスするためのロジックを提供するステップと
    を含み、前記提供するステップにより提供されたロジックは、
    前記リージョン・キャッシュおよび前記リージョン・コヒーレンス・アレイが第1の構成を介して前記低レベル・キャッシュと相互接続されているとき、前記低レベル・キャッシュにおけるキャッシュ・ミスに続いて、前記リージョン・キャッシュおよびリージョン・コヒーレンス・アレイを同時にアクセスするステップ、または
    第2の構成を介して相互接続された前記リージョン・キャッシュおよび前記低レベル・キャッシュを、前記リージョン・コヒーレンス・アレイのアクセスよりも前に、同時にアクセスするステップであって、前記リージョン・コヒーレンス・アレイへのアクセスが前記リージョン・キャッシュおよび前記低レベル・キャッシュの1つまたは複数個におけるキャッシュ・ミスの後に生じる、ステップ、または
    第3の構成を介して相互接続された前記リージョン・コヒーレンス・アレイ、前記リージョン・キャッシュ、および前記低レベル・キャッシュを同時にアクセスするステップ、または
    前記リージョン・キャッシュおよび前記リージョン・コヒーレンス・アレイが第4の構成を介して相互接続されているとき、前記低レベル・キャッシュから前記リージョン・キャッシュへのアクセス、次に前記リージョン・コヒーレンス・アレイへの順次アクセスを行なうステップであって、前記リージョン・キャッシュのアクセスが前記低レベル・キャッシュにおけるキャッシュ・ミスの後にだけ生じ、前記リージョン・コヒーレンス・アレイのその後のアクセスが前記リージョン・キャッシュにおけるキャッシュ・ミスの後にだけ生じる、ステップ、または
    第5の構成を介して相互接続されている前記リージョン・キャッシュおよび前記低レベル・キャッシュを、前記リージョン・コヒーレンス・アレイのアクセスよりも前に、同時にアクセスするステップであって、前記リージョン・コヒーレンス・アレイへのアクセスが前記リージョン・キャッシュにおけるキャッシュ・ミスの後に生じる、ステップ、
    のうちの1つを遂行するためのロジックを含み、前記構成の各々はデータ要求を解決するための電力消費量及び要求待ち時間の異なる平衡を与える、方法。
  3. プロセッサを有し、前記プロセッサに結合されたキャッシュ・グループのキャッシュ・エレメント間におけるキャッシュ・アクセスの順序を実施するためのデータ処理システムにおいて、
    前記キャッシュ・エレメントの第1のアクセス順序を持つ第1の構成を選択するステップであって、選択された前記第1の構成は、前記キャッシュ・グループ内のデータ要求を解決するための要求待ち時間を最小にすることが前記キャッシュ・グループ内の電力消費量を最小にすることに関する優先考慮事項であるとき、データ要求に関連した要求待ち時間の量を最小にし、前記キャッシュ・エレメントは、低レベル・キャッシュ、リージョン・キャッシュ、およびリージョン・コヒーレンス・アレイを含む、ステップと、
    キャッシュ・エレメントの第2のアクセス順序を有する第2の構成を選択するステップであって、前記第2のアクセス順序は、前記キャッシュ・グループ内のデータ要求を解決すると共に前記キャッシュ・グループの電力消費量を削減することが前記キャッシュ・グループ内の電力消費量の最小化に関する優先考慮事項であるとき、前記キャッシュ・エレメント内のデータ要求の処理に関連した電力消費量のレベルを削減する、ステップと、
    前記要求待ち時間の最小化と前記電力消費量の削減との間における設計ベースのトレードオフを可能にするために、各々がキャッシュ・エレメントの異なるアクセス順序を有する複数の他の構成の1つを選択するステップと、
    を含み、
    前記第1のアクセス順序が順次アクセスである場合、
    前記データ要求が先ず前記低レベル・キャッシュにおいてキャッシュ・ミスを生じ、次に前記リージョン・コヒーレンス・アレイにおいてキャッシュ・ミスを生じるとき、先ず前記低レベル・キャッシュから前記リージョン・キャッシュへのアクセス、次に前記リージョン・コヒーレンス・アレイへの順次アクセス順序を可能にするように前記キャッシュ・エレメントを構成するステップであって、前記順次アクセス順序は、前記キャッシュ・エレメントの1つが他のキャッシュ・エレメントよりも前にアクセスされることを可能にする、ステップと、
    前記第1のアクセス順序が部分的同時アクセスである場合、前記データ要求が前記低レベル・キャッシュおよび前記リージョン・キャッシュにおいてキャッシュ・ミスを生じるとき、前記リージョン・コヒーレンス・アレイへのアクセスよりも前に先ず前記低レベル・キャッシュおよび前記リージョン・キャッシュに関する同時アクセスを可能にするように前記キャッシュ・エレメントを構成するステップと、
    前記第1のアクセスの順序が完全同時アクセスである場合、前記低レベル・キャッシュ、前記リージョン・キャッシュ、および前記リージョン・コヒーレンス・アレイに関する同時アクセスを可能にするように前記キャッシュ・エレメントを構成するステップであって、前記複数のキャッシュ・エレメントが実質的に同時にアクセスされる、ステップと、
    を含む、方法。
  4. 前記キャッシュ・エレメントの事前選択された設計構成に基づいて下記の順序の1つで前記キャッシュ・エレメントを選択的にアクセスするステップと、
    前記リージョン・キャッシュおよび前記リージョン・コヒーレンス・アレイが第1の構成を介して前記低レベル・キャッシュと相互接続されているとき、前記低レベル・キャッシュにおけるキャッシュ・ミスに続いて前記リージョン・キャッシュおよび前記リージョン・コヒーレンス・アレイを同時にアクセスするステップと、
    第2の構成を介して相互接続された前記リージョン・キャッシュおよび前記低レベル・キャッシュを前記リージョン・コヒーレンス・アレイのアクセスよりも前に同時にアクセスするステップであって、前記リージョン・コヒーレンス・アレイへのアクセスが前記リージョン・キャッシュおよび前記低レベル・キャッシュの1つまたは複数個におけるキャッシュ・ミスの後に生じる、ステップと、
    第3の構成を介して相互接続された前記リージョン・コヒーレンス・アレイ、前記リージョン・キャッシュ、および前記低レベル・キャッシュを同時にアクセスするステップと、
    前記リージョン・キャッシュおよびリージョン・コヒーレンス・アレイが第4の構成を介して相互接続されているとき、前記低レベル・キャッシュから前記リージョン・キャッシュへのアクセス、次に前記リージョン・コヒーレンス・アレイへの順次アクセスを遂行するステップであって、前記リージョン・キャッシュのアクセスが前記低レベル・キャッシュにおけるキャッシュ・ミスの後にだけ生じ、前記リージョン・コヒーレンス・アレイのその後のアクセスが前記リージョン・キャッシュにおけるキャッシュ・ミスの後にだけ生じる、ステップと、
    第5の構成を介して相互接続された前記リージョン・キャッシュおよび前記低レベル・キャッシュを前記リージョン・コヒーレンス・アレイのアクセスよりも前に同時にアクセスするステップであって、前記リージョン・コヒーレンス・アレイへのアクセスが前記リージョン・キャッシュにおけるキャッシュ・ミスの後に生じる、ステップと、
    を更に含み、
    前記構成の各々はデータ要求を解決するための電力消費量および要求待ち時間の種々の平衡化を行なう、請求項に記載の方法。
JP2011517068A 2008-07-07 2009-06-18 リージョン・キャッシュの援助によってデータ要求を効率的に処理する方法 Active JP5706322B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/168,209 US8055847B2 (en) 2008-07-07 2008-07-07 Efficient processing of data requests with the aid of a region cache
US12/168,209 2008-07-07
PCT/EP2009/057616 WO2010003799A1 (en) 2008-07-07 2009-06-18 Efficient processing of data requests with the aid of a region cache

Publications (2)

Publication Number Publication Date
JP2011527060A JP2011527060A (ja) 2011-10-20
JP5706322B2 true JP5706322B2 (ja) 2015-04-22

Family

ID=41055344

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011517068A Active JP5706322B2 (ja) 2008-07-07 2009-06-18 リージョン・キャッシュの援助によってデータ要求を効率的に処理する方法

Country Status (6)

Country Link
US (1) US8055847B2 (ja)
EP (1) EP2271990B1 (ja)
JP (1) JP5706322B2 (ja)
CN (1) CN102089745B (ja)
TW (1) TW201017408A (ja)
WO (1) WO2010003799A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8140766B2 (en) * 2008-07-22 2012-03-20 International Business Machines Corporation Enhanced coherency tracking with implementation of region victim hash for region coherence arrays
US8281074B2 (en) * 2008-10-07 2012-10-02 Micron Technology, Inc. Interface device for memory in a stack, storage devices and a processor
US8341353B2 (en) * 2010-01-14 2012-12-25 Qualcomm Incorporated System and method to access a portion of a level two memory and a level one memory
US8694737B2 (en) 2010-06-09 2014-04-08 Micron Technology, Inc. Persistent memory for processor main memory
US9448938B2 (en) 2010-06-09 2016-09-20 Micron Technology, Inc. Cache coherence protocol for persistent memories
US8613074B2 (en) 2010-09-30 2013-12-17 Micron Technology, Inc. Security protection for memory content of processor main memory
US20150067246A1 (en) * 2013-08-29 2015-03-05 Apple Inc Coherence processing employing black box duplicate tags
US9405687B2 (en) * 2013-11-04 2016-08-02 Intel Corporation Method, apparatus and system for handling cache misses in a processor
US9612970B2 (en) * 2014-07-17 2017-04-04 Qualcomm Incorporated Method and apparatus for flexible cache partitioning by sets and ways into component caches
US9727464B2 (en) 2014-11-20 2017-08-08 International Business Machines Corporation Nested cache coherency protocol in a tiered multi-node computer system
US9886382B2 (en) 2014-11-20 2018-02-06 International Business Machines Corporation Configuration based cache coherency protocol selection

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6226722B1 (en) * 1994-05-19 2001-05-01 International Business Machines Corporation Integrated level two cache and controller with multiple ports, L1 bypass and concurrent accessing
US6233665B1 (en) * 1997-05-27 2001-05-15 Unisys Corporation Mapping shared DRAM address bits by accessing data memory in page mode cache status memory in word mode
US6055610A (en) * 1997-08-25 2000-04-25 Hewlett-Packard Company Distributed memory multiprocessor computer system with directory based cache coherency with ambiguous mapping of cached data to main-memory locations
US6345339B1 (en) * 1998-02-17 2002-02-05 International Business Machines Corporation Pseudo precise I-cache inclusivity for vertical caches
US6178484B1 (en) * 1998-02-17 2001-01-23 International Business Machines Corporation DCBST with ICBI mechanism to maintain coherency of bifurcated data and instruction caches
US6460114B1 (en) * 1999-07-29 2002-10-01 Micron Technology, Inc. Storing a flushed cache line in a memory buffer of a controller
US6766360B1 (en) * 2000-07-14 2004-07-20 Fujitsu Limited Caching mechanism for remote read-only data in a cache coherent non-uniform memory access (CCNUMA) architecture
US20030145171A1 (en) * 2002-01-31 2003-07-31 Fetzer Eric S. Simplified cache hierarchy by using multiple tags and entries into a large subdivided array
US6912622B2 (en) 2002-04-15 2005-06-28 Microsoft Corporation Multi-level cache architecture and cache management method for peer-to-peer name resolution protocol
US7395375B2 (en) * 2004-11-08 2008-07-01 International Business Machines Corporation Prefetch miss indicator for cache coherence directory misses on external caches
US7266663B2 (en) * 2005-01-13 2007-09-04 International Business Machines Corporation Automatic cache activation and deactivation for power reduction
US7849232B2 (en) 2006-02-17 2010-12-07 Intel-Ne, Inc. Method and apparatus for using a single multi-function adapter with different operating systems

Also Published As

Publication number Publication date
EP2271990A1 (en) 2011-01-12
EP2271990B1 (en) 2014-07-23
US8055847B2 (en) 2011-11-08
US20100005242A1 (en) 2010-01-07
JP2011527060A (ja) 2011-10-20
CN102089745A (zh) 2011-06-08
WO2010003799A1 (en) 2010-01-14
TW201017408A (en) 2010-05-01
CN102089745B (zh) 2014-07-30

Similar Documents

Publication Publication Date Title
JP5706322B2 (ja) リージョン・キャッシュの援助によってデータ要求を効率的に処理する方法
US7434008B2 (en) System and method for coherency filtering
US9817760B2 (en) Self-healing coarse-grained snoop filter
US8112587B2 (en) Shared data prefetching with memory region cache line monitoring
US10169087B2 (en) Technique for preserving memory affinity in a non-uniform memory access data processing system
US7502889B2 (en) Home node aware replacement policy for caches in a multiprocessor system
US20150039833A1 (en) Management of caches
US8397030B2 (en) Efficient region coherence protocol for clustered shared-memory multiprocessor systems
US20120102273A1 (en) Memory agent to access memory blade as part of the cache coherency domain
KR20220159470A (ko) 적응형 캐시
CN1955948A (zh) 用于管理高速缓存数据的数字数据处理设备和方法
CN108984428A (zh) 多核片上系统中的缓存策略
US8874853B2 (en) Local and global memory request predictor
CN103294611B (zh) 一种基于有限数据一致性状态的服务器节点数据缓存方法
CN1320464C (zh) 用于维持共享高速缓存一致性的方法和设备
US20100191913A1 (en) Reconfiguration of embedded memory having a multi-level cache
US8694732B2 (en) Enhanced coherency tracking with implementation of region victim hash for region coherence arrays
US20030154351A1 (en) Coherence message prediction mechanism and multiprocessing computer system employing the same
US8285942B2 (en) Region coherence array having hint bits for a clustered shared-memory multiprocessor system
US11599467B2 (en) Cache for storing coherent and non-coherent data
US8799587B2 (en) Region coherence array for a mult-processor system having subregions and subregion prefetching
JPH10301850A (ja) データ処理システム内のキャッシュ・コヒーレンシを維持するためにセクタ化キャッシュ・メモリに疑似精密包含方式を設ける方法及びシステム
US9286238B1 (en) System, apparatus, and method of cache management
Balasubramonian et al. Basic Elements of Large Cache Design

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120220

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130925

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131008

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20131220

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140624

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140919

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150226

R150 Certificate of patent or registration of utility model

Ref document number: 5706322

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150