(57)【要約】隣接メモリセルを昇圧する干渉の影響を低減することができる、不揮発性記憶装置をプログラムするシステムを提案する。複数のメモリセルは、２以上のグループに分けられる。一例では、複数のメモリセルは、奇数および偶数メモリセルに分けられる。しかしながら、他のグループ分け方法も使用しうる。第１のトリガの前に、メモリセルの第１のグループが、メモリセルの第２のグループと一緒にプログラムされる。第１のトリガの後であって第２のトリガの前では、メモリセルの第１のグループが、メモリセルの第２のグループとは別にプログラムされる。第２のトリガの後では、メモリセルの第１のグループが、メモリセルの第２のグループと一緒にプログラムされる。両トリガの前と後では、メモリセルの第１のグループが、メモリセルの第２のグループと一緒に検証される。
2010538409.tif 000002
【特許請求の範囲】
【請求項１】
第１の期間において不揮発性記憶素子の第１のグループにプログラムを行うステップと、
第１の期間と異なる第２の期間において不揮発性記憶素子の第２のグループにプログラムを行うステップと、
不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループに対して一緒に検証を行うステップと、
を備えることを特徴とする不揮発性記憶装置のプログラム方法。
【請求項２】
不揮発性記憶素子の第１のグループは第１のコントロールラインに接続され、
不揮発性記憶素子の第２のグループも第１のコントロールラインに接続されることを特徴とする請求項１の方法。
【請求項３】
不揮発性記憶素子の第１のグループはワードラインに接続され、
不揮発性記憶素子の第２のグループも前記ワードラインに接続され、
不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループに含まれる不揮発性記憶素子の各々は、交互に配列される形態で異なるビットラインに接続されることを特徴とする請求項１の方法。
【請求項４】
不揮発性記憶素子の第１のグループにプログラムを行うステップは、
不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループに第１のプログラムパルスを印加するステップと、
第１のプログラムパルスによって不揮発性記憶素子の第２のグループにプログラムが行われることを禁止するステップと、
第１のプログラムパルスによって不揮発性記憶素子の第１のグループにプログラムが行われることを許可するステップと、を備え、
不揮発性記憶素子の第２のグループにプログラムを行うステップは、
不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループに第２のプログラムパルスを印加するステップと、
第２のプログラムパルスによって不揮発性記憶素子の第１のグループにプログラムが行われることを禁止するステップと、
第２のプログラムパルスによって不揮発性記憶素子の第２のグループにプログラムが行われることを許可するステップと、
を備えることを特徴とする請求項１の方法。
【請求項５】
不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループに含まれる不揮発性記憶素子の各々は、異なる複数のコントロールラインに接続され、
複数のコントロールラインは、複数の偶数コントロールラインと複数の奇数コントロールラインを含んでおり、
不揮発性記憶素子の第１のグループは複数の偶数コントロールラインに接続されており、
不揮発性記憶素子の第２のグループは複数の奇数コントロールラインに接続されていることを特徴とする請求項４の方法。
【請求項６】
不揮発性記憶素子の第１のグループは、不揮発性記憶素子の第２のグループと交互に配列される形態で配置されることを特徴とする請求項５の方法。
【請求項７】
不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループに対して一緒に検証を行うステップは、
不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループに接続されているワードラインに１以上の検証信号を印加すると同時に、不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループを読み出すステップを備えることを特徴とする請求項１の方法。
【請求項８】
不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループは、共通する不揮発性記憶素子を有していないことを特徴とする請求項１の方法。
【請求項９】
前記検証を行うステップは、第２の期間に引き続く第３の期間において行われ、
第２の期間は第１の期間に引き続いており、
第１の期間と第２の期間との間においては不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループに対して検証が行われないことを特徴とする請求項１の方法。
【請求項１０】
前記第１のグループにプログラムを行うステップ、前記第２のグループにプログラムを行うステップ、および前記検証を行うステップが、十分な数の不揮発性記憶素子に対して適切にプログラムが行われるまで、複数回繰り返されることを特徴とする請求項１の方法。
【請求項１１】
第１の期間において不揮発性記憶素子の第１のグループにプログラムを行うステップおよび第２の期間において不揮発性記憶素子の第２のグループにプログラムを行うステップは、第１のトリガに応じて第１のトリガの後に実行され、
前記プログラム方法は、第１のトリガに先立って１以上のプログラムサイクルを実行するステップをさらに備え、
１以上のプログラムサイクルの各々は、不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループに一緒にプログラムを行うステップを有していることを特徴とする請求項１の方法。
【請求項１２】
第１のトリガは、トリガ電圧に到達するプログラムパルスの大きさを有していることを特徴とする請求項１１の方法。
【請求項１３】
前記プログラム方法は、
不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループの製造に引き続いて、不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループのトリガ電圧の決定を行うステップをさらに備えることを特徴とする請求項１２の方法。
【請求項１４】
第１の期間において不揮発性記憶素子の第１のグループにプログラムを行うステップおよび第２の期間において不揮発性記憶素子の第２のグループにプログラムを行うステップは、第２のトリガに先立って行われ、
前記プログラム方法は、第２のトリガに引き続いて１以上の追加のサイクルを実行し、
１以上の追加のサイクルの各々は、不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループに一緒にプログラムを行うステップを有していることを特徴とする請求項１１の方法。
【請求項１５】
不揮発性記憶素子の第１のグループは第１のワードラインに接続され、
不揮発性記憶素子の第２のグループは前記ワードラインに接続され、
不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループに含まれる不揮発性記憶素子の各々は、交互に配列される形態で異なるビットラインに接続されることを特徴とする請求項１１の方法。
【請求項１６】
前記プログラム方法がさらに備えている、不揮発性記憶素子の第１のグループにプログラムを行うステップは、
不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループに第１のプログラムパルスを印加するステップと、
第１のプログラムパルスによって不揮発性記憶素子の第２のグループにプログラムが行われることを禁止するステップと、
第１のプログラムパルスによって不揮発性記憶素子の第１のグループにプログラムが行われることを許可するステップと、を有しており
前記プログラム方法がさらに備えている、不揮発性記憶素子の第２のグループにプログラムを行うステップは、
不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループに第２のプログラムパルスを印加するステップと、
第２のプログラムパルスによって不揮発性記憶素子の第１のグループにプログラムが行われることを禁止するステップと、
第２のプログラムパルスによって不揮発性記憶素子の第２のグループにプログラムが行われることを許可するステップと、
を有していることを特徴とする請求項１５の方法。
【請求項１７】
不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループの動作中に第１のトリガを動的に調整するステップをさらに備えることを特徴とする請求項１１の方法。
【請求項１８】
プログラム−消去サイクルに基づいて第１のトリガを調整するステップをさらに備えることを特徴とする請求項１１の方法。
【請求項１９】
温度に基づいて第１のトリガを調整するステップをさらに備えることを特徴とする請求項１１の方法。
【請求項２０】
第１の期間において不揮発性記憶素子の第１のグループにプログラムを行うステップおよび第２の期間において不揮発性記憶素子の第２のグループにプログラムを行うステップは、状態が検出される以前および前記状態が検出されるまで行われ、
前記プログラム方法は、前記状態が検出されることに引き続いて１以上の追加のサイクルを実行し、
１以上の追加のサイクルの各々は、不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループに一緒にプログラムを行うステップを有していることを特徴とする請求項１の方法。
【請求項２１】
不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループのいくつの不揮発性記憶素子がまだプログラム中であるか、および、いくつの不揮発性記憶素子がプログラム対象として選択された隣接するメモリセルを有するかを判断するステップと、
不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループのいくつの不揮発性記憶素子がまだプログラム中であるか、および、いくつの不揮発性記憶素子がプログラム対象として選択された隣接するメモリセルを有するかに基づいて前記状態を検出するステップと、
をさらに備えることを特徴とする請求項２０の方法。
【請求項２２】
不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループのいくつの不揮発性記憶素子がまだプログラム中であるか、および、いくつの不揮発性記憶素子がプログラム対象として選択された隣接するメモリセルを有するかを外挿により判断するステップと、
不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループのいくつの不揮発性記憶素子がまだプログラム中であるか、および、いくつの不揮発性記憶素子がプログラム対象として選択された隣接するメモリセルを有するかに基づいて前記状態を検出するステップと、
をさらに備えることを特徴とする請求項２０の方法。
【請求項２３】
不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループのいくつの不揮発性記憶素子がまだプログラム中であるかを判断するステップと、
不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループのいくつの不揮発性記憶素子がまだプログラム中であるかに基づいて前記状態を検出するステップと、
をさらに備えることを特徴とする請求項２０の方法。
【請求項２４】
不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループは、フラッシュメモリデバイスであることを特徴とする請求項１の方法。
【請求項２５】
不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループは、ＮＡＮＤフラッシュメモリデバイスであることを特徴とする請求項１の方法。
【請求項２６】
不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループを含む複数の不揮発性記憶素子と、
不揮発性記憶素子と通信する１以上の管理回路と、を備え、
１以上の管理回路は、不揮発性記憶素子の第２のグループへのプログラムとは別に不揮発性記憶素子の第１のグループにプログラムを行い、
１以上の管理回路は、不揮発性記憶素子の第２のグループの検証と一緒に不揮発性記憶素子の第１のグループの検証を行うことを特徴とする不揮発性記憶装置。
【請求項２７】
コントロールラインをさらに備え、
不揮発性記憶素子の第１のグループはコントロールラインに接続され、
不揮発性記憶素子の第２のグループもコントロールラインに接続されることを特徴とする請求項２６の不揮発性記憶装置。
【請求項２８】
１本のワードラインと、複数のビットラインとをさらに備え、
不揮発性記憶素子の第１のグループがワードラインに接続されると共に、不揮発性記憶素子の第２のグループも前記ワードラインに接続され、
不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループに含まれる不揮発性記憶素子の各々は、交互に配列される形態で異なるビットラインに接続されることを特徴とする請求項２６の不揮発性記憶装置。
【請求項２９】
１以上の管理回路は、
不揮発性記憶素子の第２のグループにプログラムが行われることが禁止されている期間に、不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループに第１のプログラムパルスを印加し、
不揮発性記憶素子の第１のグループにプログラムが行われることが禁止されている期間に、不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループに第２のプログラムパルスを印加することによって、
不揮発性記憶素子の第２のグループのプログラムとは別に、不揮発性記憶素子の第１のグループにプログラムを行うことを特徴とする請求項２６の不揮発性記憶装置。
【請求項３０】
不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループは、共通する不揮発性記憶素子を有していないことを特徴とする請求項２６の不揮発性記憶装置。
【請求項３１】
複数のコントロールラインをさらに備え、
不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループに含まれる不揮発性記憶素子の各々は、異なる複数のコントロールラインに接続され、
複数のコントロールラインは、複数の偶数コントロールラインと複数の奇数コントロールラインを含んでおり、
不揮発性記憶素子の第１のグループは複数の偶数コントロールラインに接続されており、
不揮発性記憶素子の第２のグループは複数の奇数コントロールラインに接続されていることを特徴とする請求項２６の不揮発性記憶装置。
【請求項３２】
不揮発性記憶素子の第１のグループは、不揮発性記憶素子の第２のグループと交互に配列される形態で配置されることを特徴とする請求項２６の不揮発性記憶装置。
【請求項３３】
１以上の管理回路は、第１のトリガに応じて第１のトリガの後に、不揮発性記憶素子の第２のグループへのプログラムとは別に、不揮発性記憶素子の第１のグループにプログラムを行い、
１以上の管理回路は、第１のトリガの前に、不揮発性記憶素子の第２のグループと一緒に、不揮発性記憶素子の第１のグループにプログラムを行うことを特徴とする請求項２６の不揮発性記憶装置。
【請求項３４】
第１のトリガは、不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループに同時に印加されるプログラムパルスの電圧レベルを有していることを特徴とする請求項３３の不揮発性記憶装置。
【請求項３５】
１以上の管理回路は、第２のトリガの前に、不揮発性記憶素子の第２のグループへのプログラムとは別に、不揮発性記憶素子の第１のグループにプログラムを行い、
１以上の管理回路は、第２のトリガに応じて第２のトリガの後に、不揮発性記憶素子の第２のグループと一緒に、不揮発性記憶素子の第１のグループにプログラムを行うことを特徴とする請求項３３の不揮発性記憶装置。
【請求項３６】
１本のワードラインと、複数のビットラインとをさらに備え、
不揮発性記憶素子の第１のグループがワードラインに接続されると共に、不揮発性記憶素子の第２のグループも前記ワードラインに接続され、
不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループに含まれる不揮発性記憶素子の各々は、異なるビットラインに接続されることを特徴とする請求項３３の不揮発性記憶装置。
【請求項３７】
１以上の管理回路は、
不揮発性記憶素子の第２のグループにプログラムが行われることが禁止されている期間に、不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループに第１のプログラムパルスを印加し、
不揮発性記憶素子の第１のグループにプログラムが行われることが禁止されている期間に、不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループに第２のプログラムパルスを印加することによって、
不揮発性記憶素子の第２のグループのプログラムとは別に、不揮発性記憶素子の第１のグループにプログラムを行うことを特徴とする請求項３６の不揮発性記憶装置。
【請求項３８】
１以上の管理回路は、第１のトリガを動的に調整することを特徴とする請求項３３の不揮発性記憶装置。
【請求項３９】
１以上の管理回路は、第１のトリガを温度に基づいて動的に調整することを特徴とする請求項３３の不揮発性記憶装置。
【請求項４０】
１以上の管理回路は、第１のトリガをプログラムサイクルの数に基づいて動的に調整することを特徴とする請求項３３の不揮発性記憶装置。
【請求項４１】
１以上の管理回路は、状態が検出される前に、不揮発性記憶素子の第２のグループへのプログラムとは別に、不揮発性記憶素子の第１のグループにプログラムを行い、
１以上の管理回路は、状態が検出されることに応じて状態が検出された後に、不揮発性記憶素子の第２のグループと一緒に、不揮発性記憶素子の第１のグループにプログラムを行うことを特徴とする請求項２６の不揮発性記憶装置。
【請求項４２】
不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループは、フラッシュメモリデバイスであることを特徴とする請求項２６の不揮発性記憶装置。
【請求項４３】
不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループは、ＮＡＮＤフラッシュメモリデバイスであることを特徴とする請求項２６の不揮発性記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性記憶装置のための技術に関する。
【背景技術】
【０００２】
半導体メモリは、様々な電子デバイスで使われることが一般的になってきている。例えば、不揮発性半導体メモリは、携帯電話、デジタルカメラ、パーソナルデジタルアシスタント、モバイルコンピュータ、非モバイルコンピュータ、及び他の装置に使用されている。電気的消去・再プログラム可能型読取専用メモリ（ＥＥＰＲＯＭ）とフラッシュメモリは、最も普及している不揮発性半導体メモリである。
【０００３】
ＥＥＰＲＯＭとフラッシュメモリは、半導体基板内のチャネル領域上に配置され、そのチャネル領域から絶縁されているフローティングゲートを採用している。フローティングゲートとチャネル領域は、ソース領域とドレイン領域の間に配置されている。フローティングゲートの上に、そのフローティングゲートから絶縁されている制御ゲートが設けられている。トランジスタの閾値電圧は、フローティングゲート上に保持されている電荷量によって制御される。 即ち、そのソースとドレインの間の導通を可能にすべくトランジスタをオンするために制御ゲートに印加すべき電圧の最小量は、そのフローティングゲート上の電荷量レベルにより制御される。従って、フローティングゲートに保持されている電荷量を変化させることにより閾値電圧を変化させることで、メモリセル（メモリセルは一つ以上のトランジスタを備えていてもよい）にプログラム／消去を行うことができる。
【０００４】
各メモリセルは（アナログ又はデジタルの）データを記憶することができる。１ビットのデジタルデータを記憶する場合（バイナリメモリセルと呼ばれる）、メモリセルの可能な閾値電圧の範囲は、２つの範囲に分割され、それぞれの範囲が論理データの「１」と「０」に割り当てられる。
ＮＡＮＤ型フラッシュメモリの一例では、メモリセルが消去された後では閾値電圧が負値となり、それは論理「１」と定義される。プログラム後の閾値電圧は正値となり、それは論理「０」と定義される。閾値電圧が負値であり、制御ゲートに０ボルトが印加される読み出しが試みられた場合、メモリセルがオンとなり、これは論理１が記憶されていることを示す。閾値電圧が正値であり、制御ゲートに０ボルトが印加される読み出しが試みられた場合、メモリセルはオンせず、これは論理０が記憶されていることを示す。
【０００５】
一つのメモリセルで、複数レベルの情報を記憶することができる（マルチステートメモリセルと呼ばれる）。複数レベルのデータを記憶する場合には、可能な閾値の範囲は、データのレベルの数に分割される。例えば、４つのレベルの情報を記憶する場合、４つの閾値電圧範囲が存在し、それぞれがデータ値「１１」、「１０」、「０１」、及び「００」に割り当てられる。ＮＡＮＤタイプのメモリの一例では、消去動作の後の閾値電圧は負の値となり、論理「１１」と定義される。正値の閾値電圧群が「１０」、「０１」、「００」というデータ状態に対して用いられる。８つのレベルの情報（又は状態）が記憶される場合（即ち、３ビットのデータ）、データ値「０００」、「００１」、「０１０」、「０１１」、「１００」、「１０１」、「１１０」、及び「１１１」に割り当てられる８つの閾値電圧範囲がある。メモリセルにプログラムされるデータとセルの閾値電圧レベルの間の具体的な関係は、セルに採用されるデータ符号化方式によって決まる。例えば、両方ともその全体を参照することにより本明細書に組み込まれる米国特許第６，２２２，７６２号及び米国特許出願公開公報第２００４／０２５５０９０号は、マルチステートフラッシュメモリセルのための様々なデータ符号化方式を説明している。一実施形態においては、フローティングゲートの閾値電圧が誤ってその近傍の物理状態にシフトした場合に１つのビットだけが影響を受けるように、グレイコード割当を用いてデータ値が閾値電圧範囲に割り当てられる。いくつかの実施形態では、異なるワードラインに対してデータ符号化技法が変更され得ることがある。データ符号化技法は、時間に依存して変更され得ることがある。また、ランダムなワードラインのデータビットは、データパターン感度を低減し、メモリセルのウェアを均一にするために、反転されることがある。また、様々な符号化技法が使用され得ることがある。
【０００６】
ＥＥＰＲＯＭやＮＡＮＤ型フラッシュメモリデバイスなどのフラッシュメモリデバイスにプログラムを行う場合、典型的には、ビットラインが接地されるとともに、制御ゲートにプログラム電圧が加えられる。チャネルからの電子がフローティングゲートへ注入される。フローティングゲートに電子が蓄積されると、フローティングゲートが負値に帯電し、メモリセルの閾値電圧が上昇し、メモリセルがプログラムされた状態となる。プログラムに関するさらなる情報は、「Source Side Self Boosting Technique for Non-Volatile Memory」と題した米国特許第６，８５９，３９７号、および、「Detecting Over Programmed Memory」と題した米国特許出願公開公報２００５／００２４９３９号に開示されている。これらの両方の文献の内容は、その全体を参照することにより本明細書に組み込まれる。多くのデバイスでは、プログラム電圧は、連続するパルスの各々で所定ステップサイズずつパルスの大きさが増加する一連のパルスとして、プログラム処理の間にコントロールゲートに印加される。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
多くの不揮発性記憶装置システムは、列と行に配列されたメモリセルのアレイを備えている。（ワードライン、ビットライン、その他の種類のコントロールラインなどの）コントロールラインは、様々な列および行に接続される。一例では、ワードラインがメモリセルの行のアクセスに使用される一方、ビットラインがメモリセルの列のアクセスに使用される。この配列では、プログラム電圧の一連のパルスは、複数の選択メモリセルに接続されている１本の選択ワードラインに印加される。パルスを印加される選択メモリセルの各々は、パルスの印加に応じて閾値電圧が上昇する可能性がある。メモリセルが目標の閾値電圧に到達すると、メモリセルはさらなるプログラムから除外される。メモリセルが除外されると、そのメモリセルに隣接するメモリセルの期待されているプログラム速度に干渉を起こすことが知られている。この影響によって、隣接メモリセルの閾値電圧が所望の目標閾値電圧を超過することがあり、その結果、オーバープログラムとなる。ある場合には、オーバープログラムされたメモリセルは、読み出し時にエラーを起こすことがある。
【課題を解決するための手段】
【０００８】
プログラムの期間中に隣接メモリセル間での干渉の影響を減少させることができる技術について詳述する。
【０００９】
一実施形態は、第１の期間において不揮発性記憶素子の第１のグループにプログラムを行うステップと、第１の期間と異なる第２の期間において不揮発性記憶素子の第２のグループにプログラムを行うステップと、不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループに対して一緒に検証を行うステップと、
を備える。
【００１０】
一実施形態は、多数のプログラミングパルスを複数の不揮発性記憶素子に印加するステップを備える。このステップは、第２の不揮発性記憶素子群を意図的にプログラムせずに、第１の不揮発性記憶素子群を第１のプログラミングパルスでプログラムするステップと、第１の不揮発性記憶素子群を意図的にプログラムせずに、第２の不揮発性記憶素子群を第２のプログラミングパルスでプログラムするステップと、を備える。処理はさらに、第１のプログラミングパルスおよび第２のプログラミングパルスを印加した後に、複数の不揮発性記憶素子に対して検証処理を行うステップを備える。検証処理は、第１の不揮発性記憶素子群が第１のプログラミングパルスによって１以上の目標に到達したか否かを検証するステップと、第２の不揮発性記憶素子群が第２のプログラミングパルスによって１以上の目標に到達したか否かを検証するステップとを備える。
【００１１】
一実施形態は、第１のトリガの前に、不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループに一緒にプログラムを行うステップおよび一緒に検証を行うステップを備える。第１のトリガの後に、不揮発性記憶素子の第２のグループとは別に不揮発性記憶素子の第１のグループがプログラムされ、不揮発性記憶素子の第２のグループと一緒に不揮発性記憶素子の第１のグループが検証される。
【００１２】
一実施形態は、第１の状態を検出する前に、複数のプログラミングサイクルを実行するステップを備える。複数のプログラミングサイクルの各々は、第１の不揮発性記憶素子群をプログラムするために第１のパルスを使用するステップと、第２の不揮発性記憶素子群をプログラムするために第２のパルスを別途に使用するステップとを備える。１以上のプログラミングサイクルは、第１の不揮発性記憶素子群および第２の不揮発性記憶素子群を一緒に検証するステップを備える。第１の状態の検出後に、１以上のプログラムサイクルのグループが実行される。各々のプログラムサイクルは、第１の不揮発性記憶素子群および第２の不揮発性記憶素子群を一緒にプログラムするために１のパルスを使用するステップを備える。１以上のプログラムサイクルのグループは、第１の不揮発性記憶素子群および第２の不揮発性記憶素子群を一緒に検証するステップを備える。
【００１３】
一実施形態は、（不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループを含む）複数の不揮発性記憶素子と、不揮発性記憶素子と通信する１以上の管理回路とを備える。１以上の管理回路は、不揮発性記憶素子の第２のグループへのプログラムとは別に、不揮発性記憶素子の第１のグループにプログラムを行う。１以上の管理回路は、不揮発性記憶素子の第２のグループの検証と一緒に、不揮発性記憶素子の第１のグループの検証を行う。
【００１４】
一実施形態は、複数の不揮発性記憶素子（不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループを含む）と、不揮発性記憶素子と通信する１以上の管理回路を備える。トリガの前では、１以上の管理回路は、第１セットの１以上のプログラムサイクルを実行する。トリガの後では、１以上の管理回路は、第２セットの１以上のプログラムサイクルを実行する。第１セットの１以上のプログラムサイクルの各々では、不揮発性記憶素子のグループを一緒にプログラムするために１のパルスが用いられる。第１セットの１以上のプログラムサイクルの各々では、不揮発性記憶素子のグループが一緒に検証される。第２セットの１以上のプログラムサイクルの各々では、第１の不揮発性記憶素子群をプログラムするために第１のパルスが使用され、第２の不揮発性記憶素子群をプログラムするために第２のパルスが別途使用される。第２セットの１以上のプログラムサイクルの各々では、不揮発性記憶素子のグループが一緒に検証される。
【００１５】
一実施形態は、不揮発性記憶素子の第１のグループと、不揮発性記憶素子の第２のグループと、不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループと通信する１以上の管理回路と、を備える。所定の状態となる前は、１以上の管理回路は、不揮発性記憶素子の第２のグループとは別に不揮発性記憶素子の第１のグループをプログラムし、不揮発性記憶素子の第２のグループと一緒に不揮発性記憶素子の第１のグループを検証する。所定の状態となった後は、１以上の管理回路は、不揮発性記憶素子の第２のグループと一緒に不揮発性記憶素子の第１のグループをプログラムし、検証する。
【図面の簡単な説明】
【００１６】
【図１】ＮＡＮＤストリングの平面図である。
【図２】ＮＡＮＤストリングの等価回路図である。
【図３】不揮発性メモリシステムのブロック図である。
【図４】メモリアレイの一実施例を示すブロック図である。
【図５】センスブロックの一実施例を示すブロック図である。
【図６】複数の閾値電圧区分の一例および不揮発性メモリの書き込み処理を説明する図である。
【図７Ａ】様々な閾値電圧区分および不揮発性メモリの書き込み処理を説明する図である。
【図７Ｂ】様々な閾値電圧区分および不揮発性メモリの書き込み処理を説明する図である。
【図７Ｃ】様々な閾値電圧区分および不揮発性メモリの書き込み処理を説明する図である。
【図７Ｄ】様々な閾値電圧区分および不揮発性メモリの書き込み処理を説明する図である。
【図７Ｅ】様々な閾値電圧区分および不揮発性メモリの書き込み処理を説明する図である。
【図７Ｆ】様々な閾値電圧区分および不揮発性メモリの書き込み処理を説明する図である。
【図７Ｇ】様々な閾値電圧区分および不揮発性メモリの書き込み処理を説明する図である。
【図７Ｈ】様々な閾値電圧区分および不揮発性メモリの書き込み処理を説明する図である。
【図７Ｉ】様々な閾値電圧区分および不揮発性メモリの書き込み処理を説明する図である。
【図８】不揮発性メモリの書き込み順序の一例を説明するテーブルである。
【図９】不揮発性メモリの書き込み処理の一例を説明するフローチャートである。
【図１０】不揮発性素子の書き込み処理の一例を説明するフローチャートである。
【図１１Ａ】隣接する２つのメモリセルの例の部分図である。
【図１１Ｂ】隣接する２つのメモリセルの例の部分図である。
【図１１Ｃ】隣接する２つのメモリセルの例の部分図である。
【図１２】複数のプログラムパルスの図である。
【図１３】複数のプログラムパルスの図である。
【図１４】複数のプログラムパルスおよび検証パルスの図である。
【図１５】複数のプログラムパルスおよび検証パルスの図である。
【図１６】波形の例を説明する図である。
【図１７】所定の状態となっているか否かを判断する処理の一実施形態を示すフローチャートである。
【図１８】所定の状態となっているか否かを判断する回路の一実施形態を示すブロック図である。
【図１９】所定の状態となっているか否かを判断する処理の一実施形態を示すフローチャートである。
【図２０】所定の状態となっているか否かを判断する回路の一実施形態を示すブロック図である。
【図２１】プログラム処理を変更するトリガポイントを判断する処理の一実施形態を示すフローチャートである。
【図２２】プログラム処理を変更するトリガポイントを判断する処理の一実施形態を示すフローチャートである。
【図２３】プログラム処理を変更するトリガポイントを判断する処理の一実施形態を示すフローチャートである。
【図２４】トリガ電圧を動的に調整する処理の一実施形態を示すフローチャートである。
【図２５】図２４の処理を実行するための一部の要素を図示するブロック図である。
【図２６】トリガ電圧を動的に調整する処理の一実施形態を示すフローチャートである。
【図２７】図２６の処理を実行するための一部の要素を図示するブロック図である。
【発明を実施するための形態】
【００１７】
フラッシュメモリシステムの一例は、ＮＡＮＤ構造を用いており、２つの選択ゲートの間に複数のトランジスタの直列接続を含んでいる。直列に接続されたトランジスタと選択ゲートは、ＮＡＮＤストリングと呼ばれる。図１は、１つのＮＡＮＤストリングを示す平面図である。図２は、その等価回路である。図１と図２に示すＮＡＮＤストリングは、第１（又はドレイン側）選択ゲート１２０と第２（又はソース側）選択ゲート１２２の間に挟まれている、直列に接続されている４つのトランジスタ１００、１０２、１０４及び１０６を有する。選択ゲート１２０は、ビットコンタクト１２６を介してＮＡＮＤストリングをビットラインに接続している。選択ゲート１２２は、ＮＡＮＤストリングをソースライン１２８に接続している。選択ゲート１２０は、選択ラインＳＧＤに適切な電圧を加えることによって制御される。選択ゲート１２２は、選択ラインＳＧＳに適切な電圧を加えることによって制御される。トランジスタ１００、１０２、１０４、及び１０６の夫々は、制御ゲートとフローティングゲートを有している。例えば、トランジスタ１００は、制御ゲート１００ＣＧとフローティングゲート１００ＦＧを備えている。トランジスタ１０２は、制御ゲート１０２ＣＧとフローティングゲート１０２ＦＧを備えている。トランジスタ１０４は、制御ゲート１０４ＣＧとフローティングゲート１０４ＦＧを備えている。トランジスタ１０６は、制御ゲート１０６ＣＧとフローティングゲート１０６ＦＧを備えている。制御ゲート１００ＣＧはワードラインＷＬ３に接続されており、制御ゲート１０２ＣＧはワードラインＷＬ２に接続されており、制御ゲート１０４ＣＧはワードラインＷＬ１に接続されており、制御ゲート１０６ＣＧはワードラインＷＬ０に接続されている。
【００１８】
図１と図２は、ＮＡＮＤストリング内の４個のメモリセルを示しているが、４個のトランジスタの使用は単に一例として提示されている点に留意されたい。ＮＡＮＤストリングは、４個よりも少ない、或いは、４個よりも多いメモリセルを有していてよい。例えば、ＮＡＮＤストリングによっては８個、１６個、３２個、６４個、１２８個などの数のメモリセルを有していてよい。本明細書の説明は、いかなる特定個数のメモリセルを有するＮＡＮＤストリングにも限定されない。
【００１９】
ＮＡＮＤ構造を用いたフラッシュメモリシステムの一般的なアーキテクチャは、いくつかのＮＡＮＤストリングを含んでいる。各ＮＡＮＤストリングは、選択ラインＳＧＳによって制御されるソース選択ゲートによってソースラインに接続されているとともに、選択ラインＳＧＤによって制御されるドレイン選択ゲートによって関連するビットラインに接続されている。各ビットラインとそのビットラインにビットラインコンタクトを介して接続されている夫々のＮＡＮＤストリングは、メモリセルアレイの列を構成する。ビットラインは、複数のＮＡＮＤストリングによって共有されている。典型的には、ビットラインは、ワードラインと直交する方向でＮＡＮＤストリング上を通っており、１以上のセンスアンプと接続されている。
【００２０】
ＮＡＮＤタイプのフラッシュメモリおよびそれらの動作に関連する例は、以下の米国特許／特許出願に記載されており、それらの引用文献は、その全体が参照により本明細書に組み込まれる。米国特許第５，５７０，３１５号、米国特許第５，７７４，３９７号、米国特許第６，０４６，９３５号、米国特許第６，４５６，５２８号、及び、米国公開公報第ＵＳ２００３／０００２３４８号。本明細書における説明は、他のタイプの不揮発性記憶素子と同様に、ＮＡＮＤを加えた他のタイプのフラッシュメモリにも利用可能である。
【００２１】
ＮＡＮＤフラッシュメモリに加えて、不揮発性記憶装置の他のタイプもまた用いることができる。例えば、不揮発性装置は、強誘電体層を用いたメモリセルによって製造されてもよい。前述した導電性のフローティングゲート素子の代わりに、誘電体層が用いられる。誘電体記憶素子を用いたメモリ装置が、「NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell」、IEEE Electron Device Letters、２１巻、１１号、２０００年１１月、５４３から５４５ページに、Eitanらによって開示されている。ＯＮＯ誘電層は、ソース拡散領域とドレイン拡散領域の間のチャンネルを横切って伸びている。あるデータビットの電荷がドレインに近接した誘電層内に局在し、他のデータビットの電荷がドレインに近接した誘電層内に局在する。例えば、米国特許第５，７６８，１９２号および６，０１１，７２５号では、２つの酸化シリコン層に挟まれたトラップ用の誘電層を有する不揮発性メモリセルが開示されている。マルチステートのデータ記憶は、誘電層内の空間的に離れた電荷蓄積領域の２値の状態を、別々に読み出すことで行われる。
他のタイプのメモリ素子も使用できる。
【００２２】
図３は、複数のメモリセル（例えば、ＮＡＮＤマルチステートフラッシュメモリなど）のページ（または他のユニット）に平行して読み出しおよびプログラムを行うリード／ライト回路を有する記憶デバイス２１０を示している。記憶デバイス２１０は１以上のメモリダイまたはチップ２１２を備えていてもよい。メモリダイ２１２は、メモリセルの（２次元又は３次元の）アレイ２００、制御回路２２０、及び、リード／ライト回路２３０Ａと２３０Ｂを有する。一実施形態では、様々な周辺回路によるメモリアレイ２００へのアクセスはアレイの両側で対称的に実装されており、これにより、各側のアクセスライン及び回路の密度が半分に低減される。リード／ライト回路２３０Ａ及び２３０Ｂは、複数のセンスブロック３００を有しており、それらのセンスブロック３００によって１ページのメモリセルを並列に読み出し又はプログラムすることができる。メモリアレイ２００は、行デコーダ２４０Ａと２４０Ｂを介したワードラインと、列デコーダ２４２Ａと２４２Ｂを介したビットラインによってアドレス指定される。ワードラインおよびビットラインは、コントロールラインの一例である。典型的な実施形態では、コントローラ２４４は、１つ以上のメモリダイ２１２のような同じメモリデバイス２１０（例えば、取り外し可能なストレージカード又はパッケージ）内に含まれる。命令、及びデータは、ライン２３２を介してホストとコントローラ２４４の間で転送され、また、ライン２３４を介してコントローラと１つ以上のメモリダイ２１２の間で転送される。
【００２３】
制御回路２２０は、リード／ライト回路２３０Ａと２３０Ｂと協調して、メモリアレイ２００に対してメモリ動作を実行する。制御回路２２０は、ステートマシン２２２、オンチップアドレスデコーダ２２４、及び電力制御モジュール２２６を有している。ステートマシン２２２は、メモリ動作のチップレベルの制御を提供する。オンチップアドレスデコーダ２２４は、ホスト又はメモリコントローラによって用いられるアドレスと、デコーダ２４０Ａ、２４０Ｂ、２４２Ａ及び２４２Ｂによって用いられるハードウェアアドレスの間のアドレスインタフェースを提供する。電力制御モジュール２２６は、メモリ動作中のワードライン及びビットラインに供給される電力及び電圧を制御する。一実施形態では、電力制御モジュール２２６は、供給電力より大きな電圧を作り出すことができる一つ以上のチャージポンプを有する。
【００２４】
一実施形態では、制御回路２２０、電力制御回路２２６、デコーダ回路２２４、ステートマシン回路２２２、デコーダ回路２４２Ａ、デコーダ回路２４２Ｂ、デコーダ回路２４０Ａ、デコーダ回路２４０Ｂ、リード／ライト回路２３０Ａ、リード／ライト回路２３０Ｂ、及び／又はコントローラ２４４の一つ又は幾つかの組合せは、１つの管理回路、或いは複数の管理回路群と称されることがある。１以上の管理回路は、本明細書で記述する処理を実行する。
【００２５】
図４は、メモリセルアレイ２００の例示的な構造を示す。一実施形態においては、メモリセルのアレイは、数多くのブロックに分割される（例えば、ブロック０−１０２３や、その他の量など）。フラッシュＥＥＰＲＯＭシステムに一般的であるように、ブロックは消去の単位である。すなわち、各ブロックは共に消去される最小数のメモリセルを含む。その他の消去の単位を用いた装置も使用可能である。
【００２６】
１のブロックは、ビットライン（例えばビットラインＢＬ０−ＢＬ６９６２３）およびワードライン（ＷＬ０、ＷＬ１、ＷＬ２、ＷＬ３）を介してアクセスされるＮＡＮＤストリングのセットを備えている。図４は、直列接続されることでＮＡＮＤストリングを形成している、４つのメモリセルを示している。各々のＮＡＮＤストリングに４つのセルが含まれているが、４個よりも少ない、或いは、４個よりも多いメモリセルを有していてよい（例えば、ＮＡＮＤストリングによっては、１６個、３２個、６４個、１２８個やその他の数のメモリセルを有していてもよい。）各ＮＡＮＤストリングの一端は、（選択ラインＳＧＤに接続されている）ドレイン選択ゲートを介して対応するビットラインに接続されており、他端は、（選択ラインＳＧＳに接続されている）ソース選択ゲートを介してソースラインに接続されている。
【００２７】
各ブロックは、通常、複数のページに分割される。一実施形態においては、ページはプログラムの単位である。その他のプログラムの単位も使用可能である。通常、１つ又は複数ページのデータが１列のメモリセルに記憶される。例えば、データの１以上のページが、共通ワードラインに接続されたメモリセルに記憶されてもよい。１つのページは、１つ又は複数のセクタを記憶できる。１つのセクタは、ユーザデータとオーバヘッドデータ（システムデータとも呼ばれる）を含む。オーバヘッドデータは、通常、セクタのユーザデータから算出される誤り訂正符号（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ  Ｃｏｄｅ：ＥＣＣ）とヘッダ情報を含む。コントローラ（または他の構成要素）の一部が、データがアレイにプログラムされているときにＥＣＣを計算し、データがアレイから読み出されているときにＥＣＣのチェックも行う。代わりに、ＥＣＣ及び／又は他のオーバヘッドデータはそれらが関係するユーザデータとは異なるページに記憶され、または異なるブロックに記憶されることがある。ユーザデータのセクタは通常、磁気ディスクドライブ内のセクタサイズに相当する５１２バイトである。例えば８ページから３２、６４、１２８、或いはそれ以上のページまでの多数のページが１ブロックを形成する。異なるサイズのブロックと配置も採用することができる。
【００２８】
図５は、センスモジュール４８０と呼ばれるコア部と共通部４９０に分割された個々のセンスブロック３００のブロック図である。一実施形態では、各ビットラインに対して個別のセンスモジュール４８０を用意し、一組の複数センスモジュール４８０に対して一つの共通部４９０を用意してもよい。一例として、１個のセンスブロックは、１個の共通部４９０と８個のセンスモジュール４８０を有している。グループ内の各センスモジュールは、データバス４７２を介して協働する共通部と通信する。一例としては、その全体を参照することにより本明細書に組み込まれる米国特許出願公開公報２００６／０１４０００７号を参照されたい。
【００２９】
センスモジュール４８０は、接続されたビットライン内の伝導電流が予め決められたレベルより高いか低いかを判定するセンス回路４７０を備えている。幾つかの実施形態では、センスモジュール４８０は、センスアンプと一般に呼ばれる回路を有する。センスモジュール４８０は、さらに、接続されたビットラインに電圧状態を設定するために用いられるビットラインラッチ４８２を有している。例えば、ビットラインラッチ４８２内で予め決められた状態がラッチされることによって、接続されたビットラインを、プログラム禁止を指定する状態（例えば、Ｖｄｄ）に引き上げる（プル）する。
【００３０】
共通部４９０は、プロセッサ４９２、データラッチ群４９４、及び、データラッチ群４９４とデータバス４２０の間を接続するＩ／Ｏインタフェース４９６を備えている。プロセッサ４９２は計算を実行する。例えば、その機能の１つは、センスされたメモリセル内に記憶されているデータを特定し、特定されたデータをデータラッチ群内に記憶することである。データラッチ群４９４は、読み出し動作において、プロセッサ４９２によって特定されたデータビット群を記憶するために用いられる。データラッチ群４９４は、プログラム動作において、データバス４２０から取り込んだデータビット群を記憶するためにも用いられる。取り込まれるデータビット群は、メモリ内にプログラムする予定のライトデータ（プログラムデータ）を表す。 Ｉ／Ｏインタフェース４９６は、データラッチ群４９４とデータバス４２０の間のインタフェースを提供する。
【００３１】
読み出し又はセンス中には、システムの動作はステートマシン２２２の制御下にあり、ステートマシン２２２は（電力制御モジュール２２６を用いて）アドレス指定されたセルへの種々の制御ゲート電圧の供給を制御する。メモリに用意された様々なメモリ状態に対応する様々な既定制御ゲート電圧を受けるなかで、センスモジュール４８０はこれらの電圧の１つに遷移し、バス４７２を介してセンスモジュール４８０からプロセッサ４９２に出力が提供される。その時点で、プロセッサ４９２は、センスモジュールの遷移イベントと、ステートマシンから入力ライン４９３を介して加えられた制御ゲート電圧についての情報によって、結果としてのメモリ状態を特定する。それから、プロセッサは、メモリ状態に対するバイナリ符号化を計算し、得られたデータビット群をデータラッチ群４９４に格納する。コア部の別の実施形態では、ビットラインラッチ４８２は、センスモジュール４８０の出力をラッチするラッチ、及び、上記のようなビットラインラッチの二つの役割を持つ。
【００３２】
当然のことながら、いくつかの実装形態では複数のプロセッサ４９２を有することができる。一実施形態では、各プロセッサ４９２は出力ライン（図５には示されていない）を有し、各出力ラインは共にワイヤードＯＲ（配線論理和）接続される。いくつかの実施形態では、出力ラインは、ワイヤードＯＲラインに接続される前段階で反転される。この構成は、ワイヤードＯＲの結果を受け取るステートマシンが、プログラムされる全てのビットがいつ所望のレベルに到達したかを判断できるので、プログラム処理の完了時点を判定するプログラム検証処理における素早い判定を可能にする。例えば、各ビットがその所望のレベルに到達すると、そのビット用の論理「０」がワイヤードＯＲラインに送られる（又はデータ「１」が反転される）。全てのビットがデータ「０」を出力すると（又はデータ「１」が反転されると）、ステートマシンはプログラム処理の完了を知る。各プロセッサが８個のセンスモジュールと通信する実施形態では、（いくつかの実施形態において）ステートマシンはワイヤードＯＲラインを８回読み出す必要があってもよいし、あるいは、協働するビットラインの結果を蓄積するための論理をプロセッサ４９２に追加し、ステートマシンがワイヤードＯＲラインを一度だけ読み出せば良いようにしてもよい。
【００３３】
データラッチスタック４９４は、センスモジュールに対応するデータラッチのスタックを有する。一実施形態では、センスモジュール４８０毎に３個（或いは４個或いはその他の数の）データラッチが存在する。一実施形態では、ラッチは夫々１ビットである。
【００３４】
プログラム又は検証処理の間、プログラムされるべきデータはデータバス４２０から１組のデータラッチ４９４内に記憶される。検証処理の間、プロセッサ４９２は、所望のメモリ状態に対する検証メモリ状態を監視する。その２つが一致したとき、プロセッサ４９２は、プログラム禁止を指定する状態にビットラインを引き上げる（プルする）ようにビットラインラッチ４８２を設定する。これにより、たとえプログラムパルスがその制御ゲートに影響しても、ビットラインに接続したメモリセルがさらにプログラムされないようにすることができる。他の実施形態では、プロセッサが最初にビットラインラッチ４８２をロードし、センス回路が検証処理中にそれに禁止値を設定する。
【００３５】
いくつかの実装形態では、（必須ではないが）データラッチ群はシフトレジスタとして実装され、内部に記憶されたパラレルデータをデータバス４２０用にシリアルデータに変換したり、その逆を行ったりする。好適な一実施形態では、ｍ個のメモリセルのリード／ライトブロックに対応する全てのデータラッチを相互にリンクしてブロックシフトレジスタを構成し、シリアル転送によってデータのブロックを入力または出力できるようにする。特に、リード／ライトモジュールの一群のデータラッチのそれぞれが、データバスへ或いはデータバスからデータを順に転送するようにリード／ライトモジュールのバンクを構成し、一群のデータラッチがあたかもリード／ライトブロック全体のシフトレジスタの一部であるかのようにしてもよい。
【００３６】
読み出し動作やセンスアンプについてのさらなる情報は次の文献に記載されている。（１）米国特許出願公開２００４／００５７２８７号、「Non-Volatile Memory And Method With Reduced Source Line Bias Errors」、２００４年３月２５日公開、（２）米国特許出願公開２００４／０１０９３５７号、「Non-Volatile Memory And Method with Improved Sensing」、２００４年６月１０日公開、（３）米国特許出願公開２００５０１６９０８２号、（４）米国特許出願公開２００６／０２２１６９２号、「Compensating for Coupling During Read Operations of Non-Volatile Memory」、発明者Ｊｉａｎ  Ｃｈｅｎ、２００５年４月５日出願、及び、（５）米国特許出願第１１／３２１，９５３号、「Reference Sense Amplifier For Non-Volatile Memory」、発明者Ｓｉｕ  Ｌｕｎｇ  Ｃｈａｎ及びＲａｕｌ−Ａｄｒｉａｎ  Ｃｅｒｎｅａ、２００５年１２月２８日出願。これら５個の特許文献の全ては、その全体を参照することにより本明細書に組み込まれる。
【００３７】
成功した（検証を含む）プログラム処理の最後において、メモリセルの閾値電圧は、必要に応じて、プログラムされたメモリセルの１つ又は複数の閾値電圧の区分内、或いは、消去されたメモリセルの閾値電圧の区分内となる。各メモリセルが３ビットデータを記憶する場合における、メモリセルアレイについての閾値電圧区分（或いはデータ状態）の例を図６に示す。この一方で、他の実施形態では、１メモリセルあたり３ビットよりも多い、或いは３ビットよりも少ないデータを記憶するとしてもよい（例えば、１メモリセルあたり４ビット以上のデータを記憶するなど）。
【００３８】
図６の例では、各々のメモリセルは３ビットのデータを保持する。よって、８つの有効なデータ状態Ｓ０−Ｓ７が存在する。一実施形態では、データ状態Ｓ０は０ボルトより低く、データ状態Ｓ１−Ｓ７は０ボルトより高い。他の実施形態として、８つのデータ状態の全てが０ボルトより高い場合や、その他のアレンジが実行可能である。一実施形態では、Ｓ０の閾値電圧区分がＳ１−Ｓ７の区分よりも広い。
【００３９】
各々のデータ状態は、メモリセルに記憶された３ビットデータの固有の値に対応する。一実施形態では、S0=111，S1=110，S2=101，S3=100，S4=011，S5=010，S6=001，S7=000，である。データ状態Ｓ０−Ｓ７の他のマッピングも使用することができる。一実施形態では、１つのメモリセルに記憶されている全てのビットのデータは、同一の論理ページに記憶される。他の実施形態では、１つのメモリセルに記憶されているビットのデータの各々は、異なるページに対応する。従って、３ビットのデータを記憶している１つのメモリセルは、第１ページ、第２ページ、第３ページのデータを含んでいる。いくつかの実施形態では、同一のワードラインに接続された全てのメモリセルが、同一の３ページのデータを記憶するとされる。いくつかの実施形態では、１つのワードラインに接続されたメモリセルが異なるセットのページに分類される（例えば、偶数および奇数ビットラインや、他の配列によって）。
【００４０】
いくつかの先行技術の装置では、メモリセルが消去されて状態Ｓ０となる。メモリセルは、状態Ｓ０から状態Ｓ１−Ｓ７の何れかへプログラムされてもよい。一実施形態では、フルシーケンスプログラミングとして知られている、消去された状態Ｓ０からプログラムされた状態Ｓ１−Ｓ７の何れかに直接にプログラムする方法を行うことができる。例えば、メモリセル群内の大多数のメモリセルが消去状態Ｓ０になるように、プログラム対象のメモリセル群が最初に消去されてもよい。あるメモリセルが状態Ｓ０から状態Ｓ１へプログラムされる間に、他のメモリセルが状態Ｓ０から状態Ｓ２へ、状態Ｓ０から状態Ｓ３へ、状態Ｓ０から状態Ｓ４へ、状態Ｓ０から状態Ｓ５へ、状態Ｓ０から状態Ｓ６へ、状態Ｓ０から状態Ｓ７へ、プログラムされる。フルシーケンスプログラミングは、図６の７つの曲線状の矢印を用いて図示されている。
【００４１】
図７Ａ−７Ｉは、何れの特定のメモリセルについても、前のページの隣接メモリセルにプログラムが行われた後で、その特定ページに関連する特定のメモリセルにプログラムを行うことによってフローティングゲート間の結合現象を低減する、不揮発性記憶素子のプログラムの他の処理方法を示している。図７Ａ−Ｉの処理は、３つのプログラム処理ステップである。第１ステップに先立ち、状態Ｓ０の消去閾値区分にするために、メモリセルを消去することができる。
【００４２】
図７Ａ−７Ｉの処理では、各々のメモリセルが３ビットのデータを記憶しており、各々のビットは異なるページに属すると仮定する。データの第１ビット（一番左のビット）は、第１ページと関連する。真ん中のビットは、第２ページと関連する。一番右のビットは、第３ページと関連する。データとデータ状態との相関は、以下の通りである：Ｓ０＝１１１、Ｓ１＝１１０、Ｓ２＝１０１、Ｓ３＝１００、Ｓ４＝０１１、Ｓ５＝０１０、Ｓ６＝００１、Ｓ７＝０００。しかしながら他の実施形態では、他のデータコード化配列も使用可能である。
【００４３】
（図７Ａに示すように）第１ページにプログラムする際において、ビットをデータ“１”にする場合には、メモリセルは状態Ｓ０が維持される（閾値電圧区分５０２）。ビットをデータ“０”にする場合には、メモリセルにプログラムが行われ、状態Ｓ４となる（閾値電圧区分５０４）。隣接するメモリセルがプログラムされた後、隣接するフローティングゲート間の容量性カップリングにより、図７Ｂに示すように、状態Ｓ４が広くなることがある。状態Ｓ０も広くなることがあるが、Ｓ０とＳ１の間には十分な余裕があるため、その影響を無視できる。フローティングゲート間の結合現象についての詳細は、米国特許第５，８６７，４２９号および米国特許第６，６５７，８９１号に開示されており、両公報は全体を参照することにより本明細書に組み込まれる。
【００４４】
第２ページをプログラムする際において（図７Ｃを参照）、メモリセルが状態Ｓ０であり第２ページのビットをデータ“１”にする場合には、メモリセルは状態Ｓ０が維持される。いくつかの実施形態では、第２ページのプログラム処理は閾値電圧区分５０１を狭めて新たなＳ０とすることができる。メモリセルが状態Ｓ０であり第２ページにプログラムするデータが“０”である場合には、メモリセルは状態Ｓ０へ移される（閾値電圧区分５０６）。状態Ｓ２は、Ｃ＊の検証ポイント（最低電圧）を有する。メモリセルが状態Ｓ４でありメモリセルにプログラムするデータが “１”である場合には、メモリセルは状態Ｓ４が維持される。しかしながら図７Ｃに示すように、状態Ｓ４についてメモリセルを閾値電圧区分５０４から閾値電圧区分５０８へ移動することによって、状態Ｓ４は狭められる。閾値電圧区分５０８は、（閾値電圧区分５０４のＥ＊＊と比較して）Ｅ＊の検証ポイントを有する。メモリセルが状態Ｓ４であり第２ページにプログラムするデータが“０”である場合には、メモリセルの閾値電圧は、Ｇ＊の検証ポイントを有する状態Ｓ６（閾値電圧区分５１０）へ移動される。
【００４５】
隣接するメモリセルがプログラムされた後、隣接するフローティングゲート間の結合により、図７Ｄの閾値電圧区分５０６，２０８，５１０に示すように、状態Ｓ２，Ｓ４，Ｓ６が広くされる。時には、状態Ｓ０も広くなる場合がある。
【００４６】
図７Ｅ，７Ｆ，７Ｇおよび７Ｈは、第３ページのプログラムを示している。プログラムを表すために１つの図を用いてもよいが、見やすくするために、処理を４つの図に示す。第２ページがプログラムされた後では、夫々のメモリセルは状態Ｓ０、Ｓ２，Ｓ４、Ｓ６の何れかとなる。図７Ｅは、第３ページにプログラムが行われる、状態Ｓ０のメモリセルを表している。図７Ｆは、第３ページにプログラムが行われる、状態Ｓ２のメモリセルを表している。図７Ｇは、第３ページにプログラムが行われる、状態Ｓ４のメモリセルを表している。図７Ｈは、第３ページにプログラムが行われる、状態Ｓ６のメモリセルを表している。図７Ｉは、メモリセル群に図７Ｅ、７Ｆ、７Ｇ、７Ｈの処理が（一斉に、または連続的に）実行された後における、閾値電圧区分を示している。
【００４７】
メモリセルが状態Ｓ０であり、第３ページのデータが“１”である場合には、メモリセルは状態Ｓ０が維持される。第３ページのデータが“０”である場合には、メモリセルの閾値電圧がＢの検証ポイントを有する状態Ｓ１へ上昇される（図７Ｅ参照）。
【００４８】
メモリセルが状態Ｓ２であり、第３ページにプログラムされるデータが“１”である場合には、メモリセルは状態Ｓ２が維持される（図７Ｆ参照）。しかしながら幾つかのプログラムでは、閾値区分５０６を狭めて、Ｃボルトの検証ポイントを有する新たな状態Ｓ２とすることができる。第３ページにプログラムされるデータが“０”である場合には、メモリセルはＤボルトの検証ポイントを有する状態Ｓ３にプログラムされる。
【００４９】
メモリセルが状態Ｓ４であり、第３ページにプログラムされるデータが“１”である場合には、メモリセルは状態Ｓ４が維持される（図７Ｇ参照）。しかしながら幾つかのプログラムでは、閾値区分５０８を狭めて、Ｅの検証ポイントを有する新たな状態Ｓ４とすることができる。メモリセルが状態Ｓ４であり、第３ページにプログラムされるデータが“０”である場合には、メモリセルの閾値電圧がＦの検証ポイントを有する状態Ｓ５へ上昇される。
【００５０】
メモリセルが状態Ｓ６であり、第３ページにプログラムされるデータが“１”である場合には、メモリセルは状態Ｓ６が維持される（図７Ｈ参照）。しかしながら幾つかのプログラムでは、閾値区分５１０を狭めて、Ｇの検証ポイントを有する新たな状態Ｓ６とすることができる。第３ページのデータが“０”である場合には、メモリセルの閾値電圧がＨの検証ポイントを有する状態Ｓ７へプログラムされる。第３ページのプログラムが終了すると、メモリセルは図７Ｉに示す８つの状態のうち、何れか１つの状態となる。
【００５１】
図８は、セットまたは複数のメモリセルの(複数の)ページへのプログラム順序の一例を示す図である。このテーブルは、図４の４本のワードライン（ＷＬ０、ＷＬ１、ＷＬ２およびＷＬ３）についてのプログラム順序を表している。しかしながら、このテーブルは、４本より多いまたは少ないワードラインについても適用可能である。ＷＬ０に接続されたメモリセルの第１ページがプログラムされ、続いてＷＬ１に接続されたメモリセルの第１ページがプログラムされ、続いてＷＬ０に接続されたメモリセルの第２ページがプログラムされ、続いてＷＬ２に接続されたメモリセルの第１ページがプログラムされ、続いてＷＬ１に接続されたメモリセルの第２ページがプログラムされ、などとなる。
【００５２】
図９は、選択されたワードラインに接続されているメモリセルのプログラム処理を説明するフローチャートである。図９の処理の一の実装形態では、メモリセルの劣化を均一に維持するために、メモリセルには事前プログラムが行われる（ステップ５５０）。一実施形態では、メモリセルは、状態７や、ランダムパターンや、その他のパターンに事前プログラムされる。いくつかの実装形態では、事前プログラムを行う必要がない。
【００５３】
ステップ５５２では、プログラムに先立って、メモリセルが（ブロック単位又は他の単位で）消去される。一実施形態では、ソースとビットラインをフローティング状態にしておきながら、選択されたブロックのワードラインを接地し、十分な時間の間ｐウェルを消去電圧（例えば２０ボルト）にまで上昇させることによってメモリセルが消去される。容量性カップリングのため、非選択ワードライン、ビットライン、選択ライン、及び、ソースもまた、消去電圧のかなりの割合の電圧まで上昇する。そのため、選択されたメモリセルのトンネル酸化物層に強力な電場が加わり、主としてファウラ−ノルドハイムトンネル効果によってフローティングゲートの電子が基板側に放出されて、選択されたメモリセルのデータが消去される。電子がフローティングゲートからｐ−ウェル領域に移動するにつれて、選択されたセルの閾値電圧が低下する。消去は、メモリアレイ全体、別々のブロック、又はセルの他の単位で行うことができる。一実施形態では、メモリセルが消去された後、全ての消去済みのメモリセルが状態Ｓ０となる（図６参照）。
【００５４】
ステップ５５４では、消去されたメモリセルの消去閾値電圧の区分を狭めるために、ソフトプログラムが実行される。いくつかのメモリセルは、消去処理の結果として必要以上に低い消去状態にあってよい。ソフトプログラムにより、より深く消去されたメモリセルの閾値電圧ほど、消去検証レベルに近づくように移動させることができる。例えば図６に示すように、ステップ５５４は、状態Ｓ０と関連する閾値電圧区分を狭めるステップを含むことがあり得る。ステップ５５６では、本明細書で述べたとおり、ブロックのメモリセルにプログラムが行われる。図９の処理は、上述した多様な回路を用いたステートマシンの指示によって実行されうる。他の実施形態では、上述した多様な回路を用いたコントローラの指示によって実行されうる。図９の処理の実行後に、ブロックのメモリセルは読み出し可能となる。
【００５５】
図１０は共通ワードラインに接続されているメモリセルにプログラムを実行する際のプロセスの一実施形態を表すフローチャートである。図１０のプロセスは、図９のステップ５５６において１回または複数回実施されうる。例えば、図１０の処理は、図６のフルシーケンスプログラミングを実行するために使用することができ、その場合には図１０の処理は各々のワードラインについて１回実行されうる。一実施形態では、プログラムプロセスは、ソースラインの最も近くに位置するワードラインから開始して、ビットライン側へ向かって順番に実施される。図１０のプロセスは、図７Ａ−Ｉのプログラム処理に対して、ワードラインのデータのページにプログラムを行うためにも使用しうる。この場合には、各々のワードラインについて図１０の処理を３回行うことができる。他の変更形態もまた使用可能である。図１０の処理はステートマシン２２２の指示によって実行される。
【００５６】
通常、プログラム処理において制御ゲートに印加されるプログラム電圧は、連続するパルスとして印加される。プログラムパルスの合間には、検証処理を可能とするための複数の検証パルスが存在する。多くの実装形態では、連続するパルスの各々の大きさが、所定のステップサイズで増加する。図１０のステップ６０８では、プログラム電圧（Ｖｐｇｍ）が初期値（例えば、１２ボルトまでの電圧など、その他の適切な値）に初期化されると共に、ステートマシン２２２によって維持されるプログラムカウンタＰＣが１に初期化される。ステップ６０８において、プログラム信号Ｖｐｇｍのプログラムパルスが、選択ワードライン（プログラム用に選択されたワードライン）に印加される。非選択ワードラインは、従来知られる昇圧方法を実行することで、１以上の昇圧電圧（例えば、８ボルトまでの電圧）を受ける。メモリセルがプログラムされる場合には、対応するビットラインが接地される。一方、メモリセルが現在の閾値電圧を維持する場合には、プログラムを禁止するために、対応するビットラインがＶＤＤに接続される。昇圧方式に関するさらなる情報は、米国特許第６，８５９，３９７号、および、米国特許出願第１１／５５５，８５０号に記載されている。これらの両方の文献の内容は、その全体を参照することにより本明細書に組み込まれる。
【００５７】
ステップ６１０では、選択ワードラインに接続されている全てのメモリセルが一緒にプログラムされるように、選択ワードラインに接続されている全てのメモリセルにプログラムパルスが一斉に印加される。すなわち、全てのメモリセルは、同一時間（または重複した時間）にプログラムされる。このようにして、選択ワードラインに接続されている全てのメモリセルは、プログラム対象から除外されない限り、一斉に閾値電圧を変更することができる。
【００５８】
ステップ６１２では、適切な一組の目標レベルを使用して、選択されたメモリセルのデータ状態が検証される。図１０のステップ６１２は、１つ以上の検証処理を有している。一般的に、検証処理および読み出し処理の期間では、関連するメモリセルの閾値電圧がそれらのレベルに到達しているか否かを判断するために、選択されたワードラインが電圧に接続され、その電圧レベルが各々の読み出しおよび検証処理において特定される（例えば、図７ＩのＢ，Ｃ，Ｄ，Ｅ，Ｆ，ＧおよびＨを参照）。ワードライン電圧を印加した後に、ワードラインに印加された電圧に応じてメモリセルがターンオンしたか否かを判定するために、メモリセルの伝導電流が測定される。所定値よりも大きい伝導電流が測定される場合には、メモリセルがターンオンしており、ワードラインに印加された電圧がメモリセルの閾値電圧よりも大きいと推定される。所定値よりも大きい伝導電流が測定されない場合には、メモリセルがターンオンしておらず、ワードラインに印加された電圧がメモリセルの閾値電圧よりも大きくないと推定される。
【００５９】
読み出しまたは検証処理において、メモリセルの伝導電流を測定するためには多くの方法がある。一例としては、センスアンプの専用キャパシタへの伝導電流の放電速度または充電速度によって、メモリセルの伝導電流を測定してもよい。別の例としては、選択したメモリセルの伝導電流が、メモリセルを備えるＮＡＮＤストリングの対応するビットラインを放電させる（または放電させない）よう構成してもよい。ビットラインが放電されたか否かを調べるために、一定期間後に、ビットラインの電圧が測定される。ここで述べる技術は、検証および読み出しについての他の周知技術ついても適用しうることに留意されたい。検証および読み出しに関する更なる情報は、その全体を参照することにより本明細書に組み込まれる下記の特許文献に開示されている。（１）米国特許出願公開２００４／００５７２８７号、「Non-Volatile Memory And Method With Reduced Source Line Bias Errors」、２００４年３月２５日公開、（２）米国特許出願公開２００４／０１０９３５７号、「Non-Volatile Memory And Method with Improved Sensing」、２００４年６月１０日公開、（３）米国特許出願公開２００５０１６９０８２号、（４）米国特許出願公開２００６／０２２１６９２号、「Compensating for Coupling During Read Operations of Non-Volatile Memory」、発明者Ｊｉａｎ  Ｃｈｅｎ、２００５年４月５日出願。
【００６０】
選択されたメモリセルの閾値電圧が適切な目標レベルに達していることが検知された場合には、例えばそのメモリセルのビットライン電圧がその後のプログラムパルスの間にＶｄｄまで高められることにより、そのメモリセルは以後のプログラムから除外される。加えて、プログラミング処理の間に、パス電圧（例えば、１０ボルトまでの電圧）が非選択ワードラインに印加される。（パス電圧とされている）非選択ワードラインは（Ｖｄｄとされている）非選択ビットラインに接続され、非選択ビットラインのチャンネルに（例えば、約８ボルトの）電圧を発生させる。これにより、プログラムが防止される。メモリセルをプログラム対象から除外するための他の手法も、本明細書で述べられている技術に用いることが可能である。
【００６１】
図１０へ戻り、ステップ６１４において、全てのメモリセルが目標閾値電圧に到達したか否かが確認される。到達している場合には、全ての選択されたメモリセルがプログラムされていると共に目標状態が検証されているため、プログラム処理が完了し成功している。ステップ６１６において「合格」ステータスが通知される。ステップ６１４の幾つかの実装形態では、少なくとも予め決められた数のメモリセルが適切にプログラムされたことが検証されたか否かがチェックされることに留意されたい。この予め決められた数は、全メモリセル数よりも少なくてもよく、従って、全メモリセルが適切な検証レベルに到達する前にプログラム処理が終了し得る。プログラムに成功しなかったメモリセルは、読み出し処理におけるエラー訂正によって訂正され得る。
【００６２】
ステップ６１４において、全てのメモリセルが目標閾値電圧に到達しているのではないと判断された場合、プログラム処理は継続する。ステップ６１８では、プログラムカウンタＰＣがプログラム限度値（ＰＬ）に対してチェックされる。プログラム限度値の一例は２０である。しかしながら、これ以外の値の使用も可能である。プログラムカウンタＰＣがプログラム限度値未満でない場合には、ステップ６３０にて、プログラムに成功していないメモリセルの数が既定数以下かどうかが判定される。プログラムに失敗したメモリセルの数が既定数以下の場合には、ステップ６３２にて、プログラム処理に合格のフラグが立てられ、合格のステータスが通知される。多くの場合、プログラムに失敗したメモリセルは、読み出し処理においてエラー訂正を使って訂正され得る。しかし、プログラムに失敗したメモリセルの数が既定数よりも多い場合には、ステップ６３４にて、プログラム処理に失敗したことを示すフラグが立てられ、失敗ステータスが通知される。
【００６３】
ステップ６１８において、プログラムカウンタＰＣがプログラム制限値ＰＬ未満であると判断された場合には、ステップ６２０に進む。ステップ６２０では、プログラムカウンタＰＣが１増加され、プログラム電圧Ｖｐｇｍが次の大きさに段階的に増加される。例えば、次のパルスが前のパルスに対して１ステップサイズ分（例えば、０．１〜０．４ボルトのステップサイズ）大きくされる構成としてもよい。ステップ６２２において、トリガが発生するか否かが判断される。一実施形態では、プログラム電圧Ｖｐｇｍ（例えば、プログラムパルス）がトリガ電圧に到達すると、トリガが発生する。他の実施形態では、（例えば、時間、プログラムされたビット数、パルスの数、電流、等に基づいた）他のトリガを用いることもできる。トリガが発生していない場合には、処理がステップ６１０へ戻る。そして、（目標とする状態に到達したために除外されたメモリセルを除く）全てのビットラインにプログラムが行われるように、（ステップ６２０で設定された新たな大きさの）次のプログラムパルスが選択ワードラインに印加される。ステップ６１０以降においては、上述した通りに処理が続行する。
【００６４】
容量性カップリングを引き起こす除外状態を検知するまたは示すために、トリガがセットされる。一般に、隣接するフローティングゲート間に、容量性カップリングが存在する。隣接するフローティングゲート（第１のフローティングゲートおよび第２のフローティングゲート）の両方がプログラムされる状態では、容量性カップリングは一定および／または予測可能な状態が維持される。第１のフローティングゲートが目標の状態に達したためプログラムから除外されると、昇圧のために第１のフローティングゲートの電位が高くなる。第１のフローティングゲートの電位が高くなることによって、第２のフローティングゲートへの容量性カップリングが増大する。より大きな容量性カップリングが、第２のフローティングゲートの電圧を上昇させることによって、第２のフローティングゲートのプログラム速度を増加させる場合がある。これにより、オーバープログラミングが発生しうる。オーバープログラミングの危険性は、（隣接するメモリセルの両方がまだプログラムされている）遅いプログラムから、（プログラムされているメモリセルに隣接するメモリセルのプログラムが禁止された）速いプログラムへの移行時に大きくなる。
【００６５】
図１１Ａは、２つの隣接するフローティングゲート８０６および８１０を示している。フローティングゲート８０６および８１０の各々は、アクティブエリア８０４および８０８の各々の上方に位置している。共通ワードラインポリシリコン層８０２は、両方のフローティングゲートのコントロールゲートとして機能し、また、フローティングゲート間のシールド８０５を形成する。図１１Ａは、両方のフローティングゲートがプログラムされている状態を示している。そのため、アクティブエリアは０ボルトにされている。上述したように、一方のフローティングゲートがプログラムから除外されると、そのアクティブエリアは７から１０ボルトの値まで昇圧される。それにより、各フローティングゲートの電位が上昇すると共に、隣接するフローティングゲートへの容量性カップリングが増大する。その結果、隣接するフローティングゲートのプログラムが速くなる。速いプログラミングは、オーバープログラミングを発生させることがある。
【００６６】
フローティングゲート８０６と８１０の間のシールド８０５は、容量性カップリングを縮小させる働きをする。しかし、大きな電圧がワードラインに印加されると、ポリシリコンのシールド８０５が空乏化する。例えば、図１１Ｂは、ワードラインポリシリコン層８０２に点線８１２が引かれた、同一の２つのフローティングゲート８０６と８１０を示している。点線８１２の下側の領域は、空乏化されている。点線８１２の下側の領域が空乏化されているため、上述した容量性カップリングが十分に遮蔽されない。
【００６７】
図１１Ｃは、点線８１２の下方に空乏化された領域を有する、同一の２つのフローティングゲート８０６と８１０を示している。しかしながら、図１１Ｃは、フローティングゲート８０６がプログラムから除外されている状態を示している。よって、アクティブエリア８０４が高電圧となることで、フローティングゲート８０６が高電圧となる。フローティングゲート８０６が高電圧となりシールド８０５が空乏化されるため、フローティングゲート８０６と８１０との間の容量性カップリングにより、フローティングゲート８１０がより高電位となり、その結果プログラムが高速化する。
【００６８】
一実施形態では、図１１Ｃに関して説明したように、どの程度のワードライン電圧でワードラインポリシリコン層８０２が空乏化してカップリングが発生するのかを突き止めるために、デバイス特性（シミュレーションを含む）が使用される。他の実施形態では、実際のシリコンチップをテストすることで、ワードライン電圧を測定することができる。いくつかの実施形態では、シリコンチップの全てを検査することができる。他の実施形態では、部品のサンプルを検査し、測定された電圧を部品のグループ全体に使用することもできる。空乏化が始まる電圧を決定する他の方法を使用することもできる。
【００６９】
上述した、プログラム速度を増加させるために十分な空乏化を発生させるワードライン電圧が、トリガ電圧として、図１０のステップ６２２で使用される。Ｖｐｇｍのプログラムパルスの大きさが、ワードラインポリシリコン層に十分な空乏を発生させてカップリングを許容するトリガ電圧まで到達すると、トリガ条件が満たされ、処理が図１０のステップ６２４へ進む。ワードラインポリシリコン層が空乏化しカップリングを許容する状態で、一方の隣接メモリセルが除外され、他方の隣接メモリセルがまだプログラム中とされる場合（従って、プログラムの速度が上昇する可能性がある場合）を、ここでは除外状態と呼ぶ。
【００７０】
ステップ６２２においてトリガ条件が満たされると、ステップ６２４において、追加的に除外状態が生じる可能性が低いか否かが判断される。上述したように、除外状態は、あるメモリセルがプログラムされ、隣接するメモリセルがプログラムから除外され、ワードライン電圧が十分に高くなることで発生する。除外状態は、プログラムの高速化を招く。オーバープログラミングは、低速なプログラムから高速なプログラムへの移行時に発生しうる。よって一実施形態では、システムは、除外状態の発現によって低速プログラムから高速プログラムへの移行が発生する可能性があるかを確認する。システムは、新しい除外状態または追加的な除外状態の潜在的な数を確認することで、低速から高速プログラムへの移行の可能性を確認する。いくつかの実施形態では、読み出し処理において周知のエラー訂正手法を用いてエラーが訂正されるため、システムは少数のエラーを許容しうる。それゆえ、潜在的な除外状態の数が十分少ない場合には、システムはエラーの可能性を許容でき、プログラムの際にエラーを訂正する必要がない。図１０において、現在のプログラム処理において新たに除外状態になる可能性が低い場合には、処理がステップ６２４からステップ６１０へ戻る。そしてメモリセルをプログラムするために、次のプログラムパルスが、プログラムから除外されていない全てのビットラインに対して印加される。ステップ６２４において、新たな除外状態または追加の除外状態の潜在的な数が少なくない場合には、処理がステップ６２６および６２８へ進む。ステップ６２６および６２８では、奇数ビットラインのメモリセルにプログラミングを行う時間とは異なる時間に、偶数ビットラインのメモリセルに別途プログラミングを行うステップを有している。
【００７１】
メモリセルのブロック（ブロックｉ）が記載されている図４へ戻る。一実施形態では、ワードラインに沿ったメモリセルは、２つのグループに分割される。第１のグループは、奇数ビットライン（例：ＢＬ１、ＢＬ３、ＢＬ５、・・・）に接続されている全てのメモリセルで形成される。第２のグループは、偶数ビットライン（例：ＢＬ０、ＢＬ２、ＢＬ４、・・・）に接続されている全てのメモリセルで形成される。図４に示されるように、偶数ビットラインと奇数ビットラインは、交互に配置される。よって、偶数ビットラインに接続されたメモリセルのグループは、奇数ビットラインに接続されたメモリセルと交互に配置される。偶数ビットラインのみがプログラムされている場合には、奇数ビットラインに接続されている全てのメモリセルは除外される。これにより、プログラムされている何れのメモリセルにおいても、その両隣のメモリセルが除外されている状態を保証しうる。たとえカップリングを生じても、両隣が除外されていることが保証されているため、カップリングが予測可能であり一定である。その結果、オーバープログラミングの可能性が低くなる。ワードラインに接続された複数のメモリセルが、２以上のグループに分割可能とされ、奇数および偶数グループ以外の種類のグループに分類しうる。
【００７２】
図１０のステップ６２６において、偶数ビットラインに接続されたメモリセルのみにプログラムするために、プログラムパルスが選択ワードラインに印加される。よって、偶数ビットラインは０ボルトとされ、奇数ビットラインはＶｄｄが印加される。ステップ６２６の期間では、偶数ビットラインのみがプログラムされる。ステップ６２６が実行された後、同一の選択ワードラインにプログラムパルスを印加するステップを含んだステップ６２８が実行される。ステップ６２８の期間では、奇数ビットラインに接続されたメモリセルのみがプログラムされる。よって、ステップ６２８は、奇数ビットラインに０ボルトを印加し、偶数ビットラインにＶｄｄを印加するステップを含む。従って、ステップ６２６と６２８では、２つの連続するプログラムパルスが、同一のワードラインに（よって、そのワードラインに接続された同一の複数メモリセルに）印加される。しかしながら、偶数メモリセルのみが第１のパルスの間にプログラムされ（ステップ６２６）、奇数メモリセルのみが第２のパルスの間にプログラムされる（ステップ６２８）。従って、偶数ビットラインに接続されたメモリセル群（偶数メモリセル）は、奇数ビットラインに接続されたメモリセル群（奇数メモリセル）とは別にプログラムされる。例えば、ＷＬ２＿ｉが選択ワードラインとされ（図４参照）、ステップ６２６においてＢＬ０，ＢＬ２，ＢＬ４ およびＷＬ２＿ｉに接続されたメモリセルがプログラムされ、ステップ６２８においてＢＬ１，ＢＬ３，ＢＬ５およびＷＬ２＿ｉに接続されたメモリセルがプログラムされる。ステップ６２６で奇数メモリセルにプログラムパルスを印加されていても、それらのメモリセルはステップ６２６の間はプログラムされることが抑制される。ステップ６２８で偶数メモリセルにプログラムパルスを印加されていても、それらのメモリセルはステップ６２８の間はプログラムされることが抑制される。ステップ６２８の後、処理はステップ６１２へ戻り、偶数ビットラインおよび奇数ビットラインのメモリセルは全て一緒に検証される。（ただし、いくつかの実施形態では、目標に到達することでメモリセルがすでに除外されていることがある。）ステップ６１２以降は、上述したように処理が続行される。ステップ６２６と６２８との間では、検証処理は行われない。
【００７３】
図１２はプログラム電圧Ｖｐｇｍの波形の一例である。図１２の信号は、複数のパルス７０２，７０４，７０６，７０８，７１０，７１２，７１４，７１６，７１８，７２０，７２２，７２４，７２６，７２８，７３０，７３２，７３４そして７３６を有している。プログラムパルス７０２−７２０は、トリガに先立って印加される。これらの各パルスの大きさは、トリガ電圧よりも小さくされている。パルス７０２−７２０は、図１０のステップ６１０の反復の一部として印加される。パルス７２０を印加した後、（例えば、Ｖｐｇｍの大きさがトリガ電圧よりも大きくなるなどして）トリガ電圧に到達し、奇数ビットラインと分離して、偶数ビットラインのプログラムが実行される（ステップ６２６およびステップ６２８）。従って、図１２には７２２および７２４の２つのパルスが示されている。プログラミングパルス７２２は、偶数ビットラインに接続されたメモリセル群をプログラムするためのパルスである（ステップ６２６）。プログラミングパルス７２４は、奇数ビットラインに接続されたメモリセル群をプログラムするためのパルスである（ステップ７２４）。しかしながら、７２２および７２４の両パルスは、同一の選択ワードラインに印加される。図１２の例では、奇数および偶数ビットラインを別々にプログラムする処理が継続される（偶数ビットラインへの第１のプログラミングと、その後の奇数ビットラインへのプログラム）。例えば、パルス７２６および７２８は、図１０のステップ６２６および６２８の次の反復である。パルス７３０および７３２は、ステップ６２６および６２８のその次の反復である。パルス７３４および７３６は、図１２におけるステップ６２６および６２８の最期の反復である。パルス７３４および７３６の印加後において、処理が無事に完了するように、全てのメモリセルが適切に検証される（または十分なメモリセルが検証される）。
【００７４】
図１３は、Ｖｐｇｍのプログラミングパルスの他の波形例である。図１３の例は、全てのビットラインのプログラム（ステップ６１０）から、偶数および奇数ビットラインの個別のプログラム（ステップ６２６および６２８）へのプログラム処理の遷移と、その後に全てのビットラインのプログラムへ戻る遷移を含んでいる。プログラミングパルス７５０，７５２，７５４，７５６，７５８，７６０，７６２，７６４，７６６及び７６８がステップ６１０の反復の間に印加される。プログラミングパルス７６８の後に、トリガ電圧に到達し、偶数ビットラインに接続されたメモリセルをプログラミングパルス７７０でプログラムし、奇数ビットラインに接続されたメモリセルをプログラミングパルス７７２でプログラムするために、ステップ６２６および６２８の処理が行われる。図１３は、ステップ６２６および６２８の３回の反復を示している。ステップ６２６および６２８の２回目の反復において、プログラミングパルス７７４が偶数ビットラインに接続されたメモリセルに使用され、プログラミングパルス７７６が奇数ビットラインに接続されたメモリセルに使用される。ステップ６２６および６２８の３回目の反復において、プログラミングパルス７７８が偶数ビットラインに接続されたメモリセルに使用され、プログラミングパルス７８０が奇数ビットラインに接続されたメモリセルに使用される。ステップ６２８においてプログラミングパルス７８０が印加された後は、除外状態の発生率が低いか否かが判断される。従って、ステップ６２４の後は、処理がステップ６１０まで続行される。そして、プログラミングパルス７８２が、（目標とする状態に到達したために除外されたメモリセルを除く）全てのビットラインに接続されたメモリセルに印加される。図１０の処理の次の反復では、ステップ６１０において１つのプログラミングパルス７８４が印加される。プログラミングパルス７８４の印加後において、十分な数のメモリセルが検証され、プログラム処理が無事に完了したか否かが判断される。
【００７５】
上述したように、複数の検証処理が、プログラミングパルスの合間に実行される。一実施形態では、検証パルスが選択ワードラインに検証処理ごとに印加される。例えば、メモリセルが取りうる可能性のある８つのデータ状態がある場合には、７つの検証処理がある。従って、７つの検証パルスが存在する。図１４は、プログラミングパルス７０６、７０８および７１０の例を示している（図１２も参照のこと）。検証パルスが、プログラミングパルス７０６、７０８および７１０の合間に印加されている。図１４の検証パルスの各々は、上述したように、検証処理に関連する。
【００７６】
図１５もまた、プログラミングパルス間に検証パルスを有しているプログラミングパルスを示している。図１５は、図１２のプログラミングパルス７２２，７２４，７２６，７２８，７３０および７３２を示している。これらの６つのプログラミングパルスは、トリガ電圧に到達した後に印加されるプログラミングパルスに関連している。よって、奇数および偶数のメモリセルが個別にプログラムされる。上述したように、プログラミングパルス７２２は偶数ビットラインに接続されたメモリセルをプログラムし、プログラミングパルス７２４は奇数ビットラインに接続されたメモリセルをプログラムする。一実施形態では、プログラミングパルス７２２と７２４との間には、検証処理は行われない。プログラミングパルス７２４の後であって、次の一対のパルス７２６および７２８の前に、検証処理を行うための複数の検証パルスが印加される。パルス７２６と７２８との間には、検証処理は行われない。プログラミングパルス７２８の後であって、次の一対のパルス（７３０、７３２）の前に、対応する複数の検証処理を行うために、複数の検証パルスが印加される。
【００７７】
図１６は、プログラム時における、様々な信号の動きを示した図である。さらに具体的には、図１０のステップ610, 626 または 628における１回の反復での処理を示している。図示されたプログラム処理は、ビットラインプリチャージフェーズ、プログラムフェーズ、および放電フェーズにグループ分けすることができる。
【００７８】
ビットラインプリチャージフェーズの期間（１）では、ＳＧＳを０ボルトに維持することで、ソース選択トランジスタはターンオフとされる。ビットラインプリチャージフェーズの期間（２）では、プログラムが禁止されたＮＡＮＤストリング（BL inhibit）のビットライン電圧を、Ｖｄｄで与えられた所定電圧まで上昇させることが許可される。プログラムが禁止されたＮＡＮＤストリングのビットライン電圧がＶＤＤまで上昇すると、期間（３）においてドレイン選択トランジスタのゲート電圧ＳＧＤがＶＤＤまで低下したときに、ＮＡＮＤストリングがフロート状態となる。プログラムされるＮＡＮＤストリング（BL pgm）のビットライン電圧は積極的に０ボルトへ引き下げられる。幾つかの別の実施形態では、プログラムされるＮＡＮＤストリングのビットライン電圧は、一方または両方の隣接メモリセルがプログラム禁止モードか否かに基づいて、バイアスがかけられてもよい。バイアスに関するさらなる情報は、米国特許第７，１８７，５８５号に記載されており、この文献の内容は、その全体を参照することにより本明細書に組み込まれる。
【００７９】
プログラムフェーズの期間（４）では、ＮＡＮＤストリングを昇圧できるように、非選択ワードライン（ＷＬ＿ｕｎｓｅｌ）がＶＰＡＳＳにセットされる。プログラムが禁止されたＮＡＮＤストリングがフロートしているため、アドレス指定されていないメモリトランジスタのコントロールゲートに印加されている高ＶＰＡＳＳは、チャンネルおよび電荷蓄積素子の電圧を上昇させる。よって、プログラムが禁止される。ＶＰＡＳＳは、一般的には、Ｖｐｇｍ（例えば、〜１２−２４ボルト）に対する中間電圧（例えば、〜１０ボルト）に設定される。
【００８０】
プログラムフェーズの期間（５）では、プログラミング電圧Ｖｐｇｍがプログラミングパルスとして、選択ワードライン（ＷＬ＿ｓｅｌ）に印加される。期間（５）のプログラミングパルスは、図１２のパルス７０２−７３６の何れか、または図１３のパルス７５０−７８４の何れかに対応する。（例えば、昇圧されたチャンネルおよび電荷蓄積ユニットを有する）禁止されているメモリセルは、プログラムが行われない。（選択ワードラインに接続された）選択メモリセルが、プログラムされる。放電フェーズの期間（６）では、様々なコントロールラインやビットラインの放電が許可される。
【００８１】
図１７は、追加的に除外状態となる可能性が低いか否かを判断する処理（図１０のステップ６２４参照）の一実施形態のフローチャートである。ステップ８５０において、同一ワードラインに沿って、各メモリセルが隣接するメモリセルと比較される。ステップ８５２において、システムが除外状態へ移行する可能性の数値Ｘをカウントする。２つの隣接メモリセルが両方ともまだプログラムされている場合には、隣接メモリセルの他方が除外される前に隣接メモリセルの一方が目標に到達する可能性があるため、潜在的な除外状態が存在する。従って一実施形態では、ステップ８５２は、まだプログラムが行われている隣接メモリセルのペアの数を数えるステップを含んでいる。潜在的な除外状態の数が閾値よりも大きい場合には（ステップ８５４）、追加的に除外状態となる可能性が低くない（ステップ８５８）。潜在的な除外状態の数が閾値よりも大きくない場合には、追加的に除外状態となる可能性が低い（ステップ８５６）。ステップ８５４の閾値は、エラー訂正符号によって訂正されたビット数に基づいて設定される。例えば、一実施形態では、７ビットまでの誤ったデータ（データの約０．０１パーセント）を訂正できるエラー訂正符号が備えられている。従って、潜在的な除外状態の数が７未満である場合には、追加的に除外状態となる可能性が低い（ステップ８５６）。なお、他の閾値を使用することもできる。他の実施形態では、ステップ８５０は、隣接するメモリセルと比較されるメモリセルに含まれる一部のメモリセルのみについて実行されうる。そして、比較結果からメモリセル全体についての推定が行われ、閾値と比較される。
【００８２】
図１８は、図１７の処理を実行可能なハードウェアの一例を示すブロック図である。全メモリセルのデータラッチ４９４（図５参照）が、シフトレジスタ８８０へデータを供給する。一実施形態では、シフトレジスタ８８０は、実際のデータラッチ４９４を含んでいてもよい。シフトレジスタ８８０は、全てのビットラインの全データを保持する。データは１回につき１ビットずつシフトする。よってデータは、まず１ビットレジスタ８８２に入力され、その後に１ビットレジスタ８８４に入力される。レジスタ８８２内のデータと、レジスタ８８４からのデータは、ＮＯＲゲート８８６へ送られる。ＮＯＲゲート８８６の出力は、加算器８８８に送られる。加算器８８８の出力はステートマシン２２２に供給される。ステートマシン２２２は、潜在的な除外状態の数が閾値よりも大きくないか否かを判断する。図１８の回路は、隣接するビットラインが０−０を記憶していることの発生数をカウントする。一例では、特定のメモリセルがプログラムされるべきか禁止されるべきかの指示を記憶するためにデータラッチが使用されることで、センス回路によって適切な電圧がビットラインに印加される。一実施形態では、それぞれのデータラッチは、ビットラインが禁止されるときは「１」を記憶し、ビットラインがプログラムされるように設定される場合には「０」を記憶する。反対の極性も使用可能である。従って、図１８の回路は、データが０−０である隣り合うビットラインを探し、探し出した回数を加算器８８８を用いてカウントする。加算器８８８が０−０をカウントした回数が閾値よりも大きい場合には、ステートマシンは、追加的に除外状態となる可能性が低くないと結論を出す。（そして、図１０において、ステップ６２６において処理を続行する）。
【００８３】
図１９は、追加的に除外状態となる可能性が低いか否かを判断する他の実施形態についての記載である。ステップ９０２において、まだプログラム中のメモリセルの数がカウントされる。別の手段として、除外されたメモリセルの数をカウントしてもよい。ステップ９０４において、まだプログラム中のメモリセルの数が閾値未満か否かが判断される。プログラム中のメモリセルの数が閾値未満である場合には（ステップ９０４）、追加的に除外状態となる可能性が低い（ステップ９０６）。除外されたメモリセルの数が閾値未満でない場合には、追加的に除外状態となる可能性が低くない（ステップ９０８）。一実施形態では、０．４％だけのメモリセルがまだプログラム中の場合（または９９．６％のメモリセルが除外されている場合）に、追加的に除外状態となる可能性が低くなるように、閾値が設定される。なお、他の閾値も使用可能である。
【００８４】
図２０は、図１９の処理を実行可能なハードウェアの一例を示すブロック図である。図２０は、コンパレータ回路９２０と通信し、ビットラインの各々のグループのために備えられたプロセッサ４９２（例えば、８本のビットラインのために１つのプロセッサ４９２が備えられる）を示している。プロセッサの各々は、各ビットラインがプログラムされるか除外されるかを指示する。コンパレータ９２０は、除外されたビットラインの数をカウントする回路を含んでいる。一実施形態では、上述したラッチ群からデータが供給されることで、カウントが遂行される。コンパレータ９２０は、閾値（ステップ９０４参照）を示すパラメータ９２２にアクセス可能であり、また、その閾値を除外されたビットラインの総数と比較することが可能である。コンパレータ９２０の出力は、ステートマシン２２２に送られる。
【００８５】
図１０に戻り、奇数および偶数メモリセルの同時プログラミングから、奇数および偶数メモリセルの個別のプログラミングへプログラム処理を変更するトリガが使用されている（ステップ６２２）。一実施形態では、適切なトリガ電圧を決定するために、デバイス特性（シミュレーションを含む）を使用するステップを備えている。幾つかの実施形態では、トリガ電圧は各々の集積回路で個別に調整されてもよい。すなわち、集積回路の製造に引き続いて、各集積回路がテストされるとしてもよい。当該テストに基づき、トリガ電圧が設定または調整されうる。
【００８６】
図２１、２２および２３は、トリガ値の調整または設定を行う３つの実施形態を示すフローチャートである。図２１−２３の処理は１つのブロックで実行しうる。１つのブロックからのデータが、メモリデバイスの全てのブロックに使用されることが可能である。ある代替的手法では、多数のブロックがテストされ、その結果が全てのブロックに適用されるとすることもできる。他の代替的手法では、図２１−２３の処理が全てのブロックで行われ、それぞれのブロックが独自のトリガ値を有することもできる。一実施形態では、１つのブロックにおいて１つのワードラインのみがテストされるとすることができる。他の実施形態では、１本よりも多いワードラインがテストされ、その結果が平均されるかまたは一体とされてもよい。他の実装形態では、（ワードライン、ワードラインのグループ、ページ、セクタ、などの）他のユニットがテストのために選択されるとすることもできる。
【００８７】
図２１のステップ１００２では、テスト用の特定の１ブロック（または複数ブロック）が消去される。次に、１本の選択ワードライン上の偶数セルがプログラムされる。一実施形態では、１本のワードラインのみがプログラムされる。その１本のワードラインに基づき、ブロック全体、チップ全体またはメモリシステム全体のための新たなトリガ値が決定される。他の実施形態では、多数のワードラインがプログラムされ、そのデータが平均化されるか、それぞれのワードラインが独自のトリガ値を有するとすることができる。ステップ１００４では、選択ワードラインに接続されたメモリセルがプログラムされる。ステップ１００４のプログラム処理は、奇数ビットラインおよび偶数ビットラインに接続されたメモリセルの全てについて、プログラム、および、大きさが増加していくプログラミングパルス群を、それらのプログラミングパルスがＶｐｇｍ＿ｔｅｓｔの大きさに到達するまで印加することを可能にするステップを含んでいる。一実施形態では、デバイス特性から決定されるトリガ電圧を２ボルト下回るように、Ｖｐｇｍ＿ｔｅｓｔが初期設定される。１００４のプログラム処理は、図１０のステップ６２０の後を除いた処理に類似しており、処理は常にステップ６１０へ戻る（ステップ６２２−６２８はない）。ステップ１００４のプログラム処理の後、ステップ１００６において、偶数ビットラインに接続されたメモリセルの閾値電圧区分の最大値および最小値が測定される。ステップ１００８では、ブロックが消去される。
【００８８】
ステップ１０１０では、偶数ビットラインに接続されたメモリセルが再度プログラムされる。しかしながらステップ１０１０では、奇数ビットラインに接続されたメモリセルは、全てのプログラミングパルスによるプログラムが禁止される。ステップ１０１０は、ステップ１００４のように、プログラミングパルスの大きさがＶｐｇｍ＿ｔｅｓｔと同じ大きさになるまで、大きさを増加させながら連続してプログラミングパルスを印加するステップを含んでいる。ステップ１０１２では、偶数ビットラインに接続されたメモリセルの閾値電圧区分が測定される。ステップ１０１４では、ステップ１０１２および１００６で測定された閾値電圧区分の最大値および最小値が比較される。一実施形態では、２つの閾値電圧区分の下限が比較される。他の実施形態では、それぞれの閾値電圧区分の上限が比較される。閾値電圧区分の下限（または上限）間の差分値が閾値よりも大きくない場合には、Ｖｐｇｍ＿ｔｅｓｔが所定量（例えば、０．５ボルトやその他の値）ずつ増加され、処理がステップ１００２へ戻る。２つの閾値電圧区分の最下点間の差分値が閾値よりも大きい場合には、ステップ１０２０において、（デバイス特性によって決定される値から求められる）トリガ電圧は、Ｖｐｇｍ＿ｔｅｓｔの現在の値になるように変更される。幾つかの実施形態では、サンプルのサイズが実際のワーストケースを捉えられていない点を考慮するために、マージンを取るためのオフセットをさらに追加することで、Ｖｐｇｍ＿ｔｅｓｔがさらに変更されるとすることもできる。一実施形態では、ステップ１０１６の閾値は０．５ボルトに等しくされ、ステップ１００４および１０１０でプログラミングに使用されるプログラムパルスのステップサイズは０．４ボルトとされる。
【００８９】
図２２は、トリガ電圧の決定または調整のための処理の他の実施形態である。ステップ１０５０では、検討中のブロックが消去される。ステップ１０５２において、プログラム処理の反復処理の各々においてプログラム対象に選択された奇数ビットラインに接続されたメモリセルと共に、偶数ビットラインに接続されたメモリセルが、閾値電圧が目標値のＶｘボルトに到達するまでプログラムされる。Ｖｘは実験により設定しうる。Ｖｘの一例として、３．５ボルトが挙げられる。ステップ１０５４において、ステップ２０５２の間に偶数ビットラインに接続されたメモリセルに適切にプログラムするために必要なプログラミングパルスの数が記録される。ステップ１０５６では、検討中のブロックが消去される。ステップ１０５８では、偶数ビットラインに接続されたメモリセルが、それらの閾値電圧がＶｘボルトに到達するまで、再度プログラムされる。ステップ１０５８では、奇数ビットラインに接続されたメモリセルが各サイクルにおいて常に禁止される。ステップ１０６０では、ステップ１０５８においてメモリセルをプログラムするために必要なプログラムパルスの数が記録される。ステップ１０６２では、各々のテスト（ステップ１０５４および１０６０）におけるパルスの数が比較される。ステップ１０６０で測定されたパルス数が、ステップ１０５４で測定されたパルス数よりも少なくなることが予測されている。パルス数における当該差分量は、上述した除外状態に関連する干渉効果の大きさを意味している。差分量が閾値よりも大きい場合には、トリガ電圧は、ステップ１０５８のプログラミング処理で用いられた最後のパルスの大きさに設定される。差分量が閾値よりも大きくない場合には、電圧ＶＸが（例えば０．５ボルト分）増加され、テストを繰り返すために処理がステップ１０５０へ戻る。一例として、ステップ１０６４の閾値は、１つのパルスと同等である。なお、他の閾値を使用することもできる。
【００９０】
図２３は、トリガ電圧を決定または調整するための他の実施形態である。ステップ１１０２において、選択された１ブロックまたは複数ブロックが消去される。ステップ１１０４において、偶数ビットラインに接続されたメモリセルが、それらの閾値電圧が電圧Ｖｙに等しくなるまでプログラムされる。ステップ１１０４のプログラミング処理の間、奇数ビットラインに接続されたメモリセルがプログラミングのために常に選択される。ステップ１１０６において、偶数ビットラインに接続された、オーバープログラムされたメモリセルの数が測定される。例えば、理想的な閾値電圧区分がシミュレーションに基づいて推定され、その理想的な閾値電圧区分に対する上位基準値を決定することができる。メモリセルの閾値電圧が理想的な区分の上限値を上回る場合には、メモリセルがオーバープログラムされている。例えば図７Ｉを参照すると、状態Ｓ６は、下側境界Ｇおよび上側境界ＯＰを備える。メモリセルがＯＰよりも大きな閾値電圧を有する場合には、メモリセルはオーバープログラムされている。他の実施形態では、オーバープログラミングのための比較レベルを異ならせることができる。
【００９１】
図２３に戻り、ステップ１１０８において、選択ワードラインにもう一つのプログラミングパルスが印加される。プログラミングパルスがステップ１１０８で印加される一方、奇数ビットラインに接続されている全てのメモリセルのプログラミングが禁止される。ステップ１１０４においてＶｙの閾値電圧に到達したメモリセルは、ステップ１１０８の期間において除外されたままとされる。ステップ１１０８のプログラミングパルスは、Ｖｙの閾値電圧にまだ到達していないメモリセルのみをプログラムする。ステップ１１１０において、オーバープログラムされたメモリセルの数が再度測定される。ステップ１１１２において、ステップ１１１０で測定されたオーバープログラムされたセル数が、ステップ１１０６で測定されたオーバープログラムされたセル数と比較される。オーバープログラムされたセル数の差分量が閾値よりも大きい場合には、トリガ電圧の大きさが、ステップ１１０８で印加されたパルスの大きさに設定される。ステップ１１１４の閾値の一例として、５つのメモリセルが挙げられる。差分量が閾値（ステップ１１１４）よりも大きくない場合には、ステップ１１１６においてＶｙの電圧レベルが（例えば５ボルトなどに）増加され、処理がステップ１１０２へ戻って繰り返される。
【００９２】
幾つかの実施形態では、不揮発性記憶装置システムは、トリガ電圧に対して動的な調整を行うとすることができる。図２４は、プログラム／消去サイクルに基づいてトリガ電圧を動的に変更する実施形態を示すフローチャートである。プログラム／消去サイクルは、消去処理およびプログラム処理を行うステップを含んでいる。不揮発性記憶装置システムは多数のプログラム／消去サイクルを実行するため、電荷がフローティングゲートとチャンネルとの間の誘電領域にトラップされることがある。この状態は、図１１Ａ−Ｃにおいて、上述した空乏領域を減少させることがある。よって、デバイスで何度もサイクルが行われると、奇数メモリセルと偶数メモリセルとを別々のプログラムするステップをプログラミング処理において遅く発生させるために、トリガ電圧を上昇させることが可能となる。図２４のステップ１２４０では、メモリデバイスは、プログラム／消去サイクルをＸ回実行する。一例では、Ｘ回のプログラムサイクルは、１００００回のプログラム／イレースサイクルであってもよい。なお、Ｘには他の値を使用しうる。Ｘ回のプログラム／イレースサイクルを実行した後、ステップ１２４２において、トリガ電圧が（例えば０．５ボルト分）上昇される。ステップ１２４２においてトリガ電圧が上昇された後、ステップ１２４４においてメモリシステムは、プログラム／消去サイクルをＹ回実行する。一例では、Ｙ回のプログラム／消去サイクルは、５０００回のプログラム／イレースサイクルであってもよい。ステップ１２４６において、トリガ電圧が（例えば０．２ボルト単位で）再度上昇される。ステップ１２４６におけるトリガ電圧の上昇後に、メモリシステムは、プログラム／消去サイクルの実行を続行する（ステップ１２４８）。図２４は、トリガ電圧が２回上昇されたメモリデバイスを示している。しかしながら、他の実施形態では、トリガ電圧は１回のみ上昇されてもよいし、２回よりも多い回数上昇されてもよい。ＸとＹの異なる値は、デバイス特性または実験的手段によって決定することができる。
【００９３】
図２５は、図２４の処理を実行するために使用される要素の一例を示すブロック図である。図２５は、トリガパラメータを記憶しているレジスタ１２８２およびサイクルパラメータを記憶しているレジスタ１２８４と通信する、ステートマシン２２２を示している。補償回路１２８６もまた、レジスタ１２８２およびレジスタ１２８４と通信を行う。トリガパラメータは、トリガ電圧（または他のトリガ）を指示するものである。トリガパラメータは、電圧の大きさや、パルス数や、その他の設定を特定しうるものである。サイクルパラメータは、実行されたプログラム／消去サイクルの数を指示することができる。サイクルパラメータの値に基づいて、適切な場合には、補償回路がトリガパラメータを更新する。例えば、図２４のステップ１２４２および１２４６の一部として、補償回路１２８６がトリガパラメータを更新することができる。ステートマシン２２２は、図１０のステップ６２２の期間において、トリガパラメータを使用することもできる。
【００９４】
図２６は、温度に基づいてトリガ電圧を動的に調整する実施形態を示すフローチャートである。ステップ１３０２において、メモリシステムは温度を測定する。一実施形態では、メモリシステムは温度センサを含むことができる。測定された温度に基づいて、ステップ１３０４において、トリガ電圧が調整される。空乏領域は低温では悪化することが予測されるため、プログラム処理においてトリガがより早く発生しうる。低温の時にはトリガ電圧を低下させることで、これに対応しうる。ステップ１３０２で測定された温度がプリセット値よりも低い場合には、トリガ電圧を低下させうる。ステップ１３０２で測定された温度がプリセット値よりも高い場合には、トリガ電圧を上昇させうる。他の実施形態では、ステートマシン２２２が、温度範囲とトリガ電圧とを関連付けるテーブルを記憶するとしてもよい。ステップ１３０２において、ステートマシン２２２は温度を読み出す。ステップ１３０４において、ステートマシン２２２は、温度をテーブルの手掛かりに使用して、テーブルからトリガ値を検索する。テーブルから見つかったトリガ電圧は、プログラミング処理で使用するために、パラメータ内に記憶される。他の実施形態では、ステップ１３０４において、補償回路は測定された温度を読み出し、トリガ電圧を調整することもできる。ステップ１３０６では、システムは、ステップ１３０４で設定されたトリガ電圧を用いてプログラミングを実行する。一定量のプログラミングが行われた後、処理はステップ１３０２へ戻り、温度が再度測定され、ステップ１３０４においてトリガ値が任意に調整されうる。一実施形態では、ステップ１３０２−１３０６のループは、全てのプログラミング処理について実行することができる。代替的な実施形態では、処理がＮサイクルごとまたはＮ回の期間ごとに実行されてもよい。
【００９５】
図２７は、図２６の処理を実行しうる要素の一例を記載したブロック図である。図２７は、トリガパラメータを記憶しているレジスタ１３５０と通信するステートマシン２２２を示している。トリガパラメータは、トリガ電圧（または他のトリガ）を指示するものである。トリガパラメータは、電圧の大きさや、パルス数や、その他の設定を特定しうるものである。補償回路１３５２は、レジスタ１３５０および温度センサ１３５４と通信する。温度センサは、温度の指標となる信号（電圧または電流）を出力する。温度センサ１３５４の出力に基づき、補償回路１３５２はトリガパラメータを更新する。例えば、補償回路１３５２は、図２６のステップ１３０４の一部として、トリガパラメータを更新するとしてもよい。トリガパラメータの更新は、継続的か、一定期間ごとか、要求に応じて実行されるとしてもよい。
【００９６】
上記本発明の詳細な説明は、説明のための例示にすぎない。上記本発明の詳細な説明は、詳細に開示した範囲に限定するものではない。本明細書が開示する技術は、様々に変形、変更し得る。上記説明した実施形態は、本発明の原理とその具体的な適用例をよく説明するために選ばれたものであり、当業者は、具体的な事例に則して本発明を様々に変更し得る。本発明の技術的範囲は、添付された特許請求の範囲によって定まるものである。
【図１】
2010538409.tif 000003
【図２】
2010538409.tif 000004
【図３】
2010538409.tif 000005
【図４】
2010538409.tif 000006
【図５】
2010538409.tif 000007
【図６】
2010538409.tif 000008
【図７Ａ】
2010538409.tif 000009
【図７Ｂ】
2010538409.tif 000010
【図７Ｃ】
2010538409.tif 000011
【図７Ｄ】
2010538409.tif 000012
【図７Ｅ】
2010538409.tif 000013
【図７Ｆ】
2010538409.tif 000014
【図７Ｇ】
2010538409.tif 000015
【図７Ｈ】
2010538409.tif 000016
【図７Ｉ】
2010538409.tif 000017
【図８】
2010538409.tif 000018
【図９】
2010538409.tif 000019
【図１０】
2010538409.tif 000020
【図１１Ａ】
2010538409.tif 000021
【図１１Ｂ】
2010538409.tif 000022
【図１１Ｃ】
2010538409.tif 000023
【図１２】
2010538409.tif 000024
【図１３】
2010538409.tif 000025
【図１４】
2010538409.tif 000026
【図１５】
2010538409.tif 000027
【図１６】
2010538409.tif 000028
【図１７】
2010538409.tif 000029
【図１８】
2010538409.tif 000030
【図１９】
2010538409.tif 000031
【図２０】
2010538409.tif 000032
【図２１】
2010538409.tif 000033
【図２２】
2010538409.tif 000034
【図２３】
2010538409.tif 000035
【図２４】
2010538409.tif 000036
【図２５】
2010538409.tif 000037
【図２６】
2010538409.tif 000038
【図２７】
2010538409.tif 000039
【手続補正書】
【提出日】平成22年5月25日(2010.5.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１の期間において不揮発性記憶素子の第１のグループにプログラムを行うステップと、
第１の期間と異なる第２の期間において不揮発性記憶素子の第２のグループにプログラムを行うステップと、
不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループに対して一緒に検証を行うステップと、
を備えることを特徴とする不揮発性記憶装置のプログラム方法。
【請求項２】
第１の期間において不揮発性記憶素子の第１のグループにプログラムを行うステップおよび第２の期間において不揮発性記憶素子の第２のグループにプログラムを行うステップは、第１のトリガに応じて第１のトリガの後に実行され、
前記プログラム方法は、第１のトリガに先立って１以上のプログラムサイクルを実行するステップをさらに備え、
１以上のプログラムサイクルの各々は、不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループに一緒にプログラムを行うステップを有していることを特徴とする請求項１の方法。
【請求項３】
第１の期間において不揮発性記憶素子の第１のグループにプログラムを行うステップおよび第２の期間において不揮発性記憶素子の第２のグループにプログラムを行うステップは、第２のトリガに先立って行われ、
前記プログラム方法は、第２のトリガに引き続いて１以上の追加のサイクルを実行し、
１以上の追加のサイクルの各々は、不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループに一緒にプログラムを行うステップを有していることを特徴とする請求項１または２の方法。
【請求項４】
不揮発性記憶素子の第１のグループは第１のワードラインに接続され、
不揮発性記憶素子の第２のグループは前記第１のワードラインに接続され、
不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループに含まれる不揮発性記憶素子の各々は、交互に配列される形態で異なるビットラインに接続されることを特徴とする請求項１ないし３の何れか１項の方法。
【請求項５】
前記プログラム方法がさらに備えている、不揮発性記憶素子の第１のグループにプログラムを行うステップは、
不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループに第１のプログラムパルスを印加するステップと、
第１のプログラムパルスによって不揮発性記憶素子の第２のグループにプログラムが行われることを禁止するステップと、
第１のプログラムパルスによって不揮発性記憶素子の第１のグループにプログラムが行われることを許可するステップと、を有しており
前記プログラム方法がさらに備えている、不揮発性記憶素子の第２のグループにプログラムを行うステップは、
不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループに第２のプログラムパルスを印加するステップと、
第２のプログラムパルスによって不揮発性記憶素子の第１のグループにプログラムが行われることを禁止するステップと、
第２のプログラムパルスによって不揮発性記憶素子の第２のグループにプログラムが行われることを許可するステップと、
を有していることを特徴とする請求項１ないし４の何れか１項の方法。
【請求項６】
不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループの動作中に第１のトリガを動的に調整するステップをさらに備えることを特徴とする請求項２ないし５の何れか１項の方法。
【請求項７】
第１の期間において不揮発性記憶素子の第１のグループにプログラムを行うステップおよび第２の期間において不揮発性記憶素子の第２のグループにプログラムを行うステップは、状態が検出される以前および前記状態が検出されるまで行われ、
前記プログラム方法は、前記状態が検出されることに引き続いて１以上の追加のサイクルを実行し、
１以上の追加のサイクルの各々は、不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループに一緒にプログラムを行うステップを有していることを特徴とする請求項１の方法。
【請求項８】
不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループのいくつの不揮発性記憶素子がまだプログラム中であるか、および、いくつの不揮発性記憶素子がプログラム対象として選択された隣接するメモリセルを有するかを判断するステップと、
不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループのいくつの不揮発性記憶素子がまだプログラム中であるか、および、いくつの不揮発性記憶素子がプログラム対象として選択された隣接するメモリセルを有するかに基づいて前記状態を検出するステップと、
をさらに備えることを特徴とする請求項７の方法。
【請求項９】
不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループを含む複数の不揮発性記憶素子と、
不揮発性記憶素子と通信する１以上の管理回路と、を備え、
１以上の管理回路は、不揮発性記憶素子の第２のグループへのプログラムとは別に不揮発性記憶素子の第１のグループにプログラムを行い、
１以上の管理回路は、不揮発性記憶素子の第２のグループの検証と一緒に不揮発性記憶素子の第１のグループの検証を行うことを特徴とする不揮発性記憶装置。
【請求項１０】
１以上の管理回路は、第１のトリガに応じて第１のトリガの後に、不揮発性記憶素子の第２のグループへのプログラムとは別に、不揮発性記憶素子の第１のグループにプログラムを行い、
１以上の管理回路は、第１のトリガの前に、不揮発性記憶素子の第２のグループと一緒に、不揮発性記憶素子の第１のグループにプログラムを行うことを特徴とする請求項９の不揮発性記憶装置。
【請求項１１】
１以上の管理回路は、第２のトリガの前に、不揮発性記憶素子の第２のグループへのプログラムとは別に、不揮発性記憶素子の第１のグループにプログラムを行い、
１以上の管理回路は、第２のトリガに応じて第２のトリガの後に、不揮発性記憶素子の第２のグループと一緒に、不揮発性記憶素子の第１のグループにプログラムを行うことを特徴とする請求項９または１０の不揮発性記憶装置。
【請求項１２】
１本のワードラインと、複数のビットラインとをさらに備え、
不揮発性記憶素子の第１のグループがワードラインに接続されると共に、不揮発性記憶素子の第２のグループも前記ワードラインに接続され、
不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループに含まれる不揮発性記憶素子の各々は、異なるビットラインに接続され、
第１のトリガは、不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループに同時に印加されるプログラムパルスの電圧レベルを有していることを特徴とする請求項９ないし１１の何れか１項の不揮発性記憶装置。
【請求項１３】
１以上の管理回路は、
不揮発性記憶素子の第２のグループにプログラムが行われることが禁止されている期間に、不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループに第１のプログラムパルスを印加し、
不揮発性記憶素子の第１のグループにプログラムが行われることが禁止されている期間に、不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループに第２のプログラムパルスを印加することによって、
不揮発性記憶素子の第２のグループのプログラムとは別に、不揮発性記憶素子の第１のグループにプログラムを行うことを特徴とする請求項９ないし１２の何れか１項の不揮発性記憶装置。
【請求項１４】
１以上の管理回路は、第１のトリガを動的に調整することを特徴とする請求項１０の不揮発性記憶装置。
【請求項１５】
不揮発性記憶素子の第１のグループおよび不揮発性記憶素子の第２のグループは、フラッシュメモリデバイスであることを特徴とする請求項９ないし１４の何れか１項の不揮発性記憶装置。
【国際調査報告】
2010538409.tif 000040
2010538409.tif 000041