(57)【要約】強化されたビットフリッピングスキームを使用してメモリセルを動作するための方法、システム、及びデバイスが説明される。強化されたビットフリッピングスキームは、対応するコードワード内のデータビットがフリッピングされるか否かを指し示すフリップビットの生成と同時に、コードワード内のデータビットの誤り訂正を実施するためと、コードワード内の反転ビットの誤り訂正を実施することを控えるためと、複数の反転ビットを使用して高い信頼性のフリップビットを生成するためとの方法、システム、及びデバイスを含み得る。実例として、より一層信頼性があるフリップビットは、データビットが反転状態にあることを反転ビットの内の複数の、過半数の、又は全てが指し示すか否かを判定することによって生成され得る。
2021524646.tif 000002
【特許請求の範囲】
【請求項１】
データビットと、前記データビットが反転状態にあるか否かを指し示す反転ビットとを含むコードワードの誤り訂正を実施することと、
前記誤り訂正と同時に、複数の前記反転ビットにより蓄積された値に少なくとも部分的に基づいてフリップビットを生成することと、
前記フリップビットをビットフリッピングコンポーネントへ送信することと
を含む、方法。
【請求項２】
前記複数の前記反転ビットの各々により蓄積された前記値に少なくとも部分的に基づいて、前記データビットが前記反転状態にあるか否かを判定することであって、前記フリップビットは、前記データビットが前記反転状態にあるか否かを判定することに少なくとも部分的に基づいて生成されること
を更に含む、請求項１に記載の方法。
【請求項３】
前記複数の前記反転ビットの各々により蓄積された前記値を比較することによって、前記データビットが前記反転状態にあることを前記反転ビットの過半数が指し示すと判定することと、
前記データビットが前記反転状態にあることを前記反転ビットの前記過半数が指し示すと判定することに少なくとも部分的に基づいて、前記データビットが前記反転状態にあると判定することと
を更に含む、請求項１に記載の方法。
【請求項４】
前記データビットが前記反転状態にあると判定することに少なくとも部分的に基づいて前記データビットをフリッピングすることと、
前記データビットをフリッピングした後に前記データビットをメモリバッファへ送信することと
を更に含む、請求項３に記載の方法。
【請求項５】
前記複数の前記反転ビットの各々により蓄積された前記値を比較することによって、前記データビットが前記反転状態にあることを前記反転ビットの少数が指し示すと判定することと、
前記データビットが前記反転状態にあることを前記反転ビットの前記少数が指し示すと判定することに少なくとも部分的に基づいて、前記データビットが元々の状態にあると判定することと、
前記データビットをメモリバッファへ送信することと
を更に含む、請求項１に記載の方法。
【請求項６】
前記誤り訂正を実施することは、
前記フリップビットを生成する間又は後に、前記データビットに対するシンドロームビットを生成すること
を含む、請求項１に記載の方法。
【請求項７】
前記ビットフリッピングコンポーネントと結合されたビット訂正コンポーネントへ前記データビットを送信することと、
前記フリップビットが前記ビットフリッピングコンポーネントへ送信された後に前記シンドロームビットを前記ビット訂正コンポーネントへ送信することと
を更に含む、請求項６に記載の方法。
【請求項８】
前記誤り訂正の間に、複数の前記データビットの内のデータビットが破損しているか否かを判定することであって、前記シンドロームビットは、前記複数の前記データビットの内の前記データビットが破損しているか否かを判定することに少なくとも部分的に基づいて生成されること
を更に含む、請求項６に記載の方法。
【請求項９】
前記フリップビットの生のビット誤り率（ＲＢＥＲ）又は前記フリップビットの訂正不可能なビット誤り率（ＵＢＥＲ）は、複数の前記データビットの内のデータビットのＵＢＥＲ以上である、請求項１に記載の方法。
【請求項１０】
メモリのセクションは前記コードワードを含む複数のコードワードを含み、前記複数のコードワードの各コードワードはデータビット及び反転ビットを含み、前記反転ビットは、前記データビットが前記反転状態にあるか否かを指し示し、前記方法は、
コードワード毎に誤り訂正動作を実施することと、
コードワード毎に、前記コードワードの誤り訂正とは無関係に、反転ビットに少なくとも部分的に基づいてフリップビットの値を判定することと、
コードワード毎に、前記ビットフリッピングコンポーネントを含む１つ以上のビットフリッピングコンポーネントへ前記フリップビットを送信することと
を更に含む、請求項１に記載の方法。
【請求項１１】
データビットと、前記データビットが反転状態にあるか否かを指し示す反転ビットとを含むコードワードに対して、前記データビットが前記反転状態にあることを前記反転ビットの過半数が指し示すか否かを判定することと、
前記データビットが前記反転状態にあることを前記反転ビットの前記過半数が指し示すか否かを判定することに少なくとも部分的に基づいてフリップビットを生成することと、
前記フリップビットをビットフリッピングコンポーネントへ送信することと
を含む、方法。
【請求項１２】
前記コードワードの誤り訂正を実施することと、
前記誤り訂正に少なくとも部分的に基づいて、前記データビットに対するシンドロームビットを生成することと、
前記フリップビットを前記ビットフリッピングコンポーネントへ送信することと同時に、前記ビットフリッピングコンポーネントと結合されたビット訂正コンポーネントへ前記シンドロームビットを送信することと
を更に含む、請求項１１に記載の方法。
【請求項１３】
前記コードワードの誤り訂正を実施することと、
前記誤り訂正に少なくとも部分的に基づいて、前記データビットに対するシンドロームビットを生成することと、
前記ビットフリッピングコンポーネントと結合されたビット訂正コンポーネントへ前記データビットを送信することと、
前記フリップビットを前記ビットフリッピングコンポーネントへ送信した後に前記シンドロームビットを前記ビット訂正コンポーネントへ送信することと
を更に含む、請求項１１に記載の方法。
【請求項１４】
前記フリップビットと関連付けられた第１の誤り率は、前記データビットと関連付けられた第２の誤り率以上である、請求項１１に記載の方法。
【請求項１５】
データビットを処理するように構成されたデータコンポーネントと、
前記データビットが反転状態にあるか否かを指し示す反転ビットを含む制御ビットを処理するように構成された制御コンポーネントと、
前記データコンポーネント及び前記制御コンポーネントと結合された誤り識別コンポーネントであって、前記データビット内の誤りを識別するように構成された前記誤り識別コンポーネントと、
前記データビットが前記反転状態にあることを前記反転ビットの過半数が指し示すか否かに基づいて、前記データビットが前記反転状態にあるか否かを判定するように構成されたフリップビットジェネレータと
を含む、装置。
【請求項１６】
前記誤り識別コンポーネント及び前記フリップビットジェネレータは、相互に無関係に動作し、前記制御ビットは、誤り訂正ビット及び冗長ビットを含む、請求項１５に記載の装置。
【請求項１７】
前記フリップビットジェネレータは、前記制御コンポーネント内に含まれ、
前記データビットの過半数が前記反転状態にあるか否かに少なくとも部分的に基づいて、フリップビットを生成することと、
前記フリップビットを前記データコンポーネントへ送信することと
をするように構成される、請求項１５に記載の装置。
【請求項１８】
前記フリップビットに少なくとも部分的に基づいて前記データビットをフリッピングするように構成されたビットフリッピングコンポーネントであって、前記データコンポーネントは前記ビットフリッピングコンポーネントを含む、前記ビットフリッピングコンポーネント
を更に含む、請求項１７に記載の装置。
【請求項１９】
前記誤り識別コンポーネントは、前記データビット内で識別された前記誤りに少なくとも部分的に基づいて、前記データコンポーネントへシンドロームビットを送信するように構成され、前記フリップビットジェネレータは、前記シンドロームビットが前記データコンポーネントへ送信される前又は間に前記フリップビットを前記データコンポーネントへ送信するように構成される、請求項１７に記載の装置。
【請求項２０】
前記フリップビットジェネレータは、前記誤り識別コンポーネントの出力とは無関係に、前記データビットが前記反転状態にあるか否かを判定するように構成される、請求項１５に記載の装置。
【請求項２１】
前記データコンポーネント、前記制御コンポーネント、及びメモリセクションを含むメモリアレイであって、各メモリセクションはコードワードを含む、前記メモリアレイと、
メモリセクション内のコードワード毎に、前記データビット内の誤りを識別するように構成された１つ以上の誤り識別コンポーネントであって、前記１つ以上の誤り識別コンポーネントは、前記誤り識別コンポーネントを含む、前記１つ以上の誤り識別コンポーネントと、
メモリセクション内のコードワード毎に、前記データビットが前記反転状態にあるか否かを判定するように構成された１つ以上のフリップビットジェネレータであって、前記１つ以上のフリップビットジェネレータは前記フリップビットジェネレータを含み、前記１つ以上の誤り識別コンポーネント及び前記１つ以上のフリップビットジェネレータは、相互に無関係に動作する、前記１つ以上のフリップビットジェネレータと
を更に含む、請求項１５に記載の装置。
【請求項２２】
データビットを蓄積するように構成された第１のメモリセルと、反転ビットを含む制御ビットを蓄積するように構成された第２のメモリセルとを含むメモリアレイと、
前記メモリアレイと結合された修復コンポーネントであって、前記データビットのサブセット及び前記制御ビットのサブセットを置換するように構成された前記修復コンポーネントと、
前記修復コンポーネントの出力と結合された誤り識別コンポーネントであって、前記データビットの前記サブセットが置換された後に前記データビット内の誤りを識別するように構成された前記誤り識別コンポーネントと、
前記修復コンポーネントの前記出力と結合された多数決コンポーネントであって、前記誤り識別コンポーネントによる前記データビット内の誤りの識別と同時に、前記データビットが反転状態にあることを反転ビットの過半数が指し示すか否かを判定するように構成された前記多数決コンポーネントと
を含む、装置。
【請求項２３】
前記多数決コンポーネントは、前記誤り識別コンポーネントから電気的に絶縁される、請求項２２に記載の装置。
【請求項２４】
前記修復コンポーネントは、
前記データビットの前記サブセットを置換するように構成された第１のマルチプレクサと、
前記制御ビットの前記サブセットを置換するように構成された第２のマルチプレクサと
を含む、請求項２２に記載の装置。
【請求項２５】
前記第１のマルチプレクサの出力及び前記誤り識別コンポーネントと結合されたビット訂正コンポーネントであって、前記データビット内の誤りを訂正するように構成された前記ビット訂正コンポーネント
を更に含む、請求項２４に記載の装置。
【請求項２６】
前記多数決コンポーネント及び前記ビット訂正コンポーネントと結合されたビットフリッピングコンポーネントであって、前記データビット内の前記誤りが訂正された後に前記データビットをフリッピングするように構成された前記ビットフリッピングコンポーネント
を更に含む、請求項２５に記載の装置。
【請求項２７】
データビットと、前記データビットが反転状態にあるか否かを指し示す反転ビットとを含むコードワードの誤り訂正を実施するように構成された誤り識別コンポーネントと、
前記誤り識別コンポーネントと結合されたフリップビットジェネレータであって、前記反転ビットのサブセットにより蓄積された値に少なくとも部分的に基づいてフリップビットを生成するように構成された前記フリップビットジェネレータと、
前記フリップビットジェネレータと結合されたビットフリッピングコンポーネントであって、前記フリップビットジェネレータから前記フリップビットを受信するように、及び前記フリップビットの値に少なくとも部分的に基づいて前記データビットをフリッピングするように構成された前記ビットフリッピングコンポーネントと
を含む、装置。
【請求項２８】
前記フリップビットジェネレータは多数決コンポーネントを含み、前記多数決コンポーネントは、前記データビットが前記反転状態にあることを前記反転ビットの過半数が指し示すか否かを判定するように構成され、前記フリップビットは、前記判定に少なくとも部分的に基づいて生成される、請求項２７に記載の装置。
【請求項２９】
前記誤り識別コンポーネント及び前記フリップビットジェネレータと結合されたビット訂正コンポーネントであって、前記データビット内の誤りを訂正するように構成された前記ビット訂正コンポーネントを更に含み、前記誤り識別コンポーネントは、
前記データビットに対するシンドロームビットを生成することと、
前記シンドロームビットを前記ビット訂正コンポーネントへ送信することであって、前記ビット訂正コンポーネントは、前記シンドロームビットに少なくとも部分的に基づいて前記データビット内の前記誤りを訂正するように構成されることと
をするように更に構成される、請求項２７に記載の装置。
【請求項３０】
前記フリップビットジェネレータは、前記シンドロームビットが前記ビット訂正コンポーネントへ送信される前又は間に、前記フリップビットを前記ビットフリッピングコンポーネントへ送信するように構成される、請求項２９に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
［クロスリファレンス］
特許に対する本出願は、２０１８年８月１７日に出願された“ＥＮＨＡＮＣＥＤ  ＢＩＴ  ＦＬＩＰＰＩＮＧ  ＳＣＨＥＭＥ”という名称のＦａｃｋｅｎｔｈａｌによる米国特許出願番号１６／１０４，４７０に対する優先権を主張し、該出願は、本出願の譲受人に譲渡され、その全体が参照により本明細書に明白に組み込まれる。
【０００２】
以下は、一般的に、メモリアレイを動作することに関し、より具体的には、強化されたビットフリッピングスキームに関する。
【背景技術】
【０００３】
メモリデバイスは、コンピュータ、無線通信デバイス、カメラ、及びデジタル表示装置等の様々な電子デバイス内に情報を蓄積するために広く使用される。情報は、メモリデバイスの異なる状態をプログラミングすることによって蓄積される。例えば、バイナリデバイスは、論理“１”又は論理“０”によりしばしば示される２つの状態を有する。他のシステムでは、２つよりも多くの状態が蓄積され得る。蓄積された情報にアクセスするために、電子デバイスのコンポーネントは、メモリデバイス内の蓄積された情報を読み出し得、又はセンシングし得る。情報を蓄積するために、電子デバイスのコンポーネントは、メモリデバイス内に状態を書き込み得、又はプログラミングし得る。
【０００４】
磁気ハードディスク、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、同期型ダイナミックＲＡＭ（ＳＤＲＡＭ）、強誘電体ＲＡＭ（ＦｅＲＡＭ）、磁気ＲＡＭ（ＭＲＡＭ）、抵抗変化ＲＡＭ（ＲＲＡＭ）、フラッシュメモリ、及び相変化メモリ（ＰＣＭ）等を含む様々な種類のメモリデバイスが存在する。メモリデバイスは揮発性又は不揮発性であり得る。不揮発性メモリ（例えば、ＦｅＲＡＭ、ＰＣＭ、ＲＲＡＭ）は、外部電源が存在しなくても長時間、それらの蓄積された論理状態を維持し得る。揮発性メモリデバイス（例えば、ＤＲＡＭ）は、外部電源により定期的にリフレッシュされない限り、それらの蓄積状態を時間と共に喪失し得る。
【０００５】
メモリデバイスは、（例えば、信頼性の理由のために）メモリセルにおいて蓄積されたデータビットを反転し得る。ビットは、特定のメモリセルにおいて蓄積された論理状態が反転されたことを指し示し得る。反転に関するビットに対する誤り訂正を実施することは、しかしながら、アクセス動作を遅延し得、この遅延は、読み出し動作がメモリのセクションにアクセスする場合に伝搬遅延により悪化し得、メモリシステムに著しいレイテンシを導く。ビットフリッピング及び誤り訂正動作に関する強化されたスキームが望まれる。
【図面の簡単な説明】
【０００６】
【図１】本開示の様々な態様に従った強化されたビットフリッピングスキームをサポートする例示的なメモリアレイを説明する。
【図２】本開示の様々な態様に従った強化されたビットフリッピングスキームをサポートする例示的な読み出しコンポーネントを説明する。
【図３】本開示の様々な態様に従った強化されたビットフリッピングスキームを使用する例示的なメモリ動作の態様を説明する。
【図４】本開示の様々な態様に従った強化されたビットフリッピングスキームのための例示的なメモリ構成を説明する。
【図５】本開示の様々な態様に従った強化されたビットフリッピングスキームのための例示的なフリップビットジェネレータを説明する。
【図６】本開示の様々な態様に従った強化されたビットフリッピングスキームのための例示的なロバストセンシングコンポーネントを説明する。
【図７】本開示の様々な態様に従った強化されたビットフリッピングスキームのための例示的な多数決回路を説明する。
【図８】本開示の様々な実施形態に従った強化されたビットフリッピングスキームをサポートするメモリアレイのブロック図を説明する。
【図９】本開示の様々な実施形態に従った強化されたビットフリッピングスキームをサポートするシステムを説明する。
【図１０】本開示の様々な実施形態に従った強化されたビットフリッピングスキームのための１つ以上の方法の態様を説明する。
【図１１】本開示の様々な実施形態に従った強化されたビットフリッピングスキームのための１つ以上の方法の態様を説明する。
【発明を実施するための形態】
【０００７】
メモリデバイスは、（例えば、信頼性の理由のために）メモリセルにおいて蓄積されたデータビットを反転し得る。特定のメモリセルに対する１つ以上のデータビットを反転した後、メモリデバイスは、該特定のメモリセルにおいて蓄積された論理状態が反転されたことを指し示すための反転ビットをセットし得る。メモリからデータを読み出す場合、メモリデバイスは、データ及び反転ビットを誤り訂正し得、対応する誤り訂正された反転ビットに基づいて、データビットの内の何れかが反転されているか否かを判定し得る。しかしながら、反転ビットに対する誤り訂正を実施することは、読み出し動作を遅延し得る。また、この遅延は、読み出し動作がメモリのセクション全体にアクセスする場合に伝搬遅延により悪化し得、メモリシステムに著しいレイテンシを導く。
【０００８】
メモリデバイスは、多数の（例えば、数百万の）メモリセルを有するメモリアレイを含み得、メモリアレイは、個々の部分に分割され得る。例えば、メモリアレイは、メモリセクション、コードワード、及び／又はメモリユニットに分割され得、メモリセクションは複数のコードワードを含み得、コードワードは複数のメモリユニットを含み得る。幾つかの例では、メモリセクションは、ページサイズに対応し得、コードワードは、プリフェッチサイズに対応し、メモリユニットは、判定された数のビット（例えば、４ビット）に対応し得る。メモリアレイの物理的実装において、メモリセクションは、物理的に長距離（例えば、〜１ｍｍ）に及ぶ多数の（例えば、数千の）メモリセルを含み得る。
【０００９】
情報は、分割されたメモリリソースに従ってメモリアレイ内に蓄積され得る。例えば、特定の情報（例えば、ユーザデータ）がコードワード内に蓄積され得る。コードワードは、データビットを含むデータ部分と、冗長、誤り検出／訂正（“誤り訂正”）、及び／又は反転ビット等の制御ビットを含む制御部分とに分離され得る。データビットは、蓄積のためのメモリアレイを使用するアプリケーションのためのデータを表し得る。冗長ビットは、冗長修復として知られる動作の間に特定のデータ及び制御ビットを置換するために使用され得る。誤り訂正ビット（例えば、パリティビット）は、破損しているデータ及び反転ビットを識別するために使用され得る。共に、冗長及び誤り訂正ビットは、データビットがアクセスされる場合に生じ得る読み出しエラーの数を減少させ得、メモリデバイスの信頼性を増加させる。反転ビットは、メモリの第１のコードワード内に元々蓄積されたデータ、冗長、及び／又は誤り訂正ビットが反転状態にあるか否かを指し示し得、メモリアレイ内に蓄積されたビットは、節電するため、信頼性の理由のため等のために反転され得る。
【００１０】
情報はまた、分割されたメモリリソースに従ってメモリアレイから読み出され得る。例えば、コードワード内に蓄積されたデータは、メモリアレイからリクエストされ得、リクエストするデバイス（例えば、別のメモリコンポーネント又は外部のデバイス）へ配送され得る。リクエストを受信した後であるが、リクエストするデバイスへコードワード内に含まれるデータビットを配送する前に、メモリアレイは、例えば、誤りを修復する、コードワード内に蓄積されたビットをフリッピングするために、コードワードを処理し得る。
【００１１】
例えば、読み出し動作の間、コードワードのデータ部分は、データコンポーネントを通じて処理され得、コードワードの制御部分は、次のように制御コンポーネントを通じて処理され得る。まず、ある一定のデータ、誤り訂正、及び／又は反転ビットを置換するために、冗長ビットが使用され得る。次に、コードワード内の何れかのデータ又は反転ビットが破損しているか否かを（例えば、ハミング符号を使用して）判定するために、並びに該判定に基づいて、コードワード内の任意の誤り及びこうした誤りの場所を識別するシンドロームビットを生成するために、誤り訂正ビットが使用され得る。
【００１２】
シンドロームビットは、データ及び制御コンポーネントにその後提供され得（提供される、送信される、及び通信されるは、交換可能に使用され得る）、データ又は反転ビット内の任意の識別された誤りを修正するために使用され得る。幾つかの場合、誤り訂正を実施する前に誤りを含むビットの割合は、生のビット誤り率（ＲＢＥＲ）と称され得、誤り訂正を実施した後の誤りを含むビットの割合は、訂正不可能なビット誤り率（ＵＢＥＲ）と称され得る。
【００１３】
シンドロームビットが処理された後、“フリップビット”と称され得る誤り訂正された反転ビットは、データコンポーネント内のビットフリッピングコンポーネントへ送信され得る。データビットが反転状態にあることをフリップビットが指し示す場合、誤り訂正されたデータビットは、（例えば、リクエストするデバイスに提供される前に、誤り訂正されたデータビットがそれらの元々の蓄積値に戻されるように）フリッピングされ得る。さもなければ、データビットが元の状態にある（例えば、現在反転されていない）ことをフリップビットが指し示す場合、誤り訂正されたデータビットは、フリッピング動作が実施されることなく、リクエストするデバイスに直接提供され得る。
【００１４】
本明細書で言及するように、反転ビットを含む、コードワード内の全てではないが少なくとも幾つかのビット上で誤り訂正を実施することは、（例えば、データビットが訂正され、間違ってフリッピングされないことを確実にすることによって）リクエストするデバイスへ訂正データビットが配送される可能性を増加させ得、それは、メモリデバイスの信頼性を順次増加させ得る。シンドロームビットが処理された後までフリップビットを送ることを待機することは、しかしながら、幾つかの例では、メモリシステムにレイテンシを導き得る。
【００１５】
幾つかの場合、メモリセクション内に蓄積された全てのデータは、該セクションのコードワード内に配置されたデータに対するリクエストに応答して、リクエストするデバイスに提供され得、それは、伝搬遅延をもたらし得る。本明細書で論じられるように、メモリセクションは、物理的に長距離、例えば、伝搬遅延としてレイテンシをメモリシステムに導くのに十分な長さの距離に及ぶ複数のメモリセルに渡って広がり得る。幾つかの場合、冗長ビット、誤り訂正ビット、シンドロームビット、及び／又は反転ビット等の制御情報をメモリセクションに渡って分散することは、メモリ動作に対するレイテンシの増加をもたらす。実例として、メモリシステムは、シンドロームビットがメモリセクションに渡って分散されるのを待機する間の伝搬遅延を招き得る。
【００１６】
こうした伝搬遅延は、連続的な制御動作によって悪化し得る。すなわち、メモリ動作に対する総計の伝搬遅延は、制御情報がメモリセクションに渡って提供される度に増加し得る。例えば、本明細書で論じられる読み出し動作は、メモリセクションに渡ってシンドロームビットを分散する場合に第１の伝搬遅延を招き得る。また、メモリセクションに渡って誤り訂正された反転ビットを分散する場合に別の伝搬遅延を招き得る。こうした場合、フリッピング動作を実施する前に反転ビット上で誤り訂正を実施することは、両伝搬遅延の総計によってメモリ動作のレイテンシを増加させ得、メモリデバイスのスループットを減少させる。幾つかの場合、メモリセクション内の反転ビット上で誤り訂正を実施することは、１ｎｓの遅延をもたらす。
【００１７】
幾つかの場合、メモリ動作の幾つかのステップは、省略され得、及び／又は他のステップと並行して実施され得る。この方法では、特定のステップに対する伝搬遅延は、レイテンシをメモリ動作に追加しなくてもよい。
【００１８】
例えば、コードワードと関連付けられた反転ビットに対して誤り訂正は実施されなくてもよく、反転ビットと同じである、又は反転ビットに基づいて判定されるフリップビットは、誤り訂正の間に生成されたシンドロームビットの生成又は分散の前又は同時にデータコンポーネントに提供され得る。この方法では、メモリセクション内のコードワードの全てに対する反転ビットに対応するシンドロームビットがメモリセクションに渡って伝搬した後にフリップビットをデータコンポーネントへ送ることと関連付けられる総計の伝搬遅延が回避され得る。
【００１９】
とは言え、反転ビット上で誤り訂正を実施することを控えることは、幾つかの例では、フリップビットの信頼性を減らし得る。したがって、フリップビットをビットフリッピングコンポーネントへ直接送ることは、メモリシステムの信頼性を減らし得る。
【００２０】
幾つかの場合、コードワードのデータビットを（例えば、ハミング符号を使用して）誤り訂正するために使用される誤り訂正技術以外の（例えば、反復符号を使用する）代替的な誤り訂正技術が、コードワードに対するフリップビットの信頼性を増加させるために使用され得る。この方法では、フリップビット、更に言えばメモリデバイスの信頼性は、データビットに対して使用される同じ誤り訂正スキームを使用してフリップビットを誤り訂正することによって得られる信頼性レベル以上で維持され得る。また、代替的な誤り訂正技術は、データビットに対してその他の誤り訂正技術が実施されながら実施され得、対応するシンドロームビットがメモリセクションに渡って分散された後まで、メモリセクションのフリップビットをビットフリッピングコンポーネントへ送るのを待機することと関連付けられる総計の伝搬遅延を和らげる。
【００２１】
幾つかの例では、フリップビットの信頼性は、コードワード内に複数の反転ビットを含むことによる代替的な誤り訂正技術を使用して増加し得る。例えば、コードワード内に３つ以上の反転ビットが含まれ得、（反復スキームとも称され得る）フリップビットの値で“多数決を取る”ために使用され得る。すなわち、フリップビットは、コードワード内のデータビットが反転されていることを反転ビットの過半数が指し示すか否かを判定することに基づいて生成され得る。この方法では、フリップビットの失敗（failing）の確率は、コードワード内に含まれる反転ビットの数と反転ビットのＲＢＥＲとの関数であり得る。例えば、３つの反転ビットを使用するこうした多数決スキームに対しては、フリップビットのＵＢＥＲは、単一の反転ビットのＲＢＥＲの二乗の３Ｃ２倍、例えば、
【数１】
2021524646.tif 000003
であり得る。また、該多数決は、データビットへの参照なく、したがって、データビットに対するシンドロームビットが生成される及び／又はメモリセクション全体に分散される前又は間に完了され得る。
【００２２】
別の例では、フリップビットの信頼性は、複数の反転ビットとよりロバスト性のあるセンシングスキームとを使用することによって、誤り訂正なく増加させ得る。例えば、差動センシングスキームを使用して、２つのメモリセル内に蓄積された２つの反転ビットは読み出され得る。また、コードワードを処理する前に、単一の高い信頼性の反転ビットを生成するために２つのメモリセルがセンシングされ得、該反転ビットは、フリップビットとしてその後使用され得、又はフリップビットを生成するためにその後使用され得る。幾つかの場合、差動センシングスキームに基づいてコードワードに対して生成されたフリップビットのＲＢＥＲは、コードワードに対するデータビットのＵＢＥＲ以上であり得る。
【００２３】
幾つかの例では、フリップビットの信頼性は、コードワード毎の単一の反転ビットと反転ビットに対するよりロバスト性のある蓄積スキームとを使用することによって、例えば、反転ビットの信頼性を増加させることによって、誤り訂正することなく増加させ得る。例えば、反転ビットは、例えば、メモリセルの化学組成、メモリセルのサイズ、メモリセルに対して使用される技術に起因して、より大きなセンシングウィンドウを有するメモリセル内に蓄積され得る。また、コードワードを処理する場合、メモリセルは、高い信頼性の反転ビットを生成するためにセンシングされ得、該反転ビットは、フリップビットとしてその後使用され得、又はフリップビットを生成するためにその後使用され得る。幾つかの場合、ロバスト性のある蓄積スキームで蓄積された反転ビットに基づいてコードワードに対して生成されたフリップビットのＲＢＥＲは、コードワードに対するデータビットのＵＢＥＲ以上であり得る。幾つかの例では、フリップビットの信頼性を増加させるための技術は、例の中でもとりわけ、誤り訂正、若しくは冗長ビット、又はそれら両方等のその他の制御ビットにも拡張され得る。
【００２４】
上で紹介した開示の機構は、メモリシステムの文脈で本明細書で更に説明される。強化されたビットフリッピングスキームに従ってコードワードを読み出すためのデバイス及び方法の具体例がその後説明される。開示のこれら及びその他の機構は、強化されたビットフリッピングスキームに関する装置図、システム図、及びフローチャートによって更に説明され、それらを参照しながら更に説明される。
【００２５】
図１は、本開示の様々な実施形態に従った強化されたビットフリッピングスキームをサポートする例示的なメモリアレイを説明する。メモリアレイ１００は、デジタル情報（例えば、バイナリ情報）を蓄積するために使用され得、電子メモリ装置とも称され得る。メモリアレイ１００は、異なる状態を蓄積するようにプログラミング可能であるメモリセル１０５を含む。各メモリセル１０５は、論理０及び論理１として示される２つの状態を蓄積するようにプログラミング可能であり得る。幾つかの場合、メモリセル１０５は、２つよりも多い論理状態を蓄積するように構成される。
【００２６】
メモリセル１０５は、プログラミング可能な状態を有するメモリ素子を含み得る。ＤＲＡＭ又はＦｅＲＡＭアーキテクチャにおけるメモリセル１０５は、プログラミング可能な状態を表す電荷をコンデンサ内に蓄積し得、例えば、充電及び非充電のコンデンサは、２つの論理状態を夫々表し得る。ＤＲＡＭアーキテクチャは、こうした設計を一般的に使用し得、誘電材料を含み、メモリ素子として線形電気分極特性を有するコンデンサを使用し得る。ＦｅＲＡＭアーキテクチャもこうした設計を使用し得るが、メモリ素子として使用されるコンデンサは、非線形分極特性を有する強誘電体材料を含み得る。ＰＣＭ又は分離ベースメモリ（ＳＢＭ）アーキテクチャにおけるメモリセル１０５は、異なる抵抗率が異なる論理状態を表し得る材料の抵抗率（例えば、抵抗又は閾値電圧）を変化させ得る。ＰＣＭ及び／又はＳＢＭアーキテクチャは、メモリ素子として電子的にプログラミング可能な抵抗を有するカルコゲナイド材料を使用し得る。幾つかの場合、ＰＣＭアーキテクチャにおけるメモリセル１０５は、メモリ材料の相を変化させることによってプログラミングされる。幾つかの場合、ＳＢＭアーキテクチャにおけるメモリセル１０５は、メモリ材料内にイオン移動を生じさせることによってプログラミングされる。
【００２７】
読み出し及び書き込み等の動作は、適切なアクセス線１１０及びデジット線１１５を活性化又は選択することによってメモリセル１０５上で実施され得る。アクセス線１１０はワード線１１０とも称され得、デジット線１１５はビット線１１５とも称され得る。ワード線１１０又はデジット線１１５を活性化又は選択することは、個別の線に電圧を印加することを含み得る。ワード線１１０及びデジット線１１５は、導電材料で作られる。例えば、ワード線１１０及びデジット線１１５は、金属（銅、アルミニウム、金、タングステン等）、金属合金、又はその他の導電材料等で作られ得る。図１の例に従えば、メモリセル１０５の各行は、単一のワード線１１０に接続され、メモリセル１０５の各列は、単一のデジット線１１５に接続される。１つのワード線１１０及び１つのデジット線１１５を活性化することによって（例えば、ワード線１１０又はデジット線１１５に電圧を印加することによって）、それらの交点において単一のメモリセル１０５がアクセスされ得る。メモリセル１０５にアクセスすることは、メモリセル１０５を読み出すこと又は書き込むことを含み得る。ワード線１１０とデジット線１１５との交点は、メモリセルのアドレスと称され得る。
【００２８】
幾つかのアーキテクチャでは、セルの論理蓄積デバイス（例えば、コンデンサ）は、選択コンポーネントによってデジット線から電気的に絶縁され得る。ワード線１１０は、選択コンポーネントに接続され得、選択コンポーネントを制御し得る。例えば、選択コンポーネントはトランジスタであり得、ワード線１１０は、トランジスタのゲートに接続され得る。ワード線１１０を活性化することは、メモリセル１０５のコンデンサと、その対応するデジット線１１５との間の電気的接続又は閉回路をもたらす。デジット線は、メモリセル１０５の読み出し又は書き込みの何れかのためにその後アクセスされ得る。
【００２９】
メモリセル１０５へのアクセスは、行デコーダ１２０及び列デコーダ１３０を通じて制御され得る。幾つかの例では、行デコーダ１２０は、メモリコントローラ１４０から行アドレスを受信し、受信した行アドレスに基づいて適切なワード線１１０を活性化する。同様に、列デコーダ１３０は、メモリコントローラ１４０から列アドレスを受信し、適切なデジット線１１５を活性化する。例えば、メモリアレイ１００は、ＷＬ＿１〜ＷＬ＿Ｍとラベルが付された複数のワード線１１０と、ＤＬ＿１〜ＤＬ＿Ｎとラベルが付された複数のデジット線１１５とを含み得、Ｍ及びＮはアレイサイズに依存する。したがって、ワード線１１０及びデジット線１１５、例えば、ＷＬ＿３及びＤＬ＿Ｎを活性化することによって、それらの交点におけるメモリセル１０５がアクセスされ得る。
【００３０】
アクセスすると、メモリセル１０５は、メモリセル１０５の蓄積状態を判定するために、センスコンポーネント１２５によって読み出され得又はセンシングされ得る。例えば、メモリセル１０５へのアクセス後、メモリセル１０５のコンデンサは、その対応するデジット線１１５上に放電し得る。コンデンサの放電は、コンデンサに対してバイアスすること又は電圧を印加することに基づき得る。放電は、デジット線１１５の電圧の変化を生じさせ得、センスコンポーネント１２５は、メモリセル１０５の蓄積状態を判定するために、デジット線１１５の電圧をリファレンス電圧（図示せず）と比較し得る。例えば、デジット線１１５がリファレンス電圧よりも高電圧を有する場合、センスコンポーネント１２５は、メモリセル１０５内の蓄積状態が論理１であると判定し得、逆もまた同様である。
【００３１】
センシング動作の信頼性は、メモリセル１０５の読み出しからもたらされるセンシングウィンドウに依存し得る。実例として、より大きなセンシングウィンドウは、より小さなセンシングウィンドウよりも少ないビット誤りと関連付けられ得る。センシングウィンドウは、論理１を蓄積する場合にメモリセル１０５の読み出しからもたらされるデジット線１１５の電圧と、論理０を蓄積する場合にメモリセルの読み出しからもたらされるデジット線１１５の電圧との間の差として判定され得る。センスコンポーネント１２５は、ラッチと称され得る、信号中の差を検出及び増幅するための様々なトランジスタ又はアンプを含み得る。メモリセル１０５の検出された論理状態は、出力１３５として列デコーダ１３０を通じてその後出力され得る。
【００３２】
メモリセル１０５は、関連するワード線１１０及びデジット線１１５を活性化することによってセットされ得、又は書き込まれ得る。本明細書で論じるように、ワード線１１０の活性化は、（複数の）メモリセル１０５の対応する行をそれらの個別のデジット線１１５に電気的に接続する。ワード線１１０が活性化される間に、関連するデジット線１１５を制御することによって、メモリセル１０５は書き込まれ得、例えば、メモリセル１０５内に論理値が蓄積され得る。列デコーダ１３０は、メモリセル１０５に書き込まれるデータ、例えば入力１３５を受け入れ得る。
【００３３】
メモリコントローラ１４０は、行デコーダ１２０、列デコーダ１３０、及びセンスコンポーネント１２５等の様々なコンポーネントを通じて、メモリセル１０５の動作（例えば、読み出し、書き込み、再書き込み、リフレッシュ等）を制御し得る。メモリコントローラ１４０は、所望のワード線１１０及びデジット線１１５を活性化するために、行及び列のアドレス信号を生成し得る。メモリコントローラ１４０はまた、メモリアレイ１００の動作の間に使用される様々な電位を生成及び制御し得る。一般的に、本明細書で論じる印加電圧の振幅、形状、又は存続期間は、調整又は変更され得、メモリアレイ１００を動作するための様々な動作に対して異なり得る。更に、メモリアレイ１００内の１つの、複数の、又は全てのメモリセル１０５は同時にアクセスされ得、例えば、メモリアレイ１００の複数の又は全てのセルは、全てのメモリセル１０５又はメモリセル１０５のグループが単一の論理状態にセットされるリセット動作の間に同時にアクセスされ得る。
【００３４】
幾つかの場合、メモリアレイ１００は、メモリセル１０５の論理状態をフリッピングし得、例えば、ある値（例えば、論理１）から別の論理値（論理０）へメモリセル内１０５に蓄積された論理値を変化させ得る。メモリアレイ１００は、フリッピングを内部的に実施し得、メモリセルの論理状態がフリッピングされていることを外部のデバイス又はコンポーネントに通知しなくてもよい。メモリアレイ１００は、節電するために、又はデバイスの信頼性を増加させるために等のためにメモリセルをフリッピングし得る。例えば、ＦｅＲＡＭに対しては、強誘電体メモリセルは、インプリントの影響、例えば、メモリセルの信頼性を時間と共に減らし得る同じ電荷の長期の暴露又は蓄積に起因する強誘電体ドメインのドリフトを緩和するためにフリッピングされ得る。元々の論理状態、例えば、外部のデバイス又はコンポーネントによってメモリセルにおいて蓄積されると期待される論理状態とは異なる論理状態を蓄積するメモリセル１０５は、反転状態にあると称され得る。
【００３５】
幾つかの場合、メモリアレイ１００は、メモリセルのセットに分割される。例えば、メモリアレイ１００は、数千のメモリセル１０５を含み得るメモリセクションに分割され得る。メモリセクションは、数百のメモリセル１０５を含み得るコードワードに更に分割され得る。また、コードワードは、一桁の数のメモリセル１０５を含み得るメモリユニットに分割され得、例えば、メモリユニットは、４つのメモリセル１０５を含み得る。
【００３６】
幾つかの例では、メモリアレイ１００内に蓄積された情報は、別のデバイス（例えば、バッファ等のメモリコンポーネント又は外部のプロセッサ）によってリクエストされ得る。メモリアレイ１００は、メモリアレイ１００内の情報の場所を識別し得る。幾つかの場合、メモリアレイ１００は、メモリの特定のセクション内に配置されたコードワード内に情報が配置されたと判定し得る。幾つかの例では、メモリアレイ１００は、メモリセクションがコードワードを含むこと識別することに基づいて、メモリセクション全体にアクセスし得、メモリセクション内に蓄積された情報の全てを、リクエストするデバイスに提供し得る。
【００３７】
しかしながら、メモリセクション内に蓄積された情報を、リクエストするデバイスに提供する前に、メモリアレイ１００は、情報をまず処理し得、メモリセクション内に蓄積された情報ビットに対して冗長修復及び誤り訂正を実施する。メモリアレイ１００はまた、メモリセクション内のコードワードの内の何れかが反転状態にあるか否かを判定し得、リクエストするデバイスが期待する蓄積状態にデータビットを戻すために、コードワードのビットをフリッピングし得る。
【００３８】
誤り訂正の間、メモリアレイ１００は、幾つかのメモリセルが破損しているデータを蓄積しているか否かを指し示すために使用され得るシンドロームビットを生成し得、破損したメモリセル内に蓄積されたデータは、訂正値にフリッピングされ得る。幾つかの場合、誤り訂正の間に、誤りが何らないと識別され得、生成されたシンドロームビットの全ては、論理値０を有する。幾つかの場合、メモリセクション全体を通じたシンドロームビットの配送は、例えば、メモリセクションの物理的サイズ及び／又は連続的なデータ配送に起因する伝搬遅延と関連付けられ得る。コードワードのビットをフリッピングするために、コードワードに対する反転／フリップビットはビットフリッピングコンポーネントに提供され得、ビットフリッピングコンポーネントは、（例えば、データビットが反転状態にあることを反転ビットが指し示す場合に）コードワードのデータビットをフリッピングし得る。幾つかの場合、反転ビットは、フリップビットと同じであり得、又はフリップビットを生成するために使用され得る。
【００３９】
幾つかの場合、メモリアレイ１００は、対応する反転ビットを含むコードワード全体に対して誤り訂正を実施し得る。したがって、メモリアレイ１００は、シンドロームビットが受信される後まで、フリップビットをビットフリッピングコンポーネントに提供するのを待機し得る。しかしながら、シンドロームビットを受信した後までフリップビットを送るのを待機することは、メモリシステムのレイテンシを増加させ得る。また、例えば、メモリセクション内に蓄積された情報は、セクション全体が完全に処理される後まで、リクエストするデバイスに提供されなくてもよいので、該レイテンシは、フリップビットがメモリセクション全体を通じて提供され、配送される間に更に増加し得る。
【００４０】
メモリアレイ１００は、コードワードに対して反転ビット上で誤り訂正を実施することを控え得、誤り訂正と同時に（すなわち、少なくとも部分的に重複して）フリップビットをビットフリッピングコンポーネントに提供し得る。幾つかの例では、メモリアレイ１００は、コードワード内に複数の反転ビットを含み得、反転ビットにより蓄積された値に基づいてフリップビットを生成し得る。
【００４１】
メモリアレイ１００は、異なる誤り訂正技術を使用した（例えば、反復符号を使用する）フリップビットの誤り訂正／生成と同時に、ある誤り訂正技術を使用した（例えば、ハミング符号を使用する）コードワードのデータビット誤り訂正を実施し得る。幾つかの場合、フリップビットの生成／誤り訂正は、データビットの誤り訂正の間に、シンドロームビットの生成又は分散、例えば、メモリセクションの異なる場所へのシンドロームビットの全ての送信と重複し得る。フリップビットを誤り訂正／生成した後、メモリアレイ１００は、フリップビットの値に基づいてデータビットがフリッピングされ得るビットフリッピングコンポーネントにフリップビットを通信（例えば、送信し、送り、提供し、等）得る。この方法では、レイテンシは減らされ得、総計の伝搬遅延の影響は、メモリアレイ１００に対して和らげられ得る。
【００４２】
幾つかの場合、メモリアレイ１００は、多数決スキーム及び複数の反転ビットを使用してフリップビットを生成／誤り訂正し得る。多数決スキームは、誤り訂正スキームの一種であり得る。例えば、メモリアレイ１００は、コードワード内のデータビットが反転状態にあることを反転ビットの過半数が指し示すか否かを、複数の反転ビットを含むコードワードに対して判定し得る。メモリアレイ１００は、コードワードが反転状態にあることをデータビットの内の少なくとも幾つか（例えば、過半数又は全て）が指し示すか否かを判定することに基づいてフリップビットを生成し得、例えば、メモリアレイ１００は、コードワードが反転状態にあることをデータビットの過半数が指し示す場合に、データビットが反転されていることを指し示すフリップビットを生成し得る。メモリアレイ１００は、フリップビットをビットフリッピングコンポーネントへその後送信し得る。フリップビットの信頼性は、コードワードのデータビットに対するものとは異なる、反転ビットに対する誤り訂正スキームを使用して増加し得る。幾つかの場合、多数決スキームにより出力されるフリップビットは、コードワードに対するデータビットの誤り訂正の間に、シンドロームビットの生成及び／若しくは分散と同時に、生成され得、並びに／又はビットフリッピングコンポーネントに提供され得る。
【００４３】
幾つかの場合、メモリアレイ１００は、コードワードに対するフリップビットを生成するための差動センシングスキームを使用して、コードワードに対する２つの反転ビットを蓄積する。差動センシングスキームは、メモリアレイ１００内の個々の反転ビット及び訂正された情報ビットよりも高い信頼性を有する単一の反転ビットを生成するために使用され得る。単一の反転ビットは、フリップビットとしてその後使用され得、又はフリップビットを生成するために使用され得る。こうしたスキームは、反転／フリップビットを誤り訂正することなくフリップビットの信頼性を増加させ得、シンドロームビットの生成及び／又は分散と同時にフリップビットをビットフリッピングコンポーネントに提供するために使用され得る。
【００４４】
幾つかの場合、メモリアレイ１００は、メモリアレイ１００内のその他のメモリセルよりも大きなセンシングウィンドウを有するメモリセル内にコードワードに対する単一の反転ビットを蓄積し得る。例えば、該反転ビットは、メモリアレイ内のその他のメモリセルとは異なる技術を使用する等、メモリアレイ１００内のその他のメモリセルよりも大きなサイズを有するメモリセル内に蓄積され得る。単一の反転ビットは、メモリアレイ１００内の訂正された情報ビットよりも高い信頼性を有し得、フリップビットとして使用され得、又はフリップビットを生成するために使用され得る。こうしたスキームは、反転／フリップビットを誤り訂正することなくフリップビットの信頼性を増加させ得、シンドロームビットの生成及び／又は分散と同時にフリップビットをビットフリッピングコンポーネントに提供し得る。
【００４５】
図２は、本開示の様々な態様に従った強化されたビットフリッピングスキームをサポートする例示的な読み出しコンポーネントを説明する。読み出しコンポーネント２００は、メモリアレイ内に蓄積された情報を処理するために使用され得る。読み出しコンポーネント２００は、入力線（データビット線２０５、冗長ビット線２１０、誤り訂正ビット線２１５、及び反転ビット線２２０）、データコンポーネント２２５、制御コンポーネント２３０、誤り識別コンポーネント２３５、出力線（グローバルデータ線２４０）、及びロバストセンシングコンポーネント２７５を含み得る。
【００４６】
データビット線２０５は、データを蓄積するメモリセルとデータコンポーネント２２５との間で１つ以上のコードワードに対するデータビットを通信するように構成され得る。データビットは、ユーザアプリケーションに対するデータを表し得る。冗長ビット線２１０は、冗長データビットを蓄積するメモリセルとデータコンポーネント２２５との間で、並びに冗長データ制御ビットを蓄積するメモリセルと制御コンポーネント２３０との間で冗長ビットを通信するために使用され得る。冗長ビットは、幾つかのデータ及び／又は制御ビットに対応し得、幾つかのデータ及び／又は制御ビットを置換するために使用され得る。幾つかの場合、冗長ビットは、他のメモリセルよりも高い信頼性を有するメモリセル内に蓄積される。
【００４７】
誤り訂正ビット線２１５は、誤り訂正ビットを蓄積するメモリセルと制御コンポーネント２３０との間で、パリティビット等の誤り訂正ビットを通信するために使用され得る。誤り訂正ビットは、データ及び／又は制御ビット内の誤りを識別するために使用され得る。反転ビット線２２０は、反転ビットを蓄積するメモリセルと制御コンポーネント２３０との間で、データビットが反転状態にあるか否かを指し示す反転ビットを通信するために使用され得る。コードワードに対する反転ビットは、コードワードに対する対応するデータ及び／又は制御ビットが元々の／期待される状態にあるか、それとも反転状態にあるかを指し示すために使用され得る。
【００４８】
データコンポーネント２２５は、１つ以上のコードワード内に蓄積されたデータビットを処理するように、及び処理されたデータビットを、リクエストするデバイスに配送するように構成され得る。データコンポーネント２２５は、データビットをデータビット線２０５から受信し得る。データコンポーネント２２５は、第１のビット修復コンポーネント２４５、ビット訂正コンポーネント２５０、及びビットフリッピングコンポーネント２５５を含み得る。
【００４９】
第１のビット修復コンポーネント２４５は、特定のデータビットを対応する冗長データビットと置換するように構成され得る。第１のビット修復コンポーネント２４５は、データビットをデータビット線２０５から、及び冗長データビットを冗長ビット線２１０から受信し得る。第１のビット修復コンポーネント２４５は、冗長修復と称され得る処理の間に、受信されたデータビットの内の特定のデータビットを、受信された冗長ビットの内の特定の冗長データビットと置換し得る。第１のビット修復コンポーネント２４５は、データビットのサブセットを置換するように構成された第１のマルチプレクサと、修復された冗長データビットを蓄積するためのラッチとを含み得る。第１のマルチプレクサの出力は、ビット訂正コンポーネント２５０及び／又は誤り識別コンポーネント２３５と結合され得る。第１のビット修復コンポーネント２４５は、ビット訂正コンポーネント２５０及び／又は誤り識別コンポーネント２３５へ、修復された冗長データビットを送信し得る。
【００５０】
ビット訂正コンポーネント２５０は、破損していると識別されているデータビットを訂正するように構成され得る。ビット訂正コンポーネント２５０は、破損したビットを訂正するためのコンポーネントと、シンドロームデコーダ等のシンドロームビットを処理するためのコンポーネントとを含み得る。ビット訂正コンポーネント２５０は、第１のビット修復コンポーネント２４５からデータビット（例えば、修復された冗長データビット）を受信し得る。
【００５１】
ビット訂正コンポーネント２５０はまた、誤り識別コンポーネント２３５からシンドロームビットを受信し得る。シンドロームビットは、修復された冗長データビットの、失敗している（例えば、破損している）データビットを識別し得る。ビット訂正コンポーネント２５０は、シンドロームビットにより識別されたデータビット内の誤りをその後訂正し得る。幾つかの場合、ビット訂正コンポーネント２５０は、シンドロームビットに基づいて、失敗（例えば、破損）として識別されている特定のデータビットを識別し、該データビットの論理値を（例えば、ＸＯＲ回路を使用して）フリッピングする。幾つかの場合、ビット訂正コンポーネント２５０は、例えば、シンドロームビットが全て論理０である場合に、シンドロームビットに基づいて、データビットが何ら破損していないと判定する。シンドロームビットを処理した後、ビット訂正コンポーネント２５０は、訂正されたデータビットをビットフリッピングコンポーネント２５５へ送信し得る。
【００５２】
ビットフリッピングコンポーネント２５５は、受信されたフリップビットに基づいて、訂正されたデータビットを反転状態から元々の状態へフリッピングするように構成され得る。ビットフリッピングコンポーネント２５５は、訂正されたデータビットをビット訂正コンポーネント２５０から受信し得る。ビットフリッピングコンポーネント２５５はまた、フリップビットをフリップビットジェネレータ２７０から受信し得る。ビットフリッピングコンポーネント２５５は、フリップビットの値に基づいて、訂正されたデータビットを反転状態からフリッピングし得る。例えば、フリップビットの値が論理１である場合、ビットフリッパーは、訂正されたデータビットをフリッピングし得る。訂正されたデータビットをフリッピングすることは、データビットの値を反対の値に（例えば、論理０から論理１に）変化させるＸＯＲコンポーネントを通じて、訂正されたデータビットを送信することを含み得る。
【００５３】
データコンポーネント２２５に提供される前に、メモリセル内に蓄積されたデータビットがフリッピングされた（例えば、信頼性の理由のために反転状態に置かれた）場合、ビットフリッピングコンポーネント２５５は、訂正されたデータビットをフリッピングするようにビットフリッピングコンポーネント２５５を発動するフリップビットを受信することに基づいて、訂正されたデータビットをフリッピングし得る。データコンポーネント２２５に提供される前に、メモリセル内に蓄積されたデータビットがフリッピングされていない場合、ビットフリッピングコンポーネント２５５は、訂正されたデータビットをフリッピングするようにビットフリッピングコンポーネント２５５を発動しないフリップビットを受信することに基づいて、訂正されたデータビットをフリッピングすることを控え得る。幾つかの場合、ビットフリッピングコンポーネントは、データビット内の誤りが訂正された後にデータビットをフリッピングするように構成され得る。幾つかの場合、ビットフリッピングコンポーネント２５５は、フリップビットが破損している場合に、訂正されたデータビットを不適切にフリッピングし得、又はフリッピングを失敗し得る。ビットフリッピングコンポーネント２５５はグローバルデータビットを生成し得、グローバルデータビットをグローバルデータ線２４０を介して、リクエストするデバイスへ送信し得、グローバルデータビットは、読み出しコンポーネント２００により完全に処理されている、及びリクエストするデバイスに提供されているデータビットを称するために使用され得る。
【００５４】
制御コンポーネント２３０は、１つ以上のコードワード内に蓄積された制御ビットを処理するように、及び１つ以上のコードワードに対するデータビットの処理においてデータコンポーネント２２５を助力するように構成され得る。制御コンポーネント２３０は、第２のビット修復コンポーネント２６０、第３のビット修復コンポーネント２６５、及びフリップビットジェネレータ２７０を含み得る。
【００５５】
第２のビット修復コンポーネント２６０は、第１のビット修復コンポーネント２４５と同様に、特定の誤り訂正ビットを、対応する冗長誤り訂正ビットに置換するように構成され得る。第２のビット修復コンポーネント２６０は、誤り訂正ビットを誤り訂正ビット線２１５から、及び冗長誤り訂正ビットを冗長ビット線２１０から受信し得る。幾つかの場合、第２のビット修復コンポーネント２６０は、冗長ビット線２１０上の何れの冗長誤り訂正ビットも受信しなくてもよい。第２のビット修復コンポーネント２６０は、誤り訂正ビットのサブセットを置換するように構成された第２のマルチプレクサと、修復された冗長誤り訂正ビットを蓄積するためのラッチとを含み得る。第２のビット修復コンポーネント２６０は、修復された冗長誤り訂正ビットを誤り識別コンポーネント２３５へ送信し得る。
【００５６】
第３のビット修復コンポーネント２６５は、第１のビット修復コンポーネント２４５及び第２のビット修復コンポーネント２６０と同様に、特定の反転ビットを対応する冗長反転ビットに置換するように構成され得る。第３のビット修復コンポーネント２６５は、反転ビットを反転ビット線２２０から、及び冗長反転ビットを冗長ビット線２１０から受信し得る。幾つかの場合、第３のビット修復コンポーネント２６５は、冗長ビット線２１０上の何れの冗長反転ビットも受信しなくてもよい。第３のビット修復コンポーネント２６５は、反転ビットのサブセットを置換するように構成された第３のマルチプレクサと、修復された冗長反転ビットを蓄積するためのラッチとを含み得る。第３のビット修復コンポーネント２６５は、修復された冗長反転ビットを誤り識別コンポーネント２３５へ送信し得る。幾つかの場合、第３のビット修復コンポーネント２６５は、反転ビット線２２０を介して複数の反転ビットを受信し、複数の修復された冗長反転ビットをフリップビットジェネレータ２７０へ送信する。幾つかの場合、第２及び第３のマルチプレクサは、制御ビットのサブセットを置換するように構成された単一のマルチプレクサとして実装され得る。
【００５７】
フリップジェネレータ２７０は、データビットが反転状態にあるか否かを判定するように、及びリクエストするデバイスに提供する前に、コードワードのデータビットが反転状態から元々の／期待される状態に戻してフリッピングされるべきか否かを指し示すコードワードに対するフリップビットを生成するように構成され得る。フリップビットジェネレータ２７０は、ビット修復コンポーネント２６５から受信した修復された冗長反転ビットに基づいてフリップビットを生成し得る。幾つかの場合、フリップビットジェネレータ２７０は、誤り識別コンポーネント２３５により実装される誤り訂正技術とは異なる代替的な誤り訂正技術を（例えば、多数決スキーム等反復符号を使用して）実装し得る。
【００５８】
例えば、コードワードに対して複数の反転ビットが使用される場合、フリップビットジェネレータ２７０は、多数決コンポーネントを含み得、多数決コンポーネントは、コードワード内の対応するデータビットが反転状態にあることを、反転ビットの内の少なくとも幾つか（例えば、過半数又は全て）が指し示すか、それともコードワード内の対応するデータビットが反転状態にないことを反転ビットが指し示すかを判定するために使用され得る。
【００５９】
例えば、対応するデータビットが反転状態にあることを、反転ビットの過半数が指し示す場合、フリップビットジェネレータ２７０は、訂正されたデータビットをフリッピングするようにビットフリッピングコンポーネント２５５を発動するフリップビットを生成し得る。或いは、対応するデータビットが反転状態にない（例えば、非反転の元々の蓄積状態にある）ことを、反転ビットの過半数が指し示す場合、フリップビットジェネレータ２７０は、訂正されたデータビットをフリッピングすることをビットフリッピングコンポーネント２５５に控えさせるフリップビットを生成し得る。幾つかの場合、多数決コンポーネントは、誤り識別コンポーネント２３５によるデータビット内の誤りの識別と同時に、対応するデータビットが反転状態にあることを反転ビットの過半数が指し示すか否かを判定し得る。多数決コンポーネントは、誤り識別コンポーネント２３５から電気的に絶縁され得る。多数決コンポーネントは、本明細書でより詳細に、図６及び図７を少なくとも参照しながら論じられる。
【００６０】
付加的に又は代替的に、コードワードに対して複数の反転ビットが使用される場合、データコンポーネント２２５又は制御コンポーネント２３０を使用してコードワードを処理する前に、及び反転ビットに対する誤り訂正技術を用いることなく、コードワードの複数の反転ビットから単一の高い信頼性の反転／フリップビットを生成するためにロバストセンシングコンポーネント２７５が使用され得る。例えば、ロバストセンシングコンポーネント２７５は、差動センシングコンポーネントであり得る。こうした場合、単一の高い信頼性の反転ビット、例えば、メモリシステムにおける情報ビットのＵＢＥＲ以上のＲＢＥＲを有する反転ビットを生成するために、２つのメモリセル内に蓄積されたコードワードの２つの反転ビットがロバストセンシングコンポーネント２７５を使用して共にセンシングされ得る。差動センシングコンポーネントは、本明細書でより詳細に、図５を少なくとも参照しながら論じられる。高い信頼性の反転ビットは、第３のビット修復コンポーネント２６５にその後提供され得る。ロバストセンシングコンポーネント２７５が使用される場合、フリップビットジェネレータ２７０は、高い信頼性の反転ビットをビットフリッピングコンポーネント２５５へルーティングするスイッチ又はワイヤを含み得、例えば、生成された高い信頼性の反転ビットは、フリップビットとして使用され得る。
【００６１】
コードワードに対して単一の反転ビットが使用される場合、データコンポーネント２２５又は制御コンポーネント２３０を使用してコードワードを処理する前に、及び反転ビットに対する誤り訂正技術を用いることなく、単一の高い信頼性の反転／フリップビットを生成するために、よりロバスト性のあるメモリセルが使用され得る。幾つかの場合、メモリアレイ内のその他のメモリセルよりも誤ったデータを生み出す可能性が低い（例えば、１ｅ−１８以下のＲＢＥＲ）ロバスト性のあるメモリセル内に単一の反転ビットは蓄積される。例えば、メモリセルは、他のメモリセルよりも大きなセンシングウィンドウを有するように構築され得、異なるメモリ技術（例えば、ＦｅＲＡＭに代わりＤＲＡＭ）を使用し得る等である。コードワードに対する反転ビットを蓄積するために単一のメモリセル（例えば、ロバスト性のあるメモリセル）が使用される場合、フリップビット及び反転ビットは同じであり得、フリップビットジェネレータ２７０は、反転／フリップビットをビットフリッピングコンポーネント２５５へルーティングするためのスイッチ又はワイヤを含み得、例えば、反転ビットは、幾つかの場合ではフリップビットとして使用され得る。
【００６２】
フリップビットジェネレータ２７０は、生成されたフリップビットをビットフリッピングコンポーネント２５５へ送信し得る。フリップビットは、誤り識別コンポーネント２３５がシンドロームビットを生成及び／又は送信する間にビットフリッピングコンポーネント２５５へ送信され得、例えば、ビットフリッピングコンポーネント２５５は、シンドロームビットがビット訂正コンポーネント２５０へ送信される前又は間に、フリップビットをビットフリッピングコンポーネント２５５へ送信し得る。幾つかの場合、フリップビットジェネレータ２７０は、ビットフリッピングコンポーネント２５５を介して誤り識別コンポーネント２３５から電気的に絶縁され得る。すなわち、誤り識別コンポーネント２３５の出力は、フリップビットジェネレータ２７０の出力に影響を及ぼさなくてもよく、又はフリップビットの生成は、シンドロームビットの生成とは無関係に、又はシンドロームビットの生成を参照することなく実施され得る。
【００６３】
誤り識別コンポーネント２３５は、第１のビット修復コンポーネント２４５から受信されたデータビット内の誤りを識別するように構成され得る。幾つかの場合、誤り識別コンポーネント２３５は、（例えば、ハミング符号を使用して）ビット修復コンポーネント２６０から受信された誤り訂正ビットに基づいて、データビット内の誤りを識別し得る。誤り識別コンポーネント２３５は、データ及び誤り訂正ビットに基づいてシンドロームビットを生成し得、シンドロームビットをビット訂正コンポーネント２５０へ送信し得る。誤り識別コンポーネント２３５は、連続又は並列の仕方でシンドロームビットをビット訂正コンポーネント２５０へ送信し得る。メモリセクション全体に対するシンドロームビットをビット訂正コンポーネント２５０に提供することは、伝搬遅延と関連付けられ得る。
【００６４】
グローバルデータ線２４０は、読み出しコンポーネント２００を通じて処理されたデータビット（“グローバルデータビット”）を、リクエストするデバイスへ送信するように構成され得る。
【００６５】
幾つかの場合、第１のビット修復コンポーネント２４５、ビット訂正コンポーネント２５０、ビットフリッピングコンポーネント２５５、第２のビット修復コンポーネント２６０、ビット修復コンポーネント２６５、及びフリップビットジェネレータ２７０は、メモリセクション全体に対して単一のコンポーネントとして各々実装され得る。他の場合、第１のビット修復コンポーネント２４５、ビット訂正コンポーネント２５０、ビットフリッピングコンポーネント２５５、第２のビット修復コンポーネント２６０、ビット修復コンポーネント２６５、及びフリップビットジェネレータ２７０は、メモリセクション全体のコードワード毎に複数のコンポーネントとして各々実装され得る。例えば、複数のメモリセクションを含む読み出しコンポーネント２００は、１つ以上の第１のビット修復コンポーネント２４５、１つ以上のビット訂正コンポーネント２５０、１つ以上のビットフリッピングコンポーネント２５５、１つ以上の第２のビット修復コンポーネント２６０、１つ以上のビット修復コンポーネント２６５、及び１つ以上のフリップビットジェネレータ２７０を含み得る。
【００６６】
図３は、本開示の様々な態様に従った強化されたビットフリッピングスキームを使用する例示的なメモリ動作の態様を説明する。フローチャート３００は、強化されたビットフリッピングスキームに従って、一例として、図２の読み出しコンポーネント２００等の１つ以上のメモリコンポーネントを動作する態様を説明する。
【００６７】
本明細書に説明されるように、コードワードのデータビットに依存するコードワードの反転ビットに対して誤り訂正を実施することは、メモリシステムにレイテンシを導き得る。また、このレイテンシは、伝搬遅延に起因してメモリセクション全体から情報を読み出す場合に悪化し得る。このレイテンシを減らすために、メモリシステムは、コードワードの反転ビットに対して誤り訂正を実施するのを控え得、コードワードのデータビットの誤り訂正と並行してフリップビットを生成し得る。レイテンシを減らすための例は、フローチャート３００の文脈で論じられ得る。
【００６８】
ブロック３０５において、メモリシステムは、例えば、ユーザアプリケーションのために、メモリアレイ内に情報ビットを蓄積し得る。情報ビットを蓄積することは、１つ以上のメモリセクションのコードワード内にデータビットと、対応する制御ビットを蓄積することを含み得る。幾つかの場合、制御ビットは、冗長ビット、誤り訂正ビット（例えば、パリティビット）、及び／又は反転ビットを含み得る。
【００６９】
ブロック３１０において、メモリシステムは、例えば、信頼性の理由のために、メモリセクションの１つ以上のコードワードの情報ビットをフリッピングし得る。データビットをフリッピングすることは、元々蓄積された値（例えば、ブロック３０５において蓄積された値）から、異なる値（例えば、反対の値、論理１に対する論理０）にデータ及び制御ビットをフリッピングすること、又はデータ及び制御ビットを異なる値から元々蓄積された値に戻してフリッピングすることを含み得る。反対の値を蓄積するためにフリッピングされたデータ及び制御ビットは、反転状態にあると称され得る。情報ビットをフリッピングした後、メモリシステムは、コードワードのデータ及び／又は制御ビットが反転状態にあるか否かを指し示すコードワードに対する１つ以上の反転ビットをセットし得る。
【００７０】
例えば、論理値１を有するコードワードに対する反転ビットは、コードワードが反転状態にあることを指し示し得、論理値０を有するコードワードに対する反転ビットは、コードワードが元々の／期待される状態にあることを指し示し得る。幾つかの場合、フリッピングは、メモリシステムの内部で実施され得、したがって、ユーザアプリケーション及びその他のメモリコンポーネントは、コードワード内に蓄積された情報が元々蓄積された何らかから変化したことを知らなくともよい。したがって、メモリシステムは、コードワード内に蓄積された情報を、リクエストするデバイスに配送する前に、送信された何れのデータが反転されているか、又は反転された情報ビットを元々の状態に戻しているかを、リクエストするデバイスに指し示し得る。
【００７１】
ブロック３１５において、メモリシステムは、例えば、ユーザアプリケーション又は別のメモリコンポーネントから、１つ以上のコードワード内に蓄積されたデータに対するリクエストを受信し得る。データのリクエストに応答して、メモリシステムは、メモリセクション全体にアクセスし得る。すなわち、メモリシステムは、メモリセクション内の各メモリセル内に蓄積された論理状態をセンシングし得る。センシングされた論理状態は、情報ビットを処理し得る読み出しコンポーネント２００へ、対応する情報ビットとしてその後送信され得る。情報ビットは、１つ以上のコードワードに対するデータ及び制御ビットを含み得る。本明細書で論じるように、読み出しコンポーネント２００は、メモリセクションのコードワード毎にデータ及び制御ビットを別々に処理し得る。ブロック３２０〜３５０は、こうしたコードワードの処理の態様を説明する。
【００７２】
ブロック３２０において、読み出しコンポーネント２００は、冗長修復と称される処理の間に、コードワード毎に（例えば、第１のビット修復コンポーネント２４５、第２のビット修復コンポーネント２６０、及び第３のビット修復コンポーネント２６５において）特定のデータ及び制御ビットを冗長ビットと置換し得る。修復されたデータビットは、誤り識別コンポーネント２３５及びビット訂正コンポーネント等の誤り訂正回路へ送信され得る。修復された制御ビットは、誤り識別コンポーネント２３５及びフリップビットジェネレータ２７０へ送信され得る。幾つかの場合、冗長修復の期間は、冗長ビットがメモリセクションに渡って伝搬する間の時間を含む。
【００７３】
ブロック３２５において、誤り識別コンポーネント２３５は、コードワード毎に誤り訂正を実施し得る。誤り訂正の間、誤り識別コンポーネント２３５は、（もしあれば）何れのデータビットが破損しているかを識別する、コードワードのデータビットに対するシンドロームビットを生成し得る。幾つかの場合、シンドロームビットは、コードワードのデータビット、誤り訂正ビット、及び／又は反転ビットに基づいて生成される。ビット訂正コンポーネント２５０は、シンドロームビットを受信し得、例えば、識別されたデータビットの論理値をフリッピングすることによって、破損していると識別されている任意のデータビットを訂正し得る。
【００７４】
コードワード毎にシンドロームビットを生成した後、誤り識別コンポーネント２３５は、シンドロームビットをデータコンポーネント２２５へ送り得る。メモリセクションのコードワード毎にシンドロームビットを送ることは、（例えば、メモリセクションの物理的サイズに起因する）伝搬遅延、及び（例えば、特に、シンドロームビットが連続的に処理される場合には）処理遅延によって遅く成り得る。読み出しコンポーネント２００は、コードワード毎のシンドロームビットを制御コンポーネント２３０に分散する間に発生する伝搬遅延を導くことを避けるために、コードワードの反転ビットに対するシンドロームビットを生成するのを控え得る。幾つかの場合、シンドロームビットは、コードワードに対するフリップビットを生成する間又は後に、コードワードのデータビットに対して生成され得、幾つかの場合、誤り識別コンポーネント２３５は、フリップビットがビットフリッピングコンポーネント２５５へ送信された後に、シンドロームビットをビット訂正コンポーネント２５０へ送信し得る。
【００７５】
ブロック３３０において、フリップビットジェネレータ２７０は、各コードワードの反転ビットの値に基づいて、コードワード毎にフリップビットを生成し得る。幾つかの場合、ブロック３２５において論じられるフリップビットの生成及び誤り訂正の態様は、同時に実施される。例えば、フリップビットは、シンドロームビットと同時に、又はシンドロームビットがデータコンポーネント２２５へ配送されている間に生成され得る。フリップビットジェネレータ２７０は、コードワード毎のフリップビットをビットフリッピングコンポーネント２５５へ送信し得る。幾つかの場合、フリップビットは、シンドロームビットの少なくとも一部分がビット訂正コンポーネント２５０へ配送される前にビットフリッピングコンポーネント２５５へ送信され得る。幾つかの場合、フリップビットは、訂正されたデータビットの少なくとも一部分がビット訂正コンポーネント２５０からビットフリッピングコンポーネント２５５へ送信される前にビットフリッピングコンポーネント２５５へ送信され得る。この方法では、シンドロームビットを送信することにより発生する伝搬遅延は和らげられ、データビットに対する処理速度は増加し得、例えば、ブロック３２０〜３５０に対する合計処理時間は５ｎｓから４ｎｓに減少し得る。
【００７６】
ブロック３５０において、ビットフリッピングコンポーネント２５５は、１つ以上のコードワードに対する訂正されたデータビット及びフリップビットを受信し得、対応するフリップビットの値に基づいて、コードワードに対する訂正されたデータビットの値をフリッピングし得る。例えば、ビットフリッピングコンポーネント２５５は、例えば、フリップビットの値が論理１であると判定することに基づいて、コードワード内に蓄積されたデータビットが反転状態にあることを指し示すコードワードに対する訂正されたデータビット及びフリップビットを受信し得る。
【００７７】
幾つかの場合、データビットが反転状態にあることを、コードワードに対する反転ビットの内の少なくとも幾つか（例えば、過半数又は全て）が指し示すとフリップビットジェネレータ２７０が判定することに基づいて、フリップビットは、データビットが反転状態にあることを指し示し得る。したがって、ビットフリッピングコンポーネント２５５は、データビットをそれらの元々蓄積された値に戻すために、訂正されたデータビットをフリッピングし得る。ビットフリッピングコンポーネント２５５は、メモリバッファ等のリクエストするデバイスへ、フリッピングされたデータビット（又は“グローバルデータビット”）をその後送信し得る。
【００７８】
或いは、ビットフリッピングコンポーネント２５５は、例えば、フリップビットの値が論理０を指し示すと判定することに基づいて、コードワード内に蓄積されたデータビットが元々の状態にあることを指し示すコードワードに対する訂正されたデータビット及びフリップビットを受信し得る。幾つかの場合、データビットが反転状態にあることを、コードワードに対する反転ビットの内の複数（例えば、少数（minority））が指し示すとフリップビットジェネレータ２７０が判定することに基づいて、フリップビットは、データビットが反転状態にないことを指し示す。したがって、ビットフリッピングコンポーネント２５５は、訂正されたデータビットをフリッピングすることなく、訂正されたデータビットを、リクエストするデバイスへ送信し得る。
【００７９】
本明細書で論じるように、例えば、フリップビットを生成するために破損した反転ビットを使用することに起因して、誤り訂正されていないフリップビットを使用することは、意図しないフリッピング動作をもたらし得る。レイテンシを依然として減らしながらフリップビットの信頼性を増加させるために、メモリシステムは、代替的な誤り訂正技術及び／又は誤り訂正以外の技術を用い得る。信頼性を増加させるための例は、ブロック３５０の文脈で論じられ得る。
【００８０】
コードワードに対して複数の反転ビットが使用される場合、フリップビットジェネレータ２７０は、コードワードの情報が反転状態にあることを反転ビットの過半数が指し示すか否かを判定するために、図６及び図７を参照しながらより詳細に論じられるように、多数決回路を用いることによって反転ビットの代替的な誤り訂正を実施し得る。実例として、フリップビットジェネレータ２７０は、反転ビットの各々により蓄積された値を比較することによって、データビットが反転状態にあることを、コードワードの反転ビットの過半数が指し示すと判定することによって、コードワードのデータビットが反転状態にあると判定し得る。又は、フリップビットジェネレータ２７０は、反転ビットの各々により蓄積された値を比較することによって、データビットが反転状態にあることを、コードワードの反転ビットの少数が指し示すと判定することによって、コードワードのデータビットが元々の状態にあると判定し得る。複数の反転ビットを使用してフリップビットを生成することは、使用される反転ビットの数の関数としてフリップビットのＵＢＥＲを増加させ得る。
【００８１】
幾つかの例では、コードワードに対するフリップビットと関連付けられた第１の誤り率は、コードワードのデータビットと関連付けられた第２の誤り率以上であり得る。例えば、多数決スキームを使用して生成されたコードワードに対するフリップビットのＵＢＥＲは、コードワードのデータビットのＵＢＥＲ以上であり得る。実例として、３つの反転ビットを含むコードワードに対しては、フリップビットのＵＢＥＲは、メモリシステム内に蓄積された個々の情報ビットのＲＢＥＲ２の３Ｃ２倍であり得、例えば、単一の未訂正の情報ビットのＲＢＥＲは１ｅ−１０であり得、フリップビットのＵＢＥＲは３ｅ−２０であり得る。
【００８２】
付加的に又は代替的に、コードワードに対して複数の反転ビットが使用される場合、読み出しコンポーネント２００は、反転ビットの誤り訂正を実施することなく、フリップビットとして使用され得る単一の高い信頼性の反転ビットを生成するために、ロバスト性のあるセンシングスキームを用い得る。ロバスト性のあるセンシングスキームにより生成された反転ビットの信頼性（例えば、反転ビットのＲＢＥＲ）は、メモリデバイス内の誤り訂正された情報ビットの信頼性（例えば、誤り訂正された情報ビットのＵＢＥＲ）よりも高くてもよい。ロバスト性のあるセンシングスキームは、図５を参照しながらより詳細に論じられる。
【００８３】
コードワードに対して単一の反転ビットが使用される場合、読み出しコンポーネント２００は、ロバスト性のあるメモリセル内に単一の反転ビットを蓄積し得、反転ビットの誤り訂正を実施することなく、単一の高い信頼性の反転ビットをフリップビットとして使用し得る。幾つかの場合、反転ビットの信頼性（例えば、反転ビットのＲＢＥＲ）は、メモリデバイス内の誤り訂正された情報ビットの信頼性（例えば、誤り訂正された情報ビットのＵＢＥＲ）よりも高くてもよい。上の技術の各々は、誤り訂正技術を使用してフリップビットを生成することと同等以上の信頼性を有するフリップビットを生成するために使用され得る。
【００８４】
コードワード毎に単一の反転ビットが使用される場合、コードワードに対するフリップビットを生成することは、反転ビットの値をコピーすること又はフリップビットジェネレータ２７０を通じて反転ビットを送信することを含み得る。コードワード毎に複数の反転ビットが使用される場合、コードワードに対するフリップビットを生成することは、複数の反転ビットの値に基づいてフリップビットの値を計算することを含み得る。或いは、単一の高い信頼性の反転ビットを生成するためにコードワード毎に複数の反転ビットが使用される場合、コードワードに対するフリップビットを生成することは、反転ビットの値をコピーすること又はフリップビットジェネレータ２７０を通じて反転ビットを送信することを含み得る。
【００８５】
幾つかの場合、メモリシステムは、フリップビットの生成と同時にデータビットに対する誤り訂正を実施し得ると共に、フリップビットの信頼性を増加させるために、代替的な誤り訂正／その他の技術を使用し得る。この方法では、メモリデバイスの信頼性は、メモリデバイスのスループットをも増加させながら有利に維持され得る。
【００８６】
図４は、本開示の様々な態様に従った強化されたビットフリッピングスキームのための例示的なメモリ構成を説明する。メモリ構成４００は、デジタル情報を蓄積するために使用され得る。メモリ構成４００は、メモリセクション４０５等のメモリセクション、コードワード４１０等のコードワード、及びメモリユニット４２５等のメモリユニットを含み得る。
【００８７】
メモリセクション４０５は、数百又は数千のメモリセル内に蓄積された情報を包含し得る。幾つかの場合、メモリセルは、物理的に長距離（例えば、〜１ｍｍ）に渡って及び得る。幾つかの場合、メモリセクション４０５は、メモリのページ（例えば、１０２４ビット）に対応し、コードワード４１０を含む複数のコードワード（例えば、８つのコードワード）を含む。
【００８８】
コードワード４１０は、数百のメモリセルを包含し得る。幾つかの場合、コードワード４１０は、プリフェッチサイズ（例えば、１２８ビット）に対応し、データ部分４１５及び制御部分４２０を含む。データ部分４１５は、アプリケーションデータ等のデータビットを蓄積し得る。制御部分４２０は、冗長ビット、誤り訂正ビット、及び反転ビット等の制御ビットを蓄積し得る。制御ビットは、データ部分４１５内に蓄積されたデータビットの処理を容易にするため、及びデータ部分４１５内に蓄積されたデータビットの信頼性を増加させるために使用され得る。データ部分４１５及び制御部分４２０は、メモリユニットに更に分割され得る。メモリユニット４２５等のメモリユニットは、少数のメモリセル（例えば、２、４、又は８）を包含し得る。幾つかの場合、メモリユニット４２５は複数のビットに対応し得る。
【００８９】
幾つかの場合、コードワード４１０内に蓄積されたデータが別のデバイスによりリクエストされた場合に、メモリセクション４０５の全てがアクセスされる。幾つかの場合、メモリセクション４０５の全てにアクセスすることは、例えば、メモリセクション４０５内のメモリセルの物理的な長距離に起因して、メモリ動作の間の伝搬遅延をもたらす。
【００９０】
本明細書で論じるように、これらの伝搬遅延は、動作の処理ステップが連続的に実施される場合に悪化し得、伝搬遅延を減らすために、メモリシステムは、フリップビットの生成及びコードワードに対するデータビットの誤り訂正等の幾つかのステップを並列に実施し得る。
【００９１】
本明細書でまた論じるように、代替的な誤り訂正技術を使用して、生成されたフリップビットの信頼性を増加させるために、メモリシステムは、コードワード毎に複数の反転ビットを利用し得る。幾つかの例では、複数の反転ビットは、制御部分４２０内に蓄積され得る。例えば、３つの反転ビットは、９つの誤り訂正ビット及び１２個の冗長ビットと共に、制御部分４２０内に蓄積され得る。別の例では、２つの反転ビットは、９つの誤り訂正ビット、１２個の冗長ビット、及び１つの未使用ビットと共に、制御部分４２０内に蓄積され得る。
【００９２】
図５は、本開示の様々な態様に従った強化されたビットフリッピングスキームのための例示的なロバストセンシングコンポーネントを説明する。ロバストセンシングスキーム５００は、複数の反転ビットに基づいて、単一の高い信頼性の反転ビットを生成するために使用され得、図２のロバストセンシングコンポーネント２７５の一例であり得る。ロバストセンシングスキーム５００は、第１の入力線５０５、第２の入力線５１０、差動センシングコンポーネント５１５、及び出力線５２０を含み得る。
【００９３】
第１の入力線５０５は、第１のメモリセルにおいて蓄積された論理状態を差動センシングコンポーネント５１５に通信するために使用され得る。第１の入力線５０５は、導電トレース又は無線通信経路であり得る。
【００９４】
第２の入力線５１０は、第２のメモリセルにおいて蓄積された論理状態を差動センシングコンポーネント５１５に通信するために使用され得る。第２の入力線５１０は、導電トレース又は無線通信経路であり得る。
【００９５】
差動センシングコンポーネント５１５は、第１及び第２のメモリセル内に蓄積された論理値から単一の高い信頼性のビットを生成するために使用され得る。幾つかの場合、第１のメモリセルは、コードワードに対する第１の反転ビットの値を蓄積するために使用され得、第２のメモリセルは、コードワードに対する第２の反転ビットの値を蓄積するために使用され得る。第１及び第２の反転ビットの論理値は同じであり得る。第１のメモリセルは、第１の方向に分極され得、第２のメモリセルは、第２の方向に分極され得る。こうしたスキームを使用することは、集合的メモリセルに対するセンシングウィンドウを二倍にし得、リファレンス電圧が使用されなくてもよい。センシングされる場合、メモリセルは、蓄積された反転ビットに基づいて、高電圧及び低電圧を生成し得、各電圧は、差動アンプに印加され得、単一のより高い信頼性の反転ビットを生成する。
【００９６】
出力線５２０は、差動センシングコンポーネント５１５により生成された高い信頼性の反転ビットを読み出しコンポーネントに通信するために使用され得る。幾つかの場合、高い信頼性の反転ビットは、フリップビットを生成するために、又はフリップビットとして使用され得る。出力線５２０は、導電トレース又は無線通信経路であり得る。
【００９７】
図６は、本開示の様々な実施形態に従った強化されたビットフリッピングスキームのための例示的なフリップビットジェネレータを説明する。フリップビットジェネレータ６００は、複数の反転ビットに基づいてフリップビットを生成するために使用され得、図２のフリップビットジェネレータ２７０の一例であり得る。フリップビットジェネレータ６００は、入力線６０５、多数決コンポーネント６１０、及び出力線６１５を含み得る。
【００９８】
入力線６０５は、コードワードの複数の反転ビットの値を多数決コンポーネント６１０に通信するために使用され得る。入力線６０５は、導電トレース又は無線通信経路であり得る。幾つかの場合、入力線６０５は、３つ以上の入力線であり得る。幾つかの場合、入力線６０５は、単一の入力線であり得、連続的な方法で複数の反転ビットを多数決コンポーネント６１０へ配送し得る。
【００９９】
多数決コンポーネント６１０は、誤り訂正スキームを実装するために、及びコードワードのデータビットが反転又は元々の状態にあることを反転ビットの内の少なくとも幾つか（例えば、過半数又は全て）が指し示すか否かを判定するために使用され得る。多数決コンポーネント６１０はまた、反転ビットの数の関数としてフリップビットの信頼性を増加させ得る。例えば、３つの反転ビットに対しては、フリップビットの信頼性は、ＲＢＥＲ２の３Ｃ２倍であり得、４つの反転ビットに対しては、フリップビットの信頼性は、ＲＢＥＲ３の４Ｃ３倍であり得、５つの反転ビットに対しては、フリップビットの信頼性は、ＲＢＥＲ３の６Ｃ３倍であり得る。
【０１００】
幾つかの例では、多数決コンポーネント６１０は、例えば、２つの反転ビットの各々の値が論理１であることに基づいて、コードワードのデータビットが反転状態にあることを指し示す３つの反転ビットの内の２つを識別し得、データビットをフリッピングするようにビットフリッピングコンポーネントを発動するフリップビットを生成し得、例えば、多数決コンポーネント６１０は、データビットが反転状態にあると判定し得る。或いは、多数決コンポーネント６１０は、コードワードのデータビットが反転状態にあることを３つの反転ビットの内の１つが指し示すことを識別し得、データビットをフリッピングするようにビットフリッピングコンポーネントを発動しないフリップビットを生成し得、例えば、多数決コンポーネント６１０は、データビットが元々の状態にあると判定し得る。
【０１０１】
出力線６１５は、図２を参照しながら論じたようなビットフリッピングコンポーネント２５５等のビットフリッピングコンポーネントに、生成されたフリップビットを通信するために使用され得る。出力線６１５は、導電トレース又は無線通信経路であり得る。
【０１０２】
図７は、本開示の様々な態様に従った強化されたビットフリッピングスキームのための例示的な多数決回路を説明する。多数決回路７００は、誤り訂正スキームを実装するために使用され得る。幾つかの場合、多数決回路７００は、３つの反転ビットを使用してフリップビットを生成するために使用され得、図６の多数決コンポーネント６１０の一例であり得る。多数決回路７００は、第１の電圧源７０５、第２の電圧源７１０、第３の電圧源７１５、第４の電圧源７２０、第５の電圧源７４０、第６の電圧源７４５、第７の電圧源７５０、第８の電圧源７５５、第１の入力線７２５、第２の入力線７３０、第３の入力線７３５、出力線７６０、ｐ型トランジスタ７６５、及びｎ型トランジスタ７７０を含み得る。
【０１０３】
第１の電圧源７０５、第２の電圧源７１０、第３の電圧源７１５、及び第４の電圧源７２０は、高電圧（例えば、正電圧）を多数決回路７００に提供し得る。幾つかの場合、第１の電圧源７０５、第２の電圧源７１０、第３の電圧源７１５、及び第４の電圧源７２０は、単一の電圧源を使用して実装され、例えば、第１の電圧源７０５、第２の電圧源７１０、第３の電圧源７１５、及び第４の電圧源７２０の各々は、高供給レール（例えば、３．３Ｖレール）に関連付けられ得る。
【０１０４】
第５の電圧源７４０、第６の電圧源７４５、第７の電圧源７５０、及び第８の電圧源７５５は、低電圧（例えば、仮想接地又は正電圧）を多数決回路７００に提供し得る。幾つかの場合、第５の電圧源７４０、第６の電圧源７４５、第７の電圧源７５０、及び第８の電圧源７５５は、単一の電圧源を使用して実装され、例えば、第５の電圧源７４０、第６の電圧源７４５、第７の電圧源７５０、及び第８の電圧源７５５の各々は、仮想接地に関連付けられ得る。
【０１０５】
第１の入力線７２５は、第１の反転ビットの値を多数決回路７００に通信するために使用され得る。第１の入力線７２５は、複数のｐ型トランジスタ７６５及び複数のｎ型トランジスタ７７０に接続され得る。
【０１０６】
第２の入力線７３０は、第２の反転ビットの値を多数決回路７００に通信するために使用され得る。第２の入力線７３０は、複数のｐ型トランジスタ７６５及び複数のｎ型トランジスタ７７０に接続され得る。
【０１０７】
第３の入力線７３５は、第３の反転ビットの値を多数決回路７００に通信するために使用され得る。第３の入力線７３５は、複数のｐ型トランジスタ７６５及び複数のｎ型トランジスタ７７０に接続され得る。
【０１０８】
多数決回路７００は、多数決回路７００に提供される反転ビットの過半数の値に対応する出力値を生成し得る。すなわち、多数決回路は、３つの反転ビットの内の少なくとも２つにより保持される値と同じ値である値を有する出力を生成し得る。
【０１０９】
例えば、第１の入力線７２５に対応する第１の反転ビットが論理値１に対応する高電圧（例えば、３Ｖ）を有し、第２の入力線７３０に対応する第２の反転ビットが論理値０に対応する低電圧を有し、第３の入力線７３５に対応する第３の反転ビットが論理値１に対応する高電圧を有する場合、多数決回路７００は、高電圧（例えば、３．３Ｖ）を有する出力を生成し得る。又は、第１の入力線７２５に対応する第１の反転ビットが論理値０に対応する低電圧（例えば、０Ｖ）を有し、第２の入力線７３０に対応する第２の反転ビットが論理値０に対応する低電圧を有し、第３の入力線７３５に対応する第３の反転ビットが論理値１に対応する高電圧を有する場合、多数決回路７００は、低電圧（例えば、０Ｖ）を有する出力を生成し得る。
【０１１０】
出力線７６０は、多数決回路７００の出力値をビットフリッピングコンポーネント等の別のコンポーネントに通信するために使用され得る。幾つかの場合、多数決回路７００により生成される出力値は、フリップビットと同じであり得る。幾つかの場合、フリップビットに対する高電圧は、該フリップビットに対応するコードワード内のデータビットをフリッピングするようにビットフリッピングコンポーネントを発動する。また、フリップビットに対する低電圧は、フリッピング動作を実施することなく、該フリップビットに対応するコードワード内のデータビットをビットフリッピングコンポーネントに送信させ得る。
【０１１１】
図８は、本開示の様々な実施形態に従った強化されたビットフリッピングスキームをサポートするメモリアレイのブロック図である。ブロック図８００は、図１を参照しながら論じたようなメモリアレイ１００の一例であり得るメモリアレイ１００−ａを含み得る。メモリアレイ１００−ａは、電子メモリ装置と称され得、図１を参照しながら説明したメモリコントローラ１４０、ワード線１１０、ビット線１１５、センスコンポーネント１２５、及びメモリセル１０５の例示であり得るメモリコントローラ１４０−ａ、ワード線１１０−ａ、ビット線１１５−ａ、センスコンポーネント１２５−ａ、及びメモリセル１０５−ａを含む。メモリアレイ１００−ａはまた、リファレンスコンポーネント８２０、ラッチ８２５、及び読み出しコンポーネント８５０を含み得る。メモリアレイ１００−ａのコンポーネントは、相互に電子通信し得、図１〜図７を参照しながら説明した機能を実施し得る。
【０１１２】
メモリコントローラ１４０−ａは、他のコンポーネントと組み合わせて、メモリアレイ１００−ａ全体を通じて電圧を印加し、データをメモリセル１０５−ａに書き込み得、データをメモリセル１０５から読み出し得、図１〜図７を参照しながら説明したようにメモリアレイ１００−ａを一般的に動作し得る。メモリコントローラ１４０−ａは、バイアスコンポーネント８１０及びタイミングコンポーネント８１５を含み得る。幾つかの場合、メモリコントローラは、ビットフリッピングコンポーネント８４５を含み得る。メモリコントローラ１４０−ａは、メモリセル１０５−ａ、センスコンポーネント１２５−ａ、及びリファレンスコンポーネント８２０と電子通信し得る。
【０１１３】
バイアスコンポーネント８１０は、ワード線１１０−ａ又はビット線１１５−ａを、それらの様々なノードに電圧を印加することによって活性化するように（例えば、メモリコントローラ１４０−ａによって）構成され得る。例えば、バイアスコンポーネント８１０は、本明細書で説明するようにメモリセル１０５−ａを読み出す又は書き込むための電圧を印加するように構成され得る。幾つかの場合、メモリコントローラ１４０−ａは、図１を参照しながら説明したように、行デコーダ、列デコーダ、又はそれら両方を含み得る。このことは、メモリコントローラ１４０−ａが１つ以上のメモリセル１０５にアクセスすることを可能にし得る。バイアスコンポーネント８１０はまた、センスコンポーネント１２５−ａに対するリファレンス信号を生成するために、リファレンスコンポーネント８２０に電位を提供し得る。また、バイアスコンポーネント８１０は、センスコンポーネント１２５−ａの動作のための電位を提供し得る。
【０１１４】
タイミングコンポーネント８１５は、本明細書で論じる、読み出し及び書き込み等のメモリ機能を実施するためのスイッチング及び電圧印加に対するタイミングを含む、様々なワード線選択又はプレートバイアスのタイミングを制御するように構成され得る。幾つかの場合、タイミングコンポーネント８１５はバイアスコンポーネント８１０の動作を制御し得る。
【０１１５】
リファレンスコンポーネント８２０は、センスコンポーネント１２５−ａに対するリファレンス信号を生成するための様々なコンポーネントを含み得る。リファレンスコンポーネント８２０は、リファレンス信号を生み出すように構成された回路を含み得る。
【０１１６】
センスコンポーネント１２５−ａは、メモリセル１０５−ａからの信号を、リファレンスコンポーネント８２０からのリファレンス信号と比較し得る。論理状態を判定すると、センスコンポーネントは、出力をラッチ８２５内にその後蓄積し得、それは、メモリアレイ１００−ａが一部である電子デバイスの動作に従って使用され得る。幾つかの場合、リファレンスコンポーネント８２０、センスコンポーネント１２５−ａ、及びラッチ８２５は、メモリコントローラ１４０−ａのコンポーネントであり得る。
【０１１７】
ビットフリッピングコンポーネント８４５は、強化されたビットフリッピングスキームの態様を管理するために使用され得る。実例として、ビットフリッピングコンポーネント８４５は、ビットフリッピング動作のためのタイミング情報をバイアスコンポーネント８１０及び／又はタイミングコンポーネント８１５に提供するために使用され得る。ビットフリッピングコンポーネント８４５はまた、フリップビット生成コンポーネント及び／又はビットフリッピングコンポーネントを含み得る。
【０１１８】
読み出しコンポーネント８５０は、ラッチ８２５において蓄積された情報ビットを処理するために使用され得る。読み出しコンポーネント８５０は、図２を参照しながら論じたような読み出しコンポーネント２００の態様を含み得る。
【０１１９】
幾つかの場合、メモリコントローラ１４０−ａは、読み出しコンポーネント８５０と組み合わせて、データビット及び反転ビットを含むコードワードの誤り訂正を実施し得、反転ビットは、データビットが反転状態にあるか否かを指し示す。幾つかの場合、コードワードのデータ及び反転ビットは、メモリセル１０５−ａ内に蓄積され、データ及び反転ビットの値は、センスコンポーネント１２５−ａによりセンシングされる。メモリコントローラ１４０−ａはまた、読み出しコンポーネント８５０と組み合わせて、複数の反転ビットにより蓄積された値に少なくとも部分的に基づいてフリップビットを、誤り訂正と同時に生成し得、フリップビットをビットフリッピングコンポーネントへ送信し得る。幾つかの場合、ビットフリッピングコンポーネントは、読み出しコンポーネント８５０内に含まれる。
【０１２０】
幾つかの場合、メモリコントローラ１４０−ａは、読み出しコンポーネント８５０と組み合わせて、データビットと、データビットが反転状態にあるか否かを指し示す反転ビットとを含むコードワードに対して、データビットが反転状態にあることを反転ビットの過半数が指し示すか否かを判定し得る。幾つかの場合、コードワードのデータ及び反転ビットはメモリセル１０５−ａ内に蓄積され、データ及び反転ビットの値はセンスコンポーネント１２５−ａによってセンシングされる。メモリコントローラ１４０−ａはまた、読み出しコンポーネント８５０と組み合わせて、データビットが反転状態にあることを反転ビットの過半数が指し示すか否かを判定することに少なくとも部分的に基づいてフリップビットを生成し得、フリップビットをビットフリッピングコンポーネントへ送信し得る。幾つかの場合、ビットフリッピングコンポーネントは読み出しコンポーネント８５０内に含まれ得る。
【０１２１】
図９は、本開示の様々な実施形態に従った強化されたビットフリッピングスキームをサポートするシステムを説明する。システム９００は、デバイス９０５を含み、デバイス９０５は、様々なコンポーネントに接続する、又は様々なコンポーネントを物理的にサポートするためのプリント回路基板であり得、又は該プリント回路基板を含み得る。デバイス９０５は、図１及び図８を参照しながら説明したメモリアレイ１００の一例であり得るメモリアレイ１００−ｂを含む。メモリアレイ１００−ｂは、図１及び図８を参照しながら説明したようなメモリコントローラ１４０及びメモリセル１０５の例示であり得るメモリコントローラ１４０−ｂ及びメモリセル１０５−ｂを含み得る。デバイス９０５はまた、プロセッサ９１０、ＢＩＯＳコンポーネント９１５、周辺コンポーネント９２０、入力／出力制御コンポーネント９２５を含み得る。デバイス９０５のコンポーネントは、バス９３０を通じて相互に電子通信し得る。
【０１２２】
プロセッサ９１０は、メモリコントローラ１４０−ｂを通じてメモリアレイ１００−ｂを動作するように構成され得る。幾つかの場合、プロセッサ９１０は、図１及び図８を参照しながら説明したメモリコントローラ１４０の機能を実施し得る。その他の場合、メモリコントローラ１４０−ｂは、プロセッサ９１０に統合され得る。プロセッサ９１０は、汎用プロセッサ、デジタルシグナルプロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）若しくはその他のプログラミング可能な論理デバイス、別々のゲート又はトランジスタロジック、別々のハードウェアコンポーネントであり得、又はこれらの種類のコンポーネントの組み合わせであり得、プロセッサ９１０は、本明細書で説明する様々な機能を実施し得る。プロセッサ９１０は、例えば、様々な機能又はタスクをデバイス９０５に実施させるための、メモリアレイ１００−ｂ内に蓄積されたコンピュータ可読命令を実行するように構成され得る。
【０１２３】
ＢＩＯＳコンポーネント９１５は、ファームウェアとして動作するベーシック入力／出力システム（ＢＩＯＳ）を含むソフトウェアコンポーネントであり得、それは、システム９００の様々なハードウェアコンポーネントを初期化し得、稼働し得る。ＢＩＯＳコンポーネント９１５は、プロセッサ９１０と様々なコンポーネント、例えば、周辺コンポーネント９２０、入力／出力制御コンポーネント９２５等との間のデータの流れをも管理し得る。ＢＩＯＳコンポーネント９１５は、リードオンリーメモリ（ＲＯＭ）、フラッシュメモリ、又は任意のその他の不揮発性メモリ内に蓄積されたプログラム又はソフトウェアを含み得る。
【０１２４】
周辺コンポーネント９２０は、任意の入力若しくは出力デバイス、又はそうしたデバイスに対するインタフェースを含み得、デバイス９０５に統合される。例示として、ディスクコントローラ、音声コントローラ、画像コントローラ、イーサネットコントローラ、モデム、ユニバーサルシリアルバス（ＵＳＢ）コントローラ、シリアル若しくはパラレルポート、又はペリフェラルコンポーネントインタコネクト（ＰＣＩ）若しくはアクセラレーテッドグラフィックスポート（ＡＧＰ）スロット等の周辺カードスロットを挙げることができる。
【０１２５】
入力／出力制御コンポーネント９２５は、プロセッサ９１０と周辺コンポーネント９２０、入力デバイス９３５、又は出力デバイス９４０との間のデータ通信を管理し得る。入力／出力制御コンポーネント９２５はまた、デバイス９０５に統合されない周辺装置を管理し得る。幾つかの場合、入力／出力制御コンポーネント９２５は、外部の周辺装置への物理的接続又はポートを表し得る。
【０１２６】
入力９３５は、デバイス９０５又はそのコンポーネントへの入力を提供する、デバイス９０５の外にあるデバイス又は信号を表し得る。これは、ユーザインタフェース、又はその他のデバイスとのインタフェース若しくはその他のデバイス間のインタフェースを含み得る。幾つかの場合、入力９３５は、周辺コンポーネント９２０を介してデバイス９０５とインタフェースで接続する周辺装置であり得、又は入力／出力制御コンポーネント９２５により管理され得る。
【０１２７】
出力９４０は、デバイス９０５又はその何れかのコンポーネントからの出力を受信するように構成された、デバイス９０５の外にあるデバイス又は信号を表し得る。出力９４０の例は、表示装置、音声スピーカ、プリントデバイス、別のプロセッサ、又はプリント回路基板等を含み得る。幾つかの場合、出力９４０は、周辺コンポーネント９２０を介してデバイス９０５とインタフェースで接続する周辺装置であり得、又は入力／出力制御コンポーネント９２５により管理され得る。
【０１２８】
メモリコントローラ１４０−ｂ、デバイス９０５、及びメモリアレイ１００−ｂのコンポーネントは、それらの機能を実行するように設計された回路で作られ得る。これは、本明細書で説明される機能を実行するように構成された様々な回路素子、例えば、導電線、トランジスタ、コンデンサ、インダクタ、抵抗器、アンプ、又はその他の能動素子若しくは非能動素子を含み得る。
【０１２９】
図１０は、本開示の様々な実施形態に従った、強化されたビットフリッピングスキームのための１つ以上の方法の態様を説明する。方法１０００は、読み出し動作の間にコードワードを処理する態様を説明する。
【０１３０】
ブロック１００５において、方法は、図１〜図７を参照しながら説明したように、データビット及び反転ビットを含むコードワードの誤り訂正を実施することを含み得、反転ビットは、データビットが反転状態にあるか否かを指し示す。幾つかの例では、ブロック１００５の動作は、図１、図２、図８、及び図９を参照しながら説明したように、誤り識別コンポーネント又はメモリコントローラによって実施又は促進され得る。
【０１３１】
ブロック１０１０において、方法は、図１〜図７を参照しながら説明したように、誤り訂正と同時に、複数の反転ビットにより蓄積された値に少なくとも部分的に基づいてフリップビットを生成することを含み得る。幾つかの例では、ブロック１０１０の動作は、図１、図２、図６〜図８、及び図９を参照しながら説明したように、フリップビットジェネレータ又はメモリコントローラによって実施又は促進され得る。
【０１３２】
ブロック１０１５において、方法は、図１〜図７を参照しながら説明したように、フリップビットをビットフリッピングコンポーネントへ送信することを含み得る。幾つかの例では、ブロック１０１５の動作は、図１、図２、図８、及び図９を参照しながら説明したように、ビットフリッピングコンポーネント又はメモリコントローラによって実施又は促進され得る。
【０１３３】
図１１は、本開示の様々な実施形態に従った、強化されたビットフリッピングスキームのための１つ以上の方法の態様を説明する。方法１１００は、読み出し動作の間にコードワードを処理する態様を説明する。
【０１３４】
ブロック１１０５において、方法は、図１〜図７を参照しながら説明したように、データビットと、データビットが反転状態にあるか否かを指し示す反転ビットとを含むコードワードに対して、データビットが反転状態にあることを反転ビットの過半数が指し示すか否かを判定することを含み得る。幾つかの例では、ブロック１１０５の動作は、図１、図２、図６〜図８、及び図９を参照しながら説明したように、フリップビットジェネレータ、多数決コンポーネント、又はメモリコントローラによって実施又は促進され得る。
【０１３５】
ブロック１１１０において、方法は、図１〜図７を参照しながら説明したように、データビットが反転状態にあることを反転ビットの過半数が指し示すか否かを判定することに少なくとも部分的に基づいてフリップビットを生成することを含み得る。幾つかの例では、ブロック１１１０の動作は、図１、図２、図６〜図８、及び図９を参照しながら説明したように、フリップビットジェネレータ又はメモリコントローラによって実施又は促進され得る。
【０１３６】
ブロック１１１５において、方法は、図１〜図７を参照しながら説明したように、フリップビットをビットフリッピングコンポーネントへ送信することを含み得る。幾つかの例では、ブロック１１１５の動作は、図１、図２、図８、及び図９を参照しながら説明したように、ビットフリッピングコンポーネント又はメモリコントローラによって実施又は促進され得る。
【０１３７】
幾つかの例では、本明細書で説明されるような装置は、方法１０００等の１つ以上の方法を実施し得る。装置は、データビット及び反転ビットを含むコードワードの誤り訂正を実施することであって、反転ビットは、データビットが反転状態にあるか否かを指し示すことと、誤り訂正と同時に、複数の反転ビットにより蓄積された値に基づいてフリップビットを生成することと、フリップビットをビットフリッピングコンポーネントへ送信することとのための機構、手段、又は命令（例えば、プロセッサにより実行可能な命令を蓄積する非一時的コンピュータ可読媒体）を含み得る。
【０１３８】
本明細書で説明する方法、装置、及び非一時的コンピュータ可読媒体の内の幾つかの例は、複数の反転ビットの各々により蓄積された値に基づいて、データビットが反転状態にあり得るか否かを判定することであって、フリップビットは、データビットが反転状態にあり得るか否かを判定することに基づいて生成され得ることのための動作、機構、手段、又は命令を更に含み得る。
【０１３９】
本明細書で説明する方法、装置、及び非一時的コンピュータ可読媒体の内の幾つかの例は、複数の反転ビットの各々により蓄積された値を比較することによって、データビットが反転状態にあり得ることを反転ビットの過半数が指し示すと判定することと、データビットが反転状態にあり得ることを反転ビットの過半数が指し示すと判定することに基づいて、データビットが反転状態にあり得ると判定することとのための動作、機構、手段、又は命令を更に含み得る。
【０１４０】
本明細書で説明する方法、装置、及び非一時的コンピュータ可読媒体の内の幾つかの例は、データビットが反転状態にあり得ると判定することに基づいてデータビットをフリッピングすることと、データビットがフリッピングされ得る後にデータビットをメモリバッファへ送信することとのための動作、機構、手段、又は命令を更に含み得る。
【０１４１】
本明細書で説明する方法、装置、及び非一時的コンピュータ可読媒体の内の幾つかの例は、複数の反転ビットの各々により蓄積された値を比較することによって、データビットが反転状態にあり得ることを反転ビットの少数が指し示すと判定することと、データビットが反転状態にあり得ることを反転ビットの少数が指し示すと判定することに基づいて、データビットが元々の状態にあり得ると判定することと、データビットをメモリバッファへ送信することとのための動作、機構、手段、又は命令を更に含み得る。
【０１４２】
本明細書で説明する方法、装置、及び非一時的コンピュータ可読媒体の内の幾つかの例では、誤り訂正を実施することは、フリップビットを生成する間又は後にデータビットに対するシンドロームビットを生成することのための動作、機構、手段、又は命令を含み得る。
【０１４３】
本明細書で説明する方法、装置、及び非一時的コンピュータ可読媒体の内の幾つかの例は、ビットフリッピングコンポーネントと結合されたビット訂正コンポーネントへデータビットを送信することと、ビットフリッピングコンポーネントへフリップビットが転送され得る後にビット訂正コンポーネントへシンドロームビットを送信することのための動作、機構、手段、又は命令を更に含み得る。
【０１４４】
本明細書で説明する方法、装置、及び非一時的コンピュータ可読媒体の内の幾つかの例は、誤り訂正の間に、複数のデータビットの内のデータビットが破損し得るか否かを判定することであって、シンドロームビットは、複数のデータビットの内のデータビットが破損し得るか否かを判定することに基づいて生成され得ることのための動作、機構、手段、又は命令を更に含み得る。
【０１４５】
本明細書で説明する方法、装置、及び非一時的コンピュータ可読媒体の内の幾つかの例では、フリップビットのＲＢＥＲ又はＵＢＥＲは、複数のデータビットの内のデータビットのＵＢＥＲ以上であり得る。
【０１４６】
本明細書で説明する方法、装置、及び非一時的コンピュータ可読媒体の内の幾つかの例では、コードワード毎に誤り訂正動作を実施することと、コードワード毎に、コードワードの誤り訂正とは無関係に、反転ビットに基づいてフリップビットの値を判定することと、コードワード毎にフリップビットをビットフリッピングコンポーネントへ送信することとのための動作、機構、手段、又は命令を含み得る。
【０１４７】
幾つかの例では、本明細書で説明されるような装置は、方法１１００等の１つ以上の方法を実施し得る。装置は、データビットと、データビットが反転状態にあるか否かを指し示す反転ビットとを含むコードワードに対して、データビットが反転状態にあることを反転ビットの過半数が指し示すか否かを判定することと、データビットが反転状態にあることを反転ビットの過半数が指し示すか否かを判定することに基づいてフリップビットを生成することと、フリップビットをビットフリッピングコンポーネントへ送信することとのための機構、手段、又は命令（例えば、プロセッサにより実行可能な命令を蓄積する非一時的コンピュータ可読媒体）を含み得る。
【０１４８】
本明細書で説明する方法、装置、及び非一時的コンピュータ可読媒体の内の幾つかの例は、コードワードの誤り訂正を実施することと、誤り訂正に基づいてデータビットに対するシンドロームビットを生成することと、フリップビットをビットフリッピングコンポーネントへ送信することと同時に、ビットフリッピングコンポーネントと結合され得るビット訂正コンポーネントへシンドロームビットを送信することとのための動作、機構、手段、又は命令を更に含み得る。
【０１４９】
本明細書で説明する方法、装置、及び非一時的コンピュータ可読媒体の内の幾つかの例は、コードワードの誤り訂正を実施することと、誤り訂正に基づいてデータビットに対するシンドロームビットを生成することと、ビットフリッピングコンポーネントと結合され得るビット訂正コンポーネントへデータビットを送信することと、ビットフリッピングコンポーネントへフリップビットを送信した後にビット訂正コンポーネントへシンドロームビットを送信することとのための動作、機構、手段、又は命令を更に含み得る。
【０１５０】
本明細書で説明する方法、装置、及び非一時的コンピュータ可読媒体の内の幾つかの例では、フリップビットと関連付けられた第１の誤り率は、データビットと関連付けられた第２の誤り率以上であり得る。本明細書で説明する方法は、可能的実装を説明すること、動作及びステップは、再配置又は、さもなければ変更され得ること、及びその他の実装が可能であることに留意すべきである。更に、方法の内の２つ以上からの実施形態は組み合わせられ得る。
【０１５１】
幾つかの例では、装置又はデバイスは、汎用、又は専用ハードウェアを使用して、本明細書で説明する機能の態様を実施し得る。例えば、装置又はデバイスは、データビットを処理するように構成されたデータコンポーネントと、データビットが反転状態にあるか否かを指し示す反転ビットを含む制御ビットを処理するように構成された制御コンポーネントと、データコンポーネント及び制御コンポーネントと結合された誤り識別コンポーネントであって、データビット内の誤りを識別するように構成された誤り識別コンポーネントと、データビットが反転状態にあることを反転ビットの過半数が指し示すか否かに基づいて、データビットが反転状態にあるか否かを判定するように構成されたフリップビットジェネレータとを含み得る。幾つかの場合、制御ビットは誤り訂正ビット及び冗長ビットを含む。
【０１５２】
装置又はデバイスの内の幾つかの例では、フリップビットジェネレータは、制御コンポーネント内に含まれ、データビットの過半数が反転状態にあるか否かに少なくとも部分的に基づいてフリップビットを生成することと、フリップビットをデータコンポーネントへ送信することとをするように構成される。幾つかの例では、フリップビットジェネレータは、シンドロームビットがデータコンポーネントへ送信される前又は間に、フリップビットをデータコンポーネントへ送信するように構成される。幾つかの例では、フリップビットジェネレータは、誤り識別コンポーネントの出力とは無関係に、データビットが反転状態にあるか否かを判定するように構成される。
【０１５３】
装置又はデバイスの内の幾つかの例では、誤り識別コンポーネントは、データビット内で識別された誤りに少なくとも部分的に基づいてシンドロームビットをデータコンポーネントへ送信するように構成される。幾つかの場合、誤り識別コンポーネント及びフリップビットジェネレータは、相互に無関係に動作し得る。
【０１５４】
幾つかの例では、装置又はデバイスは、フリップビットに少なくとも部分的に基づいてデータビットをフリッピングするように構成されたビットフリッピングコンポーネントを含む。幾つかの場合、データコンポーネントは、ビットフリッピングコンポーネントを含む。幾つかの例では、装置又はデバイスは、データコンポーネント、制御コンポーネント、及びメモリセクションを含むメモリアレイを含み、各メモリセクションはコードワードを含む。
【０１５５】
幾つかの例では、装置又はデバイスは、メモリセクション内のコードワード毎にデータビット内の誤りを識別するように構成された１つ以上の誤り識別コンポーネントを含み、１つ以上の誤り識別コンポーネントは、前記誤り識別コンポーネントを含む。
【０１５６】
幾つかの例では、装置又はデバイスは、メモリセクション内のコードワード毎に、データビットが反転状態にあるか否かを判定するように構成された１つ以上のフリップビットジェネレータを含み、１つ以上のフリップビットジェネレータは、前記フリップビットジェネレータを含み、１つ以上の誤り識別コンポーネント及び１つ以上のフリップビットジェネレータは相互に無関係に動作し得る。
【０１５７】
他の例では、装置又はデバイスは、データビットを蓄積するように構成された第１のメモリセルと、反転ビットを含む制御ビットを蓄積するように構成された第２のメモリセルと、メモリアレイと結合された修復コンポーネントであって、データビットのサブセット及び制御ビットのサブセットを置換するように構成された修復コンポーネントと、修復コンポーネントの出力と結合された誤り識別コンポーネントであって、データビットのサブセットが置換された後にデータビット内の誤りを識別するように構成された誤り識別コンポーネントと、修復コンポーネントの出力と結合された多数決コンポーネントであって、誤り識別コンポーネントによるデータビット内の誤りの識別と同時に、データビットが反転状態にあることを反転ビットの過半数が指し示すか否か判定するように構成された多数決コンポーネントとを含み得る。
【０１５８】
装置又はデバイスの内の幾つかの例では、多数決コンポーネントは、誤り識別コンポーネントから電気的に絶縁される。装置又はデバイスの内の幾つかの例では、修復コンポーネントは、データビットのサブセットを置換するように構成された第１のマルチプレクサと、制御ビットのサブセットを置換するように構成された第２のマルチプレクサとを含む。
【０１５９】
幾つかの例では、装置又はデバイスは、第１のマルチプレクサの出力及び誤り識別コンポーネントと結合されたビット訂正コンポーネントであって、データビット内の誤りを訂正するように構成されたビット訂正コンポーネントを含む。幾つかの例では、装置又はデバイスは、多数決コンポーネント及びビット訂正コンポーネントと結合されたフリッピングコンポーネントを含み、フリッピングコンポーネントは、データビット内の誤りが訂正された後にデータビットをフリッピングするように構成される。
【０１６０】
他の例では、装置又はデバイスは、データビット及び反転ビットであって、データビットが反転状態にあるか否かを指し示す反転ビットを含むコードワードの誤り訂正を実施するように構成された誤り識別コンポーネントと、誤り識別コンポーネントと結合されたフリップビットジェネレータであって、反転ビットのサブセットにより蓄積された値に少なくとも部分的に基づいてフリップビットを生成するように構成されたフリップビットジェネレータと、フリップビットジェネレータと結合されたビットフリッピングコンポーネントであって、フリップビットジェネレータからフリップビットを受信するように、及びフリップビットの値に少なくとも部分的に基づいてデータビットをフリッピングするように構成されたビットフリッピングコンポーネントとを含み得る。
【０１６１】
装置又はデバイスの内の幾つかの例では、フリップビットジェネレータは多数決コンポーネントを含み、多数決コンポーネントは、データビットが反転状態にあることを反転ビットの過半数が指し示すか否かを判定するように構成される。幾つかの場合、フリップビットは、該判定に少なくとも部分的に基づいて生成される。
【０１６２】
幾つかの例では、装置又はデバイスは、誤り識別コンポーネント及びフリップビットジェネレータと結合されたビット訂正コンポーネントを含む。幾つかの場合、ビット訂正コンポーネントは、データビット内の誤りを訂正するように構成される。幾つかの場合、誤り識別コンポーネントは、データビットに対するシンドロームビットを生成し、シンドロームビットをビット訂正コンポーネントであって、シンドロームビットに少なくとも部分的に基づいてデータビット内の誤りを訂正するように構成されたビット訂正コンポーネントへ送信するように更に構成される。幾つかの場合、フリップビットジェネレータは、ビット訂正コンポーネントへシンドロームビットが送信される前又は間にフリップビットをビットフリッピングコンポーネントへ送信するように構成される。
【０１６３】
本明細書で使用されるとき、用語“仮想接地（virtual ground）”は、約ゼロボルト（０Ｖ）の電圧に保持されるがグランドと直接接続されない電気回路のノードを指す。したがって、仮想接地の電圧は、一時的に変動し得、定常状態で約０Ｖに戻り得る。仮想接地は、オペアンプ及び抵抗器を含む電圧分圧器等の様々な電子回路素子を使用して実装され得る。その他の実装も可能である。“仮想接地する（virtual grounding）”又は“仮想接地される（virtually grounded）”は約０Ｖに接続されることを意味する。
【０１６４】
用語“電子通信”及び“結合”は、コンポーネント間の電子流動をサポートするコンポーネント間の関係を指す。これは、コンポーネント間の直接接続を含み得、又は仲介コンポーネントを含み得る。相互に電子通信する又は結合されたコンポーネントは、（例えば、通電された回路内の）電子若しくは信号を能動的に交換し得、又は（例えば、非通電の回路内の）電子若しくは信号を能動的に交換しないことがあるが、回路が通電されると電子若しくは信号を交換するように構成され得、動作可能であり得る。例として、スイッチ（例えば、トランジスタ）を介して物理的に接続された２つのコンポーネントは、スイッチの状態（すなわち、開放又は閉鎖）に関わらず電子通信し、又は結合され得る。
【０１６５】
用語“絶縁”又は“電気的に絶縁”は、コンポーネント間を電子が現在流れることができないコンポーネント間の関係を指し、コンポーネントは、それらの間に開放回路がある場合に相互から絶縁される。例えば、スイッチにより物理的に接続された２つのコンポーネントは、スイッチが開放された場合に相互から絶縁され得る。
【０１６６】
用語“実質的に”は、（該用語により実質的に修正される動詞又は形容詞）が絶対的である必要はないが、該特徴の利点を実現するのに十分近いことを意味する。
【０１６７】
メモリアレイ１００を含む本明細書で論じられるデバイスは、シリコン、ゲルマニウム、シリコン−ゲルマニウム合金、ヒ化ガリウム、窒化ガリウム等の半導体基板上に形成され得る。幾つかの場合、該基板は半導体ウエハである。その他の場合、該基板は、シリコンオングラス（ＳＯＧ）若しくはシリコンオンサファイア（ＳＯＰ）等のシリコンオンインシュレータ（ＳＯＩ）基板、又は別の基板上の半導体材料のエピタキシャル層であり得る。基板又は基板のサブ地域の導電性は、リン、ホウ素、又はヒ素を含むがそれらに限定されない様々な化学種を使用したドーピングを通じて制御され得る。ドーピングは、イオン注入により、又は任意のその他のドーピング手段により、基板の初期の形成又は成長中に実施され得る。
【０１６８】
本明細書で論じられる１つ以上のトランジスタは、電界効果トランジスタ（ＦＥＴ）を表し得、ソース、ドレイン、及びゲートを含む３端子デバイスを含み得る。端子は、導電性材料、例えば金属を通じて他の電子素子に接続され得る。ソース及びドレインは、導電性であり得、高濃度にドープされた、例えば縮退した、半導体領域を含み得る。ソース及びドレインは、低濃度にドープされた半導体領域又はチャネルによって分離され得る。チャネルがｎ型（すなわち、主たるキャリアが電子）である場合、該ＦＥＴはｎ型ＦＥＴと称され得る。チャネルがｐ型（すなわち、主たるキャリアがホール）である場合、該ＦＥＴはｐ型ＦＥＴと称され得る。チャネルは、絶縁ゲート酸化物によって覆われ得る。チャネルの導電性は、ゲートに電圧を印加することによって制御され得る。例えば、正の電圧又は負の電圧をｎ型ＦＥＴ又はｐ型ＦＥＴに夫々印加することは、チャネルが導電性になることをもたらし得る。トランジスタの閾値電圧以上の電圧がトランジスタのゲートに印加された場合、トランジスタは“オン”に又は“活性化”され得る。トランジスタの閾値電圧未満の電圧がトランジスタのゲートに印加された場合、トランジスタは“オフ”に又は“不活性化”され得る。
【０１６９】
添付の図面に関連して本明細書に記載される説明は、例示的構成を説明し、実装され得る又は請求項の範囲内にある全ての実施例を表さない。本明細書で使用される用語“例”“例示的”は、“好適”又は“その他の例よりも有利”ではなく“一例、実例、又は説明として役立つこと”を意味する。詳細な説明は、説明される技術の理解を提供する目的のための具体的詳細を含む。これらの技術は、しかしながら、これらの具体的詳細なしに実践され得る。幾つかの実例では、説明される実施例の内容を不明確にすることを避けるために、周知の構造及びデバイスはブロック図の形式で示される。
【０１７０】
情報及び信号は、様々な異なる科学技術及び技術の内の何れかを使用して表され得る。例えば、上述の説明全体通じて言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、及びチップは、電圧、電流、電磁波、磁界若しくは磁性粒子、光場若しくは光粒子、又はそれらの任意の組み合わせにより表され得る。
【０１７１】
本明細書の開示と関連して説明される様々な説明ブロック及びコンポーネントは、本明細書で説明される機能を実施するように設計された汎用プロセッサ、デジタルシグナルプロセッサ（ＤＳＰ）、ＡＳＩＣ、ＦＰＧＡ若しくはその他のプログラム可能論理デバイス、別々のゲート若しくはトランジスタロジック、別々のハードウェアコンポーネント、又はそれらの任意の組み合わせで実装又は実施され得る。汎用プロセッサは、マイクロプロセッサであり得るが、代わりに、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、又はステートマシーンであり得る。プロセッサはまた、コンピューティングデバイスの組み合わせ、例えば、ＤＳＰとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサ、ＤＳＰコアと連携した１つ以上のマイクロプロセッサ、又は任意のその他のそうした構成として実装され得る。
【０１７２】
本明細書に説明される機能は、ハードウェア、プロセッサにより実行されるソフトウェア、ファームウェア、又はそれらの任意の組み合わせで実装され得る。プロセッサにより実行されるソフトウェアで実装される場合、機能は、コンピュータ可読媒体上の１つ以上の命令又はコードとして蓄積され得、又は送信され得る。その他の実施例及び実装は、本開示及び添付の請求項の範囲内である。例えば、ソフトウェアの性質に起因して、上で説明した機能は、プロセッサにより実行されるソフトウェア、ハードウェア、ファームウェア、配線、又はこれらの任意の組み合わせを使用して実装できる。機能を実装する機構はまた、機能の（複数の）部分が異なる物理的場所に実装されるように分散されることを含む、様々な位置に物理的に設置され得る。また、請求項を含む本明細書で使用されるとき、用語“及び／又は”は、２つ以上の項目のリスト内に使用される場合、列挙された雲久野何れか１つがそれ自体に用いられ得ること、又は列挙された項目の内の２つ以上の何れかの組み合わせが用いられ得ることを意味する。例えば、構成要素Ａ、Ｂ、及び／又Ｃを含むものとして構成物が説明される場合、該構成物は、Ａ単体、Ｂ単体、Ｃ単体、Ａ及びＢの組み合わせ、Ａ及びＣの組み合わせ、Ｂ及びＣの組み合わせ、又はＡ、Ｂ、及びＣの組み合わせを包含し得る。また、請求項を含む本明細書で使用されるとき、項目のリスト（例えば、“少なくとも１つの”又は“の内の１つ以上”等の句により前置きされる項目のリスト）に使用されるような“又は”は、例えば、“Ａ、Ｂ、又はＣの内の少なくとも１つ”のリストがＡ又はＢ又はＣ又はＡＢ又はＡＣ又はＢＣ又はＡＢＣ（すなわちＡ及びＢ及びＣ）を意味するように包含的リストを指し示す。
【０１７３】
コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含むコンピュータストレージ媒体及び通信媒体の両方を含む。ストレージ媒体は、汎用又は専用のコンピュータによりアクセス可能な任意の利用可能な媒体であり得る。例として、非限定的に、コンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、ＣＤ−ＲＯＭ若しくはその他の光ディスクストレージ、磁気ディスクストレージ若しくはその他の磁気ストレージデバイス、又は所望のプログラムコード手段を命令若しくはデータ構造の形式で搬送若しくは蓄積するのに使用し得、且つ汎用若しくは専用コンピュータ又は汎用若しくは専用プロセッサによりアクセスし得る任意のその他の媒体を含み得る。また、任意の接続は、コンピュータ可読媒体として適切に称される。例えば、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者線（ＤＳＬ）、又は赤外線、無線、及びマイクロ波等の無線技術を使用してウェブサイト、サーバ、又はその他の遠隔ソースからソフトウェアが送られる場合、同軸ケーブル、光ファイバケーブル、ツイストペア、ＤＳＬ、又は赤外線、無線、及びマイクロ波等の無線技術は媒体の定義に含まれる。本明細書で使用されるとき、ディスク（disk）及びディスク（disc）は、コンパクトディスク（ＣＤ）、レーザディスク、光ディスク、デジタル多目的ディスク（ＤＶＤ）、フロッピーディスク、及びブルーレイディスクを含み、ディスク（disc）がレーザでデータを光学的に再生する一方で、ディスク（disk）はデータを磁気的に通常再生する。上の組み合わせもコンピュータ可読媒体の範囲に含まれる。
【０１７４】
開示の説明は、当業者が開示を製作又は使用できるように提供される。開示への様々な変更が当業者に容易に分かるであろうし、本明細書で定義される包括的な原理は開示の範囲を逸脱することなくその他の変形に適用され得る。したがって、開示は、本明細書で説明された例示及び設計に限定されず、本明細書に開示された原理及び新規の機構と一致する最も広い範囲に一致する。
【図１】
2021524646.tif 000004
【図２】
2021524646.tif 000005
【図３】
2021524646.tif 000006
【図４】
2021524646.tif 000007
2021524646.tif 000008
【図５】
2021524646.tif 000009
【図６】
2021524646.tif 000010
【図７】
2021524646.tif 000011
【図８】
2021524646.tif 000012
【図９】
2021524646.tif 000013
【図１０】
2021524646.tif 000014
【図１１】
2021524646.tif 000015
【手続補正書】
【提出日】令和3年4月7日(2021.4.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のデータビットと、前記複数のデータビットが反転状態にあるか否かを指し示す複数の反転ビットとを含むコードワードを受信することであって、前記複数の反転ビットの各々は、第１の値又は第２の値の内の一方を有することと、
複数の誤り訂正されたデータビットを取得するために、前記コードワードの前記複数のデータビットの誤り訂正を実施することと、
前記誤り訂正と同時に、前記第１の値を有する前記複数の反転ビットの量に少なくとも部分的に基づいてフリップビットを生成することと、
前記複数の誤り訂正されたデータビットと前記フリップビットとをビットフリッピングコンポーネントへ送信することと、
前記フリップビットに少なくとも部分的に基づいて前記複数の誤り訂正されたデータビットを前記ビットフリッピングコンポーネントにおいて反転することと
を含む、方法。
【請求項２】
前記第１の値を有する前記複数の反転ビットの前記量に少なくとも部分的に基づいて、前記複数のデータビットが前記反転状態にあるか否かを判定することであって、前記フリップビットは、前記複数のデータビットが前記反転状態にあるか否かを判定することに少なくとも部分的に基づいて生成されること
を更に含む、請求項１に記載の方法。
【請求項３】
前記複数の反転ビットの前記量の各々により蓄積された前記第１の値又は前記第２の値を比較することによって、前記複数のデータビットが前記反転状態にあることを前記複数の反転ビットの内の過半数が指し示すと判定することと、
前記複数のデータビットが前記反転状態にあることを前記複数の反転ビットの内の前記過半数が指し示すと判定することに少なくとも部分的に基づいて、前記複数のデータビットが前記反転状態にあると判定することと
を更に含む、請求項１に記載の方法。
【請求項４】
前記複数のデータビットが前記反転状態にあると判定することに少なくとも部分的に基づいて前記複数のデータビットをフリッピングすることと、
前記複数のデータビットをフリッピングした後に前記複数のデータビットをメモリバッファへ送信することと
を更に含む、請求項３に記載の方法。
【請求項５】
前記複数の反転ビットの前記量の各々により蓄積された前記第１の値又は前記第２の値を比較することによって、前記複数のデータビットが前記反転状態にあることを前記複数の反転ビットの内の少数が指し示すと判定することと、
前記複数のデータビットが前記反転状態にあることを前記複数の反転ビットの内の前記少数が指し示すと判定することに少なくとも部分的に基づいて、前記複数のデータビットが元々の状態にあると判定することと、
前記複数のデータビットをメモリバッファへ送信することと
を更に含む、請求項１に記載の方法。
【請求項６】
前記誤り訂正を実施することは、
前記フリップビットを生成する間又は後に、前記複数のデータビットに対するシンドロームビットを生成すること
を含む、請求項１に記載の方法。
【請求項７】
前記ビットフリッピングコンポーネントと結合されたビット訂正コンポーネントへ前記複数のデータビットを送信することと、
前記フリップビットが前記ビットフリッピングコンポーネントへ送信された後に前記シンドロームビットを前記ビット訂正コンポーネントへ送信することと
を更に含む、請求項６に記載の方法。
【請求項８】
前記誤り訂正の間に、前記複数のデータビットの内のデータビットが破損しているか否かを判定することであって、前記シンドロームビットは、前記複数のデータビットの内の前記データビットが破損しているか否かを判定することに少なくとも部分的に基づいて生成されること
を更に含む、請求項６に記載の方法。
【請求項９】
前記フリップビットの生のビット誤り率（ＲＢＥＲ）又は前記フリップビットの第１の訂正不可能なビット誤り率（ＵＢＥＲ）は、前記複数のデータビットの内のデータビットの第２のＵＢＥＲ以上である、請求項１に記載の方法。
【請求項１０】
メモリのセクションは前記コードワードを含む複数のコードワードを含み、前記複数のコードワードの各コードワードは複数のデータビット及び複数の反転ビットを含み、前記複数の反転ビットは、前記複数のデータビットが前記反転状態にあるか否かを指し示し、前記方法は、
コードワード毎に誤り訂正動作を実施することと、
コードワード毎に、前記コードワードの前記誤り訂正とは無関係に、前記複数の反転ビットに少なくとも部分的に基づいてフリップビットが前記第１の値又は前記第２の値の内の一方を有すると判定することと、
コードワード毎に、前記ビットフリッピングコンポーネントを含む１つ以上のビットフリッピングコンポーネントへ前記フリップビットを送信することと
を更に含む、請求項１に記載の方法。
【請求項１１】
複数のデータビットと、前記複数のデータビットが反転状態にあるか否かを指し示す複数の反転ビットとを含むコードワードに対して、前記複数のデータビットが前記反転状態にあることを前記複数の反転ビットの内の過半数が指し示すか否かを判定することと、
複数の誤り訂正されたデータビットを取得するために、前記コードワードの誤り訂正を実施することと、
前記複数のデータビットが前記反転状態にあることを前記複数の反転ビットの内の前記過半数が指し示すか否かを判定することに少なくとも部分的に基づいてフリップビットを生成することと、
前記複数の誤り訂正されたデータビットと前記フリップビットとをビットフリッピングコンポーネントへ送信することと、
前記フリップビットに少なくとも部分的に基づいて前記複数の誤り訂正されたデータビットを前記ビットフリッピングコンポーネントにおいて反転することと
を含む、方法。
【請求項１２】
前記誤り訂正に少なくとも部分的に基づいて、前記複数のデータビットに対するシンドロームビットを生成することと、
前記フリップビットを前記ビットフリッピングコンポーネントへ送信することと同時に、前記ビットフリッピングコンポーネントと結合されたビット訂正コンポーネントへ前記シンドロームビットを送信することと
を更に含む、請求項１１に記載の方法。
【請求項１３】
前記誤り訂正に少なくとも部分的に基づいて、前記複数のデータビットに対するシンドロームビットを生成することと、
前記ビットフリッピングコンポーネントと結合されたビット訂正コンポーネントへ前記複数のデータビットを送信することと、
前記フリップビットを前記ビットフリッピングコンポーネントへ送信した後に前記シンドロームビットを前記ビット訂正コンポーネントへ送信することと
を更に含む、請求項１１に記載の方法。
【請求項１４】
前記フリップビットと関連付けられた第１の誤り率は、前記複数のデータビットと関連付けられた第２の誤り率以上である、請求項１１に記載の方法。
【請求項１５】
複数のデータビットを処理するように構成されたデータコンポーネントと、
前記複数のデータビットが反転状態にあるか否かを指し示す複数の反転ビットを含む複数の制御ビットを処理するように構成された制御コンポーネントであって、前記複数の反転ビットの各々は第１の値又は第２の値の内の一方を有する、前記制御コンポーネントと、
前記データコンポーネント及び前記制御コンポーネントと結合された誤り識別コンポーネントであって、前記複数のデータビット内の誤りを識別することと、複数の誤り訂正されたデータビットを取得するために、前記複数のデータビットの誤り訂正を実施することとをするように構成された前記誤り識別コンポーネントと、
前記複数の誤り訂正されたデータビットが前記反転状態にあることを前記複数の反転ビットの内の過半数が指し示すか否かに基づいて、前記複数の誤り訂正されたデータビットが前記反転状態にあるか否かを判定するように、及びフリップビットを生成するように構成されたフリップビットジェネレータと、
前記フリップビットに少なくとも部分的に基づいて、前記複数の誤り訂正されたデータビットをフリッピングするように構成されたビットフリッピングコンポーネントと
を含む、装置。
【請求項１６】
前記誤り識別コンポーネント及び前記フリップビットジェネレータは、相互に無関係に動作し、前記複数の制御ビットは、誤り訂正ビット及び冗長ビットを含む、請求項１５に記載の装置。
【請求項１７】
前記フリップビットジェネレータは、前記制御コンポーネント内に含まれ、
前記複数の誤り訂正されたデータビットの内の過半数が前記反転状態にあるか否かに少なくとも部分的に基づいて、前記フリップビットを生成することと、
前記フリップビットを前記データコンポーネントへ送信することと
をするように構成される、請求項１５に記載の装置。
【請求項１８】
前記データコンポーネントは前記ビットフリッピングコンポーネントを含む、請求項１７に記載の装置。
【請求項１９】
前記誤り識別コンポーネントは、前記複数のデータビット内で識別された前記誤りに少なくとも部分的に基づいて、前記データコンポーネントへシンドロームビットを送信するように構成され、前記フリップビットジェネレータは、前記シンドロームビットが前記データコンポーネントへ送信される前又は間に前記フリップビットを前記データコンポーネントへ送信するように構成される、請求項１７に記載の装置。
【請求項２０】
前記フリップビットジェネレータは、前記誤り識別コンポーネントの出力とは無関係に、前記複数のデータビットが前記反転状態にあるか否かを判定するように構成される、請求項１５に記載の装置。
【請求項２１】
前記データコンポーネント、前記制御コンポーネント、及びメモリセクションを含むメモリアレイであって、各メモリセクションはコードワードを含む、前記メモリアレイと、
メモリセクション内のコードワード毎に、前記複数のデータビット内の誤りを識別するように構成された１つ以上の誤り識別コンポーネントであって、前記１つ以上の誤り識別コンポーネントは、前記誤り識別コンポーネントを含む、前記１つ以上の誤り識別コンポーネントと、
前記メモリセクション内のコードワード毎に、前記複数のデータビットが前記反転状態にあるか否かを判定するように構成された１つ以上のフリップビットジェネレータであって、前記１つ以上のフリップビットジェネレータは前記フリップビットジェネレータを含み、前記１つ以上の誤り識別コンポーネント及び前記１つ以上のフリップビットジェネレータは、相互に無関係に動作する、前記１つ以上のフリップビットジェネレータと
を更に含む、請求項１５に記載の装置。
【請求項２２】
複数のデータビットと、複数の誤り訂正されたデータビットを取得するための複数の反転ビットであって、前記複数のデータビットが反転状態にあるか否かを指し示す前記複数の反転ビットとを含むコードワードの誤り訂正を実施するように構成された誤り識別コンポーネントであって、前記複数の反転ビットの各々は第１の値又は第２の値の内の一方を有する、前記誤り識別コンポーネントと、
前記誤り識別コンポーネントと結合されたフリップビットジェネレータであって、前記第１の値を有する前記複数の反転ビットの量に少なくとも部分的に基づいてフリップビットを生成するように構成された前記フリップビットジェネレータと、
前記フリップビットジェネレータと結合されたビットフリッピングコンポーネントであって、前記誤り識別コンポーネントから前記複数の誤り訂正されたデータビットを、及び前記フリップビットジェネレータから前記フリップビットを受信するように、並びに前記フリップビットの値に少なくとも部分的に基づいて、前記複数の誤り訂正されたデータビットをフリッピングするように構成された前記ビットフリッピングコンポーネントと
を含む、装置。
【請求項２３】
前記フリップビットジェネレータは多数決コンポーネントを含み、前記多数決コンポーネントは、前記複数のデータビットが前記反転状態にあることを前記複数の反転ビットの内の過半数が指し示すか否かを判定するように構成され、前記フリップビットは、前記判定に少なくとも部分的に基づいて生成される、請求項２２に記載の装置。
【請求項２４】
前記誤り識別コンポーネント及び前記フリップビットジェネレータと結合されたビット訂正コンポーネントであって、前記複数のデータビット内の誤りを訂正するように構成された前記ビット訂正コンポーネントを更に含み、前記誤り識別コンポーネントは、
前記複数のデータビットに対するシンドロームビットを生成することと、
前記シンドロームビットを前記ビット訂正コンポーネントへ送信することであって、前記ビット訂正コンポーネントは、前記シンドロームビットに少なくとも部分的に基づいて前記複数のデータビット内の前記誤りを訂正するように構成されることと
をするように更に構成される、請求項２２に記載の装置。
【請求項２５】
前記フリップビットジェネレータは、前記シンドロームビットが前記ビット訂正コンポーネントへ送信される前又は間に、前記フリップビットを前記ビットフリッピングコンポーネントへ送信するように構成される、請求項２４に記載の装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
［クロスリファレンス］
特許に対する本出願は、２０１８年８月１７日に出願された“ＥＮＨＡＮＣＥＤ  ＢＩＴ  ＦＬＩＰＰＩＮＧ  ＳＣＨＥＭＥ”という名称のＦａｃｋｅｎｔｈａｌによる米国特許出願番号１６／１０４，４７０に対する優先権を主張する２０１９年８月２日に出願された“ＥＮＨＡＮＣＥＤ  ＢＩＴ  ＦＬＩＰＰＩＮＧ  ＳＣＨＥＭＥ”という名称のＦａｃｋｅｎｔｈａｌによるＰＣＴ出願番号ＰＣＴ／ＵＳ２０１９／０４４８７４に対する優先権を主張し、該出願の各々は、本出願の譲受人に譲渡され、該出願の各々は、その全体が参照により本明細書に明白に組み込まれる。
【国際調査報告】
2021524646.tif 000016
2021524646.tif 000017