ここで、本技術は、実施形態において、不揮発性記憶システムにおける読み出し基準レベルの較正に関する図面を参照しながら説明される。不揮発性記憶システムにおける記憶装置の基本ユニットは、メモリセルである。読み出し基準レベルは、メモリセルの状態を感知するために使用される。一実施形態では、読み出し基準レベルは、積分時間を較正することによって較正される。積分時間は、メモリセルが感知されている間に感知ノード上の電荷が変化することが可能な時間の長さである。典型的には、感知ノードは初期電圧まで充電され、次いでメモリセルに接続されて、メモリセル電流が積分時間感知ノードを放電することが可能になる。積分時間を変更(例えば、延長、短縮)することは、実際には、読み出し基準電圧の影響を変化させるために使用され得る。例えば、積分時間を変更することは、読み出し基準電圧に対するわずかな変化の均等物であり得る。
積分時間を較正することは、基準電圧自体を較正するよりもはるかに速い場合がある。これは、部分的に、較正中に印加される必要がある異なる基準電圧の数を低減することに起因する。例えば、読み出し基準電圧を較正するための1つの可能な技術は、いくつかの試験読み出し基準電圧を印加する。各読み出し基準電圧は、ワード線などの導電性要素を充電する必要があり得、それによってかなりの時間を要する。積分時間が較正される実施形態は、所与の読み出し基準電圧に異なる試験積分時間を使用し、それによって読み出し基準電圧の数を低減することができる。したがって、積分時間(複数可)を較正することは、非常に時間的に効率的である。また、電力消費を低減することができる。
いくつかの実施形態では、積分時間は、復号誤りに応答して較正される。例えば、コードワードが誤り訂正コード(ECC)エンジンを用いて正常に復号されない場合、積分時間は較正されてもよく、続いてコードワードを復号するための別の試みを行うことができる。しかしながら、積分時間は、特定の数のプログラム/消去サイクルの後など、任意の時間に較正され得る。
本発明は、多くの異なる形態で具現化され得、本明細書に記載される実施形態に限定されるものとして解釈されるべきではないことが理解される。むしろ、これらの実施形態は、本開示が完璧かつ完全であり、本発明を当業者に十分に伝えるように提供される。実際、本発明は、添付の「特許請求の範囲」によって定義される本発明の範囲及び趣旨内に含まれる、これらの実施形態の代替物、修正、及び均等物を網羅することが意図される。更に、本発明の以下の詳細な説明において、本発明の完璧な理解を提供するために、数多くの具体的な詳細が記載される。しかしながら、本発明が、そのような具体的な詳細を伴わずに実施され得ることは、当業者には明らかであろう。
図1A~図3C、図4、図5A、図5B、及び図6は、本明細書に開示される技術を実装するために使用することができる記憶システムの一例を説明する。
図1Aは、ホスト120に接続された記憶システム100(メモリシステムと呼ばれることもある)の一実施形態のブロック図である。記憶システム100は、本明細書に開示される技術を実装することができる。多くの異なるタイプの記憶システムを、本明細書に開示される技術と共に使用することができる。1つの例示的な記憶システムは、ソリッドステートドライブ(「SSD」)である。しかしながら、他のタイプの記憶システムを使用することもできる。記憶システム100は、メモリコントローラ102、データを記憶するためのメモリパッケージ104、及びローカルメモリ(例えば、DRAM/ReRAM)106を備える。メモリコントローラ102は、フロントエンドプロセッサ回路(FEP)110と、1つ以上のバックエンドプロセッサ回路(BEP)112とを備える。一実施形態では、FEP110回路は、ASIC上に実装される。一実施形態では、各BEP回路112は、別個のASIC上に実装される。BEP回路112及びFEP回路110の各々のASICは、メモリコントローラ102がチップ上のシステム(「SoC」)として製造されるように、同じ半導体上に実装される。FEP110とBEP112は両方とも、それら自体のプロセッサを含む。一実施形態では、FEP110及びBEP112は、FEP110がマスタであり、各BEP112がスレーブであるマスタスレーブ構成として働く。例えば、FEP回路110は、メモリ管理(例えば、ガベージコレクション、ウェアレベリングなど)、論理対物理アドレス変換、ホストとの通信、DRAM(ローカル揮発性メモリ)の管理、及びSSD(又は他の不揮発性記憶システム)の全体動作の管理を実行するフラッシュ変換層を実装する。BEP回路112は、FEP回路110の要求において、集積メモリアセンブリ/ダイ内のメモリ動作を管理する。いくつかの実施形態では、集積メモリアセンブリは、メモリパッケージと呼ばれる。例えば、BEP回路112は、読み出し、消去、及びプログラミングプロセスを行うことができる。加えて、BEP回路112は、バッファ管理を実行し、FEP回路110によって必要とされる特定の電圧レベルを設定し、誤り訂正(ECC)を実行し、メモリパッケージへのトグルモードインターフェースを制御することなどを行うことができる。一実施形態では、各BEP回路112は、それ自体のメモリパッケージのセットを受け持つ。メモリコントローラ102は、制御回路の一例である。
一実施形態では、複数のメモリパッケージ104が存在する。各メモリパッケージ104は、1つ以上のメモリダイを含んでもよい。一実施形態では、メモリパッケージ104内の各メモリダイは、(2次元NANDフラッシュメモリ及び/又は3次元NANDフラッシュメモリを含む)NANDフラッシュメモリを利用する。他の実施形態では、メモリパッケージ104は、他のタイプのメモリを含むことができ、例えば、メモリパッケージは、相変化メモリ(PCM)メモリを含むことができる。
メモリコントローラ102は、PCIエクスプレス(PCIe)を介してNVMエクスプレス(NVMe)を実装するインターフェース130を使用してホスト120と通信する。記憶システム100と共に動作するために、ホスト120は、ホストプロセッサ122と、ホストメモリ124と、バス128を介して通信するPCIeインターフェース126とを含む。ホストメモリ124は、ホストの物理メモリであり、DRAM、SRAM、不揮発性メモリ、又は別のタイプの記憶装置であり得る。ホスト120は、記憶システム100の外部にあり、記憶システム100とは別個である。一実施形態では、記憶システム100は、ホスト120内に埋め込まれる。
図1Bは、FEP回路110の一実施形態のブロック図である。図1Bは、ホスト120と通信しているPCIeインターフェース150と、そのPCIeインターフェースと通信しているホストプロセッサ152とを示す。ホストプロセッサ152は、実装に好適な、当該技術分野において既知である任意のタイプのプロセッサであり得る。ホストプロセッサ152は、ネットワークオンチップ(NOC)154と通信している。NOCは、典型的にはSoC内のコア間の、集積回路上の通信サブシステムである。NOCは、同期及び非同期クロックドメインにまたがるか、又はクロック制御されていない非同期論理を使用することができる。NOC技術は、ネットワーキング理論及び方法をオンチップ通信に適用し、従来のバス及びクロスバー相互接続に顕著な改善をもたらす。NOCは、他の設計と比較して、SoCの拡張性、及び複雑なSoCの電力効率を改善する。NOCのワイヤ及びリンクは、多くの信号によって共有される。NOC内の全てのリンクが異なるデータパケット上で同時に動作することができるため、高レベルの並列性が達成される。したがって、統合サブシステムの複雑性が増大し続けると、NOCは、以前の通信アーキテクチャ(例えば、専用のポイントツーポイント信号ワイヤ、共有バス、又はブリッジを有するセグメント化バス)と比較して、向上した性能(スループットなど)及び拡張性をもたらす。NOC154に接続され、NOC154と通信しているのは、メモリプロセッサ156、SRAM160、及びDRAMコントローラ162である。DRAMコントローラ162は、DRAM(例えば、DRAM106)を動作させかつそれと通信するために使用される。SRAM160は、メモリプロセッサ156によって使用されるローカルRAMメモリである。メモリプロセッサ156は、FEP回路を走らせ、様々なメモリ動作を実行するために使用される。また、NOCと通信しているのは、2つのPCIeインターフェース164及び166である。図1Bの実施形態では、メモリコントローラ102は、2つのBEP回路112を含む。したがって、2つのPCIeインターフェース164/166が存在する。各PCIeインターフェースは、BEP回路112のうちの1つと通信する。他の実施形態では、2つを超えるか又は2つ未満のBEP回路112が存在し得る。したがって、2つを超えるPCIeインターフェースが存在し得る。
図2Aは、BEP回路112の一実施形態のブロック図である。図2Aは、FEP回路110と通信する(例えば、図1BのPCIeインターフェース164及び166のうちの1つと通信する)ためのPCIeインターフェース200を示す。PCIeインターフェース200は、2つのNOC202及び204と通信している。一実施形態では、2つのNOCを、1つの大きいNOCへと組み合わせることができる。各NOC(202/204)は、SRAM(230/260)と、バッファ(232/262)と、プロセッサ(220/250)と、XORエンジン(224/254)、ECCエンジン(226/256)、及び読み出し基準較正エンジン(225/255)を介して、データ経路コントローラ(222/252)とに接続される。一実施形態では、読み出し基準較正エンジン(225/255)は、メモリセルを感知するための積分時間を較正するように構成される。
ECCエンジン226/256は、当該技術分野において既知であるように、誤り訂正を実行するために使用される。本明細書では、ECCエンジン226/256は、コントローラECCエンジンと呼ばれることもある。XORエンジン224/254は、データをXOR演算するために使用され、その結果、データは、プログラミングエラーがある場合に回復され得る様式で組み合わされ、記憶され得る。一実施形態では、XORエンジン224/254は、ECCエンジン226/256を使用して復号できないデータを回復することができる。
データ経路コントローラ222は、集積メモリアセンブリを有する4つのチャネルを介して通信するためのメモリインターフェース228に接続される。したがって、上部NOC202は、集積メモリアセンブリと通信するための4つのチャネルのためのメモリインターフェース228に関連付けられ、下部NOC204は、集積メモリアセンブリと通信するための4つの追加のチャネルのためのメモリインターフェース258に関連付けられる。一実施形態では、各メモリインターフェース228/258は、4つのトグルモードインターフェース(TMインターフェース)、4つのバッファ、及び4つのスケジューラを含む。チャネルの各々について、1つのスケジューラ、バッファ、及びTMインターフェースが存在する。プロセッサは、当該技術分野において既知である任意の標準的プロセッサであり得る。データ経路コントローラ222/252は、プロセッサ、FPGA、マイクロプロセッサ、又は他のタイプのコントローラであり得る。XORエンジン224/254、ECCエンジン226/256、及び読み出し基準電圧較正エンジン(225/255)は、ハードウェアアクセラレータとして知られる専用ハードウェア回路である。他の実施形態では、XORエンジン224/254、ECCエンジン226/256は、ソフトウェアで実装され得る。スケジューラ、バッファ、及びTMインターフェースは、ハードウェア回路である。他の実施形態では、メモリインターフェース(メモリダイと通信するための電気回路)は、図2Aに示されるものとは異なる構造であり得る。加えて、図1B及び図2Aとは異なる構造を有するコントローラも、本明細書に記載される技術と共に使用することができる。
図2Bは、メモリバス(データ線及びチップイネーブル線)322に接続された複数のメモリダイ300を含むメモリパッケージ104の一実施形態のブロック図である。メモリバス322は、BEP回路112のTMインターフェース(例えば、図2Aを参照)と通信するためのトグルモードインターフェース228に接続する。いくつかの実施形態では、メモリパッケージは、メモリバス及びTMインターフェースに接続された小型コントローラを含むことができる。メモリパッケージは、1つ以上のメモリダイを有することができる。一実施形態では、各メモリパッケージは、8つ又は16個のメモリダイを含む。しかしながら、他の数のメモリダイもまた、実装することができる。本明細書に記載する技術は、いかなる特定の数のメモリダイにも限定されない。
図3Aは、メモリダイ300の一実施形態の機能ブロック図である。図2Bの1つ以上のメモリダイ300の各々は、図3Aのメモリダイ300として実装され得る。図3Aに示す構成要素は、電気回路である。一実施形態では、各メモリダイ300は、メモリ構造326、制御回路310、読み出し/書き込み回路328、及びデコーダ324/332を含み、これらは全て電気回路である。メモリ構造326は、行デコーダ324を介してワード線によりアドレス指定可能であり、列デコーダ332を介してビット線によりアドレス指定可能である。読み出し/書き込み回路328は、SB1、SB2、...、SBp(感知回路)を含む複数の感知ブロック340を含み、複数のメモリセル内のデータの1ページ(又は複数のページ)が並列に読み出し又はプログラムされることを可能にする。一実施形態では、各感知ブロックは、感知増幅器と、ビット線に接続された1セットのラッチと、を含む。ラッチは、書き込まれるデータ及び/又は読み取られたデータを記憶する。感知ブロックは、ビット線ドライバを含む。
コマンド及びデータは、メモリコントローラインターフェース315(「通信インターフェース」とも呼ばれる)を介してコントローラ102とメモリダイ300との間で転送される。メモリコントローラインターフェース315は、メモリコントローラ102と通信するための電気インターフェースである。メモリコントローラインターフェース315の例としては、トグルモードインターフェース及びオープンNANDフラッシュインターフェース(ONFI)が挙げられる。他のI/Oインターフェースも使用され得る。例えば、メモリコントローラインターフェース315は、メモリコントローラ102用のメモリインターフェース228/258のトグルモードインターフェースに接続するトグルモードインターフェースを実装してもよい。一実施形態では、メモリコントローラインターフェース315は、通信チャネル322(本明細書ではデータバスとも呼ぶ)に接続する入力及び/又は出力(I/O)ピンのセットを含む。一実施形態では、通信チャネル322は、トグルモードインターフェースの一部としてメモリコントローラ102に接続する。
制御回路310は、読み出し/書き込み回路328と協働して、メモリ構造326上でメモリ動作(例えば、書き込み、読み出し、消去、及びその他)を実行する。一実施形態では、制御回路310は、状態機械312と、オンチップアドレスデコーダ314と、電力制御モジュール316と、メモリコントローラインターフェース315と、記憶領域318と、を含む。状態機械312は、メモリ動作のダイレベル制御を提供する。一実施形態では、状態機械312は、ソフトウェアによってプログラム可能である。他の実施形態では、状態機械312は、ソフトウェアを使用せず、ハードウェア(例えば電気回路)内に完全に実装される。いくつかの実施形態では、状態機械312をマイクロコントローラ又はマイクロプロセッサに置き換えることができる。一実施形態では、制御回路310は、レジスタ、ROMヒューズ、並びにベース電圧、積分時間、及び他のパラメータなどのデフォルト値を記憶するための他の記憶デバイスなどのバッファを含む。デフォルト値及び他のパラメータは、メモリ構造326の領域(例えば、構造パラメータ記憶域326a)に記憶され得る。これらのデフォルト値は、時々更新されてもよい。いくつかの実施形態では、積分時間の値は、時々較正される。
オンチップアドレスデコーダ314は、コントローラ102によって使用されるアドレスと、デコーダ324及び332によって使用されるハードウェアアドレスとのアドレスインターフェースを提供する。電力制御モジュール316は、メモリ動作中にワード線及びビット線に供給される電力及び電圧を制御する。電力制御モジュール316は、電圧を生成するための電荷ポンプを含み得る。
記憶領域318は、メモリ構造326を動作させるためのパラメータを記憶するために使用されてもよい。記憶領域318は、揮発性又は不揮発性メモリを含んでもよい。いくつかの実施形態では、パラメータは、読み出し基準電圧を含む。パラメータはまた、読み出し基準電圧の積分時間を含んでもよい。メモリ構造326は、記憶領域326aを有し、記憶領域326aはまた、メモリ構造326を動作させるためのパラメータのコピーを含んでもよい。いくつかの実施形態では、パラメータは、メモリダイ300が電源オンされたとき、記憶領域326aから記憶領域318にコピーされる。
本明細書の目的のために、制御回路310は、単独で又は読み出し/書き込み回路328及びデコーダ324/332との組み合わせで、メモリ構造326に接続された1つ以上の制御回路を備える。1つ以上の制御回路は、フローチャートにおいて以下に記載される機能を実行する電気回路である。他の実施形態では、1つ以上の制御回路は、フローチャートにおいて以下に記載される機能を実行する、ソフトウェア(例えば、ファームウェア)と組み合わせた電気回路であるコントローラ102(又は他のコントローラ)のみからなり得る。一実施形態では、1つ以上の制御回路はコントローラであり、コントローラは、ハードウェアを使用しない電気回路である。別の代替例では、1つ以上の制御回路は、フローチャートにおいて以下に記載される機能を実行する、コントローラ102及び制御回路310を備える。別の実施形態では、1つ以上の制御回路は、単独で又はコントローラ102との組み合わせで、状態機械312(及び/又はマイクロコントローラ及び/又はマイクロプロセッサ)を備える。別の代替例では、1つ以上の制御回路は、フローチャートにおいて以下に記載される機能を実行する、コントローラ102、制御回路310、読み出し/書き込み回路328、及びデコーダ324/332を備える。他の実施形態では、1つ以上の制御回路は、不揮発性メモリを動作させる1つ以上の電気回路を備える。
一実施形態では、メモリ構造326は、ウェハなど単一基板上に複数のメモリレベルが形成される不揮発性メモリセルのモノリシック3次元メモリアレイを備える。メモリ構造は、シリコン(又は他のタイプの)基板上に配置された活性領域を有する、1つ以上の物理レベルのメモリセルアレイにモノリシックに形成される、任意のタイプの不揮発性メモリを備え得る。一例では、メモリ構造326の不揮発性メモリセルは、例えば米国特許第9,721,662号に記載されているような電荷トラップ材料を有する垂直NANDストリングを備え、その全体が参照により本明細書に組み込まれる。別の実施形態では、メモリ構造326は、不揮発性メモリセルの2次元メモリアレイを備える。一例では、不揮発性メモリセルは、例えば米国特許第9,082,502号に記載されているような浮動ゲートを利用するNANDフラッシュメモリセルであり、その全体が参照により本明細書に組み込まれる。他のタイプのメモリセル(例えば、NOR型フラッシュメモリ)も使用することができる。
メモリ構造326に含まれるメモリアレイアーキテクチャ又はメモリセルの正確なタイプは、上記の例に限定されない。多くの異なるタイプのメモリアレイアーキテクチャ又はメモリセル技術を使用して、メモリ構造326を形成することができる。本明細書で提案される新たに特許請求される実施形態の目的には、特定の不揮発性メモリ技術は必要とされない。メモリ構造326のメモリセルに好適な技術の他の例としては、ReRAMメモリ、磁気抵抗メモリ(例えば、MRAM、スピントランスファートルクMRAM、スピン軌道トルクMRAM)、相変化メモリ(例えばPCM)などが挙げられる。メモリ構造326のアーキテクチャに好適な技術の例としては、2次元アレイ、3次元アレイ、クロスポイントアレイ、積層型2次元アレイ、垂直ビット線アレイなどが挙げられる。
ReRAM又はPCMRAM、クロスポイントメモリの一例としては、X線及びY線(例えば、ワード線及びビット線)によってアクセスされるクロスポイントアレイに配置された可逆抵抗スイッチング素子が挙げられる。別の実施形態では、メモリセルは、導電性ブリッジメモリ素子を含み得る。導電性ブリッジメモリ素子はまた、プログラム可能なメタライゼーションセルと呼ばれ得る。導電性ブリッジメモリ素子は、固体電解質内のイオンの物理的再配置に基づく状態変化素子として使用され得る。場合によっては、導電性ブリッジメモリ素子は、2つの電極間に固体電解質薄膜を有する、2つの固体金属電極を含んでもよく、一方は、比較的不活性であり(例えば、タングステン)、他方は、他の電気化学的に活性である(例えば、銀又は銅)。温度が上昇すると、イオンの移動度も増加し、導電性ブリッジメモリセルのプログラミング閾値が低下する。したがって、導電性ブリッジメモリ素子は、温度に対して広範囲のプログラミング閾値を有し得る。
磁気抵抗メモリ(MRAM)は、磁気記憶素子によってデータを記憶する。素子は、各々が薄い絶縁層によって分離された磁化を保持することができる、2つの強磁性プレートから形成される。2つのプレートのうちの1つは、特定の極性に設定された永久磁石である。他方のプレートの磁化は、メモリを記憶するために外場の磁化と一致するように変更することができる。記憶デバイスは、このようなメモリセルのグリッドから構築される。プログラミングのための一実施形態では、各メモリセルは、互いに直角に、セルに平行に、セルの1つ上及び1つ下に配置された一対の書き込み線の間にある。電流がそれらを通過すると、誘導磁場が生成される。
相変化メモリ(PCM)は、カルコゲナイドガラス特有の挙動を利用する。一実施形態は、Ge2Sb2Te5合金を使用して、相変化材料を電気加熱することによって相変化を達成する。複数回のプログラミングは、異なる振幅及び/又は長さの電気パルスであって、異なる抵抗値の相変化材料をもたらす。
当業者であれば、本明細書に記載されるこの技術は単一の特定のメモリ構造に限定されず、本明細書に記載され、当業者によって理解されるように、技術の趣旨及び範囲内で、多くの関連するメモリ構造をカバーすることを、理解するであろう。
図3Bは、集積メモリアセンブリ306の一実施形態の機能ブロック図を示す。集積メモリアセンブリ306は、記憶システム100内のメモリパッケージ104において使用されてもよい。一実施形態では、集積メモリアセンブリ306は、2種類の半導体ダイ(又はより簡潔に「ダイ」)を含む。メモリ構造ダイ302は、メモリ構造326を含む。メモリ構造326は、不揮発性メモリセルを含んでもよい。制御ダイ304は、制御回路310を含む。いくつかの実施形態では、制御ダイ304は、メモリ構造ダイ302内のメモリ構造326に接続するように構成される。例えば、制御回路310は、メモリ構造ダイ302内のメモリ構造326内の不揮発性メモリセルに接続されるように構成される。いくつかの実施形態では、メモリ構造ダイ302及び制御ダイ304は、一緒に接合される。制御回路310は、状態機械312、アドレスデコーダ314、電力制御回路316、メモリコントローラインターフェース315、記憶領域318、及びECCエンジン330を含む。記憶領域は、読み出し基準電圧、並びに読み出し基準電圧の積分時間などのパラメータを記憶してもよい。いくつかの実施形態では、制御回路310は、本明細書に開示されるように、積分時間を較正するように構成される。制御回路310はまた、読み出し/書き込み回路328を含む。別の実施形態では、読み出し/書き込み回路328の一部は、制御ダイ304上に配置され、読み出し/書き込み回路328の一部は、メモリ構造ダイ302上に配置される。本明細書で使用される装置という用語は、メモリダイ300、制御ダイ304、メモリパッケージ104、記憶デバイス100、メモリコントローラ102、又は記憶デバイス100を含むホストシステム120を含み得るが、これらに限定されない。
誤り訂正コード(ECC)エンジン330は、誤り訂正コードワードを復号するように構成される。本明細書では、ECCエンジン330は、オンダイECCエンジンと呼ばれることもある。一実施形態では、オンダイECCエンジン330は、メモリコントローラ102からのデータビットを、データビット及びパリティビットを含むコードワードに符号化するように構成される。制御回路は、メモリ構造326にコードワードを記憶する。一実施形態では、オンダイECCエンジン330は、メモリ構造326から読み戻されたコードワードを復号するように構成される。いくつかの実施形態では、オンダイECCエンジン330は、メモリ構造326内のメモリセルを読み出すための積分時間を較正するように構成される。
制御ダイ304の制御回路310内の構成要素のどんなサブセットも、制御回路と見なすことができる。別の代替例では、制御回路は、フローチャートにおいて以下に記載される機能を実行する、コントローラ102と、制御ダイ304の制御回路310とを備える。制御回路は、ハードウェアのみ、又はハードウェアとソフトウェア(ファームウェアを含む)との組み合わせを含むことができる。例えば、ファームウェアによってプログラムされたコントローラは、制御回路の一例である。制御回路は、プロセッサ、プログラマブルゲートアレイ(PGA)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、集積回路、又は他のタイプの回路を含むことができる。
経路352は、制御回路310内の1つ以上の構成要素と、メモリ構造ダイ302上のメモリ構造との間の経路である。経路は、信号(例えば、電圧、電流)を提供又は受信するために使用され得る。経路は、導電性経路を含む。経路は、ボンドパッド、金属相互接続、ビア、トランジスタ、導電性材料、及び電気信号を転送又は搬送し得る他の材料のうちの1つ以上を含み得るが、これらに限定されない。経路は、メモリ構造326内で読み出されるメモリセルに接続された選択されたワード線に、電力制御モジュール316から読み出し基準電圧を提供するために使用されてもよい。
一実施形態では、集積メモリモジュール306は、通信チャネル322(本明細書ではデータバスとも呼ぶ)に接続する入力及び/又は出力(I/O)ピンのセットを含む。通信チャネル322は、一般性のために集積メモリアセンブリ306に接続されているものとして示されている。通信チャネル322は、ダイ302及び/又は304のいずれか又は両方に接続してもよい。一実施形態では、通信チャネル322は、メモリコントローラ102を制御ダイ304に直接接続する。
図3Cは、制御ダイ304の読み出し/書き込み回路328及びECCエンジン330の一実施形態のブロック図である。読み出し/書き込み回路328は、感知増幅器350及びラッチ360を有する。ラッチ360は、データラッチ360a及びパリティラッチ360bを含んでもよい。一実施形態では、データラッチ360aは、コードワードのデータビットを記憶し、パリティラッチは、コードワードのパリティビットを記憶する。データビット及びパリティビットに対して特定のラッチが存在することは必要とされない。図3Cは、データラッチ360(1)、360(2)、360(3)、360(4)の4セットを示している。各セットは、異なるページのコードワードを記憶するために使用されてもよい。メモリセル毎に4ビットが記憶される実施形態では、4ページがメモリセルのセットに記憶される。4ページは、下部ページ(LP)、下部中央ページ(LMP)、上部中央ページ(UMP)、及び上部ページ(UP)と呼ばれることもある。別の実施形態では、感知増幅器350はメモリ構造ダイ302上にあるが、ラッチ360は制御ダイ304上にある。
オンダイECCエンジン330は、メモリコントローラ102から受信されたデータビットを符号化することができる。一実施形態では、オンダイECCエンジン330は、データビット及びパリティビットをそれぞれ含むコードワードを形成する。一実施形態では、メモリコントローラ102は、コードワードを制御ダイ304に提供する。制御回路310は、メモリ構造326内の不揮発性メモリセルにコードワードを記憶する。メモリコントローラ102からのデータを読み出す要求に応じて、制御回路310は、メモリ構造326からコードワードを読み出す。オンダイECCエンジン330はまた、メモリ構造326から読み出されたコードワードを復号及び誤り訂正することもできる。一部の実施形態では、ECCエンジン330は、記憶されているデータの各ユニット(例えば、ページ)についてパリティビットを計算する。パリティビット(誤り訂正コードとも呼ばれる)は、データのユニット(例えば、ページ)と共に記憶され得る。データのユニットとその関連パリティビットとの組み合わせは、コードワードと呼ばれる。一実施形態では、パリティビットは、データのユニット(例えば、ページ)から離れて記憶される。
オンダイECCエンジン330は、シンドローム計算論理370、エンコーダ380、デコーダ390、及び読み出し基準較正385を含む。エンコーダ380は、リードソロモンエンコーダ、ボーズチョードリオッケンジェム(BCH)エンコーダ、低密度パリティチェック(LDPC)エンコーダ、ターボコードエンコーダ、1つ以上の他のECC符号化方式を符号化するように構成されているエンコーダ、又はこれらの任意の組み合わせなどのECC方式を使用してデータを符号化するように構成される。エンコーダ380は、データビット382及びパリティビット384を含むコードワードを形成してもよい。データビットは、メモリコントローラ102によって提供され得る。
一実施形態では、データビット382はデータラッチ360aに記憶され、パリティビット384はパリティラッチ360bに記憶される。ラッチ360内のビットに基づいて、感知増幅器350は、メモリセルがプログラムされているときにメモリ構造326内のビット線電圧を制御することができる。このようにして、メモリ構造326内のメモリセルにコードワードをプログラムすることができる。プログラミングのために選択されたメモリセルにプログラム電圧を印加するように、他の電圧がメモリ構造326に印加されてもよいことが理解されるであろう。
デコーダ390は、メモリ構造ダイ302に記憶されたコードワードを復号するように構成される。一実施形態では、感知増幅器350は、コードワードを読み出すためにメモリ構造326内のビット線を感知する。感知増幅器350は、読み出しコードワードをラッチ360に記憶してもよい。デコーダ390は、コードワード内の誤りを検出し、訂正することができる。一実施形態では、デコーダ390は、メモリコントローラ102上のデコーダと比較して、比較的低電力デコーダである。一実施形態では、メモリコントローラ102上のデコーダは、デコーダ390によって典型的に訂正され得るよりも、コードワード内のより多くのビット誤りを訂正することができる。したがって、デコーダ390は、電力対誤り訂正能力のトレードオフを提供することができる。例えば、デコーダ390は、電力消費に関して非常に効率的であり得るが、コードワード内の多数の誤りを訂正することができない場合がある。
一実施形態では、デコーダ390は、ハードビットデコーダを実装する。一実施形態では、デコーダ390は、ソフトビットデコーダを実装する。デコーダ390は、ハードビットデコーダとソフトビットデコーダの両方を実装してもよい。例えば、制御ダイ304は、最初に、ハードビットデコーダを用いてコードワードを復号することを試みることができる。それが失敗した場合、制御ダイ304は、ソフトビットデコーダを使用して復号を試みることができる。
いくつかの実施形態では、デコーダ390は、ビット(又は変数)ノード及びチェックノードを有するスパース2部グラフに基づく。デコーダ390は、ビットノードとチェックノードとの間でメッセージを渡し得る。ビットノードとチェックノードとの間でメッセージを渡すことは、いくつかの実施形態では、メッセージパッシング計算を実行することによって達成される。メッセージパッシング計算は、確率伝搬法に基づき得る。
シンドローム計算論理370は、コードワードのシンドローム重みを判定することができる。シンドローム重みは、不適合であるパリティチェック方程式の数を指す。パリティチェック方程式は、図3D及び図3Eに関連してより詳細に論じられる。コードワードの初期シンドローム重みは、そのコードワードのビット誤り率(BER)と相関し得る。したがって、制御ダイ304は、初期シンドローム重みに基づいてコードワードのBERを推定することができる。一実施形態では、シンドローム計算論理370は、ハードウェアで実装される。シンドローム重みは、コードワードを完全に復号することなく判定することができる。したがって、初期シンドローム重みは、コードワードを復号する場合より少ない時間及びより少ない電力で計算することができる。いくつかの実施形態では、制御ダイ304は、初期シンドローム重みに基づいて管理決定を行う。例えば、制御ダイ304は、シンドローム重みに基づいてソフトビット基準電圧を較正することができる。一実施形態では、制御ダイ304は、BERに基づいてソフトビット基準電圧を較正する。
読み出し基準較正385は、メモリセルを読み出すための積分時間を較正するように構成される。読み出し基準較正385は、新たな積分時間を判定するために、1つ以上の異なる技術を使用してもよい。制御ダイ304が(多くの場合)新たな積分時間を判定することにより、メモリコントローラ102は、そのようなタスクによって実質的により煩わされなくなる。
上述したように、いくつかの実施形態では、オンダイECCエンジン330は、スパースパリティチェック行列を使用する。コントローラ102上のECC226/256もスパースパリティチェック行列を使用し得ることに留意されたい。図3Dは、(スパース2部グラフとして表すこともできる)スパースパリティチェック行列Hの一例を示す。行列は、M行及びK+M列を含み、これは、長さN=K+Mの各コードワードにおけるK個の情報ビット及びM個のパリティビットに対応している。更に、パリティビットは、M個のパリティチェック方程式が満たされるように定義され、行列の各行はパリティチェック方程式を表す。
図3Eは、図3Dのスパースパリティチェック行列に対応するスパース2部グラフ392を示す。具体的には、コードは、N個のビットノード394のセットV(この例ではN=13)、M個のチェックノード396のセットC(この例ではM=10)、及びビットノード394をチェックノード396に接続するエッジ398のセットE(この例ではE=38)を備えたスパース2部グラフG=(V、C、E)によって定義することができる。ビットノードはコードワードビットに対応し、チェックノードはビットに対するパリチェック制約に対応する。ビットノード394は、エッジ398によって、それが関与するチェックノード396に接続される。
復号中、デコーダ390の一実施形態は、パリティチェックを満たすことを試みる。この例では、チェックノードcn1~cn10によって示されるように、10個のパリティチェックが存在する。cn1での第1のパリティチェックは、
であるかどうかを判定し、
は、排他的or(XOR)論理演算を示す。このチェックは、変数ノードv2、v4、v11、及びv13に対応するビット内に偶数個の「1」が存在する場合に満たされる。このチェックは、変数ノードv2、v4、v11、及びv13からの矢印が、2部グラフ内のチェックノードcn1に接続されているという事実によって示される。cn2での第2のパリティチェックは、
であるかどうかを判定し、cn3での第3のパリティチェックは、
であるかどうかを判定し、cn4での第4のパリティチェックは、
であるかどうかを判定し、cn5での第5のパリティチェックは、
であるかどうかを判定し、cn6での第6のパリティチェックは、
であるかどうかを判定し、cn7での第7のパリティチェックは、
であるかどうかを判定し、cn8での第8のパリティチェックは、
であるかどうかを判定し、cn9での第9のパリティチェックは、
であるかどうかかを判定し、cn10での第10のパリティチェックは、
であるかどうかを判定する。
一実施形態では、デコーダ390は、反復メッセージパッシング復号アルゴリズムを伴う反復確率復号プロセスを使用する。これらのアルゴリズムは、コードを表す下にある2部グラフのエッジを介してビットノードとチェックノードとの間でメッセージを交換することによって動作する。
デコーダ390は、(メモリ構造326から読み出されたコンテンツに基づいて)コードワードビットの初期推定値を提供され得る。これらの初期推定値は、有効なコードワードとしてビットが満たされるべきであるパリティックチェック制約を課すことによって改良及び改善され得る。これは、グラフエッジに沿って渡されるメッセージを使用して、コードワードビットを表すビットノードと、コードワードビットに対するパリチェック制約を表すチェックノードとの間で情報を交換することによって行われ得る。
図4は、感知ブロック340の一実施形態を示すブロック図である。感知ブロックは、読み出し/書き込み回路328の一部である。個々の感知ブロック340は、感知回路又は感知増幅器350(1)~350(4)と呼ばれる1つ以上のコア部分と、管理回路480と呼ばれる共通部分とに区画化されてもよい。一実施形態では、各ビット線/NANDストリングのための別個の感知回路と、複数の、例えば、4つ又は8つの感知回路のセットのための1つの共通の管理回路480とが存在する。グループ内の感知回路の各々は、データバス454を介して関連する管理回路と通信する。したがって、記憶素子(メモリセル)のセットの感知回路と通信する1つ以上の管理回路が存在する。
一例として、感知増幅器350(1)は、接続されたビット線内の伝導電流が所定の閾値レベルを上回るか下回るかを判定することによって感知を実行する感知回路460を備える。感知は、読み出し又は検証動作において発生し得る。感知回路はまた、プログラム動作におけるプログラム電圧の印加中にビット線電圧を供給する。他の回路(例えば、状態機械312の制御下の電力制御316)は、読み出し又はプログラム中にワード線への電圧の印加を制御し得ることに留意されたい。したがって、状態機械312は、ワード線への読み出し基準電圧(並びに他の電圧)のタイミングを制御するために、電力制御316を制御してもよい。
感知回路460は、Vblセレクタ462、感知ノード464、比較回路466、及びトリップラッチ468を含み得る。プログラム電圧の印加中、Vblセレクタ462は、プログラムイネーブル電圧(例えば、V_pgm_enable)又はプログラム禁止電圧(例えば、Vbl_inh)を、メモリセルに接続されたビット線に渡すことができる。プログラム禁止電圧は、プログラムされないメモリセルに結合されたビット線及び/又はプログラミングプロセスの実行を通じてそれぞれの目標閾値電圧に到達したメモリセルを有するビット線に印加される。これらは、「非選択ビット線」と呼ばれ得る。プログラム禁止電圧が非選択ビット線に印加されると、一実施形態では、ビット線はNANDチャネルから切断される。したがって、一実施形態では、プログラム禁止電圧は、NANDチャネルに渡されない。昇圧電圧が非選択ワード線に印加されて、NANDチャネルの電位が上昇し、それにより、その制御ゲートにおいてプログラム電圧を受信するメモリセルのプログラミングが禁止される。
トランジスタ470(例えば、nMOS)は、トランジスタの制御ゲート電圧を十分に高く、例えば、Vblセレクタから渡されたVblよりも高く設定することによって、Vblセレクタ462からVblを渡すためのパスゲートとして構成され得る。例えば、セレクタ472は、電源電圧Vdd、例えば、3~4Vをトランジスタ470の制御ゲートに渡すことができる。
感知増幅器350(1)は、ビット線に電圧が印加されるタイミングを制御するように構成される。読み出し及び検証動作などの感知動作中、ビット線電圧は、セレクタ472が渡された電圧に基づいてトランジスタ470によって設定される。ビット線電圧は、トランジスタの制御ゲート電圧からそのVt(例えば、3V)を引いたものとほぼ等しい。例えば、Vbl+Vtがセレクタ472によって渡される場合、ビット線電圧はVblとなる。これは、ソース線が0Vにあると仮定する。トランジスタ470は、制御ゲート電圧に従ってビット線電圧をクランプし、パスゲートではなくソースフォロワとして作用する。Vblセレクタ462は、トランジスタ470上の制御ゲート電圧よりも高いVddなどの比較的高い電圧を渡して、ソースフォロワモードを提供することができる。感知中、トランジスタ470は、このようにしてビット線を充電する。
1つのアプローチでは、各感知増幅器のセレクタ472は、Vbl又はVddを渡すために、他の感知増幅器のセレクタとは別個に制御することができる。各感知増幅器のVblセレクタ462も、他の感知増幅器のVblセレクタとは別個に制御することができる。
感知中、感知ノード464は、Vsense_init=3Vなどの初期電圧まで充電される。感知ノードは次に、トランジスタ470を介してビット線に接続され、感知ノードの減衰量は、メモリセルが導電性状態にあるか非導電性状態にあるかどうかを判定するために使用される。一実施形態では、ビット線内を流れる電流が感知ノード(例えば、感知キャパシタ)を放電する。感知ノードが減衰することができる時間の長さは、本明細書では「積分時間」と呼ばれることがある。比較回路466は、感知時間において感知ノード電圧をトリップ電圧と比較するために使用される。感知ノード電圧がトリップ電圧Vtripを下回って減衰する場合、メモリセルは導電性状態にあり、そのVtは検証信号の電圧以下である。感知ノード電圧がVtripを下回って減衰しない場合、メモリセルは非導電性状態にあり、そのVtは検証信号の電圧を上回る。感知増幅器350(1)は、メモリセルが導電性状態であるか又は非導電性状態であるかに基づいて比較回路466によって設定されるトリップラッチ468を含む。トリップラッチ内のデータは、プロセッサ482によって読み出されるビットであり得る。
メモリセルが感知ノードに接続されたとき、感知ノードにおける電流は、メモリセル電流と実質的に同じであり得る。式1は、微分形式で容量性電流を記述する。式2は、積分形式で容量性電流を記述する。
式1及び式2におけるキャパシタンス(C)は、感知ノード464のキャパシタンスである。積分時間[0,T]は式2に表されている。したがって、積分時間は、メモリセル電流が感知ノードを放電する時間である。感知ノードにおける初期電圧は、式2のv_0である。感知ノードから流れる電流はメモリセル電流と実質的に同じであるため、式1又は式2のiは、メモリセル電流と実質的に同じである。換言すれば、メモリセル電流は、積分時間[0,T]の間、感知ノードを放電する。メモリセル電流は、この例では感知ノード電圧を放電するが、メモリセル電流を使用して感知ノードを充電することができる。
積分時間を変更(例えば、延長、短縮)することを使用して、実際には、読み出し基準電圧の影響を変化させるために使用できる。例えば、積分時間を変更することは、読み出し基準電圧に対するわずかな変化の均等物であり得る。読み出し基準電圧が少量(積分時間と同じ)だけ変更した場合、メモリセル電流が少量だけ変化し得ることに留意されたい。したがって、式2は、最終電圧(v)が影響を受けることを示す。しかしながら、積分時間(基準電圧と同じ)を変更することによって、感知ノードは、メモリセル電流によって、異なる時間量の間放電され、これも最終電圧(v)に影響を与える。比較回路466が、メモリセルの条件を試験するために、最終電圧(v)をトリップ電圧Vtripと比較してもよいことを想起されたい。
いくつかの技術では、読み出し基準電圧の大きさは、メモリセルから読み出されるコードワードの品質を改善するために、時々変更される。換言すれば、読み出し基準電圧の大きさは、時々較正される。いくつかの実施形態では、メモリセルから読み出されるコードワードの品質を改善するために、積分時間を変更(又は較正)する。読み出し基準電圧の大きさを較正すること、並びに読み出し基準電圧の積分時間を較正することの両方を行うことも可能であることに留意されたい。したがって、積分時間を較正することは、読み出し基準電圧の大きさも較正することを排除しない。
管理回路480は、プロセッサ482、データラッチの4つの例示的なセット484、485、486、487、及びデータラッチのセットとデータバス322との間に結合されたI/Oインターフェース488を備える(データバスはメモリコントローラ102に接続し得る)。例えば、個々のラッチLDL、LMDL、UMDL、及びUDLを備えるデータラッチの1セットが、各感知増幅器に提供され得る。場合によっては、より少数の又は追加のデータラッチが使用されてもよい。LDLは、データの下部ページのビットを記憶し、LMDLは、データの下部中央ページのビットを記憶し、UMDLは、データの上部中央ページのビットを記憶し、UDLは、データの上部ページのビットを記憶する。これは、メモリセルメモリデバイス毎に16レベル又は4ビットである。一実施形態では、メモリセル毎に8つのレベル又は3ビットが存在する。
プロセッサ482は、感知されたメモリセルに記憶されたデータを判定し、かつ判定されたデータをデータラッチのセットに記憶するように、計算を実行する。データラッチ484~487の各セットは、読み出し動作中にプロセッサ482によって判定されたデータビットを記憶し、かつメモリ内にプログラムされることを意図される書き込みデータを表すプログラム動作中にデータバス322からインポートされたデータビットを記憶するために使用される。I/Oインターフェース488は、データラッチ484~487とデータバス322との間のインターフェースを提供する。
プロセッサ482はまた、ラッチの状態に基づいて、どんな電圧をビット線に印加するかを判定するために使用されてもよい。
読み出し中、システムの動作は、アドレス指定されたメモリセルに対して異なる制御ゲート電圧の供給を制御する状態機械312の制御下にある。メモリによってサポートされる様々なメモリ状態に対応する様々な所定の制御ゲート電圧をステップスルーすると、感知回路は、これらの電圧のうちの1つにおいてトリップすることができ、対応する出力が、データバス454を介して感知回路からプロセッサ482に提供されることになる。その時点で、プロセッサ482は、感知回路のトリップイベント(複数可)、及び入力線490を介して状態機械からの印加された制御ゲート電圧に関する情報を考慮することによって、結果として得られるメモリ状態を判定する。それは次いで、メモリ状態のバイナリ符号化を計算し、結果として得られるデータビットをデータラッチ484~487内に記憶する。
いくつかの実装形態は、複数のプロセッサ482を含むことができる。一実施形態では、各プロセッサ482は、出力線の各々が一緒に有線ORされるように、出力線(図示せず)を含む。いくつかの実施形態では、出力線は、有線OR線に接続される前に反転される。この構成により、有線ORを受信する状態機械は、プログラムされている全てのビットが所望のレベルに到達したときを判定することができるため、プログラミングプロセスが完了したときのプログラム検証試験中に迅速に判定できる。例えば、各ビットがその所望のレベルに到達したとき、そのビットの論理ゼロが、有線OR線に送信される(又は、データ1が反転される)。全てのビットがデータ0を出力した(又は、データ1が反転された)とき、状態機械は、プログラミングプロセスを終了すべきことを知る。各プロセッサは4つの感知増幅器と通信するため、状態機械は有線OR線を4回読み出す必要があるか、又は、論理は、関連するビット線の結果を蓄積するためにプロセッサ482に追加されて、状態機械は、有線OR線を1回読み出す必要のみがある。同様に、論理レベルを正しく選択することによって、グローバル状態機械は、第1のビットがその状態を変更するときを検出し、それに応答してアルゴリズムを変更することができる。
メモリセルに対するプログラム又は検証動作の間、プログラムされるデータ(書き込みデータ)は、メモリセル実装当たり4ビットで、LDL、LMDL、UMDL、及びUDLラッチ内で、データバス322からデータラッチ484~487のセットに記憶される。
プログラム動作は、状態機械の制御下で、アドレス指定されたメモリセルの制御ゲートにプログラミング電圧パルスのセットを印加する。各電圧パルスは、増分型ステップパルスプログラミングと呼ばれる処理のステップサイズ分だけ、前のプログラムパルスから大きさがステップアップし得る。各プログラム電圧の後に、メモリセルが所望のメモリ状態にプログラムされているかどうかを判定するための検証動作が続く。場合によっては、プロセッサ482は、所望のメモリ状態に対して読み戻しメモリ状態を監視する。それらの2つが一致しているとき、プロセッサ482は、そのラッチを更新することなどによって、ビット線をプログラム禁止モードに設定する。これにより、追加のプログラムパルスがその制御ゲートに印加されても、ビット線に結合されたメモリセルの更なるプログラミングが禁止される。
データラッチ484~487の各セットは、各感知増幅器のデータラッチのスタックとして実装されてもよい。一実施形態では、感知増幅器350当たり3つのデータラッチが存在する。いくつかの実装形態では、データラッチはシフトレジスタとして実装されているため、そこに記憶されたパラレルデータはデータバス322のためにシリアルデータに変換され、逆もまた同様である。メモリセルの読み出し/書き込みブロックに対応する全てのデータラッチを互いにリンクして、データのブロックがシリアル転送によって入力又は出力され得るように、ブロックシフトレジスタを形成することができる。具体的には、読み出し/書き込み回路のバンクは、データラッチのそのセットの各々が、読み出し/書き込みブロック全体に対してシフトレジスタの一部であるかのように、データをシーケンス内でデータバス内に又は外にシフトさせるように適合される。
データラッチは、関連付けられたメモリセルがプログラム動作において特定のマイルポストに到達したときを識別する。例えば、ラッチは、メモリセルのVtが特定の検証電圧を下回ることを識別し得る。データラッチは、メモリセルがデータページから1つ以上のビットを現在記憶しているかどうかを示す。例えば、LDLラッチを使用して、下部データページを記憶することができる。LDLラッチは、下部ページビットが、関連付けられたメモリセルに記憶されているとき、(例えば、0から1に)フリップされる。LMDL、UMDL、又はUDLラッチは、それぞれ、下部中央、上部中央、又は上部ページビットが、関連付けられたメモリセルに記憶されているとき、フリップされる。これは、関連付けられたメモリセルがプログラミングを完了するときに生じる。
いくつかの実施形態では、集積メモリアセンブリ306内に、2つ以上の制御ダイ304及び2つ以上のメモリ構造ダイ302が存在する。いくつかの実施形態では、集積メモリアセンブリ306は、複数の制御ダイ304及び複数のメモリ構造ダイ302のスタックを含む。図5Aは、基板502上に積層された集積メモリアセンブリ306(例えば、制御ダイ304及びメモリ構造ダイ302を備えるスタック)の一実施形態の側面図を示す。集積メモリアセンブリ306は、3つの制御ダイ304及び3つのメモリ構造ダイ302を有する。いくつかの実施形態では、4つ以上のメモリ構造ダイ302及び4つ以上の制御ダイ304が存在する。
各制御ダイ304は、メモリ構造ダイ302のうちの少なくとも1つに固定(例えば、ボンド)される。ボンドパッド570、574のうちの一部が示されている。更に多くのボンドパッドが存在し得る。互いに接合された2つのダイ302、304の間の空間は、エポキシ又は他の樹脂若しくはポリマーから形成され得る固体層548で充填される。この固体層548は、ダイ302、304間の電気的接続を保護し、ダイを一緒に更に固定する。様々な材料を固体層548として使用し得るが、実施形態では、米国カリフォルニア州にオフィスを構える、Henkel社のHysolエポキシ樹脂であってもよい。
集積メモリアセンブリ306は、例えば、ステップオフセットで積層されてもよく、各レベルにおけるボンドパッドは、被覆されないままであり、上からアクセス可能である。ボンドパッドに接続されたワイヤボンド506は、制御ダイ304を基板502に接続する。いくつかのこのようなワイヤボンドは、各制御ダイ304の幅にわたって(即ち、図5Aのページ内に)形成されてもよい。
シリコンビア(TSV)512を介したメモリ構造ダイを使用して、メモリ構造ダイ302を通して信号をルーティングすることができる。シリコンビア(TSV)514を介した制御ダイを使用して、制御ダイ304を通して信号をルーティングすることができる。TSV512、514は、半導体ダイ302、304内の集積回路の形成前、形成中、又は形成後に形成されてもよい。TSVは、ウェハを通る孔をエッチングすることによって形成されてもよい。次いで、孔は、金属拡散に対するバリアで裏打ちされてもよい。バリア層は、次にシード層で裏打ちされてもよく、シード層は、銅などの導電体でめっきされてもよいが、アルミニウム、スズ、ニッケル、金、ドープポリシリコン、及びこれらの合金又は組み合わせなどの他の好適な材料を使用することができる。
はんだボール508は、任意選択的に、基板502の下面上のコンタクトパッド510に固着されてもよい。はんだボール508は、集積メモリアセンブリ306をプリント回路板などのホストデバイスに電気的及び機械的に結合するために使用されてもよい。集積メモリアセンブリ306がLGAパッケージとして使用される場合、はんだボール508は省略されてもよい。はんだボール508は、集積メモリアセンブリ306とメモリコントローラ102との間のインターフェースの一部を形成してもよい。
図5Bは、基板502上に積層された集積メモリアセンブリ306の一実施形態の側面図を示す。集積メモリアセンブリ306は、3つの制御ダイ304及び3つのメモリ構造ダイ302を有する。いくつかの実施形態では、3つよりも更に多くのメモリ構造ダイ302、及び3つよりも更に多くの制御ダイ304が存在する。この例では、各制御ダイ304は、少なくとも1つのメモリ構造ダイ302に接合される。任意選択的に、制御ダイ304は、2つのメモリ構造ダイ302に結合されてもよい。
ボンドパッド570、574のうちの一部が示されている。更に多くのボンドパッドが存在し得る。互いに接合された2つのダイ302、304の間の空間は、エポキシ又は他の樹脂若しくはポリマーから形成され得る固体層548で充填される。図5Aの例とは対照的に、図5Bの集積メモリアセンブリ306は、ステップオフセットを有さない。シリコンビア(TSV)512を介したメモリ構造ダイを使用して、メモリ構造ダイ302を通して信号をルーティングすることができる。シリコンビア(TSV)514を介した制御ダイを使用して、制御ダイ304を通して信号をルーティングすることができる。
はんだボール508は、任意選択的に、基板502の下面上のコンタクトパッド510に固着されてもよい。はんだボール508は、集積メモリアセンブリ306をプリント回路板などのホストデバイスに電気的及び機械的に結合するために使用されてもよい。集積メモリアセンブリ306がLGAパッケージとして使用される場合、はんだボール508は省略されてもよい。
上記に手短に論じたように、制御ダイ304及びメモリ構造ダイ302は、一緒に接合されてもよい。各ダイ302、304上のボンドパッドを使用して、2つのダイを一緒に接合することができる。いくつかの実施形態では、ボンドパッドは、はんだ又は他の追加材料なしで、いわゆるCu~Cu接合プロセスにおいて互いに直接接合される。Cu~Cu接合プロセスでは、ボンドパッドは、高度に平坦であるように制御され、周囲の微粒子がほとんどない高度に制御された環境において形成され、微粒子は、そうしないと、ボンドパッド上に沈降し、密接な接合を妨げる可能性がある。このような適切に制御された条件下で、ボンドパッドは、互いに位置合わせされ、互いに押し付けられて、表面張力に基づいて相互接合を形成する。このような接合は室温で形成されてもよいが、熱が印加されてもよい。Cu~Cu接合を使用する実施形態では、ボンドパッドは、約5μm平方であり得、5μm~5μmのピッチで互いに離間され得る。このプロセスは、本明細書ではCu~Cu接合と呼ばれるが、この用語はまた、ボンドパッドがCu以外の材料から形成される場合にも適用され得る。
ボンドパッドの面積が小さい場合、半導体ダイを一緒に接合することは困難であり得る。ボンドパッドのサイズ及びボンドパッド間のピッチは、ボンドパッドを含む半導体ダイの表面上にフィルム層を提供することによって、更に低減され得る。フィルム層は、ボンドパッドの周囲に設けられる。ダイが一緒になると、ボンドパッドは互いに接合し得、それぞれのダイ上のフィルム層が互いに接合し得る。このような接合技法は、ハイブリッド接合と呼ばれることがある。ハイブリッド接合を使用する実施形態では、ボンドパッドは、約5μm平方であり得、1μm~5μmのピッチで互いに離間され得る。よりいっそう小さいサイズ及びピッチを有するボンドパッドを提供する接合技法が使用されてもよい。
いくつかの実施形態は、ダイ302、304の表面上にフィルムを含み得る。このようなフィルムが最初に提供されない場合、ダイ間の空間は、エポキシ又は他の樹脂若しくはポリマーでアンダーフィルされてもよい。アンダーフィル材料は液体として塗布されてもよく、それはその後、固体層に固化する。このアンダーフィルステップは、ダイ302、304間の電気的接続を保護し、ダイを一緒に更に固定する。様々な材料をアンダーフィル材料として使用し得るが、実施形態では、米国カリフォルニア州にオフィスを構える、Henkel社のHysolエポキシ樹脂であってもよい。
図6は、複数の不揮発性メモリセルを含む、メモリ構造326を備え得るモノリシック3次元メモリアレイの例示的な一実施形態の一部の斜視図である。例えば、図6は、メモリを備える1つのブロックの一部を示す。図示された構造は、交互の誘電体層及び導電層のスタックの上方に位置決めされたビット線BLのセットを含み、垂直柱の材料が、誘電体層及び導電層を通って延在している。例示の目的で、誘電体層のうちの1つがDとしてマークされ、導電層(ワード線層とも呼ばれる)のうちの1つがWとしてマークされている。ワード線層は、メモリセルに接続された1つ以上のワード線を含む。例えば、ワード線は、メモリセルの制御ゲートに接続され得る。交互の誘電体層及び導電層の数は、特定の実装要件に基づいて変化し得る。実施形態の1セットは、108~304個の交互の誘電体層及び導電層を含む。例示的な一実施形態は、96個のデータワード線層、8つの選択層、6つのダミーワード線層、及び110個の誘電体層を含む。108~304個よりも多いか又は少ない層を使用することもできる。実施形態では、交互の誘電体層及び導電層は、ローカル相互接続LIによって、4つの「フィンガ」又はサブブロックに分割される。図6は、2つのフィンガ及び2つのローカル相互接続LIを示している。交互の誘電体層及びワード線層の下には、ソース線層SLがある。垂直柱の材料(メモリホールとしても知られている)は、交互の誘電体層及び導電層のスタック内に形成される。例えば、垂直柱/メモリホールのうちの1つがMHとしてマークされている。図6では、誘電体層がシースルーとして示されているので、読者は交互の誘電体層及び導電層のスタック内に位置決めされたメモリホールを見ることができることに留意されたい。一実施形態では、メモリセルの垂直柱を生成するために、垂直柱/メモリホールを、電荷トラップ材料を含む材料で充填することによって、NANDストリングが形成される。各メモリセルは、1つ以上のビットのデータを記憶することができる。
図7は、アレイに編成されたメモリセルのNANDストリングをプログラムするためのプロセス700の一実施形態を説明するフローチャートである。図7のプロセスは、状態機械312の方向に実行することができる。例示的な一実施形態では、図7のプロセスは、上述の制御回路310(及び読み出し/書き込み回路328、並びにデコーダ332/324)を使用してメモリダイ300上で実行される。例示的な一実施形態では、図7のプロセスは、上述の制御回路310を使用して集積メモリアセンブリ306によって実行される。プロセスは、複数のループを含み、これらのループの各々は、プログラム段階(例えば、ステップ704~708)及び検証段階(例えば、ステップ710~718)を含む。
多くの実装では、プログラムパルスの大きさは、所定のステップサイズだけ、各連続するパルスにあわせて増加する。図7のステップ702において、プログラミング電圧(Vpgm)が、開始量(例えば、約12~16V又は別の好適なレベル)に初期化され、状態機械312によって維持されるプログラムカウンタPCが、1に初期化される。
一実施形態では、プログラムされるように選択されたメモリセルのセット(本明細書では、選択されたメモリセルと呼ばれる)は、同時にプログラムされ、同じワード線(選択されたワード線)に全て接続される。プログラミング用に選択されていない他のメモリセル(非選択メモリセル)は、選択されたワード線にも接続されている可能性がある。即ち、選択されたワード線はまた、プログラミングが禁止されると想定されるメモリセルに接続される。加えて、メモリセルがそれらの意図された目標データ状態に到達すると、それらは、更なるプログラミングが禁止される。プログラミングが禁止される選択されたワード線に接続されたメモリセルを含むNANDストリング(例えば、非選択NANDストリング)は、プログラミングを禁止するためにそれらのチャネルが昇圧されている。チャネルが昇圧電圧を有する場合、チャネルとワード線との間の電圧差は、プログラミングを引き起こすほど大きくない。昇圧を支援するために、ステップ704において、メモリシステムは、プログラミングを禁止される選択されたワード線に接続されたメモリセルを含むNANDストリングのチャネルをプリチャージする。
一実施形態では、ステップ704がプログラム動作の開始である。いくつかの実施形態では、メモリセルの異なるセットが同時にプログラムされる。例えば、異なるメモリ構造326内のメモリセルのプログラミングを同時に実行することができる。いくつかの実施形態では、同時プログラム動作の開始(例えば、ステップ704)は、ステップ704が異なるメモリ構造326に対して異なる時間に発生するように、互い違いになる。
ステップ706において、プログラミングが禁止される選択されたワード線に接続されたメモリセルを含むNANDストリングは、プログラミングを禁止するためにそれらのチャネルが昇圧されている。このようなNANDストリングは、本明細書では「非選択NANDストリング」と呼ばれる。一実施形態では、非選択ワード線は、1つ以上の昇圧電圧(例えば、約7~11ボルト)を受信して、昇圧方式を実行する。プログラム禁止電圧が、非選択NANDストリングに結合されたビット線に印加される。
ステップ708において、プログラム信号Vpgmのプログラムパルスが、選択されたワード線(プログラミング用に選択されたワード線)に印加される。NANDストリング上のメモリセルがプログラムされるべきである場合、一実施形態では、対応するビット線はプログラムイネーブル電圧でバイアスされる。本明細書では、このようなNANDストリングは、「選択されたNANDストリング」と呼ばれる。
ステップ708において、プログラムパルスが、選択されたワード線に接続された全てのメモリセルに同時に印加され、その結果、(プログラミングが禁止されていない限り)選択されたワード線に接続された全てのメモリセルが同時にプログラムされる。即ち、それらは、同時に、又は重複する時間の間に(そのどちらも同時であると見なされる)プログラムされる。このようにして、選択されたワード線に接続されたメモリセルの全ては、プログラミングが禁止されていない限り、同時にそれらの閾値電圧を変化させる。
ステップ710において、それらの目標状態に到達したメモリセルは、更なるプログラミングからロックアウトされる。ステップ710は、1つ以上の検証基準レベルにおいて検証を実行することを含み得る。一実施形態では、検証プロセスは、プログラミングのために選択されたメモリセルの閾値電圧が適切な検証基準電圧に到達したどうかを試験することによって実行される。
ステップ710において、メモリセルがその目標状態に到達したと(Vtの試験によって)メモリセルが検証された後、メモリセルをロックアウトすることができる。
ステップ712において、メモリセルの全てが目標閾値電圧に到達した(合格)と判定された場合、全ての選択されたメモリセルがプログラムされ、それらの目標状態へと検証されたため、プログラミングプロセスは完了して成功している。ステップ714において、「合格」のステータスが報告される。そうではなく、ステップ712において、メモリセルの全てがそれらの目標閾値電圧に到達していない(不合格)と判定された場合、プログラミングプロセスはステップ716に進む。
ステップ716において、メモリシステムは、それぞれの目標閾値電圧分布にまだ到達していないメモリセルの数をカウントする。即ち、システムは、これまでに目標状態に到達できなかったメモリセルの数をカウントする。このカウントは、状態機械312、メモリコントローラ102、又は他の論理によって行うことができる。一実装形態では、感知ブロックの各々が、それらのそれぞれのセルのステータス(合格/不合格)を記憶することになる。一実施形態では、1つの合計カウントが存在し、これは、最後の検証ステップに失敗した現在プログラムされているメモリセルの総数を反映する。別の実施形態では、データ状態毎に別個のカウントが維持される。
ステップ718において、ステップ716からのカウントが所定の限界値以下であるかどうかが判定される。一実施形態では、所定の限界値は、メモリセルのページについての読み出しプロセスの間に、誤り訂正コード(ECC)によって訂正することができるビットの数である。失敗したセルの数が所定の限界値以下である場合、プログラミングプロセスは停止することができ、「合格」のステータスがステップ714において報告される。この状況では、十分なメモリセルが正確にプログラムされており、その結果、完全にプログラムされていない残りの僅かのメモリセルは、読み出しプロセスの間に、ECCを使用して訂正することができる。いくつかの実施形態では、ステップ718において使用される所定の限界値は、将来/追加の誤りを見越して、読み出しプロセスの間に誤り訂正コード(ECC)によって訂正することができるビットの数よりも小さい。1ページについて全てのメモリセルよりも少ないメモリセルをプログラムする場合、又はただ1つのデータ状態(若しくは全ての状態よりも少ない状態)についてカウントを比較する場合、所定の限界値は、メモリセルのページの読み出しプロセスの間にECCによって訂正することができるビット数の(比例した、又は比例しない)一部とすることができる。いくつかの実施形態では、限界値は予め決められていない。代わりに、限界値は、そのページについて既にカウントされた誤りの数、実行されるプログラム消去サイクルの数、又は他の基準に基づいて変化する。
失敗したメモリセルの数が所定の限界値以上である場合、プログラミングプロセスはステップ720に進み、プログラムカウンタPCはプログラム限界値(program limit value、PL)と照合される。プログラム限界値の例としては、1、12、16、19、及び30が挙げられるが、他の値を使用することもできる。プログラムカウンタPCがプログラム限界値PL以上である場合、プログラムプロセスは失敗したと見なされ、不合格のステータスがステップ724において報告される。プログラムカウンタPCがプログラム限界値PL未満である場合、プロセスはステップ722に進み、このステップの時間中に、プログラムカウンタPCは1だけ増分され、プログラム電圧Vpgmは次の大きさにステップアップされる。例えば、次のパルスの大きさは、ステップサイズ(例えば、0.1~1.0ボルトのステップサイズ)だけ前のパルスよりも大きい。ステップ722の後、このプロセスはステップ704にループして戻り、別のプログラムパルスが、選択されたワード線に印加され、その結果、図7のプログラミングプロセスの別の反復(ステップ704~722)が実行される。
良好なプログラミングプロセスの最後に、必要に応じて、メモリセルの閾値電圧は、プログラムされたメモリセルの閾値電圧の1つ以上の分布内、又は消去されたメモリセルの閾値電圧の分布内にあるべきである。図8Aは、各メモリセルが4ビットのデータを記憶するときのメモリアレイの例示的な閾値電圧分布を示す。しかしながら、他の実施形態は、メモリセル当たり他のデータ容量(例えば、メモリセル当たり1、2、3、又は5ビットのデータなど)を使用してもよい。図8Aは、メモリセルからデータを読み出すための15個の読み出し基準電圧Vr1~Vr15を示している。メモリセルのセットは、同じワード線に接続されてもよい。各読み出し基準レベルは、2つの隣接する閾値電圧分布を区別するために使用される。換言すれば、各読み出し基準レベルは、2つの隣接するデータ状態を区別するために使用される。例えば、読み出し基準レベルVr4は、データ状態S3とデータ状態S4とを区別するために使用される。所与のメモリセルの閾値電圧がこの15個の読み出し基準電圧よりも高いか低いかを試験する(例えば、感知動作を実行する)ことによって、システムは、メモリセルがどのデータ状態(即ち、S0、S1、S2、S3、...)にあるのかを判定することができる。しかしながら、上述したように、積分時間は、読出し基準電圧の効果に影響を及ぼす。
図8Aは、データ状態S0~S15間に何らかの重複が存在し得ることを示している。重複は、メモリセルが電荷を失うこと(したがって閾値電圧が低下する)などの要因によって生じ得る。図8Aは、メモリセル毎に4ビットが記憶される例を示している。したがって、メモリセルのセットに4ページが記憶され得る。メモリセルのセットは、同じワード線に接続されてもよい。これらのページは、下部ページ、下部中央ページ、上部中央ページ、及び上部ページと呼ばれることもある。一実施形態では、下部ページを読み出すために、メモリセルは、4つの異なる読み出し基準電圧を使用して感知される。例えば、メモリセルは、Vr1、Vr4、Vr6、及びVr11において感知され得る。
読み出し又は検証動作中にメモリセルの伝導電流を測定する多くの方法がある。一例では、メモリセルの伝導電流は、それが感知増幅器内の専用キャパシタを放電又は充電する速度によって測定される。別の例では、選択されたメモリセルの伝導電流は、メモリセルを含むNANDストリングが、対応するビット線を放電することを可能にする(又は可能にできない)。ビット線上の電圧は、それが放電されたかどうかを調べるためにある時間期間後に測定される。本明細書に記載される技術は、検証/読み出しのための当該技術分野において既知である様々な方法と共に使用され得ることに留意されたい。当該技術分野において既知である他の読み出し及び検証技術も使用することができる。
プログラムディスターブは、メモリセルの閾値電圧を意図せずに増加させることがある。同様に、読み出しディスターブは、メモリセルの閾値電圧を意図せずに増加させることがある。経時的に、閾値電圧分布の位置が変化し得る。そのような変化は、ビット誤り率を増加させることがあり、それによって復号時間が増加するか、又は復号が不可能になることさえある。基準レベルを調整することを使用して、Vt分布の位置の変化を補償することができる。基準レベルを調整するための1つの技術は、読み出し基準電圧の大きさを変化させることである。図8Aは、Vr1基準電圧付近のVr1-2Δv、Vr1-Δv、Vr1+Δv、及びVr1+2Δvなどのこの例を示している。いくつかの技術では、メモリセルは、読み出し基準電圧のこのセットにおいて感知され、感知結果の分析は、基準電圧の新たな大きさを選択するために使用される。読み出し基準電圧を較正するための1つの技術は、S3とS4との間の谷などの谷を探すことである。図8Bでは、谷はVr4に示されているが、谷が、例えば、Vr4-Δvにない場合、Vr4-Δvは、Vr4の新たな大きさとして選択することができる。読み出し基準電圧を較正するための別の技術は、様々なレベル(例えば、Vr1-2Δv、Vr1-Δvなど)を使用して読み出されたデータに基づいてコードワードを形成し、ビット誤り率(BER)又はシンドローム重み(SW)などの任意の誤りメトリックを分析することである。
図8Bは、図8Aに示されているのと同じVt分布を示している。Vr1、Vr4、Vr6、及びVr11の各々について、5つの積分時間が示されている。これらの5つの積分時間を使用して、5つの異なる基準電圧の大きさでの感知と同様の結果を生成することができる。例えば、積分時間t-2Δt、t-Δt、t、t+Δt、及びt+2Δtを使用したVr1での感知は、Vr1-2Δv、Vr1-Δv、Vr1、Vr1+Δv、及びVr1+2Δvでの感知と同様の結果を生成することができる。
本明細書に開示される実施形態では、積分時間は較正され、これは基準レベルを調整するように機能する。いくつかの技術では、メモリセルは、積分時間のこのセットにおいて感知され、感知結果の分析は、関連する基準電圧の新たな積分時間を選択するために使用される。積分時間を較正するための1つの技術は、S3とS4との間の谷などの谷を探すことである。例えば、較正された積分時間を使用したとき、Vr4が谷にあるような好適な積分時間を見出すことができる。積分時間を較正するための別の技術は、様々な積分時間(例えば、t-2Δt、t-Δt、t、t+Δt、及びt+2Δt)を使用して読み出されたデータに基づいてコードワードを形成し、コードワードのビット誤り率(BER)又はシンドローム重み(SW)などの任意の誤りメトリックを分析することである。
本明細書に開示されるいくつかの実施形態は、メモリセルの閾値電圧(Vt)によって状態が表されるメモリセルを対象とするが、メモリセルの状態は、抵抗又はコンダクタンスを含むがこれらに限定されない別の物理パラメータによって表され得ることに留意されたい。例えば、図8A及び図8Bでは、データ状態はVt分布によって表される。しかしながら、他のタイプのメモリセルでは、データ状態は、抵抗分布又はコンダクタンス分布によって表されてもよい。
図9は、1つ以上の積分時間を較正するプロセス900のフローチャートの一実施形態を示す。積分時間は、メモリセルを感知するときに使用されるパラメータである。一実施形態では、プロセス900は、限定はしないが、UECC誤り、BERが閾値を上回ること、復号時間が閾値を上回ることなど、いくつかのトリガに応答して実行することができる。UECC誤りは、デコーダがコードワードを正常に復号できなかったことを意味する。これは、制御ダイ304上のデコーダ、又はメモリコントローラ102内のデコーダに適用され得る。
積分時間を較正した後、メモリセル内のデータを復号するための更なる試みが行われてもよい。しかしながら、プロセス900は、任意の時点に実行されてもよい。いくつかの実施形態では、積分時間は、時々較正される。例えば、積分時間は、所定の数のプログラム/消去サイクル後に較正することができる。
ステップ902は、1つ以上の基準電圧を不揮発性メモリセルのセットに印加することを含む。一実施形態では、1つ以上の基準電圧の各々は、2つのデータ状態を区別するために使用される。例えば、図8Bを参照すると、1つ以上の基準電圧は、Vr1~Vr15のいずれかであり得る。一実施形態では、状態機械312は、1つ以上の基準電圧をメモリセルに印加するように電力制御316を指示する。一実施形態では、1つ以上の基準電圧は、メモリセルに接続されたワード線に印加される。
ステップ904は、1つ以上の基準電圧をメモリセルのセットに印加しながら、異なる積分時間についてメモリセルのセットを感知することを含む。例えば、Vr1を印加するとき、メモリセルは、積分時間t-2Δt、t-Δt、t、t+Δt、及びt+2Δtを使用して感知される。積分時間間の時間差は均一であり得るが、それは必要とされない。したがって、積分時間間に同じΔtが存在することは必要とされない。メモリセルはまた、Vr4、Vr6、及びVr11を適用しながら、それらの積分時間について感知されてもよい。これは、下部ページの場合である例に関する。次いで、プロセス900を他のページについて反復することができる。しかしながら、所与のページに関連する基準レベルの全てについてプロセス900を実行することは必要とされない。
ステップ906は、1つ以上の基準電圧の1つの積分時間(又は複数の積分時間)を較正することを含む。各基準電圧について別個の積分時間を判定することができ、その場合、各基準電圧に対する積分時間は異なってもよいが、異なることが必要とはされない。しかしながら、一実施形態では、複数の基準電圧に同じ積分時間が使用される。一実施形態では、較正された積分時間は、例えば、誤り回復プロセスにおいて、メモリセルのこのセットを感知するためにのみ使用される。較正された積分時間は、記憶され、メモリセルのこのセット又はメモリセルの別のセットのために再び使用されてもよい。
異なる積分時間についてメモリセルのセットを感知した結果に基づいて、所与の基準電圧に対する積分時間が較正される。積分時間を較正するために使用できるいくつかの技術が存在する。一実施形態では、積分時間を較正するためにビット誤り率推定スキャン(BES)が使用される。手短に述べると、BESは、1つ以上の基準電圧の各々に対して積分時間のセットを使用してメモリセルを感知することと、次いで、感知から導出されたコードワードについて誤りメトリックを判定することとを含み得る。誤りメトリックは、例えば、シンドローム重み又はビット誤り率(BER)であってもよい。BESスキャンに基づいて積分時間を較正する一実施形態の更なる詳細を図12に記載する。いくつかの実施形態では、積分時間は、2つのVt分布間の谷のスキャンを実行することによって較正される。谷探索に基づいて積分時間を較正する一実施形態の更なる詳細を図13に記載する。
いくつかの実施形態では、較正された積分時間は、コードワードの誤り回復において使用される。較正された積分時間を使用してコードワードを回復する更なる詳細を図14に関連して記載する。いくつかの実施形態では、較正された積分時間は、将来において、メモリセルのこのセットから、又はメモリセルの別のセットからデータを読み出すために使用される。したがって、一実施形態では、1つ以上の基準電圧は、積分時間を較正した後に、不揮発性メモリセルのセットに再び印加される。次いで、メモリセルのセットは、較正された積分時間を使用して感知されて、データ結果が生成される。データ結果に基づいて、メモリセルのセットに記憶されたコードワードが復号される。
図10Aは、基準電圧の積分時間を較正するプロセス1000の一実施形態のフローチャートを示す。プロセス1000は、プロセス900の一実施形態についての更なる詳細を提供する。プロセス1000では、1つの基準電圧の積分時間が判定される。一実施形態では、プロセス1000は、BESを使用して積分時間を較正するときに使用される。しかしながら、プロセス1000は、BESを使用して積分時間を較正することに限定されない。
ステップ1002は、基準電圧を不揮発性メモリセルのセットに印加することを含む。一実施形態では、基準電圧は、メモリセルの制御ゲートに接続された選択ワード線に印加される。一例として図8を参照すると、基準電圧は、Vr1~Vr15のいずれかであり得る。基準電圧Vr4は、プロセス1000を説明するための一例として使用される。ステップ1002は、ステップ902の一実施形態である。
ステップ1004は、いくつかの積分時間t-2Δt、t-Δt、t、t+Δt、t+2Δtの各々の後の読み出し結果を判定することを含む。この例では、5つの異なる積分時間が存在するが、5より多く又は少なく存在し得る。この例では、積分時間は、同じ時間(Δt)だけ分離される。しかしながら、これは、その通りである必要はない。同じ基準電圧と共に5つの異なる積分時間を使用することは、5つの異なる基準電圧に同じ積分時間を使用することと等価であり得る。例えば、Vr4と共に5つの異なる積分時間を使用することは、同じ積分時間を使用してVr4-2Δv、Vr4-Δv、Vr4、Vr4+Δv、及びVr4+2Δvを印加することと等価であり得る。しかしながら、Vr4と共に5つの異なる積分時間を使用することは、同じ積分時間を使用してVr4-2Δv、Vr4-Δv、Vr4、Vr4+Δv、及びVr4+2Δvを印加することよりもはるかに速く実行することができる。後者の例は、選択されたワード線を基準電圧のうちの1つまで充電し、続いて積分時間を感知する。したがって、選択されたワード線は5回充電されることになり、毎回その後に、積分時間が感知される。ステップ1004では、選択されたワード線は1回だけ充電され、その後に、積分時間が5回感知される必要がある。選択されたワード線を複数回充電する必要がないことにより、かなりの時間節約が提供される。時間節約の量は、選択されたワード線と隣接する導電性要素との間の容量結合などの要因に依存する。したがって、時間節約は、アーキテクチャに応じて変化する。ステップ1004においてメモリセルを感知する時間は、複数の基準電圧を印加することに対して、半分に削減するか、又は更にいっそう低減することができる。
ステップ1006は、ステップ1004からの結果に基づいて、5ページの感知情報を判定することを含む。各ページは、積分時間のうちの1つを使用して感知することに対応する。各ページは、メモリセル毎に1ビットを含む。例えば、各ページは、各メモリセルについて、積分時間感知ノード464を放電したことに応答して比較回路466によって判定された結果を示すことができる。
ステップ1008は、5ページの感知情報をメモリコントローラ102に渡すことを含む。一実施形態では、メモリダイ300がステップ1002~1008を実行する。例えば、メモリダイ300上の制御回路310がステップ1002~1008を実行してもよい。一実施形態では、制御ダイ304がステップ1002~1008を実行する。ステップ1004~1008は、ステップ904の一実施形態である。
ステップ1010は、5ページの情報に基づいて、基準レベルに対して積分時間を較正することを含む。一実施形態では、ステップ1010においてBESが使用される。BESの更なる詳細は図12に示されている。一実施形態では、メモリコントローラ102がステップ1010を実行する。一実施形態では、制御ダイ304は、ページをメモリコントローラ102に送信せず、その場合、制御ダイ304は、ステップ1010をも実行する。ステップ1010は、ステップ906の一実施形態である。
プロセス1000を反復して、他の基準電圧の積分時間を較正することができる。他の基準電圧は、同じページ(例えば、下部ページ)又は異なるページ(例えば、上部ページなど)に関し得る。
図10Bは、複数の基準電圧の積分時間を較正するプロセス1050の一実施形態のフローチャートを示す。プロセス1050では、複数の基準レベルの各々に対して積分時間が判定される。いくつかの実施形態では、ページを感知するために使用される各基準レベルに対して積分時間が判定される。Vr1、Vr4、Vr6、及びVr11(図8Bを参照)の各々に対して積分時間が較正される例が論じられる。プロセス1050は、プロセス900の一実施形態についての更なる詳細を提供する。一実施形態では、プロセス1050は、BESを使用して積分時間を較正するときに使用される。しかしながら、プロセス1050は、BESを使用して積分時間を較正することに限定されない。
ステップ1052は、基準電圧の大きさにアクセスすることを含む。ステップ1054は、基準電圧を不揮発性メモリセルのセットに印加することを含む。一実施形態では、基準電圧は、メモリセルの制御ゲートに接続された選択ワード線に印加される。ステップ1052~1054は、ステップ902の一実施形態である。
ステップ1056は、いくつかの積分時間t-2Δt、t-Δt、t、t+Δt、t+2Δtの各々の後の感知結果を判定することを含む。この例では、5つの異なる積分時間が存在するが、5より多く又は少なく存在し得る。これはステップ1004と同様であり得る。したがって、各集積時間についての感知結果は、各メモリセルについて、積分時間感知ノード464を放電したことに応答して比較回路466によって判定された結果を示すことができる。したがって、この例では、5セットの感知結果が存在する。
ステップ1058は、考慮すべき別の基準電圧が存在するかどうかの判定を含む。そうである場合、ステップ1052において次の基準電圧の大きさにアクセスし、ステップ1054においてそれを印加する。ステップ1056において、感知結果の追加のセットが判定される。全ての基準電圧に対する感知結果が判定された後、プロセスはステップ1060に進む。
ステップ1060は、各積分時間について情報ページを判定することを含む。各ページは、各メモリセルに対して1ビットを含む。したがって、5つの積分時間が存在する場合、5ページの情報が存在する。一実施形態では、積分時間に関する情報ページは、ページの基準電圧において読み出すときにページを判定するのと同様の方法で判定されてもよい。例えば、下部データページを読み出すことは、Vr1、Vr4、Vr6、及びVr11において読み出して、各読み出し基準電圧の各メモリセルの結果を生成することを含み得る。これらの結果に対して論理演算を実行して、1ページのデータ(即ち、メモリセル毎に1ビット)を生成することができる。メモリセル毎のこの1ビットは、メモリセルが下部ページについて「1」を記憶するか「0」を記憶するかを示す。概念的には、「t」の積分時間は、データの下部ページを判定するこのプロセスに対応するものとして考えることができる。いくつかの実施形態では、各積分時間についての感知結果に対して同じ論理演算が実行されて、それによって、各積分時間に関する情報ページが生成される。例えば、5つの積分時間のうちの1つ(例えば、t-2Δt)について、各基準レベル(例えば、Vr1、Vr4、Vr6、及びVr11)からの感知結果に対して論理演算を実行して、積分時間t-2Δtに関する情報ページを生成することができる。概念的には、これは、感知が積分時間t-2Δtを使用したことを仮定して、各メモリセルが下部ページについて「1」を記憶するか「0」を記憶するかを判定するものとして考えることができる。ステップ1056、1060は、ステップ904の一実施形態である。
ステップ1062は、感知情報ページをメモリコントローラ102に渡すことを含む。各ページは、積分時間のうちの1つを使用して感知することに対応する。各ページは、メモリセル毎に1ビットを含む。一実施形態では、メモリダイ300がステップ1052~1062を実行する。例えば、メモリダイ300上の制御回路310がステップ1052~1062を実行してもよい。一実施形態では、制御ダイ304がステップ1052~1062を実行する。
ステップ1064は、5ページの情報に基づいて、各基準レベルに対して積分時間を較正することを含む。一例として、ステップ1064を使用して、Vr1の積分時間、Vr4の積分時間、Vr6の積分時間、及びVr11の積分時間を較正することができる。一実施形態では、ステップ1064においてBESが使用される。BESの更なる詳細は図12に示されている。一実施形態では、メモリコントローラ102がステップ1064を実行する。一実施形態では、制御ダイ304は、ページをメモリコントローラ102に送信せず、その場合、制御ダイ304は、ステップ1064をも実行する。ステップ1064は、ステップ906の一実施形態である。
ステップ904、1004、及び1056において論じたように、メモリセルは、メモリセルに同じ基準電圧を印加しながら、複数の積分時間において感知される。図11は、基準電圧をメモリセルに印加しながら、複数の積分時間においてメモリセルを感知するプロセス1100の一実施形態を示す。プロセス1100は、ステップ904、1004、又は1056において使用することができる。したがって、プロセス1100は、基準電圧をメモリセルに印加した後に開始することができる。ステップ1102は、積分時間にアクセスすることを含む。この積分時間は、試験積分時間のセットのうちの1つである。一実施形態では、セットは、基準電圧に対する積分時間の現在値と、現在値からのオフセット(例えば、Δt)とに基づいて判定される。一実施形態では、セットは、積分時間の現在値とは無関係に同じセットが使用されるように固定される。いくつかの実施形態では、積分時間の現在値、積分時間の試験セット、及び/又はΔtは、記憶領域326a、又は記憶領域318に記憶される。いくつかの実施形態では、メモリコントローラ102は、プロセス1100において使用される積分時間のセットを、制御ダイ304又はメモリダイ300のいずれかに提供する。
ステップ1104は、例えば、感知ノードを充電することによって、感知ノード464上に初期電圧を確立することを含む。各メモリセルは、感知ノード464を有する感知増幅器350に関連付けられ得ることを想起されたい。
ステップ1106は、各メモリセルをそのそれぞれの感知ノード464に接続することを含む。これにより、任意のメモリセル電流が感知ノード464を放電することが可能になる。いくつかの実施形態では、メモリセルは、ビット線(BL)によって感知ノードに接続される。
ステップ1108は、積分時間待機した後、感知ノードの各々における電圧を試験することを含む。換言すれば、メモリセル電流は、積分時間、感知ノード464を放電させることができる。比較回路466は、感知ノード464上の電圧を、トリップ電圧を用いて試験することができる。
ステップ1110は、結果を記憶することを含む。一実施形態では、結果は、管理回路480内のプロセッサ482に提供される。プロセッサ482は、結果を、図4に示すラッチのうちの1つに、図4に示されていないラッチに記憶することができ、又は、結果を状態機械312に提供することができる。
ステップ1112は、別の積分時間が存在するかどうかを判定することを含む。そうである場合、制御はステップ1102に移って、次の積分時間にアクセスする。プロセス1100は、ステップ1104において感知ノード464を再充電することなどによって継続する。メモリセルに印加される基準電圧を変更する必要はないことに留意されたい。例えば、選択されたワード線に印加される基準電圧は、一定のままであってもよい。したがって、選択されたワード線を別の基準電圧まで充電する(並びに、選択されたワード線上の電圧が安定するのを待つ)必要がないことにより、かなりの時間節約が存在する。したがって、積分時間を較正することは、時間と電力の両方において効率的である。プロセス1100からの結果は、ステップ906(プロセス900を参照)、ステップ1006(プロセス1000を参照)、又はステップ1060(プロセス1050を参照)において使用されてもよい。
上述のように、いくつかの実施形態では、積分時間は、BESに基づいて較正される。図12は、BESに基づいて積分時間を較正するプロセス1200の一実施形態のフローチャートを示す。プロセス1200は、ステップ906、ステップ1010、又はステップ1064において使用されてもよい。プロセス1200の説明を容易にするために、図8Bの例示的なVt分布を参照する。プロセス1200は、1ページのデータ(例えば、コードワード)を感知するために使用される読み出し基準電圧に使用されてもよい。プロセス1200は、一実施形態では下部ページを感知するために使用される、Vr1、Vr4、Vr6、及びVr11の積分時間を較正するために使用されてもよい。プロセス1200は、他のページについて反復されてもよい。
ステップ1202は、異なる積分時間を使用して感知したことからの情報ページを入力することを含む。例えば、プロセス1050において判定された5ページの情報が入力されてもよい。各ページは1つの積分時間に関することを想起されたい。したがって、1ページは、Vr1、Vr4、Vr6、及びVr11の各々についてt-2Δtを感知するためのものであってもよく、別のページは、Vr1、Vr4、Vr6、及びVr11の各々についてt-Δtを感知するためのものであってもよく、別のページは、Vr1、Vr4、Vr6、及びVr11の各々についてtを感知するためのものであってもよい、など。一実施形態では、BESは、5つの積分時間のセットに基づく(図8Bを参照)。一実施形態では、BESは、7つの積分時間のセットに基づく。例えば、t-3Δt及びt+3Δtを図8Bの例に加えることができる。
ステップ1204は、積分時間/読み出し基準電圧の組み合わせにおいて感知することをエミュレートすることを含む。積分時間/読み出し基準電圧の組み合わせは、所与の読み出し基準電圧に対する積分時間のいずれかを使用してもよい。この例では、入力ページは各々、1つの特定の積分時間において感知するためであることに留意されたい。しかしながら、ステップ1204は、様々な読み出し基準電圧について異なる積分時間に感知することをエミュレートすることを含む。例えば、実際の感知は、各メモリセルに対して1ビットを生成するために、Vr1、Vr4、Vr6、及びVr11の各々について積分時間t-2Δtを用いて行われていてもよい。しかしながら、Vr1の積分時間t-2Δt、Vr4の積分時間t-Δt、Vr6の積分時間t-2Δt、及びVr11の積分時間t+Δtのエミュレートされた感知など、他の組み合わせをエミュレートすることが可能である。明らかに、多くの可能な積分時間/基準電圧の組み合わせが存在する。例えば、5つの積分時間が使用されると仮定して、下部ページについて合計5^4個の可能な組み合わせが存在し得る。7つの積分時間が使用される場合、下部ページについて7^4個の可能な組み合わせが存在する。エミュレートは、積分時間/基準電圧のあらゆる可能な組み合わせを使用して感知することが必要とされないことを指す。
ステップ1206は、エミュレートされた感知に基づいてコードワードを生成することを含む。コードワードは、メモリセルに記憶されたデータのコードワードを指す。本例では、コードワードは、Vr1、Vr4、Vr6、及びVr11での感知に関連付けられた下部ページに関する。実際には数個の組み合わせ(例えば、Vr1、Vr4、Vr6、及びVr11の各々についての積分時間t-Δt)が感知されることに留意されたい。エミュレートされた感知に基づくコードワードは、本明細書ではエミュレートされたコードワードと呼ばれる。実際の感知に基づくコードワードも、ステップ1206において使用されてもよい。しかしながら、コードワードの大部分は、エミュレートされたコードワードになる。
ステップ1208は、生成されたコードワードのECCメトリックを判定することを含む。一実施形態では、ECCメトリックはSWである。これは、初期SWであってもよい。一実施形態では、初期SWは、反復メッセージパッシングデコーダ内で復号の1回の反復を実行することによって判定される。一実施形態では、ECCメトリックは、推定されたBERである。一実施形態では、BERは、初期SWに基づいて推定される。したがって、ECCメトリックを判定するために、コードワードは完全に復号される必要はないことに留意されたい。
ステップ1210は、プロセスが完了したかどうかの判定である。プロセスが完了したかどうかの1つの試験は、SWが十分に低いかどうかである。この試験はまた、プロセス1200においていくつの積分時間/基準電圧の組み合わせが試験されたかに基づいてもよい。いくつかの実施形態では、積分時間/基準電圧の組み合わせのサブセットの非全数探索(又は、グリーディ探索)が実行される。いくつかの実施形態では、全数探索(又は包括的探索)が、積分時間/基準電圧の組み合わせの全てについて実行される。
別のコードワードが試験されると仮定すると、プロセスはステップ1204に戻って、別の積分時間/基準電圧の組み合わせにおいて感知することをエミュレートする。プロセス1200は、数百又は更には数千の異なる積分時間/基準電圧の組み合わせについて試験することができる。十分な数の組み合わせが試験された後、ステップ1212が実行される。ステップ1212は、コードワードのECCメトリックに基づいて、各読み出し基準電圧について新たな積分時間を判定することを含む。一実施形態では、最も低いSWを有するコードワードが選択される。選択されたコードワードに関連付けられた積分時間/基準電圧の組み合わせは、各基準電圧の新たな積分時間に使用され得る。したがって、各基準電圧に対する積分時間を較正することができる。「新たな積分時間」という用語は、積分時間の値が前の値と異なることを必ずしも意味しないことに留意されたい。むしろ、新たな積分時間という用語は、これが、必ずしもあらゆる積分時間を変化させない較正プロセスの結果であることを示すために使用されている。
上述したように、いくつかの実施形態では、積分時間は、谷探索に基づいて較正される。図13は、谷探索に基づいて積分時間を較正するプロセス1300の一実施形態のフローチャートを示す。プロセス1300は、プロセス900の一実施形態の更なる詳細を示す。一実施形態では、谷探索は、同じ読み出し基準電圧を使用して積分時間のセットを使用して読み出すことを含む。例えば、図8Bに関して、谷探索は、Vr4をメモリセルに印加し、異なる積分時間において感知することができる。ステップ1302は、メモリセルに基準電圧を印加することを含む。一実施形態では、基準電圧は、選択されたワード線に印加される。ステップ1302は、ステップ902の一実施形態である。
ステップ1304は、積分時間についてメモリセルを感知することを含む。ステップ1306は、各メモリセルについて、メモリセルが電流を伝導するかどうかを判定することを含む。一実施形態では、比較回路466は、(積分時間の後の)感知ノード464上の電圧を、トリップ電圧Vtripと比較する。感知ノード電圧がVtripを下回って減衰しない場合、メモリセルは非導電性状態にある。そうでなければ、メモリセルは導電性状態にある。この結果は、例えば、ラッチのうちの1つ(例えば、UDL、UMDL、LMDL、LDL)又は他の場所に記憶されてもよい。ステップ1308は、ビットフリップの数の判定を含む。このようにして、各積分時間を用いて、以前に使用された積分時間に対して状態が「フリップ」するメモリセルの数をカウントすることができる。したがって、このビットフリップ試験は、第1の積分時間に対して実行されない。一実施形態では、カウントは、非導電性から導電性に遷移するメモリセルの数について行われる。ステップ1304~1308は、ステップ904の一実施形態である。
ステップ1310は、考慮すべき更なる積分時間が存在するかどうかの試験である。ビットフリップの数が(前の積分時間に対して)各積分時間について判定された後、新たな積分時間がステップ1312において選択される。新たな積分時間は、谷の位置として選択される(図8Bを参照)。一実施形態では、谷は、最も少ないそのような遷移を有する位置に基づいて選択される。例えば、新たな積分時間は、最も少ないそのような遷移に基づいて選択することができる。これらの遷移は積分時間のペアに基づくため、新たな積分時間は、ペアのうちの一方、2つの中点のいずれかなどであり得る。谷探索を実行するために他の技術を使用してもよい。ステップ1312は、ステップ906の一実施形態である。
いくつかの実施形態では、積分時間は、メモリセルのセットから読み出されたデータ(例えば、コードワード)を復号することの失敗に応答して較正される。図14は、積分時間を較正することを含む、復号失敗から回復するプロセス1400の一実施形態のフローチャートを示す。積分時間を較正することは、回復プロセスにかなりの時間節約を提供する。プロセス1400は、ハードビット復号を使用してコードワードを復号することの失敗に応答して開始され得る。ハードビット復号は、ハードビット基準レベルでの読み出しによって判定されたハードビットを使用することができる。例えば、図8Bを参照すると、メモリセルは、各メモリセルに対してハードビットを生成するために、ハードビット基準レベルVr1、Vr4、Vr6、及びVr11において感知され得る。
ステップ1402は、1つ以上の基準レベルに対して積分時間を較正することを含む。例えば、Vr1、Vr4、Vr6、及び/又はVr11のうちの1つ以上に対する積分時間が較正される。プロセス900、1000、又は1050を、ステップ1402において使用することができる。以下により完全に論じるように、積分時間を較正することにより、SWなどのメトリックが生成され得る。
ステップ1404は、積分時間較正プロセスからのSWが閾値を上回るかどうかの判定である。より低いSWを有することが望ましい。SWが閾値を下回る場合、プロセスは、ステップ1408において、ソフトビット(SB)復号に進む。
しかしながら、SWが閾値を上回る場合、ステップ1406において読み出し基準電圧が較正される。読み出し基準電圧を較正することは、読み出し基準電圧について新たな電圧の大きさを判定することを指す。例えば、Vr1、Vr4、Vr6、及び/又はVr11に対して、新たな電圧の大きさが判定され得る。電圧の大きさを較正することは、読み出し基準電圧の積分時間を較正することとは異なり、典型的にはより多くの時間がかかることに留意されたい。読み出し基準電圧を較正するための任意の技術が使用されてもよい。一実施形態では、読み出し基準電圧を較正することは、Vt分布間の谷の探索に基づく。一実施形態では、読み出し基準電圧を較正することは、BESに基づく。
ステップ1408は、SB復号を実行することを含む。ソフトビット復号は、ハードビットの信頼性を示すために使用され得るソフトビット基準レベルにおいて感知することを伴う。改善された誤り訂正能力は、ソフトビットを使用してデータを復号することによって達成され得る。ソフトビットは、「ソフトビット基準レベル」のセットにおいてメモリセルを感知することに由来する。ソフトビットは、各メモリセルについてのハードビットの信頼性を示すことができる。例示のために、ソフトビットは、メモリセルエラー及び内部伝送エラーを経験し得る不揮発性メモリシステムにおける誤り訂正能力を向上させるために、ECC(誤り訂正コード)復号と共に使用することができる。例えば、改善された誤り訂正能力は、低密度パリティチェック(LDPC)コードを使用することと、ハードビットのみを使用することに基づく復号方式と比較して、デコーダへの入力としてソフトビット値を含めることと、によって達成され得る。
ソフトビット基準電圧は、対応するハードビット基準電圧よりもわずかに高い電圧及びわずかに低い電圧における基準電圧である。ソフトビット基準電圧のセットは、デコーダの訂正能力を増大させる「ソフト」信頼性情報を生成するために使用される。ソフトビット基準電圧での感知は、ハードビット基準レベルに近いメモリセルの物理パラメータ(例えば、Vt、抵抗)が、そのメモリセルのハードビットの信頼性をより低くさせるか、又はハードビット基準レベルから遠いメモリセルの物理パラメータが、ハードビットの信頼性をより高くさせるかを示す、「ソフトビット」を生成する。換言すれば、ソフト信頼性情報が、メモリセルがハードビット基準レベルに近い物理パラメータの値を有することを示す場合、これは、ソフト信頼性情報が、メモリセルがハードビット基準レベルから遠い物理パラメータの値を有することを示す場合よりも信頼性が低いと考えられる。
ステップ1410は、SB復号が成功したかどうかの判定である。そうである場合、プロセスは終了する。データはホスト120に返されてもよい。そうでなければ、ステップ1412を実行してXOR回復を使用する。一実施形態では、XORエンジン224/254は、XOR回復を実行するために使用される。
図15は、読み出し基準電圧を較正するプロセス1500の一実施形態のフローチャートを示す。プロセス1500は、ステップ1406の一実施形態である。ステップ1502は、BES5技術を使用して読み出し基準電圧を較正することを含む。BES5技術は、処理されるページの各ハードビット基準電圧に近い5つの位置においてメモリセルを感知する。図8Aを参照すると、メモリセルは、Vr1に近い5つの位置に対して5つの電圧(例えば、Vr1-2Δv、Vr1-Δv、Vr1、Vr1+Δv、Vr1+2Δv)において感知され得る。同様の感知は、Vr4、Vr6、及びVr11に近い5つの位置において実行されてもよい。BES5プロセスは、感知から導出されたコードワードの誤りメトリックを判定する。誤りメトリックは、例えば、シンドローム重み又はビット誤り率(BER)であってもよい。
ステップ1504は、SWが閾値を上回るかどうかの判定である。SWは、BES5プロセスにおいて分析されるコードワードのSWを指す。SWは、BES5プロセスによって判定された新たな読み出しレベルに対応する、コードワードの最も低いSWであり得る。SWが閾値を下回る場合、プロセスは終了する。SWが閾値を上回る場合、ステップ1506においてBES7技術を使用して、読み出し基準電圧を較正する。BES7技術は、処理されるページの各ハードビット基準電圧に近い7つの位置を使用する。図8Aを参照すると、メモリセルは、5つの電圧(例えば、Vr1-2Δv、Vr1-Δv、Vr1、Vr1+Δv、Vr1+2Δv)、及び2つの追加の電圧Vr1-3Δv、Vr1+3Δvにおいて感知され得る。読み出し基準電圧が較正された後、SB復号を実行することができる(図14のステップ1408を参照)。
図16~図18は、異なる積分時間を使用してメモリセルを感知する実施形態の更なる詳細を提供する。図16は、感知増幅器350(図4を参照)からの回路を示す概略図である。以下に説明するように、図16の回路は、キャパシタ(又は他の電荷蓄積デバイス)をプリチャージの大きさ(又は初期電圧)までプリチャージし、積分時間メモリセルを介してキャパシタを放電し、積分時間後にキャパシタにおける電圧を感知する。図16は、1つのキャパシタを特徴とするが、いくつかの実施形態では、任意の好適な電荷蓄積デバイスは、このキャパシタを交換又は補完することができる。感知電圧は、メモリセルが、感知されている電流を伝導したかどうかを示すものであり、これは、メモリセルの閾値電圧が、試験されている閾値電圧を超えるか下回るかを示す。
図16は、ビット線に接続されたトランジスタ1600と、トランジスタ1602とを示す。トランジスタ1600は、そのゲートにおいて信号BLSを受信し、ビット線に接続するか、又はビット線を分離するために使用される。トランジスタ1602は、そのゲートにおいて信号BLCを受信し、電圧クランプとして使用される。ゲート電圧BLCは、所望のビット線電圧+トランジスタ1602の閾値電圧に等しい定電圧でバイアスされる。したがって、トランジスタ1602の機能は、ビット線を通る電流が変化しても、感知動作中(読み出し又は検証中)に一定のビット線電圧を維持することである。
トランジスタ1602は、トランジスタ1604、1606、及び1608に接続される。トランジスタ1606は、キャパシタ1616に接続される。トランジスタ1606の目的は、キャパシタ1616がビット線と選択的に通信しているように、キャパシタ1616をビット線に接続し、ビット線からキャパシタ1616を切断することである。換言すれば、トランジスタ1606は、ステップ904、1004、1056、1102に関して上述した積分時間を調節する。即ち、トランジスタ1606がオンにされている間、キャパシタ1616は、ビット線を通して放電することができ、トランジスタ1606がオフされているとき、キャパシタ1616は、ビット線を通して放電することができない。
トランジスタ1606がキャパシタ1616に接続するノードも、トランジスタ1610及びトランジスタ1614に接続される。トランジスタ1610は、トランジスタ1608、1612、及び1618に接続される。トランジスタ1618もトランジスタ1620に接続される。トランジスタ1618及び1620は、PMOSトランジスタであり、図16の他のトランジスタは、NMOSトランジスタである。トランジスタ1610、1618、及び1620は、キャパシタ1616へのプリチャージ経路を提供する。トランジスタ1620のソースに電圧(例えばVdd又は他の電圧)が印加される。トランジスタ1610、1618、及び1620を適切にバイアスすることにより、トランジスタ1620のソースに印加される電圧を使用してキャパシタ1616をプリチャージすることができる。プリチャージ後、キャパシタ1616は、トランジスタ1606を介してビット線を通して放電することができる(トランジスタ1600及び1602が導通していると仮定する)。
図16の回路は、ラッチ回路を形成するインバータ1630及び1632を含む。インバータ1632の出力は、インバータ1630の入力に接続され、インバータ1630の出力は、インバータ1632の入力、並びにトランジスタ1620及び1622に接続される。インバータ1632の入力はVddを受信し、2つのインバータ1630、1632は、Vddを蓄積するためのラッチとして働く。インバータ1632の入力はまた、別の値に接続することができる。トランジスタ1612及び1622は、インバータ1630及び1632によって記憶されたデータをトランジスタ1614に通信するための経路を提供する。トランジスタ1622は、そのゲートにおいて信号FCOを受信する。トランジスタ1612は、そのゲートにおいて信号STROを受信する。FCO及びSTROを上昇又は下降させることにより、インバータ1630、1632とトランジスタ(感知スイッチ)1614との間に経路が設けられるか、又は切断される。トランジスタ1614のゲートは、SENとマークされたノードにおいてキャパシタ1616、トランジスタ1606、及びトランジスタ1610に接続される。キャパシタ1616の他端は、信号CLKに接続される。
上述のように、キャパシタ1616は、トランジスタ1610、1618、及び1620を介してプリチャージされる。これにより、ノードSENにおける電圧をプリチャージ電圧レベル(Vpre)まで上昇させる。トランジスタ1606がオンになると、メモリセルの閾値電圧が、試験される電圧レベルを下回る場合、キャパシタ1616は、ビット線及び選択されたメモリセルを介してその電荷を放電することができる。キャパシタ1616が放電可能である場合、(SENノードにおける)キャパシタにおける電圧が低下する。
SENノードにおけるプリチャージ電圧(Vpre)は、トランジスタ1614の閾値電圧よりも大きい。したがって、積分時間の前に、トランジスタ1614はオンである(導通している)。トランジスタ1614は積分時間中にオンであるため、トランジスタ1612はオフであるべきである。キャパシタが積分時間中に放電しない場合、SENノードにおける電圧はトランジスタ1614の閾値電圧を超えたままであり、インバータ1630、1632における電荷は、STROがトランジスタ1612をオンにしたとき、CLK信号に放電され得る。キャパシタが積分時間中に十分に放電した場合、SENノードにおける電圧は、トランジスタ1614の閾値電圧未満に低下する。これにより、トランジスタ1614はオフになり、インバータ1630、1632に記憶されたデータ(例えば、Vdd)は、CLKを介して放電される。そのため、インバータ1630、1632がそれらの充電又は放電を維持するかどうかを試験することは、検証プロセスの結果を示す。一実施形態では、結果は、トランジスタ1634ゲート信号NCOをオンにすることによって、トランジスタ1634(データアウト)を介してノードAにおいて読み出され得る。
キャパシタ1616のプリチャージレベル(即ち、ノードSENにおけるプリチャージ電圧)は、トランジスタ1610を通過する電流によって制限される。トランジスタ1610を通過する電流は、ゲート電圧H00によって制限される。したがって、ノードSENにおけるプリチャージ電圧は、トランジスタ1610の閾値電圧未満の電圧H00によって制限される。この構成により、システムは、ノードSENにおいて、H00を調節することによってプリチャージ電圧を調節することができる。H00におけるより大きい電圧は、プリチャージ時にSENノードにおいてより大きい電圧をもたらす。H00におけるより低い電圧は、プリチャージ時にSENノードにおいてより低い電圧をもたらす。
システムが(例えば、積分時間較正中に)感知動作を実行するとき、メモリセルの制御ゲートに印加される電圧は、セルの(ビット線に接続された)チャネルを導通させることができる。これが起こった場合、キャパシタがチャネルを通して放電され、キャパシタが放電するにつれて電圧が低下する。
図17は、メモリセルを通る電流を感知するためのプロセス1700の一実施形態を説明するフローチャートである。図17のプロセスは、図16の回路によって実行することができる。図17の実施形態は、電荷蓄積デバイスが、電流を検出するために、選択されたメモリセルを介してその電荷を放電する構造を仮定する。このような構造の一例は、上述のように、少なくとも部分的に図16によって示されている。図16の例では、電荷蓄積デバイス1616はキャパシタを備える。しかしながら、他の実施形態では、他のタイプの電荷蓄積デバイスを使用することもできる。
図17のステップ1702において、キャパシタ(又は他の電荷蓄積デバイス)を所定の電圧レベルまでプリチャージする。ステップ1704において、プリチャージされたキャパシタ(又は他の電荷蓄積デバイス)をビット線に接続する。ステップ1706において、キャパシタは、(選択されたメモリセルが検証されることを含めて)ビット線及びNANDストリングを介してその電荷を放電させることを可能にされる。ステップ1708において、システムは、積分時間待機する。積分時間の終了時に(ステップ1710)、システム(例えば、比較回路466)は、キャパシタの両端間の電圧を試験する。システムは、プリチャージ電圧から、ステップ1710において検出された電圧までの、キャパシタの両端間の電圧の変化を計算する。ステップ1712において、この計算された電圧の変化を比較値と比較する。例えば、比較回路466は、感知キャパシタ上の電圧をトリップ電圧と比較する。電圧の変化が比較値以上である場合、メモリセルが、感知される電流レベルよりも大きい電流を伝導したと仮定される。
図18は、図16からの様々な信号の挙動を説明するタイミング図である。信号BLSは、示されている時間全体でVddにあり、信号BLCは、Vbl+Vsrc+Vthにあり、Vblはビット線の電圧であり、Vsrcはソース線の電圧であり、Vthはトランジスタ1602の閾値電圧である。信号FLAは、t0においてVssで開始し、T6においてVddになる。信号FLAがVssにあるとき、プリチャージ経路はトランジスタ1610によって調節される。t0において、H00の電圧は、プリチャージレベルまで上昇する。H00において電圧を上昇させると、トランジスタ1610がオンになり、プリチャージ経路が開放される。H00における電圧の大きさが設定される。H00が高い間、トランジスタ1610はオンになり、キャパシタ1616は、(図18の下部から2番目に示されている)SENにおける電圧によって示されるように、T0とT1との間でプリチャージされる。時間t1において、H00はVssに引き下げられ、プリチャージが完了する。
信号X00は、キャパシタがビット線及び選択されたメモリセルを介して放電できるように、キャパシタ1616がビット線と通信していることを可能にするために使用される。時間t3において、X00はVblc+Vblxに上昇され、Vblcは信号BLCの電圧であり、Vblxは信号BLXの電圧である(両方とも上述された)。時間t4において、X00における電圧がVssに下げられる。時間t3と時間t4との間では、キャパシタ1616は、それが(選択されたメモリセルの閾値電圧に応じて)ビット線及び選択されたメモリセルを介して充電されると放電できるようにするために、ビット線と通信していることになる。信号CLKは、時間t2においてVblxまで上昇され、時間T5においてVssまで元に下げられて、回路内のいかなるファイティング条件も防止され、キャパシタ1616の適切な放電が可能になる。
上述したように、H00はt0とt1との間で上昇するため、キャパシタ1616(及びSENノード)は、t0とt1との間で充電される(プリチャージ)。これは図18に示されており、SENノードはVssからVpreまで充電される。t3においてX00が上昇すると、キャパシタ1616は、(閾値電圧が適切なレベルにある場合)ビット線を通して放電することができる。図18に示されるように、t3とt4との間で、Vpreは、Vpost_constまで放電する。試験されるメモリセルの閾値電圧が十分に高い場合、キャパシタ1616は放電せず、電圧はVpreに留まる。
図18は、信号FCOがt7においてVddまで上昇し、T9においてVssに下げられることを示している。信号STROは、t8においてVddまで上昇し、t9において下げられる。時間t8と時間t9との間には、インバータ1630、1632とトランジスタ1614との間の経路が存在する。ノードSENにおける電圧がトランジスタ1614の閾値電圧よりも大きい場合、インバータ1630、1632からCLKへの経路が存在し、インバータ1630、1632におけるデータは、信号CLKを通してかつトランジスタ1614を通して放散する。ノードSENにおける電圧がトランジスタ1614の閾値電圧よりも低い場合(例えば、キャパシタが放電された場合)、トランジスタ1614はオフになり、インバータ1630、1632によって蓄積された電圧はCLKに放散しない。図18は、Aにおいて、Vddにおける電圧レベルを示している。(例えば、選択されたメモリセルの閾値電圧が、試験される電圧よりも大きいため、十分な電流が流れないことにより)キャパシタの電圧が放散しない場合、トランジスタ1614はオンに留まり、ノードAにおける電圧は、(破線によって示されるように)Vssまで放散したままとなる。(例えば、選択されたメモリセルの閾値電圧が、試験される電圧を下回るため、十分な電流が流れることにより)キャパシタの電圧が放散した場合、トランジスタ1614はオフになり、ノードAにおける電圧は、(実線によって示されるように)Vddに留まる。ノードAの出力は、Vddを信号NCOに印加することによって、トランジスタ1634を介してデータアウト信号に提供される。
上記を考慮すると、第1の実施形態は、通信インターフェースと、通信インターフェースに結合された制御回路と、を備える装置を含むことが分かる。制御回路は、不揮発性メモリセルに接続するように構成される。制御回路は、1つ以上の基準電圧を不揮発性メモリセルのセットに印加するように構成される。制御回路は、1つ以上の基準電圧を不揮発性メモリセルのセットに印加しながら、複数の異なる積分時間について不揮発性メモリセルのセットを感知して、感知結果を生成するように構成される。制御回路は、感知結果に基づいて、1つ以上の基準電圧のうちの少なくとも1つの基準電圧の積分時間を較正するように構成される。
第2の実施形態では、かつ第1の実施形態の促進では、制御回路は、感知結果のための異なる積分時間の各々の間に、セット内の各メモリセルに関する情報のビットを判定するように更に構成される。制御回路は、異なる積分時間の各々の間に、セット内の各メモリセルに関する情報のビットに基づいて、少なくとも1つの基準電圧の積分時間を較正するように更に構成される。
第3の実施形態では、かつ第1又は第2の実施形態の促進では、1つ以上の基準電圧は、データページを感知するための複数の基準電圧を含む。制御回路は、感知結果に基づいて、複数の基準電圧の各々に対して別個の積分時間を較正するように構成される。
第4の実施形態では、かつ第1から第3の実施形態のいずれかの促進では、制御回路は、感知結果を使用して、ビット誤り率推定スキャン(BES)に基づいて、少なくとも1つの基準電圧の積分時間を較正するように構成される。
第5の実施形態では、かつ第1から第4の実施形態のいずれかの促進では、制御回路は、感知結果に基づいて、不揮発性メモリセルのセットに記憶されたデータのコードワードを生成するように構成される。制御回路は、コードワードの各々の誤りメトリックに基づいて、少なくとも1つの基準電圧の積分時間を較正するように構成される。
第6の実施形態では、かつ第5の実施形態の促進では、制御回路は、感知結果に基づいて、複数の積分時間/基準電圧の組み合わせを感知することをエミュレートするように構成される。制御回路は、複数の積分時間/基準電圧の組み合わせを感知することをエミュレートすることに基づいて、コードワードを生成するように構成される。
第7の実施形態では、かつ第1から第6の実施形態のいずれかの促進では、制御回路は、感知結果に基づいて、2つの閾値電圧分布間の谷を探索するように構成される。制御回路は、谷の位置に基づいて、1つ以上の基準電圧のうちの第1の基準電圧の積分時間を較正するように構成される。
第8の実施形態では、かつ第1から第7の実施形態のいずれかの促進では、1つ以上の基準電圧を不揮発性メモリセルのセットに印加しながら、複数の異なる積分時間について不揮発性メモリセルのセットを感知するために、制御回路は、セット内の各メモリセルについて、及び各積分時間について、複数の感知ノードの各々上に初期電圧を確立することであって、各感知ノードが、メモリセルのうちの1つに関連付けられている、確立することと、感知ノード上に初期電圧を確立した後に、各感知ノードを、関連付けられたメモリセルに接続することと、感知ノードを、関連付けられたメモリセルに接続した後の、積分時間待機した後に、各感知ノード上の電圧を検出することと、を行うように構成される。
第9の実施形態では、かつ第1から第8の実施形態のいずれかの促進では、制御回路は、メモリセルのセットから読み出されたコードワードを復号することに失敗したことに応答して、少なくとも1つの基準電圧の積分時間を較正するように構成される。制御回路は、少なくとも1つの基準電圧に対する積分時間を使用して、メモリセルを感知することに基づいて、コードワードを回復するように構成される。
第10の実施形態では、かつ第1から第9の実施形態のいずれかの促進では、制御回路は、少なくとも1つの基準電圧の積分時間を較正した後に、1つ以上の基準電圧を不揮発性メモリセルのセットに印加することと、少なくとも1つの基準電圧に対する較正された積分時間を使用してメモリセルのセットを感知して、データ結果を生成することと、データ結果に基づいて、メモリセルのセットに記憶されたコードワードを復号することと、を行うように更に構成される。
一実施形態は、基準電圧のセットを、不揮発性メモリセルのグループに接続されたワード線に印加することと、基準電圧のセットのうちの各基準電圧をワード線に印加しながら、複数の異なる積分時間について不揮発性メモリセルのグループを感知して、感知結果を生成することと、感知結果に基づいて、不揮発性メモリセルのグループに記憶されたデータのコードワードを生成することと、コードワードの誤りメトリックに基づいて、基準電圧のセットのうちの各基準電圧の積分時間を較正することと、を含む方法を含む。
一実施形態は、不揮発性記憶システムを含み、この不揮発性記憶システムは、不揮発性メモリセルと、メモリセルに接続されたワード線と、複数のビット線であって、ビット線の各々が、メモリセルのうちの1つに関連付けられている、複数のビット線と、ワード線に基準電圧を提供するように構成されている電力制御モジュールと、基準電圧がワード線に印加されながら、複数の積分時間についてメモリセルを感知して、複数の積分時間のうちの各積分時間の感知結果を生成するための手段と、各積分時間の感知結果に基づいて、基準電圧の積分時間を較正するための手段と、を備える。
実施形態では、基準電圧がワード線に印加されながら、複数の積分時間について不揮発性メモリセルを感知して、複数の積分時間のうちの各積分時間の感知結果を生成するための手段は、状態機械312、アドレスデコーダ314、電力制御316、読み出し/書き込み回路328、感知ブロック340、感知増幅器350、ラッチ360、感知回路460、及び/又は管理回路480のうちの1つ以上を含む。実施形態では、基準電圧がワード線に印加されながら、複数の積分時間について不揮発性メモリセルを感知して、複数の積分時間のうちの各積分時間の感知結果を生成するための手段は、プロセス1100、プロセス1700、及び/又はプロセス1300のステップ1304~1308のうちの1つ以上を実行することを含む。
実施形態では、各積分時間の感知結果に基づいて、基準電圧の積分時間を較正するための手段は、プロセッサ、PGA(プログラマブルゲートアレイ、FPGA(フィールドプログラマブルゲートアレイ)、ASIC(特定用途向け集積回路)、集積回路、又は他のタイプの回路を含む。実施形態では、各積分時間の感知結果に基づいて、基準電圧の積分時間を較正するための手段は、状態機械312、プロセッサ220、プロセッサ250、及び/又はメモリプロセッサ156のうちの1つ以上を含む。一実施形態では、各積分時間の検出結果に基づいて、基準電圧の積分時間を較正するための手段は、プロセス1200を実行する。
本発明の前述の詳細な説明は、例示及び説明の目的のために提示したものである。前述の詳細な説明は、網羅的であること、又は開示した正確な形態に本発明を限定することを意図したものではない。上記の教示に鑑みて多くの修正及び変形が可能である。説明した実施形態は、本発明の原理及びその実際の用途を最良に説明するために選択されたものであり、それによって、当業者が様々な実施形態で、企図される特定の使用法に適するように様々な修正を伴って、本発明を最良に利用することを可能にする。本発明の範囲は、本明細書に添付の請求項によって定義されることが意図されている。