(57)【要約】      （修正有）【課題】２以上のシーケンシャルなプログラミングパス時にメモリセルのプログラミングが行われるプログラミング方式において、メモリセルのうちの少なくともいくつかのメモリセルを第２のパス中にプログラムするのに不十分なホストデータしか存在しないとき、誤ったプログラミングが生じない方式を提供する。【解決手段】プログラミング方式を変更することによって、誤ったプログラミングの防止が可能となる。第２のプログラミングパス中、誤ったしきい値電圧に合わせたプログラミングをこのメモリセルに行わせないようにするコード構成を選択することにより、エラーを含む状態に合わせたプログラミングをこのセルに行わせないようにする代替データに基づいてこのメモリセルのプログラミングを行う。【選択図】図７
2011258309.tif 000002
【特許請求の範囲】
【請求項１】
データを対応する異なる電荷蓄積レベルとして蓄積するタイプの不揮発性電荷蓄積素子を含むメモリシステムをプログラムする方法であって、
少なくとも２回のパスで前記電荷蓄積素子をプログラムしてデータを蓄積するための３つ以上の電荷蓄積レベルのうちの１つに変える、プログラムするステップであって、前記電荷蓄積素子をグループ化して、複数のグループに変え、各グループは少なくとも２ビットのフラグデータを蓄積するための少なくとも１つの対応するフラグ電荷蓄積セルを有し、前記フラグデータの各ビットは前記パスのうちの１つと関連する、プログラムするステップを有し、
前記プログラムするステップは先のパスと先のパスの後に実施される後のパスを有する少なくとも２回のシーケンシャルなパスで実施され、前記プログラムするステップにより先のパスと関連するフラグデータビット値を先のパスの後にセットする方法。
【請求項２】
請求項１記載の方法において、
先のパスに関連するフラグデータビット値を、後のパスの間にセットする方法。
【請求項３】
請求項１記載の方法において、
前記電荷蓄積素子がグループ化されてページとなり、各ページは２つ以上の前記グループを含み、前記プログラムするステップは、前記ページのうちの１ページ毎に前記電荷蓄積素子をプログラムし、前記ページのうちの１つが、ホストデータに従い後のパス中にプログラムされた電荷蓄積素子の少なくとも第１のグループ、およびプログラムするにはホストデータが不十分なため後のパス中にプログラムされなかった電荷蓄積素子の少なくとも第２のグループを有し、前記第１および第２のグループ内のフラグ電荷蓄積セルの中に蓄積されている先のパスと関連するフラグデータビット値が、十分なホストデータを有する電荷蓄積素子および十分なホストデータを有していない電荷蓄積素子の間の境界を示す方法。
【請求項４】
請求項１記載の方法において、
前記グループ内のフラグ電荷蓄積セルの中に蓄積された先のパスと関連するフラグデータビット値に従い、複数の異なる読み出しシーケンスから選択された読み出しシーケンスに従って、前記グループの電荷蓄積素子内に蓄積されたデータを読み出すステップをさらに有する方法。
【請求項５】
請求項１記載の方法において、
前記プログラムするステップが、複数のグループのうちの１つのグループのフラグ電荷蓄積セルの中に蓄積された先のパスと関連するフラグデータビット値を、前記グループの電荷蓄積素子が後のパス中にプログラムされたかどうかを示すようにセットする方法。
【請求項６】
請求項５記載の方法において、
前記プログラムするステップは、先のパスに関連するフラグデータビット値を、リセット電荷蓄積レベルを示す値から前記リセット電荷蓄積レベルとは異なる値へと変える方法。
【請求項７】
請求項５記載の方法において、
前記グループ内の各電荷蓄積素子の電荷蓄積レベルによって表されるデータが、順序づけられたセットの少なくとも第１の２進値変数と第２の２進値変数とを含み、先のパス中に前記電荷蓄積素子をプログラムする際に従う電荷蓄積レベルを少なくとも第１の変数値に従って決定し、後のパス中に前記電荷蓄積素子をプログラムする際に従う電荷蓄積レベルを少なくとも第２の変数値に従って決定し、
前記方法が、前記プログラムするステップの後に、第１の変数値を読み出すために、前記グループ内の各電荷蓄積素子の電荷蓄積レベルと、先のパスと関連するフラグデータビット値を読み出すために、前記グループ内のフラグ電荷蓄積セルの電荷蓄積レベルとを、１つの検知動作で検知するステップをさらに有する方法。
【請求項８】
請求項７記載の方法において、
前記電荷蓄積素子がグループ化されてページとなり、各ページは２つ以上の前記グループを含み、前記プログラムするステップは、前記ページの各ページ毎に前記電荷蓄積素子をプログラムし、前記検知するステップは、１つのみの読み出し電圧を、後のパスにプログラムされた各ページの中の前記電荷蓄積素子に結合して、第１の変数値を出力し、２つの異なる読み出し電圧を、後のパス時にプログラムされなかった少なくとも１つの電荷蓄積素子と、後のパス時にプログラムされた少なくとも１つの電荷蓄積素子とを含む各ページの電荷蓄積素子にシーケンシャルに結合して、第１の変数値を出力する方法。
【請求項９】
請求項８記載の方法において、
後のパス時にプログラムされなかった少なくとも１つの電荷蓄積素子と、後のパス時にプログラムされた少なくとも１つの電荷蓄積素子とを含む各ページを読み出して、第１の変数値を出力するために、さらに多くの時間が割り当てられる方法。
【請求項１０】
請求項９記載の方法において、
後のパス時にプログラムされなかった電荷蓄積素子を読み出す際に、さらに多くの呼び出し時間を予期する旨をユーザに示す話中信号を生成するステップをさらに有する方法。
【請求項１１】
請求項９記載の方法において、
異なった長さのダミーの時間を使ってさらに多くの時間が割り当てられる方法。
【請求項１２】
記憶装置であって、
データを対応する異なる電荷蓄積レベルとして蓄積するタイプの不揮発性電荷蓄積素子と、
少なくとも２回のパスで前記電荷蓄積素子をプログラムしてデータを蓄積するための３つ以上の電荷蓄積レベルのうちの１つに変える、プログラムする手段であって、前記電荷蓄積素子をグループ化して、複数のグループに変え、各グループは少なくとも２ビットのフラグデータを蓄積するための少なくとも１つの対応するフラグ電荷蓄積セルを有し、前記フラグデータの各ビットが前記パスのうちの１つと関連する、プログラムする手段と、
を備え、
前記プログラムする手段により、先のパスと先のパスの後に実施される後のパスを有する少なくとも２回のシーケンシャルなパスで前記電荷蓄積素子をプログラムし、先のパスと関連するフラグデータビット値を先のパスの後にセットする記憶装置。
【請求項１３】
請求項１２記載の記憶装置において、
先のパスに関連するフラグデータビット値が、後のパスの間にセットされる記憶装置。
【請求項１４】
請求項１２記載の記憶装置において、
前記電荷蓄積素子がグループ化されてページとなり、各ページは２つ以上の前記グループを含み、前記プログラムする手段は、前記ページのうちの１ページ毎に前記電荷蓄積素子をプログラムし、前記ページのうちの１つが、ホストデータに従い後のパス中にプログラムされた電荷蓄積素子の少なくとも第１のグループ、およびプログラムするにはホストデータが不十分なため後のパス中にプログラムされなかった電荷蓄積素子の少なくとも第２のグループを有し、前記第１および第２のグループ内のフラグ電荷蓄積セルの中に蓄積されている先のパスと関連するフラグデータビット値が、十分なホストデータを有する電荷蓄積素子および十分なホストデータを有していない電荷蓄積素子の間の境界を示す記憶装置。
【請求項１５】
請求項１２記載の記憶装置において、
前記プログラムする手段が、前記グループ内のフラグ電荷蓄積セルの中に蓄積された先のパスと関連するフラグデータビット値に従い、複数の異なる読み出しシーケンスから選択された読み出しシーケンスに従って、前記グループの電荷蓄積素子内に蓄積されたデータを読み出す記憶装置。
【請求項１６】
請求項１２記載の記憶装置において、
前記プログラムする手段が、複数のグループのうちの１つのグループのフラグ電荷蓄積セルの中に蓄積された先のパスと関連があるフラグデータビット値を、前記グループの電荷蓄積素子が後のパス中にプログラムされたかどうかを示すようにセットする記憶装置。
【請求項１７】
請求項１６記載の記憶装置において、
前記プログラムする手段が、先のパスに関連するフラグデータビット値を、リセット電荷蓄積レベルを示す値から前記リセット電荷蓄積レベルとは異なる値へと変える記憶装置。
【請求項１８】
請求項１６記載の記憶装置において、
前記グループ内の各電荷蓄積素子の電荷蓄積レベルによって表されるデータが、順序づけられたセットの少なくとも第１の２進値変数と第２の２進値変数とを含み、先のパス中に前記電荷蓄積素子をプログラムする際に従う電荷蓄積レベルを少なくとも第１の変数値に従って決定し、後のパス中に前記電荷蓄積素子をプログラムする際に従う電荷蓄積レベルを少なくとも第２の変数値に従って決定し、前記プログラムする手段は、第１の変数値を読み出すために、前記グループ内の各電荷蓄積素子の電荷蓄積レベルと、先のパスと関連するフラグデータビット値を読み出すために、前記グループ内のフラグ電荷蓄積セルの電荷蓄積レベルとを、１つの検知動作で検知する記憶装置。
【請求項１９】
請求項１８記載の記憶装置において、
前記電荷蓄積素子がグループ化されてページとなり、各ページは２つ以上の前記グループを含み、前記プログラムする手段は、前記ページの各ページ毎に前記電荷蓄積素子をプログラムし、１つのみの読み出し電圧を、後のパスにプログラムされた各ページの中の前記電荷蓄積素子に結合して、第１の変数値を出力し、２つの異なる読み出し電圧を、後のパス時にプログラムされなかった少なくとも１つの電荷蓄積素子と、後のパス時にプログラムされた少なくとも１つの電荷蓄積素子とを含む各ページの電荷蓄積素子にシーケンシャルに結合して、第１の変数値を出力する記憶装置。
【請求項２０】
請求項１９記載の記憶装置において、
前記プログラムする手段には、後のパス時にプログラムされなかった少なくとも１つの電荷蓄積素子と、後のパス時にプログラムされた少なくとも１つの電荷蓄積素子とを含む各ページを読み出して、第１の変数値を出力するために、さらに多くの時間が割り当てられる記憶装置。
【請求項２１】
請求項２０記載の記憶装置において、
前記プログラムする手段は、後のパス時にプログラムされなかった電荷蓄積素子を読み出す際に、さらに多くの呼び出し時間を予期する旨をユーザに示す話中信号を生成する記憶装置。
【請求項２２】
請求項２０記載の記憶装置において、
前記プログラムする手段により異なった長さのダミーの時間を使ってさらに多くの時間が割り当てられる記憶装置。
【請求項２３】
不揮発性メモリセルの対応する異なる電荷レベルとして電荷蓄積素子の中にデータを蓄積するタイプの不揮発性メモリセルのプログラミングを行う方法であって、前記素子の電荷蓄積レベルが、プログラミングに先立って、リセットされた電荷蓄積レベルの分布状態にある方法において、
データバッファ内に蓄積されたデータに従って少なくとも２回のパスで前記電荷蓄積素子をプログラムするステップであって、第１のページデータをプログラムするための第１のパス中に前記素子のうちの選択した素子をプログラムして、第１の蓄積レベルの分布状態に変え、第２のページデータをプログラムするための後続する第２のパス中に前記リセットされた電荷蓄積レベルの分布状態にある素子のうちの選択した素子をプログラムして、第２の蓄積レベルの分布状態に変え、前記第１の蓄積レベルの分布状態にある素子のうちの選択した素子をプログラムして、第３の蓄積レベルの分布状態に変え、前記第２の蓄積レベルの分布状態が前記リセットされた蓄積レベルの分布状態と前記第１の蓄積レベルの分布状態との間にあり、前記第１の蓄積レベルの分布状態が前記第２の蓄積レベルの分布状態と前記第３の蓄積レベルの分布状態との間にある、プログラムするステップを有し、
前記素子のうちの少なくとも１つの素子のための前記第２のページデータを前記第２のパス中にプログラムするのにホストデータが不十分な場合、少なくとも１つの素子をプログラムして、前記第１のパス中に前記第１の蓄積レベルに変え、前記データバッファ内に蓄積されたデータとは、前記プログラムするステップにより、少なくとも１つの素子の電荷蓄積レベルを、前記第２のパスの後に前記第３の蓄積レベルの分布状態の電荷蓄積レベル未満の値にプログラムするものであり、
各素子の蓄積レベルによって表されるデータが、順序づけられたセットの少なくとも第１の２進値変数と第２の２進値変数とを含み、前記第１のパスおよび第２のパス時に前記素子をプログラムするために第１の２進値変数および第２の２進値変数をそれぞれ利用し、前記プログラムするステップが、前記データバッファ内へホストデータをロードするステップと、前記データバッファ内のデータに従って電圧を前記素子と結合して、前記順序づけられたセットの第１の２進値変数と第２の２進値変数とのコード構成に従って、選択した蓄積レベルの分布状態に前記素子をプログラムするステップとを有し、前記コード構成とは、各素子の１つの蓄積レベルによって表される第１の２進値変数と第２の２進値変数とが各素子の隣の蓄積レベルによって表される第１の２進値変数と第２の２進値変数とは異なるものである方法。
【請求項２４】
請求項２３記載の方法において、
前記プログラムするステップにより、前記第１の蓄積レベルの分布状態の少なくともいくつかの素子を、その蓄積レベルの分布状態が前記第２のパス中に前記第１の蓄積レベルの分布状態よりも高くなるようにプログラムする方法。
【請求項２５】
請求項２３記載の方法において、
前記第１のパス中に前記素子をプログラムする際に従う前記蓄積レベルを少なくとも第１の変数値に従って決定し、前記第２のパス中に前記素子をプログラムする際に従う蓄積レベルを少なくとも第２の変数値に従って決定し、前記コード構成によって、リセットされた蓄積レベルと、第１の蓄積レベルとを表す第２の変数値とが同じ値となるようにする方法。
【請求項２６】
請求項２５記載の方法において、
３つの異なる読み出し電圧をそのような素子とシーケンシャルに結合することによって、前記素子に蓄積された蓄積レベルを読み出して、第２の変数値を得るようにするステップをさらに有する方法。
【請求項２７】
請求項２３記載の方法において、
前記データバッファ内に対応するホストデータを有していない素子の近傍にある素子をプログラムすることが、前記データバッファ内に対応するホストデータを有していない前記素子の電荷蓄積レベルに、前記第１の蓄積レベルの分布状態とは異なる分布状態を電界効果の結合の結果持たせるようにする方法。
【請求項２８】
請求項２３記載の方法において、
３つの異なる読み出し電圧をそのような素子とシーケンシャルに結合することによって、前記素子に蓄積された蓄積レベルを読み出して、第２の変数値を得るようにするステップをさらに有する方法。
【請求項２９】
記憶装置であって、
対応する異なる電荷レベルとして電荷蓄積素子の中にデータを蓄積するタイプのプログラム可能な不揮発性メモリセルであって、前記素子の電荷蓄積レベルが、プログラミングに先立って、リセットされた電荷蓄積レベルの分布状態にあるメモリセルと、
データバッファ内に蓄積されたデータに従って少なくとも２回のパスで前記電荷蓄積素子をプログラムする手段であって、第１のページデータをプログラムするための第１のパス中に前記素子のうちの選択した素子をプログラムして、第１の蓄積レベルの分布状態に変え、第２のページデータをプログラムするための後続する第２のパス中に前記リセットされた電荷蓄積レベルの分布状態にある素子のうちの選択した素子をプログラムして、第２の蓄積レベルの分布状態に変え、前記第１の蓄積レベルの分布状態にある素子のうちの選択した素子をプログラムして、第３の蓄積レベルの分布状態に変え、前記第２の蓄積レベルの分布状態が前記リセットされた蓄積レベルの分布状態と前記第１の蓄積レベルの分布状態との間にあり、前記第１の蓄積レベルの分布状態が前記第２の蓄積レベルの分布状態と前記第３の蓄積レベルの分布状態との間にある、プログラムする手段と、を備え、
前記素子のうちの少なくとも１つの素子のための前記第２のページデータを前記第２のパス中にプログラムするのにホストデータが不十分な場合、少なくとも１つの素子をプログラムして、前記第１のパス中に前記第１の蓄積レベルに変え、前記データバッファ内に蓄積されたデータとは、前記プログラムする手段により、少なくとも１つの素子の電荷蓄積レベルを、前記第２のパスの後に前記第３の蓄積レベルの分布状態の電荷蓄積レベル未満の値にプログラムするものであり、
前記記憶装置がデータバッファを備え、前記プログラムする手段が、データバッファ内へホストデータをロードすることと、前記データバッファ内のデータに従って電圧を前記素子と結合して、コード構成に従って、選択した蓄積レベルの分布状態に前記素子をプログラムすることとを有し、前記コード構成とは、そのようなコード構成によってセットされた前記データバッファ内のデータが、前記データバッファ内に対応するホストデータを有していない素子と、プログラミング電圧とを前記第２のパス中に前記素子間で結合しないようにするものである記憶装置。
【請求項３０】
記憶装置であって、
対応する異なる電荷レベルとして電荷蓄積素子の中にデータを蓄積するタイプのプログラム可能な不揮発性メモリセルであって、前記素子の電荷蓄積レベルが、プログラミングに先立って、リセットされた電荷蓄積レベルの分布状態にあるメモリセルと、
データバッファ内に蓄積されたデータに従って少なくとも２回のパスで前記電荷蓄積素子をプログラムする手段であって、第１のページデータをプログラムするための第１のパス中に前記素子のうちの選択した素子をプログラムして、第１の蓄積レベルの分布状態に変え、第２のページデータをプログラムするための後続する第２のパス中に前記リセットされた電荷蓄積レベルの分布状態にある素子のうちの選択した素子をプログラムして、第２の蓄積レベルの分布状態に変え、前記第１の蓄積レベルの分布状態にある素子のうちの選択した素子をプログラムして、第３の蓄積レベルの分布状態に変え、前記第２の蓄積レベルの分布状態が前記リセットされた蓄積レベルの分布状態と前記第１の蓄積レベルの分布状態との間にあり、前記第１の蓄積レベルの分布状態が前記第２の蓄積レベルの分布状態と前記第３の蓄積レベルの分布状態との間にある、プログラムする手段と、を備え、
前記素子のうちの少なくとも１つの素子のための前記第２のページデータを前記第２のパス中にプログラムするのにホストデータが不十分な場合、少なくとも１つの素子をプログラムして、前記第１のパス中に前記第１の蓄積レベルに変え、前記データバッファ内に蓄積されたデータとは、前記プログラムする手段により、少なくとも１つの素子の電荷蓄積レベルを、前記第２のパスの後に前記第３の蓄積レベルの分布状態の電荷蓄積レベル未満の値にプログラムするものであり、
各素子の蓄積レベルによって表されるデータが、順序づけられたセットの少なくとも第１の２進値変数と第２の２進値変数とを含み、前記第１のパスおよび第２のパス時に前記素子をプログラムするために第１の２進値変数および第２の２進値変数をそれぞれ利用し、前記プログラムする手段が、前記データバッファ内へホストデータをロードすることと、前記データバッファ内のデータに従って電圧を前記素子と結合して、前記順序づけられたセットの第１の２進値変数と第２の２進値変数とのコード構成に従って、選択した蓄積レベルの分布状態に前記素子をプログラムすることとを有し、前記コード構成とは、各素子の１つの蓄積レベルによって表される第１の２進値変数と第２の２進値変数とが各素子の隣の蓄積レベルによって表される第１の２進値変数と第２の２進値変数とは異なるものである記憶装置。
【請求項３１】
請求項２９または３０記載の記憶装置において、
前記プログラムする手段により、前記第１の蓄積レベルの分布状態の少なくともいくつかの素子を、その蓄積レベルの分布状態が前記第２のパス中に前記第１の蓄積レベルの分布状態よりも高くなるようにプログラムする記憶装置。
【請求項３２】
請求項３０記載の記憶装置において、
前記第１のパス中に前記素子をプログラムする際に従う蓄積レベルを少なくとも第１の変数値に従って決定し、前記第２のパス中に前記素子をプログラムする際に従う蓄積レベルを少なくとも第２の変数値に従って決定し、前記コード構成によって、リセットされた蓄積レベルと、第１の蓄積レベルとを表す第２の変数値とが同じ値となるようにする記憶装置。
【請求項３３】
請求項３２記載の記憶装置において、
前記プログラムする手段が、３つの異なる読み出し電圧をそのような素子とシーケンシャルに結合することによって、前記素子に蓄積された蓄積レベルを読み出して、第２の変数値を得るようにする記憶装置。
【請求項３４】
請求項２９または３０記載の記憶装置において、
前記プログラムする手段が、前記データバッファ内に対応するホストデータを有していない素子の電荷蓄積レベルに、前記第１の蓄積レベルの分布状態とは異なる分布状態を電界効果の結合の結果持たせるようにする記憶装置。
【請求項３５】
請求項２９または３０記載の記憶装置において、
前記プログラムする手段が、３つの異なる読み出し電圧をそのような素子とシーケンシャルに結合することによって、前記素子に蓄積された蓄積レベルを読み出して、第２の変数値を得るようにする記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に、電気的に消去可能でプログラム可能なリードオンリメモリ（ＥＥＰＲＯＭ）およびフラッシュＥＥＰＲＯＭのような不揮発性半導体メモリに関し、特に、改善された部分的ページプログラミング機能を備えた不揮発性半導体メモリに関する。
【背景技術】
【０００２】
不揮発性の電荷蓄積能力を有する固体メモリデバイス、特に、小形のファクタカードとしてパッケージ化されたＥＥＰＲＯＭおよびフラッシュＥＥＰＲＯＭの形の固体メモリデバイスは、最近、様々な移動用デバイスや携帯用デバイス（特に情報機器および消費者用電子製品）において選好されるメモリデバイスになっている。内蔵形カードおよび取り外し可能カードの双方の形のフラッシュメモリは、その小形サイズ、少ない消費電力、高速性、並びに、高い信頼性という特徴のために移動環境や携帯環境で理想的に好ましいメモリデバイスである。
【０００３】
ＥＥＰＲＯＭは、ソース領域とドレイン領域間の、半導体基板のチャネル領域にわたって配置される電界効果トランジスタ構造内のフローティング（接続されていない）導電性ゲートを利用するものである。このフローティングゲートにわたってコントロールゲートが設けられる。トランジスタのしきい値電圧特性はこのフローティングゲートに保持されている電荷量により制御される。すなわち、フローティングゲートの所定の電荷レベルに対して、そのソース領域とドレイン領域間の導通を可能にするためにトランジスタを“オン”に転換する前に、コントロールゲートに印加しなければならない対応する電圧（しきい値）が生じる。
【０００４】
このフローティングゲートは電荷範囲の保持が可能であり、したがって、しきい値電圧ウィンドウ内の任意のしきい値電圧レベルにセットしてプログラミングを行うことが可能となる。しきい値電圧ウィンドウのサイズはデバイスの最小しきい値レベルと最大しきい値レベルとによって画定され、この最小および最大しきい値レベルがフローティングゲート上へのプログラム可能な電荷範囲に対応するしきい値レベルとなる。このしきい値ウィンドウは、一般にメモリデバイスの特性、動作条件および履歴に依って決まる。原則として、このウィンドウ内の個別の分解可能な各しきい値電圧レベルの範囲を用いて、セルの明確に限定されたメモリ状態を示すことが可能となる。
【０００５】
メモリセルとして機能するトランジスタは典型的には２つのメカニズムのうちの一方によって“プログラム”状態へプログラムされる。“熱い電子注入”時に、ドレインに印加される高い電圧により電子は基板チャネル領域の両端にわたって加速される。同時に、コントロールゲートに印加される高い電圧によって熱い電子は薄いゲート誘電体の中を通ってフローティングゲート上へ引っ張られる。“トンネリング”注入時に、基板に対して相対的に高い電圧がコントロールゲートに印加される。このようにして、電子は基板から中間に介在するフローティングゲートへ引っ張られることになる。
【０００６】
複数のメカニズムによってメモリデバイスを消去することも可能である。ＥＥＰＲＯＭの場合、コントロールゲートに対して相対的に高い電圧を基板に印加することによってメモリセルを電気的に消去し、基板チャネル領域（すなわち、ファウラー−ノードルハイム (Fowler-Nordheim)のトンネリング）までフローティングゲート内の電子を誘導して薄い酸化膜を貫通するようにすることが可能である。典型的には、ＥＥＰＲＯＭはバイト毎に消去可能である。フラッシュＥＥＰＲＯＭの場合、一度にすべてか、１回につき１以上のブロックかのいずれかのメモリの電気的消去が可能であり、その場合、５１２バイトまたはそれ以上のメモリからブロックを構成することも可能である。
【０００７】
不揮発性メモリセルの例
メモリデバイスはカードに装着可能な１以上のメモリチップを通常備えている。個々のメモリチップはメモリセルからなるアレイを備え、これらのメモリセルは、デコーダ並びに消去回路、書き込み回路および読み出し回路のような周辺回路によってサポートされている。インテリジェントで、より高いレベルのメモリ処理とインターフェイスとを実行するコントローラを備えたさらに複雑なメモリデバイスも出現している。今日利用されている多くの商業的に成功を納めた不揮発性固体メモリデバイスが存在する。これらのメモリデバイスは異なるタイプのメモリセルを採用することも可能であり、これら個々のタイプは１以上の電荷蓄積素子を含むものであってもよい。
【０００８】
図１Ａ〜図１Ｅは、不揮発性メモリセルの様々な例を概略的に示す。
図１Ａは、電荷を蓄積するためのフローティングゲートを備えたＥＥＰＲＯＭセルの形で不揮発性メモリを概略的に示す。電気的に消去可能でプログラム可能なリードオンリメモリ（ＥＥＰＲＯＭ）は類似の対応する構造を有しているが、さらにこれに加えて、このリードオンリメモリは、ＵＶ輻射線に曝す必要なく、適当な電圧の印加時に電荷をロードしたり、そのフローティングゲートから電気的に電荷を除去したりするメカニズムを提供するものである。米国特許第５，５９５，９２４号（特許文献１）にこのようなセル並びにこれらのセルの製造方法の例についての記載がある。
【０００９】
図１Ｂは、選択ゲートとコントロールゲート（ステアリングゲート）の双方のゲートを備えたフラッシュＥＥＰＲＯＭセルを概略的に示す。メモリセル１０はソース拡散部１４とドレイン拡散部１６との間に“分割チャネル”１２を有している。２つのトランジスタＴ１とＴ２とを直列に備えたセルが効率良く形成される。Ｔ１は、フローティングゲート２０とコントロールゲート３０とを備えたメモリトランジスタとして機能する。フローティングゲートは選択可能な電荷量の蓄積が可能である。チャネルのＴ１部分を通って流れることが可能な電流量は、コントロールゲート３０にかかる電圧と、間に介在するフローティングゲート２０に存在する電荷量とに依存して決まる。Ｔ２は、選択ゲート４０を備えた選択トランジスタとして機能する。選択ゲート４０において或る電圧によりＴ２をオンに転換すると、Ｔ２によって、チャネルのＴ１部分の電流がソースとドレイン間を通ることが可能となる。選択トランジスタはコントロールゲート側での電圧に依存しないソースドレインチャネルに沿ったスイッチを提供する。１つの利点として、これを用いて、セルのフローティングゲート側でのこのセルの（正の）電荷空乏に起因して生じるゼロコントロールゲート電圧でも、まだ導通を行っているセルをオフに転換することができるという点が挙げられる。別の利点として、これによってソース側注入プログラミングのさらに容易な実現が可能となる。
【００１０】
分割チャネルメモリセルの１つの単純な実施形態として、図１Ｂに示されている点線によって概略的に示すように選択ゲートとコントロールゲートとを同じワードラインと接続する実施形態がある。この接続は、チャネルの一方の部分にわたって電荷蓄積素子（フローティングゲート）を配置させ、チャネルの他方の部分にわたって、並びに、電荷蓄積素子にわたって（ワードラインの一部である）コントロールゲート構造を配置させることにより達成される。この結果、２つのトランジスタ、すなわち、電荷蓄積素子にかかる電荷量と、チャネルのトランジスタの部分の中を通って流れることができる電流量の制御を行うワードラインにかかる電圧との組み合わせを有する一方のトランジスタ（メモリトランジスタ）、並びに、トランジスタのゲートの例として単独で機能しているワードラインを有する他方のトランジスタ（選択トランジスタ）を直列に備えたセルが形成される。このようなセルのいくつかの例、メモリシステムにおけるこれらセルの利用およびこれらセルの製造方法については、米国特許第５，０７０，０３２号（特許文献２）、第５，０９５，３４４号（特許文献３）、第５，３１５，５４１号（特許文献４）、第５，３４３，０６３号（特許文献５）、第５，６６１，０５３号（特許文献６）に記載されている。
【００１１】
図１Ｂに示されているさらに改善された分割チャネルセルの実施形態として、選択ゲートとコントロールゲートとが独立し、このゲート間が点線によって接続されない場合の実施形態がある。１つの実施構成は、ワードラインに対して垂直に伸びる制御（ステアリング）ラインと接続されたセルアレイ内に１列のコントロールゲートを有する。この結果、選択されたセルの読み出しまたはプログラミングの際に、２つの機能を同時に実行する必要性からワードラインは解放されることになる。２つの機能とは、（１）選択トランジスタのゲートとしての機能であり、したがって、選択トランジスタをオン／オフに転換するための適当な電圧を必要とする機能と、（２）ワードラインと電荷蓄積素子間での電界（容量性）結合を通じて電荷蓄積素子の電圧を所望のレベルに合わせて駆動する機能である。単一の電圧を用いて最適の態様でこの機能の双方を実行することはしばしば困難となる。コントロールゲートと選択ゲートとを独立に制御すれば、追加の制御ラインが機能（２）を実行している間、ワードラインは機能（１）を実行するだけで十分となる。この能力は、より高い性能のプログラミング設計をサポートするものとなり、その場合、プログラミング電圧は目標データに適合されることになる。フラッシュＥＥＰＲＯＭアレイにおける独立したコントロール（すなわち、ステアリング）ゲートの利用については、例えば、米国特許第５，３１３，４２１号（特許文献７）および第６，２２２，７６２号（特許文献８）に記載されている。
【００１２】
図１Ｃは、デュアルフローティングゲートと、独立した選択ゲートとコントロールゲートとを備えた別のフラッシュＥＥＰＲＯＭセルを概略的に示す。メモリセル１０は、直列の３つのトランジスタを効率良く備えていることを除いて、図１Ｂのメモリセルと同様のメモリセルである。このタイプのセルでは、２つの蓄積素子（すなわち、Ｔ１左とＴ１右の蓄積素子）がそのチャネルを介してソースとドレイン拡散部との間に選択トランジスタＴ１を備えて設けられる。これらのメモリトランジスタは、フローティングゲート２０と２０’と、コントロールゲート３０、３０’とをそれぞれ有している。選択トランジスタＴ２は選択ゲート４０によって制御される。任意の時点で、このメモリトランジスタのうちの一方だけが読み出しまたは書き込みのためにアクセスされる。記憶ユニットＴ１左がアクセスされているとき、Ｔ２とＴ１右の双方がオンに転換されて、チャネルのＴ１左の部分の電流がソースとドレインとの間を通ることが可能になる。同様に、記憶ユニットＴ１右がアクセスされているとき、Ｔ２とＴ１左がオンに転換される。フローティングゲートの近傍に選択ゲートのポリシリコンの一部を設けることにより消去が行われ、さらに、フローティングゲート内に蓄積された電子を選択ゲートのポリシリコンまでトンネリングすることができるように、極めて大きな正の電圧（例えば、２０Ｖなど）が選択ゲートに印加される。
【００１３】
図１Ｄは、ＮＡＮＤセルに編成された一連のメモリセルを概略的に示す。ＮＡＮＤセル５０は、一連のメモリトランジスタＭ１、Ｍ２、．．．Ｍｎのソースとドレインとによってデイジチェーンされた一連のメモリトランジスタＭ１、Ｍ２、．．．Ｍｎ（ｎ＝４、８、１６またはこれよりも大きな数）から構成される。ＮＡＮＤセルのソース側端子５４およびドレイン側端子５６を介して、一対の選択トランジスタＳ１、Ｓ２が、このメモリトランジスタチェーンの外部との接続を制御する。メモリアレイにおいて、ソース選択トランジスタＳ１がオンに転換されると、ソース側端子はソースラインと結合される。同様に、ドレイン選択トランジスタＳ２がオンに転換されると、ＮＡＮＤセルのドレイン側端子はメモリアレイのビットラインと結合される。チェーンの形でつながれた個々のメモリトランジスタは、意図するメモリ状態を表すために所定の電荷量を蓄積する電荷蓄積素子を有している。個々のメモリトランジスタのコントロールゲートは、読み出し処理および書き込み処理に対する制御を行う。選択トランジスタＳ１、Ｓ２の各々のコントロールゲートは、それぞれ、そのソース側端子５４およびドレイン側端子５６を介してＮＡＮＤセルに対するアクセスを制御する。
【００１４】
ＮＡＮＤセル内のアドレス指定したメモリトランジスタがプログラミング中に読み出され、検証されると、そのコントロールゲートには適当な電圧が供給される。同時に、ＮＡＮＤセル５０内の残りのアドレス指定されていないメモリトランジスタは、このメモリトランジスタのコントロールゲートにかけられる十分な電圧の印加によって全部オンに転換される。このようにして、導電経路は個々のメモリトランジスタのソースからＮＡＮＤセルのソース側端子５４まで、そして同様に、個々のメモリトランジスタのドレイン用として、セルのドレイン側端子５６まで効率的に形成される。このようなＮＡＮＤセル構造を備えたメモリデバイスについては、米国特許第５，５７０，３１５号（特許文献９）、第５，９０３，４９５号（特許文献１０）、第６，０４６，９３５号（特許文献１１）に記載されている。
【００１５】
図１Ｅは、電荷を蓄積する誘電体層を含む不揮発性メモリを概略的に示す。前述した導電性フローティングゲート素子の代わりに、誘電体層の個別領域が電荷蓄積素子として利用される。誘電体記憶素子を利用するこのようなメモリデバイスについては、エイタンらによる“ＮＲＯＭ：新規の局在化トラッピング、２ビット不揮発性メモリセル”，ＩＥＥＥ電子デバイスレターズ，第２１巻，第１１号，２０００年１１月，５４３〜５４５ページ (Eitan et al., “NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell," IEEE Electron Device Letters, vol.21, no.11, November 2000, pp.543-545) （非特許文献１）に記載されている。ＯＮＯ誘電体層はソースおよびドレイン拡散部の間のチャネルの両端にわたって延在する。１データビット用の電荷がドレインに隣接して誘電体層内に局在化され、さらに別のデータビット用の電荷がソースに隣接して誘電体層内に局在化される。例えば、米国特許第５，７６８，１９２号（特許文献１２）および第６，０１１，７２５号（特許文献１３）に２つのシリコン二酸化物層の間に挟まれるトラッピング誘電体を有する不揮発性メモリセルについての開示がある。多状態データ蓄積は、誘電体内で空間的に分離された電荷蓄積領域の２進状態を別々に読み出すことにより実現される。
【００１６】
メモリアレイ
典型的には、メモリデバイスには、行と列とで構成され、ワードラインとビットラインとによってアドレス可能な２次元アレイのメモリセルが含まれる。このアレイはＮＯＲ形またはＮＡＮＤ形アーキテクチャに従って形成することができる。
【００１７】
ＮＯＲアレイ
図２は、ＮＯＲメモリセルのアレイの一例を示す。ＮＯＲ形アーキテクチャを備えたメモリデバイスは図１Ｂまたは図１Ｃに例示するタイプのセルにより実現される。個々のメモリセル行はそのソースとドレインとによってデイジチェーンで接続される。この設計を仮想接地設計 (virtual ground design)と呼ぶことがしばしばある。個々のメモリセル１０は、ソース１４と、ドレイン１６と、コントロールゲート３０と、選択ゲート４０とを備えている。１行のセルにはワードライン４２と接続されたこのセルの選択ゲートが設けられる。１列のセルはそのソースとドレインとを備え、これらのセルはそれぞれ選択済みのビットライン３４と３６と接続している。メモリセルがそのコントロールゲートと選択ゲートとを独立に制御させる実施形態によっては、ステアリングライン３６が１列のセルのコントロールゲートを接続するものもある。
【００１８】
多くのフラッシュＥＥＰＲＯＭデバイスが、そのコントロールゲートと選択ゲートとを一体に接続して個々に形成されたメモリセルにより実現される。この場合、ステアリングラインを必要とせず、単にワードラインがセルのすべてのコントロールゲートと選択ゲートとを個々の行に沿って接続するだけでよい。これらの設計例が、米国特許第５，１７２，３３８号（特許文献１４）および第５，４１８，７５２号（特許文献１５）に開示されている。この設計では、ワードラインにより実質的に２つの機能（すなわち、行選択機能と、読み出しやプログラミングを行うための、行のすべてのセルへのコントロールゲート電圧の供給機能）とが実行される。
【００１９】
ＮＡＮＤアレイ
図３は、図１Ｄに示されている例のようなメモリセルのＮＡＮＤアレイの一例を示す。個々のＮＡＮＤセルの列に沿って、ビットラインが個々のＮＡＮＤセルのドレイン側端子５６と結合される。ＮＡＮＤセルの個々の行に沿って、ソースラインがすべてのＮＡＮＤセルのソース側端子５４を接続するようにしてもよい。また、行に沿ったＮＡＮＤセルのコントロールゲートも一連の対応するワードラインと接続される。接続されたワードラインを介して、この対の選択トランジスタのコントロールゲートに適当な電圧をかけて、この対の選択トランジスタをオンに転換することによりＮＡＮＤセルの行全体のアドレス指定を行うことができる（図１Ｄを参照されたい）。ＮＡＮＤセルのチェーン内のメモリトランジスタが読み出されると、チェーン内の残りのメモリトランジスタが、このメモリトランジスタの関連するワードラインを介して強くオンに転換され、それによってチェーンの中を流れる電流は、読み込まれているセルに蓄積された電荷のレベルによって実質的に依存して決められることになる。メモリシステムの一部としてのＮＡＮＤ形アーキテクチャのアレイの一例並びにその処理は、米国特許第５，５７０，３１５号（特許文献９）と、第５，７７４，３９７号（特許文献１６）と、第６，０４６，９３５号（特許文献１１）とに見られる。
【００２０】
ブロック消去
電荷記憶メモリデバイスのプログラミングの結果として、専ら電荷記憶メモリデバイスの電荷蓄積素子に対するさらに多くの電荷の付加が可能となる。したがって、プログラミング処理を行う前に、電荷蓄積素子内の既存の電荷を除去（または消去）する必要がある。１以上のメモリセルブロックを消去する消去回路（図示せず）が設けられる。セルアレイ全体またはアレイの大きなセルグループが電気的に一括して（すなわち、フラッシュで）消去される場合、ＥＥＰＲＯＭのような不揮発性メモリは“フラッシュ”ＥＥＰＲＯＭと呼ばれる。消去されるとすぐに、セルグループの再プログラミングが可能となる。一括消去可能なセルグループは１以上のアドレス可能な消去単位から構成することも可能である。消去単位または消去ブロックが典型的には１以上のデータページを蓄積し、このページがプログラミングおよび読み出しの単位となるが、単一の処理時に２以上のページがプログラミングや読み出しを行うようにすることも可能である。個々のページは、典型的には１以上のデータセクタを蓄積し、このセクタのサイズはホストシステムにより画定される。一例として、磁気ディスク駆動装置に関する基準規格に従う５１２バイトのユーザデータセクタがあり、これに加えてユーザデータおよび／またはユーザデータが蓄積されているブロックに関する或る数バイトのオーバーヘッド情報がある。
【００２１】
読み出し／書き込み回路
通常の２状態ＥＥＰＲＯＭセルでは、少なくとも１つのブレークポイントレベルが確定され、導通ウィンドウの分割が行われて、２つの領域がつくられる。ブレークポイントに対する相対的なセル状態が、“電流”の検知か、“電圧”の検知かのいずれかを利用して通常決定される。電流検知を利用して、所定の固定電圧と、セルのゲートと、ソースと、ドレインとを印加することによりセルが読み出され、結果として生じる電流が、絶対値か、或いは２つの極値間の中間値に計画的にセットされたしきい値を有する同様のセルから取得される値かのいずれかの値と比較される。読み出された電流の方がブレークポイントレベルの電流よりも高い場合、セルは、１つの論理状態（例えば“０”状態など）をなすように設定される。一方、電流がブレークポイントレベルの電流よりも低い場合、セルはもう一方の論理状態（例えば“１”状態など）をなすように設定される。したがって、このような２状態セルによって１ビットのデジタル情報の蓄積が行われることになる。基準電流のソースは、外部でプログラムすることも可能ではあるが、ブレークポイントレベル電流を生成するメモリシステムの一部として提供されることも多い。
【００２２】
メモリ容量を上げることを目的として、フラッシュＥＥＰＲＯＭデバイスは、半導体技術の進歩に伴ってますます高密度になる記録密度で製造されている。記憶容量を上げる別の方法として、各メモリセルに３以上の状態を蓄積させる方法がある。
【００２３】
マルチ状態またはマルチレベルＥＥＰＲＯＭメモリセル用として、導通ウィンドウは２以上のブレークポイントにより３以上の領域に分割されるので、各セルが１ビット以上のデータを蓄積する能力を持つことができるようになる。与えられたＥＥＰＲＯＭアレイが蓄積できる情報は、このようにして各セルが蓄積することができる状態数を用いて増やされる。マルチ状態すなわちマルチレベル・メモリセルを持つＥＥＰＲＯＭまたはフラッシュＥＥＰＲＯＭについては、米国特許第５，１７２，３３８号（特許文献１４）に記載されている。
【００２４】
実際には、セルのメモリ状態は、読み出しレベルがコントロールゲートに印加されるときのセルのソース電極とドレイン電極の両端にわたる導通電流の検知により通常読み出される。したがって、セルのフローティングゲートの各々の所定の電荷について、一定の基準コントロールゲート電圧に関連して、対応する導通電流の検出が可能となる。同様に、フローティングゲート上へのプログラム可能な電荷範囲により、対応するしきい値電圧用ウィンドウや対応する導通電流ウィンドウが画定される。
【００２５】
これとは別に、仕切られた電流ウィンドウ間での導通電流の検出（電流検知）の代わりに、コントロールゲートにおけるテスト中に所定のメモリ状態用のしきい値電圧をセットし、この導通電流がしきい値電流（電圧検知）よりも低いか高いかの検出を行うことが可能である。１つの実施構成では、ビットラインの静電容量を通じる導通電流の放電レートによってチェックを行うことにより、しきい値電流を基準とする相対的な導通電流の検出が行われる。セルがプログラムされている（ゲート電圧を基準として相対的に高いしきい値である）場合、放電電流が非常に小さくなるため、ビットラインの相対的に大きな静電容量が著しく放電されることはなく、センスアンプは“０”状態に戻ることになる。
【００２６】
米国特許第４，３５７，６８５号（特許文献１７）に２状態ＥＰＲＯＭのプログラミング方法が開示され、この方法では、セルは、所定の状態にセットされてプログラムされると、連続するプログラミング電圧パルスを受け、その度に増分する電荷がフローティングゲートに加えられる。パルス間で、ブレークポイントレベルと比較して、セルのソース・ドレイン電流を測定するためにセルのリードバック（検証）が行われる。電流状態が所望の状態に達したことが検証されたときプログラミングは停止する。使用するプログラミングパルス列が、増加する周期や振幅を持つ場合もある。
【００２７】
従来技術によるプログラミング回路は単に、プログラミングパルスを印加して、しきい値ウィンドウを通って消去状態または接地状態から目標状態に達するまで１ステップずつ進むようにする回路にすぎない。実際に、適当な精度を可能にするには、個々の分割領域すなわち画定領域が、少なくともおよそ５つの越えるべきプログラミングステップを必要とする。その性能は２状態メモリセル用として容認することができるものである。しかし、マルチ状態セルの場合、所要なステップ数は分割の数と共に増加するため、プログラミングの精度すなわち精密さも高める必要がある。例えば、１６個の状態セルでは、目標状態にセットしてプログラムするのに平均して少なくとも４０個のプログラミングパルスが必要となる場合もある。
【００２８】
メモリアレイ１００は行デコーダおよび列デコーダを介して読み出し／書き込み回路によりアクセスを行うことが可能である。図２および図３に示されているように、メモリアレイ１００内のメモリセルのメモリトランジスタは１組の選択ワードラインとビットラインとを介してアドレス可能である。行デコーダは１以上のワードラインを選択し、列デコーダは１以上のビットラインを選択して、アドレス指定したメモリトランジスタのそれぞれのゲートに対する適当な電圧の印加を図るようにする。アドレス指定したメモリトランジスタのメモリ状態の読み出しまたは書き込み（プログラム）を行うための読み出し／書き込み回路が設けられる。読み出し／書き込み回路は、ビットラインを介してアレイ内の記憶素子と接続可能な複数の読み出し／書き込みモジュールを備える。
【００２９】
読み出し中または検証中に、センスアンプは、選択ビットラインを介して接続されたアドレス指定済みのメモリトランジスタのドレインの中を流れる電流を決定する。この電流はメモリトランジスタに蓄積された電荷およびこのメモリトランジスタのコントロールゲート電圧に依存して決められる。例えば、多状態ＥＥＰＲＯＭセルでは、複数の異なるレベルのうちの１つレベルに合わせてこのセルのフローティングゲートを荷電することが可能となる。４レベルセルの場合、２ビットデータを蓄積することができる。センスアンプによって検出されたレベルはレベルからビットへの変換論理回路によって１組のデータビットへ変換されて、データラッチに蓄積される。
【００３０】
読み出し／書き込み性能および精度に影響を与える諸要因
読み出しおよびプログラミング性能の改善を目的として、アレイ内の複数の電荷蓄積素子またはメモリトランジスタの同時読み出しや、同時プログラミングが行われる。したがって、記憶素子の論理“ページ”の一括読み出しや、一括プログラミングが行われることになる。既存のメモリアーキテクチャにおいて、複数のインタリーブされたページは典型的には行の中に含まれる。ページのすべての記憶素子はまとめて読み出されたり、まとめてプログラムされたりすることになる。列デコーダは、インタリーブされたページの個々のページを、対応する個数の読み出し／書き込みモジュールと選択的に接続することになる。例えば、１つの実施構成では、メモリアレイは５３２バイト（５１２バイト＋２０バイトのオーバーヘッド）のページサイズを有するように設計される。個々の列がドレインビットラインを含み、かつ、行当たり２つのインタリーブ済みのページが存在する場合、これによって、個々のページが４２５６列と関連づけられて８５１２列に達することになる。すべての偶数番号のビットラインまたは奇数番号のビットラインのいずれかと同時に読み出しまたは書き込みを行えるように接続可能な４２５６個のセンスモジュールが存在することになる。このようにして、４２５６ビット（すなわち、５３２バイト）のデータページが同時に記憶素子のページから読み出されたり、或いは記憶素子のページの中へプログラムされたりする。読み出し／書き込み回路を形成する読み出し／書き込みモジュールを構成して種々のアーキテクチャに変えることも可能である。
【００３１】
非常にコンパクトでかつ高性能の不揮発性メモリおよび制御方法については、“非常にコンパクトな不揮発性メモリおよびその方法”という２００２年９月２４日に出願されたラウル−エイドリアン・セルニアによる米国特許出願第１０／２５４，４８３号（特許文献１８）に記載されている。この特許出願は、その全体が本願明細書において参照により援用されている。
【００３２】
図４Ａと図４Ｂとに、前述したタイプのアレイ内の４状態ＮＡＮＤメモリセルのプログラミングの特定の現行技術を例示する。これら２つの図およびプログラミング処理についての添付の説明は、米国特許第６，５２２，５８０号（特許文献１９）から採られたものであり、この特許は、その全体が本願明細書において参照により援用されている。
【００３３】
図４Ａと図４Ｂには、前述したタイプのアレイにおける４状態ＮＡＮＤメモリセルのしきい値電圧の分布状態を示し、このメモリセルにはアレイ内のセルのフローティングゲートによって２ビットデータ、すなわち個々のセル内の４つのデータ状態が蓄積される。曲線Ｅは、消去状態（“１１”データ状態）にあるアレイ内のセルのしきい値レベルＶＴ（負のしきい値電圧レベルにある）の分布状態を表す曲線である。セルの初期状態として、セルが前述した消去状態以外の状態にセットされた場合、本願で用いるような曲線Ｅもこのような状態を表すことになる。さらに一般的に言えば、消去状態を含むすべてのこのような状態を本願では“リセット状態”と呼ぶことにする。“１０”と“００”のユーザデータをそれぞれ蓄積する蓄積素子のしきい値電圧の分布状態ＡとＢとは、それぞれ０ボルトと１ボルトとの間、並びに、１ボルトと２ボルトとの間にはいるように示される。曲線Ｃは、“０１”データ状態に合わせてプログラムされたメモリセルの分布状態を示し、最高のしきい値電圧レベルが、読み出された過去の電圧のうち２ボルトよりも大きく、かつ、４．５ボルトよりも小さいレベルとなる。“ユーザデータ”および“ホストデータ”という用語は本願では交換可能に用いられる。
【００３４】
単一メモリセルに蓄積された２つのビットの各々は別の論理ページから得られ、異なる時刻にプログラムすることも可能である。２つのビットの各々は、互いから得られる別の論理ページアドレスを担持する。単一メモリセルに蓄積されたこれら２つのビットは、順序づけられた１組の２進値変数または一対の２進値変数（有意性のより高いビットおよび有意性のより低いビット）を形成する。下位ページのアドレスが入力されると、ユーザデータすなわちホストデータ“１１”、“１０”、“００”、“０１”内のこの有意性のより低い方のビットがアクセスされる。上位ページアドレスが入力されると、ユーザデータすなわちホストデータの有意性のより高い方のビットがアクセスされる。蓄積データが３以上のビットを含む場合、順序づけられたセットの蓄積値は３以上の変数を含むものであってもよい。論理ページの指定は、偶数／奇数ページ指定またはインタリーブされたページ指定とは異なるものとなる。このようなページ指定は、メモリアレイにおけるメモリセルの物理的構成に関する指定である。しきい値ウィンドウを４状態よりも多くの状態にさらに細かく分割して、セル当たり３以上のデータビットを表すためにセルに蓄積することが可能となるところまで論理ページの指定を拡張することも可能である。これによって３以上のページが利用されるようになり、その場合、これらのページは、単に第１、第２、第３ページなどの数値として参照することも可能となる。
【００３５】
前述したように、プログラム処理に先立って、１以上のメモリセルブロック（本願では電荷蓄積素子とも呼ばれる）が一括して電気的に消去されて、消去状態“１１”となる。次いで、データバッファ内のユーザデータすなわちホストデータを利用して、電荷蓄積レベルまたは電荷蓄積素子のしきい値レベルがセットされる。第１のプログラミングパス時に、セルのしきい値レベルはデータバッファ内の下位の論理ページから得られるビットに従ってセットされる。このビットが“１”の場合、何も行われない。というのは、以前に消去された結果としてセルが消去状態となるからである。しかし、このビットが“０”の場合、セルのレベルは第１のプログラミング済み状態まで上げられる。この処理によって第１のプログラミングパスは終了する。
【００３６】
第２のプログラミングパス時に、セルのしきい値レベルは、上位論理ページからデータバッファに蓄積されるビットに従ってセットされる。このセルのしきい値レベルが“１”の場合、プログラミングは行われない。というのは、このセルは、下位ページのビットのプログラミングに対応して状態Ｅまたは状態Ａのうちの一方の状態にあるからである。これらの状態の双方は上位ページビット“１”を担持する。しかし、上位ページのビットが“０”であれば、セルは２回目にプログラムされる。第１のパスの結果、セルが消去状態Ｅのままとなれば、上向きの矢印によって図４Ｂに示されているようにセルはその状態から最高の状態Ｃへプログラムされることになる。しかし、セルがプログラムされて状態Ａになった場合、第１のプログラミングパスの結果、下向きの矢印によって図４Ｂに示されているように、セルは、第２のパス時にその状態から状態Ｂへさらにプログラムされることになる。この第２のパスの結果、下位ページのビットの第１のパスプログラミングの結果を変えることなく、上位ページから“０”を蓄積するように指定される状態へセルをプログラムすることになる。
【００３７】
上位ページのビットが“０”となる第２のプログラミングパス中に、図４Ｂの上下の矢印に従って、消去状態Ｅから最高の状態Ｃへセルをプログラムするか、または状態Ａから状態Ｂへセルをプログラムするかのいずれかのプログラミングを行うことが望ましい。プログラミングを上向きの矢印に従って行うか、下向きの矢印に従って行うかを決定するために、セルがＥの状態にあるのか、またはＡの状態にあるのかを第１に判定する必要がある。デバイスによっては、この判定が、内部読み出しまたは内部データロードとして公知の処理プロセスにより行われるものもあり、その場合、第１のプログラミングパス中にプログラムされるセルによって、そのしきい値レベルが状態Ｅまたは状態Ａのいずれの状態に対応するかの判定が読み出される。
【００３８】
前述したタイプのメモリアレイにおける、セルからなる隣接フローティングゲート間での電界効果結合については、ジアン・チェンとユーピン・フォングによる米国特許第５，８６７，４２９号（特許文献２０）に記載されている。この特許は、その全体が本願明細書において参照により援用されている。集積回路の製造技術の改善の結果、この結合のレベルは、メモリセルアレイのサイズの縮小に伴って必然的に上昇することになる。この問題は、異なる時点にプログラムされた２組の隣接セル間で最も顕著に発生するものである。１組のセルをプログラムして、１組のデータに対応する電荷レベルがフローティングゲートに加えられる。第２の組のデータを用いて第２の組のセルをプログラムした後、第１の組のセルのフローティングゲートから読み出された電荷レベルが、第１の組のフローティングゲートと結合されている第２の組のフローティングゲートに対する電荷の影響に起因して、プログラムされた電荷レベルとは異なっているように見えることが頻繁に生じる。これはユーピン効果として知られているものである。
【００３９】
後続してプログラムされる第２の組のセルのフローティングゲートが、第１の組のセルのフローティングゲートのしきい値レベルよりもずっと高いしきい値レベルに合わせてプログラムされているとき、前述したユーピン効果は特に顕著になる。図４Ｂから観察されることとして、第２の組のセルのフローティングゲートが消去状態から最高の状態Ｃへプログラムされると、しきい値電圧の変動が相対的に大きくなることに起因して、ユーピン効果が最も顕著になるということが挙げられる。ユーピン効果を小さくする１つのアプローチとして、後続のワードラインのプログラミング後、この状態の最終値に合わせてこの状態をプログラムするアプローチがある。このアプローチについては、“隣接するメモリセル行の蓄積素子間における結合の影響を低減する技術”という２００２年９月６日にラウル−エイドリアン・セルニアにより出願された米国特許出願第１０／２３７，４２６号（特許文献２１）に記載されている。この特許出願は、その全体が本願明細書において参照により援用されている。本願は個々のページ内に“フラグ”セルというコンセプトを導入するものであり、このコンセプトは、そのページの状態（中間状態または最終状態）のプログラミングを示すものである。
【００４０】
ユーピン効果を低減する別のアプローチとして、図４Ａと図４Ｂとに示されているアプローチ以外の、シバタらによる米国特許第６，６５７，８９１号（特許文献２２）に提案されているような別のコード構成を利用するものがある。この特許は、その全体が本願明細書において参照により援用されている。シバタらによって提案されているコード構成は図５Ａ〜図５Ｃに示されているものである。図５Ａ〜図５Ｃでは、メモリセルのしきい値電圧レベルによって表すことができる３以上の論理ページデータの存在も可能であることが予見され、この理由のために、図５Ａ〜図５Ｃでは前述した下位の論理ページは第１のページと呼ばれ、前述した上位の論理ページは第２のページと呼ばれている。前述したように、メモリセルの中へ書き込むべき第１のページデータが“１”の場合、プログラミングは実行されず、セルは消去状態Ｅのまま残ることになる。第１のページデータが“０”の場合、メモリセルのしきい値電圧が図５Ａに示されている分布状態すなわち状態Ｂ’で１まで上昇するようにプログラミングは構成される。これは、第１のページデータの“０”値が状態Ａに合わせてセルにプログラムさせる図４Ａでの処理プロセスとは対照的である。図５Ｂに示されているように、第２のページデータを利用してセルをプログラムする前に、状態Ｂ’に予めプログラムされているメモリセルに隣接するメモリセルへデータは書き込まれる。後続してプログラムされる隣接するセルのフローティングゲートにかかる電荷に起因して生じるユーピン効果の結果、図５Ｂに示されているしきい値電圧の分布状態Ｂ’は、図５Ａのものよりも幅が広く、大きな面積のものになっている。図４Ａ／Ｂまたは図５Ｃの最終分布状態Ｂよりも値の点では常に低いものの、図５Ａの初期の分布状態Ｂ’の方が、図４Ａ／Ｂまたは図５Ｃの最終分布状態Ｂよりもずっと幅が広いことに留意されたい。
【００４１】
第２のページデータが書き込まれると、当初消去状態Ｅにあったセルは状態Ａへプログラムされ、当初状態Ｂ’にあったセルは状態Ｃへプログラムされる。このコード構成には異なる時点にプログラムされた隣接するセルの電荷レベル間での電位差、したがって、隣接するフローティングゲート間での電界効果結合を小さくする効果があり、したがってユーピン効果が生じることになる。
【００４２】
隣接するフローティングゲート内での電界効果結合を小さくするためには、図５Ａと図５Ｃとを参照する前述したコード構成は利点を有するものであるかもしれないが、以下に説明するようにページの充填を行うユーザデータが不十分な場合、このようなコード構成を用いると、誤った状態に合わせてユーザデータがプログラムされる可能性がある。
【００４３】
不揮発性メモリアレイによっては、ページ当たり２０４８バイトを有するものもある。このことは、或いは読み出し処理または書き込み処理時に単一の単位として２０４８バイトが読み出されたり、或いはプログラムされたりすることを意味する。不揮発性メモリシステムのシステムプログラミングは、５１２バイトのような２０４８バイトよりも少ないバイトを単位としてそのまま処理することも可能である。したがって、第１および第２の（下位および上位などの）ページの各ページは、４つのセクタのような複数のセクタを含むことになる場合がある。言い換えれば、ホストがデータ転送の終了へ向かってユーザデータをメモリアレイへ転送するとき、ページ内のメモリセルのすべてを完全にプログラムするにはユーザデータが不足する場合がある。したがって、個々のページが２０４８バイトを有する場合、第１のページと、１、２、３セクタのみを充填するのに十分なデータが存在するかもしれないが、第２のページの４つのセクタすべてを充填するにはデータが不十分となることが考えられる。メモリアレイ内のメモリセル行が、前述したタイプのインタリーブされたページ（偶数番号のビットラインによって制御される偶数ページには行内のメモリセルのすべてが含まれ、奇数番号のビットラインによって制御される奇数ページには行内のメモリセルのすべてが含まれる）を含む場合には、これは真であり、メモリアレイ内のメモリセル行には単一のページが含まれることになる。したがって、２０４８個のメモリセルの個々の行が、奇数ページと偶数ページのような２つのインタリーブされたページに分割され、個々のページが１０２４バイトを含むようになっている場合、偶数または奇数の第１のページと、偶数または奇数の第２のページの一方のセクタを充填するには適切なまたは十分なデータが存在するかもしれないが、偶数または奇数の第２のページの双方のセクタを充填するには適切なまたは十分なデータが存在しないことが考えられる。図４Ａと図４Ｂに例示するタイプのコード構成の場合、このような状況によって問題が生じることはない。しかし、前述した図５Ａ、５Ｂ、５Ｃに示されているような別のコード構成を利用する場合、このような状況が以下に例示するように問題となる場合がある。
【００４４】
この問題が図６Ａおよび図６Ｂの例で示されている。この例では、メモリアレイ内の行には、２０４８バイトのデータを蓄積するための１６，３８４個のメモリセルが含まれ、このメモリセルが１ページを構成することになる。メモリアレイへまたはメモリアレイからデータを転送するコンピュータホストシステムは、各ブロックが５１２バイトを有する４つのブロック内でデータの転送を行う。したがって、図６Ａに示されているように、アレイ内のメモリセル行は４つのセクタ、すなわちグループ１１２、１１４、１１６、１１８に分割され、個々のグループ内のセルの各々は第１の（下位）ページデータおよび第２の（上位）ページデータを蓄積することになる。本願明細書で以後使用するように、“セクタ”および“グループ”という用語は交換可能に用いられる。図６Ａに示されているように、第１のページすなわち下位ページを充填するのに十分なホストデータが存在し、そのため４つの第１のページすなわち下位ページセクタは、下位ページセクタであることを示すために“Ｌ”とマークされることになる。プログラム対象のユーザデータすなわちホストデータのブロックの終端部へ向かって、４つのセクタの下位ページすなわち第１のページをプログラムするのに十分なデータのみが存在するようにしてもよく、そして、グループ１１２のセルの第２のページすなわち上位ページの第１のセクタのみが存在するようにしてもよい。この上位ページは上位ページであることを示すために図６Ａでは“Ｕ”とマークされる。この結果、図６Ａのセクタすなわちグループ１１４、１１６、１１８には、セルの上位ページすなわち第２のページをプログラムするために残されたデータが存在しなくなり、このセクタすなわちグループは、上位ページであることを示す“Ｕ”のマーカーなしでブランクのままに放置されることになる。
【００４５】
異なるグループでメモリセルをプログラムするためにユーザデータを使用する前に、このデータは対応するデータバッファまたはラッチの中へ第１にロードされる（図７、図８Ａ、図８Ｂを参照されたい）。次いで、データラッチに蓄積されたユーザデータはメモリセルのプログラミングのために利用される。図６Ｂは、図６Ａのメモリセルの４つの対応するセクタすなわちグループ１１２、１１４、１１６、１１８をプログラムするための４つのデータブロック１１２’、１１４’、１１６’、１１８’の第１および第２のページを蓄積するためのデータラッチの機能を例示する機能ブロック図である。ブロックを消去した後で、かつ、４つのグループ内でセルをプログラムするためにユーザデータすなわちホストデータをデータラッチの中へロードする前に、データラッチのすべては“１”で最初にロードされる。この例では、このユーザデータはこの４つのグループのメモリセルのうちの下位ページすなわち第１のページおよびグループ１１２内のセルの上位ページのみのプログラミング用としては十分である。したがって、図６Ｂに示されているように、ブロック１１４’、１１６’、１１８’用のデータを蓄積するためのデータラッチの上位ページすなわち第２のページは“１”でロードされ、“１”を含み続けることになる。図６Ｂに示されているように、例えば、３つのデータブロック１１４’、１１６’、１１８’内の下位ページすなわち第１のページの中へロードされたユーザデータに依存して、３つのセクタ内のデータラッチ内のデータが値“１１”を有する場合、（データ１３０’、１３２’、１３４’、１３６’、１３８’でプログラムされたメモリセルなどの）メモリセルのうちのいくつかはプログラムされないことになる。しかし、３つのブロック１１４’、１１６’、１１８’内のデータが（データ１２２’、１２４’、１２６’、１２８’などの）値“１０”を有する場合、しきい値電圧すなわち蓄積レベルがコード構成に従って状態“１０”に対応するようになるまで、セクタすなわちグループ１１４、１１６、１１８内の対応するメモリセルはプログラムされることになる。
【００４６】
次いで、ユーザデータすなわちホストデータの別のブロックを後続してロードして、ブロック１１４’、１１６’、１１８’を蓄積するデータラッチ内でデフォルト値“１”を変位するとき、このようなデータは、典型的にはすべてが値“１”であるとはかぎらず、いくつかの値が“０”となるものもある。したがって、状態“１０”に合わせてプログラムされたグループ１１４、１１６、１１８内の（データ１２２’〜１２８’を含むセルなどの）このメモリセルのうちのいくつかのメモリセルの場合、後続ブロックのユーザデータすなわちホストデータが、このようなメモリセル用として“１”ではなく“０”を第２のページデータすなわち上位ページデータとして対応するデータラッチの中へロードする場合、代わりにこのようなセルを状態“００”に合わせてプログラムする必要がある場合もある。図５Ｃから、状態“１０”の蓄積レベルが最高レベルＣであることが観察される。既存のプログラミング技法がブロック消去処理から離れて個々のメモリセルの蓄積レベルのしきい値電圧の低下を許さないため、図５Ａ〜５Ｃのコード構成を用いる場合、状態“１０”から状態“００”へのこのようなメモリセルの再プログラムは実行不能となり、その結果セルは誤った状態へプログラムされることになる。図５Ａ〜５Ｃでコード構成を使用するとき、本願ではこれを部分的ページプログラム問題と呼ぶことにする。
【先行技術文献】
【特許文献】
【００４７】
【特許文献１】米国特許第５，５９５，９２４号
【特許文献２】米国特許第５，０７０，０３２号
【特許文献３】米国特許第５，０９５，３４４号
【特許文献４】米国特許第５，３１５，５４１号
【特許文献５】米国特許第５，３４３，０６３号
【特許文献６】米国特許第５，６６１，０５３号
【特許文献７】米国特許第５，３１３，４２１号
【特許文献８】米国特許第６，２２２，７６２号
【特許文献９】米国特許第５，５７０，３１５号
【特許文献１０】米国特許第５，９０３，４９５号
【特許文献１１】米国特許第６，０４６，９３５号
【特許文献１２】米国特許第５，７６８，１９２号
【特許文献１３】米国特許第６，０１１，７２５号
【特許文献１４】米国特許第５，１７２，３３８号
【特許文献１５】米国特許第５，４１８，７５２号
【特許文献１６】米国特許第５，７７４，３９７号
【特許文献１７】米国特許第４，３５７，６８５号
【特許文献１８】米国特許出願第１０／２５４，４８３号
【特許文献１９】米国特許第６，５２２，５８０号
【特許文献２０】米国特許第５，８６７，４２９号
【特許文献２１】米国特許出願第１０／２３７，４２６号
【特許文献２２】米国特許第６，６５７，８９１号
【非特許文献】
【００４８】
【非特許文献１】エイタンらによる“ＮＲＯＭ：新規の局在化トラッピング、２ビット不揮発性メモリセル”，ＩＥＥＥ電子デバイスレターズ，第２１巻，第１１号，２０００年１１月，５４３〜５４５ページ
【発明の概要】
【００４９】
本願発明者らは、たとえメモリセルのうちのいくつかが第１のプログラミングパス時に、ユーピン効果を小さくする従来方式によるコード構成の下での状態よりも高い状態（状態Ｂなど）へプログラムされても、ホストデータが不十分な第２のプログラミングパス中に（最高の状態などの）誤った状態へメモリセルすなわち電荷蓄積素子がプログラムされるのを防ぐように不揮発性半導体メモリシステムが設計されている場合、この部分的ページプログラム問題は完全に回避可能であることを認識した。例えば、（第１のプログラミングパスの結果として）第２のプログラミングパス中に素子をプログラムして、このようなより高い状態にある素子を電荷レベルで（最高の状態などの）エラーを含むさらに高い状態よりも低い状態になるようにすることが可能である。このようにして、後続するホストデータすなわちユーザデータに従うメモリセルのプログラミングは、前述した部分的ページプログラム問題の結果として妨害を受けることはなくなる。
【００５０】
１つの実施形態では、第１のプログラミングパスの後で、かつ、第２のプログラミングパスよりも前に、十分な上位ページデータすなわち第２のページデータを用いることなくセルをプログラムするために、データラッチの中へ適当なデータをロードすることによりこの効果の達成は可能となり、これによって、第２のプログラミング中にプログラミングを行うとき、（第１のプログラミングパスの結果としての）より高い状態でプログラミング電圧が素子やセルと結合されることはなくなる。別の実施形態では、図５Ｃに示されているコード構成をわずかに変更することによってこの効果は達成可能となり、その結果、部分的ページプログラム問題は生じなくなる。
【００５１】
本発明の別の態様によれば、フラグデータを蓄積するフラグセルを用いて、ホストデータすなわちユーザデータの終了のようなホストデータすなわちユーザデータの境界を示すことが可能であり、それによって部分的プログラム問題はエラーを含む結果が生じなくなる。１つの実施形態では、素子はグループ化されて、複数のセクタすなわちグループに変えられ、個々のグループには、ホストデータが不十分な第２のパス時に、このようなグループの素子がプログラムされたものであるかどうかを示すフラグデータを蓄積するための少なくとも１つの対応するフラグ電荷蓄積セルが含まれる。複数のグループのうちの少なくとも２つのグループが共通のワードラインによって制御される。少なくとも２つのグループのうちの少なくとも１つのグループではあるが、すべてのグループではないグループのプログラミングを第２のパス中に行うのに十分なホストデータが存在するとき、フラグデータは少なくとも２つのグループのうちの少なくとも一方のフラグ電荷蓄積セルに蓄積されるか、このような（単複の）フラグセルに蓄積されたフラグデータが変更されて、ホストデータの境界が示されることになる。
【００５２】
説明を簡略にするために、本願では同一の構成要素には同じ参照番号が付されている。
【図面の簡単な説明】
【００５３】
【図１Ａ】不揮発性メモリセルの異なる例を概略的に示す。
【図１Ｂ】不揮発性メモリセルの異なる例を概略的に示す。
【図１Ｃ】不揮発性メモリセルの異なる例を概略的に示す。
【図１Ｄ】不揮発性メモリセルの異なる例を概略的に示す。
【図１Ｅ】不揮発性メモリセルの異なる例を概略的に示す。
【図２】ＮＯＲメモリセルのアレイの一例を示す。
【図３】図１Ｄに示されているようなメモリセルのＮＡＮＤアレイの一例を示す。
【図４Ａ】図３のメモリセルアレイをプログラムする現行技術を示す電圧しきい値レベルの分布状態である。
【図４Ｂ】図３のメモリセルアレイをプログラムする現行技術を示す電圧しきい値レベルの分布状態である。
【図５Ａ】図３のメモリセルアレイをプログラムする別の現行技術を示す電圧しきい値レベルの分布状態である。
【図５Ｂ】図３のメモリセルアレイをプログラムする別の現行技術を示す電圧しきい値レベルの分布状態である。
【図５Ｃ】図３のメモリセルアレイをプログラムする別の現行技術を示す電圧しきい値レベルの分布状態である。
【図６Ａ】メモリセル行の概略ブロック図であり、部分的ページプログラム問題の例示に役立つ図である。
【図６Ｂ】図６Ａでメモリセルをプログラムするための４つのデータブロックの概念図であり、部分的ページプログラム問題の例示に役立つ図である。
【図７】本発明の１つの実施形態を例示するための、コア部分と共通部分とに分割された個々の読み出し／書き込みモジュールの概略ブロック図である。
【図８Ａ】仕切られた読み出し／書き込みスタックのバンクを有するコンパクトなメモリデバイスを概略的に例示し、本発明の１つの実施形態の例示に役立つ図である。
【図８Ｂ】図７に示されているコンパクトなメモリデバイスの別の配置構成を例示する。
【図９】図７の読み出し／書き込みモジュールの構成要素の概略ブロック図であり、本発明の１つの実施形態を例示するために構成要素の動作をさらに詳細に示す。
【図１０Ａ】本発明の１つの実施形態を例示するための、電圧しきい値レベルの分布状態およびメモリセルの電圧しきい値レベルを読み出す技法を示す例である。
【図１０Ｂ】本発明の１つの実施形態を例示するための、電圧しきい値レベルの分布状態およびメモリセルの電圧しきい値レベルを読み出す技法を示す例である。
【図１１Ａ】第１および第２の（下位および上位）ページの読み出しを表すテーブルであり、図１０Ａに例示されている電圧しきい値レベルを読み出す方法の例示に役立つ図である。
【図１１Ｂ】第１および第２の（下位および上位）ページの読み出しを表すテーブルであり、図１０Ｂに例示されている電圧しきい値レベルを読み出す方法の例示に役立つ図である。
【図１２】電圧しきい値レベルの分布状態およびコード構成の関連づけられた値を示す例であり、本発明の別の実施形態を例示する。
【発明を実施するための形態】
【００５４】
不揮発性メモリシステムの例
図７は、本発明の好ましい実施形態に従ってコア部分２１０と共通部分２２０とに分割された個々の読み出し／書き込みモジュール２００の概略ブロック図である。コア部分２１０は接続されたビットライン２１１内の導通電流が所定のしきい値レベル以上か未満かを判定するセンスアンプ２１２を備えている。前述したように、接続されたビットライン２１１はアレイ内のアドレス指定されたメモリセルのドレインへのアクセスを可能にする。
【００５５】
１つの実施形態では、コア部分２１０もビットラインラッチ２１４を備えている。このビットラインラッチを利用して接続されたビットライン２１１にかかる電圧条件がセットされる。１つの実施構成では、ビットラインラッチでラッチされた所定の状態はプログラムの禁止を指定する（Ｖｄｄなどの）状態へ引っ張られる接続ビットライン２１１を結果として生じることになる。以下説明するようにこの特徴はプログラム禁止用として利用される。
【００５６】
共通部分２２０は、プロセッサ２２２と、データラッチセット２２４およびデータラッチセット２２４とデータバス２３１間で結合された入出力インターフェイス２２６とを備える。プロセッサ２２２は計算を実行する。例えば、プロセッサ２２２の機能の１つとして、検知されたメモリセルのメモリ状態の判定などがあり、判定されたデータはデータラッチセットの中へ蓄積される。背景技術の欄で説明したように、メモリセルは電荷範囲を保持することが可能であり、したがって、しきい値電圧ウィンドウ内の任意のしきい値電圧レベル（すなわち、所定の導通電流に合わせてセルをオンに転換したばかりのコントロールゲート電圧）に合わせてプログラミングを行うことが可能となる。データラッチセット２２４を利用して、読み出し処理中にセンスアンプが検知した電流から、プロセッサにより判定されたデータビットが蓄積される。このデータラッチセット２２４は、データバス２３１からインポートされたユーザデータビットをプログラム処理中にホスト（図示せず）から蓄積するためにも用いられる。これらのインポートされたデータビットは、メモリの中へプログラムされたデータの書き込みを意図した書き込みデータを表すものである。入出力インターフェイス２２６はデータラッチセット２２４とデータバス２３１間のインターフェイスを提供する。
【００５７】
読み出し中や検知中、処理は、アドレス指定したセルへの異なるコントロールゲート電圧の供給を基本的に制御し、種々のデータラッチに対して適当なロードを行うようにプロセッサに指図し、センスアンプを付勢する状態マシン（図示せず）の制御下にある。メモリがサポートしている種々のメモリ状態に対応する種々の予め定義されたコントロールゲート電圧を通って、処理がステップするにつれて、センスアンプ２１２はこれらの電圧のうちの１つの電圧でトリップすることになる。その時点で、プロセッサ２２２は、センスアンプのトリッピングイベント、並びに、状態マシンからの入力ライン２２３を介して印加されたコントロールゲート電圧に関する情報を考慮することにより、結果として生じるメモリ状態を決定する。次いで、プロセッサ２２２は、メモリ状態用の２進符号化を計算し、結果として生じるデータビットをデータラッチセット２２４の中へ蓄積する。状態マシンはモジュール２００内の回路ブロックのすべての回路ブロックと通信を行う。
【００５８】
ＳＡ／ビットラインラッチ２１４は、センスアンプ２１２の出力をラッチするラッチとして、および、図７と関連して説明したビットラインラッチとしての２つの任務の双方の役割を果たすことが可能である。したがって、ＳＡ／ビットラインラッチ２１４は、センスアンプか、プロセッサかのいずれかによってセットすることが可能となる。好ましい実施構成では、ＳＡ／ビットラインラッチ２１４からの信号はドライバ（図示せず）により駆動されて、選択したビットライン２１１の電圧によりセットされる。
【００５９】
図７を参照してわかるように、プログラム中または検証中、プログラム対象データはデータバス２３１からデータラッチセット２２４の中へ入力される。状態マシンの制御下にあるプログラム処理には、アドレス指定されたセルのコントロールゲートに印加された一連のプログラミング電圧パルスが含まれる。個々のプログラミングパルスの後に、セルが所望のメモリ状態にプログラムされたかどうかを判定するリードバックが後続する。プロセッサ２２２は、所望のメモリ状態と比較しながらメモリ状態のリードバックをモニタする。２つのメモリ状態が一致すると、プロセッサ２２２はビットラインラッチ２１４をセットして、プログラミングの禁止を指定する状態へビットラインを引っ張らせるようにする。こうすることによって、たとえ、プログラミングパルスがセルのコントロールゲート上に生じたとしても、セルと結合したビットラインのさらなるプログラミングは禁止されることになる。
【００６０】
入出力インターフェイス２２６は、データラッチのセット２２４の中で、または、データラッチのセット２２４の中からデータのトランスポートを可能にする。図８Ａと図８Ｂでわかるように、読み出し／書き込みモジュールのブロックはメモリデバイスの中で同時に使用されて、一度にデータブロックを読み出したり、プログラムしたりする。典型的には、読み出し／書き込みモジュールのブロックには、シフトレジスタの形成のために合成されたモジュールの個々のセットのデータラッチが含まれ、読み出し／書き込みモジュールのブロックによりラッチされたデータをデータバス２３１へ連続的に転送して外へ出力できるようになっている。同様に、読み出し／書き込みモジュールのブロック用のプログラミングデータをデータバス２３１から連続的に入力し、それぞれのデータラッチセットの中へラッチすることができる。
【００６１】
コンパクトな読み出し／書き込み回路
このアーキテクチャの１つの注目すべき特徴として、同時に動作している読み出し／書き込みモジュールのブロックの場合、個々のモジュールを分割して、コア部分と共通部分とに変え、コア部分のブロックに、共通部分の数よりも実質的に少数のブロックを動作させ、共通部分の数よりも実質的に少数のブロックを共有させるようにするという特徴がある。このアーキテクチャにより、個々の読み出し／書き込みモジュールの間の複製回路の構成要素の一部を取り除くことが可能となり、それによって空間および電力の節減が行われる。高密度のメモリチップ設計では、メモリアレイ用の読み出し／書き込み回路全体の５０％程度まで空間の節減を行うことが可能となる。こうすることによって読み出し／書き込みモジュールを高密度でパックすることが可能となり、その結果、読み出し／書き込みモジュールはメモリアレイの隣接した切れ目なく連続するメモリセル行として機能することが可能となり、それによって行内のセルのすべての同時プログラミングまたは読み出しが可能となる。
【００６２】
図８Ａは、仕切られた読み出し／書き込みスタックのバンクを有するコンパクトなメモリデバイスを本発明の１つの実施形態に従って概略的に示す。メモリデバイスは、メモリセル３００の２次元アレイと、制御回路３１０と、読み出し／書き込み回路３７０とを備える。メモリアレイ３００は行デコーダ３３０を介してワードラインにより、並びに、列デコーダ３６０を介してビットラインによりアドレス可能である。読み出し／書き込み回路３７０は仕切られた読み出し／書き込みスタック４００のバンクとして実現され、メモリセルのブロックの同時読み出しまたは同時プログラミングが可能となる。１つの実施形態では、メモリセル行はマルチブロックに分割され、ブロックマルチプレクサ３５０が設けられて、個々のブロックへの読み出し／書き込み回路３７０の多重化が行われる。読み出し／書き込みスタック４００間の通信がスタックバスによって行われ、さらにスタックバスコントローラ４３０によって制御される。
【００６３】
制御回路３１０は、メモリアレイ３００でメモリ処理を実行するために読み出し／書き込み回路３７０と一体に動作する。制御回路３１０は状態マシン３１２、チップアドレスデコーダ３１４およびパワー制御モジュール３１６を備える。状態マシン３１２はメモリ処理のチップレベル制御を行う。オンチップアドレスデコーダ３１４は、ホストが使用するアドレスインターフェイスまたはデコーダ３３０と３７０とが使用するハードウェアアドレスとつながるメモリコントローラを提供する。パワー制御モジュール３１６は、メモリ処理中にワードラインとビットラインとへ供給される電力および電圧を制御する。
【００６４】
図８Ｂは、図８Ａに示されているコンパクトなメモリデバイスの好ましい配置構成を例示する。種々の周辺回路によるメモリアレイ３００へのアクセスがアレイの対向する側に左右対称に実現され、それによって個々の側部のアクセスラインと回路とが半分に減少するようになっている。この結果、行デコーダは行デコーダ３３０Ａと３３０Ｂとに分割され、列デコーダは列デコーダ３６０Ａと３６０Ｂとに分割されることになる。メモリセル行がマルチブロックに分割された実施形態では、ブロックマルチプレクサ３５０はブロックマルチプレクサ３５０Ａと３５０Ｂとに分割される。同様に、読み出し／書き込み回路は、最下部からビットラインと接続する読み出し／書き込み回路３７０Ａと、アレイ３００の最上部からビットラインと接続する読み出し／書き込み回路３７０Ｂとに分割される。このようにして、読み出し／書き込みモジュールの記録密度、したがって、仕切られた読み出し／書き込みスタック４００の記録密度は、個々の仕切られた読み出し／書き込みスタック４００によって１／２に実質的に低減することになる。
【００６５】
図８Ａまたは図８Ｂの個々の仕切られた読み出し／書き込みスタック４００には、ｋ個のメモリセルからなるセグメントとして同時に機能する読み出し／書き込みモジュールのスタックが実質的に含まれる。個々のスタックは、図７に示されている態様でコアスタック部分と共通のスタック部分とに分割される。個々の読み出し／書き込みスタック４００間の通信はスタックバス（図示せず）による相互接続によって行われ、スタックバスコントローラ４３０によって制御される。制御ライン（図示せず）は、スタックバスコントローラ４３０から読み出し／書き込みスタックのコア部分の各々へ制御信号とクロック信号とを出力する。同様に、制御ライン（図示せず）は、スタックバスコントローラ４３０から読み出し／書き込みスタック４００の共通部分の各々へ制御信号とクロック信号とを出力する。
【００６６】
同時に動作している仕切られた読み出し／書き込みスタック４００のバンク全体によって行に沿うｐ個のセルブロックの同時読み出しまたはプログラミングが可能となる。例えば、ｒがバンク内のスタック数であれば、ｐ＝ｒ＊ｋとなる。１つの例示のメモリアレイが、ｐ＝５１２バイト（５１２×８ビット）、ｋ＝８、したがってｒ＝５１２を有する場合もある。この好ましい実施形態では、ブロックは一続きのセル行全体である。別の実施形態では、ブロックは行内のセルのサブセットである。例えば、セルのサブセットは行全体の１／２若しくは行全体の１／４になることも考えられる。セルのサブセットは、切れ目なく連続する一続きのセルや、１個おきのセル、或いは１個おきの所定数のセルとなる場合も考えられる。
【００６７】
図８Ａに示されている実施形態では、ｐ個のセルの各々に対してｐ個の数の読み出し／書き込みモジュールが存在することになる。個々のスタックがｋ個のメモリセルとして機能しているとき、バンク内の読み出し／書き込みスタックの総数はｒ＝ｐ／ｋによって示される。ｐ＝５１２バイトおよびｋ＝８の場合の例では、ｒは５１２となる。
【００６８】
前述したように、高密度でかつ高性能のメモリにおいて遭遇する１つの問題として、隣接した切れ目なく連続するセル行のブロックの同時読み出しと同時プログラミングを行う必要性と、すべてのセルに対する読み出し／書き込みモジュールを適合させる際の困難とが存在する。
【００６９】
この適合化問題は、メモリアレイの対向する側に周辺回路が形成される図８Ｂに示されている好ましい実施形態によって多少とも解決される。読み出し／書き込み回路３７０Ａ、３７０Ｂがメモリアレイ３００の対向する側に形成されるとき、ｐ個のセルブロックの１／２が最上部側からアクセスされ、別の１／２がアレイの底部側からアクセスされることになる。したがって、ｐ／２個の数の読み出し／書き込みモジュールが個々の側部に存在することになる。この当然の結果として、個々の側部にある読み出し／書き込みスタック４００はｐ／２個の数のビットラインまたはメモリセルとして同時に機能するだけで十分となり、したがって、バンク内の読み出し／書き込みスタックの総数はｒ＝ｐ／２ｋによって与えられることになる。ｐ＝５１２バイトでｋ＝８の例では、ｒは２５６となる。このことは、図８Ａに示されている実施形態と比べて、メモリアレイの個々の側部には読み出し／書き込みスタック４００の個数の１／２の個数しか必要でないことを意味することになる。
【００７０】
別の実施形態では、この適合化問題や別の考慮事項によって、さらに低い記録密度が決定され、セル行は２以上のインタリービングなセルブロックに分割されることになる。例えば、一方のセルブロックは偶数番号の列から得られるセルから構成され、他方のセルブロックは奇数番号の列から得られるセルから構成される。図８Ａと図８Ｂとに示されているように、ブロックマルチプレクサ３５０すなわち３５０Ａと３５０Ｂとは、偶数または奇数のブロックのいずれかのブロックへ仕切られた読み出し／書き込みスタックのバンクの切替えに利用されることになる。図８Ｂに示されている実施形態では、ｐ／４個の数の読み出し／書き込みモジュールがアレイの個々の側部に設けられることになる。この場合、対向する側部の各側部にある読み出し／書き込みスタックの個数はｒ＝ｐ／４ｋ個になる。したがって、さらに多くの余地が与えられて、より少数の読み出し／書き込みモジュールをぴったり適合できるようにはなるが、これは性能の低下により行われるものであり、読み出し／書き込みブロックはもはや隣接した切れ目なく連続するブロックではなくなる。
【００７１】
部分的プログラム問題を解決する実施形態
前述したように、部分的プログラム問題は、図５Ａ〜５Ｃおよび図１０Ａ、１０Ｂのコード構成のようなコード構成を用いてメモリセルのプログラミングを行う際に、そして、第２のプログラミングパス中にセルのプログラミングを行うのにユーザデータすなわちホストデータが不十分なときに、状態Ｂに対して生じるものである。このようなイベント時にデータラッチ内の第２の（上位）ページデータがデフォルト“１”の値になるため、以下に説明するようにデフォルト“１”の値になるイベントの発生が妨げられなければ、このようなセルは、図５Ａ〜５Ｃ、１０Ａ、１０Ｂのコード構成の下で状態Ｃにプログラムされることになる。次のプログラミング処理時の後続するユーザデータすなわちホストデータによって、このようなセルが状態Ｂにプログラムされた状態のままであることが求められる場合、そのような状態のままであることはあり得ない。というのは、ブロック消去処理を除いてほとんどの設計がしきい値レベルの低下を許さないからである。
【００７２】
本発明の１つの実施形態は、ユーザすなわちホストの上位ページデータが含まれないメモリセルの場合、プログラミング処理時の第１のプログラミングパスの後であって、しかも、第２のプログラミングパスよりも前に、このようなメモリセルのプログラミングに用いられるデータラッチ内の下位ページデータは、適当な代替データによって変位され、第２のプログラミングパス時にこのようなメモリセルのプログラミングを妨げるようにするという認識に基づくものである。この結果、この実施形態の１つの実施構成では、消去状態すなわちリセット状態Ｅがデータ“１１”を表すか、或いはデータ“１１”に対応する場合、内部データロード処理時に、このようなメモリセルから読み出されたデータラッチ内の第１のページデータすなわち下位ページデータは“１”によって変位される。このことが以下に参照する図９にさらに詳細に示されている。
【００７３】
図９は、図７の回路ブロックのデータラッチの構造をさらに詳細に示す概略ブロック図である。図９に示されているように、図７のデータラッチ２２４は、少なくとも３つのラッチ２２４ａ、２２４ｂ、２２４ｃを備えている。この例のうちの１つの例では、スタックによって使用中のｋ個のセル間での読み出し／書き込みスタック４００内のモジュール２００は、対応するメモリセルの読み出しおよび書き込み制御のために用いられる。したがって、ラッチ２２４ａ〜２２４ｃは個々に１ビットのラッチであってもよい。プログラミング処理中、ユーザデータすなわちホストデータはデータバス２３１と入出力インターフェイス２２６とを通ってラッチ内へロードされる。１つの実施形態では、第１のデータビットすなわち下位のデータビットはバス２３１とインターフェイス２２６とを介してラッチ２２４ａの中へ第１にロードされる。このロードは、図７、図８Ａ、図８Ｂのスタックのバンク内のスタック４００の各スタック内の読み出し／書き込みモジュール２００のすべてによって同時に行われて、ページ全体のプログラミングが意図されることになる。ページ全体は１つの行内のメモリアレイ３００の中のメモリセルのすべてから構成することも可能である。これとは別に、ページ全体は、１つのセル行内のインタリーブされたページの場合、奇数ページまたは偶数ページのようなメモリアレイ３００内の行の一部のメモリセルから構成されるものであってもよい。
【００７４】
次いで、ページ内のメモリセルは、スタック４００のバンク内のモジュール２００のすべてのモジュール内のデータラッチ２２４ａ内の下位ページデータすなわち第１のページデータを用いてプログラムされる。ラッチ２２４ａ内の第１のページデータすなわち下位ページデータを用いてページ内のメモリセルをプログラムした後、第２のページデータすなわち上位ページデータがバス２３１とインターフェイス２２６とを介してラッチ２２４ａ内へロードされる。このデータはプロセッサ２２２によって、メモリセルの第２のパスプログラミングに備えてラッチ２２４ｃへシフトされる。前述したように、第２のパスプログラミングを行うより前に、第１のプログラミングパスの後に、第２のパスプログラミングのためのメモリセルのしきい値電圧すなわちしきい値レベルを知っている必要がある。１つの実施形態では、これは内部データロード処理によって行われ、この内部データロード処理時に、ページ内のメモリセル内の電流がスタック４００のバンク内モジュール２００内のセンスアンプ２１２により検知される。このようなセルのしきい値電圧すなわち蓄積レベル、並びに、このようなセルに対応するデータはモジュール内のプロセッサ２２２により判定され、次いで、モジュール内のラッチ２２４ａに蓄積される。第２のパスプログラミング内のページをプログラムするのに十分な上位ページデータすなわち第２のページデータが存在する場合、ラッチ２２４ａに蓄積されたデータ、並びに、ラッチ２２４ｃ内のユーザすなわちホストの上位ページデータすなわち第２のページデータは、第２のパスプログラミング時のページ内のメモリセルをプログラムするために使用される。これは、以下の例で図６Ａのセクタ１１２内のセルをプログラムする場合である。
【００７５】
しかし、ページ全体をプログラムするのに上位ページデータすなわち第２のページデータが不十分な場合、これは制御回路３１０によって第１に検出される。図６Ａおよび図６Ｂに例示されている例では、メモリセルの第１のページすなわち下位ページをプログラムするのに十分なデータが存在している間、第１のセクタ１１２用の十分なデータのみが存在することになる。したがって、ホストデータすなわちユーザデータはこのようなセクタで終了し、セクタ１１４、１１６、１１８用の上位ページデータすなわち第２のページデータはそれ以上存在しなくなる。このようなイベント時に、並びに、本発明の１つの実施形態では、この場合データを変位するために、状態マシン３１２は、メモリセルの読み出しから内部データロード処理の結果生じる代替データをラッチ２２４ａの中へロードさせる。代替データによって内部にロードされた下位ページデータすなわち第１のページデータの変位は、不十分な上位ページデータすなわち第２のページデータが存在するメモリセルのプログラミングを制御するモジュールのデータラッチ用としてのみ生じることになる。図６Ａおよび図６Ｂの例では、この変位は、セクタ１１４、１１６、１１８内のメモリセル用として行われる。セクタ１１２内のメモリセルのプログラミングを制御するためのモジュール内のデータラッチ２２４ａ用として、ラッチ２２４ａ内のデータは、前述した内部データのロード処理の結果として生じるデータであり続ける。したがって、データブロック１１２’、１１４’、１１６’、１１８’間の境界を追跡することによって、そして、これらのセクタのうちのどのセクタがユーザデータすなわちホストデータを有しているかいないかを追跡することによって、内部データロード時に読み出されたデータを置き換える代替データのロード処理が、第２のページデータすなわち上位ページデータを有していないページのセクタ内のセル専用として行われることになる。１つの実施形態では、ページの境界はメモリセルのプログラミングを制御するために、コントローラ回路３１０によってモニタされる。以下さらに詳細に説明するように、コントローラ回路すなわち回路３１０は適当なフラグデータを蓄積し、対応するセクタのフラグ電荷蓄積セルの中でフラグデータを適当に変更して、ホストデータが不十分な行のセクタを示すようにする。
【００７６】
この実施形態では、対応するセルをプログラムするための第２のデータすなわち上位ページデータが不十分なとき、異なるモジュール内のラッチ２２４ａ内へロードされるデータを交換するために代替データが利用される。しかし、第１のプログラミングパス中にＢ’状態へプログラムされたセルに対してのみ部分的ページプログラム問題が生じることが知られている。第１のプログラミングパスの後、消去状態Ｅのまま残るセルについては、これらのセルを正確に状態Ａへプログラムするか、第２のプログラミングパスの結果として正確に状態Ｅのまま残るようにするかのいずれかが可能である。したがって、この実施形態では、状態Ｂ’にあるセルのプログラミングを行うために代替データ“１”をラッチ２２４ａの中へのみロードする必要がある。そして、このロードは第１のプログラミングパスの後の状態Ｅのセルに対しては行われない。このことは、第２のパス中、プログラミング電圧が状態Ｂ’のセルと結合するのを防ぐという効果を有するものである。これは、Ｂ’の分布状態がＢの分布状態の中へさらに移行することを禁止するという効果も有するものであり、セクタ１１４、１１６、１１８の各セクタに対して、後続する上位ページデータが利用可能となる場合、個々のセクタは、状態ＥまたはＢ’のいずれかからプログラミングを開始することになる。このようなセルに対して、或いは、対応する第２のページデータすなわち上位ページデータを含まない、すべてのセルの代替セルとして、データラッチの中へ“１”をロードして、これらのセルをプログラムするようにすることにより、内部ロード処理の交換を行うことも可能となる。このような変形例およびその他の変形例は本発明の範囲に含まれるものである。この実施形態は、消去状態Ｅがデータ“１１”を表す方式に限定されるものでもない。
【００７７】
図５Ａと図５Ｂに関連する前述した場合と同様、この実施形態では、たとえ第２のページデータすなわち上位ページデータを含まないセルのＢ’の分布状態が広範にわたるユーピン効果に起因して広がったかもしれない場合であっても、後続して隣接するセルをプログラムするとき、このような広がったＢ’の状態の電荷レベルは次のより高い状態Ｃの電荷レベル未満のままとなる。
【００７８】
ラッチ２２４ａの中へ前述したようにデータをロードして、メモリセルを読み出すことによって、内部データロードの結果として生じるデータの変位を行うことは、状態マシン３１２を備えた制御回路３１０によって、ユーザすなわちホストにとって透過的に行うことも可能である。これとは別に、プログラムシーケンスを変えることによってこのような処理の達成が可能である。プログラムアルゴリズムの中に新たなコマンドを追加せずに、ユーザすなわちホストによってどのゾーンまたはセクタがプログラムされているかをゾーン検出回路を用いて検出して、残りの１または複数のセクタまたはゾーンを選択し、包括的なリセット時にラッチ２２４ａと２２４ｃの双方にデータ“１１”を充填するようにしてもよい。すべてのこのような変形例は本発明の範囲に属するものである。
【００７９】
読み出し処理
ページの境界で部分的にプログラムされたページを読み出す際に、読み出しアルゴリズムの修正を行う必要がある場合もある。というのは、完全にプログラムされたメモリセルの読み出しレベルが、完全にはプログラムされなかったメモリセルの読み出しレベルと異なる場合もあるからである。この状況は図１０Ａと図１０Ｂとに図示されている。図１０Ａは、図６Ａに例示され、前述したメモリアレイ内のメモリセル行のグループすなわちセクタ１１２におけるしきい値電圧レベルのメモリセルの分布状態を示す図例である。このような例では、グループすなわちセクタ１１２内のメモリセルのすべては第１および第２のプログラミングパス中にプログラムされたものであり、それによってこれらのセルのしきい値電圧は図５Ｃと図１０Ａの分布状態Ｅ、Ａ、Ｂ、Ｃを有するようになる。しかし、セクタ１１４、１１６、１１８内のメモリセルの場合、これらのメモリセルは、図５Ａ、図５Ｂまたは図１０Ｂの状態ＥまたはＢ’のいずれかの状態になる。すべての４つのセクタ１１２、１１４、１１６、１１８内のセルのしきい値電圧によって表される上位ページデータすなわち第２のページデータを得るために、メモリセルが２つの異なる読み出しレベルＶａおよびＶｃで読み出され、電圧検知モードが想定されることになる。図５Ｃと図１０Ａに示されている“１００１”の上位ページすなわち第２のページ用のコード構成を得ることを意図して、読み出しレベルＶａを採用する際の規定は、Ｖｃが使用される読み出しレベルを用いる際の規定とは異なる（そして実際には正反対の）ものとなる。したがって、図１１Ａを参照すると、読み出しレベルＶａを用いるとき、セルのしきい値電圧がＶａ未満（またはＶａよりも大きな負の値）であれば、このようなしきい値電圧に対応する上位ページ値は“１”となる。しかし、読み出しレベルＶｃの場合には、この読み出しレベルＶａの場合とは正反対の事実となる。したがって、読み出しレベルＶｃの場合、メモリセルのしきい値電圧がＶｃ以上であれば、このようなしきい値電圧は上位ページすなわち第２のページ値“１”に対応することになるが、しきい値がＶｃ未満であれば、このようなしきい値電圧は上位ページすなわち第２のページ値“０”に対応することになる。このような規定を用いる場合の、状態Ｅ、Ａ、Ｂ、Ｃに対応する上位ページすなわち第２のページ値が図１１Ａに示されている。読み出しレベルＶａおよびＶｃを含む２つの読み出し値の結果生じる２つの値が論理和の形で組み合わされると、その組み合わせによって、図５Ｃと図１０Ａに例示されている第２のページすなわち上位ページ用のコード構成“１００１”が産みだされる。したがって、状態ＥおよびＣ用の２つの値の組み合わせの結果生じる２つの読み出し値によって、上位ページすなわち第２のページ値“１”が結果として生じることになり、一方、状態ＡおよびＢの結果生じる２つの読み出し値の組み合わせによって、上位ページすなわち第２のページ値“０”が結果として生じることになる。
【００８０】
グループすなわちセクタ１１２内のメモリセルを読み出すための前述した規定と同じ規定も適用して、グループすなわちセクタ１１４、１１６、１１８において部分的にプログラムされたメモリセルを読み出し、それによって通常行われるアルゴリズムを用いて、選択ワードラインに沿ったすべてのセルを同時に読み出すことが可能となる。次いで、読み出し値が論理和で同様に組み合わされ、図１１Ａに例示されているように上位ページすなわち第２のページ値の出力処理が行われる。次いで、このような上位ページすなわち第２のページ値はラッチ２２４ｃに蓄積され、図９のプロセッサ２２２によって、入出力インターフェイス２２６を通ってラッチ２２４ａとバス２３１とへシフトされる。これから観察されることとして、メモリセルが完全にプログラムされているか、単に部分的にのみプログラムされているかにかかわらず、すべてのメモリセル値の上位ページすなわち第２のページの読み出しを行うために、同じ組の読み出しレベル（ＶａおよびＶｃ）を利用することも可能であるということが挙げられる。
【００８１】
しかし、下位ページすなわち第１のページ値を読み出すとき、ページ内のすべてのメモリセルが完全にプログラムされているか否かに応じて、その結果は異なるものとなる。したがって、グループすなわちセクタ１１２内のメモリセルの場合、図１０Ａに示されているようにセルのすべては状態Ｅ、Ａ、Ｂ、Ｃへプログラムされ、それによって印加すべき読み出しレベルはＶｂとなる。グループすなわちセクタ１１４、１１６、１１８内のメモリセルは第１のプログラミングパス時にのみプログラムされ、第２のプログラミングパス時にはプログラムされない。その結果、メモリセルのしきい値電圧の分布状態は図５Ａ、図５Ｂまたは図１０Ｂに示されているようになる。図５Ｂを参照して前述したように、図５Ｂと図１０Ｂの分布状態Ｂ’はユーピン効果に起因して広がっている。下位ページデータすなわち第１のページデータがグループすなわちセクタ１１４、１１６、１１８内のセルから読み出されるとき、読み出しレベルはＶｂではなくＶａとすることが望ましい。
【００８２】
１つの実施形態では、すべてのセクタ１１２、１１４、１１６、１１８内のメモリセルは、すべて読み出しレベルＶｂと共にシーケンシャルに読み出され、次いで、読み出しレベルＶａと共に読み出され、図１１Ｂに示されている結果が得られることになる。このＶａとＶｂ双方の読み出しの際に用いる規定は、下位ページすなわち第１のページのしきい値電圧がＶｂ未満であれば、ビット値は“１”とし、下位ページすなわち第１のページのしきい値電圧がＶｂ以上であれば、ビット値は“０”とするというものである。図１１Ｂから観察されるように、グループすなわちセクタ１１２内のメモリセルを読み出す場合、読み出しレベルＶｂを用いる読み出しのみが有効となり、グループすなわちセクタ１１４、１１６、１１８のうちの任意の１つのメモリセルを読み出す場合、読み出しレベルＶａを用いる読み出しが有効となる。１つの実施形態では、２つの異なる読み出しレベルを用いて２つの読み出し処理を容易にするために、読み出し電圧Ｖｂを用いる読み出し処理の結果生じる下位ページすなわち第１のページ値はラッチ２２４ｃに蓄積され、そして読み出しレベルＶａを用いて得られる下位ページすなわち第１のページ値はラッチ２２４ｂに蓄積されることになる。次いで、読み出し中のメモリセルが完全にプログラムされたかあるいは単に部分的にのみプログラムされたかに応じて、２つのラッチ２２４ｂと２２４ｃのうちの一方の値は、このようなセルから読み出された下位ページすなわち第１のページ値として、ラッチ２２４ａへシフトされ、次いで、インターフェイス２２６を通ってデータバス２３１へ送信されることになる。
【００８３】
完全にプログラムされたセルと、単に部分的にプログラムされたセルとを区別することができるようにするために、フラグ電荷蓄積セルが利用される。前に参照した米国特許出願第１０／２３７，４２６号（特許文献２１）並びに、シバタらの米国特許第６，６５７，８９１号（特許文献２２）に開示されているように、フラグセルはメモリアレイ内のメモリセル行の中に組み込まれ、これらのフラグセルは読み出し処理時にメモリセルと共に読み出される。したがって、米国特許第６，６５７，８９１号（特許文献２２）に記載されているアーキテクチャ（図３に関して記載したものなど）と同じアーキテクチャを採用して、メモリアレイ３００内の少なくともいくつかの行の各々の中に対応するフラグ電荷蓄積セルを組み込むようにしてもよい。セクタの各々には少なくとも１つの対応するフラグ電荷蓄積セルが含まれる。セクタ１１２、１１４、１１６、１１８内の対応するフラグセルの位置は図６Ａの矢印ＦＣによって示されている。シバタらの特許に記載されているような１つの実施構成では、第１のプログラミングパス中にフラグセルの第１のページすなわち下位ページビットは状態“１”のまま残り、“０”へ変えられることはない。第２のページをプログラムする第２のプログラミングパス中、フラグセルの第２のページすなわち上位ページビットは“１”から“０”へ変えられて、第２のプログラミングパスが行われたことが示される。前述したように、第２のプログラミングパス中、メモリセルが読み出されて、この内部データのロード処理時に下位ページのビット値が得られることになる。好ましくは、この内部データのロード処理中、下位のすなわち第１のフラグビットも“１”から“０”へ変えられることが望ましい。したがって、第２のプログラミングパスの終了後、上位および下位の（第２および第１の）フラグセルのフラグビットの双方は“１１”から“００”へ変えられている。１つの実施形態では、第１および第２の（下位および上位）ページのビット値の変動は制御回路３１０によって実行することも可能である。或いは、適当なビット値を（単複の）フラグセルに制御回路３１０により蓄積することも可能である。
【００８４】
フラグデータの値を用いて、ホストデータすなわちユーザデータの終端部のようなホストデータすなわちユーザデータの境界にマークを付すことも可能である。前述した例では、第２のパス中にプログラムされた（単複の）フラグセルのセクタすなわちグループ内のフラグデータが値“００”を有することになるのに対して、第２のパス中のプログラムされなかったフラグセルのセクタすなわちグループ内のフラグデータは値“１１”を有することになる。次いで、（単複の）フラグセルの２つの隣接するセクタすなわちグループのビット値が“１１”と“００”の間で変わるとき、２つの隣接するセクタすなわちグループ内の電荷蓄積素子に蓄積されたホストデータすなわちユーザデータの境界が示されることになる。（共通のワードラインによって制御される複数のセクタすなわちグループ間の２つのような）２つの隣接するセクタすなわちグループ間の連結部でホストデータすなわちユーザデータの終端部を示すようにすることも可能であり、これらの隣接セクタすなわちグループのフラグデータは連結部の両端にわたって“１１”から“００”へ変化する。フラグデータの値を追跡することによって、以下に説明するような電荷蓄積素子の読み出しのようなエラーを含む結果の防止を図ることが可能となる。
【００８５】
読み出し処理時に、読み出しレベルは、読み出し対象のメモリセルが完全にプログラムされているか、或いは単に部分的にプログラムされているかに依って決められる。このことは、読み出し対象のメモリセル行内に組み込まれたフラグビットの読み出しにより確かめることが可能となる。前述したように、第２のプログラミングパスの内部データロードの処理中に、下位のフラグビットすなわち第１のフラグビットも“１”から“０”へ変更される。したがって、この下位のフラグビットすなわち第１のフラグビットの読み出しの際に、正確な読み出しレベルの決定が可能となる。すなわち、このビットが“１”であれば、読み出しレベルはＶａとなるが、このビットが“０”であれば、読み出しレベルはＶｂとなる。これは、ページが単に部分的にプログラムされているページの境界を除いて、すべてのメモリセルが完全にプログラムされているメモリアレイ３００内の行のほとんどでメモリセルの読み出しを行う場合にも真となる。したがって、２つのフラグビットの各々を“０”にセットすることによって、ページ内のメモリセルから読み出される、読み出しレベルＶｂを含むページ用の下位ページすなわち第１のページを第１のすなわち下位のフラグビットの読み出しと共に終了することが可能となる。したがって、ページ全体が完全にプログラムされたほとんどのインスタンスでは、フラグビットの検知および状態マシンの調整が可能となり、その結果読み出しレベルＶａを用いて第２の読み出し処理を行う必要性がなくなることになる。したがって、フラグデータの読み出し結果に依存して、下位ページすなわち第１のページ値をセルから読み出すための読み出しレベルの別のシーケンスを印加することも可能となる。ページ内のセルのすべてが完全にプログラムされていることがフラグデータによって示された場合、読み出しレベルＶｂを伴う１回だけの読み出し処理で充分となるのに対して、ページ内のセルのすべてが完全にプログラムされているわけではないことがフラグデータによって示された場合、読み出しレベルＶｂの後に読み出しレベルＶａを伴う２回の読み出し処理が必要とになる。この結果、異なる読み出しシーケンスが利用可能となり、読み出されたフラグデータの値に応じて適当なシーケンスが選択され、利用されることになる。
【００８６】
前述したことから、部分的にプログラムされたページを読み出すにはさらに多くの時間が必要となることは明らかである。というのは、完全にはプログラムされていないページ内のセクタ用の２つの異なる読み出しレベルで下位のすなわち第１のページデータがシーケンシャルに読み出されるからである。この目的のために、図８Ａおよび図８Ｂの制御回路３１０内の状態マシン３１２は、ページを充填するのにデータが不十分であると判定されると、バス３０１内の読み出し／話中信号ライン（個々には図示せず）を介して話中信号をホストコントローラへ送信する。次いで、この状態マシンはそのタイミング信号を調整して、完全にはプログラムされていないメモリセルの読み出し処理用としてさらに多くの時間を許可することになる。制御回路３１０は、フラッシュメモリからデータの読み出しを行う際にさらに多くの呼出し時間があることをユーザに認知させるように順次ホストコントローラに通知する。
【００８７】
ダミーの時間を用いてキャッシュタイミングと共にしきい値電圧または蓄積レベルを読み出す場合、“１１”から“００”へのフラグビットの変更が検出されると、制御回路３１０内の状態マシンはしきい値電圧の蓄積レベルを読み出すためのダミーの時間を長くして、２つの異なる読み出しレベル用としてシーケンシャルに読み出しを行うためのさらに多くの時間を許可するようにする。
【００８８】
図１２は、しきい値電圧の分布状態、並びに、新規の代替のコード構成に従ってこの分布状態により表されたデータの例であり、本発明の別の実施形態を例示するものである。図１０Ａおよび図１２の比較によって、これら２つのコード構成が、図１２の新たなコード構成では、しきい値電圧の分布状態Ｂが“１０”を表し、しきい値電圧の分布状態Ｃが“００”を表すという点で異なるものであることは明らかでる。これに対して、図１０Ａのコード構成では、分布状態Ｂは“００”を表し、分布状態Ｃは“１０”を表している。図１０Ａおよび図１２の比較によって、双方のコード構成における４つの異なる分布状態Ｅ、Ａ、Ｂ、Ｃが同じ下位ページすなわち第１のページ値“１１００”を有するものであることも明らかになる。第１のプログラミングパス中に図１２の新たなコード構成を用いる場合、メモリセルはプログラムされず、その結果、このメモリセルは、ホストデータが“１”の場合の状態Ｅのままとなるか、またはホストデータが“０”の場合の分布状態Ｂ’にプログラムされるかのいずれかとなる。第２のプログラミングパス中、上位ページすなわち第２のページのビット値が“１”であれば、メモリセルはプログラムされず、その結果、このメモリセルは分布状態Ｅのままとなるか、或いは分布状態Ｂへ狭められた状態になる。ユーザデータが“０”であれば、第１のプログラミングパスの後に、メモリセルの初期分布状態に応じてメモリセルは分布状態ＡまたはＣにプログラムされる。この結果、図５Ｃおよび図１０Ａのコード構成のユーピン効果の場合と類似して、図１２の新たなコード構成もユーピン効果を小さくすることになる。
【００８９】
図１２から、第１のプログラミングパスにおける上位ページすなわち第２のページの状態ＥおよびＢの値の双方が“１”であることが明らかである。このことは、ホストデータすなわちユーザデータがページ全体を充填するのに不十分な場合、データラッチ内のユーザデータを利用して第２のプログラミングパス時にメモリセルをプログラムする際、上位ページデータすなわち第２のページデータが不十分なメモリセルが、エラーを含む分布状態へプログラムされないことを意味することになる。これは、図５Ｃおよび図１０Ａのコード構成を使用する状況とは異なり、セルが状態Ｅまたは状態Ｂ’であるかどうかにかかわらず真である。ホストデータが第１のページすなわち下位ページ用のデータ“０”を有し、しかも、位置１２２’用の第２のページすなわち上位ページ用のデータが存在しない場合の図６Ｂの例を再度参照すると、この位置用の第２のページすなわち上位ページ用のデフォルト値は“１”となり、その結果位置１２２’は値“１０”で充填されることになる。この値は、図１０Ａではコード構成に従う分布状態Ｃへのプログラミングを必要とするが、図１２ではコード構成に従う分布状態Ｂへのプログラミングを必要とする。ホストデータの下位ページすなわち第１のページ値が“０”であるため、セクタ１１４内の対応するメモリセルは第１のプログラミングパス時に状態Ｂ’へすでにプログラムされていて、状態Ｂの方へほんのわずかこのメモリセルを動かす必要がある。個々のセクタ１１４、１１６、１１８が状態ＥまたはＢ’の状態のまま残っている従来の実施形態とは対照的に、この実施形態では、上位ページデータを用いて第１のセクタ１１２をプログラムするとすぐに、以前状態Ｂ’にあったそのページの他のすべてのセルが状態Ｂへ動かされることに留意されたい。したがって、新たなホストデータが、ページのセクタ１１４、１１６、１１８内のメモリセルの第２のページすなわち上位ページをプログラムするのに再び利用可能になると、これらのセクタ内のメモリセルはすでに正確なしきい値電圧の分布状態にあることになる。
【００９０】
図１２に例示するコード構成を利用することによって、前述した部分的ページプログラミングは生じなくなることが観察される。第１のプログラミングパスの後の第２のページすなわち上位ページの同じ値によって、セルに対する２つの可能な蓄積レベルを表す場合、同じ文脈で図１２のコード構成とは異なるコード構成を用いて、部分的ページプログラム問題の解決を図ることが可能となる。２つの可能な状態が、図５Ｃと図１０Ａの消去（すなわち、リセット）状態で、かつ、Ｂ状態である場合、双方の状態の第２のページ値は同じとなることが望ましい。この場合、部分的ページプログラム問題は生じなくなる。
【００９１】
図１２ではコード構成に関して部分的ページプログラム問題が生じないため、ページの個々のセクタ用として別個のフラグ記憶セルを設ける必要はなくなる。上位および下位の（第１および第２の）ページビット値の双方の値が、図１２のコード構成では分布状態ＡとＢとの間で変動し、その結果、コード構成はグレーコードとはならないことも図１２から明らかである。このことは、（例えば当業で周知の種々の種類の妨害メカニズムを通じて）分布状態がＢからＡへドリフトした場合、ビットエラーが論理データの２つのページで検知され、次いで、このコード構成を利用する場合、さらに多くの誤り訂正（ＥＣＣ）ビットが望ましくなる場合が生じることを意味する。さらに、上位すなわち第２のページ値情報をメモリセルから得るために、３つの異なる読み出しレベルで読み出しを行う必要がある場合もある。その結果、この場合の読み出し時間の方が図１０Ａのコード構成を採用する場合の読み出し時間と比べて長くなる。しかし、図１２のコード構成は、図９のデータラッチ２２４ｂのような追加のデータラッチを必要としないという点で利点がある。
【００９２】
この設計に対する１つの可能な代替例として、独立に制御される読み出し／書き込みモジュールによって、図６Ａの４つのセルグループ１１２、１１４、１１６、１１８を制御することができるようにする例が挙げられる。この代替例は、部分的ページプログラム問題を解決する際にさらなる柔軟性を与えることになるものではあるが、メモリデバイスのダイサイズを大きくするものとなる。図１０および図１２の双方の方式の１つの利点として、読み出し／書き込みモジュールを簡単に制御することができるため、ダイサイズが大きくならないという利点、或いは、少量だけ増えるという利点が挙げられる。
【００９３】
以上、種々の実施形態を参照しながら本発明について説明してきたが、添付の請求項並びにこれらの請求項と均等なものによって画定される本発明の範囲から逸脱することなく、変更並びに修正を行うことも可能であることを理解されたい。例えば、実施形態はＮＡＮＤアレイでの動作を参照しながら説明することもできるが、この実施形態はＮＯＲアレイに対しても同様に適用可能であり、このような変形例およびその他の変形例は本発明の範囲に含まれるものとする。４つのセクタに個々にグループ化されたメモリセル行を参照しながら本発明を例示したが、これらのメモリセル行はさらに多数のまたはさらに少数のセクタにグループ化することも可能であり、このような異なるグループ化方式の場合にも本願明細書で説明した利点と同じ利点を利用することが可能となる。本願明細書で参照したすべての参考文献は参照により援用されている。
【図１Ａ】
2011258309.tif 000003
【図１Ｂ】
2011258309.tif 000004
【図１Ｃ】
2011258309.tif 000005
【図１Ｄ】
2011258309.tif 000006
【図１Ｅ】
2011258309.tif 000007
【図２】
2011258309.tif 000008
【図３】
2011258309.tif 000009
【図４Ａ】
2011258309.tif 000010
【図４Ｂ】
2011258309.tif 000011
【図５Ａ】
2011258309.tif 000012
【図５Ｂ】
2011258309.tif 000013
【図５Ｃ】
2011258309.tif 000014
【図６Ａ】
2011258309.tif 000015
【図６Ｂ】
2011258309.tif 000016
【図７】
2011258309.tif 000017
【図８Ａ】
2011258309.tif 000018
【図８Ｂ】
2011258309.tif 000019
【図９】
2011258309.tif 000020
【図１０Ａ】
2011258309.tif 000021
【図１０Ｂ】
2011258309.tif 000022
【図１１Ａ】
2011258309.tif 000023
【図１１Ｂ】
2011258309.tif 000024
【図１２】
2011258309.tif 000025