JP2010170292A - キャッシュメモリ制御回路およびキャッシュメモリ管理方法 - Google Patents
キャッシュメモリ制御回路およびキャッシュメモリ管理方法 Download PDFInfo
- Publication number
- JP2010170292A JP2010170292A JP2009011574A JP2009011574A JP2010170292A JP 2010170292 A JP2010170292 A JP 2010170292A JP 2009011574 A JP2009011574 A JP 2009011574A JP 2009011574 A JP2009011574 A JP 2009011574A JP 2010170292 A JP2010170292 A JP 2010170292A
- Authority
- JP
- Japan
- Prior art keywords
- address
- directory
- cache memory
- flag
- 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.)
- Granted
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)
Abstract
【解決手段】本発明にかかるキャッシュメモリ制御回路は、セットアソシアティブ方式によって、メインメモリ71に記憶されるデータをキャッシュメモリに記憶するキャッシュメモリ制御回路である。キャッシュメモリに記憶するデータのメインメモリ71上のアドレスを示すアドレス情報を含み、セットアドレスのそれぞれに対応するエントリと、メインメモリ上のアドレス値であって、セットアドレス以外の値のいずれかに応じて、エントリ内をさらに区分してアドレス情報を格納するか否かを示し、エントリのそれぞれに対応するフラグを格納するキャッシュ情報格納部を備える。
【選択図】図2
Description
また、共有メモリ型マルチプロセッサシステムにおいては、N(Nは正整数)ウェイセットアソシアティブ方式のディレクトリを搭載する場合がある。このディレクトリに、フルアソシアティブ方式を採用した場合は、キャッシュメモリのキャッシュラインに記憶するアドレスの制限がなくなる一方、必要なハードウェア量も増大してしまう。そのため、複数レベルのキャッシュメモリによるNウェイセットアソシアティブ方式が用いられることが多い。
また、共有メモリ型マルチプロセッサシステムは、複数のプロセッサから構成され、これらのプロセッサのそれぞれが実行するアプリケーションの処理が混在するため、アプリケーションの動作状態に応じて、ウェイ数やセットアドレス数を変更することができるディレクトリを備えることが望まれている。
なお、特許文献1、2、4、5には、セットアソシアティブ方式のキャッシュメモリ制御に関する技術が開示されている。
また、特許文献3には、キャッシュメモリのタグ部に対するセットアドレスを最適に設定する技術が開示されている。
図1は、本発明の実施の形態にかかるマルチプロセッサシステムの全体構成を示すブロック図である。
マルチプロセッサシステムは、セル11、12を備える。
プロセッサ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によって共有可能なメモリである。
なお、セル12の構成要素は、セル11と同様であるため、説明を省略する。
ここで、ディレクトリ61、62は、セットアソシアティブ方式のディレクトリであるため、新たにキャッシュメモリにデータを記憶する場合にディレクトリ61、62に空きがない場合はスワップを行う必要がある。
本実施の形態におけるスワップとは、セットアソシアティブ方式を採用するディレクトリにおいて生じる処理である。詳しくは、新たにキャッシュメモリに記憶するデータのアドレス情報を、ディレクトリに対して格納する必要が生じたときに、これを格納する領域がディレクトリに存在しない場合は、ディレクトリに既に格納されているアドレス情報のいずれかを排除し、新たなアドレス情報を格納するための空き領域を生成する。この既に格納されている情報を排除する処理がスワップである。このとき、ディレクトリからスワップしたアドレス情報に対応し、キャッシュメモリに記憶されているデータについても、コヒーレンシを保つために無効化を行う。
コヒーレンシ制御回路51は、ディレクトリ61、トランザクション制御部101、ディレクトリアクセス制御部102、ディレクトリ構成変更判定部105及びフラグ制御機能107を有するディレクトリ索引更新制御部106を備える。
ディレクトリ61は、HM0(103)及びHM1(104)の2つのハードマクロを含む。ハードマクロは、セットアドレス数のエントリから構成され、1つのハードマクロには2ウェイのアドレス情報が入る。2つのハードマクロを含むディレクトリ61は、合計4ウェイのアドレス情報を格納する。
ここで、トランザクションは、例えば、プロセッサ21がメインメモリ71の任意のアドレスに記憶されているデータにアクセスする場合、このアドレスを指定してトランザクション制御部101に対して出力される。これに応じて、トランザクション制御部101は、後に詳述するコヒーレンシ制御回路51の処理の結果に基づいて、任意のアドレスに記憶されているデータをメインメモリ71もしくはキャッシュメモリ31、32、33、34のいずれから取得したらよいかを答えるトランザクションをプロセッサ21に出力する。
なお、トランザクション制御101は、ディレクトリ61に関するトランザクション、つまり、メインメモリ71のアクセスに関するトランザクションを受信した場合に、このトランザクションをディレクトリアクセス制御部102に出力する。
HM0(103)及びHM1(104)は、ハードマクロであり、ディレクトリアクセス制御部102から、読み出し指示の出力を受けた場合、エントリの読み出しデータをディレクトリ索引更新制御部106に出力する。
詳しくは、ディレクトリ61に新たなアドレス情報を登録するときに、フラグが無効を示している、言い換えると、全てのハードマクロをウェイ方向に使用することを示している。この場合、1エントリに含まれるHM0(103)及びHM1(104)の全4ウェイの中から4ウェイセットアソシアティブ方式により、LRU法等に従って、アドレス情報を登録するウェイを選択する。
フラグが有効を示している、言い換えると、全てのハードマクロをセットアドレス方向に使用することを示している。この場合、1エントリに含まれるHM0(103)及びHM1(104)のそれぞれを別々の2ウェイとして扱い、どちらかの2ウェイの中から2ウェイセットアソシアティブ方式により、LRU法等に従って、アドレス情報を登録するウェイを選択する。なお、フラグが有効な場合、HM0(103)及びHM1(104)は、セットアドレスに1bitの拡張セットアドレスを加えたアドレスをセットアドレスとみなして使用する。フラグについては、後に詳述するが、エントリ毎にその値を判断することができる。
セットアドレス202は、キャッシュメモリ31、32、33、34に記憶されるデータのメインメモリ71上におけるアドレスのうちの所定のビット部分の値を格納する。ディレクトリ61のエントリのインデックスとして用いられる。セットアドレス202に基づいて、トランザクションに含まれるアドレスに対応するエントリを特定することで、ディレクトリ206の索引や更新を行うことができる。
本実施の形態においては、アドレスの最上位bit番号をm、キーアドレスの最下位bit番号をkとすると、アドレスはm:0、キーアドレスはm:k、セットアドレスはk−1:0となる。
ステータス情報203は、ディレクトリ206のキーアドレス201及びセットアドレス202から構成されるアドレスが示すデータのキャッシング状態を示す。ステータス情報206は、データがキャッシュメモリに記憶されているかどうかを示す値を格納する。
エージェント情報204は、アドレスが示すデータをキャッシングしているキャッシュメモリを有するプロセッサの位置を示す情報である。
図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は、ウェイ単位でなく、エントリ単位で用意してもよい。
まず、コヒーレンシ制御回路51のトランザクション制御部101は、プロセッサ2122やセル12からトランザクションの出力を受けた場合に、ディレクトリ61へのアクセスが必要なときは、このトランザクションをディレクトリアクセス制御部102に出力する。なお、ディレクトリ61へのアクセスが必要でないときは、トランザクションがメインメモリ72へのアクセスが示しているときとなる。この場合は、コヒーレンシ制御回路51は、コヒーレンシ制御回路52にトランザクションを転送する。
HM0(103)及びHM1(104)は、ディレクトリアクセス制御部102から読み出し指示の出力を受けると、指定されたセットアドレスに対応するエントリの読み出しデータをディレクトリ索引更新制御部106に出力する。
一致したものがなかった場合、ディレクトリ索引更新制御部106は、その旨をトランザクション制御部101に出力する。
この場合は、キャッシュメモリ31、32、33、34にトランザクションに含まれるアドレスのデータが記憶されてないことを示す。よって、トランザクション制御部101は、トランザクションの出力元に対して、メインメモリ71からデータを取得する旨のトランザクションを出力する。
この場合は、キャッシュメモリ31、32、33、34にトランザクションに含まれるアドレスのデータが記憶されていることを示す。
ここで、トランザクション制御部101は、ステータス情報203には、キャッシュメモリ31、32、33、34にキャッシングされたデータとメインメモリ71のデータの内容が一致しているかどうかを示す情報も格納することができる。これにより、ステータス情報203が一致を示している場合はメインメモリ71からデータを取得する旨を、ステータス情報203が一致を示していない場合はエージェント情報204が示すプロセッサのキャッシュメモリからデータを取得する旨のトランザクションを出力する。
まず、トランザクションの出力を受けると、上述したような索引制御が行われる(S301)。
フラグ205の値が0であり無効の場合、ディレクトリ索引更新制御部106は、ディレクトリ構成変更判定部105からのフラグ有効化指示を確認する(S304)。
フラグ有効化指示がなかった場合、ディレクトリ索引更新制御部106は、ディレクトリ61のHM0(103)とHM1(104)を同じセットアドレス制御とした4ウェイのディレクトリ更新制御を行う(S307)。そして、ディレクトリ索引更新制御部106は、ディレクトリ61に書き込むディレクトリ更新データを生成して、ディレクトリアクセス制御部102に、ディレクトリ更新データとディレクトリ更新指示を出力する。ディレクトリ更新指示の出力を受けたディレクトリアクセス制御部102は、ディレクトリ61にディレクトリ更新データを書き込む(S309)。ステップS309の処理により、例えば、新たにキャッシュメモリに記憶するデータのアドレス情報が登録される。
なお、ステップS307、S308におけるにディレクトリ更新制御の動作については、後に詳述する。
フラグ無効化指示がなかった場合、ディレクトリ索引更新制御部106は、フラグ205は有効のままとして(S306)、HM0(103)とHM1(104)を異なるセットアドレスとしたディレクトリ更新制御を行う(S308)。そして、上述と同様に、ディレクトリ更新をする(S309)。
一致するウェイがあった場合、フラグ制御機能107は、トランザクションに含まれるアドレスのキーアドレス201の最下位bit kの値が0であるため、bit kの値が0として扱われるHM0(103)に一致したウェイがあるかどうかを確認する(S402)。
そして、ディレクトリ索引更新制御部106は、そのウェイを更新するためのディレクトリ更新データを生成して(S411)、ディレクトリ61の更新を行う。
ここで、一致するウェイがあった場合であっても、そのウェイのエージェント情報204が示すプロセッサと異なるプロセッサからのトランザクションであったときは、エージェント情報204の更新が必要となるため、ウェイの更新を行っている。なお、ウェイの内容に変更が全くない場合には、ステップS411を行わないようにしてもよい。後に詳述する図7のステップS507についても同様である。
ここで、このHM0(103)を更新するディレクトリ書き込みデータの作成は、ディレクトリ61に一致するアドレスがなかった場合と同様のステップS404以降の処理によって行う。
使用されていないウェイがある場合、フラグ制御機能107は、空きウェイを選択する(S405)。
そして、ディレクトリ索引更新制御部106は、そのウェイに対するディレクトリ書き込みデータを作成して(S411)、ディレクトリ61の更新を行う。
使用されていないウェイがない場合、フラグ制御機能107は、更新対象となるHM0(103)に、HM1(104)に格納されるべきウェイ、つまりbit kの値が1であるウェイがあるかどうかを調べる(S406)。
bit kの値が1であるウェイがなかった場合、フラグ制御機能107は、HM0(103)からLRU法等により書き込むウェイを選択する(S407)。また、ディレクトリ索引更新制御部106は、ステップS407もしくはS408において選択したウェイに格納されたアドレスのキャッシュを無効化するために、そのアドレスを含んだスワップ発行指示をトランザクション制御部101に出力する(S409)。そして、選択したウェイを更新するためのディレクトリ更新データを生成して(S411)、ディレクトリ61の更新を行う。
まず、フラグ制御機能107は、エントリの読み出しデータにトランザクションのキーアドレスと一致するキーアドレス201を格納するウェイがあるかを確認する(S501)。
一致するウェイがあった場合、フラグ制御機能107は、そのウェイを選択する(S502)。
そして、ディレクトリ索引更新制御部106は、そのウェイを更新するためのディレクトリ更新データを生成して(S507)、ディレクトリ61の更新を行う。
使用されていないウェイがある場合、フラグ制御機能107は、空きウェイを選択する(S504)。
そして、ディレクトリ索引更新制御部106は、そのウェイに対するディレクトリ書き込みデータを作成して(S507)、ディレクトリ61の更新を行う。
そして、ディレクトリ索引更新制御部106は、選択したウェイに格納されたアドレスのキャッシュを無効化するために、そのアドレスを含んだスワップ発行指示をトランザクション制御部101に出力する(S506)。そして、選択したウェイを更新するためのディレクトリ更新データを生成して(S507)、ディレクトリ61の更新を行う。
まず、ディレクトリアクセス制御部102において、トランザクションの競合があった場合、その競合したトランザクションのそれぞれに含まれるアドレスのキーアドレスの最下位bit kの値が異なるかどうかを判定する(S601)。
ここで、本実施の形態における競合とは、あるトランザクションに対する処理の実行中に、そのトランザクションとセットアドレスが同じトランザクションをディレクトリアクセス制御部102が受けることをいう。なお、この場合は、ディレクトリアクセス制御部102において、先のトランザクションの処理が完了するまで、後続のトランザクションをキューイングする等して、処理を実行しないようにする。
bit kの値が異なる場合、ディレクトリ構成変更判定部105は、ディレクトリ索引更新制御部106から出力されたエントリの読み出しデータにキーアドレスの最下位bit kの値が0と1のウェイが混在しているかどうかを判断する(S602)。
値が混在していない場合、ディレクトリ構成変更判定部105は、処理を終了する。
値が混在している場合、ディレクトリ構成変更判定部105は、ディレクトリアクセス制御部102から出力されたトランザクション及びエントリの読み出しデータに基づいて、スワップが必要かどうかを判断する(S603)。
スワップが必要でない場合、ディレクトリ構成変更判定部105は、ディレクトリ構成変更判定部105が有するレジスタに、現在処理中のエントリを示す情報及び発生回数などを含む競合情報を格納する(S604)。このように発生回数は、エントリに関連付けて、エントリ毎にカウントする。
規定回数に達した場合、ディレクトリ構成変更判定部105は、現在処理中のトランザクションのアドレスによって特定されるエントリもしくはウェイのフラグを有効化する変更指示をディレクトリ索引更新制御部106に出力する(S606)。
規定回数に達していない場合、ディレクトリ構成変更判定部105は、処理を終了する。
なお、競合情報は、フラグを有効化する変更指示を出力したときや、一定期間内にレジスタが示すエントリに対するアクセス、つまりディレクトリアクセス制御部102による読み出しや更新がなかったときは無効にする。
まず、ディレクトリアクセス制御部102において、トランザクションの競合があった場合、その競合したトランザクションのそれぞれに含まれるアドレスのキーアドレスの最下位bit kの値が異なるかどうかを判定する(S701)。
bit kの値が異なる場合、ディレクトリ構成変更判定部105は、処理を終了する。
bit kの値が同じ場合、ディレクトリ構成変更判定部105は、ディレクトリ索引更新制御部106から出力されたエントリの読み出しデータに、フラグ205が有効であるウェイがあるかどうかを判断する(S702)。
フラグ205が有効を示す場合、ディレクトリ構成変更判定部105は、ディレクトリアクセス制御部102から出力されたトランザクション及びエントリの読み出しデータに基づいて、スワップが必要かどうかを判断する(S703)。
スワップが必要でない場合、ディレクトリ構成変更判定部105は、処理を終了する。
スワップが必要な場合、ディレクトリ構成変更判定部105は、エントリの読み出しデータに基づいて、現在処理中のトランザクションのキーアドレス201の最下位bit kと異なる値を格納対象としているハードマクロのウェイが使用されているかどうかを確認する(S704)。
使用されているウェイがある場合、ディレクトリ構成変更判定部105は、現在処理中のトランザクションのキーアドレス201の最下位bit kが異なる値を格納対象としているハードマクロ側に対するアクセス、つまりディレクトリアクセス制御部102による更新が、予め定めた期間内に予め定めた規定回数あったかどうかを判断する(S705)。
アクセス回数が規定回数なかった場合、ディレクトリ構成変更判定部105は、現在処理中のエントリを示す情報などを含む競合情報をディレクトリ構成変更判定部105のレジスタに格納する(S706)。なお、アクセス回数は、この競合情報のエントリに関連付けて、エントリ毎にカウントする。
また、競合情報は、フラグ無効化指示を出力したときや、一定期間内にレジスタが示すエントリに対するアクセス、つまりディレクトリアクセス制御部102による読み出しや更新がなかったときは無効にする。
さらに、システム立ち上げ時には、ディレクトリの初期化処理、つまりALL0を書き込む処理が行われることが多いが、このときに、任意の値をフラグに書き込むようにしてもよい。
例えば、ハードウェアマクロを4つ備え、フラグ205のビット数を増やして、フラグの値が00の場合はウェイ方向に使用するハードマクロを4つ、フラグの値が01の場合はセットアドレス方向に使用するハードマクロ2つ×ウェイ方向に使用するハードマクロ2つ、フラグの値が10の場合はセットアドレス方向に使用するハードマクロ4つとする構成としてもよい。
さらに、本実施の形態に例示したように、エントリ単位でのハードマクロの使用方法の変更をせず、フラグ205を有するウェイ単位での変更するようにしてもよい。
また、キャッシュメモリの使用方法を変更するフラグをエントリ単位に備えることによって、エントリ単位でのウェイ数やセットアドレス数の変更を可能としている。
さらに、プロセッサからの直接の制御がなくても、ディレクトリのコヒーレンシ機能を保ちながらキャッシュメモリを有効利用することが可能である。
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 フラグ制御機能
Claims (9)
- セットアソシアティブ方式によって、メインメモリに記憶されるデータをキャッシュメモリに記憶するキャッシュメモリ制御回路であって、
前記キャッシュメモリに記憶するデータの前記メインメモリ上のアドレスを示すアドレス情報を含み、セットアドレスのそれぞれに対応するエントリと、
前記メインメモリ上のアドレス値であって、前記セットアドレス以外の値のいずれかに応じて、エントリ内をさらに区分して前記アドレス情報を格納するか否かを示し、前記エントリのそれぞれに対応するフラグを格納するキャッシュ情報格納部を備えたキャッシュメモリ制御回路。 - 前記キャッシュメモリ制御回路は、前記エントリに含まれるアドレス情報の値に応じて、当該エントリに対応するフラグを変更する構成判定部をさらに備えた請求項1に記載のキャッシュメモリ制御回路。
- 前記構成判定部は、前記エントリに含まれるアドレス情報のスワップが発生する場合に、前記フラグを変更する請求項2に記載のキャッシュメモリ制御回路。
- 前記エントリは、前記フラグが有効である場合、前記セットアドレス以外の値のうちの所定ビットがとり得る値のそれぞれに対応するように区分され、当該区分には対応付けられた前記所定ビット値と前記所定ビット値が一致する前記アドレス情報を格納する請求項3に記載のキャッシュメモリ制御回路。
- 前記構成判定部は、前記フラグが無効であり、前記エントリに前記所定ビット値が異なるアドレス情報が混在している場合に、前記フラグを有効とする請求項4に記載のキャッシュメモリ制御回路。
- 前記構成判定部は、前記フラグが有効であり、前記スワップによって新たに格納する前記アドレス情報の前記所定ビット値と異なる値に対応する区分に前記アドレス情報が格納されていない場合に、前記フラグを無効とする請求項4又は5に記載のキャッシュメモリ制御回路。
- 前記エントリは、N(Nは正整数)ウェイのアドレス情報が含まれ、前記フラグが有効である場合、それぞれがN/M(Mは、前記所定ビットが取り得る値の数)ウェイに区分される請求項4乃至6のいずれかに記載のキャッシュメモリ制御回路。
- 前記キャッシュメモリ制御回路は、コヒーレンシを保障するために使用されるディレクトリをさらに備え、
前記ディレクトリは、前記キャッシュ情報格納部を有する請求項1乃至7のいずれかに記載のキャッシュメモリ制御回路。 - セットアソシアティブ方式により、キャッシュメモリに記憶するデータのアドレスを管理するアドレス管理方法であって、
前記アドレス値であって、セットアドレス以外の値のいずれかに応じて、さらにエントリを区分して格納するか否かを示すフラグをエントリ毎に設定するステップと、
前記フラグに応じて、前記アドレスを管理するステップとを備えたアドレス管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009011574A JP5435617B2 (ja) | 2009-01-22 | 2009-01-22 | キャッシュメモリ制御回路およびキャッシュメモリ管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009011574A JP5435617B2 (ja) | 2009-01-22 | 2009-01-22 | キャッシュメモリ制御回路およびキャッシュメモリ管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010170292A true JP2010170292A (ja) | 2010-08-05 |
JP5435617B2 JP5435617B2 (ja) | 2014-03-05 |
Family
ID=42702396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009011574A Expired - Fee Related JP5435617B2 (ja) | 2009-01-22 | 2009-01-22 | キャッシュメモリ制御回路およびキャッシュメモリ管理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5435617B2 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012138038A (ja) * | 2010-12-28 | 2012-07-19 | Nec Computertechno Ltd | マルチプロセッサシステム、リクエスト処理方法、及びノード |
JP2017503298A (ja) * | 2014-12-14 | 2017-01-26 | ヴィア アライアンス セミコンダクター カンパニー リミテッド | アドレス・タグ・ビットに基づく動的キャッシュ置換ウェイ選択 |
JP2017503299A (ja) * | 2014-12-14 | 2017-01-26 | ヴィア アライアンス セミコンダクター カンパニー リミテッド | モードに応じてセットの1つ又は複数を選択的に選択するように動的に構成可能であるマルチモード・セット・アソシエイティブ・キャッシュ・メモリ |
JP2017507442A (ja) * | 2014-12-14 | 2017-03-16 | ヴィア アライアンス セミコンダクター カンパニー リミテッド | モードに応じてウェイの全部又はサブセットに選択的に割り当てるように動的に構成可能であるマルチモード・セット・アソシエイティブ・キャッシュ・メモリ |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01233537A (ja) * | 1988-03-15 | 1989-09-19 | Toshiba Corp | キャッシュメモリを備えた情報処理装置 |
JPH0496843A (ja) * | 1990-08-15 | 1992-03-30 | Fujitsu Ltd | キャッシュメモリ制御方式 |
JPH0520193A (ja) * | 1991-07-15 | 1993-01-29 | Oki Electric Ind Co Ltd | キヤツシユ・メモリ装置 |
JP2006510992A (ja) * | 2002-12-17 | 2006-03-30 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ライン幅を選択的に変更することが可能なメモリ |
-
2009
- 2009-01-22 JP JP2009011574A patent/JP5435617B2/ja not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01233537A (ja) * | 1988-03-15 | 1989-09-19 | Toshiba Corp | キャッシュメモリを備えた情報処理装置 |
JPH0496843A (ja) * | 1990-08-15 | 1992-03-30 | Fujitsu Ltd | キャッシュメモリ制御方式 |
JPH0520193A (ja) * | 1991-07-15 | 1993-01-29 | Oki Electric Ind Co Ltd | キヤツシユ・メモリ装置 |
JP2006510992A (ja) * | 2002-12-17 | 2006-03-30 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ライン幅を選択的に変更することが可能なメモリ |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012138038A (ja) * | 2010-12-28 | 2012-07-19 | Nec Computertechno Ltd | マルチプロセッサシステム、リクエスト処理方法、及びノード |
JP2017503298A (ja) * | 2014-12-14 | 2017-01-26 | ヴィア アライアンス セミコンダクター カンパニー リミテッド | アドレス・タグ・ビットに基づく動的キャッシュ置換ウェイ選択 |
JP2017503299A (ja) * | 2014-12-14 | 2017-01-26 | ヴィア アライアンス セミコンダクター カンパニー リミテッド | モードに応じてセットの1つ又は複数を選択的に選択するように動的に構成可能であるマルチモード・セット・アソシエイティブ・キャッシュ・メモリ |
JP2017507442A (ja) * | 2014-12-14 | 2017-03-16 | ヴィア アライアンス セミコンダクター カンパニー リミテッド | モードに応じてウェイの全部又はサブセットに選択的に割り当てるように動的に構成可能であるマルチモード・セット・アソシエイティブ・キャッシュ・メモリ |
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 |
US10719434B2 (en) | 2014-12-14 | 2020-07-21 | Via Alliance Semiconductors 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 |
Also Published As
Publication number | Publication date |
---|---|
JP5435617B2 (ja) | 2014-03-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 | |
US8949572B2 (en) | Effective address cache memory, processor and effective address caching method | |
JP4613247B2 (ja) | 演算処理装置、情報処理装置及び演算処理装置の制御方法 | |
KR101639672B1 (ko) | 무한 트랜잭션 메모리 시스템 및 그 동작 방법 | |
US8103834B2 (en) | Coherence protocol with dynamic privatization | |
US8271735B2 (en) | Cache-coherency protocol with held state | |
US9892039B2 (en) | Non-temporal write combining using cache resources | |
US10725923B1 (en) | Cache access detection and prediction | |
US20080320233A1 (en) | Reduced Handling of Writeback Data | |
US10019377B2 (en) | Managing cache coherence using information in a page table | |
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 | |
US20170116126A1 (en) | Coherence de-coupling buffer | |
JP5435617B2 (ja) | キャッシュメモリ制御回路およびキャッシュメモリ管理方法 | |
US20070130426A1 (en) | Cache system and shared secondary cache with flags to indicate masters | |
KR20070040340A (ko) | 소형 캐시 시스템에서 원자적 보존 라인에 라이트백하는것을 배제하는 방법 및 시스템 | |
JP5319049B2 (ja) | キャッシュシステム | |
JP2007533014A (ja) | ライトバックキャッシュにおいてスヌーププッシュ処理やスヌープキル処理が同時発生しているときのライトバック処理をキャンセルするためのシステムおよび方法 | |
JP2020003959A (ja) | 情報処理装置、演算処理装置及び情報処理装置の制御方法 | |
JP3732397B2 (ja) | キャッシュシステム | |
US9442856B2 (en) | Data processing apparatus and method for handling performance of a cache maintenance operation | |
US10565111B2 (en) | Processor | |
US9886212B2 (en) | Mechanism for copying data in memory | |
US7543112B1 (en) | Efficient on-chip instruction and data caching for chip multiprocessors | |
JP4266605B2 (ja) | キャッシュ回路 |
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 |