(57)【要約】【課題】  命令実行部からのレベル１キャッシュアクセスのレイテンシを増大させることなく、バストラフィックを抑えてコヒーレンシを保証しようとする場合、ハードウェア量が大きくなるという問題点があった。【解決手段】  第１の記憶手段のインデックスアドレスを含む論理アドレスを、このインデックスアドレスを含む第２の記憶手段の物理アドレスに変換する論理物理アドレス変換ＴＬＢと、ウェイ番号を含むロードリクエストを送信するリクエスト出力部と、受信したロードリクエストに基づいて、第２の記憶手段の領域と第１の記憶手段の領域との関連状態を記憶する対応状態記憶部と、受信したストアリクエストに含まれるタグと対応状態記憶部に記憶されている内容とに基づいて、無効化指示を送信する無効化指示部とを有する。【選択図】      図１
2010282520.tif 000002
【特許請求の範囲】
【請求項１】
セットアソシアティブ方式の第１の記憶手段の第１のタグとインデックスアドレスとオフセットアドレスとからなる論理アドレスを、第２のタグと前記インデックスアドレスと前記オフセットアドレスとを含む第２の記憶手段の物理アドレスに変換する論理物理アドレス変換部と、
少なくとも前記物理アドレスと当該物理アドレスに対応する前記論理アドレスで指定される前記第１の記憶手段の領域が所属するウェイのウェイ番号とを含むロードリクエストを送信するリクエスト出力部と、
受信した前記ロードリクエストに含まれるウェイ番号と物理アドレス内の第２のタグ及びインデックスアドレスとに基づいて、前記第２の記憶手段の領域と前記第１の記憶手段の領域との関連状態を記憶する対応状態記憶部と、
前記物理アドレスを含むストアリクエストを受信し、受信した当該ストアリクエストに含まれる物理アドレス内の第２のタグと前記対応状態記憶部に記憶されている内容とに基づいて、前記インデックスアドレスと前記ウェイ番号とを含む無効化指示を送信する無効化指示部と
を有することを特徴とするコヒーレンシ制御システム。
【請求項２】
前記対応状態記憶部は、前記ロードリクエストを受信した場合に、当該ロードリクエストに含まれる物理アドレス内の第２のタグを当該ロードリクエストに含まれるウェイ番号と物理アドレス内のインデックスアドレスとに基づいて決定された領域に記憶し、
前記無効化指示部は、前記ストアリクエストに含まれる物理アドレス内の第２のタグと前記対応状態記憶部に記憶されている第２のタグの内の当該ストアリクエストに含まれる物理アドレス内のインデックスアドレスに対応した領域に記憶されている第２のタグの内のいずれかとの一致を検出した場合に、当該インデックスアドレスと当該一致した第２のタグが記憶されている領域のウェイ番号に対応する無効化信号とを無効化指示として出力する
ことを特徴とする請求項１記載のコヒーレンシ制御システム。
【請求項３】
前記無効化指示部は、前記ロードリクエストであることを示す情報あるいは前記ストアリクエストであることを示す情報を保持するコマンドレジスタと、
前記ロードリクエスト及び前記ストアリクエストに含まれる物理アドレスを保持するアドレスレジスタと、
前記ロードリクエストに含まれるウェイ番号を保持するウェイ番号レジスタと、
ロードリクエスト信号あるいはストアリクエスト信号を出力するデコーダと、
前記ロードリクエストに含まれる物理アドレス内の第２のタグを記憶するレベル１キャッシュタグコピー用ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）と、
前記ストアリクエストに含まれる物理アドレス内の第２のタグと前記レベル１キャッシュタグコピー用ＲＡＭに記憶されている第２のタグとを比較判定する判定回路とを含む
ことを特徴とする請求項２記載のコヒーレンシ制御システム。
【請求項４】
前記対応状態記憶部は、前記第２の記憶手段の有するアドレスアレイに含まれる前記インデックスアドレスと前記ウェイ番号と前記プロセッサの識別子との組み合わせに対応する複数のエントリフラグの内、前記ロードリクエストに含まれるウェイ番号と物理アドレス内のインデックスアドレスと当該ロードリクエストを送信したプロセッサの識別子とに基づいて選択されたエントリフラグに前記第２の記憶手段のエントリが開かれている状態であることを記憶し、
前記無効化指示部は、前記ストアリクエストに含まれる物理アドレス内の第２のタグと当該ストアリクエストに含まれる物理アドレス内のインデックスアドレスに対応する前記対応状態記憶部に記憶されている第２のタグとの一致を検出した場合に、当該インデックスアドレスと当該第２のタグに対応するエントリフラグの内の前記第２の記憶部のエントリが開かれている状態であることを記憶しているエントリフラグに対応するウェイ番号とを無効化指示として、当該エントリフラグに対応するプロセッサの識別子を有するプロセッサに出力する
ことを特徴とする請求項１記載のコヒーレンシ制御システム。
【請求項５】
受信した前記無効化指示に基づいて選択した前記第１の記憶手段の領域を無効化する第１の記憶手段を有することを特徴とする請求項１乃至４記載のコヒーレンシ制御システム。
【請求項６】
セットアソシアティブ方式の第１の記憶手段の第１のタグとインデックスアドレスとオフセットアドレスとからなる論理アドレスを変換した第２のタグと前記インデックスアドレスと前記オフセットアドレスとを含む第２の記憶手段の物理アドレスと、当該物理アドレスに対応する前記論理アドレスで指定される前記第１の記憶手段の領域が所属するウェイのウェイ番号とを含むロードリクエストを受信した場合に、当該ロードリクエストに含まれるウェイ番号と物理アドレス内の第２のタグ及びインデックスアドレスとに基づいて、前記第２の記憶手段の領域と前記第１の記憶手段の領域との関連状態を記憶する対応状態記憶部と、
前記物理アドレスを含むストアリクエストを受信し、受信した当該ストアリクエストに含まれる物理アドレス内の第２のタグと前記対応状態記憶部に記憶されている内容とに基づいて、前記インデックスアドレスと前記ウェイ番号とを含む無効化指示を送信する無効化指示部と
を有することを特徴とするコヒーレンシ制御装置。
【請求項７】
前記対応状態記憶部は、前記ロードリクエストを受信した場合に、当該ロードリクエストに含まれる物理アドレス内の第２のタグを当該ロードリクエストに含まれるウェイ番号と物理アドレス内のインデックスアドレスとに基づいて決定された領域に記憶し、
前記無効化指示部は、前記ストアリクエストに含まれる物理アドレス内の第２のタグと前記対応状態記憶部に記憶されている第２のタグの内の当該ストアリクエストに含まれる物理アドレス内のインデックスアドレスに対応した領域に記憶されている第２のタグの内のいずれかとの一致を検出した場合に、当該インデックスアドレスと当該一致した第２のタグが記憶されている領域のウェイ番号に対応する無効化信号とを無効化指示として出力する
ことを特徴とする請求項６記載のコヒーレンシ制御装置。
【請求項８】
前記無効化指示部は、前記ロードリクエストであることを示す情報あるいは前記ストアリクエストであることを示す情報を保持するコマンドレジスタと、
前記ロードリクエスト及び前記ストアリクエストに含まれる物理アドレスを保持するアドレスレジスタと、
前記ロードリクエストに含まれるウェイ番号を保持するウェイ番号レジスタと、
ロードリクエスト信号あるいはストアリクエスト信号を出力するデコーダと、
前記ロードリクエストに含まれる物理アドレス内の第２のタグを記憶するレベル１キャッシュタグコピー用ＲＡＭと、
前記ストアリクエストに含まれる物理アドレス内の第２のタグと前記レベル１キャッシュタグコピー用ＲＡＭに記憶されている第２のタグとを比較判定する判定回路とを含む
ことを特徴とする請求項７記載のコヒーレンシ制御装置。
【請求項９】
前記対応状態記憶部は、前記第２の記憶手段の有するアドレスアレイに含まれる前記インデックスアドレスと前記ウェイ番号と前記プロセッサの識別子との組み合わせに対応する複数のエントリフラグの内、前記ロードリクエストに含まれるウェイ番号と物理アドレス内のインデックスアドレスと当該ロードリクエストを送信したプロセッサの識別子とに基づいて選択されたエントリフラグに前記第２の記憶手段のエントリが開かれている状態であることを記憶し、
前記無効化指示部は、前記ストアリクエストに含まれる物理アドレス内の第２のタグと当該ストアリクエストに含まれる物理アドレス内のインデックスアドレスに対応する前記対応状態記憶部に記憶されている第２のタグとの一致を検出した場合に、当該インデックスアドレスと当該第２のタグに対応するエントリフラグの内の前記第２の記憶部のエントリが開かれている状態であることを記憶しているエントリフラグに対応するウェイ番号とを無効化指示として、当該エントリフラグに対応するプロセッサの識別子を有するプロセッサに出力する
ことを特徴とする請求項６記載のコヒーレンシ制御装置。
【請求項１０】
セットアソシアティブ方式の第１の記憶手段の第１のタグとインデックスアドレスとオフセットアドレスとからなる論理アドレスを、第２のタグと前記インデックスアドレス前記オフセットアドレスとを含む第２の記憶手段の物理アドレスに変換し、
少なくとも前記物理アドレスと当該物理アドレスに対応する前記論理アドレスで指定される前記第１の記憶手段の領域が所属するウェイのウェイ番号とを含むロードリクエストを送信し、
受信した前記ロードリクエストに含まれるウェイ番号と物理アドレス内の第２のタグ及びインデックスアドレスとに基づいて、前記第２の記憶手段の領域と前記第１の記憶手段の領域との関連状態を記憶し、
前記物理アドレスを含むストアリクエストを受信し、受信した当該ストアリクエストに含まれる物理アドレス内の第２のタグと前記記憶した前記第２の記憶手段の領域と前記第１の記憶手段の領域との関連状態とに基づいて、前記インデックスアドレスと前記ウェイ番号とを含む無効化指示を送信する
ことを特徴とするコヒーレンシ制御方法。
【請求項１１】
受信した前記無効化指示に基づいて選択した前記第１の記憶手段の領域を無効化することを特徴とする請求項１０記載のコヒーレンシ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コヒーレンシ制御システム、コヒーレンシ制御装置及びコヒーレンシ制御方法に関し、特に階層メモリのコヒーレンシを制御するコヒーレンシ制御システム、コヒーレンシ制御装置及びコヒーレンシ制御方法に関する。
【背景技術】
【０００２】
階層メモリの一種であるキャッシュのコヒーレンシを保証する技術として、キャッシュ階層の構造やシステムの構成に対応してさまざまな関連技術が知られている。
【０００３】
例えば、物理論理アドレス変換ＴＬＢに関連する技術が、特許文献１に開示されている。特許文献１の演算処理装置は、論理ページアドレスタグを含む物理アドレスアレイを有している。そして、この演算処理装置は、メインメモリの内容が変更されてその物理アドレスが通知された場合に、物理アドレスアレイを用いてこの物理アドレスから論理アドレスを生成し、この論理アドレスに基づいてレベル１キャッシュの無効化処理を行う。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０−２８３２５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した関連技術及び先行技術文献に開示された技術においては、命令実行部からのレベル１キャッシュアクセスのレイテンシを増大させることなく、バストラフィックを抑えてコヒーレンシを保証しようとする場合、ハードウェア量が大きくなるという問題点があった。
【０００６】
その理由を以下に説明する。
【０００７】
例えば、複数のキャッシュ階層としてプロセッサ個別に設けられたレベル１キャッシュと複数のプロセッサで共有されるレベル２キャッシュとを有するマルチプロセッサシステムにおいては、レベル１キャッシュを物理アドレスでマッピングする方法が用いられている。
【０００８】
図１０は、このようなマルチプロセッサシステムにおいて、レベル１キャッシュとレベル２キャッシュとが非包含関係にある場合の構成を示す図である。タグコピー部４２５は、レベル１キャッシュのタグのコピーを用いて、他プロセッサによるストアリクエストに含まれる物理アドレスに基づいて対応するレベル１キャッシュに無効化処理を指示する。
【０００９】
また図１１は、同様なマルチプロセッサシステムにおいて、レベル２キャッシュがレベル１キャッシュのデータを包含する関係にある場合の構成を示す図である。レベル２キャッシュ４３５は、タグ部に共有情報部４３６を有し、いずれのプロセッサが当該ラインをキャッシングしているかという情報を保持する。レベル２キャッシュの制御部は、この共有情報部の内容に基づいて対応するレベル１キャッシュに無効化処理を指示する。
【００１０】
しかし、上述のようにレベル１キャッシュを物理アドレスでマッピングする方法では、命令実行部４２１がレベル１キャッシュ４２３にアクセスする場合、論理物理アドレス変換ＴＬＢ（Ｔｒａｎｓｌａｔｉｏｎ  Ｌｏｏｋ−ａｓｉｄｅ  Ｂｕｆｆｅｒ）４２２による処理を必要とするため、アクセスレイテンシが大きいという問題点がある。
【００１１】
このような問題点に対する対策として、レベル１キャッシュを論理アドレスでマッピングし、レベル１キャッシュに搭載された物理アドレスタグを用いる方法がある。
【００１２】
図１２は、プロセッサ内にレベル１キャッシュの物理アドレスタグを実装した場合の構成を示す図である。例えばプロセッサＰＡ４４０は、プロセッサＰＢ４４０からストアリクエストを受信すると、プロセッサＰＡ４４０の物理アドレスタグコピー４４７を参照してストアリクエストに含まれる物理アドレスタグのヒット／ミスを検索する。物理アドレスタグは、レベル１キャッシュ４４６からロードリクエストが発行され、論物変換ＴＬＢ４４５にて論理物理アドレス変換されたときにレベル１キャッシュのエントリに対応する物理アドレスタグコピー４４７のエントリに登録される。そして、ストアリクエストの物理アドレスタグが物理アドレスタグコピー４４７のいずれかのエントリにヒットした場合、プロセッサＰＡ４４０は対応するレベル１キャッシュのエントリを無効化する。
【００１３】
しかし、この方法は、各プロセッサがストアリクエストを発行する度に他のプロセッサへこのストアリクエストを送信するために、バストラフィックが大となり、消費電力も大きくなるという問題点がある。
【００１４】
前述した問題点に対する他の対策として、レベル１キャッシュを論理アドレスでマッピングし、レベル２キャッシュ側に搭載された物理アドレスタグに基づいて論理アドレスを生成する方法がある。図１３は、レベル２キャッシュ側にプロセッサ４５０それぞれに対応する物理アドレスタグコピー４５６と物理論理アドレス変換ＴＬＢ４５５とを実装した構成を示す図である。
【００１５】
このように、結局のところ、コヒーレンシ制御においてレイテンシ及びバストラフィック増大の問題を解決するには、特許文献１に開示された技術である物理アドレスから論理アドレスを生成する手段即ち図１３に示す物理論理アドレス変換ＴＬＢ４５５などの手段が必要となり、ハードウェア量が大きくなるという別の問題点を招くことになる。
【００１６】
本発明の目的は、上述した問題点を解決するコヒーレンシ制御システム、コヒーレンシ制御装置及びコヒーレンシ制御方法を提供することにある。
【課題を解決するための手段】
【００１７】
本発明のコヒーレンシ制御システムは、セットアソシアティブ方式の第１の記憶手段の第１のタグとインデックスアドレスとオフセットアドレスとからなる論理アドレスを、第２のタグと前記インデックスアドレスと前記オフセットアドレスとを含む第２の記憶手段の物理アドレスに変換する論理物理アドレス変換部と、少なくとも前記物理アドレスと当該物理アドレスに対応する前記論理アドレスで指定される前記第１の記憶手段の領域が所属するウェイのウェイ番号とを含むロードリクエストを送信するリクエスト出力部と、
受信した前記ロードリクエストに含まれるウェイ番号と物理アドレス内の第２のタグ及びインデックスアドレスとに基づいて、前記第２の記憶手段の領域と前記第１の記憶手段の領域との関連状態を記憶する対応状態記憶部と、前記物理アドレスを含むストアリクエストを受信し、受信した当該ストアリクエストに含まれる物理アドレス内の第２のタグと前記対応状態記憶部に記憶されている内容とに基づいて、前記インデックスアドレスと前記ウェイ番号とを含む無効化指示を送信する無効化指示部とを有する。
【００１８】
本発明のコヒーレンシ制御装置は、セットアソシアティブ方式の第１の記憶手段の第１のタグとインデックスアドレスとオフセットアドレスとからなる論理アドレスを変換した第２のタグと前記インデックスアドレスと前記オフセットアドレスとを含む第２の記憶手段の物理アドレスと、当該物理アドレスに対応する前記論理アドレスで指定される前記第１の記憶手段の領域が所属するウェイのウェイ番号とを含むロードリクエストを受信した場合に、当該ロードリクエストに含まれるウェイ番号と物理アドレス内の第２のタグ及びインデックスアドレスとに基づいて、前記第２の記憶手段の領域と前記第１の記憶手段の領域との関連状態を記憶する対応状態記憶部と、前記物理アドレスを含むストアリクエストを受信し、受信した当該ストアリクエストに含まれる物理アドレス内の第２のタグと前記対応状態記憶部に記憶されている内容とに基づいて、前記インデックスアドレスと前記ウェイ番号とを含む無効化指示を送信する無効化指示部とを有する。
【００１９】
本発明のコヒーレンシ制御方法は、セットアソシアティブ方式の第１の記憶手段の第１のタグとインデックスアドレスとオフセットアドレスとからなる論理アドレスを、第２のタグと前記インデックスアドレス前記オフセットアドレスとを含む第２の記憶手段の物理アドレスに変換し、少なくとも前記物理アドレスと当該物理アドレスに対応する前記論理アドレスで指定される前記第１の記憶手段の領域が所属するウェイのウェイ番号とを含むロードリクエストを送信し、受信した前記ロードリクエストに含まれるウェイ番号と物理アドレス内の第２のタグ及びインデックスアドレスとに基づいて、前記第２の記憶手段の領域と前記第１の記憶手段の領域との関連状態を記憶し、前記物理アドレスを含むストアリクエストを受信し、受信した当該ストアリクエストに含まれる物理アドレス内の第２のタグと前記記憶した前記第２の記憶手段の領域と前記第１の記憶手段の領域との関連状態とに基づいて、前記インデックスアドレスと前記ウェイ番号とを含む無効化指示を送信する。
【発明の効果】
【００２０】
本発明によれば、階層メモリアクセス時におけるレイテンシ及びバストラフィックの増大とハードウェア量の増加とを抑えて、階層メモリのコヒーレンシを保証することが可能になる。
【図面の簡単な説明】
【００２１】
【図１】本発明の第１の実施形態の構成を示すブロック図である。
【図２】本発明の第１乃至第３の実施形態におけるレベル１キャッシュアレイの構造を示す図である。
【図３】本発明の第１乃至第３の実施形態における論理アドレスの構造を示す図である。
【図４】本発明の第１乃至第３の実施形態における物理アドレスの構造を示す図である。
【図５】本発明の第１の実施形態におけるレベル１キャッシュタグコピーの構造を示す図である。
【図６】本発明の第１の実施形態における無効化指示部の構成を示すブロック図である。
【図７】本発明の第２の実施形態の構成を示すブロック図である。
【図８】本発明の第２の実施形態におけるアドレスアレイの構造を示す図である。
【図９】本発明の第３の実施形態の構成を示すブロック図である。
【図１０】関連するマルチプロセッサシステムの構成を示すブロック図である。
【図１１】関連するマルチプロセッサシステムの構成を示すブロック図である。
【図１２】関連するマルチプロセッサシステムの構成を示すブロック図である。
【図１３】関連するマルチプロセッサシステムの構成を示すブロック図である。
【発明を実施するための形態】
【００２２】
次に、本発明の実施形態について図面を参照して詳細に説明する。
【００２３】
図１は、本発明の第１の実施形態の構成を示すブロック図である。図１を参照すると、本実施形態に係るコヒーレンシ制御システム１０１は、複数のプロセッサ２００、複数の無効化指示部３４０及びレベル２キャッシュ（第２の記憶手段とも呼ばれる）８００を備える。
【００２４】
各プロセッサ２００は、レベル１キャッシュ（第１の記憶手段とも呼ばれる）２１０、論物変換ＴＬＢ（論理物理アドレス変換部とも呼ばれる）２２０及びリクエスト出力部２３０を含む。各プロセッサ２００は、予め図１に示すようなプロセッサ名（プロセッサの識別子とも呼ばれる）を付与されている。尚、以下の説明において各プロセッサ２００を区別する必要がある場合、例えばプロセッサ名がＰＡのプロセッサ２００は、プロセッサＰＡ２００と記載する。
【００２５】
レベル１キャッシュ２１０は、例えば、２ウェイセットアソシアティブ方式、ライトスルーキャッシュ構成であり、論理アドレス６０１を用いて管理されるキャッシュである。レベル１キャッシュ２１０は、図２に示すようなレベル１キャッシュアレイ２１１を有している。レベル１キャッシュアレイ２１１は、有効フラグ２１５と論理アドレスタグを保持する論理アドレスタグ部２１６とデータを保持するデータ部２１７とを含む複数のレベル１キャッシュエントリ（第１の記憶手段の領域とも呼ばれる）２１２から構成されている。尚、有効フラグ２１５は、対応するレベル１キャッシュエントリ２１２が有効であるか、無効であるかを示すフラグである。そして、各レベル１キャッシュエントリ２１２は、インデックスアドレス２１３及びウェイ番号２１４によって一意に識別される。
【００２６】
また、レベル１キャッシュ２１０は、受信した無効化指示（後述する）と無効化インデックスアドレス（後述する）に基づいて決定されるレベル１キャッシュエントリ２１２の有効フラグ２１５を無効状態にする。
【００２７】
尚、レベル１キャッシュ２１０の構成は、２ウェイセットアソシアティブ方式に限定されるものではなく、Ｎ（Ｎは２以上の整数）ウェイセットアソシアティブ方式であってよい。
【００２８】
論物変換ＴＬＢ２２０は、図３に示すような論理アドレス６０１を図４に示すような物理アドレス６０２に変換する。論理アドレス６０１は、レベル１キャッシュ２１０の論理アドレスタグ（第１のタグとも呼ばれる）６０３とインデックスアドレス６０４とオフセットアドレス６０５とからなる。物理アドレス６０２は、物理アドレスタグ（第２のタグとも呼ばれる）６０６とインデックスアドレス６０７とオフセットアドレス６０８とからなる。論物変換ＴＬＢ２２０による変換において、インデックスアドレス６０７とオフセットアドレス６０８とは、それぞれインデックスアドレス６０４とオフセットアドレス６０５との値がそのまま使用される。
【００２９】
リクエスト出力部２３０は、物理アドレス６０２及びこの物理アドレス６０２に関連するウェイ番号２１４を含むロードリクエストを送信する。この物理アドレス６０２に関連するウェイ番号２１４とは、物理アドレス６０２に対応する論理アドレス６０１に含まれる論理アドレスタグ６０３の値を「ＬＡＴ１」とした時、同一値「ＬＡＴ１」を保持する論理アドレスタグ部２１６を含むレベル１キャッシュエントリ２１２が所属するウェイのウェイ番号２１４である。
【００３０】
無効化指示部３４０は、図５に示すようなレベル１キャッシュタグコピー（対応状態記憶部とも呼ばれる）３５０を含む。尚、レベル１キャッシュタグコピー３５０を含む無効化指示部３４０は、コヒーレンシ制御装置と呼ばれることもある。
【００３１】
無効化指示部３４０は、受信したロードリクエストに含まれるインデックスアドレス６０７とウェイ番号２１４とに基づいて決定したレベル１キャッシュタグコピー３５０の領域に、同じく受信したロードリクエストに含まれる物理アドレスタグ６０６を書き込む。即ち、無効化指示部３４０は、レベル１キャッシュアレイ２１１における論理アドレスタグ部２１６の内容及びインデックスアドレス２１３とレベル１キャッシュタグコピー３５０における物理アドレスタグ部３５６の内容及びインデックスアドレス３５３とがそれぞれ同じ値である場合、これらに従って決定されるレベル１キャッシュ２１０の領域とレベル２キャッシュ８００の領域とが対応するようにロードリクエストを処理する。
【００３２】
また、無効化指示部３４０は、受信したストアリクエストに含まれる物理アドレスタグ６０６と、レベル１キャッシュタグコピー３５０の内の同じく受信したストアリクエストに含まれるインデックスアドレス６０７の値で指定されるインデックスアドレス３５３に対応した物理アドレスタグ部３５６のいずれかとの一致を検出する。そして、無効化指示部３４０は、この一致を検出した場合に、無効化インデックスアドレスとしてインデックスアドレス３５３及びウェイ番号３５４に対応する無効化指示を送信する。
【００３３】
尚、前述したとおり、この無効化指示を受信したレベル１キャッシュ２１０は、同時に受信した無効化インデックスアドレスを無効化すべきレベル１キャッシュエントリ２１２のインデックスアドレス２１３として認識する。
【００３４】
レベル１キャッシュタグコピー３５０は、複数の物理アドレスタグ部３５６からなるウェイ０レベル１キャッシュタグコピー３５８と同じく複数の物理アドレスタグ部３５６からなるウェイ１レベル１キャッシュタグコピー３５９とから構成されている。そして、各物理アドレスタグ部３５６は、インデックスアドレス３５３及びウェイ番号３５４によって一意に識別される。
【００３５】
レベル２キャッシュ８００は、レベル２物理アドレスを用いて管理されるキャッシュであり、複数のプロセッサ２００によって共有される。尚、レベル２物理アドレスの全体の値は、物理アドレス６０２全体の値と同じであるが、その構造は異なっている。例えば、レベル２物理アドレスのインデックスアドレスのビット幅とインデックスアドレス６０７のビット幅とは一致している必要はなく、レベル２物理アドレスのオフセットアドレスのビット幅とオフセットアドレス６０８のビット幅とも一致している必要は無い。
【００３６】
次に、図６を参照して無効化指示部３４０の動作を詳細に説明する。
【００３７】
図６を参照すると、無効化指示部３４０は、コマンドレジスタ３４１、アドレスレジスタ３４２、ウェイ番号レジスタ３４３、デコーダ３４８、レベル１キャッシュタグコピー用ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３４４、レベル１キャッシュタグコピー用ＲＡＭ３４５、判定回路３４６及び判定回路３４７を含む。
【００３８】
レベル１キャッシュタグコピー用ＲＡＭ３４４及びレベル１キャッシュタグコピー用ＲＡＭ３４５は、図５に示すレベル１キャッシュタグコピー３５０のウェイ０レベル１キャッシュタグコピー３５８及びウェイ１レベル１キャッシュタグコピー３５９の部分をそれぞれ記憶する。
【００３９】
まず、ロードリクエストに対する処理即ちレベル１キャッシュタグコピー３５０を書き込む場合の動作を説明する。
【００４０】
前述したように、レベル１キャッシュ２１０はライトスルーキャッシュ構成であるため、レベル１キャッシュエントリ２１２を開く際に、リクエスト出力部２３０がロードリクエストを共有キャッシュであるレベル２キャッシュ８００に送信する。リクエスト出力部２３０は、このロードリクエストにレベル１キャッシュアレイ２１１の２つのウェイの内の有効化するレベル１キャッシュエントリ２１２のウェイ番号２１４を含めて送信する。
【００４１】
無効化指示部３４０において、ロードリクエストを受信すると、コマンドレジスタ３４１はロードリクエストであることを示す情報（例えばコマンドコード）を保持する。同時に、アドレスレジスタ３４２は、物理アドレス６０２を保持する。さらにウェイ番号レジスタ３４３は、ウェイ番号２１４を保持する。
【００４２】
次に、デコーダ３４８は、ロードリクエスト信号を出力する。
【００４３】
次に、レベル１キャッシュタグコピー用ＲＡＭ３４４及びレベル１キャッシュタグコピー用ＲＡＭ３４５それぞれが、ウェイ番号レジスタ３４３に保持されたウェイ番号２１４に従って選択／非選択を決定する。続けて、選択を決定したレベル１キャッシュタグコピー用ＲＡＭ３４４またはレベル１キャッシュタグコピー用ＲＡＭ３４５は、複数のインデックスアドレス３５３のいずれか１つをアドレスレジスタ３４２に保持されたインデックスアドレス６０７に従って選択する。続けて、選択を決定したレベル１キャッシュタグコピー用ＲＡＭ３４４またはレベル１キャッシュタグコピー用ＲＡＭ３４５は、選択したインデックスアドレス３５３の物理アドレスタグ部３５６に、ロードリクエスト信号に応じてアドレスレジスタ３４２に保持されている物理アドレスタグ６０６を記憶する。
【００４４】
次に、ストアリクエストに対する処理即ち無効化指示を出力する場合の動作を説明する。
【００４５】
無効化指示部３４０において、ストアリクエストを受信すると、コマンドレジスタ３４１はストアリクエストであることを示す情報（例えばコマンドコード）を保持する。同時に、アドレスレジスタ３４２は、物理アドレス６０２を保持する。
【００４６】
次に、デコーダ３４８は、ストアリクエスト信号を出力する。
【００４７】
次に、レベル１キャッシュタグコピー用ＲＡＭ３４４及びレベル１キャッシュタグコピー用ＲＡＭ３４５それぞれが、複数の物理アドレスタグ部３５６のいずれか１つをアドレスレジスタ３４２に保持されたインデックスアドレス６０７に従って選択する。
【００４８】
次に、判定回路３４６及び判定回路３４７が、ストアリクエスト信号に応じてそれぞれ選択された物理アドレスタグ部３５６の内容とアドレスレジスタ３４２に保持されている物理アドレスタグ６０６とを比較判定する。続けて、判定回路３４６及び判定回路３４７は、物理アドレスタグ部３５６の内容と物理アドレスタグ６０６とが一致していた場合は、無効化指示としてそれぞれウェイ０ヒット信号及びウェイ１ヒット信号を送信する。同時に、アドレスレジスタ３４２に保持されたインデックスアドレス６０７が、無効化インデックスアドレスとして送信される。
【００４９】
上述した本実施形態における効果は、レベル１キャッシュアクセスのレイテンシの増大、バストラフィックの増加、及びハードウェア量の増加を抑えて、レベル１キャッシュのコヒーレンシを保証することが可能になる点である。
【００５０】
その理由は、無効化指示部が論理アドレスのインデックスアドレス部分を変更せずに変換された物理アドレスとウェイ番号とに基づいて決定したレベル１キャッシュタグコピーの領域に、同じくロードリクエストに含まれる物理アドレスタグを書き込み、レベル１キャッシュタグコピーに基づいてレベル１キャッシュに無効化指示を送信するようにしたからである。
【００５１】
次に、本発明の第２の実施形態について、図面を参照して詳細に説明する。
【００５２】
前述した第１の実施形態は、レベル２キャッシュ８００がレベル１キャッシュ２１０と非包含関係にある場合にも動作可能なように、レベル１キャッシュタグコピー３５０を含む構成である。一方、本実施形態は、レベル２キャッシュ８１０（後述する）がレベル１キャッシュ２１０の内容を包含していることを前提とした実施形態であり、第１の実施形態に比べて簡易な構成である。
【００５３】
図７は、本発明の第２の実施形態の構成を示すブロック図である。図７を参照すると、本実施形態に係るコヒーレンシ制御システム１０２は、複数のプロセッサ２００及びレベル２キャッシュ８１０を備える。
【００５４】
プロセッサ２００は、第１の実施形態のプロセッサ２００と同じ構成及び機能を有する。
【００５５】
レベル２キャッシュ８１０は、レベル２物理アドレスを用いて管理されるキャッシュであり、複数のプロセッサ２００によって共有される。
【００５６】
レベル２キャッシュ８１０は、図８に示すようなアドレスアレイ（対応状態記憶部とも呼ばれる）８１１及び無効化指示部８４０を有している。尚、アドレスアレイ８１１及び無効化指示部８４０とは、併せてコヒーレンシ制御装置と呼ばれることもある。
【００５７】
アドレスアレイ８１１は、インデックスアドレス８１３に対応付けられた複数のアドレス情報８１２から構成されている。各アドレス情報８１２は、エントリフラグ８２１〜８２８及び物理アドレスタグ部８３１を含む。
【００５８】
エントリフラグ８２１〜８２８は、対応するレベル２キャッシュ（第２の記憶手段の領域とも呼ばれる）８１０のエントリに関連するレベル１キャッシュエントリ２１２がレベル１キャッシュ２１０のいずれのウェイに開かれているかを示す情報である。エントリフラグ８２１〜８２８は、各プロセッサ２００のレベル１キャッシュ２１０の各ウェイ番号２１４にそれぞれ対応している。例えば、レベル２キャッシュ８１０のエントリが関連するレベル１キャッシュエントリ２１２において有効化されている場合、対応するエントリフラグ８２１〜８２８が「１」に設定されるものとする。
【００５９】
無効化指示部８４０は、受信したロードリクエストに含まれる物理アドレスタグ６０６とインデックスアドレス６０７とにそれぞれ対応する物理アドレスタグ部８３１の内容とインデックスアドレス８１３に従ってアドレス情報８１２を選択する。続けて、無効化指示部８４０は、選択したアドレス情報８１２のエントリフラグ８２１〜８２８の内のいずれか１つを、受信したロードリクエストに含まれるウェイ番号２１４とロードリクエストの送信元のプロセッサ２００のプロセッサ名とに基づいて選択する。さらに続けて、無効化指示部８４０は、選択したエントリフラグ８２１〜８２８を「１」に設定する。
【００６０】
また、無効化指示部８４０は、受信したストアリクエストに含まれる物理アドレスタグ６０６とインデックスアドレス６０７とにそれぞれ対応する物理アドレスタグ部８３１の内容とインデックスアドレス８１３に従ってアドレス情報８１２を選択する。続けて、無効化指示部８４０は、選択したアドレス情報８１２のエントリフラグ８２１〜８２８の内「１」に設定されているエントリフラグ８２１〜８２８を検出する。さらに続けて、無効化指示部８４０は、検出したエントリフラグ８２１〜８２８に対応するプロセッサ２００に対して、同じく検出したエントリフラグ８２１〜８２８に対応するウェイ番号２１４に対応する無効化指示と無効化インデックスアドレスとして選択したアドレス情報８１２のインデックスアドレス８１３とを送信する。
【００６１】
上述した本実施形態における効果は、第１の実施形態の効果に加えて、レベル２キャッシュがレベル１キャッシュに対して包含関係にある場合、さらにハードウェア量を削減することを可能にできる点である。
【００６２】
その理由は、レベル２キャッシュのアドレスアレイに物理アドレスタグとインデックスアドレスとウェイ番号とを関連付けて記憶するようにしたからである。
【００６３】
次に、本発明の第３の実施形態について、図面を参照して詳細に説明する。本実施形態は、本発明の基本的な要素のみで構成された実施形態である。
【００６４】
図９は、本実施形態の構成を示すブロック図である。図９を参照すると、本実施形態に係るコヒーレンシ制御システム１０３は、論物変換ＴＬＢ１２０とリクエスト出力部１３０と無効化指示部１４０と対応状態記憶部１５０とを備えている。尚、無効化指示部１４０と対応状態記憶部１５０とは、併せてコヒーレンシ制御装置と呼ばれることもある。
【００６５】
論物変換ＴＬＢ１２０は、第１の論物変換ＴＬＢ２２０と同じ構成及び機能を有する。
【００６６】
リクエスト出力部１３０は、第１のリクエスト出力部２３０と同じ構成及び機能を有する。
【００６７】
対応状態記憶部１５０は、受信したロードリクエストに基づいて、物理アドレスタグ６０６とインデックスアドレス６０７とウェイ番号２１４とを関連付けて、レベル２キャッシュのエントリとレベル１キャッシュエントリ２１２との対応状態を記憶する。
【００６８】
無効化指示部１４０は、受信したストアリクエストに含まれる物理アドレスタグ６０６と対応状態記憶部１５０に記憶されている内容とに基づいて、インデックスアドレス６０７とウェイ番号２１４に対応する無効化指示とをレベル１キャッシュに送信する。
【００６９】
上述した本実施形態における効果は、レベル１キャッシュアクセスのレイテンシの増大、バストラフィックの増加、及びハードウェア量の増加を抑えて、レベル１キャッシュのコヒーレンシを保証することが可能になる点である。
【００７０】
その理由は、論理アドレスのインデックスアドレス部分を変更せずに変換された物理アドレスとウェイ番号とに基づいて、レベル２キャッシュ側に物理アドレスタグとインデックスアドレスとウェイ番号とを関連付けて記憶し、レベル１キャッシュタグコピーに基づいてレベル１キャッシュに無効化指示を送信するようにしたからである。
【００７１】
以上の各実施形態で説明した各構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が１個のモジュールとして実現されたり、一つの構成要素が複数のモジュールで実現されたり、ある構成要素が他の構成要素の一部であったり、ある構成要素の一部と他の構成要素の一部とが重複していたり、といったような構成であってもよい。
【００７２】
さらに、以上説明した各実施形態では、複数の動作は個々に相違するタイミングで実行されることに限定されない。例えば、ある動作の実行中に他の動作が発生したり、ある動作の実行タイミングと他の動作の実行タイミングとの一部乃至全部が重複していたりしていてもよい。
【００７３】
さらに、以上説明した各実施形態では、ある動作が他の動作の契機になるように記載しているが、その記載はある動作と他の動作の全ての関係を限定するものではない。このため、各実施形態を実施するときには、その複数の動作の関係は内容的に支障のない範囲で変更することができる。また各構成要素の各動作の具体的な記載は、各構成要素の各動作を限定するものではない。このため、各構成要素の具体的な各動作は、各実施形態を実施する上で機能的、性能的、その他の特性に対して支障をきたさない範囲内で変更されて良い。
【００７４】
尚、以上説明した各実施形態における各構成要素は、必要に応じ可能であれば、ハードウェアで実現されても良いし、ソフトウェアで実現されても良いし、ハードウェアとソフトウェアの混在により実現されても良い。
【００７５】
また、各構成要素の物理的な構成は、以上の実施形態の記載に限定されることはなく、独立して存在しても良いし、組み合わされて存在しても良いしまたは分離して構成されても良い。
【産業上の利用可能性】
【００７６】
本発明は、マルチプロセッサシステムおける階層構造を有するキャッシュのコヒーレンシ制御などに適用できる。
【符号の説明】
【００７７】
１０１    コヒーレンシ制御システム
１０２    コヒーレンシ制御システム
１０３    コヒーレンシ制御システム
１２０    論物変換ＴＬＢ
１３０    リクエスト出力部
１４０    無効化指示部
１５０    対応状態記憶部
２００    プロセッサ
２１０    キャッシュ
２１１    レベル１キャッシュアレイ
２１２    レベル１キャッシュエントリ
２１３    インデックスアドレス
２１４    ウェイ番号
２１５    有効フラグ
２１６    論理アドレスタグ部
２１７    データ部
２２０    論物変換ＴＬＢ
２３０    リクエスト出力部
３４０    無効化指示部
３４１    コマンドレジスタ
３４２    アドレスレジスタ
３４３    ウェイ番号レジスタ
３４４    キャッシュタグコピー用ＲＡＭ
３４５    レベル１キャッシュタグコピー用ＲＡＭ
３４６    判定回路
３４７    判定回路
３４８    デコーダ
３５０    キャッシュタグコピー
３５３    インデックスアドレス
３５４    ウェイ番号
３５６    物理アドレスタグ部
３５８    キャッシュタグコピー
３５９    キャッシュタグコピー
６０１    論理アドレス
６０２    物理アドレス
６０３    論理アドレスタグ
６０４    インデックスアドレス
６０５    オフセットアドレス
６０６    物理アドレスタグ
６０７    インデックスアドレス
６０８    オフセットアドレス
８００    キャッシュ
８１０    キャッシュ
８１１    アドレスアレイ
８１２    アドレス情報
８１３    インデックスアドレス
８３１    物理アドレスタグ部
８４０    無効化指示部
８２１〜８２８    エントリフラグ
【図１】
2010282520.tif 000003
【図２】
2010282520.tif 000004
【図３】
2010282520.tif 000005
【図４】
2010282520.tif 000006
【図５】
2010282520.tif 000007
【図６】
2010282520.tif 000008
【図７】
2010282520.tif 000009
【図８】
2010282520.tif 000010
【図９】
2010282520.tif 000011
【図１０】
2010282520.tif 000012
【図１１】
2010282520.tif 000013
【図１２】
2010282520.tif 000014
【図１３】
2010282520.tif 000015