JP5067645B2 - プログラミング検証のためのセグメント化されたビットスキャン - Google Patents

プログラミング検証のためのセグメント化されたビットスキャン Download PDF

Info

Publication number
JP5067645B2
JP5067645B2 JP2009538460A JP2009538460A JP5067645B2 JP 5067645 B2 JP5067645 B2 JP 5067645B2 JP 2009538460 A JP2009538460 A JP 2009538460A JP 2009538460 A JP2009538460 A JP 2009538460A JP 5067645 B2 JP5067645 B2 JP 5067645B2
Authority
JP
Japan
Prior art keywords
volatile storage
programming
data
storage elements
volatile
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.)
Active
Application number
JP2009538460A
Other languages
English (en)
Other versions
JP2010511263A (ja
Inventor
ヤン リ
輝彦 亀井
ジェフリー ダブリュー. ルッツェ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SanDisk Technologies LLC
Original Assignee
SanDisk Technologies LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US11/563,585 external-priority patent/US7545681B2/en
Priority claimed from US11/563,590 external-priority patent/US7440319B2/en
Application filed by SanDisk Technologies LLC filed Critical SanDisk Technologies LLC
Publication of JP2010511263A publication Critical patent/JP2010511263A/ja
Application granted granted Critical
Publication of JP5067645B2 publication Critical patent/JP5067645B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/12Programming voltage switching circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/562Multilevel memory programming aspects
    • G11C2211/5621Multilevel programming verification

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Read Only Memory (AREA)
  • Image Processing (AREA)
  • Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)

Description

本発明は、不揮発性記憶装置の技術に関する。
半導体メモリ装置は、様々な電子装置に使用されることが一般的になってきている。例えば、不揮発性半導体メモリは、携帯電話、デジタルカメラ、パーソナルデジタルアシスタント、モバイルコンピュータ、非モバイルコンピュータ及び他の装置の中に使用されている。電気的消去・プログラム可能型読取専用メモリ(EEPROM)と、フラッシュメモリは、最も普及している不揮発性半導体メモリの1つである。
EEPROMとフラッシュメモリの多くのタイプは、半導体基板内のチャネル領域上に配置され、そのチャネル領域から絶縁されたフローティングゲートを利用している。フローティングゲートは、ソース領域とドレイン領域の間に配置されている。制御ゲートは、フローティングゲート上に設けられており、そのフローティングゲートから絶縁されている。トランジスタの閾値電圧は、フローティングゲート上に保持される電荷量によって制御される。即ち、そのソースとドレインの間の導通を可能にするためにトランジスタをオンにする前に制御ゲートに印加すべき電圧の最小量は、そのフローティングゲート上の電荷レベルにより制御される。
フラッシュメモリシステムの一例では、NAND型の構造を使用する。NAND型フラッシュメモリ構造では、2つの選択ゲートの間に複数のトランジスタが直列に配置されている。直列のトランジスタと選択ゲートは、NANDストリングと呼ばれる。図1は、1つのNANDストリングを示す上面図である。図2は、その等価回路である。図1および図2に示すNANDストリングは、直列の4つのトランジスタ100、102、104、106を備え、第1の(又はドレイン)選択ゲート120と第2の(又はソース)選択ゲート122との間に挟まれている。選択ゲート120は、ビット線コンタクト126を介してNANDストリングをビット線126に接続する。選択ゲート122は、NANDストリングをソース線128に接続する。選択ゲート120は、選択線SGDを介して制御ゲート120CGに適切な電圧を印加することによって制御される。選択ゲート122は、選択線SGSに適切な電圧を印加することによって制御される。トランジスタ100、102、104、106のそれぞれは、制御ゲートと浮遊ゲートを有する。例えば、トランジスタ100は、制御ゲート100CGと浮遊ゲート100FGを有する。トランジスタ102は、制御ゲート102CGと浮遊ゲート102FGとを有する。トランジスタ104は、制御ゲート104CGと浮遊ゲート104FGを有する。トランジスタ106は、制御ゲート106CGと浮遊ゲート106FGを有する。制御ゲート100CGは、ワード線WL3に接続されている。制御ゲート102CGは、ワード線WL2に接続されている。制御ゲート104CGは、ワード線WL1に接続されている。制御ゲート106CGは、ワード線WL0に接続されている。
図1および図2では、NANDストリング内に4つのメモリセルを示しているが、4つのトランジスタの使用する構成は、一例であることに留意されたい。NANDストリングは、4つ未満のメモリセルを有していてもよく、又は、4つを超えるメモリセルを有していてもよい。例えば、一部のNANDストリングは、8つのメモリセル、16のメモリセル、32のメモリセル、64のメモリセル、128のメモリセルなどを含むことができる。本明細書における説明では、NANDストリング内のメモリセルの数は、いかなる特定の数にも限定されない。
NAND構造を用いたフラッシュメモリシステムの一般的なアーキテクチャは、いくつかのNANDストリングを含んでいる。各NANDストリングは、選択線SGSによって制御されるソース選択ゲートによってソース線と接続され、選択線SGDによって制御されるドレイン選択ゲートによってそれらの結合されたビット線と接続されている。ビット線コンタクトを介してそれらのビット線と接続されている各ビット線とそれぞれのNANDストリングは、メモリセルのアレイを含む列を構成している。概して、ビット線は、ワード線と直行する方向においてNANDストリングの上に伸びており、1つ以上の検知増幅器と接続されている。ワード線(WL3、WL2、WL1およびWL0)は、アレイの行を備えている。
各メモリセルは、データ(アナログデータまたはデジタルデータ)を記憶することが可能である。1ビットのデジタルデータ(バイナリメモリセルとして参照されるデータ)を記憶する場合には、このメモリセルの可能な閾値電圧の範囲は2つの範囲に分割され、これらの範囲に論理データ「1」と「0」が割り当てられる。NANDタイプのフラッシュメモリの一例では、この閾値電圧は、メモリセルが消去された後では負の値となり、論理「1」と定義される。プログラミング後の閾値電圧は、正の値となり、論理「0」と定義される。閾値電圧が負の状態で制御ゲートに0ボルトを印加することによって読み出しが試みられた場合、メモリセルはオンとなり、論理「1」が記憶されていることを示す。閾値電圧が正の状態で制御ゲートに0ボルトを印加することによって読み出しが試みられた場合、メモリセルはオンにならず、論理「0」が記憶されていることを示す。
メモリセルはまた、複数のレベルの情報(複数の状態のメモリセルとして参照された情報)を記憶することが可能である。複数のレベルのデータを記憶する場合、可能な閾値電圧の範囲は、このデータのレベルの数に分割される。例えば、4つのレベルの情報を記憶する場合(2ビットのデータ)、4つの閾値電圧範囲が存在し、これらがデータ値「11」、「10」、「01」、「00」に割り当てられる。NANDタイプのメモリの一例では、消去動作の後の閾値電圧は負の値となり、論理「11」と定義される。正の閾値電圧は「10」、「01」、「00」という状態に対して用いられる。8つのレベルの情報が記憶される(3ビットのデータ)場合、データ値「000」、「001」、「010」、「011」、「100」、「101」、「110」、及び「111」に割り当てられる8つの閾値電圧範囲がある。メモリセルにプログラミングされるデータとセルの閾値電圧レベルの間の具体的な関係は、セルに採用されるデータ符号化方式によって決まる。例えば、両方ともその全体を参照することにより本明細書に組み込まれる米国特許第6,222,762号及び米国特許出願公報第2004/0255090号は、マルチ状態フラッシュメモリセルのための多様なデータ符号化方式を説明している。一実施形態においては、浮遊ゲートの閾値電圧が誤ってその近傍の物理状態にシフトすると、1つのビットだけが影響を受けるように、グレーコード割り当てを使用してデータ値が閾値電圧範囲に割り当てられる。
NANDタイプのフラッシュメモリおよびそれらの動作に関連する例は、以下の米国出願/特許出願に記載されている。米国特許第5,570,315号、米国特許第5,774,397号、米国特許第6,046,935号、米国特許第6,456,528号、米国公開公報第US2003/0002348号、米国公開公報第US2006/0140011号。これらの引用文献は、その全体を参照することにより本明細書に援用される。本明細書では、他のタイプの不揮発性記憶素子と同様に、NANDを加えた他のタイプのフラッシュメモリにも利用できる技術を開示する。
フラッシュメモリセルをプログラミングすると、プログラム電圧が制御ゲートに印加され、ビットラインが接地される。フラッシュメモリセルのチャネルと浮遊ゲート間の電圧差のため、浮遊ゲート下のチャネル領域からの電子は浮遊ゲートに注入される。電子が浮遊ゲート内に蓄積すると、浮遊ゲートは負に帯電され、メモリセルの閾値電圧が引き上げられる。
いくつかの実装形態では、プログラミング電圧は一連の電圧パルスとして印加される。各プログラミングパルスの後には、メモリセルが所望の状態にプログラミングされたかどうかを判断するために1つ又は複数の検証動作が続く。
特にNANDアーキテクチャのフラッシュメモリ素子で、マルチ状態のメモリセルを含む現代のフラッシュメモリ素子は、ブロック及びページ単位で配列される。ブロックは消去の単位であり、単一の消去動作で同時に消去されるメモリセルのグループを明確にする。通常、メモリセルのブロックは、消去できるメモリセルの最小のグループである。ページはプログラミングの単位であり、同時にプログラミングされる(メモリセルであろう)データビットのグループを明確にする。通常、各ブロックは複数のページを含む。一般的には、メモリセルのページ及びブロックへの配列は、メモリアレイの物理的な実現に基づいている。例えば、多くのNANDメモリアレイでは、メモリセルの1ページは同じワードラインを共有するセルによって明確にされ、1ブロックは同じNANDストリング内にあるページによって明確にされる。例えば、NANDストリングが直列の32個のメモリセルを含む場合、ブロックは、通常、32ページ、または32ページの整数倍のページ数を含む。1つのワードラインを2ページ分のメモリセルで共有できるNANDメモリアレイもある。即ち、第1ページのデータは偶数番号の列のメモリセルに記憶され、一方第2ページのデータはそのワードラインに沿った奇数番号の列のメモリセルに記憶される。他の配列も可能である。
マルチ状態メモリセルを活用するいくつかのメモリシステムでは、メモリセル内のデータの各ビットが別のページにある。例えば、メモリセルのアレイがメモリセルごとに3ビットのデータ(8つの状態又はレベルのデータ)を記憶する場合、各メモリセルは3ページにデータを記憶し、3個のビットのそれぞれが別のページにある。従って、この例のブロックの中では、各ワードラインが3ページ又は3ページの整数の倍数と関連付けられる。他の配列も考えられる。
歴史的に、フラッシュメモリに記憶されるデータの編成は、データをセクタ単位で記憶する磁気ディスク記憶装置に関連して使用されるファイルシステムにならってきた。通常、セクタは、例えば何らかの数のバイトのオーバヘッドが加えられた512バイトのユーザデータ等、固定サイズのデータのグループである。多くの最新のファイルシステムでは、コンピュータ又は他のホストシステムのオペレーティングシステムはデータをセクタ内に配列し、セクタ単位で、不揮発性記憶装置にデータを書き込み、不揮発性記憶装置からデータを読み出す。このようなシステム及びアプリケーションでのフラッシュメモリ素子の便利な使用を可能にするために、多くの最新のフラッシュメモリが同様の方法でデータを処理し、論理セクタアドレスをフラッシュメモリアレイの物理アドレスにマッピングする。
近年では、フラッシュメモリデバイスのサイズ及び容量は大幅に増大し、40億セルを超えるメモリアレイがもたらされた。このようなアレイでは、単一のワードラインが数万を超えるメモリセルに及ぶことがある。このような大規模なフラッシュメモリでは、各ページは複数のセクタを含む。このように、ホストシステムにより処理されるデータの単位(即ち、「セクタ」)は、フラッシュメモリ素子の最小プログラミング単位よりも小さい。しかしながら、通常、1ページのフラッシュメモリを構成するデータの複数のセクタが順次フラッシュメモリに通信され、同時に単一の動作でフラッシュメモリのページにプログラミングされる。
追加の背景として、データ通信システムにおいてだけではなく、大量データ記憶装置及び記憶システムにおいての誤り訂正コーディング(ECC)の使用が周知である。この技術の基礎として、誤り訂正コーディングは、符号化されている「ペイロード」(又は元データ)データビットから決定又は計算される追加ビット(一般的には、パリティビット、コードビット、チェックサム数字、ECCビット等と呼ばれる)の記憶又は通信を伴う。例えば、誤り訂正コーディングされたデータのメモリリソースへの記憶は、選択されたコードを使用する、実際のデータ及び追加コードビットを含む1個又は複数の符号語の符号化を必要とする。記憶されたデータの取り出しは、記憶された符号語を符号化するために使用されるのと同じ符号に従った記憶された符号語の復号を含む。コードビットは、符号語の実際のデータ部分を「過多に指定」するため、復号後の明白な実際のデータ損失を被らずに数個のエラービットを許容することができる。
多くのECCコーディング方式は周知技術である。これらの従来の誤り訂正符号は、このようなコーディング方式が提供できる製造歩留まり及び装置信頼性に対する多大な影響のため、フラッシュ(及び他の不揮発性)メモリを含む大規模メモリにおいて特に有効であり、数個のプログラミング不可能なセル又は欠陥のあるセルを有する装置を使用できるようにする。言うまでもなく、歩留まりの節減(蓄え)とコードビット(即ち、コード「レート」)を記憶するために追加のメモリセルを提供する費用の間にはトレードオフが存在する。フラッシュメモリ素子用のいくつかのECC符号は、(1/2ほど低いコードレートを有しうる)データ通信アプリケーションで使用される符号よりも高いコードレート(即ち、コードビット対データビットの低い比)を有する傾向がある。フラッシュメモリ記憶装置に関連して使用される周知のECC符号の例は、リードソロモン符号、他のBCH符号、ハミング符号等を含む。通常、フラッシュメモリ記憶装置に関連して使用される誤り訂正符号は、最終的な符号語のデータ部分が符号化されている実際のデータから変わらず、データビットに加えられた符号又はパリティビットが完全な符号語を形成するという点で体系的である。
既定の誤り訂正符号のための特定のパラメータは、符号のタイプ、符号語が引き出される実際のデータのブロックのサイズ、及び符号化後の符号語の全長を含む。例えば、512バイト(4096ビット)のデータのセクタに適用される典型的なBCH符号は、少なくとも60個のECC又はパリティビットが使用される場合に、最高4個のエラービットを訂正できる。リードソロモン符号はBCH符号の部分集合であり、誤り訂正のためにも一般的に使用される。例えば、典型的なリードソロモン符号は、約72個のECCビットを使用して、512バイトセクタのデータで最高4つのエラーを訂正できる。フラッシュメモリに関して、誤り訂正コーディングは、経時的なフラッシュメモリの信頼性においてだけではなく、製造歩留まりの多大な改善も提供する。
追加の背景として、従来のフラッシュメモリ素子のプログラミング及び消去は、動作を受けるセルのそれぞれについて所望の状態に到達したことを確実にするために、プログラミング又は消去中のメモリセルの状態を検証することを伴ってよい。実際に、フラッシュメモリセルのプログラミング及び消去が、通常、適切な電圧のパルスシーケンスの印加によって実行されることを検討し、又パルスシーケンスが多大な時間と電力を消費することも検討し、多くのフラッシュメモリは、現在では、プログラミング動作又は消去動作自体の間に検証動作を含む。例えば、通常、1ページのメモリセルのプログラミングは、プログラミングパルスを印加し、次にプログラミングされているデータレベル(複数の場合がある)の1つ又は複数の所望の「検証」電圧と対照してプログラミングされたセルを検証することによって実行される。必ずしも全てのメモリセルが第1パルスの後に適切な所望のレベルに対して検証しない場合、プログラミングパルスは(多くの場合さらに高圧で)繰り返され、セルは再び検証される。メモリセルの全てが所望のプログラムレベルに達すると、プログラミング動作は終了する。
検証は、通常、フラッシュメモリセルのブロックの消去時に実行され、追加の消去パルスが、全てのセルが消去されていることを確実にするために必要に応じて印加される。一般的にはNANDフラッシュメモリの場合、消去検証は通常、セルのどれかが制御ゲート電圧で伝導するかどうかを判断するために、消去されているブロックのワードラインの全てに選択された制御ゲート電圧を印加することによって実行される。消去されるセルの閾値電圧は通常0ボルト未満であり、又、負のワードライン電圧の印加は望ましくないため、多くの場合は負の消去電圧の検証はワードラインでの低電圧又はゼロ電圧によって行われ、共通ソースラインは、NANDチェーンの各メモリセルに負のゲート対ソース電圧を効果的にかけるためにバイアスをかけられる。同様の方法は、セルのいくつか又は全てが徹底的に消去されないようにするために、消去されたフラッシュメモリセルをわずかにプログラミングする従来の動作を指す「ソフトプログラミング」の間に使用される。
プログラミングを検証する典型的な方法は、制御ゲート電圧によって設定される特定の比較点での各セルの伝導を試験することである。十分にプログラミングされているとして過去に検証されたことのあるセルは、それらのセルのプログラミング処理を停止するために、例えば、プログラミング中のページ内のセルのビットライン電圧を高レベル(例えば、Vdd電源の電圧)に引き上げることによってロックアウトされる。まだ十分にプログラミングされていないそれらのセルは、別の検証動作が後に続くプログラミングシーケンスにおいて次に高い電圧パルスを受け取る。
この技術で周知であるように、いくつかのメモリセルは、それらのセル間の製造変動のため、それらのセルが、既に他よりも低い閾値電圧に消去されたため、ページの中のセルの一様ではない摩耗のため等の理由で、他よりもプログラミング又は消去が低速である。そして、言うまでもなく、いくつかのセルは、欠陥又は他の理由のため、全くプログラミング又は消去することができない。前述されたように、誤り訂正コーディングは、メモリを使用可能に維持しながらも、何らかの数の低速のセル又は故障したセルを許容する能力を提供する。いくつかの用途では、1ページのデータが、そのページ上の全てのメモリセルが所望のプログラミング状態に対して検証するまでプログラミングパルスを繰り返し印加することによってプログラミングされる。これらの用途では、プログラミングは、プログラミングページが無事検証される前に、最大数のプログラミングパルスに達すると終了し、その後まだ所望の状態に検証されていないセルの数が閾値と比較され、そのページからのデータの読み出しに使用される誤り訂正コーディングの能力に依存する。誤り訂正が十分に堅牢である他の用途では、プログラミング及び消去の時間は、十分にプログラミング又は消去されていない低速の(又はエラーの)セルの数が訂正可能であるビット数より少なくなると、パルスをプログラミング又は消去するシーケンスを終了することによって節約される。
誤り訂正は、通常セクタ単位で実行される。従って、各セクタはECC符号の独自の集合を有する。セクタは、ホストシステムへの及びホストシステムからのデータ転送の所望の単位であるため、この誤り訂正は便利且つ有効である。
BCH符号又はリードソロモン符号を使用して512バイトのセクタ内で訂正可能なビットの通常の最大数は、4個である。従って、プログラミング処理が2つのエラーを生じさせる場合、それらの2つのエラーが、以後の読み出し工程の間にECCを使用して訂正できるため、上記工程は成功と見なすことができる。8つのセクタを記憶するページでは、エラー訂正は32個のエラービット(セクタ毎4ビット x 8セクタ)を許容できなければならない。ただし、従来の回路網では、検証工程はエラービットの位置に関係なくページ全体でエラー(適切にプログラミングされていないビット)をカウントする。全てのエラービットが同じセクタの範囲内にある可能性があるため、ページ上でプログラミング(又は消去)検証中に無視できる最大数のエラービットは、セクタについて無視する許容ビットの最大数未満に保たれなければならない。通常、多くのメモリシステムでは、何らかの誤り補正が読み出し工程中に検出される他のエラーを補正するために留まることを確実にするために、無視できるビットの最大数はさらに低い。1ビットがページ内の8個のセクタのそれぞれでフェイルした例を考える。前述された典型的なシステムは、セクタ毎1個のエラーを訂正できるECCの能力にも関わらず、プログラミングが成功したとは結論しない。
不揮発性メモリシステムでさらに多くのエラービットを許容できるようにする新しいシステムが提案されている。ページのデータのビットは、重複するゾーンの集合にグループ化される。一実施形態では、ゾーンはセクタより大きく、各ゾーンは2つ又は3つ以上のセクタに跨ってよい。しかしながら、他のサイズのゾーンを使用することが可能であり、他の実施形態では、ゾーンはセクタよりも小さいことがある。ゾーンは重複しているため、セクタは2つ又は3つ以上のゾーンにある可能性がある。プログラミング(又は消去)の一部として実行される検証の間、ゾーン内のエラービット数がセクタの訂正可能なビットの最大数未満であるかどうかの決定がゾーンごとに下される。この方式は、さらに多くのエラービットを許容できるようにする。
一実施形態は、不揮発性記憶素子の集合が、プログラミング処理の一部としてプログラミングを受けることを含み、その場合、不揮発性記憶素子の集合は不揮発性記憶素子の重複するグループを含む。各グループは、それが、適切にプログラミングされていない不揮発性記憶素子の閾値数未満を有するかどうかを判断するために試験される。プログラミング処理は、各グループが適切にプログラミングされていない不揮発性揮発素子の閾値数未満を有するかどうかに基づいて進む(例えば、続行する/続行しない、又は成功/不成功として終了する)。1つの例の実装形態では、各グループの試験は、適切にプログラミングされていない冗長な不揮発性記憶素子の第1の数を決定することと、適切にプログラミングされていない、ある特定のグループの元データの不揮発性記憶素子の第2の数を決定することと、第1の数と第2の数の合計を閾値数と比較することとを含む。
一実施形態は、複数の不揮発性記憶素子と、不揮発性記憶素子と通信する1つ又は複数の電圧生成回路と、不揮発性記憶素子と通信する複数の検出回路と、検出回路と通信する複数のデータ処理回路と、1つ又は複数の電圧生成回路及びデータ処理回路と通信する制御回路とを含む。1つ又は複数の電圧生成回路は、複数の不揮発性記憶素子に検証電圧を提供する。検出回路は前記不揮発性記憶素子の状態を検出する。データ処理回路は、不揮発性記憶素子が適切にプログラミングされていたかどうかに関して制御回路に表示を提供する。制御回路は、不揮発性記憶素子の重複するグループのそれぞれが、適切にプログラミングされていない不揮発性記憶素子の閾値数未満を有するかどうかを判断する。
NANDストリングの平面図を示す。 上記NANDストリングの等価回路図を示す。 不揮発性メモリシステムのブロック図を示す。 検出ブロックの一実施形態を描くブロック図を示す。 メモリアレイの一実施形態を描くブロック部を示す。 データのページを示す。 閾値電圧分布の例の集合を示し、不揮発性メモリをプログラミングする工程を示す。 閾値電圧分布の例の集合を示し、不揮発性メモリをプログラミングする工程を示す。 多様な閾値電圧分布を示し、不揮発性メモリをプログラミングする工程を示す。 多様な閾値電圧分布を示し、不揮発性メモリをプログラミングする工程を示す。 多様な閾値電圧分布を示し、不揮発性メモリをプログラミングする工程を示す。 一実施形態において不揮発性メモリをプログラミングする順序の表を示す。 不揮発性メモリをプログラミングする工程の一実施形態を説明するフローチャートを示す。 データのページ及びゾーンにグループ化される冗長データを示す。 セクタの集合の例の範囲の表を示す。 重複するゾーンの集合の範囲の例の表を示す。 ゾーンあたりのエラービット数を決定する工程の一実施形態を説明するフローチャートを示す。 ゾーンあたりのエラービット数を決定するために使用される回路のブロック図を示す。 エラービット数を決定する工程の一実施形態を説明するフローチャートを示す。 エラービット数を決定する工程の一実施形態を説明するフローチャートを示す。 エラーを報告する回路を描くブロック図を示す。 不揮発性記憶素子をプログラミングする工程の一実施形態を説明するフローチャートを示す。
本発明を実現するために適切なメモリシステムの一例は、NANDフラッシュメモリ構造を使用する。しかしながら、他のタイプの不揮発性記憶装置も使用できる。例えば、基本的に(浮遊ゲートの代わりに)窒化物層内の電荷のトラッピングを使用するメモリセルである、いわゆるTANOS構造(TaN−Al−SiN−SiOのシリコン基板上に積み重ねられた層から構成される)も本発明と使用できる。フラッシュEEPROMシステムで有効な別のタイプのメモリセルは、不揮発方式で電荷を蓄積するために導電性浮遊ゲートの代わりに非導電性の誘電物質を活用する。このようなセルは、Chanらによる記事、「A True Single-Transistor Oxide-Nitride-Oxide EEPROM Device」、IEEE電子デバイスレター、第EDL−8巻、第3号、1987年3月、93から95ページに説明されている。酸化ケイ素、窒化ケイ素、及び酸化ケイ素(「ONO」)から形成される三層の誘電体が、導電性制御ゲートと、メモリセルチャネル上の半導電性基板の表面の間に挟まれている。セルはセルチャネルから窒化物の中に電子を注入することによりプログラミングされ、窒化物において電荷はトラッピングされ、制限領域内に蓄積される。次にこの蓄積された電荷が、検出可能である方法で、セルのチャネルの一部の閾値電圧を変更する。セルは、窒化物の中にホットホールを注入することによって消去される。ドーピングされたポリシリコンゲートが、別の選択トランジスタを形成するためにメモリセルチャネルの一部に広がる分割ゲート構成における同様のセルを説明する、Nozakiら、「A 1-Mb EEPROM with MNOS Memory Cell for Semiconductor Disk Application」、ソリッドステート回路のIEEEジャーナル、第26巻、第4号、1991年4月、497から501ページも参照すること。前記2つの記事は、その全体を参照することにより本明細書に援用される。参照することにより本明細書に援用されるWilliam D. Brown及びJoe E. Brewerによって編集された「Nonvolatile Semiconductor Memory Technology」、IEEE出版1998年の第1.2項に言及されるプログラミング技法も、誘電電荷トラップ装置に適用可能であると説明されている。他のタイプのメモリ素子も使用できる。
図3は、1ページのメモリセル(例えば、NANDマルチ状態フラッシュメモリ)を並列に読み出し及びプログラミングする読み出し/書き込み回路を備えたメモリ装置210を示している。メモリ装置210は、1つ以上のメモリダイ又はチップ212を有する。メモリダイ212は、(2次元又は3次元の)アレイのメモリセル200、制御回路220、及び読み出し/書き込み回路230Aと230Bを有する。一実施形態では、様々な周辺回路によるメモリアレイ200へのアクセスはアレイの両側で対称的に実装されており、これにより、各側のアクセスライン及び回路の密度が半分に低減されている。読み出し/書き込み回路230A及び230Bは複数の検出ブロック300を有しており、それらの検出ブロック300は1ページのメモリセルを並列に読み出し又はプログラムすることができる。メモリアレイ100は、行複号部240Aと240Bを介したワード線、及び、列復号部242Aと242Bを介したビット線によってアドレスされる。典型的な実施形態では、制御部244は、1つ以上のメモリダイ212のように同じメモリ装置210(例えば、取り外し可能なストレージカード又はパッケージ)内に含まれる。コマンド及びデータは、ライン232を介してホストと制御部244の間、及び、ライン234を介して制御部と1つ以上のメモリダイ212の間で送られる。
制御回路220は、読み出し/書き込み回路230Aと230Bに協調して、メモリアレイ200上でメモリ動作を実行する。制御回路220は、状態マシン222、オンチップアドレス復号部224及び電力制御モジュール226を有している。状態マシン222は、メモリ動作のチップレベル制御を提供する。オンチップアドレス復号部224は、ホスト又はメモリ制御部によって用いられるとともに、復号部240A、240B、242A及び242Bによって用いられるハードウェアアドレスの間のアドレスインタフェースを提供する。電力制御モジュール226は、メモリ動作中にワードライン及びビットラインに供給される電力及び電圧を制御する。一実施形態では、電力制御モジュール226は、供給電力より大きな電圧を生成することができる一つ以上のチャージポンプを有する。
図4は、検出モジュール480、及び共通部490と呼ばれるコア部内で分割された個々の検出ブロック300のブロック図である。一実施形態では、各ビットラインの別個の検出モジュール480と、複数の検出モジュール480の集合の1つの共通部490があってもよい。一例では、検出ブロックは、1つの共通部490と8つの検出モジュール480を有することができる。グループ内の各検出モジュールは、データバス472を介して関連する共通部と通信できる。さらなる詳細としては、米国特許出願公開第2006/0140007号、その全体を参照することにより本明細書に援用される。
検出モジュール480は検出回路470を有しており、検出回路470は接続されたビットライン内の伝導電流が所定の閾値レベルより高いか低いかを判定する。一実施形態では、検出モジュール480は、検出増幅器として共通に参照される回路を有する。検出モジュール480はさらにビットラインラッチ482を有しており、ビットラインラッチ482は接続されたビットライン上の電圧条件を設定するために用いられる。例えば、ビットラインラッチ482内にラッチされる所定の状態によって、接続されたビットラインはプログラム禁止を指定する状態(例えば、Vdd)とされる。
共通部490は、プロセッサ492、1集合のデータラッチ494、及び、1集合のデータラッチ494とデータバス420の間を接続するI/Oインタフェース496を有する。プロセッサ492は計算を実行する。例えば、その機能の1つは、検出されたメモリセル内に記憶されているデータを判定し、判定したデータを1集合のデータラッチ内に記憶することである。1集合のデータラッチ494は、読み出し動作中に、プロセッサ492によって判定されたデータビットを記憶するために用いられる。それは、プログラム動作中に、データバス420から取り込まれたデータビットを記憶するためにも用いられる。取り込まれたデータビットは、メモリ内にプログラムする予定の書き込みデータを表す。I/Oインタフェース496は、データラッチ494とデータバス420の間のインタフェースを提供する。
読み出し又は検出中には、システムの動作は状態マシン222の制御下にあり、状態マシン222はアドレスされたセルへの異なる制御ゲート電圧の供給を制御する。メモリによってサポートされた様々なメモリ状態に対応する様々な既定制御ゲート電圧のステップを進む際に、検出モジュール480はこれらの電圧の1つに移動し、バス472を介して検出モジュール480からプロセッサ492に出力が提供される。その時点で、プロセッサ492は、検出モジュールの移動イベントと、状態マシンから入力ライン493を介して印加された制御ゲート電圧についての情報を考慮することによって得られたメモリ状態を決定する。それから、メモリ状態に対するバイナリ符号化を計算し、得られたデータビットをデータラッチ494に記憶する。コア部の別の実施形態では、ビットラインラッチ482は、検出モジュール480の出力をラッチするラッチ、及び、上記のようなビットラインラッチの両方としてダブルデューティを提供する。
当然のことながら、いくつかの実装形態では複数のプロセッサ492を有することができる。一実施形態では、各プロセッサ492は出力ライン(図4には示されていない)を有し、各出力ラインは共にワイヤードOR接続される。いくつかの実施形態では、出力ラインは、ワイヤードORラインに接続する前に反転される。ワイヤードORを受け取る状態マシンはプログラムされる全てのビットがいつ所望のレベルに到達するかを決定できる。したがって、この構成はプログラミング処理がいつ完了するかについてのプログラム検証処理中の素早い決定を可能にする。例えば、各ビットがその所望のレベルに到達すると、そのビット用の論理0がワイヤードORラインに送られる(又はデータ1を反転させる)。全てのビットがデータ0を出力する(又はデータ1を反転させる)と、状態マシンはプログラミング処理を終了することを認識する。各プロセッサが8つの検出モジュールと通信する実施形態では、状態マシンは(実施形態において)ワイヤードORラインを8回読み出す必要があってもよいし、あるいは、関連するビットラインの結果を蓄積するために論理がプロセッサ492に追加され、状態マシンがワイヤードORラインを一度だけ読み出せばいいようにしてもよい。
プログラム又は検証中に、プログラムされるデータはデータバス420から1集合のデータラッチ494内に記憶される。状態マシンの制御下のプログラム動作は、アドレスされるメモリセルの制御ゲートに印加される一連の(値の増加を伴う)プログラミング電圧パルスを有する。各プログラミングパルスに続いて検証工程が実行され、メモリセルが所望の状態にプログラムされたかどうかを特定する。プロセッサ492は、所望のメモリ状態に対する検証メモリ状態を監視する。その2つが一致する場合、プロセッサ492はビットラインラッチ482を設定し、プログラム禁止を指定する状態にビットラインを設定する。これにより、たとえプログラミングパルスがその制御ゲートに影響しても、ビットラインに接続したセルがさらにプログラムされないようにする。他の実施形態では、プロセッサが最初にビットラインラッチ482をロードし、検出回路が検証処理中に禁止値にそれを設定する。
データラッチスタック494は、検出モジュールに対応するデータラッチのスタックを有する。一実施形態では、検出モジュール480毎に3つの(又は4つの又はその他の数の)データラッチが存在する。いくつかの実装形態では、(必須ではないが)データラッチはシフトレジスタとして実装され、内部に記憶されたパラレルデータをデータバス420のシリアルデータに変換したり、その逆を行ったりする。好適な一実施形態では、m個のメモリセルの読み出し/書き込みブロックに対応する全てのデータラッチを共にリンクさせてブロックシフトレジスタを構成し、シリアル転送によってデータのブロックを入力または出力できるようにする。特に、読み出し/書き込みモジュールのバンクを調整し、その集合のデータラッチが読み出し/書き込みブロックの全体のシフトレジスタの一部であっても、その集合のデータラッチのそれぞれが順にデータバスの内外にデータをシフトできるようにする。
不揮発性記憶装置の多様な実施形態の構造及び/または動作についての追加情報は、(1)米国特許出願公開第2004/0057287号、「Non-Volatile Memory And Method With Reduced Source Line Bias Errors」、公開日2004年3月25日、(2)米国特許出願公開第2004/0109357号、「Non-Volatile Memory And Method with Improved Sensing」、公開日2004年6月10日、(3)米国特許出願公開第2005/0169082号、(4)米国特許出願第11/099,133号、「Compensating for Coupling During Read Operations of Non-Volatile Memory」、発明者Jian Chen、出願日2005年4月5日、及び(5)米国特許出願第11/321,953号、「Reference Sense Amplifier For Non-Volatile Memory」、発明者Siu Lung Chan及びRaul−Adrian Cernea、出願日2005年12月28日に記載されている。直前に示した特許文書の5つの全ては、その全体を参照することにより本明細書に組み込まれる。
図5Aは、メモリセルアレイ200の例示的な構造を示す。一実施形態においては、メモリセルのアレイは、メモリセルの多数のブロックに分割される。フラッシュEEPROMシステムに一般的であるように、ブロックは消去の単位である。すなわち、各ブロックはともに消去される最小数のメモリセルを含む。各ブロックは、通常、多数のページに分割される。ページはプログラミングの単位である。通常、1枚又は複数のページが1列のメモリセルに記憶される。ページは、1つ又は複数のセクタを記憶できる。セクタはユーザデータ及びオーバヘッドデータを含む。オーバヘッドデータは、通常、セクタのユーザデータから計算された誤り訂正符号(ECC)を含む。コントローラ(後述)の一部が、データがアレイにプログラミングされているときにECCを計算し、データがアレイから読み出されているときにECCのチェックも行う。代わりに、ECC及び/又は他のオーバヘッドデータはそれらが関連するユーザデータとは異なるページ、または異なるブロックにも記憶される。ユーザデータのセクタは通常、磁気ディスクドライブ内のセクタのサイズに相当する512バイトである。例えば8ページから最高32、64、128以上のページの範囲の多数のページが1ブロックを形成する。
図5Bはページの元データを示す。ページのサイズに応じて、ページは多くのセクタを含む。各セクタはユーザデータ、誤り訂正符号(ECC)、及びヘッダ情報を含む。
一例として、図5Aにおいて、1,024個のブロックに区切られるNANDフラッシュEEPROMを説明する。この例では、各ブロックにBL0、BL1、...、BL69,623に相当する69,623の列がある。一実施形態では、ブロックの全てのビットラインは、読み出し動作及びプログラム動作の間に同時に選択できる。1つの共通したワードラインに沿った、任意のビットラインに接続されたメモリセルは、同時にプログラムできる。
別の実施形態では、ビットラインは偶数のビットラインと奇数のビットラインに分割される。奇数/偶数ビットラインアーキテクチャでは、共通ワードラインに沿った、奇数ビットラインに接続されたメモリセルはあるときにプログラムされる。それに対し、共通ワードラインに沿った、偶数ビットラインに接続されたメモリセルは別のときにプログラムされる。
図5Aは、直列で接続され、NANDストリングを形成する4個のメモリセルを示す。4個のセルはそれぞれのNANDストリング内に含まれるとして示されているが、4個より多い、または少ない数(例えば、16、32、又は別の数又はNANDストリング上に存在し得るメモリセル)を使用できる。NANDストリングの1つの端子は(選択ゲートドレインSGDに接続されている)ドレイン選択ゲートを介して対応するビットラインに接続され、別の端子は(選択ゲートソースラインSGSに接続されている)ソース選択ゲートを介してソースに接続される。
成功した(検証を行った)プログラミング工程の最後では、メモリセルの閾値電圧はプログラムしたメモリセルの閾値電圧の1つ以上の分布内、又は、必要に応じて消去したメモリセルの閾値電圧分布内にあるべきである。図6は、各メモリセルが2ビットのデータを記憶している場合のメモリセルアレイの閾値電圧分布を示している。しかしながら、他の実施形態では、(例えば、メモリセルに対して3ビットのデータのような)メモリセルに対して2ビットより多い、又は少ないデータを使用してもよい。図6は、消去したメモリセル用の第1の閾値電圧分布Eを示している。プログラムしたメモリセルの3つの閾値電圧分布A、B及びCも示している。一実施形態では、分布E内の閾値電圧は負であり、分布A、B及びC内の閾値電圧は正である。
図6の異なる閾値電圧範囲の各々は、データビットの集合の所定の値に対応する。メモリセルにプログラムされたデータとセルの閾値電圧レベルの間の具体的な関係は、セルに対して採用されるデータ符号化方式に依存する。例えば、米国特許第6,222,762号及び米国特許出願公開公報第2004/0255090号、「Tracking Cells For A Memory System」、出願日2003年6月13日(両方とも全体として参照によって本明細書に組み込まれる)は、マルチ状態フラッシュメモリセルの様々なデータ符号化方式を説明している。一実施形態では、データ値はグレイ符号割り当てを用いて閾値電圧範囲に割り当てられ、フローティングゲートの閾値電圧がその隣接する物理状態に誤ってシフトしても、1ビットだけが影響を受けるようにする。一例では、「11」を閾値電圧範囲E(状態E)、「10」を閾値電圧範囲A(状態A)、「00」を閾値電圧範囲B(状態B)、「01」を閾値電圧範囲C(状態C)に割り当てる。しかし、他の実施形態ではグレイ符号は用いられない。図11は4つの状態を示しているが、本発明は4つの状態より多い、又は少ない状態を含む他のマルチ状態構造と共に用いることもできる。
図6はさらに、メモリセルからデータを読み出すための3つの読み出し基準電圧Vra、Vrb及びVrcを示している。所定のメモリセルの閾値電圧がVra、Vrb及びVrcより高いか、低いかをテストすることによって、システムはメモリセルがどの状態にあるかを決定できる。
図6は、3つの検証基準電圧Vva、Vvb及びVvcも示している。メモリセルを状態Aにプログラムする場合、システムは、それらのメモリセルがVva以上の閾値電圧を有するか否かをテストする。メモリセルを状態Bにプログラムする場合、システムは、メモリセルがVvb以上の閾値電圧を有するか否かをテストする。メモリセルを状態Cにプログラムする場合、システムはメモリセルがVvc以上の閾値電圧を有するか否かを判定する。
全シーケンスプログラミングとして知られる一実施形態では、メモリセルは、消去状態Eから、プログラム状態A、BまたはCのどれかに直接的にプログラムできる。例えば、集団内の全てのメモリセルが消去状態Eになるように、プログラムされるメモリセルの集団が最初に消去される。いくつかのメモリセルは状態Eから状態Aにプログラムされるが、他のメモリセルは状態Eから状態Bに、及び/または、状態Eから状態Cにプログラムされる。フルシーケンスプログラミングは図6において3本の矢印によって描写的に示されている。
図7は、2つの異なるページ(下側ページと上側ページ)に対してデータを記憶するマルチ状態メモリセルをプログラムする二経路技術の一例を示している。状態E(11)、状態A(10)、状態B(00)及び状態C(01)の4つの状態が示されている。状態Eの場合、両方のページが「1」を記憶する。状態Aの場合、下側ページが「0」を記憶し、上側ページが「1」を記憶する。状態Bの場合、両方のページが「0」を記憶する。状態Cの場合、下側ページが「1」を記憶し、上側ページが「0」を記憶する。なお、各状態に対して特定のビットパターンが割り当てられているが、異なるビットパターンを割り当てることも可能であることに注意する。
第1プログラミング経路では、セルの閾値電圧レベルは下側の論理ページにプログラムされるビットに従って設定される。そのビットが論理「1」であれば、以前に消去された結果として適切な状態にあるので閾値電圧は変更されない。しかし、プログラムされるビットが論理「0」であれば、矢印530で示したように、セルの閾レベルは状態Aになるように増大される。
第2プログラミング経路では、セルの閾値電圧レベルは上側論理ページ内にプログラムされるビットに従って設定される。上側論理ページビットが論理「1」を記憶する場合、セルは下側ページビットのプログラミングに依存する状態E又はAの一方であり、どちらも上側ページビットは「1」を保持するのでプログラミングは生じない。上側ページビットが論理「0」となる場合、閾値電圧はシフトされる。第1経路によってセルが消去状態Eに留まっていれば第2段階でセルをプログラムし、矢印534で示したように閾値電圧が状態C内になるように増大させる。第1プログラミング経路の結果としてセルが状態A内にプログラムされれば、メモリセルはさらに第2経路でプログラムされ、矢印532で示したように閾値電圧が状態B内になるように増大させる。第2経路の結果は、下側ページ用のデータを変更することなく、上側ページの論理「0」を記憶するように指定した状態にセルをプログラムすることである。
一実施形態では、ワードラインを充填するのに十分なデータを書き込まれた場合、システムは全シーケンス書き込みを実行するように設定される。十分ではないデータが書き込まれた場合、プログラミング処理は受け取ったデータを用いて下側ページプログラミングを実行できる。次のデータを受け取ったとき、システムは上側ページをプログラムする。さらに別の実施形態では、システムは下側ページをプログラムするモードで書き込みを開始し、ワードラインのメモリセルの全体(又は大部分)を充填するために次の十分なデータを受け取った場合、全シーケンスプログラミングモードに変換する。このような実施形態のさらなる詳細は、発明者Sergy Anatolievich Gorobets及びYan Liの米国公開番号第2006/0126390号、米国特許出願第11/013,125号、発明の名称「Pipelined Programming of Non-Volatile Memories Using Early Data」、出願日2004年12月14日で開示されている。その全体を参照することにより本明細書に援用される。
図8A−Cは、前のページの隣接メモリセルに書き込んだ後で、特定のページに対してその特定のメモリセルを書き込むことによって、その特定のメモリセルに対するフローティングゲート間結合影響を低減する不揮発性メモリをプログラムする別の方法を開示している。図8A−Cによって開示された処理の実装形態の一例では、不揮発性メモリセルは、4つのデータ状態を用いてメモリセル毎に2ビットのデータを記憶する。例えば、状態Eが消去状態であり、状態A、B及びCがプログラム状態であると仮定する。状態Eはデータ11を記憶している。状態Aはデータ01を記憶している。状態Bはデータ10を記憶している。状態Cはデータ00を記憶している。両方のビットは隣接する状態A及びBの間で変化するので、これは非グレイ符号化の一例である。データの物理的データ状態への他の符号化を用いることもできる。各メモリセルは2ページ分のデータを記憶する。参照目的のために、これらのページのデータは上側ページ及び下側ページと呼ばれるが、他のラベルを与えることもできる。図8A−Cの処理の状態Aを参照すると、上側ページはビット0を記憶し、下側ページはビット1を記憶している。状態Bを参照すると、上側ページはビット1を記憶し、下側ページはビット0を記憶している。状態Cを参照すると、両方のページがビットデータ0を記憶している。
図8A−Cのプログラミング処理は、2つのステップの処理である。第1ステップでは、下側ページをプログラムする。下側ページがデータ1のままである場合、メモリセル状態は状態Eに留まる。データが0にプログラムされる場合、メモリセルの閾値電圧は上昇し、メモリセルは状態B’にプログラムされる。従って、図8Aは、状態Eから状態B’へのメモリセルのプログラミングを示している。図8Aに示した状態B’は暫定的状態Bであり、従って、検証点はVvb’として示され、前記検証点はVvbより低い。
一実施形態では、状態Eから状態B’にメモリセルをプログラムした後、NANDストリング内の隣接メモリセル(WLn+1)をその下側ページに対してプログラムする。例えば、WL0に接続されたメモリセル用の下側ページをプログラムした後、WL1に接続されているが同じNANDストリング上にあるメモリセル(近傍のメモリセル)用の下側ページをプログラムする。近傍のメモリセルをプログラムした後、初期のメモリセルが状態Eから状態B’に上昇した閾値電圧を有していた場合、フローティングゲート間の結合の影響はプログラムされる初期のメモリセルの見かけの閾値電圧を上昇させる。これは、図12Bに示されている状態B’の閾値電圧分布を拡大する影響を有する。閾値電圧分布のこの見かけの拡大は、上側ページをプログラムする際に修正される。
図8Cは、上側ページをプログラムする処理を示している。メモリセルが消去状態Eであって上側ページが1に留まる場合、メモリセルは状態Eに留まる。メモリセルが状態Eであり、その上側ページデータが0にプログラムされる場合、メモリセルの閾値電圧は上昇し、メモリセルは状態Aになる。メモリセルが中間の閾値電圧分布550であって上側ページデータが1に留まる場合、メモリセルは最終的な状態Bにプログラムされる。メモリセルが中間の閾値電圧分布550であって上側ページデータがデータ0になる場合、メモリセルの閾値電圧は上昇し、メモリセルは状態Cになる。隣接メモリセルの上側ページプログラミングだけが所定のメモリセルの見かけの閾値電圧に影響を与えるので、図8A−Cで示した処理はフローティングゲート間の結合の影響を低減する。別の状態符号化の一例は、上側ページデータが1であるとき分布550から状態Cに移動することであり、上側ページデータが0であるとき状態Bに移動することである。
図8A−Cは4つのデータ状態と2つのページデータに対する一例を提供するが、図8A−Cによって開示された概念は4つより多い、又は少ない状態、及び2つのページ、及び/又は他のデータエンコード、とは異なるページを備えた他の実装形態に適用することもできる。例えば、本発明は、3ビットのデータを記憶し、8つのデータ状態を使用し、図6、図7又は図8A−Cの工程に基づいてプログラムする、メモリセルに用いることができる。
図9は、図12Aから図12Cのプログラミング方法を使用してメモリセルをプログラムするための順序の一実施形態を説明する表である。ワードラインWL0に接続されたメモリセルの場合、下部ページがページ0を形成し、上部ページがページ2を形成する。ワードラインWL1に接続されたメモリセルの場合、下側ページがページ1を形成し、上側ページはページ4を形成する。ワードラインWL2に接続されたメモリセルの場合、下側ページがページ3を形成し、上側ページがページ6を形成する。ワードラインWL3に接続されたメモリセルの場合、下側ページがページ5を形成し、上側ページがページ7を形成する。メモリセルは、ページ番号に従って、ページ0からページ7までプログラムされる。他の実施形態では、他のプログラミングの順序も使用できる。
図10は、選択されたワードラインに接続されているメモリセルをプログラミングするプログラミング処理を説明するフローチャートである。従って、図10の工程は、図6のフルシーケンスプログラミング、図7のツーパスプログラミング技法の1つのパス(第1のパス又は第2のパスのどちらか)、あるいは図8Aから図8Cのツーステッププログラミングの1つのパス(第1のパス又は第2のパスのどちらか)を実現するために使用される。一実施形態においては、図10の工程は、制御回路網220の指示によって、及び/又は指示で実行される。図10の工程は、3ページのデータ(例えば、メモリセルあたりの3ビットのデータ)のためのスリーパスプログラミング技法の1つのパスとして、あるいは別のマルチパスプログラミング技法の1つのパスとしても実行できる。多くの異なるプログラミング技法が、本発明とともに使用できる。
図10の工程の1つの実装形態では、メモリセルはプログラミング(ステップ600)の前に(ブロック単位又は他の単位で)消去される。メモリセルは、ソースラインとビットラインが浮動である間に、十分な期間p−ウェルを消去電圧(例えば20ボルト)に上げ、選択されたブロックのワードラインを接地させることによって一実施形態で消去される。容量結合のため、未選択ワードライン、ビットライン、選択ライン、及びソースラインも消去電圧のかなりの部分に引き上げられる。従って、強力な磁場が選択されたメモリセルのトンネル酸化物層に適用され、選択されたメモリセルのデータは、フローティングゲートの電子が、通常、ファウラー−ノルドハイムトンネル機構によって基板側に放出されるにつれて消去される。電子がフローティングゲートからp−ウェル領域に移されるにつれて、選択されたセルの閾値電圧は引き下げられる。消去はメモリアレイ全体、別々のブロック、又はセルの別の単位で実行できる。メモリセルのブロックが消去された後、本書に説明されるように多様なメモリセルがプログラミングできる、あるいは部分的にプログラミングできる。ステップ600で実行される消去が、ブロックの各ワードラインがプログラミングされる前に実行される必要がないことに留意する。むしろ、ブロックは消去することができ、次に各ワードラインは、ワードラインのプログラミングの間に消去を行わずにプログラミングできる。
ステップ602では、消去されたメモリセルの消去閾値電圧の分布を狭めるために、ソフトプログラミングが実行される。いくつかのメモリセルは、消去工程の結果として必要以上の消去状態にあってよい。ソフトプログラミングは、消去されたメモリセルの閾値電圧を消去検証レベルにさらに近づけるために小さなプログラミングパルスを印加できる。ステップ604では、「データロード」コマンドが制御部244によって発行され、状態マシン222に入力される。ステップ606では、ページアドレスを指定するアドレスデータが復号部に提供される。ステップ608では、アドレス指定されたページの1ページのプログラムデータがプログラミングのために入力される。そのデータは、選択されたビットラインのための適切なレジスタ/ラッチでラッチされる。いくつかの実施形態では、データは検証動作に使用される選択されたビットラインのための第2のレジスタでもラッチされる。ステップ610では、「プログラム」コマンドが制御部244から受け取られ、状態マシン222に提供される。
「プログラム」コマンドによってトリガされ、ステップ608でラッチされたデータは、適切なワードラインに印加されるパルスを使用して状態マシン222によって制御される選択されたメモリセルにプログラミングされる。ステップ612では、Vpgm、即ちプログラミング電圧信号(例えば一連のパルス)が開始規模(例えば〜12V又は別の適当なレベル)に初期化され、状態マシン222によって維持されるプログラムカウンタPCが0で初期化される。ステップ614では、プログラム信号Vpgmのパルスが選択されたワードラインに印加される。これは、選択されたワードラインに接続されるメモリセルのそれぞれの制御ゲートに電圧パルスを提供する効果を有する。従って、選択されたワードラインに接続されている全てのメモリセルは、たとえ該メモリセルがプログラミングから禁止又はロックアウトされていても、電圧パルスを受け取っているため、プログラミングを受ける。一実施形態は、プログラム妨害を妨げるために、プログラミング中に未選択NANDストリングをブーストすることを含む。多様なブースト方法を使用できる。ブーストについての詳細は、両方ともその全体を参照することにより本明細書に援用される、2006年9月27日に出願された米国特許出願第11/535,628号「Reducing Program Disturb In Non-Volatile Storage」、及び米国特許第6,859,397号に記載されている。
ステップ616で、プログラミングされているメモリセルは、該メモリセルがそれらの目標レベルに到達したかどうかを判断するために検証される。メモリセルの閾値電圧が目標閾値電圧レベルに到達すると、メモリセルは適切にプログラミングされており、そのビットライン電圧を上げる(又は別の方法を使用する)ことによって追加のプログラミングからロックアウトできる。メモリセルの閾値電圧が目標閾値電圧レベルに達していない場合、メモリセルは適切にプログラミングされておらず(例えば、プログラミングが完全に完了していない、プログラミングが低速である、エラーがある等)、追加のプログラミングが実行されてよい。
一般的には、検証動作及び読み出し動作中、選択されたワードラインは電圧に接続され、該電圧のレベルは、関係するメモリセルの閾値電圧がこのようなレベルに到達しているかどうかを判断するために、読み出し動作及び検証動作ごとに指定される。ワードライン電圧を印加した後、メモリセルの伝導電流が、ワードラインに印加された電圧に応えてメモリセルがオンになったかどうかを判断するために測定される。伝導電流がある値よりも大きいと測定される場合、メモリセルがオンになり、ワードラインに印加された電圧がメモリセルの閾値電圧より大きいと仮定される。伝導電流がある値より大きいと測定されない場合には、メモリセルがオンにならず、ワードラインに印加された電圧がメモリセルの閾値電圧よりも大きくないと仮定される。
読み出し動作又は検証動作の間のメモリセルの伝導電流を測定するための多くの方法がある。一例では、メモリセルの伝導電流は、該メモリセルがセンス増幅器内の専用のコンデンサを放電する又は充電する速度で測定される。別の例では、選択されたメモリセルの伝導電流は、メモリセルを含んだNANDストリングが対応するビットラインを放電することを可能にする(あるいは可能にできない)。ビットライン上の電圧は、それが放電されたかどうかを確かめるために一定の期間の後に測定される。
いくつかの実施形態においては、検証工程は、メモリセルの閾値電圧が各状態の多様な目標レベルに到達したかどうかを試験することを含む。例えば、図6に関して、3つの、即ち(1)Vvaのための、(2)Vvbのための、及び(3)Vveのための検証動作がある。3ビットのデータの場合、最高7つの検証動作がある場合がある。
検証工程を実行後、ステップ614、616、617、618、620、622、624、626、628、及び630のループの反復が、ある特定の実装形態の試験及び性能特徴付けに基づいて、選ばれたなんらかの閾値数未満であるかどうかが決定される。後述されるように、本書に提案されている技術は、重複するゾーンの集合のエラービットを決定することである。一実施形態では、ステップ614、616、617、618、620、622、624、626、628及び630のループのX回の反復の後まで開始しない。Xの一例は17である。(ステップ617で決定される)X回の反復の前に、全ての選択されたメモリセルがその目標とされたプログラミング状態に到達した場合(ステップ630)、ステップ616の検証の後にステップ622のプログラミングの無事完了の報告が続く。全ての選択されたメモリセルがそれらの目標とされたプログラミング状態に到達していない場合(ステップ630)には、(X回の反復の前に)プログラミング処理は後述されるステップ624に進む。
(ステップ617で試験される)X回の反復後、ステップ616の検証の後に、ゾーンあたりのエラービット数の決定(ステップ618)が続く。エラービットは、その閾値電圧がその目標レベルに到達していないために、適切にプログラミングされていなかったメモリセルに記憶されるデータビットである。例えば、メモリセルが状態Cにプログラミングされていると仮定される(図6を参照)場合は、閾値電圧がVvc未満である場合それはエラービットである。従来の技術の装置では、エラービットの数はページ内の全てのデータについて計算される。提案されている現在の技術は、ページのデータを重複するゾーンの集合にグループ化し、ゾーンごとにエラービットの数を計算することである。
図11は、データのページの例、及び該ページがどのように重複するゾーンにグループ化されるのかを示す。データのページの最後に、冗長データRDの集合があることに留意する。冗長データRDは、ページに関連するメモリセルと同じワードラインに接続されるブロック内の冗長なメモリセルの集合に記憶される。ページに関連する元のメモリセルが、製造又は他の理由のためにフェイルすると、装置試験、装置製造、又は他のイベントの間、フェイルしたメモリセルを置換するために、冗長なメモリセルを割り当てることができる。従って、ページの不良オリジナルデータビットは、冗長なデータビットで置換される。メモリアレイは、どの冗長なメモリセルが、どのオリジナルデータメモリセルを置換するために割り当てられるのかを追跡調査する。冗長性は、通常、列で管理される。短いビットライン又は開いたビットライン等のいくつかの欠陥は、通常の列を置換するために冗長な列を使用する。ランダムビット障害は、その列アドレスの全てのビットは同時に置換されないので、通常冗長性列では置換されない。限られた数の冗長列は、列欠陥全体だけでの使用も制限する。
図11は、16の重複するゾーンにグループ化される冗長データRDを含むデータのページを示す。ゾーン0は、ゾーン1と重複する。ゾーン2はゾーン1とゾーン3と重複する。ゾーン4はゾーン3とゾーン5と重複する等である。一実施形態では、各セクタは512バイトのデータ及びECC/ヘッダ情報に使用される26バイトを有する。ページ内に16のセクタがあり、各ゾーンは1Kである。他の実施形態では、他のサイズ及び配列も使用できる。本発明は特定のサイズ又は配列に制限されない。冗長データRDがゾーン16の一部であることに留意する。
図12は、ページの1つの例における16のセクタの開始アドレスと終了アドレスを示す表である。図13は、ページの1つの例の16の重複するゾーンの開始アドレスと終了アドレスを示す表である。この例では、ゾーンはセクタよりも大きく、各ゾーンは1つのセクタ全体をカバーし、少なくとも2つのセクタに渡り、多くのセクタが2つ以上のゾーンにある。このようなゾーン構造を有する理由は、ユーザセクタが、グループとして検出されるのが(可能ではあるが)難しい非バイナリサイズであるためである。実装形態の複雑さを削減するために、ゾーンは、それが少なくとも1つのセクタ全体をつねにカバーするように設計される。あらゆるユーザセクタがゾーンでカバーされていることを確認するために、16のゾーンが重複する方法で配列される。いくつかのケースでは、ゾーンサイズは2つ以上のセクタをカバーするように増加できる。検出時間を節約するため、ゾーンは2つに半分割することが可能で、それぞれの半分は一度エラーがないか走査されるだけである。各ゾーンは、半分が2つあるとして見なすことができる。即ち、第1の半分は1つの隣接するゾーンと重複し、第2の半分は別の隣接するゾーンと重複する。例えば、ゾーン2の第1の半分はゾーン1と重複し、ゾーン2の第2の半分はゾーン3と重複する。他の実施形態では、他のサイズ及び配列も使用できる。
図10を振り返ると、ステップ618は、各ゾーンのエラービット数を決定することを含む。いくつかの実施形態では、いくつかのエラービットが複数のゾーンにある場合がある。ステップ620では、ゾーンごとのエラービットの数が限界未満であるかどうかが決定される。例えば、多様なECC実装形態は、回復できるエラービットの設定数を有する。ステップ620で使用されている限界は、読み出し工程の間に発見された他のエラーを許容するために回復できるエラービットのその設定数未満でなければならない。ECC方式が4個のエラービットを許容する場合には、ステップ620の限界は1個又は2個のエラービットとなるであろう。ECC方式が10個のエラービットを許容する場合には、ステップ620の限界は1、2、3、4又は10未満の別の量のエラービットとなるであろう。一例では、ステップ620の試験は、あらゆるゾーンが3個未満のエラービットを有するかどうかである。有する場合には、プログラミング処理は無事に完了した(ステップ622)。有さない場合には、プログラムカウンタPCはステップ624のプログラム制限値PLIMITと照合される。プログラム限界値の一例は20である。ただし、プログラム限界値は、実装形態に応じて20未満となるか、20を超えるであろう。プログラムカウンタPCがプログラム限界値PLIMIT未満である場合には、Vpgmパルスの大きさはステップサイズ(例えば、0.2−0.4ボルトステップサイズ)分増加され、プログラムカウンタPCはステップ628で増分される。ステップ628の後、工程は次のVpgmパルスを印加するためにステップ614に一巡して元に戻る。プログラムカウンタPCがプログラム限界値未満ではない(ステップ624)場合には、プログラミング工程は失敗となる(ステップ626)。
図10の代替実施形態では、ステップ617と630は実行されず、ステップ614、616、618、620、622、624、626及び628のループの各反復がゾーンあたりのエラービット数を決定すること(ステップ618)と、全てのゾーンが限界より少ないエラービットを有するかどうかを比較すること(ステップ620)とを含む。即ち、ステップ616の後、工程はつねにステップ618で続行する(ステップ617及び630を省略する)。
図14は、ゾーンごとのエラービット数を決定する工程の一実施形態を説明するフローチャートである(図10のステップ620を参照)。図14の工程が実装形態の一例にすぎないことに留意する。他の実装形態も本発明の精神の範囲内である。列冗長性を備えたフラッシュメモリ構造では、冗長な列で置換される不良列は特別な方法でカウントする必要がある。1つのゾーンの2つの不良列が冗長な列で置換される場合には、プログラムされない障害ビットをカウントするだけでは、ユーザセクタ内の全てのエラーをカバーするのに十分ではない。ユーザセクタのいくつかのエラービットは列冗長となるであろう。従って、冗長な列のエラーはカウントしなければならない。しかし、冗長な列の情報は、エラー検出時では容易に入手できない。1つの解決策は、冗長な列の全てのエラーをカウントし、最悪のケースの状況を説明するために、各ゾーンのエラーカウントに加えることである。図14のステップ650では、エラービットの数は冗長なメモリセルについて決定される。一実施形態では、どのセクタに冗長なメモリセルが割り当てられるのかに関係なく、冗長なメモリセルの全エラービットがカウントされる。ステップ652では、冗長なメモリセルについて決定されるエラービット数はレジスタ又は他の記憶装置に記憶される。一実施形態では、ステップ650は、ゾーン16の第2の半分又はゾーン16の別の部分のエラービット数を決定することによって実行される。他の実施形態では、冗長なメモリセルは他のゾーンにある場合がある。
ステップ654では、ゾーン0の第1の半分についてエラービット数が決定される。一実施形態では、各ゾーンは第1の半分と第2の半分に分割される。例えば、ゾーン0の第1の半分がアドレス0で開始し、アドレス511で終了し、ゾーン0の第2の半分はアドレス512で開始し、アドレス1023で開始する。アドレス0とアドレス511の間のエラービット数はステップ654でカウントされ、ステップ656で記憶される。
図15は、状態マシン222又は制御回路網220の他の部分に含まれる構成要素の一実施形態を示す。アキュムレータ700は、(さらに詳細に後述される)フラグバスの1行又は複数行の集合を受け取る。フラグバスは、アキュムレータ700によって蓄積された(後述される)エラービットの表示を提供する。アキュムレータ700はRDレジスタ702とハーフゾーンシフトレジスタ704に接続されている。ハーフゾーンシフトレジスタ704は、ハーフゾーンシフトレジスタ706に接続されている。RDレジスタ702、ハーフゾーンシフトレジスタ704、及びハーフゾーンシフトレジスタ706は、全て付加回路708の入力に接続される。付加回路708の出力及び(前述された「限界」値を記憶する)レジスタ712の出力が、比較回路710に提供される。
アキュムレータ700は、冗長な列のエラービット数を決定し(図14のステップ650)、RGレジスタ702にその数を記憶する(ステップ652)。アキュムレータ700は、ゾーン0の第1の半分のエラービット数を決定し(ステップ654)、ハーフゾーンシフトレジスタ704にその数を記憶する(ステップ656)。ステップ658では、ハーフゾーンシフトレジスタ704のデータがハーフゾーンシフトレジスタ706の中にシフトされる。ステップ660では、アキュムレータ700は、(この反復ではゾーン0の第2のハーフゾーンである)次の半分のエラービット数を決定し、ハーフゾーンシフトレジスタ704にその数を記憶する(ステップ662)。ステップ664では、付加回路708が冗長なメモリセル(RDレジスタ702)、検討中の現ゾーンの第1の半分(ハーフゾーンシフトレジスタ704)、及び検討中のゾーンの第2の半分(ハーフゾーンシフトレジスタ706)の中のエラービットの合計を計算する。
ステップ666では、ステップ664で計算された合計がレジスタ712内に記憶される「限界」値未満であるかどうかが決定される。一実施形態では、各ゾーンは同じ「限界」値を使用する。他の実施形態では、異なるゾーンが異なる「限界」値を使用する。ステップ666が比較回路710によって実行される。比較回路710の出力は、図14の工程をどのように進めるのかを決定するために状態マシン222によって使用される。ステップ664で計算される合計がレジスタ712に記憶される限界値未満ではない場合には、少なくとも1つのゾーンが限界以上であるエラービット数を有する(ステップ668)ため、図14の工程は停止できる。他の実施形態では、システムは、1つのゾーンが限界を超えていることが判明しても、全てのゾーンのエラービットのカウントを続行できる。ステップ666で、ステップ664で計算された合計がレジスタ712に記憶されている限界値未満であると決定されると、ステップ670で、検討するさらに多くのハーフゾーンがあるかどうかが決定される。システムが、ゾーン1の第2の半分だけを検討した場合には、検討するさらに多くのハーフゾーンがある。検討するさらに多くのハーフゾーンがある場合には、工程はステップ658に一巡して元に戻り、データをシフトし、次のハーフゾーンのエラービットを決定する。このようにして、ステップ658から670のループがゾーンごとに実行される。ハーフゾーンの全てが検討された(ステップ672)後、状態マシンは、全てのゾーンがステップ672の限界未満のエラービット数を有すると結論づける。いくつかの実施形態では、検討される必要のある最後のハーフゾーン(ステップ670)がゾーン16の第1のハーフゾーンとなるように、ゾーン16の第2の半分がステップ650の一部として検討されることに留意する。他の実施形態では、(冗長なビットをカウントしない)ゾーン16の第2の半分は、検討する最後のハーフゾーンとなる場合がある。さらに別の実施形態では、システムは冗長ビットなしで実現できる。
図16Aは、ハーフゾーンのエラービット数を決定する工程の一実施形態を説明するフローチャートである。この工程は、図14のステップ650、654、及び660を実現するために使用できる。ステップ750では、検討中のハーフゾーンのメモリセルの全てが、それらがエラービットであるかどうかを判断するために試験される。一実施形態では、検証工程は、それぞれの検出回路470によってすでに実行され、結果はそれぞれのデータラッチ494に記憶されている。ステップ750は、関連するデータビットが、その目標閾値電圧に達したことが検証されたかどうかを報告するそれぞれのプロセッサ492を含む。一実施形態では、プロセッサの全ては、任意の1台のプロセッサがエラービットを信号で伝えるとフラグラインが引き下ろされるようにワイヤードOR技術を使用して1つのフラグラインに接続される。エラービットがない場合(ステップ752)には、工程は完了し、ステップ758でエラービットを報告しない。エラービットがある場合(ステップ752)には、システムはステップ754でバイナリ検索工程を実行し、ステップ756で検出されたエラービット数を報告する。
図16Bは、バイナリ検索工程(ステップ758を参照すること)の一実施形態を説明するフローチャートである。ステップ802では、検討中の領域が2分割にされる。初めて図16Bの工程が図16Aのステップ754に応じて呼び出されるとき、検討中の領域はハーフゾーンである可能性がある。その後、図16Bの工程が呼び出されるとき(ステップ810と826に関して以下を参照)、検討中の領域はハーフゾーンの一部である。ステップ804では、図16Aのステップ750と同様に、分割された領域の第1の半分が試験される。ステップ806では、ステップ804で試験された分割された領域の第1の半分にエラービットがあるかどうかが決定される。エラービットがあり、ステップ804で試験された分割された領域の第1の半分が単一のメモリセルではない場合(ステップ808)には、図16Bのバイナリ検索工程がステップ810で再帰的に実行される。即ち、ステップ810は、図16Bによって説明されるように、現在の領域を半分に分割し、その領域に作用するために、ステップ802が次に実行されるように図16Bの工程を再帰的に呼び出すことを含む。従って、ステップ810を実行することは、検討中の領域でステップ802を実行し、次にステップ804及び図16Bの他のステップを続行することを含む。ステップ804で試験された分割された領域の第1の半分が単一のメモリセル(ステップ808)である場合には、エラービットカウンタ(例えば、アキュムレータ700等のレジスタ又はラッチ付きのカウンタ回路)がステップ812で増分され、メモリセルは、そのメモリセルが図16のステップ754の一部として図16Bの再帰的な工程の後の反復で報告されないようにするためにステップ814でタグを付けられる。例えば、メモリセルのそれぞれのデータラッチ494は、それがエラービットではないことを示すために反転されてよく、適切なプロセッサ492の別のラッチが、プロセッサ492がそのメモリセルについてエラーを報告しないように設定できる、あるいは別の手段が使用できる。
ステップ806で、領域の第1の半分のエラービットがなかったと決定されると、ステップ820で第2の半分が試験される。さらに、ステップ810と814の後に、工程は、検討中の領域の第2の半分を試験するためにステップ820にループする。ステップ820での試験は、ステップ804での試験と同様であるが、検討中の領域の異なる半分で実行される。検討中の領域の第2の半分にフェイルビットがあり、検討中の領域の第2の半分が単一のメモリセルである(ステップ824)場合には、エラービットカウンタがステップ826で増分され、メモリセルは、そのメモリセルが図16のステップ754の一部として、図16Bの再帰工程の後の反復で報告されないようにするためにステップ828でタグが付けられ、工程は再帰の以前のレベルに戻る(ステップ830)。エラービットがあり、ステップ820で試験された分割された領域の第2の半分が単一のメモリセルではない場合(ステップ824)には、図16Bのバイナリ検索工程がステップ832で再帰的に実行される。工程がステップ832から戻って来ると、工程は再帰以前のレベルに戻る(ステップ830)。
要約すると、バイナリ検索工程はそれ自体を再帰的に呼び出し、エラービットが検出されるまで試験と分割を続行し、次にバイナリ検索は適切なレベルの再帰まで戻り、別のエラービットが検出されるまで試験と分割を続行する。任意のレベルの再帰では、領域にエラービットがあることが試験で判明すると、領域は分割され、検索される。領域にエラービットがないことが試験で判明すると、領域は分割、検索されない。工程の最後に、アキュムレータ700はハーフゾーンのエラービット数を記憶する。
一実施形態では、全てのプロセッサ492に1つのフラグラインがある。別の実施形態では、多様なプロセッサ492が、8ビット幅であるフラグバスに接続される8台のプロセッサの単位にグループ化できる。アキュムレータ700は、フラグバスに接続し、エラーを示すフラグバス内のライン数を加算できる。
1フラグライン又はマルチラインフラグバスを使用するいくつかの実施形態は、各プロセッサ492を8つの検出モジュール480に接続する。このようにして、各プロセッサ492は8ビットのデータについて報告する。実装形態の1つの例では、図16Aの工程はハーフゾーンごとに8回実行することができ、図16Aの工程の実行のそれぞれが、プロセッサ492に関連付けられる8ビットの内の1つのためである。アキュムレータ700は、図16Aの工程の8回全ての実行の結果を蓄積する。
図17は、プロセッサ492が状態マシン222にどのようにしてエラービットを報告するかについての一実施形態を示すブロック図である。図17の実施形態は、多様なプロセッサ492が、8ビットフラグバス(Flag_Bus[0:7])に接続される8台のプロセッサ(492a、492b、492c、492d、492e、492f、492g、492h)の単位にグループ化されることを仮定する。プロセッサは、1ビットのデータ、8ビットのデータ、又は別の量のデータにそれぞれ接続できる。8台のプロセッサのグループは、状態マシン222からアドレスバスADDRを受け取るアドレス選択論理回路848と関連付けられる。図17に示されている一実施形態では、アドレスバスADDRは、8台のプロセッサ492の各グループを個々にアドレス指定できる。別の実施形態では、アドレスバスADDRは、システム全体の各プロセッサ492を個々にアドレス指定できる。
プロセッサ492aは、トランジスタ850と852を介してFlag_Bus[0]に接続される。プロセッサ492bは、トランジスタ854と856を介してFlag_Bus[1]に接続される。プロセッサ492cは、トランジスタ858と860を介してFlag_Bus[2]に接続される。プロセッサ492dは、トランジスタ862と864を介してFlag_Bus[3]に接続される。プロセッサ492eは、トランジスタ866と868を介してFlag_Bus[4]に接続される。プロセッサ492fは、トランジスタ870と872を介してFlag_Bus[5]に接続される。プロセッサ492gは、トランジスタ874と876を介してFlag_Bus[6]に接続される。プロセッサ492hは、トランジスタ878と880を介してFlag_Bus[7]に接続される。
プロセッサ492aは、関連メモリセルがエラービットである場合、Flag_Bus[0]を引き下げるためにトランジスタ852をオンにする。他のプロセッサ(8台のプロセッサの他のグループを形成する)も、該プロセッサの内の任意の1つがエラービットを有するようにFlag_Bus[0]に接続され、Flag_Bus[0]が引き下げられる。プロセッサ492bは、関連メモリセルがエラービットである場合、Flag_Bus[1]を引き下げるためにトランジスタ856をオンにする。プロセッサ492cは、関連メモリセルがエラービットである場合、Flag_Bus[2]を引き下げるためにトランジスタ860をオンにする。プロセッサ492dは、関連メモリセルがエラービットである場合にFlag_Bus[3]を引き下げるためにトランジスタ864をオンにする。プロセッサ492eは、関連メモリセルがエラービットである場合Flag_Bus[4]を引き下げるためにトランジスタ868をオンにする。プロセッサ492fは、関連メモリセルがエラービットである場合にFlag_Bus[5]を引き下げるためにトランジスタ872をオンにする。プロセッサ492gは、関連メモリセルがエラービットである場合にFlag_Bus[6]を引き下げるためにトランジスタ876をオンにする。プロセッサ492hは、関連メモリセルがエラービットである場合にFlag_Bus[7]を引き下げるためにトランジスタ880をオンにする。
アドレス選択論理回路848は、トランジスタ850、854、858、862、866、870、874及び878に接続される。状態マシンが、図17に描かれている8台のプロセッサ(492a、492b、492c、492d、492e、492f、492g、492h)のグループと関連するデータを試験している場合は、アドレス選択論理回路848がトランジスタ850、854、858、862、866、870、874及び878をオンにする。アドレス選択論理回路は、アドレスバスADDRを受け取る回路(例えば、組み合わせ論理回路又は他の回路)を含み、正しいアドレスがアドレスバスADDR上にある場合に信号を出力する。一実施形態では、アドレスバスADDRは、アドレスラインの集合(例えば、ADDR[0:12])と、賛辞アドレスライン[(ADDR’[0:12])の集合とを含む。賛辞アドレスライン(ADDR’[0:12])は、それらが必ずしもADDR[0:12]の逆数である必要がないように別々にアサートできる。アドレス選択論理回路848は、ADDR[0:12]の適切なラインと、ADDR’[0:12]の適切なラインとに接続でき、8台のプロセッサ(492a、492b、492c、492d、492e、492f、492g、492h)のグループがいつ選択されるのかを認識するANDゲートの集合(又は他の論理回路又は他の回路要素)にそのデータを送信できる。この方式により、8台のプロセッサのグループ1つを選択できる、あるいは8台のプロセッサのグループ複数を選択できる。
フェイルビットがあるかどうかの試験(ステップ750、804及び820を参照)は、(各グループのプロセッサ492a、492b、492c、492d、492e、492f、492g、492hの)関連するプロセッサがFlag_Bus[]の適切なラインを引き下げるために(各グループのトランジスタ850、854、858、862、866、870、874、878の)そのそれぞれのトランジスタをオンにすることと、アキュムレータ700(又は状態マシン222内の別の回路)によって該引き下げられたラインを検出すること、とによって実行される。バイナリ検索工程の間のハーフゾーンの適切な部分のアドレス指定は、アドレスバスADDRの適切なラインをアサートすることによって実行される。
図18は、選択されたワードラインに接続されているメモリセルをプログラミングする工程の図10の実施形態の代替実施形態を説明するフローチャートである。図18のステップ600から616は図10において同じである。図18の工程でのステップ616の検証工程の後、状態マシン222は、全てのメモリセルがそれらの目標状態に達したことを検証されたかどうかを、ステップ903で決定する。検証された場合、図18のプログラミング処理は完了となる(ステップ904)。ステップ902で、全ての選択されたメモリセルがその目標状態に到達したわけではないと決定されると、ステップ906で、プログラムカウンタPCがプログラム限界値PLIMITと照合される。プログラムカウンタPCがプログラム制限値未満である場合には、Vpgmパルスの大きさはステップサイズ(例えば、0.2から0.4ボルトステップサイズ)分増加され、プログラムカウンタPCはステップ908で増分される。ステップ908の後、工程は次のVpgmパルスを印加するためにステップ614に一巡して戻る。プログラムカウンタPCがプログラム限界値未満ではない場合(ステップ906)は、ステップ920で、(図10のステップ618と同様に)ゾーンごとのエラービット数が決定される。ステップ922では、ゾーンごとのエラービット数が、(図10のステップ620と同様に)ゾーンごとの許容限界未満であるかどうかが決定される。許容限界未満である場合、プログラミング処理は、無事に完了したとして処理される(ステップ924)。許容限界未満ではない場合、プログラミング処理は失敗したとして処理される(ステップ926)。
図10から図18に関して説明された技術は、4つのデータ状態記憶装置内に2個のビットのデータ、8つのデータ状態に3ビットのデータ、又は他の配列を記憶するメモリセルとともに使用できる。
本発明の前記の詳細な説明は、図解及び説明のために提示された。網羅的となること、あるいは本発明を開示されている正確な形式に制限することは意図されていない。上記の提示を鑑みて多くの変型及び変形が可能である。説明した実施形態は、本発明の原理及びその実際的な応用例を最もよく説明し、それにより当業者が多様な実施形態で、及び意図された特定の用途に適するような多様な変型で本発明を最もうまく活用できるようにするために選ばれた。本発明の範囲が本明細書に添付される請求項により定められることが意図される。

Claims (13)

  1. 不揮発性記憶システムであり、
    複数の不揮発性記憶素子と、
    前記複数の不揮発性記憶素子と通信するとともに、前記複数の不揮発性記憶素子に検証電圧を提供する1又は複数の電圧生成回路と、
    前記複数の不揮発性記憶素子と通信するとともに、前記複数の不揮発性記憶素子の状態を検出する複数の検出回路と、
    前記複数の検出回路と通信する複数のデータ処理回路と、
    前記複数の不揮発性記憶素子の重複する各グループにおいて適切にプログラミングされていない不揮発性記憶素子の数が閾値数未満かどうかを判断し、前記グループの全てにおいて適切にプログラミングされていない不揮発性記憶素子の数が前記閾値未満である場合に前記不揮発性記憶素子のプログラミングが成功したと判断し、前記グループの少なくとも1つにおいて適切にプログラミングされていない不揮発性揮発素子の数が前記閾値数未満でない場合に前記不揮発性記憶素子のプログラミングが不成功であったと判断するとともに、前記1又は複数の電圧生成回路と前記複数のデータ処理回路と通信する制御回路備えており
    前記データ処理回路、前記不揮発性記憶素子が適切にプログラミングされていたかどうかすデータを前記制御回路に提供することを特徴とする不揮発性記憶システム。
  2. 前記制御回路がマルチラインフラグバスを含み、
    前記複数のデータ処理回路が、それぞれの不揮発性記憶素子が適切にプログラミングされていたかどうかを示すために前記フラグバスの1つのラインにそれぞれ接続される、
    請求項1に記載の不揮発性記憶システム。
  3. 前記制御回路が第1のレジスタと、第2のレジスタと、第3のレジスタとを含み、
    前記制御回路が、前記第1のレジスタ、前記第2のレジスタ、及び前記第3のレジスタに接続される入力の集合を有する加算回路をさらに含み、
    前記複数の不揮発性記憶素子が、元データの不揮発性記憶素子と、冗長な不揮発性記憶素子とを含み、
    前記第3のレジスタが冗長な不揮発性記憶素子のカウントを記憶し、
    前記第1のレジスタが、前記重複するグループの内の特定のグループの第1の半分のカウントを記憶し、
    前記第2のレジスタが、前記重複するグループ内の前記特定のグループの第2の半分のカウントを記憶する、
    請求項1又は2に記載の不揮発性記憶システム。
  4. 前記複数の不揮発性記憶素子が、元データの不揮発性記憶素子と、冗長な不揮発性記憶素子を含み、
    前記制御回路が前記不揮発性記憶素子のグループにおいて適切にプログラミングされていなかった不揮発性記憶素子の合計を計算し、前記合計がそれぞれのグループにおいて適切にプログラミングされていなかった元データの不揮発性記憶素子の数と、冗長な不揮発性記憶素子の数とをそれぞれ含み、前記制御回路が各合計を限界と比較する、
    請求項1〜3のいずれか1項に記載の不揮発性記憶システム。
  5. 前記制御回路が、前記グループの内の少なくとも1つにおいて適切にプログラミングされていない不揮発性記憶素子の数が前記閾値数未満ないと判断する場合に、前記制御回路が前記不揮発性記憶素子のために追加のプログラミングを行わせ、
    前記不揮発性記憶素子の前記重複するグループにおいて適切にプログラミングされていない不揮発性記憶素子の数が前記閾値数未満であると前記制御回路が判断する場合に、前記不揮発性記憶素子のためのプログラミング完了する、
    請求項1〜4のいずれか1項に記載の不揮発性記憶システム。
  6. 前記制御回路は、
    適切にプログラミングされていない第1の不揮発性記憶素子を検出するために特定のグループでバイナリ検索を実行し、適切にプログラミングされていない不揮発性記憶素子のカウントを更新し、前記第1の不揮発性記憶素子に、それが再びカウントされないようにタグを付け、前記バイナリ検索を繰り返すことによって、前記不揮発性記憶素子の前記重複するグループにおいて適切にプログラミングされていない不揮発性記憶素子の数が前記閾値数未満であると判断する、
    請求項1〜のいずれか1項に記載の不揮発性記憶システム。
  7. 前記制御回路がフラグラインを含み、
    前記複数のデータ処理回路が、それぞれの不揮発性記憶素子が適切にプログラミングされていたかどうかを示すために前記フラグラインに接続される、
    請求項1に記載の不揮発性記憶システム。
  8. 前記不揮発性記憶素子がマルチ状態フラッシュメモリ素子である請求項1〜のいずれか1項に記載の不揮発性記憶システム。
  9. 複数の不揮発性記憶装置をプログラミングする方法であり、
    不揮発性記憶素子の集合が不揮発性記憶素子の重複するグループを含んでおり、不揮発性記憶素子の前記集合に、プログラミング処理の一部としてプログラミングを受けさせる工程と、
    各グループにおいて適切にプログラミングされていない不揮発性記憶素子の数が閾値数未満であるかどうかを試験する試験工程と、
    前記グループの全てにおいて適切にプログラミングされていない不揮発性記憶素子の数が前記閾値数未満である場合に、前記プログラミング処理が成功したと判断し、前記グループの少なくとも1つにおいて適切にプログラミングされていない不揮発性記憶素子の数が前記閾値数未満でない場合に、前記プログラミング処理が不成功であったと判断する工程と、
    前記判断工程で不成功と判断される場合に、前記プログラミング処理をさらに進めるプログラミング工程、
    を備える方法。
  10. 前記プログラミング工程が、
    前記グループの少なくとも1つにおいて適切にプログラミングされていない不揮発性記憶素子の数が前記閾値数未満ない場合に、不揮発性記憶素子の前記集合に追加のプログラミングを受けさせるステップと、
    前記グループの全てにおいて適切にプログラミングされていない不揮発性記憶素子の数が前記閾値数未満である場合に、前記プログラミング処理を停止するステップ、
    を備える請求項に記載の方法。
  11. 前記試験工程が、
    適切にプログラミングされていなかった特定のグループの冗長な不揮発性記憶素子の第1の数を判断するステップと、
    適切にプログラミングされていなかった前記特定のグループの元データの不揮発性記憶素子の第2の数を判断するステップと、
    前記第1の数と前記第2の数の合計を前記閾値数と比較するステップ、
    を備える請求項9〜10のいずれか1項に記載の方法。
  12. 前記不揮発性記憶素子がセクタ単位でデータを記憶し、
    各グループがセクタよりも大きく、少なくとも2つのセクタの部分にわたる、
    請求項9〜11のいずれか1項に記載の方法。
  13. 前記試験工程が、
    (a)適切にプログラミングされていない第1の不揮発性記憶素子を検出するために特定のグループでバイナリ検索を実行するステップと、
    (b)適切にプログラミングされていない不揮発性記憶素子のカウントを更新するステップと、
    (c)前記第1の不揮発性記憶素子に、それが再度カウントされないようにタグを付けるステップと、
    適切にプログラミングされていない不揮発性揮発素子の数を判断するためにステップ(a)、(b)、及び(c)を繰り返すステップ、
    を備える請求項9〜12のいずれか1項に記載の方法。
JP2009538460A 2006-11-27 2007-11-15 プログラミング検証のためのセグメント化されたビットスキャン Active JP5067645B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US11/563,585 2006-11-27
US11/563,585 US7545681B2 (en) 2006-11-27 2006-11-27 Segmented bitscan for verification of programming
US11/563,590 2006-11-27
US11/563,590 US7440319B2 (en) 2006-11-27 2006-11-27 Apparatus with segmented bitscan for verification of programming
PCT/US2007/084872 WO2008067185A1 (en) 2006-11-27 2007-11-15 Segmented bitscan for verification of programming

Publications (2)

Publication Number Publication Date
JP2010511263A JP2010511263A (ja) 2010-04-08
JP5067645B2 true JP5067645B2 (ja) 2012-11-07

Family

ID=39167421

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009538460A Active JP5067645B2 (ja) 2006-11-27 2007-11-15 プログラミング検証のためのセグメント化されたビットスキャン

Country Status (8)

Country Link
EP (1) EP2074627B1 (ja)
JP (1) JP5067645B2 (ja)
KR (1) KR101100358B1 (ja)
CN (1) CN101589437B (ja)
AT (1) ATE481714T1 (ja)
DE (1) DE602007009277D1 (ja)
TW (1) TWI369686B (ja)
WO (1) WO2008067185A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7545681B2 (en) 2006-11-27 2009-06-09 Sandisk Corporation Segmented bitscan for verification of programming
CO6170067A1 (es) * 2008-12-12 2010-06-18 Ecopetrol Sa Unidad de drenaje auto-sellante para separacion de fluidos inmiscibles de diferente densidad
US8400854B2 (en) * 2009-09-11 2013-03-19 Sandisk Technologies Inc. Identifying at-risk data in non-volatile storage
JP2011123964A (ja) * 2009-12-11 2011-06-23 Toshiba Corp 半導体記憶装置
US8174895B2 (en) 2009-12-15 2012-05-08 Sandisk Technologies Inc. Programming non-volatile storage with fast bit detection and verify skip
EP2513795B1 (en) 2009-12-16 2014-03-12 SanDisk IL Ltd Auxiliary parity bits for data written in multi-level cells
CN103258570B (zh) * 2012-02-15 2016-05-11 旺宏电子股份有限公司 一种记忆装置及产生程序化偏压脉冲的方法和集成电路
JP6088675B1 (ja) 2016-02-02 2017-03-01 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
KR20200091712A (ko) * 2019-01-23 2020-07-31 에스케이하이닉스 주식회사 반도체 메모리 장치, 컨트롤러 및 이들의 동작 방법

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2787601A1 (fr) * 1998-12-22 2000-06-23 Gemplus Card Int Systeme de memorisation comprenant des moyens de gestion d'une memoire avec anti-usure et procede de gestion anti-usure d'une memoire
US6426893B1 (en) * 2000-02-17 2002-07-30 Sandisk Corporation Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks
JP4250325B2 (ja) * 2000-11-01 2009-04-08 株式会社東芝 半導体記憶装置
CN1466150A (zh) * 2002-06-05 2004-01-07 力旺电子股份有限公司 快闪存储器的分页缓冲器
JP4135680B2 (ja) * 2004-05-31 2008-08-20 ソニー株式会社 半導体記憶装置および信号処理システム
JP2005353242A (ja) * 2004-06-14 2005-12-22 Toshiba Corp 不揮発性半導体記憶装置及びそのデータ書き込み方法
US7437653B2 (en) * 2004-12-22 2008-10-14 Sandisk Corporation Erased sector detection mechanisms
JP4874721B2 (ja) * 2006-06-23 2012-02-15 株式会社東芝 半導体記憶装置
US7355892B2 (en) * 2006-06-30 2008-04-08 Sandisk Corporation Partial page fail bit detection in flash memory devices

Also Published As

Publication number Publication date
CN101589437B (zh) 2012-08-29
KR101100358B1 (ko) 2011-12-30
TWI369686B (en) 2012-08-01
KR20090098844A (ko) 2009-09-17
EP2074627B1 (en) 2010-09-15
WO2008067185A1 (en) 2008-06-05
ATE481714T1 (de) 2010-10-15
DE602007009277D1 (de) 2010-10-28
EP2074627A1 (en) 2009-07-01
CN101589437A (zh) 2009-11-25
TW200839771A (en) 2008-10-01
JP2010511263A (ja) 2010-04-08

Similar Documents

Publication Publication Date Title
US7724580B2 (en) Segmented bitscan for verification of programming
US7440319B2 (en) Apparatus with segmented bitscan for verification of programming
JP4954223B2 (ja) フローティングゲート結合に対する補償を伴う不揮発性記憶装置に対する読み出し動作
JP5650226B2 (ja) 不揮発性記憶装置における危険状態データの識別
JP5250117B2 (ja) メモリのための適応消去及びソフトプログラミング
EP2513906B1 (en) Programming non-volatile storage with fast bit detection and verify skip
US7768834B2 (en) Non-volatile storage system with initial programming voltage based on trial
EP2718934B1 (en) Intelligent shifting of read pass voltages for non-volatile storage
KR101688603B1 (ko) 비휘발성 저장 소자에 대한 프로그래밍 완료의 검출
KR101569862B1 (ko) 비휘발성 저장 소자를 위한 소거-검증 프로세스
JP5067645B2 (ja) プログラミング検証のためのセグメント化されたビットスキャン
KR101904581B1 (ko) 고장난 워드 라인 스크린 및 데이터 복원을 갖는 비휘발성 저장장치
JP4892566B2 (ja) 交互列に基づいた不揮発性メモリの読み出し及び書き込み
TWI397075B (zh) 交替式讀取模式
WO2008083131A2 (en) Method for programming with initial programming voltage based on trial
JP2013520760A (ja) 隣接状態情報に基づく温度補償がなされる不揮発性記憶装置
US20080158979A1 (en) Method for programming with initial programming voltage based on trial
WO2014120943A1 (en) Adaptive initial program voltage for non-volatile memory
JP4938020B2 (ja) タイミング情報による逆結合効果

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120120

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120710

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20120713

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120713

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120801

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150824

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5067645

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250