一般的な電気的にデータ書き込み可能な不揮発性半導体記憶装置としてフラッシュメモリがある。フラッシュメモリには、メモリセルアレイの構成形式により分類されるNOR型とNAND型と呼ばれる2種類のフラッシュメモリが存在する。以下、NOR型フラッシュメモリを想定して説明する。一般的にNOR型フラッシュメモリは、図7に示すように、フローティングゲート構造のメモリセルがマトリクス状に配置され、各列のメモリセルのドレイン電極が共通のビット線に接続し、各行のメモリセルのゲート電極が共通のワード線と接続し、各メモリセルのソース電極が、図示しないが、メモリセルアレイ全体、一定のブロック単位、列単位、或いは、行単位で共通のソース線に接続している。
上記NOR型フラッシュメモリにけるメモリセルの書き込み動作では、例えばメモリセルのゲートに高電圧、ソースに0Vを印加し、ドレインに高電圧の書き込みパルスを或る一定時間印加することにより、ドレイン・ソース間に電流が流れ、それにより発生するホットエレクトロンがフローティングゲートに注入され、メモリセルの閾値電圧が高くなる。書き込み時間を短縮するために、複数のメモリセルに対して同時に書き込み動作を行うという方法があるが、この場合必要な書き込み電流は同時に書き込むメモリセル数に比例して増加する。上記書き込み動作において、各メモリセルへの高電圧印加のためには、チップ外部から当該高電圧を供給する方法と、チップ内部で高電圧を生成して供給する方法がある。後者の場合、チップ外部からの高電圧供給が不要になるという利便性がある反面、チップ内部に昇圧回路が必要となる。この昇圧回路は書き込み時間、チップ面積、及び電圧・電流供給能力のバランスをとって設計される。
チップ内部に昇圧回路を備える場合の書き込み動作において、同時に書き込みパルスを印加可能な最大のメモリセル数(以下、「同時書き込み可能数」と称す。)は、書き込みパルス印加時のメモリセルのドレイン・ソース間電流と、昇圧回路からメモリセルのドレインに供給可能な電圧・電流の関係によって決定される。以下において、説明の簡単のため、データバス幅を16ビット、同時書き込み可能数を8ビットと想定して説明する。この場合、昇圧回路は同時に8つのメモリセルに対して書き込みパルスの電圧・電流を供給可能であり、つまり8ビットまでの書き込みが可能とする。
一般的な書き込み回路では、予め書き込みバス幅を2分割し、常に2回の書き込み動作を行っていた。例えば、1ビットデータにおいて書き込み後のデータ値を「0」とすると、バス幅が16ビットなので“0000 0000 0000 0000”という書き込みデータの場合、まず1回目の書き込み動作においては“0000 0000”データの書き込み動作を、所望のメモリセルに対して行い、2回目の書き込み動作においては、残りの書き込みデータである“0000 0000”の書き込み動作を残りの所望のメモリセルに対して行っていた。上述の例の場合、1回目、2回目の書き込み動作では共に8ビットずつの書き込みであるので、昇圧回路の能力範囲内であり、問題なく書き込むことができる。次に、“1110 1111 1111 0011”という書き込みデータの場合では、まず1回目の書き込み動作において“1110 1111”データを上位8ビットのメモリセルに対して書き込み動作を行う。そして、2回目の書き込み動作では残りの書き込みデータである“1111 0011”の書き込み動作を下位8ビットのメモリセルに対して行っていた。この場合、1回目と2回目の書き込み動作では夫々1ビットと2ビットの書き込み動作であるので、昇圧回路の能力範囲内であるが、このアドレスにおいて書き込み動作を行うべき書き込み対象のメモリセルは合わせて3ビットであり、昇圧回路の能力を考慮しても、1回の書き込み動作で書き込むことが可能である。
上述のように、チップ内部に昇圧回路を備える場合の書き込み動作において、実際の書き込み対象のメモリセル数が少ない場合の書き込み動作に要する総時間を短縮するための方法が、下記の特許文献1に開示されている。
特許文献1に開示されている書き込み方法は、書き込み対象のメモリセル数に応じて最適な書き込み動作を行う方法であり、例えば、昇圧回路が8ビットまでの書き込み動作に対して電圧・電流を供給可能で、出力バス幅が16ビットの場合、書き込む対象のメモリセルのビット数がデータ幅16ビットの内の8ビット以内であれば、1回の書き込み動作のみを実施し、8ビット以上の場合、上述の従来と同様に2回の書き込み動作を実施する。
このように書き込む対象のメモリセル数に応じて書き込み動作の回数を変化させる書き込み回路を備えた、従来の不揮発性半導体記憶装置として、図8に示すような一般的な計数回路104を備えて分割書き込みを行う不揮発性半導体記憶装置100がある。以下では、図8に示す不揮発性半導体記憶装置100を用いて、上述の書き込み動作を説明する。先ず、図8に示す不揮発性半導体記憶装置100の構成及び各部の機能について説明する。
図8に示す例では、不揮発性半導体記憶装置100は、出力バス幅が16ビットであり、1回のアクセスにおいて16ビットのメモリセルにデータを書き込み可能で、また、書き込まれたデータを読み出し可能な構成になっている。不揮発性半導体記憶装置100は、不揮発性のメモリセルをマトリクス状に複数配列してなるメモリセルアレイ101、行デコーダ102、列デコーダ103、ソーススイッチ回路109を備えており、行デコーダ102は行アドレスAXnに基づきワード線WLを選択し、列デコーダは列アドレスAYmに基づきビット線BLの内16本を選択する。選択した16本のビット線を、パルス線PL0〜PL15と書き込みデータ線WD0〜WD15を介して、パルススイッチ回路111a、111bに接続する。ソーススイッチ回路109は、メモリセルアレイ101の各メモリセルに対し、例えば、消去動作時に各メモリセルに接続するソース線SRに所定の消去電圧を供給するためのスイッチ動作を行うための回路で、読み出し動作時及び書き込み動作時においては、当該ソース線SRには接地電位が供給される。
一方、ベリファイ回路105は,パルス線PL0〜PL15を介して供給されるメモリセルアレイ101から読み出されたデータと、書き込み消去制御処理部108から供給される書き込みデータ信号UI0〜UI15とを比較し、書き込みパルスを印加すべき書き込み対象のメモリセルに対応するベリファイデータVD0〜VD15を活性化して、計数回路104とパルススイッチ回路111a、111bに供給する。尚、書き込みデータ信号UI0〜UI15は、データ端子D0〜D15及びデータラッチ回路107を介して供給された入力データDI0〜DI15に基づいて書き込み消去制御処理部108で生成される。
ここで、メモリセルアレイ101からデータを読み出す動作は、基準となる基準電流値とアドレス信号により選択されたメモリセルの電流値とを比較することで、メモリセルに記憶されたデータの論理値(「1」または「0」)を判別する動作であり、以下、記憶状態が消去状態のメモリセルで、選択されたメモリセルの電流値が基準電流値よりも大きい場合の記憶データを「1」、また、記憶状態が書き込み状態のメモリセルで、選択されたメモリセルの電流値が基準電流値よりも小さい場合の記憶データを「0」と規定する。
計数回路104は、ベリファイデータVD0〜VD15を受けて、書き込みパルスを印加すべきビット数を計数し、計数結果であるカウンタ値が9ビット以上であればフラグ信号CIを活性化し、8ビット以下であればフラグ信号CIを非活性化する。上記フラグ信号CIと書き込み消去制御処理部108により供給される分割スイッチ信号SWに基づき、パルススイッチ制御回路110はパルススイッチ回路111a、111bを夫々活性化する信号FL0、FL1を供給する。上記パルススイッチ活性化信号FL0、FL1と供給されたベリファイデータVD0〜VD15に基づき、パルススイッチ回路111a、111bは書き込みデータ線WD0〜WD15に対して書き込み電圧発生回路106より供給される書き込み電圧Vpumpを供給する。尚、図8に示す例では、書き込み電圧発生回路106から供給される書き込み電圧Vpumpには、16個のメモリセルに対して同時に書き込みを行うのに必要な電流・電圧供給能力がなく、1度に最大8個のメモリセルに対してのみ電圧・電流を供給できるものとする。
次に、従来の不揮発性半導体記憶装置100の動作について、図9を参照しながら説明する。先ず、装置外部からデータ書き込み動作の開始を指示するコマンドが発行されると(ステップ700)、書き込み電圧発生回路106が動作を開始し、書き込み電圧Vpumpを発生する(ステップ701)。そして、アドレス端子A0〜A23を介して供給されたアドレス信号を受けて書き込むべきアドレスのメモリセルにアクセスし、当該メモリセルに格納されているデータの読み出しを行う。読み出されたデータは、パルス線PL0〜PL15を介してベリファイ回路105に供給され、当該ベリファイ回路105内にて、書き込み消去制御処理部108より供給された書き込みデータ信号UI0〜UI15との比較が行われる(ステップ702)。
上記比較の結果、読み出されたデータと書き込みデータが完全に一致した場合(フェイルビット無し)には書き込みパルスの印加が必要ないので、そのまま書き込み動作は終了する(ステップ709)。一方、上記比較の結果、読み出されたデータと書き込みデータが完全には一致していない場合(フェイルビット有り)、当該不一致である箇所のメモリセルには書き込みパルスの印加が必要であるので、以下に説明する書き込みシーケンスを実行する必要がある。
読み出されたデータと書き込みデータが完全には一致していないことを検出したベリファイ回路105は、アクセスした16個のメモリセルの内の書き込みを行うべき書き込み対象のメモリセルを特定し、パルススイッチ回路111a、111bと計数回路104にベリファイデータVD0〜VD15を供給する。計数回路104は、先ず上記供給されたベリファイデータVD0〜VD15の内の1ビット分の計数を行う(ステップ703)。上記計数を16ビット分の全てのベリファイデータVD0〜VD15を処理するまで繰り返す(ステップ704)。計数後の計数回路104内のカウンタ値が9以上である場合にはフラグ信号CIを活性化し、8以下の場合にはフラグ信号CIを非活性化する(ステップ705)。
フラグ信号CIが活性化していない場合は、書き込み対象のメモリセルに対して一度に書き込むことができるので、パルススイッチ制御回路110は書き込み消去制御処理部108よりの制御信号SWを受けて、パルススイッチ活性化信号FL0、FL1を共に活性化し、書き込みデータ線WD0〜WD15の内の書き込みパルスを印加すべき書き込みデータ線の全てに書き込み電圧Vpumpを供給する(ステップ708)。一方、フラグ信号CIが活性化している場合は、書き込み消去制御処理部108よりの制御信号SWを受けて、先ずパルススイッチ活性化信号FL0が活性化し、書き込みデータ線WD0〜WD7の内の書き込みパルスを印加すべき書き込みデータ線に書き込み電圧Vpumpを供給する(ステップ706)。上記処理の後、パルススイッチ活性化信号FL0を非活性化し、次に、パルススイッチ活性化信号FL1を活性化して、書き込みデータ線WD8〜WD15の内の書き込みパルスを印加すべき書き込みデータ線に書き込み電圧Vpumpを供給する(ステップ707)。
ここで、パルススイッチ回路111a、111bを2分割し、書き込み動作を2回に分けているのは、書き込み電圧発生回路が16個のメモリセルに対して同時に書き込みを行うのに必要な電流・電圧供給能力がなく、1度に8個のメモリセルに対してのみ電圧・電流を供給できないためである。
上記のステップを踏むことにより1サイクル目の書き込みパルスの印加が終了した後、再び当該16個のメモリセルに対してデータの読み出しを行い、書き込みデータと比較する(ステップ702)。ここで、書き込み対象全てのメモリセルに対して期待値通りに書き込めている場合、ここで書き込み動作を終了する(ステップ709)。一方、読み出されたデータと書き込みデータと間に再度不一致がある場合、上述した書き込みシーケンスを再度実行する。この書き込みシーケンスを書き込み対象全てのメモリセルに対して期待値通りに書き込めるまで、実行する。
上述の説明にあるように、書き込むべきメモリセル数を計数回路104により計数し、そのカウント値が同時書き込み可能数以下の場合には、同時に全ての書き込み対象メモリセルに書き込みパルスを印加し、カウント値が同時書き込み可能数より大きい場合には、書き込み対象メモリセルを複数のグループに分割し、当該グループ毎に書き込みを実行することが行われる。上記書き込み手法を用いることにより、平均的な書き込み時間を短縮することが可能である。書き込みデータの書き込みパルスを印加すべきビット数が、(データバス幅−同時書き込み可能数×N)よりも小さい場合には、書き込み時間は(書き込みパルスの時間幅×N)の分だけ短縮が可能である。不揮発性半導体記憶装置100のメモリセルアレイ101の全メモリセルに対して書き込みを行う場合に、例えば1アドレス分の書き込みデータ(16ビット)の内のデータ「0」の数が8ビット以下と9ビット以上の割合が1:1であるとすると、書き込み時間は従来と比べて75%程度に短縮される。
ここで、図9に示す従来の不揮発性半導体記憶装置100で使用される計数回路104について、図10を参照して詳述する。図10に示す計数回路104は、シフトレジスタ301、バイナリカウンタ302、及び、カウンタ値判定回路305を備えて構成され、例えば、下記の非特許文献に記載されているような一般的な計数回路の回路構成例に基づいている。
シフトレジスタ301は、フリップフロップ303を16個備えて構成されている。フリップフロップ303は、夫々データ入力端D、クロック入力端C、セット入力端S、及び、データ出力端Qを備えている。各フリップフロップ303のセット入力端Sは、ベリファイデータVD0〜VD15と接続しており、クロック入力端Cは、書き込み消去制御処理部108より供給されるか、或いは、計数回路104において発生されたタイミング信号CLKと接続している。また、フリップフロップ303のデータ出力端Qとデータ入力端Dは、隣り合うフリップフロップ303の前段のデータ出力端Qと後段のデータ入力端Dが接続し、左端のフリップフロップ303のデータ入力端Dは「0」レベルに固定されており、右端のフリップフロップ303のデータ出力端Qはシフトレジスタ出力SOを供給する。当該構成により、各セット入力端Sを介して入力されたベリファイデータVD0〜VD15が、シフトレジスタ301にタイミング信号CLKが入力される都度、右隣のフリップフロップ303に対し順次受け渡され、右端のフリップフロップ303のデータ出力端Qからシフトレジスタ出力SOとして出力される。
バイナリカウンタ302は、トグルフリップフロップ304を5個備えて構成されている。トグルフリップフロップ304は、夫々データ入力端Tとデータ出力端Qを備えている。トグルフリップフロップ304のデータ入力端Tとデータ出力端Qは、図10に示すように、隣り合うトグルフリップフロップ304の前段のデータ出力端Qと後段のデータ入力端Tが接続する構成となっており、夫々のトグルフリップフロップ304の出力端Qからカウンタ値Q4〜Q0が出力される。
また、カウンタ値判定回路305は、カウンタ値Q4〜Q0を受けて、カウンタ値が9以上であるか否かを判定する論理回路であり、カウンタ値が9以上であった場合はフラグ信号CIを活性化し、カウンタ値が8以下であった場合はフラグ信号CIを非活性化する。
次に、図11を用いて、計数回路104の動作を詳述する。シフトレジスタ301に入力されるベリファイデータVD0〜VD15が“0011 1100 1010 1111”であるとすると、先ず、当該ベリファイデータVD0〜VD15が、フリップフロップ303のセット入力端Sに夫々供給され、データ出力端Qにセットされる。この時のシフトレジスタ301のデータ出力端Qは、上記ベリファイデータと同じ“0011 1100 1010 1111”という出力になっている。そして、タイミング信号CLKが入力される都度、後段のフリップフロップ303のデータ入力端Dにデータが受け渡されるが、例えば、1回のタイミング信号CLKの入力後には、シフトレジスタ301のデータ出力端Qは、左端のフリップフロップ303に「0」レベルがセットされ、且つ、データが右隣のフリップフロップ303に受け渡されるため、各フリップフロップ303の出力端Qは“0001 1110 0101 0111”という出力になる。上述の右方向へのシフト動作をすることにより、タイミング信号CLKを16回入力すると、最終的にシフトレジスタ301のデータ出力端Qは“0000 0000 0000 0000”になる。また、一方シフトレジスタ301の出力SOは、右端のフリップフロップ303のデータ出力端Qから出力されるため、図11に示すように、ベリファイデータVD0〜VD15が下位ビットから“1111 0101 0011 1100”の順番で出力される。
一方、バイナリカウンタ302の入力QIは、シフトレジスタ301の出力SOとタイミング信号CLKの否定論理との論理積となっており、シフトレジスタ301の出力SOが「1」の時にバイナリカウンタ302の入力QIに、図11に示すようなタイミング信号CLKと逆相のクロックが入るようになっている。左端のトグルフリップフロップ304は、上記バイナリカウンタ302の入力QIを受けて、クロックが入る毎に出力「1」、「0」を繰り返し反転させ、それを隣り合うトグルフリップフロップ304の入力Tに供給する。上記入力を受けた次段のトグルフリップフロップ304も、上記同様に入力端Tにクロックが入る毎に出力「1」、「0」の反転を繰り返す。これを繰り返すことにより、最終的に16回のタイミング信号CLKを受けた後には、シフトレジスタ301の出力SOがその内の10回しか「1」でないため、「01010」というカウンタ値Q4〜Q0を供給する。カウンタ値判定回路305は、2進数で「01010」、つまり10進数では「10」を示す供給されたカウンタ値Q4〜Q0を受けて、フラグ信号CIを活性化する。
上述の如く、計数回路104では、ベリファイデータVD0〜VD15をフリップフロップ303にセットした後、タイミング信号CLKを所定回数(書き込みデータのデータ幅のビット数と同数)入力する。そして、バイナリカウンタ302により、ベリファイデータVD0〜VD15においての書き込むべきビット数をカウントし、カウンタ値Q0〜Q4をカウンタ値判定回路305に供給する。上記供給されたカウンタ値Q0〜Q4は、カウンタ値判定回路305により、カウンタ値が9以上である場合にはフラグ信号CIを活性化し、8以下の場合にはフラグ信号CIを非活性化する。上記動作を行うことにより、書き込む対象のメモリセルが1回で書き込むことができるか否かを判定する。
特開平10−334675号公報
田丸啓吉、「論理回路の基礎(改訂版)」、工学図書株式会社、平成8年、170〜171頁
以下、本発明に係る不揮発性半導体記憶装置(以下、適宜「本発明装置」と略称する)の実施形態を図面に基づいて説明する。尚、図8に示す従来の不揮発性半導体記憶装置と共通する機能ブロック及び信号には、共通の符号及び信号名を付して説明する。
〈第1実施形態〉
図1は、本発明装置200の第1実施形態における概略のブロック構成を示すブロック図である。本発明装置200は、図8に示す従来の不揮発性半導体記憶装置と同様に、書き込み対象のメモリセル数に応じて書き込み動作の回数を変化させる書き込み回路を備えた不揮発性半導体記憶装置であり、必要な書き込み動作の判定を行う回路が、従来の不揮発性半導体記憶装置と相違する。
図1に示すように、本発明装置200は、出力バス幅が16ビットであり、1回のアクセスにおいて16ビットのメモリセルにデータを書き込み可能で、また、書き込まれたデータを読み出し可能な構成になっている。本発明装置200は、不揮発性のメモリセルをマトリクス状に複数配列してなるメモリセルアレイ101、行デコーダ102、列デコーダ103、ソーススイッチ回路109を備えており、行デコーダ102は行アドレスAXnに基づきワード線WLを選択し、列デコーダは列アドレスAYmに基づきビット線BLの内16本を選択する。選択した16本のビット線を、パルス線PL0〜PL15と書き込みデータ線WD0〜WD15を介して、パルススイッチ回路111a、111bに接続する。ソーススイッチ回路109は、メモリセルアレイ101の各メモリセルに対し、例えば、消去動作時に各メモリセルに接続するソース線SRに所定の消去電圧を供給するためのスイッチ動作を行うための回路で、読み出し動作時及び書き込み動作時においては、当該ソース線SRには接地電位が供給される。
メモリセルアレイ101を構成するメモリセルは、電気的にデータの書き込みが可能な不揮発性のメモリセルで、例えば、フラッシュメモリセル等を想定するが、特定の不揮発性のメモリセルに限定されるものではない。また、メモリセルアレイ101のメモリ容量(アレイサイズ)としては、例えば、256Mビットを想定する。
また、本実施形態では、メモリセルアレイ101からデータを読み出す動作は、基準となる基準電流値とアドレス信号により選択されたメモリセルの電流値とを比較することで、メモリセルに記憶されたデータの論理値(「1」または「0」)を判別する動作であり、以下、記憶状態が消去状態のメモリセルで、選択されたメモリセルの電流値が基準電流値よりも大きい場合の記憶データを「1」、また、記憶状態が書き込み状態のメモリセルで、選択されたメモリセルの電流値が基準電流値よりも小さい場合の記憶データを「0」と規定する。従って、当該規定に則れば、書き込み対象のメモリセルは、書き込みデータの内の論理値「0」のビットに対応するメモリセルとなる。
一方、ベリファイ回路105は,パルス線PL0〜PL15を介して供給されるメモリセルアレイ101から読み出されたデータと、書き込み消去制御処理部108からUI0〜UI15を介して供給される書き込みデータとを比較し、書き込みパルスを印加すべき書き込み対象のメモリセルに対応するベリファイデータVD0〜VD15を活性化して、書き込み回数判定回路201とパルススイッチ回路111a、111bに供給する。尚、書き込みデータ信号UI0〜UI15は、データ端子D0〜D15及びデータラッチ回路107を介して供給された入力データDI0〜DI15に基づいて書き込み消去制御処理部108で生成される。
本発明装置200において特徴的な書き込み回数判定回路201は、ベリファイデータVD0〜VD15を受けて、書き込みパルスを印加すべきビット数を判定し、判定結果である判定値が9ビット以上であればフラグ信号CI(大小判定信号に相当)を活性化し、8ビット以下であればフラグ信号CIを非活性化する。上記フラグ信号CIと書き込み消去制御処理部108により供給される分割スイッチ信号SWに基づき、パルススイッチ制御回路110はパルススイッチ回路111a、111bを夫々活性化する信号FL0、FL1を供給する。上記パルススイッチ活性化信号FL0、FL1と供給されたベリファイデータVD0〜VD15に基づき、パルススイッチ回路111a、111bは書き込みデータ線WD0〜WD15に対して書き込み電圧発生回路106より供給される書き込み電圧Vpumpを供給する。尚、本実施形態では、書き込み電圧発生回路106から供給される書き込み電圧Vpumpには、16個のメモリセルに対して同時に書き込みを行うのに必要な電流・電圧供給能力がなく、1度に最大8個のメモリセルに対してのみ電圧・電流を供給できるものとする。ここで、書き込み回路が書き込み電圧Vpumpによって同時に書き込み可能なメモリセルの最大個数(本実施形態では、8個)を「同時書き込み可能数」と称す。
次に、第1実施形態における書き込み回数判定回路201について、図2を用いて詳述する。書き込み回数判定回路201は、図2に示すように、可変電圧発生回路202と基準電圧発生回路203と比較回路204を備えて構成される。
可変電圧発生回路202は、ベリファイデータVD0〜VD15に基づいて、書き込み対象となるメモリセルの個数に応じて電圧値が異なり、当該個数が多いほど電圧値が単調に高くなる可変電圧Vdatを発生する。具体的には、図2に示すように、可変電圧発生回路202は、スイッチ素子であるPMOSトランジスタP0〜P15と抵抗素子Rdatの直列回路を16個並列に接続してスイッチ回路202aと、固定抵抗Rsubを直列に接続して構成される。スイッチ回路202aの一端を電源電圧等の所定の一定電圧Vcに、固定抵抗Rsubの一端を接地電位に夫々接続し、スイッチ回路202aと固定抵抗Rsubの各他端同士を接続して可変電圧Vdatの出力端とする。可変電圧Vdatは、所定の一定電圧Vcを、スイッチ回路202aの合成抵抗と固定抵抗Rsubにより抵抗分割して得られる。ベリファイデータVD0〜VD15が、スイッチ回路202aの各PMOSトランジスタP0〜P15のゲートに接続し、ベリファイデータVD0〜VD15が論理値「0」、つまり、低レベルで対応するPMOSトランジスタP0〜P15がオン状態となり、ベリファイデータVD0〜VD15が論理値「1」、つまり、高レベルで対応するPMOSトランジスタP0〜P15がオフ状態となる。例えば、ベリファイデータVD0〜VD15として、“1111 1011 1111 1110”を想定した場合、「0」レベルのベリファイデータがゲートに入力する2個のPMOSトランジスタだけがオン状態になり、それ以外の14個のPMOSトランジスタはオフ状態になる。
ここで、直列回路の抵抗(PMOSトランジスタのオン抵抗と抵抗素子Rdatの抵抗値の合計)をR0とし、ベリファイデータVD0〜VD15の16ビット中の「0」の個数、つまり、書き込み対象となるメモリセルの個数をMとすると、スイッチ回路202aの合成抵抗は、R0/Mで表される。従って、固定抵抗Rsubの抵抗値をR1とし、所定の一定電圧をVcとすると、可変電圧Vdatは、個数Mを変数として、以下の数1で与えられる。
(数1)
Vdat(M)=V×R1/(R1+R0/M)
可変電圧Vdatは、図3に示すように、個数Mに応じて離散的な電圧値となり、個数Mの増加に応じて、段階的に高電圧に変化する。
基準電圧発生回路203は、可変電圧Vdatの大小比較の参照とする所定の基準電圧Vrefを発生する回路で、本実施形態では、例えば、固定抵抗による抵抗分圧回路で構成される。また、個数Mが8のときの可変電圧VdatをVdat(8)、個数Mが9のときの可変電圧VdatをVdat(9)とすると、基準電圧Vrefは、以下の数2、及び、図3に示すように、Vdat(8)とVdat(9)の間の電圧値となるように設定される。この場合、基準電圧に対応した個数M(メモリセル参照値に相当)は、8と9の間の値となる。
(数2)
Vdat(8)<Vref<Vdat(9)
比較回路204は、可変電圧Vdatと基準電圧Vrefの各電圧値の大小比較を行う回路で、例えば、差動増幅器等で構成される。比較回路204は、可変電圧Vdatが基準電圧Vrefより低電圧であればフラグ信号CIを活性化し、逆に、可変電圧Vdatが基準電圧Vrefより高電圧であればフラグ信号CIを非活性化して、パルススイッチ制御回路110に供給する。
以上に示す構成の書き込み回数判定回路201によって、可変電圧発生回路202のスイッチ回路202aに入力されたベリファイデータVD0〜VD15に基づいて、書き込み対象となるメモリセルの個数Mが、9以上である場合にはフラグ信号CIを活性化し、8以下の場合にはフラグ信号CIを非活性化する。かかる処理によって、書き込み対象となるメモリセルが、1回の書き込み動作で書き込めるか否かを直ちに判定できる。
次に、本発明装置200の動作について、図4を参照しながら説明する。先ず、装置外部からデータ書き込み動作の開始を指示するコマンドが発行されると(ステップ800)、書き込み電圧発生回路106が動作を開始し、書き込み電圧Vpumpを発生する(ステップ801)。そして、アドレス端子A0〜A23を介して供給されたアドレス信号を受けて書き込むべきアドレスのメモリセルにアクセスし、当該メモリセルに格納されているデータの読み出しを行う。読み出されたデータは、パルス線PL0〜PL15を介してベリファイ回路105に供給され、当該ベリファイ回路105内にて、書き込み消去制御処理部108より供給された書き込みデータ信号UI0〜UI15との比較が行われる(ステップ802)。
上記比較の結果、読み出されたデータと書き込みデータが完全に一致した場合(フェイルビット無し)には書き込みパルスの印加が必要ないので、そのまま書き込み動作は終了する(ステップ808)。一方、上記比較の結果、読み出されたデータと書き込みデータが完全には一致していない場合(フェイルビット有り)、当該不一致である箇所のメモリセルには書き込みパルスの印加が必要であるので、以下に説明する書き込みシーケンスを実行する必要がある。
読み出されたデータと書き込みデータが完全には一致していないことを検出したベリファイ回路105は、アクセスした16個のメモリセルの内の書き込みを行うべき書き込み対象のメモリセルを特定し、パルススイッチ回路111a、111bと書き込み回数判定回路201にベリファイデータVD0〜VD15を供給する。書き込み回数判定回路201は、先ず、上記供給されたベリファイデータVD0〜VD15に基づいて、書き込み対象となるメモリセル数が8ビット以上か否かの判定を行う(ステップ803)。上記判定結果の判定値が9以上である場合にはフラグ信号CIを活性化し、8以下の場合にはフラグ信号CIを非活性化する(ステップ804)。
フラグ信号CIが活性化していない場合は、書き込み対象のメモリセルに対して一度に書き込むことができるので、パルススイッチ制御回路110は書き込み消去制御処理部108よりの制御信号SWを受けて、パルススイッチ活性化信号FL0、FL1を共に活性化し、書き込みデータ線WD0〜WD15の内の書き込みパルスを印加すべき書き込みデータ線の全てに書き込み電圧Vpumpを供給する(ステップ807)。一方、フラグ信号CIが活性化している場合は、書き込み消去制御処理部108よりの制御信号SWを受けて、先ずパルススイッチ活性化信号FL0が活性化し、書き込みデータ線WD0〜WD7の内の書き込みパルスを印加すべき書き込みデータ線に書き込み電圧Vpumpを供給する(ステップ805)。上記処理の後、パルススイッチ活性化信号FL0を非活性化し、次に、パルススイッチ活性化信号FL1を活性化して、書き込みデータ線WD8〜WD15の内の書き込みパルスを印加すべき書き込みデータ線に書き込み電圧Vpumpを供給する(ステップ806)。
上記のステップを踏むことにより1サイクル目の書き込みパルスの印加が終了した後、再び当該16個のメモリセルに対してデータの読み出しを行い、書き込みデータと比較する(ステップ802)。ここで、書き込み対象全てのメモリセルに対して期待値通りに書き込めている場合、ここで書き込み動作を終了する(ステップ808)。一方、読み出されたデータと書き込みデータと間に再度不一致がある場合、上述した書き込みシーケンスを再度実行する。この書き込みシーケンスを書き込み対象全てのメモリセルに対して期待値通りに書き込めるまで、実行する。
上述の説明にあるように、書き込み回数判定回路201により、書き込み対象のメモリセル数が同時書き込み可能数以下であるか否かを判定し、同時書き込み可能数以下の場合には、同時に書き込み対象の全メモリセルに書き込みパルスを印加し、同時書き込み可能数より大きい場合には、書き込み対象のメモリセルを複数のグループ(本実施形態では2つのグループ)に分割し、グループ毎に書き込み動作を実行する。
〈第2実施形態〉
次に、本発明装置200の第2実施形態について、図5及び図6を参照して説明する。第2実施形態に係る本発明装置200の全体的な構成は、基本的に、図1に示す第1実施形態の場合のブロック構成と同じであるので、重複する説明は割愛する。第1実施形態との相違点は、第2実施形態において、第1実施形態と異なる書き込み回数判定回路205を使用する点である。図5は、第2実施形態における書き込み回数判定回路205の回路構成を示す回路図である。尚、第1実施形態の図2と同じ構成要素には、同じ符号及び信号名を付して説明する。
第2実施形態では、書き込み回数判定回路205は、図5に示すように、第1実施形態と同様に、可変電圧発生回路202と基準電圧発生回路206と比較回路204を備えて構成される。第1実施形態との相違点は、基準電圧発生回路206の回路構成が異なる点である。
第2実施形態の基準電圧発生回路206は、図5に示すように、可変電圧発生回路202と略同じ回路構成となっており、スイッチ素子であるPMOSトランジスタP0〜P15と抵抗素子Rdatの直列回路を16個並列に接続し、更に、固定抵抗Rbigを並列に接続してなる第2スイッチ回路206aと、固定抵抗Rsubを直列に接続して構成される。ここで、直列回路と固定抵抗Rsubは、可変電圧発生回路202の直列回路と固定抵抗Rsubと同じである。第2スイッチ回路206aの一端を電源電圧等の所定の一定電圧Vcに、固定抵抗Rsubの一端を接地電位に夫々接続し、第2スイッチ回路206aと固定抵抗Rsubの各他端同士を接続して基準電圧Vrefの出力端とする。基準電圧Vrefは、所定の一定電圧Vcを、第2スイッチ回路206aの合成抵抗と固定抵抗Rsubにより抵抗分割して得られる。基準電圧Vref設定用の入力信号AN0〜AN15が、第2スイッチ回路206aの各PMOSトランジスタP0〜P15のゲートに接続し、入力信号AN0〜AN15が論理値「0」、つまり、低レベルで対応するPMOSトランジスタP0〜P15がオン状態となり、入力信号AN0〜AN15が論理値「1」、つまり、高レベルで対応するPMOSトランジスタP0〜P15がオフ状態となる。可変電圧発生回路202との相違点は、第2スイッチ回路206aに、直列回路の抵抗値より高抵抗の固定抵抗Rbig(抵抗値をR2とする)が並列に接続されている点である。
ここで、可変電圧発生回路202の直列回路と同様に、直列回路の抵抗をR0とし、入力信号AN0〜AN15の16ビット中の「0」の個数をM’とすると、第2スイッチ回路206aの合成抵抗R3は、以下の数3で表され、固定抵抗Rsubの抵抗値をR1とし、所定の一定電圧をVcとすると、基準電圧Vrefは、個数M’を変数として、以下の数4で与えられる。
(数3)
R3=R0/(R0/R2+M’)
(数4)
Vref(M’)=V×R1/(R1+R3)
基準電圧Vrefは、図6に示すように、個数M’に応じて離散的な電圧値となり、個数Mの増加に応じて、段階的に高電圧に変化する。
ここで、数3において、右辺分母のR0/R2は、0<R0/R2<1であるため、可変電圧発生回路202のスイッチ回路202aの合成抵抗(R0/M)と比較すると、第2スイッチ回路206aの合成抵抗R3は、以下の数5に示すような関係となる。ここで、個数M’を書き込み対象となるメモリセルの個数Mと等しくする。この結果、数4で与えられる基準電圧Vref(M)と数1で与えられる可変電圧Vdat(M)は、以下の数6及び図6に示すような関係となる。
(数5)
{R0/(M+1)}<R3<(R0/M)
(数6)
Vdat(M)<Vref(M)<Vdat(M+1)
つまり、基準電圧発生回路206に入力する入力信号AN0〜AN15の16ビット中の「0」の個数M’を可変電圧発生回路202に入力するベリファイデータVD0〜VD15の16ビット中の「0」の個数Mとした場合、基準電圧発生回路206から出力される基準電圧Vref(M)は、可変電圧発生回路202から出力される可変電圧Vdat(M)より高く、個数Mが1だけ増えた場合の可変電圧Vdat(M+1)より低くなる。具体例で説明すると、個数M’を8とした場合の基準電圧Vref(8)は、書き込み対象のメモリセル数が8の場合の可変電圧Vdat(8)と同メモリセル数が9の場合の可変電圧Vdat(9)の中間電圧となる。
以上の結果、任意の個数Mの可変電圧Vdat(M)と基準電圧Vref(M’)の大小比較により、Vdat(M)>Vref(M’)であれば、M≧M’と判定でき、Vdat(M)<Vref(M’)であれば、M≦M’と判定できる。つまり、書き込み回数判定回路205に基準電圧発生回路206を備え、入力信号AN0〜AN15の16ビット中の「0」の個数M’を任意に設定することで、書き込み対象のメモリセル数Mの判定を、任意の個数M’に対して実行可能となる。
次に、本発明装置の別実施形態について説明する。
〈1〉上記各実施形態において、本発明装置200は、出力バス幅が16ビットであり、同時書き込み可能数が8である場合を想定し、8ビット幅のパルススイッチ回路111a、111bを2つ備える構成としたが、出力バス幅と同時書き込み可能数は、上記実施形態の例に限定されるものではない。例えば、出力バス幅が16ビットで、同時書き込み可能数が4の場合や、出力バス幅が32ビットで、同時書き込み可能数が8の場合等では、書き込み動作は出力バス幅を最大4分割して実行する必要がある。その場合は、パルススイッチ回路も4分割して構成し、第2実施形態における基準電圧Vref(M’)を生成するための個数M’を、出力バス幅の4分の1、2分の1、4分の3の個数に夫々設定した3通りの基準電圧Vrefと可変電圧Vdatとを比較することにより、必要な書き込み動作の分割数を判定することが可能となる。
〈2〉上記第1実施形態において、基準電圧発生回路203を固定抵抗による抵抗分圧回路で構成したが、基準電圧発生回路203の構成例は、上記第1実施形態の回路構成に限定されるものではない。また、基準電圧発生回路203を設けずに、外部から供給された基準電圧Vrefを使用しても構わない。
〈3〉上記第2実施形態において、基準電圧発生回路206に入力する入力信号AN0〜AN15を16ビットとしたが、生成する基準電圧Vrefが固定されている場合は、入力信号ANのビット数をそれに応じた個数に固定しても構わない。また、基準電圧Vref(8)を生成する場合は、第2スイッチ回路206aの直列回路の個数を8として、全てのPMOSトランジスタP0〜P7のゲート入力を書き込み動作時に低レベルにするように制御するようにしても構わない。これは、第1実施形態における、基準電圧発生回路203の他の回路構成例に相当する。
〈4〉上記各実施形態において、可変電圧発生回路202は、ベリファイデータVD0〜VD15に基づいて、書き込み対象となるメモリセルの個数が多いほど可変電圧Vdatの電圧値が単調に高くなる回路構成であったが、可変電圧Vdatの電圧値は、書き込み対象となるメモリセルの個数が多いほど単調に低くなる回路構成であっても構わない。この場合、比較回路204への可変電圧Vdatと基準電圧Vrefの入力を反転させればよい。
更に、可変電圧発生回路202の回路構成において、可変電圧Vdatの電圧値が、書き込み対象となるメモリセルの個数が多いほど単調に低くなる場合は、上記第2実施形態の基準電圧発生回路206は、入力信号AN0〜AN15の16ビット中の「0」の個数M’が多いほど基準電圧Vrefの電圧値が単調に低くなる回路構成とするのが好ましい。
〈5〉上記各実施形態において、本発明装置200は、図1に示すブロック構成のものを想定して説明したが、本発明装置の全体的な回路構成は、図1に示すブロック構成のものに限定されるものではない。