JP2013122804A - 半導体記憶装置 - Google Patents

半導体記憶装置 Download PDF

Info

Publication number
JP2013122804A
JP2013122804A JP2011271393A JP2011271393A JP2013122804A JP 2013122804 A JP2013122804 A JP 2013122804A JP 2011271393 A JP2011271393 A JP 2011271393A JP 2011271393 A JP2011271393 A JP 2011271393A JP 2013122804 A JP2013122804 A JP 2013122804A
Authority
JP
Japan
Prior art keywords
value
distribution
vth
data
threshold voltage
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
JP2011271393A
Other languages
English (en)
Inventor
Yasuhiko Kurosawa
泰彦 黒澤
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Corp filed Critical Toshiba Corp
Priority to JP2011271393A priority Critical patent/JP2013122804A/ja
Priority to US13/544,147 priority patent/US20130148436A1/en
Publication of JP2013122804A publication Critical patent/JP2013122804A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)

Abstract


【課題】メモリセルの閾値電圧の分布を正確に探索することが可能な半導体記憶装置を提供する。
【解決手段】制御部11aは、複数のメモリセルの閾値電圧の分布を調べる読み出し動作により、複数のメモリセルから閾値電圧毎にデータを読み出し、閾値電圧毎に読み出されたデータの差分データを求め、差分データより閾値電圧の分布の最小値を求め、最小値に基づき、最小値より小さな値の閾値電圧の範囲を求め、求めた閾値電圧の範囲の中央の電圧を読み出し電圧に設定する。
【選択図】図1

Description

本発明の実施形態は、半導体記憶装置、例えば多値データを記憶するNANDフラッシュメモリに関する。
NANDフラッシュメモリ、特に、1つのセルに複数ビットのデータを記憶することが可能な多値NANDフラッシュメモリにストレスが印加された場合や、データを書き込んでから長期間経過した場合、個々のメモリセルの電荷が増減して閾値電圧が変化する。このため、メモリセルからデータを読み出すときの閾値電圧が予め設定された最適値からずれてしまい、正確にメモリセルに記憶されたデータを読み出すことができなくなる。この結果、読み出されたデータに含まれるエラービット数の割合である「ビットエラー率」が増加してしまう。
閾値電圧が変動することによって発生するエラーは、エラー訂正コード(ECC)を付加することによりある程度救済することができる。しかし、ビットエラー率が大きい場合、ECCを使用しても訂正が困難となる。
ビットエラー率を低下させるためには、メモリセルの読み出し電圧を最適化する必要がある。しかし、そのためにはメモリセルの閾値電圧の分布を正確に探索する必要がある。
特開2009−158061号公報
本実施形態は、メモリセルの閾値電圧の分布を正確に探索することが可能な半導体記憶装置を提供しようとするものである。
本実施形態の半導体記憶装置は、n個(nは2以上の自然数)の閾値電圧の1つが設定されることによりデータを記憶する複数のメモリセルを有するメモリと、
前記メモリからデータを読み出す制御部と、を具備し、前記制御部は、前記複数のメモリセルの閾値電圧の分布を調べる読み出し動作により、前記複数のメモリセルから閾値電圧毎にデータを読み出し、前記閾値電圧毎に読み出されたデータの差分データを求め、前記差分データより前記閾値電圧の分布の最小値を求め、前記最小値に基づき、前記最小値より小さな値の閾値電圧の範囲を求め、前記求めた閾値電圧の範囲の中央の電圧を読み出し電圧に設定することを特徴とする。
本実施形態に係る半導体記憶装置を概略的に示す構成図。 図1に示すNANDフラッシュメモリ概略的に示す構成図。 NANDフラッシュメモリからディストリビューション・リードにより読み出したデータ中の“1”の計数値を示す図。 図3に示す“1”の個数の差分データを示す図。 図4のBレベル、Cレベル、Dレベルを拡大して示す図。 8レベルのデータの分布を示す図。 図6のBレベル、Cレベル、Dレベルを拡大した分布を示す図。 図7に示すDレベルの分布を示す図。 図7と同じ例で読み出しレベルの初期値を変えた例を示す図。 Dレベルの読み出しレベルの初期値を変えた例を示す図。 Cレベルの読み出しレベルの初期値を変えた例を示す図。 Dレベルに対する探索領域の例を示す図。 Dレベルに対する探索領域の例を示す図。 Cレベルに対する探索領域の例を示す図。 ディストリビューション・リード動作を示すフローチャート。 ディストリビューション・リードにより読み出された“1”の計数値に基づくヒストグラムの生成動作を示すフローチャート。 ディストリビューション・リードにより読み出された“1”の計数値を示す図。 ディストリビューション・リードにより読み出された“1”の個数の差分データを示す図。 図18の差分データを加重平均して示す図。 加重平均の動作を示すフローチャート。 図18のDレベル近傍を拡大して示す図。 図21のグラフを加重平均して示す図。 最小値の探索動作を示すフローチャート。 最小値の探索動作の他の例を示すフローチャート。 Vthトラッキングを行いヒストグラムの底部が広がっている例を示す図。 Vthトラッキングを行いヒストグラムの底部が広がっている別の例を示す図。 図25に示すヒストグラムの加重平均をとった例を示す図。 図26に示すヒストグラムの加重平均をとった例を示す図。 第1の実施形態に係るVthトラッキングを示すフローチャート。 図29に示す第1の探索動作の一例を示すフローチャート。 第2の探索動作の一例を示すフローチャート。 シフト値の演算動作の一例を示すフローチャート。 一般的な手法によりDレベルのVthの最適値を算出した例を示す図。 一般的な手法で求められたVthの最適値を示す図。 ディストリビューション・リードの揺らぎによってVthのデータに含まれる“1”の数が変化した例を示す図。 第1の実施形態によりDレベルのVthの最適値を算出した例を示す図。 第1の実施形態により求められたVthの最適値を示す図。 第1の実施形態において、ディストリビューション・リードの揺らぎによってVthのデータに含まれる“1”の数が変化した例を示す図。 図35の例に対して第1の実施形態を適用した場合を示すものであり、最小値を示す図。 最小値に基づき分布の底部を探索するための閾値を設定した場合を示す図。 第1の実施形態により得られたシフト値を示す図。 第2の実施形態に係るVthトラッキングを示すフローチャート。 図42に示す第1回目の探索動作を具体的に示すフローチャート。 図42に示す第2回目の探索動作を具体的に示すフローチャート。 第3の実施形態に係るVthトラッキングを示すフローチャート。 図43に示す第1回目の探索動作を具体的に示すフローチャート。 図43に示す第2回目の探索動作を具体的に示すフローチャート。 図43に示すシフト値の演算動作を示すフローチャート。 第4の実施形態に係るVthトラッキングの概略的な動作を示すフローチャート。 図49に示す第1回目の探索動作の前半を示すフローチャート。 図49に示す第1回目の探索動作の後半を示すフローチャート。 図49に示す第2回目の探索動作の前半を示すフローチャート。 図49に示す第2回目の探索動作の後半を示すフローチャート。 図49に示すシフト値の演算動作を示すフローチャート。 図55(a)(b)は、第6の実施形態に係り、分布の底部のVthを予測する例を示す図。 図56(a)(b)は、第6の実施形態に係り、分布の底部のVthを予測する他の例を示す図。 図57(a)(b)は、第6の実施形態に係り、分布の底部のVthを予測する他の例を示す図。 図58(a)(b)は、第6の実施形態に係り、分布の底部のVthを予測する他の例を示す図。 図59(a)(b)は、第6の実施形態に係り、分布の底部のVthを予測する他の例を示す図。 図60(a)(b)は、第6の実施形態に係り、分布の底部のVthを予測する他の例を示す図。 図61(a)(b)は、第6の実施形態に係り、分布の底部のVthを予測する他の例を示す図。 図62(a)(b)は、第6の実施形態に係り、分布の底部のVthを予測する他の例を示す図。 図63(a)(b)は、正規分布を仮定して計算で、分布の底部のVthを予測する例を示す図。 図64(a)(b)は、分布の底部近傍で、分布の底部のVthを予測する例を示す図。 図65(a)(b)は、図64(a)(b)のVthの組み合わせを入れ替えた場合を示す図。 図66(a)(b)は、ヒストグラムの値を入れ替えて、2つの直線を交差させた例を示す図。 図67(a)(b)は、図66(a)(b)の近似を説明するために示す図。 図55(a)(b)乃至図65(a)(b)に示す交点の横軸の値の近似式を算出する方法を示す図。 第7の実施形態に係るテーブルを示す図。 第8の実施形態に係るテーブルを示す図。
以下、図面を参照して本実施形態について説明する。
(装置構成)
図1は、本実施形態に係る半導体記憶装置を概略的に示している。
半導体記憶装置11は、例えばSDカードにより構成される。半導体記憶装置11は、図示せぬホスト装置に接続されたときに電源供給を受けて動作し、ホスト装置からのアクセスに応じた処理を行う。この半導体記憶装置11は、コントローラ11aを有している。
コントローラ11aは、例えばホストインタフェース(I/F)12、CPU13、ROM(Read only Memory)14、RAM(Random Access Memory)15、バッファ16、メモリインターフェース(I/F)17、エラー訂正回路(ECC回路)18、カウンタ19により構成されている。これらは、バスにより接続されている。メモリインターフェース17には、例えばNANDフラッシュメモリ20が接続されている。
ホストインタフェース12は、コントローラ11aとホスト装置との間のインターフェース処理を行う。
メモリインターフェース17は、コントローラ11aとNANDフラッシュメモリ20との間のインターフェース処理を行う。
CPU13は、メモリデバイス11全体の動作を司るものである。このCPU13は、例えばホスト20からライト(書き込み)コマンド、リード(読み出し)コマンド、イレース(消去)コマンドを受けてNANDフラッシュメモリ20上の領域をアクセスしたり、バッファ16を介してデータ転送処理を制御したりする。
ROM14は、CPU13により使用される制御プログラムなどのファームウェアを格納する。RAM15は、CPU13の作業エリアとして使用され、制御プログラムや各種のテーブルなどを記憶する。
バッファ16は、ホスト20から送られてくるデータを、例えばNANDフラッシュメモリ20へ書き込む際、一定量のデータ(例えば1ページ分)を一時的に記憶したり、NANDフラッシュメモリ20から読み出されたデータをホスト装置へ送り出す際、一定量のデータを一時的に記憶したりする。
ECC回路18は、NANDフラッシュメモリ20から読み出されたデータ中のエラーを訂正する。
カウンタ19は、後述するディストリビューション・リードを実行する際、閾値電圧分布のヒストグラムを求めるため、NANDフラッシュメモリ20から読み出されたデータ中に含まれるデータ“1”の個数を計数するために使用される。
NANDフラッシュメモリ20は、例えば積層ゲート構造のメモリセル、又はMONOS構造のメモリセルにより構成され、多値、例えば8値(8レベルとも言う)のデータを記憶可能とされている。
図2は、NANDフラッシュメモリ20の概略構成を示している。
メモリセルアレイ21は、複数のビット線と複数のワード線と共通ソース線を含み、例えばEEPROMセルからなる電気的にデータを書き換え可能なメモリセルがマトリクス状に配置されている。このメモリセルアレイ21には、ビット線を制御するためのビット制御回路22とワード線制御回路26が接続されている。
ビット線制御回路22は、ビット線を介してメモリセルアレイ21中のメモリセルのデータを読み出したり、ビット線を介してメモリセルアレイ21中のメモリセルの状態を検出したり、ビット線を介してメモリセルアレイ21中のメモリセルに書き込み制御電圧を印加してメモリセルに書き込みを行なう。ビット線制御回路22には、カラムデコーダ23、データ入出力バッファ24が接続されている。ビット線制御回路22内のデータ記憶回路はカラムデコーダ23によって選択される。データ記憶回路に読み出されたメモリセルのデータは、前記データ入出力バッファ4を介してデータ入出力端子25から外部へ出力される。外部から供給されたNAND型フラッシュメモリの動作を制御する各種コマンドCMD、アドレスADD、及びデータDTは、データ入出力端子25に入力される。データ入出力端子25に入力された書き込みデータは、データ入出力バッファ4を介して、カラムデコーダ23によって選択されたデータ記憶回路に供給され、コマンド及びアドレスは制御信号及び制御電圧発生回路27に供給される。
ワード線制御回路26は、メモリセルアレイ21に接続されている。このワード線制御回路26は、メモリセルアレイ21中のワード線を選択し、選択されたワード線に読み出し、書き込みあるいは消去に必要な電圧を印加する。
メモリセルアレイ21、ビット線制御回路22、カラムデコーダ23、データ入出力バッファ24、及びワード線制御回路26は、制御信号及び制御電圧発生回路27に接続され、この制御信号及び制御電圧発生回路27によって制御される。制御信号及び制御電圧発生回路27は、制御信号入力端子8に接続され、外部から制御信号入力端子8を介して入力される制御信号ALE(アドレス・ラッチ・イネーブル)、CLE(コマンド・ラッチ・イネーブル)、WE(ライト・イネーブル)、RW(リード・イネーブル)によって制御される。
前記ビット線制御回路22、カラムデコーダ23、ワード線制御回路26、制御信号及び制御電圧発生回路27は書き込み回路、及び読み出し回路を構成している。
制御信号及び制御電圧発生回路27は、図示せぬデジタルアナログ変換器を有し、このデジタルアナログ変換器は、予め定められた数値データに基づき、読み出し動作時における読み出し電圧や、書き込み動作時におけるプログラム電圧を発生する。例えばメモリセルに8値のデータが小さい順に、消去レベル、Aレベル、Bレベル、Cレベル、Dレベル、Eレベル、Fレベル、Gレベルのデータが記憶されている場合、Aレベル、Bレベル、Cレベル、Dレベル、Eレベル、Fレベル、Gレベルのデータを読み出すために必要な数値データが予め設定されている。このデジタルアナログ変換器に入力される数値データを、以下nDAC(nは数値)と記す。Aレベル〜Gレベルを読み出すための数値データは、例えば25DAC、90DAC、140DAC、220DAC、300DAC、370DAC、420DACに設定されている。これら数値データは例えばメモリセルアレイ21のコントローラ用のデータ領域に記憶されている。この数値データは、パワーオン時にメモリセルアレイ21から読み出され、図示せぬレジスタに転送される。制御信号及び制御電圧発生回路27は、読み出し動作時、レジスタに保持された数値データに基づき、所要の読み出し電圧を生成する。以下、消去レベル、Aレベル、Bレベル、Cレベル、Dレベル、Eレベル、Fレベル、Gレベルを総称してReadレベルと呼ぶ。
前述したように、NANDフラッシュメモリにストレスが印加された場合や、データを書き込んでから長期間経過した場合、個々のメモリセルの閾値電圧(以下、Vthレベルとも言う)が変化する。このため、メモリセルからデータを読み出すとき、上記予め設定された数値データに基づき生成された読み出し電圧により、メモリセルから正確にデータを読み出すことができなくなる。この結果、読み出されたデータに含まれるエラービット数の割合である「ビットエラー率」が増加する。Vthレベルがシフトすることにより、発生するエラーはエラー訂正コード(ECC)の付加によってもある程度救済することができる。しかし、メモリセルからデータを読み出すときの読み出し電圧を最適化することにより、ECCで訂正する前のデータのビットエラー率を大幅に下げることができる。これにより、ECC回路でのエラー訂正時間を短縮したり、ECC回路の消費電力を抑えたりすることができる。
メモリセルの読み出し電圧を最適化する場合、メモリセルのVthレベルの分布を探索する必要がある。このため、コントローラ11aは、メモリセルの閾値電圧分布を探索するため、後述するディストリビューション・リード(distribution read)機能を備えている。
図3、図4、図5は、8値のNANDフラッシュメモリにデータを書き込んだ直後のVthレベルを、ディストリビューション・リードを用いて読み出した例を示している。
図3は、ディストリビューション・リードで読み出したデータ中の“1”の計数値を示すものであり、縦軸に計数値を示し、横軸にVthレベルをデジタルアナログ変換器に入力される数値データにより示している。図3において、消去レベルのVth分布はVth=“0”以下にあるため、グラフとして表れていない。
図4は、図3に示す縦軸の“1”の個数の差分を、横軸の4DAC単位でとったものであり、それぞれのVthレベルのデータの分布の中心から左右非対称に、異なった分散をもった正規分布を仮定してグラフ化している。図4においても、消去レベルのVth分布はVth=“0”以下にあるため、グラフとして表れていない。図3のグラフの値が変化しない部分は、図4に“0”となって現れ、図3のグラフの傾きの大きなところは、図4において、大きな値となっている。
図5は、図4のBレベル、Cレベル、Dレベルを拡大して示している。
図3、図4、図5に示す破線は、Dレベルの初期の読み出し電圧(Vth=228DAC)を示している。
図4、図5に示すように、書き込み直後において、各レベルのデータはReadレベルの中間付近に集中している。例えばDレベルの読み出し時、読み出し電圧として228DACを設定し、メモリセルのVthレベルが、読み出しレベルより低くければ、そのメモリセルのデータは“0”、高かければそのメモリセルのデータは“1”として読み出される。図5に示す場合、メモリセルからデータ“1”が読み出される。
一方、図6、図7、図8は、図4、図5に示すように書き込んだデータの各レベルの中心が6〜8DAC程度マイナス側に移動し、分散が大きくなった例を示している。
図6は、図4と同様に8レベルのデータの分布全体を示しており、図7は、図6のBレベル、Cレベル、Dレベルを拡大した分布を示している。図8は、図7に示すDレベルに書き込まれたデータの分布だけを示している。
図6、図7、図8に示すように、Dレベルに書き込んだデータがストレスを受け、図4、図5に示す分布よりマイナス側に移動していることが分かる。図8に示すVthレベル=228DACの左側と正規分布曲線の下で囲まれた面積で示される領域がDレベルからCレベルに移動したデータである。Dレベルの初期値Vthレベル=228DACで読み出した場合、図8の縦の破線の左側と正規分布曲線の下で囲まれた面積に相当する部分がDレベルではなくCレベルとして読み出される。このため、本来“1”として読み出されるべきデータが“0”として誤って読み出される。
図8に示す破線の左側と正規分布曲線の下で囲まれた面積を図8の正規分布曲線の下側の面積全体で割ったものがDレベルに書き込まれたデータが、Cレベルのデータとして読みだされるエラー率(より正確にはDレベルよりも下のレベルである消去レベル、Aレベル、Bレベル、Cレベルとして読み出されるエラー率)である。
上記のように、メモリセルのVthレベルがシフトした場合、予め設定された読み出し電圧とは異なるレベルで読み出すことにより、エラーを低減する技術としてECCとシフトリードがあり、メモリコントローラ11aは、両者を併用して正しいデータを出力している。ECCは誤りを含む状態で読み出されたデータを訂正することで正しいデータを得る。
一方、シフトリードは読み出し電圧を変えることで、読み出すデータそのもののエラー率を低減する。すなわち、図8に示す例の場合、Dレベルの中心がが−8DAC移動しているため、Dレベルが−8DAC移動しているということが分かれば、Dレベルの読み出しレベルを−8DAC程度移動することにより、Dレベルで書き込んだデータがCレベルで読み出される誤りと、Cレベルで書き込んだデータがDレベルで読み出される誤りの全体を最小にすることができ、全体としてのエラー率を下げることができる。
図9、図10、図11は、図6、図7と同じ例で読み出しレベルの初期値を228DACから−8DACシフトした220DACに設定した場合を示している。
図10に示すように、Dレベルに着目すると読み出しレベルを228DACから220DACに移動することにより、読み出しレベル220DACの左側と正規分布曲線で囲まれる面積が減少する。これはエラー数が減少することに対応している。Dレベルだけをみると読み出しレベルをさらに下げることでエラーを減らすことができる。しかし、図11に示すCレベルに着目すると、逆にDレベルの読み出しレベルを228DACから220DACに移動することにより、読み出しレベル220DACの左側と正規分布曲線で囲まれる面積が増加するので、Cレベルはエラーが増加している。すなわち、読み出しレベルをマイナス側に移動させると、DレベルからCレベルに移動するエラーは減らすことができるが、CレベルからDレベルに移動するエラーは増加する。正規分布の特性から、中心から離れるほど分布の数は減少するため、読み出しレベルを移動させ、DレベルをCレベルに誤るエラーを減らす数と、CレベルをDレベルに誤るエラーが増える数が一致する「最適値」が存在する。
本実施形態は、読み出し電圧をシフトさせたシフトリードによって読み出すデータのエラー率をできるだけ小さくする。すなわち、読み出し電圧の最適値を探索するものである。実際のNANDフラッシュメモリのリード動作では、特殊な場合を除き、本来Dレベルであったメモリセル(図10に対応)、本来Cレベルであったメモリセル(図11に対応)は区別できないため、図10と図11を合計してできる曲線、すなわち図9に示す曲線から読み出しレベルの最適値を探索しなくてはならない。
読み出しレベルの最適値を探索するための一連の動作を以下、Vthトラッキングと呼ぶ。Vthトラッキングでは、Vthの最適値を探索するため、コマンドとしてNANDフラッシュメモリに実装されているディストリビューション・リードを実行する。
ディストリビューション・リードは、読み出しレベルを一定量ずつ変化させて2値モード(SLCモード)で一定量のデータを読み出す。コントローラ11aは、プログラムに使用するメモリ量を節約するなどの目的からNANDフラッシュメモリの各Vthレベルを中心にした探索領域を設け、Vthレベル毎にディストリビューション・リードを実行することが多い。
図12、図13、図14は、Dレベル、Cレベルに対する探索領域の例を長方形で図示している。この例ではDレベルの読み出しレベルの初期値は228DACに設定されている。図12、図13、図14において、実効的な探索領域は、200DAC以上248DAC以下に設定されている。
(ディストリビューション・リード)
図15は、ある一つのReadレベルに対するディストリビューション・リード動作を示している。
コントローラ11aにおいて、ディストリビューション・リードの開始レベル、すなわち、nDAC(初期読み出しレベル(Vth))、Vthの増分、ステップ回数N(Nは、現在注目しているReadレベルに対してディストリビューション・リードを実行するVthレベルの総数)、バースト長BLが設定される(S11)。さらに、ステップカウントが“j=0”に初期設定され(S12)、バーストカウントが“k=0”、“1”の計数値“total”が“0”に初期化される(S13)。この状態において、ディストリビューション・リードが開始される(S14)。すなわち、NANDフラッシュメモリ20は、予め定められたデータ量、例えば1kバイト又は16kバイトのデータを読み出し、メモリインターフェース17を介してコントローラ11aに例えば1バイト単位にデータを転送する。
コントローラ11aは、1バイトのデータに含まれる“1”の数をバースト長だけ計数する(S15、S16、S17、S18、S19)。この計数は、図1に示すカウンタ19により実行される。しかし、カウンタ19に限らず、ソフトウェアによりカウントすることも可能である。
“1”の数がバースト長だけ計数されると、Vthレベルとともに“total”の“1”の計数値が(Count[j])に記憶される(S20)。
この後、ステップカウント“j”が更新されてVthレベルがステップアップされ(S21)、全てのVthレベルの読み出しが終了したかどうかが判別される(S22)。この判別の結果、終了していない場合、バーストカウント、及び“1”の総数“total”がリセットされ(S23)、Vthレベルが更新されてディストリビューション・リードが開始される(S24)。
この後、上記動作が繰り返され、NANDフラッシュメモリ20から出力されるデータに含まれる“1”の数がバースト長だけ計数されると(S15、S16、S17、S18、S19)、Vthレベルとともに“1”の計数値“total”の値が(Count[j])ni記憶される(S20)。
このように,Vthレベルをステップアップして、ディストリビューション・リード、及びデータに含まれる“1”数の計数が、ステップカウント“j”の値が“N”となるまで繰り返される(S21、S22)。
尚、Vthレベルの2ステップ目以降のnDACは、NANDフラッシュメモリ20によっては、前のステップのDACとの差分を指定できる。前のステップのDACとの差分を指定できない場合は、2ステップ目以降も読み出しレベルに対応するnDACがNANDフラッシュメモリ20に送られる。
上記ステップ(S22)において、ステップカウント“j”の値が“N”に達したと判別された場合、制御が図16に移行される。
尚、ディストリビューション・リードの結果に基づき、横軸にVthレベルをプロットし、縦軸に“1”の計数値をプロットすると、図17に示すグラフが得られる。
(ヒストグラム生成)
図16は、図17に示すVthレベル毎に計数された“1”の計数値に基づき、ヒストグラムを生成するための動作を示している。
コントローラ11aは、隣接するVthレベルの“1”の計数値(Count(j+1))と(Count(j))の差分を演算する。このため、図16に示すように、ステップ数が“N−1”に設定され(S31)、ステップカウントが“j=0”に初期設定される(S32)。この後、式(1)で示す演算が、ステップカウント“j”を更新しながら、ステップカウントが“N−1”となるまで繰り返される(S33、S34、S35)。
Delta[j]=Count[j+1]−Count[j] …(1)
このようにして、“1”の計数値の差分(Delta(j))が求められる。横軸にVthレベルをプロットし、縦軸に“1”の計数値の差分(Delta(j))をプロットすると、図18に示すヒストグラムが得られる。
上記動作から分かるように、読み出しレベルの最適値を探索するためには、各Vthレベルに存在する“1”の個数がほぼ等しくなるのが望ましい。一般に、メモリコントローラ11aには、NANDフラッシュメモリ20に書き込んだデータの信頼性を向上させるため、データをランダマイズして書き込む手法が採用されている。このため、本実施形態においても、NANDフラッシュメモリ20のデータがランダマイズされて、各Readレベルに存在する“1の個数”がほぼ等しくなっていることが望ましいが、データがランダマイズされていない場合においても、本実施形態を適用することが可能である。
NANDフラッシュメモリでは、設定したVthレベルに対して実際に設定されるVthの揺らぎ、Vth分布を調べる行為そのもので受けるメモリセルのストレスなどにより、同じVthレベルを指定しても得られるヒストグラムは必ずしも一致しないこと、すなわちヒストグラム自体に揺らぎが発生することが知られている。
図17、図18、図19は、実際の8値NANDフラッシュメモリに対してVthトラッキングを実行して得られたヒストグラムを示している。
図17は、NANDフラッシュメモリから読み出したデータ中の“1”の数を、ディストリビューション・リードで設定した各Vthに対応するDAC値を横軸としてグラフ化したものである。
図18は、図17の横軸を4DAC単位のステップに分割して、ステップ毎の差分をとった値(Delta)を縦軸にプロットし、各Vthに対応するDAC値を横軸としてグラフ化したものである。
図19は、図18に示すグラフの値に対して、後述するように、加重平均を実行してスムージングしたグラフである。
実際のNANDフラッシュメモリに対してディストリビューション・リードを行うと、図18に示すように、滑らかでないグラフが得られることがある。この揺らぎの影響を軽減するため、Vthレベルがjに対応するヒストグラム値(Delta(j))に対して、前後数ステップのVthレベルのヒストグラムの値を加重平均することでヒストグラムの揺らぎの影響を小さくする手法をとることがある。例えば1ステップ離れる毎に影響を半分とするように、前後2ステップの加重平均をとると、加重平均後のヒストグラムの各Vth=jでの値(Smoothing(j))は、式(2)のようになる。
Smoothing[j] = Delta[j-2] / 4 + Delta[j-1] / 2 + Delta[j]
+ Delta[j+1] / 2 + Delta[j+2] / 4 …(2)
(加重平均)
図20は、加重平均を計算するためのフローチャートを示している。図20において、先ず、ステップ数が“N−3”に設定され(S41)、ステップカウントが“j=2”に初期化され(S42)、式(2)が実行される(S43)。この後、ステップカウントjが更新され(S44)、ステップ数に達するまで、ステップS43の演算が繰り返される(S45)。
図21は、図18のDレベル近傍を拡大したグラフを示しており、この揺らぎを有するヒストグラムに対して、上記加重平均の計算を実行することにより、図22に示すように、スムージングされたヒストグラムを得ることができる。
(一般的な最小値探索)
一般な最小値探索は、図22に示すような加重平均後のヒストグラム(Smoothing(j))が最小値をとる点(Vth_shifted(Level))を、各Vthレベルの底部(凹部)として求め、Vthレベルの底部(Vth_shifted(Level))とVthレベルの初期値(Vth_init(Level))との差分を、そのVthレベル(Level) でのシフト値(VthShift(Level))として、式(3)により求めている。
VthShift(Level) = Vth_shifted(Level) − Vth_init(Level) …(3)
図23は、ディストリビューション・リードの開始VthレベルのDAC値を DistStart_Vth(Level)としたときの最小値Vth_Shifted(Level)を探索するフローチャートの一例を示している。
図23において、先ず、ステップ数“N−3”が設定され(S51)、ステップカウントが“j=2”に初期化される(S52)。この後、加重平均後のヒストグラムのVth=jの値(Smoothing(j))が最小値Minとして設定され、ステップカウントjの値がMin_Vthに設定される(S53)。
次いで、ステップカウント“j”を更新して、(Smoothing(j))と最小値Minとが比較される(S54)。この比較の結果、(Smoothing(j))が最小値Minより小さい場合、(Smoothing(j))が最小値Minとして設定される(S56)。この動作が、ステップカウント“j”を更新して、ステップカウント“j”がステップ数“N−3”まで繰り返される(S57〜S54)。
ステップS57において、ステップカウント“j”がステップ数“N−3”に達したものと判別されると、ディストリビューション・リードの開始VthのDAC値DistStart_Vth(Level)とMin_Vthが加算され、ディストリビューション・リードの開始VthのDAC値をDistStart_Vth(Level)としたときの最小値Vth_Shifted(Level)が求められる(S58)。
図23は、差分データ(Delta value)が最小値となるVthが一点である場合において、差分データ が最小値となるVthを検出する方法を示している。しかし、差分データが最小値となるVthが幅を持っている場合、図24に示すような動作により、最小値となるVthの中心値(平均値)を求めることができる。
図24において、図23と同一部分には同一符号を付し、異なる部分についてのみ説明する。この例の場合、差分データ が最小値となるVthが検出された場合に設定されるフラグmin_found を有し、初期設定において、このフラグmin_found がリセットされる(S52−1)。この後、最小値の探索が実行され(S53〜S55)、最小値が検出された場合(S56−1、S56−2)、フラグmin_found がセットされているかどうかが判別され(S56−3)、セットされていない場合、フラグmin_found がセットされるとともに、差分データ が最小値となるVthの値jがMin_vth_lに保持される(S56−4)。さらに、Vthの値jがMin_vth_uに保持される(S56−5)。
この後、ステップカウント“j”の値が更新されて上記動作がステップ数“N−3”に達するまで繰り返される(S57〜S54)。
ステップカウント“j”の値がステップ数“N−3”に達すると、式(4)に基づき、最小値の平均値Min_vthが算出される(S57−1)。
Min_vth = (Min_vth_l − Min_vth_u)/2 …(4)
さらに、式(5)により、ディストリビューション・リードの開始VthのDAC値を DistStart_Vth(Level)としたときの最小値Vth_Shifted(Level)が求められる。
VthShift(Level) = DistStart_Vth(Level) + Min_vth …(5)
加重平均後のヒストグラムの分布の広がりが少ない場合にはこの方法で問題ないが、ヒストグラムの分布が広がっている場合には、「分布の底部」付近で加重平均したヒストグラムの値(Vth_shifted(x))の最小値に近い値をもつ領域が広がっていることがある。このため、加重平均したヒストグラムの揺らぎによってVthShift(Level)の値も変動し、このシフト値を使ってデータを読み出した場合のビットエラー率も安定しない、という問題がある。
実際のNANDフラッシュメモリに対してVthトラッキングを行いヒストグラムの底部が広がっている例を図25乃至図28に示す。
図25は、Dレベルの差分のデータを示しており、図26は、図25に示すデータにおいて、Vth=226DACのデータに含まれる“1”の数が、15個少なかった場合のグラフである。図25に示すヒストグラムは、212DACで最小値を示しているが、図26に示すヒストグラムは、224DACで最小値を示している。
図27は、図25に示すヒストグラムの5点加重平均をとったヒストグラムを示し、図28は、図26に示すヒストグラムの5点加重平均をとったヒストグラムを示している。
図27は、212DACでヒストグラムが最小になっているが、図28は、224DACでヒストグラムが最小になっている。すなわち、Vth=226DACのデータの中の1の個数が15個変動することによって、Vthトラッキングで得られる分布の底部のVthの位置が、212DACから224へと12DAC変化している。Vth=212〜224近傍ではディストリビューション・リードのステップ(4DAC)毎に1の個数が50個程度変化しているため、Vthの最適値の値が12DAC変化すると、それぞれのVthで読み出した場合に読み出したデータは約50bit*3=約150bit変化することになる。Vth=212DACに設定した場合とVth=224DACに設定した場合のエラービット数の違いは、図26に示す220DAC近傍の破線で囲まれたグラフの下側の面積に相当する。
このように、分布の底部が広がっている場合、分布の底部付近のデータに含まれる“1”の個数が15個程度変化すると、Vthの底部の最適値の位置は大きく変化し、結果的としてエラービット数が大きく変動する。この結果、分布が広がっている場合、このような手法ではVthトラッキングによるVthの最適値が変動して1kBあたり100bit程度の訂正能力を持つ強力なECCを使用してもエラー訂正できない可能性が高くなるという問題がある。
(第1の実施形態)
そこで、第1の実施形態では、加重平均をとったデータをVthのDAC単位に並べたヒストグラムから最小値を見つけるための探索を2回実行する。すなわち、1回目の探索では上述の例と同様にヒストグラムの最小値を求めるが、最小値をとるDAC値は求めない。2回目の探索では1回目の探索で見つけた最小値に予め定められたマージンを加えて探索のための閾値を作成し、ヒストグラムの中で閾値より小さくなるDAC値の最小値と最大値を探索する。第2回目の探索で検出されたDAC値の最大値と最小値の平均値をヒストグラムの底部をとるDAC値として求め、この値からVthの最適値を求める。
図29は、第1の実施形態に係るVthトラッキングを示している。図29を参照して第1の実施形態に係るVthトラッキングについて説明する。
先ず、Vthレベルの数が“M”、例えば“Max_Read_level −1”に設定され(S61)、Readレベル“i”が“0”に初期設定される(S62)。この状態において、NANDフラッシュメモリ20に対して、Readレベル毎にディストリビューション・リードが実行される(S63)。このディストリビューション・リードの動作は、図15に示す通りであり、Vthレベル毎に“1”の個数が計数される。
この後、図16に示す動作が実行され、隣接するVthレベルの“1”の個数の差分が演算され、差分データ(Delta value)と、Vthとにより、ヒストグラムが生成される(S64)。
次に、図20に示す動作が実行されて差分データの加重平均が演算され、加重平均したヒストグラムが作成される(S65)。
次いで、加重平均された値のヒストグラムの局所、例えば「最小値」を探索する第1の探索動作が実行される(S66)。
(第1の探索動作)
図30は、第1の探索動作を示しており、図23と同一部分には同一符合を付している。第1の探索は、図23と同様の動作により、ヒストグラムの「最小値」が1つだけ検出される。但し、この最小値探索の段階では差分データが最小値となるVthに対応するDAC値を記憶する必要は無い。すなわち、図30において、図23と異なるのは、図23に示すステップS58がない点である。
次に、第1の探索動作の結果求められた「最小値」に、予め決められた「マージン」、例えば15が加算されて「分布の底部の閾値」が生成され、加重平均したヒストグラムが分布の底部の閾値より小さな値をとる範囲、すなわち、分布の底部の領域を探索する第2の探索動作が実行される(S67)。この第2の探索動作では、分布の底部の領域のVthの最大値と最小値が1個ずつ検出される。さにら、第2の探索動作において、分布の底部の領域のVthの最大値と最小値の平均値が求められる。
(第2の探索動作)
図31は、第2の探索動作の一例を示している。先ず、Vthレベル“i”がVthレベルに設定され(S67−1)、ステップ数が“N−3”に設定され(S67−2)、ステップカウント“j”が“2”に設定され(S67−3)、分布の底部の領域を検出するためのフラグbottom_foundが“0”に設定される(S67−4)。さらに、前述したように、第1の探索の結果求められた最小値Minに、予め決められたマージンMargin、例えば15が加算されて、分布の底部の閾値Bottom_limit が生成される(67−5)。
この状態において、スムージングされたヒストグラムの値Smoothing[j]がBottom_limit より小さいかどうか判別される(S67−6)。この結果、差分データの値Smoothing[i]がBottom_limit より小さい場合、ステップカウント“j”の値が、分布の底部の領域のVthの最小値としてBottom_Rightに設定される(S67−7)。
次いで、フラグbottom_foundが“0”か、どうかが判別され(S67−8)、フラグbottom_foundが“0”である場合、フラグbottom_foundが“1”に設定されるとともに、ステップカウント“j”の値が、分布の底部の領域のVthの最大値としてBottom_Leftに設定される(S67−9)。
この後、ステップカウント“j”の値が更新されて上記動作が繰り返され(S67−10、S67−11〜S67−6)、ステップカウント“j”の値が“N−3”となった場合、式(6)により、Bottom_LeftとBottom_Rightの平均値Bottom[i]が求められる。
Bottom[i] = (Bottom_Left + Bottom_Right)/2 …(6)
上記「第2の探索」の後、図29に示すように、シフト値が演算される(S68)。
図32は、シフト値の演算動作の一例を示している。この演算は、先ず、Readレベル“i”がRead_Levelに設定される(S68−1)。この後、ディストリビューション・リードの開始DAC値DistStart_Vth[i]、平均値Bottom[i]、及びVthInit[i] に基づき、式(7)によりシフト値Shift[i]が演算される(S68−2)。
Shift[i] = DistStart_Vth[i] + Bottom[i] − VthInit[i] …(7)
このように、「分布の底部のVth」から「Vthの初期値」を引くことにより、「差分」を求めることができる。尚、補正が不要であれば、「差分」が「シフト値」となる。
また、必要であれば、「差分」に補正を加えて「シフト値」を求めてもよい。最も単純な補正方法としては、式(8)に示すように、図32で求めたシフト値に、レベル毎に予め決められている補正値 Comp(Level)が加算される。
Shift[i] = DistStart_Vth[i] + Bottom[i]
− Vth_init[i] + Comp[i] …(8)
上記のようにして、シフト値が求められる。この後、Readレベル“i”が更新されてReadレベルの最高値“M”まで上記動作が繰り返され、各Readレベルのシフト値が求められる(S69−S63)。
ここで、実際のNANDフラッシュメモリから読み出したデータと、ディストリビューション・リードの揺らぎがあった場合について、一般的な手法と、第1の実施形態を使ってVthの最適値を算出してみる。
図33、図34、図35は、実際のNANDフラッシュメモリから読み出したデータから一般的な手法を用いて、DレベルのVthの最適値を算出した例を示している。
一般的な手法の場合、図33に示すように、ディストリビューション・リードによって得られた“1”の個数の差分データを5点加重平均したヒストグラムの最小値を探索し、差分データ が最小値となるVthを求めている。図33に示す例の場合、Vth=212DACの時、差分データが最小値“155”となっている。このため、一般的な手法で求められるVthの最適値は、図34に示すように、212DACであり、DレベルのVthの初期値228DACに対するVth境界のシフト値は16DACである。
一方、図28に示した場合と同じように、ディストリビューション・リードの揺らぎによってVth=224DACのデータに含まれる“1”の数が“15”減った例を、図35に示している。
図35に示す例の場合、Vth=224DACの時に差分データが最小値151をとる。よって、一般的な手法で求められるVthの最適値は224DACであり、DレベルのVthの初期値228DACに対するVth境界のシフト値は、−4DACである。
図36、図37、図38は、図33、図34と同じ例に対して、第1の実施形態の手法を適用した場合を示している。
図36に示すように、第1の実施形態の場合、ディストリビューション・リードによって得られた“1”の個数の差分データを5点加重平均したヒストグラムの差分データの最小値を探索するが、最小値をとるVthは求めない。この例の場合、Vth=212DACの時、差分データは、最小値155をとる。
次に、図36に示すように、求めた最小値155に、予め定められたマージン15を加算して、「分布の底部」を探すための閾値が求められる。
閾値 = 最小値 + マージン = 155 + 15 = 170DAC
次に、加重平均をとったヒストグラムが閾値より小さい値をとるVthの両端が求められる。この例の場合、212DAC、216DAC、220DAC、224DACのとき、ヒストグラムは閾値より小さな値をとる。すなわち、ヒストグラムが閾値より小さな値をとる領域の左端は212DACであり、右端は224DACである。Vthの最適値は、式(9)に示すように、領域の左端のDAC値と右端のDAC値の平均値を求めることにより得られる。
最適値 = (領域の左端の値 + 領域の右端の値)/2
= (212+224)/2 = 218DAC …(9)
よって、図38に示すように、第1の実施形態により求められるVthの最適値は、218DACであり、DレベルのVthの初期値228DACに対するVth境界のシフト値は−10DACである。
図39、図40、図41は、図35と同じ例に対して、第1の実施形態の手法を適用した場合を示している。
図39に示すように、第1の実施形態は、ディストリビューション・リードによって得られた“1”の個数の差分データを5点加重平均したヒストグラムの最小値を探索するが、最小値をとるVthは求めない。この例の場合、Vth=224DACの時、差分データは、最小値151をとる。
次に、図40に示すように、探索された最小値151に、予め定められたマージン“15”を加算して、「分布の底部」を探すための閾値が次のように求められる。
閾値 = 最小値 + マージン
=151 + 15 = 166DAC
次に、図41に示すように、加重平均をとったヒストグラムが閾値より小さい値をとるVthの両端が求められる。この例の場合、212DAC、216DAC、220DAC、224DACのときにヒストグラムは閾値“166”より小さな値をとる。このため、ヒストグラムが閾値より小さな値をとる領域の左端は212DAC、右端は224DACである。Vthの最適値は領域の左端のDAC値と右端のDAC値の平均値より下記のように求められる。
最適値 = (領域の左端の値 + 領域の右端の値)/2
=(212+224)/2=218DAC
よって、第1の実施形態で求められるVthの最適値は、218DACであり、DレベルのVthの初期値228DACに対するVth境界のシフト値は−10DACである。
図37から図41に示すように、第1の実施形態により求めた場合、ディストリビューション・リードの値が揺らいだとしても、殆どの場合でVthの最適値に与える影響は、一般的な手法に比べて小さく抑えることができる。
上記第1の実施形態によれば、ディストリビューション・リードにより、NANDフラッシュメモリから読み出したデータ“1”の数の差分データを求め、この差分データを加重平均してスムージングし、このスムージングされたヒストグラムの最小値を求め、この最小値にマージンを加算して「分布の底部」を探すための閾値を求め、ヒストグラムが閾値より小さな値をとるVthの範囲を求め、このVthの範囲の両端のVthの値を求め、この両端のVthの値の平均値を求めることにより、Vthの最適値を求めている。このため、ディストリビューション・リードの各ステップで読み出されるデータのわずかなばらつきがVthの最適値の予測値に与える影響を小さく抑えることができる。したがって、Vthのシフト値を正確に求めることが可能であるため、NANDフラッシュメモリから正確にデータを読み出すことが可能であり、読み出しエラーを低減することが可能である。
尚、第1の実施形態は、加重平均をヒストグラムのそれぞれのステップに対して5点のデータを使って作成しているが、これに限らず、例えば3点のデータを使うなど、使うデータ数を変えることも可能である。
(第2の実施形態)
図42は、第2の実施形態に係るVthトラッキングを示している。図42において、図29と同一部分には同一符号を付し、異なる部分についてのみ説明する。
上記第1の実施形態は、ディストリビューション・リードにより読み出したデータ“1”の差分データの加重平均を求め、これよりヒストグラムの最小値を求めた(図29、S61〜S65、S66)。
これに対して、第2の実施形態は、図42に示すように、データ“1”の差分データの加重平均を求めず、差分データそのものヒストグラムに対して2回の探索が実行される(S61〜S64、S66、S67)。第2の実施形態は、第1の実施形態と同様に、最小値探索において、最小値をとるVthに対応するDAC値を記憶する必要は無い。
第2の実施形態において、第1回目の探索(S66)の結果求められた最小値に、予め定められたマージン、例えば“15”を加算し、分布の底部の閾値が生成される。この後、第2回目の探索(S67)が実行され、差分データのヒストグラムが分布の底部の閾値より小さな値をとる範囲、すなわち、分布の底部の領域が探索される。第2回目の探索では分布の底部の領域のVthの最大値と最小値が1個ずつ記憶される。
第2回目の探索の後、分布の底部の領域のVthの最大値と最小値の平均値が求められ、ディストリビューション・リードの開始DAC値を加えることによって分布の底部のVthの値が求められ、シフト値が求められる(S68)。
さらに、上記動作がReadレベルの最大値Mまで繰り返される(S69、S70〜S63)。
図43は、第1回目の探索、すなわち、最小値の探索動作(S66)を具体的に示している。図43と図30との相違点は、図30において、探索対象が差分データをスムージングしたヒストグラムであるのに対して、図43において、検索対象は、差分データそのものである。
すなわち、図43において、ステップ数が“N−1”に初期設定され(S66−1)、ステップカウント“i”が“0”に初期化され(S66−2)、最小値MinがDelta(i)に初期設定される(S66−3)。この状態において、ステップカウント“i”を更新して差分データ の最小値が探索される(S66−4〜S66−7)。最小値の探索動作は図30の場合と同様であるため、詳細な説明は省略する。
図44は、図42に示す第2回目の探索(S67)、すなわち、第1回目の探索で求められた最小値Minにマージンを加算して分布の底部の閾値を生成し、この閾値より小さな値をとるVthの範囲が探索する動作の例を示している。
図44において、図31と異なるのは、ステップ数の設定(S67−2−1)、ステップカウントの初期設定(S67−3−1)、及び差分データに基づき最小値を判別する工程(S67−6−1)であり、その他の部分は、図31と同様である。このため、図31と同一部分には同一符号を付し、具体的な説明は省略する。
図44の動作により、差分データから最小値に基づき設定された閾値より小さな値をつるVthの範囲が求められる。
この後、式(10)、図32に示すように、分布の底部のVthからVthの初期値を減算して差分が求められ、この差分がシフト値となる。
Shift[i] = DistStart_Vth[i] + Bottom[i] − VthInit[i] …(10)
また、補正が必要であれば、式(8)に示すように、予め設定された補正値Comp(Level)が加算されてシフト値が求められる。
第2の実施形態によれば、第1の実施形態と同様にディストリビューション・リードの各ステップで読み出されたデータの僅かなばらつきがVthの最適値の予測値に与える影響を抑えることが可能である。
また、第2の実施形態は、第1の実施形態と異なり、差分データに対して加重平均を求めていないため、第1の実施形態と同じステップ数のディストリビューション・リードを実行したときに、得られるヒストグラムのステップ数が第1の実施形態よりも多くなる。
例えばDレベルのVthの最適値を求めるためにディストリビューション・リードを25回実行する場合、第2の実施形態では、ヒストグラム作成のための差分データを得る動作によって、ヒストグラムは24点の有効データを有する。これに対して、第1の実施形態の場合、差分データを得る動作の後、5点加重平均を求める動作により、有効データが4点減する。このため、ヒストグラムは20点の有効データを持つこととなる。
このように、第2の実施形態の場合、差分データに対して加重平均を求めていないため、処理時間を第1の実施形態より短縮することが可能であるが、ヒストグラムの揺らぎの影響を第1の実施形態より受け易くなる。
(第3の実施形態)
図45は、第3の実施形態に係るVthトラッキングを示している。第1、第2の実施形態は、Vth分布の底部を検索した。これに対して、第3の実施形態は、Vth分布の頂部(突部)を検索する。すなわち、第1回目の探索において、Vth分布の局所最小値ではなく局所最大値が求められる。この求めたVth分布の最大値に基づき「閾値」が決定され、第2回目の探索でVth分布の底部ではなく、「閾値」より大きな値をとるVth分布の頂部が探索される。
図45は、図29に示す第1の実施形態と同様であり、第1回目の探索動作(S71)、第2の探索動作(S72)、及びシフト値の演算動作(S73)が第1の実施形態と異なっている。このため、第1回目の探索動作(S71)、第2回目の探索動作(S72)、及びシフト値の演算動作(S73)についてのみ説明する。
図46は、第1回目の探索動作(S71)を示している。第1回目の探索動作は、先ず、ステップ数が“N−3”に設定され(S71−1)、ステップカウントが“i=2”に初期設定される(S71−2)。この状態において、スムージングされたが最大値Maxとして設定される(S71−3)。この後、ステップカウント“i”がインクリメントされて(S71−4)、スムージングされたヒストグラムの値が最大値Max より大きいかどうかが判別される(S71−5)。この判別の結果、スムージングされたヒストグラムの値が最大値Max より大きい場合、最大値Maxが更新される(S71−6)。このような動作が、ステップカウント“i”がステップ数“N−3”となるまで繰り返される(S71−7〜S71−4)。
このように、第1回目の探索では、1つの最大値が探索される。第1の実施形態と同様に、第1回目の探索最大値をとるVthに対応するDAC値を記憶する必要は無い。
図47は、第2回目の探索動作(S72)を示している。第2回目の探索動作では、分布の頂部の領域としてVthの最大値と最小値が1個ずつ検出される。すなわち、第2回目の探索動作は、上記第1回目の探索動作(S71)により得られた最大値からマージンを減算して、分布の頂部の閾値を生成し、この閾値より大きな値をとるVthの範囲が探索される。
すなわち、図47において、先ず、Readレベルが“i=Readレベル”に初期設定され(S72−1)、ステップ数が“N−3”に設定される(S72−2)。さらに、ステップカウントが“i=2”に初期設定され(S72−3)、頂部領域を検出したことを示すフラグTop_found が“0”に初期設定される(S72−4)。この後、第1の探索動作(S71)により得られた最大値からマージンが減算されて閾値Top_limitが設定される(S72−5)。
この状態において、スムージングされたヒストグラムの値が閾値Top_limitより大きいかどうかが判別される(S72−6)。この判別の結果、ヒストグラムの値が閾値Top_limitより大きい場合、Top_Rightが“i”に設定される(S72−7)。この後、フラグTop_found が“0”かどうかが判別される(S72−8)。この場合、フラグTop_found が“0”であるため、フラグTop_found が“1”に設定されるとともに、Top_Leftが“i”に設定される(S72−9)。すなわち、分布の頂部の領域のVthの最小値がTop_Leftに設定される。
この後、ステップカウント“i”がインクリメントされ、ステップカウント“i”が“N−3”となるまで、上記動作が繰り返される(S72−10、S72−11〜S72−6)。このようにして、分布の頂部の領域のVthの最大値がTop_Rightに設定される。
ステップS72−11において、ステップカウント“i”が“N−3”となったことが判別された場合、分布の頂部の領域のVthの最大値と最小値の平均値が、式(11)により演算される(S72−12)。
Top[i] = (Top_Left + Top_Right)/2 …(11)
図48は、シフト値の演算動作(S73)を示している。シフト値は、分布の頂部のVthから、頂部の両端のVthの初期値の平均値を引いて求められる。すなわち、Vthレベルが“i=Vth_Level”に設定され(S73−1)、式(12)に基づき、シフト値が演算される(S73−2)。
Shift[i] = DistStart_Vth[i] + Top[i] − ( Vth_init[i-1]
+ Vth_init[i]) /2…(12)
尚、必要であれば、式(12)で求めたシフト値に、レベル毎に予め決められている補正値Comp(Level)を加算してもよい。
上記第3の実施形態によれば、ヒストグラムの最大値のシフト値を求めることができる。この最大値のシフト値に補正値を加算、又は減算することにより最小値のシフト値を推定することが可能である。このシフト値に基づきNANDフラッシュメモリ20の読み出し電圧を制御することにより、第3の実施形態によっても、NANDフラッシュメモリ20から読み出されるデータの誤り率を低下することが可能である。
尚、第3の実施形態は、上記動作に限らず、第2の実施形態のように、差分データの加重平均を求めず、差分データのヒストグラムに基づき、最大値を探索することも可能である。
(第4の実施形態)
上記第1乃至第3の実施形態は、分布の底部、又は頂部を探索した。これに対して、第4の実施形態は、分布の底部を探索する際、第1回目の探索動作において、探索範囲内に分布の頂部があるかどうかも探索する。探索範囲内に分布の頂部がある場合、分布の頂部の前後で最小値を探索し、第2回目の探索動作において、分布の底部の閾値を複数個設定する。すなわち、第4の実施形態は、第3の実施形態と同様に、分布の頂部の左側(分布の頂部よりVthレベルが小さい側)の最小値Minimum_lower(以下min_lと記す)と、分布の頂部の右側(分布の頂部よりVthレベルが大きい側)の最小値Minimum_upper(以下min_uと記す)を決めるための第1回目の探索動作と、分布の底部の左側の閾値 bottom_l_limitと、分布の底部の右側の閾値 bottom_u_limitを決めるための第2回目の探索動作を行う。
図49は、第4の実施形態に係るVthトラッキングの概略的な動作を示している。
図49を参照して、第4の実施形態の動作を概略的に説明する。尚、図49において、ステップS61〜S65のスムージングまでの動作は、第3の実施形態と同様であるため、説明は省略する。
ステップ81は、第1回目の探索動作の前半であり、分布の頂部の左側の最小値min_lが探索される。この探索の途中において、頂部が検出された場合、後述するフラグtop_foundが“1”に設定される。第1回目の探索動作の前半が終了した後、フラグtop_foundが“1”であるかどうかが判別され(S82)、フラグtop_foundが“1”であり、頂部が検出されている場合、第1回目の探索動作の後半が実行され、分布の頂部の右側の最小値min_uが探索される(S83)。
上記のようにして、分布の頂部の左側の最小値min_lと頂部の右側の最小値min_uが検出された後、第2回目の探索動作の前半が実行される(S84)。第2回目の探索動作の前半は、第1の実施形態と同様の動作により、分布の頂部の左側の最小値min_lにマージンを加算して分布の底部の閾値bottom_l_limitが設定され、この閾値bottom_l_limitにより定められた分布の底部の領域のVthの最小値と最大値が探索される。
この後、フラグtop_foundが“1”であるかどうかが判別され(S85)、フラグtop_foundが“1”である場合、第2回目の探索動作の後半が実行される(S86)。第2回目の探索動作の後半は、前半と同様の動作により、分布の頂部の右側の最小値min_uにマージンを加算して分布の底部の閾値bottom_u_limitが設定され、この閾値bottom_u_limitにより定められた分布の底部の領域のVthの最小値と最大値が探索される。
このようにして得られた分布の頂部の左側の底部の領域のVthの最小値と最大値の中央の値と、分布の頂部の右側の底部の領域のVthの最小値と最大値の中央の値が演算され、Vthの低い方の底部のVthレベルと、Vthの高い方の底部のVthレベルが求められる(S87)。
このような動作が、Readレベル“i”を更新して(S88)、Readレベル“Max_Read_Level − 1”まで繰り返される(S89〜S63)。
上記動作を実行するため、第4の実施形態は、分布の頂部を探索するために、2つの閾値と3つ又は4つのフラグを用いる。
(1)第1の閾値top_high_limit は、ヒストグラムの値がこの値より大きくなると、分布の頂部の領域とみなす。例えばスムージング処理を行わないヒストグラムにおいて、top_high_limitは、例えば150DACであり、スムージング処理したヒストグラムにおいて、top_high_limitは、例えば300DACであるとする。
(2)第2の閾値top_low_limit は、ヒストグラムの値がこの値より小さくなると、分布の底部の領域とみなす。例えばスムージング処理を行わないヒストグラムにおいて、top_low_limitは、例えば100DACであり、スムージング処理したヒストグラムにおいて、top_low_limitは、例えば200DACであるとする。
(3)フラグbottom_l_foundは、初期値を“0”とした後に、Vthの小さい方からヒストグラムを探索し、分布の底部が最初に探索されたとき、“1”にセットされる。すなわち、Vthの小さい方からヒストグラムの値がチェックされ、ヒストグラムの値が、top_low_limit より小さくなったとき、bottom_l_foundが“1”にセットされる。
(4)フラグtop_foundは、初期値が“0”に設定された後、Vthの小さい方からヒストグラムを探索し、フラグbottom_l_foundが“1”の状態において、分布の頂部が探索されたとき“1”に設定される。すなわち、Vthの小さい方からヒストグラムの値が探索され、フラグbottom_l_foundが“1”の状態で、ヒストグラムの値がtop_high_limitより大きくなったとき、フラグtop_foundが“1”に設定される。
(5)フラグbottom_u_foundは、初期値が“0”に設定された後、Vthの小さい方からヒストグラムを探索し、top_foundが“1”の状態において、分布の底部が探索されたとき“1”に設定される。すなわち、Vthの小さい方からヒストグラムの値が探索され、top_foundが“1”の状態で、ヒストグラムの値がtop_low_limitより小さくなったとき、フラグbottom_u_found が“1”に設定される。
(6)フラグsearch_endは、初期値が“0”に設定された後、Vthの小さい方からヒストグラムを探索し、bottom_l_foundが“1”の状態において、分布の頂部が探索されたとき“1”に設定される。すなわち、Vthの小さい方からヒストグラムの値が探索され、bottom_l_foundが“1”の状態で、ヒストグラムの値がtop_high_limitより大きくなったとき、フラグsearch_endが“1”に設定される。
尚、フラグsearch_endは、オプションであり、使わなくてもよい。
次に、図50乃至図53を用いて、上記第1、第2の探索動作を具体的に説明する。
(第1回目の探索動作の前半)
図50は、第1回目の探索(頂部探索)動作の前半のフローチャートを示している。第1回目の探索の概略動作は、フラグtop_found が“1”になるまで、分布の頂部の左側の最小値 min_lが更新され、フラグtop_found “0”である区間の最小値min_lが求められる。また、フラグtop_found が“1”になると、最小値min_lが確定される。
すなわち、第1回目の探索動作の前半において、先ず、ステップ数が“N−3”に設定され(S81−1)、フラグbottom_l_found、bottom_u_found、top_found、search_endが“0”にリセットされる(S81−2)。さらに、ステップカウントが“j=2”に設定され(S81−3)、Vthの低い方からヒストグラムの探索が実行される。すなわち、スムージングされたヒストグラムの値Smoothing[j]が上述した第2の閾値top_low_limitより小さいかどうかが判別される(S81−4)。この結果、ヒストグラムの値Smoothing[j]が第2の閾値top_low_limitより小さい場合、フラグbottom_l_foundが“1”に設定される(S81−5)。
すなわち、底部が検出されたため、ヒストグラムの値Smoothing[j]が最小値min_lに設定され(S81−6)、ステップカウント“j”がインクリメントされて(S81−7)、ヒストグラムの値Smoothing[j]が上述した第1の閾値top_high_limitより大きいかどうかが判別される(S81−8)。この結果、ヒストグラムの値Smoothing[j]が、第1の閾値top_high_limitより小さい場合、ヒストグラムの値Smoothing[j]が、最小値min_lより小さいかどうかが判別される(S81−9)。この判別の結果、ヒストグラムの値Smoothing[j]が、最小値min_lより小さい場合、最小値Minが更新される(S81−10)。この後、ステップカウント“j”がステップ数“N−3”に達したかどうかが判別され(S81−11)、達していない場合、ステップカウント“j”がインクリメントされて(S81−7)、上記動作が繰り返される。
上記動作により、ステップ(S81−8)において、ヒストグラムの値Smoothing[j]が、第1の閾値top_high_limitより大きいと判別された場合、フラグtop_foundが“1”に設定され(S81−12)、頂部領域の左側の最小値top_lowerにステップカウント“j”が設定される(S81−13)。フラグtop_found が“1”に設定された状態において、分布の頂部の左側の最小値min_lが確定される。
尚、ステップ(S81−4)の判別の結果、ヒストグラムの値Smoothing[j]が第2の閾値top_low_limitより大きい場合、ステップカウント“j”がインクリメントされ(S81−14)、ステップ(S81−4)の判別が繰り返される。ステップカウント“j”がステップ2からステップ数“N−3”に達するまで top_low_limit 以下になることがない場合(S81−15)、探索結果は得られない。
(第1回目の探索動作の後半)
図51は、第1回目の探索動作の後半を示している。
上述したように、フラグtop_found が“1”に設定された場合、頂部の左側の最小値min_lは更新しない。このため、フラグtop_found が“1”にセットされた段階で、頂部の左側の最小値min_lは確定する。この状態において、ヒストグラムの値が第2の閾値top_low_limitより小さくなるまで、頂部の左側の最小値min_lと、頂部の右側の最小値min_uは両方とも更新されない。
フラグtop_found“1”の状態で、ステップカウント“j”が更新されて(S83−0)、jが N−3 より小さければ(S83−1)さらに探索が進められる。ヒストグラムの値 Smoothing[j] が、第1の閾値 top_hing_limit より大きい場合(S83−2)、top_upper が j に設定される(S83−13)。ヒストグラムの値Smoothing[j]が第2の閾値top_low_limitより小さくなると(S83−3)、フラグbottom_u_foundが“1”に設定される(S83−4)。さらに、ヒストグラムの値が頂部の右側の最小値min_uにセットされる(S83−5)。
この状態において、ステップカウント“j”が更新され(S83−6)、探索範囲の最後まで、頂部の右側の最小値min_uを更新しながらステップカウント“j”が“N−3”に達するまで頂部の右側の最小値min_uの探索が続けられる(S83−7,S83−8,S83−9,S83−10)。
ここで、フラグtop_foundが“1”にセットされているため、頂部の左側の最小値min_lは更新されない。
ステップカウント“j”が“N−3”に達した場合、分布の頂部の領域のVthの最大値と最小値の平均値が、式(13)により演算される(S83−12)。
Top[j] = (top_lower + top_upper)/2 …(13)
さらに、フラグsearch_endを用いる場合、フラグbottom_u_foundが“1”の状態で、ステップ(S83−7)において、ヒストグラムの値が、第1の閾値top_high_limitより大きくなった場合、フラグsearch_endが“1”にセットされ(S83−11)、式(13)により、分布の頂部の領域のVthの最大値と最小値の平均値が演算される(S83−12)。
尚、ステップ(S83−2)において、ヒストグラムの値が、第1の閾値top_high_limitより小さく、フラグbottom_u_foundが“0”の状態で探索動作が終わった場合(S83−1)、探索範囲に分布の頂部全体が含まれなかったことになる。この場合、分布の底部は1つしか含まれなかったこととなるため、頂部の左側の最小値min_lを、第3の実施形態の最小値minのように扱い、第2回目の探索を行い、1つの分布の底部の位置が求められる。
さらに、オプションのフラグsearch_endを用いる場合において、フラグsearch_endが“1”の状態で探索動作が終わった場合、探索範囲に分布の頂部全体が含まれ、その両脇に2個の分布の底部が見つかり、かつ、分布の頂部の右側(分布の頂部よりVthが高い領域)の分布の底部全体が含まれることが分かる。
(第2回目の探索動作の前半)
図52は、第2回目の探索動作の前半を示している。
第1回目の探索動作において、探索がフラグbottom_u_foundが“1”の状態で終わった場合、探索範囲に「分布の頂部」全体が含まれるとともに、「分布の底部」の候補が2つ存在することになる。この場合、次のようにして第2回目の探索動作を行い、2つの分布の底部が検出される。
先ず、第1の実施形態と同様に、予め定められたマージン、例えば15DACが最小値min_lに加算され、式(14)に示すように、閾値bottom_l_limitが求められる(S84−1)。
bottom_l_limit = min_l + 15 …(14)
さらに、ステップ数が“N−3”に設定され(S84−2)、フラグbottom_l_found、bottom_u_found、top_found、search_endが“0”にリセットされ(S84−3)、ステップカウントが“j=2”に設定される(S84−4)。
この状態において、探索領域のVthの最小値から順にヒストグラムの値が閾値bottom_l_limitと比較され、ヒストグラムの値が閾値bottom_l_limitより小さいかどうか判別される(S84−5)。この結果、ヒストグラムの値が閾値bottom_l_limitより小さい場合、フラグbottom_l_foundが“1”に設定され(S84−6)、bottom_l_lower、及びbottom_l_upperにステップカウント“j”の値、すなわち、Vthの値が設定される(S84−7)。この後、bottom_l_lowerは更新されない。
フラグtop_foundが“0”で、フラグbottom_l_foundが“1”の状態において、ステップカウント“j”が更新され(S84−8)、ヒストグラムの値が閾値top_high_limit、及びbottom_l_limitと比較される(S84−9、S84−10)。この結果、ヒストグラムの値が閾値top_high_limitより小さく(S84−9)、閾値bottom_l_limitより小さい場合(S84−10)、そのときのステップカウント“j”の値、すなわち、Vthの値がbottom_l_upperにセットされる(S84−11)。
この後、ステップカウント“j”が“N−3”に達するか、フラグsearch_endを用いる場合において、ヒストグラムの値が閾値top_high_limitを超えるまで、ヒストグラムの値が閾値bottom_l_limitより小さい場合、bottom_l_upperの値が更新される(S84−12、S84−8)。
ステップ(S84−9)において、ヒストグラムの値が閾値top_high_limitを越えたとき、フラグtop_foundが“1”にセットされる(S84−13)。このとき、一つ目の底部全体が検出されたことが確定する。この後、ステップ(S132)において、ステップカウント“j”が“N−3”に達した場合と同様に、式(15)により、bottom_l_lower、及びbottom_l_upperの平均値Bottom[j]が演算される(S84−14)。
Bottom_l[j] = (bottom_l_lower + bottom_l_upper)/2 …(15)
尚、フラグtop_foundが“0”の状態で、ヒストグラムの値が閾値bottom_l_limitより大きいまま探索が終了した場合(S84−5、S85−15、S84−16)、一つ目の底部の全体は検出されなかった可能性がある。
(第2回目の探索動作の後半)
図53は、第2回目の探索動作の後半を示している。
第2回目の探索動作の前半と同様に、予め定められたマージン、例えば15DACが最小値min_uに加算され、式(16)に示すように、閾値bottom_l_limitが求められる(S86−1)。
bottom_u_limit = min_u + 15 …(16)
この後、ステップカウントが“j=2”に設定される(S86−2)。
この状態において、探索領域のVthの最小値から順にヒストグラムの値が閾値bottom_u_limitとされ、ヒストグラムの値が閾値bottom_u_limitより小さいかどうか判別される(S86−3)。この結果、ヒストグラムの値が閾値bottom_u_limitより小さい場合、フラグbottom_u_foundが“1”に設定され(S86−4)、bottom_u_lower、bottom_u_upperにステップカウント“j”の値、すなわち、Vthの値が設定される(S86−5)。この後、bottom_l_lowerは更新されない。
次いで、ステップカウント“j”が更新され(S86−6)、ヒストグラムの値と閾値top_high_limit、及び閾値bottom_u_limitが順次比較される(S86−7、S86−8)。この結果、ヒストグラムの値が閾値top_high_limitより小さく(S86−7)、閾値bottom_u_limitより小さい場合(S86−8)、そのときのステップカウント“j”の値、すなわち、Vthの値がbottom_u_upperにセットされる(S86−9)。
この後、ステップカウント“j”が“N−3”に達するか、フラグsearch_endを持いる場合において、ヒストグラムの値が閾値top_high_limitを超えるまで、ヒストグラムの値が閾値bottom_u_limitより小さい場合、bottom_u_upperの値が更新される(S86−10、S86−6)。
ステップ(S86−7)において、ヒストグラムの値が閾値top_high_limitを越えた場合、フラグSearch_endが“1”にセットされる(S86−11)。オプションのフラグsearch_endを持いる場合、フラグsearch_endに“1”がセットされた以後、最小値bottom_l_lower、bottom_l_upper、bottom_u_lower、bottom_u_upperは更新されない。
ステップ(S86−10)において、ステップカウント“j”が“N−3”に達した場合、又はフラグSearch_endが“1”にセットされた場合、上記のようにして得られた最小値bottom_l_lower、bottom_l_upper、bottom_u_lower、bottom_u_upperから2つの底部の位置、すなわち、Vthの低い方の底部のVthレベルBottom_l[j]と、Vthの高い方の底部のVthレベルBottom_u[j]が式(17)より演算される(S86−12)。
Bottom_l[j] = (bottom_l_lower + bottom_l_upper)/2
Bottom_u[j] = (bottom_u_lower + bottom_u_upper)/2 …(17)
底部の位置は、探索が終了した時、フラグbottom_l_foundが“1”で、フラグbottom_u_foundが“1”であれば有効である。
この後、図54に示すように、2つの底部の位置Bottom_l[j]、Bottom_u[j]から2つの底部の初期のVthレベル(VthInit)からのシフト値が式(18)に基づき演算される(S87−1、S87−2)。
Shift_l[j] = Bottom_l[j] − VthInit[j]
Shift_u[j] = Bottom_u[j] − VthInit[j] …(18)
尚、第4の実施形態は、分布の探索範囲内に底部が複数個存在することを前提として探索したが、これに限らず、分布の探索範囲内に頂部が複数個存在することを前提として探索することも可能である。
上記第4の実施形態によれば、分布の底部を探索する際に、探索範囲内の頂部も探索している。このため、探索範囲内に分布の底部又は頂部が1つしかないことを前提として探索する場合、分布の底部を探索しているとき、分布の頂部が検出されたり、分布の頂部を探索しているとき、分布の底部が検出されたりした場合、分布の底部の位置に頂部があると判定したり、分布の頂部の位置に底部があると誤動作が生じる可能せいがあるが、本実施形態の場合、このような誤動作を防止することが可能である。
また、第4の実施形態によれば、分布の探索範囲内に、底部が複数個存在することを前提として探索しているため、分布のシフト量が予想よりも大きい場合にも、正しい分布の底部が含まれる可能性が高くなり、シフト量の予測の信頼性を向上することが可能である。
(第5の実施形態)
第5の実施形態は、第4の実施形態において、分布の底部を求める際、探索範囲に分布の頂部があるかどうかも求める。
すなわち、第5の実施形態において、探索範囲内で分布の頂部が検出された場合、分布の頂部の位置と、もとのVth分布から求めたVthレベルの差分情報を用いる。例えば、Fレベルの探索中に分布の頂部を見つけた場合、FレベルよりVthレベルが低い位置に頂部があった場合、頂部よりVthレベルが小さい方向、すなわち、
(頂部の位置)−(もとのVthのFレベルとEレベルの差分)
の位置に底部があると予測し、及び/又は、頂部よりVthが大きい方向、すなわち、
(頂部の位置)+(もとのVthのGレベルとFレベルの差分)
の位置に底部があると予測する。
具体的には、図50に示す第1回目の探索動作の前半のステップ(S81−3)、及び図51に示す第1回目の探索動作の後半のステップ(S83−9)のときのVthをそれぞれ最小値top_lower、top_upperに記録し、次式に示すように、これらの平均値から頂部の位置を求めることも可能である。
頂部の位置=(top_lower + top_upper)/2
頂部の位置は、探索動作が終了した時、フラグbottom_u_foundが“1”であれば有効である。
第5の実施形態の動作は、頂部の位置を使って底部の位置を予測する以外、第4の実施形態と同様であり、第4の実施形態のフローチャートに頂部の位置の求め方を示しているため、第5の実施形態のフローチャートは省略する。
尚、上記第3の実施形態において、分布の頂部の位置を求めるために、分布の最大値(max)から頂部を探すための閾値を求めた。しかし、これに限定されるものではなく、例えば第4及び第5の実施形態のようにヒストグラムの値が300以上であれば頂部であるとみなし、ヒストグラムが300以上のVthレベル範囲の中央の値を分布の頂部の位置と定めたり、頂部領域の範囲を予め規定された割合で分割した位置において、頂部の位置を推定するようにしたりする、簡略化した手法をとることも可能である。
上記第5の実施形態によれば、分布の底部を探索するときに分布の頂部を検出した場合で、検出すべき分布の底部が探索範囲内に含まれない場合、分布の頂部の形状の上方を組み合わせて分布の底部の位置を推定している。このため、Vthのシフト量が想定よりも大きい場合において、再度、ディストリビューション・リードを実行することなく、分布の底部の位置を検出することが可能となる。
(第6の実施形態)
図55(a)(b)乃至図62(a)(b)は、第6の実施形態を示すものであり、加重平均された値のヒストグラムに対して、一次関数、又は一次関数と等価な作図手法を用いることにより、分布の底部のVthを予測する例を示している。
図55(a)(b)乃至図62(a)(b)において、各図の(a)は、図27に対応する実際のNANDフラッシュメモリを読み出したデータから作成したヒストグラム、各図の(b)は、図28に対応する実際のNANDフラッシュメモリから読み出したデータにディストリビューション・リードの誤差15をVth=226DACに意図的に付加したデータから作成したヒストグラムに対応している。ディストリビューション・リードの誤差が第6の実施形態で得られる結果に対して与える影響が小さいことを示す目的で両方を示している。
図55(a)(b)は、分布の1つの底部のVthを予測する場合において、分布の頂部の頂点が探索範囲に含まれていないことが分かっている場合を示している。この場合、探索範囲(例えば200DAC〜248DAC)内において、加重平均された値のヒストグラムの両端から、それぞれの差分データが“0”となる点に向かって交差するように2つの直線を引き、これら2つの直線の交点を分布の底部と予測している。
この手法によれば、第1の実施形態とほぼ同じVthに底部があると予測することができる。
図56(a)(b)は、分布の1つの底部のVthを予測する場合において、分布の頂部の頂点を探索範囲に含まないことが分かっている場合を示している。この場合、探索範囲内において、加重平均をとったヒストグラムの両端でそれぞれ3ステップ分の平均を求め、両端の3ステップの中心のVthから、それぞれの差分データが“0”となる点に向かって交差するように2つの直線を引き、これら2つの直線の交点を分布の底部と予測している。
この手法によれば、第1の実施形態とほぼ同じVthに底部があると予測することができる。
図57(a)(b)は、第1の実施形態により検出された分布の底部の両端のヒストグラムの位置から、それぞれの差分データが“0”となる点に向かって交差するように2つの直線を引き、これら2つの直線の交点を分布の底部と予測している。
この手法によっても、第1の実施形態とほぼ同じVthに底部があると予測することができる。
図58(a)(b)は、第1の実施形態により検出された分布の底部の両端からそれぞれ1ステップ(4DAC)分外側(232DAC)のヒストグラムの位置から、それぞれの差分データが“0”となる点に向かって交差するように2つの直線を引き、これら2つの直線の交点を分布の底部と予測している。
この手法によっても、第1の実施形態とほぼ同じVthに底部があると予測することができる。
図59(a)(b)は、第1の実施形態により検出された分布の底部の両端からそれぞれ2ステップ分外側(236DAC)のヒストグラムの位置から、それぞれの差分データが“0”となる点に向かって交差するように2つの直線を引き、これら2つの直線の交点を分布の底部と予測している。
この手法によっても、第1の実施形態とほぼ同じVthに底部があると予測することができる。
図60(a)(b)は、第1の実施形態により検出された分布の底部の両端からそれぞれ3ステップ分外側(240DAC)のヒストグラムの位置から、それぞれの差分データが“0”となる点に向かって交差するように2つの直線を引き、2つの直線の交点を分布の底部と予測している。
この手法によっても、第1の実施形態とほぼ同じVthに底部があると予測することができる。
図61(a)(b)は、図60(a)(b)の探索範囲をさらに1ステップ(4DAC)外側、すなわち第1の実施形態により検出された分布の底部の両端からそれぞれ4ステップ分外側のヒストグラムの位置から直線をひこうとしたところ、分布の底部のマイナス側がVthトラッキングの探索の下限に達してしまったため、図60(a)(b)に対して、上限を1ステップ(4DAC)分外側(244DAC)のヒストグラムの位置から、それぞれの差分データが“0”となる点に向かって2つの直線が交差するように直線を引き、2つの直線の交点を分布の底部と予測している。
この手法によっても、第1の実施形態とほぼ同じVthに底部があると予測することができる。
図62(a)(b)は、図60(a)(b)の探索範囲をさらに2ステップ(8DAC)外側、すなわち第1の実施形態により検出された分布の底部の両端からそれぞれ5ステップ分外側のヒストグラムの位置から直線をひこうとしたところ、分布の底部のマイナス側がVthトラッキングの探索の下限に達してしまったので、図60(a)(b)に対して上限を2ステップ(8DAC)分外側(248DAC)のヒストグラムの位置から、それぞれの差分データが“0”となる点に向かって2つの直線が交差するように直線を引き、2つの直線の交点を分布の底部と予測している。
この手法によっても、第1の実施形態とほぼ同じVthに底部があると予測することができる。
尚、図示しないが、図57(a)において、分布の底部の両側から数ステップの平均をとり、その平均値をとったVthの中心のVthから図56(a)のように、2つの直線が交差するように直線を引いても、同様の結果を得ることができる。
また、同様に図示しないが、図55(a)(b)〜図62(a)(b)の手法を、加重平均をとったヒストグラムではなく、加重平均を取る前の差分データによるヒストグラムに対して適用しても同様の効果が得られる。
また、図55(a)(b)〜図62(a)(b)は、実際のNANDフラッシュメモのリードデータ、若しくはそれに準じるデータを用いた。
これに対して、図63(a)(b)、図64(a)(b)は、正規分布を仮定して計算で求めた分布に対して同じ手法を用いた場合を示している。
図63(a)において、Vthが200DACの点と、240DACの点をとり、CレベルとDレベルのデータの分布のSUMのヒストグラムが200DACと240DACを通る垂線と交差する点からVthが200DACの点と、240DACの点に向かって2つの直線が交差するように直線を引き、2つの直線の交点を分布の底部と予測している。
このようにして予測した分布の底部は、SUMのヒストグラムの最小値、及びCレベルとDレベルのデータの分布の交点に近いVthを予測している。これは分布の底部を予測するための作図で引いた直線でCレベルの分布とDレベルの分布を近似し、且つ、Vthが200DACと240DACの位置のSUMのヒストグラムを結んだ直線(図63に示す補助線AL)でSUMを近似して、Cレベルの分布曲線とDレベルの分布曲線の交点を予測する一次近似に相当している。
このため、一次近似が実際の分布に近い場合、すなわちCレベルの分布曲線とDレベルの分布曲線の交点付近では良い近似になる。すなわち、第1の実施形態に示す方法で求めた分布の底部の近傍で、この手法を用いると、第1の実施形態の手法よりも高い精度で2つのレベルの分布曲線の交点を求めることができる。
図57(a)(b)〜図59(a)(b)に示す手法が、一次近似の分布に近いと予想される例である。
図60(a)(b)〜図62(a)(b)に示す手法は、手法1で求めた中心値が実際の中心値からずれている場合に相当する。図60(a)(b)〜図62(a)(b)に示す手法は、第1の実施形態の手法の予測が、ディストリビューション・リードの揺らぎの影響などでずれたとしても、図60(a)(b)〜図62(a)(b)に示すような処理を行うことで、2つのレベルの交点に近い位置に分布の底部を補正できることを示している。
この手法は、分布を一次近似できる範囲では有効であるが、一次近似とはみなせない場合、例えば分布の頂部を越えてしまった場合、誤差が大きくなる。
図63(b)は、分布の頂部を越えた場合に本手法を適用した例を示している。図63(b)は、分布の頂部を越えてしまっているため、直線がCレベル、Dレベルの分布の交点付近の分布とは異なった傾きとなり、図63(a)に示す予測値よりも誤差が大幅に大きくなっていることが分かる。
図64(a)(b)は、分布の底部近傍で、この手法を適用した例であり、実際のCレベルの分布とDレベルの分布の交点を非常によく近似している。
図65(a)(b)は、図64(a)(b)のVthの組み合わせを入れ替えた場合を示すものであり、ディストリビューション・リードのステップの都合で、分布の交点が中央に設定できない場合の例を示している。図65(a)(b)は、図64(a)(b)よりも誤差は大きくなっているが、交差した2つの直線のVthの中央値、すなわち図65(a)では220DAC、図65(b)では215DACよりもCレベルの分布とDレベルの分布の交点に近い位置にVthの底部の位置を補正している。
なお、図66(a)(b)は、ヒストグラムの値を入れ替えて、2つの直線を交差させた例を示している。NANDフラッシュメモリのデータ分布が正規分布に近い場合、図55(a)(b)〜図62(a)(b)の手法の方がよい近似を与えるが、NANDフラッシュメモリのデータ分布が異なるパターンの場合、図66(a)(b)に示すような手法が合う可能性がある。
図67(a)(b)を用いて、図66(a)(b)の近似について説明する。図67(a)で、図66(a)の予測の例を示している。図67(b)に示す矢印が、この近似方法で予測する分布である。交差した2つの直線と、230DAC付近に記載された矢印の交点から引いた鉛直線で囲まれる2個の三角形がエラー分布である。この近似では傾きの急な直線と鉛直線とX軸で作る三角形の底部辺が、傾きの緩い直線と鉛直線とX軸で作る三角形の底部辺よりも長いため、DレベルからCレベルに移動したデータの割合が非常におおきくなり、良い近似が得られていないことが分かる。
図68は、図55(a)から図65(b)に示す交点の横軸の値を示す近似式の算出方法を示している。
交差する2つの直線を引く横軸の範囲(Vth)と、交差する2つの直線の縦軸の値(“1”の個数)を用いて、横軸の範囲Wを表すと、式(19)のようになる。
W=W*(a/(a+b))+W*(b/(a+b)) …(19)
ここで、
“a”は、交差する2つの直線の左側の縦軸の値(“1”の数)であり、
“b”は、交差する2つの直線の右側の縦軸の値(“1”の数)である。
従って、
交差する2つの直線の左側のX軸の値を(Vth_a)、
交差する2つの直線の右側のX軸の値を(Vth_b)
とすると、横軸の範囲Wは、式(20)で示される。
W = Vth_b − Vth_a …(20)
このため、交点Vth_bottomは、式(21)で示される。
Vth_bottom = Vth_a + W * (a / (a + b))
= Vth_a + (Vth_b - Vth_a) * (a / (a + b))
= Vth_a * b / (a + b) + Vth_b * a / (a + b) …(21)
一方、図66(a)から図67(b)までの交点は、式(19)の“a”と“b”を入れ替えたものであるから、交点Vth_bottom’は、式(22)のようになる。
Vth_bottom’ = Vth_a + W * (b / a+b))
=V th_a * a / (a+b) + Vth_b * b / (a+b) …(22)
今回の例では、式(21)が交点の位置の予測に有効であるが、条件によっては、式(22)が有効である場合もあり得る。
(第7の実施形態)
図69は、第7の実施形態を示している。
上記第1、第2、第4の実施形態において、分布の底部を求めるための閾値は、ヒストグラムの最小値とマージンから演算により求めた。しかし、これに限定されるものではなく、ヒストグラムの最大値に基づき、図69に示すようなテーブルT1を用意し、このテーブルT1を用いて閾値を設定することも可能である。
図69に示すテーブルT1は、頂部の高さに対して閾値が設定されている。すなわち、正規分布を仮定した場合、例えば図6、図7に示すように、各レベルの値を合計したヒストグラムにおいて、高い分布に隣接する底部の位置は、隣接する頂部の高さが高いほど低くなる。このため、図69に示すように、分布の高さが高くなるほど小さな閾値を設定されている。
図69に示すテーブルT1は、例えばNANDフラッシュメモリ20内に記憶されている。このテーブルT1の内容は、ディストリビューション・リードを実行する際に、コントローラ11aにより読み出され、例えばRAM15に記憶されている。コントローラ11aは、第2の探索動作の際、第1の探索動作において、検出された頂部の最大値に基づきテーブルT1を参照して閾値を選択し、第2の探索動作を実行する。
尚、図69の閾値は、分布の底部の閾値として使うことに限定されるものではなく、例えば最小値に加えるマージンとして使うこともできる。
第7の実施形態によれば、予め分布の高さと閾値の関係を示すテーブルを用いることにより、閾値を求めるための演算が必要ないため、処理速度を高速化することが可能である。
(第8の実施形態)
図70は、第8の実施形態を示している。
上記第3、第4、第5の実施形態において、分布の頂部を用いて分布の底部の位置を予測する場合、演算処理により求めた。
これに対して、第8の実施形態は、図70に示すように、頂部の位置(Vthの初期値からのシフト値)に対応して、底部の位置の補正値が予め設定されたテーブルT2が設けられている。このテーブルT2は、第7の実施形態と同様に、ディストリビューション・リードを実行する際に、コントローラ11aにより読み出され、例えばRAM15に記憶されている。コントローラ11aは、Vthの初期値に基づきテーブルT2を参照し、分布の底部の位置の補正値を求め、分布の底部の位置を予測する。
上記第8の実施形態によれば、頂部の位置と、底部の位置の補正値の関係を示すテーブルを用いることにより、分布の底部の位置を予測するための演算を不要とすることができる。このため、処理速度を高速化することが可能である。
その他、本発明は上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
11…メモリデバイス、11a…コントローラ、18…ECC回路、19…カウンタ、20…NANDフラッシュメモリ、27…制御信号及び制御電圧発生回路。

Claims (12)

  1. n個(nは2以上の自然数)の閾値電圧の1つが設定されることによりデータを記憶する複数のメモリセルを有するメモリと、
    前記メモリからデータを読み出す制御部と、
    を具備し、
    前記制御部は、前記複数のメモリセルの閾値電圧の分布を調べる読み出し動作により、前記複数のメモリセルから閾値電圧毎にデータを読み出し、
    前記閾値電圧毎に読み出されたデータの差分データを求め、
    前記差分データより前記閾値電圧の分布の最小値を求め、
    前記最小値に基づき、前記最小値より小さな値の閾値電圧の範囲を求め、
    前記求めた閾値電圧の範囲の中央の電圧を読み出し電圧に設定することを特徴とする半導体記憶装置。
  2. 前記制御部は、前記差分データを加重平均し、加重平均されたデータより前記閾値電圧の分布の最小値を求めることを特徴とする請求項1記載の半導体記憶装置。
  3. 前記制御部は、前記最小値に基づき、前記最小値より小さな値の閾値電圧の範囲を求めるとき、前記最小値にマージンを加算して閾値を設定し、この閾値より小さな値の閾値電圧の範囲を求めることを特徴とする請求項2記載の半導体記憶装置。
  4. n個(nは2以上の自然数)の閾値電圧の1つが設定されることによりデータを記憶する複数のメモリセルを有するメモリと、
    前記メモリからデータを読み出す制御部と、
    を具備し、
    前記制御部は、前記複数のメモリセルの閾値電圧の分布を調べる読み出し動作により、前記複数のメモリセルから閾値電圧毎にデータを読み出し、
    前記閾値電圧毎に読み出されたデータの差分データを求め、
    前記差分データより前記閾値電圧の分布の最大値を求め、
    前記最大値に基づき、前記最大値より大きな値の閾値電圧の範囲を求め、
    前記求めた閾値電圧の範囲の中央の電圧を読み出し電圧に設定することを特徴とする半導体記憶装置。
  5. 前記制御部は、前記差分データを加重平均し、加重平均されたデータより前記閾値電圧の分布の最大値を求めることを特徴とする請求項4記載の半導体記憶装置。
  6. n個(nは2以上の自然数)の閾値電圧の1つが設定されることによりデータを記憶する複数のメモリセルを有するメモリと、
    前記メモリからデータを読み出す制御部と、
    を具備し、
    前記制御部は、前記複数のメモリセルの閾値電圧の分布を調べる読み出し動作により、前記複数のメモリセルから閾値電圧毎にデータを読み出し、
    前記閾値電圧毎に読み出されたデータの差分データを求め、
    前記差分データに基づき、第1の閾値より大きな最大値に対応する閾値電圧を検出し、第2の閾値より小さく前記最大値の両側に位置する第1、第2の最小値に対応する閾値電圧を検出する第1の探索動作を行い、
    前記第1の探索動作により検出された第1、第2の最小値に対応する閾値電圧に基づき、前記第1、第2の最小値を含む第1、第2の底部領域を設定して第2の探索動作を行い、
    前記第1、第2の底部領域の中央の位置から第1、第2の閾値電圧の最小値に対応する閾値電圧を検出することを特徴とする半導体記憶装置。
  7. 前記第1、第2の底部領域は、前記第1、第2の最小値にマージンを付加して設定されることを特徴とする請求項6記載の半導体記憶装置。
  8. 前記第1の最小値に対応する閾値電圧は、前記頂部に対応する閾値電圧と前記頂部に対して閾値電圧が低い位置に隣接する頂部の閾値電圧との差分を、前記頂部に対応する閾値電圧から減算して求め、
    前記第2の最小値に対応する閾値電圧は、前記頂部に対応する閾値電圧と前記頂部に対して閾値電圧が高い位置に隣接する頂部の閾値電圧との差分を、前記頂部に対応する閾値電圧に加算して求めることを特徴とする請求項7記載の半導体記憶装置。
  9. 前記制御部は、分布の1つの底部の閾値電圧を探索する場合、探索範囲の差分データの両端から、差分データが“0”となる点に向かって交差するように2つの直線を引き、前記2つの直線の交点を分布の底部と予測することを特徴とする請求項6記載の半導体記憶装置。
  10. 前記第1、第2の底部領域は、前記第1の探索により得られた第1、第2の最小値にそれぞれマージンを付加して設定されることを特徴とする請求項6記載の半導体記憶装置。
  11. 前記分布の頂部の値に対応して閾値が設定された第1のテーブルを有し、
    前記制御部は、前記第1の探索により得られた最大値に基づき、前記第1のテーブルの閾値を選択し、前記第1、第2の底部領域を設定することを特徴とする請求項6記載の半導体記憶装置。
  12. 前記頂部の位置に対応して、前記底部の位置の補正値が設定された第2のテーブルを有し、
    前記制御部は、前記頂部の位置に基づき、前記第2のテーブルの底部の位置の補正値を選択し、前記底部の位置を予測することを特徴とする請求項6記載の半導体記憶装置。
