JP2011248389A - Cache memory and cache memory system - Google Patents

Cache memory and cache memory system 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
Japanese (ja)
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/en
Priority to PCT/JP2009/004105 priority patent/WO2010029694A1/en
Publication of JP2011248389A publication Critical patent/JP2011248389A/en
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

PROBLEM TO BE SOLVED: To provide a cache memory in which a cache hit rate has been further improved.SOLUTION: A cache memory 6 comprises: a data storage part 16 having lines including four words (Word0, Word1, Word2, and Word3); and a tag storage part 14 for storing a tag identifying each line. The tag storage part stores: refill bits (R) for indicating whether a line is being refilled; dirty bits (D0, D1, D2, and D3) indicating whether data for each word is dirty; and tag bits (Tag) indicating an address in a main storage for the data stored on a line. A hit determination unit 20 determines that it is a read hit if a tag address (AD [31:16]) for read access and an address indicated by a tag bit (Tag) are the same; a refill bit (R) corresponding to a line for a read access target is indicating that the line is being refilled; and a dirty bit corresponding to a word for the read access target on the line is indicating the word is dirty.

Description

本発明は、ライトバック方式のキャッシュメモリに関する。 The present invention relates to a write-back cache memory.

ライトバック方式とは、キャッシュメモリへのデータ書き込み時に、基本的にキャッシュメモリに対してのみ書き込み、主記憶へは同時には書き込まずに、後で適宜書き戻す方式である。
ライトバック方式では、キャッシュメモリと主記憶とへの書き込みタイミングにズレが生じるので、両者が保持しているデータの整合性を管理するためのDirty/Cleanフラグが設けられている。Dirty(ダーティ)は、キャッシュメモリに保持されているデータが更新されるなどして、主記憶上のデータとの一致が保証できない場合を示し、Clean(クリーン)は、その逆を示す。Dirty/Cleanフラグにより、対象のデータがDirtyかCleanかを判断することができる。Dirtyなデータは、適当なタイミングで主記憶に書き戻し、その整合性をとる必要がある。
The write-back method is a method in which, when data is written to the cache memory, basically only the cache memory is written, and the main memory is not written at the same time, but is appropriately rewritten later.
In the write-back method, there is a deviation in the write timing to the cache memory and the main memory, so a Dirty / Clean flag is provided for managing the consistency of the data held by both. Dirty indicates that the data held in the cache memory is updated, etc., and cannot match the data on the main memory, and Clean indicates the opposite. The Dirty / Clean flag can be used to determine whether the target data is dirty or clean. Dirty data must be written back to main memory at an appropriate timing to ensure consistency.

このようなDirty/Cleanフラグは、ライン(数ワードから構成される)単位で管理することが一般的である。もっとも、ライン単位であると、ラインに含まれる数ワードのうちの、どのワードがDirtyかまでは不明なので無用な書き戻しが行われることがある。
そこで、特許文献1では、ラインより細かい単位(例えば、ワード単位)でDirty/Cleanの別を管理することで、必要なデータのみの書き戻しを可能にし、不要なバス・トランザクションの低減が図れるとしている。なお、他に特許文献2〜4の技術が知られている。
特開2003-108439号公報 特開2006-91995号公報 特開平8-16467号公報 特開平8-221270号公報
Such a Dirty / Clean flag is generally managed in units of lines (consisting of several words). Of course, in the case of line units, it is unclear which word out of several words included in a line is Dirty, so unnecessary write back may be performed.
Therefore, in Patent Document 1, by managing the Dirty / Clean distinction in units smaller than lines (for example, word units), it is possible to write back only necessary data and reduce unnecessary bus transactions. Yes. In addition, the techniques of Patent Documents 2 to 4 are known.
JP 2003-108439 A Japanese Unexamined Patent Publication No. 2006-91995 JP-A-8-16467 JP-A-8-221270

低速な主記憶へアクセスする代わりに、高速なキャッシュメモリ上の対応するデータにアクセスすることで、一般にキャッシュヒット率が向上する。キャッシュヒット率が向上することで、計算機システム全体の性能を向上することができる。
キャッシュメモリにおいては、キャッシュミス時などには、ラインのデータを入れ換えるリフィルという処理を行う。このリフィルの最中であっても、キャッシュヒット扱いしてアクセスを許可しても問題がない場合も潜在している。しかしながら、前記従来の技術では、リフィルの最中においては、リフィル中のラインへのアクセスはキャッシュミスと扱っており、主記憶へアクセスをする必要があるという課題を有している。
The cache hit rate is generally improved by accessing the corresponding data on the high-speed cache memory instead of accessing the low-speed main memory. By improving the cache hit rate, the performance of the entire computer system can be improved.
In the cache memory, when a cache miss or the like is performed, a process called refill for exchanging line data is performed. Even during the refill, there is a possibility that there is no problem even if access is permitted by treating the cache hit. However, in the conventional technique, during refilling, access to the line being refilled is treated as a cache miss, and there is a problem that it is necessary to access the main memory.

このような背景のもとで、本発明は、よりキャッシュヒット率を向上させたキャッシュメモリを提供することを目的としている。   In view of such a background, an object of the present invention is to provide a cache memory having a further improved cache hit rate.

本発明に係るキャッシュメモリは、それぞれ複数のワードを含む複数のラインと、前記ラインに格納されたデータの主記憶におけるアドレスを示すタグと、前記ライン毎にラインがリフィル中であるか否かを示すリフィルビットと、前記ワード毎にワードにおけるデータがダーティであるか否かを示すダーティビットとを格納するタグ格納部と、リードアクセス対象のタグアドレスと、前記タグに示されるアドレスとが一致し、リードアクセス対象に係るラインに対応するリフィルビットがリフィル中を示し、かつ、当該ラインに含まれリードアクセス対象に係るワードに対応するダーティビットがダーティを示していれば、リードヒットと判定するヒット判定手段とを備えることを特徴としている。   The cache memory according to the present invention includes a plurality of lines each including a plurality of words, a tag indicating an address in the main memory of data stored in the line, and whether or not the line is being refilled for each line. A tag storage unit that stores a refill bit that is indicated and a dirty bit that indicates whether or not the data in the word is dirty for each word, a tag address that is a read access target, and an address indicated by the tag matches If the refill bit corresponding to the line related to the read access indicates that refilling is in progress and the dirty bit corresponding to the word related to the read access included in the line indicates dirty, the hit is determined as a read hit. And determining means.

また、前記ヒット判定手段は、ライトアクセス対象に係るラインのアドレスと、前記タグに示されるアドレスが一致するラインであって、当該ラインに対応するリフィルビットがリフィル中であることを示す場合には、ライトヒットと判定するとしても構わない。
また、前記ヒット判定手段は、当該ワードに対応するダーティビットがダーティを示していなければ、リードミスヒットと判定するとしても構わない。
In the case where the hit determination means indicates that the address of the line related to the write access and the address indicated by the tag match, and the refill bit corresponding to the line indicates that refill is being performed. It may be determined as a write hit.
The hit determination means may determine a read miss hit if the dirty bit corresponding to the word does not indicate dirty.

