(57)【要約】方法とソリッドステートドライブが開示される。例えばソリッドステートドライブは、3レベル以上のビットパターンをあらわすアナログデータ信号を送受信する（例えば、個々のビットを示すデータ信号を通信するデバイスと比べて、データ転送速度の増加を促進する）ように構成される。不揮発性メモリセルのアレイを含むソリッドステートドライブのプログラミングは、コントローラ回路の所望の性能レベルに応じてプログラムされる各メモリセルのレベルを調整することを含んでもよい。
2010534889.tif 000002
【特許請求の範囲】
【請求項１】
メモリアレイとコントローラ回路とを含むソリッドステートドライブをプログラムするための方法であって、
前記メモリアレイに記憶されるデータに対するコントローラ性能レベルを決定することと、
前記コントローラ性能レベルをもたらすビット容量レベルを決定することと、
前記ビット容量レベルにおいて前記メモリアレイに前記データを書き込むことと、
を含む方法。
【請求項２】
前記コントローラ性能レベルが、プログラミング速度とプログラミング信頼性とを含む、請求項１に記載の方法。
【請求項３】
ビット容量レベルを決定することが、前記メモリアレイの複数の領域の各々に対するビット容量レベルに関連して、前記メモリアレイの前記複数の領域の各々に対する信頼性の指標を含むテーブルをメモリから読み出すことを含む、請求項１に記載の方法。
【請求項４】
前記ビット容量レベルにおいて前記コントローラ性能レベルを満たすことができる前記メモリアレイの領域を決定することをさらに含む、請求項１に記載の方法。
【請求項５】
前記メモリアレイのメモリセルにプログラム可能な複数のビット容量レベルの各々に対するプログラミング速度を決定することと、
前記コントローラ回路に対する第一のプログラミング速度を発生させることと、
前記複数のビット容量レベルのうち、前記第一のプログラミング速度に対応する第一のビット容量レベルにおいて前記メモリアレイに受信データを書き込むこととをさらに含む、
請求項１に記載の方法。
【請求項６】
前記複数のビット容量レベルの各々に対する前記プログラミング速度を決定することが、前記メモリデバイスの最初の起動時に達成される、請求項５に記載の方法。
【請求項７】
前記複数のビット容量レベルの各々に対する前記プログラミング速度を決定することが、前記メモリデバイスの製造工程中に一度だけ達成される、請求項５に記載の方法。
【請求項８】
各プログラミング速度を、それに対応するビット容量レベルとともに記憶することをさらに含む、請求項５に記載の方法。
【請求項９】
各プログラミング速度とそれに対応するビット容量レベルが前記メモリアレイに記憶される、請求項８に記載の方法。
【請求項１０】
前記受信データを書き込むことが、前記メモリアレイの同じワード線に沿って書き込むことを含む、請求項５に記載の方法。
【請求項１１】
前記受信データを書き込むことが、前記メモリアレイの同じメモリブロック内で、前記複数のビット容量レベルのうち異なるビット容量レベルにおいて書き込むことを含む、請求項５に記載の方法。
【請求項１２】
前記コントローラ性能レベルが前記ビット容量レベルを減少させた場合、信頼性レベルに基づいて前記メモリアレイの領域に前記データを書き込むことをさらに含む、請求項１に記載の方法。
【請求項１３】
前記ビット容量レベルにおいて前記メモリアレイの第一の領域に前記データを書き込むことと、
前記コントローラ性能レベルが前記ビット容量レベルを減少させた場合、信頼性レベルに基づいて前記メモリアレイの第二の領域に前記データを書き込むこととをさらに含む、
請求項１に記載の方法。
【請求項１４】
前記メモリアレイの前記第一の領域を消去することをさらに含む、請求項１３に記載の方法。
【請求項１５】
前記メモリアレイの前記第一の領域に前記データを書き込むことが、シングルレベルセルビット容量レベルで前記データを書き込むことを含み、前記メモリアレイの前記第二の領域にデータを書き込むことが、マルチレベルセル容量レベルで前記データを書き込むことを含む、請求項１３に記載の方法。
【請求項１６】
ビット線に結合したメモリセルの列と、ワード線に結合したメモリセルの行とを有する不揮発性メモリセルのアレイと、
前記不揮発性メモリセルのアレイの動作を制御するための制御回路であって、前記不揮発性メモリアレイに記憶されるデータに対するコントローラ性能レベルの決定に応じて前記メモリセルをプログラムし、前記コントローラ性能レベルをもたらすプログラミングレベルを決定し、かつ、前記プログラミングレベルにおいて前記不揮発性メモリアレイに前記データを書き込むように構成される、制御回路と、
を含む、ソリッドステートドライブ。
【請求項１７】
前記制御回路が、プログラムされる前記メモリセルからアナログデータ信号を読み出し、かつ、前記読み出したアナログデータ信号を示すデジタル閾値電圧信号を発生させる回路をさらに含む、請求項１６に記載のソリッドステートメモリデバイス。
【請求項１８】
前記制御回路が、プログラムされたメモリ状態を示すデジタルデータ信号を受信し、かつ、前記デジタルデータ信号を、前記プログラムされたメモリ状態の閾値電圧を示すアナログデータ信号に変換する回路をさらに含む、請求項１６に記載のソリッドステートメモリデバイス。
【請求項１９】
前記メモリアレイが、複数の不揮発性メモリセルのブロックを有するNANDアーキテクチャで構成され、不揮発性メモリセルの各ブロックは、前記制御回路に対して生成されたプログラミング速度に応じて、シングルレベルセルとマルチレベルセルの両方でプログラム可能である、請求項１６に記載のソリッドステートメモリデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は概して半導体メモリに関し、ある特定の実施形態では、本開示はソリッドステート不揮発性メモリデバイスに関する。
【背景技術】
【０００２】
一般に電子デバイスは、自身が利用可能な一種の大容量記憶デバイスを有する。一般的な例としてはハードディスクドライブ（HDD）がある。HDDは比較的低コストで大容量の記憶が可能であり、現在、1テラバイトを超える容量の民生用HDDが利用可能である。
【０００３】
HDDは通常、回転する磁気メディアもしくはプラッタ上にデータを記憶する。典型的には、データはプラッタ上に磁束反転のパターンとして記憶される。典型的なHDDにデータを書き込むためには、データをあらわすためにプラッタ上に磁気粒子を整列させるよう、プラッタの上方に浮いている書き込みヘッドが連続磁気パルスを発生する間、プラッタが高速回転される。典型的なHDDからデータを読み出すためには、磁気抵抗読み出しヘッドが、高速回転されるプラッタの上方に浮かんでいる際に、その中に抵抗変化が誘導される。実際には、結果として得られるデータ信号はアナログ信号であり、そのピークとバレーはデータパターンの磁束反転の結果である。その後、PRML（partial response maximum likelihood）と呼ばれるデジタル信号処理技術を使用してアナログデータ信号をサンプリングし、そのデータ信号の発生に関与する推定データパターンを決定する。
【０００４】
HDDはその機械的性質に起因するある欠点を持つ。HDDは、衝撃、振動、もしくは強磁場により損傷しやすく、あるいは過剰な読み出し／書き込みエラーを生じやすい。加えて、HDDは携帯用電子機器において比較的大量に電力を消費する。
【０００５】
大容量記憶デバイスの別の例として、ソリッドステートドライブ（SSD）がある。回転メディア上にデータを記憶する代わりに、SSDはデータを記憶するために半導体メモリデバイスを利用するが、ホストシステムに対して典型的なHDDのように見せるようなインターフェースやフォームファクターを含む。SSDのメモリデバイスは通常は不揮発性フラッシュメモリデバイスである。
【０００６】
フラッシュメモリデバイスは、幅広い電子用途用の不揮発性メモリの一般的な供給源へと発展してきた。フラッシュメモリデバイスは通常、高メモリ密度、高信頼性、低消費電力を可能にする1トランジスタメモリセルを使用する。電荷蓄積層もしくは電荷トラップ層のプログラミング、または他の物理現象を通してのセルの閾値電圧の変化が、各セルのデータ値を決定する。フラッシュメモリや他の不揮発性メモリの一般的用途は、パーソナルコンピューター、携帯端末（PDA）、デジタルカメラ、デジタルメディアプレーヤー、デジタルレコーダー、ゲーム、電化製品、車両、ワイヤレスデバイス、携帯電話、および着脱式メモリモジュールを含み、不揮発性メモリの用途は拡大し続けている。
【０００７】
HDDとは異なり、一般的にSSDの動作は、固体（ソリッドステート）の性質により、振動、衝撃、もしくは磁場の心配がない。同様に、可動部品がないSSDはHDDよりも所要電力が低い。しかしながら、現在のところSSDは同じフォームファクターのHDDと比べて記憶容量がかなり低く、ビット当たりのコストが著しく高い。
【０００８】
上記の理由から、ならびに、本明細書を読んで理解することで当業者に明らかとなるであろう他の理由から、大容量記憶装置の代替オプションが当技術分野で必要とされている。
【図面の簡単な説明】
【０００９】
【図１】本開示の一実施形態に従うメモリデバイスの略ブロック図である。
【図２】図１のメモリデバイスで見られ得るようなNANDメモリアレイの一実施例の一部の概略図である。
【図３】本開示の一実施形態に従うソリッドステート大容量記憶システムの略ブロック図である。
【図４】本開示の一実施形態に従う、読み出し／書き込みチャネルによってメモリデバイスから受信され得るデータ信号を概念的に示す波形図である。
【図５】本開示の一実施形態に従う電子システムの略ブロック図である。
【図６】コントローラ回路を特定のメモリデバイスの信頼性特性値にキャリブレートするための方法の一実施形態のフローチャートである。
【図７】図６の方法に従うメモリアレイの一部分（sub-portion）の一実施形態のブロック図である。
【図８】コントローラの性能要件に応じてセルあたりのビット容量レベルを変化させることによりソリッドステートメモリドライブをプログラムするための方法の一実施形態のフローチャートである。
【発明を実施するための形態】
【００１０】
以下の「発明を実施するための形態」では、本明細書の一部をなす添付図面を参照し、図面には、本発明の実施形態が実施され得る具体的な実施形態が例として示されている。これらの実施形態は、当業者が本発明を実施できるように充分詳細に記載されている。当然のことながら他の実施形態が利用されてもよく、本開示の範囲から逸脱することなく、プロセスの変更、電気的変更、もしくは機械的変更がなされてもよい。従って以下の「発明を実施するための形態」は、限定的な意味で解釈されるべきではない。
【００１１】
従来のソリッドステートメモリデバイスはバイナリ信号の形式でデータを渡す。典型的には、接地電位が1ビットのデータの第一の論理レベル（例えばデータ値‘0’）をあらわし、一方電源電位が1ビットのデータの第二の論理レベル（例えばデータ値‘1’）をあらわす。マルチレベルセル（MLC）は、例えば各範囲が200 mVの4通りの異なる閾値電圧（Vt）範囲を割り当てられ、各範囲は固有のデータ状態に対応し、それによって4通りのデータ値もしくはビットパターンをあらわす。典型的には、0.2 Vから0.4 Vのデッドスペースもしくはマージンが各範囲間にあり、Vt分布が重複しないようになっている。セルのVtが第一の範囲内にある場合、セルは論理状態11を記憶するとみなされ、典型的にはセルの消去状態とみなされる。Vtが第二の範囲内にある場合、セルは論理状態10を記憶するとみなされる。Vtが第三の範囲内にある場合、セルは論理状態00を記憶するとみなされる。そしてVtが第四の範囲内にある場合、セルは論理状態01を記憶するとみなされる。
【００１２】
上記のように従来のMLCデバイスをプログラミングする際には、一般的に、セルは消去状態に対応するようにブロック単位でまず消去される。セルのブロックの消去後、必要であれば、各セルの最下位ビット（LSB）が最初にプログラムされる。例えばLSBが1であるならばプログラミングは必要ないが、LSBが0であるならば、ターゲットメモリセルのVtを、論理状態11に対応するVt範囲から論理状態10に対応するVt範囲へと動かす。LSBのプログラミング後、同様に各セルの最上位ビット（MSB）がプログラムされ、必要に応じてVtをシフトする。従来のメモリデバイスのMLCを読み出す際には、1回以上の読み出し動作が、概してセル電圧のVtがどの範囲に入るかを決定する。例えば、第一の読み出し動作は、ターゲットメモリセルのVtが、MSBが1もしくは0であることを示すかどうかを判定し、一方第二の読み出し動作は、ターゲットメモリセルのVtが、LSBが1もしくは0であることを示すかどうかを判定し得る。しかしながらいずれの場合も、各セルに何ビットが記憶されているかにかかわらず、ターゲットメモリセルの読み出し動作からは1ビットしか返されない。このような複数のプログラム動作と読み出し動作の問題は、各MLCに記憶されるビットが増えるにつれ、ますます厄介になる。そのようなプログラム動作もしくは読み出し動作の各々は二項演算であり、つまり、各動作はセルあたり1ビットの情報しかプログラムしない、あるいは返さないので、各MLCにより多くのビットを記憶することは動作時間の延長につながる。
【００１３】
実施形態例のメモリデバイスは、データをVtの範囲としてメモリセルに記憶する。しかしながら従来のメモリデバイスとは対照的に、プログラム動作と読み出し動作は、データ信号をMLCデータ値の離散ビットとしてではなく、MLCデータ値の全表現として利用することができ、例えばMLCデータ値の完全ビットパターンとして利用できる。例えば2ビットのMLCデバイスでは、セルのLSBをプログラムした後に続いてセルのMSBをプログラムするのではなく、これら2ビットのビットパターンをあらわすターゲット閾値電圧がプログラムされ得る。つまり、第一のビットに対して第一の閾値電圧へプログラムしたり、第二のビットに対して第二の閾値電圧へシフトしたりするのではなく、メモリセルがターゲット閾値電圧を得るまで、一連のプログラム動作と検証動作がメモリセルに適用される。同様に、セルに記憶された各ビットを判定するために複数の読み出し動作を利用する代わりに、セルの閾値電圧が判定され、セルの完全なデータ値もしくはビットパターンをあらわす単一信号として渡され得る。種々の実施形態のメモリデバイスは、従来のメモリデバイスでなされるように、メモリセルの閾値電圧が、ある公称閾値電圧よりも高いか低いかを見るだけではない。その代わりに、一連の考えられる閾値電圧にわたってそのメモリセルの実際の閾値電圧をあらわす電圧信号が発生する。この方法の利点は、セルカウントあたりのビットが増えるにつれて顕著になる。例えば、メモリセルが8ビットの情報を記憶する場合、1回の読み出し動作は8ビットの情報をあらわす1つのアナログデータ信号を返す。
【００１４】
図１は、本開示の一実施形態に従うメモリデバイス101の略ブロック図である。メモリデバイス101は行と列に配置されたメモリセルのアレイ104を含む。種々の実施形態は基本的にNANDメモリアレイに関して記載されるが、種々の実施形態はメモリアレイ104の特定のアーキテクチャに限定されない。本発明の実施形態に適した他のアレイアーキテクチャの実施例のいくつかは、NORアレイ、ANDアレイ、仮想グラウンドアレイを含む。しかしながら一般的に、本明細書に記載された実施形態は、各メモリセルの閾値電圧をあらわすデータ信号の発生を可能にするいかなるアレイアーキテクチャにも適用可能である。
【００１５】
メモリデバイス101に供給されるアドレス信号をデコードするため、行デコード回路108と列デコード回路110が備えられる。アドレス信号は、メモリアレイ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撮像素子技術の分野で既知の方法と類似する方法をとってもよく、CMOS撮像素子技術の分野では、入射照明に応じて撮像素子のピクセルで発生した電荷レベルがキャパシタに記憶される。その後これらの電荷レベルは、基準キャパシタを差動アンプへの第二の入力として、差動アンプを用いて電圧信号に変換される。その後差動アンプの出力をアナログ‐デジタル変換（ADC）デバイスへと渡し、照度をあらわすデジタル値を得る。本発明の実施形態では、それぞれメモリセルの読み出しもしくはプログラミングのために、メモリセルの実際の閾値電圧もしくはターゲット閾値電圧をあらわす電圧レベルにかけられると、電荷がキャパシタに記憶され得る。この電荷は、その後、接地された入力もしくは他の基準信号を第二の入力として、差動アンプを用いてアナログ電圧へと変換され得る。差動アンプの出力は、その後、読み出し動作の場合にはメモリデバイスからの出力用にI/O制御回路112へと渡され、あるいは、メモリデバイスのプログラミングにおいては1回以上の検証動作中の比較用に使用され得る。I/O制御回路112は、読み出しデータをアナログ信号からデジタルビットパターンへ変換するアナログ‐デジタル変換機能と、書き込みデータをデジタルビットパターンからアナログ信号へ変換するデジタル‐アナログ変換（DAC）機能を随意に含むことができ、メモリデバイス101がアナログデータインターフェースもしくはデジタルデータインターフェースのいずれとの通信にも適合できるようになっていることに留意されたい。
【００１８】
書き込み動作中、メモリアレイ104のターゲットメモリセルは、Vtレベルをあらわす電圧がサンプル／ホールド回路118に保持されているレベルに一致するまで、プログラムされる。これは、一実施例として、保持されている電圧レベルをターゲットメモリセルの閾値電圧と比較する差動検出デバイスを用いて実現できる。従来のメモリプログラミングと酷似して、プログラミングパルスをターゲットメモリセルに印加して、所望の値に達するまで、あるいは所望の値を超えるまで、閾値電圧を増加することができる。読み出し動作では、ターゲットメモリセルのVtレベルは、ADC/DAC機能がメモリデバイスの外部に備わるか、あるいは内部に備わるかによって、アナログ信号として直接、あるいはアナログ信号のデジタル表現として、外部プロセッサ（図１では不図示）への転送用にサンプル／ホールド回路118へと渡される。
【００１９】
セルの閾値電圧は様々な方法で決定され得る。例えば、ターゲットメモリセルが活性化される時点でワード線電圧がサンプリングされ得る。あるいは、ターゲットメモリセルの第一のソース／ドレイン側にブースト電圧が印加され、閾値電圧は、その制御ゲート電圧と、別のソース／ドレイン側の電圧との差分として得られる。電圧をキャパシタに結合することにより、サンプリングされた電圧を記憶するために電荷がキャパシタと共有される。サンプリングされた電圧は閾値電圧と等しい必要はなく、単にその電圧をあらわすものであることに留意されたい。例えば、ブースト電圧をメモリセルの第一のソース／ドレイン側に印加し、その制御ゲートに既知の電圧を印加する場合、メモリセルの第二のソース／ドレイン側で生じる電圧は、メモリセルの閾値電圧をあらわすので、データ信号として得ることができる。
【００２０】
サンプル／ホールド回路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に書き込まれる。アドレスはバス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]を介して、出力され得る。追加の回路や信号が提供されてもよく、図１のメモリデバイスは本開示の実施形態に焦点をあわせるのを助けるために簡略化されていることが、当業者にはわかるだろう。さらに、図１のメモリデバイスは種々の信号の受信と出力の一般的な慣習に従って記載されているが、種々の実施形態は、本明細書に明記されていない限り、記載された特定の信号やI/O構成に限定されないことに留意されたい。例えば、コマンド信号とアドレス信号は、データ信号を受信するものとは別の入力において受信されてもよく、あるいは、データ信号がI/Oバス134の単一I/Oラインを介してシリアル送信されてもよい。データ信号は個々のビットではなくビットパターンをあらわすので、8ビットデータ信号のシリアル通信は、個々のビットをあらわす8個の信号のパラレル通信と同じくらい効率的である。
【００２３】
図２は、図１のメモリアレイ104に見られるようなNANDメモリアレイ200の実施例の一部の概略図である。図２に示されるように、メモリアレイ200はワード線2021から202Nと、交差するビット線2041から204Mを含む。デジタル環境におけるアドレシングを簡略化するため、ワード線202の数とビット線204の数は一般的にそれぞれ2の何乗かである。
【００２４】
メモリアレイ200はNANDストリング2061から206Mを含む。各NANDストリングは、それぞれワード線202とビット線204の交点に位置するトランジスタ2081から208Nを含む。トランジスタ208は、図２ではフローティングゲートトランジスタとして描かれているが、データの記憶用の不揮発性メモリセルをあらわす。各NANDストリング206のフローティングゲートトランジスタ208は、例えば電界効果トランジスタ（FET）などの1つ以上のソース選択ゲート210と、例えばFETなどの1つ以上のドレイン選択ゲート212の間で、ソースからドレインへと直列に接続される。各ソース選択ゲート210はローカルビット線204とソース選択線214との交点に位置し、一方各ドレイン選択ゲート212はローカルビット線204とドレイン選択線215との交点に位置する。
【００２５】
各ソース選択ゲート210のソースは共通ソース線216に接続される。各ソース選択ゲート210のドレインは、対応するNANDストリング206の最初のフローティングゲートトランジスタ208のソースに接続される。例えば、ソース選択ゲート2101のドレインは対応するNANDストリング2061のフローティングゲートトランジスタ2081のソースに接続される。各ソース選択ゲート210の制御ゲートはソース選択線214に接続される。ある1つのNANDストリング206に対して複数のソース選択ゲート210が利用される場合、複数のソース選択ゲート210は、共通ソース線216と、そのNANDストリング206の最初のフローティングゲートトランジスタ208との間に直列に結合され得る。
【００２６】
各ドレイン選択ゲート212のドレインは、対応するNANDストリングのローカルビット線204に、ドレインコンタクトで接続される。例えば、ドレイン選択ゲート2121のドレインは、対応するNANDストリング2061のローカルビット線2041にドレインコンタクトで接続される。各ドレイン選択ゲート212のソースは、対応するNANDストリング206の最後のフローティングゲートトランジスタ208のドレインに接続される。例えば、ドレイン選択ゲート2121のソースは、対応するNANDストリング2061のフローティングゲートトランジスタ208Nのドレインに接続される。ある1つのNANDストリング206に対して複数のドレイン選択ゲート212が利用される場合、複数のドレイン選択ゲート212は、対応するビット線204と、そのNANDストリング206の最後のフローティングゲートトランジスタ208Nとの間に直列に結合され得る。
【００２７】
フローティングゲートトランジスタ208の典型的な構成は、図２に示すように、ソース230、ドレイン232、フローティングゲート234、制御ゲート236を含む。フローティングゲートトランジスタ208では、制御ゲート236がワード線202に結合している。フローティングゲートトランジスタ208の列は、所定のローカルビット線204に結合したNANDストリング206である。フローティングゲートトランジスタ208の行は、所定のワード線202に共通に結合したトラジスタである。他の形式のトランジスタ208も本開示の実施形態と併用されてもよく、例えばNROM、磁気トランジスタもしくは強誘電体トランジスタなど、2つ以上の閾値電圧範囲のうちの1つを推測するようプログラム可能なその他のトランジスタが併用されてもよい。
【００２８】
種々の実施形態のメモリデバイスは大容量記憶デバイスにおいて有利に使用され得る。種々の実施形態では、こうした大容量記憶デバイスは従来のHDDと同じフォームファクターと通信バスインターフェースをとってもよく、そのため様々な用途においてそうしたドライブと置き換えることができる。HDDの一般的なフォームファクターの一部は、現在のパーソナルコンピューターや大型デジタルメディアレコーダーでよく使用される3.5"、2.5"、PCMCIA（Personal Computer Memory Card International Association）フォームファクター、ならびに、携帯電話、携帯端末（PDA）、デジタルメディアプレーヤーなどの小型家電製品でよく使用される1.8"、1"フォームファクターを含む。一般的なバスインターフェースの一部は、universal serial bus（USB）、AT attachment interface（ATA）［integrated drive electronicsすなわちIDEとしても知られる］、シリアルATA（SATA）、small computer systems interface（SCSI）、Institute of Electrical and Electronics Engineers（IEEE）1394規格を含む。幅広い種類のフォームファクターと通信インターフェースがあげられたが、実施形態は特定のフォームファクターや通信規格に限定されない。さらに、実施形態はHDDフォームファクターや通信インターフェースに準拠する必要はない。図３は本開示の一実施形態に従うソリッドステート大容量記憶デバイス300の略ブロック図である。
【００２９】
大容量記憶デバイス300は、本開示の一実施形態に従うメモリデバイス301と、読み出し／書き込みチャネル305と、コントローラ310とを含む。読み出し／書き込みチャネル305は、メモリデバイス301から受信したデータ信号のアナログ‐デジタル変換と、コントローラ310から受信したデータ信号のデジタル‐アナログ変換とをもたらす。コントローラ310は、バスインターフェース315を通して大容量記憶デバイス300と外部プロセッサ（図３では不図示）との間の通信をもたらす。読み出し／書き込みチャネル305は、破線でメモリデバイス301'と描かれているように、1つ以上の追加メモリデバイスをサービスし得ることに留意されたい。通信用の1つのメモリデバイス301の選択は、マルチビットチップイネーブル信号もしくは他の多重化方式を通して処理できる。
【００３０】
メモリデバイス301はアナログインターフェース320とデジタルインターフェース325を通して読み出し／書き込みチャネル305へ結合される。アナログインターフェース320は、メモリデバイス301と読み出し／書き込みチャネル305の間にアナログデータ信号の通路を提供し、一方デジタルインターフェース325は、読み出し／書き込みチャネル305からメモリデバイス301への、制御信号、コマンド信号、アドレス信号の通路を提供する。デジタルインターフェース325はさらに、メモリデバイス301から読み出し／書き込みチャネル305への状態信号の通路を提供し得る。アナログインターフェース320とデジタルインターフェース325は、図１のメモリデバイス101について述べたように信号線を共有し得る。図３の実施形態はメモリデバイスへのデュアルアナログ／デジタルインターフェースを描いているが、メモリデバイス301が、制御信号、コマンド信号、状態信号、アドレス信号、データ信号を通過させるためにデジタルインターフェースのみを用いてコントローラ310と直接通信するよう、読み出し／書き込みチャネル305の機能が、図１について述べたようにメモリデバイス301の中に随意に組み込まれてもよい。
【００３１】
読み出し／書き込みチャネル305は、データインターフェース330や制御インターフェース335などの一つ以上のインターフェースを通してコントローラ310に結合する。データインターフェース330は、読み出し／書き込みチャネル305とコントローラ310の間にデジタルデータ信号の通路を提供する。制御インターフェース335は、コントローラ310から読み出し／書き込みチャネル305への、制御信号、コマンド信号、アドレス信号の通路を提供する。制御インターフェース335はさらに、読み出し／書き込みチャネル305からコントローラ310への状態信号の通路を提供し得る。状態信号とコマンド／制御信号は、制御インターフェース335をデジタルインターフェース325へつないでいる破線で描かれるように、コントローラ310とメモリデバイス301の間で直接渡されてもよい。
【００３２】
読み出し／書き込みチャネル305とコントローラ310は、図３では2つの別個のデバイスとして描かれているが、別の方法として、その機能は単一の集積回路デバイスによって実行されてもよい。メモリデバイス301を別個のデバイスのままにしておくことは、本発明の実施形態を異なるフォームファクターや通信インターフェースに適合させる上での柔軟性をさらに高めるが、メモリデバイス301もまた集積回路デバイスであることから、大容量記憶デバイス300全体を単一の集積回路デバイスとして製造できる。
【００３３】
読み出し／書き込みチャネル305は、デジタルデータストリームからアナログデータストリームへの変換、そしてその逆方向の変換を少なくとももたらすように適合された信号処理部である。デジタルデータストリームは、バイナリ電圧レベルの形式でデータ信号を提供する。つまり、第一の電圧レベルは第一のバイナリデータ値（例えば0）を持つビットをあらわし、第二の電圧レベルは第二のバイナリデータ値（例えば1）を持つビットをあらわす。アナログデータストリームは2つよりも多くのレベルを持つアナログ電圧の形式でデータ信号を提供し、異なる電圧レベルもしくは範囲は2ビット以上の異なるビットパターンに対応する。例えば、メモリセルあたり2ビットを記憶するように適合されたシステムでは、アナログデータストリームの電圧レベルのうち第一の電圧レベルもしくは範囲は11のビットパターンに対応し、アナログデータストリームの電圧レベルのうち第二の電圧レベルもしくは範囲は10のビットパターンに対応し、アナログデータストリームの電圧レベルのうち第三の電圧レベルもしくは範囲は00のビットパターンに対応し、アナログデータストリームの電圧レベルのうち第四の電圧レベルもしくは範囲は01のビットパターンに対応し得る。従って、種々の実施形態に従う1つのアナログデータ信号は、2つ以上のデジタルデータ信号へと変換され、その逆もまた然りである。
【００３４】
実際には、コントローラ310を通じたメモリデバイス301のアクセスのために、制御信号とコマンド信号がバスインターフェース315で受信される。望ましいアクセスの種類（例えば書き込み、読み出し、フォーマットなど）に応じて、アドレス値とデータ値もまたバスインターフェース315で受信され得る。共有バスシステムでは、バスインターフェース315は様々な他のデバイスと共にバスに結合される。特定のデバイスへ通信を向けるために、バス上のどのデバイスが後続コマンドを実行するかを示す識別値がバス上に置かれ得る。識別値が、大容量記憶デバイス300によってとられる値と一致する場合、コントローラ310はバスインターフェース315で後続コマンドを受け入れる。識別値が一致しなかった場合、コントローラ310は後続の通信を無視する。同様に、バス上での衝突を回避するために、共有バス上の種々のデバイスは、個別にバスを制御しながら、他のデバイスにアウトバウンド（外向きの）通信を止めるように指示してもよい。バス共有と衝突回避のためのプロトコルは周知であり、本明細書では詳述しない。コントローラ310は、その後、コマンド信号、アドレス信号、データ信号を処理のために読み出し／書き込みチャネル305へと渡す。コントローラ310から読み出し／書き込みチャネル305へと渡されるコマンド信号、アドレス信号、データ信号は、バスインターフェース315で受信される信号と同じである必要はないことに留意されたい。例えば、バスインターフェース315の通信規格は、読み出し／書き込みチャネル305もしくはメモリデバイス301の通信規格と異なってもよい。この場合、コントローラ310はメモリデバイス301へアクセスする前にコマンドおよび／またはアドレス方式を翻訳し得る。加えて、コントローラ310は、メモリデバイス301の物理アドレスが所定の論理アドレスに対して経時変化し得るように、1つ以上のメモリデバイス301内の負荷平準化をもたらし得る。従って、コントローラ310は外部デバイスからの論理アドレスをターゲットメモリデバイス301の物理アドレスへとマッピングする。
【００３５】
書き込み要求の場合、コマンド信号とアドレス信号に加えて、コントローラ310はデジタルデータ信号を読み出し／書き込みチャネル305へと渡す。例えば、16ビットデータワードでは、コントローラ310は第一もしくは第二のバイナリ論理レベルを持つ16個の個別信号を渡す。読み出し／書き込みチャネル305は、その後、デジタルデータ信号を、デジタルデータ信号のビットパターンをあらわすアナログデータ信号へと変換する。前述の実施例を続けて、読み出し／書き込みチャネル305は、16個の個別デジタルデータ信号を、所望の16ビットデータパターンをあらわす電位レベルを持つ単一のアナログ信号へと変換するデジタル‐アナログ変換を使用する。一実施形態では、デジタルデータ信号のビットパターンをあらわすアナログデータ信号はターゲットメモリセルの所望の閾値電圧をあらわす。しかしながら、1トランジスタメモリセルのプログラミングでは、隣接メモリセルのプログラミングが、その前にプログラムされたメモリセルの閾値電圧を増加させてしまうことがしばしばある。従って別の実施形態では、読み出し／書き込みチャネル305はこの種の予想される閾値電圧の変化を考慮し、アナログデータ信号が最終的な所望の閾値電圧よりも低い閾値電圧を示すように調節する。コントローラ310からのデジタルデータ信号の変換後、読み出し／書き込みチャネル305は、個々のメモリセルのプログラミングで使用するためのアナログデータ信号とともに、書き込みコマンドとアドレス信号をメモリデバイス301へと渡す。プログラミングはセル毎に起こり得るが、一般的には動作あたり1ページのデータに対して実行される。典型的なメモリアレイアーキテクチャの場合、1ページのデータはワード線に結合したメモリセルを1つおきに含む。
【００３６】
読み出し要求の場合、コントローラはコマンド信号とアドレス信号を読み出し／書き込みチャネル305へと渡す。読み出し／書き込みチャネル305は読み出しコマンドとアドレス信号をメモリデバイス301へと渡す。それに応じて、読み出し動作の実行後、メモリデバイス301は、アドレス信号と読み出しコマンドによって定められるメモリセルの閾値電圧を示すアナログデータ信号を返す。メモリデバイス301はそのアナログデータ信号をパラレルまたはシリアルに転送し得る。
【００３７】
アナログデータ信号はまた、不連続な電圧パルスとしてではなく、実質的に連続的なアナログ信号のストリームとして転送され得る。この場合、読み出し／書き込みチャネル305は、PRML（partial response maximum likelihood）と呼ばれるHDDアクセスで使用されるものと同様の信号処理を採用し得る。従来のHDDのPRML処理では、HDDの読み出しヘッドが、HDDプラッタの読み出し動作中に遭遇する磁束反転をあらわすアナログ信号のストリームを出力する。読み出しヘッドが遭遇する磁束反転に応じて発生するこのアナログ信号の真のピークとバレーをとらえようとするのではなく、信号パターンのデジタル表現を作成するために信号が周期的にサンプリングされる。このデジタル表現は、その後、アナログ信号パターンの発生に関与する磁束反転の推定パターンを決定するために分析され得る。これと同じタイプの処理を本開示の実施形態で利用できる。メモリデバイス301からのアナログ信号をサンプリングすることによって、アナログ信号の発生に関与する閾値電圧の推定パターンを決定するためにPRML処理を採用できる。
【００３８】
図４は、本開示の一実施形態に従う、読み出し／書き込みチャネル305によってメモリデバイス301から受信され得るデータ信号450を概念的に示す波形図である。データ信号450は周期的にサンプリングされ、サンプリングされた電圧レベルの振幅からデータ信号450のデジタル表現を作成できる。一実施形態では、データ信号450の定常状態部分の最中にサンプリングが起こるよう、サンプリングはデータの出力と同期され得る。こうした実施形態は、時間t1、t2、t3、t4において破線で示されるサンプリングによって描かれている。しかしながら、同期されたサンプリングの位置がずれると、データサンプルの値は定常値と著しく異なってしまう。別の実施形態では、データサンプルによって示される傾きの変化を観察することなどにより、どこで定常値が起こったと思われるかを決定できるよう、サンプリングレートを上げることができる。そうした実施形態は、時間t5、t6、t7、t8において破線で示されるサンプリングによって描かれ、時間t6とt7におけるデータサンプル間の傾きが定常状態条件を示し得る。そうした実施形態では、サンプリングレートと表現精度の間でトレードオフが生じる。サンプリングレートが高いほど、より高い表現精度につながるが、処理時間も増加する。サンプリングがデータ出力に同期されるか、あるいはより高頻度のサンプリングが使用されるかにかかわらず、その後デジタル表現を使用して、どの受信電圧レベルが、アナログ信号パターンの発生に関与すると思われるかを予測できる。そしてこの予測された受信電圧レベルのパターンから、読み出される個々のメモリセルの推定データ値を予測できる。
【００３９】
メモリデバイス301からのデータ値の読み出しの際にエラーが生じることを認識して、読み出し／書き込みチャネル305はエラー訂正を含んでもよい。エラー訂正は、予測されたエラーから回復するため、メモリデバイスだけでなくHDDでも一般的に使用される。典型的には、メモリデバイスはユーザーデータを第一のロケーションセットに格納し、エラー訂正符号（ECC）を第二のロケーションセットに格納する。読み出し動作中、ユーザーデータの読み出し要求に応じて、ユーザーデータとECCの両方が読み出される。既知のアルゴリズムを用いて、読み出し動作から返されたユーザーデータはECCと比較される。エラーがECCの範囲内であれば、エラーが訂正される。
【００４０】
図５は、本開示の一実施形態に従う電子システムの略ブロック図である。電子システムの例としては、パーソナルコンピューター、PDA、デジタルカメラ、デジタルメディアプレーヤー、デジタルレコーダー、電子ゲーム、電化製品、車両、ワイヤレスデバイス、携帯電話などが含まれ得る。
【００４１】
電子システムはホストプロセッサ500を含み、ホストプロセッサ500は、プロセッサ500の効率を高めるためにキャッシュメモリ502を含んでもよい。プロセッサ500は通信バス504に結合する。プロセッサ500の制御の下、種々の他のデバイスが通信バス504に結合してもよい。例えば電子システムは、ランダムアクセスメモリ（RAM）506、キーボード、タッチパッド、ポインティングデバイスなどといった1つ以上の入力デバイス508、オーディオコントローラ510、ビデオコントローラ512、1つ以上の大容量記憶デバイス514を含んでもよい。少なくとも1つの大容量記憶デバイス514はバス504との通信用のデジタルバスインターフェース515を含み、本開示の一実施形態に従う1つ以上のメモリデバイスは、2ビット以上のデータのデータパターンをあらわすデータ信号の転送用のアナログインターフェースを持ち、信号プロセッサは、バスインターフェース515から受信したデジタルデータ信号のデジタル‐アナログ変換と、そのメモリデバイス（群）から受信したアナログデータ信号のアナログ‐デジタル変換とを行うよう適合される。
【００４２】
上述のようなソリッドステートメモリドライブコントローラの性能は多数の要因によって影響され得る。例えば、セルあたりにプログラム可能な異なる状態の量は、プログラミングの信頼性と速度の両方に影響し得る。
【００４３】
製造工程中の各セルの構成におけるわずかな差のために、ビット記憶の信頼性は、メモリアレイ全体にわたってセル毎にもしくはブロック毎に異なる可能性がある。加えて、この変動は集積回路ダイによって異なり、同じ特性を共有するメモリデバイスが一つもないようになっている。
【００４４】
記憶される状態の信頼性は、メモリセルに割り当てられた閾値電圧（すなわちプログラム状態）に基づいて異なり得る。いくつかのセルは、他のセルよりも大きな閾値電圧および／または厳密な閾値電圧許容差でプログラム可能であり、他のセルよりも大きな閾値電圧および／または厳密な閾値電圧許容差を保持し得る。信頼性の高いメモリセルとは、特定の閾値電圧でプログラムされ、その後その電圧を正確に保持できるようなものである。セルの信頼性が高いほど、そのセルにプログラムできるビットは多くなる。本開示の方法は、ソリッドステートドライブコントローラをメモリアレイの領域の信頼性にあわせてキャリブレートし、そして信頼性キャリブレーションテーブルに基づいてその領域にプログラムされるレベルの数を変化させることができる。
【００４５】
以下の考察では、セルあたりのビット数はセルあたりのレベルとしても表現され得る。例えば、セルあたりに記憶された2ビットは、セルあたり4レベルと同じである。セルあたり3ビットはセルあたり8レベルであらわされる。
【００４６】
図６は、メモリコントローラをメモリアレイの領域の信頼性にあわせてキャリブレートするための方法の一実施形態のフローチャートを図示する。図６の方法について論じながら、図７の部分的なメモリセルアレイのブロック図について参照する。
【００４７】
キャリブレーション法は、中心メモリセル701に電圧を書き込む（601）。この電圧は、シングルビット状態もしくはマルチビット状態などのプログラム状態をあらわす閾値電圧である。前述の通り、閾値電圧は、メモリデバイスに結合してメモリデバイスを制御する制御回路によって、所望の閾値電圧をあらわすデジタル信号として生成され得る。その後、読み出し／書き込みチャネルおよび／またはコントローラ回路がデジタル信号に対してデジタル‐アナログ変換を実行し、所望の閾値電圧のアナログ表現を作り出す。
【００４８】
別のアナログ電圧によってあらわされる状態（例えばビットパターン）は、周囲メモリセル703、705のうちの一つ以上へと書き込まれる（603）。その後、中心セル701が読み出され（604）、周囲電圧の書き込みが中心セルの記憶された電圧に対して影響を及ぼした程度を判定する。次に、これらのセル703、705の電圧を変化（通常は増加）させ（605）、中心セル701に対する影響を判定するために、変化のたびに中心セルが読み出される（606）。中心セル701の信頼性の指標は、後で参照するためにメモリ内のテーブルに記憶される（607）。一実施形態では、この信頼性指標は、周囲セルの閾値電圧における変化によって引き起こされた中心セル701の平均閾値電圧変化を示すオフセットである。例えばオフセットは、周囲セルのプログラミングに5 Vが使用される毎に5 mVの変化であってもよい。このオフセットは後ほど、そのメモリ領域内のセルのプログラミングの際に使用できる。
【００４９】
中心セル701を囲むプログラムされたセルの量と方向は、実施形態によって異なり得る。中心セル701に隣接した、ワード線方向のセルは、容量結合とプログラムディスターブの両方によって中心セルに影響を及ぼす。セル701、703、705は全て同じワード線を共有するので、異なる、特に高いプログラミング電圧でワード線に繰り返しバイアスをかけることは、中心セル701の閾値電圧にいくらか影響を及ぼすことになる。
【００５０】
ビット線方向に沿ったセル710、711のプログラミングは、容量結合によって中心セル701の閾値電圧に影響を及ぼす。隣接ビット線セル710、711の容量結合は、より高い電圧が隣接セル710、711にプログラムされるので、セル701、710、711間の容量結合のために、中心セル701の閾値電圧を上昇させる傾向がある。
【００５１】
別のキャリブレーション法の実施形態では、あるセルは、そのセルの閾値電圧変化に関する低下量を判定するために、多数の書き込み／読み出しサイクルを経過し得る。そのような実施形態では、あるプログラミング電圧に対する閾値電圧変化の量が、最初の書き込み／読み出しサイクルに対して決定される。この初期変化は基準として使用され、異なる量の書き込み／読み出しサイクル後の、同じプログラミング電圧に対する閾値電圧変化の量と比較される。結果として得られる信頼性指標は、基準閾値電圧変化と、一定量の書き込み／読み出しサイクル後の閾値電圧変化との間のオフセットである。
【００５２】
さらに別のキャリブレーション法の実施形態では、一回の読み出し動作後の初期の基準閾値電圧変化が、特定のメモリセルに対する多数の読み出し動作後の閾値電圧変化と比較される。例えば一回の読み出し動作が実行され、その後次の読み出し動作は、一回の読み出し動作後の閾値電圧の動きの基準量を決定する。そしてさらに100回の読み出し動作が同じメモリセルに対して実行される。これら二つの閾値電圧の動きの差が、このキャリブレーションの実施形態における信頼性指標となるオフセットである。
【００５３】
これらのキャリブレーションの実施形態は、上記の条件に応じてメモリセルの閾値電圧の“基準となる”予想変化を決定する。実際の変化が基準変化を上回る場合、セルもしくはセルの領域の信頼性が減少し、記憶されたデータの信頼性を増加させるためにそのセルのビット容量レベルを減少させなければならない。
【００５４】
図６および図７に図示されたキャリブレーション法は、メモリアレイの異なる領域の代表的なセルに対して実行される。この方法は、メモリアレイ全体のランダムなセルに対して、もしくはアレイの特定領域において実行され得る。例えば、この方法はアレイの角のセルに対して、および中心において実行されてもよい。別の実施形態では、各メモリブロックの一定領域がチェックされ得る。さらに別の実施形態では、この方法はメモリアレイの周期的な間隔に沿ったセルを用いて実行され得る。
【００５５】
キャリブレーションは製造工程中に一度実行され得、信頼性指標は不揮発性メモリに記憶される。別の実施形態では、キャリブレーションはメモリデバイスの起動のたびに実行される。
【００５６】
ソリッドステートドライブコントローラは、セルあたり異なるビット容量レベルで異なって機能する。例えば各セルにプログラムされるビット量が増加すると、そのセルをプログラムするために必要な時間も増加する。これは、状態の量が多いほど、より低い電圧のプログラミングパルスをより多く必要とするという事実に起因する。プログラムされた状態がより緊密になるので、セルが次の状態に過剰にプログラムされるのを防ぐために、より小さなプログラミングパルスが必要とされる。
【００５７】
図８は、ドライブコントローラの性能要件に基づいてソリッドステートメモリドライブをプログラムするための方法のフローチャートを図示する。システムは最初にコントローラの所望の（例えば必要な）性能を決定する（801）。上述の通り、性能レベルは、必要な信頼性レベル、プログラミング速度、もしくは他の何らかの性能基準であってよい。例えば性能レベルは、ソリッドステートドライブコントローラが1ミリ秒未満でメモリセルのブロックをプログラムできることであってもよい。
【００５８】
コントローラ性能を調整するためにプログラミング信頼性が使用される場合、記憶されるデータのタイプをシステムが決定し得るか、あるいは必要な信頼性のレベルをユーザーが入力し得る。プログラムコードが記憶されているとシステムが判定する場合、例えば画像データが記憶されている場合よりも低いエラー率が必要である。これは、プログラムコードにおける1ビットの変化は、画像の数画素が画素落ちしている場合よりももっと深刻な結果となり得るという前提に起因する。わずかな画素落ちは何百万画素の画像においてはおそらく気付かれないだろうが、プログラム中の間違った命令はプログラムの動作に影響を及ぼす可能性がある。
【００５９】
一般的に、セルに記憶されるビットの量が多いほど、そのセルの信頼性は低下する。従ってプログラムコードはセルあたり少ないレベル数でセルに記憶され得る。画像はより密なレベル／セルを利用し得る。
【００６０】
コントローラ性能の調整にプログラミング速度が使用される場合、システムはセルあたりのレベルを、所望の／必要なプログラミング速度に相関するように調整する。セルあたりのレベルは、セル毎に、ページ毎に、ブロック毎に、もしくは何らかの他のセル分類で調整され得る。セルあたりのレベルと、得られるプログラミング速度との関連付けは、メモリデバイスが最初に起動されるとき、試運転中、デバイスが製造されるとすぐに、もしくは、使用中毎回の起動後になされてもよい。その後、セルあたりのビット容量レベルを、対応するプログラミング速度とともに示すテーブルがメモリ内に作成され得る。テーブルは、不揮発性メモリアレイ、もしくは、コントローラ回路によってアクセス可能な何らかの他の記憶場所に記憶され得る。
【００６１】
一実施形態では、各レベル毎のプログラミング速度はメモリアレイの領域によって異なる。従って、テーブルは各レベル毎のプログラミング速度と、その属性が真である関連するメモリアレイ領域を含み得る。
【００６２】
プログラミング速度テーブルの作成は、信頼性キャリブレーションと同様のやり方で達成される。メモリアレイの様々な領域における代表セルが、異なるビット容量レベルでプログラムされる。各ビット容量レベルでプログラムに必要な時間は、メモリの各領域毎に知られている。このデータはその後、後で参照するために記憶される。
【００６３】
所望の（例えば必要な）コントローラ性能がわかると、選ばれたプログラミング信頼性もしくはプログラミング速度に基づいて、セルに記憶されるビット量が調整される（803）。
【００６４】
図６および図７のメモリアレイの信頼性キャリブレーションの実施形態を用いて、レベル／セルの量に関連してメモリアレイの異なる領域の信頼性がわかる。この情報はメモリ内の信頼性テーブルに記憶されている。システムコントローラもしくは他の制御回路は、一旦所望の／必要な信頼性がわかると、メモリからこのテーブルにアクセスし得る。
【００６５】
同様に、一旦所望の／必要なプログラミング速度がわかると、システムコントローラもしくは他の制御回路は、その速度を得るために必要なセルあたりの対応するレベルを決定するために、メモリ内のプログラミング速度テーブルにアクセスし得る。その後、コントローラはこの情報を用いてメモリデバイスへのデータの書き込み方を決定し得る。
【００６６】
性能を変化させるために信頼性が使用されている場合、コントローラは所望の／必要な信頼性と、テーブルからの信頼性キャリブレーションデータ（例えば各セル毎の信頼性の指標）とを比較し、信頼性要件を満たすためにデータがどのメモリ領域に記憶されるべきかを決定する（805）。例えば、メモリアレイのある領域がセルあたり3レベル以上を記憶するためにより高い信頼性を有することをテーブルが示す場合、コントローラは写真データを記憶するためにこの領域を使用できる。そして、コントローラはこのデータをそれらのセルに書き込む際により高いレベル（すなわちより高い閾値電圧）を使用できる。
【００６７】
別の実施形態では、コントローラがプログラムコードを記憶している場合、もしくはユーザーが最高の信頼性を必要とすることを示す場合、コントローラは、どのメモリ領域がいかなるレベルにおいても最高の信頼性を有するかを決定するためにテーブルにアクセスし得る。その後コントローラは、その特定領域に対して所望の信頼性レベルにあることをテーブルによって示されている最大量のレベルを用いて、高信頼性領域にデータを書き込む。
【００６８】
コントローラ性能を変更するためにプログラミング速度が使用されている場合、コントローラは所望の／必要なプログラミング速度をテーブル内の対応するレベルと比較する。このレベルはその後メモリデバイスにデータを書き込むために使用される（805）。
【００６９】
図８のプログラミング法は、メモリブロック内の異なるメモリセルをプログラミングしながらレベルを変化させ得る。例えば、あるメモリブロックはマルチレベルセルとシングルレベルセルの両方を有し得る。マルチレベルセルはセルあたり3レベル以上（すなわち1.5ビット／セル）を含み、マルチレベルセルのレベルはまた、所望のコントローラ性能に応じてメモリブロック全体にわたって変化させることもできる。
【００７０】
図８の方法の別の実施形態では、一定の性能レベルを実現するためにメモリ記憶容量を犠牲にしなければならない可能性がある。この場合、データは信頼性に基づいてメモリの異なる領域に再書き込みされる。例えば画像データは、データを速くプログラムする（すなわち所望の性能レベルを満たす）ために、当初はSLCビット容量レベルでメモリに書き込まれた。しかしながら画像データは、より遅く、より圧縮されたMLCビット容量レベルに、より低い信頼性レベルで書きこまれた可能性がある。言い換えれば、性能の目標を満たすために記憶容量が犠牲になった。この場合、データは後ほど、性能が問題でなくなったときに、信頼性レベルの低いMLCフォーマットで（すなわち信頼性レベルに基づいて）、再書き込みされる。画像データの最初の領域はその後消去され得る。
【００７１】
前述の実施形態と同様に、コントローラは、所望のデータパターンを記憶するために必要な閾値電圧を示すデジタル信号を発生させることによってデータを書き込む。デジタル‐アナログ変換プロセスは、このデジタル信号を、セルに書き込まれる所望の閾値電圧を示すアナログ信号へと変換する。
【００７２】
［結論］
本開示の実施形態は、所望のソリッドステートドライブコントローラ性能に応じて、セルあたり異なるレベルでデータを記憶する能力を提供する。信頼性性能に関して、キャリブレーション手順は、異なるレベルに応じてメモリアレイの異なる領域の信頼性を決定する。このデータは、特定の信頼性レベルが実現されるよう、異なるタイプのデータをメモリアレイのどの領域に記憶するかを決定するために、コントローラによってアクセスされるテーブルに記憶される。プログラミング速度性能に関して、対応するビット容量レベルを伴うプログラミング速度のテーブルが作成され、メモリに記憶される。
【００７３】
コントローラは、セルあたりの中間閾値レベルに基づいて、性能レベルを確立し得る。言い換えれば、セルあたり2ビットが4レベルを意味し、セルあたり3ビットが8レベルを意味する場合、コントローラはセルあたり6レベルすなわちセルあたり2.5ビットであるように所望の性能レベルを確立し得る。異なる実施形態では、コントローラは、メモリの異なるセクションにおける、もしくは同じブロック内の、個々のメモリブロックもしくはサブブロックに対して、信頼性、レベル／セル、性能情報を記憶し得る。これは所定の信頼性と性能レベルで実行され得る。
【００７４】
本明細書には特定の実施形態が図示され記載されているが、同じ目的を実現するように計算された任意の構成が、示された特定の実施形態と置き換えられてもよいことを、当業者は理解するだろう。本開示の多くの改作が当業者に明らかであろう。従って本出願は、本開示のいかなる改作もしくは変形をも包含することを意図する。
【図２】
2010534889.tif 000003
【図７】
2010534889.tif 000004
【図１】
2010534889.tif 000005
【図３】
2010534889.tif 000006
【図４】
2010534889.tif 000007
【図５】
2010534889.tif 000008
【図６】
2010534889.tif 000009
【図８】
2010534889.tif 000010
【手続補正書】
【提出日】平成22年3月11日(2010.3.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
メモリアレイとコントローラ回路とを含むソリッドステートドライブをプログラムするための方法であって、
前記メモリアレイに記憶されるデータに対するコントローラ性能レベルを決定することと、
前記コントローラ性能レベルをもたらすビット容量レベルを決定することと、
前記ビット容量レベルにおいて前記メモリアレイに前記データを書き込むことと、
を含む方法。
【請求項２】
前記コントローラ性能レベルが、プログラミング速度とプログラミング信頼性とを含む、請求項１に記載の方法。
【請求項３】
ビット容量レベルを決定することが、前記メモリアレイの複数の領域の各々に対するビット容量レベルに関連して、前記メモリアレイの前記複数の領域の各々に対する信頼性の指標を含むテーブルをメモリから読み出すことを含む、請求項１に記載の方法。
【請求項４】
前記ビット容量レベルにおいて前記コントローラ性能レベルを満たすことができる前記メモリアレイの領域を決定することをさらに含む、請求項１に記載の方法。
【請求項５】
前記メモリアレイのメモリセルにプログラム可能な複数のビット容量レベルの各々に対するプログラミング速度を決定することと、
前記コントローラ回路に対する第一のプログラミング速度を発生させることと、
前記複数のビット容量レベルのうち、前記第一のプログラミング速度に対応する第一のビット容量レベルにおいて前記メモリアレイに受信データを書き込むこととをさらに含む、
請求項１に記載の方法。
【請求項６】
前記複数のビット容量レベルの各々に対する前記プログラミング速度を決定することが、前記メモリデバイスの最初の起動時、もしくは、前記メモリデバイスの製造工程中に一度だけ、のうちの一方において達成される、請求項５に記載の方法。
【請求項７】
各プログラミング速度を、それに対応するビット容量レベルとともに記憶することをさらに含む、請求項５に記載の方法。
【請求項８】
各プログラミング速度とそれに対応するビット容量レベルが前記メモリアレイに記憶される、請求項７に記載の方法。
【請求項９】
前記受信データを書き込むことが、前記メモリアレイの同じワード線に沿って書き込むことを含む、請求項５に記載の方法。
【請求項１０】
前記受信データを書き込むことが、前記メモリアレイの同じメモリブロック内で、前記複数のビット容量レベルのうち異なるビット容量レベルにおいて書き込むことを含む、請求項５に記載の方法。
【請求項１１】
前記コントローラ性能レベルが前記ビット容量レベルを減少させた場合、信頼性レベルに基づいて前記メモリアレイの領域に前記データを書き込むことをさらに含む、請求項１に記載の方法。
【請求項１２】
前記ビット容量レベルにおいて前記メモリアレイの第一の領域に前記データを書き込むことと、
前記コントローラ性能レベルが前記ビット容量レベルを減少させた場合、信頼性レベルに基づいて前記メモリアレイの第二の領域に前記データを書き込むこととをさらに含む、
請求項１に記載の方法。
【請求項１３】
前記メモリアレイの前記第一の領域に前記データを書き込むことが、シングルレベルセルビット容量レベルで前記データを書き込むことを含み、前記メモリアレイの前記第二の領域にデータを書き込むことが、マルチレベルセル容量レベルで前記データを書き込むことを含む、請求項１２に記載の方法。
【請求項１４】
ビット線に結合したメモリセルの列と、ワード線に結合したメモリセルの行とを有する不揮発性メモリセルのアレイと、
前記不揮発性メモリセルのアレイの動作を制御するための制御回路であって、前記不揮発性メモリアレイに記憶されるデータに対するコントローラ性能レベルの決定に応じて前記メモリセルをプログラムし、前記コントローラ性能レベルをもたらすプログラミングレベルを決定し、かつ、前記プログラミングレベルにおいて前記不揮発性メモリアレイに前記データを書き込むように構成される、制御回路と、
を含む、ソリッドステートドライブ。
【請求項１５】
前記制御回路が、プログラムされる前記メモリセルからアナログデータ信号を読み出し、かつ、前記読み出したアナログデータ信号を示すデジタル閾値電圧信号を発生させる回路をさらに含む、請求項１４に記載のソリッドステートドライブ。
【請求項１６】
前記制御回路が、プログラムされたメモリ状態を示すデジタルデータ信号を受信し、かつ、前記デジタルデータ信号を、前記プログラムされたメモリ状態の閾値電圧を示すアナログデータ信号に変換する回路をさらに含む、請求項１４に記載のソリッドステートドライブ。
【請求項１７】
前記メモリアレイが、複数の不揮発性メモリセルのブロックを有するNANDアーキテクチャで構成され、不揮発性メモリセルの各ブロックは、前記制御回路に対して生成されたプログラミング速度に応じて、シングルレベルセルとマルチレベルセルの両方でプログラム可能である、請求項１４に記載のソリッドステートドライブ。
【国際調査報告】
2010534889.tif 000011
2010534889.tif 000012