JP2011248389A - キャッシュメモリ、キャッシュメモリシステム - Google Patents

キャッシュメモリ、キャッシュメモリシステム Download PDF

Info

Publication number
JP2011248389A
JP2011248389A JP2008231461A JP2008231461A JP2011248389A JP 2011248389 A JP2011248389 A JP 2011248389A JP 2008231461 A JP2008231461 A JP 2008231461A JP 2008231461 A JP2008231461 A JP 2008231461A JP 2011248389 A JP2011248389 A JP 2011248389A
Authority
JP
Japan
Prior art keywords
cache memory
tag
line
word
dirty
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.)
Pending
Application number
JP2008231461A
Other languages
English (en)
Inventor
Yoshinobu Hashimoto
芳信 橋本
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.)
Panasonic Corp
Original Assignee
Panasonic Corp
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 Panasonic Corp filed Critical Panasonic Corp
Priority to JP2008231461A priority Critical patent/JP2011248389A/ja
Priority to PCT/JP2009/004105 priority patent/WO2010029694A1/ja
Publication of JP2011248389A publication Critical patent/JP2011248389A/ja
Pending legal-status Critical Current

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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】よりキャッシュヒット率を向上させたキャッシュメモリを提供する。
【解決手段】キャッシュメモリ6は、4つのワード(Word0,Word1,Word2,Word3)を含むラインを有するデータ格納部16と、各ラインを識別するタグを格納するタグ格納部14を備える。タグ格納部は、ラインがリフィル中であるか否かを示すリフィルビット(R)と、ワード毎にワードにおけるデータがダーティであるか否かを示すダーティビット(D0,D1,D2,D3)と、ラインに格納されたデータの主記憶におけるアドレスを示すタグビット(Tag)を格納している。ヒット判定器20は、リードアクセス対象のタグアドレス(AD[31:16])とタグビット(Tag)に示されるアドレスとが一致し、リードアクセス対象に係るラインに対応するリフィルビット(R)がリフィル中を示し、かつ、当該ラインに含まれリードアクセス対象に係るワードに対応するダーティビットがダーティを示していれば、リードヒットと判定する。
【選択図】図2

Description

本発明は、ライトバック方式のキャッシュメモリに関する。
ライトバック方式とは、キャッシュメモリへのデータ書き込み時に、基本的にキャッシュメモリに対してのみ書き込み、主記憶へは同時には書き込まずに、後で適宜書き戻す方式である。
ライトバック方式では、キャッシュメモリと主記憶とへの書き込みタイミングにズレが生じるので、両者が保持しているデータの整合性を管理するためのDirty/Cleanフラグが設けられている。Dirty(ダーティ)は、キャッシュメモリに保持されているデータが更新されるなどして、主記憶上のデータとの一致が保証できない場合を示し、Clean(クリーン)は、その逆を示す。Dirty/Cleanフラグにより、対象のデータがDirtyかCleanかを判断することができる。Dirtyなデータは、適当なタイミングで主記憶に書き戻し、その整合性をとる必要がある。
このようなDirty/Cleanフラグは、ライン(数ワードから構成される)単位で管理することが一般的である。もっとも、ライン単位であると、ラインに含まれる数ワードのうちの、どのワードがDirtyかまでは不明なので無用な書き戻しが行われることがある。
そこで、特許文献1では、ラインより細かい単位(例えば、ワード単位)でDirty/Cleanの別を管理することで、必要なデータのみの書き戻しを可能にし、不要なバス・トランザクションの低減が図れるとしている。なお、他に特許文献2〜4の技術が知られている。
特開2003-108439号公報 特開2006-91995号公報 特開平8-16467号公報 特開平8-221270号公報
低速な主記憶へアクセスする代わりに、高速なキャッシュメモリ上の対応するデータにアクセスすることで、一般にキャッシュヒット率が向上する。キャッシュヒット率が向上することで、計算機システム全体の性能を向上することができる。
キャッシュメモリにおいては、キャッシュミス時などには、ラインのデータを入れ換えるリフィルという処理を行う。このリフィルの最中であっても、キャッシュヒット扱いしてアクセスを許可しても問題がない場合も潜在している。しかしながら、前記従来の技術では、リフィルの最中においては、リフィル中のラインへのアクセスはキャッシュミスと扱っており、主記憶へアクセスをする必要があるという課題を有している。
このような背景のもとで、本発明は、よりキャッシュヒット率を向上させたキャッシュメモリを提供することを目的としている。
本発明に係るキャッシュメモリは、それぞれ複数のワードを含む複数のラインと、前記ラインに格納されたデータの主記憶におけるアドレスを示すタグと、前記ライン毎にラインがリフィル中であるか否かを示すリフィルビットと、前記ワード毎にワードにおけるデータがダーティであるか否かを示すダーティビットとを格納するタグ格納部と、リードアクセス対象のタグアドレスと、前記タグに示されるアドレスとが一致し、リードアクセス対象に係るラインに対応するリフィルビットがリフィル中を示し、かつ、当該ラインに含まれリードアクセス対象に係るワードに対応するダーティビットがダーティを示していれば、リードヒットと判定するヒット判定手段とを備えることを特徴としている。
また、前記ヒット判定手段は、ライトアクセス対象に係るラインのアドレスと、前記タグに示されるアドレスが一致するラインであって、当該ラインに対応するリフィルビットがリフィル中であることを示す場合には、ライトヒットと判定するとしても構わない。
また、前記ヒット判定手段は、当該ワードに対応するダーティビットがダーティを示していなければ、リードミスヒットと判定するとしても構わない。
また、本発明に係るキャッシュメモリは、それぞれ複数のワードを含む複数のラインと、前記ラインに格納されたデータの主記憶におけるアドレスを示すタグと、前記ライン毎にラインがリフィル中であるか否かを示すリフィルビットと、前記ワード毎にワードにおけるデータがダーティであるか否かを示すダーティビットとを格納するタグ格納部と、ライトアクセス対象のタグアドレスと、前記タグに示されるアドレスとが一致し、当該ラインに対応するリフィルビットがリフィル中であることを示す場合には、ライトヒットと判定するヒット判定手段とを備えることを特徴とする。
さらに、前記ヒット判定手段によりライトヒットと判定された場合に、前記ライトアクセスに係るワードへの書き込みがあると、当該ワードに対応するダーティビットをアサートし、ラインのリフィルに際して、ダーティビットがダーティであることを示さないワードに対してはデータの上書きを許可し、前記アサートによりダーティであることを示すワードに対してはデータの上書きを禁止する制御手段を備えるとしても構わない。
また、本発明に係るキャッシュメモリシステムは、中央処理装置と、前記キャッシュメモリと、前記中央処理装置と前記キャッシュメモリと記憶階層において間の階層に位置し、前記中央処理装置が前記キャッシュメモリへとライトすべきデータを保持する第1ライトバッファと、前記キャッシュメモリとライトバック対象となるメモリと記憶階層において間の階層に位置し、前記キャッシュメモリから前記ライトバック対象となるメモリへとライトバックすべきデータを保持する第2ライトバッファと、前記キャッシュメモリと前記ライトバック対象となるメモリと記憶階層において間の階層に位置し、前記キャッシュメモリがリードすべきデータを保持するリードバッファとを備えることを特徴とする。
本発明に係るキャッシュメモリは、従来はリフィル中であるとリードミスヒットと判定していたのに対して、ラインがリフィル中という状況下においても、ヒット判定手段は、そのラインに含まれるワードに対応するダーティビットがダーティを示していれば、リードヒットと判定する。
この構成によれば、リードアクセス対象に係るラインがリフィル中という状況下においても、ヒット判定手段は、リードヒットと判定するので、キャッシュリードミスを減らし、キャッシュリードヒット率を向上できる。これにより、キャッシュリードミスに起因する計算機のオーバーヘッドを軽減することができる。
また、本発明に係るキャッシュメモリは、それぞれ複数のワードを含む複数のラインと、前記ラインに格納されたデータの主記憶におけるアドレスを示すタグと、前記ライン毎にラインがリフィル中であるか否かを示すリフィルビットと、前記ワード毎にワードにおけるデータがダーティであるか否かを示すダーティビットとを格納するタグ格納部と、ライトアクセス対象のタグアドレスと、前記タグに示されるアドレスとが一致し、当該ラインに対応するリフィルビットがリフィル中であることを示す場合には、ライトヒットと判定するヒット判定手段とを備えることを特徴とするとしている。
この構成によれば、ライトアクセス対象に係るラインがリフィル中という状況下においても、ヒット判定手段は、ライトヒットと判定するので、キャッシュライトヒット率を向上できる。
以下、図面を用いて本発明の実施の形態について説明する。また、本実施の形態におけるライトバック方式のキャッシュメモリは、ダイレクトマップ方式を採用しており、キャッシュのライトミス時には、ライトアロケート方式(先に新しいラインをキャッシュメモリに書き込み、その後で書き込みヒット時の動作を行う方式である。)で処理を行うとして説明する。
図1は、キャッシュメモリシステム1の構成図である。
キャッシュメモリシステム1は、CPU2、主記憶4、キャッシュメモリ6、ライトバッファ8,10、リードバッファ12を含んで構成している。
CPU2は、各種演算処理を行う中央処理装置である。
主記憶4は、DRAMなどデータを一時記憶する揮発性メモリから構成される。
キャッシュメモリ6は、主記憶4に格納すべきデータを一時的に格納する。主記憶4よりアクセス速度が速く、記憶階層の構造上、上位のCPU2と下位の主記憶4との間に介在している。キャッシュメモリ6はライトバック方式であり、キャッシュミス発生時などを契機として保持しているデータを主記憶4へと書き戻す。
キャッシュメモリ6は、制御部6a、格納部6b、ヒット判定部6c、調停部6dを備える。
制御部(キャッシュメモリ制御部)6aは、各機能ブロックを制御し、例えば格納部6bに格納されたデータの読み書きやタグの更新を行う。また、ヒット判定部6cのヒット判定結果に応じてCPU2にデータを出力する。
格納部6bは、データを格納するデータ格納部と、格納されたデータを識別する情報としてのタグを含むタグ格納部とから構成される。
ヒット判定部6cは、CPU2からのアクセス対象となったデータが、格納部6bに格納されているかどうかのヒット判定を行う。詳しくは後述する。
調停部6dは、格納部6b内のデータ格納部へのデータへのアクセスが競合する場合などに調停する。
図2は、キャッシュメモリ6の構成を示す図である。
図2上部のアドレス22は、CPU2がキャッシュメモリ6へとアクセスを試みる際に、CPU2からリード/ライト要求とともに出力されるアドレスを示している。
アドレス(AD[31:0])22は、32ビットであり、上位16ビット(AD[31:16])をタグアドレスとして、ビット4からビット15の12ビット(AD[15:4])をインデックスアドレスとして、ビット2からビット3の2ビット(AD[3:2])をラインに含まれるワードを特定するワードアドレスとして利用する。なお、インデックスアドレスは12ビットであるので、4096(=2^12)本のラインを指定することができる。このインデックスアドレスによりアクセス対象のラインが一意に特定されることとなる。
キャッシュメモリ6は、タグ格納部14、データ格納部16、セレクタ18、ヒット判定器20を含む。
タグ格納部14は、データ格納部16における4096本のラインに対応して設けられており、ラインに格納されたデータなどの識別情報を格納している。
具体的には、タグ格納部14は、ラインのデータが有効であるか否かを示すバリッドビット(V)、ラインがリフィル中であるか否かを示すリフィルビット(R)、ラインに格納されたデータの主記憶におけるアドレスを示すタグビット(Tag)を有する。
これに加えて、タグ格納部14は、ラインに含まれる4つのワード(Word0,Word1,Word2,Word3)に対応してそれぞれ設けられた4つのダーティビット(D0,D1,D2,D3)を含んでいる。ダーティビットがダーティならば、対応するワードは、更新されたが主記憶には未だ書き戻されていない状態であることを意味しているので、適宜、主記憶に書き戻す必要がある。
データ格納部16は、4つのワードを1ラインとした4096本のラインを保持している。データ格納部16は、タグ格納部14とは別個のメモリとしてSRAMなどにより構成される。なお、1ワードあたりのサイズは、CPU2からのアクセスのビット幅に対応して32ビットであり、データ格納部16の入出力ポートのビット幅も32ビット(1ワード分)である。
セレクタ18は、アドレス22の2ビット(AD[3:2])に基づいて、4つのワードのうちの1つのワードを選択する。
ヒット判定器20には、リードかライトを示す信号(Read or Write)、タグアドレス(AD[31:16])、インデックスアドレス(AD[15:4])により特定されたラインのバリッドビット(V)、リフィルビット(R)、4つのワード毎のダーティビット(D0,D1,D2,D3)、上記ラインに格納されたデータのアドレスを示すタグビット(Tag)、4つのワードのうちの1つを特定するワードアドレス(AD[3:2])、の10個の入力に基づいてヒットかミスヒットかを判定する。
ヒット判定器20の回路構成例を図3に示す。
ヒット判定器20は、2入力1出力のAND回路23,24,26,28,30、3入力1出力のOR回路32、NOT回路34,36、4入力1出力のセレクタ38、コンパレータ40を備える。
セレクタ38は、2ビット(AD[3:2])の入力に基づいて、D0,D1,D2,D3の4つのうちの1つを選択して出力する。すなわち、ラインに含まれるアクセス対象のワードを特定する入力(AD[3:2])に基づいて、そのワードに対応するダーティビットを出力することとなる。
コンパレータ40は、タグビット(Tag)と、タグアドレス(AD[31:16])とを比較し一致した場合にHIGH出力となる。
図4は、図3のヒット判定器20が入力に応じて出力する判定結果を示す表50である。
入力される値の組み合わせに応じて(a)から(h)までの8つの場合がある。各場合について順に説明する。なお、リフィル中でない(a)、(b)、(d)、(e)、(f)、(h)の場合のヒット判定は基本的には従来と同様である。リフィル中の(c)、(g)の場合が特徴的である。
(a)の場合・・・ライトアクセス対象のデータのアドレス22に含まれるタグアドレス(AD[31:16])とタグビット(Tag)とが一致し、リフィル中で無く(R=0)、バリッドビットが有効(V=1)な場合であり、ライトヒットとなる。そして、キャッシュメモリ6は、ワードアドレス(AD[3:2])に示されるワードに書き込み、同時に書き込んだワードに対応するダーティビットをアサートする。
(b)の場合・・・バリッドビットが無効(V=0)であるところだけが(a)と異なる場合であり、V=0でデータが無効であるので、ライトミスとなる。
ここで、ライトミスヒットしたデータは、一旦ライトバッファ8に保持し、リフィルの完了を待ってキャッシュメモリ6へと書き込むこととなる。特に本実施の形態では、ライトミスヒットしたデータはキャッシュメモリ6にライトしておく。ライト時には、ライトしたワード毎のダーティビットをダーティに更新し、タグビット(Tag)をライトミスヒットしたアクセスのアドレスに更新する。これに先立って、ライトアクセス対象のラインをリフィルするために、主記憶4へのバスにデータリード要求とアドレスとを出力する。なお、このとき、リードバッファ12に空きが無い場合には、空くまでリード要求の出力を待つか、リードデータが主記憶4から返ってくるよりも以前にリードバッファ12が空くことが確定できるまでリード要求の出力を待つ。
(c)の場合・・・ライトアクセス対象のデータのタグビット(Tag)とタグアドレス(AD[31:16])とが一致し、リフィル中(R=1)の場合であり、ライトヒットとなる。そして、キャッシュメモリ6は、ワードアドレス(AD[3:2])に示されるワードに書き込み、書き込んだワードに対応するダーティビットをアサートする。
(d)の場合・・・リードアクセス対象のデータのタグビット(Tag)とタグアドレス(AD[31:16])とが一致し、リフィル中で無く(R=0)、バリッドビットが有効(V=1)な場合であり、リードヒットとなる。CPU2はワードアドレス(AD[3:2])に示されるワードのデータを読み出すこととなる。
(e)の場合・・・バリッドビットは無効(V=0)であるところだけが(d)と異なる場合であり、V=0でデータが無効であるので、リードミスとなる。
(f)の場合・・・リードアクセス対象のデータのタグビット(Tag)とタグアドレス(AD[31:16])とが一致し、リフィル中(R=1)であり、ワードアドレス(AD[3:2])に示されるワード(図4ではW0)に対応するダーティビット(図4ではD0)がダーティではない(クリーンである)場合である。この場合は、ミスヒットとなり、キャッシュメモリ6の制御部6aは、リフィル中である旨をCPU2に通知する。CPU2は通知がリフィル中で無くなるまで待機(リフィル完了まで待機)し、リフィル完了後にリードヒットとしてリードヒット時の動作(リフィル済のリードアクセス対象のデータを読み出す)をするか、このミスヒットしたリードアクセスが完了しなくとも進められる後続の処理に移ることとなる。
(g)の場合・・・リードアクセス対象のデータのタグビット(Tag)とタグアドレス(AD[31:16])とが一致し、リフィル中(R=1)であり、ワードアドレス(AD[3:2])に示されるワード(図4ではW2)に対応するダーティビット(図4ではD2)がダーティな場合である。この場合は、リードヒットとなり、CPU2は、ワードアドレス(AD[3:2])に示されるワードのデータを読み出す。
(h)の場合・・・タグビット(Tag)とタグアドレス(AD[31:16])とが一致していない場合である。これは、アクセス対象のデータのアドレスとデータ格納部に実際に格納されているデータのアドレスとが異なることを意味するので、他の条件を判断するまでもなく、ライト・リードに関わらずミスヒットとなる。
以上説明したように、ヒット判定器20は、(g)の場合のように、リフィル中であったとしても、リードアクセス対象のワードに対応するダーティビットがダーティであればリードヒットとして判定するので、従来よりリードヒット率を向上させることができる。
また、ヒット判定器20は、(c)の場合のように、リフィル中であったとしても、ライトヒットとして判定するので、従来よりライトヒット率を向上させることができる。
次に、CPU2、キャッシュメモリ6、主記憶4の処理の流れについて、ライトアクセス時とリードアクセス時を分けて順に説明する。
図5は、ライトアクセス時におけるCPU2、キャッシュメモリ6、主記憶4のシーケンス図である。なお、初期状態において、ライトアクセス要求の対象となるラインはリフィル中でない(R=0)として説明する。
CPU2がライトアクセス要求するデータは、一旦ライトバッファ8で保持する。そして、ライトバッファ8は、キャッシュメモリへのライトアクセス要求とともに、データとこのデータのアドレス(AD[31:0])22とをキャッシュメモリ6へと送る(S0)。
ライトアクセス要求を受けたキャッシュメモリ6のヒット判定器20は、前述のようにライトバッファ8から送られたデータのアドレス(AD[31:0])22のタグアドレス(AD[31:16])とライトアクセス要求の対象となったデータのラインのタグビット(Tag)との比較や、ラインのリフィルビット(R)などに基づいて、ヒット判定を行う。
ライトヒットと判定すれば(S1:Yes)、ライトアクセス要求の対象となるラインのワードにデータを書き込み、必要に応じてそのワードに対応するダーティビットをアサートする(S11)。
ライトミスと判定すれば(S1:No)、キャッシュメモリ6は、ラインのリフィルビットをアサートし(S2:R=1)、ライトバック処理(S3-S8)に移行する。この時、ライトミスしたライトアクセス要求のタグアドレス(AD[31:16])で、タグビット(Tag)を更新する。
ライトバック処理(S3-S8)では、バリッドビットが無効であれば(S3:No,V=0)、ラインが無効であり書き戻すべきデータが無いので処理を終える。
バリッドビットが有効であれば(S3:Yes,V=1)、ライン中のワードにおいて、ワードに対応するダーティビットがダーティ(D=1)なワードだけをライトバッファ10に書き戻す(S4,S5)。書き戻しを終えたワードに対応するダーティビットはクリーン(D=0)にネゲートする(S6)。
なお、ライトバッファ10に書き戻されたデータは、バスが空いているときなど適当なタイミングで主記憶4へとさらにライトバックされることとなる。
ラインに含まれる4つのワードについてS4からS6までの処理を終えると(S7:Yes)、ラインのバリッドビットを無効化(S8:V=0)する。
ライトバック処理(S3-S8)を終えると、キャッシュメモリ6は、リフィル・タグ更新を行う(S9)。具体的には、リードバッファ12が主記憶4から読み出し済みのライトアクセス対象のラインのデータを、キャッシュメモリ6のラインに上書きする。
このリフィルでは、D=0のワードのみ上書きし、書き戻しされていないワードの上書きを回避する。
キャッシュメモリ6は、リードバッファ12からの読み込みを完了すると(S9)、ラインを有効化し(S10:V=1)、リフィルビットをネゲート(S10:R=0)して一連のリフィルを終了する。
なお、図5のフローでは、まず先にライトバック処理(S3-S8)を行い、その後でリフィルの処理を行う(S9)として説明したが、両処理はこれに限らず並行して行っても構わない。
図6は、リードアクセス時におけるCPU2、キャッシュメモリ6、主記憶4のシーケンス図である。なお、初期状態において、リードアクセス要求の対象となるラインはリフィル中でない(R=0)として説明する。
CPU2がキャッシュメモリ6にリードアクセスを要求すると(S20)、要求を受けたキャッシュメモリ6はヒット判定器20において前述のヒット判定を行う。
リードヒットと判定すれば(S21:Yes)、CPU2は、リードアクセス要求の対象となるラインのワードからデータを読み出す。
リードミスヒットと判定すれば(S21:No)、S2からS10までのリフィル処理に移行する。この処理は図5を用いて既に説明したものと同様であるので説明を省略する。
次に、キャッシュメモリ6のあるラインがリフィル中の場合に、このライン中のワードへのライト/リードアクセスがあったときの例について説明する。
図7は、あるラインのワード(W0,W1,W2,W3)のリフィルを時系列上で説明する図である。(a)を用いてライトアクセス時の処理について説明し、(b)を用いてリードアクセス時の処理について説明する。
ライトアクセス時は、図7(a)に示すように、キャッシュメモリ6は、t0→t1→t2→t3→t4の間に、それぞれW0→W1→W2→W3の順番でリフィルが完了するものとする。また、リフィル開始時にはリフィルビットをアサートし、リフィルすべき新しいラインのアドレスにラインのタグビット(Tag)を更新する。
本実施の形態においては、リフィル途中にも関わらずライトアクセス要求を受けてデータの上書きを許容するので、ラインのタグビット(Tag)が、現実に上書きしたデータのタグと不一致にならないように、図7(a)に示すように、リフィル開始時にタグを更新する。
まず、t0からt2までの間にワードW2へのライトアクセス要求があった場合には、ヒット判定器20は前述のようにライトヒットと判定し、ワードW2へのライトアクセスを受けて対応するダーティビット(D2)をアサートする。その後、t2からt3の間は、ワードW2のダーティビット(D2)がアサートされているので、キャッシュメモリ6は、ワードW2への上書きを行わない。
なお、上書きを行わない方法としては、例えば、ライトアクセスは行うが、ワードへの書き込みをマスクする信号を利用することが考えられる。また、ワードへのライトアクセス自体を行わずに処理をスキップしてもよい。
次に、t2からt3までの間にワードW2へのライトアクセス要求があった場合には、ライトヒットと判定し、ワードW2へのライトアクセスを受けて対応するダーティビット(D2)をアサートする。この場合、ライトアクセス要求時には、ワードW2は既にリフィル中であるので、キャッシュメモリ6はライト制御を調停して両者の競合を防ぐ。
そして、t3からt4までの間にワードW2へのライトアクセス要求があった場合には、ライトヒットと判定し、ワードW2へのライトアクセスを受けて対応するダーティビット(D2)をアサートする。
リードアクセス時は、図7(b)に示すように、図7(a)同様に、キャッシュメモリ6は、t0→t1→t2→t3→t4の間に、それぞれW0→W1→W2→W3の順番でリフィルが完了するものとする。
まず、t0からt4までの間にワードW2へのリードアクセス要求があった場合、ワードW2に対応するダーティビットが有効であるならば、ヒット判定器20は前述のようにリードヒットと判定し、ワードW2へのリードアクセスを受け付ける。
これに対して、t0からt4までの間にワードW2へのリードアクセス要求があった場合で、ワードW2に対応するダーティビットが無効ならば、ヒット判定器20は前述のようにリードミスヒットと判定する。CPU2は、リフィル完了まで待つこととなる。
<補足>
以上、本発明の実施の形態について説明したが、本発明は上記の内容に限定されず、本発明の目的とそれに関連または付随する目的を達成するための各種形態においても実施可能であり、例えば、以下であってもよい。
(1)実施の形態では、ダイレクトマップ方式のキャッシュメモリを例に挙げて説明したが、この方式に限らずフルアソシアティブ方式やセットアソシアティブ方式を採用したキャッシュメモリを用いても構わない。これらの方式の場合には、ライトミスヒット時のリフィル対象のラインがダイレクトマップ方式のように一意のラインに決まるのではなく、LRU(Least Recently Used)方式やラウンドロビン方式などのアルゴリズムなどに基づいて行われる点が異なってくる。
また、共有バスを介して複数のキャッシュメモリが下位層の単一のメモリを共有するような共有メモリ型のキャッシュメモリシステムにおいても、ライトバックキャッシュメモリを構成、制御する方法として本発明を適用することができる。
(2)実施の形態では、対応するダーティビットがダーティなワードのみをライトバックする例について説明したが、ダーティワードを含む数ワード、もしくはラインに含まれるワードすべてをライトバックするとしてもよい。また書き戻しの際には、周知の技術のように、ライトバッファ10に積まれたデータが主記憶4に書き戻されるよりも以前に、書き戻されるアドレスのデータが主記憶4から読み出されることが無いようにシステム全体は制御することができる。
(3)実施の形態では、図1に示すように、キャッシュメモリ6の入出力につながるパスにライトバッファ8,10とリードバッファ12を配することで、中央処理装置からキャッシュメモリへのライトアクセス、キャッシュメモリから主記憶へのライトアクセス、主記憶からキャッシュメモリへのライトアクセスが緩衝され、より柔軟なキャッシュメモリ制御が可能となる。
(4)実施の形態では、特に詳細を述べなかったが、システム全体へのオーバーヘッドを軽減する別のアプローチとして、ライトバッファを配置して制御系に工夫を施すことも考えられる。具体的には、ライトミスへの対応として、上位層メモリとキャッシュメモリとの間に多機能なライトバッファを配置し、リフィル中のラインへのライトは、上記ライトバッファにあるデータに対して上書き更新し、リフィル中のラインのリードは、上記ライトバッファから読み出すという制御を行うというものである。しかし、この制御は非常に複雑なものとなる。
これに対して、実施の形態では、ヒット判定器20のヒット判定という簡単な制御を通してシステム全体へのオーバーヘッドを軽減することが可能となる。
(5)階層メモリシステムとして、中央処理装置、キャッシュメモリ、主記憶の構成を例示したが、さらに深い階層構成のメモリシステムのキャッシュメモリとしてもよい。例えば、キャッシュメモリが、1次キャッシュメモリと2次キャッシュメモリとから構成される場合がある。この場合、本実施の形態を、1次キャッシュメモリに適用してもよいし、2次キャッシュメモリに適用してもよい。
本発明のキャッシュメモリは、一般的な半導体回路内部に存在するキャッシュメモリとして利用でき、キャッシュヒット率を向上できるので有用である。
キャッシュメモリシステム1の構成図 キャッシュメモリ6の構成を示す図 ヒット判定器20の回路構成例 図3のヒット判定器20が入力に応じて出力する判定結果を示す表50の図 ライトアクセス時におけるCPU2、キャッシュメモリ6、主記憶4のシーケンス図 リードアクセス時におけるCPU2、キャッシュメモリ6、主記憶4のシーケンス図 あるラインのワード(W0,W1,W2,W3)のリフィルを時系列上で説明する図
符号の説明
1 キャッシュメモリシステム
2 CPU
4 主記憶
6 キャッシュメモリ
8 ライトバッファ
10 ライトバッファ
12 リードバッファ
14 タグ格納部
20 ヒット判定器
22 アドレス

