(57)【特許請求の範囲】
【請求項１】
複数ビットの情報を有する入力データパターンに応答して複数のメモリセルをプログラムするための方法であって、各ビットは、第１の論理レベルまたは第２の論理レベルのいずれかである論理レベルにあり、メモリセルの各々は１ビットの情報を記憶することができ、各ビットは、第１の論理レベルまたは第２の論理レベルのいずれかである論理レベルにあり、この方法は、
（ａ）  プログラムされる必要のあるメモリセルの総数に従ってメモリセルをプログラムするためのプログラムモードを与えるステップを含み、このステップは、
（ｉ）  プログラムされる必要のあるメモリセルの総数を決定するステップと、
（ｉｉ）  プログラムされる必要のあるメモリセルの総数が０よりも大きいがしきい値数Ｎ以下ならば第１のプログラムモード制御信号を与え、プログラムされる必要のあるメモリセルの総数が前記しきい値数Ｎよりも大きければ第２のプログラムモード制御信号を与え、プログラムされる必要のあるメモリセルの総数が０に等しければ第３のプログラムモード制御信号を与えるステップとを含み、方法はさらに、
（ｂ）  前記プログラムモードに従ってメモリセルをプログラムするステップを含み、
前記プログラムするステップは、
（ａ）  前記第１のプログラムモード制御信号に応答して、複数のメモリセルを同時にプログラムするステップと、
（ｂ）  前記第２のプログラムモード制御信号に応答して、複数のメモリセルの前半分、次に複数のメモリセルの後半分を順次にプログラムするステップと、
（ｃ）  前記第３のプログラムモード制御信号が与えられれば、どのメモリセルもプログラムしないステップとを含む、方法。
【請求項２】
プログラムされる必要のあるメモリセルの総数を決定する前記ステップは、
（ａ）  入力データパターンの各ビットの論理レベルを、メモリセルに記憶された対応する各ビットの論理レベルと比較するステップと、
（ｂ）  プログラムされる必要のあるメモリセルの総数を、第１の論理レベルにある、入力データパターンのビットの数の総和を求めることにより計算するステップとを含む、請求項１に記載の方法。
【請求項３】
前記総和を求めるステップは、第１の論理レベルにある入力データパターンのビットの数を論理的に加算するステップを含む、請求項２に記載の方法。
【請求項４】
前記総和を求めるステップは、入力データパターンの複数のビットに作動的に結合されたトランジスタ回路を通る電流を加算するステップを含む、請求項２に記載の方法。
【請求項５】
前記しきい値数Ｎは、プログラムの間メモリセルに電流を供給するように作動的にメモリセルに結合されたドレインポンプの電流の総容量により決定される、請求項１に記載の方法。
【請求項６】
複数ビットの情報を有する複数の入力データパターンに従って集積メモリ回路をプログラムすることを制御するための方法であって、各ビットは、第１の論理レベルまたは第２の論理レベルのいずれかである論理レベルにあり、集積メモリ回路はプログラム可能なメモリセルのマトリックスを有し、各メモリセルは１ビットの情報を記憶することができ、各ビットは、第１の論理レベルまたは第２の論理レベルのいずれかである論理レベルにあり、メモリセルのマトリックスは複数のブロックに編成され、各ブロックは複数のグループを含み、各グループは複数のメモリセルを含み、この方法は、
（ａ）  各ブロックの中のプログラムされる必要のあるメモリセルの総数を決定するステップを含み、この決定するステップは、
（ｉ）  各ブロックにアドレス指定された複数の入力データパターンのうち１つの各ビットの論理レベルを、各ブロックの中のメモリセルに記憶された対応する各ビットの論理レベルと比較するステップと、
（ii）  各ブロックの中のプログラムされる必要のあるメモリセルの総数を、第１の論理レベルにある、各ブロックにアドレス指定された複数の入力データパターンの一つにおけるビットの数の総和を求めることにより計算するステップとを含み、さらに、
（ｂ）  ブロックの中のプログラムされる必要のあるメモリセルの総数が０よりも大きいがしきい値数Ｎ以下ならば第１のプログラムモード制御信号を与え、ブロックの中のプログラムされる必要のあるメモリセルの総数が前記しきい値数Ｎよりも大きければ複数の第２のプログラムモード制御信号を与え、ブロックの中のプログラムされる必要のあるメモリセルの総数が０に等しければ第３のプログラムモード制御信号を与えるステップと、
（ｃ）  前記第１のプログラムモード制御信号が与えられれば前記複数のグループのメモリセルを同時にプログラムし、前記複数の第２のプログラムモード制御信号のうち１つが与えられれば前記複数のグループのメモリセルをｎグループの倍数で１度にプログラムし、前記第３のプログラムモード制御信号が与えられればメモリセルのいずれをもプログラムしないステップとを含む、方法。
【請求項７】
プログラム後の検証動作をさらに含み、前記プログラム後の検証動作は、
（ａ）  各ブロックの中のプログラムされる必要のあるメモリセルの総数を決定するステップを含み、前記決定するステップは、
（ｉ）  各ブロックにアドレス指定された複数の入力データパターンのうち１つの各ビットの論理レベルを、各ブロックの中のメモリセルに記憶された対応する各ビットの論理レベルと比較するステップと、
（ii）  複数の入力データパターンおよびメモリセル内の対応するビットが第１の論理レベルにあれば、複数の修正された入力データパターンのビットが第２の論理レベルとなる場合を除き、対応する複数の入力データパターンに等しい情報のビットを有する複数の修正された入力データパターンを与えるステップと、
（iii）  プログラムされる必要のある各ブロックの中のメモリセルの総数を、各ブロックにアドレス指定された前記複数の修正された入力データパターンの各々の、第１の論理レベルにあるビットの数の総和を求めることにより計算するステップとを含み、プログラム後の検証動作はさらに、
（ｂ）  ブロックの中のプログラムされる必要のあるメモリセルの総数が０よりも大きいがしきい値数Ｎ以下ならば前記第１のプログラムモード制御信号を与え、ブロックの中のプログラムされる必要のあるメモリセルの総数がしきい値数Ｎよりも大きければ前記複数の第２のプログラムモード制御信号を与え、ブロックの中のプログラムされる必要のあるメモリセルの総数が０に等しければ前記第３のプログラムモード制御信号を与えるステップと、
（ｃ）  前記第１のプログラムモード制御信号が与えられれば複数のグループのメモリセルを同時にプログラムし、前記複数の第２のプログラムモード制御信号のうち１つが与えられれば前記複数のグループのメモリセルをｎグループの倍数で１度にプログラムし、前記第３のプログラムモード制御信号が与えられればメモリセルのいずれをもプログラムしないステップと、
（ｄ）  前記第３のプログラムモード制御信号が与えられるまで、ステップ（ａ）から（ｃ）を繰り返すステップとを含む、請求項６に記載の方法。
【請求項８】
前記しきい値数Ｎおよび前記ｎは、集積メモリ回路上に形成され、プログラムの間メモリセルに電流を供給するようにメモリセルに結合された複数のドレインポンプの電流の総容量により決定される、請求項７に記載の方法。
【請求項９】
複数ビットの情報を有する複数の入力データパターンに従って集積メモリ回路をプログラムすることを制御するための方法であって、各ビットは、第１の論理レベルまたは第２の論理レベルのいずれかである論理レベルにあり、集積メモリ回路はプログラム可能なメモリセルのマトリックスを有し、各メモリセルは１ビットの情報を記憶することができ、各ビットは、第１の論理レベルまたは第２の論理レベルのいずれかである論理レベルにあり、メモリセルのマトリックスは複数のブロックに編成され、各ブロックは複数のグループを含み、各グループは複数のメモリセルを含み、この方法は、
（ａ）  各ブロックの中のプログラムされる必要のあるメモリセルの総数を決定するステップを含み、決定するステップは、
（ｉ）  各ブロックにアドレス指定された複数の入力データパターンのうち１つの各ビットの論理レベルを、各ブロックの中のメモリセルに記憶された対応する各ビットの論理レベルと比較するステップと、
（ii）  プログラムされる必要のある各ブロックの中のメモリセルの総数を、各ブロックにアドレス指定された複数の入力データパターンのうち１つの、第１の論理レベルにあるビットの数の総和を求めることにより計算するステップとを含み、方法はさらに、
（ｂ）  ブロックの中のプログラムされる必要のあるメモリセルの総数が０よりも大きいがしきい値数Ｎ以下ならば第１のプログラムモード制御信号を与え、ブロックの中のプログラムされる必要のあるメモリセルの総数が前記しきい値数Ｎよりも大きければ複数の第２のプログラムモード制御信号を与え、ブロックの中のプログラムされる必要のあるメモリセルの総数が０に等しければ第３のプログラムモード制御信号を与えるステップと、
（ｃ）  前記第１のプログラムモード制御信号が与えられれば各ワードのメモリセルの前記第１のグループおよび前記第２のグループを同時にプログラムし、前記第２のプログラムモード制御信号が与えられればメモリセルの第１のグループおよび第２のグループを順次にプログラムし、前記第３のプログラムモード制御信号が与えられればメモリセルのいずれをもプログラムしないステップとを含み、
プログラムされる必要のある各ブロックの中のメモリセルの総数を計算する前記ステップは、第１の論理レベルにある、複数の入力データパターンのうち１つのビットの数を論理的に加算するステップを含む、方法。
【請求項１０】
複数ビットの情報を有する複数の入力データパターンに従って集積メモリ回路をプログラムすることを制御するための方法であって、各ビットは、第１の論理レベルまたは第２の論理レベルのいずれかである論理レベルにあり、集積メモリ回路はプログラム可能なメモリセルのマトリックスを有し、各メモリセルは１ビットの情報を記憶することができ、各ビットは、第１の論理レベルまたは第２の論理レベルのいずれかである論理レベルにあり、メモリセルのマトリックスは複数のブロックに編成され、各ブロックは複数のグループを含み、各グループは複数のメモリセルを含み、方法は、
（ａ）  各ブロックの中のプログラムされる必要のあるメモリセルの総数を決定するステップを含み、決定するステップは、
（ｉ）  各ブロックにアドレス指定された複数の入力データパターンのうち１つの各ビットの論理レベルを、各ブロックの中のメモリセルに記憶された対応する各ビットの論理レベルと比較するステップと、
（ii）  プログラムされる必要のある各ブロックの中のメモリセルの総数を、第１の論理レベルにある、各ブロックにアドレス指定された複数の入力データパターンの一つにおけるビットの数の総和を求めることにより計算するステップとを含み、さらに、
（ｂ）  ブロックの中のプログラムされる必要のあるメモリセルの総数が０よりも大きいがしきい値数Ｎ以下ならば第１のプログラムモード制御信号を与え、ブロックの中のプログラムされる必要のあるメモリセルの総数が前記しきい値数Ｎよりも大きければ複数の第２のプログラムモード制御信号を与え、ブロックの中のプログラムされる必要のあるメモリセルの総数が０に等しければ第３のプログラムモード制御信号を与えるステップと、
（ｃ）  前記第１のプログラムモード制御信号が与えられれば各ワードのメモリセルの前記第１のグループおよび前記第２のグループを同時にプログラムし、前記第２のプログラムモード制御信号が与えられればメモリセルの第１のグループおよび第２のグループを順次にプログラムし、前記第３のプログラムモード制御信号が与えられればメモリセルのいずれをもプログラムしないステップとを含み、
プログラムされる必要のある各ブロックの中のメモリセルの総数を計算する前記ステップは、入力データパターンの複数のビットに作動的に結合されたトランジスタ回路を通る電流を加算するステップを含む、方法。
【請求項１１】
複数ビットの情報を有する複数の入力データパターンに従って集積メモリ回路をプログラムすることを制御するための方法であって、各ビットは、第１の論理レベルまたは第２の論理レベルのいずれかである論理レベルにあり、集積メモリ回路はプログラム可能なメモリセルのマトリックスを有し、各メモリセルは１ビットの情報を記憶することができ、各ビットは、第１の論理レベルまたは第２の論理レベルのいずれかである論理レベルにあり、メモリセルのマトリックスは複数のワードに編成され、各ワードは第１のグループおよび第２のグループを含み、各グループは８つのメモリセルを含み、方法は、
（ａ）  各ワードの中のプログラムされる必要のあるメモリセルの総数を決定するステップを含み、決定するステップは、
（ｉ）  各ワードにアドレス指定された複数の入力データパターンのうち１つの各ビットの論理レベルを、各ワードの中のメモリセル内に記憶された対応する各ビットの論理レベルと比較するステップと、
（ii）  プログラムされる必要のある各ワードの中のメモリセルの総数を、前記各ワードにアドレス指定された複数の入力データパターンのうち１つの、第１の論理レベルにあるビットの数の総和を求めることにより計算するステップとを含み、方法はさらに、
（ｂ）  ワードの中のプログラムされる必要のあるメモリセルの総数が０よりも大きいが８以下ならば第１のプログラムモード制御信号を与え、ワードの中のプログラムされる必要のあるメモリセルの総数が８よりも大きければ第２のプログラムモード制御信号を与え、ワードの中のプログラムされる必要のあるメモリセルの総数が０に等しければ第３のプログラムモード制御信号を与えるステップと、
（ｃ）  前記第１のプログラムモード制御信号が与えられれば各ワードのメモリセルの前記第１のグループおよび前記第２のグループを同時にプログラムし、前記第２のプログラムモード制御信号が与えられればメモリセルの第１のグループおよび第２のグループを順次にプログラムし、前記第３のプログラムモード制御信号が与えられればメモリセルのいずれをもプログラムしないステップとを含む、方法。
【請求項１２】
プログラム後の検証モードをさらに含み、前記プログラム後の検証モードは、
（ａ）  各ワードの中のプログラムされる必要のあるメモリセルの総数を決定するステップを含み、決定するステップは、
（ｉ）  各ワードにアドレス指定された複数の入力データパターンのうち１つの各ビットの論理レベルを、各ワードの中のメモリセル内に記憶された対応する各ビットの論理レベルと比較するステップと、
（ii）  複数の入力データパターンおよびメモリセル内の対応するビットが第１の論理レベルにあれば、第２の論理レベルにあることを除いて対応する複数の入力データパターンに等しい情報のビットを有する複数の修正された入力データパターンを与えるステップと、
（iii ）  プログラムされる必要のある各ワードの中のメモリセルの総数を、前記各ワードにアドレス指定された前記複数の修正された入力データパターンの、第１の論理レベルにあるビットの数の総和を求めることにより計算するステップとを含み、プログラム後の検証モードはさらに、
（ｂ）  ワードの中のプログラムされる必要のあるメモリセルの総数が０よりも大きいが８以下ならば第１のプログラムモード制御信号を与え、ワードの中のプログラムされる必要のあるメモリセルの総数が８よりも大きければ第２のプログラムモード制御信号を与え、ワードの中のプログラムされる必要のあるメモリセルの総数が０に等しければ第３のプログラムモード制御信号を与えるステップと、
（ｃ）  前記第１のプログラムモード制御信号が与えられればメモリセルの第１のグループおよび第２のグループを同時にプログラムし、前記第２のプログラムモード制御信号が与えられればメモリセルの前記第１のグループおよび前記第２のグループを順次にプログラムし、第３のプログラムモード制御信号が与えられればメモリセルのいずれをもプログラムしないステップと、
（ｄ）  前記第３のプログラムモード制御信号が与えられるまでステップ（ａ）から（ｃ）を繰り返すステップとを含む、請求項１１に記載の方法。
【請求項１３】
プログラムされる必要のある各ワードの中のメモリセルの総数を計算する前記ステップは、第１の論理レベルにある、入力データパターンのビットの数を論理的に加算するステップを含む、請求項１２に記載の方法。
【請求項１４】
プログラムされる必要のある各ワードの中のメモリセルの総数を計算する前記ステップは、入力データパターンの複数のビットに作動的に結合されたトランジスタ回路を通る電流を加算するステップを含む、請求項１２に記載の方法。
【請求項１５】
複数ビットの情報を有する入力データパターンによって制御可能なプログラミングを備える集積メモリ回路であって、各ビットは第１の論理レベルまたは第２の論理レベルのいずれかである論理レベルにあり、集積メモリ回路は複数のメモリセルを有し、メモリセルの各々は１ビットの情報を記憶することができ、各ビットは、第１の論理レベルまたは第２の論理レベルのいずれかである論理レベルにあり、集積メモリ回路は、
プログラムされる必要のあるメモリセルの総数に従ってメモリセルをプログラムするためのプログラムモードを決定するためのプログラムモード決定手段を含み、前記プログラムモード決定手段は、
プログラムされる必要のあるメモリセルの総数を決定するためのメモリセル決定手段と、
プログラムされる必要のあるメモリセルの総数が０よりも大きいがしきい値数Ｎ以下ならば第１のプログラムモード制御信号を与え、プログラムされる必要のあるメモリセルの総数が前記しきい値数Ｎよりも大きければ第２のプログラムモード制御信号を与え、プログラムされる必要のあるメモリセルの総数が０に等しければ第３のプログラムモード制御信号を与えるための制御手段とを含み、集積メモリ回路はさらに
前記プログラムモードに従ってメモリセルをプログラムするための、前記プログラムモード決定手段に作動的に結合されたプログラム手段を含み、
前記メモリセル決定手段は、
入力データパターンの各ビットの論理レベルを、メモリセルに記憶された対応する各ビットの論理レベルと比較するための第１の比較器手段と、
入力データパターンの各ビットの論理レベルを、メモリセルに記憶された対応する各ビットの論理レベルと比較し、複数の入力データパターンおよびメモリセル内の対応するビットが第１の論理レベルにあれば、第２の論理レベルにあることを除いて入力データパターンに等しい情報のビットを有する修正された入力データパターンを与えるための第２の比較器手段と、
前記第２の比較器手段に作動的に結合され、プログラムされる必要のあるメモリセルの総数を、入力データパターンまたは前記修正された入力データパターンの、第１の論理レベルにあるビットの数の総和を選択的に求めることにより計算するための総和手段とを含み、集積メモリ回路はさらに、
前記第１のプログラムモード制御信号に応答して複数のメモリセルを同時にプログラムし、前記第２のプログラムモード制御信号に応答して複数のメモリセルの前半分および複数のメモリセルの後半分を順次にプログラムするため前記プログラム手段により前記複数のメモリセルに結合されたドレインポンプを含む、集積メモリ回路。
【請求項１６】
前記計算する手段は論理加算器を含む、請求項１５に記載の集積メモリ回路。
【請求項１７】
前記計算する手段はアナログ加算器を含む、請求項１５に記載の集積メモリ回路。
【請求項１８】
前記しきい値数Ｎは前記ドレインポンプの電流容量により決定される、請求項１５に記載の集積メモリ回路。
【請求項１９】
複数ビットの情報を有する複数の入力データパターンに応答する集積メモリ回路であって、各ビットは、第１の論理レベルまたは第２の論理レベルのいずれかである論理レベルにあり、集積メモリ回路はプログラム可能なメモリセルのマトリックスを有し、各メモリセルは１ビットの情報を記憶することができ、各ビットは、第１の論理レベルまたは第２の論理レベルのいずれかである論理レベルにあり、メモリセルの前記マトリックスは複数のブロックに編成され、各ブロックは複数のグループを含み、各グループは複数のメモリセルを含み、集積メモリ回路は、
各ブロックにアドレス指定された前記複数の入力データパターンに応答して、各ブロックの中のプログラムされる必要のあるメモリセルの総数に従って、メモリセルの各ブロックに対するプログラムモードを決定するためのプログラムモード決定回路を含み、前記プログラムモード決定回路は、
各ブロックの中のプログラムされる必要のあるメモリセルの総数を決定するためのメモリセル決定回路を含み、前記メモリセル決定回路は、
各ブロックにアドレス指定された入力データパターンの各ビットの論理レベルを、各ブロックの中のメモリセルの論理レベルと比較するための第１の比較回路と、
複数の入力データパターンのうち１つの各ビットの論理レベルを、メモリセルに記憶された対応する各ビットの論理レベルと比較し、複数の入力データパターンおよびメモリセル内の対応するビットが第１の論理レベルにあれば、第２の論理レベルにあることを除いて複数の入力データパターンに等しい情報のビットを有する複数の修正された入力データパターンを与えるための第２の比較回路と、
前記第２の比較回路に作動的に結合され、プログラムされる必要のある各ブロック上のメモリセルの総数を、複数の入力データパターンのうち１つまたは前記各ブロックにアドレス指定された複数の前記修正された入力データパターンのうち１つの、第１の論理レベルにあるビットの数の総和を選択的に求めることにより計算するための総和回路とを含み、前記プログラムモード決定回路はさらに、
前記メモリセル決定回路に作動的に結合された制御回路であって、
ブロックの中のプログラムされる必要のあるメモリセルの総数が０よりも大きいがしきい値数Ｎ以下ならば第１のプログラムモード制御信号を与え、
ブロックの中のプログラムされる必要のあるメモリセルの総数が前記しきい値数Ｎよりも大きければ複数の第２のプログラムモード制御信号を与え、
ブロックの中のプログラムされる必要のあるメモリセルの総数が０に等しければ第３のプログラムモード制御信号を与えるための、前記メモリセル決定回路に結合された制御回路を含み、集積メモリ回路はさらに、
前記プログラムモード決定回路に作動的に結合され、それぞれのプログラムモードに従って各ブロックをプログラムするためのプログラム回路と、
前記第１のプログラムモード制御信号に応答して前記複数のグループのメモリセルを同時にプログラムし、前記第２の複数のプログラムモード制御信号に応答して前記複数のグループのメモリセルをｎグループの倍数で一度にプログラムするため前記プログラム回路により前記複数のグループのメモリセルに結合された複数のドレインポンプとを含む、集積メモリ回路。
【請求項２０】
前記総和回路は論理加算器を含む、請求項１９に記載の集積メモリ回路。
【請求項２１】
前記総和回路はアナログ加算器を含む、請求項１９に記載の集積メモリ回路。
【請求項２２】
前記ｎおよび前記しきい値数Ｎは、前記複数のドレインポンプの電流の総容量により決定される、請求項１９に記載の集積メモリ回路。
【請求項２３】
複数ビットの情報を有する複数の入力データパターンに応答する集積メモリ回路であって、各ビットは、第１の論理レベルまたは第２の論理レベルのいずれかである論理レベルにあり、集積メモリ回路はプログラム可能なメモリセルのマトリックスを有し、各メモリセルは１ビットの情報を記憶することができ、各ビットは、第１の論理レベルまたは第２の論理レベルのいずれかである論理レベルにあり、メモリセルの前記マトリックスは複数のブロックに編成され、各ブロックは２つのグループを含み、各グループは８つのメモリセルを含み、集積メモリ回路は、
各ブロックにアドレス指定された前記複数の入力データパターンに応答して、各ブロックの中のプログラムされる必要のあるメモリセルの総数に従ってメモリセルの各ブロックに対するプログラムモードを決定するためのプログラムモード決定回路を含み、前記プログラムモード決定回路は、
各ブロックの中のプログラムされる必要のあるメモリセルの総数を決定するためのメモリセル決定回路を含み、前記メモリセル決定回路は、
各ブロックにアドレス指定された複数の入力データパターンのうち１つの各ビットの論理レベルを、各ブロックの中のメモリセルの論理レベルと比較するための第１の比較回路と、
複数の入力データパターンのうち１つの各ビットの論理レベルを、メモリセルに記憶された対応する各ビットの論理レベルと比較し、複数の入力データパターンおよびメモリセル内の対応するビットが第１の論理レベルにあれば、第２の論理レベルにあることを除いて複数の入力データパターンに等しい情報のビットを有する複数の修正された入力データパターンを与えるための第２の比較回路と、
前記第２の比較回路に作動的に結合され、プログラムされる必要のある各ブロックの中のメモリセルの総数を、複数の入力データパターンのうち１つまたは前記各ブロックにアドレス指定された前記複数の修正された入力データパターンのうち対応する１つの、第１の論理レベルにあるビットの数の総和を選択的に求めることにより計算するための総和回路とを含み、前記プログラムモード決定回路はさらに、
前記メモリセル決定回路に作動的に結合された制御回路であって、
ブロックの中のプログラムされる必要のあるメモリセルの総数が０よりも大きいがしきい値数８以下ならば第１のプログラムモード制御信号を与え、
ブロックの中のプログラムされる必要のあるメモリセルの総数が８よりも大きければ第２のプログラムモード制御信号を与え、
ブロックの中のプログラムされる必要のあるメモリセルの総数が０に等しければ第３のプログラムモード制御信号を与えるための、前記メモリセル決定回路に作動的に結合された制御回路を含み、集積メモリ回路はさらに、
前記プログラムモード決定回路に作動的に結合され、それぞれのプログラムモードに従って各ブロックをプログラムするためのプログラム回路と、
前記第１のプログラムモード制御信号に応答して前記２つのグループのメモリセルを同時にプログラムし、前記第２のプログラムモード制御信号に応答して前記２つのグループのメモリセルを順次にプログラムするため前記プログラム回路により前記２つのグループのメモリセルに結合された複数のドレインポンプとを含む、集積メモリ回路。
【請求項２４】
前記総和回路は論理加算器を含む、請求項２３に記載の集積メモリ回路。
【請求項２５】
前記総和回路はアナログ加算器を含む、請求項２３に記載のメモリ回路。
【発明の詳細な説明】
【０００１】
【発明の分野】
この発明は一般的に、電気的に書換可能なメモリデバイスに関し、より特定的にはフラッシュＥＰＲＯＭをプログラムするための方法および装置に関する。
【０００２】
【発明の背景】
フラッシュＥＰＲＯＭ（書換・消去可能な読出専用メモリ）は、ますます成長している不揮発性記憶集積回路である。これらフラッシュＥＰＲＯＭは、電気的に消去、プログラムまたは読出可能な集積メモリセルを有する。アレイ全体は同時に電気的に消去できる。フラッシュＥＰＲＯＭはまた、ランダムに読出または書込可能である。
【０００３】
セルそのものは１つのセルにつき１個の素子のみを用い、フローティングゲートの充電または放電によりデータがセル内に記憶される、いわゆるフローティングゲート型トランジスタを用いて形成される。フローティングゲートは、典型的にはポリシリコンから製造される導電性物質であり、酸化物の薄い層またはその他の絶縁物質によりトランジスタのチャネルから絶縁され、絶縁物質の第２の層によりトランジスタの制御ゲートワードラインから絶縁される。
【０００４】
フローティングゲートに充電する動作は、フラッシュＥＰＲＯＭに対する“プログラム”ステップと称される。このことは、ゲートとソースの間に１２ボルト程度の正の高電圧、ドレインとソースの間にたとえば６ボルトの正電圧を確立することにより、いわゆるホット・エレクトロン注入を通して達成される。ドレインポンプは、メモリセルをプログラムするのに必要な電流を供給する。
【０００５】
フローティングゲートを放電する動作は、フラッシュＥＰＲＯＭに対する“消去”機能と呼ばれる。この消去機能は典型的に、フローティングゲートとトランジスタのソースとの間（ソース消去）、またはフローティングゲートと基板との間（チャネル消去）の、ファウラ−ノルドハイム型トンネリングメカニズムにより実行される。たとえば、ソース消去動作は、ソースからゲートへの大きな正電圧を確立し、一方それぞれのメモリセルのドレインをフローティング状態とすることにより引起こされる。この正電圧は１２ボルトであってもよい。
【０００６】
フラッシュＥＰＲＯＭセルをプログラムする従来の方法が直面する問題は、高密度のフラッシュＥＰＲＯＭメモリデバイスをプログラムするには大量の電流が必要とされることである。典型的なフラッシュＥＰＲＯＭメモリデバイスは、１バイトが８ビットの、１２８０００（１２８Ｋ）バイトとして構成された１００万ビット（メガビットまたはＭビット）のメモリセルを有する。典型的には、８ビットすべてが同時にプログラムされる。集積回路に供給される電圧が１２ボルトであれば、メモリセルをプログラムするのに必要な電流としては十分であろう。パーソナルコンピュータ産業がサイズ縮小および移動計算の方向へ進むにつれ、ノートブックおよびサブノートブックコンピュータアプリケーションが大きく普及してきている。これらアプリケーションにおいては、バッテリが典型的にノートブックおよびサブノートブックコンピュータに電力を供給するために用いられるため、電力消費が重要な問題である。より小さな電源電圧を用いる集積回路は、消費する電力が少ないことは既知である。したがって、これらのアプリケーションに利用される集積回路の多くは、より小さな電源電圧で機能するように設計される。ゆえに、以前用いられていた１２ボルトよりも小さな電源電圧を有するメモリデバイスへの需要が高まっている。現在、電源電圧は５ボルトまで低減され、近い将来はさらに３．３ボルトに低減されることが予測されている。電源電圧が５ボルトまたはそれよりも小さければ、ドレインポンプは、電源電圧をポンプアップして、８ビットものメモリセルを同時にプログラムするに十分な電流を発生することが必要である。さらに、マイクロプロセッサ技術が向上するにつれ、より高密度のフラッシュＥＰＲＯＭメモリデバイスが必要とされる。産業界の需要は、各ワードが１６ビットの２５６Ｋワードで構成される４Ｍビット、および各ワードが１６ビットの１００万ワードとして構成される１６Ｍビットの記憶容量を有するフラッシュＥＰＲＯＭを要求している。これらのフラッシュＥＰＲＯＭでは、１６ビットのメモリセルは同時にプログラムされねばならないかもしれず、以前のデバイスにおいて８ビットのメモリセルのみを同時にプログラムする場合と比較して、必要な電流は倍加する。電流容量を増大させるために、ドレインポンプの数を倍加するかまたは既存のドレインポンプのサイズを増大することにより、４Ｍビットまたは１６Ｍビットデバイスへより多くの電流を送る問題を解決するための試みが行なわれている。
【０００７】
より多くのドレインポンプを用いるかまたはドレインポンプの電流容量を増大することにより、４Ｍビットまたは１６Ｍビットメモリデバイスに十分な電流を供給できるであろうが、集積回路の設計に複雑さが増すことは望ましくない。加えて、ドレインポンプの数を増加することまたはドレインポンプのサイズを増大させることにより、フラッシュＥＰＲＯＭが乗る集積回路の全体のサイズが増大する。さらに、より高密度のフラッシュＥＰＲＯＭメモリデバイスへの需要が増すにつれ、プログラムされるビット数が引き続き増加するであろうことが予測され、こうした高密度のデバイスに必要な電流を供給するよりよい方法が必須である。したがって、集積回路の設計の複雑さおよびサイズを増大させるといった望ましくない方法をとらずに、高密度のフラッシュＥＰＲＯＭメモリデバイスを低電源電圧でプログラムするための方法および装置を有することが必要である。この発明は、こういった必要に応えるものである。
【０００８】
【発明の概要】
したがって、この発明の包括的な局面は、プログラムされる必要のあるメモリセルの数が増加したとき、集積回路のサイズを不必要に増大させることなく、入力データパターンに応答して集積回路上に形成された複数のメモリセルをプログラムするための方法を提供することである。この発明の他の局面は、プログラムされる必要のあるメモリセルの数が増加したとき、プログラムの間電流を供給するために用いられるドレインポンプの数またはサイズを不必要に増大させることなく、集積回路上に形成された複数のメモリセルをプログラムする方法を提供することである。
【０００９】
この発明のさらに他の局面は、プログラムされる必要のあるメモリセルの数が増加したとき、集積回路のサイズを不必要に増大させることなく、入力データパターンに応答して集積回路上に形成された複数のメモリセルをプログラムすることを可能にする、集積メモリ回路を提供することである。この発明のさらに他の局面は、プログラムされる必要のあるメモリセルの数が増加したとき、プログラムの間電流を供給するために用いられるドレインポンプの数またはサイズを不必要に増大させることなく、入力データパターンに応答して集積回路上に形成された複数のメモリセルをプログラムすることを可能にする、集積メモリ回路を提供することである。
【００１０】
これらの目的および局面に従い、この発明は、複数ビットの情報を有する入力データパターンに応答し、複数のメモリセルをプログラムするための方法を提供することに関する。各ビットは第１の論理レベルまたは第２の論理レベルのいずれかであり、各メモリセルは１ビットの情報を記憶するために用いられる。この方法は、入力データパターンのビットの数に従ってメモリセルをプログラムするためのプログラムモードを提供するステップと、次にそのプログラムモードに従ってメモリセルをプログラムするステップとを含む。
【００１１】
プログラムモードを提供するステップは、プログラムされる必要のあるメモリセルの総数を決定するステップと、もしプログラムされる必要のあるメモリセルの総数が０よりも大きいがしきい値数Ｎよりも小さいかまたは等しければ第１のプログラムモード制御信号を与え、もしプログラムされる必要のあるメモリセルの総数がしきい値数Ｎよりも大きければ第２のプログラムモード制御信号を与え、もしプログラムされる必要のあるメモリセルの総数が０に等しければ第３のプログラムモード制御信号を与えるステップとを含む。
【００１２】
プログラムされる必要のあるメモリセルの総数を決定するステップは、入力データパターンの各ビットの論理レベルを、メモリセルに記憶された対応する各ビットの論理レベルと比較するステップと、プログラムされる必要のあるメモリセルの総数を、第１の論理レベルにある入力データパターンのビットの数の総和を求めることにより計算するステップとを含む。
【００１３】
この発明はまた、複数ビットの情報を有する入力データパターンに応答する集積メモリ回路を提供することに関する。各ビットは第１の論理レベルかまたは第２の論理レベルである。集積メモリ回路は複数のメモリセルを有し、メモリセルの各々は１ビットの情報を記憶するために用いられる。集積メモリ回路は、入力データパターンのビットの数に従ってメモリセルをプログラムするためのプログラムモードを決定するためのプログラムモード決定回路と、プログラムモード決定回路に作動的に結合され、プログラムモードに従ってメモリセルをプログラムするためのプログラム回路とを含む。
【００１４】
プログラムモード決定回路は、プログラムされる必要のあるメモリセルの総数を決定するためのメモリセル決定回路と、もしプログラムされる必要のあるメモリセルの総数が０よりも大きいがしきい値数Ｎよりも小さいかまたは等しければ第１のプログラムモード制御信号を与え、もしプログラムされる必要のあるメモリセルの総数がしきい値数Ｎよりも大きければ第２のプログラムモード制御信号を与え、もしプログラムされる必要のあるメモリセルの総数が０に等しければ第３のプログラムモード制御信号を与えるための、制御回路とを含む。
【００１５】
このプログラム方法または回路設計により、高密度の集積メモリ回路は、集積回路上に形成されたドレインポンプの数および／またはサイズを増大させる必要がなく、したがって集積回路のサイズを最小に維持して、効率的にプログラムすることができる。この方法またはシステムにより、追加されるハードウェア量は最小であり、メモリ回路のプログラム時間には容易に影響しない。
【００１６】
【詳細な説明】
この発明は、集積回路上に形成されたドレインポンプの数またはサイズを不適当にも増大させることなく、高密度のメモリセルをプログラムするための方法および集積メモリ回路に関する。以下の説明は、特定のアプリケーションおよびその要求の文脈において与えられるように、当業者がこの発明を実現および利用できるように提示されるものである。好ましい実施例に対する様々な修正は、当業者には容易に明らかになるであろうし、またこの実施例に伴う一般的な原則は、その他の実施例に応用してもよい。したがって、この発明は示された実施例に限定することを意図するものでなく、この明細書中で開示された原則および新規の特徴に一致する範囲を与えられるものである。
【００１７】
図１は、この発明に従って構成された集積メモリ回路１００を図示する。
集積メモリ回路１００は、１６ビットの情報を有する入力データパターンＤＱn （ＤＱ0 ないしＤＱ15）に応答する。各ビットは第１の論理レベルまたは第２の論理レベルである。図示のために、第１の論理レベルは論理０と仮定され、第２の論理レベルは論理１と仮定される。入力データパターンＤＱn は、０番目から７番目のビットを表わす下位バイトＤＱna（ＤＱ0aないしＤＱ7a）、および８番目から１５番目のビットを表わす上位バイトＤＱnb（ＤＱ8bないしＤＱ15b ）の、２つのバイトに分離される。集積メモリ回路１００は、プログラム可能なメモリセルのマトリックスを含む。各メモリセルは１ビットの情報を記憶するために用いられる。メモリセルのマトリックスは複数のブロックで構成され、各ブロックは２つのグループのメモリセルを含み、各グループは８つのメモリセルを含む。１ワードが１６ビットの２５６Ｋワードとして構成された４ＭビットのフラッシュＥＰＲＯＭの場合、各ワードは１つのブロックに相当し、すなわち２５６Ｋブロックとなる。各ブロックはさらに、１グループが８ビットである２つのグループに分割される。各ビットは１つのメモリセルにより表わされる。図示のため、図１では１メモリセルブロック１１０のみを示す。メモリセルブロック１１０は、２つのグループのメモリセル１１０ａおよび１１０ｂを含む。メモリセルグループ１１０ａおよび１１０ｂは各々８つのメモリセルを含む。
【００１８】
この実施例の目的に対し、メモリセルが消去されるとき、論理１であろう。メモリセルがプログラムされるときは、論理０であろう。
【００１９】
集積メモリ回路１００はさらに、入力データパターンＤＱn のビットの数に従いブロック１１０をプログラムするためのプログラムモードを決定するためのプログラムモード決定回路１１２と、プログラムモード決定回路１１２に作動的に結合され、それぞれのプログラムモードに従ってブロック１１０をプログラムするためのプログラム回路１１３とを含む。この実施例では、プログラムモード決定の目的のために選択された入力データパターンＤＱn のビットの数は８であり、集積メモリ回路上にある典型的なドレインポンプがプログラムの間同時に供給することができるメモリセルの数である。
【００２０】
プログラムモード決定回路１１２は、ブロック１１０においてプログラムされる必要のあるメモリセルの総数を決定するためのメモリセル決定回路１１４と、メモリセル決定回路１１４に作動的に結合され、もしブロック１１０においてプログラムされる必要のあるメモリセルの総数が０よりも大きいが８よりも小さいかまたは等しければ第１のプログラムモード制御信号を与え、もしブロック１１０におけるプログラムされる必要のあるメモリセルの総数が８よりも大きければ第２のプログラムモード制御信号を与え、もしブロック１１０においてプログラムされる必要のあるメモリセルの総数が０に等しければ第３のプログラムモード制御信号を与えるための、制御回路１１６とを含む。
【００２１】
メモリセル決定回路１１４は、第１の比較回路１１８、第２の比較回路１２０、および総和回路１２２を含む。
【００２２】
第１の比較回路１１８は、ブロック１１０にアドレス指定された入力データパターンＤＱn の各ビットの論理レベルを、ブロック１１０における各メモリセルの論理レベルと比較するために用いられる。
【００２３】
第２の比較回路１２０は、入力データパターンＤＱn の各ビットの論理レベルを、メモリセル１１０ａおよび１１０ｂに記憶された対応する各ビットの論理レベルと比較し、修正された入力データパターンＤＩＭna（ＤＩＭ0aないしＤＩＭ7a）およびＤＩＭnb（ＤＩＭ8bないしＤＩＭ15b ）を与えるために用いられる。
メモリセル１１０ａ（または１１０ｂ）の１ビットおよび入力データパターンＤＱna（またはＤＱnb）の対応するビットが両方とも論理１のとき、修正された入力データパターンＤＩＭna（またはＤＩＭnb）の対応するビットは論理１であろう。このことは、そのビットに対しプログラムは必要ないことを示す。
【００２４】
メモリセル１１０ａ（または１１０ｂ）の１ビットおよび入力データパターンＤＱna（またはＤＱnb）の対応するビットが両方とも論理０のとき、修正された入力データパターンＤＩＭna（またはＤＩＭnb）の対応するビットは論理１であろう。このことは再び、そのビットに対しプログラムは必要ないことを示す。
【００２５】
メモリセル１１０ａ（または１１０ｂ）の１ビットが論理１であり、入力データパターンＤＱna（またはＤＱnb）の対応するビットが論理０であるとき、修正された入力データパターンＤＩＭna（またはＤＩＭnb）の対応するビットは論理０であろう。このことはそのビットに対しプログラムが必要であることを示す。
【００２６】
入力データパターンＤＱnaおよびＤＱnbは、第２の比較器１２０に与えられる。第２の比較器１２０はしたがって、データパターンＤＩnaおよびＤＩＭnaを発生する。ＤＩnaはＤＱnaと等しく、この実施例では入力データパターンとして示されるだろう。ＤＩＭnaは、上記のように修正された入力データパターンである。第２の比較器１２０はまた、データパターンＤＩnbおよびＤＩＭnbを与える。同様に、ＤＩnbはＤＱnbと等しく、この実施例では入力データパターンとして表わされる。ＤＩＭnbは、上記のように修正された入力データパターンである。ＤＩnaは、ライン１２４ａを通して第１の比較回路１１８に結合される。ＤＩnaまたはＤＩＭnaは、第２の比較器１２０内の選択スイッチ１２６ａを介してライン１２８ａにより総和回路１２２に選択的に結合される。同様に、ＤＩnbは、ライン１２４ｂを通して第１の比較回路１１８に結合され、ＤＩnbまたはＤＩＭnbはライン１２８ｂ上のスイッチ１２６ｂにより総和回路１２２に選択的に結合される。
【００２７】
総和回路１２２は、デジタル加算回路またはアナログ加算回路により実現できる。典型的なデジタル加算回路は、複数のデジタル半加算器およびデジタル全加算器を含み、入力データパターンＤＩnaおよびＤＩnb、または修正された入力データパターンＤＩＭnaおよびＤＩＭnbの論理０であるビットの総和を求めることにより、論理加算を提供する。この実施例では、７つのデジタル半加算器および１９のデジタル全加算器が用いられて論理加算を達成する。デジタル加算回路の実現についての議論は、ジョン  ウエムラによる、１９９２年の、「ＣＭＯＳ  ＶＬＳＩに対する回路設計（Circuit Design for CMOS VLSI）」と題される本の、３２２ないし３２８頁において発見されるだろう。
【００２８】
対照的に、典型的なアナログ加算回路は、複数のトランジスタを通る電流の総和を求める。
【００２９】
この実施例では、ここでのアナログ加算回路の実現は、デジタル加算回路よりも集積メモリ回路上で占める領域が小さいことが判っているため、アナログ加算回路が好ましい。
【００３０】
総和回路１２２は、プログラムされる必要のあるメモリセル１１０ａおよび１１０ｂのビットの総数を、入力データパターンＤＱnaおよびＤＱnb、またはブロック１１０にアドレス指定された対応する修正された入力データパターンＤＩＭnaおよびＤＩＭnbの論理０のビットの数の総和を選択的に求めることにより計算し、次に出力信号Ｘ１６ＰＧＭを発生する。Ｘ１６ＰＧＭ信号は、プログラムされる必要のあるメモリセルの数が０よりも大きいが８よりも小さいかまたは等しいとき論理１であり、プログラムされる必要のあるメモリセルの総数が８よりも大きいとき論理０であろう。信号Ｘ１６ＰＧＭは、ライン１３０で制御回路１１６に結合する。
【００３１】
第１の比較回路１１８は、信号ＬＢＭＡＴＣＨＰおよびＨＢＭＡＴＣＨＰを、それぞれライン１３２ａおよび１３２ｂを通して制御回路１１６に出力する。制御回路１１６は、信号ＬＢＰＧＭおよび信号ＨＢＰＧＭを、それぞれライン１３４ａおよび１３４ｂを通して第２の比較回路１２０に与える。制御回路１１６は、メモリセル１１０ａおよび１１０ｂの内容が入力データパターンＤＱn の内容と一致するとき、ＭＡＴＣＨ信号を与える。
【００３２】
プログラム回路１１３はドレインポンプ１３６に結合する。ドレインポンプ１３６は、典型的には５ボルトである電源ＶＣＣに結合される。メモリセル１１０ａおよび１１０ｂはそれぞれ、複数のデコーダ１３８ａおよび１３８ｂに結合する。デコーダ１３８ａおよび１３８ｂはそれぞれ、ライン１４０ａおよび１４０ｂを介してプログラム回路１１３に結合する。デコーダ１３８ａは、第１の複数のセンスアンプ１４２ａを通してメモリセル１１０ａを第１の比較回路１１８に結合する。同様に、デコーダ１３８ｂは、第２の複数のセンスアンプ１４２ｂを通してメモリセル１１０ｂを第１の比較回路１１８に結合する。センスアンプ１４２ａおよび１４２ｂはそれぞれ、データパターンＤＳＩnaおよびＤＳＩnbを与える。データパターンＤＳＩnaおよびＤＳＩnbはそれぞれ、メモリセル１１０ａおよび１１０ｂの内容を表わす。データパターンＤＳＩnaおよびＤＳＩnbはそれぞれ、ライン１４４ａおよび１４４ｂで第２の比較回路１２０に結合されている。
【００３３】
集積メモリ回路１００のプログラムは、３つの動作、すなわちプログラム前の検証動作、プログラム動作、およびプログラム後の検証動作を含む。プログラム前の検証動作の直前には、メモリセル１１０ａおよび１１０ｂは完全に消去されていると仮定される、すなわちすべて論理１である。
【００３４】
図２を参照して、図２は総和回路１２２を実現するために用いられるアナログ加算回路の詳細な回路図である。総和回路１２２は、差動比較回路の原理を用いて電流総和を与える。総和回路１２２は、並列に結合された複数のトランジスタ２１０、２１２、２１４、２１６、２１８、２２０、２２２、２２４、２２６、２２８、２３０、２３２、２３４、２３６、２３８および２４０を含む。複数のトランジスタ２１０、２１２、２１４、２１６、２１８、２２０、２２２、２２４、２２６、２２８、２３０、２３２、２３４、２３６、２３８および２４０のドレイン端子は、ノード２４４およびドライバ／バッファ回路２４１に結合される。複数のトランジスタ２１０、２１２、２１４、２１６、２１８、２２０、２２２および２２４の各々のゲート端子はそれぞれ、入力データパターンＤＩnaまたは修正された入力データパターンＤＩＭnaのビット０、１、２、３、４、５、６および７に結合される。同様に、複数のトランジスタ２２６、２２８、２３０、２３２、２３４、２３６、２３８、および２４０の各々のゲート端子はそれぞれ、入力データパターンＤＩnbまたは修正された入力データパターンＤＩＭnbのビット８、９、１０、１１、１２、１３、１４および１５に結合される。複数のトランジスタ２１０、２１２、２１４、２１６、２１８、２２０、２２２、２２４、２２６、２２８、２３０、２３２、２３４、２３６、２３８および２４０の各々のソース端子は、電流源トランジスタ２４７のドレイン端子に結合される。電流源トランジスタ２４７は、電圧ＶＢＩＡＳに結合されたゲート端子および電源電圧ＶＣＣに結合されたソース端子を有する。電流源トランジスタ２４７は、総和回路１２２に対する定電流源として作用する。
【００３５】
複数のトランジスタの各々は、そのゲートに結合された対応するビットが論理０のとき、導通状態となって該トランジスタに電流を通す。導通状態とされているトランジスタの総数次第である、複数のトランジスタを通る電流の総量はしたがって、点２４４で総和がとられる。次に、電流の総量による対応する総電圧降下は、基準電圧発生器２４６により発生される基準電圧Ｖ１と比較され、出力信号２４８がノード２４４およびドライバ／バッファ回路２４１を介して与えられる。この実施例では、基準電圧Ｖ１は、入力データパターンＤＩnaおよびＤＩnb（または修正された入力データパターンＤＩＭnaおよびＤＩＭnb）の論理０のビットの総数が、８よりも大きいとき、および８よりも小さいかまたは等しいとき、それぞれ論理０および論理１となるように選択される。
【００３６】
図３を参照して、ここでは図１に示される集積メモリ回路１００のプログラム前の検証動作が示される。最初にステップ３１０を介して、プログラムアドレスおよび入力データパターンＤＱnaおよびＤＱnbが、第２の比較器１２０に与えられる。ＤＱnaおよびＤＱnbは、第２の比較回路１２０によりラッチされ、それぞれ信号ＤＩnaおよびＤＩnbを与える。ステップ３１２を介して、第１の比較回路１１８は、入力データパターンＤＩnaおよびＤＩnbをそれぞれメモリセル１１０ａおよび１１０ｂの内容と比較し、次に出力ＬＢＭＡＴＣＨＰ信号およびＨＢＭＡＴＣＨＰ信号をそれぞれ出力する。ＬＢＭＡＴＣＨＰは、入力データパターンＤＱnaの対応するビットと整合しない少なくとも１つのビットがメモリセル１１０ａにあるときはいつでも論理０であり、そうでなければ、ＬＢＭＡＴＣＨＰは論理１であろう。同様に、ＨＢＭＡＴＣＨＰは、入力データパターンＤＱnbの対応するビットに整合しない少なくとも１つのビットがメモリセル１１０ｂにあるときはいつでも論理０であり、そうでなければ、ＨＢＭＡＴＣＨＰは論理１であろう。
【００３７】
次に、ステップ３１４を介して、メモリセル１１０ａおよび１１０ｂの内容が入力データパターンＤＱnaおよびＤＱnbの対応するビットに整合するかどうか決定されねばならない。もしメモリセル１１０ａおよび１１０ｂ内のビットの各々が、入力データパターンＤＱnaおよびＤＱnbの対応するビットに整合すれば、信号ＬＢＭＡＴＣＨＰおよびＨＢＭＡＴＣＨＰは両方とも論理１であろう。応答して、ステップ３１６を介して、プログラムは必要ないことを示す論理１であるＭＡＴＣＨ信号が、制御回路１１６により与えられるだろう。ＭＡＴＣＨ信号が論理１のとき、この信号はまた第３のプログラムモード制御信号として知られている。メモリセル１１０ａまたは１１０ｂの内容が、入力データパターンＤＱnaまたはＤＱnbと整合しない場合、ステップ３１８を介して、プログラムされる必要のあるビットの総数が決定されねばならない。総和回路は、論理０である入力データパターンＤＱnaおよびＤＱnbのビットの数の総和を求め、信号Ｘ１６ＰＧＭを発生する。入力データパターンＤＱnaまたはＤＱnbのビットが論理０のとき、メモリセル１１０ａまたは１１０ｂ内の対応するビットのプログラムが必要とされることを示す、というのもメモリセル１１０ａおよび１１０ｂ内のすべてのビットは消去されている、すなわちプログラム前の検証動作の直前にはすべて論理１であったと仮定されるからである。
【００３８】
次に、ステップ３２０を介して、プログラムされる必要があるビットの総数が８よりも大きいかどうか決定されねばならない。もし論理０であるＸ１６ＰＧＭにより示されるように、プログラムされる必要のあるビットの総数が８よりも大きければ、ステップ３２２を介して下位バイトまたは２サイクルのプログラムが実行される。プログラムされる必要のあるビットの総数が０よりも大きいが８よりも小さいかまたは等しい場合、ステップ３２４を介してワードのプログラムが実行されねばならない。この場合、１サイクルのプログラムを用いて、上位バイトおよび下位バイトの両方が同時にプログラムされるだろう。
【００３９】
図４を参照して、この図で示されるのは、先に図１に図示されたこの発明に従う２サイクルまたは下位バイトのプログラム動作を示すフローチャートである。プログラム前の検証動作により、プログラムされる必要のあるビットの総数が８よりも大きいことが決定された後、ステップ４１０を介して、制御信号１１６は、論理１であるＬＢＰＧＭ信号、および論理０であるＨＢＰＧＭ信号を与えるだろう。次に、ＬＢＰＧＭ信号およびＨＢＰＧＭ信号は両方とも、それぞれライン１３４ａおよび１３４ｂを通して第２の比較回路１２０にフィードバックされている。論理１であるＬＢＰＧＭ信号に応答して、第２の比較回路１２０はプログラム回路１１３をトリガし、そうしてステップ４１２を介してドレインポンプ１３６をメモリセル１１０ａに結合する。ＨＢＰＧＭ信号が論理０のとき、第２の比較器１２０は、プログラム回路１１３をトリガしてドレインポンプ１３６をメモリセル１１０ｂに結合することはないだろう。したがって、メモリセル１１０ａのみがプログラムされるだろう。次にドレインポンプ１３６は一定の時間、たとえば１５マイクロ秒の間作動状態とされ、メモリセル１１０ａの十分なプログラムを可能にする。プログラムするための時間の長さは、ソフトウェアまたはハードウェアを通して（たとえばタイマを用いて）決定される。次に、ステップ４１４を介して、プログラムのために設定された時間が経過した後、ＬＢＰＧＭ信号は論理１から論理０にスイッチされ、プログラム回路１１３がドレインポンプ１３６をメモリセル１１０ａから切離すことを可能にしてプログラムは停止できる。その後、ステップ４１６を介して、プログラム後の検証動作が実行されるが、このことについては図６でさらに説明される。
【００４０】
図５を参照して、１６ビットが同時にプログラムされる、１サイクルまたはワードのプログラムに対するフローチャートが示される。プログラムされる必要のあるビットの数が８よりも小さいとき、ドレインポンプ１３６は、すべての１６ビットに同時に結合して必要な電流を供給することができる、というのもプログラムを必要とするこれらのビット（論理０のビット）のみが電流を引抜くからである。この場合、ステップ４４０を介して、制御信号１１６は、論理１であるＬＢＰＧＭおよびＨＢＰＧＭ信号を与えるだろう。次に、ステップ４４２を介して、第２の比較回路１２０はプログラム回路１１３をトリガしてドレインポンプ１３６をメモリセル１１０ａおよび１１０ｂの両方に結合し、そのためメモリセル１１０ａおよび１１０ｂの両方が同時にプログラムされることができる。
【００４１】
再び、メモリセル１１０ａおよび１１０ｂのプログラムが、ソフトウェアまたはハードウェアを通して（たとえばタイマを用いることにより）決定できる一定の時間の間続くだろう。所望の時間が経過した後、ステップ４４４を介し、次にＬＢＰＧＭおよびＨＢＰＧＭ信号が論理０にリセットされ、プログラム回路１１３がドレインポンプ１３６をメモリセル１１０ａおよび１１０ｂから切離すことを可能にすることにより、プログラムは停止できる。その後、プログラム後の検証動作４１６が実行されるが、このことについてはさらに図６で説明される。
【００４２】
図６を参照して、ここで示されるのは、図１に図示された集積メモリ回路１００のプログラム後の検証動作である。始めに、第２の比較器１２０は、ステップ５１０を介して、修正された入力データパターンＤＩＭnaおよびＤＩＭnbを与える。
【００４３】
前記のように、プログラム前の検証動作の直前に、メモリセル１１０ａおよび１１０ｂは完全に消去されている、すなわちすべて論理１であると仮定される。プログラム前の検証およびプログラム動作の後、なおもプログラムされる必要のあるビットの数が決定されねばならない。メモリセル１１０ａ（または１１０ｂ）の対応する各ビットと、入力データパターンＤＱnaとの間の比較が行なわれて、ＤＩＭna（またはＤＩＭnb）を与える。先に説明したように、もし入力データパターンＤＱna（またはＤＱnb）およびメモリセル１１０ａ（または１１０ｂ）内の、ＤＳＩna（またはＤＳＩnb）で表わされる対応するビットが両方とも論理０であればＤＩＭna（またはＤＩＭnb）内の対応するビットは論理１となることを除いて、ＤＩＭna（またはＤＩＭnb）は、入力データパターンＤＱna（またはＤＱnb）に等しい情報のビットを有する。ＤＩＭna（またはＤＩＭnb）が論理１のとき、そのビットに対してさらにプログラムは必要でないことを示す。メモリセル１１０ａ（または１１０ｂ）のビットが論理１であり、入力データパターンＤＱna（またはＤＱnb）の対応するビットが論理０のとき、修正された入力データパターンＤＩＭna（またはＤＩＭnb）の対応するビットは論理０であろう。このことはそのビットに対しプログラムが必要とされることを示す。したがって、プログラム前の検証およびプログラム動作の後、プログラムされる必要のあるメモリセルの数は、論理０である修正された入力データパターンＤＩＭnaおよびＤＩＭnbのビットの数の総和を求めることにより決定できる。
【００４４】
次に、ステップ５１２を介し、メモリセル１１０ａおよび１１０ｂ内のすべてのビットが入力データパターンＤＱnaおよびＤＱnbと一致するかどうか決定されねばならない。もし一致すれば、ステップ５１４を介して、制御回路１１６は、論理１であるＭＡＴＣＨ信号により表わされる第３のプログラムモード制御信号を出力するだろう。この場合、さらなるプログラムは必要ではない。もしステップ５１２が、ＤＳＩnaまたはＤＳＩnbで表わされるいくつかのメモリセルの内容が入力データパターンＤＱnaまたはＤＱnbの対応するビットと一致しないと決定した場合、プログラムされる必要のあるビットの総数が決定されねばならない。ステップ５１６を介して、総和回路１２２は、論理０である修正された入力データパターンＤＩＭnaおよびＤＩＭnbのビットの数の総和を求めることにより、なおもプログラムされる必要のあるビットの数を計算する。その後、ステップ５１８を介して、プログラムされるビットの総数が８よりも大きいかどうか決定されねばならない。もし、プログラムされるビットの総数が８よりも大きいと決定されれば、図４のフローチャートで図示されたものと同様のステップ５２０を介して、下位バイトのプログラムが実行できる。他方、もしプログラムされるビットの総数が０よりも大きいが８よりも小さいかまたは等しければ、図５のフローチャートで図示されたものと同様のステップ５２２を介して、ワードのプログラムが実行できる。
【００４５】
プログラムおよびプログラム後の検証動作は、メモリセル１１０ａおよび１１０ｂ内の各ビットが、入力データパターンＤＱn のビットと一致することが決定されるまで、繰返すことができる。この場合、メモリセル１１０ａおよび１１０ｂは、入力データパターンＤＱn に従ってプログラムされたと言える。
【００４６】
正常動作の間のランダムな入力データパターンを用いた場合、メモリセル１１０ａおよび１１０ｂのすべての１６ビットがプログラムされる必要があるわけではないことが多い。したがって、メモリセル１１０ａおよび１１０ｂは、２サイクルのプログラムが必要とされる前に、１サイクルのプログラムが何度も行なわれてもよい。したがって、この発明に関連するプログラム時間は、ドレインポンプの数または容量を不適当にも倍加することにより常に一度に１６ビットすべてをプログラムする回路のプログラム時間よりも、容易には長くはならない。
【００４７】
したがって、この発明により、複数のメモリセルを有する集積メモリ回路は、入力データパターンのビット数に従いメモリセルをプログラムするためのプログラムモードを与え、次にそうして与えられたプログラムモードに従いメモリセルをプログラムすることにより、効率的にプログラムできる。こうして、このようなメモリ回路上に形成されたドレインポンプの数または電流容量を不適当にも増大することを避け、したがって設計の複雑さを低減し、メモリ回路のサイズを最小とする。
【００４８】
上記の実施例は単に、この発明の原則のアプリケーションを表わすことができる特定の可能な実施例を示すものであることが理解されるべきである。たとえば、１サイクルのプログラムにおいてプログラムされるビットの数は、４といったその他の値にも調整できる。同様に、プログラム動作のためのサイクルの総数は、たとえば集積メモリ回路の密度に従って、必要に応じて変化させることができる。たとえば、１ブロックが３２ビットの１００万ブロックに組織された３２ＭビットのフラッシュＥＰＲＯＭは、１サイクル、２サイクル、３サイクルおよび４サイクルのプログラムを用いてプログラムしてもよい。この場合、８ビットを同時にプログラムする電流容量を有する従来のドレインポンプが用いられてもよい。
【００４９】
この発明は、この実施例において説明され、図面により示されるが、実施例には変形の可能性があり、これら変形はこの発明の範囲内であることを、当業者は認識する。したがって、前掲の特許請求の範囲の精神および範囲から逸脱することなく、多くの修正が当業者により行なわれるであろう。
【図面の簡単な説明】
【図１】この発明に従い構成された集積メモリ回路の簡略ブロック図である。
【図２】図１の総和回路を実現するために用いられるアナログ加算回路の概略回路図である。
【図３】この発明に従う、プログラム前の検証動作を表わすフローチャートの図である。
【図４】２サイクルまたは下位バイトのプログラム動作を示すフローチャートの図である。
【図５】１サイクルまたはワードのプログラム動作を示すフローチャートの図である。
【図６】プログラム後の検証動作を示すフローチャートの図である。
【符号の説明】
１１０  メモリセル
１１３  プログラム回路
１１６  制御回路
１２２  総和回路
１３６  ドレインポンプ
【図１】
0003741744.tif 000002
【図２】
0003741744.tif 000003
【図３】
0003741744.tif 000004
【図４】
0003741744.tif 000005
【図５】
0003741744.tif 000006
【図６】
0003741744.tif 000007