ページ内・ページ間オンチップデータ擬似ランダム化のための不揮発性メモリおよび方法
【課題】集積回路メモリチップ内の機構により、不揮発性メモリセルアレイに蓄積されるデータのスクランブリングまたはランダム化を可能にする。
【解決手段】一実施形態において、検知中のソース負荷誤差と近傍セルのフローティングゲート間結合を抑制するため、ページ内ランダム化を役立てる。ページ単位ランダム化は、特定のデータパターンが繰り返し長期間にわたり蓄積されることから生じるプログラムディスターブ、ユーザリードディスターブ、フローティングゲート間結合を抑えるのに役立つ。別の実施形態では、ページ内ランダム化とページ単位ランダム化の両方を実施する。実施形態によってはスクランブリングまたはランダム化が予め決定されるか、あるいは符号生成擬似ランダム化となるか、あるいはユーザ主導ランダム化となる。これらの機構は、集積回路メモリチップの限られたリソースおよびバジェットの中で達成される。
【解決手段】一実施形態において、検知中のソース負荷誤差と近傍セルのフローティングゲート間結合を抑制するため、ページ内ランダム化を役立てる。ページ単位ランダム化は、特定のデータパターンが繰り返し長期間にわたり蓄積されることから生じるプログラムディスターブ、ユーザリードディスターブ、フローティングゲート間結合を抑えるのに役立つ。別の実施形態では、ページ内ランダム化とページ単位ランダム化の両方を実施する。実施形態によってはスクランブリングまたはランダム化が予め決定されるか、あるいは符号生成擬似ランダム化となるか、あるいはユーザ主導ランダム化となる。これらの機構は、集積回路メモリチップの限られたリソースおよびバジェットの中で達成される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般的には電荷蓄積素子を備えるフラッシュメモリ等の不揮発性メモリに関し、より具体的にはメモリ誤作動の原因となる可能性のある望ましくないデータパターンを回避するためにデータを擬似ランダム的にメモリに蓄積することに関する。
【背景技術】
【0002】
フラッシュメモリカードおよびドライブの大容量化にともない、メモリアレイの中にあるメモリセルの規模は縮小し続けている。特にNAND系の高密度アレイの中では、アレイの1セルまたは一部分に蓄積される電荷が近傍セルの読み出しまたはプログラム操作に影響をおよぼすことがある。いわゆるリードディスターブ、プログラムディスターブ、セル結合等のことである。
【0003】
NANDフラッシュのセル結合、妨害、動作および構造上の一般的なさらなる情報については、その全体があらゆる目的のために本願明細書において参照により援用されている「Method for Non-Volatile Memory With Background Data Latch Caching During Program Operations 」という米国公開特許出願第2006−0233026号(特許文献1)、「Method for Non-Volatile Memory With Background Data Latch Caching During Erase Operations 」という米国公開特許出願第2006−0233023号(特許文献2)、「Method for Non-Volatile Memory With Background Data Latch Caching During Read Operations」という米国公開特許出願第2006−0221696号(特許文献3)、「Techniques for Reducing Effects of Coupling Between Storage Elements of Adjacent Rows of Memory Cells 」という米国特許第6,870,768号(特許文献4)、ならびに「Reducing Floating Gate to Floating Gate Coupling Effect 」という米国公開特許出願第2006−0140011号(特許文献5)を参照されたい。
【0004】
一部のユーザは恒常的にフラッシュメモリのいくつかのブロックに同じデータパターンを何度も繰り返し蓄積する。その結果、消去はされても決してプログラムされないビットが発生する。また、絶えずプログラムされ滅多に消去されないビットも発生する。このように執拗に繰り返されるデータパターンには、フローティングゲート間効果、NANDストリング抵抗効果、メモリ耐久性・信頼性低下といった妨害、障害を招くという問題がある。
【0005】
不揮発性電荷蓄積が可能なソリッドステートメモリ、特に形状因子が小さいカードにパッケージされたEEPROMやフラッシュEEPROMの形をとるものは、近年、情報家電や家庭用電化製品を中心に、様々なモバイルおよびハンドヘルド装置のストレージとして盛んに選ばれている。同じくソリッドステートメモリであるRAM(ランダムアクセスメモリ)と違って、フラッシュメモリは不揮発性であって、蓄積されたデータは電源を切った後にも残る。フラッシュメモリはコストが高くつくにもかかわらず、大容量ストレージ用途に使われることが多くなっている。ハードドライブやフロッピー(登録商標)ディスク等、回転する磁気媒体を基礎とする従来の大容量ストレージは、モバイル/ハンドヘルド環境に不向きである。なぜならば、ディスクドライブは多くの場合かさばり、機械的な故障が起きやすく、待ち時間が長く、電力を食うためである。このような望ましくない性質を持つディスク方式のストレージは、ほとんどのモバイル/ポータブル用途にとって実用的でない。その一方で、埋め込み型や取り外し可能なカードの形をとるフラッシュメモリは、その小さなサイズと、低消費電力と、高速度と、高信頼性ゆえにモバイル/ハンドヘルド環境に理想的にマッチする。
【0006】
EEPROMと電気的にプログラム可能な読み出し専用メモリ(EPROM)は、消去可能で、そのメモリセルに新しいデータを書き込める、すなわち「プログラム」できる不揮発性メモリである。いずれも、半導体基板のソース領域とドレイン領域との間のチャネル領域上に配置された電界効果トランジスタ構造によるフローティング(非接続)導電性ゲートを利用する。さらに、このフローティングゲートの上にコントロールゲートを設ける。トランジスタのしきい値電圧特性はフローティングゲート上に保持される電荷の量によって制御される。つまり、フローティングゲート上の一定レベルの電荷に応じてコントロールゲートに電圧(しきい値)が印加され、トランジスタが「オン」に切り替わることにより、ソース領域とドレイン領域との導通が可能となる。
【0007】
フローティングゲートは一定範囲の電荷を保持でき、しきい値電圧ウィンドウ内のいずれかのしきい値電圧レベルまでプログラムできる。しきい値電圧ウィンドウのサイズは装置の最小しきい値レベルと最大しきい値レベルによって決まり、これはフローティングゲートにプログラムできる電荷の範囲に相当する。しきい値ウィンドウは普通、メモリ装置の特性と、作動条件と、来歴とに左右される。基本的には、ウィンドウ内の個々の分解可能なしきい値電圧レベル範囲によってセルの明確な記憶状態が決まり得る。
【0008】
メモリセルとして機能するトランジスタは通常、2通りの方法のいずれか一方によって「プログラム済み」状態までプログラムされる。「ホットエレクトロン注入法」では、ドレインに印加される高電圧によって基板チャネル領域上で電子が加速する。同時に、コントロールゲートに印加される高電圧が、薄いゲート誘電体を通じてフローティングゲートまでホットエレクトロンを引き寄せる。「トンネル注入法」では、基板に比べて高い電圧をコントロールゲートに印加する。これにより電子は基板から介在するフローティングゲートへ引き寄せられる。
【0009】
メモリ装置の消去にはいくつかの方法がある。EPROMの場合は、紫外線によりフローティングゲートから電荷を除去することによってメモリをまとめて消去できる。EEPROMのメモリセルは電気的に消去され得る。つまりコントロールゲートに比べて高い電圧を基板に印加し、フローティングゲートの電子を薄い酸化物を通じて基板チャネル領域まで誘導する(すなわち、ファウラーノルドハイムトンネリング)。通常、EEPROMはバイト単位で消去可能である。フラッシュEEPROMの場合は、メモリが一度にまとめて電気的に消去され得るか、一度に1ブロック以上が電気的に消去され、このブロックは、512バイト以上のメモリを構成することがある。
【0010】
不揮発性メモリセルの例
メモリ装置は通常、1つ以上のメモリチップをカード上に実装する。それぞれのメモリチップは、デコーダや消去回路、書き込み回路、および読み出し回路等の周辺回路によって支援されるメモリセルアレイを備える。より精緻なメモリ装置にはコントローラも搭載され、これは知的で高度なメモリ操作とインターフェイスを実行する。今日、商業的に成功を収めた不揮発性ソリッドステートメモリ装置が数多く使われている。これらのメモリ装置には様々なタイプのメモリセルが採用されてよく、各種のメモリセルは1つ以上の電荷蓄積素子を具備する。
【0011】
図1A〜1Eは、不揮発性メモリセルの様々な例を概略的に示すものである。
【0012】
図1Aは、フローティングゲートに電荷を蓄積するEEPROMセルの形をとる不揮発性メモリを概略的に示す。電気的に消去可能でプログラム可能な読み出し専用メモリ(EEPROM)はEPROMに似た構造を持つほか、適度の電圧印加によりフローティングゲートに電荷を電気的に導入、除去するメカニズムを備え、紫外線に晒す必要はない。米国特許第5,595,924号(特許文献6)には、かかるセルの例とその製造方法が記載されている。
【0013】
図1Bは、選択ゲートとコントロールゲートまたはステアリングゲートの両方を具備するフラッシュEEPROMセルを概略的に示す。メモリセル10は、ソース14およびドレイン16拡散層間に「スプリットチャネル」12を具備する。セルは、2つの直列トランジスタT1およびT2によって事実上形成される。T1は、フローティングゲート20とコントロールゲート30とを具備するメモリトランジスタとして機能する。フローティングゲートは選択可能な量の電荷を蓄積できる。チャネルのT1部分を流れ得る電流の量は、コントロールゲート30の電圧と、介在するフローティングゲート20に存在する電荷の量とに左右される。T2は、選択ゲート40を具備する選択トランジスタとして機能する。選択ゲート40の電圧によってT2がオンに切り替わると、チャネルのT1部分の電流がソースおよびドレイン間を通過できるようになる。選択トランジスタは、コントロールゲートの電圧から独立したスイッチをソース−ドレインチャネル沿いに提供する。この利点として、フローティングゲートにおける電荷空乏(正)のためにゼロコントロールゲート電圧でなお導通するセルをオフに切り替えることができる。もうひとつの利点として、ソース側の注入プログラミングをより容易に実施できる。
【0014】
図1Bの点線で概略的に示されているように、シンプルなスプリットチャネルメモリセルの実施形態では、選択ゲートとコントロールゲートが同じワード線へ接続される。この場合は、チャネルの一部分に電荷蓄積素子(フローティングゲート)を重ね、他のチャネル部分と電荷蓄積素子にはコントロールゲート構造(ワード線の一部)を重ねる。これにより2つのトランジスタが直列するセルが事実上形成され、一方のトランジスタ(メモリトランジスタ)では、電荷蓄積素子上の電荷量とワード線上の電圧とによりチャネルの当該部分を流れ得る電流の量が制御され、他方のトランジスタ(選択トランジスタ)はゲートとして機能するワード線のみとなる。米国特許第5,070,032号(特許文献7)、第5,095,344号(特許文献8)、第5,315,541号(特許文献9)、第5,343,063号(特許文献10)、および第5,661,053号(特許文献11)には、かかるセルの例と、メモリシステムにおけるその使用と、製造方法とが記載されている。
【0015】
図1Bに示されたスプリットチャネルセルのより精緻な実施形態では、選択ゲートとコントロールゲートが独立し、点線で結ばれない。一実施例では、ワード線に対して垂直の制御(または、ステアリング)線へ接続されたセルアレイの1列にコントロールゲートを具備する。この場合は、選択されたセルの読み出しやプログラミングにあたって、ワード線が2つの機能を同時に果たさずにすむ。2つの機能とは、(1)選択トランジスタのゲートとして機能すること(そのため、選択トランジスタのオン/オフにあたっては適度の電圧が必要となる)、(2)ワード線と電荷蓄積素子との電界(容量)結合により電荷蓄積素子の電圧を所望のレベルに到達させることである。多くの場合、これらの機能の両方をひとつの電圧で最適に果たすのは困難である。コントロールゲートと選択ゲートの個別制御により、ワード線は機能(1)を果たすだけでよく、機能(2)は追加の制御線が担当する。その結果、対象となるデータにプログラミング電圧を適合させるより高性能なプログラミング設計が可能となる。フラッシュEEPROMアレイにおける独立したコントロール(または、ステアリング)ゲートの使用は、例えば、米国特許第5,313,421号(特許文献12)および第6,222,762号(特許文献13)に記載されている。
【0016】
図1CはもうひとつのフラッシュEEPROMセルを概略的に示すものであり、二重フローティングゲートと、独立した選択ゲートおよびコントロールゲートとを具備する。メモリセル10’は図1Bのメモリセルに類似するが、3つの直列トランジスタを事実上具備する。この種のセルでは、ソースおよびドレイン拡散層間のチャネル上に2つの蓄積素子(すなわち、T1−左とT1−右のもの)があり、その間には選択トランジスタT2がある。このメモリトランジスタはフローティングゲート20’および20’’とコントロールゲート30’および30’’をそれぞれ具備する。選択トランジスタT2は選択ゲート40’によって制御される。読み出しや書き込みにあたっては、常にメモリトランジスタ対のいずれか一方のみにアクセスする。蓄積単位T1−左にアクセスするときにはT2とT1−右の両方がオンになり、チャネルのT1−左部分の電流がソースおよびドレイン間を通過できるようになる。同様に、蓄積単位T1−右にアクセスするときにはT2とT1−左がオンになる。消去にあたっては、選択ゲートポリシリコンの一部分をフローティングゲートに近づけ、選択ゲートに十分な正電圧(例えば、20V)を印加し、フローティングゲートの中に蓄積された電子を選択ゲートポリシリコンへ抜けさせる。
【0017】
図1Dは、NANDセルの形に構成された一連のメモリセルを概略的に示す。NANDセル50は、ソースおよびドレインによりデイジーチェーン接続された一連のメモリトランジスタM1、M2・・・Mn(n=4,8,16以上)からなる。1対の選択トランジスタS1、S2は、NANDセルのソース端子54とドレイン端子56を通じて外部に至るメモリトランジスタチェーンの接続を制御する。メモリアレイでソース選択トランジスタS1がオンになると、ソース端子がソース線へ結合される。同様に、ドレイン選択トランジスタS2がオンになると、NANDセルのドレイン端子はメモリアレイのビット線へ結合される。チェーンの中の各メモリトランジスタは、一定量の電荷を蓄積して目的の記憶状態を表現する電荷蓄積素子を具備する。読み出し操作と書き込み操作は各メモリトランジスタのコントロールゲートによって制御される。選択トランジスタS1、S2のコントロールゲートはそれぞれ、ソース端子54とドレイン端子56を介したNANDセルへのアクセスを制御する。
【0018】
NANDセルの中でアドレスされたメモリトランジスタを読み出したりプログラミング中にベリファイしたりするときには、そのコントロールゲートにしかるべき電圧が供給される。同時に、NANDセル50の中でアドレスされない残りのメモリトランジスタは、それぞれのコントロールゲートに印加される十分な電圧により完全にオンになる。こうして個々のメモリトランジスタのソースからNANDセルのソース端子54にかけて導電経路ができあがる。個々のメモリトランジスタのドレインからセルのドレイン端子56についても同様である。米国特許第5,570,315号(特許文献14)、第5,903,495号(特許文献15)、第6,046,935号(特許文献16)には、そのようなNANDセル構造を持つメモリ装置が記載されている。
【0019】
図1Eは、誘電体層に電荷を蓄積する不揮発性メモリを概略的に示す。前述した導電性フローティングゲート素子の代わりに誘電体層が使われている。Eitan et al., "NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell," IEEE Electron Device Letters, vol. 21, no. 11, November 2000, pp. 543-545(非特許文献1)には、このような誘電性蓄積素子を利用するメモリ装置が記載されている。ソースおよびドレイン拡散層間のチャネルにまたがってONO誘電体層が延在する。1データビットのための電荷はドレインに近い誘電体層に局在し、他のデータビットのための電荷はソースに近い誘電体層に局在する。例えば、米国特許第5,768,192号(特許文献17)および第6,011,725号(特許文献18)には、2つの二酸化ケイ素層にトラッピング誘電体をはさむ不揮発性メモリセルが開示されている。多状態データストレージは、誘電体の中で空間的に隔てられた電荷蓄積領域のバイナリ状態を別々に読み出すことによって実現する。
【0020】
メモリアレイ
メモリ装置は通常、行列に配置され、ワード線とビット線によりアドレス可能である二次元メモリセルアレイを備える。アレイはNORタイプかNANDタイプのアーキテクチャに従って形成できる。
【0021】
NORアレイ
図2は、NORメモリセルアレイの一例を示す。これまでNORタイプのアーキテクチャを持つメモリ装置は、図1Bまたは図1Cに描かれたタイプのセルを用いて実装されてきた。メモリセル行は、それぞれのソースとドレインによりデイジーチェーン接続される。この設計は仮想接地設計と呼ばれることがある。各々のメモリセル10はソース14と、ドレイン16と、コントロールゲート30と、選択ゲート40とを具備する。行内のセルの選択ゲートはワード線42へ接続する。列内のセルのソースおよびドレインは選択されたビット線34および36へ接続する。メモリセルのコントロールゲートと選択ゲートを別々に制御する一部の実施形態では、ステアリング線36によって列内のセルのコントロールゲートが接続される。
【0022】
多くのフラッシュEEPROM装置は、コントロールゲートと選択ゲートがともに接続されたメモリセルによって実装される。この場合、ステアリング線は必要なく、行沿いのセルのコントロールゲートと選択ゲートは全て、ワード線によって単に接続される。米国特許第5,172,338号(特許文献19)および第5,418,752号(特許文献20)には、その設計例が開示されている。この設計で、ワード線は基本的に2つの役割を果たす。つまり、行選択の役割と、読み出しやプログラミングにあたって行内の全セルにコントロールゲート電圧を供給する役割とを果たす。
【0023】
NANDアレイ
図3は、図1Dに見られるメモリセル等からなるNANDアレイの一例を示す。ビット線は各NANDセル列に沿って各NANDセルのドレイン端子56へ結合する。ソース線はNANDセル行に沿って、全ソース端子54へ接続し得る。さらに、行沿いのNANDセルのコントロールゲートは一連の対応するワード線へ接続する。接続されたワード線を通じてコントロールゲートにしかるべき電圧をかけて1対の選択トランジスタ(図1D参照)をオンにすることにより、行全体のNANDセルをアドレスできる。NANDセルのチェーンの中のひとつのメモリトランジスタを読み出すときには、チェーンの中の残りのメモリトランジスタがそれぞれの関連するワード線を通じてハードオンになるため、チェーンの中を流れる電流は、基本的には読み出しの対象となるセルに蓄積される電荷レベルに左右される。米国特許第5,570,315号(特許文献14)、第5,774,397号(特許文献21)、および第6,046,935号(特許文献16)には、NANDアーキテクチャアレイの例とメモリシステムの一部としてのこの動作が記載されている。
【0024】
ブロック消去
電荷蓄積メモリ装置のプログラミングではひたすら電荷蓄積素子に電荷が加えられる。このためプログラミング操作にあたっては、電荷蓄積素子に既に存在する電荷を事前に除去(または、消去)しなければならない。1つ以上のメモリセルブロックを消去するため、消去回路(図示せず)を設ける。セルアレイ全体あるいはアレイのかなりのセル群を、電気的に一斉に(すなわち、瞬時に)消去するEEPROM等の不揮発性メモリは「フラッシュ」EEPROMと呼ばれる。消去の後にはセル群を再プログラムできる。一斉に消去できるセル群は1つ以上のアドレス可能な消去単位からなってよい。消去単位またはブロックは通常1ページ以上のデータを蓄積し、このページがプログラミングと読み出しの単位となるが、1回の操作で2ページ以上をプログラムしたり読み出したりする場合もある。各ページには通常1セクタ以上のデータが蓄積され、このセクタのサイズはホストシステムによって決まる。例えば、磁気ディスクドライブの場合は512バイトのユーザデータからなるセクタが標準となり、さらにここにユーザデータおよび/またはこれを蓄積するブロックに関する何バイトかのオーバーヘッド情報が加わる。
【0025】
読み出し/書き込み回路
通常の2状態EEPROMセルでは、1つ以上の電流区切りレベルを設定して伝導ウィンドウを2つの領域に分割する。予め決められた一定の電圧を印加することによってセルを読み出すときには、そのソース/ドレイン電流を区切りレベル(または基準電流IREF )と比較することによって記憶状態を決定する。読み出される電流が区切りレベルの電流より高ければ、セルはひとつの論理状態(例えば「0」状態)にあると判断される。その一方で、電流が区切りレベルの電流に満たなければ、セルはもうひとつの論理状態(例えば、「1」状態)にあると判断される。かかる2状態セルは1ビットのデジタル情報を蓄積する。基準電流源は外部からプログラムでき、通常はメモリシステムの一部として用意され、区切りレベル電流を生成する。
【0026】
メモリ容量を増やすため、フラッシュEEPROM装置の実装密度は半導体技術の進歩にともないどんどん高くなっている。各メモリセルで3状態以上を蓄積することによって蓄積容量を増やす方法もある。
【0027】
多状態またはマルチレベルのEEPROMメモリセルの場合は、伝導ウィンドウを複数の区切り点で3つ以上の領域に分割し、各セルに2ビット以上のデータを蓄積することができる。つまり所与のEEPROMアレイで蓄積できる情報は、各セルで蓄積できる状態数にともない増加する。米国特許第5,172,338号(特許文献19)には、多状態またはマルチレベルのメモリセルを備えるEEPROMまたはフラッシュEEPROMが記載されている。
【0028】
実際には、コントロールゲートに基準電圧が印加されるときに、セルのソース電極とドレイン電極にかけて伝導電流を検知することによってセルの記憶状態を読み出すのが普通である。つまりセルのフローティングゲート上の所与の各電荷につき、一定の基準コントロールゲート電圧に対して相応の伝導電流を検出できる。同様に、対応するしきい値電圧ウィンドウや対応する伝導電流ウィンドウは、フローティングゲートにプログラムできる電荷の範囲によって決まる。
【0029】
あるいは、分割された電流ウィンドウの中で伝導電流を検出する代わりに、コントロールゲートで検査の対象となる所与の記憶状態に対してしきい値電圧を設定し、伝導電流がしきい値電流より低いか高いかを検出することも可能である。一実施例において、ビット線のキャパシタンスを通じて放電する伝導電流のレートを調べることによって、しきい値電流に対する伝導電流の検出を果たす。
【0030】
図4は、フローティングゲートが常に選択的に蓄積できる4通りの電荷Q1〜Q4におけるソース−ドレイン電流ID とコントロールゲート電圧VCGとの関係を示すものである。実線で描かれた4本のID 対VCG曲線はメモリセルのフローティングゲートにプログラムできる4通りの可能な電荷レベルを表し、4通りの可能な記憶状態にそれぞれ相当する。一例として、セル集団のしきい値電圧ウィンドウは0.5Vから3.5Vにおよび得る。しきい値ウィンドウをそれぞれ0.5Vの間隔で5つの領域に分割することにより、6通りの記憶状態に区切られてよい。例えば、図に示されているように、2μAの基準電流IREF を使用するならば、Q1でプログラムされるセルは、その曲線がVCG=0.5Vおよび1.0Vで区切られたしきい値ウィンドウの領域内でIREF と交差するため、記憶状態「1」にあるとみなされてよい。同様に、Q4は記憶状態「5」にある。
【0031】
前の説明から分かるように、メモリセルで蓄積する状態が多ければ多いほどしきい値ウィンドウは細かく分割される。そこで所要の分解能を達成するには、プログラミング操作と読み出し操作の精度を上げる必要がある。
【0032】
米国特許第4,357,685号(特許文献22)には2状態EPROMをプログラムする方法が開示され、この方法では、所与の状態までセルがプログラムされると、セルが相継ぐプログラミング電圧パルスに晒され、そのつどフローティングゲートに電荷が加わる。パルスの合間にはセルのリードバックまたはベリファイを行い、区切りレベルに対するソース−ドレイン電流を確認する。所望の状態に達した電流が確認されるとプログラミングは停止する。使用するプログラミングパルストレインの周期または振幅は上げることができる。
【0033】
先行技術のプログラミング回路では、消去または接地状態から目標状態に達するまでプログラミングパルスを単に印加しながらしきい値ウィンドウを通過していく。実際面で十分な分解能を実現するには、分割されたかあるいは区切られた各領域につき、最低でも5ステップ程度のプログラミングステップを踏む必要がある。2状態メモリセルならば、性能は許容される。しかし、多状態セルの場合は、必要ステップ数が分割数にともない増加するため、プログラミングの精度または分解能を上げなければならない。例えば、16状態セルで目標状態までプログラムするには、最低でも平均40のプログラミングパルスが必要となる。
【0034】
図5は、読み出し/書き込み回路170から行デコーダ130と列デコーダ160とを通じて典型的なメモリアレイ構成100にアクセスするメモリ装置を概略的に示す。図2および図3に関連して説明したように、メモリアレイ100の中にあるメモリセルのメモリトランジスタは、1組の選択されたワード線とビット線を通じてアドレスできる。アドレスされたメモリトランジスタのそれぞれのゲートにしかるべき電圧を印加するため、行デコーダ130は1つ以上のワード線を選択し、列デコーダ160は1つ以上のビット線を選択する。読み出し/書き込み回路170は、アドレスされたメモリトランジスタの記憶状態を読み出すかまたは書き込む(プログラムする)ためにある。読み出し/書き込み回路170は、ビット線を通じてアレイ内の記憶素子へ接続可能ないくつかの読み出し/書き込みモジュールを備える。
【0035】
図6Aは、個々の読み出し/書き込みモジュール190の概略的ブロック図である。読み出しやベリファイのときには基本的に、選択されたビット線を通じて接続するアドレスされたメモリトランジスタのドレインを流れる電流をセンスアンプで判定する。この電流は、メモリトランジスタに蓄積された電荷とそのコントロールゲート電圧に左右される。例えば、多状態EEPROMセルでは、数通りのレベルのいずれかまでフローティングゲートを荷電できる。これにより、4レベルセルならば、2ビットのデータを蓄積できる。センスアンプによって検出されたレベルはレベル−ビット変換ロジックによって1組のデータビットに変換され、データラッチに蓄積される。
【0036】
読み出し/書き込み性能・精度に影響する要因
読み出しとプログラミングの性能を上げるには、アレイの中にある複数の電荷蓄積素子またはメモリトランジスタを並行して読み出すかまたはプログラムする。つまり、記憶素子からなる論理「ページ」の読み出しまたはプログラミングは一斉に行われる。既存のメモリアーキテクチャでは通常、1行の中にいくつかの交互ページがある。読み出しまたはプログラミングは1ページの全記憶素子で一斉に行われる。列デコーダは交互ページの各々を対応する数の読み出し/書き込みモジュールへ選択的に接続する。例えば、一実施例において、532バイト(512バイトにオーバーヘッドの20バイトを加えたもの)のページサイズでメモリアレイを設計する。各列にドレインビット線があって各行につき2つの交互ページがあるならば、列は8,512列になり、各ページに4,256列が対応する。全ての偶数ビット線か奇数ビット線を並行して読み書きするには、4,256個のセンスモジュールを接続することになる。こうして、記憶素子のページには1ページ4,256ビット(すなわち、532バイト)のデータを並行して読み出すかまたはプログラムする。読み出し/書き込み回路170を形成する読み出し/書き込みモジュールは、様々なアーキテクチャに組むことができる。
【0037】
図5を参照すると、読み出し/書き込み回路170は、数バンクの読み出し/書き込みスタック180に編制されている。それぞれの読み出し/書き込みスタック180は読み出し/書き込みモジュール190を積み重ねたものである。メモリアレイにおける列の間隔は、これを占有する1つまたは2つのトランジスタのサイズによって決まる。しかし、図6Aから見てとれるように、読み出し/書き込みモジュールの回路はさらに多くのトランジスタと回路素子により実装され、多数の列にわたってスペースを占めることが見込まれる。占有された列の中で2つ以上の列を処理するため、多数のモジュールを互いに積み重ねる。
【0038】
図6Bは、読み出し/書き込みモジュール190の積み重ねにより従来どおりに実装された図5の読み出し/書き込みスタックを示す。例えば、読み出し/書き込みモジュールが16列にわたって延在するならば、1スタックに8読み出し/書き込みモジュールの読み出し/書き込みスタック180により8列を並列処理できる。この読み出し/書き込みスタックは列デコーダを通じて、バンク中の8つの奇数(1,3,5,7,9,11,13,15)列か8つの偶数(2,4,6,8,10,12,14,16)列に結合できる。
【0039】
既に述べたように、従来のメモリ装置は一度に全ての偶数ビット線か全ての奇数ビット線に対して大規模な並列処理を行うことによって、読み出し/書き込み操作を向上させる。この1行2交互ページのアーキテクチャは、読み出し/書き込み回路ブロックの整合問題の緩和に役立つ。これはビット線間容量結合をいかにコントロールするかにも左右される。1組の読み出し/書き込みモジュールを偶数ページか奇数ページに多重化するには、ブロックデコーダを使用する。こうすることで、1組のビット線で読み出しかプログラミングが行われているときには常に、互い違いのビット線を接地でき、近傍結合は最小限に抑えられる。
【0040】
しかし、交互ページアーキテクチャは少なくとも3つの点で不利である。第1に、追加の多重化回路が必要となる。第2に、動作が遅い。ワード線によって接続されたメモリセルあるいは1行のメモリセルで、読み出しまたはプログラミングを完了するには、2回の読み出し操作か2回のプログラミング操作が必要となる。第3に、2つの近傍電荷蓄積素子が別々のときにプログラムされる、例えば奇数ページと偶数ページとで別々にプログラムされる場合のフローティングゲートレベルにおける近傍電荷蓄積素子間の電界結合等、他の好ましくない影響に対処するにあたって最適ではない。
【0041】
近傍電界結合の問題はメモリトランジスタの間隔が狭まるにつれて顕著となる。メモリトランジスタでは、チャネル領域とコントロールゲートの間に電荷蓄積素子が挟まれている。チャネル領域を流れる電流は、電荷蓄積素子とコントロールゲートの電界によって生じる最終的な電界に相関する。メモリトランジスタは密度の増加にともない互いに接近する。近傍電荷素子からの電界は、影響を受けるセルの最終的な電界に大きく寄与する。近傍の電界は、近傍の電荷蓄積素子にプログラムされる電荷に左右される。この摂動を招く電界には、近傍電荷蓄積素子のプログラム状態に応じて変化する動的な性質がある。近傍電荷蓄積素子の状態の変化によっては、影響を受けるセルの読み出しに時間によってばらつきが生じるおそれがある。
【0042】
従来の交互ページアーキテクチャでは、近傍フローティングゲート結合によって生じるエラーが激化する。プログラミングと読み出しは偶数ページと奇数ページで別々に行われるため、介在するページの状況次第では、ページがプログラムされるときの1組の条件とページの読み返しが行われるときの1組の条件がまったく異なることがある。読み出しエラーは密度の増加にともない深刻化するため、多状態の実施例では、読み出し操作の精度を上げてしきい値ウィンドウの分割を粗くする必要がある。性能は損なわれ、多状態の実施例での潜在的キャパシティは制限される。
【0043】
米国公開特許出願第2004−0060031号(特許文献23)には、大きな読み出し/書き込み回路ブロックで相応のメモリセルブロックを並行して読み書きする、高性能でありながらコンパクトな不揮発性メモリ装置が開示されている。特にこのメモリ装置のアーキテクチャは、読み出し/書き込み回路ブロックの無駄を最小限に抑える。時分割方式で少数の共通部分とやり取りしながら並行して作動するブロック読み出し/書き込みモジュールの中核部分に読み出し/書き込みモジュールブロックを再配分することにより、スペースと電力を大幅に節約する。特に、読み出し/書き込み回路の複数のセンスアンプおよびデータラッチ間のデータ処理は共通のプロセッサによって実行される。
【0044】
このように高性能・大容量不揮発性メモリが一般に求められている。特に、読み出しとプログラミングの性能が高く、コンパクトで効率的でありながら読み出し/書き込み回路におけるデータ処理に幅広く対応する改良されたプロセッサを備えるコンパクトな不揮発性メモリが求められている。
【先行技術文献】
【特許文献】
【0045】
【特許文献1】米国公開特許出願第2006−0233026号
【特許文献2】米国公開特許出願第2006−0233023号
【特許文献3】米国公開特許出願第2006−0221696号
【特許文献4】米国特許第6,870,768号
【特許文献5】米国公開特許出願第2006−0140011号
【特許文献6】米国特許第5,595,924号
【特許文献7】米国特許第5,070,032号
【特許文献8】米国特許第5,095,344号
【特許文献9】米国特許第5,315,541号
【特許文献10】米国特許第5,343,063号
【特許文献11】米国特許第5,661,053号
【特許文献12】米国特許第5,313,421号
【特許文献13】米国特許第6,222,762号
【特許文献14】米国特許第5,570,315号
【特許文献15】米国特許第5,903,495号
【特許文献16】米国特許第6,046,935号
【特許文献17】米国特許第5,768,192号
【特許文献18】米国特許第6,011,725号
【特許文献19】米国特許第5,172,338号
【特許文献20】米国特許第5,418,752号
【特許文献21】米国特許第5,774,397号
【特許文献22】米国特許第4,357,685号
【特許文献23】米国公開特許出願第2004−0060031号
【特許文献24】米国公開特許出願第2004−0109357号
【特許文献25】米国公開特許出願第2006−0140007号
【特許文献26】「Use of Data Latches in Multi-Phase Programming of Non-Volatile Memories 」という米国特許出願
【特許文献27】「Non-Volatile Memory and Method with Power-Saving Read and Program-Verify Operations 」という米国特許出願
【特許文献28】米国特許出願第11/013,125号
【特許文献29】米国特許第7,120,051号
【特許文献30】米国公開特許出願第2005−0257120号
【特許文献31】米国公開特許出願第2006−0136687号
【特許文献32】米国公開特許出願第2006−0031593号
【特許文献33】米国特許第6,266,273号
【特許文献34】米国公開特許出願第2004−0109362号
【特許文献35】米国特許第6,657,891号
【特許文献36】米国特許出願第11/530,392号
【特許文献37】米国公開特許出願第2006−0198195号
【特許文献38】米国特許出願第11/618,482号
【非特許文献】
【0046】
【非特許文献1】Eitan et al., "NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell," IEEE Electron Device Letters, vol. 21, no. 11, November 2000, pp. 543-545
【発明の概要】
【0047】
本発明の一態様によると、メモリページ内データのランダム化により、複数のページでデータが並ぶ場合でも、プログラミング中に問題となるデータパターンは回避される。
好適な実施形態において、ページ上でデータをスクランブルするシンプルな方法により、データはページごとに独立しているかまたは異なる開始アドレスに書き込まれる。メモリセルの各ページには、ページごとに異なる開始位置に対応するデータページが書き込まれる。ページの終わりまでデータで埋め尽くされると、ページの最初のアドレスからラップアラウンドし、開始位置の手前まで書き込みを継続する。
別の好適な実施形態では、擬似ランダムジェネレータによって一連の開始物理列アドレスが各ページにつき1つずつ提供される。
【0048】
本発明の別の態様によると、ページに含まれる消去済み状態とプログラム済み状態のセルの割合が平均して等しくなるように、ページ内のデータビットがランダム化される。これによりソース線バイアスまたは負荷の大きなばらつきを抑え、検知操作中のしかるべき調整により許容できるようにする。
それには、ページ内の個々のビットをランダム化する。好ましくは、それぞれ特定の極性を指定する一連の擬似ランダムビットを使ってページ内のビットを符号化する。一実施形態において、ページ内の各データビットにつき極性ビットがある。別の実施形態では、ページ内の各データバイトにつき極性ビットがある。この実施形態で、極性ビットによってビットの反転が指定される場合は、データバイト内の全ビットが反転される。
【0049】
本発明のもうひとつの態様によると、ページ内ランダム化にページ単位のランダム化を組み合わせる。具体的にはオンチップ回路の限りあるリソースを踏まえ、ページ内ランダム化にあたっては各ページに個別の開始位置を用意するのが望ましく、ページ単位ランダム化にあたっては各ページに個別の符号化極性を用意するのが望ましい。
別の実施形態では、各ページに個別の開始位置を用意するページ内ランダム化に加えて、ページ内の各データビットセットに個別の符号化極性を用意する。
【0050】
種々のランダム化手法と実施形態はメモリチップ(EEPROM)で実施される。つまり、チップと通信するメモリコントローラによって実施されるのではなく、メモリチップ自体の中で実施される。これはウェアレベリングと呼ばれる問題対処法とは異なる。この手法は主にシステムレベルで実施され、コントローラを使ってメモリチップにおけるデータ蓄積のあり方を変更する。
本発明は、プログラムディスターブやユーザリードディスターブの原因となる特定のデータパターンを軽減もしくは解消するほか、NANDストリング抵抗効果を抑え、メモリの耐久性と信頼性を高める。フローティングゲート間結合の問題も緩和する。
【図面の簡単な説明】
【0051】
【図1A】不揮発性メモリセルの例を概略的に示す。
【図1B】不揮発性メモリセルの例を概略的に示す。
【図1C】不揮発性メモリセルの例を概略的に示す。
【図1D】不揮発性メモリセルの例を概略的に示す。
【図1E】不揮発性メモリセルの例を概略的に示す。
【図2】NORメモリセルアレイの一例を示す。
【図3】図1Dに示されたメモリセル等のNANDアレイの一例を示す。
【図4】フローティングゲートが常に蓄積できる4通りの電荷Q1〜Q4におけるソース−ドレイン電流とコントロールゲート電圧との関係を示す。
【図5】読み出し/書き込み回路から行デコーダと列デコーダとを通じてアクセスする典型的なメモリアレイ構成を概略的に示す。
【図6A】単一の読み出し/書き込みモジュールの概略的ブロック図である。
【図6B】読み出し/書き込みモジュールの積み重ねにより従来どおりに実装された図5の読み出し/書き込みスタックを示す。
【図7A】本発明の改良されたプロセッサが実装される、1バンクの分割読み出し/書き込みスタックを有するコンパクトなメモリ装置を概略的に示す。
【図7B】図7Aに示されたコンパクトなメモリ装置の好適な構成を示す。
【図8】図7Aに示された読み出し/書き込みスタックにおける基本コンポーネントの一般的な構成を概略的に示す。
【図9】図7Aおよび図7Bに示された読み出し/書き込み回路における読み出し/書き込みスタックの好適な一構成を示す。
【図10】図9に示された共通プロセッサの改良された実施形態を示す。
【図11A】図10に示された共通プロセッサの入力ロジックの好適な実施形態を示す。
【図11B】図11Aの入力ロジックの真理値表を示す。
【図12A】図10に示された共通プロセッサの出力ロジックの好適な実施形態を示す。
【図12B】図12Aの出力ロジックの真理値表を示す。
【図13】図10を簡素化したものであって、本発明の2ビット実施形態の説明にかかわるいくつかの特定の素子を示す。
【図14】下位ページデータが読み込まれる、図13と同じ素子で上位ページプログラミングの場合のラッチ機能を示す。
【図15】シングルページモードにおけるキャッシュプログラミング態様を示す。
【図16】下位ページからフルシーケンスへの転換に使用できるプログラミング波形を示す。
【図17】フルシーケンス転換をともなうキャッシュプログラミング操作の相対的タイミングを示す。
【図18】キャッシュページコピー操作におけるラッチ処理を示す。
【図19A】キャッシュページコピー操作の相対的タイミングを示す。
【図19B】キャッシュページコピー操作の相対的タイミングを示す。
【図20】LM符号を使って各メモリセルに2ビットのデータを蓄積する場合の4状態メモリアレイのしきい値電圧分布を示す。
【図21】EEPROMまたはメモリチップ600の特定のコンポーネントの概略ブロック図である。
【図22A】ページアドレスによる様々なデータページの符号化方式および極性ビットの図解である。
【図22B】ユーザデータの符号化を変換するために使用する17ビット符号例の適用を示す表である。
【図22C】例示的なNANDチェーン/ストリングのメモリセルに蓄積される上位および下位ビットに対する極性ビットの適用を示す。
【図23A】コマンドクロック信号の関数としての符号化方式決定の図解である。
【図23B】コマンドのクロック信号である。
【図23C】データ符号化決定および反転用制御回路の一実施形態を示す。
【図23D】極性ビットが蓄積されたユーザデータページを示す。
【図23E】読み出し操作で場合により反転されたデータの符号化を復帰させる制御回路の一実施形態を示す。
【図24A】コマンドクロック信号と有限状態マシンクロック信号の時系列であって、コマンドクロック信号の立ち上がりにFSMクロックの値を示す。
【図24B】図24Aに示されたコマンドクロック信号の関数として極性ビットを決定する例示的な回路を示す。
【図25】図7Aおよび図9に示されたオンチップ制御回路をより詳細に示す。
【図26】ページごとに異なる開始位置から書き込む好適な実施形態に従い、メモリページ上でデータをスクランブリングする方法を示す。
【図27】データの書き込みにあたってそれぞれ異なる開始位置を持つページの一例を示す表である。
【図28A】接地にかけて有限抵抗を有するソース線の電流に起因するソース電圧誤差問題を示す。
【図28B】ソース線電圧降下によって生じるメモリセルのしきい値電圧レベル誤差を示す。
【図29】ページ内でビットをランダム化する方法を示す。
【図30】本発明の別の態様に従い、ページ単位と各ページ内でデータをランダム化する方法を示す。
【発明を実施するための形態】
【0052】
図7A〜図20は、本発明を実装する好適なメモリシステムを示す。
図7Aは、1バンクの分割読み出し/書き込みスタックを有するコンパクトなメモリ装置を概略的に示すものであり、ここに本発明の改良されたプロセッサが実装される。このメモリ装置は、二次元のメモリセルアレイ300と、制御回路310と、読み出し/書き込み回路370とを備える。メモリアレイ300は、行デコーダ330によりワード線ごとにアドレスでき、列デコーダ360によりビット線ごとにアドレスできる。読み出し/書き込み回路370は1バンクの分割読み出し/書き込みスタック400として実装され、メモリセルからなるブロック(「ページ」とも呼ばれる)の読み出しまたはプログラミングを並行して行うことができる。好適な実施形態において、ページは一連のメモリセル行から構成される。1行のメモリセルを多数のブロックまたはページに分割する別の実施形態において、個々のブロックに向けて読み出し/書き込み回路370を多重化するためにブロックマルチプレクサ350を設ける。
【0053】
制御回路310は、読み出し/書き込み回路370と協働しながらメモリアレイ300でメモリ操作を遂行する。制御回路310は、状態マシン312と、オンチップアドレスデコーダ314と、電力制御モジュール316とを備える。状態マシン312はチップレベルのメモリ動作制御を行う。オンチップアドレスデコーダ314は、ホストまたはメモリコントローラで使われるアドレスからデコーダ330および370で使われるハードウェアアドレスへのアドレスインターフェイスを提供する。電力制御モジュール316は、メモリ操作中にワード線とビット線へ供給される電力と電圧を制御する。
【0054】
図7Bは、図7Aに示されたコンパクトなメモリ装置の好適な構成を示す。様々な周辺回路によるメモリアレイ300へのアクセスは、アレイの両側で相称的に行われるため、アクセス線と回路はそれぞれの側で半々になる。つまり、行デコーダは行デコーダ330Aおよび330Bに分かれ、列デコーダは列デコーダ360Aおよび360Bに分かれる。メモリセル行を多数のブロックに分割する実施形態では、ブロックマルチプレクサ350がブロックマルチプレクサ350Aおよび350Bに分かれる。同様に、読み出し/書き込み回路は、アレイ300の下からビット線へ接続する読み出し/書き込み回路370Aと、アレイ300の上からビット線へ接続する読み出し/書き込み回路370Bとに分かれる。このように、読み出し/書き込みモジュールの密度と分割読み出し/書き込みスタック400の密度は、基本的に2分の1になる。
【0055】
図8は、図7Aに示された読み出し/書き込みスタックにおける基本コンポーネントの一般的な構成を概略的に示す。本発明の一般的なアーキテクチャによると、読み出し/書き込みスタック400は、k本のビット線を検知する1スタックのセンスアンプ212と、I/Oバス231経由でデータを入出力するI/Oモジュール440と、入出力データを蓄積する1スタックのデータラッチ430と、読み出し/書き込みスタック400でデータを処理し蓄積する共通プロセッサ500と、スタックコンポーネントの通信用スタックバス421とを備える。読み出し/書き込みスタック370内の種々のコンポーネントを制御するため、読み出し/書き込みスタックのスタックバスコントローラから線411を通じて制御信号とタイミング信号が提供される。
【0056】
図9は、図7Aおよび図7Bに示された読み出し/書き込み回路における読み出し/書き込みスタックの好適な一構成を示す。各々の読み出し/書き込みスタック400は、k本のビット線群に同時に働きかける。1ページのビット線がp=r*kなら、r個の読み出し/書き込みスタック400−1,・・・,400−rがある。
分割読み出し/書き込みスタック400からなるバンク全体が並行して作動することにより、行沿いにp個のセルからなるブロック(またはページ)の読み出しまたはプログラミングを並行して行うことができる。この場合は、セル行全体に対してp個の読み出し/書き込みモジュールが存在することになる。各スタックでk個のメモリセルを処理するならば、バンク内の合計読み出し/書き込みスタック数はr=p/kで求められる。例えば、バンク内のスタック数がrならば、p=r*kである。例えば、メモリアレイにおいてk=8、r=512ならば、p=512バイト(512×8ビット)となる。ブロックは、好適な実施形態において、セル行全体である。ブロックは、別の実施形態において、行内のセルの小集団である。セルの小集団とは、例えば行全体の2分の1であったり、行全体の4分の1であったりする。セルの小集団は連続するセルであったり、1つおきのセルであったり、一定セル数おきのセルである。
【0057】
それぞれの読み出し/書き込みスタック、例えば400−1の中には、基本的にk個のメモリセルからなるセグメントを並行して処理する1スタックのセンスアンプ212−1から212−kがある。その全体が本願明細書において参照により援用されている米国公開特許出願第2004−0109357号(特許文献24)には、好適なセンスアンプが開示されている。
スタックバスコントローラ410は、線411を通じて読み出し/書き込み回路370へ制御信号とタイミング信号を提供する。スタックバスコントローラ自体は、線311を通じてメモリコントローラ310に従属する。各読み出し/書き込みスタック400内の通信は相互接続スタックバス421(図8参照)によって行われ、スタックバスコントローラ410によって制御される。制御線411は、スタックバスコントローラ410から読み出し/書き込みスタック400−1のコンポーネントへ制御信号とクロック信号を提供する。
【0058】
スタックバスは、好適な構成において、共通プロセッサ500とセンスアンプ212のスタックとの通信のためのSAバス422と、プロセッサとデータラッチ430のスタックとの通信のためのDバス423とに分かれる。
データラッチ430のスタックには、当該スタックに対応する各メモリセルにつき1つずつ、430−1から430−kまでのデータラッチがある。I/Oモジュール440は、データラッチがI/Oバス231を通じて外部とデータをやり取りできるようにする。 共通プロセッサはまた、エラー状態等、メモリの動作状態を伝えるステータス信号を出力する出力507を含む。このステータス信号は、Wired−OR構成でフラグバス509へ結合されたn−トランジスタ550のゲートを駆動するために使われる。フラグバスは、好ましくはコントローラ310によって予め荷電され、いずれかの読み出し/書き込みスタックによってステータス信号がアサートされるとプルダウンされる。
【0059】
図10は、図9に示された共通プロセッサの改良された実施形態を示す。共通プロセッサ500は、外部回路との通信のためのプロセッサバスPバス505と、入力ロジック510と、プロセッサラッチPラッチ520と、出力ロジック530とを備える。
入力ロジック510はPバスからデータを受信し、スタックバスコントローラ410から信号線411経由で届く制御信号に応じて論理状態「1」、「0」、または「Z」(フローティング)のいずれかひとつに変換されるデータとして、BSIノードへ出力する。次に、セット/リセットラッチであるPラッチ520がBSIをラッチすることで、MTCHおよびMTCH*として一対の相補出力信号が用意される。
出力ロジック530はMTCH信号とMTCH*信号を受信し、スタックバスコントローラ410から信号線411経由で届く制御信号に応じて論理状態「1」、「0」、または「Z」(フローティング)のいずれかひとつに変換されるデータを、Pバス505沿いに出力する。
【0060】
共通プロセッサ500は特定のメモリセルに関係するデータを常に処理する。例えば、図10は、メモリセルがビット線1へ結合される場合を示している。対応するセンスアンプ212−1のノードにはセンスアンプデータが出現する。このノードは好適な実施形態において、SAラッチ214−1の形をとり、データを蓄積する。同様に、ビット線1へ結合されたメモリセルに関連する入力または出力データは、対応する1セットのデータラッチ430−1に蓄積される。1セットのデータラッチ430−1は、好適な実施形態において、nビットのデータを蓄積するにあたって十分なデータラッチ434−1・・・434−nを備える。
【0061】
共通プロセッサ500のPバス505は、一対の相補信号SAPおよびSANによって転送ゲート501がイネーブルされると、Sバス422経由でSAラッチ214−1に到達する。同様に、一対の相補信号DTPおよびDTNによって転送ゲート502がイネーブルされると、Pバス505からDバス423経由で1セットのデータラッチ430−1に到達する。信号SAP、SAN、DTP、およびDTNは、スタックバスコントローラ410からの制御信号の一部として明示されている。
【0062】
図11Aは、図10に示された共通プロセッサの入力ロジックの好適な実施形態を示す。入力ロジック520はPバス505沿いにデータを受信し、制御信号に応じて出力BSIは同じになるか、反転するか、フローティングする。出力BSIノードは基本的に、Vddにかけて直列するpトランジスタ524および525を備えるプルアップ回路か、接地にかけて直列するnトランジスタ526および527を備えるプルダウン回路か、転送ゲート522の出力に左右される。プルアップ回路のpトランジスタ524および525へ至るゲートは、信号PBUSおよびONEによってそれぞれ制御される。プルダウン回路のnトランジスタ526および527へ至るゲートは、信号ONEB<1>およびPBUSによってそれぞれ制御される。
【0063】
図11Bは、図11Aの入力ロジックの真理値表を示す。このロジックは、PBUSと制御信号ONE、ONEB<0>、ONEB<1>とによって制御される。これらの制御信号はスタックバスコントローラ410からの制御信号の一部である。基本的には3つの転送モードPASSTHROUGH、INVERTED、およびFLOATEDをサポートする。
BSIが入力データと同じになるPASSTHROUGHモードの場合、信号ONEは論理「1」、ONEB<0>は「0」、ONEB<1>は「0」となる。これによりプルアップまたはプルダウンはディスエーブルされるが、転送ゲート522はイネーブルされ、データはPバス505に沿って出力523へ引き渡される。BSIが入力データの逆になるINVERTEDモードの場合、信号ONEは「0」、ONEB<0>は「1」、ONEB<1>は「1」となる。これにより、転送ゲート522はディスエーブルされる。また、PBUSが「0」ならプルダウン回路はディスエーブルされ、プルアップ回路はイネーブルされ、結果的にBSIは「1」になる。同様に、PBUSが「1」ならば、プルアップ回路はディスエーブルされ、プルダウン回路はイネーブルされ、結果的にBSIは「0」になる。最後に、FLOATEDモードの場合は、信号ONEが「1」、ONEB<0>が「1」、ONEB<1>が「0」となり、出力BSIをフローティングさせることができる。FLOATEDモードは完全を期するために記載されているが、実際には使われない。
【0064】
図12Aは、図10に示された共通プロセッサの出力ロジックの好適な実施形態を示す。入力ロジック520からBSIノードに至る信号はプロセッサラッチ、Pラッチ520でラッチされる。出力ロジック530はPラッチ520の出力からデータMTCHおよびMTCH*を受信し、制御信号に応じてPASSTHROUGHモードか、INVERTEDモードか、FLOATEDモードでPバス沿いに出力する。換言すると、4本のブランチはPバス505の駆動部として機能し、これをHIGH、LOW、またはFLOATED状態まで能動的に引き上げる。これは、Pバス505の4つのブランチ回路、具体的には2つのプルアップ回路と2つのプルダウン回路とによって果たされる。第1のプルアップ回路はVddにかけて直列するpトランジスタ531および532を備え、MTCHが「0」のときにPバスをプルアップできる。第2のプルアップ回路は接地にかけて直列するpトランジスタ533および534を備え、MTCHが「1」のときにPバスをプルアップできる。同様に、第1のプルダウン回路はVddにかけて直列するnトランジスタ535および536を備え、MTCHが「0」のときにPバスをプルダウンできる。第2のプルアップ回路は接地にかけて直列するnトランジスタ537および538を備え、MTCHが「1」のときにPバスをプルアップできる。
【0065】
本発明の一特徴として、プルアップ回路はPMOSトランジスタで構成され、プルダウン回路はNMOSトランジスタで構成される。NMOSによるプルはPMOSのプルより遥かに強いため、競合する場合は常にプルダウンがプルアップに勝る。換言すると、ノードまたはバスはデフォルトとして常にプルアップまたは「1」状態にでき、必要とあらば常にプルダウンにより「0」状態に反転させることができる。
【0066】
図12Bは、図12Aの出力ロジックの真理値表を示す。このロジックは、入力ロジックからラッチされるMTCH、MTCH*と、制御信号PDIR、PINV、NDIR、NINVとによって制御される。これらの制御信号はスタックバスコントローラ410からの制御信号の一部である。4つの動作モード、PASSTHROUGH、INVERTED、FLOATED、およびPRECHARGEをサポートする。
【0067】
FLOATEDモードでは4本のブランチがすべてディスエーブルになる。これは信号、PINV=1、NINV=0、PDIR=1、NDIR=0によって達成される。これらはデフォルト値でもある。PASSTHROUGHモードでMTCH=0ならば、PBUS=0が要求される。それにはnトランジスタ535および536を備えるプルダウンブランチだけをイネーブルし、NDIR=1を除き、制御信号はどれもデフォルト値とする。MTCH=1ならば、PBUS=1が要求される。それにはpトランジスタ533および534を備えるプルアップブランチだけをイネーブルし、PINV=0を除き、制御信号はどれもデフォルト値とする。INVERTEDモードでMTCH=0ならば、PBUS=1が要求される。それにはpトランジスタ531および532を備えるプルアップブランチだけをイネーブルし、PDIR=0を除き、制御信号はどれもデフォルト値とする。MTCH=1ならば、PBUS=0が要求される。それにはnトランジスタ537および538を備えるプルダウンブランチだけをイネーブルし、NINV=1を除き、制御信号はどれもデフォルト値とする。PRECHARGEモードでは、PDIR=0とPINV=0の制御信号設定でMTCH=1ならば、pトランジスタ531および531を備えるプルアップブランチがイネーブルされ、MTCH=0ならば、pトランジスタ533および534を備えるプルアップブランチがイネーブルされる。
その全体が本願明細書において参照により援用されている米国公開特許出願第2006−0140007号(特許文献25)では、共通プロセッサの動作がより詳しく説明されている。
【0068】
キャッシュ操作におけるデータラッチの使用
本発明のいくつかの態様において、読み出し、書き込み、消去といったほかの作業に内部メモリが従事しているときにデータを出し入れするキャッシュ操作にあたって、図10で前述した読み出し/書き込みスタックのデータラッチを利用する。前述したアーキテクチャでは、多数の物理ページによってデータラッチが共用される。例えば、ビット線の読み出し/書き込みスタックを全てのワード線で共用すれば、あるひとつの操作が進行しているときに空いているラッチがあれば、同じワード線か別のワード線における先々の操作に向けて空いているラッチにデータをキャッシュできるため、転送時間は他の操作の背後に潜在化され、時間の節約になる。この場合は異なる操作または操作段階のパイプライン処理の拡大により性能を上げることができる。例えば、キャッシュプログラミング操作で1ページのデータをプログラムしているときに別のページのデータを読み込めば、転送時間を節約できる。他の例として、例示的な実施形態において、あるひとつのワード線における読み出し操作を別のワード線における書き込み操作に挿入することにより、データの書き込みを継続しながら読み出しデータをメモリから出すことができる。
【0069】
第1のデータページで書き込み等の操作が進行しているときには、(例えば、ECC操作のため)同じブロックでワード線が異なる別のページからデータをトグルアウトできることに留意するべきである。この操作段階パイプラインにより、データ転送に要する時間は第1のデータページに対する操作の背後に潜在化される。より一般的には、あるひとつの操作の一部分を、通常ならばこれよりも長い、別の操作の段階の合間に差しはさむことができる。他の例として、消去操作の段階の合間に、例えば消去パルスの前あるいは消去の後半部分にあたるソフトプログラミング段階の前に、検知操作を挿し込むこともできる。
【0070】
操作に要する相対的時間を説明するため、前述したシステムの例示的な時間値のセットを次のとおりとする。
データ書き込み:〜700μs(下位ページ〜600μs、上位ページ800μs)
バイナリデータ書き込み:〜200μs
消去:〜2,500μs
読み出し:〜20−40μs
読み出しとトグルアウトデータ:2KBデータ、〜80μs;4KB〜160μs;8KB〜320μs
これ以降、タイミング図との関係で相対的時間を説明する際には、これらの値を基準として使用し得る。主要な態様において、読み出し/書き込みスタックの共用ラッチが使用可能であれば、複数の段階をともなう長い操作の合間に短い操作を差しはさむ。例えば、プログラミング操作や消去操作の中に読み出しを挿し込んだり、消去中にバイナリプログラミングを挿し込んだりすることができる。主要な例示的な実施形態において、同じ読み出し/書き込みスタックを共用するページのプログラミング操作のときに別のページのデータをトグルイン/アウトする。例えば、データ書き込みのベリファイ段階に、トグルアウトされ修正されるデータの読み出しを挿し込む。
【0071】
空きデータラッチを利用できる機会はいくつかある。一般的に、1セル当たりnビットを蓄積するメモリの場合は各ビット線につきn個のデータラッチが必要となるが、これらのラッチの全てが常に必要となるわけではない。例えば、上位ページ/下位ページ形式でデータを蓄積する1セル当たり2ビットのメモリで、下位ページをプログラムしているときには2つのデータラッチが必要となる。より一般的には、複数のページを蓄積するメモリで全てのラッチが必要となるのは最上位ページをプログラムするときだけである。ほかのラッチはキャッシュ操作に利用できる。また、最上位ページの書き込み中でも、書き込み操作のベリファイ段階から種々の状態が排除されるにつれてラッチは解放される。具体的に、ベリファイすべき状態が最上位状態だけになると、ベリファイに必要なラッチは1つだけになり、ほかのラッチはキャッシュ操作に使うことができる。
【0072】
以降の説明は、1セル当たり2ビットを蓄積し、各ビット線につき2つのデータラッチを具備し、さらにクイックパス書き込み用に1つのラッチを具備する4状態メモリに基づくものである。このメモリは、本願と同時に出願され、参照により援用されている「Use of Data Latches in Multi-Phase Programming of Non-Volatile Memories 」という米国特許出願(特許文献26)で説明されている。下位ページ書き込み操作、消去操作、消去後ソフトプログラミング操作は、基本的にはバイナリ操作であり、データラッチの一方は空いていて、データをキャッシュするのに使うことができる。同様に、上位ページかフルシーケンスの書き込みを行う場合に、最上位レベル以外はすべてベリファイ済みでベリファイすべき状態がただひとつになると、メモリはラッチを解放でき、解放されたラッチはデータのキャッシュに使うことができる。例えばコピー操作等で1ページをプログラムする場合に、例えば同じビット線のセット上の別のワード線で同じデータラッチのセットを共用する別のページの読み出しは、書き込みのベリファイ段階に差しはさむことができる。その後、書き込み対象のページにアドレスを切り替えることにより、書き込みプロセスは中断したところから再開でき、やり直しの必要はない。書き込みが継続しているときには、割り込ませた読み出しのときにキャッシュしたデータをトグルアウト、チェック、または修正し、元に戻すことができ、書き込み操作が完了した時点でライトバックできる。この種のキャッシュ操作では、最初のページのプログラミングの背後に2番目のページのデータのトグルアウトと修正を潜在化させることができる。
【0073】
第1の例として、2ビットメモリのキャッシュプログラミング操作をシングルページ(下位ページ/上位ページ形式)プログラムモードで行う。図10を簡素化した図13には、2ビット実施形態の説明にかかわるいくつかの特定の素子が見られるが、説明を簡潔にするため、その他の素子は省いてある。これはデータI/O線231へ接続されたデータラッチDL0 434−0と、線423により共通プロセッサ500へ接続されたデータラッチDL1 434−1と、線435により他のデータラッチとともに接続されたデータラッチDL2 434−2と、線422により共通プロセッサ500へ接続されたセンスアンプデータラッチDLS 214とを含む。図13の種々の素子には、下位ページをプログラムするときの処理に従って標識が付されている。ラッチDL2 434−2は、本願と同時に出願された「Use of Data Latches in Multi-Phase Programming of Non-Volatile Memories 」という米国特許出願(特許文献26)に記載されたクイックパス書き込みモードの下位ベリファイ(VL)に使われるものである。このレジスタの使用と、これを使用する場合のクイックパス書き込みは任意であるが、この例示的な実施形態ではこのレジスタを使用する。
【0074】
下位ページのプログラミングは次のステップを含み得る。
(1)このプロセスは、データラッチDL0 434−0をデフォルト値「1」にリセットすることから始まる。この変換は部分ページプログラミングを簡素化するためのものであり、選択された行の中でプログラミングの対象とならないセルはプログラム禁止になる。
(2)I/O線231に沿ってDL0 434−0にプログラムデータが供給される。
(3)DL1 434−1とDL2 434−2(このラッチを使用し、クイックパス書き込みを実施する場合)へプログラムデータが転送される。
(4)DL1 434−1へプログラムデータが転送されたら、データラッチDL0
434−0を「1」にリセットでき、プログラミング中はI/O線231に沿って次のデータページをDL0 434−0に読み込むことができ、第1のページが書き込まれているときには第2のページをキャッシュできる。
(5)DL1 434−1に第1のページが読み込まれたら、プログラミングを開始できる。DL1 434−1のデータによりセルはロックアウトされ、それ以上プログラムできなくなる。本願と同時に出願された「Use of Data Latches in Multi-Phase Programming of Non-Volatile Memories 」という米国特許出願(特許文献26)で説明されているように、DL2 434−2のデータは、クイックパス書き込みの第2段階への移行を決定づける下位ベリファイロックアウトに使われる。
(6)プログラミングが始まると、プログラミングパルスの後に下位ベリファイ結果をもとにDL2 434−2を更新し、上位ベリファイ結果をもとにDL1 434−1を更新する。(これは、下位ページプログラミングがA状態に至る「従来の」符号化に基づく説明である。本願と同時に出願された「Use of Data Latches in Multi-Phase Programming of Non-Volatile Memories 」という米国特許出願(特許文献26)と、2005年3月16日に出願された「Non-Volatile Memory and Method with Power-Saving Read and Program-Verify Operations 」という米国特許出願(特許文献27)では、この符号化とその他の符号化が説明されている。ここでの説明は他の符号化にも容易く敷衍できる。)
(7)プログラミングが完了したか否かの判断にあたっては、セル行(またはしかるべき物理的プログラミング単位)のDL1 434−1レジスタだけをチェックする。
【0075】
下位ページが書き込まれたら上位ページをプログラムできる。図14にも図13と同じ素子が見られるが、これは下位ページデータが読み込まれた状態で上位ページをプログラムする場合のラッチの働きを示している。(この説明も従来の符号化に基づくもので、上位ページのプログラミングはBおよびC状態に至る。)上位ページのプログラミングは次のステップを含む。
(1)下位ページのプログラミングが終了したら、(未実行)キャッシュプログラミングコマンドを保持する状態マシンのコントローラからの信号により上位ページ(または次のページ)の書き込みが始まる。
(2)DL0 434−0(下位ページ書き込みのステップ(3)でプログラムデータが読み込まれたところ)からDL1 434−1とDL2 434−2へプログラムデータが転送される。
(3)アレイから下位ページが読み出され、DL0 434−0の中に置かれる。
(4)ベリファイハイおよびベリファイローロックアウトデータのためにDL1 434−1とDL2 434−2が再び使用される。ラッチDL0 434−0(下位ページデータを保持)はプログラム基準データとしてチェックされるが、ベリファイ結果によりこれが更新されることはない。
(5)B状態ベリファイの一部として、下位ベリファイVBLでの検知の後にはDL2 434−2でデータが更新され、DL1 434−1データは上位ベリファイVBH結果によって更新される。同様に、CベリファイにもVCL結果とVCH結果によりラッチDL2 434−2およびDL1 434−1を更新するための対応するコマンドがある。
(6)Bデータが完了したらC状態をベリファイするだけでよいので、下位ページデータ(基準としてDL0 434−0に保持されたもの)は必要ない。DL0 434−0を「1」にリセットし、I/O線231から別のページのプログラムデータを読み込み、ラッチDL0 434−0にキャッシュできる。共通プロセッサ500はC状態のみのベリファイを指示できる。
(7)B状態について上位ページのプログラミングが完了したか否かを判断するにあたっては、ラッチDL1 434−1とDL0 434−0の両方をチェックする。セルがB状態までプログラムされ、ベリファイするのがC状態だけになったら、ラッチDL1
434−1のデータだけをチェックし、プログラムされていないビットの有無を確認すればよい。
【0076】
このやり方のステップ6でラッチDL0 434−0が必要でなくなると、このラッチを使って次のプログラミング操作のためにデータをキャッシュできることに留意するべきである。加えて、クイックパス書き込みを使用する実施形態で、2番目の遅いプログラミング段階に入ったら、ラッチDL2 434−2もデータのキャッシュに使うことができる。しかし、実際にこれを使えるのはかなり短い時間に限られているため、これを実装した場合のオーバーヘッドに見合うほどの価値はない。
【0077】
図15は、直前の数段落で説明したシングルページモードによる数々のキャッシュプログラミングの態様を説明するのに役立つ。図15は、メモリの内部で起こるイベント(下の「True Busy」線)とメモリの外側から見たイベント(上の「Cache Busy」線)の相対的タイミングを示すものである。
【0078】
時間t0 には、選択されたワード線(WLn)にプログラムする下位ページがメモリに読み込まれる。ここでは第1の下位ページデータが予めキャッシュされていないと仮定するが、それ以降のページについてはキャッシュが行われる。時間t1 には下位ページの読み込みが完了し、メモリはこの書き込みに着手する。この時点ではバイナリ操作と同じであり、ベリファイの必要があるのは状態Aだけであり(「pvfyA」)、データラッチDL0 434−0は次のページのデータを受け付けることができる。これは時間t2 にWLnにプログラムされる上位ページであり、下位ページのプログラミング中にラッチDL0 434−0にキャッシュされる。時間t3 には上位ページの読み込みが完了し、t4 で下位ページのプログラミングが終わり次第直ちにこれをプログラムできる。このやり方では全てのデータ(下位および上位ページ)が物理的なプログラミング単位(ここではワード線WLn)に書き込まれるが、後述するフルシーケンス実施形態と違って、メモリは上位ページデータの書き込みに先立ち時間t3 から時間t4 まで待たなければならない。
【0079】
上位ページのプログラミングは時間t4 で始まり、ここでは当初B状態だけをベリファイし(「pvfyB」)、t5 にはC状態が加わる(「pvfyB/C」)。t6 でB状態のベリファイが終わるとベリファイが必要なのはC状態だけとなり(「pvfyC」)、ラッチDL0 434−0は解放される。これにより次のデータセットをキャッシュできるようになり、上位ページのプログラミングは終了する。
前述したように、図15に示されたキャッシュプログラミングをともなうシングルページアルゴリズムの場合は、たとえ時間t3 で上位ページデータが用意されても、メモリはこのデータの書き込みに着手する前に時間t4 まで待つことになる。米国特許出願第11/013,125号(特許文献28)等に詳述されているフルシーケンスプログラム動作に転換すれば、上位ページが用意された時点で上位ページと下位ページのデータを同時にプログラムできる。
【0080】
フルシーケンス(下位からフルへの転換)書き込みにおけるキャッシュプログラミングアルゴリズムも前述したのと同様に、下位ページのプログラミングから始まる。したがって、ステップ(1)〜(4)はシングルページプログラムモードにおける下位ページプロセスと同じになる。
(1)このプロセスは、データラッチDL0 434−0をデフォルト値「1」にリセットすることから始まる。この変換は部分ページプログラミングを簡素化するためのものであり、選択された行の中でプログラミングの対象とならないセルはプログラム禁止になる。
(2)I/O線231に沿ってDL0 434−0にプログラムデータが供給される。
(3)DL1 434−1とDL2 434−2(このラッチを使用し、クイックパス書き込みを実施する場合)へプログラムデータが転送される。
(4)DL1 434−1へプログラムデータが転送されたら、データラッチDL0
434−0を「1」にリセットでき、プログラミング中はI/O線231に沿って次のデータページをDL0 434−0に読み込むことができ、第1のページが書き込まれているときには第2のページをキャッシュできる。
第2のページのデータが読み込まれた時点で、これが書き込み中の下位ページの上位に相当し、下位ページのプログラミングがまだ終わっていなければ、フルシーケンス書き込みへの転換を実施できる。ここでの説明はかかるアルゴリズムにおけるデータラッチの使用に注目するものであり、詳細は同一出願人による同時係属の米国特許第7,120,051号(特許文献29)で詳述されている。
(5)上位ページデータがラッチDL0 434−0に読み込まれた後にはアドレスブロックで判断を下す。つまり、2つのページが同じワード線と同じブロックにあって、一方のページが下位ページであり、他方のページが上位ページであることをチェックする。そのとおりに下位ページプログラミングからフルシーケンスプログラミングへの転換が可能であれば、プログラム状態マシンがこの転換をトリガする。移行は未完了のベリファイが完了した後に行われる。
(6)プログラミングシーケンスが下位ページからフルシーケンスへ変化する場合は、通常ならばいくつかの操作パラメータが変更される。これは例示的な実施形態において次のものを含む。
(i)下位ページデータがロックアウトされていなければ、パルスベリファイサイクル数の最大プログラムループが下位ページアルゴリズムの最大プログラムループからフルシーケンスの最大プログラムループに変更される。しかし、完了プログラムループ数は転換によりリセットされない。
(ii)図16に見られるように、プログラミング波形は下位ページプログラミングプロセスで使われる値VPGM_Lで始まる。プログラミング波形が進展し、上位ページプロセスで使う初期値VPGM_Uを超えると、フルシーケンスへの転換にあたって階段はVPGM_Uまで戻り、そこから上昇を続ける。
(iii)プログラムパルスの最大値とステップサイズを決定するパラメータは変更されない。
(7)マルチレベル符号化で適切なデータのプログラミングを保証するため、メモリセルの現在状態のフルシーケンス読み出しを行わねばならない。こうすれば、フルシーケンスが始まるときに、下位ページのプログラミングでロックアウトされていて上位ページのデータを考慮に入れるためにさらなるプログラミングを必要とする状態はプログラム禁止にならない。
(8)クイックパス書き込みが行われる場合は、上位ページのプログラムデータを反映させるため、A状態のみの下位ベリファイに基づくラッチDL2 434−2のデータも更新される。
(9)マルチレベル、フルシーケンスのプログラムアルゴリズムによるプログラミングが再開する。図16に見られるように、下位ページプロセスのプログラミング波形が上位ページの初期レベルを超えると、波形は転換時にこのレベルに戻される。
【0081】
図17は、下位ページからフルシーケンスへ転換する書き込みプロセスにかかわる相対的時間を概略的に示す。時間t3 までは図15のプロセスで前述したとおりである。時間t3 で上位ページのデータは読み込み済みで、フルシーケンスアルゴリズムへ移行し、A状態のベリファイプロセスにB状態が加わる。A状態が全てロックアウトされると、ベリファイプロセスは時間t4 でB状態とC状態のチェックに切り替わる。t5 でB状態がベリファイ済みになるとチェックの必要があるのはC状態だけとなり、レジスタを解放して次のプログラムすべきデータを読み込むことができる。例えば、Cache Busy線に見られるように、下位ページを次のワード線(WLn+1 )に読み込むことができる。次のデータセットは時間t6 でキャッシュ済みとなり、t7 で前のデータセットのCデータのプログラミングが終わると、次のデータセットのプログラミングが始まる。また、ワード線WLn+1 上で(ここでは)下位ページがプログラムされているときには、空いているラッチDL0 434−0に次のデータ(対応する上位ページデータ等)を読み込むことができる。
【0082】
フルシーケンス書き込みのときには、下位ページと上位ページの状態を別々に伝えるステータス報告が実施される。プログラミングシーケンスの終わりに未完了ビットがある場合は、物理ページのスキャンを実行できる。第1のスキャンではラッチDL0 434−0で未完了上位ページデータをチェックでき、第2のスキャンではDL1 434−1で未完了下位ページデータをチェックできる。B状態のベリファイによってDL0 434−0とDL1 434−1のデータは両方とも変化するから、ビットのしきい値がAベリファイレベルより高ければ、A状態のベリファイでDL1 434−1データ「0」は「1」に変更される。この事後ベリファイはプログラムが不十分なBレベルがAレベルで合格するか否かをチェックするものであり、Aレベルで合格するならば、エラーは上位ページのみで下位ページにはなく、Aレベルで合格しないならば、下位ページと上位ページの両方にエラーがある。
キャッシュプログラミングアルゴリズムを使用する場合は、AおよびBデータがプログラムされた後に、プログラミングを完了するためにラッチDL1 434−1へC状態が転送される。この場合、下位ページは既にプログラムを通過していて不良ビットはないから、下位ページについてラッチをスキャンする必要はない。
【0083】
本発明の別の例示的な実施形態は、あるひとつの場所から別の場所へデータセットを再配置するページコピー操作に関係する。本願明細書において参照により援用されている米国公開特許出願第2005−0257120号(特許文献30)、第2006−0136687号(特許文献31)、第2006−0031593号(特許文献32)、ならびに米国特許第6,266,273号(特許文献33)には、データ再配置操作の種々態様が記載されている。あるひとつの場所から別の場所へコピーされるデータは多くの場合、チェックのため(エラーチェック等)、更新のため(ヘッダ更新等)、あるいはチェックと更新のため(検出されたエラーの訂正等)にトグルアウトされる。かかる転送によってガーベッジコレクション操作の日付も整理される。本発明の主要な態様において、空きレジスタへのデータ読み込みを書き込み操作のベリファイ段階に挿し込み、書き込み操作の継続中にこのキャッシュデータをメモリ装置の外に出すことにより、データをトグルアウトする時間を書き込み操作の背後に潜在化させることができる。
【0084】
これよりキャッシュページコピー操作の2つの例示的な実施形態を紹介する。いずれの場合でも、クイックパス書き込みを使用する実施例を説明する。図18は、プロセスの進行にともなう例示的なラッチ構成の処理を示す。
【0085】
下位ページに書き込みを行う最初のキャッシュページコピーは次のステップを含む。ここで読み出しアドレスには標識M、M+1・・・が付き、書き込みアドレスには標識N、N+1・・・が付く。
(1)コピーするページ(「ページM」)がラッチDL1 434−1に読み込まれる。これは上位ページか下位ページのデータであり得る。
(2)次にページMがDL0 434−0へ移される。
(3)次にDL0 434−0のデータがトグルアウトされ、修正され、ラッチに戻される。
(4)ここでプログラミングシーケンスを開始できる。下位ページNに書き込むデータがDL1 434−1とDL2 434−2に移されたら、ラッチDL0 434−0はデータをキャッシュできる状態になる。この下位ページはプログラムされる。この実施形態の場合、プログラム状態マシンはここで停止する。
(5)コピーする次のページがDL0 434−0に読み込まれる。ここでプログラミングを再開できる。ステップ(4)の終わりに停止した状態マシンは、プログラミングシーケンスを最初から再開する。
(6)プログラミングは下位ページが完了するまで続く。
下位ページに対する書き込みか上位ページに対する書き込みかは、コピー先ページアドレスによって決まる。プログラムアドレスが上位ページアドレスなら、プログラミングシーケンスはプログラミングが完了するまで停止せず、ステップ(5)の読み出しは書き込みが完了した後に行われる。
【0086】
第2のキャッシュページコピー法では、プログラム/ベリファイプロセスを中断して読み出し操作を挿し込み、書き込み操作は中断したところから再開できる。この交互検知操作の間に読み出されたデータは、再開した書き込み操作の継続中にトグルアウトできる。また、この第2のプロセスでベリファイの対象がC状態だけとなり、各ビット線で1つのラッチが解放されると、上位ページかフルシーケンスの書き込みプロセスでページコピーメカニズムを使用できる。第2のキャッシュページコピー操作の最初の3ステップは第1のものと同じだが、その後は異なる。これは以下のステップを含む。
(1)コピーするページ(「ページM」)がラッチDL1 434−1に読み込まれる。これは上位ページか下位ページであり得る。
(2)次にページMのデータがDL0 434−0へ移される。(前と同様に、N等は書き込みアドレスを表し、M等は読み出しアドレスを表す。)
(3)次にDL0 434−0のデータがトグルアウトされ、修正され、ラッチに戻される。
(4)状態マシンプログラミングは読み出しコマンドが届くまで無限待機状態に入り、その後には別のページ、例えば次のページM+1のラッチDL0 434−0への読み込みが始まる。
(5)ステップ(4)の読み込みが完了したら、ステップ(1〜3)のデータをページN(ここでは、下位ページ)にプログラムするためのワード線とブロックアドレスにアドレスが戻され、プログラミングが再開する。
(6)ページM+1の読み込みが完了したらデータをトグルアウトし、修正し、元に戻すことができる。処理が完了し、2つのページが同一WL上の対応する上位および下位ページなら、フルシーケンス書き込み操作に転換できる。
(7)フルシーケンス書き込みでAレベルとBレベルが終了したら、前に説明した通常のキャッシュプログラミングと同様に、DL0 434−0のデータがDL1 434−1へ移され、別のページ(例えば、M+2)の読み出しコマンドを発行できる。シングルページからフルシーケンスへの転換がない場合は、下位ページの書き込みが完了し、上位ページが始まる。Bレベル状態が完了すると再びDL0 434−0からDL1 434−1へデータが移され、状態マシンはページM+2の読み出しコマンドを待機する。
(8)読み出しコマンドが届くとアドレスは読み出しアドレスに切り替えられ、次のページ(ページM+2)が読み出される。
(9)読み出しが完了したら、アドレスは書き込みが終了するまで以前の上位ページアドレス(プログラムアドレスN+1)に戻される。
【0087】
前述したように、例示的な実施形態では各メモリセルにプログラムされ得るデータ(ここでは2ビット)をラッチDL0 434−0およびDL1 434−1で保持するほか、クイックパス書き込み手法の下位ベリファイにラッチDL2 434−2を使用する。下位ベリファイに合格したらラッチDL2 434−2も解放され、データのキャッシュに使うことができるが、例示的な実施形態では使わない。
【0088】
図19Aおよび図19Bは第2のキャッシュページコピー法の相対的タイミングを示すものであり、図19Bのアルゴリズムにはフルシーケンス書き込み転換があるが、図19Aのアルゴリズムにはそれがない。(図19Aおよび図19Bはいずれも2つの部分から構成され、第1の上部分はt0 に一致する縦の破線Aから始まってt5 に一致する縦の破線Bで終わり、第2の下部分は上部分の続きであって、t5 に一致する縦の破線Bから始まる。いずれにせよ、時間t5 のところに位置する線Bは上部分と下部分とで同じであって、2つの部分を2本の線で表示するための継ぎ目に過ぎない。)
【0089】
図19Aのプロセスは第1のページ(ページM)の読み出しから始まり、この例において下位ページであり、予めデータはキャッシュされていないものと仮定し、シングルページモードで作動し、下位ページの書き込みが終わるのを待ってから上位ページの書き込みが始まる。プロセスは、時間t0 にページMの読み出しから始まり(ページM(L)検知)、この符号化でAおよびCレベルの読み出しによって検知される下位である。時間t1 では読み出しが完了し、ページMをトグルアウトしてチェックまたは修正できる。時間t2 からBレベルの読み出しによって次のページ(ここではM+1、下位ページMと同じ物理ページに対応する上位ページ)が検知され、時間t3 でプロセスが終了する。このとき、第1のページ(ページMからのもの)(下位)はメモリのページNにプログラムでき、M+1から読み出されたデータはラッチに保持され、外に出して修正/チェックできる。これらのプロセスはいずれも同じ時間、ここではt3 に始めることができる。前述した例示的な時間値を使用すると、ページM+1のデータは時間t4 までにトグルアウトされ、修正されるが、フルシーケンス転換を実施しない実施形態の場合、メモリは時間t5 にページNが終了するのを待ってから、ページN+1への第2の読み出しページデータ(ページM+1からのもの)の書き込みを開始する。
【0090】
ページN+1は上位ページであり、この書き込みは当初Bレベルのベリファイで始まるが、t6 にはCレベルが加わる。目標状態Bになった蓄積素子が時間t7 で全てロックアウトされると(あるいは最大カウントに達すると)、B状態のベリファイはなくなる。前述したように、本発明のいくつかの主要な態様によるとこのときデータラッチは解放され、進行中の書き込み操作は中断し、読み出し操作(中断したプログラム/ベリファイ操作とは異なるアドレスでの読み出し操作)が割り込み、その後書き込みは中断したところから再開し、再開した書き込み操作が進行しているときには割り込み書き込み操作の検知データをトグルアウトできる。
【0091】
時間t7 には割り込み書き込み操作を実行する。ここでのものは下位ページM+2である。この検知は時間t8 に終了し、ページN+1の書き込みは再開し、これと同時にページM+2のデータがトグルアウトされ、修正される。この例ではページN+1のプログラミングが時間t9 に終了してから時間t10にページM+2が終了する。時間t10にはページM+2からのデータの書き込みを始めることもできるが、この実施形態では代わりにページM+3の読み出しを先に実行する。こうすることで、このページデータをトグルアウトし、時間t11に始まるページN+2へのページM+2データの書き込みの背後に修正を潜在化させることができる。そこからプロセスは図の以前の部分のように継続する。しかし、ページ番号はずれ、時間t11は時間t3 に相当し、時間t12は時間t4 に相当する。最後にコピープロセスは停止する。
【0092】
図19Bに示すプロセスもページMを下位ページとして読み出すことから始まり、データは予めキャッシュされていないものと仮定する。図19Bは、時間t4 にフルシーケンス書き込みに転換する点が図19Aと異なる。これにより、プロセスはざっと図19Aの時間(t5 〜t4 )だけ速くなる。時間t4 (=図19Aのt5 )には、前述したフルシーケンス転換にかかわる様々な変更が実施される。時間t7 およびt12間に見られる本発明の態様等、その他の点は図19Aに類似する。
【0093】
本願明細書において参照により援用されている米国公開特許出願第2004−0109362号(特許文献34)に記載されているように、ページコピープロセスと、ここで説明するデータ書き込みをともなうその他の手法で、ある特定の時間にベリファイする状態は適切に選ぶことができる。例えばフルシーケンス書き込みの書き込みプロセスはAレベルのみのベリファイから始めることができる。Aベリファイの後には、ビットをチェックし合格ビットの有無を確認する。合格ビットがあるならば、Bレベルをベリファイ段階に加えることができる。Aレベルのベリファイは、これを目標値とする全蓄積単位のベリファイ後に外される(または設定可能なパラメータに基づく最大カウントを除く)。同様に、Bレベルのベリファイ後にはCレベルのベリファイを加えることができ、Bレベルのベリファイは、これを目標値とする全蓄積単位のベリファイ後に外される(または設定可能なパラメータに基づく最大カウントを除く)。
プログラミング操作とこれにともなうバックグラウンドデータキャッシングを、好適な多状態符号化との関係で説明する。
【0094】
4状態メモリのための好適な例示的な「LM」符号化
図20は、2ビット論理符号(「LM」符号)で符号化される4状態メモリのプログラミングと読み出しを示す。この符号は耐障害性を提供し、ユーピン効果による隣接セル結合を緩和する。図20は、LM符号を使用して各メモリセルに2ビットのデータを蓄積する場合の4状態メモリアレイのしきい値電圧分布を示す。LM符号化は、上位および下位ビットが状態「A」および「C」とで逆になる点が従来のグレイコードと異なる。米国特許第6,657,891号(特許文献35)に開示された「LM」符号は、電荷の大きな変化を要するプログラム操作を回避することによって隣接フローティングゲート間の電界効果結合を抑えるのに有利である。
【0095】
この符号化では、下位および上位2ビットのプログラミングと読み出しを別々に行う。下位ビットをプログラムするときのセルのしきい値レベルは未プログラム領域にとどまるか、しきい値ウィンドウの「下位中間」領域まで進む。上位ビットをプログラムするときには、これら2領域のいずれかにあるしきい値レベルがさらにしきい値ウィンドウの4分の1以下である若干高いレベルまで進む。
【0096】
データパターンの擬似・ユーザ主導形ランダム化
メモリEEPROMまたはチップとランダム化手法の種々の実施形態は、NANDストリング抵抗の増加、耐久性と信頼性の低下、好ましくない結合等、反復データ蓄積パターンに起因する問題を最小限に抑えることを目指す。本発明の擬似ランダム化手法は実用的で、データ処理能力の点で実装コストは高くつかない。
【0097】
本発明は、フラッシュメモリチップに蓄積されるデータで擬似ランダム化と真にユーザ本位のランダム化を実装する様々な実施形態および方法を含む。これらの実施形態には、フラッシュEEPROMに単純で僅かな回路修正を施すだけでよいという利点がある。ランダム化の手法と回路は計算集約的でなく、実装にともなう性能上のペナルティは、たとえあったとしてごく僅かですむため、注目に価する。本発明の解決策は、ランダム化を随時容易く有効または無効にできるという点で柔軟性にも優れている。また、一部の実施形態で使用する擬似ランダム化パターンは変化に富み、随時簡単に変更できる。
【0098】
図21は、ランダム化プロセスに関係するEEPROMまたはメモリチップ600の主要コンポーネントを示す。チップ600は、メモリアレイ602と、周辺回路内のレジスタ610と、マルチプレクサ614とを備える。チップ600の他のコンポーネントについては別の図を参照しながら説明する。レジスタ610は多数のビットを保持でき、多数のレジスタを備えることがある。実施形態によってはこれがシフトレジスタとして機能する。メモリアレイ602は、隠しエリア604と、ユーザデータエリア606とを備える。隠しエリアはファームウェアを蓄積するほか、メモリ動作制御符号等のオーバーヘッドデータを蓄積する。前に述べたように、NANDアーキテクチャではデータがブロックに整理され、それぞれのブロックは多数のデータページを備え得る。実施形態によってはレジスタ610もマルチプレクサ614も存在しない。
【0099】
本発明の各種の実施形態は、プログラムディスターブやユーザリードディスターブの原因となる特定データパターンの長期・反復蓄積を軽減もしくは解消する。それには、擬似ランダム機構かユーザトリガ形ランダム化によってデータの符号化を変更する。ユーザ活動のタイミングは完全に予測不能だから、この活動をトリガとして利用すれば真にランダムな符号化方式のシーケンスになる。これらの実施形態はまた、NANDストリング抵抗効果を軽減し、メモリの耐久性と信頼性を向上させ、フローティングゲート間結合の問題を緩和する。
【0100】
これらの実施形態はフラッシュEEPROM回路に対するごく僅かな修正でデータ蓄積のランダム性を大幅に向上させ、EEPROMの性能を高める。データのランダム化はアレイの中で容易く有効または無効にできる。しかも、絶えず変化する擬似ランダム化を担うシーケンスがシステムに柔軟性を与える。
【0101】
一実施形態において、0または1の符号または一連のビットを、アレイ602の隠しエリア604に蓄積する。隠しエリア604で符号を蓄積する部分は「ROMブロック」と呼ぶこともある。符号は2ビット以上を含んでよく、望ましくは17ビット以上を含む。ビットが多いほどランダム化は向上する。チップ600に電源が入るとレジスタ610に値が読み込まれる。レジスタでは、それぞれのビットが特定のページアドレスに割り当てられる。各ビットはページのページアドレスと比較され、その比較に基づきページデータの符号化は反転され、さもなくば同じページ状態を保つ(パスする)。例えば、ビット値0はデータの符号化方式が同じ状態に保つことを意味し、レジスタの値1はページ内のデータの符号化が反転することを意味する。符号のビット数がブロック内のページ数に満たない場合は、1つ以上のページからなる複数のグループに符号を適用できる。換言すると、全てのページを比較するまでは符号を順次繰り返し使用できる。サイクルごとに符号を変更することもできる。あるいはマルチプレクサ614により符号を多重化することもでき、この場合は、ユーザデータエリア606に蓄積された複数のデータページの符号化が1符号の1ビットによって決まる。符号の各ビットは、ユーザデータの一部に用いる符号化の極性を変更することから、極性ビットと呼ぶことができる。これは図22Aに描かれている。この場合の符号化はページアドレスに基づき、ページ0,Nの極性は1であり、ページ1、n+1の極性は0であり、ページ2、n+2の極性は1であることが分かる。したがって、符号化がページアドレスに基づく実施形態では極性ビットをページとともに蓄積する必要はないが、冗長性の目的で蓄積してもよい。
【0102】
図22Bの複製にあたる下の表1は、ユーザデータ部分に適用されるレジスタ610の符号極性ビットを示す。どのユーザデータ部分でも特定の極性ビットに比較し、対応付けることができるが、説明する好適な実施形態ではページを基本単位とする。
【表1】
【0103】
この表に見られるように、ビットの当初符号化(データ)が同じ状態を保つか変化するかは符号の各(極性)ビットによって決まる。例えば、レジスタ位置1を見ると、極性符号の値が1になっている。したがって、1がデータの反転を意味する実施形態の場合には、0として蓄積されたユーザデータの当初ビットが値1に反転されることになる。この表は、2ビットを使って状態を指定する多状態セルを例示するものである。状態を示す図20から分かるように、状態は上位ビットと下位ビットによって指定される。図20に見られるタイプの2ビットまたは4状態メモリセルで、(1:1)は消去(「ER」)または未プログラム(「U」)状態を指定し、(0:1)は状態Aを指定し、(0:0)は状態Bを指定し、(1:0)は状態Cを指定する。上位ビットと下位ビットは単一のメモリセルに物理的に位置することがある。別のデータグループには同じ符号か異なる符号を適用できる。この場合はビット17に対応するデータグループと、次の符号のビット1に対応するデータによって状態が決まる。それぞれの極性レジスタによって該当するページ上の全データの極性が制御される。下位ビットと上位ビットは、好ましくは同じ物理ワード線上に位置する。表1の例は、多数のワード線にわたってシンプルなパターンをランダムパターンに変換する極性ビットの働きを例示するものである。ランダム化は同じNANDチェーン構造に位置するデータで行われる。図22Cの例はこのコンセプトを例示するものである。
【0104】
図22Cには、NANDストリングまたはチェーンの各セルに下位ビットと上位ビットが描かれている。図に示されたNANDストリングは単なる例であって、当然ながらストリングのセルはこれよりも多いこともあれば少ないこともあり、図に示されたものとは異なる構造でも本発明に使用できる。例えば、3ビット、4ビット、4ビット以上を蓄積するセルを使うこともできる。また、ビット反転のコンセプトを例示するためにビットレベルの適用が図に示されているが、特に多状態メモリの場合には、1ページ以上のデータに極性ビットを適用するのが好ましいことを考慮するべきである。図22Cではユーザデータの各ビットに極性ビットが適用される。極性ビットによって反転またはパスするユーザデータは保存データと標示されている。保存データとは、ランダム化操作の結果としてメモリアレイに書き込まれ、蓄積されるデータである。見て分かるように、図の右側に表示された状態はセルの上位ビットと下位ビットによって決まる。図22Cで使われている用語「保存データ」は、表1と図22Bで「適用後ユーザデータ(UD)符号化」と呼ばれているものに相当する。
【0105】
図23Aに示す別の実施形態では、図21に見られるレジスタがフィードバック機能を備えるシフトレジスタとなる。かかる実施形態において、レジスタ610が擬似ランダムジェネレータとして構成される。一連の擬似乱数を生成するため、その内容は周期的にフィードバックされる。符号の全ビットを一度に使用する実施形態とは対照的に、この場合は一度に1ビットを使用する。ユーザによってコマンドが発行されると、シフトレジスタは次のビットへシフトする。着信ユーザページで使用される極性ビットは最後のレジスタ出力からのものである。これは好ましくはコマンドの立ち上がりで行われる。トリガコマンドは、プログラムコマンド、キャッシュプログラムコマンド、読み出しコマンド、消去コマンド、その他のユーザ発行コマンドであってよい。図23Bにはプログラムコマンド信号の例が見られる。コマンドに対応するクロック信号が図に示され、コマンドのインスタンス化はユーザリクエストによってトリガされ、そのタイミングとタイプは予測不能であって、基本的にランダムである。図23Aには、ユーザコマンドに対応するクロック信号が極性ビットを決定する入力として図に示されている。図に示されたその他の入力はユーザデータである。既に述べたように、データの符号化は極性ビットの適用によって反転するか現状をとどめる。
【0106】
図23Cは、データ反転用制御回路の一例を示す。インバータが1つのデータ経路では符号化は反転し、2つのインバータが直列する経路ではデータ符号化方式は変わらない。この場合、データグループに対応する極性ビットはそのデータグループとともに蓄積される。例えば、図23Dに見られるデータページ630では、ユーザエリア636にあるデータの極性ビット632がページ630の隠しエリア634にプログラムされる。ページ630を読み出す場合には極性ビット632が取り出され、出力データを制御するためにラッチされ、符号化方式が反転されている場合には図23Eに見られる例示的な回路により元に戻される。こうしてページの極性は当初の符号化に戻される。
【0107】
シフトレジスタで使用する符号のパターンは変えることができ、種々の用途に応じて修正できる。全てのビットが0に設定されるとランダム化は無効になる(0が無変更を意味する場合)。レジスタにおけるビットのパターンは擬似ランダムだが、ユーザの挙動は予測不能であるため、極性も予測不能でランダムである。例えば、ユーザ挙動には次の2つがある。(1)ユーザはいくつかのページをプログラムし、さらにいくつかのページを読み出すかまたはプログラムするため、あるいはいくつかのブロックを消去するため、別のアドレスへジャンプし、次に最後のプログラムが行われたブロックまで戻り、ページのプログラミングを継続する。(2)ユーザは全てのページを順次プログラムし、別のアドレスにジャンプしない。(1)の場合では各ユーザコマンドにつき新たな極性ビットをトリガでき、2のケースの順次プログラミングでは1つの極性ビットを使用しこれに依拠する。ユーザが蓄積を望む当初のデータが両方の場合で同じであっても、メモリに最終的にプログラムされるデータは、2つの場合において個々のページや複数のページで少なくとも部分的には異なる可能性がある。EEPROMは、通常ならばコントローラチップによって制御され、「ユーザ」による行為の一部はコントローラチップの行為であることに留意するべきである。
【0108】
別の実施形態において、極性ビットもまた、既に述べたキャッシュプログラム操作等のユーザコマンドの結果としてランダムに生成される。この実施形態では同期しない2つの入力を使用する。最初のものはユーザコマンドのタイミングであって、これは前述したように予測不能である。2番目のものは有限状態マシンクロックである。メモリシステムによっては特定の時間(例えば、キャッシュ操作中等)に限り有限状態マシンクロックがアクティブになることもあれば、他のシステムでは常にアクティブになることもある。この実施形態のこの手法は、メモリシステムの有限状態マシンクロックがアクティブになっているときに使える。
【0109】
有限状態マシン(「FSM」)クロックのレベルまたは状態は、ユーザコマンドクロック信号の立ち上がりで参照する。図24Aに見られるように、状態はハイまたはローであり得る。ロー状態は0の極性ビットに対応し得る(しかし、反対の対応も可能)。時間t=0においてFSMはローであるために極性ビットは0になり、前述したようにデータ符号化は変化しない。時間t=1においてFSMはハイになり、極性ビットは1になり、時間t=3にはFSMが再びロー状態になる。実施形態によっては、実行コマンドが発行され検知されると直ちに極性ビット632が隠しエリア634に読み込まれる。実施形態によっては、システムの別のメモリに極性ビットを一時的に格納する。図24Bは、前述したように、極性ビットを決定する例示的な回路を示すものである。ここでもインバータは、好ましくは立ち上がりでトリガされる。
【0110】
図25は、図7Aおよび図9のオンチップ制御回路をより詳細に示すものである。これは、状態マシン312とアドレスデコーダまたはジェネレータ314のほかにデータスクランブラ318を含む。好適な実施形態では、図21および図23Aのレジスタ610とマルチプレクサ614を含む。別の好適な実施形態では、図23Cのデータ反転回路と図23Eのデータ復帰回路も含む。
図21〜図25とこれらの図に対応する本願明細書での説明のように、共通のワード線によってアクセスされる各データページのプログラミングまたは読み出しは並行して行われる。ページ単位のランダム化にあたっては、ビットの極性を反転させるページを擬似ランダム的に選択する。
その全体が本願明細書において参照により援用されている2006年9月8日に出願されたYan Liらによる「Methods in a Pseudo Random and Command Driven Bit Compensation for the Cycling Effects in Flash Memory」という米国特許出願第11/530,392号(特許文献36)には、ページ単位のオンチップデータランダム化が開示されている。
【0111】
ページ内データオンチップ擬似ランダム化
ページ内データスクランブリングも望ましい。これは、プログラミング中に問題となる規則性の高いデータパターンを回避したり、ページデータを並行して検知する際のソース負荷誤差を制御したりするうえで有利である。
ユーザかコントローラによって反復するデータパターンが特定のページに蓄積されると、データが一定のパターンに並ぶことがあり、一部のNANDチェーンのプログラミングでブーストモードに悪影響がおよぶ。プログラミングのときに複数のNANDチェーン(図1Dおよび図3参照)に共通のワード線が選択される場合、プログラミングの対象とはならないチェーンはプログラム禁止にする。プログラム禁止にするにはチャネル領域をブーストし、選択されたワード線に印加される有効プログラミング電圧を減らす。例えば、NANDタイプのメモリでは通常、ソース側からドレイン側にかけてNANDチェーンがプログラムされる。消去済み状態の多数のメモリセルがソース側にあると、プログラム禁止のときにブーストされるドレイン側のチャネルから消去済みセルによって形成される高伝導性チャネルを通じてソースへ電荷が漏れ、効率が悪くなる。効果的でないチャネルブーストとプログラム禁止によってプログラムディスターブが起こり、結果に誤りが生じるおそれがある。その全体が本願明細書において参照により援用されている米国公開特許出願第2006−0198195号(特許文献37)および2006年12月29日に出願されたFarookh Moogatらによる「Method of NAND Flash Memory Cell Array with Adaptive Memory State Partitioning」というおよび米国特許出願第11/618,482号(特許文献38)には、ブースト効率の問題が記載されている。
本発明の一態様によると、ページ内データのランダム化により、複数のページでデータが並ぶ場合でも、プログラミング中に問題となるデータパターンは回避される。
【0112】
ページ開始位置シフトによるスクランブリング
好適な実施形態において、ページ上でデータをスクランブルするシンプルな方法により、データはページごとに独立しているかまたは異なる開始アドレスに書き込まれる。メモリセルの各ページには、ページごとに異なる開始位置に対応するデータページが書き込まれる。ページの終わりまでデータで埋め尽くされると、ページの最初のアドレスからラップアラウンドし、開始位置の手前まで書き込みを継続する。
【0113】
ページごとに異なる開始位置から書き込む好適な実施形態に従い、メモリページ上でデータをスクランブリングする方法を図26に示す。
ステップ700:集積回路メモリチップを提供する。このメモリチップは、ページ単位でアクセス可能な不揮発性メモリセルアレイを有し、各ページは1グループのメモリセルからなり、1グループの各メモリセルはアレイの列内にあり、かつ共通ワード線によりアクセス可能な行沿いに並ぶ。
ステップ710:プログラムされる各ページに対応する開始列位置からなる一連の開始列位置をオンチップで生成する。
ステップ720:各ページにプログラムされるデータを、対応する開始列位置から始めてページが埋め尽くされるまでラップアラウンドする。
ステップ730:配列されたデータを各ページに並行してプログラムする。
【0114】
データの書き込みにあたってそれぞれ異なる開始位置を持つページの一例を、図27の表に示す。例えば、ページ0には列0から始まってバイト0が読み込まれる。ページ1には列1から始まってバイト0が読み込まれる。データの読み込みは列n−1まで続き、ラップアラウンドして列0に戻る。この例では、ページからページにかけてデータの反復パターンをずらすためのシフトがページごとに指定されている。通常、開始列アドレスはページ番号の関数として与えられる。物理列の終わりに達すると、データは物理列の先頭までラップアラウンドする。例えば、Starting_Column_Address(Page_Number)=Page_Number(MOD(n−1))+kで、kは所定数、(n−1)は並行してプログラムされる合計メモリセル数である。例えば、k=0ならば、各ページは前のページから1列ずつシフトされる。
【0115】
好適な実施形態では、図9のI/O回路440を制御することによって所与のページに対する開始列位置シフトを実施する。データ読み込み操作では通常、アドレスデコーダ314がI/O回路へ物理ページの開始アドレスを発行する。開始アドレスに従いデータはクロック制御により列ごとにI/O回路に入力される。ラップアラウンドする場合は、物理列の最後に達した時点で第2の開始アドレスが発行される。
【0116】
図23Dでは、システム専用のページ部分に各ページの開始列アドレスを蓄積できる。例えば、ページ630の開始列アドレスはメモリアレイの一部634に蓄積される。
別の好適な実施形態において、図23Aに見られる擬似ランダムジェネレータ等によって、一連の開始物理列アドレスが、各ページにつき1つずつ、提供される。
各ページの開始位置シフトにより、NANDチェーンの中で望ましくないデータパターンの並びを回避できるほか、プログラミング中のブースト問題の緩和に役立つ。
プログラミング中のチャネルブースト問題の緩和に加え、ページの中でデータをスクランブリングすれば、検知中のソース負荷誤差制御に役立つ。
ソース負荷誤差は、ソース線とチップの接地パッドとの間の有限抵抗によって生じる。メモリセルの検知にあたっては、有限抵抗にまたがるソース負荷によってソース線バイアスが生じることがある。多数のメモリセルを並行して検知すると、メモリセルの総電流のため、有限抵抗により接地ループで著しい電圧降下が生じることがある。その結果、ソース線バイアスが生じ、しきい値電圧検知による読み出し操作に誤りが生じる。
【0117】
図28Aは、接地にかけて有限抵抗を有するソース線の電流に起因するソース電圧誤差問題を示す。読み出し/書き込み回路370Aおよび370Bは、1ページのメモリセルに同時に働きかける。読み出し/書き込み回路の中の各センスモジュール480は、ビット線36を通じて対応するセルへ結合される。図8の読み出し/書き込みスタック400によると、それぞれのセンスモジュール480は、ビット線のいずれか1本に接続されるセンスアンプ212と、1セットのデータラッチ430と、共通プロセッサ500とI/O回路440の共有とを含む。並列操作のため、ページ内の各メモリセルにつき1個のセンスモジュールがある。
【0118】
例えば、センスモジュール480はメモリセル10の伝導電流i1 (ソース−ドレイン電流)を検知する。伝導電流はセンスモジュールからビット線36を通じてメモリセル10のドレインに流れ込み、さらにソース14からソース線34を通じて接地に至る。集積回路チップのメモリアレイでは、メモリチップの一部の外部接地パッド(例えば、Vssパッド等)へ接続するソース線34の複数分岐としてセルのソースがともに結ばれる。ソース線の抵抗を減らすためにメタルストラッピングを使用する場合でも、メモリセルのソース電極と接地パッドとの間には有限抵抗Rが残る。通常、接地ループ抵抗Rは約10オームである。
【0119】
並行して検知するメモリページ全体で、ソース線34を流れる合計電流は全伝導電流の和、すなわちiTOT =i1 +i2 +・・・+ip になる。通常、各メモリセルの伝導電流はその電荷蓄積素子にプログラムされる電荷の量に左右される。メモリセルのある一定のコントロールゲート電圧で、電荷が少量ならば、伝導電流は比較的高くなる(図4参照)。メモリセルのソース電極と接地パッドとの間に有限抵抗が存在する場合、その抵抗にまたがる電圧降下はVdrop=iTOT Rになる。
【0120】
例えば、各ビット線につき1μAで64,000本のビット線が同時に放電するならば、ソース線電圧降下は64,000線x1μA/線x10オーム〜0.64ボルトに等しくなる。0.64Vのソース電圧上昇によってしきい値電圧が0.96V上昇すると仮定すると、メモリセルのしきい値電圧を検知するときには、このソース線バイアスから0.96ボルトの検知誤差が生じる。
【0121】
図28Bは、ソース線電圧降下によって生じるメモリセルのしきい値電圧レベル誤差を示す。メモリセル10のコントロールゲート30に供給されるしきい値電圧VT はGNDを基準とする。しかし、メモリセルから見た実効VT は、そのコントロールゲート30とソース14との電圧差である。供給VT と実効VT には約1.5xVdropの差がある(ソース14からソース線までの細かな電圧降下は無視する)。メモリセルのしきい値電圧を検知するときには、このVdropまたはソース線バイアスが、例えば0.96ボルトの検知誤差に寄与する。
【0122】
このバイアスはデータに左右されるため、すなわちページのメモリセルの記憶状態に左右されるため、容易く解消できない。極端な場合、ページの全メモリセルが消去済み状態になっているときにはバイアスが最も高くなる。この場合の各セルは導電性が高く、大きなVdropと高いソース線バイアスに寄与する。もうひとつの極端な場合として、ページの全メモリセルが完全にプログラム済み状態になっているときの各セルは非導電性であり、ソース線バイアスは皆無かごく僅かになる。
【0123】
本発明の別の態様によると、ページに含まれる消去済み状態とプログラム済み状態のセルの割合が平均して等しくなるようにページ内のデータビットがランダム化される。これによりソース線バイアスまたは負荷の大きなばらつきを抑え、検知操作中のしかるべき調整により許容できるようにする。
それには、ページ内の個々のビットをランダム化する。好ましくは、ある極性を指定する一連の擬似ランダムビットを使ってページ内のビットを符号化する。一実施形態において、ページ内の各データビットにつき極性ビットがある。別の実施形態では、ページ内の各データバイトにつき極性ビットがある。この実施形態で、極性ビットによってビットの反転が指定される場合は、データバイト内の全ビットが反転される。
【0124】
図29は、ページの中でビットをランダム化する方法を示す。
ステップ750:集積回路メモリチップを提供する。このメモリチップは、ページ単位でアクセス可能な不揮発性メモリセルアレイを有し、各ページは1グループのメモリセルからなり、1グループの各メモリセルはアレイの列内にあり、かつ共通ワード線によりアクセス可能な行沿いに並ぶ。
ステップ760:プログラムされるページの各データビットセットにつき第1および第2の符号化法を提供する。
ステップ762:一連の極性ビットを、各データビットセットにつき1つずつ、オンチップで生成する。
ステップ764:各データビットセットの極性ビットが第1の状態にあるか、それとも第2の状態にあるかに応じて、第1または第2の符号化法により各データビットセットを符号化する。
ステップ770:符号化された全データビットセットをページに並行してプログラムする。
【0125】
一連の極性ビットは、図23Aに見られる擬似ランダムジェネレータ等により、各データビットセットにつき1つずつ、提供される。それぞれのデータビットセットは一定数のビットを含む。例えば、この一定数のビットは、一実施形態において、1である。一定数のビットは、別の実施形態において、8ビットである。
【0126】
ページ内・ページ間オンチップデータ擬似ランダム化
全面的に消去済み状態になっているページ等、極端に規則性のあるデータパターンの場合は、ページ内スクランブリング方式では不十分である。
本発明のもうひとつの態様によると、ページ内ランダム化にページ単位のランダム化を組み合わせる。具体的にはオンチップ回路の限りあるリソースを踏まえ、ページ内ランダム化にあたっては各ページに個別の開始位置を用意するのが望ましく、ページ単位ランダム化にあたっては各ページに個別の符号化極性を用意するのが望ましい。
【0127】
本発明の別の態様に従い、ページ単位とページ内でデータをランダム化する方法を図30に示す。
ステップ750:集積回路メモリチップを提供する。このメモリチップは、ページ単位でアクセス可能な不揮発性メモリセルアレイを有し、各ページは1グループのメモリセルからなり、1グループの各メモリセルはアレイの列内にあり、かつ共通ワード線によりアクセス可能な行沿いに並ぶ。
ステップ760:プログラムされる各データページにつき第1および第2の符号化法を提供する。
ステップ762:一連の極性ビットを、各ページにつき1つずつ、オンチップで生成する。
ステップ764:ページの極性ビットが第1の状態にあるか、それとも第2の状態にあるかに応じて、第1または第2の符号化法によりデータページを符号化する。
ステップ770:プログラムされる各ページに対応する開始列位置からなる一連の開始列位置をオンチップで生成する。
ステップ772:各ページにプログラムされるデータを、対応する開始列位置から始めてページが埋め尽くされるまでラップアラウンドする。
ステップ780:配列されたデータを各ページに並行してプログラムする。
【0128】
さらに別の実施形態ではステップ760からステップ772の間に図29のステップ760、ステップ762、およびステップ764を挿入してデータビットのランダム化も実施する。この実施形態ではワード線方向と列方向でビットがランダム化される。
【0129】
ここで参照する特許、特許出願、記事、書籍、仕様書、その他の出版物、文書、事物はどれも、その全体があらゆる目的のために本願明細書において参照により援用されている。援用する出版物、文書、または事物のいずれかと本願明細書の文面との間で用語の定義または使用に矛盾や食い違いがある場合は、本願明細書における用語の定義または使用が優先するものとする。
これまで本発明の実施形態を説明してきたが、本発明はこれらの例示的な実施形態に限定されず、添付の特許請求の範囲によって規定されることを理解すべきである。
【技術分野】
【0001】
本発明は、一般的には電荷蓄積素子を備えるフラッシュメモリ等の不揮発性メモリに関し、より具体的にはメモリ誤作動の原因となる可能性のある望ましくないデータパターンを回避するためにデータを擬似ランダム的にメモリに蓄積することに関する。
【背景技術】
【0002】
フラッシュメモリカードおよびドライブの大容量化にともない、メモリアレイの中にあるメモリセルの規模は縮小し続けている。特にNAND系の高密度アレイの中では、アレイの1セルまたは一部分に蓄積される電荷が近傍セルの読み出しまたはプログラム操作に影響をおよぼすことがある。いわゆるリードディスターブ、プログラムディスターブ、セル結合等のことである。
【0003】
NANDフラッシュのセル結合、妨害、動作および構造上の一般的なさらなる情報については、その全体があらゆる目的のために本願明細書において参照により援用されている「Method for Non-Volatile Memory With Background Data Latch Caching During Program Operations 」という米国公開特許出願第2006−0233026号(特許文献1)、「Method for Non-Volatile Memory With Background Data Latch Caching During Erase Operations 」という米国公開特許出願第2006−0233023号(特許文献2)、「Method for Non-Volatile Memory With Background Data Latch Caching During Read Operations」という米国公開特許出願第2006−0221696号(特許文献3)、「Techniques for Reducing Effects of Coupling Between Storage Elements of Adjacent Rows of Memory Cells 」という米国特許第6,870,768号(特許文献4)、ならびに「Reducing Floating Gate to Floating Gate Coupling Effect 」という米国公開特許出願第2006−0140011号(特許文献5)を参照されたい。
【0004】
一部のユーザは恒常的にフラッシュメモリのいくつかのブロックに同じデータパターンを何度も繰り返し蓄積する。その結果、消去はされても決してプログラムされないビットが発生する。また、絶えずプログラムされ滅多に消去されないビットも発生する。このように執拗に繰り返されるデータパターンには、フローティングゲート間効果、NANDストリング抵抗効果、メモリ耐久性・信頼性低下といった妨害、障害を招くという問題がある。
【0005】
不揮発性電荷蓄積が可能なソリッドステートメモリ、特に形状因子が小さいカードにパッケージされたEEPROMやフラッシュEEPROMの形をとるものは、近年、情報家電や家庭用電化製品を中心に、様々なモバイルおよびハンドヘルド装置のストレージとして盛んに選ばれている。同じくソリッドステートメモリであるRAM(ランダムアクセスメモリ)と違って、フラッシュメモリは不揮発性であって、蓄積されたデータは電源を切った後にも残る。フラッシュメモリはコストが高くつくにもかかわらず、大容量ストレージ用途に使われることが多くなっている。ハードドライブやフロッピー(登録商標)ディスク等、回転する磁気媒体を基礎とする従来の大容量ストレージは、モバイル/ハンドヘルド環境に不向きである。なぜならば、ディスクドライブは多くの場合かさばり、機械的な故障が起きやすく、待ち時間が長く、電力を食うためである。このような望ましくない性質を持つディスク方式のストレージは、ほとんどのモバイル/ポータブル用途にとって実用的でない。その一方で、埋め込み型や取り外し可能なカードの形をとるフラッシュメモリは、その小さなサイズと、低消費電力と、高速度と、高信頼性ゆえにモバイル/ハンドヘルド環境に理想的にマッチする。
【0006】
EEPROMと電気的にプログラム可能な読み出し専用メモリ(EPROM)は、消去可能で、そのメモリセルに新しいデータを書き込める、すなわち「プログラム」できる不揮発性メモリである。いずれも、半導体基板のソース領域とドレイン領域との間のチャネル領域上に配置された電界効果トランジスタ構造によるフローティング(非接続)導電性ゲートを利用する。さらに、このフローティングゲートの上にコントロールゲートを設ける。トランジスタのしきい値電圧特性はフローティングゲート上に保持される電荷の量によって制御される。つまり、フローティングゲート上の一定レベルの電荷に応じてコントロールゲートに電圧(しきい値)が印加され、トランジスタが「オン」に切り替わることにより、ソース領域とドレイン領域との導通が可能となる。
【0007】
フローティングゲートは一定範囲の電荷を保持でき、しきい値電圧ウィンドウ内のいずれかのしきい値電圧レベルまでプログラムできる。しきい値電圧ウィンドウのサイズは装置の最小しきい値レベルと最大しきい値レベルによって決まり、これはフローティングゲートにプログラムできる電荷の範囲に相当する。しきい値ウィンドウは普通、メモリ装置の特性と、作動条件と、来歴とに左右される。基本的には、ウィンドウ内の個々の分解可能なしきい値電圧レベル範囲によってセルの明確な記憶状態が決まり得る。
【0008】
メモリセルとして機能するトランジスタは通常、2通りの方法のいずれか一方によって「プログラム済み」状態までプログラムされる。「ホットエレクトロン注入法」では、ドレインに印加される高電圧によって基板チャネル領域上で電子が加速する。同時に、コントロールゲートに印加される高電圧が、薄いゲート誘電体を通じてフローティングゲートまでホットエレクトロンを引き寄せる。「トンネル注入法」では、基板に比べて高い電圧をコントロールゲートに印加する。これにより電子は基板から介在するフローティングゲートへ引き寄せられる。
【0009】
メモリ装置の消去にはいくつかの方法がある。EPROMの場合は、紫外線によりフローティングゲートから電荷を除去することによってメモリをまとめて消去できる。EEPROMのメモリセルは電気的に消去され得る。つまりコントロールゲートに比べて高い電圧を基板に印加し、フローティングゲートの電子を薄い酸化物を通じて基板チャネル領域まで誘導する(すなわち、ファウラーノルドハイムトンネリング)。通常、EEPROMはバイト単位で消去可能である。フラッシュEEPROMの場合は、メモリが一度にまとめて電気的に消去され得るか、一度に1ブロック以上が電気的に消去され、このブロックは、512バイト以上のメモリを構成することがある。
【0010】
不揮発性メモリセルの例
メモリ装置は通常、1つ以上のメモリチップをカード上に実装する。それぞれのメモリチップは、デコーダや消去回路、書き込み回路、および読み出し回路等の周辺回路によって支援されるメモリセルアレイを備える。より精緻なメモリ装置にはコントローラも搭載され、これは知的で高度なメモリ操作とインターフェイスを実行する。今日、商業的に成功を収めた不揮発性ソリッドステートメモリ装置が数多く使われている。これらのメモリ装置には様々なタイプのメモリセルが採用されてよく、各種のメモリセルは1つ以上の電荷蓄積素子を具備する。
【0011】
図1A〜1Eは、不揮発性メモリセルの様々な例を概略的に示すものである。
【0012】
図1Aは、フローティングゲートに電荷を蓄積するEEPROMセルの形をとる不揮発性メモリを概略的に示す。電気的に消去可能でプログラム可能な読み出し専用メモリ(EEPROM)はEPROMに似た構造を持つほか、適度の電圧印加によりフローティングゲートに電荷を電気的に導入、除去するメカニズムを備え、紫外線に晒す必要はない。米国特許第5,595,924号(特許文献6)には、かかるセルの例とその製造方法が記載されている。
【0013】
図1Bは、選択ゲートとコントロールゲートまたはステアリングゲートの両方を具備するフラッシュEEPROMセルを概略的に示す。メモリセル10は、ソース14およびドレイン16拡散層間に「スプリットチャネル」12を具備する。セルは、2つの直列トランジスタT1およびT2によって事実上形成される。T1は、フローティングゲート20とコントロールゲート30とを具備するメモリトランジスタとして機能する。フローティングゲートは選択可能な量の電荷を蓄積できる。チャネルのT1部分を流れ得る電流の量は、コントロールゲート30の電圧と、介在するフローティングゲート20に存在する電荷の量とに左右される。T2は、選択ゲート40を具備する選択トランジスタとして機能する。選択ゲート40の電圧によってT2がオンに切り替わると、チャネルのT1部分の電流がソースおよびドレイン間を通過できるようになる。選択トランジスタは、コントロールゲートの電圧から独立したスイッチをソース−ドレインチャネル沿いに提供する。この利点として、フローティングゲートにおける電荷空乏(正)のためにゼロコントロールゲート電圧でなお導通するセルをオフに切り替えることができる。もうひとつの利点として、ソース側の注入プログラミングをより容易に実施できる。
【0014】
図1Bの点線で概略的に示されているように、シンプルなスプリットチャネルメモリセルの実施形態では、選択ゲートとコントロールゲートが同じワード線へ接続される。この場合は、チャネルの一部分に電荷蓄積素子(フローティングゲート)を重ね、他のチャネル部分と電荷蓄積素子にはコントロールゲート構造(ワード線の一部)を重ねる。これにより2つのトランジスタが直列するセルが事実上形成され、一方のトランジスタ(メモリトランジスタ)では、電荷蓄積素子上の電荷量とワード線上の電圧とによりチャネルの当該部分を流れ得る電流の量が制御され、他方のトランジスタ(選択トランジスタ)はゲートとして機能するワード線のみとなる。米国特許第5,070,032号(特許文献7)、第5,095,344号(特許文献8)、第5,315,541号(特許文献9)、第5,343,063号(特許文献10)、および第5,661,053号(特許文献11)には、かかるセルの例と、メモリシステムにおけるその使用と、製造方法とが記載されている。
【0015】
図1Bに示されたスプリットチャネルセルのより精緻な実施形態では、選択ゲートとコントロールゲートが独立し、点線で結ばれない。一実施例では、ワード線に対して垂直の制御(または、ステアリング)線へ接続されたセルアレイの1列にコントロールゲートを具備する。この場合は、選択されたセルの読み出しやプログラミングにあたって、ワード線が2つの機能を同時に果たさずにすむ。2つの機能とは、(1)選択トランジスタのゲートとして機能すること(そのため、選択トランジスタのオン/オフにあたっては適度の電圧が必要となる)、(2)ワード線と電荷蓄積素子との電界(容量)結合により電荷蓄積素子の電圧を所望のレベルに到達させることである。多くの場合、これらの機能の両方をひとつの電圧で最適に果たすのは困難である。コントロールゲートと選択ゲートの個別制御により、ワード線は機能(1)を果たすだけでよく、機能(2)は追加の制御線が担当する。その結果、対象となるデータにプログラミング電圧を適合させるより高性能なプログラミング設計が可能となる。フラッシュEEPROMアレイにおける独立したコントロール(または、ステアリング)ゲートの使用は、例えば、米国特許第5,313,421号(特許文献12)および第6,222,762号(特許文献13)に記載されている。
【0016】
図1CはもうひとつのフラッシュEEPROMセルを概略的に示すものであり、二重フローティングゲートと、独立した選択ゲートおよびコントロールゲートとを具備する。メモリセル10’は図1Bのメモリセルに類似するが、3つの直列トランジスタを事実上具備する。この種のセルでは、ソースおよびドレイン拡散層間のチャネル上に2つの蓄積素子(すなわち、T1−左とT1−右のもの)があり、その間には選択トランジスタT2がある。このメモリトランジスタはフローティングゲート20’および20’’とコントロールゲート30’および30’’をそれぞれ具備する。選択トランジスタT2は選択ゲート40’によって制御される。読み出しや書き込みにあたっては、常にメモリトランジスタ対のいずれか一方のみにアクセスする。蓄積単位T1−左にアクセスするときにはT2とT1−右の両方がオンになり、チャネルのT1−左部分の電流がソースおよびドレイン間を通過できるようになる。同様に、蓄積単位T1−右にアクセスするときにはT2とT1−左がオンになる。消去にあたっては、選択ゲートポリシリコンの一部分をフローティングゲートに近づけ、選択ゲートに十分な正電圧(例えば、20V)を印加し、フローティングゲートの中に蓄積された電子を選択ゲートポリシリコンへ抜けさせる。
【0017】
図1Dは、NANDセルの形に構成された一連のメモリセルを概略的に示す。NANDセル50は、ソースおよびドレインによりデイジーチェーン接続された一連のメモリトランジスタM1、M2・・・Mn(n=4,8,16以上)からなる。1対の選択トランジスタS1、S2は、NANDセルのソース端子54とドレイン端子56を通じて外部に至るメモリトランジスタチェーンの接続を制御する。メモリアレイでソース選択トランジスタS1がオンになると、ソース端子がソース線へ結合される。同様に、ドレイン選択トランジスタS2がオンになると、NANDセルのドレイン端子はメモリアレイのビット線へ結合される。チェーンの中の各メモリトランジスタは、一定量の電荷を蓄積して目的の記憶状態を表現する電荷蓄積素子を具備する。読み出し操作と書き込み操作は各メモリトランジスタのコントロールゲートによって制御される。選択トランジスタS1、S2のコントロールゲートはそれぞれ、ソース端子54とドレイン端子56を介したNANDセルへのアクセスを制御する。
【0018】
NANDセルの中でアドレスされたメモリトランジスタを読み出したりプログラミング中にベリファイしたりするときには、そのコントロールゲートにしかるべき電圧が供給される。同時に、NANDセル50の中でアドレスされない残りのメモリトランジスタは、それぞれのコントロールゲートに印加される十分な電圧により完全にオンになる。こうして個々のメモリトランジスタのソースからNANDセルのソース端子54にかけて導電経路ができあがる。個々のメモリトランジスタのドレインからセルのドレイン端子56についても同様である。米国特許第5,570,315号(特許文献14)、第5,903,495号(特許文献15)、第6,046,935号(特許文献16)には、そのようなNANDセル構造を持つメモリ装置が記載されている。
【0019】
図1Eは、誘電体層に電荷を蓄積する不揮発性メモリを概略的に示す。前述した導電性フローティングゲート素子の代わりに誘電体層が使われている。Eitan et al., "NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell," IEEE Electron Device Letters, vol. 21, no. 11, November 2000, pp. 543-545(非特許文献1)には、このような誘電性蓄積素子を利用するメモリ装置が記載されている。ソースおよびドレイン拡散層間のチャネルにまたがってONO誘電体層が延在する。1データビットのための電荷はドレインに近い誘電体層に局在し、他のデータビットのための電荷はソースに近い誘電体層に局在する。例えば、米国特許第5,768,192号(特許文献17)および第6,011,725号(特許文献18)には、2つの二酸化ケイ素層にトラッピング誘電体をはさむ不揮発性メモリセルが開示されている。多状態データストレージは、誘電体の中で空間的に隔てられた電荷蓄積領域のバイナリ状態を別々に読み出すことによって実現する。
【0020】
メモリアレイ
メモリ装置は通常、行列に配置され、ワード線とビット線によりアドレス可能である二次元メモリセルアレイを備える。アレイはNORタイプかNANDタイプのアーキテクチャに従って形成できる。
【0021】
NORアレイ
図2は、NORメモリセルアレイの一例を示す。これまでNORタイプのアーキテクチャを持つメモリ装置は、図1Bまたは図1Cに描かれたタイプのセルを用いて実装されてきた。メモリセル行は、それぞれのソースとドレインによりデイジーチェーン接続される。この設計は仮想接地設計と呼ばれることがある。各々のメモリセル10はソース14と、ドレイン16と、コントロールゲート30と、選択ゲート40とを具備する。行内のセルの選択ゲートはワード線42へ接続する。列内のセルのソースおよびドレインは選択されたビット線34および36へ接続する。メモリセルのコントロールゲートと選択ゲートを別々に制御する一部の実施形態では、ステアリング線36によって列内のセルのコントロールゲートが接続される。
【0022】
多くのフラッシュEEPROM装置は、コントロールゲートと選択ゲートがともに接続されたメモリセルによって実装される。この場合、ステアリング線は必要なく、行沿いのセルのコントロールゲートと選択ゲートは全て、ワード線によって単に接続される。米国特許第5,172,338号(特許文献19)および第5,418,752号(特許文献20)には、その設計例が開示されている。この設計で、ワード線は基本的に2つの役割を果たす。つまり、行選択の役割と、読み出しやプログラミングにあたって行内の全セルにコントロールゲート電圧を供給する役割とを果たす。
【0023】
NANDアレイ
図3は、図1Dに見られるメモリセル等からなるNANDアレイの一例を示す。ビット線は各NANDセル列に沿って各NANDセルのドレイン端子56へ結合する。ソース線はNANDセル行に沿って、全ソース端子54へ接続し得る。さらに、行沿いのNANDセルのコントロールゲートは一連の対応するワード線へ接続する。接続されたワード線を通じてコントロールゲートにしかるべき電圧をかけて1対の選択トランジスタ(図1D参照)をオンにすることにより、行全体のNANDセルをアドレスできる。NANDセルのチェーンの中のひとつのメモリトランジスタを読み出すときには、チェーンの中の残りのメモリトランジスタがそれぞれの関連するワード線を通じてハードオンになるため、チェーンの中を流れる電流は、基本的には読み出しの対象となるセルに蓄積される電荷レベルに左右される。米国特許第5,570,315号(特許文献14)、第5,774,397号(特許文献21)、および第6,046,935号(特許文献16)には、NANDアーキテクチャアレイの例とメモリシステムの一部としてのこの動作が記載されている。
【0024】
ブロック消去
電荷蓄積メモリ装置のプログラミングではひたすら電荷蓄積素子に電荷が加えられる。このためプログラミング操作にあたっては、電荷蓄積素子に既に存在する電荷を事前に除去(または、消去)しなければならない。1つ以上のメモリセルブロックを消去するため、消去回路(図示せず)を設ける。セルアレイ全体あるいはアレイのかなりのセル群を、電気的に一斉に(すなわち、瞬時に)消去するEEPROM等の不揮発性メモリは「フラッシュ」EEPROMと呼ばれる。消去の後にはセル群を再プログラムできる。一斉に消去できるセル群は1つ以上のアドレス可能な消去単位からなってよい。消去単位またはブロックは通常1ページ以上のデータを蓄積し、このページがプログラミングと読み出しの単位となるが、1回の操作で2ページ以上をプログラムしたり読み出したりする場合もある。各ページには通常1セクタ以上のデータが蓄積され、このセクタのサイズはホストシステムによって決まる。例えば、磁気ディスクドライブの場合は512バイトのユーザデータからなるセクタが標準となり、さらにここにユーザデータおよび/またはこれを蓄積するブロックに関する何バイトかのオーバーヘッド情報が加わる。
【0025】
読み出し/書き込み回路
通常の2状態EEPROMセルでは、1つ以上の電流区切りレベルを設定して伝導ウィンドウを2つの領域に分割する。予め決められた一定の電圧を印加することによってセルを読み出すときには、そのソース/ドレイン電流を区切りレベル(または基準電流IREF )と比較することによって記憶状態を決定する。読み出される電流が区切りレベルの電流より高ければ、セルはひとつの論理状態(例えば「0」状態)にあると判断される。その一方で、電流が区切りレベルの電流に満たなければ、セルはもうひとつの論理状態(例えば、「1」状態)にあると判断される。かかる2状態セルは1ビットのデジタル情報を蓄積する。基準電流源は外部からプログラムでき、通常はメモリシステムの一部として用意され、区切りレベル電流を生成する。
【0026】
メモリ容量を増やすため、フラッシュEEPROM装置の実装密度は半導体技術の進歩にともないどんどん高くなっている。各メモリセルで3状態以上を蓄積することによって蓄積容量を増やす方法もある。
【0027】
多状態またはマルチレベルのEEPROMメモリセルの場合は、伝導ウィンドウを複数の区切り点で3つ以上の領域に分割し、各セルに2ビット以上のデータを蓄積することができる。つまり所与のEEPROMアレイで蓄積できる情報は、各セルで蓄積できる状態数にともない増加する。米国特許第5,172,338号(特許文献19)には、多状態またはマルチレベルのメモリセルを備えるEEPROMまたはフラッシュEEPROMが記載されている。
【0028】
実際には、コントロールゲートに基準電圧が印加されるときに、セルのソース電極とドレイン電極にかけて伝導電流を検知することによってセルの記憶状態を読み出すのが普通である。つまりセルのフローティングゲート上の所与の各電荷につき、一定の基準コントロールゲート電圧に対して相応の伝導電流を検出できる。同様に、対応するしきい値電圧ウィンドウや対応する伝導電流ウィンドウは、フローティングゲートにプログラムできる電荷の範囲によって決まる。
【0029】
あるいは、分割された電流ウィンドウの中で伝導電流を検出する代わりに、コントロールゲートで検査の対象となる所与の記憶状態に対してしきい値電圧を設定し、伝導電流がしきい値電流より低いか高いかを検出することも可能である。一実施例において、ビット線のキャパシタンスを通じて放電する伝導電流のレートを調べることによって、しきい値電流に対する伝導電流の検出を果たす。
【0030】
図4は、フローティングゲートが常に選択的に蓄積できる4通りの電荷Q1〜Q4におけるソース−ドレイン電流ID とコントロールゲート電圧VCGとの関係を示すものである。実線で描かれた4本のID 対VCG曲線はメモリセルのフローティングゲートにプログラムできる4通りの可能な電荷レベルを表し、4通りの可能な記憶状態にそれぞれ相当する。一例として、セル集団のしきい値電圧ウィンドウは0.5Vから3.5Vにおよび得る。しきい値ウィンドウをそれぞれ0.5Vの間隔で5つの領域に分割することにより、6通りの記憶状態に区切られてよい。例えば、図に示されているように、2μAの基準電流IREF を使用するならば、Q1でプログラムされるセルは、その曲線がVCG=0.5Vおよび1.0Vで区切られたしきい値ウィンドウの領域内でIREF と交差するため、記憶状態「1」にあるとみなされてよい。同様に、Q4は記憶状態「5」にある。
【0031】
前の説明から分かるように、メモリセルで蓄積する状態が多ければ多いほどしきい値ウィンドウは細かく分割される。そこで所要の分解能を達成するには、プログラミング操作と読み出し操作の精度を上げる必要がある。
【0032】
米国特許第4,357,685号(特許文献22)には2状態EPROMをプログラムする方法が開示され、この方法では、所与の状態までセルがプログラムされると、セルが相継ぐプログラミング電圧パルスに晒され、そのつどフローティングゲートに電荷が加わる。パルスの合間にはセルのリードバックまたはベリファイを行い、区切りレベルに対するソース−ドレイン電流を確認する。所望の状態に達した電流が確認されるとプログラミングは停止する。使用するプログラミングパルストレインの周期または振幅は上げることができる。
【0033】
先行技術のプログラミング回路では、消去または接地状態から目標状態に達するまでプログラミングパルスを単に印加しながらしきい値ウィンドウを通過していく。実際面で十分な分解能を実現するには、分割されたかあるいは区切られた各領域につき、最低でも5ステップ程度のプログラミングステップを踏む必要がある。2状態メモリセルならば、性能は許容される。しかし、多状態セルの場合は、必要ステップ数が分割数にともない増加するため、プログラミングの精度または分解能を上げなければならない。例えば、16状態セルで目標状態までプログラムするには、最低でも平均40のプログラミングパルスが必要となる。
【0034】
図5は、読み出し/書き込み回路170から行デコーダ130と列デコーダ160とを通じて典型的なメモリアレイ構成100にアクセスするメモリ装置を概略的に示す。図2および図3に関連して説明したように、メモリアレイ100の中にあるメモリセルのメモリトランジスタは、1組の選択されたワード線とビット線を通じてアドレスできる。アドレスされたメモリトランジスタのそれぞれのゲートにしかるべき電圧を印加するため、行デコーダ130は1つ以上のワード線を選択し、列デコーダ160は1つ以上のビット線を選択する。読み出し/書き込み回路170は、アドレスされたメモリトランジスタの記憶状態を読み出すかまたは書き込む(プログラムする)ためにある。読み出し/書き込み回路170は、ビット線を通じてアレイ内の記憶素子へ接続可能ないくつかの読み出し/書き込みモジュールを備える。
【0035】
図6Aは、個々の読み出し/書き込みモジュール190の概略的ブロック図である。読み出しやベリファイのときには基本的に、選択されたビット線を通じて接続するアドレスされたメモリトランジスタのドレインを流れる電流をセンスアンプで判定する。この電流は、メモリトランジスタに蓄積された電荷とそのコントロールゲート電圧に左右される。例えば、多状態EEPROMセルでは、数通りのレベルのいずれかまでフローティングゲートを荷電できる。これにより、4レベルセルならば、2ビットのデータを蓄積できる。センスアンプによって検出されたレベルはレベル−ビット変換ロジックによって1組のデータビットに変換され、データラッチに蓄積される。
【0036】
読み出し/書き込み性能・精度に影響する要因
読み出しとプログラミングの性能を上げるには、アレイの中にある複数の電荷蓄積素子またはメモリトランジスタを並行して読み出すかまたはプログラムする。つまり、記憶素子からなる論理「ページ」の読み出しまたはプログラミングは一斉に行われる。既存のメモリアーキテクチャでは通常、1行の中にいくつかの交互ページがある。読み出しまたはプログラミングは1ページの全記憶素子で一斉に行われる。列デコーダは交互ページの各々を対応する数の読み出し/書き込みモジュールへ選択的に接続する。例えば、一実施例において、532バイト(512バイトにオーバーヘッドの20バイトを加えたもの)のページサイズでメモリアレイを設計する。各列にドレインビット線があって各行につき2つの交互ページがあるならば、列は8,512列になり、各ページに4,256列が対応する。全ての偶数ビット線か奇数ビット線を並行して読み書きするには、4,256個のセンスモジュールを接続することになる。こうして、記憶素子のページには1ページ4,256ビット(すなわち、532バイト)のデータを並行して読み出すかまたはプログラムする。読み出し/書き込み回路170を形成する読み出し/書き込みモジュールは、様々なアーキテクチャに組むことができる。
【0037】
図5を参照すると、読み出し/書き込み回路170は、数バンクの読み出し/書き込みスタック180に編制されている。それぞれの読み出し/書き込みスタック180は読み出し/書き込みモジュール190を積み重ねたものである。メモリアレイにおける列の間隔は、これを占有する1つまたは2つのトランジスタのサイズによって決まる。しかし、図6Aから見てとれるように、読み出し/書き込みモジュールの回路はさらに多くのトランジスタと回路素子により実装され、多数の列にわたってスペースを占めることが見込まれる。占有された列の中で2つ以上の列を処理するため、多数のモジュールを互いに積み重ねる。
【0038】
図6Bは、読み出し/書き込みモジュール190の積み重ねにより従来どおりに実装された図5の読み出し/書き込みスタックを示す。例えば、読み出し/書き込みモジュールが16列にわたって延在するならば、1スタックに8読み出し/書き込みモジュールの読み出し/書き込みスタック180により8列を並列処理できる。この読み出し/書き込みスタックは列デコーダを通じて、バンク中の8つの奇数(1,3,5,7,9,11,13,15)列か8つの偶数(2,4,6,8,10,12,14,16)列に結合できる。
【0039】
既に述べたように、従来のメモリ装置は一度に全ての偶数ビット線か全ての奇数ビット線に対して大規模な並列処理を行うことによって、読み出し/書き込み操作を向上させる。この1行2交互ページのアーキテクチャは、読み出し/書き込み回路ブロックの整合問題の緩和に役立つ。これはビット線間容量結合をいかにコントロールするかにも左右される。1組の読み出し/書き込みモジュールを偶数ページか奇数ページに多重化するには、ブロックデコーダを使用する。こうすることで、1組のビット線で読み出しかプログラミングが行われているときには常に、互い違いのビット線を接地でき、近傍結合は最小限に抑えられる。
【0040】
しかし、交互ページアーキテクチャは少なくとも3つの点で不利である。第1に、追加の多重化回路が必要となる。第2に、動作が遅い。ワード線によって接続されたメモリセルあるいは1行のメモリセルで、読み出しまたはプログラミングを完了するには、2回の読み出し操作か2回のプログラミング操作が必要となる。第3に、2つの近傍電荷蓄積素子が別々のときにプログラムされる、例えば奇数ページと偶数ページとで別々にプログラムされる場合のフローティングゲートレベルにおける近傍電荷蓄積素子間の電界結合等、他の好ましくない影響に対処するにあたって最適ではない。
【0041】
近傍電界結合の問題はメモリトランジスタの間隔が狭まるにつれて顕著となる。メモリトランジスタでは、チャネル領域とコントロールゲートの間に電荷蓄積素子が挟まれている。チャネル領域を流れる電流は、電荷蓄積素子とコントロールゲートの電界によって生じる最終的な電界に相関する。メモリトランジスタは密度の増加にともない互いに接近する。近傍電荷素子からの電界は、影響を受けるセルの最終的な電界に大きく寄与する。近傍の電界は、近傍の電荷蓄積素子にプログラムされる電荷に左右される。この摂動を招く電界には、近傍電荷蓄積素子のプログラム状態に応じて変化する動的な性質がある。近傍電荷蓄積素子の状態の変化によっては、影響を受けるセルの読み出しに時間によってばらつきが生じるおそれがある。
【0042】
従来の交互ページアーキテクチャでは、近傍フローティングゲート結合によって生じるエラーが激化する。プログラミングと読み出しは偶数ページと奇数ページで別々に行われるため、介在するページの状況次第では、ページがプログラムされるときの1組の条件とページの読み返しが行われるときの1組の条件がまったく異なることがある。読み出しエラーは密度の増加にともない深刻化するため、多状態の実施例では、読み出し操作の精度を上げてしきい値ウィンドウの分割を粗くする必要がある。性能は損なわれ、多状態の実施例での潜在的キャパシティは制限される。
【0043】
米国公開特許出願第2004−0060031号(特許文献23)には、大きな読み出し/書き込み回路ブロックで相応のメモリセルブロックを並行して読み書きする、高性能でありながらコンパクトな不揮発性メモリ装置が開示されている。特にこのメモリ装置のアーキテクチャは、読み出し/書き込み回路ブロックの無駄を最小限に抑える。時分割方式で少数の共通部分とやり取りしながら並行して作動するブロック読み出し/書き込みモジュールの中核部分に読み出し/書き込みモジュールブロックを再配分することにより、スペースと電力を大幅に節約する。特に、読み出し/書き込み回路の複数のセンスアンプおよびデータラッチ間のデータ処理は共通のプロセッサによって実行される。
【0044】
このように高性能・大容量不揮発性メモリが一般に求められている。特に、読み出しとプログラミングの性能が高く、コンパクトで効率的でありながら読み出し/書き込み回路におけるデータ処理に幅広く対応する改良されたプロセッサを備えるコンパクトな不揮発性メモリが求められている。
【先行技術文献】
【特許文献】
【0045】
【特許文献1】米国公開特許出願第2006−0233026号
【特許文献2】米国公開特許出願第2006−0233023号
【特許文献3】米国公開特許出願第2006−0221696号
【特許文献4】米国特許第6,870,768号
【特許文献5】米国公開特許出願第2006−0140011号
【特許文献6】米国特許第5,595,924号
【特許文献7】米国特許第5,070,032号
【特許文献8】米国特許第5,095,344号
【特許文献9】米国特許第5,315,541号
【特許文献10】米国特許第5,343,063号
【特許文献11】米国特許第5,661,053号
【特許文献12】米国特許第5,313,421号
【特許文献13】米国特許第6,222,762号
【特許文献14】米国特許第5,570,315号
【特許文献15】米国特許第5,903,495号
【特許文献16】米国特許第6,046,935号
【特許文献17】米国特許第5,768,192号
【特許文献18】米国特許第6,011,725号
【特許文献19】米国特許第5,172,338号
【特許文献20】米国特許第5,418,752号
【特許文献21】米国特許第5,774,397号
【特許文献22】米国特許第4,357,685号
【特許文献23】米国公開特許出願第2004−0060031号
【特許文献24】米国公開特許出願第2004−0109357号
【特許文献25】米国公開特許出願第2006−0140007号
【特許文献26】「Use of Data Latches in Multi-Phase Programming of Non-Volatile Memories 」という米国特許出願
【特許文献27】「Non-Volatile Memory and Method with Power-Saving Read and Program-Verify Operations 」という米国特許出願
【特許文献28】米国特許出願第11/013,125号
【特許文献29】米国特許第7,120,051号
【特許文献30】米国公開特許出願第2005−0257120号
【特許文献31】米国公開特許出願第2006−0136687号
【特許文献32】米国公開特許出願第2006−0031593号
【特許文献33】米国特許第6,266,273号
【特許文献34】米国公開特許出願第2004−0109362号
【特許文献35】米国特許第6,657,891号
【特許文献36】米国特許出願第11/530,392号
【特許文献37】米国公開特許出願第2006−0198195号
【特許文献38】米国特許出願第11/618,482号
【非特許文献】
【0046】
【非特許文献1】Eitan et al., "NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell," IEEE Electron Device Letters, vol. 21, no. 11, November 2000, pp. 543-545
【発明の概要】
【0047】
本発明の一態様によると、メモリページ内データのランダム化により、複数のページでデータが並ぶ場合でも、プログラミング中に問題となるデータパターンは回避される。
好適な実施形態において、ページ上でデータをスクランブルするシンプルな方法により、データはページごとに独立しているかまたは異なる開始アドレスに書き込まれる。メモリセルの各ページには、ページごとに異なる開始位置に対応するデータページが書き込まれる。ページの終わりまでデータで埋め尽くされると、ページの最初のアドレスからラップアラウンドし、開始位置の手前まで書き込みを継続する。
別の好適な実施形態では、擬似ランダムジェネレータによって一連の開始物理列アドレスが各ページにつき1つずつ提供される。
【0048】
本発明の別の態様によると、ページに含まれる消去済み状態とプログラム済み状態のセルの割合が平均して等しくなるように、ページ内のデータビットがランダム化される。これによりソース線バイアスまたは負荷の大きなばらつきを抑え、検知操作中のしかるべき調整により許容できるようにする。
それには、ページ内の個々のビットをランダム化する。好ましくは、それぞれ特定の極性を指定する一連の擬似ランダムビットを使ってページ内のビットを符号化する。一実施形態において、ページ内の各データビットにつき極性ビットがある。別の実施形態では、ページ内の各データバイトにつき極性ビットがある。この実施形態で、極性ビットによってビットの反転が指定される場合は、データバイト内の全ビットが反転される。
【0049】
本発明のもうひとつの態様によると、ページ内ランダム化にページ単位のランダム化を組み合わせる。具体的にはオンチップ回路の限りあるリソースを踏まえ、ページ内ランダム化にあたっては各ページに個別の開始位置を用意するのが望ましく、ページ単位ランダム化にあたっては各ページに個別の符号化極性を用意するのが望ましい。
別の実施形態では、各ページに個別の開始位置を用意するページ内ランダム化に加えて、ページ内の各データビットセットに個別の符号化極性を用意する。
【0050】
種々のランダム化手法と実施形態はメモリチップ(EEPROM)で実施される。つまり、チップと通信するメモリコントローラによって実施されるのではなく、メモリチップ自体の中で実施される。これはウェアレベリングと呼ばれる問題対処法とは異なる。この手法は主にシステムレベルで実施され、コントローラを使ってメモリチップにおけるデータ蓄積のあり方を変更する。
本発明は、プログラムディスターブやユーザリードディスターブの原因となる特定のデータパターンを軽減もしくは解消するほか、NANDストリング抵抗効果を抑え、メモリの耐久性と信頼性を高める。フローティングゲート間結合の問題も緩和する。
【図面の簡単な説明】
【0051】
【図1A】不揮発性メモリセルの例を概略的に示す。
【図1B】不揮発性メモリセルの例を概略的に示す。
【図1C】不揮発性メモリセルの例を概略的に示す。
【図1D】不揮発性メモリセルの例を概略的に示す。
【図1E】不揮発性メモリセルの例を概略的に示す。
【図2】NORメモリセルアレイの一例を示す。
【図3】図1Dに示されたメモリセル等のNANDアレイの一例を示す。
【図4】フローティングゲートが常に蓄積できる4通りの電荷Q1〜Q4におけるソース−ドレイン電流とコントロールゲート電圧との関係を示す。
【図5】読み出し/書き込み回路から行デコーダと列デコーダとを通じてアクセスする典型的なメモリアレイ構成を概略的に示す。
【図6A】単一の読み出し/書き込みモジュールの概略的ブロック図である。
【図6B】読み出し/書き込みモジュールの積み重ねにより従来どおりに実装された図5の読み出し/書き込みスタックを示す。
【図7A】本発明の改良されたプロセッサが実装される、1バンクの分割読み出し/書き込みスタックを有するコンパクトなメモリ装置を概略的に示す。
【図7B】図7Aに示されたコンパクトなメモリ装置の好適な構成を示す。
【図8】図7Aに示された読み出し/書き込みスタックにおける基本コンポーネントの一般的な構成を概略的に示す。
【図9】図7Aおよび図7Bに示された読み出し/書き込み回路における読み出し/書き込みスタックの好適な一構成を示す。
【図10】図9に示された共通プロセッサの改良された実施形態を示す。
【図11A】図10に示された共通プロセッサの入力ロジックの好適な実施形態を示す。
【図11B】図11Aの入力ロジックの真理値表を示す。
【図12A】図10に示された共通プロセッサの出力ロジックの好適な実施形態を示す。
【図12B】図12Aの出力ロジックの真理値表を示す。
【図13】図10を簡素化したものであって、本発明の2ビット実施形態の説明にかかわるいくつかの特定の素子を示す。
【図14】下位ページデータが読み込まれる、図13と同じ素子で上位ページプログラミングの場合のラッチ機能を示す。
【図15】シングルページモードにおけるキャッシュプログラミング態様を示す。
【図16】下位ページからフルシーケンスへの転換に使用できるプログラミング波形を示す。
【図17】フルシーケンス転換をともなうキャッシュプログラミング操作の相対的タイミングを示す。
【図18】キャッシュページコピー操作におけるラッチ処理を示す。
【図19A】キャッシュページコピー操作の相対的タイミングを示す。
【図19B】キャッシュページコピー操作の相対的タイミングを示す。
【図20】LM符号を使って各メモリセルに2ビットのデータを蓄積する場合の4状態メモリアレイのしきい値電圧分布を示す。
【図21】EEPROMまたはメモリチップ600の特定のコンポーネントの概略ブロック図である。
【図22A】ページアドレスによる様々なデータページの符号化方式および極性ビットの図解である。
【図22B】ユーザデータの符号化を変換するために使用する17ビット符号例の適用を示す表である。
【図22C】例示的なNANDチェーン/ストリングのメモリセルに蓄積される上位および下位ビットに対する極性ビットの適用を示す。
【図23A】コマンドクロック信号の関数としての符号化方式決定の図解である。
【図23B】コマンドのクロック信号である。
【図23C】データ符号化決定および反転用制御回路の一実施形態を示す。
【図23D】極性ビットが蓄積されたユーザデータページを示す。
【図23E】読み出し操作で場合により反転されたデータの符号化を復帰させる制御回路の一実施形態を示す。
【図24A】コマンドクロック信号と有限状態マシンクロック信号の時系列であって、コマンドクロック信号の立ち上がりにFSMクロックの値を示す。
【図24B】図24Aに示されたコマンドクロック信号の関数として極性ビットを決定する例示的な回路を示す。
【図25】図7Aおよび図9に示されたオンチップ制御回路をより詳細に示す。
【図26】ページごとに異なる開始位置から書き込む好適な実施形態に従い、メモリページ上でデータをスクランブリングする方法を示す。
【図27】データの書き込みにあたってそれぞれ異なる開始位置を持つページの一例を示す表である。
【図28A】接地にかけて有限抵抗を有するソース線の電流に起因するソース電圧誤差問題を示す。
【図28B】ソース線電圧降下によって生じるメモリセルのしきい値電圧レベル誤差を示す。
【図29】ページ内でビットをランダム化する方法を示す。
【図30】本発明の別の態様に従い、ページ単位と各ページ内でデータをランダム化する方法を示す。
【発明を実施するための形態】
【0052】
図7A〜図20は、本発明を実装する好適なメモリシステムを示す。
図7Aは、1バンクの分割読み出し/書き込みスタックを有するコンパクトなメモリ装置を概略的に示すものであり、ここに本発明の改良されたプロセッサが実装される。このメモリ装置は、二次元のメモリセルアレイ300と、制御回路310と、読み出し/書き込み回路370とを備える。メモリアレイ300は、行デコーダ330によりワード線ごとにアドレスでき、列デコーダ360によりビット線ごとにアドレスできる。読み出し/書き込み回路370は1バンクの分割読み出し/書き込みスタック400として実装され、メモリセルからなるブロック(「ページ」とも呼ばれる)の読み出しまたはプログラミングを並行して行うことができる。好適な実施形態において、ページは一連のメモリセル行から構成される。1行のメモリセルを多数のブロックまたはページに分割する別の実施形態において、個々のブロックに向けて読み出し/書き込み回路370を多重化するためにブロックマルチプレクサ350を設ける。
【0053】
制御回路310は、読み出し/書き込み回路370と協働しながらメモリアレイ300でメモリ操作を遂行する。制御回路310は、状態マシン312と、オンチップアドレスデコーダ314と、電力制御モジュール316とを備える。状態マシン312はチップレベルのメモリ動作制御を行う。オンチップアドレスデコーダ314は、ホストまたはメモリコントローラで使われるアドレスからデコーダ330および370で使われるハードウェアアドレスへのアドレスインターフェイスを提供する。電力制御モジュール316は、メモリ操作中にワード線とビット線へ供給される電力と電圧を制御する。
【0054】
図7Bは、図7Aに示されたコンパクトなメモリ装置の好適な構成を示す。様々な周辺回路によるメモリアレイ300へのアクセスは、アレイの両側で相称的に行われるため、アクセス線と回路はそれぞれの側で半々になる。つまり、行デコーダは行デコーダ330Aおよび330Bに分かれ、列デコーダは列デコーダ360Aおよび360Bに分かれる。メモリセル行を多数のブロックに分割する実施形態では、ブロックマルチプレクサ350がブロックマルチプレクサ350Aおよび350Bに分かれる。同様に、読み出し/書き込み回路は、アレイ300の下からビット線へ接続する読み出し/書き込み回路370Aと、アレイ300の上からビット線へ接続する読み出し/書き込み回路370Bとに分かれる。このように、読み出し/書き込みモジュールの密度と分割読み出し/書き込みスタック400の密度は、基本的に2分の1になる。
【0055】
図8は、図7Aに示された読み出し/書き込みスタックにおける基本コンポーネントの一般的な構成を概略的に示す。本発明の一般的なアーキテクチャによると、読み出し/書き込みスタック400は、k本のビット線を検知する1スタックのセンスアンプ212と、I/Oバス231経由でデータを入出力するI/Oモジュール440と、入出力データを蓄積する1スタックのデータラッチ430と、読み出し/書き込みスタック400でデータを処理し蓄積する共通プロセッサ500と、スタックコンポーネントの通信用スタックバス421とを備える。読み出し/書き込みスタック370内の種々のコンポーネントを制御するため、読み出し/書き込みスタックのスタックバスコントローラから線411を通じて制御信号とタイミング信号が提供される。
【0056】
図9は、図7Aおよび図7Bに示された読み出し/書き込み回路における読み出し/書き込みスタックの好適な一構成を示す。各々の読み出し/書き込みスタック400は、k本のビット線群に同時に働きかける。1ページのビット線がp=r*kなら、r個の読み出し/書き込みスタック400−1,・・・,400−rがある。
分割読み出し/書き込みスタック400からなるバンク全体が並行して作動することにより、行沿いにp個のセルからなるブロック(またはページ)の読み出しまたはプログラミングを並行して行うことができる。この場合は、セル行全体に対してp個の読み出し/書き込みモジュールが存在することになる。各スタックでk個のメモリセルを処理するならば、バンク内の合計読み出し/書き込みスタック数はr=p/kで求められる。例えば、バンク内のスタック数がrならば、p=r*kである。例えば、メモリアレイにおいてk=8、r=512ならば、p=512バイト(512×8ビット)となる。ブロックは、好適な実施形態において、セル行全体である。ブロックは、別の実施形態において、行内のセルの小集団である。セルの小集団とは、例えば行全体の2分の1であったり、行全体の4分の1であったりする。セルの小集団は連続するセルであったり、1つおきのセルであったり、一定セル数おきのセルである。
【0057】
それぞれの読み出し/書き込みスタック、例えば400−1の中には、基本的にk個のメモリセルからなるセグメントを並行して処理する1スタックのセンスアンプ212−1から212−kがある。その全体が本願明細書において参照により援用されている米国公開特許出願第2004−0109357号(特許文献24)には、好適なセンスアンプが開示されている。
スタックバスコントローラ410は、線411を通じて読み出し/書き込み回路370へ制御信号とタイミング信号を提供する。スタックバスコントローラ自体は、線311を通じてメモリコントローラ310に従属する。各読み出し/書き込みスタック400内の通信は相互接続スタックバス421(図8参照)によって行われ、スタックバスコントローラ410によって制御される。制御線411は、スタックバスコントローラ410から読み出し/書き込みスタック400−1のコンポーネントへ制御信号とクロック信号を提供する。
【0058】
スタックバスは、好適な構成において、共通プロセッサ500とセンスアンプ212のスタックとの通信のためのSAバス422と、プロセッサとデータラッチ430のスタックとの通信のためのDバス423とに分かれる。
データラッチ430のスタックには、当該スタックに対応する各メモリセルにつき1つずつ、430−1から430−kまでのデータラッチがある。I/Oモジュール440は、データラッチがI/Oバス231を通じて外部とデータをやり取りできるようにする。 共通プロセッサはまた、エラー状態等、メモリの動作状態を伝えるステータス信号を出力する出力507を含む。このステータス信号は、Wired−OR構成でフラグバス509へ結合されたn−トランジスタ550のゲートを駆動するために使われる。フラグバスは、好ましくはコントローラ310によって予め荷電され、いずれかの読み出し/書き込みスタックによってステータス信号がアサートされるとプルダウンされる。
【0059】
図10は、図9に示された共通プロセッサの改良された実施形態を示す。共通プロセッサ500は、外部回路との通信のためのプロセッサバスPバス505と、入力ロジック510と、プロセッサラッチPラッチ520と、出力ロジック530とを備える。
入力ロジック510はPバスからデータを受信し、スタックバスコントローラ410から信号線411経由で届く制御信号に応じて論理状態「1」、「0」、または「Z」(フローティング)のいずれかひとつに変換されるデータとして、BSIノードへ出力する。次に、セット/リセットラッチであるPラッチ520がBSIをラッチすることで、MTCHおよびMTCH*として一対の相補出力信号が用意される。
出力ロジック530はMTCH信号とMTCH*信号を受信し、スタックバスコントローラ410から信号線411経由で届く制御信号に応じて論理状態「1」、「0」、または「Z」(フローティング)のいずれかひとつに変換されるデータを、Pバス505沿いに出力する。
【0060】
共通プロセッサ500は特定のメモリセルに関係するデータを常に処理する。例えば、図10は、メモリセルがビット線1へ結合される場合を示している。対応するセンスアンプ212−1のノードにはセンスアンプデータが出現する。このノードは好適な実施形態において、SAラッチ214−1の形をとり、データを蓄積する。同様に、ビット線1へ結合されたメモリセルに関連する入力または出力データは、対応する1セットのデータラッチ430−1に蓄積される。1セットのデータラッチ430−1は、好適な実施形態において、nビットのデータを蓄積するにあたって十分なデータラッチ434−1・・・434−nを備える。
【0061】
共通プロセッサ500のPバス505は、一対の相補信号SAPおよびSANによって転送ゲート501がイネーブルされると、Sバス422経由でSAラッチ214−1に到達する。同様に、一対の相補信号DTPおよびDTNによって転送ゲート502がイネーブルされると、Pバス505からDバス423経由で1セットのデータラッチ430−1に到達する。信号SAP、SAN、DTP、およびDTNは、スタックバスコントローラ410からの制御信号の一部として明示されている。
【0062】
図11Aは、図10に示された共通プロセッサの入力ロジックの好適な実施形態を示す。入力ロジック520はPバス505沿いにデータを受信し、制御信号に応じて出力BSIは同じになるか、反転するか、フローティングする。出力BSIノードは基本的に、Vddにかけて直列するpトランジスタ524および525を備えるプルアップ回路か、接地にかけて直列するnトランジスタ526および527を備えるプルダウン回路か、転送ゲート522の出力に左右される。プルアップ回路のpトランジスタ524および525へ至るゲートは、信号PBUSおよびONEによってそれぞれ制御される。プルダウン回路のnトランジスタ526および527へ至るゲートは、信号ONEB<1>およびPBUSによってそれぞれ制御される。
【0063】
図11Bは、図11Aの入力ロジックの真理値表を示す。このロジックは、PBUSと制御信号ONE、ONEB<0>、ONEB<1>とによって制御される。これらの制御信号はスタックバスコントローラ410からの制御信号の一部である。基本的には3つの転送モードPASSTHROUGH、INVERTED、およびFLOATEDをサポートする。
BSIが入力データと同じになるPASSTHROUGHモードの場合、信号ONEは論理「1」、ONEB<0>は「0」、ONEB<1>は「0」となる。これによりプルアップまたはプルダウンはディスエーブルされるが、転送ゲート522はイネーブルされ、データはPバス505に沿って出力523へ引き渡される。BSIが入力データの逆になるINVERTEDモードの場合、信号ONEは「0」、ONEB<0>は「1」、ONEB<1>は「1」となる。これにより、転送ゲート522はディスエーブルされる。また、PBUSが「0」ならプルダウン回路はディスエーブルされ、プルアップ回路はイネーブルされ、結果的にBSIは「1」になる。同様に、PBUSが「1」ならば、プルアップ回路はディスエーブルされ、プルダウン回路はイネーブルされ、結果的にBSIは「0」になる。最後に、FLOATEDモードの場合は、信号ONEが「1」、ONEB<0>が「1」、ONEB<1>が「0」となり、出力BSIをフローティングさせることができる。FLOATEDモードは完全を期するために記載されているが、実際には使われない。
【0064】
図12Aは、図10に示された共通プロセッサの出力ロジックの好適な実施形態を示す。入力ロジック520からBSIノードに至る信号はプロセッサラッチ、Pラッチ520でラッチされる。出力ロジック530はPラッチ520の出力からデータMTCHおよびMTCH*を受信し、制御信号に応じてPASSTHROUGHモードか、INVERTEDモードか、FLOATEDモードでPバス沿いに出力する。換言すると、4本のブランチはPバス505の駆動部として機能し、これをHIGH、LOW、またはFLOATED状態まで能動的に引き上げる。これは、Pバス505の4つのブランチ回路、具体的には2つのプルアップ回路と2つのプルダウン回路とによって果たされる。第1のプルアップ回路はVddにかけて直列するpトランジスタ531および532を備え、MTCHが「0」のときにPバスをプルアップできる。第2のプルアップ回路は接地にかけて直列するpトランジスタ533および534を備え、MTCHが「1」のときにPバスをプルアップできる。同様に、第1のプルダウン回路はVddにかけて直列するnトランジスタ535および536を備え、MTCHが「0」のときにPバスをプルダウンできる。第2のプルアップ回路は接地にかけて直列するnトランジスタ537および538を備え、MTCHが「1」のときにPバスをプルアップできる。
【0065】
本発明の一特徴として、プルアップ回路はPMOSトランジスタで構成され、プルダウン回路はNMOSトランジスタで構成される。NMOSによるプルはPMOSのプルより遥かに強いため、競合する場合は常にプルダウンがプルアップに勝る。換言すると、ノードまたはバスはデフォルトとして常にプルアップまたは「1」状態にでき、必要とあらば常にプルダウンにより「0」状態に反転させることができる。
【0066】
図12Bは、図12Aの出力ロジックの真理値表を示す。このロジックは、入力ロジックからラッチされるMTCH、MTCH*と、制御信号PDIR、PINV、NDIR、NINVとによって制御される。これらの制御信号はスタックバスコントローラ410からの制御信号の一部である。4つの動作モード、PASSTHROUGH、INVERTED、FLOATED、およびPRECHARGEをサポートする。
【0067】
FLOATEDモードでは4本のブランチがすべてディスエーブルになる。これは信号、PINV=1、NINV=0、PDIR=1、NDIR=0によって達成される。これらはデフォルト値でもある。PASSTHROUGHモードでMTCH=0ならば、PBUS=0が要求される。それにはnトランジスタ535および536を備えるプルダウンブランチだけをイネーブルし、NDIR=1を除き、制御信号はどれもデフォルト値とする。MTCH=1ならば、PBUS=1が要求される。それにはpトランジスタ533および534を備えるプルアップブランチだけをイネーブルし、PINV=0を除き、制御信号はどれもデフォルト値とする。INVERTEDモードでMTCH=0ならば、PBUS=1が要求される。それにはpトランジスタ531および532を備えるプルアップブランチだけをイネーブルし、PDIR=0を除き、制御信号はどれもデフォルト値とする。MTCH=1ならば、PBUS=0が要求される。それにはnトランジスタ537および538を備えるプルダウンブランチだけをイネーブルし、NINV=1を除き、制御信号はどれもデフォルト値とする。PRECHARGEモードでは、PDIR=0とPINV=0の制御信号設定でMTCH=1ならば、pトランジスタ531および531を備えるプルアップブランチがイネーブルされ、MTCH=0ならば、pトランジスタ533および534を備えるプルアップブランチがイネーブルされる。
その全体が本願明細書において参照により援用されている米国公開特許出願第2006−0140007号(特許文献25)では、共通プロセッサの動作がより詳しく説明されている。
【0068】
キャッシュ操作におけるデータラッチの使用
本発明のいくつかの態様において、読み出し、書き込み、消去といったほかの作業に内部メモリが従事しているときにデータを出し入れするキャッシュ操作にあたって、図10で前述した読み出し/書き込みスタックのデータラッチを利用する。前述したアーキテクチャでは、多数の物理ページによってデータラッチが共用される。例えば、ビット線の読み出し/書き込みスタックを全てのワード線で共用すれば、あるひとつの操作が進行しているときに空いているラッチがあれば、同じワード線か別のワード線における先々の操作に向けて空いているラッチにデータをキャッシュできるため、転送時間は他の操作の背後に潜在化され、時間の節約になる。この場合は異なる操作または操作段階のパイプライン処理の拡大により性能を上げることができる。例えば、キャッシュプログラミング操作で1ページのデータをプログラムしているときに別のページのデータを読み込めば、転送時間を節約できる。他の例として、例示的な実施形態において、あるひとつのワード線における読み出し操作を別のワード線における書き込み操作に挿入することにより、データの書き込みを継続しながら読み出しデータをメモリから出すことができる。
【0069】
第1のデータページで書き込み等の操作が進行しているときには、(例えば、ECC操作のため)同じブロックでワード線が異なる別のページからデータをトグルアウトできることに留意するべきである。この操作段階パイプラインにより、データ転送に要する時間は第1のデータページに対する操作の背後に潜在化される。より一般的には、あるひとつの操作の一部分を、通常ならばこれよりも長い、別の操作の段階の合間に差しはさむことができる。他の例として、消去操作の段階の合間に、例えば消去パルスの前あるいは消去の後半部分にあたるソフトプログラミング段階の前に、検知操作を挿し込むこともできる。
【0070】
操作に要する相対的時間を説明するため、前述したシステムの例示的な時間値のセットを次のとおりとする。
データ書き込み:〜700μs(下位ページ〜600μs、上位ページ800μs)
バイナリデータ書き込み:〜200μs
消去:〜2,500μs
読み出し:〜20−40μs
読み出しとトグルアウトデータ:2KBデータ、〜80μs;4KB〜160μs;8KB〜320μs
これ以降、タイミング図との関係で相対的時間を説明する際には、これらの値を基準として使用し得る。主要な態様において、読み出し/書き込みスタックの共用ラッチが使用可能であれば、複数の段階をともなう長い操作の合間に短い操作を差しはさむ。例えば、プログラミング操作や消去操作の中に読み出しを挿し込んだり、消去中にバイナリプログラミングを挿し込んだりすることができる。主要な例示的な実施形態において、同じ読み出し/書き込みスタックを共用するページのプログラミング操作のときに別のページのデータをトグルイン/アウトする。例えば、データ書き込みのベリファイ段階に、トグルアウトされ修正されるデータの読み出しを挿し込む。
【0071】
空きデータラッチを利用できる機会はいくつかある。一般的に、1セル当たりnビットを蓄積するメモリの場合は各ビット線につきn個のデータラッチが必要となるが、これらのラッチの全てが常に必要となるわけではない。例えば、上位ページ/下位ページ形式でデータを蓄積する1セル当たり2ビットのメモリで、下位ページをプログラムしているときには2つのデータラッチが必要となる。より一般的には、複数のページを蓄積するメモリで全てのラッチが必要となるのは最上位ページをプログラムするときだけである。ほかのラッチはキャッシュ操作に利用できる。また、最上位ページの書き込み中でも、書き込み操作のベリファイ段階から種々の状態が排除されるにつれてラッチは解放される。具体的に、ベリファイすべき状態が最上位状態だけになると、ベリファイに必要なラッチは1つだけになり、ほかのラッチはキャッシュ操作に使うことができる。
【0072】
以降の説明は、1セル当たり2ビットを蓄積し、各ビット線につき2つのデータラッチを具備し、さらにクイックパス書き込み用に1つのラッチを具備する4状態メモリに基づくものである。このメモリは、本願と同時に出願され、参照により援用されている「Use of Data Latches in Multi-Phase Programming of Non-Volatile Memories 」という米国特許出願(特許文献26)で説明されている。下位ページ書き込み操作、消去操作、消去後ソフトプログラミング操作は、基本的にはバイナリ操作であり、データラッチの一方は空いていて、データをキャッシュするのに使うことができる。同様に、上位ページかフルシーケンスの書き込みを行う場合に、最上位レベル以外はすべてベリファイ済みでベリファイすべき状態がただひとつになると、メモリはラッチを解放でき、解放されたラッチはデータのキャッシュに使うことができる。例えばコピー操作等で1ページをプログラムする場合に、例えば同じビット線のセット上の別のワード線で同じデータラッチのセットを共用する別のページの読み出しは、書き込みのベリファイ段階に差しはさむことができる。その後、書き込み対象のページにアドレスを切り替えることにより、書き込みプロセスは中断したところから再開でき、やり直しの必要はない。書き込みが継続しているときには、割り込ませた読み出しのときにキャッシュしたデータをトグルアウト、チェック、または修正し、元に戻すことができ、書き込み操作が完了した時点でライトバックできる。この種のキャッシュ操作では、最初のページのプログラミングの背後に2番目のページのデータのトグルアウトと修正を潜在化させることができる。
【0073】
第1の例として、2ビットメモリのキャッシュプログラミング操作をシングルページ(下位ページ/上位ページ形式)プログラムモードで行う。図10を簡素化した図13には、2ビット実施形態の説明にかかわるいくつかの特定の素子が見られるが、説明を簡潔にするため、その他の素子は省いてある。これはデータI/O線231へ接続されたデータラッチDL0 434−0と、線423により共通プロセッサ500へ接続されたデータラッチDL1 434−1と、線435により他のデータラッチとともに接続されたデータラッチDL2 434−2と、線422により共通プロセッサ500へ接続されたセンスアンプデータラッチDLS 214とを含む。図13の種々の素子には、下位ページをプログラムするときの処理に従って標識が付されている。ラッチDL2 434−2は、本願と同時に出願された「Use of Data Latches in Multi-Phase Programming of Non-Volatile Memories 」という米国特許出願(特許文献26)に記載されたクイックパス書き込みモードの下位ベリファイ(VL)に使われるものである。このレジスタの使用と、これを使用する場合のクイックパス書き込みは任意であるが、この例示的な実施形態ではこのレジスタを使用する。
【0074】
下位ページのプログラミングは次のステップを含み得る。
(1)このプロセスは、データラッチDL0 434−0をデフォルト値「1」にリセットすることから始まる。この変換は部分ページプログラミングを簡素化するためのものであり、選択された行の中でプログラミングの対象とならないセルはプログラム禁止になる。
(2)I/O線231に沿ってDL0 434−0にプログラムデータが供給される。
(3)DL1 434−1とDL2 434−2(このラッチを使用し、クイックパス書き込みを実施する場合)へプログラムデータが転送される。
(4)DL1 434−1へプログラムデータが転送されたら、データラッチDL0
434−0を「1」にリセットでき、プログラミング中はI/O線231に沿って次のデータページをDL0 434−0に読み込むことができ、第1のページが書き込まれているときには第2のページをキャッシュできる。
(5)DL1 434−1に第1のページが読み込まれたら、プログラミングを開始できる。DL1 434−1のデータによりセルはロックアウトされ、それ以上プログラムできなくなる。本願と同時に出願された「Use of Data Latches in Multi-Phase Programming of Non-Volatile Memories 」という米国特許出願(特許文献26)で説明されているように、DL2 434−2のデータは、クイックパス書き込みの第2段階への移行を決定づける下位ベリファイロックアウトに使われる。
(6)プログラミングが始まると、プログラミングパルスの後に下位ベリファイ結果をもとにDL2 434−2を更新し、上位ベリファイ結果をもとにDL1 434−1を更新する。(これは、下位ページプログラミングがA状態に至る「従来の」符号化に基づく説明である。本願と同時に出願された「Use of Data Latches in Multi-Phase Programming of Non-Volatile Memories 」という米国特許出願(特許文献26)と、2005年3月16日に出願された「Non-Volatile Memory and Method with Power-Saving Read and Program-Verify Operations 」という米国特許出願(特許文献27)では、この符号化とその他の符号化が説明されている。ここでの説明は他の符号化にも容易く敷衍できる。)
(7)プログラミングが完了したか否かの判断にあたっては、セル行(またはしかるべき物理的プログラミング単位)のDL1 434−1レジスタだけをチェックする。
【0075】
下位ページが書き込まれたら上位ページをプログラムできる。図14にも図13と同じ素子が見られるが、これは下位ページデータが読み込まれた状態で上位ページをプログラムする場合のラッチの働きを示している。(この説明も従来の符号化に基づくもので、上位ページのプログラミングはBおよびC状態に至る。)上位ページのプログラミングは次のステップを含む。
(1)下位ページのプログラミングが終了したら、(未実行)キャッシュプログラミングコマンドを保持する状態マシンのコントローラからの信号により上位ページ(または次のページ)の書き込みが始まる。
(2)DL0 434−0(下位ページ書き込みのステップ(3)でプログラムデータが読み込まれたところ)からDL1 434−1とDL2 434−2へプログラムデータが転送される。
(3)アレイから下位ページが読み出され、DL0 434−0の中に置かれる。
(4)ベリファイハイおよびベリファイローロックアウトデータのためにDL1 434−1とDL2 434−2が再び使用される。ラッチDL0 434−0(下位ページデータを保持)はプログラム基準データとしてチェックされるが、ベリファイ結果によりこれが更新されることはない。
(5)B状態ベリファイの一部として、下位ベリファイVBLでの検知の後にはDL2 434−2でデータが更新され、DL1 434−1データは上位ベリファイVBH結果によって更新される。同様に、CベリファイにもVCL結果とVCH結果によりラッチDL2 434−2およびDL1 434−1を更新するための対応するコマンドがある。
(6)Bデータが完了したらC状態をベリファイするだけでよいので、下位ページデータ(基準としてDL0 434−0に保持されたもの)は必要ない。DL0 434−0を「1」にリセットし、I/O線231から別のページのプログラムデータを読み込み、ラッチDL0 434−0にキャッシュできる。共通プロセッサ500はC状態のみのベリファイを指示できる。
(7)B状態について上位ページのプログラミングが完了したか否かを判断するにあたっては、ラッチDL1 434−1とDL0 434−0の両方をチェックする。セルがB状態までプログラムされ、ベリファイするのがC状態だけになったら、ラッチDL1
434−1のデータだけをチェックし、プログラムされていないビットの有無を確認すればよい。
【0076】
このやり方のステップ6でラッチDL0 434−0が必要でなくなると、このラッチを使って次のプログラミング操作のためにデータをキャッシュできることに留意するべきである。加えて、クイックパス書き込みを使用する実施形態で、2番目の遅いプログラミング段階に入ったら、ラッチDL2 434−2もデータのキャッシュに使うことができる。しかし、実際にこれを使えるのはかなり短い時間に限られているため、これを実装した場合のオーバーヘッドに見合うほどの価値はない。
【0077】
図15は、直前の数段落で説明したシングルページモードによる数々のキャッシュプログラミングの態様を説明するのに役立つ。図15は、メモリの内部で起こるイベント(下の「True Busy」線)とメモリの外側から見たイベント(上の「Cache Busy」線)の相対的タイミングを示すものである。
【0078】
時間t0 には、選択されたワード線(WLn)にプログラムする下位ページがメモリに読み込まれる。ここでは第1の下位ページデータが予めキャッシュされていないと仮定するが、それ以降のページについてはキャッシュが行われる。時間t1 には下位ページの読み込みが完了し、メモリはこの書き込みに着手する。この時点ではバイナリ操作と同じであり、ベリファイの必要があるのは状態Aだけであり(「pvfyA」)、データラッチDL0 434−0は次のページのデータを受け付けることができる。これは時間t2 にWLnにプログラムされる上位ページであり、下位ページのプログラミング中にラッチDL0 434−0にキャッシュされる。時間t3 には上位ページの読み込みが完了し、t4 で下位ページのプログラミングが終わり次第直ちにこれをプログラムできる。このやり方では全てのデータ(下位および上位ページ)が物理的なプログラミング単位(ここではワード線WLn)に書き込まれるが、後述するフルシーケンス実施形態と違って、メモリは上位ページデータの書き込みに先立ち時間t3 から時間t4 まで待たなければならない。
【0079】
上位ページのプログラミングは時間t4 で始まり、ここでは当初B状態だけをベリファイし(「pvfyB」)、t5 にはC状態が加わる(「pvfyB/C」)。t6 でB状態のベリファイが終わるとベリファイが必要なのはC状態だけとなり(「pvfyC」)、ラッチDL0 434−0は解放される。これにより次のデータセットをキャッシュできるようになり、上位ページのプログラミングは終了する。
前述したように、図15に示されたキャッシュプログラミングをともなうシングルページアルゴリズムの場合は、たとえ時間t3 で上位ページデータが用意されても、メモリはこのデータの書き込みに着手する前に時間t4 まで待つことになる。米国特許出願第11/013,125号(特許文献28)等に詳述されているフルシーケンスプログラム動作に転換すれば、上位ページが用意された時点で上位ページと下位ページのデータを同時にプログラムできる。
【0080】
フルシーケンス(下位からフルへの転換)書き込みにおけるキャッシュプログラミングアルゴリズムも前述したのと同様に、下位ページのプログラミングから始まる。したがって、ステップ(1)〜(4)はシングルページプログラムモードにおける下位ページプロセスと同じになる。
(1)このプロセスは、データラッチDL0 434−0をデフォルト値「1」にリセットすることから始まる。この変換は部分ページプログラミングを簡素化するためのものであり、選択された行の中でプログラミングの対象とならないセルはプログラム禁止になる。
(2)I/O線231に沿ってDL0 434−0にプログラムデータが供給される。
(3)DL1 434−1とDL2 434−2(このラッチを使用し、クイックパス書き込みを実施する場合)へプログラムデータが転送される。
(4)DL1 434−1へプログラムデータが転送されたら、データラッチDL0
434−0を「1」にリセットでき、プログラミング中はI/O線231に沿って次のデータページをDL0 434−0に読み込むことができ、第1のページが書き込まれているときには第2のページをキャッシュできる。
第2のページのデータが読み込まれた時点で、これが書き込み中の下位ページの上位に相当し、下位ページのプログラミングがまだ終わっていなければ、フルシーケンス書き込みへの転換を実施できる。ここでの説明はかかるアルゴリズムにおけるデータラッチの使用に注目するものであり、詳細は同一出願人による同時係属の米国特許第7,120,051号(特許文献29)で詳述されている。
(5)上位ページデータがラッチDL0 434−0に読み込まれた後にはアドレスブロックで判断を下す。つまり、2つのページが同じワード線と同じブロックにあって、一方のページが下位ページであり、他方のページが上位ページであることをチェックする。そのとおりに下位ページプログラミングからフルシーケンスプログラミングへの転換が可能であれば、プログラム状態マシンがこの転換をトリガする。移行は未完了のベリファイが完了した後に行われる。
(6)プログラミングシーケンスが下位ページからフルシーケンスへ変化する場合は、通常ならばいくつかの操作パラメータが変更される。これは例示的な実施形態において次のものを含む。
(i)下位ページデータがロックアウトされていなければ、パルスベリファイサイクル数の最大プログラムループが下位ページアルゴリズムの最大プログラムループからフルシーケンスの最大プログラムループに変更される。しかし、完了プログラムループ数は転換によりリセットされない。
(ii)図16に見られるように、プログラミング波形は下位ページプログラミングプロセスで使われる値VPGM_Lで始まる。プログラミング波形が進展し、上位ページプロセスで使う初期値VPGM_Uを超えると、フルシーケンスへの転換にあたって階段はVPGM_Uまで戻り、そこから上昇を続ける。
(iii)プログラムパルスの最大値とステップサイズを決定するパラメータは変更されない。
(7)マルチレベル符号化で適切なデータのプログラミングを保証するため、メモリセルの現在状態のフルシーケンス読み出しを行わねばならない。こうすれば、フルシーケンスが始まるときに、下位ページのプログラミングでロックアウトされていて上位ページのデータを考慮に入れるためにさらなるプログラミングを必要とする状態はプログラム禁止にならない。
(8)クイックパス書き込みが行われる場合は、上位ページのプログラムデータを反映させるため、A状態のみの下位ベリファイに基づくラッチDL2 434−2のデータも更新される。
(9)マルチレベル、フルシーケンスのプログラムアルゴリズムによるプログラミングが再開する。図16に見られるように、下位ページプロセスのプログラミング波形が上位ページの初期レベルを超えると、波形は転換時にこのレベルに戻される。
【0081】
図17は、下位ページからフルシーケンスへ転換する書き込みプロセスにかかわる相対的時間を概略的に示す。時間t3 までは図15のプロセスで前述したとおりである。時間t3 で上位ページのデータは読み込み済みで、フルシーケンスアルゴリズムへ移行し、A状態のベリファイプロセスにB状態が加わる。A状態が全てロックアウトされると、ベリファイプロセスは時間t4 でB状態とC状態のチェックに切り替わる。t5 でB状態がベリファイ済みになるとチェックの必要があるのはC状態だけとなり、レジスタを解放して次のプログラムすべきデータを読み込むことができる。例えば、Cache Busy線に見られるように、下位ページを次のワード線(WLn+1 )に読み込むことができる。次のデータセットは時間t6 でキャッシュ済みとなり、t7 で前のデータセットのCデータのプログラミングが終わると、次のデータセットのプログラミングが始まる。また、ワード線WLn+1 上で(ここでは)下位ページがプログラムされているときには、空いているラッチDL0 434−0に次のデータ(対応する上位ページデータ等)を読み込むことができる。
【0082】
フルシーケンス書き込みのときには、下位ページと上位ページの状態を別々に伝えるステータス報告が実施される。プログラミングシーケンスの終わりに未完了ビットがある場合は、物理ページのスキャンを実行できる。第1のスキャンではラッチDL0 434−0で未完了上位ページデータをチェックでき、第2のスキャンではDL1 434−1で未完了下位ページデータをチェックできる。B状態のベリファイによってDL0 434−0とDL1 434−1のデータは両方とも変化するから、ビットのしきい値がAベリファイレベルより高ければ、A状態のベリファイでDL1 434−1データ「0」は「1」に変更される。この事後ベリファイはプログラムが不十分なBレベルがAレベルで合格するか否かをチェックするものであり、Aレベルで合格するならば、エラーは上位ページのみで下位ページにはなく、Aレベルで合格しないならば、下位ページと上位ページの両方にエラーがある。
キャッシュプログラミングアルゴリズムを使用する場合は、AおよびBデータがプログラムされた後に、プログラミングを完了するためにラッチDL1 434−1へC状態が転送される。この場合、下位ページは既にプログラムを通過していて不良ビットはないから、下位ページについてラッチをスキャンする必要はない。
【0083】
本発明の別の例示的な実施形態は、あるひとつの場所から別の場所へデータセットを再配置するページコピー操作に関係する。本願明細書において参照により援用されている米国公開特許出願第2005−0257120号(特許文献30)、第2006−0136687号(特許文献31)、第2006−0031593号(特許文献32)、ならびに米国特許第6,266,273号(特許文献33)には、データ再配置操作の種々態様が記載されている。あるひとつの場所から別の場所へコピーされるデータは多くの場合、チェックのため(エラーチェック等)、更新のため(ヘッダ更新等)、あるいはチェックと更新のため(検出されたエラーの訂正等)にトグルアウトされる。かかる転送によってガーベッジコレクション操作の日付も整理される。本発明の主要な態様において、空きレジスタへのデータ読み込みを書き込み操作のベリファイ段階に挿し込み、書き込み操作の継続中にこのキャッシュデータをメモリ装置の外に出すことにより、データをトグルアウトする時間を書き込み操作の背後に潜在化させることができる。
【0084】
これよりキャッシュページコピー操作の2つの例示的な実施形態を紹介する。いずれの場合でも、クイックパス書き込みを使用する実施例を説明する。図18は、プロセスの進行にともなう例示的なラッチ構成の処理を示す。
【0085】
下位ページに書き込みを行う最初のキャッシュページコピーは次のステップを含む。ここで読み出しアドレスには標識M、M+1・・・が付き、書き込みアドレスには標識N、N+1・・・が付く。
(1)コピーするページ(「ページM」)がラッチDL1 434−1に読み込まれる。これは上位ページか下位ページのデータであり得る。
(2)次にページMがDL0 434−0へ移される。
(3)次にDL0 434−0のデータがトグルアウトされ、修正され、ラッチに戻される。
(4)ここでプログラミングシーケンスを開始できる。下位ページNに書き込むデータがDL1 434−1とDL2 434−2に移されたら、ラッチDL0 434−0はデータをキャッシュできる状態になる。この下位ページはプログラムされる。この実施形態の場合、プログラム状態マシンはここで停止する。
(5)コピーする次のページがDL0 434−0に読み込まれる。ここでプログラミングを再開できる。ステップ(4)の終わりに停止した状態マシンは、プログラミングシーケンスを最初から再開する。
(6)プログラミングは下位ページが完了するまで続く。
下位ページに対する書き込みか上位ページに対する書き込みかは、コピー先ページアドレスによって決まる。プログラムアドレスが上位ページアドレスなら、プログラミングシーケンスはプログラミングが完了するまで停止せず、ステップ(5)の読み出しは書き込みが完了した後に行われる。
【0086】
第2のキャッシュページコピー法では、プログラム/ベリファイプロセスを中断して読み出し操作を挿し込み、書き込み操作は中断したところから再開できる。この交互検知操作の間に読み出されたデータは、再開した書き込み操作の継続中にトグルアウトできる。また、この第2のプロセスでベリファイの対象がC状態だけとなり、各ビット線で1つのラッチが解放されると、上位ページかフルシーケンスの書き込みプロセスでページコピーメカニズムを使用できる。第2のキャッシュページコピー操作の最初の3ステップは第1のものと同じだが、その後は異なる。これは以下のステップを含む。
(1)コピーするページ(「ページM」)がラッチDL1 434−1に読み込まれる。これは上位ページか下位ページであり得る。
(2)次にページMのデータがDL0 434−0へ移される。(前と同様に、N等は書き込みアドレスを表し、M等は読み出しアドレスを表す。)
(3)次にDL0 434−0のデータがトグルアウトされ、修正され、ラッチに戻される。
(4)状態マシンプログラミングは読み出しコマンドが届くまで無限待機状態に入り、その後には別のページ、例えば次のページM+1のラッチDL0 434−0への読み込みが始まる。
(5)ステップ(4)の読み込みが完了したら、ステップ(1〜3)のデータをページN(ここでは、下位ページ)にプログラムするためのワード線とブロックアドレスにアドレスが戻され、プログラミングが再開する。
(6)ページM+1の読み込みが完了したらデータをトグルアウトし、修正し、元に戻すことができる。処理が完了し、2つのページが同一WL上の対応する上位および下位ページなら、フルシーケンス書き込み操作に転換できる。
(7)フルシーケンス書き込みでAレベルとBレベルが終了したら、前に説明した通常のキャッシュプログラミングと同様に、DL0 434−0のデータがDL1 434−1へ移され、別のページ(例えば、M+2)の読み出しコマンドを発行できる。シングルページからフルシーケンスへの転換がない場合は、下位ページの書き込みが完了し、上位ページが始まる。Bレベル状態が完了すると再びDL0 434−0からDL1 434−1へデータが移され、状態マシンはページM+2の読み出しコマンドを待機する。
(8)読み出しコマンドが届くとアドレスは読み出しアドレスに切り替えられ、次のページ(ページM+2)が読み出される。
(9)読み出しが完了したら、アドレスは書き込みが終了するまで以前の上位ページアドレス(プログラムアドレスN+1)に戻される。
【0087】
前述したように、例示的な実施形態では各メモリセルにプログラムされ得るデータ(ここでは2ビット)をラッチDL0 434−0およびDL1 434−1で保持するほか、クイックパス書き込み手法の下位ベリファイにラッチDL2 434−2を使用する。下位ベリファイに合格したらラッチDL2 434−2も解放され、データのキャッシュに使うことができるが、例示的な実施形態では使わない。
【0088】
図19Aおよび図19Bは第2のキャッシュページコピー法の相対的タイミングを示すものであり、図19Bのアルゴリズムにはフルシーケンス書き込み転換があるが、図19Aのアルゴリズムにはそれがない。(図19Aおよび図19Bはいずれも2つの部分から構成され、第1の上部分はt0 に一致する縦の破線Aから始まってt5 に一致する縦の破線Bで終わり、第2の下部分は上部分の続きであって、t5 に一致する縦の破線Bから始まる。いずれにせよ、時間t5 のところに位置する線Bは上部分と下部分とで同じであって、2つの部分を2本の線で表示するための継ぎ目に過ぎない。)
【0089】
図19Aのプロセスは第1のページ(ページM)の読み出しから始まり、この例において下位ページであり、予めデータはキャッシュされていないものと仮定し、シングルページモードで作動し、下位ページの書き込みが終わるのを待ってから上位ページの書き込みが始まる。プロセスは、時間t0 にページMの読み出しから始まり(ページM(L)検知)、この符号化でAおよびCレベルの読み出しによって検知される下位である。時間t1 では読み出しが完了し、ページMをトグルアウトしてチェックまたは修正できる。時間t2 からBレベルの読み出しによって次のページ(ここではM+1、下位ページMと同じ物理ページに対応する上位ページ)が検知され、時間t3 でプロセスが終了する。このとき、第1のページ(ページMからのもの)(下位)はメモリのページNにプログラムでき、M+1から読み出されたデータはラッチに保持され、外に出して修正/チェックできる。これらのプロセスはいずれも同じ時間、ここではt3 に始めることができる。前述した例示的な時間値を使用すると、ページM+1のデータは時間t4 までにトグルアウトされ、修正されるが、フルシーケンス転換を実施しない実施形態の場合、メモリは時間t5 にページNが終了するのを待ってから、ページN+1への第2の読み出しページデータ(ページM+1からのもの)の書き込みを開始する。
【0090】
ページN+1は上位ページであり、この書き込みは当初Bレベルのベリファイで始まるが、t6 にはCレベルが加わる。目標状態Bになった蓄積素子が時間t7 で全てロックアウトされると(あるいは最大カウントに達すると)、B状態のベリファイはなくなる。前述したように、本発明のいくつかの主要な態様によるとこのときデータラッチは解放され、進行中の書き込み操作は中断し、読み出し操作(中断したプログラム/ベリファイ操作とは異なるアドレスでの読み出し操作)が割り込み、その後書き込みは中断したところから再開し、再開した書き込み操作が進行しているときには割り込み書き込み操作の検知データをトグルアウトできる。
【0091】
時間t7 には割り込み書き込み操作を実行する。ここでのものは下位ページM+2である。この検知は時間t8 に終了し、ページN+1の書き込みは再開し、これと同時にページM+2のデータがトグルアウトされ、修正される。この例ではページN+1のプログラミングが時間t9 に終了してから時間t10にページM+2が終了する。時間t10にはページM+2からのデータの書き込みを始めることもできるが、この実施形態では代わりにページM+3の読み出しを先に実行する。こうすることで、このページデータをトグルアウトし、時間t11に始まるページN+2へのページM+2データの書き込みの背後に修正を潜在化させることができる。そこからプロセスは図の以前の部分のように継続する。しかし、ページ番号はずれ、時間t11は時間t3 に相当し、時間t12は時間t4 に相当する。最後にコピープロセスは停止する。
【0092】
図19Bに示すプロセスもページMを下位ページとして読み出すことから始まり、データは予めキャッシュされていないものと仮定する。図19Bは、時間t4 にフルシーケンス書き込みに転換する点が図19Aと異なる。これにより、プロセスはざっと図19Aの時間(t5 〜t4 )だけ速くなる。時間t4 (=図19Aのt5 )には、前述したフルシーケンス転換にかかわる様々な変更が実施される。時間t7 およびt12間に見られる本発明の態様等、その他の点は図19Aに類似する。
【0093】
本願明細書において参照により援用されている米国公開特許出願第2004−0109362号(特許文献34)に記載されているように、ページコピープロセスと、ここで説明するデータ書き込みをともなうその他の手法で、ある特定の時間にベリファイする状態は適切に選ぶことができる。例えばフルシーケンス書き込みの書き込みプロセスはAレベルのみのベリファイから始めることができる。Aベリファイの後には、ビットをチェックし合格ビットの有無を確認する。合格ビットがあるならば、Bレベルをベリファイ段階に加えることができる。Aレベルのベリファイは、これを目標値とする全蓄積単位のベリファイ後に外される(または設定可能なパラメータに基づく最大カウントを除く)。同様に、Bレベルのベリファイ後にはCレベルのベリファイを加えることができ、Bレベルのベリファイは、これを目標値とする全蓄積単位のベリファイ後に外される(または設定可能なパラメータに基づく最大カウントを除く)。
プログラミング操作とこれにともなうバックグラウンドデータキャッシングを、好適な多状態符号化との関係で説明する。
【0094】
4状態メモリのための好適な例示的な「LM」符号化
図20は、2ビット論理符号(「LM」符号)で符号化される4状態メモリのプログラミングと読み出しを示す。この符号は耐障害性を提供し、ユーピン効果による隣接セル結合を緩和する。図20は、LM符号を使用して各メモリセルに2ビットのデータを蓄積する場合の4状態メモリアレイのしきい値電圧分布を示す。LM符号化は、上位および下位ビットが状態「A」および「C」とで逆になる点が従来のグレイコードと異なる。米国特許第6,657,891号(特許文献35)に開示された「LM」符号は、電荷の大きな変化を要するプログラム操作を回避することによって隣接フローティングゲート間の電界効果結合を抑えるのに有利である。
【0095】
この符号化では、下位および上位2ビットのプログラミングと読み出しを別々に行う。下位ビットをプログラムするときのセルのしきい値レベルは未プログラム領域にとどまるか、しきい値ウィンドウの「下位中間」領域まで進む。上位ビットをプログラムするときには、これら2領域のいずれかにあるしきい値レベルがさらにしきい値ウィンドウの4分の1以下である若干高いレベルまで進む。
【0096】
データパターンの擬似・ユーザ主導形ランダム化
メモリEEPROMまたはチップとランダム化手法の種々の実施形態は、NANDストリング抵抗の増加、耐久性と信頼性の低下、好ましくない結合等、反復データ蓄積パターンに起因する問題を最小限に抑えることを目指す。本発明の擬似ランダム化手法は実用的で、データ処理能力の点で実装コストは高くつかない。
【0097】
本発明は、フラッシュメモリチップに蓄積されるデータで擬似ランダム化と真にユーザ本位のランダム化を実装する様々な実施形態および方法を含む。これらの実施形態には、フラッシュEEPROMに単純で僅かな回路修正を施すだけでよいという利点がある。ランダム化の手法と回路は計算集約的でなく、実装にともなう性能上のペナルティは、たとえあったとしてごく僅かですむため、注目に価する。本発明の解決策は、ランダム化を随時容易く有効または無効にできるという点で柔軟性にも優れている。また、一部の実施形態で使用する擬似ランダム化パターンは変化に富み、随時簡単に変更できる。
【0098】
図21は、ランダム化プロセスに関係するEEPROMまたはメモリチップ600の主要コンポーネントを示す。チップ600は、メモリアレイ602と、周辺回路内のレジスタ610と、マルチプレクサ614とを備える。チップ600の他のコンポーネントについては別の図を参照しながら説明する。レジスタ610は多数のビットを保持でき、多数のレジスタを備えることがある。実施形態によってはこれがシフトレジスタとして機能する。メモリアレイ602は、隠しエリア604と、ユーザデータエリア606とを備える。隠しエリアはファームウェアを蓄積するほか、メモリ動作制御符号等のオーバーヘッドデータを蓄積する。前に述べたように、NANDアーキテクチャではデータがブロックに整理され、それぞれのブロックは多数のデータページを備え得る。実施形態によってはレジスタ610もマルチプレクサ614も存在しない。
【0099】
本発明の各種の実施形態は、プログラムディスターブやユーザリードディスターブの原因となる特定データパターンの長期・反復蓄積を軽減もしくは解消する。それには、擬似ランダム機構かユーザトリガ形ランダム化によってデータの符号化を変更する。ユーザ活動のタイミングは完全に予測不能だから、この活動をトリガとして利用すれば真にランダムな符号化方式のシーケンスになる。これらの実施形態はまた、NANDストリング抵抗効果を軽減し、メモリの耐久性と信頼性を向上させ、フローティングゲート間結合の問題を緩和する。
【0100】
これらの実施形態はフラッシュEEPROM回路に対するごく僅かな修正でデータ蓄積のランダム性を大幅に向上させ、EEPROMの性能を高める。データのランダム化はアレイの中で容易く有効または無効にできる。しかも、絶えず変化する擬似ランダム化を担うシーケンスがシステムに柔軟性を与える。
【0101】
一実施形態において、0または1の符号または一連のビットを、アレイ602の隠しエリア604に蓄積する。隠しエリア604で符号を蓄積する部分は「ROMブロック」と呼ぶこともある。符号は2ビット以上を含んでよく、望ましくは17ビット以上を含む。ビットが多いほどランダム化は向上する。チップ600に電源が入るとレジスタ610に値が読み込まれる。レジスタでは、それぞれのビットが特定のページアドレスに割り当てられる。各ビットはページのページアドレスと比較され、その比較に基づきページデータの符号化は反転され、さもなくば同じページ状態を保つ(パスする)。例えば、ビット値0はデータの符号化方式が同じ状態に保つことを意味し、レジスタの値1はページ内のデータの符号化が反転することを意味する。符号のビット数がブロック内のページ数に満たない場合は、1つ以上のページからなる複数のグループに符号を適用できる。換言すると、全てのページを比較するまでは符号を順次繰り返し使用できる。サイクルごとに符号を変更することもできる。あるいはマルチプレクサ614により符号を多重化することもでき、この場合は、ユーザデータエリア606に蓄積された複数のデータページの符号化が1符号の1ビットによって決まる。符号の各ビットは、ユーザデータの一部に用いる符号化の極性を変更することから、極性ビットと呼ぶことができる。これは図22Aに描かれている。この場合の符号化はページアドレスに基づき、ページ0,Nの極性は1であり、ページ1、n+1の極性は0であり、ページ2、n+2の極性は1であることが分かる。したがって、符号化がページアドレスに基づく実施形態では極性ビットをページとともに蓄積する必要はないが、冗長性の目的で蓄積してもよい。
【0102】
図22Bの複製にあたる下の表1は、ユーザデータ部分に適用されるレジスタ610の符号極性ビットを示す。どのユーザデータ部分でも特定の極性ビットに比較し、対応付けることができるが、説明する好適な実施形態ではページを基本単位とする。
【表1】
【0103】
この表に見られるように、ビットの当初符号化(データ)が同じ状態を保つか変化するかは符号の各(極性)ビットによって決まる。例えば、レジスタ位置1を見ると、極性符号の値が1になっている。したがって、1がデータの反転を意味する実施形態の場合には、0として蓄積されたユーザデータの当初ビットが値1に反転されることになる。この表は、2ビットを使って状態を指定する多状態セルを例示するものである。状態を示す図20から分かるように、状態は上位ビットと下位ビットによって指定される。図20に見られるタイプの2ビットまたは4状態メモリセルで、(1:1)は消去(「ER」)または未プログラム(「U」)状態を指定し、(0:1)は状態Aを指定し、(0:0)は状態Bを指定し、(1:0)は状態Cを指定する。上位ビットと下位ビットは単一のメモリセルに物理的に位置することがある。別のデータグループには同じ符号か異なる符号を適用できる。この場合はビット17に対応するデータグループと、次の符号のビット1に対応するデータによって状態が決まる。それぞれの極性レジスタによって該当するページ上の全データの極性が制御される。下位ビットと上位ビットは、好ましくは同じ物理ワード線上に位置する。表1の例は、多数のワード線にわたってシンプルなパターンをランダムパターンに変換する極性ビットの働きを例示するものである。ランダム化は同じNANDチェーン構造に位置するデータで行われる。図22Cの例はこのコンセプトを例示するものである。
【0104】
図22Cには、NANDストリングまたはチェーンの各セルに下位ビットと上位ビットが描かれている。図に示されたNANDストリングは単なる例であって、当然ながらストリングのセルはこれよりも多いこともあれば少ないこともあり、図に示されたものとは異なる構造でも本発明に使用できる。例えば、3ビット、4ビット、4ビット以上を蓄積するセルを使うこともできる。また、ビット反転のコンセプトを例示するためにビットレベルの適用が図に示されているが、特に多状態メモリの場合には、1ページ以上のデータに極性ビットを適用するのが好ましいことを考慮するべきである。図22Cではユーザデータの各ビットに極性ビットが適用される。極性ビットによって反転またはパスするユーザデータは保存データと標示されている。保存データとは、ランダム化操作の結果としてメモリアレイに書き込まれ、蓄積されるデータである。見て分かるように、図の右側に表示された状態はセルの上位ビットと下位ビットによって決まる。図22Cで使われている用語「保存データ」は、表1と図22Bで「適用後ユーザデータ(UD)符号化」と呼ばれているものに相当する。
【0105】
図23Aに示す別の実施形態では、図21に見られるレジスタがフィードバック機能を備えるシフトレジスタとなる。かかる実施形態において、レジスタ610が擬似ランダムジェネレータとして構成される。一連の擬似乱数を生成するため、その内容は周期的にフィードバックされる。符号の全ビットを一度に使用する実施形態とは対照的に、この場合は一度に1ビットを使用する。ユーザによってコマンドが発行されると、シフトレジスタは次のビットへシフトする。着信ユーザページで使用される極性ビットは最後のレジスタ出力からのものである。これは好ましくはコマンドの立ち上がりで行われる。トリガコマンドは、プログラムコマンド、キャッシュプログラムコマンド、読み出しコマンド、消去コマンド、その他のユーザ発行コマンドであってよい。図23Bにはプログラムコマンド信号の例が見られる。コマンドに対応するクロック信号が図に示され、コマンドのインスタンス化はユーザリクエストによってトリガされ、そのタイミングとタイプは予測不能であって、基本的にランダムである。図23Aには、ユーザコマンドに対応するクロック信号が極性ビットを決定する入力として図に示されている。図に示されたその他の入力はユーザデータである。既に述べたように、データの符号化は極性ビットの適用によって反転するか現状をとどめる。
【0106】
図23Cは、データ反転用制御回路の一例を示す。インバータが1つのデータ経路では符号化は反転し、2つのインバータが直列する経路ではデータ符号化方式は変わらない。この場合、データグループに対応する極性ビットはそのデータグループとともに蓄積される。例えば、図23Dに見られるデータページ630では、ユーザエリア636にあるデータの極性ビット632がページ630の隠しエリア634にプログラムされる。ページ630を読み出す場合には極性ビット632が取り出され、出力データを制御するためにラッチされ、符号化方式が反転されている場合には図23Eに見られる例示的な回路により元に戻される。こうしてページの極性は当初の符号化に戻される。
【0107】
シフトレジスタで使用する符号のパターンは変えることができ、種々の用途に応じて修正できる。全てのビットが0に設定されるとランダム化は無効になる(0が無変更を意味する場合)。レジスタにおけるビットのパターンは擬似ランダムだが、ユーザの挙動は予測不能であるため、極性も予測不能でランダムである。例えば、ユーザ挙動には次の2つがある。(1)ユーザはいくつかのページをプログラムし、さらにいくつかのページを読み出すかまたはプログラムするため、あるいはいくつかのブロックを消去するため、別のアドレスへジャンプし、次に最後のプログラムが行われたブロックまで戻り、ページのプログラミングを継続する。(2)ユーザは全てのページを順次プログラムし、別のアドレスにジャンプしない。(1)の場合では各ユーザコマンドにつき新たな極性ビットをトリガでき、2のケースの順次プログラミングでは1つの極性ビットを使用しこれに依拠する。ユーザが蓄積を望む当初のデータが両方の場合で同じであっても、メモリに最終的にプログラムされるデータは、2つの場合において個々のページや複数のページで少なくとも部分的には異なる可能性がある。EEPROMは、通常ならばコントローラチップによって制御され、「ユーザ」による行為の一部はコントローラチップの行為であることに留意するべきである。
【0108】
別の実施形態において、極性ビットもまた、既に述べたキャッシュプログラム操作等のユーザコマンドの結果としてランダムに生成される。この実施形態では同期しない2つの入力を使用する。最初のものはユーザコマンドのタイミングであって、これは前述したように予測不能である。2番目のものは有限状態マシンクロックである。メモリシステムによっては特定の時間(例えば、キャッシュ操作中等)に限り有限状態マシンクロックがアクティブになることもあれば、他のシステムでは常にアクティブになることもある。この実施形態のこの手法は、メモリシステムの有限状態マシンクロックがアクティブになっているときに使える。
【0109】
有限状態マシン(「FSM」)クロックのレベルまたは状態は、ユーザコマンドクロック信号の立ち上がりで参照する。図24Aに見られるように、状態はハイまたはローであり得る。ロー状態は0の極性ビットに対応し得る(しかし、反対の対応も可能)。時間t=0においてFSMはローであるために極性ビットは0になり、前述したようにデータ符号化は変化しない。時間t=1においてFSMはハイになり、極性ビットは1になり、時間t=3にはFSMが再びロー状態になる。実施形態によっては、実行コマンドが発行され検知されると直ちに極性ビット632が隠しエリア634に読み込まれる。実施形態によっては、システムの別のメモリに極性ビットを一時的に格納する。図24Bは、前述したように、極性ビットを決定する例示的な回路を示すものである。ここでもインバータは、好ましくは立ち上がりでトリガされる。
【0110】
図25は、図7Aおよび図9のオンチップ制御回路をより詳細に示すものである。これは、状態マシン312とアドレスデコーダまたはジェネレータ314のほかにデータスクランブラ318を含む。好適な実施形態では、図21および図23Aのレジスタ610とマルチプレクサ614を含む。別の好適な実施形態では、図23Cのデータ反転回路と図23Eのデータ復帰回路も含む。
図21〜図25とこれらの図に対応する本願明細書での説明のように、共通のワード線によってアクセスされる各データページのプログラミングまたは読み出しは並行して行われる。ページ単位のランダム化にあたっては、ビットの極性を反転させるページを擬似ランダム的に選択する。
その全体が本願明細書において参照により援用されている2006年9月8日に出願されたYan Liらによる「Methods in a Pseudo Random and Command Driven Bit Compensation for the Cycling Effects in Flash Memory」という米国特許出願第11/530,392号(特許文献36)には、ページ単位のオンチップデータランダム化が開示されている。
【0111】
ページ内データオンチップ擬似ランダム化
ページ内データスクランブリングも望ましい。これは、プログラミング中に問題となる規則性の高いデータパターンを回避したり、ページデータを並行して検知する際のソース負荷誤差を制御したりするうえで有利である。
ユーザかコントローラによって反復するデータパターンが特定のページに蓄積されると、データが一定のパターンに並ぶことがあり、一部のNANDチェーンのプログラミングでブーストモードに悪影響がおよぶ。プログラミングのときに複数のNANDチェーン(図1Dおよび図3参照)に共通のワード線が選択される場合、プログラミングの対象とはならないチェーンはプログラム禁止にする。プログラム禁止にするにはチャネル領域をブーストし、選択されたワード線に印加される有効プログラミング電圧を減らす。例えば、NANDタイプのメモリでは通常、ソース側からドレイン側にかけてNANDチェーンがプログラムされる。消去済み状態の多数のメモリセルがソース側にあると、プログラム禁止のときにブーストされるドレイン側のチャネルから消去済みセルによって形成される高伝導性チャネルを通じてソースへ電荷が漏れ、効率が悪くなる。効果的でないチャネルブーストとプログラム禁止によってプログラムディスターブが起こり、結果に誤りが生じるおそれがある。その全体が本願明細書において参照により援用されている米国公開特許出願第2006−0198195号(特許文献37)および2006年12月29日に出願されたFarookh Moogatらによる「Method of NAND Flash Memory Cell Array with Adaptive Memory State Partitioning」というおよび米国特許出願第11/618,482号(特許文献38)には、ブースト効率の問題が記載されている。
本発明の一態様によると、ページ内データのランダム化により、複数のページでデータが並ぶ場合でも、プログラミング中に問題となるデータパターンは回避される。
【0112】
ページ開始位置シフトによるスクランブリング
好適な実施形態において、ページ上でデータをスクランブルするシンプルな方法により、データはページごとに独立しているかまたは異なる開始アドレスに書き込まれる。メモリセルの各ページには、ページごとに異なる開始位置に対応するデータページが書き込まれる。ページの終わりまでデータで埋め尽くされると、ページの最初のアドレスからラップアラウンドし、開始位置の手前まで書き込みを継続する。
【0113】
ページごとに異なる開始位置から書き込む好適な実施形態に従い、メモリページ上でデータをスクランブリングする方法を図26に示す。
ステップ700:集積回路メモリチップを提供する。このメモリチップは、ページ単位でアクセス可能な不揮発性メモリセルアレイを有し、各ページは1グループのメモリセルからなり、1グループの各メモリセルはアレイの列内にあり、かつ共通ワード線によりアクセス可能な行沿いに並ぶ。
ステップ710:プログラムされる各ページに対応する開始列位置からなる一連の開始列位置をオンチップで生成する。
ステップ720:各ページにプログラムされるデータを、対応する開始列位置から始めてページが埋め尽くされるまでラップアラウンドする。
ステップ730:配列されたデータを各ページに並行してプログラムする。
【0114】
データの書き込みにあたってそれぞれ異なる開始位置を持つページの一例を、図27の表に示す。例えば、ページ0には列0から始まってバイト0が読み込まれる。ページ1には列1から始まってバイト0が読み込まれる。データの読み込みは列n−1まで続き、ラップアラウンドして列0に戻る。この例では、ページからページにかけてデータの反復パターンをずらすためのシフトがページごとに指定されている。通常、開始列アドレスはページ番号の関数として与えられる。物理列の終わりに達すると、データは物理列の先頭までラップアラウンドする。例えば、Starting_Column_Address(Page_Number)=Page_Number(MOD(n−1))+kで、kは所定数、(n−1)は並行してプログラムされる合計メモリセル数である。例えば、k=0ならば、各ページは前のページから1列ずつシフトされる。
【0115】
好適な実施形態では、図9のI/O回路440を制御することによって所与のページに対する開始列位置シフトを実施する。データ読み込み操作では通常、アドレスデコーダ314がI/O回路へ物理ページの開始アドレスを発行する。開始アドレスに従いデータはクロック制御により列ごとにI/O回路に入力される。ラップアラウンドする場合は、物理列の最後に達した時点で第2の開始アドレスが発行される。
【0116】
図23Dでは、システム専用のページ部分に各ページの開始列アドレスを蓄積できる。例えば、ページ630の開始列アドレスはメモリアレイの一部634に蓄積される。
別の好適な実施形態において、図23Aに見られる擬似ランダムジェネレータ等によって、一連の開始物理列アドレスが、各ページにつき1つずつ、提供される。
各ページの開始位置シフトにより、NANDチェーンの中で望ましくないデータパターンの並びを回避できるほか、プログラミング中のブースト問題の緩和に役立つ。
プログラミング中のチャネルブースト問題の緩和に加え、ページの中でデータをスクランブリングすれば、検知中のソース負荷誤差制御に役立つ。
ソース負荷誤差は、ソース線とチップの接地パッドとの間の有限抵抗によって生じる。メモリセルの検知にあたっては、有限抵抗にまたがるソース負荷によってソース線バイアスが生じることがある。多数のメモリセルを並行して検知すると、メモリセルの総電流のため、有限抵抗により接地ループで著しい電圧降下が生じることがある。その結果、ソース線バイアスが生じ、しきい値電圧検知による読み出し操作に誤りが生じる。
【0117】
図28Aは、接地にかけて有限抵抗を有するソース線の電流に起因するソース電圧誤差問題を示す。読み出し/書き込み回路370Aおよび370Bは、1ページのメモリセルに同時に働きかける。読み出し/書き込み回路の中の各センスモジュール480は、ビット線36を通じて対応するセルへ結合される。図8の読み出し/書き込みスタック400によると、それぞれのセンスモジュール480は、ビット線のいずれか1本に接続されるセンスアンプ212と、1セットのデータラッチ430と、共通プロセッサ500とI/O回路440の共有とを含む。並列操作のため、ページ内の各メモリセルにつき1個のセンスモジュールがある。
【0118】
例えば、センスモジュール480はメモリセル10の伝導電流i1 (ソース−ドレイン電流)を検知する。伝導電流はセンスモジュールからビット線36を通じてメモリセル10のドレインに流れ込み、さらにソース14からソース線34を通じて接地に至る。集積回路チップのメモリアレイでは、メモリチップの一部の外部接地パッド(例えば、Vssパッド等)へ接続するソース線34の複数分岐としてセルのソースがともに結ばれる。ソース線の抵抗を減らすためにメタルストラッピングを使用する場合でも、メモリセルのソース電極と接地パッドとの間には有限抵抗Rが残る。通常、接地ループ抵抗Rは約10オームである。
【0119】
並行して検知するメモリページ全体で、ソース線34を流れる合計電流は全伝導電流の和、すなわちiTOT =i1 +i2 +・・・+ip になる。通常、各メモリセルの伝導電流はその電荷蓄積素子にプログラムされる電荷の量に左右される。メモリセルのある一定のコントロールゲート電圧で、電荷が少量ならば、伝導電流は比較的高くなる(図4参照)。メモリセルのソース電極と接地パッドとの間に有限抵抗が存在する場合、その抵抗にまたがる電圧降下はVdrop=iTOT Rになる。
【0120】
例えば、各ビット線につき1μAで64,000本のビット線が同時に放電するならば、ソース線電圧降下は64,000線x1μA/線x10オーム〜0.64ボルトに等しくなる。0.64Vのソース電圧上昇によってしきい値電圧が0.96V上昇すると仮定すると、メモリセルのしきい値電圧を検知するときには、このソース線バイアスから0.96ボルトの検知誤差が生じる。
【0121】
図28Bは、ソース線電圧降下によって生じるメモリセルのしきい値電圧レベル誤差を示す。メモリセル10のコントロールゲート30に供給されるしきい値電圧VT はGNDを基準とする。しかし、メモリセルから見た実効VT は、そのコントロールゲート30とソース14との電圧差である。供給VT と実効VT には約1.5xVdropの差がある(ソース14からソース線までの細かな電圧降下は無視する)。メモリセルのしきい値電圧を検知するときには、このVdropまたはソース線バイアスが、例えば0.96ボルトの検知誤差に寄与する。
【0122】
このバイアスはデータに左右されるため、すなわちページのメモリセルの記憶状態に左右されるため、容易く解消できない。極端な場合、ページの全メモリセルが消去済み状態になっているときにはバイアスが最も高くなる。この場合の各セルは導電性が高く、大きなVdropと高いソース線バイアスに寄与する。もうひとつの極端な場合として、ページの全メモリセルが完全にプログラム済み状態になっているときの各セルは非導電性であり、ソース線バイアスは皆無かごく僅かになる。
【0123】
本発明の別の態様によると、ページに含まれる消去済み状態とプログラム済み状態のセルの割合が平均して等しくなるようにページ内のデータビットがランダム化される。これによりソース線バイアスまたは負荷の大きなばらつきを抑え、検知操作中のしかるべき調整により許容できるようにする。
それには、ページ内の個々のビットをランダム化する。好ましくは、ある極性を指定する一連の擬似ランダムビットを使ってページ内のビットを符号化する。一実施形態において、ページ内の各データビットにつき極性ビットがある。別の実施形態では、ページ内の各データバイトにつき極性ビットがある。この実施形態で、極性ビットによってビットの反転が指定される場合は、データバイト内の全ビットが反転される。
【0124】
図29は、ページの中でビットをランダム化する方法を示す。
ステップ750:集積回路メモリチップを提供する。このメモリチップは、ページ単位でアクセス可能な不揮発性メモリセルアレイを有し、各ページは1グループのメモリセルからなり、1グループの各メモリセルはアレイの列内にあり、かつ共通ワード線によりアクセス可能な行沿いに並ぶ。
ステップ760:プログラムされるページの各データビットセットにつき第1および第2の符号化法を提供する。
ステップ762:一連の極性ビットを、各データビットセットにつき1つずつ、オンチップで生成する。
ステップ764:各データビットセットの極性ビットが第1の状態にあるか、それとも第2の状態にあるかに応じて、第1または第2の符号化法により各データビットセットを符号化する。
ステップ770:符号化された全データビットセットをページに並行してプログラムする。
【0125】
一連の極性ビットは、図23Aに見られる擬似ランダムジェネレータ等により、各データビットセットにつき1つずつ、提供される。それぞれのデータビットセットは一定数のビットを含む。例えば、この一定数のビットは、一実施形態において、1である。一定数のビットは、別の実施形態において、8ビットである。
【0126】
ページ内・ページ間オンチップデータ擬似ランダム化
全面的に消去済み状態になっているページ等、極端に規則性のあるデータパターンの場合は、ページ内スクランブリング方式では不十分である。
本発明のもうひとつの態様によると、ページ内ランダム化にページ単位のランダム化を組み合わせる。具体的にはオンチップ回路の限りあるリソースを踏まえ、ページ内ランダム化にあたっては各ページに個別の開始位置を用意するのが望ましく、ページ単位ランダム化にあたっては各ページに個別の符号化極性を用意するのが望ましい。
【0127】
本発明の別の態様に従い、ページ単位とページ内でデータをランダム化する方法を図30に示す。
ステップ750:集積回路メモリチップを提供する。このメモリチップは、ページ単位でアクセス可能な不揮発性メモリセルアレイを有し、各ページは1グループのメモリセルからなり、1グループの各メモリセルはアレイの列内にあり、かつ共通ワード線によりアクセス可能な行沿いに並ぶ。
ステップ760:プログラムされる各データページにつき第1および第2の符号化法を提供する。
ステップ762:一連の極性ビットを、各ページにつき1つずつ、オンチップで生成する。
ステップ764:ページの極性ビットが第1の状態にあるか、それとも第2の状態にあるかに応じて、第1または第2の符号化法によりデータページを符号化する。
ステップ770:プログラムされる各ページに対応する開始列位置からなる一連の開始列位置をオンチップで生成する。
ステップ772:各ページにプログラムされるデータを、対応する開始列位置から始めてページが埋め尽くされるまでラップアラウンドする。
ステップ780:配列されたデータを各ページに並行してプログラムする。
【0128】
さらに別の実施形態ではステップ760からステップ772の間に図29のステップ760、ステップ762、およびステップ764を挿入してデータビットのランダム化も実施する。この実施形態ではワード線方向と列方向でビットがランダム化される。
【0129】
ここで参照する特許、特許出願、記事、書籍、仕様書、その他の出版物、文書、事物はどれも、その全体があらゆる目的のために本願明細書において参照により援用されている。援用する出版物、文書、または事物のいずれかと本願明細書の文面との間で用語の定義または使用に矛盾や食い違いがある場合は、本願明細書における用語の定義または使用が優先するものとする。
これまで本発明の実施形態を説明してきたが、本発明はこれらの例示的な実施形態に限定されず、添付の特許請求の範囲によって規定されることを理解すべきである。
【特許請求の範囲】
【請求項1】
集積回路メモリチップであって、
ページ単位でアクセス可能な不揮発性メモリセルアレイであって、各ページが1グループのメモリセルからなり、前記1グループの各メモリセルが前記アレイの列内にあり、かつ共通ワード線によりアクセス可能な行沿いに並ぶ不揮発性メモリセルアレイと、
データがプログラムされる各列セットにつき第1および第2の符号化法と、
ページの各列セットにつき1つの一連の同一ではない極性ビットと、
各列セットに対応するデータビットを、前記列セットの前記極性ビットが第1の状態にあるか、それとも第2の状態にあるかに応じて、第1または第2の符号化法により、符号化するエンコーダと、
前記符号化されたデータを各ページに並行してプログラムするプログラミング回路と、
を備えるメモリチップ。
【請求項2】
請求項1記載のメモリチップにおいて、
前記第1の符号化法は、各列に対応する前記データビットを変えずに残し、前記第2の符号化法は、前記データビットを反転させるメモリチップ。
【請求項3】
請求項1記載のメモリチップにおいて、
擬似ランダムジェネレータをさらに備え、
前記一連の同一ではない極性ビットは、前記擬似ランダムジェネレータによって生成されるメモリチップ。
【請求項4】
ページ単位でアクセス可能な不揮発性メモリセルアレイを有し、各ページが1グループのメモリセルからなり、前記1グループの各メモリセルが前記アレイの列内にあり、かつ共通ワード線によりアクセス可能な行沿いに並ぶ集積回路メモリチップで、前記アレイにデータをプログラムする方法であって、
データがプログラムされる各列セットにつき第1および第2の符号化法を提供するステップと、
一連の同一ではない極性ビットを、ページの各列セットにつき1つずつ、オンチップで生成するステップと、
各列セットに対応するデータビットを、各列セットの前記極性ビットが第1の状態にあるか、それとも第2の状態にあるかに応じて、第1または第2の符号化法により、符号化するステップと、
前記符号化されたデータを各ページに並行してプログラムするステップと、
を含む方法。
【請求項5】
請求項4記載の方法において、
前記第1の符号化法は各列セットに対応する前記データビットを変えずに残し、前記第2の符号化法は前記データビットを反転させる方法。
【請求項6】
請求項4記載の方法において、
前記一連の同一ではない極性ビットは、擬似ランダムジェネレータによりオンチップで生成される方法。
【請求項1】
集積回路メモリチップであって、
ページ単位でアクセス可能な不揮発性メモリセルアレイであって、各ページが1グループのメモリセルからなり、前記1グループの各メモリセルが前記アレイの列内にあり、かつ共通ワード線によりアクセス可能な行沿いに並ぶ不揮発性メモリセルアレイと、
データがプログラムされる各列セットにつき第1および第2の符号化法と、
ページの各列セットにつき1つの一連の同一ではない極性ビットと、
各列セットに対応するデータビットを、前記列セットの前記極性ビットが第1の状態にあるか、それとも第2の状態にあるかに応じて、第1または第2の符号化法により、符号化するエンコーダと、
前記符号化されたデータを各ページに並行してプログラムするプログラミング回路と、
を備えるメモリチップ。
【請求項2】
請求項1記載のメモリチップにおいて、
前記第1の符号化法は、各列に対応する前記データビットを変えずに残し、前記第2の符号化法は、前記データビットを反転させるメモリチップ。
【請求項3】
請求項1記載のメモリチップにおいて、
擬似ランダムジェネレータをさらに備え、
前記一連の同一ではない極性ビットは、前記擬似ランダムジェネレータによって生成されるメモリチップ。
【請求項4】
ページ単位でアクセス可能な不揮発性メモリセルアレイを有し、各ページが1グループのメモリセルからなり、前記1グループの各メモリセルが前記アレイの列内にあり、かつ共通ワード線によりアクセス可能な行沿いに並ぶ集積回路メモリチップで、前記アレイにデータをプログラムする方法であって、
データがプログラムされる各列セットにつき第1および第2の符号化法を提供するステップと、
一連の同一ではない極性ビットを、ページの各列セットにつき1つずつ、オンチップで生成するステップと、
各列セットに対応するデータビットを、各列セットの前記極性ビットが第1の状態にあるか、それとも第2の状態にあるかに応じて、第1または第2の符号化法により、符号化するステップと、
前記符号化されたデータを各ページに並行してプログラムするステップと、
を含む方法。
【請求項5】
請求項4記載の方法において、
前記第1の符号化法は各列セットに対応する前記データビットを変えずに残し、前記第2の符号化法は前記データビットを反転させる方法。
【請求項6】
請求項4記載の方法において、
前記一連の同一ではない極性ビットは、擬似ランダムジェネレータによりオンチップで生成される方法。
【図1A】
【図1B】
【図1C】
【図1D】
【図1E】
【図2】
【図3】
【図4】
【図5】
【図6A】
【図6B】
【図7A】
【図7B】
【図8】
【図9】
【図10】
【図11A】
【図11B】
【図12A】
【図12B】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19A】
【図19B】
【図20】
【図21】
【図22A】
【図22B】
【図22C】
【図23A】
【図23B】
【図23C】
【図23D】
【図23E】
【図24A】
【図24B】
【図25】
【図26】
【図27】
【図28A】
【図28B】
【図29】
【図30】
【図1B】
【図1C】
【図1D】
【図1E】
【図2】
【図3】
【図4】
【図5】
【図6A】
【図6B】
【図7A】
【図7B】
【図8】
【図9】
【図10】
【図11A】
【図11B】
【図12A】
【図12B】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19A】
【図19B】
【図20】
【図21】
【図22A】
【図22B】
【図22C】
【図23A】
【図23B】
【図23C】
【図23D】
【図23E】
【図24A】
【図24B】
【図25】
【図26】
【図27】
【図28A】
【図28B】
【図29】
【図30】
【公開番号】特開2012−169034(P2012−169034A)
【公開日】平成24年9月6日(2012.9.6)
【国際特許分類】
【出願番号】特願2012−87398(P2012−87398)
【出願日】平成24年4月6日(2012.4.6)
【分割の表示】特願2010−524087(P2010−524087)の分割
【原出願日】平成20年8月20日(2008.8.20)
【出願人】(506197901)サンディスク コーポレイション (175)
【Fターム(参考)】
【公開日】平成24年9月6日(2012.9.6)
【国際特許分類】
【出願日】平成24年4月6日(2012.4.6)
【分割の表示】特願2010−524087(P2010−524087)の分割
【原出願日】平成20年8月20日(2008.8.20)
【出願人】(506197901)サンディスク コーポレイション (175)
【Fターム(参考)】
[ Back to top ]