(57)【要約】【課題】フラッシュメモリの個々のブロックごとにメモリセルの特性の劣化状態を検出でき、フラッシュメモリの動作条件を個々のブロックの劣化状態に応じて設定することができる、不揮発性半導体記憶装置を提供する。【解決手段】本発明の不揮発性半導体記憶装置１においては、フラッシュメモリ２０内の個々のブロックのイレース時間（ｔＥＲＳ）をモニタし、イレース時間（ｔＥＲＳ）が判定基準値を上回った場合に、当該ブロックのブロックアドレスを記憶し、次に、当該ブロックに対してアクセスする際には、フラッシュメモリ２０の動作条件を所定の動作条件に変更する。【選択図】図１
2013125575.tif 000002
【特許請求の範囲】
【請求項１】
フラッシュメモリ内のブロックに対してイレース動作を行う際に、イレース開始からイレースが完了するまでのイレース時間を計測する機能と、
前記イレース時間と所定の判定基準値とを比較する機能と、
前記ブロックにおいて前記イレース時間が前記判定基準値を上回った場合は、当該ブロックに次回からアクセスする際に、前記フラッシュメモリの動作条件を所定の動作条件に変更してアクセスする機能と、
を備えることを特徴とする不揮発性半導体記憶装置。
【請求項２】
メモリセルがアレイ状に配列されたメモリ領域を有するフラッシュメモリと前記フラッシュメモリの動作を制御する制御部とを有し、
前記フラッシュメモリは、
イレース対象となるブロック内のメモリセルのイレースが完了したときに、このイレースが完了したことを示すイレース完了情報を外部に出力する機能と、
外部からの要求に応じて当該フラッシュメモリにおける動作条件を変更する機能と、
を備え、
前記制御部は、
前記フラッシュメモリから出力される前記イレース完了情報をモニタすることにより、イレース対象となるブロックにおけるイレースの開始からイレースが完了するまでに要したイレース時間を計測する機能と、
前記イレース時間と前記判定基準値とを比較する機能と、
前記イレース対象となるブロックにおいてイレース時間が前記判定基準値を上回った場合に、当該ブロックのブロックアドレスを記憶するとともに、次回より当該ブロックにアクセスする際には、前記フラッシュメモリの動作条件を前記所定の動作条件に変更するように前記フラッシュメモリに要求する機能と、
を備えることを特徴とする請求項１に記載の不揮発性半導体記憶装置。
【請求項３】
前記制御部は、
前記フラッシュメモリ内の前記ブロックにおいて前記イレース時間が前記判定基準値を上回る毎に、前記ブロックに対する前記判定基準値を所定時間長くして更新するととともに、次に前記ブロックに対してアクセスする際、前記フラッシュメモリに対して異なる動作条件を設定する、
ことを特徴とする請求項２に記載の不揮発性半導体記憶装置。
【請求項４】
イレース対象となるブロックにおけるイレース開始からイレースが完了するまでのイレース時間を計測し、このイレース時間と前記判定基準値とを比較するとともに、前記イレース時間が前記判定基準値を上回った場合に、当該ブロックに対する前記判定基準値の時間を延長して更新するイレース時間判定部と、
前記イレース対象となるブロックにおいて前記イレース時間が前記判定基準値を上回った場合に、当該ブロックのブロックアドレスと、当該ブロックにおいて前記イレース時間が前記判定基準値を上回った回数である補正回数と、を対応付けて記憶するブロックアドレス記憶部と、
前記補正回数と、この補正回数に応じて更新設定される前記判定基準値と、同じくこの補正回数に応じて前記フラッシュメモリに対して適用されるべき動作条件と、を対応付け保存する条件テーブルと、
を備え、
前記制御部は、
フラッシュメモリ内のブロックに対してアクセスを開始する前に、前記ブロックアドレス記憶部と前記条件テーブルとを参照し、
当該ブロックのブロックアドレスが前記ブロックアドレス記憶部に記憶されている場合は、
当該ブロックの前記補正回数に応じた動作条件を前記条件テーブルから抽出し、この抽出した動作条件を前記フラッシュメモリに対して設定した後に、当該ブロックに対してアクセスを開始する
ことを特徴とする請求項３に記載の不揮発性半導体記憶装置。
【請求項５】
前記アクセスする際に変更する動作条件は、ブロックに対してプログラム、プログラムベリファイ、リード、イレースのいずれか、または全部の処理を行う際の動作条件である
ことを特徴とする請求項１から請求項４のいずれか一項に記載の不揮発性半導体記憶装置。
【請求項６】
フラッシュメモリ内のブロックに対してイレース動作を行う際に、イレース開始から前記ブロック内のメモリセルのイレースが完了するまでのイレース時間を計測する手順と、
前記イレース時間と所定の判定基準値とを比較する手順と、
前記ブロックにおいてイレース時間が前記判定基準値を上回った場合は、次に当該ブロックに対してアクセスする際に、前記フラッシュメモリの動作条件を所定の動作条件に変更してアクセスする手順と、
を含むことを特徴とする不揮発性半導体記憶装置における動作条件制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリを備える不揮発性半導体記憶装置、および不揮発性半導体記憶装置における動作条件制御方法に関する。
【背景技術】
【０００２】
関連する不揮発性半導体記憶装置がある（特許文献１を参照）。この特許文献１に記載の不揮発性半導体記憶装置は、書き込みと消去動作の回数に応じた最適な消去が行え、消去回数の増加に伴って消去時間が長くなるのを抑制できる不揮発性半導体記憶装置を提供すること目的とする。
この特許文献１に記載の不揮発性半導体記憶装置においては、過去に行った消去動作の回数を消去回数記憶部に記憶し、この消去回数にしたがって読み出し時間設定回路で読み出し時間を制御することにより、この消去回数に基づいて読み出し時間を設定できるようにしている。
【０００３】
また、関連する不揮発性半導体記憶装置がある（特許文献２を参照）。この特許文献２に記載の不揮発性半導体記憶装置は、サブブロック毎のデータ消去回数を管理する機能を内蔵する不揮発性半導体記憶装置を提供することを目的とする。この不揮発性半導体記憶装置では、セルアレイの各サブブロックがそのサブブロックのデータ消去毎に更新されるデータ消去回数を記憶し、セルアレイの所定のブロックが記憶するデータ消去回数の許容最大値を参照して、各サブブロックごとにデータ消去回数を制限する。
【０００４】
また、関連する記憶媒体上のデータ管理のための方法がある（特許文献３を参照）。この特許文献３に記載のデータ管理のための方法では、第１のブロックが消去されるべき場合、第１のブロックの消耗レベルが消去を行うのに許容可能であるか判定される。許容可能であれば、第１のブロック上のデータは消去される。そうでなければ、第１のブロックよりも低い消耗レベルを有する第２のブロックが選択され、第２のブロックのデータが第１のブロックへコピーされる。各ブロックは消去された回数を監視する関連するカウンタを有する。過去において殆ど消去されていないブロックは未来において消去される可能性が低いため、第１のブロックはあまり頻繁に消去されず、従って寿命が延ばされる。第２のブロックは新しいデータを記憶するために使用されることができ、より頻繁に使用される。
【０００５】
また、関連する端末装置がある（特許文献４を参照）。この特許文献４に記載の端末装置は、ＮＡＮＤ型フラッシュメモリ上の特定の領域に書換えが集中するのを防ぎ、ＮＡＮＤ型フラッシュメモリ全体に書換え頻度を分散させることができ、また書換えが発生した際には、ブロックの書換え回数を極力減少させ、製品のデータ書換えに関する処理速度を向上できる端末装置を提供することを目的とする。 
【０００６】
また、関連する不揮発性半導体記憶装置がある（特許文献５を参照）。この特許文献５に記載の不揮発性半導体記憶装置は、多値記憶の不揮発性半導体記憶装置において、不要なベリファイを削減し、トータルの書き込み時間の短縮を図ることを目的とする。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第３９４６８４９号明細書
【特許文献２】特開２００５−１２２８００号公報
【特許文献３】特表２００３−５３２２２２号公報
【特許文献４】特開２００２−３２２５６号公報
【特許文献５】特開２０００−１６３９７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ＮＡＮＤ型フラッシュメモリは、プログラムおよび消去動作等のサイクリング（Ｃｙｃｌｉｎｇ）を重ねるとメモリセルの酸化膜が劣化し、酸化膜中にチャージトラップが発生し、プログラムしたセルの閾値Ｖｔの分布が広がる傾向がある。例えば、図１０は、ＳＬＣ（Ｓｉｎｇｌｅ  Ｌｅｖｅｌ  Ｃｅｌｌ）の閾値Ｖｔの分布を示す図であり、図１０（Ａ）は、サイクリング前における閾値Ｖｔの分布を示し、図１０（Ｂ）は、サイクリング後における閾値Ｖｔの分布を示している。この図において、Ｖｐｇｍｖは、プログラムベリファイ時のワード線に印加される電圧を示し、Ｖｒｅａｄは、リード時の非選択ワード線の電圧を示す。この図に示すように、サイクリングを繰り返すことにより、サイクリング後の閾値Ｖｔの分布範囲が、サイクリング前と比較して広がる。
【０００９】
このプログラムしたセルの閾値Ｖｔの分布が広がると、次のような問題が起こる可能性がある。例えば、ＮＡＮＤ型フラッシュメモリがＳＬＣの場合に、オーバプログラミング（Ｏｖｅｒ  Ｐｒｏｇｒａｍｍｉｎｇ）によるカラムリード（Ｃｏｌｕｍｎ  Ｒｅａｄ）不良が発生する可能性があり、ＭＬＣ（Ｍｕｌｔｉｐｌｅ  Ｌｅｖｅｌ  Ｃｅｌｌ）の場合は、複数の閾値Ｖｔの各々が隣接ステート（Ｓｔａｔｅ）と重なることによるリード不良が発生することがある。これらはＮＡＮＤ型フラッシュメモリの信頼性に重大な問題となる。
【００１０】
従来、このような問題を回避するため、例えば、ＥＣＣ（Ｅｒｒｏｒ  Ｃｈｅｃｋｉｎｇ  ａｎｄ  Ｃｏｒｒｅｃｔｉｏｎ：エラー検出訂正）機能の拡充、各ブロックのサイクリング回数（プログラム及び消去動作等の実施回数）を可能な限り平均化するためのシステムによる対処（Ｗａｒｅ  Ｌｅｖｅｌｉｎｇ）、または、ＮＡＮＤ型フラッシュメモリ全体の平均サイクリング回数を管理し、この平均サイクリング回数に応じてＮＡＮＤ型フラッシュメモリの動作条件を変更する方法が行われている。
【００１１】
しかしながら、ＥＣＣを拡充する場合は、ＥＣＣの情報を記憶するためのメモリ領域が必要となり、ＮＡＮＤ型フラッシュメモリのチップ面積の増加を招く。また、データの読み書きにおいてＥＣＣを算出する処理が必要となるため、システム側にも負担がかかる。また、各ブロックのサイクリング回数を平均化する場合は、システム側に多数のレジスタ（サイクリング回数をブロックごとに保持するレジスタ）が必要になり、これもまた負担となる。また、サイクリング回数によりＮＡＮＤ型フラッシュメモリの動作条件を変更する場合は、ＮＡＮＤ型フラッシュメモリ全体のサイクリング回数により動作条件が管理されるため、サイクリング回数が実際には少ないブロックに対しても新たな動作条件が適用されることになり、ＮＡＮＤ型フラッシュメモリのパフォーマンスの低下につながるという欠点がある。
【００１２】
本発明は、斯かる実情に鑑みなされたものであり、本発明の目的は、フラッシュメモリの個々のブロックごとにメモリセルの特性の劣化状態により、フラッシュメモリの動作条件を個々のブロックの劣化状態に応じて設定することができる、不揮発性半導体記憶装置、および不揮発性半導体記憶装置における動作条件制御方法を提供することにある。
【課題を解決するための手段】
【００１３】
本発明は、上記課題を解決するためになされたものであり、本発明の不揮発性半導体記憶装置は、フラッシュメモリ内のブロックに対してイレース動作を行う際に、イレース開始から前記ブロック内のメモリセルのイレースが完了するまでのイレース時間を計測する機能と、前記イレース時間と所定の判定基準値とを比較する機能と、前記ブロックにおいてイレース時間が前記判定基準値を上回った場合は、次に当該ブロックに対してアクセスする際に、前記フラッシュメモリの動作条件を所定の動作条件に変更してアクセスする機能と、を備えることを特徴とする。
【発明の効果】
【００１４】
本発明の不揮発性半導体記憶装置においては、イレース対象となるブロックにおけるイレース時間を判定（計測）し、このイレース時間が判定基準値を上回った場合は、次にそのブロックにアクセスする際には、フラッシュメモリの動作条件を所定の動作条件に変更する。
これにより、フラッシュメモリの個々のブロックごとにメモリセルの特性の劣化状態を検出でき、この特性劣化に応じた動作条件を、個々のブロックごとにフラッシュメモリに対して設定することができる。このため、フラッシュメモリの信頼性の向上を図ることができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１実施形態に係わる不揮発性半導体記憶装置の構成を示すブロック図である。
【図２】ＮＡＮＤ型フラッシュメモリの構成を示す図である。
【図３】メモリセルアレイの構成を示す図である。
【図４】サイクリング回数に対するプログラム時間ｔＰＲＯＧとイレース時間ｔＥＲＳの変化特性を示す図である。
【図５】フラッシュメモリにおける動作条件の変更とプログラム時間ｔＰＲＯＧの変化を示す図である。
【図６】条件テーブルの例を示す図である。
【図７】本発明の第２実施形態に係わる不揮発性半導体記憶装置の構成を示すブロック図である。
【図８】第２実施形態におけるＮＡＮＤ型フラッシュメモリの構成を示す図である。
【図９】第２実施形態における条件テーブルの例を示す図である。
【図１０】ＳＬＣの閾値Ｖｔの分布を示す図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施の形態を添付図面を参照して説明する。
［概要］
本実施形態の不揮発性半導体記憶装置においては、サイクリング回数ではなく、個々のブロック（メモリセルアレイに対してアクセス（例えば、プログラム等）する際の単位となるブロック）のイレース時間をモニタし、イレース時間が判定基準値を上回ったときのブロックアドレスを記憶し、そのブロックに次にアクセスする際に、ＮＡＮＤ型フラッシュメモリの動作条件を変更する。
【００１７】
すなわち、ＮＡＮＤ型フラッシュメモリは、サイクリングを重ねることでメモリセルの酸化膜が劣化することにより、チャージトラップが発生し、このチャージトラップに電子が捕獲されることで、メモリセルのプログラム時間は早くなっていく（プログラムしやすくなる）。逆に、イレース時間は長くなる（イレースしにくくなる）。
【００１８】
そこで、不揮発性半導体記憶装置では、イレース対象となるブロックにおいてイレース時間が判定基準値を上回ったとき、そのブロックアドレスを記憶し、次回よりそのブロックアドレスにアクセスするときには新しい所定の動作条件の適用をＮＡＮＤ型フラッシュメモリに要求する。上記動作条件とは、例えばプログラム／プログラムベリファイ／リード／イレース（Ｐｒｏｇａｒａｍ／Ｐｒｏｇａｒｍ  Ｖｅｒｉｆｙ／Ｒｅａｄ／Ｅｒａｓｅ）の際の動作条件である。なお、イレース時間の判定基準値は、ＮＡＮＤ型フラッシュメモリの動作条件を変更する度に、更新（増加）されるものである。
【００１９】
［第１実施形態］
（不揮発性半導体記憶装置の構成）
図１は、本発明の第１実施形態に係わる不揮発性半導体記憶装置の構成を示す図である。図１に示す不揮発性半導体記憶装置１は、ＮＡＮＤ型フラッシュメモリ（本明細書では、単に「フラッシュメモリ」とも呼ぶ）２０を有する不揮発性半導体記憶装置であり、本発明に直接関係する部分のみを示したものである。この図１に示すように、本実施形態の不揮発性半導体記憶装置１は、メモリセルがアレイ状に配列されたＮＡＮＤ型フラッシュメモリ２０と、このフラッシュメモリ２０を制御するコントローラ１０と、を有して構成される。また、ＮＡＮＤ型フラッシュメモリ２０は、メモリセルがアレイ状に配列されたメモリセルアレイ２１を有している。
【００２０】
コントローラ１０は、ＮＡＮＤ型フラッシュメモリ２０内のブロック（フラッシュメモリ２０内のメモリセルアレイ２１へアクセスする際の単位となるブロック）に対して、プログラムの実行指令等のコマンドを発行するとともに、フラッシュメモリ２０における動作条件を設定するためのコマンド（動作条件変更設定コマンドＣＭＤ）を発行する。ＮＡＮＤ型フラッシュメモリ２０は、コントローラ１０から入力したコマンドＣＭＤに含まれる動作条件の変更設定情報に従い、例えば、プログラム電圧や、リード電圧等の動作条件を設定する。また、ＮＡＮＤ型フラッシュメモリ２０は、後述するフラグＦ＿ＥＲＳ（イレース完了情報）の信号をコントローラ１０に出力する。
【００２１】
コントローラ１０は、フラッシュメモリ２０から入力したフラグＦ＿ＥＲＳを基に、イレース時間（ｔＥＲＳ）判定部１３により、イレース対象となるブロックにおけるイレース開始からフラグＦ＿ＥＲＳが出力されるまでの時間ｔＥＲＳを計測するとともに、時間ｔＥＲＳが所定の判定基準値（例えば、３ｍｓ）を上回ったか否かを判定する。
【００２２】
ブロックアドレス記憶部１２は、イレース時間判定部１３により、イレース対象となるブロックにおける時間ｔＥＲＳが所定の判定基準値（例えば、３ｍｓ）を上回ったと判定された場合に、当該ブロックのブロックアドレスと、当該ブロックにおいて時間ｔＥＲＳを上回った回数とを記憶する。
【００２３】
上記構成の不揮発性半導体記憶装置１において、ＮＡＮＤ型フラッシュメモリ２０内のブロックにアクセスする場合、コントローラ１０は、最初に、ブロックアドレス記憶部１２と、条件テーブル１１とを参照する。なお、条件テーブル１１には、後述するように、イレース時間ｔＥＲＳの判定基準値と、イレース時間ｔＥＲＳが判定基準値を上回った回数（補正回数）と、この上回った回数に対応して次回からの動作でそのブロックに適用されるべきフラッシュメモリ２０の動作条件と、が対応付けられて記憶されている（図６を参照）。そして、ブロックアドレス記憶部１２に当該ブロックのブロックアドレスが記憶されている場合に、コントローラ１０は、その回数（時間ｔＥＲＳが判定基準値を上回った回数）およびそれに対応する動作条件を条件テーブル１１から読み出す。コントローラ１０は、この条件テーブル１１から読み出した動作条件をＮＡＮＤ型フラッシュメモリ２０に対して設定し、その後に、所望の動作（リード／プログラム／イレース）を行う。
【００２４】
ＮＡＮＤ型フラッシュメモリ２０は、コントローラ１０から要求された動作条件変更設定指令（動作条件変更設定コマンドＣＭＤ）に応じて動作条件を変更できる機能を備える。動作条件の変更例としては、例えば、フラッシュメモリ２０は、プログラムストレス（Ｐｒｏｇｒａｍ  ｓｔｒｅｓｓ）の開始電圧（Ｖｉｐｇｍ）を変更する（下げる）。また、例えば、フラッシュメモリ２０は、メモリセルのゲート電圧を一定電圧Ｖｓｔｅｐ上昇させながらプログラムミングを行う増加型パルスプログラム（Ｉｎｃｒｅｍｅｎｔａｌ  Ｓｔｅｐ  Ｐｕｌｓｅ−Ｐｒｏｇｒａｍ：ＩＳＰＰ）サイクルにおける電圧ステップ幅（Ｖｓｔｅｐ）を変更する（小さくする）。これにより、フラッシュメモリ２０において、プログラム速度を抑え、過書き込み（オーバプログラミング）を防止する。
【００２５】
或いは、フラッシュメモリ２０は、リード時の非選択ワード線の電圧（Ｖｒｅａｄ）を変更する（高くする）。これにより、フラッシュメモリ２０は、メモリセルに対して多少過書き込みが発生しても、メモリセルからデータを読み出す際に、データを正常に読み出せるようにマージン（余裕度）を持つことができる。或いは、フラッシュメモリ２０は、プログラムベリファイ時の選択ワード線の電圧（Ｖｓｅｌ）を変更する（高くする）。メモリセルはサイクリングを重ねるとプログラムしやすくなるが同時に電荷保持特性も劣化するので、これに対して、フラッシュメモリ２０は、プログラムベリファイ時の選択ワード線の電圧（Ｖｓｅｌ）を変更（高くする）することにより、データを正常に読み出せるようにマージンを持つことができる。
【００２６】
図２は、ＮＡＮＤ型フラッシュメモリ２０の構成を示す図であり、本発明に関係する部分を示したものである。この図２に示すように、ＮＡＮＤ型フラッシュメモリ２０は、メモリセルアレイ２１と、ページバッファデコーダ２２Ａを備えるページバッファ２２と、ロウデコーダ２３とを有する。また、ＮＡＮＤ型フラッシュメモリ２０は、このＮＡＮＤ型フラッシュメモリ２０の全体の動作を統括して制御するメモリ制御回路３１と、動作条件変更設定部３２と、出力データバッファ３３と、入力データバッファ３４と、フラグ発生部３５と、イレース完了検出部３６と、動作電圧コントローラ３７と、を有している。
【００２７】
上記構成のＮＡＮＤ型フラッシュメモリ２０において、メモリセルアレイ２１は、図３に示すブロックを複数ブロック備えている。各ブロックは、図３に示すように、Ｎ＋１本のビット線ＢＬ０〜ＢＬＮ（ビット線ＢＬで総称）と、ｎ＋１本のワード線ＷＬ０〜ＷＬｎ（ワード線ＷＬで総称）と、共通ソース線ＣＳＬと、各ビット線ＢＬと共通ソース線ＣＳＬとの間にそれぞれ接続されたＮ＋１個のメモリストリングＳＴ０〜ＳＴＮ（メモリストリングＳＴで総称）と、を備える。各メモリストリングＳＴは、互いに直列接続されたｎ＋１個のフローティングゲート構造の電気的書き換え可能な不揮発性のメモリセルＭＣ０〜ＭＣｎを備え、ドレイン側のメモリセルＭＣｎは選択ゲートトランジスタＳＳ１を介して対応するビット線ＢＬに接続され、ソース側のメモリセルＭＣ０は選択ゲートトランジスタＧＳ１を介して共通ソース線ＣＳＬに接続される。また、同一行のメモリセルの制御ゲートは、共通のワード線ＷＬに接続されている。
【００２８】
図３に示すブロックにおいて、メモリセルの消去は、例えば、半導体基板に高電圧を印加し、ワード線ＷＬ０〜ＷＬｎに０Ｖを印加することにより行われる。これにより、例えばポリシリコンなどからなる電荷蓄積層であるフローティングゲートより電子を引き抜いて、メモリセルＭＣの閾値電圧を消去閾値電圧ＶｔＬ（例えば、−１Ｖ）に設定する。一方、書き込み（プログラム）においては、例えば、ソース及びドレインに０Ｖを与え、制御ゲート（選択したワード線ＷＬ）に高電圧を印加することにより、フローティングゲートに電子を注入し、閾値電圧を上昇させて書込閾値電圧ＶｔＨに設定する。そして、メモリセルＭＣ０〜ＭＣｎの閾値電圧が閾値電圧ＶｔＬの場合、当該メモリセルのデータ値を“１”とし、閾値電圧が閾値電圧ＶｔＨの場合、当該メモリセルのデータ値を“０”とする。
【００２９】
また、メモリセルからデータを読み出すときには、全てのビット線ＢＬを所定の電圧でプリチャージした後に、閾値ＶｔＬとＶｔＨ間の読み出し電圧を、読み出し対象のメモリセルＭＣに共通に接続されたワード線ＷＬを介して、選択メモリセルの各制御ゲートに印加する。また、高電圧を、上記選択メモリセル以外のメモリセルＭＣおよび選択トランジスタＳＳ１，ＧＳ１の各制御ゲートに印加して、上記選択メモリセル以外のメモリセルＭＣならびに選択ゲートトランジスタＳＳ１，ＧＳ１を導通させる。従って、選択メモリセルのデータ値が“１”のときには、当該選択メモリセルにセル電流が流れる一方、選択メモリセルのデータ値が“０”のときには、当該選択メモリセルにセル電流が流れないので、セル電流が流れるか否かに基づいて、各選択メモリセルに書き込まれているデータを読み出すことができる。
【００３０】
また、図２に示すＮＡＮＤ型フラッシュメモリ２０において、動作条件変更設定部３２は、コントローラ１０から入力したコマンド（動作条件変更設定コマンド）ＣＭＤが指示する動作条件に従い、ＮＡＮＤ型フラッシュメモリ２０における動作条件を設定する。また、出力データバッファ３３は、メモリセルアレイ２１から読み出したデータの外部出力用のバッファ回路であり、外部装置との接続線となるデータ入出線（Ｉ／Ｏｓ）にデータを出力する。入力データバッファ３４は、同じくデータ入出線（Ｉ／Ｏｓ）に接続され、外部装置からのデータの入力、アドレス信号の入力、及び動作制御のコマンド等の入力に使用されるバッファ回路である。
【００３１】
イレース完了検出部３６は、イレース対象となるブロックにおけるイレース動作において、このブロック内の全てのメモリセルがイレースされた場合に、このブロックのイレースが完了したことを示す情報（イレース完了情報）をフラグ発生部３５に出力する。フラグ発生部３５は、イレース完了検出部３６からイレース完了情報が入力された場合に、イレース対象となるブロックにおいてイレースが完了したことを示すフラグＦ＿ＥＲＳを生成して、コントローラ１０に出力する。
【００３２】
動作電圧コントローラ３７は、データ書き換え（プログラム）、消去（イレース）、読み出し（リード）等の動作時に用いる昇圧された高電圧や中間電圧を発生する。この動作電圧コントローラ３７で生成された電圧信号は、信号Ｖｒｅａｄ、Ｖｐｇｍ、Ｖｅｒｓ等としてロウデコーダ２３とページバッファ２２に出力される。この動作電圧コントローラ３７における電圧信号の発生動作は、メモリセルＭＣからのデータの読み出し（リード）、書き換え（プログラム）及び消去（イレース）動作等に応じて、メモリ制御回路３１および動作条件変更設定部３２から出力される制御指令に基づいて行われる。
【００３３】
［本実施形態の不揮発性半導体記憶装置の動作説明］
上述したように、ＮＡＮＤ型フラッシュメモリ２０は、サイクリングを重ねることでメモリセルの酸化膜にチャージトラップが発生し、メモリセルのプログラム時間は早くなっていく（プログラムしやすくなる）。一方で、イレース時間は長くなっていく（イレースしにくくなる）。
【００３４】
そこで、不揮発性半導体記憶装置１では、イレース対象となるブロックにおいてイレース時間ｔＥＲＳを計測し、このイレース時間ｔＥＲＳが判定基準値を上回ったとき、そのブロックアドレスを記憶し、次回よりそのブロックアドレスにアクセスするときには新しい動作条件を適用するようにＮＡＮＤ型フラッシュメモリ２０に要求する。上記動作条件とは、例えばプログラム／プログラムベリファイ／リード／イレース（Ｐｒｏｇａｒａｍ／Ｐｒｏｇａｒｍ  Ｖｅｒｉｆｙ／Ｒｅａｄ／Ｅｒａｓｅ）の際の動作条件である。なお、イレース時間ｔＥＲＳは、イレース対象となるブロックにおけるイレース開始からフラグＦ＿ＥＲＳが出力されるまでの時間で定義されるものである。
【００３５】
図４は、サイクリング回数に対するプログラム時間ｔＰＲＯＧとイレース時間ｔＥＲＳの変化特性を示す図である。この図４では、横軸にサイクリング回数（ｌｏｇスケール）を示し、縦軸に時間を示している。なお、縦軸に示す時間は、ｔＰＲＯＧとｔＥＲＳのそれぞれの特性曲線に応じたＡ．Ｕ.（任意単位）である。
【００３６】
この図４に示すように、サイクリング回数０からＮ１の間では、プログラム時間ｔＰＲＯＧとイレース時間ｔＥＲＳのそれぞれが、ほぼ一定で推移する。そして、サイクリング回数Ｎ１以降、フラッシュメモリ２０は、サイクリングを重ねることでメモリセルの酸化膜にチャージトラップが発生し、メモリセルのプログラム時間ｔＰＲＯＧは短くなっていく（プログラムしやすくなる）。また、逆にイレース時間ｔＥＲＳは長くなっていく（イレースしにくくなる）。
【００３７】
そして、時間ｔＥＲＳが長くなり、判定基準値（基準値１）を上回ったとき（サイクリング回数Ｎ２のとき）に、コントローラ１０は、フラッシュメモリ２０にコマンドＣＭＤを発行し、フラッシュメモリ２０における動作条件を変更する。なお、基準値２については、次の図５で説明する。
【００３８】
図５は、フラッシュメモリにおける動作条件の変更とプログラム時間ｔＰＲＯＧの変化を示す図である。この図５では、図４と同様に、横軸にサイクリング回数（ｌｏｇスケール）、縦軸に時間（Ａ．Ｕ．）を示している。
この図５に示すように、サイクリング回数０からＮ１の間では、プログラム時間ｔＰＲＯＧとイレース時間ｔＥＲＳのそれぞれが、ほぼ一定で推移する。そして、サイクリング回数Ｎ１以降、フラッシュメモリ２０において、サイクリングを重ねることでメモリセルの酸化膜にチャージトラップが発生し、メモリセルのプログラム時間ｔＰＲＯＧは短くなっていく（プログラムしやすくなる）。また、逆にイレース時間ｔＥＲＳは長くなっていく。
【００３９】
そして、サイクリング回数Ｎ２において、時間ｔＥＲＳが長くなり、判定基準値（基準値１）を上回ったときに、コントローラ１０は、フラッシュメモリ２０にコマンドＣＭＤを発行し、フラッシュメモリ２０における動作条件を変更する。また、コントローラ１０は、判定基準値を基準値１から基準値２（基準値２＞基準値１）に更新する。そして、フラッシュメモリ２０における動作条件を変更することにより、プログラム時間ｔＰＲＯＧは、一旦、元の時間（サイクリング回数Ｎ１以下のｔＰＲＯＧの時間）まで復帰する。
【００４０】
サイクリング回数Ｎ２において動作条件を変更した後、さらにサイクリング回数を重ねることにより、メモリセルのプログラム時間ｔＰＲＯＧは次第に短くなり、イレース時間ｔＥＲＳはさらに長くなっていく。そして、サイクリング回数Ｎ３において、時間ｔＥＲＳが長くなり、判定基準値（基準値２）を上回ったときに、コントローラ１０は、フラッシュメモリ２０にコマンドＣＭＤを発行し、フラッシュメモリ２０における動作条件を再び変更する。そして、フラッシュメモリ２０における動作条件を変更することにより、プログラム時間ｔＰＲＯＧは、元の時間に復帰する。このように、コントローラ１０は、ＮＡＮＤ型フラッシュメモリ２０から出力されるフラグＦ＿ＥＲＳをモニタして、イレース時間ｔＥＲＳが判定基準値（更新される判定基準値）を超えるごとにＮＡＮＤ型フラッシュメモリ２０における動作条件を変更する。
【００４１】
上記フラッシュメモリ２０おける動作条件を変更するために、コントローラ１０内の条件テーブル１１には、時間ｔＥＲＳの判定基準値と、イレース時間ｔＥＲＳが判定基準値を上回った回数（補正回数）と、この上回った回数に対応する次回からの動作でそのブロックに適用されるべきフラッシュメモリ２０の動作条件と、が対応付けられて記憶されている。
【００４２】
図６は、条件テーブルの一例を示す図である。この図６に示す表には、判定基準値と、補正回数（イレース時間ｔＥＲＳが判定基準値を上回った回数）と、この補正回数に対応するＮＡＮＤ型フラッシュメモリ２０の動作条件（リード時、プログラム時、ベリファイプログラム時、およびイレース時における動作条件）が示されている。なお、この表において、リード時の電圧Ｖｒｅａｄは、リード時の非選択ワード線の初期電圧を示し、プログラム時の電圧Ｖｉｐｇｍは、プログラム時の初期電圧を示している。また、プログラムベリファイ時の電圧Ｖｐａｓｓは、プログラムベリファイ時の非選択ワード線の初期電圧を示し、電圧Ｖｓｅｌは、選択ワード線の初期電圧を示している。また、イレース時の電圧Ｖｅｒｓは、メモリセルのイレース時の消去電圧（初期電圧）を示している。
【００４３】
この図６に示すように、イレース時間ｔＥＲＳが１番目の判定基準時間（３ｍｓ）よりも長くなった時（図５に示すサイクリング回数Ｎ２のとき）に、１回目の動作条件の補正が行われる。この補正１回目では、リード時の非選択ワード線の電圧Ｖｒｅａｄを初期電圧Ｖｒｅａｄから０．１Ｖ増加させてＶｒｅａｄ１とする（Ｖｒｅａｄ１＝Ｖｒｅａｄ＋０．１Ｖ）。これは、フラッシュメモリの酸化膜が劣化することにより、プログラム速度が速くなり（プログラム電圧が低下し）、メモリセルがオーバプログラミング（閾値Ｖｔが上昇）されている可能性があるため、非選択ワード線の電圧Ｖｒｅａｄを上昇させて対応するものである。
【００４４】
また、この補正１回目では、プログラム時の初期電圧Ｖｉｐｇｍを初期電圧Ｖｉｐｇｍから１．０Ｖ減少させてＶｉｐｇｍ１（Ｖｉｐｇｍ１＝Ｖｉｐｇｍ−１．０Ｖ）とする。これは、フラッシュメモリの酸化膜が劣化することにより、プログラム速度が速くなり、メモリセルがオーバプログラミングされることを防ぐために、プログラム電圧Ｖｉｐｇｍを低下させて対応するものである。
【００４５】
また、補正１回目では、増加型パルスプログラム（ＩＳＰＰ）サイクルにおけるステップ電圧Ｖｓｔｅｐ１を、初期電圧Ｖｓｔｅｐのままとする（Ｖｓｔｅｐ１＝Ｖｓｔｅｐ）。なお、増加型パルスプログラム（ＩＳＰＰ）は、メモリセルのゲートに印加する電圧をステップ状に増加させて書き込みを行う方式であり、ＮＡＮＤ型フラッシュメモリ２０において、プログラム電圧をループ毎に一定値ずつ増加させて、所望のメモリセルへのデータの書き込みを行うものである。
【００４６】
また、補正１回目では、プログラムベリァイ時の非選択ワード線の電圧Ｖｐａｓｓを、初期電圧Ｖｐａｓｓから０．１Ｖ増加させてＶｐａｓｓ１（Ｖｐａｓｓ１＝Ｖｐａｓｓ＋０．１Ｖ）とする。これは、フラッシュメモリの酸化膜が劣化することにより、閾値Ｖｔが低下することがあるため、逆に、ベリファイ時における非選択ワード線の電圧Ｖｐａｓｓを上昇させて対応するものである。また、プログラムベリァイ時の電圧Ｖｓｅｌを、初期電圧Ｖｓｅｌから０．１Ｖ増加させてＶｓｅｌ１（Ｖｓｅｌ１＝Ｖｓｅｌ＋０．１Ｖ）とし、イレース時の電圧Ｖｅｒｓ１は初期電圧Ｖｅｒｓのままとする（Ｖｅｒｓ１＝Ｖｅｒｓ）。なお、この例では、イレース時の電圧Ｖｅｒｓ１を初期電圧Ｖｅｒｓのままにしているが、メモリセルがオーバプログラミングされている可能性を考慮して増加させるようにしてもよい。
【００４７】
次に、イレース時間ｔＥＲＳが２番目の判定基準値（４ｍｓ）よりも長く短くなった時（図５に示すサイクリング回数Ｎ３のとき）に、２回目の動作条件の補正が行われる。この補正２回目では、リード時の非選択ワード線の電圧Ｖｒｅａｄを、初期電圧Ｖｒｅａｄから０．２Ｖ増加させてＶｒｅａｄ２（Ｖｒｅａｄ２＝Ｖｒｅａｄ＋０．２Ｖ）とする。また、プログラム電圧Ｖｉｐｇｍを、初期電圧Ｖｉｐｇｍから−１．５Ｖ減少させてＶｉｐｇｍ２（Ｖｉｐｇｍ２＝Ｖｉｐｇｍ−１．５Ｖ）とする。また、ＩＳＰＰサイクルにおけるステップ電圧Ｖｓｔｅｐを、初期電圧Ｖｓｔｅｐから０．１Ｖ減少させてＶｓｔｅｐ２（Ｖｓｔｅｐ２＝Ｖｓｔｅｐ−０．１Ｖ）とする。
【００４８】
また、補正２回目では、プログラムベリァイ時の非選択ワード線の電圧Ｖｐａｓｓを、初期電圧Ｖｐａｓｓから０．２Ｖ増加させてＶｐａｓｓ２（Ｖｐａｓｓ２＝Ｖｐａｓｓ＋０．２Ｖ）とする。また、プログラムベリァイ時の電圧Ｖｓｅｌを、初期電圧Ｖｓｅｌから０．１Ｖ増加させてＶｓｅｌ２（Ｖｓｅｌ２＝Ｖｓｅｌ＋０．１Ｖ）とする。なお、イレース時の電圧Ｖｅｒｓ２は初期電圧Ｖｅｒｓのままとする（Ｖｅｒｓ２＝Ｖｅｒｓ）。
【００４９】
同様にして、コントローラ１０では、時間ｔＥＲＳが判定基準値（５ｍｓ、・・・）を上回ったことを検出するごとに、３回目、４回目、・・・・と順番に補正を繰り返す。
【００５０】
上述のように、ＮＡＮＤ型フラッシュメモリ２０を使用する不揮発性半導体記憶装置１は、フラッシュメモリ２０からフラグＦ＿ＥＲＳが出力される時間ｔＥＲＳを判定し、時間ｔＥＲＳが判定基準値を上回った場合、コントローラ１０は、判定基準値を所定の値に更新（長く）するとともに、そのブロックアドレス及びイレース時間ｔＥＲＳが判定基準値を上回った回数（補正回数）をブロックアドレス記憶部１２に記憶する（初回目ならば１、２回目ならば２、３回目ならば３、・・・・）。
【００５１】
そして、不揮発性半導体記憶装置１のコントローラ１０は、次にそのブロックにアクセスする場合、条件テーブル１１に記憶している補正回数及びそれに対応する動作条件を読み出し、その読み出した動作条件をまずＮＡＮＤ型フラッシュメモリ２０に対して設定し、その後に、所望の動作（リード／プログラム／イレース）を行う。
【００５２】
なお、図６に示す条件テーブルにおける動作条件の設定値は、例えば、実験データにより決定することができる。また、図６に示す条件テーブル１１は、一例を示すものであって、不揮発性半導体記憶装置の種類や構成に応じて、その設定値は、変更される得るものである。
また、あるブロックにおける補正回数が増大（特性劣化が進行）した場合は、当該ブロックを使用しないようにすることができる。これにより、フラッシュメモリ２０の寿命を延ばすとともに、フラッシュメモリ２０における信頼性の向上を図ることができる。
【００５３】
以上、説明したように、本実施形態の不揮発性半導体記憶装置においては、サイクリング回数ではなく、個々のブロックのイレース時間ｔＥＲＳをモニタし、イレース時間ｔＥＲＳが判定基準値を上回ったときに、当該ブロックアドレスを記憶してそのブロックに対してのみ動作条件を変更する。
【００５４】
すなわち、ＮＡＮＤ型フラッシュメモリ２０は、サイクリングを重ねることでメモリセルの酸化膜にチャージトラップが発生し、メモリセルのプログラム時間は早くなっていく（プログラムしやすくなる）。逆に、イレース時間は長くなる（イレースしにくくなる）。そこで、不揮発性半導体記憶装置１では、イレース対象となるブロックにおいてイレース時間が判定基準値を上回ったとき、そのブロックアドレス及びそのブロックに次回から適用すべき動作条件を記憶し、次回よりそのブロックアドレスにアクセスするときには新しい動作条件適用をＮＡＮＤ型フラッシュメモリ２０に指示する。
【００５５】
このように、本実施形態の不揮発性半導体記憶装置１においては、ＮＡＮＤ型フラッシュメモリ２０上での個々のブロックのサイクリング回数を記憶しておく必要がないのでレジスタ領域が少なくてすむ。また、個々のブロックごとにメモリセルの特性の劣化状態の管理することができるので、平均のサイクリング回数を利用してＮＡＮＤ型フラッシュメモリ２０の動作条件を変更する場合に比べて、ＮＡＮＤ型フラッシュメモリ２０の全体の特性劣化を招くことがなく、ＮＡＮＤ型フラッシュメモリ２０の信頼性の向上を図ることができる。
【００５６】
［第２実施形態］
次に、本発明の第２実施形態として、第１実施形態におけるＮＡＮＤ型フラッシュメモリ２０がフラグＦ＿ＥＲＳをコントローラ１０に出力する方法に替えて、フラッシュメモリ２０が判定基準値（更新される判定基準値）に応じたフラグ値をコントローラ１０に出力する例について説明する。これにより、コントローラ１０は、イレース時間を判定（計測）する必要がなくなり、コントローラ１０における制御が簡単になる。
【００５７】
図７は、本発明の第２の実施形態に係わる不揮発性半導体記憶装置１Ａの構成を示す図である。図７に示す不揮発性半導体記憶装置１Ａは、図１に示す不揮発性半導体記憶装置１と比較して、図１に示すコントローラ１０内のイレース時間（ｔＥＲＳ）１３を省略した点と、図１に示す条件テーブル１１とブロックアドレス記憶部１２とを図７に示す条件テーブル１１Ａとブロックアドレス記憶部１２Ａに変更した点が異なる。また、図１に示すＮＡＮＤ型フラッシュメモリ２０からフラグＦ＿ＥＲＳを出力するのに替えて、図７に示すＮＡＮＤ型フラッシュメモリ２０Ａから、フラグ値ＲｎＢを出力するように変更した点が異なる。他の構成は、図１に示す不揮発性半導体記憶装置１と同様である。
【００５８】
また、図８は、本発明の第２実施形態に係わるＮＡＮＤ型フラッシュメモリ２０Ａの構成を示す図である。図８に示すＮＡＮＤ型フラッシュメモリ２０Ａは、図２に示すＮＡＮＤ型フラッシュメモリ２０と比較して、図２に示すフラグ発生部３５を、図８に示すフラグ値生成部３５Ａに変更した点が異なる。
【００５９】
すなわち、図２に示す第１実施形態のＮＡＮＤ型フラッシュメモリ２０においては、イレース対象となるブロックにおいてイレースが完了した場合に、フラグ発生部３５が、イレースが完了したことを示すフラグＦ＿ＥＲＳを生成してコントローラ１０に出力するように構成されている。
一方、図８に示すＮＡＮＤ型フラッシュメモリ２０Ａにおいては、イレース対象となるブロックにおいてイレースが完了した場合に、フラグ値生成部３５Ａは、イレース時間ｔＥＲＳ応じたフラグ値ＲｎＢを生成してコントローラ１０Ａに出力するように構成されている。
【００６０】
このフラグ値生成部３５Ａは、イレース完了検出部３６からイレース完了情報を受け取ると、このイレース完了情報を基に、当該ブロックにおけるイレース時間ｔＥＲＳを判定（計測）する。また、このフラグ値生成部３５Ａは、複数の判定基準値「判定基準値１，判定基準値２（＞判定基準値１），判定基準値３（＞判定基準値２），・・・，判定基準値ｎ」を予め保持しており、判定（計測）したイレース時間ｔＥＲＳを、それぞれの判定基準値と比較し、その比較結果を基にフラグ値ＲｎＢを生成する。
【００６１】
例えば、フラグ値生成部３５Ａは、イレース時間ｔＥＲＳが判定基準値１よりも大きく判定基準値２よりも小さい場合（判定基準値１＜ｔＥＲＳ＜判定基準値２）には、フラグ値“０１”を生成してコントローラ１０Ａに出力する。また、フラグ値生成部３５Ａは、イレース時間ｔＥＲＳが判定基準値２よりも大きく判定基準値３よりも小さい場合（判定基準値２＜ｔＥＲＳ＜判定基準値３）には、フラグ値“０２”を生成して出力する。このように、フラグ値生成部３５Ａは、イレース時間ｔＥＲＳが判定基準値１を超える場合に、その判定基準値の大きさに応じたフラグ値を生成してコントローラ１０Ａに出力する。
【００６２】
コントローラ１０Ａは、イレース対象となるブロックに対してイレースを開始した後にフラッシュメモリ２０からフラグ値ＲｎＢを受け取ると、当該ブロックのブロックアドレスと、フラグ値ＲｎＢとを対応付けてブロックアドレス記憶部１２Ａに記憶する。また、コントローラ１０Ａは、図９に示す条件テーブル１１Ａを備えている。この図９に示す条件テーブル１１Ａは、図６に示す条件テーブル１１と比較して、図６に示す表中の補正回数（１，２、３，・・・，ｎ）を、図９に示すフラグ値（０１，０２，０３，・・・，ＦＦ）に変更した点が異なる。他の項目については図６と同様である。この条件テーブル１１Ａには、イレース時間ｔＥＲＳと、フラグ値ＲｎＢと、フラグ値ＲｎＢに応じたフラッシュメモリ２０Ａの動作条件と、が対応付けされて記憶されている。
【００６３】
そして、ＮＡＮＤ型フラッシュメモリ２０Ａ内のブロックに対してアクセスを開始する場合に、コントローラ１０Ａは、まずブロックアドレス記憶部１２Ａを参照し、当該ブロックのブロックアドレスがブロックアドレス記憶部１２Ａに記憶されているか否かを判定する。コントローラ１０Ａは、アクセスしようとするブロックのブロックアドレスがブロックアドレス記憶部１２Ａに記憶されている場合に、このブロックアドレスに対応して記憶されているフラグ値ＲｎＢを読み出し、このフラグ値ＲｎＢを基に条件テーブル１１Ａを参照して、フラッシュメモリ２０Ａに適用すべき動作条件を読み出す。コントローラ１０Ａは、条件テーブル１１Ａから読み出した動作条件を、このブロックに対して適用するようにフラッシュメモリ２０Ａに要求する。
そして、コントローラ１０Ａは、要求した動作条件がフラッシュメモリ２０Ａに設定された後に、フラッシュメモリ２０Ａのブロックへのアクセスを開始する。
【００６４】
このように、第２実施形態の不揮発性半導体記憶装置１Ａでは、フラッシュメモリ２０Ａがイレース時間ｔＥＲＳと判定基準値（複数の判定基準値）を比較し、その比較結果をフラグ値ＲｎＢとしてコントローラ１０Ａに出力するので、これにより、コントローラ１０側でイレース時間ｔＥＲＳの判定を行う必要がなくなり、また、イレース時間ｔＥＲＳと判定基準値との比較を行う必要もなくなり、コントローラ１０Ａにおける制御が簡単化される。
【００６５】
以上本発明の実施形態について説明したが、ここで、本発明と上記実施形態の対応について補足して説明しておく。上記実施形態において、本発明における不揮発性半導体記憶装置は、図１に示す不揮発性半導体記憶装置１が対応し、本発明におけるフラッシュメモリは、ＮＡＮＤ型フラッシュメモリ（単に「フラッシュメモリ」とも呼ぶ）２０が対応する。また、本発明における制御部は、図１に示すコントローラ１０が対応し、本発明における条件テーブルは、条件テーブル１１が対応し、本発明におけるブロックアドレス記憶部は、ブロックアドレス記憶部１２が対応し、本発明におけるイレース時間判定部は、イレース時間判定部１３が対応する。
【００６６】
（１）そして、上記実施形態において、不揮発性半導体記憶装置１は、フラッシュメモリ２０内のブロックに対してイレース動作を行う際に、イレース開始からブロック内のメモリセルのイレースが完了するまでのイレース時間ｔＥＲＳを計測する機能と、イレース時間ｔＥＲＳと所定の判定基準値とを比較する機能と、上記ブロックにおいてイレース時間ｔＥＲＳが判定基準値を上回った場合は、次に当該ブロックに対してアクセスする際に、フラッシュメモリ２０の動作条件を所定の動作条件に変更してアクセスする機能と、を備える。
このような構成の不揮発性半導体記憶装置１では、イレース対象となるブロックにおけるイレース時間ｔＥＲＳを判定（計測）し、このイレース時間ｔＥＲＳが判定基準値を上回ったときに、当該ブロックのブロックアドレスを記憶しておき、次にそのブロックにアクセスする際には、フラッシュメモリ２０の動作条件を所定の動作条件に変更する。
これにより、フラッシュメモリ内の個々のブロックごとにメモリセルの特性劣化状態を検出でき、この特性劣化に応じた動作条件を個々のブロックごとに、フラッシュメモリ２０に対して設定することができる。また、メモリセルが劣化していないブロックに対しては通常の動作条件を設定できる。さらには、劣化の程度が大きい（劣化が進んだ）ブロックを使用しないようにすることもできる。このため、フラッシュメモリ２０の全体の特性劣化を招くことがなく、フラッシュメモリの寿命を延ばすとともに、フラッシュメモリ２０の信頼性の向上を図ることができる。
【００６７】
（２）また、上記実施形態において、不揮発性半導体記憶装置１は、メモリセルがアレイ状に配列されたメモリ領域を有するフラッシュメモリ２０とフラッシュメモリ２０の動作を制御する制御部（コントローラ１０）とを有し、フラッシュメモリ２０は、イレース対象となるブロック内のメモリセルのイレースが完了したときに、このイレースが完了したことを示すイレース完了情報（フラグＦ＿ＥＲＳ）を外部（コントローラ１０）に出力する機能と、外部（コントローラ１０）からの要求に応じて当該フラッシュメモリ２０における動作条件を変更する機能と、を備え、制御部（コントローラ１０）は、フラッシュメモリ２０から出力されるイレース完了情報（フラグＦ＿ＥＲＳ）をモニタすることにより、イレース対象となるブロックにおけるイレースの開始からイレースが完了するまでに要したイレース時間ｔＥＲＳを判定する機能と、イレース時間ｔＥＲＳと判定基準値とを比較する機能と、上記イレース対象となるブロックにおいてイレース時間ｔＥＲＳが判定基準値を上回った場合に、当該ブロックのブロックアドレスを記憶するとともに、次回より当該ブロックにアクセスする際には、フラッシュメモリ２０の動作条件を所定の動作条件に変更するようにフラッシュメモリ２０に要求する機能と、を備える。
【００６８】
このような構成の不揮発性半導体記憶装置１では、フラッシュメモリ２０は、イレース対象となるブロック内のメモリセルのイレースが完了したときに外部にイレース完了情報（フラグＦ＿ＥＲＳ）を出力する。また、フラッシュメモリ２０は、外部（コントローラ１０）からの要求に応じて動作条件を変更することができる。
制御部（コントローラ１０）では、フラッシュメモリ２０から出力されるイレース完了情報（フラグＦ＿ＥＲＳ）をモニタして、イレース時間ｔＥＲＳ（イレース開始からフラグＦ＿ＥＲＳされるまでの時間）を判定する。そして、制御部（コントローラ１０）は、時間ｔＥＲＳが判定基準値上回ったとき、そのブロックアドレス及びそのブロックに次回から適用すべき動作条件を記憶し、次回よりそのブロックにアクセスするときには新しい動作条件を適用するようにフラッシュメモリ２０に要求する。上記動作条件とは、例えばプログラム／プログラムベリファイ／リード／イレース（Ｐｒｏｇａｒａｍ／Ｐｒｏｇａｒｍ  Ｖｅｒｉｆｙ／Ｒｅａｄ／Ｅｒａｓｅ）の際の動作条件である。
これにより、フラッシュメモリにおける個々のブロックのサイクリング回数を記憶することなく、個々のブロックごとにメモリセルの特性の劣化を検出し、フラッシュメモリの動作条件を個々のブロックの劣化状態に応じて設定することができる。このため、フラッシュメモリの寿命を延ばすとともに、フラッシュメモリの信頼性の向上を図ることができる。
【００６９】
（３）また、上記実施形態において、前記制御部（コントローラ１０）は、フラッシュメモリ２０内のブロックにおいてイレース時間ｔＥＲＳが判定基準値を上回る毎に、ブロックに対する判定基準値を所定時間長くして更新するととともに、次にブロックに対してアクセスする際、フラッシュメモリ２０に対して異なる動作条件を設定する。
【００７０】
このような構成の不揮発性半導体記憶装置１では、ある１のブロックにおいて、イレース時間ｔＥＲＳが判定基準値を上回った場合に、判定基準値の時間を延長して更新するとともに、この１のブロックに対するフラッシュメモリ２０の動作条件を変更する。そして、判定基準値を更新した後に、当該１のブロックにおいてレース時間ｔＥＲＳが判定基準値を再び上回るようになった場合は、当該１のブロックに対する判定基準値をさらに延長して更新するとともに、フラッシュメモリ２０の動作条件を再び延長して更新する。以降、当該１のブロックにおいてイレース時間ｔＥＲＳが判定基準値を上回るごとに、判定基準値を延長して更新するとともに、この上回った回数に応じて予め設定（保持）された動作条件をフラッシュメモリ２０に対して設定する。
これにより、あるブロックにおいて、メモリセルの特性劣化が進行する場合には、このブロックに対して、メモリセルの特性劣化の状態に応じた動作条件を設定することができる。このため、フラッシュメモリの信頼性の向上を図ることができる。
【００７１】
（４）また、上記実施形態において、不揮発性半導体記憶装置１は、イレース対象となるブロックにおけるイレース開始からイレースが完了するまでのイレース時間ｔＥＲＳを判定し、このイレース時間ｔＥＲＳと判定基準値とを比較するとともに、イレース時間ｔＥＲＳが判定基準値を上回った場合に、当該ブロックに対する判定基準値の時間を延長して更新するイレース時間判定部１３と、イレース対象となるブロックにおいてイレース時間ｔＥＲＳが判定基準値を上回った場合に、当該ブロックのブロックアドレスと、当該ブロックにおいてイレース時間ｔＥＲＳが判定基準値を上回った回数である補正回数と、を対応付けて記憶するブロックアドレス記憶部１２と、この補正回数と、この補正回数に応じて更新設定される判定基準値と、同じくこの補正回数に応じてフラッシュメモリ２０に対して適用されるべき動作条件と、を対応付け保存する条件テーブル１１と、を備え、制御部（コントローラ１０）は、フラッシュメモリ２０内のブロックに対してアクセスを開始する前に、ブロックアドレス記憶部１２と条件テーブル１１とを参照し、当該ブロックのブロックアドレスがブロックアドレス記憶部１２に記憶されている場合は、当該ブロックの補正回数に応じた動作条件を条件テーブル１１から抽出し、この抽出した動作条件をフラッシュメモリ２０に対して設定した後に、当該ブロックに対してアクセスを開始する。
【００７２】
このような構成の不揮発性半導体記憶装置１では、イレース時間判定部１３により、イレース対象となるブロックにおけるイレース開始からイレース完了情報（フラグＦ＿ＥＲＳ）が出力されるまでのイレース時間ｔＥＲＳを判定（計測）するとともに、該イレース時間ｔＥＲＳを判定基準値と比較する。また、イレース時間判定部１３は、イレース時間ｔＥＲＳが判定基準値を上回ったブロックに対して、判定基準値の時間を延長して更新する。また、ブロックアドレス記憶部１２は、イレース時間ｔＥＲＳが判定基準値を上回ったブロックのブロックアドレスを、当該ブロックにおいてイレース時間ｔＥＲＳが判定基準値を上回った回数（補正回数）とともに記憶する。条件テーブル１１は、上記補正回数と、この補正回数に応じて更新設定される判定基準値と、同じくこの補正回数に応じてフラッシュメモリ２０に対して適用されるべき動作条件と、を対応付け保存する。
そして、制御部（コントローラ１０）は、フラッシュメモリ２０内のブロックにアクセスを開始する前に、ブロックアドレス記憶部１２と条件テーブル１１とを参照し、当該ブロックのブロックアドレスがブロックアドレス記憶部１２に記憶されている場合は、当該ブロックの補正回数に応じた動作条件を抽出し、この抽出した動作条件をフラッシュメモリ２０に対して設定した後に、当該ブロックに対するアクセスを開始する。
これにより、あるブロックにおいてメモリセルの特性が劣化した場合は、このブロックのブロックアドレスを保存するとともに、このブロック内のメモリセルの特性劣化に応じた動作条件をフラッシュメモリ２０に対して設定することができる。
【００７３】
（５）また、上記実施形態において、アクセスする際に変更する動作条件は、フラッシュメモリ２０のブロックに対してプログラム、プログラムベリファイ、リード、イレースのいずれか、または全部の処理を行う際の動作条件である
これにより、あるブロックにおいて、メモリセルの特性が劣化した場合には、このメモリセルの劣化状態に応じて、プログラム時、プログラムベリファイ時、リード時、およびイレース時の動作条件（例えば、プログラム電圧、リード電圧、ベリファイ電圧等の電圧条件）等を適切に設定することができる。
【００７４】
以上、本発明の実施の形態について説明したが、本発明の不揮発性半導体記憶装置は、上述の図示例にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【００７５】
例えば、上述した実施形態では、フラッシュメモリがＮＡＮＤ型フラッシュメモリの例を示したが、フラッシュメモリは、ＮＯＲ型のフラッシュメモリであってもよい。
また、本発明は、上述した不揮発性半導体記憶装置に限らず、フラッシュメモリを内蔵する種々のシステムに効果的に適用できるものである。
【符号の説明】
【００７６】
１，１Ａ…不揮発性半導体記憶装置、１０，１０Ａ…コントローラ、１１，１１Ａ…条件テーブル、１２，１２Ａ…ブロックアドレス記憶部、１３…イレース時間判定部、２０，２０Ａ…フラッシュメモリ、２１…メモリセルアレイ、２２…ページバッファ、２２Ａ…ページバッファデコーダ、２３…ロウデコーダ、３１…メモリ制御回路、３２…動作条件変更設定部、３３…出力データバッファ、３４…入力データバッファ、３５…フラグ発生部、３５Ａ…フラグ値生成部、３６…イレース完了検出部、３７…動作電圧コントローラ
【図１】
2013125575.tif 000003
【図２】
2013125575.tif 000004
【図３】
2013125575.tif 000005
【図４】
2013125575.tif 000006
【図５】
2013125575.tif 000007
【図６】
2013125575.tif 000008
【図７】
2013125575.tif 000009
【図８】
2013125575.tif 000010
【図９】
2013125575.tif 000011
【図１０】
2013125575.tif 000012