【手続補正書】
【提出日】平成20年12月9日(2008.12.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のプロセッサ・ユニットを有するコンピューティング環境の一つのプロセッサ・ユニットに関連するスヌープ・フィルタであって、各プロセッサ・ユニットは、そのユニットに関連する一つ以上のキャッシュ・メモリを有し、前記スヌープ・フィルタは、
関連するプロセッサのキャッシュ・メモリ・レベルにロードされたデータのキャッシュ・ライン・アドレスを追跡するようになされた第一格納手段と、
一つ以上のメモリ書き込み元からのスヌープ要求を受信する手段と、
受信したスヌープ要求のアドレスを、前記メモリ格納手段に格納されたアドレス群と対比するためのスヌープ・チェック・ロジック手段と、
前記メモリ格納手段の中のアドレスとの一致を受けて、前記受信したスヌープ要求を前記プロセッサに転送し、一致しない場合は前記スヌープ要求を廃棄するための手段と
を含む、スヌープ・フィルタ。
【請求項２】
前記スヌープ要求のメモリ書き込み元は前記複数のプロセッサ・ユニットの一つを含む、請求項１に記載のスヌープ・フィルタ。
【請求項３】
前記スヌープ要求のメモリ書き込み元はダイレクト・メモリ・アクセス（ＤＭＡ）エンジン含む、請求項１に記載のスヌープ・フィルタ。
【請求項４】
各前記スヌープ・フィルタは
複数のポート・スヌープ・フィルタと連通し、スヌープ要求のサブセットを受信し、エンキューし、該スヌープ・フィルタ・デバイスに関連する前記プロセッサに転送する複数のプロセッサ・スヌープ・フィルタ・キュー手段
をさらに含む、請求項１に記載のスヌープ・フィルタ。
【請求項５】
各前記スヌープ・フィルタは
前記スヌープ・フィルタ・キュー手段間をすべて調停し、前記複数のプロセッサ・スヌープ・フィルタ・キュー手段の各々から送られるすべてのスヌープ要求を逐次化し、前記関連するプロセッサ・ユニットに転送する手段
をさらに含む、請求項４に記載のスヌープ・フィルタ。
【請求項６】
前記第一格納手段は、第一の複数ストリーム・レジスタ・セットを含み、各ストリーム・レジスタ・セットは、ベース・レジスタおよび対応するマスク・レジスタを含み、前記ベース・レジスタは、前記ストリーム・レジスタによって表される前記キャッシュ・ラインすべてに共通するアドレス・ビット追跡し、前記対応するマスク・レジスタは、これに対応するベース・レジスタに含まれる前に記録されたアドレスとの違いを表すビットを追跡する、請求項１に記載のスヌープ・フィルタ。
【請求項７】
実施された各キャッシュ・ロードに対し、前記第一格納手段のキャッシュ・ライン・アドレスで更新するための手段をさらに含み、前記更新手段は、レジスタ選定基準に基づきどのストリーム・ベース・レジスタ及びマスク・レジスタのセットを更新するかを判定するための手段を含む、請求項６に記載のスヌープ・フィルタ。
【請求項８】
前記レジスタ選定基準は、前記ストリーム・レジスタ・セットと前記キャッシュ・ライン・ロード・アドレスとの間の最小ハミング距離を含む、請求項７に記載のスヌープ・フィルタ。
【請求項９】
前記レジスタ選定基準は、前記ベース・レジスタの最上位部のビット群と前記キャッシュ・ライン・ロード・アドレスの同ビットとの最も近い一致を含む、請求項７に記載のスヌープ・フィルタ。
【請求項１０】
前記判定手段は、ライン・ロード・アドレスと、すべてのベース・レジスタの内容とを、その関連マスク・レジスタにより対比し、前記選定基準に従い最も近い一致を選定するための手段を含む、請求項７に記載のスヌープ・フィルタ。
【請求項１１】
前記複数のメモリ格納手段のキャッシュ・ライン・アドレスで更新するための前記手段は、対セットの対応するマスク・レジスタの関連ビットを更新するための手段を含む、請求項１０に記載のスヌープ・フィルタ。
【請求項１２】
前記複数のメモリ格納手段のキャッシュ・ライン・アドレスを更新するための前記手段は、対セットの対応するベース・レジスタの内容を置換えるための手段を含む、請求項１０に記載のスヌープ・フィルタ。
【請求項１３】
前記受信したスヌープ要求の前記アドレスを、前記第一格納手段に格納されたアドレスと対比するための前記スヌープ・チェック・ロジック手段は、
キャッシュ・ライン内のオフセットに対応する低位のビットを除去することによって、受信したスヌープ・アドレスをスヌープ・ライン・アドレスに変換するための手段と、
ベース・レジスタの内容を、対応するマスク・レジスタの内容と組み合わせた前記スヌープ・ライン・アドレスと対比し、当該特定のキャッシュ・ライン・アドレスにおける前記キャッシュ・メモリ・レベル中にデータが所在する可能性を示す結果信号を得るロジックを実行するための第一手段と
を含む、請求項６に記載のスヌープ・フィルタ。
【請求項１４】
ロジックを実行する前記第一手段は、前記スヌープ・ライン・アドレスを、並行して全ストリーム・レジスタの内容と対比する、請求項１３に記載のスヌープ・フィルタ。
【請求項１５】
前記スヌープ・フィルタ中の、スヌープ要求を受信するための前記手段は、前記コンピューティング環境の専用メモリ書き込み元からのスヌープ要求を受信する複数の専用入力ポートを含む、請求項６に記載のスヌープ・フィルタ。
【請求項１６】
前記スヌープ・フィルタは、前記複数の専用入力ポートと連通し並列に動作する複数のポート・スヌープ・フィルタをさらに含み、前記複数のポート・スヌープ・フィルタの各々がスヌープ・チェック・ロジック手段を実行して、それぞれの前記専用書き込み元から受信したスヌープ要求をフィルタリングし、同時にそれら要求のサブセットをその関連するプロセッサ・ユニットに転送する、請求項１５に記載のスヌープ・フィルタ。
【請求項１７】
前記スヌープ・フィルタは、
前記複数の専用入力ポートと連通し並列に動作する複数のキュー・デバイスであって、前記複数のキュー・デバイスの各々はそれぞれの専用メモリ書き込み元から受信した受信スヌープ要求をエンキューする、キュー・デバイスと、
前記エンキューされたスヌープ要求を前記スヌープ・チェック・ロジック手段に転送する調停多重化手段と
をさらに含む請求項１５に記載のスヌープ・フィルタ。
【請求項１８】
前記キャッシュ・メモリ・レベル中のあらゆるキャッシュ・ラップが、前のキャッシュ・ラップ検知状態から置換えられたがどうかを追跡するためのキャッシュ・ラップ検出手段をさらに含む、請求項７に記載のスヌープ・フィルタ。
【請求項１９】
前記更新手段によってキャッシュ・メモリ中にロードされたデータのキャッシュ・ライン・アドレスを追跡するための、前記第一の複数ストリーム・レジスタ・セットと対称になる第二の複数ストリーム・レジスタ・セットを有する第二格納手段をさらに含み、前記スヌープ・チェック・ロジック手段は、前記受信スヌープ要求の前記アドレスを前記第二の複数ストリーム・レジスタ・セット中に格納されたアドレス群と対比する手段を含む、請求項１８に記載のスヌープ・フィルタ。
【請求項２０】
前記第一の複数ストリーム・レジスタ・セットにより追跡されるキャッシュ・メモリ・ラインに対しキャッシュ・ラップ検知状態が検出されると、前記第二の複数ストリーム・レジスタ・セットの前記更新が行われる前に、前記第二の複数ストリーム・レジスタ・セットをリセットするための手段をさらに含む、請求項１９に記載のスヌープ・フィルタ。
【請求項２１】
前記第二の複数ストリーム・レジスタ・セットにより追跡されるキャッシュ・メモリ・ラインに対しキャッシュ・ラップ検知状態が検出されると、前記第一の複数ストリーム・レジスタ・セットをリセットするための手段をさらに含み、前記第一の複数ストリーム・レジスタ・セットの更新が再実施される、請求項２０に記載のスヌープ・フィルタ。
【請求項２２】
前記第の複数ストリーム・レジスタ・セットに対応する第二の複数ストリーム・レジスタ・セットを有する第二格納手段と、
全キャッシュ・ラインが置換えられたことを示すキャッシュ・ラップ状態の検出を受けて、前記第二の複数ストリーム・レジスタ・セットを前記第一の複数ストリーム・レジスタ・セットの内容に置換えるための手段であって、前記スヌープ・チェック・ロジック手段は、前記受信したスヌープ要求の前記アドレスを、前記第二の複数ストリーム・レジスタ・セットとさらに対比する、置換え手段と
をさらに含む、請求項１８に記載のスヌープ・フィルタ。
【請求項２３】
前記第二の複数ストリーム・レジスタ・セットが前記第一の複数ストリーム・レジスタ・セットの前記内容に置換えられた後、前記第一の複数ストリーム・レジスタ・セットをリセットするために手段をさらに含む、請求項２２に記載のスヌープ・フィルタ。
【請求項２４】
前記第一格納手段は、関連するプロセッサのキャッシュ・メモリ・レベル中にロードされたデータのキャッシュ・ライン・アドレスを追跡するようになっており、前記キャッシュの対応する一つ以上の区分化サブセットに関する内容を有する一つ以上の第一の複数ストリーム・レジスタ・セットを含み、前記キャッシュ・ラップ検知手段は、前記キャッシュの前記一つ以上の区分化サブセットそれぞれのあらゆるキャッシュ・ラインが、前の各キャッシュ・ラップ検知状態から置換えられているかどうかを追跡する、請求項２１又は２３に記載のスヌープ・フィルタ。
【請求項２５】
各々が前記第二の複数ストリーム・レジスタ・セットとして動作する、一つ以上の第二メモリ格納手段と、
キャッシュ・ラップ状態の検知に先だって、前記第一の複数ストリーム・レジスタ・セットの内容を前記一つ以上の第二の複数ストリーム・レジスタ・セットの各々にコピーするための手段であって、前記第一の複数ストリーム・レジスタ・セットの内容は、より高い頻度で更新されリセットされる、コピー手段と
をさらに含む、請求項２３に記載のスヌープ・フィルタ。
【請求項２６】
複数のプロセッサ・ユニットを有するコンピューティング環境でキャッシュ・コヒーレンシをサポートするためのスヌープ・フィルタリング方法であって、各プロセッサ・ユニットは、それに関連する一つ以上のキャッシュ・メモリ及び関連するスヌープ・フィルタを有し、前記方法は、
プロセッサ・ユニット中の各スヌープ・フィルタに対し、
関連するプロセッサのキャッシュ・メモリ・レベル中にロードされたデータのキャッシュ・ラインのアドレスを追跡し、キャッシュ・ライン・アドレスを第一格納手段中に格納するステップと、
複数のメモリ書き込み元からスヌープ要求を受信するステップと、
受信したスヌープ要求のアドレスを前記メモリ格納手段の中に格納されたアドレス群と対比するステップと、
前記メモリ格納手段中のアドレスとの一致を受けて、前記受信したスヌープ要求を前記プロセッサに送るか、又は一致しない場合、前記スヌープ要求を廃棄するステップと
を含み、
これにより、プロセッサ・ユニットに転送されるスヌープ要求の数を大幅に削減し、これによって前記コンピューティング環境のパフォーマンスを上げる、
方法。
【請求項２７】
複数のプロセッサ・ユニットを有するコンピューティング環境においてキャッシュ・コヒーレンシをサポートするための、請求項２６によるスヌープ・フィルタリング方法のステップを実行する、コンピュータ可読媒体に格納されたコンピュータ・プログラム。