また、本発明に係るキャッシュメモリは、それぞれ複数のワードを含む複数のラインと、前記ラインに格納されたデータの主記憶におけるアドレスを示すタグと、前記ライン毎にラインがリフィル中であるか否かを示すリフィルビットと、前記ワード毎にワードにおけるデータがダーティであるか否かを示すダーティビットとを格納するタグ格納部と、ライトアクセス対象のタグアドレスと、前記タグに示されるアドレスとが一致し、当該ラインに対応するリフィルビットがリフィル中であることを示す場合には、ライトヒットと判定するヒット判定手段とを備えることを特徴とする。   Further, the cache memory according to the present invention includes a plurality of lines each including a plurality of words, a tag indicating an address in the main memory of data stored in the line, and whether the line is being refilled for each line. A tag storage unit that stores a refill bit indicating whether or not the data in the word is dirty for each word, a tag address that is a write access target, and an address indicated by the tag When the refill bit matches and indicates that the refill bit corresponding to the line is being refilled, a hit judging means for judging a write hit is provided.

さらに、前記ヒット判定手段によりライトヒットと判定された場合に、前記ライトアクセスに係るワードへの書き込みがあると、当該ワードに対応するダーティビットをアサートし、ラインのリフィルに際して、ダーティビットがダーティであることを示さないワードに対してはデータの上書きを許可し、前記アサートによりダーティであることを示すワードに対してはデータの上書きを禁止する制御手段を備えるとしても構わない。   Further, when the hit determination means determines that a write hit occurs, if there is a write to a word related to the write access, the dirty bit corresponding to the word is asserted, and when the line is refilled, the dirty bit is dirty. There may be provided control means for permitting overwriting of data for a word that does not indicate presence, and prohibiting overwriting of data for a word indicating dirty by the assertion.

また、本発明に係るキャッシュメモリシステムは、中央処理装置と、前記キャッシュメモリと、前記中央処理装置と前記キャッシュメモリと記憶階層において間の階層に位置し、前記中央処理装置が前記キャッシュメモリへとライトすべきデータを保持する第1ライトバッファと、前記キャッシュメモリとライトバック対象となるメモリと記憶階層において間の階層に位置し、前記キャッシュメモリから前記ライトバック対象となるメモリへとライトバックすべきデータを保持する第2ライトバッファと、前記キャッシュメモリと前記ライトバック対象となるメモリと記憶階層において間の階層に位置し、前記キャッシュメモリがリードすべきデータを保持するリードバッファとを備えることを特徴とする。   The cache memory system according to the present invention is located in a hierarchy between the central processing unit, the cache memory, the central processing unit, the cache memory, and the storage hierarchy, and the central processing unit is transferred to the cache memory. The first write buffer that holds data to be written, the cache memory, the memory to be written back, and the storage hierarchy are located in a hierarchy, and write back from the cache memory to the memory to be written back A second write buffer that holds data to be read; and a read buffer that is located in a hierarchy between the cache memory, the memory to be written back, and a storage hierarchy and holds data to be read by the cache memory It is characterized by.

本発明に係るキャッシュメモリは、従来はリフィル中であるとリードミスヒットと判定していたのに対して、ラインがリフィル中という状況下においても、ヒット判定手段は、そのラインに含まれるワードに対応するダーティビットがダーティを示していれば、リードヒットと判定する。
この構成によれば、リードアクセス対象に係るラインがリフィル中という状況下においても、ヒット判定手段は、リードヒットと判定するので、キャッシュリードミスを減らし、キャッシュリードヒット率を向上できる。これにより、キャッシュリードミスに起因する計算機のオーバーヘッドを軽減することができる。
The cache memory according to the present invention has conventionally determined that a read miss hit when refilling is in progress, but the hit determination means supports a word included in the line even in the situation where the line is being refilled. If the dirty bit indicates dirty, it is determined as a read hit.
According to this configuration, even in a situation where the line related to the read access is being refilled, the hit determination means determines that it is a read hit. Therefore, the cache read miss can be reduced and the cache read hit rate can be improved. Thereby, the overhead of the computer resulting from a cache read miss can be reduced.

また、本発明に係るキャッシュメモリは、それぞれ複数のワードを含む複数のラインと、前記ラインに格納されたデータの主記憶におけるアドレスを示すタグと、前記ライン毎にラインがリフィル中であるか否かを示すリフィルビットと、前記ワード毎にワードにおけるデータがダーティであるか否かを示すダーティビットとを格納するタグ格納部と、ライトアクセス対象のタグアドレスと、前記タグに示されるアドレスとが一致し、当該ラインに対応するリフィルビットがリフィル中であることを示す場合には、ライトヒットと判定するヒット判定手段とを備えることを特徴とするとしている。   Further, the cache memory according to the present invention includes a plurality of lines each including a plurality of words, a tag indicating an address in the main memory of data stored in the line, and whether the line is being refilled for each line. A tag storage unit that stores a refill bit indicating whether or not the data in the word is dirty for each word, a tag address that is a write access target, and an address indicated by the tag When the refill bits coincide with each other and indicate that the refill bit corresponding to the line is being refilled, hit judging means for judging a write hit is provided.

この構成によれば、ライトアクセス対象に係るラインがリフィル中という状況下においても、ヒット判定手段は、ライトヒットと判定するので、キャッシュライトヒット率を向上できる。   According to this configuration, even in a situation where the line related to the write access is being refilled, the hit determination means determines that it is a write hit, so the cache write hit rate can be improved.

以下、図面を用いて本発明の実施の形態について説明する。また、本実施の形態におけるライトバック方式のキャッシュメモリは、ダイレクトマップ方式を採用しており、キャッシュのライトミス時には、ライトアロケート方式(先に新しいラインをキャッシュメモリに書き込み、その後で書き込みヒット時の動作を行う方式である。)で処理を行うとして説明する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings. In addition, the write-back cache memory according to the present embodiment employs a direct map method, and in the case of a cache write miss, a write allocation method (first writing a new line to the cache memory and then a write hit It is assumed that the processing is performed in this method.

図1は、キャッシュメモリシステム1の構成図である。
キャッシュメモリシステム1は、CPU2、主記憶4、キャッシュメモリ6、ライトバッファ8,10、リードバッファ12を含んで構成している。
CPU2は、各種演算処理を行う中央処理装置である。
主記憶4は、DRAMなどデータを一時記憶する揮発性メモリから構成される。
FIG. 1 is a configuration diagram of the cache memory system 1.
The cache memory system 1 includes a CPU 2, a main memory 4, a cache memory 6, write buffers 8 and 10, and a read buffer 12.
The CPU 2 is a central processing unit that performs various arithmetic processes.
The main memory 4 includes a volatile memory that temporarily stores data such as DRAM.

キャッシュメモリ6は、主記憶4に格納すべきデータを一時的に格納する。主記憶4よりアクセス速度が速く、記憶階層の構造上、上位のCPU2と下位の主記憶4との間に介在している。キャッシュメモリ6はライトバック方式であり、キャッシュミス発生時などを契機として保持しているデータを主記憶4へと書き戻す。
キャッシュメモリ6は、制御部6a、格納部6b、ヒット判定部6c、調停部6dを備える。
The cache memory 6 temporarily stores data to be stored in the main memory 4. The access speed is higher than that of the main memory 4 and is interposed between the upper CPU 2 and the lower main memory 4 due to the structure of the storage hierarchy. The cache memory 6 is a write-back method, and writes the data held in the main memory 4 when a cache miss occurs.
The cache memory 6 includes a control unit 6a, a storage unit 6b, a hit determination unit 6c, and an arbitration unit 6d.

制御部(キャッシュメモリ制御部)6aは、各機能ブロックを制御し、例えば格納部6bに格納されたデータの読み書きやタグの更新を行う。また、ヒット判定部6cのヒット判定結果に応じてCPU2にデータを出力する。
格納部6bは、データを格納するデータ格納部と、格納されたデータを識別する情報としてのタグを含むタグ格納部とから構成される。
The control unit (cache memory control unit) 6a controls each functional block, for example, reads / writes data stored in the storage unit 6b and updates tags. Further, data is output to the CPU 2 according to the hit determination result of the hit determination unit 6c.
The storage unit 6b includes a data storage unit that stores data, and a tag storage unit that includes a tag as information for identifying the stored data.

ヒット判定部6cは、CPU2からのアクセス対象となったデータが、格納部6bに格納されているかどうかのヒット判定を行う。詳しくは後述する。
調停部6dは、格納部6b内のデータ格納部へのデータへのアクセスが競合する場合などに調停する。
図2は、キャッシュメモリ6の構成を示す図である。
The hit determination unit 6c performs hit determination as to whether or not the data to be accessed from the CPU 2 is stored in the storage unit 6b. Details will be described later.
The arbitrating unit 6d arbitrates when access to data to the data storage unit in the storage unit 6b competes.
FIG. 2 is a diagram showing the configuration of the cache memory 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)本のラインを指定することができる。このインデックスアドレスによりアクセス対象のラインが一意に特定されることとなる。
An address 22 in the upper part of FIG. 2 indicates an address output together with a read / write request from the CPU 2 when the CPU 2 tries to access the cache memory 6.
Address (AD [31: 0]) 22 is 32 bits, and the upper 16 bits (AD [31:16]) are used as tag addresses, and 12 bits (AD [15: 4]) from bit 4 to bit 15 are used. As an index address, 2 bits (AD [3: 2]) from bit 2 to bit 3 are used as a word address for specifying a word included in the line. Since the index address is 12 bits, 4096 (= 2 ^ 12) lines can be specified. A line to be accessed is uniquely specified by this index address.

キャッシュメモリ6は、タグ格納部14、データ格納部16、セレクタ18、ヒット判定器20を含む。
タグ格納部14は、データ格納部16における4096本のラインに対応して設けられており、ラインに格納されたデータなどの識別情報を格納している。
具体的には、タグ格納部14は、ラインのデータが有効であるか否かを示すバリッドビット(V)、ラインがリフィル中であるか否かを示すリフィルビット(R)、ラインに格納されたデータの主記憶におけるアドレスを示すタグビット(Tag)を有する。
The cache memory 6 includes a tag storage unit 14, a data storage unit 16, a selector 18, and a hit determination unit 20.
The tag storage unit 14 is provided corresponding to 4096 lines in the data storage unit 16 and stores identification information such as data stored in the line.
Specifically, the tag storage unit 14 stores a valid bit (V) indicating whether or not line data is valid, a refill bit (R) indicating whether or not the line is being refilled, and the line. It has a tag bit (Tag) indicating the address of the main data in the main memory.

これに加えて、タグ格納部14は、ラインに含まれる4つのワード(Word0,Word1,Word2,Word3)に対応してそれぞれ設けられた4つのダーティビット(D0,D1,D2,D3)を含んでいる。ダーティビットがダーティならば、対応するワードは、更新されたが主記憶には未だ書き戻されていない状態であることを意味しているので、適宜、主記憶に書き戻す必要がある。   In addition to this, the tag storage unit 14 includes four dirty bits (D0, D1, D2, D3) respectively provided corresponding to four words (Word0, Word1, Word2, Word3) included in the line. It is out. If the dirty bit is dirty, it means that the corresponding word has been updated but not yet written back to the main memory. Therefore, it is necessary to write back to the main memory as appropriate.

データ格納部16は、4つのワードを1ラインとした4096本のラインを保持している。データ格納部16は、タグ格納部14とは別個のメモリとしてSRAMなどにより構成される。なお、1ワードあたりのサイズは、CPU2からのアクセスのビット幅に対応して32ビットであり、データ格納部16の入出力ポートのビット幅も32ビット(1ワード分)である。   The data storage unit 16 holds 4096 lines with four words as one line. The data storage unit 16 includes an SRAM or the like as a memory separate from the tag storage unit 14. The size per word is 32 bits corresponding to the bit width of access from the CPU 2, and the bit width of the input / output port of the data storage unit 16 is also 32 bits (for one word).

セレクタ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個の入力に基づいてヒットかミスヒットかを判定する。
The selector 18 selects one word out of the four words based on 2 bits (AD [3: 2]) of the address 22.
The hit determination unit 20 includes a valid bit (V) of a line specified by a read or write signal (Read or Write), a tag address (AD [31:16]), and an index address (AD [15: 4]). ), Refill bit (R), dirty bit (D0, D1, D2, D3) for each of four words, tag bit (Tag) indicating the address of data stored in the above line, one of the four words It is determined whether it is a hit or a miss hit based on 10 inputs of a word address (AD [3: 2]) that identifies

ヒット判定器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])に基づいて、そのワードに対応するダーティビットを出力することとなる。
A circuit configuration example of the hit determination device 20 is shown in FIG.
The hit determination unit 20 includes AND circuits 23, 24, 26, 28, and 30 having two inputs and one output, an OR circuit 32 having three inputs and one output, NOT circuits 34 and 36, a selector 38 having four inputs and one output, and a comparator 40. .
The selector 38 selects and outputs one of four of D0, D1, D2, and D3 based on the input of 2 bits (AD [3: 2]). That is, based on an input (AD [3: 2]) that specifies an access target word included in the line, a dirty bit corresponding to the word is output.

