(57)【要約】  １つのプログラム動作サイクルにおいてデータの複数のビットをフラッシュ・メモリセルへプログラムするための回路および方法。フラッシュ・メモリ・アレイの１物理ページへプログラムされるべきデータの複数のページが、メモリデバイス上のページバッファまたは他の記憶手段に記憶される。プログラムされるべきセルに接続された選択されるワード線は、異なる時間間隔で所定のプログラムプロファイルを用いて駆動され、各所定のプログラムプロファイルは、消去しきい値電圧を特定の論理状態に対応する特定のしきい値電圧へシフトさせるように構成される。マルチページビット線コントローラが、各ビット線と関連付けられているデータの各ページに属するビットの特定の論理状態の組み合わせに応答して、各時間間隔の間にプログラミングを可能にし、または抑止するように当該の個々のビット線をバイアスする。
2013534685.tif 000002
【特許請求の範囲】
【請求項１】
ＮＡＮＤフラッシュ・メモリ・デバイスのためのマルチページプログラミングの方法であって、
前記ＮＡＮＤフラッシュ・メモリ・デバイスに、Ｍを１より大きい整数とするＭページのデータを記憶するステップと、
前記ＮＡＮＤフラッシュ・メモリ・デバイスにおいて、前記ＮＡＮＤフラッシュ・メモリ・デバイスのメモリセルに最大２Ｍ通りまでの状態を記憶するためのマルチページプログラミング動作を開始するステップと、
を含む方法。
【請求項２】
前記マルチページプログラミング動作の完了状態を検査するステップをさらに含む請求項１に記載の方法。
【請求項３】
前記完了状態がマルチページプログラミング動作の完了に対応するときに、前記マルチページプログラミング動作に成功したかどうか判定するステップをさらに含む請求項２に記載の方法。
【請求項４】
前記記憶するステップが、Ｍページのそれぞれを、前記ＮＡＮＤフラッシュ・メモリ・デバイスの個々のＭ個のページバッファへ繰り返しロードするステップを含む請求項１に記載の方法。
【請求項５】
前記Ｍページのそれぞれをロードする前記ステップが、前記ＮＡＮＤフラッシュ・メモリ・デバイスにおいて、後に入力データが続くデータ・ロード・コマンドを受け取るステップを含む請求項４に記載の方法。
【請求項６】
前記入力データが前記データおよびアドレス情報を含む請求項５に記載の方法。
【請求項７】
前記データ・ロード・コマンドが第１のデータ・ロード・コマンドであり、前記第１のデータ・ロード・コマンドに対応する前記入力データが受け取られた後で第２のデータ・ロード・コマンドが受け取られる請求項５に記載の方法。
【請求項８】
前記第１のデータ・ロード・コマンドに対応する前記入力データが受け取られた後で、前記第２のデータ・ロード・コマンドが受け取られる前にデータ終了コマンドが受け取られる請求項７に記載の方法。
【請求項９】
前記Ｍページの最後のページについてのデータ終了コマンドが、前記Ｍページの最後のページに対応する入力データが受け取られた後で受け取られる請求項７に記載の方法。
【請求項１０】
前記データ終了コマンドがマルチページプログラム・コマンドを含む請求項９に記載の方法。
【請求項１１】
前記マルチページプログラミング動作が、最大２Ｍ−１通りまでの状態をプログラムするために２Ｍ−１回のプログラミング反復を実行するステップを含み、前記２Ｍ通りの状態のうちの１つが消去状態である請求項１に記載の方法。
【請求項１２】
各プログラミング反復が、各ビット線に対応する前記Ｍページのデータのビットの組み合わせに応答してプログラミングを可能にし、または抑止するように前記各ビット線をバイアスするステップを含む請求項１１に記載の方法。
【請求項１３】
各プログラミング反復が、前記ビット線がプログラミングを可能にし、または抑止するようにバイアスされている間に、各プログラミング反復に特有のプログラミングプロファイルを用いて選択されるワード線を駆動するステップを含む請求項１２に記載の方法。
【請求項１４】
ワード線に接続され、ビット線に結合されたフラッシュ・メモリセルを有するメモリアレイと、
Ｍを最低でも２の整数とするＭページのデータを記憶し、前記Ｍページからの各ビット線に対応するビットの組み合わせに応答して、２Ｍ−１回のプログラミング反復のそれぞれについてプログラミングを可能にし、または抑止するように前記ビット線をバイアスするためのビット線アクセス回路と、
前記ビット線がプログラミングを可能にし、または抑止するようにバイアスされている間に、前記２Ｍ−１回のプログラミング反復のそれぞれについてプログラミングプロファイルを用いて選択されるワード線を駆動するための行回路と、
を備えるフラッシュ・メモリ・デバイス。
【請求項１５】
前記ビット線アクセス回路が、それぞれ前記Ｍページの１つを記憶するためのＭ個のデータバッファを含む請求項１４に記載のフラッシュ・メモリ・デバイス。
【請求項１６】
前記ビット線アクセス回路が、各ビット線に対応する前記Ｍ個のデータバッファに記憶された前記Ｍページのビットの組み合わせに応答してプログラミングを可能にし、または抑止するように前記各ビット線をバイアスするためのビット線バイアス回路を含む請求項１５に記載のフラッシュ・メモリ・デバイス。
【請求項１７】
前記Ｍ個のデータバッファのそれぞれが、１ページのデータの１ビットを記憶するためのデータ記憶回路を含む請求項１６に記載のフラッシュ・メモリ・デバイス。
【請求項１８】
前記Ｍ個のデータバッファの各ビット位置が、
各ビット線に対応する前記Ｍ個のデータバッファに記憶された前記Ｍページの前記ビットを受け取るためのデータ検証デコーダと、
前記データデコーダの選択される出力に応答して前記ビットを反転させるための反転回路と、
を含む請求項１７に記載のフラッシュ・メモリ・デバイス。
【請求項１９】
それぞれ、消去状態、第１の状態、第２の状態および第３の状態の１つに対応するしきい値電圧を有するようにプログラムすることができる、ワード線に接続され、ビット線に結合されたフラッシュ・メモリセルを有するメモリアレイと、
データの２ページからのビットの特定の組み合わせに応答して、前記第１の状態、前記第２の状態および前記第３の状態のそれぞれについてプログラミングを可能にし、または抑止するように前記ビット線をバイアスする、前記第１の状態、前記第２の状態および前記第３の状態を所定の順序でプログラムするように前記ビット線をバイアスするためのビット線アクセス回路と、
前記ビット線が、前記第１の状態、前記第２の状態および前記第３の状態をそれぞれプログラムするようにバイアスされている間に、前記第１の状態、前記第２の状態および前記第３の状態に対応するプログラミングプロファイルを用いて選択されるワード線を駆動するための行回路と、
を備えるフラッシュ・メモリ・デバイス。
【請求項２０】
フラッシュ・メモリ・デバイスをプログラムするための方法であって、
データの少なくとも２ページを前記フラッシュ・メモリ・デバイスのページバッファへロードするステップと、
前記フラッシュ・メモリ・デバイスのビット線を、データの前記少なくとも２ページのデータビットの論理状態に応答して、前記ビット線に結合されたフラッシュ・メモリセルへの異なるしきい値電圧のプログラミングを抑止すること、およびプログラミングを可能にすることの一方を有効にする電圧レベルへバイアスするステップと、
前記フラッシュ・メモリ・デバイスのワード線を、前記ワード線に並列に接続されている前記フラッシュ・メモリセルへ前記異なるしきい値電圧をプログラムするために、ある期間にわたって駆動するステップと、
を含む方法。
【請求項２１】
複数のフラッシュ・メモリセルへ異なる状態を並列にプログラムするための方法であって、
前記フラッシュ・メモリセルのそれぞれについて、Ｍを最低でも２の整数とするＭビットのデータを受け取るステップと、
前記Ｍビットに応答して、前記複数のフラッシュ・メモリセルのそれぞれに記憶すべき２Ｍ通りの可能な状態のうちの１状態を決定するステップと、
前記複数のフラッシュ・メモリセルに接続されたビット線を、それぞれが２Ｍ通りの可能な状態のそれぞれに対応する所定の電圧レベルを用いてバイアスするステップと、
前記複数のフラッシュ・メモリセルに最大２Ｍ通りまでの異なる状態を並列にプログラムするために選択されるワード線を駆動するステップと、
を含む方法。
【請求項２２】
フラッシュ・メモリセルの物理ページへのデータのページの多状態プログラミングのためのビット線変調器回路であって、
Ｍを最低でも２の整数とし、各ビットがデータの前記ページの１つと関連付けられているデータのＭビットを受け取り、データの前記Ｍビットの論理組み合わせに応答して復号選択信号を提供するためのプログラム・データ・デコーダと、
前記復号選択信号に応答して、ビット線を２Ｍ段階の電圧レベルのうちの１つへバイアスするためのビット線バイアス回路と、
を備えるビット線変調器回路。
【請求項２３】
ワード線に接続され、ビット線に結合されたフラッシュ・メモリセルを有するメモリアレイと、
Ｍを最低でも２の整数とするＭページのデータを記憶するためのＭ個のページバッファと、
それぞれが、データの前記Ｍページのそれぞれからのデータビットの組み合わせに応答して、２Ｍ段階の電圧レベルの１つを対応するビット線に印加する、前記ビット線のそれぞれと、前記Ｍ個のページバッファとに結合されたビット線変調器と、
データの前記Ｍページをフラッシュ・メモリセルの行へプログラムするためのプログラミングプロファイルを用いて、選択されるワード線を駆動するための行回路と、
を備えるフラッシュ・メモリ・デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に半導体デバイスに関し、詳細には、データの複数のビットを１つのフラッシュ・メモリセルへプログラムすることに関する。
【背景技術】
【０００２】
フラッシュメモリは、例えばディジタルカメラや携帯用ディジタル音楽プレーヤなどといった家電製品用の大容量記憶として広く用いられている一般に使用される種類の不揮発性メモリである。現在利用可能なフラッシュ・メモリ・チップの密度は最大で数ギガバイト（ＧＢ）までのサイズとすることができ、このサイズは、１つのフラッシュチップのサイズが小さいため、一般的なＵＳＢフラッシュドライブでの使用に適している。フラッシュメモリの別の新たな用途が、ラップトップコンピュータおよびデスクトップコンピュータで使用される従来のハード・ディスク・ドライブに取って代わるソリッド・ステート・ドライブである。
【０００３】
図１は、当分野で公知の典型的なフラッシュ・メモリ・デバイスの大まかなブロック図である。フラッシュ・メモリ・デバイス１０は、入力／出力インターフェース回路と、制御回路と、メモリ回路と、メモリアレイとを含む。フラッシュ・メモリ・デバイス１０の入力／出力インターフェース回路は、レディ／ビジー信号バッファ１２と、制御信号バッファ１４と、グローバル・データ・バッファ１６とを含む。レディ／ビジー信号バッファ１２は、個々のピンまたはポートによってレディ／ビジー信号Ｒ／Ｂ＃を駆動する出力バッファである。本例では、制御信号バッファ１４は、対応するピンまたはポートからフラッシュメモリ制御信号ＣＥ＃、ＣＬＥ、ＡＬＥ、ＷＥ＃、ＲＥ＃およびＷＰ＃を受け取る入力バッファである。「＃」で終わる信号名は、これ以降、アクティブ・ロー・レベル信号であるものであり、アクティブロー信号は「０」論理レベル、すなわち例えばＶＳＳ電圧レベルなどに対応する。これに対して、アクティブハイ論理レベル信号は、「１」論理レベル、すなわち例えばＶＤＤまたはＶＣＣ電圧レベルに対応する。以下は前述の各制御信号の簡単な説明である。
【０００４】
コマンド・ラッチ・イネーブル（ＣＬＥ）：ＣＬＥ入力信号は、動作モードコマンドの内部コマンドレジスタへのロードを制御するのに使用される。コマンドは、ＣＬＥがハイである間にＷＥ＃信号の立ち上がりエッジでＩ／Ｏポートからコマンドレジスタへラッチされる。
【０００５】
アドレス・ラッチ・イネーブル（ＡＬＥ）：ＡＬＥ信号は、アドレス情報の内部アドレスレジスタへのロードを制御するのに使用される。アドレス情報は、ＡＬＥがハイである間にＷＥ＃信号の立ち上がりエッジでＩ／Ｏポートからアドレスレジスタへラッチされる。
【０００６】
チップ・イネーブル（ＣＥ＃）：デバイスは、デバイスがレディ状態にある間にＣＥ＃がハイになるときに低電力待機モードになる。ＣＥ＃信号は、プログラムや消去や読み出しの動作中など、デバイスがビジー状態にあるとき（Ｒ／Ｂ＃＝Ｌ）には無視され、たとえＣＥ＃入力がハイになったとしても待機モードに入らない。
【０００７】
ライトイネーブル（ＷＥ＃）：ＷＥ＃信号は、Ｉ／Ｏポートからのデータの取得を制御するのに使用される。
【０００８】
リードイネーブル（ＲＥ＃）：ＲＥ信号はシリアルデータ出力を制御する。データは、ＲＥ＃の立ち下がりエッジ後に利用可能になる。また、この立ち下がりエッジでは内部列アドレスカウンタも増分される（Ａｄｄｒｅｓｓ＝Ａｄｄｒｅｓｓ＋１）。
【０００９】
Ｉ／Ｏポート（Ｉ／Ｏ０〜７）：Ｉ／Ｏ０〜７ピンは、デバイスとの間でアドレス、コマンドおよび入力／出力データを転送するためのポートとして使用される。
【００１０】
ライトプロテクト（ＷＰ＃）：ＷＰ＃信号は、意図しないプログラミングまたは消去からデバイスを保護するのに使用される。ＷＰ＃がローのときに内部電圧調整器（高電圧発生器）はリセットされる。この信号は普通、入力信号が無効である電源オン／オフシーケンスの間にデータを保護するのに使用される。
【００１１】
レディ／ビジー（Ｒ／Ｂ＃）：Ｒ／Ｂ＃はオープン・ドレイン・ピンであり、出力信号は、デバイスの動作状態を示すのに使用される。Ｒ／Ｂ＃信号は、プログラム、消去および読み出しの動作中はビジー状態（Ｒ／Ｂ＃＝Ｌ）にあり、動作の完了後にレディ状態（Ｒ／Ｂ＃＝Ｈ）に戻る。
【００１２】
図１の例のグローバル・データ・バッファ１６は、それぞれの入力／出力（Ｉ／Ｏ）ピンまたはポート上で書き込みデータを受け取り、読み出しデータを提供する双方向バッファである。フラッシュ・メモリ・デバイス１０は、８個のそのようなポートＩ／Ｏ０〜Ｉ／Ｏ７を有するものとして示されているが、代替のデータ幅構成では８個より多い、または少ないポートを備えることもできる。また、これらのＩ／Ｏポートは、アドレスおよびコマンド情報を受け取るのにも使用される。
【００１３】
フラッシュ・メモリ・デバイス１０の制御回路は、コントローラ１８と、コマンドレジスタ２０と、アドレスレジスタ２２と、状態レジスタ２４とを含む。コントローラ１８は、フラッシュ・メモリ・デバイス１０内のその他の回路の様々な機能を制御し、そのような機能には、読み出し、プログラムおよびプログラム検証が含まれる。図示されていないが、コントローラ１８は、受け取ったコマンドに応答して機能を実行するためのコマンドデコーダを含むことができる。レジスタは、フラッシュ・メモリ・デバイス１０によって受け取られる、または、例えばメモリコントローラなどを含む外部ホストシステムへ提供されるべき情報の種類を記憶する。前述の各レジスタはすべてを網羅することを意図したものではなく、例えばデータレジスタなどといった他のレジスタを含むこともできる。
【００１４】
主にコントローラによって制御される回路はメモリ回路であり、メモリ回路は、行プリデコーダ２６および列プリデコーダ２８と、行デコーダ３０および列デコーダ３２と、センス増幅器およびページ・バッファ・ブロック３４と、高電圧発生器３６とを含む。フラッシュ・メモリ・デバイス１０のメモリアレイ３８は、ビット線に接続されたＮＡＮＤセルストリングからなり、ＮＡＮＤセルストリングの各メモリセルはワード線に接続されている。ＮＡＮＤセルストリングのさらなる詳細は後で図３に示す。行プリデコーダ２６、行デコーダ３０および高電圧発生器３６は、プログラミング動作において、接続されたメモリセルのしきい値電圧をデフォルトの消去しきい値電圧から所望の電圧レベルへシフトさせるように作用する高電圧へ選択されるワード線を駆動するように制御される。高電圧は、メモリアレイ３８において、メモリセルのしきい値電圧をデフォルト値へシフトさせることによりメモリセルを消去するのに使用することができる。高電圧と高電圧の印加時間の様々な組み合わせを使用して、フラッシュ・メモリセルのための特定のしきい値電圧を設定することができる。特定のしきい値電圧をプログラムするための組み合わせを、プログラミングプロファイルと呼ぶことができる。ページバッファ３４は、選択されるワード線に接続されたセルへプログラムされるべきページのデータを記憶する。一般に、ビット線に接続されたメモリセルは、ビット線がバイアスされる、すなわち設定される論理レベルに応じて、プログラミングを抑止され、または選択されるワード線によるプログラミングを可能とされる。ページバッファに記憶されたデータビットは、ビット線をバイアスするのに使用される。
【００１５】
図２は、シングル・ビット・フラッシュ・メモリセルについてのしきい値電圧分布グラフであり、シングル・ビット・フラッシュ・メモリセルは、２つの可能なレベルまたは状態の１つ、「状態０」または「状態１」を記憶する。これをシングル・レベル・セル（ＳＬＣ）メモリともいう。図２では、「状態０」は、メモリアレイ３８のすべてのフラッシュ・メモリセルのデフォルトの消去状態であり、この例では負のしきい値電圧である。これに対して、「状態１」は正のしきい値電圧に対応する。したがって、消去されるときに、フラッシュ・メモリセルは、記憶されたデータの１つのビットについて「１」の論理状態を記憶する。選択されるセルに記憶されるべきデータが「０」に対応する場合には、次いで消去しきい値電圧を「状態１」の正の電圧へシフトさせるようにプログラミングが実行され、これは、前述のように、セルに接続された選択されるワード線を特定のプログラミングプロファイルを用いて駆動することによって行われる。
【００１６】
図３は、図１のメモリアレイ３８の一部分を示す回路図であり、特に、２本のビット線ＢＬ１およびＢＬｊに接続されたＮＡＮＤセルストリングが示されている。各ＮＡＮＤセルストリングは、直列結合で配置され、相互に電気的に結合されたフラッシュ・メモリセル５０を有する。したがって、ワード線ＷＬ０〜ＷＬｉは、メモリセル・ストリングの各フラッシュ・メモリセル５０のゲートに結合されている。プレースホルダ「ｉ」および「ｊ」は整数値であり、それぞれ、最後のワード線およびビット線を指定する。信号ＳＳＬ（ストリング選択線）に結合されたストリング選択デバイス５２が、メモリセル・ストリングをビット線（ＢＬ１またはＢＬｊ）に選択的に接続し、信号ＧＳＬ（接地選択線）に結合された接地選択デバイス５４が、メモリセル・ストリングを、ＶＳＳといった電源線に選択的に接続する。ストリング選択デバイス５２および接地選択デバイス５４はｎチャネルトランジスタである。同じワード線、ＳＳＬおよびＧＳＬに接続された図３に示す２つのＮＡＮＤセルストリングは、１つのメモリブロック５６の一部である。したがって、図１に示したメモリブロックと並列に同じビット線ＢＬ１〜ＢＬｊに複数のメモリブロックを接続することができる。
【００１７】
フラッシュ・メモリセル５０がデータの１ビットを記憶する場合には、同じワード線に接続されたすべてのセル５０が１ページのデータを記憶する。例えば図３では、ＷＬ０に接続されたセルを一括して「物理ページ０」と呼び、ＷＬｊに接続されたセルを一括して「物理ページｉ」と呼び、それぞれ１ページのデータを記憶する。
【００１８】
各ビット線ＢＬ１〜ＢＬｊには、フラッシュ・メモリセルの１ページへプログラムされるべき１ページのデータを記憶するためのページバッファ５８が結合されている。またページバッファ５８は、フラッシュ・メモリセルの１ページから読み出されるデータを読み取るためのセンス回路も含む。プログラミング動作の間に、データレジスタは、データが選択されるワード線に結合されたフラッシュ・メモリセルへ適正にプログラムされていることを保証するためにプログラム検証動作を行う。したがって、セルの各行は１ページのデータを記憶する。密度の向上を実現するために、各フラッシュ・メモリセルは、データの少なくとも２ビットを記憶することができ、これを一般にマルチビットセル（ＭＢＣ）という。１セルあたり少なくとも２ビットのデータを記憶すると、メモリアレイの記憶密度は、１ビットのデータのだけを記憶するセルを有する同じメモリアレイと比べて少なくとも倍増する。
【００１９】
図４は、２ビット・フラッシュ・メモリセルについてのしきい値電圧分布グラフである。これをＭＬＣ（１セルあたり複数レベルの）メモリともいう。図４には、２ビット・フラッシュ・メモリセルによって記憶され得る４つの可能な状態、「状態０」、「状態１」、「状態２」および「状態３」が示されている。図４の例で示すように、各状態は２ビットのデータの組み合わせに対応する。「状態０」は２進値「１１」を表すことができ、「状態１」は２進値「１０」を表すことができ、「状態２」は２進値「００」を表すことができ、「状態３」は２進値「０１」を表すことができる。図４に示す２進値は組み合わせ例であり、状態ごとの２進値組み合わせの割り当ては、図４に示されている割り当てと異なっていてもよい。したがって、同じワード線に接続された１行のフラッシュ・メモリセルの行は、今度は、シングル・ビット・フラッシュ・メモリセルの場合の１ページのデータではなく、２ページのデータを記憶することができる。次に、物理ページと呼ばれる共通のワード線に接続されたセルと関連付けられる、論理ページと呼ばれるこれら２ページのデータの論理編成を説明する。
【００２０】
図５は、２ビット・フラッシュ・メモリセルの行に記憶された下位ページのデータと上位ページのデータの記憶を示す図である。図５において、フラッシュ・メモリセル７０および７２は、第１のＮＡＮＤセルストリングの一部であり、フラッシュ・メモリセル７４および７６は、第２のＮＡＮＤセルストリングの一部であり、フラッシュ・メモリセル７８および８０は、メモリブロック内の最後のＮＡＮＤセルストリングを表す最後のＮＡＮＤセルストリングの一部である。ブロックの構成によっては、第２のＮＡＮＤセルストリングと最後のＮＡＮＤセルストリングとの間に複数の介在するＮＡＮＤセルストリングがあってもよい。各フラッシュ・メモリセルは、図４に示した４つの可能な論理状態のうちの１つを有し、対応する２ビットの２進値（バイナリ値）が割り当てられている。図５の例では、セル７０は「状態３」を記憶し、セル７２は「状態１」を記憶し、セル７４は「状態１」を記憶し、セル７６は「状態３」を記憶し、セル７８は「状態２」を記憶し、セル８０は「状態０」を記憶している。２進値は各セルに示されており、上位ビットは図４の対応する状態における最も左のビットに対応し、下位ビットは最も右のビットに対応する。ワード線ＷＬ０に接続されたフラッシュ・メモリセル７２、７６および８０は、論理ページ０に対応するフラッシュ・メモリセル７２、７６および８０の下位ビットを有する物理ページに対応し、上位ビットは論理ページ１に対応する。同様に、ワード線ＷＬｉに接続されたフラッシュ・メモリセル７０、７４および７８も、論理ページｋ−１に対応する下位ビットを有する別の物理ページに対応し、上位ビットは最後の論理ページｋに対応する。したがって、各物理ページが２ページのデータをどのようにして記憶するかがわかる。
【００２１】
これを拡張して、各フラッシュ・メモリセルが３ビットのデータを記憶することができる場合には、各セルは、２３＝８通りの状態を記憶することができ、これは、各物理ページが最大８ページのデータまでを記憶することができることを意味する。読み出し動作の間にすべての異なる状態がプログラムされ、読み取られ得るならば、物理的なメモリ・アレイ・サイズの増大を必要としない記憶密度の増加は、大容量記憶用途での大きな利点を提供する。不都合なことに、１物理ページあたり２ページのデータ（１セルあたり２ビット）をプログラムするのに必要とされる時間は、１物理ページあたり１ページのデータをプログラムするのと比べて大幅に増加する。このプログラミング時間の増加は、１セルあたり３ビット以上の記憶が使用される場合にはさらに悪化する。
【００２２】
１セルあたり複数ビットの記憶が可能なＵＳＢドライブに数個の小さいデータファイルを時折コピーするのに必要とされる時間はユーザにとって不都合とは思われないかもしれないが、多数の小さいデータファイルを頻繁に書き込む場合は、著しく長い時間量を要することになる。小さいデータファイルの頻繁な書き込みは、ソリッド・ステート・ハード・ディスク・ドライブではよく行われ、それによって、内部でソリッド・ステート・ハード・ディスク・ドライブを使用するコンピュータシステムの性能に制限を課すことになり得る。１セルあたり複数のビットを記憶することのできるフラッシュメモリへの音楽やビデオといった大きいデータファイルの記憶は、プログラムするのに著しく長い時間を要することになる。
【００２３】
フラッシュメモリは、ＳＯＤ（ソフト・オン・デマンド）やフラッシュキャッシュといったコンピュータ用途において広く使用されており、より高性能のフラッシュメモリが求められている。より高いＩ／Ｏ帯域幅、より高い読み出しおよび書き込みスループット、ならびに動作のより高い柔軟性、のうちの１つまたは複数により、高性能動作が得られる。さらに、コンピュータ用途のためのフラッシュ記憶システムは、性能低下を伴わない高メモリ容量を必要としている。
【発明の概要】
【発明が解決しようとする課題】
【００２４】
したがって、２ビット以上のデータを記憶するセルをプログラムするのに必要とされる時間を短縮し、それによってセルを内部で使用するシステムの全般的性能を向上させることが望ましい。
【課題を解決するための手段】
【００２５】
第１の態様によれば、ＮＡＮＤフラッシュ・メモリ・デバイスのためのマルチページプログラミングの方法が提供される。方法は、ＮＡＮＤフラッシュ・メモリ・デバイスに、Ｍを１より大きい整数とするＭページのデータを記憶するステップと、本態様の一実施形態によれば、方法は、マルチページプログラミング動作の完了状態を検査するステップと、完了状態がマルチページプログラミング動作の完了に対応するときに、マルチページプログラミング動作に成功したかどうか判定するステップとをさらに含むことができる。ＮＡＮＤフラッシュ・メモリ・デバイスにおいて、ＮＡＮＤフラッシュ・メモリ・デバイスのメモリセルに最大２Ｍ通りまでの状態を記憶するためのマルチページプログラミング動作を開始するステップと、を含む。本態様の別の実施形態によれば、記憶するステップは、Ｍページのデータのそれぞれを、ＮＡＮＤフラッシュ・メモリ・デバイスの個々のＭ個のページバッファへ繰り返しロードするステップを含むことができ、Ｍページのデータのそれぞれをロードするステップは、ＮＡＮＤフラッシュ・メモリ・デバイスにおいて、後に入力データが続くデータ・ロード・コマンドを受け取るステップを含むことができる。本実施形態では、入力データは、データおよびアドレス情報を含む。また、本実施形態では、データ・ロード・コマンドは第１のデータ・ロード・コマンドであり、第１のデータ・ロード・コマンドに対応する入力データが受け取られた後で第２のデータ・ロード・コマンドが受け取られる。この実施形態では、第１のデータ・ロード・コマンドに対応する入力データが受け取られた後で、第２のデータ・ロード・コマンドが受け取られる前に、データ終了コマンドが受け取られる。あるいは、Ｍページのデータの最後のページについてのデータ終了コマンドが、Ｍページのデータの最後のページに対応する入力データが受け取られた後で受け取られ、データ終了コマンドはマルチページプログラム・コマンドを含む。
【００２６】
別の実施形態では、マルチページプログラミング動作は、最大２Ｍ−１通りまでの状態をプログラムするために２Ｍ−１回のプログラミング反復を実行するステップを含み、２Ｍ通りの状態のうちの１つは消去状態である。各プログラミング反復は、各ビット線に対応するＭページのデータのビットの組み合わせに応答して、プログラミングを可能にし、または抑止するように各ビット線をバイアスするステップを含む。さらに、各プログラミング反復は、ビット線がプログラミングを可能にし、または抑止するようにバイアスされている間に、各プログラミング反復に特有のプログラミングプロファイルを用いて選択されるワード線を駆動するステップを含む。
【００２７】
第２の態様では、フラッシュ・メモリ・デバイスが提供される。フラッシュ・メモリ・デバイスは、メモリアレイと、ビット線アクセス回路と、行回路とを含む。メモリアレイは、ワード線に接続され、ビット線に結合されたフラッシュ・メモリセルを有する。ビット線アクセス回路は、Ｍページのデータを記憶し、Ｍページのデータからの各ビット線に対応するビットの組み合わせに応答して、２Ｍ−１回のプログラミング反復のそれぞれについてプログラミングを可能にし、または抑止するようにビット線をバイアスし、Ｍは最低でも２の整数である。行回路は、ビット線がプログラミングを可能にし、または抑止するようにバイアスされている間に、２Ｍ−１回のプログラミング反復のそれぞれについてプログラミングプロファイルを用いて選択されるワード線を駆動する。第２の態様の一実施形態によれば、ビット線アクセス回路は、それぞれＭページのデータの１つを記憶するためのＭ個のデータバッファと、各ビット線に対応するＭ個のデータバッファ内に記憶されたＭページのデータのビットの組み合わせに応答して、プログラミングを可能にし、または抑止するように各ビット線をバイアスするためのビット線バイアス回路とを含む。この実施形態では、Ｍ個のデータバッファのそれぞれが、１ページのデータの１ビットを記憶するためのデータ記憶回路を含み、Ｍ個のデータバッファの各ビット位置がデータ検証デコーダおよび反転回路を含む。データ検証デコーダは、各ビット線に対応するＭ個のデータバッファに記憶されたＭページのデータのビットを受け取る。反転回路は、データデコーダの選択される出力に応答してビットを反転させる。
【００２８】
第３の態様では、フラッシュ・メモリ・デバイスが提供される。フラッシュ・メモリ・デバイスは、メモリアレイと、ビット線アクセス回路と、行回路とを含む。メモリアレイは、ワード線に接続され、ビット線に結合されたフラッシュ・メモリセルを有し、各フラッシュ・メモリセルは、消去状態、第１の状態、第２の状態および第３の状態のうちの１つに対応するしきい値電圧を有するようにプログラムすることができる。ビット線アクセス回路は、第１の状態、第２の状態および第３の状態を所定の順序でプログラムするようにビット線をバイアスする。ビット線アクセス回路は、２ページのデータからのビットの特定の組み合わせに応答して、第１の状態、第２の状態および第３の状態のそれぞれについてプログラミングを可能にし、または抑止するようにビット線をバイアスする。行回路は、ビット線が、第１の状態、第２の状態および第３の状態をそれぞれプログラムするようにバイアスされている間に、第１の状態、第２の状態および第３の状態に対応するプログラミングプロファイルを用いて選択されるワード線を駆動する。
【００２９】
第４の態様では、フラッシュ・メモリ・デバイスをプログラムするための方法が提供される。方法は、少なくとも２ページのデータをフラッシュ・メモリ・デバイスのページバッファへロードするステップと、フラッシュ・メモリ・デバイスのビット線をバイアスするステップと、フラッシュ・メモリ・デバイスのワード線を駆動するステップとを含む。フラッシュ・メモリ・デバイスのビット線は、少なくとも２ページのデータのデータビットの論理状態に応答して、ビット線に結合されたフラッシュ・メモリセルへの異なるしきい値電圧のプログラミングを抑止すること、およびプログラミングを可能にすることの一方を有効にする電圧レベルへバイアスされる。ワード線は、ワード線に並列に接続されているフラッシュ・メモリセルへ異なるしきい値電圧をプログラムするために、ある期間にわたって駆動される。
【００３０】
第５の態様では、複数のフラッシュ・メモリセルへ異なる状態を並列にプログラムするための方法が提供される。方法は、フラッシュ・メモリセルのそれぞれについて、Ｍを最低でも２の整数とするＭビットのデータを受け取るステップと、Ｍビットのデータに応答して、複数のフラッシュ・メモリセルのそれぞれに記憶すべき２Ｍ通りの可能な状態のうちの１状態を決定するステップと、複数のフラッシュ・メモリセルに接続されたビット線を、それぞれが２Ｍ通りの可能な状態のそれぞれに対応する所定の電圧レベルを用いてバイアスするステップと、複数のフラッシュ・メモリセルに最大２Ｍ通りまでの異なる状態を並列にプログラムするために選択されるワード線を駆動するステップと、を含む。
【００３１】
第６の態様では、フラッシュ・メモリセルの物理ページへのページデータの多状態プログラミングのためのビット線変調器回路が提供される。ビット線変調器回路は、プログラム・データ・デコーダと、ビット線バイアス回路とを含む。プログラム・データ・デコーダはＭビットのデータを受け取り、Ｍビットのデータの論理組み合わせに応答して復号選択信号を提供し、Ｍは最低でも２の整数であり、Ｍビットのデータのそれぞれはページのデータの１つと関連付けられている。ビット線バイアス回路は、復号選択信号に応答して、ビット線を２Ｍ段階の電圧レベルのうちの１つへバイアスする。
【００３２】
第７の態様では、フラッシュ・メモリ・デバイスが提供される。フラッシュ・メモリ・デバイスは、メモリアレイと、Ｍ個のページバッファと、ビット線変調器と、行回路とを含む。メモリアレイは、ワード線に接続され、ビット線に結合されたフラッシュ・メモリセルを有する。Ｍ個のページバッファはＭページのデータを記憶し、Ｍは最低でも２の整数である。ビット線変調器は、ビット線のそれぞれと、Ｍ個のページバッファとに結合されている。ビット線変調器のそれぞれは、Ｍページのデータのそれぞれからのデータビットの組み合わせに応答して、２Ｍの電圧レベルの１つを対応するビット線に印加する。行回路は、Ｍページのデータをフラッシュ・メモリセルの行へプログラムするためのプログラミングプロファイルを用いて、選択されるワード線を駆動する。
【００３３】
本発明の他の態様および特徴は、以下の本発明の具体的実施形態の説明を添付の図と併せて考察すれば、当業者には明らかになるであろう。
【図面の簡単な説明】
【００３４】
次に本発明の実施形態を、例として挙げるにすぎないが、添付の図を参照して説明する。
【図１】ＮＡＮＤフラッシュ・メモリ・デバイスの機能ブロック図である。
【図２】シングル・ビット・フラッシュ・メモリセルについてのしきい値電圧分布グラフである。
【図３】ＮＡＮＤフラッシュ・メモリ・アレイのＮＡＮＤセルストリングを示す回路図である。
【図４】２ビット・フラッシュ・メモリセルについてのしきい値電圧分布グラフである。
【図５】２ビット・フラッシュ・メモリセルに記憶された下位ページのデータと上位ページのデータの記憶を示す図である。
【図６Ａ】ＮＡＮＤフラッシュにおいて２つのプログラミング動作を使用して１セルあたり２ビットのデータをプログラムするためのシーケンスを示すグラフである。
【図６Ｂ】ＮＡＮＤフラッシュにおいて２つのプログラミング動作を使用して１セルあたり２ビットのデータをプログラムするためのシーケンスを示すグラフである。
【図７】ＮＡＮＤフラッシュにおいて２つのプログラミング動作を使用して１セルあたり２ビットのデータをプログラムするための代替のシーケンスを示す図である。
【図８】本発明の一実施形態による、マルチページプログラマブルＮＡＮＤフラッシュメモリのブロック図である。
【図９】本発明の一実施形態による、マルチページプログラム動作のためのフラッシュ・メモリ・デバイスを動作させる方法の流れ図である。
【図１０】本発明の一実施形態による、２ページ・マルチページプログラム動作のためのフラッシュ・メモリ・デバイスを動作させる方法の流れ図である。
【図１１】本発明の一実施形態による、フラッシュ・メモリ・デバイスの２ページ・マルチページプログラム動作の一例を示すシーケンス図である。
【図１２Ａ】本発明の一実施形態による、フラッシュ・メモリ・デバイスのためのコマンドおよびデータ入力シーケンスの一例を示すシーケンス図である。
【図１２Ｂ】本発明の一実施形態による、フラッシュ・メモリ・デバイスのためのコマンドおよびデータ入力シーケンスの代替の例を示すシーケンス図である。
【図１３】本発明の一実施形態による、１つのプログラミング動作サイクルにおいてＭＬＣフラッシュセルへすべての論理状態をプログラムするための方法の流れ図である。
【図１４Ａ】本発明の一実施形態による、４本の異なるビット線に接続されたフラッシュセルへ論理状態をプログラムするためのマルチページプログラム動作を示すシーケンス図である。
【図１４Ｂ】図１４Ａでプログラムされた４つのフラッシュセルのしきい値電圧を示すしきい値電圧分布グラフである。
【図１５Ａ】本発明の一実施形態による、４本の異なるビット線に接続されたフラッシュセルへ論理状態をプログラムするための代替のマルチページプログラム動作を示すシーケンス図である。
【図１５Ｂ】図１５Ａでプログラムされた４つのフラッシュセルのしきい値電圧を示すしきい値電圧分布グラフである。
【図１６】本発明の一実施形態による、図８に示すビット線アクセス回路のブロック図である。
【図１７】本発明の一実施形態による、図１６のデータデコーダの詳細を示す回路図である。
【図１８Ａ】本発明の一実施形態による、フラッシュ・メモリ・デバイスの２ページ並列マルチページプログラム動作を示すシーケンス図である。
【図１８Ｂ】図１８Ａでプログラムされたフラッシュセルのしきい値電圧の例を示すしきい値電圧分布グラフである。
【図１９Ａ】本発明の一実施形態による、フラッシュ・メモリ・デバイスの代替の２ページ並列マルチページプログラム動作を示すシーケンス図である。
【図１９Ｂ】図１９Ａでプログラムされたフラッシュセルのしきい値電圧の例を示すしきい値電圧分布グラフである。
【図２０Ａ】本発明の一実施形態による、フラッシュ・メモリ・デバイスの代替の２ページ並列マルチページプログラム動作を示すシーケンス図である。
【図２０Ｂ】図２０Ａでプログラムされたフラッシュセルのしきい値電圧の例を示すしきい値電圧分布グラフである。
【図２１】フラッシュ・メモリセルのためのプログラム抑止方法を示す流れ図である。
【図２２Ａ】ＮＡＮＤセルストリングの断面図である。
【図２２Ｂ】図２１のプログラム抑止方法の一例を示すシーケンス図である。
【図２３】本発明の一実施形態による、並列多状態プログラミングのためのビット線の電圧バイアスの例を示す回路図である。
【図２４】本発明の一実施形態による、並列多状態プログラミングのためのビット線アクセス回路のブロック図である。
【図２５】本発明の一実施形態による、図２４に示すビット線変調器の機能ブロックを示す略図である。
【図２６】本発明の一実施形態による、図２５に示すプログラム・データ・デコーダの回路図実施形態である。
【図２７】図２５に示すビット線バイアス回路の回路図実施形態である。
【図２８】図１８Ａの多状態プログラミング実施形態のための制御回路の回路図実施形態である。
【図２９】本発明の一実施形態による、並列多状態プログラミングのための方法の概要を示す流れ図である。
【発明を実施するための形態】
【００３５】
本発明は、一般に、フラッシュメモリにおいて１つのプログラミングサイクルでデータの複数の論理ページをセルの１物理ページへプログラムする方法に関するものである。特に、１つのプログラム動作サイクルにおいて複数ビットのデータをフラッシュ・メモリセルへプログラムするための回路および方法を説明する。フラッシュ・メモリ・アレイの１物理ページへプログラムされるべきデータの複数のページが、メモリデバイス上のページバッファまたは他の記憶手段に記憶される。プログラムされるべきセルに接続された選択されるワード線は、異なる時間間隔で所定のプログラムプロファイルを用いて駆動され、各所定のプログラムプロファイルは、消去しきい値電圧を特定の論理状態に対応する特定のしきい値電圧へシフトさせるように構成される。ビット線は、当該の個々のビット線と関連付けられているデータの各ページに属するビットの特定の論理状態の組み合わせに応答して、各時間間隔の間に特定の状態へバイアスされる。
【００３６】
好ましい実施形態はＮＡＮＤフラッシュメモリにおいて実施されるが、本発明は、例えば、ＮＯＲフラッシュメモリなどといった別種のフラッシュメモリに適用されてもよい。
【００３７】
各実施形態を論じるに先立ち、次に現在のＭＬＣプログラミング方式を説明する。一般的なＭＬＣフラッシュ・メモリ・アーキテクチャは１セルあたり２ビットのフラッシュメモリである。したがって、現在の１セルあたり２ビットのプログラミング方式を説明する。１セルあたり２ビット方式では、ＮＡＮＤセルストリング内の各ワード線が、第１のページ（下位ページ）および第２のページ（上位ページ）として２論理ページへ復号される。図５を参照すると、論理ページ０を下位ページとすることができ、論理ページ１を上位ページとすることができる。この例では、下位ページが最初にプログラムされ、続いて上位ページがプログラムされる。このシーケンスは図６Ａおよび図６Ｂに例示されている。
【００３８】
図６Ａは、２ビット・フラッシュ・メモリセルに記憶されるべきデータの第１のビット（１または０）に対応する論理状態を示すしきい値電圧分布グラフである。プログラミングの前に、メモリブロックのすべてのセルが消去される。図６Ａには、消去状態が「状態０」として示されており、これは本例では負のしきい値電圧である。第１のプログラム動作サイクルで、対応するビットは、記憶されるべきビットの論理状態に応じて、「状態１」にプログラムされ、または「状態０」のままに留まる。図６Ｂは、図６Ａでプログラムされたセルへ、上位ページのビットともいう第２のビットのデータ（１または０）をプログラムするための可能なシーケンスを示すしきい値電圧分布グラフである。後続のプログラミングサイクルで、上位ページに対応するこの第２のビットがプログラムされる。この第２のビットの論理状態は、「状態２」および「状態３」がプログラムされるかどうか、ならびにどのようにプログラムされるかを決定する。例えば、「状態０」および「状態１」が図４に示した２値割り当てを有し、プログラムされるべき第２のビット（最も左のビット）が論理１である場合には、「状態０」も「状態１」も論理１に割り当てられた上位ビットを有するために、「状態２」も「状態３」もプログラムされる必要がない。他方、プログラムされるべき第２のビットが論理０である場合には、「状態２」または「状態３」のプログラミングが必要となる。
【００３９】
本例の「状態２」または「状態３」をプログラムするに際して、最初にプログラムされた下位ビットの論理状態は保持される。したがって、図６Ｂに示すように、「状態０」に対応するしきい値電圧が「状態３」に対応するしきい値電圧へシフトされ、または「状態１」に対応するしきい値電圧が「状態２」に対応するしきい値電圧へシフトされる。したがって、図示の論理状態、「状態０」から「状態３」までは、上位ビットと下位ビットとの異なる論理組み合わせを符号化する。図６Ａおよび図６Ｂには、１セルあたりデータの２ビットをプログラムするための２サイクルプログラミング方式が示されている。図７に、論理状態ごとのビット割り当てに応じて、しきい値電圧を異なるレベルへシフトさせることができることを示すために、代替の２サイクルプログラミング方式を例示するしきい値電圧分布グラフを示す。図示のどちらの例でも、１セルあたり２ビットをプログラムするために２つの別個のプログラミングサイクルが必要とされる。各プログラミングサイクルは、アドレス情報およびデータのページと共にコマンドを受け取ること、ならびにメモリデバイスに第１のページのデータをプログラムさせ、続いて、データビットが適正にプログラムされていることを保証するためにプログラム検証動作を行うことを伴う。
【００４０】
１物理ページあたり２ビットのデータを記憶するように構成された従来のＭＬＣ  ＮＡＮＤフラッシュメモリでは、下位ページと上位ページとの総ページプログラム時間が異なることに留意すべきである。典型的には、下位ページのページプログラム時間は、以下の理由で、上位ページのページプログラム時間よりもおおよそ３０％速い。下位ページのプログラミングサイクルは「状態０」から「状態１」へのセルプログラミングだけで済むが、上位ページのプログラミングサイクルは、「状態２」と「状態３」のどちらのプログラミングが必要とされるか判定するための下位ページデータの読み出し動作をさらに含む。さらに、「状態２」および「状態３」についてのプログラミングプロファイルは、より複雑であり、「状態１」のプログラミングよりも多くの時間を要する。したがって、ＭＬＣメモリにおいて複数のページを１物理ページへプログラムするには、ＳＬＣメモリにおいて同数の複数のページをそれぞれの物理ページへプログラムするのと比べて、著しく長い時間量を要することになる。
【００４１】
フラッシュ・メモリセルにより長いプログラミング時間をかけると、セルのゲート酸化物を劣化させ、それによってセルの信頼性が低下するおそれがあることは当業者には公知である。この問題は、プロセス技術の絶えざる小型化によってさらに悪化する。最小加工寸法がより小型化し、ゲート酸化物がより薄くなると、より長いプログラミング時間によるプログラムスループットの低下が深刻な問題になる。加えて、デバイス信頼性に影響を及ぼし、デバイス寿命を短縮するプログラムストレスも重大な問題となる。
【００４２】
現在の複数ページプログラミング方式の不都合点に対処するための、１つのプログラム動作サイクルにおいてデータの複数のビットをフラッシュ・メモリセルへプログラムするための回路および方法を説明する。フラッシュ・メモリ・アレイの１物理ページへプログラムされるべき複数のページのデータが、メモリデバイス上のページバッファまたは他の記憶手段に記憶される。プログラムされるべきセルに接続された選択されるワード線は、異なる時間間隔で所定のプログラムプロファイルを用いて駆動され、各所定のプログラムプロファイルは、消去しきい値電圧を特定の論理状態に対応する特定のしきい値電圧へシフトさせるように構成される。ビット線は、各時間間隔の間に駆動される選択されるワード線に接続されたメモリセルのプログラミングを可能にし、または抑止するように作用する電圧レベルへバイアスされる。ビット線に印加すべき特定の電圧レベルは、当該の個々のビット線と関連付けられているデータの各ページに属するビットの特定の論理状態の組み合わせに依存する。各実施形態は、１セルあたりｍビットのＭＬＣメモリに適用することができ、ｍは任意の整数とすることができる。１セルあたりｍビットのＭＬＣメモリとは、セルの各物理ページがｍ論理ページを記憶し得ることを意味することに留意する。
【００４３】
図８は、本発明の一実施形態による、フラッシュ・メモリ・デバイスのブロック図である。図８は、ここで説明するマルチページプログラミングの実施形態に使用される回路ブロックを図示するだけに限定されている。省略された回路ブロックには、先に図１に示したブロックが含まれ得ることを当業者は理解するはずである。図８のメモリデバイスは、複数ページのデータを記憶し、それらのページを１つのプログラムサイクルにおいて選択される物理ページへプログラムする。
【００４４】
メモリデバイス１００は、メモリアレイ１０２と、行回路１０４と、高電圧発生器１０６と、制御回路１０８と、ビット線アクセス回路１１０とを含む。メモリアレイ１０２は、ビット線とワード線とに結合され、ＮＡＮＤセルストリング構成またはＮＯＲ構成で配置されたフラッシュ・メモリセルを含む。メモリアレイ１０２はビット線ＢＬ［１］〜ＢＬ［ｊ］を有し、ＢＬ［ｊ］はメモリアレイ内の最後のビット線であり、ｊは整数である。メモリアレイ１００はバンクまたはサブアレイとして編成することができる。行回路１０４は、ワード線を選択するためのバンク、ブロックおよび行アドレスデコーダといったアドレス復号回路と、読み出し、プログラムおよび消去の各動作の間にワード線へ様々な電圧を印加するためのドライバとを含む。高電圧発生器１０６は、行回路へ外部から提供される電源電圧よりも大きい１つまたは複数の正および／または負の電圧を提供する。これらの高電圧は、メモリデバイス１００の他の回路へ提供することができる。制御回路１０８は、フラッシュ・メモリ・デバイス１００の様々なアルゴリズムを実行し、フラッシュ・メモリ・デバイス１００の回路を制御するための適切なタイミングで制御信号をアサートする役割を果たす。特に、制御回路１０８は、本発明の各実施形態による、マルチページプログラミングのための行回路１０４およびビット線アクセス回路１１０の制御を調整するように構成された論理を含む。
【００４５】
本発明の各実施形態によれば、ビット線アクセス回路１１０は、各ビット線を、別々のときに所定の順序で、特定のプログラミングプロファイルを用いて駆動されるワード線と連動して、ビット線アクセス回路１１０に接続されたメモリセルのすべての可能な状態をプログラムするようにバイアスする。各ビット線は、メモリデバイス１００に記憶されたデータの各ページの対応するビット位置からのビットの特定の組み合わせに応答して、特定の時刻にプログラミングを可能にし、または抑止するようにバイアスされる。データのこれらのページは、ビット線アクセス回路１１０に記憶される。ビット線アクセス回路１１０は、ページバッファ１１２と、少なくとも１つのマルチページプログラム・バッファ１１４とを含む。ページバッファ１１２は、センス増幅器、列復号回路、プログラム検証論理といった回路を有する任意の周知のページバッファとすることができる。あるいは、プログラムされるべきデータのページを記憶するのにデータレジスタを使用することもできる。ページバッファ１１２は、プログラムされるべき第１のページのデータを記憶するのに使用される。ビット線アクセス回路１１０は、各ビット線に接続されたメモリセルが、特定の論理状態に対応する最終しきい値電圧へプログラムされていることを保証するためのマルチページプログラミング論理回路を含む。
【００４６】
本例では、メモリデバイス１００は、１セルあたり２ビットのデータ記憶のために構成されており、よって、プログラムされるべき第２のページのデータを記憶するための１つのマルチページプログラム・バッファ１１４がある。２ページより多いページのデータがメモリデバイス１００の物理ページに記憶されることになる代替の実施形態では、さらに多くのマルチページプログラム・バッファ１１４を含めることができる。またバッファ１１４は、第２のページのデータの第１のビットが記憶されるべき開始列アドレスを受け取るための列復号論理も含む。ページバッファ１１２および１１４はどちらも同サイズであり、ページバッファ１１２は、それぞれ個々のビット線ＢＬ［１］〜ＢＬ［ｊ］に対応する第１のページのデータのデータビットＤＡＴＡ１＿［１］〜ＤＡＴＡ１＿［ｊ］を記憶し、ｊはバッファ１１２の最後のビット位置を表す整数である。ページバッファ１１４は、それぞれ個々のビット線ＢＬ［１］〜ＢＬ［ｊ］に対応する第２のページのデータのデータビットＤＡＴＡ２＿［１］〜ＤＡＴＡ２＿［ｊ］を記憶する。
【００４７】
以下は、本発明の一実施形態による、マルチページプログラミングのために構成されたフラッシュ・メモリ・デバイスを制御する方法の考察である。図９は、前述のマルチページプログラム動作のために構成されたフラッシュ・メモリ・デバイスを動作させる方法の流れ図であり、この方法は、それだけに限らないが、メモリコントローラまたはメモリコントローラ機能を有するコンピュータシステムを含むホストシステムによって実行することができる。ここで説明する方法に従って制御することができるフラッシュ・メモリ・デバイスの一例は、図８に示した構成を有するものとすることができる。
【００４８】
図９の方法は３００から開始し、そこで、フラッシュ・メモリ・デバイスによって認識される適切なコマンドにより、データの最大ｍページまでが、フラッシュ・メモリ・デバイスのページバッファへ繰り返しロードされる。例えば図８の回路実施形態を参照すると、第１のページのデータがページバッファ１１２に記憶され、第２のページバッファがページバッファ１１４に記憶される。ステップ３０２で、１物理ページへプログラムされるべきデータのすべてのページがフラッシュ・メモリ・デバイスへロードされた後で、マルチページプログラミング動作がフラッシュ・メモリ・デバイスにおいて開始される。マルチページプログラミング動作の開始は、フラッシュ・メモリ・デバイスにより認識されるコマンドによって行うことができる。次に、フラッシュ・メモリ・デバイスは、論理ページを１物理ページへプログラムするための内部動作を実行する。本発明の各実施形態のメモリデバイスの内部マルチページプログラミング動作については、後でさらに詳細に説明する。ホストシステムは、ステップ３０４で、状態要求コマンドによって、フラッシュ・メモリ・デバイスのプログラミング状態を検査するために、フラッシュ・メモリ・デバイスをポーリングする。状態要求コマンドに応答して、フラッシュ・メモリ・デバイスは、そのデータ出力ポートから、プログラミング動作が完了されたか否かを示す状態ビットを出力する。ステップ３０６で、ホストシステムは、戻される状態信号により、フラッシュ・メモリ・デバイスによるプログラミングが終了したか否か判定する。プログラミングが完了している場合には、方法はステップ３０８に進み、そうでない場合、ホストシステムは、その状態要求を後で再発行し、方法はステップ３０４へ戻る。
【００４９】
フラッシュ・メモリ・デバイスのマルチページプログラミング動作の成功または失敗の判定がステップ３０８で行われ、この判定は、ホストシステムによる別の要求を通じて行うことができる。この要求に応答して、フラッシュ・メモリ・デバイスは、マルチページプログラミングの成功または失敗を示す別の信号を出力することができる。プログラミングに成功した場合には、方法はステップ３１０に進み、ホストシステムは、例えば次のマルチページプログラム動作といった、フラッシュ・メモリ・デバイスでの別の動作を開始することができる。他方、マルチページプログラミングに失敗した場合には、方法はステップ３１２に進む。この時点で、データを異なる行アドレスへ、または異なるフラッシュ・メモリ・デバイスへ再度プログラムすることができ、あるいはホストシステムは単に、エラーが発生し、データがフラッシュ・メモリ・デバイスへ書き込まれなかったという通知を提供する。フラッシュ・メモリ・デバイスによって提供される状態信号はフラッシュ・メモリ・デバイスのレジスタへ書き込まれ、この信号は特定のコマンドに応答して出力され得ることに留意する。
【００５０】
図９の方法は、データのｍ論理ページをメモリデバイスの１物理ページへプログラムするようにメモリデバイスを制御するための一般的な方法である。多くの現在利用可能なフラッシュ・メモリ・デバイスは、データの２論理ページをメモリデバイスの１物理ページへ記憶することができる。図１０に、本発明の一実施形態による、２ページプログラム動作のためのフラッシュ・メモリ・デバイスを動作させる方法を示す。次に、図１０に示す方法を、本発明の各実施形態のメモリデバイスの動作の一般的なシーケンス図を示す図１１を参照して説明する。図１１には、メモリデバイス入力出力ポートＩ／Ｏ、メモリデバイスの選択されるワード線ＷＬ、およびビット線ＢＬ［１：ｊ］についての信号トレースが示されている。図１０の方法はステップ３５０から開始し、そこで、第１のページのデータがメモリデバイスへ提供され、メモリデバイスの第１のページバッファに記憶される。図１１に示すように、データ「ページ１」は、３６０でＩ／Ｏポートにおいて受け取られる。そのすぐ後に、第２のページのデータがステップ３５２でメモリデバイスへ提供され、メモリデバイスの第２のページバッファに記憶される。図１１に示すように、データ「ページ２」は、３６２でＩ／Ｏポートにおいて受け取られる。これ以降、ステップ３０２からステップ３１２までは、図９について図示し、説明したステップと同じである。マルチページプログラミングが、図１１のマルチページプログラム開始コマンド３６４により、ステップ３０２で開始される。
【００５１】
マルチページプログラミングがメモリデバイス内で開始された後で、選択されるワード線ＷＬは、それぞれ所定のプログラミングプロファイルを用いて、３つの異なる期間において駆動される。状態のうちの１つはデフォルトの消去状態であるため、１セルあたりの４つの可能な状態のうちの３つだけがプログラムされることに留意すべきである。図１１では、３つの期間は、ワード線ＷＬが３６６、３６８および３７０においてハイ論理レベルへ駆動されることによって示されている。メモリデバイスにおいては、ワード線ＷＬを、各期間中に特定の時間量にわたって異なる電圧レベルへ駆動することができることに留意すべきである。一実施形態では、各セルへプログラムされたばかりのしきい値電圧を確認するために、各期間の後でプログラム検証動作を実行することができる。図１１には、期間３６６、３６８および３７０の間に、それぞれ、状態１、状態２および状態３をプログラムするためにビット線がバイアスされることが示されている。本例示的実施形態では、期間３６６の終わりにあるメモリセルは状態１（ＳＴ１）に対応する最終しきい値電圧を有することになり、期間３６８の終わりにあるメモリセルは状態２（ＳＴ２）に対応する最終しきい値電圧を有することになり、期間３７０の終わりにあるメモリセルは状態３（ＳＴ３）に対応する最終しきい値電圧を有することになる。期間３７０が経過した後で、ステップ３０４からステップ３１２までが実行され、プログラムサイクルは図１１の３７２で終了し、メモリデバイスはその状態レジスタによってメモリコントローラへ、マルチページプログラミング動作に成功したか否かを報告する。
【００５２】
図１２Ａは、本発明の各実施形態によるフラッシュ・メモリ・デバイスのためのコマンドおよびデータ入力シーケンスの一例を示すシーケンス図である。新しい図１１Ａには、メモリデバイスの入力／出力ポートＩ／Ｏおよびメモリデバイスによって提供されるレディ／ビジー信号Ｒ／Ｂ＃についての信号トレースが示されている。本例のコマンドおよびデータ入力シーケンスは、２ページ・マルチページプログラム動作について示されている。図１２Ａに示すコマンドは、メモリデバイスによって、ここで説明するのと同じ機能を有すると理解される任意の形式で提供することができる。新しい図１１Ａの左側から開始して、受け取られるべき第１のコマンドは、データ・ロード・コマンド３８０であり、その後に、アドレス情報３８２および書き込みデータ３８４を含む入力データが続く。アドレス情報３８２は、バンク、行および列アドレス情報を含むことができ、書き込みデータ３８４は、メモリデバイスへプログラムされるべきデータのページである。入力データの終わりを示すためにデータ終了コマンド３８６が受け取られる。この時点まで、Ｒ／Ｂ＃信号は、メモリデバイスがレディ状態にあり、Ｉ／Ｏポート上に現れる情報を受け取ることができることを示すためにハイ論理レベルにある。データ終了コマンド３８６が受け取られた後で、メモリデバイスは、Ｒ／Ｂ＃がごく短期間にわたってロー論理レベルに下がるビジー状態に入ることができる。
【００５３】
Ｒ／Ｂ＃がハイ論理レベルに上がった後で、メモリコントローラは、別のデータ・ロード・コマンド３８８を発行することによりマルチページプログラミング動作を再開することができる。その後にアドレス情報３９０および書き込みデータ３９２を含む入力データの第２のセットが続く。アドレス情報は、アドレス情報３８２の場合と同じ列アドレスを含むことができるが、書き込みデータを第２の論理ページとして指定するために異なる行アドレスを有するはずである。書き込みデータ３９２の終わりを指示し、メモリデバイスの内部マルチページプログラミング動作を開始するために、最後のデータ終了およびマルチページプログラム・コマンド３９４が受け取られる。コマンド３９４は、別個のデータ終了コマンドおよび別個のマルチページプログラム・コマンドとして提供することができる。その後、Ｒ／Ｂ＃は、論理ページをメモリデバイスの物理ページへプログラムするのに必要とされる期間にわたってロー論理レベルに下がる。
【００５４】
図１２Ｂに、図１２Ａのコマンドおよびデータ入力シーケンスの変形を示す。この実施形態では、メモリデバイスは、コマンド３８６とコマンド３８８との間に短いビジー期間を持たなくてよく、データ終了コマンド３８６の受け取りは不要である。したがって、第２のデータ・ロード・コマンド３８８は、書き込みデータ３８４のデータ終了コマンドも兼ねることができる。図１２Ａおよび図１２Ｂは、マルチページプログラミングが可能なメモリデバイスを制御するためのコマンドおよびデータ入力シーケンスの例であるが、メモリデバイスのページバッファのロードに続いて内部マルチページプログラミングが行われることになる任意のコマンドおよびデータ入力シーケンスを使用することができる。
【００５５】
前述のように、すべてのビット線に接続されたメモリセルが、１つのプログラミングサイクルにおいてその個々の論理状態へプログラムされ、それによって、データの両方のページを同じ物理ページへプログラムするための後続のプログラミングサイクルを開始する前に、前のプログラミングサイクルにおいて前にプログラムされたデータのページを読み出す必要が回避される。以下は、すべての可能な論理状態をメモリデバイスのメモリセルへプログラムするための異なる技法の考察である。
【００５６】
図１３は、本発明の一実施形態による、データの複数のページをメモリの１物理ページへプログラムするための方法の概要を示す流れ図である。マルチページプログラミング動作においてプログラムされるべきすべてのページは、メモリデバイスのページバッファへロードされているものと仮定する。さらに、すべてのメモリセルは現在消去状態にあり、例えば、負のしきい値電圧を有し得るものと仮定する。この消去状態を、図１４Ｂに示すように、ＳＴ０と呼ぶ。異なる状態が、対応するしきい値電圧の増加の順にプログラムされる。本例では、第１のプログラム状態ＳＴ１がプログラムされ、続いて第２のプログラム状態ＳＴ２がプログラムされ、次いで第３のプログラム状態ＳＴ３がプログラムされる。図１３のマルチページプログラミングの方法を、１セルあたり２ビットのプログラミングシナリオの例を参照して説明する。選択されるワード線ＷＬと、４本のビット線ＢＬ１、ＢＬ２、ＢＬ３およびＢＬ４についての信号トレースを示すタイミング図である図１４Ａと、選択されるワード線と、ビット線ＢＬ１、ＢＬ２、ＢＬ３およびＢＬ４のそれぞれとに接続されたセルについてのしきい値電圧のプログラミングを示す図１４Ｂとを参照する。このシナリオでは、ＢＬ１、ＢＬ２、ＢＬ３およびＢＬ４に接続されたメモリセルは、それぞれ、ＳＴ２、ＳＴ１、ＳＴ３およびＳＴ２に対応するしきい値電圧を記憶する。
【００５７】
方法はステップ４００から開始し、そこで、プログラムされるべき第１の状態ＳＴ１（ｎ＝１）についてのビット線バイアスが、すべてのビット線について決定される。より具体的には、ビット線は、ロー論理レベル（ＶＳＳ）といったプログラミングを可能にするのに十分な第１の電圧へ、またはハイ論理レベル（ＶＤＤ）といったメモリセルのプログラミングを抑止するのに十分な第２の電圧へバイアスされる。図１４Ａのｔ１に先行する時間に、選択されるワード線ＷＬは、ＶＳＳのイナクティブレベルに維持される。ステップ４０２に進み、ビット線は、第１のプログラム状態（ＳＴ１）ｎ＝１をプログラムし、またはプログラミングを抑止するようにバイアスされる。状態ＳＴ２および状態ＳＴ３は、状態ＳＴ１に対応するしきい値電圧より大きい最終しきい値電圧を有するため、ビット線ＢＬ１、ＢＬ３およびＢＬ４は、ＢＬ２と一緒にＶＳＳへバイアスされる。続いてステップ４０４で、選択されるワード線は、ロー論理レベルへバイアスされたビット線に接続された任意のフラッシュ・メモリセルをプログラムするように駆動される。図１４Ａで、選択されるワード線ＷＬは、時刻ｔ１において、ハイ論理を表すレベルへ駆動される。このハイ論理を表すレベルは、ｎ＝１プログラム状態に対応するしきい値電圧をプログラムするよう作用するプログラミングプロファイルの適用を示すのに使用される。実際の使用に際しては、ワード線は、高電圧レベルへ駆動することもでき、公知のワード線プログラミング制御方式に従って段をつけることもできるはずである。状態ｎ＝１のためのプログラミングは、状態ｎ＝１についての特定のプログラミングプロファイルによって決定される時刻に終了し、そのときに、選択されるワード線はステップ４０６においてリセットされる。
【００５８】
図１４Ａで、ＷＬのＶＳＳへのリセットは時刻ｔ２に行われる。ｔ１とｔ２とによって範囲が定められる期間は、プログラムサイクルの第１の反復である。図１３には示されていないが、プログラム検証動作時刻ｔ２の後で、メモリセルに記憶されたＳＴ１のしきい値電圧を確認するためにプログラム検証動作が実行される。この例では、すべてのメモリセルは適正なしきい値電圧を用いて正常にプログラムされるものと仮定する。理想的には、ＢＬ２に接続されたフラッシュ・メモリセルは、図１４Ｂに示すように、ＳＴ１に対応する最終しきい値電圧を有することになる。しかし、ＢＬ１、ＢＬ３およびＢＬ４に接続されたメモリセルは、この場合、図１４Ｂの破線のしきい値電圧分布曲線で示されるように、ＳＴ１に対応する中間のしきい値電圧を有するはずであり、これらの電圧はこれらのビット線に接続されたセルの最終しきい値電圧ではない。図１３に戻って、ステップ４０８で、プログラムされた状態がプログラムされるべき最終状態であるかどうかが判定される。そうである場合、方法はステップ４１０で終了する。そうでない場合、プログラムされるべき次の状態があり、方法はステップ４１２に進み、そこでｎは、後続の反復においてプログラムされるべき次の状態を示すために増分される（ｎ＝２）。次いで方法はステップ４００に戻り、そこで、ステップＳＴ２のためのビット線バイアスが決定される。ＢＬ２に接続されたメモリセルはＳＴ１の最終状態を有することが意図されているため、プログラム検証回路は、ＢＬ２が、現在のプログラミングサイクルにおいてすべての後続のプログラミング反復についてのプログラミングを可能にするためのＶＳＳ電圧を受け取ることを抑止する。
【００５９】
ＳＴ２に対応する第２のプログラム状態ｎ＝２をプログラムするために、第２の反復においてステップ４０２、４０４および４０６が繰り返される。図１４Ａの例では、この第２の反復は、ＢＬ１、ＢＬ３およびＢＬ４がプログラミングのためにバイアスされる時刻ｔ３とｔ４との間に行われる。図１４Ｂに示すように、ＢＬ１およびＢＬ４に接続されたフラッシュ・メモリセルは、ＳＴ２に対応する最終しきい値電圧を有し、ＢＬ３に接続されたメモリセルは、今度は、ＳＴ２に対応する中間しきい値電圧を有する。ステップ４０６でワード線がリセットされた後で、ＢＬ１およびＢＬ４は、後続のプログラミング反復においてそれ以上ＶＳＳ電圧を受け取ることを抑止される。というのは、これらの２本のビット線に接続されたメモリセルは、ＳＴ２の最終状態を有することが意図されているからである。
【００６０】
ＳＴ３に対応するプログラム状態はまだプログラムされていないため、ＳＴ３に対応する第３のプログラム状態ｎ＝３をプログラムするために、第３の反復においてステップ４００、４０２、４０４および４０６の第３の反復が繰り返される。図１４Ａの例では、この第３の反復は、ＢＬ３がプログラミングのためにＶＳＳへバイアスされる時刻ｔ５とｔ６との間に行われる。図１４Ｂに示すように、ＢＬ３に接続されたフラッシュ・メモリセルは、ＳＴ３に対応する最終しきい値電圧を有する。プログラム状態ｎ＝３はプログラムされるべき最終状態であるため、プログラミングサイクルはステップ４１０で終了する。
【００６１】
したがって、上記のマルチページプログラミングの方法では、プログラムされている現在のしきい値電圧より大きい最終しきい値電圧を有するメモリセルは、そのしきい値電圧を同時に増加させることになる。したがって、製造プロセス、デバイス形状および状態ごとの所望のしきい値電圧に基づき、特定のプログラム反復についての各ワード線プログラミングプロファイルが、メモリセルのしきい値電圧を所望のしきい値電圧へ変更するような追加的な作用を有するように設計される。例えば図１４Ａの実施形態では、ＢＬ１についての時刻ｔ３とｔ４との間のプログラム反復は、メモリセルのしきい値電圧を、中間状態ＳＴ１から最終状態ＳＴ２に対応するしきい値電圧へシフトさせる。
【００６２】
代替の実施形態によれば、各ワード線プログラミングプロファイルは、消去しきい値電圧を、最終状態に対応するしきい値電圧へ直接シフトさせ、または変更するように設計することができる。この実施形態は図１５Ａおよび図１５Ｂに示されている。図１４Ａおよび図１４Ｂに示した例の場合と同様に、ＢＬ１、ＢＬ２、ＢＬ３およびＢＬ４に接続されたメモリセルには同じ状態がプログラムされるものと仮定する。図１５Ａおよび図１５Ｂのこの実施形態では、ビット線は、ワード線が特定のプログラミングプロファイルを用いて駆動される１プログラム反復の期間についてプログラミングを可能にするための電圧レベルにバイアスされるにすぎない。図１５Ａに示すように、ＢＬ１は、ワード線が時刻ｔ３において駆動される直前にＶＳＳのロー論理レベルへ駆動され、次いで、ワード線が時刻ｔ４においてデアサートされた直後にＶＤＤのハイ論理レベルへ再度駆動される。図１５Ｂに示すように、ビット線ＢＬ１に接続されたメモリセルの消去しきい値電圧は、状態ＳＴ２に対応するしきい値電圧へ直接シフトされる。状態ＳＴ１、ＳＴ２およびＳＴ３をそれぞれプログラムするためのビット線ＢＬ２、ＢＬ３およびＢＬ４についての同様のバイアスシーケンスが図１５Ａに示されている。したがって、消去しきい値電圧をＳＴ１、ＳＴ２およびＳＴ３に対応する各しきい値電圧へシフトさせるようにそれぞれ作用する３つの特定のワード線プログラミングプロファイルがあり、各ビット線は、他のすべての状態についてのプログラミングを抑止するようにバイアスされながら、当該の特定の状態についてのプログラミングを可能にするようにバイアスされる。
【００６３】
図１４Ａおよび図１５Ａのマルチページプログラミングの実施形態のための様々なプログラミングプロファイルについての選択されるワード線のタイミングおよび電圧レベルの制御は、高電圧発生器１０６および行回路１０４を介して、図８の制御回路１０８によって提供される。どちらの実施形態でも、ビット線をバイアスするためのタイミングは、制御回路１０８によって、ページバッファに記憶されたデータのページに応答して制御される。
【００６４】
図１４Ａおよび図１５Ａに示したマルチページプログラミング方式においてデータをプログラムし、またはデータのプログラミングを抑止するための各ビット線のバイアスは、図８のページバッファ１１２および１１４に記憶されたビットの論理状態に応答して行うことができる。例えば、あるビット線に対応するページバッファ１１２および１１４に記憶された１対のビットの特定の論理状態は、そのビット線が、選択されるメモリセルのプログラミングを可能にするように作用する電圧レベルへバイアスされるべきことを示す。例えば図４を参照すると、「状態１」、「状態２」および「状態３」はそれぞれ、ビットの少なくとも１つが論理０である１対のビットを有する。したがって、この例では、あるビット線に対応する１対のビットの少なくとも１つの論理０ビットの存在を、プログラミングを可能にするように作用する電圧レベルへビット線をバイアスするために検出することができる。そうではなく、ビットの対の両方が論理１である場合には、ビット線は、当該ビット線に接続された選択されるメモリセルのプログラミングを抑止するように作用する電圧レベルへバイアスされる。図４の「状態０」ではどちらのビットも論理１であることに留意する。「状態０」はデフォルトの消去状態であるため、「状態０」と関連付けられた２進値「１１」を有するビット線は、プログラミングを抑止するようにバイアスされる。
【００６５】
図４の「状態０」、「状態１」、「状態２」および「状態３」に割り当てられた２進値の例は、有利には、図１４Ａに示したマルチページプログラミング方式においてビット線を制御するのに使用することができる。より具体的には、あるビット線は、当該ビット線についての最後の所望のプログラム状態が特定のプログラミング反復後に検証されている場合には、後続のプログラミング反復においてさらなるプログラミングを抑止するために、各プログラミング反復後にハイ論理レベルへバイアスされる。他方、この特定のプログラミング反復の結果として中間状態の正常なプログラミングが行われる場合には、ビット線は、後続のプログラミング反復においてさらにプログラムするためにバイアスされたままとすべきである。これは、各ビット線に対応するビットの対の論理状態を異なる値へ切り換えることによって行うことができる。
【００６６】
一例では、１対のビットの論理状態を、最終状態がプログラムされていることを示す「１１」の２進値へ、または中間状態がプログラムされていることを示す少なくとも１つの論理０を含む２進値へ切り換えることができる。データが最初のデータ状態から１つまたは複数の中間状態へ、最終的には最終状態へ遷移することを確実にするために、データ状態遷移規則を実施することができる。
【００６７】
図４に示した２進値割り当ての例と、プログラミングを可能にするための１対のビットにおける少なくとも１つの論理０ビットの存在とを使用して、以下のデータ遷移規則の例を策定することができる。
（１）「１０」から「１１」へ
（２）「００」から「１０」へ
（３）「０１」から「００」へ
【００６８】
以下の表１に、図１４Ａに示したビット線ＢＬ１、ＢＬ２およびＢＬ３についてのこれらのデータ遷移規則の適用の一例を示す。表１には、３回のプログラム反復が、「ＰＧＭ１」、「ＰＧＭ２」および「ＰＧＭ３」として示されている。各プログラム反復は、個々のビット線に対応するデータバッファに記憶された初期２進値「初期値」で開始し、これらの値は、プログラム検証に成功した後に新しい２進値「新しい値」へ切り換えられる。
【表１】
2013534685.tif 000003
【００６９】
図１６は、本発明の一実施形態による、図８に示したビット線アクセス回路１１０の機能ブロック図である。図１６は、特定のビット線と関連付けられた、または特定のビット線に対応するページバッファに記憶されたデータに応答して、選択されるメモリセルのプログラミングを可能にし、または抑止するようにビット線をバイアスするための一般原理を示すためのものであり、適正な動作を可能にするための、ビット線センス増幅器やプログラム検証回路といった他の回路が存在するものと仮定する。そのような他の回路は、回路図を簡略化するために図示されていない。図１６には第１のビット線ＢＬ［１］および最後のビット線ＢＬ［ｊ］と関連付けられた回路だけが示されている。各ビット線は、異なる時間間隔で駆動されるワード線と協調して、ビット線アクセス回路１１０によってバイアスされる。ページバッファ１１２は、それぞれ、第１のページのデータの１ビットを記憶するための、複数のデータ記憶回路５００を含む。ページバッファ１１４は、それぞれ、第２のページのデータの１ビットを記憶するための、複数のデータ記憶回路５０２を含む。ＡＮＤ論理ゲート５０４に接続されたデータ記憶回路５００とデータ記憶回路５０２との各対は、個々のビット線と関連付けられている。
【００７０】
第１のページのデータおよび第２のページのデータのビットを記憶することに加えて、ビット線アクセス回路１１０は、ビット線に対応するデータの両方のページからのビットの特定の論理状態に応答して、プログラム抑止電圧またはプログラムイネーブル電圧へ各ビット線をバイアスするためのデータ復号回路も含む。ビット線ごとのデータ復号回路は、ＡＮＤ論理ゲート５０４とデータ検証デコーダ５０６とを含む。プログラム反復の開始前に、ＡＮＤ論理ゲート５０４は、データ記憶回路５００および５０２に記憶された論理状態を受け取り、論理ＡＮＤ演算に応答してビット線をバイアスする。ここで説明する例では、データ記憶回路５００および５０２の少なくとも１つが論理０を記憶しているときにビット線がＶＳＳへバイアスされる。
【００７１】
データ検証デコーダ５０６は、データ記憶回路５００および５０２に記憶された論理状態を復号し、データ記憶回路５００、５０２が、プログラミングの成功を示すビット線の検出状態に応答して、新しい２進値を記憶するように、どちらかに記憶された論理状態を選択的に反転するための論理回路を含む。これをプログラム検証回路とみなすことができる。データ記憶回路５００および５０２のどちらかに記憶された論理状態の選択的反転は、所定のデータ遷移規則に従って行われる。本実施形態では、データ記憶回路５００および５０２の反転が、完了されたプログラム反復のプログラム検証に成功したことに応答して実行される。メモリセルが所望のしきい値電圧を有するように正常にプログラムされていない場合には、プログラミングが繰り返される。本例では、任意のプログラム状態についての正常にプログラムされたメモリセルがＶＳＳへの電流路を形成し、それによって、ＶＤＤへプリチャージされたビット線をプログラム検証動作の間にＶＳＳへ放電する。そうでない場合、ビット線は、当該ビット線に接続されたメモリセルについてプログラミング反復を繰り返す必要があることを示すために、実質的にプリチャージＶＤＤレベルのままに留まる。したがって本実施形態では、ビット線がプログラム検証動作時にＶＳＳでデータ遷移規則による選択的データ反転が実行される。それ以外の場合は、選択的データ反転は実行されない。
【００７２】
図１７に、本発明の実施形態による、データ検証デコーダ５０６、ならびにそのデータ記憶回路５００および５０２との相互接続のさらなる詳細を示す。データ記憶回路５００は、論理０反転回路６００および論理１反転回路６０２を含む。データ記憶回路５０２は、論理０反転回路６０４および論理１反転回路６０６を含み、どちらも、それぞれ、回路６００および６０２と同じである。論理０反転回路６００は、データ検証デコーダ５０６から受け取られる復号データ信号に応答して、データ記憶回路５００に記憶されたあらゆる論理０状態を論理１状態へ反転する。論理１反転回路６０２は、データ検証デコーダ５０６から受け取られる復号データ信号に応答して、データ記憶回路５００に記憶されたあらゆる論理１状態を論理０状態へ反転する。反転回路６０４および６０６は、反転回路６００および６０２について前述したのと同じ機能を果たす。図１７に示すように、反転回路６００、６０２、６０４および６０６は異なる復号データ信号を受け取る。
【００７３】
データ検証デコーダ５０６は、ＡＮＤ論理ゲート６０４、６０６および６０８を含む。各ＡＮＤ論理ゲートは、データ記憶回路５００から記憶された論理状態を受け取る第１の入力と、データ記憶回路５０２から記憶された論理状態を受け取る第２の入力とを有する。各ＡＮＤ論理ゲートは反転および非反転の第１および第２の入力の異なる組み合わせを有し、各ＡＮＤ論理ゲートの出力は特定の反転回路（６００、６０２、６０４および６０６）へ提供されることに留意すべきである。反転および非反転の第１および第２の入力の異なる組み合わせのこの構成は、前述のデータ遷移規則の実装形態の一具体例である。図示されていないが、各ビット線は、プログラム検証の間にビット線の低電圧レベルを検出し、データ検証デコーダ５０６を使用可能にするための検出回路を含む。そうではなく、ビット線の高電圧レベルが検出される場合には、プログラミングに成功しなかったものであり、データ検証デコーダ５０６は、反転回路６００、６０２、６０４および６０６が動作しないように使用不可とされる。
【００７４】
次に、図１７の回路の動作例を、「０１」の初期２進値がデータ記憶回路５００および５０２に記憶される、前述の表１のＢＬ３のシナリオの例を使用して続ける。したがって、データ記憶回路５００は論理０を記憶し、データ記憶回路５０２は論理１を記憶することを理解すべきである。最初のプログラム反復ＰＧＭ１に続いて、プログラム検証に成功したと仮定すると、「０１」の初期２進値は、ＡＮＤゲート６１２に、論理１反転回路６０６へ論理１を出力させる。これに応答して、論理１反転回路６０６は、データ記憶回路５０２を切り換え、最初に記憶された論理１が論理０へ変更される。論理０反転回路６００はＡＮＤゲート６０８から論理０を受け取っており、したがって、データ記憶回路５００を切り換えない。したがって、新しい２進値はデータ記憶回路５００および５０２内の「００」記憶であり、対応するビット線は、後続のプログラム反復ＰＧＭ２についてのプログラミングを可能にするためにバイアスされたままである。ＰＧＭ２のプログラム検証に成功した後で、データ検証デコーダ５０６は、データ記憶回路５００および５０２からの「００」の２進値を復号することができる。次に、ＡＮＤ論理ゲート６０８は論理１を論理０反転回路６００へ出力し、論理０反転回路６００は、データ記憶回路を切り換えて記憶された論理０を論理１へ変更する。ＡＮＤ論理ゲート６１０および６１２の出力はイナクティブな論理０状態であり、したがって、データ記憶回路５０２には変更が加えられない。
【００７５】
ここでは、「１０」の新しい２進値がデータ記憶回路５００および５０２に記憶されており、対応するビット線は、後続のプログラム反復ＰＧＭ３についてのプログラミングを可能にするためにバイアスされたままである。ＰＧＭ３のプログラム検証に成功した後で、データ検証デコーダ５０６は、データ記憶回路５００および５０２からの「１０」の２進値を復号することができる。ＡＮＤ論理ゲート６０４は論理１を論理０反転回路６０４へ出力し、論理０反転回路６０４は、データ記憶回路５０２を切り換えて記憶された論理０を論理１へ変更する。ここで、データ記憶回路５００および５０２はどちらも論理１を記憶しており、ビット線はプログラミングを抑止するためのＶＤＤへバイアスされている。本例のデータ検証デコーダ５０６およびその反転回路への接続は、データ記憶回路５００および５０２に記憶された図４のどんな初期プログラマブル状態も、データ遷移規則に従って、次の中間状態または最終状態へ遷移されることを保証する。
【００７６】
ここで説明するデータ遷移規則および図１６および図１７に示した回路実施形態の例は、図４に示した２進値割り当てについてなど、可能な記憶状態についての特定の２進値割り当てに基づくビット線バイアスの背後にある原理を示すために提示するものである。これら４つ状態についての異なる２進値の割り当てを使用することができ、異なるデータ遷移規則のセットを策定することができる。したがって、データ検証デコーダ５０６およびその反転回路への接続の構成は、そのような代替の２進値割り当ておよびデータ遷移規則に対応するように適応させることができる。ここで説明する実施形態は、１セルあたり２ビットの構成を対象とするが、説明する原理に基づく１セルあたり３ビット以上の構成のために容易に拡張することができる。同じ所望の結果を得るために他の回路技術を使用することもできる。さらに、本例では、論理「０」を使用してプログラミングを可能にするためのビット線のさらなるバイアスがどのように指示されるかを説明したが、代替の実施形態では、代わりに論理「１」を使用することもできる。
【００７７】
したがって、マルチページプログラミング回路および前述の各実施形態で説明した方法では、データの各論理ページを１物理ページへプログラムするのに複数のプログラムサイクルが必要とされる先行技術と比べて、総プログラム時間が短縮される。これは、すべての論理ページが１つのプログラミングサイクル内でプログラムされるために、本発明のマルチページプログラミングの実施形態では、異なるプログラミングサイクルにおいて異なる論理ページをプログラムするために通常必要とされるタイミングオーバーヘッドがなくなることによるものである。さらに、各論理ページをプログラムするのに別々のプログラミングサイクルを使用するのと比べて、フラッシュ・メモリセルのプログラミングストレスも低減される。加えて、この能力は、先行技術のプログラミング技術に対して、本明細書で説明するマルチページプログラミングの実施形態を使用するときのプログラミングにも必要である。
【００７８】
前述の各実施形態は、すべての状態を１つのプログラミングサイクルにおいてプログラムするのに必要とされる全体時間を短縮するようにさらに改善することができる。例えば、本明細書で説明する図１１の実施形態では、複数回のプログラミング反復が、当該の特定の反復について各状態を選択されるセルへプログラムするように順次に実行される。より具体的には、複数の状態またはページをメモリセルへプログラムするための１つのプログラミングサイクルは、異なるビット線電圧を順次に印加し、特定の状態／しきい値電圧をプログラムするための特定のプログラミングプロファイルを用いて選択されるワード線を駆動することを伴う。したがって、プログラミングサイクルの総使用時間は、各プログラミング反復に必要とされる時間の総和である。本代替実施形態によれば、すべての可能な状態を１回のプログラミング反復においてセルへプログラムすることにより、プログラミングサイクル時間を大幅に短縮することができる。言い換えると、各状態をプログラムするための順次のプログラミング反復の代わりに、選択されるワード線がプログラミングプロファイルを用いて駆動されるときに、すべての状態が並列にプログラムされる。これを並列多状態プログラミングという。
【００７９】
図１８Ａは、本発明の一実施形態による、フラッシュ・メモリ・デバイスの２ページ並列多状態プログラム動作の例を示すシーケンス図である。このシーケンス図は、データ「ページ１」が３６０でＩ／Ｏポートにおいて受け取られ、データ「ページ２」が３６２でＩ／Ｏポートにおいて受け取られるという点で、図１１に示したシーケンス図と同様のものである。マルチページプログラミングは、図１１の場合と同様にマルチページプログラム開始コマンド３６４により開始されるが、これは、プログラムサイクルが３７２で終了しているというメモリコントローラへの指示であり、メモリデバイスは、マルチページプログラミング動作に成功したか否かをその状態レジスタによりメモリコントローラへ報告する。しかし、すべての状態をプログラムするのに必要とされる３つの期間３６６、３６８および３７０ではなく、ただ１つの期間７００だけで済む。選択されるワード線が所定のプログラミングプロファイルを用いて駆動されるこの期間７００の間、ビット線ＢＬ［１：ｊ］は、異なる状態に対応するしきい値電圧をプログラムするための特定の電圧レベルへバイアスされ、各電圧レベルは特定の製造プロセスについて較正されている。ワード線のプログラミングプロファイルは、特定の製造プロセスについてのしきい値電圧の有効なプログラミングのために最適化されている。
【００８０】
図１８Ａに示すように、状態ＳＴ１、ＳＴ２およびＳＴ３は、ワード線が期間７００において駆動されている間に、特定のビット線電圧レベルに応答してメモリセルへ同時にプログラムされる。図１８Ｂは、ビット線ＢＬ１、ＢＬ２、ＢＬ３およびＢＬ４に接続された、図１８Ａでプログラムされた４つのフラッシュセルのしきい値電圧の例を示すしきい値電圧を示す分布グラフである。図１８Ｂに示すように、各メモリセルは、期間７００の間に、ＳＴ０から、ＳＴ１、ＳＴ２およびＳＴ３に対応するそれぞれの最終プログラムしきい値電圧へシフトされる。
【００８１】
図１９Ａおよび図２０Ａは、フラッシュ・メモリ・デバイスの２ページの順次と並列混合のマルチページプログラム動作の例を示す代替のシーケンス図である。これらの実施形態では、複数回のプログラム反復が使用され、プログラムされるべき可能な状態の一部がある反復において並列にプログラムされ、残りの１つまたは複数の状態が第２の反復においてプログラムされる。
【００８２】
図１９Ａにおいて、参照番号３６０、３６２、３６４および３７２は、図１８Ａおよび図１１について前述したのと同じである。この代替の実施形態では、ある状態ＳＴ１が期間７０２においてプログラムされ、続いて、期間７０４において状態ＳＴ２およびＳＴ３の並列多状態プログラミングが順次に行われる。期間７０２で行われる第１のプログラミング反復の後で、状態ＳＴ２およびＳＴ３を記憶するように指定されたメモリセルは、状態ＳＴ１に対応する同じしきい値電圧を有することになることに留意する。続く期間７０４で、状態ＳＴ１に対応するしきい値電圧を有するセルは、状態ＳＴ２およびＳＴ３に対応するようにさらに調整される。図１９Ｂのしきい値電圧分布グラフに示すように、ＳＴ０の状態に対応する消去しきい値電圧から開始するメモリセルは、期間７０２でＳＴ１に対応するプログラムしきい値電圧へシフトされる。期間７０４において、ビット線ＢＬ１、ＢＬ３およびＢＬ４に接続されたメモリセルは、ＳＴ２およびＳＴ３に対応する最終しきい値電圧へシフトされるＳＴ１に対応するそれぞれの中間しきい値電圧を有する。
【００８３】
図２０Ａの実施形態では、状態ＳＴ１およびＳＴ２の並列多状態プログラミングが期間７０６において行われ、続いて、期間７０８において残りの状態ＳＴ３の多状態プログラミングが順次に行われる。期間７０６で行われる第１のプログラミング反復の後で、状態ＳＴ３を記憶するように指定されたメモリセルは、この例では状態ＳＴ２であるより高いしきい値電圧を有する状態に対応する同じしきい値電圧を有することになることに留意する。続く期間７０８で、ＳＴ２に対応するしきい値電圧を有するセルは、状態ＳＴ３に対応するようにさらに調整される。図２０Ｂのしきい値電圧分布グラフに示すように、ＢＬ２に接続されたメモリセルは、期間７０６において、その消去しきい値電圧をＳＴ１に対応するしきい値電圧へシフトさせる。また期間７０６には、ＢＬ１、ＢＬ３およびＢＬ４に接続されたメモリセルも、それぞれの消去しきい値電圧を、ＳＴ２に対応するしきい値電圧へシフトさせ、これにはＢＬ３に接続されたメモリセルも含む。期間７０８において、ビット線ＢＬ３に接続されたメモリセルは、ＳＴ２に対応するその中間しきい値電圧を、ＳＴ３に対応する最終しきい値電圧へシフトさせる。
【００８４】
図１９Ａ、図１９Ｂ、図２０Ａおよび図２０Ｂに示すどちらの代替の実施形態においても、少なくとも２つの状態が並列にプログラムされる。これらの実施形態は非限定的であり、代替の実施形態は、第１のプログラム反復で少なくとも２つの状態を並列にプログラムさせ、続いて、第２のプログラム反復で少なくとも別の２つ状態を並列にプログラムさせることを含み得ることに留意すべきである。さらに、並列多状態プログラミング反復と単一状態プログラミング反復との組み合わせを使用することもできる。
【００８５】
図１８Ａ、図１９Ａおよび図２０Ａに示す実施形態について、図１２Ａおよび図１２Ｂに示したコマンドおよびデータ入力シーケンスを使用して、メモリデバイスにデータのページをロードし、多状態並列プログラミング動作または２つの順次と並列混合の多状態プログラム動作のうちの１つを開始することができる。
【００８６】
本明細書で開示する並列多状態プログラミングの実施形態は、ビット線電圧変調と呼ばれる、ビット線を特定の電圧へバイアスすることによって実現される。前述のように、ビット線に接続されたメモリセルは、ビット線がバイアスされている、すなわち設定されている論理レベルに応じて、プログラミングを抑止され、または選択されるワード線によるプログラミングを可能とされる。参照により本明細書に組み込まれる同一出願人が所有する米国特許第７５１１９９６号明細書には、メモリセルのプログラミングを抑止するための実施形態が記載されており、これらの実施形態では、プログラミングのために選択されるメモリセルはそのビット線を、例えば０Ｖなどといったプログラム電圧へバイアスさせ、プログラムされるべきでないメモリセルは、そのビット線を、例えばＶＣＣなどのプログラム抑止電圧へバイアスさせる。米国特許第７５１１９９６号明細書記載されているそのような一実施形態の記述は、まず、ビット線に印加されるプログラム抑止電圧がどのようにして選択されるメモリセルのプログラミングを抑止し得るかの理解を容易にするために提供されるものである。
【００８７】
図２１は、米国特許第７５１１９９６号明細書のプログラム抑止方法の一実施形態を示す流れ図である。本考察において、上位ワード線とは、選択されるメモリセルとビット線との間のワード線およびメモリセルをいい、下位ワード線とは、選択されるメモリセルと電源線との間のワード線およびメモリセルをいう。図２１のプログラム抑止方法はステップ８００から開始し、そこで、ビット線は抑止電圧またはプログラム電圧を用いてバイアスされる。ここで説明する例では、ビット線はＶＣＣの抑止電圧へ駆動されるものとする。ステップ８０２で、選択されるワード線および上位ワード線は第１のパス電圧へ駆動される。第１のパス電圧は、上位ワード線に対応する各メモリセルを、それがプログラム状態であるかそれとも非プログラム状態であるかにかかわらず、オンにするのに十分な高さである。ステップ８０２と同時に、下位ワード線はステップ８０４で第２のパス電圧へ駆動される。本方法の実施形態によれば、第１のパス電圧と第２のパス電圧とは相互に同一とすることもでき、第２のパス電圧を第１のパス電圧より低くすることもできる。次いでステップ８０６で、選択されるワード線はプログラミング電圧へ駆動され、続いてステップ８０８で、選択されるメモリセルをＮＡＮＤストリングの非選択のメモリセルから分断するための隔離動作が行われる。
【００８８】
図２２ＡはＮＡＮＤストリング９００の簡略化した断面図であり、これは当業者には周知のはずである。ＮＡＮＤストリング９００は、ワード線ＷＬ０〜ＷＬ３１に接続されたゲートを有するメモリセル９０２と、ＮＡＮＤストリング９００をビット線９０６に結合するためのストリング選択トランジスタ９０４と、ＮＡＮＤストリング９００を電源線９１０に結合するための接地選択トランジスタ９０８とを含む。ＮＡＮＤストリング９００はＰＰウェル内に形成され、ＰＰウェルはそれ自体Ｐ基板のＮウェル内に形成される。ＮＡＮＤストリング・メモリセル・トランジスタのソース／ドレイン領域はｎ＋拡散領域である。
【００８９】
図２２Ａには、本発明の一実施形態による、特定のワード線に印加される相対電圧レベルを示す注釈が含まれている。物理的ＮＡＮＤストリングは先行技術と変更されないままであることに留意する。図２２Ａに示す例では、ＷＬ２９に接続されたメモリセルはプログラミングのために選択され、プログラムされるべきデータは論理「１」状態であるものと仮定されている。消去状態は論理「１」であるため、プログラミングは抑止される。図２２Ｂは、図２２Ａにおいて電圧が印加されるシーケンスをさらに示すシーケンス図である。
【００９０】
期間Ｔ１は初期状態であり、そこですべてのメモリセル９０２のゲート、信号ＳＳＬ、および信号ＧＳＬは０Ｖへバイアスされ、メモリセルをプログラムするためのビット線電圧およびメモリセルのプログラミングを抑止するためのビット線電圧が印加される。ＣＳＬは、０ＶまたはＶＣＣへバイアスすることができるが、本例では漏れを最小限に抑えるために好ましくはＶＣＣへバイアスすることができる。本例では、ビット線９０６はプログラミングを抑止するようにＶＣＣへバイアスされる。期間Ｔ２において、信号ＳＳＬは、ビット線電圧をＮＡＮＤストリング９００へ結合するためにＶＣＣへバイアスされる。図２２Ａに示すＮＡＮＤストリング９００では、ストリング選択トランジスタ９０４は、ビット線９０６に接続されたそのドレイン端子およびそのゲートがどちらもＶＣＣへバイアスされるために、電気的にオフになる。より具体的には、ストリング選択トランジスタ９０４は、そのソースが、おおよそＶＣＣからトランジスタのしきい値電圧を引いた電圧まで上がった後でオフになる。期間Ｔ３の間に、すべてのワード線（上位、下位および選択されるワード線）はパス電圧Ｖ２へ駆動され、Ｖ２はＶＣＣより高くなるように選択される。これは、ＮＡＮＤストリング９００の全チャネルを１次昇圧電圧へ昇圧する作用を有する。期間Ｔ４の最初に、選択されるワード線ＷＬ２９はプログラミング電圧Ｖ１まで上げられ、隣接するワード線ＷＬ２８およびＷＬ３０は、分断電圧Ｖ３まで下げられる。これらはそれぞれ、図５のステップ１０４とステップ１０６とに対応する。Ｖ１の電圧レベルはＶ２より高くなるように設定され、Ｖ３の電圧レベルはＶ１およびＶ２より低くなるように設定される。
【００９１】
ＷＬ２８およびＷＬ３０のワード線電圧をＶ３まで下げることの別の利点は、ＷＬ２９に接続された制御ゲートとＷＬ２８およびＷＬ３０に結合された浮遊ゲートとの間の容量結合を補償することである。ＷＬ２９がＶ１へ駆動される際に、容量結合の作用により浮遊ゲート電圧が増加し、それによって、選択されるメモリセルに隣接したメモリセルにおけるパス妨害の確率が高まる可能性がある。したがって、ワード線電圧のＶ３への低減により浮遊ゲート電圧が低減されることになる。
【００９２】
図２２Ａに示す実施形態では、Ｖ１、Ｖ２およびＶ３の電圧レベルを以下の基準に従って選択することができる。Ｖ１は、０Ｖへバイアスされるビット線に結合されたメモリセルにおけるＦ−Ｎトンネリングを促進するのに十分な高さの電圧レベルであるべきである。Ｖ２の電圧レベルは、以下の３つの基準を満たすように選択されるべきである。第１に、Ｖ２は、非選択のセルのチャネルが導通状態とされるよう保証するのに十分な高さであるべきである。第２に、電圧Ｖ２が期間Ｔ４の間にＷＬ２８およびＷＬ３０について電圧Ｖ３に下がるときに、ＷＬ２８およびＷＬ３０に接続されたメモリセルはオフになり、期間Ｔ４の間中オフのままに留まる。これが達成される局所的分断効果である。第３に、選択されるワード線ＷＬ２９が電圧Ｖ２からプログラム電圧Ｖ１へ上がるときに、選択されるセルのチャネルを所望の電圧へ、すなわち、２次昇圧電圧レベルへ昇圧することができる。Ｖ３は、０Ｖビット線電圧を、非選択のセルを経て選択されるセルのドレインまで通すのに十分な高さの電圧レベルであると同時に、（ＷＬ２９に接続された）選択されるセルに隣接する（ＷＬ２８およびＷＬ３０に接続された）メモリセルのチャネルを実質的にオフにするのに十分な低さであるべきである。
【００９３】
ここで説明するプログラム抑止方式は、プログラム反復時にワード線を駆動する前にビット線に印加される電圧を変動させることにより、前述の並列多状態プログラミングのために変更することができる。前述のプログラム抑止実施形態では、ＶＣＣのプログラム抑止電圧の印加は、ビット線がＶＣＣへバイアスされるときに、Ｖ１へ駆動される選択されるワード線と選択されるセルのチャネルとの間の電界強度を最小化する。本実施形態によれば、ビット線をＶＣＣとＶＳＳとの間の電圧へバイアスすることにより、この電界強度は完全なＶＣＣ抑止状況と比べて増大され、それによって、セルのしきい値電圧を正にシフトさせることができる。しかし、しきい値電圧がシフトするシフト量は、ビット線がＶＳＳへバイアスされた場合のシフト量よりも小さくなる。したがって、セルの一部が完全にプログラムされることを抑止される。
【００９４】
図２３は、１セルあたり２ビットの記憶方式についての並列多状態プログラミング実施形態のためのビット線の電圧バイアスの例を示す、４つのフラッシュメモリのＮＡＮＤセルストリングの回路図である。図２３に示すＮＡＮＤセルストリングの各要素は、前に図２２Ａに示したＮＡＮＤセルストリングについて説明したものであり、したがって、同じ要素を指定するのに同じ参照番号を使用する。各ＮＡＮＤセルストリングはそれぞれのビット線ＢＬ０、ＢＬ１、ＢＬ２およびＢＬ３に接続されている。図示している例では、ＢＬ０はＶＣＣへバイアスされ、ＢＬ１はＶＢＬ１へバイアスされ、ＢＬ２はＶＢＬ３へバイアスされ、ＢＬ３はＶＳＳへバイアスされる。本実施形態によれば、すべてのビット線は、ワード線が駆動される前に、これら４つの電圧のうちの１つを用いて同時にバイアスされる。次いで、ワード線は、例えば、前述のプログラム抑止方式について図２２Ｂに概要を示した電圧とシーケンスとを用いて、プログラミングを実施するために駆動される。ある電圧がプログラミングを抑止するのに使用され、別の電圧がプログラミングを可能にするように使用される原理の下で動作する他のプログラム抑止方式を、本実施形態で教示する並列多状態プログラミングのために適応させることができる。
【００９５】
１セルあたり２ビットの記憶方式の一例では、ビット線を、ＶＣＣのプログラム抑止電圧、およびＶＳＳ、ＶＢＬ１、ＶＢＬ２のプログラム電圧のうちの１つへバイアスすることができ、ＶＢＬ１およびＶＢＬ２はどちらもＶＳＳより大きく、ＶＣＣより小さい。例えば、ＶＢＬ１を１ボルトとすることができ、ＶＢＬ２を２ボルトとすることができる。ＶＢＬ１およびＶＢＬ２についての具体的な電圧レベルは、製造プロセス、所望のしきい値電圧、選択されるワード線についてのプログラミングプロファイルといった要因に基づいて決定することができる。前述のものと同じ原理を、２ビットより多くのビットがメモリセルに記憶される実施形態に適用することができる。
【００９６】
ビット線の特定の電圧レベルへのバイアスは、特定のビット線に対応するデータの各ページの各ビットの論理状態に依存する。図２４は、本発明の一実施形態による、並列多状態プログラミングのためにビット線電圧レベルを変調するためのビット線アクセス回路のブロック図である。ビット線アクセス回路１０００は、ページバッファ１００２と、少なくとも１つのマルチページプログラム・バッファ１００４とを含む。ページバッファ１００２は、それぞれ、第１のページのデータの１ビットを記憶するための、複数のデータ記憶回路１００６を含む。ページバッファ１００４は、それぞれ、第２のページのデータの１ビットを記憶するための、複数のデータ記憶回路１００８を含む。ＢＬ変調器１０１０に接続されたデータ記憶回路１００６とデータ記憶回路１００８との各対は、個々のビット線と関連付けられている。ビット線ごとのデータ復号回路は、ＢＬ変調器１０１０とデータ検証デコーダ１０１２とを含む。要素１００２、１００６、１００８および１０１２は、図１６に示した要素１１２、１１４、５０４、５０２および５０６と実質的に同じである。図２４の実施形態と図１６の実施形態との主な違いはＢＬ変調器１０１０であり、ＢＬ変調器１０１０は、特定のビット線と関連付けられたデータの２ページのデータビットを復号し、ビット線を所定の電圧を用いてバイアスし、データ検証デコーダ１０１２の論理を復号する役割を果たす。メモリアレイ内のあらゆるＢＬ変調器１０１０が、プログラム反復が開始される前に、同時にそれぞれのビット線をバイアスする。
【００９７】
図２５は、ＢＬ変調器１０１０の機能ブロックを示す概略図である。ＢＬ変調器１０１０は、プログラム・データ・デコーダ１１００と、ビット線バイアス回路１１０２とを含む。プログラム・データ・デコーダ１１００はＤＡＴＡ１＿［１］と呼ばれる第１のページバッファからのデータビットと、ＤＡＴＡ２＿［１］と呼ばれる第２のページバッファからのデータのビットとを受け取る。「ＤＡＴＡ１」という用語はそのビットが第１のページバッファからのものであることを指示し、「ＤＡＴＡ２」という用語はそのビットが第２のページバッファからのものであることを示す。「［１］」という用語はデータのページ内のビット位置を示す。プログラム・データ・デコーダ１１００は、データの２ビットを復号して選択信号Ｓ０、Ｓ１、Ｓ２およびＳ３を提供し、その場合、ＤＡＴＡ１＿［１］とＤＡＴＡ２＿［１］との任意の組み合わせについてただ１つの選択信号だけがアクティブ論理レベルにある。これらの選択信号は、ビット線バイアス回路１１０２によって、所定の電圧ＶＣＣ、ＶＳＳ、ＶＢＬ１またはＶＢＬ２のうちの１つをビット線ＢＬ［１］へ通すために使用され、ＶＣＣ＞ＶＢＬ２＞ＶＢＬ１＞ＶＳＳである。本実施形態では、各選択信号は対応する所定の電圧へマップされる。ここで示す実施形態は、１セルあたり２ビットの記憶方式のために構成されており、この方式は１セルあたり３ビット以上の記憶方式のために拡張することができる。したがって、ＤＡＴＡ１＿［１］とＤＡＴＡ２＿［１］との可能な組み合わせごとに、ＢＬ変調器１０１０はそのビット線を選択し、所定の電圧ＶＣＣ、ＶＳＳ、ＶＢＬ１またはＶＢＬ２のうちの１つへバイアスする。各電圧は電圧発生器によって発生させることができる。
【００９８】
図２６は、図２５に示したプログラム・データ・デコーダ１１００の一実施形態を示す回路図の例である。プログラム・データ・デコーダ１１００は、それぞれ、ページ・バッファ・データ・ビットＤＡＴＡ１＿［１］およびＤＡＴＡ２＿［１］を受け取るための第１の入力および第２の入力を有する、ＡＮＤ論理ゲート１２００、１２０２、１２０４および１２０６を含む。各ＡＮＤ論理ゲートは選択信号Ｓ０、Ｓ１、Ｓ２およびＳ３のうちの１つを提供する。ＡＮＤ論理ゲートの第１入力と第２の入力とは、ＤＡＴＡ１＿［１］とＤＡＴＡ２＿［１］とのどんな組み合わせについても選択信号のうちのただ１つだけがアクティブハイ論理レベルへ駆動されることを保証するために異なった構成とされる。図２６に示す論理ゲート構成の例は、使用され得る可能な構成の１つである。異なる種類の論理ゲートおよび入力構成を使用して、ビット線へ印加するための特定の電圧を選択するためのものである、図２６のＡＮＤ論理ゲート構成によって示されるのと同じ結果を得ることもできる。
【００９９】
図２７は、図２５に示したビット線バイアス回路１１０２の一実施形態を示す回路図の例である。ビット線バイアス回路１１０２は、ｐチャネルトランジスタ１３００と、ｎチャネルトランジスタ１３０２、１３０４および１３０６とを含む。ｐチャネルトランジスタ１３００は、インバータ１３０８による、ハイ論理レベルにあるＳ０に応答してビット線ＢＬをＶＣＣへ接続する。ｎチャネルトランジスタ１３０２は、ハイ論理レベルにあるＳ１に応答してビット線ＢＬをＶＢＬ１へ接続する。ｎチャネルトランジスタ１３０４は、ハイ論理レベルにあるＳ２に応答してビット線ＢＬをＶＢＬ２へ接続する。ｎチャネルトランジスタ１３０６は、ハイ論理レベルにあるＳ３に応答してビット線ＢＬをＶＳＳへ接続する。したがって、プログラム・データ・デコーダ１１００によって提供される選択信号Ｓ０、Ｓ１、Ｓ２およびＳ３を介して、所定の電圧のうちの１つをビット線ＢＬへ印加することができる。異なる回路構成を使用して、選択信号に応答して異なる電圧をビット線へ提供することもできる。
【０１００】
図２６に示した回路実施形態は、図１８Ａの並列多状態プログラミングの実施形態のために使用することができるが、別の実施形態によれば、回路の変更バージョンが、図１９Ａの順次と並列混合のマルチページプログラムの実施形態のために使用されるはずである。そのような代替の実施形態では、プログラム・データ・デコーダ１１００の論理は、状態ＳＴ１をプログラムするための第１のプログラミング反復において、状態ＳＴ２またはＳＴ３を記憶するように指定された任意のメモリセルがその個々のビット線を、本例ではＶＢＬ１であるＳＴ１に対応する同じビット線電圧へバイアスさせるように構成されるはずである。これは、この所望の結果達成するように論理回路を設計することによって行うこともでき、あるいは、ビット線バイアス回路１１０２のトランジスタ１３０４および１３０６を、第１のプログラミング反復において、それぞれ、ＶＢＬ２およびＶＳＳの代わりにＶＢＬ１を受け取るように構成することもできる。状態ＳＴ２およびＳＴ３を並列にプログラムするための次のプログラミング反復においては、図２６の回路を前述のように使用することができる。
【０１０１】
図２０Ａの順次と並列混合のマルチページプログラムの実施形態は、プログラム・データ・デコーダ１１００の論理への同様の変更を必要とするはずである。この場合には、状態ＳＴ１およびＳＴ２が最初のプログラム反復においてプログラムされる。しかし、状態ＳＴ３を記憶するように指定されたメモリセルは、第１のプログラム反復において、中間のＳＴ２状態へプログラムされるはずである。したがって、プログラム・データ・デコーダ１１００の論理は、状態ＳＴ１およびＳＴ２をプログラムするための第１のプログラミング反復において、状態ＳＴ３を記憶するように指定された任意のメモリセルがその個々のビット線を、本例ではＶＢＬ２であるＳＴ２に対応する同じビット線電圧へバイアスさせるように構成されるはずである。この場合もやはり、論理復号回路をこの所望の結果を達成するように設計することもでき、あるいは、ビット線バイアス回路１１０２のための電圧レベル切り換えを使用することもできる。
【０１０２】
本明細書で説明するビット線アクセス回路１０００の実施形態は、すべての可能な状態が同時にプログラムされる図１８Ａに示した完全並列多状態プログラミングの実施形態を実行するのに使用することができる。他の１つの状態がプログラムされる別のプログラミング反復の前または後に、並列多状態プログラミングがいくつかの状態について実行される図１９Ａおよび図２０Ａの実施形態について、ビット線アクセス回路１０００の前述の実施形態を、図１６および図１７の実施形態の教示に従って変更することができる。そのような変更は、図１８Ａに示した完全並列多状態プログラミングの実施形態と、図１９Ａおよび図２０Ａに示した順次と並列混合のマルチページプログラムの実施形態とに特有のプログラム検証動作のための回路を適応させる。以下は、ここで説明する多状態プログラミングの実施形態のためのプログラム検証の考察である。
【０１０３】
各プログラミング反復において１つの状態がプログラムされる前述の実施形態では、所望のしきい値電圧がメモリセルへ適正にプログラムされていることを保証するために、各反復後にプログラム検証動作が実行される。ここで説明する多状態プログラミングの実施形態では、１回のプログラミング反復において少なくとも２つの状態が同時にプログラムされる。したがって、少なくとも２つの状態に対応するしきい値電圧が個々のセルへプログラムされていることを検証するのに、新しいプログラム検証方式が使用される。
【０１０４】
図１８Ａの実施形態では、すべての状態が並列にプログラムされるが、プログラム検証は状態ごとに順次に実行される。本実施形態では、ビット線に接続されたメモリセルが正常にプログラムされていると検証されたときに、当該ビット線に対応する２つのデータ・バッファ・ビットは、それ以上のプログラミングを抑止するための消去状態に対応する２進値「１１」へ変更される。しかし、検証されているプログラム状態についてのデータ・バッファ・ビットだけが消去状態に切り換えられるべきである。言い換えると、検証されていない状態についてのデータ・バッファ・ビットは、別のプログラム状態についてのプログラム検証動作の間に消去状態に切り換えられるべきではない。図１６の実施形態について前述したように、データ検証デコーダ５０６はプログラム検証動作においてデータバッファのレジスタビットを切り換える。したがって、この回路は、それについてのプログラム検証動作が現在実行されている状態へのプログラミングの間にバイアスされるビット線について使用可能とされるべきである。
【０１０５】
図２８に、図１８Ａの多状態プログラミングの実施形態について、図２４の実施形態のデータ検証デコーダ１０１２を選択的に使用可能にし、または使用不可にするための制御回路の回路図実施形態を示す。プログラム検証制御回路１４００は、ＡＮＤ論理ゲート１４０２、１４０４および１４０６と、ＯＲ論理ゲート１４０８とを含む。各ＡＮＤ論理ゲートは、図２６に示したプログラム・データ・デコーダ１１００によって提供される選択信号Ｓ１、Ｓ２またはＳ３のうちの１つを受け取るための第１の入力を有する。各ＡＮＤ論理ゲートは、選択信号Ｓ１、Ｓ２およびＳ３にそれぞれ対応する検証制御信号「検証Ｓ１」、「検証Ｓ２」および「検証Ｓ３」を受け取るための第２の入力を有する。ＡＮＤ論理ゲート１４０２、１４０４および１４０６の出力は、対応するデータ検証デコーダ１０１２を使用可能にする出力を提供するために、ゲート１４０８によってその論理和（ＯＲ）が取られる。状態Ｓ０はプログラム検証される必要のない消去状態であるため、状態Ｓ０についてのＡＮＤ論理ゲートは不要であることに留意する。データ検証デコーダ１０１２は、プログラム検証制御回路１４００からのイネーブル信号に応答するように構成されているものと仮定する。
【０１０６】
動作に際して、プログラム検証制御回路１４００は、それぞれ特定の状態についてのプログラム検証動作に対応する異なる期間にアクティブハイ論理レベルにある検証制御信号「検証Ｓ１」、「検証Ｓ２」および「検証Ｓ３」を受け取る。例えば、状態Ｓ１を検証するためにまず「検証Ｓ１」をアサートし、続いて状態Ｓ２を検証するために「検証Ｓ２」をアサートすることができる。前述のように、プログラム・データ・デコーダ１１００は、ＤＡＴＡ１＿［１］とＤＡＴＡ２＿［１］との任意の所与の論理状態の組み合わせについて選択信号Ｓ０、Ｓ１、Ｓ２およびＳ３のうちのただ１つだけをアサートする。したがって、各検証制御信号「検証Ｓ１」、「検証Ｓ２」および「検証Ｓ３」が特定の状態を検証するためにアサートされる際には、当該の特定の状態をプログラムするためにバイアスされたビット線と関連付けられたデータ検証デコーダ１０１２だけが使用可能とされ、他のすべてのデータ検証デコーダ１０１２は使用不可とされる。図２８に示す特定の論理ゲート構成は１つの可能な構成の例である。同じ結果を達成するために、他の制御信号と組み合わせた選択信号を使用してデータデコーダ１０１２を使用可能にするための代替の論理ゲート構成を使用することもできる。
【０１０７】
使用可能にされた後で、データ検証デコーダ１０１２は、ビット線に対応するページバッファのデータビットの対を、当該の特定の状態のプログラミングに成功したとみなされる場合には、消去状態へ切り換えるように構成される。そうでない場合、データビットの対は変更されない。したがって、正常にプログラムされなかったメモリセルは、再度プログラムするために、それらに対応するビット線を、選択信号Ｓ１、Ｓ２およびＳ３によって選択される特定の電圧レベルへバイアスさせることになる。本実施形態では、データ検証デコーダ１０１２は、状態ＳＴ１、ＳＴ２およびＳＴ３に対応するデータビットの対を、例えば「１１」などといった、消去状態に対応する論理レベルへ切り換えるように構成された論理回路を含む。
【０１０８】
並列多状態プログラミング実施形態のプログラム検証のための技法が説明されたので、図１９Ａおよび図２０Ａの順次並列混合のマルチページプログラミングの実施形態のためのプログラム検証の技法は、図１６の順次プログラミングの実施形態で使用されるプログラム検証の実施形態と、図２２の並列多状態プログラミングの実施形態についてのプログラム検証の実施形態との組み合わせであることが認められる。
【０１０９】
図１９Ａの実施形態から開始すると、プログラムされるべき最初の状態は状態ＳＴ１であり、続いて、状態ＳＴ２およびＳＴ３の並列プログラミングが行われる。しかし、状態ＳＴ２およびＳＴ３を記憶するように指定されたメモリセルは第１のプログラミング反復においてプログラムされ、したがって、中間状態として状態ＳＴ１を記憶している。この第１のプログラミング反復は、すべてのセルが、最終状態として、または中間状態として状態ＳＴ１を記憶するようにプログラムされる図１４Ｂに示したプログラミング反復と同様のものである。したがって、前述の図１４Ｂについてのプログラム検証の技法を使用することができる。次のプログラミング反復において、中間状態は最終状態へシフトされる。したがって、第１のプログラミング反復についての正常なプログラム検証動作の一部として、データ検証デコーダ１０１２の論理回路は、ｉ）状態ＳＴ１に対応するデータビットを消去状態へ切り換え、または、ｉｉ）状態ＳＴ２に対応するデータビットを、ビット線電圧ＶＢＬ２を選択するための組み合わせへ切り換え、または、ｉｉｉ）状態ＳＴ３に対応するデータビットを、ビット線電圧ＶＳＳを選択するための組み合わせへ切り換えるように構成される。したがって各ビット線は、第２のプログラミング反復で状態ＳＴ２およびＳＴ３を並列にプログラムするための新しい電圧レベルへバイアスされる。図１８Ａの実施形態に用いられるプログラム検証の技法を、第２のプログラミング反復に使用することができる。
【０１１０】
図２０Ａの実施形態では、状態ＳＴ１およびＳＴ２が第１のプログラミング反復において並列にプログラムされ、続いて、第２のプログラミング反復において状態ＳＴ３がプログラムされる。第１のプログラム反復には、図１８Ａの実施形態について説明したプログラム検証の技法を使用することができる。第１のプログラミング反復についての正常なプログラム検証動作の一部として、データ検証デコーダ１０１２の論理回路は、ｉ）状態ＳＴ１またはＳＴ２に対応するデータビットを消去状態へ切り換え、またはｉｉ）状態ＳＴ３に対応するデータビットを、ビット線電圧ＶＳＳを選択するための組み合わせへ切り換えるように構成される。したがって各ビット線は、第２のプログラミング反復で状態ＳＴ３をプログラムするための新しい電圧レベルへバイアスされる。図１４Ｂの実施形態に用いられるプログラム検証の技法を、第２のプログラミング反復に使用することができる。
【０１１１】
以上で開示し、説明した回路および論理構成は、様々な多状態プログラミングの実施形態および対応するプログラム検証の実施形態を実施するのに使用することができるはずの実施形態の例として提示するものである。同じ所望の結果を得るために代替の回路および論理構成を使用することもできる。
【０１１２】
図２９は、本発明の一実施形態による、並列多状態プログラミングのための方法の概要を示す流れ図である。この方法は、図９の方法のブロック３０２において使用することができる。図２８の方法は、１５００で、プログラムすべき状態を決定するために、前述の回路実施形態において説明したように、各ビット線に対応するデータの各ページの各ビットを復号することから開始する。１５０２で、ビット線は、プログラムすべき異なる状態のそれぞれに対応する電圧レベルへバイアスされる。各ビット線がそれぞれの電圧レベルへバイアスされた後で、選択されるワード線が、１５０４で、メモリセルへの異なる状態の同時プログラミングのためのプログラミングプロファイルを用いて駆動され、異なる状態はそれぞれ、対応するしきい値電圧を有する。プログラミングが完了した後、１５０６で、前述の実施形態によるプログラム検証動作を実行することができる。要素１５００、１５０２、１５０４および１５０６は、すべての可能な状態の完全並列多状態プログラミングに使用することもでき、すべての可能な状態の一部の並列多状態プログラミングに使用することもできる。
【０１１３】
例えば、１５００でデータを復号する前に、１５１０の対応するプログラム検証動作を伴って、１５０８で、ある状態をプログラムするために第１のプログラミング反復を実行し、それによって、残りの可能な状態を１５００、１５０２および１５０４（第２のプログラミング反復）で並列にプログラムさせることもできる。１５００、１５０２、１５０４および１５０６で実行されるプログラミング動作は、第１のプログラミング反復としての１つの状態を除くすべての可能な状態をプログラムするのに使用することができる。残りの状態は、１５１４で対応するプログラム検証動作を伴って、第２のプログラミング反復１５１２においてプログラムすることもできる。ここで説明する実施形態は、第１のプログラミング反復において１つの状態をプログラムし、続いて、第２のプログラム反復において残りの状態を並列にプログラムすること、またはその逆を行うことだけに限定されるものではない。プログラムされるべき多くの状態がある状況では、少なくとも２つの状態が各プログラミング反復においてプログラムされる複数のプログラミング反復を使用することができる。
【０１１４】
前述の各実施形態では、簡潔にするために、デバイスの各要素および回路は、相互に接続されているものとして各図に示されている。本発明の実際の応用に際しては、要素、回路などが相互に直接接続されてもよい。また、要素、回路などが、デバイスおよび装置の動作に必要な他の要素、回路などを介して相互に間接的に接続されてもよい。よって、実際の構成においては、回路要素および回路は、直接的に、または間接的に、相互と結合され、または相互に接続される。
【０１１５】
本発明の上記の実施形態は例示のためのものにすぎない。当業者によれば、添付の特許請求の範囲によってのみ定義される本発明の範囲を逸脱することなく、個々の実施形態への変更、改変および変形が実施され得る。
【図１】
2013534685.tif 000004
【図２】
2013534685.tif 000005
【図３】
2013534685.tif 000006
【図４】
2013534685.tif 000007
【図５】
2013534685.tif 000008
【図６Ａ】
2013534685.tif 000009
【図６Ｂ】
2013534685.tif 000010
【図７】
2013534685.tif 000011
【図８】
2013534685.tif 000012
【図９】
2013534685.tif 000013
【図１０】
2013534685.tif 000014
【図１１】
2013534685.tif 000015
【図１２Ａ】
2013534685.tif 000016
【図１２Ｂ】
2013534685.tif 000017
【図１３】
2013534685.tif 000018
【図１４Ａ】
2013534685.tif 000019
【図１４Ｂ】
2013534685.tif 000020
【図１５Ａ】
2013534685.tif 000021
【図１５Ｂ】
2013534685.tif 000022
【図１６】
2013534685.tif 000023
【図１７】
2013534685.tif 000024
【図１８Ａ】
2013534685.tif 000025
【図１８Ｂ】
2013534685.tif 000026
【図１９Ａ】
2013534685.tif 000027
【図１９Ｂ】
2013534685.tif 000028
【図２０Ａ】
2013534685.tif 000029
【図２０Ｂ】
2013534685.tif 000030
【図２１】
2013534685.tif 000031
【図２２Ａ】
2013534685.tif 000032
【図２２Ｂ】
2013534685.tif 000033
【図２３】
2013534685.tif 000034
【図２４】
2013534685.tif 000035
【図２５】
2013534685.tif 000036
【図２６】
2013534685.tif 000037
【図２７】
2013534685.tif 000038
【図２８】
2013534685.tif 000039
【図２９】
2013534685.tif 000040
【国際調査報告】
2013534685.tif 000041
2013534685.tif 000042
2013534685.tif 000043
2013534685.tif 000044
2013534685.tif 000045
2013534685.tif 000046