(57)【特許請求の範囲】
【請求項１】
バッファとダイレクトメモリアクセスとの間に接続された第一のマルチプレクサであって、前記第一のマルチプレクサは前記バッファから前記ダイレクトメモリアクセスへとデータを伝送する、第一のマルチプレクサと、
前記バッファと前記ダイレクトメモリアクセスとの間に接続された第二のマルチプレクサであって、前記第二のマルチプレクサは前記ダイレクトメモリアクセスから前記バッファへとデータを伝送する、第二のマルチプレクサと、
前記第一のマルチプレクサへと接続されたエラー訂正チェックビット発生器と、
前記第二のマルチプレクサと前記バッファへと接続されたエラー訂正モジュールと、
前記エラー訂正モジュールと前記ダイレクトメモリアクセスとの間に接続されたシンドローム発生器であって、前記シンドローム発生器は前記ダイレクトメモリアクセスから受信されたデータにおいて少なくとも１ビットのエラーの存在を検出する、シンドローム発生器と、
前記エラー訂正チェックビット発生器、前記エラー訂正モジュール、前記第一のマルチプレクサ、及び前記ダイレクトメモリアクセスに接続されたブロック管理モジュールであって、前記ブロック管理モジュールは一組のブロック管理データを生成する、ブロック管理モジュールと、を含む装置であって、
前記シンドローム発生器は、前記ダイレクトメモリアクセスから前記バッファへと伝送されたデータにおける前記検出されたエラーに基づいてシンドロームを生成し、生成した前記シンドロームを前記エラー訂正モジュールへと伝送することを特徴とする装置。
【請求項２】
前記ダイレクトメモリアクセスは、マルチレベル（ＭＬＣ）ＮＡＮＤフラッシュメモリへと接続される、ことを特徴とする請求項１に記載の装置。
【請求項３】
前記ブロック管理モジュールは、前記バッファから前記ダイレクトアクセスへと伝送されたデータのそれぞれのページのためにブロック管理データを提供し、前記ブロック管理データは、前記バッファから前記ダイレクトアクセスへと伝送されたデータのそれぞれのページの最終セクターと組み合わせられる、
ことを特徴とする請求項２に記載の装置。
【請求項４】
前記エラー訂正チェックビット発生器は、それぞれのページの最終セクターを除いて、それぞれのページの前記複数のセクターのそれぞれのためにエラー訂正コードを生成する、
ことを特徴とする請求項３記載の装置。
【請求項５】
前記エラー訂正チェックビット発生器は、前記ブロック管理データ、及びそれぞれのページの最終セクターのためのエラー訂正コードを生成する、
ことを特徴とする請求項３に記載の装置。
【請求項６】
前記第一のマルチプレクサは、複数のセクター、特定のセクターを除く前記複数のセクターのそれぞれのためのエラー訂正データ、ならびに、前記ブロック管理データと組み合わせられた前記特定のセレクターのための前記ブロック管理データ及びエラー訂正データ、を含むページを受信する、
ことを特徴とする請求項１に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願］
本特許出願は、本明細書において参照によって組み入れられている、２００７年１月２６日に提出された、Ｕ．Ｓ．Ａｐｐｌｉｃａｔｉｏｎ  Ｎｏ．１１／６９８４５５の優先権を享受する利益を主張する。
【０００２】
［技術分野］
本明細書に記述される種々の実施形態は、一般的には、不揮発性メモリデバイスに関し、不揮発性メモリデバイスと併せて使用されるエラー訂正を含む。
【背景技術】
【０００３】
エラー訂正コード（ＥＣＣ）エンジンは、データ伝送中に、データの精度、及びインテグリティ（整合性）を確保するため、エラーを検出し、かつ訂正するプロセスを実行するデバイスである。典型的には、メモリシステムにおいては、メモリコントローラは、データ、及びＥＣＣデータをメモリデバイスへと書き込む。ＥＣＣデータは、データがメモリへと書き込まれてから生じたかもしれないエラーを識別し、かつ、訂正するため、読み出し動作中にコントローラによって使用される。
【０００４】
メモリデバイスは、二つの大まかな領域へと類別されうる。それは、揮発性、及び不揮発性である。揮発性メモリデバイスは、データを保持するために電力を必要とするが、不揮発性メモリは、電力供給なくしてデータを保持することが可能である。不揮発性メモリの例は、フラッシュメモリであり、フラッシュメモリは、チップに情報を保持するために電力の必要なく半導体デバイスにおいて情報を格納する。
【０００５】
フラッシュメモリは、ＮＯＲデバイス、或いはＮＡＮＤデバイスのいずれかを使用して形成されうる。ＮＡＮＤフラッシュは、シングルレベルセル（ＳＬＣ）或いはマルチレベルセル（ＭＬＣ）のいずれかの構造でありうる。ＭＬＣ  ＮＡＮＤフラッシュは、ＳＬＣ  ＮＡＮＤフラッシュと比較して、より高密度のメモリデバイスを可能にする。なぜなら、各メモリセルにおいて、二つ、或いはそれ以上のデータビットを格納することが可能だからである。メモリ密度を増加させるために複数レベルを使用すると、ＭＬＣ  ＮＡＮＤのプログラミング中に、より多くのエラーが生じる可能性があり、効率的なエラー訂正スキームが必要とされる。
【発明の概要】
【０００６】
本明細書に発明の概要に該当する記載なし。
【図面の簡単な説明】
【０００７】
【図１】本発明の種々の実施形態に係る、メモリシステムのブロック図を示す。
【図２】本発明の種々の実施形態に係る、メモリシステムにおけるメモリセルアレイ構成を示す概要図を示す。
【図３】本発明の種々の実施形態に係る、ＮＡＮＤフラッシュメモリアレイの概要図を示す。
【図４】本発明の種々の実施形態に係る、図３に示されるマルチレベルセル（ＭＬＣ）アレイの閾値電圧の分布を示す図を示す。
【図５】本発明の種々の実施形態に係る、エラー訂正装置を示すシステムのブロック図を示す。
【図６】本発明の種々の実施形態に係る、ＮＡＮＤフラッシュメモリにおけるページをプログラミングする方法を示すフロー図を示す。
【図７Ａ】本発明の種々の実施形態に係る、４つのセクター、及びブロック管理データと組み合わせられるＥＣＣを示すページのデータ構造を示す。
【図７Ｂ】本発明の種々の実施形態に係る、４つのセクター、及びブロック管理データと組み合わせられるＥＣＣを示すページのデータ構造を示す。
【図７Ｃ】本発明の種々の実施形態に係る、８つのセクター、及びブロック管理データと組み合わせられるＥＣＣを示すページのデータ構造を示す。
【図８】本発明の種々の実施形態に係る、ＮＡＮＤフラッシュメモリにおけるエラー訂正を実行する方法を示すフロー図を示す。
【図９】本発明の種々の実施形態に係る、ＮＡＮＤフラッシュメモリにおけるエラー訂正を実行する方法を示すフロー図を示す。
【発明を実施するための形態】
【０００８】
図１は、本発明の種々の実施形態に係る、メモリシステム１００のブロック図を示す。種々の実施形態においては、システム１００は、集積回路メモリ１２０、及びコントローラ１１０を含む。メモリ１２０は、不揮発性浮遊ゲートメモリセルアレイ１２２、アドレス回路１２４、制御回路１２６、入力／出力（Ｉ／Ｏ）回路１２８、及びエラー訂正システム１３０を含む。メモリアレイ１２２は、フラッシュメモリセルアレイとも呼ばれてもよい。なぜなら、メモリセルブロックは典型的には‘フラッシュ’動作において、同時に消去されるからである。種々の実施形態においては、メモリアレイは、ＮＡＮＤフラッシュメモリアレイを含む。
【０００９】
種々の実施形態においては、制御回路１２６は、読み出し、書き込み及び消去動作のようなメモリ動作を管理するために提供される。以下に説明されているように、メモリ制御回路１２６によって実行されるメモリ動作の一つは、内部データ移動動作を含む。
【００１０】
種々の実施形態においては、メモリ１２０は、メモリアレイ１２２にアクセスするために、プロセッサ、或いは他のメモリコントローラ１１０へと接続されてもよい。種々の実施形態においては、メモリ１２０は、（示されていない）プロセッサへと接続されてもよく、電子システムの一部を形成してもよい。種々の実施形態の新規の装置、及びシステムは、以下の物を含んでもよく、及び／或いは以下の物に含まれてもよい。それは、高速コンピュータ、通信及び信号処理回路、シングルプロセッサモジュール、或いはマルチプロセッサモジュール、シングル組込プロセッサ、或いはマルチ組込プロセッサ、マルチコアプロセッサ、データスイッチ、及びマルチレイヤ、マルチチップモジュールを含む特定のアプリケーションモジュールにおいて使用される電子回路である。このような装置、及びシステムは、更に、以下のような種々の電子システム内のサブ構成要素として含まれてもよい。それは、テレビ、携帯電話、パーソナルコンピュータ（例えば、ラップトップコンピュータ、デスクトップコンピュータ、携帯用コンピュータ、タブレットコンピュータなど）、ワークステーション、ラジオ、ビデオプレイヤー、オーディオプレイヤー（例えばＭＰ３（モーションピクチャエクスパーツグループ、オーディオレイヤー３）プレイヤー）、自動車、医療デバイス（例えば、心臓モニター、血圧モニターなど）、セットトップボックスその他のような電子システムである。実施形態の中には、多数の方法を含むものもある。
【００１１】
メモリ１２０は、制御回路１２６を介してメモリアレイ１２２へのアクセスを制御するために、コントローラ１１０におけるプロセッサからＩ／Ｏライン１３２をわたって制御信号を受信する。Ｉ／Ｏライン１３２をわたって受信されたアドレス信号に応じて、メモリアレイ１２２へのアクセスは、一つ或いはそれ以上のターゲットメモリセルへと向けられる。いったんアレイ１２２が制御信号、及びアドレス信号に応じてアクセスされると、データは、Ｉ／Ｏライン１３２をわたって、メモリセルへと書き込まれうる、或いはメモリセルから読み出されうる。
【００１２】
更なる回路、及び制御信号が提供されてもよく、本発明の実施形態に対して焦点を合わせやすくするために、図１のメモリデバイスは簡略化されていることが、当業者によって理解されるであろう。メモリデバイスの上記の説明は、メモリの一般的な理解を提供することを意図するものであり、典型的なメモリデバイスの全構成要素、及び機能を完全に説明するものではないことを理解されたい。
【００１３】
種々の実施形態においては、システム１００は、コントローラ１１０によって提供されるＥＣＣ情報を格納するためのエラー訂正システム１３０を含む。エラー訂正システム１３０は、例えば、ハミングコード、ＢＣＨコード、或いはリードソロモンコードなどの、コントローラによって使用されるＥＣＣスキームの指示を格納してもよい。コントローラによって使用されるＥＣＣのタイプに加えて、エラー訂正システム１３０は、アレイデータに関連するＥＣＣデータバイト位置のアドレス、或いはオフセットを格納しうる。
【００１４】
幾つかの実施形態においては、システム１００は、ディスプレイ、及び／或いはワイヤレストランシーバへと接続された、（示されていない）プロセッサを含んでもよい。メモリ１２０に含まれる（複数の）メモリアレイ１２２もまた、プロセッサへと動作可能なように接続されてもよい。
【００１５】
幾つかの実施形態においては、システム１００は、プロセッサへと接続するレンズ、及び結像面を含むカメラを含んでもよい。結像面は、レンズによって捕捉された光を受信するために使用されてもよい。
【００１６】
多くの改変が可能である。例えば、幾つかの実施形態においては、システム１００は、ワイヤレストランシーバの一部を形成する、（示されていない）携帯電話受信機を含んでもよい。幾つかの実施形態においては、システム１００は、プロセッサへと接続する一組のメディアプレイバック制御を含む、オーディオ、ビデオ、或いはマルチメディアプレイヤーを含んでもよい。
【００１７】
前述された構成要素のうちのいずれも、ソフトウェアにおける実施形態を含む、多数の方法において実装されてもよい。ソフトウェアの実施形態は、シミュレーションシステムで使用されてもよく、そのようなシステムの出力は、本明細書に記述されるメモリ１２０、及びシステム１００の様々な部分を操作するために使用されてもよい。
【００１８】
ＥＣＣ技術は、本技術分野において既知であるため、本明細書においては詳細には記載されず、或いは説明されない。本発明の実施形態は、特定の（複数の）ＥＣＣコードへ限定することなく実施されうることを理解されたい。エラーが検出された場合、コントローラ１１０はメモリ１２０からコントローラのバッファへとデータを読み出し、エラーを訂正するためのＥＣＣ動作を実施し、メモリ１２０へと訂正されたデータを書き込み直しうる。
【００１９】
図２は、本発明の種々の実施形態に係る、メモリシステム２００におけるメモリセルアレイ構成を示す概要図を示す。メモリシステム２００は、ブロック２０２、データレジスタ２０４、キャッシュレジスタ２０６、データ領域２０８、予備領域２１０、Ｉ／Ｏポート２１２、及びプレーン２１４を含む。メモリシステム２００は、ＳＬＣメモリ、或いはＭＬＣメモリを含み、ＮＡＮＤフラッシュメモリを含んでもよい。データは、バイト単位で、データレジスタ２０４及びキャッシュレジスタ２０６を介して、ＮＡＮＤフラッシュメモリ２００との間でやりとりされる。キャッシュレジスタ２０６は、Ｉ／Ｏ制御回路の最も近くに位置し、Ｉ／Ｏデータのためのデータバッファとして動作しうるが、一方でデータレジスタ２０４は、メモリアレイに最も近く、ＮＡＮＤフラッシュメモリの動作中にデータバッファとして動作しうる。種々の実施形態においては、データ領域２０８の長さは、“ページ”として定義される。
【００２０】
メモリはページに基づく動作においてプログラムされ、かつ読みだされ、ブロックに基づく動作において消去される。ページ動作中に、データレジスタ、及びキャッシュレジスタはともに結合しあって、単一のレジスタとして動作しうる。キャッシュ動作中は、データレジスタ、及びキャッシュレジスタは、データスループットを増加させるために独立して動作しうる。
【００２１】
図２に示されるような構造のＮＡＮＤフラッシュメモリは、ページのブロックから構成されてもよい。各ブロックは、１６ページ、３２ページ、或いは６４ページから構成されてもよい。種々の実施形態においては、各ページは、データ領域２０８においては５１２バイト（２１６語）を、予備領域２１０においては追加の１６バイト（８語）を有してもよい。種々の実施形態においては、各ページは、データ領域２０８においては２０４８バイト（１０２４語）を、予備領域２１０においては６４バイト（３２語）を有してもよい。予備領域２１０は、製造プロセス中に無効ブロックを標示するために使用されるビットを格納するために使用されてもよい。更には、予備領域２１０は、ＥＣＣチェックビットを格納するために使用されてもよい。無効ブロックの標示は、ブロック管理データ内に含まれる一組のビットに対して動作するソフトウェアによって実行されうる。種々の実施形態においては、プロセッサがＥＣＣハードウェアを含んでいない場合には、このソフトウェアはＥＣＣコードを提供してもよい。
【００２２】
ＳＬＣ  ＮＡＮＤメモリの種々の実施形態においては、予備領域におけるデータは、ホストセクターとともに、或いは個別にプログラムされうる。例えば、割り当て管理情報、或いはブロック管理情報、及びＥＣＣチェックビットは、データがホストから到着する前にまずプログラムされうる。更には、ホストデータのためのＥＣＣチェックビットは、ホストデータと同時にプログラムされてもよい。
【００２３】
ＭＬＣ  ＮＡＮＤメモリの種々の実施形態においては、予備領域データはホストデータと同時にプログラムされなければならない。更には、全ページが同時にプログラムされうる。ブロック管理データは、ホストセクターがバッファにおいて受信される前に決定されうるが、ホストデータがプログラムされるまではプログラムされない。幾つかの実施形態においては、ホストデータがメモリ内へとプログラムされる前に、ＥＣＣ回路を介してセクターがストリームされると、ブロック管理は、ホストセクターの一つへと加えられる。したがって、ブロック管理データのためにエラー訂正を個別に実施するのと比較して、追加の時間は必要がない。
【００２４】
図２に示されるメモリシステム２００の種々の実施形態においては、読み出し動作、及びプログラム動作の手順は、ページに基づいて実施される（例えば、ＮＯＲフラッシュメモリにおいて実施される、１バイト或いは単語に基づくのとは対照的に、一時に５２８バイト）。更には、消去動作は、ブロックに基づいて実施される。動作においては、種々の実施形態におけるページの読み出し動作中に、５２８バイトのページが、出力のためにメモリからデータレジスタへと伝送される。ページのプログラム動作においては、５２８バイトのページが、データレジスタへと書き込まれ、続いてメモリアレイ内へとプログラムされる。ブロック消去動作においても、一群の連続したページが、単一の動作において消去されうる。
【００２５】
図３は、本発明の種々の実施形態に係る、ＮＡＮＤフラッシュメモリアレイ３００の概要図を示す。メモリアレイ３００は、メモリアレイにおいて典型的に使用される全構成要素を示してはいない。例えば、３本のビット線（ＢＬ１、ＢＬ２、及びＢＬ３２）のみが示されているが、実際には使用されるビット線の本数はメモリの密度に依存する。ビット線は、以下、（ＢＬ１−ＢＬ３２）と称する。
【００２６】
ＮＡＮＤメモリは、一連のストリング３０４、３０５において配列される、浮遊ゲートメモリセル３０１のアレイ３００を含む。各浮遊ゲートメモリセル３０１は、それぞれの一連のストリング３０４、３０５においてドレインからソースへと接続されうる。複数の一連のストリング３０４、３０５を横切るワード線（ＷＬ０−ＷＬ３１）は、その動作を制御するため、ある行における各浮遊ゲートセルの制御ゲートへと接続される。ビット線（ＢＬ１−ＢＬ３２）は、最終的には各セル３０１の状態を検出する（示されていない）センス増幅器へと接続される。
【００２７】
動作においては、ワード線（ＷＬ０−ＷＬ３１）は、書き込み或いは読み出しされる一連のストリング３０４、３０５における個々の浮遊ゲートメモリセルを選択し、パススルーモードにおいては、各一連のストリング３０４、３０５において、残りの浮遊ゲートメモリセルを操作する。浮遊ゲートメモリセルの各一連のストリング３０４、３０５は、ソース選択ゲート３１６、３１７によってソース線３０６へと接続され、ドレイン選択ゲート３１２、３１３によって個々のビット線（ＢＬ１−ＢＬ３２）へと接続される。ソース選択ゲート３１６、３１７は、その制御ゲートへと接続されたソース選択ゲート制御線ＳＧ（Ｓ）３１８によって制御される。ドレイン選択ゲート３１２、３１３は、ドレイン選択制御線ＳＧ（Ｄ）３１４によって制御される。
【００２８】
それぞれのセルは、１セルにつき単一ビット、或いは１セルにつき複数ビットとしてプログラムされうる。ＳＬＣは、１セルにつき単一ビットをプログラムすることを許容し、ＭＬＣは、１セルにつき複数ビットをプログラムすることを許容する。各セルの閾値電圧（Ｖｔ）は、セル内に格納されるデータを決定する。例えば、１セルにつき単一ビットのアーキテクチャにおいては、１ＶのＶｔがプログラムされたセルを示しうるのに対して、−１ＶのＶｔは消去されたセルを示しうる。マルチレベルセルは、二つよりも多くのＶｔウインドウを有し、それぞれが異なる状態を示す。ＭＬＣは、ビットパターンをセルに格納された特定の電圧範囲へと割り当てることによって、従来のフラッシュセルのアナログ特性を利用する。この技術によって、セルに割り当てられた電圧範囲の量に依存して、１セルにつき二つ以上のビットを格納することが可能となる。
【００２９】
例えば、セルは４つの異なる電圧Ｖｔ分布を割り当てられ、それぞれが約２００ｍＶの幅を有する。種々の実施形態においては、さらに０．３Ｖから０．５Ｖの分離が、各Ｖｔ分布範囲の間に割り当てられる。Ｖｔ分布間のこの分離域は、複数のＶｔ分布が重なって論理エラーを引き起こさないように定められる。検証中に、セルに格納された電圧が０１の高いＶｔ分布内であると検出された場合には、セルは０１を格納している。電圧が００の二番目に高い分布内である場合には、セルは００を格納している。これが、セルに使用されるのと同じだけの範囲（レベル）にわたって継続する。
【００３０】
プログラミング動作中、フラッシュメモリセルがプログラムされるために選択されたワード線（ＷＬ）には、一連の高電圧プログラミングパルスが供給される。高電圧プログラミングパルスは、典型的には、１６Ｖから開始して０．５Ｖの増加量で増加する。１０Ｖの増加しない高電圧パルスは、選択されていないＷＬに対して印加される。
【００３１】
選択されたセルが、選択されたＷＬにおいてプログラミングされるのを抑止するために、一実施形態においては、ＢＬに対して〜１．３Ｖを印加することによって、抑止されるセルのチャネルはビット線（ＢＬ）から分断される。選択されたＷＬにおいて選択されたセルをプログラムするために、チャネルはＢＬを介して０Ｖへと接地される。チャネルとＷＬの間に形成される大きな電位差がセルをプログラムさせるように設計され、デバイスのＶｔはより高いプログラミングパルスが印加されるにつれて増加する。
【００３２】
種々の実施形態においては、各プログラミングパルス間で、検証フェーズが実施される。検証中、選択されたＷＬは０Ｖへと下げられ、選択されていないＷＬは５Ｖへと下げられ、選択されたセルの状態が検出される。ＷＬにおける０Ｖによってデバイスに伝導が誘発されないように、セルがＶｔレベルを有するようにプログラムされる場合、デバイスはプログラムされているものと考えられる。さもなければ、セルは消去されているものと考えられ、プログラミングパルスの高さは０．５Ｖずつ増加し、選択されたＷＬへと再度印加される。プログラムされるべき、全ての選択されたセルが実際にプログラムされるまで、このプロセスが繰り返される。
【００３３】
典型的なメモリブロックは、６４論理ページを含みうる。６４論理ページは、３２本の物理的なＷＬとともに形成されうる。各ＷＬは２論理ページを含みうる。例えば、一つのＷＬには４Ｋビットセルが存在してもよい。このうち、２Ｋビットは、別の２Ｋビットページと同一のＷＬを共有する１ページに専用であってもよい。各セルが複数のＶｔ分布レベルモードにおいて使用される場合、記述された構成のＷＬは、１ページにつき２Ｋビットを有する４ページを保持する。これらのページのうちの１つがプログラムされる場合、同一のＷＬ上の第二のページは、たとえ抑止されていたとしても、外乱状態を経験する。したがって、共有されたＷＬを伴うページは、プログラミング外乱を経験しうる。共有されたＷＬ上に引き起こされるプログラミング外乱は、同一のＷＬ上にある第二のページにおいてあらかじめプログラムされているセルのＶｔ分布をシフトさせ、その分布をより広くさせる。１セルにつき二つのレベルを使用する不揮発性メモリデバイスにとっては、このことは主要な問題とはなり得ない。なぜなら、二つの分布間の分離域は、分布が外乱状態によって重複するのを妨げるほどに十分大きいからである。しかしながら、ＭＬＣ動作にとっては、単一セルが物理的な単一のセルにつき２ビット、或いは４レベルを表すために使用される場合、分離域が減少し、Ｖｔ分布が重複する、或いはシフトするのを防止するためには、外乱状態を減少させることが望ましくなる。
【００３４】
図４は、本発明の種々の実施形態に係る、図３のＮＡＮＤフラッシュメモリアレイの閾値電圧の分布を示す図４００を示す。図４００内の閾値電圧の分布は、各メモリセルが２ビットのデータ、すなわち４つのデータ状態を格納することを示す。図４００は、閾値電圧を表すｙ軸４０２と、メモリセルにおける論理レベルを表す曲線４０６、４０８、４１０、及び４１２を有するｘ軸４０４を含む。曲線４０６は、負の閾値電圧において、消去状態にあるアレイ１２２（図１参照）内のセルの閾値レベルＶｔの分布を表す。曲線４０８、及び曲線４１０は、それぞれ“１０”及び“００”を格納するための閾値電圧分布を表すために示される。更に、曲線４０８は、０Ｖと１Ｖの間にあり、曲線４１０は１Ｖと２Ｖの間にある。曲線４１２は、２Ｖより大きく４．５Ｖ未満に設定された、最も高い閾値電圧レベルにおいて、状態“０１”へとプログラムされたセルの分布を示す。
【００３５】
単一のメモリセル内に格納された２ビットのうちのそれぞれは、上の実施例において記述されたように、異なる論理ページに由来する。すなわち、各メモリセル内に格納された２ビットのうちの各ビットは、互いに異なる論理ページアドレスを有する。図４に示される下位のページビットは、偶数ページアドレス（０、２、４、・・・Ｎ／２）が要求された場合にアクセスされる。上位のページビットは、奇数ページアドレス（１、３、５、・・・［Ｎ／２＋１］）が要求された場合にアクセスされる。改良された信頼性を提供するために、個々の分布は減少し、それによって、より大きい読み出しマージンが提供されうる。
【００３６】
読み出し動作においては、ターゲットの（選択された）メモリセルのワード線は、低電圧レベルにおいて維持されうる。選択されていないセルのワード線は全て、その浮遊ゲートの電荷に関わらず、選択されていないセルを活性化させるために十分に高い電圧に接続されうる。選択されたセルが、帯電していない浮遊ゲートを有する場合には、それは活性化される。ビット線、及びソース線は、続いてアレイ内の一連のメモリセルを介して接続される。選択されたセルが帯電した浮遊ゲートを有する場合には、それは活性化されない。その場合には、ビット線、及びソース線は、一連のメモリセルを介して接続されない。
【００３７】
ＮＡＮＤフラッシュメモリデバイスの中には、メモリアレイ（ブロック）内に初期不良ブロックを含むものもある。これらの不良ブロックは、製造者によって不良品として標示され、いかなるシステムにおいても使用されるべきではないことが示されうる。更には、ＮＡＮＤデバイスは、劣化して磨耗する可能性があり、それによって、通常のデバイス動作中に、更なる不良ブロックが発生する結果となる。更には、ＮＡＮＤフラッシュデバイス動作中に、或いは長期の休止期間中に、ビットエラーが生じうる。したがって、ＮＡＮＤフラッシュメモリはデータインテグリティ（整合性）を確保するためにＥＣＣ機能を提供されうる。
【００３８】
ＮＡＮＤフラッシュメモリは、各ページに“スペアエリア（予備領域）”と呼ばれる追加の記憶装置を含みうる。種々の実施形態においては、予備領域は６４バイト（５１２バイトセクターにつき１６バイト）を含む。種々の実施形態においては、予備領域は、ＥＣＣ、及び、不良ブロック情報の格納、ウェアレベリング、或いは論理‐物理ブロックマッピングのために使用される、ブロック管理データのような情報を格納するために使用される。ウェアレべリングは、ファイルがプログラムされる度毎に、論理メモリアドレスを異なる物理メモリアドレスへ変換することを含む。ウェアレべリングは、メモリアレイの全範囲へとＮＡＮＤフラッシュメモリセルの使用を拡大し、それによって全メモリセルの使用を均一にし、デバイスの寿命を延長するのに役立つ。この動作は、ＮＡＮＤフラッシュメモリデバイスへ接続されたコントローラによって、モニターされ、かつ実施されうる。
【００３９】
図５は、本発明の種々の実施形態に係る、エラー訂正のための装置を示すシステム５００のブロック図を示す。システム５００は、ホスト５０２、バッファ５０４、エラー訂正システム５１８、ダイレクトメモリアクセスコントローラ（ＤＭＡ）５２０、及びフラッシュメモリ５２２を含む。エラー訂正システム５１８は、エラー訂正チェックビット発生器５０６、ブロック管理データブロック５０８、第一のマルチプレクサ５１０、シンドローム発生器５１２、エラー訂正モジュール５１４、及び第二のマルチプレクサ５１６を含む。種々の実施形態においては、システム５００は、ソフトウェア、ハードウェア、或いはその二つの組み合わせにおいて実装される、ＮＡＮＤフラッシュメモリコントローラを含む。システム５００のコントローラは、図１の制御回路１２６と類似してもよいし、或いは、同一であってもよい。種々の実施形態においては、バッファ５０４は、（示されていない）マルチメディアカードインターフェイスを介して、ホスト５０２へと接続される。種々の実施形態においては、エラー訂正システム５１８は、（示されていない）ＮＡＮＤフラッシュコントローラハードウェアにおいて実装される。エラー訂正は、ハードウェア、或いはソフトウェアにおいて実施されうる。エラー訂正システム５１８は、図１のエラー訂正システム１３０と類似してもよいし、或いは、同一であってもよい。
【００４０】
図５に示されるように、ホスト５０２は、バッファ５０４へと接続され、ＤＭＡ５２０は、フラッシュメモリ５２２へと接続される。バッファ５０４、及びＤＭＡ５２０の両者は、それぞれホスト５０２、及びフラッシュメモリ５２２からデータを送信し、受信するように構成される。種々の実施形態においては、ホスト５０２、及びフラッシュメモリ５２２とのデータのやりとりは、８ビット幅、或いは１６ビット幅の双方向データバスを介して実施される。バッファ５０４の出力は、エラー訂正モジュール５１４、エラー訂正チェックビット発生器５０６、及び第一のマルチプレクサ５１０の入力へと接続される。第一のマルチプレクサ５１０の出力は、ＤＭＡ５２０の入力へと接続される。ＤＭＡ５２０の出力は、シンドローム発生器５１２、ブロック管理モジュール５０８、及び第二のマルチプレクサ５１６の入力へと接続される。
【００４１】
幾つかの実施形態においては、ブロック管理モジュール５０８は、メモリブロック内の不良ブロック（無効ブロック）とその位置に関する情報を格納する。無効ブロックは、二つのグループへと分類されうる。すなわち、先天的な（inherent）無効ブロックと後天的な（acquired）無効ブロックとである。先天的な無効ブロックは、ＮＡＮＤデバイスの製造プロセス中に生じる。一方で、後天的な無効ブロックは製造工場によっては同定されない。これらのブロックは、消耗の結果として顧客側に起源がある。消耗されたブロックは、無効ブロックとして標示され、ブロック消去、或いはページプログラム障害のいずれかがあった場合には、それ以降アクセスされることはない。後天的な無効ブロックは、通常、先天的な無効ブロックと同一の方法によって標示される。ブロック管理データブロック５０８は、エラー訂正モジュール５１４、及びエラー訂正チェックビット発生器５０６へと接続され、エラー訂正モジュール５１４、及びエラー訂正チェックビット発生器５０６からデータを送信、及び受信する。第二のマルチプレクサ５１６の出力は、バッファ５０４の入力へと接続される。
【００４２】
種々の実施形態においては、ホスト５０２からのデータワードがフラッシュメモリ５２２へと書き込まれる場合、ワードは最初にページの一部としてバッファ５０４に格納される。種々の実施形態においては、ページは、情報のビットとして格納される、ホスト５０２からの情報を有する、一連のセクターを含む。種々の実施形態においては、フラッシュメモリ５２２へとページをプログラムするよう（示されていない）コントローラから指示を受信すると、（おそらくページの最終セクターを除いて）ページ内に含まれる各セクターのために、エラー訂正チェックビットがエラー訂正チェックビット発生器５０６において生成される。ページの最終セクターは、修正されたセクターを形成するために、ブロック管理モジュール５０８によって提供されるブロック管理データと組み合わせられうる。エラー訂正チェックビットは、修正されたセクターのために生成される。最終セクター以外の一連のセクター、修正されたセクター、及びそれらに対応するエラー訂正ビットは、図７Ａ−図７Ｃに示されるようにフラッシュメモリ５２２におけるページとして格納される。
【００４３】
種々の実施形態においては、データワードがフラッシュメモリ５２２から読み直される場合、ページに格納されたエラー訂正チェックビットは再計算され、フラッシュメモリ５２２から読み出された、格納されたエラー訂正チェックビットと比較される。比較の結果として相違がある場合には、それはエラーが生じたということを示している。このような比較の結果はシンドロームと呼ばれ、シンドローム発生器５１２において生成される。シンドロームがゼロであることがわかった場合、エラーがなかったということが決定されうる。シンドロームがゼロでない場合、どのデータビット、或いはＥＣＣビットがエラーであるかを同定するために、或いは、エラーが訂正不可能であることを決定するために、シンドロームが使用されうる。種々の実施形態においては、シンドロームがゼロでない場合、どのビットがエラーであるかを決定するために、テーブルにインデックスを作成するためにシンドロームが使用されうる。種々の実施形態においては、このテーブルルックアップステージは、ハードウェアにおいて実装され、他の実施形態においては、ソフトウェアにおいて実装される。
【００４４】
幾つかの実施形態においては、実装されるエラー訂正コードのタイプと、任意のシステムにおいて必要とされるエラー保護の程度は、格納されるデータのタイプ、及び、使用されるＮＡＮＤフラッシュ技術のタイプ（ＳＬＣ、或いはＭＬＣ）に依存する。種々の実施形態においては、使用されるエラー訂正コードは、ボース‐チョードリー‐ホッケンガム（ＢＣＨ）、リード‐ソロモン（ＲＳ）、ハミング、ゴレイ、リードミュラー、ゴッパ、及びデニストンコードのうちのいずれか一つ、或いはそれ以上を含んでもよい。幾つかの実施形態においては、８つの単一ビットエラーが、エラー訂正コードを使用して、任意のいずれのセクターにおいても訂正されうる。種々の実施形態においては、１６の単一のビットエラーが、エラー訂正コードを使用して、任意のいずれのセクターにおいても訂正されうる。
【００４５】
図６は、種々の実施形態に係る、ＮＡＮＤフラッシュメモリにおけるページをプログラミングする方法のフローチャートを示す。方法６００は、ページをプログラムするためのブロック６０２から開始する。ここで、図５、及び図６を参照すると、方法６００は、フラッシュメモリ５２２へのページアドレスとともに、プログラムコマンドを送信するステップをブロック６０４において含んでもよいことが明らかである。方法６００は、ホスト５０２からバッファ５０４へと１つのセクターを伝送するステップを、ブロック６０６において含みうる。方法６００は、フラッシュメモリ５２２へと、エラー訂正システム５１８におけるＥＣＣ論理を介して一つずつ、バッファ５０４に格納されたセクターを伝送するステップを、ブロック６０８において含みうる。
【００４６】
方法６００は、そのセクターがページの最終セクターであるかどうかを決定するステップをブロック６１０において含みうる。セクターが最終セクターであると決定された場合、続いて、方法はブロック６１４へと進行する。セクターが最終セクターではないと決定された場合、方法はブロック６１２へと戻り、そこで対応するセクターのＥＣＣバイトがフラッシュメモリ５２２へと伝送される。
【００４７】
方法６００は、ＥＣＣ論理を介して、続いてフラッシュメモリ５２２へと、ブロック管理データをクロックするステップを、ブロック６１４において含みうる。方法６００は、最終セクターに対応するＥＣＣ冗長バイト及び、ブロック管理データをフラッシュメモリ５２２へと伝送するステップを、ブロック６１６において含みうる。方法６００は、ページをプログラムするために、プログラム確認コマンドをフラッシュメモリ５２２へと送信するステップを、ブロック６１８において含みうる。方法６００は、フラッシュメモリ５２２からプログラム確認状態を受信するステップを、ブロック６２０において含みうる。
【００４８】
図７Ａ、及び図７Ｂは、種々の実施形態に係る、４つのセクター、及びブロック管理データと組み合わせられるＥＣＣチェックビットをそれぞれ示すページ７００、及び７２０のデータ構造を示す。図７Ａに示されるように、ページ７００は、フィールド７０２−７１０を含む。フィールド７０２、７０４、７０６、及び７０８は、データビットを含むセクターを表す。フィールド７０３、７０５、７０７、及び７０９は、それぞれセクター７０２、７０４、７０６、及び７０８のために生成されるＥＣＣチェックビットに対応する。フィールド７１０は、ブロック管理データを含む。種々の実施形態においては、フィールド７０２、７０４、７０６、及び７０８は、ホスト５０２からフラッシュメモリ５２２へと伝送されるべきデータを集合的に含む。種々の実施形態においては、フィールド７０２、７０４、７０６、及び７０８は、５１２バイトの情報を含む。幾つかの実施形態においては、フィールド７０３、７０５、７０７、及び７０９は、１３バイトのＥＣＣチェックコードを含む。種々の実施形態においては、ブロック管理データ７１０は、１２バイトのブロック管理情報を含む。
【００４９】
図７Ｂに示されるように、ページ７２０はフィールド７２２−７３０を含む。フィールド７２２、７２４、７２６、及び７２８は、データビットを含むセクターを表す。フィールド７２３、７２５、７２７、及び７２９は、それぞれセクター７２２、７２４、７２６、及び７２８のために生成されるＥＣＣチェックビットに対応する。フィールド７３０は、ブロック管理データを含む。種々の実施形態においては、フィールド７２２、７２４、７２６、及び７２８は、ホストデバイス５０２からフラッシュメモリ５２２へと伝送されるデータを集合的に含む。種々の実施形態においては、フィールド７２２、７２４、７２６、及び７２８は、５１２バイトの情報を含む。幾つかの実施形態においては、フィールド７２３、７２５、７２７、及び７２９は、２６バイトのＥＣＣチェックコードを含む。種々の実施形態においては、ブロック管理データ７３０は、１０バイトのブロック管理情報を含む。
【００５０】
図７Ｃは、本発明の種々の実施形態に係る、８つのセクター、及びブロック管理データと組み合わせられるＥＣＣを示すページ７４０のデータ構造を示す。図７Ｃに示されるように、ページ７４０は、フィールド７４１、７４２・・・７５９を含む。フィールド７４１、７４２・・・７４８は、データビットを含むセクターを表す。フィールド７５１、７５２・・・７５８は、それぞれセクター７４１、７４２・・・７４８のために生成されるＥＣＣチェックビットに対応する。フィールド７５９は、ブロック管理データを含む。種々の実施形態においては、セクターフィールド７４１、７４２・・・７４８は、ホストデバイス５０２からフラッシュメモリ５２２へと伝送されるデータを集合的に含む。種々の実施形態においては、セクター７４１、７４２・・・７４８は、５１２バイトの情報を含む。幾つかの実施形態においては、フィールド７５１、７５２・・・７５８は、２６バイトのＥＣＣチェックビットを含む。種々の実施形態においては、フィールド７５９は、１０バイトのブロック管理情報を含む。
【００５１】
図８は、種々の実施形態に係る、ＮＡＮＤフラッシュメモリにおけるエラー訂正を実施するための方法８００を示すフロー図を示す。方法８００は、ページにおける一つ以上の選択されたセクターを除く、ページの複数のセクターのそれぞれのために、エラー訂正データを生成するステップをブロック８０２において含みうる。方法８００は、修正されたセクターを生成するために、ブロック管理データを選択された（複数の）セクターと組み合わせるステップを、ブロック８０４において含みうる。方法８００は、修正されたセクターのためにエラー訂正データを生成するステップを、ブロック８０６において含みうる。
【００５２】
方法８００は、複数のセクター、選択されたセクター以外の複数のセクターのそれぞれのためのエラー訂正データ、修正されたセクターのためのブロック管理データ及びエラー訂正データを組み合わせるステップを、ブロック８０８において含みうる。
【００５３】
図９は、種々の実施形態に係る、ＮＡＮＤフラッシュメモリにおけるエラー訂正を実施するための方法９００を示すフロー図を示す。方法９００は、マルチレベルセルフラッシュメモリにおいて、複数のデータセクター及び、ブロック管理データを格納するステップを、ブロック９０２において含みうる。
【００５４】
方法９００は、組み合わせられたブロック管理データセクターを生成するために、ブロック管理データを、複数のデータセクターのうちの少なくとも一つと組み合わせるステップを、ブロック９０４において含みうる。
【００５５】
方法９００は、組み合わせられたブロック管理データセクターを生成するために使用される、複数のデータセクターのうちの少なくとも一つ以外の複数のデータセクターのそれぞれのためにエラー訂正データを生成するステップを、ブロック９０６において含みうる。
【００５６】
方法９００は、組み合わせられたブロック管理データセクターのための、組み合わせられたブロック管理エラー訂正データを生成するステップを、ブロック９０８において含みうる。
【００５７】
方法９００は、複数のデータセクター、ブロック管理データ、複数のデータセクターのそれぞれのためのエラー訂正データ、及び、組み合わせられたブロック管理エラー訂正データを組み合わせるステップを、ブロック９１０において含みうる。
【００５８】
本明細書に記述された装置、システム及び方法を実施することで、結果としてＮＡＮＤフラッシュメモリにとってより良いエラー訂正機能が利用可能になる。更には、エラー訂正動作のために要する時間、及びエラー訂正に使用されるメモリが著しく節約されうる。
【００５９】
本明細書の一部を形成する、付随する図面は、例示の目的のためであって、限定する目的ではなく、本発明の主題が実施されうる特定の実施形態を示している。示されている実施形態は、当業者が本明細書に開示される教示を実施することが可能なほど十分詳細に記述されている。他の実施形態は、本開示の範囲から逸脱することなく構造的、及び論理的な置換、及び変形がなされるように、そこから利用され、派生されうる。したがって、この「発明を実施するための形態」は限定する目的でなされるわけではなく、種々の実施形態の範囲は、付随の請求項、及び、請求項が権利を与えられるあらゆる種類の均等物によってのみ定義される。
【００６０】
本発明の主題のこのような実施形態は、本明細書においては、単に簡便性のために個別に、或いは集合的に、“発明”という用語で言及されているが、実際には一つ以上が開示されている場合でも、この用途の範囲をいかなる単一の発明、或いは発明的な概念へと任意に限定することを意図するものではない。このように、本明細書においては、特定の実施形態が示され、説明されてきたが、同一の目的を達成すると予測されるいかなる装置が、示される特定の実施形態と置換されてもよい。本開示は、種々の実施形態のいかなる、及び全ての改作物或いは変形物を包含するように意図される。上述の実施形態と、本明細書においては特に記述されていない他の実施形態との組み合わせは、上記の説明を再考することによって当業者にとって明らかになるであろう。
【００６１】
“ロウ”論理信号、及び“ハイ”論理信号のための電圧の大きさは、通常定義されない。なぜなら、負の電圧、及び正の電圧を含む、様々な相対的な値を有しうるからである。“ハイ”及び“ロウ”論理信号は、二進値を表すことにおいて、お互いに対するその関係によってのみ定義される。典型的には、“ハイ”論理信号は“ロウ”論理信号よりも高い電圧レベル、或いは電位を有し、もしくは、“ロウ”信号は、“ハイ”信号とは異なる極性、或いは負の極性を有しうる。当業者にとって理解されるように、幾つかの論理システムにおいては、相対的な“ロウ”論理値が接地を基準として負の電位によって表される場合には、“ハイ”論理値は、接地電位によって表されることさえありうる。
【００６２】
本開示の要約書は、読者が技術的な開示の特徴を直ちに確認することを可能にする要約書を必要とするという、３７Ｃ．Ｆ．Ｒ．§１．７２（ｂ）に従うために提供される。要約書は、請求項の範囲、或いは意味を解釈する、或いは限定するためには使用されないことを理解したうえで提出される。前述の「発明を実施するための形態」においては、本開示を簡素化する目的のために、単一の実施形態において種々の特徴がともにグループ化されている。この開示の方法は、各請求項において明確に列挙されるよりも、より多くの特徴を必要とすると解釈されるべきではない。むしろ、本発明の主題は、開示された単一の実施形態の全特徴よりも少ない特徴において理解されうる。このように、付随する請求項は、これによって「発明を実施するための形態」に組み込まれ、各請求項は個々の実施形態として独立する。
【００６３】
［結論］
種々の実施形態は、本明細書において、メモリデバイスにおけるプログラミングシステム管理データのための機構として説明された。プログラミングは、バッファとダイレクトメモリアクセスとの間に接続される、エラー訂正モジュールを使用して内部で実施されうる。種々の実施形態においては、メモリデバイスはＭＬＣ  ＮＡＮＤデバイスを含む。
【図２】
0005686516.tif 000002
【図３】
0005686516.tif 000003
【図７Ａ】
0005686516.tif 000004
【図７Ｂ】
0005686516.tif 000005
【図７Ｃ】
0005686516.tif 000006
【図１】
0005686516.tif 000007
【図４】
0005686516.tif 000008
【図５】
0005686516.tif 000009
【図６】
0005686516.tif 000010
【図８】
0005686516.tif 000011
【図９】
0005686516.tif 000012