JP5435617B2 - Cache memory control circuit and cache memory management method - Google Patents

Cache memory control circuit and cache memory management method Download PDF

Info

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
Application number
JP2009011574A
Other languages
Japanese (ja)
Other versions
JP2010170292A (en
Inventor
富子 山田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Computertechno Ltd
Original Assignee
NEC Computertechno Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Computertechno Ltd filed Critical NEC Computertechno Ltd
Priority to JP2009011574A priority Critical patent/JP5435617B2/en
Publication of JP2010170292A publication Critical patent/JP2010170292A/en
Application granted granted Critical
Publication of JP5435617B2 publication Critical patent/JP5435617B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/601Reconfiguration 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 Documents 1, 2, 4, and 5 disclose technologies relating to set associative cache memory control.
Patent Document 3 discloses a technique for optimally setting a set address for a tag portion of a cache memory.

特開2000−020396号公報JP 2000-020396 A 特開2005−293300号公報JP-A-2005-293300 特開平04−096843号公報Japanese Patent Laid-Open No. 04-096843 特開平05−040694号公報Japanese Patent Laid-Open No. 05-040694 特開平05−241962号公報JP 05-241962 A

背景技術として説明したように、セットアソシアティブ方式においては、ウェイ数やセットアドレス数が固定されている場合は、キャッシュメモリが有効に利用されないという問題があった。   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 is a block diagram showing an overall configuration of a multiprocessor system according to an embodiment of the present invention. 本発明の実施の形態にかかるコヒーレンシ制御回路の内部構成を示すブロック図である。It is a block diagram which shows the internal structure of the coherency control circuit concerning embodiment of this invention. 本発明の実施の形態にかかるディレクトリ内容の概念図である。It is a conceptual diagram of the directory content concerning embodiment of this invention. 本発明の実施の形態にかかるフラグとキーアドレス値の関係を示す図である。It is a figure which shows the relationship between the flag and key address value concerning embodiment of this invention. 本発明の実施の形態にかかるコヒーレンシ制御回路の動作を示すフローチャートである。It is a flowchart which shows operation | movement of the coherency control circuit concerning embodiment of this invention. 本発明の実施の形態にかかる異なるセットアドレス制御とした場合のディレクトリ更新制御を示すフローチャートである。It is a flowchart which shows the directory update control at the time of setting it as different set address control concerning embodiment of this invention. 本発明の実施の形態にかかる同じセットアドレス制御とした場合のディレクトリ更新制御を示すフローチャートである。It is a flowchart which shows the directory update control at the time of setting it as the same set address control concerning embodiment of this invention. 本発明の実施の形態にかかるフラグ有効化を判定する処理を示すフローチャートである。It is a flowchart which shows the process which determines flag validation concerning embodiment of this invention. 本発明の実施の形態にかかるフラグ無効化を判定する処理を示すフローチャートである。It is a flowchart which shows the process which determines flag invalidation concerning embodiment of this invention.

以下、図面を参照して本発明の実施の形態について説明する。
図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 cells 11 and 12.

セル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 cell 11 includes processors 21 and 22 having cache memories 31 and 32, a memory 71 and a coherency control circuit 51 having a directory 61. The processors 21 and 22 and the main memory 71 are connected to each other by connection means 41, 42 and 43.
The processors 21 and 22 store the data stored in the main memories 71 and 72 in the cache memories 31 and 32, and execute arithmetic processing based on the data.
The cache memories 31 and 32 store the data of the main memories 71 and 72.
The coherency control circuit 51 performs control for guaranteeing coherency between processors. In addition, the coherency control circuit 51 is connected to the coherency control circuit 52 of the cell 12 by the connection means 81, and can access the processors 23 and 24 and the main memory 72 of the cell 12. The connection means 41, 42, 43, 81 is, for example, a bus.
The directory 61 is a set associative directory, and stores address information indicating the address of the data to be cached on the main memory 71 for each set address corresponding to the cache line. The address information has a unit corresponding to each set address as one entry, and the directory 61 stores the number of set addresses. The directory 61 corresponds to a cache information storage unit.
The main memory 71 is a memory that can be shared by the processors 21, 22, 23, and 24.

セル12は、キャッシュメモリ33、34を有するプロセッサ23、24、メモリ72及びディレクトリ62を有するコヒーレンシ制御回路52を含む。
なお、セル12の構成要素は、セル11と同様であるため、説明を省略する。
ここで、ディレクトリ61、62は、セットアソシアティブ方式のディレクトリであるため、新たにキャッシュメモリにデータを記憶する場合にディレクトリ61、62に空きがない場合はスワップを行う必要がある。
本実施の形態におけるスワップとは、セットアソシアティブ方式を採用するディレクトリにおいて生じる処理である。詳しくは、新たにキャッシュメモリに記憶するデータのアドレス情報を、ディレクトリに対して格納する必要が生じたときに、これを格納する領域がディレクトリに存在しない場合は、ディレクトリに既に格納されているアドレス情報のいずれかを排除し、新たなアドレス情報を格納するための空き領域を生成する。この既に格納されている情報を排除する処理がスワップである。このとき、ディレクトリからスワップしたアドレス情報に対応し、キャッシュメモリに記憶されているデータについても、コヒーレンシを保つために無効化を行う。
The cell 12 includes a processor 23, 24 having cache memories 33, 34, a memory 72, and a coherency control circuit 52 having a directory 62.
In addition, since the component of the cell 12 is the same as that of the cell 11, description is abbreviate | omitted.
Here, since the directories 61 and 62 are set associative directories, when data is newly stored in the cache memory, it is necessary to perform swap if the directories 61 and 62 are not empty.
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 coherency control circuit 51 of the cell 11 will be described. Note that the components of the coherency control circuit 52 of the cell 12 are the same as those of the coherency control circuit 51, and thus description thereof is omitted.
The coherency control circuit 51 includes a directory index update control unit 106 having a directory 61, a transaction control unit 101, a directory access control unit 102, a directory configuration change determination unit 105, and a flag control function 107.
The directory 61 includes two hard macros HM0 (103) and HM1 (104). A hard macro is composed of entries for the number of set addresses, and one way macro contains 2-way address information. A directory 61 including two hard macros stores a total of four ways of address information.

トランザクション制御部101は、プロセッサ21、22、セル12及びメインメモリ72とのトランザクションの送受信を行う。
ここで、トランザクションは、例えば、プロセッサ21がメインメモリ71の任意のアドレスに記憶されているデータにアクセスする場合、このアドレスを指定してトランザクション制御部101に対して出力される。これに応じて、トランザクション制御部101は、後に詳述するコヒーレンシ制御回路51の処理の結果に基づいて、任意のアドレスに記憶されているデータをメインメモリ71もしくはキャッシュメモリ31、32、33、34のいずれから取得したらよいかを答えるトランザクションをプロセッサ21に出力する。
なお、トランザクション制御101は、ディレクトリ61に関するトランザクション、つまり、メインメモリ71のアクセスに関するトランザクションを受信した場合に、このトランザクションをディレクトリアクセス制御部102に出力する。
The transaction control unit 101 transmits and receives transactions with the processors 21 and 22, the cell 12, and the main memory 72.
Here, for example, when the processor 21 accesses data stored at an arbitrary address of the main memory 71, the transaction is output to the transaction control unit 101 by specifying this address. In response to this, the transaction control unit 101 transfers the data stored at an arbitrary address to the main memory 71 or the cache memories 31, 32, 33, 34 based on the processing result of the coherency control circuit 51 described in detail later. A transaction for answering from which of the two is to be obtained is output to the processor 21.
When the transaction control 101 receives a transaction related to the directory 61, that is, a transaction related to access to the main memory 71, the transaction control 101 outputs this transaction to the directory access control unit 102.

その他に、トランザクション制御101は、ディレクトリ索引更新制御部106からスワップ発行指示を受けると、スワップ発行指示が示すアドレスのキャッシュ無効化トランザクションを生成してプロセッサ21、22やセル12を介してプロセッサ23,24に出力する。キャッシュ無効化トランザクションの出力を受けたプロセッサは、キャッシュメモリに記憶され、キャッシュ無効化トランザクションが示すアドレスのデータを無効化する。   In addition, when the transaction control 101 receives a swap issuance instruction from the directory index update control unit 106, the transaction control 101 generates a cache invalidation transaction at an address indicated by the swap issuance instruction, and processes the processors 23, 22 and the cells 23 via the processors 21, 22 and the cell 12. 24. The processor that has received the output of the cache invalidation transaction is stored in the cache memory and invalidates the data at the address indicated by the cache invalidation transaction.

ディレクトリアクセス制御部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 transaction control unit 101 is managed by the directory 61, the directory access control unit 102 issues a read instruction for reading an entry corresponding to this address HM0 (103). And HM1 (104). In addition, when receiving a directory update instruction from the directory index update control unit 106, the directory access control unit 102 performs control for managing the directory 61 such as writing to the directory 61.
HM0 (103) and HM1 (104) are hard macros, and when the read instruction is output from the directory access control unit 102, the read data of the entry is output to the directory index update control unit 106.

ディレクトリ構成変更判定部105は、ディレクトリアクセス制御部102における競合情報やディレクトリ索引更新制御部106のエントリの読み出しデータ等に基づいて、ハードマクロの使用方法を変更するかどうかの判定を行う。その判断の結果に応じて、ディレクトリ構成変更判定部105は、ディレクトリ索引更新制御部106に変更指示を出力する。なお、競合情報については、後に詳述する。   The directory structure change determination unit 105 determines whether to change the usage method of the hard macro based on the conflict information in the directory access control unit 102, the read data of the entry in the directory index update control unit 106, and the like. Depending on the result of the determination, the directory structure change determination unit 105 outputs a change instruction to the directory index update control unit 106. The competitive information will be described later in detail.

ディレクトリ索引更新制御部106は、HM0(103)及びHM1(104)から出力されたエントリの読み出しデータに基づいて、トランザクション制御部101が受けたトランザクションに含まれるアドレスの索引結果をトランザクション制御部101に出力する。また、ディレクトリ索引更新制御部106は、ディレクトリ61に書き込むディレクトリ更新データを生成して、ディレクトリアクセス制御部102にディレクトリ更新データと共にディレクトリ更新指示を出力する。   The directory index update control unit 106 sends the index result of the address included in the transaction received by the transaction control unit 101 to the transaction control unit 101 based on the read data of the entries output from the HM0 (103) and HM1 (104). Output. Further, the directory index update control unit 106 generates directory update data to be written in the directory 61 and outputs a directory update instruction to the directory access control unit 102 together with the directory update data.

その他に、ディレクトリ索引更新制御部106は、ディレクトリ61に空きがなく、スワップが必要な場合、スワップするアドレス情報に対応するデータのキャッシュ無効化トランザクションをプロセッサ21、22、23,24に出力するように指示するスワップ発行指示をトランザクション制御部101に出力する。また、ディレクトリ索引更新制御部106は、エントリの読み出しデータをディレクトリ構成変更判定部105に出力する。   In addition, the directory index update control unit 106 outputs, to the processors 21, 22, 23, and 24, a cache invalidation transaction for data corresponding to the address information to be swapped when the directory 61 is empty and needs swapping. The swap issuance instruction instructed to is output to the transaction control unit 101. Further, the directory index update control unit 106 outputs the read data of the entry to the directory structure change determination unit 105.

フラグ制御機能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 flag control function 107 selects the address information to be swapped based on the change instruction from the directory structure change determination unit 105 and the state of the flag included in the read data of the entry, and the way for registering new address information in the directory 61. Control to change the selection method.
Specifically, when new address information is registered in the directory 61, the flag indicates invalidity, in other words, all hard macros are used in the way direction. In this case, a way to register address information is selected from all four ways HM0 (103) and HM1 (104) included in one entry by the 4-way set associative method according to the LRU method or the like.
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 directories 61 and 62 store as many entries as the number of set addresses with the address information corresponding to the cache lines of the main memories 71 and 72 as one entry. FIG. 3 illustrates the way 206 of HM 0 (103) per entry of the directory 61 as the directory 206. That is, the directory 206 indicates a configuration per way among one entry of the directory 61. The configuration of the other entries, the hard macro, and the directory 206 in the way is the same, and the description thereof is omitted. The directory 206 corresponds to address information.

ディレクトリ206は、キーアドレス201、ステータス情報203、エージェント情報204及びフラグ205を含む。
セットアドレス202は、キャッシュメモリ31、32、33、34に記憶されるデータのメインメモリ71上におけるアドレスのうちの所定のビット部分の値を格納する。ディレクトリ61のエントリのインデックスとして用いられる。セットアドレス202に基づいて、トランザクションに含まれるアドレスに対応するエントリを特定することで、ディレクトリ206の索引や更新を行うことができる。
The directory 206 includes a key address 201, status information 203, agent information 204, and a flag 205.
The set address 202 stores a value of a predetermined bit portion of an address on the main memory 71 of data stored in the cache memories 31, 32, 33, and 34. Used as an index for entries in the directory 61. By specifying an entry corresponding to the address included in the transaction based on the set address 202, the directory 206 can be indexed or updated.

キーアドレス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 key address 201 stores the value of the bit portion obtained by removing the set address 202 from the address on the main memory 71 of the data stored in the cache memories 31, 32, 33, and 34.
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 status information 203 indicates a caching state of data indicated by an address composed of the key address 201 and the set address 202 of the directory 206. The status information 206 stores a value indicating whether data is stored in the cache memory.
The agent information 204 is information indicating the position of a processor having a cache memory that caches data indicated by an address.

フラグ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 flag 205 indicates whether the hard macro in the entry including the directory 206 is used in the way direction or the set address direction. In this embodiment, when the flag of any way in the entry is valid, it is determined that the flag is valid, and the method of using the hard macro in the entry is changed.
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 flag 205 in the entry is 1 indicating that it is valid, HM0 (103) of this entry has the lowest address bit k of the key address 201 being 0, and HM1 (104) is the key address 201. The lowest address bit k is 1, and each is used as a 2-way configuration. That is, in addition to the set address, the entry is classified and the address information is stored according to the value of the lowest address bit k.
The entry in the present embodiment indicates data for four ways having the same set address 202 value in the directory 61 regardless of the flag value. The flag 205 may be prepared in units of entries instead of in units of ways.

本発明の実施の形態にかかるコヒーレンシ制御回路の動作を示すフローチャートである。図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 cell 12, the transaction control unit 101 of the coherency control circuit 51 outputs this transaction to the directory access control unit 102 when access to the directory 61 is necessary. . Note that when the access to the directory 61 is not necessary, the transaction indicates the access to the main memory 72. In this case, the coherency control circuit 51 transfers the transaction to the coherency control circuit 52.

ディレクトリアクセス制御部102は、トランザクション制御部101からトランザクションの出力を受けると、トランザクションアドレスに含まれるアドレスのセットアドレスに対応するエントリを読み出すために、このセットアドレスを指定して読み出し指示をHM0(103)及びHM1(104)に出力する。また、ディレクトリアクセス制御部102は、トランザクションをディレクトリ索引更新制御部106に出力する。
HM0(103)及びHM1(104)は、ディレクトリアクセス制御部102から読み出し指示の出力を受けると、指定されたセットアドレスに対応するエントリの読み出しデータをディレクトリ索引更新制御部106に出力する。
When the directory access control unit 102 receives a transaction output from the transaction control unit 101, the directory access control unit 102 designates this set address and issues a read instruction HM0 (103) in order to read an entry corresponding to the set address of the address included in the transaction address. ) And HM1 (104). Further, the directory access control unit 102 outputs the transaction to the directory index update control unit 106.
When the HM0 (103) and the HM1 (104) receive a read instruction output from the directory access control unit 102, the HM0 (103) and HM1 (104) output read data of an entry corresponding to the designated set address to the directory index update control unit 106.

