JP2006309829A - 不揮発性半導体記憶装置及びその制御方法 - Google Patents
不揮発性半導体記憶装置及びその制御方法 Download PDFInfo
- Publication number
- JP2006309829A JP2006309829A JP2005128880A JP2005128880A JP2006309829A JP 2006309829 A JP2006309829 A JP 2006309829A JP 2005128880 A JP2005128880 A JP 2005128880A JP 2005128880 A JP2005128880 A JP 2005128880A JP 2006309829 A JP2006309829 A JP 2006309829A
- Authority
- JP
- Japan
- Prior art keywords
- address
- flag
- write
- data
- memory device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 239000004065 semiconductor Substances 0.000 title claims abstract description 72
- 238000000034 method Methods 0.000 title claims description 93
- 238000012795 verification Methods 0.000 claims abstract description 46
- 238000012545 processing Methods 0.000 claims description 60
- 239000000872 buffer Substances 0.000 claims description 44
- 238000004364 calculation method Methods 0.000 description 97
- 238000010586 diagram Methods 0.000 description 10
- 230000000694 effects Effects 0.000 description 6
- 230000007423 decrease Effects 0.000 description 5
- 238000003491 array Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/344—Arrangements for verifying correct erasure or for detecting overerased cells
- G11C16/3445—Circuits or methods to verify correct erasure of nonvolatile memory cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
- G11C16/3459—Circuits or methods to verify correct programming of nonvolatile memory cells
Landscapes
- Read Only Memory (AREA)
Abstract
【課題】
書き込みや消去の処理効率を向上し、書き込みや消去の処理時間を短縮できる不揮発性半導体記憶装置及びその制御方法を提供すること。
【解決手段】
本発明にかかる不揮発性半導体記憶装置は、メモリセルアレイ7と、複数のデータの各アドレスとともに、書き込みの成功/失敗を示す書き込みフラグを格納するフラグ情報格納部3と、書き込みが失敗しているアドレスを選択する内部アドレス格納部10と、データの書き込みを行う書き込み回路6と、データの書き込みの成功/失敗を確認するベリファイ処理を行う比較回路9と、ベリファイの結果に応じて、書き込みフラグを更新するシーケンス制御部4と、を有するものである。
【選択図】 図6
書き込みや消去の処理効率を向上し、書き込みや消去の処理時間を短縮できる不揮発性半導体記憶装置及びその制御方法を提供すること。
【解決手段】
本発明にかかる不揮発性半導体記憶装置は、メモリセルアレイ7と、複数のデータの各アドレスとともに、書き込みの成功/失敗を示す書き込みフラグを格納するフラグ情報格納部3と、書き込みが失敗しているアドレスを選択する内部アドレス格納部10と、データの書き込みを行う書き込み回路6と、データの書き込みの成功/失敗を確認するベリファイ処理を行う比較回路9と、ベリファイの結果に応じて、書き込みフラグを更新するシーケンス制御部4と、を有するものである。
【選択図】 図6
Description
本発明は、不揮発性半導体記憶装置及びその制御方法に関し、特に、複数のメモリセル(データ)ごとに書き込みや消去を行う不揮発性半導体記憶装置及びその制御方法に関する。
電気的に消去可能であり、書き換え可能な不揮発性記憶装置として、EEPROM(Electrically Erasable Programmable ROM)が広く知られている。EEPROMの一つでありブロック単位に消去可能なフラッシュメモリは、近年、メモリ容量の大容量化が著しく、ディスク装置等の代替の記憶装置として注目されている。
このフラッシュメモリは、フローティングゲートとコントロールゲートを有するトランジスタにてメモリセルが構成されている。このメモリセルトランジスタに対して、電気的に書き込みを行うことでデータが記録される。また、メモリセルトランジスタに対して、電気的に消去を行うことでデータが消去される。
メモリセルトランジスタに対する電気的書き込みは、メモリセルトランジスタのコントロールゲートおよびドレインに対し、書き込みのための高電位を与えることにより、フローティングゲートに電子が注入され、メモリセルトランジスタの閾値を高くすることにより行われる。
例えば、図17のように、1回の電気的な書き込みにより、メモリセルトランジスタの閾値を2つのレベルに切り替え、1つのメモリセルトランジスタでデータの「0」と「1」を記憶するフラッシュメモリを二値品と呼んでいる。図18のように、複数回の電気的な書き込みにより、メモリセルトランジスタの閾値を複数のレベルに切り替え、1つのメモリセルトランジスタでデータの「0」、「1」、「2」、「3」等、複数のデータを記憶するフラッシュメモリを多値品と呼んでいる。多値品のフラッシュメモリを使用することにより、メモリ容量の大容量化を図ることができるが、書き込み回数が増加する。例えば、図18の例では、データ「3」の記憶状態からデータ「0」の記憶状態とするためには、3回の書き込みが必要である。
また、メモリセルトランジスタに書き込みを行った場合、メモリセルトランジスタの閾値が、目標としている値に達しているかを検証するため、ベリファイという読み出し動作を行っている。すなわち、データの書き込み動作は、電気的書き込みとベリファイ動作を自動的に繰り返すこと(自動書き込み)で実現され、かつ、対象となるすべてのメモリセル対して、その繰り返しの制御を行う装置が必要となっている。同様に、データの消去に関しても、対象となるすべてのメモリセルに対して、電気的消去とベリファイ動作を自動的に繰り返す(自動消去)制御装置を必要としている。
このように、フラッシュメモリのデータ記録/消去には、自動書き込み/自動消去といったシーケンス制御が必要であり、そのフローを工夫することで、いかに処理時間を短くできるかが、商品価値を決定する一要因となっている。
図19は、従来の不揮発性半導体記憶装置の構成を示している。図に示されるように、従来の不揮発性半導体記憶装置は、外部から入力される外部アドレスや外部データをラッチするバッファ901、一連の書き込みシーケンスを制御するシーケンス制御部904、メモリセルがアレイ状に配列されたメモリセルアレイ907、メモリセルアレイ907からデータを読み出す読み出し回路905、メモリセルアレイ907にデータを書き込む書き込み回路906、メモリセルアレイ907から読み出したデータと外部データとを比較する比較回路909を備えている。
図20のフローチャートは、従来の不揮発性半導体記憶装置における自動書き込み動作を示している。この自動書き込み動作は、シーケンス制御部904の制御によって実行されている。
まず、外部のバス等からコマンドとして書き込みを行いたい1つの外部アドレスと1つの外部データが入力され、バッファ901に格納される(S901)。次いで、シーケンス制御部904の制御により、読み出し回路905は、メモリセルアレイ907のうち、外部アドレスで特定されるメモリセルの読み出し処理を行う(S902)。次いで、比較回路909は、読み出したデータが、入力された外部データと一致するかどうか判定する(S903)。このS902とS903の処理がベリファイ処理である。
S903において、データが一致すると判定された場合、シーケンス制御部904は、この自動書き込み処理を終了する。S903において、データが不一致と判定された場合、シーケンス制御部904の制御により、書き込み回路906は、メモリセルアレイ907のうち、外部アドレスで特定されるメモリセルへ外部データの書き込み処理を行う(S904)。その後、さらにベリファイ処理(S902とS903)を行い、メモリセルのデータと外部データが一致するまで、書き込み処理とベリファイ処理を繰り返す。
尚、従来の不揮発性半導体記憶装置として特許文献1や2が知られている。特許文献1や2では、ブロックやセクタごとに消去の完了を示すフラグを設けている。
特開2002−366420号公報
特開平6−195989号公報
しかしながら、従来の不揮発性半導体装置は、1つのアドレスに対する書き込みや消去のたびに、外部からコマンド(1つのアドレスと1つのデータ)を入力するため、書き込みや消去の処理効率が悪く、書き込みや消去処理に時間がかかるという問題点があった。
図21は、従来の不揮発性記憶装置において、複数のデータを書き込む場合の動作を時系列に並べた図である。尚、この図は、1回の書き込みでベリファイが成功した場合の例である。
まず、1つ目のデータを書き込むために、T101において、1つのアドレスと1つのデータが入力され、T102において、書き込み前のベリファイ(プリベリファイ)が行われ、T103において、1つのアドレスのメモリセルに対し1つのデータが書き込まれ、T104において、書き込み後のベリファイ(ポストベリファイ)が行われる。これで1つ目のデータの書き込みが完了し、続いて、2つ目のデータを書き込むために、さらに、1つのアドレスと1つのデータが入力され、同様に書き込みが行われ、書き込むデータの数分、T101〜T104が繰り返される。
したがって、例えば、連続するアドレスに大量のデータを書き込むような場合など、1つのアドレスで他のアドレスを特定できるような場合でも、書き込むデータのアドレスごとに、毎回、アドレスとデータを入力しなければならないため、この入力処理の分、無駄な動作を行ってしまうことになる。
外部からのコマンドは、CPU等からバスを介して入力されるが、近年、CPUやバスの処理速度、転送速度の高速化、大容量化が進んでおり、連続した大量なデータが入力されることが多いため、アドレスごとの無駄な処理が、データの書き込みや消去処理の全体の効率や処理時間を大幅に悪化させてしまう。
本発明にかかる不揮発性半導体記憶装置は、複数のメモリセルからなる複数のセクタを備え、前記セクタを消去の最小単位とし、前記セクタ内の複数のアドレスに書き込むべきデータを一括して入力することができる不揮発性半導体記憶装置であって、前記複数のアドレスのそれぞれに対応するメモリセルの状態を格納するフラグ格納部を備え、前記フラグ格納部の情報に応じて選択されるべきアドレスを決定するアドレス設定回路を備えるものである。
この不揮発性半導体記憶装置によれば、複数のアドレス及びデータを一括で入力するため、複数のアドレスごとにコマンドを入力する必要がなくなる。したがって、書き込みや消去の処理効率を向上し、処理時間を短縮することができる。また、アドレスごとにフラグを設けることにより、セクタごとにフラグを設けた場合に比べて、より効率よくメモリセルの書き込みや消去を行うことができる。
本発明にかかる不揮発性半導体記憶装置は、複数のデータを含むデータブロックごとに書き込み処理又は消去処理を実行する不揮発性半導体記憶装置であって、複数の不揮発性メモリセルを含むメモリセルアレイと、前記データブロックに含まれる複数のデータの各アドレスとともに、前記アドレスごとにそれぞれ設けられ書き込み又は消去の成功/失敗を示すフラグを格納するフラグ格納部と、前記格納されたフラグに基づき、書き込み又は消去が失敗している前記アドレスを選択するアドレス選択部と、前記選択されたアドレスに位置する前記不揮発性メモリセルに対し、前記データの書き込み又は消去処理を行う書き込み又は消去部と、前記選択されたアドレスに位置する前記不揮発性メモリセルに対し、前記データの書き込み又は消去処理の成功/失敗を確認するベリファイ処理を行うベリファイ部と、前記ベリファイ処理の結果に応じて、前記フラグを更新するフラグ更新部と、を有するものである。
この不揮発性半導体記憶装置によれば、複数のデータごとに書き込みや消去を行うため、複数のアドレスごとにコマンドを入力する必要がなくなる。したがって、書き込みや消去の処理効率を向上し、処理時間を短縮することができる。また、書き込みや消去を行うアドレスごとにフラグを設けることにより、複数のデータ単位にフラグを設けた場合に比べて、より効率よく書き込みや消去を行うことができる。
本発明にかかる不揮発性半導体記憶装置の制御方法は、複数の不揮発性メモリセルを含むメモリセルアレイを有し、複数のデータを含むデータブロックごとに書き込み処理又は消去処理を実行する不揮発性半導体記憶装置の制御方法であって、前記データブロックに含まれる複数のデータの各アドレスとともに、前記アドレスごとにそれぞれ設けられ書き込み又は消去の成功/失敗を示すフラグを格納し、前記格納されたフラグに基づき、書き込み又は消去が失敗している前記アドレスを選択し、前記選択されたアドレスに位置する前記不揮発性メモリセルに対し、前記データの書き込み又は消去処理を行い、前記選択されたアドレスに位置する前記不揮発性メモリセルに対し、前記データの書き込み又は消去処理の成功/失敗を確認するベリファイ処理を行い、前記ベリファイ処理の結果に応じて、前記フラグを更新するものである。
この不揮発性半導体記憶装置の制御方法によれば、複数のデータごとに書き込みや消去を行うため、複数のアドレスごとにコマンドを入力する必要がなくなる。したがって、書き込みや消去の処理効率を向上し、処理時間を短縮することができる。また、書き込みや消去を行うアドレスごとにフラグを設けることにより、複数のデータ単位にフラグを設けた場合に比べて、より効率よく書き込みや消去を行うことができる。
本発明によれば、書き込みや消去の処理効率を向上し、書き込みや消去の処理時間を短縮できる不揮発性半導体記憶装置及びその制御方法を提供することができる。
発明の実施の形態1.
まず、本発明の実施の形態1にかかる不揮発性半導体記憶装置について説明する。本実施形態にかかる不揮発性半導体記憶装置は、連続したアドレスのデータを一括で入力するとともに、各アドレスごとに書き込み完了を示すフラグを設け、このフラグのそれぞれをカウンタにより順次選択し処理することを特徴としている。
まず、本発明の実施の形態1にかかる不揮発性半導体記憶装置について説明する。本実施形態にかかる不揮発性半導体記憶装置は、連続したアドレスのデータを一括で入力するとともに、各アドレスごとに書き込み完了を示すフラグを設け、このフラグのそれぞれをカウンタにより順次選択し処理することを特徴としている。
図1を用いて、本実施形態にかかる不揮発性半導体記憶装置の構成について説明する。この不揮発性半導体記憶装置は、例えば、フラッシュメモリとその制御部を含む半導体装置であり、書き込みを行いたい一連のデータを、一時的にバッファにためておき、そのデータについて順次書き込み処理を行う。
図1に示されるように、不揮発性半導体記憶装置は、バッファ1、内部アドレスカウンタ2、フラグ情報格納部3、シーケンス制御部4、読み出し回路5、書き込み回路6、メモリセルアレイ7、比較回路9を備えている。
バッファ1は、外部のバス等から与えられる外部アドレスと外部データとを一時的に格納する。外部アドレスと外部データは、書き込みを行いたいアドレスとデータであり、特に、本実施形態では、この外部データは、連続する複数のデータを含むデータブロックであり、外部アドレスは、この外部データのデータブロックの先頭アドレスである。
内部アドレスカウンタ2は、カウンタ値によって、メモリセルアレイ7の中から、書き込みや読み出しを行う内部アドレスを選択する。内部アドレスカウンタ2は、フラグ情報格納3の書き込みフラグに応じてメモリセルアレイ7へ与えるアドレスを決定するアドレス設定回路(アドレス選択部)20である。例えば、カウンタ値は、内部アドレス自身でもよいし、先頭アドレスからのオフセットでもよい。尚、内部アドレスとは、メモリセルアレイ7のメモリセルを特定するためのアドレスであり、外部から入力される外部アドレスと同一でもよいし、外部アドレスをメモリセルアレイ7への書き込み用に変換したアドレスでもよい。外部アドレスの一つは、常に、内部アドレスの一つに対応している。
フラグ情報格納部3は、バッファ1に格納した外部データのアドレスごと(内部アドレスごと)に、書き込みフラグを格納する。書き込みフラグは、メモリセルアレイ7のメモリセル(データ)のアドレスに対応して格納され、それぞれのメモリセル(データ)の状態を示している。この書き込みフラグは、各データの書き込みの成功/失敗、すなわち、データごとに書き込み完了かどうかを示すフラグである。書き込みフラグが設定(セット)されていれば、書き込み失敗、すなわち、書き込み対象であることを示す。また、書き込みフラグが未設定(リセット)であれば、書き込み成功、すなわち、書き込み対象ではないことを示している。
メモリセルアレイ7は、複数のメモリセルがアレイ状に配列されている。このメモリセルは、フラッシュメモリなどの不揮発性のメモリセルである。例えば、メモリセルアレイ7は、複数のメモリセルからなるセクタに区分され、このセクタを消去の最小単位としている。読み出し回路5は、メモリセルアレイ7のうち、内部アドレスカウンタ2で選択される内部アドレスのメモリセルからデータを読み出す。書き込み回路6は、メモリセルアレイ7のうち、内部アドレスカウンタ2で選択される内部アドレスのメモリセルに対し、バッファ1に格納された外部データを書き込む。すなわち、書き込み回路6は、メモリセルに対しデータの書き込み又は消去処理を行う書き込み又は消去部22である。比較回路9は、読み出し回路5がメモリセルアレイ7から読み出したデータと、バッファ1に格納された外部データとを比較する。すなわち、比較回路9は、データの書き込みや消去処理の成功/失敗を確認するベリファイ処理を行うベリファイ部23である。
シーケンス制御部4は、これらの各構成要素の動作を制御し、自動書き込み処理の一連のシーケンスを実現する。また、シーケンス制御部4は、比較回路9のベリファイ結果に応じて、書き込みフラグを更新するフラグ更新部21である。例えば、シーケンス制御部4は、フラグ情報格納部3の書き込みフラグに応じて読み出し回路5や書き込み回路6を動作させたり、比較回路9の比較結果に応じてフラグ情報格納部3の書き込みフラグを更新したり、内部アドレスカウンタ2のカウンタ値を更新したりする。
次に、図2を用いて、本実施形態にかかる不揮発性半導体記憶装置の自動書き込み処理の概略について説明する。図2は、データの書き込み動作の流れを時系列に並べた図である。尚、この図は、1回の書き込みでベリファイが成功した場合の例である。
まず、T1において、アドレスとデータが一括に入力、すなわち、複数のデータと先頭アドレスが入力されて、バッファ1に格納されるとともに、フラグ情報格納部3に各アドレスに対応した書き込みフラグがセットされる。
次いで、T2において、フラグ情報格納部3の書き込みフラグをチェックし、このフラグに応じて書き込み前のベリファイ(プリベリファイ)を行い、ベリファイの結果に応じて書き込みフラグの更新を行う。このベリファイは、書き込みフラグがセットされているアドレスの数分、繰り返し行われる。
次いで、T3において、フラグ情報格納部3の書き込みフラグをチェックし、このフラグに応じてメモリセルアレイ7のメモリセルへバッファ1のデータの書き込みを行う。この書き込みは、書き込みフラグがセットされているアドレスの数分、繰り返し行われる。
次いで、T4において、フラグ情報格納部3の書き込みフラグをチェックし、このフラグに応じて書き込み後のベリファイ(ポストベリファイ)を行い、ベリファイの結果に応じて書き込みフラグの更新を行う。このベリファイは、書き込みフラグがセットされているアドレスの数分、繰り返し行われる。さらに、ベリファイの後、書き込み失敗のアドレス(書き込みフラグがセットされたアドレス)が残っている場合、書き込みが全て成功となるまで、T3の書き込み処理とT4のベリファイ処理を繰り返し行う。
このように、本実施形態では、複数のデータとアドレスを一括で入力するため、図21の従来例のように、データごとにコマンド(アドレスとデータ)を入力する必要がなくなり、書き込み動作の処理時間を短縮することができる。
次に、図3のフローチャートを用いて、本実施形態にかかる不揮発性半導体記憶装置の自動書き込み処理について、さらに詳細に説明する。この自動書き込み処理は、シーケンス制御部4の制御によって実行されている。
まず、外部からコマンドとして、書き込みを行いたい外部アドレスと外部データが一括でバッファ1に入力される(S201)。このとき、上述のように連続する複数のデータとその先頭アドレスが入力される。
次いで、入力された外部データが、バッファ1の該当するアドレスに格納されるとともに、書き込みたいアドレス(内部アドレス)に対応した書き込みフラグをフラグ情報格納部3に格納する(S202)。このとき、外部アドレスと外部データが入力された直後(1回目のベリファイ時)は、まだ書き込みは行われていないため、フラグ情報格納部3の書き込みフラグは全てセットされる。
次いで、シーケンス制御部4は、内部アドレスカウンタ2のカウンタ値をリセットする(S203)。このとき、カウンタ値を「0」にすることで、内部アドレスカウンタ2がメモリセルの先頭アドレスを選択するようになる。
次いで、シーケンス制御部4は、内部アドレスカウンタ2により選択された内部アドレスの書き込みフラグがセットされているかどうか判定する(S204)。すなわち、フラグ情報格納部3から、選択された内部アドレスの書き込みフラグを参照し、この内部アドレスが、すでに書き込み成功しているかどうか判定する。
S204において、書き込みフラグがセットされていると判定された場合、その選択アドレスが書き込み対象であることを意味するため、シーケンス制御部4は、読み出し回路5を動作させ、メモリセルアレイ7のうち、内部アドレスカウンタ2により選択された内部アドレスのメモリセルからデータの読み出しを行う(S205)。
次いで、比較回路9は、読み出し回路5が読み出したデータとバッファ1のデータとが一致しているかどうか判定する(S206)。S206において、データが一致すると判定された場合、ベリファイ成功(書き込み成功)であるため、シーケンス制御部4は、フラグ情報格納部3の該当する内部アドレスの書き込みフラグを更新しクリアする(S207)。S206において、データが不一致であると判定された場合、ベリファイ失敗(書き込み失敗)であるため、シーケンス制御部4は、フラグ情報格納部3の該当する内部アドレスの書き込みフラグを更新せずセットのままにしておく。
このS205とS206が、書き込み成功を確認するベリファイ処理である。S204において、書き込みフラグがセットされていないと判定された場合は、すでに書き込み成功しているため、ベリファイと書き込みフラグの更新(S205〜S207)は行わない。
次いで、シーケンス制御部4は、内部アドレスカウンタ2の選択する内部アドレスがラストアドレス(最終アドレス)かどうか判定する(S208)。すなわち、カウンタ値により選択される内部アドレスが、フラグ情報格納部3の最後のアドレスに達しているかどうか判定する。例えば、内部アドレスカウンタ2がオーバフローした場合に、ラストアドレスであると判定する。本実施形態では、ラストアドレスは、書き込むべきデータの最終アドレスではなく、フラグ情報格納部3の最終アドレスであり、つねに固定のアドレスである。
S208において、内部アドレスカウンタ2がラストアドレスではないと判定された場合、シーケンス制御部4は、内部アドレスカウンタ2のカウンタ値をインクリメントする(S209)。S209の後、インクリメントされた内部アドレスカウンタ2のカウンタ値により選択される内部アドレスについて、書き込みフラグのチェック、ベリファイ、書き込みフラグの更新を行い(S204〜S207)、これをラストアドレスまで繰り返す。
S208において、内部アドレスカウンタ2がラストアドレスであると判定された場合、シーケンス制御部4は、全てのデータの書き込みが完了しているかどうか判定する(S210)。このとき、フラグ情報格納部3の書き込みフラグの全てがクリア(リセット)されていれば、一連のバッファ書き込みは完了したことを意味する。また、フラグ情報格納部3の書き込みフラグが1個でもセットされていれば、まだ書き込みは完了していないことを意味する。S210において、全ての書き込みが完了していると判定された場合、シーケンス制御部4は、この自動書き込み処理を終了する。
S210において、全ての書き込みが完了していないと判定された場合、S203と同様に、シーケンス制御部4は、内部アドレスカウンタ2のカウンタ値をリセットする(S211)。次いで、S204と同様に、シーケンス制御部4は、内部アドレスカウンタ2により選択された内部アドレスの書き込みフラグがセットされているかどうか判定する(S212)。
S212において、フラグがセットされていると判定された場合、その選択アドレスが書き込み対象であることを意味するため、シーケンス制御部4は、書き込み回路6を動作させ、メモリセルアレイ7のうち、内部アドレスカウンタ2により選択された内部アドレスのメモリセルに対し、バッファ1の該当する外部データを電気的に書き込む(S213)。S212において、フラグがセットされていないと判定された場合、すでに書き込み成功しているため、メモリセルへの書き込みは行わない。
次いで、S208と同様に、シーケンス制御部4は、内部アドレスカウンタ2の選択する内部アドレスがラストアドレスかどうか判定する(S214)。
S214において、内部アドレスカウンタ2がラストアドレスではないと判定された場合、S209と同様に、シーケンス制御部4は、内部アドレスカウンタのカウンタ値をインクリメントする(S215)。
S215の後、インクリメントされた内部アドレスカウンタのカウンタ値により選択される内部アドレスについて、書き込みフラグのチェックとメモリセルの書き込みを行い(S212〜S213)、これをラストアドレスまで繰り返す。
S214において、内部アドレスカウンタ2がラストアドレスであると判定された場合、シーケンス制御部4は、再度、内部アドレスカウンタ2のカウンタ値のリセットを行い(S203)、S203以降の処理を全てのデータの書き込みが完了するまで繰り返し行う。
図4(a)〜(c)は、フラグ情報格納部3に格納される内部アドレスと書き込みフラグの例を示している。
ここでは、内部アドレスを2ビット、書き込みフラグを1ビットとし、内部アドレス(00)b〜(11)bの4つのデータを書き込むものとする。図4(a)〜(c)は、一連の自動書き込み処理が、3回のベリファイで完了する例である。図4(a)は、1回目のベリファイ完了時における内部アドレスと書き込みフラグを示し、図4(b)は2回目のベリファイ完了時における内部アドレスと書き込みフラグを示し、図4(c)は3回目のベリファイ完了時における内部アドレスと書き込みフラグを示している。
まず、外部アドレスと外部データが入力された時、内部アドレス(00)b〜(11)bの全ての書き込みフラグがセットされている。1回目のベリファイでは、メモリセルへのデータの書き込みが行われていないため、1回目のベリファイ完了時、図4(a)に示すように、全ての書き込みフラグがセットされた状態となる。そして、この状態で、内部アドレス(00)b〜(11)bの各アドレスのメモリセルに1回目の書き込みが行われる。ここでは、1回目の書き込みで、内部アドレス(01)bと(10)bが書き込み成功し、内部アドレス(00)bと(11)bが書き込み失敗したとする。
そうすると、2回目のベリファイでは、内部アドレス(01)bと(10)bのフラグが「0」にリセットされて、2回目のベリファイ完了時、図4(b)に示すように、内部アドレス(00)bと(11)bのみのフラグがセットされた状態となる。そして、この状態で、内部アドレス(00)bと(11)bの各アドレスのメモリセルに2回目の書き込みが行われる。ここでは、2回目の書き込みで、内部アドレス(00)bと(11)bが書き込み成功したとする。
そうすると、3回目のベリファイでは、内部アドレス(00)bと(11)bのフラグが「0」にリセットされて、3回目のベリファイ完了時、図4(c)に示すように、全てのフラグがクリアされた状態となる。こうして、内部アドレス(00)b〜(11)bの書き込み処理が完了する。
図5は、図4の例における各ベリファイの動作の流れを示している。図5(a)は、図4の1回目もしくは2回目のベリファイ動作、すなわち、内部アドレスと書き込みフラグが図4(a)の状態のときのベリファイ動作である。
まず、シーケンス制御部4は、内部アドレスカウンタ2のカウンタ値をリセットし、カウンタ値「0」により選択される内部アドレス(00)bの書き込みフラグをチェックする(S301)。このとき、内部アドレス(00)bの書き込みフラグは(1)bなので、内部アドレス(00)bのメモリセルについてベリファイを行う(S302)。
次いで、シーケンス制御部4は、内部アドレスカウンタ2のカウンタ値をインクリメントし、カウンタ値「1」により選択される内部アドレス(01)bの書き込みフラグをチェックする(S303)。このとき、内部アドレス(01)bの書き込みフラグは(1)bなので、内部アドレス(01)bのメモリセルについてベリファイを行う(S304)。
以降、同様にして、内部アドレスカウンタ2のカウンタ値をインクリメントし、内部アドレス(10)bの書き込みフラグチェック、ベリファイ、内部アドレス(11)bの書き込みフラグチェック、ベリファイを行う(S305〜S308)。そして、内部アドレスカウンタ2の選択するアドレスがラストアドレス、この例では、内部アドレス(11)bとなり、この1回目もしくは2回目のベリファイが完了する。尚、1回目の書き込み処理も同様に、内部アドレス(00)b〜(11)が順次選択され、それぞれのアドレスに対し書き込みが行われる。
図5(b)は、図4の3回目のベリファイ動作、すなわち、内部アドレスと書き込みフラグが図4(b)の状態のときのベリファイ動作である。
まず、シーケンス制御部4は、内部アドレスカウンタ2のカウンタ値をリセットし、カウンタ値「0」により選択される内部アドレス(00)bの書き込みフラグをチェックする(S309)。このとき、内部アドレス(00)bの書き込みフラグは(1)bなので、内部アドレス(00)bのメモリセルについてベリファイを行う(S310)。
次いで、シーケンス制御部4は、内部アドレスカウンタ2のカウンタ値をインクリメントし、カウンタ値「1」により選択される内部アドレス(01)bの書き込みフラグをチェックする(S311)。このとき、内部アドレス(01)bの書き込みフラグは(0)bなのでベリファイを行わない。
次いで、シーケンス制御部4は、内部アドレスカウンタ2のカウンタ値をインクリメントし、カウンタ値「2」により選択される内部アドレス(10)bの書き込みフラグをチェックする(S312)。このとき、内部アドレス(10)bの書き込みフラグは(0)bなのでベリファイを行わない。
次いで、シーケンス制御部4は、内部アドレスカウンタ2のカウンタ値をインクリメントし、カウンタ値「3」により選択されるアドレス(11)bの書き込みフラグをチェックする(S313)。このとき、内部アドレス(11)bの書き込みフラグは(1)bなので、内部アドレス(01)bのメモリセルについてベリファイを行う(S314)。これで、内部アドレスカウンタ2の選択するアドレスがラストアドレス、この例では、内部アドレス(11)bとなり、3回目のベリファイが完了する。尚、2回目の書き込み処理も同様に、内部アドレス(00)b〜(11)が順次選択され、内部アドレス(00)bと(11)bに対して書き込みが行われる。
以上のように本実施形態では、外部から入力するコマンドとして、複数のデータとデータのアドレスを一括で入力することにより、データごとのコマンド入力が必要なくなり、書き込み処理を効率よく行うことができるため、書き込み処理の時間を短縮することができる。
また、複数のアドレスごとにフラグを設け、このフラグに応じて、ベリファイや書き込みを行うことにより、データごと(書き込み単位)にベリファイや書き込みを行うことができるため、さらに、効率がよく処理を行うことができる。
発明の実施の形態2.
次に、本発明の実施の形態2にかかる不揮発性半導体記憶装置について説明する。本実施形態にかかる不揮発性半導体記憶装置は、連続したアドレスのデータを一括で入力するとともに、各アドレスごとに書き込み完了を示すフラグを設け、このフラグの複数を選択し並列にほぼ同時に処理することを特徴としている。
次に、本発明の実施の形態2にかかる不揮発性半導体記憶装置について説明する。本実施形態にかかる不揮発性半導体記憶装置は、連続したアドレスのデータを一括で入力するとともに、各アドレスごとに書き込み完了を示すフラグを設け、このフラグの複数を選択し並列にほぼ同時に処理することを特徴としている。
上記の実施の形態1では、バッファ動作を実行する際において、冗長なアドレス選択動作が発生し、処理速度の低下を招く場合がある。図5で説明したように、実施の形態1では、書き込みフラグがセットされているアドレスを検索する際に、カウンタ値をインクリメントし、常にシーケンシャルにサーチを行っている。したがって、書き込みフラグがセットされていない対象外のアドレスについても、一度、アドレスを選択していることとなる。この本来不要なアドレス選択を常に行うことにより、書き込みの処理速度が低下するおそれがある。
書き込みフラグのサーチ動作は、書き込み処理、読み出し処理それぞれを行うごとに常に行われ、かつ、その繰り返しが発生すればするほど、冗長なアドレス選択時間が増加していくことを意味する。書き込みフラグのサーチ動作における冗長なアドレスというのは、書き込み対象アドレスが少なければ、少ないほど増加していく。つまり、バッファサイズに対し、外部から指定されるアドレス数が少なければ、少ないほど、冗長な処理時間が増加することを意味する。
そこで、実施の形態2では、書き込みフラグのサーチにおいて、常にシーケンシャルにアドレスを選択せずに、必要なアドレスのみ選択するようにする。
図6を用いて、本実施形態にかかる不揮発性半導体記憶装置の構成について説明する。図6において、図1と同一の符号を付されたものは同様の要素であり、それらの説明を適宜省略する。図6に示されるように、この不揮発性半導体記憶装置は、図1の内部アドレスカウンタ2に代えて、内部アドレス格納部10とし、さらに、図1の構成に加えて、次アドレス計算部8を備えている。ここでは、内部アドレス格納部10と次アドレス計算部8とが、アドレス設定回路20となる。
内部アドレス格納部10は、シーケンス制御部4から設定される内部アドレスを格納する。この設定された内部アドレスによって、メモリセルアレイ7の中から、書き込みや読み出しを行うアドレスを選択する。すなわち、内部アドレス格納部10は、内部アドレスカウンタ2と同様の構成であるが、シーケンス制御部4からインクリメントは行われず、内部アドレスのセットのみを行う。
次アドレス計算部8は、内部アドレス格納部10に現在設定されている内部アドレスから、次に選択すべきアドレス(次アドレス)を計算する。ここで、計算される次アドレスは、必ず、書き込み対象であるアドレスであるため、実施の形態1のような不要アドレスの選択動作は発生しない。1回目の書き込みフラグの検索(選択)処理の場合、シーケンス制御部4から、初期セットフラグが入力される。また、次アドレス計算部8は、次アドレスを計算するとともに、アドレスがラストアドレスかどうかの判定も行う。ラストアドレスの場合、ラストアドレスフラグをシーケンス制御部4へ出力する。
次に、本実施形態にかかる不揮発性半導体記憶装置の自動書き込み処理について説明する。自動書き込み処理の概略は、図2と同様のため、ここでは、図7のフローチャートを用いて、自動書き込み処理の詳細について説明する。
まず、外部からコマンドとして、書き込みを行いたい外部アドレスおよび外部データが一括でバッファ1に入力される(S401)。このとき、実施の形態1と同様に、連続する複数のデータとその先頭アドレスが入力される。
次いで、入力された外部データが、バッファ1の該当するアドレスに格納されるとともに、書き込みたいアドレス(内部アドレス)に対応した書き込みフラグをフラグ情報格納部3に格納する(S402)。
次いで、次アドレス計算部8は、次に選択すべき内部アドレスである次アドレスを計算するとともに、内部アドレスがラストアドレスか否かの計算を行う(S403)。このとき、次アドレス計算部8は、内部アドレスカウンタ2からの現在の内部アドレス(初期リセット状態)と、フラグ情報格納部3の書き込みフラグに基づいて計算される。
次いで、シーケンス制御部4は、次アドレス計算部8の計算した次アドレスを、内部アドレス格納部10へセットする(S404)。これにより、次アドレス計算部8の計算した次アドレスが現在の内部アドレスとなり、内部アドレス格納部10は、セットされた新たな内部アドレスを選択することになる。
次いで、シーケンス制御部4は、読み出し回路5を動作させ、メモリセルアレイ7のうち、内部アドレスカウンタ2により選択された内部アドレスのメモリセルからデータの読み出しを行う(S405)。
次いで、比較回路9は、読み出し回路5が読み出しデータとバッファ1のデータとが一致しているかどうか判定する(S406)。S406において、データが一致すると判定された場合、ベリファイ成功(書き込み成功)であるため、シーケンス制御部4は、フラグ情報格納部3の該当するアドレスの書き込みフラグを更新しクリアする(S407)。S406において、データが不一致であると判定された場合、ベリファイ失敗(書き込み失敗)であるため、シーケンス制御部4は、フラグ情報格納部3の該当するアドレスの書き込みフラグを更新せずセットのままにしておく。
次いで、シーケンス制御部4は、内部アドレス格納部10の選択する内部アドレスがラストアドレス(最終アドレス)かどうか判定する(S408)。次アドレス計算部8により現在の内部アドレスがラストアドレスか判定されラストアドレスフラグが設定されているため、シーケンス制御部4は、ラストアドレスフラグによって、ラストアドレスかどうかを判定する。
S408において、内部アドレス格納部10のアドレスがラストアドレスではないと判定された場合、再び、次アドレス計算部8にて、内部アドレス格納部10からの現在の内部アドレス(前回セットしたアドレス)とフラグ情報格納部3の書き込みフラグにより、次に選択するアドレスを計算するとともに、ラストアドレスか否かの計算を行う(S403)。そして、その計算結果のアドレスが、内部アドレス格納部10へセットされ(S404)、以後、同様に、ベリファイ、書き込みフラグの更新を行い(S405〜S407)、これをラストアドレスまで繰り返す。
S408において、内部アドレス格納部10がラストアドレスであると判定された場合、シーケンス制御部4は、全てのデータの書き込みが完了しているかどうか判定する(S409)。次アドレス計算部8より、ラストアドレスであることを意味するラストアドレスフラグがセットされ、フラグ情報格納部3の書き込みフラグがすべてクリアされていれば、一連の自動書き込み処理は完了したことを意味する。フラグ情報格納部3の書き込みフラグが1個でもセットされていれば、まだ書き込み処理は完了していないことを意味する。S409において、書き込みが完了していると判定された場合、シーケンス制御部4は、この自動書き込み処理を終了する。
S409において、全ての書き込みが完了していないと判定された場合、S403と同様に、次アドレス計算部8は、内部アドレス格納部10の現在の内部アドレス(リセット状態)とフラグ情報格納部3の書き込みフラグに基づき、次に選択すべきアドレスを計算するとともに、ラストアドレスか否かの計算を行う(S410)。
次いで、シーケンス制御部4は、S404と同様に、次アドレス計算部8の計算した次アドレスを、内部アドレス格納部10へセットする(S411)。
次に、シーケンス制御部4は、書き込み回路6を動作させ、メモリセルアレイ7のうち、内部アドレス格納部10により選択されたアドレスのメモリセルに対し、バッファ1の該当する外部データを電気的に書き込む(S412)。
次いで、S408と同様に、シーケンス制御部4は、内部アドレス格納部10の選択するアドレスがラストアドレスかどうか判定する(S413)。S413において、内部アドレス格納部10がラストアドレスではないと判定された場合、次アドレス計算部8より、ラストアドレスであることを意味するラストアドレスフラグがセットされていなければ、再び、次アドレス計算部8にて、内部アドレス格納部10の現在の内部アドレス(前回セットしたアドレス)とフラグ情報格納部3の書き込みフラグに基づき次に選択するアドレスを計算するとともに、ラストアドレスか否かの計算を行う(S410)。そして、その計算結果のアドレスが、内部アドレス格納部10へセットされ(S411)、以後、同様に、書き込み動作を行い(S412)、これをラストアドレスまで繰り返す。
S413において、内部アドレス格納部10がラストアドレスであると判定された場合、次アドレス計算部8より、ラストアドレスであることを意味するラストアドレスフラグがセットされていた場合、再度、次アドレスの計算を行い(S403)、S403以降の処理を全てのデータの書き込みが完了するまで繰り返し行う。
次に、図8を用いて、本実施形態にかかる不揮発性半導体記憶装置の自動書き込み処理の具体例について説明する。図8は、実施の形態1の図5と同様に、図4の例における各ベリファイの動作を示している。
図8(a)は、図4の1回目もしくは2回目のベリファイ動作、すなわち、内部アドレスと書き込みフラグが図4(a)の状態のときのベリファイ動作である。
まず、次アドレス計算部8は、このとき初期状態なので、内部アドレス(00)b〜(11)bの全ての書き込みフラグを同時にチェックし、書き込みフラグがセットされている最小の内部アドレスを計算する(S501)。このとき、内部アドレス(00)bの書き込みフラグが(1)bなので、内部アドレス(00)bが算出され、内部アドレス格納部10に設定されて、内部アドレス(00)bが選択される。そして、内部アドレス(00)bのメモリセルについてベリファイを行う(S502)。
次いで、次アドレス計算部8は、内部アドレス格納部10の内部アドレスが(00)bを選択しているので、(00)bより大きい内部アドレス、すなわち、内部アドレス(01)b〜(11)bの全ての書き込みフラグを同時にチェックし、書き込みフラグがセットされている最小の内部アドレスを計算する(S503)。このとき、内部アドレス(01)bの書き込みフラグが(1)bなので、内部アドレス(01)bが算出され、内部アドレス格納部10に設定されて、内部アドレス(01)bが選択される。そして、内部アドレス(01)bのメモリセルについてベリファイを行う(S504)。
以降、同様にして、内部アドレスが(01)bのとき、内部アドレス(10)bと内部(11)bの書き込みフラグをチェックして(S505)、内部アドレス(10)bのメモリセルをベリファイし(S506)、内部アドレスが(10)bのとき、内部アドレス(11)bの書き込みフラグをチェックして(S507)、内部アドレス(11)bのメモリセルをベリファイする(S508)。そして、内部アドレス格納部10の選択するアドレスがラストアドレス、この例では、内部アドレス(11)bとなり、この1回目もしくは2回目のベリファイが完了する。尚、1回目の書き込み処理も同様に、内部アドレス(00)b〜(11)bが選択され、それぞれのアドレスに対し書き込みが行われる。
図8(b)は、図4の3回目のベリファイ動作、すなわち、内部アドレスと書き込みフラグが図4(b)の状態のときのベリファイ動作である。
まず、次アドレス計算部8は、このとき初期状態なので、内部アドレス(00)b〜(11)bの全ての書き込みフラグを同時にチェックし、書き込みフラグがセットされている最小のアドレスを計算する(S509)。このとき、内部アドレス(00)bの書き込みフラグが(1)bなので、内部アドレス(00)bが算出され、内部アドレス格納部10に設定されて、内部アドレス(00)bが選択される。そして、内部アドレス(00)bのメモリセルについてベリファイを行う(S510)。
次いで、次アドレス計算部8は、内部アドレス格納部10の内部アドレスが(00)bを選択しているので、(00)bより大きいアドレス、すなわち、内部アドレス(01)b〜(11)bの全ての書き込みフラグを同時にチェックし、書き込みフラグがセットされている最小の内部アドレスを計算する(S511)。このとき、内部アドレス(01)bと(10)bの書き込みフラグが(0)bで内部アドレス(11)bの書き込みフラグが(1)bなので、内部アドレス(11)bが算出され、内部アドレス格納部10に設定されて、内部アドレス(11)bが選択される。そして、内部アドレス(11)bのメモリセルについてベリファイを行う(S512)。さらに、内部アドレス格納部10の選択するアドレスがラストアドレス、この例では、内部アドレス(11)bとなり、この3回目のベリファイが完了する。尚、2回目の書き込み処理も同様に、内部アドレス(00)bと(11)bが選択され、それぞれのアドレスに対し書き込みが行われる。
このように、本実施形態では、書き込みフラグがセットされているアドレスのみを選択するため、図5の実施の形態1のように、常に順次アドレスを選択することがなくなり、書き込みフラグの検索処理を短縮することができる。
次に、次アドレス計算部8の構成と動作について説明する。図9は、次アドレス計算部8の構成を示している。次アドレス計算部8は、図に示すように、次実行アドレス計算部81とラストアドレス計算部82を有している。
次実行アドレス計算部81は、現在の内部アドレスと書き込みフラグ、初期セットフラグを入力し、書き込みフラグがセットされている次に選択すべき次アドレスの計算して、これをシーケンス制御部4へ出力する。ラストアドレス計算部82は、現在の内部アドレスと書き込みフラグを入力し、内部アドレスがラストアドレスであるかどうかを示すラストアドレスフラグを計算して、これをシーケンス制御部4へ出力する。
ここでは、例として、バッファ1のサイズ、すなわち、書き込むデータの最大サイズを32アドレスとする。よって、書き込み対象であることを示す書き込みフラグは32個となり、バッファ書き込み対象となるメモリセル選択に必要となる内部アドレスは5ビット(25=32)となる。
そして、現在の内部アドレス、つまり、内部アドレス格納部10に設定される内部アドレスをADD[4:0](0ビット目から4ビット目までの5ビットを示す。以下同様。)とする。シーケンス制御部4が生成し、1回目のアドレス選択動作であることを意味する初期セットフラグをINITFLAGとする。フラグ情報格納部3が保持し、書き込み対象であることを意味する書き込みフラグをFLAG[31:0]とする。そして、次実行アドレス計算部81の計算結果である次アドレスをNEXT_ADD[4:0]とする。さらに、ラストアドレス計算部82の計算結果であるラストアドレスフラグをLASTFLAGとする。
本実施形態で、ラストアドレスとは、実施の形態1のようにカウンタがオーバフローとなるような最終アドレス、例えば、5ビットであれば(1_1111)b=(31)dを意味するのではない。バッファ1内で、書き込みフラグがセットされているアドレス(データを書き込むべきアドレス)の、最終アドレスを意味する。つまり、常に(1_1111)bであることを意味しない。
次に、図10のフローチャートを用いて、本実施形態にかかる不揮発性半導体記憶装置におけるアドレス選択動作について説明する。図10は、図7のフローチャートからアドレス選択動作のみを限定して抽出したフローチャートである。
まず、シーケンス制御部4は、初期設定として、内部アドレス格納部10の内部アドレスをリセット(ADD[4:0]=(0_0000)b=(0)d)するとともに、初期セットフラグをセット(INITFLAG=1)する(S601)。
次いで、次実行アドレス計算部81は、次アドレスNEXT_ADD[4:0]の計算を行う(S602)。このとき、同時に、ラストアドレス計算部82は、ラストアドレスフラグLASTFLAGの計算を行う(S603)。なお、次アドレス計算部81とラストアドレス計算部82の計算方法については、後述する。
次いで、シーケンス制御部4は、次実行アドレス計算部81の計算結果である次アドレスNEXT_ADD[4:0]を、内部アドレス格納部10へセット(ADD[4:0]=NEXT_ADD[4:0])する(S604)。これにより、計算結果のアドレスに対応するメモリセルが選択される。
次いで、シーケンス制御部4は、さらに次のアドレスの計算のために、初期セットフラグをリセット(INITFLAG=0)する(S605)。
次いで、シーケンス制御部4は、ラストアドレス計算部82の計算結果であるラストアドレスフラグにより、現在の内部アドレスがラストアドレスかどうか(LASTFLAG=1)判定する(S606)。ラストアドレスフラグがセットされていない場合(LASTFLAG=0)、次に処理すべきメモリセルが存在するので、再び、選択すべきアドレスの計算を行う(S602)。また、ラストアドレスフラグが、セットされている場合(LASTFLAG=1)、現在の内部アドレスが、バッファ内の処理すべきアドレスの最終アドレスであることを意味するので、アドレス選択処理は終了する。
なお、図10のフローチャートは、1回のバッファ内のアドレス選択処理を表したものであり、図7で示した自動書き込み処理のフローチャートの中では、複数回、バッファ内のアドレス選択処理(図10の処理)が行われることになる(S403〜S408、S410〜S413)。
次に、図11のフローチャートを用いて、次実行アドレス計算部81による、次アドレスNEXT_ADD[4:0]の計算方法について説明する。次実行アドレス計算部81は、現在の内部アドレスADD[4:0]と、書き込みフラグFLAG[31:0]の状態を比較し、次に実行すべき次アドレスNEXT_ADD[4:0]を求める動作となる。
なお、図中の記号"=="は一致判定、"<"は大小判定、"&&"は論理積、"<="は代入をそれぞれ意味している。また、以後、"="は等号の意で使用する。
まず、次実行アドレス計算部81は、現在の内部アドレスが先頭番地(ADD[4:0]=(0)d)であり、かつ、先頭番地用の書き込みフラグがセット(FLAG[0]=1)され、さらに、初期セットフラグがセット(INITFLAG=1)されているかどうか判定する(S701)。すなわち、1回目のアドレス計算で、かつ、先頭番地が書き込み対象かどうか判定する。S701の条件を満たす場合、次アドレスを先頭番地(NEXT_ADD[4:0]<=(0)d)とする(S707)。
なお、S701で、初期セットフラグINITFLAGの条件が必要な理由は、1回目の選択アドレスが先頭番地であった場合、つまり、2回目のアドレス計算時も、現在の内部アドレスADD[4:0]=(0)dであった場合と、1回目のアドレス計算時(このときも現在の内部アドレスADD[4:0]=(0)dとなる)とを区別するためである。
さらに、S701とほぼ同時に、S702〜S706の判定を行う。S702〜S706では、現在の内部アドレス(フラグが未設定のアドレスを含む)の次のアドレスの書き込みフラグがセットされているかどうか判定する。
S702では、現在の内部アドレスがADD[4:0]<(1)d、つまり、先頭番地(ADD[4:0]=(0)d)のとき、かつ、書き込みフラグの1番地がセット(FLAG[1]=1)かどうか判定する。また、S702よりもS701の判定が優先的に実行されるため、S702では、S701を満たさないことも条件となる。S702の条件を満たす場合、次アドレスを1番地(NEXT_ADD[4:0]<=(1)d)とする(S708)。
S703では、現在の内部アドレスがADD[4:0]<(2)d、つまり、先頭番地(ADD[4:0]=(0)d)、または、1番地(ADD[4:0]=(1)d)のとき、かつ、書き込みフラグの2番地がセット(FLAG[2]=1)かどうか判定する(S703)。また、S703よりもS701、S702の判定が優先的に実行されるため、S703では、S701、S702を満たさないことも条件となる。S703の条件を満たす場合、次アドレスを2番地(NEXT_ADD[4:0]<=(2)d)とする(S709)。
同様に、現在の内部アドレスがADD[4:0]<(3)d〜(30)dの場合の判定を行い(S704、S705)、次アドレスを設定する(NEXT_ADD[4:0]<=(3)d〜(30)d)。
さらに、S706では、内部アドレスADD[4:0]<(31)dの場合、つまり、先頭番地から30番地まで(ADD[4:0]=(0)d〜(30)d)のとき、かつ、書き込みフラグの31番地がセット(FLAG[31]=1)かどうか判定する。S706の条件を満たす場合、次アドレスを31番地(NEXT_ADD[4:0]<=(31)d)とする(S712)。また、S706の条件を満たさない場合、次アドレスを先頭番地(NEXT_ADD[4:0]<=(0)d)とする(S713)。つまり、この場合、次アドレスをリセット状態とする。ただし、この条件が成立する以前に、ラストアドレス計算部82によりラストアドレスと判定され、処理が終了するため、通常選択されることはない。
このように、書き込みフラグがセットされている必要なアドレスのみを選択していくため、不要なアドレスの選択を削除することができ、場合によっては、アドレスをジャンプするようにて選択が行われる。
次に、図12のフローチャートを用いて、ラストアドレス計算部82による、ラストアドレスフラグLASTFLAGの計算方法について説明する。ラストアドレス計算部82は、現在の内部アドレスADD[4:0]と、書き込みフラグFLAG[31:0]の状態を比較し、選択された内部アドレスが、ラストアドレスであるか否かの計算を行う。なお、図中の記号" ̄"は論理反転、"|"はビット論理和をそれぞれ意味している。
まず、ラストアドレス計算部82は、現在の内部アドレスが先頭番地(ADD[4:0]=(0)d)であり、かつ、書き込みフラグの1番地から31番地まで、すべてがセットされていないかどうか( ̄(|FLAG[31:1]))判定する(S801)。すなわち、現在の内部アドレスよりも次のアドレス以降のフラグが全て未設定かどうか判定する。S801の条件を満たす場合、現在の内部アドレスはラストアドレスであることを意味するため、ラストアドレスフラグをセット(LASTFLAG=1)する(S808)。
さらに、S801とほぼ同時に、S802〜S806の判定を行う。S802〜S806では、S801と同様に、現在の内部アドレスよりも次のアドレス以降のフラグが全て未設定かどうか判定する。
S802では、現在の内部アドレスが1番地(ADD[4:0]=(1)d)のとき、かつ、書き込みフラグの2番地から31番地まで、すべてがセットされていないかどうか( ̄(|FLAG[31:2]))判定する(S802)。S802の条件を満たす場合、S801と同様に、その内部アドレスはラストアドレスであることを意味するため、ラストアドレスフラグをセット(LASTFLAG=1)する(S808)。
同様に、現在の内部アドレスがADD[4:0]=(2)d〜(30)dの場合の比較を行い(S804、S805)、ラストアドレスフラグをセット(LASTFLAG=1)する(S808)。
さらに、S806では、現在の内部アドレスが31番地(ADD[4:0]=(31)d)のとき、書き込みフラグによらず、その内部アドレスはラストアドレスであることを意味するため、ラストアドレスフラグをセット(LASTFLAG=1)する(S808)。また、S806の条件を満たさない場合、現在の内部アドレスADD[4:0]は、ラストアドレスを意味しないため、ラストアドレスフラグをリセット(LASTFLAG=0)する(S807)。
このように、現在のアドレス以降のフラグによりラストアドレスフラグを計算することにより、内部アドレス格納部10を、全ビットカウントアップさせることなく、書き込みフラグがセットされている必要なアドレスのラストとなった時点で、処理を終了させることが可能となる。つまり、不要なアドレス選択を削除することができる。
次に、図13及び図14を用いて、次実行アドレス計算部81とラストアドレス計算部82の具体的な回路構成について説明する。
図13は、次実行アドレス計算部81の回路構成の一例を示している。この例では、入力を現在の内部アドレスADD[1:0]、書き込みフラグFLAG[3:0]、初期セットフラグINITFLAGとし、出力を次アドレスNEXT_ADD[1:0]とする。
図に示されるように、次実行アドレス計算部81は、101〜118の符号が付された論理ゲート(インバータ、ANDゲート、NANDゲート、ORゲート、NORゲート、バッファ)を含む組み合わせ回路から構成される。
初期セットフラグINITFLAGは、反転されてNANDゲート102の一方の入力端に入力される。書き込みフラグFLAG[0]は、NANDゲート102の他方の入力端に入力され、書き込みフラグFLAG[1]は、インバータ103の入力端に入力され、書き込みフラグFLAG[2]は、インバータ101の入力端に入力され、書き込みフラグFLAG[3]は、インバータ105の入力端に入力される。現在のアドレスADD[0]は、バッファ104の入力端に入力され、現在のアドレスADD[1]は、バッファ106の入力端に入力される。
そして、インバータ101、NANDゲート102、インバータ103、バッファ104、インバータ105、バッファ106の各出力は、ANDゲート107、NORゲート108、ORゲート109、ANDゲート110、ANDゲート111、NORゲート112を介してバッファ116に入力され、バッファ116の出力が次アドレスNEXT_ADD[1]となる。また、インバータ101、NANDゲート102、インバータ103、バッファ104、インバータ105、バッファ106の各出力は、ANDゲート107、NORゲート108、ORゲート109、ANDゲート110、ANDゲート111、NORゲート112とさらに、ANDゲート113、NORゲート114、NANDゲート115、ANDゲート117を介してNORゲート118に入力され、NORゲート118の出力が次アドレスNEXT_ADD[0]となる。
表1は、図11のフローチャートと同様の動作を示している。例えば、次実行アドレス計算部81は、入力が現在の内部アドレスADD[1:0]=(00)b、かつ、書き込みフラグFLAG[0]=1、かつ、初期セットフラグINITFLAG=1の場合、次アドレスNEXT_ADD[1:0]=(00)bを出力する。
入力が現在の内部アドレスADD[1:0]=(00)b、かつ書き込みフラグFLAG[1]=0、かつ、書き込みフラグFLAG[2]=0、かつ、書き込みフラグFLAG[3]=1、かつ、初期セットフラグINITFLAG=0の場合、次アドレスNEXT_ADD[1:0]=(11)bを出力する。このとき、内部アドレス(01)bや(10)bを選択せずに、内部アドレスを(11)bを選択する。
入力が現在のアドレスADD[1:0]=(01)b、かつ、書き込みフラグFLAG[2]=0、かつ、書き込みフラグFLAG[3]=1、かつ、初期セットフラグINITFLAG=0の場合、次アドレスNEXT_ADD[1:0]=(11)bを出力する。このとき、内部アドレス(10)bを選択せずに、内部アドレスを(11)bを選択する。
尚、図13の回路は、表1のように動作する回路構成であればよく、その他の組み合わせ回路であってもよい。
図14は、ラストアドレス計算部82の回路構成の一例を示している。この例では、入力を現在の内部アドレスADD[1:0]、書き込みフラグFLAG[3:0]とし、出力をラストアドレスフラグLASTFLAGとする。
図に示されるように、ラストアドレス計算部82は、201〜209の符号が付された論理ゲート(インバータ、ANDゲート、NANDゲート、ORゲート、NORゲート)を含む組み合わせ回路から構成される。
ここでは、書き込みフラグFLAG[0]は、ラストアドレス計算部82では使用しないため入力されない。書き込みフラグFLAG[1]は、反転されてANDゲート203の一方の入力端に入力され、書き込みフラグFLAG[2]は、NORゲート204の他方の入力端に入力され、書き込みフラグFLAG[3]は、ORゲート207の入力端に入力される。現在のアドレスADD[0]は、インバータ201の入力端に入力され、現在のアドレスADD[1]は、インバータ202の入力端に入力される。
そして、各入力は、インバータ201、インバータ202、ANDゲート203、NORゲート204、インバータ205、NORゲート206、ORゲート207、ORゲート208を介してNANDゲート209に入力され、NANDゲート209の出力がラストアドレスフラグLASTFLAGとなる。
表2は、図12のフローチャートと同様の動作を示している。例えば、ラストアドレス計算部82は、入力が現在の内部アドレスADD[1:0]=(00)b、かつ、書き込みフラグFLAG[1]=0、かつ、書き込みフラグFLAG[2]=0、かつ、書き込みフラグFLAG[3]=0の場合、ラストアドレスフラグLASTFLAG=1を出力する。このとき、内部アドレス(01)b、(10)b、(11)bを選択せずに、内部アドレスを(00)bがラストアドレスとなる。
入力が現在のアドレスADD[1:0]=(01)b、かつ、書き込みフラグFLAG[2]=0、かつ、書き込みフラグFLAG[3]=0の場合、ラストアドレスフラグLASTFLAG=1を出力する。このとき、内部アドレス(10)b、(11)bを選択せずに、内部アドレスを(01)bがラストアドレスとなる。
入力が現在のアドレスADD[1:0]=(10)b、かつ、書き込みフラグFLAG[3]=0の場合、ラストアドレスフラグLASTFLAG=1を出力する。このとき、内部アドレス(11)bを選択せずに、内部アドレスを(10)bがラストアドレスとなる。
尚、図14の回路は、表2のように動作する回路構成であればよく、その他の組み合わせ回路であってもよい。
次に、実施の形態1と実施の形態2について、自動書き込み処理時間の計算例について説明する。ここでは、バッファの書き込みアドレス数を32ビットとし、フラッシュメモリのメモリセルが多値品の場合と、二値品の場合について計算を行った。また、多値品の場合、30回の書き込みで書き込み完了、電気的書き込みパルス幅は500nsとし、二値品の場合、1回の書き込みで書き込み完了、電気的書き込みパルス幅は2usとする。
さらに、自動書き込み時間を、次の式のシーケンス動作にて計算するものとする。次の式1〜式3は、実施の形態1のプリベリファイ、プログラム(書き込み)、ポストベリファイの処理時間である。
PreVerify=サーチ(50ns)×全アドレス数+Verify(200ns)×必要アドレス数 (式1)
Program=サーチ(50ns)×全アドレス数+Program(XXns)×必要アドレス数 (式2)
PostVerify=サーチ(50ns)×全アドレス数+Verify(200ns)×必要アドレス数 (式3)
PreVerify=サーチ(50ns)×全アドレス数+Verify(200ns)×必要アドレス数 (式1)
Program=サーチ(50ns)×全アドレス数+Program(XXns)×必要アドレス数 (式2)
PostVerify=サーチ(50ns)×全アドレス数+Verify(200ns)×必要アドレス数 (式3)
次の式4〜式6は、実施の形態2のプリベリファイ、プログラム(書き込み)、ポストベリファイの処理時間である。
PreVerify=サーチ(50ns)×必要アドレス数+Verify(200ns)×必要アドレス数 (式4)
Program=サーチ(50ns)×必要アドレス数+Program(XXns)×必要アドレス数 (式5)
PostVerify=サーチ(50ns)×必要アドレス数+Verify(200ns)×必要アドレス数 (式6)
PreVerify=サーチ(50ns)×必要アドレス数+Verify(200ns)×必要アドレス数 (式4)
Program=サーチ(50ns)×必要アドレス数+Program(XXns)×必要アドレス数 (式5)
PostVerify=サーチ(50ns)×必要アドレス数+Verify(200ns)×必要アドレス数 (式6)
表3に示すように、書き込みデータ数が32の場合には、バッファ1の全体にデータが含まれるため、サーチ時間に差が無く、実施の形態1と実施の形態2では、同じ処理時間となる。書き込みデータ数が減るに従い、実施の形態2のサーチ時間が短縮されるため、全体の処理時間が減る。書き込みデータ数が4の場合、実施の形態2は、実施の形態1の70.8%の処理時間となる。
さらに、表3と表4の時間短縮効果の欄をグラフにしたものを図15に示す。表3、表4と図15に示すように、書き込みデータ数が32の場合には、バッファ1の全体にデータが含まれるため、サーチ時間に差が無く、実施の形態1と実施の形態2では、同じ処理時間となり、時間短縮効果は得られない。書き込みデータ数が減るに従い、実施の形態2では、不要なアドレス選択処理を削除できサーチ時間が短縮されるため、全体の処理時間が減り、時間短縮効果が大きくなる。例えば、二値品で、書き込みデータ数が4の場合、実施の形態1の処理時間は14.4us、実施の形態2の処理時間は10.2usとなり、実施の形態2の処理時間は、実施の形態1の70.8%の処理時間となる。
また、多値品では、二値品に比べて、電気的書き込みのリトライ回数、および、書き込み不要なアドレス数も増加していくため、その高速化の効果はさらに顕著に現れることになる。
例えば、多値品で、書き込みデータ数が4つの場合について計算式を示すと、実施の形態1の処理時間は、次の式7〜式10となる。
PreVerify=(50ns×32アドレス)+(200ns×4アドレス)=2.4us (式7)
Program=(50ns×32アドレス)+(500ns×4アドレス)=3.6us (式8)
PostVerify=(50ns×32アドレス)+(200ns×4アドレス)=2.4us (式9)
Total=(式7)+(式8+式9)×30=182.4us (式10)
PreVerify=(50ns×32アドレス)+(200ns×4アドレス)=2.4us (式7)
Program=(50ns×32アドレス)+(500ns×4アドレス)=3.6us (式8)
PostVerify=(50ns×32アドレス)+(200ns×4アドレス)=2.4us (式9)
Total=(式7)+(式8+式9)×30=182.4us (式10)
同じ条件で、実施の形態2の処理時間を計算すると、次の式11〜式14となる。
PreVerify=(50ns×4アドレス)+(200ns×4アドレス)=1.0us (式11)
Program=(50ns×4アドレス)+(500ns×4アドレス)=2.2us (式12)
PostVerify=(50ns×4アドレス)+(200ns×4アドレス)=1.0us (式13)
Total=(式11)+(式12+式13)×30=97.0us (式14)
PreVerify=(50ns×4アドレス)+(200ns×4アドレス)=1.0us (式11)
Program=(50ns×4アドレス)+(500ns×4アドレス)=2.2us (式12)
PostVerify=(50ns×4アドレス)+(200ns×4アドレス)=1.0us (式13)
Total=(式11)+(式12+式13)×30=97.0us (式14)
したがって、実施の形態1は182.4us、実施の形態2は97.0usとなり、実施の形態2では、実施の形態1の53.2%に短縮されたことになる。
以上のように、本実施形態では、ベリファイや書き込みの対象となるアドレスを検索する処理において、実施の形態1のように、全てのアドレスを順次選択するのではなく、書き込みフラグセットされたアドレスのみを選択することにより、不要なアドレス選択動作を削除でき、書き込み動作の処理時間を短縮し、書き込み動作の高速化を図ることが可能となる。
また、書き込みを行うメモリセルを、多値品のフラッシュメモリとした場合、リトライ回数が増加し、アドレス選択動作が増加するため、さらなる高速化が可能となる。
さらに、アドレスを選択する際に、メモリセルアレイに本来不要な電圧印加が発生している場合、本発明を適用することにより、不要な電気的ストレスの印加動作を回避できる。
発明の実施の形態3.
次に、本発明の実施の形態3にかかる不揮発性半導体記憶装置について説明する。本実施形態では、次アドレス計算部8以外の構成については、実施の形態2と同様とし、説明を省略する。
次に、本発明の実施の形態3にかかる不揮発性半導体記憶装置について説明する。本実施形態では、次アドレス計算部8以外の構成については、実施の形態2と同様とし、説明を省略する。
実施の形態2の場合、比較的段数の多い比較演算処理が必要となる。例えば、内部アドレスが2ビットの場合、次実行アドレス計算部81とラストアドレス計算部82は、図13と図14のような回路となるが、内部アドレスのビット数が増えるに従い、さらに複雑な回路構成となる。このため、回路動作スペックによっては、演算処理が間に合わない場合がありうる。
そこで、本実施形態では、次アドレス計算部8に対し、図11の次実行アドレス計算部81のフローチャート、および、図12のラストアドレス計算部82のフローチャートの処理内容を、複数段に分割し、最終的に選択回路を設け、必要な演算結果を選択出力する回路構成とする。
例として、2段に分割した場合のブロック図を、図16に示す。次実行アドレス計算部81において、処理内容を第1の次実行アドレス計算部811と第2の次実行アドレス計算部812の2つに分割する。例えば、図11のフローチャートにおいて、書き込みフラグFLAG[0]〜FLAG[15]の計算処理を、第1の次実行アドレス計算部811にて行い、FLAG[16]〜FLAG[31]の計算処理を、第2の次実行アドレス計算部812にてそれぞれ行う。そして、最終的に選択回路813にて、必要な計算結果を選択出力する構成とする。
同様に、ラストアドレス計算部82でも、処理内容を第1のラストアドレス計算部821と第2のラストアドレス計算部822の2つに分割する。図12のフローチャートにおける、現在の内部アドレスADD[4:0]=(0)d〜(15)dの計算処理を、第1のラストアドレス計算部821にて行い、内部アドレスADD[4:0]=(16)d〜(31)dの計算処理を、第2のラストアドレス計算部822にてそれぞれ行う。そして、最終的に選択回路823にて、必要な計算結果を選択出力する構成とする。
このように、本実施形態では、次アドレス計算部の計算処理を複数の回路に分割することにより、さらに書き込み処理の高速化を図ることができる。したがって、バッファ内のアドレス数が増加した場合や、次アドレス計算部の計算処理時間が、回路動作スペックを満足しない場合においても、十分な動作速度を得ることが可能となる。
その他の発明の実施の形態.
上述の例において、アドレス選択動作は、先頭アドレスから最終アドレスへ昇順に選択するものとして説明したが、これに限らず、降順に選択していくような動作としてもよい。この場合でも、効果についても全く同様の効果を得ることが可能である。例えば、メモリセルアレイの構成の都合により、アドレス選択動作を、降順でなければならない場合においても、その効果を損なうことなく、本発明を適用することができる。
上述の例において、アドレス選択動作は、先頭アドレスから最終アドレスへ昇順に選択するものとして説明したが、これに限らず、降順に選択していくような動作としてもよい。この場合でも、効果についても全く同様の効果を得ることが可能である。例えば、メモリセルアレイの構成の都合により、アドレス選択動作を、降順でなければならない場合においても、その効果を損なうことなく、本発明を適用することができる。
また、上述の例では、主にメモリセルへのデータの書き込みについて説明したが、これに限らず、データの消去においても本発明を適用することができる。データの消去の場合、消去前書き込み処理、消去処理、書き戻し処理、これらすべての読み出し処理において、上述のアドレス選択が行われ、同様に、消去処理の時間を短縮することができる。
このほか、本発明の要旨を逸脱しない範囲で種々の変形、実施が可能である。
1 バッファ
2 内部アドレスカウンタ
3 フラグ情報格納部
4 シーケンス制御部
5 読み出し回路
6 書き込み回路
7 メモリセルアレイ
8 次アドレス計算部
9 比較回路
10 内部アドレス格納部
81 次実行アドレス計算部
82 ラストアドレス計算部
2 内部アドレスカウンタ
3 フラグ情報格納部
4 シーケンス制御部
5 読み出し回路
6 書き込み回路
7 メモリセルアレイ
8 次アドレス計算部
9 比較回路
10 内部アドレス格納部
81 次実行アドレス計算部
82 ラストアドレス計算部
Claims (16)
- 複数のメモリセルからなる複数のセクタを備え、
前記セクタを消去の最小単位とし、
前記セクタ内の複数のアドレスに書き込むべきデータを一括して入力することができる不揮発性半導体記憶装置であって、
前記複数のアドレスのそれぞれに対応するメモリセルの状態を格納するフラグ格納部を備え、
前記フラグ格納部の情報に応じて選択されるべきアドレスを決定するアドレス設定回路を備えることを特徴とする不揮発性半導体記憶装置。 - 複数のデータを含むデータブロックごとに書き込み処理又は消去処理を実行する不揮発性半導体記憶装置であって、
複数の不揮発性メモリセルを含むメモリセルアレイと、
前記データブロックに含まれる複数のデータの各アドレスとともに、前記アドレスごとにそれぞれ設けられ書き込み又は消去の成功/失敗を示すフラグを格納するフラグ格納部と、
前記格納されたフラグに基づき、書き込み又は消去が失敗している前記アドレスを選択するアドレス選択部と、
前記選択されたアドレスに位置する前記不揮発性メモリセルに対し、前記データの書き込み又は消去処理を行う書き込み又は消去部と、
前記選択されたアドレスに位置する前記不揮発性メモリセルに対し、前記データの書き込み又は消去処理の成功/失敗を確認するベリファイ処理を行うベリファイ部と、
前記ベリファイ処理の結果に応じて、前記フラグを更新するフラグ更新部と、を有する、
不揮発性半導体記憶装置。 - 前記アドレス選択部は、前記フラグ格納部に格納されたアドレスに対応するカウンタによって前記アドレスを選択する、
請求項2に記載の不揮発性半導体記憶装置。 - 前記アドレス選択部は、前記データの書き込み又は消去処理、もしくは、前記ベリファイ処理ごとに前記カウンタを順次更新し、更新されたカウンタにより順次前記アドレスを選択する、
請求項3に記載の不揮発性半導体記憶装置。 - 前記アドレス選択部は、前記カウンタを更新したとき、前記カウンタが前記フラグ格納部が格納可能な最終アドレスを選択した場合、前記データの書き込み又は消去処理、もしくは、前記ベリファイ処理を終了させる、
請求項4又は4に記載の不揮発性半導体記憶装置。 - 前記アドレス選択部は、前記データの書き込み又は消去処理、もしくは、前記ベリファイ処理ごとに、前記フラグ格納部に格納された複数のフラグをほぼ同時に判定し、前記複数のフラグのうちフラグが設定されているアドレスを選択する次実行アドレス選択部を有する、
請求項3に記載の不揮発性半導体記憶装置。 - 前記次実行アドレス選択部は、現在選択されているアドレスよりも大きいアドレスに対応する複数のフラグを判定する、
請求項6に記載の不揮発性半導体記憶装置。 - 前記アドレス選択部は、第1及び第2の前記次実行アドレス選択部と、前記第1及び第2の次実行アドレス選択部が選択したアドレスのうちの1つを決定する第1の決定部とを有し、
前記第1の次実行アドレス選択部は、第1の範囲のアドレスに対応する複数のフラグを判定し、
前記第2の次実行アドレス選択部は、第2の範囲のアドレスに対応する複数のフラグを判定する、
請求項6又は7に記載の不揮発性半導体記憶装置。 - 前記アドレス選択部は、前記アドレスを選択したとき、前記フラグ格納部に格納された複数のフラグをほぼ同時に判定し、前記複数のフラグが全て設定されていない場合に、前記データの書き込み又は消去処理、もしくは、前記ベリファイ処理の終了を決定するラストアドレス判定部を有する、
請求項6乃至8のいずれか一つに記載の不揮発性半導体記憶装置。 - 前記ラストアドレス判定部は、現在選択されているアドレスよりも大きいアドレスに対応する複数のフラグを判定する、
請求項9に記載の不揮発性半導体記憶装置。 - 前記アドレス選択部は、第1及び第2の前記ラストアドレス判定部と、前記第1及び第2のラストアドレス判定部の判定のうちの1つに基づいて、前記データの書き込み又は消去処理、もしくは、前記ベリファイ処理の終了を決定する第2の決定部とを有し、
前記第1のラストアドレス判定部は、第1の範囲のアドレスに対応する複数のフラグを判定し、
前記第2のラストアドレス判定部は、第2の範囲のアドレスに対応する複数のフラグを判定する、
請求項9又は10に記載の不揮発性半導体記憶装置。 - 前記データブロックに含まれる複数のデータを格納するバッファをさらに有し、
前記書き込み又は消去部は、前記バッファに格納されたデータを前記不揮発性メモリに書き込み、
前記ベリファイ部は、前記バッファに格納されたデータと前記不揮発性メモリから読み出したデータとを比較し、前記比較に応じて書き込みの成功/失敗を確認する、
請求項2乃至11のいずれか一つに記載の不揮発性半導体記憶装置。 - 前記ベリファイ部は、前記データの書き込み又は消去処理の実行前にベリファイ処理を行い、さらに、前記データの書き込み又は消去処理の実行後にベリファイ処理を行う、
請求項2乃至12のいずれか一つに記載の不揮発性半導体記憶装置。 - 前記ベリファイ部は、前記アドレス選択部によるアドレスの選択により、前記データブロックの先頭アドレスから最終アドレスまで前記ベリファイ処理を繰り返し、
前記ベリファイ処理の繰り返しの後、前記書き込み又は消去部は、前記アドレス選択部によるアドレスの選択により、前記データブロックの先頭アドレスから最終アドレスまで前記書き込み又は消去処理を繰り返し、
前記書き込み又は消去処理を繰り返しの後、さらに、前記ベリファイ部は、前記アドレス選択部によるアドレスの選択により、前記データブロックの先頭アドレスから最終アドレスまで前記ベリファイ処理を繰り返す、
請求項2乃至13のいずれか一つに記載の不揮発性半導体記憶装置。 - 前記不揮発性メモリセルは、3つ以上のしきい値レベルを記憶する多値メモリセルである、
請求項2乃至14のいずれか一つに記載の不揮発性半導体記憶装置。 - 複数の不揮発性メモリセルを含むメモリセルアレイを有し、複数のデータを含むデータブロックごとに書き込み処理又は消去処理を実行する不揮発性半導体記憶装置の制御方法であって、
前記データブロックに含まれる複数のデータの各アドレスとともに、前記アドレスごとにそれぞれ設けられ書き込み又は消去の成功/失敗を示すフラグを格納し、
前記格納されたフラグに基づき、書き込み又は消去が失敗している前記アドレスを選択し、
前記選択されたアドレスに位置する前記不揮発性メモリセルに対し、前記データの書き込み又は消去処理を行い、
前記選択されたアドレスに位置する前記不揮発性メモリセルに対し、前記データの書き込み又は消去処理の成功/失敗を確認するベリファイ処理を行い、
前記ベリファイ処理の結果に応じて、前記フラグを更新する、
不揮発性半導体記憶装置の制御方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005128880A JP2006309829A (ja) | 2005-04-27 | 2005-04-27 | 不揮発性半導体記憶装置及びその制御方法 |
US11/410,136 US7405976B2 (en) | 2005-04-27 | 2006-04-25 | Nonvolatile semiconductor memory and method for controlling the same |
CNA2006100771419A CN1855306A (zh) | 2005-04-27 | 2006-04-27 | 非易失性半导体存储器及其控制方法 |
US12/129,332 US20080239823A1 (en) | 2005-04-27 | 2008-05-29 | Nonvolatile semiconductor memory and method for controlling the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005128880A JP2006309829A (ja) | 2005-04-27 | 2005-04-27 | 不揮発性半導体記憶装置及びその制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006309829A true JP2006309829A (ja) | 2006-11-09 |
Family
ID=37195390
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005128880A Pending JP2006309829A (ja) | 2005-04-27 | 2005-04-27 | 不揮発性半導体記憶装置及びその制御方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US7405976B2 (ja) |
JP (1) | JP2006309829A (ja) |
CN (1) | CN1855306A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007188552A (ja) * | 2006-01-11 | 2007-07-26 | Sharp Corp | 半導体記憶装置 |
JP2009252294A (ja) * | 2008-04-07 | 2009-10-29 | Spansion Llc | メモリコントローラ、メモリシステム、及びメモリデバイスへのデータの書込方法 |
JP2011129192A (ja) * | 2009-12-16 | 2011-06-30 | Samsung Electronics Co Ltd | 半導体記憶装置 |
US12084778B2 (en) | 2015-02-13 | 2024-09-10 | Entegris, Inc. | Coatings for enhancement of properties and performance of substrate articles and apparatus |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7515494B2 (en) * | 2006-11-14 | 2009-04-07 | Promos Technologies Pte.Ltd | Refresh period adjustment technique for dynamic random access memories (DRAM) and integrated circuit devices incorporating embedded DRAM |
KR100791006B1 (ko) * | 2006-12-06 | 2008-01-03 | 삼성전자주식회사 | 싱글레벨 셀 및 멀티레벨 셀을 구비하는 반도체 메모리장치 및 그 구동방법 |
KR100877610B1 (ko) * | 2007-01-23 | 2009-01-09 | 삼성전자주식회사 | 페이지 데이터 저장 방법과 저장 장치 |
JP2008181614A (ja) * | 2007-01-25 | 2008-08-07 | Toshiba Corp | 半導体記憶装置 |
US7668018B2 (en) * | 2007-04-03 | 2010-02-23 | Freescale Semiconductor, Inc. | Electronic device including a nonvolatile memory array and methods of using the same |
JP2009032349A (ja) * | 2007-07-30 | 2009-02-12 | Panasonic Corp | 不揮発性メモリ制御システム |
US8397024B2 (en) * | 2008-10-25 | 2013-03-12 | Sandisk 3D Llc | Page buffer program command and methods to reprogram pages without re-inputting data to a memory device |
JP5815212B2 (ja) * | 2010-04-19 | 2015-11-17 | スパンション エルエルシー | データ書き込み方法およびシステム |
KR101178563B1 (ko) * | 2011-02-28 | 2012-08-31 | 에스케이하이닉스 주식회사 | 불휘발성 메모리 장치 및 그 동작방법 |
CN102509557B (zh) * | 2011-11-04 | 2014-10-15 | 珠海天威技术开发有限公司 | 电可擦可编程只读存储器的数据擦写控制装置及方法、芯片及其数据写入方法、耗材容器 |
US9287005B2 (en) | 2013-12-13 | 2016-03-15 | International Business Machines Corporation | Detecting missing write to cache/memory operations |
US9442839B1 (en) | 2015-05-26 | 2016-09-13 | Sandisk Technologies Llc | Nonvolatile storage with automated response to program faults |
US10019332B1 (en) | 2017-03-10 | 2018-07-10 | Western Digital Technologies, Inc. | Non-volatile memory with program failure recovery |
CN108877863B (zh) * | 2017-05-16 | 2020-08-04 | 华邦电子股份有限公司 | 快闪存储器存储装置及其操作方法 |
CN109087676B (zh) * | 2017-06-14 | 2020-10-20 | 北京兆易创新科技股份有限公司 | 一种非易失性存储器的编程方法及装置 |
CN109144889B (zh) * | 2018-06-25 | 2022-11-25 | 中国科学院声学研究所 | 基于fpga的超声检测数据存储模块及fpga电路 |
CN110473586B (zh) * | 2019-07-31 | 2021-05-14 | 珠海博雅科技有限公司 | 一种写失效存储单元的替换方法、装置、设备及存储介质 |
US11609815B1 (en) | 2021-08-30 | 2023-03-21 | Taiwan Semiconductor Manufacturing Company, Ltd. | Semicoductor device and operation method thereof |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004022112A (ja) * | 2002-06-18 | 2004-01-22 | Toshiba Corp | 不揮発性半導体メモリ装置 |
JP2004095029A (ja) * | 2002-08-30 | 2004-03-25 | Nec Electronics Corp | 不揮発性メモリおよびその書き込み処理方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06195989A (ja) | 1992-12-22 | 1994-07-15 | Mitsubishi Electric Corp | 不揮発性半導体記憶装置 |
US5615148A (en) * | 1995-03-28 | 1997-03-25 | Kabushiki Kaisha Toshiba | Nonvolatile semiconductor memory |
JP4031190B2 (ja) | 2000-09-29 | 2008-01-09 | 株式会社東芝 | メモリカード、不揮発性メモリ、不揮発性メモリのデータ書き込み方法及びデータ書き込み装置 |
JP4772214B2 (ja) | 2001-06-08 | 2011-09-14 | ルネサスエレクトロニクス株式会社 | 不揮発性記憶装置及びその書き換え制御方法 |
US20070086244A1 (en) * | 2005-10-17 | 2007-04-19 | Msystems Ltd. | Data restoration in case of page-programming failure |
-
2005
- 2005-04-27 JP JP2005128880A patent/JP2006309829A/ja active Pending
-
2006
- 2006-04-25 US US11/410,136 patent/US7405976B2/en not_active Expired - Fee Related
- 2006-04-27 CN CNA2006100771419A patent/CN1855306A/zh active Pending
-
2008
- 2008-05-29 US US12/129,332 patent/US20080239823A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004022112A (ja) * | 2002-06-18 | 2004-01-22 | Toshiba Corp | 不揮発性半導体メモリ装置 |
JP2004095029A (ja) * | 2002-08-30 | 2004-03-25 | Nec Electronics Corp | 不揮発性メモリおよびその書き込み処理方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007188552A (ja) * | 2006-01-11 | 2007-07-26 | Sharp Corp | 半導体記憶装置 |
JP2009252294A (ja) * | 2008-04-07 | 2009-10-29 | Spansion Llc | メモリコントローラ、メモリシステム、及びメモリデバイスへのデータの書込方法 |
JP2011129192A (ja) * | 2009-12-16 | 2011-06-30 | Samsung Electronics Co Ltd | 半導体記憶装置 |
US12084778B2 (en) | 2015-02-13 | 2024-09-10 | Entegris, Inc. | Coatings for enhancement of properties and performance of substrate articles and apparatus |
Also Published As
Publication number | Publication date |
---|---|
US20060245253A1 (en) | 2006-11-02 |
US20080239823A1 (en) | 2008-10-02 |
US7405976B2 (en) | 2008-07-29 |
CN1855306A (zh) | 2006-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2006309829A (ja) | 不揮発性半導体記憶装置及びその制御方法 | |
TWI607312B (zh) | 資料儲存裝置及其資料寫入方法 | |
CN103425588B (zh) | 数据储存装置和快闪存储器的区块管理方法 | |
JP5330136B2 (ja) | 半導体記憶装置 | |
US9996462B1 (en) | Data storage device and data maintenance method thereof | |
KR100888695B1 (ko) | 과표본화 읽기 동작을 수행하는 플래시 메모리 장치 및그것의 데이터 독출 방법 | |
US9019770B2 (en) | Data reading method, and control circuit, memory module and memory storage apparatus and memory module using the same | |
JP3854025B2 (ja) | 不揮発性半導体記憶装置 | |
KR100873825B1 (ko) | 비휘발성 메모리의 멀티 비트 프로그래밍 장치 및 방법 | |
US20050254306A1 (en) | Flash memory device and method for driving the same | |
CN107092566B (zh) | 数据储存装置及其数据维护方法 | |
CN107918523B (zh) | 数据储存装置及其数据写入方法 | |
US20160098213A1 (en) | Hybrid storage system employing reconfigurable memory | |
US20150188575A1 (en) | Data Storage Device and Error Correction Method Thereof | |
JP2025501670A (ja) | 3d nandメモリの最良読み込み基準電圧探索 | |
KR20130125303A (ko) | 제어 장치, 기억 장치, 데이터 기입 방법 | |
CN114356791A (zh) | 存储器件、包括存储器件的储存设备和操作储存设备的方法 | |
US20100318729A1 (en) | Nonvolatile semiconductor memory device | |
CN108806740B (zh) | 非易失性存储器装置及其刷新方法 | |
JP4153535B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法 | |
CN111813339A (zh) | 闪存Nand Flash的数据写入方法、装置、电子设备及存储介质 | |
JP5731622B2 (ja) | フラッシュメモリ、バッドブロックの管理方法および管理プログラム | |
KR20100022229A (ko) | 불휘발성 메모리 소자 및 그 동작 방법 | |
CN104217757B (zh) | 非易失性存储器的编程方法 | |
JP4235646B2 (ja) | メモリコントローラおよびフラッシュメモリシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080314 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100928 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101005 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110329 |