本実施形態についての以下の詳細な記述では、本開示の一部であり、本実施形態を具体的に実現する特定の実施形態を、例示目的で示す図面を参照している。これらの実施形態は当業者が本発明を実施可能なくらい十分詳細に説明しており、そして、他の実施形態は利用され得、本開示の範囲から逸脱せずに処理的、電気的にあるいは機械的に変更が成されるかもしれないと理解されるべきである。以下の詳細な記述は、したがって、限定的な意味に取るべきではない。
従来のソリッドステートメモリデバイスは二値信号の形でデータを渡す。通常グランド電位は、データビットの第1の論理レベル、例えば‘0’のデータ値を表し、一方、供給電位はデータビットの第2の論理レベル、例えば‘1’のデータ値を表す。マルチレベルセル(MLC)では、例えば、各々200mVの範囲の4つの異なったしきい値電圧(Vt)範囲をあてがい、各範囲を異なったデータ状態と対応させ、その結果、4つのデータ値かビットパターンを表す。Vtの分布が重なるのを妨ぐため、各範囲の間には、通常、0.2Vから0.4Vのデッドスペースかマージンがある。もし最初の範囲の中にセルのVtがあるなら、セルは、論理的な11状態を保存すると考えてもよく、セルの消去状態にあると通常考えられる。もし2番目の範囲の中にVtがあるなら、セルが論理的な10状態を保存すると考えてもよい。3番目の範囲の中にVtがあるなら、セルは論理的に00の状態を保存すると考えてもよい。そしてもしVtが4番目の範囲にあるのならば、セルは論理的に01の状態を保存すると考えてもよい。
従来のMLC装置を上記したようにプログラミングするとき、消去状態に相当するように、一般に、ブロックとして、最初にセルは消去される。1ブロックのセルの消去に続いて、必要なら、各セルの最下位ビット(LSB)は最初にプログラムされる。例えば、LSBが1であればプログラミングは必要ないが、LSBが0であれば、ターゲットメモリセルのVtは11の論理状態に対応するVtの範囲から10の論理状態に対応するVtの範囲に移される。LSBのプログラミングに続いて、それぞれのセルの最上位ビット(MSB)が同じように、必要なところにVtを移動させてプログラムされる。従来のメモリデバイスのMLCから読み出すときは、一般的にセル電圧Vtがいずれの範囲に入るかが、1以上の読出し処理で確定される。例えば、第1の読出し処理は、ターゲットメモリセルのVtが、MSBが1であることを示すか若しくは0であることを示すかを確定し得、一方で、第2の読出し処理は、ターゲットセルのVtが、LSBが1であることを示すか若しくは0であることを示すかを確定し得る。しかしながら、どんなに多くのビットが各セルに保持されていても、ターゲットメモリセルへの1つの読出し処理に対して、その都度、単一ビットを返す。多重プログラム及び読出し処理におけるこの問題は、各MLCがより多くのビットを保持するとき、ますます厄介になる。かかる各プログラム若しくは読出し処理はバイナリ処理なので、すなわち、各々はセルあたり単一ビットの情報をプログラム若しくは応答するので、各MLCがより多くのビットを保持することは長い処理時間につながる。
本実施形態のメモリデバイスは、データを、メモリセルでのVtの範囲として保持する。しかしながら、従来のメモリデバイスとは対照的に、プログラム及び読出し処理は、データ信号をMCLデータ値の個別のビットとしてではなく、その全体のビットパターンといった、MCLデータ値の完全な表現として利用する。例えば、2ビットMLC装置において、1つのセルのLSBのプログラミングを行い、続いてそのセルのMSBのプログラミングを行う代わりに、ターゲットしきい値電圧がそれら2ビットのビットパターンを表すようにプログラムされてもよい。すなわち第1のビットに対する第1のしきい値電圧のプログラミング、第2のビットに対する第2のしきい値電圧へシフト等よりむしろ、そのメモリセルがターゲットしきい値電圧を得られるまで、一連のプログラムとベリファイの処理が、メモリセルに適用される。同様に、セルに記憶されている各ビットを確定するのに多重読出し処理を利用する代わりに、そのセルのしきい値電圧は、セルの完全なデータ値若しくはセルのビットパターンを表す単一信号として確定され渡されてもよい。様々な本実施形態のメモリデバイスは、従来のメモリデバイスが行っているように、単にメモリセルがいくつかの正規なしきい値電圧以上若しくは以下であるかを見てはいない。代わりに、連続した可能なしきい値電圧にわたるそのメモリセルの実際のしきい値電圧を表す電圧信号が生成されている。このアプローチによる優位性は、セルあたりのビット数が増えるにつれ、より重要になる。例えば、メモリセルが8ビットの情報を保存するなら、1つの読出し処理で8ビットの情報を表す1つのアナログデータ信号が返されるだろう。
図1は開示する実施形態のメモリデバイス101のブロック概略図である。メモリデバイス101は行と列に配列されたメモリセルのアレイ104を含んでいる。種々の実施形態は主としてNANDメモリアレイを参照しているが、種々の実施形態ではメモリアレイ104の特定の構成に制限されるものではない。本実施形態に適合する他のアレイ構造としては、NOR アレイ、ANDアレイ、およびバーチャルグランドアレイを含んでいる。一般に、ここに説明された実施形態は、各メモリセルのしきい値電圧を示すデータ信号を生成することを許可するどんなアレイ構成にでも適用できる。
行デコード回路108及び列デコード回路110は、メモリデバイス101に供給されるアドレス信号をデコードするために備えられる。アドレス信号は、メモリアレイ104にアクセスするために受け取られて、デコードされる。また、メモリデバイス101は、メモリデバイス101からのデータ及びステータス情報の出力だけでなくメモリデバイス101へのコマンド、アドレス及びデータの入力を管理する入力/出力(I/O)制御回路112をもまた含んでいる。アドレスレジスタ114は、I/O制御回路112と行デコード回路108及び列デコード回路110の間に接続され、アドレス信号をデコードする前にラッチする。コマンドレジスタ124は、I/O制御回路112とコントロールロジック116の間に接続され、入ってくるコマンドをラッチする。コントロールロジック116は、コマンドに応答してメモリアレイ104へのアクセスを制御し、外部のプロセッサ130に対してステータス情報を生成する。コントロールロジック116は、行デコード回路108及び列デコード回路110と接続され、アドレスに応答して行デコード回路108及び列デコード回路110を制御する。
コントロールロジック116はまた、サンプルアンドホールド回路118と接続される。サンプルアンドホールド回路118は、入ってくるか若しくは出て行くかのいずれかのアナログ電圧レベル形式でのデータをラッチする。例えば、サンプルアンドホールド回路は、メモリセルに書き込まれることになるデータを示す入ってくる電圧信号か、若しくはメモリセルから送られるしきい値電圧を示す出て行く電圧信号をサンプリングするためのキャパシタ や他のアナログ保持デバイスを含む。サンプルアンドホールド回路118はさらに外部装置に、より強いデータ信号を供給するためのサンプリングした電圧の増幅及び/若しくはバッファリングを行ってもよい。
アナログ電圧信号の取り扱いは、撮像装置の画素への照明の入射に対応して生成されるチャージレベルがキャパシタ上に保存される、CMOS撮像装置の技術の分野でよく知られている手法と同様の手法を取ってもよい。これらのチャージレベルは、次に、参照キャパシタを2番目の入力とした差動増幅器を使用することによって、電圧信号に変換される。次に差動増幅器の出力は、アナログ/デジタル変換(ADC)デバイスに送られ、照明強度を表しているデジタル値を得る。本実施形態では、メモリセルの読出しのためにキャパシタが従うメモリセルの実際の電圧レベルや、メモリセルをプログラムするためにキャパシタが従うメモリセルのターゲット しきい値電圧に応じて、電荷がキャパシタに保持されてもよい。この電荷は、2番目の入力がグランド入力若しくは他の参照信号である差動増幅器の使用によってアナログ電圧に変換することができるであろう。差動増幅器の出力は、読出し処理では次にメモリデバイスから出力するためにI/O制御回路112に送られ、若しくはメモリデバイスをプログラムするときに、1回以上のベリファイ処理中の比較に用いられる。なおI/O制御回路112は、アナログ若しくはデジタルデータインタフェースのいずれともコミュニケーションを行えるように、アナログ信号からの読み出しデータをデジタルビットパターンに変換するために、および、デジタルビットパターンからの書き込みデータをアナログ信号に変換するために、オプション的にアナログ/デジタル変換の機能及びデジタル/アナログ変換(DAC)の機能を含むようにすることも出来る。
書き込み処理の間、メモリアレイ104のターゲットメモリセルは、それらのVtレベルを示す電圧がサンプルアンドホールド回路118に保持されるレベルと一致するまでプログラムされる。これは、1つの例として、差動感知デバイスを用いて保持電圧とターゲットメモリセルのしきい値電圧を比較することによって達成される。従来のメモリプログラミングのように、メモリセルのしきい値電圧が増加して所望の値に達するか超えるまで、プログラミングパルスはターゲットメモリセルに加えられ得る。読出し処理では、外部プロセッサ(図1では不図示)に渡すために、ターゲットメモリセルのVtレベルは直接アナログ信号として若しくはメモリデバイス外部若しくは内部のADC/DAC機能によってアナログ信号をデジタル化してサンプルアンドホールド回路118に送られる。
セルのしきい値電圧はさまざまな方法で決定されているかもしれない。例えば、ターゲットメモリセルがアクティブとなったときにワード線の電圧がサンプリングされるかもしれない。もう一つの方法として、ブースト電圧をターゲットメモリセルの第1のソース/ドレイン側に印加し、そのしきい値電圧はコントロールゲート電圧と他のソース/ドレイン側の電圧との差分とすることができるであろう。電圧をキャパシタと結合することによって、電荷はそのサンプル電圧を保持するためにキャパシタと共有されるだろう。なおサンプル電圧はしきい値電圧と同じである必要はなく、単にその電圧を示すものである。例えば、ブースト電圧をメモリセルの第1のソース/ドレイン側に供給し、またそのコントロールゲートに既知の電圧を供給した場合、メモリセルの第2のソース/ドレイン側で生じた電圧は、メモリセルのしきい値電圧を示しているので、データ信号として得ることが出来るであろう。
サンプルアンドホールド回路118は、キャッシング、すなわち、各データ値への複数の記憶位置を含むかもしれず、その結果メモリデバイス101は最初のデータ値を外部プロセッサに送っている間に次のデータ値を読出しているかもしれないし、あるいは最初のデータ値をメモリアレイ104に書き込んでいる間に次のデータ値を受信しているかもしれない。ステータスレジスタ122は、外部プロセッサへ出力するステータス情報をラッチするためにI/O制御回路112とコントロールロジック116の間に結合される。
メモリデバイス101は、制御リンク132によってコントロールロジック116で制御信号を受信する。制御信号はチップ・イネーブルCE#、コマンドラッチイネーブルCLE、アドレスラッチイネーブルALE、そしてライトイネーブルWE#を含んでもよい。メモリデバイス101は、コマンド(コマンド信号の形で)、アドレス(アドレス信号の形で)、及びデータ(データ信号の形で)を外部プロセッサからマルチプル入力/出力(I/O)バス134によって受信してもよく、I/Oバス134によって外部プロセッサにデータを出力してもよい。
具体的な例では、コマンドはI/Oバス134の入力/出力(I/O)ピン[7:0]を介してI/O制御回路112で受信され、そしてコマンドレジスタ124に書き込まれる。アドレスはI/Oバス134の入力/出力(I/O)ピン[7:0]を介してI/O制御回路112で受信され、そしてアドレスレジスタ114に書き込まれる。データはデバイスが8パラレル信号を受信可能なように入力/出力(I/O)ピン[7:0]を介して、若しくはデバイスが16パラレル信号を受信可能なように入力/出力(I/O)ピン[15:0]を介してI/O制御回路112で受信され、そしてサンプルアンドホールド回路118に転送される。データは、デバイスが8パラレル信号を転送可能なように入力/出力(I/O)ピン[7:0]を介して出力されてもよく、あるいはデバイスが16パラレル信号を転送可能なように入力/出力(I/O)ピン[15:0]を介して出力されてもよい。回路や信号を追加可能なのは当業者には明らかであり、図1のメモリデバイスは、開示の実施形態の焦点を合わせるのを助けるために簡素化している。加えて図1のメモリデバイスは、種々の信号の出力及び受信が一般的な慣習に従って表現されているが、種々の実施形態は、本明細書において明確に述べられない限りは、記述されている詳細な信号及びI/O構成に制限されるものではない。例えば、コマンド及びアドレス信号をデータ信号を受信する入力とは別の入力として受信することができるであろうし、I/Oバス134のただ一つのI/O線を介してシリアルにデータ信号を送信できるであろう。データ信号が個々のビットの代わりにビットパターンを表すので、8ビットのデータ信号のシリアル通信は、個々のビットを表す8信号のパラレル通信と同じくらい効率的であるかもしれない。
図2は図1でメモリアレイ104として使用されるNANDメモリアレイ200部分の例の図である。図2では、メモリアレイ200はワード線2021から202N及び交差するビット線204tから204Mを含む。デジタル環境内のアドレッシングの容易さのため、ワード線202の数及びビット線204の数は、ほとんどの場合それぞれ2の累乗である。
メモリアレイ200はNANDストリング2061乃至206Mを含む。各NANDストリングは、ワード線202とビット線204の交点の位置にそれぞれ配置されたトランジスタ2081乃至208Nを含む。トランジスタ208は、データを保持する不揮発性のメモリセルを表し図2ではフローティングゲートのトランジスタとして示されている。各NANDストリング206のフローティングゲートトランジスタ208は、1つ以上のソース選択ゲート210、例えば電界効果トランジスタ(FET)と、1つ以上のドレイン選択ゲート212、例えばFET、の間でソースとドレインが連続的に接続される。各ソース選択ゲート210は、ローカルビット線204とソース選択線214の交点に配置され、一方、各ドレイン選択ゲート212は、ローカルビット線204とドレイン選択線215の交点に配置される。
各ソース選択ゲート210のソースは、共通ソース線216に接続されている。各ソース選択ゲート210のドレインは、対応するNANDストリング206の第1のフローティングゲートトランジスタ208のソースと接続されている。例えば、ソース選択ゲート2101のドレインは、対応するNANDストリング2061のフローティングゲートトランジスタ2081のソースと接続されている。各ソース選択ゲート210のコントロールゲートはソース選択線214に接続されている。もし複数のソース選択ゲート210が所定のNANDストリング206のために利用されるのならば、それらは連続的に共通ソース線216とそのNANDストリング206の第1のフローティングゲートトランジスタ208の間に直列に接続されるであろう。
各ドレイン選択ゲート212のドレインは対応するNANDストリングのためにローカルビット線204とドレインコンタクトで接続されている。例えばドレイン選択ゲート2121のドレインは対応するNANDストリング2061のためにローカルビット線2041とドレインコンタクトで接続されている。各ドレイン選択ゲート212のソースは対応するNANDストリング206の最後のフローティングゲートトランジスタ208のドレインに接続されている。例えばドレイン選択ゲート2121のソースは、対応するNANDストリング2061のフローティングゲートトランジスタ208Nのドレインに接続されている。もし複数のドレイン選択ゲート212が所定のNANDストリング206のために利用されるのならば、それらは連続的に対応するビット線204とそのNANDストリング206の最後のフローティングゲートトランジスタ208Nの間に直列に接続されるであろう。
一般的なフローティングゲートトランジスタ208の構成は、図2に示すように、ソース230及びドレイン232、フローティングゲート234、及びコントロールゲート236を含む。フローティングゲートトランジスタ208は、ワード線202に接続されたそれらコントロールゲート236を持つ。フローティングゲートトランジスタ208の列は、所定のローカルビット線204に接続されたそれらNANDストリング206である。フローティングゲートトランジスタ208の行は、所定のワード線202に共通接続されたそれらトランジスタである。また、他の形式のトランジスタ208として、2つ若しくはそれ以上のしきい値電圧範囲のうちの1つを仮定するようにプログラムされることが可能な、NROM、磁気若しくは強誘電トランジスタ、並びに他のトランジスタが、開示の実施形態と共に利用してもよい。
種々の実施形態のメモリデバイスは、大容量記憶装置内で有効に使用されてもよい。種々の実施形態による、これら大容量記憶装置は従来のHDDと同じフォームファクターや通信バスインタフェースを持っているかもしれず、その結果さまざまな用途おいて、それらの大容量記憶装置をそのようなドライブと置き換えることができる。HDDに対するいくつかの共通するフォームファクターは、現在のパーソナルコンピュータや大型のデジタルメディアレコーダで一般に用いられる3.5”、2.5”及びPCMCIA (Personal Computer Memory Card International Association)のフォームファクター、のみならず携帯電話や、携帯情報端末(PDA)やデジタルメディアプレーヤーなどのような、小さなパーソナル機器で一般に使用される1.8”、及び1”のフォームファクターも含む。いくつかのコモンバスインタフェースは、ユニバーサルシリアルバス(USB)、ATアタッチメントインタフェース(ATA)[integrated drive electronics若しくはIDEとしても知られる]、シリアルATA(SATA)、スモールコンピュータシステムインタフェース(SCSI)、及び米国電気電子技術者学会(IEEE)1394規格を含んでいる。様々な形態要素や通信インタフェースを載せたが、本実施形態は特定のフォームファクターや通信規格に限定されるものではない。更には、本実施形態は、HDDフォームファクター、若しくは通信インタフェースに準拠していなくてもよい。図3は、本公開の1つの実施形態による大容量ソリッドステート記憶装置300の概略ブロック図である。
大容量記憶装置300は、本開示の実施形態に従ったメモリデバイス301、読出し/書き込みチャネル305及びコントローラ310を含む。読出し/書き込みチャネル305は、メモリデバイス301から受け取ったデータ信号のA/D変換のためだけでなく、コントローラ310から受け取ったデータ信号のD/A変換のためにも設けられている。コントローラ310は、バスインタフェース315を介して大容量記憶装置300と外部プロセッサ(図3では不図示)の間のやりとりを行うために設けられている。なお読出し/書き込みチャネル305は、点線でメモリデバイス301’として示されるような1つ以上の追加メモリデバイスへのサービス提供を行うことが出来るであろう。通信のための単一メモリデバイス301の選択は、マルチビットチップイネーブル信号か他の多重化方式を通して扱うことが出来る。
メモリデバイス301はアナログインタフェース320及びデジタルインタフェース325を介して読出し/書き込みチャネル305と結合される。アナログインタフェース320は、メモリデバイス301と読出し/書き込みチャネル305の間のアナログデータ信号の経路として設けられており、またデジタルインタフェース325は読出し/書き込みチャネル305からメモリデバイス301への制御信号、コマンド信号及びアドレス信号の経路として設けられている。デジタルインタフェース325はさらにメモリデバイス301から読出し/書き込みチャネル305へのステータス信号の経路として設けられてもよい。アナログインタフェース320及びデジタルインタフェース325は、図1のメモリデバイス101に対して述べたように信号線を共有してもよい。図3の実施形態はメモリデバイスへのアナログ/デジタルの両方のインタフェースを描いているが、制御信号、コマンド信号、ステータス信号、アドレス信号及びデータ信号の経路としてデジタルインタフェースのみを使用してメモリデバイス301は直接コントローラ310とやりとりするように、読出し/書き込みチャネル305の機能は、図1で論議したようにオプション的にメモリデバイス301に組み込むこともできる。
読出し/書き込みチャネル305は、コントローラ310と、データインタフェース330や制御インタフェース335のような1つ以上のインタフェースを介して接続される。データインタフェース330は、読出し/書き込みチャネル305とコントローラ310との間のデジタルデータ信号の経路として設けられている。制御インタフェース335はコントローラ310から読出し/書き込みチャネル305への制御信号、コマンド信号及びアドレス信号の経路として設けられている。制御インタフェース335は、さらに読出し/書き込みチャネル305からコントローラ310へのステータス信号の経路として設けられていてもよい。ステータス及びコマンド/制御信号は、制御インタフェース335とデジタルインタフェース325を接続する点線によって描かれるように、コントローラ310とメモリデバイス301の間で直接送られるかもしれない。
図3では、2つの異なったデバイスとして描かれているが、読出し/書き込みチャネル305とコントローラ310の機能は、代わりに単一の集積回路デバイスに実行させることもできる。また、個々のデバイスが、異なったフォームファクターや通信インタフェースに本実施形態が適合するようにより柔軟性を備えるようにメモリデバイス301を維持する一方で、メモリデバイス301もまたICデバイスなので、全体の大容量記憶装置300を1つのICデバイスとして製造することが出来る。
読出し/書き込みチャネル305は、少なくともデジタルデータストリームをアナログデータストリームに変換したりその逆を行ったりするように構成されたシングルプロセッサである。デジタルデータストリームはデータ信号をバイナリ電圧レベルの形、すなわち第1のバイナリデータ値、例えば0を持つ1つのビットを示唆する第1の電圧レベル、及び第2のバイナリデータ値、例えば1を持つ1つのビットを示唆する第2の電圧レベル、で供給する。アナログデータストリームは、2ビット以上の異なったビットパターンに対応する異なった電圧レベル若しくは範囲を有する、2つ以上のレベルを持つアナログ電圧の形でデータ信号を供給する。例えばメモリセルあたり2ビットを保持するシステムにおいて、アナログデータストリームの電圧レベルの第1の電圧レベル若しくは範囲はビットパターン11に対応することができ、アナログデータストリームの電圧レベルの第2の電圧レベル若しくは範囲はビットパターン10に対応することができ、アナログデータストリームの電圧レベルの第3の電圧レベル若しくは範囲はビットパターン00に対応することができ、アナログデータストリームの電圧レベルの第4の電圧レベル若しくは範囲はビットパターン01に対応することができる。よって種々の実施形態における1つのアナログデータ信号は、2つ以上のデジタルデータ信号に変換され、そして逆もまた同様である。
実際には、制御信号及びコマンド信号はコントローラ310を介してメモリデバイス301にアクセスするためにバスインタフェース315で受信される。アドレス値及びデータ値はまた、例えば読出し、書き込み、フォーマット等、どのようなタイプのアクセスが望まれているかに依存してバスインタフェース315で受信されてもよい。共有バスシステムでは、バスインタフェース315は様々な他のデバイスと共にバスに接続される。特定デバイスと直接的に通信するために、続くコマンドに従って動作するのがバス上のどのデバイスであるかを示唆する識別値がそのバスに発行されてもよい。識別値が大容量記憶装置300によってもたれている値と一致したならば、コントローラ310はバスインタフェース315で続くコマンドを引き受けるだろう。もし識別値が一致しなければ、コントローラ310は続くコマンドを無視するだろう。同じように、バスの上で衝突を避けるために、共有バスの上の様々なデバイスは、個別にバスを制御している間、他のデバイスに対してアウトバンド通信を中断するよう命令してもよい。バスの共有と衝突回避のプロトコルは、よく知られたものなので、ここでは詳細には述べない。次に、コントローラ310は、処理を行うために、コマンド、アドレス及びデータの信号を読出し/書き込みチャネル305へ送る。なおコントローラ310から読出し/書き込みチャネル305へと通過したコマンド、アドレス及びデータの信号は、バスインタフェース315で受け取った信号と同じ信号である必要はない。例えば、バスインタフェース315の通信規格は読出し/書き込みチャネル305やメモリデバイス301の通信規格と異なっていてもよい。この状況で、コントローラ310は、メモリデバイス301にアクセスするのに先立って、コマンド及び/またはアドレス方式を変換してもよい。加えて、コントローラ310が1つ以上のメモリデバイス301内の負荷平準化を提供してもよく、その場合、メモリデバイス301の物理アドレスは、所定の論理アドレスに対して時間と共に変化する。したがってコントローラ310は、外部デバイスからの論理アドレスをターゲットメモリデバイス301の物理アドレスにマッピングするだろう。
書き込み要求に関しては、コマンド及びアドレスの信号に加え、コントローラ310はデジタルデータ信号を読出し/書き込みチャネル305に送る。例えば16ビットデータワードでは、コントローラ310は第1若しくは第2のバイナリ論理レベルを持つ16個の個別信号を送る。読出し/書き込みチャネル305は、次に、デジタルデータ信号をそのデジタルデータ信号のビットパターンを表すアナログデータ信号に変換するだろう。前述の例を続きとして、読出し/書き込みチャネル305は、16の個々のデジタルデータ信号を、求められている16ビットデータパターンを示す電位レベルを持つ単一のアナログ信号に変換するために、D/A変換を用いるだろう。1つの実施形態においては、デジタルデータ信号のビットパターンを示すアナログデータ信号は、ターゲットメモリセルの求められているしきい値電圧を示している。しかしながら、ワン−トランジスタメモリセルのプログラミングにおいては、隣接しているメモリセルのプログラミングは既にプログラムされたメモリセルのしきい値電圧を増加させる場合がしばしばある。よって、別な実施形態では、読出し/書き込みチャネル305は、しきい値電圧における、これらの種類の予想される変動を考慮に入れることができ、最終的に求められるしきい値電圧より低いしきい値電圧を示すようなアナログデータ信号に調節することができる。コントローラ310からのデジタルデータ信号の変換後、読出し/書き込みチャネル305は、次に、書き込みコマンド及びアドレス信号を、個々のメモリセルをプログラムするために用いるアナログデータ信号と共にメモリデバイス301へ送るだろう。プログラミングはセル毎に行うことが出来るが、一般的には1動作あたりに、1ページのデータに対して行われる。典型的なメモリアレイアーキテクチャーでは、1ページのデータは、1つのワード線に接続されている1つおきのメモリセルを含む。
読出し要求については、コントローラはコマンド及びアドレスの信号を読出し/書き込みチャネル305に送る。読出し/書き込みチャネル305は、読出しコマンド及びアドレスの信号をメモリデバイス301に送るだろう。読出し処理の後で、応答として、メモリデバイス301は、アドレス信号と読出しコマンドで定義されたメモリセルのしきい値電圧を示すアナログデータ信号を返すだろう。メモリデバイス301は、これらのアナログデータ信号をパラレル若しくはシリアル方式で転送し得る。
アナログデータ信号は、別々の電圧パルスとしてではなく、実質上アナログ信号の連続ストリームとして転送されるかもしれない。この状態において、読出し/書き込みチャネル305は、HDDへのアクセスで使用されPRML若しくはパーシャルレスポンス、最大公算と呼ばれる信号処理と類似した信号処理を使用するかもしれない。典型的なHDDのPRML処理においては、HDDの読出しヘッドはHDDプラッタに対する読出し処理中に生じる磁束変動を示すアナログ信号のストリームを出力する。読み出しヘッドにより引き起こされる磁束変動によって生じるこのアナログ信号の本当の山と谷をとらえるのを試みるよりむしろ、信号パターンのデジタル表現を生成するために信号を定期的にサンプリングしている。このデジタル表現は、次に、そのアナログ信号パターンの生成の要因となる磁束変化の公算のあるパターンを決定するために分析されることができる。これと同じ種類の処理を、本開示の実施形態と共に利用することができる。メモリデバイス301からのアナログ信号のサンプリングによって、PRML処理はそのアナログ信号の生成に関与するしきい値電圧の公算のあるパターンを決定するのに用いることができる。
図4は、本開示の実施形態に基づいた読出し/書き込みチャネル305によってメモリデバイス301から受信されるようなデータ信号450を概念的に示した波形を描画したものである。データ信号450は定周期でサンプリングされ、そしてデータ信号450のデジタル表現はサンプリングされた電圧レベルの大きさから作り出されることができる。1実施形態では、データ信号450の定常状態部分の間サンプリングが発生するように、そのサンプリングはそのデータ出力と同期され得る。そのような実施形態は、時間t1、t2、t3、及びt4において、点線によって示されるようなサンプリングで描かれる。しかしながら、もし同期したサンプリングが正しく整列されていない状態になれば、データサンプルの値は定常状態値とかなり異なっているかもしれない。代りの実施形態では、データサンプルによって示唆される勾配の変動を観察するなど、定常状態が発生すると思われるところでの判断を許容できるだけサンプリングレートを大きくするだろう。そのような実施形態は、時間t5、t6、t7、及びt8における、点線によって表現されるサンプリングにより描かれており、ここで、時間t6におけるデータサンプルとt7におけるデータサンプルの間の勾配は定常状態を示すかもしれない。そのような実施形態では、サンプリングレートと表現精度の間でトレードオフが行われる。より高いサンプリングレートは、より正確な表現となるが、処理時間が増加する。そして、サンプリングがデータ出力に同期されているか若しくはより頻繁にサンプリングを行っているかにかかわらず、デジタル表現は、その後、入ってくるどんな電圧レベルがおそらくそのアナログ信号パターンを生成する要因となったのかの予測に使用できる。同様に、入って来る電圧レベルのこの予想されたパターンから、読み出される個々のメモリセルのありそうなデータ値を予測できる。
メモリデバイス301からのデータ値の読出しの際、誤りが発生するであろうことを認識した場合、読出し/書き込みチャネル305は誤り訂正を含んでいるかもしれない。誤り訂正は予期された誤りから復旧するために、HDDのみならず一般にメモリデバイスで用いられる。一般的には、メモリデバイスはユーザデータを第1のセットの位置に、そして誤り訂正符号(ECC)を第2のセットの位置に保持するだろう。読出し処理の期間では、ユーザデータ及びECCの両方はユーザデータの読出し要求に対する応答として読み出される。知られているアルゴリズムを用いて、読出し処理から返されたユーザデータはECCと比較される。もし誤りがそのECCの範囲内であったなら、その誤りは訂正されるだろう。
図5は、本開示の実施形態による電子システムのブロック図である。例示する電気システムは、パーソナルコンピュータ、PDA、デジタルカメラ、デジタルメディアプレーヤー、デジタルレコーダ、コンピュータゲーム、電気器具、車両、ワイヤレス機器、携帯電話、および同様のものを含むかもしれない。
その電子システムは、ホストプロセッサ500の効率を上げるキャッシュメモリ502を含み得るホストプロセッサ500を含む。そのプロセッサ500は、通信バス504と接続されている。種々の他のデバイスは、プロセッサ500の制御の下、通信バス504に接続され得る。例えば電子システムは、ランダムアクセスメモリ(RAM)506;キーボード、タッチパッド、ポインティングデバイス等の1つ以上の入力デバイス508;オーディオコントローラ510;ビデオコントローラ512;及び1つ以上の大容量記憶装置514を含んでいるかもしれない。少なくとも1つの大容量記憶装置514は、バス504と通信を行うためのデジタルバスインタフェース515、本開示の実施形態によるもので2ビット以上のデータのデータパターンを示すデータ信号を受け渡すアナログインタフェースを持つ1つ以上のメモリデバイス、及びバスインタフェース515から受け取ったデジタルデータ信号のD/A変換及びその(複数の)メモリデバイスから受け取ったアナログ信号をA/D変換を行う信号プロセッサを含んでいる。
上記したメモリアレイの不揮発性メモリセルは、異なったプログラミング速度を持っているかもしれない。製造プロセスの間のそれぞれのセルの構成のわずかな違いのため、いくつかのセルのしきい値電圧は他のものと異なった速度で増えるかもしれない。このことは、セルの中にデータをプログラムするためにセルのワード線全体に同じプログラミングパルスでバイアスを加えるときに、問題の要因となる。より速くプログラミングされるセルが過剰なプログラム状態で終わるかもしれず、より遅くプログラミングされるセルは不足したプログラム状態で終わるかもしれない。加えて、より遅くプログラミングされるメモリセルのしきい値電圧を増やすのに必要なプログラムパルスの増加は、ワード線上の他のセルに影響を及ぼす、プログラム状態を乱す(program disturb condition)原因となり、そのしきい値電圧を増加させる。したがって、本開示の方法はメモリセルのプログラミング速度(メモリセルがプログラムされる速度)を、それらのメモリセルがより一定の速度でプログラムされ得るように、制御する。
図6はセルプログラミング速度検出及び制御の方法の一実施形態のフローチャートを説明する。その方法は、最初にメモリアレイ600の速くプログラミングされるセルを検出し、確認する。
検出は、最初に読出し処理を用いてそれぞれのメモリセルのアナログのしきい値電圧を読みだすことによって達成される。メモリセルのワード線は、次にプログラミング電圧よりは低く、しかしセルのしきい値電圧を動かすのには十分に高い速度識別電圧でバイアスされる。
本開示の速度識別電圧は、そのバイアスによってメモリセルがプログラムされないくらいほど十分に低い必要がある。もしセルのしきい値電圧が速度識別電圧によって変動したりあるいは特定の量に変動したりするならば、そのときその特定のセルは、速いプログラミング速度を持つと推測することが出来る。例えば、“標準”初期プログラミング電圧が16Vの大容量半導体記憶システムでは、速度識別電圧は、15Vかもしれない。
速度識別のバイアスを行なった後、プログラムされる各セルのバイアス前のしきい値とバイアス後のしきい値との差異を測定するために各メモリセルのアナログしきい値電圧は再び読み出される。しきい値電圧が最も大きく変動するセルが速いプログラミング速度のセルと考えられる。一実施形態では、しきい値電圧におけるそれぞれのセルの変動はしきい値電圧デルタ(差分)と比較される。そのデルタ(差分)より変動の大きなしきい値電圧を持つ全てのセルは、速いプログラミング速度のセルである。
前述して説明したように、アナログしきい値電圧はそれぞれのメモリセルのしきい値電圧を示すアナログデータ信号である。これらのアナログデータ信号はA/D変換処理によってデジタル信号に変換される。得られたデジタルデータ信号は、制御回路で扱うことが出来るしきい値電圧のデジタル表現である。
600でより速いプログラミング速度を持っているメモリセルが一旦特定されると、将来のプログラミング処理での参照のために、603でこれらのセルのそれぞれの位置の指標は保存される。例えば、特定のメモリブロックに対する、速いプログラミングメモリセル(速いプログラミング速度を持っているメモリセル)の位置の指標のテーブルを保存するために、メモリのセクションを各メモリブロックに割り当てることができる。位置の指標は、その速いプログラミングセルの論理アドレスを含むことができる。例えば、その速いプログラミングメモリセルの位置の指標のテーブルをその特定のメモリブロックとして保存するために、メモリの領域を各メモリブロックに割り当てることができる。位置の指標は、そのより速いプログラミングセルの論理アドレスを含むことができる。
速いプログラミングメモリセルのテーブルはそれぞれの速いプログラミングセルに関連しているプログラミングの速度の指標をもまた含むことができる。例えテーブルに載せられている全てのメモリセルが速いプログラミングセルであるとしても、それでもそれらのセルは各々異なった速度でプログラムされる。したがってプログラミング速度の指標はそれぞれのメモリセル位置に関連してテーブルに保存できる。速度識別のバイアスに対する応答として、その特定のセルと関係してプログラミング速度の指標は、しきい値電圧の変動量若しくはしきい値電圧デルタを超えた量を表す。
605で、速いプログラミングメモリセルは、より遅いメモリセル(より遅いプログラミング速度を持っているメモリセル)と異なった速度でプログラムされる。プログラミング速度を変えることは、速いプログラミングメモリセルと結合されたビット線のバイアスを変えることによって成される。標準的なビット線イネーブル電圧はグランド電位で、標準的なビット線インヒビット電圧はVccである。したがって、ビット線のバイアスが0Vから増えるにしたがって、そのビット線に接続されているメモリセルへのプログラミング速度は遅くなる。言い換えると、ビット線のバイアスの増加は、セルのしきい電圧が負の消去しきい値電圧分布から増加する速度をゆっくりとする。
動作例として、アドレスを含むプログラム/書き込みコマンドを受信するとコントローラはメモリ内のテーブルにアクセスする。もしそのメモリアドレスがテーブル内で見つけられれば、その特定のセルは、より速いプログラミングセルと推測されるので、プログラミング速度を遅くするためにそのセルと接続されているビット線のバイアスはグランドより高い電圧にされる。ビット線のバイアス電圧はそのセルと関係のあるプログラミング速度によって決定され、そのセルと共にメモリテーブル内に保存される。関連するプログラミング速度が高いほど、プログラミング速度を減少させるのに必要なビット線バイアス電圧はより高くなる。単一のセル若しくは複数のセルがテーブルで見つけられないなら、それらのセルは0Vのビット線のプログラミングバイアスを必要とする標準セルであると推測される。
一実施形態では、それぞれ個々の大容量記憶装置システムを検査する間、特定のビット線電圧に関連しているプログラミング速度は、より速いプログラミングメモリセルそれぞれに対して決定される。より速いプログラミングメモリセルに対する所望のより遅いプログラミング速度を決定するためにアルゴリズムを用いることが出来る。次に、この決定した速度に関係するビット線のバイアス電圧が用いられ得る。特定のプログラミング速度に関連するそのビット線のバイアス電圧は、メモリに記憶され、そしてその電圧が適用される特定のメモリセルに関連付けられ得る。
別の実施形態では、速いプログラミング速度を持っているとしてラベルされたメモリセルは欠陥があるとして印づけることができる。そのような実施形態では、欠陥があるものに代わって冗長なメモリ列が使用されるだろう。
前述して説明したように、コントローラによって生成されるプログラミング電圧は、特定のセルのための所望のしきい値電圧を示すデジタル電圧である。そのアナログデータ信号は、これらのデジタル信号をD/A変換処理することによって生成される。
図7は別の実施形態のメモリセルのプログラミング速度の検出と制御の方法のフローチャートを説明する。この実施形態では図6の実施形態のように事前の識別を行わない。
700で、各セルでプログラムされるべき所望のしきい値電圧を示しているデジタル信号を発生させる制御回路によって、プログラミング処理は開始される。デジタル信号は、次にそれぞれのメモリセルのワード線にバイアスを加えるのに使用されるしきい値電圧のアナログ表現に変換される。
703で、各セルに対するプログラミングの速度が次に決定される。これは第1のプログラミングパルスの前と後の各セルのアナログしきい値電圧を読み出すことによって成される。各読み出されたアナログ電圧は、前述したA/D変換処理によって、それのデジタル表現に変換される。コントローラは、次に第1のプログラミングパルスによってどのセルが最もそれらのしきい値電圧を変動させたかを特定するために、その2つの電圧の差を計算する。1つのプログラミングパルスによって最も大きな差があるセルが、速いプログラミングセルとして特定される。705でこれらの速いプログラミングセルと接続されているビット線に、そのセルのプログラミング速度を制御するために、先に述べたようにしてバイアスをかける。
各セルのプログラミングパルス前のしきい値電圧と、プログラミングパルス後のしきい値電圧の差は、そのセルに対するプログラミング速度(すなわちしきい値電圧の変動速度)を制御するために必要なビット線バイアスを示唆する。以前の実施形態のように、必要なビット線バイアスは実証的なテストと、関連するプログラミング速度を有するビット線バイアスのテーブルを保存することによって決定が出来る。
別の実施形態では、トライアル・アンド・エラーに応じてセルがプログラミングされるというように、プログラミングの速度を制御するのに必要なビット線のバイアスは、動的に決定することができる。例えば、0Vより大きなある電圧でビット線をバイアスすることができ、そしてプログラミングパルスはプログラムされるメモリセルのワード線/コントロールゲートに供給される。セルへのしきい値電圧は、変動量及び/またはプログラムされたパーセンテージを決定するために読み出されることができる。そして、異なったプログラミング速度が実質的に同じであるかどうかを判定するために、しきい値電圧の変動はより遅いプログラミングメモリセルと比較される。ビット線のバイアスは次に、もし必要ならば、これらの要素及び発行された他のプログラミングパルスに応じて、変更され得る。セルがより遅いプログラミングセルと実質的に同時にプログラムされるまで、このプロセスは繰り返される。
一実施形態では、より速いプログラミングセルのあるプログラミングパルス内でより遅いプログラミングセルがそれぞれのプログラムされた状態に達するとき、メモリセルは実質的に同時にプログラムされる。別の実施形態では、それらのセルが実質的に同時にそれぞれのプログラムされた状態に達するために、異なったプログラミング速度のセルに対するプログラミングパルスの他の量が特定されてもよい。
図8のフローチャートは、速いプログラミングメモリセルのプログラミング速度を特定して制御するための方法の実施形態を説明する。プログラミングの速度の検出の代わりに、他の実施形態として、この実施形態ではセルが他のセルとの関係において、あまりにも先だってプログラミングされている場合を判定し、そして速いプログラミングセルのプログラミング速度を遅くする。
800で、各セルをプログラムするのに所望のしきい値電圧を表すデジタル信号を制御回路が生成することによってプログラミング処理は開始される。デジタル信号は次にそれぞれのメモリセルのワード線をバイアスするために用いられるしきい値電圧のアナログ表現に変換される。
制御回路は次に803でプログラムされるどのメモリセルが、他のセルよりもプログラム状態に近いしきい値電圧を持っているかを判定する。例えば、あるセルは消去しきい値電圧−1Vから開始されて、しきい値電圧1Vを持つ所望のプログラムされた状態にプログラムされる。他のセルは消去しきい値電圧−3Vから開始されて、3Vのしきい値電圧を持つ所望のプログラムされた状態にプログラムされる。最も電圧振幅が小さいメモリセルは、最も少ない数のプログラムパルスを必要とするが、そのメモリセルはまだより大きなしきい値電圧振幅を持っている1乃至複数のセルの余分なプログラムパルスに耐えなければならないだろう。これはより速くにプログラムされているセルにおいて、プログラム状態を乱す要因となるだろう。
異なったセルは異なったしきい値電圧にプログラミングされるので、以前の例のように、制御回路は、プログラムされている各メモリセルのプログラミングの完了のパーセンテージを考慮してもよい。したがって、あるメモリセルが、プログラムされている他のメモリセルよりも、それがプログラムされる到達アナログしきい値電圧により近いならば、805で、制御回路は他のセルがより速いプログラミングセルに追いつくまでそのセルのプログラミングを遅くする。以前の実施形態のように、プログラミング速度制御メカニズムは、ビット線のバイアスをグランド電位より上げることである。ビット線バイアスが必要に応じて調整されるので、より速いプログラミングセルと、より遅いプログラミングセルは、実質的に同時にそれらのそれぞれのプログラム状態のしきい値電圧に達する。
一実施形態では、より遅い速度でプログラムされる(複数の)セルが、より速いプログラミングセルのプログラミングパルス内で、そのそれぞれのプログラム状態に達するとき、メモリセルは実質的に同時にプログラムされる。他の実施形態では、異なったプログラミング速度のセルが実質的に同時にそれらのそれぞれのプログラム状態に達するように、異なったプログラミング速度のセルに対して他の量のプログラミングパルスを指定してもよい。
図9は、メモリセルに対するそれぞれのビット線と結合されたメモリセルのプログラミング速度を調整するのに必要な特定のビット線のバイアスを制御して、維持する一実施形態の回路の図を説明する。この図は、以前に図2を参照して説明し検討したような典型的なビット線902及びそのビット線902に接続されたメモリセル906を示している。以前の実施形態のように、ビット線902は、選択ゲートドレイントランジスタ903を介してメモリセル906のストリングと結合される。メモリセルストリング906の端は、選択ゲートソーストランジスタ904を介してソース線910と結合される。これらの要素の機能については既に検討した。
ビット線に接続されたセルのプログラム処理の間、所望のビット線バイアス電圧を維持するために、キャパシタ901がアレイの各ビット線902に接続されている。プログラム処理の間、キャパシタ901は希望のビット線電圧でバイアスされ、そして次にキャパシタ901はプログラミング処理の間この電圧を維持する。プログラムされている同一のメモリセル若しくは異なったワード線上の他のプログラムされているメモリセルのいずれかに対するビット線にバイアス電圧を変更することが望まれるとき、別の電圧がキャパシタ901に書き込まれる。この回路は、選択されたビット線上に絶え間なく適切なバイアスを維持することからコントローラを解放する。
図10は、より速いプログラミングメモリセルのプログラミング速度を調整することによってメモリデバイスをプログラムするための実施形態を説明する。メモリデバイスは、前述した様に、より速いプログラミングメモリセルのアドレスと、所望のビット線バイアス電圧を保存する、メモリのセクションから成る。
1000でメモリデバイスは、プログラムするためにメモリセルのアドレスとデータ値を含むプログラム/書き込みコマンドを受け取る。1002でコントローラ回路は、受け取ったアドレスが、より速いプログラミングメモリセルとして保存されているかどうかを判定するためにメモリを読む。1003でもし受け取ったアドレスがより速いプログラミングメモリセルであるとしてわかったならば、そのアドレスと関連するビット線のバイアスを表す電圧値データがメモリから読まれる。この電圧値データは、その関連メモリセルを所望の速度でプログラムすることが前もって分かっている電圧である。1005でその電圧値データは、より速いプログラミングメモリセルと接続されている選択されたビット線に対する、ビット線のバイアスを生成するのに用いられる。
1007でより遅いプログラミングメモリセルに対するビット線は、イネーブル電圧でバイアスされる。一実施形態では、この電圧値は0Vである。1009において、選択されていない残りのビット線は、インヒビット電圧Vccでバイアスされる。
種々の実施形態は、2ビット以上のビットパターンを表すアナログデータ信号を受信及び送信するように構成されたメモリデバイスを含んでいる。メモリセルのプログラミング速度を測定して、他のセルより速い速度でプログラムされているそれらのセルのプログラミング速度を調整する方法を使用することで、そのメモリデバイスはプログラムできる。0Vより上にビット線バイアスを調整することによって、しきい値電圧が変化する速度を変えることができる。所望のプログラミング速度に対応する所望のビット線バイアスが、そのビット線上のキャパシタに印加され得る。そのキャパシタは、次に、プログラミング処理の期間中、若しくはこれを再び変更されるまで、このビット線バイアスを維持する。
特定の実施形態が本明細書において例証されそして説明されているが、同じ目的を達成するように計算されるどんなアレンジも、示されたその特定の実施形態の代りになるかもしれないことが当業者によって理解されるだろう。開示されたものの多くの実施例が、当業者には明らかだろう。
従って、本出願は開示されているどんな実施例や変形例もカバーすることを意図する。