コンパレータ40は、タグビット(Tag)と、タグアドレス(AD[31:16])とを比較し一致した場合にHIGH出力となる。
図4は、図3のヒット判定器20が入力に応じて出力する判定結果を示す表50である。
入力される値の組み合わせに応じて(a)から(h)までの8つの場合がある。各場合について順に説明する。なお、リフィル中でない(a)、(b)、(d)、(e)、(f)、(h)の場合のヒット判定は基本的には従来と同様である。リフィル中の(c)、(g)の場合が特徴的である。
The comparator 40 compares the tag bit (Tag) with the tag address (AD [31:16]) and outputs a HIGH output when they match.
FIG. 4 is a table 50 showing determination results output by the hit determination unit 20 of FIG. 3 in response to input.
There are eight cases from (a) to (h) depending on combinations of input values. Each case will be described in turn. Note that hit determination in cases (a), (b), (d), (e), (f), and (h) that are not being refilled is basically the same as in the prior art. The cases (c) and (g) during refill are characteristic.

(a)の場合・・・ライトアクセス対象のデータのアドレス22に含まれるタグアドレス(AD[31:16])とタグビット(Tag)とが一致し、リフィル中で無く(R=0)、バリッドビットが有効(V=1)な場合であり、ライトヒットとなる。そして、キャッシュメモリ6は、ワードアドレス(AD[3:2])に示されるワードに書き込み、同時に書き込んだワードに対応するダーティビットをアサートする。   In the case of (a): The tag address (AD [31:16]) included in the address 22 of the write access target data matches the tag bit (Tag), and the refill is not in progress (R = 0). This is a case where the valid bit is valid (V = 1) and a write hit occurs. Then, the cache memory 6 writes to the word indicated by the word address (AD [3: 2]) and asserts a dirty bit corresponding to the simultaneously written word.

(b)の場合・・・バリッドビットが無効(V=0)であるところだけが(a)と異なる場合であり、V=0でデータが無効であるので、ライトミスとなる。
ここで、ライトミスヒットしたデータは、一旦ライトバッファ8に保持し、リフィルの完了を待ってキャッシュメモリ6へと書き込むこととなる。特に本実施の形態では、ライトミスヒットしたデータはキャッシュメモリ6にライトしておく。ライト時には、ライトしたワード毎のダーティビットをダーティに更新し、タグビット(Tag)をライトミスヒットしたアクセスのアドレスに更新する。これに先立って、ライトアクセス対象のラインをリフィルするために、主記憶4へのバスにデータリード要求とアドレスとを出力する。なお、このとき、リードバッファ12に空きが無い場合には、空くまでリード要求の出力を待つか、リードデータが主記憶4から返ってくるよりも以前にリードバッファ12が空くことが確定できるまでリード要求の出力を待つ。
In the case of (b): Only the place where the valid bit is invalid (V = 0) is different from that in (a). Since the data is invalid at V = 0, a write miss occurs.
Here, the write miss hit data is temporarily held in the write buffer 8 and written to the cache memory 6 after completion of the refill. In particular, in the present embodiment, the write miss hit data is written in the cache memory 6. At the time of writing, the dirty bit for each written word is updated to dirty, and the tag bit (Tag) is updated to the address of the access that caused the write miss hit. Prior to this, a data read request and an address are output to the bus to the main memory 4 in order to refill the write access target line. At this time, if there is no free space in the read buffer 12, it waits until the read request is output or until it is determined that the read buffer 12 is free before the read data is returned from the main memory 4. Wait for read request output.

