JP2012194742A - Replacement data memory device, central processing unit and replacement data processing method - Google Patents

Replacement data memory device, central processing unit and replacement data processing method Download PDF

Info

Publication number
JP2012194742A
JP2012194742A JP2011057750A JP2011057750A JP2012194742A JP 2012194742 A JP2012194742 A JP 2012194742A JP 2011057750 A JP2011057750 A JP 2011057750A JP 2011057750 A JP2011057750 A JP 2011057750A JP 2012194742 A JP2012194742 A JP 2012194742A
Authority
JP
Japan
Prior art keywords
data
address
replacement
stored
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.)
Pending
Application number
JP2011057750A
Other languages
Japanese (ja)
Inventor
Akira Kikuchi
明 菊池
Atsushi Yadagawa
篤 谷田川
Hiroyuki Kaneda
浩行 兼田
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.)
NEC Engineering Ltd
Original Assignee
NEC Engineering 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 NEC Engineering Ltd filed Critical NEC Engineering Ltd
Priority to JP2011057750A priority Critical patent/JP2012194742A/en
Publication of JP2012194742A publication Critical patent/JP2012194742A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

PROBLEM TO BE SOLVED: To reduce the number of access to a main storage device when a cache mistake is generated.SOLUTION: A replacement data memory device stores, out of replacement data which is stored in a main storage device when a replacement is generated in a cache memory, only data stored in an address in the cache memory relating to the cache mistake which has caused the replacement. The replacement data memory device sets, when another cache mistake is generated, and if data relating to the other cache mistake is stored in the device itself, the data relating to the other cache mistake stored in the device itself as load data.

Description

本発明は、キャッシュ・ミス発生時にキャッシュメモリから追い出されたリプレースメントデータを記憶するリプレースメントデータメモリ装置及びリプレースメントデータ処理方法並びにリプレースメントデータメモリ装置を含む中央演算装置に関する。   The present invention relates to a replacement data memory device for storing replacement data evicted from a cache memory when a cache miss occurs, a replacement data processing method, and a central processing unit including the replacement data memory device.

主記憶装置として利用されるDRAM(Dynamic Random Access Memory)は構造的に高速化しにくく、マイクロ・プロセッサが主記憶装置にアクセスすることで発生するレイテンシは、コンピュータ・システム性能を著しく抑制する。一方で、近年のマイクロ・プロセッサの多くは、キャッシュメモリの役割を果たすSRAM(Static Random Access Memory)を内包しており、予め主記憶装置のデータの一部をキャッシュメモリに格納しておくことで、主記憶装置へのアクセス・レイテンシを短縮し、マイクロ・プロセッサの処理能力の向上が図られている。   DRAM (Dynamic Random Access Memory) used as a main storage device is structurally difficult to increase in speed, and the latency generated when the microprocessor accesses the main storage device significantly suppresses the performance of the computer system. On the other hand, many of recent microprocessors include an SRAM (Static Random Access Memory) that functions as a cache memory. By storing a part of the data in the main storage device in the cache memory in advance. The access latency to the main storage device is shortened, and the processing capacity of the microprocessor is improved.

前述のキャッシュメモリの特徴として、キャッシュ・ミスを起こしたときに、新しいデータをキャッシュブロックに格納する必要があるが、このとき、データを入れるべきキャッシュブロック上に更新されたデータが入っている場合、そのキャッシュブロック上のデータを主記憶装置に書き戻し、その後に新しいデータを格納する必要性が生じる。これをリプレースメントと呼ぶ。   As a characteristic of the above-mentioned cache memory, when a cache miss occurs, it is necessary to store new data in the cache block, but at this time, if the updated data is in the cache block where the data should be placed The data on the cache block needs to be written back to the main memory, and then new data needs to be stored. This is called replacement.

リプレースメントが発生した際に、主記憶装置との間で行われるキャッシュブロックのリプレース方法としては、リプレース対象となる複数の連想度(WAY)を有するキャッシュブロックのうち最も古くに使用されたキャッシュブロックをリプレース対象として選択するLRU(Least Recently Used)方式や、最初にデータが格納されたキャッシュブロックを更新対象とするFIFO(First In First Out)方式等がある。FIFOは、プログラムの処理は逐次的に進められるという推測に基づいて、最も古く読み込んだキャッシュブロックを置き換える。一方LRUは、長い時間参照されていないキャッシュブロックは、近い将来にも参照される可能性が低いという推測に基づいて、最後に参照されてから最も長い時間が経過したキャッシュブロックを置き換える。リプレースメントした後に、キャッシュ・ミスを低減し、主記憶装置へのアクセスを回避するために、上述したアルゴリズムが多くのプロセッサで採用されている。   When a replacement occurs, the cache block replacement method performed with the main storage device is the oldest used cache block among cache blocks with multiple associations (WAYs) to be replaced. There are an LRU (Least Recently Used) method for selecting a replacement target, a FIFO (First In First Out) method for updating a cache block in which data is first stored, and the like. The FIFO replaces the oldest read cache block based on the assumption that the processing of the program proceeds sequentially. LRU, on the other hand, replaces the cache block that has the longest time since it was last referenced based on the assumption that cache blocks that have not been referenced for a long time are unlikely to be referenced in the near future. In order to reduce cache misses and avoid access to main memory after replacement, the above algorithm is employed in many processors.

一方で、近年の研究、例えば非特許文献1によると、キャッシュ・ミスを引き起こすロード命令の多くは、プログラム実行中に一旦ストアされたデータをロードするものであることが複数のベンチマーク結果により報告されている。即ち、一旦はキャッシュメモリに格納した経験のあるデータが、後にキャッシュメモリからリプレースメントもしくは無効化されてしまい、必要とする時に該データがキャッシュメモリに存在しなかったことを意味する。   On the other hand, according to recent research, for example, Non-Patent Document 1, it has been reported by a plurality of benchmark results that many load instructions that cause cache misses load data stored once during program execution. ing. That is, it means that the data once stored in the cache memory was later replaced or invalidated from the cache memory, and the data did not exist in the cache memory when needed.

大抵のプログラムにはループ制御が多く含まれており、同じ命令列やデータは繰り返しアクセスされる可能性が高くなるために、ロード対象データを事前にストアする頻度は高くなると推測される。   Most programs include a lot of loop control, and the same instruction sequence and data are likely to be repeatedly accessed. Therefore, it is presumed that the frequency of storing the load target data in advance increases.

また、特開平09−190382号公報(特許文献1)、特開平09−288616号公報(特許文献2)では、ダイレクト・マップ方式のキャッシュメモリで発生するスラッシングによる処理速度低下を改善するために、キャッシュメモリから追い出されるラインのアドレスを監視し、追い出されるアドレス、データをメモリまたはバッファに格納する手段が提示されている。   Further, in Japanese Patent Application Laid-Open No. 09-190382 (Patent Document 1) and Japanese Patent Application Laid-Open No. 09-288616 (Patent Document 2), in order to improve a reduction in processing speed due to thrashing that occurs in a direct mapped cache memory, Means are provided for monitoring the address of a line evicted from the cache memory and storing the evicted address and data in a memory or buffer.

また、プロセッサによる主記憶装置に対するアクセス速度の向上のためにキャッシュメモリが設けられるが、キャッシュメモリだけではその向上が十分に図られない場合に、そのキャッシュメモリを一次キャッシュメモリとして、一次キャッシュメモリと主記憶装置との間に二次キャッシュメモリを設ける。   Further, a cache memory is provided to improve the access speed to the main storage device by the processor. However, when the cache memory alone cannot sufficiently improve the cache memory, the cache memory is used as the primary cache memory, A secondary cache memory is provided between the main storage device.

特開平10−307752号公報(特許文献3)には、ダイレクトマップ方式の二次キャッシュメモリを用いたシステムにおいて、二次キャッシュメモリに類似したバッファメモリを用いて動作速度を速くする発明が記載されている。   Japanese Patent Application Laid-Open No. 10-307752 (Patent Document 3) describes an invention for increasing the operation speed by using a buffer memory similar to the secondary cache memory in a system using a direct map type secondary cache memory. ing.

特開2003−288269号公報(特許文献4)には、キャッシュミス時に追い出されたデータのアドレス情報がリプレースアドレスメモリに未登録であれば、キャッシュメモリから追い出されたデータのアドレス情報をリプレースアドレスメモリに登録し、キャッシュミス時にキャッシュメモリに書き込まれたデータのアドレス情報がリプレースアドレスメモリに登録されていれば、キャッシュメモリに下記扱かれたデータをリプレースメント対象外のデータに設定し、そのリプレースメント対象外に設定されたデータのアドレス情報をリプレースアドレスメモリから削除する発明が記載されている。また、特開2003−288269号公報(特許文献4)には、リプレースアドレスメモリに登録されているデータのアドレス情報が登録されるプリフェッチアドレスバッファと、プリフェッチアドレスバッファに登録されたアドレス情報のデータを登録できるプリフェッチバッファとを更に備え、CPUからのメモリアクセス要求がないときに、プリフェッチバッファに有効なデータがなければ、プリフェッチアドレスバッファに登録されたアドレス情報を持つラインのデータをメインメモリからフェッチしてプリフェッチバッファに登録し、プリフェッチバッファに有効なデータがあれば、プリフェッチバッファのデータをキャッシュメモリに登録する発明が記載されている。   In Japanese Patent Laid-Open No. 2003-288269 (Patent Document 4), if the address information of data evicted at the time of a cache miss is not registered in the replace address memory, the address information of the data evicted from the cache memory is stored in the replace address memory. If the address information of the data written to the cache memory at the time of a cache miss is registered in the replacement address memory, the data handled in the cache memory is set as data that is not subject to replacement, and is not subject to replacement. An invention is described in which the address information of the data set in is deleted from the replacement address memory. Japanese Patent Laid-Open No. 2003-288269 (Patent Document 4) describes a prefetch address buffer in which address information of data registered in a replace address memory is registered, and data in address information registered in the prefetch address buffer. A prefetch buffer that can be registered, and when there is no memory access request from the CPU, if there is no valid data in the prefetch buffer, the data of the line having the address information registered in the prefetch address buffer is fetched from the main memory. An invention is described in which data is registered in a prefetch buffer and if there is valid data in the prefetch buffer, the data in the prefetch buffer is registered in the cache memory.

特開平09−190382号公報JP 09-190382 A 特開平09−288616号公報JP 09-288616 A 特開平10−307752号公報Japanese Patent Laid-Open No. 10-307752 特開2003−288269号公報JP 2003-288269 A

三輪英樹、堂後靖博、井上弘士、」村上和彰 著「キャッシュ・ミス頻発ロード命令の特徴解析」情報処理学会ARC研究会、2005年11月Hideki Miwa, Akihiro Dogo, Hiroshi Inoue, “Kazuaki Murakami” “Characteristic Analysis of Load Instructions with Frequent Cache Misses” Information Processing Society of Japan ARC Study Group, November 2005

