(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025018542
(43)【公開日】2025-02-06
(54)【発明の名称】不揮発性メモリシステム及び不揮発性メモリの書換制御方法
(51)【国際特許分類】
G11C 16/34 20060101AFI20250130BHJP
【FI】
G11C16/34 130
G11C16/34 140
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2023122335
(22)【出願日】2023-07-27
(71)【出願人】
【識別番号】302062931
【氏名又は名称】ルネサスエレクトロニクス株式会社
(74)【代理人】
【識別番号】100103894
【弁理士】
【氏名又は名称】家入 健
(72)【発明者】
【氏名】羽生 正美
(72)【発明者】
【氏名】永井 功寛
(72)【発明者】
【氏名】大賀 洋文
【テーマコード(参考)】
5B225
【Fターム(参考)】
5B225CA27
5B225DB08
5B225DC08
5B225DE08
5B225FA01
(57)【要約】
【課題】正常セルへの過剰なストレスを抑制可能であると共に、正常セルのデータ保持マージンも確保可能な不揮発性メモリシステムを提供する。
【解決手段】一実施形態に係る不揮発性メモリシステムでは、消去ベリファイ処理においてフェイルと判定したアドレスについて、エラー訂正可能か否かを判定し、エラー訂正可能であると判定したアドレスの個数をカウントし、当該アドレスの個数が所定の個数以下である場合、消去処理は正常であると判定する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
アドレス毎にデータセルとエラー訂正コード用セルとを含む不揮発性メモリと、
前記不揮発性メモリの複数アドレスに対して一括して行う消去処理と、当該消去処理がパスかフェイルかをアドレス毎に判定する消去ベリファイ処理とを実行するコントローラと、を備え、
前記コントローラは、
前記消去ベリファイ処理においてフェイルと判定したアドレスについて、エラー訂正可能か否かを判定し、
前記エラー訂正可能であると判定したアドレスの個数をカウントし、当該アドレスの個数が所定の個数以下である場合、前記消去処理は正常であると判定する、
不揮発性メモリシステム。
【請求項2】
前記アドレスの個数が前記所定の個数を超える場合、前記消去処理は異常であると判定し、前記消去処理を再度実行する、
請求項1に記載の不揮発性メモリシステム。
【請求項3】
前記消去処理が異常であると判定した場合の前記消去処理のリトライ回数は、予め定められている、
請求項2に記載の不揮発性メモリシステム。
【請求項4】
前記コントローラは、
前記消去処理が行われた前記不揮発性メモリに対する書込処理と、当該書込処理がパスかフェイルかを判定する書込ベリファイ処理とをさらに実行する、
前記書込ベリファイ処理においてフェイルと判定した場合、消去状態から書き換えられる書換ビットの値が全て正しいか否かを判定し、
前記書換ビットの値が全て正しい場合、エラー訂正可能か否かを判定し、
前記エラー訂正可能であると判定した場合、前記書込処理は正常であると判定する、
請求項1に記載の不揮発性メモリシステム。
【請求項5】
前記コントローラは、
前記書換ビットの値が正しくない場合、前記書込処理は異常であると判定し、
前記書込処理及び前記書込ベリファイ処理を繰り返す、
請求項4に記載の不揮発性メモリシステム。
【請求項6】
前記コントローラは、
前記エラー訂正可能でないと判定した場合、前記書込処理は最終的に異常であると判定する、
請求項4に記載の不揮発性メモリシステム。
【請求項7】
アドレス毎にデータセルとエラー訂正コード用セルとを含む不揮発性メモリの複数アドレスに対して一括して消去処理を実行し、
前記消去処理がパスかフェイルかをアドレス毎に判定する消去ベリファイ処理を実行する、不揮発性メモリの書換制御方法であって、
前記消去ベリファイ処理においてフェイルと判定したアドレスについて、エラー訂正可能か否かを判定し、
前記エラー訂正可能であると判定したアドレスの個数をカウントし、当該アドレスの個数が所定の個数以下である場合、前記消去処理は正常であると判定する、
不揮発性メモリの書換制御方法。
【請求項8】
前記アドレスの個数が前記所定の個数を超える場合、前記消去処理は異常であると判定し、前記消去処理を再度実行する、
請求項7に記載の不揮発性メモリの書換制御方法。
【請求項9】
前記消去処理が異常であると判定した場合の前記消去処理のリトライ回数は、予め定められている、
請求項8に記載の不揮発性メモリの書換制御方法。
【請求項10】
前記消去処理が行われた前記不揮発性メモリに対する書込処理と、
前記書込処理がパスかフェイルかを判定する書込ベリファイ処理とを、さらに実行し、
前記書込ベリファイ処理においてフェイルと判定した場合、消去状態から書き換えられる書換ビットの値が全て正しいか否かを判定し、
前記書換ビットの値が全て正しい場合、エラー訂正可能か否かを判定し、
前記エラー訂正可能であると判定した場合、前記書込処理は正常であると判定する、
請求項7に記載の不揮発性メモリの書換制御方法。
【請求項11】
前記書換ビットの値が正しくない場合、前記書込処理は異常であると判定し、
前記書込処理及び前記書込ベリファイ処理を再度実行する、
請求項10に記載の不揮発性メモリの書換制御方法。
【請求項12】
前記エラー訂正可能でないと判定した場合、前記書込処理は最終的に異常であると判定する、
請求項10に記載の不揮発性メモリの書換制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、不揮発性メモリシステム及び不揮発性メモリの書換制御方法に関する。
【背景技術】
【0002】
不揮発性メモリの書換処理すなわち消去処理及び書込処理では、正しく書き換えられたか否かを判定するベリファイ処理を行う。通常のベリファイ処理では、全ての書換対象ビットが正しく書き換えられた場合、パスと判定され、1ビットでも書換エラーがあれば、フェイルと判定される。そして、パスと判定されるまで、書換処理とベリファイ処理とを繰り返し、所定の回数繰り返してもフェイルと判定される場合には、最終的にフェイルと判定される。
【0003】
他方、データセルに加え、エラービットを検出して訂正するためのエラー訂正コード(ECC:Error Correction Code)用セルを備えた不揮発性メモリが知られている。
特許文献1には、ベリファイ処理においてフェイルと判定されても、エラービット数がエラー訂正可能なビット数n(nは自然数)以下であれば、最終的にパスと判定して許容する技術が開示されている。このような構成によって、不揮発性メモリの故障発生率を低減できる。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
発明者らは、特許文献1に開示された技術に関し、以下の課題を見出した。
例えば特許文献1の
図6に開示された手法では、書換処理とベリファイ処理とを最大回数繰り返してからエラー訂正可能なビット数n以下か否かを判定している。消去処理では、例えば正常セルの分布から外れたオン電流の小さい異常セルがある場合、当該異常セルに起因して消去処理を繰り返すことになる。その結果、正常セルに過剰なストレスが掛かるという問題があった。
なお、当該問題の発生メカニズムの詳細については、比較例として明細書内において説明する。
【0006】
他方、例えば特許文献1の
図7に開示された手法では、書換処理とベリファイ処理とを1回行う毎に、エラー訂正可能なビット数n以下か否かを判定している。消去処理では、例えば異常セルが無い場合、オン電流が消去ベリファイの閾値レベルに満たない正常セルまでがエラー訂正によって許容される虞がある。その場合、データ保持マージンが不足し、データ保持時間すなわち寿命が短くなるという問題があった。
なお、当該問題の発生メカニズムの詳細については、比較例として明細書内において説明する。
その他の課題と新規な特徴は、本明細書の記述及び添付図面から明らかになるだろう。
【課題を解決するための手段】
【0007】
一実施形態に係る不揮発性メモリシステムでは、コントローラが、消去ベリファイ処理においてフェイルと判定したアドレスについて、エラー訂正可能か否かを判定し、エラー訂正可能であると判定したアドレスの個数をカウントし、当該アドレスの個数が所定の個数以下である場合、消去処理は正常であると判定する。
【0008】
一実施形態に係る不揮発性メモリの書換制御方法では、消去ベリファイ処理においてフェイルと判定したアドレスについて、エラー訂正可能か否かを判定し、エラー訂正可能であると判定したアドレスの個数をカウントし、当該アドレスの個数が所定の個数以下である場合、消去処理は正常であると判定する。
【発明の効果】
【0009】
前記一実施形態によれば、正常セルへの過剰なストレスを抑制可能であると共に、正常セルのデータ保持マージンも確保可能な不揮発性メモリシステムを提供できる。
【図面の簡単な説明】
【0010】
【
図1】第1の実施形態に係る不揮発性メモリシステムの構成を示すブロック図である。
【
図2】第1の実施形態に係る不揮発性メモリの書換制御方法を示すフローチャートである。
【
図3】第1の比較例に係る不揮発性メモリの書換制御方法を示すフローチャートである。
【
図4】第1の比較例に係る不揮発性メモリの書換制御方法における問題を説明するためのグラフである。
【
図5】第2の比較例に係る不揮発性メモリの書換制御方法を示すフローチャートである。
【
図6】第2の比較例に係る不揮発性メモリの書換制御方法における問題を説明するためのグラフである。
【
図7】第1の実施形態に係る不揮発性メモリの書換制御方法の効果を説明するためのグラフである。
【
図8】第2の実施形態に係る不揮発性メモリの書換制御方法を示すフローチャートである。
【
図9】
図8に示す書込処理によってデータセルに書き込まれたデータの変遷を模式的に示す図である。
【発明を実施するための形態】
【0011】
以下、本開示の具体的な実施形態について、図面を参照しながら詳細に説明する。但し、本開示が以下の実施形態に限定される訳ではない。また、説明を明確にするため、以下の記載及び図面は、適宜、簡略化されている。さらに、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【0012】
(第1の実施形態)
<不揮発性メモリシステムの構成>
まず、
図1を参照して、第1の実施形態に係る不揮発性メモリシステムについて説明する。
図1は、第1の実施形態に係る不揮発性メモリシステムの構成を示すブロック図である。
図1に示すように、第1の実施形態に係る不揮発性メモリシステムは、不揮発性メモリ10、コントローラ20、及びCPU30を備えている。なお、本実施形態に係る不揮発性メモリシステムにおいて、CPU30は必須ではない。
【0013】
不揮発性メモリ10は、例えばフラッシュメモリであり、アドレス毎にデータセルとエラー訂正コード(ECC:Error Correction Code)用セルとを含む。ECC用セルを設けることによって、アドレス毎にエラー訂正可能となる。エラー訂正可能なビット数n(nは自然数)は、適宜決定される。
【0014】
あくまでも一例として、アドレス毎に1ビットのエラー訂正を可能とするには、1アドレス(32ビット)のデータセルに対して、6ビットのECC用セルを追加する。アドレス毎に2ビットのエラー訂正を可能とするには、データセルに対して、12ビットのECC用セルを追加する。
【0015】
コントローラ20は、不揮発性メモリ10に対する書換処理すなわち消去処理及び書込処理を実行する。例えば不揮発性メモリ10がフラッシュメモリの場合、消去処理では、全てのデータセルをオンにし、全てのデータセルの値を「1」とする。書込処理は、消去処理の後に行われる。換言すると、書込処理を行うには、まず消去処理を行う。書込処理では、書込データに基づいて、所定のデータセルをオンからオフに切り換え、当該データセルの値を「1」から「0」に切り換える。
【0016】
ここで、不揮発性メモリ10では、消去処理は、複数アドレスから構成されるブロックもしくは複数ブロックに対して一括して行われる。あくまでも一例として、1アドレス(32ビット)の256アドレス分すなわち1KBを1ブロックとする。但し、1ブロックの容量は適宜決定される。
【0017】
ここで、
図1に示すコントローラ20は、ECCエンコーダ21及びECCデコーダ22を備えている。
図1には、書込処理における信号の入出力が示されている。ECCエンコーダ21は、CPU30から受け取った書込データwd1にエラー訂正用のデータを付与し、書込データwd2を生成する。コントローラ20は、エラー訂正用のデータを付与した書込データwd2を不揮発性メモリ10に書き込む。ECCデコーダ22は、不揮発性メモリ10から読み出した読出データrd1をデコードし、読出データrd1のエラー訂正を行う。そして、ECCデコーダ22は、エラー訂正された読出データrd2をCPU30に出力する。
【0018】
図示しないが、消去処理の場合、コントローラ20は、不揮発性メモリ10における消去対象ブロックの全てのデータセルをオンにし、全てのデータセルの値を「1」とする。そして、ECCデコーダ22は、消去処理が行われた不揮発性メモリ10から読み出したデータをデコードし、当該データのエラー訂正を行う。
【0019】
コントローラ20は、消去処理がパスかフェイルかをアドレス毎に判定する消去ベリファイ処理を実行する。例えば不揮発性メモリ10がフラッシュメモリの場合、コントローラ20は、消去処理を実行した不揮発性メモリ10からデータを読み出し、アドレス毎に全てのデータセルの値が「1」であるか否かを判定する。
【0020】
全てのデータセルの値が「1」の場合、コントローラ20は、消去ベリファイ処理においてパスと判定する。すなわち、コントローラ20は、消去処理は正常であると判定する。
他方、全てのデータセルの値が「1」でなく、データセルの値が「0」を含む場合、コントローラ20は、消去ベリファイ処理においてフェイルと判定する。
【0021】
また、コントローラ20は、消去ベリファイ処理においてフェイルと判定したアドレスについて、エラー訂正可能か否かを判定する。例えば、ECCデコーダ22によってエラー訂正を行ったデータに対して、消去ベリファイ処理を実行し、パスであればエラー訂正可能であり、フェイルであればエラー訂正可能でないと判定する。
【0022】
あるいは、消去処理を行った不揮発性メモリ10から読み出したデータに含まれるエラービット数をカウントし、エラー訂正可能なビット数n以下の場合、エラー訂正可能であると判定してもよい。他方、エラービット数が、エラー訂正可能なビット数nを超える場合、エラー訂正可能でないと判定してもよい。すなわち、コントローラ20は、必ずしも内部にECCデコーダ22を備えていなくてもよく、コントローラ20の外部にECCデコーダ22が設けられていてもよい。
【0023】
そして、コントローラ20は、エラー訂正可能であると判定したアドレスの個数をカウントし、当該アドレスの個数が所定の個数m(mは自然数)以下である場合、消去処理は正常であると判定する。ここで、個数mは、例えば正常セルの分布から外れたオン電流の小さい異常セルの発生率等に基づいて適宜決定される。
他方、アドレスの個数が所定の個数mを超える場合、コントローラ20は、消去処理は異常であると判定し、再度、消去処理及び消去ベリファイ処理を実行する。消去処理のリトライ回数は、予め定められている。
【0024】
なお、コントローラ20は、ハードウェア的には、プロセッサ、メモリ、その他の回路を含むコンピュータによって構成でき、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。
【0025】
以上に説明したように、本実施形態に係る不揮発性メモリシステムでは、コントローラ20が、消去ベリファイ処理においてフェイルと判定したアドレスについて、エラー訂正可能か否かを判定する。すなわち、消去処理を繰り返すことなく、エラー訂正可能か否かを判定するため、消去時間を短縮できると共に、消去処理の繰り返しによる正常セルへの過剰なストレスを抑制できる。
【0026】
また、本実施形態に係る不揮発性メモリシステムでは、コントローラ20が、エラー訂正可能であると判定したアドレスの個数をカウントし、当該アドレスの個数が所定の個数以下である場合、消去処理は正常であると判定する。すなわち、消去ベリファイ処理におけるフェイル判定の原因が異常セルに起因する場合のみエラー訂正によって許容するように、エラー訂正可能なアドレス数を制限する。そのため、オン電流が消去ベリファイの閾値レベルに満たない正常セルに対するエラー訂正が抑制され、データ保持マージンも確保できる。
【0027】
<不揮発性メモリの書換制御方法>
次に、
図2を参照して、第1の実施形態に係る不揮発性メモリの書換制御方法について説明する。
図2は、第1の実施形態に係る不揮発性メモリの書換制御方法を示すフローチャートである。
図2は、消去処理及び消去ベリファイ処理の制御方法を示している。
図2を説明するに当たり、
図1を適宜参照する。
【0028】
まず、
図2に示すように、コントローラ20は、不揮発性メモリ10に対する消去処理を実行する(ステップST1)。消去処理(ステップST1)は、複数アドレスから構成されるブロックもしくは複数ブロックに対して一括して行われる。例えば不揮発性メモリ10がフラッシュメモリの場合、消去処理(ステップST1)では、不揮発性メモリ10における消去対象アドレスの全てのデータセルをオンにし、全てのデータセルの値を「1」とする。
【0029】
次に、
図2に示すように、コントローラ20は、消去処理(ステップST1)がパスかフェイルかをアドレス毎に判定する消去ベリファイ処理を実行する(ステップST2)。例えば、コントローラ20は、消去処理を実行した不揮発性メモリ10からデータを読み出し、アドレス毎に全てのデータセルの値が「1」であるか否かを判定する。
【0030】
全てのデータセルの値が「1」の場合、コントローラ20は、消去ベリファイ処理においてパスと判定する(ステップST2でパス)。この場合、
図2に示すように、対象アドレスが最終アドレスでなければ、次のアドレスに移行してステップST2に戻り、次のアドレスについて消去ベリファイ処理を実行する。対象アドレスが最終アドレスであれば、全てのアドレスについての消去処理が正常であるため、コントローラ20は、当該消去処理が最終的に正常であると判定し、当該消去処理を終了する(パスエンド)。
【0031】
他方、全てのデータセルの値が「1」でなく、データセルの値が「0」を含む場合、コントローラ20は、消去ベリファイ処理においてフェイルと判定する(ステップST2でフェイル)。
この場合、
図2に示すように、エラー訂正可能か否かを判定する(ステップST3)。
【0032】
図2に示すように、エラー訂正可能でないと判定した場合(ステップST3でNO)、消去処理のリトライ回数が最大値でなければ、ステップST1に戻り、再度消去処理を実行する。消去処理のリトライ回数が最大値であれば、コントローラ20は、当該消去処理が最終的に異常であると判定し、当該消去処理を終了する(フェイルエンド)。フェイルエンドは、不揮発性メモリ10に故障が発生したことを意味する。
【0033】
他方、
図2に示すように、エラー訂正可能であると判定した場合(ステップST3でYES)、アドレス数をカウントアップする(ステップST4)。すなわち、ステップST3においてエラー訂正可能であると判定したアドレスの個数をカウントする。
【0034】
次に、
図2に示すように、ステップST4においてカウントしたアドレス数が所定の個数m以下であるか否かを判定する(ステップST5)。
アドレス数が所定の個数m以下の場合(ステップST5でYES)、対象アドレスが最終アドレスでなければ、次のアドレスに移行してステップST2に戻り、次のアドレスについて消去ベリファイ処理を実行する。対象アドレスが最終アドレスであれば、コントローラ20は、当該消去処理が最終的に正常であると判定し、当該消去処理を終了する(パスエンド)。
【0035】
他方、アドレス数が所定の個数mを超える場合(ステップST5でNO)、消去処理のリトライ回数が最大値でなければ、ステップST1に戻り、再度消去処理を実行する。消去処理のリトライ回数が最大値であれば、コントローラ20は、当該消去処理が最終的に異常であると判定し、当該消去処理を終了する(フェイルエンド)。
【0036】
<第1の比較例に係る不揮発性メモリの書換制御方法>
ここで、
図3を参照して、第1の比較例に係る不揮発性メモリの書換制御方法について説明する。
図3は、第1の比較例に係る不揮発性メモリの書換制御方法を示すフローチャートである。消去処理(ステップST1)及び消去ベリファイ処理(ステップST2)は、
図2と共通であるため、説明を省略する。
【0037】
図3に示すように、消去ベリファイ処理においてパス判定の場合(ステップST2でパス)、対象アドレスが最終アドレスでなければ、次のアドレスに移行してステップST2に戻り、次のアドレスについて消去ベリファイ処理を実行する。対象アドレスが最終アドレスであれば、全てのアドレスについての消去処理が正常であるため、コントローラ20は、当該消去処理が最終的に正常であると判定し、当該消去処理を終了する(パスエンド)。
【0038】
他方、
図3に示すように、消去ベリファイ処理においてフェイル判定の場合(ステップST2でフェイル)、消去処理のリトライ回数が最大値でなければ、ステップST1に戻り、再度消去処理を実行する。他方、消去処理のリトライ回数が最大値であれば、エラー訂正可能か否かを判定する(ステップST3)。
【0039】
図3に示すように、エラー訂正可能であると判定した場合(ステップST3でYES)、対象アドレスが最終アドレスでなければ、次のアドレスに移行してステップST2に戻り、次のアドレスについて消去ベリファイ処理を実行する。対象アドレスが最終アドレスであれば、全てのアドレスについての消去処理が正常であるため、コントローラ20は、当該消去処理が最終的に正常であると判定し、当該消去処理を終了する(パスエンド)。
【0040】
他方、
図3に示すように、エラー訂正可能でないと判定した場合(ステップST3でNO)、コントローラ20は、当該消去処理が最終的に異常であると判定し、当該消去処理を終了する(フェイルエンド)。
【0041】
<第1の比較例に係る不揮発性メモリの書換制御方法における問題>
次に、
図4を参照して、第1の比較例に係る不揮発性メモリの書換制御方法における問題について説明する。
図4は、第1の比較例に係る不揮発性メモリの書換制御方法における問題を説明するためのグラフである。
図4の横軸はセル数、縦軸はセルのオン電流Ionを示している。
【0042】
図4は、正常セルの分布から外れたオン電流Ionの小さい異常セルがある場合を示している。
図4に示す例では、異常セルが消去ベリファイの閾値レベルを超えないため、
図3に示す消去ベリファイ処理においてフェイル判定となり(ステップST2でフェイル)、リトライ回数の最大値まで消去処理(ステップST1)を繰り返すことになる。
【0043】
そのため、第1の比較例に係る不揮発性メモリの書換制御方法では、エラー訂正によるパス判定までに、消去時間が増大する。
また、
図4に示すように、エラー訂正によるパス判定までに、オン電流Ionが増大する側に正常セル分布が過剰にシフトする。そのため、第1の比較例に係る不揮発性メモリの書換制御方法では、正常セルに過剰なストレスが掛かるという問題があった。
【0044】
<第2の比較例に係る不揮発性メモリの書換制御方法>
次に、
図5を参照して、第2の比較例に係る不揮発性メモリの書換制御方法について説明する。
図5は、第2の比較例に係る不揮発性メモリの書換制御方法を示すフローチャートである。消去処理(ステップST1)及び消去ベリファイ処理(ステップST2)は、
図2と共通であるため、説明を省略する。
【0045】
図5に示すように、消去ベリファイ処理においてパス判定の場合(ステップST2でパス)、対象アドレスが最終アドレスでなければ、次のアドレスに移行してステップST2に戻り、次のアドレスについて消去ベリファイ処理を実行する。対象アドレスが最終アドレスであれば、全てのアドレスについての消去処理が正常であるため、コントローラ20は、当該消去処理が最終的に正常であると判定し、当該消去処理を終了する(パスエンド)。
【0046】
他方、
図5に示すように、消去ベリファイ処理においてフェイル判定の場合(ステップST2でフェイル)、直ちにエラー訂正可能か否かを判定する(ステップST3)。
図5に示すように、エラー訂正可能であると判定した場合(ステップST3でYES)、対象アドレスが最終アドレスでなければ、次のアドレスに移行してステップST2に戻り、次のアドレスについて消去ベリファイ処理を実行する。対象アドレスが最終アドレスであれば、全てのアドレスについての消去処理が正常であるため、コントローラ20は、当該消去処理が最終的に正常であると判定し、当該消去処理を終了する(パスエンド)。
【0047】
他方、
図5に示すように、エラー訂正可能でないと判定した場合(ステップST3でNO)、消去処理のリトライ回数が最大値でなければ、ステップST1に戻り、再度消去処理を実行する。消去処理のリトライ回数が最大値であれば、コントローラ20は、当該消去処理が最終的に異常であると判定し、当該消去処理を終了する(フェイルエンド)。
【0048】
<第2の比較例に係る不揮発性メモリの書換制御方法における問題>
次に、
図6を参照して、第2の比較例に係る不揮発性メモリの書換制御方法における問題について説明する。
図6は、第2の比較例に係る不揮発性メモリの書換制御方法における問題を説明するためのグラフである。
図6の横軸はセル数、縦軸はセルのオン電流Ionを示している。
【0049】
図6は、異常セルは無く、正常セル分布のオン電流Ionが低い場合を示している。
図6に示す例では、オン電流Ionが消去ベリファイの閾値レベルに満たない正常セルによって、
図5に示す消去ベリファイ処理においてフェイル判定となるが(ステップST2でフェイル)、その後のステップST3において直ちにエラー訂正可能と判定され得る。
【0050】
すなわち、第2の比較例に係る不揮発性メモリの書換制御方法では、
図6に示すように、異常セルだけでなく、オン電流Ionが消去ベリファイの閾値レベルに満たない正常セルまでがエラー訂正によって許容される虞がある。その場合、データ保持マージンが不足し、データ保持時間すなわち寿命が短くなるという問題があった。
【0051】
<不揮発性メモリの書換制御方法の効果>
次に、
図7を参照して、第1の実施形態に係る不揮発性メモリの書換制御方法の効果について説明する。
図7は、第1の実施形態に係る不揮発性メモリの書換制御方法の効果を説明するためのグラフである。
図7の横軸はセル数、縦軸はセルのオン電流Ionを示している。
【0052】
図7は、
図4と同様に、正常セルの分布から外れたオン電流Ionの小さい異常セルがある場合を示している。
図7に示す例では、異常セルが消去ベリファイの閾値レベルを超えないため、
図2に示す消去ベリファイ処理においてフェイル判定となるが(ステップST2でフェイル)、その後のステップST3において直ちにエラー訂正可能と判定される。
【0053】
そのため、第1の実施形態に係る不揮発性メモリの書換制御方法では、消去処理を繰り返すことなく、エラー訂正可能か否かを判定するため、消去時間を短縮できる。また、
図4と
図7との比較から分かるように、消去処理の繰り返しによる正常セルへの過剰なストレスを抑制できる。
【0054】
他方、
図2に示すように、エラー訂正可能なアドレス数をカウントし(ステップST4)、当該アドレス数をm個以下に制限する(ステップST5)。すなわち、消去ベリファイ処理におけるフェイル判定の原因が異常セルに起因する場合のみエラー訂正によって許容するように、エラー訂正可能なアドレス数を制限する。そのため、
図6と
図7との比較から分かるように、オン電流が消去ベリファイの閾値レベルに満たない正常セルに対するエラー訂正による許容が抑制され、データ保持マージンも確保できる。
【0055】
(第2の実施形態)
<不揮発性メモリの書換制御方法>
次に、
図8を参照して、第2の実施形態に係る不揮発性メモリの書換制御方法について説明する。
図8は、第2の実施形態に係る不揮発性メモリの書換制御方法を示すフローチャートである。
図8は、書込処理及び書込ベリファイ処理の制御方法を示している。
【0056】
図8に示す書込処理及び書込ベリファイ処理は、
図2に示した消去処理及び消去ベリファイ処理におけるパスエンド後に実行される。
なお、第2の実施形態に係る不揮発性メモリシステムの構成は、第1の実施形態と同様に
図1に示されている。そのため、
図8を説明するに当たり、
図1を適宜参照する。
【0057】
まず、
図8に示すように、コントローラ20は、不揮発性メモリ10に対する書込処理を実行する(ステップST11)。例えば不揮発性メモリ10がフラッシュメモリの場合、書込処理の前に実行する上述の消去処理では、全てのデータセルをオンにし、全てのデータセルの値が「1」とする。そして、
図8に示す書込処理(ステップST11)では、書込データに基づいて、所定のデータセルをオンからオフに切り換え、当該データセルの値を「1」から「0」に切り換える。
【0058】
次に、
図8に示すように、コントローラ20は、書込処理(ステップST11)がパスかフェイルかを判定する書込ベリファイ処理を実行する(ステップST12)。例えば、コントローラ20は、書込処理を実行した不揮発性メモリ10からデータを読み出し、全てのデータセルの値が書込データの値と一致しているか否かを判定する。
【0059】
全てのデータセルの値が書込データの値と一致している場合、コントローラ20は、書込ベリファイ処理においてパスと判定する(ステップST12でパス)。
この場合、
図8に示すように、コントローラ20は、当該書込処理が最終的に正常であると判定し、当該書込処理を終了する(パスエンド)。
【0060】
他方、データセルの値が書込データの値と一致しない値を含む場合、コントローラ20は、書込ベリファイ処理においてフェイルと判定する(ステップST12でフェイル)。
この場合、
図8に示すように、「1」から「0」に書き換えられるセル(「書換ビット」と呼ぶ)の値が全て書込データの値「0」と一致しているか否かを判定する(ステップST13)。
【0061】
図8に示すように、書換ビットの値が書込データの値と一致しない値を含む場合、(ステップST13でNO)、書込処理のリトライ回数が最大値でなければ、ステップST11に戻り、再度書込処理を実行する。書込処理のリトライ回数が最大値であれば、コントローラ20は、当該書込処理が最終的に異常であると判定し、当該書込処理を終了する(フェイルエンド)。
【0062】
他方、
図8に示すように、全ての書換ビットの値が、書込データの値と一致し、正しい場合(ステップST13でYES)、エラー訂正可能か否かを判定する(ステップST14)。
【0063】
ここで、エラー訂正可能であると判定した場合(ステップST14でYES)、コントローラ20は、当該書込処理が最終的に正常であると判定し、当該書込処理を終了する(パスエンド)。
他方、
図8に示すように、エラー訂正可能でないと判定した場合(ステップST14でNO)、コントローラ20は、当該書込処理が最終的に異常であると判定し、当該書込処理を終了する(フェイルエンド)。
【0064】
ここで、
図9は、
図8に示す書込処理によってデータセルに書き込まれたデータの変遷を模式的に示す図である。
図9の最上段に書込データの各データセルの値、2段目には初期(消去状態)の各データセルの値が示されている。さらに、
図9の3段目には1回目の書込処理後の各データセルの値、4段目には2回目の書込処理後の各データセルの値、最下段には3回目の書込処理後の各データセルの値が示されている。
【0065】
図9の2段目に示す初期(消去状態)に示すように、図面左から3番目のデータセルの値は「0」であり、消去エラーであるが、第1の実施形態に係る消去ベリファイ処理におけるエラー訂正によって許容されている。
【0066】
図9の3段目に示す1回目の書込処理後の値「10011101」は、
図9の最上段に示す書込データの値「00101000」と一致しないため、
図8に示す書込ベリファイ処理においてフェイル判定となる(ステップST12でフェイル)。さらに、値が「0」となるべき書換ビットの値が書込データにおける書換ビットの値「0」と一致しないため(ステップST13でNO)、ステップST11に戻り、再度書込処理を実行する。
【0067】
図9の4段目に示す2回目の書込処理後の値「00001101」は、
図9の最上段に示す書込データの値「00101000」と一致しないため、
図8に示す書込ベリファイ処理においてフェイル判定となる(ステップST12でフェイル)。さらに、値が「0」となるべき書換ビットの値が書込データにおける書換ビットの値「0」と一致しないため(ステップST13でNO)、ステップST11に戻り、再度書込処理を実行する。
【0068】
図9の最下段に示す3回目の書込処理後の値「00001000」は、
図9の最上段に示す書込データの値「00101000」と一致しないため、
図8に示す書込ベリファイ処理においてフェイル判定となる(ステップST12でフェイル)。他方、値が「0」となるべき書換ビットの値が書込データにおける書換ビットの値「0」と一致するため(ステップST13でYES)、エラー訂正可能か否かを判定する(ステップST14)。
ここで、エラービットは消去エラーの1ビットのみであるため、エラー訂正可能である(ステップST14でYES)。そのため、当該書込処理は最終的に正常であると判定される。
【0069】
ここで、
図2に示す第1の実施形態に係る消去処理及び消去ベリファイ処理において消去エラーを許容している。そのため、
図8に示す本実施形態に係る書込処理及び書込ベリファイ処理では、初期(消去状態)における消去エラーのみを許容し、書込処理における書換ビットのエラーを許容しない。
その他の構成は、第1の実施形態と同様であるため、説明を省略する。
【0070】
上述の例において、プログラムは、コンピュータに読み込まれた場合に、実施形態で説明された1又はそれ以上の機能をコンピュータに行わせるための命令群(又はソフトウェアコード)を含む。プログラムは、非一時的なコンピュータ可読媒体又は実体のある記憶媒体に格納されてもよい。限定ではなく例として、コンピュータ可読媒体又は実体のある記憶媒体は、RAM(Random-Access Memory)、ROM(Read-Only Memory)、フラッシュメモリ、SSD(Solid-State Drive)又はその他のメモリ技術、CD-ROM、DVD(Digital Versatile Disc)、Blu-ray(登録商標)ディスク又はその他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ又はその他の磁気ストレージデバイスを含む。プログラムは、一時的なコンピュータ可読媒体又は通信媒体上で送信されてもよい。限定ではなく例として、一時的なコンピュータ可読媒体又は通信媒体は、電気的、光学的、音響的、又はその他の形式の伝搬信号を含む。
【0071】
以上、本発明者によってなされた発明を実施形態に基づき具体的に説明したが、本発明は既に述べた実施形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【符号の説明】
【0072】
10 不揮発性メモリ
20 コントローラ
21 ECCエンコーダ
22 ECCデコーダ
30 CPU