(57)【特許請求の範囲】
【請求項１】
主記憶装置と、プロセッサを具備する複数の処理装置を備え、各処理装置はキャッシュメモリを備え、
上記キャッシュメモリは、少なくともダーティデータを唯一持っている状態を示すモディファイ状態と、ダーティデータを持っておりオーナーである状態を示すオーナー状態と、有効データを持っている状態を示すシェア状態と、キャッシュデータ無効である状態を示すインバリッド状態との４状態を有する情報処理装置において、
全処理装置のタグ情報を参照し集中管理するキャッシュ状態認識回路を設け、該キャッシュ状態認識回路は、全処理装置のヒット情報およびモディファイ／シェア状態と、少なくともモディファイ／オーナー／シェア／インバリッドの４状態とを対応付ける真理値表を備え、
タグ参照時、上記キャッシュ状態認識回路は、上記真理値表を参照して、全処理装置のヒット情報および上記モディファイ／シェア状態から、各処理装置のキャッシュメモリの状態を認識する
ことを特徴とするキャシュを備えた情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はキャッシュメモリを備えた情報処理装置に関する。
【０００２】
【従来の技術】
図１２はキャッシュメモリを備えた情報処理装置の構成を示す図である。同図において、１０は主記憶装置であり、主記憶装置１０には共通バスを介して複数の処理装置１１−１〜１１−ｎが接続されており、主記憶装置は複数の処理装置１１−１〜１１−ｎにより共用される。処理装置１１−１〜１１−ｎはそれぞれ、主記憶制御装置１１ａ、キャッシュメモリ１１ｃ、プロセッサ１１ｂから構成される。
【０００３】
以下、図１２に示したキャッシュメモリを備えた情報処理装置における従来技術について説明する。
（１）図１３は従来のキャッシュメモリ（以下キャッシュという）の構成を示す図である。
同図において、２１はプロセッサ、２２は主記憶装置のアドレス情報を保持するタグ部（以下ＴＡＧという）であり、ＴＡＧ２２はタグデータの有効／無効を示すフラグを格納するフラグ部２２ａを備えている。
また、２３はバッファメモリ、２４はヒット判定回路、２５はタグライト制御部である。
【０００４】
メモリへのリード・アクセス時、プロセッサ２１がアドレス情報を送出すると下位アドレスによりＴＡＧ２２、バッファメモリ２３がアクセスされるとともに、上位アドレスとＴＡＧ２２の上位アドレスがヒット判定回路２４で比較される。比較結果が一致し有効／無効フラグが有効であると、有効なデータがキャッシュに存在するので、プロセッサ２１が送出する下位アドレスのデータがバッファメモリ２３から読み出され、プロセッサに送出される。また、比較結果が不一致であるか、有効／無効フラグが無効の場合には、図１２に示した主記憶装置１０がアクセスされ、リードデータがキャッシュ１１ｃに入力され、また、所望のデータがプロセッサ２１に送出される。
【０００５】
上記のように、通常、キャッシュのＴＡＧには、有効／無効フラグを保持する領域が設けられており、キャッシュと主記憶が不一致になると、当該アドレスの有効／無効フラグを無効化していた。
このため、従来のキャッシュにおいては、ＴＡＧデータの有効無効情報を保持する領域を設ける必要があり、その分記憶容量が増加した。
【０００６】
（２）前記図１２に示すキャッシュを持つ複数の処理装置が存在するシステムにおいては、通常、キャッシュの状態を処理装置が認識できるようにするため、各キャッシュ毎にこれらの状態を保持する領域が設けられる。
例えば、Ｍ（モディファイ）、Ｏ（オナー）、Ｓ（シェア）、Ｉ（インバリッド）の４状態を認識するには、図１４（ａ）に示すように各キャッシュにＭＳビットとＳＳビットの２ビットを保持する領域を設ける必要があり、また、Ｍ、Ｏ、Ｅ（イクスクルーシブ）、Ｓ、Ｉの５状態を識別するには、図１４（ｂ）に示すようにＶＳ、ＭＳ、ＳＳの３ビットを保持する領域を必要とする。
以上のように、従来のキャッシュにおいては、処理装置のキャッシュの状態を認識するためのフラグを保持する領域を設ける必要があり、その分記憶容量が増加した。
【０００７】
【発明が解決しようとする課題】
以上のように、従来のキャッシュメモリを備えた情報処理装置においては、キャッシュにタグデータの有効／無効を示すフラグを保持する領域や、処理装置のキャッシュの状態を識別するための領域を設ける必要があり、その分、メモリを余分に必要とした。
本発明は上記事情に鑑みなされたものであって、比較的少ないハード量の追加で、記憶容量を小さくし、ハード量を削減することができるキャッシュを備えた情報処理装置を提供することを目的とする。
【０００８】
【課題を解決するための手段】
図１は本発明の原理構成図である。
上記課題を解決するため、本発明の請求項１の発明は、図１に示すように、主記憶装置４と、プロセッサを具備する複数の処理装置１−１〜１−ｎを備え、該処理装置は、少なくともモディファイ／オーナー／シェア／インバリッドの４状態を有するキャッシュメモリとを備えた情報処理装置において、全処理装置の同一エントリのタグ情報を参照するキャッシュ状態認識回路５を設ける。該キャッシュ状態認識回路は、全処理装置のヒット情報およびモディファイ／シェア状態と、少なくともモディファイ／オーナー／シェア／インバリッドの４状態とを対応付ける真理値表を備え、タグ参照時、上記キャッシュ状態認識回路は、上記真理値表を参照して、全処理装置のヒット情報および上記モディファイ／シェア状態から、各処理装置のキャッシュメモリの状態を認識する。
本発明においては、上記のように構成したので、キャッシュの状態を示す情報を各処理装置のキャッシュが保持する必要がなく、記憶容量を小さくしハード量を減少させることができる。
【０００９】
【発明の実施の形態】
図２はＴＡＧデータの有効／無効を示すビットを不要にした構成例を示している。
図２において、前記図１３に示したものと同一のものには同一の符号が付されており、本構成例においては、図１３に示した有効／無効フラグを保持するフラグ部２２ａが設けられておらず、タグライト制御部２５により切り換えられるセレクタ２６が設けられている。そして、セレクタ２６の一方の入力にはアドレスａ１１’１’（上位アドレス）が与えられ、他方の入力にプロセッサが出力する上位アドレスが与えられている。
ここで、上記アドレスａ１１’１’のメモリ空間は図３のメモリマップに示すように未使用とされ、ソフトからのアクセスを禁止している。
【００１０】
同図において、メモリへのリード・アクセス時、プロセッサ２１がアドレス情報を送出すると、下位アドレスによりＴＡＧ２２、バッファメモリ２３がアクセスされ、また、上位アドレスとＴＡＧ２２の上位アドレスがヒット判定回路２４で比較される。比較結果が一致すると、プロセッサ２１が送出する下位アドレスのデータがバッファメモリ２３から読み出され、プロセッサに送出される。
また、比較結果が不一致であると、前記図１２に示した主記憶装置１０がアクセスされ、リードデータがキャッシュメモリに入力され、所望のデータがプロセッサに送出される。また、ＴＡＧ２２の更新時には、タグライト制御部２５により、プロセッサからの上位アドレスがＴＡＧ２２に書き込まれる。
ここで、ＴＡＧ２２を無効化する場合には、タグライト制御部２５はセレクタ２６を切り換え、ＴＡＧ２２を未使用のアドレスａ１１’１’（上位アドレス）に更新する。
【００１１】
そして、プロセッサ２１からのＴＡＧ２２の参照時、ＴＡＧ２２から上記アドレスａ１１’１’が読み出された場合、ソフトのアクセス制限によりプロセッサから送出される上位アドレスが上記アドレスａ１１’１’であることはないので、この場合には必ずミスヒットとなる。
すなわち、上記構成例においては、ＴＡＧ２２の無効化更新時、未使用の上位アドレスをＴＡＧ２２に書き込むようにしており、これによりタグデータの有効／無効を示すフラグを設けることなく、ＴＡＧ制御を行うことができる。
なお、上記において、ＴＡＧ２２を無効化する際、ＴＡＧ２２の更新アドレスをアドレスａ１１’１’としたが、このアドレスはソフトの取決めにより適宜選択することができ、上記アドレスに限定されない。
【００１２】
図４は上記の構成において、ＴＡＧ２２を無効する際にＴＡＧ２２に書き込むアドレスをプロセッサ２１により設定できるようにしたものである。
同図において、図２に示したものと同一のものには同一の符号が付されており、この構成例においては、プロセッサ２１から明示的にライトすることができる無効化データレジスタ２７が設けられている。
そして、プロセッサ２１はシステム初期化時、上記無効化データレジスタ２７に図５のメモリマップに示す未使用の上位アドレスである無効化データを書き込む。
【００１３】
ＴＡＧ２２を無効化する場合には、前記したようにタグライト制御部２５はセレクタ２６を切り換え、ＴＡＧ２２を上記無効化データレジスタ２７に保持された未使用のアドレスに更新する。
したがって、ＴＡＧ２２を参照し、ＴＡＧ２２から上記未使用のアドレスが読み出された場合、必ずミスヒットとなる。すなわち、前記と同様、タグデータの有効／無効を示すフラグを設けることなく、ＴＡＧ制御を行うことができる。
上記のように無効化データレジスタ２７を設け、プロセッサ２１から無効化データを書き込むことができるようにすることで、プログラム毎に無効化データを設定することができ、最適なＴＡＧ制御を実現することができる。
【００１４】
図６、図７は本発明の実施例のシステムの構成を示す図であり、本実施例は、キャッシュを備えた処理装置が複数存在するシステムにおいて、各キャッシュ毎に他プロセッサのキャッシュの情報を持つことなく他プロセッサのキャッシュ状態を認識できるようにした実施例を示している。
【００１５】
図６は、各プロセッサ毎に他のプロセッサのキャッシュ状態を認識する実施例を示しており、図６において、４１−１〜４１−ｎはプロセッサであり、各プロセッサは、キャッシュのタグ部４２と、ヒット判定回路４３と、キャッシュ状態認識回路４４を備えている。各プロセッサにおけるヒット情報、ＭＳ（モディファイ／シェア）ビットの状態は、相互に各プロセッサ４１−１〜４１−ｎのキャッシュ状態認識回路４４に送られる。
図７は、キャッシュの状態を集中管理する実施例を示しており、４２は各プロセッサのキャッシュのタグ部、４３はヒット判定回路、４４はキャッシュ状態認識回路であり、各ヒット情報、ＭＳビットはキャッシュ状態認識回路４４に送られ集中管理される。
【００１６】
図８、図９は、キャッシュの状態がＭ／Ｏ／Ｓ／Ｉの４状態である場合のキャッシュ状態認識回路４４の真理値表の一例であり、同図はプロセッサが３つの場合を示している。図８、図９において、Ｍ／Ｏ／Ｓ／Ｉはそれぞれ以下を意味する。
Ｍ：Ｍｏｄｉｆｙ（ダーティデータを唯一持っている）
Ｏ：Ｏｗｎｅｒ（ダーティデータを持っておりオーナーである）
Ｓ：Ｓｈａｒｅ（有効データを持っている）
Ｉ：Ｉｎｖａｌｉｄ（キャッシュデータ無効）
＝：あり得ない状態
【００１７】
キャッシュ状態認識回路４４は自プロセッサと他プロセッサのヒット情報およびＭＳビットに基づき、図８、図９に示す真理値表により次のようにして各プロセッサのキャッシュの状態を認識する。そして、キャッシュ状態更新時には、上記真理値表によりＭＳビットに更新データをライトする。
0003585349.tif 000002
【００１８】
例えば、図８の第１行に示すように、各プロセッサのヒット情報、ＭＳビットが全て”０”の場合は、各プロセッサのキャッシュの状態はＩｎｖａｌｉｄであり、また、図９の第１行に示すように、プロセッサ０のヒット情報が”１”、ＭＳビットが”０”であり、他のプロセッサのヒット情報、ＭＳビットが”０”の場合は、プロセッサ０のキャッシュはＳｈａｒｅであり、他のプロセッサのキャッシュはＩｎｖａｌｉｄである。
なお、図８、図９では、ヒット情報＝１でＭＳ＝１のキャッシュが複数あることはないことが前提となっている。
【００１９】
図１０、図１１は、キャッシュの状態がＭ／Ｏ／Ｅ／Ｓ／Ｉの５状態である場合のキャッシュ状態認識回路４４の真理値表の一例であり、同図はプロセッサが３つの場合を示している。図１０、図１１において、Ｍ／Ｏ／Ｅ／Ｓ／Ｉはそれぞれ以下を意味する。
Ｍ：Ｍｏｄｉｆｙ（ダーティデータを唯一持っている）
Ｏ：Ｏｗｎｅｒ（ダーティデータを持っておりオーナーである）
Ｅ：Ｅｘｃｌｕｓｉｖｅ（クリーンデータを唯一持っている）
Ｓ：Ｓｈａｒｅ（有効データを持っている）
Ｉ：Ｉｎｖａｌｉｄ（キャッシュデータ無効）
＝：あり得ない状態
【００２０】
キャッシュ状態認識回路４４は各プロセッサのヒット情報およびＭＳビットに基づき、図１０、図１１に示す真理値表により次にようにして各プロセッサのキャッシュの状態を認識する。そして、キャッシュ状態更新時には、上記真理値表によりＭＳビットに更新データをライトする。
0003585349.tif 000003
【００２１】
なお、図１０、図１１では、ヒット情報＝１でＭＳ＝１のキャッシュが複数あることはないことが前提となっている。
以上のように本実施例においては、キャッシュ状態認識回路４４を設け、各プロセッサのキャッシュのヒット情報とＭＳビットからキャッシュの状態を認識しているので、各プロセッサのキャッシュに他プロセッサのキャッシュの状態を認識するための情報を持つ必要がなく、その分記憶容量を少なくすることができる。
【００２２】
【発明の効果】
以上説明したように本発明においては、主記憶装置と、プロセッサを具備する複数の処理装置を備え、処理装置は、少なくともモディファイ／オーナー／シェア／インバリッドの４状態を有するキャッシュメモリとを備えた情報処理装置において、全処理装置の同一エントリのタグ情報を参照するキャッシュ状態認識回路を設け、タグ参照時、全処理装置の同一エントリの上記モディファイ／シェア状態から、オーナー状態を認識するようにしたので、キャッシュの状態を示す情報を各処理装置のキャッシュが保持する必要がなく、記憶容量を小さくしハード量を減少させることができる。
【図面の簡単な説明】
【図１】本発明の原理構成図である。
【図２】ＴＡＧデータの有効／無効を示すビットを不要にした構成例を示す図である。
【図３】図２の例におけるメモリマップである。
【図４】図２においてプロセッサから明示的にライトすることができる無効化データレジスタを設けた例を示す図である。
【図５】図４の例におけるメモリマップである。
【図６】本発明の実施例のシステムの構成（１）を示す図である。
【図７】本発明の実施例のシステムの構成（２）を示す図である。
【図８】キャッシュの状態が４状態の場合の真理値表の一例を示す図である。
【図９】キャッシュの状態が４状態の場合の真理値表の一例を示す図（続き）である。
【図１０】キャッシュの状態が５状態の場合の真理値表の一例を示す図である。
【図１１】キャッシュの状態が５状態の場合の真理値表の一例を示す図（続き）である。
【図１２】キャッシュメモリを備えた情報処理装置の構成を示す図である。
【図１３】キャッシュメモリを備えた処理装置の従来例を示す図である。
【図１４】複数の処理装置を備えた情報処理装置におけるキャッシュ状態認識の従来例を示す図である。
【符号の説明】
１，１−１〜１−ｎ  プロセッサ
２ａ                タグ部
２ｂ                データ部
２ｃ                ヒット判定回路
３                  レジスタ
４                  主記憶装置
５                  キャッシュ状態認識回路
２１                プロセッサ
２２                タグ部
２２ｂ              フラグ部
２３                バッファメモリ
２４                タグライト制御部
２５                ヒット判定回路
２７                無効化データレジスタ
４１−１〜４１−ｎ  プロセッサ
４２                キャッシュ
４３                ヒット判定回路
４４                キャッシュ状態認識回路
【図１】
0003585349.tif 000004
【図２】
0003585349.tif 000005
【図３】
0003585349.tif 000006
【図４】
0003585349.tif 000007
【図５】
0003585349.tif 000008
【図６】
0003585349.tif 000009
【図７】
0003585349.tif 000010
【図８】
0003585349.tif 000011
【図９】
0003585349.tif 000012
【図１０】
0003585349.tif 000013
【図１１】
0003585349.tif 000014
【図１２】
0003585349.tif 000015
【図１３】
0003585349.tif 000016
【図１４】
0003585349.tif 000017