(c)の場合・・・ライトアクセス対象のデータのタグビット(Tag)とタグアドレス(AD[31:16])とが一致し、リフィル中(R=1)の場合であり、ライトヒットとなる。そして、キャッシュメモリ6は、ワードアドレス(AD[3:2])に示されるワードに書き込み、書き込んだワードに対応するダーティビットをアサートする。
(d)の場合・・・リードアクセス対象のデータのタグビット(Tag)とタグアドレス(AD[31:16])とが一致し、リフィル中で無く(R=0)、バリッドビットが有効(V=1)な場合であり、リードヒットとなる。CPU2はワードアドレス(AD[3:2])に示されるワードのデータを読み出すこととなる。
In the case of (c): The tag bit (Tag) of the write access target data matches the tag address (AD [31:16]) and refilling is in progress (R = 1). Become. Then, the cache memory 6 writes to the word indicated by the word address (AD [3: 2]) and asserts a dirty bit corresponding to the written word.
In the case of (d): The tag bit (Tag) of the data subject to read access matches the tag address (AD [31:16]), not being refilled (R = 0), and the valid bit is valid ( V = 1), which is a read hit. The CPU 2 reads the data of the word indicated by the word address (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は通知がリフィル中で無くなるまで待機(リフィル完了まで待機)し、リフィル完了後にリードヒットとしてリードヒット時の動作(リフィル済のリードアクセス対象のデータを読み出す)をするか、このミスヒットしたリードアクセスが完了しなくとも進められる後続の処理に移ることとなる。
In the case of (e): Only the place where the valid bit is invalid (V = 0) is different from that in (d). Since the data is invalid at V = 0, a read error occurs.
In the case of (f): The tag bit (Tag) of the read access target data matches the tag address (AD [31:16]), refilling is in progress (R = 1), and the word address (AD [ 3: 2]) is a case where the dirty bit (D0 in FIG. 4) corresponding to the word (W0 in FIG. 4) is not dirty (clean). In this case, a miss hit occurs, and the control unit 6a of the cache memory 6 notifies the CPU 2 that refilling is in progress. The CPU 2 waits until the notification is no longer being refilled (waits until the refill is completed), and performs a read hit operation (reads the refilled read access target data) as a read hit after the refill is completed, or the missed read Even if the access is not completed, the process proceeds to the subsequent process.

(g)の場合・・・リードアクセス対象のデータのタグビット(Tag)とタグアドレス(AD[31:16])とが一致し、リフィル中(R=1)であり、ワードアドレス(AD[3:2])に示されるワード(図4ではW2)に対応するダーティビット(図4ではD2)がダーティな場合である。この場合は、リードヒットとなり、CPU2は、ワードアドレス(AD[3:2])に示されるワードのデータを読み出す。   In the case of (g): The tag bit (Tag) of the read access target data matches the tag address (AD [31:16]), refilling is in progress (R = 1), and the word address (AD [ 3: 2]) is a case where the dirty bit (D2 in FIG. 4) corresponding to the word (W2 in FIG. 4) is dirty. In this case, a read hit occurs, and the CPU 2 reads the data of the word indicated by the word address (AD [3: 2]).

(h)の場合・・・タグビット(Tag)とタグアドレス(AD[31:16])とが一致していない場合である。これは、アクセス対象のデータのアドレスとデータ格納部に実際に格納されているデータのアドレスとが異なることを意味するので、他の条件を判断するまでもなく、ライト・リードに関わらずミスヒットとなる。
以上説明したように、ヒット判定器20は、(g)の場合のように、リフィル中であったとしても、リードアクセス対象のワードに対応するダーティビットがダーティであればリードヒットとして判定するので、従来よりリードヒット率を向上させることができる。
In the case of (h): This is a case where the tag bit (Tag) and the tag address (AD [31:16]) do not match. This means that the address of the data to be accessed is different from the address of the data that is actually stored in the data storage unit, so it is not necessary to judge other conditions. It becomes.
As described above, the hit determiner 20 determines a read hit if the dirty bit corresponding to the read access target word is dirty even if refilling is in progress as in (g). As a result, the read hit rate can be improved.

また、ヒット判定器20は、(c)の場合のように、リフィル中であったとしても、ライトヒットとして判定するので、従来よりライトヒット率を向上させることができる。
次に、CPU2、キャッシュメモリ6、主記憶4の処理の流れについて、ライトアクセス時とリードアクセス時を分けて順に説明する。
図5は、ライトアクセス時におけるCPU2、キャッシュメモリ6、主記憶4のシーケンス図である。なお、初期状態において、ライトアクセス要求の対象となるラインはリフィル中でない(R=0)として説明する。
Moreover, since the hit determination unit 20 determines as a write hit even if refilling is in progress as in the case of (c), the write hit rate can be improved as compared with the prior art.
Next, the processing flow of the CPU 2, the cache memory 6, and the main memory 4 will be described in order for write access and read access separately.
FIG. 5 is a sequence diagram of the CPU 2, the cache memory 6, and the main memory 4 at the time of write access. In the initial state, it is assumed that the line that is the target of the write access request is not being refilled (R = 0).

CPU2がライトアクセス要求するデータは、一旦ライトバッファ8で保持する。そして、ライトバッファ8は、キャッシュメモリへのライトアクセス要求とともに、データとこのデータのアドレス(AD[31:0])22とをキャッシュメモリ6へと送る(S0)。
ライトアクセス要求を受けたキャッシュメモリ6のヒット判定器20は、前述のようにライトバッファ8から送られたデータのアドレス(AD[31:0])22のタグアドレス(AD[31:16])とライトアクセス要求の対象となったデータのラインのタグビット(Tag)との比較や、ラインのリフィルビット(R)などに基づいて、ヒット判定を行う。
Data requested by the CPU 2 for write access is temporarily held in the write buffer 8. The write buffer 8 sends the data and the address (AD [31: 0]) 22 of the data to the cache memory 6 together with the write access request to the cache memory (S0).
The hit determination unit 20 of the cache memory 6 that has received the write access request, as described above, the tag address (AD [31:16]) of the address (AD [31: 0]) 22 of the data sent from the write buffer 8 as described above. Is compared with the tag bit (Tag) of the line of the data subject to the write access request, and the hit determination is performed based on the refill bit (R) of the line.

ライトヒットと判定すれば(S1:Yes)、ライトアクセス要求の対象となるラインのワードにデータを書き込み、必要に応じてそのワードに対応するダーティビットをアサートする(S11)。
ライトミスと判定すれば(S1:No)、キャッシュメモリ6は、ラインのリフィルビットをアサートし(S2:R=1)、ライトバック処理(S3-S8)に移行する。この時、ライトミスしたライトアクセス要求のタグアドレス(AD[31:16])で、タグビット(Tag)を更新する。
If it is determined as a write hit (S1: Yes), data is written to the word of the line that is the target of the write access request, and a dirty bit corresponding to the word is asserted as necessary (S11).
If it is determined that there is a write miss (S1: No), the cache memory 6 asserts the refill bit of the line (S2: R = 1), and proceeds to the write back process (S3-S8). At this time, the tag bits (Tag) are updated with the tag address (AD [31:16]) of the write access request in which the write miss occurred.

ライトバック処理(S3-S8)では、バリッドビットが無効であれば(S3:No,V=0)、ラインが無効であり書き戻すべきデータが無いので処理を終える。
バリッドビットが有効であれば(S3:Yes,V=1)、ライン中のワードにおいて、ワードに対応するダーティビットがダーティ(D=1)なワードだけをライトバッファ10に書き戻す(S4,S5)。書き戻しを終えたワードに対応するダーティビットはクリーン(D=0)にネゲートする(S6)。
In the write-back process (S3-S8), if the valid bit is invalid (S3: No, V = 0), the line is invalid and there is no data to be written back, and the process ends.
If the valid bit is valid (S3: Yes, V = 1), only the word in the line where the dirty bit corresponding to the word is dirty (D = 1) is written back to the write buffer 10 (S4, S5). ). The dirty bit corresponding to the word that has been written back is negated cleanly (D = 0) (S6).

なお、ライトバッファ10に書き戻されたデータは、バスが空いているときなど適当なタイミングで主記憶4へとさらにライトバックされることとなる。
ラインに含まれる4つのワードについてS4からS6までの処理を終えると(S7:Yes)、ラインのバリッドビットを無効化(S8:V=0)する。
ライトバック処理(S3-S8)を終えると、キャッシュメモリ6は、リフィル・タグ更新を行う(S9)。具体的には、リードバッファ12が主記憶4から読み出し済みのライトアクセス対象のラインのデータを、キャッシュメモリ6のラインに上書きする。
Note that the data written back to the write buffer 10 is further written back to the main memory 4 at an appropriate timing such as when the bus is free.
When the processing from S4 to S6 is completed for the four words included in the line (S7: Yes), the valid bit of the line is invalidated (S8: V = 0).
When the write back process (S3-S8) is completed, the cache memory 6 performs refill / tag update (S9). Specifically, the read buffer 12 overwrites the line of the cache memory 6 with the data of the write access target line that has been read from the main memory 4.

このリフィルでは、D=0のワードのみ上書きし、書き戻しされていないワードの上書きを回避する。
キャッシュメモリ6は、リードバッファ12からの読み込みを完了すると(S9)、ラインを有効化し(S10:V=1)、リフィルビットをネゲート(S10:R=0)して一連のリフィルを終了する。
In this refill, only words with D = 0 are overwritten, and overwriting of unwritten words is avoided.
When the reading from the read buffer 12 is completed (S9), the cache memory 6 validates the line (S10: V = 1), negates the refill bit (S10: R = 0), and ends a series of refills.

なお、図5のフローでは、まず先にライトバック処理(S3-S8)を行い、その後でリフィルの処理を行う(S9)として説明したが、両処理はこれに限らず並行して行っても構わない。
図6は、リードアクセス時におけるCPU2、キャッシュメモリ6、主記憶4のシーケンス図である。なお、初期状態において、リードアクセス要求の対象となるラインはリフィル中でない(R=0)として説明する。
In the flow of FIG. 5, the write back process (S3-S8) is performed first, and then the refill process is performed (S9). However, both processes are not limited to this and may be performed in parallel. I do not care.
FIG. 6 is a sequence diagram of the CPU 2, the cache memory 6, and the main memory 4 at the time of read access. In the initial state, it is assumed that the line that is the target of the read access request is not being refilled (R = 0).

CPU2がキャッシュメモリ6にリードアクセスを要求すると(S20)、要求を受けたキャッシュメモリ6はヒット判定器20において前述のヒット判定を行う。
リードヒットと判定すれば(S21:Yes)、CPU2は、リードアクセス要求の対象となるラインのワードからデータを読み出す。
リードミスヒットと判定すれば(S21:No)、S2からS10までのリフィル処理に移行する。この処理は図5を用いて既に説明したものと同様であるので説明を省略する。
When the CPU 2 requests read access to the cache memory 6 (S20), the cache memory 6 that has received the request performs the hit determination described above in the hit determination unit 20.
If it is determined as a read hit (S21: Yes), the CPU 2 reads data from the word of the line that is the target of the read access request.
If it is determined as a read miss hit (S21: No), the process proceeds to a refill process from S2 to S10. Since this process is the same as that already described with reference to FIG.

次に、キャッシュメモリ6のあるラインがリフィル中の場合に、このライン中のワードへのライト/リードアクセスがあったときの例について説明する。
図7は、あるラインのワード(W0,W1,W2,W3)のリフィルを時系列上で説明する図である。(a)を用いてライトアクセス時の処理について説明し、(b)を用いてリードアクセス時の処理について説明する。
Next, an example when a line in the cache memory 6 is being refilled and there is a write / read access to a word in this line will be described.
FIG. 7 is a diagram for explaining the refill of words (W0, W1, W2, W3) on a certain line in time series. The process at the time of write access will be described using (a), and the process at the time of read access will be described using (b).

ライトアクセス時は、図7(a)に示すように、キャッシュメモリ6は、t0→t1→t2→t3→t4の間に、それぞれW0→W1→W2→W3の順番でリフィルが完了するものとする。また、リフィル開始時にはリフィルビットをアサートし、リフィルすべき新しいラインのアドレスにラインのタグビット(Tag)を更新する。
本実施の形態においては、リフィル途中にも関わらずライトアクセス要求を受けてデータの上書きを許容するので、ラインのタグビット(Tag)が、現実に上書きしたデータのタグと不一致にならないように、図7(a)に示すように、リフィル開始時にタグを更新する。
At the time of write access, as shown in FIG. 7A, the cache memory 6 completes refilling in the order of W0 → W1 → W2 → W3 during t0 → t1 → t2 → t3 → t4. To do. At the start of refill, the refill bit is asserted, and the line tag bit (Tag) is updated to the address of the new line to be refilled.
In this embodiment, the write access request is accepted in the middle of refilling and data overwriting is allowed, so that the tag bit (Tag) of the line does not coincide with the tag of the actually overwritten data. As shown in FIG. 7A, the tag is updated at the start of refilling.

まず、t0からt2までの間にワードW2へのライトアクセス要求があった場合には、ヒット判定器20は前述のようにライトヒットと判定し、ワードW2へのライトアクセスを受けて対応するダーティビット(D2)をアサートする。その後、t2からt3の間は、ワードW2のダーティビット(D2)がアサートされているので、キャッシュメモリ6は、ワードW2への上書きを行わない。   First, if there is a write access request to the word W2 between t0 and t2, the hit determination unit 20 determines that it is a write hit as described above, and receives the write access to the word W2 to receive the corresponding dirty. Assert bit (D2). Thereafter, since the dirty bit (D2) of the word W2 is asserted between t2 and t3, the cache memory 6 does not overwrite the word W2.

なお、上書きを行わない方法としては、例えば、ライトアクセスは行うが、ワードへの書き込みをマスクする信号を利用することが考えられる。また、ワードへのライトアクセス自体を行わずに処理をスキップしてもよい。
次に、t2からt3までの間にワードW2へのライトアクセス要求があった場合には、ライトヒットと判定し、ワードW2へのライトアクセスを受けて対応するダーティビット(D2)をアサートする。この場合、ライトアクセス要求時には、ワードW2は既にリフィル中であるので、キャッシュメモリ6はライト制御を調停して両者の競合を防ぐ。
As a method of not performing overwriting, for example, it is conceivable to use a signal that masks writing to a word while performing write access. Further, the processing may be skipped without performing write access to the word itself.
Next, if there is a write access request to the word W2 between t2 and t3, it is determined as a write hit, and the corresponding dirty bit (D2) is asserted in response to the write access to the word W2. In this case, since the word W2 is already being refilled at the time of a write access request, the cache memory 6 arbitrates write control to prevent conflict between the two.

そして、t3からt4までの間にワードW2へのライトアクセス要求があった場合には、ライトヒットと判定し、ワードW2へのライトアクセスを受けて対応するダーティビット(D2)をアサートする。
リードアクセス時は、図7(b)に示すように、図7(a)同様に、キャッシュメモリ6は、t0→t1→t2→t3→t4の間に、それぞれW0→W1→W2→W3の順番でリフィルが完了するものとする。
If there is a write access request to the word W2 between t3 and t4, it is determined as a write hit, and the corresponding dirty bit (D2) is asserted in response to the write access to the word W2.
At the time of read access, as shown in FIG. 7B, as in FIG. 7A, the cache memory 6 is in the order of W0 → W1 → W2 → W3 during t0 → t1 → t2 → t3 → t4. It is assumed that refilling is completed in order.

まず、t0からt4までの間にワードW2へのリードアクセス要求があった場合、ワードW2に対応するダーティビットが有効であるならば、ヒット判定器20は前述のようにリードヒットと判定し、ワードW2へのリードアクセスを受け付ける。
これに対して、t0からt4までの間にワードW2へのリードアクセス要求があった場合で、ワードW2に対応するダーティビットが無効ならば、ヒット判定器20は前述のようにリードミスヒットと判定する。CPU2は、リフィル完了まで待つこととなる。
First, if there is a read access request to the word W2 between t0 and t4, if the dirty bit corresponding to the word W2 is valid, the hit determination unit 20 determines a read hit as described above, and Accept read access to word W2.
On the other hand, if there is a read access request to the word W2 between t0 and t4 and the dirty bit corresponding to the word W2 is invalid, the hit determination unit 20 determines that it is a read miss hit as described above. To do. The CPU 2 waits until the refill is completed.

<補足>
以上、本発明の実施の形態について説明したが、本発明は上記の内容に限定されず、本発明の目的とそれに関連または付随する目的を達成するための各種形態においても実施可能であり、例えば、以下であってもよい。
(1)実施の形態では、ダイレクトマップ方式のキャッシュメモリを例に挙げて説明したが、この方式に限らずフルアソシアティブ方式やセットアソシアティブ方式を採用したキャッシュメモリを用いても構わない。これらの方式の場合には、ライトミスヒット時のリフィル対象のラインがダイレクトマップ方式のように一意のラインに決まるのではなく、LRU(Least Recently Used)方式やラウンドロビン方式などのアルゴリズムなどに基づいて行われる点が異なってくる。
<Supplement>
As mentioned above, although embodiment of this invention was described, this invention is not limited to said content, It can implement also in the various forms for achieving the objective of this invention, the objective related to it, or an incidental, for example, It may be the following.
(1) In the embodiment, the direct map type cache memory has been described as an example. However, the present invention is not limited to this type, and a cache memory employing a full associative method or a set associative method may be used. In these methods, the line to be refilled at the time of a write miss hit is not determined as a unique line as in the direct map method, but based on algorithms such as the LRU (Least Recently Used) method and the round robin method. Is different.

また、共有バスを介して複数のキャッシュメモリが下位層の単一のメモリを共有するような共有メモリ型のキャッシュメモリシステムにおいても、ライトバックキャッシュメモリを構成、制御する方法として本発明を適用することができる。
(2)実施の形態では、対応するダーティビットがダーティなワードのみをライトバックする例について説明したが、ダーティワードを含む数ワード、もしくはラインに含まれるワードすべてをライトバックするとしてもよい。また書き戻しの際には、周知の技術のように、ライトバッファ10に積まれたデータが主記憶4に書き戻されるよりも以前に、書き戻されるアドレスのデータが主記憶4から読み出されることが無いようにシステム全体は制御することができる。
The present invention is also applied as a method for configuring and controlling a write-back cache memory in a shared memory type cache memory system in which a plurality of cache memories share a single lower layer memory via a shared bus. be able to.
(2) In the embodiment, an example of writing back only a word having a dirty bit corresponding to the dirty bit has been described. However, several words including a dirty word or all words included in a line may be written back. At the time of writing back, the data at the address to be written back is read from the main memory 4 before the data accumulated in the write buffer 10 is written back to the main memory 4 as in a known technique. The entire system can be controlled so that there is no.

(3)実施の形態では、図1に示すように、キャッシュメモリ6の入出力につながるパスにライトバッファ8,10とリードバッファ12を配することで、中央処理装置からキャッシュメモリへのライトアクセス、キャッシュメモリから主記憶へのライトアクセス、主記憶からキャッシュメモリへのライトアクセスが緩衝され、より柔軟なキャッシュメモリ制御が可能となる。   (3) In the embodiment, as shown in FIG. 1, write access from the central processing unit to the cache memory is performed by arranging the write buffers 8 and 10 and the read buffer 12 in the path connected to the input / output of the cache memory 6. The write access from the cache memory to the main memory and the write access from the main memory to the cache memory are buffered, so that more flexible cache memory control is possible.

(4)実施の形態では、特に詳細を述べなかったが、システム全体へのオーバーヘッドを軽減する別のアプローチとして、ライトバッファを配置して制御系に工夫を施すことも考えられる。具体的には、ライトミスへの対応として、上位層メモリとキャッシュメモリとの間に多機能なライトバッファを配置し、リフィル中のラインへのライトは、上記ライトバッファにあるデータに対して上書き更新し、リフィル中のラインのリードは、上記ライトバッファから読み出すという制御を行うというものである。しかし、この制御は非常に複雑なものとなる。   (4) Although no particular details have been described in the embodiment, it is conceivable to devise the control system by arranging a write buffer as another approach for reducing the overhead of the entire system. Specifically, in response to a write miss, a multi-functional write buffer is placed between the upper layer memory and the cache memory, and writing to the line being refilled overwrites the data in the write buffer. The update of the line being refilled is read out from the write buffer. However, this control is very complicated.

これに対して、実施の形態では、ヒット判定器20のヒット判定という簡単な制御を通してシステム全体へのオーバーヘッドを軽減することが可能となる。
(5)階層メモリシステムとして、中央処理装置、キャッシュメモリ、主記憶の構成を例示したが、さらに深い階層構成のメモリシステムのキャッシュメモリとしてもよい。例えば、キャッシュメモリが、1次キャッシュメモリと2次キャッシュメモリとから構成される場合がある。この場合、本実施の形態を、1次キャッシュメモリに適用してもよいし、2次キャッシュメモリに適用してもよい。
On the other hand, in the embodiment, it is possible to reduce overhead for the entire system through simple control of hit determination of the hit determination unit 20.
(5) Although the configuration of the central processing unit, the cache memory, and the main memory is illustrated as the hierarchical memory system, it may be a cache memory of a memory system having a deeper hierarchical configuration. For example, the cache memory may be composed of a primary cache memory and a secondary cache memory. In this case, the present embodiment may be applied to a primary cache memory or a secondary cache memory.

本発明のキャッシュメモリは、一般的な半導体回路内部に存在するキャッシュメモリとして利用でき、キャッシュヒット率を向上できるので有用である。   The cache memory of the present invention can be used as a cache memory existing in a general semiconductor circuit and is useful because it can improve the cache hit rate.

キャッシュメモリシステム1の構成図Configuration diagram of cache memory system 1 キャッシュメモリ6の構成を示す図The figure which shows the structure of the cache memory 6 ヒット判定器20の回路構成例Circuit configuration example of hit determination unit 20 図3のヒット判定器20が入力に応じて出力する判定結果を示す表50の図FIG. 50 is a table 50 showing determination results output by the hit determination device 20 of FIG. 3 according to input. ライトアクセス時におけるCPU2、キャッシュメモリ6、主記憶4のシーケンス図Sequence diagram of CPU 2, cache memory 6, and main memory 4 during write access リードアクセス時におけるCPU2、キャッシュメモリ6、主記憶4のシーケンス図Sequence diagram of CPU 2, cache memory 6, and main memory 4 during read access あるラインのワード(W0,W1,W2,W3)のリフィルを時系列上で説明する図Diagram explaining the refill of a word (W0, W1, W2, W3) on a line in time series

符号の説明Explanation of symbols

1 キャッシュメモリシステム
2 CPU
4 主記憶
6 キャッシュメモリ
8 ライトバッファ
10 ライトバッファ
12 リードバッファ
14 タグ格納部
20 ヒット判定器
22 アドレス
1 cache memory system 2 CPU
4 Main memory 6 Cache memory 8 Write buffer 10 Write buffer 12 Read buffer 14 Tag storage unit 20 Hit determiner 22 Address

Claims (6)

