JPH04315235A - Cache data replace method and cache data replace device for cache memory - Google Patents
Cache data replace method and cache data replace device for cache memoryInfo
- Publication number
- JPH04315235A JPH04315235A JP3080050A JP8005091A JPH04315235A JP H04315235 A JPH04315235 A JP H04315235A JP 3080050 A JP3080050 A JP 3080050A JP 8005091 A JP8005091 A JP 8005091A JP H04315235 A JPH04315235 A JP H04315235A
- Authority
- JP
- Japan
- Prior art keywords
- data
- cache
- memory
- block
- state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 241
- 238000000034 method Methods 0.000 title claims description 32
- 230000003247 decreasing effect Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 12
- 230000007704 transition Effects 0.000 description 6
- 230000001174 ascending effect Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
【0001】0001
【産業上の利用分野】本発明は、共有メモリ共有バス方
式のマルチプロセッサ構成によりプロセッサを高速で動
作させるためのキャッシュメモリのリプレース方法に関
し、特にN(N≧2)ウェイセットアソシアティブ・ラ
イトバック方式のキャッシュメモリのデータブロックの
リプレース方法及びリプレース装置に関する。[Field of Industrial Application] The present invention relates to a cache memory replacement method for operating a processor at high speed using a shared memory shared bus type multiprocessor configuration, and in particular to an N (N≧2) way set associative write back type method. The present invention relates to a method and device for replacing data blocks in a cache memory.
【0002】0002
【従来の技術】プロセッサを高速に動作させるために、
プロセッサと主記憶装置との間に小容量ではあるが高速
動作が可能なキャッシュメモリを配置することが一般に
行われている。主記憶装置の記憶領域は複数のブロック
に分割され、一部の複数ブロックの記憶データがキャッ
シュメモリにロードされる。プロセッサは、まずキャッ
シュメモリにアクセスし、キャッシュメモリ上にアクセ
スされたアドレスのデータが存在する場合には、すなわ
ち、キャッシュヒットしたときは、キャッシュメモリ上
のデータにそのままアクセスし、読み出し或いは書込み
を行う。また、キャッシュメモリ上に該当アドレスのデ
ータがない場合には、すなわち、キャッシュミスしたと
きは、新しいブロックを主記憶装置から読み出し、既に
キャッシュメモリ上にある古いブロックのどれかと置き
換える。この置き換えは、一般にリプレースと呼ばれる
。このとき、どのブロックを置き換えるかを決める方式
はリプレースアルゴリズムと呼ばれる。このリプレース
アルゴリズムとしては、最も長い時間使用されなかった
ブロックを置き換えの対象とするLRU(Least
Recently Used) 方式、最も以前にキャ
ッシュメモリに読み出されたブロックを置き換えの対象
とするFIFO(First In First Ou
t)方式等が知られている。[Background Art] In order to make a processor operate at high speed,
It is common practice to arrange a cache memory, which has a small capacity but can operate at high speed, between a processor and a main storage device. The storage area of the main storage device is divided into a plurality of blocks, and some of the storage data of the plurality of blocks is loaded into the cache memory. The processor first accesses the cache memory, and if data at the accessed address exists on the cache memory, that is, when there is a cache hit, the processor directly accesses the data on the cache memory and reads or writes it. . Furthermore, when there is no data at the corresponding address on the cache memory, that is, when a cache miss occurs, a new block is read from the main memory and replaced with any old block already on the cache memory. This replacement is generally called a replacement. At this time, the method for determining which block to replace is called a replacement algorithm. This replacement algorithm uses the LRU (Least
FIFO (First In First O) method, which targets the block most recently read into the cache memory
t) method etc. are known.
【0003】また、キャッシュメモリ上のデータは、プ
ロセッサからのライトアクセスにより更新されることが
あるが、リプレースの際に一括してキャッシュメモリ上
の或るブロックの全てのデータを主記憶装置に書き込む
方式は、ライトバック(write−back)方式と
呼ばれる。なお、ライトバック(write−back
)方式は,コピーバック(copy−back) 方式
と呼ばれることもある。プロセッサが、高速動作可能な
キャッシュメモリをアクセスすることで、全体で見たと
きの処理速度は高速になる。[0003]Also, data on the cache memory may be updated by write access from the processor, but when replacing, all data in a certain block on the cache memory is written to the main memory at once. The method is called a write-back method. Note that write-back
) method is sometimes called a copy-back method. When the processor accesses the cache memory that can operate at high speed, the overall processing speed becomes faster.
【0004】従来のキャッシュメモリにおいては、リプ
レースアルゴリズムとして、上述したLRU方式やFI
FO方式が使用されているが、これらの方式は、データ
の利用頻度や入力した順番にのみ着目し、リプレースの
対象となるブロックのデータの変更の有無、すなわち、
書込みが行われたか否かに関係なく、ライトバックによ
るリプレースを行っていた。[0004] In conventional cache memory, the above-mentioned LRU method and FI
The FO method is used, but these methods only focus on the frequency of data use and the order in which it was input, and check whether or not the data in the block to be replaced has changed, that is,
Replacement was performed by write-back regardless of whether writing was performed or not.
【0005】[0005]
【発明が解決しようとする課題】しかしながら、リプレ
ースの際に、無条件にキャッシュメモリ上のデータを主
記憶装置にライトバックすると、主記憶装置への書込み
には時間を要するため、プロセッサの待ち時間が増加し
、システムのスループットが低下するという問題があっ
た。また、LRU方式やFIFO方式では、構成が複雑
になるという問題があった。[Problems to be Solved by the Invention] However, when data in the cache memory is unconditionally written back to the main memory during replacement, it takes time to write to the main memory, so the wait time of the processor increases. There was a problem that the system throughput decreased due to the increase in the amount of data. Furthermore, the LRU method and FIFO method have a problem in that the configuration becomes complicated.
【0006】本発明は、前記問題に鑑み、マルチプロセ
ッサ構成のキャッシュメモリのデータリプレース方法に
おいて、データが変更されているキャッシュメモリのブ
ロックから主記憶装置へのライトバック回数を減らすこ
とにより、キャッシュメモリと主記憶装置との間のデー
タ転送回数を減らし、これによりプロセッサの待ち時間
を減らし、システムのスループットを向上させることを
目的とする。更に本発明は、共有バスの空き時間を増や
すことにより、プロセッサのキャッシュ応答待ち時間と
共有バスの待ち時間を減らし、システムのスループット
を向上させることを目的とする。In view of the above-mentioned problems, the present invention provides a data replacement method for a cache memory in a multiprocessor configuration by reducing the number of write-backs from a cache memory block in which data has been changed to the main storage device. The purpose is to reduce the number of data transfers between the processor and the main memory, thereby reducing processor latency and improving system throughput. A further object of the present invention is to increase the idle time of the shared bus, thereby reducing the cache response waiting time of the processor and the waiting time of the shared bus, thereby improving system throughput.
【0007】[0007]
【課題を解決するための手段】本発明のキャッシュメモ
リにおけるキャッシュデータリプレース方法は、前記目
的を達成するため、共通の主記憶装置に対して複数のプ
ロセッサが設けられ、各プロセッサ毎にキャッシュメモ
リが設けられ、該キャッシュメモリに対する書込み動作
が複数に分割されたブロックに対して行われ書込みがあ
ったブロックのキャッシュデータの主記憶装置への書込
みがリプレース時に行われるキャッシュメモリのキャッ
シュデータリプレース方法において、各ブロックに対応
する複数ビットからなる履歴データを記憶するための履
歴データメモリを設け、初期状態においては履歴データ
のビットを第1の状態に設定し、キャッシュメモリ内の
キャッシュデータが変更され、或いは、リプレースされ
たときに当該ブロックに対応するビットを第2の状態に
設定し、他のプロセッサにより当該キャッシュメモリ内
にある同じアドレスを有するデータが更新されたときに
、前記履歴データメモリの該当するビットを第2の状態
に設定し、キャッシュデータのリプレースの際には、履
歴データのビットが第1の状態に設定されているブロッ
クのキャッシュデータを優先的にリプレースすることを
特徴とする。[Means for Solving the Problems] In order to achieve the above object, the method of replacing cache data in a cache memory of the present invention is such that a plurality of processors are provided for a common main storage device, and a cache memory is provided for each processor. In a cache data replacement method for a cache memory, the write operation to the cache memory is performed on blocks divided into a plurality of blocks, and the cache data of the written block is written to the main storage device at the time of replacement, A history data memory is provided for storing history data consisting of a plurality of bits corresponding to each block, and the bits of the history data are set to a first state in an initial state, and the cache data in the cache memory is changed, or , sets the bit corresponding to the block in the second state when it is replaced, and when data having the same address in the cache memory is updated by another processor, the bit corresponding to the block in the history data memory is set to the second state. The bit is set to the second state, and when replacing cache data, the cache data of the block whose history data bit is set to the first state is preferentially replaced.
【0008】また、本発明は、共通の主記憶装置に対し
て複数のプロセッサが設けられ、各プロセッサ毎にキャ
ッシュメモリが設けられ、該キャッシュメモリに対する
書込み動作が複数に分割されたブロックに対して行われ
書込みがあったブロックのキャッシュデータの主記憶装
置への書込みがリプレース時或いはキャッシュメモリへ
の書込み毎に行われるキャッシュメモリのキャッシュデ
ータリプレース方法において、各ブロックに対応する複
数ビットからなる履歴データを記憶するための履歴デー
タメモリを設け、初期状態においては履歴データのビッ
トを第1の状態に設定し、前記プロセッサの書込みによ
り当該ブロックに対応するビットを第2の状態に設定し
、他のプロセッサにより当該キャッシュメモリ内にある
同じアドレスを有するデータが更新されたときに、前記
履歴データメモリの該当するビットを第1の状態に設定
し、キャッシュデータのリプレースの際には、履歴デー
タのビットが第1の状態に設定されているブロックのキ
ャッシュデータを優先的にリプレースすることを特徴と
する。[0008] Furthermore, the present invention provides a common main storage device with a plurality of processors, a cache memory for each processor, and write operations to the cache memory for blocks divided into a plurality of blocks. In a cache data replacement method for a cache memory in which cache data of a block that has been written is written to the main memory at the time of replacement or every time a write is made to the cache memory, history data consisting of multiple bits corresponding to each block is used. A history data memory is provided for storing the block, in which the bits of the history data are set to a first state in the initial state, the bits corresponding to the block are set to the second state by writing by the processor, and the bits of the history data are set to the second state by writing by the processor. When data having the same address in the cache memory is updated by the processor, the corresponding bit of the history data memory is set to the first state, and when replacing the cache data, the bit of the history data is set to the first state. The method is characterized in that the cache data of the block set to the first state is preferentially replaced.
【0009】また、本発明のキャッシュメモリにおける
キャッシュデータリプレース装置は、共通の主記憶装置
に対して複数のプロセッサが設けられ、各プロセッサ毎
にキャッシュメモリが設けられ、該キャッシュメモリに
対する書込み動作が複数に分割されたブロックに対して
行われ書込みがあったブロックのキャッシュデータの主
記憶装置への書込みがリプレース時に行われるキャッシ
ュメモリのキャッシュデータリプレース装置において、
各ブロックに対応する複数ビットからなる履歴データを
記憶するための履歴データメモリであって初期状態にお
いては履歴データのビットが第1の状態に設定されてい
る履歴データメモリと、キャッシュメモリ内のキャッシ
ュデータの変更を示す信号或いはリプレースを示す信号
を検出して前記履歴データメモリの当該ブロックに対応
するビットを第2の状態に設定する手段と、他のプロセ
ッサにより当該キャッシュメモリ内にある同じアドレス
を有するデータが更新されたことを示す信号を検出して
前記履歴データメモリの該当するビットを第2の状態に
設定する手段と、キャッシュデータのリプレースの際に
前記履歴データメモリの内容を判別し第1の状態にある
ビットに基づいて優先的にキャッシュデータをリプレー
スするブロックを決定する手段とを設けたことを特徴と
する。Further, in the cache data replacement device for a cache memory of the present invention, a plurality of processors are provided for a common main storage device, a cache memory is provided for each processor, and a plurality of write operations to the cache memory are performed. In a cache data replacement device for a cache memory, in which cache data of a block that has been written to a block divided into blocks is written to the main storage device at the time of replacement,
A history data memory for storing history data consisting of multiple bits corresponding to each block, in which history data bits are set to a first state in an initial state, and a cache in a cache memory. means for detecting a signal indicating a data change or a signal indicating a data replacement and setting a bit corresponding to the block in the history data memory to a second state; means for detecting a signal indicating that data stored in the history data memory has been updated and setting a corresponding bit in the history data memory to a second state; and means for determining the contents of the history data memory when replacing cache data; The present invention is characterized in that it includes means for determining a block to preferentially replace cache data based on a bit in a state of 1.
【0010】また、本発明は、共通の主記憶装置に対し
て複数のプロセッサが設けられ、各プロセッサ毎にキャ
ッシュメモリが設けられ、該キャッシュメモリに対する
書込み動作が複数に分割されたブロックに対して行われ
書込みがあったブロックのキャッシュデータの主記憶装
置への書込みがリプレース時或いはキャッシュメモリへ
の書込み毎に行われるキャッシュメモリのキャッシュデ
ータリプレース装置において、各ブロックに対応する複
数ビットからなる履歴データを記憶するための履歴デー
タメモリであって初期状態においては履歴データのビッ
トが第1の状態に設定されている履歴データメモリと、
前記プロセッサの書込みを示す信号を検出して前記履歴
データメモリの当該ブロックに対応する履歴データのビ
ットを第2の状態に設定する手段と、他のプロセッサに
より当該キャッシュメモリ内にある同じアドレスを有す
るデータが更新されたことを示す信号を検出して前記履
歴データメモリの該当するビットを第1の状態に設定す
る手段と、キャッシュデータのリプレースの際に前記履
歴データメモリの内容を判別し第1の状態にあるビット
に基づいて優先的にキャッシュデータをリプレースする
ブロックを決定する手段とを設けたことを特徴とする。[0010]Furthermore, in the present invention, a plurality of processors are provided for a common main storage device, a cache memory is provided for each processor, and a write operation to the cache memory is performed for a block divided into a plurality of blocks. History data consisting of multiple bits corresponding to each block is used in a cache data replacement device for a cache memory in which writing of the cache data of a block that has been written to the main memory is performed at the time of replacement or each time the cache data is written to the cache memory. a history data memory for storing history data, in which bits of the history data are set to a first state in an initial state;
means for detecting a signal indicative of a write by the processor and setting a bit of historical data corresponding to the block of the historical data memory to a second state; and having the same address in the cache memory by another processor. means for detecting a signal indicating that data has been updated and setting a corresponding bit in the history data memory to a first state; and means for determining the contents of the history data memory when replacing cache data; The present invention is characterized by providing means for determining a block to preferentially replace cache data based on the bits in the state.
【0011】[0011]
【作用】本発明においては、初期状態においては履歴デ
ータメモリに記憶されている履歴データのビットが、た
とえば“0”とされる。そして、キャッシュメモリ内の
キャッシュデータが変更或いはリプレースされると対応
するビットが、たとえば“1”とされる。また、他のプ
ロセッサにより当該キャッシュメモリ内にある同じアド
レスを有するデータが更新されたときにも、履歴データ
メモリの該当するビットが、たとえば“1”とされる。
キャッシュミスによりキャッシュデータのリプレースを
行う際には、たとえば、“0”とされているブロック、
すなわち、変更がないブロックのキャッシュデータが優
先的にリプレースされる。プロセッサにより内容が変更
されたブロックのデータは、最終的にはリプレースする
必要があるが、リプレースの際にはキャッシュメモリか
ら主記憶装置へのライトバックが必要であり、このライ
トバックには時間を要する。そこで本発明においては、
キャッシュデータが変更されていないブロック、すなわ
ち、ライトバックの必要がないブロックを優先的にリプ
レースすることにより、ライトバックの必要があるブロ
ックがキャッシュメモリから追い出される比率を低くす
る。これにより、ライトバックの回数が削減され、シス
テムのスループットが向上する。また、共有バスの待ち
時間が減少することから、共有メモリ共有バスのマルチ
プロセッサ方式において、システムのスループットが向
上する。According to the present invention, in the initial state, the bits of the history data stored in the history data memory are set to, for example, "0". Then, when the cache data in the cache memory is changed or replaced, the corresponding bit is set to "1", for example. Also, when data having the same address in the cache memory is updated by another processor, the corresponding bit in the history data memory is set to "1", for example. When replacing cache data due to a cache miss, for example, a block that is set to "0",
That is, cache data in blocks that have not changed are replaced preferentially. The data in the block whose contents have been changed by the processor will eventually need to be replaced, but replacement requires writing back from the cache memory to the main memory, and this write back takes time. It takes. Therefore, in the present invention,
By preferentially replacing blocks whose cache data has not been changed, that is, blocks that do not require write-back, the rate at which blocks that require write-back are evicted from the cache memory is reduced. This reduces the number of write-backs and improves system throughput. Furthermore, since the latency time of the shared bus is reduced, system throughput is improved in a multiprocessor system with a shared memory shared bus.
【0012】0012
【実施例】以下、図面を参照しながら実施例に基づいて
本発明の特徴を具体的に説明する。DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, features of the present invention will be specifically explained based on embodiments with reference to the drawings.
【0013】図1は、本発明が適用されるキャッシュメ
モリの模式図を示す。なお、本実施例においては、4ウ
ェイセットアソシアティブ方式のキャッシュメモリを例
に挙げて説明する。セットアソシアティブ方式とは、主
記憶装置上のデータをキャッシュメモリ上のどこに対応
付けるかを決定するための方式の一つであり、キャッシ
ュメモリと主記憶装置の記憶領域を四つのブロック単位
に分割し、このブロック単位で対応付けるものである。
セットアソシアティブ方式自体については、たとえば、
村木,黒田,新堂「キャッシュ・メモリの方式とトレー
ドオフ」,32ビット・マイクロプロセサの全容,日経
マグロウヒル社,p242〜265等に記載がある。セ
ットアソシアティブ方式においては、キャッシュメモリ
は、ブロックを要素とするE行S列のマトリクスから構
成される。Eはエレメント数、Sはセット数と呼ばれ、
エレメント数がNのものをNウェイセットアソシアティ
ブ方式と呼ぶ。なお、E,S,Nは1以上の整数である
。FIG. 1 shows a schematic diagram of a cache memory to which the present invention is applied. In this embodiment, a 4-way set associative cache memory will be described as an example. The set associative method is a method for determining where on the cache memory the data on the main storage device should be associated, and the storage area of the cache memory and main storage device is divided into four blocks. The correspondence is made in units of blocks. Regarding the set associative method itself, for example,
Muraki, Kuroda, Shindo, "Cache Memory Methods and Trade-offs," Complete Guide to 32-Bit Microprocessors, Nikkei McGraw-Hill Publishing, pp. 242-265. In the set associative system, the cache memory is composed of a matrix with E rows and S columns, each of which has blocks as elements. E is called the number of elements, S is called the number of sets,
A method in which the number of elements is N is called an N-way set associative method. Note that E, S, and N are integers of 1 or more.
【0014】図1において、1は図示しないプロセッサ
からの実アドレス情報を模式的に示すプロセッサアドレ
ス部であり、このプロセッサアドレス部1には、タグア
ドレス2,セットアドレス3及びワードアドレス4が含
まれている。プロセッサアドレス部1からのセットアド
レス3は、リプレース回路5、タグメモリ6及びバリッ
ドメモリ7、データメモリ8のメモリ本体8aに供給さ
れる。また、ワードアドレス4は、データメモリ8のセ
レクタ8bに供給される。In FIG. 1, numeral 1 is a processor address section schematically showing real address information from a processor (not shown), and this processor address section 1 includes a tag address 2, a set address 3, and a word address 4. ing. The set address 3 from the processor address section 1 is supplied to the replacement circuit 5, the tag memory 6, the valid memory 7, and the memory main body 8a of the data memory 8. Further, the word address 4 is supplied to the selector 8b of the data memory 8.
【0015】プロセッサアドレス部1からのタグアドレ
ス2は、コンパレータ9においてタグメモリ6からのタ
グデータ13と比較され、両者が一致したときにキャッ
シュヒット信号31が出力される。このキャッシュヒッ
ト信号31はシーケンサ11に供給され、シーケンサ1
1からはデータ選択信号12が出力される。このデータ
選択信号12は、データメモリ8のセレクタ8cに供給
され、セットアドレス3及びワードアドレス4に基づい
てデータメモリ8から目的のキャッシュデータ14が出
力される。The tag address 2 from the processor address unit 1 is compared with the tag data 13 from the tag memory 6 in a comparator 9, and when the two match, a cache hit signal 31 is output. This cache hit signal 31 is supplied to the sequencer 11, and the sequencer 1
1 outputs a data selection signal 12. This data selection signal 12 is supplied to the selector 8c of the data memory 8, and target cache data 14 is output from the data memory 8 based on the set address 3 and word address 4.
【0016】本実施例においては、マルチプロセッサ構
成となっており、それぞれ異なったプロセッサからのプ
ロセッサアドレス102,105がアドレスセレクタ1
5に供給され、選択された側のアドレス16がプロセッ
サアドレス部1に設定される。This embodiment has a multiprocessor configuration, and processor addresses 102 and 105 from different processors are sent to the address selector 1.
5, and the selected address 16 is set in the processor address section 1.
【0017】上述のキャッシュメモリにおいては、キャ
ッシュミスした場合には、リプレース回路5により、新
しいブロックを主記憶装置から読み出し、既にキャッシ
ュメモリ上にある古いブロックのどれかと置き換える。
以下、リプレース回路5について、図2を参照して詳細
に説明する。In the cache memory described above, when a cache miss occurs, the replacement circuit 5 reads a new block from the main memory and replaces it with any old block already on the cache memory. Hereinafter, the replacement circuit 5 will be explained in detail with reference to FIG. 2.
【0018】リプレース回路5は、図1に示すプロセッ
サアドレス部1からのセットアドレス3でアクセスされ
てデータが更新されたキャッシュデータのブロックを記
憶する更新履歴データ用リプレースメモリ24、リプレ
ースされたキャッシュデータのブロックを記憶するリプ
レース履歴データ用リプレースメモリ25、リプレース
メモリ24からの更新履歴データ26とリプレースメモ
リ25からのリプレース履歴データ27により、キャッ
シュミス時にリプレースするブロックを決定するリプレ
ース決定回路28等から構成されている。リプレース決
定回路28からはリプレースデータ29が出力され、こ
のリプレースデータ29は、リプレースメモリ24,2
5にデータとして供給されるとともに、タグメモリ6及
びバリッドメモリ7に供給される (図1参照) 。The replace circuit 5 includes an update history data replace memory 24 that stores a block of cache data accessed by the set address 3 from the processor address unit 1 shown in FIG. 1 and whose data has been updated; A replacement memory 25 for replacement history data that stores blocks of , a replacement determination circuit 28 that determines a block to be replaced in the event of a cache miss based on update history data 26 from the replacement memory 24 and replacement history data 27 from the replacement memory 25, etc. has been done. Replace data 29 is output from the replace determination circuit 28, and this replace data 29 is
5 as data, and is also supplied to the tag memory 6 and valid memory 7 (see FIG. 1).
【0019】また、リプレースの期間であることを示す
リプレース信号(図中、RPで示す)30,キャッシュ
アクセスでヒットしたことを示すキャッシュヒット信号
(図中、C−Hで示す)31及びプロセッサライト信号
(図中、P−wrで示す)21からAND回路22によ
りリプレース更新信号(図中、R−wrで示す)33が
生成される。このリプレース更新信号33はキャッシュ
更新信号(図中、C−Uで示す)36とともに、OR回
路37に供給され、OR回路37の出力がリプレースメ
モリ24に供給される。キャッシュ更新信号36は、他
のプロセッサからメモリアドレスバス120上にブロー
ドキャストされたアドレスと同じアドレスのデータをキ
ャッシュメモリ内に持っていることを示す信号である。
また、リプレース信号30及びキャッシュアクセスでミ
スがあったことを示すキャッシュミス信号(図中、C−
Mで示す)32からAND回路23によりリプレースメ
モリ25に対するリプレース更新信号(図中、R−wr
で示す)34が生成される。[0019] Also, a replace signal (indicated by RP in the figure) 30 indicating that it is a replacement period, a cache hit signal (indicated by C-H in the figure) 31 indicating a hit in cache access, and a processor write signal (indicated by C-H in the figure). A replace update signal (indicated by R-wr in the figure) 33 is generated by an AND circuit 22 from a signal (indicated by P-wr in the figure) 21 . This replace update signal 33 is supplied to an OR circuit 37 together with a cache update signal (indicated by C-U in the figure) 36, and the output of the OR circuit 37 is supplied to the replace memory 24. The cache update signal 36 is a signal indicating that the cache memory has data at the same address as the address broadcast on the memory address bus 120 from another processor. In addition, a replace signal 30 and a cache miss signal (C-
A replace update signal (indicated by M) 32 to the replace memory 25 by an AND circuit 23
) 34 is generated.
【0020】プロセッサライト信号21は、プロセッサ
が書き込みを行うときにプロセッサから出力され、リプ
レース信号30は、キャッシュデータのリプレースが必
要なとき(キャッシュミスで且つキャッシュメモリが有
効データで一杯のとき)シーケンサ11から出力される
。また、キャッシュヒット信号31は、キャッシュヒッ
トのとき(キャッシュヒット信号31が有効になったと
き)シーケンサ11から出力され、キャッシュミス信号
32は、キャッシュミス時(キャッシュヒット信号31
が無効になったとき)シーケンサ11から出力される。The processor write signal 21 is output from the processor when the processor writes, and the replace signal 30 is output from the sequencer when cache data needs to be replaced (when there is a cache miss and the cache memory is full of valid data). It is output from 11. Further, the cache hit signal 31 is output from the sequencer 11 when there is a cache hit (when the cache hit signal 31 becomes valid), and the cache miss signal 32 is output from the sequencer 11 when there is a cache miss (when the cache hit signal 31 becomes valid).
output from the sequencer 11).
【0021】なお、更新履歴データ26、リプレース履
歴データ27、リプレースデータ29のビット幅は、セ
ットの数すなわちウェイ数と同じであり、2ウェイなら
2ビット、4ウェイなら4ビットである。本実施例では
4ウェイの場合を説明している。The bit width of the update history data 26, replacement history data 27, and replacement data 29 is the same as the number of sets, that is, the number of ways, and is 2 bits for 2-way and 4 bits for 4-way. In this embodiment, a 4-way case is explained.
【0022】上記リプレースメモリ24の内容は、キャ
ッシュがライトヒットしたときと、他のキャッシュメモ
リからのデータ更新時におけるブロードキャストにより
更新される。また、リプレースメモリ25の内容は、キ
ャッシュミスでデータブロックのリプレースが発生した
ときに更新される。The contents of the replace memory 24 are updated by broadcasting when the cache receives a write hit and when data is updated from other cache memories. Further, the contents of the replace memory 25 are updated when a data block is replaced due to a cache miss.
【0023】以下、上述の4ウェイセットアソシアティ
ブ方式のキャッシュメモリにおけるリプレースの動作を
、各場合に分けて説明する。なお、本実施例においては
、図3に示すような共有メモリ共有バス方式のマルチプ
ロセッサシステムに本発明を適用した場合の動作につい
て説明する。The replacement operation in the above-mentioned 4-way set associative cache memory will be explained below for each case. In this embodiment, the operation will be described when the present invention is applied to a shared memory shared bus type multiprocessor system as shown in FIG.
【0024】図3において、それぞれCPU (中央処
理装置) 101,111及びキャッシュメモリ104
,114を有する複数のプロセッサ109,119が、
メモリアドレスバス120,メモリデータバス121,
制御信号線122に対して共通に接続されている。また
、これらのバス等に対して上記複数のプロセッサ109
,119で共有される主記憶装置110が接続されてい
る。In FIG. 3, CPUs (central processing units) 101 and 111 and cache memory 104, respectively.
, 114, the plurality of processors 109, 119 have
memory address bus 120, memory data bus 121,
It is commonly connected to the control signal line 122. In addition, the plurality of processors 109 are connected to these buses, etc.
, 119 is connected.
【0025】各プロセッサ109,119においては、
各CPU101,111と各キャッシュメモリ104,
114とは、プロセッサアドレスバス102,112、
プロセッサデータバス103,113、プロセッサ制御
信号線107,117を介して接続されている。また、
各キャッシュメモリ104,114と各バス120,1
21,122は、キャッシュアドレスバス105,11
5,キャッシュデータバス106,116,メモリ制御
バス108,118を介して接続されている。In each processor 109, 119,
Each CPU 101, 111 and each cache memory 104,
114 refers to processor address buses 102, 112,
They are connected via processor data buses 103 and 113 and processor control signal lines 107 and 117. Also,
Each cache memory 104, 114 and each bus 120, 1
21, 122 are cache address buses 105, 11
5, cache data buses 106 and 116, and memory control buses 108 and 118.
【0026】たとえば、プロセッサ101がキャッシュ
メモリ104をアクセスする場合を考えると、アドレス
セレクタ15 (図1参照) により、リプレース回路
5、タグメモリ6、データメモリ8にはプロセッサアド
レス102が入力される。なお、ここでは説明を簡単に
するため、アドレスバスとこのアドレスバス上のアドレ
スとを同じ符号で示す。プロセッサ101によるキャッ
シュメモリ104へのアクセスの場合、キャッシュ更新
信号36はアサートすることがない。For example, when processor 101 accesses cache memory 104, processor address 102 is input to replace circuit 5, tag memory 6, and data memory 8 by address selector 15 (see FIG. 1). It should be noted that here, in order to simplify the explanation, the address bus and the addresses on this address bus are indicated by the same reference numerals. When the processor 101 accesses the cache memory 104, the cache update signal 36 is never asserted.
【0027】以下に、キャッシュメモリがヒットした場
合及びミスした場合の各動作について説明する。[0027] Each operation when the cache memory hits or misses will be explained below.
【0028】(1)キャッシュメモリがリードヒットし
た場合(キャッシュヒット信号31がアサート)。(1) When the cache memory has a read hit (cache hit signal 31 is asserted).
【0029】これは、プロセッサからのアクセスの種別
が読み出しであり、また、アクセスされたアドレスのデ
ータがキャッシュメモリ上にあることを意味している。
この場合、キャッシュメモリのデータブロックの更新及
びリプレースを行う必要がないので、リプレースメモリ
24,25に対しては何の操作も行わない。This means that the type of access from the processor is read, and that the data at the accessed address is on the cache memory. In this case, since there is no need to update or replace data blocks in the cache memory, no operations are performed on the replacement memories 24 and 25.
【0030】(2)キャッシュメモリがリードミスの場
合(キャッシュミス信号32がアサート)。(2) When there is a read miss in the cache memory (the cache miss signal 32 is asserted).
【0031】これは、プロセッサからのアクセスの種別
が読み出しであり、また、アクセスされたアドレスのデ
ータがキャッシュメモリ上にないことを意味している。
この場合、ミスしたデータを主記憶装置110からキャ
ッシュメモリ104に転送する必要があるため、リプレ
ース決定回路28によりキャッシュメモリ内の転送先ブ
ロックを、セットアドレス3で指定される四つのセット
の中から一つ決定する。いま、プロセッサアドレス10
2のセットアドレス3によりアクセスされたセットのリ
プレース履歴データが、図4(a)の更新履歴データ2
6,リプレース履歴データ27で示される状態であった
とする。なお、図中■〜■は各ブロックの番号を示す。
図4(a)において、“0010”の更新履歴データ2
6は、これまでにブロック■のデータが変更されたこと
があることを示しており、“0001”のリプレース履
歴データ27は、ブロック■がリプレースされたことが
あることを示している。リプレース決定回路28は、こ
の二つのデータを基に、リプレースするブロックの場所
を決定する。この例の場合、ブロック■とブロック■の
フラグがセットされているので、ブロック■或いはブロ
ック■がリプレースブロックとして選択可能である。た
とえば、ブロック■を選択したとすると、リプレースデ
ータ29で示されるようにブロック■のビットがアサー
トされる。そして、ブロック■にキャッシュミスしたデ
ータをロードする。なお、ブロック■と■のどちらを選
択するかは任意であり、たとえば、ランダム或いはブロ
ック番号の昇順等で決めてもよい。This means that the type of access from the processor is read, and that the data at the accessed address is not on the cache memory. In this case, since it is necessary to transfer the missed data from the main storage device 110 to the cache memory 104, the replacement determining circuit 28 selects the transfer destination block in the cache memory from among the four sets specified by the set address 3. Decide on one thing. Now processor address 10
The replacement history data of the set accessed by the set address 3 of 2 is the update history data 2 of FIG. 4(a).
6. Assume that the state is as shown in the replacement history data 27. Note that ■ to ■ in the figure indicate the numbers of each block. In FIG. 4(a), update history data 2 of “0010”
6 indicates that the data of block (2) has been changed in the past, and the replacement history data 27 of "0001" indicates that block (2) has been replaced. The replacement determining circuit 28 determines the location of the block to be replaced based on these two pieces of data. In this example, since the flags of block (2) and block (2) are set, block (2) or block (2) can be selected as the replacement block. For example, if block (2) is selected, the bit of block (2) is asserted as indicated by the replace data 29. Then, the cache-missed data is loaded into block ■. It is to be noted that the selection of blocks (2) and (2) is arbitrary; for example, it may be determined at random or in ascending order of block numbers.
【0032】そして、ブロック■のリプレースが終了す
ると、リプレース信号30とキャッシュミス信号32の
アサートにより、リプレースメモリ25の内容は図4(
b)のように更新される。すなわち、リプレース履歴デ
ータ27のブロック■に対応するビットが“1”になる
。When the replacement of block (2) is completed, the contents of the replace memory 25 are changed to the state shown in FIG.
It is updated as in b). That is, the bit corresponding to block (2) of the replacement history data 27 becomes "1".
【0033】(3)キャッシュメモリがライトヒットし
た場合(キャッシュヒット信号31,プロセッサライト
信号21がアサート)。(3) When the cache memory has a write hit (cache hit signal 31 and processor write signal 21 are asserted).
【0034】これは、プロセッサからのアクセスの種別
が書込みであり、また、アクセスされたアドレスのデー
タがキャッシュメモリ上にあることを意味している。こ
こでは、セットアドレス3で指定されるセットのブロッ
ク■がライトヒットしたとする(図5参照)。セットア
ドレス3により、リプレースメモリ24,25からデー
タ26,27が出力される。リプレース決定回路28は
、この二つのデータを基にリードミスのときと同様にし
てリプレースデータ29を出力する(図5(a)参照)
。そして、リプレース信号30とキャッシュヒット信号
31とプロセッサライト信号21のアサートにより、リ
プレースメモリ24の内容は、図5(b)のデータ26
のように更新される。なおこのとき、キャッシュメモリ
104へのデータのロードはない。This means that the type of access from the processor is write, and that the data at the accessed address is on the cache memory. Here, it is assumed that block (2) of the set specified by set address 3 has been write-hit (see FIG. 5). With set address 3, data 26 and 27 are output from replace memories 24 and 25. The replace decision circuit 28 outputs replace data 29 based on these two data in the same manner as in the case of a read error (see FIG. 5(a)).
. Then, by asserting the replace signal 30, cache hit signal 31, and processor write signal 21, the contents of the replace memory 24 are changed to the data 26 in FIG. 5(b).
will be updated as follows. Note that at this time, no data is loaded into the cache memory 104.
【0035】(4)キャッシュメモリがライトミスした
場合(キャッシュミス信号32,プロセッサライト信号
21がアサート)。(4) When a write miss occurs in the cache memory (cache miss signal 32 and processor write signal 21 are asserted).
【0036】リードミスのときと同様である。但し、書
き込みによるデータの更新があるので、リプレースメモ
リ25の内容のデータ27が図6(a)から図6(b)
のように更新される。This is the same as when there is a read error. However, since the data is updated by writing, the data 27 of the contents of the replace memory 25 is changed from FIG. 6(a) to FIG. 6(b).
will be updated as follows.
【0037】次に、他のプロセッサ(この場合、プロセ
ッサ111)がキャッシュメモリ114へ、キャッシュ
メモリ104と共用するデータに対して書き込みを行っ
た場合の動作について説明する。Next, the operation when another processor (in this case, the processor 111) writes data to the cache memory 114 that is shared with the cache memory 104 will be described.
【0038】メモリアドレスバス120,メモリデータ
バス121,制御信号線122に共有するデータが出力
されたとき、セレクタ15によりリプレース回路5,タ
グメモリ6,データメモリ8には、メモリアドレスバス
120からのプロセッサアドレス105が入力される。
このときキャッシュメモリがヒットとなると、キャッシ
ュ更新信号36がアサートされる。なお、ここでキャッ
シュメモリがヒットとは、データが共有されていること
を意味し、このときキャッシュヒット信号31はアサー
トされている。キャッシュ更新信号36のアサートによ
り、キャッシュメモリに格納されているデータが他のプ
ロセッサにより更新されたことを知り、更新されたデー
タのブロックをなるべく主記憶装置に書き戻さないよう
に、すなわち、ライトバックしないようにするため、リ
プレースメモリ24の内容を“1”にセットする。図7
(a),(b)は、更新履歴データ26のブロック■に
“1”にセットした例を示している。When shared data is output to the memory address bus 120, memory data bus 121, and control signal line 122, the selector 15 outputs the data from the memory address bus 120 to the replace circuit 5, tag memory 6, and data memory 8. A processor address 105 is input. If the cache memory is hit at this time, the cache update signal 36 is asserted. Note that here, a hit in the cache memory means that data is shared, and at this time, the cache hit signal 31 is asserted. By asserting the cache update signal 36, it is known that the data stored in the cache memory has been updated by another processor, and the updated block of data is written back to the main memory as much as possible. In order to prevent this, the contents of the replace memory 24 are set to "1". Figure 7
(a) and (b) show an example in which block (2) of the update history data 26 is set to "1".
【0039】(5)どのブロックの履歴データも“1”
になる場合。(5) History data of any block is “1”
If it becomes.
【0040】リプレースとデータの更新が行われて行く
と、どのブロックの履歴データ(更新履歴データ26,
リプレース履歴データ27)も“1”になる場合がある
(図8(a)参照)。このとき、リプレース決定回路2
8は、データのリプレース終了時又はデータの更新後、
リプレースデータ29に“0000”を出力する。出力
と同時にクリア信号(図中、CLRで示す)35がアサ
ートされ、リプレースメモリ24,25に“0”が書き
込まれ、初期状態に戻る(図8(b)参照)。As replacements and data updates are performed, which block's history data (update history data 26,
The replacement history data 27) may also become "1" (see FIG. 8(a)). At this time, the replacement determination circuit 2
8 is at the end of data replacement or after data update,
Output “0000” to the replacement data 29. At the same time as the output, a clear signal (indicated by CLR in the figure) 35 is asserted, and "0" is written in the replacement memories 24 and 25, returning to the initial state (see FIG. 8(b)).
【0041】上記実施例の説明では、リプレースメモリ
24,25の何方も“1”でないブロックをリプレース
したが、この条件を以下のように変更することもできる
。In the explanation of the above embodiment, a block in which neither of the replace memories 24 and 25 is "1" is replaced, but this condition can also be changed as follows.
【0042】まず、リプレースメモリ24,25の両方
の出力が“0”のものをリプレースする。両方の出力で
“0”がなくなったら、リプレースメモリ24のデータ
が“0”のブロックをリプレースし、リプレースメモリ
24の出力が全て“1”になったら、リプレースメモリ
25の出力で“0”のブロックをリプレースする。First, the replacement memories 24 and 25 whose outputs are both "0" are replaced. When “0” is no longer present in both outputs, replace the block whose data is “0” in the replace memory 24, and when all the outputs of the replace memory 24 are “1”, the output of the replace memory 25 is “0”. Replace block.
【0043】そして、全て“1”になったらリプレース
メモリ24,25の内容を“0”にする。或いは、逆に
、リプレースメモリ25が“0”のブロックを先ずリプ
レースし、リプレースメモリ25の出力が全て“1”に
なったら、リプレースメモリ24で“0”のブロックを
リプレースし、全て“1”になったら、リプレースメモ
リ24,25を“0”にクリアする。このようにして、
プロセッサライト信号21によるリプレースメモリ24
の更新と、リプレースによるリプレースメモリ25の更
新とに重み付けを行い、リプレースするブロックの順序
を決定する。このように重み付けを行なうことにより、
リプレースする順序を変えることが可能となり、アプリ
ケーションプログラムの種類によっては性能を向上させ
ることができる。Then, when they all become "1", the contents of the replacement memories 24 and 25 are set to "0". Or, conversely, the replace memory 25 first replaces the block with "0", and when the output of the replace memory 25 becomes all "1", the replace memory 24 replaces the block with "0", and all the blocks are "1". When this happens, the replace memories 24 and 25 are cleared to "0". In this way,
Replacement memory 24 by processor write signal 21
The order of the blocks to be replaced is determined by weighting the updates of the blocks and the updates of the replace memory 25 due to replacement. By weighting in this way,
It becomes possible to change the order of replacement, and performance can be improved depending on the type of application program.
【0044】なお、図2に示す実施例においては、更新
履歴データ26とリプレース履歴データ27をそれぞれ
別のリプレースメモリ24,25に格納したが、図9に
示すように、両方のメモリを一つのリプレースメモリ3
8に統合することもできる。なお、図2に示す実施例と
対応する部材等には同一符号を付して説明は省略する。In the embodiment shown in FIG. 2, the update history data 26 and the replacement history data 27 are stored in separate replacement memories 24 and 25, but as shown in FIG. Replace memory 3
8 can also be integrated. Incidentally, members and the like corresponding to those in the embodiment shown in FIG. 2 are given the same reference numerals, and explanations thereof will be omitted.
【0045】図9に示す実施例においては、リプレース
更新信号33,34はキャッシュ更新信号36とともに
、OR回路39を介してリプレースメモリ38に供給さ
れる。また、リプレースメモリ38にはアドレス信号と
して、図1に示すプロセッサアドレス部1からタグアド
レス2が供給され、リプレースメモリ38からは、更新
履歴データとリプレース履歴データの両方のデータを含
んだリプレース履歴データ40がリプレース決定回路2
8に供給される。In the embodiment shown in FIG. 9, the replace update signals 33 and 34 are supplied together with the cache update signal 36 to the replace memory 38 via an OR circuit 39. Further, the tag address 2 is supplied as an address signal from the processor address section 1 shown in FIG. 40 is the replacement determination circuit 2
8.
【0046】なお、上述の実施例においては、初期状態
での履歴データのビットを“0”とし、更新された或い
はリプレースされたブロックのビットを“1”としたが
、ビットの“1”と“0”は反転してもよい。[0046] In the above embodiment, the bit of the history data in the initial state is set to "0", and the bit of the updated or replaced block is set to "1". “0” may be inverted.
【0047】上述の実施例においては、共有メモリ共有
バスのマルチプロセッサシステムにおいて、キャッシュ
メモリに格納されているデータが他のプロセッサにより
更新されたときには、更新されたデータのブロックがな
るべくライトバックされないようにしたが、共有データ
の無効化に伴って発生する空き領域を積極的に使用する
ようにすることもできる。In the above embodiment, when data stored in the cache memory is updated by another processor in a shared memory shared bus multiprocessor system, the updated data block is prevented from being written back as much as possible. However, it is also possible to proactively use the free space that occurs when shared data is invalidated.
【0048】この場合、図2に示すブロック図において
、キャッシュ更新信号36に代えてキャッシュ無効化信
号を使用する。このキャッシュ無効化信号は、他のプロ
セッサからメモリアドレスバス120上にブロードキャ
ストされたアドレスと同じアドレスのデータをキャッシ
ュメモリ内に持っていることを示す信号である。In this case, in the block diagram shown in FIG. 2, a cache invalidation signal is used in place of the cache update signal 36. This cache invalidation signal is a signal indicating that the cache memory has data at the same address as the address broadcast on the memory address bus 120 from another processor.
【0049】リプレースメモリ24の内容は、キャッシ
ュメモリがライトヒットしたときに更新され、リプレー
スメモリ25の内容は、キャッシュミスでデータブロッ
クのリプレースが発生したときと、他のキャッシュメモ
リからのデータ無効化時におけるブロードキャストによ
り更新される。The contents of the replace memory 24 are updated when the cache memory has a write hit, and the contents of the replace memory 25 are updated when a data block is replaced due to a cache miss and when data from another cache memory is invalidated. Updated by broadcast in time.
【0050】リードヒットの場合、リードミスの場合、
ライトヒットの場合、ライトミスの場合のいずれの場合
も、キャッシュ更新信号36を使用する場合の動作と同
じであるので説明は省略する。In case of read hit, in case of read miss,
In both cases of write hit and write miss, the operation is the same as that when using the cache update signal 36, so a description thereof will be omitted.
【0051】また、他のプロセッサがキャッシュメモリ
114の、キャッシュメモリ104と共有するデータに
対して書き込みを行った場合も、キャッシュ更新信号3
6を使用する場合の動作と殆ど同じであるが、リプレー
スメモリ25への書き込み動作が異なっている。すなわ
ち、キャッシュメモリがヒットすると、キャッシュ無効
化信号がアサートし、このアサートで、キャッシュメモ
リに格納されているデータが他のプロセッサにより無効
化されたことを知り、無効化されたブロックへ積極的に
データをロードするため、リプレースメモリ24の内容
を“0”にクリアする。[0051] Also, when another processor writes data in the cache memory 114 that is shared with the cache memory 104, the cache update signal 3
The operation is almost the same as that when using the memory card 6, but the write operation to the replacement memory 25 is different. That is, when the cache memory is hit, the cache invalidation signal is asserted, and with this assertion, it is learned that the data stored in the cache memory has been invalidated by another processor, and the cache invalidation signal is actively used to access the invalidated block. In order to load data, the contents of the replace memory 24 are cleared to "0".
【0052】このように、他のプロセッサにより無効化
されたデータのブロックのビットを“0”にセットし、
“1”のビットのブロックに比べて優先的に無効化され
たブロックへ新しいデータをロードすることにより、キ
ャッシュメモリを効率よく使用することができる。In this way, the bits of the blocks of data invalidated by other processors are set to "0",
The cache memory can be used efficiently by loading new data into invalidated blocks preferentially compared to blocks with "1" bits.
【0053】また、どのブロックの履歴データも“1”
になる場合の動作も、キャッシュ更新信号36を使用す
る場合の動作と同じである。[0053] Also, the history data of any block is "1".
The operation when the cache update signal 36 is used is the same as the operation when the cache update signal 36 is used.
【0054】なお、上述の実施例においては、他のプロ
セッサにより無効化されたデータのブロックのビットを
“0”にセットし、“1”のビットのブロックに比べて
優先的に無効化されたブロックへ新しいデータをロード
するようにとしたが、ビットの“1”と“0”は反転し
てもよい。[0054] In the above-described embodiment, the bits of blocks of data invalidated by other processors are set to "0", and the bits of blocks of data invalidated by other processors are prioritized compared to blocks with bits of "1". Although new data is loaded into the block, the bits "1" and "0" may be reversed.
【0055】[0055]
【発明の効果】以上に述べたように、本発明においては
、キャッシュメモリ内のキャッシュデータが変更された
ときに、履歴データの変更されたブロックに対応するビ
ットを、たとえば、“1”とし、キャッシュデータのリ
プレースの際には、たとえば、“0”とされているブロ
ックのキャッシュデータを優先的にリプレースすること
により、プロセッサにより変更されたブロックのデータ
は、キャッシュメモリから追い出される比率が低くなる
。これにより、ライトバックの回数を削減でき、キャッ
シュミスや共有バスを介したアクセスにおけるプロセッ
サの待ち時間が減り、システムのスループットが向上す
る。また、他のプロセッサにより無効化されたブロック
へ積極的にデータをロードすることにより、キャッシュ
メモリを効率よく使用することができる。更に、本発明
においては、履歴データのビットの状態を記憶するメモ
リを設けるだけでよいので、LRUやFIFOを使用し
たリプレース方法を採用した場合に比べて回路構成が簡
単になる。As described above, in the present invention, when the cache data in the cache memory is changed, the bit corresponding to the changed block of history data is set to "1", for example, When replacing cache data, for example, by preferentially replacing cache data in blocks that are set to "0", the ratio of data in blocks modified by the processor to be evicted from the cache memory will be lowered. . This reduces the number of write-backs, reduces cache misses and processor wait times for accesses via the shared bus, and improves system throughput. In addition, cache memory can be used efficiently by actively loading data into blocks that have been invalidated by other processors. Furthermore, in the present invention, since it is only necessary to provide a memory for storing the state of bits of history data, the circuit configuration is simpler than when a replacement method using LRU or FIFO is adopted.
【図1】 本発明が適用されるキャッシュメモリの模
式図を示す。FIG. 1 shows a schematic diagram of a cache memory to which the present invention is applied.
【図2】 図1のキャッシュメモリにおいて使用され
るリプレース回路の構成例を示すブロック図である。2 is a block diagram showing an example of the configuration of a replacement circuit used in the cache memory of FIG. 1. FIG.
【図3】 本発明が適用される共有メモリ共有バスの
マルチプロセッサシステムの全体構成を示すブロック図
である。FIG. 3 is a block diagram showing the overall configuration of a shared memory shared bus multiprocessor system to which the present invention is applied.
【図4】 リードミスのときのリプレースメモリのデ
ータの遷移図である。FIG. 4 is a diagram showing the transition of data in a replacement memory when a read miss occurs.
【図5】 ライトヒットのときのリプレースメモリの
データの遷移図である。FIG. 5 is a diagram showing the transition of data in the replace memory when a write hit occurs.
【図6】 ライトミスのときのリプレースメモリのデ
ータの遷移図である。FIG. 6 is a transition diagram of data in a replacement memory when a write error occurs.
【図7】 共有データが更新されたときのリプレース
メモリのデータの遷移図である。FIG. 7 is a transition diagram of data in a replacement memory when shared data is updated.
【図8】 データが全て“1”のときのリプレースメ
モリのデータ遷移図である。FIG. 8 is a data transition diagram of the replacement memory when all data is “1”.
【図9】 リプレース回路の他の構成例を示すブロッ
ク図である。FIG. 9 is a block diagram showing another configuration example of a replacement circuit.
【図10】 共有データが無効化されたときのリプレ
ースメモリのデータの遷移図である。FIG. 10 is a transition diagram of data in a replacement memory when shared data is invalidated.
1 プロセッサアドレス部、2 タグアドレス、3
セットアドレス、4 ワードアドレス、5 リ
プレース回路、6 タグメモリ、7 バリッドメモ
リ、8データメモリ、8a メモリ本体、8b,8c
セレクタ、9 コンパレータ、11 シーケン
サ、12 データ選択信号、13 タグデータ、1
4 キャッシュデータ、15 アドレスセレクタ、
16 アドレス、21 プロセッサライト信号、2
2,23 AND回路、24 更新履歴データ用リ
プレースメモリ、25 リプレース履歴データ用リプ
レースメモリ、26 更新履歴データ、27リプレー
ス履歴データ、28 リプレース決定回路、29
リプレースデータ、30 リプレース信号、31
キャッシュヒット信号、32 キャッシュミス信号、
33,34 リプレース更新信号、35 クリア信
号、36 キャッシュ更新信号、37 OR回路、
38 リプレースメモリ、39 OR回路、40リ
プレース履歴データ、101 CPU、102 プ
ロセッサアドレスバス、103プロセッサデータバス、
104 キャッシュメモリ、105 キャッシュア
ドレスバス、106 キャッシュデータバス、107
プロセッサ制御信号線、108 メモリ制御バス
、109 プロセッサ、110 主記憶装置、11
1CPU、112 プロセッサアドレスバス、113
プロセッサデータバス、114 キャッシュメモ
リ、115 キャッシュアドレスバス、116 キ
ャッシュデータバス、117 プロセッサ制御信号線
、118 メモリ制御バス、119 プロセッサ、
120 メモリアドレスバス、121 メモリデー
タバス、122 制御信号線1 Processor address section, 2 Tag address, 3
Set address, 4 word address, 5 replacement circuit, 6 tag memory, 7 valid memory, 8 data memory, 8a memory body, 8b, 8c
Selector, 9 Comparator, 11 Sequencer, 12 Data selection signal, 13 Tag data, 1
4 cache data, 15 address selector,
16 address, 21 processor write signal, 2
2, 23 AND circuit, 24 Replace memory for update history data, 25 Replace memory for replace history data, 26 Update history data, 27 Replace history data, 28 Replace determination circuit, 29
Replace data, 30 Replace signal, 31
cache hit signal, 32 cache miss signal,
33, 34 Replace update signal, 35 Clear signal, 36 Cache update signal, 37 OR circuit,
38 replacement memory, 39 OR circuit, 40 replacement history data, 101 CPU, 102 processor address bus, 103 processor data bus,
104 cache memory, 105 cache address bus, 106 cache data bus, 107
Processor control signal line, 108 Memory control bus, 109 Processor, 110 Main storage device, 11
1 CPU, 112 Processor address bus, 113
processor data bus, 114 cache memory, 115 cache address bus, 116 cache data bus, 117 processor control signal line, 118 memory control bus, 119 processor,
120 memory address bus, 121 memory data bus, 122 control signal line
Claims (4)
セッサが設けられ、各プロセッサ毎にキャッシュメモリ
が設けられ、該キャッシュメモリに対する書込み動作が
複数に分割されたブロックに対して行われ書込みがあっ
たブロックのキャッシュデータの主記憶装置への書込み
がリプレース時に行われるキャッシュメモリのキャッシ
ュデータリプレース方法において、各ブロックに対応す
る複数ビットからなる履歴データを記憶するための履歴
データメモリを設け、初期状態においては履歴データの
ビットを第1の状態に設定し、キャッシュメモリ内のキ
ャッシュデータが変更され、或いは、リプレースされた
ときに当該ブロックに対応するビットを第2の状態に設
定し、他のプロセッサにより当該キャッシュメモリ内に
ある同じアドレスを有するデータが更新されたときに、
前記履歴データメモリの該当するビットを第2の状態に
設定し、キャッシュデータのリプレースの際には、履歴
データのビットが第1の状態に設定されているブロック
のキャッシュデータを優先的にリプレースすることを特
徴とするキャッシュメモリにおけるキャッシュデータリ
プレース方法。Claim 1: A plurality of processors are provided for a common main storage device, a cache memory is provided for each processor, and a write operation to the cache memory is performed to blocks divided into a plurality of blocks. In a cache data replacement method for a cache memory in which the cache data of the previous block is written to the main memory at the time of replacement, a history data memory is provided to store history data consisting of multiple bits corresponding to each block, and the initial In the state, bits of history data are set to the first state, and when cache data in the cache memory is changed or replaced, the bit corresponding to the block is set to the second state, and the other bits are set to the first state. When data with the same address in the cache memory is updated by the processor,
The corresponding bit of the history data memory is set to a second state, and when replacing cache data, the cache data of the block whose history data bit is set to the first state is preferentially replaced. A cache data replacement method in a cache memory, characterized in that:
セッサが設けられ、各プロセッサ毎にキャッシュメモリ
が設けられ、該キャッシュメモリに対する書込み動作が
複数に分割されたブロックに対して行われ書込みがあっ
たブロックのキャッシュデータの主記憶装置への書込み
がリプレース時或いはキャッシュメモリへの書込み毎に
行われるキャッシュメモリのキャッシュデータリプレー
ス方法において、各ブロックに対応する複数ビットから
なる履歴データを記憶するための履歴データメモリを設
け、初期状態においては履歴データのビットを第1の状
態に設定し、前記プロセッサの書込みにより当該ブロッ
クに対応するビットを第2の状態に設定し、他のプロセ
ッサにより当該キャッシュメモリ内にある同じアドレス
を有するデータが更新されたときに、前記履歴データメ
モリの該当するビットを第1の状態に設定し、キャッシ
ュデータのリプレースの際には、履歴データのビットが
第1の状態に設定されているブロックのキャッシュデー
タを優先的にリプレースすることを特徴とするキャッシ
ュメモリにおけるキャッシュデータリプレース方法。2. A plurality of processors are provided for a common main storage device, a cache memory is provided for each processor, and write operations to the cache memory are performed to blocks divided into a plurality of blocks. To store history data consisting of multiple bits corresponding to each block in a cache data replacement method of a cache memory in which writing of cache data of a block to the main storage device is performed at the time of replacement or every time writing to the cache memory A history data memory is provided, in which the bits of the history data are set to a first state in the initial state, the bits corresponding to the block are set to the second state by writing by the processor, and the bits of the history data are set to the second state by writing by the processor, and the cache is When data having the same address in memory is updated, the corresponding bit in the history data memory is set to the first state, and when replacing cache data, the history data bit is set to the first state. A cache data replacement method in a cache memory, characterized in that cache data of a block set in a state is replaced preferentially.
セッサが設けられ、各プロセッサ毎にキャッシュメモリ
が設けられ、該キャッシュメモリに対する書込み動作が
複数に分割されたブロックに対して行われ書込みがあっ
たブロックのキャッシュデータの主記憶装置への書込み
がリプレース時に行われるキャッシュメモリのキャッシ
ュデータリプレース装置において、各ブロックに対応す
る複数ビットからなる履歴データを記憶するための履歴
データメモリであって初期状態においては履歴データの
ビットが第1の状態に設定されている履歴データメモリ
と、キャッシュメモリ内のキャッシュデータの変更を示
す信号或いはリプレースを示す信号を検出して前記履歴
データメモリの当該ブロックに対応するビットを第2の
状態に設定する手段と、他のプロセッサにより当該キャ
ッシュメモリ内にある同じアドレスを有するデータが更
新されたことを示す信号を検出して前記履歴データメモ
リの該当するビットを第2の状態に設定する手段と、キ
ャッシュデータのリプレースの際に前記履歴データメモ
リの内容を判別し第1の状態にあるビットに基づいて優
先的にキャッシュデータをリプレースするブロックを決
定する手段とを設けたことを特徴とするキャッシュメモ
リにおけるキャッシュデータリプレース装置。3. A plurality of processors are provided for a common main storage device, a cache memory is provided for each processor, and a write operation to the cache memory is performed to blocks divided into a plurality of blocks. In a cache data replacement device for a cache memory in which the cache data of the previous block is written to the main storage device at the time of replacement, this is a history data memory for storing history data consisting of multiple bits corresponding to each block. In the state, a history data memory in which bits of history data are set to the first state, and a signal indicating a change in cache data in the cache memory or a signal indicating replacement are detected and the corresponding block of the history data memory is set to the first state. means for setting a corresponding bit to a second state; and means for detecting a signal indicating that data having the same address in the cache memory has been updated by another processor and setting the corresponding bit in the history data memory. means for determining the contents of the history data memory when replacing cache data, and determining a block to preferentially replace cache data based on the bits in the first state; A cache data replacement device in a cache memory, characterized in that it is provided with a cache data replacement device.
セッサが設けられ、各プロセッサ毎にキャッシュメモリ
が設けられ、該キャッシュメモリに対する書込み動作が
複数に分割されたブロックに対して行われ書込みがあっ
たブロックのキャッシュデータの主記憶装置への書込み
がリプレース時或いはキャッシュメモリへの書込み毎に
行われるキャッシュメモリのキャッシュデータリプレー
ス装置において、各ブロックに対応する複数ビットから
なる履歴データを記憶するための履歴データメモリであ
って初期状態においては履歴データのビットが第1の状
態に設定されている履歴データメモリと、前記プロセッ
サの書込みを示す信号を検出して前記履歴データメモリ
の当該ブロックに対応する履歴データのビットを第2の
状態に設定する手段と、他のプロセッサにより当該キャ
ッシュメモリ内にある同じアドレスを有するデータが更
新されたことを示す信号を検出して前記履歴データメモ
リの該当するビットを第1の状態に設定する手段と、キ
ャッシュデータのリプレースの際に前記履歴データメモ
リの内容を判別し第1の状態にあるビットに基づいて優
先的にキャッシュデータをリプレースするブロックを決
定する手段とを設けたことを特徴とするキャッシュメモ
リにおけるキャッシュデータリプレース装置。4. A plurality of processors are provided for a common main storage device, a cache memory is provided for each processor, and a write operation to the cache memory is performed to blocks divided into a plurality of blocks. To store history data consisting of multiple bits corresponding to each block in a cache data replacement device for a cache memory in which writing of cache data of a block to the main storage device is performed at the time of replacement or every time writing to the cache memory. a history data memory in which bits of the history data are set to a first state in an initial state, and a signal indicating writing by the processor is detected to correspond to the corresponding block of the history data memory. means for setting a bit of historical data to a second state; and means for detecting a signal indicating that data having the same address in the cache memory has been updated by another processor to update a bit of the historical data in the corresponding historical data memory. means for setting bits to a first state; and determining a block to replace cache data preferentially based on the bits in the first state by determining the contents of the history data memory when replacing cache data. 1. A cache data replacement device in a cache memory, characterized in that a cache data replacement device is provided in a cache memory.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3080050A JPH04315235A (en) | 1991-04-12 | 1991-04-12 | Cache data replace method and cache data replace device for cache memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3080050A JPH04315235A (en) | 1991-04-12 | 1991-04-12 | Cache data replace method and cache data replace device for cache memory |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH04315235A true JPH04315235A (en) | 1992-11-06 |
Family
ID=13707417
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3080050A Pending JPH04315235A (en) | 1991-04-12 | 1991-04-12 | Cache data replace method and cache data replace device for cache memory |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH04315235A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5535361A (en) * | 1992-05-22 | 1996-07-09 | Matsushita Electric Industrial Co., Ltd. | Cache block replacement scheme based on directory control bit set/reset and hit/miss basis in a multiheading multiprocessor environment |
WO2012124034A1 (en) * | 2011-03-11 | 2012-09-20 | 富士通株式会社 | Computation processing device and computation processing device control method |
JP2018133038A (en) * | 2017-02-17 | 2018-08-23 | Necプラットフォームズ株式会社 | Information processing device, control device, control method, and program |
-
1991
- 1991-04-12 JP JP3080050A patent/JPH04315235A/en active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5535361A (en) * | 1992-05-22 | 1996-07-09 | Matsushita Electric Industrial Co., Ltd. | Cache block replacement scheme based on directory control bit set/reset and hit/miss basis in a multiheading multiprocessor environment |
WO2012124034A1 (en) * | 2011-03-11 | 2012-09-20 | 富士通株式会社 | Computation processing device and computation processing device control method |
JP5574039B2 (en) * | 2011-03-11 | 2014-08-20 | 富士通株式会社 | Arithmetic processing device and control method of arithmetic processing device |
US9430397B2 (en) | 2011-03-11 | 2016-08-30 | Fujitsu Limited | Processor and control method thereof |
JP2018133038A (en) * | 2017-02-17 | 2018-08-23 | Necプラットフォームズ株式会社 | Information processing device, control device, control method, and program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5584013A (en) | Hierarchical cache arrangement wherein the replacement of an LRU entry in a second level cache is prevented when the cache entry is the only inclusive entry in the first level cache | |
US5091851A (en) | Fast multiple-word accesses from a multi-way set-associative cache memory | |
US5465342A (en) | Dynamically adaptive set associativity for cache memories | |
US5826052A (en) | Method and apparatus for concurrent access to multiple physical caches | |
US5155824A (en) | System for transferring selected data words between main memory and cache with multiple data words and multiple dirty bits for each address | |
US8782348B2 (en) | Microprocessor cache line evict array | |
US6523091B2 (en) | Multiple variable cache replacement policy | |
US5787478A (en) | Method and system for implementing a cache coherency mechanism for utilization within a non-inclusive cache memory hierarchy | |
US5715427A (en) | Semi-associative cache with MRU/LRU replacement | |
US6212605B1 (en) | Eviction override for larx-reserved addresses | |
US5668972A (en) | Method and system for efficient miss sequence cache line allocation utilizing an allocation control cell state to enable a selected match line | |
JPH09190382A (en) | Contention cache for computer memory system | |
US6157980A (en) | Cache directory addressing scheme for variable cache sizes | |
US20060036811A1 (en) | Method for software controllable dynamically lockable cache line replacement system | |
US8621152B1 (en) | Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access | |
US20050240731A1 (en) | Managing a multi-way associative cache | |
US5809526A (en) | Data processing system and method for selective invalidation of outdated lines in a second level memory in response to a memory request initiated by a store operation | |
US6240489B1 (en) | Method for implementing a pseudo least recent used (LRU) mechanism in a four-way cache memory within a data processing system | |
JP3463292B2 (en) | Method and system for selecting an alternative cache entry for replacement in response to a conflict between cache operation requests | |
US5809537A (en) | Method and system for simultaneous processing of snoop and cache operations | |
US5905997A (en) | Set-associative cache memory utilizing a single bank of physical memory | |
US5675765A (en) | Cache memory system with independently accessible subdivided cache tag arrays | |
US5953747A (en) | Apparatus and method for serialized set prediction | |
US6202128B1 (en) | Method and system for pre-fetch cache interrogation using snoop port | |
US6049849A (en) | Imprecise method and system for selecting an alternative cache entry for replacement in response to a conflict between cache operation requests |