JP2019160197A - Storage device, control program and control method - Google Patents

Storage device, control program and control method Download PDF

Info

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
Application number
JP2018049729A
Other languages
Japanese (ja)
Inventor
千佳広 出口
Chikahiro Deguchi
千佳広 出口
直也 柴山
Naoya Shibayama
直也 柴山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2018049729A priority Critical patent/JP2019160197A/en
Publication of JP2019160197A publication Critical patent/JP2019160197A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Read Only Memory (AREA)

Abstract

To improve the durability of a semiconductor storage.SOLUTION: A storage device comprises: an error correction processing part 21 that, when detecting an error in data read from a semiconductor storage 101, performs error correction and outputs the number of corrected errors; and a setting unit 12 that, when from among a plurality of unit areas included in the semiconductor storage 101, the sum of a first error count detected in the first unit area and an error count detected in a second unit area adjacent to the first unit area reaches or exceeds a threshold, sets data in the first unit area not to be taken out of a cache memory 102.SELECTED DRAWING: Figure 1

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 storage system 500 includes a storage device 510 and a host 501. The host 501 reads / writes data from / to the storage apparatus 510. For example, the host 501 makes a data request by designating a data address to the storage apparatus 510.

ストレージ装置510は、メモリコントローラ502,NANDフラッシュメモリ503およびDRAM(Dynamic Random Access Memory)504を備える。   The storage device 510 includes a memory controller 502, a NAND flash memory 503, and a DRAM (Dynamic Random Access Memory) 504.

NANDフラッシュメモリ503はデータを保管する不揮発性の記憶装置であり、例えば、一般的なSSD(Solid State Drive)と同様の構成を有する。   The NAND flash memory 503 is a non-volatile storage device that stores data, and has a configuration similar to, for example, a general SSD (Solid State Drive).

メモリコントローラ502は、NANDフラッシュメモリ503およびDRAM504に対するデータのリード/ライトを制御する。   The memory controller 502 controls reading / writing of data with respect to the NAND flash memory 503 and the DRAM 504.

DRAM504は、データを記憶する半導体メモリであり、NANDフラッシュメモリ503に比べてデータアクセスを高速に行なうことができる。DRAM504は、ストレージシステム500においては、データを一時的に保管するキャッシュメモリとして機能する。以下、DRAM504をキャッシュメモリ504という場合がある。   The DRAM 504 is a semiconductor memory that stores data, and can perform data access at a higher speed than the NAND flash memory 503. In the storage system 500, the DRAM 504 functions as a cache memory that temporarily stores data. Hereinafter, the DRAM 504 may be referred to as a cache memory 504.

キャッシュメモリ504にはNANDフラッシュメモリ503から読み込んだデータを一時的に格納しておき、ホスト501からのデータ要求時にキャッシュ検索がヒットすれば、このキャッシュメモリ504から読み出すことで、高速なアクセスを実現する。   The data read from the NAND flash memory 503 is temporarily stored in the cache memory 504, and if a cache search hits at the time of a data request from the host 501, the cache memory 504 reads the data to realize high-speed access. To do.

キャッシュメモリ504の容量は一般的にNANDフラッシュメモリ503の容量よりも小さく、NANDフラッシュメモリ503全てのデータをキャッシュすることができない。そこで、一定の規則を以ってキャッシュメモリ504からのデータの追い出し(キャッシュアウトともいう)を行ない、次のデータをキャッシュする。   The capacity of the cache memory 504 is generally smaller than the capacity of the NAND flash memory 503, and the entire data of the NAND flash memory 503 cannot be cached. Therefore, data is evicted from the cache memory 504 (also referred to as cache-out) according to a certain rule, and the next data is cached.

NANDフラッシュメモリ503においては、デバイスとしての構造上、リードおよびライトを複数回行なうと、データのリード不良やライト時のデータ化けが発生する寿命(耐久性の制限)が存在する。   In the NAND flash memory 503, due to the structure as a device, there is a life (durability limit) in which data read failure or data corruption occurs when data is read and written multiple times.

特に、MLCを用いたNANDフラッシュメモリ503は1つのメモリセルに複数の値を持たせているため、値の判別が早期に難しくなるため耐久性が低く、エラーが発生する確率も高い。さらに、微細化により、このような現象が顕著になってきており、メモリコントローラ502にはECC(Error Collection Code)の符号化に代表されるエラー訂正機能が必須となっている。   In particular, the NAND flash memory 503 using the MLC has a plurality of values in one memory cell, so that it becomes difficult to determine the value at an early stage, so the durability is low and the probability of an error is high. Further, such a phenomenon has become remarkable due to miniaturization, and an error correction function represented by ECC (Error Collection Code) encoding is essential for the memory controller 502.

特に、昨今のNANDフラッシュメモリ503におけるエラーパターンとして、リードディスターブが挙げられる。これまでは寿命を縮める要因としてはライトが支配的だったが、リード時にもメモリセルに負担がかかることが分かっている。また、データアクセス対象のページだけでなく、メモリ内部のアドレス制御により、隣接するページ(周辺アドレス)にも影響を与えている。   In particular, an example of an error pattern in the recent NAND flash memory 503 is read disturb. Until now, writing has been the dominant factor for shortening the lifetime, but it has been found that the memory cell is burdened even during reading. Further, not only the data access target page but also the adjacent page (peripheral address) is affected by address control inside the memory.

特開2010−92528号公報JP 2010-92528 A 特開平8−279295号公報JP-A-8-279295 特開2009−37317号公報JP 2009-37317 A

従来のストレージシステムにおいては、記憶媒体に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 flash memory 503 is rarely realized.

リードディスターブは、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 cache memory 504, data to be evicted from the DRAM 504 is determined based on the access frequency (time elapse) from the host 501.
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 cache memory 504. In other words, the passage of time for access is managed by the generation number, and the necessity of the cache is determined.

このようなLRU方式においては、全体的なフラッシュメモリのリード回数を減らすことは出来るが、リード時のNANDフラッシュメモリ503の劣化は考慮されていない。   In such an LRU method, the overall number of reads of the flash memory can be reduced, but deterioration of the NAND flash memory 503 at the time of reading is not taken into consideration.

例えば、アクセスされる時間的に局所的な頻度は少ないが、間隔を空けて何度もアクセスが行なわれるページ(アドレス)は、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 NAND flash memory 503 occurs and the deterioration of the NAND flash memory 503 progresses.

また、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 NAND flash memory 503 deteriorates due to these.

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.

実施形態の一例としてのストレージ装置を備えるストレージシステムの構成を例示する図である。1 is a diagram illustrating a configuration of a storage system including a storage device as an example of an embodiment. 実施形態の一例としてのストレージシステムにおけるキャッシュ管理情報を例示する図である。It is a figure which illustrates the cache management information in the storage system as an example of embodiment. (a),(b)は実施形態の一例としてのストレージシステムにおける近接ページを説明するための図である。(A), (b) is a figure for demonstrating the proximity page in the storage system as an example of embodiment. 実施形態の一例としてのストレージシステムにおけるキャッシュ追い出し対象を決定するための優先順位を説明するための図である。3 is a diagram for explaining a priority order for determining a cache eviction target in a storage system as an example of an embodiment; FIG. 実施形態のストレージシステムにおける予測CE数に基づくキャッシュ追い出し対象の決定手法を説明するための図である。It is a figure for demonstrating the determination method of the cache eviction target based on the prediction number of CE in the storage system of embodiment. 実施形態の一例としてのストレージシステムにおけるリード要求の処理方法を説明するフローチャートである。4 is a flowchart for explaining a read request processing method in a storage system as an example of an embodiment; 図6に示したフローチャートのステップA7の置換対象の選択手法の詳細を説明するフローチャートである。It is a flowchart explaining the detail of the selection method of the replacement target of step A7 of the flowchart shown in FIG. 従来のストレージシステムのハードウェア構成を示す図である。It is a figure which shows the hardware constitutions of the conventional storage system.

以下、図面を参照して本ストレージ装置,制御プログラムおよび制御方法に係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。   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 storage system 1 including a storage apparatus 100 as an example of an embodiment.

図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 storage system 1 includes a host 200 such as a PC (Personal Computer) and a storage apparatus 100. The host 200 and the storage apparatus 100 are connected via an interface such as a SAS (Serial Attached Small Computer System Interface), an FC (Fibre Channel), or a network.

ホスト200は、図示しないCPU(Central Processing Unit)等のプロセッサを備え、このプロセッサによりアプリケーションを実行することで、種々の機能を実現する。   The host 200 includes a processor such as a CPU (Central Processing Unit) (not shown), and implements various functions by executing applications using this processor.

ストレージ装置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 NAND flash memory 101 and a DRAM 102), and provides storage areas of these storage devices to the host 200. The storage area provided by the hierarchical storage apparatus 1 stores data generated by executing an application in the host 200, data used for executing the application, and the like.

ホスト200がストレージシステム1の記憶領域に対してデータのライトやリードを行なうことで、IOアクセスが生じる。   IO access occurs when the host 200 writes or reads data to or from the storage area of the storage system 1.

図1に示すように、ストレージ装置100は、メモリコントローラ110,NANDフラッシュメモリ101およびDRAM102を備える。   As shown in FIG. 1, the storage apparatus 100 includes a memory controller 110, a NAND flash memory 101, and a DRAM 102.

NANDフラッシュメモリ101は、種々のデータやプログラム等を格納する記憶装置の一例であり、不揮発性記憶素子のフラッシュメモリ(半導体記憶装置)である。NANDフラッシュメモリ101はMLCであってもよい。   The NAND flash memory 101 is an example of a storage device that stores various data, programs, and the like, and is a flash memory (semiconductor storage device) of a nonvolatile storage element. The NAND flash memory 101 may be an MLC.

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 flash memory 101. The DRAM 102 is used as a cache memory. Hereinafter, the DRAM 102 may be referred to as the cache memory 102.

本実施形態において、互いに異なる記憶装置として、NANDフラッシュメモリ101およびDRAM102を例に挙げているが、これに限定されるものではない。NANDフラッシュメモリ101とキャッシュメモリ102との代わりに、性能差(例えばリード/ライトの速度差)のある種々の記憶装置が用いてもよい。   In the present embodiment, the NAND flash memory 101 and the DRAM 102 are exemplified as different storage devices, but the present invention is not limited to this. Instead of the NAND flash memory 101 and the cache memory 102, various storage devices having a performance difference (for example, a read / write speed difference) may be used.

メモリコントローラ110は、ホスト200からのデータアクセス要求に応じて、NANDフラッシュメモリ101およびDRAM102への種々のアクセスを行なう。例えば、ホスト200からデータ要求(リード)が行なわれると、メモリコントローラ110は、NANDフラッシュメモリ101もしくはDRAM102から要求されたデータをリードし、リードした実データをホスト200に応答(データ応答)する。   The memory controller 110 performs various accesses to the NAND flash memory 101 and the DRAM 102 in response to a data access request from the host 200. For example, when a data request (read) is made from the host 200, the memory controller 110 reads the data requested from the NAND flash memory 101 or the DRAM 102, and responds the read actual data to the host 200 (data response).

メモリコントローラ110は、キャッシュ管理部10,データアクセス制御部20,およびエラー訂正処理部21を備える。   The memory controller 110 includes a cache management unit 10, a data access control unit 20, and an error correction processing unit 21.

エラー訂正処理部21は、NANDフラッシュメモリ101からリードされたデータに対して符号誤り(エラー)の検出を行ない、エラーが検出された場合に誤り訂正(エラー訂正)を行なう。なお、エラー検出およびエラー訂正は既知の種々の手法で実現することができ、その説明は省略する。エラー訂正処理部21は例えばエラー訂正回路により実現してもよい。   The error correction processing unit 21 detects a code error (error) for data read from the NAND flash memory 101, and performs error correction (error correction) when an error is detected. Note that error detection and error correction can be realized by various known methods, and description thereof will be omitted. The error correction processing unit 21 may be realized by an error correction circuit, for example.

また、エラー訂正処理部21は、エラー訂正を行なったエラーの数(CE数)をキャッシュ管理部10に出力(通知)する。なお、CEはCorrectable Errorの略称である。   Further, the error correction processing unit 21 outputs (notifies) the number of errors (CE number) for which error correction has been performed to the cache management unit 10. CE is an abbreviation for Correctable Error.

データアクセス制御部20は、ホスト200から入力されるデータアクセス要求を処理する。例えば、データアクセス制御部20は、ホスト200からリード要求(データ要求)が入力されると、このデータ要求に伴って入力されるデータアドレスに基づき、後述するキャッシュ管理部10に対してキャッシュ検索を入力する。データアクセス制御部20は、このキャッシュ検索に対してキャッシュ管理部10から応答される検索結果に基づいて、NANDフラッシュメモリ101もしくはDRAM102に対してデータ要求を発行する。   The data access control unit 20 processes a data access request input from the host 200. For example, when a read request (data request) is input from the host 200, the data access control unit 20 performs a cache search with respect to the cache management unit 10 described later based on the data address input with the data request. input. The data access control unit 20 issues a data request to the NAND flash memory 101 or the DRAM 102 based on the search result returned from the cache management unit 10 for this cache search.

具体的には、キャッシュ検索の結果、キャッシュヒットした場合、すなわち、要求されたデータがキャッシュメモリ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 cache memory 102 is received from the cache management unit 10, the data access control unit 20 A data request is made to the cache memory 102.

このようにキャッシュメモリ102からリードされたデータ(キャッシュ読み込みデータ)は、ホスト200に実データとして応答される。   Thus, the data read from the cache memory 102 (cache read data) is returned to the host 200 as actual data.

一方、キャッシュ検索の結果、キャッシュミスした場合、すなわち、要求されたデータがキャッシュメモリ102にない旨の結果応答がキャッシュ管理部10からされた場合には、データアクセス制御部20は、NANDフラッシュメモリ101にデータ要求を行なう。   On the other hand, if the cache search results in a cache miss, i.e., if the cache management unit 10 returns a result response indicating that the requested data is not in the cache memory 102, the data access control unit 20 uses the NAND flash memory. A data request is made to 101.

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 correction processing unit 21, and then returned to the host 200 as actual data. When an error is detected by the error correction processing unit 21, the error correction processing unit 21 performs error correction and then returns a response to the host 200 as actual data.

また、NANDフラッシュメモリ101から読み出されたデータは、エラー訂正処理部21によってエラー検出が行なわれ、必要に応じてエラー訂正が行なわれた後に、キャッシュメモリ102に格納される(キャッシュ用データ書き込み)。   Further, the data read from the NAND flash memory 101 is subjected to error detection by the error correction processing unit 21, and is subjected to error correction as necessary, and then stored in the cache memory 102 (data writing for cache). ).

さらに、データアクセス制御部20は、NANDフラッシュメモリ101に対して行なったデータ要求のデータアドレスを、キャッシュ管理部10に通知することでキャッシュ管理部10へのキャッシュ登録を行なう。   Further, the data access control unit 20 registers the cache in the cache management unit 10 by notifying the cache management unit 10 of the data address of the data request made to the NAND flash memory 101.

キャッシュ管理部10は、キャッシュメモリ102に関する管理を行なう。キャッシュ管理部10は、図1に示すように、情報管理部11およびキャッシュアクセス制御部12を備える。   The cache management unit 10 manages the cache memory 102. As illustrated in FIG. 1, the cache management unit 10 includes an information management unit 11 and a cache access control unit 12.

情報管理部11は、キャッシュメモリ102を管理するための情報を管理する。具体的には、情報管理部11は、キャッシュ管理情報111aおよびキャッシュ履歴情報111bを管理する。これらのキャッシュ管理情報111aおよびキャッシュ履歴情報111bを構成する各情報は、例えば、メモリコントローラ110に備えられた図示しないメモリ(格納部)に格納される。   The information management unit 11 manages information for managing the cache memory 102. Specifically, the information management unit 11 manages the cache management information 111a and the cache history information 111b. Each piece of information constituting the cache management information 111a and the cache history information 111b is stored, for example, in a memory (storage unit) (not shown) provided in the memory controller 110.

図2は実施形態の一例としてのストレージシステム1におけるキャッシュ管理情報111aを例示する図である。   FIG. 2 is a diagram illustrating cache management information 111a in the storage system 1 as an example of the embodiment.

キャッシュ管理情報111aは、キャッシュメモリ102に格納されているデータ(ページ)を管理する。キャッシュ管理情報111aは、NANDフラッシュメモリ101におけるページと呼ばれる所定サイズのデータ範囲領域(単位領域)毎に、NANDアドレス,世代番号,該当CE数,近接CE数,履歴CE数およびフラグA〜D(FLAG_A〜FLAG_D)を対応付けて構成されている。すなわち、キャッシュ管理情報111aにおいては、NANDフラッシュメモリ101のページ毎にエントリが構成される。以下、各エントリに対応するページを該当ページという場合がある。   The cache management information 111a manages data (pages) stored in the cache memory 102. The cache management information 111a includes a NAND address, a generation number, a corresponding CE number, a neighboring CE number, a history CE number, and flags A to D (for each data range area (unit area) called a page in the NAND flash memory 101). FLAG_A to FLAG_D) are associated with each other. That is, in the cache management information 111a, an entry is configured for each page of the NAND flash memory 101. Hereinafter, a page corresponding to each entry may be referred to as a corresponding page.

NANDアドレスは、NANDフラッシュメモリ101における該当ページの物理的な位置を表す。   The NAND address represents the physical position of the corresponding page in the NAND flash memory 101.

世代番号は、ページに対して行なわれたデータアクセスに対する時間経過を示す情報である。例えば、キャッシュメモリ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 cache memory 102 and update of the cache management information 111a, the generation number corresponding to the page on which data access has been performed is updated.

世代番号は、例えば、キャッシュメモリ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 cache memory 102 and updating the cache management information 111a.

本実施形態においては、世代番号の値が小さいほど最近の(前回の)アクセスが古いページを示すものとする。   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 correction processing unit 21 when reading data from the NAND flash memory 101 is registered in units of pages.

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 NAND flash memory 101 corrected by the error correction processing unit 21. In general, the page size of the NAND flash memory 101 is 4096 bytes (4 KB). Although depending on the mounting method of the error correction processing unit 21, for example, an error correction method using a BCH code has a correction capability of around 50 bits per 4096 bits. For this reason, the number of CEs per page may be stored as a number of CEs from 0 to 50 bits.

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 storage system 1, the NAND flash memory 101 is protected by leaving a page with a large number of CEs as a protection target and leaving the data in the cache memory 102.

該当CE数には、キャッシュメモリ102におけるノーヒット時に、NANDフラッシュメモリ101からリードを行なった際のCE数がページ単位で登録される。   In the number of corresponding CEs, the number of CEs when reading from the NAND flash memory 101 at the time of no hit in the cache memory 102 is registered in units of pages.

近接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 present storage system 1, the total number of CEs of a plurality of pages including the corresponding page and the adjacent page adjacent to the corresponding page is compared with a predetermined threshold value. If the total number of CEs is larger than a predetermined threshold value, control is performed so that those adjacent pages are regarded as the same page as the corresponding page and are protected, and the data of those pages is left in the cache memory 102.

図3(a),(b)は実施形態の一例としてのストレージシステム1における近接ページを説明するための図である。図3(a)はNANDフラッシュメモリ101上における該当ページと近接ページとの位置関係を例示する図、図3(b)は該当ページと近接ページとの位置関係をテーブルで例示する図である。   3A and 3B are diagrams for explaining adjacent pages in the storage system 1 as an example of the embodiment. 3A is a diagram illustrating the positional relationship between the corresponding page and the adjacent page on the NAND flash memory 101, and FIG. 3B is a diagram illustrating the positional relationship between the corresponding page and the adjacent page in a table.

図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 NAND flash memory 101 and the address line control method. Therefore, the proximity page may be defined by obtaining data from the memory device to be controlled or information from the manufacturer.

図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 NAND flash memory 101 is obtained from the Row address and the Column address. Can do. Similarly, for example, the address of the adjacent page C has the Row address “RA” and the Column address “CA-1”, and the NAND address of the adjacent page C can be obtained from the Row address and the Column address.

近接CE数はキャッシュ管理情報111aを参照することで取得することができる。例えば、ページAの近接CE数は、ページBの該当CE数とページCの該当CE数とページDの該当CE数とページEの該当CE数とを合計することで算出することができる。   The number of adjacent CEs can be acquired by referring to the cache management information 111a. For example, the number of adjacent CEs for page A can be calculated by summing the number of corresponding CEs for page B, the number of corresponding CEs for page C, the number of corresponding CEs for page D, and the number of corresponding CEs for page E.

なお、図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 information management unit 11 can be determined by searching a NAND address registered in the cache management unit 10. For example, if the NAND address of page B is not registered in the information management unit 11, the number of corresponding CEs of page B may be set to zero.

近接CE数は、近接ページのキャッシュ管理情報111aに登録された該当CE数から取得される。   The number of neighboring CEs is acquired from the number of corresponding CEs registered in the cache management information 111a for neighboring pages.

履歴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 cache memory 102. In the history CE number, the page number of such a cache history page and the CE number (history CE number) when the page is read are recorded. That is, the history CE number corresponds to the number of errors detected in the past in the corresponding page.

例えば、同じページが複数回読み出された場合に、前回リードされた時の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 cache history information 111b described later.

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 access control unit 12 described later selects a flag to be replaced on the cache memory 102 (see the flowchart shown in FIG. 7) are recorded. The

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 cache management information 111a, the latest state of each page is recorded as an entry.

キャッシュ履歴情報111bは、過去にキャッシュメモリ102に格納されていたデータ(ページ)を管理する。キャッシュ履歴情報111bはキャッシュ管理情報111aと同様の構成を有し、キャッシュ管理情報111aのいずれかのエントリに更新が行なわれると、その更新前のエントリはキャッシュ履歴情報111bに記録される。すなわち、キャッシュ履歴情報111bは、キャッシュ管理情報111aの履歴として機能する。   The cache history information 111b manages data (pages) stored in the cache memory 102 in the past. The cache history information 111b has the same configuration as the cache management information 111a, and when any entry of the cache management information 111a is updated, the entry before the update is recorded in the cache history information 111b. That is, the cache history information 111b functions as a history of the cache management information 111a.

例えば、ホスト200からリード要求が入力され、NANDフラッシュメモリ101へのリードアクセスが発生すると、キャッシュ管理情報111aにおける対応ページのエントリが更新される。このキャッシュ管理情報111aにおいて更新された旧エントリはキャッシュ履歴情報111bに記録される。   For example, when a read request is input from the host 200 and a read access to the NAND flash memory 101 occurs, the entry of the corresponding page in the cache management information 111a is updated. The old entry updated in the cache management information 111a is recorded in the cache history information 111b.

以下、キャッシュ管理情報111aおよびキャッシュ履歴情報111bをまとめてキャッシュ情報111という場合がある。情報管理部11はキャッシュ情報111を管理する。   Hereinafter, the cache management information 111a and the cache history information 111b may be collectively referred to as cache information 111. The information management unit 11 manages the cache information 111.

キャッシュ管理部10は、キャッシュアクセス制御部12からキャッシュ検索要求が入力されると、このキャッシュ検索要求に応じて、キャッシュ管理情報111aに対して検索を指示することで、リード対象のデータがキャッシュメモリ102にあるかを確認する。   When a cache search request is input from the cache access control unit 12, the cache management unit 10 instructs the cache management information 111a to perform a search in response to the cache search request, so that the read target data is stored in the cache memory. 102.

例えば、ホスト200からデータアドレスを伴うリード要求が入力された場合には、キャッシュアクセス制御部12は、情報管理部11に対して、データアドレスを伴うキャッシュ検索要求を入力する。情報管理部11は、入力されたデータアドレスに基づき、キャッシュ管理情報111aの各NANDアドレスを検索することで、キャッシュメモリ102にリード対象のデータが格納されているかを判断する。   For example, when a read request with a data address is input from the host 200, the cache access control unit 12 inputs a cache search request with a data address to the information management unit 11. Based on the input data address, the information management unit 11 searches each NAND address of the cache management information 111a to determine whether the read target data is stored in the cache memory 102.

情報管理部11は、検索結果(キャッシュヒットもしくはキャッシュミス)をキャッシュアクセス制御部12に応答し、キャッシュアクセス制御部12は、情報管理部11からの応答をデータアクセス制御部20に応答(結果応答)する。   The information management unit 11 returns a search result (cache hit or cache miss) to the cache access control unit 12, and the cache access control unit 12 returns a response from the information management unit 11 to the data access control unit 20 (result response). )

また、情報管理部11は、キャッシュアクセス制御部12からキャッシュ情報(キャッシュ管理情報111a)に対するデータの登録や更新、削除の指示が入力されると、この指示に応じて、キャッシュ情報111に対して、データの登録や更新、削除を行なう。   In addition, when an instruction to register, update, or delete data for the cache information (cache management information 111a) is input from the cache access control unit 12, the information management unit 11 responds to the cache information 111 in response to the instruction. Register, update, and delete data.

キャッシュアクセス制御部12は、キャッシュメモリ102に対するデータアクセスを制御する。   The cache access control unit 12 controls data access to the cache memory 102.

例えば、ホスト200からリードのデータ要求がデータアクセス制御部20に入力されると、データアクセス制御部20はキャッシュアクセス制御部12に対して、キャッシュ検索を要求する。   For example, when a read data request is input from the host 200 to the data access control unit 20, the data access control unit 20 requests the cache access control unit 12 to perform a cache search.

例えば、ホスト200からデータアドレスを伴うリード要求が入力された場合には、キャッシュアクセス制御部12は、情報管理部11に対して、データアドレスを伴うキャッシュ検索要求を入力する。   For example, when a read request with a data address is input from the host 200, the cache access control unit 12 inputs a cache search request with a data address to the information management unit 11.

また、キャッシュアクセス制御部12は、情報管理部11から応答された検索結果をデータアクセス制御部20に応答する。   Further, the cache access control unit 12 responds to the data access control unit 20 with the search result returned from the information management unit 11.

キャッシュアクセス制御部12は、メモリコントローラ110全般の制御を行なう。例えば、キャッシュアクセス制御部12は、ホスト200からのデータ要求に対して、キャッシュ検索を行なう。キャッシュメモリ102に要求されたデータが存在しなければ(キャッシュヒットしなければ)、キャッシュアクセス制御部12は、NANDフラッシュメモリ101からデータのリードを行なわせる。   The cache access control unit 12 controls the memory controller 110 in general. For example, the cache access control unit 12 performs a cache search in response to a data request from the host 200. If the requested data does not exist in the cache memory 102 (no cache hit), the cache access control unit 12 causes the NAND flash memory 101 to read data.

また、キャッシュアクセス制御部12は、NANDフラッシュメモリ101からリードされたデータがキャッシュメモリ102にライトされると、情報管理部11に対してキャッシュ情報(キャッシュ管理情報111a)に対するデータの登録を指示する。   Further, when the data read from the NAND flash memory 101 is written to the cache memory 102, the cache access control unit 12 instructs the information management unit 11 to register data for the cache information (cache management information 111a). .

キャッシュアクセス制御部12は、キャッシュメモリ102上のデータの置換が生じ、キャッシュメモリ102からデータが削除(キャッシュアウト)されると、情報管理部11に対して、該当データのページをキャッシュ管理情報111aから削除させる指示を行なう。また、キャッシュアクセス制御部12は、キャッシュメモリ102上におけるデータ配置に変更が生じると、情報管理部11に対して、該当データのページをキャッシュ管理情報111aにおいて変更させる指示を行なう。   When the data on the cache memory 102 is replaced and the data is deleted (cached out) from the cache memory 102, the cache access control unit 12 sends the page of the corresponding data to the information management unit 11 as cache management information 111a. Instruct to delete from. Further, when the data arrangement on the cache memory 102 is changed, the cache access control unit 12 instructs the information management unit 11 to change the page of the corresponding data in the cache management information 111a.

また、キャッシュアクセス制御部12は、キャッシュメモリ102にキャッシュさせるデータの管理も行なう。   The cache access control unit 12 also manages data to be cached in the cache memory 102.

キャッシュメモリ102の容量は、NANDフラッシュメモリ101の容量よりも小さく、NANDフラッシュメモリ101の全てのデータをキャッシュメモリ102にキャッシュする事は出来ない。   The capacity of the cache memory 102 is smaller than the capacity of the NAND flash memory 101, and all data in the NAND flash memory 101 cannot be cached in the cache memory 102.

そこで、キャッシュアクセス制御部12は、一定の規則を以ってキャッシュメモリ102からのデータ追い出し処理を行ない、次のデータをキャッシュする。   Therefore, the cache access control unit 12 performs data eviction processing from the cache memory 102 according to a certain rule, and caches the next data.

本ストレージシステム1においては、ホスト200からデータのリード要求を受けた時に、キャッシュメモリ102に空き領域がない場合(キャッシュフル)に、キャッシュアクセス制御部12は、以下の処理を行なう。   In this storage system 1, when a read request for data is received from the host 200, if there is no free space in the cache memory 102 (cache full), the cache access control unit 12 performs the following processing.

すなわち、キャッシュアクセス制御部12は、NANDフラッシュメモリ101の保護を目的としてNANDフラッシュメモリ101のページに優先順位を設定して、キャッシュメモリ102から追い出すデータ(キャッシュ追い出し対象)を決定する。   That is, the cache access control unit 12 sets the priority order for the pages of the NAND flash memory 101 for the purpose of protecting the NAND flash memory 101, and determines the data to be ejected from the cache memory 102 (cache eviction target).

図4は実施形態の一例としてのストレージシステム1におけるキャッシュ追い出し対象を決定するための優先順位を説明するための図である。   FIG. 4 is a diagram for explaining a priority order for determining a cache eviction target in the storage system 1 as an example of the embodiment.

キャッシュアクセス制御部12は、この図4に例示する優先順位に従って、キャッシュ追い出し対象のページを決定する。   The cache access control unit 12 determines a page to be cached according to the priority illustrated in FIG.

図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 storage system 1, since a page with a large number of CEs in the NAND flash memory 101 is considered to be an area that has deteriorated, data access to the area is reduced in order to protect the area. To control. That is, by controlling the data (page data) in the protection target area in the NAND flash memory 101 to remain in the cache memory 102, data access to the protection target area in the NAND flash memory 101 is reduced.

そのため、NANDフラッシュメモリ101において劣化が少なく、保護対象とする必要がないと思われる領域のページデータを、優先的にキャッシュ追い出し領域として選択する。   For this reason, page data in an area that is unlikely to be protected in the NAND flash memory 101 is preferentially selected as a cache eviction area.

例えば、ページの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 cache memory 102 as a target of cache eviction, and the CE number Priority is given to small pages as cache eviction targets. That is, a page with a large number of CEs is left as a protection target in the cache memory 102, and a page with a small number of CEs is given priority as a cache eviction target.

また、ページの世代番号を所定の基準値(第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 cache memory 102 as a cache eviction target, and the generation number is the reference value. A page older than B is given priority as a cache eviction target. That is, a page having a large generation number and a short period in which there is no access since the last access is left in the cache memory 102 as a protection target. Then, a page having a small generation number and a long period of no access since the last access is given priority as a cache eviction target.

さらに、CE数の観点から、同一ページにおける過去(履歴)のCE数と比較し、CE数の増加数が所定の基準値(第3閾値)C以上のページをキャッシュ追い出し対象外としてキャッシュメモリ102に残す。そして、CE数の増加数が所定の基準値(第3閾値)Cよりも少ないページを優先してキャッシュ追い出し対象とする。   Further, from the viewpoint of the number of CEs, the cache memory 102 excludes pages having an increase in the number of CEs equal to or greater than a predetermined reference value (third threshold) C as compared to the past (history) number of CEs on the same page. To leave. Then, a page whose number of CE increases is less than a predetermined reference value (third threshold) C is preferentially set as a cache eviction target.

また、キャッシュアクセス制御部12は、該当CE数と近接CE数との和が所定の基準値(第1閾値)D以上のページをキャッシュ追い出し対象外としてキャッシュメモリ102に残す。そして、該当CE数と近接CE数との和が所定の基準値(第4の基準値)Dよりも少ないページを優先してキャッシュ追い出し対象とする。   In addition, the cache access control unit 12 leaves a page in which 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) D in the cache memory 102 as a cache eviction target. Then, a page whose sum of the number of corresponding CEs and the number of adjacent CEs is smaller than a predetermined reference value (fourth reference value) D is preferentially set as a cache eviction target.

該当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 present storage system 1, such a page is set as a protection target, not as a cache eviction target, and data is left in the cache memory 102, thereby protecting the NAND flash memory 101 from access to the area.

また、キャッシュアクセス制御部12は、キャッシュ管理情報111aおよびキャッシュ履歴情報111bを参照して、該当ページの世代番号と該当CE数と履歴CE数とから、次回(世代番号の差以降)にリードを行なうときのCE数を外挿で推測する。そして、キャッシュアクセス制御部12は、推測したCE数の値がエラー訂正処理部21の訂正可能数を超える場合に、該当ページを保護対象としてキャッシュメモリ102に残す対象とする。   Further, the cache access control unit 12 refers to the cache management information 111a and the cache history information 111b, and reads the next time (after the generation number difference) from the generation number, the corresponding CE number, and the history CE number of the corresponding page. The number of CEs to perform is extrapolated. Then, when the estimated value of the number of CEs exceeds the correctable number of the error correction processing unit 21, the cache access control unit 12 sets the corresponding page as a target to be protected in the cache memory 102.

すなわち、キャッシュアクセス制御部12は、過去におけるCE数の実績に基づいて次回リード時のCE数(予測CE数)の予測を行ない、この予測CE数を用いてキャッシュ追い出し対象の決定を行なう。   That is, the cache access control unit 12 predicts the number of CEs at the time of the next read (predicted CE number) based on the past number of CEs, and uses this predicted CE number to determine the cache eviction target.

図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 storage system 1 of the embodiment.

図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 processing unit 21.
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 correction processing unit 21 cannot perform correction at the next read.
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 storage system 1 as an example of the embodiment configured as described above will be described with reference to the flowchart (steps A1 to A10) shown in FIG.

ステップA1において、ホスト200からリード要求(データ要求)が入力され、データアクセス制御部20が、ホスト200から、このデータ要求とリード対象データアドレスを取得する。   In step A <b> 1, a read request (data request) is input from the host 200, and the data access control unit 20 acquires the data request and the read target data address from the host 200.

ステップA2において、データアクセス制御部20は、キャッシュ管理部10のキャッシュアクセス制御部12に対して、キャッシュ検索を要求する。キャッシュアクセス制御部12は、データアドレスを伴う検索要求を情報管理部11に入力する。   In step A2, the data access control unit 20 requests the cache access control unit 12 of the cache management unit 10 to perform a cache search. The cache access control unit 12 inputs a search request with a data address to the information management unit 11.

ステップA3において、情報管理部11は、キャッシュ管理情報111aを検索し、リード対象のデータがキャッシュメモリ102に格納されているか、すなわち、キャッシュヒットしたかを確認する。   In step A3, the information management unit 11 searches the cache management information 111a and confirms whether the read target data is stored in the cache memory 102, that is, whether a cache hit has occurred.

確認の結果、キャッシュヒットした場合(ステップ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 information management unit 11 updates the generation number of the page corresponding to the read access destination in the cache management information 111a. The information management unit 11 returns the search result to the cache access control unit 12, and the cache access control unit 12 returns the search result to the data access control unit 20.

ステップA5において、データアクセス制御部20は、キャッシュメモリ102に格納されているリード対象データをリードして、ホスト200に応答させる。   In step A5, the data access control unit 20 reads the read target data stored in the cache memory 102 and causes the host 200 to respond.

一方、ステップ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 access control unit 12 confirms whether the cache memory 102 is in a cache full state. As a result of the confirmation, if the cache memory 102 is not cache full (refer to the NO route in step A6), the process proceeds to step A9.

また、ステップA6における確認の結果、キャッシュメモリ102がキャッシュフルである場合には(ステップA6のYESルート参照)、ステップA7に移行する。   If the result of confirmation in step A6 is that the cache memory 102 is full (see YES route in step A6), the process proceeds to step A7.

ステップA7においては、キャッシュアクセス制御部12が、キャッシュメモリ102に格納されているページデータの中から置換対象となるページデータ、すなわち、キャッシュアウトさせるページデータを選出する。   In step A7, the cache access control unit 12 selects page data to be replaced from the page data stored in the cache memory 102, that is, page data to be cached out.

ステップA8において、キャッシュアクセス制御部12は、キャッシュメモリ102における置換対象のデータを削除(キャッシュアウト)させる。また、キャッシュアクセス制御部12は、情報管理部11に対して、キャッシュメモリ102から削除したページデータのエントリをキャッシュ管理情報111aから削除させる。キャッシュ管理情報111aから削除されたエントリはキャッシュ履歴情報111bに格納される。その後、ステップA9に移行する。   In step A8, the cache access control unit 12 deletes (caches out) the replacement target data in the cache memory 102. Further, the cache access control unit 12 causes the information management unit 11 to delete the entry of the page data deleted from the cache memory 102 from the cache management information 111a. The entry deleted from the cache management information 111a is stored in the cache history information 111b. Thereafter, the process proceeds to step A9.

ステップA9において、キャッシュアクセス制御部12は、情報管理部11に、キャッシュ管理情報111aへ、キャッシュメモリ102に新たに格納されるリードデータについての情報を登録させる。   In step A9, the cache access control unit 12 causes the information management unit 11 to register information about the read data newly stored in the cache memory 102 in the cache management information 111a.

ステップA10において、データアクセス制御部20は、NANDフラッシュメモリ101からリード対象のデータをリードさせる。NANDフラッシュメモリ101からリードされたデータはエラー訂正処理部21に入力され、このエラー訂正処理部21においてエラー検出が行なわれた後、ホスト200にデータ応答として送信される。なお、エラー訂正処理部21において訂正可能なエラー(CE)が検出された場合には、エラー訂正処理部21はこのエラーを訂正し、このエラー訂正が行なわれたリードデータがホスト200に応答データとして送信される。   In step A <b> 10, the data access control unit 20 reads the read target data from the NAND flash memory 101. Data read from the NAND flash memory 101 is input to the error correction processing unit 21, and after error detection is performed in the error correction processing unit 21, the data is transmitted to the host 200 as a data response. When a correctable error (CE) is detected in the error correction processing unit 21, the error correction processing unit 21 corrects this error, and the read data subjected to this error correction is sent to the host 200 as response data. As sent.

また、エラー訂正処理部21はエラー訂正を行なった場合に、CE数をキャッシュアクセス制御部12(キャッシュ管理部10)に通知する。   The error correction processing unit 21 notifies the cache access control unit 12 (cache management unit 10) of the number of CEs when error correction is performed.

キャッシュアクセス制御部12は、エラー訂正処理部21から通知されたCE数を情報管理部11に通知し、キャッシュ管理情報111aにおける対応するエントリのCE数を更新させる。   The cache access control unit 12 notifies the information management unit 11 of the CE number notified from the error correction processing unit 21, and updates the CE number of the corresponding entry in the cache management information 111a.

また、NANDフラッシュメモリ101から読み出され、必要に応じてエラー訂正が行なわれたリードデータは、キャッシュメモリ102にも転送され、このキャッシュメモリ102に格納(キャッシュイン)される。   The read data read from the NAND flash memory 101 and subjected to error correction as necessary is also transferred to the cache memory 102 and stored (cached in) in the cache memory 102.

次に、図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 access control unit 12 confirms with the information management unit 11 whether there is a page in which the number of CEs is smaller than the reference value A in the cache management information 111a (hereinafter sometimes referred to as condition J_01). To do.

ステップ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 access control unit 12 confirms whether there is a page whose generation number is older than the reference value B (hereinafter may be referred to as condition J_02).

ステップ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 access control unit 12 selects all pages that satisfy both the above-described condition J_01 and condition J_02.

ステップB4において、キャッシュアクセス制御部12は、ステップB3において選択されたページにおいて、該当のページのCE数を履歴と比較して、CE数の増加数が基準値Cよりも少ないページがあるか(以下、条件J_03という場合がある)を確認する。   In step B4, the cache access control unit 12 compares the number of CEs of the corresponding page with the history in the page selected in step B3, and whether there is a page with an increased number of CEs less than the reference value C ( Hereinafter, it may be referred to as condition J_03).

ステップ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 access control unit 12 determines whether there is a page in which the sum of the number of corresponding CEs and the number of adjacent CEs is smaller than the reference value D in the page selected in step B3 (hereinafter, referred to as condition J_04). )