フラグ制御機能107は、HM0(103)とHM1(104)から出力されたエントリの読み出しデータに格納されたキーアドレス201とトランザクションに含まれるアドレスのキーアドレスが一致しているものを探す。
一致したものがなかった場合、ディレクトリ索引更新制御部106は、その旨をトランザクション制御部101に出力する。
この場合は、キャッシュメモリ31、32、33、34にトランザクションに含まれるアドレスのデータが記憶されてないことを示す。よって、トランザクション制御部101は、トランザクションの出力元に対して、メインメモリ71からデータを取得する旨のトランザクションを出力する。
The flag control function 107 searches for a key address 201 stored in the read data of the entries output from HM0 (103) and HM1 (104) that matches the key address of the address included in the transaction.
If there is no match, the directory index update control unit 106 outputs that fact to the transaction control unit 101.
In this case, it indicates that the cache memory 31, 32, 33, 34 does not store the data of the address included in the transaction. Therefore, the transaction control unit 101 outputs a transaction for obtaining data from the main memory 71 to the transaction output source.

一致したものがあった場合、ディレクトリ索引更新制御部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 update control unit 106 outputs the status information 203 and the agent information 204 included in the matched way to the transaction control unit 101.
In this case, the cache memory 31, 32, 33, 34 indicates that the data of the address included in the transaction is stored.
Here, the transaction control unit 101 also stores, in the status information 203, information indicating whether the data cached in the cache memories 31, 32, 33, and 34 matches the content of the data in the main memory 71. Can do. Thus, when the status information 203 indicates a match, the data is acquired from the main memory 71. When the status information 203 does not indicate a match, the data is acquired from the cache memory of the processor indicated by the agent information 204. A transaction to that effect is output.
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 flag control function 107 confirms the flag 205 of the read data of the entry (S302).
When the value of the flag 205 is 0 and invalid, the directory index update control unit 106 checks the flag validation instruction from the directory structure change determination unit 105 (S304).
When there is no flag validation instruction, the directory index update control unit 106 performs 4-way directory update control with HM0 (103) and HM1 (104) of the directory 61 as the same set address control (S307). Then, the directory index update control unit 106 generates directory update data to be written to the directory 61 and outputs the directory update data and the directory update instruction to the directory access control unit 102. Upon receiving the directory update instruction output, the directory access control unit 102 writes the directory update data in the directory 61 (S309). By the processing in step S309, for example, address information of data to be newly stored in the cache memory is registered.

フラグ205の値が0であり無効の場合に、フラグ有効化指示があったとき(S306)、ディレクトリ索引更新制御部106は、HM0(103)とHM1(104)を異なるセットアドレスとした2ウェイのディレクトリ更新制御を行う(S308)。そして、ディレクトリ索引更新制御部106は、フラグを有効にするディレクトリ更新データを生成して、ディレクトリアクセス制御部102に、ディレクトリ更新データとディレクトリ更新指示を出力する。ディレクトリ更新指示の出力を受けたディレクトリアクセス制御部102は、ディレクトリ61にディレクトリ更新データを書き込む(S309)。
なお、ステップS307、S308におけるにディレクトリ更新制御の動作については、後に詳述する。
When the flag 205 is 0 and invalid, and the flag is instructed (S306), the directory index update control unit 106 uses the two ways with HM0 (103) and HM1 (104) as different set addresses. Directory update control is performed (S308). Then, the directory index update control unit 106 generates directory update data for validating the flag, and outputs the directory update data and the directory update instruction to the directory access control unit 102. Upon receiving the directory update instruction output, the directory access control unit 102 writes the directory update data in the directory 61 (S309).
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 flag 205 is 1 and it is valid, the directory index update control unit 106 confirms the flag invalidation instruction from the directory structure change determination unit 105 (S303).
When there is no flag invalidation instruction, the directory index update control unit 106 keeps the flag 205 valid (S306) and performs directory update control using HM0 (103) and HM1 (104) as different set addresses (S308). ). Then, the directory is updated as described above (S309).

