(57)【特許請求の範囲】
【請求項１】
電気的書き換え可能な不揮発性メモリセルが配列され、１本の制御ゲート線により選択される前記不揮発性メモリセルの配列範囲が１ページとされ、それぞれ異なる前記制御ゲート線により選択される複数個の前記不揮発性メモリセルが直列接続されてＮＡＮＤセルが構成されたメモリセルアレイを有し、
複数の前記ページが、前記メモリセルアレイへの所定のアクセスが実行される毎に不可逆的な状態変化としてマークデータを記憶する状態変化記憶領域として設定され、
この状態変化記憶領域は、１個の前記不揮発性メモリセルに対しては一度だけデータ書き込みが許容され且つデータ消去が不可とされた不揮発性半導体メモリの制御方法であって、
前記状態変化記憶領域は、前記ページの各々が複数個の単位領域に分けられて、初期状態では前記状態変化記憶領域中の前記不揮発性メモリセルは第１のデータを保持し、
前記アクセス毎に前記ページを切り換えて、前記単位領域中の前記不揮発性メモリセルに不可逆的に第２のデータを書き込むことにより、前記マークデータを記憶する
ことを特徴とする不揮発性半導体メモリの制御方法。
【請求項２】
複数の前記ＮＡＮＤセルがデータ消去の最小単位である１ブロックを構成し、データ消去が不可とされた前記ブロック中の少なくとも１ページが前記状態変化記憶領域として使用されること特徴とする請求項１に記載の不揮発性半導体メモリの制御方法。
【請求項３】
前記状態変化記憶領域の各々の前記単位領域を複数ビット分の容量として、前記マークデータは、各々の前記単位領域の容量に等しい複数ビット分の第２のデータとすることを特徴とする請求項１または請求項２記載の不揮発性半導体メモリの制御方法。
【請求項４】
前記状態変化記憶領域の前記単位領域を順次サーチし、各々の前記単位領域中の第２のデータのビット数をカウントして、そのカウント値がある値を超えているときに、その単位領域を前記マークデータの既書込み領域と判定することを特徴とする請求項３記載の不揮発性半導体メモリの制御方法。
【請求項５】
前記状態変化記憶領域の所定の前記単位領域への前記マークデータの書込み動作において、既書き込み領域と判定される前記単位領域と隣接する未書込みの前記単位領域のデータの安定性を判断し、不安定と判定された未書込みの前記単位領域に対して前記マークデータの書込みを先行的に実行することを特徴とする請求項３記載の不揮発性半導体メモリの制御方法。
【請求項６】
未書込みの前記単位領域のデータの安定性の判断は、各々の前記単位領域中の第２のデータのビット数をカウントして、そのカウント値がある値を超えているときに不安定であると判定することを特徴とする請求項５記載の不揮発性半導体メモリの制御方法。
【請求項７】
前記ＮＡＮＤセルは、一端がビット線に接続され他端がソース線に接続され、前記ビット線には書き込みデータに応じて切り替わる電圧が印加されるものであり、
前記ＮＡＮＤセルを構成する前記不揮発性メモリセルへのデータ書き込みの際、前記ソース線に近い側の前記不揮発性メモリセルより順次書き込みが実行されることを特徴とする請求項１記載の不揮発性半導体メモリの制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、電気的書き換え可能な不揮発性半導体メモリ（ＥＥＰＲＯＭ）の制御方法に係り、特にＮＡＮＤ型ＥＥＰＲＯＭに適用して有用な制御方法に関する。
【０００２】
【従来の技術】
半導体メモリの一つとして、電気的書き換え可能としたＥＥＰＲＯＭが知られている。なかでも、メモリセルを複数個直列接続してＮＡＮＤセルを構成するＮＡＮＤ型ＥＥＰＲＯＭは、高集積化ができるものとして注目されている。ＮＡＮＤ型ＥＥＰＲＯＭの一つのメモリトランジスタは、半導体基板上に絶縁膜を介して浮遊ゲート(電荷蓄積層)と制御ゲートが積層されたＦＥＴＭＯＳ構造を有する。そして、複数個のメモリトランジスタが隣接するもの同士でソース・ドレインを共用する形で直列接続されてＮＡＮＤセルを構成し、これを一単位としてビット線に接続する。このようなＮＡＮＤセルがマトリクス配列されてメモリセルアレイが構成される。
【０００３】
ＮＡＮＤ型ＥＥＰＲＯＭのメモリセルアレイは、複数ブロックにより構成される。１ブロックは、一つのＮＡＮＤセルが１６段の場合であれば、そのＮＡＮＤセルを選択する１６本のワード線と、これらのワード線が連続する範囲のメモリセルを含む。この１ブロックが、データの一括消去を行うフラッシュメモリでの一括消去の最小単位となる。各ブロックの中の１ワード線のメモリトランジスタ配列範囲が通常１ページと呼ばれる。
【０００４】
【発明が解決しようとする課題】
ＥＥＰＲＯＭフラッシュメモリは、ＤＲＡＭと同様にデータ書き換えができる上に、電源を切ってもデータを不揮発に記憶できることから、各種の携帯用電子機器やメモリカードその他の情報媒体への応用が注目されている。この様なＥＥＰＲＯＭフラッシュメモリの応用に際し、そのメモリ領域の一部について自由な書き換えを制限し、一度だけデータ書込みが可能な、ＯＴＰ（One Time PROM）化したいという要求がある。
例えば、著作権が問題になる音楽データ等の取り込みと転送等を行うフラッシュメモリシステムを含む機器において、音楽データのコピーを一定範囲に制限しなければならないといった場合にその様な要求が生じる。具体的に、ＥＥＰＲＯＭフラッシュメモリを用いたメモリシステムにおいて、ＥＥＰＲＯＭフラッシュメモリのデータ書き換えを伴うアクセスが実行されたときにその都度、チップの不可逆的な状態変化としてＯＴＰ領域にマークデータを記憶し、その様な不可逆な状態変化を所定回数許容する、といった要望がある。
この様な要望に応えるため、ＥＥＰＲＯＭフラッシュメモリの構成を大きく変えることなく、その一部のメモリ領域をＯＴＰ化するための技術開発が現在各所で進められている。
【０００５】
この発明は、メモリ領域の一部をＯＴＰ化した不揮発性半導体メモリにおいて、ＯＴＰ領域に誤書き込み等を生じることなく且つ、書込み領域と未書込み領域の境界を明確に保持しながらマークデータ書込みを行い不可逆な状態変化を記憶することを可能とした不揮発性半導体メモリの制御方法を提供することを目的としている。
【０００６】
【課題を解決するための手段】
この発明は、電気的書き換え可能な不揮発性メモリセルが配列され、１本の制御ゲート線により選択される前記不揮発性メモリセルの配列範囲が１ページとされ、それぞれ異なる前記制御ゲート線により選択される複数個の前記不揮発性メモリセルが直列接続されてＮＡＮＤセルが構成されたメモリセルアレイを有し、複数の前記ページが、前記メモリセルアレイへの所定のアクセスが実行される毎に不可逆的な状態変化としてマークデータを記憶する状態変化記憶領域として設定され、この状態変化記憶領域は、１個の前記不揮発性メモリセルに対しては一度だけデータ書き込みが許容され且つデータ消去が不可とされた不揮発性半導体メモリの制御方法であって、前記状態変化記憶領域は、前記ページの各々が複数個の単位領域に分けられて、初期状態では前記状態変化記憶領域中の前記不揮発性メモリセルは第１のデータを保持し、前記アクセス毎に前記ページを切り換えて、前記単位領域中の前記不揮発性メモリセルに不可逆的に第２のデータを書き込むことにより、前記マークデータを記憶することを特徴とする。
【０００８】
この発明によると、状態変化記憶領域の各単位領域へのマークデータ書込みの順序を、１ページ内でカラム方向に単位領域を順次切り換えるのではなく、ロウ方向にページ切り換えを行ってマークデータ書込みを行う。不揮発性半導体メモリがＮＡＮＤ型ＥＥＰＲＯＭの場合を例にとると、１ページは通常１ワード線（即ち１制御ゲート線）の範囲である。もし、状態変化記憶領域の１ページの中でカラム方向に順次マークデータを書き込むものとすると、選択された単位領域へのマークデータ書き込み毎に、同じページ内の非選択の単位領域にはストレスがかかる。このため、非選択の単位領域への誤書込みが生じやすい。
これに対し、ロウ方向に選択する単位領域を切り換えてマークデータ書込みを行うと、カラム方向に順次切り換えを行う方式に比べて非選択の単位領域のメモリトランジスタに同じストレスがかかるまでにより多くの単位領域へのマークデータ書込みが可能になる。従って、信頼性の高い状態変化の不可逆的な記憶が可能になる。
【０００９】
この発明において好ましくは、状態変化記憶領域の各々の単位領域を複数ビット分の容量として、マークデータは、各々の単位領域の容量に等しい複数ビット分の第２のデータ（例えばオール“０”の複数ビットデータ）とする。より実際的には例えば、各単位領域を１バイト分の容量とし、マークデータをオール”０”の１バイトデータとする。この様にマークデータをオール”０”の複数ビットにより構成した場合、状態変化記憶領域のマークデータが書き込まれるべき単位領域を順次サーチし、各々の単位領域の”０”のビット数をカウントして、そのカウント値がある値を超えているときにその単位領域をマークデータの既書込み領域と判定するルーチンを用いることができる。これにより、既書込み領域又は未書込み領域に多少の誤データがあっても、既書込み領域と未書込み領域の確実な判定ができ、判定にマージンを持たせることが可能になる。
【００１０】
更にこの発明において好ましくは、状態変化記憶領域の所定の単位領域へのマークデータの書込み動作において、既書き込み領域と判定される単位領域と隣接するアドレスの未書込みの単位領域のデータの安定性を判断し、不安定と判定された未書込みの単位領域に対してマークデータ書込みを先行的に実行する。これにより、既書込み領域と未書込み領域の境界を常に明確に保持して、状態変化記憶領域へのマークデータ書込みを確実に行うことができる。この場合、未書込みの単位領域のデータの安定性の判断は、各々の単位領域中の第２のデータ（例えば”０”）のビット数をカウントして、そのカウント値がある値を超えているときに不安定であると判定することができる。
【００１１】
【発明の実施の形態】
以下、図面を参照して、この発明の実施の形態を説明する。
図１は、実施の形態のＮＡＮＤ型ＥＥＰＲＯＭフラッシュメモリの全体構成を示し、図２はそのメモリセルアレイ１のブロック構成を示し、図３はその一つのブロックＢｉの構成を示している。
ＮＡＮＤ型ＥＥＰＲＯＭフラッシュメモリのの一つのメモリトランジスタ（メモリセル）ＭＣは、半導体基板上に絶縁膜を介して浮遊ゲート(電荷蓄積層)と制御ゲートが積層されたＦＥＴＭＯＳ構造を有する。そして、複数個のメモリトランジスタＭＣが隣接するもの同士でソース・ドレインを共用する形で直列接続されてＮＡＮＤセルを構成し、これを一単位としてビット線ＢＬに接続する。このようなＮＡＮＤセルがマトリクス配列されてメモリセルアレイ１が構成される。メモリセルアレイ１は、ｐ型基板、又はｐ型ウェル内に集積形成される。
【００１２】
図３に示すように、メモリセルアレイ１の列方向に並ぶＮＡＮＤセルの一端側のドレインは、それぞれ選択ゲートトランジスタトランジスタＳ１を介してビット線ＢＬに接続され、他端側ソースはやはり選択ゲートトランジスタＳ２を介して共通ソース線に接続されている。メモリトランジスタＭＣの制御ゲート及び選択ゲートトランジスタＳ１，Ｓ２のゲート電極は、メモリセルアレイ１のカラム方向にそれぞれ制御ゲート線ＣＧ０〜ＣＧ１５、選択ゲート線ＳＧ１，ＳＧ２として共通接続される。制御ゲート線ＣＧ０〜ＣＧ１５が通常ワード線ＷＬ０〜ＷＬ１５となる。
【００１３】
図３では、１６個のメモリトランジスタＭＣにより１６段ＮＡＮＤが構成されている。このＮＡＮＤセルはビット線ＢＬ、制御ゲート線ＣＧ、選択ゲート線ＳＧの電圧を制御することにより、データ書込み・消去・読出しを行う。図３中の複数のＮＡＮＤセルは全て制御ゲートを共有している。このような制御ゲートを共有するＮＡＮＤセル群を通常ブロックと呼び、この１ブロックがデータ消去の最小単位となる。通常は、セルアレイ１中には数百個から数千個程度のブロックが配置される。また、ブロック中の１制御ゲート線により選択される範囲が１ページであり、これがデータを一括して書込み、或いは一括して読み出すことができる範囲となる。
【００１４】
図１に示すように、アドレスはアドレスバッファ４により取り込まれ、これがロウデコーダ２及びカラムデコーダ３によりデコードされて、メモリセルアレイ１の制御ゲート線ＣＧ選択及びビット線ＢＬ選択がなされる。センスアンプ／データラッチ５は、メモリセルアレイ１の選択されたデータをセンスし、またデータバッファ６を介して外部から取り込まれる書き込みデータをラッチする。
制御回路７は、コマンドを取り込んでデータ消去制御信号等の各種制御信号を発生し、また電圧発生回路８を制御する。電圧発生回路８は、データ書込みや消去に必要な昇圧電圧、負電圧等を発生する。
【００１５】
このＮＡＮＤ型ＥＥＰＲＯＭの動作は、次の通りである。選択されたメモリセルの制御ゲートには高電圧Ｖｐｇｍ(＝２０Ｖ程度)を印加し、他のメモリセルの制御ゲートには中間電位Ｖｐａｓｓ(＝１０Ｖ程度)を印加し、ビット線にはデータに応じて０Ｖ又は電源電圧ＶCC(＝３〜５Ｖ程度)を与える。ビット線に０Ｖが与えられた時、その電位は選択メモリセルのドレインやチャネル部まで伝達されて、ドレインから浮遊ゲートに電子注入が生じる。これにより、その選択されたメモリセルのしきい値は正方向にシフトする。この状態を例えば“０”とする。ビット線にＶCCが与えられた時は電子注入が起こらず、従ってしきい値は変化せず、負に止まる。この状態はメモリの初期状態であり、“１”である。詳細な書込み動作・原理については、後述する。
【００１６】
データ消去は、選択されたＮＡＮＤセルブロック内の全てのメモリセルに対して同時に行われる。即ち、選択されたセルブロック内の全ての制御ゲート線を０Ｖとし、ビット線ＢＬ、ソース線、ｐ型ウェル(もしくはｐ型基板)、非選択ＮＡＮＤセルブロック中の制御ゲート線ＣＧ及び全ての選択ゲート線ＳＧに２０Ｖ程度の高電圧を印加する。これにより、選択ＮＡＮＤセルブロック中の全てのメモリセルで浮遊ゲートの電子がｐ型ウェル(もしくはｐ型基板)に放出され、しきい値電圧は負方向にシフトし、データ“１”となる。
データ読み出し動作は、選択されたメモリセルの制御ゲートを０Ｖとし、それ以外のメモリセルの制御ゲート及び選択ゲートを電源電圧ＶCCとして、選択メモリセルで電流が流れるか否かを検出することにより行われる。
【００１７】
この実施の形態において、メモリセルアレイ１の複数のＮＡＮＤセルブロックＢｉのうち、例えば図２に斜線で示した一つのブロックＢ０が、一度だけデータ書込みが許される状態変化記憶領域としてのＯＴＰブロック、即ちデータ消去が不可とされる領域として設定される。このＯＴＰブロックには、不可逆な状態変化を示すマークデータを、誤書き込み等を生じることなく記憶することが必要であり、そのための制御方法が重要になる。その具体的な制御方法は、後述する。
【００１８】
ＯＴＰブロックについてデータ消去禁止とするために、ロウデコーダ２にはブロックデコード部毎にフューズ回路が付加されている。図４は、ロウデコーダ２のブロックＢｉに対応するデコード部ＲＤｉの構成例を示す。ロウデコーダ２は、チップに入力されるアドレスに従いブロックを選択し、周辺回路中にて発生した電圧を制御ゲート・選択ゲート等に転送する役割を担い、データ書込み・データ消去・データ読出しの各動作を実現する。
信号ＲＤＥＣはロウデコーダ２の起動信号であり、書込み・消去・読出しの動作時には“Ｈ”となる。信号ＡＤＲＥＳＳはブロックアドレスであり、アドレスが選択されたブロックのみ全て“Ｈ”となり、ＮＡＮＤゲートＧ１とインバータＩ１からなるデコードゲートの出力ノードＮＡが“Ｈ”になる。つまり選択されたブロックのみノードＮＡが“Ｈ”、それ以外のブロックでは“Ｌ”となる。
【００１９】
ノードＮＡの状態は、ＮＭＯＳトランジスタＱＮ２を介して反転されてラッチ回路４１のノードＮＬに転送される。ラッチ回路４１は、データ消去の間、このブロックが選択されていることを示す消去選択フラグを保持するために設けられている。即ち、選択ブロックについて、ラッチ回路４１は、ノードＮＬ＝“Ｌ”、ノードＮＲ＝“Ｈ”を保持する。但し、ＮＭＯＳトランジスタＱＮ２は、ＮＭＯＳトランジスタＱＮ１を介し、フューズＦを介して接地されている。このフューズＦの切断の有無が、そのブロックをＯＴＰ化するか否かを決定するものであり、ウェハ段階でプログラミングされる。
即ち、フューズＦを切断したブロックでは、ＮＭＯＳトランジスタＱＮ２は接地されず、ラッチ回路４１は、ブロック選択がなされても消去選択フラグ（ＮＬ＝“Ｌ”，ＮＲ＝“Ｈ”）を保持することができないことになる。これにより、フューズＦを切断したブロックは、データ消去が禁止されるＯＴＰブロックと設定されたことになる。
【００２０】
ノードＮＡのデータとラッチ回路４１のノードＮＲのデータは、制御回路７から発生される消去制御信号ＥＲＡＳＥにより制御される転送ゲートＴＧ１，ＴＧ２により選択的にノードＮ０に転送される。即ち、データ書込み及び読出しのときは、ＥＲＡＳＥ＝“Ｌ”であり、このとき転送ゲートＴＧ１がオン、ＴＧ２がオフとなり、ノードＮＡのデータがノードＮ０に転送される。データ消去のときは転送ゲートＴＧ１がオフ、ＴＧ２がオンとなり、ラッチ回路４１のノードＮＲのデータがノードＮ０に転送される。
【００２１】
ノードＮ０のデータに応じて、電圧発生回路８の出力電圧ＶＳＥ（又はＶCC）が、転送スイッチ４２により相補信号電圧として、信号線Ｎ１／／Ｎ１に転送される。即ちＮ０＝“Ｈ”の選択ブロックでは、転送スイッチ４２のＰＭＯＳトランジスタＱＰ１がオフ、ＱＰ２がオンとなり、Ｎ１＝ＶＰＰ(書込み・消去・読出し等を実現するための高電圧)、／Ｎ１＝０Ｖとなる。この信号線Ｎ１，／Ｎ１により転送ゲートＴＧ３，ＴＧ４，…がオン制御されて、周辺回路部バスラインからの駆動電圧がメモリセルアレイの制御ゲート線ＣＧ、選択ゲート線ＳＧに伝わり、データの書込み・読出しが実行される。非選択ブロックでは、Ｎ１＝０Ｖ, ／Ｎ１＝ＶＰＰとなり、周辺回路部バスラインと制御ゲート線、選択ゲート線が非接続状態にある。
【００２２】
具体的に、図４のロウデコーダに着目してデータ消去動作を説明する。消去動作開始前には、リセット信号ＲＳＴが“Ｈ”であり、ＮＭＯＳトランジスタＱＮ３がオンして、ラッチ回路４１は、ノードＮＬ，ＮＲがそれぞれ“Ｈ”，“Ｌ”の状態である。消去動作が開始すると、リセット信号ＲＳＴ＝“Ｌ”となり、またチップに入力されたアドレスに従ってアドレス信号ＡＤＤＲＥＳＳが設定され、さらに信号ＬＳＥＴがある一定時間“Ｈ”となる。選択ブロックでは、ノードＮＡが“Ｈ”である。このとき、ヒューズＦが非切断状態にある場合には、ヒューズＦを介してノードＮＬが０Ｖに接続されるため、ノードＮＬ，ＮＲがそれぞれ“Ｌ”,“Ｈ”となる。一方、ヒューズＦが切断状態にあるブロックでは、ブロックの選択・非選択に依らず、ノードＮＬ，ＮＲはそれぞれ“Ｈ”，“Ｌ”の状態を保つ。続いて消去制御信号ＥＲＡＳＥが“Ｈ”となり、ラッチ回路４１のノードＮＲの状態は転送ゲートＴＧ２を介してノードＮ０に伝わる。つまりノードＮＲが“Ｈ”レベルにあるブロックに対してのみ、データ消去が実行される。
【００２３】
図５は、データ書込み動作時のタイミング図である。図５のタイミング図は、選択ブロック中の１６本の制御ゲート線（ワード線）のうちＣＧ２が選択された場合の動作に対応する。書込み動作が開始すると、まずビット線ＢＬが、図６に示すように、書込みデータに応じて、０ＶまたはＶCCに充電されるとともに、選択ゲート線ＳＧ１がＶCCとなる。この時、“０”データ書込みに対応するＮＡＮＤセル（図６では、ＮＡＮＤセルＢ）では、選択ゲート線ＳＧ１により駆動される選択ゲートトランジスタＳ１を介してメモリトランジスタＭＣＢのチャネル部に０Ｖが転送される。一方、“１”データ書込み（即ち、“０”データ書込み禁止）に対応するＮＡＮＤセル（図６では、ＮＡＮＤセルＡ）では、選択ゲートトランジスタＳ１は、ＶCC−Ｖｔ(ただし、Ｖｔは選択ゲートトランジスタＳ１のしきい値電圧)まで電圧転送した後オフ状態となるため、メモリトランジスタＭＣＡのチャネル部は、“０”データ書込み側のＮＡＮＤセルに比べて高レベルのフローティング状態となる。
【００２４】
続いて、選択された制御ゲート線ＣＧ２が０ＶからＶｐｇｍ＝２０Ｖになり、非選択の制御ゲート線ＣＧ１，ＣＧ３〜ＣＧ１５は０ＶからＶｐａｓｓ＝１０Ｖとなる。これにより、“０”データ書込みに対応するＮＡＮＤセルＢ側では、選択されたメモリトランジスタＭＣＢのチャネル部が０Ｖに固定されているため、制御ゲート線ＣＧ２に高電圧が与えられて、制御ゲート・チャネル部間に２０Ｖという大きな電位差がつくため、チャネル部にある電子がトンネル現象により浮遊ゲートに注入される。これにより、メモリトランジスタＭＣＢは、しきい値電圧が正の方向にシフトする。即ち、“０”データが書き込まれる。
【００２５】
また、同じく“０”データ書込みに対応するＮＡＮＤセルＢ内の非選択のメモリトランジスタ例えばＭＣＣでは、制御ゲート・チャネル部間電位差が１０Ｖとそれほど大きくないため浮遊ゲートへの電子注入は起こらず、メモリトランジスタのしきい値電圧は変化しない。一方、“１”データ書込みに対応するＮＡＮＤセルＡ側では、メモリトランジスタＭＣＡのチャネル部がフローティング状態にあるため、制御ゲート電圧が０Ｖ→２０Ｖのように上昇しても、制御ゲートとの容量カップリングにより、チャネル部の電位も上昇しＶｂｏｏｓｔ(〜８Ｖ)となる。このため、制御ゲート・チャネル部間電位差が１２Ｖ程度となり、フローティングゲートへの電子注入は起こりにくく、メモリトランジスタＭＣＡのしきい値電圧はあまり変化しない。バス電圧Ｖｐａｓｓが与えられた他の非選択の制御ゲート線により駆動されるメモリトランジスタでも書込みは生じない。
【００２６】
図７は、データ読み出し動作のタイミング図である。ビット線ＢＬは予めＶCCに充電する。そして、選択ゲート線ＳＧ１，ＳＧ２にＶCCを与え、同時に非選択の制御ゲート線ＣＧ１，ＣＧ３〜ＣＧ１５にもＶCCを与え、選択された制御ゲート線ＣＧ２を０Ｖに保持する。これにより、選択されたメモリトランジスタの“０”，“１”に応じて、ビット線ＢＬに電流が流れるか否かが決まり、“０”，“１”の判定ができる。
【００２７】
この実施の形態において、ＯＴＰブロックは初期状態でオール“１”であり、ここにできるだけ多くのマークデータを書き込むようにする。具体的には、後に説明するように、例えば１バイト単位でオール“０”のマークデータを順次書き込んで状態変化を記憶する。従って、ＯＴＰブロックは、ロウ及びカラム方向に細分化され、各単位領域に書込み動作のみが繰り返されるために、誤書き込みが生じる危険が大きい。従って、ＯＴＰブロックでのマークデータ書込みの方法は、できる限り誤書込みを防止できる方法を用いることが望まれる。そしてそのためには、どの様な条件で誤書き込みが生じやすいかを知ることが必要である。
【００２８】
まず、図６に示すデータ書込みのバイアス条件では、“１”データが与えられるＮＡＮＤセルＡ内の制御ゲートに高電圧が与えられるメモリトランジスタＭＣＡと、“０”データが与えられるＮＡＮＤセルＢ内の非選択のメモリトランジスタＭＣＣとでは、電圧の状態が異なり、誤書き込みの条件が異なり、前者の方が誤書き込みが生じやすい。即ち、上に説明した動作例によれば、“１”データ書込みの選択メモリトランジスタＭＣＡの制御ゲート・チャネル部間電位差は、１２Ｖであり、“０”データ書込みＮＡＮＤセルＢ内の非選択メモリトランジスタＭＣＣの制御ゲート・チャネル部間電位差１０Ｖより大きいからである。
一方、図7に示したようなデータ読出し動作では、通常制御ゲート・チャネル部間電位差は最高でもＶCC程度しかならないので、誤書込み現象は読出し動作ではほとんど発生しない。
【００２９】
従って、誤書込みを防ぐには、“１”データ書込みの選択メモリトランジスタの制御ゲート・チャネル部間電位差を出来るだけ小さくする(チャネル部電圧を少しでも高くする)こと、および出来るだけ“１”データ書込みとなる回数を低減すること、の２点がキーポイントとなる。
【００３０】
更に、一つのＮＡＮＤセル内部のデータ書込み順序を考えた場合には、セルソース線に近いメモリトランジスタから順番に書込みを行った方が誤書込み現象の起こる確率を下げることができる。このことを、図８及び図９を用いて説明する。前述のように、“１”データ書込みの選択メモリトランジスタのチャネル部の電圧は、予めビット線ＢＬからＶCC−Ｖｔが予備充電されてフローティングとなり、制御ゲート線の電圧上昇時に容量カップリングにより上昇する。また、容量カップリングによる電位上昇のスタート時の電圧(つまり制御ゲートが全て０Ｖの時のチャネル部電圧)が高いほど、チャネル部電圧の最終的な到達電圧(チャネル部電圧最高値)が高くなることも明らかである。
【００３１】
図８は、ＮＡＮＤセルの最もセルソース線に近いメモリトランジスタに“０”データが書き込まれた状態で、ビット線側の選択ゲート線ＳＧ１にＶCC、全制御ゲートに０Ｖを与えて、ビット線ＢＬに与えたＶCCがＮＡＮＤセルのチャネルに転送される様子を示している。一方、図９は、ＮＡＮＤセルの最もビット線に近いメモリトランジスタに“０”データが書き込まれた状態で、ビット線側の選択ゲート線ＳＧ１にＶCC、全制御ゲートに０Ｖを与えて、ビット線ＢＬに与えたＶCCがＮＡＮＤセルのチャネルに転送される様子を示している
【００３２】
図８に示すように、セルソース線に最も近い制御ゲート線ＣＧ０のメモリトランジスタに“０”（Ｖｔ(cell)＝１Ｖ）が書かれた場合、それよりビット線側の残りのメモリセルの全てのしきい値Ｖｔ(cell)が負（≦−（ＶCC−Ｖｔ））の“１”状態であれば、ビット線ＢＬからＶCC−Ｖｔの電位を残りのメモリトランジスタのチャネルに転送することができる。一方、図９に示すように、ビット線ＢＬに最も近いメモリトランジスタに“０”データが書かれたとすると、ビット線ＢＬにＶCCを与えても、既に“０”データが書かれたメモリトランジスタよりソース線側のメモリトランジスタのチャネル領域には、“０”データが書かれたメモリトランジスタのしきい値１Ｖにより制限されて予備充電を行うことができず、約０Ｖのフローティング状態になる。
【００３３】
この様に、ビット線側のメモリトランジスタに先に“０”書込みがなされると、それ以下のメモリトランジスタのチャネルには十分な予備充電ができなくなる。これが、誤書き込みの発生原因となる。従って、書き込み対象となるメモリトランジスタよりもビット線側のメモリトランジスタを常に未書き込み（“１”）状態に保つように、セルソース側から順にデータ書込みを行うことが、無用な誤書き込みを防止する上で重要になる。
【００３４】
図１０は、上に述べた誤書込み防止の観点を考慮して、この実施の形態でのＯＴＰブロックへのマークデータ書込みの方法を示している。
ＯＴＰブロックはこの実施の形態の場合、データ消去の最小単位である１ブロックであり、１本の制御ゲート線ＣＧの範囲を１ページとして、１６ページＰａｇｅ０〜Ｐａｇｅ１５からなる。また、１ページは５２８バイトからなるものとし、ＯＴＰブロックを図示のように、カラム方向には１バイト単位で、マークデータ書込みのための単位領域を区切る。そして、状態変化を記憶するマークデータとして、１バイト単位でオール“０”である“００ｈ”を順次書き込むものとする。ＯＰＴブロックは、一度“０”データを書き込むと、そのデータを“１”に戻すことはできず、従ってこの実施の形態の場合、５２８バイト×１６ページ＝約８０００回の不可逆な状態変化を記憶することができる。
【００３５】
ここで、ＯＴＰブロックの各単位領域への１バイト単位のマークデータ“００ｈ”の書込みの順序は、図１０に矢印で示すように、１バイトずつロウアドレスを切り換え（即ちページを切り換え）、（Page0,Byte0）から（Page1,Byte0），（Page2,Byte0），…の順に行う。（Page15,Byte0）まで書き込んだら、再びページＰａｇｅ０に戻り、（Page0,Byte1），（Page1,Byte1），（Page2,Byte1），…とロウ方向にアドレスをインクリメントしながら、マークデータ“００ｈ”を書き進む。
【００３６】
このマークデータの書込み順序として、原理的には、ページＰａｇｅ０について、Byte0，Byte1，…のようにカラム方向にアドレスをインクリメントし、ページＰａｇｅ０について全バイトの書込みが終了したら次のページＰａｇｅ１に移動する、という方法も可能である。しかし、この方法では、多数の状態変化を記憶する前に、誤書込みが多く発生してしまう確率が高いものとなる。このことを例えば、（Page0，Byte527）に着目して説明すると、次のようになる。
【００３７】
（Page0，Byte527）にマークデータ書込みを行うまでに、そのメモリトランジスタに対しては、制御ゲートに高電圧が印加される“１”データ書込みの動作が５２７回繰り返されることになる。これは、ロウ方向にインクリメントした場合にもカラム方向にインクリメントした場合も同じ条件である。しかし、カラム方向にインクリメントした場合には、（Page0，Byte527）でのマークデータ書込みまでに、未だ１ページ分も終了していない。これに対して、ロウ方向にインクリメントするこの実施の形態の書込み方法では、同じ箇所（Page0，Byte527）で同様のストレスを受けるまでには、既に５２６×１６の状態変化が記憶される。
【００３８】
従ってこの実施の形態によると、ＯＴＰブロックの未書込みのメモリトランジスタに無用なストレスがかからない条件で多くのマークデータの書込みが可能になる。
また、この実施の形態では、ＯＴＰブロック内でＰａｇｅ０がセルソース線に最も近い制御ゲート線ＣＧ０に対応し、ＯＴＰブロックではＮＡＮＤセル内のセルソース線側からデータ書込みを行うようにしている。この点でも誤書込みの確率が低いものとなる。
【００３９】
図１１は、ＯＴＰブロックへのマークデータ書込みを行うためのアドレスのインクリメントのフローチャート例を示す。ステップＳ１では、まずページアドレスＰａｇｅと、ＯＴＰブロックの最大ページアドレスＰａｇｅＭＡＸの比較を行なう。現在のページアドレスが最大ページアドレス（図１０の例では、ＰａｇｅＭＡＸ＝１５）でなければ、単純にページアドレスをインクリメントする（ステップＳ２）。ステップＳ１で現在のページアドレスが最大ページアドレスであることが判定されると、ステップＳ３のルーチンへ跳び、カラムアドレスＣｏｌが最大カラムアドレスＣｏｌＭＡＸ以下であることを判定して、ページアドレスを０（先頭ページに戻る）にリセットし（ステップＳ４）、カラムアドレスをインクリメントする（ステップＳ５）。ステップＳ３においてカラムアドレスが最大カラムアドレス（図１０の例では、Byte527）であれば、これ以上ロウ方向およびカラム方向ともインクリメントできないのでエラー終了となる。
【００４０】
次に、ＯＴＰブロックへのマークデータ書込み動作の信頼性を向上させるためのアルゴリズムにつき説明する。既に述べたように、“１”データ書込みに対するストレス、すなわち、あるバイトにマークデータ“００ｈ”を書き込んでいる際にその他のメモリトランジスタにストレスが加わり、“１”データが“０”データにビット化けする誤書込みの懸念があるため、これに対応することが好ましい。但しシステムで要求される信頼性レベルやメモリトランジスタそのものの信頼性レベルによって本ルーチンは不要のケースも考えられる。
【００４１】
ここでは、不可逆な状態変化実現のためのマークデータ“００ｈ”の書き込みがなされたバイトであるか否かの判断に工夫を持たせる。すなわち、１バイト中の“０”のビット数によってこれを判断する。具体的にこの実施の形態では、１バイト（８ビット）中に６ビット以上“０”があれば、マークデータが書き込みがなされたバイトである判断するようにする。この様な判断を行なうことによって信頼性が向上する理由を次に説明する。
【００４２】
この発明においては、ＯＴＰブロックのなかで、マークデータ“００ｈ”の書き込みがなされたバイトとなされていないバイトの境界がどこかということが非常に重要である。この境界が曖昧であると非常に信頼性が低下する。例えばストレスによってまだマークデータ書き込みを行なっていないバイトのあるビットが“０”に書き込まれてしまった場合を考える。この場合１ビットのみ書き込まれたとしても、該当バイト中の“０”のビット数は６ビット以上になっていないので、本バイトが書き込み済みのバイトと判断されることはない。
【００４３】
またフラッシュメモリ一般の特性としてデータ保持特性がある。これはデータ書き込み後の時間経過等により一度書き込まれたばずの“０”データが“１”に戻ってしまう現象である。一般的にフラッシュメモリはフローティングゲートと呼ばれる絶縁体で囲まれた領域にトンネル電流やホットエレクトロン注入により電子を注入しメモリセルのしきい値を変化させることによりデータを保持する。このフローティングゲートを囲んでいる絶縁体の品質が悪いと、時間経過とともに閉じ込めたはずの電子が外部に逃げ出し、結果として“０”書き込み状態から書き込み前の“１”状態に戻ることがある。この不良モードに対しても“０”ビット数のカウント動作は有効である。
【００４４】
例えば、マークデータ“００ｈ”の書き込みを行なったあるバイトの１ビットが“１”に戻ったとする。この場合単純に該当バイトが“００ｈ”か否かで判断をしていると、該当バイトは未書き込みのバイトと判断されてしまう。しかし、“０”であるビットの数を数える手法を用いれば、“０”の数が８個から７個に減少しているが、判断基準である６ビット以上という条件を満足するため、既にマークデータ書き込みのなされたバイトと正常に判断される。
この様に、バイト単位で“０”の数をカウントすることにより未書込み領域と書込み領域の境界を判別する方法は、ＯＴＰブロックの未書込み領域でストレスによって“１”データが“０”データに化けてしまう問題、および既にマークデータが書き込まれた領域で、データ保持特性によって“０”データが“１”データに化けてしまう問題の両方に対してマージンを持たせることが可能となり、信頼性が画期的に向上する。
【００４５】
図１２及び図１３は、ＯＴＰブロック内のマークデータ書込み領域と未書込み領域の境界をサーチする制御フロー、即ち空き領域か否かを調べる場合のフローチャート例を示す。ロウアドレスＲｏｗＡｄｄ及びカラムアドレスＣｏｌＡｄｄを初期化して、（Page0,Byte0）からサーチを開始する（ステップＳ１１）。ステップＳ１２では、最大カラムアドレスＣＭＡＸを超えているか否かを判断する。カラム方向の最大アドレスはByte527であるのでそれを越えて空き番地を探す必要はない。ステップＳ１３では、１バイト中に“０”データが何ビット存在するかをカウントする。ステップＳ１４では、１バイト中の“０”のビット数Ｎｕｍが６以上あるか否かを確認している。“０”のビット数が６ビット以上の場合は次のカラムをサーチするためカラムアドレスを１アドレス分インクリメントし（ステップＳ１５）、以下同様の“０”のビット数をカウントする動作を繰り返す。
【００４６】
ステップＳ１４で“０”のビット数が６未満のバイトが見つかった場合、図１３のステップＳ１６に移行する。ここで発見された“００ｈ”書き込みがなされていないカラムアドレスが先頭カラム（Byte0）であるか否かの判断を行い、先頭カラムアドレス以外の場合は、そのカラムアドレスから１番地引いた番地に戻して（ステップＳ１７）、ロウ方向のサーチに入る。またここで発見された“００ｈ”書き込みがなされていないカラムアドレスが先頭カラム（Byte0）の場合は、まだ一度も“００ｈ”書き込みがされたことのない領域であるので、現在の番地は（Page0、Byte0）となる。ステップＳ１８以下でロウ方向のサーチに入るが、まずロウアドレスＲｏｗＡｄｄが最大ロウアドレスＲＭＡＸか否かの判断を行い、最大ロウアドレス以下、即ちPage31以下であれば、ステップＳ１９で“０”データのビット数をカウントする。そして、“０”のビット数Ｎｕｍが６以上であるか否かを判断し（Ｓ２０）、ＹＥＳであれば、ロウアドレスをインクリメントし（ステップＳ２３）、ステップＳ１８に戻って以下同様の動作を繰り返す。
【００４７】
ステップＳ２０で“０”のビット数が６未満のバイトが見つかれば、そのバイトが現在のロウアドレスＣＲＡｄｄ、カラムアドレスＣＣＡｄｄ（すなわちどこから書き込みされていないかを示すバイト）としてステップＳ２４で決定される。ステップＳ１８の判断で最終ページ（ここではPage31）まで探しても"0"ビットが６ビット未満のバイトが見つからなかった場合、ステップＳ２１の処理へ移行する。ここでカラム方向のアドレスが最大カラムアドレスＣＭＡＸ（ここではByte527）であれば、本ブロックのすべてのバイトがマークデータ“００ｈ”で埋め尽くされていることになるため、書き込みがされていない最初のアドレスという定義のバイトはないことになり、エラーとして終了する（Ｓ２５）。もしカラムアドレスが最終ページアドレスでなければ、あるカラムのちょうど最終ページまでマークデータ“００ｈ”の書き込みがされたことになるので、ステップＳ２２で１アドレス引いたものを１アドレス足してもとに戻したものを現在のカラムアドレスＣＣＡｄｄとする。
【００４８】
以上のように現在マークデータの書き込みがされていないアドレスの先頭番地をサーチする方法を示したが、その方法は上記動作例には限られない。単純に先頭カラムのPage0からPage31へサーチし、次にByte1のPage0からPage31を探すように１アドレスづつインクリメントして探してもよい。その他、マークデータ“００ｈ”の書き込みがされている番地とされていない番地の境界が確実に判別できれば、他の方法でもよい。
【００４９】
次に、上述した“０”データのビット数カウントによるＯＴＰブロックへのマークデータ書込みの境界領域サーチの手法と組み合わせて、信頼性の高いマークデータ書込みを行う手法を説明する。上記例に従い、１バイト中に“０”のビットが６ビット以上あれば書き込まれたバイトと判断する場合を考える。ここで上述したストレスにより８ビット中５ビットに“０”が誤書込みされたケースを想定する。この様なケースはまれであるが、上述の判断基準からすると未書き込みのバイトと判断される。しかしながら、判断基準の６ビットとは１ビットしか差がない。したがってこれ以降のストレス印加により、いつ６ビット以上“０”のの状態となり書き込み済みと判断されるか分からない不安定な状態である。このような不安定な未書込み領域のバイトを放置しておくことは信頼性の観点から考えて極めて問題である。
【００５０】
そこでこの実施の形態では、次のような手法により不安定な未書込み領域を放置しないようにする。即ち、あるバイトに対しマークデータ書き込みを行なった際、次に書き込むべきバイトを調べて、例えば４ビット以上“０”データになっていれば、このバイトも先行してマークデータを書き込んでしまう。従って、次に書き込むべき未書込み領域としては、初期状態で３ビット以下しか“０”のビットが存在しない状態にする。次の書き込みまでは、ＯＴＰブロックは読み出し動作しかされないので、“０”が３ビット以下の状態から６ビット以上の状態へ急に変化する可能性は極めて少ない。
以上のように、マークデータ書込みに際しては、次にマークデータ書き込みを行うべき領域の状態を先行して判断して、不安定な次の未書込み領域を残さないようにすることにより、信頼性の高いシステムが実現可能となる。
【００５１】
以上の点を考慮して、具体的なＯＴＰブロックへのマークデータ書込みの好ましい方法を説明する。基本的には、現在番地すなわち書き込みがされていない先頭の番地にマークデータ“００ｈ”を書き込むことになるが、本実施の形態では信頼性を向上される手法を取り入れる。まず、図１４を用いてマークデータ書込み方の基本概念を説明する。
これまで説明してきたようにこの発明で重要なことは、マークデータ書き込みがされた番地とされていない番地の境界アドレスが明確になることである。書き込みがされた番地の定義は６ビット以上“０”のビットがあればという定義であるが、仮にストレスによってマークデータ書き込みを実行していないにも拘わらず“０”データのビット数が５以上のバイトが存在していると想定する。この場合は何かの拍子に“０”のビット数が６に移行したとすると一番大事な現在番地が失われる可能性がある。
【００５２】
図１４を用いて具体的に説明する。ここでは現在、ＯＴＰブロックは斜線で示すように、（Byte2、Page1）までマークデータ“００ｈ”の書き込みがなされている。この境界条件を守るためには、図１４中の要注意１および要注意２と記載されたバイトの状態が重要である。要注意１のバイトの状態が不安定（例えば“０”のビット数が５）にあると、境界が移動する可能性がある。要注意２と記載されたバイトも同様の危険性をはらむ。現在番地をサーチする際、まずカラム方向のサーチを行なう実施の形態を示したが、要注意２のバイトが不安定（"0"書き込みされたバイトへ移行しやすい）だと境界が移動する可能性がある。このようにある現在番地に対して、次のロウアドレス（要注意１のバイトに相当）と次ぎのカラム（要注意２のバイトに相当）の２ヵ所の状態は重要な意味を持つ。
【００５３】
したがって本実施の形態は次ぎの手法を取り込む。即ち、ある番地にマークデータ書き込みを行なった際、同じカラムの次のロウアドレス（要注意１のバイトに相当）および次のカラムの先頭ロウアドレス（要注意２のバイトに相当）が不安定な状態であれば、これらのバイトにも同時にマークデータ書き込みを実行する。不安定な状態の境界としては“０”が４ビット以上と仮に定義する。従って“０”のビット数が０〜３の場合は次の書き込み用領域として保持され、４以上であれば“０”のビット数が６以上に変化して境界が曖昧になる前に、マークデータの書き込みを実行してしまう。
【００５４】
図１５〜図１７を参照して、更に具体的なマークデータ書込みの手法を説明する。これらの図中の斜線が施されていない空き領域（未書込み領域）の数字は、現在“０”のビットが何ビットあるかを示している。
図１５の場合、領域（Ａ）で示すバイトにマークデータ“００ｈ”の書き込みを実行したとする。次の機会の書き込み領域は（Ｂ）で示すバイトである。このバイトの“０”のビット数は０である。また次のカラムの先頭ページである（Ｃ）の位置も“０”のビット数は０であり、十分安定状態と判断される。従ってこの状態で、マークデータ書込みの処理は終了する。
【００５５】
図１６の場合を考える。領域（Ａ）で示すバイトにマークデータ“００ｈ”の書き込みを実行したとする。次の機会の書き込み領域は（Ｂ）で示すバイトである。このバイトの“０”のビット数は４であり、不安定状態と判断される。従って（Ａ）にマークデータを書き込むと同時に（Ｂ）の位置にもマークデータ書き込みを実行する。領域（Ｃ）のバイトは“０”のビット数が０で安定状態であり、次のカラムの先頭ページである領域（Ｄ）の位置も正常なので、ここでマークデータ書込み処理は終了する。
【００５６】
次に、図１７の場合を考える。領域（Ａ）に示すバイトに書き込みを行なったとする。次の書込み領域（Ｂ）のバイトは正常である。しかし、次のカラムの先頭ページである領域（Ｃ）の位置が不安定状態であるので、領域（Ｃ）にも同時にマークデータ書き込みを実行する。この領域（Ｃ）に対して次の書込み領域である（Ｄ）および次のカラムの先頭ページである領域（Ｅ）も安定状態であるので、ここでマークデータ書込み処理を終了する。
【００５７】
以上の図１４〜図１７を用いて説明したマークデータ書き込みの詳細な制御フローを図１８及び図１９に示し、その制御動作を説明する。ステップＳ３１において、これから書き込みを行なおうとするバイトのアドレスを現在のロウ及びカラムアドレスＣＲＡｄｄ及びＣＣＡｄｄとしてセットする。そして、ステップＳ３２で現在アドレスにマークデータ“００ｈ”の書込みを実行する。ここではそのバイトのみマークデータ書き込みを実行してもよいし、これまで既に書き込みを行なった領域にも一緒にマークデータ書き込みを行なってもよい。ステップＳ３３では、マークデータ書き込みが正常に実行できたか否かを確認する。
【００５８】
書き込みが正常に終了しなかった場合は、図１９のステップＳ４２へ移行する。このステップＳ４２では、書けなかったバイトが先頭ページであるか否かを判断する。先頭ページで書き込みができなかった場合はエラー終了（ステップＳ４７）となる。書き込みができなかったバイトが先頭ページでない場合は、ステップＳ４３に移る。ここで、カラムアドレスが最大カラムアドレスＣＭＡＸに達しているか否かが判断され、未満でなければエラー終了（Ｓ４７）となる。カラムアドレスが最大カラムアドレス未満であれば、ステップＳ４４へ移行する。ここではカラムアドレスをインクリメントし、ロウアドレスを先頭ページに戻す。続いてステップＳ４５でマークデータ書き込みを実行する。この処理は、あるバイトの書き込みが失敗した場合に、次のカラムの先頭番地にさえマークがつけは書き込みができなかったバイトは無視することが可能であることを意味している。
【００５９】
ステップＳ４６では、先頭ページにマークデータが書き込めたか否かを判断し、失敗であればエラー終了（Ｓ４７）となる。書き込みが正常に実行できた場合は、次の書き込み領域および次のカラムの先頭ページアドレスが不安定な状態にあるか否かを判断するルーチン、即ち図１８のステップＳ３４へ移行する。ここで、現在ロウアドレスＲＯＷＡｄｄが最大ロウアドレスＲＭＡＸ未満であるか否かを判断し、未満であればステップＳ３５でロウアドレスをインクメントした上で、ステップＳ３６で“０”のビット数をカウントする。そして、ステップＳ３７で“０”のビット数Ｎｕｍが４ビット未満であるか否かを判断し、未満であれば安定状態であるので、の次のカラムの先頭ページが安定状態か否かを確認するルーチン、即ち図１９のステップＳ３７へ移行する。もし不安定状態であれば、ステップＳ３２に戻り、該当番地にマークデータを書き込み、不安定状態を解消させる。
【００６０】
ステップＳ３８では、現在のカラムアドレスＣｏｌＡｄｄが最大カラムアドレスＣＭＡＸ未満か否かを判断する。現在位置が最大カラムアドレスにいる場合は次のカラムの先頭ページを確認するステップは不要であるので終了する。最大カラムアドレス未満の場合は、ステップＳ３９でカラムアドレスをインクリメントし、かつロウアドレスを先頭ページに戻し、ステップＳ４０でバイトの“０”ビット数をカウントする。そして、ステップＳ４１で“０”ビット数が４未満か否かを判断し、ＹＥＳであれば安定状態と判定して処理を終了する。もし４ビット以上の不安定状態であれば、不安定状態を解消すべく、ステップＳ３２に再び戻り、同様の処理を繰り返す。
【００６１】
以上のように、この実施の形態によれば、ＮＡＮＤ型フラッシュメモリの構成等を大きく変えることなく、ＯＴＰブロックへのマークデータ書込みによる不可逆的な状態変化を数多く作り出すことが可能となる。
【００６２】
この発明は上記実施例に限られない。実施の形態ではＮＡＮＤ型フラッシュメモリを例に挙げて説明したが、フラッシュメモリの種別はこれに限られず、ＡＮＤ型やＤＩＮＯＲ型等、ページ書き込みモードを持っているフラッシュメモリでは同様の手法が適応可能である。更にはこの発明は、ＥＥＰＲＯＭフラッシュメモリに限られるものではなく、同様に不揮発にデータを記憶することが可能で且つ電気的にデータ書き換えができる強誘電体メモリ（ＦＲＡＭ）等もこの発明にいう不揮発性半導体メモリに含まれる。
【００６３】
また、実施の形態では、ＯＴＰ領域の大きさをデータ消去の最小単位である１ブロックとしたが、１ブロック内の一部である複数ページ分をＯＴＰ領域として設定することもできるし、複数ブロックをＯＴＰ領域として設定することもできる。更に、ＯＴＰ領域のマークデータを書き込む単位領域は、１バイトでなくてもよく、任意の複数ビットとすることができる。この場合、境界領域の判定（即ち空き領域の判定）にマージンを持たせるためには、ビット数がある程度多いことが好ましい。但し、データ保持特性が極めて優れており、境界領域の不安定性がないフラッシュメモリの場合には、マークデータを１ビットとすることも可能である。
【００６４】
更に実施の形態では、ＥＥＰＲＯＭにおけるＯＴＰ領域の設定は、ロウデコーダ部にフューズ回路を設け、このフューズ回路のプログラミングにより行うようにしたが、フューズ回路に代わって、ウェハ段階でプログラミングができるＰＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ等を用いることができる。或いはまた、ウェハプロセスでＯＴＰ領域を設定する不揮発性半導体メモリであってもよい。
【００６５】
また、この発明が適用されるメモリシステムには、ＡＴＡカードや、コンパクトフラッシュ、マルチメディアカード等コントローラを搭載したメモリカード等を含み、搭載フラッシュメモリまたはコントローラ内部のフラッシュメモリ等の不可逆的な状態変化を利用して、カード全体として不可逆な状態変化を作り出す場合にも有効である。具体的には搭載フラッシュメモリとしてＮＡＮＤ型フラッシュメモリを搭載していれば、本実施の形態に記載した方法により不可逆な状態変化が実現できる。この時ＡＴＡカードやコンパクトフラッシュではＡＴＡの標準プロトコルにはない、ベンダーユニークなコマンドを使用して不可逆な状態変化を設定もしくは読み取りする。ベンダーユニークコマンドとしては上記実施の形態の現在番地に相当する番地のみを読み出したり、インクリメントさせるものであっても良いし、上記実施の形態のＯＴＰブロックがそのまま読み出し、書き込みできるようなコマンド体系としてもよい。またＡＴＡカード、コンパクトフラッシュ、マルチメディアカードでは完全に不可逆な状態でなくても同様の効果が期待できる。例えば上記実施の形態の現在番地に相当するものが乱数等で生成されていても、確率的には不可逆な状態変化が発生しているのと同様の効果を得ることが可能である。
【００６６】
【発明の効果】
以上述べたようにこの発明によれば、メモリ領域の一部をＯＴＰ化した不揮発性半導体メモリにおいて、ＯＴＰ領域に誤書き込み等を生じることなくマークデータを書き込み且つ、マークデータ書込み領域と未書込み領域の境界を明確にしながら、不可逆な状態変化を多く記憶することを可能とした不揮発性半導体メモリ制御方法を提供することができる。
【図面の簡単な説明】
【図１】この発明の実施の形態に用いられるＮＡＮＤ型ＥＥＰＲＯＭフラッシュメモリの構成を示す図である。
【図２】同フラッシュメモリのメモリセルアレイのブロック構成を示す図である。
【図３】同フラッシュメモリのブロックの具体構成を示す図である。
【図４】同フラッシュメモリのロウデコーダの構成を示す図である。
【図５】同フラッシュメモリのデータ書込みの動作タイミング図である。
【図６】同フラッシュメモリのデータ書込み時のバイアス条件を示す図である。
【図７】同フラッシュメモリのデータ読み出しの動作タイミング図である。
【図８】同フラッシュメモリのＮＡＮＤセル内の好ましいデータ書込み順序の例を説明するための図である。
【図９】同フラッシュメモリのＮＡＮＤセル内の好ましくないデータ書込み順序の例を説明するための図である。
【図１０】この実施の形態におけるＯＴＰブロックへのマークデータ書込みの順序を示す図である。
【図１１】同実施の形態でのマークデータ書込みのためのアドレスインクリメントのフローを示す図である。
【図１２】同実施の形態でのＯＴＰブロックの空き領域をサーチするための制御フロー（前半）を示す図である。
【図１３】同実施の形態でのＯＴＰブロックの空き領域をサーチするための制御フロー（後半）を示す図である。
【図１４】同実施の形態でのＯＴＰブロックへのマークデータ書込みの具体的な手法を説明するための図である。
【図１５】同じくＯＴＰブロックへのマークデータ書込みにおいて、安定な境界領域が保持される例を説明するための図である。
【図１６】同じくＯＴＰブロックへのマークデータ書込みにおいて、不安定な境界領域を解消する具体例を説明するための図である。
【図１７】同じくＯＴＰブロックへのマークデータ書込みにおいて、不安定な境界領域を解消する他の具体例を説明するための図である。
【図１８】この実施の形態でのＯＴＰブロックへのマークデータ書込みの制御フロー（前半）を示す図である。
【図１９】この実施の形態でのＯＴＰブロックへのマークデータ書込みの制御フロー（後半）を示す図である。
【符号の説明】
１…メモリセルアレイ、２…ロウデコーダ、３…カラムデコーダ、４…アドレスバッファ、５…センスアンプ／データラッチ、６…データバッファ、７…制御回路、８…電圧発生回路、Ｆ…フューズ。
【図１】
0004040215.tif 000002
【図２】
0004040215.tif 000003
【図３】
0004040215.tif 000004
【図４】
0004040215.tif 000005
【図５】
0004040215.tif 000006
【図６】
0004040215.tif 000007
【図７】
0004040215.tif 000008
【図８】
0004040215.tif 000009
【図９】
0004040215.tif 000010
【図１０】
0004040215.tif 000011
【図１１】
0004040215.tif 000012
【図１２】
0004040215.tif 000013
【図１３】
0004040215.tif 000014
【図１４】
0004040215.tif 000015
【図１５】
0004040215.tif 000016
【図１６】
0004040215.tif 000017
【図１７】
0004040215.tif 000018
【図１８】
0004040215.tif 000019
【図１９】
0004040215.tif 000020