それぞれ複数のワードを含む複数のラインと、
前記ラインに格納されたデータの主記憶におけるアドレスを示すタグと、前記ライン毎にラインがリフィル中であるか否かを示すリフィルビットと、前記ワード毎にワードにおけるデータがダーティであるか否かを示すダーティビットとを格納するタグ格納部と、
リードアクセス対象のタグアドレスと、前記タグに示されるアドレスとが一致し、
リードアクセス対象に係るラインに対応するリフィルビットがリフィル中を示し、
かつ、当該ラインに含まれリードアクセス対象に係るワードに対応するダーティビットがダーティを示していれば、
リードヒットと判定するヒット判定手段と
を備えることを特徴とするキャッシュメモリ。
Multiple lines, each containing multiple words,
A tag indicating the address in the main memory of the data stored in the line, a refill bit indicating whether or not the line is being refilled for each line, and whether or not the data in the word is dirty for each word A tag storage unit for storing a dirty bit indicating
The tag address of the read access target matches the address indicated in the tag,
The refill bit corresponding to the line related to the read access target indicates that refill is being performed,
And, if the dirty bit corresponding to the word related to the read access target included in the line indicates dirty,
A cache memory comprising: hit determination means for determining a read hit.
前記ヒット判定手段は、ライトアクセス対象に係るラインのアドレスと、前記タグに示されるアドレスが一致するラインであって、当該ラインに対応するリフィルビットがリフィル中であることを示す場合には、ライトヒットと判定する
ことを特徴とする請求項1に記載のキャッシュメモリ。
The hit determination means writes a write when the address of the line related to the write access and the address indicated by the tag match and the refill bit corresponding to the line indicates that refill is being performed. The cache memory according to claim 1, wherein the cache memory is determined to be a hit.
前記ヒット判定手段は、当該ワードに対応するダーティビットがダーティを示していなければ、リードミスヒットと判定する
ことを特徴とする請求項1に記載のキャッシュメモリ。
2. The cache memory according to claim 1, wherein the hit determination means determines a read miss hit if the dirty bit corresponding to the word does not indicate dirty.
それぞれ複数のワードを含む複数のラインと、
前記ラインに格納されたデータの主記憶におけるアドレスを示すタグと、前記ライン毎にラインがリフィル中であるか否かを示すリフィルビットと、前記ワード毎にワードにおけるデータがダーティであるか否かを示すダーティビットとを格納するタグ格納部と、
ライトアクセス対象のタグアドレスと、前記タグに示されるアドレスとが一致し、
当該ラインに対応するリフィルビットがリフィル中であることを示す場合には、
ライトヒットと判定するヒット判定手段と
を備えることを特徴とするキャッシュメモリ。
Multiple lines, each containing multiple words,
A tag indicating the address in the main memory of the data stored in the line, a refill bit indicating whether or not the line is being refilled for each line, and whether or not the data in the word is dirty for each word A tag storage unit for storing a dirty bit indicating
The tag address for write access matches the address indicated in the tag,
If the refill bit corresponding to the line indicates that it is being refilled,
A cache memory comprising: hit determination means for determining a write hit.
さらに、前記ヒット判定手段によりライトヒットと判定された場合に、前記ライトアクセスに係るワードへの書き込みがあると、当該ワードに対応するダーティビットをアサートし、
ラインのリフィルに際して、ダーティビットがダーティであることを示さないワードに対してはデータの上書きを許可し、前記アサートによりダーティであることを示すワードに対してはデータの上書きを禁止する制御手段を備える
ことを特徴とする請求項4に記載のキャッシュメモリ。
Further, when it is determined as a write hit by the hit determination means, if there is a write to a word related to the write access, a dirty bit corresponding to the word is asserted,
Control means for permitting overwriting of data for a word whose dirty bit does not indicate dirty, and prohibiting overwriting of data for a word indicating dirty by the assertion when refilling a line The cache memory according to claim 4, further comprising:
中央処理装置と、
請求項1または4に記載のキャッシュメモリと、
前記中央処理装置と前記キャッシュメモリと記憶階層において間の階層に位置し、前記中央処理装置が前記キャッシュメモリへとライトすべきデータを保持する第1ライトバッファと、
前記キャッシュメモリとライトバック対象となるメモリと記憶階層において間の階層に位置し、前記キャッシュメモリから前記ライトバック対象となるメモリへとライトバックすべきデータを保持する第2ライトバッファと、
前記キャッシュメモリと前記ライトバック対象となるメモリと記憶階層において間の階層に位置し、前記キャッシュメモリがリードすべきデータを保持するリードバッファと
を備えることを特徴とするキャッシュメモリシステム。
A central processing unit;
The cache memory according to claim 1 or 4,
A first write buffer located in a hierarchy between the central processing unit and the cache memory and the storage hierarchy, and holding data to be written to the cache memory by the central processing unit;
A second write buffer located in a hierarchy between the cache memory and the memory to be written back and the storage hierarchy, and holding data to be written back from the cache memory to the memory to be written back;
A cache memory system comprising: a read buffer that is located in a hierarchy between the cache memory, the memory to be written back, and a storage hierarchy and holds data to be read by the cache memory.
JP2008231461A 2008-09-09 2008-09-09 Cache memory and cache memory system Pending JP2011248389A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008231461A JP2011248389A (en) 2008-09-09 2008-09-09 Cache memory and cache memory system
PCT/JP2009/004105 WO2010029694A1 (en) 2008-09-09 2009-08-26 Cache memory and cache memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008231461A JP2011248389A (en) 2008-09-09 2008-09-09 Cache memory and cache memory system

Publications (1)

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

Family

ID=42004960

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008231461A Pending JP2011248389A (en) 2008-09-09 2008-09-09 Cache memory and cache memory system

Country Status (2)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014185652A1 (en) * 2013-05-16 2014-11-20 이화여자대학교 산학협력단 Method for replacing cache memory block having low write traffic and information processing device having cache subsystem using same

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012014318A (en) * 2010-06-30 2012-01-19 Nec Corp Cache control device and cache control method
US9342461B2 (en) * 2012-11-28 2016-05-17 Qualcomm Incorporated Cache memory system and method using dynamically allocated dirty mask space
CN115809028B (en) * 2023-01-19 2023-05-12 北京象帝先计算技术有限公司 Cache data replacement method and device, graphics processing system and electronic equipment

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02188849A (en) * 1989-01-18 1990-07-24 Agency Of Ind Science & Technol Cache memory system
JP3733604B2 (en) * 1993-12-27 2006-01-11 松下電器産業株式会社 Cache memory
JP3985889B2 (en) * 2001-08-08 2007-10-03 株式会社ルネサステクノロジ Semiconductor device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014185652A1 (en) * 2013-05-16 2014-11-20 이화여자대학교 산학협력단 Method for replacing cache memory block having low write traffic and information processing device having cache subsystem using same
KR101474842B1 (en) 2013-05-16 2014-12-19 이화여자대학교 산학협력단 Method for replacing cache memory blocks with for lower amount of write traffic and information processing apparatus having cache subsystem using the same

Also Published As

Publication number Publication date
WO2010029694A1 (en) 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 (en) Cache device
US8145844B2 (en) Memory controller with write data cache and read data cache
JP5453546B2 (en) Address translation unit containing multiple virtual queues
US8219758B2 (en) Block-based non-transparent cache
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 (en) Data managing method for i/o cache memory
JP2010517179A (en) Method and apparatus for setting a cache policy in a processor
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
JP2007156821A (en) Cache system and shared secondary cache
JP2011248389A (en) Cache memory and cache memory system
US7328313B2 (en) Methods to perform cache coherency in multiprocessor system using reserve signals and control bits
JP2010128698A (en) Multiprocessor system
US9760488B2 (en) Cache controlling method for memory system and cache system thereof
JP2005346582A (en) System lsi and image processor
US20230305968A1 (en) Cache replacement policy optimization for producer-consumer flows
JP4583981B2 (en) Image processing device
JPH09185547A (en) Method and device for controlling multiprocessor
JPH02224161A (en) Fast data processor
US20190286562A1 (en) Information processing apparatus, cache control apparatus and cache control method
JP4856373B2 (en) Memory system, control method thereof, and method of maintaining data coherency