(57)【特許請求の範囲】
【請求項１】
複数のワード線および複数の配列されたビット線の交点にあり、直列に接続された共通のビット線を共有するセルのアレイを含むメモリのデータ読み出しモードにおいて、ワード線を共有するセルを読み出す方法であって、
（ａ）前記ワード線のセルの少なくとも一部分を実質的に同時にプログラムするステップと、
（ｂ）検知するステップの前に、前記セルを検知するためのコントローラによって引き続き発行されたコマンドごとにビット線の一部分を特定するコマンドを発行する前記コントローラによって、実質的に同時にプログラムされた、前記メモリの物理ページのすべてのセルよりも少ない前記セルの少なくとも一部分でワード線と交差する前記ビット線の一部分のみを選択するステップと、
（ｃ）（ｂ）における選択するステップに基づいて、前記ワード線と前記ビット線の一部分との交点にあるワード線のセルのみを選択的に検知するステップと、
を含む方法。
【請求項２】
請求項１記載の方法において、
前記選択するステップが、前記ビット線の一部分の開始ビット線を特定することを含むステップによって実行される方法。
【請求項３】
請求項１記載の方法において、
前記選択するステップが、前記ビット線の一部分の終了ビット線を特定することを含むステップによって実行される方法。
【請求項４】
請求項１記載の方法において、
前記選択するステップが、前記ビット線の一部分の開始ビット線および終了ビット線を特定することを含むステップによって実行される方法。
【請求項５】
請求項１記載の方法において、
（ｄ）前記ビット線を複数の非同一セットのビット線にグループ分けするステップをさらに含み、
前記選択するステップが、前記非同一セットの少なくとも１つを特定することによって実行される方法。
【請求項６】
請求項１記載の方法において、
前記メモリが、ホストとインターフェイスで接続される方法。
【請求項７】
メモリであって、
（ａ）複数のワード線および複数のビット線の交点にあり、直列に接続された共通のビット線を共有する複数のセルと、
（ｂ）前記ワード線の１つを選択するためのワード線選択機構と、
（ｃ）前記選択されたワード線のセルの少なくとも一部分を実質的に同時にプログラムするためのプログラミング機構と、
（ｄ）実質的に同時にプログラムされた、前記メモリの物理ページのすべてのセルよりも少ない前記セルの少なくとも一部分で選択されたワード線と交差するビット線の一部分のみを選択し、かつ前記選択されたワード線と前記ビット線の選択された一部分との交点にある、前記選択されたワード線のセルの少なくとも一部分のセルのみを検知するためのビット線選択機構と、
（ｅ）前記メモリのデータ読み出しモードにおける検知の前に、前記セルを検知するためのコントローラによって引き続き発行されたコマンドごとにビット線の一部分を特定するコマンドを発行することによって前記ビット線の一部分を選択するように前記ビット線選択機構に命令するためのコントローラと、
を備えるメモリ。
【請求項８】
請求項７記載のメモリにおいて、
前記ビット線選択機構が、前記ビット線を個々に選択するメモリ。
【請求項９】
請求項７記載のメモリにおいて、
前記ビット線選択機構が、前記ビット線の選択された一部分を示すための複数のビットを含むレジスタを含むメモリ。
【請求項１０】
請求項７記載のメモリにおいて、
前記コントローラが、前記ビット線の一部分を選択するように前記ビット線選択機構に命令するために、単一のビット線選択パラメータ値を含むコマンドを発行するメモリ。
【請求項１１】
請求項１０記載のメモリにおいて、
前記単一のビット線選択パラメータ値が、前記ビット線の一部分の開始ビット線を特定するメモリ。
【請求項１２】
請求項１０記載のメモリにおいて、
前記単一のビット線選択パラメータ値が、前記ビット線の一部分の終了ビット線を特定するメモリ。
【請求項１３】
請求項７記載のメモリにおいて、
前記コントローラが、前記ビット線の一部分を選択するように前記ビット線選択機構に命令するために、２つのビット線選択パラメータ値を含むコマンドを発行するメモリ。
【請求項１４】
請求項７記載のメモリにおいて、
前記ビット線が、複数の非同一セットにグループ分けされ、
前記ビット線選択機構が、検知用に選択された前記非同一セットの少なくとも１つにフラグを立てるためのレジスタを含むメモリ。
【請求項１５】
請求項１４記載のメモリにおいて、
前記コントローラが、前記ビット線の一部分を選択するように前記ビット線選択機構に命令するために、前記レジスタにフラグが立てられる複数の非同一セットの少なくとも１つのセットを特定するビット線選択コマンドを発行するメモリ。
【請求項１６】
システムであって、
（ａ）第１のメモリであって、
（ｉ）複数のワード線および複数のビット線の交点にあり、直列に接続された共通のビット線を共有する複数のセルと、
（ｉｉ）前記ワード線の１つを選択するためのワード線選択機構と、
（ｉｉｉ）前記選択されたワード線のセルの少なくとも一部分を実質的に同時にプログラムするためのプログラミング機構と、
（ｉｖ）実質的に同時にプログラムされた、前記メモリの物理ページのすべてのセルよりも少ない前記セルの少なくとも一部分で選択されたワード線と交差するビット線の一部分のみを選択し、かつ前記選択されたワード線と前記ビット線の選択された一部分との交点にある、前記選択されたワード線のセルの少なくとも一部分のセルのみを検知するためのビット線選択機構と、を含む第１のメモリと、
（ｂ）前記第１のメモリのホストであって、
（ｉ）前記メモリのデータ読み出しモードにおける検知の前に、前記セルを検知するためのコントローラによって引き続き発行されたコマンドごとにビット線の一部分を特定するコマンドを発行することによって前記ビット線の一部分を選択するように前記ビット線選択機構に命令するためのコードを格納する第２のメモリと、
（ｉｉ）前記コードを実行するためのプロセッサと、を含む前記第１のメモリのホストと、
を備えるシステム。
【請求項１７】
請求項１６記載のシステムにおいて、
前記コードが、前記ビット線選択機構に、単一のビット線選択パラメータ値を含むコマンドを発行するためのコードを含むシステム。
【請求項１８】
請求項１７記載のシステムにおいて、
前記単一のビット線選択パラメータ値が、前記ビット線の一部分の開始ビット線を特定するシステム。
【請求項１９】
請求項１７記載のシステムにおいて、
前記単一のビット線選択パラメータ値が、前記ビット線の一部分の終了ビット線を特定するシステム。
【請求項２０】
請求項１６記載のシステムにおいて、
前記コードが、前記ビット線選択機構に、２つのビット線選択パラメータ値を含むコマンドを発行するためのコードを含むシステム。
【請求項２１】
請求項１６記載のシステムにおいて、
前記コードが、前記ビット線選択機構に、前記選択されたワード線と前記ビット線の選択された一部分との交点にある、前記選択されたワード線のセルの少なくとも一部分のセルの単一検知のために前記ビット線の一部分を特定するコマンドを発行するためのコードを含むシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリに関し、特に、エラー訂正で使用するソフトビットの特定の応用において、フラッシュメモリに格納されたデータを高速かつ低電力で読み出すことに関する。
【背景技術】
【０００２】
本願は、２００８年６月２３日に出願された米国仮特許出願第６１／０７４，６８４号（特許文献１）の利益を主張する。
【０００３】
フラッシュメモリストレージシステムには、メモリから読み出したデータのエラーを訂正しようとする際に、「ソフトビット」を使用するものがある。「ソフトビット」という用語は、メモリセルからの高分解能読み出しについて言及したものであり、この読み出しは、メモリセルに格納されたデータの実際の分解能を超えるものである。例えば、２ビット／セルメモリの場合、セルのしきい値電圧ウィンドウは、４つの非重複領域に分割され、各領域は、セルに格納された４つの可能なデータ値｛「００」、「０１」、「１０」、「１１」｝の１つに対応する。各領域は、セルの１つの状態に対応する。
（ソフトビットを用いない）通常の読み出しは、各読み出しセルを４つの状態の１つにあるものとして特定し、４つのデータ値の１つをセルに関連付ける。（この例において）メモリからソフトビットを読み出すということは、言い換えれば、４つの状態より多い状態のうちの１つにあるものとして、例えば、８つの状態の１つにあるものとして各セルを特定するということであり、この場合、４つの元の状態の各々は、２つの高分解能状態に分解されるということである。
【０００４】
読み出しセルの状態を特定する最も単純で一般的な方法として（唯一の方法ではない）、４つの非重複しきい値電圧領域の各々の中間に基準読み出し電圧をかけて、セルが領域の上半分にあるか、または下半分にあるかを特定する方法がある。
ストレージシステムの中には、１つより多いソフトビット、例えば、元の状態の各々を４つの新しい状態に分割する２つのソフトビットを使用するものもある。また、ソフトビットの使用は、２ビット／セルフラッシュメモリに限定されるものではなく、４ビット／セルメモリ（最初は１６個の状態を有する）を使用することもでき、１６個の状態のトップに１つ以上のソフトビットを適用して、３２個以上の新しい状態を生成することもできる。
フラッシュメモリからのデータの読み出し時にソフトビットを使用する利点は、データのエラー訂正が必要な場合、特に、エラー数が比較的多い場合に有効なことである。
【０００５】
ソフトビットは、異なるエラーがデータに出現する確率に基づいて、フラッシュデバイスに格納された各ビットの信頼性を良好に評価できるため、元の書き込みデータを再構築しようとするデコーダに有用な情報を与える。
このようなソフトビットの使用は、ソフトデコーダ（ソフトビットと混同しないこと）との使用に特に有用であり、利便性が高い。ソフトデコーダは、各データビットに信頼性の程度を付与することによって、データのエラーを訂正するデコーダである。各データビットに信頼性の程度を付与したが、ソフトデコーダを動作させるためのいくつかのオプションがある。一般的な方法の中には、以下のものがある。
・成功テスト（または失敗テスト）が復号プロセスを終了するまで、通常、反復的に、信頼性値の演算を行い、信頼性値の精度向上および改善を行う方法。
・読み出しデータに適合する最も確率の高いプログラムされたコードワードを判定するメトリックを計算する方法。
・全読み出しデータに従って、読み出しワードの各ビットに対してメトリックを別々に計算し、このメトリックを使用して各ビットの値に対して別個に判定を行う方法。
【０００６】
ソフトビットは、ソフトデコーダが最初の信頼性の程度を利用でき、場合によっては、復号化プロセス全体の成功と失敗との差を与えるため、必然的にソフトデコーダと一致するものである。また、ソフトビットを使用することで、復号化計算の収束が高速化する場合もある。
しかし、ソフトビットは、ハードデコーダ（ソフトデコーダではないデコーダ）とともに使用されてもよく、本願明細書に記載する技術は、両方のタイプのエラー訂正デコーダに等しく適用される。
ソフトビットは、格納データのエラー訂正に非常に有用であるが、費用がかる。ソフトビットを読み出すには、メモリセルからのさらなる読み出し演算が必要であり、読み出し演算の速度が遅くなる。低速化の理由として、メモリセルにおいて、基準電圧を読み出すための追加の比較を行った後、検出した値を、メモリダイからＥＣＣデコーダを含むフラッシュコントローラへ転送しなければならないためであることは容易に理解できる。ソフトビットを読み出す演算は、「ハードビット」しか読み出さない場合よりさらに時間がかかり、電力コストが高くなることもあるが、これは、読み出すソフトビットの数に依存する。
これらのソフトビット（高分解能ビット）は、復号化以外でも使用される。例えば、採用された読み出ししきい値パラメータを改善するために、データに対する統計パラメータが採用されうる。
【０００７】
他のケース（例えば、通信チャネルのＥＣＣ）では、通例、まずすべてのソフトビットが読み出されるが、最初に「ハード」ビットしか読み出さない場合、典型的には、メモリからデータを読み出すためにソフトビットを使用するデコーダの場合である。次に、生データの雑音が多すぎて、復号化がうまくいかないことが判明すれば、ソフトビットが読み出され、復号化の計算に付加される。また、複数の段階を踏む「試行錯誤」方法、すなわち、最初に、第１のソフトビットを読み出し、復号化がうまくいかなければ、第２のソフトビットを読み出し、以降も同じように続ける方法を用いることも可能である。この方法の場合、ソフトビットなしでも復号化がうまくいけば、ソフトビットを読み出す時間がかからない。しかし、ソフトビットを読み出す必要があると分かれば、時間コストが高くつくという基本的な問題は依然として残る。
加えて、実際には必要ではないソフトビットを検知し、セルのアレイからフラッシュデータレジスタへソフトビット値を読み出すことに、不要な電力が費やされる。また、実際には不要なソフトビットをデータレジスタからフラッシュコントローラへ転送する場合、さらなる不要な電力が費やされる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】米国仮特許出願第６１／０７４，６８４号
【発明の概要】
【０００９】
本願明細書において提供される一実施形態は、複数のワード線および複数の配列されたビット線の交点にあり、直列に接続された共通のビット線を共有するセルのアレイを含むメモリにおいて、ワード線を共有するセルを読み出す方法であって、（ａ）ワード線のセルの少なくとも一部分を実質的に同時にプログラムするステップと、（ｂ）実質的に同時にプログラムされたセルの少なくとも一部分でワード線と交差するビット線の一部分のみを選択するステップと、（ｃ）ワード線とビット線の一部分との交点にあるワード線のセルのみを検知するステップと、を含む方法である。
【００１０】
本願明細書において提供される別の実施形態は、メモリであって、（ａ）複数のワード線および複数のビット線の交点にあり、直列に接続された共通のビット線を共有する複数のセルと、（ｂ）ワード線の１つを選択するためのワード線選択機構と、（ｃ）選択されたワード線のセルの少なくとも一部分を実質的に同時にプログラムするためのプログラミング機構と、（ｄ）実質的に同時にプログラムされたセルの少なくとも一部分で選択されたワード線と交差するビット線の一部分のみを選択し、かつ選択されたワード線とビット線の選択された一部分との交点にある、選択されたワード線のセルの少なくとも一部分のセルのみを検知するためのビット線選択機構と、を含むメモリである。
【００１１】
本願明細書において提供される別の実施形態は、メモリデバイスであって、（ａ）メモリであって、（ｉ）複数のワード線および複数のビット線の交点にあり、直列に接続された共通のビット線を共有する複数のセルと、（ｉｉ）ワード線の１つを選択するためのワード線選択機構と、（ｉｉｉ）選択されたワード線のセルの少なくとも一部分を実質的に同時にプログラムするためのプログラミング機構と、（ｉｖ）実質的に同時にプログラムされたセルの少なくとも一部分で選択されたワード線と交差するビット線の一部分のみを選択し、かつ選択されたワード線とビット線の選択された一部分との交点にある、選択されたワード線のセルの少なくとも一部分のセルのみを検知するためのビット線選択機構と、を含むメモリと、（ｂ）ビット線の一部分を選択するようにビット線選択機構に命令するための、メモリのコントローラと、を備えるメモリデバイスである。
【００１２】
本願明細書において提供される別の実施形態は、システムであって、（ａ）第１のメモリであって、（ｉ）複数のワード線および複数のビット線の交点にあり、直列に接続された共通のビット線を共有する複数のセルと、（ｉｉ）ワード線の１つを選択するためのワード線選択機構と、（ｉｉｉ）選択されたワード線のセルの少なくとも一部分を実質的に同時にプログラムするためのプログラミング機構と、（ｉｖ）実質的に同時にプログラムされたセルの少なくとも一部分で選択されたワード線と交差するビット線の一部分のみを選択し、かつ選択されたワード線とビット線の選択された一部分との交点にある、選択されたワード線のセルの少なくとも一部分のセルのみを検知するためのビット線選択機構と、を含む第１のメモリと、（ｂ）第１のメモリのホストであって、（ｉ）ビット線の一部分を選択するようにビット線選択機構に命令するためのコードを格納する第２のメモリと、（ｉｉ）コードを実行するためのプロセッサと、を含む第１のメモリのホストと、を備えるシステムである。
【００１３】
本願明細書において提供される別の実施形態は、メモリを管理するためのコンピュータ可読コードが具現化されたコンピュータ可読記憶媒体であって、（ａ）複数のワード線および複数のビット線の交点にあり、直列に接続された共通のビット線を共有する複数のセルと、（ｂ）ワード線の１つを選択するためのワード線選択機構と、（ｃ）選択されたワード線のセルの少なくとも一部分を実質的に同時にプログラムするためのプログラミング機構と、（ｄ）実質的に同時にプログラムされたセルの少なくとも一部分で選択されたワード線と交差するビット線の一部分のみを選択し、かつ選択されたワード線とビット線の選択された一部分との交点にある、選択されたワード線のセルの少なくとも一部分のセルのみを検知するためのビット線選択機構と、を備え、コンピュータ可読コードが、ビット線の一部分を選択するようにビット線選択機構に命令するためのプログラムコードを含むコンピュータ可読記憶媒体である。
【００１４】
本願明細書において提供される別の実施形態は、メモリのセルの物理ページを読み出す方法であって、（ａ）物理ページのすべてのセルからハードビットを検知するステップと、（ｂ）ソフトビットを検知するための物理ページのセルの一部分のみを選択するステップと、（ｃ）物理ページのセルの選択された一部分のみからソフトビットを検知するステップと、を含む方法である。
本願明細書において提供される別の実施形態は、メモリのコントローラであって、メモリが、（ａ）セルの物理ページと、（ｂ）セルを検知するための検知機構と、（ｃ）検知するための物理ページのセルを選択する選択機構と、を含み、コントローラが、（ｉ）物理ページのすべてのセルからハードビットを検知するために検知機構を使用し、（ｉｉ）ソフトビットを検知するための物理ページのセルの一部分のみを選択するために選択機構を使用し、かつ（ｉｉｉ）物理ページのセルの選択された一部分のみからソフトビットを検知するために検知機構を使用するように動作するコントローラである。
【００１５】
本願明細書において提供される別の実施形態は、メモリデバイスであって、（ａ）メモリであって、（ｉ）セルの物理ページと、（ｉｉ）セルを検知するための検知機構と、（ｉｉｉ）検知するための物理ページのセルを選択する選択機構と、を含むメモリと、（ｂ）コントローラであって、（ｉ）物理ページのすべてのセルからハードビットを検知するために検知機構を使用し、（ｉｉ）ソフトビットを検知するための物理ページのセルの一部分のみを選択するために選択機構を使用し、かつ（ｉｉｉ）物理ページのセルの選択された一部分のみからソフトビットを検知するために検知機構を使用するためのコントローラと、を備えるメモリデバイスである。
【００１６】
本願明細書において提供される別の実施形態は、システムであって、（ａ）第１のメモリであって、（ｉ）セルの物理ページと、（ｉｉ）セルを検知するための検知機構と、（ｉｉｉ）検知するための物理ページのセルを選択する選択機構と、を含む第１のメモリと、（ｂ）第１のメモリのホストであって、（ｉ）第２のメモリであって、（Ａ）物理ページのすべてのセルからハードビットを検知するために検知機構を使用し、（Ｂ）ソフトビットを検知するために物理ページのセルの一部分のみを選択するために選択機構を使用し、かつ（Ｃ）物理ページのセルの選択された一部分のみからソフトビットを検知するために検知機構を使用するためのコードを格納する第２のメモリと、（ｉｉ）コードを実行するためのプロセッサと、を含む第１のメモリのホストと、を備えるシステムである。
【００１７】
本願明細書において提供される別の実施形態は、メモリを管理するためのコンピュータ可読コードが具現化されたコンピュータ可読記憶媒体であって、メモリが、（ａ）セルの物理ページと、（ｂ）セルを検知するための検知機構と、（ｃ）検知するための物理ページのセルを選択する選択機構と、を含み、コンピュータ可読コードが、（ａ）物理ページのすべてのセルからハードビットを検知するために検知機構を使用するためのプログラムコードと、（ｂ）ソフトビットを検知するための物理ページのセルの一部分のみを選択するために選択機構を使用するためのプログラムコードと、（ｃ）物理ページのセルの選択された一部分のみからソフトビットを検知するために検知機構を使用するためのプログラムコードと、を含むコンピュータ可読記憶媒体である。
【００１８】
本願明細書において提供される別の実施形態は、メモリの複数のセルを読み出す方法であって、（ａ）複数のセルのすべてからハードビットを検知するステップと、（ｂ）複数のセルのすべてからソフトビットを検知するステップと、（ｃ）メモリからエクスポートするためにソフトビットの一部分のみを選択するステップと、を含む方法である。
本願明細書において提供される別の実施形態は、メモリのコントローラであって、メモリが、（ａ）複数のセルと、（ｂ）複数のセルからハードビットおよびソフトビットを検知するための検知機構と、（ｃ）検知されたビットをエクスポートするためのエクスポート機構と、（ｄ）エクスポートするビットを選択するための選択機構と、を含み、コントローラが、（ｉ）ハードビットおよびソフトビットを検知するために検知機構を使用し、（ｉｉ）メモリからすべてのハードビットを受信するためにエクスポート機構を使用し、（ｉｉｉ）メモリから受信するようにソフトビットの一部分のみを選択するために選択機構を使用し、かつ（ｉｖ）ソフトビットの選択された一部分を受信するためにエクスポート機構を使用するように動作するコントローラである。
【００１９】
本願明細書において提供される別の実施形態は、メモリデバイスであって、（ａ）メモリであって、（ｉ）複数のセルと、（ｉｉ）複数のセルからハードビットおよびソフトビットを検知するための検知機構と、（ｉｉｉ）検知されたビットをエクスポートするためのエクスポート機構と、（ｉｖ）エクスポートするビットを選択するための選択機構と、を含むメモリと、（ｂ）コントローラであって、（ｉ）ハードビットおよびソフトビットを検知するために検知機構を使用し、（ｉｉ）メモリからすべてのハードビットを受信するためにエクスポート機構を使用し、（ｉｉｉ）メモリから受信するようにソフトビットの一部分のみを選択するために選択機構を使用し、かつ（ｉｖ）ソフトビットの選択された一部分を受信するためにエクスポート機構を使用するためのコントローラと、を備えるメモリデバイスである。
【００２０】
本願明細書において提供される別の実施形態は、システムであって、（ａ）第１のメモリであって、（ｉ）複数のセルと、（ｉｉ）複数のセルからハードビットおよびソフトビットを検知するための検知機構と、（ｉｉｉ）検知されたビットをエクスポートするためのエクスポート機構と、（ｉｖ）エクスポートするビットを選択するための選択機構と、を含む第１のメモリと、（ｂ）第１のメモリのホストであって、（ｉ）第２のメモリであって、（Ａ）ハードビットおよびソフトビットを検知するために検知機構を使用し、（Ｂ）メモリからすべてのハードビットを受信するためにエクスポート機構を使用し、（Ｃ）メモリから受信するようにソフトビットの一部分のみを選択するために選択機構を使用し、かつ（Ｄ）ソフトビットの選択された一部分を受信するためにエクスポート機構を使用するためのコードを格納する第２のメモリと、（ｉｉ）コードを実行するためのプロセッサと、を含む第１のメモリのホストと、を備えるシステムである。
【００２１】
本願明細書において提供される別の実施形態は、メモリを管理するためのコンピュータ可読コードが具現化されたコンピュータ可読記憶媒体であって、メモリが、（ａ）複数のセルと、（ｂ）複数のセルからハードビットおよびソフトビットを検知するための検知機構と、（ｃ）検知されたビットをエクスポートするためのエクスポート機構と、（ｄ）エクスポートするビットを選択するための選択機構と、を含み、コンピュータ可読コードが、（ａ）ハードビットおよびソフトビットを検知するために検知機構を使用するためのプログラムコードと、（ｂ）メモリからすべてのハードビットを受信するためにエクスポート機構を使用するためのプログラムコードと、（ｃ）メモリから受信するようにソフトビットの一部分のみを選択するために選択機構を使用するためのプログラムコードと、（ｄ）ソフトビットの選択された一部分を受信するためにエクスポート機構を使用するためのプログラムコードと、を含むコンピュータ可読記憶媒体である。
【００２２】
本願明細書において、フラッシュメモリなどのメモリを読み出す際の２つの一般的な省電力化方法と、フラッシュメモリなどのメモリを読み出す際の一般的な時間短縮方法が提示される。  第１の一般的な省電力化方法は、複数のワード線および複数の配列されたビット線の交点にあり、直列に接続された共通のビット線を共有するセルのアレイを含むメモリにおいて使用することを意図したものである。ワード線のセルの一部またはすべて（すなわち、ワード線を共有するセル）が、実質的に同時にプログラムされる。セルが「実質的に同時に」プログラムされるという意味は、セルに格納されるデータを表すそれぞれの物理状態にセルが成るようにセルが物理的にまとめて動作されるということである。フラッシュセルの場合、セルをプログラムするための典型的な物理動作は、セルのフローティングゲートに電子を注入することである。同時にプログラムされたセルでワード線と交差するビット線の一部分のみが読み出し用に選択される。これらのセルのみが検知される。
【００２３】
この方法のいくつかの実施形態において、検知されるビット線の選択は、ビット線の選択された一部分の開始ビット線を特定することを含むステップによって実行される。次に、ビット線の選択された一部分は、実質的に同時にプログラムされたセルでワード線と交差する開始ビット線およびより高次の（すなわち、ビット線の配列において後続する）ビット線のすべてを含む。
この方法の他の実施形態において、検知されるビット線の選択は、ビット線の選択された一部分の終了ビット線を特定することを含むステップによって実行される。次に、ビット線の選択された一部分は、実質的に同時にプログラムされたセルでワード線と交差する終了ビット線およびより低次の（すなわち、ビット線の配列において先行する）ビット線のすべてを含む。
【００２４】
この方法のさらなる他の実施形態において、検知されるビット線の選択は、ビット線の選択された一部分の開始ビット線および終了ビット線を特定することを含むステップによって実行される。「開始」ビット線が、ビット線の配列において「終了」ビット線より先行すれば、ビット線の選択された一部分は、実質的に同時にプログラムされたセルでワード線と交差する開始ビット線から終了ビット線を通るすべてのビット線を含む。「開始」ビット線が、ビット線の配列において「終了」ビット線に後続すれば、ビット線の選択された一部分は、実質的に同時にプログラムされたセルでワード線と交差する第１のビット線から終了ビット線を通るすべてのビット線と、実質的に同時にプログラムされたセルでワード線と交差する開始ビット線から最終ビット線を通るすべてのビット線とを含む。
この方法のいくつかの実施形態において、ビット線は、複数の非同一セットにグループ分けされる。原則的に、各セットは、１つのみのビット線を含みうるが、通常、各セットは、いくつかのビット線を含む。選択は、１つ以上の非同一セットを特定することによって実行される。次に、ビット線の選択された一部分は、実質的に同時にプログラムされたセルでワード線と交差する（１つまたは複数の）特定のセットの（１つまたは複数の）ビット線を含む。
【００２５】
第１の一般的な省電力化方法に対応するメモリが、複数のワード線および複数のビット線の交点にあり、直列に接続された共通のビット線を共有する複数のセルを含む。このメモリは、ワード線の１つを選択するためのワード線選択機構と、選択されたワード線のセルの少なくとも一部分を実質的に同時にプログラムするためのプログラミング機構と、ワード線が実質的に同時にプログラムされた選択されたワード線と交差するビット線の一部分のみを選択し、かつワード線およびビット線の選択された一部分の交点にある実質的に同時にプログラムされたセルのみを検知するためのビット線選択機構とを含む。
【００２６】
メモリのいくつかの実施形態において、ビット線選択機構は、グループごとではなく個別にビット線を選択する。
メモリのいくつかの実施形態において、ビット線選択機構は、ビット線の選択された一部分を示すための複数のビットを含むレジスタを含む。
【００２７】
第１の一般的な省電力化方法に対応するメモリデバイスが、第１の一般的な省電力化方法に対応するメモリと、ビット線の一部分を選択するようにビット線選択機構に命令するためのメモリコントローラとを含む。メモリデバイスのいくつかの実施形態において、ビット線選択機構が、ビット線の一部分を選択するように命令するために、コントローラは、ビット線の一部分の開始ビット線か、ビット線の一部分の終了ビット線のいずれかを特定する単一のビット線選択パラメータ値を含むコマンドを発行する。メモリデバイスの他の実施形態において、ビット線選択機構が、ビット線の一部分を選択するように命令するために、コントローラは、ビット線の範囲を特定する２つのビット線選択パラメータ値を含むコマンドを発行する。例えば、コマンドは、第１のビット線選択パラメータが、開始ビット線のインデックスであり、第２のビット線選択パラメータ値が、終了ビット線のインデックスであるように規定されてもよい。第１のビット線選択パラメータ値が、第２のビット線選択パラメータ値より小さければ、ビット線の選択された一部分は、実質的に同時にプログラムされたセルでワード線と交差する開始ビット線から終了ビット線を通るすべてのビット線である。第１のビット線選択パラメータ値が、第２のビット線選択パラメータ値より大きければ、ビット線の選択された一部分は、実質的に同時にプログラムされたセルでワード線と交差する第１のビット線から終了ビット線を通るすべてのビット線と、実質的に同時にプログラムされたセルでワード線と交差する開始ビット線から最終ビット線を通るすべてのビット線とを含む。
【００２８】
メモリデバイスのいくつかの実施形態において、ビット線は、複数の非同一セットにグループ分けされる。ビット線選択機構は、検知用に選択された非同一セットの少なくとも１つにフラグを立てるためのレジスタを含む。好ましくは、ビット線の一部分を選択するようにビット線選択機構に命令するために、コントローラは、レジスタにフラグが立てられる複数の非同一セットの少なくとも１つのセットを特定するビット線選択コマンドを発行する。
メモリデバイスのいくつかの実施形態において、ビット線の一部分を選択するようにビット線選択機構に命令するために、コントローラは、選択されたビット線が選択されたワード線と交差する実質的に同時にプログラムされたセルを検知するためにコントローラによって発行された単一のコマンドに対してビット線の一部分を特定するコマンドを発行する。特定化コマンドは、後続する読み出しコマンドの１つのみに有効なビット線選択コマンドか、またはビット線の選択がそれ自体にのみ有効な読み出しとビット線選択が組み合わされたコマンドのいずれかである。いずれの場合も、後続する読み出しコマンドが、ビット線を選択せず、ビット線を選択するコマンドによって先行されなければ、その後続する読み出しコマンドは、ワード線の同時にプログラムされたセルのすべてを検知する。
【００２９】
メモリデバイスの他の実施形態において、ビット線の一部分を選択するようにビット線選択機構に命令するために、コントローラは、選択されたビット線が選択されたワード線と交差する実質的に同時にプログラムされたセルを検知するためにコントローラによって引き続き発行されるコマンドがあれば、コマンドごとにビット線の一部分を特定するコマンドを発行し、コントローラがビット線の一部分を特定する別のコマンドを発行するまで続ける。（第２の特定化コマンドは、第１の特定化コマンドをオーバーライドする。）特定化コマンドは、特定化コマンドがオーバーライドされるまですべての後続する読み出しコマンドに有効なビット線選択コマンドか、または特定化コマンドがオーバーライドされるまでビット線選択が有効な読み出しとビット線選択が組み合わされたコマンドのいずれかである。
第１の一般的な省電力化方法に対応するシステムが、第１の一般的な省電力化方法に対応する第１のメモリを含み、ビット線の一部分を選択するようにビット線選択機構に命令するためのコードを格納する第２のメモリと、コードを実行するためのプロセッサとを含む第１のメモリのホストを含む。
【００３０】
このシステムのいくつかの実施形態において、コードは、ビット線選択機構に、ビット線の一部分の開始ビット線か、またはビット線の一部分の終了ビット線のいずれかを特定する単一のビット線選択パラメータ値を含むコマンドを発行するためのコードを含む。このシステムの他の実施形態において、コードは、ビット線選択機構に、ビット線の範囲を特定する２つのビット線選択パラメータ値を含むコマンドを発行するためのコードを含む。例えば、コマンドは、第１のビット線選択パラメータが、開始ビット線のインデックスであり、第２のビット線選択パラメータ値が、終了ビット線のインデックスであるように規定されてもよい。第１のビット線選択パラメータ値が、第２のビット線選択パラメータ値より小さければ、ビット線の選択された一部分は、実質的に同時にプログラムされたセルでワード線と交差する開始ビット線から終了ビット線を通るすべてのビット線である。第１のビット線選択パラメータ値が、第２のビット線選択パラメータ値より大きければ、ビット線の選択された一部分は、実質的に同時にプログラムされたセルでワード線と交差する第１のビット線から終了ビット線を通るすべてのビット線と、実質的に同時にプログラムされたセルでワード線と交差する開始ビット線から最終ビット線を通るすべてのビット線とを含む。
【００３１】
このシステムのいくつかの実施形態において、ビット線は、複数の非同一セットにグループ分けされる。ビット線選択機構は、検知用に選択された非同一セットの少なくとも１つにフラグを立てるためのレジスタを含む。好ましくは、ビット線の一部分を選択するようにビット線選択機構に命令するために、コードは、ビット線選択機構に、レジスタにフラグが立てられる複数の非同一セットの少なくとも１つのセットを特定するビット線選択コマンドを発行するためのコードを含む。
このシステムのいくつかの実施形態において、ビット線選択機構に、選択されたビット線が選択されたワード線と交差する実質的に同時にプログラムされたセルの単一検知に対してビット線の一部分を特定するコマンドを発行するためのコードを含む。コマンドは、後続する読み出しコマンドの１つのみに有効なビット線選択コマンドか、またはビット線の選択がそのもの自体にのみ有効な読み出しとビット線選択が組み合わされたコマンドのいずれかである。いずれの場合も、後続する読み出しコマンドが、ビット線を選択せず、ビット線を選択するコマンドによって先行されなければ、その後続する読み出しコマンドは、ワード線の同時にプログラムされたセルのすべてを検知する。
【００３２】
このシステムの他の実施形態において、コードは、ビット線選択機構に、選択されたビット線が選択されたワード線と交差する実質的に同時にプログラムされたセルを引き続き検知するごとにビット線の一部分を特定するコマンドを、ビット線の一部分を特定する別のコマンドが発行されるまで、発行するためのコードを含む。（第２の特定化コマンドは、第１の特定化コマンドをオーバーライドする。）特定化コマンドは、特定化コマンドがオーバーライドされるまですべての後続する読み出しコマンドに有効なビット線選択コマンドか、または特定化コマンドがオーバーライドされるまでビット線選択が有効な読み出しとビット線選択が組み合わされたコマンドのいずれかである。
【００３３】
第１の一般的な省電力化方法に対応するコンピュータ可読記憶媒体には、ビット線の一部分を選択するように、第１の一般的な省電力化方法に対応するメモリのビット線選択機構に命令するためのプログラムコードを含むコンピュータ可読コードが具現化される。
第２の一般的な省電力化方法は、メモリのセルの物理ページを読み出すためのものである。物理ページのすべてのセルからハードビットが検知される。ソフトビットの検知には、物理ページのセルの一部分のみしか選択されない。ソフトビットは、物理ページのセルの選択された一部分のみから検知される。
【００３４】
好ましくは、ハードビットのエラーが、ソフトビットに従って訂正される。最も好ましくは、エラーの訂正は、１つ以上のソフトビットが検知された１つ以上のセルの各々に対して、ソフトビットに応じて該当するセルから検知された少なくとも１つのハードビットの信頼性の程度を計算することを含む。
好ましくは、物理ページのセルの一部分は、ハードビットに応じて選択される。
好ましくは、物理ページのセルの選択された一部分は、物理ページに格納されたコードワードの単一の選択されたサブワードを格納した物理ページのセルのみを含む。
好ましくは、選択は、物理ページのセルの選択された一部分から、１つ以上のコードワードが格納された物理ページのセルを排除する。
好ましくは、ソフトビットに基づいて、全物理ページの少なくとも１つの統計パラメータ値が推定される。
【００３５】
第２の一般的な省電力化方法に対応するコントローラが、セルの物理ページと、セルを検知するための検知機構と、検知するための物理ページのセルを選択するための選択機構とを含むメモリを制御する。コントローラは、物理ページのすべてのセルからハードビットを検知するために検知機構を使用する。コントローラは、ソフトビットを検知するための物理ページのセルの一部分のみを選択するために選択機構を使用する。コントローラは、物理ページのセルの選択された一部分のみからソフトビットを検知するために検知機構を使用する。第２の一般的な省電力化方法に対応するメモリデバイスが、メモリおよびコントローラの両方を含む。
【００３６】
第２の一般的な省電力化方法に対応するシステムが、第１のメモリと、第１のメモリのホストとを含む。第１のメモリは、セルの物理ページと、セルを検知するための検知機構と、検知するための物理ページのセルを選択するための選択機構とを含む。ホストは、第２のメモリと、プロセッサとを含む。第２のメモリは、コードを格納するためのものである。コードは、物理ページのすべてのセルからハードビットを検知するための検知機構を使用し、ソフトビットを検知するための物理ページのセルの一部分のみを選択するために選択機構を使用し、物理ページのセルの選択された一部分のみからソフトビットを検知するために検知機構を使用するためのものである。プロセッサは、コードを実行するためのものである。
【００３７】
第２の一般的な省電力化方法に対応するコンピュータ可読記憶媒体には、セルの物理ページと、セルを検知するための検知機構と、検知するための物理ページのセルを選択するための選択機構とを含むメモリを管理するためのコンピュータ可読コードが具現化される。コンピュータ可読コードは、物理ページのすべてのセルからハードビットを検知するための検知機構を使用するためのプログラムコードと、ソフトビットを検知するための物理ページのセルの一部分のみを選択するために選択機構を使用するためのプログラムコードと、物理ページのセルの選択された一部分のみからソフトビットを検知するために検知機構を使用するためのプログラムコードとを含む。
【００３８】
一般的な時間短縮方法は、メモリの複数のセルを読み出すためのものである。ハードビットおよびソフトビットの両方が、複数のすべてのセルから検知される。ソフトビットの一部分のみが、メモリからエクスポートするために選択される。
好ましくは、ソフトビットの一部分は、ハードビットに応じて選択される。
好ましくは、ハードビットのエラーは、ソフトビットに従って訂正される。
好ましくは、選択されたソフトビットは、複数のセルに格納されたコードワードの単一のサブワードのソフトビットである。
好ましくは、選択は、複数のセルに格納された１つ以上のコードワードのソフトビットを排除する。
【００３９】
一般的な時間短縮方法に対応するコントローラが、複数のセルと、複数のセルからハードビットおよびソフトビットを検知するための検知機構と、検知されたビットをエクスポートするためのエクスポート機構と、エクスポートするビットを選択するための選択機構とを含むメモリを制御する。コントローラは、ハードビットおよびソフトビットを検知するために検知機構を使用する。コントローラは、メモリからすべてのハードビットを受信するためにエクスポート機構を使用する。コントローラは、メモリから受信するソフトビットの一部分のみを選択するために選択機構を使用する。コントローラは、ソフトビットの選択された一部分を受信するためにエクスポート機構を使用する。一般的な時間短縮方法に対応するメモリデバイスが、メモリおよびコントローラの両方を含む。
【００４０】
一般的な時間短縮方法に対応するシステムが、第１のメモリと、第１のメモリのホストとを含む。第１のメモリは、複数のセルと、複数のセルからハードビットおよびソフトビットを検知するための検知機構と、検知されたビットをエクスポートするためのエクスポート機構と、エクスポートするビットを選択するための選択機構とを含む。ホストは、第２のメモリと、プロセッサとを含む。第２のメモリは、コードを格納するためのものである。コードは、ハードビットおよびソフトビットを検知するために検知機構を使用し、メモリからすべてのハードビットを受信するためにエクスポート機構を使用し、メモリから受信するためにソフトビットの一部分のみを選択するために選択機構を使用し、ソフトビットの選択された一部分を受信するためにエクスポート機構を使用するためのものである。プロセッサは、コードを実行するためのものである。
【００４１】
一般的な時間短縮方法に対応するコンピュータ可読記憶媒体には、複数のセルと、複数のセルからハードビットおよびソフトビットを検知するための検知機構と、検知されたビットをエクスポートするためのエクスポート機構と、エクスポートするビットを選択するための選択機構とを含むメモリを管理するためのコンピュータ可読コードが具現化される。コンピュータ可読コードは、ハードビットおよびソフトビットを検知するために検知機構を使用するためのプログラムコードと、メモリからすべてのハードビットを受信するためのエクスポート機構を使用するためのプログラムコードと、メモリから受信するためにソフトビットの一部分のみを選択するために選択機構を使用するためのプログラムコードと、ソフトビットの選択された一部分を受信するためにエクスポート機構を使用するためのプログラムコードとを含む。
【００４２】
本願明細書において、添付の図面を参照しながら、例示的にのみさまざまな実施形態について記載する。
【図面の簡単な説明】
【００４３】
【図１】フラッシュメモリの例示的な内部アーキテクチャを示す。
【図２】図１のフラッシュメモリのメモリコントロール回路の簡略化されたブロック図である。
【図３】図１のフラッシュメモリと、コントローラとを含むフラッシュメモリデバイスのハイレベルな概略ブロック図である。
【図４】図３のコントローラの機能のほとんどが、ソフトウェアによってエミュレートされるメモリシステムのハイレベルなブロック図である。
【発明を実施するための形態】
【００４４】
図面および以下の記載を参照しながら、フラッシュメモリの高速、低電力読み出し原理および動作がさらに深く理解できるはずである。
図１は、フラッシュメモリ１００の例示的な内部アーキテクチャを示す。主要な特徴は、外部コントローラのインターフェイスとなる入出力（Ｉ／Ｏ）バス１０２および制御信号１０４と、コマンド、アドレス、および状態信号のレジスタで内部メモリ動作を制御するためのメモリコントロール回路１０６とを含む。行デコーダ（ＸＤＥＣ）１１０および列デコーダ（ＹＤＥＣ）１１２と、センス増幅器群およびプログラム制御回路（ＳＡ／ＰＲＯＧ）１１４と、データレジスタ１１６とを各々が有するフラッシュＥＥＰＲＯＭセルの１つ以上のアレイ１０８が含まれる。現在、メモリセルは、通例、記憶素子として１つ以上の導電性フローティングゲートを含むが、代わりに、他の長期間電子電荷蓄積素子が使用されてもよい。メモリセルアレイは、各記憶素子に対して規定された２つの電荷レベルで動作されることで、各素子に１ビットデータを格納する。あるいは、各記憶素子に対して３つ以上の記憶状態が規定されてもよく、その場合、各素子に２ビット以上のデータが格納される。
【００４５】
外部インターフェイスＩ／Ｏバス１０２および制御信号１０４は、以下のものを含みうる。
ＣＳ（チップセレクト）−フラッシュメモリインターフェイスのアクティブ化に使用される。
ＣＬＥ−メモリコントロール回路１０６のコマンドレジスタに送信されるコマンドのアクティブ化経路を制御する。
ＡＬＥ−メモリコントロール回路１０６のアドレスレジスタへのアドレスのアクティブ化経路を制御する。
ＲＥ（シリアルデータ出力制御）−アクティブ時、Ｉ／Ｏバス１０２にデータを駆動する。
ＷＥ−Ｉ／Ｏポートへの書き込みを制御する。
ＡＤ［７：０］アドレス／このＩ／Ｏバスは、データバスコントローラとメモリコントローラ１０６のフラッシュメモリコマンド、アドレスおよびデータレジスタとの間でのデータ転送に使用される。
【００４６】
また、これらの信号に加えて、ストレージサブシステムコントローラが、メモリが何らかのタスクを実行中であるかを決定しうる手段をメモリが有することは典型的である。このような手段は、メモリがビジー中にアクセス可能な内部メモリレジスタに専用信号または状態ビットを含みうる。
同じ機能性を与えるために、他の信号構成も使用可能であるため、このインターフェイスは、一例としてのみ与えられる。図１は、関連するコンポーネントとともにフラッシュメモリアレイ１０８を１つのみ示すが、複数のこのようなアレイが、共通のインターフェイスおよびメモリコントロール回路を共有する単一のフラッシュメモリチップ上に存在しうるが、並列読み出しおよびプログラム動作を可能にするために、別々のＸＤＥＣ１１０、ＹＤＥＣ１１２、ＳＡ／ＰＲＯＧ１４、およびデータレジスタ１１６の回路を有しうる。
メモリアレイからデータレジスタ１１６を通り、Ｉ／ＯバスＡＤ［７：０］１０２へのデータレジスタの結合を介して外部コントローラへデータが転送される。添付の特許請求の範囲において、このデータ転送のことを、フラッシュメモリ１００からのデータの「エクスポート」と呼ぶ。データレジスタ１１６はまた、センス増幅器／プログラミング回路１１４に結合される。各センス増幅器／プログラミング回路素子に結合されたデータレジスタ１１６の素子数は、メモリセルの各記憶素子、記憶素子として１つ以上のフローティングゲートを各々が含むフラッシュＥＥＰＲＯＭセルに格納されたビットの数に依存するものであってもよい。各記憶素子は、メモリセルが多状態モードで動作すれば、２ビットまたは４ビットなどの複数のビットを格納してもよい。あるいは、メモリセルは、１つの記憶素子につき１ビットのデータを格納するようにバイナリモードで動作されてもよい。
【００４７】
行デコーダ１１０は、アクセスされる物理ページを選択するために、アレイ１０８の行アドレスを復号化する。行デコーダ１１０は、メモリコントロールロジック１０６から内部行アドレス線１１８を介して行アドレスを受信する。列デコーダ１１２は、メモリコントロールロジック１０６から内部列アドレス線１２０を介して列アドレスを受信する。また、本願明細書において、アレイ１０８の行１２４を「ワード線」と呼ぶ。また、本願明細書において、アレイ１０８の列１２６を、「ビット線」と呼ぶ。説明を簡潔にするために、アレイ１０８の最初の４行１２４、最後の４行１２４、最初の４列１２６、および最後の４列１２６を、アレイ１０８に明確に示す。
【００４８】
アレイ１０８のセルは、ワード線１２４とビット線１２６の交点にある。各ビット線１２６において、セルは、ＮＯＲフラッシュメモリと並列ではなく、ＮＡＮＤフラッシュメモリと直列に接続される。ビット線１２６は、例えば、左から右方向に向かって、左端のビット線１２６に順序数「１」が割り当てられ、左端の隣のビット線１２６の順序数「２」が割り当てられ、以下同様になるように順序付けされる。
以下、フラッシュメモリアレイ１０８からのデータの読み出し時およびフラッシュメモリアレイ１０８へのデータの書き込み時のメモリコントロール回路１０６の動作について記載する。
【００４９】
図２は、メモリコントロール回路１０６の簡略化されたブロック図である。レジスタイネーブル回路２０４が、アドレスレジスタ２０６、コマンドレジスタ２０２、およびラッチイネーブル回路２１０に結合された入力を有する。アドレス記述子が続くことを示すＡＬＥ制御信号１０４を外部コントローラから受信すると、レジスタイネーブル回路２０４は、イネーブル線ＰＡＤＲをアクティブ化することで、Ｉ／Ｏバス１０２上で外部コントローラから後続のチャンクアドレス記述子が、アドレスレジスタ２０６にラッチされる。その後、アドレスレジスタ２０６に結合されたラッチイネーブル回路２１０が、アドレスレジスタ２０６に格納されたチャンクアドレスをアドレスラッチ２１２の適切な行および列のラッチにラッチするように、ラッチイネーブル線ＸおよびＹをアクティブ化する。次に、アドレスラッチ２１２に格納されたチャンクアドレスは、内部行アドレス線１１８の適切な線上にわたって行デコーダ１１０に与えられ、内部列アドレス線１２０上にわたって列デコーダ１１２に与えられる。
【００５０】
データが続くことを示す制御信号１０４を外部コントローラから受信すると（外部コントローラが、データをフラッシュメモリアレイ１０８に書き込もうとするため）、レジスタイネーブル回路２０４は、Ｉ／Ｏバス１０２上のデータチャンクをデータレジスタ１１６内にラッチさせるイネーブル線ＰＤＡＴをアクティブ化する。
コマンドが続くことを示すＣＬＥ制御信号１０４を外部コントローラから受信すると、レジスタイネーブル回路２０４は、イネーブル線ＰＣＭＤをアクティブ化することで、Ｉ／Ｏバス１０２上で外部コントローラから後続の読み出しまたは書き込みコマンドが、コマンドレジスタ２０２内にラッチされる。その後、コマンドデコーダ２０８は、コマンドレジスタ２０２に格納されたコマンドを読み出す。
【００５１】
コマンドが書き込みコマンドであれば、コマンドデコーダ２０８は、プログラム線ＰＧＭを活性化するようにコマンドを復号化する。プログラムイネーブル回路２１６が、プログラム線ＰＧＭと、アドレスレジスタ２０６に格納されたチャンクアドレスから最上位のビットとを受信し、それに応答して、センス増幅器／プログラミング回路１１４に与えられたプログラムイネーブル線１２３をアクティブ化して、データレジスタ１１６のデータをフラッシュメモリアレイ１０８にプログラムするようにプログラム／ベリファイモードを選択的にアクティブ化する。
コマンドが読み出しコマンドであれば、コマンドデコーダ２０８は、センスイネーブル回路２１４をアクティブ化するためにコマンドを復号化し、その後、センスイネーブル回路２１４は、センス増幅器／プログラミング回路１１４に与えられたセンスイネーブル線１２２をアクティブ化して動作検知モードを選択的にアクティブ化し、フラッシュメモリアレイ１０８のラッチされた行１２４およびラッチされた列１２６の交点にあるセルに格納されたしきい値電圧を検知する。検知結果は、データレジスタ１１６にロードされた後、外部コントローラによって読み出される。
【００５２】
外部コントローラからの各読み出しコマンドにより、チャンクアドレス記述子による指定通りに、フラッシュメモリアレイ１０８の単一の行１２４からデータが読み出される。このように、アドレスラッチ２１２の各行の値は、フラッシュメモリアレイ１０８のそれぞれの行１２４に対するものである。アドレスラッチ２１２の列ラッチは、フラッシュメモリアレイ１０８の列１２６のグループに対するものであり、列１２６は、従来、ソフトビットの検知時に費やされていた電力を節約する方法で、列ラッチごとにグループ分けされる。
従来、列ラッチの各グループは、フラッシュメモリアレイ１０８の各行１２４の全物理ページに対応する。メモリ１００の構成の状態に応じて、セルの各行１２４そのものが、単一の物理ページでありえて、あるいは、セルの各行１２４が、２つまたは３つ以上の物理ページを含みうる。物理ページにデータを書き込むための外部コントローラからのコマンドにより、センス増幅器／プログラミング回路１１４が、ターゲットの物理ページのすべてのセルをプログラムする。物理ページのハードビットを読み出すための外部コントローラからのコマンドにより、センス増幅器／プログラミング回路１１４が、ターゲットの物理ページのすべてのセルのハードビットを検知する。物理ページのソフトビットを読み出すための外部コントローラからのコマンドにより、センス増幅器／プログラミング回路１１４が、ターゲットの物理ページのすべてのセルのソフトビットを読み出す。
【００５３】
図３は、フラッシュメモリ１００が外部コントローラ３０２によって制御されるフラッシュメモリデバイス３００のハイレベルな概略ブロック図である。コントローラ３０２は、パーソナルコンピュータ、デジタルカメラ、個人用携帯情報端末（ＰＤＡ）などのホストシステムに接続されるかまたは接続可能である。ホストは、例えば、メモリアレイ１０８との間でデータの格納または読み出しをするためにコマンドを始動させ、このようなデータをそれぞれ送信または受信する。コントローラ３０２は、このようなコマンドを、メモリコントロール回路１０６によって解読および実行可能なコマンド信号に変換する。コントローラ３０２はまた、典型的に、ユーザデータがメモリアレイ１０８に書き込まれるかまたはメモリアレイ１０８から読み出されるバッファメモリを含む。典型的なメモリデバイス３００は、コントローラ３０２を含む１つの集積回路チップ３０４と、各々がメモリ１００を含む１つ以上の集積回路３０６とを含む。このようなメモリデバイスのメモリアレイおよびコントローラ回路を１つ以上の集積回路チップ上にまとめて集積する傾向にあることは言うまでもない。メモリデバイス３００は、ホストシステムの一部として混載されてもよいし、あるいはホストシステムの勘合ソケットに取り外し可能に差し込み可能なメモリカードに含まれてもよい。このようなカードがメモリデバイス全体を含んでもよいし、あるいは関連する周辺回路とともにコントローラおよびメモリアレイが別々のカードに設けられてもよい。
【００５４】
ハードビットおよびソフトビットの検知および読み出しに費やされる電力は、２つの部分からなる。第１の電力は、データレジスタ１１６内のメモリセルの検知にかかる電力であり（すなわち、基準電圧をセルにかけ、基準電圧に対する比較の結果を検知する際に電力を費やす）、第２の電力は、データレジスタ１１６からバス１０２上にわたって外部コントローラ３０２（エラー訂正デコーダおよび他の推定機能が典型的に設置される）内に読み出し値を転送（「エクスポート」）するのにかかる電力である。本願明細書に記載されるフラッシュメモリアレイ１０８の列１２６の列ラッチごとにグループ分けすることで、第１の部分、すなわち、メモリセルの検知の電力が低減される。
【００５５】
前述したように、従来では、物理ページのソフトビットを読み出すための外部コントローラ３０２からのコマンドにより、センス増幅器／プログラミング回路１１４が、ターゲットの物理ページのすべてのセルのソフトビットを読み出す。実際には、物理ページのすべてのメモリセルに対してソフトビット値を必要とせず、メモリセルの一部のみでよい場合もある。それにもかかわらず、従来では、読み出された物理ページのすべてのセルのすべてのソフトビット値が、データレジスタ１１６内で検知される。しかし、これらの値がすべて必要でなければ、これにより電力が不必要に無駄になる。
【００５６】
例えば、フラッシュメモリセルが、検知時に１００［ナノアンペア］の電流を消費し、復号化の計算に加わるセルの数が、１６Ｋ（簡略化するために、パリティビットおよび管理ビットは無視する）であれば、単一のソフトビット検知に対して検知動作（しきい値電圧の比較）が行われるたびに、検知されたビットの半分しかデコーダによって必要とされず、フラッシュメモリは、８Ｋ×１００＝８００Ｋ［ナノアンペア］＝０．８［ミリアンペア］が無駄になる。
【００５７】
ソフトビットには、各セルに対して２回以上の検知動作を必要とするものもあることに留意するべきである。典型的に、第１のソフトビットは、１つのセル状態ごとに１回のしきい値電圧比較を必要とし、第２のソフトビットは、１つのセル状態ごとにさらに２回のしきい値電圧比較を必要とし、第３のソフトビットは、１つのセル状態ごとにさらに４回のしきい値電圧比較を必要とするなど、以下同様である。
物理ページのセルの一部のみのソフトビットを検知することが、以下のいずれかの状況の場合のセルに要求されることもある。
・セルのハードビットがすでに事前に検知され、セルの一部のソフトビットしか必要でない場合。
・読み出し中、いくつかのセルのデータが、ハードビットもソフトビットも、まったく必要とされない場合。
【００５８】
本願明細書において記載されるソフトビットの選択的検知の有用性を示すために記述すべき唯一の残りの点は、すべてのソフトビット値を必要とせず、その一部分のみでいい場合はどんな状況のときかを説明することである。実際、これは、以下の４つの例の場合である。
【００５９】
Ａ．フラッシュメモリセルにエラーを引き起こす物理的現象が、セルの異なる状態で異なりうる。例えば、エラーの主な発生源として、セルのフローティングゲートからの電子の漏出が原因となって、時間の経過とともにメモリセルのしきい値電圧が変動することがある。これは、典型的に、高状態（すなわち、高いしきい値電圧に相当する状態）にあるセルが、低状態（すなわち、低いしきい値電圧に相当する状態）にあるドリフト現象に非常に影響を受ける場合である。このドリフト現象を、データ保持と呼ぶこともある。
したがって、低状態にあるセルが、非常に信頼性が高く、１つ以上の追加のソフトビットからあまり利益を享受しないことが予想される。一方で、高状態にあるセルは、信頼性が低く、１つまたは複数のソフトビットによって与えられる追加の情報から利益を享受しうる。したがって、デコーダの設計者は、以下の規則を実装することもある。すなわち、ソフトビットを読み出すとき（ハードビットのみを使用するときに、復号化が失敗するかまたは指定の時間フレームで収束しなかったため）、状態グループの上側半分（例えば、４ビット／セルフラッシュメモリにおいて１６個の状態の高状態から８個の状態）にあるセルに対応するソフトビット値のみを検知する。
【００６０】
Ｂ．１つのタイプのデコーダが、フルワードのサブワードを復号化することによってコードワードの復号化の特性を有する。１つのこのようなサブワードが、独自に復号化できなければ、そのサブワードを復号化しやすいようにする他のサブワードからの情報である（復号化がうまくいかなかったサブワードと、サブコード、すなわち、うまく復号化されたサブワードの両方）。
サブワードの復号化の試みが失敗した後で、他のサブワードからの情報が採用される前に、このようなデコーダを用いてソフトビットが使用されてもよい。ソフトビットは、他のサブワードからの外部情報とは関係なく、失敗サブワードの復号化を試みるために、失敗サブワードに対して読み出されてもよい。しかし、わずか１つのサブワードが失敗し、ソフトビットを必要とすれば、他のすべてのサブワード、特に、うまく復号化された他のサブワードのソフトビットを検知および転送する必要がない。したがって、このようなデコーダの設計者は、本願明細書に記載されるフラッシュメモリアレイ１０８の列１２６の列ラッチごとにグループ分けすることを利用し、実際に必要とするサブワードのソフトビット値のみを検知することもある。
【００６１】
Ｃ．いくつかのフラッシュストレージシステムにおいて、メモリからユニットとして読み出されたデータのチャンク（フラッシュメモリの用語における「ページ」）は、エラー訂正プロセスに使用されるデータのチャンクより大きい。言い換えれば、データのチャンクは、メモリの物理ページに対応するセルグループに格納される（各セルが１つ以上のデータビットを格納する）が、データを復号化する目的で、チャンクは、別々のコードワードに分割される。
典型的な例は、３２Ｋ個のセルの物理ページであり、各セルは、２つのデータビットを格納し（全部で６４Ｋビットに対して）、各セルは、８Ｋ個のセルに格納された１６Ｋビットを各々が含む４つのコードワードに分割される。このようなコードワードの各々は、独立して復号化される。したがって、コードワードの１つが、うまく復号化するためにソフトビットを必要とするが、他のコードワードは必要としない場合であってもよい。このような場合、ストレージシステムの設計者が、本願明細書に記載されるフラッシュメモリアレイ１０８の列１２６の列ラッチごとにグループ分けすることを採用し、データレジスタ１１６に対して、最初は失敗したコードワードを格納するセルに対応するソフトビット値のみ検知してもよい。
【００６２】
Ｄ．いくつかのフラッシュストレージシステムにおいて、メモリからユニットとして読み出されるデータのチャンク（フラッシュメモリの用語における「ページ」）は、例えば、セル間のクロスカップリングの統計的推定に使用されるデータのチャンクより大きい。クロスカップリング係数を十分に高精度に推定するために、ページの一部しか要求されないこともある。前述した「Ｃ．」の場合の典型的なケースでは、ワード線のすべての３２Ｋ個のセルに対して採用されうるクロスカップリング係数を推定するために、３２Ｋ個のセルから１０Ｋ個のセルしか必要とされないこともある。
この場合、ワード線ｎおよびワード線ｎ＋１のハードビットおよびセル当たり２つのソフトビットの両方に対して、最初の１０Ｋ個のセルのみが検知される。これらのビットに基づいて、クロスカップリング係数が生成される。引き続き、生成されたクロスカップリング係数を使用してクロスカップリングを補償するために、ワード線ｎ＋１のハードビットおよびワード線ｎのハードビットおよびセル当たり１つのソフトビットのみが採用される。結果として、ワード線ｎ＋１のソフトビットおよびワード線ｎの最後の２２Ｋ個のセルの各々の第２のソフトビットが検知されず、この検知に関連する電力が節約され、場合によっては、時間が短縮される。
【００６３】
原則的に、アドレスラッチ２１２が、ビット線１２６当たり１つの列ラッチを含みうる。各列ラッチは、対応するビット線１２６が読み出し検知段階中に動作しているか、およびそのビット線１２６に電流が流れているかを決定しうる。しかし、このような設計は、多くのラッチを必要とするために高コストであるとともに、コントローラ３０２が各ラッチの所望の状態を特定する必要があるため、フラッシュメモリ１００と外部フラッシュコントローラ３０２との相互作用が複雑である。
非常に好ましい設計では、１つの信号で多くのビット線グループ１２６の電力消費が有効および無効にされる。例えば、例Ｂのサブワードの１つに対応するビット線１２６の各グループは、アドレスラッチ２１２の単一のそれぞれの列ラッチによって制御されうる。あるいは、例Ｃのコードワードに対応するビット線１２６の各グループまたは例Ｄのグループが、アドレスラッチ２１２の単一の列ラッチによって制御されうる。
【００６４】
例Ａは、好ましい実施例によって十分にサポートされていないが、それでも、この例に対してもある程度の省電力化が図られうる。４ビット／セルの例のハードビットの１つが、セルが８個の上側状態または８個の下側状態に属するかを示すとすると、単一の検知動作において、セルが上側または下側の８個の状態に属するかが決定される。このビットは、ＶBL（ビット線ドレイン側電圧）をゼロに変え、すべての非関連ビット線を抑制するように使用されうる。しかし、これは、ハードビットが読み出される前では上側および下側の８個のレベルを区別することができないため、この場合、ハードビットとともにではなく、ハードビットの後にソフトビットが読み出されるべきであることを意味する。これは限定的であるように見えるが、ソフトビットがエラー訂正とともに考慮される場合に典型的である。
【００６５】
外部コントローラ３０２が、ビット線１２６の各グループを有効または無効にする必要がある場合、メモリコントロール回路１０６によって認識されるアドレス記述子に対して、以下のオプションが利用可能である。
１．フラッシュメモリの典型的な読み出しコマンドが、特定のバイト（またはあまり一般的ではない１６ビットフラッシュメモリでは、ワード）を指し示すアドレスを含む。アドレスの最上位ビットは、読み出されるページを規定し、最下位バイトは、連続読み出しが望ましいバイトを規定する。読み出しコマンドが、例えば、ページにおいて４，０９６バイトのうちバイト３，０７２を指し示せば、コントローラ３０２は、ページの上４分の１のみを読み出そうとしていることを指し示すものとして考慮されうる。フラッシュメモリ１００は、このような場合（読み出しアドレスが、アドレス指定されたページ内のオフセットＮを指し示す場合）、Ｎより小さなオフセットを有するすべてのビット線の検知を回避するように構成されてもよい。
２．前のオプションは、検知するための開始オフセットを設定するが、終了オフセットは設定しない。開始オフセットと終了オフセットの両方の設定が望ましければ、フラッシュメモリ１００は、２つの番号、１つは下側の検知アドレス、もう１つは上側の検知アドレスを明確に設定するコマンド（読み出しコマンドの前に発行される）をサポートしてもよい。次に、特定の範囲外にある任意のビット線１２６は検知されない。
３．外部コントローラ３０２による高分解能のセル検知制御が望ましければ、フラッシュメモリ１００は、各ビットがページの１つのセクションを制御する数ビットの「検知制御レジスタ」を含むように構成されてもよい。例えば、４ＫＢページが、８個の５１２バイトセクタに分割されてもよく、各セクタは、８ビットレジスタから１ビットによって制御される。フラッシュメモリ１００がこのように構成されれば、検知制御レジスタを任意の所望のビットパターンに設定するコマンド（読み出しコマンドの前に発行される）をサポートするため、セクタの任意の組み合わせが検知されるが、すべての他のセクタは検知されない。
【００６６】
方法２における限界値の設定および方法３におけるレジスタの設定は、１回の読み出しに対してのみのものであり、各ページの読み出しに対して繰り返されてもよく、または事実上、デフォルト値に変更またはリセットされるまで維持されてもよい。
ハードビットおよびソフトビットを検知し読み出すために、フラッシュメモリ１００および外部コントローラ３０２によって費やされた電力のように、フラッシュメモリ１００からソフトビットを読み出す際に外部コントローラ３０２が費やす時間は、２つの部分からなる。すなわち、第１の時間は、メモリセルをデータレジスタ１１６に検知するのにかかる時間（すなわち、基準電圧をセルにかけ、基準電圧に対する比較の結果を検知するのにかかる時間）であり、第２の時間は、データレジスタ１１６からバス１０２にわたって外部コントローラ３０２に読み出し値を転送（「エクスポート」）するのにかかる時間である。
【００６７】
実際には、物理ページのすべてのメモリセルに対してソフトビット値を必要とせず、メモリセルの一部のみでよい場合もある。それにもかかわらず、従来のシステムは、常に、すべてのセルのすべてのソフトビット値を外部コントローラ３０２に転送する。しかし、これらの値がすべて実際に必要でなければ、これにより不必要に時間が無駄になる。典型的なフラッシュバスサイクルは、３０〜５０ナノ秒であってもよく、その時間で、８ビット（または１６ビットフラッシュデバイスのあまり一般的ではない場合では、１６ビット）が転送される。復号化の計算に関与するセルの数が１６Ｋ（簡潔にするためにパリティビットおよび管理ビットは無視する）であり、ビットの半分しかデコーダに必要とされていなければ、バスサイクルが５０ナノ秒の８ビットフラッシュデバイスは、ソフトビットが読み出されるたびに、８×１，０２４×５０／８＝５１，２００ナノ秒＝５１．２マイクロ秒を無駄にする。
【００６８】
ＮＡＮＤフラッシュメモリのデータレジスタ（例えば、フラッシュメモリ１００のデータレジスタ１１６）にあるデータの一部のみの転送では、フラッシュメモリに任意のさらなる回路またはコマンドを必要とせず、すなわち、ソフトビットの読み出しをサポートするすべてのフラッシュメモリには、（標準的に利用可能なコマンドを使用して）データレジスタの任意のアドレスからのデータ転送を開始する機能、開始アドレスから連続して任意の所望の数のバイトを転送し、データレジスタの任意の所望の第２のアドレスへの転送ポインタを再位置付けする機能、任意の数のバイトを連続して転送する機能などがある。
【００６９】
データレジスタ１１６などのデータレジスタの部分的データ転送の実現性および有用性を示すために記述すべき唯一の残りの点は、すべてのソフトビット値を必要とせず、その一部分のみでいいのはどんな場合かを説明することである。実際、これは、以下の例の場合である。
【００７０】
Ａ．フラッシュメモリセルにエラーを引き起こす物理的影響が、セルの異なる状態にさまざまな影響を及ぼす。例えば、エラーの主な発生源として、セルのフローティングゲートからの電子の漏出が原因となって、時間の経過とともにメモリセルのしきい値電圧が変動することがある。これは、典型的に、高状態（すなわち、高いしきい値電圧に相当する状態）にあるセルが、低状態（すなわち、低いしきい値電圧に相当する状態）にあるドリフト現象に非常に影響を受ける場合である。したがって、低状態において（ハードビットのみを使用して）読み出されるセルは、非常に信頼性が高く、１つ以上の追加のソフトビットからそれほど利益を享受しないことが予想される。一方で、高状態において（ハードビットのみを使用して）読み出されるセルは、信頼性が高く、ソフトビットによって与えられる追加の情報から利益を享受しうる。したがって、デコーダの設計者は、以下の規則を実装することもある。すなわち、ソフトビットを読み出すとき（ハードビットのみを使用するときに、復号化が失敗したため）、状態グループの上側半分（例えば、４ビット／セルフラッシュメモリにおいて１６個の状態の高状態から８個の状態）にあるセルに対応するソフトビット値のみを読み出す。
【００７１】
Ｂ．前述したように、１つのタイプのデコーダが、フルコードワードのサブワードでコードワードの復号化を開始する特性を有する。１つのこのようなサブワードが、独自に復号化できなければ、そのサブワードを復号化しやすいようにする他のサブワードからの情報である（復号化がうまくいかなかったサブワードと、サブコード、すなわち、うまく復号化されたサブワードの両方）。サブワードの復号化が失敗した後で、他のサブワードからの情報が使用される前に、このようなデコーダを用いてソフトビットが使用されてもよい。ソフトビットは、他のサブワードからの外部情報なしに、失敗するサブワードの復号化を局所的に試みるために、失敗するサブワードに対して読み出されてもよい。しかし、わずか１つのサブワードが失敗し、ソフトビットを必要とすれば、他の（失敗していない）サブワードのソフトビットを転送する必要がない。したがって、このようなデコーダの設計者は、実際にソフトビット値を必要とするサブワードのソフトビット値のみを転送することもある。
【００７２】
Ｃ．いくつかのフラッシュストレージシステムにおいて、メモリからユニットとして読み出されたデータのチャンク（フラッシュメモリの用語における「ページ」）は、エラー訂正プロセスに使用されるデータのチャンクより大きい。言い換えれば、データのチャンクは、メモリの物理ページに対応するセルグループに格納される（各セルが１つ以上のデータビットを格納する）が、データを復号化する目的で、チャンクは、別々のコードワードに分割される。典型的な例は、３２Ｋ個のセルの物理ページであり、各セルは、２つのデータビットを格納し（全部で６４Ｋビットに対して）、各セルは、８Ｋ個のセルに格納された１６Ｋビットを各々が含む４つのコードワードに分割される。このようなコードワードの各々は、独立して復号化される。したがって、コードワードの１つが、復号化を成功させるためのソフトビットを必要とするが、他のコードワードは必要としない場合であってもよい。このような場合、ストレージシステムの設計者は、全物理ページのソフトビットが、メモリセルからデータレジスタへ同時に読み出され、コントローラへの転送の準備が整ったとしても、外部コントローラ３０２へ、最初に失敗したコードワードを格納するセルに対応するソフトビット値のみを転送してもよい。
【００７３】
図４は、コントローラ３０２の機能のほとんどがソフトウェアによって実行されるシステム４００のハイレベルなブロック図である。システム４００は、プロセッサ４０２と、４つのメモリデバイス、すなわち、ＲＡＭ４０４、ブートＲＯＭ４０６、大容量ストレージデバイス（ハードディスク）４０８、およびフラッシュメモリデバイス４１２として図３のフラッシュメモリを修正したものを含み、すべてが共通バス４１４を介して連通状態にある。図３のフラッシュメモリデバイス３００とフラッシュメモリデバイス４１２の相違点は、フラッシュメモリデバイス４１２のコントローラが、バス４１４へのインターフェイスとしてのみ機能し、前述したような図３のコントローラ３０２の機能性の残りは、大容量ストレージデバイス４０８に格納され、プロセッサ４０２によって実行されたユーザアプリケーションとフラッシュメモリデバイス４１２との間のインターフェイスになり、フラッシュメモリデバイス４１２のフラッシュメモリを管理するようにプロセッサ４０２によって実行されるフラッシュメモリドライバコード４１０によってエミュレートされることである。このようなフラッシュ管理ドライバコードの従来の機能に加えて、ドライバコード４１０は、前述したように、フラッシュメモリデバイス４１２のフラッシュセルを読み出す際に、省電力化および時間短縮に関して、図３のコントローラ３０２の機能をエミュレートする。ドライバコード４１０は、典型的に、システム４００のオペレーティングシステムコードに含まれるが、独立したコードであってもよい。
【００７４】
フラッシュメモリデバイス４１２以外のシステム４００のコンポーネントは、フラッシュメモリデバイス４１２のホスト４２０を構成する。大容量ストレージデバイス４０８は、フラッシュメモリアレイの参照セルとして、いかなる目的に対しても使用されないであろうフラッシュメモリアレイのセルを使用するためのコンピュータ可読ドライバコードを有するコンピュータ可読記憶媒体の一例である。このようなコンピュータ可読記憶媒体の他の例は、このようなコードを有するＣＤなどの読み出し専用メモリを含む。
【００７５】
フラッシュメモリのセルを読み出す際の時間を短縮しかつ省電力化する方法、およびこの方法を使用するメモリ、デバイス、およびシステムの限られた数の実施形態について説明してきた。これらの方法、デバイス、およびシステムの多数の変形、修正、および他の応用がなされてもよいことは明らかである。
【図１】
0005559778.tif 000002
【図２】
0005559778.tif 000003
【図３】
0005559778.tif 000004
【図４】
0005559778.tif 000005