フラグ205の値が1であり有効な場合に、フラグ無効化指示があったとき(S305)、ディレクトリ索引更新制御部106は、HM0(103)とHM1(104)を同じセットアドレス制御としたディレクトリ更新制御を行う(S307)。そして、ディレクトリ索引更新制御部106は、フラグを無効にするディレクトリ更新データを生成して、ディレクトリアクセス制御部102に、ディレクトリ更新データとディレクトリ更新指示を出力する。そして、上述と同様に、ディレクトリ更新をする(S309)。   When the flag 205 is 1 and valid, and the flag invalidation instruction is given (S305), the directory index update control unit 106 uses HM0 (103) and HM1 (104) as the same set address control. Update control is performed (S307). Then, the directory index update control unit 106 generates directory update data for invalidating the flag, and outputs the directory update data and the directory update instruction to the directory access control unit 102. Then, the directory is updated as described above (S309).

図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 key address 201 is 0 is processed.

まず、フラグ制御機能107は、エントリの読み出しデータにトランザクションのキーアドレス201と一致するキーアドレスを格納するウェイがあるかを確認する(S401)。
一致するウェイがあった場合、フラグ制御機能107は、トランザクションに含まれるアドレスのキーアドレス201の最下位bit kの値が0であるため、bit kの値が0として扱われるHM0(103)に一致したウェイがあるかどうかを確認する(S402)。
First, the flag control function 107 checks whether there is a way for storing a key address that matches the key address 201 of the transaction in the read data of the entry (S401).
If there is a matching way, the flag control function 107 determines that the value of the least significant bit k of the key address 201 of the address included in the transaction is 0, so that the value of bit k is treated as 0 in HM0 (103). It is confirmed whether there is a matched way (S402).

HM0(103)に一致するウェイがあった場合、フラグ制御機能107は、そのウェイを選択する(S403)。
そして、ディレクトリ索引更新制御部106は、そのウェイを更新するためのディレクトリ更新データを生成して(S411)、ディレクトリ61の更新を行う。
ここで、一致するウェイがあった場合であっても、そのウェイのエージェント情報204が示すプロセッサと異なるプロセッサからのトランザクションであったときは、エージェント情報204の更新が必要となるため、ウェイの更新を行っている。なお、ウェイの内容に変更が全くない場合には、ステップS411を行わないようにしてもよい。後に詳述する図7のステップS507についても同様である。
If there is a way that matches HM0 (103), the flag control function 107 selects that way (S403).
Then, the directory index update control unit 106 generates directory update data for updating the way (S411), and updates the directory 61.
Here, even if there is a matching way, if the transaction is from a processor different from the processor indicated by the agent information 204 of the way, the agent information 204 needs to be updated. It is carried out. If there is no change in the way contents, step S411 may not be performed. The same applies to step S507 in FIG.

一方、一致するウェイがあった場合であっても、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 directory 61 is updated, the matching HM1 (104 ) Is invalidated and moved to HM0 (103). In that case, the directory index update control unit 106 creates directory write data for invalidating the way whose address matches HM1 (104) (S410) and directory write data for updating HM0 (103) in parallel. And do it.
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 directory 61.

一致するウェイがなかった場合、フラグ制御機能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 flag control function 107 checks whether there is an unused way in the HM0 (103) to be updated (S404).
If there is a way that is not used, the flag control function 107 selects an empty way (S405).
Then, the directory index update control unit 106 creates directory write data for the way (S411), and updates the directory 61.
If there is no unused way, the flag control function 107 determines whether there is a way to be stored in the HM1 (104) in the HM0 (103) to be updated, that is, a way whose bit k value is 1. (S406).

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 flag control function 107 selects the way (S408).
If there is no way whose bit k value is 1, the flag control function 107 selects a way to write from HM0 (103) by the LRU method or the like (S407). Further, the directory index update control unit 106 outputs a swap issuance instruction including the address to the transaction control unit 101 in order to invalidate the cache of the address stored in the way selected in step S407 or S408 (S409). ). Then, directory update data for updating the selected way is generated (S411), and the directory 61 is updated.

このとき、ステップ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 flag 205 is enabled, there is a way with a bit k value of 1 in HM0 (103) or a way with a bit k value of 0 in HM1 (104). Yes, it occurs in a transition period until the data stored in HM0 (103) and HM1 (104) are completely distributed.