ステップ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 access control unit 12 selects all pages that satisfy the above-described condition J_01 and do not satisfy the condition J_02.

ステップB7において、キャッシュアクセス制御部12は、ステップB6において選択されたページにおいて、該当のページのCE数を履歴と比較して、CE数の増加数が基準値Cよりも少ないページがあるか(条件J_03)を確認する。   In step B7, the cache access control unit 12 compares the number of CEs of the corresponding page with the history in the page selected in step B6, and whether there is a page where the number of CE increases is smaller than the reference value C ( Check condition J_03).

ステップ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 access control unit 12 confirms whether there is a page in which the sum of the number of corresponding CEs and the number of adjacent CEs is less than the reference value D in the page selected in step B6 (condition J_04).

ステップ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 access control unit 12 checks whether there is a page whose generation number is older than the reference value B (condition J_02).

ステップ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 access control unit 12 selects all pages that satisfy the above-described condition J_01 and do not satisfy the condition J_02.

ステップB12において、キャッシュアクセス制御部12は、ステップB11において選択されたページにおいて、該当のページのCE数を履歴と比較して、CE数の増加数が基準値Cよりも少ないページがあるか(条件J_03)を確認する。   In step B12, the cache access control unit 12 compares the number of CEs of the corresponding page with the history in the page selected in step B11, and whether there is a page in which the increased number of CEs is smaller than the reference value C ( Check condition J_03).

ステップ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 access control unit 12 confirms whether there is a page in which the sum of the number of corresponding CEs and the number of adjacent CEs is smaller than the reference value D in the page selected in step B11 (condition J_04).

ステップ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 access control unit 12 selects all pages that do not satisfy the above-described condition J_01 and do not satisfy the condition J_02.

ステップB15において、キャッシュアクセス制御部12は、ステップB14において選択されたページにおいて、該当のページのCE数を履歴と比較して、CE数の増加数が基準値Cよりも少ないページがあるか(条件J_03)を確認する。   In step B15, the cache access control unit 12 compares the number of CEs of the corresponding page with the history in the page selected in step B14, and whether there is a page with an increased number of CEs less than the reference value C ( Check condition J_03).

ステップ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 access control unit 12 confirms whether there is a page in which the sum of the number of corresponding CEs and the number of adjacent CEs is smaller than the reference value D in the page selected in step B14 (condition J_04).

ステップ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 access control unit 12 determines the page with the oldest generation number as a replacement target and ends the process.

また、ステップ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 access control unit 12 determines a page having the oldest generation number as a replacement target from pages satisfying any one of steps B4, B5, B7, B8, B12, B13, B15, and B16. The process ends.

(C)効果
このように、本発明の一実施形態としてのストレージシステム1によれば、キャッシュ管理部10の情報管理部11が、ページ毎に該当CE数,近接CE数および履歴CE数を管理する。
(C) Effect As described above, according to the storage system 1 as an embodiment of the present invention, the information management unit 11 of the cache management unit 10 manages the number of corresponding CEs, the number of adjacent CEs, and the number of history CEs for each page. To do.

そして、キャッシュアクセス制御部12が、該当CE数と近接CE数との和が所定の基準値(第1閾値)D以上のページをキャッシュ追い出し対象外としてキャッシュメモリ102に残す。そして、該当CE数と近接CE数との和が基準値Dよりも少ないページを優先してキャッシュ追い出し対象とする。   Then, the cache access control unit 12 leaves a page in which 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) D in the cache memory 102 as a target of cache eviction. Then, a page whose sum of the number of corresponding CEs and the number of adjacent CEs is smaller than the reference value D is preferentially set as a cache eviction target.

これにより、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 NAND flash memory 101 is held in the cache memory 102 without being evicted from the cache memory 102. As a result, even when a read request is issued from the host 200 to this page, access to the page in the NAND flash memory 101 can be suppressed. By leaving data in the cache memory 102, data access to the NAND flash memory 101 can be avoided. As a result, the progress of deterioration of the area can be suppressed, and the durability of the NAND flash memory 101 can be improved.

キャッシュアクセス制御部12が、リード対象のデータのページ(該当ページ)において検出されたCE数だけでなく、その隣接する隣接ページにおいて検出されたCE数に基づいて、キャッシュメモリ102からの追い出し対象を判断する。このように、リード対象のページだけでなく、その隣接ページのCE数も考慮することで、リードディスターブに着目したキャッシュ要否の判断ができ、NANDフラッシュメモリ101の耐久性を向上させることができる。   The cache access control unit 12 determines the target to be evicted from the cache memory 102 based on not only the number of CEs detected in the page of the data to be read (corresponding page) but also the number of CEs detected in the adjacent page. to decide. In this way, by considering not only the page to be read but also the number of CEs of the adjacent page, it is possible to determine whether or not the cache is necessary focusing on read disturb, and the durability of the NAND flash memory 101 can be improved. .

また、キャッシュアクセス制御部12が、ページの世代番号を所定の基準値(第2閾値)Bと比較し、世代番号がこの基準値Bよりも新しいページをキャッシュ追い出し対象外としてキャッシュメモリ102に残す。そして、世代番号がこの基準値Bよりも古いページを優先してキャッシュ追い出し対象とする。   Further, the cache access control unit 12 compares the generation number of the page with a predetermined reference value (second threshold) B, and leaves a page whose generation number is newer than the reference value B as a cache eviction target in the cache memory 102. . Then, a page whose generation number is older than the reference value B is given priority as a cache eviction target.

これにより、最後にアクセスが生じてからアクセスがない状態での期間が短く、アクセスが再度発生する可能性が高いページのデータがキャッシュメモリ102に残すことができる。従って、このページに対してホスト200からリード要求が行なわれた場合においても、NANDフラッシュメモリ101へのデータアクセスを回避することができる。すなわち、当該領域の劣化の進みを抑止し、NANDフラッシュメモリ101の耐久性を向上させることができる。   As a result, it is possible to leave, in the cache memory 102, data of a page that has a short period of time when there is no access since the last access, and is likely to be accessed again. Therefore, even when a read request is issued from the host 200 to this page, data access to the NAND flash memory 101 can be avoided. That is, the progress of deterioration of the area can be suppressed and the durability of the NAND flash memory 101 can be improved.

キャッシュアクセス制御部12が、ページのCE数を所定の基準値(閾値)Aと比較し、CE数がこの基準値A以上のページをキャッシュ追い出し対象外としてキャッシュメモリ102に残し、CE数がこの基準値Aよりも小さいページを優先してキャッシュ追い出し対象とする。   The cache access control unit 12 compares the CE number of the page with a predetermined reference value (threshold value) A, leaves a page having the CE number equal to or greater than the reference value A in the cache memory 102 as a cache eviction target, and the CE number is A page smaller than the reference value A is preferentially set as a cache eviction target.

これにより、CE数が多いページを保護対象としてキャッシュメモリ102に残すことができる。従って、このページに対してホスト200からリード要求が行なわれた場合においても、NANDフラッシュメモリ101へのデータアクセスを回避することができる。すなわち、当該領域の劣化の進みを抑止し、NANDフラッシュメモリ101の耐久性を向上させることができる。   As a result, pages with a large number of CEs can remain in the cache memory 102 as protection targets. Therefore, even when a read request is issued from the host 200 to this page, data access to the NAND flash memory 101 can be avoided. That is, the progress of deterioration of the area can be suppressed and the durability of the NAND flash memory 101 can be improved.

また、キャッシュアクセス制御部12が、同一ページにおける過去(履歴)のCE数と比較し、CE数の増加数が所定の基準値(第3閾値)C以上のページをキャッシュ追い出し対象外としてキャッシュメモリ102に残す。そして、CE数の増加数が所定の基準値(第3閾値)Cよりも少ないページを優先してキャッシュ追い出し対象とする。   Further, the cache access control unit 12 compares the number of CEs in the past (history) in the same page with the number of increase in the number of CEs equal to or greater than a predetermined reference value (third threshold) C as a cache eviction target. Leave to 102. Then, a page whose number of CE increases is less than a predetermined reference value (third threshold) C is preferentially set as a cache eviction target.

これにより、CE数が増加傾向にあるページを保護対象としてキャッシュメモリ102に残すことができる。従って、このページに対してホスト200からリード要求が行なわれた場合においても、NANDフラッシュメモリ101へのデータアクセスを回避することができる。すなわち、当該領域の劣化の進みを抑止し、NANDフラッシュメモリ101の耐久性を向上させることができる。   As a result, a page whose number of CEs is increasing can be left in the cache memory 102 as a protection target. Therefore, even when a read request is issued from the host 200 to this page, data access to the NAND flash memory 101 can be avoided. That is, the progress of deterioration of the area can be suppressed and the durability of the NAND flash memory 101 can be improved.

(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 (cache management unit 10, data access control unit 20, and error correction processing unit 21) as the memory controller 110 may be realized by hardware using a circuit device. Further, at least a part of these functions may be realized by a processor executing a control program. The processor is any one of a central processing unit (CPU), a micro processing unit (MPU), a digital signal processor (DSP), an application specific integrated circuit (ASIC), a programmable logic device (PLD), and a field programmable gate array (FPGA). It may be one. Further, the processor may be a combination of two or more types of elements among CPU, MPU, DSP, ASIC, PLD, and FPGA.

そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成および各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。   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 appendix 1, wherein the storage device is set outside.

(付記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 appendix 1 or 2, wherein the data in the area is set as a target not to be evicted from the cache memory.

(付記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 appendices 1 to 3, wherein the cache management information includes position information of the unit area in the semiconductor storage device and the number of errors detected in the unit area. apparatus.

(付記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 appendix 5, which causes the processor to execute processing to be set outside.

(付記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 appendix 5 or 6, which causes the processor to execute a process of setting the data to be exempted from the cache memory.

(付記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 appendices 5 to 7, 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. program.

(付記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 appendix 9 or 10, further comprising a process of setting the data in the cache memory not to be evicted.

(付記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 SYMBOLS 1 Storage system 100 Storage apparatus 110 Memory controller 10 Cache management part 11 Information management part 111 Cache information
111a Cache management information 111b Cache history information 12 Cache access control unit 20 Data access control unit 21 Error correction processing unit 101 NAND flash memory 102 DRAM (cache memory)

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.
JP2018049729A 2018-03-16 2018-03-16 Storage device, control program and control method Pending JP2019160197A (en)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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