図1には、本発明を適用したフラッシュメモリの一実施例が示されている。特に制限されないが、図1に示されている各回路ブロックは、単結晶シリコンのような1個の半導体チップ1上に形成されている。
図1において、11は図18に示されているようなフローティングゲートを有する1つのトランジスタからなるメモリセルがマトリックス状に配置されたメモリアレイ、12はメモリアレイ11から読み出された1セクタ分のデータを保持したり外部から入力された書込みデータを保持するデータレジスタ、13は上記メモリアレイ11とデータレジスタ12との間に設けられた追加書込みや書換えの際のデータ変換を行なう書換回路である。
また、14は外部から入力されたアドレス信号を保持するアドレスレジスタ、15はメモリアレイ11内のワード線の中から上記アドレスレジスタ14に取り込まれたアドレスに対応した1本のワード線を選択するXデコーダ、16は外部からの書込みデータを上記データレジスタ12に順次転送したりデータレジスタ12に読み出されたデータを外部へ出力するためのYアドレス信号(データ線選択信号)を生成するYアドレスカウンタである。上記Yアドレスカウンタ16は、1セクタの先頭アドレスから最終アドレスまでを順次更新し出力する機能を有する。17は生成されたYアドレスをデコードして1セクタ内の1つのデータを選択するYデコーダ、18はデータレジスタ12に読み出されたデータを増幅して外部へ出力するメインアンプである。
この実施例のフラッシュメモリは、特に制限されないが、シリアルアクセスのデータ入出力インタフェースを持つ。例えば読出し時には、読み出すべきセクタのアドレスが入力されると一本のワード線が選択され、それに接続される複数のメモリセルから並行してデータが読み出され、それぞれ後に説明するセンスラッチ群SLTに一旦保持される。このセンスラッチ群は上記データレジスタ12に含まれる。センスラッチ群はYアドレスカウンタ16により順次選択され、その保持データがシリアルに出力される。書込みの場合は、シリアルデータが入力され、上記とは逆の経路で選択されたセクタに書込みが行われる。また、メモリチップの入出力端子は複数とされ、1セクタのデータが分割してシリアルに入力される。
この実施例のフラッシュメモリは、特に制限されないが、外部のCPU等から与えられるコマンドを保持しそれをデコードするコマンドレジスタ&デコーダ21と、該コマンドレジスタ&デコーダ21のデコード結果に基づいて当該コマンドに対応した処理を実行すべくメモリ内部の各回路に対する制御信号を順次形成して出力する制御回路(シーケンサ)22とを備えており、コマンドが与えられるとそれを解読して自動的に対応する処理を開始するように構成されている。
上記制御回路22は、例えばマイクロプログラム方式のCPVの制御部と同様に、コマンド(命令)を実行するのに必要な一連のマイクロ命令郡が格納されたROM(リードオンリメモリ)からなり、コマンドレジスタ&デコーダ21がコマンドに対応したマイクロ命令群の先頭アドレスを生成して制御回路22に与えることにより、マイクロプログラムが起動されるように構成することができる。このROM内に設けられたソフトウェアには、図4で後述する命令手順と、電圧印加時間等の条件とが格納される。ROMには最低限のマイクロ命令のみを搭載し、命令条件や追加プログラムは書換可能なフラッシュメモリに格納するようにしてもよい。
さらに、この実施例のフラッシュメモリには、上記各回路の他、アドレス信号やデータ信号の入出力を行なうI/Oバッファ回路23、外部のCPU等から供給される制御信号が入力される制御信号入力バッファ回路24、外部から供給される電源電圧Vccに基づいて書込み電圧Vw(−10V)、消去電圧Ve(10V)、読出し電圧(2V)、ベリファイ電圧(1V)等チップ内部で必要とされる電圧を生成する電源回路25、メモリの動作状態に応じてこれらの電圧の中から所望の電圧を選択してメモリアレイ11やXデコーダ15に供給する電源切替回路26等が設けられている。なお、電源電圧よりも高いVwやVeのような電圧は、電源回路25に含まれるチャージポンプ回路により発生される。
特に制限されないが、この実施例のフラッシュメモリは、アドレス信号と書込みデータ信号およびコマンド入力とで外部端子(ピン)I/Oを共用している。そのため、上記I/Oバッファ回路23は、上記制御信号入力バッファ回路24からの制御信号に従ってこれらの入力信号を区別して取り込み所定の内部回路に供給するように構成されている。
外部のCPU等からこの実施例のフラッシュメモリに入力される制御信号としては、例えばリセット信号RESやチップ選択信号CE、書込み制御信号WE、出力制御信号OE、コマンドもしくはデータ入力かアドレス入力かを示すためのコマンドイネーブル信号CDE、システムクロックSC等がある。
なお、上記実施例のフラッシュメモリを制御する外部の装置としては、アドレス生成機能とコマンド生成機能を備えていればよいので、汎用マイクロコンピュータLSIを用いることができる。
図2には書込みによってメモリセルのしきい値を下げる方式のメモリアレイ11の具体例を示す。この実施例のメモリアレイ11は2つのマットで構成されており、図2にはそのうち片方のメモリマットの具体例が示されている。同図に示すように、各メモリマットは、列方向に配列され各々ソースおよびドレインが共通接続された並列形態のn個のメモリセル(フローティングゲートを有するMOSFET)MC1〜MCnからなるメモリ列MCCが行方向(ワード線WL方向)および列方向(データ線DL方向)にそれぞれ複数個配設されている。各メモリ列MCCは、n個のメモリセルMC1〜MCnのドレインおよびソースがそれぞれ共通のローカルデータ線LDLおよび共通のローカルソース線LSLに接続され、ローカルデータ線LDLは選択MOSFET Qs1を介してメインデータ線DLに、またローカルソース線LSLは選択MOSFET Qs2を介して接地点または負電圧に接続可能にされた構成にされている。上記複数のメモリ列MCCのうちワード線方向に配設されているものは半導体基板上の同一のウェル領域WELL内に形成される。
特に制限されないが、図2に示すメモリアレイの構成を有し、消去状態を高いしきい値電圧にとるとともに書込み状態を低いしきい値電圧にとる方式はAND形フラッシュメモリと呼ばれることがある。この場合、フローティングゲートへの電子の注入(しきい値電圧を上げ、消去状態にする)には、特に制限されないが、トランジスタのチャネルからFN(Fowler-Nordheim)トンネル注入が用いられ、フローティングゲートからの電子の引き抜き(しきい値電圧を下げ、書込み状態にする)には、拡散層へのFNトンネル放出が用いられる。
データ消去時にはそのウェル領域WELLおよびローカルソース線LSLに−3Vのような負電圧を与え、ウェル領域を共通にするワード線に10Vのような電圧を印加することで、一括消去が可能にされている。なお、データ消去時には選択MOSFET Qs2がオン状態にされて、各メモリセルのソースに−3Vの負電圧が印加されるように構成されている。このとき、選択MOSFET Qs1はオフとされ、ドレインは、コントロールゲートに10Vの高電圧が印加されることでオン状態にされたメモリセルのチャンネルを通してソース側の電圧が伝えられることで−3Vのような電位にされる。
一方、データ書込み時には、選択されるメモリセルが接続されたワード線に−10Vのような負電圧が印加されるとともに、選択されるメモリセルに対応したメインデータ線DLが3Vのような電位にされかつ選択メモリセルが接続されたローカルデータ線LDL上の選択MOSFET Qs1がオン状態され、ドレインに3Vが印加される。ただし、このときローカルソース線LSL上の選択MOSFET Qs2はオフ状態とされている。
また、データ読出し時には、選択されるメモリセルが接続されたワード線に読出し電圧Vr(例えば2.0V)のような電圧が印加されるとともに、選択されるメモリセルに対応したメインデータ線DLが1Vのような電位にプリチャージされかつ選択メモリセルが接続されたローカルデータ線LDL上の選択MOSFET Qs1がオン状態とされる。そして、このときローカルソース線LSL上の選択MOSFET Qs2はオン状態とされ、接地電位(0V)が印加される。これにより、メモリセルのしきい値電圧に応じて電流が流れるもの(LDL電位が0Vに低下)と、電流が流れないもの(LDL電位が1Vに維持される)とが区別され、メモリセルの記憶情報が読み出される。
ここで、データ書込み時および消去時の電圧が図18,図19の従来タイプに比べて低いのは、従来より微細加工が可能な技術を使用して素子寸法を小さくするとともに、電源電圧Vccとして従来の5Vに代えて3Vを使用しているためである。
上記メインデータ線DLの一端(メモリアレイの中央側)には読出し時にデータ線のレベルを検出するとともに書込み時に書込みデータに応じた電位を与えるセンスラッチ回路SLTと追加書込みの際に期待値データを形成したりするのに使用するデータ反転回路WRWがそれぞれ接続されている。上記センスラッチ回路SLTの集合が図1におけるデータレジスタ12で、データ反転回路WRWの集合が図1における書換回路13である。この2つのウェル領域WELL上に形成された2つのメモリアレイをマットa(MATa)と呼ぶこととする。ここで、メインデータ線の数やセンスラッチ回路SLTは1セクタに対応した数とされ、例えば4224個(512+16byte)が並列に設けられる。
この実施例ではメモリアレイは2つのメモリマットで構成され、センスラッチ回路SLTの反対側すなわち図の下側にも上記データ反転回路WRWとメモリマットが配置されており、そのメモリアレイ内の各メインデータ線DLが対応するデータ反転回路WRWを介してセンスラッチ回路SLTの他方の入出力端子に接続されている。即ち、データ反転回路WRWはマットMATa及びMATbごとに設けられ(区別するときはWRWa,WRWbと呼ぶ)、センスラッチ回路SLTは2つのメモリマットで共用される。
図3には、上記センスラッチ回路SLTおよびデータ反転回路WRWの具体的回路例を示す。回路はセンスラッチ回路を挟んで対称であるため、一方のメモリマット内の1本のデータ線に関してのみ図示するとともに、便宜上、データ線に接続されているメモリ列のうち1つのメモリ列MCCのみ示したが、実際には複数のメモリ列MCCが接続されるものである。図示のごとく、センスラッチ回路SLTはPチャネルMOSFETとNチャネルMOSFETからなる2つのCMOSインバータの入出力端子が交差結合されたフリップフロップ回路FFにより構成されている。そして、上記センスラッチ回路SLTの一対の入出力端子Na,Nbに、Yデコーダの出力によってオン、オフ制御されるいわゆるYゲートを構成するカラムスイッチMOSFET Qya、Qybが接続されている。このメインデータ線ごとに設けられた複数のカラムスイッチQya,Qybの他端は、相補共通入出力線(IO,/IO)に共通接続される。
データ反転回路WRWaは、上記センスラッチ回路SLTの一方の入出力端子Naと一方のメモリマット内のメインデータ線DLaとの間に接続された伝送MOSFET Qt1と、電源電圧端子Vccとメインデータ線DLaとの間に接続され制御信号PC2Aによって制御されるプリチャージ用のMOSFET Qp1と、プリチャージ切替端子VPCとメインデータ線DLaとの間に直列接続されたMOSFETQt2,Qp2とにより構成されている。このうちQt2のゲートには、上記センスラッチ回路SLTの入出力端子Naの電位が印加され、Qp2のゲートには制御信号PC1Aが印加されている。また、上記プリチャージ切替端子VPCには電源電圧VccまたはVssが供給されるように構成されている。
さらに、上記センスラッチ回路SLTの他方の入出力端子Nbにも同様の構成のMOSFETQt1,Qt2,Qp1,Qp2からなるデータ反転回路WRWbが接続されている。
図4に制御回路22によるデータ追加書込み時の制御手順を示す。追加書込みを起動する追加書込みコマンドは、図1の制御入力信号のうち、コマンドイネーブル信号CDEが有効とされるとき、IO入出力端子から入力されるコマンドにより設定された8ビットのコードにより指定される。後に説明するように、この制御回路は、この他に消去コマンドや書込みコマンド等を受け付けるが、それらはIO入出力端子から入力されるコードの違いにより区別される。コマンドコードはコマンドデコーダによりデコードされ、それにより対応する一連のプログラムが起動される。
この制御シーケンスは、追加書込みコマンドがコマンドレジスタ&デコーダ21に取り込まれることによって開始される。この制御シーケンスが開始されると、チップ内部が追加書込みモードにセットアップされ、データレジスタ12ではすべてのセンスラッチSLTに"1"がセットされる(ステップS1)。次に、外部から入力された書込みアドレスをアドレスレジスタ14に取り込む(ステップS2)。続いて、外部から入力された少なくとも1つの追加書込みデータをデータレジスタ12に格納する(ステップS3)。
次に、外部から書込み開始コマンドがコマンドレジスタ&デコーダ21に取り込まれることによって、上記アドレスレジスタ14に保持されているセクタアドレス(Xアドレス)がXデコーダ15でデコードされ、メモリアレイ11内の1本のワード線が選択されて2Vのような読み出しレベルに設定される。これによって、1セクタ分のデータがデータレジスタ12に読み出されるとともに、すでにセットされていた追加書込みデータとに基づいて書込み期待値データを作成してそれをデータレジスタ12に保持させる(ステップS4)。以上の処理が前記制御回路(シーケンサ)22の制御の下で書換回路13(データ反転回路WRW)によって自動的に行なわれる。
続いて、上記選択ワード線に10V、ウェル領域に−3Vの消去パルスを印加して当該セクタのすべてのメモリセルのしきい値を高める(ステップS5)。このステップが本願の特徴とするところの一つである。これによって、記憶データが論理"0"であったメモリセルは図10(C-1)のようにしきい値がVev以上となり、記憶データは論理"1"に変化するとともに、記憶データが論理"1"であったメモリセルは図10(B-1)のようにディスターブが回復される。なお、上記記憶データが論理"1"であったメモリセルのディスーブは、同一セクタ内の他のメモリセルへの書込みの際に生じたものである。
図4のステップS5においては、セクタのすべてのメモリセルのしきい値を電圧Vevよりも高くする例であるが、本発明はこれに限定されるものでなく、図23(c-1)のように、セクタ中のすでにデータが書き込まれているメモリセルに対してはそのしきい値を電圧Vpv(<Vev)よりも高くする程度でもよい。この同一セクタのメモリセルを一括してしきい値電圧を電圧Vevよりも高くすることをせずに電圧Vpvよりも高電位側にする操作を便宜上、擬消去と呼ぶこととする。この擬消去は、1セクタのメモリセルを一括して消去する動作と比較すると、メモリセルに印加する電圧は同じであるが、その電圧印加時間において区別される。即ち、後に図14で説明する消去コマンドを実行して、書込み状態にあるメモリセルに完全な消去を行うためには、通常1msの間、選択ワード線に10Vを印加する。これに対して、擬消去では、その1/10程度の時間(約0.1ms)とされる。
従って、1セクタ内でしきい値電圧が第2状態にある第1メモリセル群のしきい値電圧は、完全にしきい値電圧が第1状態まで変化するのではなく、しきい値電圧が第1状態と第2状態の中間程度にされる。また、同一セクタ内で第1メモリセル群の残りであり、しきい値電圧が第1状態にある第2メモリセル群は、さらにしきい値電圧が高まる電圧方向(即ちしきい値電圧の第2状態から第1状態への電圧方向)にしきい値電圧が変化させられる。つまり擬消去は、メモリセルの完全な消去ではなく、ワードディスターブによって引き起こされる第1状態から第2状態への電圧方向のしきい値電圧の変化を見込んで、予めその変化を相殺する分だけ逆の電圧方向へしきい値電圧を変化される操作ととらえることができる。
次に、選択ワード線を−10Vに設定してデータ線は上記ステップS4で作成されデータレジスタ12(センスラッチSLT)に保持されている期待値データを用いてローカルデータ線LDLの電圧レベルを3Vに選択的に設定して書込みを行なう(ステップS6)。書込みを行わないメモリセルのローカルデータ線LDLの電圧レベルは0Vとする。それから、ベリファイ電圧Vpvを用いて読出しを行なってデータレジスタ12の保持データがすべて"0"になっているか否か判定することでしきい値が充分に低くなっているかチェックし(ステップS7)、1つでも"1"のデータが残っている場合には、しきい値が高いメモリセルがあると判定してステップS6へ戻ってそのときデータレジスタ12に保持されているデータを用いて再度書込みとベリファイを繰り返す。
上記繰り返しの過程では、すでにしきい値が充分に低くなっている(ベリファイ電圧Vpvよりもしきい値電圧が低くなった)メモリセルは、ローカルデータ線LDLの電圧レベルを0Vとして書込みを行わないように設定する。そして、残るしきい値の低下が不充分なメモリセルに対し選択的に書込みを行い、書込みを行うべきメモリセル群のしきい値電圧がすべて充分に低くなったところで、再書込みとベリファイを停止する。
この書込みベリファイは同一セクタ内のメモリセルの書込み時間のばらつきに対応するものである。即ち、先の擬消去により第1状態と第2状態の間のしきい値に設定されたメモリセルは、第1状態から第2状態へしきい値電圧を変化させるメモリセルよりも書込み時間がはるかに短い。書込みベリファイを用いることにより、書込み時のしきい値電圧のばらつきを抑えるとともに、しきい値電圧がVss以下になってしまうことが有効に防止される。
図5〜図8には、上記追加書込みフローにおけるステップS4の書込み期待値データ作成時のメモリアレイおよびデータ反転回路WRWの各部の信号タイミングをさらに詳細に示す。なお、図5〜図8は図3に示されているメモリアレイにおいて右側のメモリマットMATaが選択される場合の信号タイミングを示す。また、表1には、上記書込み期待値データ作成過程でのデータレジスタ12における保持データおよびデータ線レベルの変化の様子を、上から下へ時間を追って順に示す。
表1に示されているように、追加書込み時には、追加書込みデータがデータレジスタ12(センスラッチSLT)の所定のビットに格納される。なお、前述したように、同一セクタ内の追加書込みをしないメモリセル(既にデータが書き込まれているメモリセル)に対応したセンスラッチSLTには、データ"1"(この段階では、しきい値を変化させないことを意味している)がセットされている。即ち、表1において、使用中の欄の追加データの項目は、追加書込みを行わないことを明瞭にするため、"−"で示したが、実際には"1"となる。また、データ反転回路WRW内の電源切替端子VPCには最初にVcc(ハイレベル)を供給しておく。
この状態で、図5に示すように、先ず信号PC2B,PC1Aを立ち上げる(t1)。これによって、非選択側のマットMATbではデータ反転回路WRWb内のMOSFET Qp1がオンされて複数のメインデータ線DLbが基準電位(例えば0.5V)にプリチャージされる。一方、選択側のマットMATaではデータ反転回路WRWa内のMOSFET Qp2がオンされるとともに、MOSFET Qt2がセンスラッチSLTの保持データに応じてそれが"1"のときはオンされ、"0"のときはオフとされるため、センスラッチSLTの保持データが"1"に対応するメインデータ線DLaは1Vにプリチャージされ、保持データが"0"に対応するメインデータ線DLaはVss(ロウレベル)とされる。追加書込みをしないメモリセル(既にデータが書き込まれているメモリセル)に対応したセンスラッチSLTには、データ"1"がセットされているため、対応するメインデータ線DLaはすべて1Vにプリチャージされる。
続いて、1本のワード線およびローカルドレイン線選択信号SDおよびローカルソース線選択信号SSを立ち上げて、メモリアレイ内の選択MOSFET Qs1をオンさせる(図5のタイミングt2)。これによって、データ"0"が既に書き込まれているメモリセル(低しきい値)はオンとなるため、対応するメインデータ線DLaはディスチャージされてロウレベルとなる。一方、記憶データが"1"のメモリセル(高しきい値)はオフとなるため、対応するメインデータ線DLaはハイレベルのままである。さらに、未書込み(消去状態)のメモリセル(高しきい値)はオフであるため、対応するメインデータ線DLaは追加書込みデータに応じてセンスラッチSLTの保持データが"1"に対応するメインデータ線DLaは1Vとされ、保持データが"0"に対応するメインデータ線DLaはVssとされる。
次に、センスラッチSLTの電源電圧SLP,SLNをリセット状態(SLP=SLN=0.5V)にして保持データを一旦キャンセル(図5のタイミングt3)した後、信号TRをハイレベルにしてデータ線上の伝送MOSFET Qt1をオンさせてデータ線の電位をセンスラッチSLTに伝えて(図5のタイミングt4)から、センスラッチSLTの電源電圧SLP,SLNを順バイアス状態にしてデータ線の電位を増幅する(図5のタイミングt5)。図6には上記信号タイミングに従ったときのセンスラッチSLTの入出力ノードとメインデータ線DLa,DLbの電位の変化を示す。
なお、図6において、符号DAiはセンスラッチSLTのMATa(右側マット)側の入出力ノードNaの電位、符号DBiはセンスラッチSLTのMATb(左側マット)側の入出力ノードNbの電位、符号GDLAiはMATa側のメインデータ線DLaの電位、符号GDLBiはMATb側のメインデータ線DLbの電位である。また、図6(a)は選択メモリセルの現在の状態が書込み状態(低しきい値)である場合の波形、図6(b)は選択メモリセルの現在の状態が消去状態(高しきい値)で追加書込みでデータの書込みを行なわない場合の波形、図6(c)は選択メモリセルの現在の状態が消去状態(高しきい値)で追加書込みでデータの書込みを行なう場合の波形である。
その後、図7に示すように、信号TRをロウレベルにして伝送MOSFET Qt1をオフさせてデータ線とセンスラッチSLTとを遮断した状態で、信号PC2A,PC2Bを立ち上げる(タイミングt6)。これによって、データ反転回路WRWa内のMOSFET Qp1がオンされてメインデータ線DLa,DLbがそれぞれ1V,0.5Vにプリチャージされる。次に、データ反転回路WRWa内の電源切替端子VPCをVssに切り替えてから信号PC1Aを立ち上げる(図7のタイミングt7)。
すると、選択側ではデータ反転回路WRWa内のMOSFET Qp2がオンされるとともに、MOSFET Qt2がセンスラッチSLTの保持データに応じてそれが"1"のときはオンされ、"0"のときはオフとされる。そのため、センスラッチSLTの保持データが"1"に対応するメインデータ線DLaはVss(ロウレベル)にディスチャージされ、保持データが"0"に対応するメインデータ線DLaは1V(ハイレベル)のままにされる。つまり、データレジスタ12の保持データを反転した状態が選択側のデータ線上に現れる。
次に、センスラッチSLTの電源電圧SLP,SLNをリセット状態にして保持データを一旦キャンセル(図7のタイミングt8)した後、信号TRをハイレベルにしてデータ線上の伝送MOSFET Qt1をオンさせてデータ線の電位をセンスラッチSLTに伝えて(図7のタイミングt9)から、センスラッチSLTの電源電圧SLP,SLNを順バイアス状態にしてデータ線の電位を増幅する(図7のタイミングt10)。これによって、データレジスタ12には、書込みを行なうべきメモリセルに対応したセンスラッチSLTにのみ"1"にされた書込み期待値データが保持される。この書込み期待値データは、追加書込みデータと既に書込みがなされたメモリセルの記憶データとを並べ反転させたものであることが、表1より容易に理解される。
実施例のフラッシュメモリでは、上記書込み期待値データをデータレジスタ12に保持したまま、データ線上の伝送MOSFET Qt1をオフした状態で選択ワード線とウェル領域に消去パルスを印加して当該セクタのメモリセルをすべて消去状態(高しきい値)あるいは擬消去する。その後、データレジスタ12に保持されている上記書込み期待値データを用いて、保持データが"1"であるデータ線のみ3Vのようなレベルにプリチャージして選択ワード線に−10Vを印加することで、所望の追加書込みが実行される。その結果、プリチャージされなかったデータに接続されたメモリセルはしきい値が変化せず記憶データは"1"となり、逆にプリチャージされたデータに接続されたメモリセルはしきい値が低くされることで記憶データは"0"となる。
なお、上記消去パルス印加時に消去状態であったメモリセルのしきい値は、最低限書込みベリファイ電圧を越えれば良く、消去時間の節約が可能である。
図8には上記信号タイミングに従ったときのセンスラッチSLTの入出力ノードとメインデータ線DLa,DLbの電位の変化を示す。また、図8(a)は図5の動作終了時(タイミングt5)にセンスラッチSLTのマットA側の入出力ノードの電位がハイレベルであった場合のその後の波形、図8(b)は図5の動作終了時(タイミングt5)にセンスラッチSLTのマットA側の入出力ノードの電位がロウレベルであった場合のその後の波形を示す。
図9には、各メモリセルの追加書込み前と追加書込み後のしきい値の変化の様子を示す。図9において、(A)は書込み前の状態が「消去(記憶データ"1")」で追加書込みデータが"1"であるメモリセルの変化を、(B)は書込み前の状態が「消去(記憶データ"1")」で追加書込みデータが"0"であるメモリセルの変化を、(C)は書込み前の状態が「書込み(記憶データ"0")」で追加書込みがないメモリセルのしきい値の変化を示す。図9において、緩やかな右下がりの傾斜は、ディスターブによるしきい値の低下を意味している。なお、図9で破線で示すのは、初期書込みも追加書込みコマンドを用いて行なった場合のしきい値の変化である。即ち、メモリセルの一括消去直後の書込みにおいてもディスターブが起こるので、追加書込コマンドを用いる書込みは有効である。
表2には、メモリセルの状態(記憶データ)と追加書込データおよび書込期待値データとの関係を示す。表2に記されているA,B,Cの符号は、図9のメモリセルのしきい値変化との対応を表すものである。
図10には、この実施例の追加書込み制御を適用することにより、各メモリセルのしきい値の変化の様子が示されている。図10は、1セクタ内のメモリセル群のしきい値の遷移状態を表す図であり、横軸は電圧、縦軸は特定のしきい値電圧にあるメモリセルの度数を表している。この図において、しきい値電圧の第1状態(消去状態:論理"1")と第2状態(書込み状態:論理"0")とが定義される。即ち、メモリセルの記憶状態を決めるためのメモリセルのしきい値電圧は、第1状態ではVev以上となり、第2状態はVssからVpvの範囲となり、いずれも一点の電圧ではなく、所定の幅を持ったものとなる。
この実施例に従うと、図10(A-1),(B-1)に示すように、最初の書込み時のディスターブで破線で示すごとくしきい値が下がってしまっているメモリセルのしきい値を回復してやることができる。前述の説明では詳しく述べなかったが、1セクタを一括消去して、その中の特定のメモリセル群に書込みを行うと、残りのメモリセルは最初からワードディスターブを受けるのである。なお、図10において、(A-1),(A-2)は同一セクタ内でしきい値電圧が第1状態にある未使用領域の第1メモリセル群(消去状態)に書込みを行なわない場合のしきい値の変化の様子を、(B-1),(B-2)は同じく第1メモリセル群に書込みを行なう場合のしきい値の変化の様子を示す。また、(C-1),(C-2)は使用領域にあるしきい値電圧が第2状態の書込み状態の第2メモリセル群のしきい値の変化の様子をそれぞれ示す。同図から分かるように、この実施例では書込み済みのメモリセルも一旦消去状態にされてから再び書込み状態とされる。
なお、上記実施例では、セクタを使用領域と未使用領域の2つに分けた場合について説明したが、それに限定されるものでなく、上記未使用領域を複数のセクションに分割して各セクショ唐イとに追加書込みを可能な構成にしてもよい。
さらに、上記実施例では、データ書込みの際に一旦消去を行なってしきい値を高くした後に書込みパルスでしきい値を下げる方式のフラッシュメモリについて説明したが、消去動作でメモリセルのしきい値を低くしてから書込みパルスでしきい値を高くする方式等であっても良い。
図1に示した1チップに形成された第1の実施例のフラッシュメモリは、上述した追加書込みコマンド(第2書込みコマンド)の他に、少なくとも、図13の読出しコマンド、図14の消去コマンド(1セクタのメモリセルのしきい値電圧を一括して第1状態(消去状態)にするコマンド)、図15の書込みコマンド(第1書込みコマンド)を有する。図13〜14の手順の詳細は後に説明する。消去コマンドを実行して1セクタ内でしきい値が第2状態にあるメモリセル群を第1状態にするには、約1msの時間を要する。書込みコマンドを実行してしきい値が第1状態にあるメモリセル群を第2状態にするには同じく約1msの時間を要する。
以上の実施例により達成される本願発明の作用効果は以下の通りである。まず、図4の追加書込みコマンドと図15の書込みコマンドとを比較すると、追加書込みコマンドは、ステップ4−5(S4−S5)の手順が特徴となる。ステップ4により最終書込みデータの合成が自動的に行われるようになり、書込み時間の節約となる。
また、しきい値電圧の電圧方向を特徴的に決めるワード線への電圧印加で比較すると、図14の消去コマンドでは+10Vのみが約1ms印加されるステップを含み、図15の書込みコマンドでは−10Vのみが約1ms印加されるステップを含む。これに対し、図4では+10Vに引き続き−10Vを印加するステップを有することで特徴付けられる。また、ステップ5の擬消去で+10Vを印加する時間は、消去コマンドで+10Vを印加する時間より大幅に短くされることで特徴付けられる。
ディスターブを回避するために1セクタの書込みデータを一旦センスラッチSLTに退避してメモリセルを消去コマンドで完全に一括消去(約1ms)した後、センスラッチSLTに退避したデータと新たな書込みデータから合成した最終書込みデータを書込みコマンドでメモリセルへ書込みを行う(約1ms)方法では、合計約2ms以上の時間を要する。これに対して、図23で示すような擬消去を用いた追加書込みコマンドによれば、擬消去(約0.1ms)の後、書込み(約1ms)となるので、トータル約1.1msで完了し、実質的な書込み時間を約半分とすることができる。
また、擬消去によりディスターブの補償がなされワードディスターブが緩和されるため、追加書込みコマンドでは、実行に先立ち消去コマンドを実行して完全なセクタ消去をしなくてもよい。即ち、従来の書込みコマンドでは、その実行に先立ち消去コマンドを実行しなければならない制約があった。これに対し、追加書込みコマンドでは、ディスターブが大幅に緩和されるため、消去コマンドを実行せずに連続して実行できる回数を大幅に増やすことができる。つまり、本願発明の追加書込みコマンドは、消去コマンドを実行せずに、約15回以上連続して実行しても、同一セクタ内のメモリセルの記憶データが保証される。消去−書込みを15回以上繰り返すと30msとなるのに対し、追加書込みコマンドを15回連続して実行して1回消去コマンドを実行すると、17.5msとなるに過ぎず、システム全体としても書込み時間が大幅に節約される。
図13〜図15に本発明の他の実施例を示す。この実施例は、前記実施例における追加書込みコマンドや書込み期待値データ機能をフラッシュメモリに持たせずに、外部の制御装置からの一般的なデータ読出しコマンドと消去コマンドと書込みコマンドによって追加書込みを実行するようにしたものである。この実施例を適用できるフラッシュメモリは、少なくともデータ読出しコマンドと消去コマンドと書込みコマンドと開始コマンドとを解読して実行するシーケンサを備えている。このうち開始コマンドは必ずしも必要とされるものでなく、自動的にスタートするように構成することができる。
即ち、不揮発性メモリとしては、メモリアレイとシーケンサとが1チップ上に形成され、シーケンサは少なくとも、読出しコマンド(図13)、消去コマンド(図14)および書込みコマンド(図15)の基本命令を実行可能とされている。そして、実施例1で説明したように完全な一括消去と前述の擬消去とができるように、消去コマンドでのワード線の電圧印加時間や実行ステップは、変更可能にできるものとする。擬消去専用に消去時間だけが異なる第2消去コマンドを設けてもよい。また、この時、消去コマンドの消去ベリファイは不要とされる。
本願発明の追加書込みコマンドは、上記3つの基本命令を順次連続して実行するマクロコマンドとなり、そのコマンドは例えばパーソナルコンピュータのCPVで実行可能なプログラムとして、磁気記憶媒体等により配布可能とされる。従って、この場合のシーケンサは、メモリチップの狭義のシーケンサと外部のCPUとが一体となったものである。追加コマンドの形態としては、不揮発性メモリドライバとして追加プログラムされたり、しばしばコンピュータのOSに組み込まれる形式とされる。従って、本願の対象は、3個の基本命令が実行できる不揮発性メモリチップと、それが接続されるCPVを持つコンピュータシステムの一部となり得る。
以下、図13〜図15に従って、本実施例を説明する。
本実施例においては、追加書込みをする場合、外部の制御装置からフラッシュメモリに対して先ずデータ読出しコマンドが入力され、続いてデータを追加書込みしたい位置に相当するセクタアドレスが入力される。フラッシュメモリは、データ読出しコマンドが入力されると、メモリ内部の各回路を読出しモードに設定する(図13のステップS11)。続いてアドレスが入力されるとそのアドレスをアドレスレジスタに格納する(ステップS12)。次に、外部から開始コマンドが入力されると、上記アドレスレジスタに格納されたアドレスのデータをメモリアレイ内から読み出して外部へ出力する。外部の制御装置は、フラッシュメモリから出力されたデータを外部のメモリ内の所定の退避エリアに格納する。また、外部制御装置は上記退避エリアに格納された読出しデータと追加書込みデータとから書込み期待値データを作成して外部メモリに保持しておく。
次に、外部制御装置からフラッシュメモリに対して消去コマンドとセクタアドレスが入力される。すると、フラッシュメモリはメモリ内部の各回路を消去モードに設定してから、入力されたアドレスをアドレスレジスタに格納する(図14のステップS21,S22)。続いて開始コマンドが入力されると、上記アドレスレジスタに設定されたセクタアドレスに対応するメモリセルに対して、消去状態あるいは擬消去状態にするためのバイアス電圧を印加してしきい値を変化させる(ステップS23)。その後、ベリファイ読出しを行なって、確実にデータが消去されたか確認し、消去がなされていないときはステップS23へ戻って再度メモリセルに対して消去パルスを印加する(ステップS24,S25)。なお、ステップS22〜25の消去ベリファイは、通常の消去時に利用され、擬消去では使用されない。
次に、外部制御装置からフラッシュメモリに対して書込みコマンドとセクタアドレスおよび書込み期待値データが順次入力される。すると、フラッシュメモリはメモリ内部の各回路を書込みモードに設定してから、入力されたアドレスをアドレスレジスタに、また書込み期待値データをデータレジスタに格納する(図15のステップS31,S32,S33)。続いて開始コマンドが入力されると、上記アドレスレジスタに設定されたセクタアドレスに対応するメモリセルに対して、書込みパルスを印加してしきい値を変化させる(ステップS34)。その後、ベリファイ読出しを行なって、確実にデータの書込みがなされたか確認し、書込みがなされていないときはステップS34へ戻って再度メモリセルに対して書込みパルスを印加する(ステップS35,S36)。
以上、読出しコマンド、消去コマンドおよび書込みコマンドの3個の基本命令の組み合わせにより作ったマクロ追加書込みコマンドについて説明したが、図4の実施例に比べると、読出しデータをメモリチップ外部に取り出すため、図4のステップS4に対する手順の節約効果は薄れるものの、ワードディスターブを回避し、消去命令を実行せずにできる追加書込みについては実施例1と同様な効果が期待できる。
図16には、本発明の更に他の実施例を示す。図1と同一の符号については、その詳細な説明は省略する。この実施例は、上記実施例における退避エリアとなるレジスタ(データ退避レジスタ)27と、外部制御装置が行なっている書込み期待値データの演算を行なう演算回路(追加書込み対応演算回路)28とをフラッシュメモリ内部に設けるようにしたものである。この実施例のシーケンサ22は外部の制御装置から入力される追加書込みコマンドを解読して、上記レジスタ27および演算回路28を適当なタイミングで制御して追加書込みを実行させる機能を有するように構成される。
図17には上記実施例のフラッシュメモリの応用例としてのメモリカードの構成を示す。メモリカード100は、複数のフラッシュメモリ10とこれらのリード・ライトを制御するコントローラユニット110とによって構成されており、コントローラユニット110とフラッシュメモリ10とは、カード内に配設されたバス(図示省略)によって接続されており、コントローラユニット110からフラッシュメモリ10に対して、上述の追加書込みコマンドその他のコマンドやセクタアドレス、書込みデータ、ライトイネーブル信号などの制御信号がバスを介して供給される。120は、カードの一側に沿って設けられた信号入出力や電源供給用の端子兼コネクタである。
実施例1や実施例2では、フラッシュメモリのメモリアレイと、命令を実行するためのコマンドシーケンサが1チップ上に設けられた不揮発性メモリについて述べたが、その実現方法は、図17のようにカード形とすることもできる。このとき重要なことは、コントローラ110が少なくとも、図4で示した追加書込みコマンドの手順を含む不揮発性メモリシステムを構成することである。
メモリカード形態としたときの別の実施例としては、コントローラ110を省略し、フラッシュメモリチップが複数搭載されたメモリカードと、これらのメモリカードが接続可能とされるCPVを含むパーソナルコンピュータの形態も取り得る。この場合には、フラッシュメモリの制御に必要な消去、書込み等の全てのコマンドはCPUのプログラムとして含まれることとなる。そして、そのコマンドには図4の追加書込みコマンド、または図13〜15の基本命令を組み合わせたマクロ書込みコマンドを用いることができる。
以上説明したように、上記実施例においては、所定の指令が与えられると、指定アドレスのセクタの記憶データを読み出してレジスタに退避させてから当該セクタの一括消去を行ない、前記退避されたデータと追加書込みしようとするデータとから実際の最終書込みデータ(書込み期待値データ)を形成して書込み動作を行なうように構成したので、追加書込みの際にワード線ディスターブによるメモリセルのしきい値の変動が回復され、誤ったデータの読み出しを防止することができるという効果がある。
また、選択セクタから読み出されたデータを内部レジスタに保持した状態で外部から追加書込みデータが入力されると、書込み期待値データを自動的に内部で形成してから書込み動作を行なうように構成したので、追加書込みという動作を通常の書込みよりも高速で行なうことができ、しかも追加書込みにおけるソフトウェアの負担を軽減することができるという効果がある。
その結果、実施例のフラッシュメモリによれば、図22に示すように、同一セクタ内にOS情報やセクタ管理情報等一般ユーザーに開放されていないシステム領域と、一般ユーザーが自由に書込みをできるユーザー領域とを混在して設けることができ、これによってメモリの有効利用を図かることができる。このような記憶方式のフラッシュメモリは、システム領域に所定のデータが書き込まれ、ユーザー領域は未書込みの状態でユーザーに提供され、ユーザーが書込みを行なう時は追加書込みという動作で行なえるためである。なお、図22における管理データとしては、例えばパリティコードやエラー訂正符号、当該セクタの書換え回数、等がセクタが不良ビットを含むか否かの情報、当該セクタを複数のセクションに分割して各セクションごとに追加書込みを可能な構成にした場合におけるセクションの使用/未使用を示すセクション管理情報等がある。
以上本発明者によってなされた発明を実施例に基づき具体的に説明したが、本発明は上記実施例に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、上記実施例では、メモリアレイを2つのマットによって構成した場合について説明したが、この発明はそれに限定されず、偶数個のマットに分割した場合はもちろん1つのマットで構成されている場合にも適用することができる。
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野である一括消去型フラッシュメモリに適用した場合について説明したが、この発明はそれに限定されるものでなく、FAMOSを記憶素子とする不揮発性記憶装置一般さらには複数のしきい値を有するメモリセルを備えた半導体装置に広く利用することができる。