図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 flag control function 107 checks whether there is a way for storing the key address 201 that matches the key address of the transaction in the read data of the entry (S501).
If there is a matching way, the flag control function 107 selects the way (S502).
Then, the directory index update control unit 106 generates directory update data for updating the way (S507), and updates the directory 61.

一致するウェイがなかった場合、フラグ制御機能107は、エントリの読み出しデータに使用されていないウェイがあるかどうかを調べる(S503)。
使用されていないウェイがある場合、フラグ制御機能107は、空きウェイを選択する(S504)。
そして、ディレクトリ索引更新制御部106は、そのウェイに対するディレクトリ書き込みデータを作成して(S507)、ディレクトリ61の更新を行う。
If there is no matching way, the flag control function 107 checks whether there is a way that is not used in the read data of the entry (S503).
If there is a way that is not used, the flag control function 107 selects an empty way (S504).
Then, the directory index update control unit 106 creates directory write data for the way (S507) and updates the directory 61.

使用されていないウェイがない場合、フラグ制御機能107は、エントリの読み出しデータからLRU法等により書き込むウェイを選択する(S505)。
そして、ディレクトリ索引更新制御部106は、選択したウェイに格納されたアドレスのキャッシュを無効化するために、そのアドレスを含んだスワップ発行指示をトランザクション制御部101に出力する(S506)。そして、選択したウェイを更新するためのディレクトリ更新データを生成して(S507)、ディレクトリ61の更新を行う。
When there is no unused way, the flag control function 107 selects a way to be written by the LRU method or the like from the read data of the entry (S505).
Then, the directory index update control unit 106 outputs a swap issuance instruction including the address to the transaction control unit 101 in order to invalidate the cache of the address stored in the selected way (S506). Then, directory update data for updating the selected way is generated (S507), and the directory 61 is updated.

図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 access control unit 102 determines whether or not the value of the least significant bit k of the key address of the address included in each of the conflicted transactions is different (S601).
Here, the contention in the present embodiment means that the directory access control unit 102 receives a transaction having the same set address as that transaction during execution of processing for a transaction. In this case, the directory access control unit 102 does not execute processing by queuing subsequent transactions until the processing of the previous transaction is completed.

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 change determination unit 105 ends the process.
When the value of bit k is different, the directory structure change determination unit 105 mixes the way in which the value of the least significant bit k of the key address is 0 and 1 in the read data of the entry output from the directory index update control unit 106. It is determined whether or not (S602).
If the values are not mixed, the directory structure change determination unit 105 ends the process.
When the values are mixed, the directory structure change determination unit 105 determines whether swap is necessary based on the transaction and entry read data output from the directory access control unit 102 (S603).

スワップが必要な場合、ディレクトリ61をセットアドレス方向に拡大した使用方法とした方がスワップの発生などの干渉が発生する可能性が低くなると判断し、ディレクトリ構成変更判定部105は、現在処理中のトランザクションのアドレスによって特定されるエントリもしくはウェイのフラグを有効化する変更指示をディレクトリ索引更新制御部106に出力する(S606)。
スワップが必要でない場合、ディレクトリ構成変更判定部105は、ディレクトリ構成変更判定部105が有するレジスタに、現在処理中のエントリを示す情報及び発生回数などを含む競合情報を格納する(S604)。このように発生回数は、エントリに関連付けて、エントリ毎にカウントする。
When swap is necessary, it is determined that the use of the directory 61 expanded in the set address direction is less likely to cause interference such as occurrence of swap, and the directory configuration change determination unit 105 A change instruction to validate the entry or way flag specified by the transaction address is output to the directory index update control unit 106 (S606).
When the swap is not necessary, the directory structure change determination unit 105 stores the conflict information including the information indicating the currently processed entry and the number of occurrences in the register of the directory structure change determination unit 105 (S604). In this way, the number of occurrences is counted for each entry in association with the entry.

次に、ディレクトリ構成変更判定部105は、レジスタに格納した競合の発生回数が予め定めた規定回数に達したかどうかを判断する(S605)。
規定回数に達した場合、ディレクトリ構成変更判定部105は、現在処理中のトランザクションのアドレスによって特定されるエントリもしくはウェイのフラグを有効化する変更指示をディレクトリ索引更新制御部106に出力する(S606)。
規定回数に達していない場合、ディレクトリ構成変更判定部105は、処理を終了する。
なお、競合情報は、フラグを有効化する変更指示を出力したときや、一定期間内にレジスタが示すエントリに対するアクセス、つまりディレクトリアクセス制御部102による読み出しや更新がなかったときは無効にする。
Next, the directory structure change determination unit 105 determines whether or not the number of conflict occurrences stored in the register has reached a predetermined number of times (S605).
When the specified number of times has been reached, the directory structure change determination unit 105 outputs to the directory index update control unit 106 a change instruction that validates the entry or way flag specified by the address of the transaction currently being processed (S606). .
When the specified number of times has not been reached, the directory structure change determination unit 105 ends the process.
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 access control unit 102.

図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 access control unit 102 determines whether or not the value of the least significant bit k of the key address of the address included in each of the conflicted transactions is different (S701).
If the value of bit k is different, the directory structure change determination unit 105 ends the process.
If the values of bit k are the same, the directory structure change determination unit 105 determines whether there is a way for which the flag 205 is valid in the read data of the entry output from the directory index update control unit 106 (S702).

フラグ205が無効を示す場合、ディレクトリ構成変更判定部105は、処理を終了する。
フラグ205が有効を示す場合、ディレクトリ構成変更判定部105は、ディレクトリアクセス制御部102から出力されたトランザクション及びエントリの読み出しデータに基づいて、スワップが必要かどうかを判断する(S703)。
スワップが必要でない場合、ディレクトリ構成変更判定部105は、処理を終了する。
スワップが必要な場合、ディレクトリ構成変更判定部105は、エントリの読み出しデータに基づいて、現在処理中のトランザクションのキーアドレス201の最下位bit kと異なる値を格納対象としているハードマクロのウェイが使用されているかどうかを確認する(S704)。
When the flag 205 indicates invalid, the directory structure change determination unit 105 ends the process.
When the flag 205 indicates “valid”, the directory structure change determination unit 105 determines whether or not swapping is necessary based on the transaction and entry read data output from the directory access control unit 102 (S703).
When the swap is not necessary, the directory structure change determination unit 105 ends the process.
When swapping is necessary, the directory structure change determination unit 105 uses the way of the hard macro that is to store a value different from the least significant bit k of the key address 201 of the transaction currently being processed based on the read data of the entry. It is confirmed whether it has been performed (S704).

使用されているウェイがない場合、ディレクトリ構成変更判定部105は、現在処理中のトランザクションのアドレスによって特定されるエントリもしくはウェイのフラグを無効化する変更指示をディレクトリ索引更新制御部106に出力する(S707)。
使用されているウェイがある場合、ディレクトリ構成変更判定部105は、現在処理中のトランザクションのキーアドレス201の最下位bit kが異なる値を格納対象としているハードマクロ側に対するアクセス、つまりディレクトリアクセス制御部102による更新が、予め定めた期間内に予め定めた規定回数あったかどうかを判断する(S705)。
If there is no way being used, the directory structure change determination unit 105 outputs to the directory index update control unit 106 a change instruction that invalidates the entry or way flag specified by the address of the transaction currently being processed ( S707).
If there is a way being used, the directory structure change determination unit 105 accesses the hard macro side for storing a value in which the least significant bit k of the key address 201 of the transaction currently being processed is different, that is, the directory access control unit. It is determined whether or not the update by 102 has been performed a predetermined number of times within a predetermined period (S705).

なお、アクセス回数は、次のステップ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 change determination unit 105 in the next step S706. That is, when the conflict information is stored in the next step S706 and the conflict information is stored when the process of step S705 is performed next, it is determined that the number of accesses stored in the register is valid. The determination in S705 is performed.

アクセス回数が規定回数あった場合、ディレクトリ構成変更判定部105は、現在処理中のトランザクションのアドレスによって特定されるエントリもしくはウェイのフラグを無効化する変更指示をディレクトリ索引更新制御部106に出力する(S707)。
アクセス回数が規定回数なかった場合、ディレクトリ構成変更判定部105は、現在処理中のエントリを示す情報などを含む競合情報をディレクトリ構成変更判定部105のレジスタに格納する(S706)。なお、アクセス回数は、この競合情報のエントリに関連付けて、エントリ毎にカウントする。
また、競合情報は、フラグ無効化指示を出力したときや、一定期間内にレジスタが示すエントリに対するアクセス、つまりディレクトリアクセス制御部102による読み出しや更新がなかったときは無効にする。
When the access count is the specified count, the directory structure change determination unit 105 outputs to the directory index update control unit 106 a change instruction that invalidates the entry or way flag specified by the address of the transaction currently being processed ( S707).
When the access count is not the specified count, the directory configuration change determination unit 105 stores conflict information including information indicating an entry currently being processed in the register of the directory configuration change determination unit 105 (S706). The number of accesses is counted for each entry in association with the entry of the contention information.
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 access control unit 102.

以上にフラグを変更するかどうかの判定方法の一例を説明したが、ディレクトリ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 directory 61 is monitored by the output device, and based on this, the user inputs information indicating the entry whose flag is to be changed from the input device. Then, the directory configuration change determination unit 105 may set the register in the directory configuration determination unit, and the directory configuration change determination unit 105 may output a flag change instruction to the directory index update control unit 106 at the timing of processing a transaction related to this entry.

また、マルチプロセッサシステム上において動作するプログラムがディレクトリ61の使用状況を取得して、それに基づいてフラグを変更すべきエントリを判断し、そのエントリを示す情報をディレクトリ構成判定部のレジスタに設定し、このエントリに関するトランザクションの処理するタイミングにディレクトリ構成変更判定部105が、フラグの変更指示をディレクトリ索引更新制御部106に出力するようにしてもよい。
さらに、システム立ち上げ時には、ディレクトリの初期化処理、つまりALL0を書き込む処理が行われることが多いが、このときに、任意の値をフラグに書き込むようにしてもよい。
Further, a program operating on the multiprocessor system acquires the usage status of the directory 61, determines an entry whose flag should be changed based on the usage status, sets information indicating the entry in a register of the directory configuration determination unit, The directory configuration change determination unit 105 may output a flag change instruction to the directory index update control unit 106 at the timing of processing a transaction related to this entry.
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 flag 205 is increased, and when the flag value is 00, four hardware macros are used in the way direction, and when the flag value is 01, the flag is set in the set address direction. Two hard macros to be used × two hard macros to be used in the way direction, and when the flag value is 10, four hard macros to be used in the set address direction may be used.

また、例えば、ハードウェアマクロを4つ備え、同様にフラグ205のビット数を増やして、キーアドレスの最下位ビット値が0のハードマクロを3つ、キーアドレスの最下位ビット値が1のハードマクロに1つの使用方法にも変更できるようにしてもよい。
さらに、本実施の形態に例示したように、エントリ単位でのハードマクロの使用方法の変更をせず、フラグ205を有するウェイ単位での変更するようにしてもよい。
In addition, for example, four hardware macros are provided, and the number of bits of the flag 205 is similarly increased so that three hardware macros having the least significant bit value of 0 in the key address and hardware having the least significant bit value of 1 in the key address are provided. The macro may be changed to one usage method.
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 Cell 21, 22, 23, 24 Processor 31, 32, 33, 34 Cache memory 41, 42, 43, 44, 45, 46, 81 Connection means 51, 52 Coherency control circuit 61, 62 Directory 101 Transaction control unit 102 Directory access control unit 103 HM0
104 HM1
105 Directory structure change determination unit 106 Directory index update control unit 107 Flag control function

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.
前記構成判定部は、前記エントリに格納されたアドレス情報のスワップが発生する場合に、前記フラグを変更する請求項に記載のキャッシュメモリ制御回路。 The cache memory control circuit according to claim 1 , wherein the configuration determination unit changes the flag when a swap of the address information stored in the entry occurs. 前記エントリは、前記フラグがセットアドレス方向に使用することを示している場合、前記セットアドレス以外のキーアドレスのうちの所定ビットがとり得る値のそれぞれに対応するように区分され、当該区分には対応付けられた前記所定ビット値と前記所定ビット値が一致するキーアドレスを示すアドレス情報を格納する請求項に記載のキャッシュメモリ制御回路。 When the flag indicates that the flag is used in the set address direction, the entry is divided so as to correspond to each of the possible values of a predetermined bit of the key address other than the set address. cache memory control circuit according to claim 2 for storing address information indicating a key address value of said predetermined bit value of said predetermined bit associated matches. 前記構成判定部は、前記フラグがウェイ方向に使用することを示しており、前記エントリに前記所定ビット値が異なるアドレス情報が混在している場合に、前記フラグをセットアドレス方向に使用することを示すように変更する請求項に記載のキャッシュメモリ制御回路。 The configuration determination section, the flag Ri Contact illustrates using the way direction, when the value of the predetermined bit in the entry is different address information are mixed, using the flag to set the address direction The cache memory control circuit according to claim 3 , which is changed to indicate 前記構成判定部は、前記フラグがセットアドレス方向に使用することを示しており、前記スワップによって新たに格納する前記アドレス情報が示すキーアドレスの前記所定ビット値と異なる値に対応する区分に前記アドレス情報が格納されていない場合に、前記フラグをウェイ方向に使用することを示すように変更する請求項又はに記載のキャッシュメモリ制御回路。 The configuration determination section, Ri your show that the flag is used to set the address direction, the segments corresponding to the predetermined bit value different from the value of the key address indicated by the address information is to be stored newly by the swap 5. The cache memory control circuit according to claim 3 or 4 , wherein when the address information is not stored, the flag is changed to indicate that the flag is used in the way direction . 前記エントリは、N(Nは正整数)ウェイであり、前記フラグがセットアドレス方向に使用することを示している場合、それぞれがN/M(Mは、前記所定ビットが取り得る値の数)ウェイに区分される請求項乃至のいずれか1項に記載のキャッシュメモリ制御回路。 If the entry is an N (N is a positive integer) way and the flag indicates use in the set address direction , each is N / M (M is the number of values that the predetermined bit can take) cache memory control circuit according to any one of claims 3 to 5 are classified to the way. 前記キャッシュメモリ制御回路は、コヒーレンシを保障するために使用されるディレクトリをさらに備え、
前記ディレクトリは、前記キャッシュ情報格納部を有する請求項1乃至のいずれか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.
JP2009011574A 2009-01-22 2009-01-22 Cache memory control circuit and cache memory management method Expired - Fee Related JP5435617B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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