JP6027562B2 - キャッシュメモリシステムおよびプロセッサシステム - Google Patents
キャッシュメモリシステムおよびプロセッサシステム Download PDFInfo
- Publication number
- JP6027562B2 JP6027562B2 JP2014033187A JP2014033187A JP6027562B2 JP 6027562 B2 JP6027562 B2 JP 6027562B2 JP 2014033187 A JP2014033187 A JP 2014033187A JP 2014033187 A JP2014033187 A JP 2014033187A JP 6027562 B2 JP6027562 B2 JP 6027562B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- cache memory
- data
- memory
- presence information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
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/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
- 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/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- 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/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- 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/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- 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/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
-
- 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/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
-
- 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/27—Using a specific cache architecture
- G06F2212/271—Non-uniform cache access [NUCA] architecture
-
- 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/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/507—Control mechanisms for virtual memory, cache or TLB using speculative control
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
プロセッサが発行する仮想アドレスから物理アドレスへのアドレス変換情報を含むページエントリ情報と、変換した物理アドレスのそれぞれに対応するデータが1階層以上の特定のキャッシュメモリに格納されているか否かを示すキャッシュ存在情報と、を格納するトランスレーション・ルックアサイド・バッファと、を備えるキャッシュメモリシステムが提供される。
上述した実施形態では、簡略化のため、TLB4が1階層のページエントリ・キャッシュとなっている方式を示した。しかしながら、TLB4が複数階層の場合においても本実施形態は適用可能である。この場合において、最も単純なキャッシュ存在方法の保持方法は、全ての階層でこれを保持することである。一方で、一部の階層にのみキャッシュ存在情報20を配置する方法も考えられる。例えば、最も下位階層のTLB4にのみキャッシュ存在情報20を配置する方法がある。このような方法を用いることで、TLB4へのアクセスを物理的に異なるメモリに分散し、TLB4のアクセスの衝突による遅延を軽減することが出来る。この効果が得られる典型的な例としては、CPU2からのメモリアクセスによるTLB4の参照と、L4キャッシュ9の配置データ変更に伴うキャッシュ存在情報20の更新のためのTLB4の参照とが同タイミングに発生した場合に、前者の参照は上位階層のTLB4でその要求にこたえ、後者の参照は下位階層のTLB4でその要求にこたえることで、アクセス衝突を回避することが考えられる。
上述した実施形態では、キャッシュ存在情報20としてキャッシュライン毎に1ビットのフラグを保持する形式を示した。しかし、キャッシュ存在情報20はこのような形式に限定されるものではない。
本実施形態は、他のハードウェア・モジュールと協調することで、ページエントリに保持する情報を削減することもできる。ページエントリにL4キャッシュ9に存在するデータライン数のみを記録する場合を例とする。この場合、L4キャッシュ9に存在するデータライン数がゼロ以上である場合にL4キャッシュ9にアクセスする制御ポリシであるとすると、False positiveが高い確率で発生する。これを抑制する方法として、例えば、ページ単位で、ページ内に存在するラインを特定可能なビットベクタを別なハードウェア・モジュールとして持っておき、(TLB4やページテーブル5の)ページエントリの参照によりL4キャッシュ9に存在するデータライン数がゼロ以上であれば上記のハードウェア・モジュールを参照するような制御が考えられる。これにより、TLB4やページテーブル5におけるキャッシュ存在情報20に必要なビット数を抑制しつつ、L4キャッシュ9のアクセス必要性を高精度に判定することが可能となる。
TLB4とページテーブル5の少なくとも一方に設けられるキャッシュ存在情報20は、例えば、キャッシュメモリの電源管理に用いることができる。その例として、L4キャッシュ9へのアクセスが少ないときは、L4キャッシュ9の電源を遮断したり、電源電圧を低下させたる低消費電力モードに移行して、消費電力を削減する場合が考えられる。一般的には、低消費電力モードからデータへのアクセスが可能な状態(アクティブモード)に遷移するには、時間的および電力的なオーバーヘッドがある。つまり、電源遮断中からデータへのアクセスが可能な状態に遷移するためには、いくらかの時間が必要となり、同時に電力も消費する。L4キャッシュアクセス時に低消費電力モードだと、通常のキャッシュレイテンシに加え、電源遮断からアクティブモードへの復帰時間が必要となり、プロセッサ2の性能低下へと繋がる。逆に、積極的にアクティブモードを利用すると、L4キャッシュ9にデータが存在しないにも拘らず、不必要な電力を消費してしまう。
TLB4とページテーブル5の少なくとも一方に配置されたキャッシュ存在情報20は、例えば、デッドブラインの特定にも利用できる。デッドラインとは、今後利用される可能性のないキャッシュラインを指す。例えば、解放されたプロセスが利用していたデータがこれにあたる。利用される可能性のないキャッシュラインの保持はキャッシュメモリの利用効率の低下を引き起こす。
TLB4とページテーブル5の少なくとも一方に配置されたキャッシュ存在情報20は、例えば、NUCA(Non-uniform cache access)の効率的なアクセスにも利用できる。NUCAとは、同一階層のキャッシュをいくつかの領域(バンク)に分割し、ある位置(例えばCPU)からそれぞれの領域に異なるレイテンシでアクセスするキャッシュシステムを指す。このシステムは、特に、大容量のキャッシュを効率的に利用する場合に用いられる。大容量なキャッシュは低速なレイテンシとなりがちだが、NUCAを利用することで、アクセスする対象から近い位置にデータがあれば高速なデータアクセスが可能となる。その利用形態の一例として、マルチコアプロセッサでは、コア毎にバンク(ローカルバンク)を保持し、さらにバンク毎にタグを保持する。あるコアからローカルバンクへとアクセスが発生し、データが存在しなかった場合、コヒーレンシ・アクセスでその他のバンクにデータが存在しないかをチェックする。仮に、その他のバンクにデータが存在したとしても、ローカルバンクへのアクセスとコヒーレンシに要するレイテンシと電力がオーバヘッドとなる。
Claims (16)
- データを格納するデータキャッシュ部と前記データキャッシュ部に格納された各データのアドレスを格納するタグ部とを有する階層化されたk次(k=1からnまでのすべての整数、nは1以上の整数)のキャッシュメモリと、
プロセッサが発行する仮想アドレスから物理アドレスへのアドレス変換情報を含むページエントリ情報と、変換した物理アドレスのそれぞれに対応するデータが1階層以上の特定のキャッシュメモリに格納されているか否かを示すキャッシュ存在情報と、を格納するトランスレーション・ルックアサイド・バッファと、
を備えるキャッシュメモリシステム。 - 前記トランスレーション・ルックアサイド・バッファは、前記特定のキャッシュメモリ内に格納しているデータを変更する際には、当該変更に合わせて前記キャッシュ存在情報を更新する請求項1に記載のキャッシュメモリシステム。
- 前記トランスレーション・ルックアサイド・バッファは、前記特定のキャッシュメモリに新たなデータを書き込む場合と、前記特定のキャッシュメモリに格納されているデータを追い出す場合とに、前記キャッシュ存在情報を更新する請求項2に記載のキャッシュメモリ。
- 前記トランスレーション・ルックアサイド・バッファに格納された前記ページエントリ情報および対応する前記キャッシュ存在情報と、前記トランスレーション・ルックアサイド・バッファに格納しきれなかった前記ページエントリ情報および対応する前記キャッシュ存在情報とを格納するページテーブルと、
前記トランスレーション・ルックアサイド・バッファの前記ページエントリ情報に存在しない物理アドレスにアクセスする場合には、前記ページテーブル内の前記キャッシュ存在情報を参照して、前記特定のキャッシュメモリへのアクセスを行うか否かを判断するメモリ管理ユニットと、を備える請求項1乃至3のいずれかに記載のキャッシュメモリシステム。 - 前記メモリ管理ユニットは、前記トランスレーション・ルックアサイド・バッファに格納された前記ページエントリ情報のうち少なくとも一部のページエントリ情報を他のページエントリ情報に変更する場合には、変更前のページエントリ情報と対応する前記キャッシュ存在情報とを前記ページテーブルに書き戻す請求項4に記載のキャッシュメモリシステム。
- 前記k次のキャッシュメモリは、前記キャッシュ存在情報によって該当するデータが前記特定のキャッシュメモリに格納されていないと判断された場合は、前記特定のキャッシュメモリの前記タグ部にアクセスせずに、前記特定のキャッシュメモリより高次のキャッシュメモリまたはメインメモリにアクセスするメモリ管理ユニットを備える請求項1乃至3のいずれかに記載のキャッシュメモリシステム。
- 前記メモリ管理ユニットは、前記プロセッサからのアクセス要求に応じて前記ページエントリ情報を参照する際に、対応する前記キャッシュ存在情報を取得する請求項4乃至6のいずれかに記載のキャッシュメモリシステム。
- 前記メモリ管理ユニットは、前記キャッシュ存在情報に基づいて、前記特定のキャッシュメモリにアクセスするか否かで前記特定のキャッシュメモリに供給する電力を制御する請求項4乃至7のいずれかに記載のキャッシュメモリシステム。
- 前記メモリ管理ユニットは、プロセッサが解放したプロセスで使用するデータが前記特定のキャッシュメモリに格納されているか否かを前記キャッシュ存在情報に基づいて判断し、当該データを無効化する請求項4乃至7のいずれかに記載のキャッシュメモリシステム。
- 前記特定のキャッシュメモリは、複数のバンクに分かれており、
前記キャッシュ存在情報は、前記特定のキャッシュメモリ中のどのバンクにデータが格納されているかを示すバンク識別情報を含んでおり、
前記メモリ管理ユニットは、前記特定のキャッシュメモリにアクセスする際には、前記キャッシュ存在情報中の前記バンク識別情報に対応するバンクにアクセスする請求項4乃至7のいずれかに記載のキャッシュメモリシステム。 - 前記キャッシュ存在情報は、前記特定のキャッシュメモリのキャッシュラインごとの情報を含む請求項1乃至10のいずれかに記載のキャッシュメモリシステム。
- 前記キャッシュ存在情報は、前記トランスレーション・ルックアサイド・バッファのページエントリ毎に、1ページ内に含まれる前記特定のキャッシュメモリの全キャッシュラインの情報を要約化した1ビット以上のビット列を含む請求項11に記載のキャッシュメモリシステム。
- 前記キャッシュ存在情報は、前記トランスレーション・ルックアサイド・バッファのページエントリごとに、1ページ内に含まれる前記特定のキャッシュメモリの全キャッシュラインのそれぞれについて、1ビットずつ設けられる請求項10または11に記載のキャッシュメモリシステム。
- 前記特定のキャッシュメモリは、最も高次のキャッシュメモリである請求項1乃至13のいずれかに記載のキャッシュメモリシステム。
- 前記特定のキャッシュメモリは、MRAM(Magnetoresistive RAM)セルを用いて構成される請求項1乃至14のいずれかに記載のキャッシュメモリシステム。
- プロセッサと、
データを格納するデータキャッシュ部と前記データキャッシュ部に格納された各データのアドレスを格納するタグ部とを有する階層化されたk次(k=1からnまでのすべての整数、nは1以上の整数)のキャッシュメモリと、
前記プロセッサが発行する仮想アドレスから物理アドレスへのアドレス変換情報を含むページエントリ情報と、変換した物理アドレスのそれぞれに対応するデータが1階層以上の特定のキャッシュメモリに格納されているか否かを示すキャッシュ存在情報と、を格納するトランスレーション・ルックアサイド・バッファと、を備えるプロセッサシステム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014033187A JP6027562B2 (ja) | 2014-02-24 | 2014-02-24 | キャッシュメモリシステムおよびプロセッサシステム |
PCT/JP2015/055245 WO2015125971A1 (ja) | 2014-02-24 | 2015-02-24 | キャッシュ存在情報を有するtlb |
US15/243,196 US10025719B2 (en) | 2014-02-24 | 2016-08-22 | Cache memory system and processor system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014033187A JP6027562B2 (ja) | 2014-02-24 | 2014-02-24 | キャッシュメモリシステムおよびプロセッサシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015158798A JP2015158798A (ja) | 2015-09-03 |
JP6027562B2 true JP6027562B2 (ja) | 2016-11-16 |
Family
ID=53878467
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014033187A Active JP6027562B2 (ja) | 2014-02-24 | 2014-02-24 | キャッシュメモリシステムおよびプロセッサシステム |
Country Status (3)
Country | Link |
---|---|
US (1) | US10025719B2 (ja) |
JP (1) | JP6027562B2 (ja) |
WO (1) | WO2015125971A1 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016177689A (ja) | 2015-03-20 | 2016-10-06 | 株式会社東芝 | メモリシステム |
US10019375B2 (en) * | 2016-03-02 | 2018-07-10 | Toshiba Memory Corporation | Cache device and semiconductor device including a tag memory storing absence, compression and write state information |
US10169233B2 (en) * | 2017-06-05 | 2019-01-01 | International Business Machines Corporation | Translation lookaside buffer purging with concurrent cache updates |
US10528483B2 (en) | 2017-10-23 | 2020-01-07 | Advanced Micro Devices, Inc. | Hybrid lower-level cache inclusion policy for cache hierarchy having at least three caching levels |
CN111868700B (zh) * | 2018-02-28 | 2024-04-19 | 索尼公司 | 存储器管理***、存储器管理方法以及信息处理设备 |
US11074001B2 (en) * | 2018-04-09 | 2021-07-27 | Red Hat, Inc. | Managing virtual-machine image cloning |
US11262946B2 (en) * | 2019-11-25 | 2022-03-01 | Micron Technology, Inc. | Cache-based memory read commands |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2580587B2 (ja) * | 1987-03-03 | 1997-02-12 | 日本電気株式会社 | アドレス変換バッファ |
US5233700A (en) | 1987-03-03 | 1993-08-03 | Nec Corporation | Address translation device with an address translation buffer loaded with presence bits |
JPH01311343A (ja) * | 1988-06-09 | 1989-12-15 | Fujitsu Ltd | メモリ制御方式 |
JPH03232034A (ja) | 1990-02-08 | 1991-10-16 | Oki Electric Ind Co Ltd | キャッシュ制御装置 |
JP2001256108A (ja) * | 2000-03-10 | 2001-09-21 | Mitsubishi Electric Corp | メモリ内蔵マイクロプロセッサ |
US6574708B2 (en) * | 2001-05-18 | 2003-06-03 | Broadcom Corporation | Source controlled cache allocation |
JPWO2006038258A1 (ja) | 2004-09-30 | 2008-05-15 | 株式会社ルネサステクノロジ | データプロセッサ |
CN104346294B (zh) * | 2013-07-31 | 2017-08-25 | 华为技术有限公司 | 基于多级缓存的数据读/写方法、装置和计算机*** |
-
2014
- 2014-02-24 JP JP2014033187A patent/JP6027562B2/ja active Active
-
2015
- 2015-02-24 WO PCT/JP2015/055245 patent/WO2015125971A1/ja active Application Filing
-
2016
- 2016-08-22 US US15/243,196 patent/US10025719B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20160357683A1 (en) | 2016-12-08 |
JP2015158798A (ja) | 2015-09-03 |
US10025719B2 (en) | 2018-07-17 |
WO2015125971A1 (ja) | 2015-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6118285B2 (ja) | キャッシュメモリシステムおよびプロセッサシステム | |
JP6027562B2 (ja) | キャッシュメモリシステムおよびプロセッサシステム | |
US10402331B2 (en) | Systems and methods for implementing a tag-less shared cache and a larger backing cache | |
KR102448124B1 (ko) | 가상 주소들을 사용하여 액세스된 캐시 | |
US11023376B2 (en) | System and methods for efficient virtually-tagged cache implementation | |
US10031854B2 (en) | Memory system | |
JP6088951B2 (ja) | キャッシュメモリシステムおよびプロセッサシステム | |
CN116701250A (zh) | 支持巨页的内存管理 | |
US9772943B1 (en) | Managing synonyms in virtual-address caches | |
US10564871B2 (en) | Memory system having multiple different type memories with various data granularities | |
WO2013148872A1 (en) | Concurrently accessed set associative overflow cache | |
KR102252377B1 (ko) | 멀티 프로세서 시스템 및 이에 포함된 프로세서의 데이터 관리 방법 | |
WO2024066195A1 (zh) | 缓存管理方法及装置、缓存装置、电子装置和介质 | |
KR20180122969A (ko) | 멀티 프로세서 시스템 및 이에 포함된 프로세서의 데이터 관리 방법 | |
US9128856B2 (en) | Selective cache fills in response to write misses | |
US9639467B2 (en) | Environment-aware cache flushing mechanism | |
US10725675B2 (en) | Management apparatus, information processing apparatus, management method, and computer program product | |
JP6140233B2 (ja) | メモリシステム | |
Mittal et al. | Cache performance improvement using software-based approach |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160325 |
|
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: 20160916 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20161014 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6027562 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
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 |