IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ヌマスケール アクティーゼルスカブの特許一覧

<>
  • 特許-スヌープフィルタのスケーラビリティ 図1a
  • 特許-スヌープフィルタのスケーラビリティ 図1b
  • 特許-スヌープフィルタのスケーラビリティ 図2a
  • 特許-スヌープフィルタのスケーラビリティ 図2b
  • 特許-スヌープフィルタのスケーラビリティ 図2c
  • 特許-スヌープフィルタのスケーラビリティ 図3
  • 特許-スヌープフィルタのスケーラビリティ 図4
  • 特許-スヌープフィルタのスケーラビリティ 図5
  • 特許-スヌープフィルタのスケーラビリティ 図6
  • 特許-スヌープフィルタのスケーラビリティ 図7
  • 特許-スヌープフィルタのスケーラビリティ 図8
  • 特許-スヌープフィルタのスケーラビリティ 図9
  • 特許-スヌープフィルタのスケーラビリティ 図10
  • 特許-スヌープフィルタのスケーラビリティ 図11
  • 特許-スヌープフィルタのスケーラビリティ 図12
  • 特許-スヌープフィルタのスケーラビリティ 図13
  • 特許-スヌープフィルタのスケーラビリティ 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2025-02-12
(45)【発行日】2025-02-20
(54)【発明の名称】スヌープフィルタのスケーラビリティ
(51)【国際特許分類】
   G06F 12/0831 20160101AFI20250213BHJP
【FI】
G06F12/0831
【請求項の数】 13
(21)【出願番号】P 2024547429
(86)(22)【出願日】2023-02-09
(86)【国際出願番号】 NO2023050031
(87)【国際公開番号】W WO2023153937
(87)【国際公開日】2023-08-17
【審査請求日】2024-10-09
(31)【優先権主張番号】20220189
(32)【優先日】2022-02-10
(33)【優先権主張国・地域又は機関】NO
【早期審査対象出願】
(73)【特許権者】
【識別番号】521435259
【氏名又は名称】ヌマスケール アクティーゼルスカブ
(74)【代理人】
【識別番号】110001896
【氏名又は名称】弁理士法人朝日奈特許事務所
(72)【発明者】
【氏名】パルファ-ソリア、ティバウト
(72)【発明者】
【氏名】ペルスヴォルド、ステフン
(72)【発明者】
【氏名】シモンセン、ヘルゲ
(72)【発明者】
【氏名】ロッデ、マリオ
(72)【発明者】
【氏名】モウエン、トマス
(72)【発明者】
【氏名】ルスタッド、アイナル
(72)【発明者】
【氏名】デブナス、ゴウタム
(72)【発明者】
【氏名】ミジョース、カイ アルネ
【審査官】後藤 彰
(56)【参考文献】
【文献】特表2022-526041(JP,A)
【文献】国際公開第2020/197404(WO,A1)
【文献】特表2021-533464(JP,A)
【文献】特開2009-169877(JP,A)
【文献】特開2009-310414(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/0831
(57)【特許請求の範囲】
【請求項1】
可変のC個のキャッシュ要素を追跡するために編成されているスヌープフィルタデバイスであって、
前記スヌープフィルタデバイスが、Si個の初期スヌープフィルタインスタンスを含み、
前記スヌープフィルタデバイスが、C個のキャッシュ要素に接続可能であり、
前記スヌープフィルタデバイスが、前記C個のキャッシュ要素に接続されるときに、初期スヌープフィルタインスタンスを共にSf個の最終スヌープフィルタインスタンスにグループ化することによって編成されるように構成されており、
各初期スヌープフィルタインスタンスが、mi個のセットおよび1セット当たりni個のストレージロケーションを用いて、Liがmi・niに等しいようにniウェイセットアソシエティブ方式で編成されるLi個のスヌープフィルタストレージロケーションを含み、
各最終スヌープフィルタインスタンスが、mf個のセットおよび1セット当たりnf個のストレージロケーションを用いて、Lfがmf・nfに等しいようにnfウェイセットアソシエティブ方式で編成されるLf個のスヌープフィルタストレージロケーションを含み、
各スヌープフィルタストレージロケーションが、キャッシュ要素に格納可能なキャッシュラインを識別するタグを格納し、P個のプレゼンスベクトルを格納するように構成されており、各プレゼンスベクトルが、前記タグによって識別される前記キャッシュラインの存在に関する情報を含んでおり、
積Sf・mf・nfが積Si・mi・niに等しく、Sf<Siであり、SfがC/Pに等しい、スヌープフィルタデバイス。
【請求項2】
各キャッシュラインが、所定のタグおよび所定のkビットのキャッシュラインインデックスを含むキャッシュラインアドレスを含み、
前記スヌープフィルタデバイスの任意のスヌープフィルタインスタンスが、2k>mfの場合、前記所定のkビットのキャッシュラインインデックスの最下位または最上位のlog2(mf)ビットによって示されるセットに前記所定のタグを格納するように構成されている、請求項1記載のスヌープフィルタデバイス。
【請求項3】
P≦16である、請求項1または2に記載のスヌープフィルタデバイス。
【請求項4】
P=1またはP=2である、請求項記載のスヌープフィルタデバイス。
【請求項5】
f≧2であり、
前記Sf個の最終スヌープフィルタインスタンスの中の各スヌープフィルタインスタンスが、そのストレージロケーションの1つに同じタグを格納するように構成されており、
前記同じタグを格納する前記スヌープフィルタデバイスの前記ストレージロケーションの各々が、異なるプレゼンスベクトルを格納するように構成されている、請求項1または2に記載のスヌープフィルタデバイス。
【請求項6】
各スヌープフィルタストレージロケーションが、1つのキャッシュ要素にマッピングされる、請求項1または2に記載のスヌープフィルタデバイス。
【請求項7】
各プレゼンスベクトルが多数のプレゼンスビットを含み、プレゼンスビットの数が、キャッシュ要素識別子を書き込むために必要なビット数に1つの追加のビットを加えた数に等しい、請求項1または2に記載のスヌープフィルタデバイス。
【請求項8】
各プレゼンスベクトルが1つのプレゼンスビットからなる、請求項1または2に記載のスヌープフィルタデバイス。
【請求項9】
請求項1記載のスヌープフィルタデバイスを含むノードコントローラ。
【請求項10】
マルチコンポーネントコンピュータシステムであって
C個のキャッシュ要素と、
前記C個のキャッシュ要素に接続された請求項1または2に記載のスヌープフィルタデバイス、または
請求項9記載のノードコントローラであって、前記ノードコントローラの前記スヌープフィルタデバイスが前記C個のキャッシュ要素に接続されている、ノードコントローラ、と
を含む、マルチコンポーネントコンピュータシステム。
【請求項11】
コンピュータ実装方法であって、
a)請求項1または2に記載のスヌープフィルタデバイスを編成する工程を含む、コンピュータ実装方法。
【請求項12】
請求項11記載のコンピュータ実装方法を実行するための手段を含むデータ処理システム。
【請求項13】
コンピュータシステムによって実行されたときに、前記コンピュータシステムに請求項11記載のコンピュータ実装方法を実行させる命令を含むコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、マルチプロセッサシステムにおけるスケーラブルな(scalable)数のキャッシュ要素の追跡の改善を可能にすることを目的とした、スヌープフィルタデバイス、ノードコントローラ、マルチコンポーネントコンピュータシステム、コンピュータ実装方法、データ処理システム、およびコンピュータ可読記憶媒体に関する。
【背景技術】
【0002】
キャッシュコヒーレンスを効率的に維持することは、高性能の共有メモリマルチプロセッサシステムを取得するための主要な要件である。
【0003】
共有メモリマルチプロセッサシステムは通常、キャッシュエージェントまたは単にキャッシュと呼ばれる一連のローカルメモリエージェントに加えて、1つまたは複数の共有メインメモリエージェントを含む。キャッシュエージェントは、ローカルプロセッサまたはプロセッサのノードに属し得、メインメモリと比較して高速でサイズが小さいという特徴がある。たとえばローカルCPUのワーキングセットに属するローカルキャッシュエージェントにデータを格納することで、マルチプロセッサシステムの全体的なパフォーマンスが大幅に向上するが、これは、ワーキングセットにおける頻繁に使用されるデータがローカルCPUによってより迅速にアクセスすることができるためである。
【0004】
各々がデータをローカルに保持する一連のローカルキャッシュエージェントを有することは、キャッシュコヒーレンスを維持する方法に関する問題を引き起こすことにつながる。CPUが、たとえば書き込み操作を介してローカルキャッシュエージェントにおいてキャッシュラインを変更する場合、同じキャッシュラインのコピーを保持する他のキャッシュエージェントが、この書き込み操作を認識せず、それぞれのキャッシュラインのコピーは期限切れになる。そして、これらの期限切れのキャッシュラインは古いものとして定義され得る。
【0005】
キャッシュコヒーレンスを取得するために、すなわち、古いデータを排除するために、さまざまな技術および手順が実装されている。これには、MSI、MESI、MOESIプロトコルのような、さまざまなキャッシュコヒーレンスプロトコルの実装の他に、ディレクトリベースのキャッシュコヒーレンスメカニズムならびにスヌーピーバスベースの方法を含む、さまざまなキャッシュコヒーレンスメカニズムの実装も含まれる。
【0006】
スヌーピーバスベースの方法は通常、マルチプロセッサシステム内のさまざまなエージェント間の1つまたは複数の接続を介して、たとえば、バスを介して通信されているトランザクションをスヌープする、およびそれに応じてローカルキャッシュを更新する、いわゆるスヌーパーを含む。スヌーパーは、ノードコントローラ、キャッシュエージェント、またはキャッシュ要素に属し得、接続は、キャッシュエージェント、キャッシュノード、キャッシュ要素、CPUなどを含む、コンピュータシステム内のさまざまなエージェント間で実行され得る。キャッシュラインを変更するトランザクションが通信されているときはいつでも、スヌーパーは、このトランザクションをスヌープし、そのそれぞれのエージェントのいずれかがこのキャッシュラインのコピーを保持しているかどうかをチェックし、バスを介して通信されたトランザクションに従ってキャッシュラインを変更する。
【0007】
キャッシュコヒーレンスを達成するための主なメカニズムは現在、ディレクトリベースのものである。ディレクトリベースのキャッシュコヒーレンスとは、ブロードキャストの使用によるスヌーピーメカニズムのスケーラビリティ(scalability)が低いためにスヌーピー方法の代わりにディレクトリを使用してキャッシュを管理することを意味している。ディレクトリベースのコヒーレンスは、アドレスのステータスに関する情報を「ディレクトリ」に格納することによってブロードキャストを回避する。キャッシュラインに対するディレクトリエントリは、すべてのキャッシュ内のキャッシュラインのステータスに関する情報を含む。キャッシュは必要に応じてディレクトリから情報を検索し、キャッシュコヒーレンスは、(ブロードキャストメカニズムによってではなく)キャッシュ間のポイント・ツー・ポイントのメッセージによって維持される。
【0008】
スヌーピーベースのキャッシュコヒーレンスメカニズムおよびディレクトリベースのキャッシュコヒーレンスメカニズムの効率を向上させるために、スヌープフィルタの概念が発展されてきた。スヌープフィルタは、キャッシュに格納された一連のキャッシュラインのコヒーレンス状態に関する情報を維持するディレクトリベースの構造である。マルチプロセッサシステムでは、スヌープフィルタは、たとえばバストラフィックをモニターし、その付随するキャッシュ要素に格納されているキャッシュラインに関連しないバス上のトランザクションをフィルタで除外し得る。これにより、結果として、スヌーパーは、より少ない電力と時間を消費するルックアップを実行することになり、それゆえスヌーピーベースのキャッシュコヒーレンスメカニズムの効率が向上する。
【0009】
スヌープフィルタは一般的に、一連のエントリで情報を維持するように構築されており、ここで、各エントリは、タグと、付随するタグに関連する1つまたは複数の追加のビットとを含む。タグがキャッシュラインの一意の識別子である一方で、追加のビットは、たとえば、タグによって識別されるキャッシュラインの状態を示し得る。追加のビットは、例として、1つまたは複数のプレゼンスベクトルを構成し得、その各々は、タグによって識別されるキャッシュラインがキャッシュに格納されているかどうか、および随意に、キャッシュ内のどこに、またはどのキャッシュ要素に、キャッシュラインが格納されているかに関する情報を含む。
【0010】
スヌープフィルタは、可変数のキャッシュ要素に接続され得るノードコントローラに組み込まれ得る。異なる数のキャッシュ要素に接続されたときにノードコントローラが機能するには、ノードコントローラは、スヌープフィルタで可変数のキャッシュ要素を追跡することができる必要がある。これは、従来2つの方法で、すなわち、追跡されるキャッシュ要素の数に応じて各スヌープフィルタエントリのプレゼンスベクトルをスケーリング(scaling)するか、または各プレゼンスベクトルが複数のキャッシュ要素を表すようにすることによって達成されてきた。
【0011】
プレゼンスベクトルのスケーリングを伴うスケーリングアプローチでは、実施することができるスケーリングの量が限定され、プレゼンスベクトルのスケーリングの結果として各スヌープフィルタエントリのアドレス機能が損なわれるという欠点が出てくる。一方で、各プレゼンスベクトルが1つを超えるキャッシュ要素を表すようにすると、スヌープフィルタが如何に正確にキャッシュ要素を追跡することができるかの精度における大幅な喪失という欠点が出てくる。
【0012】
本発明の目的は、スヌープフィルタの構造を改良して、可変数のキャッシュ要素の追跡の改善を可能にすることである。
【発明の概要】
【0013】
本発明の第1の態様では、本発明は、可変のC個のキャッシュ要素を追跡するために編成される(organized)スヌープフィルタデバイスを提供し、スヌープフィルタデバイスは、Si個の初期スヌープフィルタインスタンスを備え、スヌープフィルタデバイスは、C個のキャッシュ要素に接続可能であり、スヌープフィルタデバイスは、スヌープフィルタデバイスがC個のキャッシュ要素に接続されるときに、初期スヌープフィルタインスタンスを共にSf個の最終スヌープフィルタインスタンスにグループ化することによって編成されるように構成されており、各初期スヌープフィルタインスタンスは、mi個のセットおよび1セット当たりni個のストレージロケーションを用いて、Liがmi・niに等しいように、niウェイセットアソシエティブ方式(ni-way set associative manner)で編成されるLi個のスヌープフィルタストレージロケーションを含み、各最終スヌープフィルタインスタンスは、mf個のセットおよび1セット当たりnf個のストレージロケーションを用いて、Lfがmf・nfに等しいようにnfウェイセットアソシエティブ方式で編成されるLf個のスヌープフィルタストレージロケーションを含み、および各スヌープフィルタストレージロケーションは、キャッシュ要素に格納可能なキャッシュラインを識別するタグを格納し、P個のプレゼンスベクトルを格納するように構成されており、各プレゼンスベクトルは、タグによって識別されるキャッシュラインの存在に関する情報を含んでおり、積Sf・mf・nfは積Si・mi・niに等しく、Sf<Siであり、SfはC/Pに等しい。
【0014】
本発明の一実施形態によれば、各キャッシュラインは、所定のタグおよび所定のkビットのキャッシュラインインデックスを含むキャッシュラインアドレスを含み、スヌープフィルタデバイスの任意のスヌープフィルタインスタンスは、2k>mfの場合、所定のkビットのキャッシュラインインデックスの最下位または最上位のlog2(mf)ビットによって示されるセットに所定のタグを格納するように構成されている。
【0015】
本発明の別の実施形態によれば、P≦16である。
【0016】
本発明のさらに別の実施形態によれば、P=1またはP=2である。
【0017】
本発明のさらに別の実施形態によれば、Sf≧2であり、Sf個の最終スヌープフィルタインスタンスの中の各スヌープフィルタインスタンスは、そのストレージロケーションの1つに同じタグを格納するように構成され、同じタグを格納するスヌープフィルタデバイスのストレージロケーションの各々は、異なるプレゼンスベクトルを格納するように構成されている。
【0018】
本発明のさらに別の実施形態によれば、各スヌープフィルタストレージロケーションは、1つのキャッシュ要素にマッピングされる。
【0019】
本発明のさらに別の実施形態によれば、各プレゼンスベクトルはいくつかのプレゼンスビットを含み、プレゼンスビットの数は、キャッシュ要素識別子を書き込むために必要なビット数に1つの追加のビットを加えた数に等しい。
【0020】
本発明のさらに別の実施形態によれば、各プレゼンスベクトルは、1つのプレゼンスビットからなる。
【0021】
本発明の第2の態様では、本発明は、本発明の第1の態様によるスヌープフィルタデバイスを含むノードコントローラを提供する。
【0022】
本発明の第3の態様では、本発明は、C個のキャッシュ要素と、C個のキャッシュ要素に接続されたスヌープフィルタデバイス、またはノードコントローラであって、ノードコントローラのスヌープフィルタデバイスがC個のキャッシュ要素に接続されているノードコントローラと、を含むマルチコンポーネントコンピュータシステムを提供する。
【0023】
本発明の第4の態様では、本発明は、コンピュータ実装方法を提供し、コンピュータ実装方法は、スヌープフィルタデバイスがC個のキャッシュ要素に接続されているときに、積Sf・mf・nfが積Si・mi・niに等しく、SfがC/Pに等しいように、本発明の第1の態様によるスヌープフィルタデバイスを編成する工程を含む。
【0024】
本発明の第5の態様では、本発明は、コンピュータ実装方法を実行するための手段を含むデータ処理システムを提供する。
【0025】
本発明の第6の態様では、本発明は、コンピュータシステムによって実行されたときに、コンピュータシステムにコンピュータ実装方法を実行させる命令を含むコンピュータ可読記憶媒体を提供する。
【0026】
他の利点となる特徴は、添付の請求項から明らかになる。
【図面の簡単な説明】
【0027】
本発明をより容易に理解することができるように、以下の詳説は添付図面を参照する。
【0028】
図1a】Si個の初期スヌープフィルタインスタンスを含むスヌープフィルタデバイスの概略図であり、各初期スヌープフィルタインスタンスは、Li個のスヌープフィルタストレージロケーションを含む。
図1b】C個のキャッシュ要素に接続可能なスヌープフィルタデバイスの概略図である。
図2a】Si個の初期スヌープフィルタインスタンスがSf個の最終スヌープフィルタインスタンスに編成されるスヌープフィルタデバイスの概略図であり、各最終スヌープフィルタインスタンスは、nウェイセットアソシエティブ方式で編成される。
図2b】Si個の初期スヌープフィルタインスタンスがSf個の最終スヌープフィルタインスタンスに編成されるスヌープフィルタデバイスの概略図であり、各最終スヌープフィルタインスタンスは、nウェイセットアソシエティブ方式で編成される。
図2c】Si個の初期スヌープフィルタインスタンスがSf個の最終スヌープフィルタインスタンスに編成されるスヌープフィルタデバイスの概略図であり、各最終スヌープフィルタインスタンスは、nウェイセットアソシエティブ方式で編成される。
図3】複数のビットを含むプレゼンスベクトルおよび1ビットを含むプレゼンスベクトルの概略図である。
図4】所定のキャッシュラインアドレスのタグが、その所定のキャッシュラインアドレスのkビットのインデックスの少なくとも一部によって示されるスヌープフィルタインスタンスのセットに格納され得ることを概略的に例示する。
図5】キャッシュ要素に格納可能なキャッシュラインを識別するタグを格納し、P個のプレゼンスベクトルを格納するように構成されている、本発明によるスヌープフィルタストレージロケーションの概略図である。
図6】スヌープフィルタインスタンスの各々にタグ、タグA、が格納されている、S個のスヌープフィルタインスタンスを含むスヌープフィルタデバイスの概略図である。
図7】スヌープフィルタインスタンスの各々にタグ、タグA、B、およびZ、が格納されている、複数のスヌープフィルタインスタンスを含むスヌープフィルタデバイスの概略図である。
図8】各スヌープフィルタストレージロケーションが1つのキャッシュ要素にマッピングされているスヌープフィルタインスタンスの概略図である。
図9】キャッシュ識別子を明示的に表現するのに十分ないくつかのプレゼンスビットと、1つの占有ビットとを含むプレゼンスベクトルの概略図である。
図10】スヌープフィルタデバイスを含むノードコントローラを例示する。
図11】スヌープフィルタデバイスを含むノードコントローラを例示する。
図12】C個のキャッシュ要素と、C個のキャッシュ要素に接続されたスヌープフィルタデバイスとを含むマルチコンポーネントコンピュータシステムを例示する。
図13】C個のキャッシュ要素と、スヌープフィルタデバイスを含むノードコントローラとを含むマルチコンポーネントコンピュータシステムを例示しており、ノードコントローラはC個のキャッシュ要素に接続されている。
図14】本発明によるコンピュータ実装方法を例示する。
【発明を実施するための形態】
【0029】
以下では、本発明の一般的な実施形態に加えて例示的な実施形態について説明する。添付の図面に対して参照がなされ、考えられ得る番号が付与される。しかし、図面が例示的な実施形態にすぎず、他の特徴および実施形態が、記載されるように本発明の範囲内に十分に含まれ得ることに留意されたい。
【0030】
本発明は、マルチプロセッサシステムにおける可変数のキャッシュ要素の追跡の改善を可能にすることを目的とした、スヌープフィルタデバイス、ノードコントローラ、マルチコンポーネントコンピュータシステム、コンピュータ実装方法、データ処理システム、およびコンピュータ可読記憶媒体に関する。
【0031】
本発明の第1の態様では、本発明は、可変のC個のキャッシュ要素を追跡するように編成されているスヌープフィルタデバイスを提供する。ここで、スヌープフィルタデバイスは、直接的または間接的に、C個のキャッシュ要素に接続可能である。
【0032】
図1aは、Si個の初期スヌープフィルタインスタンスを含むスヌープフィルタデバイスを概略的に例示する。Siは実数の正の整数である。ここで、各初期スヌープフィルタインスタンスは、Li個のスヌープフィルタストレージロケーションを含む。Li個のスヌープフィルタストレージロケーションは、nウェイセットアソシエティブ方式で編成されており、これは、スヌープフィルタデバイスが、セットアソシエティブキャッシュに類似したエントリ配置ポリシーに従うことを意味している。nウェイセットアソシエティブ構成とは、図1aに例示されるように、各初期スヌープフィルタインスタンスが、ストレージロケーションのni・miマトリックスとして想像され得ることを意味しており、ここで、miはセットの数であり、niは1セットあたりのストレージロケーションの数である。niは、言い換えれば、ウェイの数であると言うことができ、したがって、各初期スヌープフィルタインスタンスは、niウェイセットアソシエティブスヌープフィルタであると言われ得る。各初期スヌープフィルタインスタンス内のストレージロケーションの合計数はLiに等しい。本発明によれば、Liはmi×niのストレージロケーションに等しい。
【0033】
図1bは、C個のキャッシュ要素に接続可能なスヌープフィルタデバイスを例示しており、Cは実数の正の整数である。接続は、たとえばバス経由の直接接続、またはたとえばルータ、ノードコントローラなどのコンポーネント経由の間接接続であり得る。Cは、たとえば、2の累乗である実数の正の整数であり得るが、原理的には任意の実数の正数にすることができる。スヌープフィルタデバイスは、本発明によれば、C個のキャッシュ要素に接続されるときに編成されるように構成されている。上記編成は、初期スヌープフィルタインスタンスを共にSf個の最終スヌープフィルタインスタンスにグループ化することによって実施され、これは、たとえば、2x・Sf=Si、x={1,2,3,...}のように、結果としてSfがSiより小さくなることを意味している。したがって、スヌープフィルタデバイスは、初期スヌープフィルタインスタンスを共にSf個の最終スヌープフィルタインスタンスにグループ化するように構成されていると言われ得る。当業者であれば、本明細書におけるスヌープフィルタデバイスが、初期スヌープフィルタインスタンスを共にSf個の最終スヌープフィルタインスタンスにグループ化するように特に適合されていると考えられ得ることを理解するであろう。代替的に、スヌープフィルタデバイスは、初期スヌープフィルタインスタンスを共にSf個の最終スヌープフィルタインスタンスにグループ化するように特別に適合されていると考えられ得る別のエージェント、たとえば、CPUまたはノードコントローラによって操作されてもよい。初期スヌープフィルタインスタンスのグループ化は、スヌープフィルタデバイス、またはスヌープフィルタデバイスを操作するエージェントをプログラミングして、たとえばソフトウェアレベルまたはハードウェアレベルでグループ化を実施することによって実装され得る。編成は、本発明に関連して、再編成と同等の用語と考えられ、これらの2つの用語は、本明細書では互換的に使用され得る。
【0034】
f個の最終スヌープフィルタインスタンスの各々は、本発明に従って、Lf個のスヌープフィルタストレージロケーションを含み、ここで、Lf個のスヌープフィルタストレージロケーションは、nfウェイセットアソシエティブ方式で編成される。初期スヌープフィルタインスタンスに関して、後者は、初期スヌープフィルタインスタンスをグループ化した後に、スヌープフィルタデバイスが、セットアソシエティブキャッシュに類似したエントリ配置ポリシーに従うことを意味している。図2a~2cは、nfウェイセットアソシエティブ方式で編成されている最終スヌープフィルタインスタンスを例示している。nfウェイセットアソシエティブ編成とは、各最終スヌープフィルタインスタンスが、ストレージロケーションのnf・mfマトリックスとして想像され得ることを意味しており、ここで、mfはセットの数であり、nfは1セットあたりのストレージロケーションの数である。nfは、言い換えれば、ウェイの数であると言うことができ、したがって、各最終スヌープフィルタインスタンスは、nfウェイセットアソシエティブスヌープフィルタであると言われ得る。各最終スヌープフィルタインスタンス内のストレージロケーションの合計数は Lfに等しい。本発明によれば、Lfはmi×niのストレージロケーションの合計数に等しい。
【0035】
初期スヌープフィルタインスタンスまたは最終スヌープフィルタインスタンスである任意のスヌープフィルタインスタンスが、直接マッピングされる方式で、または正確な値ni、nfおよびmi、fに基づくセットアソシエティブ方式で、完全に連想的に構築されるとみなし得ることが当業者によって理解される。この構築は、スヌープフィルタデバイスが、フルアソシエティブキャッシュ、ダイレクトマップキャッシュ、またはセットアソシエティブキャッシュそれぞれに類似したエントリ配置ポリシーに従い得ることを意味している。例として、nexample1が1に等しく、mexample1がスヌープフィルタインスタンス内のストレージロケーションの数に等しい場合に、nexample1ウェイセットアソシエティブスヌープフィルタインスタンスが直接マッピングされる。別の例は、nexample2がスヌープフィルタインスタンス内のストレージロケーションの数に等しく、mexample2が1に等しい場合に、完全に連想的になるnexample2ウェイセットアソシエティブスヌープフィルタインスタンスである。
【0036】
初期スヌープフィルタインスタンスまたは最終スヌープフィルタインスタンスである任意のスヌープフィルタインスタンスは、本発明に従って、一般的なスヌープフィルタと同じ機能性を有するものとみなすことができる。一般的なスヌープフィルタは、ここでは、独立したスヌープフィルタ、たとえば、1つのインスタンスのみを含むスヌープフィルタとみなすことができる。スヌープフィルタインスタンスのディレクトリは、本発明の任意の実施形態に従って、そのスヌープフィルタインスタンスのストレージロケーションを含むものとみなすことができる。各スヌープフィルタインスタンスは、任意の他のスヌープフィルタインスタンスと並行して、たとえば、同期または非同期で動作するように構成されている。
【0037】
初期スヌープフィルタインスタンスまたは最終スヌープフィルタインスタンスである任意のスヌープフィルタインスタンスのストレージロケーションが、レジストリを構成するとみなし得ることが当業者によって理解される。レジストリは、結果として、1ストレージロケーションあたり1つのエントリで、多数のスヌープフィルタエントリを格納するように構成されるとみなすことができる。エントリは、ストレージロケーションに格納された情報であるとみなすことができる。
【0038】
図5は、キャッシュ要素に格納可能なキャッシュラインを識別するタグを格納し、P個のプレゼンスベクトルを格納するように構成されている、本発明によるスヌープフィルタストレージロケーションを概略的に例示している。図5の項目a)は、エントリ内の1つのプレゼンスベクトルの格納を示し、図5の項目b)は、エントリ内の2つのプレゼンスベクトルの格納を示し、図5の項目c)は、エントリ内の16のプレゼンスベクトルの格納を示している。スヌープフィルタインスタンスの同じストレージロケーションに格納されるタグおよびプレゼンスベクトルは、本発明の任意の実施形態に従って、互いに関連付けられているとみなされ得る。
【0039】
プレゼンスベクトルは、簡単に言えば、上記プレゼンスベクトルと同じストレージロケーションに格納されたタグによって識別されるキャッシュラインが、所定のキャッシュ要素内に存在するかどうかに関する情報を含む少なくとも一つのビットとして解釈され得る。プレゼンスベクトルは、上記キャッシュラインに対する識別子をさらに含み得る。図3は、図3の項目aが1ビットを含み、図3の項目bが複数のビットを含む、プレゼンスベクトルの概略図である。各ストレージロケーションにおけるプレゼンスベクトルPの数は、本発明に従って、定数である。言い換えれば、Pはスヌープフィルタデバイスの再編成によって変化せず、すなわち、PはCにより増減しない。数値Pは、たとえば、スヌープフィルタデバイスの製造時に選択され得るか、またはスヌープフィルタデバイスの構成時、たとえば、再起動操作中に選択され得る。
【0040】
各スヌープフィルタストレージロケーションに格納可能なプレゼンスベクトルPの数は、本発明に従って、実数の正の整数、たとえば、2の累乗の実数の正の整数である。各スヌープフィルタストレージロケーションに格納可能なプレゼンスベクトルの数Pは 本発明の一実施形態に従って、16以下である。Pは、1に等しくてもよく、または代替的に2に等しくてもよい。図5は、スヌープフィルタエントリの3つの例を例示しており、1つはP=1、1つはP=2、1つはP=16の場合である。
【0041】
タグは、本発明に関連して、キャッシュラインの一意の識別子としてみなされてよく、典型的にキャッシュラインアドレスの少なくとも一部として含まれる。キャッシュラインアドレスは、インデックス、オフセット、フラグビット、および任意の数の状態ビットなどのうちのいずれか1つまたは複数をさらに含み得る。キャッシュラインアドレスまたはキャッシュラインアドレスの一部は、キャッシュブロックと一緒にキャッシュラインを構成し得る。言い換えれば、キャッシュラインは、少なくともキャッシュブロックを含み、随意にキャッシュラインアドレスの少なくとも一部を含む。タグは、本発明の任意の実施形態に従って、それが識別するキャッシュラインに関連付けられているとみなすことができる。
【0042】
スヌープフィルタデバイスは、図2に例示される通りに、たとえば、2x・Sf=Si、x={1,2,3,...}であるように、初期スヌープフィルタインスタンスを共にSf個の最終スヌープフィルタインスタンスにグループ化することによって編成されるように構成されている。図2aの中央のスヌープフィルタインスタンスでは、2Sf=Siであり、これは、セットの数が削減され、そのため2mi=mfになることを意味している。右端のスヌープフィルタインスタンスでは、2x・Sf=Siであり、ここで、x=2であり、結果として4Sf=Siであり、したがって4mi=mfである。図2bの中央では、最終スヌープフィルタインスタンスの各セットは、2倍の数のエントリを含み、すなわち、nf=2niであり、したがってmi=mfおよび2Sf=Siである。右端の図では、nf=4niおよび4Sf=Siである。スヌープフィルタデバイスは、言い換えれば、初期スヌープフィルタ編成から最終スヌープフィルタ編成に編成されているとみなすことができる。したがって、初期スヌープフィルタ編成はパラメータSi、mi、およびniによって定義され得、一方で最終スヌープフィルタ編成は、パラメータSf、mf、およびnfによって定義され得る。複数の最終スヌープフィルタインスタンスへの初期スヌープフィルタインスタンスのグループ化の結果として、最終スヌープフィルタインスタンスSfの数は、初期スヌープフィルタインスタンスSiの数よりも少なくなる。しかし、スヌープフィルタデバイス内のストレージロケーションの数は、Li=mi×ni=Lf=mf×nfのように同じままである。したがって、スヌープフィルタデバイスの編成は、積Sf・mf・nfがSi・mi・niに等しくなるようにされる。
【0043】
初期スヌープフィルタインスタンスまたは最終スヌープフィルタインスタンスである、スヌープフィルタデバイスの各スヌープフィルタインスタンスは、本発明に従って、任意の個々の所定のタグをそのストレージロケーションの最大の1つに格納し得る。その所定のタグを格納するストレージロケーションが、P個の別のプレゼンスベクトル、すなわち、所定のタグに関連付けられたP個のプレゼンスベクトルも格納するため、各スヌープフィルタインスタンスは、結果として、P個の別個のキャッシュ要素内の所定のタグによって識別されるキャッシュラインの存在に関する情報を保持する。言い換えれば、各スヌープフィルタインスタンスが、各タグに対してP個の別個のキャッシュ要素を追跡し得るということもできる。スヌープフィルタデバイスは、Si個またはSf個のスヌープフィルタインスタンスを含むため、スヌープフィルタデバイス全体は、結果として、P・Si,f個の別個のキャッシュ要素内の所定のタグによって識別される所定のキャッシュラインの存在に関する情報を保持し得る。したがって、各スヌープフィルタインスタンスは、各タグについてP・Si,f個の別個のキャッシュ要素を追跡し得る。
【0044】
1つのスヌープフィルタインスタンスのストレージロケーションは、別のスヌープフィルタインスタンスのストレージロケーションにも格納されている所定のタグを格納し得る。各々が同じタグを含む、2つの異なるインスタンス内のエントリは、異なるプレゼンスベクトルをさらに含み得る。それゆえ、本発明によるスヌープフィルタデバイスは、従来のスヌープフィルタデバイスと比較して、単一のタグによって識別されるキャッシュラインを格納しているより多くのキャッシュ要素を追跡し得る。図6は、スヌープフィルタインスタンスの各々にタグ、タグA、が格納されている、S個のスヌープフィルタインスタンスを含むスヌープフィルタデバイスの概略図である。タグAは、ここで、各スヌープフィルタインスタンスに対する2つの別個のプレゼンスベクトルに関連付けられており、これは、スヌープフィルタデバイスが、タグAによって識別されるキャッシュラインが格納されている最大2・S個のキャッシュ要素を追跡し得ることを意味している。図7は、スヌープフィルタインスタンスの各々に別個のタグ、タグA、B、およびZ、が格納されている、複数のスヌープフィルタインスタンスを含むスヌープフィルタデバイスの概略図である。スヌープフィルタデバイスが追跡することができるキャッシュ要素の数は、図7において、各ストレージロケーションにおけるプレゼンスベクトルの数に依存し得ることがわかる。
【0045】
Pが定数であると、スヌープフィルタデバイスは、本発明に従って、P・Si個の別個のキャッシュ要素内の所定のタグによって識別される所定のキャッシュラインの存在に関する情報を最大限に保持し得る。言い換えれば、スヌープフィルタインスタンスが、各タグに対してP・Si個の最多の別個のキャッシュ要素を追跡し得るということができる。スヌープフィルタデバイスは、スヌープフィルタインスタンスのグループ化を通じて、P・Siよりも少ない各タグに対する別個のキャッシュ要素を追跡するように編成され得る。Sf<Siのスヌープフィルタインスタンスで編成されているスヌープフィルタデバイスは、結果的に、各タグに対する最大のP・Sf<P・Si個の別個のキャッシュ要素を追跡し得る。本発明によるスヌープフィルタデバイスは、結果的に、可変数Cのキャッシュ要素を追跡し得る。例として、P・Siより少ないキャッシュ要素Cexampleを含むコンピューティングシステムにおけるコンポーネントとして設置されたスヌープフィルタデバイスは、Cexampleの数に従って、すなわち、P・Sf=Cexampleとなるように、または少なくともP・Sf<Cexample<P・Siとなるように、スヌープフィルタを編成するために、その初期スヌープフィルタインスタンスをグループ化し得る。このようなグループ化によって、スヌープフィルタデバイスの最終編成でより大きな最終スヌープフィルタインスタンスが可能になり、すなわち、初期スヌープフィルタ編成におけるよりも各最終スヌープフィルタインスタンスにおいて、より多くのセットおよび/またはウェイが可能になる。初期スヌープフィルタ編成は、本例では、グループ化が実施されない事象において、アイドル状態のスヌープフィルタインスタンスを有し得、使用中のスヌープフィルタインスタンスは、ここでは、任意にあり得たであろうものよりも小さくなる。したがって、最終スヌープフィルタインスタンスの数Sfは、本発明に従って、スヌープフィルタデバイスに接続されたキャッシュ要素の数Cおよび各ストレージロケーション内のプレゼンスベクトルの数Pから決定され得る。したがって、Sfは、Sf=C/Pとなるように、CおよびPで増減する(scale)、または言い換えれば、変化する。
【0046】
本発明によるスヌープフィルタデバイスは、多数のキャッシュ要素Cに接続可能である。各キャッシュ要素はさらに、多数のキャッシュエージェントを含むとみなすことができ、キャッシュ要素は全体として、エージェント、すなわち、たとえばプロキシエージェントと呼ばれ得る。キャッシュ要素は、本発明に関連して、キャッシュエージェントの任意の収集物(collection)として解釈され得る。キャッシュ要素は、たとえば、任意数のキャッシュエージェント、たとえば、整数のキャッシュエージェント、または小数のキャッシュエージェントを含むと解釈され得る。したがって、キャッシュ要素の例は、キャッシュエージェントの半分、1つのキャッシュエージェント、2つのキャッシュエージェント、1つのキャッシュエージェント全体と別のキャッシュエージェントの半分などであり得る。各キャッシュ要素におけるキャッシュエージェントは、直接に、集合的に、または、直接と集合的の組み合わせで、スヌープフィルタデバイスに接続され得る。任意のキャッシュ要素が、任意の物理キャッシュユニット、物理キャッシュユニットの一部、または1つのキャッシュ識別子によって一意に識別されるキャッシュユニットのグループとみなされ得ることが当業者によって理解される。したがって、キャッシュ識別子は、本発明に従って、キャッシュ要素に対する識別子である。
【0047】
図9は、たとえば、各プレゼンスベクトル内のプレゼンスビットの数が、キャッシュ識別子を明示的に表現するのに十分であるような、任意数のプレゼンスビットを含むプレゼンスベクトルの概略図である。プレゼンスベクトルは、追加的または代替的に、1つの占有ビットを含んでもよい。占有ビットは、上記プレゼンスベクトルに関連付けられたタグによって識別されるキャッシュラインが、キャッシュ識別子によって表されるキャッシュ要素に存在する場合に、真、に設定され、キャッシュラインが存在しない場合には、偽、に設定され得る。
【0048】
図8は、各スヌープフィルタストレージロケーションが1つのキャッシュ要素にマッピングされているスヌープフィルタインスタンスの概略図である。スヌープフィルタデバイスの各スヌープフィルタストレージロケーションは、本発明の任意の実施形態に従って、1つのキャッシュ要素にマッピングされ得る。このマッピングは、任意の1つのスヌープフィルタストレージロケーションが、それがマッピングされているキャッシュ要素のみを追跡し得ることを意味している。任意の1つのスヌープフィルタストレージロケーションは、言い換えれば、そのスヌープフィルタストレージロケーションがマッピングされているキャッシュ要素に格納されているキャッシュラインに関連する情報のみを含んでよい。したがって、各スヌープフィルタストレージロケーションは、1つのキャッシュ要素に全単射的(bijectively)にマッピングされていると言うことができる。結果として、所定のタグを格納するスヌープフィルタストレージロケーションは、そのスヌープフィルタストレージロケーションがマッピングされているキャッシュ要素が、そのタグによって識別されるキャッシュラインのコピーを保持することを示し得る。その結果、同じスヌープフィルタストレージロケーションは、キャッシュラインのコピーを保持する、キャッシュ要素の部分、たとえば特定のキャッシュエージェント、に関するいかなる情報も含み得ない。同じスヌープフィルタストレージロケーションは、システム内の他のキャッシュ要素におけるキャッシュラインの存在に関する情報を含み得ない。スヌープフィルタデバイスの各スヌープフィルタストレージロケーションは、本発明の任意の実施形態に従って、1つのキャッシュ要素に各々マッピングされるように構成されるとみなすことができる。複数のスヌープフィルタストレージロケーションが各々、同じキャッシュ要素にマッピングされ得る。これは、スヌープフィルタデバイスが、1つのキャッシュ要素内の複数のキャッシュラインを追跡するために、複数のスヌープフィルタストレージロケーションを利用し得ることを意味している。
【0049】
スヌープフィルタデバイスは、本発明の一実施形態に従って、各スヌープフィルタストレージロケーションが1つのキャッシュ要素に暗黙的にマッピングされるように設計されている。各スヌープフィルタストレージロケーションは、この場合、各々がスヌープフィルタインスタンス内のストレージロケーションを介して、1つのキャッシュ要素に暗黙的にマッピングされる。このマッピングは、ハードウェア、ファームウェア統合、および/またはソフトウェア統合によるものであり得る。結果的に、プレゼンスベクトルを構成するプレゼンスビットは、キャッシュ要素に対するキャッシュ識別子を明示的に表現する必要はない。1プレゼンスベクトルあたりのプレゼンスビットの数は、キャッシュ識別子によって識別されるキャッシュ要素が特定のキャッシュラインのコピーを保持しているかどうかを示す1ビットであり得る。1のプレゼンスビットは、上記プレゼンスビットに関連付けられたタグによって識別されるキャッシュラインが、プレゼンスビットのストレージロケーションがマッピングされているキャッシュ要素に存在する場合に、真、に設定され、キャッシュラインが存在しない場合には、偽、に設定される。
【0050】
スヌープフィルタデバイスの各ストレージロケーションは、本発明に従って、同じ形式のスヌープフィルタエントリを格納するように構成されている。スヌープフィルタエントリの形式は、エントリがどのタイプのストレージロケーション要素を備えるかによって、および各ストレージロケーション要素に割り当てられるビット数によって決定される。このようなストレージロケーション要素の例は、タグ、1つまたは複数のプレゼンスベクトル、1つまたは複数の状態ビットなどである。スヌープフィルタエントリの形式はまた、各ストレージロケーション要素に割り当てられたビット数、たとえば、プレゼンスベクトルあたりのタグビットの数およびプレゼンスビットの数によって決定される。したがって、同じ形式の2つのスヌープフィルタエントリは、各ストレージロケーション要素に割り当てられる同じ数のビットを有する同じタイプのストレージロケーション要素を備える。図3は、1つのプレゼンスベクトルを含むスヌープフィルタエントリを例示しており、ここで、プレゼンスベクトルは複数のビットを含み(図3a)、プレゼンスベクトルは1ビットからなる(図3b)。
【0051】
スヌープフィルタデバイスは、データトラフィックをモニターして、さまざまなキャッシュラインに属するデータブロックのコヒーレンシ状態の追跡を続けるデバイスとみなすことができる。モニターされるデータトラフィックは、キャッシュラインアドレスの少なくとも一部の形式の情報、たとえば、特定のキャッシュラインが変更されているという情報を含み得る。キャッシュラインアドレスは、タグおよびkビットのインデックスを含み得、ここで、kビットの少なくとも一部は、セットアソシエティブスヌープフィルタインスタンス内のどのセットが、インデックスに付属の、すなわち関連付けられた、タグを有するエントリを含むかを、判定する/インデックスを付ける、ために使用される。特定のキャッシュラインアドレスに属するタグは、この場合、そのキャッシュラインアドレスのインデックスによって示されるセットアソシエティブスヌープフィルタインスタンスのセット内のエントリの一部としてのみ格納することができる。したがって、キャッシュラインは、言い換えれば、そのキャッシュラインアドレスのインデックスを介してインスタンス内のセットに関連付けられ得る。
【0052】
キャッシュラインアドレスは、図4に例示されるように、タグおよびkビットのインデックスを含み得、ここで、kビットのインデックスの少なくとも一部は、スヌープフィルタインスタンス内のどのセットが、インデックスに付属の、すなわち関連付けられた、タグを保持するエントリを含むかを判定する/インデックスを付ける、ために使用される。たとえば、4ビットのインデックスが16の異なるセットにインデックスを付ける一方で、8ビットのインデックスは、256の異なるセットにインデックスを付けることができる。場合によっては、たとえば図4に例示されるように、キャッシュラインは2k>mi,fであるkビットのインデックスを含み、これは、キャッシュラインアドレスの最大のインデックスが、スヌープフィルタインスタンスに存在しないセットを示し得ることを意味している。それゆえ、スヌープフィルタデバイスの任意のスヌープフィルタインスタンスは、2k>mi,fのときに、kビットのインデックスに関連付けられたタグを、kビットのインデックスの最下位または最上位log2(mi,f)ビットによって示されるセットに格納し得る。インデックスの長さkは、さまざまなエージェント、たとえば、キャッシュ要素またはスヌープフィルタエージェントなどの関連性(associativity)などの、さまざまなシステムパラメータによって判定され得る。ここでの関連性の程度は、nウェイセットアソシエティブエージェントにおけるnの値を意味している。直接マッピングされているエージェントは、前に記載したように、関連性n=1を有し、2ウェイセットアソシエティブであるエージェントは関連性n=2を有し、4ウェイのセットアソシエティブであるエージェントは関連性n=4を有し、以下同様に続く。
【0053】
スヌープフィルタデバイスは、図2に概略的に例示されるように、スヌープフィルタデバイスに実装される初期数Siのスヌープフィルタインスタンスで製造され得る。この初期数のスヌープフィルタインスタンスは、たとえば、ハードウェアまたはソフトウェアで実装され得、スヌープフィルタデバイスが含むことができるスヌープフィルタインスタンスの最大数を決定する。このようなスヌープフィルタデバイスの例は、物理的に実装されるインスタンスの初期数で製造されたASICベースのスヌープフィルタデバイスである。スヌープフィルタインスタンスの初期数は、任意の2の累乗、たとえば、8、16、32、64、または128であり得る。
【0054】
スヌープフィルタデバイスは、本発明の一実施形態に従って、別個のユニット、たとえば、ノードコントローラまたはCPUによって駆動され得る。このユニットは、初期スヌープフィルタインスタンスを完全に独立して動作させるように、または2つまたはそれ以上の最終スヌープフィルタインスタンスのグループを1つのインスタンスであるかのように同時に動作させるように、構成され得る。スヌープフィルタデバイスを駆動するユニットは、最大数のキャッシュ要素を追跡するために、Si個の初期スヌープフィルタインスタンスの各々を個別に動作させ得る。各スヌープフィルタインスタンスが、1タグあたりP個のキャッシュ要素を追跡することができるため、スヌープフィルタデバイスが追跡することができるキャッシュ要素の最大数Cmaxは、この場合、Cmax=P・Siになる。最大Cmaxより少ない数のキャッシュ要素を追跡することが望ましい場合、スヌープフィルタデバイスを駆動するユニットは、複数の初期スヌープフィルタインスタンスを、より大きな最終インスタンス、すなわち、有効なインスタンスにグループ化し得る。スヌープフィルタインスタンスのグループ化は、実際には、たとえばアドレスインターリービングを通じて行われ得る。
【0055】
一例として、スヌープフィルタデバイスは、各初期インスタンスにおけるmi個のセットおよび各初期インスタンスにおける1セットあたりni個のストレージロケーションを備えて初期数Siの初期スヌープフィルタインスタンスで設計され得る。Si、mi、およびniは、ここで任意の正の整数であり得、たとえば、Si=2gであって、ここでg={1,2,...}であり、mi=2hであって、ここでh={0,1,2,...}であり、およびni=2jであって、ここでj={0,1,2,...}である。スヌープフィルタデバイスは、ここで説明される通り、最大Cmax個のキャッシュ要素を追跡するように構成されており、ここでCmax=P・Siである。スヌープフィルタデバイスは、複数の初期スヌープフィルタインスタンスを共にグループ化することによって、C<Cmax個のキャッシュ要素を追跡し得る。たとえば、Si個の初期スヌープフィルタインスタンスで設計されたスヌープフィルタデバイスを用いてC=Cmax/2個のキャッシュ要素を追跡することが望ましい場合、スヌープフィルタデバイス、またはスヌープフィルタデバイスを駆動するコンポーネントは、たとえば、2つの初期スヌープフィルタインスタンス同士を共にグループ化し得る。後者の場合、スヌープフィルタデバイスは、Sf=Si/2個の最終スヌープフィルタインスタンスとなる。nfおよびmfは、式Sf・mf・nf=Si・mi・niに従って決定され、これは、本例では、mf×nf=2mi×nfであることを意味している。たとえば、mf=miである場合、nf=2・niであるか、またはnf=niである場合、mf=2・miである。
【0056】
i、mi、およびniは、本発明の任意の実施形態に従って、各々が任意の正の整数であり得、たとえば、Si=2gであって、ここでg={1,2,...}であり、mi=2hであって、ここでh={0,1,2,...}であり、およびni=2jであって、ここでj={0,1,2,...}である。miは、たとえば、百、千、または万のオーダーであり得る。niは、たとえば、百、千、または万のオーダーであり得る。Siは、たとえば、8、16、32、64、128、または256に等しくてよい。
【0057】
図10および11は、スヌープフィルタデバイスを含むノードコントローラを例示する。ノードコントローラは、スヌープフィルタデバイスを駆動するように構成され得、スヌープフィルタデバイス内の初期スヌープフィルタインスタンスを最終スヌープフィルタインスタンスにグループ化するように構成され得る。スヌープフィルタデバイスは、ここで、ノードコントローラを介してC個のキャッシュ要素に接続され得る。
【0058】
図12は、C個のキャッシュ要素と、C個のキャッシュ要素に接続されたスヌープフィルタデバイスとを含むマルチコンポーネントコンピュータシステムを例示する。図13は、C個のキャッシュ要素と、スヌープフィルタデバイスを含むノードコントローラとを含むマルチコンポーネントコンピュータシステムを例示しており、ノードコントローラはC個のキャッシュ要素に接続されている。
【0059】
図14は、本発明の第1の態様によるスヌープフィルタデバイスを編成する工程を含むコンピュータ実装方法を例示し、スヌープフィルタデバイスがC個のキャッシュ要素に接続されている場合に、積Sf・mf・nfが積Si・mi・niに等しく、SfがC/Pに等しい。コンピュータ実装方法は、当業者に理解されるように、適切な手段によって実施され得る。適切な手段は、ここでは、CPU、CPUのグループ、ノードコントローラ、または他の適切な手段であり得る。コンピュータ実装方法は、図10および11に概略的に示すように、たとえばノードコントローラにインストールされた、コンピュータ可読記憶媒体上の一連の実行可能命令として格納され得る。この命令は、コンピュータシステム、またはコンピュータシステムのコンポーネント、たとえば、CPU、CPUのグループ、またはノードコントローラによって実行され得る。この命令の実行によって、コンピュータシステムは上記コンピュータ実装方法を実行することができる。
【要約】
本発明は、マルチプロセッサシステムにおけるスケーラブルな数のキャッシュ要素の追跡の改善を可能にすることを目的とした、スヌープフィルタデバイス、ノードコントローラ、マルチコンポーネントコンピュータシステム、コンピュータ実装方法、データ処理システム、およびコンピュータ可読記憶媒体に関する。本発明は、追跡することが望ましいキャッシュ要素の数に応じたスヌープフィルタデバイスのスケーリングを含む。
図1a
図1b
図2a
図2b
図2c
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14