(57)【特許請求の範囲】
【請求項１】
複数の不揮発性メモリセルからなる記憶領域と内部状態を示すステータスレジスタと該ステータスレジスタの少なくとも一部の内容を出力可能な外部端子とを備えた不揮発性半導体記憶装置と、該不揮発性半導体記憶装置に対する書込みの指令を行なう制御装置とを含む記憶システムであって、
前記不揮発性半導体記憶装置は書込みアドレスと書込みデータを伴う書込みコマンドが入力されたことに応じた書込み処理において、書込対象となる不揮発性メモリセルに書き込まれるべき書込みデータに応じて、離散的に定められた複数の電圧範囲の何れか１に含まれるようにしきい値電圧を制御し、しきい値電圧が第１の電圧範囲に含まれる状態から第２の電圧範囲に含まれる状態へ遷移される場合に、遷移された不揮発性メモリセルのしきい値電圧が前記第２の電圧範囲に含まれる正常状態と、前記第２の電圧範囲にまでしきい値電圧が変化しない第１のエラー状態と前記第２の電圧範囲を超えてしきい値電圧が変化する第２のエラー状態とのいずれの状態かを識別し、
前記ステータスレジスタは、前記書込対象の不揮発性メモリセルが再度書込みを実行することで正常に書込みが行なえる可能性がある前記第２のエラー状態にあることを示す第１のビットを有し、
前記制御装置は前記第１のビットの状態が前記第２のエラー状態にある不揮発性メモリセルの存在を示していることに応じて、前記不揮発性半導体記憶装置に再度同一の領域に対する書込みを行わせるために、書込みアドレスと書込みデータとを伴わない書込みコマンドを前記不揮発性半導体記憶装置に出力し、かかる書込み動作によっても前記第２のエラー状態を生じる場合は、別の不揮発性メモリセルへ当該書込みデータを書き込ませるために当該別の不揮発性メモリセルを指定するための書込みアドレスと書込みデータとを伴う前記書込みコマンドを出力する制御を行なうことを特徴とする記憶システム。
【請求項２】
前記ステータスレジスタは、書込みが正常に終了したか否かを示す第２のビットを有し、前記制御装置は前記第２のビットが書込みが正常に終了していないことを示している場合に前記第１のビットの状態に応じた再度の書込み指令を行なうことを特徴とする請求項１に記載の記憶システム。
【請求項３】
前記ステータスレジスタは、チップの外部からアクセスが可能か否かを示す第３のビットを有し、前記制御装置は前記第３のビットが外部からのアクセスが可能であることを示している場合に前記第１のビットの状態に応じた再度の書込み指令を行なうことを特徴とする請求項１に記載の記憶システム。
【請求項４】
前記ステータスレジスタはチップの外部からアクセスが可能か否かを示す第３のビットを有し、前記不揮発性半導体記憶装置は前記第３のビットの状態を反映する外部端子を備え、前記制御装置は前記外部端子の信号が外部からのアクセスが可能であることを示している場合に前記第１のビットの状態に応じた再度の書込み指令を行なうことを特徴とする請求項１に記載の記憶システム。
【請求項５】
前記制御装置は、前記書込みが正常に行なえなかった記憶領域を他の記憶領域で置き換える処理を行なう機能を備え、前記第１のビットの状態に基づく再書込みによって正常書込みができなかった場合に当該正常書込みができなかった記憶領域を他の記憶領域で置き換える処理を行なうことを特徴とする請求項１に記載の記憶システム。
【請求項６】
前記制御装置は、前記書込みが正常に行なえなかった記憶領域を他の記憶領域で置き換える処理を行なう機能を備え、前記第１のビットが第１状態にされていることに基づいて行なわれた再書込みによって正常書込みができなかった場合および前記第２のビットが書込みが正常に終了していないことを示しかつ前記第１のビットが第２状態にある場合に、当該正常書込みができなかった記憶領域を他の記憶領域で置き換える処理を行なうことを特徴とする請求項２に記載の記憶システム。
【請求項７】
前記制御装置は、前記書込みが正常に行なえなかった記憶領域を他の記憶領域で置き換える際に、前記書込みが正常に行なえなかった記憶領域の一部に不良記憶領域であることを表わす情報を書き込むことを特徴とする請求項５または６のいずれかに記載の記憶システム。
【請求項８】
前記制御装置は、前記書込みが正常に行なえなかった記憶領域を他の記憶領域で置き換える際に、前記他の記憶領域に記憶されている情報を読み出して不良記憶領域であるか否かを判定して置き換え処理を行なうことを特徴とする請求項７に記載の記憶システム。
【請求項９】
前記制御装置は、前記第１のビットの状態に応じた再度の書込み指令を所定回数行なっても書込みが正常に行なえなかった場合に当該記憶領域を他の記憶領域で置き換える処理を行なうことを特徴とする請求項４〜８のいずれかに記載の記憶システム。
【請求項１０】
前記ステータスレジスタの内容は、前記制御装置から供給される複数の制御信号が所定の組合せにされたときに、外部端子へ出力されることを特徴とする請求項１〜９のいずれかに記載の記憶システム。
【請求項１１】
前記制御装置は書込み不良の領域の管理を行なうことを特徴とする請求項１〜１０の何れかに記載の記憶システム。
【請求項１２】
前記不揮発性半導体記憶装置は、前記制御装置からの前記書込みの指令および書込み不良の領域の処理を行なう制御回路を含むことを特徴とする請求項１〜１０の何れかに記載の記憶システム。
【請求項１３】
不揮発性半導体メモリと、不揮発性半導体メモリへのアクセスを制御する制御装置を有し、
上記不揮発性半導体メモリは、複数のメモリセルを有し、上記メモリセルへのデータの書込み不良にかかる不揮発性半導体メモリの内部状態を出力可能であり、
上記制御装置からの書込みアドレスと書込みデータとを伴う書込みコマンドの発行に応じて、上記書込みアドレスに対応したメモリセルへ上記書込みデータを書き込む書込み処理を行い、上記メモリセルは上記書込みデータに応じて離散的に定められた複数の電圧範囲の何れか１に含まれるようにしきい値電圧が制御され、しきい値電圧が第１の電圧範囲に含まれる状態から第２の電圧範囲に含まれる状態へ遷移される場合に、遷移されたメモリセルのしきい値電圧が上記第２の電圧範囲に含まれる正常状態と、上記第２の電圧範囲にまでしきい値電圧が変化しない第１のエラー状態と、上記第２の電圧範囲を超えてしきい値電圧が変化する第２のエラー状態とのいずれの状態かを識別してその結果を上記内部状態として出力し、
上記制御装置は、上記不揮発性半導体メモリの内部状態が第２のエラー状態を示す場合、当該メモリセルへの書込みを再度指示可能なように書込みアドレスと書込みデータとを伴わない書込みコマンドの発行を制御し、
上記不揮発性半導体メモリの内部状態が第１のエラー状態を示す場合又は上記第２のエラー状態を示すことに応じた当該メモリセルへの書込みを所定の回数を超えて指示した場合、当該メモリセルへの書込みを禁止して別のメモリセルへ書込みを行なうように当該別のメモリセルを指定する書込みアドレスと書込みデータとを伴う書込みコマンドを出力するように制御することを特徴とする半導体記憶システム。
【請求項１４】
上記メモリセルは、フローティングゲートを有するＭＯＳトランジスタ構造を有し、上記フローティングゲートに蓄積される電荷量の違いにより生じるしきい値電圧の違いを利用してデータを格納可能とするものであり、
上記第１状態は、フローティングゲートに格納すべきデータに対応する蓄積すべき電荷量を超えて電荷が蓄積された状態を示すことを特徴とする請求項１３に記載の半導体記憶システム。
【請求項１５】
上記第２状態は、当該メモリセルにアクセスすべき場合に、他のメモリセルを代替してアクセスするように制御することを特徴とする請求項１４に記載の半導体システム。
【請求項１６】
上記メモリセルに格納すべきデータは、１ビットのバイナリデータとして表現可能である事を特徴とする請求項１５に記載の半導体システム。
【請求項１７】
上記メモリセルに格納すべきデータは、２ビット以上のバイナリデータとして表現可能であることを特徴とする請求項１５に記載の半導体システム。
【請求項１８】
不揮発性半導体メモリと、不揮発性半導体メモリへのアクセスを制御する制御装置を有し、
上記不揮発性半導体メモリは、複数のメモリセルを有し、それぞれのメモリセルはフローティングゲートを有するＭＯＳトランジスタ構造であり、前記制御回路から書込みアドレスと書込みデータとを伴う書込みコマンドの入力に応じてフローティングゲートに電荷を蓄積又は引抜く書込み処理を行なうことでしきい値電圧の変化を生じ、しきい値電圧の違いを利用してデータを格納可能とし、上記フローティングゲートへの電荷の蓄積又は引抜き動作にかかる内部状態を出力可能であり、
上記内部状態は、上記フローティングゲートへの電荷の蓄積又は引抜き動作により、上記メモリセルに格納すべきデータに対応するしきい値電圧に応じた電荷量を超えて、上記フローティングゲートに電荷が蓄積され又は引き抜きが行われたことを示す第１状態を有し、
上記制御装置は、上記不揮発性半導体メモリの内部状態が上記第１状態を示す場合に、当該メモリセルへの電荷の蓄積又は引抜き動作を再度指示可能なように書込みアドレスと書込みデータとを伴わない書込みコマンドを上記不揮発性半導体メモリへ出力し、所定回数を超えて上記第１状態を示す場合は当該メモリセルへの電荷の蓄積又は引き抜き動作を禁止し別のメモリセルへの電荷の蓄積又は引き抜き動作を行なうように当該別のメモリセルを指定する書込みアドレスと書込みデータとを伴う書込みコマンドを出力する制御を行うことを特徴とする半導体システム。
【請求項１９】
上記メモリセルに格納すべきデータは、１ビットのバイナリデータとして表現可能である事を特徴とする請求項１８に記載の半導体システム。
【請求項２０】
上記メモリセルに格納すべきデータは、２ビット以上のバイナリデータとして表現可能である事を特徴とする請求項１８に記載の半導体システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、半導体記憶技術さらには情報を電気的に書込み、消去可能な不揮発性メモリを用いたシステムに適用して有効な技術に関し、例えばフラッシュメモリを用いたシステムに利用して有効な技術に関するものである。
【０００２】
【従来の技術】
フラッシュメモリは、コントロールゲートおよびフローティングゲートを有する２層ゲート構造のＭＯＳＦＥＴからなる不揮発性記憶素子をメモリセルに使用しており、フローティングゲートの固定電荷量を変えることでＭＯＳＦＥＴのしきい値電圧を変化させ情報を記憶することができる。
【０００３】
かかるフラッシュメモリにおいては、メモリセルへの書込み・消去動作によるしきい値の変化が、メモリセル同士はもちろん同一メモリセルであっても動作毎にばらつきを有するため、書込み・消去後のメモリセルのしきい値はある範囲に分布するようになる。また、一回の書込み・消去動作では所望のレベルまでメモリセルのしきい値を変化させることができないメモリセルが存在することもある。そこで、フラッシュメモリでは一般に、内部にステータスレジスタを備え、書込みや消去が正常に行なえなかった場合に書込みエラーや消去エラーとして記憶するように構成されることが多い。
【０００４】
そして、フラッシュメモリに書込み、消去の指示を与えるＣＰＵの側では前記ステータスレジスタを参照して、エラーのあったメモリセルを含むセクタを不良セクタとして登録し、以後データの有効記憶領域から除外するなどの処理を行なっていた。
【０００５】
【発明が解決しようとする課題】
しかしながら、前記エラーの発生したメモリセルには、何度書込み、消去を行なっても所望のレベルまでしきい値を変化させることができないものもあるが、一度消去状態としてから再度書込みを行なうと正常に書込みが行なえるもの（以下、これを偶発的な不良と称する）も多い。特に、１つのメモリセルに２ビット以上のデータを記憶させる多値のフラッシュメモリにおいては、各記憶情報に対応されるしきい値の範囲が２値の場合に比べて狭いため、前記のような偶発的な不良が発生し易い。
【０００６】
しかるに、従来のフラッシュメモリにおいては、書込みエラーが発生したビットを有するセクタの詳しいエラー状態がステータスレジスタに反映されていなかった。そのため、エラーの発生したセクタは全て不良セクタとして登録され、有効記憶領域から外されメモリ全体としての記憶容量が少なくなってしまう。また、書込みエラーが発生すると他のセクタと入れかえる代替セクタ処理が行なわれるため、トータルの書込み所要時間が長くなるという課題があることが明らかとなった。
【０００７】
この発明の目的は、フラッシュメモリのような電気的に書込み、消去可能な不揮発性半導体記憶装置を用いたシステムにおいて、偶発的な書込みエラーによって有効な記憶容量が減少するのを防止し、システムとして利用できる記憶容量を増大させることにある。
【０００８】
この発明の他の目的は、フラッシュメモリのような電気的に書込み、消去可能な不揮発性半導体記憶装置を用いたシステムにおいて、代替セクタ処理が行なわれる回数を減らし、トータルの書込み所要時間を短縮できるようにすることにある。
【０００９】
この発明の前記ならびにほかの目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【００１０】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものを概要を簡単に説明すれば、下記のとおりである。
【００１１】
すなわち、不揮発性半導体記憶装置チップ内部のステータスレジスタに、再度書込みを実行することで正常に書込みが行なえる可能性があるか否かを示すビットを設け、該不揮発性半導体装置に対する書込みの指令を行なう制御装置は前記ステータスレジスタの前記ビットの状態に応じて再度同一の領域に対する書込み指令を行なうようにしたものである。
【００１２】
より具体的には、複数の不揮発性メモリセルからなる記憶領域と内部状態を示すステータスレジスタと該ステータスレジスタの少なくとも一部の内容を出力可能な外部端子とを備えた不揮発性半導体記憶装置と、該不揮発性半導体記憶装置に対する書込みの指令および書込み不良の領域の処理を行なう制御装置とを含む記憶システムにおいて、前記ステータスレジスタには、再度書込みを実行することで正常に書込みが行なえる可能性があるか否かを示す第１のビットを設け、前記制御装置は前記第１のビットの状態に応じて再度同一の領域に対する書込み指令を行なうように構成した。
【００１３】
前記した手段によれば、ステータスレジスタの内容を読み出してビットの状態に応じて再書込みを行なうことで一度異常を示したメモリセルであっても正常な書込みが行なえるチャンスが増加し、これによって偶発的な書込みエラーにより有効な記憶容量が減少するのを防止できるようになる。
【００１４】
また、前記ステータスレジスタには、書込みが正常に終了したか否かを示す第２のビットを設け、前記制御装置は前記第２のビットが書込みが正常に終了していないことを示している場合に前記第１のビットの状態に応じた再度の書込み指令を行なうようにする。これにより、書込みが正常に終了している場合には、再度書込みを実行することで正常に書込みが行なえる可能性があるか否かを示す第１のビットをチェックすることなく直ちに書込みを終了することができる。
【００１５】
さらに、前記ステータスレジスタには、チップの外部からアクセスが可能か否かを示す第３のビットを設け、前記制御装置は前記第３のビットが外部からのアクセスが可能であることを示している場合に前記第１のビットの状態に応じた再度の書込み指令を行なうする。これにより、ステータスレジスタの内容を読み出すことにより不揮発性半導体記憶装置がアクセスが可能に状態にあるか否かを正確に知ることができる。
【００１６】
また、前記ステータスレジスタはチップの外部からアクセスが可能か否かを示す第３のビットを有し、前記不揮発性半導体記憶装置は前記第３のビットの状態を反映する外部端子を備え、前記制御装置は前記外部端子の信号が外部からのアクセスが可能であることを示している場合に前記第１のビットの状態に応じた再度の書込み指令を行なうようにする。これにより、制御装置は外部端子の信号を監視することによって、ステータスレジスタの内容を読み出すことなく不揮発性半導体装置内での書込み動作が終了したことを知ることができ、無駄な待ち時間を減らしてトータルの書込み時間を短縮することができる。
【００１７】
また、前記制御装置は、前記書込みが正常に行なえなかった記憶領域を他の記憶領域で置き換える処理を行なう機能を備え、前記第１のビットの状態に基づく再書込みによって正常書込みができなかった場合に当該正常書込みができなかった記憶領域を他の記憶領域で置き換える処理を行なうようにする。これによって偶発的な書込みエラーにより有効な記憶容量が減少するのを防止できるとともに、再書込みによっても正常書込みが行なえなかった記憶領域は不良記憶領域として他の正常な記憶領域と置き替えることができるようになる。
【００１８】
さらに、前記制御装置は、前記書込みが正常に行なえなかった記憶領域を他の記憶領域で置き換える処理を行なう機能を備え、前記第１のビットが第１状態にされていることに基づいて行なわれた再書込みによって正常書込みができなかった場合および前記第２のビットが書込みが正常に終了していないことを示しかつ前記第１のビットが第２状態にある場合に、当該正常書込みができなかった記憶領域を他の記憶領域で置き換える処理を行なようにする。これによって偶発的な書込みエラーと偶発的でない書込みエラーを区別することができ、偶発的でない書込みエラーの際には直ちに他の正常な記憶領域と置き替えることができるようになり、トータルの書込み時間が短縮される。
【００１９】
さらに、前記制御装置は、前記書込みが正常に行なえなかった記憶領域を他の記憶領域で置き換える際に、前記書込みが正常に行なえなかった記憶領域の一部に不良記憶領域であることを表わす情報を書き込むようにする。これにより、誤った情報の読出しを回避できるとともに不良解析にも利用することができる。
【００２０】
さらに、前記制御装置は、前記書込みが正常に行なえなかった記憶領域を他の記憶領域で置き換える際に、前記他の記憶領域に記憶されている情報を読み出して不良記憶領域であるか否かを判定して置き換えを行なうようにする。これにより、無駄な書込み動作を省略することができ、トータルの書込み時間を短縮することができるとともに、無駄な消費電力も減らすことができる。
【００２１】
また、前記制御装置は、前記第１のビットの状態に応じた再度の書込み指令を所定回数行なっても書込みが正常に行なえなかった場合に当該記憶領域を他の記憶領域で置き換える処理を行なうことようにする。これにより、誤って偶発的書込みエラーと判定されて再書込み動作を繰り返す無限ループに入ったり、書込み所要時間が異常に長くなってしまうのを回避することができる。
【００２２】
さらに、前記ステータスレジスタの内容は、前記制御装置から供給される複数の制御信号が所定の組合せにされたときに、外部端子へ出力されるようにする。これにより、制御装置は制御信号の出力という簡単な処理を行なうだけでいち早くステータスレジスタの内容を知ることができる。
【００２３】
本願の第２の発明は、複数の不揮発性メモリセルからなる記憶領域と内部状態を示すステータスレジスタと該ステータスレジスタの少なくとも一部の内容を出力可能な外部端子とを備えた不揮発性半導体記憶装置と、該不揮発性半導体記憶装置に対するアクセスを行なう制御装置とを含むデータ処理システムにおいて、前記ステータスレジスタには、再度書込みを実行することで正常に書込みが行なえる可能性があるか否かを示す第１のビットを有し、前記制御装置は前記第１のビットの状態に応じて再度同一の領域に対する書込み指令を行なうようにしたものである。
【００２４】
前記した手段によれば、制御装置がステータスレジスタの内容を読み出してビットの状態に応じて再書込みの指令を行なうことで一度異常を示した記憶領域であっても正常な書込みが行なえるチャンスが増加し、これによって偶発的な書込みエラーによりシステムの有効な記憶容量が減少するのを防止できるようになる。
【００２５】
本願の第３の発明は、複数の不揮発性メモリセルからなる記憶領域と内部状態を示すステータスレジスタと該ステータスレジスタの少なくとも一部の内容を出力可能な端子とを備えた不揮発性半導体記憶回路と、該不揮発性半導体記憶回路に対する書込みの指令および書込み不良の領域の処理を行なう制御回路とを含む記憶装置と、該記憶装置に対するアクセスを行なうデータ処理装置とを含むデータ処理システムにおいて、前記ステータスレジスタには、再度書込みを実行することで正常に書込みが行なえる可能性があるか否かを示す第１のビットを設け、前記制御回路は前記第１のビットの状態に応じて再度同一の領域に対する書込み指令を行なうようにしたものである。
【００２６】
前記した手段によれば、制御回路がステータスレジスタの内容を読み出してビットの状態に応じて再書込みを行なうことで一度異常を示した記憶領域であっても正常な書込みが行なえるチャンスが増加し、これによって偶発的な書込みエラーによりシステムの有効な記憶容量が減少するのを防止できるとともに、データ処理装置の負担が少なくて済むようになる。
【００２７】
【発明の実施の形態】
以下、本発明の実施例を、図面を用いて説明する。
【００２８】
図１は、本発明の記憶システムに用いられる不揮発性半導体記憶装置としてのフラッシュメモリの一例のブロック図を示す。特に制限されないが、図１のフラッシュメモリは１つのメモリセルに２ビットのデータを記憶可能な多値メモリとして構成され、単結晶シリコンのような１個の半導体チップ上に形成される。図１のフラッシュメモリの特徴は、書込み動作により偶発的な不良が発生した場合、そのことがステータスレジスタに反映されるように構成されている点にある。以下、この点を含めて、実施例のフラッシュメモリの構成を説明する。
【００２９】
特に制限されるものでないが、図１のフラッシュメモリでは、メモリアレイが２つのマットで構成され、２つのマット間に各マット内のビット線ＢＬに接続され読出し信号の増幅およびラッチを行なうセンス＆ラッチ回路（以下センスラッチと称し、図にはＳＬＴと記す）が配置されている。また、マットの外側すなわちビット線ＢＬを挟んでセンス＆ラッチ回路ＳＬＴと反対側にそれぞれ書込み、読出しデータを一時保持するためのラッチ回路が配置されている。以下、このラッチ回路をデータラッチと称し、図にはＤＬＴと記す。
【００３０】
図１において、１０は２つのメモリマットＭＡＴ−Ｕ，ＭＡＴ−Ｄで構成されたメモリアレイ、１１はメモリマットＭＡＴ−Ｕ，ＭＡＴ−Ｄ間に配置されたセンス＆ラッチ回路（以下センスラッチと称し、図にはＳＬＴと記す）である。メモリマットＭＡＴ−Ｕ，ＭＡＴ−Ｄにはそれぞれ、フローティングゲートとコントロールゲートとを有する２重ゲート構造のＭＯＳＦＥＴにより構成されたメモリセルがマトリックス状に配置され、同一行のメモリセルのコントロールゲートは連続して形成されてワード線ＷＬを構成し、同一列のメモリセルのドレインは共通のビット線ＢＬに接続可能にされている。
【００３１】
メモリアレイ１０には、各メモリマットＭＡＴ−Ｕ，ＭＡＴ−Ｄに対応してそれぞれＸ系のアドレスデコーダ（ワードデコーダ）１３ａ，１３ｂが設けられている。該デコーダ１３ａ，１３ｂにはデコード結果に従って各メモリマット内の１本のワード線ＷＬを選択レベルに駆動するワードドライブ回路が含まれる。
【００３２】
２１は４値すなわちメモリセルのしきい値を４段階に変えて情報を記憶する場合に外部から入力された書込みデータを２ビットごとに４値データ（３ビット）に変換するデータ変換回路である。前記データ変換回路２１で変換された書込みデータやメモリセルからの読出しデータを保持するデータラッチ列（ＤＬＴ）１２ａ，１２ｂがメモリマットの外側（図では上下）にそれぞれ配置されている。４値記憶の場合にデータ変換回路２０で変換された３ビットの書込みデータはデータラッチ列１２ａ，１２ｂとセンスラッチ列（ＳＴＬ）１１とに振り分けて保持される。読出し時には、メモリセルから読み出されたデータはデータラッチ列１２ａ，１２ｂとセンスラッチ１１に保持され、適宜論理演算されることで２ビットのデータに逆変換される。
【００３３】
Ｙ系のアドレスデコーダ回路およびこのデコーダによって選択的にオン、オフされて前記データ変換回路２１からのデータを対応するセンスラッチに転送させるカラムスイッチは、データラッチ列１２ａ，１２ｂと一体的に構成されている。図１では、このＹ系デコーダ回路とカラムスイッチとデータラッチ回路とが、１つの機能ブロック（ＤＬＴ）で示されている。
【００３４】
図１のフラッシュメモリは、特に制限されないが、外部のコントロール装置から与えられるコマンド（命令）を解釈し当該コマンドに対応した処理を実行すべくメモリ内部の各回路に対する制御信号を順次形成して出力する制御回路（シーケンサ）３０を備えており、コマンドが与えられるとそれを解読して自動的に対応する処理を実行するように構成されている。前記制御回路３０は、例えばコマンドを実行するのに必要な一連のマイクロ命令群が格納されたＲＯＭ（リード・オンリ・メモリ）３１を備え、マイクロ命令が順次実行されてチップ内部の各回路に対する制御信号を形成するように構成される。さらに、制御回路３０は、内部の状態を反映するステータスレジスタ３２を備えている。
【００３５】
また、図１の多値フラッシュメモリには、書込みまたは消去に使用される高電圧を発生する内部電源回路２２や、メモリアレイ１０から読み出された信号を増幅するメインアンプ回路２３ａ，２３ｂ、外部から入力される書込みデータ信号およびコマンドを取り込む入力バッファ回路２４、メモリアレイから読み出されたデータ信号および前記ステータスレジスタ３２の内容を外部へ出力するための出力バッファ回路２５、外部から入力されるアドレス信号を取り込むアドレスバッファ回路２６、入力されるアドレス信号を取り込んでカウントアップ動作しＹ系のアドレスを発生するアドレスカウンタ２７等が設けられている。前記入力バッファ回路２４、出力バッファ回路２５およびアドレスバッファ回路２６は、切換えスイッチ２８を介して共通の入出力端子Ｉ／Ｏ０〜Ｉ／Ｏ７に接続されており、時分割でデータやコマンド、アドレス信号を入出力するように構成されている。
【００３６】
前記内部電源回路２２は、書込み電圧等の基準となる電圧を発生する基準電源発生回路や外部から供給される電源電圧Ｖccに基づいて書込み電圧、消去電圧、読出し電圧、ベリファイ電圧等チップ内部で必要とされる電圧を発生する内部電源発生回路、メモリの動作状態に応じてこれらの電圧の中から所望の電圧を選択してワードデコーダ１３ａ，１３ｂ等に供給する電源切り替え回路、これらの回路を制御する電源制御回路等からなる。なお、図１において、４１は外部から電源電圧Ｖccが印加される電源電圧端子、４２は同じく接地電位Ｖssが印加される電源電圧端子（グランド端子）である。
【００３７】
外部のコントロール装置から前記フラッシュメモリに入力される制御信号としては、例えばリセット信号ＲＥＳやチップ選択信号ＣＥ、書込み制御信号ＷＥ、出力制御信号ＯＥ、コマンドもしくはデータ入力かアドレス入力かを示すためのコマンドイネーブル信号ＣＤＥ、システムクロックＳＣ等がある。コマンドとアドレスはコマンドイネーブル信号ＣＤＥと書込み制御信号ＷＥとに従って、入力バッファ回路２５とアドレスバッファ回路２７にそれぞれ取り込まれ、書込みデータはコマンドイネーブル信号ＣＤＥがコマンドもしくはデータ入力を示しているときに、システムクロックＳＣが入力されることでこのクロックに同期して入力バッファ回路２５に取り込まれる。さらに、前記フラッシュメモリには、メモリ内部の状態を反映するステータスレジスタ３２の所定のビットに応じて、外部からアクセスが可能か否かを示すレディ・ビジィ信号Ｒ／Ｂを外部端子４３へ出力する出力バッファ２９が設けられている。
【００３８】
図２は、前記フラッシュメモリのメモリアレイ１０の概略構成を示す。メモリアレイ１０内には複数のメモリセルＭＣはマトリックス状に配置され、同一行のメモリセルのコントロールゲートが接続されたワード線ＷＬと、同一列のメモリセルのドレインが接続されたビット線ＢＬとは交差する方向に配設され、各メモリセルのソースは、接地電位を与える共通ソース線ＳＬに接続されている。ソース線ＳＬにはスイッチＳＷが設けられており、書込み時にメモリセルのソースをオープン状態にできるようにされている。
【００３９】
各ビット線ＢＬの一端にはビット線の電位を増幅するセンスアンプ機能とデータの保持機能を有するセンスラッチ回路１１がビット線毎に接続され、各ビット線ＢＬの他端にはデータの保持機能を有するデータラッチ回路１２ａ（１２ｂ）がビット線毎に接続されている。このデータラッチ回路１２ａ（１２ｂ）は、多値メモリとして動作するときに選択メモリセルのしきい値を段階的に変化させるためのデータを保持するのに使用される。
【００４０】
また、センスラッチ回路１１やデータラッチ回路１２ａ（１２ｂ）は、対応するビット線と電気的に接続したり切り離すためのスイッチ素子やビット線をディスチャージする手段を備える。センスラッチ回路１１には、ビット線上のデータの論理を反転するための反転回路が設けられていても良い。かかるスイッチ素子や反転回路を備えることにより、４値記憶の場合に、メモリセルから読出しレベルを変えて読み出されたデータ同士をビット線上でワイヤード演算することによりメモリアレイ内で２ビットデータへのデータ変換を行なうことができる。
【００４１】
特に制限されるものでないが、前記フラッシュメモリは、各メモリセルに２値のデータを記憶したり、４値のデータを記憶できるように構成されている。図３（ａ），（ｂ）はそれぞれメモリセルに２値のデータを記憶する場合と、４値のデータを記憶する場合のしきい値の分布が示されている。２値データを記憶する場合、記憶データ“１”に対応するメモリセルのしきい値は例えば４．３Ｖ±０．７Ｖのような範囲に入るようにベリファイ電圧Ｖwvh，Ｖwvlが設定される。また、記憶データ“０”に対応するメモリセルのしきい値は例えば１．５Ｖ±０．７Ｖのような範囲に入るようにベリファイ電圧Ｖevh，Ｖevlが設定される。そして、読出し電圧Ｖｒは、中間の２．９Ｖのようなレベルとされる。
【００４２】
４値データを記憶する場合、記憶データ“１１”に対応するメモリセルのしきい値は例えば４．８Ｖ以上となるように書込みベリファイ電圧ＶWV4が設定される。また、記憶データ“１０”に対応するメモリセルのしきい値は例えば３．６Ｖ±０．４Ｖ、記憶データ“０１”に対応するメモリセルのしきい値は例えば２．２Ｖ±０．４Ｖ、記憶データ“００”に対応するメモリセルのしきい値は例えば１．０Ｖ±０．４Ｖのような範囲にそれぞれ入るように書込みベリファイ電圧ＶWE3，ＶWV3、ＶWE2，ＶWV2、ＶWE1，ＶWV1が設定される。そして、４値の読出し電圧Ｖｒ１，Ｖｒ２，Ｖｒ３はそれぞれ１．５Ｖ，２．９Ｖ，３．８Ｖのようなレベルとされる。
【００４３】
特に制限されないが、前記フラッシュメモリにおいては、書込み時にワード線ＷＬ（コントロールゲート）に正の高電圧（例えば＋１６Ｖ）を印加してＦＮトンネル現象を利用してメモリセルのフローティングゲートに負の電荷を注入してそのしきい値を高くする。そのため、ビット線ＢＬには書込みデータに応じて、しきい値を高くしたいメモリセル（例えばデータ“１”）が接続されたビット線はプリチャージされない、つまり０Ｖにされる。一方、しきい値を高くしたくないメモリセル（例えばデータ“０”）が接続されたビット線ＢＬは５．５Ｖにプリチャージされる。なお、書込みの際、各選択メモリセルのソースはフローティング（オープン）にされる。データ消去時には、ワード線ＷＬ（コントロールゲート）に負の高電圧（例えば−１６Ｖ）を印加するとともにビット線ＢＬおよびソース線ＳＬに０Ｖを印加してＦＮトンネル現象によりメモリセルのフローティングゲートから負の電荷を引き抜いてそのしきい値を低くするように構成されている。
【００４４】
表１に、前記フラッシュメモリにおけるステータスレジスタ３２の構成例を示す。
【００４５】
【表１】
0004082482.tif 000002
【００４６】
表１に示されているように、ステータスレジスタ３２はビットＢ７〜ビットＢ０の８ビットで構成されており、このうちビットＢ７はチップの内部制御状態を示すビット（以下、Ｒ／Ｂビットと記す）、ビットＢ６は再書込みを行なったか否かを示すビット（以下、リトライチェックビットと称する）、ビットＢ５は消去結果を示すビット（以下、消去チェックビットと称する）、ビットＢ４は書込み結果を示すビット（以下、書込みチェックビットと称する）、ビットＢ３〜ビットＢ０は予備のビットである。
【００４７】
具体的には、ビットＢ７が論理“０”のときはチップが動作状態にあり外部からのアクセスが不能であることを、またビットＢ７が“１”のときはチップ内部が待機状態にあって、外部からのアクセスが可能であることを表わしている。また、ビットＢ６が論理“０”のときは再書込みを行なわなかったことを、ビットＢ６が“１”のときは再書込みを行なったことを表わしている。さらに、ビットＢ５が論理“０”のときは正常に消去が終了したことを、ビットＢ５が“１”のときは正常に消去が終了しなかったことを表わしている。また、ビットＢ４が論理“０”のときは正常に書込みが終了したことを、ビットＢ４が“１”のときは正常に書込みが終了しなかったことを表わしている。
【００４８】
前記ステータスレジスタ３２のビットＢ７〜Ｂ０のうちＲ／ＢビットＢ７の状態は常時バッファ２９により外部端子４３へ出力されるとともに、例えば図４に示すように、外部から供給されるチップイネーブル信号／ＣＥとアウトイネーブル信号／ＯＥがロウレベルにアサートされるとビットＢ７〜Ｂ０のすべての状態が入出力端子Ｉ／Ｏ７〜Ｉ／Ｏ０より出力される。また、ステータスレジスタ３２の各ビットＢ７〜Ｂ０の設定は、制御回路３０によって各制御状況に応じて逐次設定される。次に、前記ステータスレジスタ３２の各ビットＢ７〜Ｂ０へのビットの具体的な設定手順を、書込みを例にとって図５を参照しながら説明する。
【００４９】
図５のフローチャートは、外部のコントロール装置からフラッシュメモリに対して書込みコマンドが入力されることで開始される。制御回路３０は、入力されたコマンドを解読して書込みコマンドであることを認知すると、書込みアドレスおよび書込みデータの取込み等の準備処理（ステップＳ１）を行なった後、図６（ａ）に示すように書込み対象のセクタ（以下、選択セクタと称する）のメモリセルをすべて一旦消去状態（データ“００”に対応した最もしきい値の低い状態）にする（ステップＳ２）。前記ステータスレジスタ３２のＲ／ＢビットＢ７の論理“０”の設定は、前記ステップＳ１の書込み準備処理の中で行なわれる。
【００５０】
次に、選択セクタ内のすべてのメモリセルのしきい値Ｖthが消去ベリファイ電圧ＶWE1よりも低くなっているか判定する（ステップＳ３）。そして、１つでもＶWE1よりも高いしきい値のメモリセルがあるときはステップＳ１８へジャンプして書込みチェックビットを論理“１”に設定し、さらにステップＳ２０でＲ／ＢビットＢ７を論理“１”に設定して書込み処理を終了する。
【００５１】
一方、ステップＳ３ですべてのメモリセルのしきい値ＶthがＶWE1よりも低くなっていると判定したときは、ステップＳ４へ移行して弱い書込みを行なってしきい値の下がり過ぎたメモリセルのしきい値を上げてやる。次いで、選択セクタ内のすべてのメモリセルのしきい値Ｖthが書込みベリファイ電圧ＶWV1よりも高くなっているか判定する（ステップＳ５）。そして、１つでもＶWV1よりも低いしきい値のメモリセルがあるときはステップＳ１８へジャンプして書込みチェックビットを論理“１”に設定し、さらにステップＳ２０でＲ／ＢビットＢ７を論理“１”に設定して書込み処理を終了する。
【００５２】
前記ステップ５ですべてのメモリセルのしきい値Ｖthがベリファイ電圧ＶWV1よりも高くなっていると判定するとステップＳ６へ進み、再度すべてのメモリセルのしきい値Ｖthが消去ベリファイ電圧ＶWE1よりも低くなっているか判定し１つでもＶWV1よりも低いしきい値のメモリセルがあるときはステップＳ１８へジャンプして書込みチェックビットを論理“１”に設定し、さらにステップＳ２０でＲ／ＢビットＢ７を論理“１”に設定して書込み処理を終了する。
【００５３】
一方、ステップＳ６ですべてのメモリセルのしきい値ＶthがＶWE1よりも低くなっていると判定したときは、ステップＳ７へ移行して図６（ｂ）のようにデータ“１１”を書込むメモリセルすなわちしきい値を最も高くしたいメモリセルを対象とした書込み（レベル４の書込みと称する）を行なう。かかる選択的な書込みはしきい値を上げたいメモリセルが接続されたビット線は０Ｖにプリチャージし、しきい値を上げたくないメモリセルが接続されたビット線は５．５Ｖのような電位にプリチャージしてから選択ワード線に高電圧を印加することで可能である。次いで、選択セクタ内のすべてのメモリセルのしきい値Ｖthが書込みベリファイ電圧ＶWV4よりも高くなっているか判定する（ステップＳ８）。そして、１つでもＶWV4よりも低いしきい値のメモリセルがあるときはステップＳ１８へジャンプして書込みチェックビットを論理“１”に設定し、さらにステップＳ２０でＲ／ＢビットＢ７を論理“１”に設定して書込み処理を終了する。
【００５４】
前記ステップＳ８ですべてのメモリセルのしきい値ＶthがＶWE4よりも高くなっていると判定したときは、ステップＳ９へ移行して図６（ｃ）のようにデータ“１０”を書込むメモリセルすなわちしきい値を２番目に高くしたいメモリセルを対象とした書込み（レベル３の書込みと称する）を行なう。次いで、選択セクタ内のすべてのメモリセルのしきい値Ｖthが書込みベリファイ電圧ＶWV3よりも高くなっているか判定する（ステップＳ１０）。そして、１つでもＶWV3よりも低いしきい値のメモリセルがあるときはステップＳ１８へジャンプして書込みチェックビットを論理“１”に設定し、さらにステップＳ２０でＲ／ＢビットＢ７を論理“１”に設定して書込み処理を終了する。
【００５５】
前記ステップＳ１０ですべてのメモリセルのしきい値ＶthがＶWE3よりも高くなっていると判定したときは、ステップＳ１１へ移行して図６（ｄ）のようにデータ“０１”を書込むメモリセルすなわちしきい値を３番目に高くしたいメモリセルを対象とした書込み（レベル２の書込みと称する）を行なう。次いで、選択セクタ内のすべてのメモリセルのしきい値Ｖthが書込みベリファイ電圧ＶWV2よりも高くなっているか判定する（ステップＳ１２）。そして、１つでもＶWV2よりも低いしきい値のメモリセルがあるときはステップＳ１８へジャンプして書込みチェックビットＢ４を論理“１”に設定し、ステップＳ２０でＲ／ＢビットＢ７を論理“１”に設定して書込み処理を終了する。
【００５６】
前記ステップＳ１２ですべてのメモリセルのしきい値ＶthがＶWE2よりも高くなっていると判定したときは、ステップＳ１３〜Ｓ１５へ移行して図６（ｅ）のように、レベル３の書込みを行なったメモリセルのしきい値がベリファイ電圧ＶWE3よりも低くなっているか、レベル２の書込みを行なったメモリセルのしきい値がベリファイ電圧ＶWE2よりも低くなっているか、書込みを行なわなかったメモリセルのしきい値がベリファイ電圧ＶWE1よりも低くなっているか、それぞれ判定する。かかる判定は、データラッチ回路に保持されている書込みデータを利用してビット線をプリチャージしてから読出し動作を行なうことで可能である。
【００５７】
そして、ステップＳ１３〜Ｓ１５の判定ですべてベリファイ電圧を満足しているときはステップＳ１６へ移行して書込みチェックビットを“０”に設定してからステップＳ２０でＲ／ＢビットＢ７を論理“１”に設定して書込み処理を終了する。一方、ステップＳ１３〜Ｓ１５の判定で１つでもベリファイ電圧を満足していないメモリセルがあったときは、ステップＳ１７へジャンプして書込み処理回数が「ｎ」（ｎは０又は正の整数で、一般には「１」にされる）以下か否か判定し、「ｎ」以下のときはステップＳ２へ戻って前記動作を繰り返して再書込み処理を行なう。また、再書込みを行なってもステップＳ１３〜Ｓ１５の判定で１つでもベリファイ電圧を満足していないメモリセルがあったときは、ステップＳ１７からステップＳ１９へジャンプしてリトライチェックビットＢ６を論理“１”に設定し、さらにステップＳ２０でＲ／ＢビットＢ７を論理“１”に設定して書込み処理を終了する。ｎを「０」にして再書込み処理を行なわずにリトライチェックビットＢ６を論理“1”に設定するようにしてもよい。
【００５８】
図７は図１のフラッシュメモリのメモリアレイに４値ではなく通常の２値のデータを書き込む場合の手順を示す。この場合にもステータスレジスタ３２の各ビットＢ７〜Ｂ０の意味する内容は同じであり、表１に示されているとおりである。
【００５９】
図７のフローチャートと図５のフローチャートとの違いは、図７のフローチャートでは図５のフローチャートにおけるステップＳ９〜Ｓ１４，Ｓ２３〜Ｓ２６が省略されている点と、ステップＳ８におけるベリファイ電圧ＶWV4'とステップＳ１５におけるベリファイ電圧ＶWE1'が多値の場合の図５のフローチャートに比べて緩くなっている（ＶWV4＜ＶWV4'，ＶWE1＜ＶWE1'）点である。
【００６０】
以上説明したように、前記フラッシュメモリはステータスレジスタ３２にリトライチェックビットＢ６が設けられ、そのビットの状態を外部より知ることができるように構成されているため、外部のコントロール装置はリトライチェックビットＢ６を読み出してそれが“１”すなわちリトライ状態を示しているときは再度書込みコマンドとアドレス、データを与えて再書込みを行なうことで、従来は不良セクタとして登録して有効記憶領域から外していたセクタを有効に利用できるようになる。
【００６１】
すなわち、前述のような書込み、消去方式をとるフラッシュメモリでは書込み後のベリファイ動作でしきい値分布の下限判定（Ｖth＞ＶWV）で不良と判定される場合は再現性のある不良であることが多いのに対し、書込み後のベリファイ動作でしきい値分布の上限判定（Ｖth＜ＶWE）で不良と判定される場合は再現性のない偶発的不良であることが多いことが経験的に分かっている。そして、このような場合、前記実施例ではリトライチェックビットＢ６に“１”がセットされるため、書込みエラーが発生してもビットＢ６がリトライ状態を示すような場合には、再度書込みを行なえばエラーを起こすことがなく書込みを終了できる確率がかなり高いので、そのような疑似不良セクタを不良セクタとせずに良セクタとして扱うことができ有効記憶容量を大きくすることができる。
【００６２】
図８には、前記フラッシュメモリを用いた記憶システムの一実施例が示されている。
【００６３】
この実施例のシステムは、特に制限されるものでないが、３個のフラッシュメモリＦＬＭ１，ＦＬＭ２，ＦＬＭ３とこれらのフラッシュメモリに対する書込みや読出しなどの制御を行なうフラッシュコントローラＦ−ＣＮＴとにより構成されている。３個のフラッシュメモリＦＬＭ１，ＦＬＭ２，ＦＬＭ３は、それぞれ上述したような構成を有し、フラッシュコントローラＦ−ＣＮＴから出力されるチップイネーブル信号ＣＥ、ライトイネーブル信号ＷＥ、アウトイネーブル信号ＯＥ、コマンドイネーブル信号ＣＤＥにより制御されるとともに、バスＢＵＳを介してデータの送受信が可能に接続がされる。
【００６４】
また、フラッシュコントローラＦ−ＣＮＴからフラッシュメモリＦＬＭ１，ＦＬＭ２，ＦＬＭ３へは同期用のクロック信号ＳＣも供給される。さらに、フラッシュコントローラＦ−ＣＮＴは図示しないホストＣＰＵと通信可能に接続される。このようなシステムとしては、例えばコンパクトフラッシュのようなメモリカードが考えられる。ただし、フラッシュメモリを使用するシステムは図８のような例に限られるものでなく、例えば１個のフラッシュメモリがＣＰＵと１：１の関係で搭載されている携帯電話のような電子機器であってもよい。
【００６５】
前記フラッシュコントローラＦ−ＣＮＴは、ホストＣＰＵから与えられる命令を解釈し当該命令に対応した処理を実行すべくフラッシュメモリに対する制御信号を順次形成して出力する制御回路（シーケンサ）４０を備え、命令が与えられるとそれを解読して自動的に対応する処理を実行するように構成されている。前記制御回路４０は、例えばコマンドを実行するのに必要な一連のマイクロ命令群が格納されたＲＯＭ（リード・オンリ・メモリ）４１を備え、マイクロ命令が順次実行されてチップ内部の各回路に対する制御信号を形成するように構成される。また、フラッシュコントローラＦ−ＣＮＴには、ＲＡＭ４２が設けられ、このＲＡＭ内には不良セクタを管理するテーブル（以下、ＭＧＭテーブルと称する）が格納される。
【００６６】
次に、前記フラッシュコントローラＦ−ＣＮＴによる前記リトライチェックビットを利用した書込み動作の手順を、図９のフローチャートおよび図１０〜図１４のタイミングチャートを用いて説明する。
【００６７】
図９のフローチャートに従った書込み制御は、ホストＣＰＵからフラッシュコントローラＦ−ＣＮＴに書込み命令が入力されることで開始される。フラッシュコントローラＦ−ＣＮＴは、書込み制御を開始すると、先ず図８の３個のフラッシュメモリＦＬＭ１〜ＦＬＭ３のうち１つを選択するために各チップに対応したチップイネーブル信号ＣＥ１〜ＣＥ３の中のいずれか１つをロウレベルのような選択レベルにアサートする（図９のステップＳ１０１，図１０のタイミングｔ１）。
【００６８】
次に、ファーストコマンド（１０Ｈ）と書込みアドレス（ＳＡ１，ＳＡ）および書込みデータ（Ｄ１，Ｄ２，……Ｄｎ）を生成してバスＢＵＳ上に順次出力するとともに、これと並行して書込みを示すライトイネーブル信号ＷＥやコマンドかアドレスかを示すコマンドイネーブル信号ＣＤＥも出力する（図９のステップＳ１０２，図１０の期間Ｔ１）。それから、ライトイネーブル信号ＷＥを立ち下げるとともに書込み開始コマンド（４０Ｈ）を出力する（図９のステップＳ１０３，図１０のタイミングｔ２）。これによって、選択されたフラッシュメモリでは、図５または図７のフローチャートに従って書込み処理が行なわれる。
【００６９】
フラッシュコントローラＦ−ＣＮＴは、書込み開始コマンド出力後、例えば内部のタイマを起動して所定時間待った後に、アウトイネーブル信号ＯＥ１〜ＯＥ３の中の前記ＣＥ１〜ＣＥ３に対応したいずれか１つをロウレベルのような選択レベルにアサートして、ステータスレジスタの読出しのためアウトイネーブル信号ＯＥの立ち下げを行なう。ただし、コマンドイネーブル信号ＣＤＥはハイレベルのままとする（図９のステップＳ１０４，図１０のタイミングｔ３）。
【００７０】
この実施例で使用されるフラッシュメモリは図４に示されているようにチップイネーブル信号ＣＥとアウトイネーブル信号ＯＥがロウレベルにアサートされるだけでステータスレジスタの内容が入出力端子Ｉ／Ｏより出力されるように構成されているので、図１０のような信号によりステータスレジスタのコード読出しを行なうことができる。そして、読み出されたコードの書込みチェックビットＢ４を見て正常に書込みが終了したか判定し、正常に書込みが終了していれば処理を終了する（ステップＳ１０５）。
【００７１】
なお、タイマを用いてフラッシュメモリで書込みが終了するのを待つ代わりに、フラッシュメモリから出力されるレディ・ビジィ信号Ｒ／Ｂを周期的に読みに行って、レディー状態に変化したらステータスレジスタを読み出すようにしても良いし、周期的にステータスレジスタを読みに行くようにしても良い。また、ステップＳ１０４ではステータスレジスタ全体を読みに行っているが、書込みチェックビットＢ４のみを読み出すようにしても良い。
【００７２】
ステップＳ１０５で正常に終了していないと判定するとステップＳ１０６へ移行して、ステップＳ１０４で読み込んだステータスレジスタのリトライチェックビットＢ６を見てリトライ状態になっているか判定する。そして、リトライ状態になっていればステップＳ１０７で２回目か判定し２回目でないすなわち１回目であればステップＳ１０３へ戻って書込み開始コマンドをフラッシュメモリへ再送して再度書込みを行なわせる（図１１参照）。図１１にも示されているように、再書込みの際には書込みアドレスや書込みデータはすでに送信済みであるため、前回のアドレスとデータを使用することを指示するコマンド（１ＦＨ）と書込み開始コマンド（４０Ｈ）が、フラッシュコントローラＦ−ＣＮＴから選択フラッシュメモリへ送信される。
【００７３】
ステップＳ１０６でリトライ状態でないと判定したときあるいはステップＳ１０７で２回目のリトライ状態と判定したときはステップＳ１０８へ移行する。ステップＳ１０８ではセクタ管理用のＭＧＭテーブルを見て代替セクタがあるか否か判定し、代替セクタがないときは異常として終了する。代替セクタがあるときはＭＧＭテーブルを書き換えるとともに、消去コマンド（２０Ｈ）と最初に書込みを行なおうとしてセクタを示すアドレスをフラッシュメモリへ送ってその管理領域に書き込まれている良セクタか否かを示すデータ（ＭＧＭコード）を消去する（図９のステップＳ１０９，図１２の期間Ｔ２）。そして、内部のタイマを起動して所定時間待った後に、ステータスレジスタの消去チェックビットＢ５の読出しコマンド（８０Ｈ）を出力して消去チェックビットＢ５を読み出す（図９のステップＳ１１０，図１２のタイミングｔ４）。それから、読み出されたビットをチェックして正常に消去されているか判定し、正常に消去されていなければ異常終了する（ステップＳ１１１）。
【００７４】
一方、ステップＳ１１１で正常に消去されていればステップＳ１１２へ移行してアウトイネーブル信号ＯＥ１〜ＯＥ３の中の前記ＣＥ１〜ＣＥ３に対応したいずれか１つをロウレベルのような選択レベルにアサートして、セクタのデータの読出しコマンド（００Ｈ）とアドレスを出力する（図１３の期間Ｔ３）。そして、所定時間待機した後、次のステップＳ１１３で、読み出されたセクタのＭＧＭコードをチェックして良セクタか否か判定する。
【００７５】
そして、良セクタであればステップＳ１０２へ戻ってファーストコマンド（１０Ｈ）と書込みアドレス（ＳＡ１，ＳＡ）および書込みデータ（Ｄ１，Ｄ２，……Ｄｎ）を出力し、さらに書込み開始コマンドをフラッシュメモリへ送って当該代替セクタへデータの書込みを行なわせる（図１４の期間Ｔ４）。また、ステップＳ１１３でＭＧＭコードが不良セクタを示しているときはステップＳ１１４へ移行して代替セクタがあるか判定し、ある場合はステップＳ１１２へ戻って前記処理を繰り返す。また、代替セクタがないときは異常終了とする。
【００７６】
なお、代替セクタへの書込みの際には、既にステップＳ１１２で代替セクタの読出しのためにアドレスを送っており、また書込みデータもステップＳ１０２で送っているので、図９に破線で示すようにステップＳ１１３からステップＳ１０３へ戻るようにすることも可能である。あるいは、ステップＳ１０２へ戻ったときに代替セクタアドレスは送信せずに所定の書込みコマンドと書込みデータのみを送信するようにしても良い。
【００７７】
図１５には、前記フラッシュメモリを用いた記憶システムの他の実施例が示されている。このうち（Ａ）は図８に示されているフラッシュコントローラＦ−ＣＮＴが、ＣＰＵが形成された半導体チップと同一のチップ上に形成されている場合のシステム例、（Ｂ）はＣＰＵが図８に示されているフラッシュコントローラＦ−ＣＮＴの機能をソフトウェアで実現するように構成された場合のシステム例、（Ｃ）は図８に示されているフラッシュコントローラＦ−ＣＮＴとフラッシュメモリＦＬＭとが同一の半導体チップ上に形成された場合のシステム例である。
【００７８】
これらのシステムにおいても、フラッシュメモリ内のステータスレジスタのリトライチェックビットを利用することで有効セクタ数を多くして記憶容量の低下を防止できるとともに、代替セクタの管理のための処理を減らすことができるため、トータルの書込み時間を短縮することができる。
【００７９】
以上本発明者によってなされた発明を実施例に基づき具体的に説明したが、本発明は前記実施例に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、実施例においては、消去によりメモリセルのしきい値を下げ書込みによりメモリセルのしきい値を上げる方式のフラッシュメモリを用いたシステムについて説明したが、本発明は消去によりメモリセルのしきい値を上げ書込みによりメモリセルのしきい値を下げる方式のフラッシュメモリを用いたシステムに対しても適用することができる。
【００８０】
また、実施例においては、外部からフラッシュメモリに入力される制御信号のうちチップイネーブル信号ＣＥとアウトイネーブル信号ＯＥとの状態によってステータスレジスタ３２の内容を入出力端子Ｉ／Ｏ０〜Ｉ／Ｏ７より出力するように構成しているが、他の制御信号の組合せによって出力させたり、レディ・ビジィ信号Ｒ／Ｂがレディー状態を示すハイレベルのときは常時ステータスレジスタ３２の内容を入出力端子Ｉ／Ｏ０〜Ｉ／Ｏ７より出力させたり、ステータスレジスタ３２にアドレスを割り付けるとともにデコーダを設け外部からアドレスを与えることでステータスレジスタの内容を読み出せるように構成されていても良い。
【００８１】
また、前記実施例においては、フローティングゲートを有する記憶素子への書込みと消去をそれぞれＦＮトンネル現象を利用して行なうように構成されたフラッシュメモリを用いたシステムについて説明したが、書込みはドレイン電流を流して発生したホットエレクトロンで行ない、消去はＦＮトンネル現象を利用して行なうように構成されたフラッシュメモリを用いたシステムに対しても適用することができる。
【００８２】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるフラッシュメモリを用いたシステムに適用した場合について説明したが、この発明はそれに限定されるものでなく、本発明は、電圧を印加してしきい値を変化させて情報の記憶を行なう不揮発性半導体メモリを用いたシステムに広く利用することができる。
【００８３】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００８４】
すなわち、本発明に従うと、フラッシュメモリのような電気的に書込み、消去可能な不揮発性半導体記憶装置を用いたシステムにおいて、偶発的な書込みエラーによって有効な記憶容量が減少するのを防止し、システムとして利用できる記憶容量を増大させるとともに、代替セクタ処理が行なわれる回数を減らし、トータルの書込み所要時間を短縮することができる。
【図面の簡単な説明】
【図１】本発明の記憶システムに用いられる不揮発性半導体記憶装置としてのフラッシュメモリの一例を示すブロック図である。
【図２】実施例のフラッシュメモリのメモリアレイの概略構成を示す回路構成図である。
【図３】メモリセルに２値のデータを記憶する場合と、４値のデータを記憶する場合のしきい値の分布を示す説明図である。
【図４】図１のフラッシュメモリにおけるステータスレジスタの内容の出力タイミングを示すタイミングチャートである。
【図５】実施例のフラッシュメモリにおける書込み処理およびステータスレジスタの各ビットの具体的な設定の手順を示すフローチャートである。
【図６】図５のフローチャートに従った書込み処理におけるメモリセルしきい値の変化とベリファイ電圧との関係を示す説明図である。
【図７】図１のフラッシュメモリにおいて２値のデータを書き込む場合における書込み処理およびステータスレジスタの各ビットの具体的な設定の手順を示すフローチャートである。
【図８】図１のフラッシュメモリを用いた本発明に係る記憶システムの一実施例を示すブロック図である。
【図９】図８の記憶システムにおいてフラッシュコントローラによりフラッシュメモリにデータを書き込む場合における書込み制御の具体的な手順の一例を示すフローチャートである。
【図１０】フラッシュコントローラによりフラッシュメモリに書込み指令を入力する際の信号のタイミングを示すタイミングチャートである。
【図１１】フラッシュコントローラによりフラッシュメモリに再書込み指令を入力する際の信号のタイミングを示すタイミングチャートである。
【図１２】フラッシュコントローラによりフラッシュメモリの管理領域に書き込まれているデータ（ＭＧＭコード）を消去する指令を入力する際の信号のタイミングを示すタイミングチャートである。
【図１３】フラッシュコントローラによりフラッシュメモリの代替セクタの管理領域に書き込まれているデータを読み出す指令を入力する際の信号のタイミングを示すタイミングチャートである。
【図１４】フラッシュコントローラによりフラッシュメモリの代替セクタの管理領域にデータを書き込む指令を入力する際の信号のタイミングを示すタイミングチャートである。
【図１５】フラッシュメモリを用いた本発明に係る記憶システムの他の実施例を示すブロック図である。
【符号の説明】
１０  メモリアレイ
１１  センスラッチ
１２ａ，１２ｂ  データラッチ
１３ａ，１３ｂ  Ｘデコーダ
２１  データ変換回路
２２  内部電源回路
２３  ａ，２３ｂ  メインアンプ回路
２４  入力バッファ回路
２５  出力バッファ回路
２６  アドレスバッファ回路
２７  アドレスカウンタ
２８  入出力切換えスイッチ
２９  Ｒ／Ｂ信号出力バッファ
３０  制御回路
ＦＬＭ  フラッシュメモリ
Ｆ−ＣＮＴ  フラッシュコントローラ
【図１】
0004082482.tif 000003
【図２】
0004082482.tif 000004
【図３】
0004082482.tif 000005
【図４】
0004082482.tif 000006
【図５】
0004082482.tif 000007
【図６】
0004082482.tif 000008
【図７】
0004082482.tif 000009
【図８】
0004082482.tif 000010
【図９】
0004082482.tif 000011
【図１０】
0004082482.tif 000012
【図１１】
0004082482.tif 000013
【図１２】
0004082482.tif 000014
【図１３】
0004082482.tif 000015
【図１４】
0004082482.tif 000016
【図１５】
0004082482.tif 000017