Claims (6)

  1. それぞれ複数のワードを含む複数のラインと、
    前記ラインに格納されたデータの主記憶におけるアドレスを示すタグと、前記ライン毎にラインがリフィル中であるか否かを示すリフィルビットと、前記ワード毎にワードにおけるデータがダーティであるか否かを示すダーティビットとを格納するタグ格納部と、
    リードアクセス対象のタグアドレスと、前記タグに示されるアドレスとが一致し、
    リードアクセス対象に係るラインに対応するリフィルビットがリフィル中を示し、
    かつ、当該ラインに含まれリードアクセス対象に係るワードに対応するダーティビットがダーティを示していれば、
    リードヒットと判定するヒット判定手段と
    を備えることを特徴とするキャッシュメモリ。
  2. 前記ヒット判定手段は、ライトアクセス対象に係るラインのアドレスと、前記タグに示されるアドレスが一致するラインであって、当該ラインに対応するリフィルビットがリフィル中であることを示す場合には、ライトヒットと判定する
    ことを特徴とする請求項1に記載のキャッシュメモリ。
  3. 前記ヒット判定手段は、当該ワードに対応するダーティビットがダーティを示していなければ、リードミスヒットと判定する
    ことを特徴とする請求項1に記載のキャッシュメモリ。
  4. それぞれ複数のワードを含む複数のラインと、
    前記ラインに格納されたデータの主記憶におけるアドレスを示すタグと、前記ライン毎にラインがリフィル中であるか否かを示すリフィルビットと、前記ワード毎にワードにおけるデータがダーティであるか否かを示すダーティビットとを格納するタグ格納部と、
    ライトアクセス対象のタグアドレスと、前記タグに示されるアドレスとが一致し、
    当該ラインに対応するリフィルビットがリフィル中であることを示す場合には、
    ライトヒットと判定するヒット判定手段と
    を備えることを特徴とするキャッシュメモリ。
  5. さらに、前記ヒット判定手段によりライトヒットと判定された場合に、前記ライトアクセスに係るワードへの書き込みがあると、当該ワードに対応するダーティビットをアサートし、
    ラインのリフィルに際して、ダーティビットがダーティであることを示さないワードに対してはデータの上書きを許可し、前記アサートによりダーティであることを示すワードに対してはデータの上書きを禁止する制御手段を備える
    ことを特徴とする請求項4に記載のキャッシュメモリ。
  6. 中央処理装置と、
    請求項1または4に記載のキャッシュメモリと、
    前記中央処理装置と前記キャッシュメモリと記憶階層において間の階層に位置し、前記中央処理装置が前記キャッシュメモリへとライトすべきデータを保持する第1ライトバッファと、
    前記キャッシュメモリとライトバック対象となるメモリと記憶階層において間の階層に位置し、前記キャッシュメモリから前記ライトバック対象となるメモリへとライトバックすべきデータを保持する第2ライトバッファと、
    前記キャッシュメモリと前記ライトバック対象となるメモリと記憶階層において間の階層に位置し、前記キャッシュメモリがリードすべきデータを保持するリードバッファと
    を備えることを特徴とするキャッシュメモリシステム。
