JP2008299530A - メインメモリに書き込むデータをキャッシュする技術 - Google Patents
メインメモリに書き込むデータをキャッシュする技術 Download PDFInfo
- Publication number
- JP2008299530A JP2008299530A JP2007143968A JP2007143968A JP2008299530A JP 2008299530 A JP2008299530 A JP 2008299530A JP 2007143968 A JP2007143968 A JP 2007143968A JP 2007143968 A JP2007143968 A JP 2007143968A JP 2008299530 A JP2008299530 A JP 2008299530A
- Authority
- JP
- Japan
- Prior art keywords
- bit
- cache
- data
- sector
- main memory
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
-
- 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
- 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)
Abstract
【解決手段】メインメモリに書き込むデータをキャッシュする記憶装置であって、複数のキャッシュセグメントを有し、キャッシュセグメントごとに、そのキャッシュセグメントに含まれる各セクタが有効なデータを含む有効セクタか否かを示す有効性データを記憶しているキャッシュメモリと、キャッシュメモリへのアクセスを制御するキャッシュ制御部とを備え、キャッシュ制御部は、キャッシュセグメントをメインメモリへ書き戻す場合に、そのキャッシュセグメントに対応する有効性データにアクセスして、無効セクタが連続する領域を検出し、検出したその領域ごとに、その領域へデータを読み出す読出コマンドをメインメモリに対し発行して、各領域を有効セクタとしてから、そのキャッシュセグメント内のデータをメインメモリに書き戻す、記憶装置を提供する。
【選択図】図7
Description
フラッシュメモリデバイスの説明。インターネットホームページ、アドレス「http://e-words.jp/w/E38395E383A9E38383E382B7E383A5E383A1E383A2E383AA.html」2007年5月24日検索
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
これらの処理により、3ビット目から7ビット目までの4ビットによって表される領域が、無効データの連続する領域を示すことがわかる。この場合には、例えば、書戻し制御部730は、セグメント300の第3セクタから開始する4つのセクタにメインメモリ200からデータを読み出すための読出コマンドを発行する。
これらの処理により、9ビット目から15ビット目までの6ビットによって表される領域が、無効データの連続する領域を示すことがわかる。この場合には、例えば、書戻し制御部730は、セグメント300の第9セクタから開始する6つのセクタにメインメモリ200からデータを読み出すための読出コマンドを発行する。
続いて、検出処理自体を殆ど遅延させることなく、同様に回路規模を縮小する例として変形例2を説明する。
図20は、本実施の形態に係る検出部720の第2変形例の概念図を示す。検出部720は、複数のビット反転部と、複数のビットマスク部と、複数のプライオリティエンコーダと、複数の出力ラッチと、複数のコントローラとを有する。これらの各部は、図8を参照して説明したビット反転部800、ビットマスク部810、プライオリティエンコーダ820、出力ラッチ830およびコントローラ840と比較して、少ないビット数のビット列に対応している。
以上、第2変形例によれば、長いビット列に対応する回路に代えて、短いビット列に対応する回路を複数設けることで、回路規模を削減しつつも、処理速度の低下を抑えることができる。即ち例えば、プライオリティエンコーダの回路規模は、対応可能なビット列のビット数には比例せず、その2乗などの極めて大きい値に比例して増加する。このような回路を分割して同時並行的に利用することで、回路規模を大きく削減できる。
20 記憶装置
200 メインメモリ
210 キャッシュメモリ
220 キャッシュ制御部
300 セグメント
310 タグ情報
320 セクタ
400 上位アドレスフィールド
410 有効性データフィールド
420 LRU値フィールド
430 状態フィールド
700 読出し制御部
710 書込み制御部
720 検出部
730 書戻し制御部
800 ビット反転部
810 ビットマスク部
820 プライオリティエンコーダ
830 出力ラッチ
840 コントローラ
850 セレクタ
1000 CPU
Claims (12)
- メインメモリに書き込むデータをキャッシュする記憶装置であって、
複数のキャッシュセグメントを有し、キャッシュセグメントごとに、そのキャッシュセグメントに含まれる各セクタが有効なデータを含む有効セクタか否かを示す有効性データを記憶しているキャッシュメモリと、
前記キャッシュメモリへのアクセスを制御するキャッシュ制御部と
を備え、前記キャッシュ制御部は、
キャッシュセグメントをメインメモリへ書き戻す場合に、そのキャッシュセグメントに対応する有効性データにアクセスして、無効セクタが連続する領域を検出する検出部と、
検出したその領域ごとに、その領域へデータを読み出す読出コマンドをメインメモリに対し発行して、各領域を有効セクタとしてから、そのキャッシュセグメント内のデータをメインメモリに書き戻す書戻し制御部と
を有する記憶装置。 - 各キャッシュセグメントは、そのキャッシュセグメント以上のデータサイズであってメインメモリへの書込み単位であるメモリブロックの少なくとも一部に対応して割り当てられており、
前記書戻し制御部は、書き戻すキャッシュセグメントを有効セクタとすると共に、メモリブロック内の他のキャッシュセグメントに対応するデータをメインメモリから読み出して、そのキャッシュセグメントおよび読み出したデータをメモリブロックに書き戻す
請求項1に記載の記憶装置。 - 前記キャッシュ制御部は、あるセクタに対する書込みのキャッシュミスに応じ、書込みデータをキャッシュするために新たなキャッシュセグメントを割り当てて、そのキャッシュセグメント内のセクタにその書込みデータを書き込んで、書込み対象以外のセクタに対応する有効性データを無効に設定する、書込み制御部、を更に有する請求項1に記載の記憶装置。
- 前記書込み制御部は、あるセクタに対する書込みのキャッシュヒットに応じ、そのセクタに対する書込みデータをキャッシュするために割り当てられているキャッシュセグメント内のセクタに、その書込みデータを書き込んで、そのセクタに対応する有効性データを有効に設定する、請求項3に記載の記憶装置。
- 前記有効性データは、各セクタが有効か否かを示す論理値をセクタごとに配列したビット列であり、
前記検出部は、
前記キャッシュメモリから読み出した有効性データを入力し、設定に基づいて、その有効性データの各ビットを反転させて、または、その有効性データの各ビットを反転させずにそのまま出力するビット反転部と、
前記ビット反転部が出力した有効性データを入力し、マスクパターンが設定されていればそのマスクパターンによりその有効性データをビットマスクし、設定されていなければその有効性データをそのまま出力するビットマスク部と、
前記ビットマスク部が出力した有効性データのうち論理値が真である最上位のビットを検出してそのビット位置を出力するプライオリティエンコーダと、
前記プライオリティエンコーダからビット位置を入力する毎に、前記ビット反転部の設定を変更すると共に、最上位のビットからその入力したビット位置までのビット列をマスクするマスクパターンを前記ビットマスク部に設定するコントローラと
を有し、前記プライオリティエンコーダから順次出力されるビット位置を無効セクタが連続する領域と有効セクタとの境界として検出する、請求項1に記載の記憶装置。 - 前記検出部は、1つのキャッシュセグメントに対応する有効性データを分割した複数の部分データのそれぞれを順次選択して前記ビット反転部に入力する選択部を更に有し、
前記ビット反転部は、入力した部分データの各ビットを、設定に基づいて反転させて、または、反転させずにそのまま出力し、
前記ビットマスク部は、前記ビット反転部が出力した部分データを入力し、マスクパターンが設定されていればそのマスクパターンによりその部分データをビットマスクし、設定されていなければその部分データをそのまま出力し、
前記プライオリティエンコーダは、前記ビットマスク部が出力した部分データのうち論理値が真である最上位のビットを検出してそのビット位置を出力し、
前記コントローラは、前記プライオリティエンコーダからビット位置を入力する毎に、前記ビット反転部の設定を変更すると共に、部分データにおける最上位のビットからそのビット位置までのビット列をマスクするマスクパターンを前記ビットマスク部に設定する
請求項5に記載の記憶装置。 - 前記検出部は、複数の前記ビット反転部と、複数の前記ビットマスク部と、複数の前記プライオリティエンコーダと、複数の前記コントローラとを有し、
それぞれのビット反転部は、キャッシュメモリから読み出した有効性データを分割した複数の部分データのそれぞれを入力し、入力した部分データの各ビットを、設定に基づいて反転させて、または、反転させずにそのまま出力し、
それぞれのビットマスク部は、対応するビット反転部が出力した部分データを入力し、マスクパターンが設定されていればそのマスクパターンによりその部分データをビットマスクし、設定されていなければその部分データをそのまま出力し、
それぞれのプライオリティエンコーダは、対応するビットマスク部が出力した部分データのうち論理値が真である最上位のビットを検出してそのビット位置を出力し、
それぞれのコントローラは、対応するプライオリティエンコーダからビット位置を入力する毎に、対応するビット反転部の設定を変更すると共に、部分データにおける最上位のビットからその入力したビット位置までのビット列をマスクするマスクパターンを対応するビットマスク部に設定する
請求項5に記載の記憶装置。 - 前記検出部は、前記キャッシュメモリ中のキャッシュセグメントのうち有効セクタを含むキャッシュセグメントの割合が予め定められた基準値を超えたことを条件に、有効セクタを含む何れかのキャッシュセグメントを選択して前記メインメモリに書き戻す
請求項3に記載の記憶装置。 - 前記メインメモリを備える請求項1に記載の記憶装置。
- 前記メインメモリとして、少なくとも1つのフラッシュメモリを備える請求項9に記載の記憶装置。
- メインメモリに書き込むデータを記憶装置内のキャッシュメモリにキャッシュする方法であって、
前記記憶装置は、
複数のキャッシュセグメントを有し、キャッシュセグメントごとに、そのキャッシュセグメントに含まれる各セクタが有効なデータを含む有効セクタか否かを示す有効性データを記憶しているキャッシュメモリと、
前記キャッシュメモリへのアクセスを制御するキャッシュ制御部と
を備え、前記キャッシュ制御部により、
キャッシュセグメントをメインメモリへ書き戻す場合に、そのキャッシュセグメントに対応する有効性データにアクセスして、無効セクタが連続する領域を検出するステップと、
検出したその領域ごとに、その領域へデータを読み出す読出コマンドをメインメモリに対し発行して、各領域を有効セクタとしてから、そのキャッシュセグメント内のデータをメインメモリに書き戻すステップと
を有する方法。 - メインメモリに書き込むデータをキャッシュする記憶装置を制御するプログラムであって、
前記記憶装置は、
複数のキャッシュセグメントを有し、キャッシュセグメントごとに、そのキャッシュセグメントに含まれる各セクタが有効なデータを含む有効セクタか否かを示す有効性データを記憶しているキャッシュメモリと、
前記キャッシュメモリへのアクセスを制御するキャッシュ制御部と
を備え、前記キャッシュ制御部を、
キャッシュセグメントをメインメモリへ書き戻す場合に、そのキャッシュセグメントに対応する有効性データにアクセスして、無効セクタが連続する領域を検出する検出部と、
検出したその領域ごとに、その領域へデータを読み出す読出コマンドをメインメモリに対し発行して、各領域を有効セクタとしてから、そのキャッシュセグメント内のデータをメインメモリに書き戻す書戻し制御部と
して機能させるプログラム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007143968A JP4412676B2 (ja) | 2007-05-30 | 2007-05-30 | メインメモリに書き込むデータをキャッシュする技術 |
US12/129,090 US8266385B2 (en) | 2007-05-30 | 2008-05-29 | Technique and apparatus for identifying cache segments for caching data to be written to main memory |
US13/590,884 US8683142B2 (en) | 2007-05-30 | 2012-08-21 | Technique and apparatus for identifying cache segments for caching data to be written to main memory |
US13/604,796 US8972407B2 (en) | 2007-05-30 | 2012-09-06 | Information processing method for determining weight of each feature in subjective hierarchical clustering |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007143968A JP4412676B2 (ja) | 2007-05-30 | 2007-05-30 | メインメモリに書き込むデータをキャッシュする技術 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008299530A true JP2008299530A (ja) | 2008-12-11 |
JP4412676B2 JP4412676B2 (ja) | 2010-02-10 |
Family
ID=40089571
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007143968A Expired - Fee Related JP4412676B2 (ja) | 2007-05-30 | 2007-05-30 | メインメモリに書き込むデータをキャッシュする技術 |
Country Status (2)
Country | Link |
---|---|
US (2) | US8266385B2 (ja) |
JP (1) | JP4412676B2 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009020833A (ja) * | 2007-07-13 | 2009-01-29 | Internatl Business Mach Corp <Ibm> | データをキャッシュする技術 |
JP2009211226A (ja) * | 2008-03-01 | 2009-09-17 | Toshiba Corp | メモリシステム |
JP2011146105A (ja) * | 2010-01-15 | 2011-07-28 | Internatl Business Mach Corp <Ibm> | データの書込みを制御する装置及び方法 |
JP2014197265A (ja) * | 2013-03-29 | 2014-10-16 | 東芝パソコンシステム株式会社 | 半導体メモリ装置 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI379195B (en) * | 2009-04-13 | 2012-12-11 | Realtek Semiconductor Corp | Method and device for accessing memory and central processing unit using the same |
US8291175B2 (en) * | 2009-10-16 | 2012-10-16 | Oracle America, Inc. | Processor-bus attached flash main-memory module |
EP2559036A1 (en) | 2010-04-15 | 2013-02-20 | Ramot at Tel-Aviv University Ltd. | Multiple programming of flash memory without erase |
TWI521343B (zh) | 2011-08-01 | 2016-02-11 | Toshiba Kk | An information processing device, a semiconductor memory device, and a semiconductor memory device |
US9098420B2 (en) * | 2011-10-21 | 2015-08-04 | Nokia Technology Oy | Method and apparatus for synchronizing a cache |
US9612972B2 (en) * | 2012-12-03 | 2017-04-04 | Micron Technology, Inc. | Apparatuses and methods for pre-fetching and write-back for a segmented cache memory |
US9378148B2 (en) | 2013-03-15 | 2016-06-28 | Intel Corporation | Adaptive hierarchical cache policy in a microprocessor |
JP6142727B2 (ja) * | 2013-08-12 | 2017-06-07 | 富士通株式会社 | データアクセス分析プログラム、データアクセス分析方法、及びデータアクセス分析装置 |
US9229866B2 (en) * | 2013-11-25 | 2016-01-05 | Apple Inc. | Delaying cache data array updates |
US10331385B2 (en) * | 2016-09-29 | 2019-06-25 | Intel Corporation | Cooperative write-back cache flushing for storage devices |
CN113157198A (zh) * | 2020-01-07 | 2021-07-23 | 伊姆西Ip控股有限责任公司 | 管理缓存的方法、设备和计算机程序产品 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5778422A (en) * | 1996-04-04 | 1998-07-07 | International Business Machines Corporation | Data processing system memory controller that selectively caches data associated with write requests |
KR101085406B1 (ko) * | 2004-02-16 | 2011-11-21 | 삼성전자주식회사 | 불 휘발성 메모리를 제어하기 위한 컨트롤러 |
-
2007
- 2007-05-30 JP JP2007143968A patent/JP4412676B2/ja not_active Expired - Fee Related
-
2008
- 2008-05-29 US US12/129,090 patent/US8266385B2/en not_active Expired - Fee Related
-
2012
- 2012-08-21 US US13/590,884 patent/US8683142B2/en not_active Expired - Fee Related
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009020833A (ja) * | 2007-07-13 | 2009-01-29 | Internatl Business Mach Corp <Ibm> | データをキャッシュする技術 |
JP2009211226A (ja) * | 2008-03-01 | 2009-09-17 | Toshiba Corp | メモリシステム |
JP4691122B2 (ja) * | 2008-03-01 | 2011-06-01 | 株式会社東芝 | メモリシステム |
JP2011146105A (ja) * | 2010-01-15 | 2011-07-28 | Internatl Business Mach Corp <Ibm> | データの書込みを制御する装置及び方法 |
US8599511B2 (en) | 2010-01-15 | 2013-12-03 | International Business Machines Corporation | Apparatus for controlling writing data and method for the same |
JP2014197265A (ja) * | 2013-03-29 | 2014-10-16 | 東芝パソコンシステム株式会社 | 半導体メモリ装置 |
Also Published As
Publication number | Publication date |
---|---|
US20120331213A1 (en) | 2012-12-27 |
US20080301373A1 (en) | 2008-12-04 |
US8683142B2 (en) | 2014-03-25 |
US8266385B2 (en) | 2012-09-11 |
JP4412676B2 (ja) | 2010-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4412676B2 (ja) | メインメモリに書き込むデータをキャッシュする技術 | |
EP3204859B1 (en) | Methods and systems for cache lines de-duplication | |
US8443144B2 (en) | Storage device reducing a memory management load and computing system using the storage device | |
JP6505132B2 (ja) | メモリ容量圧縮を利用するメモリコントローラならびに関連するプロセッサベースのシステムおよび方法 | |
US20170235681A1 (en) | Memory system and control method of the same | |
US9811456B2 (en) | Reliable wear-leveling for non-volatile memory and method therefor | |
US10437737B2 (en) | Data storage device | |
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 | |
JP5083757B2 (ja) | データをキャッシュする技術 | |
KR101842321B1 (ko) | 세그먼트화된 캐시 | |
US10691613B1 (en) | Caching algorithms for multiple caches | |
EP3553665B1 (en) | Non-volatile memory access method, device, and system | |
US20140317337A1 (en) | Metadata management and support for phase change memory with switch (pcms) | |
US10990536B2 (en) | Memory controller, operating method of the memory controller, and storage device including the memory controller | |
JP4963088B2 (ja) | データをキャッシュする技術 | |
US20070101098A1 (en) | Apparatus and method of reducing page fault rate in virtual memory system | |
JP4915756B2 (ja) | アドレス変換を高速化する方法及びシステム | |
TW202115730A (zh) | 快閃記憶體控制器、記憶體裝置以及存取快閃記憶體模組之方法 | |
JP2013073271A (ja) | アドレス変換装置、アドレス変換装置の制御方法及び演算処理装置 | |
JP5025670B2 (ja) | 情報処理装置およびデータ記憶装置 | |
JP2010176305A (ja) | 情報処理装置およびデータ記憶装置 | |
JP2014197285A (ja) | 半導体メモリ装置 | |
JP6027479B2 (ja) | 半導体メモリ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090513 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20090513 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20090526 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20090622 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20090715 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090818 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090908 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091026 |
|
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: 20091110 |
|
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: 20091111 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20091113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121127 Year of fee payment: 3 |
|
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: 20121127 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131127 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |