JP2013125574A - 不揮発性半導体記憶装置、および不揮発性半導体記憶装置における動作条件制御方法 - Google Patents
不揮発性半導体記憶装置、および不揮発性半導体記憶装置における動作条件制御方法 Download PDFInfo
- Publication number
- JP2013125574A JP2013125574A JP2011275700A JP2011275700A JP2013125574A JP 2013125574 A JP2013125574 A JP 2013125574A JP 2011275700 A JP2011275700 A JP 2011275700A JP 2011275700 A JP2011275700 A JP 2011275700A JP 2013125574 A JP2013125574 A JP 2013125574A
- Authority
- JP
- Japan
- Prior art keywords
- time
- block
- flash memory
- program
- nonvolatile semiconductor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
- G11C16/3459—Circuits or methods to verify correct programming of nonvolatile memory cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital 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/5621—Digital 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/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/562—Multilevel memory programming aspects
- G11C2211/5621—Multilevel programming verification
Landscapes
- Read Only Memory (AREA)
Abstract
【課題】フラッシュメモリの個々のブロックごとにメモリセルの特性の劣化状態を検出でき、フラッシュメモリの動作条件を個々のブロックの劣化状態に応じて設定することができる、不揮発性半導体記憶装置を提供する。
【解決手段】フラッシュメモリ20内のブロックに対してプログラムを行う際に、プログラム開始からブロック内のプログラムすべきメモリセルのうちのN%(N=1〜100の任意の数)のメモリセルがプログラムベリファイをパスするまでの第1時間(N%のメモリセルのベリファイパス時間)を計測し、この第1時間が所定の判定基準値を下回った場合は、当該ブロックのブロックアドレスを記憶し、次に当該ブロックにアクセスする際には、フラッシュメモリ20の動作条件を所定の動作条件に変更する。
【選択図】図1
【解決手段】フラッシュメモリ20内のブロックに対してプログラムを行う際に、プログラム開始からブロック内のプログラムすべきメモリセルのうちのN%(N=1〜100の任意の数)のメモリセルがプログラムベリファイをパスするまでの第1時間(N%のメモリセルのベリファイパス時間)を計測し、この第1時間が所定の判定基準値を下回った場合は、当該ブロックのブロックアドレスを記憶し、次に当該ブロックにアクセスする際には、フラッシュメモリ20の動作条件を所定の動作条件に変更する。
【選択図】図1
Description
本発明は、フラッシュメモリを備える不揮発性半導体記憶装置、および不揮発性半導体記憶装置における動作条件制御方法に関する。
関連する不揮発性半導体記憶装置がある(特許文献1を参照)。この特許文献1に記載の不揮発性半導体記憶装置は、書き込みと消去動作の回数に応じた最適な消去が行え、消去回数の増加に伴って消去時間が長くなるのを抑制できる不揮発性半導体記憶装置を提供すること目的とする。
この特許文献1に記載の不揮発性半導体記憶装置においては、過去に行った消去動作の回数を消去回数記憶部に記憶し、この消去回数にしたがって読み出し時間設定回路で読み出し時間を制御することにより、この消去回数に基づいて読み出し時間を設定できるようにしている。
この特許文献1に記載の不揮発性半導体記憶装置においては、過去に行った消去動作の回数を消去回数記憶部に記憶し、この消去回数にしたがって読み出し時間設定回路で読み出し時間を制御することにより、この消去回数に基づいて読み出し時間を設定できるようにしている。
また、関連する不揮発性半導体記憶装置がある(特許文献2を参照)。この特許文献2に記載の不揮発性半導体記憶装置は、サブブロック毎のデータ消去回数を管理する機能を内蔵する不揮発性半導体記憶装置を提供することを目的とする。この不揮発性半導体記憶装置では、セルアレイの各サブブロックがそのサブブロックのデータ消去毎に更新されるデータ消去回数を記憶し、セルアレイの所定のブロックが記憶するデータ消去回数の許容最大値を参照して、各サブブロックごとにデータ消去回数を制限する。
また、関連する記憶媒体上のデータ管理のための方法がある(特許文献3を参照)。この特許文献3に記載のデータ管理のための方法では、第1のブロックが消去されるべき場合、第1のブロックの消耗レベルが消去を行うのに許容可能であるか判定される。許容可能であれば、第1のブロック上のデータは消去される。そうでなければ、第1のブロックよりも低い消耗レベルを有する第2のブロックが選択され、第2のブロックのデータが第1のブロックへコピーされる。各ブロックは消去された回数を監視する関連するカウンタを有する。過去において殆ど消去されていないブロックは未来において消去される可能性が低いため、第1のブロックはあまり頻繁に消去されず、従って寿命が延ばされる。第2のブロックは新しいデータを記憶するために使用されることができ、より頻繁に使用される。
また、関連する端末装置がある(特許文献4を参照)。この特許文献4に記載の端末装置は、NAND型フラッシュメモリ上の特定の領域に書換えが集中するのを防ぎ、NAND型フラッシュメモリ全体に書換え頻度を分散させることができ、また書換えが発生した際には、ブロックの書換え回数を極力減少させ、製品のデータ書換えに関する処理速度を向上できる端末装置を提供することを目的とする。
また、関連する不揮発性半導体記憶装置がある(特許文献5を参照)。この特許文献5に記載の不揮発性半導体記憶装置は、多値記憶の不揮発性半導体記憶装置において、不要なベリファイを削減し、トータルの書き込み時間の短縮を図ることを目的とする。
NAND型フラッシュメモリは、プログラムおよび消去動作等のサイクリング(Cycling)を重ねるとメモリセルの酸化膜が劣化し、酸化膜中にチャージトラップが発生し、プログラムしたセルの閾値Vtの分布が広がる傾向がある。例えば、図10は、SLC(Single Level Cell)の閾値Vtの分布を示す図であり、図10(A)は、サイクリング前における閾値Vtの分布を示し、図10(B)は、サイクリング後における閾値Vtの分布を示している。この図において、Vpgmvは、プログラムベリファイ時のワード線に印加される電圧を示し、Vreadは、リード時の非選択ワード線の電圧を示す。この図に示すように、サイクリングを繰り返すことにより、サイクリング後の閾値Vtの分布範囲が、サイクリング前と比較して広がることが分かる。
このプログラムしたセルの閾値Vtの分布が広がると、次のような問題が起こる可能性がある。例えば、NAND型フラッシュメモリがSLCの場合に、オーバプログラミング(Over Programming)によるカラムリード(Column Read)不良が発生する可能性があり、MLC(Multiple Level Cell)の場合は、複数の閾値Vtの各々が隣接ステート(State)と重なることによるリード不良が発生することがある。これらはNAND型フラッシュメモリの信頼性の面で重大な問題となる。
従来、このような問題を回避するため、例えば、ECC(Error Checking and Correction:エラー検出訂正)機能の拡充、各ブロックのサイクリング回数(プログラム及び消去動作等の実施回数)を可能な限り平均化するためのシステムによる対処(Ware Leveling)、または、NAND型フラッシュメモリ全体の平均サイクリング回数を管理し、この平均サイクリング回数に応じてNAND型フラッシュメモリの動作条件を変更する方法が行われている。
しかしながら、ECCを拡充する場合は、ECCの情報を記憶するためのメモリ領域が必要となり、NAND型フラッシュメモリのチップ面積の増加を招く。また、データの読み書きにおいてECCを算出する処理が必要となるため、システム側にも負担がかかる。また、各ブロックのサイクリング回数を平均化する場合は、システム側に多数のレジスタ(サイクリング回数をブロックごとに保持するレジスタ)が必要になり、これもまた負担となる。また、サイクリング回数によりNAND型フラッシュメモリの動作条件を変更する場合は、NAND型フラッシュメモリ全体のサイクリング回数により動作条件が管理されるため、サイクリング回数が実際には少ないブロックに対しても新たな動作条件が適用されることになり、NAND型フラッシュメモリのパフォーマンスの低下につながるという欠点がある。
本発明は、斯かる実情に鑑みなされたものであり、本発明の目的は、フラッシュメモリの個々のブロックごとにメモリセルの特性の劣化状態により、フラッシュメモリの動作条件を個々のブロックの劣化状態に応じて設定することができる、不揮発性半導体記憶装置、および不揮発性半導体記憶装置における動作条件制御方法を提供することにある。
本発明は、上記課題を解決するためになされたものであり、本発明の不揮発性半導体記憶装置は、フラッシュメモリ内のブロックに対してプログラムを行う際に、前記ブロック内のプログラムすべきメモリセルのうちの所定の割り合いのメモリセルのプログラムが完了するまでの第1時間を計測する機能と、前記第1時間と所定の判定基準値である第2時間とを比較する機能と、前記ブロックにおいて前記第1時間が前記第2時間を下回った場合は、当該ブロックに次回からアクセスする際には、前記フラッシュメモリの動作条件を所定の動作条件に変更してアクセスする機能と、を備えることを特徴とする。
本発明の不揮発性半導体記憶装置においては、フラッシュメモリ内のブロックに対してプログラムを行う際に、ブロック内のプログラムされるべきメモリセルのうちの所定の割り合いのメモリセルのプログラムが完了する時間を判定(計測)し、この時間が判定基準値を下回った場合は、次にそのブロックにアクセスする際に、フラッシュメモリの動作条件を所定の動作条件に変更する。
これにより、本発明の不揮発性半導体記憶装置においては、フラッシュメモリの個々のブロックごとにメモリセルの特性の劣化状態を検出でき、フラッシュメモリの動作条件を個々のブロックの劣化状態に応じて設定することができる。このため、フラッシュメモリの信頼性の向上を図ることができる。
これにより、本発明の不揮発性半導体記憶装置においては、フラッシュメモリの個々のブロックごとにメモリセルの特性の劣化状態を検出でき、フラッシュメモリの動作条件を個々のブロックの劣化状態に応じて設定することができる。このため、フラッシュメモリの信頼性の向上を図ることができる。
[第1の実施形態]
以下、本発明の実施の形態を添付図面を参照して説明する。
[概要]
本実施形態の不揮発性半導体記憶装置においては、サイクリング回数ではなく、個々のブロック(メモリセルアレイに対してアクセス(例えば、プログラム等)する際の単位となるブロック)のプログラム時間をモニタし、プログラム時間が判定基準値を下回ったときのブロックアドレスを記憶し、そのブロックに次にアクセスする際に、NAND型フラッシュメモリの動作条件を変更する。
以下、本発明の実施の形態を添付図面を参照して説明する。
[概要]
本実施形態の不揮発性半導体記憶装置においては、サイクリング回数ではなく、個々のブロック(メモリセルアレイに対してアクセス(例えば、プログラム等)する際の単位となるブロック)のプログラム時間をモニタし、プログラム時間が判定基準値を下回ったときのブロックアドレスを記憶し、そのブロックに次にアクセスする際に、NAND型フラッシュメモリの動作条件を変更する。
すなわち、NAND型フラッシュメモリは、サイクリングを重ねることでメモリセルの酸化膜が劣化することにより、チャージトラップが発生し、このチャージトラップに電子が捕獲されることで、メモリセルのプログラム時間は早くなっていく(プログラムしやすくなる)。しかし、NAND型フラッシュメモリでは複数ビットのセルを同時にプログラムするため、その中には必ずプログラム速度が遅い(時間が長い)ビット(slow program bit)が存在する。このためプログラム時間の変化は、プログラム速度の遅いビットによって判定されるため、個々のビットの傾向を知ることができない。
そこで、速度が遅い(プログラム時間が長い)ビットにより全体のプログラム時間の変化がわからなくなるのを防ぐため、NAND型フラッシュメモリには、プログラムフェイルビット数をカウントし、プログラムビット総数に対してN%(N=1〜100の任意の数)のメモリセルがプログラムされたときに外部にフラグを出力する機能を設ける。また、NAND型フラッシュメモリに、外部からの要求に応じて動作条件を変更することができる機能を設ける。
そして、NAND型フラッシュメモリを使用する不揮発性半導体記憶装置は、フラッシュメモリのN%(N=1〜100の任意の数)のメモリセルがプログラムベリファイをパスしたときに出力されるフラグF_Majority(N%パス情報)をモニタし、N%パス時間tPROG_Majority(プログラム開始からフラグF_Majorityが出力されるまでの時間)を判定(計測)する。このとき、不揮発性半導体記憶装置は、N%パス時間tPROG_Majority(単に「時間tPROG_Majority」とも呼ぶ)の判定基準値(例えば、150μs)と時間tPROG_Majorityとを比較し、時間tPROG_Majorityが判定基準値を下回った回数に応じて、次にNAND型フラッシュメモリに適用されるべき動作条件を変更して設定する。
そして、不揮発性半導体記憶装置では、時間tPROG_Majorityが判定基準値を下回った回数に応じて、次回よりそのブロックアドレスにアクセスするときには新しい動作条件を適用するようにNAND型フラッシュメモリに要求する。上記動作条件とは、例えばプログラム/プログラムベリファイ/リード/イレース(Progaram/Progarm Verify/Read/Erase)の際の動作条件である。
[不揮発性半導体記憶装置の構成]
図1は、本発明の第1の実施形態に係わる不揮発性半導体記憶装置の構成を示す図である。図1に示す不揮発性半導体記憶装置1は、NAND型フラッシュメモリ(本明明細書では、単に「フラッシュメモリ」とも呼ぶ)20を有する不揮発性半導体記憶装置であり、本発明に直接関係する部分のみを示したものである。この図1に示すように、本実施形態の不揮発性半導体記憶装置1は、メモリセルがアレイ状に配列されたNAND型フラッシュメモリ20と、このフラッシュメモリ20を制御するコントローラ10と、を有して構成される。また、NAND型フラッシュメモリ20は、メモリセルがアレイ状に配列されたメモリセルアレイ21を有している。
図1は、本発明の第1の実施形態に係わる不揮発性半導体記憶装置の構成を示す図である。図1に示す不揮発性半導体記憶装置1は、NAND型フラッシュメモリ(本明明細書では、単に「フラッシュメモリ」とも呼ぶ)20を有する不揮発性半導体記憶装置であり、本発明に直接関係する部分のみを示したものである。この図1に示すように、本実施形態の不揮発性半導体記憶装置1は、メモリセルがアレイ状に配列されたNAND型フラッシュメモリ20と、このフラッシュメモリ20を制御するコントローラ10と、を有して構成される。また、NAND型フラッシュメモリ20は、メモリセルがアレイ状に配列されたメモリセルアレイ21を有している。
コントローラ10は、NAND型フラッシュメモリ20内のブロック(フラッシュメモリ20内のメモリセルアレイ21へアクセスする際の単位となるブロック)に対して、プログラムの実行指令等のコマンドを発行するとともに、フラッシュメモリ20における動作条件を設定するためのコマンド(動作条件変更設定コマンドCMD)を発行する。NAND型フラッシュメモリ20は、コントローラ10から入力したコマンドCMDに含まれる動作条件の変更設定情報に従い、例えば、プログラム電圧や、リード電圧等の動作条件を設定する。また、NAND型フラッシュメモリ20は、後述するフラグF_Majority(N%パス情報)の信号をコントローラ10に出力する。
コントローラ10は、フラッシュメモリ20から入力したフラグF_Majorityを基に、N%パス時間判定部(tPROG_Majority判定部)13により、プログラム対象となるブロックにおけるプログラム開始からフラグF_Majorityが出力されるまでの時間tPROG_Majorityを計測する、また、N%パス時間判定部13は、時間tPROG_Majorityが所定の判定基準値(例えば、150μs)を下回ったか否かを判定する。
ブロックアドレス記憶部12は、N%パス時間判定部13により、プログラム対象となるブロックにおける時間tPROG_Majorityが所定の判定基準値(例えば、150μs)を下回った判定された場合に、当該ブロックのアドレスと、当該ブロックおいて時間tPROG_Majorityが判定基準値を下回った回数(補正回数)を記憶する。
上記構成の不揮発性半導体記憶装置1において、NAND型フラッシュメモリ20内のブロックにアクセスする場合、コントローラ10は、最初に、ブロックアドレス記憶部12と、条件テーブル11とを参照する。なお、条件テーブル11には、後述するように、時間tPROG_Majorityの判定基準値と、時間tPROG_Majorityが判定基準値を下回った回数(補正回数)と、この下回った回数に対応して次回からの動作でそのブロックに適用されるべきフラッシュメモリ20の動作条件と、が対応付けられて記憶されている(図6を参照)。
そして、コントローラ10は、アクセスしようとするブロックのブロックアドレスがブロックアドレス記憶部12に記憶されている場合は、その回数(補正回数)およびそれに対応する動作条件を条件テーブル11から読み出す。コントローラ10は、この条件テーブル11から読み出した動作条件をNAND型フラッシュメモリ20に対して設定し、その後に、所望の動作(リード/プログラム/イレース)を行う。
そして、コントローラ10は、アクセスしようとするブロックのブロックアドレスがブロックアドレス記憶部12に記憶されている場合は、その回数(補正回数)およびそれに対応する動作条件を条件テーブル11から読み出す。コントローラ10は、この条件テーブル11から読み出した動作条件をNAND型フラッシュメモリ20に対して設定し、その後に、所望の動作(リード/プログラム/イレース)を行う。
NAND型フラッシュメモリ20は、コントローラ10から要求された動作条件変更設定指令(動作条件変更設定コマンドCMD)に応じて動作条件を変更できる機能を備える。動作条件の変更例としては、例えば、フラッシュメモリ20は、プログラムストレス(Program stress)の開始電圧(Vipgm)を変更する(下げる)。また、例えば、フラッシュメモリ20は、メモリセルのゲート電圧を一定電圧Vstep上昇させながらプログラムミングを行う増加型パルスプログラム(Incremental Step Pulse−Program:ISPP)サイクルにおける電圧ステップ幅(Vstep)を変更する(小さくする)。これにより、フラッシュメモリ20において、プログラム速度を抑え、過書き込み(オーバプログラミング)を防止する。
或いは、フラッシュメモリ20は、リード時の非選択ワード線の電圧(Vread)を変更する(高くする)。これにより、フラッシュメモリ20は、メモリセルに対して多少過書き込みが発生しても、メモリセルからデータを読み出す際に、データを正常に読み出せるようにマージン(余裕度)を持つことができる。或いは、フラッシュメモリ20は、プログラムベリファイ時の選択ワード線の電圧(Vsel)を変更する(高くする)。メモリセルはサイクリングを重ねるとプログラムしやすくなるが同時に電荷保持特性も劣化するので、これに対して、フラッシュメモリ20は、プログラムベリファイ時の選択ワード線の電圧(Vsel)を変更(高くする)することにより、データを正常に読み出せるようにマージンを持つことができる。
図2は、NAND型フラッシュメモリ20の構成を示す図であり、本発明に関係する部分を示したものである。この図2に示すように、NAND型フラッシュメモリ20は、メモリセルアレイ21と、ページバッファデコーダ22Aを備えるページバッファ22と、ロウデコーダ23とを有する。また、NAND型フラッシュメモリ20は、このNAND型フラッシュメモリ20の全体の動作を統括して制御するメモリ制御回路31と、動作条件変更設定部32と、出力データバッファ33と、入力データバッファ34と、プログラムビットカウンタ35と、プログラムビット比計算部36と、フェイルビットカウンタ37と、動作電圧コントローラ38と、を有している。
上記構成のNAND型フラッシュメモリ20において、メモリセルアレイ21は、図3に示すブロックを複数ブロック備えている。各ブロックは、図3に示すように、N+1本のビット線BL0〜BLN(ビット線BLで総称)と、n+1本のワード線WL0〜WLn(ワード線WLで総称)と、共通ソース線CSLと、各ビット線BLと共通ソース線CSLとの間にそれぞれ接続されたN+1個のメモリストリングST0〜STN(メモリストリングSTで総称)と、を備える。各メモリストリングSTは、互いに直列接続されたn+1個のフローティングゲート構造の電気的書き換え可能な不揮発性のメモリセルMC0〜MCnを備え、ドレイン側のメモリセルMCnは選択ゲートトランジスタSS1を介して対応するビット線BLに接続され、ソース側のメモリセルMC0は選択ゲートトランジスタGS1を介して共通ソース線CSLに接続される。また、同一行のメモリセルの制御ゲートは、共通のワード線WLに接続されている。
図3に示すブロックにおいて、メモリセルの消去は、例えば、半導体基板に高電圧を印加し、ワード線WL0〜WLnに0Vを印加することにより行われる。これにより、例えばポリシリコンなどからなる電荷蓄積層であるフローティングゲートより電子を引き抜いて、メモリセルMCの閾値電圧を消去閾値電圧VtL(例えば、−1V)に設定する。一方、書き込み(プログラム)においては、例えば、ソース及びドレインに0Vを与え、制御ゲート(選択したワード線WL)に高電圧を印加することにより、フローティングゲートに電子を注入し、閾値電圧を上昇させて書込閾値電圧VtHに設定する。そして、メモリセルMC0〜MCnの閾値電圧が閾値電圧VtLの場合、当該メモリセルのデータ値を“1”とし、閾値電圧が閾値電圧VtHの場合、当該メモリセルのデータ値を“0”とする。
また、メモリセルからデータを読み出すときには、全てのビット線BLを所定の電圧でプリチャージした後に、閾値VtLとVtH間の読み出し電圧を、読み出し対象のメモリセルMCに共通に接続されたワード線WLを介して、選択メモリセルの各制御ゲートに印加する。また、高電圧を、上記選択メモリセル以外のメモリセルMCおよび選択トランジスタSS1,GS1の各制御ゲートに印加して、上記選択メモリセル以外のメモリセルMCならびに選択ゲートトランジスタSS1,GS1を導通させる。従って、選択メモリセルのデータ値が“1”のときには、当該選択メモリセルにセル電流が流れる一方、選択メモリセルのデータ値が“0”のときには、当該選択メモリセルにセル電流が流れないので、セル電流が流れるか否かに基づいて、各選択メモリセルに書き込まれているデータを読み出すことができる。
また、図2に示すNAND型フラッシュメモリ20において、動作条件変更設定部32は、コントローラ10から入力したコマンド(動作条件変更設定コマンド)CMDが指示する動作条件に従い、NAND型フラッシュメモリ20における動作条件を設定する。また、出力データバッファ33は、メモリセルアレイ21から読み出したデータの外部出力用のバッファ回路であり、外部装置との接続線となるデータ入出線(I/Os)にデータを出力する。入力データバッファ34は、同じくデータ入出線(I/Os)に接続され、外部装置からのデータの入力、アドレス信号の入力、及び動作制御のコマンド等の入力に使用されるバッファ回路である。プログラムビットカウンタ35は、プログラム対象となるブロックにおけるプログラムすべきメモリセルのビット数(書き込むべきビット総数)を検出し、このプログラムビット数の情報をプログラムビット比計算部36に出力する。
フェイルビットカウンタ37は、ベリファイ読み出し時において、フェイルセルと判定されたメモリセルのビット数(「フェイルセル数」とも呼ぶ)をカウントし、このフェイルセル数の情報をプログラムビット比計算部36に出力する。
プログラムビット比計算部36は、プログラムビットカウンタ35から入力したプログラムビット数Pbの情報と、フェイルビットカウンタ37から入力したフェイルセル数Fbの情報と、を基に、以下の式によりプログラムビット比(%)を算出する。なお、パスビット比は、プログラムするブロックおいて、プログラムに成功(プログラムベリファイをパス)したメモリセルの割合を示す数値である。また、プログラムビット比(%)をN%レシオと呼ぶことがある。
プログラムビット比計算部36は、プログラムビットカウンタ35から入力したプログラムビット数Pbの情報と、フェイルビットカウンタ37から入力したフェイルセル数Fbの情報と、を基に、以下の式によりプログラムビット比(%)を算出する。なお、パスビット比は、プログラムするブロックおいて、プログラムに成功(プログラムベリファイをパス)したメモリセルの割合を示す数値である。また、プログラムビット比(%)をN%レシオと呼ぶことがある。
プログラムビット比(N%レシオ)=(Pb−Fb)×100/Pb
そして、プログラムビット比計算部36は、プログラムビット比(プログラムベリファイをパスしたメモリセルの割合)が、所定の割合(例えば、70%)を超えたときにフラグF_Majorityをコントローラ10に向けて出力する。
動作電圧コントローラ38は、データ書き換え(プログラム)、消去(イレース)、読み出し(リード)等の動作時に用いる昇圧された高電圧や中間電圧を発生する。この動作電圧コントローラ38で生成された電圧信号は、信号Vread、Vpgm、Vers等としてロウデコーダ23とページバッファ22に出力される。この動作電圧コントローラ38における電圧信号の発生動作は、メモリセルMCからのデータの読み出し(リード)、書き換え(プログラム)及び消去(イレース)動作等に応じて、メモリ制御回路31および動作条件変更設定部32から出力される制御指令に基づいて行われる。
[本実施形態の不揮発性半導体記憶装置1の動作説明]
上述したように、NAND型フラッシュメモリ20は、サイクリングを重ねることでメモリセルの酸化膜にチャージトラップが発生し、メモリセルのプログラム時間は早くなっていく(プログラムしやすくなる)。しかし、NAND型フラッシュメモリ20では複数ビットのセルを同時にプログラムするため、その中には必ずプログラム速度が遅い(時間が長い)ビットが存在し、合計したプログラム時間(tPROG)としては現れにくい。
上述したように、NAND型フラッシュメモリ20は、サイクリングを重ねることでメモリセルの酸化膜にチャージトラップが発生し、メモリセルのプログラム時間は早くなっていく(プログラムしやすくなる)。しかし、NAND型フラッシュメモリ20では複数ビットのセルを同時にプログラムするため、その中には必ずプログラム速度が遅い(時間が長い)ビットが存在し、合計したプログラム時間(tPROG)としては現れにくい。
そこで、速度が遅い(時間が長い)ビットにより大方のセル(Majority)のプログラム時間がわからなくなるのを防ぐため、プログラム対象となるブロックにおいてプログラムフェイルビット数をカウントし、プログラムビット総数に対してN%(N=1〜100の任意の数)のメモリセルがプログラムされたときに外部にフラグF_Majorityを出力する機能を設ける。また、NAND型フラッシュメモリ20に、外部からの要求に応じて動作条件を変更することのできる機能を設ける。
そして、不揮発性半導体記憶装置1は、プログラム対象となるブロックのN%(N=1〜100の任意の数)のメモリセルがプログラムベリファイをパスしたときに出力されるグラグF_Majorityをモニタして時間tPROG_Majority_Majority(プログラム開始からフラグF_Majorityが出力されるまでの時間)を判定する。
そして、不揮発性半導体記憶装置1は、プログラム対象となるブロックにおけるN%パス時間tPROG_Majorityが判定基準値(例えば、150μs)を下回ったとき、そのブロックアドレスと、当該ブロックおいて時間tPROG_Majorityが判定基準値を下回った回数(補正回数)とをブロックアドレス記憶部12に記憶する。そして、次回よりそのブロックアドレスにアクセスするときには、補正回数を基に条件テーブル11を参照し、新しい動作条件を適用することをNAND型フラッシュメモリ20に要求する。
図4は、サイクリング回数に対するプログラム時間tPROGとN%パス時間tPROG_Majorityとイレース時間tERSの変化特性を示す図である。この図4では、横軸にサイクリング回数(logスケール)を示し、縦軸に時間を示している。なお、縦軸に示す時間は、tPROGとtPROG_MajorityとtERSのそれぞれの特性曲線に応じたA.U.(任意単位)である。
この図4に示すように、サイクリング回数0からN1の間では、プログラム時間tPROGと時間tPROG_Majorityとイレース時間tERSのそれぞれが、ほぼ一定で推移する。そして、サイクリング回数N1以降、フラッシュメモリ20では、サイクリングを重ねることでメモリセルの酸化膜にチャージトラップが発生し、メモリセルのプログラム時間tPROGは短くなっていく(プログラムしやすくなる)。また、逆にイレース時間tERSは長くなっていく。また、プログラム開始からフラグF_Majorityが出力される時間(tPROG_Majority)も短くなって行く。
そして、時間tPROG_Majorityが短くなり、判定基準値(時間Rtime)を下回ったとき(サイクリング回数N2のとき)に、コントローラ10は、フラッシュメモリ20にコマンドCMDを発行し、フラッシュメモリ20における動作条件(動作条件の詳細な内容については後述する)を変更する。そして、フラッシュメモリ20の動作条件を変更することにより、時間tPROG_Majorityは、一旦、元の時間(サイクリング回数N1以下のtPROG_Majorityの時間)まで復帰する。
図5は、フラッシュメモリにおける動作条件の変更とtPROG_Majorityの変化を示す図である。この図5では、図4と同様に、横軸にサイクリング回数(logスケール)、縦軸に時間(A.U.)を示している。
この図5に示すように、サイクリング回数0からN1の間では、プログラム時間tPROGとN%パス時間tPROG_Majorityとイレース時間tERSのそれぞれが、ほぼ一定で推移する。そして、サイクリング回数N1以降、フラッシュメモリ20は、サイクリングを重ねることでメモリセルの酸化膜にチャージトラップが発生し、時間tPROG_Majorityは短くなっていく。また、逆にイレース時間tERSは長くなっていく。
この図5に示すように、サイクリング回数0からN1の間では、プログラム時間tPROGとN%パス時間tPROG_Majorityとイレース時間tERSのそれぞれが、ほぼ一定で推移する。そして、サイクリング回数N1以降、フラッシュメモリ20は、サイクリングを重ねることでメモリセルの酸化膜にチャージトラップが発生し、時間tPROG_Majorityは短くなっていく。また、逆にイレース時間tERSは長くなっていく。
そして、サイクリング回数N2において、時間tPROG_Majorityが短くなり、判定基準値(時間Rtime)を下回ったときに、コントローラ10は、フラッシュメモリ20にコマンドCMDを発行し、フラッシュメモリ20における動作条件を変更する。そして、フラッシュメモリ20における動作条件を変更することにより、tPROG_Majorityの時間は、一旦、元の時間(サイクリング回数N1以下のtPROG_Majorityの時間)まで復帰する。サイクリング回数N2において、動作条件を変更することにより、時間tPROG_Majorityが元に復帰するが、その後、さらにサイクリング回数を重ねることにより、フラグF_Majorityが出力される時間(tPROG_Majority)が次第に短くなっていく。
そして、サイクリング回数N3において、時間tPROG_Majorityが短くなり、判定基準値(時間Rtime)を下回ったときに、コントローラ10は、フラッシュメモリ20にコマンドCMDを発行し、フラッシュメモリ20における動作条件を変更する。そして、フラッシュメモリ20における動作条件を変更することにより、時間tPROG_Majority間は、再び、元の時間に復帰する。このように、コントローラ10は、NAND型フラッシュメモリ20から出力されるフラグF_Majorityの信号をモニタして時間tPROG_Majorityを判定(計測)し、このtPROG_Majorityが所定の判定基準値を下回るごとに、NAND型フラッシュメモリ20における動作条件を変更する。
上記フラッシュメモリ20おける動作条件を変更するために、コントローラ10内の条件テーブル11には、時間tPROG_Majorityの判定基準値と、tPROG_Majorityを下回った回数と、この下回った回数に対応して次回からの動作でそのブロックに適用されるべき動作条件と、が対応付けられて記憶されている。
図6は、条件テーブルの一例を示す図である。この図6に示す表においては、上から順番に、補正回数(何回目の補正であるかを示す数)と、この補正回数に対応するNAND型フラッシュメモリ20の動作条件(リード時、プログラム時、ベリファイプログラム時、およびイレース時における動作条件)とを示している。なお、この表において、リード時の電圧Vreadは、リード時の非選択ワード線の初期電圧を示し、プログラム時の電圧Vipgmは、プログラム時の初期電圧を示している。また、プログラムベリファイ時の電圧Vpassは、プログラムベリファイ時の非選択ワード線の初期電圧を示し、電圧Vselは、選択ワード線の初期電圧を示している。また、イレース時の電圧Versは、メモリセルのイレース時の消去電圧(初期電圧)を示している。また、時間tPROG_Majorityの判定基準時間(Rtime)として、150μs(μsec)が設定されている。
この図6に示すように、N%パス時間tPROG_Majority(より正確には、プログラム開始からフラグF_Majorityが出力されるまでの時間)が判定基準時間150μsよりも最初に短くなった時(図5に示すサイクリング回数N2のとき)に、1回目の動作条件の補正が行われる。この補正1回目では、リード時の非選択ワード線の電圧Vreadを初期電圧Vreadから0.1V増加させてVread1とする(Vread1=Vread+0.1V)。これは、フラッシュメモリの酸化膜が劣化することにより、プログラム速度が速くなり(プログラム電圧が低下し)、メモリセルがオーバプログラミング(閾値Vtが上昇)されている可能性があるため、非選択ワード線の電圧Vreadを上昇させて対応するものである。
また、この補正1回目では、プログラム時の初期電圧Vipgmを初期電圧Vipgmから1.0V減少させてVipgm1(Vipgm1=Vipgm−1.0V)とする。これは、フラッシュメモリの酸化膜が劣化することにより、プログラム速度が速くなり、メモリセルがオーバプログラミングされることを防ぐために、プログラム電圧Vipgmを低下させて対応するものである。
また、補正1回目では、増加型パルスプログラム(ISPP)サイクルにおけるステップ電圧Vstep1を、初期電圧Vstepのままとする(Vstep1=Vstep)。なお、増加型パルスプログラム(ISPP)は、メモリセルのゲートに印加する電圧をステップ状に増加させて書き込みを行う方式であり、NAND型フラッシュメモリ20において、プログラム電圧をループ毎に一定値ずつ増加させて、所望のメモリセルへのデータの書き込みを行うものである。
また、補正1回目では、プログラムベリァイ時の非選択ワード線の電圧Vpassを、初期電圧Vpassから0.1V増加させてVpass1(Vpass1=Vpass+0.1V)とする。これは、フラッシュメモリの酸化膜が劣化することにより、閾値Vtが低下することがあるため、逆に、ベリファイ時における非選択ワード線の電圧Vpassを上昇させて対応するものである。また、プログラムベリァイ時の電圧Vselを、初期電圧Vselから0.1V増加させてVsel1(Vsel1=Vsel+0.1V)とし、イレース時の電圧Vers1は初期電圧Versのままとする(Vers1=Vers)。なお、この例では、イレース時の電圧Vers1を初期電圧Versのままにしているが、メモリセルがオーバプログラミングされている可能性を考慮して増加させるようにしてもよい。
次に、時間tPROG_Majorityが基準時間150μsよりも2回目に短くなった時(図5に示すサイクリング回数N3のとき)に、2回目の動作条件の補正が行われる。この補正2回目では、リード時の非選択ワード線の電圧Vreadを、初期電圧Vreadから0.2V増加させてVread2とする(Vread2=Vread+0.2V)。また、プログラム電圧Vipgmを、初期電圧Vipgmから−1.5V減少させてVipgm2(Vipgm2=Vipgm−1.5V)とする。また、ISPPサイクルにおけるステップ電圧Vstepを、初期電圧Vstepから0.1V減少させてVstep2(Vstep2=Vstep−0.1V)とする。
また、補正2回目では、プログラムベリァイ時の非選択ワード線の電圧Vpassを、初期電圧Vpassから0.2V増加させてVpass2(Vpass2=Vpass+0.2V)とする。また、プログラムベリァイ時の電圧Vselを、初期電圧Vselから0.1V増加させてVsel2(Vsel2=Vsel+0.1V)とする。なお、イレース時の電圧Vers2は初期電圧Versのままとする(Vers2=Vers)。
同様にして、コントローラ10では、時間tPROG_Majorityが判定基準値を下回ったことを検出するごとに、3回目、4回目、・・・・、と順番に補正を繰り返す。
上述のように、本実施形態のNAND型フラッシュメモリ20を使用する不揮発性半導体記憶装置1は、フラッシュメモリ20からフラグF_Majorityが出力される時間(tPROG_Majority)をモニタし、時間tPROG_Majorityが判定基準値を下回った場合、コントローラ10では、そのブロックアドレスと、当該ブロックにおいてtPROG_Majorityが判定基準値を下回った回数(補正回数)とをブロックアドレス記憶部12に記憶する(初回目ならば1、2回目ならば2、3回目ならば3、・・・・)。
そして、コントローラ10は、ブロックアドレス記憶部12にブロックアドレスが記憶されているブロックにアクセスしようとする場合は、ブロックアドレス記憶部12に記憶されている当該ブロックの補正回数を基に条件テーブル11を参照し、この補正回数に対応する動作条件を読み出し、その読み出した動作条件をまずNAND型フラッシュメモリ20に対して設定し、その後に、所望の動作(リード/プログラム/イレース)を行う。
なお、図6に示す条件テーブルにおける設定値は、例えば、実験データにより決定することができる。また、図6に示す条件テーブルは、一例を示すものであって、不揮発性半導体記憶装置の種類や構成に応じて、その設定条件は、変更される得るものである。
また、あるブロックにおける補正回数が増大(特性劣化が進行)した場合は、当該ブロックを使用しないようにすることができる。これにより、フラッシュメモリ20の寿命を延ばすとともに、フラッシュメモリ20における信頼性の向上を図ることができる。
また、あるブロックにおける補正回数が増大(特性劣化が進行)した場合は、当該ブロックを使用しないようにすることができる。これにより、フラッシュメモリ20の寿命を延ばすとともに、フラッシュメモリ20における信頼性の向上を図ることができる。
また、図7は、上述した不揮発性半導体記憶装置1における概略の動作の流れをフローチャートで示したものである。図7(A)は、フラッシュメモリ20におけるプログラム動作時の処理の流れを示し、図7(B)は、プログラム動作時におけるコントローラ10の処理の流れを示している。
最初に、図7(A)に示すフローチャートを参照して、フラッシュメモリ20における動作の流れについて説明する。
最初に、フラッシュメモリ20においては、動作条件が初期状態に設定されているものとする(ステップS101)。そして、フラッシュメモリ20は、コントローラ10から、メモリセルアレイ21内のあるブロックへのプログラム実行指令を受信した場合に(ステップS102)、このプログラム実行指令とともに動作条件変更設定コマンドCMDを受信したか否かを判定する(ステップS103)。
フラッシュメモリ20は、ステップS103において動作条件変更設定コマンドCMDを受信しなかったと判定した場合(ステップS103:No)は、ステップS105に移行し、メモリセルアレイ21に対する動作条件を変更することなく、プログラム対象となるブロックに対してプログラムを実行する(ステップS105)。
最初に、フラッシュメモリ20においては、動作条件が初期状態に設定されているものとする(ステップS101)。そして、フラッシュメモリ20は、コントローラ10から、メモリセルアレイ21内のあるブロックへのプログラム実行指令を受信した場合に(ステップS102)、このプログラム実行指令とともに動作条件変更設定コマンドCMDを受信したか否かを判定する(ステップS103)。
フラッシュメモリ20は、ステップS103において動作条件変更設定コマンドCMDを受信しなかったと判定した場合(ステップS103:No)は、ステップS105に移行し、メモリセルアレイ21に対する動作条件を変更することなく、プログラム対象となるブロックに対してプログラムを実行する(ステップS105)。
一方、フラッシュメモリ20は、ステップS103において動作条件変更設定コマンドCMDを受信したと判定した場合(ステップS103:Yes)に、動作条件変更設定コマンドCMDに含まれる動作条件のデータを基に、動作条件変更設定部32によりメモリセルアレイ21に対する動作条件を変更する(ステップS104)。その後、メモリセルアレイ21は、ステップS105に移行し、メモリセルアレイ21に対する動作条件を変更した状態において、当該ブロックに対してプログラムを実行する(ステップS105)。
続いて、フラッシュメモリ20では、ISPPの各サイクルのプログラムベリファイの際に、フェイルビットカウンタ37およびプログラムビット比計算部36によりN%レシオ(プログラムビット比)を演算(算出)し(ステップS106)、このN%レシオが所定の比率(Rn%:例えば、70%)を超えたか否かを判定する(ステップS107)。フラッシュメモリ20は、N%レシオが所定の比率(Rn%)を超えていないステップS107で判定された場合(ステップS107:No)に、ステップS109に移行し、対象となるブロックへのプログラムが完了したか否かを判定する(ステップS109)。
一方、フラッシュメモリ20は、ステップS107においてN%レシオが所定の比率(Rn%)を超えたと判定された場合(ステップS107:Yes)に、すでにフラグF_Majorityをコントローラ10に送信済みか否かを判定する(ステップS108)。そして、フラッシュメモリ20は、ステップS108においてフラグF_Majorityを送信済みと判定された場合(ステップS108:Yes)に、ステップS110に移行して、プログラムが完了したか否かを判定する。また、フラッシュメモリ20は、ステップS108においてフラグF_Majorityを送信済みでないと判定された場合(ステップS108:No)に、コントローラ10に対して、フラグF_Majorityを送信し(ステップS109)、その後、ステップS110に移行する。
ステップS110ではプログラム対象となるブロックへのプログラムが完了したか否かが判定され、フラッシュメモリ20は、ステップS110においてブロックへのプログラムが完了したと判定された場合(ステップS110:Yes)に、ステップS111に移行してプログラム動作を終了する。一方、フラッシュメモリ20は、ステップS110においてブロックへのプログラムが完了していないと判定された場合(ステップS110:No)に、ステップS105に移行しプログラム動作を継続する。
次に、図7(B)を参照して、プログラム動作時におけるコントローラ10の処理の流れについて説明する。
図7(B)に示すフローチャートを参照して、フラッシュメモリ20内のプログラム対象となるブロックへのプログラムが開始されると(ステップS201)、コントローラ10では、条件テーブル11と、ブロックアドレス記憶部12とを参照し(ステップS202)、当該ブロックに対するフラッシュメモリ20の動作条件を変更するか否かを判定する(ステップS203)。このステップS203の判定において、コントローラ10は、プログラム対象となるブロックのブロックアドレスがブロックアドレス記憶部12に記憶されている場合に、このブロックに対してフラッシュメモリ20の動作条件を変更すると判定するとともに、このブロックにおける補正回数を読み出し、この補正回数に応じた動作条件を条件テーブル11から抽出する。
図7(B)に示すフローチャートを参照して、フラッシュメモリ20内のプログラム対象となるブロックへのプログラムが開始されると(ステップS201)、コントローラ10では、条件テーブル11と、ブロックアドレス記憶部12とを参照し(ステップS202)、当該ブロックに対するフラッシュメモリ20の動作条件を変更するか否かを判定する(ステップS203)。このステップS203の判定において、コントローラ10は、プログラム対象となるブロックのブロックアドレスがブロックアドレス記憶部12に記憶されている場合に、このブロックに対してフラッシュメモリ20の動作条件を変更すると判定するとともに、このブロックにおける補正回数を読み出し、この補正回数に応じた動作条件を条件テーブル11から抽出する。
そして、コントローラ10は、ステップS203においてフラッシュメモリ20の動作条件を変更すると判定された場合(ステップS203:Yes)に、フラッシュメモリ20に対して、プログラム実行指令を送信するとともに(ステップS204)、動作条件変更設定コマンドCMDを送信する(ステップS205)。
一方、コントローラ10は、ステップS203においてフラッシュメモリ20の動作条件を変更しないとステップS203で判定された場合(ステップS203:No)に、フラッシュメモリ20に対して、プログラム実行指令のみを送信する(ステップS206)。
一方、コントローラ10は、ステップS203においてフラッシュメモリ20の動作条件を変更しないとステップS203で判定された場合(ステップS203:No)に、フラッシュメモリ20に対して、プログラム実行指令のみを送信する(ステップS206)。
そして、フラッシュメモリ20においてプログラム動作が開始されると、コントローラ10は、フラッシュメモリ20から出力されるフラグF_Majorityをモニタし(ステップS207)、フラッシュメモリ20からフラグF_Majorityを受信したか否かを判定する(ステップS208)。コントローラ10は、このフラグF_Majorityのモニタを、フラッシュメモリ20におけるプログラム実行の期間中、継続して実行する。
コントローラ10は、ステップS208においてフラッシュメモリ20からフラグF_Majorityを受信したと判定された場合(ステップS208:Yes)に、ステップS209に移行する。そして、コントローラ10は、プログラムを開始してからフラグF_Majorityを受信するまでの時間tPROG_Majorityを判定(算出)する(ステップS209)。その後、ステップS210に移行し、コントローラ10は、時間tPROG_Majorityが所定の判定基準時間Rtimeより短いか否かを判定する(ステップS210)。
コントローラ10は、ステップS210において時間tPROG_Majorityが、所定の判定基準時間Rtimeよりも長いと判定された場合(ステップS210:No)に、ステップS214に移行して処理を終了する。
一方、コントローラ10は、ステップS210において、時間tPROG_Majorityが所定の判定基準時間Rtimeよりも短いと判定された場合(ステップS210:Yes)に、当該ブロックのブロックアドレスをブロックアドレス記憶部12に記憶するとともに(ステップS211)、当該ブロックアドレスに対応する補正回数をインクリメント(補正回数=補正回数+1)してブロックアドレス記憶部12に記憶する(ステップS212)。これにより、コントローラ10は、当該ブロックに対して、補正回数に応じたフラッシュメモリ20の動作条件を設定し(ステップS213)、その後、ステップS214に移行して処理を終了する。
以上、説明したように、コントローラ10は、N%(N=1〜100の任意の数)のプログラムすべきセルがログラムベリファイをパスしたときに出力されるフラグF_Majorityをモニタして時間tPROG_Majorityを判定する。また、コントローラ10は、時間tPROG_Majorityの判定基準値と、時間tPROG_Majorityが判定基準値を下回った回数(補正回数)に応じてフラッシュメモリ20に適用されるべき動作条件を条件テーブル11に保持する。
そして、不揮発性半導体記憶装置1では、プログラム対象となるブロックにおいて、時間tPROG_Majorityが判定基準値を下回った場合は、このブロックのブロックアドレスを、このブロックにおいて判定基準値を下回った回数(補正回数)とともにブロックアドレス記憶部12に記憶しておき、このブロックに次にアクセスする際には、条件テーブル11を参照し、補正回数に応じた新しい動作条件を適用するようにフラッシュメモリ20に要求する。
このように、上記不揮発性半導体記憶装置1においては、NAND型フラッシュメモリ20上での個々のブロックのサイクリング回数を記憶しておく必要がないのでレジスタ領域が少なくてすむ。また、個々のブロックごとに特性の劣化状態の管理可能なので、平均のサイクリング回数を利用してNAND型フラッシュメモリ20の動作条件を変更する場合に比べて、NAND型フラッシュメモリの全体の特性劣化を招くことがなく、NAND型フラッシュメモリ20の信頼性の向上を図ることができる。
[第2の実施形態]
第2の実施形態では、不揮発性半導体記憶装置に、プログラム時間をモニタするために、各ブロックごとにオール“0”(全てのデータがゼロ)の書き込み専用領域を設ける。そして、NAND型フラッシュメモリを使用する不揮発性半導体記憶装置は、プログラム対象となるブロックの書き込み専用領域のN%(N=1〜100の任意の数)のメモリセルがプログラムベリファイをパスしたときに出力されるグラグF_Majority(N%パス情報)をモニタし、N%パス時間tPROG_Majority_Majority(書き込み専用領域におけるプログラム開始からフラグF_Majorityが出力されるまでの時間)を判定(計測)する。また、不揮発性半導体記憶装置は、N%パス時時間tPROG_Majority(単に「時間tPROG_Majority」とも呼ぶ)の判定基準値と、時間tPROG_Majorityが判定基準値を下回ったときに、次にNAND型フラッシュメモリに適用されるべき動作条件を保持する。
第2の実施形態では、不揮発性半導体記憶装置に、プログラム時間をモニタするために、各ブロックごとにオール“0”(全てのデータがゼロ)の書き込み専用領域を設ける。そして、NAND型フラッシュメモリを使用する不揮発性半導体記憶装置は、プログラム対象となるブロックの書き込み専用領域のN%(N=1〜100の任意の数)のメモリセルがプログラムベリファイをパスしたときに出力されるグラグF_Majority(N%パス情報)をモニタし、N%パス時間tPROG_Majority_Majority(書き込み専用領域におけるプログラム開始からフラグF_Majorityが出力されるまでの時間)を判定(計測)する。また、不揮発性半導体記憶装置は、N%パス時時間tPROG_Majority(単に「時間tPROG_Majority」とも呼ぶ)の判定基準値と、時間tPROG_Majorityが判定基準値を下回ったときに、次にNAND型フラッシュメモリに適用されるべき動作条件を保持する。
[不揮発性半導体記憶装置の構成]
図8は、第2の実施形態に係わる不揮発性半導体記憶装置1Aの構成を示す図である。
なお、図8において、図1と同一の部分については同一の符号を付し、その説明を省略する。不揮発性半導体記憶装置1Aは、メモリセルがアレイ状に配列されたNAND型フラッシュメモリ20Aと、このNAND型フラッシュメモリ20Aを制御するコントローラ10と、を有して構成される。このNAND型フラッシュメモリ20Aは、後述するように複数のメモリセルがアレイ状に配列されたメモリセルアレイ21と、オール“0”の書き込み専用領域21Aを有している。
図8は、第2の実施形態に係わる不揮発性半導体記憶装置1Aの構成を示す図である。
なお、図8において、図1と同一の部分については同一の符号を付し、その説明を省略する。不揮発性半導体記憶装置1Aは、メモリセルがアレイ状に配列されたNAND型フラッシュメモリ20Aと、このNAND型フラッシュメモリ20Aを制御するコントローラ10と、を有して構成される。このNAND型フラッシュメモリ20Aは、後述するように複数のメモリセルがアレイ状に配列されたメモリセルアレイ21と、オール“0”の書き込み専用領域21Aを有している。
図9は、NAND型フラッシュメモリ20Aの構成を示す図であり、本発明に関係する部分を示したものである。なお、図9において、図2と同一の部分については同一の符号を付し、その説明を省略する。NAND型フラッシュメモリ20Aは、メモリセルアレイ21と、このメモリセルアレイ21内の書き込み専用領域21Aと、ページバッファデコーダ22Aを備えるページバッファ22と、ロウデコーダ23とを有する。また、NAND型フラッシュメモリ20は、このNAND型フラッシュメモリ20の全体の動作を統括して制御するメモリ制御回路31と、動作条件変更設定部32と、出力データバッファ33と、入力データバッファ34と、プログラムビット比計算部36Aと、フェイルビットカウンタ37Aと、動作電圧コントローラ38と、を有している。
メモリセルアレイ21上には、書き込み専用領域21Aが設けられている。この書き込み専用領域21Aは、図上では、一箇所に集合した状態で示されているが、実際にはプログラム単位(例えば、データの書き込み単位)となる各ブロック内に、オール“0”のデータの書き込み専用領域として設けられるものである。この書き込み専用領域21Aにデータの書き込みおよび消去を行うことにより、各ブロックにおける特性劣化をモニタするものである。なお、この書き込み専用領域21Aにオール“0”のデータの書き込みを行うことにより、各ブロックにおける特性劣化を最悪条件により判定することができる。
フェイルビットカウンタ37Aは、ベリファイ読み出し時において、書き込み専用領域21Aにおいてフェイルセルと判定されたメモリセルのビット数(「フェイルセル数」とも呼ぶ)をカウントし、このフェイルセル数Fbの情報をプログラムビット比計算部36Aに出力する。
プログラムビット比計算部36Aは、書き込み専用領域21Aにおいてオール“0”を書き込んだビット数Pb(予め設定されたビット数)の情報と、フェイルビットカウンタ37Aから入力したフェイルセル数Fbと、を基に、プログラムビット比(%)を算出する。
そして、プログラムビット比計算部36Aは、プログラムビット比(プログラムベリファイをパスしたメモリセルの割合)が、所定の割合(例えば、70%)を超えたときにフラフF_Majorityのコントローラ10に向けて出力する。
プログラムビット比計算部36Aは、書き込み専用領域21Aにおいてオール“0”を書き込んだビット数Pb(予め設定されたビット数)の情報と、フェイルビットカウンタ37Aから入力したフェイルセル数Fbと、を基に、プログラムビット比(%)を算出する。
そして、プログラムビット比計算部36Aは、プログラムビット比(プログラムベリファイをパスしたメモリセルの割合)が、所定の割合(例えば、70%)を超えたときにフラフF_Majorityのコントローラ10に向けて出力する。
NAND型フラッシュメモリ20Aは、サイクリングを重ねることでメモリセルの酸化膜にチャージトラップが発生し、メモリセルのプログラム時間は早くなっていく(プログラムしやすくなる)。しかし、NAND型フラッシュメモリ20Aでは複数ビットのセルを同時にプログラムするため、その中には必ずプログラム速度が遅い(時間が長い)ビットが存在し、合計したプログラム時間(tPROG)としては現れにくい。
そこで、速度が遅い(プログラム時間が長い)ビットにより大方のプログラム時間の変化がわからなくなるのを防ぐため、NAND型フラッシュメモリ20Aに、オール“0”の書き込み専用領域21Aを設けている。NAND型フラッシュメモリ20Aは、この書き込み専用領域21Aにおけるプログラムフェイルビット数をカウントし、書き込み専用領域21AのN%(N=1〜100の任意の数)のメモリセルがプログラムベリファイをパスしたときにフラグF_Majorityを外部に出力する機能を設ける。また、NAND型フラッシュメモリ20Aに、外部からの要求に応じて動作条件を変更することのできる機能を設ける。
そして、不揮発性半導体記憶装置1Aは、図4〜図6を用いて説明した不揮発性半導体記憶装置1と同様に、プログラム対象となる書き込み専用領域21Aにおける時間tPROG_Majorityをモニタし、時間tPROG_Majorityが判定基準値を下回った場合、そのブロックアドレスと、当該ブロックにおいて時間tPROG_Majorityが判定基準値を下回った回数(補正回数)と、ブロックアドレス記憶部12に記憶する(初回目ならば1、2回目ならば2、3回目ならば3、・・・・)。
そして、コントローラ10は、ブロックアドレス記憶部12にブロックアドレスが記憶されているブロックにアクセスしようとする場合は、ブロックアドレス記憶部12に記憶されている当該ブロックの補正回数を基に条件テーブル11を参照し、この補正回数に対応する動作条件を読み出し、その読み出した動作条件をまずNAND型フラッシュメモリ20Aに対して設定し、その後に、所望の動作(リード/プログラム/イレース)を行う。
なお、図7(A)において示したフラッシュメモリ20におけるプログラム動作時の処理流れは、フラッシュメモリ20Aにおけるプログラム動作時の処理流れにも当てはまる。ただし、ステップS106における演算処理は、フラッシュメモリ20Aでは、フェイルビットカウンタ37Aおよびプログラムビット比計算部36Aが行なう。
コントローラ10は、書き込み専用領域21A内のN%(N=1〜100の任意の数)のプログラムすべきセルがログラムベリファイをパスしたときに出力されるフラグF_Majorityをモニタして時間tPROG_Majorityを判定する。また、コントローラ10は、時間tPROG_Majorityの判定基準値と、時間tPROG_Majorityが判定基準値を下回った回数(補正回数)に応じてフラッシュメモリ20Aに適用されるべき動作条件を条件テーブル11に保持する。
そして、不揮発性半導体記憶装置1Aでは、プログラム対象となるブロックにおいて、時間tPROG_Majorityが判定基準値を下回った場合は、このブロックのブロックアドレスを、このブロックにおいて判定基準値を下回った回数(補正回数)とともにブロックアドレス記憶部12に記憶しておき、このブロックに次にアクセスする際には、条件テーブル11を参照し、補正回数に応じた新しい動作条件を適用するようにフラッシュメモリ20Aに要求する。
このように、上記不揮発性半導体記憶装置1Aにおいては、NAND型フラッシュメモリ20A上での個々のブロックのサイクリング回数を記憶しておく必要がないのでレジスタ領域が少なくてすむ。また、個々のブロックごとに特性の劣化状態の管理可能なので、平均のサイクリング回数を利用してNAND型フラッシュメモリ20Aの動作条件を変更する場合に比べて、NAND型フラッシュメモリの全体の特性劣化を招くことがなく、NAND型フラッシュメモリ20Aの信頼性の向上を図ることができる。
なおここで、本発明と上記実施形態の対応について補足して説明しておく。上記実施形態において、本発明における不揮発性半導体記憶装置は、図1に示す不揮発性半導体記憶装置1が対応し、本発明におけるフラッシュメモリは、NAND型フラッシュメモリ((本明細書では、単に「フラッシュメモリ」とも呼ぶ)20が対応する。また、本発明における制御部は、図1に示すコントローラ10が対応し、本発明における条件テーブルは、条件テーブル11が対応する。また、本発明におけるブロックアドレス記憶部は、ブロックアドレス記憶部12が対応し、本発明におけるN%パス時間判定部は、N%パス時間(tPROG_Majority)判定部13が対応する。また、本発明におけるN%パス情報は、フラッシュメモリ20から出力されるフラグF_Majorityが対応し、本発明における第1時間は、時間tPROG_Majorityが対応し、本発明における第2時間は、判定基準値が対応する。
(1)そして、上記実施形態において、不揮発性半導体記憶装置1は、フラッシュメモリ20内のブロックに対してプログラムを行う際に、このブロック内のプログラムすべきメモリセルのうちの所定の割り合いのメモリセルのプログラムが完了するまでの第1時間tPROG_Majorityを計測する機能と、第1時間tPROG_Majorityと所定の判定基準値である第2時間とを比較する機能と、上記ブロックにおいて第1時間tPROG_Majorityが第2時間を下回った場合は、当該ブロックに次回からアクセスする際には、フラッシュメモリ20の動作条件を所定の動作条件に変更してアクセスする機能と、を備える。
このような構成の不揮発性半導体記憶装置1では、プログラム対象となるブロックにおいてプログラムされるべきメモリセルのN%(N=1〜100の任意の数)のメモリセルがプログラムベリファイをパスする第1時間tPROG_Majorityを判定(計測)し、この時間tPROG_Majorityが判定基準値を下回ったときに、当該ブロックのブロックアドレスを記憶しておき、次にそのブロックにアクセスする際には、そのブロックに対してのみフラッシュメモリ20の動作条件を変更する。
これにより、フラッシュメモリ内の個々のブロックごとにメモリセルの特性の劣化状態を検出でき、フラッシュメモリの動作条件を個々のブロックの劣化状態に応じて設定することができる。また、メモリセルが劣化していないブロックに対しては通常の動作条件を設定できる。さらには、劣化の程度が大きい(劣化が進んだ)ブロックを使用しないようにすることもできる。このため、フラッシュメモリの全体の特性劣化を招くことがなく、フラッシュメモリの寿命を延ばすとともに、フラッシュメモリの信頼性の向上を図ることができる。
これにより、フラッシュメモリ内の個々のブロックごとにメモリセルの特性の劣化状態を検出でき、フラッシュメモリの動作条件を個々のブロックの劣化状態に応じて設定することができる。また、メモリセルが劣化していないブロックに対しては通常の動作条件を設定できる。さらには、劣化の程度が大きい(劣化が進んだ)ブロックを使用しないようにすることもできる。このため、フラッシュメモリの全体の特性劣化を招くことがなく、フラッシュメモリの寿命を延ばすとともに、フラッシュメモリの信頼性の向上を図ることができる。
(2)また、上記実施形態において、不揮発性半導体記憶装置1は、メモリセルがアレイ状に配列されたメモリ領域を有するフラッシュメモリ20とフラッシュメモリ20の動作を制御する制御部(コントローラ10)とを有し、フラッシュメモリ20は、プログラム対象となるブロック内のプログラムすべきメモリセルのうちの予め設定したN%(N=1〜100の任意の数)のメモリセルがプログラムベリファイをパスしたときに、このN%のメモリセルがプログラムベリファイをパスしたことを示すN%パス情報(フラグF_Majority)を外部(コントローラ10)に出力する機能と、外部(コントローラ10)からの要求に応じて当該フラッシュメモリ20における動作条件を変更する機能と、を備え、制御部(コントローラ10)は、フラッシュメモリ20から出力されるN%パス情報(フラグF_Majority)をモニタすることにより、プログラム対象となるブロックにおけるプログラムの開始からN%のメモリセルがプログラムベリファイをパスするまでに要した第1時間tPROG_Majorityを判定する機能と、第1時間tPROG_Majorityと第2時間とを比較する機能と、プログラム対象となるブロックにおいて第1時間tPROG_Majorityが第2時間を下回った場合に、当該ブロックのブロックアドレスを記憶するとともに、次回より当該ブロックにアクセスする際には、フラッシュメモリ20の動作条件を所定の動作条件に変更するようにフラッシュメモリ20に要求する機能と、を備える。
このような構成の不揮発性半導体記憶装置1では、フラッシュメモリ20は、プログラム対象となるブロック内のメモリセルの総数に対してN%(N=1〜100の任意の数)のメモリセルがプログラムされたときに外部(コントローラ10)にN%パス情報(フラグF_Majority)を出力する。また、フラッシュメモリ20は、外部(コントローラ10)からの要求に応じて動作条件を変更することができる。
制御部(コントローラ10)では、フラッシュメモリ20から出力されるN%パス情報(フラグF_Majority)をモニタして、第1時間tPROG_Majority(プログラム開始からフラグF_Majorityが出力されるまでの時間)を判定する。そして、制御部(コントローラ10)は、時間tPROG_Majorityが第2時間(判定基準値)を下回ったとき、そのブロックアドレス及びそのブロックに次回から適用すべき動作条件を記憶し、次回よりそのブロックアドレスにアクセスするときには新しい動作条件を適用するようにフラッシュメモリ20に要求する。上記動作条件とは、例えばプログラム/プログラムベリファイ/リード/イレース(Progaram/Progarm Verify/Read/Erase)の際の動作条件である。
これにより、フラッシュメモリにおける個々のブロックのサイクリング回数を記憶することなく、個々のブロックごとにメモリセルの特性の劣化を検出し、フラッシュメモリの動作条件を個々のブロックの劣化状態に応じて設定することができる。このため、フラッシュメモリの寿命を延ばすとともに、フラッシュメモリの信頼性の向上を図ることができる。
制御部(コントローラ10)では、フラッシュメモリ20から出力されるN%パス情報(フラグF_Majority)をモニタして、第1時間tPROG_Majority(プログラム開始からフラグF_Majorityが出力されるまでの時間)を判定する。そして、制御部(コントローラ10)は、時間tPROG_Majorityが第2時間(判定基準値)を下回ったとき、そのブロックアドレス及びそのブロックに次回から適用すべき動作条件を記憶し、次回よりそのブロックアドレスにアクセスするときには新しい動作条件を適用するようにフラッシュメモリ20に要求する。上記動作条件とは、例えばプログラム/プログラムベリファイ/リード/イレース(Progaram/Progarm Verify/Read/Erase)の際の動作条件である。
これにより、フラッシュメモリにおける個々のブロックのサイクリング回数を記憶することなく、個々のブロックごとにメモリセルの特性の劣化を検出し、フラッシュメモリの動作条件を個々のブロックの劣化状態に応じて設定することができる。このため、フラッシュメモリの寿命を延ばすとともに、フラッシュメモリの信頼性の向上を図ることができる。
(3)また、上記実施形態において、制御部(コントローラ10)は、フラッシュメモリ20内の1つのブロックに対してプログラムを行う際に第1時間tPROG_Majorityが第2時間(判定基準値)を下回る毎に、当該ブロックに次にアクセスする際、フラッシュメモリ20に対して異なる動作条件を設定する。
このような構成の不揮発性半導体記憶装置1では、ある1のブロックに対してフラッシュメモリ20の動作条件を第1動作条件に変更した後に、当該1のブロックにおいて再び第1時間(tPROG_Majority)が第2時間(判定基準値)を下回るようになった場合は、当該1のブロックに対するフラッシュメモリ20の動作条件を次の第2動作条件に変更する。以降、当該1のブロックにおいて第1時間(tPROG_Majority)が第2時間を下回るごとに、この下回った回数に応じて予め設定(記憶)された動作条件をフラッシュメモリ20に対して設定する。
これにより、あるブロックにおいて、メモリセルの特性劣化が進行する場合には、このブロックに対して、メモリセルの特性劣化の状態に応じた動作条件を設定することができる。このため、フラッシュメモリの信頼性の向上を図ることができる。
これにより、あるブロックにおいて、メモリセルの特性劣化が進行する場合には、このブロックに対して、メモリセルの特性劣化の状態に応じた動作条件を設定することができる。このため、フラッシュメモリの信頼性の向上を図ることができる。
(4)また、上記実施形態において、不揮発性半導体記憶装置1は、プログラム対象となるブロックにおけるプログラム開始からN%パス情報(フラグF_Majority)が出力されるまでの第1時間tPROG_Majorityを判定するとともに、この第1時間tPROG_Majorityと第2時間とを比較するN%パス時間判定部13と、プログラム対象となるブロックにおいて第1時間tPROG_Majorityが第2時間を下回った場合に、当該ブロックのブロックアドレスと、当該ブロックにおいて第1時間tPROG_Majorityが第2時間を下回った回数である補正回数と、を対応付けて記憶するブロックアドレス記憶部12と、補正回数と、この補正回数に応じてフラッシュメモリ20に対して適用されるべき動作条件と、を対応付け保持する条件テーブル11と、を備え、制御部(コントローラ10)は、フラッシュメモリ20内のブロックに対してアクセスを開始する前に、ブロックアドレス記憶部12と条件テーブル11とを参照し、当該ブロックのブロックアドレスがブロックアドレス記憶部12に記憶されている場合は、当該ブロックの補正回数に応じた動作条件を条件テーブル11から抽出し、この抽出した動作条件をフラッシュメモリ20に対して設定した後に、当該ブロックに対してアクセスを開始する。
このような構成の不揮発性半導体記憶装置1では、N%パス時間判定部13により、プログラム対象となるブロックにおけるプログラム開始からN%パス情報(フラグF_Majority)が出力されるまでの第1時間tPROG_Majorityを判定するとともに、該第1時間tPROG_Majorityと第2時間(判定基準値)とを比較する。また、第1時間(tPROG_Majority)が第2時間を下回ったブロックについては、当該ブロックのブロックアドレスを、当該ブロックにおいて第1時間(tPROG_Majority)が第2時間を下回った回数(補正回数)とともにブロックアドレス記憶部12に記憶する。また補正回数と、この補正回数に応じてフラッシュメモリ20に対して適用されるべき動作条件と、を対応付けて条件テーブル11に保持する。
そして、制御部(コントローラ10)は、フラッシュメモリ20内のブロックにアクセスを開始する前に、ブロックアドレス記憶部12と条件テーブル11とを参照し、当該ブロックのブロックアドレスがブロックアドレス記憶部12に記憶されている場合は、当該ブロックの補正回数に応じた動作条件を条件テーブル11から抽出し、この抽出した動作条件をフラッシュメモリ20に対して設定した後に、当該ブロックに対してアクセスを開始する。
これにより、あるブロックにおいてメモリセルの特性が劣化した場合は、このブロックのブロックアドレスを保持(記憶)するとともに、このブロック内のメモリセルの特性劣化に応じた動作条件をフラッシュメモリ20に対して設定することができる。
そして、制御部(コントローラ10)は、フラッシュメモリ20内のブロックにアクセスを開始する前に、ブロックアドレス記憶部12と条件テーブル11とを参照し、当該ブロックのブロックアドレスがブロックアドレス記憶部12に記憶されている場合は、当該ブロックの補正回数に応じた動作条件を条件テーブル11から抽出し、この抽出した動作条件をフラッシュメモリ20に対して設定した後に、当該ブロックに対してアクセスを開始する。
これにより、あるブロックにおいてメモリセルの特性が劣化した場合は、このブロックのブロックアドレスを保持(記憶)するとともに、このブロック内のメモリセルの特性劣化に応じた動作条件をフラッシュメモリ20に対して設定することができる。
(5)また、上記実施形態において、アクセスする際に変更する動作条件は、フラッシュメモリ20のブロックに対してプログラム、プログラムベリファイ、リード、イレースのいずれか、または全部の処理を行う際の動作条件である
これにより、あるブロックにおいて、メモリセルの特性が劣化した場合には、このメモリセルの劣化状態に応じて、プログラム時、プログラムベリファイ時、リード時、およびイレース時の動作条件(例えば、プログラム電圧、リード電圧、ベリファイ電圧等の電圧条件)等を適切に設定することができる。
これにより、あるブロックにおいて、メモリセルの特性が劣化した場合には、このメモリセルの劣化状態に応じて、プログラム時、プログラムベリファイ時、リード時、およびイレース時の動作条件(例えば、プログラム電圧、リード電圧、ベリファイ電圧等の電圧条件)等を適切に設定することができる。
(6)また、本発明における書き込み専用領域は、書き込み専用領域21Aが対応する。不揮発性半導体記憶装置1Aでは、ブロックに対してプログラムを行なう際に、所定の同一データを書き込むための書き込み専用領域21Aをブロック内に設け、第1時間を判定する機能として、ブロックへのプログラム開始から書き込み専用領域21A内のメモリセルのうちの所定の割合のメモリセルのプログラムが完了するまでの時間を第1時間として判定する。
(7)また、上記実施形態において、書き込み専用領域21Aに書き込まれるデータは、フラッシュメモリのメモリセルのフローティングゲートに電荷を注入して書き込まれるデータである。
これにより、あるブロックにおけるメモリセルの劣化を判定する場合に、書き込み専用領域21A内のメモリセルに最もストレス(負担)を与えるデータを書き込むことができる。このため、ブロック内のメモリセルの劣化状態を最悪条件で評価することができる。
これにより、あるブロックにおけるメモリセルの劣化を判定する場合に、書き込み専用領域21A内のメモリセルに最もストレス(負担)を与えるデータを書き込むことができる。このため、ブロック内のメモリセルの劣化状態を最悪条件で評価することができる。
以上、本発明の実施の形態について説明したが、本発明の不揮発性半導体記憶装置は、上述の図示例にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
例えば、上述した実施形態では、フラッシュメモリがNAND型フラッシュメモリの例を示したが、フラッシュメモリは、NOR型のフラッシュメモリであってもよい。
また、本発明は、上述した不揮発性半導体記憶装置に限らず、フラッシュメモリを内蔵する種々のシステムに効果的に適用できるものである。
また、本発明は、上述した不揮発性半導体記憶装置に限らず、フラッシュメモリを内蔵する種々のシステムに効果的に適用できるものである。
1,1A…不揮発性半導体記憶装置、10…コントローラ、11…条件テーブル、12…ブロックアドレス記憶部、13…N%パス時間判定部、20,20A…フラッシュメモリ、21…メモリセルアレイ、21A…書き込み専用領域、22…ページバッファ、22A…ページバッファデコーダ、23…ロウデコーダ、31…メモリ制御回路、32…動作条件変更設定部、33…出力データバッファ、34…入力データバッファ、35…プログラムビットカウンタ、36,36A…プログラムビット比計算部、37,37A…フェイルビットカウンタ、38…動作電圧コントローラ
Claims (8)
- フラッシュメモリ内のブロックに対してプログラムを行う際に、前記ブロック内のプログラムすべきメモリセルのうちの所定の割り合いのメモリセルのプログラムが完了するまでの第1時間を計測する機能と、
前記第1時間と所定の判定基準値である第2時間とを比較する機能と、
前記ブロックにおいて前記第1時間が前記第2時間を下回った場合は、当該ブロックに次回からアクセスする際には、前記フラッシュメモリの動作条件を所定の動作条件に変更してアクセスする機能と、
を備えることを特徴とする不揮発性半導体記憶装置。 - メモリセルがアレイ状に配列されたメモリ領域を有するフラッシュメモリと前記フラッシュメモリの動作を制御する制御部とを有し、
前記フラッシュメモリは、
プログラム対象となるブロック内のプログラムすべきメモリセルのうちの予め設定したN%(N=1〜100の任意の数)のメモリセルがプログラムベリファイをパスしたときに、このN%のメモリセルがプログラムベリファイをパスしたことを示すN%パス情報を外部に出力する機能と、
外部からの要求に応じて当該フラッシュメモリにおける動作条件を変更する機能と、
を備え、
前記制御部は、
前記フラッシュメモリから出力されるN%パス情報をモニタすることにより、前記プログラム対象となるブロックにおけるプログラムの開始から前記N%のメモリセルがプログラムベリファイをパスするまでに要した第1時間を計測する機能と、
前記第1時間と前記第2時間とを比較する機能と、
前記プログラム対象となるブロックにおいて前記第1時間が前記第2時間を下回った場合に、当該ブロックのブロックアドレスを記憶するとともに、次回より当該ブロックにアクセスする際には、前記フラッシュメモリの動作条件を前記所定の動作条件に変更するように前記フラッシュメモリに要求する機能と、
を備えることを特徴とする請求項1に記載の不揮発性半導体記憶装置。 - 前記制御部は、
前記フラッシュメモリ内の前記ブロックに対してプログラムを行う際に前記第1時間が前記第2時間を下回る毎に、前記ブロックに次にアクセスする際、前記フラッシュメモリに対して異なる動作条件を設定する、
ことを特徴とする請求項2に記載の不揮発性半導体記憶装置。 - プログラム対象となるブロックにおけるプログラム開始から前記N%パス情報が出力されるまでの第1時間を計測するとともに、この第1時間と前記第2時間とを比較するN%パス時間判定部と、
プログラム対象となるブロックにおいて前記第1時間が前記第2時間を下回った場合に、当該ブロックのブロックアドレスと、当該ブロックにおいて前記第1時間が前記第2時間を下回った回数である補正回数と、を対応付けて記憶するブロックアドレス記憶部と、
前記補正回数と、この補正回数に応じて前記フラッシュメモリに対して適用されるべき動作条件と、を対応付け保持する条件テーブルと、
を備え、
前記制御部は、
前記フラッシュメモリ内のブロックに対してアクセスを開始する前に、前記ブロックアドレス記憶部と前記条件テーブルとを参照し、
当該ブロックのブロックアドレスが前記ブロックアドレス記憶部に記憶されている場合は、当該ブロックの補正回数に応じた動作条件を前記条件テーブルから抽出し、この抽出した動作条件を前記フラッシュメモリに対して設定した後に、当該ブロックに対してアクセスを開始する
ことを特徴とする請求項3に記載の不揮発性半導体記憶装置。 - 前記アクセスする際に変更する動作条件は、ブロックに対してプログラム、プログラムベリファイ、リード、イレースのいずれか、または全部の処理を行う際の動作条件である
ことを特徴とする請求項1から請求項4のいずれか一項に記載の不揮発性半導体記憶装置。 - 前記ブロックに対してプログラムを行なう際に、所定の同一データを書き込むための書き込み専用領域を前記ブロック内に設け、
前記第1時間を判定する機能として、前記ブロックへのプログラム開始から前記書き込み専用領域内のメモリセルのうちの所定の割合のメモリセルのプログラムが完了するまでの時間を前記第1時間として判定する、
ことを特徴とする請求項1から請求項5いずれか一項に記載の不揮発性半導体記憶装置。 - 前記書き込み専用領域に書き込まれるデータは、フラッシュメモリのメモリセルのフローティングゲートに電荷を注入して書き込まれるデータである
ことを特徴とする請求項6に記載の不揮発性半導体記憶装置。 - フラッシュメモリ内のプログラム対象となるブロックに対してプログラムを行う際に、前記ブロック内のプログラムすべきメモリセルのうちの所定の割り合いのメモリセルのプログラムが完了するまでの第1時間を計測する手順と、
前記第1時間と所定の判定基準値である第2時間とを比較する手順と、
前記第1時間が前記第2時間を下回った場合に、次回から当該ブロックにアクセスする際には、前記フラッシュメモリの動作条件を所定の動作条件に変更する手順と、
を含むことを特徴とする不揮発性半導体記憶装置における動作条件制御方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011275700A JP2013125574A (ja) | 2011-12-16 | 2011-12-16 | 不揮発性半導体記憶装置、および不揮発性半導体記憶装置における動作条件制御方法 |
KR1020120124144A KR20130069366A (ko) | 2011-12-16 | 2012-11-05 | 불휘발성 반도체 메모리 장치 및 불휘발성 반도체 메모리 장치의 동작 조건 제어 방법 |
US13/711,881 US20130159610A1 (en) | 2011-12-16 | 2012-12-12 | Non-volatile semiconductor memory device related method of operation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011275700A JP2013125574A (ja) | 2011-12-16 | 2011-12-16 | 不揮発性半導体記憶装置、および不揮発性半導体記憶装置における動作条件制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013125574A true JP2013125574A (ja) | 2013-06-24 |
Family
ID=48776724
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011275700A Pending JP2013125574A (ja) | 2011-12-16 | 2011-12-16 | 不揮発性半導体記憶装置、および不揮発性半導体記憶装置における動作条件制御方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2013125574A (ja) |
KR (1) | KR20130069366A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022040515A (ja) * | 2020-08-31 | 2022-03-11 | ウィンボンド エレクトロニクス コーポレーション | フラッシュメモリおよびプログラミング方法 |
-
2011
- 2011-12-16 JP JP2011275700A patent/JP2013125574A/ja active Pending
-
2012
- 2012-11-05 KR KR1020120124144A patent/KR20130069366A/ko not_active Application Discontinuation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022040515A (ja) * | 2020-08-31 | 2022-03-11 | ウィンボンド エレクトロニクス コーポレーション | フラッシュメモリおよびプログラミング方法 |
US11798628B2 (en) | 2020-08-31 | 2023-10-24 | Winbond Electronics Corp. | Semiconductor memory apparatus adopting new ISPP method with sacrificial programming pulse and programming method thereof |
Also Published As
Publication number | Publication date |
---|---|
KR20130069366A (ko) | 2013-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2427885B1 (en) | Multiple level program verify in a memory device | |
KR100799018B1 (ko) | 불휘발성 메모리 소자 및 자기 보상 방법 | |
KR101141908B1 (ko) | 불휘발성 반도체 기억 장치 | |
KR100891405B1 (ko) | 불휘발성 메모리 장치 및 그 동작 방법 | |
TWI496152B (zh) | 非揮發性半導體記憶裝置及其寫入方法 | |
KR101184814B1 (ko) | 불휘발성 메모리 장치 및 이의 프로그램 방법 | |
US20130159610A1 (en) | Non-volatile semiconductor memory device related method of operation | |
US7646639B2 (en) | Circuit and method generating program voltage for non-volatile memory device | |
JP2008047273A (ja) | 半導体記憶装置およびその制御方法 | |
KR20180022579A (ko) | 반도체 메모리 장치 | |
JP2009301616A (ja) | 不揮発性半導体記憶装置 | |
KR20140123230A (ko) | 플래시 메모리와 메모리 컨트롤러를 포함하는 데이터 저장 장치 및 그것의 배드 페이지 관리 방법 | |
US8873316B2 (en) | Methods and systems for adjusting NVM cell bias conditions based upon operating temperature to reduce performance degradation | |
US9342401B2 (en) | Selective in-situ retouching of data in nonvolatile memory | |
KR20090007298A (ko) | 임계 전압의 치밀한 분배가 가능한 비활성 메모리의 비 실시간 재 프로그래밍 방법 | |
KR20110065759A (ko) | 불휘발성 메모리 소자의 동작 방법 | |
TWI648743B (zh) | 半導體裝置及其操作方法 | |
US20150270003A1 (en) | Non-volatile memory and method for programming the same | |
JP2013125575A (ja) | 不揮発性半導体記憶装置、および不揮発性半導体記憶装置における動作条件制御方法 | |
JP5280027B2 (ja) | 半導体装置及びその制御方法 | |
KR20100000776A (ko) | 불휘발성 메모리 장치 및 그것의 프로그램 방법 | |
JP2013125574A (ja) | 不揮発性半導体記憶装置、および不揮発性半導体記憶装置における動作条件制御方法 | |
JP6394359B2 (ja) | メモリデバイス、記憶装置及び記憶装置の診断方法 | |
KR100967010B1 (ko) | 불휘발성 메모리 장치 및 그 프로그램 방법 | |
KR101981798B1 (ko) | 불휘발성 메모리 장치의 소거 방법 및 소프트 프로그램 방법 |