JP2011271393A 2011-12-12 2011-12-12 半導体記憶装置 Pending JP2013122804A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011271393A JP2013122804A (ja) 2011-12-12 2011-12-12 半導体記憶装置
US13/544,147 US20130148436A1 (en) 2011-12-12 2012-07-09 Semiconductor memory device which stores multivalued data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011271393A JP2013122804A (ja) 2011-12-12 2011-12-12 半導体記憶装置

Publications (1)

Publication Number Publication Date
JP2013122804A true JP2013122804A (ja) 2013-06-20

Family

ID=48571875

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011271393A Pending JP2013122804A (ja) 2011-12-12 2011-12-12 半導体記憶装置

Country Status (2)

Country Link
US (1) US20130148436A1 (ja)
JP (1) JP2013122804A (ja)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014502773A (ja) * 2011-01-14 2014-02-03 マイクロン テクノロジー, インク. デバイス内の検知電圧を調節するための方法、デバイス、およびシステム
JP2015509643A (ja) * 2012-03-06 2015-03-30 マイクロン テクノロジー, インク. メモリおよびセンスパラメータ決定方法
US9548127B1 (en) 2015-12-28 2017-01-17 Kabushiki Kaisha Toshiba Memory system
JP2017107620A (ja) * 2015-12-07 2017-06-15 ルネサスエレクトロニクス株式会社 半導体装置及び不揮発メモリ
JP2017517089A (ja) * 2014-05-23 2017-06-22 マイクロン テクノロジー, インク. 閾値電圧解析
US9773563B2 (en) 2015-03-27 2017-09-26 Toshiba Memory Corporation Memory controller, memory control method, and coefficient decision method
US9875804B2 (en) 2016-03-02 2018-01-23 Toshiba Memory Corporation Nonvolatile semiconductor memory device with read voltage setting controller
US9953709B2 (en) 2016-09-06 2018-04-24 Toshiba Memory Corporation Semiconductor memory device and memory system
JP2018110043A (ja) * 2017-01-05 2018-07-12 東芝メモリ株式会社 半導体記憶装置及びメモリシステム
US10255972B1 (en) 2017-09-15 2019-04-09 Toshiba Memory Corporation Memory system and control method of memory system
US10310942B2 (en) 2016-09-20 2019-06-04 Toshiba Memory Corporation Memory system
US10325664B2 (en) 2017-03-27 2019-06-18 Toshiba Memory Corporation Multi-bit memory system with adaptive read voltage controller
US10714192B2 (en) 2018-09-18 2020-07-14 Toshiba Memory Corporation Memory system
US10770147B2 (en) 2016-09-29 2020-09-08 Toshiba Memory Corporation Memory system including a memory device that can determine optimum read voltage applied to a word line
US10777283B2 (en) 2018-12-27 2020-09-15 Toshiba Memory Corporation Memory system
US11961562B2 (en) 2021-12-14 2024-04-16 Yangtze Memory Technologies Co., Ltd. Memory device and operation thereof

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8848438B2 (en) * 2010-10-05 2014-09-30 Stec, Inc. Asymmetric log-likelihood ratio for MLC flash channel
US9129711B2 (en) 2013-02-28 2015-09-08 Kabushiki Kaisha Toshiba Semiconductor memory device
US9190159B2 (en) 2013-03-15 2015-11-17 Kabushiki Kaisha Toshiba Semiconductor memory device
KR102174030B1 (ko) 2014-05-13 2020-11-05 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 읽기 방법
GB2527318A (en) 2014-06-17 2015-12-23 Ibm Estimation of level-thresholds for memory cells
KR102284658B1 (ko) 2015-03-19 2021-08-02 삼성전자 주식회사 비휘발성 메모리 장치, 이를 포함하는 메모리 시스템 및 상기 비휘발성 메모리 장치의 동작 방법
CN107949882B (zh) 2015-11-10 2021-08-10 东芝存储器株式会社 半导体存储装置
KR102438988B1 (ko) 2016-04-07 2022-09-02 삼성전자주식회사 랜덤화 연산을 수행하는 불휘발성 메모리 장치
JP6659494B2 (ja) 2016-08-19 2020-03-04 キオクシア株式会社 半導体記憶装置及びメモリシステム
JP2018037123A (ja) 2016-08-29 2018-03-08 東芝メモリ株式会社 半導体記憶装置及びメモリシステム
US10593398B2 (en) 2016-09-13 2020-03-17 Toshiba Memory Corporation Semiconductor storage device including a controller configured to execute a first write and a second write
JP2019139824A (ja) * 2018-02-09 2019-08-22 東芝メモリ株式会社 メモリシステム
TWI651721B (zh) * 2018-03-09 2019-02-21 大陸商深圳大心電子科技有限公司 解碼方法以及儲存控制器
JP7023204B2 (ja) 2018-09-14 2022-02-21 キオクシア株式会社 メモリシステムおよびメモリシステムの制御方法
JP2020155167A (ja) * 2019-03-19 2020-09-24 キオクシア株式会社 不揮発性メモリ

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009016028A (ja) * 2007-06-28 2009-01-22 Samsung Electronics Co Ltd 変更された読み出し電圧を用いるマルチレベルセルを含む不揮発性メモリ装置及びシステム、並びにその動作方法
JP2009026436A (ja) * 2007-05-14 2009-02-05 Sandisk Il Ltd 集合的特性を用いてメモリの閾電圧分布を測定する方法
US20090282186A1 (en) * 2008-05-09 2009-11-12 Nima Mokhlesi Dynamic and adaptive optimization of read compare levels based on memory cell threshold voltage distribution
JP2010505215A (ja) * 2006-09-27 2010-02-18 サンディスク コーポレイション セル集団分布による読み出しマージンを有するメモリ

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101578511B1 (ko) * 2009-05-20 2015-12-18 삼성전자주식회사 리드 전압 설정 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010505215A (ja) * 2006-09-27 2010-02-18 サンディスク コーポレイション セル集団分布による読み出しマージンを有するメモリ
JP2009026436A (ja) * 2007-05-14 2009-02-05 Sandisk Il Ltd 集合的特性を用いてメモリの閾電圧分布を測定する方法
JP2009016028A (ja) * 2007-06-28 2009-01-22 Samsung Electronics Co Ltd 変更された読み出し電圧を用いるマルチレベルセルを含む不揮発性メモリ装置及びシステム、並びにその動作方法
US20090282186A1 (en) * 2008-05-09 2009-11-12 Nima Mokhlesi Dynamic and adaptive optimization of read compare levels based on memory cell threshold voltage distribution

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8797803B2 (en) 2011-01-14 2014-08-05 Micron Technology, Inc. Methods, devices, and systems for adjusting sensing voltages in devices
US9269450B2 (en) 2011-01-14 2016-02-23 Micron Technology, Inc. Methods, devices, and systems for adjusting sensing voltages in devices
JP2014502773A (ja) * 2011-01-14 2014-02-03 マイクロン テクノロジー, インク. デバイス内の検知電圧を調節するための方法、デバイス、およびシステム
JP2015509643A (ja) * 2012-03-06 2015-03-30 マイクロン テクノロジー, インク. メモリおよびセンスパラメータ決定方法
US9171633B2 (en) 2012-03-06 2015-10-27 Micron Technology, Inc. Memory and sense parameter determination methods
JP2017517089A (ja) * 2014-05-23 2017-06-22 マイクロン テクノロジー, インク. 閾値電圧解析
US9773563B2 (en) 2015-03-27 2017-09-26 Toshiba Memory Corporation Memory controller, memory control method, and coefficient decision method
US10014059B2 (en) 2015-03-27 2018-07-03 Toshiba Memory Corporation Memory controller, memory control method, and coefficient decision method
JP2017107620A (ja) * 2015-12-07 2017-06-15 ルネサスエレクトロニクス株式会社 半導体装置及び不揮発メモリ
US9548127B1 (en) 2015-12-28 2017-01-17 Kabushiki Kaisha Toshiba Memory system
US9875804B2 (en) 2016-03-02 2018-01-23 Toshiba Memory Corporation Nonvolatile semiconductor memory device with read voltage setting controller
US9953709B2 (en) 2016-09-06 2018-04-24 Toshiba Memory Corporation Semiconductor memory device and memory system
US10310942B2 (en) 2016-09-20 2019-06-04 Toshiba Memory Corporation Memory system
US10770147B2 (en) 2016-09-29 2020-09-08 Toshiba Memory Corporation Memory system including a memory device that can determine optimum read voltage applied to a word line
US10796754B2 (en) 2017-01-05 2020-10-06 Toshiba Memory Corporation Semiconductor storage device and memory system including semiconductor storage device and controller
JP2018110043A (ja) * 2017-01-05 2018-07-12 東芝メモリ株式会社 半導体記憶装置及びメモリシステム
US10204680B2 (en) 2017-01-05 2019-02-12 Toshiba Memory Corporation Semiconductor storage device and memory system
US11790986B2 (en) 2017-01-05 2023-10-17 Kioxia Corporation Semiconductor storage device and memory system including semiconductor storage device and controller
US11437096B2 (en) 2017-01-05 2022-09-06 Kioxia Corporation Semiconductor storage device and memory system including semiconductor storage device and controller
US11017863B2 (en) 2017-03-27 2021-05-25 Toshiba Memory Corporation Multi-bit memory system with adaptive read voltage controller
US11367489B2 (en) 2017-03-27 2022-06-21 Kioxia Corporation Multi-bit memory system with adaptive read voltage controller
US10325664B2 (en) 2017-03-27 2019-06-18 Toshiba Memory Corporation Multi-bit memory system with adaptive read voltage controller
US10255972B1 (en) 2017-09-15 2019-04-09 Toshiba Memory Corporation Memory system and control method of memory system
US10714192B2 (en) 2018-09-18 2020-07-14 Toshiba Memory Corporation Memory system
US11315643B2 (en) 2018-09-18 2022-04-26 Kioxia Corporation Method of controlling a semiconductor memory
US11682464B2 (en) 2018-09-18 2023-06-20 Kioxia Corporation Method of controlling a semiconductor memory including memory cells and a word line
US12068044B2 (en) 2018-09-18 2024-08-20 Kioxia Corporation Memory system including semiconductor memory and controller capable of determining necessary shifted boundary read voltages in a short period of time
US10777283B2 (en) 2018-12-27 2020-09-15 Toshiba Memory Corporation Memory system
US11961562B2 (en) 2021-12-14 2024-04-16 Yangtze Memory Technologies Co., Ltd. Memory device and operation thereof
JP7511689B2 (ja) 2021-12-14 2024-07-05 長江存儲科技有限責任公司 メモリーデバイスおよびその動作

Also Published As

Publication number Publication date
US20130148436A1 (en) 2013-06-13

Similar Documents

Publication Publication Date Title
JP2013122804A (ja) 半導体記憶装置
US10937490B2 (en) Nonvolatile memory and writing method
US8874992B2 (en) Systems and methods to initiate updating of reference voltages
JP5203049B2 (ja) 不揮発性メモリ装置、それを含むメモリシステム、そのプログラム方法及び読み出し方法
US8254181B2 (en) Nonvolatile memory device and programming method
US8059463B2 (en) Method for generating soft bits in flash memories
US8578245B2 (en) Data reading method, memory storage apparatus, and controller thereof
US9299459B2 (en) Method and apparatus of measuring error correction data for memory
US7782667B2 (en) Method of operating a flash memory device
US12009034B2 (en) Classification of error rate of data retrieved from memory cells
US8649216B2 (en) Data writing method and data storage device for adjusting programming voltage values
JP5524866B2 (ja) 格納されたデータの誤りに基づいて基準電圧を制御するメモリデータ検出装置
US9875811B2 (en) Method and device for reading a memory
JP6710298B2 (ja) メモリシステム
US11609706B2 (en) Read sample offset placement
JP2009259326A (ja) 半導体記憶装置
US11941293B2 (en) Operation method of storage controller using history table, and storage device including the storage controller
JP2011198408A (ja) 不揮発性半導体記憶装置
US20240320076A1 (en) Memory system and method
US20220310168A1 (en) Operating method of storage controller using count value of direct memory access, storage device including storage controller, and operating method of storage device
JP2010129135A (ja) 半導体装置

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131205

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131212

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131219

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131226

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20140109

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140731

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140819

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150106