(57)【要約】本発明の１実施形態は、同一のサイクル内の多重キャッシュライン無効化をサポートするマルチプロセッサシステムを提供する。このマルチプロセッサシステムは、複数のプロセッサと、多重同時操作をサポートするよう構成される下位レベルキャッシュとを含む。このマルチプロセッサシステムはまた、複数のプロセッサに接続される複数の上位レベルキャッシュを含み、所与の上位レベルキャッシュは、上位レベル内のラインの多重同時無効化をサポートするよう構成される。下位レベルキャッシュは、多重同時操作をサポートするために並行してアクセスされ得る多重のバンクを含む。この実施形態のバリエーションでは、所与の上位レベルキャッシュにおける各ラインは、ラインを無効化するために利用され得る有効ビットを含む。これらの有効ビットは、下位レベルキャッシュの多重バンクに関連する多重のバンクへ組織化されるメモリ内に含まれる。【選択図】図５
2004528647.tif 000002
【特許請求の範囲】
【請求項１】
同一のサイクル内の多重キャッシュライン無効化をサポートするマルチプロセッサシステムであって、
複数のプロセッサと、
多重同時操作をサポートするように構成される下位レベルキャッシュと、
該複数のプロセッサに接続される複数の上位レベルキャッシュであって、該複数の上位レベルキャッシュは、該下位レベルキャッシュを介してメモリアクセスを実行するように構成される、複数の上位レベルキャッシュと
を含み、
各該複数の上位レベルキャッシュは、該上位レベルキャッシュ内のラインの多重同時無効化をサポートするように構成される、マルチプロセッサシステム。
【請求項２】
前記下位レベルキャッシュは、多重同時操作をサポートするために、並行にアクセスされ得る多重のバンクを含む、請求項１に記載のマルチプロセッサシステム。
【請求項３】
前記下位レベルキャッシュの前記多重のバンクを、前記複数の上位レベルキャッシュと接続するように構成されるスイッチをさらに含む、請求項２に記載のマルチプロセッサシステム。
【請求項４】
所与の上位レベルキャッシュの各ラインは、該ラインを無効化するために利用され得る有効ビットを含み、
該所与の上位レベルキャッシュに対する該有効ビットは、前記下位レベルキャッシュの前記多重のバンクと関連する多重のバンクへ組織化されるメモリに含まれ、
有効ビットを含む各バンクは、該下位レベルキャッシュの関連するバンクに配線接続され、その結果、該所与の上位レベルキャッシュは、該下位レベルキャッシュから、多重同時無効信号を受信し得る、請求項２に記載のマルチプロセッサシステム。
【請求項５】
有効ビットを含む各バンクは、第１のポートおよび第２のポートを含み、該第１のポートは、該バンク内の第１の位置から読み出す、または、該バンクの第１の位置に書き込むために利用され得る一方で、該第２のポートは、該バンクの第２の位置を無効化するために利用される、請求項４に記載のマルチプロセッサシステム。
【請求項６】
前記第２のポートのワードラインにより、メモリエレメントは、該メモリエレメントを対応するビットラインに接続することなしにリセットされる、請求項５に記載のマルチプロセッサシステム。
【請求項７】
有効ビットを含む各バンクは、該バンクの第２のポートに対してワードラインを選択する専用のデコーダを含み、
該多重のバンクは、該多重のバンクの前記第１のポートを介して単一のワードラインを選択する単一のデコーダを共用する、請求項５に記載のマルチプロセッサシステム。
【請求項８】
所与の上位レベルキャッシュにより受信される所与の無効信号は、
該所与の上位レベルキャッシュで無効化されるべきラインのセット位置と、
該所与の上位レベルキャッシュで無効化されるべき該ラインのウェイ位置と
を含む、請求項１に記載のマルチプロセッサシステム。
【請求項９】
前記マルチプロセッサシステムは、単一の半導体チップ上に配置される、請求項１に記載のマルチプロセッサシステム。
【請求項１０】
前記下位レベルキャッシュは、Ｌ２キャッシュであり、
各該複数の上位レベルキャッシュは、Ｌ１キャッシュである、請求項１に記載のマルチプロセッサシステム。
【請求項１１】
前記複数の上位レベルキャッシュは、ライトスルーキャッシュとして組織化され、その結果、該複数の上位レベルキャッシュに対するアップデートは、直ちに前記下位レベルキャッシュへライトスルーされる、請求項１に記載のマルチプロセッサシステム。
【請求項１２】
同一のサイクル内の多重キャッシュライン無効化をサポートするキャッシュであって、
コードおよび／またはデータを格納するための複数のキャッシュラインであって、
該各キャッシュラインは、該キャッシュラインを無効化するために利用され得る有効ビットを含む、複数のキャッシュラインと、
多重のバンクへ組織化される該複数のキャッシュラインに対して、有効ビットを格納するためのメモリであって、
各バンクは、多重無効化が並行に発生し得るように、専用の無効信号を受信する、メモリと
を含む、キャッシュ。
【請求項１３】
各バンクは、第１のポートおよび第２のポートを含み、該第１のポートは、該バンク内の第１の位置から読み出す、または、該バンクの第１の位置に書き込むために利用され得る一方で、該第２のポートは、該バンクの第２の位置を無効化するために利用される、請求項１２に記載のキャッシュ。
【請求項１４】
前記第２のポートのワードラインにより、メモリエレメントは、該メモリエレメントをビットラインに接続することなしにリセットされる、請求項１３に記載のキャッシュ。
【請求項１５】
前記キャッシュは、Ｌ２キャッシュから無効信号を受信するＬ１キャッシュである、請求項１２に記載のキャッシュ。
【請求項１６】
前記Ｌ２キャッシュは、多重同時操作をサポートするために、並行にアクセスされ得る複数のＬ２バンクを含み、
有効ビットを含む各バンクは、関連するＬ２バンクに配線接続され、その結果、Ｌ１キャッシュは、該Ｌ２キャッシュから多重同時無効化信号を受信し得る、請求項１５に記載のキャッシュ。
【請求項１７】
有効ビットを含む各バンクは、該バンクの第２のポートに対してワードラインを選択する専用のデコーダを含み、
該多重のバンクは、該多重のバンクの前記第１のポートを介して単一のワードラインを選択する単一のデコーダを共用する、請求項１２に記載のキャッシュ。
【請求項１８】
前記キャッシュにより受信される所与の無効信号は、
該キャッシュで無効化されるべきラインのキャッシュセット位置と、
該キャッシュで無効化されるべき該キャッシュラインのウェイ位置と
を含む、請求項１２に記載のマルチプロセッサシステム。
【請求項１９】
同一サイクル内の多重キャッシュライン無効化を実行する方法であって、該方法は、複数のプロセッサと、下位レベルキャッシュと、該複数のプロセッサに接続される複数の上位レベルキャッシュとを含むシステムにおいて作動し、該複数の上位レベルキャッシュは、該下位レベルキャッシュを介してメモリアクセスを実行するように構成され、該方法は、
該下位レベルキャッシュから、上位レベルキャッシュにおいて多重無効化信号を受信するステップであって、該多重無効化信号は、該下位レベルキャッシュの多重同時操作によって発生する、ステップと、
該下位レベルキャッシュ内で同時に多重エントリを無効化するために、多重無効化を同時に実行するステップと
を含む、方法。
【請求項２０】
前記下位レベルキャッシュは、前記多重同時操作をサポートするために、並行にアクセスされ得る多重のバンクを含む、請求項１９に記載の方法。
【請求項２１】
前記上位レベルキャッシュの各ラインは、該ラインを無効化するために利用され得る有効ビットを含み、
該上位レベルキャッシュに対する該有効ビットは、前記下位レベルキャッシュの前記多重のバンクと関連する多重のバンクへ組織化されるメモリに含まれ、
有効ビットを含む各バンクは、該下位レベルキャッシュの関連するバンクに配線接続され、その結果、該上位レベルキャッシュは、該下位レベルキャッシュから、多重同時無効信号を受信し得る、請求項２０に記載の方法。
【請求項２２】
多重無効化操作が前記上位レベルキャッシュで実行されるのと同時に、該上位レベルキャッシュで読み出し、または、書き込み操作を実行するステップをさらに含む、請求項２１に記載の方法。
【請求項２３】
無効化を実行するステップは、メモリエレメントをビットラインに接続することなく、該メモリエレメントをリセットする該メモリエレメントのワードラインをアサートするステップを含む、請求項１９に記載の方法。
【請求項２４】
無効信号を受信するステップは、
前記上位レベルキャッシュで無効化されるべきラインのセット位置と、
該上位レベルキャッシュで無効化されるべき該ラインのウェイ位置と
を受信するステップ含む、請求項１９に記載の方法。
【請求項２５】
前記下位レベルキャッシュは、Ｌ２キャッシュであり、
各該複数の上位レベルキャッシュは、Ｌ１キャッシュである、請求項１９に記載の方法。
【請求項２６】
前記複数の上位レベルキャッシュは、ライトスルーキャッシュとして組織化され、その結果、該複数の上位レベルキャッシュに対するアップデートは、直ちに前記下位レベルキャッシュへライトスルーされる、請求項１９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチプロセッサコンピュータシステムの設計に関する。より詳細には、本発明は、同時に多重キャッシュライン無効化を実行するための方法および装置に関する。
【背景技術】
【０００２】
（関連技術）
コンピュータ性能の高速化を達成するために、コンピュータシステム設計者は、単一のコンピュータタスクを実行するために並行に動作するマルチプロセッサシステムを利用し始めた。１つの共通のマルチプロセッサ設計は、複数のレベル１（Ｌ１）キャッシュ１６１〜１６４を有する複数のプロセッサ１５１〜１５４を含み、複数のレベル１（Ｌ１）キャッシュ１６１〜１６４は、単一のレベル２（Ｌ２）キャッシュ１８０およびメモリ１８３を共用する（図１を参照されたい）。動作中、プロセッサ１５１が、ローカルＬ１キャッシュ１６１に存在しないデータアイテムにアクセスする場合、システムは、Ｌ２キャッシュ１８０からデータアイテムを取り出そうと試みる。データアイテムがＬ２キャッシュ１８０に存在しない場合は、システムは、最初に、データアイテムを、メモリ１８３からＬ２キャッシュ１８０へ取り出し、続いて、Ｌ２キャッシュ１８０からＬ１キャッシュ１６１へ取り出す。
【０００３】
留意すべきは、１つより多いＬ１キャッシュにおいて、同一のデータアイテムが存在する場合、干渉性の問題が生じ得ることである。この場合、Ｌ１キャッシュ１６１におけるデータアイテムの第１のバージョンに対する修正によって、第１のバージョンが、Ｌ１キャッシュ１６２におけるデータアイテムの第２のバージョンと異なるようにし得る。
【０００４】
干渉性の問題を防ぐために、コンピュータシステムは、しばしば、バス１７０を介して動作する干渉性プロトコルを提供する。典型的には、干渉性プロトコルが確実にするのは、データアイテムの１つのコピーがＬ１キャッシュ１６１で修正される場合、Ｌ１キャッシュ１６２〜１６４、Ｌ２キャッシュ１８０およびメモリ１８３における同一データアイテムの他のコピーは、その修正を反映するようにアップデートされるか、無効化される。
【０００５】
干渉性プロトコルは、典型的には、バス１７０を介して無効メッセージをブロードキャストすることによって、無効化を実行する。そのような無効化が頻繁に発生する場合、これらの無効メッセージは、潜在的にバス１７０を拘束させ得、それにより全体的なシステム性能を低下させ得る。
【０００６】
この問題を改善するために、いくらかの設計者は、Ｌ２キャッシュ１８０内にディレクトリ情報を維持する可能性を検討し始めた。このディレクトリ情報は、どのＬ１キャッシュが特定のデータアイテムのコピーを含むかを特定する。このことにより、システムは、全てのＬ１キャッシュにブロードキャストメッセージを送信するのではなく、そのデータアイテムを含むＬ１キャッシュに対してのみ無効情報を送信することになる。（このタイプのシステムは、各Ｌ１キャッシュ１６１〜１６４への無効メッセージのための別個の伝達経路が存在することを仮定している。これらの伝達経路は、図１Ａに示されるシステムには存在しない。）
留意すべきは、さらなる伝達経路が、Ｌ１キャッシュ１６１〜１６４とＬ２キャッシュ１８０との間に提供される場合に、複数のプロセッサは、同時に無効化を引き起こすアクセスを実行することが可能になることである。つまり、Ｌ１キャッシュ１６１〜１６４は、同時に多重の無効要求を受信し得る。
【０００７】
必要とされるのは、同時に、Ｌ１キャッシュで、多重の無効化を実行することを容易にする方法および装置である。
【０００８】
さらに、留意すべきは、Ｌ１キャッシュ１６１〜１６４は、典型的にはセットアソシアティブ（ｓｅｔ−ａｓｓｏｃｉａｔｉｖｅ）である。従って、無効メッセージがＬ１キャッシュ１６１によって受信されると、ルックアップおよび比較がＬ１キャッシュ１６１内で必ず実行されて、データアイテムのウェイ位置を決定する。例えば、４ウェイセットアソシアティブＬ１キャッシュにおいて、特定のセットに所属するデータアイテムは、４つの可能な「ウェイ」の１つで、格納され得る。結果として、各４つの可能なウェイからのタグは、必ず取り出され比較されて、データアイテムのウェイ位置を決定する。このルックアップは、時間を消費し、システム性能を低下させる。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
つまり、必要とされるのは、エントリのウェイ位置を決定するために、ルックアップを実行することなく、Ｌ１キャッシュにおけるエントリを無効化するための方法および装置である。
【課題を解決するための手段】
【００１０】
（要旨）
本発明の１つの実施形態は、同一のサイクル内の多重キャッシュライン無効化をサポートするマルチプロセッサシステムを提供する。このマルチプロセッサシステムは、複数のプロセッサと、多重同時操作をサポートするように構成される下位レベルキャッシュとを含む。このマルチプロセッサシステムはまた、複数のプロセッサに接続される複数の上位レベルキャッシュを含み、所与の上位レベルキャッシュは、所与の上位レベルキャッシュ内のラインの多重同時無効化をサポートするように構成される。
【００１１】
本発明の１つの実施形態では、下位レベルキャッシュは、多重同時操作をサポートするために並行してアクセスされ得る多重のバンクを含む。
【００１２】
上述の実施形態のバリエーションでは、マルチプロセッサシステムは、複数の下位レベルキャッシュのバンクを、複数の上位レベルキャッシュに接続するように構成されるスイッチを含む。
【００１３】
上述の実施形態のバリエーションでは、所与の上位レベルキャッシュにおける各ラインは、ラインを無効化するために利用され得る有効ビットを含む。これらの有効ビットは、下位レベルキャッシュの多重のバンクに関連する多重のバンクへ組織化されるメモリ内に含まれる。さらに、有効ビットを含む各バンクは、下位レベルキャッシュの関連するバンクに配線接続され、その結果、所与の上位レベルキャッシュは、下位レベルキャッシュから多重同時無効化信号を受信し得る。
【００１４】
この実施形態におけるバリエーションでは、有効ビットを含む各バンクは、第１のポートおよび第２のポートを含む。ここで、第１のポートは、バンクの第１の位置から読み出す、または、バンクの第１の位置へ書き込むため利用され得る一方、第２のポートは、バンクの第２の位置を無効化するために利用される。このことは、バンクの第２のポートに対するワードラインを選択する専用のデコーダを有効ビットを含む各バンクに提供し、かつ、全てのバンクを介して単一のワードラインを選択する単一のデコーダを共用することによって、達成され得る。さらなるバリエーションでは、第２のポートのワードラインによって、メモリエレメントを対応するビットラインに接続することなく、メモリエレメントはリセットされる。
【００１５】
本発明の１つの実施形態では、所与の上位レベルキャッシュにより受信される所与の無効化信号は、所与の上位レベルキャッシュにおいて無効化されるべきラインのセット位置と、所与の上位レベルキャッシュにおいて無効化されるべきラインのウェイ位置とを含む。
【００１６】
本発明の１つの実施形態では、マルチプロセッサシステムは、単一の半導体チップ内に配置される。
【００１７】
本発明の１つの実施形態では、下位レベルキャッシュは、Ｌ２キャッシュであり、各複数の上位レベルキャッシュは、Ｌ１キャッシュである。
【００１８】
本発明の１つの実施形態では、複数の上位レベルキャッシュは、ライトスルーキャッシュとして組織化され、その結果、複数の上位レベルキャッシュに対するアップデートは、直ちに下位レベルキャッシュに対してライトスルーされる。
（詳細な説明）
以下の説明は、任意の当業者が本発明を作製し利用することができるように表現されており、特定の用途および必要性の関連で提供される。開示される実施形態に対する様々な改変が、当業者には容易に理解され、本明細書中で定義される一般原理は、本発明の意図および範囲から逸脱することなく、他の実施形態および用途に適用され得る。従って、本発明は、示される実施形態に制限されることが意図されないが、本明細書中で開示される原理および特徴と一貫する最大範囲が許容され得る。
（マルチプロセッサシステム）
図１Ｂは、本発明の実施形態に従った、リバースディレクトリを有するマルチプロセッサシステムを示す。マルチプロセッサシステム１００のほとんどは、単一の半導体チップ１０１内に配置されていることを留意されたい。より詳細には、半導体チップ１０１は、複数のプロセッサ１１０、１２０、１３０および１４０を含み、それらのプロセッサは、レベル１キャッシュ１１２、１２２、１３２および１４２をそれぞれ含む。留意すべきは、Ｌ１キャッシュ１１２、１２２、１３２および１４２は、別個の命令およびデータキャッシュであってもよく、もしくは、代替として、統一された命令／データキャッシュであってもよいことである。Ｌ１キャッシュ１１２、１２２、１３２および１４２は、レベル２（Ｌ２）キャッシュ１０６に接続され、Ｌ２キャッシュ１０６は、リバースディレクトリ３０２（以下の図３〜６を参照して、より詳細が述べられる）を含む。Ｌ２キャッシュ１０６は、メモリコントローラ１０４を介して、オフチップメモリ１０２に接続される。
【００１９】
本発明の１つの実施形態では、Ｌ１キャッシュ１１２、１２２、１３２および１４２は、ライトスルーキャッシュであり、つまり、Ｌ１キャッシュ１１２、１２２、１３２および１４２に対する全てのアップデートは、自動的に、Ｌ２キャッシュ１０６に伝播されることを意味する。このことは、プロセッサ１１０が、Ｌ１キャッシュ１１２に存在するデータアイテムを必要とする場合、プロセッサ１１０は、そのデータを調達するためにＬ１キャッシュ１１２を待つ必要もなく、Ｌ２キャッシュ１０６からそのデータを受信することができるので、干渉性プロトコルを単純化する。さらに、Ｌ１キャッシュ１１２にそのデータを調達できるようにするために、ネットワークをフォワードする必要もない。留意すべきは、本発明の１つの実施形態では、Ｌ２キャッシュ１０６は「包含的キャッシュ」であり、つまり、Ｌ１キャッシュ１１２、１２２、１３２および１４２内の全てのアイテムは、Ｌ２キャッシュ１０６に含まれることを意味することである。
（多重のバンクを有するＬ２キャッシュ）
図２は、本発明の実施形態に従った、多重のバンクを有するＬ２キャッシュを示す。この実施形態では、Ｌ２キャッシュ１０６は、４つのバンク２０２〜２０５で実装され、４つのバンク２０２〜２０５は、スイッチ２１５および２１８を介して、プロセッサ１１０、１２０、１３０および１４０によって並列にアクセスされ得る。スイッチ２１５は、プロセッサ１１０、１２０、１３０および１４０からＬ２バンク２０２〜２０５へ搬送する伝達を操作する一方、スイッチ２１６は、Ｌ２バンク２０２〜２０５からプロセッサ１１０、１２０、１３０および１４０への逆方向における伝達操作する。
【００２０】
留意すべきは、２ビットのアドレスだけが、メモリ要求がどのバンク２０２〜２０５に向けられているかを決定するために必要とされることである。また留意すべきは、スイッチ２１５は、Ｉ／Ｏデバイスに伝達を受信するために、Ｉ／Ｏポート１５０をさらに含み、スイッチ２１６は、Ｉ／Ｏデバイスからの伝達を送信するために、Ｉ／Ｏポート１５２を含むことである。さらに、本発明の１つの実施形態では、各これらのバンク２０２〜２０５は、リバースディレクトリを含み、図５を参照して、以下により詳細に説明される。
【００２１】
留意すべきは、「バンク化された」アーキテクチャを利用することによって、各Ｌ１キャッシュは、それ専用のＬ２キャッシュのバンクと同時に接続可能であり、それにより、Ｌ２キャッシュ１０６の処理能力が増加することである。
【００２２】
しかし、Ｌ２キャッシュ１０６に対する同時アクセスは、潜在的に、Ｌ１キャッシュ１１２、１２２、１３２および１４２内に、ラインの多重無効化を引き起こさせ得る。これらの無効化をサポートするために、各Ｌ１キャッシュは、Ｌ２キャッシュ１０６の各バンク２０２〜２０５から、無効信号を受信する別個の経路を有する。
【００２３】
図１に示されるように、Ｌ１キャッシュ１１２は、Ｌ２バンク２０２からの無効信号２２１と、Ｌ２バンク２０３からの無効信号２２２と、Ｌ２バンク２０４からの無効信号２２３と、Ｌ２バンク２０５からの無効信号２２４とを受信する。各他のＬ１キャッシュ１２２、１３２および１４２は、Ｌ２バンク２０２〜２０５から同様の無効信号を受信する。しかし、これらのさらなる無効信号は、簡便さのために、図１には示されない。
（リバースディレクトリ）
図３は、本発明の実施形態に従った、関連するリバースディレクトリ３０２と一緒のＬ２バンク２０２を示す。Ｌ２バンク２０２は、命令およびデータを格納するための８ウェイのセットアソシアティブキャッシュ３０４を含む。アドレスの一部分は、キャッシュ３０４内のセット（行）を決定するために利用される。所与のセット内では、８つの異なるエントリが、各８つの異なる「ウェイ位置」に格納され得る。ウェイ位置は、キャッシュ３０４内の８つの列によって表現される。
【００２４】
リバースディレクトリ３０２は、各Ｌ１キャッシュに対して別個のブロックを含む。より具体的には、ブロック３１２は、Ｌ１キャッシュ１１２と関連し、ブロック３２２は、Ｌ１キャッシュ１２２と関連し、ブロック３３２は、Ｌ１キャッシュ１３２と関連し、そしてブロック３４２は、Ｌ１キャッシュ１４２と関連する。
【００２５】
留意すべきは、各これらのブロック３１２、３２２、３３２および３４２は、関連するＬ１キャッシュ１１２、１２２、１３２および１４２内の各ラインに対するエントリを含むことである。さらに、Ｌ１キャッシュ１１２が、４ウェイセットアソシアティブキャッシュとして組織化されるので、リバースディレクトリ３０２内の関連するブロック３１２はまた、同一の形式で組織化される。しかし、Ｌ１キャッシュ１１２内のエントリは、データおよび命令を含む。ここで、関連するブロック３１２内のエントリは、キャッシュ３０４内のラインの位置を特定するインデックス情報を含む。
（無効信号）
図４は、本発明の実施形態に沿った、アドレス４００および関連する無効信号４３０を示す。
【００２６】
図４の上側は、アドレス４００を示し、アドレス４００は、メモリ内のデータアイテム（または命令）の位置を特定する。Ｌ１キャッシュ１１２は、このアドレスを、Ｌ１タグ４１２、Ｌ１セットナンバー４１４、および、Ｌ１ラインオフセット４１８へ分割する。Ｌ１セットナンバー４１４は、４ウェイセットアソシアティブＬ１キャッシュ１１２の特定のセットを調べるために、利用される。Ｌ１タグ４１２は、Ｌ１キャッシュ１１２内に格納され、各セットに対する４ウェイセットアソシアティブメモリを実装するために、比較を実行するように利用される。Ｌ１ラインオフセット４１８は、Ｌ１キャッシュ１１２のライン内の特定のデータアイテムの位置を決定する。
【００２７】
Ｌ２キャッシュ１０６は、アドレス４００を、Ｌ２タグ４０２、Ｌ２セットナンバー４０４、Ｌ２バンクナンバー４０６およびＬ２ラインオフセット４０８に分割する。Ｌ２バンクナンバー４０６は、Ｌ２キャッシュ１０６の４つのバンク２０２〜２０５から、特定のバンクを決定する。Ｌ２セットナンバー４０４は、Ｌ２キャッシュ１０６の８ウェイセットアソシアティブバンクの特定のセットをルックアップするために利用される。Ｌ２タグ４０２は、Ｌ２キャッシュ１０６の特定のバンクに格納され、各セットに対する８ウェイセットアソシアティブメモリを実装するために、比較を実行するように利用される。Ｌ２ラインオフセット４０８は、Ｌ２キャッシュ１０６のライン内の特定のデータアイテムの位置を決定する。
【００２８】
アドレス４００に対する対応する無効信号４３０は、縮小されたＬ１セットナンバー４２４およびＬ１ウェイナンバー４２９を含む。縮小されたＬ１セットナンバー４２４は、Ｌ２バンクナンバー４０６に対するビットなしのＬ１セットナンバー４１４を含む。図５から理解し得るように、各無効信号が、Ｌ２キャッシュ１０６の対応するバンクへ配線接続されるので、Ｌ２バンクナンバーに対するビットは、取り除かれ得、その結果、Ｌ２バンクナンバー４０６は、必要とされない。Ｌ１ウェイナンバー４２９は、Ｌ１キャッシュ１１２においてラインに対する４つの可能なウェイ位置からラインのウェイ（列）位置を特定する、２ビットインデックスを含む。
（多重同時無効化をサポートするメモリ）
図５は、本発明の実施形態に沿った、Ｌ１キャッシュ１１２内にラインに対する有効ビットを格納するメモリ構造を示す。このメモリは、多重のバンク５０１〜５０４と、無効信号２２１〜２２５を受信する複数ポートとを含む。ここで、各無効信号は、それ専用のメモリのバンクに接続される。より具体的には、無効信号２２１は、バンク５０１に接続され、無効信号２２２は、バンク５０２に接続され、無効信号２２３は、バンク５０３に接続され、そして無効信号２２４は、バンク５０４に接続される。
【００２９】
また留意すべきは、各これらのバンクは、４つの「ウェイ」へ分割され、Ｌ１キャッシュ１１２の４ウェイアソシアティブ構造を反映することである。つまり、各無効信号２２１〜２２４に対するウェイナンバー４２９は、セットナンバー４２４から分離され、セットナンバー４２４は、ワードラインを選択するデコーダを介して送り込まれる。留意すべきは、各バンクエントリは、各ウェイに対する別個の有効ビットを有することである。また留意すべきは、Ｌ１ウェイナンバー４２９は、操作に関連する特定の有効ビットを有効にすることである。
【００３０】
例えば、無効信号２１１は、セットナンバー５１１およびウェイナンバー５２１へ分割される。ウェイナンバー５２１は、バンク５０１の列を選択するために利用される一方、セットナンバー５１１は、バンク５０１に対するワードラインを駆動するデコーダ５３１を介して、送り込まれる。
【００３１】
留意すべきは、メモリはまた、無効化が左手側から発生するのと同時に読み書き操作を実行するために、右手側に少なくとも１つのポートを含むことである。このポートは、アドレス５４１を受信する。アドレス５４１は、メモリの全てのバンク５０１〜５０４を介して単一のワードラインを選択するデコーダ５４１を介して、送り込まれる。
（メモリセル構造）
図６は、本発明の実施形態に沿った、図５に示されるメモリ内の単一のメモリセルの構造を示す。このメモリセルは、無効ポートからのワードライン５５１と、読み／書きポートからのワードライン５５２とを受信する。留意すべきは、これらのメモリセルは、潜在的に、他のポートおよび関連するワードラインに接続され得ることである。
【００３２】
ワードライン５５１を駆動することにより、メモリセルは、左手側で、接地に接続され、右手側で、ＶＤＤに接続される。留意すべきは、無効化操作は、常にメモリエレメントを論理ゼロ値にセットするので、無効化操作に対してビットラインは必要とされないことである。また留意すべきは、Ｌ１ウェイナンバー４２９から決定されるイネーブル信号６３０は、ワードライン５５１の操作を有効にすることである。
【００３３】
反対に、ワードライン５５２を駆動することにより、メモリエレメントは、異なるビットラインＤ＋６０１およびＤ＋６０２に接続される。異なるビットラインＤ＋６０１およびＤ＋６０２は、メモリエレメントからの読み出し、または、メモリエレメントへの書き込みのために利用される。
（同時無効化を実行するプロセス）
図７は、本発明の実施形態に沿った、多重キャッシュラインを同時に無効化するプロセスを示すフローチャートである。本プロセスは、多重無効化信号２２１〜２２４が、Ｌ１キャッシュ１１２で受信される（ステップ７０２）ときに開始する。これらの多重無効化信号２２１〜２２４に応対して、システムは、図５に示されるＬ１キャッシュ１１２の多重のバンク５０１〜５０４で、同時無効化を実行する（ステップ７０４）。留意すべきは、読み／書きアクセスは、これらの同時無効化が発生すると同時に、別個の読み／書きポートを介して、メモリ上で実行され得ることである（ステップ７０６）。
【００３４】
本発明の実施形態の上述の説明は、図および説明のためにのみ示された。これらは、包括的であり、開示された形式に対して本発明を制限することを、意図されない。従って、多くの改変および変更が、当業者にとって理解される。つまり、上述の開示は、本発明を制限することが意図されない。本発明の範囲は、上掲の特許請求の範囲によって定義される。
【図面の簡単な説明】
【００３５】
【図１Ａ】図１Ａは、マルチプロセッサシステムを示す。
【図１Ｂ】図１Ｂは、本発明の実施形態に沿った、リバースディレクトリを有するＬ２キャッシュを含むマルチプロセッサシステムを示す。
【図２】図２は、本発明の実施形態に沿った、マルチプロセッサシステム内の多重のバンクを有するＬ２キャッシュを示す。
【図３】図３は、本発明の実施形態に沿った、リバースディレクトリを示す。
【図４】図４は、本発明の実施形態に沿った、アドレスおよび関連する無効信号を示す。
【図５】図５は、本発明の実施形態に沿った、無効化のための多重ポートを含むメモリ構造を示す。
【図６】図６は、本発明の実施形態に沿った、図５に示されるメモリ内の単一のメモリセルの構造を示す。
【図７】図７は、本発明の実施形態に沿った、複数キャッシュラインを同時に無効化するプロセスを示すフローチャートである。
【図１Ａ】
2004528647.tif 000003
【図１Ｂ】
2004528647.tif 000004
【図２】
2004528647.tif 000005
【図３】
2004528647.tif 000006
【図４】
2004528647.tif 000007
【図５】
2004528647.tif 000008
【図６】
2004528647.tif 000009
【図７】
2004528647.tif 000010
【国際公開パンフレット】
2004528647.tif 000011
2004528647.tif 000012
2004528647.tif 000013
2004528647.tif 000014
2004528647.tif 000015
2004528647.tif 000016
2004528647.tif 000017
2004528647.tif 000018
2004528647.tif 000019
2004528647.tif 000020
2004528647.tif 000021
2004528647.tif 000022
2004528647.tif 000023
2004528647.tif 000024
2004528647.tif 000025
2004528647.tif 000026
2004528647.tif 000027
2004528647.tif 000028
2004528647.tif 000029
2004528647.tif 000030
2004528647.tif 000031
2004528647.tif 000032
2004528647.tif 000033
2004528647.tif 000034
2004528647.tif 000035
2004528647.tif 000036
【国際公開パンフレット（コレクトバージョン）】
2004528647.tif 000037
2004528647.tif 000038
【国際調査報告】
2004528647.tif 000039
2004528647.tif 000040
2004528647.tif 000041
2004528647.tif 000042
2004528647.tif 000043