JP5435617B2 - Cache memory control circuit and cache memory management method - Google Patents
Cache memory control circuit and cache memory management method Download PDFInfo
- Publication number
- JP5435617B2 JP5435617B2 JP2009011574A JP2009011574A JP5435617B2 JP 5435617 B2 JP5435617 B2 JP 5435617B2 JP 2009011574 A JP2009011574 A JP 2009011574A JP 2009011574 A JP2009011574 A JP 2009011574A JP 5435617 B2 JP5435617 B2 JP 5435617B2
- Authority
- JP
- Japan
- Prior art keywords
- address
- directory
- flag
- cache memory
- entry
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0864—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/601—Reconfiguration of cache memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
本発明はキャッシュメモリ制御回路およびキャッシュメモリ管理方法に関する。 The present invention relates to a cache memory control circuit and a cache memory management method.
共有メモリ型マルチプロセッサシステムには、キャッシュメモリを有する複数のプロセッサ間のコヒーレンシを保障するコヒーレンシ制御回路がある。コヒーレンシ制御回路は、プロセッサのキャッシュメモリの状態を格納するディレクトリやコピーキャッシュ等を有する。
また、共有メモリ型マルチプロセッサシステムにおいては、N(Nは正整数)ウェイセットアソシアティブ方式のディレクトリを搭載する場合がある。このディレクトリに、フルアソシアティブ方式を採用した場合は、キャッシュメモリのキャッシュラインに記憶するアドレスの制限がなくなる一方、必要なハードウェア量も増大してしまう。そのため、複数レベルのキャッシュメモリによるNウェイセットアソシアティブ方式が用いられることが多い。
The shared memory multiprocessor system includes a coherency control circuit that ensures coherency between a plurality of processors having a cache memory. The coherency control circuit includes a directory for storing the state of the cache memory of the processor, a copy cache, and the like.
In a shared memory multiprocessor system, an N (N is a positive integer) wayset associative directory may be mounted. When the full associative method is adopted for this directory, there is no restriction on the address stored in the cache line of the cache memory, and the necessary hardware amount also increases. Therefore, an N-way set associative method using a plurality of levels of cache memory is often used.
しかし、Nウェイセットアソシアティブ方式におけるウェイ数と、キャッシュラインに対応し、インデックスとなるアドレス(以下、「セットアドレス」とする)数は固定的であった。一方、システムやアプリケーションによって、キャッシュメモリを有効に利用することができるウェイ数やセットアドレス数が異なる場合がある。そのため、ウェイ数やセットアドレス数が固定されている場合、システムやアプリケーションによってはキャッシュメモリが有効に利用されないことがあった。つまり、システムやアプリケーショによって、セットアドレス数を多くしたい場合やウェイ数を多くしたい場合などがある。
また、共有メモリ型マルチプロセッサシステムは、複数のプロセッサから構成され、これらのプロセッサのそれぞれが実行するアプリケーションの処理が混在するため、アプリケーションの動作状態に応じて、ウェイ数やセットアドレス数を変更することができるディレクトリを備えることが望まれている。
However, the number of ways in the N-way set associative method and the number of addresses (hereinafter referred to as “set addresses”) corresponding to the cache lines are fixed. On the other hand, the number of ways and set addresses that can effectively use the cache memory may differ depending on the system or application. Therefore, when the number of ways and the number of set addresses are fixed, the cache memory may not be used effectively depending on the system or application. In other words, depending on the system and application, there are cases where it is desired to increase the number of set addresses or the number of ways.
In addition, the shared memory multiprocessor system is composed of a plurality of processors, and application processes executed by these processors coexist. Therefore, the number of ways and set addresses are changed according to the operation state of the application. It is desirable to have a directory that can be used.
これらのことから、セットアソシアティブ方式のディレクトリにおいて、キャッシュメモリの使用状況に応じて、ハードウェアにおいて動的にかつ簡易的にキャッシュメモリの利用方法を変更することができれば、キャッシュメモリを有効に利用することができると考えられる。
なお、特許文献1、2、4、5には、セットアソシアティブ方式のキャッシュメモリ制御に関する技術が開示されている。
また、特許文献3には、キャッシュメモリのタグ部に対するセットアドレスを最適に設定する技術が開示されている。
For these reasons, in a set associative directory, if the cache memory usage method can be changed dynamically and simply in hardware according to the cache memory usage status, the cache memory is effectively used. It is considered possible.
Patent Document 3 discloses a technique for optimally setting a set address for a tag portion of a cache memory.
背景技術として説明したように、セットアソシアティブ方式においては、ウェイ数やセットアドレス数が固定されている場合は、キャッシュメモリが有効に利用されないという問題があった。 As described in the background art, the set associative method has a problem that the cache memory is not effectively used when the number of ways and the number of set addresses are fixed.
本発明の目的は、上述した課題を解決するためになされたものであり、キャッシュメモリを有効に利用することができるキャッシュメモリ制御回路およびキャッシュメモリ管理方法を提供することにある。 An object of the present invention is to solve the above-described problems, and provides a cache memory control circuit and a cache memory management method capable of effectively using a cache memory.
本発明にかかるキャッシュメモリ制御回路は、セットアソシアティブ方式によって、メインメモリに記憶されるデータをキャッシュメモリに記憶するキャッシュメモリ制御回路であって、前記キャッシュメモリに記憶するデータの前記メインメモリ上のアドレスを示すアドレス情報を含み、セットアドレスのそれぞれに対応するエントリと、前記メインメモリ上のアドレス値であって、前記セットアドレス以外の値のいずれかに応じて、エントリ内をさらに区分して前記アドレス情報を格納するか否かを示し、前記エントリのそれぞれに対応するフラグを格納するキャッシュ情報格納部を備えたものである。 A cache memory control circuit according to the present invention is a cache memory control circuit for storing data stored in a main memory in a cache memory by a set associative method, wherein an address on the main memory of data stored in the cache memory And the address corresponding to each of the set addresses and the address value on the main memory, and the address is further divided into entries according to any of the values other than the set address. A cache information storage unit is provided for indicating whether or not to store information and storing a flag corresponding to each of the entries.
本発明により、キャッシュメモリを有効に利用することができるキャッシュメモリ制御回路およびキャッシュメモリ管理方法を提供することができる。 According to the present invention, it is possible to provide a cache memory control circuit and a cache memory management method capable of effectively using a cache memory.
以下、図面を参照して本発明の実施の形態について説明する。
図1は、本発明の実施の形態にかかるマルチプロセッサシステムの全体構成を示すブロック図である。
マルチプロセッサシステムは、セル11、12を備える。
Embodiments of the present invention will be described below with reference to the drawings.
FIG. 1 is a block diagram showing an overall configuration of a multiprocessor system according to an embodiment of the present invention.
The multiprocessor system includes
セル11は、キャッシュメモリ31、32を有するプロセッサ21、22、メモリ71及びディレクトリ61を有するコヒーレンシ制御回路51を含む。また、プロセッサ21、22やメインメモリ71間は、相互に接続手段41、42、43によって接続される。
プロセッサ21、22は、メインメモリ71、72に記憶されるデータをキャッシュメモリ31、32に記憶して、そのデータに基づいて演算処理を実行する。
キャッシュメモリ31、32は、メインメモリ71、72のデータを記憶する。
コヒーレンシ制御回路51は、プロセッサ間のコヒーレンシを保証するための制御を行う。また、コヒーレンシ制御回路51は、セル12のコヒーレンシ制御回路52と接続手段81によって接続され、セル12のプロセッサ23、24及びメインメモリ72へのアクセスが可能である。接続手段41、42、43、81は、例えば、バスである。
ディレクトリ61は、セットアソシアティブ方式のディレクトリであり、キャッシングされるデータのメインメモリ71上におけるアドレスを示すアドレス情報をキャッシュラインに対応するセットアドレス毎に格納する。また、アドレス情報はセットアドレスのそれぞれに対応する単位を1エントリとし、ディレクトリ61にはセットアドレス数のエントリが格納される。なお、ディレクトリ61は、キャッシュ情報格納部に相当する。
メインメモリ71は、プロセッサ21、22、23、24によって共有可能なメモリである。
The
The
The
The
The
The
セル12は、キャッシュメモリ33、34を有するプロセッサ23、24、メモリ72及びディレクトリ62を有するコヒーレンシ制御回路52を含む。
なお、セル12の構成要素は、セル11と同様であるため、説明を省略する。
ここで、ディレクトリ61、62は、セットアソシアティブ方式のディレクトリであるため、新たにキャッシュメモリにデータを記憶する場合にディレクトリ61、62に空きがない場合はスワップを行う必要がある。
本実施の形態におけるスワップとは、セットアソシアティブ方式を採用するディレクトリにおいて生じる処理である。詳しくは、新たにキャッシュメモリに記憶するデータのアドレス情報を、ディレクトリに対して格納する必要が生じたときに、これを格納する領域がディレクトリに存在しない場合は、ディレクトリに既に格納されているアドレス情報のいずれかを排除し、新たなアドレス情報を格納するための空き領域を生成する。この既に格納されている情報を排除する処理がスワップである。このとき、ディレクトリからスワップしたアドレス情報に対応し、キャッシュメモリに記憶されているデータについても、コヒーレンシを保つために無効化を行う。
The
In addition, since the component of the
Here, since the
Swap in the present embodiment is processing that occurs in a directory that employs the set associative method. Specifically, when it becomes necessary to store the address information of the data to be newly stored in the cache memory in the directory, if the directory does not have an area for storing it, the address already stored in the directory Any of the information is excluded and a free area for storing new address information is generated. The process of removing this already stored information is swap. At this time, the data stored in the cache memory corresponding to the address information swapped from the directory is also invalidated in order to maintain coherency.
図2は、本発明の実施の形態にかかるコヒーレンシ制御回路の内部構成を示すブロック図である。ここでは、セル11のコヒーレンシ制御回路51について説明する。なお、セル12のコヒーレンシ制御回路52の構成要素は、コヒーレンシ制御回路51と同様であるため説明を省略する。
コヒーレンシ制御回路51は、ディレクトリ61、トランザクション制御部101、ディレクトリアクセス制御部102、ディレクトリ構成変更判定部105及びフラグ制御機能107を有するディレクトリ索引更新制御部106を備える。
ディレクトリ61は、HM0(103)及びHM1(104)の2つのハードマクロを含む。ハードマクロは、セットアドレス数のエントリから構成され、1つのハードマクロには2ウェイのアドレス情報が入る。2つのハードマクロを含むディレクトリ61は、合計4ウェイのアドレス情報を格納する。
FIG. 2 is a block diagram showing an internal configuration of the coherency control circuit according to the embodiment of the present invention. Here, the
The
The
トランザクション制御部101は、プロセッサ21、22、セル12及びメインメモリ72とのトランザクションの送受信を行う。
ここで、トランザクションは、例えば、プロセッサ21がメインメモリ71の任意のアドレスに記憶されているデータにアクセスする場合、このアドレスを指定してトランザクション制御部101に対して出力される。これに応じて、トランザクション制御部101は、後に詳述するコヒーレンシ制御回路51の処理の結果に基づいて、任意のアドレスに記憶されているデータをメインメモリ71もしくはキャッシュメモリ31、32、33、34のいずれから取得したらよいかを答えるトランザクションをプロセッサ21に出力する。
なお、トランザクション制御101は、ディレクトリ61に関するトランザクション、つまり、メインメモリ71のアクセスに関するトランザクションを受信した場合に、このトランザクションをディレクトリアクセス制御部102に出力する。
The
Here, for example, when the
When the
その他に、トランザクション制御101は、ディレクトリ索引更新制御部106からスワップ発行指示を受けると、スワップ発行指示が示すアドレスのキャッシュ無効化トランザクションを生成してプロセッサ21、22やセル12を介してプロセッサ23,24に出力する。キャッシュ無効化トランザクションの出力を受けたプロセッサは、キャッシュメモリに記憶され、キャッシュ無効化トランザクションが示すアドレスのデータを無効化する。
In addition, when the
ディレクトリアクセス制御部102は、トランザクション制御部101から受信したトランザクションに含まれるアドレスがディレクトリ61に管理されているかどうかを調べるために、このアドレスに対応するエントリを読み出すための読み出し指示をHM0(103)及びHM1(104)に出力する。また、ディレクトリアクセス制御部102は、ディレクトリ索引更新制御部106からディレクトリ更新指示を受けた場合、ディレクトリ61に書き込みを行う等のディレクトリ61を管理する制御を行う。
HM0(103)及びHM1(104)は、ハードマクロであり、ディレクトリアクセス制御部102から、読み出し指示の出力を受けた場合、エントリの読み出しデータをディレクトリ索引更新制御部106に出力する。
In order to check whether the address included in the transaction received from the
HM0 (103) and HM1 (104) are hard macros, and when the read instruction is output from the directory
ディレクトリ構成変更判定部105は、ディレクトリアクセス制御部102における競合情報やディレクトリ索引更新制御部106のエントリの読み出しデータ等に基づいて、ハードマクロの使用方法を変更するかどうかの判定を行う。その判断の結果に応じて、ディレクトリ構成変更判定部105は、ディレクトリ索引更新制御部106に変更指示を出力する。なお、競合情報については、後に詳述する。
The directory structure
ディレクトリ索引更新制御部106は、HM0(103)及びHM1(104)から出力されたエントリの読み出しデータに基づいて、トランザクション制御部101が受けたトランザクションに含まれるアドレスの索引結果をトランザクション制御部101に出力する。また、ディレクトリ索引更新制御部106は、ディレクトリ61に書き込むディレクトリ更新データを生成して、ディレクトリアクセス制御部102にディレクトリ更新データと共にディレクトリ更新指示を出力する。
The directory index
その他に、ディレクトリ索引更新制御部106は、ディレクトリ61に空きがなく、スワップが必要な場合、スワップするアドレス情報に対応するデータのキャッシュ無効化トランザクションをプロセッサ21、22、23,24に出力するように指示するスワップ発行指示をトランザクション制御部101に出力する。また、ディレクトリ索引更新制御部106は、エントリの読み出しデータをディレクトリ構成変更判定部105に出力する。
In addition, the directory index
フラグ制御機能107は、ディレクトリ構成変更判定部105からの変更指示やエントリの読み出しデータに含まれるフラグの状態に基づいて、スワップするアドレス情報の選択や、ディレクトリ61に新たなアドレス情報を登録するウェイの選択の方法を変更する制御を行う。
詳しくは、ディレクトリ61に新たなアドレス情報を登録するときに、フラグが無効を示している、言い換えると、全てのハードマクロをウェイ方向に使用することを示している。この場合、1エントリに含まれるHM0(103)及びHM1(104)の全4ウェイの中から4ウェイセットアソシアティブ方式により、LRU法等に従って、アドレス情報を登録するウェイを選択する。
フラグが有効を示している、言い換えると、全てのハードマクロをセットアドレス方向に使用することを示している。この場合、1エントリに含まれるHM0(103)及びHM1(104)のそれぞれを別々の2ウェイとして扱い、どちらかの2ウェイの中から2ウェイセットアソシアティブ方式により、LRU法等に従って、アドレス情報を登録するウェイを選択する。なお、フラグが有効な場合、HM0(103)及びHM1(104)は、セットアドレスに1bitの拡張セットアドレスを加えたアドレスをセットアドレスとみなして使用する。フラグについては、後に詳述するが、エントリ毎にその値を判断することができる。
The
Specifically, when new address information is registered in the
The flag indicates that it is valid, in other words, indicates that all hard macros are used in the set address direction. In this case, each of HM0 (103) and HM1 (104) included in one entry is treated as two separate ways, and address information is obtained from either one of the two ways by a two-way set associative method according to the LRU method or the like. Select the way to register. When the flag is valid, the HM0 (103) and the HM1 (104) use an address obtained by adding a 1-bit extended set address to the set address as a set address. As will be described in detail later, the value of the flag can be determined for each entry.
図3は、本発明の実施の形態にかかるディレクトリ内容の概念図である。ディレクトリ61、62はメインメモリ71、72のキャッシュラインに対応するアドレス情報を1エントリとして、セットアドレス数のエントリを格納する。図3は、ディレクトリ61の1エントリあたりのHM0(103)のウェイ0をディレクトリ206として説明するものである。つまり、ディレクトリ206は、ディレクトリ61の1エントリのうちの1ウェイ当たりの構成を示す。なお、その他のエントリ、ハードマクロ及びウェイにおけるディレクトリ206についても構成は同様であるため説明を省略する。ディレクトリ206は、アドレス情報に相当する。
FIG. 3 is a conceptual diagram of directory contents according to the embodiment of the present invention. The
ディレクトリ206は、キーアドレス201、ステータス情報203、エージェント情報204及びフラグ205を含む。
セットアドレス202は、キャッシュメモリ31、32、33、34に記憶されるデータのメインメモリ71上におけるアドレスのうちの所定のビット部分の値を格納する。ディレクトリ61のエントリのインデックスとして用いられる。セットアドレス202に基づいて、トランザクションに含まれるアドレスに対応するエントリを特定することで、ディレクトリ206の索引や更新を行うことができる。
The
The
キーアドレス201は、キャッシュメモリ31、32、33、34に記憶されるデータのメインメモリ71上におけるアドレスからセットアドレス202を除いたビット部分の値を格納する。
本実施の形態においては、アドレスの最上位bit番号をm、キーアドレスの最下位bit番号をkとすると、アドレスはm:0、キーアドレスはm:k、セットアドレスはk−1:0となる。
ステータス情報203は、ディレクトリ206のキーアドレス201及びセットアドレス202から構成されるアドレスが示すデータのキャッシング状態を示す。ステータス情報206は、データがキャッシュメモリに記憶されているかどうかを示す値を格納する。
エージェント情報204は、アドレスが示すデータをキャッシングしているキャッシュメモリを有するプロセッサの位置を示す情報である。
The
In this embodiment, if the most significant bit number of the address is m and the least significant bit number of the key address is k, the address is m: 0, the key address is m: k, and the set address is k-1: 0. Become.
The
The
フラグ205は、ディレクトリ206が含まれるエントリにおけるハードマクロをウェイ方向もしくはセットアドレス方向のどちらで使用するかを示す。本実施の形態においては、エントリ内のいずれかのウェイのフラグが有効である場合に、フラグが有効であると判断し、そのエントリにおけるハードマクロの使用方法を変更する。
図4は、本発明の実施の形態にかかるフラグとキーアドレス値の関係を示す図である。
エントリ内の全てのフラグの値が0であり無効を示している場合、このエントリのHM0(103)及びHM1(104)を4ウェイのディレクトリ構成として使用する。
エントリ内のいずれかのフラグ205の値が1であり有効を示している場合、このエントリのHM0(103)はキーアドレス201の最下位アドレスbit kが0、HM1(104)はキーアドレス201の最下位アドレスbit kが1として、それぞれを2ウェイの構成として使用する。つまり、セットアドレスに加えて、最下位アドレスbit kの値に応じて、エントリを区分してアドレス情報を格納するようにする。
なお、本実施の形態におけるエントリとは、フラグの値に関係なく、ディレクトリ61におけるセットアドレス202の値が同じ4ウェイ分のデータを示す。また、フラグ205は、ウェイ単位でなく、エントリ単位で用意してもよい。
The
FIG. 4 is a diagram showing the relationship between the flag and the key address value according to the embodiment of the present invention.
When all the flag values in the entry are 0, indicating invalidity, the HM0 (103) and HM1 (104) of this entry are used as a 4-way directory structure.
If the value of any
The entry in the present embodiment indicates data for four ways having the
本発明の実施の形態にかかるコヒーレンシ制御回路の動作を示すフローチャートである。図5は、本発明の実施の形態にかかるコヒーレンシ制御回路の動作を示すフローチャートである。
まず、コヒーレンシ制御回路51のトランザクション制御部101は、プロセッサ2122やセル12からトランザクションの出力を受けた場合に、ディレクトリ61へのアクセスが必要なときは、このトランザクションをディレクトリアクセス制御部102に出力する。なお、ディレクトリ61へのアクセスが必要でないときは、トランザクションがメインメモリ72へのアクセスが示しているときとなる。この場合は、コヒーレンシ制御回路51は、コヒーレンシ制御回路52にトランザクションを転送する。
It is a flowchart which shows operation | movement of the coherency control circuit concerning embodiment of this invention. FIG. 5 is a flowchart showing the operation of the coherency control circuit according to the exemplary embodiment of the present invention.
First, when receiving a transaction output from the processor 2122 or the
ディレクトリアクセス制御部102は、トランザクション制御部101からトランザクションの出力を受けると、トランザクションアドレスに含まれるアドレスのセットアドレスに対応するエントリを読み出すために、このセットアドレスを指定して読み出し指示をHM0(103)及びHM1(104)に出力する。また、ディレクトリアクセス制御部102は、トランザクションをディレクトリ索引更新制御部106に出力する。
HM0(103)及びHM1(104)は、ディレクトリアクセス制御部102から読み出し指示の出力を受けると、指定されたセットアドレスに対応するエントリの読み出しデータをディレクトリ索引更新制御部106に出力する。
When the directory
When the HM0 (103) and the HM1 (104) receive a read instruction output from the directory
フラグ制御機能107は、HM0(103)とHM1(104)から出力されたエントリの読み出しデータに格納されたキーアドレス201とトランザクションに含まれるアドレスのキーアドレスが一致しているものを探す。
一致したものがなかった場合、ディレクトリ索引更新制御部106は、その旨をトランザクション制御部101に出力する。
この場合は、キャッシュメモリ31、32、33、34にトランザクションに含まれるアドレスのデータが記憶されてないことを示す。よって、トランザクション制御部101は、トランザクションの出力元に対して、メインメモリ71からデータを取得する旨のトランザクションを出力する。
The
If there is no match, the directory index
In this case, it indicates that the
一致したものがあった場合、ディレクトリ索引更新制御部106は、一致したウェイに含まれるステータス情報203やエージェント情報204をトランザクション制御部101に出力する。
この場合は、キャッシュメモリ31、32、33、34にトランザクションに含まれるアドレスのデータが記憶されていることを示す。
ここで、トランザクション制御部101は、ステータス情報203には、キャッシュメモリ31、32、33、34にキャッシングされたデータとメインメモリ71のデータの内容が一致しているかどうかを示す情報も格納することができる。これにより、ステータス情報203が一致を示している場合はメインメモリ71からデータを取得する旨を、ステータス情報203が一致を示していない場合はエージェント情報204が示すプロセッサのキャッシュメモリからデータを取得する旨のトランザクションを出力する。
まず、トランザクションの出力を受けると、上述したような索引制御が行われる(S301)。
If there is a match, the directory index
In this case, the
Here, the
First, when a transaction output is received, the above-described index control is performed (S301).
また、フラグ制御機能107は、エントリの読み出しデータのフラグ205を確認する(S302)。
フラグ205の値が0であり無効の場合、ディレクトリ索引更新制御部106は、ディレクトリ構成変更判定部105からのフラグ有効化指示を確認する(S304)。
フラグ有効化指示がなかった場合、ディレクトリ索引更新制御部106は、ディレクトリ61のHM0(103)とHM1(104)を同じセットアドレス制御とした4ウェイのディレクトリ更新制御を行う(S307)。そして、ディレクトリ索引更新制御部106は、ディレクトリ61に書き込むディレクトリ更新データを生成して、ディレクトリアクセス制御部102に、ディレクトリ更新データとディレクトリ更新指示を出力する。ディレクトリ更新指示の出力を受けたディレクトリアクセス制御部102は、ディレクトリ61にディレクトリ更新データを書き込む(S309)。ステップS309の処理により、例えば、新たにキャッシュメモリに記憶するデータのアドレス情報が登録される。
Further, the
When the value of the
When there is no flag validation instruction, the directory index
フラグ205の値が0であり無効の場合に、フラグ有効化指示があったとき(S306)、ディレクトリ索引更新制御部106は、HM0(103)とHM1(104)を異なるセットアドレスとした2ウェイのディレクトリ更新制御を行う(S308)。そして、ディレクトリ索引更新制御部106は、フラグを有効にするディレクトリ更新データを生成して、ディレクトリアクセス制御部102に、ディレクトリ更新データとディレクトリ更新指示を出力する。ディレクトリ更新指示の出力を受けたディレクトリアクセス制御部102は、ディレクトリ61にディレクトリ更新データを書き込む(S309)。
なお、ステップS307、S308におけるにディレクトリ更新制御の動作については、後に詳述する。
When the
The operation of directory update control in steps S307 and S308 will be described in detail later.
一方、フラグ205の値が1であり有効の場合、ディレクトリ索引更新制御部106は、ディレクトリ構成変更判定部105からのフラグ無効化指示を確認する(S303)。
フラグ無効化指示がなかった場合、ディレクトリ索引更新制御部106は、フラグ205は有効のままとして(S306)、HM0(103)とHM1(104)を異なるセットアドレスとしたディレクトリ更新制御を行う(S308)。そして、上述と同様に、ディレクトリ更新をする(S309)。
On the other hand, when the value of the
When there is no flag invalidation instruction, the directory index
フラグ205の値が1であり有効な場合に、フラグ無効化指示があったとき(S305)、ディレクトリ索引更新制御部106は、HM0(103)とHM1(104)を同じセットアドレス制御としたディレクトリ更新制御を行う(S307)。そして、ディレクトリ索引更新制御部106は、フラグを無効にするディレクトリ更新データを生成して、ディレクトリアクセス制御部102に、ディレクトリ更新データとディレクトリ更新指示を出力する。そして、上述と同様に、ディレクトリ更新をする(S309)。
When the
図6は、本発明の実施の形態にかかる異なるセットアドレス制御とした場合のディレクトリ更新制御を示すフローチャートである。図5におけるステップS308の処理について示したものである。ここでは、例として、キーアドレス201の最下位bit kの値が0であるアドレスのトランザクションを処理する場合について説明する。
FIG. 6 is a flowchart showing directory update control when different set address control is used according to the embodiment of the present invention. It shows about the process of step S308 in FIG. Here, as an example, a case will be described in which a transaction at an address in which the value of the least significant bit k of the
まず、フラグ制御機能107は、エントリの読み出しデータにトランザクションのキーアドレス201と一致するキーアドレスを格納するウェイがあるかを確認する(S401)。
一致するウェイがあった場合、フラグ制御機能107は、トランザクションに含まれるアドレスのキーアドレス201の最下位bit kの値が0であるため、bit kの値が0として扱われるHM0(103)に一致したウェイがあるかどうかを確認する(S402)。
First, the
If there is a matching way, the
HM0(103)に一致するウェイがあった場合、フラグ制御機能107は、そのウェイを選択する(S403)。
そして、ディレクトリ索引更新制御部106は、そのウェイを更新するためのディレクトリ更新データを生成して(S411)、ディレクトリ61の更新を行う。
ここで、一致するウェイがあった場合であっても、そのウェイのエージェント情報204が示すプロセッサと異なるプロセッサからのトランザクションであったときは、エージェント情報204の更新が必要となるため、ウェイの更新を行っている。なお、ウェイの内容に変更が全くない場合には、ステップS411を行わないようにしてもよい。後に詳述する図7のステップS507についても同様である。
If there is a way that matches HM0 (103), the
Then, the directory index
Here, even if there is a matching way, if the transaction is from a processor different from the processor indicated by the
一方、一致するウェイがあった場合であっても、bit kの値が1として扱われるHM1(104)に一致したウェイがあったときは、ディレクトリ61を更新する際には一致したHM1(104)のウェイを無効化して、HM0(103)に移動させる必要がある。その場合、ディレクトリ索引更新制御部106は、HM1(104)のアドレス一致したウェイを無効化するためのディレクトリ書き込みデータの作成(S410)と、HM0(103)を更新するディレクトリ書き込みデータの作成を並行して行う。
ここで、このHM0(103)を更新するディレクトリ書き込みデータの作成は、ディレクトリ61に一致するアドレスがなかった場合と同様のステップS404以降の処理によって行う。
On the other hand, even if there is a way that matches, if there is a way that matches HM1 (104) in which the value of bit k is treated as 1, then when the
Here, the creation of the directory write data for updating the HM0 (103) is performed by the processing after step S404 similar to the case where there is no matching address in the
一致するウェイがなかった場合、フラグ制御機能107は、更新対象となるHM0(103)に、使用されていないウェイがあるかどうかを調べる(S404)。
使用されていないウェイがある場合、フラグ制御機能107は、空きウェイを選択する(S405)。
そして、ディレクトリ索引更新制御部106は、そのウェイに対するディレクトリ書き込みデータを作成して(S411)、ディレクトリ61の更新を行う。
使用されていないウェイがない場合、フラグ制御機能107は、更新対象となるHM0(103)に、HM1(104)に格納されるべきウェイ、つまりbit kの値が1であるウェイがあるかどうかを調べる(S406)。
If there is no matching way, the
If there is a way that is not used, the
Then, the directory index
If there is no unused way, the
bit kの値が1であるウェイがある場合、フラグ制御機能107は、そのウェイを選択する(S408)。
bit kの値が1であるウェイがなかった場合、フラグ制御機能107は、HM0(103)からLRU法等により書き込むウェイを選択する(S407)。また、ディレクトリ索引更新制御部106は、ステップS407もしくはS408において選択したウェイに格納されたアドレスのキャッシュを無効化するために、そのアドレスを含んだスワップ発行指示をトランザクション制御部101に出力する(S409)。そして、選択したウェイを更新するためのディレクトリ更新データを生成して(S411)、ディレクトリ61の更新を行う。
If there is a way whose bit k value is 1, the
If there is no way whose bit k value is 1, the
このとき、ステップS410の制御を並行して実施していた場合は、無効化するHM1(104)のウェイの更新も同時に行う。ここで、ステップS408、S410の処理は、フラグ205が有効化されたあと、HM0(103)にbit kの値が1のウェイがある又はHM1(104)にbit kの値が0のウェイがあり、HM0(103)及びHM1(104)に格納されるデータの振り分けが完全になされるまでの間の過渡期に発生することとなる。
At this time, if the control of step S410 is performed in parallel, the way of the HM1 (104) to be invalidated is also updated at the same time. Here, in the processing of steps S408 and S410, after the
図7は、本発明の実施の形態にかかる同じセットアドレス制御とした場合のディレクトリ更新制御を示すフローチャートである。図5におけるステップS307の処理について示したものである。
まず、フラグ制御機能107は、エントリの読み出しデータにトランザクションのキーアドレスと一致するキーアドレス201を格納するウェイがあるかを確認する(S501)。
一致するウェイがあった場合、フラグ制御機能107は、そのウェイを選択する(S502)。
そして、ディレクトリ索引更新制御部106は、そのウェイを更新するためのディレクトリ更新データを生成して(S507)、ディレクトリ61の更新を行う。
FIG. 7 is a flowchart showing directory update control when the same set address control according to the embodiment of the present invention is used. This shows the processing in step S307 in FIG.
First, the
If there is a matching way, the
Then, the directory index
一致するウェイがなかった場合、フラグ制御機能107は、エントリの読み出しデータに使用されていないウェイがあるかどうかを調べる(S503)。
使用されていないウェイがある場合、フラグ制御機能107は、空きウェイを選択する(S504)。
そして、ディレクトリ索引更新制御部106は、そのウェイに対するディレクトリ書き込みデータを作成して(S507)、ディレクトリ61の更新を行う。
If there is no matching way, the
If there is a way that is not used, the
Then, the directory index
使用されていないウェイがない場合、フラグ制御機能107は、エントリの読み出しデータからLRU法等により書き込むウェイを選択する(S505)。
そして、ディレクトリ索引更新制御部106は、選択したウェイに格納されたアドレスのキャッシュを無効化するために、そのアドレスを含んだスワップ発行指示をトランザクション制御部101に出力する(S506)。そして、選択したウェイを更新するためのディレクトリ更新データを生成して(S507)、ディレクトリ61の更新を行う。
When there is no unused way, the
Then, the directory index
図8は、本発明の実施の形態にかかるフラグ有効化を判定する処理を示すフローチャートである。
まず、ディレクトリアクセス制御部102において、トランザクションの競合があった場合、その競合したトランザクションのそれぞれに含まれるアドレスのキーアドレスの最下位bit kの値が異なるかどうかを判定する(S601)。
ここで、本実施の形態における競合とは、あるトランザクションに対する処理の実行中に、そのトランザクションとセットアドレスが同じトランザクションをディレクトリアクセス制御部102が受けることをいう。なお、この場合は、ディレクトリアクセス制御部102において、先のトランザクションの処理が完了するまで、後続のトランザクションをキューイングする等して、処理を実行しないようにする。
FIG. 8 is a flowchart showing processing for determining flag validation according to the embodiment of the present invention.
First, when there is a transaction conflict, the directory
Here, the contention in the present embodiment means that the directory
bit kの値が同じ場合、ディレクトリ構成変更判定部105は、処理を終了する。
bit kの値が異なる場合、ディレクトリ構成変更判定部105は、ディレクトリ索引更新制御部106から出力されたエントリの読み出しデータにキーアドレスの最下位bit kの値が0と1のウェイが混在しているかどうかを判断する(S602)。
値が混在していない場合、ディレクトリ構成変更判定部105は、処理を終了する。
値が混在している場合、ディレクトリ構成変更判定部105は、ディレクトリアクセス制御部102から出力されたトランザクション及びエントリの読み出しデータに基づいて、スワップが必要かどうかを判断する(S603)。
When the value of bit k is the same, the directory structure
When the value of bit k is different, the directory structure
If the values are not mixed, the directory structure
When the values are mixed, the directory structure
スワップが必要な場合、ディレクトリ61をセットアドレス方向に拡大した使用方法とした方がスワップの発生などの干渉が発生する可能性が低くなると判断し、ディレクトリ構成変更判定部105は、現在処理中のトランザクションのアドレスによって特定されるエントリもしくはウェイのフラグを有効化する変更指示をディレクトリ索引更新制御部106に出力する(S606)。
スワップが必要でない場合、ディレクトリ構成変更判定部105は、ディレクトリ構成変更判定部105が有するレジスタに、現在処理中のエントリを示す情報及び発生回数などを含む競合情報を格納する(S604)。このように発生回数は、エントリに関連付けて、エントリ毎にカウントする。
When swap is necessary, it is determined that the use of the
When the swap is not necessary, the directory structure
次に、ディレクトリ構成変更判定部105は、レジスタに格納した競合の発生回数が予め定めた規定回数に達したかどうかを判断する(S605)。
規定回数に達した場合、ディレクトリ構成変更判定部105は、現在処理中のトランザクションのアドレスによって特定されるエントリもしくはウェイのフラグを有効化する変更指示をディレクトリ索引更新制御部106に出力する(S606)。
規定回数に達していない場合、ディレクトリ構成変更判定部105は、処理を終了する。
なお、競合情報は、フラグを有効化する変更指示を出力したときや、一定期間内にレジスタが示すエントリに対するアクセス、つまりディレクトリアクセス制御部102による読み出しや更新がなかったときは無効にする。
Next, the directory structure
When the specified number of times has been reached, the directory structure
When the specified number of times has not been reached, the directory structure
The conflict information is invalidated when a change instruction for enabling the flag is output, or when there is no access to the entry indicated by the register within a certain period, that is, when there is no reading or updating by the directory
図9は、本発明の実施の形態にかかるフラグ無効化を判定する処理を示すフローチャートである。
まず、ディレクトリアクセス制御部102において、トランザクションの競合があった場合、その競合したトランザクションのそれぞれに含まれるアドレスのキーアドレスの最下位bit kの値が異なるかどうかを判定する(S701)。
bit kの値が異なる場合、ディレクトリ構成変更判定部105は、処理を終了する。
bit kの値が同じ場合、ディレクトリ構成変更判定部105は、ディレクトリ索引更新制御部106から出力されたエントリの読み出しデータに、フラグ205が有効であるウェイがあるかどうかを判断する(S702)。
FIG. 9 is a flowchart showing processing for determining flag invalidation according to the embodiment of the present invention.
First, when there is a transaction conflict, the directory
If the value of bit k is different, the directory structure
If the values of bit k are the same, the directory structure
フラグ205が無効を示す場合、ディレクトリ構成変更判定部105は、処理を終了する。
フラグ205が有効を示す場合、ディレクトリ構成変更判定部105は、ディレクトリアクセス制御部102から出力されたトランザクション及びエントリの読み出しデータに基づいて、スワップが必要かどうかを判断する(S703)。
スワップが必要でない場合、ディレクトリ構成変更判定部105は、処理を終了する。
スワップが必要な場合、ディレクトリ構成変更判定部105は、エントリの読み出しデータに基づいて、現在処理中のトランザクションのキーアドレス201の最下位bit kと異なる値を格納対象としているハードマクロのウェイが使用されているかどうかを確認する(S704)。
When the
When the
When the swap is not necessary, the directory structure
When swapping is necessary, the directory structure
使用されているウェイがない場合、ディレクトリ構成変更判定部105は、現在処理中のトランザクションのアドレスによって特定されるエントリもしくはウェイのフラグを無効化する変更指示をディレクトリ索引更新制御部106に出力する(S707)。
使用されているウェイがある場合、ディレクトリ構成変更判定部105は、現在処理中のトランザクションのキーアドレス201の最下位bit kが異なる値を格納対象としているハードマクロ側に対するアクセス、つまりディレクトリアクセス制御部102による更新が、予め定めた期間内に予め定めた規定回数あったかどうかを判断する(S705)。
If there is no way being used, the directory structure
If there is a way being used, the directory structure
なお、アクセス回数は、次のステップS706において競合情報をディレクトリ構成変更判定部105のレジスタに格納した以降に、ディレクトリ構成変更判定部105がアクセス回数をレジスタに格納することで判断可能とする。つまり、次のステップS706において競合情報を格納し、次にステップS705の処理を行ったときに、競合情報が格納されている場合に、レジスタに格納されているアクセス回数が有効と判断してステップS705の判断を行う。
The number of accesses can be determined by storing the number of accesses in the register after the contention information is stored in the register of the directory configuration
アクセス回数が規定回数あった場合、ディレクトリ構成変更判定部105は、現在処理中のトランザクションのアドレスによって特定されるエントリもしくはウェイのフラグを無効化する変更指示をディレクトリ索引更新制御部106に出力する(S707)。
アクセス回数が規定回数なかった場合、ディレクトリ構成変更判定部105は、現在処理中のエントリを示す情報などを含む競合情報をディレクトリ構成変更判定部105のレジスタに格納する(S706)。なお、アクセス回数は、この競合情報のエントリに関連付けて、エントリ毎にカウントする。
また、競合情報は、フラグ無効化指示を出力したときや、一定期間内にレジスタが示すエントリに対するアクセス、つまりディレクトリアクセス制御部102による読み出しや更新がなかったときは無効にする。
When the access count is the specified count, the directory structure
When the access count is not the specified count, the directory configuration
The conflict information is invalidated when a flag invalidation instruction is output, or when access to the entry indicated by the register within a certain period, that is, when there is no reading or updating by the directory
以上にフラグを変更するかどうかの判定方法の一例を説明したが、ディレクトリ61の使用状況を出力装置にモニタリングして、それに基づいてユーザがフラグを変更したいエントリを示す情報を入力装置から入力して、ディレクトリ構成判定部のレジスタに設定し、このエントリに関するトランザクションの処理するタイミングにディレクトリ構成変更判定部105が、フラグの変更指示をディレクトリ索引更新制御部106に出力するようにしてもよい。
Although an example of the determination method for determining whether or not to change the flag has been described above, the usage status of the
また、マルチプロセッサシステム上において動作するプログラムがディレクトリ61の使用状況を取得して、それに基づいてフラグを変更すべきエントリを判断し、そのエントリを示す情報をディレクトリ構成判定部のレジスタに設定し、このエントリに関するトランザクションの処理するタイミングにディレクトリ構成変更判定部105が、フラグの変更指示をディレクトリ索引更新制御部106に出力するようにしてもよい。
さらに、システム立ち上げ時には、ディレクトリの初期化処理、つまりALL0を書き込む処理が行われることが多いが、このときに、任意の値をフラグに書き込むようにしてもよい。
Further, a program operating on the multiprocessor system acquires the usage status of the
Furthermore, when the system is started up, directory initialization processing, that is, processing of writing ALL0 is often performed, but at this time, an arbitrary value may be written in the flag.
なお、本実施の形態においては、ハードマクロが2つの構成を説明したが、ハードマクロの数およびフラグ有効時の使用方法は、本実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
例えば、ハードウェアマクロを4つ備え、フラグ205のビット数を増やして、フラグの値が00の場合はウェイ方向に使用するハードマクロを4つ、フラグの値が01の場合はセットアドレス方向に使用するハードマクロ2つ×ウェイ方向に使用するハードマクロ2つ、フラグの値が10の場合はセットアドレス方向に使用するハードマクロ4つとする構成としてもよい。
In the present embodiment, the configuration of two hard macros has been described. However, the number of hard macros and the usage method when the flag is valid are not limited to the present embodiment, and do not depart from the spirit of the present invention. It can be changed as appropriate.
For example, four hardware macros are provided, the number of bits of the
また、例えば、ハードウェアマクロを4つ備え、同様にフラグ205のビット数を増やして、キーアドレスの最下位ビット値が0のハードマクロを3つ、キーアドレスの最下位ビット値が1のハードマクロに1つの使用方法にも変更できるようにしてもよい。
さらに、本実施の形態に例示したように、エントリ単位でのハードマクロの使用方法の変更をせず、フラグ205を有するウェイ単位での変更するようにしてもよい。
In addition, for example, four hardware macros are provided, and the number of bits of the
Furthermore, as exemplified in the present embodiment, the method of using the hard macro in units of entries may be changed without changing the method of using the hard macro in units of entries.
以上に説明したように、本実施の形態においては、ディレクトリのエントリ毎にフラグを備え、キャッシュメモリの使用状況に応じて、動的にかつ簡易的にキャッシュメモリの使用方法を変更することができるため、キャッシュメモリを有効に利用することができる。
また、キャッシュメモリの使用方法を変更するフラグをエントリ単位に備えることによって、エントリ単位でのウェイ数やセットアドレス数の変更を可能としている。
さらに、プロセッサからの直接の制御がなくても、ディレクトリのコヒーレンシ機能を保ちながらキャッシュメモリを有効利用することが可能である。
As described above, in this embodiment, a flag is provided for each directory entry, and the usage method of the cache memory can be changed dynamically and simply according to the usage state of the cache memory. Therefore, the cache memory can be used effectively.
In addition, by providing a flag for changing the method of using the cache memory for each entry, the number of ways and the number of set addresses can be changed for each entry.
Furthermore, even without direct control from the processor, the cache memory can be used effectively while maintaining the coherency function of the directory.
11、12 セル
21、22、23、24 プロセッサ
31、32、33、34 キャッシュメモリ
41、42、43、44、45、46、81 接続手段
51、52 コヒーレンシ制御回路
61、62 ディレクトリ
101 トランザクション制御部
102 ディレクトリアクセス制御部
103 HM0
104 HM1
105 ディレクトリ構成変更判定部
106 ディレクトリ索引更新制御部
107 フラグ制御機能
11, 12
104 HM1
105 Directory structure
Claims (8)
前記キャッシュメモリに記憶するデータの前記メインメモリ上のアドレスのセットアドレス以外のキーアドレスを示すアドレス情報が格納され、セットアドレスのそれぞれに対応するエントリと、
前記エントリのそれぞれに対応し、対応するエントリに関して前記キャッシュメモリをウェイ方向もしくはセットアドレス方向のどちらで使用するかを示すフラグを格納するキャッシュ情報格納部と、
前記エントリに格納されたアドレス情報が示すキーアドレスのうちの所定ビットの値に応じて、当該エントリに対応するフラグを変更する構成判定部と、
を備えたキャッシュメモリ制御回路。 A cache memory control circuit for storing data stored in a main memory in a cache memory by a set associative method,
Address information indicating a key address other than a set address of an address on the main memory of data stored in the cache memory is stored , an entry corresponding to each set address,
Corresponding to each of the previous SL entry, the cache information storage unit for storing a flag indicating whether to use the cache memory of the way direction or set address direction with respect to the corresponding entry,
A configuration determination unit that changes a flag corresponding to the entry according to a value of a predetermined bit of a key address indicated by address information stored in the entry;
A cache memory control circuit.
前記ディレクトリは、前記キャッシュ情報格納部を有する請求項1乃至6のいずれか1項に記載のキャッシュメモリ制御回路。 The cache memory control circuit further comprises a directory used to ensure coherency,
The directory cache memory control circuit according to any one of claims 1 to 6 having the cache information storage unit.
前記メインメモリ上のアドレスのセットアドレスのそれぞれに対応するエントリのそれぞれに対応し、対応するエントリに関して前記キャッシュメモリをウェイ方向もしくはセットアドレス方向のどちらで使用するかを示すフラグを設定するステップと、
前記フラグに応じて、当該フラグに対応するエントリに、前記キャッシュメモリに記憶するデータの前記セットアドレス以外のキーアドレスを示すアドレス情報を格納することで、前記アドレスを管理するステップと、を備え、
前記フラグを設定するステップでは、前記エントリに格納されたアドレス情報が示すキーアドレスのうちの所定ビットの値に応じて、当該エントリに対応するフラグを変更する、
アドレス管理方法。 An address management method for managing an address on a main memory of data stored in a cache memory by a set associative method,
A step of the response to each of the entries corresponding to the respective set address of the address on the main memory, to set a flag indicating whether to use the cache memory of the way direction or set address direction with respect to the corresponding entry ,
Depending on the flag, the entry corresponding to the flag, by storing the address information indicating the key address other than the set address of data to be stored in said cache memory, and a step of managing the address,
In the step of setting the flag, the flag corresponding to the entry is changed according to the value of a predetermined bit of the key address indicated by the address information stored in the entry.
Address management method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009011574A JP5435617B2 (en) | 2009-01-22 | 2009-01-22 | Cache memory control circuit and cache memory management method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009011574A JP5435617B2 (en) | 2009-01-22 | 2009-01-22 | Cache memory control circuit and cache memory management method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010170292A JP2010170292A (en) | 2010-08-05 |
JP5435617B2 true JP5435617B2 (en) | 2014-03-05 |
Family
ID=42702396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009011574A Expired - Fee Related JP5435617B2 (en) | 2009-01-22 | 2009-01-22 | Cache memory control circuit and cache memory management method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5435617B2 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5630825B2 (en) * | 2010-12-28 | 2014-11-26 | Necプラットフォームズ株式会社 | Multiprocessor system, request processing method, and node |
EP3055774B1 (en) * | 2014-12-14 | 2019-07-17 | VIA Alliance Semiconductor Co., Ltd. | Multi-mode set associative cache memory dynamically configurable to selectively allocate into all or a subset of its ways depending on the mode |
US9798668B2 (en) | 2014-12-14 | 2017-10-24 | Via Alliance Semiconductor Co., Ltd. | Multi-mode set associative cache memory dynamically configurable to selectively select one or a plurality of its sets depending upon the mode |
US10698827B2 (en) | 2014-12-14 | 2020-06-30 | Via Alliance Semiconductor Co., Ltd. | Dynamic cache replacement way selection based on address tag bits |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01233537A (en) * | 1988-03-15 | 1989-09-19 | Toshiba Corp | Information processor provided with cache memory |
JPH0496843A (en) * | 1990-08-15 | 1992-03-30 | Fujitsu Ltd | Cache memory control system |
JPH0520193A (en) * | 1991-07-15 | 1993-01-29 | Oki Electric Ind Co Ltd | Cache memory device |
CN1714347A (en) * | 2002-12-17 | 2005-12-28 | 国际商业机器公司 | Selectively changeable line width memory |
-
2009
- 2009-01-22 JP JP2009011574A patent/JP5435617B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2010170292A (en) | 2010-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7769957B2 (en) | Preventing writeback race in multiple core processors | |
US8607024B2 (en) | Virtual address cache memory, processor and multiprocessor | |
JP4613247B2 (en) | Arithmetic processing apparatus, information processing apparatus, and control method for arithmetic processing apparatus | |
US8949572B2 (en) | Effective address cache memory, processor and effective address caching method | |
KR101639672B1 (en) | Unbounded transactional memory system and method for operating thereof | |
US8103834B2 (en) | Coherence protocol with dynamic privatization | |
US8271735B2 (en) | Cache-coherency protocol with held state | |
US10019377B2 (en) | Managing cache coherence using information in a page table | |
US10725923B1 (en) | Cache access detection and prediction | |
US9892039B2 (en) | Non-temporal write combining using cache resources | |
US20080320233A1 (en) | Reduced Handling of Writeback Data | |
US9720847B2 (en) | Least recently used (LRU) cache replacement implementation using a FIFO storing indications of whether a way of the cache was most recently accessed | |
JP5435617B2 (en) | Cache memory control circuit and cache memory management method | |
KR20070040340A (en) | Disable write back on atomic reserved line in a small cache system | |
US20070130426A1 (en) | Cache system and shared secondary cache with flags to indicate masters | |
JP5319049B2 (en) | Cash system | |
WO2010038301A1 (en) | Memory access method and information processing apparatus | |
JP2007533014A (en) | System and method for canceling write back processing when snoop push processing and snoop kill processing occur simultaneously in write back cache | |
JP4302083B2 (en) | Cache system and cache system control method | |
JP3732397B2 (en) | Cash system | |
US7543112B1 (en) | Efficient on-chip instruction and data caching for chip multiprocessors | |
US10565111B2 (en) | Processor | |
US9886212B2 (en) | Mechanism for copying data in memory | |
WO2006109421A1 (en) | Cache memory | |
JP4266605B2 (en) | Cache circuit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20111214 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130730 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130827 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131021 |
|
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: 20131112 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131205 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |