JPWO2018179044A1 - キャッシュメモリおよびその制御方法 - Google Patents
キャッシュメモリおよびその制御方法 Download PDFInfo
- Publication number
- JPWO2018179044A1 JPWO2018179044A1 JP2019508345A JP2019508345A JPWO2018179044A1 JP WO2018179044 A1 JPWO2018179044 A1 JP WO2018179044A1 JP 2019508345 A JP2019508345 A JP 2019508345A JP 2019508345 A JP2019508345 A JP 2019508345A JP WO2018179044 A1 JPWO2018179044 A1 JP WO2018179044A1
- Authority
- JP
- Japan
- Prior art keywords
- memory
- cache
- address
- data
- memory address
- 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/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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- 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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- 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
-
- 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/1041—Resource optimization
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
Description
最初に、キャッシュメモリのマッピング方式について簡単に説明する。代表的なマッピング方式には、フルアソシアティブ方式とダイレクトマップ方式とセットアソシアティブ方式とがある。
本開示のキャッシュメモリでは、アクセス対象であるメモリ装置4のメモリ空間が複数の領域に区分される。そして、メモリ空間に設けられた領域ごとに使用するキャッシュメモリの領域(具体的には、キャッシュラインを識別するインデックス)が異なるようにキャッシュメモリが制御される。これにより、再利用性の高いデータが格納されるキャッシュメモリの領域と再利用性の低いデータが格納されるキャッシュメモリの領域とを分離することができる。結果として、再利用性が高いけれどもアクセス頻度の低いデータを格納しているキャッシュラインが再利用性の低いデータによって入れ替えられることを防止できるので、キャッシュ効率を高めることができる。
[情報処理装置の一例]
図1は、実施の形態1のキャッシュメモリが実装された情報処理装置の構成の一例を示すブロック図である。図1の情報処理装置の構成は、実施の形態2および実施の形態3にも適用可能である。図1を参照して、情報処理装置は、演算装置1と、キャッシュメモリ2と、メモリアクセス制御部3と、メモリ装置4とを備える。
図2は、実施の形態1によるキャッシュメモリの構成の一例を示すブロック図である。図2のキャッシュメモリ2のマッピング方式は、セットアソシアティブ方式である。インデックスを表す番号を0〜mとし、各インデックスに対応するウェイを表す番号を0〜nとしている。図2では、主として、演算装置1が発行した命令が読出し命令の場合における、データの流れを矢印で示している。
[アドレス変換情報格納部]
図3は、メモリ空間の複数のメモリ領域とキャッシュラインとの対応付けについて説明するための図である。なお、一例として、キャッシュメモリ2のインデックス数を16(すなわち、図2でm=15)とする。セットアソシアティブ方式の場合、各インデックスごとに複数のウェイ(図2の例では、n+1個のウェイway(0)〜way(n))が設けられている。
図2を参照して、アドレス変換部12は、アドレス変換情報格納部14に格納されたアドレス変換情報を参照することにより、入力されたメモリアドレスMAからキャッシュメモリアドレスCMAを生成する。
アドレス変換部12は、アドレス変換情報格納部14に格納されたアドレス変換情報の各メモリ領域の開始アドレスおよびメモリサイズを参照することによって、入力されたメモリアドレスMAが対応するメモリ領域を判定する。図3の例では、メモリ領域R1、メモリ領域R2の順に判定し、該当しない場合はメモリ全体を示すデフォルト領域に対応すると判定される。
次に、アドレス変換部12は、手順1で判定されたメモリ領域に対応するキャッシュラインの全インデックス数をアドレス変換情報格納部14から参照することにより、入力されたメモリアドレスMAのタグのビット長およびインデックスのビット長を判定する。なお、オフセットのビット長は2ビットであるとし、メモリアドレスMAのビット長は16ビットであるとしている。オフセットのビット長はラインサイズに応じて決まる固定値であり、メモリアドレスMAのビット長はハードウェアの制約等によって決まる固定値である。
次に、アドレス変換部12は、手順1で判定されたメモリ領域に対応するキャッシュラインの開始インデックスをアドレス変換情報格納部14から参照することにより、キャッシュメモリアドレスCMAのタグ、インデックス、およびオフセットを生成する。具体的に、キャッシュメモリアドレスCMAのタグの値およびオフセットの値は入力されたメモリアドレスMAのものと同じであるが、キャッシュメモリアドレスCMAのインデックスの値は入力されたメモリアドレスMAのインデックスの値から変換される。なお、キャッシュメモリアドレスCMAのインデックスのビット長は、キャッシュメモリ全体のインデックス数である4ビット(=16個)に等しくなる。
タグ格納部24はタグと有効フラグとを格納する。有効フラグは各ラインが有効か否かを示すものである。初期状態では有効フラグは無効になっており、メモリ装置からデータおよびメモリアドレス情報が書き込まれると有効フラグが有効に書き換えられる。
データ格納部26は、キャッシュラインごとに、タグおよびインデックスに対応する複数のデータを格納する。具体的には、オフセットのビット数に対応する個数分のデータがデータ格納部26に格納される。
LRUフラグ格納部28は、キャッシュラインごとにアクセスされた順序を表すLRUフラグを格納する。
ライン選択部22は、キャッシュメモリアドレスCMAに含まれるインデックスが示す複数のキャッシュライン、すなわち、m+1個のウェイway(0)〜way(n)を選択する。選択された複数のラインのタグおよび有効フラグは、選択タグ格納部30に格納される。また、選択された複数のラインのデータは、選択データ格納部32に格納される。
タグ比較およびデータ選択部34は、キャッシュメモリアドレスCMAに含まれるタグと選択タグ格納部30に格納されている複数の選択ラインのタグとを比較する。この結果、キャッシュヒットの場合(すなわち、有効フラグが有効でありかつタグが一致するラインがあった場合)に、タグ比較およびデータ選択部34は、キャッシュメモリアドレスCMAに含まれるオフセットに基づいてデータを選択する。演算装置1が発行した命令が読出し命令の場合には、タグ比較およびデータ選択部34は、オフセットに基づいて選択されたデータを演算装置1に出力し、LRUフラグを更新する。
図8は、図2のキャッシュメモリ動作の動作を示すフローチャートである。以下、図2および図8を主として参照してこれまでの説明を総括する。
上記の構成のキャッシュメモリ2によれば、アプリケーションが扱うデータの種類に応じてキャッシュメモリにおいて使用するラインを分離することができる。これにより、再利用性の高いデータを格納するキャッシュメモリの領域と再利用性の低いデータを格納するキャッシュメモリの領域を分離することができるので、再利用性の高いデータを格納しているキャッシュラインが再利用性の低いデータによって置き替えられるのを抑制することがでる。この結果、キャッシュ効率を向上させることができる。
実施の形態2では、キャッシュメモリのマッピング方式がダイレクトマップ方式である場合について説明する。
[キャッシュメモリ装置の概略構成]
実施の形態3では、キャッシュメモリのマッピング方式がフルアソシアティブ方式である場合について説明する。図11は、実施の形態3によるキャッシュメモリの構成の一例を示すブロック図である。
以下、実施の形態1の場合と同じ具体例を用いて、アドレス変換部12の動作について説明する。メモリ領域とキャッシュラインの対応付けは図3に示され、アドレス変換情報は図5に示されている。また、メモリアドレスMAの長さを16ビットとし、キャッシュメモリ全体でのインデックス数を16個(=4ビット)とする(すなわち、図11においてm=15)。オフセットのビット長は2ビットであるとする。
アドレス変換部12は、アドレス変換情報格納部14に格納されたアドレス変換情報の各メモリ領域の開始アドレスおよびメモリサイズを参照することによって、入力されたメモリアドレスMAが対応するメモリ領域を判定する。図3の例では、メモリ領域R1、メモリ領域R2の順に判定し、該当しない場合はメモリ全体を示すデフォルト領域に対応すると判定される。
次に、アドレス変換部12は、手順1で判定されたメモリ領域に対応するキャッシュラインの開始インデックスおよび全インデックス数をアドレス変換情報格納部14から参照することにより、入力されたメモリアドレスMAに付加する付加情報を生成する。
図14は、図11のキャッシュメモリの動作を示すフローチャートである。
上記の実施の形態3のキャッシュメモリ2Bにおいても、アプリケーションが扱うデータの種類に応じてキャッシュメモリにおいて使用するラインを分離することができる。これにより、再利用性の高いデータを格納するキャッシュメモリの領域と再利用性の低いデータを格納するキャッシュメモリの領域を分離することができるので、再利用性の高いデータを格納しているキャッシュラインが再利用性の低いデータによって置き替えられるのを抑制することができる。この結果、キャッシュ効率を向上させることができる。
実施の形態4では、実施の形態3の構成のキャッシュメモリ2Bを備えた情報処理装置によって2次元画像データに対するフィルタ処理を行った例について説明する。
Claims (7)
- アクセス対象であるメモリ空間の任意の一部のデータとそのデータに対応するメモリアドレス情報とをキャッシュライン単位で格納する本体部を備え、前記メモリ空間は複数のメモリ領域に区分され、
外部からアクセス要求のあったメモリアドレスが前記複数のメモリ領域のいずれに対応しているかに基づいて、前記アクセス要求のあったメモリアドレスからキャッシュメモリアドレスを生成するアドレス生成部をさらに備え、
前記キャッシュメモリアドレスに従って前記本体部に対する検索が行われることによって、前記メモリ領域ごとに異なる範囲のキャッシュラインが検索および入れ替えの対象となる、キャッシュメモリ。 - 前記アドレス生成部は、
各前記メモリ領域のメモリアドレスの範囲とキャッシュラインの範囲との対応関係を表すアドレス変換情報を格納するアドレス変換情報格納部と、
前記アドレス変換情報に基づいて、アクセス要求のあったメモリアドレスの一部を変換するか又はアクセス要求のあったメモリアドレスに付加情報を追加することによって前記キャッシュメモリアドレスを生成するアドレス変換部とを備える、請求項1に記載のキャッシュメモリ。 - 前記キャッシュメモリのマッピング方式はセットアソシアティブ方式またはダイレクトマップ方式であり、
各メモリアドレスは、上位ビットのタグと中位ビットのインデックスと下位ビットのオフセットに区分され、
前記アドレス変換部は、前記アドレス変換情報に基づいて、アクセス要求のあったメモリアドレスのインデックスを変換することによって前記キャッシュメモリアドレスを生成する、請求項2に記載のキャッシュメモリ。 - 前記キャッシュメモリのマッピング方式はフルアソシアティブ方式であり、
各メモリアドレスは、上位ビットのタグと下位ビットのオフセットに区分され、
前記アドレス変換部は、前記アドレス変換情報に基づいて、アクセス要求のあったメモリアドレスに付加情報を追加することによって前記キャッシュメモリアドレスを生成する、請求項2に記載のキャッシュメモリ。 - 前記本体部は、
キャッシュライン単位でデータを格納するデータ格納部と、
前記データ格納部に格納されているデータに対応するメモリアドレスに含まれるタグ情報を格納するタグ格納部と、
前記キャッシュメモリアドレスのインデックスまたは前記付加情報に基づいて、1つ以上のキャッシュラインを選択するライン選択部と、
前記キャッシュメモリアドレスのタグと前記選択された1つ以上のキャッシュラインのタグとを比較することによってキャッシュヒットか否かを判定し、キャッシュヒットの場合に前記キャッシュメモリアドレスのオフセットに基づいてデータを選択する、タグ比較およびデータ選択部とを備える、請求項3または4に記載のキャッシュメモリ。 - アクセス対象であるメモリ空間を区分する複数のメモリ領域のうちで、アクセス要求のあったメモリアドレスに対応するメモリ領域を判定するステップと、
前記判定されたメモリ領域に基づいて、アクセス要求のあったメモリアドレスの一部を変換するか又はアクセス要求のあったメモリアドレスに付加情報を追加することによって、キャッシュメモリアドレスを生成するステップと、
前記キャッシュメモリアドレスに従って1つ以上のキャッシュラインを選択するステップと、
前記選択された1つ以上のキャッシュラインに格納されたメモリアドレス情報に基づいて、キャッシュヒットか否かを判定するステップとを備えた、キャッシュメモリの制御方法。 - 各前記メモリ領域のメモリアドレスの範囲とキャッシュラインの範囲との対応関係を表すアドレス変換情報をアドレス変換情報格納部に格納するステップをさらに備え、
前記キャッシュメモリアドレスを生成するステップは、前記アドレス変換情報に基づいて前記キャッシュメモリアドレスを生成する、請求項6に記載のキャッシュメモリの制御方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2017/012355 WO2018179044A1 (ja) | 2017-03-27 | 2017-03-27 | キャッシュメモリおよびその制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2018179044A1 true JPWO2018179044A1 (ja) | 2019-11-14 |
JP6800312B2 JP6800312B2 (ja) | 2020-12-16 |
Family
ID=63677562
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019508345A Active JP6800312B2 (ja) | 2017-03-27 | 2017-03-27 | キャッシュメモリおよびその制御方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11216371B2 (ja) |
JP (1) | JP6800312B2 (ja) |
DE (1) | DE112017007323T5 (ja) |
WO (1) | WO2018179044A1 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102495910B1 (ko) | 2020-04-13 | 2023-02-06 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
US11755476B2 (en) | 2020-04-13 | 2023-09-12 | SK Hynix Inc. | Memory controller, storage device including the memory controller, and method of operating the memory controller and the storage device |
KR102406449B1 (ko) | 2020-06-25 | 2022-06-08 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
KR102435253B1 (ko) | 2020-06-30 | 2022-08-24 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
JP2023178769A (ja) * | 2022-06-06 | 2023-12-18 | 富士通株式会社 | 演算処理装置および演算処理方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04209049A (ja) * | 1990-11-30 | 1992-07-30 | Fujitsu Ltd | キャッシュメモリアドレスマッピング方式 |
JP2001282617A (ja) * | 2000-03-27 | 2001-10-12 | Internatl Business Mach Corp <Ibm> | 共有されたキャッシュを動的に区分するための方法及びシステム |
US20060143396A1 (en) * | 2004-12-29 | 2006-06-29 | Mason Cabot | Method for programmer-controlled cache line eviction policy |
JP5039334B2 (ja) * | 2006-07-28 | 2012-10-03 | 富士通セミコンダクター株式会社 | キャッシュメモリ制御方法、及び装置 |
WO2010089799A1 (ja) * | 2009-02-06 | 2010-08-12 | 富士通株式会社 | キャッシュメモリシステム、コンピュータシステム、及びキャッシュメモリアクセス方法 |
US8250332B2 (en) * | 2009-06-11 | 2012-08-21 | Qualcomm Incorporated | Partitioned replacement for cache memory |
US10296457B2 (en) * | 2017-03-30 | 2019-05-21 | Intel Corporation | Reducing conflicts in direct mapped caches |
-
2017
- 2017-03-27 DE DE112017007323.5T patent/DE112017007323T5/de active Pending
- 2017-03-27 US US16/480,123 patent/US11216371B2/en active Active
- 2017-03-27 JP JP2019508345A patent/JP6800312B2/ja active Active
- 2017-03-27 WO PCT/JP2017/012355 patent/WO2018179044A1/ja active Application Filing
Also Published As
Publication number | Publication date |
---|---|
US11216371B2 (en) | 2022-01-04 |
WO2018179044A1 (ja) | 2018-10-04 |
JP6800312B2 (ja) | 2020-12-16 |
US20200019499A1 (en) | 2020-01-16 |
DE112017007323T5 (de) | 2019-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6800312B2 (ja) | キャッシュメモリおよびその制御方法 | |
US6381668B1 (en) | Address mapping for system memory | |
US5313611A (en) | Method and apparatus for maintaining a lookup table for storing function values | |
US7545382B1 (en) | Apparatus, system, and method for using page table entries in a graphics system to provide storage format information for address translation | |
US10740247B2 (en) | Method for accessing entry in translation lookaside buffer TLB and processing chip | |
US20040215918A1 (en) | Method, apparatus and computer program product for dynamically minimizing translation lookaside buffer entries across contiguous memory | |
US11409663B2 (en) | Methods and systems for optimized translation of a virtual address having multiple virtual address portions using multiple translation lookaside buffer (TLB) arrays for variable page sizes | |
JP5039334B2 (ja) | キャッシュメモリ制御方法、及び装置 | |
US20090019253A1 (en) | Processing system implementing variable page size memory organization | |
JP2001175536A (ja) | 仮想アドレスからページ・テーブル・インデックスを計算する方法および装置 | |
JPH06342403A (ja) | 予測キャッシングシステム | |
US11334499B2 (en) | Method for locating metadata | |
WO2021061446A1 (en) | Storage management apparatus, storage management method, processor, and computer system | |
US20170185294A1 (en) | Memory system and operating method thereof | |
US10585803B2 (en) | Systems and methods for addressing a cache with split-indexes | |
EP2997539A1 (en) | Method and device for processing input image data | |
US7203798B2 (en) | Data memory cache unit and data memory cache system | |
JP6463081B2 (ja) | データ処理装置、データ処理方法及びプログラム | |
US20070192533A1 (en) | Apparatus and method for managing mapping information of nonvolatile memory | |
JP2007520014A (ja) | 状況切換え環境中におけるアドレス変換技術 | |
US7024536B2 (en) | Translation look-aside buffer for improving performance and reducing power consumption of a memory and memory management method using the same | |
US20040139277A1 (en) | Cache memory, processor and cache control method | |
JPH0553909A (ja) | 画像データ処理におけるキヤツシユメモリ制御方式 | |
CN107797757B (zh) | 影像处理系统中的快取存储器管理方法及装置 | |
JP4664586B2 (ja) | キャッシュ制御装置、キャッシュ制御方法、コンピュータシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190717 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200818 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20201009 |
|
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: 20201027 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20201124 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6800312 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |