JP5083757B2 - データをキャッシュする技術 - Google Patents
データをキャッシュする技術 Download PDFInfo
- Publication number
- JP5083757B2 JP5083757B2 JP2007110453A JP2007110453A JP5083757B2 JP 5083757 B2 JP5083757 B2 JP 5083757B2 JP 2007110453 A JP2007110453 A JP 2007110453A JP 2007110453 A JP2007110453 A JP 2007110453A JP 5083757 B2 JP5083757 B2 JP 5083757B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- segment
- state
- data
- cache segment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000005516 engineering process Methods 0.000 title description 5
- 230000015654 memory Effects 0.000 claims description 162
- 238000000034 method Methods 0.000 claims description 39
- 230000004044 response Effects 0.000 claims description 19
- 238000012545 processing Methods 0.000 description 34
- 230000008569 process Effects 0.000 description 25
- 230000007704 transition Effects 0.000 description 19
- 238000004891 communication Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 101100135890 Caenorhabditis elegans pdi-6 gene Proteins 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001693 membrane extraction with a sorbent interface Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- 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/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash 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
さらに、キャッシュ装置に関する参考技術文献として上記の特許文献1を挙げる。この技術は、演算ユニットが出力するアドレス(例えばスタックポインタのアドレス)に基づき、その後にアクセスされ得る記憶領域(例えばアドレスの減少方向にある領域)を予想して、予めそこからデータを読み込むものである。この技術はスタックポインタなどの特定のアドレス値の存在が前提であり、様々な種類の読出し処理に対し広く応用することはできない。また、この技術をもってしても、書込みが連続した場合にはその後の読出は非常に長い時間を要する。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
図4は、タグ310のデータ構造の一例を示す。キャッシュメモリ210は、タグ310を記憶するためのデータフィールドとして、上位アドレスフィールド400と、セクタ情報フィールド410と、LRU値フィールド420と、状態フィールド430とを有する。上位アドレスフィールド400は、対応するキャッシュセグメント300が割り当てられているメインメモリ200内のセグメントについて、そのアドレス値のうち最上位から予め定められた桁数のアドレス値を記憶する。たとえば、メインメモリ200内のアドレスが24ビットで表される場合に、そのうちの下位のnビットを除外した、上位の(24−n)ビットのアドレス値が上位アドレスフィールド400に記憶される。このアドレス値のことを上位アドレス、または、上位アドレス値と称す。また、上位アドレスを除外したアドレスのことを下位アドレス、または、下位アドレス値と称す。
このように、この割り当ての時点ではメインメモリ200からのキャッシュインを行わず、後の書き戻し時点(例えばS765、S925またはS1310など)までキャッシュインを遅らせることで、読み出されるデータの量を低減して処理を効率化できる。
20 記憶装置
200 メインメモリ
210 キャッシュメモリ
220 キャッシュ制御部
225A ホスト側回路
225B メモリ側回路
300 セグメント
310 タグ
320 セクタ
400 上位アドレスフィールド
410 セクタ情報フィールド
420 LRU値フィールド
430 状態フィールド
1000 CPU
Claims (17)
- メインメモリから読み出したデータ、および、メインメモリに書き込むデータをキャッシュする記憶装置であって、
複数のキャッシュセグメントを有し、メインメモリと一致しておらず、メインメモリに書き込むべきデータを含む状態のキャッシュセグメントを更新状態に設定され、メインメモリと一致するデータを保持する1以上のキャッシュセグメントを、予め定められた基準数を上限に、置き換えから保護される状態である保護状態に設定されているキャッシュメモリと、
キャッシュセグメントの状態を制御するキャッシュ制御部と
を備え、
前記キャッシュ制御部は、
書込みのキャッシュミスに応じ、保護状態でないキャッシュセグメントの中から選択したキャッシュセグメントを、書込みデータをキャッシュするために割り当てて、その選択したキャッシュセグメントにデータを書き込み、
読出しのキャッシュミスに応じ、更新状態でないキャッシュセグメントの中から選択したキャッシュセグメントをメインメモリから読み出したデータをキャッシュするために割り当てて、割り当てた当該キャッシュセグメントにメインメモリから読み出したデータをキャッシュすると共に割り当てた当該キャッシュセグメントを保護状態に設定し、更に、保護状態のキャッシュセグメントが前記基準数を超えたことを条件に、割り当てた当該キャッシュセグメント以外の保護状態のキャッシュセグメントを選択して、メインメモリと一致しているが書込みに対しリプレースされ得る状態である共有状態に設定する記憶装置。 - 前記キャッシュ制御部は、保護状態のキャッシュセグメントが前記基準数を超えたことを条件に、保護状態のキャッシュセグメントの中から、未使用の期間を示す指標値であるLRU値が最も長い期間を示すキャッシュセグメントを選択して、共有状態に設定する
請求項1に記載の記憶装置。 - 前記キャッシュ制御部は、読出しのキャッシュミスに応じ、さらに、割り当てたそのキャッシュセグメント以外の保護状態のキャッシュセグメントに対応するLRU値のそれぞれを、より長い未使用期間を示す値に更新する
請求項1または2に記載の記憶装置。 - 前記キャッシュ制御部は、読出しのキャッシュヒットに応じ、さらに、読出しの対象が保護状態のキャッシュセグメントであることを条件に、保護状態の他のキャッシュセグメントに対応するLRU値のそれぞれを、より長い未使用期間を示す値に更新する
請求項1から3のいずれか1項に記載の記憶装置。 - それぞれのキャッシュセグメントは、有効なデータを含まない状態である無効状態、保護状態、メインメモリと一致しているが書込みに対しリプレースされ得る状態である共有状態、および、メインメモリに書き込むべきデータを含む状態である更新状態、を少なくとも含む、複数の状態の何れかであり、
前記キャッシュ制御部は、書込みのキャッシュミスに応じ、無効状態のキャッシュセグメントがあればそのキャッシュセグメントを選択し、無効状態のキャッシュセグメントが無く共有状態のキャッシュセグメントがあればそのキャッシュセグメントを選択し、共有状態のキャッシュセグメントが無ければ更新状態のキャッシュセグメント内のデータをメインメモリに書き戻してからそのキャッシュセグメントを選択して、書込みデータをキャッシュするために割り当てる
請求項1から4のいずれか1項に記載の記憶装置。 - 前記キャッシュ制御部は、書込みのキャッシュミスに応じ、共有状態のキャッシュセグメントがあればそれらのキャッシュセグメントのうち、未使用の期間を示す指標値であるLRU値がもっとも長い未使用期間を示すキャッシュセグメントを選択し、共有状態のキャッシュセグメントが無ければ更新状態のキャッシュセグメントのうちLRU値が最も長い未使用期間を示す少なくとも1つのキャッシュセグメント内のデータを書き戻してからそのうちの1つのキャッシュセグメントを選択する
請求項1から5のいずれか1項に記載の記憶装置。 - 前記キャッシュ制御部は、選択した更新状態のキャッシュセグメントを、書込みデータをキャッシュするために割り当てたことを条件に、その割り当てたキャッシュセグメントのLRU値をリセットし、更新状態にある他のキャッシュセグメントのLRU値のそれぞれを、より長い未使用期間を示す値に更新する
請求項1から6のいずれか1項に記載の記憶装置。 - 前記メインメモリは、ブロック単位で書き込みをすることができ、
ブロックは、複数のキャッシュセグメントに対応しており、
前記キャッシュ制御部は、選択した更新状態のキャッシュセグメントを、書込みデータをキャッシュするために割り当てたことを条件に、その割り当てたキャッシュセグメントのLRU値をリセットすると共に、さらに、その割り当てたキャッシュセグメントと同一のブロックのデータを記憶する、更新状態にある他のキャッシュセグメントのLRU値をリセットする
請求項1から7のいずれか1項に記載の記憶装置。 - 前記キャッシュ制御部は、書込みのキャッシュヒットに応じ、書込みの対象が保護状態のキャッシュセグメントであることを条件に、そのキャッシュセグメントにデータを書込むと共に、メインメモリに書き込むべきデータを含む状態である更新状態にそのキャッシュセグメントを設定する
請求項1から8のいずれか1項に記載の記憶装置。 - 前記メインメモリを更に備える請求項1から9のいずれか1項に記載の記憶装置。
- 前記メインメモリとして、フラッシュメモリを備える請求項1から10のいずれか1項に記載の記憶装置。
- 前記メインメモリとして、ハードディスクドライブ、光磁気ディスクドライブ、および、テープドライブの少なくとも1つを備える請求項1から10のいずれか1項に記載の記憶装置。
- それぞれのキャッシュセグメントは、複数のセクタを含み、
前記キャッシュメモリは、それぞれのキャッシュセグメントに対応付けて、割り当てられているメインメモリ中のセグメントの最上位から予め定められた桁数のアドレス値、および、含んでいる各セクタが有効なデータを含むかどうかを示すセクタ情報、を記憶しており、
前記キャッシュ制御部は、書込みの要求されるアドレスの最上位から予め定められた桁数のアドレス値が、前記キャッシュメモリに記憶されている何れのアドレス値にも一致しないことを条件に、書込みのキャッシュミスと判断し、アドレス値の一致するキャッシュセグメントにおいて対応するセクタが有効なデータを含まないことを条件に、そのセクタにデータを書き込む
請求項1に記載の記憶装置。 - 前記キャッシュメモリは、それぞれのキャッシュセグメントに対応付けて、さらに、そのキャッシュセグメントの状態、および、そのキャッシュセグメントの未使用の期間を示す指標値であるLRU値を記憶しており、
前記キャッシュ制御部は、ある状態のキャッシュセグメントを他の状態に変更する場合において、その状態のキャッシュセグメントのうちLRU値が最も長い期間を示すキャッシュセグメントを選択して、当該他の状態に変更する
請求項13に記載の記憶装置。 - それぞれのキャッシュセグメントは複数のセクタを含み、
前記キャッシュ制御部は、セクタへの書込みがキャッシュミスしたことを条件に、前記複数のキャッシュセグメントの中から選択したキャッシュセグメントを、書込み対象のセクタをキャッシュするために割り当てて、書込み対象以外のセクタを無効セクタに設定し、
その選択したキャッシュセグメントをメインメモリに書き戻す場合において、その選択したキャッシュセグメントの無効セクタについてはメインメモリの対応するセクタからデータを取得してから、その選択したキャッシュセグメント内のデータをメインメモリに書き戻す、
請求項1に記載の記憶装置。 - 電子回路によりキャッシュメモリの動作を制御する方法であって、
キャッシュメモリは、複数のキャッシュセグメントを有し、メインメモリと一致しておらず、メインメモリに書き込むべきデータを含む状態のキャッシュセグメントを更新状態に設定され、メインメモリと一致するデータを保持する1以上のキャッシュセグメントを、予め定められた基準数を上限に、置き換えから保護される状態である保護状態に設定されており、
キャッシュセグメントの状態を制御する電子回路のキャッシュ制御部が、
書込みのキャッシュミスに応じ、保護状態でないキャッシュセグメントの中から選択したキャッシュセグメントを、書込みデータをキャッシュするために割り当てて、その選択したキャッシュセグメントにデータを書き込むステップと、
読出しのキャッシュミスに応じ、更新状態でないキャッシュセグメントの中から選択したキャッシュセグメントをメインメモリから読み出したデータをキャッシュするために割り当てるステップと、
割り当てた当該キャッシュセグメントにメインメモリから読み出したデータをキャッシュすると共に割り当てた当該キャッシュセグメントを保護状態に設定するステップと、
保護状態のキャッシュセグメントが前記基準数を超えたことを条件に、割り当てた当該キャッシュセグメント以外の保護状態のキャッシュセグメントを選択して、メインメモリと一致しているが書込みに対しリプレースされ得る状態である共有状態に設定するステップと
を備えた方法。 - 書込みのキャッシュヒットに応じ、
電子回路のキャッシュ制御部が、書込みの対象が保護状態のキャッシュセグメントであることを条件に、そのキャッシュセグメントにデータを書込むと共に、メインメモリに書き込むべきデータを含む状態である更新状態にそのキャッシュセグメントを設定するステップを更に備えた請求項16に記載の方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007110453A JP5083757B2 (ja) | 2007-04-19 | 2007-04-19 | データをキャッシュする技術 |
US12/037,689 US8112589B2 (en) | 2007-04-19 | 2008-02-26 | System for caching data from a main memory with a plurality of cache states |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007110453A JP5083757B2 (ja) | 2007-04-19 | 2007-04-19 | データをキャッシュする技術 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008269224A JP2008269224A (ja) | 2008-11-06 |
JP5083757B2 true JP5083757B2 (ja) | 2012-11-28 |
Family
ID=39873384
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007110453A Expired - Fee Related JP5083757B2 (ja) | 2007-04-19 | 2007-04-19 | データをキャッシュする技術 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8112589B2 (ja) |
JP (1) | JP5083757B2 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI384488B (zh) * | 2007-12-24 | 2013-02-01 | Skymedi Corp | Nonvolatile storage device and its data writing method |
US8627015B2 (en) * | 2009-07-31 | 2014-01-07 | Emc Corporation | Data processing system using cache-aware multipath distribution of storage commands among caching storage controllers |
EP2761386B1 (en) | 2011-09-30 | 2017-09-06 | Intel Corporation | Managing sideband segments in on-die system fabric |
US8934332B2 (en) * | 2012-02-29 | 2015-01-13 | International Business Machines Corporation | Multi-threaded packet processing |
WO2015047314A1 (en) * | 2013-09-27 | 2015-04-02 | Intel Corporation | Techniques to compose memory resources across devices |
CN103778007B (zh) * | 2014-02-14 | 2018-06-08 | 北京猎豹移动科技有限公司 | 一种应用管理方法及装置 |
JP2016028319A (ja) * | 2014-07-08 | 2016-02-25 | 富士通株式会社 | アクセス制御プログラム、アクセス制御装置及びアクセス制御方法 |
US10055139B1 (en) * | 2016-03-31 | 2018-08-21 | EMC IP Holding Company LLC | Optimized layout in a two tier storage |
US11704192B2 (en) | 2019-12-12 | 2023-07-18 | Pure Storage, Inc. | Budgeting open blocks based on power loss protection |
US11416144B2 (en) | 2019-12-12 | 2022-08-16 | Pure Storage, Inc. | Dynamic use of segment or zone power loss protection in a flash device |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5432919A (en) * | 1989-07-06 | 1995-07-11 | Digital Equipment Corporation | Sequential reference management for cache memories |
JPH06282488A (ja) * | 1993-03-25 | 1994-10-07 | Mitsubishi Electric Corp | キャッシュ記憶装置 |
JPH0816885B2 (ja) * | 1993-04-27 | 1996-02-21 | 工業技術院長 | キャッシュメモリ制御方法 |
JP3279253B2 (ja) * | 1998-05-27 | 2002-04-30 | 日本電気株式会社 | キャッシュページの管理方法およびキャッシュページの管理プログラムを記憶した媒体 |
US8261022B2 (en) * | 2001-10-09 | 2012-09-04 | Agere Systems Inc. | Method and apparatus for adaptive cache frame locking and unlocking |
JP2003316648A (ja) * | 2002-04-24 | 2003-11-07 | Toshiba Corp | キャッシュメモリ装置 |
US6901483B2 (en) * | 2002-10-24 | 2005-05-31 | International Business Machines Corporation | Prioritizing and locking removed and subsequently reloaded cache lines |
US7526599B2 (en) * | 2002-10-28 | 2009-04-28 | Sandisk Corporation | Method and apparatus for effectively enabling an out of sequence write process within a non-volatile memory system |
US7254681B2 (en) * | 2003-02-13 | 2007-08-07 | Intel Corporation | Cache victim sector tag buffer |
JP2004303232A (ja) | 2003-03-20 | 2004-10-28 | Matsushita Electric Ind Co Ltd | データメモリキャッシュ装置及びデータメモリキャッシュシステム |
JP4765249B2 (ja) * | 2003-11-18 | 2011-09-07 | セイコーエプソン株式会社 | 情報処理装置およびキャッシュメモリ制御方法 |
JP2005301387A (ja) * | 2004-04-07 | 2005-10-27 | Matsushita Electric Ind Co Ltd | キャッシュメモリ制御装置およびキャッシュメモリ制御方法 |
KR100577384B1 (ko) * | 2004-07-28 | 2006-05-10 | 삼성전자주식회사 | 페이지 정보를 이용한 페이지 대체 방법 |
-
2007
- 2007-04-19 JP JP2007110453A patent/JP5083757B2/ja not_active Expired - Fee Related
-
2008
- 2008-02-26 US US12/037,689 patent/US8112589B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US8112589B2 (en) | 2012-02-07 |
US20080263282A1 (en) | 2008-10-23 |
JP2008269224A (ja) | 2008-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5083757B2 (ja) | データをキャッシュする技術 | |
US11893238B2 (en) | Method of controlling nonvolatile semiconductor memory | |
US8443144B2 (en) | Storage device reducing a memory management load and computing system using the storage device | |
JP4412676B2 (ja) | メインメモリに書き込むデータをキャッシュする技術 | |
TWI627536B (zh) | 用於具有調適分割之一共用快取之系統及方法 | |
US8392476B2 (en) | Semiconductor memory device | |
KR100823171B1 (ko) | 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법 | |
US8407418B2 (en) | Information processing apparatus and driver | |
US8639881B2 (en) | Information processing apparatus and driver | |
TWI709854B (zh) | 資料儲存裝置及用於存取邏輯至物理位址映射表之方法 | |
JP6139381B2 (ja) | メモリシステムおよび方法 | |
JP2011128998A (ja) | 半導体記憶装置 | |
US11526296B2 (en) | Controller providing host with map information of physical address for memory region, and operation method thereof | |
JP2010152909A (ja) | 不揮発性半導体メモリドライブ装置、情報処理装置および不揮発性半導体メモリドライブ装置における記憶領域の管理方法 | |
CN111338561B (zh) | 存储器控制器与存储器页面管理方法 | |
KR20190052546A (ko) | 키-밸류 스토리지 장치 및 상기 키-밸류 스토리지 장치의 동작 방법 | |
JP2012128815A (ja) | メモリシステム | |
KR20170109133A (ko) | 하이브리드 메모리 장치 및 그의 데이터 관리 방법 | |
US11669264B2 (en) | Method for improving trim command response time | |
US7089394B2 (en) | Optimally mapping a memory device | |
US20130173855A1 (en) | Method of operating storage device including volatile memory and nonvolatile memory | |
JP4963088B2 (ja) | データをキャッシュする技術 | |
KR102267477B1 (ko) | 스토리지 장치 및 이의 동작 방법 | |
JP2022063466A (ja) | メモリシステム及び情報処理システム | |
JP2012078939A (ja) | 情報処理装置およびキャッシュ制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100218 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120522 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120719 |
|
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: 20120807 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20120808 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120828 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150914 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |