JP2019160197A - Storage device, control program and control method - Google Patents
Storage device, control program and control method Download PDFInfo
- Publication number
- JP2019160197A JP2019160197A JP2018049729A JP2018049729A JP2019160197A JP 2019160197 A JP2019160197 A JP 2019160197A JP 2018049729 A JP2018049729 A JP 2018049729A JP 2018049729 A JP2018049729 A JP 2018049729A JP 2019160197 A JP2019160197 A JP 2019160197A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- data
- page
- unit
- unit area
- 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.)
- Pending
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Read Only Memory (AREA)
Abstract
Description
本発明は、ストレージ装置,制御プログラムおよび制御方法に関する。 The present invention relates to a storage apparatus, a control program, and a control method.
近年、読み出しを主体として大容量のデータを安全かつ長期的に保存する一方で、必要時には高速に読み出すことが可能な記憶装置が実現され、例えば、映像データの長期間保管に用いられている。このような記憶装置をアーカイブストレージという場合がある。 2. Description of the Related Art In recent years, a storage device has been realized that can store large volumes of data safely and for a long time, mainly for reading, while being able to read at high speed when necessary, and is used, for example, for long-term storage of video data. Such a storage device may be called archive storage.
このような記憶装置においてデータを保存する半導体デバイスとしては、大容量かつ比較的高速に読み書き可能で低コストな不揮発性メモリであるNANDフラッシュメモリが多く採用されている。 As a semiconductor device for storing data in such a storage device, a NAND flash memory which is a low-capacity nonvolatile memory having a large capacity and capable of reading and writing at a relatively high speed is often used.
また、NANDフラッシュメモリとしては、1つのメモリセルに、多値記憶可能なMLC(Multi Level Cell)と呼ばれる記録方式を用いたデバイスが採用されることが多くなってきている。 In addition, as a NAND flash memory, a device using a recording method called MLC (Multi Level Cell) capable of storing multiple values in one memory cell is increasingly used.
図8は従来のストレージシステムのハードウェア構成を示す図である。 FIG. 8 is a diagram showing a hardware configuration of a conventional storage system.
ストレージシステム500は、ストレージ装置510およびホスト501を備える。ホスト501は、ストレージ装置510に対してデータのリードやライトを行なう。例えば、ホスト501は、ストレージ装置510に対してデータアドレスを指定してデータの要求を行なう。
The
ストレージ装置510は、メモリコントローラ502,NANDフラッシュメモリ503およびDRAM(Dynamic Random Access Memory)504を備える。
The
NANDフラッシュメモリ503はデータを保管する不揮発性の記憶装置であり、例えば、一般的なSSD(Solid State Drive)と同様の構成を有する。
The
メモリコントローラ502は、NANDフラッシュメモリ503およびDRAM504に対するデータのリード/ライトを制御する。
The
DRAM504は、データを記憶する半導体メモリであり、NANDフラッシュメモリ503に比べてデータアクセスを高速に行なうことができる。DRAM504は、ストレージシステム500においては、データを一時的に保管するキャッシュメモリとして機能する。以下、DRAM504をキャッシュメモリ504という場合がある。
The
キャッシュメモリ504にはNANDフラッシュメモリ503から読み込んだデータを一時的に格納しておき、ホスト501からのデータ要求時にキャッシュ検索がヒットすれば、このキャッシュメモリ504から読み出すことで、高速なアクセスを実現する。
The data read from the
キャッシュメモリ504の容量は一般的にNANDフラッシュメモリ503の容量よりも小さく、NANDフラッシュメモリ503全てのデータをキャッシュすることができない。そこで、一定の規則を以ってキャッシュメモリ504からのデータの追い出し(キャッシュアウトともいう)を行ない、次のデータをキャッシュする。
The capacity of the
NANDフラッシュメモリ503においては、デバイスとしての構造上、リードおよびライトを複数回行なうと、データのリード不良やライト時のデータ化けが発生する寿命(耐久性の制限)が存在する。
In the
特に、MLCを用いたNANDフラッシュメモリ503は1つのメモリセルに複数の値を持たせているため、値の判別が早期に難しくなるため耐久性が低く、エラーが発生する確率も高い。さらに、微細化により、このような現象が顕著になってきており、メモリコントローラ502にはECC(Error Collection Code)の符号化に代表されるエラー訂正機能が必須となっている。
In particular, the
特に、昨今のNANDフラッシュメモリ503におけるエラーパターンとして、リードディスターブが挙げられる。これまでは寿命を縮める要因としてはライトが支配的だったが、リード時にもメモリセルに負担がかかることが分かっている。また、データアクセス対象のページだけでなく、メモリ内部のアドレス制御により、隣接するページ(周辺アドレス)にも影響を与えている。
In particular, an example of an error pattern in the recent
従来のストレージシステムにおいては、記憶媒体にSLC(Single Level Cell)が使われていることが多く、NANDフラッシュメモリ503におけるリードディスターブと呼ばれる劣化の問題が顕在化することが少なかった。
In conventional storage systems, SLC (Single Level Cell) is often used as a storage medium, and a deterioration problem called read disturb in the
リードディスターブは、NANDフラッシュメモリのリード時において、同じブロックにあるページに対してリードが繰り返し行なわれることで、リード対象セルの近隣セルのデジタル値が変化してしまう現象である。これにより、リード対象セルの近隣セルのデータが正しく読み出せなくなる。 Read disturb is a phenomenon in which when a NAND flash memory is read, a digital value of a neighboring cell of a read target cell is changed by repeatedly reading a page in the same block. As a result, the data in the neighboring cells of the read target cell cannot be read correctly.
しかしながら、近年、記憶素子の容量密度向上のためMLCが多用されるようになり、リードディスターブによる影響が無視できなくなってきている。 However, in recent years, MLC has been frequently used to improve the capacity density of storage elements, and the influence of read disturb cannot be ignored.
一般的にキャッシュメモリ504の管理方式として用いられているLRU(Least Recently Used)方式では、ホスト501からのアクセス頻度(時間経過)に基づいてDRAM504から追い出すデータの判定を行なっている。
すなわち、LRU方式においては、キャッシュがフルになった時にキャッシュメモリにおいて最も旧いデータをキャッシュメモリ504からの追い出し(削除)対象とする。換言すると、アクセスに対する時間経過を世代番号で管理し、キャッシュ要否を判断する。
In an LRU (Least Recently Used) method that is generally used as a management method for the
In other words, in the LRU method, when the cache becomes full, the oldest data in the cache memory is set as a target for removal (deletion) from the
このようなLRU方式においては、全体的なフラッシュメモリのリード回数を減らすことは出来るが、リード時のNANDフラッシュメモリ503の劣化は考慮されていない。
In such an LRU method, the overall number of reads of the flash memory can be reduced, but deterioration of the
例えば、アクセスされる時間的に局所的な頻度は少ないが、間隔を空けて何度もアクセスが行なわれるページ(アドレス)は、LRU方式ではキャッシュの追い出し対象となる。これにより、NANDフラッシュメモリ503へのデータアクセスが発生し、NANDフラッシュメモリ503の劣化が進んでしまうという課題が有る。
For example, a page (address) that is accessed many times at intervals but with a low local frequency is accessed in the LRU method as a cache eviction target. As a result, there is a problem that data access to the
また、LRU方式においては、キャッシュヒットが発生した特定のアドレスのみを対象としてキャッシュ追い出し制御を行なうため、キャッシュヒットが発生したアドレスの周囲のページについては考慮されていない。従って、リードディスターブにおける周辺アドレスの保護、キャッシュといった点について考慮がされておらず、これらによってもNANDフラッシュメモリ503の劣化が進んでしまうという課題がある。
Further, in the LRU method, cache eviction control is performed only for a specific address where a cache hit occurs, so pages around the address where the cache hit occurs are not considered. Therefore, consideration is not given to the protection of peripheral addresses and read caching in read disturb, and there is a problem that the
1つの側面では、本発明は、半導体記憶装置の耐久性を向上させることができるようにすることを目的とする。 In one aspect, an object of the present invention is to improve the durability of a semiconductor memory device.
このため、このストレージ装置は、半導体記憶装置から読み出したデータにエラーを検知した場合にエラー訂正を行ない、訂正したエラー数を出力するエラー訂正処理部と、前記半導体記憶装置に備えられる複数の単位領域のうち、第1の単位領域において検出された第1エラー数と前記第1の単位領域に隣接する第2の単位領域において検出された第2エラー数との合計が第1閾値以上の場合に、前記第1の単位領域のデータをキャッシュメモリからの追い出し対象外に設定する設定部とを備える。 For this reason, the storage device performs error correction when an error is detected in data read from the semiconductor memory device, and outputs an error correction processing unit that outputs the number of corrected errors, and a plurality of units provided in the semiconductor memory device When the total of the first error number detected in the first unit area and the second error number detected in the second unit area adjacent to the first unit area is greater than or equal to the first threshold value among the areas. And a setting unit for setting the data of the first unit area to be excluded from the cache memory.
一実施形態によれば、半導体記憶装置の耐久性を向上させることができる。 According to one embodiment, the durability of the semiconductor memory device can be improved.
以下、図面を参照して本ストレージ装置,制御プログラムおよび制御方法に係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。 Hereinafter, embodiments of the storage apparatus, a control program, and a control method will be described with reference to the drawings. However, the embodiment described below is merely an example, and there is no intention to exclude application of various modifications and techniques not explicitly described in the embodiment. That is, the present embodiment can be implemented with various modifications without departing from the spirit of the present embodiment. Each figure is not intended to include only the components shown in the figure, and may include other functions.
(A)構成
図1は実施形態の一例としてのストレージ装置100を備えるストレージシステム1の構成を例示する図である。
(A) Configuration FIG. 1 is a diagram illustrating a configuration of a
図1に示すように、ストレージシステム1は、PC(Personal Computer)等のホスト200とストレージ装置100とを備える。ホスト200とストレージ装置100とは、SAS(Serial Attached Small Computer System Interface)やFC(Fibre Channel),ネットワーク等のインタフェースを介して接続されている。
As shown in FIG. 1, the
ホスト200は、図示しないCPU(Central Processing Unit)等のプロセッサを備え、このプロセッサによりアプリケーションを実行することで、種々の機能を実現する。
The
ストレージ装置100は、後述の如く、複数種類の記憶装置(図1に示す例では、NANDフラッシュメモリ101およびDRAM102)を備え、これらの記憶装置の記憶領域をホスト200に提供する。階層ストレージ装置1が提供する記憶領域には、ホスト200においてアプリケーションの実行により生成されたデータや、アプリケーションを実行するために用いられるデータ等が格納される。
As will be described later, the storage device 100 includes a plurality of types of storage devices (in the example shown in FIG. 1, a
ホスト200がストレージシステム1の記憶領域に対してデータのライトやリードを行なうことで、IOアクセスが生じる。
IO access occurs when the
図1に示すように、ストレージ装置100は、メモリコントローラ110,NANDフラッシュメモリ101およびDRAM102を備える。
As shown in FIG. 1, the storage apparatus 100 includes a
NANDフラッシュメモリ101は、種々のデータやプログラム等を格納する記憶装置の一例であり、不揮発性記憶素子のフラッシュメモリ(半導体記憶装置)である。NANDフラッシュメモリ101はMLCであってもよい。
The
DRAM102(第2の記憶装置)は、半導体メモリであり、NANDフラッシュメモリ101とは異なる性能の(例えばより高速な)記憶装置の一例である。DRAM102はキャッシュメモリとして用いられる。以下、DRAM102をキャッシュメモリ102という場合がある。
The DRAM 102 (second storage device) is a semiconductor memory and is an example of a storage device having a performance (for example, higher speed) different from that of the
本実施形態において、互いに異なる記憶装置として、NANDフラッシュメモリ101およびDRAM102を例に挙げているが、これに限定されるものではない。NANDフラッシュメモリ101とキャッシュメモリ102との代わりに、性能差(例えばリード/ライトの速度差)のある種々の記憶装置が用いてもよい。
In the present embodiment, the
メモリコントローラ110は、ホスト200からのデータアクセス要求に応じて、NANDフラッシュメモリ101およびDRAM102への種々のアクセスを行なう。例えば、ホスト200からデータ要求(リード)が行なわれると、メモリコントローラ110は、NANDフラッシュメモリ101もしくはDRAM102から要求されたデータをリードし、リードした実データをホスト200に応答(データ応答)する。
The
メモリコントローラ110は、キャッシュ管理部10,データアクセス制御部20,およびエラー訂正処理部21を備える。
The
エラー訂正処理部21は、NANDフラッシュメモリ101からリードされたデータに対して符号誤り(エラー)の検出を行ない、エラーが検出された場合に誤り訂正(エラー訂正)を行なう。なお、エラー検出およびエラー訂正は既知の種々の手法で実現することができ、その説明は省略する。エラー訂正処理部21は例えばエラー訂正回路により実現してもよい。
The error
また、エラー訂正処理部21は、エラー訂正を行なったエラーの数(CE数)をキャッシュ管理部10に出力(通知)する。なお、CEはCorrectable Errorの略称である。
Further, the error
データアクセス制御部20は、ホスト200から入力されるデータアクセス要求を処理する。例えば、データアクセス制御部20は、ホスト200からリード要求(データ要求)が入力されると、このデータ要求に伴って入力されるデータアドレスに基づき、後述するキャッシュ管理部10に対してキャッシュ検索を入力する。データアクセス制御部20は、このキャッシュ検索に対してキャッシュ管理部10から応答される検索結果に基づいて、NANDフラッシュメモリ101もしくはDRAM102に対してデータ要求を発行する。
The data
具体的には、キャッシュ検索の結果、キャッシュヒットした場合、すなわち、要求されたデータがキャッシュメモリ102にある旨の結果応答がキャッシュ管理部10からされた場合には、データアクセス制御部20は、キャッシュメモリ102にデータ要求を行なう。
Specifically, when the cache search results in a cache hit, that is, when a result response indicating that the requested data is in the
このようにキャッシュメモリ102からリードされたデータ(キャッシュ読み込みデータ)は、ホスト200に実データとして応答される。
Thus, the data read from the cache memory 102 (cache read data) is returned to the
一方、キャッシュ検索の結果、キャッシュミスした場合、すなわち、要求されたデータがキャッシュメモリ102にない旨の結果応答がキャッシュ管理部10からされた場合には、データアクセス制御部20は、NANDフラッシュメモリ101にデータ要求を行なう。
On the other hand, if the cache search results in a cache miss, i.e., if the
NANDフラッシュメモリ101からリードされたデータ(NAND読み込みデータ)は、エラー訂正処理部21によってエラー検出が行なわれた後、ホスト200に実データとして応答される。また、エラー訂正処理部21によってエラーが検出された場合にはエラー訂正処理部21によるエラー訂正が行なわれた後に、ホスト200に実データとして応答される。
Data read from the NAND flash memory 101 (NAND read data) is subjected to error detection by the error
また、NANDフラッシュメモリ101から読み出されたデータは、エラー訂正処理部21によってエラー検出が行なわれ、必要に応じてエラー訂正が行なわれた後に、キャッシュメモリ102に格納される(キャッシュ用データ書き込み)。
Further, the data read from the
さらに、データアクセス制御部20は、NANDフラッシュメモリ101に対して行なったデータ要求のデータアドレスを、キャッシュ管理部10に通知することでキャッシュ管理部10へのキャッシュ登録を行なう。
Further, the data
キャッシュ管理部10は、キャッシュメモリ102に関する管理を行なう。キャッシュ管理部10は、図1に示すように、情報管理部11およびキャッシュアクセス制御部12を備える。
The
情報管理部11は、キャッシュメモリ102を管理するための情報を管理する。具体的には、情報管理部11は、キャッシュ管理情報111aおよびキャッシュ履歴情報111bを管理する。これらのキャッシュ管理情報111aおよびキャッシュ履歴情報111bを構成する各情報は、例えば、メモリコントローラ110に備えられた図示しないメモリ(格納部)に格納される。
The
図2は実施形態の一例としてのストレージシステム1におけるキャッシュ管理情報111aを例示する図である。
FIG. 2 is a diagram illustrating
キャッシュ管理情報111aは、キャッシュメモリ102に格納されているデータ(ページ)を管理する。キャッシュ管理情報111aは、NANDフラッシュメモリ101におけるページと呼ばれる所定サイズのデータ範囲領域(単位領域)毎に、NANDアドレス,世代番号,該当CE数,近接CE数,履歴CE数およびフラグA〜D(FLAG_A〜FLAG_D)を対応付けて構成されている。すなわち、キャッシュ管理情報111aにおいては、NANDフラッシュメモリ101のページ毎にエントリが構成される。以下、各エントリに対応するページを該当ページという場合がある。
The
NANDアドレスは、NANDフラッシュメモリ101における該当ページの物理的な位置を表す。
The NAND address represents the physical position of the corresponding page in the
世代番号は、ページに対して行なわれたデータアクセスに対する時間経過を示す情報である。例えば、キャッシュメモリ102への登録(キャッシュ登録)およびキャッシュ管理情報111aの更新時に、データアクセスが行なわれたページに対応する世代番号が更新される。
The generation number is information indicating the passage of time for the data access made to the page. For example, at the time of registration (cache registration) in the
世代番号は、例えば、キャッシュメモリ102への登録およびキャッシュ管理情報111aの更新時に、他のどのページの世代番号よりも大きな値に更新される。
The generation number is updated to a value larger than the generation number of any other page, for example, when registering in the
本実施形態においては、世代番号の値が小さいほど最近の(前回の)アクセスが古いページを示すものとする。 In the present embodiment, it is assumed that the smaller the generation number value, the more recent (previous) access indicates the older page.
該当CE数は、該当ページにおいて検出されたCE数であり、NANDフラッシュメモリ101からのデータリード時にエラー訂正処理部21によって検出されたCE数がページ単位で登録される。
The number of corresponding CEs is the number of CEs detected in the corresponding page, and the number of CEs detected by the error
CE数とは、例えば、エラー訂正処理部21において訂正されたNANDフラッシュメモリ101のページあたりのビット数を表す。一般的に、NANDフラッシュメモリ101のページサイズは4096byte(4KB)である。エラー訂正処理部21の実装方法にも依存するが、例えば、BCH符号を用いたエラー訂正手法では4096bit当たり50bit前後の訂正能力がある。そのため、ページあたりでのCE数は0〜50bitまでの数値がCE数として保存されてもよい。
The number of CEs represents, for example, the number of bits per page of the
CE数が多いページは、再度リードを行なうと劣化が進み、エラー数が増加するおそれがある。そこで、本ストレージシステム1においては、CE数が多いページを保護対象として、そのデータをキャッシュメモリ102に残すことでNANDフラッシュメモリ101の保護を図る。
If a page with a large number of CEs is read again, deterioration may progress and the number of errors may increase. Therefore, in this
該当CE数には、キャッシュメモリ102におけるノーヒット時に、NANDフラッシュメモリ101からリードを行なった際のCE数がページ単位で登録される。
In the number of corresponding CEs, the number of CEs when reading from the
近接CE数は、該当ページの周辺のページであって、アドレス信号を共有する隣接(近接)する近接ページで検出されたCE数である。 The number of adjacent CEs is the number of CEs detected on adjacent pages that are adjacent (close to each other) sharing the address signal, which are pages around the corresponding page.
リードディスターブは、実際にリードを行なうページ(該当ページ)だけでなく、アドレス信号を共有する周辺のページについても影響を及ぼす。そこで、本ストレージシステム1においては、該当ページとこの該当ページに隣接する隣接ページとを含めた複数のページのCE数の合計を所定の閾値と比較する。そして、これらのCE数の合計が所定の閾値よりも多ければ、それらの隣接ページを該当ページと同一のページと見なして保護対象とし、それらのページのデータをキャッシュメモリ102に残すよう制御する。
The read disturb affects not only the page (the corresponding page) that is actually read, but also the peripheral pages that share the address signal. Therefore, in the
図3(a),(b)は実施形態の一例としてのストレージシステム1における近接ページを説明するための図である。図3(a)はNANDフラッシュメモリ101上における該当ページと近接ページとの位置関係を例示する図、図3(b)は該当ページと近接ページとの位置関係をテーブルで例示する図である。
3A and 3B are diagrams for explaining adjacent pages in the
図3(a),(b)においては、該当ページを符号Aで示し、近接ページを符号B,C,D,Eで示す。 In FIGS. 3A and 3B, the corresponding page is indicated by the symbol A, and the adjacent pages are indicated by the symbols B, C, D, and E.
近接ページは、該当ページに物理的に近接しているページを指す。ただし、NANDフラッシュメモリ101のLSI(Large Scale Integration)内部の物理的な配置やアドレス線の制御方法によって近接ページの定義が変わる。そのため、制御対象となるメモリデバイスのデータシートやメーカーからの情報を入手して近接ページを定義してもよい。
The adjacent page refers to a page that is physically close to the corresponding page. However, the definition of the adjacent page changes depending on the physical arrangement inside the LSI (Large Scale Integration) of the
図3(a),(b)に示す例においては、簡略化のため、アドレス=ページアドレスであり、また、論理的な配置=物理的な配置であるものとする。 In the example shown in FIGS. 3A and 3B, for simplification, it is assumed that address = page address and logical arrangement = physical arrangement.
図3(a),(b)に示す例において、リード対象のページ(該当ページ)AのRowアドレスが“RA”, Columnアドレスが“CA”であるとする。 In the example shown in FIGS. 3A and 3B, it is assumed that the row address of the read target page (corresponding page) A is “RA” and the column address is “CA”.
例えば、近接ページBのアドレスはRowアドレスが“RA-1”、Columnアドレスが“CA”となり、RowアドレスとColumnアドレスとから近接ページBのNANDフラッシュメモリ101上のアドレス(NANDアドレス)を求めることができる。同様に、例えば、近接ページCのアドレスはRowアドレスが“RA” 、Columnアドレスが“CA - 1” となり、RowアドレスとColumnアドレスとから近接ページCのNANDアドレスを求めることができる。
For example, the address of the adjacent page B is “RA-1” for the Row address and “CA” for the Column address, and the address (NAND address) of the adjacent page B on the
近接CE数はキャッシュ管理情報111aを参照することで取得することができる。例えば、ページAの近接CE数は、ページBの該当CE数とページCの該当CE数とページDの該当CE数とページEの該当CE数とを合計することで算出することができる。
The number of adjacent CEs can be acquired by referring to the
なお、図3(a),(b)に示す例において、RowアドレスやColumnアドレスにおける“-1”もしくは“+1”に含まれる“1”は1ページ分のアドレスを現わす。 In the example shown in FIGS. 3A and 3B, “1” included in “−1” or “+1” in the Row address and the Column address represents an address for one page.
近接CE数が情報管理部11に登録されているか否かは、キャッシュ管理部10に登録されているNANDアドレスを検索することによって判断することができる。例えば、仮にページBのNANDアドレスが情報管理部11に登録されていない場合には、ページBの該当CE数=0としてもよい。
Whether or not the number of adjacent CEs is registered in the
近接CE数は、近接ページのキャッシュ管理情報111aに登録された該当CE数から取得される。
The number of neighboring CEs is acquired from the number of corresponding CEs registered in the
履歴CE数は、キャッシュ履歴のページのCE数である。キャッシュ履歴のページとは、実データはキャッシュメモリ102には残っていないが、過去にキャッシュしたページである。履歴CE数においては、このようなキャッシュ履歴のページのページ番号および、そのページをリードした時のCE数(履歴CE数)を記録している。すなわち、履歴CE数は、該当ページにおいて過去に検出されたエラー数に相当する。
The history CE number is the CE number of the cache history page. A cache history page is a page that has been cached in the past, although no actual data remains in the
例えば、同じページが複数回読み出された場合に、前回リードされた時のCE数を履歴CE数として格納し、今回リードされた時のCE数が該当CE数として格納される。 For example, when the same page is read a plurality of times, the number of CEs read at the previous time is stored as the number of history CEs, and the number of CEs read this time is stored as the number of corresponding CEs.
履歴CE数は、後述するキャッシュ履歴情報111bに登録されたCE数から参照される。
The history CE number is referenced from the CE number registered in
FLAG_A,FLAG_B,FLAG_C,FLAG_Dには、後述するキャッシュアクセス制御部12がキャッシュメモリ102上における置換対象のフラグの選出(図7に示すフローチャート参照)を行なう際に判断される判断結果がそれぞれ記録される。
In FLAG_A, FLAG_B, FLAG_C, and FLAG_D, determination results that are determined when the cache
FLAG_Aには、該当CE数が基準値Aより少ないとき“0”が、また、該当CE数が基準値A以上の場合に“1”が設定される。 In FLAG_A, “0” is set when the number of corresponding CEs is smaller than the reference value A, and “1” is set when the number of corresponding CEs is greater than or equal to the reference value A.
また、FLAG_Bには、世代番号が基準値B(第2閾値)より小さい(古い)場合に“0”が、また、世代番号が基準値B以上の場合に“1”が設定される。 FLAG_B is set to “0” when the generation number is smaller (older) than the reference value B (second threshold), and “1” when the generation number is greater than or equal to the reference value B.
FLAG_Cには、該当CE数が、履歴CE数と比較して基準値C(第3閾値)より少ない場合に“0”が、また、該当CE数が、履歴CE数と比較して基準値C以上である場合に“1”が、設定される。 In FLAG_C, “0” is set when the number of corresponding CEs is smaller than the reference value C (third threshold) compared with the history CE number, and the corresponding CE number is compared with the history CE number. In the above case, “1” is set.
FLAG_Dは、該当ページと近接ページとのCE数の合計が基準値D(第1閾値)より少ない場合に“0”が、また、該当ページと近接ページとのCE数の合計が基準値D以上の場合に“1”が、設定される。 FLAG_D is “0” when the total number of CEs of the corresponding page and adjacent pages is smaller than the reference value D (first threshold), and the total number of CEs of the corresponding page and adjacent pages is greater than or equal to the reference value D. In this case, “1” is set.
これらのFLAG_A,FLAG_B,FLAG_C,FLAG_Dへの判断結果の格納については、図7のフローチャートの説明において後述する。 The storage of the determination result in FLAG_A, FLAG_B, FLAG_C, and FLAG_D will be described later in the description of the flowchart of FIG.
キャッシュ管理情報111aにおいては、各ページの最新の状態がエントリとして記録される。
In the
キャッシュ履歴情報111bは、過去にキャッシュメモリ102に格納されていたデータ(ページ)を管理する。キャッシュ履歴情報111bはキャッシュ管理情報111aと同様の構成を有し、キャッシュ管理情報111aのいずれかのエントリに更新が行なわれると、その更新前のエントリはキャッシュ履歴情報111bに記録される。すなわち、キャッシュ履歴情報111bは、キャッシュ管理情報111aの履歴として機能する。
The
例えば、ホスト200からリード要求が入力され、NANDフラッシュメモリ101へのリードアクセスが発生すると、キャッシュ管理情報111aにおける対応ページのエントリが更新される。このキャッシュ管理情報111aにおいて更新された旧エントリはキャッシュ履歴情報111bに記録される。
For example, when a read request is input from the
以下、キャッシュ管理情報111aおよびキャッシュ履歴情報111bをまとめてキャッシュ情報111という場合がある。情報管理部11はキャッシュ情報111を管理する。
Hereinafter, the
キャッシュ管理部10は、キャッシュアクセス制御部12からキャッシュ検索要求が入力されると、このキャッシュ検索要求に応じて、キャッシュ管理情報111aに対して検索を指示することで、リード対象のデータがキャッシュメモリ102にあるかを確認する。
When a cache search request is input from the cache
例えば、ホスト200からデータアドレスを伴うリード要求が入力された場合には、キャッシュアクセス制御部12は、情報管理部11に対して、データアドレスを伴うキャッシュ検索要求を入力する。情報管理部11は、入力されたデータアドレスに基づき、キャッシュ管理情報111aの各NANDアドレスを検索することで、キャッシュメモリ102にリード対象のデータが格納されているかを判断する。
For example, when a read request with a data address is input from the
情報管理部11は、検索結果(キャッシュヒットもしくはキャッシュミス)をキャッシュアクセス制御部12に応答し、キャッシュアクセス制御部12は、情報管理部11からの応答をデータアクセス制御部20に応答(結果応答)する。
The
また、情報管理部11は、キャッシュアクセス制御部12からキャッシュ情報(キャッシュ管理情報111a)に対するデータの登録や更新、削除の指示が入力されると、この指示に応じて、キャッシュ情報111に対して、データの登録や更新、削除を行なう。
In addition, when an instruction to register, update, or delete data for the cache information (
キャッシュアクセス制御部12は、キャッシュメモリ102に対するデータアクセスを制御する。
The cache
例えば、ホスト200からリードのデータ要求がデータアクセス制御部20に入力されると、データアクセス制御部20はキャッシュアクセス制御部12に対して、キャッシュ検索を要求する。
For example, when a read data request is input from the
例えば、ホスト200からデータアドレスを伴うリード要求が入力された場合には、キャッシュアクセス制御部12は、情報管理部11に対して、データアドレスを伴うキャッシュ検索要求を入力する。
For example, when a read request with a data address is input from the
また、キャッシュアクセス制御部12は、情報管理部11から応答された検索結果をデータアクセス制御部20に応答する。
Further, the cache
キャッシュアクセス制御部12は、メモリコントローラ110全般の制御を行なう。例えば、キャッシュアクセス制御部12は、ホスト200からのデータ要求に対して、キャッシュ検索を行なう。キャッシュメモリ102に要求されたデータが存在しなければ(キャッシュヒットしなければ)、キャッシュアクセス制御部12は、NANDフラッシュメモリ101からデータのリードを行なわせる。
The cache
また、キャッシュアクセス制御部12は、NANDフラッシュメモリ101からリードされたデータがキャッシュメモリ102にライトされると、情報管理部11に対してキャッシュ情報(キャッシュ管理情報111a)に対するデータの登録を指示する。
Further, when the data read from the
キャッシュアクセス制御部12は、キャッシュメモリ102上のデータの置換が生じ、キャッシュメモリ102からデータが削除(キャッシュアウト)されると、情報管理部11に対して、該当データのページをキャッシュ管理情報111aから削除させる指示を行なう。また、キャッシュアクセス制御部12は、キャッシュメモリ102上におけるデータ配置に変更が生じると、情報管理部11に対して、該当データのページをキャッシュ管理情報111aにおいて変更させる指示を行なう。
When the data on the
また、キャッシュアクセス制御部12は、キャッシュメモリ102にキャッシュさせるデータの管理も行なう。
The cache
キャッシュメモリ102の容量は、NANDフラッシュメモリ101の容量よりも小さく、NANDフラッシュメモリ101の全てのデータをキャッシュメモリ102にキャッシュする事は出来ない。
The capacity of the
そこで、キャッシュアクセス制御部12は、一定の規則を以ってキャッシュメモリ102からのデータ追い出し処理を行ない、次のデータをキャッシュする。
Therefore, the cache
本ストレージシステム1においては、ホスト200からデータのリード要求を受けた時に、キャッシュメモリ102に空き領域がない場合(キャッシュフル)に、キャッシュアクセス制御部12は、以下の処理を行なう。
In this
すなわち、キャッシュアクセス制御部12は、NANDフラッシュメモリ101の保護を目的としてNANDフラッシュメモリ101のページに優先順位を設定して、キャッシュメモリ102から追い出すデータ(キャッシュ追い出し対象)を決定する。
That is, the cache
図4は実施形態の一例としてのストレージシステム1におけるキャッシュ追い出し対象を決定するための優先順位を説明するための図である。
FIG. 4 is a diagram for explaining a priority order for determining a cache eviction target in the
キャッシュアクセス制御部12は、この図4に例示する優先順位に従って、キャッシュ追い出し対象のページを決定する。
The cache
図4においては、ページにおけるCE数と世代番号とに基づいて1〜8の優先順位を設定する例を示し、優先順位の値が小さい程、優先してキャッシュ追い出し対象とする。 FIG. 4 shows an example in which priorities of 1 to 8 are set based on the number of CEs and generation numbers in a page. The smaller the priority value, the higher the priority for cache eviction.
本ストレージシステム1においては、NANDフラッシュメモリ101においてCE数が多いページは劣化が進んでいる領域であると考えられるので、該当領域の保護を図るために、該当領域へのデータアクセスが少なくなるように制御を行なう。すなわち、NANDフラッシュメモリ101における保護対象の領域のデータ(ページデータ)をキャッシュメモリ102に残すように制御することで、NANDフラッシュメモリ101における保護対象領域へのデータアクセスを減らす。
In this
そのため、NANDフラッシュメモリ101において劣化が少なく、保護対象とする必要がないと思われる領域のページデータを、優先的にキャッシュ追い出し領域として選択する。
For this reason, page data in an area that is unlikely to be protected in the
例えば、ページのCE数を所定の基準値(閾値)Aと比較し、CE数がこの基準値A以上のページをキャッシュ追い出し対象外としてキャッシュメモリ102に残し、CE数がこの基準値Aよりも小さいページを優先してキャッシュ追い出し対象とする。すなわち、CE数が多いページを保護対象としてキャッシュメモリ102に残し、CE数が少ないページを優先してキャッシュ追い出し対象とする。
For example, the number of CEs of a page is compared with a predetermined reference value (threshold value) A, and pages with a CE number equal to or greater than this reference value A are left out of the
また、ページの世代番号を所定の基準値(第2閾値)Bと比較し、世代番号がこの基準値Bよりも新しいページをキャッシュ追い出し対象外としてキャッシュメモリ102に残し、世代番号がこの基準値Bよりも古いページを優先してキャッシュ追い出し対象とする。すなわち、世代番号の値が大きく、最後にアクセスが生じてからアクセスがない状態での期間が短いページを保護対象としてキャッシュメモリ102に残す。そして、世代番号の値が小さく、最後にアクセスが生じてからアクセスがない期間が長いページを優先してキャッシュ追い出し対象とする。
Further, the generation number of the page is compared with a predetermined reference value (second threshold) B, and a page whose generation number is newer than this reference value B is left out of the
さらに、CE数の観点から、同一ページにおける過去(履歴)のCE数と比較し、CE数の増加数が所定の基準値(第3閾値)C以上のページをキャッシュ追い出し対象外としてキャッシュメモリ102に残す。そして、CE数の増加数が所定の基準値(第3閾値)Cよりも少ないページを優先してキャッシュ追い出し対象とする。
Further, from the viewpoint of the number of CEs, the
また、キャッシュアクセス制御部12は、該当CE数と近接CE数との和が所定の基準値(第1閾値)D以上のページをキャッシュ追い出し対象外としてキャッシュメモリ102に残す。そして、該当CE数と近接CE数との和が所定の基準値(第4の基準値)Dよりも少ないページを優先してキャッシュ追い出し対象とする。
In addition, the cache
該当CE数と近接CE数との和が所定の基準値(第1閾値)D以上である場合には、該当ページに近接する各ページのCE数も多く、NANDフラッシュメモリ101において、これらの近接ページに対応する領域についても劣化が生じていると考えられる。そこで、本ストレージシステム1においては、このようなページを保護対象として、キャシュ追い出し対象とせず、データをキャッシュメモリ102に残すことでNANDフラッシュメモリ101における当該領域へのアクセスを抑制して保護する。
When the sum of the number of corresponding CEs and the number of adjacent CEs is equal to or greater than a predetermined reference value (first threshold value) D, the number of CEs of each page adjacent to the corresponding page is also large. It is considered that the area corresponding to the page has also deteriorated. Therefore, in the
また、キャッシュアクセス制御部12は、キャッシュ管理情報111aおよびキャッシュ履歴情報111bを参照して、該当ページの世代番号と該当CE数と履歴CE数とから、次回(世代番号の差以降)にリードを行なうときのCE数を外挿で推測する。そして、キャッシュアクセス制御部12は、推測したCE数の値がエラー訂正処理部21の訂正可能数を超える場合に、該当ページを保護対象としてキャッシュメモリ102に残す対象とする。
Further, the cache
すなわち、キャッシュアクセス制御部12は、過去におけるCE数の実績に基づいて次回リード時のCE数(予測CE数)の予測を行ない、この予測CE数を用いてキャッシュ追い出し対象の決定を行なう。
That is, the cache
図5は実施形態のストレージシステム1における予測CE数に基づくキャッシュ追い出し対象の決定手法を説明するための図である。
FIG. 5 is a diagram for explaining a cache eviction target determination method based on the predicted number of CEs in the
図5においては、該当CE数=aとし、履歴CE数=bとする。また、エラー訂正処理部21における訂正可能なCE数(CE訂正可能数)=cとし、次回リード時の予測CE数=dとする。 In FIG. 5, the number of relevant CEs = a and the number of history CEs = b. Further, the number of CEs that can be corrected in the error correction processing unit 21 (the number of CE corrections possible) = c, and the predicted number of CEs at the next read = d.
履歴CE数(b)から該当CE数(a)への増分が(a−b)であることから、CE数の増加率やリード間隔が均一であると仮定すると、次回リード時の予測CE数(d)は以下の式(1)で求めることができる。
次回リード時の予測CE数(d)=a+(a−b) ・・・(1)
Since the increment from the history CE number (b) to the corresponding CE number (a) is (ab), assuming that the rate of increase in CE number and the read interval are uniform, the predicted CE number at the next read (D) can be obtained by the following equation (1).
Predicted CE number at next read (d) = a + (a−b) (1)
ここで、次回リード時の予測CE数(d)が、訂正可能数(c)を超えると訂正不可能となるため、以下の条件式(2)が満たされていないと次回リード時に、エラー訂正処理部21において訂正不可能となる。
a+(a−b)≦c ・・・(2)
Here, when the predicted number of CEs (d) at the next read exceeds the correctable number (c), correction is impossible. Therefore, if the following conditional expression (2) is not satisfied, error correction is performed at the next read. Correction is impossible in the
a + (a−b) ≦ c (2)
すなわち、該当CE数(a)が以下に示す式(3)を満たす値になっていないと次回リード時に、エラー訂正処理部21において訂正不可能となる。
a≦(b+c)/2 ・・・(3)
That is, if the number of corresponding CEs (a) does not satisfy the following expression (3), the error
a ≦ (b + c) / 2 (3)
上記の基準値は、リード間隔やCE数の増分が均一であると仮定しているが、実際にはこれらの値にばらつきが生じるため、訂正数可能数に係数k(0≦k≦1)をかけてマージンを持たせて基準値c′’を設定し判定を行なうことが望ましい。 The above reference value assumes that the read interval and the CE number increment are uniform, but in actuality these values vary, and therefore the coefficient k (0 ≦ k ≦ 1) It is desirable to set a reference value c ′ ′ with a margin and to make a determination.
また、上記の例においては、該当CE数の増分に着目した基準値を設定しているが、これに限定されるものではない。例えば、近接ページも含めたCE数の増分に着目した基準値を設定してもよく、種々変形して実施することができる。 In the above example, the reference value focusing on the increase in the number of corresponding CEs is set, but the present invention is not limited to this. For example, a reference value focusing on the increase in the number of CEs including adjacent pages may be set, and various modifications can be made.
(B)動作
上述の如く構成された実施形態の一例としてのストレージシステム1におけるリード要求の処理方法を、図6に示すフローチャート(ステップA1〜A10)に従って説明する。
(B) Operation A read request processing method in the
ステップA1において、ホスト200からリード要求(データ要求)が入力され、データアクセス制御部20が、ホスト200から、このデータ要求とリード対象データアドレスを取得する。
In step A <b> 1, a read request (data request) is input from the
ステップA2において、データアクセス制御部20は、キャッシュ管理部10のキャッシュアクセス制御部12に対して、キャッシュ検索を要求する。キャッシュアクセス制御部12は、データアドレスを伴う検索要求を情報管理部11に入力する。
In step A2, the data
ステップA3において、情報管理部11は、キャッシュ管理情報111aを検索し、リード対象のデータがキャッシュメモリ102に格納されているか、すなわち、キャッシュヒットしたかを確認する。
In step A3, the
確認の結果、キャッシュヒットした場合(ステップA3のYESルート参照)、ステップA4に移行する。ステップA4においては、情報管理部11がキャッシュ管理情報111aにおける、リードアクセス先に対応するページの世代番号を更新する。情報管理部11はキャッシュアクセス制御部12に対して検索結果を応答し、キャッシュアクセス制御部12はデータアクセス制御部20に対して検索結果を応答する。
If the result of the check is a cache hit (see YES route in step A3), the process proceeds to step A4. In step A4, the
ステップA5において、データアクセス制御部20は、キャッシュメモリ102に格納されているリード対象データをリードして、ホスト200に応答させる。
In step A5, the data
一方、ステップA3における確認の結果、キャッシュヒットしなかった場合(ステップA3のNOルート参照)、ステップA6に移行する。 On the other hand, if the result of confirmation in step A3 is that there is no cache hit (see NO route in step A3), the process proceeds to step A6.
ステップA6においては、キャッシュアクセス制御部12は、キャッシュメモリ102がキャッシュフルの状態であるかを確認する。確認の結果、キャッシュメモリ102がキャッシュフルでない場合(ステップA6のNOルート参照)ステップA9に移行する。
In step A6, the cache
また、ステップA6における確認の結果、キャッシュメモリ102がキャッシュフルである場合には(ステップA6のYESルート参照)、ステップA7に移行する。
If the result of confirmation in step A6 is that the
ステップA7においては、キャッシュアクセス制御部12が、キャッシュメモリ102に格納されているページデータの中から置換対象となるページデータ、すなわち、キャッシュアウトさせるページデータを選出する。
In step A7, the cache
ステップA8において、キャッシュアクセス制御部12は、キャッシュメモリ102における置換対象のデータを削除(キャッシュアウト)させる。また、キャッシュアクセス制御部12は、情報管理部11に対して、キャッシュメモリ102から削除したページデータのエントリをキャッシュ管理情報111aから削除させる。キャッシュ管理情報111aから削除されたエントリはキャッシュ履歴情報111bに格納される。その後、ステップA9に移行する。
In step A8, the cache
ステップA9において、キャッシュアクセス制御部12は、情報管理部11に、キャッシュ管理情報111aへ、キャッシュメモリ102に新たに格納されるリードデータについての情報を登録させる。
In step A9, the cache
ステップA10において、データアクセス制御部20は、NANDフラッシュメモリ101からリード対象のデータをリードさせる。NANDフラッシュメモリ101からリードされたデータはエラー訂正処理部21に入力され、このエラー訂正処理部21においてエラー検出が行なわれた後、ホスト200にデータ応答として送信される。なお、エラー訂正処理部21において訂正可能なエラー(CE)が検出された場合には、エラー訂正処理部21はこのエラーを訂正し、このエラー訂正が行なわれたリードデータがホスト200に応答データとして送信される。
In step A <b> 10, the data
また、エラー訂正処理部21はエラー訂正を行なった場合に、CE数をキャッシュアクセス制御部12(キャッシュ管理部10)に通知する。
The error
キャッシュアクセス制御部12は、エラー訂正処理部21から通知されたCE数を情報管理部11に通知し、キャッシュ管理情報111aにおける対応するエントリのCE数を更新させる。
The cache
また、NANDフラッシュメモリ101から読み出され、必要に応じてエラー訂正が行なわれたリードデータは、キャッシュメモリ102にも転送され、このキャッシュメモリ102に格納(キャッシュイン)される。
The read data read from the
次に、図6に示したフローチャートのステップA7の置換対象の選択手法の詳細を、図7に示すフローチャート(ステップB1〜B17)に従って説明する。 Next, details of the replacement target selection method in step A7 of the flowchart shown in FIG. 6 will be described according to the flowchart (steps B1 to B17) shown in FIG.
ステップB1において、キャッシュアクセス制御部12は、情報管理部11に対して、キャッシュ管理情報111aにおいて、CE数が基準値Aよりも少ないページがあるか(以下、条件J_01という場合がある)を確認する。
In step B1, the cache
ステップB1における確認の結果、CE数が基準値Aよりも少ないページがある場合には(ステップB1のYESルート参照)、FLAG_Aに“0”を設定し、ステップB2に移行する。 As a result of the confirmation in step B1, if there is a page whose CE number is smaller than the reference value A (see YES route in step B1), “0” is set in FLAG_A, and the process proceeds to step B2.
ステップB2においては、キャッシュアクセス制御部12は、世代番号が基準値Bよりも古いページがあるか(以下、条件J_02という場合がある)を確認する。
In step B2, the cache
ステップB2における確認の結果、世代番号が基準値Bよりも古いページがある場合には(ステップB2のYESルート参照)、FLAG_Bに“0”を設定し、ステップB3に移行する。 As a result of the confirmation in step B2, if there is a page whose generation number is older than the reference value B (see YES route in step B2), “0” is set in FLAG_B, and the process proceeds to step B3.
ステップB3においては、キャッシュアクセス制御部12は、上述した条件J_01および条件J_02の両方を満たす全てのページを選択する。
In step B3, the cache
ステップB4において、キャッシュアクセス制御部12は、ステップB3において選択されたページにおいて、該当のページのCE数を履歴と比較して、CE数の増加数が基準値Cよりも少ないページがあるか(以下、条件J_03という場合がある)を確認する。
In step B4, the cache
ステップB4における確認の結果、CE数の増加数が所定の基準値Cよりも少ないページがない場合には(ステップB4のNOルート参照)、FLAG_Cに“1”を設定し、ステップB5に移行する。 As a result of the confirmation in step B4, if there is no page in which the number of CE increases is less than the predetermined reference value C (see NO route in step B4), “1” is set in FLAG_C, and the process proceeds to step B5. .
ステップB5において、キャッシュアクセス制御部12は、ステップB3において選択されたページにおいて、該当CE数と近接CE数との和が基準値Dよりも少ないページがあるか(以下、条件J_04という場合がある)を確認する。
In step B5, the cache
ステップB5における確認の結果、該当CE数と近接CE数との和が基準値Dよりも少ないページがない場合には(ステップB5のNOルート参照)、FLAG_Dに“1”を設定し、ステップB6に移行する。 As a result of the confirmation in step B5, when there is no page in which the sum of the number of corresponding CEs and the number of adjacent CEs is smaller than the reference value D (see NO route in step B5), FLAG_D is set to “1”, and step B6 Migrate to
ステップB6において、キャッシュアクセス制御部12は、上述した条件J_01を満たし、且つ、条件J_02を満たさない全てのページを選択する。
In Step B6, the cache
ステップB7において、キャッシュアクセス制御部12は、ステップB6において選択されたページにおいて、該当のページのCE数を履歴と比較して、CE数の増加数が基準値Cよりも少ないページがあるか(条件J_03)を確認する。
In step B7, the cache
ステップB7における確認の結果、CE数の増加数が所定の基準値Cよりも少ないページがない場合には(ステップB7のNOルート参照)、FLAG_Cに“1”を設定し、ステップB8に移行する。 As a result of the confirmation in step B7, if there is no page in which the number of CE increases is less than the predetermined reference value C (see NO route in step B7), “1” is set in FLAG_C, and the process proceeds to step B8. .
ステップB8において、キャッシュアクセス制御部12は、ステップB6において選択されたページにおいて、該当CE数と近接CE数との和が基準値Dよりも少ないページがあるか(条件J_04)を確認する。
In step B8, the cache
ステップB8における確認の結果、該当CE数と近接CE数との和が基準値Dよりも少ないページがない場合には(ステップB8のNOルート参照)、FLAG_Dに“1”を設定し、ステップB10に移行する。 As a result of the confirmation in step B8, if there is no page in which the sum of the number of corresponding CEs and the number of adjacent CEs is smaller than the reference value D (see NO route in step B8), FLAG_D is set to “1”, and step B10 Migrate to
また、ステップB4およびステップB7における確認の結果、CE数の増加数が所定の基準値Cよりも少ないページがある場合には(ステップB4のYESルート,ステップB7のYESルート参照)、FLAG_Cに“0”を設定し、ステップB9に移行する。 As a result of the confirmation in step B4 and step B7, if there is a page in which the number of CE increases is smaller than the predetermined reference value C (see YES route in step B4, YES route in step B7), “ 0 "is set, and the process proceeds to step B9.
さらに、ステップB5およびステップB8における確認の結果、該当CE数と近接CE数との和が基準値Dよりも少ないページがある場合にも(ステップB5のYESルート,ステップB8のYESルート参照)、FLAG_Dに“0”を設定し、ステップB9に移行する。 Further, as a result of the confirmation in step B5 and step B8, when there is a page where the sum of the number of corresponding CEs and the number of adjacent CEs is smaller than the reference value D (see YES route in step B5, YES route in step B8), FLAG_D is set to “0” and the process proceeds to step B9.
一方、ステップB1における確認の結果、CE数が基準値Aよりも少ないページがない場合には(ステップB1のNOルート参照)、FLAG_Aに“1”を設定し、ステップB10に移行する。 On the other hand, as a result of the confirmation in step B1, if there is no page with the CE number less than the reference value A (see NO route in step B1), “1” is set in FLAG_A, and the process proceeds to step B10.
ステップB10において、キャッシュアクセス制御部12は、世代番号が基準値Bよりも古いページがあるか(条件J_02)を確認する。
In step B10, the cache
ステップB10における確認の結果、世代番号が基準値Bよりも古いページがある場合には(ステップB10のYESルート参照)、FLAG_Bに“0”を設定し、ステップB11に移行する。 As a result of the confirmation in step B10, if there is a page whose generation number is older than the reference value B (see YES route in step B10), FLAG_B is set to “0” and the process proceeds to step B11.
ステップB11において、キャッシュアクセス制御部12は、上述した条件J_01を満たし、且つ、条件J_02を満たさない全てのページを選択する。
In step B11, the cache
ステップB12において、キャッシュアクセス制御部12は、ステップB11において選択されたページにおいて、該当のページのCE数を履歴と比較して、CE数の増加数が基準値Cよりも少ないページがあるか(条件J_03)を確認する。
In step B12, the cache
ステップB12における確認の結果、CE数の増加数が所定の基準値Cよりも少ないページがない場合には(ステップB12のNOルート参照)、FLAG_Cに“1”を設定し、ステップB13に移行する。 As a result of confirmation in step B12, if there is no page in which the number of CE increases is smaller than the predetermined reference value C (see NO route in step B12), FLAG_C is set to “1” and the process proceeds to step B13. .
ステップB13において、キャッシュアクセス制御部12は、ステップB11において選択されたページにおいて、該当CE数と近接CE数との和が基準値Dよりも少ないページがあるか(条件J_04)を確認する。
In step B13, the cache
ステップB13における確認の結果、該当CE数と近接CE数との和が基準値Dよりも少ないページがない場合には(ステップB13のNOルート参照)、FLAG_Dに“1”を設定し、ステップB14に移行する。 As a result of the confirmation in step B13, if there is no page in which the sum of the number of corresponding CEs and the number of adjacent CEs is less than the reference value D (see NO route in step B13), “1” is set to FLAG_D, and step B14 Migrate to
ステップB14において、キャッシュアクセス制御部12は、上述した条件J_01を満たさず、且つ、条件J_02も満たさない全てのページを選択する。
In step B14, the cache
ステップB15において、キャッシュアクセス制御部12は、ステップB14において選択されたページにおいて、該当のページのCE数を履歴と比較して、CE数の増加数が基準値Cよりも少ないページがあるか(条件J_03)を確認する。
In step B15, the cache
ステップB15における確認の結果、CE数の増加数が所定の基準値Cよりも少ないページがない場合には(ステップB15のNOルート参照)、FLAG_Cに“1”を設定し、ステップB16に移行する。 As a result of the confirmation in step B15, if there is no page in which the number of CE increases is less than the predetermined reference value C (see NO route in step B15), FLAG_C is set to “1” and the process proceeds to step B16. .
ステップB16において、キャッシュアクセス制御部12は、ステップB14において選択されたページにおいて、該当CE数と近接CE数との和が基準値Dよりも少ないページがあるか(条件J_04)を確認する。
In step B16, the cache
ステップB16における確認の結果、該当CE数と近接CE数との和が基準値Dよりも少ないページがない場合には(ステップB16のNOルート参照)、FLAG_Dに“1”を設定し、ステップB17に移行する。 As a result of the confirmation in step B16, if there is no page in which the sum of the number of corresponding CEs and the number of adjacent CEs is smaller than the reference value D (see NO route in step B16), FLAG_D is set to “1”, and step B17 Migrate to
ステップB17において、キャッシュアクセス制御部12は、世代番号が最も古いページを置換対象として決定し、処理を終了する。
In step B <b> 17, the cache
また、ステップB12およびステップB15における確認の結果、CE数の増加数が所定の基準値Cよりも少ないページがある場合には(ステップB12のYESルート,ステップB15のYESルート参照)、FLAG_Cに“0”を設定し、ステップB9に移行する。 As a result of the confirmation in step B12 and step B15, if there is a page in which the number of CE increases is smaller than the predetermined reference value C (see YES route in step B12, YES route in step B15), “ 0 "is set, and the process proceeds to step B9.
さらに、ステップB13およびステップB16における確認の結果、該当CE数と近接CE数との和が基準値Dよりも少ないページがある場合にも(ステップB13のYESルート,ステップB16のYESルート参照)、FLAG_Dに“0”を設定し、ステップB9に移行する。 Further, as a result of the confirmation in step B13 and step B16, when there is a page where the sum of the number of corresponding CEs and the number of adjacent CEs is smaller than the reference value D (see YES route in step B13, YES route in step B16), FLAG_D is set to “0” and the process proceeds to step B9.
ステップB9において、キャッシュアクセス制御部12は、ステップB4,B5,B7,B8,B12,B13,B15,B16のいずれかの条件を満たすページから、世代番号が最も古いページを置換対象として決定し、処理を終了する。
In step B9, the cache
(C)効果
このように、本発明の一実施形態としてのストレージシステム1によれば、キャッシュ管理部10の情報管理部11が、ページ毎に該当CE数,近接CE数および履歴CE数を管理する。
(C) Effect As described above, according to the
そして、キャッシュアクセス制御部12が、該当CE数と近接CE数との和が所定の基準値(第1閾値)D以上のページをキャッシュ追い出し対象外としてキャッシュメモリ102に残す。そして、該当CE数と近接CE数との和が基準値Dよりも少ないページを優先してキャッシュ追い出し対象とする。
Then, the cache
これにより、NANDフラッシュメモリ101において劣化が生じていると考えられるページのデータがキャッシュメモリ102から追い出されずにキャッシュメモリ102に保持される。これにより、このページに対してホスト200からリード要求が行なわれた場合においても、NANDフラッシュメモリ101における当該ページへのアクセスを抑止することができる。データをキャッシュメモリ102に残すことでNANDフラッシュメモリ101へのデータアクセスを回避することができる。これにより、当該領域の劣化の進みを抑止し、NANDフラッシュメモリ101の耐久性を向上させることができる。
As a result, the data of the page considered to have deteriorated in the
キャッシュアクセス制御部12が、リード対象のデータのページ(該当ページ)において検出されたCE数だけでなく、その隣接する隣接ページにおいて検出されたCE数に基づいて、キャッシュメモリ102からの追い出し対象を判断する。このように、リード対象のページだけでなく、その隣接ページのCE数も考慮することで、リードディスターブに着目したキャッシュ要否の判断ができ、NANDフラッシュメモリ101の耐久性を向上させることができる。
The cache
また、キャッシュアクセス制御部12が、ページの世代番号を所定の基準値(第2閾値)Bと比較し、世代番号がこの基準値Bよりも新しいページをキャッシュ追い出し対象外としてキャッシュメモリ102に残す。そして、世代番号がこの基準値Bよりも古いページを優先してキャッシュ追い出し対象とする。
Further, the cache
これにより、最後にアクセスが生じてからアクセスがない状態での期間が短く、アクセスが再度発生する可能性が高いページのデータがキャッシュメモリ102に残すことができる。従って、このページに対してホスト200からリード要求が行なわれた場合においても、NANDフラッシュメモリ101へのデータアクセスを回避することができる。すなわち、当該領域の劣化の進みを抑止し、NANDフラッシュメモリ101の耐久性を向上させることができる。
As a result, it is possible to leave, in the
キャッシュアクセス制御部12が、ページのCE数を所定の基準値(閾値)Aと比較し、CE数がこの基準値A以上のページをキャッシュ追い出し対象外としてキャッシュメモリ102に残し、CE数がこの基準値Aよりも小さいページを優先してキャッシュ追い出し対象とする。
The cache
これにより、CE数が多いページを保護対象としてキャッシュメモリ102に残すことができる。従って、このページに対してホスト200からリード要求が行なわれた場合においても、NANDフラッシュメモリ101へのデータアクセスを回避することができる。すなわち、当該領域の劣化の進みを抑止し、NANDフラッシュメモリ101の耐久性を向上させることができる。
As a result, pages with a large number of CEs can remain in the
また、キャッシュアクセス制御部12が、同一ページにおける過去(履歴)のCE数と比較し、CE数の増加数が所定の基準値(第3閾値)C以上のページをキャッシュ追い出し対象外としてキャッシュメモリ102に残す。そして、CE数の増加数が所定の基準値(第3閾値)Cよりも少ないページを優先してキャッシュ追い出し対象とする。
Further, the cache
これにより、CE数が増加傾向にあるページを保護対象としてキャッシュメモリ102に残すことができる。従って、このページに対してホスト200からリード要求が行なわれた場合においても、NANDフラッシュメモリ101へのデータアクセスを回避することができる。すなわち、当該領域の劣化の進みを抑止し、NANDフラッシュメモリ101の耐久性を向上させることができる。
As a result, a page whose number of CEs is increasing can be left in the
(D)その他
上述した実施形態において、メモリコントローラ110としての機能(キャッシュ管理部10,データアクセス制御部20,およびエラー訂正処理部21)は、回路装置によるハードウェアで実現してもよい。また、これらの機能の内、少なくとも一部を、プロセッサが制御プログラムを実行することで実現してもよい。プロセッサは、CPU(Central Processing Unit),MPU(Micro Processing Unit),DSP(Digital Signal Processor),ASIC(Application Specific Integrated Circuit),PLD(Programmable Logic Device),FPGA(Field Programmable Gate Array)のいずれか一つであってもよい。また、プロセッサは、CPU,MPU,DSP,ASIC,PLD,FPGAのうちの2種類以上の要素の組み合わせであってもよい。
(D) Others In the above-described embodiment, the functions (
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成および各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。 The disclosed technology is not limited to the above-described embodiment, and various modifications can be made without departing from the spirit of the present embodiment. Each structure and each process of this embodiment can be selected as needed, or may be combined suitably.
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。 Further, according to the above-described disclosure, this embodiment can be implemented and manufactured by those skilled in the art.
(E)付記
以上の実施形態に関し、さらに以下の付記を開示する。
(E) Additional remarks The following additional remarks are disclosed regarding the above embodiment.
(付記1)
半導体記憶装置から読み出したデータにエラーを検知した場合にエラー訂正を行ない、訂正したエラー数を出力するエラー訂正処理部と、
前記半導体記憶装置に備えられる複数の単位領域のうち、第1の単位領域において検出された第1エラー数と前記第1の単位領域に隣接する第2の単位領域において検出された第2エラー数との合計が第1閾値以上の場合に、前記第1の単位領域のデータをキャッシュメモリからの追い出し対象外に設定する設定部と
を備える、ストレージ装置。
(Appendix 1)
An error correction processing unit that performs error correction when an error is detected in the data read from the semiconductor storage device, and outputs the number of corrected errors;
Of the plurality of unit areas provided in the semiconductor memory device, the first error number detected in the first unit area and the second error number detected in the second unit area adjacent to the first unit area And a setting unit that sets the data of the first unit area to be excluded from being evicted from the cache memory when the sum of the above and the first threshold is equal to or greater than the first threshold.
(付記2)
前記設定部は、
前記第1の単位領域に対してデータアクセスが行なわれてからアクセスがない状態での経過時間が第2閾値よりも短い場合に、前記第1の単位領域のデータを前記キャッシュメモリからの追い出し対象外に設定する
ことを特徴とする、付記1記載のストレージ装置。
(Appendix 2)
The setting unit
The data of the first unit area is evicted from the cache memory when the elapsed time in the absence of access since the data access to the first unit area is shorter than the second threshold value The storage device according to
(付記3)
前記設定部は、
前記第1の単位領域において検出された前記第1エラー数の、前記第1の単位領域において過去に検出されたエラー数からの増加数が、第3閾値以上の場合に、前記第1の単位領域のデータをキャッシュメモリからの追い出し対象外に設定する
ことを特徴とする、付記1または2記載のストレージ装置。
(Appendix 3)
The setting unit
The first unit when the first error number detected in the first unit area is greater than or equal to a third threshold value from the number of errors detected in the past in the first unit area. The storage apparatus according to
(付記4)
前記キャッシュメモリに格納されているデータを前記単位領域単位で管理するキャッシュ管理情報を格納する格納部を備え、
前記キャッシュ管理情報が、前記半導体記憶装置における前記単位領域の位置情報と、当該単位領域において検出されたエラー数とを備える
ことを特徴とする、付記1〜3のいずれか1項に記載のストレージ装置。
(Appendix 4)
A storage unit for storing cache management information for managing data stored in the cache memory in units of unit areas;
The storage according to any one of
(付記5)
プロセッサと、半導体記憶装置から読み出したデータにエラーを検知した場合にエラー訂正を行ない、訂正したエラー数を出力するエラー訂正処理部とを備える情報処理装置において、
前記半導体記憶装置に備えられる複数の単位領域のうち、第1の単位領域において検出された第1エラー数と前記第1の単位領域に隣接する第2の単位領域において検出された第2エラー数との合計が第1閾値以上の場合に、前記第1の単位領域のデータをキャッシュメモリからの追い出し対象外に設定する
処理を、前記プロセッサに実行させる、制御プログラム。
(Appendix 5)
In an information processing apparatus comprising a processor and an error correction processing unit that performs error correction when an error is detected in data read from a semiconductor storage device and outputs the number of corrected errors,
Of the plurality of unit areas provided in the semiconductor memory device, the first error number detected in the first unit area and the second error number detected in the second unit area adjacent to the first unit area Is a control program that causes the processor to execute a process of setting the data in the first unit area to be excluded from being purged from the cache memory.
(付記6)
前記第1の単位領域に対してデータアクセスが行なわれてからアクセスがない状態での経過時間が第2閾値よりも短い場合に、前記第1の単位領域のデータを前記キャッシュメモリからの追い出し対象外に設定する
処理を、前記プロセッサに実行させる、付記5記載の制御プログラム。
(Appendix 6)
The data of the first unit area is evicted from the cache memory when the elapsed time in the absence of access since the data access to the first unit area is shorter than the second threshold value The control program according to
(付記7)
前記第1の位領域において検出された第1エラー数の、前記第1の位領域において過去に検出されたエラー数からの増加数が、第3閾値以上の場合に、前記第1の位領域のデータをキャッシュメモリからの追い出し対象外に設定する
処理を、前記プロセッサに実行させる、付記5または6に記載の制御プログラム。
(Appendix 7)
When the first error number detected in the first rank area is larger than the number of errors detected in the past in the first rank area, the first rank area is greater than or equal to a third threshold value. The control program according to
(付記8)
前記キャッシュメモリに格納されているデータを前記単位領域単位で管理するキャッシュ管理情報を格納させる処理を前記プロセッサに実行させ、
前記キャッシュ管理情報が、前記半導体記憶装置における前記単位領域の位置情報と、当該単位領域において検出されたエラー数とを備える
ことを特徴とする、付記5〜7のいずれか1項に記載の制御プログラム。
(Appendix 8)
Causing the processor to execute processing for storing cache management information for managing data stored in the cache memory in units of unit areas,
The control according to any one of
(付記9)
プロセッサと、半導体記憶装置から読み出したデータにエラーを検知した場合にエラー訂正を行ない、訂正したエラー数を出力するエラー訂正処理部とを備える情報処理装置において、
前記半導体記憶装置に備えられる複数の単位領域のうち、第1の単位領域において検出された第1エラー数と前記第1の単位領域に隣接する第2の単位領域において検出された第2エラー数との合計を第1閾値と比較する処理と、
前記第1エラー数と前記第2エラー数との合計が、前記第1閾値以上の場合に、前記第1の単位領域のデータをキャッシュメモリからの追い出し対象外に設定する処理と
を備える、制御方法。
(Appendix 9)
In an information processing apparatus comprising a processor and an error correction processing unit that performs error correction when an error is detected in data read from a semiconductor storage device and outputs the number of corrected errors,
Of the plurality of unit areas provided in the semiconductor memory device, the first error number detected in the first unit area and the second error number detected in the second unit area adjacent to the first unit area A process of comparing the sum of and the first threshold value;
And a process of setting the data of the first unit area to be excluded from eviction from the cache memory when the sum of the first error number and the second error number is equal to or greater than the first threshold value. Method.
(付記10)
前記第1の単位領域に対してデータアクセスが行なわれてからアクセスがない状態での経過時間が第2閾値よりも短い場合に、前記第1の単位領域のデータを前記キャッシュメモリからの追い出し対象外に設定する処理
を備える、付記9記載の制御方法。
(Appendix 10)
The data of the first unit area is evicted from the cache memory when the elapsed time in the absence of access since the data access to the first unit area is shorter than the second threshold value The control method according to supplementary note 9, comprising a process of setting outside.
(付記11)
前記第1の位領域において検出された第1エラー数の、前記第1の位領域において過去に検出されたエラー数からの増加数が、第3閾値以上の場合に、前記第1の位領域のデータをキャッシュメモリからの追い出し対象外に設定する処理
を備える、付記9または10に記載の制御方法。
(Appendix 11)
When the first error number detected in the first rank area is larger than the number of errors detected in the past in the first rank area, the first rank area is greater than or equal to a third threshold value. The control method according to
(付記12)
前記キャッシュメモリに格納されているデータを前記単位領域単位で管理するキャッシュ管理情報を格納する処理
を備え、
前記キャッシュ管理情報が、前記半導体記憶装置における前記単位領域の位置情報と、当該単位領域において検出されたエラー数とを備える、付記9〜11のいずれか1項に記載の制御方法。
(Appendix 12)
A process of storing cache management information for managing the data stored in the cache memory in units of unit areas;
The control method according to any one of appendices 9 to 11, wherein the cache management information includes position information of the unit area in the semiconductor memory device and the number of errors detected in the unit area.
1 ストレージシステム
100 ストレージ装置
110 メモリコントローラ
10 キャッシュ管理部
11 情報管理部
111 キャッシュ情報
111a キャッシュ管理情報
111b キャッシュ履歴情報
12 キャッシュアクセス制御部
20 データアクセス制御部
21 エラー訂正処理部
101 NANDフラッシュメモリ
102 DRAM(キャッシュメモリ)
DESCRIPTION OF
111a
Claims (6)
前記半導体記憶装置に備えられる複数の単位領域のうち、第1の単位領域において検出された第1エラー数と前記第1の単位領域に隣接する第2の単位領域において検出された第2エラー数との合計が第1閾値以上の場合に、前記第1の単位領域のデータをキャッシュメモリからの追い出し対象外に設定する設定部と
を備える、ストレージ装置。 An error correction processing unit that performs error correction when an error is detected in the data read from the semiconductor storage device, and outputs the number of corrected errors;
Of the plurality of unit areas provided in the semiconductor memory device, the first error number detected in the first unit area and the second error number detected in the second unit area adjacent to the first unit area And a setting unit that sets the data of the first unit area to be excluded from being evicted from the cache memory when the sum of the above and the first threshold is equal to or greater than the first threshold.
前記第1の単位領域に対してデータアクセスが行なわれてからアクセスがない状態での経過時間が第2閾値よりも短い場合に、前記第1の単位領域のデータを前記キャッシュメモリからの追い出し対象外に設定する
ことを特徴とする、請求項1記載のストレージ装置。 The setting unit
The data of the first unit area is evicted from the cache memory when the elapsed time in the absence of access since the data access to the first unit area is shorter than the second threshold value The storage apparatus according to claim 1, wherein the storage apparatus is set outside.
前記第1の単位領域において検出された前記第1エラー数の、前記第1の単位領域において過去に検出されたエラー数からの増加数が、第3閾値以上の場合に、前記第1の単位領域のデータをキャッシュメモリからの追い出し対象外に設定する
ことを特徴とする、請求項1または2記載のストレージ装置。 The setting unit
The first unit when the first error number detected in the first unit area is greater than or equal to a third threshold value from the number of errors detected in the past in the first unit area. The storage apparatus according to claim 1 or 2, wherein the data in the area is set as a target not to be evicted from the cache memory.
前記キャッシュ管理情報が、前記半導体記憶装置における前記単位領域の位置情報と、当該単位領域において検出されたエラー数とを備える
ことを特徴とする、請求項1〜3のいずれか1項に記載のストレージ装置。 A storage unit for storing cache management information for managing data stored in the cache memory in units of unit areas;
The said cache management information is provided with the positional information on the said unit area in the said semiconductor memory device, and the number of errors detected in the said unit area, The any one of Claims 1-3 characterized by the above-mentioned. Storage device.
前記半導体記憶装置に備えられる複数の単位領域のうち、第1の単位領域において検出された第1エラー数と前記第1の単位領域に隣接する第2の単位領域において検出された第2エラー数との合計が第1閾値以上の場合に、前記第1の単位領域のデータをキャッシュメモリからの追い出し対象外に設定する
処理を、前記プロセッサに実行させる、制御プログラム。 In an information processing apparatus comprising a processor and an error correction processing unit that performs error correction when an error is detected in data read from a semiconductor storage device and outputs the number of corrected errors,
Of the plurality of unit areas provided in the semiconductor memory device, the first error number detected in the first unit area and the second error number detected in the second unit area adjacent to the first unit area Is a control program that causes the processor to execute a process of setting the data in the first unit area to be excluded from being purged from the cache memory.
前記半導体記憶装置に備えられる複数の単位領域のうち、第1の単位領域において検出された第1エラー数と前記第1の単位領域に隣接する第2の単位領域において検出された第2エラー数との合計を第1閾値と比較する処理と、
前記第1エラー数と前記第2エラー数との合計が、前記第1閾値以上の場合に、前記第1の単位領域のデータをキャッシュメモリからの追い出し対象外に設定する処理と
を備える、制御方法。 In an information processing apparatus comprising a processor and an error correction processing unit that performs error correction when an error is detected in data read from a semiconductor storage device and outputs the number of corrected errors,
Of the plurality of unit areas provided in the semiconductor memory device, the first error number detected in the first unit area and the second error number detected in the second unit area adjacent to the first unit area A process of comparing the sum of and the first threshold value;
And a process of setting the data of the first unit area to be excluded from eviction from the cache memory when the sum of the first error number and the second error number is equal to or greater than the first threshold value. Method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018049729A JP2019160197A (en) | 2018-03-16 | 2018-03-16 | Storage device, control program and control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018049729A JP2019160197A (en) | 2018-03-16 | 2018-03-16 | Storage device, control program and control method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019160197A true JP2019160197A (en) | 2019-09-19 |
Family
ID=67996312
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018049729A Pending JP2019160197A (en) | 2018-03-16 | 2018-03-16 | Storage device, control program and control method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2019160197A (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008016026A (en) * | 2006-06-30 | 2008-01-24 | Seagate Technology Llc | 2d dynamic adaptive data caching |
JP2009037317A (en) * | 2007-07-31 | 2009-02-19 | Panasonic Corp | Memory controller, non-volatile storage device using the same, and non-volatile memory system |
JP2009087509A (en) * | 2007-10-03 | 2009-04-23 | Toshiba Corp | Semiconductor storage device |
JP2016157190A (en) * | 2015-02-23 | 2016-09-01 | 京セラドキュメントソリューションズ株式会社 | Image forming apparatus |
JP2017058870A (en) * | 2015-09-15 | 2017-03-23 | ラピスセミコンダクタ株式会社 | Memory control device and memory control method |
-
2018
- 2018-03-16 JP JP2018049729A patent/JP2019160197A/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008016026A (en) * | 2006-06-30 | 2008-01-24 | Seagate Technology Llc | 2d dynamic adaptive data caching |
JP2009037317A (en) * | 2007-07-31 | 2009-02-19 | Panasonic Corp | Memory controller, non-volatile storage device using the same, and non-volatile memory system |
JP2009087509A (en) * | 2007-10-03 | 2009-04-23 | Toshiba Corp | Semiconductor storage device |
JP2016157190A (en) * | 2015-02-23 | 2016-09-01 | 京セラドキュメントソリューションズ株式会社 | Image forming apparatus |
JP2017058870A (en) * | 2015-09-15 | 2017-03-23 | ラピスセミコンダクタ株式会社 | Memory control device and memory control method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11544131B2 (en) | Information processing device, external storage device, host device, relay device, control program, and control method of information processing device | |
US10884940B2 (en) | Method and apparatus for using compression to improve performance of low voltage caches | |
KR102657076B1 (en) | System and method for spatial memory streaming training | |
JP4372134B2 (en) | Storage system with data comparison function | |
US9026764B2 (en) | Memory system performing wear leveling based on deletion request | |
JP5658128B2 (en) | System, method, and computer program for probabilistic multilayer error correction in NAND flash memory | |
US10175892B1 (en) | Adaptive read algorithm for a nonvolatile medium | |
US8276043B2 (en) | Memory system | |
US8069284B2 (en) | Semiconductor memory device, memory system and data recovery methods thereof | |
KR101522402B1 (en) | Solid state disk and data manage method thereof | |
US10296466B2 (en) | Information processing device, method of controlling a cache memory, and storage medium | |
JP6102515B2 (en) | Information processing apparatus, control circuit, control program, and control method | |
TW201202933A (en) | Semiconductor memory device | |
US10185619B2 (en) | Handling of error prone cache line slots of memory side cache of multi-level system memory | |
US20130086307A1 (en) | Information processing apparatus, hybrid storage apparatus, and cache method | |
US20100088457A1 (en) | Cache memory architecture having reduced tag memory size and method of operation thereof | |
JP2018160060A (en) | Memory system | |
US10303397B1 (en) | Read disturb handling in storage devices | |
JP2008276832A (en) | Semiconductor memory device and driving method thereof | |
US20090193195A1 (en) | Cache that stores data items associated with sticky indicators | |
US11372760B2 (en) | Storage control device for controlling cache memory based on access frequencies | |
US20230315299A1 (en) | Systems and method for tracking activations to perform row hammer mitigation in memory modules | |
JP2019160197A (en) | Storage device, control program and control method | |
US20240004555A1 (en) | Memory system | |
US20240289269A1 (en) | Data storage device and non-volatile memory control method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20190607 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20201210 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20211110 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20211130 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20220531 |