JP2012513072A - 不揮発性記憶装置のためのデータリフレッシュ - Google Patents

不揮発性記憶装置のためのデータリフレッシュ Download PDF

Info

Publication number
JP2012513072A
JP2012513072A JP2011542157A JP2011542157A JP2012513072A JP 2012513072 A JP2012513072 A JP 2012513072A JP 2011542157 A JP2011542157 A JP 2011542157A JP 2011542157 A JP2011542157 A JP 2011542157A JP 2012513072 A JP2012513072 A JP 2012513072A
Authority
JP
Japan
Prior art keywords
group
data
volatile storage
storage elements
refresh
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.)
Granted
Application number
JP2011542157A
Other languages
English (en)
Other versions
JP5638537B2 (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.)
SanDisk Corp
Original Assignee
SanDisk 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 SanDisk Corp filed Critical SanDisk Corp
Publication of JP2012513072A publication Critical patent/JP2012513072A/ja
Application granted granted Critical
Publication of JP5638537B2 publication Critical patent/JP5638537B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3431Circuits or methods to detect disturbed nonvolatile memory cells, e.g. which still read as programmed but with threshold less than the program verify threshold or read as erased but with threshold greater than the erase verify threshold, and to reverse the disturbance via a refreshing programming or erasing step

Abstract

エラーまたは破損したデータビットに対処するために十分な頻度であるが、メモリアクセスの邪魔やメモリセルに過度のストレスをかけない程度の頻度で、不揮発性記憶デバイスのデータをリフレッシュする技術を開示する。一実施形態は、デバイス内の複数の不揮発性記憶素子の第1グループに記憶されたデータのリフレッシュの実行を、前記第1グループ内のデータの状態に基づいて判定するステップと、デバイス内の複数の不揮発性記憶素子の第2グループがリフレッシュ処理を受けるべきである旨を、複数の不揮発性記憶素子の前記第1グループが最後にプログラムされたときに対して複数の不揮発性記憶素子の前記第2グループがいつ最後にプログラムされたかに基づいて判定するステップと、不揮発性記憶素子の前記第2グループに前記リフレッシュ処理を実行するステップと、を備える。

Description

本発明は、不揮発性記憶装置のための技術に関する。
半導体メモリは、様々な電子デバイスで使われることが一般的になってきている。例えば、不揮発性半導体メモリは、パーソナルナビゲーションシステム、携帯電話、デジタルカメラ、パーソナル・デジタル・アシスタント、モバイルコンピュータ、非モバイルコンピュータ、及び他の装置に使用されている。電気的消去・再書込み可能型読取専用メモリ(EEPROM)とフラッシュメモリは、最も普及している不揮発性半導体メモリである。
EEPROMとフラッシュメモリは、半導体基板内のチャネル領域上に配置され、そのチャネル領域から絶縁されているフローティングゲートを採用している。フローティングゲートとチャネル領域は、ソース領域とドレイン領域の間に配置されている。フローティングゲートの上に、そのフローティングゲートから絶縁されている制御ゲートが設けられている。トランジスタの閾値電圧は、フローティングゲート上に保持されている電荷量によって制御される。即ち、そのソースとドレインの間の導通を可能にすべくトランジスタをオンするために制御ゲートに印加すべき電圧の最小量は、そのフローティングゲート上の電荷量レベルにより制御される。
EEPROMやNAND型フラッシュメモリデバイスなどのフラッシュメモリデバイスに書き込みを行う場合、典型的には、ビットラインが接地されるとともに、制御ゲートに書き込み電圧が加えられる。チャネルからの電子がフローティングゲートへ注入される。フローティングゲートに電子が蓄積されると、フローティングゲートが負値に帯電し、メモリセルの閾値電圧が上昇し、メモリセルが書き込まれた状態となる。書き込みに関するさらなる情報は、「Source Side Self Boosting Technique for Non-Volatile Memory」と題した米国特許第6,859,397号、「Detecting Over Programmed Memory」と題した米国特許第6,917,542号、及び、「Programming Non-Volatile Memory」と題した米国特許第6,888,758号に開示されている。これらの3つの文献の内容は、その全体を参照することにより本明細書に組み込まれる。
多くの場合、書き込み電圧は、パルス毎にその大きさが増加する一連のパルス(書き込みパルスと称する)として制御ゲートに印加される。書き込みパルスとパルスの間には、1以上の一連の検証動作が実行され、書き込まれたメモリセルがその目標レベルに達しているか否かが決定される。メモリセルがその目標レベルに達している場合、そのメモリセルに対する書き込みが終了する。メモリセルがその目標レベルに達していない場合、そのメモリセルに対して書き込みが継続される。
一部のEEPROMおよびフラッシュメモリ装置は、電荷の2つの範囲を記憶するために使用されるフローティングゲートを備える。従って、メモリセルは、2つの状態(消去状態およびプログラム状態)の間で、プログラムまたは消去される。そのようなフラッシュメモリ装置は、バイナリメモリ装置と呼ばれることがある。
マルチステートメモリデバイスは、明確で有効な閾値電圧(Vt)分布(またはデータ状態)を特定することで、1セルにつきデータの多数ビットを記憶する。明確なVt分布の各々は、メモリデバイスで復号されたデータビットの集合についての所定の値に対応する。例えば、データの2ビットを記憶する1メモリセルは、4個の有効なVt分布を使用する。データの3ビットを記憶するメモリセルは、8個の有効なVt分布を使用する。
不揮発性記憶素子が一旦プログラムされると、そのプログラミング状態を高い信頼性で読み返すことができることが重要である。しかしながら、検出されたプログラミング状態は、時間とともに電荷的中性に引き寄せられるデバイスの傾向やノイズ等の要因により、時として意図されたプログラミング状態から変化することがある。温度などの環境的な要因がプログラム状態の変化のレートに影響することに留意されたい。例えば、高温にさらすことによって、メモリセルが電荷的中性に非常に早く引き寄せられることがある。
その結果、不揮発性メモリを読み出すときに、エラーデータビットまたは破損したデータビットに出くわすことがある。一般的に、何らかのエラー検査訂正アルゴリズム(「訂正アルゴリズム」)が、破損したデータビットを検査し訂正するために適用される。1つの共通する訂正アルゴリズムは、書き込み処理の間に、データビットのグループのパリティを要求される論理レベルに設定するために、追加のパリティビットを記憶する。追加のパリティビットは、時としてエラー訂正符号(ECC)と呼ばれる。読み出し処理の間、訂正アルゴリズムは、破損したデータを検出するためにデータビットのグループのパリティを計算することで、ビットを復号する。訂正アルゴリズムは、破損の程度が深刻ではないデータを訂正する。一部の実施形態では、データがより破損するほど、訂正アルゴリズムがデータを訂正するための時間が長くなる。
データを破損から守るために、メモリセル内のデータがリフレッシュされ、データが所望の閾値電圧に戻されてもよい。メモリセルのブロック内のデータをリフレッシュするステップは、データを読み出すステップ、訂正アルゴリズムで検出されたエラーを訂正するステップ、および、ウェアレべリング(wear leveling)を備えるスキームの一部として異なるブロックにデータを書き込むステップ、によって多くの場合達成される。しかしながら、必要な場合には、データを同一のブロックに再書き込みすることもできる。データを過度の頻度でリフレッシュすることは、メモリセルに過度のストレスを与えることがあり、好ましくない。さらに、データをリフレッシュすることは、ユーザ自身のメモリアクセスを阻害することがある。
従って、一方、データが十分な頻度でリフレッシュされない場合には、データが失われたり、訂正アルゴリズムがデータの訂正に長時間かかるためにメモリアクセスが遅くなることがある。他方、データが過度の頻度でリフレッシュされる場合には、メモリデバイスに過度のストレスがかかったり、ユーザのメモリアクセスが妨害されることがある。
さらに、メモリデバイスが広範囲の温度などの多様な環境条件にさらされることがあるため、いつデータをリフレッシュするかを決定することは特に困難である。例えば、駐車された自動車内に放置されることがある小型ナビゲーション装置に、メモリデバイスが組み込まれることがある。夏の間、自動車内の温度は非常に高い温度まで上昇することがある。一方、メモリデバイスが高温度にさらされることなく、長期間経過することがある。従って、温度などの環境条件がデータ保持力に及ぼす影響を予期することは、非常に困難である。
本明細書で開示される技術では、エラーまたは破損したデータビットに対処するために十分な頻度であるが、メモリアクセスの邪魔やメモリセルに過度のストレスをかけない程度の頻度で、不揮発性記憶装置のデータをリフレッシュする。本技術は、広範囲の温度などの多様な環境条件にさらされることがあるメモリデバイスに好適である。
一実施形態は、デバイス内の複数の不揮発性記憶素子の第1グループに記憶されたデータのリフレッシュの実行を、前記第1グループ内のデータの状態に基づいて判定するステップと、デバイス内の複数の不揮発性記憶素子の第2グループがリフレッシュ処理を受けるべきである旨を、複数の不揮発性記憶素子の前記第1グループが最後にプログラムされたときに対して複数の不揮発性記憶素子の前記第2グループがいつ最後にプログラムされたかに基づいて判定するステップと、不揮発性記憶素子の前記第2グループに前記リフレッシュ処理を実行するステップと、を備える。
一実施形態は、マルチステートな不揮発性記憶素子の集合にデータを書き込むステップと、不揮発性記憶素子の第1グループに記憶されたデータがリフレッシュされるべきか否かを、前記第1グループ内の一つまたは複数の状態に基づいて判定するステップと、前記第1グループに記憶されたデータがリフレッシュされるべき旨が決定された場合に、前記集合内の何れの不揮発性記憶素子が、複数の不揮発性記憶素子の前記第1グループよりも前にプロラムされたかを判定するステップと、前記第1グループの前に書き込まれた複数の不揮発性記憶素子がリフレッシュ処理を受けるべきである旨を判定するステップと、を備える。
一実施形態は、複数の不揮発性記憶素子で構成されているマルチステートメモリデバイスを、動作させる方法である。前記方法は、第1のブロック内の1つまたは複数の不揮発性記憶素子にデータ完全性の問題が存在する旨を判定するステップと、前記第1ブロックに先立って前記デバイス内の何れのブロックが書き込まれたかを判断するステップと、前記第1ブロックに先立って書き込まれた前記ブロック内の複数の不揮発性記憶素子にデータ完全性の問題が存在するか否かを判断することなく、前記第1ブロックに記憶されたデータおよび前記第1ブロックに先立って書き込まれたブロックをリフレッシュするステップと、を備える。
1つの実施例は、複数の不揮発性記憶素子の集合と、この不揮発性記憶素子の集合と通信する1つまたは複数の管理回路とを含む。1つまたは複数の管理回路は上述したプロセスを実行する。
NANDストリングの平面図である。 NANDストリングの等価回路図である。 不揮発性メモリシステムのブロック図である。 メモリアレイの一実施例を示すブロック図である。 センスブロックの一実施例を示すブロック図である。 閾値電圧分布の集合の一例を示す図である。 閾値電圧分布の集合の一例を示す図である。 本発明の実施例に関連する記憶デバイスが搭載される携帯デバイスの一例を示す図である。 どのブロックがデータリフレッシュされるべきかを判定する処理の一実施形態を示す図である。 メモリアレイのブロックに記憶されたデータをリフレッシュするプロセスの一実施形態を記述するフローチャートである。 不揮発性メモリをプログラミングするプロセスの一実施形態を記述するフローチャートである。 データ完全性の問題がブロックに存在するか否かを判定するプロセスの一実施形態を記述するフローチャートである。 訂正アルゴリズムによって何ビットが訂正される必要があるかに基づいて、データリフレッシュが必要とされているか否かを判定するプロセスの一実施形態を記述するフローチャートである。 訂正アルゴリズムが収束するのにどのくらいの期間がかかるかに基づいて、データリフレッシュが必要とされているか否かを判定するプロセスの一実施形態を記述するフローチャートである。 分布関数の一例を示す図である。 データリフレッシュが必要か否かを判定するための値を記憶するテーブルの一実施形態を示す図である。 リフレッシュ処理の候補ブロックを特定するプロセスの一実施形態を示す図である。 リフレッシュ処理の候補ブロックを特定するプロセスの一実施形態を記述するフローチャートである。 リフレッシュ処理の候補ブロックを特定するために使用される連続番号を管理するプロセスの一実施形態を示す図である。 リフレッシュ処理の候補ブロックを選択するために使用されるタイムスタンプを管理するプロセスの一実施形態を示す図である。 データ保持力の問題を緩和するための操作を行うようにユーザに警告するプロセスの一実施形態を示す図である。
フラッシュメモリシステムの一例は、NAND構造を用いており、2つの選択ゲートの間に複数のトランジスタの直列接続を含んでいる。直列に接続されたトランジスタと選択ゲートは、NANDストリングと呼ばれる。図1は、1つのNANDストリングを示す平面図である。図2は、その等価回路である。図1と図2に示すNANDストリングは、第1(又はドレイン側)選択ゲート120と第2(又はソース側)選択ゲート122の間に挟まれている、直列に接続されている4つのトランジスタ100、102、104及び106を有する。選択ゲート120は、ビットコンタクト126を介してNANDストリングをビットラインに接続している。選択ゲート122は、NANDストリングをソースライン128に接続している。選択ゲート120は、選択ラインSGDに適切な電圧を加えることによって制御される。選択ゲート122は、選択ラインSGSに適切な電圧を加えることによって制御される。トランジスタ100、102、104、及び106の夫々は、制御ゲートとフローティングゲートを有している。例えば、トランジスタ100は、制御ゲート100CGとフローティングゲート100FGを備えている。トランジスタ102は、制御ゲート102CGとフローティングゲート102FGを備えている。トランジスタ104は、制御ゲート104CGとフローティングゲート104FGを備えている。トランジスタ106は、制御ゲート106CGとフローティングゲート106FGを備えている。制御ゲート100CGはワードラインWL3に接続されており、制御ゲート102CGはワードラインWL2に接続されており、制御ゲート104CGはワードラインWL1に接続されており、制御ゲート106CGはワードラインWL0に接続されている。
図1と図2は、NANDストリング内の4個のメモリセルを示しているが、4個のトランジスタの使用は単に一例として提示されている点に留意されたい。NANDストリングは、4個よりも少ない、或いは、4個よりも多いメモリセルを有していてよい。例えば、NANDストリングによっては8個、16個、32個、64個、128個などの数のメモリセルを有していてよい。本明細書の説明は、いかなる特定個数のメモリセルを有するNANDストリングにも限定されない。
NAND構造を用いたフラッシュメモリシステムの一般的なアーキテクチャは、いくつかのNANDストリングを含んでいる。各NANDストリングは、選択ラインSGSによって制御されるソース選択ゲートによってソースラインに接続されているとともに、選択ラインSGDによって制御されるドレイン選択ゲートによって関連するビットラインに接続されている。各ビットラインとそのビットラインにビットラインコンタクトを介して接続されている夫々のNANDストリングは、メモリセルアレイの列を構成する。ビットラインは、複数のNANDストリングによって共有されている。典型的には、ビットラインは、ワードラインと直交する方向でNANDストリング上を通っており、1以上のセンスアンプと接続されている。
各メモリセルは(アナログ又はデジタルの)データを記憶することができる。1ビットのデジタルデータを記憶する場合、メモリセルの可能な閾値電圧の範囲は、2つの範囲に分割され、それぞれの範囲が論理データの「1」と「0」に割り当てられる。NAND型フラッシュメモリの一例では、メモリセルが消去された後では閾値電圧が負値となり、それは論理「1」と定義される。書き込み後の閾値電圧は正値となり、それは論理「1」と定義される。閾値電圧が負値であり、制御ゲートに0ボルトが印加される読み出しが試みられた場合、メモリセルがオンとなり、これは論理1が記憶されていることを示す。閾値電圧が正値であり、制御ゲートに0ボルトが印加される読み出しが試みられた場合、メモリセルはオンせず、これは論理0が記憶されていることを示す。
複数レベルのデータを記憶する場合には、可能な閾値の範囲は、データのレベルの数に分割される。例えば、4つのレベルの情報を記憶する場合(2ビットのデータ)、4つの閾値電圧範囲が存在し、それぞれがデータ値「11」、「10」、「01」、及び「00」に割り当てられる。NANDタイプのメモリの一例では、消去動作の後の閾値電圧は負の値となり、論理「11」と定義される。正値の閾値電圧群が「10」、「01」、「00」というデータ状態に対して用いられる。8つのレベルの情報(又は状態)が記憶される場合(即ち、3ビットのデータ)、データ値「000」、「001」、「010」、「011」、「100」、「101」、「110」、及び「111」に割り当てられる8つの閾値電圧範囲がある。
メモリセルに書き込まれるデータとセルの閾値電圧レベルの間の具体的な関係は、セルに採用されるデータ符号化方式によって決まる。例えば、両方ともその全体を参照することにより本明細書に組み込まれる米国特許第6,222,762号及び米国特許出願公開公報第2004/0255090号は、マルチステートフラッシュメモリセルのための様々なデータ符号化方式を説明している。一実施形態においては、フローティングゲートの閾値電圧が誤ってその近傍の物理状態にシフトした場合に1つのビットだけが影響を受けるように、グレイコード割当を用いてデータ値が閾値電圧範囲に割り当てられる。他の実施形態では、異なるワードラインに対してデータ符号化技法が変更され得ることがある。データ符号化技法は、時間に依存して変更され得ることがある。また、ランダムなワードラインのデータビットは、データパターン感度を低減し、メモリセルのウェアを均一にするために、変換されるか、或いはランダム化されることがある。
NANDタイプのフラッシュメモリおよびそれらの動作に関連する例は、以下の米国特許/特許出願に記載されており、それらの引用文献は、その全体が参照により本明細書に組み込まれる。米国特許第5,570,315号、米国特許第5,774,397号、米国特許第6,046,935号、米国特許第6,456,528号、及び、米国公開公報第US2003/0002348号。本明細書における説明は、他のタイプの不揮発性記憶素子と同様に、NANDを加えた他のタイプのフラッシュメモリにも利用可能である。
NANDフラッシュメモリに加えて、不揮発性記憶装置の他のタイプもまた用いることができる。例えば、基本的に(フローティングゲートの代わりに)窒化物層内に電荷をトラッピングするメモリセルである、いわゆるTANOS構造(TaN−Al2O3−SiN−SiO2の積層から構成される構造)にも本発明は適用できる。フラッシュEEPROMシステムで有用な別のタイプのメモリセルは、不揮発方式で電荷を蓄積するために、導電性フローティングゲートの代わりに非導電性の誘電物質を活用する。そのようなセルは、Chanらによる記事、「A True Single-Transistor Oxide-Nitride-Oxide EEPROM Device」、IEEE ELECTRON DEVICE Letters、EDL−8巻、第3号、1987年3月の93から95ページに説明されている。酸化ケイ素、窒化ケイ素、及び酸化ケイ素(「ONO」)から形成される三層の誘電体が、メモリセルチャネル上で半導電性基板の表面と導電性制御ゲートとの間に挟まれている。セルは、セルチャネルから窒化物の中に電子を注入することにより書込みが行われ、窒化物内において電子が制限領域内にトラッピングされ蓄積される。この蓄積された電荷は、次に、検出可能な方法で、セルのチャネルの一部の閾値電圧を変更する。セルは、窒化物中にホットホールを注入することによって消去される。Nozakiら、「A 1-Mb EEPROM with MONOS Memory Cell for Semiconductor Disk Application」、IEEE Journal of Solid-State Circuits、第26巻、第4号、1991年4月、497から501ページに、分離した選択トランジスタを形成するためにドーピングされたポリシリコンゲートがメモリセルチャネルの一部に拡がっている分割ゲート構成における同様のセルが説明されている。その文献も参照されたい。前記2つの記事は、その全体を参照することにより本明細書に組み込まれる。参照することにより本明細書に組み込まれるWilliam D. Brown及びJoe E. Brewerによって編集された「Nonvolatile Semiconductor Memory Technology」、IEEE出版1998年の第1.2項にも、誘電電荷トラップ装置に適用可能である書き込み技法が説明されている。他のタイプのメモリ素子も使用できる。
図3は、1つ以上のメモリダイ又はチップ212を有する不揮発性記憶デバイス210を示している。メモリダイ212は、メモリセルの(2次元又は3次元の)アレイ200、制御回路220、及び、リード/ライト回路230Aと230Bを有する。一実施形態では、様々な周辺回路によるメモリアレイ200へのアクセスはアレイの両側で対称的に実装されており、これにより、各側のアクセスライン及び回路の密度が半分に低減される。リード/ライト回路230A及び230Bは、複数のセンスブロック300を有しており、それらのセンスブロック300によって1ページのメモリセルを並列に読み出し又は書き込みすることができる。メモリアレイ200は、行デコーダ240Aと240Bを介したワードラインと、列デコーダ242Aと242Bを介したビットラインによってアドレス指定される。典型的な実施形態では、コントローラ244は、1つ以上のメモリダイ212のような同じメモリデバイス210(例えば、取り外し可能なストレージカード又はパッケージ)内に含まれる。命令、及びデータは、ライン232を介してホストとコントローラ244の間で転送され、また、ライン234を介してコントローラと1つ以上のメモリダイ212の間で転送される。
制御回路220は、リード/ライト回路230Aと230Bと協調して、メモリアレイ200に対してメモリ動作を実行する。制御回路220は、ステートマシン222、オンチップアドレスデコーダ224、及び電力制御モジュール226を有している。ステートマシン222は、メモリ動作のチップレベルの制御を提供する。オンチップアドレスデコーダ224は、ホスト又はメモリコントローラによって用いられるアドレスと、デコーダ240A、240B、242A及び242Bによって用いられるハードウェアアドレスの間のアドレスを転換するためにアドレスインタフェースを提供する。電力制御モジュール226は、メモリ動作中のワードライン及びビットラインに供給される電力及び電圧を制御する。一実施形態では、電力制御モジュール226は、供給電力より大きな電圧を作り出すことができる一つ以上のチャージポンプを有する。
一実施形態では、制御回路220、電力制御回路226、デコーダ回路224、ステートマシン回路222、デコーダ回路242A、デコーダ回路242B、デコーダ回路240A、デコーダ回路240B、リード/ライト回路230A、リード/ライト回路230B、及び/又はコントローラ244の一つ又は幾つかの組合せは、1つの管理回路、或いは複数の管理回路群と称されることがある。
図4は、メモリセルアレイ200の例示的な構造を示す。一実施形態においては、メモリセルのアレイは、メモリセル群のM個のブロックに分割される。フラッシュEEPROMシステムに一般的であるように、ブロックは消去の単位である。すなわち、各ブロックは共に消去される最小数のメモリセルを含む。各ブロックは、通常、複数のページに分割される。ページは書き込みの単位である。通常、1つ又は複数ページのデータが1列のメモリセルに記憶される。1つのページは、1つ又は複数のセクタを記憶できる。1つのセクタは、ユーザデータとオーバヘッドデータを含む。オーバヘッドデータは、通常、セクタのユーザデータから算出される誤り訂正符号(Error Correction Code:ECC)を含む。コントローラ(後述)の一部が、データがアレイに書き込まれているときにECCを計算し、データがアレイから読み出されているときにECCのチェックも行う。代わりに、ECC及び/又は他のオーバヘッドデータはそれらが関係するユーザデータとは異なるページに記憶され、または異なるブロックに記憶されることがある。ユーザデータのセクタは通常、磁気ディスクドライブ内のセクタサイズに相当する512バイトである。例えば8ページから32、64、128、或いはそれ以上のページまでの多数のページが1ブロックを形成する。異なるサイズのブロックと配置も採用することができる。
別の実施形態では、ビットラインは偶数のビットラインと奇数のビットラインに分けられる。奇数/偶数ビットラインアーキテクチャでは、共通ワードラインに沿っており奇数ビットラインに接続されたメモリセル群は、同時に書き込みが行われる。これに対し、共通ワードラインに沿っており偶数ビットラインに接続されたメモリセル群は、奇数ビットラインに接続されたメモリセル群の書き込みとは別のタイミングで同時に書き込みが行われる。
図4は、メモリアレイ200の第iブロックの詳細を示している。第iブロックは、X+1ビットラインとX+1NANDストリングを含んでいる。第1ブロックは、64本のデータワードライン(WL0−WL63)、2本のダミーワードライン(WL_d0、WL_d1)、ドレイン側選択ライン(SGD)、及び、ソース側選択ライン(SGS)も含んでいる。各NANDストリングの一端は、(選択ラインSGDに接続されている)ドレイン選択ゲートを介して対応するビットラインに接続されており、他端は、(選択ラインSGSに接続されている)ソース選択ゲートを介してソースラインに接続されている。64本のデータワードラインと2本のダミーワードラインが存在するので、各NANDストリングは、64個のデータメモリセルと2個のダミーメモリセルを含んでいる。他の実施形態では、NANDストリングは、64個より多い、或いは少ないデータメモリセルと2個のダミーメモリセルを有していてもよい。他の実施形態では、NANDストリングは、おおよそ64個のデータメモリセルと2個のダミーメモリセルとを有していてもよい。データメモリセルは、ユーザ又はシステムのデータを記憶することができる。ダミーメモリセルは、通常、ユーザ又はシステムのデータを記憶するのには用いられない。幾つかの実施形態は、ダミーメモリセルを有していない。
図5は、センスモジュール480と呼ばれるコア部と共通部490に分割された個々のセンスブロック300のブロック図である。一実施形態では、各ビットラインに対して個別のセンスモジュール480を用意し、複数の複数センスモジュール480に対して一つの共通部490を用意してもよい。一例として、1個のセンスブロックは、1個の共通部490と8個のセンスモジュール480を有している。グループ内の各センスモジュールは、データバス472を介して協働する共通部と通信する。さらなる詳細としては、その全体を参照することにより本明細書に組み込まれる米国特許出願公開公報2006/0140007号を参照されたい。
センスモジュール480は、接続されたビットライン内の伝導電流が予め決められた閾値レベルより高いか低いかを判定するセンス回路470を備えている。幾つかの実施形態では、センスモジュール480は、センスアンプと一般に呼ばれる回路を有する。センスモジュール480は、さらに、接続されたビットラインに電圧状態を設定するために用いられるビットラインラッチ482を有している。例えば、ビットラインラッチ482内で予め決められた状態がラッチされることによって、接続されたビットラインを、書き込み禁止を指定する状態(例えば、Vdd)に引き上げる(プル)する。
共通部490は、プロセッサ492、複数のデータラッチ494、及び、複数のデータラッチ494とデータバス420の間を接続するI/Oインタフェース496を備えている。プロセッサ492は計算を実行する。例えば、その機能の1つは、センスされたメモリセル内に記憶されているデータを特定し、特定されたデータを複数のデータラッチ内に記憶することである。複数のデータラッチ494は、読み出し動作において、プロセッサ492によって特定されたデータビット群を記憶するために用いられる。複数のデータラッチ494は、書き込み動作において、データバス420から取り込んだデータビット群を記憶するためにも用いられる。取り込まれるデータビット群は、メモリ内に書き込む予定のライトデータ(書き込みデータ)を表す。I/Oインタフェース496は、データラッチ494とデータバス420の間のインタフェースを提供する。
読み出し又はセンス中には、システムの動作はステートマシン222の制御下にあり、ステートマシン222はアドレス指定されたセルへの種々の制御ゲート電圧の供給を制御する。メモリに用意された様々なメモリ状態に対応する様々な既定制御ゲート電圧のステップを進む毎に、センスモジュール480はこれらの電圧の1つに遷移し、バス472を介してセンスモジュール480からプロセッサ492に出力が提供される。その時点で、プロセッサ492は、センスモジュールの遷移イベントと、ステートマシンから入力ライン493を介して加えられた制御ゲート電圧についての情報によって、結果としてのメモリ状態を特定する。それから、プロセッサは、メモリ状態に対するバイナリ符号化を計算し、得られたデータビット群をデータラッチ494に格納する。コア部の別の実施形態では、ビットラインラッチ482は、センスモジュール480の出力をラッチするラッチ、及び、上記のようなビットラインラッチの二つの役割を持つ。
当然のことながら、いくつかの実装形態では複数のプロセッサ492を有することができる。一実施形態では、各プロセッサ492は出力ライン(図5には示されていない)を有し、各出力ラインは共にワイヤードOR(配線論理和)接続される。いくつかの実施形態では、出力ラインは、ワイヤードORラインに接続される前段階で反転される。この構成は、ワイヤードORの結果を受け取るステートマシンが、書き込まれる全てのビットがいつ所望のレベルに到達したかを判断できるので、書き込み処理の完了時点を判定する書き込み検証処理における素早い判定を可能にする。例えば、各ビットがその所望のレベルに到達すると、そのビット用の論理「0」がワイヤードORラインに送られる(又はデータ「1」が反転される)。全てのビットがデータ「0」を出力すると(又はデータ「1」が反転されると)、ステートマシンは書き込み処理の完了を知る。各プロセッサが8個のセンスモジュールと通信する実施形態では、(いくつかの実施形態において)ステートマシンはワイヤードORラインを8回読み出す必要があってもよいし、あるいは、協働するビットラインの結果を蓄積するための論理をプロセッサ492に追加し、ステートマシンがワイヤードORラインを一度だけ読み出せば良いようにしてもよい。
書き込み又は検証処理の間、書き込まれるべきデータはデータバス420から複数のデータラッチ494内に記憶される。ステートマシン制御下の書き込み動作は、アドレス指定されるメモリセルの制御ゲートに加えられる一連の(値の増加を伴う)書き込み電圧パルスを伴う。各書き込みパルスに続いて検証処理が実行され、メモリセルが所望の状態に書き込まれたかどうかを判定する。プロセッサ492は、所望のメモリ状態に対する検証メモリ状態を監視する。その2つが一致したとき、プロセッサ492は、書き込み禁止を指定する状態にビットラインを引き上げる(プルする)ようにビットラインラッチ482を設定する。これにより、たとえ書き込みパルスがその制御ゲートに影響しても、ビットラインに接続したセルがさらに書き込みされないようにすることができる。他の実施形態では、プロセッサが最初にビットラインラッチ482をロードし、センス回路が検証処理中にそれに禁止値を設定する。
データラッチスタック494は、センスモジュールに対応するデータラッチのスタックを有する。一実施形態では、センスモジュール480毎に3個から5個の(或いはその他の数の)データラッチが存在する。一実施形態では、ラッチは夫々1ビットである。いくつかの実装形態では、(必須ではないが)データラッチはシフトレジスタとして実装され、内部に記憶されたパラレルデータをデータバス420用にシリアルデータに変換したり、その逆を行ったりする。好適な一実施形態では、m個のメモリセルのリード/ライトブロックに対応する全てのデータラッチを相互にリンクしてブロックシフトレジスタを構成し、シリアル転送によってデータのブロックを入力または出力できるようにする。特に、リード/ライトモジュールの一群のデータラッチのそれぞれが、データバスへ或いはデータバスからデータを順に転送するようにリード/ライトモジュールのバンクを構成し、一群のデータラッチがあたかもリード/ライトブロック全体のシフトレジスタの一部であるかのようにしてもよい。
読み出し動作やセンスアンプについてのさらなる情報は次の文献に記載されている。(1)米国特許第7,196,931号、「Non-Volatile Memory And Method With Reduced Source Line Bias Errors」、(2)米国特許第7,023,736号、「Non-Volatile Memory And Method with Improved Sensing」、(3)米国特許出願公開公報第2005/0169082号、(4)米国特許第7,196,928号、「Compensating for Coupling During Read Operations of Non-Volatile Memory」、及び、(5)米国特許出願公開公報第2006/0158947号、「Reference Sense Amplifier For Non-Volatile Memory」、2006年7月20日発行。これら5個の特許文献の全ては、その全体を参照することにより本明細書に組み込まれる。
成功した(検証を含む)書き込み処理の最後において、メモリセルの閾値電圧は、必要に応じて、書き込まれたメモリセルの1つ又は複数の閾値電圧の分布内、或いは、消去されたメモリセルの閾値電圧の分布内となる。図6Aは、各メモリセルが4ビットデータを記憶する場合のメモリセルアレイについてのデータ状態に対応した閾値電圧分布の例を示す。なお、他の実施形態では、1メモリセルあたり4ビットよりも多い、或いは少ないデータを採用してもよい。図6Aは、データ状態0−15に対応する16個の閾値電圧分布を示している。一実施形態では、状態0の閾値電圧は負値であり、状態1−15の閾値電圧は正値である。しかし、1以上の状態1−15の閾値電圧は負でもよい。
データ状態0−15の夫々の間は、メモリセルからデータを読み出す際に用いられる読み出し参照電圧である。例えば、図6Aは、データ状態0と1の間の読み出し参照電圧Vr1と、データ状態1と2の間の読み出し参照電圧Vr2を示している。メモリセルの閾値電圧が各読み出し参照電圧よりも高いか低いかを検証することによって、システムは、そのメモリセルがどの状態にあるかを決定することができる。
各データ状態0−15の下限或いはその付近は、検証参照電圧である。例えは、図6Aは、状態1に対するVv1と、状態2に対するVv2を示している。目標の状態へのメモリセルの書き込みの際、システムは、それらのメモリセルが検証参照電圧に等しいかそれより高い閾値電圧を有するか否かをテストする。
図6Bは、データ状態0−15に対応する閾値電圧分布の他の実施形態を示している。この実施形態では、ECCが、エラーとなっているある程度の割合のセルを扱うことができるので、閾値電圧分布が部分的にオーバーラップすることができる。
Vt軸は、制御ゲートに印加される実際の電圧からオフセットされ得ることに留意されたい。オフセットは、ソースを通じたボディ効果、或いは、負値の閾値電圧を測定可能な正値範囲にシフトさせるためにボディバイアスが用いられることにより生じる。図示された16個の状態の等間隔/等幅とは異なり、保持力損失に対する脆弱性の度合いの違いに対応するために、状態は異なる幅/間隔を有していてもよいことにも留意されたい。幾つかの実施形態では、状態0及び/又は状態15は、他の状態よりも広い。
図7は、本発明の実施形態に従った記憶デバイス210が組み込まれた、例示的な携帯デバイス700を示す図である。例示デバイス700は、小型ナビゲーション装置として使用されるような、GPS情報を受信するための全地球測位衛星(GPS)受信機710を有する。GPS情報によって決定されるデバイスの位置に基づいて、ユーザに対してプロセッサ720がディスプレイ702上に表示する地図を記憶するために、記憶デバイス210が使用されることがある。
一般的に、ユーザが地図を記憶デバイス210に一旦記憶させると、長期間、ユーザは記憶された地図を上書きする必要がない。例えば、地図データの大部分は、数年間は変化しないことがある。本開示の実施形態は、どのくらいの頻度で地図データなどのデータをリフレッシュするかを決定する。決定される頻度は、データを保護するために十分な頻度だが、ユーザの邪魔や記憶デバイス210に過度のストレスをかけない程度の頻度である。例示デバイス700は、記憶デバイス210が組み込まれたデバイスの一例である。しかしながら、組み込まれた記憶デバイス210は、パーソナル・デジタル・アシスタントや、携帯電話や、パーソナル・メディア・プレイヤーに用いることもできる。
図8は、記憶デバイス210内の何れのブロックのデータがリフレッシュされるべきかを決定する、プロセス800の一実施形態を示す図である。一般的に、プロセス800は、セル当りに4ビットを記憶する図6Aや6Bの例に示すように、1つのメモリセル当りに1ビットより多いビットが記憶されているブロックに対して用いられる。プロセス800は、記憶デバイス210の電源が投入された後、アイドル時間が発生したらすぐに開始することができ、その後は定期的な間隔で行うことができる。一実施形態では、記憶デバイス210は、携帯機器自体の電源が切られていても電源に長期間接続されることがある携帯機器(例:小型ナビゲーション装置)に組み込まれる。例えば、小型ナビゲーション装置は、自動車のシガーソケットに数日間接続された状態とされることがある。この場合、プロセス800が定期的に実行されるとすることができる。一実施形態では、プロセス800は、訂正アルゴリズムの遂行に基づいて開始される。例えば、訂正アルゴリズムが収束するのに長時間かかる場合や、訂正アルゴリズムによって訂正される必要のあるデータビットの数が臨界値よりも大きい場合には、(検出された問題やその他に関連する)特定のブロックのデータがリフレッシュされるべきか否かを判定するために、プロセス800が開始される。
ステップ802では、データ保持力問題や読み出し阻害問題などの、データ完全性の問題についてテストをするため、メモリアレイ200の1つのブロックが選択される。しかしながら、データ完全性の問題の原因(例:データ保持力)は、明確に特定される必要はない。一実施形態では、メモリアレイ200内の複数ブロックは、各ブロックがテストされるように、連続的にテストされる。しかしながら、複数のブロックは、ランダムな順番や最後にプログラムされた順番などの、異なる順序でテストすることもできる。プロセス800がメモリアレイ200内の全てのブロックをテストすることは、必要とされない。例えば、最近プログラムされたブロックに対するテストを延期することができる。しかしながら、温度の履歴は監視および記録するのが難しく、データ完全性の問題に対する効果を予測することは困難な場合がある。例えば、記憶デバイス210が高温にさらされたか否かを直接に判断することが困難な場合がある。例えば、温度データを監視し記録することができるロジック回路を駆動するための何れの電源も無い状態で、記憶デバイス210が高温環境下に放置されることがある。その結果、最近プログラムされたブロックでさえ、データ完全性の問題の看過を避けるためにテストされることがある。
一実施形態では、プロセス800は、テストを行うために、メモリアレイ200内のブロックの小さなサンプルを選択するだけである。一実施形態では、データ完全性問題のために、1メモリセルにつき特定の最小数のビットを記憶しているブロックのみがテストされる。例えば、あるブロックは1メモリセルにつき1ビットを記憶しているかもしれないし、他のブロックは1セルにつき4ビットを記憶しているかもしれない。このような場合、1メモリセルにつき1ビットを記憶しているブロックは、Vt分布の間に非常に大きなギャップを有しており、テストする必要がない。
幾つかの実施形態では、データのブロックの全体が原則的に同時に書き込まれることを、システムは保証する。この場合、選択されたブロック内の各ワードラインがデータ完全性の問題について解析される必要はない。基本的に同時に書き込むことは、ブロックの書き込みが中断された場合にはブロックへの書き込みは中止される、というルールをシステムが実行することを意味する。すなわち、ブロック内のデータは破棄され、そのデータは他のブロックにその後に書き込まれる。基本的に同時に書き込むことは、全てのワードラインが同時にプログラムされることを意味しないことに留意されたい。一般的には、ワードラインは連続的にプログラムされる。
ブロック全体に基本的に同時に書き込む例は、各メモリセルが1ビットを記憶するブロック(バイナリブロック)に、データを一時的に記憶することである。そして、4つのそのようなバイナリブロックが満たされた後に、各メモリセルが4ビットを記憶するブロック(ここでは、“X4ブロック”と呼ぶ)に、当該データが書き込まれる。X4ブロックへのデータの書き込みが中断される場合には、そのX4ブロックへの書き込みは中止される。その後において、複数のバイナリブロックに依然残っているデータが、他のX4ブロックに書き込まれる。そのような書き込みが中断なく完了した場合には、ブロック書き込みは成功する。従って、X4ブロック内の全データは、基本的に同時に書き込まれる。
ステップ804において、選択されたブロック内の1本のワードラインが、データ完全性の解析のために選択される。ある実施形態では、複数のワードラインがある特定の順番で書き込まれることを、システムは保証する。複数のワードラインが特定の順番で書き込まれる実施形態では、書き込まれたブロック内の第1ワードラインが、データ完全性の解析のために選択される。一実施形態では、ワードラインの選択はランダムに行われる。必要に応じて、ブロック内の多数のワードラインがデータ完全性のために解析されるとすることもできる。ブロック内の全てのワードラインが、選択の候補となる必要はない。一実施形態では、他のワードラインよりも問題があることが知られているワードラインが、データ完全性の解析のために選択されてもよい。例えば、各ブロックの第1のワードラインがデータ完全性の問題に対して強く影響を受け易い、という工学特性が、既に判明している場合がある。他の実施形態では、1ブロックについて1本のワードラインをテストする場合には、ブロックの中心に近いワードラインがより好適であるとして、ブロックの端部に近いワードラインが候補要員から除外されてもよい。
プロセス800の一実施形態では1本のワードラインがランダムに選択されるが、ワードラインがランダムに選択されることは必須ではない。一実施形態では、各ワードライン(または、少なくとも候補群の各々のワードライン)がテストされるように、テストされたワードラインの記録が保持される。例えば、ブロックがテストされるたびに異なるワードラインがテストされるようにして、ワードラインのテストを連続的に続行することができる。
ステップ806において、ブロックの選択されたワードラインに記憶されたデータが、ブロックがリフレッシュされるべきである旨を意味するデータ完全性の問題を有するか否かについての判定が行われる。図10A、10Bおよび10Cは、データ完全性の問題の有無を判定するために用いることができる、幾つかの技術の詳細を示している。簡潔に説明すると、ある技術は、ブロック内の1つまたは複数のVt分布が、データ保持力の問題が存在することを示唆することができる許容量よりも大きく変化したか否かを判定するステップを備えている。そのような変化は、読み出し障害などの他の問題もまた示唆することがある。この変化についてのテストは、全てのVt分布が変化について解析されることを必要としない。
データ完全性の問題についてテストする他の技術は、選択されたブロック内のワードラインから読み出されるデータに、訂正アルゴリズムを動作させるステップを備える。訂正アルゴリズムによって訂正される必要のあるビット数に基づいて、または、訂正アルゴリズムが解決に収束するためにかかる時間の長さによって、データ完全性問題は示される。
ブロックがデータ完全性の問題を有さない場合には、テストのための他のブロックを選択するために、制御はステップ802へ移る。選択されたブロックがデータ完全性の問題を有する場合には、ある時点でブロック内のデータをリフレッシュできるように、データ完全性の問題についての記録が保持される。データは即座にリフレッシュされる必要がないことに留意されたい。例えば、何れかのブロックのデータリフレッシュを実行する前に、何れのブロックがリフレッシュされるかについての判定が行なわれるとしてもよい。場合によっては、データリフレッシュが実行される前に、デバイスの電源が落とされてもよい。一実施形態では、どのデータブロックがリフレッシュされるべきかを記録するために、スペアブロックが使用される。図9Aは、データをリフレッシュする過程を示す。
1のブロックがデータ完全性の問題を有していると一旦特定されると、多くの他のブロックもまた同様の問題を抱えている可能性が高いことに留意されたい。例えば、データ完全性の問題がメモリデバイスが高温下にさらされたことによるものである場合には、他のブロックもまた同様のデータ完全性の問題を有することがある。このことは、問題のあるブロックの直前、または問題のあるブロックの直後に最後のプログラムが行われた他のブロックについて、特に当てはまる。従って、これらの他のブロックは、リフレッシュ処理についての候補になることがある。従って、ブロックがデータ完全性問題を有する(以後、“不良ブロック”と呼ぶ)とステップ806で判定された場合には、リフレッシュ処理に関する他のブロックを特定するために、制御はステップ808へ移る。
ステップ808において、不良ブロックが最後にプログラムされたときと比較して、他の複数のブロックがいつ最後にプログラムされたかに基づいて、リフレッシュ処理のためにブロックが特定される。ここで、これらの他の複数のブロックは“候補ブロック”と呼ばれてもよい。例えば、不良ブロックの前にプログラムされた全てのブロックは、候補ブロックとして特定される。しかしながら、不良ブロックがプログラムされた後の一定期間内にプログラムされたブロックもまた、候補ブロックとして特定されてもよい。
ステップ810において、候補ブロックに対してリフレッシュ処理が行なわれる。リフレッシュ処理は、候補ブロック内のデータがリフレッシュされるべきか否かを判定する。一実施形態では、リフレッシュ処理は、データ完全性の問題が候補ブロックに存在するか否かを判断することなく、自動的に候補ブロック内のデータをリフレッシュする。このような自動的にデータリフレッシュする実施形態では、ステップ810を実行するために、図9Aのプロセス900が用いられる。
一実施形態では、ステップ810のリフレッシュ処理は、候補ブロック内のデータをリフレッシュするか否かを決定するために、候補ブロックにデータ完全性の問題が存在するか否かを判定する。図10A、10B、10Cのプロセスの何れか、または他のプロセスを、候補ブロック内のワードラインにデータ完全性の問題が存在するか否かを判定するために用いることができる。ブロック全体が基本的に同時に書き込まれる実施形態では、候補ブロック内のテストされるワードラインが、ランダムに選択される。図10A、10B、10Cのプロセスの1つが、候補ブロックにデータ完全性の問題が存在すると判断する場合には、候補ブロック内のデータをリフレッシュするために、図9Aのプロセス900が用いられるとしてもよい。
プロセス800のある繰り返しの間に、ステップ806によってデータ完全性について候補ブロックがテストされ、プロセス800の別の繰り返しのステップ810において、データ完全性について再びテストされることが可能であることに留意されたい。しかしながらステップ810では、ステップ806でテストされたワードラインが選択されることよりも、ランダムに選択された異なるワードラインがテストのために選択されることの方が、より起こりうる。同様に、ステップ806で使用されたテストとは異なるデータ完全性のテストを用いることができる。例えば、ステップ806で、図10Bのテスト(訂正アルゴリズムによって何ビットの訂正が必要かを判定する)が使用されているとすることができる。その一方で、ステップ810で、図10Bのテスト(Vt分布の変化を検出する)が使用されるとすることができる。しかしながら、同一のテストが異なるパラメータで使用されるとすることもできる。例えば、ブロックに2度目のテストを行う場合には、データリフレッシュを開始するための、訂正アルゴリズムによる訂正を必要としているビット数を異ならせることができる。
戦略的に特定された候補ブロック内のデータをリフレッシュすることで、プロセス800は、データ喪失を防止することが十分な頻度であるが、デバイス210に過度のストレスを与えたりメモリアレイ200へのユーザアクセスを阻害することのない頻度で、データをリフレッシュする。一部の候補ブロックはステップ802−806においてデータ完全性の問題について直近にテストされてもよいが、テストはデータをリフレッシュするという判定結果とならなかったことに留意されたい。この考えられる理由としては、データ完全性の問題の深刻度が、データリフレッシュを開始させるための閾値に十分でなかったことが挙げられる。
不良ブロックが最後にプログラムされたときと比較して候補ブロックがいつ最後にプログラムされたかに基づいて、候補ブロックにリフレッシュ処理を実行することによって、デバイス210に過度のストレスを与える程度に頻繁ではなく、データ完全性の問題が訂正アルゴリズムによって訂正するほどに深刻になってしまう程度に低頻度ではないような適切な時期に、記憶デバイス210内のブロックがリフレッシュされる。
例えば、夏の間の自動車の内部など、記憶デバイス210が極度に高温の環境下に放置された場合を考える。記憶デバイス210をこのような高温にすることは、電荷の損失/獲得のレートを非常に加速させ、データ保持力の問題を引き起こす可能性がある。しかしながら、デバイスは必ずしも高温にさらされるわけではないため、単にデータを頻繁にリフレッシュすることは必要とされないことに留意されたい。さらに、頻繁なデータのリフレッシュは、デバイスに過度のストレスを与えたり、デバイスの通常の使用を妨げることがあるため、好ましくない場合がある。
図9Aは、メモリアレイ200のブロック内に記憶されたデータをリフレッシュするプロセス900の、一実施形態を示すフローチャートである。プロセス800のステップ806またはステップ810によって特定されたブロックについて、プロセス900が開始される。一実施形態では、プロセス900は1つのブロック内の全てのページをリフレッシュする。しかしながら、全てのページ内のデータがリフレッシュされる必要はない。ステップ902では、リフレッシュされるブロックから、データが読み出される。前述のように、ブロックについてのデータが当初に記憶されていた場合には、パリティ検査ビットがセクタごとに計算され、パリティ検査ビットがECC符号化メカニズムの一部としてユーザデータと結合されていた。データの記憶に先立ち、データをランダム化するために、スクランブル処理が用いられてもよいことに留意されたい。一部の実施形態では、1本のワードライン上の複数のセルは、数個のセクタまたはECCページを形成する。セクタのデータは、最初はスクランブル化され、その後ECCエンジンによって符号化されてもよい。幾つかのセクタに対応する、スクランブルされECC符号化されたデータは、蓄積された後に1本のワードラインに同時に書き込まれるとすることができる。例えば、1本のワードラインは、4つのセクタ相当のデータに対応してもよい。一部のアーキテクチャでは、1本のワードライン上の全てのセルが同時に書き込まれるとすることができる。1ブロックのプログラミングは、各プレーン(plane)において一度に1本のワードラインにデータを書き込むことで構成されている。全てのビット線が一緒にプログラムされるようなNANDアーキテクチャ(ABL NANDアーキテクチャ)の一例は、米国特許出願公開公報第2006/0158947号に記載されている。
ステップ904において、データを訂正するために丁度読み出されたデータに、ECCアルゴリズムが実行される。一実施形態では、コントローラ244は、512ビットについて6ビット以上を訂正することが可能な、強力なエラー訂正アルゴリズムを実行する。一実施形態では、コントローラ244は反復復号技術を実行する。一実施形態では、コントローラ244は、マルチビット/セル・フラッシュメモリで、確率的エラー訂正を実行する。マルチビット/セル・フラッシュメモリのエラー訂正を実行するステップの更なる詳細は、「Probabilistic Error Correction in Multi-bit-per-cell Flash Memory;」と題した、2007年4月19日発行の米国公開特許出願第2007/0086239号、および、「Method of Error Correction in MBC Flash Memory;」と題した、2007年4月19日発行の米国公開特許出願第2007/0089034号に記載されている。各々の文献の内容は、参照することにより本明細書に組み込まれる。ステップ906において、訂正されたデータがメモリアレイ200の1つのブロックに書き込まれる。一実施形態では、「ウェアレベリング(wear leveling)」を実現するために、リフレッシュされたブロックとは異なるブロックに、データは常に書き込まれる。すなわち、異なるブロックへのデータ書き込みは、各ブロックに行われたプログラミングの回数を平均化することに役立つ。一実施形態では、新たなブロックへまたは同一のブロックへデータをリフレッシュするかどうかについての判断が行なわれる。この判断は、ブロックの最後の書き込みからの時間、および/または、ブロックがプログラムされた回数の「ホットカウント(hot count)」に基づいて行われても良い。例えば、ブロックが最近プログラムされた場合、および/または、ホットカウントが高い場合、異なるブロックにデータを書き込むことが望ましいことがある。一部の実施形態では、各ブロックは、自己のホットカウントを記憶する。
一実施形態では、リフレッシュ処理900が完了するまでデバイスの電源を切らない旨のメッセージが、ユーザへ表示される。しかしながら、そのようなメッセージが表示されるか否かに関わらず、データリフレッシュの間にユーザはデバイスの電源を切ることができる。またユーザは、メモリアレイ200にアクセスすることで、リフレッシュ処理を中断することができる。従って、プロセス900が中断された場合にプロセス900を再開されることができるように、データリフレッシュプロセス900の経過の記録が不揮発性メモリに保持される。
図9Bは、選択されたワードラインに接続された複数のメモリセルにプログラミングするプログラミング処理を記述するフローチャートである。一実施形態では、図9Bのプロセスは、データの1ページをプログラムするために用いられる。従って、図9Bのプロセスは、プロセス900のステップ906で書き込まれる1つのブロック内の異なる複数のページをプログラムするために、多くの回数使用される。
図9Bの処理の一実施形態では、プログラミングの前に複数のメモリセルが消去される(ステップ940)。一実施形態では、pウェルを十分な期間にわたって消去電圧(例:20ボルト)に昇圧し、選択されたブロックのワードラインを接地するとともに、ソースおよびビットラインをフローティングさせることで、メモリセルが消去される。容量結合のため、選択されていないワードライン、ビットライン、選択ライン、及び、共通ソースラインは、同様に消去電圧のかなりの割合まで上昇させられる。このようにして、典型的に、ファウラー・ノルドハイム・トンネル効果によってフローティングゲートの電子が基板側に放出されると、強力な電界が選択されたメモリセルのトンネル酸化物層に印加され、選択されたメモリセルのデータが消去される。電子がフローティングゲートからpウェル領域に移動するとき、選択されたセルの閾値電圧が低下する。消去は、メモリアレイ全体、個々のブロック、又はセルの別のユニットで実行されてもよい。メモリセルのブロックが消去された後、本明細書中に記載されているように、様々なメモリセルが書き込まれ、又は、部分的に書き込まれ得る。なお、ステップ940で実行される消去は、ブロックの各ワードラインが書き込まれる前に実行される必要はない。それどころか、ブロックを消去し、その後、ワードラインの書き込みと書き込みとの間で消去することなく、各ワードラインを書き込むことが可能である。
ステップ942において、消去されたメモリセルについての消去閾値電圧の分布を狭めるために、ソフトプログラミングが実行される。消去処理の結果、一部のメモリセルは、必要な状態よりも深い消去状態になることがある。ソフトプログラミングは、消去されたメモリセルの閾値電圧を消去検証レベルの近くに移動させるために、小さなプログラミングパルスを印加することができる。ステップ950で、「データロード」コマンドがコントローラ244によって発行され、ステートマシン222に入力される。ステップ952で、ページアドレスを指定するアドレスデータがデコーダ224に供給される。ステップ954で、アドレス指定されたページのための1ページの書き込みデータが書き込みのために入力される。例えば、一実施形態では、528バイトのデータが入力されうる。このデータは、選択されたビットラインのための適切なレジスタ/ラッチにラッチされる。一部の実施形態では、データは、検証動作のために使用されるべき選択されたビットラインのための第2レジスタの中にさらにラッチされる。ステップ956で、「書き込み」コマンドがコントローラ244から受信され、ステートマシン222に供給される。
「書き込み」コマンドによってもたらされ、ステップ954においてラッチされたデータは、適切なワードラインに印加された電圧を使用してステートマシン222によって制御される選択されたメモリセルに書き込まれる。ステップ958で、書き込み信号「Vpgm」(例えば、一連の電圧パルス)が初期値(例えば、約12V又は別の適当なレベル)に初期化され、ステートマシン222によって保持されるプログラムカウンタPCが0に初期化される。ステップ960で、書き込み信号Vpgmのパルスは、選択されたワードラインに印加される。選択されていないワードラインは、「Vpass」と称される1つ以上の昇圧電圧を受ける。対応するメモリセルが書き込まれるべきことを示唆する論理「0」が特有のデータラッチに記憶される場合、対応するビットラインは接地される。これに反して、対応するメモリセルがこのメモリセルのデータ状態に留まるべきであることを示唆する論理「1」が特有のラッチに記憶される場合、書き込みを禁止するため、対応するビットラインがVDDに接続される。なお、書き込み信号は、パルスの大きさが各連続パルスと共に増大する複数の電圧パルスを含む。電圧パルスの間には、複数の検証パルスが存在する。
ステップ962で、選択されたメモリセルの状態は、上述のように、適切な目標レベルの組を使用して検証される。選択されたセルの閾値電圧が適切な目標レベルに到達したことが検出された場合、対応するデータラッチの中に記憶されたデータは論理「1」に変更される。閾値電圧が適切な目標レベルに到達していないことが検出された場合、対応するデータラッチの中に記憶されたデータは変更されない。このようにして、対応するデータラッチに記憶されている論理「1」を有するビットラインは、書き込まれる必要がない。すべてのデータラッチが論理「1」を記憶しているとき、ステートマシン222は、すべての選択されたセルに書き込まれたことがわかる。ステップ964で、すべてのデータラッチが論理「1」を記憶しているか否かがチェックされる。もしそうであるならば、すべての選択されたメモリセルは書き込まれ、これらのメモリセルの目標状態に対し検証されているので、書き込み処理は、完結し、成功している。この場合、「合格」ステータスがステップ966で通知される。なお、一部の実施例では、ステップ964で、少なくとも所定数のデータラッチが論理「1」を記憶しているか否かがチェックされる。この所定数は、すべてのデータラッチの数未満でもよく、それによって、すべてのメモリセルがこれらのメモリセルの適切な検証レベルに到達する前に書き込み処理が停止することを可能にする。書き込みに成功していないメモリセルは、読み出し処理中に誤り訂正を使用して訂正されることが可能である。
ステップ964で、データラッチのすべてが論理「1」を記憶しているのではないと判定された場合、書き込み処理が継続する。ステップ968で、プログラムカウンタPCは、プログラム限界値と対照してチェックされる。プログラム限界値の一実施例は20であるが、他の値が様々な実施例において使用できる。プログラムカウンタPCがプログラム限界値未満でない場合、ステップ969で、書き込みに成功しなかったメモリセルの数が所定数以下であるか否かが判定される。書き込みに成功しなかったメモリセルの数が所定数以下である場合、書き込み処理は合格としてフラグが立てられ、合格というステータスがステップ971で通知される。多くの場合、書き込みに成功しなかったメモリセルは、読み出し処理中に誤り訂正を使用して訂正することができる。しかし、書き込みに成功しなかったメモリセルの数が既定数より多い場合、書き込み処理は失敗としてフラグが立てられ、失敗というステータスがステップ970で通知される。ステップ968において、プログラムカウンタPCがプログラム限界値(例えば、20)未満であると判定された場合、次のVpgm電圧パルスの大きさは、ステップサイズ(例えば、0.1〜0.4ボルトステップサイズ)で増大され、プログラムカウンタPCはステップ972でインクリメントされる。ステップ972の後に、処理は、一巡してステップ960へ戻され、次のVpgm電圧パルスを印加する。
一般に、(図9Bのステップ962の間に実行される検証動作のような)検証動作及び読み出し動作の間は、選択されたワードラインは電圧に接続され、この電圧のレベルは、関係しているメモリセルの閾値電圧がこのようなレベルに到達したか否かを判定するために、読み出し及び検証のそれぞれの動作に対し指定される。ワードライン電圧を印加した後、メモリセルの伝導電流は、メモリセルがワードラインに印加された電圧に応答してオンにされたか否かを判定するために測定される。測定された伝導電流がある一定の値より大きい場合、メモリセルがオンになったこと、及び、ワードラインに印加された電圧がメモリセルの閾値電圧より大きいことが想定される。測定された伝導電流がある一定の値より大きくない場合、メモリセルがオンにならなかったこと、及び、ワードラインに印加された電圧がメモリセルの閾値電圧より大きくないことが想定される。
読み出し又は検証動作中にメモリセルの伝導電流を測定する多数の方法がある。一実施例では、メモリセルの伝導電流は、メモリセルがセンスアンプ内の専用コンデンサを放電又は充電するレートで測定される。別の実施例では、選択されたメモリセルの伝導電流は、このメモリセルを含むNANDストリングが、対応するビットラインを放電させることを可能にする(又は可能にしない)。ビットライン上の電圧は、この電圧が放電されたか否かを調べるためにある期間後に測定される。
図10Aは、1つのブロックにデータ完全性の問題が存在するか否かを判定するプロセス1000の、一実施形態を示すフローチャートである。プロセス1000は、図8のステップ806を実行するために用いることができる。プロセス1000は、候補ブロックがデータ完全性の問題を有するか否かについての判定を実行するステップ810の、リフレッシュ処理の実施形態のためにも用いることが可能である。ステップ1002において、複数の不揮発性記憶素子の高分解能スキャンが実行される。スキャンは、制限された範囲内で実行されてもよい。例えば、図6Bを参照して、スキャンは状態14および15の一部に実行されてもよい。高分解能スキャンは、通常読み出し処理に比してより高い分解能で、多数の読み出しを実行する。検出するデータ完全性の問題について全てのデータを訂正するために、1ブロック内の1本のみのワードライン(またはその一部分)がスキャンされる必要がある。しかしながら、必要に応じて、多数のワードラインからのデータをスキャンすることもできる。ここで、高分解能読み出しポイントを、「ソフト読み出し」と呼ぶ。
図11は、分布関数1101(制御ゲート電圧の関数としてのセルのカウント数)を示す図である。分布1101は、例えば、図6Bに記載されたような16個のVt分布のうちの約4つに対応する。分布は、メモリセルを異なる状態にプログラミングすることによって生じるVt分布に対応する頂点の間に、「谷間」を有する。一実施形態では、分布関数1101内の谷底1111の一つが決定される。1つの谷底に対応する閾値電圧のみが決定される必要があるため、分布関数1101の一部のみが決定される。図11に記載された例では、16個の異なる制御ゲート電圧(ソフト読み出し電圧Vsr1−Vsr16)が、実線で示された分布1101の一部分を取り出すために使用される。16より多いまたは少ないソフト読み出し電圧を用いることもできる。分布1101の点線部分は、より広範囲の制御ゲート電圧が印加された場合に、どのように分布1101が出現するかを示している。
一実施形態では、多種の状態にプログラミングすることによって生じるVt分布の期待特性に基づいて、識別の対象とされた谷間が決定される。例えば、Vt分布と、異なるVt分布を発生させると期待される変化量と、の間で期待される分離などの要因に基づいて、谷間が選択されてもよい。幾つかの不揮発性記憶デバイスでは、より高い電圧のVt分布はより大きな分離を有し、より大きな変化を経ることが期待されている。しかしながら、各状態は、異なるデータ完全性の問題によって異なる影響を受ける一方で、どの谷間を特定するかの決定に影響することに留意されたい。例えば、状態15は、他の状態よりもより大きな広がりによって、読み出し障害に悩まされることがある。従って、データ保持力の問題についての測定が目的である場合には、読み出し障害の影響を多分に受けている状態を読み出すことを回避するか、または、読み出し障害がVt分布の変化にどのように影響するかを少なくとも織り込むことが、好ましいことがある。高分解能スキャンは、(16個のデータ状態を用いる実施形態における)他の14個のVt分布の何れも含まない、非常に限定された電圧範囲を超えて実行されることに留意されたい。従って、読み出し処理の合計数は、適度に低い数に保たれる。一方、状態14および15の間の谷間(例えば、16個の状態がある場合の最も高い谷間)に対するスキャンを選択することは、以下の理由により好ましいことがある。分布内での下方への変化が多いことがあり、状態14と15の間の谷間は、状態13と14の間の谷間として誤って解釈されることがある。2つの最も高い状態の間の谷間を探索することは、この問題を緩和する。
分布を測定するために、ブロック内の選択されたワードラインのメモリセルの制御ゲートに、ソフト読み出し電圧Vsr1−Vs16が連続的に印加される。例えば、メモリセルの制御ゲートに印加される電圧は、連続する各電圧ごとに、例えば、50mVのステップサイズで段階的に上昇される。ソフト読み出しの各々に応答して導通する(ターンオンする)メモリセルの数が記録される。各所定のセルに記憶された実際のデータが記録される必要はない。さらに正確には、ソフト読み出し電圧の各々に応答して、幾つのメモリセルが導通(ターンオン)するかの分析に基づいて、分布1101の形状を決定することができる。
プロセス1000のステップ1004において、分布関数内の谷底が決定される。一実施形態では、谷底電圧が特定される。谷底電圧の目的は、少なくとも1つのVt分布がどのくらい変化したかを測定するための基準点を備えることである。谷底電圧1111の例が、図11のVt分布1102aと1102bとの間に記載されている。一実施形態では、基準点は谷底以外の何れかの場所に存在する。例えば、基準電圧は分布関数1101の頂点に存在してもよい。
一実施形態では、閾値電圧分布データの第1の平滑化によって、谷が決定される。多数の既知の関数のうちの何れか1つを、閾値電圧分布データを平滑化するために用いることができる。例えば、データを平滑化するために、ローパスフィルタを用いることができる。導関数についての情報を生成し記憶する、多くの方法および種類が存在するが、ある特定の方法や種類が要求されることはない。次に、谷を特定するためのゼロ交差を探索するために、導関数計算の計算結果が調査される。
以下に、谷を見つけるための他の技術を記載する。この実施形態では、関数で閾値電圧分布データを畳み込み積分することで、閾値電圧分布データが平滑化される。一実施形態では、関数はガウス関数である。他の実施形態では、ガウス関数の前および後ろのテール部分が除去されたため、関数は先端を切断したガウス関数である。他の実施形態では、ガウス関数以外の関数を用いることもできる。平滑化されたデータの導関数が決定される。次に、谷を特定するための、負から正へ変化するゼロ交差を見つけるために、導関数計算の計算結果が調査される。
谷の位置を特定するために使用可能な1つの追加の技術は、閾値電圧分布データを2乗することである。これは、データにさらにコントラストを与えることに役立つことがある。そして、閾値電圧分布データの2乗値は、上述した方法の何れかを用いて平滑化される。次に、平滑化されたデータの導関数が決定され、ゼロ交差から谷間が決定される。
ステップ1006において、基準点(例:谷底電圧の閾値電圧)に基づいて、Vt分布の変化が測定される。他の例では、分布関数の頂点の閾値電圧に基づいて、Vt分布1102bの変化が測定されうる。一実施形態では、分布関数1101の頂点を特定するために、上述された導関数技術を適合することができる。一実施形態では、Vt分布の変化は、谷底電圧と基準電圧との差として算出される。プログラミング後のVt分布1102bの期待される形状に基づいて、基準電圧を決定することができる。期待される形状は、工学特性によって決めることができる。従って、基準電圧を決定するために、フィールド(field)内のプログラミング直後のVt分布1102aおよび1102bの形状が決定される必要はない。第1のプログラムが行われた場合に、Vt分布1102a、1102bが全く重ならないことがあることにも留意されたい。プログラミングの間に電荷が除去されるか追加されるかによるデータ保持力問題の結果として、Vt分布1102a、1102bが右または左へ変化することがあることに留意されたい。
ステップ1008では、Vt分布の変化に(少なくとも一部は)基づいて、データをリフレッシュするか否かについての判断が行われる。データリフレッシュを必要とする変化量は、それらの変化が正確にデータを読み出す能力にどのように影響するかの実験室試験に基づいて決定することができる。ブロックのデータがリフレッシュされる場合には、図9Aのプロセス900が実行される。しかしながら、データリフレッシュは即座に実行される必要はない。例えば、メモリアレイ200全体のうちのどのブロックがリフレッシュされるかについての決定が行われるまで、データリフレッシュを延期することができる。折を見てデータリフレッシュ(例:プロセス900)が実行できるように、リフレッシュされるブロックの記録は保持される。ある場合には、デバイス210の電源が落とされる前には、データリフレッシュが実行されない。従って、記録はスペアブロックなどの不揮発性メモリに保持すべきである。
ステップ1008のリフレッシュ判定は、Vt分布変化以外の、または、Vt分布変化に追加される、多くの因子に基づく。メモリセルが高い閾値電圧を有する状態は、低い閾値電圧に関連する状態よりも、電荷をより早いレートで喪失/獲得する場合があることに留意されたい。従って、リフレッシュ判定の一つの因子は、どの状態が解析中のVt分布に関連するかである。前述した通り、保持力損失に対する脆弱性の度合いの違いに対応するために、状態は異なる幅/間隔を有していてもよい。従って、より変化する傾向がある状態は、Vt分布の変化を測定するためにより適している。しかしながら、複数の状態の何れかを、Vt分布の変化を測定するために使用することができる。特定の記憶デバイスの異なるVt分布変化特性は、実験室でデバイスに対して行われるテストに基づいて獲得されてもよい。
リフレッシュ判定で考慮される他の因子は、どの(1本のまたは複数の)ワードラインがデータ完全性についてテストされたかである。上述のように、一実施形態では、データ完全性の問題のテストのために、1本のワードラインが選択される。異なるワードラインは、データ保持力などのデータ完全性問題に関して、異なる特性を有することがある。一部のワードラインの特性が他のワードラインに非常に近似しているために、異なる複数のワードラインが一組にグループ化されてもよいことに留意されたい。
まだ考慮される他の因子は、ブロックがプログラムされた回数である。その回数は、別名として「ホットカウント」と呼ばれる。ホットカウントは、ブロックのオーバーヘッドとして記憶されてもよい。多数回プログラムされたブロックは、数回しかプログラムされていないブロックに比して、より早く電荷的中性へ遷移する傾向があることがある。従って、少なくとも幾つかの記憶デバイスにおいて、高いホットカウントのブロックは、低いホットカウントのブロックに比して、Vt分布のより小さな変化でリフレッシュする必要がある可能性がある。
他の因子は、ブロックがプログラムされてから経過した時間である。しかしながら、デバイスは環境条件の極端な違いを受けることがあるため、最後の書き込みからの時間は、それ自身では、データをリフレッシュする必要性についての信頼性のある指標にならないことがある。すなわち、最後のプログラミングからの時間に対して過度に依存すると、時間パラメータが長すぎる場合に必要とされるリフレッシュをし損ねたり、時間パラメータが短かすぎる場合にリフレッシュを頻繁に行いすぎてしまうことがある。しかしながら、多数の因子中の一つの因子として時間パラメータを用いることは、際どい事例でデータをリフレッシュするか否かを判定する場合に、有益な場合がある。
考慮する他の因子は、現在の電源電圧である。現在の電源電圧は、Vt分布が交差する点を判定するために用いられるソフト読み出し電圧の大きさなど、電圧の多くの大きさに影響することがある。
リフレッシュ判定は、選択されたブロックがプログラムされた時の温度および現在の温度に基づくこともできる。トランジスタの閾値電圧は温度の関数であることに留意されたい。従って、これら2つの温度が大幅に異なる場合には、Vt分布の変化を予期することができる。一実施形態では、記憶デバイス210は、閾値電圧の温度により誘発された変化などを補償するための温度補償を内蔵している。この場合、リフレッシュ判定を行う際に、温度の因子を不必要にすることができる。
一実施形態では、記憶デバイス210は、前述の因子がどのようにリフレッシュ判定に影響するかを記述する、多軸の「リフレッシュ因子」テーブルを記憶する。リフレッシュ因子テーブルは、テーブルが管理回路にアクセス可能になるなど、記憶デバイス210を顧客に供給する前に、メモリアレイ200に記憶されてもよい。図12は、16個の異なる状態(S0−S15)についての第1の軸と、ワードライン(WL)の5個の異なるグループについての第2の軸とを備える、2軸テーブル1200の例を示す図である。実際には、各セルは、そのセルに関連する要因によってどの程度Vt分布が変化することが許容されるかを判定するために用いられる値を含んでいる。例えば、状態13に関連するセルおよびWL11−WL23は、値「Vx」を有する。図が分かりにくくならないように、テーブル例1200の他のセルには、値は記載されていない。
特定の例として、ワードライン17がテストされ状態13が解析される場合に、データ完全性の問題が存在するか否かを判定するために、テーブル1200を参照してVt分布の変化が値「Vx」と比較される場合を説明する。テーブル1200は、各軸が前述の因子の一つまたは他の因子に関連している、より多くの軸を有していてもよい。例えば、テーブル1200は、異なるホットカウント範囲に関連する他の軸を有していてもよい。
図10Bは、訂正アルゴリズムによって何ビットが訂正される必要があるかに基づいて、データリフレッシュが必要か否かを判定する、プロセス1030の一実施形態を示している。プロセス1030は、図8のステップ806を実行するための一技術である。ステップ1032では、選択されたワードラインのセルが読みだされる。前述した通り、一実施形態では、ワードラインはランダムに選択される。
ステップ1034では、今読みだされたデータにECCアルゴリズムが実行される。ECCアルゴリズムは、データの何ビットが訂正が必要かを判定する。
ステップ1038では、コントローラ244は、訂正が必要なビットの数がビットの閾値数よりも大きいか否かを判定する。大きい場合には、ブロックはデータリフレッシュが必要であると特定され、リフレッシュ処理(例:図9A)が現段階でまたは後の段階で実行される。エラーのビットの数が閾値よりも小さい場合には、ブロックは現段階でのデータリフレッシュに特定されない(ステップ1042)。一実施形態では、閾値はホットカウントの関数である。例えば、ホットカウントが高くなるほど、閾値が低くなる。
図10Cは、訂正アルゴリズムが収束するまでどのくらいの期間がかかるかに基づいて、データリフレッシュが必要か否かを判定する、プロセス1060の一実施形態を示す図である。プロセス1060は、図8のステップ806を実行するための一技術である。ステップ1062では、選択されたワードラインのセルが読みだされる。
ステップ1064では、コントローラ244は、エラーのデータビットの回復を試行するために、ECCアルゴリズムを実行する。ステップ1068では、コントローラ244は、訂正アルゴリズムが収束するのに、許容された期間よりも長い期間がかかったかを判断する。一実施形態では、収束するために、許容された数よりも多い繰り返し回数を反復復号技術が必要としたか否かを、コントローラ244は判断する。許容数は、プロセス1060の感度の変化に適合するように、可変とすることができる。例えば、ブロックが、プロセス800のステップ808で特定された候補ブロックである場合には、感度を上昇させることができる。訂正アルゴリズムが収束するために非常に長期間かかる場合には、現時点または後の時点で、ブロックはリフレッシュされる(ステップ902)。訂正アルゴリズムが許容された反復回数内で収束する場合には、ブロック内のデータはリフレッシュされない(ステップ1072)。一実施形態では、反復の回数はホットカウントの関数である。例えば、ホットカウントが大きくなるほど、収束のための反復の許容回数は小さくなる。
図13Aは、リフレッシュ処理のための候補ブロックを特定するプロセス1300の一実施形態を示す図である。図13Aのプロセスは、図8のステップ808を実行するために用いられてもよい。プロセス1300は、候補ブロックを特定するために、各ブロックに関連したタイムスタンプを使用する。ステップ1302では、不良ブロックに関連するタイムスタンプにアクセスされる。(不良ブロックは、プロセス800のステップ806で特定される)。ステップ1304では、他のブロックに関連するタイムスタンプにアクセスされる。一実施形態では、ブロックのタイムスタンプは、ブロック自体に記憶される。一般的には、各ワードラインは、データ記憶のために使用されない幾つかのメモリセルを有している。タイムスタンプは、それらの使用されていないメモリセルの一つに関連する記憶素子に記憶されてもよい。タイムスタンプが各ブロックに記憶されている場合には、タイムスタンプを有しているワードラインのみが読み出される必要がある。また、タイムスタンプデータはワードライン内のデータの非常に小さい一部分のみである場合があるため、ワードライン内のデータの大部分は無視することができることに留意されたい。一実施形態では、記憶デバイス内の「タイムスタンプ」テーブルは、各ブロックからタイムスタンプを読み出す必要性を緩和するタイムスタンプを記憶する。例えば、メモリアレイ200内の1つまたは複数のブロックが、タイムスタンプテーブルのために確保される。
ステップ1306では、不良ブロックに関連するタイムスタンプよりも早いタイムスタンプをどのブロックが有するか、についての判定が行われる。これらのブロックは、リフレッシュ処理のための候補ブロックとして特定される。一実施形態では、データ完全性の問題を有するブロックがプログラムされた後の特定の時間内に最後にプログラムされたブロックが、リフレッシュ処理のためにマークが付けられる。例えば、不良ブロックの1日後または2日後に最後に書き込まれたブロックも、同様の環境で発生したデータ完全性の問題に悩まされることがある。この場合、これらのブロックは候補ブロックとして特定される。これらのブロックは候補ブロックとして特定されるため、プロセス800のステップ810が実行される。
一実施形態では、連続番号は、タイムスタンプよりもむしろ各ブロックに関連する。連続番号は、ブロックがプログラムされる順番を記述する。図13Bは、連続番号を用いてリフレッシュ処理のための候補ブロックを特定する、プロセス1350の一実施形態を示す図である。図13のプロセス1350は、図8のステップ808を実行するために用いられてもよい。ステップ1352では、不良ブロックに関連する連続番号にアクセスされる。ステップ1354では、他のブロックに関連する連続番号にアクセスされる。一般的には、ブロックのための連続番号は、そのブロックに記憶される。しかしながら、ブロック番号に関連した連続番号のテーブルを有するスペアブロックなどの他の場所に、連続番号を記憶することができる。
ステップ1356では、不良ブロックに関連する連続番号よりも低い連続番号を有するブロックが、リフレッシュ処理の候補として特定される。これらのブロックが候補ブロックとして特定されることにより、プロセス800のステップ810は実行される。
図14は、リフレッシュ処理のための候補ブロックを特定するために使用された連続番号を管理するプロセス1400の、一実施形態を示す図である。ステップ1402では、記憶デバイス210の電源が投入される。記憶デバイス210は、小型ナビゲーション装置などの他のデバイスに組み込まれてもよい。この例を用いることで、電源が小型ナビゲーション装置に使用可能なときはいつでも、記憶デバイス210は電源を得ることができる。例えばユーザは、自動車の「電源ソケット」などの電源に、小型ナビゲーション装置を接続することができる。この例では、ユーザが小型ナビゲーション装置のスイッチを切っている場合であっても、ユーザが装置をソケットに接続することによって、記憶デバイス210の電源が投入されるとしてもよい。
ステップ1404では、連続番号がメモリアレイ200の複数のブロックから読み出される。一部のブロックは、連続番号を有さなくてもよい。例えば、有効なデータを現在記憶していないブロックは、連続番号を有さないとしてもよい。一実施形態では、1セルにつき1ビットのみを記憶するブロックは、テストを要求しないため、連続番号を有さない。記憶デバイス210の電源が投入された後、連続番号を読み出す前に、他の多くの動作が実行されてもよいことに留意されたい。
ステップ1406では、最も高い連続番号が、現在の連続番号として記録される。現在の連続番号は、記憶デバイス210またはデバイス210の外部に存在する、ランダム・アクセス・メモリに記録されてもよい。例えば、デバイス210と結合したホストは、ランダム・アクセス・メモリを使用可能にする。代わりに、現在の連続番号が、不揮発性メモリ(例:スペアブロック)に記録されてもよい。
ステップ1408では、1つまたは複数のブロックをメモリアレイ200に書き込むためのリクエストが受信される。ステップ1410では、現在の連続番号がインクリメントされる。ステップ1412では、現在の連続番号(インクリメント後)が、書き込まれるブロックに記憶される。書き込まれるブロックがさらに存在する場合には(ステップ1414)、連続番号をインクリメントして、次の書き込まれるブロックに連続番号を記憶するために、制御はステップ1410へ移る。
図15は、リフレッシュ処理(例:プロセス800のステップ810)のための候補ブロックを選択するために使用されたタイムスタンプを管理するプロセス1500の、一実施形態を示す図である。プロセス1500は、ステップ1502で記憶デバイス210の電源が投入されることで開始する。
ステップ1504では、異なる複数のブロックからタイムスタンプが読み出される。連続番号を使用する実施形態と同様に、全てのブロックがタイムスタンプを有さなくてもよい。前述のように、プロセス1300のステップ1304の一実施形態では、タイムスタンプはテーブルからアクセスされる。選択自由なステップ1506では、ステップ1504で読み出されたタイムスタンプが、タイムスタンプテーブルに記憶される。テーブルはRAMに存在してもよいし、テーブルは不揮発性装置の1つまたは複数のブロックを占めてもよい。
ステップ1508では、1つまたは複数のブロックを書き込むために、リクエストが受信される。ステップ1510では、現在の時間が測定される。ある場合には、入手できる時間の正確性は疑わしい場合があることに留意されたい。例えば、記憶デバイス210に結合されたホストに問い合わせることによって、時間にアクセスされる場合がある。しかしながら、ホストは不正確な時間を供給する場合がある。例えば、ホストの時計が不正確にプログラムされる場合がある。時間の正確性は、発信元のタイプ(例:信用できないパーソナルコンピュータ)や、前の時間と不整合な時間(例:時間が遡って経過する)に基づいて、問い合わせることができる。時間情報が信用できない場合には、時間情報の代わりにダミー値を用いることができる。別の方法として、信用できる最後の時間情報を代わりに記憶することもできる。信用できる最後の時間情報が記憶される場合には、実際にプログラムされた時間よりも前にブロックがプログラムされたとみなされる結果になることに留意されたい。従って、いつブロックがプログラムされたかに基づいていつリフレッシュをするかを判定するプロセス1300は、含み幅が大きい。
一部の実施形態では、記憶デバイス210は、非常に信頼性があるとされている時間発信元にアクセスする。例えば、記憶デバイス210が、衛星から正確な時間を受信する小型ナビゲーションデバイスに使用される場合には、時間は正確であるとみなすことができる。
ステップ1512では、書き込まれる(1つまたは複数の)ブロックにタイムスタンプが記憶される。必要な場合には、書き込まれる各ブロックに対して、ステップ1510を繰り返すことができる。しかしながら、書き込み処理がかなりの期間中断されない限りは、所定の書き込みリクエストで書き込まれる全てのブロックに対して、同一のタイムスタンプを使用することができる。選択自由なステップ1514では、タイムスタンプテーブルがアップデートされる。
タイムスタンプおよび連続番号の両方をブロックに記憶できることに留意されたい。前述のように、時間情報が信頼できない場合には、記憶されているタイムスタンプはダミー値の場合がある。リフレッシュするか否かをタイムスタンプに基づいて判定するためにプロセス1300を実行する場合には、ダミー値を有するこれらのブロックでは、リフレッシュ判定に代えて連続番号を用いることができる。
図16は、データ保持力問題を緩和するための操作を行うようにユーザに警告する、プロセス1600の一実施形態を示す図である。ステップ1602では、記憶デバイス210が過度の頻度でリフレッシュされることが決定される。一実施形態では管理回路がこの決定を行うが、この決定は記憶デバイスの外部で行われてもよい。
データが過度の頻度でリフレッシュされるか否かを判定するために、データリフレッシュに関する記録が保持されてもよい。記録は、少なくとも1ブロックをリフレッシュするプロセス800を、毎回監視してもよい。どれだけの合計ブロックがリフレッシュされたか、どれだけが実際のデータ完全性問題の判定(例えば、プロセス1000、1030、または1060の1つ以上による判定)に基づいてリフレッシュされたか、いつプログラムされたかに基づく自動リフレッシュに基づいたか、なども記録は含んでいる。
時間情報が使用できる場合には、いつリフレッシュが発生したかについても、記録は示すことができる。一部の場合には、特定のデータリフレッシュの時間は知ることができないが、時間ウインドウは決定することはできる。例えば、データリフレッシュによって、正確なまたは信頼性のある時間を供給しないホストに、記憶デバイスが結合されることがある。しかしながら、記憶デバイスが時間を供給するホストに後で結合する場合には、(リフレッシュが知られているよりも前の時間を想定する)時間ウインドウにリフレッシュの時間を限定することができる。ある期間において何回のデータリフレッシュを過度の頻度であるとするのかの判定は、研究所でデバイスが検査されたときに得られる情報に基づいて行うことができる。
ステップ1604では、データ完全性の問題を緩和するための訂正操作を行うようにユーザに警告する、メッセージが表示される。例えば、メッセージは、ユーザは記憶デバイスを長期間高温環境下に放置すべきでない旨を指示する。
上記本発明の詳細な説明は、説明のための例示にすぎない。上記本発明の詳細な説明は、詳細に開示した範囲に限定するものではない。本明細書が開示する技術は、様々に変形、変更し得る。上記説明した実施形態は、本発明の原理とその具体的な適用例をよく説明するために選ばれたものであり、当業者は、具体的な事例に則して本発明を様々に変更し得る。本発明の技術的範囲は、添付された特許請求の範囲によって定まるものである。

Claims (15)

  1. デバイス内の複数の不揮発性記憶素子の第1グループに記憶されたデータのリフレッシュが実行されるべきである旨を、前記第1グループ内の1つまたは複数の不揮発性記憶素子の状態に基づいて判定するステップ(806)と、
    デバイス内の複数の不揮発性記憶素子の第2グループがリフレッシュ処理を受けるべきである旨を、複数の不揮発性記憶素子の前記第1グループが最後にプログラムされたときに対して複数の不揮発性記憶素子の前記第2グループがいつ最後にプログラムされたかに基づいて判定するステップ(808)と、
    複数の不揮発性記憶素子の前記第2グループに前記リフレッシュ処理を実行するステップ(810)と、
    を備える、不揮発性記憶装置を動作させる方法。
  2. 前記リフレッシュ処理を実行する前記ステップは、
    前記第2グループ内の1つまたは複数の不揮発性記憶素子の状態に基づいて、複数の不揮発性記憶素子の第2グループに記憶されたデータをリフレッシュするか否かを決定するステップを備える、請求項1に記載の方法。
  3. デバイス内の複数の不揮発性記憶素子の第2グループがリフレッシュ処理を受けるべきである旨を判定する前記ステップは、
    前記デバイス内の何れの不揮発性記憶素子が、複数の不揮発性記憶素子の前記第1グループよりも前にプロラムされたかを判定するステップを備える、請求項1または2に記載の方法。
  4. デバイス内の複数の不揮発性記憶素子の第2グループがリフレッシュ処理を受けるべきである旨を判定する前記ステップは、
    複数の不揮発性記憶素子の前記第1グループに関連した第1のタイムスタンプにアクセスするステップを備え、
    前記第1のタイムスタンプは、複数の不揮発性記憶素子の前記第1グループがいつ最後にプログラムされたかを示すものであり、
    前記デバイス内の複数の不揮発性記憶素子の複数のブロックに関連した複数のタイムスタンプにアクセスするステップを備え、
    前記複数のタイムスタンプは、前記複数の不揮発性記憶素子の複数の前記ブロックの各々がいつ最後にプログラムされたかを示すものであり、
    前記複数のブロックの何れのブロックが、前記第1のタイムスタンプよりも早いタイムスタンプに関連しているかを判定するステップを備える、請求項1ないし3の何れか1項に記載の方法。
  5. 前記第1グループを第1閾値電圧分布および第2閾値電圧分布を備える複数の閾値電圧分布にプログラムするステップを備え、
    デバイス内の複数の不揮発性記憶素子の第1グループに記憶されたデータのリフレッシュが実行されるべきである旨を判定する前記ステップは、
    複数の不揮発性記憶素子の前記第1グループの閾値分布を判定するステップと、
    前記閾値分布の基準点を決定するステップと、
    前記第1グループに記憶されたデータがリフレッシュされるべきか否かを、前記基準点の変化に基づいて判定するステップと、
    を備える、請求項1ないし4の何れか1項に記載の方法。
  6. 前記閾値分布の基準点を決定する前記ステップは、
    前記第1グループ内の前記複数の不揮発性記憶素子の少なくとも一部分に複数の読み出し基準電圧を印加するステップと、
    前記読み出し基準電圧を印加するステップに基づいて、前記閾値分布内の谷間を検出するステップを備え、
    前記複数の読み出し基準電圧は、前記第1閾値電圧分布および前記第2閾値電圧分布の一部を含む電圧範囲に印加され、
    前記谷間は前記基準点である、請求項5に記載の方法。
  7. 前記第1グループは複数のワードラインに関連しており、
    前記方法は、複数のワードラインから、前記複数の読み出し基準電圧を印加する第1ワードラインをランダムに選択するステップをさらに備える、請求項6に記載の方法。
  8. デバイス内の複数の不揮発性記憶素子の第1グループに記憶されたデータのリフレッシュが実行されるべきである旨を判定するステップは、他のワードラインの位置に対する前記第1ワードラインの位置にさらに基づく、請求項7に記載の方法。
  9. デバイス内の複数の不揮発性記憶素子の第1グループに記憶されたデータのリフレッシュが実行されるべきである旨を判定するステップは、前記第1グループ内の1つまたは複数の不揮発性記憶素子がプログラムされた回数にさらに基づく、請求項8に記載の方法。
  10. デバイス内の複数の不揮発性記憶素子の第2グループがリフレッシュ処理を受けるべきであるか否かを判定するステップは、
    前記デバイス内の複数の不揮発性記憶素子の複数のグループの各々についての連続番号にアクセスするステップを備え、
    前記連続番号は、前記複数のグループがプログラムされた順番を示しており、
    前記連続番号は、前記第1グループのための第1連続番号と前記第2グループのための第2連続番号を備えており、
    前記第1連続番号よりも低い連続番号を有するグループ内のデータがリフレッシュされるべき旨を判定するステップを備え、
    前記第2連続番号は前記第1連続番号よりも低い、請求項1ないし3の何れか1項に記載の方法。
  11. 前記リフレッシュ処理を実行するステップは、複数の不揮発性記憶素子の前記第2グループにデータ完全性の問題が存在するか否かを判断することなく、複数の不揮発性記憶素子の前記第2グループに記憶されたデータをリフレッシュするステップを備える、請求項1に記載の方法。
  12. 第1グループ(ブロックi)と第2グループ(ブロックi+n)を含んでいる、複数の不揮発性記憶素子の複数のグループと、
    複数の不揮発性記憶素子の前記複数のグループと通信する管理回路(220,230,240,242,244)と、を備え、
    前記管理回路は、デバイス内の複数の不揮発性記憶素子の第1グループに記憶されたデータのリフレッシュが実行されるべきである旨を、前記第1グループ内の1つまたは複数の不揮発性記憶素子の状態に基づいて判定し、
    前記管理回路は、デバイス内の複数の不揮発性記憶素子の第2グループがリフレッシュ処理を受けるべきである旨を、複数の不揮発性記憶素子の前記第1グループが最後にプログラムされたときに対して複数の不揮発性記憶素子の前記第2グループがいつ最後にプログラムされたかに基づいて判定し、
    前記管理回路は、前記第2グループに前記リフレッシュ処理を実行する、不揮発性記憶装置。
  13. 前記管理回路は、前記第1グループを第1閾値電圧分布および第2閾値電圧分布を備える複数の閾値電圧分布にプログラムし、
    前記管理回路は、複数の不揮発性記憶素子の前記第1グループの閾値分布を判定し、
    前記管理回路は、前記閾値分布内の谷間を検出し、
    前記管理回路は、複数の不揮発性記憶素子の前記第1グループに記憶されたデータのリフレッシュが実行されるべきか否かを、前記谷間の変化に基づいて判定する、請求項12に記載の不揮発性記憶装置。
  14. 前記管理回路は、前記第1グループ内の前記複数の不揮発性記憶素子の少なくとも一部分に複数の読み出し基準電圧を印加することで、前記谷間を検出し、
    前記管理回路は、前記複数の読み出し基準電圧を、前記第1閾値電圧分布および前記第2閾値電圧分布の一部を含む電圧範囲に印加する、請求項13に記載の不揮発性記憶装置。
  15. 前記管理回路は、前記第1グループが最後にプログラムされたときよりも前に、前記第2グループが最後にプログラムされたか否かに基づいて、複数の不揮発性記憶素子の前記第2グループが前記リフレッシュ処理を受けるべきであるか否かを判定する、請求項12に記載の不揮発性記憶装置。
JP2011542157A 2008-12-18 2009-09-30 不揮発性記憶装置のためのデータリフレッシュ Active JP5638537B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/338,879 2008-12-18
US12/338,879 US7859932B2 (en) 2008-12-18 2008-12-18 Data refresh for non-volatile storage
PCT/US2009/058969 WO2010080185A1 (en) 2008-12-18 2009-09-30 Data refresh for non-volatile storage

Publications (2)

Publication Number Publication Date
JP2012513072A true JP2012513072A (ja) 2012-06-07
JP5638537B2 JP5638537B2 (ja) 2014-12-10

Family

ID=41393629

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011542157A Active JP5638537B2 (ja) 2008-12-18 2009-09-30 不揮発性記憶装置のためのデータリフレッシュ

Country Status (7)

Country Link
US (2) US7859932B2 (ja)
EP (1) EP2368251B1 (ja)
JP (1) JP5638537B2 (ja)
KR (1) KR101565564B1 (ja)
CN (1) CN102246241B (ja)
TW (1) TW201027541A (ja)
WO (1) WO2010080185A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014120228A1 (en) * 2013-01-31 2014-08-07 Hewlett-Packard Development Company Ram refresh rate
JP2018055748A (ja) * 2016-09-29 2018-04-05 東芝メモリ株式会社 メモリシステム
JP2020102295A (ja) * 2020-03-06 2020-07-02 キオクシア株式会社 メモリシステムおよび不揮発性メモリの制御方法
JP2021527912A (ja) * 2018-07-12 2021-10-14 マイクロン テクノロジー,インク. センチネルセルに基づくデータ整合性の判断