JP2008231461A 2008-09-09 2008-09-09 キャッシュメモリ、キャッシュメモリシステム Pending JP2011248389A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008231461A JP2011248389A (ja) 2008-09-09 2008-09-09 キャッシュメモリ、キャッシュメモリシステム
PCT/JP2009/004105 WO2010029694A1 (ja) 2008-09-09 2009-08-26 キャッシュメモリ、キャッシュメモリシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008231461A JP2011248389A (ja) 2008-09-09 2008-09-09 キャッシュメモリ、キャッシュメモリシステム

Publications (1)

Publication Number Publication Date
JP2011248389A true JP2011248389A (ja) 2011-12-08

Family

ID=42004960

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008231461A Pending JP2011248389A (ja) 2008-09-09 2008-09-09 キャッシュメモリ、キャッシュメモリシステム

Country Status (2)

Country Link
JP (1) JP2011248389A (ja)
WO (1) WO2010029694A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014185652A1 (ko) * 2013-05-16 2014-11-20 이화여자대학교 산학협력단 쓰기 트래픽이 적은 캐시 메모리 블록 교체 방법 및 이를 이용한 캐시 서브시스템을 가지는 정보 처리 장치

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012014318A (ja) * 2010-06-30 2012-01-19 Nec Corp キャッシュ制御装置及びキャッシュ制御方法
US9342461B2 (en) * 2012-11-28 2016-05-17 Qualcomm Incorporated Cache memory system and method using dynamically allocated dirty mask space
CN114398298B (zh) * 2022-01-18 2024-07-09 中国人民解放军国防科技大学 一种缓存流水线处理方法及装置
CN115809028B (zh) * 2023-01-19 2023-05-12 北京象帝先计算技术有限公司 一种缓存数据替换方法、装置、图形处理***及电子设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02188849A (ja) * 1989-01-18 1990-07-24 Agency Of Ind Science & Technol キャッシュメモリ方式
JP3733604B2 (ja) * 1993-12-27 2006-01-11 松下電器産業株式会社 キャッシュメモリ
JP3985889B2 (ja) * 2001-08-08 2007-10-03 株式会社ルネサステクノロジ 半導体装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014185652A1 (ko) * 2013-05-16 2014-11-20 이화여자대학교 산학협력단 쓰기 트래픽이 적은 캐시 메모리 블록 교체 방법 및 이를 이용한 캐시 서브시스템을 가지는 정보 처리 장치
KR101474842B1 (ko) 2013-05-16 2014-12-19 이화여자대학교 산학협력단 쓰기 트래픽이 적은 캐시 메모리 블록 교체 방법 및 이를 이용한 캐시 서브시스템을 가지는 정보 처리 장치

