(58)【調査した分野】(Int.Cl.,DB名)
前記制御回路は、前記第2の消去コマンドを受けたときに、前記メモリアレイ内の所定のツインセルからツインセルデータを読み出し、前記ツインセルデータが前記第1記憶素子の閾値電圧が前記第2記憶素子の閾値電圧よりも大きいことを示すときには、前記メモリアレイ内の前記所定のツインセル、およびその他のツインセルの前記第2記憶素子の閾値電圧を増加させ、前記ツインセルデータが前記第2記憶素子の閾値電圧が前記第1記憶素子の閾値電圧よりも大きいことを示すときには、前記メモリアレイ内の前記所定のツインセル、およびその他のツインセルの前記第1記憶素子の閾値電圧を増加させる、請求項1記載の半導体装置。
前記制御回路は、前記第2の消去コマンドを受けたときに、前記メモリアレイ内の消去対象ブロックの先頭領域のツインセルからツインセルデータを読み出して、前記ツインセルデータが前記第1記憶素子の閾値電圧が前記第2記憶素子の閾値電圧よりも大きいことを示すときには、前記メモリアレイ内の前記先頭領域から中間領域の直前の領域までのツインセルの前記第2記憶素子の閾値電圧を増加させ、前記ツインセルデータが前記第2記憶素子の閾値電圧が前記第1記憶素子の閾値電圧よりも大きいことを示すときには、前記メモリアレイ内の前記先頭領域から中間領域の直前の領域までのツインセルの前記第1記憶素子の閾値電圧を増加させる、
前記制御回路は、前記メモリアレイ内の消去対象ブロックの中間領域のツインセルからツインセルデータを読み出して、前記ツインセルデータが前記第1記憶素子の閾値電圧が前記第2記憶素子の閾値電圧よりも大きいことを示すときには、前記メモリアレイ内の前記中間領域から最終領域までのツインセルの前記第2記憶素子の閾値電圧を増加させ、前記ツインセルデータが前記第2記憶素子の閾値電圧が前記第1記憶素子の閾値電圧よりも大きいことを示すときには、前記メモリアレイ内の前記中間領域から最終領域の直前の領域までのツインセルの前記第1記憶素子の閾値電圧を増加させる、請求項3記載の半導体装置。
前記制御回路は、前記第1の消去コマンドを受けた後、さらに復元コマンドを受けたときに、前記ツインセルからツインセルデータを読み出して、前記ツインセルデータが前記第1記憶素子の閾値電圧が前記第2記憶素子の閾値電圧よりも大きいことを示すときには、前記ツインセルの前記第1記憶素子の閾値電圧を増加させ、前記ツインセルデータが前記第2記憶素子の閾値電圧が前記第1記憶素子の閾値電圧よりも大きいことを示すときには、前記ツインセルの前記第2記憶素子の閾値電圧を増加させる、請求項1記載の半導体装置。
閾値電圧の相違によって2値データを保持し、それぞれが電気的に書換え可能な第1記憶素子と第2記憶素子とからなるツインセルを複数個含むメモリアレイのデータを消去するためのプレライトプログラムであって、コンピュータに、
前記メモリアレイ内の所定のツインセルからツインセルデータを読み出すことを指示するリード命令を出力するステップと、
前記所定のツインセルから読み出されたツインセルデータを受けて、前記ツインセルデータを反転したデータを前記所定のツインセルまたはその他のツインセルに書き込むことを指示するプログラム命令を出力するステップとを実行させる、プレライトプログラム。
制御回路は、前記消去処理として、前記第1記憶素子と前記第2記憶素子のうちの一方の閾値電圧は維持しつつ他方の閾値電圧を増加させるプレライト処理の実行を制御し、その後、前記第1記憶素子の閾値電圧と前記第2記憶素子の閾値電圧が所定の消去ベリファイレベルより小さくなるまで、前記第1記憶素子の閾値電圧と前記第2記憶素子の閾値電圧をともに減少させる消去処理を実施する、請求項7記載の半導体装置。
【発明を実施するための形態】
【0011】
以下、本発明の実施の形態について、図面を用いて説明する。
[第1の実施形態]
図1は、第1の実施形態の半導体装置の構成を表わす図である。
【0012】
この半導体装置100は、メモリアレイ101と、制御回路105とを備える。
メモリアレイ101は、複数個のツインセル104を含む。ツインセル104は、閾値電圧Vthの相違によって2値データ(ツインセルデータ)を保持し、それぞれが電気的に書換え可能な第1記憶素子102と第2記憶素子103とからなる。
【0013】
制御回路105は、ツインセルデータの消去を制御する。
制御回路105は、外部から送られる第1の消去コマンドを受けたときに、第1記憶素子102の閾値電圧Vthと第2記憶素子103の閾値電圧Vthとをともに増加させる第1プレライト処理の実行を制御する。その後、制御回路105は、第1記憶素子102の閾値電圧Vthと第2記憶素子103の閾値電圧Vthが所定の消去ベリファイレベルより小さくなるまで、第1記憶素子102の閾値電圧Vthと第2記憶素子103の閾値電圧Vthをともに減少させる消去処理の実行を制御する。
【0014】
制御回路105は、外部から送られる第2の消去コマンドを受けたときに、第1記憶素子102と第2記憶素子103のうちの一方の閾値電圧Vthを増加させる第2プレライト処理の実行を制御する。その後、制御回路105は、第1記憶素子102の閾値電圧Vthと第2記憶素子103の閾値電圧Vthが所定の消去ベリファイレベルより小さくなるまで、第1記憶素子102の閾値電圧Vthと第2記憶素子103の閾値電圧Vthをともに減少させる消去処理の実行を制御する。
【0015】
図2は、第1の実施形態の半導体装置の動作手順を表わすフローチャートである。
ステップS901において、制御回路105に外部から第1の消去コマンドが入力されたときには、処理がステップS902に進む。
【0016】
ステップS904において、制御回路105に外部から第2の消去コマンドが入力されたときには、処理がステップS905に進む。
【0017】
ステップS902において、制御回路105は、第1プレライト処理の実行を制御する。ステップS905において、制御回路105は、第2プレライト処理の実行を制御する。
【0018】
ステップS902およびステップS905の実行後、ステップS903において、制御回路105は、消去処理の実行を制御する。
【0019】
以上のように、本実施の形態によれば、第1の消去コマンドによって、ユーザが単に新たにデータを書き込むためにツインセルデータの消去を行なうことができ、第2の消去コマンドによって、ユーザが機密を保持したツインセルデータの消去を行なうことができる。
【0020】
[第2の実施形態]
図3は、第2の実施形態のマイクロコンピュータ1(半導体装置)の構成を表わす図である。
【0021】
図3に示されるマイクロコンピュータ(MCU)1は、たとえば相補型MOS集積回路製造技術などによって、単結晶シリコンのような1個の半導体チップに形成される。
【0022】
マイクロコンピュータ1は、特に制限されないが、高速バスHBUSと周辺バスPBUSを有する。高速バスHBUSと周辺バスPBUSは、特に制限されないが、それぞれデータバス、アドレスバスおよびコントロールバスを有する。2個のバスを設けることによって、共通バスに全ての回路を共通接続する場合に比べてバスの負荷を軽くし、高速アクセス動作を保証することができる。
【0023】
高速バスHBUSには、命令制御部と実行部を備えて命令を実行する中央処理装置(CPU)2、ダイレクトメモリアクセスコントローラ(DMAC)3、高速バスHBUSと周辺バスPBUSとのバスインタフェース制御若しくはバスブリッジ制御を行うバスインタフェース回路(BIF)4が接続される。
【0024】
高速バスHBUSには、さらに、中央処理装置2のワーク領域などに利用されるランダムアクセスメモリ(RAM)5、およびデータやプログラムを格納する不揮発性メモリモジュールとしてのフラッシュメモリモジュール(FMDL)6が接続される。
【0025】
周辺バスPBUSには、フラッシュメモリモジュール(FMDL)6に対するコマンドアクセス制御を行うフラッシュシーケンサ(FSQC)7、外部入出力ポート(PRT)8,9、タイマ(TMR)10、およびマイクロコンピュータ1を制御するための内部のクロックCLKを生成するクロックパルスジェネレータ(CPG)11が接続される。
【0026】
さらに、マイクロコンピュータ1は、XTAL/EXTALに発振子が接続され、または外部クロックが供給されるクロック端子、スタンバイ状態を指示する外部ハードウェアスタンバイ端子STB、リセットを指示する外部リセット端子RES、外部電源端子Vcc、外部接地端子Vssを備える。
【0027】
ここでは、ロジック回路としてのフラッシュシーケンサ7と、アレイ構成のフラッシュメモリモジュール6は、別CADツールを用いて設計されているため、便宜上別々の回路ブロックとして図示されているが、双方併せて一つのフラッシュメモリを構成する。フラッシュメモリモジュール6は、読み出し専用の高速アクセスポート(HACSP)を介して高速バスHBUSに接続される。CPU2またはDMAC3は、高速バスHBUSから高速アクセスポートを介してフラッシュメモリモジュール6をリードアクセスすることができる。CPU2またはDMAC3は、フラッシュメモリモジュール6に対して書込みおよび初期化のアクセスを行うときは、バスインタフェース4を介して周辺バスPBUS経由でフラッシュシーケンサ7にコマンドを発行する。これによってフラッシュシーケンサ7が周辺バスPBUSから低速アクセスポート(LACSP)を通じてフラッシュメモリモジュール6の初期化や書込み動作の制御を行なう。
【0028】
(フラッシュメモリモジュール)
図4は、フラッシュメモリモジュール6の構成を表わす図である。
【0029】
フラッシュメモリモジュール6は、1ビットの情報の記憶を2個の不揮発性メモリセルを用いて行う。すなわち、メモリアレイMARYは、夫々書換え可能な2個の不揮発性メモリセルMCP,MCNを1ビットのツインセルTCとして複数個備える。
図4には、代表的に1対だけ図示されている。本明細書では、メモリセルMCPをポジティブセル、メモリセルMCNをネガティブセルと呼ぶ。メモリアレイMARYは、4個のメモリマットMAT0〜MAT3に分割される。ここでは、1個のメモリマットMATのサイズは8Kバイトとする。
【0030】
不揮発性メモリセルMCP,MCNは、たとえば、
図5(a)に例示されるスプリットゲート型フラッシュメモリ素子である。このメモリ素子は、ソース・ドレイン領域の間のチャネル形成領域の上にゲート絶縁膜を介して配置されたコントロールゲートCGとメモリゲートMGを有する。メモリゲートMGとゲート絶縁膜の間にはシリコンナイトライドなどの電荷トラップ領域(SiN)が配置される。選択ゲート側のソースまたはドレイン領域は、ビット線BL(SBLPまたはSBLN)に接続され、メモリゲート側のソースまたはドレイン領域はソース線SLに接続される。
【0031】
メモリセルの閾値電圧Vthを下げるにはBL=1.5V、CG=0V、MG=−10V、SL=6、WELL=0Vとし、ウェル領域(WELL)とメモリゲートMG間の高電界によって電荷トラップ領域(SiN)からウェル領域(WELL)に電子が引き抜かれる。この処理単位はメモリゲートMGを共有する複数メモリセルとされる。
【0032】
メモリセルの閾値電圧Vthを上げるにはBL=0V、CG=0.9V、MG=10V、SL=6、WELL=0Vとし、ソース線SLからビット線に書込み電流を流し、それによってコントロールゲートCGとメモリゲートMGの境界部分で発生するホットエレクトロンが電荷トラップ領域(SiN)に注入される。電子の注入はビット線電流を流すか否かによって決まるからこの処理はビット単位で制御される。
【0033】
読み出しはBL=1.5V、CG=1.5V,MG=0V、SL=0V、WELL=0Vで行われる。メモリセルの閾値電圧Vthが低ければメモリセルはオン状態にされ、閾値電圧Vthが高ければオフ状態にされる。
【0034】
メモリ素子はスプリットゲート型フラッシュメモリ素子に限定されず、
図5(b),
図5(c)に例示されるスタックド・ゲート型フラッシュメモリ素子であってよい。このメモリ素子はソース・ドレイン領域の間のチャネル形成領域の上にゲート絶縁膜を介してフローツイングゲートFGとコントロールゲートWLがスタックされて構成される。
図5(b)は、ホットキャリア書込み方式によって閾値電圧Vthを上げ、ウェル領域WELLへの電子の放出によって閾値電圧Vthを下げる。
図5(c)はFNトンネル書込み方式によって閾値電圧Vthを上げ、ビット線BLへの電子の放出によって閾値電圧Vthを下げる。
【0035】
上述のメモリゲートMG、コントロールゲートCG、ソース線SL、WELL、ビット線BLへ与える電圧は、フラッシュシーケンサ7の制御によって、電源回路VPGで生成されて供給される。
【0036】
以下の説明では、メモリ素子がスプリットゲート型フラッシュメモリ素子であるとして説明する。
【0037】
不揮発性メモリセルMCP,MCNから成る1つのツインセルTCによる情報記憶は不揮発性メモリセルMCP,MCNに相補データを格納することによって行う。
【0038】
すなわち、メモリセルMCP,MCNのそれぞれは、セルデータ“1”(低閾値電圧状態;閾値電圧が消去ベリファイレベルよりも小さい状態)またはセルデータ“0”(高閾値電圧状態;閾値電圧が消去ベリファイレベル以上の状態)を保持することができる。
【0039】
図6(a)に示すように、ツインセルデータ“0”は、ポジティブセルMCPがセルデータ“0”、ネガティブセルMCNがセルデータ“1”を保持する状態である。
図6(b)に示すように、ツインセルデータ“1”はポジティブセルMCPがセルデータ“1”、ネガティブセルMCNがセルデータ“0”を保持する状態である。
図6(c)に示すように、ツインセルのポジティブセルMCPおよびネガティブセルMCNが共にセルデータ“1”を保持する状態はイニシャライズ状態である。イニシャライズ状態は、ブランク消去状態ともいう。
【0040】
ツインセルデータ“0”状態とツインセルデータ“1”の状態との間を直接遷移することはできず、ブランク消去状態を中間状態として経なければならない。
【0041】
ツインセルデータ“0”の状態およびツインセルデータ“1”の状態からイニシャライズ状態にすることをツインセルデータの消去という。消去動作では、消去対象ブロックが一括消去されるためポジティブセルMCPとネガティブセルMCNの両方ともセルデータ“1”を保持する状態となる。また、イニシャライズ状態からツインセルデータ“1”保持状態またはツインセルデータ“0”保持状態にすることをツインセルデータの通常の書込みという。
【0042】
図4に代表的に示されたツインセルのメモリセルMCP,MCNにおいて、メモリゲートMGは、共通のメモリゲート選択線MGLに接続され、コントロールゲートCGは、共通のワード線WLに接続される。メモリセルMCP,MCNのソースは、共通のソース線SLに接続される。実際には多数のツインセルがマトリクス配置され、行方向の配列単位で対応するメモリゲート選択線MGLおよびワード線WLに接続される。
【0043】
メモリセルMCP,MCNのドレイン端子は、列単位で副ビット線SBLP,SBLNに接続され、副ビット線セレクタSELP,SELNを介して主ビット線MBLP,MBLNに接続する。それぞれの主ビット線MBLP,MBLNには、複数の副ビット線SBLP,SBLNが副ビット線セレクタSELP,SELNによって階層化されて接続されている。
【0044】
ワード線WLは、第1行デコーダRDEC1によって選択される。メモリゲート選択線MGLおよび副ビット線セレクタSELP,SELNは、第2行デコーダRDEC2によって選択される。第1行デコーダ24および第2行デコーダ25による選択動作は、読み出しアクセスではHACSPに供給されるアドレス情報などに従い、データの書込み動作および初期化動作ではLACSPに供給されるアドレス情報などに従う。
【0045】
電源回路VPGは、読み出し、書込み、初期化に必要な各種動作電圧を生成する。タイミングジェネレータTMGは、CPU2等からHACSPに供給されるアクセスストローブ信号、FSQC7からLACSPに供給されるアクセスコマンド等に従って、内部動作タイミングを規定する内部制御信号を生成する。
【0046】
副ビット線セレクタSELP,SELNは、SG信号によってON/OFFされ、読み出し/書込み/消去時に有効となる。主ビット線MBLP,MBLNは、Yセレクト部122に含まれるYセレクタYSELP,YSELNを介して、読み出しセンスアンプ回路121に含まれる読み出しセンスアンプSAに接続されている。
【0047】
YセレクタYSELP,YSELNは、読み出し/書込み時にアドレスによってデコードされた結果に従って、接続する主ビット線MBLP,MBLNを選択する。読み出しセンスアンプSAは、選択された主ビット線MBLP,MBLNに繋がるポジティブセルMCPとネガティブセルMCNの閾値電圧Vthの差から、ツインセルデータを読み出す。
【0048】
図4の例では、32個のセンスアンプSAが配置され、メモリデータが8ビットデータに1アドレスが割り付けられるとする。したがって、1回のアクセスによって4アドレスのデータが並列に読み出せる構成となっている。
【0049】
読み出しセンスアンプSAで読み出されたメモリデータは、出力バッファOBUFによって、データバスD(31:0)に出力される。データバスD(31:0)に出力されたデータは、入出力回路IOBUFに出力される。出力バッファOBUFは、各読み出しセンスアンプSAからの出力を受けるバッファB0〜B31を備える。
【0050】
入出力回路IOBUFは、読み出しセンスアンプSAで読み出したデータを外部に出力したり、書込み時にフラッシュメモリモジュール6の外部から入力される書込みデータを処理する。
【0051】
列デコーダCDECは、書込み時には、C2信号によって書換え列セレクタMC2GP,MC2GNをオンにし、入出力回路IOBUFは、信号線D0P,D0Nを介してポジティブ書込みデータラッチ回路WDLPとネガティブ書込みデータラッチ回路WDLNにデータをセットする。列デコーダCDECの選択動作は、LACSPに供給されるアドレス情報などに従う。
【0052】
ツインセルTCに対して“0”データを書き込もうとする場合、ポジティブ書込みデータラッチ回路WDLPに“0”データをセットし、ネガティブ書込みデータラッチ回路WDLNに“1”データをセットする。“0”データをセットされたポジティブ書込みデータラッチ回路WDLPに繋がるポジティブセルMCPに電流が流れてポジティブセルMCPの閾値電圧Vthが上昇する。一方、“1”をセットされたネガティブ書込みデータラッチ回路WDLNに繋がるメモリセルMCNには電流が流れないのでネガティブセルMCNの閾値電圧Vthが上昇しない。
【0053】
ツインセルTCに対して“1”データを書き込もうとする場合、書込みラッチ部123に含まれるポジティブ書込みデータラッチ回路WDLPに“1”データをセットし、書込みラッチ部123に含まれるネガティブ書込みデータラッチ回路WDLNに“0”データをセットする。“0”データをセットされたネガティブ書込みデータラッチ回路WDLNに繋がるネガティブセルMCNに電流が流れてネガティブセルMCNの閾値電圧Vthが上昇する。一方、“1”をセットされたポジティブ書込みデータラッチ回路WDLPに繋がるメモリセルMCPには電流が流れないのでポジティブセルMCPの閾値電圧Vthが上昇しない。
【0054】
ツインセルデータを消去する場合、8Kバイトのメモリマット単位で実施され、メモリマットのツインセルTCに対して消去電圧が印加させる。制御回路120がSG、MG、SL、WELLに対して消去電圧が印加されるように制御する。
【0055】
主ビット線MBLP、MBLNはそれぞれ、C1信号によって制御されるベリファイセレクタMC1GP,MC1GNを介してベリファイ部124のベリファイ回路VERCに接続される。
【0056】
ベリファイ回路VERCは、メモリの消去または書込みを実施した場合、メモリセルの閾値電圧Vthが規定の値を超えたか否かを判定する。ベリファイ結果は制御回路120に出力され、反復するパルス印加が必要か否かが制御回路120で判定される。書込み実施時のベリファイ時には、メモリセルの閾値電圧が規定の値を超えたか否かを判定するため、第1の書込みベリファイ電圧WVER1と第2の書込みベリファイ電圧WVER2のどちらかを設定する事が可能である。第1の書込みベリファイ電圧WVER1と第2の書込みベリファイ電圧WVER2の間には、WVER1<WVER2の関係がある。
【0057】
ベリファイ回路VERCは、ポジティブベリファイセンスアンプVSPと、ネガティブベリファイセンスアンプVSNとを備える。
【0058】
ポジティブベリファイセンスアンプVSPは、主ビット線MBLPの電圧と、参照電圧の大きさを比較する。参照電圧として、通常の書込み時には、第1の書込みベリファイ電圧WVER1が供給され、ブロックイレーズ2における第2プレライト処理時には、第2の書込みベリファイ電圧WVER2が供給され、消去時には、消去ベリファイ電圧EVERが供給される。
【0059】
ネガティブベリファイセンスアンプVSNは、主ビット線MBLNの電圧と、参照電圧とを比較する。参照電圧として、通常の書込み時には、第1の書込みベリファイ電圧WVER1が供給され、ブロックイレーズ2における第2プレライト処理時には、第2の書込みベリファイ電圧WVER2が供給され、消去時には、消去ベリファイ電圧EVERが供給される。
【0060】
(書込みラッチ回路)
図7は、ポジティブ書込みデータラッチ回路WDLPの構成を表わす図である。
【0061】
ポジティブ書込みデータラッチ回路WDLPは、データ保持部91と、設定部92とを含む。
【0062】
データ保持部91は、交互接続されるインバータIV1とインバータIV2とを含む。
インバータIV1の入力およびインバータIV2の出力が、入出力回路IOBUFと接続する信号線D0Pに接続される。インバータIV1の出力およびインバータIV2の入力がノードND1に接続される。
【0063】
設定部92は、電源電圧VDDと接地電圧Vssの間に設けられたPチャネルMOSトランジスタP1,P2と、NチャネルMOSトランジスタN1,N2,N3とを含む。
【0064】
PチャネルMOSトランジスタP1のゲートは、プログラムパルス有効信号の反転信号/enableを受ける。PチャネルMOSトランジスタP2のゲートおよびNチャネルMOSトランジスタN1のゲートは、ノードND1に接続される。NチャネルMOSトランジスタN2のゲートは、プログラムパルス有効信号enableを受ける。NチャネルMOSトランジスタN3のゲートは、パルスPLSを受ける。
【0065】
入出力回路IOBUFから信号線D0Pを通じて送られるデータが“1”のときは、ノードND1のデータ、すなわち書込みラッチデータが“L”レベルとなり、主ビット線MBLPの電圧がVDDとなる。
【0066】
入出力回路IOBUFから信号線D0Pを通じて送られるデータが“0”のときは、ノードND1のデータ、すなわち書込みラッチデータが“H”レベルとなり、書込みパルスWPLSが活性化された期間、主ビット線MBLPが接地電圧Vssと接続し、主ビット線MBLPに書込み電流が流れる。
【0067】
図8は、ネガティブ書込みデータラッチ回路WDLNの構成を表わす図である。
ネガティブ書込みデータラッチ回路WDLNは、データ保持部93と、設定部94とを含む。
【0068】
データ保持部93は、交互接続されるインバータIV3とインバータIV4とを含む。
インバータIV3の入力およびインバータIV4の出力が、入出力回路IOBUFと接続する信号線D0Nに接続される。インバータIV3の出力およびインバータIV4の入力がノードND2に接続される。
【0069】
設定部94は、電源電圧VDDと接地電圧Vssの間に設けられたPチャネルMOSトランジスタP3,P4と、NチャネルMOSトランジスタN4,N5,N6とを含む。
【0070】
PチャネルMOSトランジスタP3のゲートは、プログラムパルス有効信号の反転信号/enableを受ける。PチャネルMOSトランジスタP4のゲートおよびNチャネルMOSトランジスタN4のゲートは、ノードND2に接続される。NチャネルMOSトランジスタN5のゲートは、プログラムパルス有効信号enableを受ける。NチャネルMOSトランジスタN6のゲートは、パルスPLSを受ける。
【0071】
入出力回路IOBUFから信号線D0Nを通じて送られるデータが“1”のときは、ノードND2のデータ、すなわち書込みラッチデータが“L”レベルとなり、主ビット線MBLNの電圧がVDDとなる。
【0072】
入出力回路IOBUFから信号線D0Nを通じて送られるデータが“0”のときは、ノードND2のデータ、すなわち書込みラッチデータが“H”レベルとなり、書込みパルスWPLSが活性化された期間、主ビット線MBLNが接地電圧Vssと接続し、主ビット線MBLNに書込み電流が流れる。
【0073】
(ツインセルデータのプログラム(通常の書込み))
図9は、第2の実施形態のツインセルデータのプログラム(通常の書込みともいう)の手順を表わすフローチャートである。
図10(a)は、プログラムデータが「1」の場合の書込み時の閾値電圧Vthの変化を表わす図である。
図10(b)は、プログラムデータが「0」の場合の書込み時の閾値電圧Vthの変化を表わす図である。
【0074】
ステップS101において、CPU2からのプログラムコマンド、プログラムアドレス、プログラムデータがフラッシュメモリモジュール6に入力される。入力されたプログラムアドレスに従って、第1行デコーダRDEC1、第2行デコーダRDEC2、および列デコーダCDECによって、ツインセルTCが選択される。列デコーダCDECは、C2信号によって書換え列セレクタMC2GP,MC2GNをオンにし、入出力回路IOBUFは、信号線D0P,D0Nを介して、入力されたプログラムデータに従って、ポジティブ書込みデータラッチ回路WDLPとネガティブ書込みデータラッチ回路WDLNにデータをセットする。
【0075】
ステップS102において、制御回路120は、書込みを開始する。
ステップS103において、制御回路120は、MG、CG、SLを
図5(a)に示す書込みバイアス電圧(Vthを増加させる電圧)に設定し、選択されたツインセルTCの一方のメモリセルに書込みバイアス電圧を印加させることによって、ツインセルTCの一方のメモリセルの閾値電圧Vthを増加させる。
【0076】
ステップS105において、書込みベリファイが実施される。つまり、プログラムデータが「0」の場合には、ポジティブベリファイセンスアンプVSPによって、ポジティブセルMCPの閾値電圧Vthが、
図10(a)および
図10(b)に示される第1の書込みベリファイ電圧WVER1を超えているか否かが判定される。つまり、プログラムデータが「1」の場合には、ネガティブベリファイセンスアンプVSNによって、ネガティブセルMCNの閾値電圧Vthが、
図10(a)および
図10(b)に示される第1の書込みベリファイ電圧WVER1を超えているか否かが判定される。
【0077】
ステップS105において、閾値電圧Vthが第1の書込みベリファイ電圧WVER1以下の場合には、処理がステップS107に進み、閾値電圧Vth第1の書込みベリファイ電圧WVER1を超えている場合には、処理が正常終了する(ステップS106)。
【0078】
ステップS107において、制御回路120は、書込み回数WCを1つインリメントする。
【0079】
ステップS108において、書込み回数WCが閾値TH以下の場合には、処理がステップS103に戻り、書込み回数WCが閾値THを超えた場合には、エラー終了する(ステップS109)。
【0080】
(ツインセルデータのブロックイレーズ1)
図11は、第2の実施形態のツインセルデータのブロックイレーズ1(第1の消去モードによるイレーズ)の手順を表わすフローチャートである。
図12(a)は、データ“1”記憶状態からブロックイレーズ1を実行した時の閾値電圧Vthの変化を表わす図である。
図12(b)は、データ“0”記憶状態からブロックイレーズ1を実行した時の閾値電圧Vthの変化を表わす図である。
【0081】
ステップS201において、CPU2からのブロックイレーズ1コマンド、消去対象ブロックの指定がフラッシュメモリモジュール6に入力される。消去対象ブロックとして、メモリマットMAT0〜MAT3のいずれかのマットが指定される。
【0082】
ステップS202〜S206において、一旦、ポジティブセルMCPとネガティブセルMCNの両方のセルデータを“0”にする第1プレライト処理が行なわれる。第1プレライト処理では、ポジティブセルMCPとネガティブセルMCNの両方に対して、印加する書込みバイアス電圧を通常の書込み時の書込みバイアス電圧(
図5(a)に示すVthを増加させる電圧)よりも小さくすることによって、通常の書込によるストレスよりも小さなストレスを与える。第1プレライト処理では、閾値電圧が小さい方のメモリセルの閾値電圧の増加量が、通常の書込み時の閾値電圧Vthの増加量よりも小さい。第1プレライトを実施する目的は、ポジティブセルMCPとネガティブセルMCNの間の消去ストレスのばらつきを小さくし、リテンション特性悪化を抑制するためである。つまり、閾値電圧Vthの低い状態であるメモリセルを消去すると、閾値電圧Vthがさらに低くなり、閾値電圧Vthの低い状態であるメモリセルに強いストレスがかかり、信頼性が低下するためである。ただし、第1プレライト処理では、通常の書込み時のように、メモリセルの閾値電圧Vthが第1の書込みベリファイ電圧WVER1よりも高い状態になるまで書込みが実施されるわけではなく、閾値電圧Vthをある程度高い状態とするだけである。したがって、通常の書込み時のような、書込みデータの読み出しベリファイは行われない。その理由は、ブロックイレーズ1に要する時間を短縮するためである。
【0083】
ステップS202において、制御回路120は、アドレスADRの初期値を消去対象ブロックの先頭アドレスに設定する。アドレスADRは32ビットのデータをアクセスするため32ビット境界を指定するアドレスの形式である。つまり、アドレスADRは8ビット毎に割り付けたアドレスの下位2ビットを削除し、下位3ビット目を最下位ビットとしたものである。このアドレスADRに従って、第1行デコーダRDEC1、第2行デコーダRDEC2、および列デコーダCDECによって、先頭アドレスで指定される32個のツインセルTCが選択される。また、入出力回路IOBUFは、書込みデータをオール“0”に設定する。すなわち、列デコーダCDECは、C2信号によって書換え列セレクタMC2GP,MC2GNをオンにし、入出力回路IOBUFは、信号線D0P,D0Nを介して、消去対象ブロックのツインセルTCと接続されるすべてのポジティブ書込みデータラッチ回路WDLPおよびネガティブ書込みデータラッチ回路WDLNに「0」をセットする。
【0084】
ステップS203において、制御回路120は、書込みを開始する。
ステップS204において、制御回路120は、MG、CG、SLを通じて、選択されたツインセルTCに、通常の書込み時よりも小さな書込みバイアス電圧を印加させることによって、ツインセルTCの両方のメモリセルMCP,MCNの閾値電圧Vthを増加させる。
【0085】
ステップS205において、制御回路120は、アドレスADRを1つインクリメントする。
【0086】
ステップS206において、アドレスADRが(最大アドレス+1)の場合には、第1プレライトが終了し、処理がステップS207に進む。アドレスADRが(最大アドレス+1)でない場合には、処理がステップS203に戻る。最大アドレスは消去対象ブロックの最後の32ビットの領域を示すアドレスに相当する。
【0087】
ステップS207〜S213において、消去処理が行なわれる。
ステップS207において、制御回路120は、アドレスADRの初期値を消去対象ブロックの先頭アドレスに設定する。アドレスADRに従って、第1行デコーダRDEC1、第2行デコーダRDEC2、および列デコーダCDECによって、ツインセルTCが選択される。
【0088】
ステップS208において、制御回路120は、消去を開始する。
ステップS209において、制御回路120は、MG、CG、SLを
図5(a)に示す消去バイアス電圧(Vthを減少させる電圧)に設定し、選択された32個のツインセルTCに消去バイアス電圧を印加させることによって、ツインセルの両方のメモリセルMCP,MCNの閾値電圧Vthを減少させる。
【0089】
ステップS210において、消去ベリファイが実施される。すなわち、ポジティブベリファイセンスアンプVSPによって、ポジティブセルMCPの閾値電圧Vthが、
図12(a)および
図12(b)に示される消去ベリファイ電圧EVER未満になっているか否かが判定される。また、ネガティブベリファイセンスアンプVSNによって、ネガティブセルMCNの閾値電圧Vthが、
図12(a)および
図12(b)に示される消去ベリファイ電圧EVER未満になっているか否かが判定される。
【0090】
ステップS211において、両方のセルMCP,MCNのうちの少なくとも一方の閾値電圧Vthが消去ベリファイ電圧EVER以上の場合には、処理がステップS209に戻り、両方のセルMCP,MCNの閾値電圧Vthが消去ベリファイ電圧EVERよりも低い場合には、処理がステップS212に進む。
【0091】
ステップS212において、制御回路120は、アドレスADRを1つインクリメントする。
【0092】
ステップS213において、アドレスADRが(最大アドレス+1)の場合には、消去が終了し、処理が終了する。アドレスADRが(最大アドレス+1)でない場合には、処理がステップS210に戻る。
【0093】
以上のように、
図12(a)、(b)に示されるように、ブロックイレーズ1では、終了後のポジティブセルMCP、ネガティブセルMCNの閾値電圧Vthの大小関係は、ブロックイレーズ実施前の閾値電圧Vthの大小関係を維持している。この関係が維持された状態で読み出しを実施すると、ポジティブセルMCPとネガティブセルMCNの閾値電圧Vthに差があるために、ブロックイレーズ1の実施前のツインセルデータが読み出されてしまう。しかし、ブロックイレーズ1の目的が、次の書込みの為のメモリ領域確保のために実施するのであれば、特に問題は無く、実行時間が後述のブロックイレーズ2コマンドよりも短いという利点もある。
【0094】
(ツインセルデータのブロックイレーズ2)
図13は、第2の実施形態のツインセルデータのブロックイレーズ2(第2の消去モードによるイレーズ)の手順を表わすフローチャートである。
図14は、第2プレライト処理の手順を表わすフローチャートである。
【0095】
図13を参照して、ステップS301において、CPU2からのブロックイレーズ2コマンド、消去対象ブロックの指定がフラッシュメモリモジュール6に入力される。消去対象ブロックとして、メモリマットMAT0〜MAT3のいずれかのマットが指定される。
【0096】
ステップS302において、
図14に示す第2プレライト処理が行なわれる。
次に、ステップS207〜S213において、ブロックイレーズ1と同様の消去処理が行なわれる。
【0097】
図14を参照して、ステップS401において、制御回路120は、消去対象ブロックの先頭アドレスをアドレスADRに設定する。アドレスADRに従って、第1行デコーダRDEC1、第2行デコーダRDEC2、および列デコーダCDECによって、先頭アドレスと、後続の3アドレスの計4アドレスで指定される32個のツインセルTCが選択される(本実施の形態では、1アドレスに8ビットのデータが割り付けている)。制御回路120は、MG、CG、SLを
図5(a)に示す読み出し電圧に設定し、読み出しセンスアンプSA、出力バッファ、データバスD(31:0)を通じて、読み出された32ビットのツインセルデータが制御回路120に送られる。
【0098】
ステップS402において、列デコーダCDECは、C2信号によって書換え列セレクタMC2GP,MC2GNをオンにし、入出力回路IOBUFは、信号線D0P,D0Nを介して、消去対象ブロックの先頭領域(先頭アドレスと、連続する3アドレスの計4アドレスにより特定される32ビットの領域)から読み出されたツインセルデータの反転データの書込みデータを設定する。すなわち、読み出されたツインセルデータが“1”の場合、ポジティブセルMCPの閾値電圧Vthが低く、ネガティブセルMCNの閾値電圧Vthが高い。第2プレライト処理では、閾値電圧Vthが低い方のポジティブセルMCPの閾値電圧Vthのみを増加させる。また、読み出されたツインセルデータが“0”の場合、ネガティブセルMCNの閾値電圧Vthが低く、ポジティブセルMCPの閾値電圧Vthが高い。第2プレライト処理では、閾値電圧Vthが低い方のネガティブセルMCNの閾値電圧Vthのみを増加させる。
【0099】
たとえば、消去対象ブロックの先頭領域の読み出された32ビットのツインセルデータが32h’FFFFFFFFの場合、読み出されたツインセルデータに対応する書込みデータは32h’00000000となる。また、消去対象ブロックの先頭領域の読み出された32ビットのツインセルデータが32h’CCCCCCCCの場合、読み出されたツインセルデータに対応する書込みデータは32h’33333333となる。
【0100】
ステップS403において、制御回路120は、第1書込みを開始する。
ステップS404において、制御回路120は、MG、CG、SLを
図5(a)に示す書込みバイアス電圧(Vthを増加させる電圧)に設定し、選択された32個のツインセルTCの一方のメモリセルに書込みバイアス電圧を印加させることによって、32個のツインセルTCの一方のメモリセルの閾値電圧Vthを増加させる。他方のメモリセルに対しては書き込みバイアス電圧は印加されず、よってその閾値電圧Vthは維持される。
【0101】
消去対象ブロックの先頭領域(先頭アドレスにより指定される32ビットの領域)には、その消去対象ブロックの先頭領域から読み出されたツインセルデータの反転データが書き込まれる。一方、消去対象ブロックの先頭領域以外にも、消去対象ブロックの先頭領域から読み出されたツインセルデータの反転データが書き込まれる。
【0102】
ステップS405において、書込みベリファイが実施される。つまり、書込みデータが「0」の場合には、ポジティブベリファイセンスアンプVSPによって、ポジティブセルMCPの閾値電圧Vthが、第2の書込みベリファイ電圧WVER2を超えているか否かが判定される。書込みデータが「1」の場合には、ネガティブベリファイセンスアンプVSNによって、ネガティブセルMCNの閾値電圧Vthが、第2の書込みベリファイ電圧WVER2を超えているか否かが判定される。
【0103】
ステップS406において、32個のツインセルTCの少なくとも1つについて、閾値電圧Vthを増加させる方のメモリセルの閾値電圧Vthが第2の書込みベリファイ電圧WVER2以下の場合には、処理がステップS404に戻る。32個のツインセルTCのすべてについて、閾値電圧Vthを増加させる方のメモリセルの閾値電圧Vthが第2の書込みベリファイ電圧WVER2を超えている場合には、処理がステップS407に進む。
【0104】
ステップS407において、制御回路120は、アドレスADRを1つインクリメントする。
【0105】
ステップS408において、アドレスADRが中間アドレスの場合には、処理がステップS407に進む。アドレスADRが中間アドレスでない場合には、処理がステップS403に戻る。中間アドレスは後述の中間領域の先頭の32ビットの領域を指定するアドレスである。よって消去対象ブロックの先頭アドレスから中間アドレスの一つ前のアドレスまでの32ビット毎の各領域が、先頭領域から読み出したデータの反転データに基づきプレライトされる。
【0106】
ステップS409において、制御回路120は、消去対象ブロックの中間アドレスをアドレスADRに設定する。アドレスADRに従って、第1行デコーダRDEC1、第2行デコーダRDEC2、および列デコーダCDECによって、中間アドレスにより指定される32個のツインセルTCが選択される。制御回路120は、MG、CG、SLを
図5(a)に示す読み出し電圧に設定し、読み出しセンスアンプSA、出力バッファ、データバスD(31:0)を通じて、読み出された32ビットのツインセルデータが制御回路120に送られる。
【0107】
ステップS410において、列デコーダCDECは、C2信号によって書換え列セレクタMC2GP,MC2GNをオンにし、入出力回路IOBUFは、信号線D0P,D0Nを介して、消去対象ブロックの中間領域(中間アドレスにより指定される32ビットの領域)から読み出されたツインセルデータの反転データの書込みデータを設定する。
【0108】
ステップS411において、制御回路120は、第2書込みを開始する。
ステップS412において、制御回路120は、MG、CG、SLを
図5(a)に示す書込みバイアス電圧(Vthを増加させる電圧)に設定し、選択された32個のツインセルTCの一方のメモリセルに書込みバイアス電圧を印加させることによって、32個のツインセルTCの一方のメモリセルの閾値電圧Vthを増加させる。他方のメモリセルに対しては書き込みバイアス電圧は印加されず、よってその閾値電圧Vthは維持される。
【0109】
消去対象ブロックの中間領域には、消去対象ブロックの中間領域から読み出されたツインセルデータの反転データが書き込まれる。一方、消去対象ブロックの中間領域以外にも、消去対象ブロックの中間領域から読み出されたツインセルデータの反転データが書き込まれる。
【0110】
ステップS413において、書込みベリファイが実施される。つまり、書込みデータが「0」の場合には、ポジティブベリファイセンスアンプVSPによって、ポジティブセルMCPの閾値電圧Vthが、第2の書込みベリファイ電圧WVER2を超えているか否かが判定される。書込みデータが「1」の場合には、ネガティブベリファイセンスアンプVSNによって、ネガティブセルMCNの閾値電圧Vthが、第2の書込みベリファイ電圧WVER2を超えているか否かが判定される。
【0111】
ステップS414において、32個のツインセルTCの少なくとも1つについて、閾値電圧Vthを増加させる方のメモリセルの閾値電圧Vthが第2の書込みベリファイ電圧WVER2以下の場合には、処理がステップS411に戻る。32個のツインセルTCのすべてについて、閾値電圧Vthを増加させる方のメモリセルの閾値電圧Vthが第2の書込みベリファイ電圧WVER2を超えている場合には、処理がステップS415に進む。
【0112】
ステップS415において、制御回路120は、アドレスADRを1つインクリメントする。
【0113】
ステップS416において、アドレスADRが(最終アドレス+1)の場合には、処理が終了する。アドレスADRが(最終アドレス+1)でない場合には、処理がステップS411に戻る。つまり、消去対象ブロックの中間領域から最終アドレスで指定される32ビットの領域までの32ビット毎の各領域が、その中間領域から読み出したデータの反転データに基づきプレライトされる。
【0114】
図15(a)は、先頭領域および中間領域において、データ“1”記憶状態から、第2プレライト処理で“0”を書込み、その後消去処理を実行した場合の閾値電圧Vthの変化を表わす図である。
図15(b)は、先頭領域および中間領域において、データ“0”記憶状態から、第2プレライト処理で“1”を書込み、その後消去処理を実行した場合の閾値電圧Vthの変化を表わす図である。
【0115】
図16(a)は、先頭領域および中間領域以外の領域において、データ“1”記憶状態から、第2プレライト処理で“0”を書込み、その後消去処理を実行した場合の閾値電圧Vthの変化を表わす図である。
図16(b)は、先頭領域および中間領域以外の領域において、データ“1”記憶状態から、第2プレライト処理で“1”を書込み、その後消去処理を実行した場合の閾値電圧Vthの変化を表わす図である。
図16(c)は、先頭領域および中間領域以外の領域において、データ“0”記憶状態から、第2プレライト処理で“1”を書込み、その後消去処理を実行した場合の閾値電圧Vthの変化を表わす図である。
図16(d)は、先頭領域および中間領域以外の領域において、データ“0”記憶状態から、第2プレライト処理で“0”を書込み、その後消去処理を実行した場合の閾値電圧Vthの変化を表わす図である。
【0116】
図15および
図16に示されるように、ブロックイレーズ2では、終了後のポジティブセルMCP、ネガティブセルMCNの閾値電圧Vthの大小関係は、ブロックイレーズ実施前の閾値電圧Vthの大小関係を維持しない。数ビット、または数アドレス単位で維持している箇所が有っても、メモリマット全体での書込みデータの連続性が喪失している。ブロックイレーズ2は、前述したブロックイレーズ1に比較するとデータの読み出しに時間を要するため、実行時間は長くなるが、機密性の高いデータを保護することができるという利点がある。
【0117】
(ツインセルデータの復元)
ブロックイレーズ1コマンドによって、不本意にツインセルデータが消去された場合、消去されたツインセルデータを復元するために、マイクロコンピュータ1に復元コマンドが実装される。
【0118】
図17は、第2の実施形態のツインセルデータの復元の手順を表わすフローチャートである。
【0119】
ステップS501において、CPU2からの復元コマンド、復元対象ブロックの指定がフラッシュメモリモジュール6に入力される。復元対象ブロックとして、メモリマットMAT0〜MAT3のいずれかのマットが指定される。
【0120】
ステップS502において、制御回路120は、復元対象ブロックの先頭アドレスをアドレスADRに設定する。
【0121】
ステップS503において、アドレスADRに従って、第1行デコーダRDEC1、第2行デコーダRDEC2、および列デコーダCDECによって、アドレスADRと、アドレスADRの後続の3アドレスの計4アドレスで指定される32個のツインセルTCが選択される。制御回路120は、MG、CG、SLを
図5(a)に示す読み出し電圧に設定し、読み出しセンスアンプSA、出力バッファ、データバスD(31:0)を通じて、読み出された32ビットのツインセルデータが制御回路120に送られる。ブランク消去状態であっても、ポジティブセルMCPの閾値電圧VthよりもネガティブセルMCNの閾値電圧Vthが高ければ、読み出されたツインセルデータが”1”と判定され、ネガティブセルMCNの閾値電圧VthよりもポジティブセルMCPの閾値電圧Vthが高ければ、読み出されたツインセルデータが”0”と判定される。
【0122】
ステップS504において、列デコーダCDECは、C2信号によって書換え列セレクタMC2GP,MC2GNをオンにし、入出力回路IOBUFは、信号線D0P,D0Nを介して、読み出されたツインセルデータと同一の書込みデータをポジティブ書込みデータラッチ回路WDLPおよびネガティブ書込みデータラッチ回路WDLNに設定する。すなわち、入出力回路IOBUFは、読み出されたツインセルデータが“1”の場合、ポジティブセルMCPの閾値電圧Vthが低く、ネガティブセルMCNの閾値電圧Vthが高いので、書込みデータを“1”に設定して、ネガティブセルMCNの閾値電圧Vthのみを増加させる。また、入出力回路IOBUFは、読み出されたツインセルデータが“0”の場合、ネガティブセルMCNの閾値電圧Vthが低く、ポジティブセルMCPの閾値電圧Vthが高いので、書込みデータを“0”に設定して、ポジティブセルMCPの閾値電圧Vthのみを増加させる。
【0123】
ステップS505において、制御回路120は、書込みを開始する。
ステップS506において、制御回路120は、選択されたMBL、SBL、SG、MG、SL、WELLを通じて、ツインセルTCに書込みバイアス電圧を印加させることによって、ツインセルTCの一方のメモリセルの閾値電圧Vthを増加させる。
【0124】
ステップS507において、書込みベリファイが実施される。つまり、書込みデータが「0」の場合には、ポジティブベリファイセンスアンプVSPによって、ポジティブセルMCPの閾値電圧Vthが、第1の書込みベリファイ電圧WVER1を超えているか否かが判定される。書込みデータが「1」の場合には、ネガティブベリファイセンスアンプVSNによって、ネガティブセルMCNの閾値電圧Vthが、第1の書込みベリファイ電圧WVER1を超えているか否かが判定される。
【0125】
ステップS508において、32個のツインセルTCの少なくとも1つについて、閾値電圧Vthを増加させる方のメモリセルの閾値電圧Vthが第1の書込みベリファイ電圧WVER1以下の場合には、処理がステップS506に戻る。32個のツインセルTCのすべてについて、閾値電圧Vthを増加させる方のメモリセルの閾値電圧Vthが第1の書込みベリファイ電圧WVER1を超えている場合には、処理がステップS509に進む。
【0126】
ステップS509において、制御回路120は、アドレスADRを1つインクリメントする。ステップS510において、アドレスADRが(最終アドレス+1)の場合には、処理が終了する。アドレスADRが(最終アドレス+1)でない場合には、処理がステップS503に戻る。
【0127】
このように制御回路120は、第2の消去コマンドに基づいて消去対象の複数個のツインメモリセルの少なくとも一部において、プレライト前のデータの書込み状態のポジティブセルとネガティブセルの対のそれぞれ閾値の大小関係を逆転させた消去状態に1個または2個以上のメモリセルを置くように前記消去処理を実施する。より具体的にはプレライトにより同時に書き込みバイアス電圧が印加される複数のツインメモリセルの少なくともいずれか一個において、ポジティブセルとネガティブセルの対のそれぞれ閾値の大小関係を逆転させた消去状態が実現される。
【0128】
他方、第1の消去コマンドに基づいて消去対象の複数個のツインメモリセルを消去する消去処理では基本的には、プレライト前の書込み状態にあるポジティブセルとネガティブセルの対の閾値の大小関係が変更されない。よって消去処理により閾値の大小関係が逆転するセル対の数は第1の消去コマンドよりも第2の消去コマンドの消去処理の方が多くなる。第1の消去コマンドに比べ第2の消去コマンドに従い消去処理の実施される複数個のツインセルのデータ値は、データの読出しを試みた場合、消去前のデータ値と異なるビット数が多くなる。第2の消去コマンドによる消去は第1の消去コメントにより消去よりもデータの再現性が低く、消去前のデータの機密性が保たれる。
【0129】
以上のように、本実施の形態によれば、第1の実施形態と同様に、第1の消去コマンドによって、ユーザが単に新たにデータを書き込むためにツインセルデータの消去を行なうことができ、第2の消去コマンドによって、ユーザが機密を保持したツインセルデータの消去を行なうことができる。
【0130】
また、復元コマンドを使うことによって、第1の消去コマンドの実行後のブランク消去状態から元のデータを復元することができる。
【0131】
[第3の実施形態]
第1および第2の実施形態で説明したブロックイレーズ2における第2プレライト処理および復元の処理は、フラッシュメモリモジュール6内の制御回路120によって制御された。それゆえ、フラッシュメモリモジュール6内の制御回路120に、ブロックイレーズ2における第2プレライト処理および復元処理の機能を実装する必要がある。本実施の形態では、CPU2がブロックイレーズ2におけるプレライトプログラムおよび復元プログラムを実行することによって、フラッシュメモリモジュール6内の制御回路120に第2プレライト処理および復元の機能が実装されていない場合でも、第2プレライトおよび復元が実行できるようにする。
【0132】
図18は、プレライトプログラムの処理手順を表わす図である。
Step0で処理が開始される。
【0133】
Step1において、CPU2は、ポジティブベリファイセンスアンプVSPおよびネガティブベリファイセンスアンプVSNに参照電圧として第2の書込みベリファイ電圧WVER2を供給することを指示する値を制御回路120内のレジスタ131に設定する。なお、レジスタ131のデフォルト値は、ポジティブベリファイセンスアンプVSPおよびネガティブベリファイセンスアンプVSNに参照電圧として第1の書込みベリファイ電圧WVER1を供給することを指示する値である。
【0134】
Step2において、CPU2は、アドレスADRを消去対象ブロックの先頭アドレスに設定する。
【0135】
Step3において、CPU2は、リードコマンドReadと、アドレスADRからなるリード命令を出力する。制御回路120は、このコマンドを受けると、アドレスADRと、アドレスADRの後続の3アドレスの計4アドレスで指定される32個のツインセルTCのツインセルデータを読み出して、CPU2へ出力する。制御回路120から出力されたツインセルデータが、32ビットのDATAとなる。
【0136】
Step4において、CPU2は、プログラムコマンドWriteと、アドレスADRと、データ/DATAとからなるプログラム命令を出力する。制御回路120は、このコマンドを受けると、アドレスADRと、アドレスADRの後続の3アドレスの計4アドレスで指定される32個のツインセルTCに32ビットのデータ/DATAを書き込む。/DATAは、Step3で読み出されたDATAの各ビットを反転させたものである。ここで、ベリファイセンスアンプVSP,VSNには、レジスタ131の設定によって、第2の書込みベリファイ電圧WVER2が供給されているので、各ツインセルTCのポジティブセルMCPとネガティブセルMCNの一方の閾値電圧Vthが第2の書込みベリファイ電圧WVER2を超えるまで、書込み処理が続行される。
【0137】
Step5において、CPU2は、アドレスADRを1つインクリメントする。
Step6において、CPU2は、アドレスADRが消去対象ブロックの(中間アドレス+4)の場合には、処理をStep7に進ませる。CPU2は、アドレスADRが消去対象ブロックの中間アドレスでない場合には、処理をStep4に戻す。
【0138】
Step7において、CPU2は、リードコマンドReadと、アドレスADRからなるリード命令を出力する。制御回路120は、このコマンドを受けると、アドレスADRと、アドレスADRの後続の3アドレスの計4アドレスで指定される32個のツインセルTCのツインセルデータを読み出して、CPU2へ出力する。制御回路120から出力されたツインセルデータが、32ビットのDATAとなる。
【0139】
Step8において、CPU2は、プログラムコマンドWriteと、アドレスADRと、データ/DATAとからなるプログラム命令を出力する。制御回路120は、このコマンドを受けると、アドレスADRと、アドレスADRの後続の3アドレスの計4アドレスで指定される32個のツインセルTCに32ビットのデータ/DATAを書き込む。/DATAは、Step7で読み出されたDATAの各ビットを反転させたものである。
【0140】
Step9において、CPU2は、アドレスADRを1つインクリメントする。
Step10において、CPU2は、アドレスADRが消去対象ブロックの(最終アドレス+4)の場合には、処理を終了する。CPU2は、アドレスADRが消去対象ブロックの(最終アドレス+1)でない場合には、処理をStep8に戻す。
【0141】
図19は、復元プログラムの処理手順を表わす図である。
Step0で処理が開始される。
【0142】
Step1において、CPU2は、アドレスADRを復元対象ブロックの先頭アドレスに設定する。
【0143】
Step2において、CPU2は、リードコマンドReadと、アドレスADRとからなるリード命令を出力する。制御回路120は、このコマンドを受けると、アドレスADRと、アドレスADRの後続の3アドレスの計4アドレスで指定される32個のツインセルTCのツインセルデータを読み出して、CPU2へ出力する。制御回路120から出力されたツインセルデータが、32ビットのDATAとなる。
【0144】
Step3において、CPU2は、プログラムコマンドWriteと、アドレスADRと、データDATAとからなるプログラム命令を出力する。制御回路120は、このコマンドを受けると、アドレスADRと、アドレスADRの後続の3アドレスの計4アドレスで指定される32個のツインセルTCに32ビットのDATAを書き込む。DATAは、Step2で読みされたDATAと同一である。ここで、ベリファイセンスアンプVSP,VSNには、第1の書込みベリファイ電圧WVER1が供給されているので、各ツインセルTCのポジティブセルMCPとネガティブセルMCNの一方の閾値電圧Vthが第1の書込みベリファイ電圧WVER1を超えるまで、書込み処理が続行される。
【0145】
Step4において、CPU2は、アドレスADRを1つインクリメントする。
Step5において、CPU2は、アドレスADRが消去対象ブロックの(最終アドレス+4)の場合には、処理を終了する。CPU2は、アドレスADRが消去対象ブロックの(最終アドレス+1)でない場合には、処理をStep2に戻す。
【0146】
ブロックイレーズ2プログラムおよび復元プログラムは、
図4に示すフラッシュメモリモジュール6のメモリマットMAT0〜MAT3内のいずれかに記憶されており、ブロックイレーズ2および復元処理の前に、
図3のRAM5に転送され、CPU2によって読み出されて実行される。あるいは、ブロックイレーズ2プログラムおよび復元プログラムは、マイクロコンピュータ1の外部のデバイス(たとえばライター)によって、マイクロコンピュータ1の内部の入出力ポートを介してRAM5に書き込まれることとしてもよい。
【0147】
以上のように、本実施の形態によれば、フラッシュメモリモジュール6内の制御回路120に、第2プレライト処理および復元の機能を実装されていなくても、CPU2がプレライトプログラムおよび復元プログラムを実行することによって、第2の実施形態と同様のブロックイレーズ2および復元を実現できる。
【0148】
本発明は、上記実施形態に限定されるものではなく、たとえば以下のような変形例も含まれる。
【0149】
(1)ブロックイレーズ2の書込みデータ
本発明の実施の形態では、ブロックイレーズ2において、消去対象ブロックの前半分の領域に消去対象ブロックの先頭領域から読み出したデータを反転したデータを書込み、消去対象ブロックの後半分の領域に消去対象ブロックの中間領域から読み出したデータを反転したデータを書き込んだが、これに限定するものではない。
【0150】
消去対象ブロックをN分割実施し、分割された各領域の先頭領域から読み出したデータを反転したデータを、各領域の全体に書き込むこととしてもよい。あるいは、消去対象ブロックの全領域に消去対象ブロックの先頭領域から読み出したデータを反転したデータを書き込むこととしてもよい。あるいは、消去対象ブロックの各領域からデータを読み出して、読み出したデータを反転したデータを各領域に書き込むこととしてもよい。消去対象ブロックからデータを読み出さずに、ランダムデータを消去対象ブロックに書き込むこととしてもよい。
【0151】
(2)第2プレライト処理の書込みベリファイ電圧
本発明の実施形態では、第2プレライト処理では、閾値電圧Vthを増加させる側のメモリセルの閾値電圧Vthが第2の書込みベリファイ電圧WVER2を超えるか否かが判定されることとしたが、これに限定されるものではなく、閾値電圧Vthを増加させる側のメモリセルの閾値電圧Vthが第1の書込みベリファイ電圧WVER1を超えるか否かが判定されることとしてもよい。この場合に、ブロックイレーズ2終了後のポジティブセルMCP、ネガティブセルMCNの閾値電圧Vthの大小関係は、ブロックイレーズ2実施前の閾値電圧Vthの大小関係を維持する確率は、第2の書込みベリファイ電圧WVER2を用いる場合よりも高くなるが、ブロックイレーズ2実施前の閾値電圧Vthの大小関係を完全に維持することはない。したがって、少しでもブロックイレーズ2実施前の閾値電圧Vthの大小関係が維持されていなければよいような場合には、第2プレライト処理において、閾値電圧Vthを増加させる側のメモリセルの閾値電圧Vthが第1の書込みベリファイ電圧WVER1を超えるか否かが判定されることとしてもよい。
【0152】
(3)ブロックイレーズ2のみの実装
上述した実施形態において、機密保持データのみを扱うフラッシュメモリモジュールであれば、ブロックイレーズ1(又はそのプレライトプログラム)及び復元処理(又はその復元プログラム)はフラッシュメモリモジュールにおいて必ずしも実装されなくてもよい。
【0153】
(4)ブロックイレーズ1及び復元処理のみの実装
他方、機密保持データの消去を不要とするユーザに対しては、ブロックイレーズ2(又はそのプレライトプログラム)はフラッシュメモリモジュールに実装されなくてもよい。
【0154】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。