(57)【要約】【課題】キャッシュミスを低減し、かつメモリシステムの高性能化を図る。【解決手段】中央制御部40が参照する下位メモリ素子48に記憶された大量の情報から取り出される第１情報が格納される第１補助記憶素子42、及び第１情報が含まれる第２情報が格納される第２補助記憶素子44を用意する。参照される情報が、第１補助記憶素子42または第２補助記憶素子44に存在するか、あるいは、参照される情報を含んでいない別の第１情報が第１補助記憶素子42に存在するか否かによって、前記下位メモリ素子48から第１情報または第２情報を選択的に取り出し、第１補助記憶素子42と第２補助記憶素子44とに選択的に格納する。【選択図】図１
2007004835.tif 000002
【特許請求の範囲】
【請求項１】
（ａ）中央制御部が参照するよう大量の情報を下位メモリ素子に格納する段階と、
（ｂ）前記下位メモリ素子に格納された大量の情報から取り出される第１情報が書き込まれる第１補助記憶素子、及び前記第１情報が含まれる第２情報が書き込まれる第２補助記憶素子を用意する段階と、
（ｃ）前記第１補助記憶素子または前記第２補助記憶素子に、前記中央制御部によって参照される情報が存在するか否かを判断する段階と、
（ｄ）前記第１補助記憶素子に、前記中央制御部によって参照される情報が存在すれば、前記中央制御部が前記第１補助記憶素子から前記情報を参照する段階と、
（ｅ）前記中央制御部によって参照される情報が前記第１補助記憶素子に存在せず、前記第２補助記憶素子に存在すれば、前記第２補助記憶素子の情報のうち、前記中央制御部が参照する情報を含む第２情報内の第１情報は前記第１補助記憶素子に移し、前記中央制御部が前記第１情報または前記第２情報から情報を参照する段階と、
（ｆ）前記第１補助記憶素子及び前記第２補助記憶素子に、前記中央制御部によって参照される情報が存在しなければ、前記中央制御部によって参照される情報を含む第２情報を前記下位メモリ素子から取り出して前記第２補助記憶素子に書込み、前記第２補助記憶素子に書き込まれる前記第２情報のうち、前記中央制御部によって参照される情報を含む前記第１情報は前記第１補助記憶素子に移し、前記中央制御部が取り出された前記第１情報または前記第２情報から情報を参照する段階と、
（ｇ）前記（ｅ）または（ｆ）段階において、前記第２補助記憶素子または前記下位メモリから新たに取り出された第１情報または第２情報に応じて、前記第１補助記憶素子または前記第２補助記憶素子に既存する第１情報または第２情報が書き換えられる時、
前記書き換えられる第１情報を含む第２情報が第２補助記憶素子に格納されており、前記書き換えられる第１情報が前記第１補助記憶素子で更新されて、前記第２補助記憶素子に格納された前記第２情報に含まれた第１情報とは別の情報となった場合にのみ、第２補助記憶素子に格納された前記第２情報に含まれる第１情報を、前記書換えられる第１情報に更新する段階と
を含むことを特徴とするキャッシュメモリの運用方法。
【請求項２】
前記第１補助記憶素子及び第２補助記憶素子は、キャッシュであることを特徴とする請求項１に記載のキャッシュメモリの運用方法。
【請求項３】
前記第２情報は、
前記第１情報よりその大きさが２の倍数であるキャッシュブロックに該当する情報よりなることを特徴とする請求項１に記載のキャッシュメモリの運用方法。
【請求項４】
前記下位メモリ素子は、
磁気ディスク装置、テープ装置、メモリ装置及びキャッシュメモリ装置のグループから選ばれたいずれかの装置であることを特徴とする請求項１に記載のキャッシュメモリの運用方法。
【請求項５】
前記第１補助記憶素子及び前記第２補助記憶素子は、
前記第２補助記憶素子に存在するブロックの数が、前記第１補助記憶素子に存在するブロックの数と、前記第２補助記憶素子の連関度及び第１補助記憶素子の連関度の比が互いに乗算された結果値より小さく構成され、前記第２補助記憶素子の連関度が前記第１補助記憶素子の連関度以上となるよう構成することを特徴とする請求項１に記載のキャッシュメモリの運用方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュメモリシステム及びその運用方法に係り、特にキャッシュメモリ内でのキャッシュミスを減らして、システムの性能の向上をはかったキャッシュメモリシステム及びその運用方法に関する。
【背景技術】
【０００２】
一般に、プロセッサとメモリとの性能の差が一層著しくなるにつれて、図７に示すように、メモリは、プロセッサ内で使用されるレジスタ10と、キャッシュ11と、主記憶装置であるメモリ12と、補助記憶装置である磁気ディスク13とバックアップ装置で使用される磁気テープ14とで構成される階層的な構造となりつつある。このような階層的な構造で使用される各々の装置は、レジスタ10などの上位階層にあるほど動作速度は高速であるが、情報が格納されるメモリサイズは小さくなる。これに対し、補助記憶装置である磁気テープ14などの下位階層にあるほど動作速度は低速であるがメモリサイズは大きくなる。
【０００３】
そこで、ほとんどの高性能システムにおいては、階層的な構造のメモリ構造で使用される上位階層に属するレジスタ10やキャッシュ11などの大きさ、構成、動作方式を適宜設定して、システムの性能の向上をはかっている。キャッシュ11を使用する階層的なメモリシステムでは、中央処理装置（ＣＰＵ）によって参照される情報の地域性に基づいてキャッシュ11を使用することにより、優れた性能を得ることが可能である。参照される情報の地域性は、空間的な地域性（Spatial locality）と時間的な地域性（Temporal locality）とに大別できる。空間的な地域性とは、特定のメモリ要素である情報が参照された場合、この参照された情報に隣接したアドレスに位置づけられた別の情報が、近い将来に参照される可能性が高い傾向を意味する。また、時間的な地域性とは、参照された情報が近い将来に参照される可能性が高い傾向を意味する。
【０００４】
かかる空間的な地域性及び時間的な地域性を反映させるために、キャッシュメモリシステムを複数個の情報を含む情報のブロックで構成し、キャッシュミスが生じると、キャッシュミスの生じた情報と共にこのキャッシュミスの生じた情報に隣接した情報を下位メモリ素子から取り出して格納することにより空間的な地域性を反映し、かつ最近参照された情報を含む情報のブロックをキャッシュメモリに格納することにより時間的な地域性を反映している。この２種類の地域性は、キャッシュの設計時に、情報ブロックのサイズを決める上で重要である。つまり、空間的な地域性をさらに十分に反映させるには、情報ブロックのサイズをより大きくしてキャッシュを構成することが好適ではあるが、全体のキャッシュサイズが一定の場合、情報ブロックのサイズの増大はキャッシュ内に存在する情報ブロックの数を減らすことになるため、時間的な地域性の反映が困難となる。
【０００５】
図８は、キャッシュの空間的及び時間的な地域性の性質を概念的に示したものである。図８において、Ｘ軸はメモリ参照が生じたアドレス、Ｙ軸は参照の確率を表わしている。図８は、メモリ領域における各情報への参照確率と、参照される情報のブロックサイズとの関係を示すものである。図から明らかなように、Ａ番地の情報への情報参照が生じると、空間的な地域性の傾向に従いＡ番地と隣接した領域の情報はプロセッサによって参照される確率が高く、Ａ番地から遠ざかるほど、プロセッサによって参照される確率は低い。したがって、この性質によってＡ番地を頂点とする特性曲線を表わすことが出来る。図８に示すように、大きいブロック22を持たせてキャッシュを構成する場合と、小さいブロック20を持たせてキャッシュを構成する場合とで、前述した２種類の地域性の反映は次のようになる。大きいブロック22を有するようキャッシュメモリが構成されると、情報への参照に対しキャッシュミスが生じた場合、大きいブロック22によってより大量の情報を一度に取り出すことは、小さいブロック20に従う小さい量だけの情報を取り出すことに比して、空間的な地域性は十分に反映されるものの、ブロック内に存在する情報の平均的な参照確率は低下し、一定のキャッシュメモリサイズを有するキャッシュメモリシステムの場合は、時間的な地域性の反映度が低下する。
【０００６】
さらに、小さいブロック20を有するようキャッシュメモリが構成されると、大きいブロック22からなる場合に比して、キャッシュミスの生じた情報により近接した小さい量の情報のみ取り出すので、小さいブロック20内に存在する情報の平均的な参照確率は高まり、時間的な地域性は十分に反映されるものの、空間的な地域性の反映度が低下する。このように、空間的な地域性と時間的な地域性とは、キャッシュブロックのサイズを決める上で、互いに相反する要素として作用する。従って、前述した２種類の地域性を考慮して、最適のブロックサイズを決める研究がなされており、この研究の結果に基づいて適宜なサイズの、単一のブロックサイズを有するようキャッシュメモリを構成してきた。
【０００７】
ところが、上述のように単一のキャッシュブロックサイズを有するよう構成されたキャッシュメモリシステムでは、空間的な地域性及び時間的な地域性を反映させるにあたって、システムの性能が低下するという欠点がある。この欠点を解決するために、空間的な地域性及び時間的な地域性を各々反映させる空間的キャッシュと時間的キャッシュとを別途に備えるデュアルデータキャッシュに対する研究がなされてきた。このデュアルキャッシュを利用する研究は、如何なる参照が空間的な地域性を有し、時間的な地域性を有するかを区分することにより、当該地域性が反映されるキャッシュに該当する情報を格納する方法を採っている。
【０００８】
図９は、従来のキャッシュメモリシステムの構成を示すブロック図である。従来のキャッシュメモリシステム（ＩＣＳ；International Conference on Supercomputing '95, Pages 338-347 参照）は、中央処理装置33と、情報を記憶している記憶装置34と、中央処理装置33の参照する情報が格納される空間的キャッシュ30及び時間的キャッシュ31と、キャッシュミス時に以前に参照された情報を用いて記憶装置34からの情報を空間的キャッシュ30と時間的キャッシュ31のうち、いずれの方に書き込むかを決める予想処理部32と、中央処理装置33が情報を参照するよう空間的キャッシュ30と時間的キャッシュ31とを選択するマルチプレクサ35と、予想処理部32の制御によって記憶装置34からの情報を空間的キャッシュ30及び時間的キャッシュ31に提供するよう選択するデマルチプレクサ36とで構成される。
【０００９】
このように構成される従来のシステムは、予想処理部32に格納された情報に基づいて、記憶装置34から中央処理装置33が提供する情報を空間的キャッシュ30と時間的キャッシュ31のいずれに格納するかを判断し、空間的キャッシュ30と時間的キャッシュ31とに選択的に書き込むことにより、性能を向上するように構成されている。予想処理部32で情報を書き込む各エントリは、命令アドレス、最終アドレス、変位（Stride）、長さ、状態及び予想値などの項目で構成される。予想処理部32は、同じ命令アドレスで発生されたデータ参照同士のアドレスの差を利用することにより変位を求め、この変位により得られた情報を空間的キャッシュ30と時間的キャッシュ31のいずれに書き込むかを判断する根拠として提供する。
【００１０】
例えば、Ａ番地の命令語によってＢ番地の情報が参照され、Ａ番地の命令語が以降に遂行される時にＢ＋αが参照され、それ以降に、Ａ番地の命令語が遂行される時、Ｂ＋２α番地の情報が参照されれば、Ａ番地の命令語が参照する情報のアドレスは、Ｂ番地からαを変数とする一定の変位を有すると予想処理部32は判断する。そうすると、αによって一定の変位を有すると判断される情報は、変位の値に応じて空間的キャッシュ30、または時間的キャッシュ31に区分されて格納される。つまり、予想処理部32エントリは、中央処理装置33で発生された命令アドレスによって検索され、この命令アドレスによって参照される情報のアドレスは、予想処理部32に具備される最終アドレスの項目に格納される。従って、予想処理部32の変位項目には、特定のアドレスの命令語によって現在参照された情報のアドレスと直前に参照された情報のアドレスとの差が格納される。
【００１１】
例えば、この変位によるＢ、Ｂ＋α、Ｂ＋２αなどの一定の変位によって連続的に参照される３回の参照が一定の段階を有する場合にのみ、情報参照が空間的または時間的な地域性のうち如何なる地域性を有するかに対する予測が可能となり、これにより、情報を空間的キャッシュ30と時間的キャッシュ31のいずれに書き込むかに対する判断がなされる。上述のように、一定の変位によって決まった地域性の性質に応じて、該当情報が空間的キャッシュ30または時間的キャッシュ31に格納されることにより、性能の向上が期待できる。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
ところが、上記のように構成される従来のキャッシュメモリシステムは、全体の情報参照のうちに一定の変位を有しない参照が発生することが多く、同じ命令語で参照される情報アドレスの変位が変化することがあるため、一定の変位を有する情報参照に対して処理を行う構造では、一定でない変位に起因して発生される情報参照によって好適な性能の向上が得られないという問題がある。そこで、本発明の目的は、キャッシュメモリの運用にあたって、空間的な地域性及び時間的な地域性を合わせて反映させるために、キャッシュ内に存在する情報の状態に応じて、キャッシュミス時に取り出される情報の量を選択的に決め、かつ取り出された情報のうち、参照確率の高い情報が参照確率の低い情報よりもキャッシュ内に長く留まるよう選択的に書き込むことによりキャッシュミスを低減させ、しかもメモリトラフィックの効率を高めるキャッシュメモリの運用方法及びそのシステムを提供するにある。
【課題を解決するための手段】
【００１３】
前記技術的課題を達成するために、本発明は、（ａ）中央制御部が参照するよう大量の情報を下位メモリ素子に格納する段階と、（ｂ）前記下位メモリ素子に格納された大量の情報から取り出される第１情報が書き込まれる第１補助記憶素子、及び前記第１情報が含まれる第２情報が書き込まれる第２補助記憶素子を用意する段階と、（ｃ）前記第１補助記憶素子または前記第２補助記憶素子に、前記中央制御部によって参照される情報が存在するか否かを判断する段階と、（ｄ）前記第１補助記憶素子に、前記中央制御部によって参照される情報が存在すれば、前記中央制御部が前記第１補助記憶素子から前記情報を参照する段階と、（ｅ）前記中央制御部によって参照される情報が前記第１補助記憶素子に存在せず、前記第２補助記憶素子に存在すれば、前記第２補助記憶素子の情報のうち、前記中央制御部が参照する情報を含む第２情報内の第１情報は前記第１補助記憶素子に移し、前記中央制御部が前記第１情報または前記第２情報から情報を参照する段階と、（ｆ）前記第１補助記憶素子及び前記第２補助記憶素子に、前記中央制御部によって参照される情報が存在しなければ、前記中央制御部によって参照される情報を含む第２情報を前記下位メモリ素子から取り出して前記第２補助記憶素子に書込み、前記第２補助記憶素子に書き込まれる前記第２情報のうち、前記中央制御部によって参照される情報を含む前記第１情報は前記第１補助記憶素子に移し、前記中央制御部が取り出された前記第１情報または前記第２情報から情報を参照する段階と、（ｇ）前記（ｅ）または（ｆ）段階において、前記第２補助記憶素子または前記下位メモリから新たに取り出された第１情報または第２情報に応じて、前記第１補助記憶素子または前記第２補助記憶素子に既存する第１情報または第２情報が書き換えられる時、前記書き換えられる第１情報を含む第２情報が第２補助記憶素子に格納されており、前記書き換えられる第１情報が前記第１補助記憶素子で更新されて、前記第２補助記憶素子に格納された前記第２情報に含まれた第１情報とは別の情報となった場合にのみ、第２補助記憶素子に格納された前記第２情報に含まれる第１情報を、前記書換えられる第１情報に更新する段階とを含むことを特徴とする。
【発明の効果】
【００１４】
本発明によれば、キャッシュ内に存在する情報の状態に基づいて、キャッシュミス時に取り出される情報の量を選択的に決め、かつ取り出された情報のうち参照確率が高い情報が参照確率が低い情報よりキャッシュ内に長く留まるよう選択的に格納することにより、空間的な地域性及び時間的な地域性を併せて反映させるので、キャッシュミスが低減でき、これにより、メモリトラフィックの効率を高めてメモリシステムの性能を向上させる効果がある。
【発明を実施するための最良の形態】
【００１５】
以下、添付された図面に基づいて本発明の好適な実施の形態をさらに詳細に説明する。図１（Ａ）は、本発明に係るキャッシュメモリシステムのブロック図で、図１（Ｂ）は、本発明で用いる第１情報と第２情報との関係を示すものである。また図２は、図１（Ａ）のキャッシュメモリシステムのブロック図に従う流れ図である。図１（Ａ）及び（Ｂ）を参照すれば、本発明は、中央制御部40、下位メモリ素子48、第１補助記憶素子42、第２補助記憶素子44及び制御手段46で構成される。下位メモリ素子48には、中央制御部40が参照するよう大量の情報が格納される。
【００１６】
第２補助記憶素子44には、中央制御部40で参照される情報を含む所定量の情報が下位メモリ素子48から第２情報402 として取り出されて格納される。第１補助記憶素子42には、中央制御部40で参照される情報を含む第２補助記憶素子44に格納された第２情報402 から、または下位メモリ素子48から取り出される第１情報401 が格納される。制御手段46は、状態記憶素子46ａとデマルチプレクサ46ｂとで構成されるが、状態記憶素子46ａは、特定の第２情報402 に含まれ第１補助記憶素子42に格納された前記第１情報401 の数を表わす状態情報を有する。デマルチプレクサ46ｂは、状態記憶素子46ａの状態情報に基づいて、第１情報401 または第２情報402 を第１補助記憶素子42及び第２補助記憶素子44に選択的に格納するよう制御を行う制御手段46によって制御される。このように構成される本発明の実施の形態を図１（Ｂ）に基づいて説明する。
【００１７】
まず、図１（Ｂ）で示すように、第２情報402 は、複数個の第１情報401 で構成され、かつ中央制御部40が情報を参照するとき、複数個の第１情報401 のうちいずれか一つの第１情報401 の一部に含まれる情報が参照される。従って、中央制御部40が参照する情報は第１情報401 に含まれ、かつ第１情報401 は第２情報402 に含まれる。また、中央制御部40によって参照される情報を含む一つの第１情報401 は、下位メモリ素子48から、または第２補助記憶素子44に格納される第２情報402 から取り出されて、第１補助記憶素子42に格納される。中央制御部40によって参照される情報を含む第１情報401 と、他の第１情報401 とによって構成される第２情報402 は、下位メモリ素子48から取り出されて、第２補助記憶素子44に格納される。
【００１８】
このように、中央制御部40によって下位メモリ素子48から情報を取り出して第２補助記憶素子44に書き込む場合、下位メモリ素子48から取り出されて第２補助記憶素子44に書き込まれた第２情報402 のうち、中央制御部40によって参照される情報を含む一つの第１情報401 は、第２補助記憶素子44から第１補助記憶素子42に移されて、格納される。このように、第１補助記憶素子42は第１情報401 を記憶する記憶素子であり、第２補助記憶素子44は第２情報402 を記憶する記憶素子である。
【００１９】
以上のような第１情報401 と第２情報402 との関係に基づき、本発明を図２を参照しながら説明する。階層的なメモリ構造上において、図示しない外部装置（Ｉ／Ｏ Device）によって大量のデータである情報が主メモリまたはキャッシュメモリとしての下位メモリ素子48に格納され（ステップ100 ）、下位メモリ素子48に格納された情報はＣＰＵまたはプロセッサである中央制御部40によって読み出されて参照される。下位メモリ素子48に格納された大量の情報から取り出される第１情報401 が書き込まれる第１補助記憶素子42、及び第１情報401 が含まれる第２情報402 が書き込まれる第２補助記憶素子44が用意される（ステップ200 ）。
【００２０】
中央制御部40によって参照される情報が第１補助記憶素子42または第２補助記憶素子44に存在するか、あるいは中央制御部40によって参照される情報を含む第１情報401 を含む第２情報402 内において、参照される情報を含んでいない第１情報401 が第１補助記憶素子42に存在するか否かによって、下位メモリ素子48から第１情報401 、または第２情報402 を選択的に取り出し、第１情報401 または第２情報402 を第１補助記憶素子42及び第２補助記憶素子44に選択的に格納する（ステップ400 ）。第１補助記憶素子42は時間的な地域性を主に反映させるために構成されたＴＯＣ（Temporal Oriented Cache）メモリであり、一方第２補助記憶素子44は空間的な地域性を主に反映させるために構成されたＳＯＣ（Spatial Oriented Cache）メモリである。
【００２１】
中央制御部40によって、ＴＯＣメモリである第１補助記憶素子42とＳＯＣメモリである第２補助記憶素子44とに格納された情報が参照されるが、第１補助記憶素子42または第２補助記憶素子44に、中央制御部40が参照しようとする情報が存在しなければ、中央制御部40による参照がキャッシュメモリから参照され得ないキャッシュミスとして、下位メモリ素子48から中央制御部40が参照しようとする情報を取り出す。状態記憶素子46ａを含んでなる制御素子46は、中央制御部40によって参照されるために下位メモリ素子48から取り出される第１情報401 または第２情報402 を、第１補助記憶素子42または第２補助記憶素子44のいずれに格納するかを制御するデマルチプレクサ46ｂを含む。好ましくは、第１補助記憶素子42に格納される第１情報401 は16−64バイトの範囲で設定され、一方第２補助記憶素子44に格納される第２情報402 は64−512バイトの範囲で設定されるが、第２補助記憶素子44に格納される第２情報402 のサイズは第１情報401 のサイズの２の倍数となる。
【００２２】
例えば、第１補助記憶素子42に格納される第１情報401 のサイズが16バイトであり、この16バイトを一つの第１情報401 ブロックとするとき、第２補助記憶素子44に格納される第２情報402 のサイズは64バイトとなり、第１補助記憶素子42に格納される第１情報401 ブロックの４倍のブロックとなる。下位メモリ素子48から第１情報401 及び第２情報402 が取り出される場合、各情報のブロックは、第１補助記憶素子42及び第２補助記憶素子44に格納される情報ブロックの基本単位となる。
【００２３】
好適な実施の形態として、以下では、下位メモリ素子48から読み取られて格納される情報ブロックの基本単位が、第１補助記憶素子42では32バイトサイズが一つの情報の基本単位となる情報ブロックとして、また第２補助記憶素子44では第１補助記憶素子42のサイズの４倍に当る128 バイトサイズが一つの情報の基本単位となる情報ブロックとして説明される。さらに、情報ブロックを構成する基本単位が第１補助記憶素子42の４倍となるように設定された第２補助記憶素子44に書き込まれる第２情報402 はＳＯＣブロックで、かつ第１補助記憶素子42に書き込まれる第１情報401 はＴＯＣブロックである。なお、ＳＯＣ及びＴＯＣブロックである第２情報402 と第１情報401 の大きさは、好適な実施の形態として、第１情報401 が16−64バイト、第２情報402 は64−512 バイトである場合を仮定したが、各情報の大きさはプロセッサに存在するキャッシュメモリの容量に応じて変わりうる。
【００２４】
ＳＯＣブロックである第２情報402 の大きさは、ＴＯＣブロックである第１情報401 より大で、かつ第２補助記憶素子44が格納しうる第２情報402 の数は、第１補助記憶素子42が格納しうる第１情報401 の数と、第２補助記憶素子44の連関度及び第１補助記憶素子42の連関度の比が互いに乗算された結果値より小さく構成される。例えば、第１補助記憶素子が格納しうる第１情報の数が512 個で、第２補助記憶素子の連関度が８で、かつ第１補助記憶素子の連関度が１である場合、第２補助記憶素子が格納しうる第２情報の数は512×８によって計算された 4,096個より少なく構成される。
【００２５】
一方、第２補助記憶素子44に存在するＳＯＣブロックの数が小さければ、一つのキャッシュブロックに転送されるメモリブロックの数が上がり、多くのキャッシュ衝突ミス（conflict miss）が発生可能である。このキャッシュ衝突ミスに起因するキャッシュメモリシステムの性能の低下を防ぐために、第２補助記憶素子44の連関度を第１補助記憶素子42の連関度より高く構成する。
【００２６】
図３は、本発明に係る状態記憶素子及びキャッシュミスアドレスを示す図である。図３に示すように、状態記憶素子46ａはＮ個のエントリを有し、直接写像キャッシュの構造となる場合を実施の形態として説明する。特定の第２情報402 に含まれ、第１補助記憶素子42に格納された第１情報401の数をエントリとして記憶する状態記憶素子46ａは、この特定の第２情報402 アドレスにより中央制御部40からアクセスされる。これにより、キャッシュミスアドレス600 の最下位ビットからlog2 BSOC (BSOC ：第２補助記憶素子のブロックサイズ)のビット数だけをオフセット部65にし、その上位ビットからlog2N （Ｎは状態記憶素子のエントリ数である）のビット数だけのインデックス部64を利用して、Ｎ個の状態記憶素子46ａのエントリのうち一つのエントリを選択し、その上位の残りビットをタグアドレス部63にして、状態記憶素子46ａのタグ部60に書き込む。
【００２７】
中央制御部40によって状態記憶素子46ａがアクセスされる場合、キャッシュミスアドレス600 によるタグアドレス部63と、インデックス部64によって選ばれた状態記憶素子46ａのエントリに格納されたタグ部60とを比較することにより、選ばれたエントリが特定の第２情報402 に該当するエントリであるか否かを判断する。タグアドレス部63によって指定される状態記憶素子46ａの各エントリは、エントリが格納している情報が如何なる第２情報402 に関するものであるかを示すタグ部60と、如何なる第２情報402 に含まれ、第１補助記憶素子42に格納された第１情報401 の数を示すカウント部61と、エントリが有効であるか否かを示す有無効部62とで構成される。
【００２８】
カウント部61に格納されるカウント値は、カウント部61のカウント値が“０”であれば、第１補助記憶素子42に特定の第２情報402 に含まれる第１情報401 、つまり、ＴＯＣブロックが存在しないことを表わし、カウント部61の値が“０”でなくて、“１”以上であれば、第１補助記憶素子42に特定の第２情報402 に含まれる第１情報401 が前記値によるブロックの数だけ存在していることを表わす。好ましくは、状態記憶素子46ａのエントリは最大Ｎ個まで構成可能であるが、このＮは、第１補助記憶素子42に格納されうる第１情報401 の数である。
【００２９】
図４は、本発明に係る選択的な格納方法を示す流れ図である。図２で説明したステップ400 は、図４に示すように、状態記憶素子を用意する段階（470）、参照される情報が存在するか否かを判断する段階（460）、第１情報を参照する段階（410）、第２情報を参照する段階（420）、カウント値が少なくとも１以上であるかどうかを判断する段階（430）、下位メモリ素子から第１情報を取り出す段階（440）、及び下位メモリ素子から第２情報を取り出す段階（450）で構成される。
【００３０】
まず、制御手段46の状態記憶素子46ａは、特定の第２情報402 に含まれ、第１補助記憶素子42に格納された第１情報401 の数を表わす状態情報を有する（ステップ470 ）。中央制御部40が参照する情報を第１補助記憶素子42または第２補助記憶素子44に書き込む場合、選択テーブルである制御手段46内の状態記憶素子46ａに格納された状態情報を参照し、これによって第１補助記憶素子42または第２補助記憶素子44のうちいずれに中央制御部40によって参照される情報を書き込むかを、また下位メモリ素子48から第１情報401 または第２情報402 のうちいずれの情報を取り出すかを選択する。
【００３１】
一方、第１補助記憶素子42または第２補助記憶素子44に、中央制御部40によって参照される情報が存在するか否かを判断する（ステップ460 ）。第１補助記憶素子42に、中央制御部40によって参照される情報を含む第１情報401 が存在する場合、中央制御部40が第１補助記憶素子42の第１情報401 から前記情報を参照する（ステップ410 ）。中央制御部40によって参照される情報が第１補助記憶素子42に存在せず、第２補助記憶素子44に存在する場合、参照される第２補助記憶素子44の情報のうち、中央制御部40が参照する情報を含む第１情報401 は第１補助記憶素子42に移し、中央制御部40が第１情報401 または第２情報402 から情報を参照する（ステップ420 ）。これにより、第１補助記憶素子42に第１情報401 が加わったことを表わすために、第１情報401 を含む第２情報402 に関する情報を有する状態記憶素子46ａのエントリのカウント部61に格納されたカウント値を＋１だけ上げることにより、状態情報を更新する。
【００３２】
状態記憶素子46ａに、特定の第２情報402 に含まれ、第１補助記憶素子42に存在する第１情報401 の数を表わすカウント部61を有するエントリが存在しなければ、新たなエントリを割り当て、カウント部61のカウント値を１に初期化する。状態記憶素子46ａへのアクセスは、中央制御部40によって情報を参照する時キャッシュでキャッシュミスが生じた場合、参照しようとする情報のアドレスであるキャッシュミスアドレス600 によって行われる。第１補助記憶素子42及び第２補助記憶素子44に、中央制御部40によって参照される情報が存在しない場合、状態情報を参照するために参照される情報のアドレスであるキャッシュミスアドレスによって状態記憶素子46ａのカウント部61のカウント値を判断する（ステップ430 ）。
【００３３】
この状態情報に基づいて、中央制御部40によって参照される情報を含む第１情報401 を含む第２情報402 内で、参照される情報を含んでいない第１情報401 が第１補助記憶素子42に存在するか否かを判断することができる。つまり、第１補助記憶素子42内で、中央制御部によって参照される情報を含む第２情報402 に含まれる第１情報401 の数を表わす状態記憶素子46ａのカウント部61のカウント値を検査する。中央制御部によって参照される情報を含む第２情報402 に関する状態記憶素子のエントリが存在しないか、あるいは前記カウント値が“０”であれば、第１補助記憶素子42内に中央制御部40によって参照される情報を含む第２情報402 に含まれる第１情報401 がないことを、また少なくとも“１”以上であれば、中央制御部40によって参照される情報を含む第２情報402 に含まれる第１情報401 が少なくても一つ存在することを表わす。中央制御部40によって参照される情報を含む第１情報401 を含む第２情報402内に、参照される情報を含んでいない第１情報401 が状態情報に基づいて第１補助記憶素子42に存在すると判断されれば、中央制御部40によって参照される情報を含む前記第１情報401 を下位メモリ素子48から取り出して、第１補助記憶素子42に格納する（ステップ440 ）。
【００３４】
なお、中央制御部40が下位メモリ素子48から取り出された第１情報401 から情報を参照し、第１補助記憶素子42に第１情報401 が移されて加わったことを表わすために、第１情報401 を含む第２情報402 に関する情報を有する状態記憶素子46ａエントリのカウント部61に格納されたカウント値を＋１だけ上げることにより、状態情報を更新する。中央制御部40によって参照される情報を含む第１情報401 を含む第２情報402内に、参照される情報を含んでいない第１情報401 が状態情報に基づいて、第１補助記憶素子に存在しないと判断されれば、中央制御部40によって参照される情報を含む第２情報402 を下位メモリ素子48から取り出して、第２補助記憶素子44に格納する（ステップ450 ）。これにより、第２補助記憶素子44に格納された第２情報402 のうち、中央制御部40によって参照される情報を含む第１情報401 は第１補助記憶素子42に移されて格納される。
【００３５】
また、中央制御部40が取り出された第１情報401 または第２情報402 から情報を参照し、第１補助記憶素子42に第１情報401 が移されて加わったことを表わすために、第１情報401 を含む第２情報402 に関する情報を有する状態記憶素子46ａのエントリのカウント部61に格納されたカウント値を＋１だけ上げることにより、状態情報を更新する。カウント部61のカウント値は、第１補助記憶素子42に格納される第１情報401が中央制御部40によって別の第１情報401 に書換えられる時、書換えられる第１情報401 を含む第２情報402 に関する情報を有する状態記憶素子46ａのエントリのカウント部61のカウント値を１だけ下げることにより、特定の第２情報402 に含まれる第１情報401 が第１補助記憶素子42に幾つ存在するかに関する状態情報が保たれる。
【００３６】
一方、カウント部61を用いた判断の基準となるカウント値は、好適な実施の形態として、特定の第２情報402 に含まれる第１情報401 が第１補助記憶素子42に存在するか否かを表わす“０”によって判断されると設定したが、特定の第２情報402 のうち、第１情報401 が第１補助記憶素子42に幾つ格納されているかに応じて“０”以外の“１”、そして“２”などの自然数となる値を判断の基準として設定することにより、前記第２情報402 と第１情報401 のうちいずれの情報を下位メモリ素子48から取り出して格納するかを決めることができる。
【００３７】
従って、前記判断のための上限として設定される値は、１から第２情報402 のブロックサイズを第１情報401 のブロックサイズにて除算した分に該当する数までの値より選択でき、好適な実施の形態として、本発明では、前記設定される値が第２情報402 のブロックサイズが第１情報401 のブロックサイズにて除算した分に該当する４とする。
【００３８】
特に、前記上限値を設定して利用する場合、中央制御部40が補助記憶素子で情報を参照し得ないためキャッシュミスが生じると、前記実施の形態で中央制御部40は、状態記憶素子46ａの情報を下位メモリ素子48から取り出される情報のサイズを決めるための判断の基準とした。しかしながら、第２情報402 のブロックサイズを第１情報401 のブロックサイズで除算した分に該当する数によって前記上限値を設定した場合は、常に第２情報402 を下位メモリ素子から取り出すことになるので、状態記憶素子46ａを備えなくて済む。従って、中央制御部40が補助記憶素子で情報を参照し得ないためキャッシュミスが生じると、中央制御部40によって参照される情報を含む第２情報402 を下位メモリ素子48から取り出して第２補助記憶素子44に書込み、第２補助記憶素子44に格納される第２情報402 のうち中央制御部40によって参照される情報を含む第１情報401 は第１補助記憶素子42に移し、中央制御部40は取り出された第１情報401 または第２情報402 から情報を参照する。
【００３９】
このように、第２補助記憶素子44または下位メモリ素子48から新たに取り出された第１情報401 または第２情報402 によって第１補助記憶素子42または第２補助記憶素子44に既存する第１情報401 または第２情報402 が書換えられる時、書換えられる第１情報401 を含む第２情報402 が第２補助記憶素子44に格納されており、かつ書換えられる第１情報401 が第１補助記憶素子42で更新されて第２補助記憶素子44に格納された第２情報402 に含まれた第１情報とは別の情報となった場合にのみ、第２補助記憶素子44に格納された第２情報402 に含まれる第１情報401 を書換えられる第１情報に更新する。一方、階層的なメモリ構造において、中央制御部40が補助記憶素子で情報を参照し得ないためキャッシュミスが生じる場合、前述した好適な実施の形態で、中央制御部40は状態記憶素子46ａの情報を下位メモリ素子から取り出される情報のサイズを決めるための判断の基準としたが、状態記憶素子46ａの情報に代えて、下位メモリ素子に中央制御部40が参照しようとする情報を含む第１情報401 及び第２情報402 が存在するか否かが判断の基準となるよう、その判断の基準が変わることもある。好ましくは、下位階層メモリ情報の基本単位を構成するブロックまたはページ等よりなる情報ブロックのサイズがＳＯＣ情報ブロックである第２情報402 より大きいか同一であるのが良い。一方、本発明は好適な実施の形態では、第１補助記憶素子42と第２補助記憶素子44とを分けて構成したが、別の実施の形態として、第１補助記憶素子42と第２補助記憶素子44を分けずに、一つの補助記憶素子として備えても良い。
【００４０】
このような実施の形態では、中央制御部40によって参照される情報が補助記憶素子にないためキャッシュミスが生じた場合、中央制御部40が参照しようとする情報を含む第２情報402 内に、参照される情報を含んでいない第１情報401 が単一の補助記憶素子に存在するか否かに応じて、下位メモリ素子48から第１情報401 または第２情報402 を選択的に取り出し、第１情報401 または第２情報402 を単一の補助記憶素子に選択的に格納する。中央制御部40が参照しようとする情報が補助記憶素子にないためキャッシュアクセスミスが生じて、中央制御部40が参照しようとする情報を含む第２情報402を取り出す場合、中央制御部40が参照しようとする情報を含む第１情報401 と別の第１情報401 とは補助記憶素子の連関度に応じて互いに別々の書換状態を有するよう格納される。つまり、補助記憶素子の連関度が２以上であれば、中央制御部40が参照しようとする情報を含む第１情報401 は同じ連関集まりで最も遅く書換えられるような書換情報を有し、残り第１情報401 は該当連関集まりで早く書換えられる書換情報を有するよう格納される。
【００４１】
図５は、本発明で使用された各変数を示すもので、図６は、キャッシュメモリの性能比較を示すものである。図５及び図６に示すように、本発明のキャッシュメモリシステムと別のキャッシュメモリシステムとの性能を比較するために、下記の式で表わしたＭＣＰＩ（Memory Cycles Per Instruction）を使い、図５に示すように、キャッシュのサイズ及び構成を変えながら、性能評価を行った。図６には、Tomcatv(Type:CFP95, Total data reference:50, 139, 075)ベンチマークによる性能評価の結果が示してある。図６において、縦軸はＭＣＰＩを表わし、横軸はキャッシュサイズを表わす。各キャッシュメモリのサイズに該当するグラフにおいて、最左側の棒グラフは32バイトサイズのブロックを有する既存のキャッシュシステムのＭＣＰＩを表わし、残り４つの棒グラフはＴＯＣブロックサイズを32バイトに設定し、ＳＯＣブロックサイズを64、128 、256 、512 バイトに設定した場合のＭＣＰＩを示している。ＳＯＣ及びＴＯＣブロックのサイズは、全キャッシュメモリサイズの１／２に設定し、ＴＯＣは直接写像（Direct-mapped）キャッシュに設定し、かつＳＯＣブロックの連関度は８にした。
ＭＣＰＩ＝(データ参照によって遅延されたサイクルの総数)/(データ参照の総数)
＝（ミスの数＊ミスペナルティ）／（データ参照の総数）
＝ミス率＊（遅延時間＋ブロックサイズ／転送率）
【図面の簡単な説明】
【００４２】
【図１】（Ａ）は本発明に係るキャッシュメモリシステムのブロック図、（Ｂ）は本発明に係る第１情報と第２情報との関係を示す図。
【図２】図１のキャッシュメモリシステムの流れ図。
【図３】本発明に係る状態記憶素子及びキャッシュミスアドレスを示す図。
【図４】本発明に係る選択的な格納方法を示す流れ図。
【図５】本発明で使用された各変数を示す図表。
【図６】キャッシュメモリの性能比較を示す図。
【図７】階層的なメモリ構造を示す図。
【図８】キャッシュの空間的及び時間的な地域性を説明する図。
【図９】従来のキャッシュメモリシステムのブロック図。
【符号の説明】
【００４３】
４０：中央制御部
４２：第１補助記憶素子
４４：第２補助記憶素子
４６：制御手段
４８：下位メモリ素子
【図１】
2007004835.tif 000003
【図２】
2007004835.tif 000004
【図３】
2007004835.tif 000005
【図４】
2007004835.tif 000006
【図５】
2007004835.tif 000007
【図６】
2007004835.tif 000008
【図７】
2007004835.tif 000009
【図８】
2007004835.tif 000010
【図９】
2007004835.tif 000011