JP6437428B2 - 不揮発性半導体メモリのコントローラ - Google Patents

不揮発性半導体メモリのコントローラ Download PDF

Info

Publication number
JP6437428B2
JP6437428B2 JP2015254003A JP2015254003A JP6437428B2 JP 6437428 B2 JP6437428 B2 JP 6437428B2 JP 2015254003 A JP2015254003 A JP 2015254003A JP 2015254003 A JP2015254003 A JP 2015254003A JP 6437428 B2 JP6437428 B2 JP 6437428B2
Authority
JP
Japan
Prior art keywords
data
data string
semiconductor memory
level
nonvolatile semiconductor
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.)
Active
Application number
JP2015254003A
Other languages
English (en)
Other versions
JP2016212828A (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.)
Kioxia Corp
Original Assignee
Toshiba Memory Corp
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 Toshiba Memory Corp filed Critical Toshiba Memory Corp
Publication of JP2016212828A publication Critical patent/JP2016212828A/ja
Application granted granted Critical
Publication of JP6437428B2 publication Critical patent/JP6437428B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels

Description

本発明の実施形態は、不揮発性半導体メモリのコントローラに関する。
不揮発性半導体メモリとしてのNANDフラッシュメモリは、1つのメモリセルに複数の閾値電圧を用いて例えばマルチレベルのデータを記憶することができる。メモリセルに高い閾値電圧が繰り返し書き込まれると、メモリセルのトンネル酸化膜が劣化し、メモリセルの寿命が短くなる。また、ワード線方向、又はビット線方向に隣接して配置された複数のメモリセルの閾値電圧の差が大きい場合、低い閾値電圧を有するメモリセルの閾値電圧が変化し、例えばプログラムディスターブが生じる。
米国特許出願公開第2014/0136927A1号明細書 米国特許第8122323B2号明細書 特開2011−203878号公報
本実施形態は、メモリセルの耐久性が向上し、メモリセルの寿命を伸ばすことが可能な不揮発性半導体メモリのコントローラを提供する。
本実施形態は、nレベル(nは、3以上の自然数)のデータをページ単位に記憶する不揮発性半導体メモリのコントローラであって、前記不揮発性半導体メモリに書き込まれる複数のデータを含み、前記ページの長さより短い第1の長さを有する第1のデータ列から前記第1のデータ列より短い第2のデータ列を抽出する抽出部と、前記第2のデータ列から変換された第3のデータ列に含まれる隣接する2つのデータに対応する前記不揮発性半導体メモリの閾値電圧の差が第1のレベル差である場合、前記第3のデータ列を前記第3のデータ列より長く、前記第1のレベル差より小さな第2のレベル差を有する第4のデータ列に変換する変換部と、を具備する。
本実施形態に係るコントローラの一例を示すものであり、データの書き込み系を概略的に示す構成図。 本実施形態に適用されるページの一例を概略的に示す図。 本実施形態に適用されるNANDフラッシュメモリの一例を概略的に示す図。 NANDフラッシュメモリの閾値電圧の一例を示す図。 NANDフラッシュメモリのプログラムディスターブの一例を示す図。 図1に示すエンコーダの概略的な動作を示す図。 エンコーダの一例を概略的に示す構成図。 エンコーダの動作を概略的に示すフローチャート。 図9(a)は、入力データの一例を示す図、図9(b)は、エンコーダの動作を示す図、図9(c)は、コードブックの一例を示す図。 図1に示すECC移動部の動作を概略的に示す図。 ECC移動部の動作を概略的に示すフローチャート。 本実施形態に係るコントローラの一例を示すものであり、データの読み出し系を概略的に示す構成図。 図12の動作を概略的に示すフローチャート。 本実施形態に係るコントローラが適用されるSSDの一例を示す構成図。
以下、実施の形態について、図面を参照して説明する。
以下、図面を参照して本実施形態について説明する。図面において、同一部分には同一符号を付している。
図1は、本実施形態に係るNANDフラッシュメモリ(以下、NANDと称す)14を制御するコントローラ10の一例を概略的に示している。図1は、データの書き込み系のみを示している。コントローラ10は、エンコーダ11、error correction code(ECC)エンコーダ12、及びECC移動部13を含んでいる。
エンコーダ11は、NAND14の耐久性、及びプラグラムディスターブを改善するため、入力された書き込みデータDwの変換処理を行う。ECCエンコーダ12は、エンコーダ11から供給されたデータにECCを付加する。ECC移動部13は、データに付加されたECCの位置をページ内で移動させ、ECCに関して所謂ウェアレべリング(wear leveling)を行なう。
NAND14は、例えばマルチレベルメモリであり、2ビット以上のデータにより複数の閾値電圧のうちの1つがメモリセルに記憶される。NAND14は、図示せぬ複数のブロックを含み、各ブロックは、複数のページを含む。本実施形態において、ブロックは、データの消去単位である。ページは、データの書き込み単位であり、書き込みデータ及びECCを含む。
図2は、ページの一例を示している。ページの長さ、及びページ内のデータの長さ(データ長、又はビット長)は一定であり、ECCが付加されるECC領域の長さ(データ長、又はビット長)も一定である。しかし、ページ内のデータ長、及びECC領域のデータ長を管理することにより、データ長、及びECC領域のデータ長を可変とすることも可能である。また、ページ内のデータ領域は、後述するコードブックを含み、コードブックが記録される位置や、ECC領域の位置は、後述するように、変更可能とされている。
図3は、NAND14の構成の一例を概略的に示している。図3に示すように、NAND14は、管理領域14aとデータ領域14bを有している。管理領域14aとデータ領域14bは、それぞれ消去単位としての複数のブロックを有している。データ領域は、例えばユーザデータを記録する領域であり、管理領域14aは、NAND14の各種管理情報を記録する領域である。
管理領域14aは、例えば第1のテーブルTaと、第2のテーブルTbを含んでいる。第1のテーブルTaは、ブロック毎の書き込み回数、及び消去回数を管理する。第1のテーブルTaの内容は、各ブロックが書き込み、又は消去される毎に更新される。第2のデーブルTbは、後述するように、ページ内のECC領域の位置を例えばブロック単位で管理する。
図4は、NAND14の各メモリセルに設定される閾値電圧と書き込みデータの関係を示している。図4に示すように、NAND14は、例えば複数の閾値電圧を用いてマルチレベルのデータを記憶することが可能である。図4は、例えば2ビット、4レベルの閾値電圧の分布を示している。2ビットのデータをメモリセルに記憶する場合、ロワーページのデータと、アッパーページのデータにより“E”“A”“B”“C”の分布を有する閾値電圧が設定される。
以下、閾値電圧の分布“E”“A”“B”“C”を、レベル“E”“A”“B”“C”とも言う。レベル“E”は、消去レベルを示し、レベル“E”“A”“B”“C”は、閾値電圧Vthが“E”“A”“B”“C”の順に高く設定されている。すなわち、これらレベルの関係は、“E”<“A”<“B”<“C”である。
4レベルのうち、例えば最も閾値電圧が高いレベル“C”がメモリセルに頻繁に書き込まれた場合、メモリセルのゲート絶縁膜が劣化し、メモリセルの寿命が短くなる。このため、メモリセルに対するレベル“C”の書き込み回数を低減する必要がある。
また、NAND14は、行方向(例えば図示せぬワード線に沿った方向)に隣接する複数のメモリセルに同時にデータが書き込まれる。図5に示すように、行方向に隣接するビット線BLn−1、BLn、BLn+1に接続される図示せぬ1ページ内の複数のメモリセルに書き込まれるレベルが、例えば“E”“C”“E”のようなパターンである場合、レベル“E”とレベル“C”は、大きなレベル差を有している。このように、レベル“E”に対して大きなレベル差を有するレベル“C”を書き込む際、レベル“E”の閾値電圧が変化し、エラーが発生する。
この現象は、列方向(例えば1つのビット線に沿った方向)に隣接する図示せぬ複数のメモリセルに対して、レベル差の大きなデータを書き込む場合にも発生する。このように、行方向、又は列方向に隣接する複数のメモリセルのレベル差が大きい場合、低いレベル(閾値電圧)が上昇し、所謂プログラムディスターブが発生する。
プログラムディスターブを抑制するため、隣接する複数のメモリセルのレベル差を小さくする必要がある。このため、高い閾値電圧であるレベル“C”の書き込みを抑制する必要がある。
(エンコーダ)
図6は、図1に示すエンコーダ11の概略的な動作を示している。
図6において、Dwは、例えば行方向に隣接して配置された複数のメモリセルに書き込まれる複数のデータを含むデータ列の一例を示している。このデータ列Dwは、各メモリセルに書き込まれるデータを、各メモリセルに設定されるレベルとして示している。
図6に示すように、データ列Dwによりメモリセルに設定されるレベルのパターンが、例えば“C”“E”“C”“B”である場合、図1に示すエンコーダ11は、このデータDwからレベル差(閾値電圧の差)が大きなレベルのパターン、例えば“C”“E”を探索する。レベルパターン“C”“E”が見つかった場合、エンコーダ11は、レベルパターン“C”“E”を、レベルパターン“C”“E”のレベル差より小さなレベル差で、例えばデータ列Dw内に出現しないレベルパターンに変換する。換言すると、エンコーダ11は、隣接セル間の干渉が大きい符号を拡張することにより、干渉の小さい符号に置き換える。ここで、符号とは、データを構成する“0”又は“1”のビットの集合により情報を表現する目的で示された記号である。尚、置き換えた符号が他の符号と識別することが可能であれば、データ列Dw内に出現するレベルパターンを用いることも可能である。
図6に示す例の場合、レベルパターン“C”“E”は、例えばレベルパターン“B”“B”“E”に置き換えられる。エンコーダ11は、この探索、及び変換処理をページ内で繰り返す。
変換後のレベルパターン“B”“B”“E”は、元のレベルパターン“C”“E”よりデータ長(ビット長)が長い。このため、エンコーダ11は、探索及び変換処理を繰り返すことにより、変換後のデータ長が予め定められたページ内のデータ長を超えると判断された場合、探索及び変換処理を中止する。このため、変換後のデータ長は、予め定められたページ内のデータ長を超えない。すなわち、変換処理は、予め定められたページ内のデータ長以内で実行される。変換処理を中止したことにより、ページ内の残りのデータ内にレベルパターン“C”“E”が有る場合、このレベルパターン“C”“E”は、変換されずに残る。したがって、本実施形態は、メモリセルの耐久性の劣化、及びプログラムディスターブを若干許容する。
尚、探索及び変換処理は、列方向に配置された複数のメモリセルに書き込まれるデータのパターンに関しても同様に行なうことが可能である。この場合、例えば1ブロック分のデータを保持することが可能な例えばバッファメモリを設け、バッファメモリに保持されたデータについて、列方向に上述した探索を行い、探索結果に基づき、変換処理を行えばよい。
図7は、エンコーダ11の一例を示している。図7に示すように、エンコーダ11は、エントロピー解析部(抽出部)11aと、変換部11bを含んでいる。
エントロピー解析部11aは、例えばページ単位に入力されたデータDwのビット列から特定のビットパターン毎に、そのビットパターンの出現する確率、又は回数を求める。さらに、エントロピー解析部11aは、求められた例えばビットパターン毎の出現回数を大きい順に並べる。
変換部11bは、エントロピー解析部11aの解析結果に基づき、各ビットパターンを圧縮するための変換コードを含むコードブック11cを生成する。
また、変換部11bは、コードブック11cの変換コードに従って、解析された特定のビットパターンをコードに変換する。さらに、変換部11bは、例えば予め設定されたパラメータPを受ける。このパラメータPは、例えばNAND14の耐久性や特性を改善するためのパラメータであり、例えばレベル差の大きなビットパターンを示すコードである。変換部11bは、前述した変換コードに従って変換されたコード内からパラメータPで示されるコードを探索する。パラメータPで示されるコードが見つかった場合、このコードをレベル差の小さなビットパターンに対応する別のコードに変換する。この変換処理は、後述するように、例えばコードを伸張する伸張処理である。
さらに、変換部11bは、コードブック11cのレベル差の大きなコードをレベル差の小さなビットパターンに対応する別のコードで更新する。このコードブック11cは、データ列の例えば末尾に付加される。
図8、図9(a)(b)(c)は、エンコーダ11の動作の一例を示している。図8、図9(a)(b)(c)を参照して、エンコーダ11の動作についてさらに説明する。
エントロピー解析部11aは、例えばページ単位に入力されたデータ列Dwから特定のビットパターンの出現回数を求める(S1)。ここで、出現回数とは、データ列Dwに含まれる特定のビットパターン毎の数である。
具体的には、図9(a)に示すようなデータ列Dwがある場合、このデータ列Dwから、特定のビットパターン、例えば“0000”“1100”“111”…の出現する回数が、ビットパターン毎に計数される。この計数された出現回数は、多い順に並べられる。
つまり、図9(b)に示すように、“0000”の出現回数がm個、“1100”の出現回数がn個、“111”の出現回数がp個(m>n>p)…のように、特定のビットパターン毎に出現回数が計数される。出現回数m、n、p…は、多い順に並べられる。このように、特定のビットパターンを探索することにより、データ列Dw中に出現しないビットパターンが判明する。
尚、メモリセルに記憶されるデータが2ビット、4レベルにより構成される場合、上述したように、2ページによりデータが構成される。このため、例えば例えば2ページ分のバッファメモリが設けられる。これらバッファメモリ内の2ページのデータ列から特定のビットパターン毎に出現回数が計数され、出現回数が多い順に並べられる。
また、3ビット、8レベル以上のデータについては、3ページ以上のバッファメモリを設け、3ページ以上のデータ列について上記処理が実行される。
変換部11bは、エントロピー解析部11aの解析結果に基づき、ページ毎にビット長を圧縮するための変換コードなどの変換情報を含むコードブック11cを生成し、このコードブック11cに基づき、入力されたデータ列Dwを圧縮処理する(S2)。
図9(c)は、コードブック11cの一例を示している。コードブック11cは、変換情報として、例えばエントロピー解析部11aで求められた特定のビットパターン毎の出現回数、及び又は特定のビットパターンの出現位置、特定のビットパターンに対応して生成された変換コードを含んでいる。コードブック11cの構成は、これに限定されるものではなく、変形可能である。
変換部11bは、コードブック11cの変換コードに基づき、データ列Dwを圧縮する。具体的には、図9(b)に示すように、最も出現回数の多いビットパターン“0000”は、変換コードに基づき、例えばコード“0”に変換され、次に出願回数の多いビットパターン“1100”は、例えばコード“01”に変換され、次に出願回数の多いビットパターン“111”は、例えばコード“10”に変換される。このため、ビットパターン“0000”は、4ビット×mが、1/4mに圧縮され、ビットパターン“1100”は、4ビット×nが、1/2nに圧縮される。ビットパターン“111”は、3ビット×pが、2/3pに圧縮される。
さらに、変換部11bは、パラメータPに基づき、変換後のコード内に、レベル差が最も大きいレベルパターンに対応するコードがあるかどうかを探索する(S3)。この結果、レベル差が最も大きいレベルパターンに対応するコードが見つかった場合、このコードを、レベル差が小さいコードに変換する(S4)。
具体的には、図9(b)に示すように、例えばパラメータPが最もレベル差が大きいレベルパターン“C”“E”に対応するコード“10”を示す場合、変換後のコードからコード“10”が探索される。このコード“10”が見つかった場合、変換後のコード“10”が、レベルパターン“C”“E”より小さいレベル差を有する例えばレベルパターン“B”“B”“E”に対応するコード、例えば“110”に変換される。このコード“110”は、エントロピー解析部11aにおいて、解析されたデータ列Dwに出現しないコードである。このように、閾値電圧のレベル差が最も高いレベルパターン“C”“E”は、レベル差が小さなレベルパターン“B”“B”“E”に変換される。レベルパターン“B”“B”“E”は、レベルパターン“C”“E”より伸張されることとなる。
このレベル差が小さなレベルパターン“B”“B”“E”に対応するコード“110”により、コードブック11cの変換コードとしてのコード“10”が更新される(S5)。
上記変換処理により、変換前のデータ列Dwは、原則として圧縮されるが、閾値電圧のレベル差が最も高いレベルパターンについては、変換後のビット長が、変換前のビット長より長くなる。
変換部11bは、上記探索と、変換処理をデータ列Dwに対して繰り返す(S6−S3)。この処理の途中で、変換されたデータのビット長が、例えば予め設定されたページ内のデータのビット長を超えた場合、変換部11bは、変換処理を中止する。換言すると、変換処理は、予め定められたページ内のデータ長以内で実行される。
この後、生成されたコードブック11cがページ内のデータ列の例えば末尾に付加される(S7)。
尚、メモリセルに記憶されるデータが2ビット、4レベルにより構成される場合、変換部11bは、上記変換動作により、例えば2ページ分のデータを生成し、メモリセルに記憶されるデータが3ビット、8レベル以上により構成される場合、3ページ以上のデータを生成する。
また、変換部11bに供給されるパラメータPは1つに限定されるものではなく、複数のパラメータを設定してもよい。すなわち、上記説明はパラメータPとして最もレベル差が大きいレベルパターン“C”“E”に対応するコード“10”を探索した。しかし、これに加えて、次にレベル差が大きいレベルパターン“C”“A”又は“B”“E”に対応するコードをパラメータとして設定し、このコードを探索してレベル差が小さな別のコードに変換してもよい。
(ECCエンコーダ)
図1に示すECCエンコーダ12は、例えば組織符号を使用してエンコーダ11から供給されたコードブック11cを含むデータ列にエラー訂正用のデータとしてのエラー訂正符号(ECC)を付加する。組織符号としては、例えばハミング符号、BHC符号、リードソロモン符号などがあるが、誤り訂正の最小単位が複数ビットのリードソロモン符号が適用される。しかし、リードソロモン符号に限定されるものではない。組織符号は、データ列とECCが分離されている。したがって、コードブック11cを含むデータ列の内容は変更されないため、上記圧縮又は伸張されたデータ列の状態、及びコードブック11cの内容を保持することができる。
(ECC移動部)
上記ECCエンコーダ12により、組織符号によりデータ列に付加されるECCは、上記変換処理が行われていない。このため、ECCがレベル“C”のデータを含む可能性があり、レベル“C”のデータの出現確率が高いことも考えられる。このため、ページ内でECCが付加される領域(以下、ECC領域と称す)の位置がページに対して固定されている場合、ECC領域のメモリセルは、頻繁にレベル“C”のデータが書き込まれることとなる。したがって、ECC領域のメモリセルは、データが書き込まれるメモリセルより、劣化する可能性が高い。
図1に示すECC移動部13は、ページ内のECC領域の位置を例えばブロックのアクセス回数、具体的には、ブロックに対する例えば書き込み回数及び/又は消去回数に基づき移動させる。
図3に示すように、NAND14の各ブロックは、ブロック毎に書き込み回数や消去回数が第1のテーブルTaにより管理されている。ECC移動部13は、例えば書き込み対象のブロックの書き込み回数が基準値を超えた場合、ページ内のECC領域の位置を変更する。
すなわち、図10に示すように、ECC領域は、最初、ページ内の例えばMSB(most significant bit)近傍に設けられる。書き込み対象のブロックの書き込み回数が基準値を超える毎に、ページ内のECC領域の位置は、例えばMSBからLSB(least significant bit)方向に移動される。
具体的には、ECC移動部13は、例えばシフトレジスタにより構成され、シフトレジスタ内のデータが、ブロックの書き込み回数に基づき、MSBからLSB方向にサーキュラシフトされる。すなわち、シフト動作に従ってLSB側から出力されたデータは、MSB側に入力される。このようにして、ページ内のECC領域の位置が変化される。ECC領域の移動方向、及び移動位置は、これに限定されるものではなく、ページ内のECC領域の位置が変化すればよい。
図11は、ECC移動部13の動作の一例を示している。ECC移動部13は、データの書き込み時、第1のテーブルTaに記録された書き込み対象のブロックの書き込み回数と基準値とを比較する(S11)。この比較の結果、書き込み回数が基準値を超えている場合、ECC領域がページ内で移動される(S12)。この後、NAND14の第2のテーブルTbが新たなECC領域の位置情報により更新される(S13)。すなわち、第2のテーブルTbの書き込み対象ブロックに対応するECC領域の位置情報が更新される。一方、ステップS11の比較の結果、書き込み回数が基準値以下である場合、ECC領域の位置は移動されない。この後、ページ内のECC領域の位置が制御されたデータは、NAND14に書き込まれる(S14)。
このように、ブロックの書き込み回数が基準値を超える毎にページ内のECC領域の位置を移動させることにより、ECC領域内のメモリセルの劣化を防止することができ、メモリセルの寿命を延ばすことが可能である。
図10は、ECC領域と一緒にページ内のコードブック11cも移動される場合を示している。コードブック11cは、上述したように、レベルパターン“C”“E”をレベルパターン“B”“B”“Eに変換するための変換コードを含むため、レベル“C”のデータを含んでいる。このため、ECC領域と同様に、コードブック11cが付加される領域(以下、コードブック領域と言う)をページ内の同じ位置に繰り返し書き込むと、メモリセルが劣化する。したがって、図10に示すように、ECC領域と共にコードブック領域を移動することにより、メモリセルの劣化を防止することができる。
尚、コードブック領域はECC領域と共に移動されるため、コードブック領域のページ内の位置は、ECC領域の位置から相対的に判別することが可能である。
また、上記説明は、NAND14内の管理領域に記録されたブロック毎の書き込み回数に従って、ECC領域の位置を移動させた。しかし、これに限定されるものではなく、例えば、ブロックの消去回数に基づきECC領域及びコードブック領域の位置を変更しても同様の効果を得ることが可能である。
(データの読み出し)
次に、データの読み出し動作について説明する。データの読み出し動作は、上記データの書き込み動作と逆の処理が実行される。
図12は、データの読み出し系の構成を概略的に示し、図13はデータの読み出し系の動作を示している。図12、図13を参照して、データの読み出し動作について説明する。
NAND14から読み出された例えば1ページのデータは、ECC移動部13に供給される。ECC移動部13は、図3に示す第2のテーブルTbに記録されたブロック毎のECC領域の位置情報に基づき、ページ内のECC領域の位置を判別する(S21)。ECC移動部13は、判別結果に基づきECC領域を、例えば図2に示す位置に戻してもよい。
ECCデコーダ12aは、判別されたECC領域のECCに基づき、データ列にエラーが有る場合、エラー訂正処理を行う。
デコーダ11dは、ページ内のデータに付加されたコードブック11cに基づき、ページ内のデータを逆変換し、圧縮されたデータ、又は伸張されたデータを基のデータに戻すことにより、書き込みデータを再現する(S23)。すなわち、変換部11bは、コードブック11cに従って、圧縮又は伸張されたデータ列を元のデータ列に変換する。これにより、レベル差が小さいレベルパターンに置き換えられたデータ列は、大きなレベル差のレベルパターンを有する元のビットパターンに変換される。また、特定のビットパターン毎の出現回数に基づき圧縮されたデータは、元のビットパターンに変換され、元の出現位置に復帰される。このようにして、元のデータ列が再現される。
(SSDの構成)
図14は、本実施形態が適用されるSSD31の一例を示している。
SSD31において、コントローラ32は、フロントエンド32Fと、バックエンド32Bとを備える。
フロントエンド(ホスト通信部)32Fは、ホストインタフェース33、ホストインタフェースコントローラ34、暗号化/復号化部(AES (Advanced Encryption Standard))35、及びCPU36を備える。
ホストインタフェース33は、ホスト21との間で、各種の要求、LBA、及びデータなどを通信する。要求としては、例えば書き込みコマンド、読み出しコマンド、消去コマンドなどがある。
ホストインタフェースコントローラ34は、CPU36の制御に基づき、ホストインタフェース33の通信を制御する。
AES35は、データの書き込み動作において、ホストインタフェースコントローラ34から供給される書き込みデータを暗号化し、バックエンド32BのライトバッファWBに供給する。AES35は、データ読み出し動作において、バックエンド32BのリードバッファRBから送信される暗号化された読み出しデータを復号化する。なお、AES35を介さずに、書き込みデータ及び読み出しデータを送信することも、必要に応じて可能である。
CPU36は、フロントエンド32Fのホストインタフェース33、ホストインタフェースコントローラ34、AES35を制御し、フロントエンド32Fの全体の動作を制御する。
バックエンド32Bは、ライトバッファWB、リードバッファRB、LUT(Lookup table)41、DDRC(Double data Rate Controller)42、DRAM(Dynamic Random Access Memory)43、DMAC(Direct Memory Access Controller)44、CPU45、前述したエンコーダ11/デコーダ11d、ECCエンコーダ12/ECCデコーダ12a、ECC移動部13、及びNANDC(NAND controller)49を備える。
ライトバッファWBは、ホスト21から送信された書き込みデータを一時的に格納する。具体的には、ライトバッファWBは、当該書き込みデータがNAND15に適した所定のデータサイズになるまで、一時的にデータを格納する。
リードバッファRBは、NAND15から読み出された読み出しデータを一時的に格納する。具体的には、リードバッファRBにおいて、読み出しデータは、ホスト21に適した順序(ホスト21が指定した論理ブロックアドレス(LBA)の順序)になるように並び替えられる。
LUT41は、論理ブロックアドレス(LBA)を物理ブロックアドレス(PBA)に変換するためのデータである。
DDRC42は、DRAM43におけるDDR(Double Data Rate)を制御する。
DRAM43は、例えば、LUT41を格納する不揮発性のメモリである。
DMAC44は、内部バスIBを介して、書き込みデータや読み出しデータなどを転送する。
CPU45は、バックエンド32Bの上記各構成(41〜42、11、11a、12、12a、13、49)を制御し、バクエンド32Bの全体の動作を制御する。
データの書き込み時、エンコーダ11は、ライトバッファWBから供給されるデータ列のエントロピーを上述したように解析し、隣接するメモリセルに書き込まれるレベル差が低減されるように、コードブック11cに基づきデータ列をエンコードする。ECCエンコーダ12は、エンコーダ11から供給されるコードブック11cを含むデータ列に、組織符号を用いてECCを付加する。ECC移動部13は、書き込み対象のブロックの例えば書き込み回数に基づき、ページ内のECC領域、及びコードブック領域の位置を移動する。ECC移動部13から出力された1ページ分のデータは、NAMDC49に供給され、NANDC49により、NAND14に書き込まれる。
データ読み出し時、NAND14から読み出された1ページ分のデータは、NAMDC49を介してECC移動部13に供給される。ECC移動部13は、第2のテーブルTbに記録されたECC領域の位置情報に基づき、1ページ内のECC領域の位置を判別する。ECCデコーダ12aは、判別されたECC領域内のECCに基づき、データのエラー訂正処理を行う。デコーダ11dは、ECCデコーダ12aから供給されるデータをコードブック11cに基づきデコードする。このデコータ11dにより再現されたデータ列は、リードバッファRBに供給される。
図14において、1つのDMAC44が図示されているが、コントローラ32は、2以上のDMAC44を含んでもよい。DMAC44は、必要に応じて、コントローラ32内の様々な位置に設定することが可能である。
NANDC49は、所定の速度の要求を満たすため、複数のチャンネル(ここでは、4つのチャンネルCH0〜CH3)を用いて、並列にNAND14にアクセスする。
尚、図14に示したコントローラ32の構成は例示であり、この構成に限定されるものではない。
また、SSD31は、デザインルールの異なるNANDや、平面型のNANDや立体型のNANDのように異なるタイプのNANDが適用可能とされている。
(実施形態の効果)
上記実施形態によれば、入力データDwに含まれる閾値電圧の差が大きなデータパターンが閾値電圧の差が小さなデータパターンに変換される。このため、プログラムディスターブを抑制することが可能である。しかも、閾値電圧の高いデータが減少するため、メモリセルの耐久性が向上し、メモリセルの寿命を伸ばすことが可能である。
また、プログラムディスターブが抑制されるため、読出しエラーを低減することができる。このため、高度なECCを用いる必要がなく、ECCのエンコード、及びデコードに要する時間を削減することができる。
さらに、ページ内のECC領域、及びコードブック領域の位置は、ブロックの書き込み回数や消去回数に基づき移動される。このため、ECC領域、及びコードブック領域の位置が固定されている場合に比べてメモリセルの耐久性を向上させることができる。
その他、本発明は上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
11…エンコーダ、11a…エントロピー解析部、11b…変換部、11c…コードブック、11d…デコーダ、12…ECCエンコーダ、12a…ECCデコーダ、13…ECC移動部、14…NANDフラッシュメモリ。

Claims (16)

  1. nレベル(nは、3以上の自然数)のデータをページ単位に記憶する不揮発性半導体メモリのコントローラであって、
    前記不揮発性半導体メモリに書き込まれる複数のデータを含み、前記ページの長さより短い第1の長さを有する第1のデータ列から前記第1のデータ列より短い第2のデータ列を抽出する抽出部と、
    前記第2のデータ列から変換された第3のデータ列に含まれる隣接する2つのデータに対応する前記不揮発性半導体メモリの閾値電圧の差が第1のレベル差である場合、前記第3のデータ列を前記第3のデータ列より長く、前記第1のレベル差より小さな第2のレベル差を有する第4のデータ列に変換する変換部と、
    を具備することを特徴とする不揮発性半導体メモリのコントローラ。
  2. 前記変換部は、前記第4のデータ列を含む前記第1のデータ列から変換されたデータの長さが前記第1の長さを超える場合、変換処理を中止することを特徴とする請求項1記載の不揮発性半導体メモリのコントローラ。
  3. 前記変換部は、前記第2のデータ列を前記第3のデータ列に変換するための第1の変換情報及び前記第3のデータ列を前記第4のデータ列に変換する第2の変換情報を生成することを特徴とする請求項2記載の不揮発性半導体メモリのコントローラ。
  4. 前記変換部は、前記第1の変換情報及び前記第2の変換情報を前記第3のデータ列及び前記第4のデータ列を含むデータに付加することを特徴とする請求項3記載の不揮発性半導体メモリのコントローラ。
  5. 前記第1の変換情報及び前記第2の変換情報が付加された前記第3のデータ列及び前記第4のデータ列を含むデータに、組織符号により、エラー訂正符号を付加するエラー訂正部をさらに具備することを特徴とする請求項4記載の不揮発性半導体メモリのコントローラ。
  6. 前記不揮発性半導体メモリに含まれるブロックのアクセス回数に基づき、前記エラー訂正符号が付加される領域の位置を前記ページ内で移動させる移動部をさらに具備することを特徴とする請求項5記載の不揮発性半導体メモリのコントローラ。
  7. 前記移動部は、前記第1の変換情報及び前記第2の変換情報が付加される領域の位置を前記エラー訂正符号が付加される領域の位置と共に前記ページ内で移動させることを特徴とする請求項6記載の不揮発性半導体メモリのコントローラ。
  8. 前記ブロックのアクセス回数は、前記ブロックの書き込み回数と、前記ブロックの消去回数のうちの1つを含むことを特徴とする請求項7記載の不揮発性半導体メモリのコントローラ。
  9. 前記抽出部は、前記第2のデータ列の数を計数することを特徴とする請求項に記載の不揮発性半導体メモリのコントローラ。
  10. 前記変換部は、計数された前記数に基づき、前記第2のデータ列を前記第2のデータ列より短い前記第3のデータ列に変換することを特徴とする請求項9記載の不揮発性半導体メモリのコントローラ。
  11. 前記第1のレベル差は、前記nレベルと消去レベルとの差であり、前記第2のレベル差は、前記nレベルと前記消去レベルより高いレベルとの差、及びn−1レベルと前記消去レベルとの差の少なくとも一方であることを特徴とする請求項1記載の不揮発性半導体メモリのコントローラ。
  12. 前記抽出部は、前記第2のデータ列の出現位置を示す第3の変換情報を生成することを特徴とする請求項10記載の不揮発性半導体メモリのコントローラ。
  13. 前記移動部は、データの読み出し時、前記不揮発性半導体メモリに含まれるブロックのアクセス回数に基づき、前記エラー訂正符号が付加される領域の位置を判別することを特徴とする請求項6記載の不揮発性半導体メモリのコントローラ。
  14. 前記エラー訂正部は、判別された前記エラー訂正符号に基づき、前記データのエラーを訂正することを特徴とする請求項13記載の不揮発性半導体メモリのコントローラ。
  15. 前記変換部は、前記第2の変換情報に基づき、前記データに含まれる前記第4のデータ列を前記第3のデータ列に変換し、前記第1の変換情報に基づき、前記第3のデータ列を前記第2のデータ列に変換し、前記第3の変換情報に基づき、前記第2のデータ列を前記第1のデータ列に変換することを特徴とする請求項12記載の不揮発性半導体メモリのコントローラ。
  16. nレベル(nは、3以上の自然数)のデータを記憶する不揮発性半導体メモリのコントローラであって、
    前記不揮発性半導体メモリに書き込まれる複数のデータを含む第1のデータ列から前記第1のデータ列より短い第2のデータ列を抽出する抽出部と、
    前記第2のデータ列から変換された第3のデータ列に含まれる隣接する2つのデータに対応する前記不揮発性半導体メモリの閾値電圧の差が第1のレベル差である場合、前記第3のデータ列を前記第3のデータ列より長く、前記第1のレベル差より小さな第2のレベル差を有する第4のデータ列に変換する変換部と、
    を具備することを特徴とする不揮発性半導体メモリのコントローラ。
JP2015254003A 2015-04-30 2015-12-25 不揮発性半導体メモリのコントローラ Active JP6437428B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201562155279P 2015-04-30 2015-04-30
US62/155,279 2015-04-30
US14/833,632 2015-08-24
US14/833,632 US9792053B2 (en) 2015-04-30 2015-08-24 Controller for nonvolatile semiconductor memory

Publications (2)

Publication Number Publication Date
JP2016212828A JP2016212828A (ja) 2016-12-15
JP6437428B2 true JP6437428B2 (ja) 2018-12-12

Family

ID=57204845

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015254003A Active JP6437428B2 (ja) 2015-04-30 2015-12-25 不揮発性半導体メモリのコントローラ

Country Status (2)

Country Link
US (1) US9792053B2 (ja)
JP (1) JP6437428B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111868697A (zh) * 2017-12-12 2020-10-30 华为技术有限公司 存储级存储系统的磨损均衡方案及其实现方式

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8122323B2 (en) 2007-03-08 2012-02-21 Intel Corporation Method, apparatus, and system for dynamic ECC code rate adjustment
US8341501B2 (en) * 2009-04-30 2012-12-25 International Business Machines Corporation Adaptive endurance coding of non-volatile memories
JP5017407B2 (ja) 2010-03-24 2012-09-05 株式会社東芝 半導体記憶装置
EP2633409A4 (en) 2010-10-27 2014-07-23 Lsi Corp ADAPTIVE ECC TECHNIQUES FOR FLASH MEMORY AND BASED ON DATA STORAGE
US8621328B2 (en) * 2011-03-04 2013-12-31 International Business Machines Corporation Wear-focusing of non-volatile memories for improved endurance

Also Published As

Publication number Publication date
US9792053B2 (en) 2017-10-17
JP2016212828A (ja) 2016-12-15
US20160320983A1 (en) 2016-11-03

Similar Documents

Publication Publication Date Title
JP6346123B2 (ja) コントローラ、制御方法
CN111326199B (zh) 用于存储器设备的多态编程
US9547588B1 (en) System and method of data storage in flash memory
US8176234B2 (en) Multi-write coding of non-volatile memories
US11683053B2 (en) Memory controller, memory system, and memory control method
US9543983B2 (en) Decoding method, memory storage device and memory control circuit unit
JP5785330B2 (ja) メモリエンデュランスのために動作させる装置および方法
US10795827B2 (en) Adaptive management of intermediate storage
US8463985B2 (en) Constrained coding to reduce floating gate coupling in non-volatile memories
US8644066B2 (en) Multi-level non-volatile memory device, system and method with state-converted data
US9582224B2 (en) Memory control circuit unit, memory storage apparatus and data accessing method
US9588772B2 (en) Memory controller and decoding method
TW201220315A (en) Data coding using divisions of memory cell states
US9971523B2 (en) Memory controller with data compression and padding features, method of controlling nonvolatile memory and memory system
US9865338B2 (en) Memory system and method of controlling nonvolatile memory by converting write data written to a page
KR102628009B1 (ko) 부분 페이지 압축을 위한 메모리 시스템
US10204043B2 (en) Memory controller, method of controlling nonvolatile memory and memory system
US11082068B2 (en) Error correction circuit, memory controller having error correction circuit, and memory system having memory controller
JP6437428B2 (ja) 不揮発性半導体メモリのコントローラ
US9396063B2 (en) Storage device and operating method thereof
JP2020154728A (ja) メモリシステム及びその制御方法
US9239751B1 (en) Compressing data from multiple reads for error control management in memory systems
US20160071597A1 (en) Storage device, memory controller and memory control method
US20150254131A1 (en) Memory controller, storage device and memory control method
US11372719B1 (en) Memory system

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20170531

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170804

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180523

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180605

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180806

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20180830

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: 20181016

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181114

R150 Certificate of patent or registration of utility model

Ref document number: 6437428

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350