メモリアレイの下方に配置されたセンスアンプ回路とセンス・アンプ・インターフェイス等ではないページレジスタとを有する3Dメモリ装置
不揮発性記憶デバイスは、基板と、その基板の一部分の上方に配置された不揮発性記憶素子のモノリシック3次元メモリアレイと、その不揮発性記憶素子と通信する複数のセンスアンプと、そのセンスアンプと通信する複数の一時記憶デバイスと、その一時記憶デバイスと通信するページレジスタと、1つまたは複数の制御回路と、を含む。この1つまたは複数の制御回路は、ページレジスタ、一時記憶デバイスおよびセンスアンプと通信する。センスアンプは、モノリシック3次元メモリアレイの下方にある基板上に配置される。一時記憶デバイスは、モノリシック3次元メモリアレイの下方にある基板上に配置される。ページレジスタは、モノリシック3次元メモリアレイの下方ではない領域にある基板上に配置される。センスアンプによって不揮発性記憶素子から読み出されたデータは、一時記憶デバイスに転送され、その後1つまたは複数の制御回路に応答してページレジスタに転送される。不揮発性記憶素子にプログラムされるデータは、その1つまたは複数の制御回路に応答してページレジスタから一時記憶デバイスへと転送される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、不揮発性記憶装置の技術に関する。
【背景技術】
【0002】
半導体メモリは、様々な電子装置で広く使用されるようになってきている。たとえば、不揮発性半導体メモリは、携帯電話、デジタルカメラ、携帯情報端末、モバイル・コンピューティング・デバイス、非モバイル・コンピューティング・デバイスなどのデバイスで使用される。ユーザーが記憶したいデータの量が増えているため、高密度記憶装置に対する需要がある。3次元メモリは、高密度記憶装置の一例である。しかし、密度が向上することで、性能が低下すべきでない。
【図面の簡単な説明】
【0003】
【図1】メモリシステムの一実施形態のブロック図である。
【0004】
【図2】メモリセルの一実施形態の概略斜視図である。
【0005】
【図3】メモリセルの一例で使用され可逆的抵抗スイッチング素子のI−V特性を表すグラフである。
【0006】
【図4A】3次元メモリアレイの一実施形態の一部分の概略斜視図である。
【0007】
【図4B】3次元メモリアレイの一実施形態の一部分の概略斜視図である。
【0008】
【図5】3次元メモリアレイの様々な層を表しているブロック図である。
【0009】
【図6】メモリシステムを実装した基板の上面図である。
【0010】
【図7】メモリアレイの構成の一例を表すブロック図である。
【0011】
【図8】メモリストライプの構成の一例を表すブロック図である。
【0012】
【図9】メモリアレイのサポート回路の一実施形態のブロック図である。
【0013】
【図10】ページレジスタの一実施形態のブロック図である。
【0014】
【図11】メモリストライプのサポート回路の一実施形態のブロック図である。
【0015】
【図12】データをプログラムする処理の一実施形態を示すフローチャートである。
【0016】
【図13】データをプログラムする処理の一実施形態を示すタイミング図である。
【0017】
【図14】サイクルをスキップすることを含むデータをプログラムする処理の一実施形態を示すフローチャートである。
【0018】
【図15】サイクルをスキップすることを含む、データをプログラムする処理の一実施形態を示すタイミング図である。
【0019】
【図16】サイクルをスキップすることを含む、データをプログラムする処理の一実施形態を示すフローチャートである。
【0020】
【図17】サイクルをスキップすることを含む、データをプログラムする処理の一実施形態を示すタイミング図である。
【発明を実施するための形態】
【0021】
記憶密度を高めるための3次元メモリ構造を含む不揮発性記憶デバイスが提案される。複数の不揮発性記憶素子を含む3次元メモリ構造が、基板(または他の材料)の上方に配置される。長い信号長による遅延を最小限に抑えるために、制御回路の大半が3次元メモリ構造の下方に位置付けられる。ただし、制御回路のすべてが3次元メモリ構造の該当部分の下に装着できるわけではなく、長い信号線を有することによってRC遅延が生じうる。そのため、3次元メモリ構造の外側にページレジスタ(または他の類似中間記憶デバイス)を配置し、3次元メモリ構造の下方に1組の一時記憶デバイス(ラッチまたはレジスタなど)とセンスアンプとを備えることが提案される。センスアンプによって不揮発性記憶素子から読み出されたデータは、一時記憶デバイスに転送され、その後ページレジスタに転送される。不揮発性記憶素子にプログラムされるデータは、ページレジスタから一時記憶デバイスに転送される。なお、ページレジスタは論理ページ分のデータを格納する。論理ページとは、プログラミングの1単位のことである。他の態様のページレジスタまたは異なる記憶デバイスを使用することもできる。
【0022】
図1は、本明細書で開示される技術を実行可能なメモリシステム100の一例を示すブロック図である。メモリシステム100は、メモリセルが2次元又は3次元のアレイとなったメモリアレイ102を含む。1つの実施形態では、メモリアレイ102は、モノシリックの3次元メモリアレイである。メモリアレイ102のアレイ端子線は行として整理されたワード線の様々な層と、列として整理されたビット線の様々な層とを有する。しかしながら、他の配向も可能である。
【0023】
メモリシステム100は、出力108がメモリアレイ102の各々のワード線に接続される行制御回路120を含む。本明細書において、接続は、直接的な接続、または(例えば1つまたは複数の他の部品を介した)間接的な接続であってもよい。行制御回路120は、M個の行アドレス信号の集合と1つ以上の様々な制御信号をシステム制御ロジック130から受信している。行制御回路120は、典型的には、読取り及びプログラミング動作の双方のために、行デコーダ122、アレイドライバ124及びブロック選択回路126などの回路を含んでもよい。
【0024】
メモリシステム100はまた、入力/出力106がメモリアレイ102の各々のビット線に接続される列制御回路110を含む。列制御回路110は、N個の列アドレス信号の集合と1つ以上の様々な制御信号をシステム制御ロジック130から受信している。列制御回路110は、列デコーダ112、ドライバ回路114、ブロック選択回路116、及びセンスアンプ118およびページレジスタ120を含む。一実施形態では、センスアンプ118は、信号をビット線に供給するとともに、ビット線上の信号を検出する。ここでは、当該技術分野で周知の、様々なセンスアンプを用いることができる。
【0025】
システム制御ロジック130は、データ及び命令をコントローラ134から受信し、アウトプットデータとステータスをコントローラ134に供給する。コントローラ134はホスト(例えばカメラ、コンピュータ、携帯電話等)と通信する。システム制御ロジック130は、ステートマシン、レジスタ、および、メモリシステム100の操作を制御する他の制御論理回路を、1つまたは複数備えていてもよい。他の実施形態では、システム制御ロジック130がコントローラの機能を備えるため、システム制御ロジック130がデータおよびコマンドをホストから直接に受信するとともに、ホストに出力データを供給する。
【0026】
1つの実施形態では、システム制御ロジック130、列制御回路110、行制御回路120およびメモリアレイ102は、同一の集積回路に形成される。例えば、システム制御ロジック130、列制御回路110及び行制御回路120は基板の表面に形成され、メモリアレイ102はその基板の上方(即ち、システム制御ロジック130、列制御回路110及び行制御回路120の少なくとも一部の上方)に形成されるモノシリックの3次元メモリアレイである。ある例では、制御回路の一部を、あるメモリアレイと同じ層に形成することができる。図1のような好適な実施形態についての更なる情報は、その全体を参照することにより本明細書に組み込まれる、下記の米国特許に見出すことができる。米国特許第6,879,505号、米国特許第7,286,439号、米国特許第6,856,572号、および米国特許第7,359,279号。コントローラ134は、図1に記載された他の構成要素と同一基板上または異なる基板上に存在することができる。コントローラ134、システム制御ロジック130、列制御回路110、および行制御回路120、これら単独または任意の組合せは、1つまたは複数の制御回路とみなすことができる。
【0027】
メモリアレイ102は複数のメモリセルを備える。一実施形態では、各メモリセルは、ステアリング素子(例えばダイオード)および抵抗素子を備える。一実地態様例では、メモリセルは、1回書き込みおよび複数回読み出しが可能な態様とすることができる。メモリセルの一例は、上部および下部導体の交差点に形成された層状の支柱を備える。一実施形態では、支柱は、アンチヒューズ層のような状態変化素子と直列に接続された、ダイオードのようなステアリング素子を備える。アンチヒューズ層が損傷していない場合には、セルは電気的に開回路である。アンチヒューズ層が破壊されている場合には、セルは、破壊されたアンチヒューズ層の抵抗と直列に接続された電気的なダイオードである。メモリセルの例は、米国特許6,034,882号、米国特許6,525,953号、米国特許6,952,043号、米国特許6,420,215号、米国特許6,951,780号、および米国特許7,081,377号、に見出すことができる。
【0028】
他の実施形態では、メモリセルは書換可能である。例えば、その全体を参照することにより本明細書に組み込まれる、米国特許出願公開第2006/0250836号は、可逆的抵抗スイッチング素子と直列に接続されるダイオードを備える、書換可能な不揮発性記憶素子について記述する。可逆的抵抗スイッチング素子は、2つまたはそれ以上の状態の間で可逆的に切り替わる抵抗率を有する、可逆的抵抗スイッチング材料を含む。例えば、可逆的抵抗性スイッチング材料は、製造時には初期高抵抗率状態であってもよく、この状態は、第1の電圧および/または電流を印加すると低抵抗率状態にスイッチング可能である。第2の電圧および/または電流を印加すると、可逆的抵抗率スイッチング材料は高抵抗率状態に戻ってもよい。あるいは、可逆的抵抗スイッチング素子は、製造時には初期低抵抗率状態であってもよく、この状態は、(単数または複数の)適切な電圧および/または(単数または複数の)電流を印加すると高抵抗率状態に可逆的にスイッチング可能である。1つの抵抗状態は、2進の「0」を表し、別の抵抗状態は2進の「1」を表してもよい。メモリセルが2ビット以上のデータを記憶するために、2以上のデータ/抵抗状態が使用されても良い。一実施形態では、高抵抗状態から低抵抗状態へ抵抗を切り替える処理を、セット処理と呼ぶ。低抵抗状態から高抵抗状態へ抵抗を切り替える処理を、リセット処理と呼ぶ。高抵抗状態は2進データの「0」に関連し、低抵抗状態は2進データの「1」に関連する。他の実施形態では、セットおよびリセット、および/またはデータ符号化は、逆にすることができる。一部の実施形態では、抵抗性スイッチング素子がセットされる最初の1回は、通常の電圧よりも高い電圧を必要とし、フォーミング処理と呼ばれる。
【0029】
図2に、メモリセル150に関する1つの実施形態の概略斜視図を示す。メモリセル150は、第1導電体166と第2導電体168の間に位置して、直列に接続された、可逆的抵抗スイッチング素子162、ステアリング素子164およびバリア165を備える。
【0030】
可逆的抵抗スイッチング素子162は、2以上の状態を可逆的にスイッチングすることが可能な抵抗率を有する可逆的抵抗性スイッチング材料170を備える。一部の実施形態では、可逆的抵抗スイッチング材料170は、金属酸化物から形成されてもよい。様々な異なる金属酸化物を用いることができる。一例では、酸化ニッケルが用いられる。
【0031】
少なくとも1つの実施形態では、選択的蒸着方法の利用において、酸化ニッケル層がエッチングされることなく、酸化ニッケル層が可逆的抵抗スイッチング材料に用いられる。例えば、可逆的抵抗スイッチング素子は、電気めっき、無電解析出等の蒸着プロセスを採用して形成されてもよい。これにより、基板上に形成される導電体表面に対して選択的にニッケル含有層を蒸着させる。この方法により、(ニッケル含有層の蒸着に先立って)基板上の導電体表面のみがパターニング及び/又はエッチングされればよく、ニッケル含有層はパターニング及び/又はエッチングされる必要がない。
【0032】
少なくとも1つの実施形態では、可逆的抵抗スイッチング材料170は、ニッケルを選択的に付着させ、次いでニッケル層を酸化することによって形成される酸化ニッケル層の少なくとも一部を含む。例えば、Ni、NiXPY又はニッケルの別の類似の形態が、無電解析出、電気メッキまたは類似の選択プロセスを使用して選択的に蒸着され、次いで(例えば、急速熱酸化または他の酸化プロセスを使用して)酸化されて酸化ニッケルを形成してもよい。他の実施形態では、酸化ニッケル自体が選択的に蒸着されてもよい。例えば、NiO、NiOX又はNiXPY含有層が、選択付着プロセスを使用してステアリング素子の上に選択的に蒸着され、次いで(必要に応じて)アニールおよび/または酸化されてもよい。
【0033】
メモリセルに使用するための可逆的抵抗性スイッチング材料を形成するために、必要に応じて、他の材料が選択的に蒸着され、次いでアニールおよび/または酸化されてもよい。例えば、Nb、Ta、V、Al、Ti、Co、コバルト−ニッケル合金などの材料が電気メッキ等によって選択的に蒸着され、次に酸化されて、可逆的抵抗スイッチング材料が形成されてもよい。
【0034】
他の可変抵抗材料は、V、Co、Ni、Pd、FeまたはMnがドープされたアモルファスシリコンであり、例としてRoseらによる米国特許第5,541,869号にさらに十分に説明されている。他の類の材料が、Ignatievらによって米国特許第6,473,332号で示唆されている。これらは、Pr1-XCaXMnO3(PCMO)、La1-XCaXMnO3(LCMO)、LaSrMnO3(LSMO)、またはGdBaCoXOY(GBCO)などの、ペロブスカイト(perovskite)材料である。この可変抵抗材料に対する他の選択肢は、例えばJacobsonらによって米国特許第6,072,716号に示唆されているように、プラスチックポリマーに混入されるカーボンブラック粒子またはグラファイトを備えるカーボンポリマーフィルムである。他の例は、カーボンナノチューブを可逆的抵抗スイッチング材料として用いることである。
【0035】
他の材料が、Campbellらによる米国特許出願第2003/0045054号、およびCampbellによる米国特許出願第2003/0047765号に示唆されている。この材料は、化学式AXBYのカルコゲナイドガラス(chalcogenide glass)にドープされる。ここでAは、周期表のIIIA族(B、Al、Ga、In、Ti)、IVA族(C、Si、Ge、Sn、Pb)、VA族(N、P、As、Sb、Bi)またはVIIA族(F、Cl、Br、I、At)の少なくとも1つの元素を含む。またBは、S、Se、Teおよびこれらの混合物の中から選択される。ドーパントは、Ag、Au、Pt、Cu、Cd、Ir、Ru、Co、Cr、MnまたはNiを含む、貴金属および遷移金属の中から選択される。このカルコゲナイドガラス(非晶質カルコゲナイド、結晶状態ではない)は、可動金属イオンの貯蔵部に隣接するメモリセル内に形成される。他の固体電解質材料を、カルコゲナイドガラスに代えて用いることができる。
【0036】
他の可変抵抗材料は、アモルファスカーボン、グラファイトおよびカーボンナノチューブを含む。他の材料も、本明細書で述べる技術に用いることができる。
【0037】
可逆的抵抗スイッチング材料を用いたメモリセルの形成についての更なる情報は、その全体を参照することにより本明細書に組み込まれる、「Memory Cell That Employs A Selectively Deposited Reversible Resistance Switching Element and Methods of Forming The Same,」と題した、米国特許出願公開第2009/0001343号に見出すことができる。更なる情報は、その全体を参照することにより本明細書に組み込まれる、2008年12月19日出願の、「Reverse Set With Current Limit for Non-Volatile Storage,」と題した、米国特許出願第12/339,313号に見出すことができる。
【0038】
可逆的抵抗スイッチング素子162は、電極172、174を有する。電極172は、可逆的抵抗性スイッチング材料170と導体168の間に位置している。1つの実施形態では、電極172はプラチナを用いて形成されている。電極174は、可逆的抵抗性スイッチング材料170とステアリング素子164の間に位置している。1つの実施形態では、電極174は窒化チタンを用いて形成されており、バリア層として機能する。
【0039】
ステアリング素子164は、ダイオードであってもよく、あるいは、可逆的抵抗スイッチング素子162に印加される電圧及び/又は電流を選択的に制限することによって非オーミック接触を示す適切な他のステアリング素子であってもよい。このような態様において、メモリセル150は、2次元又は3次元のメモリアレイの一部として利用してもよい。さらに、データは、アレイ内の他のメモリセルの状態に影響を及ぼすことなくメモリセル150に書き込んだりメモリセル150から読み出されたりしてもよい。ステアリング素子164は、ダイオードのp領域の上にn領域を有して上を向くか、ダイオードのn領域の上にp領域を有して下を向くかによらず、縦型の多結晶p−nまたはp−i−nダイオードなどの何らかの適切なダイオードを含んでもよい。
【0040】
ある実施形態では、ステアリング素子164は、ポリシリコン、多結晶シリコン−ゲルマニウム合金、ポリゲルマニウム、又は他の何らかの適切な材料などの多結晶半導体材料から形成されたダイオードであってもよい。例えば、ステアリング素子164は、高濃度にドープされたn+ポリシリコン領域182と、n+ポリシリコン領域182の上の低濃度にドープされた又は真性(自然にドープされた)ポリシリコン領域180と、真性領域180の上の高濃度にドープされたp+ポリシリコン領域186とを含んだダイオードであってもよい。ある実施形態では、例えば、あらゆる点でその全体が本願明細書において参照により援用されている、2005年12月9日に出願された「DEPOSITED SEMICONDUCTOR STRUCTURE TO MINIMIZE N-TYPE DOPANT DIFFUSION AND METHOD OF MAKING」と題する米国特許公開第2006/0087005号で説明されるように、シリコン−ゲルマニウム合金層を使用する場合、約10%以上のゲルマニウムを有する薄い(例えば、数百オングストローム以下の)ゲルマニウムおよび/またはシリコン−ゲルマニウム合金層(図示せず)をn+ポリシリコン領域182上に形成し、n+ポリシリコン領域182から真性領域180内へのドーパントの移動を防止および/または低減することもできる。当然ながら、n+およびp+領域の位置は逆であってもよい。ステアリング素子164が、(例えば、非晶質または多結晶の)堆積シリコンから形成される場合、一実施形態では、ダイオード上にシリサイド層を形成して、堆積シリコンを製造時の低抵抗率状態に置いてもよい。
【0041】
その全体が本願明細書において参照により援用されている「Memory Cell Comprising a Semiconductor Junction Diode Crystallized Adjacent to a Silicide 」と題する米国特許第7,176,064号に記載されるように、チタン及び/又はコバルトなどのシリサイド形成材料は、アニール中に付着シリコンと反応してシリサイド層を形成する。チタンシリサイド及びコバルトシリサイドの格子間隔は、シリコンの格子間隔に近く、このようなシリサイド層は、付着シリコンが結晶化する場合、隣接する付着シリコンの「結晶化テンプレート」または「シード」として働くこともできる(例えば、シリサイド層は、アニール中にシリコンダイオードの結晶構造を強化する)。これによって、低抵抗率シリコンが提供される。シリコン−ゲルマニウム合金及び/又はゲルマニウムダイオードについても、同様な結果を得ることもできる。
【0042】
導体166、168は、タングステン、何らかの適切な金属、高濃度にドープされた半導体材料、導電性シリサイド、導電性シリサイド−ゲルマニド、導電性ゲルマニドなどの何らかの適切な導電性材料を含んでもよい。図2の実施形態では、導体166、168はレール状であり、(例えば、実質的に互いに直交する等の)異なる方向に伸びる。他の導体形状及び/又は構造が使用されてもよい。ある実施形態では、導体166、168とともに、バリア層、接着層、反射防止コーティングおよび/またはその類似物(図示せず)が使用され、デバイス性能を改善し、及び/又はデバイスの製造に役立てることもできる。
【0043】
図2では可逆的抵抗スイッチング素子162がステアリング素子164上に配置されているが、当然ながら、他の実施形態では可逆的抵抗スイッチング素子162がステアリング素子164の下に位置してもよい。
【0044】
図2はメモリセルの一例を示しているが、ここで開示された技術に対して、メモリセルの1の特定の型または構造は要求されない。多くの異なるタイプのメモリセルを用いることができる。
【0045】
図3は、酸化金属可逆的抵抗スイッチング素子の1つの実施形態における電圧・電流を示す図である。ライン250は、可逆的抵抗スイッチング素子が高抵抗率のときのI−V特性を示す。ライン252は、可逆的抵抗スイッチング素子が低抵抗率のときのI−V特性を示す。可逆的抵抗スイッチング素子がどちらの状態にあるかを決定するために、電圧が印加され、その結果の電流が測定される。高い測定電流(ライン252参照)は、可逆的抵抗スイッチング素子が低抵抗率状態であることを示す。低い測定電流(ライン250)は、可逆的抵抗スイッチング素子が高抵抗率状態であることを示す。なお、異なるI−V特性を有する可逆的抵抗スイッチング素子の他の態様も、本明細書で開示される技術に適用可能であることに留意されたい。
【0046】
高抵抗状態(ライン250参照)の間は、電圧Vsetおよび十分な電流がメモリセルに印加されている場合には、可逆的抵抗スイッチング素子は低抵抗状態にセットされる。ライン254はVSETが印加されたときの挙動を示している。電圧はある程度一定に維持され、電流はIset_limitの方へ増加する。ある時点で、可逆的抵抗スイッチング素子がセットされ、素子の挙動がライン252に基づくようになる。可逆的抵抗スイッチング素子がセットされた初回は、デバイスをセットするためにVf(形成電圧)が必要とされることに留意されたい。その後、VSETが使用可能とされる。形成電圧Vfは、VSETより大きくてもよい。
【0047】
低抵抗状態(ライン252参照)の間は、電圧VRESETおよび十分な電流(Ireset)がメモリセルに印加される場合には、可逆的抵抗スイッチング素子は高抵抗状態へリセットされる。ライン256は、VRESETが印加された場合の挙動を示している。ある時点で、可逆的抵抗スイッチング素子はリセットされ、装置の挙動はライン250に基づくようになる。
【0048】
一実施形態では、Vsetは約5ボルトであり、Vresetは約3ボルトであり、Iset#limitは約5マイクロアンペアであり、Iresetの電流は30マイクロアンペアまで上昇しうる。一実施形態では、VsetはVresetよりも低くすることができる。また、形成処理が必要とされず、および/または、セットまたはリセットに必要な時間を異ならせることができる。
【0049】
可逆的抵抗スイッチング材料の抵抗をセットおよびリセットするためのプログラミング処理は、当技術分野で知られている。可逆的抵抗スイッチング材料の抵抗をセットおよびリセットするための回路の多様な実装形態が知られており、本明細書で述べられている技術に使用することが可能である。セットおよびリセットの例は、その全体を参照することにより本明細書に組み込まれる、2008年12月19日出願の「Reverse Set With Current Limit for Non-Volatile Storage,」と題した米国特許出願第12/339,313号、その全体を参照することにより本明細書に組み込まれる米国特許出願第2007/0072360号、および、その全体を参照することにより本明細書に組み込まれる米国特許出願第2007/0008785号、に見出すことができる。
【0050】
幾つかの実施形態では、セットおよびリセット処理に、セット処理が成功したか否かを確認するための検証処理が続くとすることができる。セット処理が成功していない場合には、プログラミング処理を再試行することができる。一実施態様例では、検証処理は読取り処理である。従って、システム制御ロジック130は、最初に1つまたは複数のメモリセルにプログラム(セットまたはリセット)させ、その後、プログラムされた全てのメモリセルを読み取る。読み取られたデータがプログラムされたデータと一致する場合には、処理が完了する。(多くの場合、プログラミングが成功しないことにより、)読み取られたデータのいくつかがプログラムされたデータと一致しない場合には、プログラミングが繰り返される。いくつかのケースでは、データは、一度に論理ページにプログラムされ、検証処理がプログラム処理が成功してない場合に、ページ全体が、再プログラムされる。
【0051】
メモリアレイ102は、多くのメモリセルを備えている。図4Aは、第2のメモリレベル220の下に配置される第1のメモリレベル218を含むモノリシックな3次元アレイ102の一部の略斜視図である。図4Aの実施形態では、各メモリレベル218、220は、クロスポイントアレイ内に複数のメモリセル200を含む。当然ながら、第1のメモリレベル218と第2のメモリレベル220との間、上方または下方に、追加の層(例えば、中間誘電体)が存在してもよいが、簡単にするために図4Aでは示されない。他のメモリアレイ構造が、メモリの追加レベルとして使用されてもよい。図4Aの実施形態では、すべてのダイオードは、p型領域をダイオードの上部または下部のどちらに有するp−i−nダイオードが使用されるかによって、上向きまたは下向きなどの同じ方向に「向く」ことで、ダイオードの製造を簡略化することもできる。メモリセル200は、メモリセル150と同じであってもよいし、異なっていてもよい。
【0052】
図4Bは、第2のメモリレベル221の下に配置される第1のメモリレベル219を含む、第2の実施形態のモノリシックな3次元アレイ102の一部の略斜視図である。図4Bのメモリアレイは、複数のメモリセル200を備えている。第1のメモリレベル219に関して、メモリセル200は、ビット線207の集合とワード線209の集合の間に存在し、ビット線207の集合およびワード線209の集合に接続される。第2のメモリレベル221に関して、メモリセル200は、ビット線210の集合とワード線209の集合の間に存在し、ビット線210の集合およびワード線209の集合に接続される。図4Bに示すように、第1のメモリレベルの上部導体は、第1のメモリレベルの上方に位置する第2のメモリレベルの下部導体として、用いることができる。さらなる情報は、その全体が本願明細書において参照により援用されている、「High-Density Three-Dimensional Memory Cell,」と題する米国特許第6,952,030号に記載されている。
【0053】
図4Bの実施形態では、あらゆる点でその全体が本願明細書において参照により援用されている、2007年3月27日に出願された「Method to Form Upward Pointing P-I-N Diodes Having Large And Uniform Current」と題する米国特許出願公開公報20070190722号で説明されるように、隣接するメモリレベル上のダイオード(または他のステアリング装置)は、反対方向に向くのが好ましい。例えば、第1のメモリレベル219のダイオードは、(例えば、ダイオードの下部にp領域を有して)矢印A1で示されるように上向きダイオードであってもよく、第2のメモリレベル221のダイオードは、(例えば、ダイオードの下部にn領域を有して)矢印A2で示されるように下向きダイオードであってもよく、あるいはその逆であってもよい。
【0054】
モノリシックな3次元メモリアレイは、複数のメモリレベルが、中間基板を用いないでウェハなどの単一の基板上に形成されるアレイである。1つのメモリレベルを形成する層は、既存のレベル(単数または複数)の層の上に直接付着または成長される。これに対して、積層メモリは、Leedyによる「Three dimensional structure memory」と題する米国特許第5,915,167号の場合のように、別々の基板上にメモリレベルを形成し、そのメモリレベルを互いに重ねて接着することによって構築されている。基板は、ボンディングの前に薄くされても、あるいはメモリレベルから取り除かれてもよいが、メモリレベルが個別の基板上に最初に形成されるので、このようなメモリは、本当のモノリシックな3次元メモリアレイではない。
【0055】
上記のとおり、図4Aおよび4Bは、モノリシック3次元メモリアレイの一部分を示す。確認できるとおり、ビット線は第1の方向に配置され、ワード線はビット線に対して垂直な第2の方向に配置されている。メモリセルの追加層を有するメモリアレイには、ビット線およびワード線の追加層がある。サポート回路(列制御回路110、行制御回路120およびシステム制御ロジック130など)が基板の表面上に配置されており、サポート回路の少なくとも一部分の上方にメモリアレイが製造されている。集積回路の様々な層を表す図5は、基板の上方に位置付けられたメモリアレイ102を示す。メモリアレイは、ビット線層BLとワード線層WLとを含む。図5は、3つのビット線層BLと2つのワード線層WLを示しているだけだが、他の実施形態では、さらなるビット線層およびワード線層が実装されうる。また、半導体メモリシステムを実装している集積回路も、サポート回路の各種構成要素どうしの間、サポート回路とビット線およびワード線との間で信号を回送する目的で使用される複数の金属層を含む。これらの金属層は、基板の表面上で実装されるサポート回路の上方とメモリアレイの下とに配置される。図5は、回送目的で使用される2つの金属層R1およびR2を示すが、他の実施形態では、金属層は、2つよりも多くても少なくてもよい。一実施例では、これらの金属層R1およびR2がタングステン(約1.5平方オーム)で形成され、比較的高い抵抗と高い静電容量との両方を有する。
【0056】
メモリシステムの各種構成要素間で信号を回送する目的で使用される1つまたは複数の金属層をメモリアレイの上方に位置付けてもよい。図5はメモリアレイの上方に位置付けられたこのような金属層を示し、最上位金属層と称される。一実施例では、最上位金属層がアルミニウムまたは銅(約0.05平方オーム)で形成され、この層は、層R1およびR2よりも小さい抵抗および静電容量を有する。金属層R1およびR2は、R1およびR2で使用する金属がR1およびR2の上にあるメモリアレイを製造するための加工ステップに耐える必要があることから、最上位金属に使用されるものと同じ材料を使用して実装されない。
【0057】
隣接する金属層間を結合するためにビアを加えてもよい。隣接しない層間を結合するためにジアを加えてもよい。ジアとは、複数層のビアのことであり、2つ以上の層を結合することができる(この場合、ジアは階段のように見える)。
【0058】
図6は、メモリシステム100を実装する目的で使用される基板300の上面図である。図6は、基板300を見下ろす上面図を示す。一実施形態では、メモリ102のサポート回路が、基板300の最上面に製造される。モノリシック3次元メモリアレイ102は、基板300の表面の上方およびサポート回路の一部分の上方に配置される。そのため、サポート回路の一部はメモリアレイ102の下に配置され、サポート回路302の一部は、モノリシック3次元メモリアレイ102の下方ではない領域にある基板300に配置される。メモリアレイ102の下にあるサポート回路は、メモリアレイ102によって塞がれるため、図6では見えない。なお、「上方」および「下方」という用語の使用は、基板に対して使用される相対的な用語である。したがって、「上方」という用語は、基板の表面に対して上方という意味で使用しており、基板の向きに対して上方ということではないので、基板を横に回転させても、メモリアレイ102が依然として基板の上方にあるという事実は変わらない。サポート回路は、列制御回路110と、行制御回路120と、システム制御ロジック130とを含む。なお、図5は、金属層R1およびR2が、メモリアレイ102より広く、基板の表面上にあり、メモリアレイ102の下方にないサポート回路を収容することを示している。
【0059】
メモリアレイ102は複数のベイに下位分割されており、各ベイは(任意で)いくつかのブロックに分割することができる。ベイの数は、多様な実装形態で異なりうる。一実施形態では、1つのベイに16個のブロックがある。ただし、他の実施形態では、異なる数のブロックを使用してもよい。
【0060】
ブロックとは、一般にデコーダ、ドライバ、センスアンプ、および入力/出力用回路によって遮断されない連続的なワード線およびビット線を有するメモリセルの連続的な群のことである。このようになっている理由は様々である。たとえば、抵抗とワード線およびビット線の静電容量とによって生じる、これらの線を流れる信号の遅延(すなわち、RC遅延)が、大型アレイでは非常に大きくなりうる。このRC遅延は、大型アレイを小型サブアレイの群に下位分割して各ワード線および/または各ビット線を短くすることによって減じうる。別の実施例として、一群のメモリセルへのアクセスに関わる電力により、所与のメモリサイクル実行中に同時にアクセスされうるメモリセルの数に上限を定めてもよい。その結果、大型メモリアレイは、同時にアクセスされるメモリセルの数を減らすために、小さなサブアレイに頻繁に下位分割される。集積回路は、1つまたはそれ以上のメモリアレイを含んでもよい。
【0061】
一実施形態では、メモリアレイ102が複数のストライプ(たとえば16本のストライプ)状に配置される。ストライプとは、アレイの一端から他端に至るメモリ素子のブロックの線形群のことである。1本のストライプは、1つのベイ、1つより多くのベイまたは1つ未満のベイを有しうる。一実施形態では、1つのベイが2本のストライプを含み、各ストライプが32個のブロックを含む。したがって、1つのベイが64個のブロックを含む。図7は、基板300の上方に配置されており、M本のストライプを含むメモリアレイ102の構成の一例を表すブロック図である。
【0062】
図8は、ストライプの一例を示す。確認できるとおり、ブロックは一端から他端まで配置されているだけである。図8は、N個のブロックを有するストライプを示す。1本のストライプにおける正確なブロック数は、特定の実装態様に依存しており、本明細書に記載されている技術で必須とされるストライプ内の特定のブロック数はない。
【0063】
図6に戻ると、メモリアレイ102のサポート回路は、列制御回路110と、行制御回路120と、システム制御ロジック130とを含みうる。一実施形態では、コントローラ134が分離基板に実装されている。ただし、他の実施形態では、コントローラ134をメモリアレイと同じ基板に実装することができる。図6に関して上記のとおり、サポート回路の一部は、メモリアレイ102下の基板300の表面に製造され、サポート回路の他の部分は、メモリアレイ102の外側にある基板300の表面に実装される。図9は、メモリアレイ102の下方および外側に実装されるサポート回路の一例を示すブロック図である。たとえば、図9は、モノリシック3次元メモリアレイ102の下方でない領域にある基板300の表面に配置されているサポート回路302を示す。図9は、メモリアレイ102の下方にある基板300の表面に配置されているサポート回路304を示す。いくつかの実施形態では、サポート回路のいくつかの部分を、3次元メモリアレイ102の様々なレベルで実装することもできる。
【0064】
図9のサポート回路302は、(少なくとも、)ページレジスタ120およびステートマシン306(システム制御ロジック130の一部)を含む。サポート回路の他の部分がサポート回路302に含まれていてもよい。一実施形態では、1論理ページ分のデータが、プログラミングで使用されるデータの最小単位である。このように、メモリは複数組のページ単位でプログラムされ、読み出される。ページレジスタ102は、読み書き用の論理ページ分のデータを格納できるレジスタを含む。ページは、複数のブロックにまたがって実装されるのが典型的である。一実施形態では、ページが、2048バイトのデータと128バイトのヘッダ情報(たとえばECCを含む)との計2176バイトを含む。ページレジスタ120は、書込み前にデータを操作(データ符号化など)するため、および書込み処理後に読み出されたデータがこれから書き込まれるデータに一致するかどうかを検証する(検証動作など)ための論理回路も備える。ページレジスタは、ホストおよびメモリアレイに対する中間記憶デバイスとして機能する。
【0065】
ステートシステム制御ロジック130(図1を参照)は、ステートマシン306と、各種電圧を提供するための回路と、他の制御回路とを含む。ステートマシン306は、データの読み書きを制御する目的で使用される。図9は、ページレジスタ120と通信するステートマシン306を示す。
【0066】
メモリアレイ102の下方にある基板300の表面に実装された制御回路304は、各種メモリストライプに対応する複数組の回路に分割される。そのため、各メモリストライプは、自らの下に、そのメモリストライプに対するサポートを提供する1組の回路を有する。たとえば、メモリストライプ0に対するサポートは、メモリストライプ0用のサポート回路を含む。なお、メモリストライプは、モノリシック3次元メモリアレイ内に複数のレベルを有する。メモリアレイ102のメモリストライプ0の下にはメモリストライプ0に対するサポートがあり、メモリストライプ1の下にはメモリストライプ1に対するサポートがあり、メモリストライプ2の下にはメモリストライプ2に対するサポートがあり、・・・メモリストライプM−1の下にはメモリストライプM−1に対するサポートがある。ステートマシン306は、メモリストライプ0に対するサポート、メモリストライプ1に対するサポート、メモリストライプ2に対するサポート、およびメモリストライプM−1に対するサポートと通信する。ページレジスタ102も、メモリストライプ0に対するサポート、メモリストライプ1に対するサポート、メモリストライプ2に対するサポート、・・・メモリストライプM−1に対するサポートのために通信する。
【0067】
図10は、ページレジスタ120のブロック図である。一実施形態において、ページレジスタ120は制御ロジック340を備えており、制御ロジック340は、ページレジスタ120を制御する目的で使用される回路(デジタルおよび/またはアナログ回路)を備えうる。制御ロジック340は、シャドウレジスタ(SR)342、データレジスタ(DR)344、およびエラーレジスタ(ER)346と通信する。制御ロジック340は、システム制御ロジック130(ステートマシン306を含む)に加え、各種サポート回路304とも通信する。シャドウレジスタ342は、データを受け取り、データをシステム制御ロジック130に提供する。他の実施形態では、シャドウレジスタ342との間で受け渡しされるデータを、コントローラ134との間で受け渡したり、ホストに直接提供したりすることができる。データレジスタ344は、サポート回路304からデータを受け取り、サポート回路304にデータを提供する。一実施形態では、シャドウレジスタ342、データレジスタ344およびエラーレジスタ346が、1ページ分のデータと同じサイズである。したがって、その1ページ分のデータが2048バイトのデータと128バイトのヘッダとを含む場合、シャドウレジスタ342、データレジスタ344およびエラーレジスタ346は、2176バイトを格納することができる。
【0068】
ページレジスタ120によって受け取られたデータは、シャドウレジスタ342に入力される。制御ロジック340は、そのデータを処理して、各種データ符号化の実行、ECC(誤り訂正コード)の追加、あるいは他の機能を実行しうる。その後このデータは、シャドウレジスタ342からデータレジスタ344へと転送される。なお、本明細書において、「転送」という用語は、転送元から転送先にコピーを提供することを含み、転送元にコピーを残すこと、あるいは転送元からコピーを削除することを含みうる。このデータは、メモリアレイ102へのプログラミングのために、データレジスタ344から、該当するメモリストライプのサポート回路304へと転送することができる。メモリアレイ102から読み出されたデータは、該当するメモリストライプの該当するサポート回路304からデータレジスタ344へと提供される。その後データレジスタ344内のデータは、様々な復号、ECCおよび検証処理を実行できるシャドウレジスタ342へと転送することができる。最終データは、シャドウレジスタ342からシステム制御ロジック130、コントローラ134、および/またはホストへと転送される。制御ロジック340は、ECCエラーの判断(いくつかの実施形態において)、書き込み検証エラーの判断、および/または他の機能を含む各種機能のうちのいずれか1つを実行するためにエラーレジスタ346を使用する。ECCは、コントローラで判断することもできる。
【0069】
図11は、1本のメモリストライプのページレジスタ120およびサポート回路420を示すブロック図である。サポート回路420は、回路304のサブセットである。たとえば、サポート回路は、図9に示すメモリストライプ0に対するサポート、メモリストライプ1に対するサポート、メモリストライプ2に対するサポート、・・・メモリストライプM−1に対するサポートのうちのいずれか1つを表しうる。一実施形態では、メモリストライプのサポート回路がサポート回路の群に分割され、各ブロックが自らの群を含む。たとえば、図11は、32個の回路群を示しており、各群がそれらのブロック(ブロック0、・・・ブロック31)のうちの1つと関連付けられている。たとえば、サポート回路群400は、ブロック0と関連付けられており、ブロック0の下で基板300の表面に実装される。サポート回路群402は、ブロック15と関連付けられており、ブロック15の下で基板300の表面に実装される。サポート回路群410は、ブロック16と関連付けられており、ブロック16の下で基板300の表面に実装される。サポート回路群412は、ブロック31と関連付けられており、ブロック31の下で基板300の表面に実装される。図11の構造は32個のブロックを含んでおり、したがって32個のサポート回路群を含むが、ページ上のスペースの制約から、図11には4個のサポート回路群だけが示されている。ただし、示されていない14個のサポート回路群を示すために、「・・・」が使用される。
【0070】
図11は、各サポート回路群(400・・・402、410・・・412)が16ビットバスPR_OUT[15:0]のうちの1ビットに接続されるように、ページレジスタ120に接続し、ストライプ全体を通過する双方向データバスPR_OUT[15:0]を示す。他の実施形態では、このバスが、16ビットより広い場合も、16ビットより狭い場合もある。各サポート回路群(400・・・402、410・・・412)は、バスPR_OUT[15:0]の1ビットに接続された1組のバッファおよびデコーダを含む。たとえば、ブロック0と関連付けられたサポート回路群400はPR_OUT[0]に接続され、ブロック1と関連付けられたサポート回路群はPR_OUT[1]に接続され、ブロック2と関連付けられたサポート回路群はPR_OUT[2]に接続され、・・・ブロック15と関連付けられたサポート回路群402はPR_OUT[15]に接続される。加えて、ブロック16と関連付けられたサポート回路群410はPR_OUT[0]に接続され、ブロック17と関連付けられたサポート回路群はPR_OUT[1]に接続され、ブロック18と関連付けられたサポート回路群はPR_OUT[2]に接続され、・・・ブロック31と関連付けられたサポート回路群412はPR_OUT[15]に接続される。
【0071】
各サポート回路群(たとえば群400)も、5個のラッチ1組を含む。ラッチの代わりに、他の記憶デバイス(たとえばフリップフロップ)を使用することもできる。これら5個のラッチは、読出しラッチRLと、書込みデータ・シャドウ・ラッチWSLと、書込みデータ・データ・ラッチと、センスアンプ有効化シャドウラッチSSLと、センスアンプ有効化データラッチSDLとを含む。読出しラッチRLは、メモリアレイから読み出された読出しデータを格納する目的で使用される。メモリアレイに格納される書込みデータはまず、書込みデータ・シャドウ・ラッチWSLに格納され、次に書込みデータ・データ・ラッチWDLに格納され、その後メモリアレイ102に書き込まれる。ページレジスタは、sセンスアンプ有効化情報をセンスアンプに送る(後述)。センスアンプ有効化情報はまず、センスアンプ有効化シャドウラッチSSLに格納され、次にシャドウ・データ・ラッチSDLに格納され、その後プログラミング処理の一部としてセンスアンプによって使用される。
【0072】
上記の機能を達成するために、バッファおよびデコーダは、読出しラッチRLからデータを受け取るための読出しラッチRLに接続される。バッファおよびデコーダは、書込みデータ・シャドウ・ラッチWSLに書込みデータを提供するために書込みデータ・シャドウ・ラッチWSLに接続され、センスアンプ有効化情報をセンスアンプ有効化シャドウラッチSSLに送るためにセンスアンプ有効化シャドウラッチSSLに接続される。書込みデータ・シャドウ・ラッチWSLは、書込みデータ・データ・ラッチに接続される。センスアンプ有効化シャドウラッチは、センスアンプ有効化データラッチに接続される。書込みデータ・データ・ラッチWDLおよびシャドウ・データ・ラッチSDLが共に接続され、該当するセンスアンプに情報を送る。
【0073】
センスアンプは、自らの読出し出力を読出しラッチRLに送る。サポート回路群400の一部であり、ブロック0の下に位置するセンスアンプは、ブロック0と関連付けられていることからセンスアンプ0と呼ばれ、サポート回路群402の一部であるセンスアンプは、ブロック15の下にあり、ブロック15のサポート回路と関連付けられているという理由で、センスアンプ15などと呼ばれる。サポート回路群(400・・・401、410・・・412)の各々は、関連付けられたセンスアンプを備える。センスアンプは、ビット線をプログラムするために適切な信号をビット線に印加する目的、およびビット線に接続された関連メモリセルによって格納された読出しデータを判断するために読出し処理中にビット線の状況を検知する目的で使用される。各センスアンプは、メモリ動作が正常に実行されたこと(MEM_OK)を示す出力によって表される。これらの信号は、1組のANDゲートによってデイジーチェーンされており、メモリ動作が正常であることをすべてのセンスアンプが出力すれば信号PR_WRT_OKがロジック1になるようになっている。この信号はページレジスタ120に送られ、正常なメモリ動作を示す。
【0074】
上記のとおり、データバスPR_OUT[15:0]は16ビットのデータバスだが、32個のサポート回路群および32個のセンスアンプがある。そのため、複数のセンスアンプ(および関連サポート回路群)がデータバスPR_OUT[15:0]のビットを共有する必要がある。上記のとおり、ブロック0のサポート回路群400およびブロック16のサポート回路群410はビットPR_OUT[0]を共有し、ブロック2のサポート回路群およびブロック17のサポート回路群はビットPR_OUT[0]を共有し、・・・ブロック15のサポート回路群402およびブロック31のサポート回路群412はビットPR_OUT[15]を共有する。メモリシステムは、信号SMI_CNT_ADRを使用して、データバス上でビットを共有している2個のブロックのうちどちらがバス上で通信しているかを示す。SMI_CNT_ADRが0に等しい場合には、ブロック0〜15がバスPR_OUT[15:0]で通信している。信号SMI_CNT_ADR=1である場合には、ブロック16〜31がデータバスPR_OUT[15:0]で通信している。なお、使用されるブロックの数は、各種実施形態の各種実施態様によって変わりうる。したがって、32ブロックより多い場合には、信号SMI_CNT_ADRが1ビットを超える必要がありうる。たとえば、1本のストライプに64個のブロックが存在すれば、信号SMI_CNT_ADRがセンスアンプの4個のサブセットのうちどれがデータバスに接続されるかを示す2ビットを有する。同様に、1本のストライプに256個のブロックがある場合には、信号SMI_CNT_ADRがセンスアンプの16個のサブセットのうちどれがデータバスに接続されるかを示す4ビット幅を有する必要がある。
【0075】
図11は、ステートマシンからストライプのサポート回路420に転送された1組の信号を示す。これらの信号は、SMI_WDXSAE、SMI_TL_WE、SMI_TL_RE、SMI_TL_RXW、SMI_TL_CPY、およびSAEを含む。信号SMI_WDXSAEは、バスPR_OUT[15:0]がデータを転送する目的で使用されているか、あるいはセンスアンプ有効化情報を転送する目的で使用されているかを判断する。バスPR_OUT[15:0]で転送されるプログラムデータは書込みデータ・シャドウ・ラッチWSL向けであり、バスPR_OUT[15:0]で通信されるセンスアンプ有効化情報はセンスアンプ有効化シャドウラッチSSL向けである。書込みデータおよびセンスアンプ有効化情報の両方を転送するのにバス上の同じビットが使用されることから、(ステートマシンからの)信号SMI_WDXSAEは、バスPR_OUT[15:0]が現在どの機能のために使用されているかを示す目的で使用される。
【0076】
信号SMI_TL_RXWは、データバスPR_OUT[15:0]がサポート回路からページレジスタ120に読出しデータを送る目的で使用されているか、あるいはページレジスタ120から該当するサポート回路に書込みデータを送る目的で使用されているかを示す目的で使用される。信号SMI_TL_WEは、書込みデータ・シャドウ・ラッチWSLのためのラッチ有効化信号として、かつ、特定のストライプの群400・・・401および410・・・412のすべてを対象とするセンスアンプ有効化シャドウラッチSSLとして使用される。信号SMI_TL_REは、ストライプ全体を対象とする読出しラッチRLのためのラッチ有効化信号である。信号SMI_TL_CPYは、書込みデータ・シャドウ・ラッチWSLおよびセンスアンプ有効化データラッチSDLから、書込みデータ・データ・ラッチWDLおよびセンスアンプ有効化データラッチSDLへそれぞれデータをコピーするためのコピー信号である。信号SAEは、書込みデータ・データ・ラッチからのデータをモノリシック3次元メモリアレイ102の該当するメモリセルにプログラムすることを、そのストリップの全センスアンプに示すセンスアンプ有効化信号である。
【0077】
図12は、図1〜図11の構成要素を使用してプログラムする処理の一実施形態を示すフローチャートである。プログラミング処理の他の実施形態を用いて、それらの構成要素を使用してデータをプログラムすることもできる。図12のステップ502では、システムが、データと、そのデータをメモリアレイ102にプログラムするためのリクエストとを受け取る。たとえば、ホストがデータをプログラムし、そのデータを提供するためのコマンドをコントローラ134に出す。そのデータはまず、ホストによって受け取られ、次にシステム制御ロジック130へと転送される。別の実施形態では、システム制御ロジック130またはコントローラ134が、そのデータがプログラムされる必要があることを判断し、必要に応じてそのデータを提示することができる。たとえば、コントローラ134が、ガベージコレクション処理、メモリ最適化処理などの一部としてプログラムされるデータをリクエストしてもよい。ステップ504では、プログラムされるデータがページレジスタ120に読み込まれる。たとえば、そのデータは、システム制御ロジック130から、コントローラ134から、あるいはホストから直接、ページレジスタ120のシャドウレジスタ342に読み込まれる。上記のとおり、一実施例では、各ストライプがデータバスPR_OUT[15:0]を含む。16本のストライプがある実施例では、256ビットのデータをサポート回路に同時に送ることができる(各ストライプが自らの専用データバスPR_OUTを有するものと仮定する)。ページレジスタが2176バイトのデータを保持しており、一度に256ビットしか転送できない場合には、ステートマシン306が、どの256ビットを選択して16本のデータバスで出力するかを判断する必要がある。上記実施例では、これら16本のストライプの各々につき1本ずつ、16本のデータバスPR_OUT[15:0]がある。図12のステップ506は、データバスPR_OUT[15:0]の各々で出力するページレジスタ内のデータの組を選択するステートマシンを含む。
【0078】
一実施形態では、メモリアレイ102内の各種メモリセルが列状に配置されており、各ブロックには複数の列がある。たとえば、1ブロックは、64列を含みうる。あるストライプが32個のブロックを含む場合、そのストライプは32x64=2048列を含む。上記のとおり、1本のストライプに対してセンスアンプは32個(各ブロックの下に1個)しかない。したがって、列デコーダ回路112(図1を参照)は、列アドレスを復号し、ステップ506でメモリセルの該当列に各センスアンプを接続する目的で使用される。一実施例では、システムが一度に1ブロックからの読出し、あるいは1ブロックへの書込みしか行わない。
【0079】
ステップ506でページレジスタからデータの組が選択されると、そのデータは各双方向データバスPR_OUT[15:0]で出力される。ステップ508で、書込みデータ・シャドウ・ラッチWSLが、バスからデータをラッチする。ページレジスタは、データバスPR_OUT[15:0]でストライプごとにデータを送った後、ストライプごとにデータバスPR_OUT[15:0]でセンスアンプ有効化情報を送る。センスアンプ有効化情報は、ステップ508の一部としてステータス・シャドウ・ラッチSSLによってラッチされる。
【0080】
ページレジスタ120がストライプの全32個のセンスアンプ向けデータを有しうる場合であっても、そのページレジスタまたはステートマシンは、そのデータの一部がメモリアレイにプログラムされるべきでないと判断した可能性がある。一実施例では、データが既にアドレス・メモリ・セル内のデータに一致していれば、そのデータを上書きしても意味がない。別の実施形態では、システムが、初回で正しくプログラムされなかったデータのサブセットだけを改めて書き込みうる。該当しうるデータを書き込みたくない他の理由は他にもある。ステータス・シャドウ・ラッチSSLに転送されるセンスアンプ有効化情報は、書込みデータ・シャドウ・ラッチWSLと書込みデータ・データ・ラッチWDLとを介して転送された対応データを書き込むかどうかを関連センスアンプに示す。
【0081】
ステップ510で、サポート回路群ごとにシャドウラッチWSLおよびSSLに格納された情報が、シャドウラッチWSLおよびSSLからデータラッチWDLおよびSDLへと転送される。なお、上記ステップは、すべてのストライプで並行して実行される。ステップ512で、ページレジスタに格納された次の組のデータ/情報用のシャドウラッチWSLおよびSSLが読み込まれる。ステップ514で、書込みデータ・データ・ラッチWDL内のデータが、該当するセンスアンプを使用して、適切にアドレス指定されたメモリセルにプログラムされる。センスアンプは、適切なセンスアンプ有効化情報を自らのセンスアンプ有効化データラッチSDLで受け取った場合に、書込みデータ・データ・ラッチWDLからデータをプログラムする。プログラミング処理が終結すると、センスアンプは、ステップ516で、メモリセルに書き込まれたばかりのデータのコピーを読出しラッチRLに提供する。一実施形態では、センスアンプが、新しい読出し処理を実際に実行して、そのデータを読み出す。別の実施形態では、書込み動作が成功すれば(WRITE_OK=1)、センスアンプが、書込みデータ・データ・ラッチから受け取ったデータを取り出してデータラッチRLに返送するだけであり、書込み動作が成功しなければ(WRITE_OK=0)、そのデータを反転させてデータラッチRLに返送する。ステップ518で、読出しデータラッチRL内のデータが、メモリストライプごとに、データバスPR_OUT[15:0]経由でページレジスタ120に返送される。ステップ520で、ページレジスタ120が、センスアンプから読み戻された結果をステートマシン306に送る。プログラムされる必要のあるデータが無くなったら(ステップ522)、図12の処理が終了する。
【0082】
プログラムされるデータ(このデータは、ステップ512の前回の繰り返しでシャドウラッチに既に読み込まれている)が他にもある場合には、図12の処理がステップ510に戻り、シャドウラッチWSLおよびSSLからデータラッチWDLおよびSDLにデータをコピーする。ステップ512に続き、次の組のデータがシャドウラッチに読み込まれ、プログラムされるデータが無くなるまで、ステップ510〜522の処理が繰り返される。なお、図12のフローチャートは、順番に行われるステップを示しているが、これらのステップの多くが、実際には並行して実行される。加えて、これらのステップを別の順序で行うこともできる。たとえば、ステップ512および514は並行して実行することができ、ステップ516および518も並行して実行することができる。
【0083】
図13は、ステップ510〜518を実行する1回の繰り返しを示すタイミング図である。図13は、信号SAE、SMI_TL_CPY、SMI_WDATAXSAE、SMI_CNT_ADR、SMI_TL_RXW、SMI_CAD[4:0]、SMI_TL_WEおよびSMI_TL_REの挙動を示す。なお、信号SMI_CAD[4:0]は、ステートマシン306からページレジスタ120および他の選択回路への信号であり、どの列のメモリセルがプログラミング対象として選択されているかを示している。一実施形態では、各ブロックに32列あり、信号SMI_CAD[4:0]は、それらの32列のうちどれがプログラミング対象として選択されているかを示している。時期T0とT1との間では、信号SMI_TL_CPYが高でパルスされ、時期T8まで低のままである。このパルスは、シャドウラッチからのデータを、ステップ510の一部としてデータラッチWDLおよびSDLにコピーさせる書込みデータ・データ・ラッチWDLおよびセンスアンプ有効化データラッチSDL向けのラッチ有効化信号である。
【0084】
時期T1からT5まで、システムは、次の組のデータ用のシャドウラッチを読み込み(ステップ512)、適切にアドレス指定されたメモリセルを書込みデータ・データ・ラッチWDLから並行してプログラムする(ステップ514)。時期T1で、SAEが高になり、該当する書込みデータ・データ・ラッチWDLからメモリアレイ102内の適切にアドレス指定されたメモリセルにデータをプログラムするためのプログラミング処理を始めることをステートマシンに示す。T1とT2との間で、信号SMI_TL_WEがパルスされる。そのパルス中、SMI_WDXSAEは高であり、書込みデータがページレジスタ120から書込みデータ・シャドウ・ラッチWSLへとデータバスPR_OUT[15:0]で転送されていることを示している。信号SMI_CNT_ADRは低に設定されており、サポート回路群400・・・402の第1のサブセットがPR_OUT[15:0]への接続のために選択されていることを示している。T1からT6までは信号SMI_TL_RXWが低であるため、バスPR_OUT[15:0]が書込みデータおよびセンスアンプ有効化情報をページレジスタ120から該当するサポート回路304へと転送する目的で使用されている。時期T2とT3との間で信号SMI_TL_WEが再びパルスされ、今度はSMI_CNT_ADRがロジック1に設定されているため、第2のサポート回路群410・・・412用の書込みデータ・データ・ラッチWDLがプログラミング用の書込みデータを受け取る。
【0085】
時期T3とT4との間で、SMI_TL_WEは、ページレジスタ120からPR_OUT[15:0]で送信されたセンスアンプ有効化情報をセンスアンプ有効化シャドウラッチにラッチさせる別のパルスを受け取る。時期T3とT4との間で、SMI_CNT_ADRが低に設定されており、第1のサポート回路群400・・・402用のセンスアンプ有効化シャドウラッチがセンスアンプ有効化情報を受け取ることを示し、SMI_WDATAX_SAEが低に設定されており、センスアンプ有効化情報がデータバスPR_OUT[15:0]で送信されていることを示している。時期T4とT5との間で、SMI_TL_WEは、第2のサポート回路群410・・・412用のセンスアンプ有効化シャドウラッチでセンスアンプ有効化情報をラッチするために、ページレジスタ120からデータバスPR_OUT[15:0]経由で別のパルスを受け取る。時期T4とT5との間では、SMI_CNT_ADRが高に設定されており、データが第2のサポート回路群410・・・412用のセンスアンプ有効化シャドウラッチでラッチされることを示している。信号SMI_WDXSAEは低に設定されており、センスアンプ有効化データがPR_OUT[15:0]で送信されていることを示している。
【0086】
T5ではSAEが低になり、書込み処理が該当するメモリセルへのデータの書込みを終了したことを示している。SAEが低に移行したことを受け、該当するセンスアンプが読出しラッチRLにデータを読み戻す。その結果、データをサポート回路304からページレジスタ120に返送するのにデータバスPR_OUTが使用されるようになり、信号SMI_TL_RXWがT6でロジック1に行き、時期T8まで高の状態を保つ。時期T6とT8との間の期間は、図12のステップ516を実行する目的で使用される。システムは、516を実行すると同時に、図のステップ518を実行する。このステップは、読出しデータをページレジスタ120に返送することを含む。ステップ516を実行するために、信号SMI_TL_REが、時期T6とT7との間で1回、そして時期T7とT8との間で2回目と、計2回パルスされる。第1のパルスではSMI_CNT_ADRが低に設定され、第2のパルスではSMI_CNT_ADRが高に設定される。このように、第1のパルスによってデータが第1のサポート回路群400・・・402用の読出しラッチRLに読み込まれ、第2のパルスによってデータが第2のサポート回路群410・・・412用の読出しラッチRLに読み込まれる。SMI_TL_REが高になった直後に、それぞれのデータがラッチRLに読み込まれ、ページレジスタ120への転送のためにPR_OUT[15:0]で利用できるようになる。
【0087】
T8で、ステップ510〜518を実行する処理が完了した。T8からは、ステップ510〜518が再び繰り返される。したがって、時期T8では、SMI_TL_CPYがシャドウラッチからデータラッチにデータを転送するための別のパルスを受け取り、処理が続行する。加えて時期T8では、列アドレスSMI_CAD[4:0]が次の列に変わる。
【0088】
上記のとおり、メモリアレイ102内のメモリセルは、各ブロックが自ら専用の列の組を有するように列状に配置されている。たとえば、各ブロックが32列のメモリセルの有しうる。メモリセルの各列は、16、32、64または他のメモリセル数を有することができる。1ページ分のデータが複数の列にまたがる。メモリシステムがある列のメモリセルをプログラムするのに必要でない特定ページ分のデータをプログラムするに当たっては、数多くの事例がある。たとえば、ページレジスタ内のデータの量が1ページ未満であれば、そのページによってアドレス指定されたメモリセルの一部はプログラムされる必要がない。たとえば、ページレジスタが1ページ分のデータの80%を格納しているだけであれば、メモリセルの20%はプログラムされる必要がない。そのページのビットの最初の80%がユーザーデータとして使用され、最後の20%のビットはユーザーデータを有しない。別の実施例では、プログラミングのために受け取られたデータの一部が既にメモリセル内のデータに一致している可能性がある。このような場合には、プログラムされるデータに一致するデータを格納するそれらのメモリセルをプログラムする必要がない。
【0089】
プログラムされるデータの連続する一続きのビットがメモリセルの列全体に格納されるデータに一致する可能性がある。その場合には、メモリセルの列全体をプログラムする必要がない。たとえば画像ファイルには、その画像の大部分が白い場合があり、白を表すデータはメモリセルに既に格納されている可能性がある。別の実施例では、メモリシステムがプログラミング後にページ全体を読み戻し、読み戻されたページがプログラムされることになっていたデータに一致することを検証する。一部のデータが一致しない(あるいはビット数が所定数より少ない)場合には、そのページが再プログラムされる。ページを再プログラムするときには、それらのページのデータがプログラムされるデータに必ず一致するので、多数の列のメモリセルをスキップできる可能性がある。1列または複数列のメモリセルのプログラミングをスキップすることにより、プログラミング処理が速やかに、かつより少ない電力で完了する。
【0090】
一部の先行システムは、1列のメモリセルのプログラミングをスキップできるようになっている。それらの先行システムでは、システムが、第1の列のメモリセルにデータをプログラムしながら、第2の列のメモリセルをスキップするべきかどうかを評価する。第1の列のメモリセルがプログラミングを完了したときにメモリセルの第2の列のメモリセルをスキップするべきでないとシステムが判断した場合には、第2の列のメモリセルがプログラムされる。システムは、第2の列のメモリセルのプログラミングをスキップするべきであると判断すると、第1の列のメモリセルが完了するまで待機する。第1の列のメモリセルが完了した後、システムは、第3の列のメモリセルをスキップするべきかどうかを評価する。第3の列のメモリセルをスキップするべきでない場合には、第3の列のメモリセルがプログラムされる。この処理が続行する。この処理の1つの欠点は、システムがある列のメモリセルをスキップするべきであると判断されると、現在の列のメモリセルがプログラミングを完了するまで、システムがアイドル状態のままになるということである。そのため、前の列のメモリセルをプログラムしながらメモリシステムが複数の列のメモリセルを評価し、スキップすることを決定できる処理が提案される。この処理は、図14のフローチャートに記載されている。
【0091】
図14のステップ560で、1ページ(またはそれ以上)分のデータと、そのページ分のデータをプログラムするためのリクエストが受け取られる。そのデータおよびリクエストは、たとえばホストからコントローラ132で受け取ることができる。あるいは、そのデータおよびリクエストを、システム制御ロジック130(ステートマシン306を含む)で受け取ることができる。ステップ562で、そのページ分のデータが、ページレジスタ120のシャドウレジスタ342に読み込まれる。ステップ564で、シャドウレジスタ342内のデータが、ページレジスタ120のデータレジスタ344に転送される。
【0092】
ステップ566で、システムは、現在データレジスタ344に存在するそのページ分のデータを格納するための対象とされるメモリセルを読み出す。なお、プログラミング処理および読出し処理の両方が、システム制御ロジック130の一部であるステートマシン306の命令で実行される。そのページ分のデータは、対象メモリセルから読み戻され、ページレジスタ120の制御ロジック340へと流れる。各ビットは、制御ロジック304によって受け取られるときに、データレジスタ344内の対応ビットと比較される。その2つのビットが一致する場合には、エラーレジスタ346内の対応ビットにゼロが格納される。2つのビットが一致しない場合には、エラーレジスタ346内の対応ビットがロジック1を格納する。メモリセルから読み出されたすべてのデータが制御ロジック304に流れ終わると、エラーレジスタ346が、プログラムされるデータと既にメモリセル内に存在するデータと比較するために、その1組の結果を格納する(ステップ570)。これらの一致するビットが再プログラムされる必要はない。メモリセル内のビットに一致しないビットのデータは、プログラムされる必要がある。その後、エラーレジスタが、該当するセンスアンプ有効化シャドウラッチSSLに読み込まれるセンスアンプ有効化情報の供給源として使用され、個々のビットのプログラミングを開始する。ステップ570は、列カウンタXをゼロに初期化することも含む。
【0093】
ステップ572で、第1の組のデータ用のシャドウラッチ(WSLおよびSSL)が、Xによってアドレス指定された列(たとえば、列0)であるCAD[X]のストライプごとに読み込まれる。上記実施例では、センスアンプ有効化(SSL)のうちの16ビットおよび16ビットのデータ(WSL)が、ステップ572の一部としてストライプごとに同時に転送される。一実施形態では、(1)16ビットの書込みデータを転送し、(2)16ビットの書込みデータを転送し、(3)16ビットのセンスアンプ有効化情報を転送し、(4)16ビットのセンスアンプ有効化情報を転送するという4つのサイクルが必要である。様々な数のセンスアンプと様々なバス幅とを有する他の実施形態では、このサイクルが異なってもよい。
【0094】
ステップ574で、すべてのストライプのシャドウラッチ(WSLおよびSSL)に保持されているデータが、データラッチ(WDLおよびSDL)にコピーされる。ステップ576で、現在アドレス指定されている特定の列向けのデータが、WDLラッチから該当するメモリセルにプログラムされる。加えて、変数Yが変数Xの値+1に設定される。この変数の用途については後で説明する。CAD[X]が最後のプログラム対象列であれば(ステップ577)、処理は完了である。そうでなければ、ステップ578で、シャドウラッチWSLおよびSSLに、(CAD[Y]によってアドレス指定された)次の列向けの書込みデータおよびセンスアンプ有効化データが読み込まれる。ステップ572では、列CAD[X]がアドレス指定された列であり、その列はステップ576の前回の繰り返しでプログラムされたということに注意されたい。変数Yは、この時点でCAD[Y]がCAD[X]の次の列をアドレス指定するように、X以上に設定される(Xが最後の列でない場合)。シャドウラッチに読み込まれたセンスアンプ有効化情報は、エラーレジスタ346から送られたものである。ステップ580で、ページレジスタ120が次の列CAD[Y]用の書込みデータを評価して、そのデータがプログラムされる必要があるかどうかを確認する。プログラムされている現在の列が列CAD[0]である実施例では、次の列が列CAD[1]である。ステップ578および580は、並行して、あるいは他方に続いて(どちらの順序でも)実行することができる。一実施形態では、ページレジスタ120が、エラーレジスタ346内のビットを参照することによって次の列をスキップするべきかどうかを評価する。その列向けのすべての対応ビットがゼロに設定されている場合には、その列にプログラムされる必要のあるデータが存在しないため、ページレジスタ120はその列をスキップできると結論付ける。
【0095】
次の列がスキップできると判断されると(ステップ582)、ステップ584で、次の列はスキップするべきであるとページレジスタ120が他の構成要素(ステートマシン306を含む)に示す。いくつかの実施形態では、シャドウラッチへのデータの転送(ステップ578)がもはや不要であることから、転送を中止できる可能性がある。転送が既に完了している可能性もある。CAD[Y]が最後のプログラム対象列であれば(ステップ585)、処理は完了である。そうでなければ、ステップ586で、変数Yが増分し、処理がステップ578に戻る。ステップ578の次の繰り返しでは、シャドウラッチに後続列CAD[Y]向けのデータおよびセンスアンプ有効化が読み込まれ、処理が上記のとおり続行する。ステップ578、580、582、584および586のループは、列をスキップしないと判断されるまで繰り返される。確認できるとおり、ページレジスタ120は、列をスキップするべきであると判断すると、現在アドレス指定された列がプログラミングを終了するのを待たずに次の列を評価する。このように、ページレジスタ120は、現在のページ分のデータがプログラムされている間に、現在のページがプログラミングを完了するのを待たずに複数の列を評価して、プログラムする列を見つけることができる。
【0096】
列をスキップするべきでないとページレジスタ120が判断した場合(ステップ582)には、ステップ588で、ページレジスタ120およびステートマシン306が、現在の列(たとえばCAD[X])がプログラミングを完了するのを待つ。現在の列CAD[X]がプログラミングを完了した後、現在の列CAD[X]用に書き込まれたページ分のデータが、ステップ590でページレジスタ120に読み戻される。ステップ592で、ステートマシン306が、他にもプログラムするデータの組があるかどうかを判断する。なければ図14の処理は完了である。プログラムするデータが他にもある場合には、変数XがYと等しくなるように設定され、処理がステップ574に戻り、上記のとおり続行する。
【0097】
図15は、ステップ574〜582の3回の繰り返し中の各種信号の挙動を示すタイミング図である。図15に示す信号は、SAE、SMI_TL_CPY、SMI_WDXSAE、SMI_CNT_ADR、SMI_TL_RXW、SMI_CAD[4:0]、SMI_TL WE、SMI_TL_RE、SMI_CAD_ARY[4:0]およびPR_SKIPを含む。信号PR_SKIPは、次の列のためのプログラミングはスキップするべきであるとページレジスタ120が判断したことを示す(図14のステップ584を参照)。信号SMI_CAD[4:0]は、現在プログラムされている列を示す。信号SMI_CAD ARY[4:0]は、スキップすると現在評価されている列を示している。したがって、SMI_CAD[4:0]は図14のCAD[X]に類似しており、SMI_CAD ARY[4:0]は図14のCAD[Y]に類似している。
【0098】
図15の時期T0で、信号SMI_TL_CPYがパルスされる。SMI_TL_CPYは、WSLおよびSSLからのデータをコピーするWDLおよびSDL向けのラッチ有効化信号であることから、これはステップ574に対応する。T1でSMI_CAD[4:0]が変わり、プログラムされるデータの新しい列アドレス(たとえばCAD1)を示す。列アドレスの変更は、図14のステップ594に類似している。T1ではまた、SAEが高に設定され、CAD[X](この場合にはCAD[1])のプログラミング進行を開始する。SAEは、T4とT5との間の時点まで高の状態を保つ。T1ではまた、SMI_CAD ARY[4:0]が変わり、次の列(本実施例ではCAD2)が評価されることを示す。SMI_CAD ARY[4:0]の変更は、ステップ576で値Yを「X+l」に等しくすることに対応する。
【0099】
時期T1の直後に、SMI_CAD ARY[4:0](CAD[Y]に類似)によってアドレス指定された列向けのシャドウラッチWSLおよびSSLが読み込まれる。そのため、時期T1の後、信号SMI_TL_WEが4回パルスされる。全4回のパルス中、信号SMI_TL_RXWが低に設定されており、書込みデータがバスPR_OUTで転送されていることを示す。SMI_TL_WEの第1のおよび第3のパルス中は、信号SMI_CNT_ADRが低に設定されており、サポート回路群400・・・402を示す。SMI_TL_WEの第2のおよび第4のパルスでは、サポート回路群410・・・412を選択するために、信号SMI_CNT_ADRが高である。SMI_TL_WEの最初の2パルス中は、SMI_WDXSAEが高であり、書込みデータがPR_OUTで転送されていることを示す。SMI_TL_WEの2番目の2パルス中は、信号SMI_WDATAXSAEが低に設定されており、センスアンプ有効化情報がページレジスタ120からセンスアンプ有効化シャドウラッチSSLにPR_OUTで転送されていることを示す。4回のパルス中、ページレジスタは、列CAD2をスキップするべきかどうかを判断するために、エラーレジスタ346内のデータを並行して評価している。本実施例では、CAD2にプログラムされるデータが既にCAD2にあるデータと同じであるとページレジスタ120が判断するため、CAD2のプログラミングはスキップすることができる。したがって、時期T2でページレジスタ120は、次の列(CAD2)をスキップするべきであることを示すために、PR_SKIPを高に設定する。PR_SKIPはステートマシン306に送られる。PR_SKIPを高に設定することは、図14のステップ584に対応する。なお、ステップ580の評価は、T1とT2との間で行われる。
【0100】
時期T3でSMI_CAD_ARY[4:0]が変わり、次の列が評価されることを示す。このような列アドレスの変更は、図14のステップ586で変数Yを増分することに類似している。列アドレスを増分したことを受け、シャドウラッチに、新しい列(CAD3)向けのデータが再び読み込まれる。その結果、ステップ578と同様、SMI_TL_WEが4回パルスされる。上記のとおり、第2および第4のパルス中はSMI_CNT_ADRが高に設定され、第1および第3のパルス中はSMI_CNT_ADRが低に設定される。最初の2パルス中はSMI_WDXSAEが高であり、第2の2パルス中はこの信号が低である。T3とT5との間で、ページレジスタ120がCAD3用のデータを評価して、プログラムされる必要があるかどうかを判断する。本実施例では、CAD3にプログラムされるデータがCAD3内のデータに一致することをエラーレジスタ346内の情報が示しているため、CAD3のプログラミングをスキップすることができるとページレジスタ120が判断する。これは、時期T4でPR_SKIPを引き上げることによって示される(ステップ584に類似)。
【0101】
時期T5でPR_SKIPが下げられ、SMI_CAD ARY[4:0]によって示されたアドレスが増分されてCAD4を示す(ステップ586に類似)。続いて、T5の直後にSMI_TL_WEの4回のパルスによって示されるとおり、シャドウラッチが読み込まれる(ステップ578に類似)。上記のとおり、第1および第3のパルス中はSMI_CNT_ADRが低であり、第2および第4のパルス中はSMI_CNT_ADRが高である。最初の2パルス中はSMI_WDXSAEが高であり、最後の2パルス中はSMI_WDXSAEが低である。T5とT6との間の期間中に、ページレジスタ120がCAD4用のデータを評価している(ステップ578を参照)。本実施例では、CAD4にプログラムされるデータがCAD4に保持されているデータに一部が一致しないということを、(エラーレジスタ346内の情報に基づいて)ページレジスタ120が判断する。たとえば、1つまたは複数のビットが異なる。そのため、PR_SKIPは低のままであり、システムは、CAD0のプログラミングが完了するのを待つ(ステップ588)。時期T6で、CAD0にプログラムされたデータが、読出しラッチRLに返送される(ステップ590)。このことは、SMI_TL_RE(RL向けのラッチ有効化信号)の2つのパルスによって明示される。SMI_TL_REの第1のパルス中は信号SMI_CNT_ADRが低であり、第2のパルス中は、各サポート回路群が該当する読出しラッチRLに送られるデータを有するように、SMI_CNT_ADRが高である。SMI_TL_REにおける2つのパルス期間中は信号SMI_TL_RXWが高に設定され、バスPR_OUT[15:0]上のデータが読出しラッチRLからページレジスタ120に向かっていることを示す。時期T8までに、すべての読出しデータがページレジスタ120によって受け取られており、データレジスタ344に格納されている。読み出されたデータは、シャドウレジスタ342に転送され、ステートマシン306および/またはコントローラ134に転送される(可能性がある)。時期T6で、(シャドウラッチWDL内にある)CAD4用のデータが、ステップ574と同様、データラッチWSLに転送される。時期T8で、現在のプログラミング対象列アドレスSMI_CAD[4:0]が増分して、その列がプログラムされることを示す。本実施例では、SMI_CAD[4:0]がCAD4に設定される。加えて、時期T8で、評価される列が増分して、SMI_CAD ARY[4:0]がCAD5に設定される。図14に記載のとおり、この処理は続行する。
【0102】
記載した実施例では、1本のストライプが、32ブロックのデータと、32個のセンスアンプと、関連するブロックに対してt32個のサポート回路群とを有する。同じ実施例において、バスPR_OUT[15:0]は16ビットを含んでいたため、32組のラッチを2サイクルで読み込む必要があった。2サイクルの読み込みが完了すると、32ビットが32個のセンスアンプによって同時にプログラムされた。
【0103】
別の実施形態では、システムが使用するセンスアンプを32個未満にして節電を図ってもよい。たとえば、システムは、32個のセンスアンプのうち、16個だけを同時に使用してもよい。このような実施例では、ある列のストライプでアドレス指定された全32ビットをプログラムするために、2回のプログラミングサイクルを実行する必要がある。その列の1週目のプログラミングサイクル中に、第1の16個のセンスアンプが自らのそれぞれのビットをプログラムし、2週目のプログラミングサイクルの間に、第2の16個のセンスアンプが自らのそれぞれのビットをプログラムする。この2つのプログラムサイクルは、センス・アンプ・サイクルと呼ばれる。本明細書において、センス・アンプ・サイクルは、SADサイクルと略記される。
【0104】
別の実施例では、システムが所与のストライプに対して8つのセンスアンプだけを同時に使用してもよい。そのため、列ごとに4つのSADサイクルが実施される。別の実施例では、システムが一度に4つのセンスアンプだけを使用することに制限できる可能性があることから、列ごとに8つのSADサイクルが存在する必要がある。他の実施形態では、様々な数のセンスアンプを使用することができ、適切な回数のSADサイクルが使用される。
【0105】
ある列向けのデータを評価してその列のプログラミングをスキップするべきかどうかを判断する際、1つまたは複数ビットのデータが既にメモリ内に格納されているデータと異なるために、その列をスキップすることができないとページレジスタ120が判断することがある。そのような場合には、対応するメモリセルに既に格納されているデータに一致するプログラム対象データの対応ビットを有するSADサイクルをスキップする目的で、ページレジスタがSADサイクルごとにデータの評価を試行することもできる。したがって、システムは、列全体をスキップできると判断すると、その列をスキップする。システムは、その列をスキップできないと判断した場合には、SADサイクルごとにデータを参照し、プログラムされる対応データがメモリセルに格納された対応データに一致する場合には、それらのSADサイクルをスキップする。図16は、このような処理を示すフローチャートである。
【0106】
図16の処理例では、各ブロックが32列を有すると仮定されるため、信号SMI_CAD[4:0]は、CAD0〜CAD31をアドレス指定する。加えて、列ごとに、SAD1、SAD2、SAD3およびSAD4という4つのSADサイクルがある。図16のステップ640で、図14のステップ560〜574の実行を含む初回の組のステップが実行される。加えて、変数bが1に初期化され、変数nは0に初期化され、SMI_CHECKが1に設定される。変数bは、現在のSADサイクルを示す目的で使用される。変数nは、現在のCADサイクルまたは列アドレスを示す目的で使用される。変数SMI_CHECKは、列(CAD)をスキップするか、あるいはSADをスキップするかを評価するかを示す目的で使用される。
【0107】
ステップ642で、システムは、現在の列の現在のSADサイクルに対するプログラム動作を実行する。図16に示すとおり、システムはCAD(n)のSAD(b)に対するプログラミングを実行する。ステップ644で、変数SMI_CHECK=1であるかどうかが判断される。真である場合には、処理がステップ660へと続行する。偽である場合には、処理がステップ680へと続行する。新しい列の先頭で、SMI_CHECKが1に設定され、列をスキップするかどうかが最初に評価される。列をスキップするかどうかの評価が、その列をスキップするべきでないことを示している場合には、SMI_CHECKが0に設定され、SADサイクルをスキップするかどうかを評価することができる。上記説明では、ここで初めて列がチェックされ、この処理が列チェックの開始であることから、SMI_CHECKが1に設定され、図16の処理がステップ660へと続行する。
【0108】
ステップ660で、変数mがn+1に設定される。ページレジスタ120は、次の列をスキップするべきかどうかを評価する。ページレジスタ120がCAD(m)を評価する。式中、m=n+1であり、nは現在の列アドレスである。上記のとおり、ステップ660は、エラーレジスタ346をチェックしているページレジスタ120によって実行される。ステップ664で、次の列CAD(m)向けの書込みデータが、データレジスタ304から該当する書込みシャドウレジスタWSLへと転送される。一実施形態では、ステップ660および664が並行して実行された。他の実施形態では、それらのステップがどちらかの順序で連続的に実行された。変数d(後述)は、1に初期化される。ページレジスタ120は、次の列をスキップするべきであると判断すると(ステップ666)、ステップ668で、次の列をスキップするべきであると他の構成要素(ステートマシン306を含む)に示す。CAD(m)が最後のプログラム対象列であれば(ステップ669)、処理が完了し、そうでなければ、変数m(列アドレス)がステップ670で増分され、処理がステップ660に戻って後続列をスキップするべきかどうかを評価する。たとえば、ステップ660でCAD1を評価しており、CAD1をスキップするべきであるとページレジスタ120が判断した場合には、処理がステップ660に戻り、ページレジスタが列CAD22をスキップするべきかどうかを評価する。ページレジスタ120は、列をスキップするべきでなくなるまで、現在の列がプログラミングを終えるのを待たずに列を評価し続ける。列をスキップするべきでないとページレジスタ120が判断すると(666)、ステップ670(ステップ666から)で変数SMI_CHECKが0にリセットされ、処理はステップ680として続行する。この時点で、次の列をスキップすることができないと判断される。
【0109】
ステップ680で、ページレジスタ120が、次のSADサイクルをスキップするかどうかを評価する。次のSADサイクルは、CAD(m)のSAD(d)である。ステップ680は、SADサイクルSAD(d)のセンスアンプと関連付けられた該当するビットのエラーレジスタ346を比較することを含む。ステップ682で、CAD(m)のSAD(d)向けのセンスアンプ有効化情報がセンスアンプ有効化シャドウラッチSSLに転送される。一実施形態では、すべてのSSLラッチがデータを受け取る。ただしそのデータは、CAD(m)のSAD(d)向けの選択されたセンスアンプ群に存在しないラッチに対してプログラミングが実行されないことを示す。一実施形態では、ステップ680および682を同時に実行することができる。他の実施形態では、それらのステップを、どちらの順序でも連続して実行することができる。
【0110】
次のSADサイクルをスキップするべきであれば(ステップ684)、ステップ695で次のSADサイクルをスキップするべきであることを、ページレジスタが他の構成要素に知らせる。いくつかの実施形態では、ステップ695が不要である。ステップ696で、CAD(m)のSAD(d)、すなわちスキップされるSADサイクルが列CAD(m)の最後のSADサイクルであるかどうかが判断される。SAD(d)が列CAD(m)の最後のSADサイクルである場合には、ステップ697で、CAD(m)が最後のプログラム対象列であるかどうかが判断される。CAD(m)が最後のプログラム対象列である場合には処理が完了し、そうでなければ、ステップ699で変数がn=m、b=lおよびSMI_CHECK=1と設定される。これは、次の列の最初のSADサイクルまで増分するという効果を有する。ステップ699の後、処理はステップ644へと続行する。ステップ696で、SAD(d)が列CAD(m)の最後のSADサイクルではないと判断されると、ステップ698で、CAD(m)の次のSADサイクルをアドレス指定するために698dが1だけ増分する。ステップ698の後、処理はステップ680へと続行し、次のSADサイクルが評価される。
【0111】
次のSADサイクルをスキップするべきでない場合には(ステップ684)、システムが、ステップ686で、プログラミング中の現在のSADサイクルがプログラミングを完了するのを待つ。ステップ690では、シャドウラッチSSLおよびWSL内のセンスアンプ有効化情報および書込みデータがデータラッチSDLおよびWDLに転送される。加えて、変数がn−m、b=d、d=d+l(b=dに設定した後)に設定される。ステップ680の前回の繰り返しで評価されたばかりのSADサイクルが、その列の最後のSADサイクルである場合には、処理がステップ694へと続行し、変数SMI_CHECKが1に設定されて、システムが次の列を検討する。ステップ680の前回の繰り返しで評価されたSADサイクルが現在の列の最後のSADサイクルでない場合には、ステップ692の処理がステップ642へと続行し、次のSADサイクルをプログラムする。ステップ694の後も、処理はステップ642へと続行し、次のSADサイクルをプログラムする。
【0112】
図17は、図16の処理の一実施態様における各種信号の挙動を示すタイミング図である。さらに具体的には、図17の信号ダイアグラムは、ステップ660〜670の1回の繰り返しと、ステップ680〜684の4回の繰り返しとを含む特定の1列の動作を示す。本実施例では、データが列CAD1のSADサイクルであるSAD4向けにプログラムされている間に、システムが、列CAD2と、列CAD2に対するその4回のSADサイクルをスキップするべきかどうかを評価している。本実施例の一部として、システムは、SAD1をスキップし、SAD2をスキップし、列CAD2向けにSAD3をプログラムすることを決定する。
【0113】
図17は、信号SAE、SMI_TL_CPY、SMI_WDXSAE、SMI_CNT_ADR、SMI_TL_RXW、SMI_CAD[4:0]、SMI_TL WE、SMI_RL_WE、SMI_CAD ARY[4:0]、PR_SKIP、SMI_CHECKおよびSMI_SAD_ARY[1:0]の挙動を示す。信号SMI_SAD_ARY[1:0]は、スキップすると評価されているSADサイクルを示している。
【0114】
図17の時期T0で、SMI_TL_CPYがパルスされ、シャドウラッチからのデータがデータラッチに(WSLおよびSSLからWDLおよびSDLに)転送されることを示す。このパルスは、これからプログラムされる現在の列に対するステップ690の動作の一部である。本実施例では、現在の列がCAD1である。ステップT1で、SAEが高に上げられ、CAD1のSAD4に対するプログラミング処理を開始する(ステップ642を参照)。T1の後、図16のステップ660が実行され、ページレジスタ120が、次の列をスキップするべきかどうかを評価する。SMI_CHECKが高であるため、ステップ660が実行された。T1の後、書込みデータをステップ664の一部としてシャドウラッチWSLに転送できるように、SMI_TL WEが2回パルスされる。本実施例では、ページレジスタ120が、次の列(SMI_CAD_ARY[4:0]が示すCAD2)をスキップするべきでないと判断する。そのため、SMI_CHECKが下げられ(ステップ670の一部)、ページレジスタ120が、CAD2のSAD1をスキップするべきかどうかを評価する。
【0115】
CAD2のSAD1を評価している間に、センスアンプ有効化情報をページレジスタ120からセンスアンプ有効化シャドウラッチSSLへと転送するために、信号SMI_TL WEが2回パルスされる(時期T2の直後)。第1のパルス中はSMI_CNT_ADRが低であり、その対の第2のパルス中はSMI_CNT_ADRが高である。本実施例では、ページレジスタ120が、SAD1をスキップするべきであると判断するため、PR_SKIPがステップ695の一部として高に設定され、ページレジスタは次にSAD2を評価する。そのため、時期T4で、SMI_SAD_ARY[1:0]がSAD2に変更される(ステップ698に類似)。
【0116】
ページレジスタは、T4の後にSAD2をスキップするべきかどうかを評価する。SAD2を評価している間に、T4から始まるSMI_TL_WE上の2つのパルスによって明示されるとおり、センスアンプ有効化情報がシャドウラッチSSLに転送される。SAD2向けのセンスアンプ有効化データが、SAD1向けのセンスアンプ有効化データを上書きする。本実施例では、ページレジスタ120がSAD2をスキップするべきであると判断するため、PR_SKIPが時期T5で高に上げられる(ステップ695)。図17はSMI_TL_WEの両パルスを示すものの、いくつかの実施形態では、PR_SKIPが断定されたときに転送が中止される。
【0117】
T6で、SMISADARY[1:0]が次のSADサイクルであるSAD3に増分し、ページレジスタ120が、SAD3のプログラミングをスキップすることができるかどうかを評価する。評価している間に、T4で始まるSMI_TL_WE上の2つのパルスによって明示されるとおり、SAD3向けのセンスアンプ有効化情報がページレジスタ120からセンスアンプ有効化シャドウラッチSSLに転送される。SAD3向けのセンスアンプ有効化情報が、SSLに格納されたSAD2向けのセンスアンプ有効化情報を上書きする。本実施例では、ページレジスタ120がSAD3のプログラミングをスキップするべきでないと判断するため、T6以降はPR_SKIPが低のままとなる。SAD3がプログラムされるべきであると判断した後、システムは、T7の直後に行われるプログラミングが完了するのを待つ。
【0118】
時期T8で、SMI_TL_CPY上のパルスが示すとおり、シャドウラッチWSLおよびSSLからのデータ(SAD3のプログラミングに使用)がデータラッチWDLおよびSDLに転送される。時期T9で、SAEが高に上げられ、CAD2のSAD3に対するプログラミング処理を開始する(図16のステップ642を参照)。T9の後、およびCAD2のSAD3をプログラムしている間に、ページレジスタ120がCAD2のSAD4をスキップするべきかどうかを評価する。並行して、時期T9以降のSMI_TL_WE上の2つのパルスが示すとおり、SAD4用のセンスアンプ有効化情報が転送される。本実施例では、ページレジスタがSAD4をスキップすると判断し、PR_SKIPはT9とT10との間で高であると断定される。
【0119】
一実施形態は、基板と、その基板の一部分の上方に配置された不揮発性記憶素子のモノリシック3次元メモリアレイと、その不揮発性記憶素子と通信する複数のセンスアンプと、そのセンスアンプと通信する複数の一時記憶デバイスと、その一時記憶デバイスと通信するページレジスタと、1つまたは複数の制御回路と、を含む。この1つまたは複数の制御回路は、ページレジスタ、一時記憶デバイスおよびセンスアンプと通信する。一時記憶デバイスは、モノリシック3次元メモリアレイの下方にある基板上に配置される。センスアンプは、モノリシック3次元メモリアレイの下方にある基板上に配置される。ページレジスタは、モノリシック3次元メモリアレイの下方ではない領域にある基板上に配置される。
【0120】
一実施形態は、基板と、その基板の上方に配置された複数の不揮発性記憶素子と、その不揮発性記憶素子と通信する複数のセンスアンプと、そのセンスアンプと通信する複数の一時記憶デバイスと、その一時記憶デバイスおよびセンスアンプと通信する1つまたは複数の制御回路と、その一時記憶デバイスおよび1つまたは複数の制御回路と通信する中間レジスタと、を含む。中間レジスタは、不揮発性記憶デバイスの下方ではない領域にある基板上に配置される。一時記憶デバイスは、不揮発性記憶素子の下方にある基板上に配置される。センスアンプは、不揮発性記憶素子の下方にある基板上に配置される。センスアンプによって不揮発性記憶素子から読み出されたデータは、一時記憶デバイスに転送され、その後1つまたは複数の制御回路に応答して中間レジスタに転送される。不揮発性記憶素子にプログラムされるデータは、その1つまたは複数の制御回路に応答して中間レジスタから一時記憶デバイスに転送される。
【0121】
一実施形態は、基板の一部分の上方に配置された不揮発性記憶素子のモノリシック3次元メモリと、不揮発性記憶素子と通信する複数のセンスアンプと、センスアンプと通信する複数の一時記憶デバイスと、一時記憶デバイスおよびセンスアンプと通信する1つまたは複数制御回路と、一時記憶デバイスおよび1つまたは複数制御回路と通信するページレジスタと、ページレジスタと一時記憶デバイスとの間の双方向データバスと、を含む。特定のセンスアンプについて、その特定のセンスアンプ向けのプログラミングデータを格納する目的で使用される一時記憶デバイスの記憶デバイスが、特定のセンスアンプ向けの読出しデータを格納する目的で使用される一時記憶デバイスの記憶デバイスと同じビットの双方向データバスを使用する。センスアンプによって不揮発性記憶素子から読み出されたデータは、一時記憶デバイスに転送され、その後1つまたは複数の制御回路に応答して、双方向データバス経由でページレジスタに転送される。不揮発性記憶素子にプログラムされるデータは、その1つまたは複数制御回路に応答して、双方向データバス経由でページレジスタから一時記憶デバイスに転送される。
【0122】
一実施形態は、データと、そのデータを格納するためのリクエストを受け取ることと、基板上にあるが不揮発性記憶素子のモノリシック3次元メモリの下方にはない中間レジスタにデータを転送すること(モノリシック3次元メモリが基板よりも上方にある場合)と、中間レジスタから、基板上にあり、かつモノリシック3次元メモリの下方にある一時記憶デバイスにデータを転送することと、一時記憶デバイスから、基板上にあり、かつモノリシック3次元メモリの下方にある複数のセンスアンプにデータを転送することと、センスアンプ内のデータに基づいて不揮発性記憶素子のサブセットをプログラムすることと、を含む。
【0123】
前述の詳細な説明は、例示および説明を目的として提示されている。本発明は、網羅的となる、あるいは本発明を開示されている正確な形態に制限することを意図していない。上記の教示に照らした多くの修正形態および変形形態が考えられる。記載した実施形態は、本発明の原理その実際的応用を最もよく説明し、当業者が様々な実施形態で、検討される特定の使用に適するように様々に修正して本発明を最も良好に利用できるように選定された。本発明の範囲が本明細書に添付される特許請求の範囲により定められることが意図される。
【技術分野】
【0001】
本発明は、不揮発性記憶装置の技術に関する。
【背景技術】
【0002】
半導体メモリは、様々な電子装置で広く使用されるようになってきている。たとえば、不揮発性半導体メモリは、携帯電話、デジタルカメラ、携帯情報端末、モバイル・コンピューティング・デバイス、非モバイル・コンピューティング・デバイスなどのデバイスで使用される。ユーザーが記憶したいデータの量が増えているため、高密度記憶装置に対する需要がある。3次元メモリは、高密度記憶装置の一例である。しかし、密度が向上することで、性能が低下すべきでない。
【図面の簡単な説明】
【0003】
【図1】メモリシステムの一実施形態のブロック図である。
【0004】
【図2】メモリセルの一実施形態の概略斜視図である。
【0005】
【図3】メモリセルの一例で使用され可逆的抵抗スイッチング素子のI−V特性を表すグラフである。
【0006】
【図4A】3次元メモリアレイの一実施形態の一部分の概略斜視図である。
【0007】
【図4B】3次元メモリアレイの一実施形態の一部分の概略斜視図である。
【0008】
【図5】3次元メモリアレイの様々な層を表しているブロック図である。
【0009】
【図6】メモリシステムを実装した基板の上面図である。
【0010】
【図7】メモリアレイの構成の一例を表すブロック図である。
【0011】
【図8】メモリストライプの構成の一例を表すブロック図である。
【0012】
【図9】メモリアレイのサポート回路の一実施形態のブロック図である。
【0013】
【図10】ページレジスタの一実施形態のブロック図である。
【0014】
【図11】メモリストライプのサポート回路の一実施形態のブロック図である。
【0015】
【図12】データをプログラムする処理の一実施形態を示すフローチャートである。
【0016】
【図13】データをプログラムする処理の一実施形態を示すタイミング図である。
【0017】
【図14】サイクルをスキップすることを含むデータをプログラムする処理の一実施形態を示すフローチャートである。
【0018】
【図15】サイクルをスキップすることを含む、データをプログラムする処理の一実施形態を示すタイミング図である。
【0019】
【図16】サイクルをスキップすることを含む、データをプログラムする処理の一実施形態を示すフローチャートである。
【0020】
【図17】サイクルをスキップすることを含む、データをプログラムする処理の一実施形態を示すタイミング図である。
【発明を実施するための形態】
【0021】
記憶密度を高めるための3次元メモリ構造を含む不揮発性記憶デバイスが提案される。複数の不揮発性記憶素子を含む3次元メモリ構造が、基板(または他の材料)の上方に配置される。長い信号長による遅延を最小限に抑えるために、制御回路の大半が3次元メモリ構造の下方に位置付けられる。ただし、制御回路のすべてが3次元メモリ構造の該当部分の下に装着できるわけではなく、長い信号線を有することによってRC遅延が生じうる。そのため、3次元メモリ構造の外側にページレジスタ(または他の類似中間記憶デバイス)を配置し、3次元メモリ構造の下方に1組の一時記憶デバイス(ラッチまたはレジスタなど)とセンスアンプとを備えることが提案される。センスアンプによって不揮発性記憶素子から読み出されたデータは、一時記憶デバイスに転送され、その後ページレジスタに転送される。不揮発性記憶素子にプログラムされるデータは、ページレジスタから一時記憶デバイスに転送される。なお、ページレジスタは論理ページ分のデータを格納する。論理ページとは、プログラミングの1単位のことである。他の態様のページレジスタまたは異なる記憶デバイスを使用することもできる。
【0022】
図1は、本明細書で開示される技術を実行可能なメモリシステム100の一例を示すブロック図である。メモリシステム100は、メモリセルが2次元又は3次元のアレイとなったメモリアレイ102を含む。1つの実施形態では、メモリアレイ102は、モノシリックの3次元メモリアレイである。メモリアレイ102のアレイ端子線は行として整理されたワード線の様々な層と、列として整理されたビット線の様々な層とを有する。しかしながら、他の配向も可能である。
【0023】
メモリシステム100は、出力108がメモリアレイ102の各々のワード線に接続される行制御回路120を含む。本明細書において、接続は、直接的な接続、または(例えば1つまたは複数の他の部品を介した)間接的な接続であってもよい。行制御回路120は、M個の行アドレス信号の集合と1つ以上の様々な制御信号をシステム制御ロジック130から受信している。行制御回路120は、典型的には、読取り及びプログラミング動作の双方のために、行デコーダ122、アレイドライバ124及びブロック選択回路126などの回路を含んでもよい。
【0024】
メモリシステム100はまた、入力/出力106がメモリアレイ102の各々のビット線に接続される列制御回路110を含む。列制御回路110は、N個の列アドレス信号の集合と1つ以上の様々な制御信号をシステム制御ロジック130から受信している。列制御回路110は、列デコーダ112、ドライバ回路114、ブロック選択回路116、及びセンスアンプ118およびページレジスタ120を含む。一実施形態では、センスアンプ118は、信号をビット線に供給するとともに、ビット線上の信号を検出する。ここでは、当該技術分野で周知の、様々なセンスアンプを用いることができる。
【0025】
システム制御ロジック130は、データ及び命令をコントローラ134から受信し、アウトプットデータとステータスをコントローラ134に供給する。コントローラ134はホスト(例えばカメラ、コンピュータ、携帯電話等)と通信する。システム制御ロジック130は、ステートマシン、レジスタ、および、メモリシステム100の操作を制御する他の制御論理回路を、1つまたは複数備えていてもよい。他の実施形態では、システム制御ロジック130がコントローラの機能を備えるため、システム制御ロジック130がデータおよびコマンドをホストから直接に受信するとともに、ホストに出力データを供給する。
【0026】
1つの実施形態では、システム制御ロジック130、列制御回路110、行制御回路120およびメモリアレイ102は、同一の集積回路に形成される。例えば、システム制御ロジック130、列制御回路110及び行制御回路120は基板の表面に形成され、メモリアレイ102はその基板の上方(即ち、システム制御ロジック130、列制御回路110及び行制御回路120の少なくとも一部の上方)に形成されるモノシリックの3次元メモリアレイである。ある例では、制御回路の一部を、あるメモリアレイと同じ層に形成することができる。図1のような好適な実施形態についての更なる情報は、その全体を参照することにより本明細書に組み込まれる、下記の米国特許に見出すことができる。米国特許第6,879,505号、米国特許第7,286,439号、米国特許第6,856,572号、および米国特許第7,359,279号。コントローラ134は、図1に記載された他の構成要素と同一基板上または異なる基板上に存在することができる。コントローラ134、システム制御ロジック130、列制御回路110、および行制御回路120、これら単独または任意の組合せは、1つまたは複数の制御回路とみなすことができる。
【0027】
メモリアレイ102は複数のメモリセルを備える。一実施形態では、各メモリセルは、ステアリング素子(例えばダイオード)および抵抗素子を備える。一実地態様例では、メモリセルは、1回書き込みおよび複数回読み出しが可能な態様とすることができる。メモリセルの一例は、上部および下部導体の交差点に形成された層状の支柱を備える。一実施形態では、支柱は、アンチヒューズ層のような状態変化素子と直列に接続された、ダイオードのようなステアリング素子を備える。アンチヒューズ層が損傷していない場合には、セルは電気的に開回路である。アンチヒューズ層が破壊されている場合には、セルは、破壊されたアンチヒューズ層の抵抗と直列に接続された電気的なダイオードである。メモリセルの例は、米国特許6,034,882号、米国特許6,525,953号、米国特許6,952,043号、米国特許6,420,215号、米国特許6,951,780号、および米国特許7,081,377号、に見出すことができる。
【0028】
他の実施形態では、メモリセルは書換可能である。例えば、その全体を参照することにより本明細書に組み込まれる、米国特許出願公開第2006/0250836号は、可逆的抵抗スイッチング素子と直列に接続されるダイオードを備える、書換可能な不揮発性記憶素子について記述する。可逆的抵抗スイッチング素子は、2つまたはそれ以上の状態の間で可逆的に切り替わる抵抗率を有する、可逆的抵抗スイッチング材料を含む。例えば、可逆的抵抗性スイッチング材料は、製造時には初期高抵抗率状態であってもよく、この状態は、第1の電圧および/または電流を印加すると低抵抗率状態にスイッチング可能である。第2の電圧および/または電流を印加すると、可逆的抵抗率スイッチング材料は高抵抗率状態に戻ってもよい。あるいは、可逆的抵抗スイッチング素子は、製造時には初期低抵抗率状態であってもよく、この状態は、(単数または複数の)適切な電圧および/または(単数または複数の)電流を印加すると高抵抗率状態に可逆的にスイッチング可能である。1つの抵抗状態は、2進の「0」を表し、別の抵抗状態は2進の「1」を表してもよい。メモリセルが2ビット以上のデータを記憶するために、2以上のデータ/抵抗状態が使用されても良い。一実施形態では、高抵抗状態から低抵抗状態へ抵抗を切り替える処理を、セット処理と呼ぶ。低抵抗状態から高抵抗状態へ抵抗を切り替える処理を、リセット処理と呼ぶ。高抵抗状態は2進データの「0」に関連し、低抵抗状態は2進データの「1」に関連する。他の実施形態では、セットおよびリセット、および/またはデータ符号化は、逆にすることができる。一部の実施形態では、抵抗性スイッチング素子がセットされる最初の1回は、通常の電圧よりも高い電圧を必要とし、フォーミング処理と呼ばれる。
【0029】
図2に、メモリセル150に関する1つの実施形態の概略斜視図を示す。メモリセル150は、第1導電体166と第2導電体168の間に位置して、直列に接続された、可逆的抵抗スイッチング素子162、ステアリング素子164およびバリア165を備える。
【0030】
可逆的抵抗スイッチング素子162は、2以上の状態を可逆的にスイッチングすることが可能な抵抗率を有する可逆的抵抗性スイッチング材料170を備える。一部の実施形態では、可逆的抵抗スイッチング材料170は、金属酸化物から形成されてもよい。様々な異なる金属酸化物を用いることができる。一例では、酸化ニッケルが用いられる。
【0031】
少なくとも1つの実施形態では、選択的蒸着方法の利用において、酸化ニッケル層がエッチングされることなく、酸化ニッケル層が可逆的抵抗スイッチング材料に用いられる。例えば、可逆的抵抗スイッチング素子は、電気めっき、無電解析出等の蒸着プロセスを採用して形成されてもよい。これにより、基板上に形成される導電体表面に対して選択的にニッケル含有層を蒸着させる。この方法により、(ニッケル含有層の蒸着に先立って)基板上の導電体表面のみがパターニング及び/又はエッチングされればよく、ニッケル含有層はパターニング及び/又はエッチングされる必要がない。
【0032】
少なくとも1つの実施形態では、可逆的抵抗スイッチング材料170は、ニッケルを選択的に付着させ、次いでニッケル層を酸化することによって形成される酸化ニッケル層の少なくとも一部を含む。例えば、Ni、NiXPY又はニッケルの別の類似の形態が、無電解析出、電気メッキまたは類似の選択プロセスを使用して選択的に蒸着され、次いで(例えば、急速熱酸化または他の酸化プロセスを使用して)酸化されて酸化ニッケルを形成してもよい。他の実施形態では、酸化ニッケル自体が選択的に蒸着されてもよい。例えば、NiO、NiOX又はNiXPY含有層が、選択付着プロセスを使用してステアリング素子の上に選択的に蒸着され、次いで(必要に応じて)アニールおよび/または酸化されてもよい。
【0033】
メモリセルに使用するための可逆的抵抗性スイッチング材料を形成するために、必要に応じて、他の材料が選択的に蒸着され、次いでアニールおよび/または酸化されてもよい。例えば、Nb、Ta、V、Al、Ti、Co、コバルト−ニッケル合金などの材料が電気メッキ等によって選択的に蒸着され、次に酸化されて、可逆的抵抗スイッチング材料が形成されてもよい。
【0034】
他の可変抵抗材料は、V、Co、Ni、Pd、FeまたはMnがドープされたアモルファスシリコンであり、例としてRoseらによる米国特許第5,541,869号にさらに十分に説明されている。他の類の材料が、Ignatievらによって米国特許第6,473,332号で示唆されている。これらは、Pr1-XCaXMnO3(PCMO)、La1-XCaXMnO3(LCMO)、LaSrMnO3(LSMO)、またはGdBaCoXOY(GBCO)などの、ペロブスカイト(perovskite)材料である。この可変抵抗材料に対する他の選択肢は、例えばJacobsonらによって米国特許第6,072,716号に示唆されているように、プラスチックポリマーに混入されるカーボンブラック粒子またはグラファイトを備えるカーボンポリマーフィルムである。他の例は、カーボンナノチューブを可逆的抵抗スイッチング材料として用いることである。
【0035】
他の材料が、Campbellらによる米国特許出願第2003/0045054号、およびCampbellによる米国特許出願第2003/0047765号に示唆されている。この材料は、化学式AXBYのカルコゲナイドガラス(chalcogenide glass)にドープされる。ここでAは、周期表のIIIA族(B、Al、Ga、In、Ti)、IVA族(C、Si、Ge、Sn、Pb)、VA族(N、P、As、Sb、Bi)またはVIIA族(F、Cl、Br、I、At)の少なくとも1つの元素を含む。またBは、S、Se、Teおよびこれらの混合物の中から選択される。ドーパントは、Ag、Au、Pt、Cu、Cd、Ir、Ru、Co、Cr、MnまたはNiを含む、貴金属および遷移金属の中から選択される。このカルコゲナイドガラス(非晶質カルコゲナイド、結晶状態ではない)は、可動金属イオンの貯蔵部に隣接するメモリセル内に形成される。他の固体電解質材料を、カルコゲナイドガラスに代えて用いることができる。
【0036】
他の可変抵抗材料は、アモルファスカーボン、グラファイトおよびカーボンナノチューブを含む。他の材料も、本明細書で述べる技術に用いることができる。
【0037】
可逆的抵抗スイッチング材料を用いたメモリセルの形成についての更なる情報は、その全体を参照することにより本明細書に組み込まれる、「Memory Cell That Employs A Selectively Deposited Reversible Resistance Switching Element and Methods of Forming The Same,」と題した、米国特許出願公開第2009/0001343号に見出すことができる。更なる情報は、その全体を参照することにより本明細書に組み込まれる、2008年12月19日出願の、「Reverse Set With Current Limit for Non-Volatile Storage,」と題した、米国特許出願第12/339,313号に見出すことができる。
【0038】
可逆的抵抗スイッチング素子162は、電極172、174を有する。電極172は、可逆的抵抗性スイッチング材料170と導体168の間に位置している。1つの実施形態では、電極172はプラチナを用いて形成されている。電極174は、可逆的抵抗性スイッチング材料170とステアリング素子164の間に位置している。1つの実施形態では、電極174は窒化チタンを用いて形成されており、バリア層として機能する。
【0039】
ステアリング素子164は、ダイオードであってもよく、あるいは、可逆的抵抗スイッチング素子162に印加される電圧及び/又は電流を選択的に制限することによって非オーミック接触を示す適切な他のステアリング素子であってもよい。このような態様において、メモリセル150は、2次元又は3次元のメモリアレイの一部として利用してもよい。さらに、データは、アレイ内の他のメモリセルの状態に影響を及ぼすことなくメモリセル150に書き込んだりメモリセル150から読み出されたりしてもよい。ステアリング素子164は、ダイオードのp領域の上にn領域を有して上を向くか、ダイオードのn領域の上にp領域を有して下を向くかによらず、縦型の多結晶p−nまたはp−i−nダイオードなどの何らかの適切なダイオードを含んでもよい。
【0040】
ある実施形態では、ステアリング素子164は、ポリシリコン、多結晶シリコン−ゲルマニウム合金、ポリゲルマニウム、又は他の何らかの適切な材料などの多結晶半導体材料から形成されたダイオードであってもよい。例えば、ステアリング素子164は、高濃度にドープされたn+ポリシリコン領域182と、n+ポリシリコン領域182の上の低濃度にドープされた又は真性(自然にドープされた)ポリシリコン領域180と、真性領域180の上の高濃度にドープされたp+ポリシリコン領域186とを含んだダイオードであってもよい。ある実施形態では、例えば、あらゆる点でその全体が本願明細書において参照により援用されている、2005年12月9日に出願された「DEPOSITED SEMICONDUCTOR STRUCTURE TO MINIMIZE N-TYPE DOPANT DIFFUSION AND METHOD OF MAKING」と題する米国特許公開第2006/0087005号で説明されるように、シリコン−ゲルマニウム合金層を使用する場合、約10%以上のゲルマニウムを有する薄い(例えば、数百オングストローム以下の)ゲルマニウムおよび/またはシリコン−ゲルマニウム合金層(図示せず)をn+ポリシリコン領域182上に形成し、n+ポリシリコン領域182から真性領域180内へのドーパントの移動を防止および/または低減することもできる。当然ながら、n+およびp+領域の位置は逆であってもよい。ステアリング素子164が、(例えば、非晶質または多結晶の)堆積シリコンから形成される場合、一実施形態では、ダイオード上にシリサイド層を形成して、堆積シリコンを製造時の低抵抗率状態に置いてもよい。
【0041】
その全体が本願明細書において参照により援用されている「Memory Cell Comprising a Semiconductor Junction Diode Crystallized Adjacent to a Silicide 」と題する米国特許第7,176,064号に記載されるように、チタン及び/又はコバルトなどのシリサイド形成材料は、アニール中に付着シリコンと反応してシリサイド層を形成する。チタンシリサイド及びコバルトシリサイドの格子間隔は、シリコンの格子間隔に近く、このようなシリサイド層は、付着シリコンが結晶化する場合、隣接する付着シリコンの「結晶化テンプレート」または「シード」として働くこともできる(例えば、シリサイド層は、アニール中にシリコンダイオードの結晶構造を強化する)。これによって、低抵抗率シリコンが提供される。シリコン−ゲルマニウム合金及び/又はゲルマニウムダイオードについても、同様な結果を得ることもできる。
【0042】
導体166、168は、タングステン、何らかの適切な金属、高濃度にドープされた半導体材料、導電性シリサイド、導電性シリサイド−ゲルマニド、導電性ゲルマニドなどの何らかの適切な導電性材料を含んでもよい。図2の実施形態では、導体166、168はレール状であり、(例えば、実質的に互いに直交する等の)異なる方向に伸びる。他の導体形状及び/又は構造が使用されてもよい。ある実施形態では、導体166、168とともに、バリア層、接着層、反射防止コーティングおよび/またはその類似物(図示せず)が使用され、デバイス性能を改善し、及び/又はデバイスの製造に役立てることもできる。
【0043】
図2では可逆的抵抗スイッチング素子162がステアリング素子164上に配置されているが、当然ながら、他の実施形態では可逆的抵抗スイッチング素子162がステアリング素子164の下に位置してもよい。
【0044】
図2はメモリセルの一例を示しているが、ここで開示された技術に対して、メモリセルの1の特定の型または構造は要求されない。多くの異なるタイプのメモリセルを用いることができる。
【0045】
図3は、酸化金属可逆的抵抗スイッチング素子の1つの実施形態における電圧・電流を示す図である。ライン250は、可逆的抵抗スイッチング素子が高抵抗率のときのI−V特性を示す。ライン252は、可逆的抵抗スイッチング素子が低抵抗率のときのI−V特性を示す。可逆的抵抗スイッチング素子がどちらの状態にあるかを決定するために、電圧が印加され、その結果の電流が測定される。高い測定電流(ライン252参照)は、可逆的抵抗スイッチング素子が低抵抗率状態であることを示す。低い測定電流(ライン250)は、可逆的抵抗スイッチング素子が高抵抗率状態であることを示す。なお、異なるI−V特性を有する可逆的抵抗スイッチング素子の他の態様も、本明細書で開示される技術に適用可能であることに留意されたい。
【0046】
高抵抗状態(ライン250参照)の間は、電圧Vsetおよび十分な電流がメモリセルに印加されている場合には、可逆的抵抗スイッチング素子は低抵抗状態にセットされる。ライン254はVSETが印加されたときの挙動を示している。電圧はある程度一定に維持され、電流はIset_limitの方へ増加する。ある時点で、可逆的抵抗スイッチング素子がセットされ、素子の挙動がライン252に基づくようになる。可逆的抵抗スイッチング素子がセットされた初回は、デバイスをセットするためにVf(形成電圧)が必要とされることに留意されたい。その後、VSETが使用可能とされる。形成電圧Vfは、VSETより大きくてもよい。
【0047】
低抵抗状態(ライン252参照)の間は、電圧VRESETおよび十分な電流(Ireset)がメモリセルに印加される場合には、可逆的抵抗スイッチング素子は高抵抗状態へリセットされる。ライン256は、VRESETが印加された場合の挙動を示している。ある時点で、可逆的抵抗スイッチング素子はリセットされ、装置の挙動はライン250に基づくようになる。
【0048】
一実施形態では、Vsetは約5ボルトであり、Vresetは約3ボルトであり、Iset#limitは約5マイクロアンペアであり、Iresetの電流は30マイクロアンペアまで上昇しうる。一実施形態では、VsetはVresetよりも低くすることができる。また、形成処理が必要とされず、および/または、セットまたはリセットに必要な時間を異ならせることができる。
【0049】
可逆的抵抗スイッチング材料の抵抗をセットおよびリセットするためのプログラミング処理は、当技術分野で知られている。可逆的抵抗スイッチング材料の抵抗をセットおよびリセットするための回路の多様な実装形態が知られており、本明細書で述べられている技術に使用することが可能である。セットおよびリセットの例は、その全体を参照することにより本明細書に組み込まれる、2008年12月19日出願の「Reverse Set With Current Limit for Non-Volatile Storage,」と題した米国特許出願第12/339,313号、その全体を参照することにより本明細書に組み込まれる米国特許出願第2007/0072360号、および、その全体を参照することにより本明細書に組み込まれる米国特許出願第2007/0008785号、に見出すことができる。
【0050】
幾つかの実施形態では、セットおよびリセット処理に、セット処理が成功したか否かを確認するための検証処理が続くとすることができる。セット処理が成功していない場合には、プログラミング処理を再試行することができる。一実施態様例では、検証処理は読取り処理である。従って、システム制御ロジック130は、最初に1つまたは複数のメモリセルにプログラム(セットまたはリセット)させ、その後、プログラムされた全てのメモリセルを読み取る。読み取られたデータがプログラムされたデータと一致する場合には、処理が完了する。(多くの場合、プログラミングが成功しないことにより、)読み取られたデータのいくつかがプログラムされたデータと一致しない場合には、プログラミングが繰り返される。いくつかのケースでは、データは、一度に論理ページにプログラムされ、検証処理がプログラム処理が成功してない場合に、ページ全体が、再プログラムされる。
【0051】
メモリアレイ102は、多くのメモリセルを備えている。図4Aは、第2のメモリレベル220の下に配置される第1のメモリレベル218を含むモノリシックな3次元アレイ102の一部の略斜視図である。図4Aの実施形態では、各メモリレベル218、220は、クロスポイントアレイ内に複数のメモリセル200を含む。当然ながら、第1のメモリレベル218と第2のメモリレベル220との間、上方または下方に、追加の層(例えば、中間誘電体)が存在してもよいが、簡単にするために図4Aでは示されない。他のメモリアレイ構造が、メモリの追加レベルとして使用されてもよい。図4Aの実施形態では、すべてのダイオードは、p型領域をダイオードの上部または下部のどちらに有するp−i−nダイオードが使用されるかによって、上向きまたは下向きなどの同じ方向に「向く」ことで、ダイオードの製造を簡略化することもできる。メモリセル200は、メモリセル150と同じであってもよいし、異なっていてもよい。
【0052】
図4Bは、第2のメモリレベル221の下に配置される第1のメモリレベル219を含む、第2の実施形態のモノリシックな3次元アレイ102の一部の略斜視図である。図4Bのメモリアレイは、複数のメモリセル200を備えている。第1のメモリレベル219に関して、メモリセル200は、ビット線207の集合とワード線209の集合の間に存在し、ビット線207の集合およびワード線209の集合に接続される。第2のメモリレベル221に関して、メモリセル200は、ビット線210の集合とワード線209の集合の間に存在し、ビット線210の集合およびワード線209の集合に接続される。図4Bに示すように、第1のメモリレベルの上部導体は、第1のメモリレベルの上方に位置する第2のメモリレベルの下部導体として、用いることができる。さらなる情報は、その全体が本願明細書において参照により援用されている、「High-Density Three-Dimensional Memory Cell,」と題する米国特許第6,952,030号に記載されている。
【0053】
図4Bの実施形態では、あらゆる点でその全体が本願明細書において参照により援用されている、2007年3月27日に出願された「Method to Form Upward Pointing P-I-N Diodes Having Large And Uniform Current」と題する米国特許出願公開公報20070190722号で説明されるように、隣接するメモリレベル上のダイオード(または他のステアリング装置)は、反対方向に向くのが好ましい。例えば、第1のメモリレベル219のダイオードは、(例えば、ダイオードの下部にp領域を有して)矢印A1で示されるように上向きダイオードであってもよく、第2のメモリレベル221のダイオードは、(例えば、ダイオードの下部にn領域を有して)矢印A2で示されるように下向きダイオードであってもよく、あるいはその逆であってもよい。
【0054】
モノリシックな3次元メモリアレイは、複数のメモリレベルが、中間基板を用いないでウェハなどの単一の基板上に形成されるアレイである。1つのメモリレベルを形成する層は、既存のレベル(単数または複数)の層の上に直接付着または成長される。これに対して、積層メモリは、Leedyによる「Three dimensional structure memory」と題する米国特許第5,915,167号の場合のように、別々の基板上にメモリレベルを形成し、そのメモリレベルを互いに重ねて接着することによって構築されている。基板は、ボンディングの前に薄くされても、あるいはメモリレベルから取り除かれてもよいが、メモリレベルが個別の基板上に最初に形成されるので、このようなメモリは、本当のモノリシックな3次元メモリアレイではない。
【0055】
上記のとおり、図4Aおよび4Bは、モノリシック3次元メモリアレイの一部分を示す。確認できるとおり、ビット線は第1の方向に配置され、ワード線はビット線に対して垂直な第2の方向に配置されている。メモリセルの追加層を有するメモリアレイには、ビット線およびワード線の追加層がある。サポート回路(列制御回路110、行制御回路120およびシステム制御ロジック130など)が基板の表面上に配置されており、サポート回路の少なくとも一部分の上方にメモリアレイが製造されている。集積回路の様々な層を表す図5は、基板の上方に位置付けられたメモリアレイ102を示す。メモリアレイは、ビット線層BLとワード線層WLとを含む。図5は、3つのビット線層BLと2つのワード線層WLを示しているだけだが、他の実施形態では、さらなるビット線層およびワード線層が実装されうる。また、半導体メモリシステムを実装している集積回路も、サポート回路の各種構成要素どうしの間、サポート回路とビット線およびワード線との間で信号を回送する目的で使用される複数の金属層を含む。これらの金属層は、基板の表面上で実装されるサポート回路の上方とメモリアレイの下とに配置される。図5は、回送目的で使用される2つの金属層R1およびR2を示すが、他の実施形態では、金属層は、2つよりも多くても少なくてもよい。一実施例では、これらの金属層R1およびR2がタングステン(約1.5平方オーム)で形成され、比較的高い抵抗と高い静電容量との両方を有する。
【0056】
メモリシステムの各種構成要素間で信号を回送する目的で使用される1つまたは複数の金属層をメモリアレイの上方に位置付けてもよい。図5はメモリアレイの上方に位置付けられたこのような金属層を示し、最上位金属層と称される。一実施例では、最上位金属層がアルミニウムまたは銅(約0.05平方オーム)で形成され、この層は、層R1およびR2よりも小さい抵抗および静電容量を有する。金属層R1およびR2は、R1およびR2で使用する金属がR1およびR2の上にあるメモリアレイを製造するための加工ステップに耐える必要があることから、最上位金属に使用されるものと同じ材料を使用して実装されない。
【0057】
隣接する金属層間を結合するためにビアを加えてもよい。隣接しない層間を結合するためにジアを加えてもよい。ジアとは、複数層のビアのことであり、2つ以上の層を結合することができる(この場合、ジアは階段のように見える)。
【0058】
図6は、メモリシステム100を実装する目的で使用される基板300の上面図である。図6は、基板300を見下ろす上面図を示す。一実施形態では、メモリ102のサポート回路が、基板300の最上面に製造される。モノリシック3次元メモリアレイ102は、基板300の表面の上方およびサポート回路の一部分の上方に配置される。そのため、サポート回路の一部はメモリアレイ102の下に配置され、サポート回路302の一部は、モノリシック3次元メモリアレイ102の下方ではない領域にある基板300に配置される。メモリアレイ102の下にあるサポート回路は、メモリアレイ102によって塞がれるため、図6では見えない。なお、「上方」および「下方」という用語の使用は、基板に対して使用される相対的な用語である。したがって、「上方」という用語は、基板の表面に対して上方という意味で使用しており、基板の向きに対して上方ということではないので、基板を横に回転させても、メモリアレイ102が依然として基板の上方にあるという事実は変わらない。サポート回路は、列制御回路110と、行制御回路120と、システム制御ロジック130とを含む。なお、図5は、金属層R1およびR2が、メモリアレイ102より広く、基板の表面上にあり、メモリアレイ102の下方にないサポート回路を収容することを示している。
【0059】
メモリアレイ102は複数のベイに下位分割されており、各ベイは(任意で)いくつかのブロックに分割することができる。ベイの数は、多様な実装形態で異なりうる。一実施形態では、1つのベイに16個のブロックがある。ただし、他の実施形態では、異なる数のブロックを使用してもよい。
【0060】
ブロックとは、一般にデコーダ、ドライバ、センスアンプ、および入力/出力用回路によって遮断されない連続的なワード線およびビット線を有するメモリセルの連続的な群のことである。このようになっている理由は様々である。たとえば、抵抗とワード線およびビット線の静電容量とによって生じる、これらの線を流れる信号の遅延(すなわち、RC遅延)が、大型アレイでは非常に大きくなりうる。このRC遅延は、大型アレイを小型サブアレイの群に下位分割して各ワード線および/または各ビット線を短くすることによって減じうる。別の実施例として、一群のメモリセルへのアクセスに関わる電力により、所与のメモリサイクル実行中に同時にアクセスされうるメモリセルの数に上限を定めてもよい。その結果、大型メモリアレイは、同時にアクセスされるメモリセルの数を減らすために、小さなサブアレイに頻繁に下位分割される。集積回路は、1つまたはそれ以上のメモリアレイを含んでもよい。
【0061】
一実施形態では、メモリアレイ102が複数のストライプ(たとえば16本のストライプ)状に配置される。ストライプとは、アレイの一端から他端に至るメモリ素子のブロックの線形群のことである。1本のストライプは、1つのベイ、1つより多くのベイまたは1つ未満のベイを有しうる。一実施形態では、1つのベイが2本のストライプを含み、各ストライプが32個のブロックを含む。したがって、1つのベイが64個のブロックを含む。図7は、基板300の上方に配置されており、M本のストライプを含むメモリアレイ102の構成の一例を表すブロック図である。
【0062】
図8は、ストライプの一例を示す。確認できるとおり、ブロックは一端から他端まで配置されているだけである。図8は、N個のブロックを有するストライプを示す。1本のストライプにおける正確なブロック数は、特定の実装態様に依存しており、本明細書に記載されている技術で必須とされるストライプ内の特定のブロック数はない。
【0063】
図6に戻ると、メモリアレイ102のサポート回路は、列制御回路110と、行制御回路120と、システム制御ロジック130とを含みうる。一実施形態では、コントローラ134が分離基板に実装されている。ただし、他の実施形態では、コントローラ134をメモリアレイと同じ基板に実装することができる。図6に関して上記のとおり、サポート回路の一部は、メモリアレイ102下の基板300の表面に製造され、サポート回路の他の部分は、メモリアレイ102の外側にある基板300の表面に実装される。図9は、メモリアレイ102の下方および外側に実装されるサポート回路の一例を示すブロック図である。たとえば、図9は、モノリシック3次元メモリアレイ102の下方でない領域にある基板300の表面に配置されているサポート回路302を示す。図9は、メモリアレイ102の下方にある基板300の表面に配置されているサポート回路304を示す。いくつかの実施形態では、サポート回路のいくつかの部分を、3次元メモリアレイ102の様々なレベルで実装することもできる。
【0064】
図9のサポート回路302は、(少なくとも、)ページレジスタ120およびステートマシン306(システム制御ロジック130の一部)を含む。サポート回路の他の部分がサポート回路302に含まれていてもよい。一実施形態では、1論理ページ分のデータが、プログラミングで使用されるデータの最小単位である。このように、メモリは複数組のページ単位でプログラムされ、読み出される。ページレジスタ102は、読み書き用の論理ページ分のデータを格納できるレジスタを含む。ページは、複数のブロックにまたがって実装されるのが典型的である。一実施形態では、ページが、2048バイトのデータと128バイトのヘッダ情報(たとえばECCを含む)との計2176バイトを含む。ページレジスタ120は、書込み前にデータを操作(データ符号化など)するため、および書込み処理後に読み出されたデータがこれから書き込まれるデータに一致するかどうかを検証する(検証動作など)ための論理回路も備える。ページレジスタは、ホストおよびメモリアレイに対する中間記憶デバイスとして機能する。
【0065】
ステートシステム制御ロジック130(図1を参照)は、ステートマシン306と、各種電圧を提供するための回路と、他の制御回路とを含む。ステートマシン306は、データの読み書きを制御する目的で使用される。図9は、ページレジスタ120と通信するステートマシン306を示す。
【0066】
メモリアレイ102の下方にある基板300の表面に実装された制御回路304は、各種メモリストライプに対応する複数組の回路に分割される。そのため、各メモリストライプは、自らの下に、そのメモリストライプに対するサポートを提供する1組の回路を有する。たとえば、メモリストライプ0に対するサポートは、メモリストライプ0用のサポート回路を含む。なお、メモリストライプは、モノリシック3次元メモリアレイ内に複数のレベルを有する。メモリアレイ102のメモリストライプ0の下にはメモリストライプ0に対するサポートがあり、メモリストライプ1の下にはメモリストライプ1に対するサポートがあり、メモリストライプ2の下にはメモリストライプ2に対するサポートがあり、・・・メモリストライプM−1の下にはメモリストライプM−1に対するサポートがある。ステートマシン306は、メモリストライプ0に対するサポート、メモリストライプ1に対するサポート、メモリストライプ2に対するサポート、およびメモリストライプM−1に対するサポートと通信する。ページレジスタ102も、メモリストライプ0に対するサポート、メモリストライプ1に対するサポート、メモリストライプ2に対するサポート、・・・メモリストライプM−1に対するサポートのために通信する。
【0067】
図10は、ページレジスタ120のブロック図である。一実施形態において、ページレジスタ120は制御ロジック340を備えており、制御ロジック340は、ページレジスタ120を制御する目的で使用される回路(デジタルおよび/またはアナログ回路)を備えうる。制御ロジック340は、シャドウレジスタ(SR)342、データレジスタ(DR)344、およびエラーレジスタ(ER)346と通信する。制御ロジック340は、システム制御ロジック130(ステートマシン306を含む)に加え、各種サポート回路304とも通信する。シャドウレジスタ342は、データを受け取り、データをシステム制御ロジック130に提供する。他の実施形態では、シャドウレジスタ342との間で受け渡しされるデータを、コントローラ134との間で受け渡したり、ホストに直接提供したりすることができる。データレジスタ344は、サポート回路304からデータを受け取り、サポート回路304にデータを提供する。一実施形態では、シャドウレジスタ342、データレジスタ344およびエラーレジスタ346が、1ページ分のデータと同じサイズである。したがって、その1ページ分のデータが2048バイトのデータと128バイトのヘッダとを含む場合、シャドウレジスタ342、データレジスタ344およびエラーレジスタ346は、2176バイトを格納することができる。
【0068】
ページレジスタ120によって受け取られたデータは、シャドウレジスタ342に入力される。制御ロジック340は、そのデータを処理して、各種データ符号化の実行、ECC(誤り訂正コード)の追加、あるいは他の機能を実行しうる。その後このデータは、シャドウレジスタ342からデータレジスタ344へと転送される。なお、本明細書において、「転送」という用語は、転送元から転送先にコピーを提供することを含み、転送元にコピーを残すこと、あるいは転送元からコピーを削除することを含みうる。このデータは、メモリアレイ102へのプログラミングのために、データレジスタ344から、該当するメモリストライプのサポート回路304へと転送することができる。メモリアレイ102から読み出されたデータは、該当するメモリストライプの該当するサポート回路304からデータレジスタ344へと提供される。その後データレジスタ344内のデータは、様々な復号、ECCおよび検証処理を実行できるシャドウレジスタ342へと転送することができる。最終データは、シャドウレジスタ342からシステム制御ロジック130、コントローラ134、および/またはホストへと転送される。制御ロジック340は、ECCエラーの判断(いくつかの実施形態において)、書き込み検証エラーの判断、および/または他の機能を含む各種機能のうちのいずれか1つを実行するためにエラーレジスタ346を使用する。ECCは、コントローラで判断することもできる。
【0069】
図11は、1本のメモリストライプのページレジスタ120およびサポート回路420を示すブロック図である。サポート回路420は、回路304のサブセットである。たとえば、サポート回路は、図9に示すメモリストライプ0に対するサポート、メモリストライプ1に対するサポート、メモリストライプ2に対するサポート、・・・メモリストライプM−1に対するサポートのうちのいずれか1つを表しうる。一実施形態では、メモリストライプのサポート回路がサポート回路の群に分割され、各ブロックが自らの群を含む。たとえば、図11は、32個の回路群を示しており、各群がそれらのブロック(ブロック0、・・・ブロック31)のうちの1つと関連付けられている。たとえば、サポート回路群400は、ブロック0と関連付けられており、ブロック0の下で基板300の表面に実装される。サポート回路群402は、ブロック15と関連付けられており、ブロック15の下で基板300の表面に実装される。サポート回路群410は、ブロック16と関連付けられており、ブロック16の下で基板300の表面に実装される。サポート回路群412は、ブロック31と関連付けられており、ブロック31の下で基板300の表面に実装される。図11の構造は32個のブロックを含んでおり、したがって32個のサポート回路群を含むが、ページ上のスペースの制約から、図11には4個のサポート回路群だけが示されている。ただし、示されていない14個のサポート回路群を示すために、「・・・」が使用される。
【0070】
図11は、各サポート回路群(400・・・402、410・・・412)が16ビットバスPR_OUT[15:0]のうちの1ビットに接続されるように、ページレジスタ120に接続し、ストライプ全体を通過する双方向データバスPR_OUT[15:0]を示す。他の実施形態では、このバスが、16ビットより広い場合も、16ビットより狭い場合もある。各サポート回路群(400・・・402、410・・・412)は、バスPR_OUT[15:0]の1ビットに接続された1組のバッファおよびデコーダを含む。たとえば、ブロック0と関連付けられたサポート回路群400はPR_OUT[0]に接続され、ブロック1と関連付けられたサポート回路群はPR_OUT[1]に接続され、ブロック2と関連付けられたサポート回路群はPR_OUT[2]に接続され、・・・ブロック15と関連付けられたサポート回路群402はPR_OUT[15]に接続される。加えて、ブロック16と関連付けられたサポート回路群410はPR_OUT[0]に接続され、ブロック17と関連付けられたサポート回路群はPR_OUT[1]に接続され、ブロック18と関連付けられたサポート回路群はPR_OUT[2]に接続され、・・・ブロック31と関連付けられたサポート回路群412はPR_OUT[15]に接続される。
【0071】
各サポート回路群(たとえば群400)も、5個のラッチ1組を含む。ラッチの代わりに、他の記憶デバイス(たとえばフリップフロップ)を使用することもできる。これら5個のラッチは、読出しラッチRLと、書込みデータ・シャドウ・ラッチWSLと、書込みデータ・データ・ラッチと、センスアンプ有効化シャドウラッチSSLと、センスアンプ有効化データラッチSDLとを含む。読出しラッチRLは、メモリアレイから読み出された読出しデータを格納する目的で使用される。メモリアレイに格納される書込みデータはまず、書込みデータ・シャドウ・ラッチWSLに格納され、次に書込みデータ・データ・ラッチWDLに格納され、その後メモリアレイ102に書き込まれる。ページレジスタは、sセンスアンプ有効化情報をセンスアンプに送る(後述)。センスアンプ有効化情報はまず、センスアンプ有効化シャドウラッチSSLに格納され、次にシャドウ・データ・ラッチSDLに格納され、その後プログラミング処理の一部としてセンスアンプによって使用される。
【0072】
上記の機能を達成するために、バッファおよびデコーダは、読出しラッチRLからデータを受け取るための読出しラッチRLに接続される。バッファおよびデコーダは、書込みデータ・シャドウ・ラッチWSLに書込みデータを提供するために書込みデータ・シャドウ・ラッチWSLに接続され、センスアンプ有効化情報をセンスアンプ有効化シャドウラッチSSLに送るためにセンスアンプ有効化シャドウラッチSSLに接続される。書込みデータ・シャドウ・ラッチWSLは、書込みデータ・データ・ラッチに接続される。センスアンプ有効化シャドウラッチは、センスアンプ有効化データラッチに接続される。書込みデータ・データ・ラッチWDLおよびシャドウ・データ・ラッチSDLが共に接続され、該当するセンスアンプに情報を送る。
【0073】
センスアンプは、自らの読出し出力を読出しラッチRLに送る。サポート回路群400の一部であり、ブロック0の下に位置するセンスアンプは、ブロック0と関連付けられていることからセンスアンプ0と呼ばれ、サポート回路群402の一部であるセンスアンプは、ブロック15の下にあり、ブロック15のサポート回路と関連付けられているという理由で、センスアンプ15などと呼ばれる。サポート回路群(400・・・401、410・・・412)の各々は、関連付けられたセンスアンプを備える。センスアンプは、ビット線をプログラムするために適切な信号をビット線に印加する目的、およびビット線に接続された関連メモリセルによって格納された読出しデータを判断するために読出し処理中にビット線の状況を検知する目的で使用される。各センスアンプは、メモリ動作が正常に実行されたこと(MEM_OK)を示す出力によって表される。これらの信号は、1組のANDゲートによってデイジーチェーンされており、メモリ動作が正常であることをすべてのセンスアンプが出力すれば信号PR_WRT_OKがロジック1になるようになっている。この信号はページレジスタ120に送られ、正常なメモリ動作を示す。
【0074】
上記のとおり、データバスPR_OUT[15:0]は16ビットのデータバスだが、32個のサポート回路群および32個のセンスアンプがある。そのため、複数のセンスアンプ(および関連サポート回路群)がデータバスPR_OUT[15:0]のビットを共有する必要がある。上記のとおり、ブロック0のサポート回路群400およびブロック16のサポート回路群410はビットPR_OUT[0]を共有し、ブロック2のサポート回路群およびブロック17のサポート回路群はビットPR_OUT[0]を共有し、・・・ブロック15のサポート回路群402およびブロック31のサポート回路群412はビットPR_OUT[15]を共有する。メモリシステムは、信号SMI_CNT_ADRを使用して、データバス上でビットを共有している2個のブロックのうちどちらがバス上で通信しているかを示す。SMI_CNT_ADRが0に等しい場合には、ブロック0〜15がバスPR_OUT[15:0]で通信している。信号SMI_CNT_ADR=1である場合には、ブロック16〜31がデータバスPR_OUT[15:0]で通信している。なお、使用されるブロックの数は、各種実施形態の各種実施態様によって変わりうる。したがって、32ブロックより多い場合には、信号SMI_CNT_ADRが1ビットを超える必要がありうる。たとえば、1本のストライプに64個のブロックが存在すれば、信号SMI_CNT_ADRがセンスアンプの4個のサブセットのうちどれがデータバスに接続されるかを示す2ビットを有する。同様に、1本のストライプに256個のブロックがある場合には、信号SMI_CNT_ADRがセンスアンプの16個のサブセットのうちどれがデータバスに接続されるかを示す4ビット幅を有する必要がある。
【0075】
図11は、ステートマシンからストライプのサポート回路420に転送された1組の信号を示す。これらの信号は、SMI_WDXSAE、SMI_TL_WE、SMI_TL_RE、SMI_TL_RXW、SMI_TL_CPY、およびSAEを含む。信号SMI_WDXSAEは、バスPR_OUT[15:0]がデータを転送する目的で使用されているか、あるいはセンスアンプ有効化情報を転送する目的で使用されているかを判断する。バスPR_OUT[15:0]で転送されるプログラムデータは書込みデータ・シャドウ・ラッチWSL向けであり、バスPR_OUT[15:0]で通信されるセンスアンプ有効化情報はセンスアンプ有効化シャドウラッチSSL向けである。書込みデータおよびセンスアンプ有効化情報の両方を転送するのにバス上の同じビットが使用されることから、(ステートマシンからの)信号SMI_WDXSAEは、バスPR_OUT[15:0]が現在どの機能のために使用されているかを示す目的で使用される。
【0076】
信号SMI_TL_RXWは、データバスPR_OUT[15:0]がサポート回路からページレジスタ120に読出しデータを送る目的で使用されているか、あるいはページレジスタ120から該当するサポート回路に書込みデータを送る目的で使用されているかを示す目的で使用される。信号SMI_TL_WEは、書込みデータ・シャドウ・ラッチWSLのためのラッチ有効化信号として、かつ、特定のストライプの群400・・・401および410・・・412のすべてを対象とするセンスアンプ有効化シャドウラッチSSLとして使用される。信号SMI_TL_REは、ストライプ全体を対象とする読出しラッチRLのためのラッチ有効化信号である。信号SMI_TL_CPYは、書込みデータ・シャドウ・ラッチWSLおよびセンスアンプ有効化データラッチSDLから、書込みデータ・データ・ラッチWDLおよびセンスアンプ有効化データラッチSDLへそれぞれデータをコピーするためのコピー信号である。信号SAEは、書込みデータ・データ・ラッチからのデータをモノリシック3次元メモリアレイ102の該当するメモリセルにプログラムすることを、そのストリップの全センスアンプに示すセンスアンプ有効化信号である。
【0077】
図12は、図1〜図11の構成要素を使用してプログラムする処理の一実施形態を示すフローチャートである。プログラミング処理の他の実施形態を用いて、それらの構成要素を使用してデータをプログラムすることもできる。図12のステップ502では、システムが、データと、そのデータをメモリアレイ102にプログラムするためのリクエストとを受け取る。たとえば、ホストがデータをプログラムし、そのデータを提供するためのコマンドをコントローラ134に出す。そのデータはまず、ホストによって受け取られ、次にシステム制御ロジック130へと転送される。別の実施形態では、システム制御ロジック130またはコントローラ134が、そのデータがプログラムされる必要があることを判断し、必要に応じてそのデータを提示することができる。たとえば、コントローラ134が、ガベージコレクション処理、メモリ最適化処理などの一部としてプログラムされるデータをリクエストしてもよい。ステップ504では、プログラムされるデータがページレジスタ120に読み込まれる。たとえば、そのデータは、システム制御ロジック130から、コントローラ134から、あるいはホストから直接、ページレジスタ120のシャドウレジスタ342に読み込まれる。上記のとおり、一実施例では、各ストライプがデータバスPR_OUT[15:0]を含む。16本のストライプがある実施例では、256ビットのデータをサポート回路に同時に送ることができる(各ストライプが自らの専用データバスPR_OUTを有するものと仮定する)。ページレジスタが2176バイトのデータを保持しており、一度に256ビットしか転送できない場合には、ステートマシン306が、どの256ビットを選択して16本のデータバスで出力するかを判断する必要がある。上記実施例では、これら16本のストライプの各々につき1本ずつ、16本のデータバスPR_OUT[15:0]がある。図12のステップ506は、データバスPR_OUT[15:0]の各々で出力するページレジスタ内のデータの組を選択するステートマシンを含む。
【0078】
一実施形態では、メモリアレイ102内の各種メモリセルが列状に配置されており、各ブロックには複数の列がある。たとえば、1ブロックは、64列を含みうる。あるストライプが32個のブロックを含む場合、そのストライプは32x64=2048列を含む。上記のとおり、1本のストライプに対してセンスアンプは32個(各ブロックの下に1個)しかない。したがって、列デコーダ回路112(図1を参照)は、列アドレスを復号し、ステップ506でメモリセルの該当列に各センスアンプを接続する目的で使用される。一実施例では、システムが一度に1ブロックからの読出し、あるいは1ブロックへの書込みしか行わない。
【0079】
ステップ506でページレジスタからデータの組が選択されると、そのデータは各双方向データバスPR_OUT[15:0]で出力される。ステップ508で、書込みデータ・シャドウ・ラッチWSLが、バスからデータをラッチする。ページレジスタは、データバスPR_OUT[15:0]でストライプごとにデータを送った後、ストライプごとにデータバスPR_OUT[15:0]でセンスアンプ有効化情報を送る。センスアンプ有効化情報は、ステップ508の一部としてステータス・シャドウ・ラッチSSLによってラッチされる。
【0080】
ページレジスタ120がストライプの全32個のセンスアンプ向けデータを有しうる場合であっても、そのページレジスタまたはステートマシンは、そのデータの一部がメモリアレイにプログラムされるべきでないと判断した可能性がある。一実施例では、データが既にアドレス・メモリ・セル内のデータに一致していれば、そのデータを上書きしても意味がない。別の実施形態では、システムが、初回で正しくプログラムされなかったデータのサブセットだけを改めて書き込みうる。該当しうるデータを書き込みたくない他の理由は他にもある。ステータス・シャドウ・ラッチSSLに転送されるセンスアンプ有効化情報は、書込みデータ・シャドウ・ラッチWSLと書込みデータ・データ・ラッチWDLとを介して転送された対応データを書き込むかどうかを関連センスアンプに示す。
【0081】
ステップ510で、サポート回路群ごとにシャドウラッチWSLおよびSSLに格納された情報が、シャドウラッチWSLおよびSSLからデータラッチWDLおよびSDLへと転送される。なお、上記ステップは、すべてのストライプで並行して実行される。ステップ512で、ページレジスタに格納された次の組のデータ/情報用のシャドウラッチWSLおよびSSLが読み込まれる。ステップ514で、書込みデータ・データ・ラッチWDL内のデータが、該当するセンスアンプを使用して、適切にアドレス指定されたメモリセルにプログラムされる。センスアンプは、適切なセンスアンプ有効化情報を自らのセンスアンプ有効化データラッチSDLで受け取った場合に、書込みデータ・データ・ラッチWDLからデータをプログラムする。プログラミング処理が終結すると、センスアンプは、ステップ516で、メモリセルに書き込まれたばかりのデータのコピーを読出しラッチRLに提供する。一実施形態では、センスアンプが、新しい読出し処理を実際に実行して、そのデータを読み出す。別の実施形態では、書込み動作が成功すれば(WRITE_OK=1)、センスアンプが、書込みデータ・データ・ラッチから受け取ったデータを取り出してデータラッチRLに返送するだけであり、書込み動作が成功しなければ(WRITE_OK=0)、そのデータを反転させてデータラッチRLに返送する。ステップ518で、読出しデータラッチRL内のデータが、メモリストライプごとに、データバスPR_OUT[15:0]経由でページレジスタ120に返送される。ステップ520で、ページレジスタ120が、センスアンプから読み戻された結果をステートマシン306に送る。プログラムされる必要のあるデータが無くなったら(ステップ522)、図12の処理が終了する。
【0082】
プログラムされるデータ(このデータは、ステップ512の前回の繰り返しでシャドウラッチに既に読み込まれている)が他にもある場合には、図12の処理がステップ510に戻り、シャドウラッチWSLおよびSSLからデータラッチWDLおよびSDLにデータをコピーする。ステップ512に続き、次の組のデータがシャドウラッチに読み込まれ、プログラムされるデータが無くなるまで、ステップ510〜522の処理が繰り返される。なお、図12のフローチャートは、順番に行われるステップを示しているが、これらのステップの多くが、実際には並行して実行される。加えて、これらのステップを別の順序で行うこともできる。たとえば、ステップ512および514は並行して実行することができ、ステップ516および518も並行して実行することができる。
【0083】
図13は、ステップ510〜518を実行する1回の繰り返しを示すタイミング図である。図13は、信号SAE、SMI_TL_CPY、SMI_WDATAXSAE、SMI_CNT_ADR、SMI_TL_RXW、SMI_CAD[4:0]、SMI_TL_WEおよびSMI_TL_REの挙動を示す。なお、信号SMI_CAD[4:0]は、ステートマシン306からページレジスタ120および他の選択回路への信号であり、どの列のメモリセルがプログラミング対象として選択されているかを示している。一実施形態では、各ブロックに32列あり、信号SMI_CAD[4:0]は、それらの32列のうちどれがプログラミング対象として選択されているかを示している。時期T0とT1との間では、信号SMI_TL_CPYが高でパルスされ、時期T8まで低のままである。このパルスは、シャドウラッチからのデータを、ステップ510の一部としてデータラッチWDLおよびSDLにコピーさせる書込みデータ・データ・ラッチWDLおよびセンスアンプ有効化データラッチSDL向けのラッチ有効化信号である。
【0084】
時期T1からT5まで、システムは、次の組のデータ用のシャドウラッチを読み込み(ステップ512)、適切にアドレス指定されたメモリセルを書込みデータ・データ・ラッチWDLから並行してプログラムする(ステップ514)。時期T1で、SAEが高になり、該当する書込みデータ・データ・ラッチWDLからメモリアレイ102内の適切にアドレス指定されたメモリセルにデータをプログラムするためのプログラミング処理を始めることをステートマシンに示す。T1とT2との間で、信号SMI_TL_WEがパルスされる。そのパルス中、SMI_WDXSAEは高であり、書込みデータがページレジスタ120から書込みデータ・シャドウ・ラッチWSLへとデータバスPR_OUT[15:0]で転送されていることを示している。信号SMI_CNT_ADRは低に設定されており、サポート回路群400・・・402の第1のサブセットがPR_OUT[15:0]への接続のために選択されていることを示している。T1からT6までは信号SMI_TL_RXWが低であるため、バスPR_OUT[15:0]が書込みデータおよびセンスアンプ有効化情報をページレジスタ120から該当するサポート回路304へと転送する目的で使用されている。時期T2とT3との間で信号SMI_TL_WEが再びパルスされ、今度はSMI_CNT_ADRがロジック1に設定されているため、第2のサポート回路群410・・・412用の書込みデータ・データ・ラッチWDLがプログラミング用の書込みデータを受け取る。
【0085】
時期T3とT4との間で、SMI_TL_WEは、ページレジスタ120からPR_OUT[15:0]で送信されたセンスアンプ有効化情報をセンスアンプ有効化シャドウラッチにラッチさせる別のパルスを受け取る。時期T3とT4との間で、SMI_CNT_ADRが低に設定されており、第1のサポート回路群400・・・402用のセンスアンプ有効化シャドウラッチがセンスアンプ有効化情報を受け取ることを示し、SMI_WDATAX_SAEが低に設定されており、センスアンプ有効化情報がデータバスPR_OUT[15:0]で送信されていることを示している。時期T4とT5との間で、SMI_TL_WEは、第2のサポート回路群410・・・412用のセンスアンプ有効化シャドウラッチでセンスアンプ有効化情報をラッチするために、ページレジスタ120からデータバスPR_OUT[15:0]経由で別のパルスを受け取る。時期T4とT5との間では、SMI_CNT_ADRが高に設定されており、データが第2のサポート回路群410・・・412用のセンスアンプ有効化シャドウラッチでラッチされることを示している。信号SMI_WDXSAEは低に設定されており、センスアンプ有効化データがPR_OUT[15:0]で送信されていることを示している。
【0086】
T5ではSAEが低になり、書込み処理が該当するメモリセルへのデータの書込みを終了したことを示している。SAEが低に移行したことを受け、該当するセンスアンプが読出しラッチRLにデータを読み戻す。その結果、データをサポート回路304からページレジスタ120に返送するのにデータバスPR_OUTが使用されるようになり、信号SMI_TL_RXWがT6でロジック1に行き、時期T8まで高の状態を保つ。時期T6とT8との間の期間は、図12のステップ516を実行する目的で使用される。システムは、516を実行すると同時に、図のステップ518を実行する。このステップは、読出しデータをページレジスタ120に返送することを含む。ステップ516を実行するために、信号SMI_TL_REが、時期T6とT7との間で1回、そして時期T7とT8との間で2回目と、計2回パルスされる。第1のパルスではSMI_CNT_ADRが低に設定され、第2のパルスではSMI_CNT_ADRが高に設定される。このように、第1のパルスによってデータが第1のサポート回路群400・・・402用の読出しラッチRLに読み込まれ、第2のパルスによってデータが第2のサポート回路群410・・・412用の読出しラッチRLに読み込まれる。SMI_TL_REが高になった直後に、それぞれのデータがラッチRLに読み込まれ、ページレジスタ120への転送のためにPR_OUT[15:0]で利用できるようになる。
【0087】
T8で、ステップ510〜518を実行する処理が完了した。T8からは、ステップ510〜518が再び繰り返される。したがって、時期T8では、SMI_TL_CPYがシャドウラッチからデータラッチにデータを転送するための別のパルスを受け取り、処理が続行する。加えて時期T8では、列アドレスSMI_CAD[4:0]が次の列に変わる。
【0088】
上記のとおり、メモリアレイ102内のメモリセルは、各ブロックが自ら専用の列の組を有するように列状に配置されている。たとえば、各ブロックが32列のメモリセルの有しうる。メモリセルの各列は、16、32、64または他のメモリセル数を有することができる。1ページ分のデータが複数の列にまたがる。メモリシステムがある列のメモリセルをプログラムするのに必要でない特定ページ分のデータをプログラムするに当たっては、数多くの事例がある。たとえば、ページレジスタ内のデータの量が1ページ未満であれば、そのページによってアドレス指定されたメモリセルの一部はプログラムされる必要がない。たとえば、ページレジスタが1ページ分のデータの80%を格納しているだけであれば、メモリセルの20%はプログラムされる必要がない。そのページのビットの最初の80%がユーザーデータとして使用され、最後の20%のビットはユーザーデータを有しない。別の実施例では、プログラミングのために受け取られたデータの一部が既にメモリセル内のデータに一致している可能性がある。このような場合には、プログラムされるデータに一致するデータを格納するそれらのメモリセルをプログラムする必要がない。
【0089】
プログラムされるデータの連続する一続きのビットがメモリセルの列全体に格納されるデータに一致する可能性がある。その場合には、メモリセルの列全体をプログラムする必要がない。たとえば画像ファイルには、その画像の大部分が白い場合があり、白を表すデータはメモリセルに既に格納されている可能性がある。別の実施例では、メモリシステムがプログラミング後にページ全体を読み戻し、読み戻されたページがプログラムされることになっていたデータに一致することを検証する。一部のデータが一致しない(あるいはビット数が所定数より少ない)場合には、そのページが再プログラムされる。ページを再プログラムするときには、それらのページのデータがプログラムされるデータに必ず一致するので、多数の列のメモリセルをスキップできる可能性がある。1列または複数列のメモリセルのプログラミングをスキップすることにより、プログラミング処理が速やかに、かつより少ない電力で完了する。
【0090】
一部の先行システムは、1列のメモリセルのプログラミングをスキップできるようになっている。それらの先行システムでは、システムが、第1の列のメモリセルにデータをプログラムしながら、第2の列のメモリセルをスキップするべきかどうかを評価する。第1の列のメモリセルがプログラミングを完了したときにメモリセルの第2の列のメモリセルをスキップするべきでないとシステムが判断した場合には、第2の列のメモリセルがプログラムされる。システムは、第2の列のメモリセルのプログラミングをスキップするべきであると判断すると、第1の列のメモリセルが完了するまで待機する。第1の列のメモリセルが完了した後、システムは、第3の列のメモリセルをスキップするべきかどうかを評価する。第3の列のメモリセルをスキップするべきでない場合には、第3の列のメモリセルがプログラムされる。この処理が続行する。この処理の1つの欠点は、システムがある列のメモリセルをスキップするべきであると判断されると、現在の列のメモリセルがプログラミングを完了するまで、システムがアイドル状態のままになるということである。そのため、前の列のメモリセルをプログラムしながらメモリシステムが複数の列のメモリセルを評価し、スキップすることを決定できる処理が提案される。この処理は、図14のフローチャートに記載されている。
【0091】
図14のステップ560で、1ページ(またはそれ以上)分のデータと、そのページ分のデータをプログラムするためのリクエストが受け取られる。そのデータおよびリクエストは、たとえばホストからコントローラ132で受け取ることができる。あるいは、そのデータおよびリクエストを、システム制御ロジック130(ステートマシン306を含む)で受け取ることができる。ステップ562で、そのページ分のデータが、ページレジスタ120のシャドウレジスタ342に読み込まれる。ステップ564で、シャドウレジスタ342内のデータが、ページレジスタ120のデータレジスタ344に転送される。
【0092】
ステップ566で、システムは、現在データレジスタ344に存在するそのページ分のデータを格納するための対象とされるメモリセルを読み出す。なお、プログラミング処理および読出し処理の両方が、システム制御ロジック130の一部であるステートマシン306の命令で実行される。そのページ分のデータは、対象メモリセルから読み戻され、ページレジスタ120の制御ロジック340へと流れる。各ビットは、制御ロジック304によって受け取られるときに、データレジスタ344内の対応ビットと比較される。その2つのビットが一致する場合には、エラーレジスタ346内の対応ビットにゼロが格納される。2つのビットが一致しない場合には、エラーレジスタ346内の対応ビットがロジック1を格納する。メモリセルから読み出されたすべてのデータが制御ロジック304に流れ終わると、エラーレジスタ346が、プログラムされるデータと既にメモリセル内に存在するデータと比較するために、その1組の結果を格納する(ステップ570)。これらの一致するビットが再プログラムされる必要はない。メモリセル内のビットに一致しないビットのデータは、プログラムされる必要がある。その後、エラーレジスタが、該当するセンスアンプ有効化シャドウラッチSSLに読み込まれるセンスアンプ有効化情報の供給源として使用され、個々のビットのプログラミングを開始する。ステップ570は、列カウンタXをゼロに初期化することも含む。
【0093】
ステップ572で、第1の組のデータ用のシャドウラッチ(WSLおよびSSL)が、Xによってアドレス指定された列(たとえば、列0)であるCAD[X]のストライプごとに読み込まれる。上記実施例では、センスアンプ有効化(SSL)のうちの16ビットおよび16ビットのデータ(WSL)が、ステップ572の一部としてストライプごとに同時に転送される。一実施形態では、(1)16ビットの書込みデータを転送し、(2)16ビットの書込みデータを転送し、(3)16ビットのセンスアンプ有効化情報を転送し、(4)16ビットのセンスアンプ有効化情報を転送するという4つのサイクルが必要である。様々な数のセンスアンプと様々なバス幅とを有する他の実施形態では、このサイクルが異なってもよい。
【0094】
ステップ574で、すべてのストライプのシャドウラッチ(WSLおよびSSL)に保持されているデータが、データラッチ(WDLおよびSDL)にコピーされる。ステップ576で、現在アドレス指定されている特定の列向けのデータが、WDLラッチから該当するメモリセルにプログラムされる。加えて、変数Yが変数Xの値+1に設定される。この変数の用途については後で説明する。CAD[X]が最後のプログラム対象列であれば(ステップ577)、処理は完了である。そうでなければ、ステップ578で、シャドウラッチWSLおよびSSLに、(CAD[Y]によってアドレス指定された)次の列向けの書込みデータおよびセンスアンプ有効化データが読み込まれる。ステップ572では、列CAD[X]がアドレス指定された列であり、その列はステップ576の前回の繰り返しでプログラムされたということに注意されたい。変数Yは、この時点でCAD[Y]がCAD[X]の次の列をアドレス指定するように、X以上に設定される(Xが最後の列でない場合)。シャドウラッチに読み込まれたセンスアンプ有効化情報は、エラーレジスタ346から送られたものである。ステップ580で、ページレジスタ120が次の列CAD[Y]用の書込みデータを評価して、そのデータがプログラムされる必要があるかどうかを確認する。プログラムされている現在の列が列CAD[0]である実施例では、次の列が列CAD[1]である。ステップ578および580は、並行して、あるいは他方に続いて(どちらの順序でも)実行することができる。一実施形態では、ページレジスタ120が、エラーレジスタ346内のビットを参照することによって次の列をスキップするべきかどうかを評価する。その列向けのすべての対応ビットがゼロに設定されている場合には、その列にプログラムされる必要のあるデータが存在しないため、ページレジスタ120はその列をスキップできると結論付ける。
【0095】
次の列がスキップできると判断されると(ステップ582)、ステップ584で、次の列はスキップするべきであるとページレジスタ120が他の構成要素(ステートマシン306を含む)に示す。いくつかの実施形態では、シャドウラッチへのデータの転送(ステップ578)がもはや不要であることから、転送を中止できる可能性がある。転送が既に完了している可能性もある。CAD[Y]が最後のプログラム対象列であれば(ステップ585)、処理は完了である。そうでなければ、ステップ586で、変数Yが増分し、処理がステップ578に戻る。ステップ578の次の繰り返しでは、シャドウラッチに後続列CAD[Y]向けのデータおよびセンスアンプ有効化が読み込まれ、処理が上記のとおり続行する。ステップ578、580、582、584および586のループは、列をスキップしないと判断されるまで繰り返される。確認できるとおり、ページレジスタ120は、列をスキップするべきであると判断すると、現在アドレス指定された列がプログラミングを終了するのを待たずに次の列を評価する。このように、ページレジスタ120は、現在のページ分のデータがプログラムされている間に、現在のページがプログラミングを完了するのを待たずに複数の列を評価して、プログラムする列を見つけることができる。
【0096】
列をスキップするべきでないとページレジスタ120が判断した場合(ステップ582)には、ステップ588で、ページレジスタ120およびステートマシン306が、現在の列(たとえばCAD[X])がプログラミングを完了するのを待つ。現在の列CAD[X]がプログラミングを完了した後、現在の列CAD[X]用に書き込まれたページ分のデータが、ステップ590でページレジスタ120に読み戻される。ステップ592で、ステートマシン306が、他にもプログラムするデータの組があるかどうかを判断する。なければ図14の処理は完了である。プログラムするデータが他にもある場合には、変数XがYと等しくなるように設定され、処理がステップ574に戻り、上記のとおり続行する。
【0097】
図15は、ステップ574〜582の3回の繰り返し中の各種信号の挙動を示すタイミング図である。図15に示す信号は、SAE、SMI_TL_CPY、SMI_WDXSAE、SMI_CNT_ADR、SMI_TL_RXW、SMI_CAD[4:0]、SMI_TL WE、SMI_TL_RE、SMI_CAD_ARY[4:0]およびPR_SKIPを含む。信号PR_SKIPは、次の列のためのプログラミングはスキップするべきであるとページレジスタ120が判断したことを示す(図14のステップ584を参照)。信号SMI_CAD[4:0]は、現在プログラムされている列を示す。信号SMI_CAD ARY[4:0]は、スキップすると現在評価されている列を示している。したがって、SMI_CAD[4:0]は図14のCAD[X]に類似しており、SMI_CAD ARY[4:0]は図14のCAD[Y]に類似している。
【0098】
図15の時期T0で、信号SMI_TL_CPYがパルスされる。SMI_TL_CPYは、WSLおよびSSLからのデータをコピーするWDLおよびSDL向けのラッチ有効化信号であることから、これはステップ574に対応する。T1でSMI_CAD[4:0]が変わり、プログラムされるデータの新しい列アドレス(たとえばCAD1)を示す。列アドレスの変更は、図14のステップ594に類似している。T1ではまた、SAEが高に設定され、CAD[X](この場合にはCAD[1])のプログラミング進行を開始する。SAEは、T4とT5との間の時点まで高の状態を保つ。T1ではまた、SMI_CAD ARY[4:0]が変わり、次の列(本実施例ではCAD2)が評価されることを示す。SMI_CAD ARY[4:0]の変更は、ステップ576で値Yを「X+l」に等しくすることに対応する。
【0099】
時期T1の直後に、SMI_CAD ARY[4:0](CAD[Y]に類似)によってアドレス指定された列向けのシャドウラッチWSLおよびSSLが読み込まれる。そのため、時期T1の後、信号SMI_TL_WEが4回パルスされる。全4回のパルス中、信号SMI_TL_RXWが低に設定されており、書込みデータがバスPR_OUTで転送されていることを示す。SMI_TL_WEの第1のおよび第3のパルス中は、信号SMI_CNT_ADRが低に設定されており、サポート回路群400・・・402を示す。SMI_TL_WEの第2のおよび第4のパルスでは、サポート回路群410・・・412を選択するために、信号SMI_CNT_ADRが高である。SMI_TL_WEの最初の2パルス中は、SMI_WDXSAEが高であり、書込みデータがPR_OUTで転送されていることを示す。SMI_TL_WEの2番目の2パルス中は、信号SMI_WDATAXSAEが低に設定されており、センスアンプ有効化情報がページレジスタ120からセンスアンプ有効化シャドウラッチSSLにPR_OUTで転送されていることを示す。4回のパルス中、ページレジスタは、列CAD2をスキップするべきかどうかを判断するために、エラーレジスタ346内のデータを並行して評価している。本実施例では、CAD2にプログラムされるデータが既にCAD2にあるデータと同じであるとページレジスタ120が判断するため、CAD2のプログラミングはスキップすることができる。したがって、時期T2でページレジスタ120は、次の列(CAD2)をスキップするべきであることを示すために、PR_SKIPを高に設定する。PR_SKIPはステートマシン306に送られる。PR_SKIPを高に設定することは、図14のステップ584に対応する。なお、ステップ580の評価は、T1とT2との間で行われる。
【0100】
時期T3でSMI_CAD_ARY[4:0]が変わり、次の列が評価されることを示す。このような列アドレスの変更は、図14のステップ586で変数Yを増分することに類似している。列アドレスを増分したことを受け、シャドウラッチに、新しい列(CAD3)向けのデータが再び読み込まれる。その結果、ステップ578と同様、SMI_TL_WEが4回パルスされる。上記のとおり、第2および第4のパルス中はSMI_CNT_ADRが高に設定され、第1および第3のパルス中はSMI_CNT_ADRが低に設定される。最初の2パルス中はSMI_WDXSAEが高であり、第2の2パルス中はこの信号が低である。T3とT5との間で、ページレジスタ120がCAD3用のデータを評価して、プログラムされる必要があるかどうかを判断する。本実施例では、CAD3にプログラムされるデータがCAD3内のデータに一致することをエラーレジスタ346内の情報が示しているため、CAD3のプログラミングをスキップすることができるとページレジスタ120が判断する。これは、時期T4でPR_SKIPを引き上げることによって示される(ステップ584に類似)。
【0101】
時期T5でPR_SKIPが下げられ、SMI_CAD ARY[4:0]によって示されたアドレスが増分されてCAD4を示す(ステップ586に類似)。続いて、T5の直後にSMI_TL_WEの4回のパルスによって示されるとおり、シャドウラッチが読み込まれる(ステップ578に類似)。上記のとおり、第1および第3のパルス中はSMI_CNT_ADRが低であり、第2および第4のパルス中はSMI_CNT_ADRが高である。最初の2パルス中はSMI_WDXSAEが高であり、最後の2パルス中はSMI_WDXSAEが低である。T5とT6との間の期間中に、ページレジスタ120がCAD4用のデータを評価している(ステップ578を参照)。本実施例では、CAD4にプログラムされるデータがCAD4に保持されているデータに一部が一致しないということを、(エラーレジスタ346内の情報に基づいて)ページレジスタ120が判断する。たとえば、1つまたは複数のビットが異なる。そのため、PR_SKIPは低のままであり、システムは、CAD0のプログラミングが完了するのを待つ(ステップ588)。時期T6で、CAD0にプログラムされたデータが、読出しラッチRLに返送される(ステップ590)。このことは、SMI_TL_RE(RL向けのラッチ有効化信号)の2つのパルスによって明示される。SMI_TL_REの第1のパルス中は信号SMI_CNT_ADRが低であり、第2のパルス中は、各サポート回路群が該当する読出しラッチRLに送られるデータを有するように、SMI_CNT_ADRが高である。SMI_TL_REにおける2つのパルス期間中は信号SMI_TL_RXWが高に設定され、バスPR_OUT[15:0]上のデータが読出しラッチRLからページレジスタ120に向かっていることを示す。時期T8までに、すべての読出しデータがページレジスタ120によって受け取られており、データレジスタ344に格納されている。読み出されたデータは、シャドウレジスタ342に転送され、ステートマシン306および/またはコントローラ134に転送される(可能性がある)。時期T6で、(シャドウラッチWDL内にある)CAD4用のデータが、ステップ574と同様、データラッチWSLに転送される。時期T8で、現在のプログラミング対象列アドレスSMI_CAD[4:0]が増分して、その列がプログラムされることを示す。本実施例では、SMI_CAD[4:0]がCAD4に設定される。加えて、時期T8で、評価される列が増分して、SMI_CAD ARY[4:0]がCAD5に設定される。図14に記載のとおり、この処理は続行する。
【0102】
記載した実施例では、1本のストライプが、32ブロックのデータと、32個のセンスアンプと、関連するブロックに対してt32個のサポート回路群とを有する。同じ実施例において、バスPR_OUT[15:0]は16ビットを含んでいたため、32組のラッチを2サイクルで読み込む必要があった。2サイクルの読み込みが完了すると、32ビットが32個のセンスアンプによって同時にプログラムされた。
【0103】
別の実施形態では、システムが使用するセンスアンプを32個未満にして節電を図ってもよい。たとえば、システムは、32個のセンスアンプのうち、16個だけを同時に使用してもよい。このような実施例では、ある列のストライプでアドレス指定された全32ビットをプログラムするために、2回のプログラミングサイクルを実行する必要がある。その列の1週目のプログラミングサイクル中に、第1の16個のセンスアンプが自らのそれぞれのビットをプログラムし、2週目のプログラミングサイクルの間に、第2の16個のセンスアンプが自らのそれぞれのビットをプログラムする。この2つのプログラムサイクルは、センス・アンプ・サイクルと呼ばれる。本明細書において、センス・アンプ・サイクルは、SADサイクルと略記される。
【0104】
別の実施例では、システムが所与のストライプに対して8つのセンスアンプだけを同時に使用してもよい。そのため、列ごとに4つのSADサイクルが実施される。別の実施例では、システムが一度に4つのセンスアンプだけを使用することに制限できる可能性があることから、列ごとに8つのSADサイクルが存在する必要がある。他の実施形態では、様々な数のセンスアンプを使用することができ、適切な回数のSADサイクルが使用される。
【0105】
ある列向けのデータを評価してその列のプログラミングをスキップするべきかどうかを判断する際、1つまたは複数ビットのデータが既にメモリ内に格納されているデータと異なるために、その列をスキップすることができないとページレジスタ120が判断することがある。そのような場合には、対応するメモリセルに既に格納されているデータに一致するプログラム対象データの対応ビットを有するSADサイクルをスキップする目的で、ページレジスタがSADサイクルごとにデータの評価を試行することもできる。したがって、システムは、列全体をスキップできると判断すると、その列をスキップする。システムは、その列をスキップできないと判断した場合には、SADサイクルごとにデータを参照し、プログラムされる対応データがメモリセルに格納された対応データに一致する場合には、それらのSADサイクルをスキップする。図16は、このような処理を示すフローチャートである。
【0106】
図16の処理例では、各ブロックが32列を有すると仮定されるため、信号SMI_CAD[4:0]は、CAD0〜CAD31をアドレス指定する。加えて、列ごとに、SAD1、SAD2、SAD3およびSAD4という4つのSADサイクルがある。図16のステップ640で、図14のステップ560〜574の実行を含む初回の組のステップが実行される。加えて、変数bが1に初期化され、変数nは0に初期化され、SMI_CHECKが1に設定される。変数bは、現在のSADサイクルを示す目的で使用される。変数nは、現在のCADサイクルまたは列アドレスを示す目的で使用される。変数SMI_CHECKは、列(CAD)をスキップするか、あるいはSADをスキップするかを評価するかを示す目的で使用される。
【0107】
ステップ642で、システムは、現在の列の現在のSADサイクルに対するプログラム動作を実行する。図16に示すとおり、システムはCAD(n)のSAD(b)に対するプログラミングを実行する。ステップ644で、変数SMI_CHECK=1であるかどうかが判断される。真である場合には、処理がステップ660へと続行する。偽である場合には、処理がステップ680へと続行する。新しい列の先頭で、SMI_CHECKが1に設定され、列をスキップするかどうかが最初に評価される。列をスキップするかどうかの評価が、その列をスキップするべきでないことを示している場合には、SMI_CHECKが0に設定され、SADサイクルをスキップするかどうかを評価することができる。上記説明では、ここで初めて列がチェックされ、この処理が列チェックの開始であることから、SMI_CHECKが1に設定され、図16の処理がステップ660へと続行する。
【0108】
ステップ660で、変数mがn+1に設定される。ページレジスタ120は、次の列をスキップするべきかどうかを評価する。ページレジスタ120がCAD(m)を評価する。式中、m=n+1であり、nは現在の列アドレスである。上記のとおり、ステップ660は、エラーレジスタ346をチェックしているページレジスタ120によって実行される。ステップ664で、次の列CAD(m)向けの書込みデータが、データレジスタ304から該当する書込みシャドウレジスタWSLへと転送される。一実施形態では、ステップ660および664が並行して実行された。他の実施形態では、それらのステップがどちらかの順序で連続的に実行された。変数d(後述)は、1に初期化される。ページレジスタ120は、次の列をスキップするべきであると判断すると(ステップ666)、ステップ668で、次の列をスキップするべきであると他の構成要素(ステートマシン306を含む)に示す。CAD(m)が最後のプログラム対象列であれば(ステップ669)、処理が完了し、そうでなければ、変数m(列アドレス)がステップ670で増分され、処理がステップ660に戻って後続列をスキップするべきかどうかを評価する。たとえば、ステップ660でCAD1を評価しており、CAD1をスキップするべきであるとページレジスタ120が判断した場合には、処理がステップ660に戻り、ページレジスタが列CAD22をスキップするべきかどうかを評価する。ページレジスタ120は、列をスキップするべきでなくなるまで、現在の列がプログラミングを終えるのを待たずに列を評価し続ける。列をスキップするべきでないとページレジスタ120が判断すると(666)、ステップ670(ステップ666から)で変数SMI_CHECKが0にリセットされ、処理はステップ680として続行する。この時点で、次の列をスキップすることができないと判断される。
【0109】
ステップ680で、ページレジスタ120が、次のSADサイクルをスキップするかどうかを評価する。次のSADサイクルは、CAD(m)のSAD(d)である。ステップ680は、SADサイクルSAD(d)のセンスアンプと関連付けられた該当するビットのエラーレジスタ346を比較することを含む。ステップ682で、CAD(m)のSAD(d)向けのセンスアンプ有効化情報がセンスアンプ有効化シャドウラッチSSLに転送される。一実施形態では、すべてのSSLラッチがデータを受け取る。ただしそのデータは、CAD(m)のSAD(d)向けの選択されたセンスアンプ群に存在しないラッチに対してプログラミングが実行されないことを示す。一実施形態では、ステップ680および682を同時に実行することができる。他の実施形態では、それらのステップを、どちらの順序でも連続して実行することができる。
【0110】
次のSADサイクルをスキップするべきであれば(ステップ684)、ステップ695で次のSADサイクルをスキップするべきであることを、ページレジスタが他の構成要素に知らせる。いくつかの実施形態では、ステップ695が不要である。ステップ696で、CAD(m)のSAD(d)、すなわちスキップされるSADサイクルが列CAD(m)の最後のSADサイクルであるかどうかが判断される。SAD(d)が列CAD(m)の最後のSADサイクルである場合には、ステップ697で、CAD(m)が最後のプログラム対象列であるかどうかが判断される。CAD(m)が最後のプログラム対象列である場合には処理が完了し、そうでなければ、ステップ699で変数がn=m、b=lおよびSMI_CHECK=1と設定される。これは、次の列の最初のSADサイクルまで増分するという効果を有する。ステップ699の後、処理はステップ644へと続行する。ステップ696で、SAD(d)が列CAD(m)の最後のSADサイクルではないと判断されると、ステップ698で、CAD(m)の次のSADサイクルをアドレス指定するために698dが1だけ増分する。ステップ698の後、処理はステップ680へと続行し、次のSADサイクルが評価される。
【0111】
次のSADサイクルをスキップするべきでない場合には(ステップ684)、システムが、ステップ686で、プログラミング中の現在のSADサイクルがプログラミングを完了するのを待つ。ステップ690では、シャドウラッチSSLおよびWSL内のセンスアンプ有効化情報および書込みデータがデータラッチSDLおよびWDLに転送される。加えて、変数がn−m、b=d、d=d+l(b=dに設定した後)に設定される。ステップ680の前回の繰り返しで評価されたばかりのSADサイクルが、その列の最後のSADサイクルである場合には、処理がステップ694へと続行し、変数SMI_CHECKが1に設定されて、システムが次の列を検討する。ステップ680の前回の繰り返しで評価されたSADサイクルが現在の列の最後のSADサイクルでない場合には、ステップ692の処理がステップ642へと続行し、次のSADサイクルをプログラムする。ステップ694の後も、処理はステップ642へと続行し、次のSADサイクルをプログラムする。
【0112】
図17は、図16の処理の一実施態様における各種信号の挙動を示すタイミング図である。さらに具体的には、図17の信号ダイアグラムは、ステップ660〜670の1回の繰り返しと、ステップ680〜684の4回の繰り返しとを含む特定の1列の動作を示す。本実施例では、データが列CAD1のSADサイクルであるSAD4向けにプログラムされている間に、システムが、列CAD2と、列CAD2に対するその4回のSADサイクルをスキップするべきかどうかを評価している。本実施例の一部として、システムは、SAD1をスキップし、SAD2をスキップし、列CAD2向けにSAD3をプログラムすることを決定する。
【0113】
図17は、信号SAE、SMI_TL_CPY、SMI_WDXSAE、SMI_CNT_ADR、SMI_TL_RXW、SMI_CAD[4:0]、SMI_TL WE、SMI_RL_WE、SMI_CAD ARY[4:0]、PR_SKIP、SMI_CHECKおよびSMI_SAD_ARY[1:0]の挙動を示す。信号SMI_SAD_ARY[1:0]は、スキップすると評価されているSADサイクルを示している。
【0114】
図17の時期T0で、SMI_TL_CPYがパルスされ、シャドウラッチからのデータがデータラッチに(WSLおよびSSLからWDLおよびSDLに)転送されることを示す。このパルスは、これからプログラムされる現在の列に対するステップ690の動作の一部である。本実施例では、現在の列がCAD1である。ステップT1で、SAEが高に上げられ、CAD1のSAD4に対するプログラミング処理を開始する(ステップ642を参照)。T1の後、図16のステップ660が実行され、ページレジスタ120が、次の列をスキップするべきかどうかを評価する。SMI_CHECKが高であるため、ステップ660が実行された。T1の後、書込みデータをステップ664の一部としてシャドウラッチWSLに転送できるように、SMI_TL WEが2回パルスされる。本実施例では、ページレジスタ120が、次の列(SMI_CAD_ARY[4:0]が示すCAD2)をスキップするべきでないと判断する。そのため、SMI_CHECKが下げられ(ステップ670の一部)、ページレジスタ120が、CAD2のSAD1をスキップするべきかどうかを評価する。
【0115】
CAD2のSAD1を評価している間に、センスアンプ有効化情報をページレジスタ120からセンスアンプ有効化シャドウラッチSSLへと転送するために、信号SMI_TL WEが2回パルスされる(時期T2の直後)。第1のパルス中はSMI_CNT_ADRが低であり、その対の第2のパルス中はSMI_CNT_ADRが高である。本実施例では、ページレジスタ120が、SAD1をスキップするべきであると判断するため、PR_SKIPがステップ695の一部として高に設定され、ページレジスタは次にSAD2を評価する。そのため、時期T4で、SMI_SAD_ARY[1:0]がSAD2に変更される(ステップ698に類似)。
【0116】
ページレジスタは、T4の後にSAD2をスキップするべきかどうかを評価する。SAD2を評価している間に、T4から始まるSMI_TL_WE上の2つのパルスによって明示されるとおり、センスアンプ有効化情報がシャドウラッチSSLに転送される。SAD2向けのセンスアンプ有効化データが、SAD1向けのセンスアンプ有効化データを上書きする。本実施例では、ページレジスタ120がSAD2をスキップするべきであると判断するため、PR_SKIPが時期T5で高に上げられる(ステップ695)。図17はSMI_TL_WEの両パルスを示すものの、いくつかの実施形態では、PR_SKIPが断定されたときに転送が中止される。
【0117】
T6で、SMISADARY[1:0]が次のSADサイクルであるSAD3に増分し、ページレジスタ120が、SAD3のプログラミングをスキップすることができるかどうかを評価する。評価している間に、T4で始まるSMI_TL_WE上の2つのパルスによって明示されるとおり、SAD3向けのセンスアンプ有効化情報がページレジスタ120からセンスアンプ有効化シャドウラッチSSLに転送される。SAD3向けのセンスアンプ有効化情報が、SSLに格納されたSAD2向けのセンスアンプ有効化情報を上書きする。本実施例では、ページレジスタ120がSAD3のプログラミングをスキップするべきでないと判断するため、T6以降はPR_SKIPが低のままとなる。SAD3がプログラムされるべきであると判断した後、システムは、T7の直後に行われるプログラミングが完了するのを待つ。
【0118】
時期T8で、SMI_TL_CPY上のパルスが示すとおり、シャドウラッチWSLおよびSSLからのデータ(SAD3のプログラミングに使用)がデータラッチWDLおよびSDLに転送される。時期T9で、SAEが高に上げられ、CAD2のSAD3に対するプログラミング処理を開始する(図16のステップ642を参照)。T9の後、およびCAD2のSAD3をプログラムしている間に、ページレジスタ120がCAD2のSAD4をスキップするべきかどうかを評価する。並行して、時期T9以降のSMI_TL_WE上の2つのパルスが示すとおり、SAD4用のセンスアンプ有効化情報が転送される。本実施例では、ページレジスタがSAD4をスキップすると判断し、PR_SKIPはT9とT10との間で高であると断定される。
【0119】
一実施形態は、基板と、その基板の一部分の上方に配置された不揮発性記憶素子のモノリシック3次元メモリアレイと、その不揮発性記憶素子と通信する複数のセンスアンプと、そのセンスアンプと通信する複数の一時記憶デバイスと、その一時記憶デバイスと通信するページレジスタと、1つまたは複数の制御回路と、を含む。この1つまたは複数の制御回路は、ページレジスタ、一時記憶デバイスおよびセンスアンプと通信する。一時記憶デバイスは、モノリシック3次元メモリアレイの下方にある基板上に配置される。センスアンプは、モノリシック3次元メモリアレイの下方にある基板上に配置される。ページレジスタは、モノリシック3次元メモリアレイの下方ではない領域にある基板上に配置される。
【0120】
一実施形態は、基板と、その基板の上方に配置された複数の不揮発性記憶素子と、その不揮発性記憶素子と通信する複数のセンスアンプと、そのセンスアンプと通信する複数の一時記憶デバイスと、その一時記憶デバイスおよびセンスアンプと通信する1つまたは複数の制御回路と、その一時記憶デバイスおよび1つまたは複数の制御回路と通信する中間レジスタと、を含む。中間レジスタは、不揮発性記憶デバイスの下方ではない領域にある基板上に配置される。一時記憶デバイスは、不揮発性記憶素子の下方にある基板上に配置される。センスアンプは、不揮発性記憶素子の下方にある基板上に配置される。センスアンプによって不揮発性記憶素子から読み出されたデータは、一時記憶デバイスに転送され、その後1つまたは複数の制御回路に応答して中間レジスタに転送される。不揮発性記憶素子にプログラムされるデータは、その1つまたは複数の制御回路に応答して中間レジスタから一時記憶デバイスに転送される。
【0121】
一実施形態は、基板の一部分の上方に配置された不揮発性記憶素子のモノリシック3次元メモリと、不揮発性記憶素子と通信する複数のセンスアンプと、センスアンプと通信する複数の一時記憶デバイスと、一時記憶デバイスおよびセンスアンプと通信する1つまたは複数制御回路と、一時記憶デバイスおよび1つまたは複数制御回路と通信するページレジスタと、ページレジスタと一時記憶デバイスとの間の双方向データバスと、を含む。特定のセンスアンプについて、その特定のセンスアンプ向けのプログラミングデータを格納する目的で使用される一時記憶デバイスの記憶デバイスが、特定のセンスアンプ向けの読出しデータを格納する目的で使用される一時記憶デバイスの記憶デバイスと同じビットの双方向データバスを使用する。センスアンプによって不揮発性記憶素子から読み出されたデータは、一時記憶デバイスに転送され、その後1つまたは複数の制御回路に応答して、双方向データバス経由でページレジスタに転送される。不揮発性記憶素子にプログラムされるデータは、その1つまたは複数制御回路に応答して、双方向データバス経由でページレジスタから一時記憶デバイスに転送される。
【0122】
一実施形態は、データと、そのデータを格納するためのリクエストを受け取ることと、基板上にあるが不揮発性記憶素子のモノリシック3次元メモリの下方にはない中間レジスタにデータを転送すること(モノリシック3次元メモリが基板よりも上方にある場合)と、中間レジスタから、基板上にあり、かつモノリシック3次元メモリの下方にある一時記憶デバイスにデータを転送することと、一時記憶デバイスから、基板上にあり、かつモノリシック3次元メモリの下方にある複数のセンスアンプにデータを転送することと、センスアンプ内のデータに基づいて不揮発性記憶素子のサブセットをプログラムすることと、を含む。
【0123】
前述の詳細な説明は、例示および説明を目的として提示されている。本発明は、網羅的となる、あるいは本発明を開示されている正確な形態に制限することを意図していない。上記の教示に照らした多くの修正形態および変形形態が考えられる。記載した実施形態は、本発明の原理その実際的応用を最もよく説明し、当業者が様々な実施形態で、検討される特定の使用に適するように様々に修正して本発明を最も良好に利用できるように選定された。本発明の範囲が本明細書に添付される特許請求の範囲により定められることが意図される。
【特許請求の範囲】
【請求項1】
基板と、
前記基板の一部分の上方に配置された不揮発性記憶素子のモノリシック3次元メモリアレイと、
前記不揮発性記憶素子と通信する、前記モノリシック3次元メモリアレイの下方にある前記基板上に配置されている複数のセンスアンプと、
前記センスアンプと通信する、前記モノリシック3次元メモリアレイの下方にある前記基板上に配置されている複数の一時記憶デバイスと、
前記一時記憶デバイスと通信する、前記モノリシック3次元メモリアレイの下方にない領域にある前記基板上に配置されているページレジスタと、
前記ページレジスタ、前記一時記憶デバイスおよび前記センスアンプと通信する1つまたは複数制御回路と、
を備える、不揮発性記憶装置。
【請求項2】
前記ページレジスタと前記一時記憶デバイスとの間の双方向データバスをさらに備え、特定のセンスアンプについて、前記特定のセンスアンプ向けのプログラミングデータを格納する目的で使用される前記一時記憶デバイスの第1の記憶デバイスが、前記特定のセンスアンプ向けの読出しデータを格納する目的で使用される前記一時記憶デバイスの第2の記憶デバイスと同じビットの前記双方向データバス上で通信する、請求項1に記載の不揮発性記憶装置。
【請求項3】
前記一時記憶デバイスが、前記特定のセンスアンプ向けのプログラミング情報を格納する目的で使用される第3の記憶デバイスをさらに備え、前記第3の記憶デバイスが前記同じビットの前記双方向データバスを使用する、請求項2に記載の不揮発性記憶装置。
【請求項4】
前記一時記憶デバイスが、前記特定のセンスアンプ向けのプログラミングデータを格納する目的で使用される第4の記憶デバイスと、前記特定のセンスアンプ向けのプログラミング情報を格納する目的で使用される第5の記憶デバイスと、をさらに備え、
前記第2の記憶デバイスが、前記同じビットの前記双方向データバスおよび前記特定のセンスアンプと通信し、
前記第1の記憶デバイスが、前記同じビットの前記双方向データバスおよび前記第4の記憶デバイスと通信し、
前記第3の記憶デバイスが、前記同じビットの前記双方向データバスおよび前記第5の記憶デバイスと通信し、
前記第4の記憶デバイスが前記特定のセンスアンプと通信し、
前記第5の記憶デバイスが前記特定のセンスアンプと通信する、請求項3に記載の不揮発性記憶装置。
【請求項5】
前記第1の記憶デバイス、前記第2の記憶デバイス、前記第3の記憶デバイス、前記第4の記憶デバイスおよび前記第5の記憶デバイスが、前記1つまたは複数の制御回路から制御信号を受け取るラッチである、請求項4に記載の不揮発性記憶装置。
【請求項6】
前記一時記憶デバイスが、前記双方向データバスとの間でデータを回送するための復号回路を備える、請求項4または5に記載の不揮発性記憶装置。
【請求項7】
前記ページレジスタと前記一時記憶デバイスの複数の記憶デバイスと間にある双方向データバスであって、前記複数のセンスアンプが第1の組のセンスアンプを備え、前記第1の組のセンスアンプのうちの各センスアンプが前記複数の記憶デバイスの異なるサブセットと関連付けられており、前記複数の記憶デバイスの各サブセットが、そのうちの1つより多くの記憶デバイスが前記同じビットの前記双方向データバスと通信するように1ビットの前記双方向データバスと通信する双方向データバスをさらに備える、請求項1に記載の不揮発性記憶装置。
【請求項8】
前記ページレジスタと通信する複数の双方向データバスであって、前記不揮発性記憶素子が群で配置されており、不揮発性記憶素子の各群が前記センスアンプの異なるサブセットと関連付けられており、センスアンプの各サブセットが前記双方向データバスのうちの1つと関連付けられており、センスアンプの各サブセットが前記一時記憶デバイスのサブセットと通信し、前記一時記憶デバイスの各サブセットが、一時記憶デバイスの前記それぞれのサブセットと通信するセンスアンプのサブセットと関連付けられた前記双方向データバスと通信する複数の双方向データバスをさらに備える、請求項1に記載の不揮発性記憶装置。
【請求項9】
前記ページレジスタおよび前記一時記憶デバイスと通信する双方向データバスであって、前記ページレジスタが、前記3次元メモリアレイ向けの1ページ分のデータを記憶し、前記ページレジスタが、前記双方向バス経由で前記一時記憶デバイスに前記ページ分のデータの一部分を転送し、前記双方向バスがセンスアンプの数より小さい幅を有する双方向データバスをさらに備える、請求項1に記載の不揮発性記憶装置。
【請求項10】
前記不揮発性記憶素子が可逆的抵抗スイッチング素子である、請求項1〜9のいずかれ一項に記載の不揮発性記憶装置。
【請求項11】
不揮発性記憶を操作する方法であって、
データと、前記データを格納するためのリクエストを受け取ることと、
基板上にあるが、前記基板の上方にある不揮発性メモリ素子のモノリシック3次元メモリの下方にはない中間レジスタに前記データを転送することと、
前記データを、前記中間レジスタから、前記基板上にあり、かつ前記モノリシック3次元メモリの下方にある一時記憶デバイスに転送することと、
前記データを、前記一時記憶デバイスから、前記基板上にあり、かつ前記モノリシック3次元メモリの下方にある複数のセンスアンプに転送することと、
前記センスアンプ内の前記データに基づいて前記不揮発性記憶素子のサブセットをプログラムすることと、
を含む方法。
【請求項12】
データを格納するための前記リクエストおよび前記データがコントローラで受け取られ、
前記データを前記中間レジスタに転送することが、前記データを前記コントローラからページレジスタへと転送することを含み、前記コントローラが前記基板上にない、請求項11に記載の方法。
【請求項13】
前記データを前記中間レジスタから一時記憶デバイスに転送することが、前記データを、双方向データバスを経て少なくとも1回のサイクルでシャドウ記憶デバイスに早期に転送することと、続いて前記データを、前記シャドウ記憶デバイスから、前記センスアンプと通信するデータ記憶デバイスに転送することとを含む、請求項11または12に記載の方法。
【請求項14】
前記プログラミングが、前記一時記憶デバイスおよび前記双方向データバス経由で前記センスアンプから前記中間レジスタへとデータを返送することを含む、請求項13に記載の方法。
【請求項15】
前記中間レジスタが、前記3次元メモリ向けの1ページ分のデータを格納し、前記中間レジスタから前記一時記憶デバイスにデータを転送することが、前記1ページ分のデータの一部分を転送することを含む、請求項11〜14のいずかれ一項に記載の方法。
【請求項1】
基板と、
前記基板の一部分の上方に配置された不揮発性記憶素子のモノリシック3次元メモリアレイと、
前記不揮発性記憶素子と通信する、前記モノリシック3次元メモリアレイの下方にある前記基板上に配置されている複数のセンスアンプと、
前記センスアンプと通信する、前記モノリシック3次元メモリアレイの下方にある前記基板上に配置されている複数の一時記憶デバイスと、
前記一時記憶デバイスと通信する、前記モノリシック3次元メモリアレイの下方にない領域にある前記基板上に配置されているページレジスタと、
前記ページレジスタ、前記一時記憶デバイスおよび前記センスアンプと通信する1つまたは複数制御回路と、
を備える、不揮発性記憶装置。
【請求項2】
前記ページレジスタと前記一時記憶デバイスとの間の双方向データバスをさらに備え、特定のセンスアンプについて、前記特定のセンスアンプ向けのプログラミングデータを格納する目的で使用される前記一時記憶デバイスの第1の記憶デバイスが、前記特定のセンスアンプ向けの読出しデータを格納する目的で使用される前記一時記憶デバイスの第2の記憶デバイスと同じビットの前記双方向データバス上で通信する、請求項1に記載の不揮発性記憶装置。
【請求項3】
前記一時記憶デバイスが、前記特定のセンスアンプ向けのプログラミング情報を格納する目的で使用される第3の記憶デバイスをさらに備え、前記第3の記憶デバイスが前記同じビットの前記双方向データバスを使用する、請求項2に記載の不揮発性記憶装置。
【請求項4】
前記一時記憶デバイスが、前記特定のセンスアンプ向けのプログラミングデータを格納する目的で使用される第4の記憶デバイスと、前記特定のセンスアンプ向けのプログラミング情報を格納する目的で使用される第5の記憶デバイスと、をさらに備え、
前記第2の記憶デバイスが、前記同じビットの前記双方向データバスおよび前記特定のセンスアンプと通信し、
前記第1の記憶デバイスが、前記同じビットの前記双方向データバスおよび前記第4の記憶デバイスと通信し、
前記第3の記憶デバイスが、前記同じビットの前記双方向データバスおよび前記第5の記憶デバイスと通信し、
前記第4の記憶デバイスが前記特定のセンスアンプと通信し、
前記第5の記憶デバイスが前記特定のセンスアンプと通信する、請求項3に記載の不揮発性記憶装置。
【請求項5】
前記第1の記憶デバイス、前記第2の記憶デバイス、前記第3の記憶デバイス、前記第4の記憶デバイスおよび前記第5の記憶デバイスが、前記1つまたは複数の制御回路から制御信号を受け取るラッチである、請求項4に記載の不揮発性記憶装置。
【請求項6】
前記一時記憶デバイスが、前記双方向データバスとの間でデータを回送するための復号回路を備える、請求項4または5に記載の不揮発性記憶装置。
【請求項7】
前記ページレジスタと前記一時記憶デバイスの複数の記憶デバイスと間にある双方向データバスであって、前記複数のセンスアンプが第1の組のセンスアンプを備え、前記第1の組のセンスアンプのうちの各センスアンプが前記複数の記憶デバイスの異なるサブセットと関連付けられており、前記複数の記憶デバイスの各サブセットが、そのうちの1つより多くの記憶デバイスが前記同じビットの前記双方向データバスと通信するように1ビットの前記双方向データバスと通信する双方向データバスをさらに備える、請求項1に記載の不揮発性記憶装置。
【請求項8】
前記ページレジスタと通信する複数の双方向データバスであって、前記不揮発性記憶素子が群で配置されており、不揮発性記憶素子の各群が前記センスアンプの異なるサブセットと関連付けられており、センスアンプの各サブセットが前記双方向データバスのうちの1つと関連付けられており、センスアンプの各サブセットが前記一時記憶デバイスのサブセットと通信し、前記一時記憶デバイスの各サブセットが、一時記憶デバイスの前記それぞれのサブセットと通信するセンスアンプのサブセットと関連付けられた前記双方向データバスと通信する複数の双方向データバスをさらに備える、請求項1に記載の不揮発性記憶装置。
【請求項9】
前記ページレジスタおよび前記一時記憶デバイスと通信する双方向データバスであって、前記ページレジスタが、前記3次元メモリアレイ向けの1ページ分のデータを記憶し、前記ページレジスタが、前記双方向バス経由で前記一時記憶デバイスに前記ページ分のデータの一部分を転送し、前記双方向バスがセンスアンプの数より小さい幅を有する双方向データバスをさらに備える、請求項1に記載の不揮発性記憶装置。
【請求項10】
前記不揮発性記憶素子が可逆的抵抗スイッチング素子である、請求項1〜9のいずかれ一項に記載の不揮発性記憶装置。
【請求項11】
不揮発性記憶を操作する方法であって、
データと、前記データを格納するためのリクエストを受け取ることと、
基板上にあるが、前記基板の上方にある不揮発性メモリ素子のモノリシック3次元メモリの下方にはない中間レジスタに前記データを転送することと、
前記データを、前記中間レジスタから、前記基板上にあり、かつ前記モノリシック3次元メモリの下方にある一時記憶デバイスに転送することと、
前記データを、前記一時記憶デバイスから、前記基板上にあり、かつ前記モノリシック3次元メモリの下方にある複数のセンスアンプに転送することと、
前記センスアンプ内の前記データに基づいて前記不揮発性記憶素子のサブセットをプログラムすることと、
を含む方法。
【請求項12】
データを格納するための前記リクエストおよび前記データがコントローラで受け取られ、
前記データを前記中間レジスタに転送することが、前記データを前記コントローラからページレジスタへと転送することを含み、前記コントローラが前記基板上にない、請求項11に記載の方法。
【請求項13】
前記データを前記中間レジスタから一時記憶デバイスに転送することが、前記データを、双方向データバスを経て少なくとも1回のサイクルでシャドウ記憶デバイスに早期に転送することと、続いて前記データを、前記シャドウ記憶デバイスから、前記センスアンプと通信するデータ記憶デバイスに転送することとを含む、請求項11または12に記載の方法。
【請求項14】
前記プログラミングが、前記一時記憶デバイスおよび前記双方向データバス経由で前記センスアンプから前記中間レジスタへとデータを返送することを含む、請求項13に記載の方法。
【請求項15】
前記中間レジスタが、前記3次元メモリ向けの1ページ分のデータを格納し、前記中間レジスタから前記一時記憶デバイスにデータを転送することが、前記1ページ分のデータの一部分を転送することを含む、請求項11〜14のいずかれ一項に記載の方法。
【図1】
【図2】
【図3】
【図4A】
【図4B】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図2】
【図3】
【図4A】
【図4B】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【公表番号】特表2013−513903(P2013−513903A)
【公表日】平成25年4月22日(2013.4.22)
【国際特許分類】
【出願番号】特願2012−544687(P2012−544687)
【出願日】平成22年12月13日(2010.12.13)
【国際出願番号】PCT/US2010/060153
【国際公開番号】WO2011/075452
【国際公開日】平成23年6月23日(2011.6.23)
【出願人】(507318624)サンディスク スリーディー,エルエルシー (86)
【Fターム(参考)】
【公表日】平成25年4月22日(2013.4.22)
【国際特許分類】
【出願日】平成22年12月13日(2010.12.13)
【国際出願番号】PCT/US2010/060153
【国際公開番号】WO2011/075452
【国際公開日】平成23年6月23日(2011.6.23)
【出願人】(507318624)サンディスク スリーディー,エルエルシー (86)
【Fターム(参考)】
[ Back to top ]