(57)【要約】【目的】メモリの動作効率を下げることなくデータの書き込みに適さない不安定な状態にあるメモリ領域を検出することが可能な半導体メモリの制御装置及び不安定メモリ領域の検出方法を提供することを目的とする。【構成】メモリの単位領域の各々から第１回目のデータの読み出しを行ってその単位領域が消去状態にあるか否かを判定し、引き続きデータの値を決定する為の閾値を変更して、消去状態にあると判定された単位領域から第２回目のデータ読み出しを行う。そして、この第２回目に読み出されたデータに対して誤り検出を行い、検出された誤りビットの総数が所定値よりも大きい場合に、この単位領域が不安定な状態にあると判定する。【選択図】図１
2015106425.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリセルからなる単位領域毎にデータの読み出し及び書き込みを行う半導体メモリの制御装置であって、
データの値を決定する第１閾値に基づき前記単位領域の各々からデータの読み出しを行う第１読出部と、
前記第１読出部で読み出されたデータに基づいて前記単位領域の各々が消去状態にあるか否かを判定する消去状態判定部と、
前記第１閾値とは異なる第２閾値に基づき、前記消去状態にあると判定された前記単位領域からデータを読み出す第２読出部と、
前記第２読出部で読み出されたデータに対して誤り検出処理を施す誤り検出部と、
前記誤り検出部で検出された誤りビットの総数が所定値より大となる場合に前記単位領域が不安定状態にあると判定する不安定状態判定部と、を有することを特徴とする半導体メモリの制御装置。
【請求項２】
前記複数のメモリセルはマルチレベルセルであり、
前記第２読出部は、前記第２閾値を含む複数の閾値に基づき、前記消去状態にあると判定された前記単位領域からデータを読み出すことを特徴とする請求項１記載の半導体メモリの制御装置。
【請求項３】
前記消去状態判定部は、前記単位領域から読み出されたデータに対して誤り訂正処理を施して得られた訂正後のデータに基づき、前記単位領域の各々が消去状態にあるか否かを判定することを特徴とする請求項１又は２に記載の半導体メモリの制御装置。
【請求項４】
前記半導体メモリはフラッシュメモリであり、
前記第２閾値は前記第１閾値よりも高い値を有することを特徴とする請求項１〜３のいずれか１に記載の半導体メモリの制御装置。
【請求項５】
シングルレベルセルモードで前記単位領域にデータを書き込む書込部を有し、
前記第１読出部は、前記単位領域から前記シングルレベルセルモードでデータを読み出し、
前記第２読出部は、前記消去状態にあると判定された前記単位領域からマルチレベルセルモードでデータを読み出すことを特徴とする請求項２に記載の半導体メモリの制御装置。
【請求項６】
複数のメモリセルからなる単位領域毎にデータの読み出し及び書き込みを行う半導体メモリから不安定メモリ領域を検出する不安定メモリ領域の検出方法であって、
データの値を決定する第１閾値に基づき前記単位領域の各々からデータの読み出しを行う第１ステップと、
前記第１読出部で読み出されたデータに基づいて前記単位領域の各々が消去状態にあるか否かを判定する第２ステップと、
前記第１閾値とは異なる第２閾値に基づき前記消去状態にあると判定された前記単位領域からデータを読み出す第３ステップと、
前記第２読出部で読み出されたデータに対して誤り検出処理を施す第４ステップと、
前記誤り検出部で検出された誤りビットの総数が所定値より大となる場合に前記単位領域が不安定状態にあると判定する第５ステップと、を有することを特徴とする不安定メモリ領域の検出方法。
【請求項７】
前記複数のメモリセルはマルチレベルセルであり、
前記第３ステップでは、前記第２閾値を含む複数の閾値に基づき前記消去状態にあると判定された前記単位領域からデータを読み出すことを特徴とする請求項６記載の不安定メモリ領域の検出方法。
【請求項８】
前記第２ステップでは、前記単位領域から読み出されたデータに対して誤り訂正処理を施して得られた訂正後のデータに基づき、前記単位領域の各々が消去状態にあるか否かを判定することを特徴とする請求項６又は７に記載の不安定メモリ領域の検出方法。
【請求項９】
前記半導体メモリはフラッシュメモリであり、
前記第２閾値は前記第１閾値よりも高い値を有することを特徴とする請求項６〜８のいずれか１に記載の不安定メモリ領域の検出方法。
【請求項１０】
シングルレベルセルモードで前記単位領域にデータを書き込むステップを有し、
前記第１ステップでは、前記単位領域から前記シングルレベルセルモードでデータを読み出し、
前記第３ステップでは、前記消去状態にあると判定された前記単位領域からマルチレベルセルモードでデータを読み出すことを特徴とする請求項７に記載の不安定メモリ領域の検出方法。
【請求項１１】
マルチレベルで書き込み・読出し可能な複数のメモリセルからなる半導体メモリ装置の不安定メモリ領域の検出方法であって、
シングルレベルセルモードで書き込まれた前記メモリセルをシングルレベルセルモードで読み出し、消去状態か否かを判定する第１ステップと、
前記第１ステップで消去状態と判定されたメモリ領域をマルチレベルセルモードで読み出し、消去状態か否かを判定する第２ステップと、
前記第２ステップで消去状態でないと判定されたメモリ領域の誤りビットの総数が所定値より大となる場合に不安定状態にあると判定する第３ステップと、を有することを特徴とする不安定メモリ領域の検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体メモリの制御装置、特に、データの書き込みに適さない不安定な状態にあるメモリ領域の検出を行う制御装置及び不安定メモリ領域の検出方法に関する。
【背景技術】
【０００２】
現在、不揮発性の半導体メモリとして、ＮＡＮＤ型フラッシュメモリが普及している。
【０００３】
ところで、ＮＡＮＤ型フラッシュメモリでは、データをメモリセルに書き込んでいる最中に電源が遮断されると、その電源遮断のタイミング又は素子特性等によっては、メモリセルへの電子の注入量が中途半端な状態、つまり僅かな電子が残留している状態となる。すると、ＮＡＮＤ型フラッシュメモリを制御する制御装置は、このメモリセルを含むページを消去状態のページと判断してしまい、そのページにデータを上書きしてしまう場合があった。ところが、電子の注入量が中途半端な状態にあるメモリセルには僅かな電子が残留していることから、データを正しく書き込むことができない虞がある。そこで、このようなデータの書き込みに適さない不安定な状態にあるページを検出すべく、互いに異なる複数のビット検出用電圧を順次変更しつつメモリセルから同一のデータを繰り返し読み出し、各読出データ同士を比較することにより、不安定状態にあるメモリセルを検出する方法が提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１５８０４３号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記した検出方法では、フラッシュメモリの全メモリ領域中から不安定状態にあるメモリセルを検出する為には、ビット検出用電圧を変更しつつ全てのメモリセルの各々から同一のデータを繰り返し読み出す必要がある。よって、不安定状態にあるメモリセルを検出する為に費やされる時間が長大となり、メモリの動作効率を低下させてしまうという問題があった。
【０００６】
本発明は、メモリの動作効率を下げることなくデータの書き込みに適さない不安定な状態にあるメモリ領域の検出を行う制御装置及び不安定メモリ領域の検出方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る半導体メモリの制御装置は、複数のメモリセルからなる単位領域毎にデータの読み出し及び書き込みを行う半導体メモリの制御装置であって、データの値を決定する第１閾値に基づき前記単位領域の各々からデータの読み出しを行う第１読出部と、前記第１読出部で読み出されたデータに基づいて前記単位領域の各々が消去状態にあるか否かを判定する消去状態判定部と、前記第１閾値とは異なる第２閾値に基づき、前記消去状態にあると判定された前記単位領域からデータを読み出す第２読出部と、前記第２読出部で読み出されたデータに対して誤り検出処理を施す誤り検出部と、前記誤り検出部で検出された誤りビットの総数が所定値より大となる場合に前記単位領域が不安定状態にあると判定する不安定状態判定部と、を有する。
【０００８】
又、本発明に係る不安定メモリ領域の検出方法は、複数のメモリセルからなる単位領域毎にデータの読み出し及び書き込みを行う半導体メモリから不安定メモリ領域を検出する不安定メモリ領域の検出方法であって、データの値を決定する第１閾値に基づき前記単位領域の各々からデータの読み出しを行う第１ステップと、前記第１読出部で読み出されたデータに基づいて前記単位領域の各々が消去状態にあるか否かを判定する第２ステップと、前記第１閾値とは異なる第２閾値に基づき前記消去状態にあると判定された前記単位領域からデータを読み出す第３ステップと、前記第２読出部で読み出されたデータに対して誤り検出処理を施す第４ステップと、前記誤り検出部で検出された誤りビットの総数が所定値より大となる場合に前記単位領域が不安定状態にあると判定する第５ステップと、を有する。
【０００９】
又、本発明に係る不安定メモリ領域の検出方法は、マルチレベルで書き込み・読出し可能な複数のメモリセルからなる半導体メモリ装置の不安定メモリ領域の検出方法であって、シングルレベルセルモードで書き込まれた前記メモリセルをシングルレベルセルモードで読み出し、消去状態か否かを判定する第１ステップと、前記第１ステップで消去状態と判定されたメモリ領域をマルチレベルセルモードで読み出し、消去状態か否かを判定する第２ステップと、前記第２ステップで消去状態でないと判定されたメモリ領域の誤りビットの総数が所定値より大となる場合に不安定状態にあると判定する第３ステップと、を有する。
【発明の効果】
【００１０】
本発明においては、先ず、メモリの各ページ（単位領域）から第１回目のデータの読み出しを行ってそのページが消去状態にあるか否かを判定し、引き続きデータの値を決定する為の閾値を変更して、消去状態にあると判定されたページから第２回目のデータ読み出しを行う。そして、この第２回目に読み出されたデータに対して誤り検出を行い、検出された誤りビットの総数に基づき、このページが消去状態にあるのか、或いは不安定な状態にあるのかを判断する。よって、かかる動作によれば、消去状態にあると判定されたページだけが第２回目のデータ読み出しの対象となるので、データの値を決定する為の閾値を変更しつつ全ページの各々から繰り返しデータの読み出しを行う場合に比べて迅速に、不安定な状態にあるページの検出が為されるようになる。
【００１１】
従って、本発明によれば、メモリの動作効率を下げることなくデータの書き込みに適さない不安定な状態にあるメモリ領域を検出することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】本発明に係る半導体メモリの制御装置を含む情報処理システムを示すブロック図である。
【図２】レジスタ２４３の記憶内容の一例を示す図である。
【図３】読出データの値を決定する為のビット線電位の閾値と、読出データの値との対応関係を示す図である・
【図４】不安定メモリ領域検出ルーチンの一例を示すフローチャートである。
【図５】不安定メモリ領域検出ルーチンの他の一例を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、本発明の実施例を図面を参照しつつ詳細に説明する。
【００１４】
図１は、本発明に係る半導体メモリの制御装置を含む情報処理システムを示すブロック図である。図１に示すように、かかる情報処理システムは、ホスト情報処理装置１及び記憶装置２を含む。
【００１５】
ホスト情報処理装置１は、記憶装置２に記憶されているデータ又は外部供給されたデータに基づいて各種情報処理を行いつつ、データを書き込ませるべき書込命令、書込先のアドレス及び書込用データ、或いは、データの読み出しを促す読出命令及び読出元のアドレスを記憶装置２に供給する。
【００１６】
記憶装置２は、ホストインターフェース（以下、ホストＩＦと称する）部２１、メモリアクセスバス２２、ＣＰＵ（Central Processing Unit）２３、メモリ制御部２４、及び半導体メモリとしてのＮＡＮＤ型のフラッシュメモリ２５を有する。
【００１７】
ホストＩＦ部２１は、ホスト情報処理装置１から供給された書込命令、読出命令、アドレス及び書込用データを受け、これらをメモリアクセスバス２２を介してＣＰＵ２３に供給する。また、ホストＩＦ部２１は、メモリ制御部２４から送出された読出データＲＤＤ（後述する）をメモリアクセスバス２２を介して受け、これをホスト情報処理装置１に供給する。ＣＰＵ２３は、メモリアクセスバス２２を介して供給された書込命令、アドレス及び書込用データに応じて、このアドレスに書込用データを書き込ませるべきメモリ書込制御信号を生成し、これをメモリアクセスバス２２を介してメモリ制御部２４に供給する。また、ＣＰＵ２３は、メモリアクセスバス２２を介して供給された読出命令及びアドレスに応じて、そのアドレスからデータの読み出しを行わせるべきメモリ読出制御信号を生成し、これをメモリアクセスバス２２を介してメモリ制御部２４に供給する。
【００１８】
メモリ制御部２４は、ＥＣＣ(Error Checking and Correction)制御部２４１、消去状態判定部２４２、及びレジスタ２４３の如き機能モジュールを含む。
【００１９】
ＥＣＣ制御部２４１は、上記したメモリ書込制御信号に応じて、このメモリ書込制御信号にて示される書込用データに対して、例えばＢＣＨ符号の如き誤り訂正符号を付加して誤り訂正符号化した書込データＷＤを生成し、これを図２に示すようにレジスタ２４３に記憶する。また、誤り検出部及び誤り訂正部としてのＥＣＣ制御部２４１は、フラッシュメモリ２５から読み出された読出データＲＤに対して誤り検出処理を施す。ここで、読出データＲＤのビット系列中に誤りビットが検出され、その誤りを訂正することが可能である場合には、ＥＣＣ制御部２４１は、かかる読出データＲＤに対して誤り訂正処理を施して、誤り訂正されたデータを図２に示すように読出データＲＤＤとしてレジスタ２４３に記憶する。また、ＥＣＣ制御部２４１は、読出データＲＤのビット系列中に誤りビットが検出された場合には誤りビットの数を計数し、その総数を示す誤り総数データＥＡを図２に示すようにレジスタ２４３に記憶する。尚、フラッシュメモリ２５から読み出された読出データＲＤに誤りが無かった場合には、ＥＣＣ制御部２４１は、この読出データＲＤを読出データＲＤＤとしてレジスタ２４３に記憶する。
【００２０】
消去状態判定部２４２は、レジスタ２４３に記憶されている読出データＲＤＤが消去状態にあるデータであるか否かの判定を行う。つまり、フラッシュメモリ２５でのデータの初期状態が例えば論理レベル１である場合には、消去状態判定部２４２は、かかる読出データＲＤＤの全ビットが論理レベル１であるか否かの判定を行う。この際、読出データＲＤＤの全ビットが論理レベル１であると判定した場合には、消去状態判定部２４２は、読出データＲＤＤが消去状態にあることを示す例えば論理レベル１の消去状態判定フラグＤＦを、図２に示すようにレジスタ２４３に記憶する。一方、読出データＲＤＤの全ビットが論理レベル１とはなっていないと判定された場合、つまり全ビットの内の少なくとも１ビットが論理レベル０となっている場合には、消去状態判定部２４２は、読出データＲＤＤが消去状態には無いことを示す例えば論理レベル０の消去状態判定フラグＤＦをレジスタ２４３に記憶する。
【００２１】
メモリ制御部２４は、これら機能モジュールの動作を反映させて、メモリ書込制御信号又はメモリ読出制御信号によるフラッシュメモリ２５へのアクセス（データ書込、読出、消去）を、例えば４キロバイト又は８キロバイト分の複数のメモリセルからなる単位領域としてのページ単位、又は６４ページ分からなるブロック単位で行う。すなわち、メモリ制御部２４は、メモリ書込制御信号に応じて、先ず、書込対象となるページを含むブロック内の全てのメモリセルの状態を論理レベル１の状態に設定するという、データ消去を行う。次に、メモリ制御部２４は、レジスタ２４３に記憶されている書込データＷＤと共にこのメモリ書込制御信号にて指定されたアドレス、及びデータ書込を促す書込指令信号をフラッシュメモリ２５に供給する。これにより、フラッシュメモリ２５は、書込データＷＤによって示される値が例えば論理レベル０を示す場合には、アドレスによって指定されたページ内のメモリセルを論理レベル１の状態（データの消去状態）から論理レベル０の状態に遷移させるべき書込駆動（例えば電荷注入又は電荷放出）を実施する。この際、書込データＷＤによって示される値が論理レベル１、つまりデータ消去状態と同一論理レベルを示す場合には、メモリセルに対するアクセスは行わない。かかる動作により、フラッシュメモリ２５は、指定されたアドレスに上記書込データＷＤを書き込む。
【００２２】
また、メモリ制御部２４は、メモリアクセスバス２２を介してメモリ読出制御信号が供給された場合には、このメモリ読出制御信号にて指定されたアドレスをフラッシュメモリ２５に供給しつつ、データ読出を促す読出指令信号をフラッシュメモリ２５に供給する。これにより、フラッシュメモリ２５は、指定されたアドレスに記憶されているデータを読みだし、これを上記した読出データＲＤとしてメモリ制御部２４に供給する。尚、書込データＷＤ及び読出データＲＤ各々のビット長は、誤り訂正符号としての単位ブロック長、或いは、ＮＡＮＤ型フラッシュメモリとしての１ページ分のビット長等である。上記した動作の終了後、メモリ制御部２４は、レジスタ２４３に記憶されている読出データＲＤＤを、メモリアクセスバス２２を介してホストＩＦ部２１に送出する。これにより、フラッシュメモリ２５から読み出された読出データがホスト情報処理装置１に送出される。
【００２３】
また、メモリ制御部２４は、ＣＰＵ２３から供給されたメモリモード指定命令に応じて、フラッシュメモリ２５をＭＬＣ（multi-level cell）モードで動作させるのか、或いはＳＬＣ（single-level cell）モードで動作させるのかを指定するメモリモード信号をフラッシュメモリ２５に供給する。
【００２４】
また、メモリ制御部２４は、ＣＰＵ２３から供給されたデータ判定閾値設定命令に応じて、読出データの値を決定する為のビット線電位の閾値を指定するデータ判定閾値信号をフラッシュメモリ２５に供給する。
【００２５】
フラッシュメモリ２５に形成されている複数のメモリセルは、１つのメモリセルに複数ビット分のデータ、つまり多値データを記憶することが可能なマルチレベルセルである。フラッシュメモリ２５は、メモリ制御部２４から、ＭＬＣモードを指定するメモリモード信号及びデータ判定閾値信号が供給された場合には、メモリセルに対して多値データの書き込み、又は読み出しを行うＭＬＣモードで動作する。この際、ＭＬＣモードでの読出動作時には、読出データの値を決定する為のビット線電位の閾値として複数の閾値を用いる。例えば４値（００、０１、１０、１１）のＭＬＣモードでの読出動作時には図３に示すような３つのデータ判定用の閾値ＴＣ01、ＴＣ10及びＴＣ11を用いる。つまり、フラッシュメモリ２５は、自身のビット線電位が図３に示す閾値ＴＣ01未満である場合には、データ値［００］が読み出されたと判定し、このデータ値［００］を示す読出データＲＤを生成する。また、フラッシュメモリ２５は、かかる読出動作時においてビット線電位が、図３に示すような閾値ＴＣ01以上であり且つ閾値ＴＣ10未満である場合には、データ値［０１］が読み出されたと判定し、このデータ値［０１］を示す読出データＲＤを生成する。また、フラッシュメモリ２５は、かかる読出動作時においてビット線電位が図３に示すような閾値ＴＣ10以上であり且つ閾値ＴＣ11未満である場合には、データ値［１０］が読み出されたと判定し、このデータ値［１０］を示す読出データＲＤを生成する。また、フラッシュメモリ２５は、かかる読出動作時においてビット線電位が閾値ＴＣ11以上である場合には、データ値［１１］が読み出されたと判定し、このデータ値［１１］を示す読出データＲＤを生成する。
【００２６】
また、フラッシュメモリ２５は、メモリ制御部２４からＳＬＣモードを指定するメモリモード信号が供給された場合には、メモリセルに対して２値データの書き込み又は読み出しを行うＳＬＣモードで動作する。例えば、このＳＬＣモードでの読出動作時において、フラッシュメモリ２５は、自身のビット線電位が図３に示すような通常の閾値ＴＣ1未満である場合には、データ値として論理レベル０が読み出されたと判定し、論理レベル０を示す読出データＲＤを生成する。一方、ビット線電位が閾値ＴＣ1以上である場合には、フラッシュメモリ２５は、データ値として論理レベル１が読み出されたと判定し、論理レベル１を示す読出データＲＤを生成する。
【００２７】
尚、メモリ制御部２４は、通常動作時には、フラッシュメモリ２５をＳＬＣモードで動作させるべきメモリモード信号をフラッシュメモリ２５に供給する。すなわち、フラッシュメモリ２５は、ＭＬＣモードで動作可能であるものの、通常は、ＳＬＣモードにて２値（論理レベル１又は０）のデータをメモリセルに書き込み、これを読み出す。この際、フラッシュメモリ２５は、メモリ制御部２４から供給されたデータ判定閾値信号により、読出データの値を決定する為のビット線電位の閾値ＴＣ1を任意の値に変更することができる。
【００２８】
ここで、メモリ制御部２４がＳＬＣモードでフラッシュメモリ２５のページにデータを書き込んでいる際に電源が遮断されると、メモリセルへの電子の注入量が中途半端な状態、つまりデータの値を消去状態（論理レベル１）から書込状態（論理レベル０）に遷移させることが出来ない程度に電子が残留している不安定な状態となる場合がある。このような状態にあるメモリセルからデータを読み出した場合には、ビット線電位が閾値ＴＣ1以上となるので、このメモリセルは消去状態の扱いとなる。しかしながら、上記したように、かかるメモリセルは電子の注入量が中途半端な状態、つまり僅かな電子が残留している不安定な状態にあるため、データを正しく書き込むことができない。
【００２９】
そこで、メモリ制御部２４では、かかる状態にあるページを不安定メモリ領域として検出し、このページを示すアドレスを図２に示すレジスタ２４３の書込不可ページ登録領域に登録することにより、不安定状態にあるメモリセルを含むページを書込対象から除外するようにしている。
【００３０】
以下に、図１に示す記憶装置２による不安定メモリ領域の検出動作について説明する。
【００３１】
図４は、ＣＰＵ２３及びメモリ制御部２４からなる制御装置が、例えば電源投入時、又は所定の一定周期毎、或いはデータ書込処理の直前等のタイミングで実行する不安定メモリ領域検出ルーチンを示す図である。
【００３２】
図４において、制御装置は、先ず、読出データの値を決定する為のビット線電位の閾値として、図３に示すような第１の閾値ＴＣ1を指定するデータ判定閾値信号をフラッシュメモリ２５に供給する（ステップＳ１）。次に、制御装置は、読み出しページを指定するアドレスｎの初期値として「１」を設定する（ステップＳ２）。次に、制御装置は、アドレスｎに対応したページからデータを読み出すべき読出指令信号をフラッシュメモリ２５に供給する（ステップＳ３）。ステップＳ１及びＳ３の実行により、フラッシュメモリ２５は、アドレスｎに対応したページからデータを読み出し、この際のビット線電位が閾値ＴＣ1以上となる場合には論理レベル１、閾値ＴＣ1未満となる場合には論理レベル０の読出データＲＤを制御装置に供給する。次に、制御装置は、かかる読出データＲＤに対して誤り検出処理を施し、読出データＲＤのビット系列中に誤りビットが検出された場合には、読出データＲＤに対して誤り訂正処理を施し、訂正されたデータを読出データＲＤＤとしてレジスタ２４３に記憶する（ステップＳ４）。尚、制御装置は、誤りが検出されなかった場合には読出データＲＤをそのまま読出データＲＤＤとしてレジスタ２４３に記憶する。次に、制御装置は、かかる読出データＲＤＤが消去状態を表すか否かを判定し、その判定結果を示す消去状態判定フラグＤＦを、ページのアドレスｎに対応付けしてレジスタ２４３に記憶する（ステップＳ５）。つまり、ステップＳ５において制御装置は、例えば読出データＲＤＤの全ビットが論理レベル１となっているか否かを判定することにより、読出データＲＤＤが消去状態にあるか否かの判定を行う。この際、制御装置は、読出データＲＤＤが消去状態にある場合には例えば論理レベル１、消去状態では無い場合には論理レベル０の消去状態判定フラグＤＦをページ毎のアドレスｎに対応付けしてレジスタ２４３に記憶する。
【００３３】
次に、制御装置は、アドレスｎがページの最終アドレスを示すか否かを判定する（ステップＳ６）。ステップＳ６において最終アドレスでは無いと判定された場合、制御装置は、現時点のアドレスｎを１だけインクリメントしたものを新たなアドレスｎとして設定する（ステップＳ７）。ステップＳ７の実行後、制御装置は上記ステップＳ３に戻り、ステップＳ３〜Ｓ６の動作を繰り返し実行する。ステップＳ３〜Ｓ６を繰り返し実行することにより、制御装置は、フラッシュメモリ２５の全ページから第１の閾値ＴＣ1を用いたデータの読み出し（Ｓ１、Ｓ３）及び読出データに対する誤り訂正処理（Ｓ４）を行う。更に、制御装置は、フラッシュメモリ２５の各ページ毎に、そのページでの読出データ（誤り訂正済み）が消去状態（全ビットが例えば論理レベル１）を表すか否かを判定し、その判定結果を示す消去状態判定フラグＤＦを各ページに対応づけしてレジスタ２４３に記憶（Ｓ５）する。
【００３４】
ステップＳ６においてアドレスｎが最終アドレスで有ると判定された場合、制御装置は、読出データの値を決定する為のビット線電位の閾値として、図３に示すように、第１の閾値ＴＣ1よりも高い第２の閾値ＴＣ2を指定するデータ判定閾値信号をフラッシュメモリ２５に供給する（ステップＳ８）。次に、制御装置は、レジスタ２４３に記憶されている各ページ毎の消去状態判定フラグＤＦに基づき消去状態にあるページを検索し、その消去状態ページからデータを読み出すべき読出指令信号をフラッシュメモリ２５に供給する（ステップＳ９）。ステップＳ８及びＳ９の実行により、フラッシュメモリ２５は、消去状態にあるページからデータを読み出し、この際のビット線電位が第２の閾値ＴＣ2以上となる場合には論理レベル１、閾値ＴＣ2未満となる場合には論理レベル０の読出データＲＤを制御装置に供給する。尚、ステップＳ９では消去状態、つまり全ビットが論理レベル１の状態にあると判定されたページからのデータ読み出しである為、このページが不安定な状態になければ、全ビットが論理レベル１となる読出データＲＤが制御装置に供給されることになる。次に、制御装置は、かかる読出データＲＤに対して誤り検出処理を施し、読出データＲＤのビット系列中に生じた誤りビットの数を計数し、その総数を示す誤り総数データＥＡをレジスタ２４３に記憶する（ステップＳ１０）。次に、制御装置は、誤り総数データＥＡにて示される誤りビットの総数が所定の限度値ＥTより大であるか否かの判定を行う（ステップＳ１１）。ステップＳ１１において、誤り総数データＥＡにて示される誤りビットの総数が限度値ＥTより大であると判定された場合、制御装置は、ステップＳ９で読出対象となった消去状態のページを、図２に示すレジスタ２４３の書込不可ページ登録領域に記憶する（ステップＳ１２）。
【００３５】
上記ステップＳ１２の実行後、或いはステップＳ１１において誤り総数データＥＡにて示される誤りビットの総数が限度値ＥT以下であると判定された場合には、制御装置は、全ての消去状態ページの再読み出しが終了したか否かの判定を行う（ステップＳ１３）。ステップＳ１３において、全ての消去状態ページの再読み出しが終了していない、つまり再読み出しされていない消去状態ページが残っている場合には、制御装置は、上記したステップＳ９に戻り、ステップＳ９〜Ｓ１３の動作を繰り返し実行する。ステップＳ９〜Ｓ１３を繰り返し実行することにより、制御装置は、フラッシュメモリ２５の全ページのうちで消去状態と判定されたページのみから、第１の閾値ＴＣ1よりも高い第２の閾値ＴＣ2を用いたデータの読み出し（Ｓ８、Ｓ９）、及び誤り検出（Ｓ１０）を行う。この際、ビット誤りの総数が所定の限度値ＥTを超えた場合には、制御装置は、このページが不安定な状態、つまり電子が僅かに残留しているが故にデータの上書きには適さない領域であると判定する。そして、制御装置は、このような不安定な状態にあるページを書込対象から除外すべく、かかるページを書込不可ページとして登録（Ｓ１２）するのである。
【００３６】
すなわち、先ず、通常の第１の閾値ＴＣ1で読み出した際に消去状態（例えば全ビットが論理レベル１）であると判定されたページを、第１の閾値ＴＣ1に代えてこれよりも高い第２の閾値ＴＣ2を用いて再度読み出す。この際、消去状態にあると判定されたページが不安定な状態、つまりメモリセルに電子が僅かに残留した状態にあると、閾値ＴＣ1で読み出した際には論理レベル１と判定されるものの、この閾値ＴＣ1よりも高い閾値ＴＣ2で読み出した際には、論理レベル０と判定される誤ったビットが現れる場合がある。そこで、制御装置では、このような誤ったビットの総数が所定の限度値ＥTよりも少ない場合にはこのページが消去状態にあると判断する一方、所定値より大となった場合には、このページは、データの上書きには適さない不安定な状態にあるページであると判断するようにしたのである。
【００３７】
この際、図４に示す不安定メモリ領域検出では、読出データの値を判定すべく用いる閾値を第１の閾値ＴＣ1から第２の閾値ＴＣ2に切り替えた際には、消去状態と判定されたページだけからデータの再読み出しを行うようにしている。これにより、読出データの値を決定する為の閾値を変更しつつ、全てのページの各々から繰り返しデータの読み出しを行う場合に比して迅速に、不安定な状態にあるページの検出が為される。従って、本発明によれば、メモリの動作効率を下げることなくデータの書き込みに適さない不安定な状態にあるメモリ領域を検出することが可能となる。
【００３８】
図５は、不安定メモリ領域検出ルーチンの他の一例を示す図である。尚、図５に示す不安定メモリ領域検出ルーチンも図４に示すものと同様に、ＣＰＵ２３及びメモリ制御部２４からなる制御装置が、例えば電源投入時、又は所定の一定周期毎、或いはデータ書込処理の直前等のタイミングで実行する。
【００３９】
図５において、制御装置は、先ず、ＳＬＣモードを指定するメモリモード信号をフラッシュメモリ２５に供給する（ステップＳ２１）。次に、制御装置は、読み出しページを指定するアドレスｎの初期値として「１」を設定する（ステップＳ２２）。次に、制御装置は、アドレスｎに対応したページからデータを読み出すべき読出指令信号をフラッシュメモリ２５に供給する（ステップＳ２３）。ステップＳ２１及びＳ２３の実行により、フラッシュメモリ２５は、アドレスｎに対応したページからデータを読み出し、この際のビット線電位が図３に示す第１の閾値ＴＣ1以上となる場合には論理レベル１、閾値ＴＣ1未満となる場合には論理レベル０の読出データＲＤを制御装置に供給する。次に、制御装置は、かかる読出データＲＤに対して誤り検出処理を施し、読出データＲＤのビット系列中に誤りビットが検出された場合には読出データＲＤに対して誤り訂正処理を施し、訂正されたデータを読出データＲＤＤとしてレジスタ２４３に記憶する（ステップＳ２４）。尚、制御装置は、誤りが検出されなかった場合には読出データＲＤをそのまま読出データＲＤＤとしてレジスタ２４３に記憶する。次に、制御装置は、かかる読出データＲＤＤが消去状態を表すか否かを判定し、その判定結果を示す消去状態判定フラグＤＦを、ページのアドレスｎに対応付けしてレジスタ２４３に記憶する（ステップＳ２５）。つまり、ステップＳ２５において制御装置は、例えば読出データＲＤＤの全ビットが論理レベル１となっているか否かを判定することにより、読出データＲＤＤが消去状態にあるか否かの判定を行う。この際、制御装置は、読出データＲＤＤが消去状態にある場合には例えば論理レベル１、消去状態では無い場合には論理レベル０の消去状態判定フラグＤＦをページ毎のアドレスｎに対応付けしてレジスタ２４３に記憶する。
【００４０】
次に、制御装置は、アドレスｎがページの最終アドレスを示すか否かを判定する（ステップＳ２６）。ステップＳ６において最終アドレスでは無いと判定された場合、制御装置は、現時点のアドレスｎを１だけインクリメントしたものを新たなアドレスｎとして設定する（ステップＳ２７）。ステップＳ２７の実行後、制御装置は上記ステップＳ２３に戻り、ステップＳ２３〜Ｓ２６の動作を繰り返し実行する。ステップＳ２３〜Ｓ２６を繰り返し実行することにより、制御装置は、フラッシュメモリ２５の全ページから第１の閾値ＴＣ1を用いたデータの読み出し（Ｓ２１、Ｓ２３）及び読出データに対する誤り訂正処理（Ｓ２４）を行う。更に、制御装置は、フラッシュメモリ２５の各ページ毎に、そのページでの読出データ（誤り訂正済み）が消去状態（全ビットが例えば論理レベル１）を表すか否かを検出し、その検出結果を示す消去状態判定フラグＤＦを各ページに対応づけしてレジスタ２４３に記憶（Ｓ２５）するのである。
【００４１】
ステップＳ２６においてアドレスｎが最終アドレスで有ると判定された場合、制御装置は、ＭＬＣモードを指定するメモリモード信号をフラッシュメモリ２５に供給する（ステップＳ２８）。次に、制御装置は、レジスタ２４３に記憶されている各ページ毎の消去状態判定フラグＤＦに基づき消去状態にあるページを検索し、その消去状態ページからデータを読み出すべき読出指令信号をフラッシュメモリ２５に供給する（ステップＳ２９）。
【００４２】
ステップＳ２８及びＳ２９の実行により、フラッシュメモリ２５は、第１の閾値ＴＣ1とは異なる第２の閾値を含む複数の閾値、例えば図３に示す閾値ＴＣ01、ＴＣ10及びＴＣ11に基づき、消去状態にあると判定されたページからデータを読み出す。すなわち、フラッシュメモリ２５は、この際のビット線電位が、図３に示す閾値ＴＣ01未満である場合にはデータ値［００］、閾値ＴＣ01以上であり且つ閾値ＴＣ10未満である場合にはデータ値［０１］、閾値ＴＣ11以上である場合にはデータ値［１１］が読み出されたと判定し、かかるデータ値を示す読出データＲＤを制御装置に供給する。尚、ステップＳ２９では、ＳＬＣモードにて消去状態にあると判定されたページ、つまり図３に示す第１の閾値ＴＣ1によって全ビットが論理レベル１の状態にあると判定されたページからのデータ読み出しである為、このページが不安定な状態になければ、全ビットが論理レベル１となる読出データＲＤが制御装置に供給されることになる。
【００４３】
次に、制御装置は、かかる読出データＲＤに対して誤り検出処理を施し、読出データＲＤのビット系列中に生じた誤りビットの数を計数し、その総数を示す誤り総数データＥＡをレジスタ２４３に記憶する（ステップＳ３０）。次に、制御装置は、誤り総数データＥＡにて示される誤りビットの総数が所定の限度値ＥTより大であるか否かの判定を行う（ステップＳ３１）。ステップＳ３１において、誤り総数データＥＡにて示される誤りビットの総数が限度値ＥTより大であると判定された場合、制御装置は、ステップＳ２９で読出対象となった消去状態のページを、図２に示すレジスタ２４３の書込不可ページ登録領域に記憶する（ステップＳ３２）。
【００４４】
上記ステップＳ３２の実行後、或いはステップＳ３１において誤り総数データＥＡにて示される誤りビットの総数が限度値ＥT以下であると判定された場合には、制御装置は、全ての消去状態ページの再読み出しが終了したか否かの判定を行う（ステップＳ３３）。ステップＳ３３において、全ての消去状態ページの再読み出しが終了していない、つまり再読み出しされていない消去状態ページが残っている場合には、制御装置は、上記したステップＳ２９に戻り、ステップＳ２９〜Ｓ３３の動作を繰り返し実行する。ステップＳ２９〜Ｓ３３を繰り返し実行することにより、制御装置は、フラッシュメモリ２５の全ページのうちでＳＬＣモードで消去状態と判定されたページのみから、ＭＬＣモードでデータの読み出し（Ｓ２８、Ｓ２９）、及び誤り検出（Ｓ３０）を行う。この際、ビット誤りの総数が所定の限度値ＥTを超えた場合には、制御装置は、このページが不安定な状態、つまり電子が僅かに残留しているが故にデータの上書きには適さない領域であると判定する。そして、制御装置は、このような不安定な状態にあるページを書込対象から除外すべく、かかるページを書込不可ページとして登録（Ｓ３２）するのである。
【００４５】
すなわち、先ず、読み出したデータに対して図３に示す第１の閾値ＴＣ1にて２値の判定を行うＳＬＣモードでデータを読み出した際に、消去状態（例えば全ビットが論理レベル１）であると判定されたページを、第１の閾値ＴＣ1よりも高い第２の閾値としてＴＣ10及びＴＣ11を含む複数の閾値を用いてデータの値を決定するＭＬＣモードで再度読み出す。この際、そのページが不安定な状態、つまりメモリセルに電子が僅かに残留した状態にあると、ＳＬＣモードで読み出した際には第１の閾値ＴＣ1にて論理レベル１と判定されるものの、ＭＬＣモードでは閾値ＴＣ1よりも高い第２の閾値ＴＣ10又はＴＣ11にてデータの値が判定されるので、論理レベル０と判定される誤ったビットが現れる場合がある。例えば、消去状態にあるページからＭＬＣモードでデータを読み出した際のビット線電位が図３に示す閾値ＴＣ10以上であり且つ閾値ＴＣ11未満である場合には、フラッシュメモリ２５は、これをデータ値［１０］と判定するため、そのビット系列中に論理レベル０となる誤ったビットが現れることになる。
【００４６】
そこで、制御装置では、このような誤ったビットの総数が所定値（ＥT）よりも少ない場合にはこのページが消去状態にあると判断する一方、誤りビットの総数が所定値よりも大となった場合には、このページが単なる消去状態ではなく、データの上書きには適さない不安定な状態にあるページ（領域）であると判断するようにしたのである。
【００４７】
この際、図５に示す不安定メモリ領域検出では、ＳＬＣモードで全ページからデータの読み出しを行ってから、ＭＬＣモードでの読み出しに切り替えた際には、ＳＬＣモードで消去状態と判定されたページだけからデータの再読み出しを行うようにしている。よって、かかる動作によれば、データの値を決定する為の閾値を変更しつつ全てのページの各々から繰り返しデータの読み出しを行う場合に比して迅速に、不安定な状態にあるページの検出が為される。従って、本発明によれば、メモリの動作効率を下げることなくデータの書き込みに適さない不安定な状態にあるメモリ領域を検出することが可能となる。
【００４８】
要するに、本発明に係る半導体メモリの制御装置（２３、２４）は、先ず、第１読出部（Ｓ３、Ｓ２３）が、データの値を決定する第１閾値（ＴＣ1）に基づき複数のメモリセルからなる単位領域（ページ）の各々からデータの読み出しを行う。次に、消去状態判定部（２４２、Ｓ５、Ｓ２５）が、第１読出部で読み出されたデータに基づいて単位領域の各々が消去状態にあるか否かを判定する。次に、第２読出部（Ｓ９、Ｓ２９）が、第１閾値とは異なる第２の閾値（ＴＣ2、ＴＣ10、ＴＣ11）に基づき、消去状態にあると判定された単位領域からデータを読み出す。次に、誤り検出部（２４１）が第２読出部で読み出されたデータに対して誤り検出処理を施す。そして、不安定状態判定部（Ｓ１１、Ｓ３１）が、この誤り検出処理によって検出された誤りビットの総数（ＥＡ）が所定値（ＥT）より大となる場合に、上記単位領域が不安定状態にあると判定するのである。
【符号の説明】
【００４９】
２          記憶装置
２４        メモリ制御部
２５        フラッシュメモリ
２４１      ＥＣＣ制御部
２４２      消去状態判定部
【図１】
2015106425.tif 000003
【図２】
2015106425.tif 000004
【図３】
2015106425.tif 000005
【図４】
2015106425.tif 000006
【図５】
2015106425.tif 000007