JP2007035244A - プログラム速度を向上させる不揮発性メモリ装置及びそのプログラム方法 - Google Patents
プログラム速度を向上させる不揮発性メモリ装置及びそのプログラム方法 Download PDFInfo
- Publication number
- JP2007035244A JP2007035244A JP2006193116A JP2006193116A JP2007035244A JP 2007035244 A JP2007035244 A JP 2007035244A JP 2006193116 A JP2006193116 A JP 2006193116A JP 2006193116 A JP2006193116 A JP 2006193116A JP 2007035244 A JP2007035244 A JP 2007035244A
- Authority
- JP
- Japan
- Prior art keywords
- program
- scan operation
- column scan
- bits
- circuit
- 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
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/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
Landscapes
- Read Only Memory (AREA)
Abstract
【課題】不揮発性メモリ装置をプログラムする方法が提供される。
【解決手段】この方法は、選択されたメモリセルをプログラムする段階と、前記プログラムされたメモリセルからデータビットを読み出す段階と、前記読み出されたデータビットが一定の単位で順次に選択され、前記選択されたデータビットが全部プログラムパスデータビットであるか否かが判別される第1列スキャン動作を実行する段階と、前記第1列スキャン動作途中フェイルが発生する場合、プログラムループ回数に応じて前記読み出されたデータに含まれたフェイルビット数を検出するための第2列スキャン動作を実行する段階と、前記第2列スキャン動作の間エラー訂正可能なビット数より少ないフェイルビット数が前記読み出されたデータビットから検出される場合、プログラムパスとしてプログラム動作を終了する段階とを含む。
【選択図】図3
【解決手段】この方法は、選択されたメモリセルをプログラムする段階と、前記プログラムされたメモリセルからデータビットを読み出す段階と、前記読み出されたデータビットが一定の単位で順次に選択され、前記選択されたデータビットが全部プログラムパスデータビットであるか否かが判別される第1列スキャン動作を実行する段階と、前記第1列スキャン動作途中フェイルが発生する場合、プログラムループ回数に応じて前記読み出されたデータに含まれたフェイルビット数を検出するための第2列スキャン動作を実行する段階と、前記第2列スキャン動作の間エラー訂正可能なビット数より少ないフェイルビット数が前記読み出されたデータビットから検出される場合、プログラムパスとしてプログラム動作を終了する段階とを含む。
【選択図】図3
Description
本発明は半導体メモリ装置に係り、より具体的には不揮発性メモリ装置及びそのプログラム方法に関する。
半導体メモリ装置に貯蔵されたデータのリフレッシュなしに電気的に消去及びプログラム可能な半導体メモリ装置に対する要求が漸次的に増加している。また、メモリ装置の貯蔵容量及び集積度を高めるのが主な流れである。貯蔵データのリフレッシュなしに大容量及び高い集積度を提供する不揮発性半導体メモリ装置の一例がNAND型フラッシュメモリ装置である。パワーオフ時さえデータをそのまま維持するので、そのようなフラッシュメモリ装置は電源が急に遮断される恐れがある電子装置(例えば、携帯用端末機、携帯用コンピュータ等)に幅広く使われている。
例示的な不揮発性メモリ装置が特許文献1及び2に開示されており、この出願のレファレンスとして含まれる。
図1は一般的な不揮発性メモリ装置のプログラム手続きを示すフローチャートである。以下、図1を参照して、一般的な不揮発性メモリ装置のプログラム方法を説明する。
プログラム動作が開始されれば、先に、プログラムされるデータが不揮発性メモリ装置のレジスタ内にロードされる(S10)。一応、プログラムされるデータのロードが完了すれば、ロードされたデータはメモリセルアレイにプログラムされる(S20)。プログラムされたメモリセルが所望のスレッショルド電圧を有するか否かを判別するために検証読み出し動作が実行される(S30)。検証動作に応じて読み出されたデータはレジスタ内に一時貯蔵される。レジスタ内に貯蔵されたデータは一定の単位で選択され、内部データバスにロードされる(S40)。このような動作は以下“列スキャン動作(column Scan operation)”と称する。内部データバス上にロードされた一定の単位のデータビットが同じ値(例えば、プログラムパスデータ値)を有するか否かが判別される(S50)。すなわち、プログラム動作が成功したか否かが判別される。もし内部データバス上にロードされた一定の単位のデータビットのうちの少なくとも一つのデータビットがプログラムフェイルデータ値を有すれば、現在のプログラムループが最大プログラムループであるか否かが判別される(S60)。もし現在のプログラムループが最大プログラムループではなければ、S20段階に進行する。もし現在のプログラムループが最大プログラムループであれば、プログラム動作がプログラムフェイルとして処理され(S70)、プログラム手続きが終わる。S50段階において、もし内部データバス上にロードされた一定の単位のデータビットが全部プログラムパスデータ値を有すれば、プログラム動作はプログラムパスとして処理され(S80)、プログラム手続きが終わる。
上記の説明から分かるように、プログラム動作は複数のプログラムループを通じて実行され、各プログラムループはプログラム区間S20とプログラム検証区間S30〜S50で構成される。プログラムループは選択されたメモリセルが全部プログラムされるまで最大プログラムループ回数内で繰り返して実行される。もしプログラム動作が最大プログラムループ回数内でプログラムフェイルとして処理されれば、プログラムフェイルされたメモリブロックは欠陥ブロック(bad block)として分類される。欠陥ブロックへの分類はフェイルビット数(fail bit number)(これはプログラムされなければならないが、プログラムされていないデータビットの数を意味する)にかかわらず行われる。もしフェイルビット数がエラー訂正回路によって可能なビット数内に含まれれば、そのようなフェイルデータビットは読み出し動作の時、エラー訂正回路によって訂正されることができる。すなわち、プログラム動作がフェイルビット数に応じて選択的にプログラムパスとして処理されれば、欠陥ブロックの生成を抑制することができるものである。
米国特許第5,677,873号
米国特許第5,991,202号
本発明の目的は、プログラム時間を減らし、かつ欠陥ブロックの生成を抑制し、かつプログラムループ回数を調節することができる不揮発性メモリ装置及びそのプログラム方法を提供することにある。
上述した目的を解決するために本発明の一特徴によれば、不揮発性メモリ装置をプログラムする方法は選択されたメモリセルをプログラムする段階と、前記プログラムされたメモリセルからデータビットを読み出す段階と、前記読み出されたデータビットが一定の単位で順次に選択され、記選択されたデータビットが全部プログラムパスデータビットであるか否かが判別される第1列スキャン動作を実行する段階と、前記第1列スキャン動作途中フェイルが発生する場合、プログラムループ回数に応じて前記読み出されたデータに含まれたフェイルビット数を検出するための第2列スキャン動作を実行する段階と、前記第2列スキャン動作の間エラー訂正可能なビット数より少ないフェイルビット数が前記読み出されたデータビットから検出される場合、プログラムパスとしてプログラム動作を終了する段階とを含む。
例示的な実施形態において、前記第2列スキャン動作はプログラムループ回数が2回乃至3回進行された後実行される。
例示的な実施形態において、前記エラー訂正可能なビット数より多いフェイルビット数が検出される場合、前記第2列スキャン動作が中止される。
例示的な実施形態において、前記第2列スキャン動作が中止された後、前記プログラム段階、前記読み出し段階、及び前記第1及び第2列スキャン段階が繰り返される。
例示的な実施形態において、前記第2列スキャン動作は前記第1列スキャン動作の時、フェイルが発生したデータビットから開始する。
本発明に係る特徴によれば、不揮発性メモリ装置をプログラムする方法は選択されたメモリセルをプログラムする段階と、前記選択されたメモリセルがプログラムされた後、検証読み出し動作を実行する段階と、前記検証読み出し動作が実行された後、第1列スキャン動作を実行する段階と、前記第1列スキャン動作の中にフェイルが発生する場合、第2列スキャン動作を実行する段階とを含み、前記第2列スキャン動作の間エラー訂正可能なビット数より少ないフェイルビット数が前記読み出されたデータビットから検出される場合、プログラム動作がプログラムパスとして終わる。
例示的な実施形態において、前記第1列スキャン動作の間、前記読み出されたデータビットが一定の単位で順次に選択され、前記選択されたデータビットが全部プログラムパスデータビットであるか否かが判別される。
例示的な実施形態において、前記第2列スキャン動作の間、前記読み出されたデータに含まれたフェイルビット数が検出される。
例示的な実施形態において、前記第2列スキャン動作はプログラムループ回数に応じて実行される。
例示的な実施形態において、前記第2列スキャン動作はプログラムループ回数が2回乃至3回進行された後実行される。
例示的な実施形態において、前記エラー訂正可能なビット数より多いフェイルビット数が検出される場合、前記第2列スキャン動作を中止する段階がさらに含まれる。
例示的な実施形態において、前記第2列スキャン動作が中止された後、前記プログラム動作、前記検証読み出し動作、及び前記第1及び第2列スキャン動作が繰り返される。
例示的な実施形態において、前記第2列スキャン動作は前記第1列スキャン動作の時フェイルが発生したデータビットから開始される。
本発明の他の特徴によれば、フラッシュメモリ装置は行及び列で配列されたメモリセルのアレイと、検証読み出し動作の時、選択された行のメモリセルからデータビットを読み出すページバッファ回路と、列アドレスに応答して前記ページバッファ回路内のデータビットを一定の単位で選択する列選択回路と、第1列スキャン動作の時、前記列選択回路からのデータビットが全部プログラムパスデータビットであるか否かを判別するパス/フェイル点検回路と、第2列スキャン動作の時、前記列選択回路からのデータビットに含まれたフェイルビットを計算するフェイルビットカウンタ回路と、前記第1列スキャン動作の時、前記列選択回路からのデータビットのうちの少なくとも一つがプログラムフェイルデータビットであることを示す場合、前記第2列スキャン動作が実行されるように前記フェイルビットカウンタ回路を活性化させる制御ロジック回路とを含み、前記制御ロジック回路は前記第2列スキャン動作の間エラー訂正可能なビット数より少ないフェイルビット数が前記読み出されたデータビットから検出される場合、プログラムパスとしてプログラム動作を終了させる。
例示的な実施形態において、前記制御ロジック回路は前記第1列スキャン動作の時、前記列選択回路からのデータビットのうちの少なくとも一つがプログラムフェイルデータビットであることを示す場合、前記パス/フェイル点検回路を非活性化させる。
例示的な実施形態において、前記第1列スキャン動作の時、前記制御ロジック回路によって制御され、前記列選択回路に供給される第1列アドレスを順次に発生する第1アドレス発生回路と、前記第2列スキャン動作の時、前記制御ロジック回路によって制御され、前記第1列スキャン動作の間前記第1アドレス発生回路から最後に出力された第1列アドレスが開始アドレスとして入力され、前記入力されたアドレスに応答して前記列選択回路に供給される第2列アドレスを順次に発生する第2アドレス発生回路がさらに提供される。
例示的な実施形態において、前記第2列スキャン動作はプログラムループ回数が2回乃至3回進行された後実行される。
例示的な実施形態において、前記制御ロジック回路は前記エラー訂正可能なビット数より多いフェイルビット数が検出される場合、前記第2列スキャン動作を中止させる。
例示的な実施形態において、前記第2列スキャン動作が中止された後、前記制御ロジック回路は次のプログラムループが進行されるようにする。
例示的な実施形態において、前記制御ロジック回路によって制御され、プログラムループ回数を計算するループカウンタ回路と、最大プログラムループ回数を貯蔵するためのプログラム回路がさらに提供される。前記プログラム回路に貯蔵された前記最大プログラムループ回数は前記制御ロジック回路に供給される。
例示的な実施形態において、前記プログラム回路は前記最大プログラムループ回数が調節可能になるようにプログラムされる。
例示的な実施形態において、前記制御ロジック回路は前記ループカウンタ回路から提供されるプログラムループ回数が前記最大プログラムループ回数に到逹する場合、プログラム動作を終了させる。
本発明は、エラー訂正可能なビット数と同一、またはそれより少ないフェイルビット数が検出される場合、プログラム動作を終了することによって、プログラム時間を短縮することが可能である。
上記の一般的な説明及び次の詳細な説明の全部が例示的なことと理解されなければならず、請求された発明の付加的な説明が提供されると見なされなければならない。
参照符号が本発明の例示的な実施形態に詳細に表示されており、それらの例が参照図に表示されている。可能などんな場合でも、同じ参照番号が同じまたは類似の部分を参照するために説明及び図面で使われる。
下で、不揮発性メモリ装置としてNANDフラッシュメモリ装置が本発明の特徴及び機能を説明するための例として使われる。しかし、この技術分野に通常の知識を持つ者はここに記載した内容によって本発明の他の利点及び性能を容易に理解することができる。本発明は他の実施形態を通じて実現、または適用されることができる。さらに、詳細な説明は本発明の範囲、技術的思想及び他の目的から逸脱せず、観点及び応用によって修正、または変更されることができる。
図2は本発明に係る不揮発性メモリ装置を示すブロック図である。
図2を参照すれば、本発明の不揮発性メモリ装置1000はメモリセルアレイ120を含み、図示しないが、メモリセルアレイ120は行(またはワードライン)及び列(またはビットライン)のマトリックス形態で配列されたメモリセルで構成される。メモリセルはNAND構造を有するように、またはNOR構造を有するように配列される。例示的な実施形態において、メモリセルはNAND構造を有するように配列される。
制御ロジック回路140は不揮発性メモリ装置1000の全般的な動作を制御するように構成される。本発明の例示的な実施形態の場合、制御ロジック回路140はプログラム動作と係わる一連の動作を制御する。しかし、制御ロジック回路140がここに開示された内容に限らないことはこの分野の通常の知識を習得した者等に自明である。例えば、制御ロジック回路140は不揮発性メモリ装置の読み出し動作、消去動作、テスト動作などを制御するように構成される。制御ロジック回路140には状態レジスタ142が提供され、状態レジスタ142にはプログラム状態情報(例えば、プログラムフェイル情報、プログラムパス情報など)が貯蔵される。状態レジスタ142に貯蔵された情報は特定命令(例えば、状態読み出し命令)の入力に応じて外部に出力される。
続いて、図2を参照すれば、行選択回路160は制御ロジック回路140によって制御され、行アドレスに応答してメモリセルアレイ120の行を選択する。ページバッファ回路180は動作モードに応じて感知増幅器としてまたは書き込みドライバとして動作する。例えば、読み出し動作の時、ページバッファ回路180はメモリセルアレイ120からデータを読み出し、読み出されたデータを一時貯蔵する。プログラム動作の時、ページバッファ回路180は列選択回路200を通じて入力されるデータを一時貯蔵し、貯蔵データに応じてビットラインをビットラインバイアス電圧で駆動する。第1アドレス発生回路220は制御ロジック回路140によって制御され、第1列スキャン動作の時、列アドレスを発生する。第2アドレス発生回路240は制御ロジック回路140によって制御され、第2列スキャン動作の時、第1アドレス発生回路220からの出力(すなわち、最後に生成されたアドレス)を利用して列アドレスを発生する。第1列スキャン動作はプログラムされたメモリセルのセルデータが全部プログラムパスデータであるか否かを判別しようとする場合実行される一方、第2列スキャン動作は第1列スキャン動作の結果として、プログラムフェイルが発生する場合、フェイルビット数を計算しようとする場合実行される。これは以後詳細に説明する。
続いて、図2を参照すれば、列選択回路200は第1列スキャン動作の時、第1アドレス発生回路220からの列アドレスに応答してページバッファ回路180に貯蔵されたデータを一定の単位で選択し、第2列スキャン動作の時、第2アドレス発生回路240からの列アドレスに応答してページバッファ回路180に貯蔵されたデータを一定の単位で選択する。この時、第2列スキャン動作の時、最初選択されたデータは第1列スキャン動作の時、最後に選択されたデータであり、これは以後詳細に説明する。パス/フェイル点検回路260は制御ロジック回路140によって制御され、第1列スキャン動作の時、列選択回路260によって選択されたデータビットが同一のデータ値(例えば、プログラムパスデータ値)を有するか否かを点検する。パス/フェイル点検回路260の判別結果は制御ロジック回路140に伝達される。フェイルビットカウンタ回路280は制御ロジック回路140によって制御され、第2列スキャン動作の時、列選択回路260によって選択されたデータビットのフェイルビット数を計算する。フェイルビットカウンタ回路280の計算結果は制御ロジック回路140に伝達される。ループカウンタ回路320は制御ロジック回路140によって制御され、プログラムループ回数を計算する。プログラム回路300は最大プログラムループ回数をプログラムするように構成される。プログラム回路300に貯蔵された最大プログラムループ回数はプログラム動作の時、制御ロジック回路140によって参照される。
本発明の不揮発性メモリ装置によれば、プログラムループの第1列スキャン動作の時、プログラムフェイルが発生すれば、第1列スキャン動作が終わる。次のプログラムループへの進行の前に第2列スキャン動作が実行される。すなわち、毎プログラムループは第1列スキャン動作と第2列スキャン動作とを含む。第2列スキャン動作の時、プログラムフェイルとして判定されたデータからフェイルビット数が計算される。もしフェイルビット数がエラー訂正回路によって訂正可能なビット数と同一であるか、それより小さければ、プログラム動作はプログラムパスとして処理され、プログラム手続きが終わる。これは以後詳細に説明する。このようなプログラム方法によれば、プログラム速度を向上させることだけではなく、訂正可能なフェイルビットによる欠陥ブロックへの分類を防止することができる。さらに、以後説明されるプログラム方法を通じて決められる適切なプログラムループ回数をプログラム回路300にプログラムすることによって、最大プログラムループ回数を調節することが可能である。
図3は図2に示した不揮発性メモリ装置のプログラム手続きを示すブロック図である。本発明に係る不揮発性メモリ装置のプログラム動作が参照の図に基づいて以下詳細に説明される。
不揮発性メモリ装置がプログラム動作モードに進入すれば、まず、プログラムされるデータが列選択回路200を通じてページバッファ回路180内にロードされる(S100)。よく知られたように、ページバッファ回路180は選択されたビットラインにそれぞれ対応する複数のページバッファで構成される。列選択回路200は第1アドレス発生回路220からの列アドレスに応答してページバッファを一定の単位(例えば、x8、x16、x32など)で選択し、選択されたページバッファにデータビットを伝達する。一応プログラムされるデータのロードが完了すれば、行選択回路160によって選択された行のメモリセルが制御ロジック回路140の制御下にプログラムされる(S110)。プログラム動作は複数のプログラムループを通じて実行され、各プログラムループはプログラム区間及び検証区間で構成される。特に、本発明の検証区間の間に第1及び第2列スキャン動作が連続して実行され、これは以下詳細に説明する。
一応1番目のプログラムループのプログラム区間の間プログラム動作が実行されれば、制御ロジック回路140の制御下に検証読み出し動作が実行される(S120)。検証読み出し動作によれば、プログラムされたメモリセルのセルデータがページバッファ回路180によって読み出される。以後、第1列スキャン動作が実行される(S130)。第1列スキャン動作によれば、ページバッファ回路180のページバッファは第1アドレス発生回路220からの列アドレスに応じて列選択回路200によって一定の単位で順次に選択され、選択されたページバッファのデータビットは列選択回路200を通じてパス/フェイル点検回路260に伝達される。パス/フェイル点検回路260は入力されたデータビットが全部パスデータビットであるか否かを点検する(S140)。パス/フェイル点検回路260の出力(すなわち、パス/フェイル情報)は制御ロジック回路140に伝達される。もし入力されたデータビットが全部パスデータビットであれば、パス/フェイル点検回路260の動作は続いて進行される。すなわち、列選択回路200は第1アドレス発生回路220で順次に生成される列アドレスに応じてページバッファを一定の単位で順次に選択する。もしすべてのページバッファが選択されるまで列スキャン動作が実行されれば、すなわちプログラム動作がプログラムパスとして判別されれば、制御ロジック回路140はパス/フェイル点検回路260からのパス/フェイル情報を利用して状態レジスタ142内にプログラムパス情報を貯蔵する(S150)。以後、プログラム動作は終わる。
もし入力されたデータビットのうちの少なくとも一つがフェイルデータビットであれば、パス/フェイル点検回路260はフェイル情報を制御ロジック回路140に出力する。制御ロジック回路140はパス/フェイル点検回路260からフェイル情報が提供される場合、第1列スキャン動作が中止されるようにする。すなわち、パス/フェイル点検回路260からフェイル情報が提供される場合、制御ロジック回路140は第1アドレス発生回路220のアドレス生成を中止させる。その次に、制御ロジック回路140はループカウンタ回路320から提供される現在のプログラムループ回数が基準値Mより大きいか否かを判別する(S160)。もし現在のプログラムループ回数が基準値Mより小さければ、手続きは(S170)段階に進行する。S170段階において、制御ロジック回路140は現在のプログラムループ回数がプログラム回路300からの最大プログラムループ回数Nに到達した否かを判別する。もし現在のプログラムループ数がプログラム回路300からの最大プログラムループ回数Nより小さければ、制御ロジック回路140はプログラムループ回数が1だけ増加するようにループカウンタ回路320を制御する(S180)。その次に、手続きはS110段階に進行する。
ここで、基準値Mはあらかじめ設定されたプログラムループ回数を示す。例示的な実施形態において、2番目または3番目のプログラムループ回数を有するように設定される。基準値Mは最大プログラムループ回数Nより小さい。しかし、基準値Mがここに開示された内容に限らないことはこの分野の通常の知識を習得した者等に自明である。
もし現在のプログラムループ回数が基準値Mより大きければ、制御ロジック回路140はフェイルビット数を計算するための第2列スキャン動作が実行されるようにする。さらに具体的に説明すれば、第1列スキャン動作が中止され、現在のプログラムループ回数が基準値Mより大きい場合、制御ロジック回路140は第1アドレス発生回路220によって最終的に生成された列アドレスが第2アドレス発生回路240に伝達されるように第1及び第2アドレス発生回路220、240を制御する。第2アドレス発生回路240は開始アドレスとして第1アドレス発生回路220からのアドレスに応答して一連の列アドレスを順次に生成する。これは第1列スキャン動作の間プログラムフェイルビットを含んだデータが第2列スキャン動作の時、最初に選択されることを意味する。列選択回路200は第2アドレス発生回路240からの列アドレスに応答してページバッファを一定の単位で順次に選択する。選択されたページバッファのデータビットは列選択回路200を通じてフェイルビットカウンタ回路280に伝達される。フェイルビットカウンタ回路280は入力されたデータビットからフェイルビット数を計算する(S190)。フェイルビットカウンタ回路280の計算動作は連続して実行される。計算されたフェイルビット数は制御ロジック回路140に伝達される。制御ロジック回路140はフェイルビットカウンタ回路280から提供されるフェイルビット数がエラー訂正回路によって訂正されることができるビット数を超過するか否かを判別する(S190)。
もし第1列スキャン動作が終わった後、ページバッファが全部選択されたにもかかわらずフェイルビットカウンタ回路280から提供されるフェイルビット数がエラー訂正回路によって訂正されることができるビット数より少なければ、制御ロジック回路140はパス/フェイル点検回路260からのパス/フェイル情報を利用して状態レジスタ142内にプログラムパス情報を貯蔵する(S150)。以後、プログラム動作は終わる。これに反して、もし第2列スキャン動作が実行される間フェイルビットカウンタ回路280から提供されるフェイルビット数がエラー訂正回路によって訂正されることができるビット数を超過すれば、制御ロジック回路140は第2列スキャン動作が中止されるようにする(S200)。すなわち、制御ロジック回路140は第2アドレス発生回路240のアドレス生成及びフェイルビットカウンタ回路280のフェイルビット計算を中止させる。手続きはS170段階に進行する。S170段階において、制御ロジック回路140は現在のプログラムループ回数がプログラム回路300からの最大プログラムループ回数Nに到達したか否かを判別する。もし現在のプログラムループ数がプログラム回路300からの最大プログラムループ回数Nに到逹すれば、制御ロジック回路140はプログラム動作がフェイルされたことを知らせるプログラムフェイル情報を状態レジスタ142に貯蔵する。以後、プログラム動作は終わる。もし現在のプログラムループ数がプログラム回路300からの最大プログラムループ回数Nより小さければ、手続きはS180段階に進行する。以後、プログラムループは上述の方式に応じて繰り返される。
以上の説明から分かるように、エラー訂正回路によって訂正されることができるビット数だけフェイルビットが存在してもプログラム動作はプログラムパスとして終わる。そのようなフェイルビットは最大プログラムループ回数内で追加的なプログラムループを要する。しかし、エラー訂正回路によって訂正されることができるビット数だけフェイルビットが存在する場合、プログラム動作を終了することによって、そのようなフェイルビットによる追加的なプログラムループは要しない。これはプログラム時間またはプログラム速度が向上することができることを意味する。たとえプログラムされたデータがフェイルビットを含んでも、フェイルビットを含んだデータは読み出し動作の時エラー訂正回路によって訂正される。
図1に示した従来技術の場合、エラー訂正可能なビット数だけフェイルビットが存在する場合、すべてのプログラムループが実行されるだけでなく、最終的に欠陥ブロックに分類される。これに反して、本発明の場合、エラー訂正可能なビット数だけフェイルビットが存在する場合、プログラム動作がプログラムフェイルとして判別される。場合によっては、プログラムループが全部実行、または実行されないこともできる。より具体的に説明すれば次のようである。
従来技術の場合、毎プログラムループで列スキャン動作が実行される。列スキャン動作途中にパス/フェイル点検回路によってフェイルが検出されれば、列スキャン動作の終了後に次のプログラムループが進行される。たとえエラー訂正可能なビット数だけフェイルビットが存在しても、プログラムループは最大プログラムループ回数内で繰り返される。最大プログラムループ回数だけプログラムループが進行されたにもかかわらずエラー訂正可能なビット数のフェイルビットが存在する場合、図4Aに示したように、プログラム動作はプログラムフェイルとして処理される。図4Aにおいて、説明の便宜上、プログラムループPL#n(n=1−Y)にはただ列スキャン動作PL1S〜PLYSだけが図示されている。
本発明の場合、プログラムループ回数が決められた回数(例えば、3回)に到逹する前までプログラムループでは従来技術のような第1列スキャン動作が実行される。プログラムループ回数が決められた回数(例えば、3回)に到逹すれば、各プログラムループでは第1列スキャン動作だけでなく、第2列スキャン動作が実行される。例えば、図4Bを参照すれば、3番目のプログラムループPL#3の第1列スキャン動作PL3S1が実行される途中フェイルが発生すれば、第2列スキャン動作PL3S2が開始される。前に説明したように、第2列スキャン動作はフェイルが発生された列(またはページバッファ)から残りの列(またはページバッファ)のデータビットに含まれたフェイルビットを検出するためのことである。第2列スキャン動作が実行される途中に、図4Bに示したように、フェイルビット数がエラー訂正可能なビット数を超過すれば(FBN>X)、第2列スキャン動作PS3S2が終わる。第2列スキャン動作PS3S2が終わり、次のプログラムループが開始される。以後、すべての列のデータビットが全部スキャンされるまでフェイルビット数がエラー訂正可能なビット数を超過しなければ(FBN<X)、プログラム動作はプログラムパスとして処理される。プログラム動作が最大プログラムループ回数だけ実行されなくてもプログラムパスとして処理されるから、プログラム速度(またはプログラム時間)を向上(短縮)させることが可能である。
本発明の範囲または技術的思想を逸脱せず、本発明の構造が多様に修正、または変更されることができることはこの分野の通常の知識を持つ者等に自明である。上述した内容を考慮する時、もし本発明の修正及び変更が請求項及び同等物の範疇内に属したら、本発明はこの発明の変更及び修正を含むと見なされる。
120 メモリセルアレイ
140 制御ロジック回路
160 行選択回路
180 ページバッファ回路
200 列選択回路
220,240 アドレス発生回路
260 パス/フェイル点検回路
280 フェイルビットカウンタ回路
300 プログラム回路
140 制御ロジック回路
160 行選択回路
180 ページバッファ回路
200 列選択回路
220,240 アドレス発生回路
260 パス/フェイル点検回路
280 フェイルビットカウンタ回路
300 プログラム回路
Claims (22)
- 不揮発性メモリ装置をプログラムする方法において、
選択されたメモリセルをプログラムする段階と、
前記プログラムされたメモリセルからデータビットを読み出す段階と、
前記読み出されたデータビットが一定の単位で順次に選択され、前記選択されたデータビットが全部プログラムパスデータビットであるか否かを判別する第1列スキャン動作を実行する段階と、
前記第1列スキャン動作途中フェイルが発生する場合、プログラムループ回数に応じて前記読み出されたデータに含まれたフェイルビット数を検出するための第2列スキャン動作を実行する段階と、
前記第2列スキャン動作の間エラー訂正可能なビット数より少ないフェイルビット数が前記読み出されたデータビットから検出される場合、プログラムパスとしてプログラム動作を終了する段階とを含むことを特徴とする方法。 - 前記第2列スキャン動作はプログラムループ回数が2回乃至3回進行された後実行されることを特徴とする請求項1に記載の方法。
- 前記エラー訂正可能なビット数より多いフェイルビット数が検出される場合、前記第2列スキャン動作を中止することを特徴とする請求項1に記載の方法。
- 前記第2列スキャン動作が中止された後、前記プログラム段階、前記読み出し段階、及び前記第1及び第2列スキャン段階が繰り返されることを特徴とする請求項3に記載の方法。
- 前記第2列スキャン動作は前記第1列スキャン動作の時フェイルが発生したデータビットから開始することを特徴とする請求項1に記載の方法。
- 不揮発性メモリ装置をプログラムする方法において、
選択されたメモリセルをプログラムする段階と、
前記選択されたメモリセルがプログラムされた後、検証読み出し動作を実行する段階と、
前記検証読み出し動作が実行された後、第1列スキャン動作を実行する段階と、
前記第1列スキャン動作の中にフェイルが発生する場合、第2列スキャン動作を実行する段階とを含み、
前記第2列スキャン動作の間エラー訂正可能なビット数より少ないフェイルビット数が前記読み出されたデータビットから検出される場合、プログラム動作がプログラムパスとして終わることを特徴とする方法。 - 前記第1列スキャン動作の間、前記読み出されたデータビットが一定の単位で順次に選択され、前記選択されたデータビットが全部プログラムパスデータビットであるか否かが判別されることを特徴とする請求項6に記載の方法。
- 前記第2列スキャン動作の間、前記読み出されたデータに含まれたフェイルビット数が検出されることを特徴とする請求項6に記載の方法。
- 前記第2列スキャン動作はプログラムループ回数に応じて実行されることを特徴とする請求項6に記載の方法。
- 前記第2列スキャン動作はプログラムループ回数が2回乃至3回進行された後実行されることを特徴とする請求項6に記載の方法。
- 前記エラー訂正可能なビット数より多いフェイルビット数が検出される場合、前記第2列スキャン動作を中止する段階をさらに含むことを特徴とする請求項6に記載の方法。
- 前記第2列スキャン動作が中止された後、前記プログラム動作、前記検証読み出し動作、及び前記第1及び第2列スキャン動作が繰り返されることを特徴とする請求項11に記載の方法。
- 前記第2列スキャン動作は前記第1列スキャン動作の時、フェイルが発生したデータビットから開始することを特徴とする請求項6に記載の方法。
- 行及び列で配列されたメモリセルのアレイと、
検証読み出し動作の時、選択された行のメモリセルからデータビットを読み出すページバッファ回路と、
列アドレスに応答して前記ページバッファ回路内のデータビットを一定の単位で選択する列選択回路と、
第1列スキャン動作の時、前記列選択回路からのデータビットが全部プログラムパスデータビットであるか否かを判別するパス/フェイル点検回路と、
第2列スキャン動作の時、前記列選択回路からのデータビットに含まれたフェイルビットを計算するフェイルビットカウンタ回路と、
前記第1列スキャン動作の時、前記列選択回路からのデータビットのうちの少なくとも一つがプログラムフェイルデータビットであることを示す場合、前記第2列スキャン動作が実行されるように前記フェイルビットカウンタ回路を活性化させる制御ロジック回路とを含み、
前記制御ロジック回路は前記第2列スキャン動作の間エラー訂正可能なビット数より少ないフェイルビット数が前記読み出されたデータビットから検出される場合、プログラムパスとしてプログラム動作を終了させることを特徴とする不揮発性メモリ装置。 - 前記制御ロジック回路は前記第1列スキャン動作の時、前記列選択回路からのデータビットのうちの少なくとも一つがプログラムフェイルデータビットであることを示す場合、前記パス/フェイル点検回路を非活性化させることを特徴とする請求項14に記載の不揮発性メモリ装置。
- 前記第1列スキャン動作の時、前記制御ロジック回路によって制御され、前記列選択回路に供給される第1列アドレスを順次に発生する第1アドレス発生回路と、
前記第2列スキャン動作の時、前記制御ロジック回路によって制御され、前記第1列スキャン動作の間前記第1アドレス発生回路から最後に出力された第1列アドレスが開始アドレスとして入力され、前記入力されたアドレスに応答して前記列選択回路に供給される第2列アドレスを順次に発生する第2アドレス発生回路とをさらに含むことを特徴とする請求項14に記載の不揮発性メモリ装置。 - 前記第2列スキャン動作はプログラムループ回数が2回乃至3回進行された後実行されることを特徴とする請求項14に記載の不揮発性メモリ装置。
- 前記制御ロジック回路は前記エラー訂正可能なビット数より多いフェイルビット数が検出される場合、前記第2列スキャン動作を中止させることを特徴とする請求項14に記載の不揮発性メモリ装置。
- 前記第2列スキャン動作が中止された後、前記制御ロジック回路は次のプログラムループが進行されるようにすることを特徴とする請求項18に記載の不揮発性メモリ装置。
- 前記制御ロジック回路によって制御され、プログラムループ回数を計算するループカウンタ回路と、
最大プログラムループ回数を貯蔵するためのプログラム回路とをさらに含み、前記プログラム回路に貯蔵された前記最大プログラムループ回数は前記制御ロジック回路に供給されることを特徴とする請求項14に記載の不揮発性メモリ装置。 - 前記プログラム回路は前記最大プログラムループ回数が調節可能になるようにプログラムされることを特徴とする請求項20に記載の不揮発性メモリ装置。
- 前記制御ロジック回路は前記ループカウンタ回路から提供されるプログラムループ回数が前記最大プログラムループ回数に到逹する場合、プログラム動作を終了させることを特徴とする請求項20に記載の不揮発性メモリ装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050068039A KR100648290B1 (ko) | 2005-07-26 | 2005-07-26 | 프로그램 속도를 향상시킬 수 있는 불 휘발성 메모리 장치및 그것의 프로그램 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007035244A true JP2007035244A (ja) | 2007-02-08 |
Family
ID=37674299
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006193116A Pending JP2007035244A (ja) | 2005-07-26 | 2006-07-13 | プログラム速度を向上させる不揮発性メモリ装置及びそのプログラム方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7352630B2 (ja) |
JP (1) | JP2007035244A (ja) |
KR (1) | KR100648290B1 (ja) |
CN (1) | CN1905068B (ja) |
DE (1) | DE102006034495B4 (ja) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009134849A (ja) * | 2007-11-29 | 2009-06-18 | Hynix Semiconductor Inc | フラッシュメモリ素子及びそのプログラム方法 |
JP2010003401A (ja) * | 2008-06-23 | 2010-01-07 | Samsung Electronics Co Ltd | メモリシステムの動作方法並びにそれを含むメモリシステム及びメモリカード |
JP2011008913A (ja) * | 2007-02-20 | 2011-01-13 | Sandisk Corp | 不揮発性記憶装置のための可変書き込み |
JP2011008878A (ja) * | 2009-06-26 | 2011-01-13 | Samsung Electronics Co Ltd | 不揮発性半導体メモリの放電回路 |
JP2011123964A (ja) * | 2009-12-11 | 2011-06-23 | Toshiba Corp | 半導体記憶装置 |
US20110210832A1 (en) * | 2006-09-12 | 2011-09-01 | Toshiba Tec Kabushiki Kaisha | Radio communication apparatus |
JP2012069180A (ja) * | 2010-09-21 | 2012-04-05 | Toshiba Corp | 半導体記憶装置 |
JP2012208976A (ja) * | 2011-03-29 | 2012-10-25 | Toshiba Corp | 不揮発性半導体メモリ |
JP2014110071A (ja) * | 2012-11-30 | 2014-06-12 | Taiwan Semiconductor Manufactuaring Co Ltd | エラー訂正パリティビットによるmramスマートビット書き込みアルゴリズムの方法および装置 |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7567461B2 (en) * | 2006-08-18 | 2009-07-28 | Micron Technology, Inc. | Method and system for minimizing number of programming pulses used to program rows of non-volatile memory cells |
KR100927119B1 (ko) * | 2007-05-10 | 2009-11-18 | 삼성전자주식회사 | 불 휘발성 반도체 메모리 장치 및 그것의 프로그램 방법 |
KR100933838B1 (ko) * | 2008-03-10 | 2009-12-24 | 주식회사 하이닉스반도체 | 불휘발성 메모리 소자의 테스트 방법 |
KR20100012605A (ko) | 2008-07-29 | 2010-02-08 | 삼성전자주식회사 | Ecc를 이용하여 프로그램하는 불휘발성 메모리 장치 및그 프로그램 방법 |
KR101022882B1 (ko) * | 2009-06-12 | 2011-03-16 | 주식회사 하이닉스반도체 | 불휘발성 메모리 장치의 동작 방법 |
KR101634363B1 (ko) * | 2009-10-05 | 2016-06-29 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 프로그램 방법 |
US8446768B2 (en) * | 2009-12-24 | 2013-05-21 | Samsung Electronics Co., Ltd. | Control device for nonvolatile memory and method of operating control device |
KR101653206B1 (ko) | 2010-01-19 | 2016-09-02 | 삼성전자주식회사 | 프로그램 검증 회로 및 이를 포함하는 비휘발성 메모리 장치 |
US8634261B2 (en) * | 2010-09-06 | 2014-01-21 | SK Hynix Inc. | Semiconductor memory device and method of operating the same |
KR101200125B1 (ko) * | 2010-12-20 | 2012-11-12 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 그 동작 방법 |
US8595597B2 (en) * | 2011-03-03 | 2013-11-26 | Intel Corporation | Adjustable programming speed for NAND memory devices |
US9836277B2 (en) * | 2014-10-01 | 2017-12-05 | Samsung Electronics Co., Ltd. | In-memory popcount support for real time analytics |
KR20160060917A (ko) * | 2014-11-21 | 2016-05-31 | 에스케이하이닉스 주식회사 | 비휘발성 메모리 소자 및 이의 프로그래밍 방법 |
JP6457364B2 (ja) * | 2015-09-11 | 2019-01-23 | 東芝メモリ株式会社 | メモリシステム |
TWI696078B (zh) * | 2017-05-26 | 2020-06-11 | 旺宏電子股份有限公司 | 記憶體裝置及其操作方法 |
US10445173B2 (en) * | 2017-06-26 | 2019-10-15 | Macronix International Co., Ltd. | Method and device for programming non-volatile memory |
US10566062B2 (en) * | 2017-12-14 | 2020-02-18 | Macronix International Co., Ltd. | Memory device and method for operating the same |
CN111863085B (zh) * | 2019-04-29 | 2022-07-26 | 北京兆易创新科技股份有限公司 | 一种控制编程性能的方法和装置 |
KR20200136743A (ko) | 2019-05-28 | 2020-12-08 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
CN113707208B (zh) * | 2020-05-21 | 2024-05-03 | 晶豪科技股份有限公司 | 用于非易失性存储装置的错误纠正的控制验证操作的方法及非易失性存储装置 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5954828A (en) * | 1995-01-05 | 1999-09-21 | Macronix International Co., Ltd. | Non-volatile memory device for fault tolerant data |
JP3941149B2 (ja) | 1996-12-03 | 2007-07-04 | ソニー株式会社 | 半導体不揮発性記憶装置 |
JP2005018983A (ja) | 1996-12-03 | 2005-01-20 | Sony Corp | 半導体不揮発性記憶装置およびメモリシステム |
JP3942342B2 (ja) * | 2000-06-30 | 2007-07-11 | 富士通株式会社 | 多値データを記録する不揮発性メモリ |
JP4034949B2 (ja) | 2001-09-06 | 2008-01-16 | 株式会社ルネサステクノロジ | 不揮発性半導体記憶装置 |
JP3889699B2 (ja) * | 2002-11-29 | 2007-03-07 | 株式会社東芝 | 不揮発性半導体記憶装置及びそのデータ書き込み方法 |
JP4158526B2 (ja) | 2003-01-09 | 2008-10-01 | 松下電器産業株式会社 | メモリカード及びメモリへのデータ書き込み方法 |
JP2005056394A (ja) * | 2003-07-18 | 2005-03-03 | Toshiba Corp | 記憶装置及びメモリカード |
KR100525004B1 (ko) * | 2004-02-26 | 2005-10-31 | 삼성전자주식회사 | 멀티레벨 셀(Multi-level cell)플래쉬메모리장치 및 이의 프로그램 방법 |
US7158416B2 (en) * | 2005-03-15 | 2007-01-02 | Infineon Technologies Flash Gmbh & Co. Kg | Method for operating a flash memory device |
US7193898B2 (en) * | 2005-06-20 | 2007-03-20 | Sandisk Corporation | Compensation currents in non-volatile memory read operations |
US7301817B2 (en) * | 2005-10-27 | 2007-11-27 | Sandisk Corporation | Method for programming of multi-state non-volatile memory using smart verify |
-
2005
- 2005-07-26 KR KR1020050068039A patent/KR100648290B1/ko not_active IP Right Cessation
-
2006
- 2006-07-03 US US11/478,580 patent/US7352630B2/en active Active
- 2006-07-13 JP JP2006193116A patent/JP2007035244A/ja active Pending
- 2006-07-19 DE DE102006034495.2A patent/DE102006034495B4/de not_active Expired - Fee Related
- 2006-07-26 CN CN2006101076022A patent/CN1905068B/zh active Active
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110210832A1 (en) * | 2006-09-12 | 2011-09-01 | Toshiba Tec Kabushiki Kaisha | Radio communication apparatus |
JP2011008913A (ja) * | 2007-02-20 | 2011-01-13 | Sandisk Corp | 不揮発性記憶装置のための可変書き込み |
JP2009134849A (ja) * | 2007-11-29 | 2009-06-18 | Hynix Semiconductor Inc | フラッシュメモリ素子及びそのプログラム方法 |
JP2010003401A (ja) * | 2008-06-23 | 2010-01-07 | Samsung Electronics Co Ltd | メモリシステムの動作方法並びにそれを含むメモリシステム及びメモリカード |
JP2011008878A (ja) * | 2009-06-26 | 2011-01-13 | Samsung Electronics Co Ltd | 不揮発性半導体メモリの放電回路 |
JP2011123964A (ja) * | 2009-12-11 | 2011-06-23 | Toshiba Corp | 半導体記憶装置 |
JP2012069180A (ja) * | 2010-09-21 | 2012-04-05 | Toshiba Corp | 半導体記憶装置 |
JP2012208976A (ja) * | 2011-03-29 | 2012-10-25 | Toshiba Corp | 不揮発性半導体メモリ |
JP2014110071A (ja) * | 2012-11-30 | 2014-06-12 | Taiwan Semiconductor Manufactuaring Co Ltd | エラー訂正パリティビットによるmramスマートビット書き込みアルゴリズムの方法および装置 |
Also Published As
Publication number | Publication date |
---|---|
KR100648290B1 (ko) | 2006-11-23 |
DE102006034495B4 (de) | 2017-11-09 |
US7352630B2 (en) | 2008-04-01 |
CN1905068A (zh) | 2007-01-31 |
US20070025159A1 (en) | 2007-02-01 |
CN1905068B (zh) | 2010-10-13 |
DE102006034495A1 (de) | 2007-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2007035244A (ja) | プログラム速度を向上させる不揮発性メモリ装置及びそのプログラム方法 | |
KR102154436B1 (ko) | 반도체 기억 장치 | |
KR100926475B1 (ko) | 멀티 비트 플래시 메모리 장치 및 그것의 프로그램 방법 | |
US9747998B2 (en) | Test method of semiconductor memory device and semiconductor memory system transferring fail address data from a volatile to a non-volatile memory array using an error-correction code engine | |
JP5127737B2 (ja) | 半導体装置 | |
JP6164712B1 (ja) | フラッシュメモリ | |
JP5162763B2 (ja) | メモリアクセスシステム | |
US8050101B2 (en) | Nonvolatile memory devices having erased-state verify capability and methods of operating same | |
KR101431760B1 (ko) | Ecc 알고리즘을 이용한 플래시 메모리 장치 및 그구동방법 | |
US20090040826A1 (en) | Flash memory device and method of operating the same | |
US20060140027A1 (en) | Semiconductor memory device and method of operating the same | |
US7937647B2 (en) | Error-detecting and correcting FPGA architecture | |
JP2006079811A (ja) | エラー検出用パリティー発生器を備えた半導体メモリ装置 | |
KR100898039B1 (ko) | 불휘발성 반도체 메모리 장치 및 그것의 프로그램 방법 | |
JP2007164839A (ja) | 不揮発性半導体記憶装置及びその自己テスト方法 | |
JP2006294143A (ja) | 不揮発性半導体記憶装置 | |
TWI602055B (zh) | 半導體儲存裝置及其編程方法 | |
JP6473733B2 (ja) | 半導体記憶装置およびその動作設定方法 | |
TWI816418B (zh) | 半導體儲存裝置及其操作方法 | |
JP2005050393A (ja) | 半導体装置およびその故障検出方法 | |
US7773421B2 (en) | Method and apparatus for accessing memory with read error by changing comparison | |
JP2007250090A (ja) | 不揮発性半導体記憶装置の不良セル自動置き換え方法 | |
JP2010244668A (ja) | 不揮発性半導体記憶装置 | |
JP2009043384A (ja) | 不揮発性磁気メモリ装置及びその駆動方法 | |
JP2008159134A (ja) | 不揮発性半導体記憶装置 |