Families Citing this family (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9141477B2 (en) * 2007-10-12 2015-09-22 International Business Machines Corporation Data protection for variable length records by utilizing high performance block storage metadata
US8230317B2 (en) * 2008-04-09 2012-07-24 International Business Machines Corporation Data protection method for variable length records by utilizing high performance block storage metadata
US7859932B2 (en) * 2008-12-18 2010-12-28 Sandisk Corporation Data refresh for non-volatile storage
US8190832B2 (en) * 2009-01-29 2012-05-29 International Business Machines Corporation Data storage performance enhancement through a write activity level metric recorded in high performance block storage metadata
US20100199020A1 (en) * 2009-02-04 2010-08-05 Silicon Storage Technology, Inc. Non-volatile memory subsystem and a memory controller therefor
KR20100102925A (ko) * 2009-03-12 2010-09-27 삼성전자주식회사 리드 리클레임 신호를 발생하는 불휘발성 메모리 장치 및 이를 포함하는 메모리 시스템
US8806144B2 (en) 2009-05-12 2014-08-12 Stec, Inc. Flash storage device with read cache
US8370712B2 (en) * 2009-07-23 2013-02-05 International Business Machines Corporation Memory management in a non-volatile solid state memory device
US20120008414A1 (en) * 2010-07-06 2012-01-12 Michael Katz Systems and methods for storing, retrieving, and adjusting read thresholds in flash memory storage system
JP2012048770A (ja) * 2010-08-24 2012-03-08 Toshiba Corp 不揮発性半導体記憶装置、及び、メモリシステム
US8484542B2 (en) * 2011-02-08 2013-07-09 Sandisk Technologies Inc. Data recovery using additional error correction coding data
US8892844B2 (en) 2011-03-07 2014-11-18 Micron Technology, Inc. Methods of accessing memory cells, methods of distributing memory requests, systems, and memory controllers
US8756474B2 (en) * 2011-03-21 2014-06-17 Denso International America, Inc. Method for initiating a refresh operation in a solid-state nonvolatile memory device
US10838886B2 (en) 2011-04-19 2020-11-17 Micron Technology, Inc. Channel depth adjustment in memory systems
US8650353B2 (en) * 2011-07-01 2014-02-11 Intel Corporation Apparatus, system, and method for refreshing non-volatile memory
US8681547B2 (en) * 2011-08-23 2014-03-25 Micron Technology, Inc. Memory cell coupling compensation
US8406053B1 (en) 2011-09-21 2013-03-26 Sandisk Technologies Inc. On chip dynamic read for non-volatile storage
US8687421B2 (en) * 2011-11-21 2014-04-01 Sandisk Technologies Inc. Scrub techniques for use with dynamic read
KR20130077401A (ko) * 2011-12-29 2013-07-09 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그 구동 방법
US8934306B2 (en) * 2012-03-06 2015-01-13 Micron Technology, Inc. Memory and sense parameter determination methods
US20130311550A1 (en) * 2012-05-17 2013-11-21 Infinite Convergence Solutions, Inc Multi-site Server and Client Resynchronization Process and Devices
US9053808B2 (en) 2012-06-21 2015-06-09 Sandisk Technologies Inc. Flash memory with targeted read scrub algorithm
US9236110B2 (en) 2012-06-30 2016-01-12 Intel Corporation Row hammer refresh command
US9117544B2 (en) 2012-06-30 2015-08-25 Intel Corporation Row hammer refresh command
US8938573B2 (en) 2012-06-30 2015-01-20 Intel Corporation Row hammer condition monitoring
US9036417B2 (en) 2012-09-06 2015-05-19 Sandisk Technologies Inc. On chip dynamic read level scan and error detection for nonvolatile storage
US9466382B2 (en) 2012-11-14 2016-10-11 Sandisk Technologies Llc Compensation for sub-block erase
CN103839578B (zh) * 2012-11-27 2017-02-08 广东华晟数据固态存储有限公司 一种提高基于nand的固态存储器数据保持时间的方法
US9627085B2 (en) * 2012-11-29 2017-04-18 Silicon Motion Inc. Refresh method for flash memory and related memory controller thereof
US9384821B2 (en) 2012-11-30 2016-07-05 Intel Corporation Row hammer monitoring based on stored row hammer threshold value
US8717826B1 (en) * 2012-12-11 2014-05-06 Apple Inc. Estimation of memory cell wear level based on saturation current
US8988941B2 (en) 2012-12-18 2015-03-24 SanDisk Tehcnologies Inc. Select transistor tuning
US9230684B2 (en) * 2012-12-19 2016-01-05 Kabushiki Kaisha Toshiba Memory controller, storage device, and memory control method
US9251885B2 (en) 2012-12-28 2016-02-02 Intel Corporation Throttling support for row-hammer counters
CN103927272A (zh) * 2013-01-16 2014-07-16 建兴电子科技股份有限公司 固态储存装置及其数据保存方法
US9218890B2 (en) 2013-06-03 2015-12-22 Sandisk Technologies Inc. Adaptive operation of three dimensional memory
KR102127416B1 (ko) 2013-06-27 2020-06-26 삼성전자주식회사 비휘발성 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 읽기 방법
CN103927128B (zh) 2013-07-11 2017-03-01 威盛电子股份有限公司 数据储存装置以及快闪存储器控制方法
TWI543189B (zh) * 2013-07-11 2016-07-21 威盛電子股份有限公司 資料儲存裝置以及快閃記憶體控制方法
TWI490870B (zh) * 2013-08-06 2015-07-01 Silicon Motion Inc 資料儲存裝置及其資料維護方法
CN104346236B (zh) 2013-08-06 2018-03-23 慧荣科技股份有限公司 数据储存装置及其数据维护方法
US9263158B2 (en) * 2013-08-16 2016-02-16 Seagate Technology Llc Determining data retention time in a solid-state non-volatile memory
US9142324B2 (en) 2013-09-03 2015-09-22 Sandisk Technologies Inc. Bad block reconfiguration in nonvolatile memory
US9263136B1 (en) * 2013-09-04 2016-02-16 Western Digital Technologies, Inc. Data retention flags in solid-state drives
US9281046B2 (en) * 2013-10-08 2016-03-08 Advanced Micro Devices, Inc. Data processor with memory controller for high reliability operation and method
US9424179B2 (en) 2013-10-17 2016-08-23 Seagate Technology Llc Systems and methods for latency based data recycling in a solid state memory system
US9208847B2 (en) 2013-10-30 2015-12-08 Taiwan Semiconductor Manufacturing Co., Ltd. Memory devices with improved refreshing operations
JP6430740B2 (ja) * 2013-11-05 2018-11-28 エルエスアイ コーポレーション ソリッドステートメモリシステムにおけるレイテンシーベースのデータ再利用のシステム及び方法
US9218886B2 (en) 2013-12-10 2015-12-22 SanDisk Technologies, Inc. String dependent parameter setup
KR102148389B1 (ko) 2014-06-11 2020-08-27 삼성전자주식회사 오버 라이트 동작을 갖는 메모리 시스템 및 그에 따른 동작 제어방법
KR102292172B1 (ko) 2014-06-23 2021-08-25 삼성전자주식회사 불휘발성 메모리 장치 및 메모리 컨트롤러의 동작 방법
KR102128406B1 (ko) 2014-09-26 2020-07-10 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
KR102225618B1 (ko) * 2014-09-30 2021-03-12 한화테크윈 주식회사 실패 시나리오로부터 기록된 데이터의 시간 관련 메타데이터의 공간 효율적인 복구
US9996297B2 (en) 2014-11-14 2018-06-12 SK Hynix Inc. Hot-cold data separation method in flash translation layer
US9563504B2 (en) * 2014-12-05 2017-02-07 Sandisk Technologies Llc Partial block erase for data refreshing and open-block programming
KR102250423B1 (ko) 2015-01-13 2021-05-12 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 동작 방법
US9595342B2 (en) * 2015-01-20 2017-03-14 Sandisk Technologies Llc Method and apparatus for refresh programming of memory cells based on amount of threshold voltage downshift
US9472298B1 (en) 2015-05-13 2016-10-18 Sandisk Technologies Llc Dynamic read valley search in non-volatile memory
US9401216B1 (en) 2015-09-22 2016-07-26 Sandisk Technologies Llc Adaptive operation of 3D NAND memory
US9691473B2 (en) 2015-09-22 2017-06-27 Sandisk Technologies Llc Adaptive operation of 3D memory
KR102389259B1 (ko) * 2015-10-15 2022-04-22 에스케이하이닉스 주식회사 메모리 장치 및 메모리 장치의 동작 방법
US9910730B2 (en) 2015-10-21 2018-03-06 Sandisk Technologies Llc System for handling erratic word lines for non-volatile memory
US9857999B2 (en) * 2015-11-09 2018-01-02 Western Digital Technologies, Inc. Data retention charge loss sensor
TWI594248B (zh) * 2015-12-30 2017-08-01 華邦電子股份有限公司 記憶體裝置的刷新方法以及可調整刷新操作頻率的記憶體裝置
US10026488B2 (en) 2016-08-18 2018-07-17 Sandisk Technologies Llc Non-volatile memory with read disturb detection for open blocks
CN107481764B (zh) * 2017-07-31 2020-06-12 深圳芯邦科技股份有限公司 一种3D Nand Flash扫描检测方法和系统
US10269442B1 (en) * 2017-12-28 2019-04-23 Micron Technology, Inc. Drift mitigation with embedded refresh
US10446246B2 (en) * 2018-03-14 2019-10-15 Silicon Storage Technology, Inc. Method and apparatus for data refresh for analog non-volatile memory in deep learning neural network
TWI648739B (zh) * 2018-03-20 2019-01-21 大陸商深圳大心電子科技有限公司 記憶體管理方法與儲存控制器
TWI650757B (zh) 2018-03-30 2019-02-11 大陸商深圳大心電子科技有限公司 解碼方法以及儲存控制器
CN110390976B (zh) * 2018-04-19 2021-06-08 华邦电子股份有限公司 存储器装置及其数据更新方法
TWI657456B (zh) 2018-05-14 2019-04-21 慧榮科技股份有限公司 用來於記憶裝置中藉助於機器學習來進行的記憶體存取管理之方法,記憶裝置及其控制器以及電子裝置
KR102567111B1 (ko) * 2018-08-02 2023-08-14 삼성전자주식회사 스토리지 디바이스 및 스토리지 디바이스의 동작 방법
JP2020038738A (ja) 2018-09-03 2020-03-12 キオクシア株式会社 不揮発性メモリ及びメモリシステム
JP2020047339A (ja) 2018-09-18 2020-03-26 キオクシア株式会社 メモリシステム
US11086529B2 (en) * 2018-09-26 2021-08-10 Western Digital Technologies, Inc. Data storage systems and methods for improved data relocation based on read-level voltages associated with error recovery
JP2020107376A (ja) 2018-12-27 2020-07-09 キオクシア株式会社 メモリシステム
KR20200084200A (ko) 2019-01-02 2020-07-10 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법
TWI690928B (zh) * 2019-01-10 2020-04-11 慧榮科技股份有限公司 改善快閃記憶體之讀取重試的方法、控制器以及相關儲存裝置
US11056166B2 (en) 2019-07-17 2021-07-06 Micron Technology, Inc. Performing a refresh operation based on a characteristic of a memory sub-system
CN111798906A (zh) * 2020-06-29 2020-10-20 深圳市芯天下技术有限公司 提高非型闪存数据保持能力方法、系统、存储介质和终端
TWI782490B (zh) * 2020-07-02 2022-11-01 日商鎧俠股份有限公司 接收終端、通訊系統及程式
JP2022012874A (ja) 2020-07-02 2022-01-17 キオクシア株式会社 受信端末、通信システム、およびプログラム
KR20220060572A (ko) 2020-11-04 2022-05-12 삼성전자주식회사 비휘발성 메모리 장치, 그것을 제어하는 제어기, 그것을 갖는 저장 장치, 및 그것의 리드 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002318729A (ja) * 2001-04-19 2002-10-31 Sharp Corp ファイルシステムおよびその制御方法
JP2008090778A (ja) * 2006-10-05 2008-04-17 Matsushita Electric Ind Co Ltd 不揮発性メモリ用メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、不揮発性メモリのメモリ制御方法
JP2008262614A (ja) * 2007-04-10 2008-10-30 Mega Chips Corp 不揮発性半導体記憶装置
JP2009205578A (ja) * 2008-02-29 2009-09-10 Toshiba Corp 半導体記憶装置
JP2010027021A (ja) * 2007-09-28 2010-02-04 Denso Corp 電子機器及びプログラム

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5715193A (en) * 1996-05-23 1998-02-03 Micron Quantum Devices, Inc. Flash memory system and method for monitoring the disturb effect on memory cell blocks due to high voltage conditions of other memory cell blocks
JP3596989B2 (ja) * 1996-10-03 2004-12-02 邦博 浅田 半導体記憶装置
US5852582A (en) * 1997-02-18 1998-12-22 Advanced Micro Devices, Inc. Non-volatile storage device refresh time detector
US5909449A (en) * 1997-09-08 1999-06-01 Invox Technology Multibit-per-cell non-volatile memory with error detection and correction
JP2000251483A (ja) * 1999-02-24 2000-09-14 Sanyo Electric Co Ltd 1チップマイクロコンピュータとそのデータリフレッシュ方法
US6226200B1 (en) * 1999-11-17 2001-05-01 Motorola Inc. In-circuit memory array bit cell threshold voltage distribution measurement
DE10040890C1 (de) * 2000-08-18 2002-01-31 Trw Automotive Electron & Comp System und Verfahren zum sicheren Hochtemperaturbetrieb eines Flash-Speichers
EP1233421B1 (en) * 2001-02-19 2007-07-11 STMicroelectronics S.r.l. Method for refreshing stored data in an electrically erasable and programmable non-volatile memory
US6650587B2 (en) * 2001-11-19 2003-11-18 Micron Technology, Inc. Partial array self-refresh
US6751143B2 (en) * 2002-04-11 2004-06-15 Micron Technology, Inc. Method and system for low power refresh of dynamic random access memories
JP4078119B2 (ja) * 2002-04-15 2008-04-23 富士通株式会社 半導体メモリ
US7327619B2 (en) 2002-09-24 2008-02-05 Sandisk Corporation Reference sense amplifier for non-volatile memory
FR2851074B1 (fr) * 2003-02-10 2005-04-22 St Microelectronics Sa Memoire flash sectorisee comprenant des moyens de controle et de rafraichissement de cellules memoire
US6956782B2 (en) * 2003-09-30 2005-10-18 Infineon Technologies Ag Selective bank refresh
US7173852B2 (en) * 2003-10-03 2007-02-06 Sandisk Corporation Corrected data storage and handling methods
US7012835B2 (en) * 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
KR100542701B1 (ko) * 2003-11-18 2006-01-11 주식회사 하이닉스반도체 낸드 플래시 메모리 소자의 문턱전압 측정 방법
US7200062B2 (en) * 2004-08-31 2007-04-03 Micron Technology, Inc. Method and system for reducing the peak current in refreshing dynamic random access memory devices
JP4791912B2 (ja) * 2006-08-31 2011-10-12 株式会社東芝 不揮発性半導体記憶装置及び不揮発性記憶システム
KR100827695B1 (ko) * 2006-11-03 2008-05-07 삼성전자주식회사 연약 셀을 표식자로서 활용하는 불휘발성 반도체 메모리장치
US7859932B2 (en) * 2008-12-18 2010-12-28 Sandisk Corporation Data refresh for non-volatile storage

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002318729A (ja) * 2001-04-19 2002-10-31 Sharp Corp ファイルシステムおよびその制御方法
JP2008090778A (ja) * 2006-10-05 2008-04-17 Matsushita Electric Ind Co Ltd 不揮発性メモリ用メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、不揮発性メモリのメモリ制御方法
JP2008262614A (ja) * 2007-04-10 2008-10-30 Mega Chips Corp 不揮発性半導体記憶装置
JP2010027021A (ja) * 2007-09-28 2010-02-04 Denso Corp 電子機器及びプログラム
JP2009205578A (ja) * 2008-02-29 2009-09-10 Toshiba Corp 半導体記憶装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014120228A1 (en) * 2013-01-31 2014-08-07 Hewlett-Packard Development Company Ram refresh rate
JP2018055748A (ja) * 2016-09-29 2018-04-05 東芝メモリ株式会社 メモリシステム
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
JP2021527912A (ja) * 2018-07-12 2021-10-14 マイクロン テクノロジー,インク. センチネルセルに基づくデータ整合性の判断
JP7042930B2 (ja) 2018-07-12 2022-03-28 マイクロン テクノロジー,インク. センチネルセルに基づくデータ整合性の判断
JP2020102295A (ja) * 2020-03-06 2020-07-02 キオクシア株式会社 メモリシステムおよび不揮発性メモリの制御方法
JP7087013B2 (ja) 2020-03-06 2022-06-20 キオクシア株式会社 メモリシステムおよび不揮発性メモリの制御方法

Also Published As

Publication number Publication date
EP2368251B1 (en) 2014-09-10
TW201027541A (en) 2010-07-16
EP2368251A1 (en) 2011-09-28
US7859932B2 (en) 2010-12-28
US20110026353A1 (en) 2011-02-03
KR101565564B1 (ko) 2015-11-03
CN102246241B (zh) 2014-04-16
WO2010080185A1 (en) 2010-07-15
US8098537B2 (en) 2012-01-17
US20100157671A1 (en) 2010-06-24
CN102246241A (zh) 2011-11-16
KR20110106378A (ko) 2011-09-28
JP5638537B2 (ja) 2014-12-10

Similar Documents

Publication Publication Date Title
JP5638537B2 (ja) 不揮発性記憶装置のためのデータリフレッシュ
KR101564399B1 (ko) 비휘발성 메모리에서의 판독 디스터브 완화
JP5439488B2 (ja) 不揮発性メモリアレイの最終ワードラインのデータ保持力改善
JP5575244B2 (ja) 選択的なメモリセルプログラムおよび消去
JP5693615B2 (ja) 隣接状態情報に基づく温度補償がなされる不揮発性記憶装置
JP5216856B2 (ja) プログラムの期間中での干渉の影響の低減
JP5650226B2 (ja) 不揮発性記憶装置における危険状態データの識別
JP4954223B2 (ja) フローティングゲート結合に対する補償を伴う不揮発性記憶装置に対する読み出し動作
TWI410975B (zh) 具有狀態電壓位準的調適性設定之非揮發性記憶體及其方法
TWI397075B (zh) 交替式讀取模式
JP2013525938A (ja) 不揮発性記憶素子の検出におけるチャネル結合効果の低減
JP2012523646A (ja) 不揮発性記憶装置のためのツーパス消去
JP2012511790A (ja) メモリのための適応消去及びソフトプログラミング
JP2013514601A (ja) 高速ビット検出及び検証スキップを有する不揮発性記憶のプログラミング
TW201011763A (en) Verification process for non-volatile storage
JP5067645B2 (ja) プログラミング検証のためのセグメント化されたビットスキャン
TW201333957A (zh) 用於非揮發性儲存器之不穩定程式化偵測
TW201603022A (zh) 半導體記憶體裝置及記憶體系統

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120621

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130412

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130430

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130626

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140114

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140403

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20140515

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141022

R150 Certificate of patent or registration of utility model

Ref document number: 5638537

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250