(57)【要約】【課題】  ビット線がメモリセル間で共有されたメモリアレイでは、プログラムベリファイ時に、隣接セルにセル電流が流出するために、プログラムすべきメモリセルのしきい値が低めに誤判定される。【解決手段】  プログラムベリファイ時に、制御回路３は、プログラムすべきメモリセルのオフセットｎ以下の隣接セルがすべて消去状態である場合にはフェイル値を、それ以外の場合はパス値を、隣接セルバッファ５に書き込む。制御回路３は、入力された書き込みデータについてベリファイを行うとともに、隣接セルバッファ５に記憶されたデータについてもベリファイを行う。後者のベリファイでは、セル電流の流出分を補償するために、通常よりも高いベリファイ電圧が使用される。【選択図】  図１ 
2006024345.tif 000002
【特許請求の範囲】
【請求項１】
プログラムベリファイ機能を有するフラッシュメモリであって、
メモリセルと、ワード線と、ワード線方向に隣り合うメモリセル間で共有されたビット線とを含むフラッシュメモリアレイと、
前記フラッシュメモリアレイへの書き込みデータのバッファとして機能するライトバッファと、
前記ライトバッファ以上の容量を有する隣接セルバッファと、
前記フラッシュメモリアレイに対してプログラムベリファイを行う制御回路とを備え、
前記制御回路は、
入力された前記書き込みデータを前記ライトバッファに書き込み、
前記書き込みデータと、前記フラッシュメモリアレイからの読み出しデータとに基づき論理演算を行い、得られた結果を隣接セルデータとして前記隣接セルバッファに書き込み、
前記書き込みデータと前記フラッシュメモリアレイとの間でベリファイを行うとともに、前記隣接セルデータと前記フラッシュメモリアレイとの間でベリファイを行い、
ベリファイに失敗したビットに対応したメモリセルにプログラムパルスを印加することを特徴とする、フラッシュメモリ。
【請求項２】
前記制御回路は、
入力された前記書き込みデータに基づき、プログラムの不要性を示すパス値およびプログラムの必要性を示すフェイル値を前記ライトバッファに書き込み、
前記ライトバッファに記憶されたデータを前記隣接セルバッファに複写し、
前記隣接セルバッファに記憶されたデータと、ワード線に読み出し電圧を印加した状態で前記フラッシュメモリアレイから読み出したデータとに基づき、同じワード線に接続されたオフセットが所定数ｎ（ｎは正の整数）以下のメモリセル間で論理演算を行い、得られたパス値またはフェイル値を前記隣接セルデータとして前記隣接セルバッファに書き込み、
前記ライトバッファに記憶されたデータと、ワード線に第１のベリファイ電圧を印加した状態で前記フラッシュメモリアレイから読み出したデータとに基づき論理演算を行い、得られたパス値またはフェイル値を前記ライトバッファに書き込み、
前記隣接セルバッファに記憶されたデータと、ワード線に前記第１のベリファイ電圧とは異なる第２のベリファイ電圧を印加した状態で前記フラッシュメモリアレイから読み出したデータとに基づき論理演算を行い、得られたパス値またはフェイル値を前記隣接セルバッファに書き込み、
前記ライトバッファおよび前記隣接セルバッファに記憶されたデータにフェイル値が含まれている場合には、対応するメモリセルにプログラムパルスを印加すること特徴とする、請求項１に記載のフラッシュメモリ。
【請求項３】
前記制御回路は、前記隣接セルデータの各ビットに、前記ライトバッファに記憶されたデータ中の対応するビットがフェイル値であり、かつ、当該ビットの書き込み先メモリセルと同じワード線の読み出しビット線側に接続され、当該書き込み先メモリセルからのオフセットが前記所定数ｎ以下のメモリセルからの読み出しデータがすべて消去状態である場合にはフェイル値を、それ以外の場合にはパス値を書き込むことを特徴とする、請求項２に記載のフラッシュメモリ。
【請求項４】
前記制御回路は、
ワード線に前記第１のベリファイ電圧を印加した状態で前記フラッシュメモリアレイから読み出したデータがプログラム状態である場合には、前記ライトバッファに記憶されたデータ中の対応するビットをパス値に更新し、
ワード線に前記第２のベリファイ電圧を印加した状態で前記フラッシュメモリアレイから読み出したデータがプログラム状態である場合には、前記隣接セルバッファに記憶されたデータ中の対応するビットをパス値に更新することを特徴とする、請求項２に記載のフラッシュメモリ。
【請求項５】
前記第２のベリファイ電圧は、前記第１のベリファイ電圧よりも高いことを特徴とする、請求項２に記載のフラッシュメモリ。
【請求項６】
前記所定数ｎが７以下であることを特徴とする、請求項２に記載のフラッシュメモリ。
【請求項７】
前記所定数ｎが３であり、
前記制御回路は、
前記隣接セルデータの各ビットに、前記ライトバッファに記憶されたデータ中の対応するビットがフェイル値であり、かつ、当該ビットの書き込み先メモリセルと同じワード線の読み出しビット線側に接続され、当該書き込み先メモリセルからのオフセットが３以下のメモリセルからの読み出しデータがすべて消去状態である場合にはフェイル値を、それ以外の場合にはパス値を書き込み、
ワード線に前記第１のベリファイ電圧を印加した状態で前記フラッシュメモリアレイから読み出したデータがプログラム状態である場合には、前記ライトバッファに記憶されたデータ中の対応するビットをパス値に更新し、
ワード線に前記第２のベリファイ電圧を印加した状態で前記フラッシュメモリアレイから読み出したデータがプログラム状態である場合には、前記隣接セルバッファに記憶されたデータ中の対応するビットをパス値に更新し、
前記第２のベリファイ電圧は、前記第１のベリファイ電圧よりも高いことを特徴とすることを特徴とする、請求項２に記載のフラッシュメモリ。
【請求項８】
前記制御回路は、
入力された前記書き込みデータに基づき、プログラムの不要性を示すパス値およびプログラムの必要性を示すフェイル値を前記ライトバッファに書き込み、
０以上所定数ｎ（ｎは正の整数）以下の整数ｉについて第ｉのプログラム処理を行い、
前記第ｉのプログラム処理では、
前記ライトバッファに記憶されたデータを前記隣接セルバッファに複写し、
ｉが０である場合を除き、前記隣接セルバッファに記憶されたデータと、ワード線に読み出し電圧を印加した状態で前記フラッシュメモリアレイから読み出したデータとに基づき、同じワード線に接続されたオフセットがｉ以下のメモリセル間で論理演算を行い、得られたパス値またはフェイル値を前記隣接セルデータとして前記隣接セルバッファに書き込み、
前記隣接セルバッファに記憶されたデータと、ワード線に第ｉのベリファイ電圧を印加した状態で前記フラッシュメモリアレイから読み出したデータとに基づき論理演算を行い、得られたパス値またはフェイル値を前記隣接セルバッファに書き込み、
前記隣接セルバッファに記憶されたデータにフェイル値が含まれている場合には、対応するメモリセルにプログラムパルスを印加することを特徴とする、請求項１に記載のフラッシュメモリ。
【請求項９】
前記制御回路は、前記第ｉのプログラム処理では、前記隣接セルデータの各ビットに、前記ライトバッファに記憶されたデータ中の対応するビットがフェイル値であり、かつ、当該ビットの書き込み先メモリセルと同じワード線の読み出しビット線側に接続され、当該書き込み先メモリセルからのオフセットがｉ以下のメモリセルからの読み出しデータがすべて消去状態である場合にはフェイル値を、それ以外の場合にはパス値を書き込むことを特徴とする、請求項８に記載のフラッシュメモリ。
【請求項１０】
前記制御回路は、前記第ｉのプログラム処理では、ワード線に前記第ｉのベリファイ電圧を印加した状態で前記フラッシュメモリアレイから読み出したデータがプログラム状態である場合には、前記隣接セルバッファに記憶されたデータ中の対応するビットをパス値に更新することを特徴とする、請求項８に記載のフラッシュメモリ。
【請求項１１】
前記第ｉのベリファイ電圧は、ｉが０である場合を除き、第（ｉ−１）のベリファイ電圧以上であることを特徴とする、請求項８に記載のフラッシュメモリ。
【請求項１２】
前記制御回路は、前記第ｉのプログラム処理を実行中に、前記第ｉのベリファイ電圧を複数の値に切り替えることを特徴とする、請求項８に記載のフラッシュメモリ。
【請求項１３】
前記所定数ｎが７以下であることを特徴とする、請求項８に記載のフラッシュメモリ。
【請求項１４】
前記所定数ｎが３であり、
前記制御回路は、前記第ｉのプログラム処理では、
前記隣接セルデータの各ビットに、前記ライトバッファに記憶されたデータ中の対応するビットがフェイル値であり、かつ、当該ビットの書き込み先メモリセルと同じワード線の読み出しビット線側に接続され、当該書き込み先メモリセルからのオフセットが３以下のメモリセルからの読み出しデータがすべて消去状態である場合にはフェイル値を、それ以外の場合にはパス値を書き込み、
ワード線に前記第ｉのベリファイ電圧を印加した状態で前記フラッシュメモリアレイから読み出したデータがプログラム状態である場合には、前記隣接セルバッファに記憶されたデータ中の対応するビットをパス値に更新し、
前記第ｉのベリファイ電圧は、ｉが１以上３以下である場合には、第（ｉ−１）のベリファイ電圧以上であることを特徴とする、請求項８に記載のフラッシュメモリ。
【請求項１５】
前記隣接セルバッファは、
前記ライトバッファの２倍以上の容量を有し、
前記隣接セルデータを求めるときに、前記ライトバッファに記憶されたデータ中のビットについて、当該ビットの書き込み先メモリセルと同じワード線に接続され、当該書き込み先メモリセルからのオフセットが所定数ｎ（ｎは正の整数）以下のメモリセルからの読み出しデータを同時に２個以上記憶することを特徴とする、請求項１に記載のフラッシュメモリ。
【請求項１６】
前記ライトバッファおよび前記隣接セルバッファは、レジスタで構成されていることを特徴とする、請求項１に記載のフラッシュメモリ。
【請求項１７】
前記ライトバッファおよび前記隣接セルバッファは、ＳＲＡＭで構成されていることを特徴とする、請求項１に記載のフラッシュメモリ。
【請求項１８】
前記ライトバッファおよび前記隣接セルバッファは、両者を含む１個のメモリで構成されていることを特徴とする、請求項１に記載のフラッシュメモリ。
【請求項１９】
前記ライトバッファおよび前記隣接セルバッファは、それぞれ、独立して動作する複数のメモリで構成されていることを特徴とする、請求項１に記載のフラッシュメモリ。
【請求項２０】
前記ライトバッファおよび前記隣接セルバッファは、前記ライトバッファとして使用される第１の領域と前記隣接セルバッファとして使用される第２の領域とを含む複数のメモリで構成され、
一の前記メモリに含まれる第２の領域は、別の前記メモリに含まれる第１の領域に対応づけて使用されることを特徴とする、請求項１に記載のフラッシュメモリ。
【請求項２１】
前記フラッシュメモリアレイへの１回分の前記書き込みデータは、前記フラッシュメモリアレイ内の、ワード線方向に所定数ｎ（ｎは正の整数）よりも互いに離れたメモリセルに書き込まれることを特徴とする、請求項１に記載のフラッシュメモリ。
【請求項２２】
前記所定数ｎが３であることを特徴とする、請求項２１に記載のフラッシュメモリ。
【請求項２３】
前記制御回路は、
前記フラッシュメモリアレイにおいてビット線の選択を行う際に使用される論理Ｙアドレスを、前記フラッシュメモリアレイにおけるメモリセルの物理的な配置に対応した物理Ｙアドレスに変換する論理／物理アドレス変換器と、
前記物理Ｙアドレスと与えられたオフセットとに基づき加算または減算を行うことにより、オフセット加算後の物理Ｙアドレスを求める加減算器と、
前記オフセット加算後の物理Ｙアドレスを、オフセット加算後の論理Ｙアドレスに変換する物理／論理アドレス変換器とを含み、
前記加減算器でオーバーフローまたはアンダーフローが発生したときには、前記フラッシュメモリアレイから読み出したデータをシフトすることを特徴とする、請求項１に記載のフラッシュメモリ。
【請求項２４】
メモリセルと、ワード線と、ワード線方向に隣り合うメモリセル間で共有されたビット線とを含むフラッシュメモリアレイと、前記フラッシュメモリアレイへの書き込みデータのバッファとして機能するライトバッファと、前記フラッシュメモリアレイに対してプログラムベリファイを行う制御回路とを備えたフラッシュメモリのプログラムベリファイ方法であって、
前記フラッシュメモリが、前記ライトバッファ以上の容量を有する隣接セルバッファをさらに備え、
入力された前記書き込みデータを前記ライトバッファに書き込むステップと、
前記書き込みデータと、前記フラッシュメモリアレイからの読み出しデータとに基づき論理演算を行い、得られた結果を隣接セルデータとして前記隣接セルバッファに書き込むステップと、
前記書き込みデータと前記フラッシュメモリアレイとの間でベリファイを行うとともに、前記隣接セルデータと前記フラッシュメモリアレイとの間でベリファイを行うステップと、
ベリファイに失敗したビットに対応したメモリセルにプログラムパルスを印加するステップとを備えた、フラッシュメモリのプログラムベリファイ方法。
【請求項２５】
前記書き込みデータを書き込むステップは、入力された前記書き込みデータに基づき、プログラムの不要性を示すパス値およびプログラムの必要性を示すフェイル値を前記ライトバッファに書き込み、
前記隣接セルデータを書き込むステップは、
前記ライトバッファに記憶されたデータを前記隣接セルバッファに複写するステップと、
前記隣接セルバッファに記憶されたデータと、ワード線に読み出し電圧を印加した状態で前記フラッシュメモリアレイから読み出したデータとに基づき、同じワード線に接続されたオフセットが所定数ｎ（ｎは正の整数）以下のメモリセル間で論理演算を行い、得られたパス値またはフェイル値を前記隣接セルデータとして前記隣接セルバッファに書き込むステップとを含み、
前記ベリファイを行うステップは、
前記ライトバッファに記憶されたデータと、ワード線に第１のベリファイ電圧を印加した状態で前記フラッシュメモリアレイから読み出したデータとに基づき論理演算を行い、得られたパス値またはフェイル値を前記ライトバッファに書き込むステップと、
前記隣接セルバッファに記憶されたデータと、ワード線に前記第１のベリファイ電圧とは異なる第２のベリファイ電圧を印加した状態で前記フラッシュメモリアレイから読み出したデータとに基づき論理演算を行い、得られたパス値またはフェイル値を前記隣接セルバッファに書き込むステップとを含み、
前記プログラムパルスを印加するステップは、前記ライトバッファおよび前記隣接セルバッファに記憶されたデータにフェイル値が含まれている場合には、対応するメモリセルにプログラムパルスを印加すること特徴とする、請求項２４に記載のフラッシュメモリのプログラムベリファイ方法。
【請求項２６】
前記隣接セルデータの各ビットは、前記ライトバッファに記憶されたデータ中の対応するビットがフェイル値であり、かつ、当該ビットの書き込み先メモリセルと同じワード線の読み出しビット線側に接続され、当該書き込み先メモリセルからのオフセットが前記所定数ｎ以下のメモリセルからの読み出しデータがすべて消去状態である場合にはフェイル値に、それ以外の場合にはパス値に設定されることを特徴とする、請求項２５に記載のフラッシュメモリのプログラムベリファイ方法。
【請求項２７】
前記書き込みデータを書き込むステップは、入力された前記書き込みデータに基づき、プログラムの不要性を示すパス値およびプログラムの必要性を示すフェイル値を前記ライトバッファに書き込み、
前記隣接セルデータを書き込むステップ、前記ベリファイを行うステップ、および、前記プログラムパルスを印加するステップとして、０以上ｎ以下の整数ｉについて第ｉのプログラムステップを備え、
前記ｉのプログラムステップは、
前記ライトバッファに記憶されたデータを前記隣接セルバッファに複写するステップと、
ｉが０である場合を除き、前記隣接セルバッファに記憶されたデータと、ワード線に読み出し電圧を印加した状態で前記フラッシュメモリアレイから読み出したデータとに基づき、同じワード線に接続されたオフセットがｉ以下のメモリセル間で論理演算を行い、得られたパス値またはフェイル値を前記隣接セルデータとして前記隣接セルバッファに書き込むステップと、
前記隣接セルバッファに記憶されたデータと、ワード線に第ｉのベリファイ電圧を印加した状態で前記フラッシュメモリアレイから読み出したデータとに基づき論理演算を行い、得られたパス値またはフェイル値を前記隣接セルバッファに書き込むステップと、
前記隣接セルバッファに記憶されたデータにフェイル値が含まれている場合には、対応するメモリセルにプログラムパルスを印加するステップとを含むことを特徴とする、請求項２４に記載のフラッシュメモリのベリファイ方法。
【請求項２８】
前記第ｉのプログラムステップでは、前記隣接セルデータの各ビットは、前記ライトバッファに記憶されたデータ中の対応するビットがフェイル値であり、かつ、当該ビットの書き込み先メモリセルと同じワード線の読み出しビット線側に接続され、当該書き込み先メモリセルからのオフセットがｉ以下のメモリセルからの読み出しデータがすべて消去状態である場合にはフェイル値に、それ以外の場合にはパス値に設定されることを特徴とする、請求項２７に記載のフラッシュメモリのベリファイ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビット線がメモリセル間で共有されたメモリアレイを備えたフラッシュメモリ、および、そのプログラムベリファイ方法に関する。
【背景技術】
【０００２】
フラッシュメモリやＥＥＰＲＯＭなど従来の不揮発性メモリでは、ポリシリコン等の電気伝導体をデータ蓄積手段として使用するフローティングゲート型メモリセルが採用されている。また近年、集積度と信頼性を高めるために、絶縁体であるＯＮＯ膜（窒化膜と酸化膜の複合構造）をデータ蓄積手段として使用するＮＲＯＭ（Nitride Read-Only Memory）型メモリセルが注目されている。
【０００３】
ＮＲＯＭ型メモリセルを用いてメモリアレイを構成するときには、隣り合うメモリセル間でビット線を共有するバーチャルグランドアレイ方式が採用される。バーチャルグランドアレイ方式のメモリアレイには、メモリセルおよびワード線に加えて、ワード線方向に隣り合うメモリセル間で共有されたビット線（以下、拡散ビット線という）が配置される（後述する図２を参照）。このようにビット線を共有することにより、ＮＲＯＭ型メモリセルを用いて集積度の高いメモリアレイを構成することができる。
【０００４】
ＮＲＯＭ型メモリセルに対するプログラム処理および消去処理について説明する。ＮＲＯＭ型メモリセルに外部からある電圧を印加することにより、ドレイン−ソース間にチャンネル電流が流れるので、メモリセルにホットエレクトロンを注入することができる。また、メモリセルに外部から別の電圧を印加することにより、バンド間トンネル効果で生成されたホットホールをメモリセルに注入することができる。ホットエレクトロンが注入されたメモリセルは高しきい値状態になり、ホットホールが注入されたメモリセルは低しきい値状態になる。以下、高しきい値状態をプログラム状態、低しきい値状態を消去状態という。プログラム状態および消去状態は、それぞれ例えば、０を記憶した状態および１を記憶した状態に対応づけられる。
【０００５】
メモリセルをプログラム状態から消去状態に遷移させる処理は、一般に、複数のメモリセルに対して同時に行われる。これに対して、メモリセルを消去状態からプログラム状態に遷移させる処理は、各メモリセルに対して個別に行われる。以下、複数のメモリセルを同時に消去状態に遷移させる処理を消去処理、複数のメモリセルのうちで指定されたメモリセルをプログラム状態に遷移させる処理をプログラム処理という。プログラム処理および消去処理は、所望のワード線（ゲート線）に所定のレベルの電圧を印加した状態で、主として、ドレイン側の拡散ビット線に所定の電圧レベルを有するパルスを印加することにより行われる。また、プログラム処理および消去処理では、パルスを印加した後に、メモリセルの状態が変化したか否かを判定するベリファイ処理が行われる。特に、プログラム処理におけるベリファイ処理を、プログラムベリファイ処理という。
【０００６】
バーチャルグランドアレイ方式のメモリアレイからデータを読み出す方法としては、ソース側読み出し方式が広く知られている。ソース側読み出し方式では、読み出し対象のメモリセルを選択する前に、すべての拡散ビット線が一時的に接地電位に接続され、その後に高インピーダンス状態に制御される。また、読み出し対象となるメモリセルのゲートにはワード線経由でゲートバイアスが印加され、ドレインには読み出し用ドレインバイアス（例えば、約２Ｖ）が印加され、ソース側の拡散ビット線はセンスアンプに接続される。これらの電圧が印加されると、メモリセルに電流（以下、セル電流という）が流れる。このセル電流は、ソース側の拡散ビット線を流れる。センスアンプは、ソース側の拡散ビット線を流れるセル電流と、これとは別の手段で求めたリファレンス電流とを比較する。セル電流がリファレンス電流よりも多い場合は、メモリセルから読み出したデータは１と判定され、それ以外の場合は、メモリセルから読み出したデータは０と判定される。
【０００７】
以下、メモリセルＭについて、メモリセルＭと同じワード線に接続されたメモリセルのうち、メモリセルＭのソース側（読み出しビット線側）に配置されたメモリセルＭ’について考える。メモリセルＭからメモリセルＭ’までの間に配置されたメモリセルの個数（ただし、メモリセルＭを除き、メモリセルＭ’を含む）を、オフセットという。また、メモリセルＭからのオフセットが所定数ｎ（ｎは正の整数）以下であるメモリセルを隣接セルという。例えば、メモリセルＭとソース側の拡散ビット線を共有しているメモリセルＭ１は、メモリセルＭのオフセット１の隣接セルと呼ばれ、メモリセルＭ１とドレイン側の拡散ビット線を共有しているメモリセルＭ２は、メモリセルＭのオフセット２の隣接セルと呼ばれる（後述する図２を参照）。
【０００８】
なお、ＮＲＯＭ型メモリセルの動作の詳細は、国際公開第９７／０７０００号パンフレット（特許文献１）、米国特許第５７６８１９２号明細書（特許文献２）、および、米国特許第６０１１７２５号明細書（特許文献３）などに記載されている。バーチャルグランドアレイ方式の詳細は、米国特許第５９６３４６５号明細書（特許文献４）、米国特許第５２０４８３５号明細書（特許文献５）、および、米国特許第５１５１３７５号明細書（特許文献６）に記載されている。ソース側読み出し方式の詳細は、米国特許第６１３４１５６号明細書（特許文献７）に記載されている。
【特許文献１】国際公開第９７／０７０００号パンフレット
【特許文献２】米国特許第５７６８１９２号明細書
【特許文献３】米国特許第６０１１７２５号明細書
【特許文献４】米国特許第５９６３４６５号明細書
【特許文献５】米国特許第５２０４８３５号明細書
【特許文献６】米国特許第５１５１３７５号明細書
【特許文献７】米国特許第６１３４１５６号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、バーチャルグランドアレイ方式のメモリアレイを含むフラッシュメモリには、以下に示すように、メモリアレイで隣接セル効果が起こるために信頼性が低下するという問題がある。バーチャルグランドアレイ方式のメモリアレイに含まれるメモリセルＭは、オフセット１の隣接セルＭ１とソース側の拡散ビット線を共有している。また、隣接セルＭ１はメモリセルＭと同じワード線に接続されているので、メモリセルＭからデータを読み出すときには、メモリセルＭに加えて隣接セルＭ１も選択状態となる。このため、メモリセルＭからデータを読み出すときに、メモリセルＭのセル電流の一部が隣接セルＭ１に流れ込み、メモリセルＭのソース側の拡散ビット線に接続されたセンスアンプで検知されるセル電流が減少する。この現象が、隣接セルによるセル電流損失、略して、隣接セル効果と呼ばれる。
【００１０】
隣接セル効果が起こる場合、センスアンプで検知されるセル電流の量は、読み出し対象のメモリセルの状態が同じでも、隣接セルの状態に応じて変化する。より詳細には、センスアンプで検知されるセル電流の量は、オフセット１の隣接セルから数えて消去状態の隣接セルが連続する個数に依存して変化する。一例を挙げると、上記個数が０である第１の場合（すなわち、オフセット１の隣接セルがプログラム状態である場合）と、上記個数が３である第２の場合（すなわち、オフセット１〜３の隣接セルが消去状態で、オフセット４の隣接セルがプログラム状態である場合）とを比較すると、読み出し対象のメモリセルの状態が同じでも、隣接セルに流れる電流の量は、第２の場合のほうが多い。したがって、センスアンプで検知されるセル電流の量は、第２の場合のほうが少ない。
【００１１】
隣接セルの状態によってセル電流が変化する現象は、プログラムベリファイ時にも起こる。このため、メモリセルをプログラム状態に遷移させるためにパルスを印加する回数、言い換えればメモリセルのしきい値も、隣接セルの状態に応じて変化する。例えば、上記第１および第２の場合においてメモリセルをプログラム状態に遷移させるとすると、プログラムベリファイ時にセンスアンプで検知されるセル電流は、第１の場合よりも第２の場合のほうが少ない。このため第２の場合では、第１の場合と比べて、印加すべきパルスは少なくてもよいと誤判定される。
【００１２】
このようにパルスの印加回数が隣接セルの状態に応じて変化するために、プログラム状態のメモリセルのしきい値は、理想よりも低レベル側の広い範囲に分布する。このため、読み出しマージンが減少したり、フラッシュメモリの信頼性が低下したりする。したがって、隣接セル効果の影響を排除することは、バーチャルグランドアレイ方式のメモリアレイを備えたフラッシュメモリにおいて、重要な課題であると認識されている。
【００１３】
それ故に、本発明は、隣接セル効果の影響を排除した信頼性の高いフラッシュメモリ、および、そのプログラムベリファイ方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明のフラッシュメモリは、プログラムベリファイ機能を有するフラッシュメモリであって、メモリセルと、ワード線と、ワード線方向に隣り合うメモリセル間で共有されたビット線とを含むフラッシュメモリアレイと、フラッシュメモリアレイへの書き込みデータのバッファとして機能するライトバッファと、ライトバッファ以上の容量を有する隣接セルバッファと、フラッシュメモリアレイに対してプログラムベリファイを行う制御回路とを備える。制御回路は、入力された書き込みデータをライトバッファに書き込み、書き込みデータと、フラッシュメモリアレイからの読み出しデータとに基づき論理演算を行い、得られた結果を隣接セルデータとして隣接セルバッファに書き込み、書き込みデータとフラッシュメモリアレイとの間でベリファイを行うとともに、隣接セルデータとフラッシュメモリアレイとの間でベリファイを行い、ベリファイに失敗したビットに対応したメモリセルにプログラムパルスを印加する。このように、通常のベリファイに加えて、隣接セルの状態を考慮したベリファイを行うことにより、隣接セル効果の影響を排除し、フラッシュメモリの信頼性を高めることができる。
【００１５】
本発明のフラッシュメモリは、第１のプログラムベリファイ処理を行ってもよく、あるいは、第２のプログラムベリファイ処理を行ってもよい。第１のプログラムベリファイ処理を行う場合、制御回路は、入力された書き込みデータに基づき、プログラムの不要性を示すパス値およびプログラムの必要性を示すフェイル値をライトバッファに書き込み、ライトバッファに記憶されたデータを隣接セルバッファに複写し、隣接セルバッファに記憶されたデータと、ワード線に読み出し電圧を印加した状態でフラッシュメモリアレイから読み出したデータとに基づき、同じワード線に接続されたオフセットが所定数ｎ（ｎは正の整数）以下のメモリセル間で論理演算を行い、得られたパス値またはフェイル値を隣接セルデータとして隣接セルバッファに書き込み、ライトバッファに記憶されたデータと、ワード線に第１のベリファイ電圧を印加した状態でフラッシュメモリアレイから読み出したデータとに基づき論理演算を行い、得られたパス値またはフェイル値をライトバッファに書き込み、隣接セルバッファに記憶されたデータと、ワード線に第１のベリファイ電圧とは異なる第２のベリファイ電圧を印加した状態でフラッシュメモリアレイから読み出したデータとに基づき論理演算を行い、得られたパス値またはフェイル値を隣接セルバッファに書き込み、ライトバッファおよび隣接セルバッファに記憶されたデータにフェイル値が含まれている場合には、対応するメモリセルにプログラムパルスを印加する。
【００１６】
このように第１のプログラムベリファイ処理では、オフセットが所定数ｎ以下のメモリセル間で論理演算を行った結果が隣接セルデータとして求められ、隣接セルデータとフラッシュメモリアレイとの間で、ワード線に通常とは異なるベリファイ電圧を印加した状態でプログラムベリファイが行われる。この際、隣接セルデータとして、隣接セル効果の影響を考慮すべきメモリセルを示すデータを求め、隣接セルデータとの間でプログラムベリファイを行うときには、通常よりも高いベリファイ電圧を使用することが好ましい（あるいは、リファレンスセルを用いてリファレンス電流を発生させる際に、リファレンスセルに接続されたワード線に通常よりも低い電圧を印加しても同じ効果が得られる）。これにより、ベリファイ時に隣接セルへ流出するセル電流を補償し、隣接セル効果の影響を排除することができる。よって、プログラム状態のメモリセルのしきい値を高い精度で制御し、読み出しマージンが大きく信頼性の高いフラッシュメモリを得ることができる。
【００１７】
第１のプログラムベリファイ処理を行う場合、制御回路は、隣接セルデータの各ビットに、ライトバッファに記憶されたデータ中の対応するビットがフェイル値であり、かつ、当該ビットの書き込み先メモリセルと同じワード線の読み出しビット線側に接続され、当該書き込み先メモリセルからのオフセットが所定数ｎ以下のメモリセルからの読み出しデータがすべて消去状態である場合にはフェイル値を、それ以外の場合にはパス値を書き込んでもよい。これにより、隣接セル効果の影響を考慮すべきメモリセルを簡単に求めることができる。
【００１８】
また、制御回路は、ワード線に第１のベリファイ電圧を印加した状態でフラッシュメモリアレイから読み出したデータがプログラム状態である場合には、ライトバッファに記憶されたデータ中の対応するビットをパス値に更新し、ワード線に第２のベリファイ電圧を印加した状態でフラッシュメモリアレイから読み出したデータがプログラム状態である場合には、隣接セルバッファに記憶されたデータ中の対応するビットをパス値に更新してもよい。これにより、ベリファイ時に一度パスと判定されたメモリセルには、それ以上プログラムパルスが印加されることがない。したがって、パスとフェイルの境界にあるメモリセルに対して、必要以上にプログラムパルスが印加されることを防止することができる。よって、プログラム状態のメモリセルのしきい値が必要以上に高くなることを防止し、メモリセルの信頼性を高めることができる。
【００１９】
また、第２のベリファイ電圧は、第１のベリファイ電圧よりも高くてもよい。これにより、隣接セル効果の影響を考慮すべきメモリセルについてベリファイを行うときに、隣接セルへ流出するセル電流をワード線電位の上昇分で補償し、隣接セル効果の影響を排除することができる。なお、リファレンスセルを用いてリファレンス電流を発生させる際に、リファレンスセルに接続されたワード線に通常よりも低い電圧を印加しても同じ効果が得られる。
【００２０】
上記所定数ｎは７以下であればよく、実用上は３でもよい。所定数ｎが３である場合、制御回路は、隣接セルデータの各ビットに、ライトバッファに記憶されたデータ中の対応するビットがフェイル値であり、かつ、当該ビットの書き込み先メモリセルと同じワード線の読み出しビット線側に接続され、当該書き込み先メモリセルからのオフセットが３以下のメモリセルからの読み出しデータがすべて消去状態である場合にはフェイル値を、それ以外の場合にはパス値を書き込み、ワード線に第１のベリファイ電圧を印加した状態でフラッシュメモリアレイから読み出したデータがプログラム状態である場合には、ライトバッファに記憶されたデータ中の対応するビットをパス値に更新し、ワード線に第２のベリファイ電圧を印加した状態でフラッシュメモリアレイから読み出したデータがプログラム状態である場合には、隣接セルバッファに記憶されたデータ中の対応するビットをパス値に更新し、第２のベリファイ電圧は、第１のベリファイ電圧よりも高くする。これにより、実用上問題が生じない程度に隣接セル効果の影響を排除することができる。
【００２１】
第２のプログラムベリファイ処理を行う場合、制御回路は、入力された書き込みデータに基づき、プログラムの不要性を示すパス値およびプログラムの必要性を示すフェイル値をライトバッファに書き込み、０以上所定数ｎ（ｎは正の整数）以下の整数ｉについて第ｉのプログラム処理を行ってもよい。制御回路は、第ｉのプログラム処理では、ライトバッファに記憶されたデータを隣接セルバッファに複写し、ｉが０である場合を除き、隣接セルバッファに記憶されたデータと、ワード線に読み出し電圧を印加した状態でフラッシュメモリアレイから読み出したデータとに基づき、同じワード線に接続されたオフセットがｉ以下のメモリセル間で論理演算を行い、得られたパス値またはフェイル値を隣接セルデータとして隣接セルバッファに書き込み、隣接セルバッファに記憶されたデータと、ワード線に第ｉのベリファイ電圧を印加した状態でフラッシュメモリアレイから読み出したデータとに基づき論理演算を行い、得られたパス値またはフェイル値を隣接セルバッファに書き込み、隣接セルバッファに記憶されたデータにフェイル値が含まれている場合には、対応するメモリセルにプログラムパルスを印加する。
【００２２】
このように第２のプログラムベリファイ処理の第ｉのプログラム処理では、オフセットがｉ以下のメモリセル間で論理演算を行った結果が隣接セルデータとして求められ、隣接セルデータとフラッシュメモリアレイとの間で、第ｉのベリファイ電圧を用いたプログラムベリファイが行われる。この際、隣接セルデータとして、隣接セル効果の影響を考慮すべきメモリセルを示すデータを段階的に求め、隣接セルデータとの間でプログラムベリファイを行うときには、隣接セル効果の影響を排除できるベリファイ電圧を使用することが好ましい。このように隣接セルの状態に応じてベリファイ電圧を段階的に切り替えることにより、ベリファイ時に隣接セルへ流出するセル電流を高い精度で補償し、隣接セル効果の影響を高い精度で排除することができる。
【００２３】
第２のプログラムベリファイ処理を行う場合、制御回路は、第ｉのプログラム処理では、隣接セルデータの各ビットに、ライトバッファに記憶されたデータ中の対応するビットがフェイル値であり、かつ、当該ビットの書き込み先メモリセルと同じワード線の読み出しビット線側に接続され、当該書き込み先メモリセルからのオフセットがｉ以下のメモリセルからの読み出しデータがすべて消去状態である場合にはフェイル値を、それ以外の場合にはパス値を書き込む。これにより、隣接セル効果の影響を受ける程度に応じてメモリセルを分類したデータを簡単に求めることができる。
【００２４】
また、制御回路は、第ｉのプログラム処理では、ワード線に第ｉのベリファイ電圧を印加した状態でフラッシュメモリアレイから読み出したデータがプログラム状態である場合には、隣接セルバッファに記憶されたデータ中の対応するビットをパス値に更新してもよい。これにより、ベリファイ時に一度パスと判定されたメモリセルには、それ以上プログラムパルスが印加されることがない。したがって、パスとフェイルの境界にあるメモリセルに対して、必要以上にプログラムパルスが印加されることを防止することができる。よって、プログラム状態のメモリセルのしきい値が必要以上に高くなることを防止し、メモリセルの信頼性を高めることができる。
【００２５】
また、第ｉのベリファイ電圧は、ｉが０である場合を除き、第（ｉ−１）のベリファイ電圧以上であってもよい。これにより、ベリファイ時に、隣接セル効果の影響を受ける程度に応じて、隣接セルへ流出するセル電流をワード線電位の上昇分で補償し、隣接セル効果の影響を高い精度で排除することができる。
【００２６】
また、制御回路は、第ｉのプログラム処理を実行中に、第ｉのベリファイ電圧を複数の値に切り替えてもよい。これにより、隣接セルへ流出するセル電流をさらに高い精度で補償することができる。
【００２７】
上記所定数ｎは７以下であればよく、実用上は３でもよい。所定数ｎが３である場合、制御回路は、第ｉのプログラム処理では、隣接セルデータの各ビットに、ライトバッファに記憶されたデータ中の対応するビットがフェイル値であり、かつ、当該ビットの書き込み先メモリセルと同じワード線の読み出しビット線側に接続され、当該書き込み先メモリセルからのオフセットが３以下のメモリセルからの読み出しデータがすべて消去状態である場合にはフェイル値を、それ以外の場合にはパス値を書き込み、ワード線に第ｉのベリファイ電圧を印加した状態でフラッシュメモリアレイから読み出したデータがプログラム状態である場合には、隣接セルバッファに記憶されたデータ中の対応するビットをパス値に更新し、第ｉのベリファイ電圧は、ｉが１以上３以下である場合には、第（ｉ−１）のベリファイ電圧以上とする。これにより、実用上問題が生じない程度に隣接セル効果の影響を排除することができる。
【００２８】
あるいは、隣接セルバッファは、ライトバッファの２倍以上の容量を有し、隣接セルデータを求めるときに、ライトバッファに記憶されたデータ中のビットについて、当該ビットの書き込み先メモリセルと同じワード線に接続され、当該書き込み先メモリセルからのオフセットが所定数ｎ（ｎは正の整数）以下のメモリセルからの読み出しデータを同時に２個以上記憶してもよい。このように隣接セルバッファが隣接セルの状態を複数個同時に記憶することにより、隣接セルに対する読み出し回数を減らし、処理時間を短縮することができる。
【００２９】
また、ライトバッファおよび隣接セルバッファは、レジスタで構成されていてもよい。これにより、数ワード程度の小容量のバッファで足りる場合には、フラッシュメモリのチップ面積を減らすことができる。また、レジスタに対して高速アクセスを行うことにより、処理時間を短縮することができる。
【００３０】
また、ライトバッファおよび隣接セルバッファは、ＳＲＡＭで構成されていてもよい。これにより、大容量のバッファを小さな面積で実現することができる。
【００３１】
また、ライトバッファおよび隣接セルバッファは、両者を含む１個のメモリで構成されていてもよい。これにより、処理時間は増加するが、フラッシュメモリのチップ面積を減らすことができる。
【００３２】
また、ライトバッファおよび隣接セルバッファは、それぞれ、独立して動作する複数のメモリで構成されていてもよい。これにより、ライトバッファおよび隣接セルバッファに対する同時アクセスが可能となるので、処理時間を短縮することができる。
【００３３】
また、ライトバッファおよび隣接セルバッファは、ライトバッファとして使用される第１の領域と隣接セルバッファとして使用される第２の領域とを含む複数のメモリで構成され、一のメモリに含まれる第２の領域は、別のメモリに含まれる第１の領域に対応づけて使用されてもよい。これにより、ライトバッファおよび隣接セルバッファに対する同時アクセスが可能となり、ライトバッファから隣接セルバッファへのデータの複写を高速化できるので、処理時間を短縮することができる。
【００３４】
また、フラッシュメモリアレイへの１回分の書き込みデータは、フラッシュメモリアレイ内の、ワード線方向に所定数ｎ（ｎは正の整数、例えば３）よりも互いに離れたメモリセルに書き込まれてもよい。これにより、フラッシュメモリアレイに対してプログラムベリファイ処理を行っている間、オフセットがｎ以下の隣接セルの状態は変化しないので、隣接セルの状態が変化するか否かを監視する必要がない。したがって、簡単な隣接セル状態の解析アルゴリズムを用いて、隣接セル効果の影響を正確に排除することができる。また、隣接セルバッファの更新回数が減るので、処理時間を短縮することができる。
【００３５】
また、制御回路は、フラッシュメモリアレイにおいてビット線の選択を行う際に使用される論理Ｙアドレスを、フラッシュメモリアレイにおけるメモリセルの物理的な配置に対応した物理Ｙアドレスに変換する論理／物理アドレス変換器と、物理Ｙアドレスと与えられたオフセットとに基づき加算または減算を行うことにより、オフセット加算後の物理Ｙアドレスを求める加減算器と、オフセット加算後の物理Ｙアドレスを、オフセット加算後の論理Ｙアドレスに変換する物理／論理アドレス変換器とを含み、加減算器でオーバーフローまたはアンダーフローが発生したときには、フラッシュメモリアレイから読み出したデータをシフトしてもよい。これにより、任意のオフセットの隣接セルのアドレスを簡単に求め、フラッシュメモリアレイ内の隣接セルに対するアクセスを簡単に行うことができるので、処理時間を短縮することができる。
【００３６】
本発明のフラッシュメモリのプログラムベリファイ方法は、メモリセルと、ワード線と、ワード線方向に隣り合うメモリセル間で共有されたビット線とを含むフラッシュメモリアレイと、フラッシュメモリアレイへの書き込みデータのバッファとして機能するライトバッファと、ライトバッファ以上の容量を有する隣接セルバッファと、フラッシュメモリアレイに対してプログラムベリファイを行う制御回路とを備えたフラッシュメモリによって実行される。このプログラムベリファイ方法は、入力された書き込みデータをライトバッファに書き込むステップと、書き込みデータと、フラッシュメモリアレイからの読み出しデータとに基づき論理演算を行い、得られた結果を隣接セルデータとして隣接セルバッファに書き込むステップと、書き込みデータとフラッシュメモリアレイとの間でベリファイを行うとともに、隣接セルデータとフラッシュメモリアレイとの間でベリファイを行うステップと、ベリファイに失敗したビットに対応したメモリセルにプログラムパルスを印加するステップとを備える。このように、通常のベリファイに加えて、隣接セルの状態を考慮したベリファイを行うことにより、隣接セル効果の影響を排除し、フラッシュメモリの信頼性の高めることができる。
【００３７】
本発明のプログラムベリファイ方法は、第１のプログラムベリファイ方法であってもよく、あるいは、第２のプログラムベリファイ方法であってもよい。第１のプログラムベリファイ方法では、書き込みデータを書き込むステップは、入力された書き込みデータに基づき、プログラムの不要性を示すパス値およびプログラムの必要性を示すフェイル値をライトバッファに書き込み、隣接セルデータを書き込むステップは、ライトバッファに記憶されたデータを隣接セルバッファに複写するステップと、隣接セルバッファに記憶されたデータと、ワード線に読み出し電圧を印加した状態でフラッシュメモリアレイから読み出したデータとに基づき、同じワード線に接続されたオフセットが所定数ｎ（ｎは正の整数）以下のメモリセル間で論理演算を行い、得られたパス値またはフェイル値を隣接セルデータとして隣接セルバッファに書き込むステップとを含み、ベリファイを行うステップは、ライトバッファに記憶されたデータと、ワード線に第１のベリファイ電圧を印加した状態でフラッシュメモリアレイから読み出したデータとに基づき論理演算を行い、得られたパス値またはフェイル値をライトバッファに書き込むステップと、隣接セルバッファに記憶されたデータと、ワード線に第１のベリファイ電圧とは異なる第２のベリファイ電圧を印加した状態でフラッシュメモリアレイから読み出したデータとに基づき論理演算を行い、得られたパス値またはフェイル値を隣接セルバッファに書き込むステップとを含み、プログラムパルスを印加するステップは、ライトバッファおよび隣接セルバッファに記憶されたデータにフェイル値が含まれている場合には、対応するメモリセルにプログラムパルスを印加する。
【００３８】
特に、隣接セルデータの各ビットは、ライトバッファに記憶されたデータ中の対応するビットがフェイル値であり、かつ、当該ビットの書き込み先メモリセルと同じワード線の読み出しビット線側に接続され、当該書き込み先メモリセルからのオフセットが所定数ｎ以下のメモリセルからの読み出しデータがすべて消去状態である場合にはフェイル値に、それ以外の場合にはパス値に設定されることとしてもよい。
【００３９】
第２のプログラムベリファイ方法は、隣接セルデータを書き込むステップ、ベリファイを行うステップ、および、プログラムパルスを印加するステップとして、０以上ｎ以下の整数ｉについて第ｉのプログラムステップを備え、書き込みデータを書き込むステップは、入力された書き込みデータに基づき、プログラムの不要性を示すパス値およびプログラムの必要性を示すフェイル値をライトバッファに書き込んでもよい。この場合、第ｉのプログラムステップは、ライトバッファに記憶されたデータを隣接セルバッファに複写するステップと、ｉが０である場合を除き、隣接セルバッファに記憶されたデータと、ワード線に読み出し電圧を印加した状態でフラッシュメモリアレイから読み出したデータとに基づき、同じワード線に接続されたオフセットがｉ以下のメモリセル間で論理演算を行い、得られたパス値またはフェイル値を隣接セルデータとして隣接セルバッファに書き込むステップと、隣接セルバッファに記憶されたデータと、ワード線に第ｉのベリファイ電圧を印加した状態でフラッシュメモリアレイから読み出したデータとに基づき論理演算を行い、得られたパス値またはフェイル値を隣接セルバッファに書き込むステップと、隣接セルバッファに記憶されたデータにフェイル値が含まれている場合には、対応するメモリセルにプログラムパルスを印加するステップとを含む。
【００４０】
特に、第ｉのプログラムステップでは、隣接セルデータの各ビットは、ライトバッファに記憶されたデータ中の対応するビットがフェイル値であり、かつ、当該ビットの書き込み先メモリセルと同じワード線の読み出しビット線側に接続され、当該書き込み先メモリセルからのオフセットがｉ以下のメモリセルからの読み出しデータがすべて消去状態である場合にはフェイル値に、それ以外の場合にはパス値に設定されることとしてもよい。
【発明の効果】
【００４１】
このように本発明のフラッシュメモリおよびフラッシュメモリのベリファイ方法によれば、隣接セルの状態に基づき、隣接セル効果の影響を考慮すべきメモリセルを示す隣接セルデータが求められ、通常のベリファイに加えて、隣接セルの状態を考慮したベリファイが行われる。したがって、隣接セル効果の影響を排除し、フラッシュメモリの信頼性を高めることができる。
【発明を実施するための最良の形態】
【００４２】
以下、図面を参照して、本発明の一実施形態に係るフラッシュメモリおよびそのプログラムベリファイ方法について、ハードウエア構成、隣接セル効果とその対策、ライトバッファと隣接セルバッファの構成、オフセット加算処理、第１のプログラムベリファイ処理、および、第２のプログラムベリファイ処理の順に説明する。
【００４３】
（ハードウエア構成）
図１は、本発明の一実施形態に係るフラッシュメモリの構成を示すブロック図である。図１に示すフラッシュメモリ１は、フラッシュメモリアレイ２、制御回路３、ライトバッファ４、および、隣接セルバッファ５を備えている。フラッシュメモリアレイ２は、Ｘデコーダ６、Ｙデコーダ７、Ｙゲート８、データラッチ／センスアンプ９、および、バーチャルグランドアレイ１０を含んでいる。
【００４４】
バーチャルグランドアレイ１０は、２次元状に配置されたメモリセル、ワード線およびビット線を含んでいる（詳細は後述）。Ｘデコーダ６は、制御回路３から出力されたＸアドレス３２に基づきバーチャルグランドアレイ１０のワード線を選択する。これにより、制御回路３から出力されたワード線電圧３１は、選択されたワード線に印加される。Ｙデコーダ７は、制御回路３から出力されたＹアドレス３３に基づき、選択すべきビット線を決定する。Ｙゲート８は、Ｙデコーダ７における決定に従い、バーチャルグランドアレイ１０のビット線を選択する。バーチャルグランドアレイ１０内のメモリセルに対するデータの書き込みおよび読み出しは、Ｙゲート８経由で行われる。データラッチ／センスアンプ９は、Ｙゲート８に接続され、データを保持する機能と、読み出し時にセル電流とリファレンスル電流とを比較する機能とを有する。
【００４５】
フラッシュメモリアレイ２に書き込むべきデータ（以下、ユーザデータという）は、外部からデータ入力２３経由で入力される。制御回路３は、バーチャルグランドアレイ１０に対して、隣接セルの状態を考慮したプログラムベリファイ処理（詳細は後述）を行う。この際、制御回路３は、ライトバッファ４に蓄積されたユーザデータ、および、バーチャルグランドアレイ１０から読み出したデータに対して論理演算を行い、隣接セルの状態に関するデータ（以下、隣接セルデータという）を求める。ライトバッファ４は、外部から入力されたユーザデータのバッファとして機能する。隣接セルバッファ５は、ライトバッファ４以上の容量を有するバッファであり、制御回路３が求めた隣接セルデータを蓄積する。なお、制御回路３は、内蔵したマイクロコントローラを用いて、プログラムベリファイ処理を行う。これにより、フラッシュメモリ１の仕様（アクセス速度や信頼性など）に応じて、プログラムベリファイ処理の内容を変更することができる。
【００４６】
図２は、バーチャルグランドアレイ１０の詳細な構成を示す図である。図２に示すように、バーチャルグランドアレイ１０は、２次元状に配置されたＮＲＯＭ型メモリセル１１、ワード線１２、および、拡散ビット線１３、１４を含んでいる。メモリセル１１のゲートはワード線１２に、ソースは拡散ビット線１３に、ドレインは拡散ビット線１４に接続される。拡散ビット線１３はソース側ビット線（読み出しビット線）として機能し、拡散ビット線１４はドレイン側ビット線として機能する。同じ行に配置されたメモリセル１１のゲートは、同じワード線１２に接続される。同じ列に配置されたメモリセル１１のソースは、同じ拡散ビット線１３に接続され、同じ列に配置されたメモリセル１１のドレインは、同じ拡散ビット線１４に接続される。行方向に隣り合うメモリセル１１は、同じ拡散ビット線１３、１４に接続される。このように、ワード線方向に隣り合うメモリセル１１は、ビット線を共有する。
【００４７】
メモリセル１１は、Ｎチャンネルトランジスタで構成されたＮＲＯＭ型メモリセルである。ワード線に所定レベルの電圧を印加した状態で、ドレイン側の拡散ビット線１３に所定の電圧レベルを有するパルスを印加すると、メモリセル１１のしきい値が変化する（なお、この際、ドレインとソースとは、読み出し時の電圧レベルに基づき決定される）。したがって、外部から所定のパルスを印加することにより、メモリセル１１の状態をプログラム状態（高いしきい値状態）と消去状態（低しきい値状態）との間で遷移させることができる。プログラム状態は０を記憶した状態に、消去状態は１を記憶した状態に対応づけられる。
【００４８】
（隣接セル効果とその対策）
図２および図３を参照して、バーチャルグランドアレイ１０で起こる隣接セル効果について説明する。ここでは、例として、バーチャルグランドアレイ１０内のメモリセル４０に対してソース側読み出しが行われるものとする。この場合、メモリセル４０を選択する前に、すべての拡散ビット線１３、１４は一時的に接地電位に接続され、その後に高インピーダンス状態に制御される。また、メモリセル４０のゲートに接続されたワード線１２ａには、所定のゲートバイアスＶＣＣＲが印加され、それ以外のワード線１２には０Ｖが印加される。メモリセル４０のドレイン側の拡散ビット線１４ａには読み出し用ドレインバイアス（例えば、約２Ｖ）が印加される。メモリセル４０のソース側の拡散ビット線１３ａは、センスアンプ（図示せず）に接続される。
【００４９】
隣接セル４１〜４ｋは、それぞれ、メモリセル４０のオフセット１〜ｋの隣接セルである。メモリセル４０に対してソース側読み出しを行う場合、メモリセル４０のセル電流ＩＣの一部は、隣接セル４１〜４ｋに流れ込む。隣接セル４１〜４ｋに流れる電流の量は、隣接セル４１〜４ｋの状態に応じて変化する。
【００５０】
図３は、メモリセル４０に対してソース側読み出しを行うときの等価回路を示す図である。図３では、メモリセル４０は抵抗Ｒ０に、隣接セル４１〜４ｋは抵抗Ｒ１〜Ｒｋに、拡散ビット線１３、１４は容量に置換されている。センスアンプ９は、ソース側の拡散ビット線１３ａに対応した容量Ｃｂｉｔが充電されたとき点Ａの電位Ｖｂｉｔに基づき、メモリセル４０がプログラム状態か消去状態かを判定する。
【００５１】
この場合、容量Ｃｂｉｔは、メモリセル４０のセル電流ＩＣのすべてではなく、セル電流ＩＣからリーク電流ＩＬ１を引いた電流（ＩＣ−ＩＬ１）によって充電される。リーク電流ＩＬ１は、隣接セル４１〜４ｋに対応したＲＣネットワークに流れる電流であり、抵抗Ｒ１〜Ｒｋの抵抗値（この値は、隣接セル４１〜４ｋの状態によって定まる）によって変化する。例えばリーク電流ＩＬ１が多い場合には、容量Ｃｂｉｔは少ない量のセル電流で充電されるため、セル電流を一定時間に亘って積分して得られた電位Ｖｂｉｔは低くなる。このため、メモリセル４０のしきい値は、外部から観測すると、リーク電流ＩＬ１の分だけ高い側に移動したように見える。
【００５２】
抵抗Ｒ１〜Ｒｋの抵抗値は、隣接セル４１〜４ｋが消去状態であれば小さく、隣接セル４１〜４ｋがプログラム状態であれば大きい。したがって、隣接セル４１〜４ｋがすべて消去状態であるときに、隣接セル４１〜４ｋに対応したＲＣネットワークの抵抗値は最小になり、リーク電流ＩＬ１は最大になる。また、オフセットがｋ以下の隣接セルが消去状態であり、オフセット（ｋ＋１）の隣接セルがプログラム状態である場合には、オフセット（ｋ＋１）の隣接セルの抵抗値は、他の隣接セルの抵抗値に比べて十分に大きい。したがって、この場合、オフセットが（ｋ＋２）以上の隣接セルの状態は、セル電流の変化にほとんど影響を与えない。
【００５３】
また、オフセットがｋ以下の隣接セルがすべて消去状態である場合、オフセットが大きい隣接セルほど、セル電流の変化に与える影響は小さい。そこで隣接セル効果について検討するときには、オフセットが所定数ｎ（ｎは整数）以下のメモリセルだけを考慮する。セル電流の変化に影響を与える隣接セルは、オフセットが７以下のものに限られることが経験的に知られている。また、我々の実験結果では、オフセットが３以下の隣接セルを考慮すればよいことが知られている。このように所定数ｎは７以下であることが好ましく、通常は所定数ｎを３とすれば足りる。
【００５４】
隣接セル効果がプログラムベリファイ処理に与える影響は、以下のとおりである。上述したように、隣接セル効果が起こると、メモリセルのしきい値は、外部から観測すると高い側に移動したように見える。このため、隣接セルが消去状態にあるメモリセルを消去状態からプログラム状態に遷移させるときに、通常よりも少ない量のホットエレクトロンがメモリセルに注入された時点で、メモリセルはプログラム状態に遷移したと判定される。このようにプログラム状態のメモリセルに注入されるホットエレクトロンの量が少ないために、電荷保持特性が劣化する。また、その後に隣接セルが消去状態からプログラム状態に遷移すると、隣接セル効果の影響が減り、メモリセルのしきい値は本来の値に低下する。このため、読み出しマージンが減少する。
【００５５】
そこで、このような隣接セル効果による影響を排除するためには、プログラムベリファイ処理において、ベリファイ対象のメモリセルに接続されたワード線をオーバードライブする（すなわち、通常よりも高い電圧を印加する）ことにより、リーク電流ＩＬ１による電圧降下分を補償すればよい。この場合のオーバードライブ量Ｄ（通常の場合の電圧との差）は、次の近似式（１）から決定することができる。
ＩＣ（ＰＶＶ）〜ＩＣ（ＰＶＶ＋Ｄ）−ＩＬ１（ＰＶＶ＋Ｄ）  …（１）
ただし、上式（１）において、ＩＣ（ＰＶＶ）はプログラムベリファイ時に印加される電圧ＰＶＶを印加したときのセル電流を、ＩＣ（ＰＶＶ＋Ｄ）およびＩＬ１（ＰＶＶ＋Ｄ）はそれぞれオーバードライブ量をＤとしたときのセル電流およびオフセット１の隣接セルへのリーク電流を表す。
【００５６】
オーバードライブ量を決定するときには、オフセット１の隣接セルから数えて消去状態の隣接セルが所定数ｎだけ連続した場合に着目し、この場合について上式（１）を用いた解析を行い、オーバードライブ量を１つだけ決定してもよい。この方法によれば、１つのオーバードライブ量を使用することにより、ワード線のオーバードライブを簡単に行うことができる。あるいは、隣接セルの状態のすべての組合せについて上式（１）を用いた解析を行い、隣接セルの状態の組合せごとにオーバードライブ量Ｄを決定してもよい。この方法によれば、複数のオーバードライブ量を使用することにより、隣接セルの状態に応じてワード線のオーバードライブを段階的に行うことができる。
【００５７】
後述するように、本実施形態に係るフラッシュメモリ１は、ユーザデータとフラッシュメモリアレイ２との間でベリファイを行うとともに、隣接セルデータとフラッシュメモリアレイ２との間でベリファイを行い、後者のベリファイでは前者のベリファイよりも、バーチャルグランドアレイ１０のワード線に高い電圧を印加する。このように隣接セルの状態に応じてワード線に高い電圧を印加した状態でベリファイを行うことにより、セル電流の減少をワード線電位の上昇分で補償し、隣接セル効果の影響を排除することができる。したがって、フラッシュメモリ１によれば、消去状態からプログラム状態にメモリセルを遷移させるときの電荷注入量を高い精度で制御できるので、読み出しマージンを改善し、信頼性を高めることができる。なお、リファレンスセルを用いてリファレンス電流を発生させ、差動センスアンプを用いてセル電流とリファレンスセル電流とを比較する場合には、リファレンスセルに接続されたワード線に通常よりも低い電圧を印加しても同じ効果が得られる。
【００５８】
（ライトバッファと隣接セルバッファの構成）
フラッシュメモリ１におけるプログラムベリファイ処理を説明するに先立ち、フラッシュメモリ１のハードウエア構成上の特徴について説明する。まず、ライトバッファ４および隣接セルバッファ５について説明する。バーチャルグランドアレイ１０に対するプログラム処理は、ライトバッファ４の容量以下のある量（例えば、ライトバッファ４の容量と同量、あるいは、その半分など）を単位として行われる。
【００５９】
ライトバッファ４のアドレス空間は、バーチャルグランドアレイ１０のアドレス空間の指定された領域にマッピングされる。また、上述したように、隣接セル効果による影響を排除するためには、オフセットが所定数ｎ以下の隣接セルを考慮すればよい。そこで、ライトバッファ４のアドレス空間をバーチャルグランドアレイ１０のアドレス空間にマッピングするときに、ライトバッファ４の各アドレスは、Ｙデコーダ７によって、バーチャルグランドアレイ１０内の、ワード線方向に上記所定数ｎよりも互いに離れたメモリセルに対応づけられる。言い換えると、フラッシュメモリアレイ２へ１回の処理で書き込まれるユーザデータは、バーチャルグランドアレイ１０内の、ワード線方向に上記所定数ｎよりも互いに離れたメモリセルに書き込まれる。これにより、あるメモリセルＭを消去状態からプログラム状態に遷移させるときに、メモリセルＭのオフセットがｎ以下の隣接セルの状態は変化しないことを保証することができる。
【００６０】
隣接セルバッファ５は、ライトバッファ４に記憶されたユーザデータに対応した隣接セルデータ（隣接セルの状態に関するデータ）を蓄積する。隣接セルバッファ５には、ライトバッファ４と同じ容量のバッファを使用することができる。この場合、隣接セルバッファ５のアドレスは、ライトバッファ４のアドレスに一対一に対応づけられる。また、隣接セルバッファ５には、ライトバッファ４の２倍以上の容量のバッファを使用することができる。この場合、隣接セルバッファ５は、隣接セルデータを求めるときに、ライトバッファ４に記憶されたユーザデータの各ビットについて、隣接セルから読み出したデータを複数個記憶する。
【００６１】
ライトバッファ４および隣接セルバッファ５を構成する方法には、各種の方法が考えられる。数ワード程度の小容量のバッファで足りる場合には、２つのバッファをラッチやフリップフロップなどのレジスタで構成してもよい。この構成によれば、バッファの追加によるチップ面積の増加を抑えることができる。また、レジスタは不揮発性メモリよりも短時間でアクセスできるので、プログラムベリファイ処理を短時間で行うこともできる。また、大容量のバッファが必要な場合には、２つのバッファをメモリ（具体的には、ＳＲＡＭ）で構成してもよい。この構成によれば、大容量のバッファを比較的小さな面積で実現することができる。
【００６２】
また、２つのバッファをメモリで構成する場合には、２つのバッファを１個のメモリで構成してもよい。このようにライトバッファ４および隣接セルバッファ５を含む１個のメモリを使用することにより、プログラムベリファイ処理の所要時間が長くなるが、バッファの追加によるチップ面積の増加を抑えることができる。
【００６３】
また、２つのバッファを独立して動作する複数のメモリで構成してもよい。この場合、ライトバッファ４と隣接セルバッファ５とをそれぞれ別のメモリで構成してもよい。あるいは、図４に示すように、２個のメモリのそれぞれにライトバッファ領域と隣接セルバッファとを設けてもよい。図４において、第１のメモリ５１は第１のライトバッファ領域５３および第２の隣接セルバッファ領域５５を含み、第２のメモリ５２は第１の隣接セルバッファ領域５４と第２のライトバッファ領域５６とを含む。制御回路３は、第１のデータバス５７および制御／アドレス信号５９を用いて第１のメモリ５１にアクセスし、第２のデータバス５８および制御／アドレス信号５９を用いて第２のメモリ５２にアクセスする。第１および第２のライトバッファ領域５３、５６は、ライトバッファ４として使用され、第１および第２の隣接セルバッファ領域５４、５５は、隣接セルバッファ５として使用される。第１の隣接セルバッファ領域５４は第１のライトバッファ領域５３に対応づけて使用され、第２の隣接セルバッファ領域５５は第２のライトバッファ領域５６に対応づけて使用される。
【００６４】
このように図４では、第１および第２の隣接セルバッファ領域５４、５５は、それぞれ、別のメモリに含まれる第１および第２のライトバッファ領域５３、５６に対応づけて使用される。このため、制御回路３は、第１および第２のデータバス５７、５８を介して第１および第２のメモリ５１、５２に同時にアクセスすることができる。したがって、制御回路３は、ライトバッファ領域から隣接セルバッファ領域へユーザデータを高速に複写することができる。また、制御回路３とライトバッファ４あるいは隣接セルバッファ５との間のデータ転送レート（バンド幅）は、２つのバッファをそれぞれ別のメモリで構成した場合と比べて２倍になる。これにより、隣接セル効果の影響を排除するための処理時間を短縮し、プログラムベリファイ処理を高速に行うことができる。
【００６５】
（オフセット加算処理）
次に、制御回路３におけるオフセット加算処理について説明する。上述したように、ライトバッファ４の各アドレスは、バーチャルグランドアレイ１０内の、ワード線方向に所定数ｎよりも互いに離れたメモリセルに対応づけられる。この対応づけはＹデコーダ７によって行われるので、制御回路３は、外部から入力されたアドレス入力２１をそのままＸアドレス３２およびＹアドレス３３として出力する。以下、制御回路３からＹデコーダ７に出力されるアドレスを論理Ｙアドレスという。
【００６６】
制御回路３は、メモリセルＭのオフセットｋの隣接セルＭｋにアクセスするときには、メモリセルＭの論理Ｙアドレスにオフセットｋを加算することにより、隣接セルＭｋの論理Ｙアドレスを求める必要がある。ただし、オフセットの加算は、論理アドレスに対してではなく、バーチャルグランドアレイ１０内のメモリセルの物理的な配置に対応した物理アドレスに対して行う必要がある。そこで、制御回路３は、論理Ｙアドレスに対してオフセットを加算するために、図５に示すオフセット加算部６０を内蔵している。
【００６７】
図５に示すオフセット加算部６０は、論理／物理アドレス変換器６１、加減算器６２および物理／論理アドレス変換器６３を含み、論理Ｙアドレス７１とオフセット７３とを加算する。論理／物理アドレス変換器６１は、入力されたａビットの論理Ｙアドレス７１をａビットの物理Ｙアドレス７２に変換する。加減算器６２は、物理Ｙアドレス７２と入力されたｂビットのオフセット７３とに対して加算または減算を行い、ａビットの物理Ｙアドレス７４を出力する。より詳細には、加減算器６２は、物理Ｙアドレス７２が偶数である場合には、物理Ｙアドレス７２にオフセット７３を加算し、物理Ｙアドレス７２が奇数である場合は、物理Ｙアドレス７２からオフセット７３を減算する。物理／論理アドレス変換器６３は、物理Ｙアドレス７４をａビットの論理Ｙアドレス７５に変換する。
【００６８】
加減算器６２は、加算時にオーバーフローが発生した場合にはオーバーフロー信号７６を出力する。この場合、制御回路３は、センスアンプ９の出力信号（すなわち、フラッシュメモリアレイ２から読み出したデータ）を１ビット左にシフトする。また、加減算器６２は、減算時にアンダーフローが発生した場合にはアンダーフロー信号７７を出力する。この場合、制御回路３は、センスアンプ９の出力信号を１ビット右にシフトする。
【００６９】
図６を参照して、オフセット加算部６０を用いて、論理Ｙアドレスにオフセットを加算する理由を説明する。図６は、バーチャルグランドアレイ１０のあるワード線に複数のメモリセルが接続された様子を示す図である。図６において、ワード線方向に並んだｐ個のメモリセルのセル電流は、同じセンスアンプによって検知される。記号ＤＱ［ｑ］は、ｑ番目のセンスアンプによってセル電流が検知されるメモリセルの範囲を示す。
【００７０】
図６に示すように、各メモリセルには２本の拡散ビット線が接続され、一方がドレイン側ビット線として、他方がソース側ビット線として機能する。ここで、各メモリセルが１ビットのデータを記憶している場合には、各メモリセルに接続された２本の拡散ビット線の役割は、物理Ｙアドレスが偶数か奇数かによって固定的に定まる。したがって、メモリセルＭの隣接セルは、メモリセルＭの物理Ｙアドレスが偶数か奇数かによって、メモリセルＭの左右どちら側にあるかが定まる。例えば図６では、物理Ｙアドレスが偶数のメモリセルでは、右側の拡散ビット線がソース側ビット線として機能する。したがって、物理Ｙアドレスが偶数のメモリセルの隣接セルは、そのメモリセルの右側（物理Ｙアドレスが増加する側）にある。これに対して、物理Ｙアドレスが奇数のメモリセルの隣接セルは、そのメモリセルの左側（物理Ｙアドレスが減少する側）にある。例えば、物理Ｙアドレスが０のメモリセルの隣接セルの物理Ｙアドレスは、１、２、３などであり、物理Ｙアドレスが３のメモリセルの隣接セルの物理Ｙアドレスは、２、１、０などである。そこで、加減算器６２は、物理Ｙアドレス７２が偶数である場合は加算を行い、物理Ｙアドレス７２が奇数である場合は減算を行う。
【００７１】
また、上述したように、制御回路３は、加減算器６２でオーバーフローが発生したときには、センスアンプ９の出力信号を１ビット左にシフトし、加減算器６２でアンダーフローが発生したときには、センスアンプ９の出力信号を１ビット右にシフトする。例えば、図６において、メモリセル８１のオフセット２の隣接セルは、メモリセル８２である。この場合、メモリセル８２のセル電流は、（ｑ＋１）番目のセンスアンプによって検知される。そこで、制御回路３は、センスアンプ９の出力信号を１ビット左にシフトする。このように（ｑ＋１）番目のセンスアンプの出力信号をｑ番目のセンスアンプの出力信号として扱うことにより、制御回路３は、隣接セルから読み出したデータを正しく処理することができる。また、メモリセル８３のオフセット２の隣接セルは、メモリセル８４である。この場合、メモリセル８４のセル電流は、（ｑ−１）番目のセンスアンプによって検知される。そこで、制御回路３は、センスアンプ９の出力信号を１ビット右にシフトする。このように（ｑ−１）番目のセンスアンプの出力信号をｑ番目のセンスアンプの出力信号として扱うことにより、制御回路３は、隣接セルから読み出したデータを正しく処理することができる。
【００７２】
図６に示すように、メモリセルＭと、メモリセルＭの隣接セルＭ’とは同じワード線に接続されている。したがって、図５に示すオフセット加算部６０と上記シフト機構とを用いることにより、バーチャルグランドアレイ１０内の任意のメモリセルの任意のオフセットの隣接セルからデータを簡単に読み出すことができる。よって、隣接セル効果の影響を排除するための処理時間を短縮し、プログラムベリファイ処理を高速に行うことができる。なお、フラッシュメモリ１の仕様によっては、オフセット加算部６０の機能を、制御回路３に内蔵されたマイクロコントローラとソフトウエアとを用いて実現してもよい。また、各メモリセルが２ビットのデータを記憶している場合でも、各メモリセルにおけるドレインとソースの役割が切り替わるだけである。したがって、図５に示すオフセット加算部６０と同じ原理に従って構成されたオフセット加算器を使用することができる。
【００７３】
（第１のプログラムベリファイ処理）
以下、フラッシュメモリ１おけるプログラムベリファイ処理として、２種類のベリファイ電圧を使用する第１のプログラムベリファイ処理と、３種類以上のベリファイ電圧を使用する第２のプログラムベリファイ処理とを説明する。以下の説明では、隣接セルバッファ５の容量は、ライトバッファ４の容量と同じであるとする。なお、制御回路３に内蔵されたマイクロコントローラによって実行されるソフトウエアを変更することにより、フラッシュメモリ１は、同じハードウエアを用いて、第１および第２のプログラムベリファイ処理のいずれでも実行することができる。
【００７４】
第１のプログラムベリファイ処理の概要は、以下のとおりである。第１のプログラムベリファイ処理では、まず、外部から入力されたユーザデータは、ライトバッファ４に書き込まれる。次に、ライトバッファ４に記憶されたユーザデータと、バーチャルグランドアレイ１０から読み出したデータに基づき所定の論理演算が行われ、ユーザデータの中で隣接セル効果を考慮してベリファイを行うべきビットが求められる。求めた結果は、隣接セルデータとして隣接セルバッファ５に書き込まれる。次に、ライトバッファ４に記憶されたユーザデータとバーチャルグランドアレイ１０との間で、通常のベリファイ電圧を用いたベリファイが行われる。次に、隣接セルバッファ５に記憶された隣接セルデータとバーチャルグランドアレイ１０との間で、通常よりも高いベリファイ電圧を用いたベリファイが行われる。次に、ベリファイに失敗したビットに対応したメモリセルには、プログラムパルスが印加される。このプログラムパルスの印加は、ユーザデータとの間のベリファイおよび隣接セルデータとの間のベリファイの両方がすべてのビットについて成功するまで繰り返し行われる。
【００７５】
以下、図７および図８Ａ〜８Ｅを参照して、第１のプログラムベリファイ処理の詳細を説明する。図７は、第１のプログラムベリファイ処理を示すフローチャートである。図８Ａ〜８Ｅは、第１のプログラムベリファイ処理におけるライトバッファ４および隣接セルバッファ５の更新方法を示す論理テーブルである。図７に示すように、第１のプログラムベリファイ処理では、まずライトバッファ初期化ステップＳ１１および隣接セルバッファ初期化ステップＳ１２が実行され、その後に、ベリファイステップＳ１３およびプログラムパルス印加ステップＳ１４が、すべてのベリファイが成功するまで繰り返し実行される。なお、図７および図８Ａ〜８Ｅでは、ＷＢはライトバッファを、ＮＢは隣接セルバッファを、ＳＡはセンスアンプの出力信号を、Ｘは０でも１でもよい値を表す。
【００７６】
ライトバッファ初期化ステップＳ１１では、制御回路３は、外部から入力されたユーザデータをライトバッファ４に書き込む（ステップＳ１１０）。ステップＳ１１０では、フラッシュメモリ１の外部から、アドレス入力２１、制御入力２２、およびデータ入力２３を用いて、ユーザデータが入力される。制御回路３は、入力されたユーザデータを、アドレスバス２５およびデータバス２６を用いてライトバッファ４に書き込む。ユーザデータの各ビットは、値０に対応したプログラム状態か、値１に対応した消去状態のいずれかである。プログラムベリファイ処理では、プログラム状態のビットに対応したメモリセルには今からプログラム処理を行う必要があるが、消去状態のビットに対応したメモリセルにはもはやプログラム処理を行う必要はない。したがって、制御回路３がライトバッファ４に書き込む値０は、今後プログラム処理を行う必要があることを示すフェイル値であり、制御回路３がライトバッファ４に書き込む値１は、もはやプログラム処理を行う必要がないことを示すパス値であると言える。
【００７７】
隣接セルバッファ初期化ステップＳ１２では、制御回路３は、まず、ライトバッファ４に記憶されたユーザデータを隣接セルバッファ５に複写する（ステップＳ１２０）。ステップＳ１２０では、制御回路３は、ライトバッファ４に記憶されたユーザデータを読み出し、アドレスバス２７およびデータバス２８を用いて、隣接セルバッファ５に複写する。これにより、隣接セルバッファ５に記憶されたデータの各ビットは、図８Ａに示すように更新される。なお、消費電流などの点で問題がなければ、制御回路３は、ユーザデータをライトバッファ４と隣接セルバッファ５とに同時に書き込んでもよい。これにより、プログラムベリファイ処理の所要時間を短縮することができる。
【００７８】
次に、制御回路３は、ｎ回の処理により、隣接セルバッファ５に記憶されたデータを更新する（ステップＳ１２１〜Ｓ１２ｎ）。ただし、数ｎは、隣接セル効果の影響を排除するために考慮すべき隣接セルのオフセットの最大値である。数ｎには、典型的には７以下の正の整数（例えば、３）が使用される。
【００７９】
ステップＳ１２１では、制御回路３は、ライトバッファ４に記憶されたデータ中のビットＢについて、ビットＢの書き込み先メモリセルＭのオフセット１の隣接セルＭ１（図７では第１の隣接セルと記載）からデータを読み出す。より詳細には、制御回路３は、メモリセルＭのアドレスの一部をＸアドレス３２として出力し、オフセット加算部６０（図５）で求めた隣接セルＭ１の論理ＹアドレスをＹアドレス３３として出力するとともに、通常の読み出しで使用される読み出し電圧ＲＤＶをワード線電圧３１として出力する。これにより、バーチャルグランドアレイ１０内の隣接セルＭ１に記憶されたデータは、センスアンプ９経由で読み出しデータ３５として出力される。
【００８０】
これに加えてステップＳ１２１では、制御回路３は、バーチャルグランドアレイ１０内の隣接セルＭ１から読み出したデータ（すなわち、センスアンプ９の出力信号）と、隣接セルバッファ５に記憶されたデータとに基づき図８Ｂに示す論理演算を行い、得られた結果を隣接セルバッファ５に書き込む。図８Ｂによれば、論理演算を行った結果は、センスアンプ９の出力信号がプログラム状態（値０）であるか、または、隣接セルバッファ５に記憶されたデータがパス値（値１）である場合にはパス値になり、それ以外の場合にはフェイル値（値０）となる。これにより、隣接セルＭ１から読み出したデータがプログラム状態（値０）である場合には、隣接セルバッファ５に記憶されたデータの中の、ビットＢに対応したビットＢ’はパス値（値１）に更新される。
【００８１】
次にステップＳ１２２〜Ｓ１２ｎでは、制御回路３は、隣接セルＭ１に対して行った処理と同じ処理を、ビットＢの書き込み先メモリセルＭのオフセット２〜ｎの隣接セルＭ２〜Ｍｎ（図７では第２〜第ｎの隣接セルと記載）に対して実行する。ステップＳ１２ｎが完了した時点で隣接セルバッファ５に記憶されたデータが、隣接セルデータとなる。隣接セルデータ中のビットＢ’は、ライトバッファ４に記憶されたデータ中の対応するビットＢがプログラム状態であり、かつ、ビットＢの書き込み先メモリセルＭのオフセット１〜ｎの隣接セルＭ１〜Ｍｎがすべて消去状態である場合にフェイル値（値０）となり、それ以外の場合はパス値（値１）となる。したがって、隣接セルデータ中のビットＢ’がフェイル値である場合、ビットＢの書き込み先メモリセルＭのセル電流は、隣接セル効果の影響を受けやすいと言える。
【００８２】
ベリファイステップＳ１３では、制御回路３は、ユーザデータとの間で通常のベリファイ電圧を用いたベリファイを行い（ステップＳ１３０）、隣接セルデータとの間で通常よりも高いベリファイ電圧を用いたベリファイを行う（ステップＳ１３１）。ステップＳ１３０では、制御回路３は、まず、ライトバッファ４に記憶されたデータ中のビットＢについて、ビットＢの書き込み先メモリセルＭからデータを読み出す。より詳細には、制御回路３は、メモリセルＭのアドレスの一部をＸアドレス３２として出力し、メモリセルＭのアドレスの残部をＹアドレス３３として出力するとともに、通常のプログラムベリファイで使用される第１のベリファイ電圧ＰＶＶをワード線電圧３１として出力する。これにより、バーチャルグランドアレイ１０内の書き込み先メモリセルに記憶されたデータは、センスアンプ９経由で読み出しデータ３５として出力される。
【００８３】
これに加えてステップＳ１３０では、制御回路３は、ビットＢの書き込み先メモリセルＭから読み出したデータ（すなわち、センスアンプ９の出力信号）と、ライトバッファ４に記憶されたデータとに基づき図８Ｃに示す論理演算を行い、得られた結果をライトバッファ４に書き込む。図８Ｃによれば、論理演算を行った結果は、センスアンプ９の出力信号がプログラム状態（値０）であるか、または、ライトバッファ４に記憶されたデータがパス値（値１）である場合にはパス値となり、それ以外の場合にはフェイル値（値０）となる。したがって、ワード線に第１のベリファイ電圧ＰＶＶを印加した状態で書き込み先メモリセルＭから読み出したデータがプログラム状態（値０）である場合には、ライトバッファ４に記憶されたデータ中のビットＢは、パス値（値１）に更新される。
【００８４】
次にステップＳ１３１では、制御回路３は、ステップＳ１３０と同様に、隣接セルバッファ５に記憶されたデータ中のビットＢ’について、ビットＢ’に対応した書き込み先メモリセルＭからデータを読み出す。ただし、ステップＳ１３１では、制御回路３は、ステップＳ１３０とは異なり、通常のプログラムベリファイで使用される電圧よりも高い第２のベリファイ電圧（ＰＶＶ＋Ｄ１）をワード線電圧３１として出力する。この際のオーバードライブ量Ｄ１は、例えば上式（１）を用いて決定される。
【００８５】
これに加えてステップＳ１３１では、制御回路３は、ビットＢ’に対応した書き込み先メモリセルＭから読み出したデータ（すなわち、センスアンプ９の出力信号）と、隣接セルバッファ５に記憶されたデータとに基づき図８Ｄに示す論理演算を行い、得られた結果を隣接セルバッファ５に書き込む。図８Ｄによれば、論理演算を行った結果は、センスアンプ９の出力信号がプログラム状態（値０）であるか、または、隣接セルバッファ５に記憶されたデータがパス値（値１）である場合にはパス値となり、それ以外の場合にはフェイル値（値０）となる。したがって、ワード線に第２のベリファイ電圧（ＰＶＶ＋Ｄ１）を印加した状態で書き込み先メモリセルＭから読み出したデータがプログラム状態（値０）である場合には、隣接セルバッファ５に記憶されたデータ中のビットＢ’は、パス値（値１）に更新される。
【００８６】
次に、制御回路３は、ステップＳ１３０におけるベリファイとステップＳ１３１におけるベリファイとが両方とも成功したか否かを判定する（ステップＳ１３２）。ステップＳ１３２では、制御回路３は、ライトバッファ４および隣接セルバッファ５から、今回のプログラムベリファイ処理で使用したデータを読み出す。読み出したデータがすべてパス値（値１）である場合には（ステップＳ１３２のＹｅｓ）、制御回路３はプログラム処理を完了する。一方、読み出したデータにフェイル値（値０）が含まれている場合には（ステップＳ１３２のＮｏ）、制御回路３はプログラムパルス印加ステップＳ１４に進む。
【００８７】
プログラムパルス印加ステップＳ１４では、制御回路３は、バーチャルグランドアレイ１０に含まれるメモリセルのうち、フェイルしたビットに対応したメモリセルに対してプログラムパルスを印加する（ステップＳ１４０）。ステップＳ１４０では、制御回路３は、プログラムパルスを印加すべきメモリセルに対応したビットが所定値（例えば０）で、それ以外のビットが別の所定値（例えば１）である書き込みデータ３４を出力する。データラッチ９は、制御回路３からの制御に従い、書き込みデータ３４をラッチする。この状態で、制御回路３は、図示しない手段を用いてバーチャルグランドアレイ１０にプログラムパルスを印加する。
【００８８】
図８Ｅに示すように、ベリファイステップＳ１３およびプログラムパルス印加ステップＳ１４では、制御回路３は、ライトバッファ４に記憶されたデータ中のビットＢと、隣接セルバッファ５に記憶されたデータ中の、ビットＢに対応するビットＢ’のうち、少なくとも一方がフェイル値（値０）である場合には、ビットＢに対応するメモリセルＭにプログラムパルスを印加し、それ以外の場合には、ビットＢに対応するメモリセルＭにプログラムパルスを印加しない。
【００８９】
制御回路３は、プログラムパルス印加ステップＳ１４を実行した後、ベリファイステップＳ１３のステップＳ１３０に進む。したがって、ステップＳ１４０におけるプログラムパルスの印加は、ユーザデータと間のベリファイおよび隣接セルデータとの間のベリファイの両方がすべてのビットについて成功するまで繰り返し行われる。
【００９０】
このように、第１のプログラムベリファイ処理が完了した時点では、プログラム状態に遷移させるべきメモリセルから、ワード線に第１のベリファイ電圧ＰＶＶを印加した状態で読み出したデータはプログラム状態（値０）であることが保証される。これとともに、プログラム状態に遷移させるべきメモリセルのうちで、オフセット１〜ｎの隣接セルがすべて消去状態であるメモリセル（すなわち、隣接セル効果の影響を受けやすいメモリセル）から、ワード線に第２のベリファイ電圧（ＰＶＶ＋Ｄ１）を印加した状態で読み出したデータもプログラム状態（値０）であることが保証される。
【００９１】
以上に示すように、第１のプログラムベリファイ処理では、オフセットが所定数ｎ以下のメモリセル間で論理演算を行うことにより、隣接セル効果の影響を考慮すべきメモリセルを示すデータ（隣接セルデータ）が求められ、隣接セルデータとフラッシュメモリアレイとの間で、ワード線に通常よりも高い第２のベリファイ電圧を印加した状態でプログラムベリファイが行われる。これにより、ベリファイ時に隣接セルへ流出するセル電流を補償し、隣接セル効果の影響を排除することができる。よって、プログラム状態のメモリセルのしきい値を高い精度で制御し、読み出しマージンが大きく信頼性の高いフラッシュメモリを得ることができる。
【００９２】
また、ベリファイ時に一度パスと判定されたメモリセルには、それ以上プログラムパルスが印加されることがない。したがって、パスとフェイルの境界にあるメモリセルに対して、必要以上にプログラムパルスが印加されることを防止することができる。よって、プログラム状態のメモリセルのしきい値が必要以上に高くなることを防止し、メモリセルの信頼性を高めることができる。また、ライトバッファ４と同じ容量の隣接セルバッファ５を用いて、上記隣接セルデータを簡単な処理で求めることができる。
【００９３】
（第２のプログラムベリファイ処理）
以下、隣接セル効果の影響をより高い精度で排除するために、３種類以上のベリファイ電圧を使用する第２のプログラムベリファイ処理について説明する。第１のプログラムベリファイ処理では、制御回路３は、ライトバッファ４に記憶されたユーザデータとバーチャルグランドアレイ１０との間でベリファイを行い、隣接セルバッファ５に記憶された隣接セルデータとバーチャルグランドアレイ１０との間でベリファイを行うこととした。第２のプログラムベリファイ処理では、制御回路３は、隣接セルバッファ５に記憶されたユーザデータおよび隣接セルデータとバーチャルグランドアレイ１０との間でベリファイを行う。
【００９４】
第２のプログラムベリファイ処理の概要は、以下のとおりである。第２のプログラムベリファイ処理では、まず、外部から入力されたユーザデータは、ライトバッファ４に書き込まれる。次に、０以上ｎ以下の整数ｉについて、以下に示す第ｉのプログラム処理が順に実行される。ただし、数ｎは、隣接セル効果の影響を排除するために考慮すべき隣接セルのオフセットの最大値である。数ｎには、典型的には７以下の正の整数（例えば、３）が使用される。
【００９５】
第ｉのプログラム処理では、まず、ライトバッファ４に記憶されたユーザデータが、隣接セルバッファ５に複写される。次に、ｉが０である場合を除き、隣接セルバッファ５に記憶されたユーザデータと、バーチャルグランドアレイ１０から読み出したデータに基づき所定の論理演算が行われ、ユーザデータの中でオフセットがｉ以下の隣接セルによる隣接セル効果を考慮してベリファイを行うべきビットが求められる。求めた結果は、隣接セルデータとして隣接セルバッファ５に書き込まれる。次に、隣接セルバッファ５に記憶された隣接セルデータとバーチャルグランドアレイ１０との間で、第ｉのベリファイ電圧を用いたベリファイが行われる。第０のベリファイ電圧には、通常のベリファイ電圧が使用され、第ｉのベリファイ電圧には、第（ｉ−１）のベリファイ電圧以上の電圧が使用される。次に、ベリファイに失敗したビットに対応したメモリセルには、プログラムパルスが印加される。このプログラムパルスの印加は、隣接セルデータとの間のベリファイがすべてのビットについて成功するまで繰り返し行われる。
【００９６】
以下、図９および図１０を参照して、第２のプログラムベリファイ処理の詳細を説明する。図９および図１０でも、図７および図８と同様の記法を使用する。図９は、第２のプログラムベリファイ処理を示すフローチャートである。図９に示すように、第２のプログラムベリファイ処理では、まずライトバッファ初期化ステップＳ１９が実行され、その後に、０以上ｎ以下の整数ｉについて、第ｉのプログラムステップＳ２ｉが実行される。
【００９７】
ライトバッファ初期化ステップＳ１９では、制御回路３は、外部から入力されたユーザデータをライトバッファ４に書き込む（ステップＳ１９０）。ステップＳ１９０では、第１のプログラムベリファイ処理におけるステップＳ１１０と同じ処理が行われる。
【００９８】
第ｉのプログラムステップＳ２ｉでは、制御回路３は、まず、ライトバッファ４に記憶されたユーザデータを隣接セルバッファ５に複写する（ステップＳ２００）。ステップＳ２００では、第１のプログラムベリファイ処理におけるステップＳ１２０と同じ処理が行われる。
【００９９】
次に、ｉが０である場合を除き、制御回路３は、ｉ回の処理により、隣接セルバッファ５に記憶されたデータを更新する（ステップＳ２１１〜Ｓ２１ｉ）。ステップＳ２１１〜Ｓ２１ｉでは、第１のプログラムベリファイ処理におけるステップＳ１２１〜１２ｎと同じ処理が行われる。ステップＳ２１１〜Ｓ２１ｉの詳細は、以下のとおりである。制御回路３は、ワード線に通常の読み出し電圧ＲＤＶを印加した状態で、書き込み対象のメモリセルＭのオフセット１の隣接セルＭ１からデータを読み出し、読み出したデータと隣接セルバッファ５に記憶されたデータとに基づき図８Ｂに示す論理演算を行い、得られた結果を隣接セルバッファ５に書き込む（ステップＳ２１１）。次に、制御回路３は、隣接セルＭ１に対して行った処理と同じ処理を、オフセット２〜ｉの隣接セルＭ２〜Ｍｉに対して行う。ステップＳ２１ｉが完了した時点で隣接セルバッファ５に記憶されたデータが、隣接セルデータとなる。隣接セルデータ中のビットＢ’は、ライトバッファ４に記憶されたユーザデータ中の対応するビットＢがプログラム状態であり、かつ、ビットＢの書き込み先メモリセルＭのオフセット１〜ｉの隣接セルＭ１〜Ｍｉがすべて消去状態である場合にフェイル値（値０）となり、それ以外の場合はパス値（値１）となる。
【０１００】
次に、制御回路３は、隣接セルバッファ５に記憶された隣接セルデータとバーチャルグランドアレイ１０との間でベリファイを行う（ステップＳ２２０）。ステップＳ２２０では、第１のプログラムベリファイ処理におけるステップＳ１３１と同様に、制御回路３は、隣接セルバッファ５に記憶されたデータ中のビットＢ’について、ビットＢ’に対応した書き込み先メモリセルＭからデータを読み出す。ただし、第ｉのプログラムステップＳ２ｉに含まれるステップＳ２２０では、制御回路３は、第ｉのベリファイ電圧をワード線電圧３１として出力する。
【０１０１】
次に、制御回路３は、ステップＳ２２０におけるベリファイが成功したか否かを判定する（ステップＳ２２１）。ステップＳ２２１では、制御回路３は、隣接セルバッファ５から、今回のプログラムベリファイ処理で使用したデータを読み出す。制御回路３は、読み出したデータがすべてパス値（値１）である場合には（ステップＳ２２１のＹｅｓ）、第ｉのプログラムステップＳ２ｉを完了する。この場合、制御回路３は、第（ｉ＋１）のプログラムステップに進むか、あるいは、第２のプログラム処理を完了する。これに対して、読み出したデータにフェイル値（値０）が含まれている場合には（ステップＳ２２１のＮｏ）、制御回路３は、プログラムパルス印加ステップＳ２２２に進む。
【０１０２】
後者の場合、制御回路３は、バーチャルグランドアレイ１０に含まれるメモリセルのうち、フェイルしたビットに対応したメモリセルに対してプログラムパルスを印加する（ステップＳ２２２）。ステップＳ２２２では、第１のプログラムベリファイ処理におけるステップＳ１４０と同じ処理が行われる。
【０１０３】
ここで、ステップＳ２２０でワード線電圧３１として出力される第ｉのベリファイ電圧について説明する。第０のプログラムステップＳ２０内のステップＳ２２０では、第０のベリファイ電圧として、通常のプログラムベリファイで使用されるベリファイ電圧ＰＶＶが出力される。また、ｉが０である場合を除き、第ｉのプログラムステップＳ２ｉ内のステップＳ２２０では、第ｉのベリファイ電圧として、第（ｉ−１）のベリファイ電圧以上の電圧が出力される。例えば、第１のプログラムステップＳ２１内のステップＳ２２０では、第１のベリファイ電圧として、第０のベリファイ電圧ＰＶＶ以上の電圧（ＰＶＶ＋Ｄ１）が出力される（ただし、Ｄ１は０以上の数）。第ｎのプログラムステップＳ２ｎ内のステップＳ２２０では、第ｎのベリファイ電圧として、第（ｎ−１）のベリファイ電圧（以上の電圧（ＰＶＶ＋Ｄ１＋…＋Ｄｎ）が出力される（ただし、Ｄｎは０以上の数）。
【０１０４】
図１０は、第２のプログラムベリファイ処理における、隣接セルの状態とベリファイレベルとの関係を示す図である。図１０には、あるメモリセルＭをプログラム状態に遷移させる場合に、メモリセルＭのオフセット１〜３の隣接セルＭ１〜Ｍ３の状態と、メモリセルＭについてベリファイを行うときに使用される電圧のレベル（ベリファイレベル）との関係が記載されている。
【０１０５】
図１０に示すように、隣接セルＭ１がプログラム状態である場合には、ベリファイレベルは、通常のプログラムベリファイで使用される第０のベリファイ電圧ＰＶＶとなる。隣接セルＭ１が消去状態で、かつ、隣接セルＭ２がプログラム状態である場合には、ベリファイレベルは、第０のベリファイ電圧に値Ｄ１を加えた第１のベリファイ電圧（ＰＶＶ＋Ｄ１）となる。隣接セルＭ１、Ｍ２が消去状態で、かつ、隣接セルＭ３がプログラム状態である場合には、ベリファイレベルは、第１のベリファイ電圧に値Ｄ２を加えた第２のベリファイ電圧（ＰＶＶ＋Ｄ１＋Ｄ２）となる。同様に、隣接セルＭ１〜Ｍ（ｎ−１）が消去状態で、かつ、隣接セルＭｎがプログラム状態である場合には、ベリファイレベルは、第（ｎ−１）のベリファイレベルに値Ｄｎを加えた第ｎのベリファイ電圧（ＰＶＶ＋Ｄ１＋…＋Ｄｎ）となる。
【０１０６】
値Ｄ１〜Ｄｎは、例えば上式（１）を用いて決定される。値Ｄ１〜Ｄｎをすべて正の数に設定すれば、第０から第ｎのベリファイ電圧はすべて異なる値になる。これにより、消去状態の隣接セルが連続する個数に応じてベリファイレベルを連続的に変化させて、隣接セル効果の影響を高い精度で排除することができる。また、値Ｄ１〜Ｄｎのうち１以上の値を０に設定することにより、ベリファイレベルを減らし、ベリファイ電圧を簡単に発生させることができる。また、制御回路３は、第ｉのプログラムステップＳ２ｉの実行中に、第ｉのベリファイ電圧を複数の値に切り替えてもよい。これにより、隣接セル効果の影響をさらに高い制御で排除することができる。
【０１０７】
このように、第２のプログラムベリファイ処理が完了した時点では、プログラム状態に遷移させるべきメモリセルのうち、オフセット１の隣接セルが消去状態であるメモリセルから、ワード線に第０のベリファイ電圧ＰＶＶを印加した状態で読み出したデータはプログラム状態（値０）であることが保証される。これとともに、プログラム状態に遷移させるべきメモリセルのうち、オフセット１〜ｉの隣接セルがすべて消去状態であるメモリセルから、ワード線に第ｉのベリファイ電圧（ＰＶＶ＋Ｄ１＋…＋Ｄｉ）を印加した状態で読み出したデータもプログラム状態（値０）であることが保証される。
【０１０８】
以上に示すように、第２のプログラムベリファイ処理の第ｉのプログラム処理では、オフセットがｉ以下のメモリセル間で論理演算を行うことにより、隣接セル効果の影響を考慮すべきメモリセルを示すデータ（隣接セルデータ）が求められ、隣接セルデータとフラッシュメモリアレイとの間で、第ｉのベリファイ電圧を用いたプログラムベリファイが行われる。このように隣接セルの状態に応じてベリファイ電圧を段階的に切り替えることにより、ベリファイ時に隣接セルへ流出するセル電流を高い精度で補償し、隣接セル効果の影響を高い精度で排除することができる。また、ライトバッファ４と同じ容量の隣接セルバッファ５を用いて、上記隣接セルデータを簡単な処理で求めることができる。
【産業上の利用可能性】
【０１０９】
本発明のフラッシュメモリおよびプログラムベリファイ方法は、ビット線がメモリセル間で共有されたメモリアレイで起こる隣接セル効果の影響を排除することにより、読み出しマージンを改善し、信頼性を高めるという効果を奏するので、単体のチップとして構成されたフラッシュメモリや、半導体チップに内蔵されたフラッシュメモリなどの不揮発性メモリに利用することができる。
【図面の簡単な説明】
【０１１０】
【図１】本発明の一実施形態に係るフラッシュメモリのブロック図
【図２】図１に示すフラッシュメモリのバーチャルグランドアレイの詳細な構成を示す図
【図３】図１に示すフラッシュメモリにおいてソース側読み出しを行うときの等価回路を示す図
【図４】図１に示すフラッシュメモリのライトバファと隣接セルバッファの構成の一例を示す図
【図５】図１に示すフラッシュメモリに含まれるオフセット加算部の構成を示す図
【図６】図１に示すフラッシュメモリに含まれるオフセット加算部の動作を説明するための参考図
【図７】図１に示すフラッシュメモリにおける第１のプログラムベリファイ処理を示すフローチャート
【図８Ａ】図７に示すプログラムベリファイ処理における、ライトバッファおよび隣接セルバッファの更新方法を示す論理テーブル
【図８Ｂ】図７に示すプログラムベリファイ処理における、ライトバッファおよび隣接セルバッファの更新方法を示す論理テーブル
【図８Ｃ】図７に示すプログラムベリファイ処理における、ライトバッファおよび隣接セルバッファの更新方法を示す論理テーブル
【図８Ｄ】図７に示すプログラムベリファイ処理における、ライトバッファおよび隣接セルバッファの更新方法を示す論理テーブル
【図８Ｅ】図７に示すプログラムベリファイ処理における、ライトバッファおよび隣接セルバッファの更新方法を示す論理テーブル
【図９】図１に示すフラッシュメモリにおける第２のプログラムベリファイ処理を示すフローチャート
【図１０】図９に示すプログラムベリファイ処理における、隣接セルの状態とベリファイレベルとの関係を示すテーブル
【符号の説明】
【０１１１】
１…フラッシュメモリ
２…フラッシュメモリアレイ
３…制御回路
４…ライトバッファ
５…隣接セルバッファ
６…Ｘデコーダ
７…Ｙデコーダ
８…Ｙゲート
９…データラッチ／センスアンプ
１０…バーチャルグランドアレイ
１１…メモリセル
１２…ワード線
１３、１４…拡散ビット線
２１…アドレス入力
２２…制御入力
２３…データ入力
２４…データ出力
２５、２７…アドレスバス
２６、２８…データバス
３１…ワード線電圧
３２…Ｘアドレス
３３…Ｙアドレス
３４…書き込みデータ
３５…読み出しデータ
４０…メモリセル
４１、４２、４３、４４…隣接セル
５１…第１のメモリ
５２…第２のメモリ
５３…第１のライトバッファ領域
５４…第１の隣接セルバッファ領域
５５…第２の隣接セルバッファ領域
５６…第２のライトバッファ領域
５７…第１のデータバス
５８…第２のデータバス
５９…制御／アドレス信号
６０…オフセット加算部
６１…論理／物理アドレス変換器
６２…加減算器
６３…物理／論理アドレス変換器
７１、７５…論理Ｙアドレス
７２、７４…物理Ｙアドレス
７３…オフセット
７６…オーバーフロー信号
７７…アンダーフロー信号
８１、８２、８３、８４…メモリセル
【図１】
2006024345.tif 000003
【図２】
2006024345.tif 000004
【図３】
2006024345.tif 000005
【図４】
2006024345.tif 000006
【図５】
2006024345.tif 000007
【図６】
2006024345.tif 000008
【図７】
2006024345.tif 000009
【図８Ａ】
2006024345.tif 000010
【図８Ｂ】
2006024345.tif 000011
【図８Ｃ】
2006024345.tif 000012
【図８Ｄ】
2006024345.tif 000013
【図８Ｅ】
2006024345.tif 000014
【図９】
2006024345.tif 000015
【図１０】
2006024345.tif 000016