(57)【要約】【課題】キャッシュメモリにおいて簡易な構造を用いて、先行するメモリへのアクセスの応答を待たずに後続のアクセスを発行させる。【解決手段】キャッシュメモリのタグ記憶部２２０の各エントリにおいて、タグアドレス２２１、バリッド２２２、ダーティ２２３に加えて、保留中２２４を記憶する。あるキャッシュラインにアクセスしようとする際に、保留中２２４が保留状態にある旨を示している場合には、そのアクセスは保留状態が解除されるまで待機される。これにより、異なるキャッシュラインであれば、先行アクセスのミス処理中に後続アクセスがヒットした場合（ヒット・アンダー・ミス）のみならず、先行アクセスのミス処理中にさらに後続アクセスのミス処理が生じた場合（ミス・アンダー・ミス）も処理を継続する。【選択図】図５
2010033480.tif 000002
【特許請求の範囲】
【請求項１】
アクセスアドレスの第１のアドレス部分によってタグアドレスおよび保留中表示部を含む複数のエントリのうち少なくとも一つが索引されるタグ記憶部と、
前記複数のエントリに対応するデータを記憶するデータ記憶部と、
前記第１のアドレス部分とは異なる前記アクセスアドレスの第２のアドレス部分と前記索引されたエントリに含まれる前記タグアドレスとを比較して一致したエントリを検出し、前記一致したエントリに含まれる前記保留中表示部が保留中である旨を表示している場合には前記アクセスアドレスに係るアクセスを待機させるタグ制御部と、
前記一致したエントリに含まれる前記保留中表示部が保留中でない旨を表示している場合には前記一致したエントリに対応するデータを前記データ記憶部から選択するデータ制御部と
を具備するキャッシュメモリ。
【請求項２】
前記タグ制御部は、前記一致したエントリが検出されない場合には前記索引されたエントリの中でそのエントリに含まれる前記保留中表示部が保留中でない旨を表示しているエントリを優先してリプレースを行う
請求項１記載のキャッシュメモリ。
【請求項３】
前記タグ制御部は、リプレースの対象となったエントリに含まれる前記保留中表示部が保留中である旨を表示している場合には前記リプレースを待機させる
請求項２記載のキャッシュメモリ。
【請求項４】
アクセスアドレスの第１のアドレス部分によってタグアドレスおよび保留中表示部を含む複数のエントリのうち少なくとも一つが索引されるタグ記憶部と、
前記第１のアドレス部分とは異なる前記アクセスアドレスの第２のアドレス部分と前記索引されたエントリに含まれる前記タグアドレスとを比較して一致したエントリを検出し、前記一致したエントリに含まれる前記保留中表示部が保留中である旨を表示している場合には前記アクセスアドレスに係るアクセスを待機させるタグ制御部と
を具備するキャッシュメモリ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュメモリに関し、特に先行するメモリへのアクセスの応答を待たずに後続のアクセスを発行可能なキャッシュメモリ、および、その制御装置に関する。
【背景技術】
【０００２】
これまで、プロセッサからメインメモリへのアクセス頻度をいかに減らすかという方策の一つとして、キャッシュメモリが用いられてきた。これは、プロセッサ処理速度の向上度合いに比べて、対メインメモリアクセス完了時間短縮化の向上度合いが小さいため、検討されてきたものである。メインメモリは、容量当たりのコストが比較的安価ではあるが、アクセス完了時間が比較的長い。これに対し、キャッシュメモリは、容量当たりのコストが比較的高価ではあるが、アクセス完了時間が比較的短い。プロセッサとメインメモリの間にキャッシュメモリを介する階層化された記憶機構を設けることにより、コストの低下とアクセス完了時間の短縮化を両立させている。
【０００３】
また、昨今のプロセッサを含むシステムにおいては、複数のプロセッサを備えたものが主流となりつつある。上述の記憶機構の階層化が進み、二次キャッシュや三次キャッシュが用いられ、さらにその二次あるいは三次キャッシュは、複数のプロセッサが共有する記憶装置となる場合がある。
【０００４】
プロセッサがキャッシュメモリへアクセスする際、所望のデータがキャッシュメモリ上にあることが望ましいが、実際にはキャッシュメモリ上に所望のデータが存在せずに、キャッシュミスとなることがある。その際、そのキャッシュメモリがメインメモリよりも一段のみプロセッサ寄りであった場合、キャッシュメモリからメインメモリへのアクセスが発生する。
【０００５】
このキャッシュメモリが複数のプロセッサにより共有されていた場合、メインメモリへのアクセス中に、その完了までいかにシステム全体として動作を中断させずに効率良く処理を実行できるかが問題となる。その対策として、以下のような手法が採られる可能性がある。
（１）そのキャッシュメモリへの後続アクセスがキャッシュヒットであった場合は処理を続行する（ヒット・アンダー・ミス）。
（２）上述の（１）に加えて、そのキャッシュメモリへの後続アクセスがキャッシュミスであった場合も処理を続行する（ミス・アンダー・ミス）。
【０００６】
その際、メインメモリへアクセスしているアドレスと、キャッシュメモリへの後続アクセスのアドレスとが同一であった場合に、無条件で後続アクセスの処理を続行するのではなく、データに矛盾が生じないよう考慮する必要がある。それを実現するためには、待ち行列を設けて記憶の一貫性（コヒーレンシー）を維持するよう制御することが考えられる。例えば、多重プロセッサ計算機システムにおいて、Ｌ１キャッシュ、Ｌ２キャッシュ、Ｌ３メモリという階層記憶を想定し、Ｌ１記憶待ち行列およびＬ２記憶待ち行列を設けて記憶の一貫性を維持するシステムが提案されている（例えば、特許文献１参照。）。
【特許文献１】特開平０１−２４６６５５号公報（第１図）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、待ち行列を設けて記憶の一貫性を維持しようとすると、メインメモリへアクセスしているアドレスとの比較回路などが必要となり、回路規模が増加して制御が複雑になるという問題がある。また、上述のミス・アンダー・ミスを実現する際には、後続のキャッシュミスを同時に許容する数は、待ち行列の数に制限されてしまうという問題がある。
【０００８】
本発明はこのような状況に鑑みてなされたものであり、キャッシュメモリにおいて簡易な構造を用いて、先行するメモリへのアクセスの応答を待たずに後続のアクセスを発行させることを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、上記課題を解決するためになされたものであり、その第１の側面は、アクセスアドレスの第１のアドレス部分によってタグアドレスおよび保留中表示部を含む複数のエントリのうち少なくとも一つが索引されるタグ記憶部と、上記複数のエントリに対応するデータを記憶するデータ記憶部と、上記第１のアドレス部分とは異なる上記アクセスアドレスの第２のアドレス部分と上記索引されたエントリに含まれる上記タグアドレスとを比較して一致したエントリを検出し、上記一致したエントリに含まれる上記保留中表示部が保留中である旨を表示している場合には上記アクセスアドレスに係るアクセスを待機させるタグ制御部と、上記一致したエントリに含まれる上記保留中表示部が保留中でない旨を表示している場合には上記一致したエントリに対応するデータを上記データ記憶部から選択するデータ制御部とを具備するキャッシュメモリである。これにより、アクセスしようとするエントリの保留中表示部が保留中でない旨を表示している場合にはそのアクセスを待機させ、それ以外であればアクセスを許容させるという作用をもたらす。
【００１０】
また、この第１の側面において、上記タグ制御部は、上記一致したエントリが検出されない場合には上記索引されたエントリの中でそのエントリに含まれる上記保留中表示部が保留中でない旨を表示しているエントリを優先してリプレースを行ってもよい。これにより、先行アクセスによるフィル処理の完了を待たないようにリプレース対象のエントリを選択させるという作用をもたらす。
【００１１】
また、この場合、上記タグ制御部は、リプレースの対象となったエントリに含まれる上記保留中表示部が保留中である旨を表示している場合には上記リプレースを待機させてもよい。すなわち、同一ラインの全てのエントリが保留中である場合には何れかのエントリを選択することになるが、その場合にはリプレースは待機されることになる。
【００１２】
また、本発明の第２の側面は、アクセスアドレスの第１のアドレス部分によってタグアドレスおよび保留中表示部を含む複数のエントリのうち少なくとも一つが索引されるタグ記憶部と、上記第１のアドレス部分とは異なる上記アクセスアドレスの第２のアドレス部分と上記索引されたエントリに含まれる上記タグアドレスとを比較して一致したエントリを検出し、上記一致したエントリに含まれる上記保留中表示部が保留中である旨を表示している場合には上記アクセスアドレスに係るアクセスを待機させるタグ制御部とを具備するキャッシュメモリ制御装置である。これにより、アクセスしようとするエントリの保留中表示部が保留中でない旨を表示している場合にはそのアクセスを待機させるという作用をもたらす。
【発明の効果】
【００１３】
本発明によれば、キャッシュメモリにおいて簡易な構造を用いて、先行するメモリへのアクセスの応答を待たずに後続のアクセスを発行させることを可能にするという優れた効果を奏し得る。
【発明を実施するための最良の形態】
【００１４】
次に本発明の実施の形態について図面を参照して詳細に説明する。
【００１５】
図１は、本発明の実施の形態における情報処理システムの一構成例を示す図である。この情報処理システムは、ｐ個（ｐは１以上の整数）のプロセッサ１００−１乃至１００−ｐ（以下、これらをまとめてプロセッサ１００と呼称する場合がある。）と、二次キャッシュ２００と、メインメモリ３００とを備える。
【００１６】
プロセッサ１００は、それぞれ内部に一次キャッシュ１１０−１乃至１１０−ｐ（以下、これらをまとめて一次キャッシュ１１０と呼称する場合がある。）を備える。これにより、プロセッサ１００は、一次キャッシュ１１０にヒットしている限りにおいては一次キャッシュ１１０を用いてデータアクセスを行うが、一次キャッシュ１１０においてミスヒットとなった場合には二次キャッシュ２００にアクセスを行う。また、プロセッサ１００は、一次キャッシュ１１０でミスヒットとなった際、二次キャッシュ２００にヒットしている限りにおいては二次キャッシュ２００を用いてデータアクセスを行う。一方、二次キャッシュ２００においてミスヒットとなった場合にはメインメモリ３００にアクセスを行う。
【００１７】
このように、本発明の実施の形態においては、プロセッサ１００のそれぞれにおける一次キャッシュ１１０、共用の二次キャッシュ２００、メインメモリ３００という３階層の記憶構造となっている。
【００１８】
図２は、本発明の実施の形態における二次キャッシュ２００の機能構成例を示す図である。この二次キャッシュ２００は、調停部２１０と、タグ記憶部２２０と、タグ制御部２３０と、データ記憶部２４０と、データ制御部２５０と、応答部２６０とを備えている。
【００１９】
調停部２１０は、プロセッサ１００−１乃至１００−ｐおよびメインメモリ３００からのアクセスを調停して、何れかにアクセス許可を付与するものである。この調停部２１０における調停としては、例えば、ラウンドロビン方式によりプロセッサ１００−１乃至１００−ｐおよびメインメモリ３００に順次割り当てていくことが考えられる。許可されたアクセスは、タグ制御部２３０に供給される。
【００２０】
タグ記憶部２２０は、複数のエントリからなるメモリであり、各エントリにタグアドレス等を保持するものである。タグアドレスは、後述するように、アクセスされたアドレスの一部を示すものである。タグ記憶部２２０の各エントリは、アクセスされたアドレスの他の一部により索引される。なお、タグ記憶部２２０は、特許請求の範囲に記載のタグ記憶部の一例である。
【００２１】
タグ制御部２３０は、アクセスされたアドレスに基づいて、タグ記憶部２２０においてアクセスすべきエントリを選択して制御するものである。このタグ制御部２３０により選択されたエントリは、データ制御部２５０に通知される。
【００２２】
データ記憶部２４０は、タグ記憶部２２０の各エントリに対応するデータを記憶するものである。このデータ記憶部２４０に記憶されるデータはキャッシュライン毎に管理され、メインメモリ３００やプロセッサ１００との間の転送もキャッシュライン毎に行われる。なお、データ記憶部２４０は、特許請求の範囲に記載のデータ記憶部の一例である。
【００２３】
データ制御部２５０は、タグ制御部２３０において選択されたエントリに応じて、データ記憶部２４０に記憶されたデータ（キャッシュライン）にアクセスするものである。リードアクセスやライトバック動作の場合には、データ記憶部２４０から読み出されたデータは応答部２６０に供給される。ライトアクセスの場合には、データ記憶部２４０から読み出されたデータの中の対応する位置にライトデータが埋め込まれて、再びデータ記憶部２４０に記憶される。
【００２４】
応答部２６０は、データ制御部２５０から供給されたデータをプロセッサ１００−１乃至１００−ｐまたはメインメモリ３００に出力するものである。プロセッサ１００からのリードアクセスに対する応答であれば、データはアクセスしたプロセッサ１００に出力される。メインメモリ３００へのライトバック動作であれば、データはメインメモリ３００に出力される。
【００２５】
図３は、本発明の実施の形態における二次キャッシュ２００の回路構成例を示す図である。ここでは、二次キャッシュ２００として、ライン数１２８、ラインサイズ６４Ｂ（バイト）の２ウェイ・セット・アソシアティブ・キャッシュを想定する。すなわち、同一インデックスアドレスに対して最大２つのキャッシュラインを記憶可能であり、各キャッシュラインに対応するデータのサイズは６４Ｂとなる。
【００２６】
メインメモリ３００の領域を２５６ＭＢとすると、必要なアドレスは２８ビットとなる。ブロックサイズが６４Ｂであるため、アクセスアドレスの第０乃至５ビットの計６ビットがライン内アドレスに割り当てられる。また、ライン数が１２８であることから、タグ記憶部２２０のエントリを索引するためのインデックスアドレスは、アクセスアドレスの第６乃至１２ビットの計７ビットに割り当てられる。したがって、タグアドレスは、アクセスアドレスの第１３乃至２７ビットの計１５ビットに割り当てられる。アクセスアドレスのうちタグアドレスは信号線２０１を介して、インデックスアドレスは信号線２０２を介して、ライン内アドレスは信号線２０３を介して、それぞれ二次キャッシュ２００に供給される。
【００２７】
タグ記憶部２２０は、それぞれ１２８個のエントリから成る２つのウェイ（ｗａｙ）＃０および＃１を備える。タグ記憶部２２０の各ウェイは、信号線２０２を介して供給されるインデックスアドレスによって索引される。したがって、この例では、２つのエントリが索引されることになる。なお、タグ記憶部２２０は、特許請求の範囲に記載のタグ制御部の一例である。
【００２８】
タグ制御部２３０は、比較器２３１および２３２と、論理和演算器２３３とを備え、タグ記憶部２２０において索引されたエントリのうちタグアドレスが一致するものを検出する。比較器２３１は、タグ記憶部２２０のウェイ＃０において索引されたエントリに含まれるタグアドレスと、信号線２０１を介して供給されたタグアドレスとを比較して一致を検出するものである。同様に、比較器２３２は、タグ記憶部２２０のウェイ＃１において索引されたエントリに含まれるタグアドレスと、信号線２０１を介して供給されたタグアドレスとを比較して一致を検出するものである。これら比較器２３１および２３２における比較結果は、論理和演算器２３３およびデータ制御部２５０に供給される。論理和演算器２３３は、比較器２３１または２３２の何れかで一致が検出された場合に、ヒットした旨を、信号線２９８を介して出力するものである。ただし、後述するように、対応するエントリのバリッドビットが無効である旨を示している場合には、ミスヒットとして判定される。
【００２９】
データ記憶部２４０は、それぞれ１２８個のキャッシュラインから成る２つのウェイ＃０および＃１を備え、タグ記憶部２２０の各エントリに対応するデータを記憶する。このデータ記憶部２４０もタグ記憶部２２０と同様に信号線２０２を介して供給されるインデックスアドレスによって索引される。これにより、２つの６４Ｂのラインデータがデータ制御部２５０に供給される。
【００３０】
データ制御部２５０は、選択器２５１および２５２を備える。選択器２５１は、データ記憶部２４０から供給された２つの６４Ｂデータの何れか一方を選択するものである。すなわち、比較器２３１において一致が検出された場合にはデータ記憶部２４０のウェイ＃０のラインデータが選択され、比較器２３２において一致が検出された場合にはデータ記憶部２４０のウェイ＃１のラインデータが選択される。ただし、後述するように、一致が検出されたエントリのバリッドビットが無効である旨を示している場合にはそのキャッシュラインのデータは選択されない。比較器２３１および２３２の何れにおいても一致が検出されない場合には、何れのキャッシュラインのデータも選択されない。なお、データ制御部２５０は、特許請求の範囲に記載のデータ制御部の一例である。
【００３１】
選択器２５２は、選択されたラインデータのうちライン内アドレスとして指定された位置のデータを選択するものである。ライン内アドレスは、信号線２０３を介して供給される。ただし、この選択器２５２の機能はプロセッサ１００側に備えるようにしてもよい。何れの場合も、ラインデータ全体またはその一部は信号線２９９を介して応答部２６０に出力される。
【００３２】
図４は、本発明の実施の形態におけるデータ記憶部２４０とメインメモリ３００との対応関係の例を示す図である。ここでは、図３の例と同様に、二次キャッシュ２００として、ライン数１２８、ブロックサイズ６４Ｂの２ウェイ・セット・アソシアティブ・キャッシュを想定する。
【００３３】
データ記憶部２４０の各キャッシュラインは、上述のようにインデックスアドレスにより索引される。第０ラインのインデックスアドレスは「０」、第１ラインのインデックスアドレスは「１」であり、同様にして、第１２７ラインのインデックスアドレスは「１２７」である。
【００３４】
データ記憶部２４０の第０ラインには、アドレスの下位１３ビットが「０ｂ０００００００００００００」（「０ｂ」は、続く数字が２進数であることを意味する。以下同様。）であるラインが記憶される。データ記憶部２４０の第１ラインには、アドレスの下位１３ビットが「０ｂ００００００１００００００」であるラインが記憶される。データ記憶部２４０の第２ラインには、アドレスの下位１３ビットが「０ｂ０００００１０００００００」であるラインが記憶される。データ記憶部２４０の第３ラインには、アドレスの下位１３ビットが「０ｂ０００００１１００００００」であるラインが記憶される。データ記憶部２４０の第４ラインには、アドレスの下位１３ビットが「０ｂ００００１００００００００」であるラインが記憶される。同様に、データ記憶部２４０の第１２７ラインには、アドレスの下位１３ビットが「０ｂ１１１１１１１００００００」であるラインが記憶される。
【００３５】
すなわち、この例では、あるインデックスアドレスに対して二次キャッシュ２００に記憶可能なキャッシュラインは２つに限定されている。したがって、既に２つのキャッシュラインが占有されているセットに新たなデータを記憶するためには、何れかのキャッシュラインを追い出してリプレースする必要がある。リプレースすべきキャッシュライン候補を選択する手法として、例えば、最も近い時期に使用されていないキャッシュラインを追い出す手法（ＬＲＵ（Least Recently Used）法）が知られている。本発明の実施の形態においてもこのＬＲＵ法を基本とするが、後述するように詳細において変更を加えている。
【００３６】
図５は、本発明の実施の形態におけるタグ記憶部２２０の構成例を示す図である。タグ記憶部２２０の各エントリは、タグアドレス２２１、バリッド２２２、ダーティ２２３、および、保留中２２４の各フィールドを備える。
【００３７】
タグアドレス２２１は、そのエントリに対応するキャッシュラインのタグアドレス（アドレスの上位１５ビット）を記憶するものである。図中では、このタグアドレス２２１を「ＴＡＧ」と略している。
【００３８】
バリッド２２２は、そのエントリの有効性を示すバリッドビット（Ｖａｌｉｄ）を記憶するものである。このバリッド２２２が「１」を示していればそのエントリに対応するキャッシュラインのデータは有効であり、「０」を示していれば比較器２３１または２３２において一致が検出されたとしてもヒットとは判定されない。図中では、このバリッド２２２を「Ｖ」と略している。
【００３９】
ダーティ２２３は、そのエントリに対応するキャッシュラインのデータとメインメモリ３００のデータとが一致していないことを示すダーティービット（Ｄｉｒｔｙ）を記憶するものである。このダーティ２２３が「１」を示している場合には、そのエントリに対応するキャッシュラインのデータとメインメモリ３００のデータは一致しておらず、二次キャッシュ２００のデータが最新のデータであることを意味する。一方、ダーティ２２３が「０」を示している場合には、そのエントリに対応するキャッシュラインのデータとメインメモリ３００のデータは一致していることを意味する。図中では、このダーティ２２３を「Ｄ」と略している。
【００４０】
保留中２２４は、そのエントリに対応するキャッシュラインがメインメモリ３００からのデータ待ちの状態にあることを示す保留中ビット（Ｐｅｎｄｉｎｇ）を記憶するものである。この保留中２２４が「１」を示している場合には、そのエントリに対応するキャッシュラインはメインメモリ３００からのデータ待ちの状態にあることを意味する。一方、保留中２２４が「０」を示している場合には、そのエントリに対応するキャッシュラインに対してメインメモリ３００からデータが転送される予定はないことを意味する。図中では、この保留中２２４を「Ｐ」と略している。
【００４１】
次に、本発明の実施の形態における動作について図面を参照して説明する。なお、本発明の実施の形態においては、Ｖ＝０であって（Ｄ＝０かつＰ＝０）以外となる場合はないものと想定する。また、Ｖ＝１であって（Ｄ＝１かつＰ＝１）となる場合はないものと想定する。これらは、以下の図において「（未使用）」と表記する。
【００４２】
図６は、本発明の実施の形態における二次キャッシュ２００のリード命令に対する動作例を示す図である。このリード命令は、メインメモリ３００からのデータの読出しを行うための命令である。ただし、二次キャッシュ２００にヒットしている場合には、メインメモリ３００にアクセスすることなく、二次キャッシュ２００からデータの読出しを行うことができる。
【００４３】
比較器２３１または２３２によって何れかのエントリにおいてタグアドレスの一致が検出された場合、Ｖ＝１であれば基本的にはヒット判定となり、対応するキャッシュラインからリードが行われる。このとき、Ｄ＝１であったとしてもメインメモリ３００へのライトバックは行われない。また、Ｖ、Ｄ、Ｐの状態に変更はない。
【００４４】
ただし、タグアドレスが一致してかつＶ＝１であっても、Ｐ＝１の場合には保留状態となる。すなわち、この場合には、そのキャッシュラインがメインメモリ３００からのデータ待ち状態となっているため、すぐにはリードすることができない。そのため、Ｐ＝０になるまでリードは保留される。その間、他の命令による二次キャッシュ２００へのアクセスは受け付けられる。
【００４５】
比較器２３１および２３２の何れにおいてもタグアドレスの一致が検出されない場合、または、一致が検出されてもＶ＝０の場合には、基本的にはミスヒット判定となる。したがって、タグアドレスの一致が検出されない場合には、ＬＲＵ法などによりリプレースすべきウェイが決定され、メインメモリ３００から該当するキャッシュラインのフィル動作が行われる。このとき、Ｄ＝１であれば、リプレース前にメインメモリ３００へのライトバックも行われる。なお、一致が検出されてもＶ＝０の場合には、新たにウェイを決定する必要はないため、そのキャッシュラインにおいてメインメモリ３００からフィル動作が行われるようにしてもよい。これらの場合において、メインメモリ３００に対してフィル動作が発行された際に、Ｐ＝１に遷移する。したがって、これらの場合においては、直後の状態は、Ｖ＝１、Ｄ＝０、Ｐ＝１となる。
【００４６】
ただし、タグアドレスの一致が検出されず、かつ、Ｐ＝１の場合には、保留状態となる。すなわち、この場合には、そのキャッシュラインがメインメモリ３００からのデータ待ち状態となっているため、すぐにはリプレースすることができない。そのため、Ｐ＝０になるまでリプレースは保留される。その間、他の命令による二次キャッシュ２００へのアクセスは受け付けられる。
【００４７】
本発明の実施の形態においては、従前と同様にＬＲＵ法などによりリプレースすべきウェイが決定される。ただし、Ｐ＝１となっているキャッシュラインを除外して、Ｐ＝０となっているキャッシュラインを優先するようにしてもよい。その際、全てのウェイにおいてＰ＝１となっている場合には、それらの中からキャッシュラインが決定される。この場合には、上述のように、Ｐ＝０になるまでリプレースは保留される。
【００４８】
図７は、本発明の実施の形態における二次キャッシュ２００のライト命令に対する動作例を示す図である。このライト命令は、メインメモリ３００に対してデータの書込みを行うための命令である。ただし、二次キャッシュ２００にヒットしている場合には、メインメモリ３００にアクセスすることなく、二次キャッシュ２００に対してデータの書込みを行うことができる。
【００４９】
比較器２３１または２３２によって何れかのエントリにおいてタグアドレスの一致が検出された場合、Ｖ＝１であれば基本的にはヒット判定となり、対応するキャッシュラインにライトが行われる。このとき、Ｄ＝１であったとしてもメインメモリ３００へのライトバックは行われない。
【００５０】
ただし、タグアドレスが一致してかつＶ＝１であっても、Ｐ＝１の場合には保留状態となる。すなわち、この場合には、そのキャッシュラインがメインメモリ３００からのデータ待ち状態となっているため、すぐにはライトすることができない。そのため、Ｐ＝０になるまでライトは保留される。その間、他の命令による二次キャッシュ２００へのアクセスは受け付けられる。
【００５１】
比較器２３１および２３２の何れにおいてもタグアドレスの一致が検出されない場合、または、一致が検出されてもＶ＝０の場合には、基本的にはミスヒット判定となる。したがって、タグアドレスの一致が検出されない場合には、ＬＲＵ法などによりリプレースすべきウェイが決定され、メインメモリ３００から該当するキャッシュラインのフィル動作が行われた後にライトが行われる。このとき、Ｄ＝１であれば、リプレース前にメインメモリ３００へのライトバックも行われる。なお、一致が検出されてもＶ＝０の場合には、新たにウェイを決定する必要はないため、そのキャッシュラインにおいてメインメモリ３００からフィル動作が行われるようにしてもよい。これらの場合において、メインメモリ３００に対してフィル動作が発行された際に、Ｐ＝１に遷移する。したがって、これらの場合においては、直後の状態は、Ｖ＝１、Ｄ＝０、Ｐ＝１となる。
【００５２】
ただし、タグアドレスの一致が検出されず、かつ、Ｐ＝１の場合には、保留状態となる。すなわち、この場合には、そのキャッシュラインがメインメモリ３００からのデータ待ち状態となっているため、すぐにはリプレースすることができない。そのため、Ｐ＝０になるまでリプレースは保留される。その間、他の命令による二次キャッシュ２００へのアクセスは受け付けられる。
【００５３】
本発明の実施の形態においては、従前と同様にＬＲＵ法などによりリプレースすべきウェイが決定される。ただし、Ｐ＝１となっているキャッシュラインを除外して、Ｐ＝０となっているキャッシュラインを優先するようにしてもよい。その際、全てのウェイにおいてＰ＝１となっている場合には、それらの中からキャッシュラインが決定される。この場合には、上述のように、Ｐ＝０になるまでリプレースは保留される。
【００５４】
図８は、本発明の実施の形態における二次キャッシュ２００のフィル命令に対する動作例を示す図である。このフィル命令は、メインメモリ３００から二次キャッシュ２００にキャッシュラインをアロケートするための命令である。ただし、二次キャッシュ２００にヒットしている場合には、そのキャッシュラインをそのまま使用すればよいため、何も動作を行わない。
【００５５】
比較器２３１または２３２によって何れかのエントリにおいてタグアドレスの一致が検出された場合、Ｖ＝１であれば基本的にはヒット判定となり、何も動作を行わない。
【００５６】
ただし、タグアドレスが一致してかつＶ＝１であっても、Ｐ＝１の場合には保留状態となる。すなわち、この場合には、そのキャッシュラインがメインメモリ３００からのデータ待ち状態となっているため、すぐにはそのキャッシュラインを利用することができない。そのため、Ｐ＝０になるまでフィル命令の完了は保留される。その間、他の命令による二次キャッシュ２００へのアクセスは受け付けられる。
【００５７】
比較器２３１および２３２の何れにおいてもタグアドレスの一致が検出されない場合、または、一致が検出されてもＶ＝０の場合には、基本的にはミスヒット判定となる。したがって、タグアドレスの一致が検出されない場合には、ＬＲＵ法などによりリプレースすべきウェイが決定され、メインメモリ３００から該当するキャッシュラインのフィル動作が行われる。このとき、Ｄ＝１であれば、リプレース前にメインメモリ３００へのライトバックも行われる。なお、一致が検出されてもＶ＝０の場合には、新たにウェイを決定する必要はなく、そのキャッシュラインにおいてメインメモリ３００からフィル動作が行われるようにしてもよい。これらの場合において、メインメモリ３００に対してフィル動作が発行された際に、Ｐ＝１に遷移する。したがって、これらの場合においては、直後の状態は、Ｖ＝１、Ｄ＝０、Ｐ＝１となる。
【００５８】
ただし、タグアドレスの一致が検出されず、かつ、Ｐ＝１の場合には、保留状態となる。すなわち、この場合には、そのキャッシュラインがメインメモリ３００からのデータ待ち状態となっているため、すぐにはリプレースすることができない。そのため、Ｐ＝０になるまでリプレースは保留される。その間、他の命令による二次キャッシュ２００へのアクセスは受け付けられる。
【００５９】
本発明の実施の形態においては、従前と同様にＬＲＵ法などによりリプレースすべきウェイが決定される。ただし、その際、Ｐ＝１となっているキャッシュラインを除外して、Ｐ＝０となっているキャッシュラインを優先するようにしてもよい。その際、全てのウェイにおいてＰ＝１となっている場合には、それらの中からキャッシュラインが決定される。この場合には、上述のように、Ｐ＝０になるまでリプレースは保留される。
【００６０】
図９は、本発明の実施の形態における二次キャッシュ２００のリフィル命令に対する動作例を示す図である。このリフィル命令は、ヒットまたはミスヒットにかかわらず、メインメモリ３００から二次キャッシュ２００にキャッシュラインを新たにアロケートするための命令である。
【００６１】
比較器２３１または２３２によって何れかのエントリにおいてタグアドレスの一致が検出された場合、Ｖ＝１であれば基本的にはヒット判定となり、対応するキャッシュラインに新たにフィルが行われる。このとき、Ｄ＝１であればメインメモリ３００へのライトバックが行われる。したがって、これらの場合においては、直後の状態は、Ｖ＝１、Ｄ＝０、Ｐ＝１となる。
【００６２】
ただし、タグアドレスが一致してかつＶ＝１であっても、Ｐ＝１の場合には保留状態となる。すなわち、この場合には、そのキャッシュラインがメインメモリ３００からのデータ待ち状態となっているため、すぐにはそのキャッシュラインを利用することができない。そのため、Ｐ＝０になるまでリフィル命令の完了は保留される。その間、他の命令による二次キャッシュ２００へのアクセスは受け付けられる。
【００６３】
比較器２３１および２３２の何れにおいてもタグアドレスの一致が検出されない場合、または、一致が検出されてもＶ＝０の場合には、基本的にはミスヒット判定となる。したがって、タグアドレスの一致が検出されない場合には、ＬＲＵ法などによりリプレースすべきウェイが決定され、メインメモリ３００から該当するキャッシュラインのフィル動作が行われる。このとき、Ｄ＝１であれば、リプレース前にメインメモリ３００へのライトバックも行われる。なお、一致が検出されてもＶ＝０の場合には、新たにウェイを決定する必要はないため、そのキャッシュラインにおいてメインメモリ３００からフィル動作が行われるようにしてもよい。これらの場合において、メインメモリ３００に対してフィル動作が発行された際に、Ｐ＝１に遷移する。したがって、これらの場合においては、直後の状態は、Ｖ＝１、Ｄ＝０、Ｐ＝１となる。
【００６４】
ただし、タグアドレスの一致が検出されず、かつ、Ｐ＝１の場合には、保留状態となる。すなわち、この場合には、そのキャッシュラインがメインメモリ３００からのデータ待ち状態となっているため、すぐにはリプレースすることができない。そのため、Ｐ＝０になるまでリプレースは保留される。その間、他の命令による二次キャッシュ２００へのアクセスは受け付けられる。
【００６５】
本発明の実施の形態においては、従前と同様にＬＲＵ法などによりリプレースすべきウェイが決定される。ただし、その際、Ｐ＝１となっているキャッシュラインを除外して、Ｐ＝０となっているキャッシュラインを優先するようにしてもよい。その際、全てのウェイにおいてＰ＝１となっている場合には、それらの中からキャッシュラインが決定される。この場合には、上述のように、Ｐ＝０になるまでリプレースは保留される。
【００６６】
図１０は、本発明の実施の形態における二次キャッシュ２００のゼロアロケート命令に対する動作例を示す図である。このゼロアロケート命令は、二次キャッシュ２００のキャッシュラインにゼロ値を書き込むための命令である。なお、この命令の実行直後には、Ｖ＝１、Ｄ＝１となる。
【００６７】
比較器２３１または２３２によって何れかのエントリにおいてタグアドレスの一致が検出された場合、Ｖ＝１であれば基本的にはヒット判定となり、対応するキャッシュラインにゼロ値が書き込まれる。このとき、Ｄ＝１であったとしてもメインメモリ３００へのライトバックは行われない。
【００６８】
ただし、タグアドレスが一致してかつＶ＝１であっても、Ｐ＝１の場合には保留状態となる。すなわち、この場合には、そのキャッシュラインがメインメモリ３００からのデータ待ち状態となっているため、すぐにはゼロ値を書き込むことができない。そのため、Ｐ＝０になるまでゼロ値の書込みは保留される。その間、他の命令による二次キャッシュ２００へのアクセスは受け付けられる。
【００６９】
比較器２３１および２３２の何れにおいてもタグアドレスの一致が検出されない場合、または、一致が検出されてもＶ＝０の場合には、基本的にはミスヒット判定となる。したがって、タグアドレスの一致が検出されない場合には、ＬＲＵ法などによりリプレースすべきウェイが決定され、メインメモリ３００から該当するキャッシュラインのフィル動作が行われた後にライトが行われる。このとき、Ｄ＝１であれば、リプレース前にメインメモリ３００へのライトバックも行われる。なお、一致が検出されてもＶ＝０の場合には、新たにウェイを決定する必要はないため、そのキャッシュラインにおいてメインメモリ３００からフィル動作が行われるようにしてもよい。これらの場合において、メインメモリ３００に対してフィル動作が発行された際に、Ｐ＝１に遷移する。
【００７０】
ただし、タグアドレスの一致が検出されず、かつ、Ｐ＝１の場合には、保留状態となる。すなわち、この場合には、そのキャッシュラインがメインメモリ３００からのデータ待ち状態となっているため、すぐにはリプレースすることができない。そのため、Ｐ＝０になるまでリプレースは保留される。その間、他の命令による二次キャッシュ２００へのアクセスは受け付けられる。
【００７１】
本発明の実施の形態においては、従前と同様にＬＲＵ法などによりリプレースすべきウェイが決定される。ただし、その際、Ｐ＝１となっているキャッシュラインを除外して、Ｐ＝０となっているキャッシュラインを優先するようにしてもよい。その際、全てのウェイにおいてＰ＝１となっている場合には、それらの中からキャッシュラインが決定される。この場合には、上述のように、Ｐ＝０になるまでリプレースは保留される。
【００７２】
図１１は、本発明の実施の形態における二次キャッシュ２００のヒット・ライトバック・無効化命令に対する動作例を示す図である。このヒット・ライトバック・無効化命令は、二次キャッシュ２００にヒットした場合にＤ＝１であればライトバックし、該当ラインを無効化する命令である。ただし、二次キャッシュ２００にミスヒットした場合には、何も動作を行わない。
【００７３】
比較器２３１または２３２によって何れかのエントリにおいてタグアドレスの一致が検出された場合、Ｖ＝１であれば基本的にはヒット判定となり、対応するキャッシュラインを無効化する。このとき、Ｄ＝１であった場合には、無効化に先立ってメインメモリ３００へのライトバックが行われる。
【００７４】
ただし、タグアドレスが一致してかつＶ＝１であっても、Ｐ＝１の場合には保留状態となる。すなわち、この場合には、そのキャッシュラインがメインメモリ３００からのデータ待ち状態となっているため、すぐには無効化することができない。そのため、Ｐ＝０になるまで無効化は保留される。その間、他の命令による二次キャッシュ２００へのアクセスは受け付けられる。
【００７５】
比較器２３１および２３２の何れにおいてもタグアドレスの一致が検出されない場合、または、一致が検出されてもＶ＝０の場合には、基本的にはミスヒット判定となり、何も動作を行わない。
【００７６】
ただし、タグアドレスの一致が検出されず、かつ、Ｐ＝１の場合には、保留状態となる。すなわち、この場合には、そのキャッシュラインがメインメモリ３００からのデータ待ち状態となっているため、すぐにはそのキャッシュラインを利用することができない。そのため、Ｐ＝０になるまでヒット・ライトバック・無効化命令の完了は保留される。その間、他の命令による二次キャッシュ２００へのアクセスは受け付けられる。
【００７７】
図１２は、本発明の実施の形態における二次キャッシュ２００のヒット・ライトバック命令に対する動作例を示す図である。このヒット・ライトバック命令は、二次キャッシュ２００にヒットした場合にＤ＝１であればライトバックを行う命令である。ただし、二次キャッシュ２００にミスヒットした場合には、何も動作を行わない。
【００７８】
比較器２３１または２３２によって何れかのエントリにおいてタグアドレスの一致が検出された場合、Ｖ＝１であれば基本的にはヒット判定となる。このとき、Ｄ＝１であった場合には、メインメモリ３００へのライトバックが行われる。Ｄ＝０であった場合には、何も動作を行わない。
【００７９】
ただし、タグアドレスが一致してかつＶ＝１であっても、Ｐ＝１の場合には保留状態となる。すなわち、この場合には、そのキャッシュラインがメインメモリ３００からのデータ待ち状態となっているため、すぐにはそのキャッシュラインを利用することができない。そのため、Ｐ＝０になるまでヒット・ライトバック命令の完了は保留される。その間、他の命令による二次キャッシュ２００へのアクセスは受け付けられる。
【００８０】
比較器２３１および２３２の何れにおいてもタグアドレスの一致が検出されない場合、または、一致が検出されてもＶ＝０の場合には、基本的にはミスヒット判定となり、何も動作を行わない。
【００８１】
ただし、タグアドレスの一致が検出されず、かつ、Ｐ＝１の場合には、保留状態となる。すなわち、この場合には、そのキャッシュラインがメインメモリ３００からのデータ待ち状態となっているため、すぐにはそのキャッシュラインを利用することができない。そのため、Ｐ＝０になるまでヒット・ライトバック命令の完了は保留される。その間、他の命令による二次キャッシュ２００へのアクセスは受け付けられる。
【００８２】
図１３は、本発明の実施の形態における二次キャッシュ２００のヒット・無効化命令に対する動作例を示す図である。このヒット・無効化命令は、二次キャッシュ２００にヒットした場合に該当ラインを無効化する命令である。ただし、二次キャッシュ２００にミスヒットした場合には、何も動作を行わない。
【００８３】
比較器２３１または２３２によって何れかのエントリにおいてタグアドレスの一致が検出された場合、Ｖ＝１であれば基本的にはヒット判定となり、対応するキャッシュラインを無効化する。このとき、Ｄ＝１であったとしてもメインメモリ３００へのライトバックは行われない。
【００８４】
ただし、タグアドレスが一致してかつＶ＝１であっても、Ｐ＝１の場合には保留状態となる。すなわち、この場合には、そのキャッシュラインがメインメモリ３００からのデータ待ち状態となっているため、すぐには無効化することができない。そのため、Ｐ＝０になるまで無効化は保留される。その間、他の命令による二次キャッシュ２００へのアクセスは受け付けられる。
【００８５】
比較器２３１および２３２の何れにおいてもタグアドレスの一致が検出されない場合、または、一致が検出されてもＶ＝０の場合には、基本的にはミスヒット判定となり、何も動作を行わない。
【００８６】
ただし、タグアドレスの一致が検出されず、かつ、Ｐ＝１の場合には、保留状態となる。すなわち、この場合には、そのキャッシュラインがメインメモリ３００からのデータ待ち状態となっているため、すぐにはそのキャッシュラインを利用することができない。そのため、Ｐ＝０になるまでヒット・無効化命令の完了は保留される。その間、他の命令による二次キャッシュ２００へのアクセスは受け付けられる。
【００８７】
図１４は、本発明の実施の形態における二次キャッシュ２００のインデックス・ライトバック・無効化命令に対する動作例を示す図である。このインデックス・ライトバック・無効化命令は、指定されたキャッシュラインがＤ＝１であればライトバックし、該当キャッシュラインを無効化する命令である。ただし、指定されたキャッシュラインがＤ＝０であれば、無効化のみが行われる。したがって、このインデックス・ライトバック・無効化命令においては、タグの比較結果とは無関係に動作が行われる。
【００８８】
指定されたキャッシュラインにおいてＶ＝１であれば、そのキャッシュラインを無効化する。このとき、Ｄ＝１であった場合には、無効化に先立ってメインメモリ３００へのライトバックが行われる。
【００８９】
ただし、Ｖ＝１であっても、Ｐ＝１の場合には保留状態となる。すなわち、この場合には、そのキャッシュラインがメインメモリ３００からのデータ待ち状態となっているため、すぐには無効化することができない。そのため、Ｐ＝０になるまで無効化は保留される。その間、他の命令による二次キャッシュ２００へのアクセスは受け付けられる。
【００９０】
また、指定されたキャッシュラインにおいてＶ＝０の場合には、そのキャッシュラインは無効化される。
【００９１】
図１５は、本発明の実施の形態における二次キャッシュ２００のインデックス・ライトバック命令に対する動作例を示す図である。このインデックス・ライトバック命令は、指定されたキャッシュラインがＤ＝１であればライトバックする命令である。ただし、指定されたキャッシュラインがＤ＝０であれば、何も動作を行わない。したがって、このインデックス・ライトバック命令においては、タグの比較結果とは無関係に動作が行われる。
【００９２】
指定されたキャッシュラインにおいてＶ＝１、かつ、Ｄ＝１であった場合には、メインメモリ３００へのライトバックが行われる。一方、Ｄ＝０であった場合には、何も動作を行わない。
【００９３】
ただし、Ｖ＝１であっても、Ｐ＝１の場合には保留状態となる。すなわち、この場合には、そのキャッシュラインがメインメモリ３００からのデータ待ち状態となっているため、すぐにはそのキャッシュラインを利用することができない。そのため、Ｐ＝０になるまでインデックス・ライトバック命令の完了は保留される。その間、他の命令による二次キャッシュ２００へのアクセスは受け付けられる。
【００９４】
また、指定されたキャッシュラインにおいて、Ｖ＝０の場合には、何も動作を行わない。
【００９５】
図１６は、本発明の実施の形態における二次キャッシュ２００のインデックス・無効化命令に対する動作例を示す図である。このインデックス・無効化命令は、指定されたキャッシュラインを無効化する命令である。したがって、このインデックス・無効化命令においては、タグの比較結果とは無関係に動作が行われる。
【００９６】
指定されたキャッシュラインにおいて、Ｖ＝１であれば、そのキャッシュラインを無効化する。このとき、Ｄ＝１であったとしてもメインメモリ３００へのライトバックは行われない。
【００９７】
ただし、Ｖ＝１であっても、Ｐ＝１の場合には保留状態となる。すなわち、この場合には、そのキャッシュラインがメインメモリ３００からのデータ待ち状態となっているため、すぐには無効化することができない。そのため、Ｐ＝０になるまで無効化は保留される。その間、他の命令による二次キャッシュ２００へのアクセスは受け付けられる。
【００９８】
また、指定されたキャッシュラインにおいて、Ｖ＝０の場合には、そのキャッシュラインは無効化される。
【００９９】
図１７は、本発明の実施の形態におけるリード命令の動作の一例を示すタイミング図である。この例は、先行アクセスにより後続アクセスが保留状態となる場合を想定している。
【０１００】
プロセッサ＃１（１００−１）からリード命令が発行され、二次キャッシュ２００のタグ制御部２３０においてミスヒットの判定がされると、二次キャッシュ２００の応答部２６０からメインメモリ３００に対してキャッシュラインのフィルの指示が発行される。
【０１０１】
その後、プロセッサ＃２（１００−２）からリード命令が発行され、二次キャッシュ２００のタグ制御部２３０において保留状態であることが検出されたものとする。すなわち、プロセッサ＃１からのリード命令と同じキャッシュラインにリードアクセスしようとした場合を想定している。この場合、タグが一致し、Ｖ＝１かつＤ＝０であるが、Ｐ＝１であるため、プロセッサ＃２からのリード命令はすぐに実行することができず、待機することになる。
【０１０２】
プロセッサ＃１からのフィル指示に対して該当データが転送されると、調停部２１０において調停され、タグ記憶部２２０およびデータ記憶部２４０に反映される。そして、応答部２６０からプロセッサ＃１に対してプロセッサ＃１のリード命令に係るデータが転送される。これにより、該当するエントリにおいてＰ＝０にクリアされる。
【０１０３】
そして、Ｐ＝０に遷移したことにより、プロセッサ＃２に対しても、応答部２６０からプロセッサ＃２のリード命令に係るデータが転送される。
【０１０４】
この例では、プロセッサ＃１からのリード命令と同じキャッシュラインに、プロセッサ＃２からのリード命令がリードアクセスしようとした場合を想定したため、後者は待機されている。ただし、異なるキャッシュラインに対する他のアクセスは、記憶の一貫性が維持できる限りは、待機されることなく実行可能である。
【０１０５】
図１８は、本発明の実施の形態におけるリード命令の動作の他の一例を示すタイミング図である。この例は、先行アクセスの完了を待つことなく後続アクセスが実行される場合を想定している。
【０１０６】
プロセッサ＃１（１００−１）からリード命令が発行され、二次キャッシュ２００のタグ制御部２３０においてミスヒットの判定がされると、二次キャッシュ２００の応答部２６０からメインメモリ３００に対してキャッシュラインのフィルの指示が発行される。
【０１０７】
その後、プロセッサ＃２（１００−２）からリード命令が発行され、二次キャッシュ２００のタグ制御部２３０においてヒット判定がされたものとする。すなわち、プロセッサ＃１からのリード命令と異なるキャッシュラインにリードアクセスしようとした場合を想定している。この場合、タグが一致し、Ｖ＝１、Ｄ＝０かつＰ＝０であるため、プロセッサ＃１からのリード命令の完了を待つことなく、プロセッサ＃２からのリード命令を実行することができる。すなわち、応答部２６０からプロセッサ＃２に対して、速やかにプロセッサ＃２のリード命令に係るデータが転送される（ヒット・アンダー・ミス）。
【０１０８】
その後、プロセッサ＃１からのフィル指示に対して該当データが転送されると、調停部２１０において調停され、タグ記憶部２２０およびデータ記憶部２４０に反映される。そして、応答部２６０からプロセッサ＃１に対してプロセッサ＃１のリード命令に係るデータが転送される。これにより、該当するエントリにおいてＰ＝０にクリアされる。
【０１０９】
図１９は、本発明の実施の形態におけるリード命令の動作のさらに他の一例を示すタイミング図である。この例は、先行アクセスのミス処理中に後続アクセスのミス処理が行われる場合を想定している。
【０１１０】
プロセッサ＃１（１００−１）からリード命令が発行され、二次キャッシュ２００のタグ制御部２３０においてミスヒットの判定がされると、二次キャッシュ２００の応答部２６０からメインメモリ３００に対してキャッシュラインのフィルの指示が発行される。
【０１１１】
その後、プロセッサ＃１からのリード命令と異なるキャッシュラインについてプロセッサ＃２（１００−２）からリード命令が発行され、二次キャッシュ２００のタグ制御部２３０においてミスヒット判定がされたものとする。この場合、プロセッサ＃１からのリード命令の完了を待つことなく、二次キャッシュ２００の応答部２６０からメインメモリ３００に対してキャッシュラインのフィルの指示が発行される（ミス・アンダー・ミス）。
【０１１２】
その後、プロセッサ＃１からのフィル指示に対して該当データが転送されると、調停部２１０において調停され、タグ記憶部２２０およびデータ記憶部２４０に反映される。そして、応答部２６０からプロセッサ＃１に対してプロセッサ＃１のリード命令に係るデータが転送される。これにより、プロセッサ＃１からのリード命令に係るエントリにおいてＰ＝０にクリアされる。
【０１１３】
同様に、プロセッサ＃２からのフィル指示に対して該当データが転送されると、調停部２１０において調停され、タグ記憶部２２０およびデータ記憶部２４０に反映される。そして、応答部２６０からプロセッサ＃２に対してプロセッサ＃１のリード命令に係るデータが転送される。これにより、プロセッサ＃２からのリード命令に係るエントリにおいてＰ＝０にクリアされる。
【０１１４】
このように、本発明の実施の形態によれば、タグ記憶部２２０に保留中２２４のフィールドを設けたことにより、フィルによるデータ待ちとなっているキャッシュラインへのアクセスを保留し、それ以外のキャッシュラインへのアクセスを許容することができる。セット・アソシアティブ・キャッシュの場合、キャッシュラインの数はライン数×ウェイ数であり、図３の例では１２８×２＝２５６となる。すなわち、この例では最大で２５６アクセスを保留することができる。これはキャッシュメモリのタグ比較機構を利用したものであり、アドレス比較回路をさらに追加することなく、簡易な構成によりアクセスの保留を実現するものである。これにより、異なるキャッシュラインであれば、先行アクセスのミス処理中に後続アクセスがヒットした場合（ヒット・アンダー・ミス）のみならず、先行アクセスのミス処理中にさらに後続アクセスのミス処理（ミス・アンダー・ミス）を行うことも可能である。
【０１１５】
なお、本発明の実施の形態では、ライトバック方式の二次キャッシュを例に挙げて説明したが、本発明はこれに限定されるものではなく、例えばライトスルー方式にも適用可能である。
【０１１６】
また、本発明の実施の形態では、二次キャッシュを例に挙げて説明したが、本発明はこれに限定されるものではなく、他の階層のキャッシュメモリ（例えば、一次キャッシュ）にも適用可能である。
【０１１７】
なお、本発明の実施の形態は本発明を具現化するための一例を示したものであり、上述のように特許請求の範囲における発明特定事項とそれぞれ対応関係を有する。ただし、本発明は実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変形を施すことができる。
【０１１８】
また、本発明の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。この記録媒体として、例えば、ＣＤ（Compact Disc）、ＭＤ（MiniDisc）、ＤＶＤ（Digital Versatile Disk）、メモリカード、ブルーレイディスク（Blu-ray Disc（登録商標））等を用いることができる。
【図面の簡単な説明】
【０１１９】
【図１】本発明の実施の形態における情報処理システムの一構成例を示す図である。
【図２】本発明の実施の形態における二次キャッシュ２００の機能構成例を示す図である。
【図３】本発明の実施の形態における二次キャッシュ２００の回路構成例を示す図である。
【図４】本発明の実施の形態におけるデータ記憶部２４０とメインメモリ３００との対応関係の例を示す図である。
【図５】本発明の実施の形態におけるタグ記憶部２２０の構成例を示す図である。
【図６】本発明の実施の形態における二次キャッシュ２００のリード命令に対する動作例を示す図である。
【図７】本発明の実施の形態における二次キャッシュ２００のライト命令に対する動作例を示す図である。
【図８】本発明の実施の形態における二次キャッシュ２００のフィル命令に対する動作例を示す図である。
【図９】本発明の実施の形態における二次キャッシュ２００のリフィル命令に対する動作例を示す図である。
【図１０】本発明の実施の形態における二次キャッシュ２００のゼロアロケート命令に対する動作例を示す図である。
【図１１】本発明の実施の形態における二次キャッシュ２００のヒット・ライトバック・無効化命令に対する動作例を示す図である。
【図１２】本発明の実施の形態における二次キャッシュ２００のヒット・ライトバック命令に対する動作例を示す図である。
【図１３】本発明の実施の形態における二次キャッシュ２００のヒット・無効化命令に対する動作例を示す図である。
【図１４】本発明の実施の形態における二次キャッシュ２００のインデックス・ライトバック・無効化命令に対する動作例を示す図である。
【図１５】本発明の実施の形態における二次キャッシュ２００のインデックス・ライトバック命令に対する動作例を示す図である。
【図１６】本発明の実施の形態における二次キャッシュ２００のインデックス・無効化命令に対する動作例を示す図である。
【図１７】本発明の実施の形態におけるリード命令の動作の一例を示すタイミング図である。
【図１８】本発明の実施の形態におけるリード命令の動作の他の一例を示すタイミング図である。
【図１９】本発明の実施の形態におけるリード命令の動作のさらに他の一例を示すタイミング図である。
【符号の説明】
【０１２０】
１００−１〜ｐ  プロセッサ
１１０−１〜ｐ  一次キャッシュ
２００  二次キャッシュ
２１０  調停部
２２０  タグ記憶部
２２１  タグアドレス（ＴＡＧ）
２２２  バリッド（Ｖ）
２２３  ダーティ（Ｄ）
２２４  保留中（Ｐ）
２３０  タグ制御部
２３１、２３２  比較器
２３３  論理和演算器
２４０  データ記憶部
２５０  データ制御部
２５１、２５２  選択器
２６０  応答部
３００  メインメモリ
【図１】
2010033480.tif 000003
【図２】
2010033480.tif 000004
【図３】
2010033480.tif 000005
【図４】
2010033480.tif 000006
【図５】
2010033480.tif 000007
【図６】
2010033480.tif 000008
【図７】
2010033480.tif 000009
【図８】
2010033480.tif 000010
【図９】
2010033480.tif 000011
【図１０】
2010033480.tif 000012
【図１１】
2010033480.tif 000013
【図１２】
2010033480.tif 000014
【図１３】
2010033480.tif 000015
【図１４】
2010033480.tif 000016
【図１５】
2010033480.tif 000017
【図１６】
2010033480.tif 000018
【図１７】
2010033480.tif 000019
【図１８】
2010033480.tif 000020
【図１９】
2010033480.tif 000021