以下、この発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付し、その説明は繰返さない。
(実施の形態1)
図1は、本発明の実施の形態に従う不揮発性半導体記憶装置1の概略ブロック図である。
図1を参照して、本発明の実施の形態に従う不揮発性半導体記憶装置1は、図示しないが行列状に集積配置された複数のメモリセル(メモリセルトランジスタ)と、メモリセル行にそれぞれ対応して設けられた複数のワード線およびメモリセル列にそれぞれ対応して設けられた複数のビット線とを含むメモリマット5A,5Bを備える。なお、メモリマット5A,5Bは、メモリアレイを2つに分割したものである。
また、不揮発性半導体記憶装置1は、複数のワード線および複数のビット線をそれぞれ選択するためのロウデコーダ10およびコラムデコーダ15と、アドレスピンADPを介して外部から入力されたアドレス信号をバッファ処理してそれぞれロウデコーダ10およびコラムデコーダ15に伝達するためのアドレスバッファ20とをさらに備える。
また、不揮発性記憶装置1は、メモリマット5A,5Bから読出されたデータを増幅するセンスアンプ帯30A,30Bと、センスアンプ帯30A,30Bにより増幅されたデータを外部に出力するあるいはデータピンDQPを介して外部から入力されたデータをバッファ処理して制御部50に出力するI/Oバッファ35とをさらに備える。なお、センスアンプ帯30A,30Bには、それぞれ並列にデータ読出が可能なデータ読出対象ビットに対応した個数のセンスアンプ(SA)が設けられている。また、本例においてI/Oバッファ35は、データピンDQPを介してアドレス信号に基づいて同一アドレスとして指定されたメモリマット5A,5Bに対するデータ書込等を実行する書込データ(書込データ群)の入力を受ける。なお、本例においては、メモリマット5A,5Bに対するデータ書込等を実行する書込データ(書込データ群)が同時に入力される場合について説明するが、メモリマット5A,5Bに対するデータ書込等を実行する書込データ(書込データ群)がそれぞれ独立に入力される構成とすることも可能である。
また、不揮発性記憶装置1は、メモリマット5A,5Bにそれぞれ対応して設けられ、メモリマット5A,5Bのアドレス選択されたメモリセルに対するプログラムパルスの印加をそれぞれ規定する書込データ(書込データ群)を保持するデータラッチ回路40A,40Bを備える。また、データラッチ回路40A,40Bにそれぞれ対応して設けられ、データラッチ回路40A,40Bに保持された書込データ群に応じてメモリマット5A,5Bのアドレス選択されたメモリセルに対するプログラムパルスを印加するためのライトドライバ帯25A,25Bを備える。そして、不揮発性記憶装置1全体を制御するための制御部50をさらに備える。なお、ライトドライバ帯25A,25Bには、それぞれ並列にデータ書込が可能なデータ書込対象ビットに対応した個数のライトドライバ(書込ドライバ)(WD)が設けられている。
また、不揮発性半導体記憶装置1は、コラムデコーダ15からの選択指示に応答して動作し、選択されたビット線とセンスアンプ帯30A,30Bあるいはライトドライバ帯25A,25Bとの電気的な接続を制御する選択ゲート20A,20Bをさらに備える。
制御部50は、外部からのコマンドCMDに応じて内部回路の処理や制御信号を出力する。具体的には、例えば制御部50は、データ書込シーケンスにおいて、データ書込あるいはベリファイ書込を実行するためにライトドライバ帯25A,25Bを活性化状態とする活性化信号を必要に応じて出力する。また、制御部50は、データ読出を実行するためにセンスアンプ帯30A,30Bを活性化状態とするための活性化信号を必要に応じて出力する。そして、制御部50は、センスアンプ帯30A,30Bからの読出データに従って後述するベリファイ判定を実行してベリファイ結果に基づいてベリファイ書込の実行を指示する。また、制御部50は、I/Oバッファ35からのデータWDTの入力を受けて所定のタイミングでデータWDTの一部をメモリマット30Aに対する書込データWDTAとしてデータラッチ回路40Aに出力するとともに、データWDTの残りをメモリマット30Bに対する書込データWDTBとしてデータラッチ回路40Bに出力する。
図2は、メモリマット5Aの構成の一部を説明する図である。
図2を参照して、本発明の実施の形態に従うメモリマット5Aは、行列状に集積配置された不揮発的なデータ記憶が可能な複数のメモリセル(メモリセルトランジスタ)MCと、メモリセル行にそれぞれ対応して設けられた複数のワード線WLと、メモリセル列にそれぞれ対応して設けられた複数のビット線とを含む。ここではメモリセルMCの一例として記憶データに応じてしきい値電圧が異なるメモリセルが示されている。
図2においては、メモリセル列にそれぞれ対応してサブビット線SBLが設けられており複数のサブビット線毎にメインビット線が設けられる構成である。
本例においては、一例として2本のサブビット線SBLに対応してメインビット線MBLが設けられる構成が示されている。具体的には、サブビット線SBL0,SBL1に対応してメインビット線MBL0が設けられ、さらにサブビット線SBL2n,SBL2n+1(n:1以上の自然数)に対応してメインビット線MBLnが設けられた場合が示されている。
また、サブビット線SBLとメインビット線MBLとの間には選択ゲート20Aを構成するゲートトランジスタが設けられている。本例においてはサブビット線SBL0,SBL1とメインビット線MBL0との間にゲートトランジスタGT0,GT1が設けられており、それぞれ制御信号SG0,SG1に応答してオンする。また、同様にサブビット線SBL2n,SBL2n+1とメインビット線MBLnとの間にゲートトランジスタGT2n,GT2n+1が設けられており、それぞれ制御信号SG0,SG1に応答してオンする。
また、本例においては、メインビット線MBLの本数に対応してセンスアンプ(SA)30が設けられる。図2においては、メインビット線MBL0,MBLnにそれぞれ対応してセンスアンプ(SA)300が設けられ、メインビット線MBL0,MBLnとの間に選択ゲートを構成する列選択ゲートGTM0,GTMnが設けられている場合が示されている。列選択ゲートGTM0,GTMnは、それぞれ制御信号CL0,CLnに応答してオンする。なお、制御信号SG,CLは、それぞれアドレスバッファ20から出力されるアドレス信号に基づいてコラムデコーダ15から出力されるものとする。
例えば、コラムデコーダ15は、アドレスバッファ20から伝達されるアドレス信号に従って制御信号SG0および制御信号CL0,CLnを出力する。これに伴いゲートトランジスタGT0,GT2nがオンし、入力されたアドレス信号に従う列選択(コラム選択)を実行することができる。本例においては、n+1ビットの並列なデータ書込およびデータ読出が可能な構成が示されている。
なお、本例においてはメインビット線MBL0,MBLnを例に挙げて説明しているがこれに限られず他のメインビット線等についても同様である。またサブビット線の本数も本例においては2本設けられている場合について説明するが、さらに複数本のサブビット線SBLとメインビット線MBLが電気的に結合される構成とすることも可能である。
なお、ここでは、メモリマット5Aの構成について説明したが、メモリマット5Bについても同様である。
図3は、本発明の実施の形態に従う制御部50を説明する概略ブロック図である。
図3を参照して、本発明の実施の形態に従う制御部50は、コマンド制御部100と、書込バッファ102,103と、ベリファイ回路104,105とを含む。なお、コマンド制御部100は、メモリマット30A,30Bにそれぞれ対応して設けられたライトドライバ25A,25Bの少なくとも一方を制御して、選択された所定領域に含まれるメモリセルに対するプログラムパルスを印加するデータ書込およびベリファイ書込を指示する機能を有する。
コマンド制御部100は、外部からのコマンドCMDの入力に応じて内部回路に対して制御信号を出力する。たとえば、本発明の実施の形態に従うデータ書込シーケンスを実行する場合、データ書込およびベリファイ書込を指示するためにメモリマット5Aに対応して設けられたライトドライバ帯25Aを活性化させる活性化信号WDEAを出力する。また、データ書込およびベリファイ書込を指示するためにメモリマット5Bに対応して設けられるライトドライバ帯25Bを活性化させる活性化信号WDEBを出力する。そして、データ書込およびベリファイ書込後のデータ読出時には、メモリマット5Aに対応して設けられるセンスアンプ帯30Aを活性化させる活性化信号SAEAを出力する。また、データ書込およびベリファイ書込後のデータ読出時には、メモリマット5Bに対応して設けられるセンスアンプ帯30Bを活性化させる活性化信号SAEBを出力する。
また、コマンド制御部100は、入力される書込データWDTをラッチするラッチ機能を有し、所定のタイミングでI/Oバッファ35から入力されたデータWDTの一部をメモリマット30Aに対する書込データWDTAとして書込バッファ102に出力するとともに、I/Oバッファ35からのデータWDTの残りの一部をメモリマット30Bに対する書込データWDTBとして書込バッファ103に出力する。
書込バッファ102は、コマンド制御部100を介して入力される書込データWDTAの入力を受けてバッファ処理してデータラッチ回路40Aへ出力する。
また、書込バッファ103は、コマンド制御部100を介して入力される書込データWDTBの入力を受けてバッファ処理してデータラッチ回路40Bへ出力する。
ベリファイ回路104は、データ書込およびベリファイ書込後のデータ読出時にメモリマット5Aから読出された読出データMDTA(読出データ群)の入力を受けて、コマンド制御部100から与えられる書込データWDTAと比較するベリファイ判定を実行し、ベリファイ判定結果をコマンド制御部100に出力する。
ベリファイ回路105は、データ書込およびベリファイ書込後のデータ読出時にメモリマット5Bから読出された読出データMDTB(読出データ群)の入力を受けて、コマンド制御部100から与えられる書込データWDTBと比較するベリファイ判定を実行し、ベリファイ判定結果をコマンド制御部100に出力する。
コマンド制御部100は、ベリファイ回路104,105からのベリファイ判定結果の入力を受けて、判定結果に基づいて、再びプログラムパルスを印加するベリファイ書込を実行するためにライトドライバ帯25A,25Bを活性化させる活性化信号WDEA,WDEBをそれぞれ出力する。
ライトドライバ帯25A,25Bは、書込制御信号WDEA,WDEBのそれぞれの入力を受けて活性化されてデータラッチ回路40A,40Bに格納されているデータに基づくプログラムパルスをデータ書込対象ビットであるメモリセルトランジスタに印加する。
次に、本発明の実施の形態に従う不揮発性半導体記憶装置のデータ書込シーケンスについて説明する。
図4は、本発明の実施の形態1に従う不揮発性半導体記憶装置のデータ書込シーケンスを説明するフローチャートである。
図4を参照して、本発明の実施の形態に従うデータ書込シーケンスではメモリアレイを複数のメモリマットに分割したマット単位でメモリセルに対するデータ記憶が実行される。また、本発明の実施の形態に従うデータ書込シーケンスでは、入力されたアドレス信号に対して、複数のメモリマットのそれぞれに対して同一アドレスで選択動作が実行されるものとする。
まず、データ書込シーケンスが開始される(ステップS0)と、まず、メモリマット5Aに対応するデータラッチ回路40Aに書込データWDTAがラッチされる(ステップS1)。すなわち、コマンド制御部100は、書込データWDTAを書込バッファ102に出力する。そして、書込バッファ102からデータラッチ回路40Aに対してデータ書込のための書込データWDTAが出力され、データラッチ回路40Aにおいて保持されるものとする。
次に、メモリマット5Aに対してプログラムパルスを印加する(ステップS2)。ここで、入力されたアドレス信号に従ってメモリマット5Aのロウデコーダ10による行選択およびコラムデコーダ15による列選択が実行されているものとする。コマンド制御部100は、ライトドライバ帯25Aに対して活性化信号WDEAを出力する。これに応答して、ライトドライバ帯25Aは、データラッチ回路40Aにラッチされた書込データWDTAに応じて選択ゲート20Aを介してロウデコーダ10によって選択されたメモリマット5Aの選択行に対して並列なデータ書込を実行する。なお、本発明の実施の形態に従うデータ書込シーケンスでは、入力されたアドレス信号に対して、複数のメモリマットのそれぞれに対して同一アドレスで選択動作が実行されるためメモリマット5Bについても、メモリマット5Aと同様にロウデコーダ10による行選択およびコラムデコーダ15による列選択が実行されているが、メモリマット5Bに対してデータ書込は並列に実行しない。
そして、次にメモリマット5Aのデータ書込対象ビットであるメモリセルに対してデータ読出を実行する(ステップS3)。すなわち、メモリマット5Aに対してデータ読出およびベリファイ判定を実行するベリファイ動作を実行する。コマンド制御部100は、センスアンプ帯30Aに対して活性化信号SAEAを出力する。これに応答して、センスアンプ帯30Aは、データ書込対象ビットであるメモリセルに対して選択ゲート20Aを介して並列なデータ読出を実行する。センスアンプ帯30Aでデータ読出を実行したデータは読出データMDTAとしてベリファイ回路104に入力される。
そして、次にメモリマット5Aにおいて、ベリファイ判定を実行し、ベリファイ判定がOKかどうか(ベリファイがパス(完了)かどうか)を判定する(ステップS4)。
ステップS4において、メモリマット5Aのベリファイ判定がOKであるならば次のステップS5に進み、ベリファイ判定がNGである場合にはステップS2に戻る。
ここで、メモリマット5Aのベリファイ判定がOKかどうかはセンスアンプ帯30Aから出力された読出データMDTAの入力をベリファイ回路104が受けて、コマンド制御部100からの書込データWDTAとの比較に基づいて一致するか否かに基づいて判断される。一致すれば、データ書込対象ビットであるメモリセルに対して所望のデータ書込が完了したとしてベリファイ判定がOKとなり、不一致であればNGとなる。
このステップS4において、メモリマット5Aのデータ書込対象ビットである少なくとも1つのメモリセルに対してベリファイ判定がNGである場合には、ステップS2に戻って再び、上述したプログラムパルスを印加するベリファイ書込を実行する。具体的には、コマンド制御部100は、ベリファイ回路104からのベリファイ判定(ベリファイ結果)に基づいてベリファイ書込を実行するためにライトドライバ帯25Aに活性化信号WDEAを出力する。
そして、最終的にメモリマット5Aのデータ書込対象ビットである全てのメモリセルに対してベリファイ判定がOKになるまでこのステップS2〜ステップS4が繰り返され、ベリファイ完了後、次のステップS5に進む。
次に、ステップS5においてメモリマット5Bに対応するデータラッチ回路40Bに書込データWDTBがラッチされる。すなわち、コマンド制御部100は、書込データWDTBを書込バッファ103に出力する。そして、書込バッファ103からデータラッチ回路40Bに対してデータ書込のための書込データWDTBが出力され、データラッチ回路40Bにおいて保持されるものとする。なお、本例においては、ステップS4の後にデータラッチ回路40Bに対して、書込バッファ103からデータ書込のための書込データWDTBを出力してラッチさせる方式について説明したが、特にこの順番(タイミング)に限られず、メモリマット5Bに対してプログラムパルスを印加するステップS6よりも前であればいつでも良い。例えば、ステップS1の後に、ステップS5の処理を実行することも可能である。あるいはステップS1よりも前にステップS5を処理することも可能である。また、本例においては、それぞれ異なるタイミングでデータラッチ回路40A,40Bに書込バッファ102,103から書込データWDTA,WDTBを出力する方式について説明しているが、同じタイミングでデータラッチ回路40A,40Bに書込データWDTA,WDTBを出力する方式とすることも可能である。
次に、メモリマット5Bに対してプログラムパルスを印加する(ステップS6)。なお、上述したように入力されたアドレス信号に従ってメモリマット5Bのロウデコーダ10による行選択およびコラムデコーダ15による列選択が実行されている。コマンド制御部100は、ライトドライバ帯25Bに対して活性化信号WDEBを出力する。これに応答して、ライトドライバ帯25Bは、データラッチ回路40Bにラッチされた書込データWDTBに応じて選択ゲート20Bを介してロウデコーダ10によって選択されたメモリマット5Bの選択行に対して並列なデータ書込を実行する。
そして、次にメモリマット5Bのデータ書込対象ビットであるメモリセルに対してデータ読出を実行する(ステップS7)。すなわち、メモリマット5Bに対してデータ読出およびベリファイ判定を実行するベリファイ動作を実行する。コマンド制御部100は、センスアンプ帯30Bに対して活性化信号SAEBを出力する。これに応答して、センスアンプ帯30Bは、データ書込対象ビットであるメモリセルに対して選択ゲート20Bを介して並列なデータ読出を実行する。センスアンプ帯30Bでデータ読出を実行したデータは読出データMDTBとしてベリファイ回路105に入力される。
そして、次にメモリマット5Bにおいて、ベリファイ判定を実行し、ベリファイ判定がOKかどうか(ベリファイがパス(完了)かどうか)を判定する(ステップS8)。
ステップS8において、メモリマット5Bのベリファイ判定がOKであるならば次のステップS9に進みデータ書込シーケンスは終了(完了)する。一方、ステップS8において、ベリファイ判定がNGである場合にはステップS6に戻る。
ここで、メモリマット5Bのベリファイ判定がOKかどうかはセンスアンプ帯30Bから出力された読出データMDTBの入力をベリファイ回路105が受けて、コマンド制御部100からの書込データWDTBとの比較に基づいて一致するか否かに基づいて判断される。一致すれば、データ書込対象ビットであるメモリセルに対して所望のデータ書込が完了したとしてベリファイ判定がOKとなり、不一致であればNGとなる。
このステップS8において、メモリマット5Bのデータ書込対象ビットである少なくとも1つのメモリセルに対してベリファイ判定がNGである場合には、ステップS6に戻って再び、上述したプログラムパルスを印加するベリファイ書込を実行する。具体的には、コマンド制御部100は、ベリファイ回路105からのベリファイ判定(ベリファイ結果)に基づいてベリファイ書込を実行するためにライトドライバ帯25Bに活性化信号WEEBを出力する。
そして、最終的にメモリマット5Bのデータ書込対象ビットである全てのメモリセルに対してベリファイ判定がOKになるまでこのステップS6〜ステップS8を繰り返され、ベリファイ完了後、ステップS9に進む。
したがって、本発明の実施の形態1に従うデータ書込シーケンスは、メモリマット5Aのメモリセルのデータ記憶の完了後にメモリマット5Bのメモリセルのデータ記憶を実行する方式である。すなわち、メモリアレイを分割した複数のメモリマットが存在する場合にそれぞれのメモリマットのメモリセルのデータ記憶を順番に実行する方式である。
すなわち、メモリアレイを複数のメモリマットに分割して、それぞれのメモリマットでデータ記憶を実行するため、データ書込対象ビット数を少なくして、しきい値電圧Vthの分布の広がりを抑制することが可能である。
また、メモリマット全体に一度にデータ書込等を実行する方式ではないため、一度に流れる電流量(書込電流量)が過度に大きくなることがなくチャージポンプの供給能力を大きくする必要もなくレイアウト面積の増大を抑制することができる。
また、ノイズの観点においてもメモリマット全体に一度にデータ書込等を実行する方式では無いため、寄生抵抗による電圧降下や、寄生容量によるカップリングノイズといったノイズを抑制することができる。
すなわち、書込電流量を抑制することにより低ノイズ化を実現することが可能である。
図5は、本発明の実施の形態1に従うデータ書込シーケンスによるメモリセルのしきい値電圧Vthの分布を説明する図である。
図5に示されるように、それぞれのメモリマットにおいてベリファイ動作を実行しデータ書込等をそれぞれメモリマット毎に行なったため、しきい値電圧Vthの分布の広がりとしてはデータ書込対象ビットがメモリアレイ全体のデータ書込対象ビットに比較して半分であるためしきい値電圧Vth分布は従来の方式に比べて広がらず、しきい値電圧の分布幅を狭帯化することが可能である。
(実施の形態2)
図6は、本発明の実施の形態2に従うデータ書込シーケンスを説明するフローチャート図である。
図6を参照して、本発明の実施の形態2に従うデータ書込シーケンスが開始される(ステップS10)と、まず、上述したようにメモリマット5Aに対応するデータラッチ回路40Aに書込データWDTAがラッチされる(ステップS11)。すなわち、コマンド制御部100は、書込データWDTAを書込バッファ102に出力する。そして、書込バッファ102からデータラッチ回路40Aに対してデータ書込のための書込データWDTAが出力され、データラッチ回路40Aにおいて保持されるものとする。
次に、メモリマット5Aに対してプログラムパルスを印加する(ステップS12)。ここで、入力されたアドレス信号に従ってメモリマット5Aのロウデコーダ10による行選択およびコラムデコーダ15による列選択が実行されているものとする。コマンド制御部100は、ライトドライバ帯25Aに対して活性化信号WDEAを出力する。これに応答して、ライトドライバ帯25Aは、データラッチ回路40Aにラッチされた書込データに応じて選択ゲート20Aを介してメモリマット5Aのロウデコーダ10によって選択された選択行に対して並列なデータ書込を実行する。なお、上述したように本発明の実施の形態に従うデータ書込シーケンスでは、入力されたアドレス信号に対して、複数のメモリマットのそれぞれに対して同一アドレスで選択動作が実行されるためメモリマット5Bについても、メモリマット5Aと同様にロウデコーダ10による行選択およびコラムデコーダ15による列選択が実行されているが、メモリマット5Bに対してデータ書込は並列に実行しない。
そして、次にメモリマット5Bに対応するデータラッチ回路40Bに書込データWDTBがラッチされているか否かを判定する(ステップS13)。
ステップS13において、メモリマット5Bに対応するデータラッチ回路40Bに書込データWDTBがラッチされている(データラッチ済)場合にはステップS15に進む。
一方、ステップS13において、メモリマット5Bに対応するデータラッチ回路40Bに書込データWDTBがラッチされていない場合には、メモリマット5Bに対応するデータラッチ回路40Bに書込データWDTBをラッチする(ステップS14)。すなわち、コマンド制御部100は、書込データWDTBを書込バッファ103に出力する。そして、書込バッファ103からデータラッチ回路40Bに対してデータ書込のための書込データWDTBが出力され、データラッチ回路40Bにおいて保持されるものとする。なお、本例においては、ステップS12の後にステップS13において、データラッチ回路40Bに書込データWDTBがラッチされているかどうかを判定して、ステップS14においてデータラッチ回路40Bに対して、書込バッファ103からデータ書込のための書込データWDTBを出力してラッチさせる方式について説明したが、特にこの順番(タイミング)に限られず、メモリマット5Bに対してプログラムパルスを印加するステップS15よりも前であればいつでも良い。例えば、ステップS11の後に、ステップS14の処理を実行することも可能である。あるいはステップS11よりも前にステップS14を処理することも可能である。なお、この場合には、ステップS13において判定する処理は不要である。また、本例においては、それぞれ異なるタイミングでデータラッチ回路40A,40Bに書込バッファ102,103から書込データWDTA,WDTBを出力する方式について説明しているが、同じタイミングでデータラッチ回路40A,40Bに書込データWDTA,WDTBを出力する方式とすることも可能である。
次に、メモリマット5Bに対してプログラムパルスを印加する(ステップS15)。なお、上述したように入力されたアドレス信号に従ってメモリマット5Bのロウデコーダ10による行選択およびコラムデコーダ15による列選択が実行されている。コマンド制御部100は、ライトドライバ帯25Bに対して活性化信号WDEBを出力する。これに応答して、ライトドライバ帯25Bは、データラッチ回路40Bにラッチされた書込データWDTBに応じて選択ゲート20Bを介してロウデコーダ10によって選択されたメモリマット5Bの選択行に対して並列なデータ書込を実行する。
そして、次にメモリマット5A,5Bのデータ書込対象ビットであるメモリセルに対してデータ読出を実行する(ステップS16)。すなわち、メモリマット5A,5Bに対してデータ読出およびベリファイ判定を実行するベリファイ動作を実行する。コマンド制御部100は、センスアンプ帯30A,30Bに対してそれぞれ活性化信号SAEA,SAEBを出力する。これに応答して、センスアンプ帯30A,30Bは、データ書込対象ビットであるメモリセルに対して選択ゲート20A,20Bを介して並列なデータ読出を実行する。センスアンプ帯30A,30Bでデータ読出を実行したデータは読出データMDTA,MDTBとしてベリファイ回路104,105にそれぞれ入力される。
そして、次にメモリマット5A,5Bにおいて、ベリファイ判定を実行し、ベリファイ判定がOKかどうか(ベリファイがパスかどうか)を判定する(ステップS17)。
ステップS17において、メモリマット5A,5Bのベリファイ判定がOKであるならば次のステップS18に進み、データ書込シーケンスは終了(完了)する。一方、ステップS17において、ベリファイ判定がNGである場合には、ステップS12に戻る。
ここで、メモリマット5A,5Bのベリファイ判定がOKかどうかはセンスアンプ帯30A,30Bからそれぞれ出力された読出データMDTA,MDTBの入力をベリファイ回路104,105が受けて、コマンド制御部100からそれぞれ与えられた書込データWDTA,WDTBとの比較に基づいて一致するか否かに基づいて判断される。一致すれば、データ書込対象ビットであるメモリセルに対して所望のデータ書込が完了したとしてベリファイ判定がOKとなり、不一致であればNGとなる。
このステップS17において、メモリマット5A,5Bのデータ書込対象ビットである少なくとも1つのメモリセルに対してベリファイ判定がNGである場合には、ステップS12に戻って再び、上述したプログラムパルスをメモリマット5A,5Bにそれぞれ印加するベリファイ書込を実行する。具体的には、まず、ステップS12において、コマンド制御部100は、ベリファイ回路104からのベリファイ判定(ベリファイ結果)に基づいてベリファイ書込を実行するためにライトドライバ帯25Aに活性化信号WDEAを出力する。
そして、このステップS12〜ステップS17を繰返すことにより、最終的にメモリマット5A,5Bのデータ書込対象ビットである全てのメモリセルに対してベリファイ判定がOKになって、ステップS18に進む。
なお、ステップS17において、ベリファイ判定がNGであると判定されて、再びプログラムパルスをメモリマット5A,5Bに印加する場合には、ステップS13において、メモリマット5Bに対応するデータラッチ回路40Bに既に書込データがラッチされているためステップS15に進む。
したがって、本発明の実施の形態2に従うデータ書込シーケンスは、メモリマット5Aに対してプログラムパルスを印加した後、メモリマット5Bに対してプログラムパルスを印加する点で順番にメモリマット5A,5Bに対してプログラムパルスを印加する方式である。すなわち、データ書込およびベリファイ書込はメモリマット5A,5Bにおいてそれぞれ互いに異なるタイミングで実行される。
一方、データ読出およびベリファイ判定についてはメモリマット5A,5Bに対して並列に実行する。
したがって、本発明の実施の形態2に従うデータ書込シーケンスは、順番にメモリマット5A,メモリマット5Bに対してプログラムパルスを印加するデータ書込およびベリファイ書込を実行することにより並列にデータ書込およびベリファイ書込を実行する場合に比べてプログラムパルス印加に伴なう消費電流を少なくすることによりノイズの耐性を向上させることができる。また、メモリマット5A,5Bに対してデータ読出およびベリファイ判定を並列に実行するためデータ書込対象ビットがすべてベリファイがパスするまでメモリマット5A,メモリマット5Bに対してプログラムパルスが印加されることになってしきい値Vth分布については実施の形態1よりも広がる傾向になるが上述したようにデータ読出およびベリファイ判定を並列に実行することによって高速なデータ書込を実行することが可能である。
また、実施の形態1で説明したようにメモリマット全体に一度にデータ記憶を実行する方式ではないため、一度に流れる電流量(書込電流量)を抑制することができチャージポンプの供給能力を大きくする必要はなくレイアウト面積も縮小することができる。
また、ノイズの観点においても実施の形態1で説明したようにメモリマット全体に一度にデータ記憶を実行する方式では無いため、寄生抵抗による電圧降下や、寄生容量によるカップリングノイズといったノイズを抑制することができる。
(実施の形態3)
図7は、本発明の実施の形態3に従う不揮発性半導体記憶装置のデータ書込シーケンスを説明するフローチャートである。
図7を参照して、本発明の実施の形態3に従うデータ書込シーケンスが開始される(ステップS20)と、まず上述したようにメモリマット5Aに対応するデータラッチ回路40Aに書込データWDTAがラッチされる(ステップS21)。すなわち、コマンド制御部100は、書込データWDTAを書込バッファ102に出力する。そして、書込バッファ102からデータラッチ回路40Aに対してデータ書込のための書込データWDTAが出力され、データラッチ回路40Aにおいて保持されるものとする。
次に、メモリマット5Aに対してプログラムパルスを印加する(ステップS22)。ここで、入力されたアドレス信号に従ってメモリマット5Aのロウデコーダ10による行選択およびコラムデコーダ15による列選択が実行されているものとする。コマンド制御部100は、ライトドライバ帯25Aに対して活性化信号WDEAを出力する。これに応答して、ライトドライバ帯25Aは、データラッチ回路40Aにラッチされた書込データに応じて選択ゲート20Aを介してメモリマット5Aのロウデコーダ10によって選択された選択行に対して並列なデータ書込を実行する。なお、上述したように本発明の実施の形態に従うデータ書込シーケンスでは、入力されたアドレス信号に対して、複数のメモリマットのそれぞれに対して同一アドレスで選択動作が実行されるためメモリマット5Bについても、メモリマット5Aと同様にロウデコーダ10による行選択およびコラムデコーダ15による列選択が実行されているが、メモリマット5Bに対してデータ書込は並列に実行しない。
そして、次にメモリマット5Bに対応するデータラッチ回路40Bに書込データWDTBがラッチされているか否かを判定する(ステップS23)。
ステップS23において、メモリマット5Bに対応するデータラッチ回路40Bに書込データWDTBがラッチされている(データラッチ済)場合にはステップS25に進む。
一方、ステップS23において、メモリマット5Bに対応するデータラッチ回路40Bに書込データWDTBがラッチされていない場合には、メモリマット5Bに対応するデータラッチ回路40Bに書込データWDTBをラッチする(ステップS24)。すなわち、コマンド制御部100は、書込データWDTBを書込バッファ103に出力する。そして、書込バッファ103からデータラッチ回路40Bに対してデータ書込のための書込データWDTBが出力され、データラッチ回路40Bにおいて保持されるものとする。なお、本例においては、ステップS22の後にステップS23において、データラッチ回路40Bに書込データWDTBがラッチされているかどうかを判定して、ステップS24においてデータラッチ回路40Bに対して、書込バッファ103からデータ書込のための書込データWDTBを出力してラッチさせる方式について説明したが、特にこの順番(タイミング)に限られず、メモリマット5Bに対してプログラムパルスを印加するステップS25よりも前であればいつでも良い。例えば、ステップS21の後に、ステップS24の処理を実行することも可能である。あるいはステップS21よりも前にステップS24を処理することも可能である。なお、この場合には、ステップS23において判定する処理は不要である。また、本例においては、それぞれ異なるタイミングでデータラッチ回路40A,40Bに書込バッファ102,103から書込データWDTA,WDTBを出力する方式について説明しているが、同じタイミングでデータラッチ回路40A,40Bに書込データWDTA,WDTBを出力する方式とすることも可能である。
次に、メモリマット5Bに対してプログラムパルスを印加する(ステップS25)。なお、上述したように入力されたアドレス信号に従ってメモリマット5Bのロウデコーダ10による行選択およびコラムデコーダ15による列選択が実行されている。コマンド制御部100は、ライトドライバ帯25Bに対して活性化信号WDEBを出力する。これに応答して、ライトドライバ帯25Bは、データラッチ回路40Bにラッチされた書込データWDTBに応じて選択ゲート20Bを介してロウデコーダ10によって選択されたメモリマット5Bの選択行に対して並列なデータ書込を実行する。
そして、次にメモリマット5A,5Bのデータ書込対象ビットであるメモリセルに対してデータ読出を実行する(ステップS26)。すなわち、メモリマット5A,5Bに対してデータ読出およびベリファイ判定を実行するベリファイ動作を実行する。コマンド制御部100は、センスアンプ帯30A,30Bに対してそれぞれ活性化信号SAEA,SAEBを出力する。これに応答して、センスアンプ帯30A,30Bは、データ書込対象ビットであるメモリセルに対して選択ゲート20A,20Bを介して並列なデータ読出を実行する。センスアンプ帯30A,30Bでデータ読出を実行したデータは読出データMDTA,MDTBとしてベリファイ回路104,105にそれぞれ入力される。
そして、次にメモリマット5A,5Bにおいて、ベリファイ判定を実行し、ベリファイ判定がOKかどうか(ベリファイがパスかどうか)を判定する(ステップS27)。
ステップS27において、メモリマット5A,5Bのベリファイ判定がOKであるならば次のステップS28に進み、データ書込シーケンスは終了(完了)する。一方、ステップS27において、ベリファイ判定がNGである場合には、ステップS29に進む。ここで、メモリマット5A,5Bのベリファイ判定がOKかどうかはセンスアンプ帯30A,30Bからそれぞれ出力された読出データMDTA,MDTBの入力をベリファイ回路104,105が受けて、コマンド制御部100からそれぞれ与えられた書込データWDTA,WDTBとの比較に基づいて一致するか否かに基づいて判断される。一致すれば、データ書込対象ビットであるメモリセルに対して所望のデータ書込が完了したとしてベリファイ判定がOKとなり、不一致であればNGとなる。
そして、メモリマット5A,5Bに対してプログラムパルスの印加が所定回数以上であるかどうかを判定する(ステップS29)。
ステップS29において、メモリマット5A,5Bに対してプログラムパルスの印加が所定回数以上である場合には、次のステップS30に進む。
一方、ステップS29において、プログラムパルスの印加が所定回数未満である場合には、ステップS22に戻って再び、上述したプログラムパルスをメモリマット5A,5Bにそれぞれ印加するベリファイ書込を実行する。具体的には、ステップS22において、コマンド制御部100は、ベリファイ回路104からのベリファイ判定(ベリファイ結果)に基づいてベリファイ書込を実行するためにライトドライバ帯25Aに活性化信号WDEAを出力する。
そして、このステップS22〜ステップS29を繰返すことにより、メモリマット5A,5Bに対してプログラムパルスの印加が所定回数以上となった場合に、ステップS30に進む。
このステップS22〜ステップS27までの動作については実施の形態2で説明したデータ書込シーケンスと同様でありデータ書込およびベリファイ書込のプログラムパルス印加についてはメモリマット5A,5Bでそれぞれ順番にプログラムパルスを印加し、データ読出およびベリファイ判定についてはメモリマット5A,5Bで並列に実行する方式である。
そして所定回数以上、メモリマット5A,5Bに対してプログラムパルスが印加された場合には、メモリマット5Aに対してプログラムパルスを印加するベリファイ書込を実行する(ステップS30)。具体的には、コマンド制御部100は、ベリファイ回路104からのベリファイ判定(ベリファイ結果)に基づいてベリファイ書込を実行するためにライトドライバ帯25Aに活性化信号WDEAを出力する。
そして、次にメモリマット5Aのデータ書込対象ビットであるメモリセルに対して上述したデータ読出を実行する(ステップS31)。すなわち、メモリマット5Aに対してデータ読出およびベリファイ判定を実行するベリファイ動作を実行する。
そして、次に、メモリマット5Aの上述したベリファイ判定を実行し(ステップS31)し、ベリファイ判定がOKかどうか(ベリファイがパスかどうか)を判定する(ステップS32)。
ステップS32において、メモリマット5Aのベリファイ判定がOKであるならば次のステップS33に進み、ベリファイ判定がNGである場合にはステップS30に戻る。
このステップS32において、上述したようにメモリマット5Aのデータ書込対象ビットである少なくとも1つのメモリセルに対してベリファイ判定がNGである場合には、ステップS30に戻って再び、上述したプログラムパルスを印加するベリファイ書込を実行する。
そして、このステップS30〜ステップS32を繰返すことにより、最終的にメモリマット5Aのデータ書込対象ビットである全てのメモリセルに対してベリファイ判定がOKになってから、次のステップS33に進む。
次に、ステップS33において、上述したようにメモリマット5Bに対してプログラムパルスを印加するベリファイ書込を実行する(ステップS33)。具体的には、コマンド制御部100は、ベリファイ回路105からのベリファイ判定(ベリファイ結果)に基づいてベリファイ書込を実行するためにライトドライバ帯25Bに活性化信号WDEBを出力する。
そして、次にメモリマット5Bのデータ書込対象ビットであるメモリセルに対して上述したのと同様にデータ読出を実行する(ステップS34)。すなわち、メモリマット5Bに対してデータ読出およびベリファイ判定を実行するベリファイ動作を実行する。
そして、次にメモリマット5Bにおいて、上述したのと同様にベリファイ判定を実行し、ベリファイ判定がOKかどうか(ベリファイがパスかどうか)を判定する(ステップS35)。
ステップS35において、メモリマット5Bのベリファイ判定がOKである場合には次のステップS36に進みデータ書込シーケンスは終了(完了)する。
一方、ステップS35において、ベリファイ判定がNGである場合には、ステップS33に戻る。
このステップS35において、メモリマット5Bのデータ書込対象ビットである少なくとも1つのメモリセルに対してベリファイ判定がNGである場合には、ステップS33に戻って再び、上述したプログラムパルスを印加するベリファイ書込を実行する。そして、このステップS33〜ステップS35を繰返すことにより、最終的にメモリマット5Bのデータ書込対象ビットである全てのメモリセルに対してベリファイ判定がOKになって、ステップS36に進む。
このステップS30〜ステップS35は実施の形態1で説明したデータ書込シーケンスと同様でありメモリマット5Aのデータ記憶の完了後にメモリマット5Bのデータ記憶を実行する方式である。すなわち、メモリアレイを分割した複数のメモリマットが存在する場合にそれぞれのメモリマットのデータ記憶を順番に実行する方式である。
すなわち本発明の実施の形態3に従うデータ書込シーケンスは、前半段階においては、実施の形態2で説明したように高速なデータ書込シーケンスを実行し、プログラムパルスの印加が所定回数以上となった後半段階においては、実施の形態1で説明したデータ書込シーケンスすなわちそれぞれのメモリマットにおけるデータ記憶を順番に実行する方式となっている。
したがって、本発明の実施の形態3に従うデータ書込シーケンスは、複数回のプログラムパルスの再印加が必要である可能性の高い前半段階においては、データ読出およびベリファイ判定を並列に実行する実施の形態2に従う高速なデータ書込シーケンスを実行する。そして、後半段階においては、ある程度しきい値電圧がシフトした各メモリマットのメモリセルに対して順番にメモリマット毎にデータ読出およびベリファイ判定を実行することにより、各メモリマットのデータ書込対象ビットのしきい値電圧Vth分布の広がりを抑制することが可能である。
実施の形態1で説明したようにしきい値電圧Vth分布の広がりを抑制しつつ、高速なデータ書込を実行することができる。
また、実施の形態1で説明したようにメモリマット全体に一度にデータ書込を実行する方式ではないため、一度に流れる電流量(書込電流量)を抑制することができチャージポンプの供給能力を大きくする必要はなくレイアウト面積も縮小することができる。
また、ノイズの観点においても実施の形態1で説明したようにメモリマット全体に一度にデータ記憶を実行する方式では無いため、寄生抵抗による電圧降下や、寄生容量によるカップリングノイズといったノイズを抑制することができる。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 不揮発性半導体記憶装置、5A,5B メモリマット、10 ロウデコーダ、15 コラムデコーダ、20 アドレスバッファ、25A,25B ライトドライバ帯、30A,30B センスアンプ帯、35 I/Oバッファ、40A,40B データラッチ回路、50 制御部、100 コマンド制御部、102,103 書込バッファ、104,
105 ベリファイ回路。