Nothing Special   »   [go: up one dir, main page]

JP5720210B2 - アクセス制御装置、誤り訂正制御方法およびストレージ装置 - Google Patents

アクセス制御装置、誤り訂正制御方法およびストレージ装置 Download PDF

Info

Publication number
JP5720210B2
JP5720210B2 JP2010269042A JP2010269042A JP5720210B2 JP 5720210 B2 JP5720210 B2 JP 5720210B2 JP 2010269042 A JP2010269042 A JP 2010269042A JP 2010269042 A JP2010269042 A JP 2010269042A JP 5720210 B2 JP5720210 B2 JP 5720210B2
Authority
JP
Japan
Prior art keywords
data
error correction
correction code
ecc
size
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2010269042A
Other languages
English (en)
Other versions
JP2012118839A (ja
Inventor
淳 内田
淳 内田
光正 羽根田
光正 羽根田
陽子 河野
陽子 河野
絵美 成田
絵美 成田
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 JP2010269042A priority Critical patent/JP5720210B2/ja
Priority to US13/297,972 priority patent/US8839072B2/en
Publication of JP2012118839A publication Critical patent/JP2012118839A/ja
Application granted granted Critical
Publication of JP5720210B2 publication Critical patent/JP5720210B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、アクセス制御装置、誤り訂正制御方法およびストレージ装置に関する。
従来、不揮発性の半導体メモリであるフラッシュメモリが利用されている。このようなフラッシュメモリを制御するコントローラでは、ページと呼ばれる複数ビット単位でデータの書き込みおよび読み出しを行い、複数のページからなるブロック単位でデータの消去を行う。
このようなコントローラは、データを消去するErase処理をブロック単位でフラッシュメモリに対して行う。そして、コントローラは、データを書き込む際に、データを消去されたブロックを検索し、検出された空きブロックに対して新たなデータを書き込んでいる。
また、コントローラは、誤ったデータが書き込まれていることを検出して正しいデータに訂正することができるECC(Error Correcting Code:誤り訂正符号)を生成し、データとともにフラッシュメモリに記憶させる。ここで、コントローラによって生成されるECCのデータサイズは、初期設定で設定された固定値により決められる。
そして、コントローラは、フラッシュメモリからデータを読み出す場合には、フラッシュメモリからデータとともにECCを読出し、ECCを用いて、読み出したデータの誤りを検出し、正しいデータに訂正する処理を行う。
特開2010−152551号公報 特開2005−196658号公報 特開2004−272476号公報
ところで、上記した従来の技術では、生成されたECCのデータサイズが一定であるので、フラッシュメモリに記憶されるデータの信頼性が低くなるという課題があった。つまり、フラッシュメモリでは、データの消去処理およびデータの書き込み処理を行うたびに、フラッシュメモリのセルが劣化していき、誤ったデータが書き込まれる可能性が高くなる。
このため、劣化したセルに記憶されたデータに対してECCのデータサイズが小さい場合には、適切にデータを訂正できず、フラッシュメモリに記憶されるデータの信頼性が低くなる。なお、ECCのデータサイズを一律大きくすることで、データの信頼性を向上させることも考えられる。しかし、ECCのデータサイズが大きくなれば、データの誤り検出処理およびデータの訂正処理に時間が掛かる。このため、劣化していないセルに記憶されたデータについても、データの誤り検出処理およびデータの訂正処理に時間が掛かってしまい、フラッシュメモリからのデータ読出し性能が低下してしまう。
一つの側面では、データの信頼性を高くするアクセス制御装置、誤り訂正制御方法およびストレージ装置を提供することを目的とする。
第一の案では、記憶装置のデータ記憶領域に記憶されたデータの消去に要した時間をデータの消去の要求のたびに計測し、計測された時間が標準値より短い場合に予め設定された所定サイズを、前記計測された時間が標準値よりも長く所定値より短い場合に計測された時間と所定サイズに基づいて算出した値を、消去の対象のデータ記憶領域における誤り訂正符号のデータサイズに決定する。そして、決定されたデータサイズの誤り訂正符号を生成し、生成された誤り訂正符号を記憶装置に書き込むように制御する。
データの信頼性を高くすることができる。
図1は、実施例1に係るNAND−Flashメモリコントローラを含むRAID装置の構成を示すブロック図である。 図2は、実施例1に係るNAND−Flashメモリコントローラの構成を示すブロック図である。 図3は、不良BLK管理テーブルの一例を示す図である。 図4は、Erase処理に要した時間とECCのデータサイズとの関係を示す図である。 図5は、NANDフラッシュのデータ構造の一例を示す図である。 図6は、ECCのデータサイズの一例を示す図である。 図7は、ECCのデータサイズの一例を示す図である。 図8は、不良BLK管理テーブルの不良BLKコードとNANDフラッシュのデータとの関係を示す図である。 図9は、不良BLK管理テーブルの一例を示す図である。 図10は、ECCデータの書き込み位置を決定する処理を説明する図である。 図11は、ECCデータの読出し位置を決定する処理を説明する図である。 図12は、エラー訂正に用いられるECCについて説明する図である。 図13は、NAND−FlashメモリコントローラのErase処理を説明する図である。 図14は、NAND−Flashメモリコントローラの書き込み処理を説明する図である。 図15は、NAND−Flashメモリコントローラの読出し処理を説明する図である。 図16は、実施例1に係るNAND−FlashメモリコントローラのErase処理の動作を示すフローチャートである。 図17は、実施例1に係るNAND−Flashメモリコントローラの書き込み処理の動作を示すフローチャートである。 図18は、実施例1に係るNAND−Flashメモリコントローラの読出し処理の動作を示すフローチャートである。
以下に添付図面を参照して、この発明に係るアクセス制御装置、誤り訂正制御方法およびストレージ装置の実施例を詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
以下の実施例では、実施例1に係るNAND−Flashメモリコントローラの構成および処理の流れを順に説明し、最後に実施例1による効果を説明する。
[NAND−Flashメモリコントローラの構成]
最初に、図1を用いて、実施例1に係るNAND−Flashメモリコントローラを含むRAID(Redundant Arrays of Independent(Inexpensive)Disks)装置の構成例を説明する。図1は、実施例1に係るNAND−Flashメモリコントローラを含むRAID装置の構成を示すブロック図である。図1に示すように、RAID装置1は、CM(Controller Module)100と、PSU(Power Supply Unit)101と、HDD(Hard Disk Drive)102a〜102zとを有する。
CM100は、キャッシュメモリの管理や、ホストとのインターフェース制御や、各HDD102a〜102zの制御を行う制御部である。また、CM100は、NAND−Flashメモリコントローラ10と、NAND−Flashメモリ20と、RoC(RAID−on−Chip)30と、SCU(Super Capacitor Unit)40と、Exp(エキスパンダ)50と、キャッシュメモリ60とを有する。
NAND−Flashメモリコントローラ10は、所定のプログラムによって制御される集積回路であるFPGA(Field Programmable Gate Array)であって、DMA(Direct Memory Access)エンジンを有する。このDMAとは、CPU(Central Processing Unit)を介さずに装置とRAM(Random Access Memory)間でデータ転送を行う方式のことである。本実施例では、Eraseに要した時間が長いページほど、大きいサイズのECCを作成することで、劣化したページほどデータサイズの大きいECCを作成する機能を付加したDMAをFPGAであるNAND−Flashメモリコントローラ10に搭載している。なお、NAND−Flashメモリコントローラ10の構成については、後に図2を用いて詳述する。
NAND−Flashメモリ20は、不揮発性の半導体メモリである。例えば、NAND−Flashメモリ20は、停電発生時において、揮発性のキャッシュメモリ60上のデータを退避させるためのバックアップ用の記憶装置として機能する。
RoC30は、CM100を全体制御する制御装置であり、キャッシュメモリ60のバックアップ処理や、ホストとのインターフェース制御や、キャッシュメモリ60の管理を行うファームウェアを有する処理部である。
SCU40は、大容量コンデンサであり、RAID装置100に停電が発生した際に、バッテリーフリーで、RoC30に電力を供給する。EXP(エキスパンダ)50は、RoC30とHDD102a〜HDD102zとの間で送受信されるユーザデータを中継する処理部である。
キャッシュメモリ60は、DDR SDRAM(Double Date Rate Synchronous DRAM)などの揮発性メモリであり、例えば、キャッシュメモリ60は、HDDに書き込むべきデータを一時的に記憶するものであり、停電等でHDDに書き込めない場合に、NAND−Flashメモリ20に書き込むべきデータを一時的に退避する。
PSU(Power Supply Unit)101は、RAID装置100へ電力を供給する装置で、停電が発生した場合、RAID装置100への電力の供給を停止する。なお、上述したように、この場合、SCU40の放電により、RAID装置100へ電力が供給される。HDD102a〜HDD102zは、RAIDグループを構成し、高速性や安全性のレベルに応じて、データが振り分けられており、ユーザデータの書込みやプログラムを記憶する記憶媒体(ディスク)等を有する。
次に、図2を用いて、実施例1に係るNAND−Flashメモリコントローラの構成を説明する。図2は、実施例1に係るNAND−Flashメモリコントローラの構成を示すブロック図である。図2に示すように、NAND−Flashメモリコントローラ10は、I/F制御部11、NAND制御部12、不良BLK管理テーブル記憶部13、ERS制御部14a、DMA書込み制御部14b、ECC生成部14c、ECCバッファ14d、DMA読出し制御部14eおよびエラー訂正制御部14fを有する。以下にこれらの各部の処理を説明する。
I/F制御部11は、接続されるRoC30との間でやり取りする各種情報に関する通信を制御する。例えば、I/F制御部11は、データの書き込み要求を受信すると、DMA書き込み制御部14bに通知する。また、I/F制御部11は、データの読出し要求をRoC30から受信すると、DMA読出し制御部14eに通知する。また、I/F制御部11は、NAND−Flashメモリ20から読み出されたデータをDMA読出し制御部14eから受信し、RoC30に通知する。
NAND制御部12は、接続されるNAND−Flashメモリ20に対するデータの書き込みおよび読出しを制御する。例えば、NAND制御部12は、DMA書き込み制御部14bから書き込み要求を受信すると、NAND−Flashメモリ20に対して、データおよびECCの書き込み処理を行う。また、NAND制御部12は、DMA読出し制御部14eから読出し要求を受信すると、NAND−Flashメモリ20に対して、データおよびECCの読出し処理を行う。
不良BLK管理テーブル記憶部13は、不良ブロックであるか否かを記憶する不良BLK管理テーブルを記憶する。ここで「不良ブロック」とは、NAND−Flashメモリ20の消耗により、キャッシュデータの書き込みが規定時間内に完了しないブロックを示す。そして、不良ブロックは、データの書き込みブロックとして使用されない。例えば、不良BLK管理テーブル記憶部13は、図3に示すように、各ブロックに付与されたアドレスの値である「ADR」、不良ブロックであるか否かを示す「不良BLKコード」、各ページに対するECCの拡張分データサイズを示す「ECCサイズ」を記憶する。図3は、不良BLK管理テーブルの一例を示す図である。
不良BLK管理テーブルにおいて、不良BLKコードが「0」である場合には、良好ブロックであることを示している。また、不良BLK管理テーブルにおいて、不良BLKコードが「0」である場合には、該当するブロックに属する各ページのデータに対応するECCサイズが初期設定された値(以下、固定値という)である。このため、ECCの拡張分データサイズであるECCサイズが「0」と記憶される。なお、ECCサイズの固定値は、不良BLK管理テーブル記憶部13の所定の記憶領域に記憶されている。
また、不良BLK管理テーブルにおいて、不良BLKコードが「1」である場合には、ECCサイズが可変長の良好ブロックであることを示している。ここで、良好ブロックとは、データの読み書きに使用できるブロックのことをいう。また、不良BLK管理テーブルにおいて、不良BLKコードが「1」である場合には、該当するブロックに属する各ページのデータに対応するECCサイズが記憶されている。図3の例では、ECCサイズの項目に「xxx」と記載されているが、実際にはバイト数の値がテーブルに記憶される。ここで、ECCサイズの項目に記憶されるバイト数は、固定値よりも拡張した分のECCのデータサイズを示している。つまり、ECCサイズの項目に「64」バイトと記憶されている場合には、ECCのサイズは、固定値に64バイト足した値となる。
また、不良BLK管理テーブルにおいて、不良BLKコードが「2」である場合には、不良ブロックであることを示している。また、不良BLK管理テーブルにおいて、不良BLKコードが「2」である場合には、該当するブロックに属する各ページのデータに対応するECCサイズが「n/a(no active)」となる。つまり、不良BLKコードが「2」である場合には、不良ブロックなので使用されない。なお、不良BLKコードおよびECCサイズがどのように決定されるかについては、ERS制御部14aの説明で詳述する。
ERS制御部14aは、NAND−Flashメモリ20に記憶されたデータを消去する処理であるErase処理を実施するように制御する。例えば、ERS制御部14aは、RoC30からErase要求を受信すると、NAND−Flashメモリ20に記憶されたデータの消去を要求するERS要求をNAND制御部12に送信する。
また、ERS制御部14aは、ERS要求がRoC30から通知されると、NAND−Flashメモリ20に記憶されたデータを消去するのに要した時間を計測し、計測された時間に応じて、誤り訂正符号のデータサイズを決定する。例えば、ERS制御部14aは、データを消去するのに要した時間として、ERS要求をNAND制御部12に送信してから、Erase処理が完了したことを示す完了応答をNAND制御部12から受信するまでの時間を計測する。そして、ERS制御部14aは、ERS要求がRoC30からERS制御部14aに通知されるたびに、計測された時間に応じて、誤り訂正符号のデータサイズを決定する。
ここで、図4を用いて、計測された時間に応じて、誤り訂正符号のデータサイズを決定する処理について具体的に説明する。図4は、Erase処理に要した時間とECCのデータサイズとの関係を示す図である。図4に示すように、Erase処理に要した時間であるErase時間(図4では、「tERS」と記載)が標準値(図4では、Typical値)と同じである場合には、ERS制御部14aは、ECCサイズを初期設定である「N」に決定する(図4では、「Default=N」と記載)。また、Erase時間が標準値よりも短い場合も、ERS制御部14aは、ECCサイズを初期設定である「N」に決定する。
そして、Erase時間が標準値と同じか標準値よりも短い場合には、ERS制御部14aは、Erase時間が標準値と同じか標準値よりも短かったブロックを良好ブロックとし、NAND不良BLK管理テーブルの不良BLKコードの項目に「0」を登録する。
ここで、Erase時間の標準値は、例えば、初回Erase時の値を用いてもよいし、NAND−flashメモリ20に標準値が格納されていてもよい。なお、フラッシュの交換等で標準値が変更になる。
また、Erase時間が標準値よりも長く、かつ、標準値の2倍よりも短かった場合には、ERS制御部14aは、「初期設定値N×(tERS/Typical値)」を算出し、算出した値をECCのデータサイズに決定する。その後、ERS制御部14aは、決定したECCのデータサイズの値をNAND不良BLK管理テーブルに記憶させる。つまり、Eraseに要した時間が長いページほど、大きいサイズのECCを作成することで、劣化したページほどデータサイズの大きいECCを作成できる結果、フラッシュメモリ内のデータの信頼性を向上させることができる。
そして、Erase時間が標準値よりも長く、かつ、標準値の2倍よりも短い場合には、ERS制御部14aは、該当ブロックを良好ブロックとし、NAND不良BLK管理テーブルの不良BLKコードの項目に「1」を登録する。なお、Erase時間が標準値の2倍以上である場合には、ERS制御部14aは、Erase時間が標準値の2倍以上かかったページを含むブロック全体を不良ブロックとし、NAND不良BLK管理テーブルの不良BLKコードの項目に「2」を登録する。これにより、Erase時間が標準値の2倍以上かかったページを含むブロックが以後利用されないようにする。
ここで、図5の例を用いて、NANDフラッシュメモリ20に記憶されるデータの構造について説明する。図5は、NANDフラッシュのデータ構造の一例を示す図である。図5に示すように、NANDフラッシュメモリ20は、ページ0〜7のうち、ページ0〜6にデータを記憶し、ページ7にECCを記憶する。ページは、データを記憶するデータ領域を示し、NANDフラッシュメモリ20のデータを記憶する分割単位を示すもので、このページごとに、データの書き込みおよび読出しが行われる。
ページ7には、ページ0〜6に記憶されたデータの誤りを検出し、正しいデータに訂正するためのECCが記憶されている。例えば、ページ7には、図5に例示するように、ECC0、ECC1・・・ECC6という順に、ページ0〜6に記憶されたデータに対応するECCが記憶されている。また、ページ7に記憶された各ページ対応する各ECCのデータサイズは、それぞれデータのサイズが異なる場合がある。例えば、図6に示すように、ページ1に記憶されたデータ1のErase処理に要した時間が標準値よりも長くなった場合には、「ECC1」のデータサイズが大きくなる。また、図7に例示するように、ページ1に記憶されたデータ1とともに、ページ5に記憶されたデータ5のErase処理に要した時間が標準値よりも長くなった場合には、「ECC1」および「ECC5」のデータサイズが大きくなる。図6および図7は、ECCのデータサイズの一例を示す図である。なお、ECCのデータサイズが拡張した場合にも、ECCを記憶できるように、記憶領域の容量に余裕をもたせているので、例えば、ECC1のデータが大きくなった場合にも、「ECC2」のデータが上書きされることはない。
このように、実施例1に係るNAND−Flashメモリコントローラ10は、ページ7においてECCのみを記憶させるので、ECCのデータサイズが変化した場合であっても、ECCの管理を容易にすることが可能である。また、上述しように、ページ7は、ECCのデータサイズが拡張した場合にもECCを記憶できるように、各ECCの記憶領域の容量に余裕をもたせておく。
ここで、図8を用いて、不良BLK管理テーブルの不良BLKコードとNANDフラッシュのデータとの関係を説明する。図8は、不良BLK管理テーブルの不良BLKコードとNANDフラッシュのデータとの関係を示す図である。図8左側に示すように、各ブロックのアドレスに対応付けて不良BLKコード「0」、「1」、「2」のいずれかの値が記憶されている。また、図8中央に示すように、NAND−Flashメモリ20は、複数のページPage00〜PageN7からなるブロック単位でデータを管理している。また、図8右側に示すように、NAND−Flashメモリ20は、Page0〜Page6にData0〜Data6を記憶し、Page7にData0〜Data6のECCが記憶されている。
そして、NAND−Flashメモリコントローラ10は、不良BLKコードが「2」であるブロックについては、不良ブロックであるので、該当ブロックを縮退させる。例えば、図8の例では、ADR「3」のブロックの不良BLKコードが「2」であるので、ADR「3」のブロックを縮退させ、以後記憶領域として利用しないようにする。
図2の説明に戻って、DMA書込み制御部14bは、NAND−Flashメモリ20に対してデータの書き込み処理を行うように制御する。例えば、DMA書込み制御部14bは、RoC30から書き込み要求を受信するとともに書き込み対象のデータを受信すると、不良BLK管理テーブルを読み出して、書き込み可能なブロックをサーチする。つまり、不良BLK管理テーブルの不良BLKコードの項目が「0」または「1」である良好ブロックをサーチする。そして、DMA書込み制御部14bは、書き込み可能なブロックについて、不良BLK管理テーブルから各ページのECCサイズを読み出す。
そして、DMA書込み制御部14bは、書き込み可能なブロックの各ページに対して、データの書き込み処理を行うように制御する。そして、DMA書込み制御部14bは、不良BLK管理テーブルから読み出したECCのデータサイズに応じて、ECCデータのデータサイズを決定し、ECC生成部14cにECCを生成させる。つまり、不良BLK管理テーブルの「ECCサイズ」の項目が「a」バイトであった場合には、初期設定の固定値に「a」バイトを加算した分のサイズでECCデータを生成させる。
そして、DMA書込み制御部14bは、ECCサイズを基に、ECCデータの書き込み位置を決定する。その後、DMA書込み制御部14bは、ECCデータをNAND−Flashメモリ20に書き込む。ここで、図9および図10を用いて、ECCデータの書き込み位置を決定する処理について説明する。図9は、不良BLK管理テーブルの一例を示す図である。図10は、ECCデータの書き込み位置を決定する処理を説明する図である。
図9に例示する不良BLK管理テーブルは、ADR「1」のブロックにおけるPage x1のECCサイズが「a」、Page x3のECCサイズが「b」、Page x6のECCサイズが「c」である。図10では、図9に例示した不良BLK管理テーブルの例を用いて、ECCデータの書き込み位置を決定する処理について説明する。図10の(1)に示すように、DMA書込み制御部14bは、ライトポインタ1およびライトポインタ2を移動させて各データの書き込み位置を指定し、NAND制御部12に指定した位置でのデータの書き込みを処理させるように制御する。ライトポインタ1は、エリア1の書き込み位置を指定し、ライトポインタ2は、エリア2の書き込み位置を指定する。エリア1は、ページ7に記憶されたECCのうち(図5参照)、固定値のECCを記憶する領域を示す。また、エリア2は、ページ7に記憶されたECCのうち(図5参照)、拡張された分のECCを記憶する領域を示す。このように、各ECCを分けて管理し、各ECCサイズを可変長とすることで、ECCのデータサイズを一律大きくする場合と比較して、NAND−Flashメモリ20からのデータ読出し性能が向上する。つまり、劣化しているセルに記憶されたデータについては、ECCのデータサイズを大きくして、データの誤り検出処理およびデータの訂正処理に時間を掛ける。一方、劣化していないセルに記憶されたデータについては、ECCのデータサイズを小さくして、データの誤り検出処理およびデータの訂正処理に時間を掛けないようにすることで、NAND−Flashメモリ20からのデータ読出し性能が向上する。
そして、図10の(2)に示すように、NAND制御部12は、ライトポインタ1によって指定されたエリア1の書き込み位置に固定値のECC1を格納し、およびライトポインタ2によって指定されたエリア2の書き込み位置に、拡張されたECC2を格納する。その後、DMA書込み制御部14bは、ライトポインタ1を固定値のサイズ分移動させ、また、ライトポインタ2を拡張されたECCのサイズ分移動させる。例えば、Pagex1のECCを書き込む場合には、NAND制御部12は、ライトポインタ1によって指定されたエリア1の書き込み位置に固定値のECC1を格納し、ライトポインタ2によって指定されたエリア2の書き込み位置に、拡張されたECC2を格納する。その後、DMA書込み制御部14bは、ライトポインタ1を固定値のサイズ分移動させ、また、ライトポインタ2を拡張されたECCのサイズ「a」バイト分移動させる。なお、拡張されたECCがさらに拡張された場合にも、上記と同様の処理を行う。
ECC生成部14cは、不良BLK管理テーブルに記憶されたECCのデータサイズに応じて、ECCを生成する。具体的には、ECC生成部14cは、DMA書込み制御部14bからECCの生成指示とともに、ECCのデータサイズが指示され、指示されたデータサイズのECCを生成し、ECCバッファ14dに記憶させる。
ECCバッファ14dは、ECCを一時的に記憶する。具体的には、ECCバッファ14dは、ECC生成部14cによって生成されたECCを記憶し、また、NAND制御部12によって読み出されたECCを記憶する。
DMA読出し制御部14eは、NAND−Flashメモリ20に対して、データの読出し処理を行うように制御する。例えば、DMA読出し制御部14eは、RoC30から読み出し要求を受信すると、不良BLK管理テーブルからECCサイズを読み出す。そして、DMA読出し制御部14eは、ECCサイズを基に、ECCバッファ14d上のECCデータの読出し位置を決定し、ECCデータをNAND−Flashメモリ20から読み出すための読出し要求をNAND制御部12に通知する。その後、DMA読出し制御部14eは、エラー訂正制御部14fによってエラー訂正されたデータをECCバッファ14dから取得し、RoC30に送信する。
ここで、図9および図11を用いて、ECCデータの読出し位置を決定する処理について説明する。図11は、ECCデータの読出し位置を決定する処理を説明する図である。図9に例示する不良BLK管理テーブルは、前述しようたように、ADR「1」のブロックにおけるPage x1のECCサイズが「a」、Page x3のECCサイズが「b」、Page x6のECCサイズが「c」である。
図11では、図9に例示した不良BLK管理テーブルの例を用いて、ECCデータの読出し位置を決定する処理について説明する。図11の(1)に示すように、DMA読出し制御部14eは、リードポインタ1およびリードポインタ2を移動させて各データの読出し位置を指定し、NAND制御部12に指定した位置でのデータの読出しを処理させるように制御する。ライトポイント1は、エリア1の読出し位置を指定し、ライトポインタ2は、エリア2の読出し位置を指定する。エリア1は、ページ7に記憶されたECCのうち(図5参照)、固定値のECCを記憶する領域を示す。また、エリア2は、ページ7に記憶されたECCのうち(図5参照)、拡張された分のECCを記憶する領域を示す。
そして、図11の(2)に示すように、DMA読出し制御部14eは、リードポインタ1によって指定されたエリア1の読出し位置から固定値のECC1を読出し、リードポインタ2によって指定されたエリア2の読出し位置から拡張されたECC2を読出す。その後、DMA読出し制御部14eは、リードポインタ1を固定値のサイズ分移動させ、また、リードポインタ2を拡張されたECCのサイズ分移動させる。例えば、Pagex1のECCを読出し場合には、NAND制御部12は、リードポインタ1によって指定されたエリア1の読出し位置から固定値のECC1を読み出し、ライトポインタ2によって指定されたエリア2の読出し位置から拡張されたECC2を読出す。その後、DMA読出し制御部14eは、ライトポインタ1を固定値のサイズ分移動させ、また、ライトポインタ2を拡張されたECCのサイズ「a」バイト分移動させる。
図2の説明に戻って、エラー訂正制御部14fは、各ページについて、データの読出し処理をNAND−Flashメモリ20に対して行い、ECCを用いてエラー訂正処理を行う。具体的には、エラー訂正制御部14fは、NAND制御部12によって読み出されたデータおよびECCを受信し、ECCを用いて、読み出したデータの誤りを検出し、正しいデータに訂正する処理を行う。
ここで、図12を用いて、エラー訂正符号について、説明する。図12は、エラー訂正に用いられるECCについて説明する図である。図12に例示するように、NAND−Flashメモリ20のエラー訂正にReed−Solomon符号等の線形巡回ブロック符号が用いられる。そして、Reed−Solomon符号は、NAND−Flashメモリ20に記憶されるデータ(図12の例では、情報シンボルと記載)とECCであるエラー訂正符号(図12の例では、チェックシンボルと記載)とを有する。
そして、Reed−Solomon符号のエラー訂正能力はチェックシンボルのサイズによって決まる。具体的には、エラーのシンボル数がチェックシンボル数の1/2である場合には、そのエラーシンボルを正しいデータに復元する事が出来る。つまり、チェックシンボル数を増やすと、そのシステムのエラー訂正能力が増大し、データの信頼度が向上する。
次に、図13〜図15を用いて、NAND−Flashメモリコントローラ10によるErase処理、書込み処理および読出し処理を説明する。図13は、NAND−FlashメモリコントローラのErase処理を説明する図である。図14は、NAND−Flashメモリコントローラの書き込み処理を説明する図である。図15は、NAND−Flashメモリコントローラの読出し処理を説明する図である
図13に示すように、ERS制御部14aは、RoC30からErase要求を受信すると、NAND−Flashメモリ20に記憶されたデータの消去を要求するERS要求をNAND制御部12に送信する(ステップS101)。
そして、ERS制御部14aは、Erase処理が完了したことを示す完了応答をNAND制御部12から受信する(ステップS102)。ここで、ERS制御部14aは、データを消去するのに要した時間として、ERS要求をNAND制御部12に送信してから、Erase処理が完了したことを示す完了応答をNAND制御部12から受信するまでの時間を計測する。そして、ERS制御部14aは、計測された時間に応じて、誤り訂正符号のデータサイズを決定するとともに、書込み可能な良好ブロックであるか書込み不可な不良ブロックであるかを不良BLK管理テーブルに登録する。
次に、図14を用いて、NAND−Flashメモリコントローラの書き込み処理を説明する。図14に示すように、DMA書込み制御部14bは、RoC30から書き込み要求を受信するとともに書き込み対象のデータを受信すると、不良BLK管理テーブルを読み出して、書き込み可能なブロックをサーチする(ステップS201)。つまり、不良BLK管理テーブルの不良BLKコードの項目が「0」または「1」である良好ブロックをサーチする。そして、DMA書込み制御部14bは、書き込み可能なブロックについて、不良BLK管理テーブルから各ページのECCサイズを読み出す(ステップS202)。
そして、DMA書込み制御部14bは、書き込み可能なブロックのPage#0〜#6に対して、データの書き込み処理を行うように制御する(ステップS203a〜S203g)。そして、DMA書込み制御部14bは、不良BLK管理テーブルから読み出したECCのデータサイズからECCデータのデータサイズを決定し、ECC生成部14cにECCの生成を指示する(ステップS204a〜S204g)。つまり、不良BLK管理テーブルの「ECCサイズ」の項目が「a」バイトであった場合には、初期設定の固定値に「a」バイトを加算した分のサイズでECCデータを生成させる。
そして、DMA書込み制御部14bは、ECCサイズを基に、ECCデータの書き込み位置を決定し、ECCデータをNAND−Flashメモリ20に書込み要求を送信する(ステップS205)。これにより、Eraseに要した時間が長いページほど、大きいサイズのECCを作成することで、劣化したページほどデータサイズの大きいECCを作成できる結果、フラッシュメモリ内のデータの信頼性を向上させることができる。
次に、図15を用いて、NAND−Flashメモリコントローラの読出し処理を説明する。図15に示すように、DMA読出し制御部14eは、RoC30から読み出し要求を受信すると、不良BLK管理テーブルからECCサイズを読み出す(ステップS301、S302)。そして、DMA読出し制御部14eは、ECCサイズを基に、ECCデータの読出し位置を決定し、ECCをNAND−Flashメモリ20から読み出すための読出し要求をNAND制御部12に通知する(ステップS303)。その後、DMA読出し制御部14eは、ECCデータを取得し(ステップS304)、エラー訂正制御部14fに通知する(図示せず)。
そして、DMA読出し制御部14eは、読出し対象のPage#0〜#6について、データをNAND−Flashメモリ20から読み出すための読出し要求をNAND制御部12に通知する(ステップS305a〜S305g)。続いて、エラー訂正制御部14fは、Page#0〜#6について、NAND制御部12によって読み出されたデータおよびECCを受信し(ステップS306a〜S306g)、ECCを用いて、読み出したデータの誤りを検出し、正しいデータに訂正する処理を行う。その後、DMA読出し制御部14eは、Page#0〜#6について、エラー訂正制御部14fによってエラー訂正されたデータをECCバッファ14dから受信し(ステップS307a〜S307g)、RoC30に送信する。
[NAND−Flashメモリコントローラによる処理]
次に、図16〜図18を用いて、実施例1に係るNAND−Flashメモリコントローラ10による処理を説明する。図16は、実施例1に係るNAND−FlashメモリコントローラのErase処理の動作を示すフローチャートである。図17は、実施例1に係るNAND−Flashメモリコントローラの書き込み処理の動作を示すフローチャートである。図18は、実施例1に係るNAND−Flashメモリコントローラの読出し処理の動作を示すフローチャートである。
まず、図16を用いて、実施例1に係るNAND−FlashメモリコントローラのErase処理について説明する。図16に示すように、NAND−Flashメモリコントローラ10は、RoC30からErase要求を受信すると(ステップS401肯定)、NAND−Flashメモリ20に対するErase処理を行う(ステップS402)。
そして、NAND−Flashメモリコントローラ10は、Erase処理に要した時間を計測し(ステップS403)、Erase処理に要した時間からECCサイズを決定する(ステップS404)。そして、NAND−Flashメモリコントローラ10は、ECCサイズをNAND不良BLK管理テーブルに登録する(ステップS405)。
次に、図17を用いて、実施例1に係るNAND−Flashメモリコントローラ10の書き込み処理について説明する。図17に示すように、NAND−Flashメモリコントローラ10は、RoC30から書き込み要求を受信すると(ステップS501肯定)、不良BLK管理テーブルからECCサイズを読み出す(ステップS502)。そして、NAND−Flashメモリコントローラ10は、各ページについて、NAND−Flashメモリ20に対するデータ書き込み処理を行う(ステップS503)。
そして、NAND−Flashメモリコントローラ10は、不良BLK管理テーブルから読み出したECCサイズに応じて、ECCデータを生成する(ステップS504)。つまり、不良BLK管理テーブルの「ECCサイズ」の項目に記憶されたサイズ分を拡張したECCデータを生成する。そして、NAND−Flashメモリコントローラ10は、ECCサイズを基に、ECCデータの書き込み位置を決定する(ステップS505)。その後、NAND−Flashメモリコントローラ10は、ECCデータをNAND−Flashメモリ20に書き込む(ステップS506)。
次に、図18を用いて、実施例1に係るNAND−Flashメモリコントローラ10の読出し処理について説明する。図18に示すように、NAND−Flashメモリコントローラ10は、RoC30から読み出し要求を受信すると(ステップS601肯定)、不良BLK管理テーブルからECCサイズを読み出す(ステップS602)。
そして、NAND−Flashメモリコントローラ10は、ECCサイズを基に、ECCデータの読出し位置を決定し(ステップS603)、ECCデータをNAND−Flashメモリ20から読み出す(ステップS604)。続いて、NAND−Flashメモリコントローラ10は、各ページについて、データの読出し処理をNAND−Flashメモリ20に対して行い(ステップS605)、ECCを用いてエラー訂正処理を行う(ステップS606)。
[実施例1の効果]
上述してきたように、NAND−Flashメモリコントローラ10は、NAND−Flashメモリ20に記憶されたデータの消去に要した時間を計測し、計測された時間に応じて、誤り訂正符号のデータサイズを決定する。そして、NAND−Flashメモリコントローラ10は、決定されたデータサイズの誤り訂正符号を生成し、生成された誤り訂正符号をNAND−Flashメモリ20に書き込むように制御する。このため、データの信頼性を向上させることが可能である。
つまり、Eraseに要した時間が長いページほど、大きいサイズのECCを作成することで、劣化したページほどデータサイズの大きいECCを作成できる結果、フラッシュメモリ内のデータの信頼性を向上させることができる。
また、実施例1によれば、NAND−Flashメモリコントローラ10は、決定された誤り訂正符号のデータサイズを記憶する不良BLK管理テーブル記憶部13を有する。NAND−Flashメモリコントローラ10は、NAND−Flashメモリ20に記憶されたデータを書き込む際に、不良BLK管理テーブル記憶部13から誤り訂正符号のデータサイズを読出す。そして、NAND−Flashメモリコントローラ10は、誤り訂正符号のデータサイズに応じて、生成された誤り訂正符号の書込み位置を決定し、書込み位置に誤り訂正符号を書き込むように制御する。このため、誤り訂正符号のデータサイズが変化した場合であっても、誤り訂正符号をNAND−Flashメモリ20に適切に書き込むことが可能である。
また、実施例1によれば、NAND−Flashメモリコントローラ10は、決定された誤り訂正符号のデータサイズを記憶する不良BLK管理テーブル記憶部13を有する。そして、NAND−Flashメモリコントローラ10は、NAND−Flashメモリ20に記憶されたデータを読出す際に、不良BLK管理テーブル記憶部13から誤り訂正符号のデータサイズを読出す。そして、NAND−Flashメモリコントローラ10は、誤り訂正符号のデータサイズに応じて、NAND−Flashメモリ20に記憶された誤り訂正符号の読出し位置を決定し、読出し位置から誤り訂正符号を読出すように制御する。このため、誤り訂正符号のデータサイズが変化した場合であっても、誤り訂正符号をNAND−Flashメモリ20から適切に読み出すことが可能である。
また、実施例1によれば、NAND−Flashメモリコントローラ10は、NAND−Flashメモリ20におけるデータを記憶しているページと異なるページに誤り訂正符号を書き込むように制御する。このため、同一ページ上で誤り訂正符号のみを管理することができ、誤り訂正符号のデータサイズが変化した場合であっても、誤り訂正符号の管理を容易にすることが可能である。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では実施例2として本発明に含まれる他の実施例を説明する。
(1)システム構成等
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、DMA書込み制御部14bとECC生成部14cを統合してもよい。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
(2)プログラム
なお、本実施例で説明した誤り訂正制御方法は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することもできる。
10 NAND−Flashメモリコントローラ
11 I/F制御部
12 NAND制御部
13 不良BLK管理テーブル記憶部
14 DMAエンジン
14a ERS制御部
14b DMA書込み制御部
14c ECC生成部
14d ECCバッファ
14e DMA読出し制御部
14f エラー訂正制御部
20 NAND−Flashメモリ
30 RoC
40 SCU
50 Exp
60 キャッシュメモリ
101 PSU
102a〜102z HDD

Claims (6)

  1. 記憶装置のデータ記憶領域に記憶されたデータの消去に要した時間をデータの消去の要求のたびに計測する計測部と、
    前記計測部によって計測された時間が標準値より短い場合に予め設定された所定サイズを、前記計測された時間が前記標準値よりも長く所定値より短い場合に前記計測された時間と前記所定サイズに基づいて算出した値を、消去の対象のデータ記憶領域における誤り訂正符号のデータサイズに決定する決定部と、
    前記決定部によって決定されたデータサイズの誤り訂正符号を生成する生成部と、
    前記生成部によって生成された誤り訂正符号を前記記憶装置に書き込むように制御する書込み制御部と
    を有することを特徴とするアクセス制御装置。
  2. 前記計測部により計測された時間が前記標準値の2倍である前記所定値以上である場合に、前記消去の対象のデータ記憶領域を不良領域とする管理情報を記憶する第1記憶部をさらに有する
    ことを特徴とする請求項に記載のアクセス制御装置。
  3. 読出し制御部と、前記決定部によって決定された誤り訂正符号のデータサイズを記憶する第2記憶部とをさらに有し、
    前記書込み制御部は、前記記憶装置にデータを書き込む際に、前記第2記憶部から前記誤り訂正符号のデータサイズを読出し、該誤り訂正符号のデータサイズに応じて、前記生成部によって生成された誤り訂正符号の書込み位置を決定し、該書込み位置に前記誤り訂正符号を書き込むように制御し、
    前記読出し制御部は、前記記憶装置に記憶されたデータを読出す際に、前記記憶部から前記誤り訂正符号のデータサイズを読出し、該誤り訂正符号のデータサイズに応じて、前記記憶装置に記憶された誤り訂正符号の読出し位置を決定し、該読出し位置から前記誤り訂正符号を読出すように制御する
    ことを特徴とする請求項1または2に記載のアクセス制御装置。
  4. 前記書込み制御部は、前記記憶装置におけるデータを記憶している記憶領域と異なる記憶領域に誤り訂正符号を書き込むように制御し、
    前記異なる記憶領域は、前記所定サイズの誤り訂正符号を書き込む領域と拡張された分を書き込む領域を有する
    ことを特徴とする請求項1乃至のいずれか一つに記載のアクセス制御装置。
  5. 記憶装置へのアクセスを制御するアクセス制御装置が誤り訂正符号を生成する誤り訂正制御方法であって、
    記憶装置のデータ記憶領域に記憶されたデータの消去に要した時間をデータの消去の要求のたびに計測し、
    計測した時間が標準値より短い場合に予め設定された所定サイズを、前記計測した時間が前記標準値よりも長く所定値より短い場合に前記計測した時間と前記所定サイズに基づいて算出した値を、消去の対象のデータ記憶領域における誤り訂正符号のデータサイズに決定し、
    決定したデータサイズの誤り訂正符号を生成し、
    生成した誤り訂正符号を前記記憶装置に書き込むように制御する
    ことを特徴とする誤り訂正制御方法。
  6. 記憶装置のデータ記憶領域に記憶されたデータの消去に要した時間をデータの消去の要求のたびに計測する計測部と、
    前記計測部によって計測された時間が標準値より短い場合に予め設定された所定サイズを、前記計測された時間が前記標準値よりも長く所定値より短い場合に前記計測された時間と前記所定サイズに基づいて算出した値を、消去の対象のデータ記憶領域における誤り訂正符号のデータサイズに決定する決定部と、
    前記決定部によって決定されたデータサイズの誤り訂正符号を生成する生成部と、
    前記生成部によって生成された誤り訂正符号を前記記憶装置に書き込むように制御する書込み制御部と
    を有することを特徴とするストレージ装置。
JP2010269042A 2010-12-02 2010-12-02 アクセス制御装置、誤り訂正制御方法およびストレージ装置 Expired - Fee Related JP5720210B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010269042A JP5720210B2 (ja) 2010-12-02 2010-12-02 アクセス制御装置、誤り訂正制御方法およびストレージ装置
US13/297,972 US8839072B2 (en) 2010-12-02 2011-11-16 Access control apparatus, storage apparatus, and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010269042A JP5720210B2 (ja) 2010-12-02 2010-12-02 アクセス制御装置、誤り訂正制御方法およびストレージ装置

Publications (2)

Publication Number Publication Date
JP2012118839A JP2012118839A (ja) 2012-06-21
JP5720210B2 true JP5720210B2 (ja) 2015-05-20

Family

ID=46163423

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010269042A Expired - Fee Related JP5720210B2 (ja) 2010-12-02 2010-12-02 アクセス制御装置、誤り訂正制御方法およびストレージ装置

Country Status (2)

Country Link
US (1) US8839072B2 (ja)
JP (1) JP5720210B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8924630B2 (en) * 2011-06-21 2014-12-30 Taejin Info Tech Co., Ltd. Semiconductor storage device-based high-speed cache storage system
US8914706B2 (en) 2011-12-30 2014-12-16 Streamscale, Inc. Using parity data for concurrent data authentication, correction, compression, and encryption
US8683296B2 (en) 2011-12-30 2014-03-25 Streamscale, Inc. Accelerated erasure coding system and method
US10346095B2 (en) * 2012-08-31 2019-07-09 Sandisk Technologies, Llc Systems, methods, and interfaces for adaptive cache persistence
JP6033183B2 (ja) * 2013-07-31 2016-11-30 京セラドキュメントソリューションズ株式会社 画像形成装置、及び画像形成装置の起動方法
KR20150062646A (ko) * 2013-11-29 2015-06-08 삼성전자주식회사 전자 시스템 및 이의 동작 방법
JP6102800B2 (ja) * 2014-03-04 2017-03-29 ソニー株式会社 メモリコントローラ、記憶装置、情報処理システム、および、それらにおける制御方法。
US9798622B2 (en) * 2014-12-01 2017-10-24 Intel Corporation Apparatus and method for increasing resilience to raw bit error rate
JP6814020B2 (ja) * 2016-10-26 2021-01-13 キヤノン株式会社 情報処理装置とその制御方法、及びプログラム
JP6847635B2 (ja) * 2016-11-14 2021-03-24 株式会社東芝 メモリ管理装置、映像収録再生装置、メモリ管理方法、映像収録再生方法及びコンピュータプログラム

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6961890B2 (en) * 2001-08-16 2005-11-01 Hewlett-Packard Development Company, L.P. Dynamic variable-length error correction code
US8412879B2 (en) 2002-10-28 2013-04-02 Sandisk Technologies Inc. Hybrid implementation for error correction codes within a non-volatile memory system
JP4236485B2 (ja) 2003-03-06 2009-03-11 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4357305B2 (ja) 2004-01-09 2009-11-04 株式会社バッファロー 外部記憶装置
US7739577B2 (en) * 2004-06-03 2010-06-15 Inphase Technologies Data protection system
EP1776699A1 (en) * 2004-08-02 2007-04-25 Koninklijke Philips Electronics N.V. Data storage and replay apparatus
US8200887B2 (en) * 2007-03-29 2012-06-12 Violin Memory, Inc. Memory management system and method
US7451264B2 (en) * 2006-04-13 2008-11-11 Sandisk Corporation Cycle count storage methods
JP2007316779A (ja) * 2006-05-23 2007-12-06 Sharp Corp 不揮発性メモリシステム
US8122323B2 (en) * 2007-03-08 2012-02-21 Intel Corporation Method, apparatus, and system for dynamic ECC code rate adjustment
KR100909902B1 (ko) * 2007-04-27 2009-07-30 삼성전자주식회사 플래쉬 메모리 장치 및 플래쉬 메모리 시스템
KR101431760B1 (ko) * 2008-06-25 2014-08-20 삼성전자주식회사 Ecc 알고리즘을 이용한 플래시 메모리 장치 및 그구동방법
JP4439578B1 (ja) 2008-12-24 2010-03-24 株式会社東芝 不揮発性半導体メモリドライブ装置および不揮発性半導体メモリドライブ装置のデータ管理方法
KR101653568B1 (ko) * 2009-07-03 2016-09-02 삼성전자주식회사 부분 셀프 리플레시 모드에서 전류 소모를 줄일 수 있는 반도체 메모리 장치
US20110252289A1 (en) * 2010-04-08 2011-10-13 Seagate Technology Llc Adjusting storage device parameters based on reliability sensing
JP5569936B2 (ja) * 2010-08-11 2014-08-13 国立大学法人 東京大学 制御装置およびデータ記憶装置
WO2012058328A1 (en) * 2010-10-27 2012-05-03 Sandforce, Inc. Adaptive ecc techniques for flash memory based data storage

Also Published As

Publication number Publication date
US8839072B2 (en) 2014-09-16
JP2012118839A (ja) 2012-06-21
US20120144268A1 (en) 2012-06-07

Similar Documents

Publication Publication Date Title
JP5720210B2 (ja) アクセス制御装置、誤り訂正制御方法およびストレージ装置
JP4901968B2 (ja) 半導体記憶装置
US9684468B2 (en) Recording dwell time in a non-volatile memory system
US9952795B2 (en) Page retirement in a NAND flash memory system
US8972776B2 (en) Partial R-block recycling
US7941696B2 (en) Flash-based memory system with static or variable length page stripes including data protection information and auxiliary protection stripes
US8392797B2 (en) Error correcting controller, flash memory chip system, and error correcting method thereof
KR101343262B1 (ko) 동시 판독 및 기록 메모리 동작을 수행하는 방법 및 장치
JP2009129070A (ja) フラッシュメモリ記憶装置の制御方法、その方法を用いたフラッシュメモリ記憶装置及びストレージシステム
MX2012010944A (es) Detección de distribución de paridad no regulada vía etiqueta de metadatos.
JP2011165063A (ja) 半導体記憶装置
US20140108855A1 (en) Heuristic Approach for Faster Consistency Check in a Redundant Storage System
JP6515752B2 (ja) ストレージ制御装置、制御方法、および制御プログラム
CN103218271B (zh) 一种数据纠错方法及装置
US9754682B2 (en) Implementing enhanced performance with read before write to phase change memory
KR20160074025A (ko) 데이터 저장 장치의 동작 방법
US11467758B2 (en) Data writing method using different programming modes based on the number of available physical erasing units, memory control circuit unit and memory storage device
JP2010079856A (ja) 記憶装置およびメモリ制御方法
US10733069B2 (en) Page retirement in a NAND flash memory system
JP2019128948A (ja) 集積回路装置及びストレージ装置
TWI467364B (zh) 記憶體儲存裝置、記憶體控制器與資料寫入方法
JP2018067072A (ja) 半導体記憶装置及びその制御方法
TW201438019A (zh) 具有使用歷程記錄的主記憶體模組以及此主記憶體模組於電腦系統之應用
WO2021082011A1 (zh) 应用于磁盘阵列系统的数据重构方法、装置及计算设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130904

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140408

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140609

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20141021

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150120

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20150128

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150224

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150309

R150 Certificate of patent or registration of utility model

Ref document number: 5720210

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees