【手続補正書】
【提出日】平成22年2月8日(2010.2.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
キャッシュ・ライン置換のための方法であって、
下位レベル・キャッシュに存在しない上位レベル・キャッシュの第１のキャッシュ・ラインを識別するステップと、
前記下位レベル・キャッシュに存在する前記上位レベル・キャッシュの第２のキャッシュ・ラインの代わりに、前記上位レベル・キャッシュから前記第１のキャッシュ・ラインをエビクトするステップと、
を含み、
前記下位レベル・キャッシュに存在しない前記上位レベル・キャッシュの前記第１のキャッシュ・ラインを識別する前記ステップは、
前記上位レベル・キャッシュのキャッシュ・ラインのアドレスを用いて前記下位レベル・キャッシュのスヌープ読み出しを行うステップと、
前記下位レベル・キャッシュの前記スヌープ読み出しが、前記下位レベル・キャッシュにおけるミスという結果になった場合には、前記キャッシュ・ラインをエビクション候補として識別するステップと、
前記下位レベル・キャッシュの前記スヌープ読み出しが、前記下位レベル・キャッシュにおけるミスという結果にならなかった場合には、前記キャッシュ・ラインをエビクション候補として識別しないステップと、
を含むことを特徴とする方法。
【請求項２】
前記下位レベル・キャッシュのスヌープ読み出しを行う前記ステップは、
上位レベル・キャッシュ・ディレクトリがアイドル状態である第１の時間を決定するステップと、
前記上位レベル・キャッシュ・ディレクトリがアイドル状態であるときに、前記上位レベル・キャッシュ・ディレクトリからの１つ又は複数のキャッシュ・エントリを読み出すステップと、
前記上位レベル・キャッシュ・ディレクトリからの前記１つ又は複数のキャッシュ・エントリのタグ・フィールドを用いて、前記上位レベル・キャッシュの前記キャッシュ・ラインの前記アドレスを生成するステップと、
をさらに含む、請求項１に記載の方法。
【請求項３】
前記下位レベル・キャッシュのスヌープ読み出しを行う前記ステップは、
下位レベル・キャッシュ・ディレクトリがアイドル状態である第２の時間を決定するステップと、
前記第２の時間中に、前記上位レベル・キャッシュの前記キャッシュ・ラインの前記アドレスを用いて前記下位レベル・キャッシュ・ディレクトリにアクセスするステップと、
前記第２の時間中に、前記上位レベル・キャッシュの前記キャッシュ・ラインの前記アドレスを用いて前記下位レベル・キャッシュ・ディレクトリにアクセスする前記ステップが、前記下位レベル・キャッシュ・ディレクトリにおけるミスという結果になった場合には、前記下位レベル・キャッシュにおける前記ミスを返すステップと、
前記第２の時間中に、前記上位レベル・キャッシュの前記キャッシュ・ラインの前記アドレスを用いて前記下位レベル・キャッシュ・ディレクトリにアクセスする前記ステップが、前記下位レベル・キャッシュ・ディレクトリにおけるヒットという結果になった場合には、前記下位レベル・キャッシュにおける前記ヒットを返すステップと、
をさらに含む、請求項２に記載の方法。
【請求項４】
ａ）前記上位レベル・キャッシュの第２のエントリについて請求項４に記載のステップを繰り返すステップ、
ｂ）前記上位レベル・キャッシュ・ディレクトリからの前記１つ又は複数のキャッシュ・エントリの状態情報を読み出し、前記上位レベル・キャッシュ・ディレクトリからの前記１つ又は複数のキャッシュ・エントリの特定のキャッシュ・エントリについての前記状態情報が、対応するキャッシュ・ラインが無効であることを示す場合には、前記特定のエントリについて請求項４に記載の前記ステップを行わないステップ、又は
ｃ）前記上位レベル・キャッシュ・ディレクトリからの前記１つ又は複数のキャッシュ・エントリの状態情報を読み出し、前記上位レベル・キャッシュ・ディレクトリからの前記１つ又は複数のキャッシュ・エントリの特定のキャッシュ・エントリについての前記状態情報が、対応するキャッシュ・ラインが変更されたことを示す場合には、前記特定のエントリについて請求項４に記載の前記ステップを行わないステップ、
をさらに含む、請求項３に記載の方法。
【請求項５】
ａ）前記上位レベル・キャッシュによるデータについての要求を受け取り、
前記データを含む特定のキャッシュ・ラインが前記上位レベル・キャッシュに存在するかどうかをチェックし、
前記特定のキャッシュ・ラインが前記上位レベル・キャッシュに存在する場合に、前記特定のキャッシュ・ラインが前記下位レベル・キャッシュに存在しないものとして識別された場合には、前記下位レベル・キャッシュに存在しないものとした前記キャッシュ・ラインの識別を解除することを実行するステップ、又は、
ｂ）前記上位レベル・キャッシュが、各々が同じレベルにある複数の下位レベル・キャッシュに結合されている場合には、前記下位レベル・キャッシュに存在しない前記上位レベル・キャッシュの前記第１のキャッシュ・ラインを識別する前記ステップが、前記第１のキャッシュ・ラインが前記複数の下位レベル・キャッシュのいずれにも存在しないことを保証することをさらに含むステップ、
をさらに含む、請求項１から請求項４のいずれか１項に記載の方法。
【請求項６】
前記上位レベル・キャッシュがＬ３キャッシュであり、前記下位レベル・キャッシュがＬ２キャッシュであるか、又は、前記上位レベル・キャッシュがＬ２キャッシュであり、前記下位レベル・キャッシュがＬ１キャッシュである、請求項１から請求項５のいずれか１項に記載の方法。
【請求項７】
上位レベル・キャッシュと、
巡回スヌープ・シーケンサと、
を含むメモリ・コントローラを備えたコンピュータ・システムであって、
前記メモリ・コントローラに結合された下位レベル・キャッシュと、
前記メモリ・コントローラ内に、前記下位レベル・キャッシュに存在する第２のキャッシュ・ラインの代わりに、前記下位レベル・キャッシュに存在しないものとして識別された第１のキャッシュ・ラインをエビクトするように構成された論理と
をさらに備え、
前記メモリ・コントローラは、前記巡回スヌープ・シーケンサに結合され、前記上位レベル・キャッシュのキャッシュ・ラインごとのエントリを保持する、上位レベル・キャッシュ・ディレクトリをさらに備え、
前記エントリの各々は、前記上位レベル・キャッシュのキャッシュ・ラインごとの状態フィールド及びタグ・フィールドを含み、
前記上位レベル・キャッシュのキャッシュ・ラインごとの前記エントリは、前記上位レベル・キャッシュの特定のキャッシュ・ラインが前記下位レベル・キャッシュに存在しないかどうかに関する情報を保持するフィールドをさらに含み、
前記巡回スヌープ・シーケンサは、前記下位レベル・キャッシュに存在しない前記上位レベル・キャッシュのキャッシュ・ラインを識別することができるように構成され、
前記巡回スヌープ・シーケンサは、
前記上位レベル・キャッシュ・ディレクトリを読み出し、
前記上位レベル・キャッシュ内のエントリを読み出し、
前記上位レベル・キャッシュ内のキャッシュ・ラインのアドレスを生成し、
下位レベル・キャッシュ・ディレクトリのスヌープ読み出しを行い、
前記スヌープ読み出しが、前記下位レベル・キャッシュ・ディレクトリにおけるキャッシュ・ミスという結果になった場合には、前記上位レベル・キャッシュの特定のキャッシュ・ラインが前記下位レベル・キャッシュに存在しないかどうかに関する情報を保持する前記エントリについての前記フィールドに、前記エントリに対応するキャッシュ・ラインをエビクション候補として識別するように書き込み、
前記スヌープ読み出しが、前記下位レベル・キャッシュ・ディレクトリにおけるキャッシュ・ヒットという結果になった場合には、前記上位レベル・キャッシュの特定のキャッシュ・ラインが前記下位レベル・キャッシュに存在しないかどうかに関する情報を保持する前記エントリについての前記フィールドに、前記エントリに対応するキャッシュ・ラインをエビクション候補として識別するようには書き込まない、
ように構成された、
コンピュータ・システム。
【請求項８】
前記メモリ・コントローラに結合され、前記下位レベル・キャッシュのキャッシュ・ラインごとのエントリを有する、下位レベル・キャッシュ・ディレクトリをさらに備える、請求項７に記載のコンピュータ・システム。
【請求項９】
前記メモリ・コントローラに結合された第２の下位レベル・キャッシュをさらに備え、  前記巡回スヌープ・シーケンサは、前記第２の下位レベル・キャッシュに存在しない前記上位レベル・キャッシュのキャッシュ・ラインを識別することができるように構成され、
必要に応じて、前記メモリ・コントローラ内に、前記下位レベル・キャッシュ又は前記第２の下位レベル・キャッシュのいずれかに存在する第２のキャッシュ・ラインの代わりに、前記下位レベル・キャッシュにも前記第２の下位レベル・キャッシュにも存在しないものとして識別された第１のキャッシュ・ラインをエビクトするように構成された論理をさらに含む、請求項７又は請求項８に記載のコンピュータ・システム。