(57)【要約】マルチプロセッサ共用メモリ・システム内の要求の処理を促進する装置と方法が提供される。マルチプロセッサ共用メモリ・システムでは、要求は以下の２つの規則が遵守されれば任意の順序で処理できる。第１に、プロセッサにアクセス権を授与する要求はプロセッサからのアクセス権を取り消すより古い要求より先に処理できない。第２に、同じキャッシュ・ラインを参照するすべての要求は到着順に処理される。このようにして、要求を順不同に処理してキャッシュ間転送を加速することができる。特に、プロセッサがデータを提供することが必要な外部要求はデータ待ち状態の他のより古いローカル要求より先にそのプロセッサによって処理できる。さらに、古いローカル要求より先に新しいローカル要求を処理することもできる。その結果、本明細書に記載の装置と方法は有利なことにキャッシュ整合性プロトコルに関連する待ち時間を低減することでマルチプレクサ共用メモリ・システム内のパフォーマンスを向上させることができる。
2004507800.tif 000002
【特許請求の範囲】
【請求項１】
アドレス・バスとデータ・バスとに結合されたシステム・メモリと、
前記アドレス・バスと前記データ・バスとに結合された第１のプロセッサと、
前記第１のプロセッサに結合された第１のキャッシュと、
前記アドレス・バスと前記データ・バスとに結合された第２のプロセッサと、
前記第２のプロセッサに結合された第２のキャッシュとを含む装置であって、
前記第１のプロセッサが前記アドレス・バス上で第１のアドレス・パケットを送るように構成され、前記第２のプロセッサが前記第１のアドレス・パケットを受信するように構成され、前記第２のプロセッサが前記第１のアドレス・パケットを受信する前に第２のアドレス・パケットを受信するように構成され、前記第２のプロセッサが、前記第２のアドレス・パケットとは異なるキャッシュ・ラインを参照する前記第１のアドレス・パケットに応答し、また前記第２のプロセッサの第１のアクセス権を取り消すように構成されていない前記第２のアドレス・パケットに応答して前記第２のアドレス・パケットより先に前記第１のアドレス・パケットを処理するように構成された装置。
【請求項２】
前記データがポイント・ツー・ポイント交換ネットワークを含む請求項１に記載の装置。
【請求項３】
前記第２のプロセッサが、前記異なるキャッシュ・ラインを参照する前記第１のアドレス・パケットに応答し、第２のアクセス権を前記第２のプロセッサに授与するように構成されている前記第２のアドレス・パケットに応答し、また第３のアクセス権を前記プロセッサに授与するように構成されている前記第１のアドレス・パケットに応答して、前記第２のアドレス・パケットより先に前記第１のアドレス・パケットを処理するように構成された請求項１に記載の装置。
【請求項４】
前記第２のプロセッサが前記第１のアドレス・パケットの処理に応答して前記データ・バス上でデータを送るように構成された請求項１に記載の装置。
【請求項５】
前記第２のプロセッサが前記第２のアドレス・パケットと同じキャッシュ・ラインを参照する前記第１のアドレス・パケットに応答して前記第２のアドレス・パケットの後で前記第１のアドレス・パケットを処理するように構成された請求項１に記載の装置。
【請求項６】
前記第１のプロセッサと前記第２のプロセッサがＭＯＳＩキャッシュ整合性プロトコルを使用する請求項１に記載の装置。
【請求項７】
前記第２のアドレス・パケットが前記第２のプロセッサによって生成される請求項１に記載の装置。
【請求項８】
第１の待ち行列と、
第２の待ち行列と、
前記第１の待ち行列と前記第２の待ち行列とに結合された制御回路とを含むプロセッサであって、
前記制御回路が第１のアドレス・パケットを受信するように構成され、前記制御回路が前記プロセッサにアクセス権を授与するように構成された前記第１のアドレス・パケットに応答して前記第１の待ち行列内に前記第１のアドレス・パケットを記憶するように構成され、前記制御回路が前記第１の待ち行列内に記憶された第２のアドレス・パケットと同じキャッシュ・ラインを参照する前記第１のアドレス・パケットに応答して前記第１の待ち行列内に前記第１のアドレス・パケットを記憶するように構成され、前記制御回路が、前記プロセッサに前記アクセス権を授与するように構成されていない前記第１のアドレス・パケットに応答し、また前記第２のアドレス・パケットと同じキャッシュ・ラインを参照しない前記第１のアドレス・パケットに応答して、前記第２の待ち行列内に前記第１のアドレス・パケットを記憶するように構成されたプロセッサ。
【請求項９】
前記第１の待ち行列と前記第２の待ち行列とに結合された処理回路であって、前記第２の待ち行列内に記憶された前記第１のアドレス・パケットに応答して前記第２のアドレス・パケットの処理に先立って前記第１のアドレス・パケットを処理するように構成された処理回路をさらに含む請求項８に記載のプロセッサ。
【請求項１０】
前記処理回路が前記第１の待ち行列内に記憶された前記第１のアドレス・パケットに応答し、また前記第２のアドレス・パケットと同じキャッシュ・ラインを参照しない前記第１のアドレス・パケットに応答して、前記第２のアドレス・パケットの処理に先立って前記第１のアドレス・パケットを処理するように構成された請求項９に記載のプロセッサ。
【請求項１１】
前記第２の待ち行列が第３のアドレス・パケットを含み、前記処理回路が前記第２の待ち行列内に記憶された前記第１のアドレス・パケットに応答し、また前記第３のアドレス・パケットと同じ前記キャッシュ・ラインを参照しない前記第１のアドレス・パケットに応答して、前記第３のアドレス・パケットの処理に先立って前記第１のアドレス・パケットを処理するように構成された請求項９に記載のプロセッサ。
【請求項１２】
前記処理回路が前記第１の待ち行列内に記憶された前記第１のアドレス・パケットに応答して前記第１のアドレス・パケットの処理に先立って前記第３のアドレス・パケットを処理するように構成された請求項１１に記載のプロセッサ。
【請求項１３】
前記プロセッサが前記第１のアドレス・パケットに応答してデータを別のプロセッサに送る請求項９に記載のプロセッサ。
【請求項１４】
プロセッサ内の第１のアドレス・パケットを受信するステップと、
前記第１のアドレス・パケットの前記受信に先立ってプロセッサ内の第２のアドレス・パケットを受信するステップと、
前記第２のアドレス・パケットが前記プロセッサの第１のアクセス権を取り消すように構成されているか否かを決定するステップと、
前記第１のアドレス・パケットが前記第２のアドレス・パケットと同じキャッシュ・ラインを参照するか否かを決定するステップと、
前記プロセッサの前記第１のアクセス権を取り消すように構成されていない前記第２のアドレス・パケットに応答し、また前記第２のアドレス・パケットと同じ前記キャッシュ・ラインを参照しない前記第１のアドレス・パケットに応答して前記第２のアドレス・パケットに先立って前記第１のアドレス・パケットを処理するステップとを含む方法。
【請求項１５】
前記プロセッサに第２のアクセス権を授与するように構成された前記第１のアドレス・パケットに応答し、前記第２のアドレス・パケットと同じ前記キャッシュ・ラインを参照しない前記第１のアドレス・パケットに応答し、また前記プロセッサに第３のアクセス権を授与するように構成された前記第２のアドレス・パケットに応答して、前記第２のアドレス・パケットに先立って前記第１のアドレス・パケットを処理するステップをさらに含む請求項１４に記載の方法。
【請求項１６】
前記第２のアドレス・パケットと同じ前記キャッシュ・ラインを参照する前記第１のアドレス・パケットに応答して前記第２のアドレス・パケットの後で前記第１のアドレス・パケットを処理するステップをさらに含む請求項１５に記載の方法。
【請求項１７】
前記第１のアドレス・パケットの処理に応答して前記プロセッサからデータを送るステップをさらに含む請求項１４に記載の方法。
【請求項１８】
前記プロセッサに第２のアクセス権を授与するように構成された前記第１のアドレス・パケットに応答して第１の待ち行列内に前記第１のアドレス・パケットを記憶するステップと、
前記第２のアドレス・パケットと同じ前記キャッシュ・ラインを参照する前記第１のアドレス・パケットに応答して前記第１の待ち行列内に前記第１のアドレス・パケットを記憶するステップと、
前記プロセッサに前記第２のアクセス権を授与するように構成されていない前記第１のアドレス・パケットに応答し、また前記第２のアドレス・パケットと同じ前記キャッシュ・ラインを参照しない前記第１のアドレス・パケットに応答して第２の待ち行列内に前記第１のアドレス・パケットを記憶するステップとをさらに含む請求項１４に記載の方法。
【請求項１９】
第１のプロセッサと、
前記第１のプロセッサに結合された第１のキャッシュと、
第２のプロセッサと、
前記第２のプロセッサに結合された第２のキャッシュとを含むコンピュータ・システムであって、
前記第１のプロセッサがローカル要求を受信するように構成され、前記第１のプロセッサが前記ローカル要求の受信後に前記第２のプロセッサから外部要求を受信するように構成され、前記第１のプロセッサが前記ローカル要求に対応するデータの受信に先立って前記外部要求に対応するデータを送るように構成されたコンピュータ・システム。
【請求項２０】
第１のプロセッサと、
前記第１のプロセッサに結合された第１のキャッシュと、
第２のプロセッサと、
前記第２のプロセッサに結合された第２のキャッシュとを含むコンピュータ・システムであって、
前記第１のプロセッサが第２のローカル要求の受信に先立って第１のローカル要求受信するように構成され、前記第１のプロセッサが前記第２のローカル要求に対応するデータの受信に応答して前記第１のローカル要求の処理に先立って前記第２のローカル要求を処理するように構成されたコンピュータ・システム。
【発明の詳細な説明】
【０００１】
本発明は、一般にコンピュータ・システムの分野に関し、より詳細には、多数のプロセッサを備えたコンピュータ・システム内のキャッシュ間転送の加速に関する。
【０００２】
（従来の技術）
データ処理システムは共通のシステム・メモリを共用する多数のプロセッサを含むことが多い。本明細書内で使用するプロセッサという用語はシステム・メモリを使用する活動状態の装置を指すために使用している。プロセッサはマイクロプロセッサ、入出力ブリッジ、グラフィックス装置、周辺装置、またはシステム・メモリへの読み書きを行うその他の装置を含んでいてもよい。データ処理システム内のプロセッサはパフォーマンスを向上させるキャッシュを含むことが多い。マルチプロセッサ・システム内のキャッシュはキャッシュ・ラインごとにキャッシュ・タグを含むであろう。キャッシュ・タグは対応するプロセッサのアクセス権と所有権の責任とを指定できる。
【０００３】
マルチプロセッサ共用メモリ・システム内のキャッシュは、整合し、首尾一貫した方法で保持する必要がある。システム・メモリ内に記憶されたデータが異なるキャッシュ内に記憶されていてもすべてのプロセッサから確実に同一であることを明らかにするため、キャッシュ・プロトコル規則の組を使用することができる。キャッシュの整合性を確保する１つの方法は、標準のスヌープ・プロトコルを使用する方法である。標準のスヌープ・プロトコル内では、各プロセッサは装置のキャッシュ・ライン要求をアドレス・バス上のすべての他のプロセッサにブロードキャストする。次いで、各プロセッサは他のプロセッサからの要求を「スヌープ」し、キャッシュ・タグを更新し、かつ／または他のプロセッサへのキャッシュ・ラインに対応するデータを送ることで適宜応答する。標準のスヌープ・プロトコルでは、要求は同じ順序ですべてのプロセッサに到達し、各プロセッサは要求を到着順に処理する。要求がプロセッサの内部状態に影響する時には、プロセッサは要求を「処理する」と言うことができる。標準のスヌープ・プロトコルでは、要求はローカル要求と外部要求とを含む。ローカル要求はプロセッサ自体によって生成された要求を含み、一方、外部要求は他のプロセッサからの外部要求を含む。要求は通常キャッシュ・ラインをそのアドレスで指定するので、アドレス・パケットとも呼ばれる。アドレス・パケットはアドレス・ブロードキャストとも呼ばれる。要求、アドレス・パケット、およびアドレス・ブロードキャストという用語は本明細書では交換可能に使用される。
【０００４】
要求をその到着順に処理しなければならないという要件は標準のスヌープ・プロトコルのパフォーマンスの不利な点と考えられる。特に、この要件はキャッシュ間のデータ転送を遅延させることがある。またこの要件はデータがローカル要求に対応し、それより早いローカル要求の対応するデータより先に到着した場合にプロセッサによって受信されたこのデータの処理を遅延させることがある。ローカル要求を処理する際、プロセッサはローカル要求に対応するデータが他の要求の処理前に到着するのを待つ。潜在的に、単一のプロセッサがそのデータを受信するのを多数のプロセッサが待っている場合がある。この状況はシステム内の望ましくない待ち時間を発生させることがある。ただし、プロセッサが到着したローカル要求の対応するデータに先立って他の要求を処理することができれば、後続の要求がプロセッサがデータを受信する前にローカル要求のキャッシュ・ラインへのプロセッサのアクセス権を取り消す場合、資源が枯渇する危険がある。システムに資源枯渇の問題を引き起こすことなく標準のキャッシュ整合性プロトコルの待ち時間を低減するシステムが必要である。
【０００５】
（概要）
上記の問題はその大半が本明細書に記載の装置と方法によって解決する。一般に、マルチプロセッサ共用メモリ・システム内の要求の処理を促進する装置と方法が提供される。マルチプロセッサ共用メモリ・システムでは、要求は以下の２つの規則が遵守されれば任意の順序で処理できる。第１に、プロセッサにアクセス権を授与する要求はプロセッサからのアクセス権を取り消すより古い要求より先に処理できない。第２に、同じキャッシュ・ラインを参照するすべての要求は到着順に処理される。このようにして、要求を順不同に処理してキャッシュ間転送を加速することができる。特に、プロセッサがデータを提供することが必要な外部要求はデータ待ち状態の他のより古いローカル要求より先にそのプロセッサによって処理できる。さらに、古いローカル要求より先に新しいローカル要求を処理することもできる。その結果、本明細書に記載の装置と方法は有利なことにキャッシュ整合性プロトコルに関連する待ち時間を低減することでマルチプレクサ共用メモリ・システム内のパフォーマンスを向上させることができる。
【０００６】
一実施態様では、プロセッサは上記の規則を実施する第１の待ち行列と第２の待ち行列とを含むことができる。第１および第２の待ち行列は先入れ先出し（ＦＩＦＯ）方式で運用できる。プロセッサは第１の待ち行列内のプロセッサにアクセス権を授与するアクセス・パケットを第１の待ち行列内に記憶できる。プロセッサは第２の待ち行列内に他のすべてのアドレス・パケットを記憶できる。データを必要とするアドレス・パケットはデータが到着するまで待ち行列の先頭にとどまることができる。プロセッサは任意の順序でいずれかの待ち行列の先頭からアドレス・パケットを処理するように構成できる。このようにして、データを必要とする外部パケットをデータ待ち状態のより古いローカル・パケットより先に処理できる。
【０００７】
本発明のその他の特徴および有利な点は本発明の以下の詳細な説明を読み、添付の図面を参照することで明らかになろう。
【０００８】
本発明をさまざまに改変し代替形態で実施できるが、本発明の特定の実施形態を図に示し、本明細書で詳述する。ただし、図面と詳細な説明は本発明を開示された特定の形態に限定するものではなく、本発明は首記の請求の範囲に記載の本発明の範囲を逸脱しないすべての修正形態、等効形態、および代替形態を包含するものである。
【０００９】
（実施形態の詳細な説明）
図１を参照すると、コンピュータ・システムの一実施形態のブロック図が示されている。これ以外の実施形態も可能であり企図できる。図１に、システム・メモリ１００、プロセッサＡ１１０ａ、プロセッサＢ１１０ｂ、プロセッサＣ１００ｃ、キャッシュＡ１２０ａ、キャッシュＢ１２０ｂ、キャッシュＣ１２０ｃ、アドレス・バス１３０、データ・バス１４０ａ、データ・バス１４０ｂ、データ・バス１４０ｃ、およびデータ・バス・スイッチ１５０が示されている。システム・メモリ１００はアドレス・バス１３０とデータ・バス・スイッチ１５０に結合されている。プロセッサＡはアドレス・バス１３０、データ・バス１４０ａ、およびキャッシュＡ１２０ａに結合されている。プロセッサＢはアドレス・バス１３０、データ・バス１４０ｂ、およびキャッシュＢ１２０ｂに結合されている。プロセッサＣはアドレス・バス１３０、データ・バス１４０ｃ、およびキャッシュＣ１２０ｃに結合されている。
【００１０】
図１で、プロセッサＡ１１０ａ、プロセッサＢ１１０ｂ、およびプロセッサＣ１１０ｃはシステム・メモリ１００にアクセスして、システム・メモリ１００から取り出したデータをそれぞれキャッシュＡ１２０ａ、キャッシュＢ１２０ｂ、キャッシュＣ１２０ｃ内に記憶するように構成されている。上記のように、プロセッサという用語はシステム・メモリを使用する活動状態の装置を指すために使用できる。プロセッサはマイクロプロセッサ、入出力ブリッジ、グラフィックス装置、周辺装置、またはシステム・メモリへの読み書きを行うその他の装置を含むことができる。図１はプロセッサＡ１１０ａ、プロセッサＢ１１０ｂ、およびプロセッサＣ１１０ｃを示しているが、その他のプロセッサをシステムに追加して別の方法でアドレス・バス１３０およびデータ・バス・スイッチ１５０に結合することができる。図１、図２、および図３の説明では、プロセッサＡ１１０ａ、プロセッサＢ１１０ｂ、およびプロセッサＣ１１０ｃを個々に「プロセッサ」または集合的に「プロセッサ」と呼ぶことがある。同様に、キャッシュＡ１２０ａ、キャッシュＢ１２０ｂ、およびキャッシュＣ１２０ｃを個々に「キャッシュ」または集合的に「キャッシュ」と呼ぶことがある。
【００１１】
スヌープ・ベースのキャッシュ整合性プロトコルを使用するように構成された一実施形態では、プロセッサはアドレス・バス１３０上でデータ要求を送るように構成できる。上記のように、要求はアドレス・パケットまたはアドレス・ブロードキャストと呼ぶことができる。各プロセッサはすべての他のプロセッサの要求を受信するように構成できる。図１の実施形態では、アドレス・バス１３０は、アドレス・バス１３０上で送られる各要求が各プロセッサおよびシステム・メモリ１００によって受信できるようにブロードキャスト・ネットワークを含むと言うことができる。プロセッサおよびシステム・メモリ１００はシステムによって使用されるキャッシュ・プロトコルにもとづいて要求に応答するように構成できる。プロセッサはキャッシュ・プロトコルに従ってそのアクセス権を変更し、かつ／またはデータを提供することによって要求に応答できる。キャッシュ・プロトコルが、要求に応答してデータを提供することをプロセッサに要求しない場合、システム・メモリ１００がデータを提供するように構成できる。図１で、プロセッサおよびシステム・メモリ１００はデータをデータ・バス・スイッチ１５０に送ることで提供するように構成できる。データ・バス・スイッチ１５０は、プロセッサまたはシステム・メモリからのデータ受信に応答して、データを適切なプロセッサまたはシステム・メモリ１００に転送するように構成できる。図１の実施形態では、データ・バス・スイッチ１５０とデータ・バス１４０ａ、１４０ｂ、および１４０ｃはポイント・ツー・ポイント交換ネットワークを含むということができる。
【００１２】
図１の実施形態では、要求は、システム・メモリ１００内のデータのアドレスを使用して得られたデータを識別するように構成されている。データ受信に応答して、プロセッサはそのキャッシュ内にデータを記憶するように構成できる。一実施形態では、データはそのアドレスに従ってキャッシュ内のある位置に記憶される。データをアドレスから特定のキャッシュ・ラインにマッピングするようにキャッシュを構成できる。その結果、各プロセッサのキャッシュはデータをそれぞれのキャッシュの同じ場所にマッピングするように構成される。したがって、プロセッサからのデータ要求はキャッシュ・ライン要求とも言え、プロセッサは要求のアドレスに対応するそのキャッシュ内のキャッシュ・ラインに従って要求に応答することができる。
【００１３】
一実施形態では、図１のキャッシュはキャッシュ・ラインごとにキャッシュ・タグを含む。キャッシュ・タグはキャッシュ・ラインへのプロセッサのアクセス権を示すように構成される。キャッシュ・プロトコルは、プロセッサがキャッシュ・ラインへのどのようなアクセス権を有するか、またプロセッサが要求に応答してキャッシュ・ラインを提供しなければならないか否かを定義できる。一実施形態では、アクセス権は共用状態、排他状態、および無効状態を含む。一般に、プロセッサはそのアクセス権が共用状態または排他状態の場合、キャッシュ・ラインへのアクセス権を有すると言える。プロセッサのアクセス権が排他状態のとき、他のプロセッサはキャッシュ・ラインに書込みも読み込みもできない。プロセッサのアクセス権が共用状態の場合、別のプロセッサもキャッシュ・ラインを読み出せるように共用アクセス権を有することができる。キャッシュ・ラインへのプロセッサのアクセス権が無効状態の場合、プロセッサはキャッシュ・ラインの読み出しまたは書き込み前にキャッシュ・ラインへのアクセス権を得なければならない。
【００１４】
一実施形態では、ＭＯＳＩキャッシュ・プロトコルを使用できる。ＭＯＳＩキャッシュ・プロトコルでは、キャッシュ・ラインへのプロセッサのアクセス権は変更、所有、共用、または無効状態である。変更状態では、プロセッサはキャッシュ・ラインを読み書きし、別のプロセッサからの要求に応答してキャッシュ・ラインのデータを提供できる。所有状態では、プロセッサはキャッシュ・ラインの読み出しはできるがそれへの書き込みはできない。所有状態では、プロセッサはやはり別のプロセッサからの要求に応答してキャッシュ・ラインのデータを提供できる。共用状態では、キャッシュ・ラインの読み出しはできるがそれへの書き込みはできず、別のプロセッサからの要求に応答してキャッシュ・ラインのデータを提供できない。無効状態では、プロセッサはキャッシュ・ラインの読み書きはできず、アクセスを得るために要求を送らなければならない。どのプロセッサも所有または変更状態のキャッシュ・ラインを持たないと、システム・メモリ１００は要求に応答してキャッシュ・ラインを提供できる。その他のキャッシュ・プロトコルを実施するためにその他の実施形態を構成することができる。
【００１５】
上記のように、標準のスヌープ・プロトコルは一般にプロセッサが要求を到着順に処理することを必要とする。要求がプロセッサの内部状態に影響する時には、プロセッサは要求を「処理する」と言うことができる。ただし、図１のシステムによって使用されるプロトコルでは、要求は以下の２つの規則が遵守されれば任意の順序で処理できる。第１に、プロセッサにアクセス権を授与する要求はプロセッサからのアクセス権を取り消すより古い要求より先にそのプロセッサによって処理できない。第２に、同じキャッシュ・ラインを参照するすべての要求はプロセッサへの到着順に処理される。上記の規則で、アクセス権の授与と取り消しは要求を処理するプロセッサから確認できる。例えば、ある種の要求は１つのプロセッサにアクセス権を授与する一方で他のプロセッサのアクセス権を取り消すことができる。ただし、これらの規則は要求を処理するプロセッサ内部で要求の効果として定義される。
【００１６】
２つの規則は任意のキャッシュ・プロトコルに適用できる。ただし、図を見やすくするために、規則をＭＯＳＩキャッシュ・プロトコルに関して説明する。上記のように、プロセッサはローカルおよび外部要求を受信して処理する。ＭＯＳＩプロトコルでは、キャッシュ・ラインのアクセス権の現在の状態と要求のタイプにもとづいてアクセス権を授与または取り消すことができる。特に、現在の状態が無効であるキャッシュ・ラインへの共用アクセスのローカル要求はアクセス権の授与を構成する。現在の状態が無効、共用、または所有のキャッシュ・ラインへの排他的アクセスのローカル要求もアクセス権の授与を構成する。現在の状態が変更のキャッシュ・ラインへの共用アクセスへの外部要求はアクセス権の取り消しを構成する。現在の状態が変更、共用、または所有のキャッシュ・ラインへの排他的アクセスの外部要求もアクセス権の取り消しを構成する。
【００１７】
授与でも取り消しでもない要求があることに注目すべきである。そのような要求は現在の状態が共用、所有、または無効のキャッシュ・ラインへの共用アクセスの外部要求を含む。その他の要求は授与でも取り消しでもよい。例えば、ローカルＲｅａｄＳｔｒｅａｍパケットは、無効であるキャッシュ・ラインの読み出し専用の複製を要求できる。このようにして、ローカルＲｅａｄＳｔｒｅａｍパケットはキャッシュ・ラインを読み出すアクセス権を授与でき、したがって、キャッシュが読み出されるとそのアクセス権を取り消すことができる。アクセス権を授与も取り消しもしない要求とアクセス権の授与および取り消し要求は上記の規則に従う方法で処理できる。
【００１８】
上記の規則を使用することで要求は順不同に処理でき、他のシステムより優れたパフォーマンスを提供できる。例えば、上記の規則では、アクセス権を取り消す要求はその要求がより古い要求と同じキャッシュ・ラインを参照していない限り、より古い要求より先に処理できる。同様に、アクセス権を授与する要求はその要求が任意のより古い要求と同じキャッシュ・ラインを参照していない限り、アクセス権を授与するより古い要求より先に処理できる。
【００１９】
この規則を使用することの他のシステムより優れた１つの点は、キャッシュ間転送を含む。プロセッサがキャッシュ・ラインへのアクセス権を変更または所有した場合、プロセッサはキャッシュ・ラインに対応するデータを提供して共用または排他的アクセスの外部要求を満足する。プロセッサが外部要求より先に受信されたローカル要求を有する場合、外部要求に対応するデータを送信する前にローカル要求を満足するデータの到着を待つ必要はない。言い換えると、プロセッサはより古い要求を満足するデータの受信前に外部要求を満足するデータを送信できる。上記の規則に関して、ローカル要求がプロセッサに対してアクセス権を授与し、外部要求がプロセッサのアクセス権を取り消すことが分かる。したがって、プロセッサがより古い要求を完了する前にそのキャッシュから別のプロセッサのキャッシュへデータを送る時に、キャッシュ間転送が促進できる。このようにして、この規則の使用はデータのキャッシュ間転送を加速すると言える。
【００２０】
上記の規則の使用の別の利点はローカル要求の並べ替えに関する。この規則では、異なるキャッシュ・ラインを要求が参照する限り、プロセッサにアクセス権を授与するより古い要求より先にアクセス権を授与するローカル要求を処理できる。したがって、１つのローカル要求のデータがより古い要求のデータより先に到着した場合、プロセッサはより古い要求を処理する前に最新の要求を処理できる。このようにして、ローカル要求は促進された方法で処理され、他のシステムより優れたパフォーマンスを提供できる。
【００２１】
上記の２つの例はマルチプロセッサ共用メモリ・システム内での上記規則の使用のパフォーマンスの利点を強調するためのものである。その他のパフォーマンスの利点も可能であり企図することができる。
【００２２】
図２を参照すると、コンピュータ・システムの一実施形態のブロック図が示されている。これ以外の実施形態も可能であり企図できる。図２に、システム・メモリ１００、プロセッサＡ１１０ａ、プロセッサＢ１１０ｂ、プロセッサＣ１１０ｃ、キャッシュＡ１２０ａ、キャッシュＢ１２０ｂ、キャッシュＣ１２０ｃ、アドレス・バス１３０、およびデータ・バス２００が示されている。システム・メモリ１００はアドレス・バス１３０とデータ・バス２００に結合されている。プロセッサＡはアドレス・バス１３０、データ・バス２００、およびキャッシュＡ１２０ａに結合されている。プロセッサＢはアドレス・バス１３０、データ・バス２００、およびキャッシュＢ１２０ｂに結合されている。プロセッサＣはアドレス・バス１３０、データ・バス２００、およびキャッシュＣ１２０ｃに結合されている。
【００２３】
図２で、プロセッサＡ１１０ａ、プロセッサＢ１１０ｂ、およびプロセッサＣ１１０ｃはシステム・メモリ１００にアクセスして、システム・メモリ１００から取り出したデータをそれぞれキャッシュＡ１２０ａ、キャッシュＢ１２０ｂ、キャッシュＣ１２０ｃ内に記憶するように構成できる。図２はプロセッサＡ１１０ａ、プロセッサＢ１１０ｂ、およびプロセッサＣ１１０ｃを示しているが、その他のプロセッサをシステムに追加して別の方法でアドレス・バス１３０およびデータ・バス２００に結合することができる。
【００２４】
図２の実施形態は図１の上記のキャッシュ・プロトコル規則を使用するように構成できる。図２で、プロセッサおよびシステム・メモリ１００はデータ・バス２００上でデータを送ることでデータを提供するように構成できる。データ・バス２００はブロードキャスト・ネットワークを含むと言うことができる。
【００２５】
図３を参照すると、コンピュータ・システムの一実施形態のブロック図が示されている。これ以外の実施形態も可能であり企図できる。図３に、システム・メモリ１００、プロセッサＡ１１０ａ、プロセッサＢ１１０ｂ、プロセッサＣ１１０ｃ、キャッシュＡ１２０ａ、キャッシュＢ１２０ｂ、キャッシュＣ１２０ｃ、およびアドレス／データ・バス３００が示されている。システム・メモリ１００はアドレス／データ・バス３００に結合されている。プロセッサＡはアドレス／データ・バス３００およびキャッシュＡ１２０ａに結合されている。プロセッサＢはアドレス／データ・バス３００およびキャッシュＢ１２０ｂに結合されている。プロセッサＣはアドレス／データ・バス３００およびキャッシュＣ１２０ｃに結合されている。
【００２６】
図３で、プロセッサＡ１１０ａ、プロセッサＢ１１０ｂ、およびプロセッサＣ１１０ｃはシステム・メモリ１００にアクセスして、システム・メモリ１００から取り出したデータをそれぞれキャッシュＡ１２０ａ、キャッシュＢ１２０ｂ、キャッシュＣ１２０ｃ内に記憶するように構成できる。図３はプロセッサＡ１１０ａ、プロセッサＢ１１０ｂ、およびプロセッサＣ１１０ｃを示しているが、その他のプロセッサをシステムに追加して別の方法でアドレス／データ・バス３００に結合することができる。
【００２７】
図３の実施形態は図１の上記のキャッシュ・プロトコル規則を使用するように構成できる。図３で、プロセッサおよびシステム・メモリ１００はアドレス／データ・バス３００上でデータを送ることでデータを提供するように構成できる。アドレス／データ・バス３００は、両方の要求、すなわちアドレス・パケットおよびデータを送信するように構成できるので、共用ブロードキャスト・ネットワークを含むと言うことができる。
【００２８】
図４を参照すると、コンピュータ・システム内のアドレス・パケットを処理するように構成された装置の一実施形態のブロック図が示されている。これ以外の実施形態も可能であり企図できる。図４に、待ち行列４１０、待ち行列４２０、制御回路４３０、処理回路４４０、およびキャッシュ・タグ４５０が示されている。制御回路４３０は待ち行列４１０、待ち行列４２０、およびキャッシュ・タグ４５０に結合されている。処理回路４４０は待ち行列４１０および待ち行列４２０に結合されている。
【００２９】
図４に図１の上記のキャッシュ・プロトコル規則を使用するように構成されたプロセッサ内の装置の一実施形態を示す。図４で、アドレス・パケットすなわち要求は制御回路４３０によって受信できる。制御回路４３０はアドレス・パケットがプロセッサに対してアクセス権を授与するか取り消すかを決定するように構成できる。また制御回路４３０は、アドレス・パケットがプロセッサ内のより古いアドレス・パケットと同じキャッシュ・ラインを参照するか否かを決定するように構成できる。次いで制御回路４３０は、アドレス・パケットを待ち行列４１０または４２０内に記憶するように構成できる。アドレス・パケットは待ち行列４１０または４２０からポッピングでき、上記のプロトコル規則に準拠する制御回路４４０によって処理できる。
【００３０】
一実施形態では、制御回路４３０はアドレス・パケットを受信して、このパケットがプロセッサにアクセス権を授与するか否かを決定するように構成できる。制御回路４３０はプロセッサの現在のアクセス権をキャッシュ・タグ４５０から受信するように構成できる。一実施形態では、キャッシュ・タグ４５０は図１、図２、または図３に示すキャッシュの１つのようなキャッシュから提供できる、別の実施形態では、キャッシュ・タグ４５０はプロセッサ内に位置することができる。制御回路４３０はキャッシュ・タグ４５０から受信した現在のアクセス権をアドレス・パケット内に具体化された要求のタイプと比較してアドレス・パケットがプロセッサにアクセス権を授与するか否かを決定するように構成できる。アクセス権の授与と取り消しの両方を行うアドレス・パケット、例えば、ローカルＲｅａｄＳｔｒｅａｍアドレス・パケットは、プロセッサにアクセス権を授与する。制御回路４３０がアドレス・パケットがプロセッサにアクセス権を授与するよう決定した場合、制御回路４３０はアドレス・パケットを待ち行列４２０に送るように構成できる。待ち行列４２０はアドレス・パケットを記憶するように構成できる。
【００３１】
制御回路４３０はまた、アドレス・パケットが待ち行列４２０内に記憶されたアドレス・パケットと同じキャッシュ・ラインを参照するか否かを決定するように構成できる。制御回路４３０は、アドレス・パケットによって参照されるキャッシュ・ラインを待ち行列４２０内のアドレス・パケットによって参照されるキャッシュ・ラインと比較するように構成できる。制御回路４３０が待ち行列４２０内に記憶されたアドレス・パケットと同じキャッシュ・ラインを参照するよう決定した場合、制御回路４３０はアドレス・パケットを待ち行列４２０に送るように構成でき、待ち行列４２０はアドレス・パケットを記憶するように構成できる。
【００３２】
制御回路４３０がアドレス・パケットがプロセッサにアクセス権を授与せず、アドレス・パケットが待ち行列４２０内に記憶されたアドレス・パケットと同じキャッシュ・ラインを参照しないよう決定した場合、制御回路４３０はアドレス・パケットを待ち行列４１０に送るように構成でき、待ち行列４１０はアドレス・パケットを記憶するように構成できる。プロセッサにアクセス権を授与しないアドレス・パケットはアクセス権を取り消すことができるか、またはアクセス権を授与することも取り消すこともできない。
【００３３】
処理回路４４０は待ち行列４１０および４２０からアドレス・パケットを受信するように構成できる。一実施形態では、待ち行列４１０および４２０は厳密な先入れ先出し（ＦＩＦＯ）待ち行列である。この実施形態では、処理回路４４０は待ち行列４１０および４２０の先頭からアドレス・パケットを受信して処理するように構成できる。処理回路４４０は図１に示すプロトコル規則に準拠した順序で待ち行列４１０および４２０の先頭からアドレス・パケットを受信できることが分かる。一実施形態では、処理回路４４０は待ち行列４２０の先頭からアドレス・パケットを受信しようとする前に待ち行列４１０の先頭からアドレス・パケットを受信しようとするように構成できる。待ち行列４１０が空き状態か、処理回路４４０が待ち行列４２０の先頭のアドレス・パケットが待ち行列４１０の先頭のアドレス・パケットより古いと判定した場合、処理回路４４０は待ち行列４２０の先頭のアドレス・パケットを受信するように構成できる。別の実施形態では、処理回路４４０はプロトコル規則に準拠した他の方法でアドレス・パケットを待ち行列４１０と待ち行列４２０のどちらから受信するか決定するように構成できる。
【００３４】
前述したように、待ち行列４２０はアクセス権を授与するアドレス・パケットと待ち行列４２０内に記憶されたより早いアドレス・パケットと同じキャッシュ・ラインを参照するアドレス・パケットとを含む。待ち行列４１０はアクセス権を授与しないアドレス・パケットと、待ち行列４２０内に記憶されたより早いアドレス・パケットと、同じキャッシュ・ラインを参照しないアドレス・パケットとを含む。この実施形態では待ち行列４１０と待ち行列４２０はＦＩＦＯ待ち行列なので、アクセス権を授与しないが待ち行列４２０内のより早いアドレス・パケットと同じキャッシュ・ラインを参照するアドレス・パケットはより早いアドレス・パケットの後で処理される。したがって、アドレス・パケットはプロトコル規則に準拠した待ち行列４１０および４２０の先頭からポッピングして処理できる。特に、待ち行列４１０内のアドレス・パケットはプロトコル規則に違反することなく待ち行列４２０内のより古いアドレス・パケットより先に処理できる。このようにして、外部要求は待ち行列４１０内に記憶され、より古いローカル要求は待ち行列４２０内に記憶されるので、プロセッサからのデータを必要とする多数の外部要求はデータ待ち状態のより古いローカル要求より先に処理できる。したがって、図４に示す実施形態は図１に示すキャッシュ間転送を加速することができるので有利である。
【００３５】
別の実施形態では、待ち行列４２０はＦＩＦＯ待ち行列に対応しなくてもよい。この実施形態では、待ち行列４１０内のより早いアドレス・パケットより先に処理されない限り、また同じキャッシュ・ラインを参照する待ち行列４１０または待ち行列４２０内のより早いアドレス・パケットより先に処理されない限り、待ち行列４２０からのアドレス・パケットは任意の順序で処理できる。この実施形態では、処理回路４４０はこれらの条件を強制するように構成できる。その結果、処理回路４４０は待ち行列４２０からのより古いアドレス・パケットを処理する前に待ち行列４２０からのアドレス・パケットを処理するように構成できる。このようにして、データを受信するローカル要求はデータ待ち状態のより古いローカル要求より先に処理できる。前述したように、この実施形態はまた有利なことにキャッシュ間転送を加速できる。
【００３６】
図５を参照すると、アドレス・パケットを処理する方法の流れ図が示されている。この方法の変更も可能であり企図できる。この方法はブロック５００に示すようにプロセッサ内のアドレス・パケットを受信するステップを含む。ブロック５０２で、アドレス・パケットがプロセッサにアクセス権を授与するか否かを決定できる。アドレス・パケットがプロセッサにアクセス権を授与する場合、ブロック５０６に示すようにアドレス・パケットを第１の待ち行列内に記憶することができる。アドレス・パケットがプロセッサにアクセス権を授与しない場合、ブロック５０４に示すように、アドレス・パケットが第１の待ち行列内のアドレス・パケットと同じキャッシュ・ラインを参照するか否かを決定できる。アドレス・パケットが第１の待ち行列内のアドレス・パケットと同じキャッシュ・ラインを参照する場合、ブロック５０６に示すようにアドレス・パケットを第１の待ち行列内に記憶することができる。アドレス・パケットが第１の待ち行列内のアドレス・パケットと同じキャッシュ・ラインを参照しない場合、ブロック５０８に示すようにアドレス・パケットを第２の待ち行列内に記憶することができる。
【００３７】
図６を参照すると、アドレス・パケットを処理できるか否かを決定する方法の流れ図が示されている。この方法の変更も可能であり企図できる。この方法はブロック６００に示すようにプロセッサ内のアドレス・パケットを受信するステップを含む。ブロック６０２で、アドレス・パケットがプロセッサにアクセス権を授与するか否かを決定できる。アドレス・パケットがプロセッサにアクセス権を授与する場合、ブロック６０４に示すようにより古いアドレス・パケットがプロセッサのアクセス権を取り消すか否かを決定できる。図示のように、プロセッサのアクセス権を取り消す、より古いアドレス・パケットがなくなるまで流れ図の処理はブロック６０４にとどまる。プロセッサのアクセス権を取り消す、より古いアドレス・パケットがなくなった場合、ブロック６０６に示すように、より古いアドレス・パケットがこのアドレス・パケットと同じキャッシュ・ラインを参照するか否かを決定できる。このアドレス・パケットと同じキャッシュ・ラインを参照する、より古いアドレス・パケットがなくなるまで流れ図の処理はブロック６０６にとどまる。このアドレス・パケットと同じキャッシュ・ラインを参照するより古いアドレス・パケットがなくなった場合、ブロック６１０に示すようにアドレス・パケットを処理することができる。
【００３８】
アドレス・パケットがプロセッサにアクセス権を授与しない場合、ブロック６０８に示すように、より古いアドレス・パケットがそのアドレス・パケットと同じキャッシュ・ラインを参照するか否かを決定することができる。そのアドレス・パケットと同じキャッシュ・ラインを参照する、より古いアドレス・パケットがなくなるまで流れ図の処理はブロック６０８にとどまる。そのアドレス・パケットと同じキャッシュ・ラインを参照する、より古いアドレス・パケットがなくなった場合、ブロック６１０に示すように、そのアドレス・パケットを処理することができる。
【００３９】
図６は図１に示すプロトコル規則に準拠したアドレス・パケットを処理する方法を示す。したがって、この方法は、マルチプロセッサ共用メモリ・システム内のキャッシュ間転送を加速し、アドレス・パケットの順不同の処理を促進するために使用できる。
【００４０】
図７を参照すると、多数のノードを備えた共用メモリ・コンピュータ・システムの一実施形態を示すブロック図が示されている。これ以外の実施形態も可能であり企図できる。図７は、メモリ７０２ａ、メモリ７０２ｂ、メモリ７０２ｃ、スケーラブル共用メモリ（ＳＳＭ）７００ａ、ＳＳＭ７００ｂ、ＳＳＭ７００ｃ、プロセッサＡ１　７１０ａ、キャッシュＡ１　７２０ａ、プロセッサＡ２　７１０ｂ、キャッシュＡ２　７２０ｂ、プロセッサＢ１　７３０ａ、キャッシュＢ　７４０ａ、プロセッサＢ２　　７３０ｂ、キャッシュＢ２　７４０ｂ、プロセッサＣ１　７５０ａ、キャッシュＣ１　７６０ａ、プロセッサＣ２　７５０ｂ、キャッシュＣ２　７６０ｂを示す。ＳＳＭ７００ａ、ＳＳＭ７００ｂ、およびＳＳＭ７００ｃはアドレス・バス７０８およびデータ・バス７０６に結合されている。プロセッサＡ１　７１０ａおよびプロセッサＡ２　７１０ｂはアドレス・バス７１８とデータ・バス７１６とを介してＳＳＭ７００ａおよびメモリ７０２ａに結合されている。プロセッサＢ１　７３０ａおよびプロセッサＢ２　７３０ｂはアドレス・バス７３８とデータ・バス７３６とを介してＳＳＭ７００およびメモリ７０２ｂに結合されている。プロセッサＣ１　７５０ａおよびプロセッサＣ２　７５０ｂはアドレス・バス７５８とデータ・バス７５６とを介してＳＳＭ７００ｃおよびメモリ７０２ｃに結合されている。図７に示すように、さまざまなキャッシュがさまざまなプロセッサに結合されている。図７で、メモリ７０２ａ、プロセッサＡ１　７１０ａ、キャッシュＡ１　７２０ａ、プロセッサＡ２　７１０ｂ、キャッシュＡ２　７２０ｂ、およびＳＳＭ７００ａをノードＡの構成要素と呼ぶことができる。メモリ７０２ｂ、プロセッサＢ１　７３０ａ、キャッシュＢ１　７４０ａ、プロセッサＢ２　７３０ｂ、キャッシュＢ２　７４０ｂ、およびＳＳＭ７００ｂをノードＢの構成要素と呼ぶことができる。メモリ７０２ｃ、プロセッサＣ１　７５０ａ、キャッシュＣ１　７６０ａ、プロセッサＣ２　７５０ｂ、キャッシュＣ２　７６０ｂ、およびＳＳＭ７００ｃをノードＣの構成要素と呼ぶことができる。
【００４１】
図７はマルチノード共用メモリ・コンピュータ・システムを示す。図示のように、図７は各々多数のプロセッサを含むノードＡ、ノードＢ、およびノードＣを含む。別の実施形態では任意の数のプロセッサを備えた他のノードを含むことができる。さらに、図示のブロードキャスト・ネットワーク・アドレス・バスおよびデータ・バスの代わりにポイント・ツー・ポイント交換ネットワークまたは共用ブロードキャスト・ネットワークを含むように１つまたは複数のノードを構成することができる。
【００４２】
図７の実施形態では、図１で前述したキャッシュ・プロトコル規則を使用するようにプロセッサを構成できる。その結果、プロトコル規則に準拠した図７のプロセッサ内で任意の順序で要求を処理できる。図７で、ＳＳＭはそれぞれのノード内のプロセッサから要求を受信するように構成できる。ＳＳＭは他のＳＳＭに要求を送って自ノード内の他のプロセッサまたはメモリによって満足できない自ノード内のプロセッサからの要求を満足するように構成できる。またＳＳＭは別のＳＳＭからの要求に対応するデータを返送するために自ノード内のプロセッサとメモリに要求を送るように構成できる。このようにして、図１の上記利点は個々のノードとシステム全体の両方で達成できる。
【００４３】
上記の実施形態について詳述してきたが、これ以外のバージョンも可能である。上記開示を十分に理解すれば、本発明をさまざまに変更および修正できることは当業者には明らかであろう。そのような変更および修正はすべて首記の請求の範囲に含まれる。
【図面の簡単な説明】
【図１】コンピュータ・システムの一実施形態を示すブロック図である。
【図２】コンピュータ・システムの一実施形態を示すブロック図である。
【図３】コンピュータ・システムの一実施形態を示すブロック図である。
【図４】コンピュータ・システム内のアドレス・パケットを処理するように構成された装置の一実施形態を示すブロック図である。
【図５】アドレス・パケットを処理する方法を示す流れ図である。
【図６】アドレス・パケットを処理できるか否かを判定する方法を示す流れ図である。
【図７】多数のノードを備えた共用メモリ・コンピュータ・システムの一実施形態を示すブロック図である。
【図１】
2004507800.tif 000003
【図２】
2004507800.tif 000004
【図３】
2004507800.tif 000005
【図４】
2004507800.tif 000006
【図５】
2004507800.tif 000007
【図６】
2004507800.tif 000008
【図７】
2004507800.tif 000009
【国際公開パンフレット】
2004507800.tif 000010
2004507800.tif 000011
2004507800.tif 000012
2004507800.tif 000013
2004507800.tif 000014
2004507800.tif 000015
2004507800.tif 000016
2004507800.tif 000017
2004507800.tif 000018
2004507800.tif 000019
2004507800.tif 000020
2004507800.tif 000021
2004507800.tif 000022
2004507800.tif 000023
2004507800.tif 000024
2004507800.tif 000025
2004507800.tif 000026
2004507800.tif 000027
2004507800.tif 000028
2004507800.tif 000029
2004507800.tif 000030
2004507800.tif 000031
【手続補正書】
【提出日】平成13年7月9日(2001.7.9)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１の記憶装置と、
第２の記憶装置と、
前記第１の記憶装置と前記第２の記憶装置に結合された制御回路とを含むプロセッサであって、
前記制御回路が第１の要求を受信するように構成され、前記制御回路が、
前記第１のアドレス要求が前記プロセッサにアクセス権を授与するように構成されていることの検出に応答して前記第１の記憶装置内に前記第１の要求を記憶し、
前記第１の要求が前記第１の記憶装置内に記憶された第２の要求と同じキャッシュ・ラインを参照していることの検出に応答して前記第１の記憶装置内に前記第１の要求を記憶し、
前記第１の要求が前記プロセッサにアクセス権を授与するように構成されていないことの検出に応答し、さらに前記要求が前記第１の記憶装置内に記憶された第２の要求と同じキャッシュ・ラインを参照していないことの検出に応答して前記第２の記憶装置内に前記第１の要求を記憶するように構成されたプロセッサ。
【請求項２】
前記第１の記憶装置と前記第２の記憶装置に結合された処理回路をさらに含み、前記処理回路が前記第２の記憶装置内に記憶された前記第１の要求に応答して前記第２の要求の処理に先立って前記第１の要求を処理するように構成された請求項１に記載のプロセッサ。
【請求項３】
前記処理回路が、前記要求が前記第１の記憶装置内に記憶され、前記第１の要求が前記第１の記憶装置内に記憶された第２の要求と同じキャッシュ・ラインを参照していないことの検出に応答して、前記第２の要求の処理に先立って前記第１の要求を処理するように構成された請求項２に記載のプロセッサ。
【請求項４】
前記第２の記憶装置が第３の要求を含み、前記処理回路が、前記第１の要求が前記第２の記憶装置内に記憶され、前記第１の要求が前記第３の要求と同じキャッシュ・ラインを参照していないことの検出に応答して、前記第３の要求の処理に先立って前記第１の要求を処理するように構成された請求項２または３に記載のプロセッサ。
【請求項５】
前記処理回路が前記第１の記憶装置内に記憶された前記第１の要求に応答して前記第１の要求の処理に先立って前記第３の要求を処理するように構成された請求項４に記載のプロセッサ。
【請求項６】
前記プロセッサが前記第１の要求に応答してデータを別のプロセッサに送るように構成された請求項２に記載のプロセッサ。
【請求項７】
前記第１および第２の記憶装置が先入れ先出し待ち行列を含む請求項１から６のいずれか一項に記載のプロセッサ。
【請求項８】
前記第１および第２の要求がアドレス・パケットを含む請求項１から７のいずれか一項に記載のプロセッサ。
【請求項９】
アドレス・バスとデータ・バスとを介して第２のプロセッサに結合された請求項１から８のいずれか一項に記載のプロセッサを含む装置であって、前記プロセッサが前記アドレス・バスを介して第１の要求を前記第２のプロセッサに送るように構成され、前記第２のプロセッサが前記第１のアドレス・パケットを受信するように構成され、前記第２のプロセッサが前記第１の要求の受信に先立って第２の要求を受信するように構成され、前記第２のプロセッサが、前記第１の要求が前記第２の要求と異なるキャッシュ・ラインを参照し、前記第２の要求が前記第２のプロセッサのアクセス権を取り消すように構成されていないことの検出に応答して、前記第２の要求に先立って前記第１の要求を処理するように構成された装置。
【請求項１０】
前記データ・バスがポイント・ツー・ポイント交換ネットワークを含む請求項９に記載の装置。
【請求項１１】
前記第２のプロセッサが、前記第１の要求が前記異なるキャッシュ・ラインを参照し、前記第２の要求が前記第２のプロセッサに第２のアクセス権を授与するように構成され、前記第１の要求が前記プロセッサに第３のアクセス権を授与するように構成されていることの検出に応答して、前記第２の要求に先立って前記第１の要求を処理するように構成された請求項９または請求項１０に記載の装置。
【請求項１２】
前記第２のプロセッサが前記第１の要求の処理に応答して前記データ・バス上でデータを送るように構成された請求項９から１１のいずれか一項に記載の装置。
【請求項１３】
前記第２のプロセッサが、前記第１の要求が前記第２の要求と同じキャッシュ・ラインを参照していることの検出に応答して、前記第２の要求の後に前記第１の要求を処理するように構成された請求項９から１２のいずれか一項に記載の装置。
【請求項１４】
前記第１のプロセッサと前記第２のプロセッサがＭＯＳＩキャッシュ整合性プロトコルを使用するように構成された請求項９から１３のいずれか一項に記載の装置。
【請求項１５】
前記第２の要求が前記第２のプロセッサによって生成される請求項９から１４のいずれか一項に記載の装置。
【請求項１６】
プロセッサ内の第１の要求を受信するステップと、
前記第１の要求の前記受信に先立ってプロセッサ内の第２の要求を受信するステップと、
（ｉ）前記第２のアドレス・パケットが前記プロセッサの第１のアクセス権を取り消すように構成されていないことと、
（ｉｉ）前記第１の要求が前記第２の要求と同じキャッシュ・ラインを参照していないことの検出に応答して、前記第２の要求に先立って前記第１の要求を処理するステップとを含む方法。
【請求項１７】
（ｉ）前記第１の要求が前記プロセッサに第２のアクセス権を授与するように構成されていることと、
（ｉｉ）前記第１の要求が前記第２の要求と同じキャッシュ・ラインを参照していないことと、
（ｉｉｉ）前記第２の要求が前記プロセッサに第３のアクセス権を授与するように構成されていることの検出に応答して、前記第２の要求に先立って前記第１の要求を処理するステップをさらに含む請求項１６に記載の方法。
【請求項１８】
前記第１の要求が前記第２の要求と同じキャッシュ・ラインを参照していることの検出に応答して、前記第２の要求の後に前記第１の要求を処理するステップをさらに含む請求項１７に記載の方法。
【請求項１９】
前記第１の要求の処理に応答して前記プロセッサからデータを送るステップをステップをさらに含む請求項１６から１８のいずれか一項に記載の方法。
【請求項２０】
前記第１の要求が前記プロセッサに第２のアクセス権を授与するように構成されていることの検出に応答して第１の待ち行列内に前記第１の要求を記憶するステップと、
前記第１の要求が前記第２の要求と同じキャッシュ・ラインを参照していることの検出に応答して前記第１の待ち行列内に前記第１の要求を記憶するステップと、
前記第１の要求が前記プロセッサに前記第２のアクセス権を授与するように構成されておらず、前記第１の要求が前記第２の要求と同じ前記キャッシュ・ラインを参照しないことの検出に応答して第２の待ち行列内に前記第１の要求を記憶するステップとをさらに含む請求項１６から１９のいずれか一項に記載の方法。
【請求項２１】
前記第１および第２の要求がアドレス・パケットを含む請求項１６から２０のいずれか一項に記載の方法。
【国際調査報告】
2004507800.tif 000032
2004507800.tif 000033
2004507800.tif 000034