Also Published As

Publication number Publication date
WO2010029694A1 (ja) 2010-03-18

Similar Documents

Publication Publication Date Title
US20110173393A1 (en) Cache memory, memory system, and control method therefor
US20110173400A1 (en) Buffer memory device, memory system, and data transfer method
JP5417879B2 (ja) キャッシュ装置
US8145844B2 (en) Memory controller with write data cache and read data cache
JP5453546B2 (ja) 複数の仮想キューを含むアドレス変換ユニット
US7434007B2 (en) Management of cache memories in a data processing apparatus
US20030126365A1 (en) Transfer of cache lines on-chip between processing cores in a multi-core system
JP2000250813A (ja) I/oキャッシュ・メモリにおけるデータ管理方法
JP2010517179A (ja) プロセッサにおいてキャッシュポリシーを設定するための方法および装置
US20110167223A1 (en) Buffer memory device, memory system, and data reading method
US7761665B2 (en) Handling of cache accesses in a data processing apparatus
US20100306421A1 (en) Dma transfer device
JP2011248389A (ja) キャッシュメモリ、キャッシュメモリシステム
JP2007156821A (ja) キャッシュシステム及び共用2次キャッシュ
US20040153610A1 (en) Cache controller unit architecture and applied method
US7328313B2 (en) Methods to perform cache coherency in multiprocessor system using reserve signals and control bits
JP2010128698A (ja) マルチプロセッサシステム
US9760488B2 (en) Cache controlling method for memory system and cache system thereof
JP2005346582A (ja) システムlsi及び画像処理装置
US20230305968A1 (en) Cache replacement policy optimization for producer-consumer flows
JP4583981B2 (ja) 画像処理装置
JPH09185547A (ja) マルチプロセッサの制御方法及びその装置
JPH02224161A (ja) 高速データ処理装置
US20190286562A1 (en) Information processing apparatus, cache control apparatus and cache control method
JP4856373B2 (ja) メモリ・システムとその制御方法、データ・コヒーレンシを保つ方法