JP5978814B2 - Memory device, arithmetic processing device, and cache memory control method - Google Patents

Memory device, arithmetic processing device, and cache memory control method Download PDF

Info

Publication number
JP5978814B2
JP5978814B2 JP2012153972A JP2012153972A JP5978814B2 JP 5978814 B2 JP5978814 B2 JP 5978814B2 JP 2012153972 A JP2012153972 A JP 2012153972A JP 2012153972 A JP2012153972 A JP 2012153972A JP 5978814 B2 JP5978814 B2 JP 5978814B2
Authority
JP
Japan
Prior art keywords
data
cache
array
cache data
write
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.)
Active
Application number
JP2012153972A
Other languages
Japanese (ja)
Other versions
JP2014016812A (en
Inventor
慎吾 渡辺
慎吾 渡辺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012153972A priority Critical patent/JP5978814B2/en
Publication of JP2014016812A publication Critical patent/JP2014016812A/en
Application granted granted Critical
Publication of JP5978814B2 publication Critical patent/JP5978814B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

本願開示は、メモリ装置、演算処理装置、及びキャッシュメモリの制御方法に関する。   The present disclosure relates to a memory device, an arithmetic processing device, and a cache memory control method.

同一チップ上に複数のプロセッサコアを実装したマルチコアのプロセッサでは、プロセッサの演算処理速度とメインメモリアクセスレイテンシ及びメモリアクセススループットとの乖離が問題となる。この問題を緩和するため、プロセッサは一般に、多階層のメモリシステムを有している。メインメモリとプロセッサの演算部との間にあり、一時的にメインメモリのデータをコピーして保持しておく小容量且つ高速なメモリをキャッシュメモリと呼ぶ。プロセッサがキャッシュメモリ上のデータを参照する限り、低レイテンシかつ高スループットなメモリアクセスが可能である。   In a multi-core processor in which a plurality of processor cores are mounted on the same chip, the difference between the processor processing speed, main memory access latency, and memory access throughput becomes a problem. In order to alleviate this problem, processors typically have a multi-level memory system. A small-capacity and high-speed memory that is between the main memory and the arithmetic unit of the processor and temporarily copies and holds the data in the main memory is called a cache memory. As long as the processor refers to the data on the cache memory, memory access with low latency and high throughput is possible.

キャッシュメモリは、主に、LRU(Last Recently Used)アレイ、タグアレイ、及びデータアレイを含む。データアレイの各配列要素には、メインメモリからデータがコピーされる。メインメモリからデータアレイへのデータのコピーはキャッシュライン単位で実行される。メインメモリのメモリ空間はキャッシュライン単位で分割され、分割されたメモリ領域を順番にキャッシュラインに割当てておく。キャッシュメモリの容量はメインメモリの容量よりも小さいので、メインメモリのメモリ領域を繰り返して同一のキャッシュラインに割当てることになる。   The cache memory mainly includes an LRU (Last Recently Used) array, a tag array, and a data array. Data is copied from the main memory to each array element of the data array. Copying data from the main memory to the data array is executed in units of cache lines. The memory space of the main memory is divided in units of cache lines, and the divided memory areas are sequentially assigned to the cache lines. Since the capacity of the cache memory is smaller than the capacity of the main memory, the memory area of the main memory is repeatedly assigned to the same cache line.

一般に、アドレスの全ビットのうちで、所定数の中位ビットがキャッシュメモリのインデックスとなり、それより上位に位置する残りのビットがキャッシュメモリのタグとなる。キャッシュメモリのタグアレイが、各インデックスに対応するタグを格納している。但し各インデックスに対して、一般に複数のタグを格納しており、これら複数のタグをウェイと呼ぶ。データをアクセスする場合には、アクセス先を示すアドレス中のインデックス部分を用いて、タグアレイ中の対応するインデックスの複数のウェイのタグを読み出す。読み出したタグと、アドレス中のタグ部分のビットパターンとが一致するか否かを判断する。読み出した複数のウェイの何れかのタグが一致する場合には、当該アクセスはキャッシュヒットとなる。読み出した複数のウェイの何れのタグについても一致しない場合には、当該アクセスはキャッシュミスとなる。   In general, among all bits of an address, a predetermined number of middle bits serve as an index of the cache memory, and the remaining bits positioned higher than that serve as a cache memory tag. A tag array of the cache memory stores a tag corresponding to each index. However, a plurality of tags are generally stored for each index, and these plurality of tags are called ways. When accessing data, tags of a plurality of ways with corresponding indexes in the tag array are read using the index portion in the address indicating the access destination. It is determined whether or not the read tag matches the bit pattern of the tag portion in the address. If any tag of the read multiple ways matches, the access becomes a cache hit. If none of the tags of the plurality of read ways match, the access is a cache miss.

キャッシュヒットの場合、該当インデックスの該当ウェイ(タグが一致したウェイ)に対応するキャッシュデータ(1キャッシュライン分の所定ビット数のデータ)が、キャッシュRAMにおいてアクセスされる。キャッシュミスの場合には、メインメモリに格納されている当該アクセスの対象であるデータを、キャッシュRAMの該当するキャッシュラインに転送する。この際、該当インデックスの全てのウェイにおいて有効なキャッシュデータが存在する場合には、最も必要性の低いデータ(例えば最後にアクセスされてから最も時間が経過しているデータ)を、アクセス対象のデータで置き換える処理が実行される。この置き換え処理時に、ライトバック動作を実行し、置き換えられる方のデータが上書きされ消えてしまう前に当該データをメインメモリに書き込んで、キャッシュメモリの内容をメインメモリに反映させる。キャッシュメモリのLRU(Last Recently Used)アレイは、最後にアクセスされてから最も時間が経過しているデータのウェイを記憶しておく領域である。   In the case of a cache hit, the cache data (data of a predetermined number of bits for one cache line) corresponding to the corresponding way (the way with the matching tag) of the corresponding index is accessed in the cache RAM. In the case of a cache miss, the access target data stored in the main memory is transferred to the corresponding cache line in the cache RAM. At this time, if valid cache data exists in all the ways of the corresponding index, the least necessary data (for example, data that has passed the most time since the last access) is used as the data to be accessed. The replacement process is executed. During this replacement process, a write-back operation is executed, and before the data to be replaced is overwritten and disappears, the data is written into the main memory, and the contents of the cache memory are reflected in the main memory. The LRU (Last Recently Used) array of the cache memory is an area for storing the way of the data that has passed the most time since the last access.

メインメモリとして用いるDIMM(Dual Inline Memory Module)の要素であるDRAM(Dynamic Random Access Memory)へのアクセスを、大きなデータ単位でまとめて行うことにより、読み書き処理のスループットを改善することが考えられる。DRAMは、1ビットの情報を記憶するメモリ素子がマトリックス状に配置されたセルアレイ、及び、メモリ素子への読み書きアクセスを制御する回路を含む。DRAMへのアクセスにおいては、最初にセルアレイ中のローアドレスに対応する一本のワード線を選択活性化して行方向の位置を指定し、次にコラムアドレスが指定する列方向の位置を選択してデータの読み書きを行う。同一のローアドレスで連続するコラムアドレスをアクセスするときには、ワード線を選択活性化したままの状態で、列方向に連続する複数のデータを連続的にアクセスすることにより、アクセス時間の短縮を図ることができる。このようなアクセスの仕方を、ここでは連続アクセスと呼ぶ。   It is conceivable to improve throughput of read / write processing by collectively accessing a DRAM (Dynamic Random Access Memory), which is an element of a DIMM (Dual Inline Memory Module) used as a main memory, in a large data unit. The DRAM includes a cell array in which memory elements that store 1-bit information are arranged in a matrix, and a circuit that controls read / write access to the memory elements. In accessing the DRAM, first, one word line corresponding to a row address in the cell array is selectively activated to designate a row direction position, and then a column direction position designated by a column address is selected. Read and write data. When accessing consecutive column addresses with the same row address, the access time can be shortened by continuously accessing multiple data in the column direction while the word line remains selectively activated. Can do. Such an access method is called continuous access here.

多階層のメモリシステムにおいてメインメモリへのアクセスが発生するのは、メインメモリからキャッシュメモリへコピーするデータを読み出す動作の場合、又は、キャッシュメモリから追い出されるデータをメインメモリに書き込む動作の場合である。このうち、メインメモリからキャッシュメモリへデータをコピーする動作(キャッシュフィル動作)は、プロセッサの演算部において当該データが必要になった(又は近い将来必要になると予測した)ときに実行される。従って、キャッシュフィルによるメインメモリへのアクセスは、基本的にプログラムにより制御が可能であり、メインメモリの連続アドレスへアクセスするようにアクセス制御することが可能である。一方、キャッシュメモリからデータを追い出す動作(ライトバック動作)は、キャッシュフィルの過程で副次的に行われる動作であり、追い出される対象のウェイはプログラムの制御とは直接に関係なく見かけ上ランダムである。従って、ライトバックにおいては、メインメモリの連続アドレスへアクセスするようにアクセス制御することはできない。   In a multi-level memory system, access to the main memory occurs when reading data to be copied from the main memory to the cache memory or when writing data evicted from the cache memory to the main memory. . Among these, the operation of copying data from the main memory to the cache memory (cache fill operation) is executed when the data is needed (or predicted to be needed in the near future) in the arithmetic unit of the processor. Therefore, access to the main memory by cache fill can be basically controlled by a program, and access control can be performed so as to access continuous addresses of the main memory. On the other hand, the operation of expelling data from the cache memory (write-back operation) is an operation that is performed secondaryly during the cache fill process, and the way to be expelled is seemingly random regardless of program control. is there. Therefore, in write back, access control cannot be performed so as to access continuous addresses of the main memory.

ライトバックの書き込みアドレスを自在に制御することはできないが、キャッシュラインサイズを増大すれば、ライトバック時にある程度の連続アドレスへの書き込みを実現することができる。即ち、キャッシュラインサイズを増大させることで、メインメモリアクセスのアクセス単位が大きくなり、ある程度の長さの連続アクセスが常時行われることになる。しかしながら、キャッシュラインサイズは、参照アドレスが所定のアドレス範囲に集中するという空間的局所性と所定の時間範囲に集中するという時間的局所性を考慮して、キャッシュメモリのヒット率と、プロセッサの物理的実装コストが最適になるように定められる。一般に無数のアプリケーションを実行する可能性のあるプロセッサでは、より小さなキャッシュラインサイズが望まれる。すなわち、キャッシュメモリ全体容量が一定ならば空間的局所性と時間的局所性ですらトレードオフの関係になる。一つのキャッシュラインの参照のみに着目すれば、キャッシュラインサイズの拡大は空間的局所性の利用効率が大きくなるが、複数のキャッシュラインの参照を考慮すると他のキャッシュラインの参照により参照すべきキャッシュラインが追い出される確率が増加するため、時間的局所性の利用効率が小さくなる。一般的に、ラインサイズの縮小による空間的局所性の利用効率が小さくなる場合のデメリットは、どのキャッシュラインを参照するかを予測することによってデメリットの影響を小さくできる。具体的には、参照があったキャッシュライン周辺のキャッシュラインのデータもまとめてコピーすれば良い。しかし、時間的局所性の利用効率を大きくするにはラインサイズの縮小が効果があるため、空間的局所性の利用効率と時間的局所性の利用効率を両立するのは困難であった。   Although the write-back write address cannot be freely controlled, if the cache line size is increased, it is possible to realize writing to a certain continuous address at the time of write-back. In other words, by increasing the cache line size, the access unit for main memory access increases, and continuous access of a certain length is always performed. However, the cache line size is determined by considering the cache memory hit rate and the processor physical capacity in consideration of the spatial locality that the reference address is concentrated in a predetermined address range and the temporal locality that the reference address is concentrated in a predetermined time range. The implementation cost is determined to be optimal. A smaller cache line size is desired for processors that are generally capable of running a myriad of applications. That is, if the total capacity of the cache memory is constant, there is a trade-off relationship between spatial locality and temporal locality. If attention is focused on only one cache line, the increase in the cache line size increases the utilization efficiency of spatial locality. However, considering the references to multiple cache lines, the cache to be referenced by referring to other cache lines Since the probability that a line is evicted increases, the utilization efficiency of temporal locality decreases. Generally, the disadvantage when the utilization efficiency of the spatial locality due to the reduction in the line size is reduced can be reduced by predicting which cache line is referred to. Specifically, the cache line data around the referenced cache line may be copied together. However, reducing the line size is effective in increasing the temporal locality utilization efficiency, so it is difficult to achieve both the spatial locality utilization efficiency and the temporal locality utilization efficiency.

特開平7−160577号公報JP-A-7-160577 特開2011−164948号公報JP 2011-164948 A 特開2008−310465号公報JP 2008-310465 A

以上を鑑みると、メインメモリに対する連続アクセスのデータのサイズを可変としたメモリ装置、演算処理装置、及びキャッシュメモリの制御方法が望まれる。   In view of the above, a memory device, an arithmetic processing device, and a cache memory control method in which the size of data for continuous access to the main memory is variable are desired.

メモリ装置は、インデックス毎にキャッシュデータを格納するデータアレイと、前記データアレイのキャッシュデータ毎に第1の状態又は第2の状態の何れかを示す管理データを格納する管理データアレイと、単一ラインでのキャッシュフィル要求に応じて単一ラインを前記データアレイに格納する場合には前記管理データアレイの対応する管理データを第1の状態とし、連続複数ラインでのキャッシュフィル要求に応じて連続複数ラインを前記データアレイに格納する場合には前記管理データアレイの対応する管理データを第2の状態とする書込制御回路と、追い出し対象キャッシュデータのライトバック時に、前記管理データアレイの対応する管理データが第1の状態を示す場合には前記追い出し対象キャッシュデータを単一ラインとして書き込む要求を生成し、前記管理データアレイの対応する管理データが第2の状態を示す場合には、前記追い出し対象キャッシュデータと一纏まりとなる前記データアレイのキャッシュデータと前記追い出し対象キャッシュデータとを連続複数ラインとして書き込む要求を生成するアクセス制御回路と、インデックス毎に複数のウェイに対応する複数のタグを格納するタグアレイと、ライトバックするキャッシュデータを格納するバッファとを含み、前記データアレイにはインデックス毎に前記複数のウェイに対応する複数のキャッシュデータが格納され、前記追い出し対象キャッシュデータのライトバック時に、前記管理データアレイの対応する管理データが第2の状態を示す場合には、前記追い出し対象キャッシュデータのインデックスの隣接インデックスにおいて、前記追い出し対象キャッシュデータのタグと同一のタグを有するキャッシュデータを前記データアレイから選択し、前記選択されたキャッシュデータと前記追い出し対象キャッシュデータとを前記バッファに格納する
A memory device includes: a data array that stores cache data for each index; a management data array that stores management data indicating either the first state or the second state for each cache data of the data array; When a single line is stored in the data array in response to a cache fill request on a line, the corresponding management data in the management data array is set to the first state and continuously in response to a cache fill request on consecutive multiple lines. When storing a plurality of lines in the data array, a write control circuit that sets the management data corresponding to the management data array to the second state, and the management data array When the management data indicates the first state, the eviction target cache data is set as a single line. When a write request is generated and the corresponding management data in the management data array indicates the second state, the cache data of the data array and the eviction target cache data that are grouped together with the eviction target cache data are An access control circuit for generating a request to write as a continuous plurality of lines; a tag array for storing a plurality of tags corresponding to a plurality of ways for each index; and a buffer for storing cache data to be written back; A plurality of cache data corresponding to the plurality of ways is stored for each index, and when the management data corresponding to the management data array indicates a second state at the time of write back of the cache data to be purged, the eviction is performed. Index of target cache data Of the adjacent index, the cache data having the tag and same tag of the eviction target cache data selected from the data array, and stores the target cache data eviction the said selected cache data in the buffer.

キャッシュメモリの制御方法は、単一ラインでのキャッシュフィル要求に応じて単一ラインをデータアレイに格納する場合には管理データアレイの対応する管理データを第1の状態に設定し、連続複数ラインでのキャッシュフィル要求に応じて連続複数ラインを前記データアレイに格納する場合には前記管理データアレイの対応する管理データを第2の状態に設定し、追い出し対象キャッシュデータのライトバック時に、前記管理データアレイの対応する管理データが第1の状態を示す場合には前記追い出し対象キャッシュデータを単一ラインとして書き込む要求を生成し、前記管理データアレイの対応する管理データが第2の状態を示す場合には、前記追い出し対象キャッシュデータと一纏まりとなる前記データアレイのキャッシュデータと前記追い出し対象キャッシュデータとを連続複数ラインとして書き込む要求を生成し、インデックス毎に複数のウェイに対応する複数のタグが存在し、前記データアレイにはインデックス毎に前記複数のウェイに対応する複数のキャッシュデータが格納されており、前記追い出し対象キャッシュデータのライトバック時に、前記管理データアレイの対応する管理データが第2の状態を示す場合には、前記追い出し対象キャッシュデータのインデックスの隣接インデックスにおいて、前記追い出し対象キャッシュデータのタグと同一のタグを有するキャッシュデータを前記データアレイから選択し、前記選択されたキャッシュデータと前記追い出し対象キャッシュデータとをライトバック用バッファに格納する各段階を含む。
The method of the cache memory, set the corresponding management data of the management data array in the case of storing a single line data array in a first state in response to the cache fill request in a single line, multiple consecutive When storing a plurality of continuous lines in the data array in response to a cache fill request on a line, the management data corresponding to the management data array is set to the second state, and when the cache data to be evicted is written back, When the management data corresponding to the management data array indicates the first state, a request to write the eviction cache data as a single line is generated, and the management data corresponding to the management data array indicates the second state In this case, the cache data of the data array that is bundled with the cache data to be evicted Generates a request to write said eviction target cache data as a continuous plurality of lines, a plurality of each index Way there are multiple tags corresponding said data array a plurality of corresponding to said plurality of ways for each index When cache data is stored and the management data corresponding to the management data array indicates the second state at the time of write-back of the eviction target cache data, in the adjacent index of the index of the eviction target cache data, Each step includes selecting cache data having the same tag as the tag of the eviction target cache data from the data array, and storing the selected cache data and the eviction target cache data in a write-back buffer .

演算処理装置は、演算部と、キャッシュメモリと、メモリアクセスコントローラとを含み、前記キャッシュメモリは、インデックス毎にキャッシュデータを格納するデータアレイと、前記データアレイのキャッシュデータ毎に第1の状態又は第2の状態の何れかを示す管理データを格納する管理データアレイと、単一ラインでのキャッシュフィル要求に応じて単一ラインを前記データアレイに格納する場合には前記管理データアレイの対応する管理データを第1の状態とし、連続複数ラインでのキャッシュフィル要求に応じて連続複数ラインを前記データアレイに格納する場合には前記管理データアレイの対応する管理データを第2の状態とする書込制御回路と、追い出し対象キャッシュデータのライトバック時に、前記管理データアレイの対応する管理データが第1の状態を示す場合には前記追い出し対象キャッシュデータを単一ラインとして書き込む要求を前記メモリアクセスコントローラへ送信し、前記管理データアレイの対応する管理データが第2の状態を示す場合には、前記追い出し対象キャッシュデータと一纏まりとなる前記データアレイのキャッシュデータと前記追い出し対象キャッシュデータとを連続複数ラインとして書き込む要求を前記メモリアクセスコントローラへ送信するアクセス制御回路と、インデックス毎に複数のウェイに対応する複数のタグを格納するタグアレイと、ライトバックするキャッシュデータを格納するバッファとを含み、前記データアレイにはインデックス毎に前記複数のウェイに対応する複数のキャッシュデータが格納され、前記追い出し対象キャッシュデータのライトバック時に、前記管理データアレイの対応する管理データが第2の状態を示す場合には、前記追い出し対象キャッシュデータのインデックスの隣接インデックスにおいて、前記追い出し対象キャッシュデータのタグと同一のタグを有するキャッシュデータを前記データアレイから選択し、前記選択されたキャッシュデータと前記追い出し対象キャッシュデータとを前記バッファに格納する

The arithmetic processing unit includes an arithmetic unit, a cache memory, and a memory access controller, and the cache memory has a data array for storing cache data for each index, and a first state or for each cache data of the data array. A management data array that stores management data indicating any of the second states, and a corresponding one of the management data array when storing a single line in the data array in response to a cache fill request on a single line A document in which management data is set to the first state, and the management data array corresponding to the management data array is set to the second state when consecutive lines are stored in the data array in response to a cache fill request for continuous lines. Write control circuit and the write-out target cache data at the write back of the management data array When the corresponding management data indicates the first state, a request for writing the eviction target cache data as a single line is transmitted to the memory access controller, and the corresponding management data in the management data array indicates the second state. An access control circuit that transmits a request to write the cache data of the data array and the cache data to be evicted as a plurality of continuous lines to the memory access controller together with the cache data to be evicted, and for each index. Includes a tag array for storing a plurality of tags corresponding to a plurality of ways and a buffer for storing cache data to be written back, and the data array stores a plurality of cache data corresponding to the plurality of ways for each index. The chasing When the corresponding management data in the management data array indicates the second state at the time of write back of the target cache data, the same index as the tag of the target cache data is set in the adjacent index of the index of the target cache data. Cache data having the tag is selected from the data array, and the selected cache data and the eviction target cache data are stored in the buffer .

本願開示の少なくとも1つの実施例によれば、メインメモリに対する連続アクセスのデータのサイズを可変としたメモリ装置、演算処理装置、及びキャッシュメモリの制御方法が提供される。   According to at least one embodiment of the present disclosure, there are provided a memory device, an arithmetic processing device, and a cache memory control method in which the size of data for continuous access to a main memory is variable.

CPUモジュール及びメインメモリを含むシステムの図である。1 is a diagram of a system including a CPU module and a main memory. 最下位キャッシュメモリの構成の一例を示す図である。It is a figure which shows an example of a structure of the lowest cache memory. 1ラインデータ要求時又は1ラインキャッシュフィル要求時の最下位キャッシュメモリの動作の一例を示すフローチャートである。It is a flowchart which shows an example of operation | movement of the lowest-order cache memory at the time of 1 line data request | requirement, or 1 line cache fill request | requirement. キャッシュフィル処理の一例を示すフローチャートである。It is a flowchart which shows an example of a cache fill process. 2ラインキャッシュフィル要求時の最下位キャッシュメモリの動作の一例を示すフローチャートである。It is a flowchart which shows an example of operation | movement of the lowest cache memory at the time of 2 line cache fill request | requirement. ミス側フィル処理の一例を示すフローチャートである。It is a flowchart which shows an example of a miss side fill process. フィル処理の一例を示すフローチャートである。It is a flowchart which shows an example of a fill process. フィル処理の一例を示すフローチャートである。It is a flowchart which shows an example of a fill process.

以下に、本発明の実施例を添付の図面を用いて詳細に説明する。   Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

図1は、CPUモジュール及びメインメモリを含むシステムの図である。図1のシステムは、CPU(Central Processing Unit)モジュール10及びメインメモリである複数のDIMM11を含む。CPUモジュール10は、演算部12、最上位キャッシュメモリ13、最下位キャッシュメモリ14、及びメモリアクセスコントローラ(MAC)15を含む。演算部12は、DIMM11に格納されたプログラムを実行し、DIMM11に格納されたデータに対する演算処理を実行する。DIMM11に格納されたプログラムやデータは、メモリアクセスコントローラ15によりアクセスされ、メモリアクセスコントローラ15、最下位キャッシュメモリ14、及び最上位キャッシュメモリ13を介して演算部12に供給される。最上位キャッシュメモリ13及び最下位キャッシュメモリ14は、DIMM11よりも記憶容量が小さく、DIMM11よりも高速にデータアクセス可能なメモリであり、例えばSRAM(Static Random Access Memory)をメモリデバイスとして含む。一般に、最下位キャッシュメモリ14に格納されるデータの一部のコピーが、最上位キャッシュメモリ13に保持されている。またDIMM11に格納されるデータの一部のコピーが、最下位キャッシュメモリ14に保持されている。なお図1には、最上位キャッシュメモリ13と最下位キャッシュメモリ14との2階層のキャッシュメモリが示されるが、キャッシュメモリの階層数は2個に限られない。例えば、最下位キャッシュメモリ14のみが設けられる1階層の構成であってもよい。   FIG. 1 is a diagram of a system including a CPU module and a main memory. The system of FIG. 1 includes a central processing unit (CPU) module 10 and a plurality of DIMMs 11 that are main memories. The CPU module 10 includes a calculation unit 12, an uppermost cache memory 13, a lowermost cache memory 14, and a memory access controller (MAC) 15. The arithmetic unit 12 executes a program stored in the DIMM 11 and executes arithmetic processing on the data stored in the DIMM 11. The program and data stored in the DIMM 11 are accessed by the memory access controller 15 and supplied to the arithmetic unit 12 via the memory access controller 15, the lowest cache memory 14, and the highest cache memory 13. The uppermost cache memory 13 and the lowermost cache memory 14 have a smaller storage capacity than the DIMM 11 and can access data at a higher speed than the DIMM 11, and include, for example, an SRAM (Static Random Access Memory) as a memory device. In general, a copy of a part of data stored in the lowest cache memory 14 is held in the highest cache memory 13. A copy of a part of the data stored in the DIMM 11 is held in the lowest cache memory 14. Although FIG. 1 shows a two-level cache memory of the highest cache memory 13 and the lowest cache memory 14, the number of cache memory layers is not limited to two. For example, a one-layer configuration in which only the lowest cache memory 14 is provided may be used.

図2は、最下位キャッシュメモリ14の構成の一例を示す図である。図2に示す最下位キャッシュメモリ14は、コマンドバッファ20、アドレスバッファ21、偶数インデックス生成回路(EIG)22−1、奇数インデックス生成回路(OIG)22−2、偶数バンク23−1、及び奇数バンク23−2を含む。最下位キャッシュメモリ14は更に、マージフラグ制御回路(MFC)24−1及び24−2、LRU制御回路(LC)25−1及び25−2、及び有効フラグ制御回路(VFC)26−1及び26−2を含む。最下位キャッシュメモリ14は更に、データバス選択回路27−1乃至30−1及び27−2乃至30−2、タグ比較回路31−1及び31−2並びに35−1及び35−2、及び空きウェイチェック回路32−1及び32−2を含む。最下位キャッシュメモリ14は更に、追出しウェイ選択回路33−1及び33−2、アドレス復元回路34−1及び34−2、タグ生成回路36−1乃至38−1及び36−2乃至38−2、セレクタ39−1乃至42−1及び39−2乃至42−2を含む。最下位キャッシュメモリ14は更に、ヒット判定回路43、マージフラグチェック回路44、インデックス比較回路45、及び調停回路46を含む。最下位キャッシュメモリ14は更に、キャッシュフィルアドレスバッファ47、キャッシュフィルデータバッファ48、データ応答バッファ49、及びライトバックアドレス&データバッファ50を含む。最下位キャッシュメモリ14は更に、SRAMアクセス制御回路51、LRU更新制御回路52、キャッシュ書込制御回路53、キャッシュ応答制御回路54、MACアクセス制御回路55、及びセレクタ56を含む。   FIG. 2 is a diagram illustrating an example of the configuration of the lowest cache memory 14. 2 includes a command buffer 20, an address buffer 21, an even index generation circuit (EIG) 22-1, an odd index generation circuit (OIG) 22-2, an even bank 23-1, and an odd bank. 23-2. The lowest level cache memory 14 further includes merge flag control circuits (MFC) 24-1 and 24-2, LRU control circuits (LC) 25-1 and 25-2, and valid flag control circuits (VFC) 26-1 and 26. -2. The lowest-order cache memory 14 further includes data bus selection circuits 27-1 to 30-1 and 27-2 to 30-2, tag comparison circuits 31-1 and 31-2, 35-1 and 35-2, and empty ways. Check circuits 32-1 and 32-2 are included. The lowest level cache memory 14 further includes eviction way selection circuits 33-1 and 33-2, address restoration circuits 34-1 and 34-2, tag generation circuits 36-1 to 38-1 and 36-2 to 38-2, It includes selectors 39-1 through 42-1 and 39-2 through 42-2. The lowest level cache memory 14 further includes a hit determination circuit 43, a merge flag check circuit 44, an index comparison circuit 45, and an arbitration circuit 46. The lowest level cache memory 14 further includes a cache fill address buffer 47, a cache fill data buffer 48, a data response buffer 49, and a write back address & data buffer 50. The lowest level cache memory 14 further includes an SRAM access control circuit 51, an LRU update control circuit 52, a cache write control circuit 53, a cache response control circuit 54, a MAC access control circuit 55, and a selector 56.

偶数バンク23−1は、デコーダ60−1、マージフラグアレイ61−1、LRUフラグアレイ62−1、有効フラグアレイ63−1、タグアレイ64−1、データアレイ65−1、及びバッファ66−1乃至70−1を含む。奇数バンク23−2は、デコーダ60−2、マージフラグアレイ61−2、LRUフラグアレイ62−2、有効フラグアレイ63−2、タグアレイ64−2、データアレイ65−2、及びバッファ66−2乃至70−2を含む。   The even bank 23-1 includes a decoder 60-1, a merge flag array 61-1, an LRU flag array 62-1, a valid flag array 63-1, a tag array 64-1, a data array 65-1, and buffers 66-1 to 66-1. 70-1 included. The odd bank 23-2 includes a decoder 60-2, a merge flag array 61-2, an LRU flag array 62-2, a valid flag array 63-2, a tag array 64-2, a data array 65-2, and buffers 66-2 to 70-2 included.

なお図2において、実線で示す信号線は制御信号の流れを示し、点線で示す信号線はアドレス信号の流れを示し、2重線で示す信号線はデータ信号の流れを示す。また各ボックスで示される各機能ブロックと他の機能ブロックとの境界は、基本的には機能的な境界を示すものであり、物理的な位置の分離、電気的な信号の分離、制御論理的な分離等に対応するとは限らない。ハードウェアの場合、各機能ブロックは、他のブロックと物理的にある程度分離された1つのハードウェアモジュールであってもよいし、或いは他のブロックと物理的に一体となったハードウェアモジュール中の1つの機能を示したものであってもよい。ソフトウェアの場合、各機能ブロックは、他のブロックと論理的にある程度分離された1つのソフトウェアモジュールであってもよいし、或いは他のブロックと論理的に一体となったソフトモジュール中の1つの機能を示したものであってもよい。   In FIG. 2, a signal line indicated by a solid line indicates a flow of a control signal, a signal line indicated by a dotted line indicates a flow of an address signal, and a signal line indicated by a double line indicates a flow of a data signal. In addition, the boundary between each functional block shown in each box and other functional blocks basically indicates a functional boundary, and separation of physical position, separation of electrical signal, control logic It does not always correspond to the separation. In the case of hardware, each functional block may be one hardware module physically separated from other blocks to some extent, or in a hardware module physically integrated with other blocks. One function may be shown. In the case of software, each functional block may be one software module logically separated from other blocks to some extent, or one function in a software module logically integrated with another block. May be shown.

偶数バンク23−1は偶数インデックス側のキャッシュデータを格納し、奇数バンク23−2は奇数インデックス側のキャッシュデータを格納する。図2に示す例では、偶数バンク23−1及び奇数バンク23−2の各々において、2個のウェイが設けられているが、ウェイの数は2に限られることなく、1を含む任意の数であってよい。図2に示す例では、キャッシュフィル動作やライトバック動作において、単一キャッシュラインでのメインメモリへのデータアクセス、又は連続する2つのキャッシュラインを一纏まりとしたメインメモリへのデータアクセスが可能である。これは限定を意図しない一例であり、3個以上の連続複数キャッシュラインを一纏まりとしたメインメモリへのデータアクセスを実行するように、キャッシュメモリが設計されてもよい。例えば4個の連続複数キャッシュラインを一纏まりとしたメインメモリへの読み書きアクセスを可能とする場合には4個のバンクを設け、これら4個のバンクのそれぞれが、モジュロ4が1、2、3、及び4であるインデックスのキャッシュデータを格納してよい。   The even bank 23-1 stores the cache data on the even index side, and the odd bank 23-2 stores the cache data on the odd index side. In the example shown in FIG. 2, two ways are provided in each of the even-numbered bank 23-1 and the odd-numbered bank 23-2, but the number of ways is not limited to two, and any number including one is included. It may be. In the example shown in FIG. 2, in a cache fill operation and a write back operation, data access to the main memory with a single cache line or data access to the main memory in which two consecutive cache lines are grouped is possible. is there. This is an example not intended to be limited, and the cache memory may be designed so as to execute data access to the main memory in which three or more continuous plural cache lines are grouped. For example, in order to enable read / write access to the main memory in which four consecutive plural cache lines are grouped, four banks are provided, and each of these four banks has modulo 4 of 1, 2, 3 , And 4 may be stored.

以下に、基本的なキャッシュメモリの動作について、偶数バンク23−1を例にとり説明する。なお同様のキャッシュメモリ動作が、奇数バンク23−2に対しても実行される。   The basic operation of the cache memory will be described below taking the even bank 23-1 as an example. A similar cache memory operation is executed for the odd bank 23-2.

偶数バンク23−1のデータアレイ65−1の各配列要素には、メインメモリからコピーされたデータが格納される。メインメモリからデータアレイへのデータのコピーはキャッシュライン単位で実行される。メインメモリのメモリ空間はキャッシュライン単位で分割され、分割されたメモリ領域を順番にキャッシュラインに割当てておく。キャッシュメモリの容量はメインメモリの容量よりも小さいので、メインメモリのメモリ領域を繰り返して同一のキャッシュラインに割当てることになる。アドレスの全ビットのうちで、所定数の中位ビットがキャッシュメモリのインデックスとなり、それより上位に位置するビットがキャッシュメモリのタグとなる。   Data copied from the main memory is stored in each array element of the data array 65-1 of the even bank 23-1. Copying data from the main memory to the data array is executed in units of cache lines. The memory space of the main memory is divided in units of cache lines, and the divided memory areas are sequentially assigned to the cache lines. Since the capacity of the cache memory is smaller than the capacity of the main memory, the memory area of the main memory is repeatedly assigned to the same cache line. Among all the bits of the address, a predetermined number of middle bits serve as an index of the cache memory, and bits positioned higher than that serve as a tag of the cache memory.

タグアレイ64−1は、インデックス毎にキャッシュデータを格納する。より具体的には、タグアレイ64−1は、各インデックスに対して、複数のウェイに対応する複数のタグ(図2の例では2個のタグ)を格納している。データをアクセスする場合、アクセス先を示すアドレス(リクエストアドレス)が、上位のキャッシュ又は演算部から、アドレスバッファ21に供給される。このリクエストアドレス中のインデックス部分を偶数インデックス生成回路22−1により抽出し、この抽出されたインデックス部分をデコーダ60−1によりデコードし、アクセス先に対応する1つのインデックスを指定する。指定されたインデックスの複数のウェイのタグが、タグアレイ64−1からバッファ69−1を介して読み出され、データバス選択回路27−1及び28−1を介して、タグ比較回路31−1に供給される。また、指定されたインデックスの複数のウェイのデータが、データアレイ65−1からバッファ70−1を介して読み出され、データバス選択回路29−1及び30−1を介して、セレクタ39−1に供給される。   The tag array 64-1 stores cache data for each index. More specifically, the tag array 64-1 stores a plurality of tags (two tags in the example of FIG. 2) corresponding to a plurality of ways for each index. When accessing data, an address (request address) indicating an access destination is supplied to the address buffer 21 from a higher-level cache or arithmetic unit. An index part in the request address is extracted by the even index generation circuit 22-1, the extracted index part is decoded by the decoder 60-1, and one index corresponding to the access destination is designated. The tags of the plurality of ways with the specified index are read from the tag array 64-1 via the buffer 69-1, and sent to the tag comparison circuit 31-1 via the data bus selection circuits 27-1 and 28-1. Supplied. The data of a plurality of ways with the designated index is read out from the data array 65-1 through the buffer 70-1, and is selected through the data bus selection circuits 29-1 and 30-1 into the selector 39-1. To be supplied.

アドレスバッファ21から供給されるアクセス先のアドレスから、タグ生成回路37−1がリクエストアドレスのタグを抽出する。タグ比較回路31−1は、この抽出されたアクセス先のタグとタグアレイ64−1から読み出された複数のタグとを比較して、ビットパターンが一致するか否かを判断する。タグアレイ64−1から読み出した複数のウェイの何れかのタグが一致する場合には、当該アクセスはキャッシュヒットとなる。読み出した複数のウェイの何れのタグについても一致しない場合には、当該アクセスはキャッシュミスとなる。   From the access destination address supplied from the address buffer 21, the tag generation circuit 37-1 extracts the tag of the request address. The tag comparison circuit 31-1 compares the extracted access destination tag with a plurality of tags read from the tag array 64-1, and determines whether the bit patterns match. When any tag of the plurality of ways read from the tag array 64-1 matches, the access is a cache hit. If none of the tags of the plurality of read ways match, the access is a cache miss.

キャッシュヒットの場合、該当インデックスの該当ウェイ(タグが一致したウェイ)に対応するキャッシュデータ(1キャッシュライン分の所定ビット数のデータ)が、セレクタ39−1により選択される。この選択動作は、タグ比較回路31−1からセレクタ39−1に供給される一致したタグを示す情報に基づいて行われる。このキャッシュデータは、データ応答バッファ49を介して上位のキャッシュ又は演算部に出力される。   In the case of a cache hit, the selector 39-1 selects cache data (data of a predetermined number of bits for one cache line) corresponding to the corresponding way (the way with the matching tag) of the corresponding index. This selection operation is performed based on information indicating the matched tag supplied from the tag comparison circuit 31-1 to the selector 39-1. The cache data is output to a higher-level cache or arithmetic unit via the data response buffer 49.

キャッシュミスの場合には、メインメモリに格納されている当該アクセスの対象であるデータを、データアレイ65−1の該当するキャッシュラインに転送する。この際、該当インデックスの全てのウェイにおいて有効なキャッシュデータが存在する場合には、最も必要性の低いデータ(例えば最後にアクセスされてから最も時間が経過しているデータ)を、アクセス対象のデータで置き換える処理が実行される。この置き換え処理時に、ライトバック動作を実行し、置き換えられる方のデータが上書きされ消えてしまう前に当該データをメインメモリに書き込んで、キャッシュメモリの内容をメインメモリに反映させる。LRUアレイ62−1は、最後にアクセスされてから最も時間が経過しているデータのウェイを記憶しておく領域である。また有効フラグアレイ63−1は、データアレイ65−1の各々のデータ毎に、データが有効か否かを示すフラグを記憶しておく領域である。   In the case of a cache miss, the access target data stored in the main memory is transferred to the corresponding cache line of the data array 65-1. At this time, if valid cache data exists in all the ways of the corresponding index, the least necessary data (for example, data that has passed the most time since the last access) is used as the data to be accessed. The replacement process is executed. During this replacement process, a write-back operation is executed, and before the data to be replaced is overwritten and disappears, the data is written into the main memory, and the contents of the cache memory are reflected in the main memory. The LRU array 62-1 is an area for storing the way of data for which the most time has elapsed since the last access. The valid flag array 63-1 is an area for storing a flag indicating whether or not the data is valid for each data of the data array 65-1.

キャッシュミスの場合の具体的な動作は、大略以下の通りである。空きウェイチェック回路32−1が、有効フラグアレイ63−1からの有効フラグデータに基づいて、空きウェイ(即ち有効フラグが無効状態を示しており利用可能なウェイ)が存在するか否かをチェックする。空きウェイが存在する場合、メインメモリの指定アドレス(リクエストアドレス)からデータを読み出し、読み出したデータをデータアレイ65−1の当該空きウェイに格納する。空きウェイが存在しない場合、追出しウェイ選択回路33−1が、LRUアレイ62−1からのLRU情報に基づいて、追い出し対象のウェイを選択する。詳細については後述するが、データアレイ65−1から読み出された複数のウェイに対応する複数のキャッシュデータのうち、上記追い出し対象ウェイに対応するキャッシュデータがセレクタ41−1により選択される。選択されたデータは、ライトバックアドレス&データバッファ50及びメモリアクセスコントローラ15を介して、メインメモリに書き込まれる。その後、メインメモリの指定アドレス(リクエストアドレス)からデータを読み出し、読み出したデータを、データアレイ65−1中の追い出したウェイに格納する。   The specific operation in the case of a cache miss is roughly as follows. The empty way check circuit 32-1 checks whether or not there is an empty way (that is, an available way indicating that the valid flag indicates an invalid state) based on the valid flag data from the valid flag array 63-1. To do. If there is an empty way, data is read from the designated address (request address) of the main memory, and the read data is stored in the empty way of the data array 65-1. When there is no empty way, the eviction way selection circuit 33-1 selects a eviction target way based on the LRU information from the LRU array 62-1. Although details will be described later, among the plurality of cache data corresponding to the plurality of ways read from the data array 65-1, the cache data corresponding to the eviction target way is selected by the selector 41-1. The selected data is written into the main memory via the write back address & data buffer 50 and the memory access controller 15. Thereafter, data is read from the designated address (request address) of the main memory, and the read data is stored in the evicted way in the data array 65-1.

図2に示す最下位キャッシュメモリ14では、キャッシュフィル動作として、単一キャッシュラインでのメインメモリからのデータ読出し、又は連続する2つのキャッシュラインを一纏まりとしたメインメモリからのデータ読出しが可能である。またライトバック動作においても同様に、単一キャッシュラインでのメインメモリへのデータ書き込み、又は連続する2つのキャッシュラインを一纏まりとしたメインメモリへのデータ書き込みが可能である。このようにして、単一キャッシュラインでのメインメモリへの連続アクセスと、連続キャッシュラインでのメインメモリへの連続アクセスとが実行され、メインメモリへの連続アクセスのデータのサイズが可変となる。なお以後の説明において、キャッシュラインのことを単にラインと呼ぶ。なお前述のように一纏まりとする単位は、2ラインに限定されるものではなく、3ライン以上であってもよい。   In the lowest level cache memory 14 shown in FIG. 2, as a cache fill operation, data can be read from the main memory with a single cache line, or data can be read from the main memory with a group of two consecutive cache lines. is there. Similarly, in the write back operation, data can be written to the main memory using a single cache line, or data can be written to the main memory in which two consecutive cache lines are grouped. In this way, continuous access to the main memory on a single cache line and continuous access to the main memory on the continuous cache line are executed, and the size of data for continuous access to the main memory becomes variable. In the following description, the cache line is simply called a line. As described above, the unit to be bundled is not limited to two lines, and may be three lines or more.

キャッシュフィル動作を単一ライン単位とするか連続2ライン単位とするかは、上位装置(例えば上位キャッシュ)からのアクセス命令により指定される。上位装置は、1ラインよりも小さいサイズのデータを必要とする場合には1ラインでのキャッシュフィル動作をリクエストし、1ラインよりも大きいサイズのデータを必要とする場合には連続2ラインでのキャッシュフィル動作をリクエストする。ライトバック動作において、単一ライン単位の書き込み動作とするか連続2ライン単位の書き込み動作とするかは、書き込み対象のラインのデータ(キャッシュフィルにより追い出されるデータ)が、他のラインと一纏まりとなっているか否かに依存する。書き込み対象の1つのラインのデータが、他の1つのラインと一纏まりとなっている場合には、これらの2つのラインを一纏まりとして、ライトバック動作を実行する。書き込み対象の1つのラインのデータが、他のラインと一纏まりとなっていない場合には、この1つのライン単独で、ライトバック動作を実行する。   Whether the cache fill operation is performed in units of a single line or in units of two continuous lines is specified by an access command from a higher-level device (for example, a higher-level cache). The host device requests a cache fill operation in one line when data of a size smaller than one line is required, and requests data in a continuous two lines when data of a size larger than one line is required. Request a cache fill operation. In the write-back operation, whether to perform a write operation in units of single lines or a write operation in units of two continuous lines depends on whether the data of the line to be written (data expelled by cache fill) is bundled with other lines. Depends on whether or not. When the data of one line to be written is grouped with another line, the write back operation is executed by grouping these two lines. When the data of one line to be written is not grouped with other lines, the write-back operation is executed with this one line alone.

あるラインのデータが他のラインのデータと一纏まりとなっているか否かは、管理データアレイに格納する管理データにより指定する。マージフラグアレイ61−1は、管理データアレイの一例であり、データアレイ65−1のキャッシュデータ毎に第1の状態又は第2の状態の何れかを示すマージフラグ(管理データの一例)を格納する。第1の状態は、対象キャッシュデータが単一ライン状態であることを示し、第2の状態は、対象キャッシュデータが他のラインと一纏まりである連続ライン状態であることを示す。なお第1の状態は例えばフラグの値0に相当し、第2の状態はフラグの値1に相当してよい。以降の説明において、マージフラグが第2の状態の場合に、マージフラグが「設定されている」、「セットされている」、又は「存在する」等と表現する場合がある。またマージフラグが第1の状態の場合に、マージフラグが「設定されていない」、「セットされていない」、又は「存在しない」等と表現する場合がある。   Whether or not data of a certain line is grouped with data of other lines is designated by management data stored in the management data array. The merge flag array 61-1 is an example of a management data array, and stores a merge flag (an example of management data) indicating either the first state or the second state for each cache data of the data array 65-1. To do. The first state indicates that the target cache data is in a single line state, and the second state indicates that the target cache data is in a continuous line state that is bundled with other lines. The first state may correspond to, for example, a flag value of 0, and the second state may correspond to a flag value of 1. In the following description, when the merge flag is in the second state, the merge flag may be expressed as “set”, “set”, “exists”, or the like. When the merge flag is in the first state, the merge flag may be expressed as “not set”, “not set”, “not present”, or the like.

キャッシュ書込制御回路53は、単一ラインでのキャッシュフィル要求に応じて単一ラインをデータアレイ65−1に格納する場合にはマージフラグアレイ61−1の対応するマージフラグを第1の状態とする。キャッシュ書込制御回路53は更に、連続複数ラインでのキャッシュフィル要求に応じて連続複数ラインをデータアレイ65−1に格納する場合にはマージフラグアレイ61−1の対応するマージフラグを第2の状態とする。MACアクセス制御回路55は、追い出し対象キャッシュデータのライトバック時に、マージフラグアレイ61−1の対応するマージフラグが第1の状態を示す場合には、追い出し対象キャッシュデータを単一ラインとして書き込む要求を生成する。MACアクセス制御回路55は更に、マージフラグアレイ61−1の対応するマージフラグが第2の状態を示す場合には、連続複数ラインを書き込む要求を生成する。具体的には、MACアクセス制御回路55は、追い出し対象キャッシュデータと一纏まりとなるデータアレイ65−1のキャッシュデータと追い出し対象キャッシュデータとを、連続複数ラインとして書き込む要求を生成する。   When the cache write control circuit 53 stores a single line in the data array 65-1 in response to a cache fill request for a single line, the cache write control circuit 53 sets the corresponding merge flag in the merge flag array 61-1 to the first state. And The cache write control circuit 53 further sets the second merge flag corresponding to the merge flag array 61-1 in the second flag when the continuous multiple lines are stored in the data array 65-1 in response to the cache fill request for the continuous multiple lines. State. The MAC access control circuit 55 issues a request to write the eviction target cache data as a single line if the merge flag corresponding to the merge flag array 61-1 indicates the first state during write back of the eviction target cache data. Generate. The MAC access control circuit 55 further generates a request for writing a plurality of continuous lines when the corresponding merge flag in the merge flag array 61-1 indicates the second state. Specifically, the MAC access control circuit 55 generates a request to write the cache data of the data array 65-1 and the cache data to be evicted together with the eviction target cache data as a continuous plurality of lines.

以上の動作は、偶数バンク23−1側についての動作であるが、奇数バンク23−2側についても同様の動作が実行される。なお上記説明において、一纏まりとなるデータとは、1つの偶数インデックスのキャッシュデータと、それに隣接する1つの奇数インデックスのキャッシュデータとである。例えばある偶数インデックスのキャッシュデータが追い出し対象となり、その偶数インデックスのキャッシュデータがマージフラグにより第2の状態であることが示される場合、隣接奇数インデックスの対応キャッシュデータが一纏まりとなる相手方データである。同様に、ある奇数インデックスのキャッシュデータが追い出し対象となり、その奇数インデックスのキャッシュデータがマージフラグにより第2の状態であることが示される場合、隣接偶数インデックスの対応キャッシュデータが一纏まりとなる相手方データである。一纏まりとなる相手方データを特定する方法は、追い出し対象キャッシュデータのインデックスの隣接インデックスにおいて、追い出し対象キャッシュデータのタグと同一のタグを有するキャッシュデータをデータアレイ65−1から選択すればよい。   The above operation is for the even bank 23-1 side, but the same operation is also performed for the odd bank 23-2 side. In the above description, a group of data includes one even index cache data and one adjacent odd index cache data. For example, when cache data of an even index is a target to be evicted and the cache data of the even index is in the second state by the merge flag, the corresponding cache data of adjacent odd indexes is a group of partner data. . Similarly, when cache data of a certain odd index is a target to be evicted and the cache data of the odd index is in the second state by the merge flag, the counterpart data in which the corresponding cache data of adjacent even indexes are grouped together It is. As a method for specifying the partner data to be grouped, cache data having the same tag as the tag of the eviction target cache data in the adjacent index of the eviction target cache data index may be selected from the data array 65-1.

上記の選択動作が、アドレス復元回路34−1及び34−2、タグ生成回路38−1及び38−2、セレクタ42−1及び42−2、及びタグ比較回路35−1及び値35−2により実現される。具体的には、偶数インデックス側で追い出し対象となったキャッシュデータがある場合、そのデータに対応するタグをアドレス復元回路34−1に供給し、アドレス復元回路34−1により追い出し対象データのアドレスを復元する。即ち、アドレスバッファ21からのアドレス信号と、追い出し対象データに対応するタグとを組み合わせることにより、追い出し対象データのアドレスを復元する。この復元アドレスは、セレクタ42−2を介してタグ生成回路38−2に供給され、タグ生成回路38−2が追い出し対象データのタグを生成する。タグ比較回路35−2は、奇数バンク23−2のタグアレイ64−2から読み出された複数のタグとタグ生成回路38−2により生成されたタグとを比較し、タグが一致するウェイを特定する。この一致するウェイを特定する情報がセレクタ41−2に供給され、セレクタ41−2により一纏まりとなる相手側キャッシュデータが選択されて、ライトバックアドレス&データバッファ50に格納される。なお偶数インデックス側でも、タグ比較回路35−1が、偶数バンク23−1のタグアレイ64−1から読み出された複数のタグとタグ生成回路38−2により生成されたタグとを比較し、タグが一致するウェイを特定する。この一致するウェイを特定する情報がセレクタ41−1に供給され、セレクタ41−1により追い出し対象キャッシュデータが選択されて、ライトバックアドレス&データバッファ50に格納される。また偶数インデックス側で復元された復元アドレスと奇数インデックス側で復元された復元アドレスとは、双方共にライトバックアドレス&データバッファ50に供給される。なお奇数インデックス側で追い出し対象となったキャッシュデータがある場合は、上記の動作が偶数側と奇数側とで逆になる以外は、上記の動作と同様の動作が実行される。   The above selection operation is performed by the address restoration circuits 34-1 and 34-2, the tag generation circuits 38-1 and 38-2, the selectors 42-1 and 42-2, the tag comparison circuit 35-1 and the value 35-2. Realized. More specifically, if there is cache data that has been subject to eviction on the even index side, a tag corresponding to that data is supplied to the address restoration circuit 34-1, and the address of the eviction target data is determined by the address restoration circuit 34-1. Restore. That is, the address of the eviction target data is restored by combining the address signal from the address buffer 21 and the tag corresponding to the eviction target data. This restoration address is supplied to the tag generation circuit 38-2 via the selector 42-2, and the tag generation circuit 38-2 generates a tag for the data to be purged. The tag comparison circuit 35-2 compares a plurality of tags read from the tag array 64-2 of the odd bank 23-2 with the tags generated by the tag generation circuit 38-2, and identifies the way where the tags match. To do. Information for specifying the matching way is supplied to the selector 41-2, and the other party's cache data is selected by the selector 41-2 and stored in the write-back address & data buffer 50. Even on the even index side, the tag comparison circuit 35-1 compares a plurality of tags read from the tag array 64-1 of the even bank 23-1 with the tags generated by the tag generation circuit 38-2, and tags Identify ways that match. Information for specifying the matching way is supplied to the selector 41-1, and the cache data to be evicted is selected by the selector 41-1 and stored in the write-back address & data buffer 50. The restored address restored on the even index side and the restored address restored on the odd index side are both supplied to the write back address & data buffer 50. If there is cache data to be evicted on the odd index side, the same operation as described above is executed except that the above operation is reversed between the even side and the odd side.

ヒット判定回路43は、タグ比較回路31−1及び31−2からのタグ比較結果に基づいて、ヒットしたバンク及びミスしたバンクを示す情報を生成する。この際、後述するように、ヒット判定回路43はリクエストアドレスの一部であるインデックスの最下位ビットを参照することにより、真性のヒットのみを検出する。ヒット判定回路43は、ヒットしたバンク及びミスしたバンクを示す情報を、調停回路46、セレクタ56、LRU更新制御回路52、キャッシュ書込制御回路53、キャッシュ応答制御回路54、及びMACアクセス制御回路55に供給する。マージフラグチェック回路44は、追出しウェイ選択回路33−1及び33−2から供給される追い出しウェイを示す情報に基づいて、追い出し対象のウェイにマージフラグが設定されているか否かをチェックする。チェック結果は調停回路46に供給される。インデックス比較回路45は、インデックスを比較する。比較結果は調停回路46に供給される。調停回路46は、ヒットしたバンク及びミスしたバンクを示す情報、追い出し対象ウェイのマージフラグの有無に関する情報等に基づいて、選択信号をセレクタ42−1及び42−2に供給する。   The hit determination circuit 43 generates information indicating the hit bank and the missed bank based on the tag comparison results from the tag comparison circuits 31-1 and 31-2. At this time, as will be described later, the hit determination circuit 43 detects only the true hit by referring to the least significant bit of the index which is a part of the request address. The hit determination circuit 43 uses the arbitration circuit 46, the selector 56, the LRU update control circuit 52, the cache write control circuit 53, the cache response control circuit 54, and the MAC access control circuit 55 as information indicating the hit bank and the missed bank. To supply. The merge flag check circuit 44 checks whether or not the merge flag is set for the eviction target way based on the information indicating the eviction way supplied from the eviction way selection circuits 33-1 and 33-2. The check result is supplied to the arbitration circuit 46. The index comparison circuit 45 compares the indexes. The comparison result is supplied to the arbitration circuit 46. The arbitration circuit 46 supplies a selection signal to the selectors 42-1 and 42-2 based on information indicating the hit bank and the missed bank, information on the presence / absence of the merge flag of the eviction target way, and the like.

SRAMアクセス制御回路51は、偶数バンク23−1及び奇数バンク23−2に対して、マージフラグアレイ、LRUアレイ、有効フラグアレイ、タグアレイ、及びデータアレイの読み書きを制御する。SRAMアクセス制御回路51は、上位の記憶階層(キャッシュ)からリクエストが発生すると、それぞれのアレイからバッファにデータを読み出す。またSRAMアクセス制御回路51は、メモリアクセスコントローラ15から応答が返り、バンクのバッファにデータがセットされると、対応するアレイにデータを書き込む。   The SRAM access control circuit 51 controls reading / writing of the merge flag array, the LRU array, the valid flag array, the tag array, and the data array with respect to the even bank 23-1 and the odd bank 23-2. When a request is generated from an upper storage hierarchy (cache), the SRAM access control circuit 51 reads data from each array to a buffer. Further, when a response is returned from the memory access controller 15 and data is set in the buffer of the bank, the SRAM access control circuit 51 writes the data into the corresponding array.

LRU更新制御回路52は、1ラインデータ要求時又は1ラインキャッシュフィル要求時には、リクエストがヒットした場合、ヒットしたバンク及びウェイを記憶し、リクエストがミスした場合、ミスしたバンクの空きウェイ又は追い出しウェイを記憶する。LRU更新制御回路52は更に、2ラインキャッシュフィル要求時には、リクエストがヒットしたバンクについてヒットしたウェイを記憶し、ミスしたバンクについて空きウェイ又は追い出しウェイを記憶する。なお空きウェイがあるにもかかわらず追い出しがあった場合は空きウェイを優先する。LRU更新制御回路52はまた、メインメモリから読み出したデータのアレイへの書き込み時には、記憶したバンク及びウェイ番号を基にLRUアレイを更新する。   The LRU update control circuit 52 stores the hit bank and way when a request is hit when a request is made for one line data or a request for one line cache fill. Remember. The LRU update control circuit 52 further stores a hit way for the bank for which the request is hit and a free way or a eviction way for the missed bank when a two-line cache fill request is made. If there is a vacant way and there is a eviction, priority is given to the vacant way. The LRU update control circuit 52 also updates the LRU array based on the stored bank and way number when data read from the main memory is written to the array.

キャッシュ書込制御回路53は、1ラインデータ要求時又は1ラインキャッシュフィル要求時には、ミスした場合、ミスしたバンクについて空きウェイ又は追い出しウェイを記憶する。他方のバンクについてマージフラグ要因で追い出しが発生した場合、キャッシュ書込制御回路53は、その追い出しウェイを記憶する。キャッシュ書込制御回路53は、2ラインキャッシュフィル要求時には、ヒットしたバンクについてはヒットしたウェイを記憶し、マージフラグ要因で追い出しが発生した場合は、追い出しウェイも記憶する。ミスしたバンクについては、キャッシュ書込制御回路53は、空きウェイ又は追い出しウェイを記憶する。   The cache write control circuit 53 stores an empty way or a eviction way for a missed bank if a miss occurs at the time of one-line data request or one-line cache fill request. When eviction occurs due to the merge flag factor for the other bank, the cache write control circuit 53 stores the eviction way. When a two-line cache fill request is made, the cache write control circuit 53 stores the hit way for the hit bank, and also stores the eviction way when eviction occurs due to a merge flag factor. For the missed bank, the cache write control circuit 53 stores an empty way or a eviction way.

キャッシュ書込制御回路53は、1ラインデータ要求時又は1ラインキャッシュフィル要求時に、キャッシュフィルが発生するバンクについては、記憶した空きウェイ又は追い出しウェイに一致するバッファに、タグ、データ、及び有効フラグをセットする。他方のバンクにおいて追い出しが発生していた場合、キャッシュ書込制御回路53は、追い出したウェイに一致するバッファに無効フラグをセットする。キャッシュ書込制御回路53は、2ラインキャッシュフィル要求時に、ヒットしたウェイが記憶されていれば当該ウェイに一致するバッファにマージフラグをセットする。但しマージフラグ要因での追い出しウェイが記憶されている場合、キャッシュ書込制御回路53は、当該ウェイに一致するバッファに無効フラグをセットする。ミスしたバンクについて空きウェイ又は追い出しウェイが記憶されていれば、キャッシュ書込制御回路53は、当該ウェイに一致するバッファにタグ、データ、有効フラグ、及びマージフラグをセットする。なおここでいうバッファとは、バッファ66−1乃至70−1及びバッファ66−2乃至70−2のことである。バッファに対するフラグのセットは、マージフラグ制御回路(MFC)24−1及び24−2、LRU制御回路(LC)25−1及び25−2、及び有効フラグ制御回路(VFC)26−1及び26−2により行われる。   The cache write control circuit 53 stores a tag, data, and valid flag in a buffer that matches a stored empty way or eviction way for a bank where a cache fill occurs when a one-line data request or a one-line cache fill request occurs. Set. If eviction has occurred in the other bank, the cache write control circuit 53 sets an invalid flag in the buffer that matches the evacuated way. The cache write control circuit 53 sets a merge flag in a buffer matching the way if a hit way is stored when a two-line cache fill request is stored. However, when the eviction way due to the merge flag factor is stored, the cache write control circuit 53 sets an invalid flag in the buffer matching the way. If an empty way or a eviction way is stored for the missed bank, the cache write control circuit 53 sets a tag, data, a valid flag, and a merge flag in a buffer that matches the way. The buffers referred to here are buffers 66-1 to 70-1 and buffers 66-2 to 70-2. The flags set for the buffer are merge flag control circuits (MFC) 24-1 and 24-2, LRU control circuits (LC) 25-1 and 25-2, and valid flag control circuits (VFC) 26-1 and 26-. 2 is performed.

キャッシュ応答制御回路54は、1ラインデータ要求時に、キャッシュヒットした場合、上位の記憶階層に応答を返し、キャッシュミスした場合、メモリアクセスコントローラ15からデータが返されたときに応答を返す。   The cache response control circuit 54 returns a response to the upper storage hierarchy when a cache hit occurs when one line data is requested, and returns a response when data is returned from the memory access controller 15 when a cache miss occurs.

MACアクセス制御回路55は、1ラインデータ要求時又は1ラインキャッシュフィル要求時に、キャッシュミスが発生すると、通常の1ライン分のデータ読み出し要求をメモリアクセスコントローラ15に送る。またデータ要求のときは、MACアクセス制御回路55は更に、データ応答バッファ49にデータを返すように指示する。MACアクセス制御回路55は更に、追い出し対象データにマージフラグがない場合は、通常の1ライン分のデータ書き込み要求をメモリアクセスコントローラ15に送る。追い出し対象データに マージフラグがある場合は、MACアクセス制御回路55は、マージアクセスとして2ライン分のデータの書き込み要求をメモリアクセスコントローラ15に送る。   The MAC access control circuit 55 sends a normal data read request for one line to the memory access controller 15 when a cache miss occurs when one line data is requested or one line cache fill is requested. When a data request is made, the MAC access control circuit 55 further instructs the data response buffer 49 to return data. Further, when there is no merge flag in the eviction target data, the MAC access control circuit 55 sends a normal data write request for one line to the memory access controller 15. If there is a merge flag in the eviction target data, the MAC access control circuit 55 sends a data write request for two lines to the memory access controller 15 as merge access.

MACアクセス制御回路55は、2ラインキャッシュフィル要求時に、両バンクともミスが発生した場合、マージアクセスとして2ライン分の読み出し要求をメモリアクセスコントローラ15に送る。片方のバンクのみミスが発生した場合、MACアクセス制御回路55は、ミスしたバンク側のデータのみ通常アクセスとして1ライン分の読み出し要求をメモリアクセスコントローラ15に送る。MACアクセス制御回路55は更に、2ラインキャッシュフィル要求時に、片方のバンクのみ追い出しが発生し且つ追い出し対象データにマージフラグがない場合は、通常の1ライン分のデータ書き込み要求をメモリアクセスコントローラ15に送る。何れかのバンクの追い出し対象データにマージフラグがある場合は、MACアクセス制御回路55は、マージアクセスとして2ライン分のデータの書き込み要求をメモリアクセスコントローラ15に送る。また両バンクで追い出しが発生し且つ追い出し対象データにマージフラグがない場合は、MACアクセス制御回路55は、通常アクセスとして独立した2ライン分のデータの書き込み要求をメモリアクセスコントローラ15に送る。   The MAC access control circuit 55 sends a read request for two lines to the memory access controller 15 as merge access if a miss occurs in both banks at the time of a two-line cache fill request. When a miss occurs in only one bank, the MAC access control circuit 55 sends a read request for one line to the memory access controller 15 as normal access only for the data on the bank that has been missed. Further, the MAC access control circuit 55 issues a normal data write request for one line to the memory access controller 15 when the two-line cache fill request causes eviction only in one of the banks and there is no merge flag in the eviction target data. send. If there is a merge flag in the eviction target data of any bank, the MAC access control circuit 55 sends a data write request for two lines to the memory access controller 15 as merge access. If eviction occurs in both banks and there is no merge flag in the eviction target data, the MAC access control circuit 55 sends a data write request for two independent lines to the memory access controller 15 as normal access.

図3は、1ラインデータ要求時又は1ラインキャッシュフィル要求時の最下位キャッシュメモリ14の動作の一例を示すフローチャートである。ステップS1で、上位の記憶階層からの1ラインデータ要求又は1ラインキャッシュフィル要求が到来する。ステップS2で、偶数バンク23−1及び奇数バンク23−2に同時にアクセスして、それぞれのバンクからマージフラグ、LRU情報、有効フラグ、タグ、及びキャッシュデータを読み出す。なお偶数インデックスはリクエストアドレスの切捨てにより生成し、奇数インデックスはリクエストアドレスの切り上げにより生成してよい。ステップS3で、読み出されたタグとリクエストアドレスから生成されたタグを比較する。この比較はタグ比較回路31−1及び31−2により実行される。   FIG. 3 is a flowchart showing an example of the operation of the least significant cache memory 14 at the time of requesting one line data or requesting one line cache fill. In step S1, a one-line data request or a one-line cache fill request comes from an upper storage hierarchy. In step S2, the even bank 23-1 and the odd bank 23-2 are accessed simultaneously, and the merge flag, LRU information, valid flag, tag, and cache data are read from each bank. The even index may be generated by truncating the request address, and the odd index may be generated by rounding up the request address. In step S3, the read tag is compared with the tag generated from the request address. This comparison is executed by the tag comparison circuits 31-1 and 31-2.

ステップS4で、リクエストアドレスの一部であるインデックスの最下位ビット(偶数か奇数かを決めるビット)が示す方のバンクにおいてタグが一致しているか否かを、ヒット判定回路43により判定する。例えば、リクエストアドレスが偶数のとき、偶数バンクでタグが一致すると真性のヒットになる。リクエストアドレスが偶数のときに奇数バンクでタグが一致しても、それはアドレスが1増加された位置におけるヒットであり、真性のヒットではない。   In step S4, the hit determination circuit 43 determines whether or not the tags match in the bank indicated by the least significant bit of the index that is a part of the request address (the bit that determines even or odd). For example, when the request address is an even number, if the tags match in the even bank, a true hit is obtained. Even if the request address is an even number and the tag matches in the odd bank, it is a hit at the position where the address is incremented by 1, not a true hit.

キャッシュヒットした場合は、ステップS5で、ヒットしたバンクのLRUを更新する。また上位階層からのリクエストがデータ要求であるときは更に、ステップS6で、ヒットしたデータをデータ応答バッファ49に書き込む。ステップS7で、上位の記憶階層に完了の応答を返す(フィルリクエストの時は実行しなくてよい)。   If there is a cache hit, the LRU of the hit bank is updated in step S5. If the request from the upper layer is a data request, the hit data is written into the data response buffer 49 in step S6. In step S7, a completion response is returned to the upper storage hierarchy (it is not necessary to execute at the time of the fill request).

キャッシュミスした場合は、ステップS8で、空きウェイを判定する。空きウェイがある場合は、後述するフィル処理A−1を実行する。空きウェイがない場合は、ステップS9で、追い出しウェィを選択する。なお両方のバンクで空きウェイを選択するが、リクエストアドレスと一致するバンクにおいてのみ正しい動作が実行されることになる。   If there is a cache miss, an empty way is determined in step S8. If there is an empty way, fill processing A-1 described later is executed. If there is no empty way, the eviction way is selected in step S9. Although an empty way is selected in both banks, the correct operation is executed only in the bank that matches the request address.

ステップS10で、選択されたウェイにマージフラグがあるか否かをチェックする。マージフラグがない場合、ステップS11で、リクエストアドレスの奇数又は偶数と一致する方のバンクの追い出しウェイに対応するデータを、ライトバックアドレス&データバッファ50に書き込む。なおこの際、調停回路46は、マージフラグがない場合、リクエストアドレスの奇数又は偶数が一致する方のバンクのアドレス復元回路からのデータを出力するように、マルチプレクサ42−1及び42−2に選択信号を出す。調停回路46は更に、1ラインのみのライトバックである旨をMACアクセス制御回路55に通知する。ステップS12で、1ラインのライトバックデータの追い出しが完了したことを、MACアクセス制御回路55からメモリアクセスコントローラ15に通知する。その後、後述するフィル処理A−1を実行する。   In step S10, it is checked whether or not the selected way has a merge flag. If there is no merge flag, the data corresponding to the eviction way of the bank that matches the odd or even number of the request address is written to the write-back address & data buffer 50 in step S11. At this time, when there is no merge flag, the arbitration circuit 46 selects the multiplexers 42-1 and 42-2 to output data from the address restoration circuit of the bank with the odd or even number of request addresses matching. Give a signal. The arbitration circuit 46 further notifies the MAC access control circuit 55 that only one line is being written back. In step S12, the MAC access control circuit 55 notifies the memory access controller 15 that the eviction of write-back data for one line has been completed. Thereafter, fill processing A-1 described later is executed.

マージフラグがある場合は、ステップS13で、リクエストアドレスの奇数又は偶数と一致する方のバンクの追い出しウェイに対応するデータと、それと対になる他バンクのデータとを、ライトバックアドレス&データバッファ50に書き込む。即ち、追い出し対象ラインとアドレスが連続するラインが他バンクに存在するので、その他バンクの対になるデータもライトバック対象としてライトバックアドレス&データバッファ50に格納する。この際、調停回路46は、マージフラグがある場合、リクエストアドレスの奇数又は偶数が一致する方のバンクのアドレス復元回路からのデータを出力するように、マルチプレクサ42−1及び42−2に選択信号を出す。例えば、リクエストアドレスが偶数のとき、タグ比較回路35−1及び35−2の両方に、偶数バンクのアドレス復元器34−1のアドレスを供給する。調停回路46は更に、連続2ラインのマージアクセス対象のライトバックである旨をMACアクセス制御回路55に通知する。ステップS14で、連続2ラインのライトバックデータの追い出しが完了したことを、MACアクセス制御回路55からメモリアクセスコントローラ15に通知する。その後、後述するフィル処理A−2を実行する。   If there is a merge flag, in step S13, the data corresponding to the eviction way of the bank that matches the odd number or even number of the request address and the data of the other bank paired therewith are written back to the write back address & data buffer 50. Write to. That is, since there are lines in the other bank that have addresses that are continuous with the eviction target line, the data paired with the other bank is also stored in the write back address & data buffer 50 as a write back target. At this time, when there is a merge flag, the arbitration circuit 46 outputs a selection signal to the multiplexers 42-1 and 42-2 so as to output data from the address restoration circuit of the bank with the odd or even number of request addresses matching. Put out. For example, when the request address is an even number, the address of the address restorer 34-1 in the even bank is supplied to both the tag comparison circuits 35-1 and 35-2. Furthermore, the arbitration circuit 46 notifies the MAC access control circuit 55 that it is a write back subject to merge access for two continuous lines. In step S14, the MAC access control circuit 55 notifies the memory access controller 15 that the continuation of write-back data for two continuous lines has been completed. Thereafter, fill processing A-2, which will be described later, is executed.

図4は、キャッシュフィル処理の一例を示すフローチャートである。フィル処理A−1の場合、ステップS15で、メモリアクセスコントローラ15から読み出されたデータを該当するバンクの空きウェイに格納すると共に、LRUを更新する。フィル処理A−2の場合、ステップS16で、メモリアクセスコントローラ15から読み出されたデータを該当するバンクの空きウェイに格納すると共に、他バンク側では空になったウェイの有効フラグアレイに無効を示すデータを書き込む。更に、LRUを更新する。その後、ステップS17で、データ要求の場合には、データ応答バッファ49にもデータを書き込み、上位の記憶階層に完了の応答を返す。   FIG. 4 is a flowchart illustrating an example of the cache fill process. In the case of the fill process A-1, in step S15, the data read from the memory access controller 15 is stored in the empty way of the corresponding bank, and the LRU is updated. In the case of the fill process A-2, in step S16, the data read from the memory access controller 15 is stored in the empty way of the relevant bank, and the invalid flag array of the empty way is invalidated on the other bank side. Write the indicated data. Further, the LRU is updated. Thereafter, in step S17, in the case of a data request, data is also written into the data response buffer 49, and a completion response is returned to the upper storage hierarchy.

図5は、2ラインキャッシュフィル要求時の最下位キャッシュメモリ14の動作の一例を示すフローチャートである。ステップS21で、上位の記憶階層からの連続2ラインのキャッシュフィル要求が到来する。ステップS22で、偶数バンク23−1及び奇数バンク23−2に同時にアクセスして、それぞれのバンクからマージフラグ、LRU情報、有効フラグ、タグ、及びキャッシュデータを読み出す。なお2ラインのキャッシュフィル要求の場合は、リクエストアドレスは常に偶数アドレスである。ステップS23で、読み出されたタグとリクエストアドレスから生成されたタグを比較する。この比較はタグ比較回路31−1及び31−2により実行される。   FIG. 5 is a flowchart showing an example of the operation of the least significant cache memory 14 when a two-line cache fill request is made. In step S21, a continuous two-line cache fill request is received from the upper storage hierarchy. In step S22, the even bank 23-1 and the odd bank 23-2 are accessed simultaneously, and the merge flag, LRU information, valid flag, tag, and cache data are read from each bank. In the case of a 2-line cache fill request, the request address is always an even address. In step S23, the read tag is compared with the tag generated from the request address. This comparison is executed by the tag comparison circuits 31-1 and 31-2.

ステップS24で、両方のバンクにおいてタグが一致しているか否かを、ヒット判定回路43により判定する。両方のバンクにおいてキャッシュヒットした場合は、ステップS25で、両方のバンクにおいてLRUを更新する。   In step S24, the hit determination circuit 43 determines whether or not the tags match in both banks. If there is a cache hit in both banks, the LRU is updated in both banks in step S25.

少なくとも1つのバンクにおいてタグが不一致の場合、ステップS26で、両方のバンクにおいてタグが不一致か否かを判定する。片方のバンクのみでミスの場合は、後述のミス側フィル処理C−1を実行する。両方のバンクにおいてミスの場合は、ステップS27で、両方のバンクにおいて空きウェイのチェックを行う。両方のバンクに空きがある場合は、後述するフィル処理B−1を実行する。   If the tags do not match in at least one bank, it is determined in step S26 whether the tags do not match in both banks. If there is a mistake in only one bank, a miss side fill process C-1 described later is executed. If there is a mistake in both banks, an empty way is checked in both banks in step S27. If both banks are free, fill processing B-1 described later is executed.

少なくとも一方のバンクにおいて空きが無い場合、ステップS28で、両方のバンクで追い出しが必要か否かを判定する。即ち、両方のバンクとも空きウェイがないか、或いは片方だけ空きウェイがないのか、を判定する。片方のバンクでのみ追い出しが必要な場合、後述するフィル処理C−2を実行する。   If there is no vacancy in at least one of the banks, it is determined in step S28 whether eviction is necessary in both banks. That is, it is determined whether both banks have no empty way or only one of them has no empty way. When eviction is necessary only in one bank, fill processing C-2 described later is executed.

両方のバンクで追い出しが必要な場合、ステップS29で、両方のバンクのそれぞれにおいて、追い出しウェイを選択する。その後ステップS30で、マージフラグの状態を判定する。マージフラグの状態としては、両バンクともマージフラグが存在する場合、片方のバンクにだけマージフラグが存在する場合、両方のバンクでマージフラグが存在しない場合がある。   If eviction is required in both banks, the eviction way is selected in each of both banks in step S29. Thereafter, in step S30, the state of the merge flag is determined. As the state of the merge flag, there are cases where the merge flag exists in both banks, the merge flag exists only in one bank, and the merge flag does not exist in both banks.

両方のバンクにおいてマージフラグが存在する場合、ステップS31で、偶数バンクから選択された追い出しウェイのデータをライトバックアドレス&データバッファ50に書き込む。更に、奇数バンクから対になるデータを追い出し、ライトバックアドレス&データバッファ50に書き込む。なお一方のバンクのラインに対してアドレスが連続するラインが他方のバンクに存在するが、両方のバンクにおいてLRUに基づいて追い出しウェイを選択した際に、互いに対になる連続2ラインに相当するウェイが追い出し対象として選択されているとは限らない。そのためここでは、偶数バンクの結果を優先して使用している。代替的に、偶数バンクではなく、奇数バンクの結果を優先してもよい。即ち、連続複数ラインでのキャッシュフィル要求に応じて選択された少なくとも2つの追い出し対象キャッシュデータに対してマージフラグがある場合には、少なくとも2つの追い出し対象キャッシュデータのうちの1つの追い出し対象キャッシュデータを選択する。この際、調停回路46は、偶数バンクのアドレス復元回路34−1からのデータを出力するようにセレクタ42−1及び42−2に選択信号を供給する。これにより、選択された1つの追い出し対象キャッシュデータのインデックスの隣接インデックスにおいて、選択された1つの追い出し対象キャッシュデータのタグと同一のタグを有するキャッシュデータをデータアレイにおいて特定する。そして、特定されたキャッシュデータと上記選択された1つの追い出し対象キャッシュデータとをライトバック用のライトバックアドレス&データバッファ50に格納する。調停回路46は、更に、連続2ラインのマージアクセス対象のライトバックであることをMACアクセス制御回路55に通知する。   If there is a merge flag in both banks, the data of the eviction way selected from the even bank is written in the write-back address & data buffer 50 in step S31. Further, paired data is evicted from the odd bank and written to the write back address & data buffer 50. Note that there are lines in one bank where addresses are continuous with respect to the lines in one bank. However, when the expelling way is selected based on the LRU in both banks, the ways corresponding to the continuous two lines that are paired with each other are selected. Is not necessarily selected as a target for eviction. For this reason, the result of the even bank is preferentially used here. Alternatively, the odd bank results may be prioritized rather than the even banks. In other words, when there is a merge flag for at least two eviction target cache data selected in response to a cache fill request on a plurality of continuous lines, one of the at least two eviction target cache data is eviction target cache data. Select. At this time, the arbitration circuit 46 supplies a selection signal to the selectors 42-1 and 42-2 so as to output the data from the address restoration circuit 34-1 of the even bank. As a result, the cache data having the same tag as the tag of the selected one eviction target cache data in the adjacent index of the index of one selected eviction target cache data is specified in the data array. Then, the specified cache data and the one selected eviction target cache data are stored in the write-back address & data buffer 50 for write-back. The arbitration circuit 46 further notifies the MAC access control circuit 55 that it is a write back subject to merge access for two continuous lines.

マージフラグが片方のバンクのみに存在する場合は、ステップS33で、マージフラグのあるバンクから選択された追い出しウェイのデータをライトバックアドレス&データバッファ50に書き込む。更に、他方のバンクから対になるデータを追い出し、ライトバックアドレス&データバッファ50に書き込む。上記他方のバンクにおけるLRUによる追い出しウェイの選択結果は無視される。この際、調停回路46は、マージフラグのあるバンクのアドレス復元回路からのデータを出力するようにセレクタ42−1及び42−2に選択信号を供給する。調停回路46は、更に、連続2ラインのマージアクセス対象のライトバックであることをMACアクセス制御回路55に通知する。   If the merge flag exists only in one bank, the data of the eviction way selected from the bank having the merge flag is written in the write-back address & data buffer 50 in step S33. Further, paired data is evicted from the other bank and written to the write back address & data buffer 50. The selection result of the eviction way by the LRU in the other bank is ignored. At this time, the arbitration circuit 46 supplies a selection signal to the selectors 42-1 and 42-2 so as to output data from the address restoration circuit of the bank having the merge flag. The arbitration circuit 46 further notifies the MAC access control circuit 55 that it is a write back subject to merge access for two continuous lines.

ステップS31及びS33に続き、ステップS32で、MACアクセス制御回路55は、連続2ラインのライトバックデータの追い出しが完了したことを、メモリアクセスコントローラ15に通知する。   Subsequent to steps S31 and S33, in step S32, the MAC access control circuit 55 notifies the memory access controller 15 that the continuation of write-back data of two continuous lines has been completed.

マージフラグが両方のバンクにおいて存在しない場合は、ステップS34で、それぞれのバンクにおいて、LRUにより選択された追い出し対象ウェイのデータをライトバックアドレス&データバッファ50に書き込む。この際、調停回路46は、両方のバンクにおいてそれぞれのアドレス復元回路34−1及び34−2からのデータを出力するように、セレクタ42−1及び42−2に選択信号を供給する。調停回路46は更に、2ライン分のライトバックである旨をMACアクセス制御回路55に通知する。   If the merge flag does not exist in both banks, the data of the eviction target way selected by the LRU is written in the write-back address & data buffer 50 in each bank in step S34. At this time, the arbitration circuit 46 supplies selection signals to the selectors 42-1 and 42-2 so that the data from the respective address restoration circuits 34-1 and 34-2 are output in both banks. The arbitration circuit 46 further notifies the MAC access control circuit 55 that the write back is for two lines.

ステップS34に続き、ステップS35で、MACアクセス制御回路55は、それぞれ独立にメインメモリに書き込むべき2ラインのライトバックデータの追い出しが完了したことを、メモリアクセスコントローラ15に通知する。   Subsequent to step S34, in step S35, the MAC access control circuit 55 notifies the memory access controller 15 that the two lines of write-back data to be written to the main memory have been evicted independently.

図6は、ミス側フィル処理C−1の一例を示すフローチャートである。偶数バンク側と奇数バンク側との片方のみミスした場合は、ミスした側においてキャッシュフィル処理が実行される。   FIG. 6 is a flowchart illustrating an example of the miss-side fill process C-1. If only one of the even bank side and the odd bank side misses, the cache fill process is executed on the missed side.

ステップS41で、空きウェイがあるか否かをチェックする。空きウェイが有る場合は、後述するフィル処理B−2を実行する。空きウェイが無い場合は、ステップS42で、ミスしたバンクにおいて追い出しウェイをLRUに従って選択する。次にステップS43で、選択されたウェイにマージフラグがあるか否かをチェックする。マージフラグがない場合、ステップS44で、ミスした方のバンクの追い出しウェイに対応するデータを、ライトバックアドレス&データバッファ50に書き込む。なおこの際、調停回路46は、マージフラグがない場合、ミスした方のバンクのアドレス復元回路からのデータを出力するように、マルチプレクサ42−1及び42−2に選択信号を出す。調停回路46は更に、1ラインのみのライトバックである旨及びライトバックするバンクをMACアクセス制御回路55に通知する。ステップS45で、1ラインのライトバックデータの追い出しが完了したことを、MACアクセス制御回路55からメモリアクセスコントローラ15に通知する。その後、後述するフィル処理B−2を実行する。   In step S41, it is checked whether there is an empty way. If there is an empty way, fill processing B-2 described later is executed. If there is no empty way, in step S42, the eviction way is selected according to the LRU in the missed bank. In step S43, it is checked whether the selected way has a merge flag. If there is no merge flag, the data corresponding to the eviction way of the bank that has made a mistake is written in the write-back address & data buffer 50 in step S44. At this time, when there is no merge flag, the arbitration circuit 46 outputs a selection signal to the multiplexers 42-1 and 42-2 so as to output the data from the address restoration circuit of the bank that has missed. The arbitration circuit 46 further notifies the MAC access control circuit 55 that the write back is for only one line and the bank to be written back. In step S45, the MAC access control circuit 55 notifies the memory access controller 15 that one line of write-back data has been evicted. Thereafter, fill processing B-2, which will be described later, is executed.

マージフラグがある場合は、ステップS46で、ミスした方のバンクの追い出しウェイに対応するデータと、それと対になる他バンクのデータとを、ライトバックアドレス&データバッファ50に書き込む。即ち、追い出し対象ラインとアドレスが連続するラインが他バンクに存在するので、その他バンクの対になるデータもライトバック対象としてライトバックアドレス&データバッファ50に格納する。この際、調停回路46は、マージフラグがある場合、ミスした方のバンクのアドレス復元回路からのデータを出力するように、マルチプレクサ42−1及び42−2に選択信号を出す。調停回路46は更に、連続2ラインのマージアクセス対象のライトバックである旨をMACアクセス制御回路55に通知する。ステップS47で、連続2ラインのライトバックデータの追い出しが完了したことを、MACアクセス制御回路55からメモリアクセスコントローラ15に通知する。その後、後述するフィル処理B−3を実行する。   If there is a merge flag, the data corresponding to the eviction way of the bank that has made a mistake and the data of the other bank paired therewith are written in the write-back address & data buffer 50 in step S46. That is, since there are lines in the other bank that have addresses that are continuous with the eviction target line, the data paired with the other bank is also stored in the write back address & data buffer 50 as a write back target. At this time, when there is a merge flag, the arbitration circuit 46 outputs a selection signal to the multiplexers 42-1 and 42-2 so as to output data from the address restoration circuit of the bank that has missed. Furthermore, the arbitration circuit 46 notifies the MAC access control circuit 55 that it is a write back subject to merge access for two continuous lines. In step S47, the MAC access control circuit 55 notifies the memory access controller 15 that the continuation of write-back data for two continuous lines has been completed. Thereafter, fill processing B-3, which will be described later, is executed.

図7はフィル処理C−2の一例を示すフローチャートである。偶数バンク側と奇数バンク側との片方のみ追い出しが必要な場合(空きウェイがない場合)は、追い出しが必要な方のバンクにおいてキャッシュフィル処理が実行される。   FIG. 7 is a flowchart showing an example of the fill process C-2. When only one of the even bank side and the odd bank side needs to be evicted (when there is no empty way), the cache fill process is executed in the bank requiring evict.

ステップS51で、追い出しが必要な方のバンクにおいて追い出しウェイをLRUに従って選択する。次にステップS52で、選択されたウェイにマージフラグがあるか否かをチェックする。マージフラグがない場合、ステップS53で、追い出しが必要な方のバンクの追い出しウェイに対応するデータを、ライトバックアドレス&データバッファ50に書き込む。なおこの際、調停回路46は、マージフラグがない場合、追い出しが必要な方のバンクのアドレス復元回路からのデータを出力するように、マルチプレクサ42−1及び42−2に選択信号を出す。調停回路46は更に、1ラインのみのライトバックである旨及びライトバックするバンクをMACアクセス制御回路55に通知する。ステップS54で、1ラインのライトバックデータの追い出しが完了したことを、MACアクセス制御回路55からメモリアクセスコントローラ15に通知する。その後、後述するフィル処理B−2を実行する。   In step S51, the eviction way is selected according to the LRU in the bank that needs eviction. In step S52, it is checked whether the selected way has a merge flag. If there is no merge flag, the data corresponding to the eviction way of the bank requiring eviction is written into the write-back address & data buffer 50 in step S53. At this time, if there is no merge flag, the arbitration circuit 46 outputs a selection signal to the multiplexers 42-1 and 42-2 so as to output the data from the address restoration circuit of the bank that needs to be evicted. The arbitration circuit 46 further notifies the MAC access control circuit 55 that the write back is for only one line and the bank to be written back. In step S54, the MAC access control circuit 55 notifies the memory access controller 15 that the eviction of write-back data for one line has been completed. Thereafter, fill processing B-2, which will be described later, is executed.

マージフラグがある場合は、ステップS55で、追い出しが必要な方のバンクの追い出しウェイに対応するデータと、それと対になる他バンクのデータとを、ライトバックアドレス&データバッファ50に書き込む。即ち、追い出し対象ラインとアドレスが連続するラインが他バンクに存在するので、その他バンクの対になるデータもライトバック対象としてライトバックアドレス&データバッファ50に格納する。この際、調停回路46は、マージフラグがある場合、追い出しが必要な方のバンクのアドレス復元回路からのデータを出力するように、マルチプレクサ42−1及び42−2に選択信号を出す。調停回路46は更に、連続2ラインのマージアクセス対象のライトバックである旨をMACアクセス制御回路55に通知する。ステップS56で、連続2ラインのライトバックデータの追い出しが完了したことを、MACアクセス制御回路55からメモリアクセスコントローラ15に通知する。その後、後述するフィル処理B−4を実行する。   If there is a merge flag, in step S55, the data corresponding to the eviction way of the bank requiring eviction and the data of the other bank paired therewith are written into the write-back address & data buffer 50. That is, since there are lines in the other bank that have addresses that are continuous with the eviction target line, the data paired with the other bank is also stored in the write back address & data buffer 50 as a write back target. At this time, if there is a merge flag, the arbitration circuit 46 outputs a selection signal to the multiplexers 42-1 and 42-2 so as to output data from the address restoration circuit of the bank that needs to be evicted. Furthermore, the arbitration circuit 46 notifies the MAC access control circuit 55 that it is a write back subject to merge access for two continuous lines. In step S56, the MAC access control circuit 55 notifies the memory access controller 15 that the continuous two-line write-back data has been evicted. Thereafter, fill processing B-4 described later is executed.

図8は、フィル処理B−1乃至B−4の一例を示すフローチャートである。図8(a)に示すフィル処理B−1では、該当するバンクの該当する空きウェイにおいて、メモリアクセスコントローラ15から読み出された2ライン分のデータを格納すると共に、LRUを更新する。更に、有効フラグに有効を示すデータをセットすると共に、マージフラグをセットする。図8(b)に示すフィル処理B−2では、該当するバンクの該当する空きウェイにおいて、メモリアクセスコントローラ15から読み出された1ライン分のデータを格納すると共に、LRUを更新する。更に、有効フラグに有効を示すデータをセットすると共に、マージフラグをセットする。更に、ヒットしたバンクのデータはフィルしたデータと対になるデータであるため、ヒットしたバンクの当該マージフラグアレイにもマージフラグをセットする。図8(c)に示すフィル処理B−3では、該当するバンクの該当する空きウェイにおいて、メモリアクセスコントローラ15から読み出された1ライン分のデータを格納すると共に、LRUを更新する。更に、有効フラグに有効を示すデータをセットすると共に、マージフラグをセットする。更に、ヒットしたバンクのデータはフィルしたデータと対になるデータであるため、ヒットしたバンクの当該マージフラグアレイにもマージフラグをセットする。更に、空になったバンクの空きウェイには有効フラグを無効にセットする。図8(d)に示すフィル処理B−4では、該当するバンクの該当する空きウェイにおいて、メモリアクセスコントローラ15から読み出された2ライン分のデータを格納すると共に、LRUを更新する。更に、有効フラグに有効を示すデータをセットすると共に、マージフラグをセットする。   FIG. 8 is a flowchart illustrating an example of the fill processes B-1 to B-4. In the fill process B-1 shown in FIG. 8A, the data for two lines read from the memory access controller 15 is stored and the LRU is updated in the corresponding empty way of the corresponding bank. Furthermore, data indicating validity is set in the valid flag, and a merge flag is set. In the fill process B-2 shown in FIG. 8B, the data for one line read from the memory access controller 15 is stored and the LRU is updated in the corresponding empty way of the corresponding bank. Furthermore, data indicating validity is set in the valid flag, and a merge flag is set. Further, since the hit bank data is paired with the filled data, a merge flag is also set in the merge flag array of the hit bank. In the fill process B-3 shown in FIG. 8C, the data for one line read from the memory access controller 15 is stored and the LRU is updated in the corresponding empty way of the corresponding bank. Furthermore, data indicating validity is set in the valid flag, and a merge flag is set. Further, since the hit bank data is paired with the filled data, a merge flag is also set in the merge flag array of the hit bank. Furthermore, the valid flag is set to invalid in the empty way of the vacant bank. In the fill process B-4 shown in FIG. 8D, the data for two lines read from the memory access controller 15 are stored and the LRU is updated in the corresponding empty way of the corresponding bank. Furthermore, data indicating validity is set in the valid flag, and a merge flag is set.

以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。   As mentioned above, although this invention was demonstrated based on the Example, this invention is not limited to the said Example, A various deformation | transformation is possible within the range as described in a claim.

10 CPU
11 DIMM
12 演算部
13 最上位キャッシュメモリ
14 最下位キャッシュメモリ
15 メモリアクセスコントローラ
43 ヒット判定回路
44 マージフラグチェック回路
45 インデックス比較回路
46 調停回路
51 SRAMアクセス制御回路
52 LRU更新制御回路
53 キャッシュ書込制御回路
54 キャッシュ応答制御回路
55 MACアクセス制御回路
10 CPU
11 DIMM
12 arithmetic unit 13 uppermost cache memory 14 lowermost cache memory 15 memory access controller 43 hit determination circuit 44 merge flag check circuit 45 index comparison circuit 46 arbitration circuit 51 SRAM access control circuit 52 LRU update control circuit 53 cache write control circuit 54 Cache response control circuit 55 MAC access control circuit

Claims (8)

インデックス毎にキャッシュデータを格納するデータアレイと、
前記データアレイのキャッシュデータ毎に第1の状態又は第2の状態の何れかを示す管理データを格納する管理データアレイと、
単一ラインでのキャッシュフィル要求に応じて単一ラインを前記データアレイに格納する場合には前記管理データアレイの対応する管理データを第1の状態とし、連続複数ラインでのキャッシュフィル要求に応じて連続複数ラインを前記データアレイに格納する場合には前記管理データアレイの対応する管理データを第2の状態とする書込制御回路と、
追い出し対象キャッシュデータのライトバック時に、前記管理データアレイの対応する管理データが第1の状態を示す場合には前記追い出し対象キャッシュデータを単一ラインとして書き込む要求を生成し、前記管理データアレイの対応する管理データが第2の状態を示す場合には、前記追い出し対象キャッシュデータと一纏まりとなる前記データアレイのキャッシュデータと前記追い出し対象キャッシュデータとを連続複数ラインとして書き込む要求を生成するアクセス制御回路と
インデックス毎に複数のウェイに対応する複数のタグを格納するタグアレイと、
ライトバックするキャッシュデータを格納するバッファと、
を含み、
前記データアレイにはインデックス毎に前記複数のウェイに対応する複数のキャッシュデータが格納され、前記追い出し対象キャッシュデータのライトバック時に、前記管理データアレイの対応する管理データが第2の状態を示す場合には、前記追い出し対象キャッシュデータのインデックスの隣接インデックスにおいて、前記追い出し対象キャッシュデータのタグと同一のタグを有するキャッシュデータを前記データアレイから選択し、前記選択されたキャッシュデータと前記追い出し対象キャッシュデータとを前記バッファに格納するメモリ装置。
A data array for storing cache data for each index; and
A management data array for storing management data indicating either the first state or the second state for each cache data of the data array;
When a single line is stored in the data array in response to a cache fill request on a single line, the corresponding management data in the management data array is set to the first state, and a cache fill request on consecutive multiple lines is met. A write control circuit for setting the corresponding management data in the management data array to the second state when storing a plurality of continuous lines in the data array;
If the management data corresponding to the management data array indicates the first state at the time of write-back of the cache data to be evicted, a request for writing the cache data to be evicted as a single line is generated, and the management data array An access control circuit for generating a request to write the cache data of the data array and the eviction target cache data as a plurality of continuous lines together with the eviction target cache data when the management data to be indicated indicates a second state and,
A tag array for storing a plurality of tags corresponding to a plurality of ways for each index;
A buffer for storing cache data to be written back;
Only including,
A plurality of cache data corresponding to the plurality of ways is stored for each index in the data array, and the management data corresponding to the management data array indicates a second state at the time of write back of the eviction target cache data Selecting cache data having the same tag as the tag of the eviction target cache data in the adjacent index of the index of the eviction target cache data from the data array, and selecting the selected cache data and the eviction target cache data. Is stored in the buffer .
前記書込制御回路は、連続複数ラインでのキャッシュフィル要求に応じて単一ラインを前記データアレイに格納する場合には前記管理データアレイの対応する管理データを第2の状態とする請求項1記載のメモリ装置。 The write control circuit according to claim 1 in the case of storing a single line to the data array in response to the cache fill request in continuous plural lines to corresponding management data second state of the control data array serial mounting of the memory device. 連続複数ラインでのキャッシュフィル要求に応じて選択された少なくとも2つの追い出し対象キャッシュデータに対して管理データが第2の状態を示す場合には、前記少なくとも2つの追い出し対象キャッシュデータのうちの1つの追い出し対象キャッシュデータを選択し、前記選択された1つの追い出し対象キャッシュデータのインデックスの隣接インデックスにおいて、前記選択された1つの追い出し対象キャッシュデータのタグと同一のタグを有するキャッシュデータを前記データアレイにおいて特定し、前記特定されたキャッシュデータと前記選択された1つの追い出し対象キャッシュデータとを前記バッファに格納する請求項1又は2記載のメモリ装置。 When the management data indicates the second state with respect to at least two eviction target cache data selected in response to the cache fill request in the continuous multiple lines, one of the at least two eviction target cache data Select cache data to be evicted, and in the data array, cache data having the same tag as the tag of the selected cache data to be evicted in the adjacent index of the selected cache data to be evicted in the data array. 3. The memory device according to claim 1, wherein the memory device is specified, and the specified cache data and the selected one eviction target cache data are stored in the buffer. 前記連続複数ラインは連続2ラインである請求項1乃至いずれか1項記載のメモリ装置。 The continuous multi-line memory device according to claim 1 to 3 any one of claims a continuous two lines. 単一ラインでのキャッシュフィル要求に応じて単一ラインをデータアレイに格納する場合には管理データアレイの対応する管理データを第1の状態に設定し、
連続複数ラインでのキャッシュフィル要求に応じて連続複数ラインを前記データアレイに格納する場合には前記管理データアレイの対応する管理データを第2の状態に設定し、
追い出し対象キャッシュデータのライトバック時に、前記管理データアレイの対応する管理データが第1の状態を示す場合には前記追い出し対象キャッシュデータを単一ラインとして書き込む要求を生成し、
前記管理データアレイの対応する管理データが第2の状態を示す場合には、前記追い出し対象キャッシュデータと一纏まりとなる前記データアレイのキャッシュデータと前記追い出し対象キャッシュデータとを連続複数ラインとして書き込む要求を生成し、
インデックス毎に複数のウェイに対応する複数のタグが存在し、前記データアレイにはインデックス毎に前記複数のウェイに対応する複数のキャッシュデータが格納されており、前記追い出し対象キャッシュデータのライトバック時に、前記管理データアレイの対応する管理データが第2の状態を示す場合には、前記追い出し対象キャッシュデータのインデックスの隣接インデックスにおいて、前記追い出し対象キャッシュデータのタグと同一のタグを有するキャッシュデータを前記データアレイから選択し、前記選択されたキャッシュデータと前記追い出し対象キャッシュデータとをライトバック用バッファに格納する
各段階を含むキャッシュメモリの制御方法。
Set the corresponding management data of the management data array in the case of storing a single line data array in a first state in response to the cache fill request in a single line,
When storing a plurality of continuous lines in the data array in response to a cache fill request in a plurality of continuous lines, the management data corresponding to the management data array is set to the second state,
A request to write the eviction target cache data as a single line when the management data corresponding to the management data array indicates a first state during write back of the eviction target cache data;
When the management data corresponding to the management data array indicates the second state, a request to write the cache data of the data array and the cache data to be purged as a plurality of continuous lines together with the cache data to be purged to generate,
There are a plurality of tags corresponding to a plurality of ways for each index, and a plurality of cache data corresponding to the plurality of ways is stored for each index in the data array, and when the cache data to be evicted is written back When the management data corresponding to the management data array indicates the second state, the cache data having the same tag as the tag of the eviction target cache data in the adjacent index of the index of the eviction target cache data is A cache memory control method including each step of selecting from a data array and storing the selected cache data and the eviction target cache data in a write-back buffer .
連続複数ラインでのキャッシュフィル要求に応じて単一ラインを前記データアレイに格納する場合には前記管理データアレイの対応する管理データを第2の状態とする請求項記載のキャッシュメモリの制御方法。 6. The method of controlling a cache memory according to claim 5, wherein when a single line is stored in the data array in response to a cache fill request in a plurality of continuous lines, the management data corresponding to the management data array is set to the second state. . 連続複数ラインでのキャッシュフィル要求に応じて選択された少なくとも2つの追い出し対象キャッシュデータに対して管理データが第2の状態を示す場合には、前記少なくとも2つの追い出し対象キャッシュデータのうちの1つの追い出し対象キャッシュデータを選択し、前記選択された1つの追い出し対象キャッシュデータのインデックスの隣接インデックスにおいて、前記選択された1つの追い出し対象キャッシュデータのタグと同一のタグを有するキャッシュデータを前記データアレイにおいて特定し、前記特定されたキャッシュデータと前記選択された1つの追い出し対象キャッシュデータとを前記ライトバック用バッファに格納する請求項5又は6記載のキャッシュメモリの制御方法。 When the management data indicates the second state with respect to at least two eviction target cache data selected in response to the cache fill request in the continuous multiple lines, one of the at least two eviction target cache data Select cache data to be evicted, and in the data array, cache data having the same tag as the tag of the selected cache data to be evicted in the adjacent index of the selected cache data to be evicted in the data array. identified, the control method of the cache memory according to claim 5 or 6, wherein storing the one eviction target cache data wherein is the selected and specified cache data to the write-back buffer. 演算部と、
キャッシュメモリと、
メモリアクセスコントローラと
を含み、前記キャッシュメモリは、
インデックス毎にキャッシュデータを格納するデータアレイと、
前記データアレイのキャッシュデータ毎に第1の状態又は第2の状態の何れかを示す管理データを格納する管理データアレイと、
単一ラインでのキャッシュフィル要求に応じて単一ラインを前記データアレイに格納する場合には前記管理データアレイの対応する管理データを第1の状態とし、連続複数ラインでのキャッシュフィル要求に応じて連続複数ラインを前記データアレイに格納する場合には前記管理データアレイの対応する管理データを第2の状態とする書込制御回路と、
追い出し対象キャッシュデータのライトバック時に、前記管理データアレイの対応する管理データが第1の状態を示す場合には前記追い出し対象キャッシュデータを単一ラインとして書き込む要求を前記メモリアクセスコントローラへ送信し、前記管理データアレイの対応する管理データが第2の状態を示す場合には、前記追い出し対象キャッシュデータと一纏まりとなる前記データアレイのキャッシュデータと前記追い出し対象キャッシュデータとを連続複数ラインとして書き込む要求を前記メモリアクセスコントローラへ送信するアクセス制御回路と
インデックス毎に複数のウェイに対応する複数のタグを格納するタグアレイと、
ライトバックするキャッシュデータを格納するバッファと、
を含み、
前記データアレイにはインデックス毎に前記複数のウェイに対応する複数のキャッシュデータが格納され、前記追い出し対象キャッシュデータのライトバック時に、前記管理データアレイの対応する管理データが第2の状態を示す場合には、前記追い出し対象キャッシュデータのインデックスの隣接インデックスにおいて、前記追い出し対象キャッシュデータのタグと同一のタグを有するキャッシュデータを前記データアレイから選択し、前記選択されたキャッシュデータと前記追い出し対象キャッシュデータとを前記バッファに格納する、演算処理装置。
An arithmetic unit;
Cache memory,
A memory access controller, wherein the cache memory is
A data array for storing cache data for each index; and
A management data array for storing management data indicating either the first state or the second state for each cache data of the data array;
When a single line is stored in the data array in response to a cache fill request on a single line, the corresponding management data in the management data array is set to the first state, and a cache fill request on consecutive multiple lines is met. A write control circuit for setting the corresponding management data in the management data array to the second state when storing a plurality of continuous lines in the data array;
When the management data corresponding to the management data array indicates the first state during write-back of the eviction target cache data, a request to write the eviction target cache data as a single line is transmitted to the memory access controller, When the management data corresponding to the management data array indicates the second state, a request to write the cache data of the data array and the cache data to be purged together with the eviction target cache data as a plurality of continuous lines is issued. An access control circuit for transmitting to the memory access controller ;
A tag array for storing a plurality of tags corresponding to a plurality of ways for each index;
A buffer for storing cache data to be written back;
Only including,
A plurality of cache data corresponding to the plurality of ways is stored for each index in the data array, and the management data corresponding to the management data array indicates a second state at the time of write back of the eviction target cache data Selecting cache data having the same tag as the tag of the eviction target cache data in the adjacent index of the index of the eviction target cache data from the data array, and selecting the selected cache data and the eviction target cache data. Is stored in the buffer .
JP2012153972A 2012-07-09 2012-07-09 Memory device, arithmetic processing device, and cache memory control method Active JP5978814B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012153972A JP5978814B2 (en) 2012-07-09 2012-07-09 Memory device, arithmetic processing device, and cache memory control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012153972A JP5978814B2 (en) 2012-07-09 2012-07-09 Memory device, arithmetic processing device, and cache memory control method

Publications (2)

Publication Number Publication Date
JP2014016812A JP2014016812A (en) 2014-01-30
JP5978814B2 true JP5978814B2 (en) 2016-08-24

Family

ID=50111435

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012153972A Active JP5978814B2 (en) 2012-07-09 2012-07-09 Memory device, arithmetic processing device, and cache memory control method

Country Status (1)

Country Link
JP (1) JP5978814B2 (en)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07129464A (en) * 1993-11-05 1995-05-19 Hitachi Ltd Information processor
JP3717212B2 (en) * 1995-10-27 2005-11-16 株式会社日立製作所 Information processing apparatus and information processing unit
JP4071886B2 (en) * 1998-03-20 2008-04-02 松下電器産業株式会社 Cache memory system with variable block size
JP2001175535A (en) * 1999-12-16 2001-06-29 Matsushita Electric Ind Co Ltd Semiconductor memory device and cache memory system using the same
JP2007011580A (en) * 2005-06-29 2007-01-18 Toshiba Corp Information processing device
JP5347019B2 (en) * 2009-04-10 2013-11-20 パナソニック株式会社 Cache memory device, cache memory control method, program, and integrated circuit

Also Published As

Publication number Publication date
JP2014016812A (en) 2014-01-30

Similar Documents

Publication Publication Date Title
US12124373B2 (en) Method and apparatus for controlling cache line storage in cache memory
US20240296129A1 (en) Victim cache with write miss merging
EP2992438B1 (en) Memory network
US10474584B2 (en) Storing cache metadata separately from integrated circuit containing cache controller
US10310976B2 (en) System and method for concurrently checking availability of data in extending memories
KR101139565B1 (en) In-memory, in-page directory cache coherency scheme
US20070073974A1 (en) Eviction algorithm for inclusive lower level cache based upon state of higher level cache
US20090259813A1 (en) Multi-processor system and method of controlling the multi-processor system
US11599483B2 (en) Dedicated cache-related block transfer in a memory system
JP2018032256A (en) Memory system and processor system
JP2010086496A (en) Vector computer system with cache memory, and operation method therefor
US5893163A (en) Method and system for allocating data among cache memories within a symmetric multiprocessor data-processing system
US12093180B2 (en) Tags and data for caches
JP2010097557A (en) Set associative cache apparatus and cache method
US20060143400A1 (en) Replacement in non-uniform access cache structure
EP1604286B1 (en) Data processing system with cache optimised for processing dataflow applications
US7606994B1 (en) Cache memory system including a partially hashed index
US6801982B2 (en) Read prediction algorithm to provide low latency reads with SDRAM cache
JP5978814B2 (en) Memory device, arithmetic processing device, and cache memory control method
CN113826083A (en) Processor-side transactional context memory interface systems and methods
CN111949567A (en) Memory side transaction background memory interface system and method
US6493814B2 (en) Reducing resource collisions associated with memory units in a multi-level hierarchy memory system
JP2010020432A (en) Cache memory device
JP2012038262A (en) Cache memory and data processor
EP4443305A1 (en) Method for storing and accessing a data operand in a memory unit

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150406

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160309

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160405

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160606

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160628

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160711

R150 Certificate of patent or registration of utility model

Ref document number: 5978814

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150