通常のキャッシュブロックのリプレースメントには以下のような問題点があった。即ち、上述したリプレース方法に基づいて動作するエントリ・リプレース手段では、プログラム実行中に一旦ストアされたデータが、後にキャッシュ・ミスを引き起こすロード対象データとなる場合、即ち、後に必要となるデータがキャッシュメモリに一旦格納されていたにも関わらず、その特定のリプレース・ルールに基づいてリプレースの対象となり、キャッシュメモリから消失してしまい、キャッシュ・ミスが発生する場合がある。このような場合には、大きなレイテンシを必要とする外部主記憶装置に対するアクセスが発生し、システム全体のスループットが著しく低下するという問題点があった。また、連想度(WAY)を増やすことで、前述した競合性のキャッシュ・ミスを減らす試みは取られているが、WAYの数だけ同一アドレスのキャッシュブロックを有するキャッシュメモリを増やすことにより、アクセス時間や不要なコストの増大に繋がるという問題点があった。   The usual replacement of cash blocks has the following problems. That is, in the entry / replacement means that operates based on the above-described replacement method, data once stored during program execution becomes data to be loaded that causes a cache miss later, that is, data that is required later is cached. Although stored once in the memory, it is subject to replacement based on the specific replacement rule, and it may disappear from the cache memory, resulting in a cache miss. In such a case, there is a problem in that an access to an external main storage device that requires a large latency occurs and the throughput of the entire system is significantly reduced. Although attempts have been made to reduce the above-mentioned competitive cache miss by increasing the association (WAY), the access time can be increased by increasing the number of cache memories having the same number of cache blocks as the number of WAYs. There is a problem that it leads to an increase in unnecessary costs.

キャッシュメモリから追い出されるアドレス、データを主記憶装置またはバッファに格納する時、例えば、アドレスは異なるが、データ内容が同じラインが多数存在している場合でも、異なるアドレスの分だけ、アドレス+データを格納するコスト(容量)が必要なため、効率的な運用ができなかった。   When storing the address and data evicted from the cache memory in the main memory or buffer, for example, even if there are many lines with the same data contents but with the same data contents, the address + data is only for the different addresses. Since the storage cost (capacity) is required, efficient operation was not possible.

また、特開平10−307752号公報(特許文献3)には、二次キャッシュメモリ又はそれに類似したメモリのデータ容量の効率的利用についての記載がない。   Japanese Patent Laid-Open No. 10-307752 (Patent Document 3) does not describe efficient use of the data capacity of the secondary cache memory or a similar memory.

特開2003−288269号公報(特許文献4)には、プリフェッチバッファの容量を効率的に利用することについての記載がない。また、特開2003−288269号公報(特許文献4)の発明は、リプレースメント自体の回数を減らしたり、キャッシュメモリがヒットする確率自体を増加させるものである。   Japanese Patent Laying-Open No. 2003-288269 (Patent Document 4) does not describe efficient use of the capacity of the prefetch buffer. The invention disclosed in Japanese Patent Application Laid-Open No. 2003-288269 (Patent Document 4) reduces the number of replacements itself or increases the probability that the cache memory hits itself.

本発明の目的は、キャッシュ・ミス発生時の主記憶装置へのアクセス回数を低減するリプレースメントデータメモリ装置及びリプレースメントデータ処理方法並びにリプレースメントデータメモリ装置を含む中央演算装置を提供することを目的とする。   An object of the present invention is to provide a replacement data memory device, a replacement data processing method, and a central processing unit including a replacement data memory device that reduce the number of accesses to a main storage device when a cache miss occurs.

本発明の第1の観点によれば、キャッシュメモリでリプレースメントが発生した時に主記憶装置にストアされるリプレースメントデータのうち前記リプレースメントの起因となったキャッシュミスに係る、前記キャッシュメモリのアドレスに記憶されていたデータのみを記憶し、別のキャッシュミスが発生した時に、該別のキャッシュミスに係るデータが自装置に記憶されているならば、自装置に記憶されている前記別のキャッシュミスに係るデータをロードデータとするリプレースメントデータメモリ装置が提供される。   According to the first aspect of the present invention, when replacement occurs in the cache memory, the replacement data stored in the main storage device is stored in the address of the cache memory related to the cache miss that caused the replacement. If the data related to the other cache miss is stored in the own device when another cache miss occurs, the data related to the other cache miss stored in the own device is stored. A replacement data memory device using data as load data is provided.

本発明の第2の観点によれば、キャッシュメモリでリプレースメントが発生した時に主記憶装置にストアされるリプレースメントデータを記憶し、別のキャッシュミスが発生した時に、該別のキャッシュミスに係るデータが自装置に記憶されているならば、自装置に記憶されている前記別のキャッシュミスに係るデータをロードデータとするリプレースメントデータメモリ装置であって、複数アドレスの間で共通なデータを前記複数アドレスに対応付けて記憶する記憶手段と、前記別のキャッシュミスに係るアドレスが前記複数アドレスのうちの何れかのアドレスと一致した場合には、前記複数アドレスに対応したデータをロードデータとするロード手段と、を備えることを特徴とするリプレースメントデータメモリ装置が提供される。   According to the second aspect of the present invention, the replacement data stored in the main storage device when the replacement occurs in the cache memory is stored, and when another cache miss occurs, the data related to the other cache miss is stored. A replacement data memory device that uses the data relating to the other cache miss stored in the own device as load data if stored in the own device, wherein the data common to a plurality of addresses is the plurality of addresses. Storage means for storing in association with each other, and load means for using, as load data, data corresponding to the plurality of addresses when the address relating to the other cache miss matches any one of the plurality of addresses A replacement data memory device is provided.

本発明の第3の観点によれば、キャッシュメモリでリプレースメントが発生した時に主記憶装置にストアされるリプレースメントデータのうち前記リプレースメントの起因となったキャッシュミスに係る、前記キャッシュメモリのアドレスに記憶されていたデータのみを記憶し、別のキャッシュミスが発生した時に、該別のキャッシュミスに係るデータがリプレースメントデータメモリ装置に記憶されているならば、リプレースメントデータメモリ装置に記憶されている前記別のキャッシュミスに係るデータをロードデータとするリプレースメントデータ処理方法が提供される。   According to the third aspect of the present invention, when replacement occurs in the cache memory, the replacement data stored in the main storage device is stored in the address of the cache memory related to the cache miss that caused the replacement. If the data related to the other cache miss is stored in the replacement data memory device when another cache miss occurs, the other data stored in the replacement data memory device is stored. A replacement data processing method is provided in which data relating to a cache miss is used as load data.

本発明の第4の観点によれば、キャッシュメモリでリプレースメントが発生した時に主記憶装置にストアされるリプレースメントデータのうち前記リプレースメントの起因となったキャッシュミスに係る、前記キャッシュメモリのアドレスに記憶されていたデータのみを記憶し、別のキャッシュミスが発生した時に、該別のキャッシュミスに係るデータがリプレースメントデータメモリ装置に記憶されているならば、リプレースメントデータメモリ装置に記憶されている前記別のキャッシュミスに係るデータをロードデータとするリプレースメントデータ処理方法をコンピュータに行なわせるためのプログラムが提供される。   According to the fourth aspect of the present invention, when replacement occurs in the cache memory, the replacement data stored in the main storage device is stored at the address of the cache memory related to the cache miss that caused the replacement. If the data related to the other cache miss is stored in the replacement data memory device when another cache miss occurs, the other data stored in the replacement data memory device is stored. There is provided a program for causing a computer to perform a replacement data processing method using data relating to a cache miss as load data.

本発明によれば、二次キャッシュメモリを利用した場合よりも少ないメモリ容量の当該リプレースメントデータメモリ装置を用いて主記憶装置へのアクセス回数を減らすことができる。   According to the present invention, it is possible to reduce the number of accesses to the main storage device by using the replacement data memory device having a smaller memory capacity than when the secondary cache memory is used.

本発明の実施形態による中央演算装置及びその周辺部のブロック図である。It is a block diagram of the central processing unit and its peripheral part by embodiment of this invention. 本発明の実施形態によるリプレースメントデータメモリの構成を示すブロック図である。It is a block diagram which shows the structure of the replacement data memory by embodiment of this invention. 本発明の実施形態によるキャッシュメモリの構成を示すブロック図である。It is a block diagram which shows the structure of the cache memory by embodiment of this invention. 図2に示す記憶部及びその周辺部の構成を示すブロック図である。It is a block diagram which shows the structure of the memory | storage part shown in FIG. 2, and its peripheral part. 本発明の実施形態によるリプレースメントデータメモリ装置のストア命令実行時の動作を説明するためのフローチャートである。6 is a flowchart for explaining an operation at the time of execution of a store instruction of the replacement data memory device according to the embodiment of the present invention; 図5に示すステップ504の詳細を示すフローチャートである。It is a flowchart which shows the detail of step 504 shown in FIG. 本発明の実施形態によるリプレースメントデータメモリ装置のロード命令実行時の動作を説明するためのフローチャートであwる。3 is a flowchart for explaining an operation at the time of execution of a load instruction of the replacement data memory device according to the embodiment of the present invention. 本発明の実施形態によるキャッシュヒット/キャッシュミスとリプレースメントデータメモリヒット/リプレースメントデータメモリミスとの各組合わせにおけるロード元を示す表である。It is a table | surface which shows the load origin in each combination of the cache hit / cache miss and replacement data memory hit / replacement data memory miss by embodiment of this invention.

以下、図面を参照して本発明を実施するための形態について詳細に説明する。   DESCRIPTION OF EMBODIMENTS Hereinafter, embodiments for carrying out the present invention will be described in detail with reference to the drawings.

[第1の実施形態]
図1は、本発明の実施形態による中央演算装置の構成例を示すブロック図である。中央演算装置100は、ロード命令及びストア命令の実行機能を備えたCPU_CORE101と、ダイレクト・マップ方式のキャッシュメモリ102と、リプレースメントデータメモリ(Replacement Data Memory;以下、「RDM」という。)103と、メモリコントローラ104とを含む。中央演算装置100は、主記憶装置105に接続されている。RDM103は、本発明により提供されたものである。「ロード」とは、主記憶装置105、キャッシュメモリ102、RDM103等に格納されているデータをCPU_CORE101に格納することであり、「ストア」とは、CPU_CORE101に格納されているデータを主記憶装置105、キャッシュメモリ102、RDM103等に格納することである。
[First Embodiment]
FIG. 1 is a block diagram illustrating a configuration example of a central processing unit according to an embodiment of the present invention. The central processing unit 100 includes a CPU_CORE 101 having a load instruction and store instruction execution function, a direct-mapped cache memory 102, a replacement data memory (hereinafter referred to as “RDM”) 103, and a memory. Controller 104. The central processing unit 100 is connected to the main storage device 105. The RDM 103 is provided by the present invention. “Load” refers to storing data stored in the main storage device 105, cache memory 102, RDM 103, and the like in the CPU_CORE 101, and “Store” refers to data stored in the CPU_CORE 101 in the main storage device 105. Storing in the cache memory 102, the RDM 103, and the like.

図2は、RDM103の内部構成例を示すブロック図である。RDM103は、調停部201と、制御/監視部202と、記憶部203を含む。調停部201は、ロード時にキャッシュメモリ102内部のデータとRDM103内部のデータとを調停する。制御/監視部202は、CPU_CORE101を監視してロード命令及びストア命令の指定アドレスを取り込み、また、キャッシュメモリ102から追い出されたリプレースメントデータをRDM103へ格納する。記憶部203は、キャッシュメモリ102から追い出されたデータの格納先である。なお、制御/監視部202は、RDM103内でデータが同じ内容になっているエントリのアドレスを関連づけして一時保持するアバンドメントアドレスバッファ(Abandonment Address Buffer;以下、「AAB」という。)204を含む。   FIG. 2 is a block diagram showing an example of the internal configuration of the RDM 103. The RDM 103 includes an arbitration unit 201, a control / monitoring unit 202, and a storage unit 203. The arbitration unit 201 arbitrates data in the cache memory 102 and data in the RDM 103 at the time of loading. The control / monitoring unit 202 monitors the CPU_CORE 101 to fetch the designated addresses of the load instruction and the store instruction, and stores the replacement data evicted from the cache memory 102 in the RDM 103. The storage unit 203 is a storage destination of data evicted from the cache memory 102. Note that the control / monitoring unit 202 includes an Abandonment Address Buffer (hereinafter referred to as “AAB”) 204 that temporarily stores the addresses of entries having the same contents in the RDM 103 in association with each other. .

図3は、RDM103に係るキャッシュメモリ102の一実施形態の内部構成を示すブロック図である。図3に示すキャッシュメモリ103は、入力アドレスの中位ビット列(CLINE)302でキャッシュブロックの置き換え候補が一意に決まるダイレクト・マップ構成のキャッシュメモリである。   FIG. 3 is a block diagram illustrating an internal configuration of an embodiment of the cache memory 102 according to the RDM 103. The cache memory 103 shown in FIG. 3 is a cache memory having a direct map configuration in which a replacement candidate for a cache block is uniquely determined by a middle bit string (CLILINE) 302 of an input address.

図3のキャッシュメモリ102は、大きく分けて、データメモリ307と、タグメモリ306と、Modifyビット304と、VALIDビット305と、比較器308と、セレクタ309とを含む。データメモリ307は、1つのキャッシュブロックに対応する1エントリ上にデータをm個格納することが可能である。タグメモリ306は、各データのアドレス情報を格納する。Modifyビット304は、キャッシュメモリ・エントリ・データと主記憶装置105のデータが一致しているか否かを示す。VALIDビット305は、キャッシュメモリ・エントリ・データが有効であるか否かを示す。比較器308は、キャッシュメモリブロックに対応するタグメモリ306に記憶されているタグとCPUにより指定されるアドレス中のTAG301とを比較して一致・不一致を判定する。選択器309は、m個のキャッシュメモリ・エントリ・データ307の内、エントリ・オフセット指定ビット(CSEL)303に応じたデータを取り出す。   The cache memory 102 in FIG. 3 roughly includes a data memory 307, a tag memory 306, a Modify bit 304, a VALID bit 305, a comparator 308, and a selector 309. The data memory 307 can store m pieces of data on one entry corresponding to one cache block. The tag memory 306 stores address information of each data. The Modify bit 304 indicates whether or not the cache memory entry data matches the data in the main storage device 105. The VALID bit 305 indicates whether or not the cache memory entry data is valid. The comparator 308 compares the tag stored in the tag memory 306 corresponding to the cache memory block with the TAG 301 in the address specified by the CPU, and determines a match / mismatch. The selector 309 extracts data corresponding to the entry offset designation bit (CSEL) 303 from the m cache memory entry data 307.

図4は、キャッシュメモリ102から追い出されたリプレースメントされたデータを制御し、また、格納することが可能なRDM103の一例を示した構成図である。RDM103には、合計16のエントリが存在する。各ラインの固定領域は、プライオリティ領域401と、アドレス領域402と、データ領域403を含む。プライオリティ領域401は、プライオリティ(優先順位)を表す数値を格納する。数値の小さい順にプライオリティが高くなる。数値がゼロであればプライオリティは最高である。アドレス領域402は、リプレースメントによりキャッシュメモリ102から追い出されたアドレス(tag、cline、cselの全て)を格納する。データ領域403は、リプレースメントによりキャッシュメモリ102から追い出されたアドレス(tag、cline、cselの全て)に対応するデータを格納する。   FIG. 4 is a configuration diagram showing an example of the RDM 103 that can control and store the replaced data evicted from the cache memory 102. There are a total of 16 entries in the RDM 103. The fixed area of each line includes a priority area 401, an address area 402, and a data area 403. The priority area 401 stores a numerical value representing a priority (priority order). The priority increases in ascending order of numerical values. If the number is zero, the priority is highest. The address area 402 stores addresses (all of tag, line, and csel) evicted from the cache memory 102 by replacement. The data area 403 stores data corresponding to addresses (all of tag, line, and csel) evicted from the cache memory 102 by replacement.

また、RDM103は、更に、各ライン上のプライオリティ領域401にあるプライオリティの値を1だけ増加させ又は1だけ減少させるカウンタ機能部404と、各ライン上のプライオリティ領域401にあるプライオリティの値をゼロにするリセット機能部405とを各ライン上のプライオリティ領域401にあるプライオリティの値を最大値にするセット機能部406と含む。   Further, the RDM 103 further increases the priority value in the priority area 401 on each line by 1 or decreases it by 1, and sets the priority value in the priority area 401 on each line to zero. And a reset function unit 405 for setting the priority value in the priority area 401 on each line to a maximum value.

次に、図5、図6に示すフローチャートを用いて、キャッシュメモリ102から追い出されたリプレースメントデータをRDM103に格納する処理フローを示す。図5は、中央演算装置100がストア命令を実行した際の動作手順を示すフローチャートであり、図6は、図5のリプレースメントデータをRDM103に格納するステップ504の詳細な動作手順を示すフローチャートである。   Next, a processing flow for storing replacement data evicted from the cache memory 102 in the RDM 103 will be described using the flowcharts shown in FIGS. FIG. 5 is a flowchart showing an operation procedure when the central processing unit 100 executes a store instruction. FIG. 6 is a flowchart showing a detailed operation procedure of step 504 for storing the replacement data of FIG. 5 in the RDM 103. .

CPU_CORE101からストア命令が発行されたならば、ヒットするキャッシュブロックがキャッシュメモリ102に存在するか否かの検索を行う(ステップ501)。具体的には、CPU_CORE101により指定されたアドレスのうちのCLINE302で指定されるキャッシュブロックにあるTAG306とCPU_CORE101により指定されたアドレスのうちのTAG301とが一致すればヒットとし、ヒットしなければミスヒットとする。   If a store instruction is issued from the CPU_CORE 101, a search is performed as to whether or not a hit cache block exists in the cache memory 102 (step 501). Specifically, if the TAG 306 in the cache block specified by the CLIE 302 in the address specified by the CPU_CORE 101 matches the TAG 301 in the address specified by the CPU_CORE 101, a hit is detected. To do.

ヒットするキャッシュブロックがキャッシュメモリ102に存在する場合には(キャッシュがヒットした場合には)(ステップ501でYES)、ヒットしたキャッシュブロックにあるm個のデータ307のうち、CPU_CORE101により指定されたアドレスのうちのCSEL303で指定されるアドレスに対応するデータを上書きする(ステップ502)。   When the hit cache block exists in the cache memory 102 (when the cache hits) (YES in step 501), the address designated by the CPU_CORE 101 among the m pieces of data 307 in the hit cache block. Data corresponding to the address designated by the CSEL 303 is overwritten (step 502).

ヒットするキャッシュブロックがキャッシュメモリ102に存在しない場合には(キャッシュがミスヒットした場合には)(ステップ501でNO)、キャッシュブロックのリプレースメントを行う(ステップ505)。   If no hit cache block exists in the cache memory 102 (if the cache misses) (NO in step 501), the cache block is replaced (step 505).

また、ヒットするキャッシュブロックがキャッシュメモリ102に存在しない場合には(キャッシュがミスヒットした場合には)(ステップ501でNO)、リプレースメントデータのうちのミスヒットしたアドレスのデータをキャッシュメモリ102から読み出してから(ステップ503)、リプレースメントデータメモリ103の処理を行なう(ステップ504)。   If no hit cache block exists in the cache memory 102 (if the cache misses) (NO in step 501), the data at the missed address in the replacement data is read from the cache memory 102. (Step 503), the replacement data memory 103 is processed (Step 504).

ステップ504、505が終了したならば、CPU_CORE101により指定されたアドレスに対応するデータを上書きする(ステップ506)。   When Steps 504 and 505 are completed, the data corresponding to the address designated by the CPU_CORE 101 is overwritten (Step 506).

前述のように、RDM103には、キャッシュメモリ102から追い出されるリプレースメントデータを常時監視する機構が含まれる。CPU_CORE101がキャッシュ・ミス時にデータのストアを実行するためには、1キャッシュブロック分のデータのリプレースメントをする必要があるが、リプレースメントにより追い出されるデータの内、図3に示すキャッシュメモリ102のCLINE302とCSEL303にて、一意に決定されるデータを必要に応じてRDM103へ格納する。   As described above, the RDM 103 includes a mechanism for constantly monitoring replacement data evicted from the cache memory 102. In order for the CPU_CORE 101 to execute data store at the time of a cache miss, it is necessary to replace data for one cache block. Of the data driven out by the replacement, the CLIN 302 and the CSEL 303 of the cache memory 102 shown in FIG. Then, the uniquely determined data is stored in the RDM 103 as necessary.

ここで、プライオリティの調整について説明をする。長い時間参照されていないアドレスは、近い将来も参照される可能性が低いという推測(時間的局所性)に基づいて、最後に参照されてから最も長い時間が経過したアドレスのエントリを廃棄する。このために、以下に説明する構成及び動作では、プライオリティを設け、エントリが参照される度に、そのエントリの優先順位を上げて、他のエントリのプライオリティを下げている。   Here, the priority adjustment will be described. Based on the assumption (temporal locality) that an address that has not been referenced for a long time is unlikely to be referenced in the near future (temporal locality), the entry of the address that has the longest time since the last reference is discarded. For this reason, in the configuration and operation described below, a priority is provided, and each time an entry is referred to, the priority of the entry is raised and the priority of other entries is lowered.

図6を参照すると、リプレースメントデータに係るアドレス(ストア命令で指定されるアドレスに含まれるTAGとCLINEとCSELで特定されるアドレス。以下、「リプレースメントアドレス」という。)と同一のアドレスが、RDM103の何れかのエントリのアドレス領域402に存在するか否かを判断する(ステップ601)。リプレースメントアドレスと同一のアドレスがRDM103の何れかのエントリのアドレス領域402に存在する場合には(ステップ601でYES)、リプレースメントアドレスと同一のアドレスが存在するエントリにリプレースメントデータを格納し、そのエントリのプライオリティを最高(数値でいうとゼロ)にする。更に、そのエントリのプライオリティを最高にする前に、そのエントリよりもプライオリティが高かったエントリが1以上あったならば、それらのエントリのプライオリティを1だけ下げる(数値を1だけ増加させる)(ステップ602)。   Referring to FIG. 6, the same address as the address related to the replacement data (the address specified by TAG, CLINE, and CSEL included in the address specified by the store instruction; hereinafter referred to as “replacement address”) It is determined whether or not it exists in the address area 402 of any entry (step 601). If the same address as the replacement address exists in the address area 402 of any entry in the RDM 103 (YES in step 601), the replacement data is stored in the entry having the same address as the replacement address, and the entry Set the priority to the highest (in numerical terms, zero). Further, if there is one or more entries having a higher priority than the entry before the priority of the entry is made highest, the priority of those entries is decreased by 1 (the numerical value is increased by 1) (step 602). ).

リプレースメントアドレスと同一のアドレスがRDM103のどのエントリのアドレス領域402にも存在しない場合には(ステップ601でNO)、リプレースメントアドレスと同一のアドレスがAAB204に存在するか否かを判断する(ステップ603)。   If the same address as the replacement address does not exist in the address area 402 of any entry in the RDM 103 (NO in step 601), it is determined whether or not the same address as the replacement address exists in the AAB 204 (step 603). .

リプレースメントアドレスと同一のアドレスがAAB204に存在する場合には(ステップ603でYES)、リプレースメントデータをRDM103に格納しない。そして、AAB204においてリプレースメントアドレスと関連づけられているアドレスであって何れかのエントリのアドレス領域402に格納されているアドレスを探し、アドレス領域402にある探したアドレスをリプレースメントアドレスに書き替える(ステップ604)。そして、アドレスを書き替えたエントリのプライオリティを最高(数値でいうとゼロ)にする。更に、そのエントリのプライオリティを最高にする前に、そのエントリよりもプライオリティが高かったエントリが1以上あったならば、それらのエントリのプライオリティを1だけ下げる(数値を1だけ増加させる)(ステップ605)。   If the same address as the replacement address exists in the AAB 204 (YES in step 603), the replacement data is not stored in the RDM 103. Then, an address associated with the replacement address in the AAB 204 and stored in the address area 402 of any entry is searched, and the searched address in the address area 402 is rewritten to the replacement address (step 604). . Then, the priority of the entry whose address has been rewritten is set to the highest (zero in terms of numerical value). Further, if there is one or more entries having a higher priority than the entry before the priority of the entry is made highest, the priority of those entries is decreased by 1 (the numerical value is increased by 1) (step 605). ).

リプレースメントアドレスと同一のアドレスがAAB204に存在しない場合には(ステップ603でNO)、プライオリティが最低であるエントリのデータ領域403にリプレースメントデータとリプレースメントアドレスを格納する(ステップ606)。これにより、プライオリティが最低であったデータが廃棄される。そして、リプレースメントデータとリプレースメントアドレスを格納したエントリのプライオリティを最高(数値でいうとゼロ)にする。更に、他の全てのエントリのプライオリティを1だけ下げる(数値を1だけ増加させる)(ステップ607)。   If the same address as the replacement address does not exist in the AAB 204 (NO in step 603), the replacement data and the replacement address are stored in the data area 403 of the entry having the lowest priority (step 606). As a result, the data with the lowest priority is discarded. Then, the priority of the entry storing the replacement data and the replacement address is set to the highest (numerically zero). Further, the priority of all other entries is lowered by 1 (the value is increased by 1) (step 607).

そして、リプレースメントデータと同一のデータをデータ領域403に格納しているエントリがあるか否かを判断する(ステップ608)。ある場合には(ステップ608でYES)、そのようなエントリのプライオリティを最低(数値でいうと最大値)にする。ここで、リプレースメントデータと同一のデータをデータ領域403に格納しているエントリが複数あるならば、それらのエントリのプライオリティが最低のプライオリティからそれらのエントリの数の範囲を占めるようにする。そして、そのようなエントリのプライオリティを最低にする前に、そのようなエントリよりもプライオリティが低かったエントリが1以上あったならば、それらのエントリのプライオリティを上げる(数値を減少させる)。ここで、減少前後の数値の差分は、リプレースメントデータと同一のデータをデータ領域403に格納しているエントリの数値と同一とする(ステップ609)。   Then, it is determined whether or not there is an entry storing the same data as the replacement data in the data area 403 (step 608). In some cases (YES in step 608), the priority of such an entry is set to the lowest (the maximum value in terms of numerical value). Here, if there are a plurality of entries storing the same data as the replacement data in the data area 403, the priority of those entries is set so as to occupy the range of the number of entries from the lowest priority. If there is one or more entries that have a lower priority than such entries before the priority of such entries is minimized, the priorities of those entries are increased (decrease the numerical value). Here, the difference between the numerical values before and after the decrease is the same as the numerical value of the entry storing the same data as the replacement data in the data area 403 (step 609).

そして、ステップ606でリプレースメントデータとリプレースメントアドレスを格納したエントリのアドレス(すなわち、リプレースメントアドレス)とリプレースメントデータと同一のデータをデータ領域403に格納しているエントリのアドレスを関連づけて、AAB204に格納する(ステップ610)。   In step 606, the address of the entry storing the replacement data and the replacement address (that is, the replacement address) is associated with the address of the entry storing the same data as the replacement data in the data area 403 and stored in the AAB 204 ( Step 610).

次に、図7に示すフローチャートを用いて、ロード時の動作について説明をする。CPU_CORE101がロード命令を実行し、CPU_CORE101が指定したロード元アドレスが存在するか否か、キャッシュメモリ102とRDM103に対して検索を行う。   Next, the operation during loading will be described using the flowchart shown in FIG. The CPU_CORE 101 executes a load instruction, and searches the cache memory 102 and the RDM 103 for whether or not the load source address designated by the CPU_CORE 101 exists.

キャッシュメモリ102にロード元アドレスと同一のアドレスが存在し、RDM103の何れかのエントリのアドレス領域402にもロード元アドレスと同一のアドレスが存在する場合には(ステップ701でYES)、キャッシュメモリ102から出力されるデータをロードし(ステップ702)、RDM103のロード元アドレスと同一のアドレスがアドレス領域402に存在するエントリのプライオリティを最高(数値でいうとゼロ)にする。また、そのエントリのプライオリティを最高にする前に、そのエントリよりもプライオリティが高かったエントリが1以上あったならば、それらのエントリのプライオリティを1だけ下げる(数値を1だけ増加させる)(ステップ703)。   When the same address as the load source address exists in the cache memory 102 and the same address as the load source address exists in the address area 402 of any entry in the RDM 103 (YES in step 701), the cache memory 102 (Step 702), and the priority of the entry having the same address as the load source address of the RDM 103 in the address area 402 is set to the highest (numerically zero). If there is one or more entries having a higher priority than that entry before the priority of the entry is made highest, the priority of those entries is lowered by 1 (the numerical value is increased by 1) (step 703). ).

キャッシュメモリ102にロード元アドレスと同一のアドレスが存在するが、RDM103の何れのエントリのアドレス領域402にもロード元アドレスと同一のアドレスが存在しない場合には(ステップ704でYES)、キャッシュメモリ102から出力されるデータをロードする(ステップ705)。   If the same address as the load source address exists in the cache memory 102, but the same address as the load source address does not exist in the address area 402 of any entry in the RDM 103 (YES in step 704), the cache memory 102 The data output from is loaded (step 705).

キャッシュメモリ102にロード元アドレスと同一のアドレスが存在せず、RDM103の何れかのエントリのアドレス領域402にロード元アドレスと同一のアドレスが存在する場合には(ステップ706でYES)、そのエントリのデータ領域403に存在するデータをロードし(ステップ707)、そのエントリのプライオリティを最高に設定する。そして、そのエントリのプライオリティを最高にする前に、そのエントリよりもプライオリティが高かったエントリが1以上あったならば、それらのエントリのプライオリティを1だけ下げる(数値を1だけ増加させる)(ステップ708)。   If the same address as the load source address does not exist in the cache memory 102 and the same address as the load source address exists in the address area 402 of any entry in the RDM 103 (YES in step 706), the entry's address Data existing in the data area 403 is loaded (step 707), and the priority of the entry is set to the highest. If there are one or more entries having a higher priority than the entry before the highest priority of the entry, the priority of those entries is decreased by 1 (the numerical value is increased by 1) (step 708). ).

キャッシュメモリ102にロード元アドレスと同一のアドレスが存在せず、RDM103の何れのエントリのアドレス領域402にもロード元アドレスと同一のアドレスが存在しないが、RDM103のAAB204にロード元アドレスが存在する場合には(ステップ709でYES)、AAB204でロード元アドレスに関連づけされていて、アドレス領域402に存在するアドレスを含むエントリのデータ領域403に存在するデータをロードする(ステップ710)。   The same address as the load source address does not exist in the cache memory 102, and the same address as the load source address does not exist in the address area 402 of any entry of the RDM 103, but the load source address exists in the AAB 204 of the RDM 103 (YES in step 709), the data associated with the load source address in the AAB 204 and including the address existing in the address area 402 is loaded (step 710).

キャッシュメモリ102、RDM103のアドレス領域402、AAB204全てにロード元アドレスと同一のアドレスが存在しない場合には(ステップ711でYES)、メモリコントローラ104に対してデータ・ロード要求を出力する(ステップ712)。   If the same address as the load source address does not exist in all of the address area 402 and AAB 204 of the cache memory 102 and RDM 103 (YES in step 711), a data load request is output to the memory controller 104 (step 712). .

図8に、キャッシュメモリ102とRDM103のアドレス検索結果に基づくデータアクセスプライオリティを示す。   FIG. 8 shows the data access priority based on the address search results of the cache memory 102 and the RDM 103.

図8に示すように、キャッシュメモリ102とRDM103のアドレス検索を行って、キャッシュメモリ102側のみにCPU_CORE101が指定したロード元アドレスが存在する場合(即ち、キャッシュ・ヒット且つRDMミス時)、またはキャッシュメモリ102側とRDM103の双方にCPU_CORE101が指定するロード元アドレスが存在する場合(即ち、キャッシュ・ヒット且つRDMヒット時)には、図2の調停部201は、キャッシュメモリ102に存在するデータをCPU_CORE101に対して送出する制御を行う。   As shown in FIG. 8, when the address search of the cache memory 102 and the RDM 103 is performed and the load source address designated by the CPU_CORE 101 exists only on the cache memory 102 side (that is, at the time of cache hit and RDM miss), or the cache When the load source address specified by the CPU_CORE 101 exists on both the memory 102 side and the RDM 103 (that is, when a cache hit and an RDM hit), the arbitration unit 201 in FIG. 2 transfers the data existing in the cache memory 102 to the CPU_CORE 101. Control to send to.

また、キャッシュメモリ102にCPU_CORE101が指定するロード元アドレスが存在せず、且つRDM103側にCPU_CORE101が指定するロード元アドレスが存在する場合(即ち、キャッシュ・ミス且つRDMヒット時)には、図2の調停部201は、RDM103に存在するデータをCPU_CORE101に対して送出する制御を行う。   Further, when the load source address specified by the CPU_CORE 101 does not exist in the cache memory 102 and the load source address specified by the CPU_CORE 101 exists on the RDM 103 side (that is, when a cache miss and RDM hit), FIG. The arbitration unit 201 performs control to send data existing in the RDM 103 to the CPU_CORE 101.

キャッシュメモリ102側とRDM103側の双方にCPU_CORE101が指定するロード元アドレスが存在しない場合(即ち、キャッシュ・ミス且つRDMミス時)には、図2の調停部201は、CPU_CORE101が主記憶装置105のロード元アドレスにあるデータを取得するための制御を行う。   When the load source address specified by the CPU_CORE 101 does not exist on both the cache memory 102 side and the RDM 103 side (that is, when there is a cache miss and an RDM miss), the arbitration unit 201 in FIG. Performs control to acquire data at the load source address.

本実施形態によれば、以下の効果が奏される。すなわち、一旦、キャッシュメモリに記憶されながらも、リプレースメントによりキャッシュメモリから削除されたデータのうち、リプレースメントの起因となったキャッシュミスに係るアドレスにあったデータは、再度、ロードされる可能性が高いため、そのアドレスにあったデータのみをリプレースメントデータメモリに格納するだけであっても、リプレースメントデータメモリは、将来発生するキャッシュミスに係るデータを格納する確率が高くなる。   According to this embodiment, the following effects are produced. In other words, data stored in the cache memory but deleted from the cache memory by replacement is likely to be loaded again at the address associated with the cache miss that caused the replacement. Therefore, even if only the data corresponding to the address is stored in the replacement data memory, the replacement data memory has a high probability of storing data relating to a cache miss that will occur in the future.

[第2の実施形態]
次に、本発明の第2の実施形態について説明する。第1の実施形態に係るキャッシュメモリ102では説明を簡単にするため、連想度(WAY)の概念を考えないダイレクト・マップ方式のキャッシュメモリとしているが、これに代えて、例えば2WAY、4WAYといったセット・アソシアティブ方式のキャッシュメモリとすることもできる。なお、図3に示すキャッシュメモリからリプレースされたデータを格納する図4のRDMにおいては、キャッシュメモリがセット・アソシアティブ方式のものキャッシュメモリであっても同様の構成を有するため、これらの説明は省略する。
[Second Embodiment]
Next, a second embodiment of the present invention will be described. In the cache memory 102 according to the first embodiment, for simplicity of explanation, a direct-mapped cache memory that does not consider the concept of association (WAY) is used, but instead, for example, a set of 2WAY, 4WAY, etc. -It can also be an associative cache memory. Note that the RDM of FIG. 4 that stores data replaced from the cache memory shown in FIG. 3 has the same configuration even if the cache memory is a set-associative cache memory, and therefore description thereof is omitted. To do.

本実施形態によれば、プログラム実行中にキャッシュメモリから外部主記憶装置へ一旦ストアされたデータが、後にキャッシュ・ミスを引き起こすロード対象データとなる場合において、外部主記憶装置アクセスの低減が期待できる。その理由は、後に必要となるキャッシュ・データであっても、リプレースの対象となってしまった、ロード対象データのみを、別途格納することを可能とするプロセッサに内蔵されたリプレースメントデータメモリ(RDM)およびRDMのコスト(容量)を抑えるためのアバンドメントアドレスバッファ(AAB)を有するためである。大抵のプログラムにはループ制御が含まれており、同じ命令列やデータは繰り返しアクセスされる可能性が高いため、このような時間的局所性が高いプログラム処理時に於いて、特に高い効果が期待できる。   According to the present embodiment, when the data once stored from the cache memory to the external main storage device during the execution of the program becomes the data to be loaded that causes a cache miss later, it can be expected to reduce the access to the external main storage device. . The reason is that a replacement data memory (RDM) built in a processor that can separately store only the load target data that has been the target of replacement even if it is cache data that will be required later. This is because it has an abandonment address buffer (AAB) for reducing the cost (capacity) of the RDM. Since most programs include loop control, and the same instruction sequence and data are likely to be accessed repeatedly, it can be expected to have a particularly high effect during program processing with such a high temporal locality. .

更に、リプレースメントデータメモリ(RDM)に格納されている、アドレスは異なるがデータ内容が同じエントリについては、関連づけしたアドレス情報だけをアバンドメントアドレスバッファ(AAB)に保持、管理し、RDMには1エントリだけ残して他のエントリは優先的に廃棄候補にしていくことにより、RDMを少ないコスト(容量)で効率的に運用できる効果を有する。   Furthermore, for entries having different addresses but the same data contents stored in the replacement data memory (RDM), only the associated address information is held and managed in the abandonment address buffer (AAB), and one entry is stored in the RDM. By leaving only the remaining entries as candidates for discarding, the RDM can be efficiently operated at a low cost (capacity).

リプレースメントデータメモリが行なう上記の方法は、ハードウェア、ファームウェア又はこれらの組合わせによって実現することができる。   The above method performed by the replacement data memory can be realized by hardware, firmware, or a combination thereof.

上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。   A part or all of the above-described embodiment can be described as in the following supplementary notes, but is not limited thereto.

(付記1)
キャッシュメモリでリプレースメントが発生した時に主記憶装置にストアされるリプレースメントデータのうち前記リプレースメントの起因となったキャッシュミスに係る、前記キャッシュメモリのアドレスに記憶されていたデータのみを記憶し、別のキャッシュミスが発生した時に、該別のキャッシュミスに係るデータが自装置に記憶されているならば、自装置に記憶されている前記別のキャッシュミスに係るデータをロードデータとするリプレースメントデータメモリ装置。
(Appendix 1)
Of the replacement data stored in the main storage device when a replacement occurs in the cache memory, only the data stored at the address of the cache memory related to the cache miss causing the replacement is stored, and another cache is stored. A replacement data memory device that uses data relating to another cache miss stored in the own device as load data if data relating to the other cache miss is stored in the own device when a miss occurs.

(付記2)
キャッシュメモリでリプレースメントが発生した時に主記憶装置にストアされるリプレースメントデータを記憶し、別のキャッシュミスが発生した時に、該別のキャッシュミスに係るデータが自装置に記憶されているならば、自装置に記憶されている前記別のキャッシュミスに係るデータをロードデータとするリプレースメントデータメモリ装置であって、
複数アドレスの間で共通なデータを前記複数アドレスに対応付けて記憶する記憶手段と、
前記別のキャッシュミスに係るアドレスが前記複数アドレスのうちの何れかのアドレスと一致した場合には、前記複数アドレスに対応したデータをロードデータとするロード手段と、
を備えることを特徴とするリプレースメントデータメモリ装置。
(Appendix 2)
If replacement data stored in the main storage device is stored when a replacement occurs in the cache memory, and another cache miss occurs, if the data related to the other cache miss is stored in the own device, A replacement data memory device that uses the data relating to the other cache miss stored in the device as load data,
Storage means for storing data common to a plurality of addresses in association with the plurality of addresses;
When the address related to the other cache miss matches any one of the plurality of addresses, load means for setting the data corresponding to the plurality of addresses as load data;
A replacement data memory device comprising:

(付記3)
付記2に記載のリプレースメントメモリ装置であって、
前記記憶手段は、前記複数アドレスを関連づけて記憶するアバンドメントアドレスバッファと、前記複数アドレスのうちの1つのアドレスと前記共通なデータとを関連づけて記憶する第1のエントリとを備えることを特徴とするリプレースメントデータメモリ装置。
(Appendix 3)
The replacement memory device according to attachment 2, wherein
The storage means includes an arrival address buffer that stores the plurality of addresses in association with each other, and a first entry that stores one of the plurality of addresses in association with the common data. Replacement data memory device.

(付記4)
付記3に記載のリプレースメントメモリ装置であって、
前記ロード手段は、前記別のキャッシュミスに係るアドレスが前記複数アドレスのうちの何れかのアドレスと一致したか否かを前記別のキャッシュミスに係るアドレスが前記アバンドメントアドレスバッファに格納されているか否かを調べることにより検出することを特徴とするリプレースメントデータメモリ装置。
(Appendix 4)
The replacement memory device according to attachment 3, wherein
Whether the address related to the other cache miss matches the address of any one of the plurality of addresses, or whether the address related to the other cache miss is stored in the abandonment address buffer. A replacement data memory device characterized by detecting whether or not.

(付記5)
付記3又は4に記載のリプレースメントデータメモリ装置であって、
前記ロード手段は、前記別のキャッシュミスに係るアドレスが前記複数アドレスのうちの何れかのアドレスと一致したならば、前記第1のエントリに記憶されている前記共通なデータをロードデータとすることを特徴とするリプレースメントデータメモリ装置。
(Appendix 5)
The replacement data memory device according to appendix 3 or 4,
The load means sets the common data stored in the first entry as load data when an address related to the other cache miss matches any one of the plurality of addresses. A replacement data memory device.

(付記6)
付記3乃至5の何れか1に記載のリプレースメントデータメモリ装置であって、
プライオリティとアドレスとデータの組の第2のエントリを1以上備え、該第2のエントリは前記第1のエントリを含み、
前記リプレースメントデータのストア先であるリプレースメントアドレスが何れかの前記第2のエントリにあるアドレスと一致していれば、前記リプレースメントアドレスが存在するエントリにリプレースメントデータを格納すると共に、そのエントリのプライオリティを最高にする手段と、
前記リプレースメントアドレスが何れの前記第2のエントリにあるアドレスとも一致しないが、前記アバンドメントアドレスバッファに記憶されていれば、前記アバンドメントアドレスバッファにおいて前記リプレースメントアドレスと関連づけられているアドレスであって何れかの前記第2のエントリにあるアドレスを前記リプレースメントアドレスに書き替え、アドレスを書き替えたその第2のエントリのプライオリティを最高にする手段と、
前記リプレースメントアドレスが何れの前記第2のエントリにあるアドレスとも一致せず、前記アバンドメントアドレスバッファに記憶されていなければ、プライオリティが最低のエントリに前記リプレースメントデータを格納し、該リプレースメントデータを格納したエントリのプライオリティを最高にし、その上で、リプレースメントデータと同一のデータを有するエントリがあれば、そのエントリのプライオリティを最低にし、前記リプレースメントデータを格納したエントリにあるアドレスと前記リプレースメントデータと同一のデータを有するエントリにあるアドレスとを関連づけて前記アバンドメントアドレスバッファに格納する手段と、
を更に備えることを特徴とするリプレースメントデータメモリ装置。
(Appendix 6)
The replacement data memory device according to any one of appendices 3 to 5,
Comprising one or more second entries of a set of priority, address and data, the second entry comprising said first entry;
If the replacement address that is the storage destination of the replacement data matches the address in any of the second entries, the replacement data is stored in the entry in which the replacement address exists, and the priority of the entry is set to the highest. Means to
The replacement address does not match any address in any of the second entries, but if it is stored in the abandonment address buffer, it is an address associated with the replacement address in the abandonment address buffer. Means for rewriting the address in the second entry with the replacement address, and maximizing the priority of the second entry with the rewritten address;
If the replacement address does not match the address in any of the second entries and is not stored in the abandonment address buffer, the replacement data is stored in the entry with the lowest priority, and the replacement data is stored. If there is an entry having the highest priority of the entry and having the same data as the replacement data, the priority of the entry is set to the lowest and the address in the entry storing the replacement data is the same data as the replacement data. Means for associating and storing the address in the entry having an entry address buffer;
The replacement data memory device further comprising:

(付記7)
付記6に記載のリプレースメントデータメモリ装置であって、
前記別のキャッシュミスに係るロード元アドレスが前記キャッシュメモリに存在し、何れかの前記第2のエントリにあるアドレスと一致していれば、前記キャッシュメモリのデータをロードし、前記ロード元アドレスと一致するアドレスを有する前記第2のエントリのプライオリティを最高にする手段と、
前記別のキャッシュミスに係るロード元アドレスが前記キャッシュメモリに存在し、何れの前記第2のエントリにあるアドレスとも一致しないならば、前記キャッシュメモリのデータをロードする手段と、
前記別のキャッシュミスに係るロード元アドレスが前記キャッシュメモリに存在せず、何れかの前記第2のエントリにあるアドレスと一致していれば、前記別のキャッシュミスに係るロード元アドレスと一致したアドレスを有する前記第2のエントリにあるデータをロードし、そのエントリのプライオリティを最高にする手段と、
前記別のキャッシュミスに係るロード元アドレスが前記キャッシュメモリに存在せず、何れの前記第2のエントリにあるアドレスとも一致せず、前記アバンドメントアドレスバッファに記憶されているならば、前記アバンドメントアドレスバッファにおいて前記別のキャッシュミスに係るロード元アドレスに関連づけられているアドレスを有する前記第2のエントリにあるデータをロードする手段と、
前記別のキャッシュミスに係るロード元アドレスが前記キャッシュメモリに存在せず、何れの前記第2のエントリにあるアドレスとも一致せず、前記アバンドメントアドレスバッファに記憶されていなければ、主記憶装置にあるデータをロードする手段と、
を更に備えることを特徴とするリプレースメントデータメモリ装置。
(Appendix 7)
The replacement data memory device according to attachment 6, wherein
If the load source address related to the other cache miss exists in the cache memory and matches the address in any of the second entries, the cache memory data is loaded, and the load source address Means for maximizing the priority of the second entry having a matching address;
Means for loading data in the cache memory if a load source address relating to the other cache miss exists in the cache memory and does not match an address in any of the second entries;
If the load source address related to the other cache miss does not exist in the cache memory and matches the address in any of the second entries, it matches the load source address related to the other cache miss. Means for loading data in said second entry having an address and maximizing the priority of said entry;
If the load source address related to the other cache miss does not exist in the cache memory, does not match the address in any of the second entries, and is stored in the abandonment address buffer, the abandonment Means for loading data in the second entry having an address associated with a load source address associated with the another cache miss in an address buffer;
If the load source address related to the other cache miss does not exist in the cache memory, does not match the address in any of the second entries, and is not stored in the abandonment address buffer, A means of loading certain data;
The replacement data memory device further comprising:

(付記8)
付記1乃至7の何れか1に記載のリプレースメントデータメモリ装置を含むことを特徴とする中央演算装置。
(Appendix 8)
A central processing unit comprising the replacement data memory device according to any one of appendices 1 to 7.

(付記9)
キャッシュメモリでリプレースメントが発生した時に主記憶装置にストアされるリプレースメントデータのうち前記リプレースメントの起因となったキャッシュミスに係る、前記キャッシュメモリのアドレスに記憶されていたデータのみを記憶し、別のキャッシュミスが発生した時に、該別のキャッシュミスに係るデータがリプレースメントデータメモリ装置に記憶されているならば、リプレースメントデータメモリ装置に記憶されている前記別のキャッシュミスに係るデータをロードデータとするリプレースメントデータ処理方法。
(Appendix 9)
Of the replacement data stored in the main storage device when a replacement occurs in the cache memory, only the data stored at the address of the cache memory related to the cache miss causing the replacement is stored, and another cache is stored. If data relating to another cache miss is stored in the replacement data memory device when a miss occurs, the replacement using the data relating to the other cache miss stored in the replacement data memory device as load data Data processing method.

(付記10)
キャッシュメモリでリプレースメントが発生した時に主記憶装置にストアされるリプレースメントデータを記憶し、別のキャッシュミスが発生した時に、該別のキャッシュミスに係るデータがリプレースメントデータ記憶装置に記憶されているならば、リプレースメントデータ記憶装置に記憶されている前記別のキャッシュミスに係るデータをロードデータとするリプレースメントデータ処理方法であって、
複数アドレスの間で共通なデータを前記複数アドレスに対応付けて記憶する記憶ステップと、
前記別のキャッシュミスに係るアドレスが前記複数アドレスのうちの何れかのアドレスと一致した場合には、前記複数アドレスに対応したデータをロードデータとするロードステップと、
を有することを特徴とするリプレースメントデータ処理方法。
(Appendix 10)
If the replacement data stored in the main storage device is stored when a replacement occurs in the cache memory, and the data related to the other cache miss is stored in the replacement data storage device when another cache miss occurs A replacement data processing method in which data relating to another cache miss stored in a replacement data storage device is used as load data,
A storage step of storing data common to a plurality of addresses in association with the plurality of addresses;
A load step in which data corresponding to the plurality of addresses is used as load data when an address related to the other cache miss matches any one of the plurality of addresses;
A replacement data processing method characterized by comprising:

(付記11)
付記10に記載のリプレースメント処理方法であって、
前記記憶ステップは、前記複数アドレスを関連づけてアバンドメントアドレスバッファに記憶するステップと、前記複数アドレスのうちの1つのアドレスと前記共通なデータとを関連づけて第1のエントリに記憶するステップとを有することを特徴とするリプレースメントデータ処理方法。
(Appendix 11)
The replacement processing method according to attachment 10, wherein
The storing step includes a step of storing the plurality of addresses in association with each other in an arrival address buffer, and a step of storing one address of the plurality of addresses and the common data in association with each other in the first entry. A replacement data processing method characterized by the above.

(付記12)
付記11に記載のリプレースメント処理方法であって、
前記ロードステップでは、前記別のキャッシュミスに係るアドレスが前記複数アドレスのうちの何れかのアドレスと一致したか否かを前記別のキャッシュミスに係るアドレスが前記アバンドメントアドレスバッファに格納されているか否かを調べることにより検出することを特徴とするリプレースメントデータ処理方法。
(Appendix 12)
The replacement processing method according to attachment 11, wherein
In the loading step, whether the address related to the other cache miss matches the address of any one of the plurality of addresses or not is the address related to the other cache miss stored in the abandonment address buffer. A replacement data processing method characterized by detecting by checking whether or not.

(付記13)
付記11又は12に記載のリプレースメントデータ処理方法であって、
前記ロードステップでは、前記別のキャッシュミスに係るアドレスが前記複数アドレスのうちの何れかのアドレスと一致したならば、前記第1のエントリに記憶されている前記共通なデータをロードデータとすることを特徴とするリプレースメントデータ処理方法。
(Appendix 13)
The replacement data processing method according to appendix 11 or 12,
In the loading step, if the address related to the other cache miss matches any one of the plurality of addresses, the common data stored in the first entry is used as load data. The replacement data processing method characterized by this.

(付記14)
付記11乃至13の何れか1に記載のリプレースメントデータ処理方法であって、
プライオリティとアドレスとデータの組の第2のエントリを1以上利用し、該第2のエントリは前記第1のエントリを含み、
前記リプレースメントデータのストア先であるリプレースメントアドレスが何れかの前記第2のエントリにあるアドレスと一致していれば、前記リプレースメントアドレスが存在するエントリにリプレースメントデータを格納すると共に、そのエントリのプライオリティを最高にするステップと、
前記リプレースメントアドレスが何れの前記第2のエントリにあるアドレスとも一致しないが、前記アバンドメントアドレスバッファに記憶されていれば、前記アバンドメントアドレスバッファにおいて前記リプレースメントアドレスと関連づけられているアドレスであって何れかの前記第2のエントリにあるアドレスを前記リプレースメントアドレスに書き替え、アドレスを書き替えたその第2のエントリのプライオリティを最高にするステップと、
前記リプレースメントアドレスが何れの前記第2のエントリにあるアドレスとも一致せず、前記アバンドメントアドレスバッファに記憶されていなければ、プライオリティが最低のエントリに前記リプレースメントデータを格納し、該リプレースメントデータを格納したエントリのプライオリティを最高にし、その上で、リプレースメントデータと同一のデータを有するエントリがあれば、そのエントリのプライオリティを最低にし、前記リプレースメントデータを格納したエントリにあるアドレスと前記リプレースメントデータと同一のデータを有するエントリにあるアドレスとを関連づけて前記アバンドメントアドレスバッファに格納するステップと、
を更に備えることを特徴とするリプレースメントデータ処理方法。
(Appendix 14)
A replacement data processing method according to any one of appendices 11 to 13,
Using one or more second entries of a set of priority, address, and data, the second entry comprising the first entry;
If the replacement address that is the storage destination of the replacement data matches the address in any of the second entries, the replacement data is stored in the entry in which the replacement address exists, and the priority of the entry is set to the highest. Step to
The replacement address does not match any address in any of the second entries, but if it is stored in the abandonment address buffer, it is an address associated with the replacement address in the abandonment address buffer. Rewriting the address in the second entry to the replacement address and maximizing the priority of the second entry with the rewritten address;
If the replacement address does not match the address in any of the second entries and is not stored in the abandonment address buffer, the replacement data is stored in the entry with the lowest priority, and the replacement data is stored. If there is an entry having the highest priority of the entry and having the same data as the replacement data, the priority of the entry is set to the lowest and the address in the entry storing the replacement data is the same data as the replacement data. Associating and storing the address in the entry having
A replacement data processing method, further comprising:

(付記15)
付記14に記載のリプレースメントデータ処理方法であって、
前記別のキャッシュミスに係るロード元アドレスが前記キャッシュメモリに存在し、何れかの前記第2のエントリにあるアドレスと一致していれば、前記キャッシュメモリのデータをロードし、前記ロード元アドレスと一致するアドレスを有する前記第2のエントリのプライオリティを最高にするステップと、
前記別のキャッシュミスに係るロード元アドレスが前記キャッシュメモリに存在し、何れの前記第2のエントリにあるアドレスとも一致しないならば、前記キャッシュメモリのデータをロードするステップと、
前記別のキャッシュミスに係るロード元アドレスが前記キャッシュメモリに存在せず、何れかの前記第2のエントリにあるアドレスと一致していれば、前記別のキャッシュミスに係るロード元アドレスと一致したアドレスを有する前記第2のエントリにあるデータをロードし、そのエントリのプライオリティを最高にするステップと、
前記別のキャッシュミスに係るロード元アドレスが前記キャッシュメモリに存在せず、何れの前記第2のエントリにあるアドレスとも一致せず、前記アバンドメントアドレスバッファに記憶されているならば、前記アバンドメントアドレスバッファにおいて前記別のキャッシュミスに係るロード元アドレスに関連づけられているアドレスを有する前記第2のエントリにあるデータをロードするステップと、
前記別のキャッシュミスに係るロード元アドレスが前記キャッシュメモリに存在せず、何れの前記第2のエントリにあるアドレスとも一致せず、前記アバンドメントアドレスバッファに記憶されていなければ、主記憶装置にあるデータをロードするステップと、
を更に有することを特徴とするリプレースメントデータ処理方法。
(Appendix 15)
The replacement data processing method according to attachment 14, wherein
If the load source address related to the other cache miss exists in the cache memory and matches the address in any of the second entries, the cache memory data is loaded, and the load source address Maximizing the priority of the second entry having a matching address;
Loading the cache memory data if the load source address associated with the other cache miss exists in the cache memory and does not match the address in any of the second entries;
If the load source address related to the other cache miss does not exist in the cache memory and matches the address in any of the second entries, it matches the load source address related to the other cache miss. Loading the data in the second entry having an address and maximizing the priority of the entry;
If the load source address related to the other cache miss does not exist in the cache memory, does not match the address in any of the second entries, and is stored in the abandonment address buffer, the abandonment Loading data in the second entry having an address associated with a source address associated with the other cache miss in an address buffer;
If the load source address related to the other cache miss does not exist in the cache memory, does not match the address in any of the second entries, and is not stored in the abandonment address buffer, Loading certain data;
The replacement data processing method further comprising:

(付記16)
キャッシュメモリでリプレースメントが発生した時に主記憶装置にストアされるリプレースメントデータのうち前記リプレースメントの起因となったキャッシュミスに係る、前記キャッシュメモリのアドレスに記憶されていたデータのみを記憶し、別のキャッシュミスが発生した時に、該別のキャッシュミスに係るデータがリプレースメントデータメモリ装置に記憶されているならば、リプレースメントデータメモリ装置に記憶されている前記別のキャッシュミスに係るデータをロードデータとするリプレースメントデータ処理方法をコンピュータに行なわせるためのプログラム。
(Appendix 16)
Of the replacement data stored in the main storage device when a replacement occurs in the cache memory, only the data stored at the address of the cache memory related to the cache miss causing the replacement is stored, and another cache is stored. If data relating to another cache miss is stored in the replacement data memory device when a miss occurs, the replacement using the data relating to the other cache miss stored in the replacement data memory device as load data A program for causing a computer to perform a data processing method.

(付記17)
キャッシュメモリでリプレースメントが発生した時に主記憶装置にストアされるリプレースメントデータを記憶し、別のキャッシュミスが発生した時に、該別のキャッシュミスに係るデータがリプレースメントデータ記憶装置に記憶されているならば、リプレースメントデータ記憶装置に記憶されている前記別のキャッシュミスに係るデータをロードデータとするリプレースメントデータ処理方法であって、
複数アドレスの間で共通なデータを前記複数アドレスに対応付けて記憶する記憶ステップと、
前記別のキャッシュミスに係るアドレスが前記複数アドレスのうちの何れかのアドレスと一致した場合には、前記複数アドレスに対応したデータをロードデータとするロードステップと、
を有することを特徴とするリプレースメントデータ処理方法をコンピュータに行なわせるためのプログラム。
(Appendix 17)
If the replacement data stored in the main storage device is stored when a replacement occurs in the cache memory, and the data related to the other cache miss is stored in the replacement data storage device when another cache miss occurs A replacement data processing method in which data relating to another cache miss stored in a replacement data storage device is used as load data,
A storage step of storing data common to a plurality of addresses in association with the plurality of addresses;
A load step in which data corresponding to the plurality of addresses is used as load data when an address related to the other cache miss matches any one of the plurality of addresses;
A program for causing a computer to perform a replacement data processing method characterized by comprising:

(付記18)
付記17に記載のプログラムであって、
前記記憶ステップは、前記複数アドレスを関連づけてアバンドメントアドレスバッファに記憶するステップと、前記複数アドレスのうちの1つのアドレスと前記共通なデータとを関連づけて第1のエントリに記憶するステップとを有することを特徴とするプログラム。
(Appendix 18)
The program according to appendix 17, wherein
The storing step includes a step of storing the plurality of addresses in association with each other in an arrival address buffer, and a step of storing one address of the plurality of addresses and the common data in association with each other in the first entry. A program characterized by that.

(付記19)
付記18に記載のプログラムであって、
前記ロードステップでは、前記別のキャッシュミスに係るアドレスが前記複数アドレスのうちの何れかのアドレスと一致したか否かを前記別のキャッシュミスに係るアドレスが前記アバンドメントアドレスバッファに格納されているか否かを調べることにより検出することを特徴とするプログラム。
(Appendix 19)
The program according to appendix 18, wherein
In the loading step, whether the address related to the other cache miss matches the address of any one of the plurality of addresses or not is the address related to the other cache miss stored in the abandonment address buffer. A program characterized by detecting by checking whether or not.

(付記20)
付記18又は19に記載のプログラムであって、
前記ロードステップでは、前記別のキャッシュミスに係るアドレスが前記複数アドレスのうちの何れかのアドレスと一致したならば、前記第1のエントリに記憶されている前記共通なデータをロードデータとすることを特徴とするプログラム。
(Appendix 20)
The program according to appendix 18 or 19,
In the loading step, if the address related to the other cache miss matches any one of the plurality of addresses, the common data stored in the first entry is used as load data. A program characterized by

(付記21)
付記18乃至20の何れか1に記載のプログラムであって、
前記方法は、
プライオリティとアドレスとデータの組の第2のエントリを1以上利用し、該第2のエントリは前記第1のエントリを含み、
前記リプレースメントデータのストア先であるリプレースメントアドレスが何れかの前記第2のエントリにあるアドレスと一致していれば、前記リプレースメントアドレスが存在するエントリにリプレースメントデータを格納すると共に、そのエントリのプライオリティを最高にするステップと、
前記リプレースメントアドレスが何れの前記第2のエントリにあるアドレスとも一致しないが、前記アバンドメントアドレスバッファに記憶されていれば、前記アバンドメントアドレスバッファにおいて前記リプレースメントアドレスと関連づけられているアドレスであって何れかの前記第2のエントリにあるアドレスを前記リプレースメントアドレスに書き替え、アドレスを書き替えたその第2のエントリのプライオリティを最高にするステップと、
前記リプレースメントアドレスが何れの前記第2のエントリにあるアドレスとも一致せず、前記アバンドメントアドレスバッファに記憶されていなければ、プライオリティが最低のエントリに前記リプレースメントデータを格納し、該リプレースメントデータを格納したエントリのプライオリティを最高にし、その上で、リプレースメントデータと同一のデータを有するエントリがあれば、そのエントリのプライオリティを最低にし、前記リプレースメントデータを格納したエントリにあるアドレスと前記リプレースメントデータと同一のデータを有するエントリにあるアドレスとを関連づけて前記アバンドメントアドレスバッファに格納するステップと、
を更に備えることを特徴とするプログラム。
(Appendix 21)
The program according to any one of appendices 18 to 20,
The method
Using one or more second entries of a set of priority, address, and data, the second entry comprising the first entry;
If the replacement address that is the storage destination of the replacement data matches the address in any of the second entries, the replacement data is stored in the entry in which the replacement address exists, and the priority of the entry is set to the highest. Step to
The replacement address does not match any address in any of the second entries, but if it is stored in the abandonment address buffer, it is an address associated with the replacement address in the abandonment address buffer. Rewriting the address in the second entry to the replacement address and maximizing the priority of the second entry with the rewritten address;
If the replacement address does not match the address in any of the second entries and is not stored in the abandonment address buffer, the replacement data is stored in the entry with the lowest priority, and the replacement data is stored. If there is an entry having the highest priority of the entry and having the same data as the replacement data, the priority of the entry is set to the lowest and the address in the entry storing the replacement data is the same data as the replacement data. Associating and storing the address in the entry having
A program characterized by further comprising:

(付記22)
付記21に記載のプログラムであって、
前記方法は、
前記別のキャッシュミスに係るロード元アドレスが前記キャッシュメモリに存在し、何れかの前記第2のエントリにあるアドレスと一致していれば、前記キャッシュメモリのデータをロードし、前記ロード元アドレスと一致するアドレスを有する前記第2のエントリのプライオリティを最高にするステップと、
前記別のキャッシュミスに係るロード元アドレスが前記キャッシュメモリに存在し、何れの前記第2のエントリにあるアドレスとも一致しないならば、前記キャッシュメモリのデータをロードするステップと、
前記別のキャッシュミスに係るロード元アドレスが前記キャッシュメモリに存在せず、何れかの前記第2のエントリにあるアドレスと一致していれば、前記別のキャッシュミスに係るロード元アドレスと一致したアドレスを有する前記第2のエントリにあるデータをロードし、そのエントリのプライオリティを最高にするステップと、
前記別のキャッシュミスに係るロード元アドレスが前記キャッシュメモリに存在せず、何れの前記第2のエントリにあるアドレスとも一致せず、前記アバンドメントアドレスバッファに記憶されているならば、前記アバンドメントアドレスバッファにおいて前記別のキャッシュミスに係るロード元アドレスに関連づけられているアドレスを有する前記第2のエントリにあるデータをロードするステップと、
前記別のキャッシュミスに係るロード元アドレスが前記キャッシュメモリに存在せず、何れの前記第2のエントリにあるアドレスとも一致せず、前記アバンドメントアドレスバッファに記憶されていなければ、主記憶装置にあるデータをロードするステップと、
を更に有することを特徴とするプログラム。
(Appendix 22)
The program according to attachment 21, wherein
The method
If the load source address related to the other cache miss exists in the cache memory and matches the address in any of the second entries, the cache memory data is loaded, and the load source address Maximizing the priority of the second entry having a matching address;
Loading the cache memory data if the load source address associated with the other cache miss exists in the cache memory and does not match the address in any of the second entries;
If the load source address related to the other cache miss does not exist in the cache memory and matches the address in any of the second entries, it matches the load source address related to the other cache miss. Loading the data in the second entry having an address and maximizing the priority of the entry;
If the load source address related to the other cache miss does not exist in the cache memory, does not match the address in any of the second entries, and is stored in the abandonment address buffer, the abandonment Loading data in the second entry having an address associated with a source address associated with the other cache miss in an address buffer;
If the load source address related to the other cache miss does not exist in the cache memory, does not match the address in any of the second entries, and is not stored in the abandonment address buffer, Loading certain data;
A program characterized by further comprising:

101 CPU_CORE
102 キャッシュメモリ
103 RDM
104 メモリコントローラ
105 主記憶装置
101 CPU_CORE
102 Cache memory 103 RDM
104 Memory controller 105 Main storage device

Claims (10)

キャッシュメモリでリプレースメントが発生した時に主記憶装置にストアされるリプレースメントデータのうち前記リプレースメントの起因となったキャッシュミスに係る、前記キャッシュメモリのアドレスに記憶されていたデータのみを記憶し、別のキャッシュミスが発生した時に、該別のキャッシュミスに係るデータが自装置に記憶されているならば、自装置に記憶されている前記別のキャッシュミスに係るデータをロードデータとするリプレースメントデータメモリ装置。   Of the replacement data stored in the main storage device when a replacement occurs in the cache memory, only the data stored at the address of the cache memory related to the cache miss causing the replacement is stored, and another cache is stored. A replacement data memory device that uses data relating to another cache miss stored in the own device as load data if data relating to the other cache miss is stored in the own device when a miss occurs. キャッシュメモリでリプレースメントが発生した時に主記憶装置にストアされるリプレースメントデータを記憶し、別のキャッシュミスが発生した時に、該別のキャッシュミスに係るデータが自装置に記憶されているならば、自装置に記憶されている前記別のキャッシュミスに係るデータをロードデータとするリプレースメントデータメモリ装置であって、
複数アドレスの間で共通なデータを前記複数アドレスに対応付けて記憶する記憶手段と、
前記別のキャッシュミスに係るアドレスが前記複数アドレスのうちの何れかのアドレスと一致した場合には、前記複数アドレスに対応したデータをロードデータとするロード手段と、
を備えることを特徴とするリプレースメントデータメモリ装置。
If replacement data stored in the main storage device is stored when a replacement occurs in the cache memory, and another cache miss occurs, if the data related to the other cache miss is stored in the own device, A replacement data memory device that uses the data relating to the other cache miss stored in the device as load data,
Storage means for storing data common to a plurality of addresses in association with the plurality of addresses;
When the address related to the other cache miss matches any one of the plurality of addresses, load means for setting the data corresponding to the plurality of addresses as load data;
A replacement data memory device comprising:
請求項2に記載のリプレースメントメモリ装置であって、
前記記憶手段は、前記複数アドレスを関連づけて記憶するアバンドメントアドレスバッファと、前記複数アドレスのうちの1つのアドレスと前記共通なデータとを関連づけて記憶する第1のエントリとを備えることを特徴とするリプレースメントデータメモリ装置。
The replacement memory device according to claim 2,
The storage means includes an arrival address buffer that stores the plurality of addresses in association with each other, and a first entry that stores one of the plurality of addresses in association with the common data. Replacement data memory device.
請求項3に記載のリプレースメントメモリ装置であって、
前記ロード手段は、前記別のキャッシュミスに係るアドレスが前記複数アドレスのうちの何れかのアドレスと一致したか否かを前記別のキャッシュミスに係るアドレスが前記アバンドメントアドレスバッファに格納されているか否かを調べることにより検出することを特徴とするリプレースメントデータメモリ装置。
The replacement memory device according to claim 3,
Whether the address related to the other cache miss matches the address of any one of the plurality of addresses, or whether the address related to the other cache miss is stored in the abandonment address buffer. A replacement data memory device characterized by detecting whether or not.
請求項3又は4に記載のリプレースメントデータメモリ装置であって、
前記ロード手段は、前記別のキャッシュミスに係るアドレスが前記複数アドレスのうちの何れかのアドレスと一致したならば、前記第1のエントリに記憶されている前記共通なデータをロードデータとすることを特徴とするリプレースメントデータメモリ装置。
The replacement data memory device according to claim 3 or 4,
The load means sets the common data stored in the first entry as load data when an address related to the other cache miss matches any one of the plurality of addresses. A replacement data memory device.
請求項3乃至5の何れか1に記載のリプレースメントデータメモリ装置であって、
プライオリティとアドレスとデータの組の第2のエントリを1以上備え、該第2のエントリは前記第1のエントリを含み、
前記リプレースメントデータのストア先であるリプレースメントアドレスが何れかの前記第2のエントリにあるアドレスと一致していれば、前記リプレースメントアドレスが存在するエントリにリプレースメントデータを格納すると共に、そのエントリのプライオリティを最高にする手段と、
前記リプレースメントアドレスが何れの前記第2のエントリにあるアドレスとも一致しないが、前記アバンドメントアドレスバッファに記憶されていれば、前記アバンドメントアドレスバッファにおいて前記リプレースメントアドレスと関連づけられているアドレスであって何れかの前記第2のエントリにあるアドレスを前記リプレースメントアドレスに書き替え、アドレスを書き替えたその第2のエントリのプライオリティを最高にする手段と、
前記リプレースメントアドレスが何れの前記第2のエントリにあるアドレスとも一致せず、前記アバンドメントアドレスバッファに記憶されていなければ、プライオリティが最低のエントリに前記リプレースメントデータを格納し、該リプレースメントデータを格納したエントリのプライオリティを最高にし、その上で、リプレースメントデータと同一のデータを有するエントリがあれば、そのエントリのプライオリティを最低にし、前記リプレースメントデータを格納したエントリにあるアドレスと前記リプレースメントデータと同一のデータを有するエントリにあるアドレスとを関連づけて前記アバンドメントアドレスバッファに格納する手段と、
を更に備えることを特徴とするリプレースメントデータメモリ装置。
The replacement data memory device according to any one of claims 3 to 5,
Comprising one or more second entries of a set of priority, address and data, the second entry comprising said first entry;
If the replacement address that is the storage destination of the replacement data matches the address in any of the second entries, the replacement data is stored in the entry in which the replacement address exists, and the priority of the entry is set to the highest. Means to
The replacement address does not match any address in any of the second entries, but if it is stored in the abandonment address buffer, it is an address associated with the replacement address in the abandonment address buffer. Means for rewriting the address in the second entry with the replacement address, and maximizing the priority of the second entry with the rewritten address;
If the replacement address does not match the address in any of the second entries and is not stored in the abandonment address buffer, the replacement data is stored in the entry with the lowest priority, and the replacement data is stored. If there is an entry having the highest priority of the entry and having the same data as the replacement data, the priority of the entry is set to the lowest and the address in the entry storing the replacement data is the same data as the replacement data. Means for associating and storing the address in the entry having an entry address buffer;
The replacement data memory device further comprising:
請求項6に記載のリプレースメントデータメモリ装置であって、
前記別のキャッシュミスに係るロード元アドレスが前記キャッシュメモリに存在し、何れかの前記第2のエントリにあるアドレスと一致していれば、前記キャッシュメモリのデータをロードし、前記ロード元アドレスと一致するアドレスを有する前記第2のエントリのプライオリティを最高にする手段と、
前記別のキャッシュミスに係るロード元アドレスが前記キャッシュメモリに存在し、何れの前記第2のエントリにあるアドレスとも一致しないならば、前記キャッシュメモリのデータをロードする手段と、
前記別のキャッシュミスに係るロード元アドレスが前記キャッシュメモリに存在せず、何れかの前記第2のエントリにあるアドレスと一致していれば、前記別のキャッシュミスに係るロード元アドレスと一致したアドレスを有する前記第2のエントリにあるデータをロードし、そのエントリのプライオリティを最高にする手段と、
前記別のキャッシュミスに係るロード元アドレスが前記キャッシュメモリに存在せず、何れの前記第2のエントリにあるアドレスとも一致せず、前記アバンドメントアドレスバッファに記憶されているならば、前記アバンドメントアドレスバッファにおいて前記別のキャッシュミスに係るロード元アドレスに関連づけられているアドレスを有する前記第2のエントリにあるデータをロードする手段と、
前記別のキャッシュミスに係るロード元アドレスが前記キャッシュメモリに存在せず、何れの前記第2のエントリにあるアドレスとも一致せず、前記アバンドメントアドレスバッファに記憶されていなければ、主記憶装置にあるデータをロードする手段と、
を更に備えることを特徴とするリプレースメントデータメモリ装置。
The replacement data memory device according to claim 6,
If the load source address related to the other cache miss exists in the cache memory and matches the address in any of the second entries, the cache memory data is loaded, and the load source address Means for maximizing the priority of the second entry having a matching address;
Means for loading data in the cache memory if a load source address relating to the other cache miss exists in the cache memory and does not match an address in any of the second entries;
If the load source address related to the other cache miss does not exist in the cache memory and matches the address in any of the second entries, it matches the load source address related to the other cache miss. Means for loading data in said second entry having an address and maximizing the priority of said entry;
If the load source address related to the other cache miss does not exist in the cache memory, does not match the address in any of the second entries, and is stored in the abandonment address buffer, the abandonment Means for loading data in the second entry having an address associated with a load source address associated with the another cache miss in an address buffer;
If the load source address related to the other cache miss does not exist in the cache memory, does not match the address in any of the second entries, and is not stored in the abandonment address buffer, A means of loading certain data;
The replacement data memory device further comprising:
請求項1乃至7の何れか1に記載のリプレースメントデータメモリ装置を含むことを特徴とする中央演算装置。   A central processing unit comprising the replacement data memory device according to claim 1. キャッシュメモリでリプレースメントが発生した時に主記憶装置にストアされるリプレースメントデータのうち前記リプレースメントの起因となったキャッシュミスに係る、前記キャッシュメモリのアドレスに記憶されていたデータのみを記憶し、別のキャッシュミスが発生した時に、該別のキャッシュミスに係るデータがリプレースメントデータメモリ装置に記憶されているならば、リプレースメントデータメモリ装置に記憶されている前記別のキャッシュミスに係るデータをロードデータとするリプレースメントデータ処理方法。   Of the replacement data stored in the main storage device when a replacement occurs in the cache memory, only the data stored at the address of the cache memory related to the cache miss causing the replacement is stored, and another cache is stored. If data relating to another cache miss is stored in the replacement data memory device when a miss occurs, the replacement using the data relating to the other cache miss stored in the replacement data memory device as load data Data processing method. キャッシュメモリでリプレースメントが発生した時に主記憶装置にストアされるリプレースメントデータのうち前記リプレースメントの起因となったキャッシュミスに係る、前記キャッシュメモリのアドレスに記憶されていたデータのみを記憶し、別のキャッシュミスが発生した時に、該別のキャッシュミスに係るデータがリプレースメントデータメモリ装置に記憶されているならば、リプレースメントデータメモリ装置に記憶されている前記別のキャッシュミスに係るデータをロードデータとするリプレースメントデータ処理方法をコンピュータに行なわせるためのプログラム。   Of the replacement data stored in the main storage device when a replacement occurs in the cache memory, only the data stored at the address of the cache memory related to the cache miss causing the replacement is stored, and another cache is stored. If data relating to another cache miss is stored in the replacement data memory device when a miss occurs, the replacement using the data relating to the other cache miss stored in the replacement data memory device as load data A program for causing a computer to perform a data processing method.
JP2011057750A 2011-03-16 2011-03-16 Replacement data memory device, central processing unit and replacement data processing method Pending JP2012194742A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011057750A JP2012194742A (en) 2011-03-16 2011-03-16 Replacement data memory device, central processing unit and replacement data processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011057750A JP2012194742A (en) 2011-03-16 2011-03-16 Replacement data memory device, central processing unit and replacement data processing method

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2014164651A Division JP5791133B2 (en) 2014-08-13 2014-08-13 Replacement data memory device, central processing unit, and replacement data processing program

Publications (1)

Publication Number Publication Date
JP2012194742A true JP2012194742A (en) 2012-10-11

Family

ID=47086576

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011057750A Pending JP2012194742A (en) 2011-03-16 2011-03-16 Replacement data memory device, central processing unit and replacement data processing method

Country Status (1)

Country Link
JP (1) JP2012194742A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106909517A (en) * 2015-12-22 2017-06-30 超威半导体产品(中国)有限公司 For the catalogue replacement method and system of the buffer consistency based on catalogue

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09190382A (en) * 1996-01-02 1997-07-22 Hewlett Packard Co <Hp> Contention cache for computer memory system
JPH09288616A (en) * 1996-04-24 1997-11-04 Nec Niigata Ltd Computer
JPH10133947A (en) * 1996-07-01 1998-05-22 Sun Microsyst Inc Integrated processor memory device
JPH10307752A (en) * 1996-08-28 1998-11-17 Nec Niigata Ltd Secondary level cache memory system
JP2003533822A (en) * 2000-05-16 2003-11-11 サムソン エレクトロニクス カンパニー リミティッド Cache system including direct mapped cache and full associative buffer and control method thereof
JP2006260378A (en) * 2005-03-18 2006-09-28 Seiko Epson Corp Semiconductor integrated circuit

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09190382A (en) * 1996-01-02 1997-07-22 Hewlett Packard Co <Hp> Contention cache for computer memory system
JPH09288616A (en) * 1996-04-24 1997-11-04 Nec Niigata Ltd Computer
JPH10133947A (en) * 1996-07-01 1998-05-22 Sun Microsyst Inc Integrated processor memory device
JPH10307752A (en) * 1996-08-28 1998-11-17 Nec Niigata Ltd Secondary level cache memory system
JP2003533822A (en) * 2000-05-16 2003-11-11 サムソン エレクトロニクス カンパニー リミティッド Cache system including direct mapped cache and full associative buffer and control method thereof
JP2006260378A (en) * 2005-03-18 2006-09-28 Seiko Epson Corp Semiconductor integrated circuit

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106909517A (en) * 2015-12-22 2017-06-30 超威半导体产品(中国)有限公司 For the catalogue replacement method and system of the buffer consistency based on catalogue

Similar Documents

Publication Publication Date Title
US20240078190A1 (en) Write merging on stores with different privilege levels
KR102448124B1 (en) Cache accessed using virtual addresses
US7240163B2 (en) Microprocessor, apparatus and method for selective prefetch retire
US9886385B1 (en) Content-directed prefetch circuit with quality filtering
US6622211B2 (en) Virtual set cache that redirects store data to correct virtual set to avoid virtual set store miss penalty
US9672161B2 (en) Configuring a cache management mechanism based on future accesses in a cache
US8583874B2 (en) Method and apparatus for caching prefetched data
US20160140042A1 (en) Instruction cache translation management
US20100011165A1 (en) Cache management systems and methods
US9384131B2 (en) Systems and methods for accessing cache memory
US20060224857A1 (en) Locking entries into translation lookaside buffers
JP2013097671A (en) Address conversion device, control method of address conversion device, and arithmetic processing unit
US10831673B2 (en) Memory address translation
KR102482516B1 (en) memory address conversion
US6792498B2 (en) Memory system with mechanism for assisting a cache memory
US20130132658A1 (en) Device For Executing Program Instructions and System For Caching Instructions
US8688952B2 (en) Arithmetic processing unit and control method for evicting an entry from a TLB to another TLB
JP2001249846A (en) Cache memory device and data processing system
JP5791133B2 (en) Replacement data memory device, central processing unit, and replacement data processing program
JP2012194742A (en) Replacement data memory device, central processing unit and replacement data processing method
JP7311959B2 (en) Data storage for multiple data types
US20120102271A1 (en) Cache memory system and cache memory control method

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130829

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130906

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140515