(57)【要約】  【課題】  リプレース対象がクリーンな場合、無効化しない方式のCPUのキャッシュメモリにおいて、処理が可能な後続ムーブイン要求が先行ムーブイン要求により待機させられるケースを削減させ処理効率を向上させる。  【解決手段】  MIB内に、ムーブイン要求に対するリプレースアドレスの上位アドレス部情報を持たせると共に、リプレース先の有効性の有無についての情報を持たせ、前記要求のアドレスとMIB内に登録されている先行ムーブイン要求のアドレスとにおけるインデックス及び上位アドレス部が共に一致していない場合を判断する第１判断部（ステップＳ４１）と、ムーブイン要求のアドレスとMIB内のリプレースアドレスとにおけるインデックス及び上位アドレス部が共に一致していない場合を判断する第３判断部（ステップＳ４２）とを備え、これらの判断結果が共に肯定的であり、且つリプレース先が有効である場合に、ムーブイン要求に対する処理を続行するタグ検索部（ステップＳ４３）とを備える。  【選択図】  図４
2006039937.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュメモリに対するムーブイン要求に対して先行する先行ムーブイン要求がキャッシュミスを起こしムーブインバッファを獲得している場合にキャッシュメモリの制御を行うキャッシュメモリ制御回路であって、
ムーブイン要求のアドレスとムーブインバッファ内に登録されている先行ムーブイン要求のアドレスとにおけるインデックス及び上位アドレス部が共に一致していない場合を判断する第１判断部と、
前記第１判断部による判断が肯定的であった場合に、前記ムーブイン要求に対する処理を続行する第１処理部と
を備えるキャッシュメモリ制御回路。
【請求項２】
請求項１に記載のキャッシュメモリ制御回路において、
前記第１判断部による判断が否定的であった場合に、前記ムーブイン要求に対する処理を待ち状態にすることを特徴とするキャッシュメモリ制御回路。
【請求項３】
請求項１又は請求項２に記載のキャッシュメモリ制御回路において、
前記第１処理部は、
前記ムーブイン要求に対するタグ検索を行うタグ検索部と、
前記タグ検索部により、キャッシュヒットが判断された場合に、前記ムーブイン要求のアドレスにおけるインデックス及びキャッシュヒットしたキャッシュにおけるウェイと、ムーブインバッファ内に登録されている先行ムーブイン要求のアドレスにおけるインデックス及びキャッシュのリプレースウェイとが共に一致していない場合を判断する第２判断部とを備え、
前記第２判断部による判断が肯定的であった場合に前記ムーブイン要求に対する処理を続行することを特徴とするキャッシュメモリ制御回路。
【請求項４】
請求項３に記載のキャッシュメモリ制御回路において、
前記第２判断部による判断が否定的であった場合は、前記ムーブイン要求に対する処理を待ち状態にすることを特徴とするキャッシュメモリ制御回路。
【請求項５】
キャッシュメモリに対するムーブイン要求に対して先行する先行ムーブイン要求がキャッシュミスを起こしムーブインバッファを獲得している場合にキャッシュメモリの制御を行うキャッシュメモリ制御回路であって、
MIB内に、ムーブイン要求に対するリプレースアドレスの上位アドレス部の情報を持たせると共に、リプレース先の有効性の有無についての情報を持たせ、
前記ムーブイン要求のアドレスとムーブインバッファ内に登録されている先行ムーブイン要求のアドレスとにおけるインデックス及び前記上位アドレス部が共に一致していない場合を判断する第１判断部と、
前記ムーブイン要求のアドレスとMIB内に登録されたリプレースアドレスとにおけるインデックス及び上位アドレス部が共に一致していない場合を判断する第３判断部とを備え、
前記第１判断部と前記第３判断部による、判断結果が共に肯定的であり、且つ前記リプレース先が有効である場合に、前記ムーブイン要求に対する処理を続行する第２処理部と
を備えるキャッシュメモリ制御回路。
【請求項６】
キャッシュメモリに対するムーブイン要求に対して先行する先行ムーブイン要求がキャッシュミスを起こしムーブインバッファを獲得している場合にキャッシュメモリの制御を行うキャッシュメモリ制御方法であって、
ムーブイン要求のアドレスとムーブインバッファ内に登録されている先行ムーブイン要求のアドレスとにおけるインデックス及び上位アドレス部が共に一致していない場合を判断する第１判断ステップと、
前記第１判断ステップによる判断が肯定的であった場合に、前記ムーブイン要求に対する処理を続行する第１処理ステップと
を備えるキャッシュメモリ制御方法。
【請求項７】
請求項６に記載のキャッシュメモリ制御方法において、
前記第１判断ステップによる判断が否定的であった場合に、前記ムーブイン要求に対する処理を待ち状態にすることを特徴とするキャッシュメモリ制御方法。
【請求項８】
請求項６又は請求項７に記載のキャッシュメモリ制御方法において、
前記第１処理ステップは、
前記ムーブイン要求に対するタグ検索を行うタグ検索ステップと、
前記タグ検索ステップにより、キャッシュヒットが判断された場合に、前記ムーブイン要求のアドレスにおけるインデックス及びキャッシュヒットしたキャッシュにおけるウェイと、ムーブインバッファ内に登録されている先行ムーブイン要求のアドレスにおけるインデックス及びキャッシュのリプレースウェイとが共に一致していない場合を判断する第２判断ステップとを備え、
前記第２判断ステップによる判断が肯定的であった場合に前記ムーブイン要求に対する処理を続行することを特徴とするキャッシュメモリ制御方法。
【請求項９】
請求項８に記載のキャッシュメモリ制御回路において、
前記第２判断ステップによる判断が否定的であった場合は、前記ムーブイン要求に対する処理を待ち状態にすることを特徴とするキャッシュメモリ制御方法。
【請求項１０】
キャッシュメモリに対するムーブイン要求に対して先行する先行ムーブイン要求がキャッシュミスを起こしムーブインバッファを獲得している場合にキャッシュメモリの制御を行うキャッシュメモリ制御方法であって、
MIB内に、ムーブイン要求に対するリプレースアドレスの上位アドレス部の情報を持たせると共に、リプレース先の有効性の有無についての情報を持たせ、
前記ムーブイン要求のアドレスとムーブインバッファ内に登録されている先行ムーブイン要求のアドレスとにおけるインデックス及び前記上位アドレス部が共に一致していない場合を判断すると共に、前記ムーブイン要求のアドレスとMIB内に登録されたリプレースアドレスとにおけるインデックス及び上位アドレス部が共に一致していない場合を判断する第３判断ステップとを備え、
前記第３判断ステップによる、判断結果が肯定的であり、且つ前記リプレース先が有効である場合に、前記ムーブイン要求に対する処理を続行する第２処理ステップと
を備えるキャッシュメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、CPUのキャッシュメモリを制御するキャッシュメモリ制御回路及びキャッシュメモリ制御方法に関する。
【背景技術】
【０００２】
図８はCPU全体の概略構成を示すブロック回路図である。図８ではCPU１とCPU２のそれぞれが、L１キャッシュ（ファーストキャッシュ）とL２キャッシュ（セカンドキャッシュ）の２階層のキャッシュを内蔵してSC（システムコントローラ）３へ接続され、SC３がメモリ（MEMORY）４に接続されている構成を示している。この構成におけるキャッシュメモリ制御動作は次のように行われる。
【０００３】
L1キャッシュからのムーブイン要求がL2キャッシュのパイプラインを流れ、タグ検索部（タグ部）にて要求データのタグが検索された結果、L2キャッシュのキャッシュミス（L2キャッシュミス）であれば（Ｓ１）、MIB（ムーブインバッファ）を獲得しSC３へムーブイン要求が発行される（Ｓ２）。SC３は主記憶または他系CPUからデータを応答し、L2キャッシュへの登録とMIBの開放を行うとともに（Ｓ３）、L1キャッシュへのデータ応答を行う（Ｓ４）。
【０００４】
図９は上述の動作を行うキャッシュ制御部を示すブロック図である。図９に示すMIポート（MI-PORT）１１はL1キャッシュからの新規リクエストを格納し、MOポート（MO-PORT）１２はL1キャッシュからL2キャッシュへの応答やL1キャッシュからのムーブアウトデータを格納し、SCポート（SC-PORT）１３はSC３からのオーダーを格納する内部資源である。
【０００５】
プライオリティ部（PRIORITY）１４では、各資源の優位性を考慮してコマンドをパイプライン（PIPE LINE）１５へと投入する。パイプライン１５では投入されたコマンドのアドレスでタグ検索部（タグ部）１６によりタグ（TAG）の検索を行う。L2キャッシュにヒットすればL1キャッシュに要求されたデータが返され、キャッシュミスの時はMIB１７が獲得されてSC３にムーブイン要求が発行される。この時、同時にMIB３に登録された先行するムーブイン要求との情報比較がなされ処理が続行可能かどうかの判断が行われる。
【０００６】
一般的にムーブイン要求（後続）と先行する先行ムーブイン要求のインデックス（index）が一致した場合、リプレースブロックの保護、キャッシュコヒーレンシの保証の為に後続のムーブイン要求は、先行ムーブイン要求に対する処理が完了し、MIB１７が開放されるまで待たされる。この時の処理のフローを図１０に示す。図１０によれば、後続のムーブイン要求のインデックスとMIBに登録されている先行ムーブイン要求とのインデックスが一致していない場合が判断され（ステップＳ１１）、判断結果が肯定的でない場合（ステップＳ１１、ＮＯ）は後続の処理は待機させられる。
【０００７】
一方、結果が肯定的であった場合（ステップＳ１１、ＹＥＳ）は、処理は続行され、タグ検索が行われて（ステップＳ１２）その検索結果に応じて（ステップＳ１２、ヒット，ミス）それぞれの処理が行われる。
【０００８】
この場合、後続のムーブイン要求がキャッシュヒットして実際には処理が可能な要求であった場合（処理を行っても不具合が生じない場合）でも、MIB１７が開放されるまでその処理は待たされることとなる。なお、後続のムーブイン要求と先行のムーブイン要求のインデックスが一致しない場合、タグ検索を行った結果に基づいて、処理が行われる。
【０００９】
タグ検索部（タグ部）１６におけるタグの検索方法を図１１に示す。タグの検索はまず要求アドレス１００内のインデックス（index）１１０で一致をとり、いずれのブロックに該当するかを確定し、その後、上位アドレス部１２０の一致をとることで、いずれの６４バイト（BITE）かの特定を行う。MIB１７の構成を図１２に示す。MIBは要求アドレス１００、登録ウェイ及びリプレースウェイ２００、そしてその他のフラグ３００で構成されている。
【００１０】
MIポート１１からのムーブイン要求に対するTAG検索部１６の検索結果がキャッシュミスであった場合、MIB１７を獲得してムーブイン要求に係るデータを格納し、SC３へとムーブイン要求を発行する。この時、すれ違いによるスヌープ処理に対して正しく応答する為に、リプレース対象を全てリプレースバッファ（MODQ）へと退避させる方式もあるが、リプレース対象がclean victim（上書き、変更されておらず、ライトバックの必要がない）である場合は、MODQ資源を無駄に獲得することとなる。そこで、リプレース対象がclean victimであるならリプレースバッファ（MODQ）へと退避させず、キャッシュを無効化しないことで、すれ違いのスヌープ処理に応答する方式を採用している。
【００１１】
前述の先行するムーブイン要求であって、MIB１７に格納されたムーブイン要求に係るインデックスと後続のムーブイン要求に係るインデックスのインデックスマッチを行う場合、キャッシュヒットしていても待機させられる後続が多数存在してしまう。そこで、処理続行可能なものは処理できるようにする制御回路や方法が要望される。
【００１２】
このような場合において、先行ムーブイン要求がキャッシュミスを起こしMIB１７を獲得時、MIポート１１から更なる後続のムーブイン要求が発行されると、先行のリプレース対象がclean victimである場合ヒットしてしまう。これを解決する為に従来技術では以下の様にしていた。
【００１３】
まず、リプレース対象のキャッシュ状態を細かく分けてみる。キャッシュミスが発生時、リプレース対象のブロックがdirty victim（上書き、変更され、ライトバックの義務があるブロック）である場合、タグを無効化しMODQへとデータの書き込みを行う。リプレースデータはシステムからの要求によりMODQから読み込まれメモリへとライトバックされる。
【００１４】
dirty victimはタグが無効化されてもすれ違いによるスヌープ処理に対して正しく応答する必要があるため、MIB１７獲得時にWBA（リプレースアドレス）も保持し、キャッシュヒットしなくてもMIB１７のWBAとスヌープ要求が一致する場合はリプレースデータのあるMODQからデータが応答される。
【００１５】
一方、clean victim（ライトバックの義務がなく、かつ、無効でないブロック）はメモリへのライトバックの必要がないため、新規のキャッシュの登録によって上書きされる。この場合、システム側でムーブイン要求を受け取って、キャッシュタグコピーに新規登録が行われた時点（clean victimが消えた時点）で、以後の処理ではclean victimがないものとして扱われる。ところがキャッシュ側ではそのタイミングを知ることができないので、キャッシュミスをした時点ではキャッシュ内のclean victimの使用は不可能である。
【００１６】
また、ストア要求が共有状態のキャッシュにヒットすると排他権を求めてシステムにブロックタイプチェンジ（ブロックタイプの変更許可）を発行する。ストアの際には他で同一ブロックを持っていてはいけないので、この時先行ストア要求と同一ブロックの共有キャッシュに後続要求がヒットしてもキャッシュコヒーレンシを保証する為にストア実行まで後続要求を待機させなければならない。
【００１７】
このようなシステムにおいて、MIB１７とインデックスマッチする際でも、処理を継続して何ら不具合が生じない場合は、その処理を継続できるように、キャッシュヒットした際のキャッシュ状態によってムーブインが可能であるかを判断する。このフローを図１３に示す。キャッシュミス検出時点でdirty victimの場合は無効化されているはずなので、dirtyなブロックにヒットした場合（ステップＳ２１）はMIBの先行リクエストと全く異なるウェイを対象としている。よって処理が可能であるので、この場合（ステップＳ２１、ＹＥＳ）のみMIBのインデックスが一致した後続の処理続行を可能としている。cleanなブロックの場合は上記の理由でタグの状態からは判断できないので処理ができない。
【００１８】
なお、従来の技術として、下記特許文献が知られている（特許文献１参照）。
【特許文献１】特開２００２−２２９８５２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１９】
cleanなブロックにキャッシュヒットした場合、それが先行のclean victim、あるいはブロックタイプチェンジのケースであれば処理が不可能であるが、それ以外のcleanなブロックなら処理を行っても不具合は何ら生じない。ところが従来の技術では、タグから判断するものであるので、そのようなケースを判断することができず、後続の処理は一括してMIB開放まで待たされざるを得ない。
【００２０】
また、タグの検索結果に基づいて判断するため、その読み出しに時間を要し、一時的に別の処理の起動や資源の確保を行うこととなって、他のリクエストの処理を妨げてしまうという問題点もある。
【００２１】
本発明は、上述した問題点を解決するためになされたものであり、MIBとインデックスマッチする場合において、後続のムーブイン要求がcleanなブロックにヒットした場合に、後続の処理の続行を行っても差し支えないケースを判断可能とすることにより、処理可能な後続処理が一律に待機させられるケースを軽減し、もって処理の効率化を図ることができるとともに、その後続要求に対する処理においてキャッシュヒットの有無の判断時間を短縮することができ、もって、後続処理が継続できないケースにおいても、その判断を迅速に行えることができるキャッシュメモリ制御回路及びキャッシュメモリ制御方法を提供することを目的としている。
【課題を解決するための手段】
【００２２】
上述した課題を解決するため、本発明は、キャッシュメモリに対するムーブイン要求に対して先行する先行ムーブイン要求がキャッシュミスを起こしムーブインバッファを獲得している場合にキャッシュメモリの制御を行うキャッシュメモリ制御回路であって、ムーブイン要求のアドレスとムーブインバッファ内に登録されている先行ムーブイン要求のアドレスとにおけるインデックス及び上位アドレス部が共に一致していない場合を判断する第１判断部と、前記第１判断部による判断が肯定的であった場合に、前記ムーブイン要求に対する処理を続行する第１処理部とを備えるものである。
【００２３】
また、本発明は、上記キャッシュメモリ制御回路において、前記第１判断部による判断が否定的であった場合に、前記ムーブイン要求に対する処理を待ち状態にすることを特徴とする。
【００２４】
また、本発明は、上記キャッシュメモリ制御回路において、前記第１処理部は、前記ムーブイン要求に対するタグ検索を行うタグ検索部と、前記タグ検索部により、キャッシュヒットが判断された場合に、前記ムーブイン要求のアドレスにおけるインデックス及びキャッシュヒットしたキャッシュにおけるウェイと、ムーブインバッファ内に登録されている先行ムーブイン要求のアドレスにおけるインデックス及びキャッシュのリプレースウェイとが共に一致していない場合を判断する第２判断部とを備え、前記第２判断部による判断が肯定的であった場合に前記ムーブイン要求に対する処理を続行することを特徴とする。
【００２５】
また、本発明は、上記キャッシュメモリ制御回路において、前記第２判断部による判断が否定的であった場合は、前記ムーブイン要求に対する処理を待ち状態にすることを特徴とする。
【００２６】
また、本発明は、キャッシュメモリに対するムーブイン要求に対して先行する先行ムーブイン要求がキャッシュミスを起こしムーブインバッファを獲得している場合にキャッシュメモリの制御を行うキャッシュメモリ制御回路であって、MIB内に、ムーブイン要求に対するリプレースアドレスの上位アドレス部の情報を持たせると共に、リプレース先の有効性の有無についての情報を持たせ、前記ムーブイン要求のアドレスとムーブインバッファ内に登録されている先行ムーブイン要求のアドレスとにおけるインデックス及び前記上位アドレス部が共に一致していない場合を判断する第１判断部と、前記ムーブイン要求のアドレスとMIB内に登録されたリプレースアドレスとにおけるインデックス及び上位アドレス部が共に一致していない場合を判断する第３判断部とを備え、前記第１判断部と前記第３判断部による、判断結果が共に肯定的であり、且つ前記リプレース先が有効である場合に、前記ムーブイン要求に対する処理を続行する第２処理部とを備えるものである。
【００２７】
また、本発明は、キャッシュメモリに対するムーブイン要求に対して先行する先行ムーブイン要求がキャッシュミスを起こしムーブインバッファを獲得している場合にキャッシュメモリの制御を行うキャッシュメモリ制御方法であって、ムーブイン要求のアドレスとムーブインバッファ内に登録されている先行ムーブイン要求のアドレスとにおけるインデックス及び上位アドレス部が共に一致していない場合を判断する第１判断ステップと、前記第１判断ステップによる判断が肯定的であった場合に、前記ムーブイン要求に対する処理を続行する第１処理ステップとを備えるものである。
【００２８】
また、本発明は、上記キャッシュメモリ制御方法において、前記第１判断ステップによる判断が否定的であった場合に、前記ムーブイン要求に対する処理を待ち状態にすることを特徴とする。
【００２９】
また、本発明は、上記キャッシュメモリ制御方法において、前記第１処理ステップは、前記ムーブイン要求に対するタグ検索を行うタグ検索ステップと、前記タグ検索ステップにより、キャッシュヒットが判断された場合に、前記ムーブイン要求のアドレスにおけるインデックス及びキャッシュヒットしたキャッシュにおけるウェイと、ムーブインバッファ内に登録されている先行ムーブイン要求のアドレスにおけるインデックス及びキャッシュのリプレースウェイとが共に一致していない場合を判断する第２判断ステップとを備え、前記第２判断ステップによる判断が肯定的であった場合に前記ムーブイン要求に対する処理を続行することを特徴とする。
【００３０】
また、本発明は、上記キャッシュメモリ制御方法において、前記第２判断ステップによる判断が否定的であった場合は、前記ムーブイン要求に対する処理を待ち状態にすることを特徴とする。
【００３１】
また、本発明は、キャッシュメモリに対するムーブイン要求に対して先行する先行ムーブイン要求がキャッシュミスを起こしムーブインバッファを獲得している場合にキャッシュメモリの制御を行うキャッシュメモリ制御方法であって、MIB内に、ムーブイン要求に対するリプレースアドレスの上位アドレス部の情報を持たせると共に、リプレース先の有効性の有無についての情報を持たせ、前記ムーブイン要求のアドレスとムーブインバッファ内に登録されている先行ムーブイン要求のアドレスとにおけるインデックス及び前記上位アドレス部が共に一致していない場合を判断すると共に、前記ムーブイン要求のアドレスとMIB内に登録されたリプレースアドレスとにおけるインデックス及び上位アドレス部が共に一致していない場合を判断する第３判断ステップとを備え、前記第３判断ステップによる、判断結果が肯定的であり、且つ前記リプレース先が有効である場合に、前記ムーブイン要求に対する処理を続行する第２処理ステップとを備えるものである。
【発明の効果】
【００３２】
本発明によれば、従来技術では先行処理が終わるのを待って処理されていた、実際には処理が可能なcleanブロックへキャッシュヒットした後続要求処理を、何ら物量を増やすことなく、継続とすることができ、もって、後続の要求に対する処理の効率化を図ることができる。また、ムーブイン要求時の最初の段階で異なるウェイが対象であるか否かを判断できるので、従来技術のようにキャッシュヒットまで待たずとも処理が不可能なケースが判明する。それによりムーブイン要求発生時から処理継続不可能な場合が判断されるまでの間に、無駄な処理の起動、資源の獲得が行われることを軽減させることができる。
【発明を実施するための最良の形態】
【００３３】
以下、本発明の実施の形態について図面を参照しつつ説明する。
【００３４】
上述したように、ムーブイン要求（後続ムーブイン要求）に係る処理対象となるウェイが先行ムーブインのそれと異なるものであれば、後続ムーブイン要求に係る処理を続行しても何等不具合が生じることはなく、その処理は続行可能である。従来ではこれをキャッシュヒット時にキャッシュ状態を確認することで行っていた。本発明では、この処理が可能かどうかの判断を先行の要求アドレスのキャッシュ状況でなくウェイの状況を見ることで行うようにしたものである。以下説明する。
【００３５】
図１は本発明の実施の形態におけるキャッシュメモリ制御回路を示すブロック図である。この回路においては、L2キャッシュのタグ検索部１６による検索結果、キャッシュヒットした場合は、L2キャッシュのデータ部１８からデータがL1キャッシュに応答される。一方、キャッシュミスした場合は、L2キャッシュのMIB１７が獲得され、SC３にムーブイン要求が出される。ここで、本制御回路のマッチ回路２１がL1キャッシュとL2キャッシュのMIB１７との間に設けらる。マッチ回路２１では、それらからの後述する所定の情報を比較し、マッチングする所定の場合にアボートをパイプラインに出力する。アボートが出力されない場合は後続のムーブイン要求に係る処理が続行される。
実施の形態１．
以下、上記構成における、本発明の実施の形態１について説明する。図２は実施の形態１の動作を示すフローチャートであり、その具体的回路構成を図３に示す。
【００３６】
まず、L１キャッシュからのムーブイン要求に係る要求アドレスとMIBに登録されている先行ムーブイン要求に係る要求アドレスとにおけるインデックスと上位アドレス部が夫々一致していない場合を判断し（ステップＳ３１）、判断結果が否定的である（一致している）場合（ステップＳ３１，ＮＯ）は、ムーブイン要求に係るウェイが一致することとなるので、処理を待機させるべくアボート情報を出力し、先行ムーブイン要求において獲得されたMIBが開放されるまで処理待ち状態となる。
【００３７】
一方、判断結果が肯定的である（一致していない）場合（ステップＳ３１，ＹＥＳ）は、処理を続行するべくタグ検索を行い（ステップＳ３２）、タグ検索の結果、キャッシュミスの場合はムーブイン要求をSCに出力する。
【００３８】
タグ検索の結果、キャッシュヒットした場合は、そのヒットウェイを獲得し、ムーブイン要求に係る要求アドレスのインデックスとヒットウェイとがMIBに登録されているインデックスとキャッシュへのムーブインウェイとの夫々にマッチ回路において比較され（ステップＳ３３：一致しない場合が判断され）、一致する場合（結果が否定的である場合）はやはり先行ムーブイン要求において獲得されたMIBが開放されるまで処理待ち状態となる。
【００３９】
上記比較において、一致しないと判断された場合（結果が肯定的である場合）は、処理が続行され、L2キャッシュのデータがL1キャッシュに応答される。
【００４０】
図３における回路図において、第１一致回路４１は、その第１入力端子にムーブイン要求に係る要求アドレスのインデックス及びその上位アドレス部に関する情報を入力し、その第２入力端子にMIBに登録されている先行ムーブイン要求に係る要求アドレスにおけるインデックスとその上位アドレス部に関する情報を入力する。そして、第１一致回路４１は、ムーブイン要求に係る要求アドレスとMIBに登録されている先行ムーブイン要求に係る要求アドレスとにおけるインデックスと上位アドレス部が夫々一致しているか否かを判断し（一致していない場合を判断し）、一致している場合（結果が否定的である場合）に「１」を出力する。
【００４１】
第２一致回路４２は、その第１入力端子にムーブイン要求に係る要求アドレスのインデックス及びそのヒットウェイに関する情報を入力し、その第２入力端子にMIBに登録されている先行ムーブイン要求に係る要求アドレスにおけるインデックスとそのリプレースウェイに関する情報を入力する。そして、第２一致回路４２は、ムーブイン要求に係る要求アドレスのインデックスとヒットウェイがMIBに登録されている先行ムーブイン要求に係る要求アドレスのインデックスとリプレースアドレスに夫々一致しているか否かを判断し（一致していない場合を判断し）、一致している場合（結果が否定的である場合）に「１」を出力する。
【００４２】
そして、いずれかに該当する場合にオア回路４３からアボートが出力され、処理が待機される。
【００４３】
実施の形態１においては、従来では一括して処理を待機させていたclean なブロックについても、処理が可能なものは全て処理できる。但し、この場合、キャッシュヒット時に処理続行が可能かどうかはヒットウェイを獲得するまで分からない。この間、無駄な資源の確保や処理の起動を行ってしまう。そこで、次の実施の形態２が構成される。
実施の形態２．
図４は実施の形態２における動作を示すフローチャートであり、図５はその場合のマッチ回路を示す図である。実施の形態２では、後続要求のアドレスと先行する要求のアドレスの比較の時点で、後続の要求アドレスと先行のリプレースアドレスとの比較を同時に行う。このため実施の形態２においては、図６に示されるように、MIBの構成において要求アドレス１００、登録ウェイ及びリプレースウェイ２００、その他のフラグ３００に加えてリプレースアドレスの上位アドレス部領域４００を加える。さらに、例えば、このリプレースアドレスが保持される際にリプレース先の状態が有効であるかのフラグ（dirty victimとclean victimのOR）を持たせるようにする。
【００４４】
図４の動作について説明すると、まず要求アドレスとMIBに登録された先行する要求アドレスのインデックスと上位アドレス部が夫々一致しない場合を判断するステップ（ステップＳ４１）と共に、リプレース先が有効である場合に要求アドレスとMIBのリプレース先アドレスのインデックスと上位アドレス部を夫々一致しない場合を判断するステップ（ステップＳ４２）を実行し、双方の判断結果が肯定的である場合（共に一致しない場合（ステップＳ４１及びステップＳ４２，ＹＥＳ））に処理を続行し、タグ検索を行う（ステップＳ４３）。少なくともいずれかにおいて一致があった場合（ステップＳ４１又はステップＳ４２，ＮＯ）はアボートを出力し、処理を待機させる。
【００４５】
図５においては、第３一致回路５１と第４一致回路５２それぞれの第１端子にムーブイン要求に係る要求アドレスのインデックスと上位アドレス部に関する情報が入力され、第３一致回路５１の第２端子にMIBの要求アドレスにおけるインデックスと上位アドレス部に関する情報が入力され、第４一致回路５２の第２端子にMIBのリプレースアドレスについてのインデックスと上位アドレス部に関する情報が入力される。また、ＯＲ回路５３において、リプレース先の状態が有効であるかのフラグ（dirty victimとclean victimのOR）を出力し、アンド回路５４において、第４一致回路５２とＯＲ回路５３の論理積（ＡＮＤ）をとって、その出力と第３一致回路５１との論理和をとり、その出力によりアボートを出力するように構成する。なお、ＯＲ回路５５の二入力の同期を図るためにバッファ回路５６がアンド回路５４に対応して設けられている。
【００４６】
ステップＳ４１，４２における判断はそれぞれ、
(a)、アドレス６４バイトが一致したか。
【００４７】
(b)、リプレースアドレス６４バイトが一致し、かつリプレース先の状態が有効であるかについての判断となる。
【００４８】
いずれかの条件が成立する場合、後続ムーブインは先行と同じウェイを対象としていることになるのでアボートを通知する。
【００４９】
ステップＳ４１、ステップＳ４２のいずれの条件も成立しない場合、後続ムーブインは先行と異なるウェイを対象としている。このケースは後続の処理が可能であるので処理の続行を許可する。同時にタグ検索においてキャッシュがヒットしたかの判定を行い、ヒットした場合は処理を行う。
【００５０】
上述したように、実施の形態２では、最初に要求アドレスとMIBの要求アドレスとの比較をとる時点でリプレース先のアドレスとの比較も同時に行っているので、これによりキャッシュヒット後にヒットウェイとMIBのリプレースウェイの比較を行う必要がなくなる。
【００５１】
どちらかに一致した場合、先行要求と後続要求のウェイが一致することになるので、処理ができないことがこの時点で判明する。どちらにも一致しなかった場合、ウェイが異なることが明らかとなるのでタグ検索の結果を待ち、キャッシュヒットすれば即処理が可能となる。
【００５２】
これにより、従来技術と比較して、より多くのケースを救済する事ができ、しかも、より早い段階で処理続行の可否が判明する為、無駄な資源の確保や処理の起動を最小限に抑えることができる。
【００５３】
また、図６に示されるように、実施の形態２では、MIB内にリプレースアドレス４００と要求アドレス１００を持つこととなるが、インデックス部は共通するので、実際にはインデックス部、要求アドレスのインデックス部以外、リプレースアドレスのインデックス部以外のアドレス指定領域で済む。更にシステムによっては、リプレース中のスヌープ処理を正しく行うために元々リプレースアドレスを保持するものもあるので、その場合更に物量のインパクトは非常に小さいものとなる。
【００５４】
以上の動作をタイムチャートで示すと図７のように示される。従来の技術における動作を示す図１４と比較すると、先行するL2リクエスト（REQ-1）に対して、後続のL2リクエスト（REQ-2）の処理が極めて迅速的に且つ効率的に行われることが明白である。
【図面の簡単な説明】
【００５５】
【図１】図１は本発明の実施の形態におけるキャッシュメモリ制御回路を示すブロック図である。
【図２】実施の形態１の動作を示すフローチャートである。
【図３】実施の形態１のマッチ回路の具体的構成を示す回路図である。
【図４】実施の形態２における動作を示すフローチャートである。
【図５】実施の形態２のマッチ回路の具体的構成を示す回路図である。
【図６】実施の形態２のMIB構成を示す図である。
【図７】実施の形態２の動作を概念的に示すタイムチャートである。
【図８】CPU全体の概略構成を示すブロック回路図である。
【図９】一般的なキャッシュメモリ制御部を示すブロック図である。
【図１０】従来のキャッシュメモリ制御方法その１を示すフローチャートである。
【図１１】従来のタグ検索方法を示す概念図である。
【図１２】従来のMIBの構成を示す図である。
【図１３】従来のキャッシュメモリ制御方法その２を示すフローチャートである。
【図１４】従来のキャッシュメモリ制御動作を概念的に示すタイムチャートである。
【符号の説明】
【００５６】
１，２  ＣＰＵ、３  システムコントローラ（SC）、４  メモリ、１６  タグ検索部（タグ部）、１７  MIB（ムーブインバッファ）、１８  L2キャッシュデータ部、２１  マッチ回路、４１  第１一致回路、４２  第２一致回路、５１  第３一致回路、５２  第４一致回路、５３  ＯＲ回路、５４  アンド回路、５５  ＯＲ回路、５６  バッファ回路。
【図１】
2006039937.tif 000003
【図２】
2006039937.tif 000004
【図３】
2006039937.tif 000005
【図４】
2006039937.tif 000006
【図５】
2006039937.tif 000007
【図６】
2006039937.tif 000008
【図７】
2006039937.tif 000009
【図８】
2006039937.tif 000010
【図９】
2006039937.tif 000011
【図１０】
2006039937.tif 000012
【図１１】
2006039937.tif 000013
【図１２】
2006039937.tif 000014
【図１３】
2006039937.tif 000015
【図１４】
2006039937.tif 000016