JP2006039937A - キャッシュメモリ制御回路、キャッシュメモリ制御方法 - Google Patents

キャッシュメモリ制御回路、キャッシュメモリ制御方法 Download PDF

Info

Publication number
JP2006039937A
JP2006039937A JP2004218801A JP2004218801A JP2006039937A JP 2006039937 A JP2006039937 A JP 2006039937A JP 2004218801 A JP2004218801 A JP 2004218801A JP 2004218801 A JP2004218801 A JP 2004218801A JP 2006039937 A JP2006039937 A JP 2006039937A
Authority
JP
Japan
Prior art keywords
move
request
address
cache memory
cache
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2004218801A
Other languages
English (en)
Other versions
JP4550511B2 (ja
Inventor
Koken Shimizuno
光憲 清水野
Hiroyuki Kojima
広行 小島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2004218801A priority Critical patent/JP4550511B2/ja
Priority to US10/986,868 priority patent/US7689770B2/en
Priority to EP04257180.2A priority patent/EP1622025B1/en
Publication of JP2006039937A publication Critical patent/JP2006039937A/ja
Application granted granted Critical
Publication of JP4550511B2 publication Critical patent/JP4550511B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • G06F12/0859Overlapped cache accessing, e.g. pipeline with reload from main memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means

Abstract

【課題】 リプレース対象がクリーンな場合、無効化しない方式のCPUのキャッシュメモリにおいて、処理が可能な後続ムーブイン要求が先行ムーブイン要求により待機させられるケースを削減させ処理効率を向上させる。
【解決手段】 MIB内に、ムーブイン要求に対するリプレースアドレスの上位アドレス部情報を持たせると共に、リプレース先の有効性の有無についての情報を持たせ、前記要求のアドレスとMIB内に登録されている先行ムーブイン要求のアドレスとにおけるインデックス及び上位アドレス部が共に一致していない場合を判断する第1判断部(ステップS41)と、ムーブイン要求のアドレスとMIB内のリプレースアドレスとにおけるインデックス及び上位アドレス部が共に一致していない場合を判断する第3判断部(ステップS42)とを備え、これらの判断結果が共に肯定的であり、且つリプレース先が有効である場合に、ムーブイン要求に対する処理を続行するタグ検索部(ステップS43)とを備える。
【選択図】 図4

Description

本発明は、CPUのキャッシュメモリを制御するキャッシュメモリ制御回路及びキャッシュメモリ制御方法に関する。
図8はCPU全体の概略構成を示すブロック回路図である。図8ではCPU1とCPU2のそれぞれが、L1キャッシュ(ファーストキャッシュ)とL2キャッシュ(セカンドキャッシュ)の2階層のキャッシュを内蔵してSC(システムコントローラ)3へ接続され、SC3がメモリ(MEMORY)4に接続されている構成を示している。この構成におけるキャッシュメモリ制御動作は次のように行われる。
L1キャッシュからのムーブイン要求がL2キャッシュのパイプラインを流れ、タグ検索部(タグ部)にて要求データのタグが検索された結果、L2キャッシュのキャッシュミス(L2キャッシュミス)であれば(S1)、MIB(ムーブインバッファ)を獲得しSC3へムーブイン要求が発行される(S2)。SC3は主記憶または他系CPUからデータを応答し、L2キャッシュへの登録とMIBの開放を行うとともに(S3)、L1キャッシュへのデータ応答を行う(S4)。
図9は上述の動作を行うキャッシュ制御部を示すブロック図である。図9に示すMIポート(MI-PORT)11はL1キャッシュからの新規リクエストを格納し、MOポート(MO-PORT)12はL1キャッシュからL2キャッシュへの応答やL1キャッシュからのムーブアウトデータを格納し、SCポート(SC-PORT)13はSC3からのオーダーを格納する内部資源である。
プライオリティ部(PRIORITY)14では、各資源の優位性を考慮してコマンドをパイプライン(PIPE LINE)15へと投入する。パイプライン15では投入されたコマンドのアドレスでタグ検索部(タグ部)16によりタグ(TAG)の検索を行う。L2キャッシュにヒットすればL1キャッシュに要求されたデータが返され、キャッシュミスの時はMIB17が獲得されてSC3にムーブイン要求が発行される。この時、同時にMIB3に登録された先行するムーブイン要求との情報比較がなされ処理が続行可能かどうかの判断が行われる。
一般的にムーブイン要求(後続)と先行する先行ムーブイン要求のインデックス(index)が一致した場合、リプレースブロックの保護、キャッシュコヒーレンシの保証の為に後続のムーブイン要求は、先行ムーブイン要求に対する処理が完了し、MIB17が開放されるまで待たされる。この時の処理のフローを図10に示す。図10によれば、後続のムーブイン要求のインデックスとMIBに登録されている先行ムーブイン要求とのインデックスが一致していない場合が判断され(ステップS11)、判断結果が肯定的でない場合(ステップS11、NO)は後続の処理は待機させられる。
一方、結果が肯定的であった場合(ステップS11、YES)は、処理は続行され、タグ検索が行われて(ステップS12)その検索結果に応じて(ステップS12、ヒット,ミス)それぞれの処理が行われる。
この場合、後続のムーブイン要求がキャッシュヒットして実際には処理が可能な要求であった場合(処理を行っても不具合が生じない場合)でも、MIB17が開放されるまでその処理は待たされることとなる。なお、後続のムーブイン要求と先行のムーブイン要求のインデックスが一致しない場合、タグ検索を行った結果に基づいて、処理が行われる。
タグ検索部(タグ部)16におけるタグの検索方法を図11に示す。タグの検索はまず要求アドレス100内のインデックス(index)110で一致をとり、いずれのブロックに該当するかを確定し、その後、上位アドレス部120の一致をとることで、いずれの64バイト(BITE)かの特定を行う。MIB17の構成を図12に示す。MIBは要求アドレス100、登録ウェイ及びリプレースウェイ200、そしてその他のフラグ300で構成されている。
MIポート11からのムーブイン要求に対するTAG検索部16の検索結果がキャッシュミスであった場合、MIB17を獲得してムーブイン要求に係るデータを格納し、SC3へとムーブイン要求を発行する。この時、すれ違いによるスヌープ処理に対して正しく応答する為に、リプレース対象を全てリプレースバッファ(MODQ)へと退避させる方式もあるが、リプレース対象がclean victim(上書き、変更されておらず、ライトバックの必要がない)である場合は、MODQ資源を無駄に獲得することとなる。そこで、リプレース対象がclean victimであるならリプレースバッファ(MODQ)へと退避させず、キャッシュを無効化しないことで、すれ違いのスヌープ処理に応答する方式を採用している。
前述の先行するムーブイン要求であって、MIB17に格納されたムーブイン要求に係るインデックスと後続のムーブイン要求に係るインデックスのインデックスマッチを行う場合、キャッシュヒットしていても待機させられる後続が多数存在してしまう。そこで、処理続行可能なものは処理できるようにする制御回路や方法が要望される。
このような場合において、先行ムーブイン要求がキャッシュミスを起こしMIB17を獲得時、MIポート11から更なる後続のムーブイン要求が発行されると、先行のリプレース対象がclean victimである場合ヒットしてしまう。これを解決する為に従来技術では以下の様にしていた。
まず、リプレース対象のキャッシュ状態を細かく分けてみる。キャッシュミスが発生時、リプレース対象のブロックがdirty victim(上書き、変更され、ライトバックの義務があるブロック)である場合、タグを無効化しMODQへとデータの書き込みを行う。リプレースデータはシステムからの要求によりMODQから読み込まれメモリへとライトバックされる。
dirty victimはタグが無効化されてもすれ違いによるスヌープ処理に対して正しく応答する必要があるため、MIB17獲得時にWBA(リプレースアドレス)も保持し、キャッシュヒットしなくてもMIB17のWBAとスヌープ要求が一致する場合はリプレースデータのあるMODQからデータが応答される。
一方、clean victim(ライトバックの義務がなく、かつ、無効でないブロック)はメモリへのライトバックの必要がないため、新規のキャッシュの登録によって上書きされる。この場合、システム側でムーブイン要求を受け取って、キャッシュタグコピーに新規登録が行われた時点(clean victimが消えた時点)で、以後の処理ではclean victimがないものとして扱われる。ところがキャッシュ側ではそのタイミングを知ることができないので、キャッシュミスをした時点ではキャッシュ内のclean victimの使用は不可能である。
また、ストア要求が共有状態のキャッシュにヒットすると排他権を求めてシステムにブロックタイプチェンジ(ブロックタイプの変更許可)を発行する。ストアの際には他で同一ブロックを持っていてはいけないので、この時先行ストア要求と同一ブロックの共有キャッシュに後続要求がヒットしてもキャッシュコヒーレンシを保証する為にストア実行まで後続要求を待機させなければならない。
このようなシステムにおいて、MIB17とインデックスマッチする際でも、処理を継続して何ら不具合が生じない場合は、その処理を継続できるように、キャッシュヒットした際のキャッシュ状態によってムーブインが可能であるかを判断する。このフローを図13に示す。キャッシュミス検出時点でdirty victimの場合は無効化されているはずなので、dirtyなブロックにヒットした場合(ステップS21)はMIBの先行リクエストと全く異なるウェイを対象としている。よって処理が可能であるので、この場合(ステップS21、YES)のみMIBのインデックスが一致した後続の処理続行を可能としている。cleanなブロックの場合は上記の理由でタグの状態からは判断できないので処理ができない。
なお、従来の技術として、下記特許文献が知られている(特許文献1参照)。
特開2002−229852号公報
cleanなブロックにキャッシュヒットした場合、それが先行のclean victim、あるいはブロックタイプチェンジのケースであれば処理が不可能であるが、それ以外のcleanなブロックなら処理を行っても不具合は何ら生じない。ところが従来の技術では、タグから判断するものであるので、そのようなケースを判断することができず、後続の処理は一括してMIB開放まで待たされざるを得ない。
また、タグの検索結果に基づいて判断するため、その読み出しに時間を要し、一時的に別の処理の起動や資源の確保を行うこととなって、他のリクエストの処理を妨げてしまうという問題点もある。
本発明は、上述した問題点を解決するためになされたものであり、MIBとインデックスマッチする場合において、後続のムーブイン要求がcleanなブロックにヒットした場合に、後続の処理の続行を行っても差し支えないケースを判断可能とすることにより、処理可能な後続処理が一律に待機させられるケースを軽減し、もって処理の効率化を図ることができるとともに、その後続要求に対する処理においてキャッシュヒットの有無の判断時間を短縮することができ、もって、後続処理が継続できないケースにおいても、その判断を迅速に行えることができるキャッシュメモリ制御回路及びキャッシュメモリ制御方法を提供することを目的としている。
上述した課題を解決するため、本発明は、キャッシュメモリに対するムーブイン要求に対して先行する先行ムーブイン要求がキャッシュミスを起こしムーブインバッファを獲得している場合にキャッシュメモリの制御を行うキャッシュメモリ制御回路であって、ムーブイン要求のアドレスとムーブインバッファ内に登録されている先行ムーブイン要求のアドレスとにおけるインデックス及び上位アドレス部が共に一致していない場合を判断する第1判断部と、前記第1判断部による判断が肯定的であった場合に、前記ムーブイン要求に対する処理を続行する第1処理部とを備えるものである。
また、本発明は、上記キャッシュメモリ制御回路において、前記第1判断部による判断が否定的であった場合に、前記ムーブイン要求に対する処理を待ち状態にすることを特徴とする。
また、本発明は、上記キャッシュメモリ制御回路において、前記第1処理部は、前記ムーブイン要求に対するタグ検索を行うタグ検索部と、前記タグ検索部により、キャッシュヒットが判断された場合に、前記ムーブイン要求のアドレスにおけるインデックス及びキャッシュヒットしたキャッシュにおけるウェイと、ムーブインバッファ内に登録されている先行ムーブイン要求のアドレスにおけるインデックス及びキャッシュのリプレースウェイとが共に一致していない場合を判断する第2判断部とを備え、前記第2判断部による判断が肯定的であった場合に前記ムーブイン要求に対する処理を続行することを特徴とする。
また、本発明は、上記キャッシュメモリ制御回路において、前記第2判断部による判断が否定的であった場合は、前記ムーブイン要求に対する処理を待ち状態にすることを特徴とする。
また、本発明は、キャッシュメモリに対するムーブイン要求に対して先行する先行ムーブイン要求がキャッシュミスを起こしムーブインバッファを獲得している場合にキャッシュメモリの制御を行うキャッシュメモリ制御回路であって、MIB内に、ムーブイン要求に対するリプレースアドレスの上位アドレス部の情報を持たせると共に、リプレース先の有効性の有無についての情報を持たせ、前記ムーブイン要求のアドレスとムーブインバッファ内に登録されている先行ムーブイン要求のアドレスとにおけるインデックス及び前記上位アドレス部が共に一致していない場合を判断する第1判断部と、前記ムーブイン要求のアドレスとMIB内に登録されたリプレースアドレスとにおけるインデックス及び上位アドレス部が共に一致していない場合を判断する第3判断部とを備え、前記第1判断部と前記第3判断部による、判断結果が共に肯定的であり、且つ前記リプレース先が有効である場合に、前記ムーブイン要求に対する処理を続行する第2処理部とを備えるものである。
また、本発明は、キャッシュメモリに対するムーブイン要求に対して先行する先行ムーブイン要求がキャッシュミスを起こしムーブインバッファを獲得している場合にキャッシュメモリの制御を行うキャッシュメモリ制御方法であって、ムーブイン要求のアドレスとムーブインバッファ内に登録されている先行ムーブイン要求のアドレスとにおけるインデックス及び上位アドレス部が共に一致していない場合を判断する第1判断ステップと、前記第1判断ステップによる判断が肯定的であった場合に、前記ムーブイン要求に対する処理を続行する第1処理ステップとを備えるものである。
また、本発明は、上記キャッシュメモリ制御方法において、前記第1判断ステップによる判断が否定的であった場合に、前記ムーブイン要求に対する処理を待ち状態にすることを特徴とする。
また、本発明は、上記キャッシュメモリ制御方法において、前記第1処理ステップは、前記ムーブイン要求に対するタグ検索を行うタグ検索ステップと、前記タグ検索ステップにより、キャッシュヒットが判断された場合に、前記ムーブイン要求のアドレスにおけるインデックス及びキャッシュヒットしたキャッシュにおけるウェイと、ムーブインバッファ内に登録されている先行ムーブイン要求のアドレスにおけるインデックス及びキャッシュのリプレースウェイとが共に一致していない場合を判断する第2判断ステップとを備え、前記第2判断ステップによる判断が肯定的であった場合に前記ムーブイン要求に対する処理を続行することを特徴とする。
また、本発明は、上記キャッシュメモリ制御方法において、前記第2判断ステップによる判断が否定的であった場合は、前記ムーブイン要求に対する処理を待ち状態にすることを特徴とする。
また、本発明は、キャッシュメモリに対するムーブイン要求に対して先行する先行ムーブイン要求がキャッシュミスを起こしムーブインバッファを獲得している場合にキャッシュメモリの制御を行うキャッシュメモリ制御方法であって、MIB内に、ムーブイン要求に対するリプレースアドレスの上位アドレス部の情報を持たせると共に、リプレース先の有効性の有無についての情報を持たせ、前記ムーブイン要求のアドレスとムーブインバッファ内に登録されている先行ムーブイン要求のアドレスとにおけるインデックス及び前記上位アドレス部が共に一致していない場合を判断すると共に、前記ムーブイン要求のアドレスとMIB内に登録されたリプレースアドレスとにおけるインデックス及び上位アドレス部が共に一致していない場合を判断する第3判断ステップとを備え、前記第3判断ステップによる、判断結果が肯定的であり、且つ前記リプレース先が有効である場合に、前記ムーブイン要求に対する処理を続行する第2処理ステップとを備えるものである。
本発明によれば、従来技術では先行処理が終わるのを待って処理されていた、実際には処理が可能なcleanブロックへキャッシュヒットした後続要求処理を、何ら物量を増やすことなく、継続とすることができ、もって、後続の要求に対する処理の効率化を図ることができる。また、ムーブイン要求時の最初の段階で異なるウェイが対象であるか否かを判断できるので、従来技術のようにキャッシュヒットまで待たずとも処理が不可能なケースが判明する。それによりムーブイン要求発生時から処理継続不可能な場合が判断されるまでの間に、無駄な処理の起動、資源の獲得が行われることを軽減させることができる。
以下、本発明の実施の形態について図面を参照しつつ説明する。
上述したように、ムーブイン要求(後続ムーブイン要求)に係る処理対象となるウェイが先行ムーブインのそれと異なるものであれば、後続ムーブイン要求に係る処理を続行しても何等不具合が生じることはなく、その処理は続行可能である。従来ではこれをキャッシュヒット時にキャッシュ状態を確認することで行っていた。本発明では、この処理が可能かどうかの判断を先行の要求アドレスのキャッシュ状況でなくウェイの状況を見ることで行うようにしたものである。以下説明する。
図1は本発明の実施の形態におけるキャッシュメモリ制御回路を示すブロック図である。この回路においては、L2キャッシュのタグ検索部16による検索結果、キャッシュヒットした場合は、L2キャッシュのデータ部18からデータがL1キャッシュに応答される。一方、キャッシュミスした場合は、L2キャッシュのMIB17が獲得され、SC3にムーブイン要求が出される。ここで、本制御回路のマッチ回路21がL1キャッシュとL2キャッシュのMIB17との間に設けらる。マッチ回路21では、それらからの後述する所定の情報を比較し、マッチングする所定の場合にアボートをパイプラインに出力する。アボートが出力されない場合は後続のムーブイン要求に係る処理が続行される。
実施の形態1.
以下、上記構成における、本発明の実施の形態1について説明する。図2は実施の形態1の動作を示すフローチャートであり、その具体的回路構成を図3に示す。
まず、L1キャッシュからのムーブイン要求に係る要求アドレスとMIBに登録されている先行ムーブイン要求に係る要求アドレスとにおけるインデックスと上位アドレス部が夫々一致していない場合を判断し(ステップS31)、判断結果が否定的である(一致している)場合(ステップS31,NO)は、ムーブイン要求に係るウェイが一致することとなるので、処理を待機させるべくアボート情報を出力し、先行ムーブイン要求において獲得されたMIBが開放されるまで処理待ち状態となる。
一方、判断結果が肯定的である(一致していない)場合(ステップS31,YES)は、処理を続行するべくタグ検索を行い(ステップS32)、タグ検索の結果、キャッシュミスの場合はムーブイン要求をSCに出力する。
タグ検索の結果、キャッシュヒットした場合は、そのヒットウェイを獲得し、ムーブイン要求に係る要求アドレスのインデックスとヒットウェイとがMIBに登録されているインデックスとキャッシュへのムーブインウェイとの夫々にマッチ回路において比較され(ステップS33:一致しない場合が判断され)、一致する場合(結果が否定的である場合)はやはり先行ムーブイン要求において獲得されたMIBが開放されるまで処理待ち状態となる。
上記比較において、一致しないと判断された場合(結果が肯定的である場合)は、処理が続行され、L2キャッシュのデータがL1キャッシュに応答される。
図3における回路図において、第1一致回路41は、その第1入力端子にムーブイン要求に係る要求アドレスのインデックス及びその上位アドレス部に関する情報を入力し、その第2入力端子にMIBに登録されている先行ムーブイン要求に係る要求アドレスにおけるインデックスとその上位アドレス部に関する情報を入力する。そして、第1一致回路41は、ムーブイン要求に係る要求アドレスとMIBに登録されている先行ムーブイン要求に係る要求アドレスとにおけるインデックスと上位アドレス部が夫々一致しているか否かを判断し(一致していない場合を判断し)、一致している場合(結果が否定的である場合)に「1」を出力する。
第2一致回路42は、その第1入力端子にムーブイン要求に係る要求アドレスのインデックス及びそのヒットウェイに関する情報を入力し、その第2入力端子にMIBに登録されている先行ムーブイン要求に係る要求アドレスにおけるインデックスとそのリプレースウェイに関する情報を入力する。そして、第2一致回路42は、ムーブイン要求に係る要求アドレスのインデックスとヒットウェイがMIBに登録されている先行ムーブイン要求に係る要求アドレスのインデックスとリプレースアドレスに夫々一致しているか否かを判断し(一致していない場合を判断し)、一致している場合(結果が否定的である場合)に「1」を出力する。
そして、いずれかに該当する場合にオア回路43からアボートが出力され、処理が待機される。
実施の形態1においては、従来では一括して処理を待機させていたclean なブロックについても、処理が可能なものは全て処理できる。但し、この場合、キャッシュヒット時に処理続行が可能かどうかはヒットウェイを獲得するまで分からない。この間、無駄な資源の確保や処理の起動を行ってしまう。そこで、次の実施の形態2が構成される。
実施の形態2.
図4は実施の形態2における動作を示すフローチャートであり、図5はその場合のマッチ回路を示す図である。実施の形態2では、後続要求のアドレスと先行する要求のアドレスの比較の時点で、後続の要求アドレスと先行のリプレースアドレスとの比較を同時に行う。このため実施の形態2においては、図6に示されるように、MIBの構成において要求アドレス100、登録ウェイ及びリプレースウェイ200、その他のフラグ300に加えてリプレースアドレスの上位アドレス部領域400を加える。さらに、例えば、このリプレースアドレスが保持される際にリプレース先の状態が有効であるかのフラグ(dirty victimとclean victimのOR)を持たせるようにする。
図4の動作について説明すると、まず要求アドレスとMIBに登録された先行する要求アドレスのインデックスと上位アドレス部が夫々一致しない場合を判断するステップ(ステップS41)と共に、リプレース先が有効である場合に要求アドレスとMIBのリプレース先アドレスのインデックスと上位アドレス部を夫々一致しない場合を判断するステップ(ステップS42)を実行し、双方の判断結果が肯定的である場合(共に一致しない場合(ステップS41及びステップS42,YES))に処理を続行し、タグ検索を行う(ステップS43)。少なくともいずれかにおいて一致があった場合(ステップS41又はステップS42,NO)はアボートを出力し、処理を待機させる。
図5においては、第3一致回路51と第4一致回路52それぞれの第1端子にムーブイン要求に係る要求アドレスのインデックスと上位アドレス部に関する情報が入力され、第3一致回路51の第2端子にMIBの要求アドレスにおけるインデックスと上位アドレス部に関する情報が入力され、第4一致回路52の第2端子にMIBのリプレースアドレスについてのインデックスと上位アドレス部に関する情報が入力される。また、OR回路53において、リプレース先の状態が有効であるかのフラグ(dirty victimとclean victimのOR)を出力し、アンド回路54において、第4一致回路52とOR回路53の論理積(AND)をとって、その出力と第3一致回路51との論理和をとり、その出力によりアボートを出力するように構成する。なお、OR回路55の二入力の同期を図るためにバッファ回路56がアンド回路54に対応して設けられている。
ステップS41,42における判断はそれぞれ、
(a)、アドレス64バイトが一致したか。
(b)、リプレースアドレス64バイトが一致し、かつリプレース先の状態が有効であるかについての判断となる。
いずれかの条件が成立する場合、後続ムーブインは先行と同じウェイを対象としていることになるのでアボートを通知する。
ステップS41、ステップS42のいずれの条件も成立しない場合、後続ムーブインは先行と異なるウェイを対象としている。このケースは後続の処理が可能であるので処理の続行を許可する。同時にタグ検索においてキャッシュがヒットしたかの判定を行い、ヒットした場合は処理を行う。
上述したように、実施の形態2では、最初に要求アドレスとMIBの要求アドレスとの比較をとる時点でリプレース先のアドレスとの比較も同時に行っているので、これによりキャッシュヒット後にヒットウェイとMIBのリプレースウェイの比較を行う必要がなくなる。
どちらかに一致した場合、先行要求と後続要求のウェイが一致することになるので、処理ができないことがこの時点で判明する。どちらにも一致しなかった場合、ウェイが異なることが明らかとなるのでタグ検索の結果を待ち、キャッシュヒットすれば即処理が可能となる。
これにより、従来技術と比較して、より多くのケースを救済する事ができ、しかも、より早い段階で処理続行の可否が判明する為、無駄な資源の確保や処理の起動を最小限に抑えることができる。
また、図6に示されるように、実施の形態2では、MIB内にリプレースアドレス400と要求アドレス100を持つこととなるが、インデックス部は共通するので、実際にはインデックス部、要求アドレスのインデックス部以外、リプレースアドレスのインデックス部以外のアドレス指定領域で済む。更にシステムによっては、リプレース中のスヌープ処理を正しく行うために元々リプレースアドレスを保持するものもあるので、その場合更に物量のインパクトは非常に小さいものとなる。
以上の動作をタイムチャートで示すと図7のように示される。従来の技術における動作を示す図14と比較すると、先行するL2リクエスト(REQ-1)に対して、後続のL2リクエスト(REQ-2)の処理が極めて迅速的に且つ効率的に行われることが明白である。
図1は本発明の実施の形態におけるキャッシュメモリ制御回路を示すブロック図である。 実施の形態1の動作を示すフローチャートである。 実施の形態1のマッチ回路の具体的構成を示す回路図である。 実施の形態2における動作を示すフローチャートである。 実施の形態2のマッチ回路の具体的構成を示す回路図である。 実施の形態2のMIB構成を示す図である。 実施の形態2の動作を概念的に示すタイムチャートである。 CPU全体の概略構成を示すブロック回路図である。 一般的なキャッシュメモリ制御部を示すブロック図である。 従来のキャッシュメモリ制御方法その1を示すフローチャートである。 従来のタグ検索方法を示す概念図である。 従来のMIBの構成を示す図である。 従来のキャッシュメモリ制御方法その2を示すフローチャートである。 従来のキャッシュメモリ制御動作を概念的に示すタイムチャートである。
符号の説明
1,2 CPU、3 システムコントローラ(SC)、4 メモリ、16 タグ検索部(タグ部)、17 MIB(ムーブインバッファ)、18 L2キャッシュデータ部、21 マッチ回路、41 第1一致回路、42 第2一致回路、51 第3一致回路、52 第4一致回路、53 OR回路、54 アンド回路、55 OR回路、56 バッファ回路。

Claims (10)

  1. キャッシュメモリに対するムーブイン要求に対して先行する先行ムーブイン要求がキャッシュミスを起こしムーブインバッファを獲得している場合にキャッシュメモリの制御を行うキャッシュメモリ制御回路であって、
    ムーブイン要求のアドレスとムーブインバッファ内に登録されている先行ムーブイン要求のアドレスとにおけるインデックス及び上位アドレス部が共に一致していない場合を判断する第1判断部と、
    前記第1判断部による判断が肯定的であった場合に、前記ムーブイン要求に対する処理を続行する第1処理部と
    を備えるキャッシュメモリ制御回路。
  2. 請求項1に記載のキャッシュメモリ制御回路において、
    前記第1判断部による判断が否定的であった場合に、前記ムーブイン要求に対する処理を待ち状態にすることを特徴とするキャッシュメモリ制御回路。
  3. 請求項1又は請求項2に記載のキャッシュメモリ制御回路において、
    前記第1処理部は、
    前記ムーブイン要求に対するタグ検索を行うタグ検索部と、
    前記タグ検索部により、キャッシュヒットが判断された場合に、前記ムーブイン要求のアドレスにおけるインデックス及びキャッシュヒットしたキャッシュにおけるウェイと、ムーブインバッファ内に登録されている先行ムーブイン要求のアドレスにおけるインデックス及びキャッシュのリプレースウェイとが共に一致していない場合を判断する第2判断部とを備え、
    前記第2判断部による判断が肯定的であった場合に前記ムーブイン要求に対する処理を続行することを特徴とするキャッシュメモリ制御回路。
  4. 請求項3に記載のキャッシュメモリ制御回路において、
    前記第2判断部による判断が否定的であった場合は、前記ムーブイン要求に対する処理を待ち状態にすることを特徴とするキャッシュメモリ制御回路。
  5. キャッシュメモリに対するムーブイン要求に対して先行する先行ムーブイン要求がキャッシュミスを起こしムーブインバッファを獲得している場合にキャッシュメモリの制御を行うキャッシュメモリ制御回路であって、
    MIB内に、ムーブイン要求に対するリプレースアドレスの上位アドレス部の情報を持たせると共に、リプレース先の有効性の有無についての情報を持たせ、
    前記ムーブイン要求のアドレスとムーブインバッファ内に登録されている先行ムーブイン要求のアドレスとにおけるインデックス及び前記上位アドレス部が共に一致していない場合を判断する第1判断部と、
    前記ムーブイン要求のアドレスとMIB内に登録されたリプレースアドレスとにおけるインデックス及び上位アドレス部が共に一致していない場合を判断する第3判断部とを備え、
    前記第1判断部と前記第3判断部による、判断結果が共に肯定的であり、且つ前記リプレース先が有効である場合に、前記ムーブイン要求に対する処理を続行する第2処理部と
    を備えるキャッシュメモリ制御回路。
  6. キャッシュメモリに対するムーブイン要求に対して先行する先行ムーブイン要求がキャッシュミスを起こしムーブインバッファを獲得している場合にキャッシュメモリの制御を行うキャッシュメモリ制御方法であって、
    ムーブイン要求のアドレスとムーブインバッファ内に登録されている先行ムーブイン要求のアドレスとにおけるインデックス及び上位アドレス部が共に一致していない場合を判断する第1判断ステップと、
    前記第1判断ステップによる判断が肯定的であった場合に、前記ムーブイン要求に対する処理を続行する第1処理ステップと
    を備えるキャッシュメモリ制御方法。
  7. 請求項6に記載のキャッシュメモリ制御方法において、
    前記第1判断ステップによる判断が否定的であった場合に、前記ムーブイン要求に対する処理を待ち状態にすることを特徴とするキャッシュメモリ制御方法。
  8. 請求項6又は請求項7に記載のキャッシュメモリ制御方法において、
    前記第1処理ステップは、
    前記ムーブイン要求に対するタグ検索を行うタグ検索ステップと、
    前記タグ検索ステップにより、キャッシュヒットが判断された場合に、前記ムーブイン要求のアドレスにおけるインデックス及びキャッシュヒットしたキャッシュにおけるウェイと、ムーブインバッファ内に登録されている先行ムーブイン要求のアドレスにおけるインデックス及びキャッシュのリプレースウェイとが共に一致していない場合を判断する第2判断ステップとを備え、
    前記第2判断ステップによる判断が肯定的であった場合に前記ムーブイン要求に対する処理を続行することを特徴とするキャッシュメモリ制御方法。
  9. 請求項8に記載のキャッシュメモリ制御回路において、
    前記第2判断ステップによる判断が否定的であった場合は、前記ムーブイン要求に対する処理を待ち状態にすることを特徴とするキャッシュメモリ制御方法。
  10. キャッシュメモリに対するムーブイン要求に対して先行する先行ムーブイン要求がキャッシュミスを起こしムーブインバッファを獲得している場合にキャッシュメモリの制御を行うキャッシュメモリ制御方法であって、
    MIB内に、ムーブイン要求に対するリプレースアドレスの上位アドレス部の情報を持たせると共に、リプレース先の有効性の有無についての情報を持たせ、
    前記ムーブイン要求のアドレスとムーブインバッファ内に登録されている先行ムーブイン要求のアドレスとにおけるインデックス及び前記上位アドレス部が共に一致していない場合を判断すると共に、前記ムーブイン要求のアドレスとMIB内に登録されたリプレースアドレスとにおけるインデックス及び上位アドレス部が共に一致していない場合を判断する第3判断ステップとを備え、
    前記第3判断ステップによる、判断結果が肯定的であり、且つ前記リプレース先が有効である場合に、前記ムーブイン要求に対する処理を続行する第2処理ステップと
    を備えるキャッシュメモリ制御方法。
JP2004218801A 2004-07-27 2004-07-27 演算処理装置、演算処理装置の制御方法 Expired - Fee Related JP4550511B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2004218801A JP4550511B2 (ja) 2004-07-27 2004-07-27 演算処理装置、演算処理装置の制御方法
US10/986,868 US7689770B2 (en) 2004-07-27 2004-11-15 Method and system for selectively permitting cache memory access during a cache miss request
EP04257180.2A EP1622025B1 (en) 2004-07-27 2004-11-19 Cache hit/miss under miss optimization

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004218801A JP4550511B2 (ja) 2004-07-27 2004-07-27 演算処理装置、演算処理装置の制御方法

Publications (2)

Publication Number Publication Date
JP2006039937A true JP2006039937A (ja) 2006-02-09
JP4550511B2 JP4550511B2 (ja) 2010-09-22

Family

ID=34930814

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004218801A Expired - Fee Related JP4550511B2 (ja) 2004-07-27 2004-07-27 演算処理装置、演算処理装置の制御方法

Country Status (3)

Country Link
US (1) US7689770B2 (ja)
EP (1) EP1622025B1 (ja)
JP (1) JP4550511B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008046958A (ja) * 2006-08-18 2008-02-28 Fujitsu Ltd システムコントローラ,同一アドレスリクエストキューイング防止方法および情報処理装置
WO2013084315A1 (ja) * 2011-12-07 2013-06-13 富士通株式会社 演算処理装置、及び、演算処理装置の制御方法
US10482018B2 (en) 2017-09-13 2019-11-19 Fujitsu Limited Arithmetic processing unit and method for controlling arithmetic processing unit
US10552331B2 (en) 2016-09-30 2020-02-04 Fujitsu Limited Arithmetic processing device having a move-in buffer control unit that issues a move-in request in shorter time upon a memory access request, information apparatus including the same and method for controlling the arithmetic processing device

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5383415B2 (ja) * 2009-10-02 2014-01-08 キヤノン株式会社 通信装置及び通信装置の通信方法並びにプログラム
US10720082B1 (en) 2016-09-08 2020-07-21 Ctskh, Llc Device and system to teach stem lessons using hands-on learning method
US10515432B2 (en) 2016-10-28 2019-12-24 Samsung Electronics Co., Ltd. Methods and apparatuses for managing graphics data using two-stage lookup tables in cache

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0322053A (ja) * 1989-06-20 1991-01-30 Fujitsu Ltd ムーブ・イン・バッファ制御方式
US5642494A (en) * 1994-12-21 1997-06-24 Intel Corporation Cache memory with reduced request-blocking
JP2637320B2 (ja) * 1991-10-04 1997-08-06 富士通株式会社 バッファ記憶制御方式
US5742831A (en) * 1994-06-30 1998-04-21 Intel Corporation Methods and apparatus for maintaining cache coherency during copendency of load and store operations
JP3238390B2 (ja) * 1990-03-20 2001-12-10 富士通株式会社 バッファ記憶装置
US6339813B1 (en) * 2000-01-07 2002-01-15 International Business Machines Corporation Memory system for permitting simultaneous processor access to a cache line and sub-cache line sectors fill and writeback to a system memory
US20020103971A1 (en) * 2001-01-30 2002-08-01 Nec Corporation Control circuit for cache system and method of controlling cache system

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0322053A (ja) * 1989-06-20 1991-01-30 Fujitsu Ltd ムーブ・イン・バッファ制御方式
JP3238390B2 (ja) * 1990-03-20 2001-12-10 富士通株式会社 バッファ記憶装置
JP2637320B2 (ja) * 1991-10-04 1997-08-06 富士通株式会社 バッファ記憶制御方式
US5742831A (en) * 1994-06-30 1998-04-21 Intel Corporation Methods and apparatus for maintaining cache coherency during copendency of load and store operations
US5642494A (en) * 1994-12-21 1997-06-24 Intel Corporation Cache memory with reduced request-blocking
US6339813B1 (en) * 2000-01-07 2002-01-15 International Business Machines Corporation Memory system for permitting simultaneous processor access to a cache line and sub-cache line sectors fill and writeback to a system memory
US20020103971A1 (en) * 2001-01-30 2002-08-01 Nec Corporation Control circuit for cache system and method of controlling cache system
JP2002229852A (ja) * 2001-01-30 2002-08-16 Nec Corp キャッシュシステムの制御回路

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008046958A (ja) * 2006-08-18 2008-02-28 Fujitsu Ltd システムコントローラ,同一アドレスリクエストキューイング防止方法および情報処理装置
JP4680851B2 (ja) * 2006-08-18 2011-05-11 富士通株式会社 システムコントローラ,同一アドレスリクエストキューイング防止方法および情報処理装置
WO2013084315A1 (ja) * 2011-12-07 2013-06-13 富士通株式会社 演算処理装置、及び、演算処理装置の制御方法
US10552331B2 (en) 2016-09-30 2020-02-04 Fujitsu Limited Arithmetic processing device having a move-in buffer control unit that issues a move-in request in shorter time upon a memory access request, information apparatus including the same and method for controlling the arithmetic processing device
US10482018B2 (en) 2017-09-13 2019-11-19 Fujitsu Limited Arithmetic processing unit and method for controlling arithmetic processing unit

Also Published As

Publication number Publication date
US20060026361A1 (en) 2006-02-02
US7689770B2 (en) 2010-03-30
EP1622025A2 (en) 2006-02-01
EP1622025B1 (en) 2014-01-15
EP1622025A3 (en) 2006-08-30
JP4550511B2 (ja) 2010-09-22

Similar Documents

Publication Publication Date Title
US6434641B1 (en) System for reducing the number of requests presented to a main memory in a memory storage system employing a directory-based caching scheme
US6272602B1 (en) Multiprocessing system employing pending tags to maintain cache coherence
JP4680851B2 (ja) システムコントローラ,同一アドレスリクエストキューイング防止方法および情報処理装置
EP2323039A1 (en) Cache memory control apparatus and cache memory control method
JPH09138779A (ja) スヌープ処理方法
US8074029B2 (en) Processor equipped with a pre-fetch function and pre-fetch control method
US7529889B2 (en) Data processing apparatus and method for performing a cache lookup in an energy efficient manner
US7716423B2 (en) Pseudo LRU algorithm for hint-locking during software and hardware address translation cache miss handling modes
US20060294319A1 (en) Managing snoop operations in a data processing apparatus
US9003130B2 (en) Multi-core processing device with invalidation cache tags and methods
JP4434534B2 (ja) プロセッサ・システム
JP4577729B2 (ja) ライトバックキャッシュにおいてスヌーププッシュ処理やスヌープキル処理が同時発生しているときのライトバック処理をキャンセルするためのシステムおよび方法
JP4550511B2 (ja) 演算処理装置、演算処理装置の制御方法
JP2007156821A (ja) キャッシュシステム及び共用2次キャッシュ
US6477622B1 (en) Simplified writeback handling
US6735675B2 (en) Method and apparatus for altering data length to zero to maintain cache coherency
JP6792139B2 (ja) 演算処理装置及び演算処理装置の制御方法
JP4575065B2 (ja) キャッシュメモリ制御装置、キャッシュメモリ制御方法、中央処理装置、情報処理装置、中央制御方法
JPH10501914A (ja) 共用キャッシュ・メモリ装置
US20060236040A1 (en) Multiprocessor system for preventing starvation in case of occurring address competition and method thereof
US6839806B2 (en) Cache system with a cache tag memory and a cache tag buffer
JP3320562B2 (ja) キャッシュメモリを有する電子計算機
US20150220440A1 (en) Ordering constraint management within coherent memory systems
US7263586B1 (en) Cache coherency for multiple independent cache of a domain
JP6451475B2 (ja) 演算処理装置、情報処理装置および演算処理装置の制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070223

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100330

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100531

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100706

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100708

R150 Certificate of patent or registration of utility model

Ref document number: 4550511

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130716

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees