JP2022507988A - 誤り訂正ビットフリッピング方式 - Google Patents

誤り訂正ビットフリッピング方式 Download PDF

Info

Publication number
JP2022507988A
JP2022507988A JP2021529440A JP2021529440A JP2022507988A JP 2022507988 A JP2022507988 A JP 2022507988A JP 2021529440 A JP2021529440 A JP 2021529440A JP 2021529440 A JP2021529440 A JP 2021529440A JP 2022507988 A JP2022507988 A JP 2022507988A
Authority
JP
Japan
Prior art keywords
flip
component
bit
data bits
error correction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2021529440A
Other languages
English (en)
Inventor
ジョンテ クワク
Original Assignee
マイクロン テクノロジー,インク.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by マイクロン テクノロジー,インク. filed Critical マイクロン テクノロジー,インク.
Publication of JP2022507988A publication Critical patent/JP2022507988A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1108Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

メモリデバイスを動作させるための方法、システム、およびデバイスが説明される。誤り訂正ビットフリッピング方式は、1つまたは複数のビット(たとえば、フリップビット)の誤り訂正を実行するためおよび誤り訂正情報を効率的に通信するための方法、システム、およびデバイスを含んでよい。データビットおよびフリップビット(たとえば、誤り訂正されたフリップビット)は、(たとえば、フリップ判断構成要素に)直接的に送られてよい。フリップビットは、(たとえば、フリップ判断構成要素に)データビットを搬送する1つまたは複数の他の線とは異なる専用および/または一方向性線を通じて、フリップ判断構成要素に送られてよい。

Description

クロスリファレンス
本特許出願は、本発明の譲受人に譲渡され、参照によりその全体が明示的に本明細書に組み込まれる、2018年11月26日に出願された、「ERROR CORRECTION BIT FLIPPING SCHEME」という名称の、Kwakによる米国特許出願第16/199,773号の優先権を主張するものである。
以下は、一般的に、メモリデバイスを動作させることに関し、より詳細には、誤り訂正ビットフリッピング方式に関する。
メモリデバイスは、コンピュータ、ワイヤレス通信デバイス、カメラ、デジタルディスプレイなどのさまざまな電子デバイスに情報を記憶するために広く使用される。情報は、メモリデバイスの異なる状態をプログラムすることによって記憶される。たとえば、バイナリデバイスはほとんどの場合、論理「1」または論理「0」によって示されることが多い2つの状態を記憶する。他のデバイスでは、3つ以上の状態が記憶されることがある。記憶された情報にアクセスするために、デバイスの構成要素は、メモリデバイス内の少なくとも1つの記憶された状態を読み出し得る、または感知し得る。情報を記憶するために、デバイスの構成要素は、メモリデバイスに状態を書き込み得る、またはプログラムし得る。
磁気ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、ダイナミックRAM(DRAM)、同期式ダイナミックRAM(SDRAM)、強誘電体RAM(FeRAM)、磁気RAM(MRAM)、抵抗RAM(RRAM)、フラッシュメモリ、相変化メモリ(PCM)などを含む、さまざまなタイプのメモリデバイスが存在する。メモリデバイスは、揮発性であってもよいし、不揮発性であってもよい。不揮発性メモリ、たとえばFeRAMは、外部電力源の不在下ですら、延長された時間の期間にわたって記憶された論理状態を維持し得る。揮発性メモリデバイス、たとえばDRAMは、外部電力源によって定期的にリフレッシュされない限り、経時的に記憶された状態を失うことがある。FeRAMは、揮発性メモリと類似のデバイスアーキテクチャを使用してよいが、記憶デバイスとしての強誘電体キャパシタの使用により不揮発性の性質を有することがある。
メモリデバイスは、(たとえば、信頼性の理由で)メモリセルに記憶されたデータビットを反転させ得る。ビットは、特定のメモリセルに記憶された論理状態が反転されていることを示し得る。しかしながら、反転に関連するビットのための誤り訂正を実行することによって、他の動作が遅延されることがあり、この遅延は伝搬遅延によって増やされ、かなりの待ち時間をもたらすことがある。ビットフリッピングおよび誤り訂正動作に関連する拡張された方式が望ましい。
本開示の態様による誤り訂正ビットフリッピング方式をサポートするメモリデバイスを動作させるためのシステムの一実施例を示す図である。 本開示の態様による誤り訂正ビットフリッピング方式をサポートする装置の一実施例を示す図である。 本開示の態様による誤り訂正ビットフリッピング方式をサポートする装置の一実施例を示す図である。 本開示の態様による誤り訂正ビットフリッピング方式をサポートする装置の一実施例を示す図である。 本開示の態様による誤り訂正ビットフリッピング方式をサポートする装置の一実施例を示す図である。 本開示の態様による誤り訂正ビットフリッピング方式をサポートするデバイスのブロック図の一例である。 本開示の態様による誤り訂正ビットフリッピング方式をサポートするデバイスのブロック図である。 本開示の態様による誤り訂正ビットフリッピング方式をサポートする方法を示すフローチャートである。 本開示の態様による誤り訂正ビットフリッピング方式をサポートする方法を示すフローチャートである。 本開示の態様による誤り訂正ビットフリッピング方式をサポートする方法を示すフローチャートである。
メモリデバイスは、(たとえば、信頼性の理由で)メモリセルに記憶されたデータビットを反転させ得る。1つまたは複数のメモリセルのための1つまたは複数のデータビットを反転させた後、メモリデバイスは、1つまたは複数のメモリセルに記憶された論理状態が反転されていることを示すように反転ビットを設定することがある。メモリからデータを読み出すとき、メモリデバイスは、1つまたは複数のビット(たとえば、データビット、反転ビット)を誤り訂正することがあり、(たとえば、対応する誤り訂正された反転ビットに基づいて)データビットのいずれかが反転されたかどうかを決定することがある。しかしながら、データビットおよび反転ビットのための誤り訂正を実行することによって、読み出し動作遅延されることがあり、この遅延は、メモリシステムにかなりの待ち時間をもたらす、ある構成要素から別の構成要素を通じてのビットの間接的なルーティング(たとえば、データビットがデータバス反転構成要素に送られる前に誤り訂正されたフリップビットを待機しなければならないように、データビット誤り訂正構成要素を通じた誤り訂正されたフリップビットをルーティングすること)に基づいて、伝搬遅延によって増やされることがある。
この間接的なルーティングのいくつかの実施例では、メモリアプリケーションは、反転ビットまたはフリップビットと、データビットおよびフリップビットを含む異なるビットを訂正し得る誤り訂正構成要素を用いることがある。いくつかの実施例では、誤り訂正構成要素は、データバス反転構成要素に他の情報(たとえば、データ)を送る前にフリップビットを訂正することがあり、データバス反転構成要素は、フリップ判断構成要素の一実施例であってもよいし、これを含んでもよい。この場合、これは、データが送られる前にすべてのデータビット誤り訂正構成要素に伝搬するために、データがフリップビット訂正を待機し、次いでさらに、誤り訂正されたフリップビットを待機しなければならないことにより、データアクセス時間に待ち時間をもたらすことがある。
本明細書で開示されるように、メモリシステム内の待ち時間は、データバス反転構成要素またはフリップ判断構成要素に誤り訂正されたフリップビットを直接的に送ることによって減少され得る。これは、フリップビット誤り訂正構成要素からフリップ判断構成要素に情報を直接的に送る専用線上で誤り訂正されたフリップビットを送ることによって、達成され得る。専用線は、データビット送出線などの、双方向性線よりも速くてよい送出速度を有し得る読み出し専用線または一方向性線であってよい。誤り訂正されたフリップビットは、フリップ判断構成要素に直接的に送られ得るので、誤り訂正データ構成要素は、データビット誤り訂正構成要素において誤り訂正されたフリップビットを受け取る必要はなく、データビットは、別の1つまたは複数の線上でフリップ判断構成要素に直接的に送られてよい。
いくつかの実施例では、誤り訂正されたフリップビットを待機するメモリアレイデータビットの代わりに、および場合によっては構成要素の物理的サイズを変更することがある、多数決方式などの代替方式を用いる代わりに、データバス反転構成要素またはフリップ判断構成要素(たとえば、グローバルデータバスに配置され得るもの)は、データビットが反転されたかどうかを決定するために使用され、適宜データビットを反転させることがある。いくつかの実施例では、フリップ判断構成要素とデータバス反転構成要素は、同じ構成要素であってもよいし、これに含まれてもよい。
いくつかの実施例では、フリップ判断構成要素を使用することによって、誤り訂正構成要素が、フリップビットを含む任意の単一のデータビットを訂正するとすぐに、データは、データビット誤り訂正構成要素において誤り訂正されたフリップビットを受け取ることを待つ必要なく、データバスを通じて送られてよい。データビット(たとえば、場合によっては誤り訂正されることがあるデータビット)および誤り訂正されたフリップビットは、データビットが、フリップ判断構成要素に送られる前に誤り訂正されたフリップビットを待機しなくてもよいことがあるように、フリップ判断構成要素に直接的に送られてよい。次いで、フリップ判断構成要素は、データが反転されているかどうかを決定し、次いで、直接的にフリップビット誤り訂正構成要素から誤り訂正されたフリップビットを、およびデータビット誤り訂正構成要素からデータビットを受け取ったことに基づいてデータを適宜反転させることがある。
上記で紹介された本開示の特徴は、本明細書においてメモリシステムの文脈でさらに説明される。誤り訂正ビットフリッピング方式により誤り訂正するためのデバイスおよび方法の具体的な実施例が説明される。本開示のこれらおよび他の特徴は、拡張された誤り訂正ビットフリッピング方式に関連する装置図、システム図、およびフローチャートによってさらに示され、これらを参照して説明される。
図1は、本開示のさまざまな実施形態による誤り訂正ビットフリッピング方式をサポートする例示的なメモリアレイを示す。メモリアレイ100は、デジタル情報(たとえば、バイナリ情報)を記憶するために使用されることがあり、電子メモリ装置とも呼ばれることがある。メモリアレイ100は、異なる状態を記憶するためにプログラム可能であるメモリセル105を含む。各メモリセル105は、論理0および論理1として示される2つの状態を記憶するためにプログラム可能であってよい。場合によっては、メモリセル105は、3つ以上の論理状態を記憶するように構成される。
メモリセル105は、プログラム可能な状態を有する記憶素子を含んでよい。DRAMアーキテクチャまたはFeRAMアーキテクチャにおけるメモリセル105は、プログラム可能な状態を表す電荷をキャパシタに記憶することがある。たとえば、充電キャパシタおよび非充電キャパシタはそれぞれ、2つの論理状態を表すことがある。DRAMアーキテクチャは、通例そのような設計を使用することがあり、誘電材料を含んで記憶素子として線形電気分極性を有するキャパシタを使用し得る。FeRAMアーキテクチャも、そのような設計を使用することがあるが、記憶素子として使用されるキャパシタは、非線形分極性をもつ強誘電体材料を含み得る。PCMアーキテクチャまたは分離(segregation)ベースメモリ(SBM)アーキテクチャにおけるメモリセル105は、材料の抵抗率(たとえば、抵抗またはしきい電圧)を変更することがあり、異なる抵抗率が異なる論理状態を表し得る。PCMアーキテクチャおよび/またはSBMアーキテクチャは、記憶素子として電子的にプログラム可能な抵抗を有するカルコゲナイド材料を使用し得る。場合によっては、PCMアーキテクチャにおけるメモリセル105は、メモリ材料の相を変更することによってプログラムされる。場合によっては、SBMアーキテクチャにおけるメモリセル105は、メモリ材料内のイオン移動を引き起こすことによってプログラムされる。
読み出しおよび書き込みなどの動作は、適切なアクセス線110およびディジット線115をアクティブ化または選択することによって、メモリセル105に対して実行され得る。アクセス線110はワード線110とも呼ばれることがあり、ディジット線115はビット線115とも呼ばれることがある。ワード線110またはディジット線115をアクティブ化または選択することは、電圧をそれぞれの線に印加することを含むことがある。ワード線110およびディジット線115は、導電材料から作製される。たとえば、ワード線110およびディジット線115は、金属(銅、アルミニウム、金、タングステンなど)、金属合金、他の導電材料などから作製されてよい。図1の実施例によれば、メモリセル105の各行は単一のワード線110に接続され、メモリセル105の各列は単一のディジット線115に接続される。1つのワード線110および1つのディジット線115をアクティブ化する(たとえば、ワード線110またはディジット線115に電圧を印加する)ことによって、単一のメモリセル105は、それらの交点でアクセスされ得る。メモリセル105にアクセスすることは、メモリセル105を読み出すまたは書き込むことを含むことがある。ワード線110とディジット線115の交点は、メモリセルのアドレスと呼ばれることがある。
いくつかのアーキテクチャでは、セルの論理記憶デバイス(たとえば、キャパシタ)は、選択構成要素によってディジット線から電気的に絶縁されることがある。ワード線110は、選択構成要素に接続されてよく、これを制御し得る。たとえば、選択構成要素はトランジスタであってよく、ワード線110は、トランジスタのゲートに接続されてよい。ワード線110をアクティブ化することは、メモリセル105のキャパシタとその対応するディジット線115との間の電気接続または閉回路をもたらす。次いで、ディジット線は、メモリセル105の読み出しまたは書き込みのどちらかをするためにアクセスされることがある。
メモリセル105にアクセスすることは、行デコーダ120および列デコーダ130を通じて制御され得る。いくつかの実施例では、行デコーダ120は、メモリコントローラ140から行アドレスを受け取り、受け取られた行アドレスに基づいて適切なワード線110をアクティブ化する。同様に、列デコーダ130は、メモリコントローラ140から列アドレスを受け取り、適切なディジット線115をアクティブ化する。たとえば、メモリアレイ100は、WL_1~WL_Mとラベルが付けられた複数のワード線110と、DL_1~DL_Nとラベルが付けられた複数のディジット線115とを含むことがあり、ここで、MおよびNは、アレイサイズに依存する。したがって、ワード線110およびディジット線115、たとえばWL_3およびDL_Nをアクティブ化することによって、それらの交点にあるメモリセル105がアクセスされ得る。
アクセスすると、メモリセル105は、メモリセル105の記憶された状態を決定するために、感知構成要素125によって、読み出されてもよいし、これによって感知されてもよい。たとえば、メモリセル105にアクセスした後、メモリセル105のキャパシタは、その対応するディジット線115上に放電することがある。キャパシタを放電することは、キャパシタにバイアスすること、またはこれに電圧を印加することに基づいてよい。放電は、ディジット線115の電圧の変化を誘発することがあり、これを、感知構成要素125は、メモリセル105の記憶された状態を決定するために、基準電圧(図示せず)と比較することがある。たとえば、ディジット線115が基準電圧よりも高い電圧を有する場合、感知構成要素125は、メモリセル105に記憶された状態は論理1であると決定することがあり、その逆も同様である。
センシング動作の信頼性は、メモリセル105を読み出すことから生じるセンシングウィンドウに依存することがある。たとえば、より大きいセンシングウィンドウは、より小さいセンシングウィンドウよりも少ないビット誤りと関連づけられることがある。センシングウィンドウは、論理1を記憶するときにメモリセル105を読み出すことから生じるディジット線115の電圧と、論理0を記憶するときにメモリセルを読み出すことから生じるディジット線115の電圧との差として、決定されることがある。感知構成要素125は、ラッチングと呼ばれることがある、信号の差を検出および増幅するために、さまざまなトランジスタまたは増幅器を含むことがある。メモリセル105の検出された論理状態は、次いで、列デコーダ130を通じて出力135として出力されることがある。
メモリセル105は、関連するワード線110およびディジット線115をアクティブ化することによって、設定されてもよいし、書き込まれてもよい。本明細書において論じられるように、ワード線110をアクティブ化することによって、メモリセル105の対応する行がそれぞれのディジット線115に電気的に接続される。ワード線110がアクティブ化されている間、関連のあるディジット線115を制御することによって、メモリセル105が書き込まれることがある―たとえば、論理値が、メモリセル105内に記憶されることがある。列デコーダ130は、メモリセル105に書き込まれることになるデータ、たとえば入力135を受け付ける。
メモリコントローラ140は、行デコーダ120、列デコーダ130、および感知構成要素125などのさまざまな構成要素を通じて、メモリセル105の動作(たとえば、読み出し、書き込み、再書き込み、リフレッシュなど)を制御し得る。メモリコントローラ140は、所望のワード線110およびディジット線115をアクティブ化するために、行アドレス信号および列アドレス信号を生成し得る。メモリコントローラ140はまた、メモリアレイ100の動作中に使用されるさまざまな電位を生成および制御し得る。一般に、本明細書において論じられる印加電圧の振幅、形状、または持続時間は、調整または変化されることがあり、メモリアレイ100を動作させるためのさまざまな動作に対して異なってよい。そのうえ、メモリアレイ100内の1つ、複数、またはすべてのメモリセル105は、同時にアクセスされてよい。たとえば、メモリアレイ100の複数またはすべてのセルは、すべてのメモリセル105またはメモリセル105のグループが単一の論理状態に設定されるリセット動作中に同時にアクセスされてよい。
場合によっては、メモリアレイ100は、メモリセル105の論理状態をフリップすることがある、たとえば、メモリセル105内に記憶された論理値をある値(たとえば、論理1)から別の論理値(論理0)に変更する。メモリアレイ100は、フリッピングを内部で実行することがあり、メモリセルの論理状態がフリップされたことを他の外部デバイスまたは構成要素に知らせないことがある。メモリアレイ100は、電力を節約するため、デバイスの信頼性を増加させるため、などのために、メモリセルをフリップすることがある。たとえば、FeRAMの場合、強誘電体メモリセルは、経時的にメモリセルの信頼性を減少し得る、インプリントの影響、たとえば、同じ電荷への延長された曝露または記憶による強誘電分域のドリフトを軽減するために、フリップされることがある。元の論理状態、たとえば、外部デバイスまたは構成要素によってメモリセルに記憶されることが予想される論理状態と異なる論理状態を記憶するメモリセル105は、反転された状態であると呼ばれることがある。データが反転されているかどうかを示すビットは、本明細書において、フリップビットと呼ばれることがある。
デバイス(たとえば、ホストデバイス、コントローラ)は、データのためのアクセスコマンドを発行することがある。いくつかの情報(たとえば、データビット、パリティビット、フリップビット)は、ホストデバイスに情報またはデータを送る前に、誤り訂正されることがある。データビット、パリティビット、およびフリップビットは、誤り訂正を容易にするように、この誤り訂正のために誤り訂正構成要素で受け取られることがある。さらに、データが反転されているかどうか、決定が行われることがある。いくつかの実施例では、データが反転されているかどうかの決定は、論理構成要素を使用して、データビットを検査することによって達成され得、これは、データが5つ以上の1を含むかどうかを検出する。
誤り訂正中、誤り情報は、誤り訂正構成要素によってデコーダから受け取られることがあり、これは、データおよび/またはフリップビットに関連するものなどの1つまたは複数の誤りを訂正するための1つまたは複数の誤り訂正構成要素を含むことがある。場合によっては、フリップビットが、誤り訂正構成要素を有することがあり、データビットとパリティビットのセットの各ビットが、対応する誤り訂正構成要素を有することがある。場合によっては、フリップビットが誤り訂正されることがあり、誤り訂正されたフリップビットが、フリップ判断構成要素に送られることがある。誤り訂正されたフリップビットは、フリップ判断構成要素に直接的に送られることがあり、場合によっては、専用の、一方向性線上での送られることがある。場合によっては、1つまたは複数のデータビットは、さらにまたは代わりに、誤り訂正されることがある。フリップビットが誤り訂正されるとすぐに、データビット(以前に誤り訂正されたことがあってもなくてもよい)が、(たとえば、誤り訂正されたフリップビットが送られる第1の線とは異なる第2の線を通じてフリップ判断構成要素に直接的に送られることがある。フリップ判断構成要素は、誤り訂正されたフリップビットおよび/または1つまたは複数のデータビットを受け取ったことに基づいてデータビットが反転されたかどうかを決定し得、そうである場合、データビットを反転させ得る。
図2は、本開示の態様による誤り訂正ビットフリッピング方式をサポートする装置200の一実施例を示す。いくつかの実施例では、装置200は、本明細書において図1を参照して説明される1つまたは複数の構成要素を含んでよい。たとえば、装置200は、図2を参照して説明される誤り訂正構成要素230を含んでよく、デコーダ205と、フリップ判断構成要素270とを含んでよい。
いくつかの実施例では、1つまたは複数のデータビット、1つまたは複数のパリティビット、および1つまたは複数のフリップビットは、線250-a、250-b、および250-c上で(たとえば、メモリアレイ220から)受け取られることがある。いくつかの実施例では、メモリコントローラ(たとえば、図1を参照して説明されるメモリコントローラ140)は、メモリアレイ220からの1つもしくは複数のデータビット、1つもしくは複数のパリティビット、および/または1つもしくは複数のフリップビットの送出を開始し得る。いくつかの実施例では、メモリコントローラ140は、ローカルメモリコントローラ、外部メモリコントローラ、またはホストデバイスコントローラであってよい。メモリアレイ220から送られると、1つもしくは複数のデータビット、1つもしくは複数のパリティビット、および/または1つもしくは複数のフリップビットは、線250-a、250-b、および250-c上でECCデコーダ225によって受け取られてよい。線250-a、250-b、および250-cはそれぞれ、フリップビット、データビット、およびパリティビットを搬送する線であってよい。
ECCデコーダ225は、いくつかの実施例では、1つまたは複数のビット内で1つまたは複数の誤りの位置を特定するために機能し得るバイナリデコーダ(図示せず)であってもよいし、これを含んでもよいし、これと結合されてもよい。いくつかの実施例では、ECCデコーダ225は、1つもしくは複数のデータビット、1つもしくは複数のパリティビット、および/または1つもしくは複数のフリップビットと関連づけられた誤りを決定するために、1つもしくは複数のデータビット、1つもしくは複数のパリティビット、および/または1つもしくは複数のフリップビットを復号し得る。次いで、ECCデコーダ225は、いくつかの実施例では、復号されたデータを含み得る1つまたは複数のビット(たとえば、1つもしくは複数のデータビット、1つもしくは複数のパリティビット、および/または1つもしくは複数のフリップビット)を線260上で誤り訂正構成要素230(たとえば、1つまたは複数の誤り訂正構成要素)に送ることがある。いくつかの実施例では、ECCデコーダ225は、復号されたデータを含み得る1つまたは複数のビット(たとえば、1つもしくは複数のデータビット、1つもしくは複数のパリティビット、および/または1つもしくは複数のフリップビット)の標識(indication)を線260上で誤り訂正構成要素230(たとえば、1つまたは複数の誤り訂正構成要素)に送ることがある。
いくつかの実施例では、誤り訂正構成要素230は、誤り訂正されたデータをフリップ判断構成要素270に直接的に送ることがある。いくつかの実施例では、誤り訂正されたフリップビットは、線255-a上でフリップ判断構成要素270に直接的に送られることがある。これは、たとえば、(たとえば、以前に説明されたように、誤り訂正されたフリップビットをデータビット誤り訂正構成要素に送ることなく)誤り訂正構成要素230とフリップ判断構成要素270との間の専用線255-a上で実行されることがある。これは、たとえば、誤り訂正構成要素230とフリップ判断構成要素270との間の一方向性線255-a上で実行されることがある。
いくつかの実施例では、誤り訂正構成要素230は、線255-b上でフリップ判断構成要素270に直接的にデータビットを送ることがある。データビットを送ることは、フリップビットを処理すること、または処理されたフリップビットをフリップ判断構成要素に送ること、または処理されたフリップビットを、フリップビット線を通じてフリップ判断構成要素に直接的に送ること、またはそれらの任意の組み合わせに基づくことがある。線255-bは、図2では単一の線として示されているが、他の代替形態も企図されているので、これは、限定ではなく、説明のみを目的とする。いくつかの実施例では、線255-bは、複数の誤り訂正構成要素からフリップ判断構成要素にデータビットを送るための複数の線であることがある。図2の線255-bは、フリップビット送出線255-aとは別個の線であってよい。さらに、線255-bは、読み出し/書き込み線であってもよいし、双方向性線であってもよい。フリップ判断構成要素270が、データビットおよび誤り訂正されたフリップビットを受け取った後、フリップ判断構成要素は、データビットが反転されたかどうかを決定し得る。
いくつかの実施例では、誤り訂正構成要素230は、複数のデータビットのうちのデータビットと関連づけられた1つまたは複数の誤りを決定し、データビットと関連づけられた誤りを訂正することがある。誤りは、ECCデコーダ225において誤りを決定したことに一部は基づいて訂正されることがある。いくつかの実施例では、誤り訂正構成要素230は、データビットが誤り訂正されないことがあると決定することがある。
図3は、本開示の態様による誤り訂正ビットフリッピング方式をサポートする装置300の一実施例を示す。いくつかの実施例では、装置300は、本明細書において図1および/または図2を参照して説明される1つまたは複数の構成要素を含んでよい。たとえば、装置300は、図2を参照して説明された誤り訂正構成要素を含んでよい。装置300は、デコーダ305と、フリップビット誤り訂正構成要素310と、1つまたは複数のデータビット誤り訂正構成要素315-a、315-b…315-nと、フリップ判断構成要素320と、データバス判断構成要素325とを含んでよい。いくつかの実施例では、フリップ判断構成要素320は、データバス反転構成要素であることがある。いくつかの実施例では、フリップ判断構成要素320は、フリップ判断構成要素320とデータバス判断構成要素325が同じ構成要素であることがあるように、データバス判断構成要素325の論理構成要素を含むことがある。
図3では、装置300は、1つまたは複数の構成要素であってよいデコーダ305を含んでよい。いくつかの実施例では、デコーダ305は、バイナリデコーダと結合されたECCデコーダであってもよいし、これを含んでもよい。場合によっては、デコーダ305は、デコーダ305によって復号される情報内の誤りの位置を特定することが可能であることがある(たとえば、誤りロケータとして働くことがある)。デコーダ305は、1つもしくは複数のデータビット、1つもしく複数のパリティビット、および/または1つもしくは複数のフリップビットを含む情報を(たとえば、ECCデコーダで)受け取ることがある。パリティビット誤り訂正構成要素などの他の訂正構成要素は示されていないが、これらの他の構成要素が、本明細書において論じられるデータビット誤り訂正構成要素およびフリップビット誤り訂正構成要素に類似した機能を実行してよい。1つまたは複数のフリップビットがデコーダで受け取られ、処理されて、(たとえば、フリップビット誤り訂正構成要素に)送られるが、議論のみを目的として、単一のフリップビットが本明細書において論じられる。
ECCデコーダで受け取られる情報は、処理され、次いで、バイナリデコーダに送られることがあり、バイナリデコーダは、(たとえば、1つもしくは複数のデータビット、1つもしく複数のパリティビット、および/または1つもしくは複数のフリップビット内の)1つまたは複数の誤りの場所を決定することがある。
受け取られたビット内の1つまたは複数の誤りの位置を特定した後、デコーダ305は、1つもしくは複数のデータビット、1つもしく複数のパリティビット、および/または1つもしくは複数のフリップビットをそれぞれのビット誤り訂正構成要素に送ることがある。この実施例では、デコーダ305は、1つまたは複数のビット内の(たとえば、データ[0]内の)誤りの位置を特定することがある。次いで、デコーダ305は、この誤り場所をデータビット誤り訂正構成要素315-aに送ることがある。図3では4つのデータビット誤り訂正構成要素315のみが示されているが、適宜、データビットの各セットに対して対応するデータビット誤り訂正構成要素があってよい。
フリップビット誤り訂正構成要素310は、フリップビットが訂正されるべきかどうかの標識を(たとえば、デコーダ305から)受け取ることがある。いくつかの実施例では、フリップビット誤り訂正構成要素310は、フリップビットが訂正されることがあるという標識を受け取ることがあり、フリップビット誤り訂正構成要素310は、その標識を受け取ったことに基づいてフリップビットを訂正することがある。次いで、フリップビット誤り訂正構成要素310は、フリップ判断構成要素320に直接的にフリップビットを送ることがある。
いくつかの実施例では、フリップ判断構成要素320に直接的に、誤り訂正されたフリップビットを送ることによって、メモリシステムは、構成要素の物理的サイズを増加させること(および余分なメモリアレイデータビットを使用すること)、またはフリップ判断構成要素320に送られる前に誤り訂正されたフリップビットを待機することをデータ誤り訂正構成要素に要求することによってメモリシステムに待ち時間を導入することなどの、他の誤り訂正方式に含まれ得る態様を回避し得る。
いくつかの実施例では、フリップビットは、線上でフリップ判断構成要素320に直接的に送られることがあり、この線は、フリップビット誤り訂正構成要素310をフリップ判断構成要素320と結合する専用線であってよい。フリップビット線は、場合によっては、読み出し専用であり一方向性の線であってよい。フリップビット線は、読み出し専用で一方向性であることがあるので、フリップビット線上でのデータ送出は、読み出し/書き込みの双方向性線上よりも速いことがある。いくつかの実施例では、フリップビット線は、より速いデータ送出速度および/または他の有利な特徴を有することがあるので、送られた誤り訂正されたフリップビットは、有利には、データビットが受け取られる前にフリップ判断構成要素320によって受け取られることがある。誤り訂正されたフリップビットは、データビットから別個の線上で送られることがあるので、データビット構成要素は、フリップ判断構成要素320への送出の前に誤り訂正構成要素で誤り訂正フリップビットを受け取ることを待機しなくてもよいことがあり、したがって、さまざまな利点の中でもとりわけ、待ち時間を減少させる。
いくつかの実施例では、誤り訂正されたフリップビットは、データビットのうちの少なくとも1つと並行して、またはこれと同時に、フリップ判断構成要素320によって受け取られることがある。フリップ判断構成要素320は、少なくともデータビットのサブセットを受け取ったことに基づいて、受け取られたデータビットが反転されたかどうかを決定するように構成されてもよいし、フリップ判断構成要素320は、すべてのデータビットが受け取られるまで待機し、次いで、データビットが反転されたかどうか決定を行うように構成されてもよい。
同様に、さらなるまたは代わりの、データビット内の示された誤りが、(たとえば、データビット誤り訂正構成要素315で)訂正されることがあり、訂正されたデータビットは、次いで、フリップ判断構成要素320に、およびデータバス判断構成要素325にも、直接的に送られることがある。いくつかの実施例では、データビットは、誤り訂正されたフリップビットとは別個の線上でフリップ判断構成要素320に直接的に送られることがある。誤り訂正されたフリップビットは、データビットとは別個の線上で送られることがあるので、データビットは、フリップ判断構成要素320への送出の前に誤り訂正構成要素で誤り訂正されたフリップビットを受け取ることを待機しなくてもよいことがある。いくつかの実施例では、フリップビットを受け取った後、データビットのうちの少なくともいくつかが、フリップ判断構成要素320で受け取られることがある。
フリップ判断構成要素320は、1つもしくは複数のデータビットおよび/または1つもしくは複数のフリップビットが反転されたかどうかを決定することがある。いくつかの実施例では、フリップ判断構成要素320は、(たとえば、専用フリップビット線を通じて)フリップビット誤り訂正構成要素310から直接的にフリップビットを受け取ることがある。データビットは、それぞれのローカルバスを介してデータビット誤り訂正構成要素315-a、315-b、…315-nから送られることがあり、本明細書において他の図を参照して説明されるフリップ判断構成要素320とデータバス判断構成要素325の両方で受け取られることがある。いくつかの実施例では、フリップ判断構成要素320は、受け取られたデータビットおよび誤り訂正されたフリップビットに基づいて、構成された論理基準を使用して、出力値を決定することがある。
いくつかの実施例では、1つまたは複数の誤りの位置を特定した後、デコーダ305は、1つもしくは複数のデータビット、1つもしく複数のパリティビット、および/または1つもしくは複数のフリップビットをそれぞれの誤り訂正構成要素に送ることがある。いくつかの実施例では、デコーダ305は、受け取ったデータビット内に1つまたは複数の誤りがあれば、それの位置を特定し、この情報をそれぞれのデータビット誤り訂正構成要素に送ることがある。この実施例では、デコーダ305は、1つまたは複数のビット内の(たとえば、データ[0]内の)誤りの位置を特定することがある。次いで、デコーダ305は、この誤り場所をデータビット誤り訂正構成要素315-aに送ることがある。図3では4つのデータビット誤り訂正構成要素315のみが示されているが、適宜、データビットの各セットに対して対応するデータビット誤り訂正構成要素があってよい。
図4は、本開示の態様による誤り訂正ビットフリッピング方式をサポートする装置400の一実施例を示す。いくつかの実施例では、装置400は、本明細書において図1~図3を参照して説明される1つまたは複数の構成要素を含んでよい。たとえば、装置400は、図2および図3を参照して説明される誤り訂正構成要素を含んでよい。装置400は、デコーダ405と、フリップビット誤り訂正構成要素410と、データビット誤り訂正構成要素415-a、415-b…415-nと、フリップ判断構成要素420と、データバス判断構成要素425とを含んでよい。
図4では、ECCデコーダ403は、1つまたは複数のデータビット、1つまたは複数のパリティビット、および1つまたは複数のフリップビットを受け取ることがあり、ECCデコーダ403は、場合によっては、バイナリデコーダ405と結合されることがある。ECCデコーダ403は、いくつかの実施例では、複数のデータビットおよび複数のパリティビットを復号し得る。ECCデコーダ403に関連する復号するプロセスは、1つまたは複数のデータビット、1つまたは複数のパリティビット、および1つまたは複数のフリップビットのうちの少なくとも1つと関連づけられた誤りの決定を容易にし得る。
いくつかの実施例では、ECCデコーダ403は、1つまたは複数のデータビット、1つまたは複数のパリティビット、および1つまたは複数のフリップビットをバイナリデコーダ405に送ることがある。いくつかの実施例では、バイナリデコーダ405は、各対応する誤り訂正構成要素に誤り情報を送ることがある。いくつかの実施例では、バイナリデコーダ405は、複数のデータビットに関する誤り情報を決定することがある。バイナリデコーダ405は、複数のデータビットに関する誤り情報を、対応するデータビット誤り訂正構成要素415-a、415-b…415-nの各々に送ることがある。いくつかの実施例では、バイナリデコーダは、少なくとも1つのフリップビットについての誤り情報を決定し、誤り情報(たとえば、誤りおよび/または誤り場所の標識)をフリップビット誤り訂正構成要素410に送ることがある。いくつかの実施例では、バイナリデコーダ405は、複数のパリティビットのうちの少なくとも1つについての誤り情報を決定することがあり、誤り情報(たとえば、誤りおよび/または誤り場所の標識)をパリティビット誤り訂正構成要素(図4に示されない)に送ることがあり、パリティビット誤り訂正構成要素は、データビット誤り訂正構成要素415-a、415-b…415-nおよび/またはフリップビット誤り訂正構成要素410に類似してよい。
いくつかの実施例では、バイナリデコーダ405は、データ線すなわちデータ[0]上でデータビットの第1のセットに関する誤り情報をデータビット誤り訂正構成要素415に送ることがある。次いで、データビットは、データバス判断構成要素425を介してフリップ判断構成要素420にローカルバス407-aすなわちLBUS[0]上で送られることがある。データビットは、誤り訂正されたフリップビットを受け取ることなどのトリガを待機する必要なく送られてよい。データビットは、ビット誤りが、誤り訂正され得る、データビットであるにせよフリップビットにあるにせよ、任意の誤り訂正構成要素が任意の単一のビット誤りを訂正するとすぐに、送られてよい。
いくつかの実施例では、データビットは、ローカルバスすなわちLBUS[0]を介して、線407-a上で、誤り訂正構成要素415-aからフリップ判断構成要素420およびデータバス判断構成要素425に送られることがある。各データビット誤り訂正構成要素は、対応するローカルバスすなわちLBUS[n]を介してデータビットを送ることがある。さらに、ローカルバス線407-a、407-b…407-nのすべては、1つまたは複数の汎用ローカルバス線すなわちLBUS[127:0]上での送られることがあり、この1つまたは複数の汎用ローカルバス線すなわちLBUS[127:0]は、フリップ判断構成要素420およびデータバス判断構成要素425への入力線であってよい。図4では汎用ローカルバス線のうちの1つLBUS[127:0]のみが示されているが、複数の汎用ローカルバスは、誤り訂正構成要素からフリップ判断構成要素420およびデータバス判断構成要素425にデータビットを送るために用いられることがある。
いくつかの実施例では、データバス判断構成要素425は、データビットを入力として受け取ることがある。データビットを非反転論理構成要素および、反転論理構成要素に渡すことによって、1つまたは複数の動作が実行され得る(たとえば、データビットの値がリフレッシュされ得る)。次いで、非反転論理構成要素および反転論理構成要素の出力は、マルチプレクサに渡されることがある。マルチプレクサは、非反転論理構成要素および反転論理構成要素からのデータビットならびにフリップ判断構成要素からの出力値を受け取ることがある。フリップ判断構成要素420からの出力値は、データビットがマルチプレクサで反転され得るかどうかのインジケータであってよい。これらの入力は、1つまたは複数のグローバルバス線すなわちGBUS[127:0]への出力に適切なデータを生じさせるために、互いに多重化されることがある。いくつかの実施例では、データバス判断構成要素425のマルチプレクサは、1つまたは複数のグローバルデータバス線GBUS[127:0]と結合されることがある。
いくつかの実施例では、誤り訂正構成要素415-a、415-b…415-nおよび410は、複数のビットのうちの少なくとも1つと関連づけられた誤りを訂正することがある。この誤りは、いくつかの実施例では、さまざまな場合の中でもとりわけ、バイナリデコーダ405で誤りを決定したことに一部は基づいて、またはECCデコーダ403で発生した復号プロセスに応じて、訂正されることがある。
いくつかの実施例では、フリップビットは、フリップビット誤り訂正構成要素410で処理または誤り訂正されることがある。バイナリデコーダ405から受け取られた情報と、場合によっては、フリップビット誤り訂正構成要素410で実行された1つまたは複数の動作(たとえば、決定など)とに基づいて、フリップビットは、処理され(たとえば、フリップビットを処理することは、フリップビットを訂正することまたはフリップビットを訂正しないことおよびフリップビットを誤り訂正構成要素に渡すことを含んでよい)または訂正されることがあり、次いで、フリップビット線412上でフリップ判断構成要素420に直接的に送られることがある。フリップ判断構成要素420に直接的に処理されたまたは誤り訂正されたフリップビットを送ることによって、データビットは、フリップ判断構成要素420に送られる前に、誤り訂正されたフリップビットを受け取ることを待機しなくてもよいことがある。データビットは、フリップ判断構成要素420に直接的に、誤り訂正されたフリップビットとは別個の線上で、送られ得るので、メモリシステムは、減少された送出時間により、より速く、より効率的に動作することがある。さらに、誤り訂正されたフリップビットが、フリップ判断構成要素420においてより速い一方向性線上で受け取られたことにより、フリップ判断構成要素420における判断は、少なくともいくつかのデータビットがフリップ判断構成要素420で受け取られるとすぐに、発生してよい。
いくつかの実施例では、フリップビット線412は、フリップビット誤り訂正構成要素410をフリップ判断構成要素420と結合する線(たとえば、専用線)であってよい。フリップビット線412は、場合によっては、一方向性線であってよい。さらにまたはあるいは、データビット線407-a、407-b…407-nは、双方向性線であってよい。いくつかの実施例では、フリップビット線412は、データビット線407-a、407-b…407-nよりも低い容量性負荷を有することがある。さらに、フリップビット線412は、読み出し専用線として構成されてよく、データビット線は、読み出し/書き込み線として構成されてよい。さらに、場合によっては、フリップビット線412は、データビット線407-a、407-b…407-nよりも速い送出速度とともに構成されてよい。いくつかの実施例では、フリップビット線412は、より速いデータ送出速度および/または他の有利な特徴を有することがあるので、送られた誤り訂正されたフリップビットは、有利には、データビット(たとえば、誤り訂正されることがあるデータビット)が受け取られる前にフリップ判断構成要素420によって受け取られることがある。誤り訂正されたフリップビットは、データビットとは別個の線上で送られることがあるので、データビットは、フリップ判断構成要素320への送出の前に誤り訂正構成要素で誤り訂正されたフリップビットを受け取ることを待機しなくてもよいことがあり、したがって、メモリシステム内での待ち時間を減少させる。
いくつかの実施例では、誤り訂正されたフリップビットは、データビットのうちの少なくとも1つと並行して、またはこれと同時に、フリップ判断構成要素420によって受け取られることがある。フリップ判断構成要素420は、データビットのサブセットを受け取ったことに基づいて、受け取られたデータビットが反転されたかどうかを決定するように構成されてもよいし、フリップ判断構成要素420は、すべてのデータビットが受け取られるまで待機し、次いで、データビットが反転されたかどうか決定を行うように構成されてもよい。
図5は、本開示の態様による誤り訂正ビットフリッピング方式をサポートする装置500の一実施例を示す。いくつかの実施例では、装置500は、本明細書において図2、図3、および図4を参照して説明される1つまたは複数の構成要素を含んでよい。装置500は、いくつかの実施例では、図4のフリップ判断構成要素420および図3のフリップ判断構成要素320に類似したフリップ判断構成要素520の構成要素を含んでよい。
図5は、フリップ判断構成要素520の構成要素の一実施例を示す。以前に図4を参照して論じられたように、データビット(たとえば、場合によっては誤り訂正されることがあるデータビット)は、フリップ判断構成要素420で受け取られることがある。図5に示されるように、個々のデータビットのうちの1つが、対応する個々の論理構成要素530-a、530-b、…530-nで受け取られることがある。論理構成要素(たとえば、論理構成要素530-a)は、実行された1つまたは複数の動作(たとえば、決定、比較)に基づいてデータビットの出力を決定することがある。いくつかの実施例では、フリップ判断構成要素520の出力は、図4を参照して論じられたデータバス判断構成要素425のマルチプレクサでフリップビットを反転させるかどうかのインジケータであってよい。
いくつかの実施例では、フリップ判断構成要素520は、構成された論理基準を使用して、受け取られたデータビットが反転されるべきかどうかを決定することがある。いくつかの実施例では、構成された論理基準は、フリップ判断構成要素520内に記憶されることがある。
いくつかの実施例では、これは、受け取られたデータビットが5つ以上の1を含み得るかどうかを決定することによって達成され得る。例示的なしきい値、ここでは4つの1は、フリップ判断構成要素520内で使用される構成された論理基準がバイトベースの評価であってよいので、使用されることがある。バイト内には8つのビットがあるので、半分のデータビットすなわち4つのビットを調べた後、フリップ判断構成要素520は、データビットを反転させることについて判断を下してよい。これは一実施例にすぎず、他の技法および代替形態が具体的に企図される。いくつかの実施例では、フリップ判断構成要素520は、受け取られたデータビットを評価し、各バイトの4つ以下のビットが、ある論理値(たとえば、1の値またはゼロの値)であることがあり得るかどうかを決定し、受け取られたデータビットを反転させるべきかどうかを決定することがある。いくつかの実施例では、構成された論理基準は、受け取られたデータビットが5つ以上の0を含み得るかの判断を含んでよい。データビットは、5つ以上の1があるかどうかを決定するために評価されてよいが、任意の数または値が使用されてよい。いくつかの実施例では、データビットは、6つ以上の1、5つの0、6つの1、6つの0、7つの1、7つの0などがあるかどうかを決定するために評価されることがある。評価され得るデータビットの数が少ないほど、消費される電力が少なくなり得るので、この実施例において4つの1を使用することによって、フリップ判断構成要素520でデータビットを処理するとき、低い電力消費量が保証され得る。一般的に、決定は、論理構成要素の内部または外部にある構成された論理基準の任意のセットに基づいてよい。
いくつかの実施例では、半分以上のデータビットがフリップ判断構成要素520において反転されるべきであるという決定が行われることがある。しかしながら、フリップ判断構成要素520においてデータビットを反転させることによって、あまりにも多くの電力が消費されることがあり、そのため、データビットが反転されるべきであるというインジケータが、メモリデバイスの電力消費量を減少させるように、反転のためにデータバス判断構成要素のマルチプレクサに送信されることがある。
論理構成要素530(たとえば、論理構成要素530-a、530-b、…530-n)の出力は、他の論理構成要素540(たとえば、論理構成要素540-a、540-b、…540-n)に送られることがあり、他の論理構成要素は、場合によっては、XOR構成要素を含んでよい。3つの論理構成要素530および3つの論理構成要素540のみが示されているが、1つまたは複数のデータ誤り訂正構成要素(たとえば、415-a~415-n)に対応する受け取られたデータビットのセットの各々のための対応する論理構成要素540および対応する論理構成要素530があることがある。
さらに、誤り訂正されたフリップビットは、フリップ判断構成要素520において受け取られることがある。誤り訂正されたフリップビットは、いくつかの実施例では、XOR構成要素540への入力であってよい。XOR構成要素540の出力は、図3および図4を参照して論じられたように、データバス判断構成要素(図示せず)に送られ得る出力値を提供し得る。任意の適切な論理は、XOR構成要素540としての類似の論理出力を達成するために使用されてよく、たとえば、さまざまな実施例の中でもとりわけ、データビットは、類似の結果をもたらすために、最初に反転され、次いで、XNOR構成要素に入力されてよい。
いくつかの実施例では、フリップ判断構成要素520は、データビットが反転されたかどうかを決定することがある。論理構成要素530は、受け取られたデータビットが、所与の論理状態を有するいくつかのビットを含み得る(たとえば、5つ以上の1が存在する)という判断を出力することがある。フリップ判断構成要素520からの出力値は、データバス判断構成要素(図5に示されない)に送られることがあり、出力値は、データビットがマルチプレクサで反転され得るかどうかのインジケータであってよい。これらの入力は、グローバルバスGBUS[127:0]への出力に適切なデータを生じさせるために、互いに多重化されることがある。
フリップ判断構成要素520は、受け取られたデータビットが反転されるべきかどうかを決定し得る任意の適切な論理構成要素または構成された論理基準を含んでよい。一実施例では、フリップ判断構成要素520は、データビットが反転されるべきかどうかを決定するためにデータビットが5つ以上の1を有するかどうかを分析する論理または構成された論理基準を含んでよい。任意の数の論理方式がデータ反転を決定するために使用されてよいが、データビットを処理するときにより少ない電力を消費する論理方式が望ましいことがある。いくつかの実施例では、フリップ判断構成要素520は、受け取られたデータビットの論理状態の数がしきい値を満たすと決定するために、受け取られたデータビットを構成された論理基準と比較することがある。次いで、フリップ判断構成要素は、受け取られたデータビットの論理状態の数がしきい値を満たすという標識を出力することがある。構成された論理基準は、本明細書においてさらに詳細に論じられる。
第1の実施例として、受け取られたデータビットが4つ以下の1を含み、フリップビット値が0である場合、判断は、データビットが反転されていないことを示すことがあり、フリップ判断構成要素520は、データビットを反転させないようにデータバス判断構成要素に標識を送ることがある。第2の実施例として、論理構成要素530が、受け取られたデータビットが4つ以下の1を含み得るという判断を出力することがあり、フリップビット値が1である場合、判断は、データビットが反転されており、フリップ判断構成要素520がデータビットを反転させるようにデータバス判断構成要素に標識を送り得ることを示すことがある。第3の実施例として、論理構成要素530が、受け取られたデータビットが5つ以上の1を含み得るという判断を出力することがあり、フリップビット値が0である場合、判断は、データビットが反転されたことを示すことがある。したがって、フリップ判断構成要素520は、データビットを反転させるようにデータバス判断構成要素に標識を送ることがある。第4の実施例として、論理構成要素530が、受け取られたデータビットが5つ以上の1を含み得るという判断を出力することがあり、フリップビット値が1である場合、判断は、データビットが反転されておらず、フリップ判断構成要素520がデータビットを反転させないようにデータバス判断構成要素に標識を送り得ることを示すことがある。データビットをフリップ判断構成要素520の論理構成要素と比較する際、データビットが反転されるべきかどうか決定が行われることがある。決定がフリップ判断構成要素520で行われると、判断の標識が、反転させるためにデータバス判断構成要素(図5に示されない)に送られることがある。
図6は、本開示のさまざまな実施形態による誤り訂正ビットフリッピング方式をサポートするメモリアレイのブロック図を示す。ブロック図600はメモリアレイ100-aを含んでよく、メモリアレイ100-aは、図1を参照して論じられたメモリアレイ100の一実施例であってよい。メモリアレイ100-aは、電子メモリ装置と呼ばれることがあり、メモリコントローラ140-aと、ワード線110-aと、ビット線115-aと、感知構成要素125-aと、メモリセル105-aとを含んでよく、これらは、図1を参照して説明されたメモリコントローラ140、ワード線110、ビット線115、感知構成要素125、およびメモリセル105の実施例であってよい。メモリアレイ100-aは、基準構成要素620と、ラッチ625と、読み出し構成要素650も含んでよい。メモリアレイ100-aの構成要素は、互いと電子通信していてもよく、図1~図5を参照して説明される機能を実行してよい。
メモリコントローラ140-aは、他の構成要素と組み合わせて、メモリアレイ100-a全体を通じて電圧を印加し、データをメモリセル105-aに書き込み、メモリセル105-aからデータを読み出し、一般的に、図1~5に説明されるようにメモリアレイ100-aを動作させる。メモリコントローラ140-aは、バイアス構成要素610と、タイミング構成要素615とを含んでよい。場合によっては、メモリコントローラは、ビットフリッピング構成要素645を含んでよい。メモリコントローラ140-aは、メモリセル105-a、感知構成要素125-a、および基準構成要素620と電子通信していてもよい。
バイアス構成要素610は、電圧をそれらのさまざまなノードに印加することによってワード線110-aまたはビット線115-aをアクティブ化するように(たとえば、メモリコントローラ140-aによって)構成されてよい。たとえば、バイアス構成要素610は、本明細書において説明されるようにメモリセル105-aを読み出すまたは書き出すために電圧を印加するように構成されてよい。場合によっては、メモリコントローラ140-aは、図1を参照して説明されたように、行デコーダ、列デコーダ、または両方を含んでよい。このことは、メモリコントローラ140-aが1つまたは複数のメモリセル105にアクセスすることを可能にし得る。バイアス構成要素810はまた、感知構成要素125-aのための基準信号を生成するために、電位を基準構成要素620に提供し得る。さらに、バイアス構成要素610は、感知構成要素125-aの動作のための電位を提供することがある。
タイミング構成要素615は、本明細書において論じられる、読み出しおよび書き込みなどのメモリ機能を実行するように、切り換えおよび電圧印加のためのタイミングを含めて、さまざまなワード線選択またはプレートバイアスのタイミングを制御するように構成されてよい。場合によっては、タイミング構成要素615は、バイアス構成要素610の動作を制御することがある。
基準構成要素620は、感知構成要素125-aのための基準信号を生成するためにさまざまな構成要素を含んでよい。基準構成要素620は、基準信号を生じさせるように構成された回路を含んでよい。
感知構成要素125-aは、メモリセル105-aからの信号を基準構成要素620からの基準信号と比較し得る。論理状態を決定すると、感知構成要素は、次いで、ラッチ625内に出力を記憶し得、ラッチ625は、メモリアレイ100-aが一部である電子デバイスの動作に従って使用され得る。場合によっては、基準構成要素620、感知構成要素125-a、およびラッチ825は、メモリコントローラ140-aの構成要素であってよい。
ビットフリッピング構成要素645は、誤り訂正ビットフリッピング方式の態様を管理するために使用されることがある。たとえば、ビットフリッピング構成要素645は、ビットフリッピング動作のためにバイアス構成要素610および/またはタイミング構成要素615にタイミング情報を提供するために使用されることがある。ビットフリッピング構成要素645は、フリップビット生成構成要素および/またはビットフリッピング構成要素も含んでよい。
読み出し構成要素650は、ラッチ625に記憶された情報ビットを処理するために使用されてよい。読み出し構成要素650は、図2を参照して論じられた装置200の態様を含んでよい。
誤り訂正構成要素655は、たとえば、読み出しコマンドがメモリコントローラ140-aから送られ、メモリセル105-aで受け取られ得る後で、メモリセル105-aからフリップビットおよびデータビットを受け取り得る。いくつかの実施例では、各々が少なくともデータビットおよび/またはフリップビットのサブセットに対応し得る複数の誤り訂正構成要素があることがある。この実施例では、単一のフリップビットが論じられ得るが、これは、複数のフリップビットが誤り訂正構成要素655において受け取られ得るので、説明を目的とする。いくつかの実施例では、誤り訂正構成要素655は、受け取られたフリップビットおよびデータビットを誤り訂正することがある。フリップビットを誤り訂正した後、誤り訂正されたフリップビットは、フリップ判断構成要素(図示されず)に直接的に送られ得る。誤り訂正されたフリップビットは、場合によっては、専用の、一方向性の、および/または読み出し専用線上でフリップ判断構成要素に送られることがある。さらに、誤り訂正されたデータビットは、フリップ判断構成要素にも送られることがある。誤り訂正されたデータビットは、誤り訂正されたフリップビットとは異なる線上で送られることがあり、この線は、データビット線は読み出し/書き込み線であってよいので、フリップビット線よりも遅い送出速度を有してよい。したがって、誤り訂正されたデータビットは、フリップビットと同時にまたはその後にフリップ判断構成要素に到着することがある。誤り訂正されたフリップビットおよび誤り訂正されたデータビットを受け取った後、フリップ判断構成要素は、誤り訂正されたデータビットが反転されたかどうかを決定し得る。
いくつかの実施例では、ビットフリッピング構成要素645は、メモリアレイ100-aで受け取られたデータビットを反転させることがある。反転されたデータビットは、メモリアレイ100-aに記憶されてよく、ホストデバイス(またはコントローラなど)からのコマンド(たとえば、読み出しコマンド)の場合、メモリアレイ100-aは、データビットを反転させ得る。反転されたデータビットは、データビットが反転されたことを示し得る反転ビットまたはフリップビットを含むことがある。
いくつかの実施例では、データビット、フリップビット、およびパリティビットは、以前に誤り訂正構成要素655に関して論じられたように、最初にメモリアレイ100-aから、デコーダに、誤り訂正構成要素に、次いでデータビットが反転されるべきかどうかを決定し得るフリップ判断構成要素に、提供されることがある。
図7は、本開示のさまざまな実施形態による誤り訂正ビットフリッピング方式をサポートするシステムを示す。システム700はデバイス705を含み、デバイス705は、さまざまな構成要素を接続するまたは物理的に支持するためにプリント回路基板であってもよいし、これを含んでもよい。デバイス705はメモリアレイ100-bを含んでよく、メモリアレイ100-bは、図1および図6を参照して説明されるメモリアレイ100の一実施例であってよい。メモリアレイ100-bは、メモリコントローラ140-bとメモリセル105-bと含んでよく、メモリコントローラ140-bおよびメモリセル105-bは、図1および図6を参照して説明されたメモリコントローラ140およびメモリセル105の実施例であってよい。デバイス705は、プロセッサ710と、BIOS構成要素715と、周辺機器構成要素720と、入力/出力制御構成要素725も含んでよい。デバイス705の構成要素は、バス730を通じて互いと電子通信していてもよい。
プロセッサ710は、メモリコントローラ140-bを通じてメモリアレイ100-bを動作させるように構成されてよい。場合によっては、プロセッサ710は、図1および図6を参照して説明されるメモリコントローラ140の機能を実行し得る。他の場合では、メモリコントローラ140-bは、プロセッサ710に統合されることがある。プロセッサ710は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)または他のプログラム可能な論理デバイス、ディスクリートゲートまたはトランジスタ論理、ディスクリートハードウェア構成要素であってもよいし、これらのタイプの構成要素の組み合わせであってもよく、プロセッサ710は、本明細書において説明されるさまざまな機能を実行し得る。プロセッサ710は、たとえば、デバイス705にさまざまな機能またはタスクを実行させるためにメモリアレイ100-b内に記憶されたコンピュータ可読命令を実施するように構成されてよい。
BIOS構成要素715は、システム700のさまざまなハードウェア構成要素を初期化して走らせ得る、ファームウェアとして動作される基本入力/出力システム(BIOS)を含むソフトウェア構成要素であってよい。BIOS構成要素715はまた、プロセッサ710とさまざまな構成要素、たとえば、周辺機器構成要素720、入力/出力制御構成要素725などとの間のデータフローを管理し得る。BIOS構成要素715は、読み出し専用メモリ(ROM)、フラッシュメモリ、または他の任意の不揮発性メモリ内に記憶された、プログラムもしくはソフトウェアを含んでよい。
周辺機器構成要素720は、デバイス705に統合された、任意の入力デバイスもしくは出力デバイス、またはそのようなデバイスのためのインタフェースであってよい。実施例としては、ディスクコントローラ、サウンドコントローラ、グラフィックスコントローラ、イーサネットコントローラ、モデム、ユニバーサルシリアルバス(USB)コントローラ、シリアルポートもしくはパラレルポート、またはperipheral component interconnect(PCI)スロットもしくはaccelerated graphics port(AGP)スロットなどの周辺機器カードスロットがあり得る。
入力/出力制御構成要素725は、プロセッサ710と、周辺機器構成要素720、入力デバイス735、または出力デバイス740との間のデータ通信を管理し得る。入力/出力制御構成要素725は、デバイス905に統合されていない周辺機器も管理することがある。場合によっては、入力/出力制御構成要素725は、外部周辺機器への物理的接続またはポートを表すことがある。
入力735は、デバイス705またはその構成要素に入力を提供する、デバイス705の外部にあるデバイスまたは信号を表すことがある。これは、ユーザインタフェースまたは他のデバイスとのまたはそれらの間のインタフェースを含んでよい。場合によっては、入力735は、周辺機器構成要素720を介してデバイス705とインタフェースする周辺機器であってもよいし、入力/出力制御構成要素725によって管理されてもよい。
出力740は、デバイス705またはその構成要素のいずれかから出力を受け取るように構成された、デバイス705の外部にあるデバイスまたは信号を表すことがある。出力740の実施例としては、ディスプレイ、オーディオスピーカ、印刷デバイス、別のプロセッサまたはプリント回路基板などがあり得る。場合によっては、出力740は、周辺機器構成要素720を介してデバイス705とインタフェースする周辺機器であってもよいし、入力/出力制御構成要素725によって管理されてもよい。
誤り訂正構成要素745は、メモリアレイ100-bからフリップビット、データビット、および/またはパリティビットを受け取り得る。いくつかの実施例では、データビットおよびフリップビットのための対応する誤り訂正構成要素があることがある。パリティビットのうちの1つまたは複数のための誤り訂正構成要素もあることがある。さらに、誤り訂正構成要素で受け取られた複数のフリップビットがあることがあるが、この実施例では、単一のフリップビットが論じられる。誤り訂正構成要素は、たとえば、読み出しコマンドがメモリアレイ100-bで受け取られ得る後、受け取られたフリップビットおよびデータビットを誤り訂正することがある。
フリップビットを誤り訂正した後、誤り訂正されたフリップビットは、フリップ判断構成要素(図7に示されず)に直接的に送られ得る。誤り訂正フリップビットは、専用の、一方向性の、および/または読み出し専用線上でフリップ判断構成要素に送られてよい。さらに、誤り訂正データビットは、フリップ判断構成要素にも送られることがある。誤り訂正されたデータビットは、誤り訂正されたフリップビットとは異なる線上で送られることがあり、読み出し/書き込み線のより遅い速度により、誤り訂正されたデータビットは、フリップビットと同時にまたはその後に到着することがある。誤り訂正されたフリップビットおよび誤り訂正されたデータビットを受け取った後、フリップ判断構成要素は、誤り訂正されたデータビットが反転されるべきかどうかを決定し得る。
メモリコントローラ140-b、デバイス705、およびメモリアレイ100-bの構成要素は、それらの機能を行うように設計された回路から構成されてよい。これは、本明細書において説明される機能を行うように構成されたさまざまな回路要素、たとえば、導電ライン、トランジスタ、キャパシタ、インダクタ、抵抗、増幅器、または他の能動素子もしくは非能動素子を含んでよい。
図8は、本開示の態様による誤り訂正ビットフリッピング方式をサポートする方法800を示すフローチャートを示す。方法800の動作は、さまざまな実施例の中でもとりわけ、本明細書において説明されたように、コントローラまたはその構成要素によって実装されてよい。たとえば、方法800の動作は、図1~図5を参照して説明されたコントローラまたはホストデバイスによって実行されてよい。いくつかの実施例では、コントローラは、本明細書において説明される機能を実行するようにコントローラの機能要素を制御するために命令のセットを実施し得る。さらにまたはあるいは、コントローラは、特殊目的ハードウェアを使用して、本明細書において説明された機能の態様を実行することがある。
805では、構成要素は、フリップビット誤り訂正構成要素において、フリップビットが訂正されるべきであるかどうかの標識を受け取り得る。805の動作は、本明細書において説明された方法により実行されてよい。いくつかの実施例では、805の動作の態様は、図1~図5を参照して説明された誤り訂正構成要素によって実行されてよい。
810では、構成要素コントローラは、フリップビットが訂正されるべきかどうかの受け取られた標識に基づいてフリップビット誤り訂正構成要素においてフリップビットを処理してよく、この処理は、フリップビット誤り訂正構成要素においてフリップビットを訂正すること、またはフリップビットをフリップビット誤り訂正構成要素に通過させることを含む。810の動作は、本明細書において説明された方法により実行されてよい。いくつかの実施例では、810の動作の態様は、図1~図5を参照して説明された誤り訂正構成要素によって実行されてよい。
815では、構成要素は、フリップビットを処理したことに基づいて、処理されたフリップビットを、出力線を通じてフリップ判断構成要素に直接的に送ってよい。815の動作は、本明細書において説明された方法により実行されてよい。いくつかの実施例では、815の動作の態様は、図1~図5を参照して説明されたフリップ判断構成要素によって実行されてよい。
装置が説明される。この装置は、プロセッサと、このプロセッサと電子通信しているメモリと、このメモリ内に記憶された命令とを含んでよい。この命令は、フリップビット誤り訂正構成要素において、フリップビットが訂正されるべきかどうかの標識を受け取ることと、フリップビットが訂正されるべきかどうかの受け取られた標識に基づいてフリップビット誤り訂正構成要素においてフリップビットを処理することであって、この処理は、フリップビット誤り訂正構成要素においてフリップビットを訂正すること、またはフリップビットをフリップビット誤り訂正構成要素に通過させることを含む、処理することと、フリップビットを処理したことに基づいて、処理されたフリップビットを、出力線を通じてフリップ判断構成要素に直接的に送ることを装置に行わせるために、プロセッサによって実施可能であってよい。
別の装置が説明される。この装置は、フリップビット誤り訂正構成要素において、フリップビットが訂正されるべきであるかどうかの標識を受け取るための手段と、フリップビットが訂正されるべきかどうかの標識を受け取ったことに基づいてフリップビット誤り訂正構成要素においてフリップビットを処理するための手段であって、この処理は、フリップビット誤り訂正構成要素においてフリップビットを訂正すること、またはフリップビットをフリップビット誤り訂正構成要素に通過させることを含む、処理するための手段と、フリップビットを処理したことに基づいて、処理されたフリップビットを、出力線を通じてフリップ判断構成要素に直接的に送るための手段とを含む。
コードを記憶するための非一時的なコンピュータ可読媒体が説明される。このコードは、フリップビット誤り訂正構成要素において、フリップビットが訂正されるべきかどうかの標識を受け取ることと、フリップビットが訂正されるべきかどうかの受け取られた標識に基づいてフリップビット誤り訂正構成要素においてフリップビットを処理することであって、この処理は、フリップビット誤り訂正構成要素においてフリップビットを訂正すること、またはフリップビットをフリップビット誤り訂正構成要素に通過させることを含む、処理することと、フリップビットを処理したことに基づいて、処理されたフリップビットを、出力線を通じてフリップ判断構成要素に直接的に送ることを行うための、プロセッサによって実施可能な命令を含んでよい。
本明細書において説明される方法、装置、および非一時的なコンピュータ可読媒体のいくつかの実施例では、標識を受け取ることは、フリップビットが訂正されるべきであるという標識を受け取るための動作、特徴、手段、または命令を含んでよく、フリップビットを処理することは、フリップビット誤り訂正構成要素においてフリップビットの誤りを訂正することを含む。
本明細書において説明される方法、装置、および非一時的なコンピュータ可読媒体のいくつかの実施例は、フリップビットを処理したことに基づいて第2の出力線を通じてフリップ判断構成要素にデータビットのセットを送るための動作、特徴、手段、または命令をさらに含んでよい。
本明細書において説明される方法、装置、および非一時的なコンピュータ可読媒体のいくつかの実施例は、処理されたフリップビットをフリップ判断構成要素に送ったことに基づいて第2の出力線を通じてフリップ判断構成要素にデータビットのセットを送るための動作、特徴、手段、または命令をさらに含んでよい。
本明細書において説明される方法、装置、および非一時的なコンピュータ可読媒体のいくつかの実施例では、処理されたフリップビットを、出力線を通じてフリップ判断構成要素に直接的に送ったことに基づいて第2の出力線を通じてフリップ判断構成要素にデータビットのセットを送るための動作、特徴、手段、または命令をさらに含んでよい。
本明細書において説明される方法、装置、および非一時的なコンピュータ可読媒体のいくつかの実施例は、データビット誤り訂正構成要素において、データビットが誤り訂正されるべきかどうかの第2の標識を受け取り、受け取られた第2の標識に基づいてデータビット誤り訂正構成要素においてデータビットを訂正し、訂正されたデータビットを、第2の出力線を通じてフリップ判断構成要素に送るための、動作、特徴、手段、または命令をさらに含んでよい。
図9は、本開示の態様による誤り訂正ビットフリッピング方式をサポートする方法900を示すフローチャートを示す。方法900の動作は、本明細書において説明されたコントローラまたはその構成要素によって実装されてよい。たとえば、方法900の動作は、図1~図5を参照して説明されたコントローラまたはホストデバイスによって実行されてよい。いくつかの実施例では、コントローラは、本明細書において説明される機能を実行するようにコントローラの機能要素を制御するために命令のセットを実施し得る。さらにまたはあるいは、コントローラは、特殊目的ハードウェアを使用して、本明細書において説明された機能の態様を実行することがある。
905では、構成要素は、フリップ判断構成要素において、第1の出力線を介してフリップビット誤り訂正構成要素から誤り訂正されたフリップビットを直接的に受け取り得る。905の動作は、本明細書において説明された方法により実行されてよい。いくつかの実施例では、905の動作の態様は、図1~図5を参照して説明されたフリップ判断構成要素によって実行されてよい。
910では、構成要素は、フリップ判断構成要素において、第2の出力線を介してデータビット誤り訂正構成要素から1つまたは複数のデータビットを受け取り得る。910の動作は、本明細書において説明された方法により実行されてよい。いくつかの実施例では、910の動作の態様は、図1~図5を参照して説明されたフリップ判断構成要素によって実行されてよい。
915では、構成要素は、フリップ判断構成要素において、誤り訂正されたフリップビットを受け取ったことと、1つまたは複数のデータビットを受け取ったこととに基づいて、1つまたは複数のデータビットを反転させるかどうかを決定し得る。915の動作は、本明細書において説明された方法により実行されてよい。いくつかの実施例では、915の動作の態様は、図1~図5を参照して説明されたフリップ判断構成要素によって実行されてよい。
装置が説明される。この装置は、プロセッサと、このプロセッサと電子通信しているメモリと、このメモリ内に記憶された命令とを含んでよい。この命令は、フリップ判断構成要素において、第1の出力線を介してフリップビット誤り訂正構成要素から誤り訂正されたフリップビットを直接的に受け取ることと、フリップ判断構成要素において、第2の出力線を介してデータビット誤り訂正構成要素から1つまたは複数のデータビットを受け取ることと、フリップ判断構成要素において、誤り訂正されたフリップビットを受け取ったことと、1つまたは複数のデータビットを受け取ったこととに基づいて、データビットを反転させるかどうかを決定することを装置に行わせるためにプロセッサによって実施可能であってよい。
別の装置が説明される。この装置は、フリップ判断構成要素において、第1の出力線を介してフリップビット誤り訂正構成要素から誤り訂正されたフリップビットを直接的に受け取るための手段と、フリップ判断構成要素において、第2の出力線を介してデータビット誤り訂正構成要素から1つまたは複数のデータビットを受け取るための手段と、フリップ判断構成要素において、誤り訂正されたフリップビットを受け取ったことと、1つまたは複数のデータビットを受け取ったこととに基づいて、データビットを反転させるかどうかを決定するための手段とを含んでよい。
コードを記憶するための非一時的なコンピュータ可読媒体が説明される。このコードは、フリップ判断構成要素において、第1の出力線を介してフリップビット誤り訂正構成要素から直接的に、誤り訂正されたフリップビットを受け取り、フリップ判断構成要素において、第2の出力線を介してデータビット誤り訂正構成要素から1つまたは複数のデータビットを受け取り、フリップ判断構成要素において、誤り訂正されたフリップビットを受け取ったことと1つまたは複数のデータビットを受け取ったこととに基づいて、データビットを反転させるかどうかを決定するための、プロセッサによって実施可能な命令を含んでよい。
本明細書において説明される方法、装置、および非一時的なコンピュータ可読媒体のいくつかの実施例では、第2の出力線を介して1つまたは複数のデータビットを受け取ることは、フリップビットを受け取った後に1つまたは複数のデータビットのうちの少なくともいくつかを受け取るための動作、特徴、手段、または命令を含んでよい。
図10は、本開示の態様による誤り訂正ビットフリッピング方式をサポートする方法1000を示すフローチャートを示す。方法1000の動作は、本明細書において説明されたコントローラまたはその構成要素によって実装されてよい。たとえば、方法1000の動作は、図1~図5を参照して説明されたコントローラまたはホストデバイスによって実行されてよい。いくつかの実施例では、コントローラは、本明細書において説明される機能を実行するようにコントローラの機能要素を制御するために命令のセットを実施し得る。さらにまたはあるいは、コントローラは、特殊目的ハードウェアを使用して、本明細書において説明された機能の態様を実行することがある。
1005では、構成要素は、フリップ判断構成要素において、第1の出力線を介してフリップビット誤り訂正構成要素から誤り訂正されたフリップビットを直接的に受け取り得る。1005の動作は、本明細書において説明された方法により実行されてよい。いくつかの実施例では、1005の動作の態様は、図1~図5を参照して説明されたフリップ判断構成要素によって実行されてよい。
1010では、構成要素は、一方向性出力線を介して、誤り訂正されたフリップビットを受け取り得る。1010の動作は、本明細書において説明された方法により実行されてよい。いくつかの実施例では、1010の動作の態様は、図1~図5を参照して説明されたフリップ判断構成要素によって実行されてよい。
1015では、構成要素は、フリップ判断構成要素において、第2の出力線を介してデータビット誤り訂正構成要素から1つまたは複数のデータビットを受け取り得る。1015の動作は、本明細書において説明された方法により実行されてよい。いくつかの実施例では、1015の動作の態様は、図1~図5を参照して説明されたフリップ判断構成要素によって実行されてよい。
1020では、構成要素は、双方向性出力線を介して1つまたは複数のデータビットを受け取り得る。1020の動作は、本明細書において説明された方法により実行されてよい。いくつかの実施例では、1020の動作の態様は、図1~図5を参照して説明されたフリップ判断構成要素によって実行されてよい。
1025では、構成要素は、フリップ判断構成要素において、誤り訂正されたフリップビットを受け取ったことと、1つまたは複数のデータビットを受け取ったこととに基づいて、1つまたは複数のデータビットを反転させるかどうかを決定し得る。1025の動作は、本明細書において説明された方法により実行されてよい。いくつかの実施例では、1025の動作の態様は、図1~図5を参照して説明されたフリップ判断構成要素によって実行されてよい。
本明細書において説明される方法、装置、および非一時的なコンピュータ可読媒体のいくつかの実施例では、一方向性出力線を介して誤り訂正されたフリップビットを受け取るための動作、特徴、手段、または命令をさらに含んでよく、第2の出力線を介して1つまたは複数のデータビットを受け取ることは、および双方向性出力線を介して1つまたは複数のデータビットを受け取ることを含む。
本明細書において説明される方法、装置、および非一時的なコンピュータ可読媒体のいくつかの実施例では、誤り訂正されたフリップビットを受け取ることおよび1つまたは複数のデータビットを受け取ることは、フリップビットと1つまたは複数のデータビットのうちの少なくともいくつかを並行して受け取るための動作、特徴、手段、または命令を含んでよい。
本明細書において説明される方法、装置、および非一時的なコンピュータ可読媒体のいくつかの実施例は、フリップ判断構成要素において、1つまたは複数のデータビットおよび誤り訂正されたフリップビットを受け取ったことに基づいて構成された論理基準を使用して出力値を決定し、データバス判断構成要素に出力値のインジケータを送るための動作、特徴、手段、または命令をさらに含んでよい。
本明細書において説明される方法、装置、および非一時的なコンピュータ可読媒体のいくつかの実施例は、出力値および誤り訂正されたフリップビットに基づいて、フリップ判断構成要素から、データビットが反転されたかどうかの第2のインジケータを送るための動作、特徴、手段、または命令をさらに含んでよい。
本明細書において説明される方法、装置、および非一時的なコンピュータ可読媒体のいくつかの実施例では、フリップ判断構成要素において、構成された論理基準を使用して出力値を決定することは、第1のタイプの受け取られたデータビットの論理状態の数がしきい値よりも大きくなり得るかどうかを決定するために、受け取られたデータビットを構成された論理基準と比較するための動作、特徴、手段、または命令を含んでよい。
本明細書において説明される方法、装置、および非一時的なコンピュータ可読媒体のいくつかの実施例では、フリップ判断構成要素において、構成された論理基準を使用して出力値を決定することは、排他的論理和(XOR)構成要素を含む論理構成要素を使用して1つまたは複数のデータビットのうちの少なくともいくつかと誤り訂正されたフリップビットを比較するための動作、特徴、手段、または命令を含んでよい。
本明細書において説明される方法、装置、および非一時的なコンピュータ可読媒体のいくつかの実施例は、フリップ判断構成要素において、データビットを反転させるかどうかを決定したことに基づいてデータビットを反転させ、反転されたデータビットを出力するための動作、特徴、手段、または命令をさらに含んでよい。
方法が説明される。この方法は、フリップビット誤り訂正構成要素において、フリップビットが訂正されるべきかどうかの標識を受け取ることと、フリップビットが訂正されるべきかどうかの標識を受け取ったことに基づいてフリップビット誤り訂正構成要素においてフリップビットを処理することであって、この処理は、フリップビット誤り訂正構成要素においてフリップビットを訂正すること、またはフリップビットをフリップビット誤り訂正構成要素に通過させることを含む、処理することと、フリップビットを処理したことに基づいて、処理されたフリップビットを、出力線を通じてフリップ判断構成要素に直接的に送ることとを含んでよい。
装置が説明される。この装置は、プロセッサと、このプロセッサと電子通信しているメモリと、このメモリ内に記憶された命令とを含んでよい。この命令は、フリップ判断構成要素において、第1の出力線を介してフリップビット誤り訂正構成要素から誤り訂正されたフリップビットを直接的に受け取ることと、フリップビットが訂正されるべきかどうかの標識を受け取ったことに基づいてフリップビット誤り訂正構成要素においてフリップビットを処理することであって、この処理は、フリップビット誤り訂正構成要素においてフリップビットを訂正すること、またはフリップビットをフリップビット誤り訂正構成要素に通過させることを含む、処理することと、フリップビットを処理したことに基づいて、処理されたフリップビットを、出力線を通じてフリップ判断構成要素に直接的送ることを装置に行わせるために、プロセッサによって実施可能であってよい。
別の装置が説明される。この装置は、フリップビット誤り訂正構成要素において、フリップビットが訂正されるべきかの標識を受け取るための手段と、フリップビットが訂正されるべきかどうかの標識を受け取ったことに基づいてフリップビット誤り訂正構成要素においてフリップビットを処理するための手段であって、この処理は、フリップビット誤り訂正構成要素においてフリップビットを訂正すること、またはフリップビットをフリップビット誤り訂正構成要素に通過させることを含む、処理するための手段と、フリップビットを処理したことに基づいて、処理されたフリップビットを、出力線を通じてフリップ判断構成要素に直接的に送るための手段を含んでよい。
コードを記憶する非一時的なコンピュータ可読媒体が説明される。このコードは、フリップビット誤り訂正構成要素において、フリップビットが訂正されるべきかどうかの標識を受け取ることと、フリップビットが訂正されるべきかどうかの受け取られた標識に基づいてフリップビット誤り訂正構成要素においてフリップビットを処理することであって、この処理は、フリップビット誤り訂正構成要素においてフリップビットを訂正すること、またはフリップビットをフリップビット誤り訂正構成要素に通過させることを含む、処理することと、フリップビットを処理したことに基づいて、処理されたフリップビットを、出力線を通じてフリップ判断構成要素に直接的に送ることを行うための、プロセッサによって実施可能な命令を含んでよい。
本明細書において説明される方法、装置、および非一時的なコンピュータ可読媒体のいくつかの実施例では、標識を受け取ることは、フリップビットが訂正されるべきであるという標識を受け取るための動作、特徴、手段、または命令を含んでよく、フリップビットを処理することは、フリップビット誤り訂正構成要素においてフリップビットの誤りを訂正することを含む。
本明細書において説明される方法、装置、および非一時的なコンピュータ可読媒体のいくつかの実施例は、フリップビットを処理したことに基づいて第2の出力線を通じてフリップ判断構成要素にデータビットのセットを送るための動作、特徴、手段、または命令をさらに含んでよい。
本明細書において説明される方法、装置、および非一時的なコンピュータ可読媒体のいくつかの実施例は、処理されたフリップビットをフリップ判断構成要素に送ったことに基づいて第2の出力線を通じてフリップ判断構成要素にデータビットのセットを送るための動作、特徴、手段、または命令をさらに含んでよい。
本明細書において説明される方法、装置、および非一時的なコンピュータ可読媒体のいくつかの実施例では、第2の出力線を通じてフリップ判断構成要素にデータビットのセットを送ることは、処理されたフリップビットを、出力線を通じてフリップ判断構成要素に直接的に送ったことに基づいて、第2の出力線を通じてフリップ判断構成要素にデータビットのセットを直接的に送るための動作、特徴、手段、または命令を含んでよい。
本明細書において説明される方法、装置、および非一時的なコンピュータ可読媒体のいくつかの実施例は、データビット誤り訂正構成要素において、データビットが誤り訂正されるべきかどうかの第2の標識を受け取り、受け取られた第2の標識に基づいてデータビット誤り訂正構成要素においてデータビットを訂正し、訂正されたデータビットを、第2の出力線を通じてフリップ判断構成要素に送るための、動作、特徴、手段、または命令をさらに含んでよい。
方法が説明される。方法は、フリップ判断構成要素において、第1の出力線を介してフリップビット誤り訂正構成要素から直接的に、誤り訂正されたフリップビットを受け取ることと、フリップ判断構成要素において、第2の出力線を介してデータビット誤り訂正構成要素から1つまたは複数のデータビットを受け取ることと、フリップ判断構成要素において、誤り訂正されたフリップビットを受け取ったことおよび1つまたは複数のデータビットを受け取ったことに基づいて1つまたは複数のデータビットを反転させるかどうかを決定することとを含んでよい。
装置が説明される。この装置は、プロセッサと、このプロセッサと電子通信しているメモリと、このメモリ内に記憶された命令とを含んでよい。この命令は、フリップ判断構成要素において、第1の出力線を介してフリップビット誤り訂正構成要素から直接的に、誤り訂正されたフリップビットを受け取ることと、フリップ判断構成要素において、第2の出力線を介してデータビット誤り訂正構成要素から1つまたは複数のデータビットを受け取ることと、フリップ判断構成要素において、誤り訂正されたフリップビットを受け取ったことと1つまたは複数のデータビットを受け取ったこととに基づいて、1つまたは複数のデータビットを反転させるかどうかを決定することを装置に行わせるためにプロセッサによって実施可能であってよい。
別の装置が説明される。この装置は、フリップ判断構成要素において、第1の出力線を介してフリップビット誤り訂正構成要素から誤り訂正されたフリップビットを直接的に受け取るための手段と、フリップ判断構成要素において、第2の出力線を介してデータビット誤り訂正構成要素から1つまたは複数のデータビットを受け取るための手段と、フリップ判断構成要素において、誤り訂正されたフリップビットを受け取ったことと、1つまたは複数のデータビットを受け取ったこととに基づいて、1つまたは複数のデータビットを反転させるかどうかを決定するための手段とを含んでよい。
コードを記憶する非一時的なコンピュータ可読媒体が説明される。このコードは、フリップ判断構成要素において、第1の出力線を介してフリップビット誤り訂正構成要素から直接的に、誤り訂正されたフリップビットを受け取り、フリップ判断構成要素において、第2の出力線を介してデータビット誤り訂正構成要素から1つまたは複数のデータビットを受け取り、フリップ判断構成要素において、誤り訂正されたフリップビットを受け取ったことと1つまたは複数のデータビットを受け取ったこととに基づいて、1つまたは複数のデータビットを反転させるかどうかを決定するための、プロセッサによって実施可能な命令を含んでよい。
本明細書において説明される方法、装置、および非一時的なコンピュータ可読媒体のいくつかの実施例では、第2の出力線を介して1つまたは複数のデータビットを受け取ることは、誤り訂正されたフリップビットを受け取った後に1つまたは複数のデータビットのうちの少なくともいくつかを受け取るための動作、特徴、手段、または命令を含んでよい。
本明細書において説明される方法、装置、および非一時的なコンピュータ可読媒体のいくつかの実施例では、第1の出力線を介して誤り訂正されたフリップビットを受け取ることは、一方向性出力線を介して誤り訂正されたフリップビットを受け取るための動作、特徴、手段、または命令を含んでよく、第2の出力線を介して1つまたは複数のデータビットを受け取ることが、および双方向性出力線を介して1つまたは複数のデータビットを受け取ることを含む。
本明細書において説明される方法、装置、および非一時的なコンピュータ可読媒体のいくつかの実施例では、誤り訂正されたフリップビットを受け取ることおよび1つまたは複数のデータビットを受け取ることは、誤り訂正されたフリップビットと1つまたは複数のデータビットのうちの少なくともいくつかを並行して受け取るための動作、特徴、手段、または命令を含んでよい。
本明細書において説明される方法、装置、および非一時的なコンピュータ可読媒体のいくつかの実施例は、フリップ判断構成要素において、1つまたは複数のデータビットおよび誤り訂正されたフリップビットを受け取ったことに基づいて構成された論理基準を使用して出力値を決定し、データバス判断構成要素に出力値のインジケータを送るための動作、特徴、手段、または命令をさらに含んでよい。
本明細書において説明される方法、装置、および非一時的なコンピュータ可読媒体のいくつかの実施例は、出力値および誤り訂正されたフリップビットに基づいて、フリップ判断構成要素から、1つまたは複数のデータビットが反転されたかどうかの第2のインジケータを送るための動作、特徴、手段、または命令をさらに含んでよい。
本明細書において説明される方法、装置、および非一時的なコンピュータ可読媒体のいくつかの実施例では、フリップ判断構成要素において、構成された論理基準を使用して出力値を決定することは、第1のタイプの受け取られたデータビットの論理状態の数がしきい値よりも大きくなり得るかどうかを決定するために、受け取られたデータビットを構成された論理基準と比較するための動作、特徴、手段、または命令を含んでよい。
本明細書において説明される方法、装置、および非一時的なコンピュータ可読媒体のいくつかの実施例では、フリップ判断構成要素において、構成された論理基準を使用して出力値を決定することは、排他的論理和(XOR)構成要素を含む論理構成要素を使用して1つまたは複数のデータビットのうちの少なくともいくつかと誤り訂正されたフリップビットを比較するための動作、特徴、手段、または命令を含んでよい。
装置が説明される。この装置は、誤りロケータ構成要素と結合されたフリップビット誤り訂正構成要素と、出力線を通じてフリップビット誤り訂正構成要素と直接的に結合されたフリップ判断構成要素とを含んでよく、フリップビット誤り訂正構成要素は、誤りロケータ構成要素からフリップビットのフリップビット誤りの標識を受け取り、フリップビット誤りの標識を受け取ったことに基づいてフリップビット誤りを訂正し、誤り訂正されたフリップビットを、出力線を通じてフリップ判断構成要素に直接的に送る。
いくつかの実施例では、出力線は、フリップビット誤り訂正構成要素とフリップ判断構成要素との間の専用出力線のための動作、特徴、手段、または命令を含んでよく、フリップビット誤り訂正構成要素は、誤り訂正されたフリップビットを、専用出力線を通じてフリップ判断構成要素に直接的に送るように動作可能であってよい。
いくつかの実施例では、出力線は、フリップビット誤り訂正構成要素とフリップ判断構成要素との間の一方向性出力線のための動作、特徴、手段、または命令を含んでよく、フリップビット誤り訂正構成要素は、誤り訂正されたフリップビットを、一方向性出力線を通じてフリップ判断構成要素に直接的に送るように動作可能であってよい。
装置が説明される。この装置は、フリップ判断構成要素と、このフリップ判断構成要素と結合され、フリップビット誤り訂正構成要素とフリップ判断構成要素を結合する第1の出力線を通じてフリップ判断構成要素に直接的に1つまたは複数のフリップビットを送るように構成されたフリップビット誤り訂正構成要素と、フリップ判断構成要素と結合され、第2の出力線を通じてフリップ判断構成要素に1つまたは複数のデータビットを送るように構成されたデータビット誤り訂正構成要素とを含んでよい。
いくつかの実施例は、第2の出力線を通じて受け取られた1つもしくは複数のデータビットのうちの少なくとも1つまたは第1の出力線を通じて受け取られた1つもしくは複数のフリップビットに基づいて、1つまたは複数のデータビットが反転されるべきかどうかを決定することをさらに含んでよい。
いくつかの実施例では、データビット誤り訂正構成要素は、第2の出力線を通じてフリップ判断構成要素と直接的に結合されてよい。
いくつかの実施例は、誤り訂正ステータスの標識を受け取り、標識を受け取ったことに応じて、第2の出力線を通じて1つまたは複数のデータビットを、第1の出力線を通じて1つまたは複数のフリップビットをそれぞれ送ることをさらに含んでよい。
いくつかの実施例では、データビット誤り訂正構成要素およびフリップビット誤り訂正構成要素はそれぞれ、1つまたは複数のデータビットと1つまたは複数のフリップビットを同時に受け取るように構成されてよい。
いくつかの実施例では、フリップ判断構成要素は、1つまたは複数のデータビットを反転させるかどうかを示すデータビット反転判断を出力するように構成された記憶された論理基準のための動作、特徴、手段、または命令を含んでよく、装置は、さらに含む。
いくつかの実施例は、第1のタイプの受け取られたデータビットの論理状態の数が閾値を満たすと決定し、第1のタイプの受け取られたデータビットの論理状態の数がしきい値を満たすという標識を出力するために、受け取られたデータビットを構成された論理基準と比較することをさらに含んでよい。
いくつかの実施例では、第1の出力線は第1の送出速度を有してよく、第2の出力線は、第1の送出速度よりも遅いことがある第2の送出速度を有してよい。
本明細書において説明される方法は、可能な実施例について説明するものであり、動作および段階は、並び変えられてもよいし、または場合によっては修正されてよく、他の実施例も可能であることが留意されるべきである。そのうえ、方法のうちの2つ以上からの態様が組み合わされてもよい。
本明細書において説明される情報および信号は、さまざまな異なる技術および技法のいずれかを使用して表されてよい。たとえば、上記の説明全体を通じて参照され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組み合わせによって表されてよい。いくつかの図面は、信号を単一の信号として示すことがある。しかしながら、信号は信号のバスを表してよく、バスはさまざまなビット幅を有してよいことは、当業者によって理解されよう。
「電子通信」、「導電接触」、「接続された」、および「結合された」という用語は、構成要素間の信号の流れをサポートする構成要素間の関係を指す。構成要素は、構成要素間の信号の流れをいつでもサポートすることができる構成要素間の導電経路がある場合、互いと電子通信している(または導電接触している、または接続されている、または結合されている)と考えられる。いつでも、互いと電子通信している(または導電接触している、または接続されている、または結合されている)構成要素間の導電経路は、接続される構成要素を含むデバイスの動作に基づいて、開回路であってもよいし、閉回路であってもよい。接続された構成要素間の導電経路は、構成要素間の直接的導電経路であってもよいし、接続された構成要素間の導電経路は、スイッチ、トランジスタ、または他の構成要素などの中間構成要素を含んでよい間接的な導電経路であってもよい。場合によっては、接続された構成要素間の信号の流れは、たとえば、スイッチまたはトランジスタなどの1つまたは複数の中間構成要素を使用して、ある時間にわたって中断されることがある。
「結合」という用語は、信号が現在は導電経路を通じて構成要素間で通信することが可能でない構成要素間の開回路関係から信号が導電経路を通じて構成要素間で通信可能である構成要素間の閉回路関係に移る条件を指す。コントローラなどの構成要素が他の構成要素と結合するとき、構成要素は、以前は信号が流れることを許可しなかった導電経路を通じて信号が他の構成要素間を流れることを可能にする変更を開始する。
「絶縁された」という用語は、信号が現在構成要素間を流れることが可能でない構成要素間の関係を指す。構成要素は、それらの間に開回路がある場合、互いから絶縁される。たとえば、2つの構成要素間に設置されたスイッチによって離されたそれらの構成要素は、スイッチが開いているとき、互いから絶縁される。コントローラが、2つの構成要素を互いから絶縁させるとき、コントローラは、以前は信号が流れることを許可した導電経路を使用して信号が構成要素間を流れるのを防止する変更に影響する。
本明細書において使用される「層」という用語は、幾何学的構造の層状のもの(stratum)またはシートを指す。各層は、3つの寸法(たとえば、高さ、幅、および奥行き)を有してよく、面の少なくとも一部分を覆ってよい。たとえば、層は、2つの寸法が第3の寸法よりも大きい3次元構造、たとえば、薄膜であってよい。層は、異なる要素、構成要素、および/または材料を含んでよい。場合によっては、1つの層は、2つ以上の副層から構成されてよい。添付の図のうちのいくつかでは、3次元層の2つの寸法は、例示の目的で描かれている。しかしながら、当業者は、層は本質的に3次元であることを認識するであろう。
メモリアレイを含めて、本明細書において論じられるデバイスは、シリコン、ゲルマニウム、シリコン-ゲルマニウム合金、ガリウム砒素、窒化ガリウムなどの半導体基板上に形成されてよい。場合によっては、基板は、半導体ウェーハである。他の場合には、基板は、シリコンオングラス(SOG)もしくはシリコンオンサファイア(SOP)などのシリコンオンインシュレータ(SOI)基板、または別の基板上の半導体材料のエピタキシャル層であってよい。基板または基板の小領域の導電率は、限定するものではないが、リン、ホウ素、またはヒ素を含むさまざまな化学種を使用したドーピングを通じて制御されてよい。ドーピングは、基板の初期形成または成長中に、イオン注入によって、または他の任意のドーピング手段によって、実行されてよい。
本明細書において論じられるスイッチング構成要素またはトランジスタは、電界効果トランジスタ(FET)を表し、ソースとドレインとゲートとを含む3端子デバイスを含んでよい。端子は、導電材料、たとえば金属を通じて、他の電子要素に接続されてよい。ソースおよびドレインは、導電性であってよく、高度にドープされた、たとえば縮退した、半導体領域を含んでよい。ソースおよびドレインは、軽度にドープされた半導体領域またはチャネルによって分離されてよい。チャネルがn型である(たとえば、多数キャリアは電子である)場合、FETは、n型FETと呼ばれることがある。チャネルがp型である(たとえば、多数キャリアは正孔である)場合、FETは、p型FETと呼ばれることがある。チャネルは、絶縁ゲート酸化物によってキャップされてよい。チャネル導電率は、電圧をゲートに印加することによって制御され得る。たとえば、正の電圧または負の電圧をそれぞれn型FETまたはp型FETに印加すると、チャネルが導電性になることがある。トランジスタのしきい電圧よりも大きいまたはこれに等しい電圧がトランジスタゲートに印加されるとき、トランジスタは、「オン」または「アクティブ化」されてよい。トランジスタのしきい電圧よりも小さい電圧がトランジスタゲートに印加されるとき、トランジスタは、「オフ」または「非アクティブ化」されてよい。
添付の図面に関して本明細書に記載された説明は、例示的な構成について説明したものであり、実装され得るまたは特許請求の範囲内にある実施例をすべて表すとは限らない。本明細書において使用される「「例示的な」という用語は、「好ましい」または「他の実施例よりも有利である」ではなく、「実施例、事例、または例示として働くこと」を意味する。詳細な説明は、説明された技法の理解をもたらすために、具体的な詳細を含む。しかしながら、これらの技法は、これらの具体的な詳細なしで実践され得る。いくつかの例では、よく知られている構造およびデバイスが、説明された実施例の概念を曖昧にすることを回避するために、ブロック図形式で示されている。
添付の図では、類似した構成要素または特徴が、同じ参照ラベルを有することがある。さらに、同じタイプのさまざまな構成要素は、参照ラベルの後に、破線と、類似の構成要素を区別する第2のラベルとが続くことによって、区別されることがある。第1の参照ラベルだけが本明細書で使用されるとき、説明は、第2の参照ラベルには関係なく同じ第1の参照ラベルを有する類似の構成要素のいずれか1つに適用可能である。
本明細書において説明される情報および信号は、さまざまな異なる技術および技法のいずれかを使用して表されてよい。たとえば、上記の説明全体を通じて参照され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組み合わせによって表されてよい。
本明細書において本開示に関連して説明されるさまざまな例示的なブロックおよびモジュールは、汎用プロセッサ、DSP、ASIC、FPGAもしくは他のプログラム可能な論理デバイス、ディスクリートなゲートもしくはトランジスタ論理、ディスクリートなハードウェア構成要素、または本明細書において説明される機能を実行するように設計されたそれらの任意の組み合わせを用いて実装または実行されてよい。汎用プロセッサは、マイクロプロセッサであってよいが、代替形態では、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であってよい。プロセッサは、コンピューティングデバイスの組み合わせ(たとえば、DSPとマイクロプロセッサの組み合わせ、複数のマイクロプロセッサ、DSPコアと連携する1つもしくは複数のマイクロプロセッサ、または他の任意のそのような構成)として実装されてもよい。
本明細書において説明される機能は、ハードウェア、プロセッサによって実施されるソフトウェア、ファームウェア、またはそれらの任意の組み合わせにおいて実装されてよい。プロセッサによって実施されるソフトウェアにおいて実装される場合、機能は、コンピュータ可読媒体上に1つまたは複数の命令またはコードとして記憶されてもよいし、それらを通じて送信されてもよい。他の実施例(example)および実施例(implementation)は、本開示および添付の特許請求の範囲の範囲内にある。たとえば、ソフトウェアの性質により、本明細書において説明される機能は、プロセッサによって実施されるソフトウェア、ハードウェア、ファームウェア、ハードワイヤリング、またはこれらのいずれかの組み合わせを使用して実装可能である。機能を実装する特徴は、機能の部分が異なる物理的ロケーションに実装されるように分散されることを含めて、さまざまな位置に物理的に配置されてもよい。また、特許請求の範囲を含めて、本明細書で使用されるとき、項目のリスト(たとえば、「のうちの少なくとも1つ」または「のうちの1つまたは複数」などの句によって始められる項目のリスト)において使用される「または」は、たとえば、「A、B、またはCのうちの少なくとも1つ」のリストは、AまたはBまたはCまたはABまたはACまたはBCまたはABC(たとえば、AおよびBおよびC)を意味するような包括的なリストを示す。また、本明細書で使用されるとき、「に基づいて」という句は、条件の閉集合の参照と解釈されないものとする。たとえば、「条件Aに基づいて」と説明される例示的なステップは、本開示の範囲から逸脱することなく、条件Aと条件Bの両方に基づいてよい。言い換えれば、本明細書で使用されるとき、「に基づいて」という句は、「に少なくとも一部は基づいて」という句と同じように解釈されるべきである。
コンピュータ可読媒体は、非一時的なコンピュータ記憶媒体と、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体の両方を含む。非一時的な記憶媒体は、汎用コンピュータまたは特殊目的コンピュータによってアクセス可能である任意の利用可能な媒体であってよい。限定ではなく、実施例として、非一時的なコンピュータ可読媒体は、RAM、ROM、電気的に消去可能なプログラマブル読み出し専用メモリ(EEPROM)、コンパクトディスク(CD)ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または命令もしくはデータ構造の形で所望のプログラムコード手段を運搬もしくは記憶するために使用可能であり、汎用コンピュータもしくは特殊目的コンピュータ、もしくは汎用プロセッサもしくは特殊目的プロセッサによってアクセス可能である他の任意の非一時的な媒体を含むことができる。また、任意の接続は、コンピュータ可読媒体と呼ばれるのが適切である。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信された場合、その同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書で使用されるディスク(disk)およびディスク(disc)は、CD(compact disc)、レーザディスク(laser disc)、光ディスク(optical disc)、デジタル多用途ディスク(DVD:digital versatile disc)、フロッピーディスク(floppy disk)、およびブルーレイディスク(登録商標)を含み、ここで、ディスク(disk)は通常、データを磁気的に再生し、ディスク(disc)は、レーザを用いてデータを光学的に再生する。上記の組み合わせも、コンピュータ可読媒体の範囲内に含まれる。
本明細書における説明は、当業者が本開示を作製または使用することを可能にするために提供される。本開示のさまざまな修正形態は、当業者には明らかであろう。本明細書において定義される一般的原理は、本開示の範囲から逸脱することなく、他の変形形態に適用され得る。したがって、本開示は、本明細書において説明される実施例および設計に限定されるべきでなく、本明細書で開示される原理および新規な特徴に一致する最も広い範囲が与えられるべきである。
センシング動作の信頼性は、メモリセル105を読み出すことから生じるセンシングウィンドウに依存することがある。たとえば、より大きいセンシングウィンドウは、より小さいセンシングウィンドウよりも少ないビット誤りと関連づけられることがある。センシングウィンドウは、論理1を記憶するときにメモリセル105を読み出すことから生じるディジット線115の電圧と、論理0を記憶するときにメモリセルを読み出すことから生じるディジット線115の電圧との差として、決定されることがある。感知構成要素125は、ラッチングと呼ばれることがある、信号の差を検出および増幅するために、さまざまなトランジスタまたは増幅器を含むことがある。メモリセル105の検出された論理状態は、次いで、列デコーダ130を通じて入力/出力135として出力されることがある。
メモリセル105は、関連するワード線110およびディジット線115をアクティブ化することによって、設定されてもよいし、書き込まれてもよい。本明細書において論じられるように、ワード線110をアクティブ化することによって、メモリセル105の対応する行がそれぞれのディジット線115に電気的に接続される。ワード線110がアクティブ化されている間、関連のあるディジット線115を制御することによって、メモリセル105が書き込まれることがある―たとえば、論理値が、メモリセル105内に記憶されることがある。列デコーダ130は、メモリセル105に書き込まれることになるデータ、たとえば入力/出力135を受け付ける。
いくつかの実施例では、1つまたは複数のデータビット、1つまたは複数のパリティビット、および1つまたは複数のフリップビットは、線250-a、250-b、および250-c上で(たとえば、メモリアレイ220から)受け取られることがある。いくつかの実施例では、メモリコントローラ(たとえば、図1を参照して説明されるメモリコントローラ140)は、メモリアレイ220からの1つもしくは複数のデータビット、1つもしくは複数のパリティビット、および/または1つもしくは複数のフリップビットの送出を開始し得る。いくつかの実施例では、メモリコントローラ140は、ローカルメモリコントローラ、外部メモリコントローラ、またはホストデバイスコントローラであってよい。メモリアレイ220から送られると、1つもしくは複数のデータビット、1つもしくは複数のパリティビット、および/または1つもしくは複数のフリップビットは、線250-a、250-b、および250-c上で誤り訂正符号(ECCデコーダ225によって受け取られてよい。線250-a、250-b、および250-cはそれぞれ、フリップビット、データビット、およびパリティビットを搬送する線であってよい。
フリップ判断構成要素320は、1つもしくは複数のデータビットおよび/または1つもしくは複数のフリップビットが反転されたかどうかを決定することがある。いくつかの実施例では、フリップ判断構成要素320は、(たとえば、専用フリップビット線を通じて)フリップビット誤り訂正構成要素310から直接的にフリップビットを受け取ることがある。データビットは、それぞれのローカルバスを介してデータビット誤り訂正構成要素315-a、315-b…315-nから送られることがあり、本明細書において他の図を参照して説明されるフリップ判断構成要素320とデータバス判断構成要素325の両方で受け取られることがある。いくつかの実施例では、フリップ判断構成要素320は、受け取られたデータビットおよび誤り訂正されたフリップビットに基づいて、構成された論理基準を使用して、出力値を決定することがある。
図5は、フリップ判断構成要素520の構成要素の一実施例を示す。以前に図4を参照して論じられたように、データビット(たとえば、場合によっては誤り訂正されることがあるデータビット)は、フリップ判断構成要素420で受け取られることがある。図5に示されるように、個々のデータビットのうちの1つが、対応する個々の論理構成要素530-a、530-b…530-nで受け取られることがある。論理構成要素(たとえば、論理構成要素530-a)は、実行された1つまたは複数の動作(たとえば、決定、比較)に基づいてデータビットの出力を決定することがある。いくつかの実施例では、フリップ判断構成要素520の出力は、図4を参照して論じられたデータバス判断構成要素425のマルチプレクサでフリップビットを反転させるかどうかのインジケータであってよい。
論理構成要素530(たとえば、論理構成要素530-a、530-b…530-n)の出力は、他の論理構成要素540(たとえば、論理構成要素540-a、540-b…540-n)に送られることがあり、他の論理構成要素は、場合によっては、排他的論理和(XOR構成要素を含んでよい。3つの論理構成要素530および3つの論理構成要素540のみが示されているが、1つまたは複数のデータ誤り訂正構成要素(たとえば、415-a~415-n)に対応する受け取られたデータビットのセットの各々のための対応する論理構成要素540および対応する論理構成要素530があることがある。
さらに、誤り訂正されたフリップビットは、フリップ判断構成要素520において受け取られることがある。誤り訂正されたフリップビットは、いくつかの実施例では、構成要素540への入力であってよい。構成要素540の出力は、図3および図4を参照して論じられたように、データバス判断構成要素(図示せず)に送られ得る出力値を提供し得る。任意の適切な論理は、構成要素540としての類似の論理出力を達成するために使用されてよく、たとえば、さまざまな実施例の中でもとりわけ、データビットは、類似の結果をもたらすために、最初に反転され、次いで、否定排他的論理和(XNOR構成要素に入力されてよい。
入力/出力制御構成要素725は、プロセッサ710と、周辺機器構成要素720、入力735、または出力740との間のデータ通信を管理し得る。入力/出力制御構成要素725は、デバイス905に統合されていない周辺機器も管理することがある。場合によっては、入力/出力制御構成要素725は、外部周辺機器への物理的接続またはポートを表すことがある。
本明細書において説明される方法、装置、および非一時的なコンピュータ可読媒体のいくつかの実施例では、フリップ判断構成要素において、構成された論理基準を使用して出力値を決定することは、XR構成要素を含む論理構成要素を使用して1つまたは複数のデータビットのうちの少なくともいくつかと誤り訂正されたフリップビットを比較するための動作、特徴、手段、または命令を含んでよい。
本明細書において説明される方法、装置、および非一時的なコンピュータ可読媒体のいくつかの実施例では、フリップ判断構成要素において、構成された論理基準を使用して出力値を決定することは、XR構成要素を含む論理構成要素を使用して1つまたは複数のデータビットのうちの少なくともいくつかと誤り訂正されたフリップビットを比較するための動作、特徴、手段、または命令を含んでよい。
装置が説明される。この装置は、誤りロケータ構成要素と結合されたフリップビット誤り訂正構成要素と、出力線を通じてフリップビット誤り訂正構成要素と直接的に結合されたフリップ判断構成要素とを含んでよく、フリップビット誤り訂正構成要素は、誤りロケータ構成要素からフリップビットのフリップビット誤りの標識を受け取り、フリップビット誤りの標識を受け取ったことに基づいてフリップビット誤りを訂正し、訂正されたフリップビット誤りを、出力線を通じてフリップ判断構成要素に直接的に送る。
いくつかの実施例では、出力線は、フリップビット誤り訂正構成要素とフリップ判断構成要素との間の専用出力線のための動作、特徴、手段、または命令を含んでよく、フリップビット誤り訂正構成要素は、訂正されたフリップビット誤りを、専用出力線を通じてフリップ判断構成要素に直接的に送るように動作可能であってよい。
いくつかの実施例では、出力線は、フリップビット誤り訂正構成要素とフリップ判断構成要素との間の一方向性出力線のための動作、特徴、手段、または命令を含んでよく、フリップビット誤り訂正構成要素は、訂正されたフリップビット誤りを、一方向性出力線を通じてフリップ判断構成要素に直接的に送るように動作可能であってよい。
いくつかの実施例では、フリップ判断構成要素は、1つまたは複数のデータビットを反転させるかどうかを示すデータビット反転判断を出力するように構成された記憶された論理基準のための動作、特徴、手段、または命令を含んでよく、装置は、フリップ判断構成要素と結合されフリップ判断構成要素から出力値のインジケータを受け取るように構成されたデータバス判断構成要素をさらに含む。
いくつかの実施例は、第1のタイプの受け取られたデータビットの論理状態の数が閾値を満たすと決定するために、受け取られたデータビットを構成された論理基準と比較すること、及び、第1のタイプの受け取られたデータビットの論理状態の数がしきい値を満たすという標識を出力することをさらに含んでよい。
コンピュータ可読媒体は、非一時的なコンピュータ記憶媒体と、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体の両方を含む。非一時的な記憶媒体は、汎用コンピュータまたは特殊目的コンピュータによってアクセス可能である任意の利用可能な媒体であってよい。限定ではなく、実施例として、非一時的なコンピュータ可読媒体は、RAM、ROM、電気的に消去可能なプログラマブル読み出し専用メモリ(EEPROM)、コンパクトディスク(CD)ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または命令もしくはデータ構造の形で所望のプログラムコード手段を運搬もしくは記憶するために使用可能であり、汎用コンピュータもしくは特殊目的コンピュータ、もしくは汎用プロセッサもしくは特殊目的プロセッサによってアクセス可能である他の任意の非一時的な媒体を含むことができる。また、任意の接続は、コンピュータ可読媒体と呼ばれるのが適切である。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信された場合、その同軸ケーブル、光ファイバケーブル、ツイストペア、DL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書で使用されるディスク(disk)およびディスク(disc)は、CD(compact disc)、レーザディスク(laser disc)、光ディスク(optical disc)、デジタル多用途ディスク(DVD:digital versatile disc)、フロッピーディスク(floppy disk)、およびブルーレイディスク(登録商標)を含み、ここで、ディスク(disk)は通常、データを磁気的に再生し、ディスク(disc)は、レーザを用いてデータを光学的に再生する。上記の組み合わせも、コンピュータ可読媒体の範囲内に含まれる。

Claims (25)

  1. フリップビット誤り訂正構成要素において、フリップビットが訂正されるべきかどうかの標識を受け取ることと、
    前記フリップビットが訂正されるべきかどうかの前記標識を受け取ったことに少なくとも一部は基づいて前記フリップビット誤り訂正構成要素において前記フリップビットを処理することであって、前記処理することは、前記フリップビット誤り訂正構成要素において前記フリップビットを訂正することまたは前記フリップビットを前記フリップビット誤り訂正構成要素に通過させることを含む、処理することと、
    前記フリップビットを処理したことに少なくとも一部は基づいて、前記処理されたフリップビットを、出力線を通じてフリップ判断構成要素に直接的に送ることと
    を含む方法。
  2. 前記標識を受け取ることが、前記フリップビットが訂正されるべきであるという標識を受け取ることを含み、前記フリップビットを処理することが、前記フリップビット誤り訂正構成要素において前記フリップビットの誤りを訂正することを含む、請求項1に記載の方法。
  3. 前記フリップビットを処理したことに少なくとも一部は基づいて、第2の出力線を通じて前記フリップ判断構成要素に複数のデータビットを送ること
    をさらに含む、請求項1に記載の方法。
  4. 前記フリップ判断構成要素に前記処理されたフリップビットを送ったことに少なくとも一部は基づいて、第2の出力線を通じて前記フリップ判断構成要素に複数のデータビットを送ること
    をさらに含む、請求項1に記載の方法。
  5. 前記第2の出力線を通じて前記フリップ判断構成要素に前記複数のデータビットを送ることが、
    前記処理されたフリップビットを、前記出力線を通じて前記フリップ判断構成要素に直接的に送ったことに少なくとも一部は基づいて、前記第2の出力線を通じて前記フリップ判断構成要素に直接的に前記複数のデータビットを送ること
    を含む、請求項4に記載の方法。
  6. データビット誤り訂正構成要素において、データビットが誤り訂正されるべきかどうかの第2の標識を受け取ることと、
    前記第2の標識を受け取ったことに少なくとも一部は基づいて、前記データビット誤り訂正構成要素において前記データビットを訂正することと、
    第2の出力線を通じて前記フリップ判断構成要素に前記訂正されたデータビットを送ることと
    をさらに含む、請求項1に記載の方法。
  7. 誤りロケータ構成要素と結合されたフリップビット誤り訂正構成要素と、
    出力線を通じて前記フリップビット誤り訂正構成要素と直接的に結合されたフリップ判断構成要素であって、
    前記誤りロケータ構成要素からフリップビットのフリップビット誤りの標識を受け取り、
    前記フリップビット誤りの前記標識を受け取ったことに少なくとも一部は基づいて前記フリップビット誤りを訂正し、
    前記出力線を通じて前記フリップ判断構成要素に直接的に前記誤り訂正されたフリップビットを送る、
    フリップ判断構成要素と
    を備える装置。
  8. 前記出力線が、
    前記フリップビット誤り訂正構成要素と前記フリップ判断構成要素との間の専用出力線であって、前記フリップビット誤り訂正構成要素が、前記専用出力線を通じて前記フリップ判断構成要素に直接的に前記誤り訂正されたフリップビットを送るように動作可能である、専用出力線
    を備える、請求項7に記載の装置。
  9. 前記出力線が、
    前記フリップビット誤り訂正構成要素と前記フリップ判断構成要素との間の一方向性出力線であって、前記フリップビット誤り訂正構成要素が、前記一方向性出力線を通じて前記フリップ判断構成要素に直接的に前記誤り訂正されたフリップビットを送るように動作可能である、一方向性出力線
    を備える、請求項7に記載の装置。
  10. フリップ判断構成要素において、第1の出力線を介してフリップビット誤り訂正構成要素から誤り訂正されたフリップビットを直接的に受け取ることと、
    データビット誤り訂正構成要素から前記フリップ判断構成要素において、第2の出力線を介して1つまたは複数のデータビットを受け取ることと、
    前記フリップ判断構成要素において、前記誤り訂正されたフリップビットを受け取ったことと、前記1つまたは複数のデータビットを受け取ったこととに少なくとも一部は基づいて、前記1つまたは複数のデータビットを反転させるかどうかを決定することと
    を含む方法。
  11. 前記第2の出力線を介して前記1つまたは複数のデータビットを受け取ることが、
    前記誤り訂正されたフリップビットを受け取った後、前記1つまたは複数のデータビットのうちの少なくともいくつかを受け取ること
    を含む、請求項10に記載の方法。
  12. 前記第1の出力線を介して前記誤り訂正されたフリップビットを受け取ることが、
    一方向性出力線を介してビット前記誤り訂正されたフリップを受け取ることを含み、前記第2の出力線を介して前記1つまたは複数のデータビットを受け取ることが、
    双方向性出力線を介して前記1つまたは複数のデータビットを受け取ること
    を含む、請求項10に記載の方法。
  13. 前記誤り訂正されたフリップビットを受け取ることおよび前記1つまたは複数のデータビットを受け取ることが、
    前記誤り訂正されたフリップビットと、前記1つまたは複数のデータビットのうちの少なくともいくつかとを並行して受け取ること
    を含む、請求項10に記載の方法。
  14. 前記フリップ判断構成要素において、前記1つまたは複数のデータビットおよび前記誤り訂正されたフリップビットを受け取ったことに少なくとも一部は基づいて、構成された論理基準を使用して出力値を決定することと、
    データバス判断構成要素に前記出力値のインジケータを送ることと
    をさらに含む、請求項10に記載の方法。
  15. 前記フリップ判断構成要素から、前記出力値および前記誤り訂正されたフリップビットに少なくとも一部は基づいて前記1つまたは複数のデータビットが反転されたかどうかの第2のインジケータを送ること
    をさらに含む、請求項14に記載の方法。
  16. 前記フリップ判断構成要素において、前記構成された論理基準を使用して前記出力値を決定することが、
    第1のタイプの前記受け取られたデータビットの論理状態の数がしきい値よりも大きいかどうかを決定するために、前記受け取られたデータビットを前記構成された論理基準と比較すること
    を含む、請求項14に記載の方法。
  17. 前記フリップ判断構成要素において、前記構成された論理基準を使用して前記出力値を決定することが、
    排他的論理和(XOR)構成要素を備える論理構成要素を使用して、前記1つまたは複数のデータビットのうちの少なくともいくつかと前記誤り訂正されたフリップビットを比較すること
    を含む、請求項16に記載の方法。
  18. フリップ判断構成要素と、
    前記フリップ判断構成要素と結合され、フリップビット誤り訂正構成要素と前記フリップ判断構成要素を結合する第1の出力線を通じて前記フリップ判断構成要素に直接的に1つまたは複数のフリップビットを送るように構成されたフリップビット誤り訂正構成要素と、
    前記フリップ判断構成要素と結合され、第2の出力線を通じて前記フリップ判断構成要素に1つまたは複数のデータビットを送るように構成されたデータビット誤り訂正構成要素と
    を備える装置。
  19. 前記フリップ判断構成要素が、
    前記第2の出力線を通じて受け取られた前記1つもしくは複数のデータビットのうちの少なくとも1つまたは前記第1の出力線を通じて受け取られた前記1つもしくは複数のフリップビットに少なくとも一部は基づいて、前記1つまたは複数のデータビットが反転されるべきかどうかを決定する
    ように構成される、請求項18に記載の装置。
  20. 前記データビット誤り訂正構成要素が、前記第2の出力線を通じて前記フリップ判断構成要素と直接的に結合される、請求項18に記載の装置。
  21. 前記データビット誤り訂正構成要素および前記フリップビット誤り訂正構成要素が、
    誤り訂正ステータスの標識を受け取り、前記標識を受け取ったことに応じて、前記第2の出力線を通じて前記1つまたは複数のデータビットを、前記第1の出力線を通じて前記1つまたは複数のフリップビットをそれぞれ送る
    ように構成される、請求項18に記載の装置。
  22. 前記データビット誤り訂正構成要素および前記フリップビット誤り訂正構成要素がそれぞれ、前記1つまたは複数のデータビットと前記1つまたは複数のフリップビットを同時に受け取るように構成される、請求項21に記載の装置。
  23. 前記フリップ判断構成要素が、
    前記1つまたは複数のデータビットを反転させるかどうかを示すデータビット反転判断を出力するように構成された記憶された論理基準を備え、前記装置が、
    前記フリップ判断構成要素と結合され、前記フリップ判断構成要素から前記フリップ判断構成要素出力値のインジケータを受け取るように構成されたデータバス判断構成要素
    をさらに備える、請求項18に記載の装置。
  24. 前記フリップ判断構成要素が、
    第1のタイプの前記受け取られたデータビットの論理状態の数がしきい値を満たすと決定するために、前記受け取られたデータビットを前記構成された論理基準と比較し、
    前記第1のタイプの前記受け取られたデータビットの前記論理状態の数が前記しきい値を満たすという標識を出力する
    ように構成される、請求項23に記載の装置。
  25. 前記第1の出力線が第1の送出速度を有し、前記第2の出力線が、前記第1の送出速度よりも遅い第2の送出速度を有する、請求項18に記載の装置。
JP2021529440A 2018-11-26 2019-10-25 誤り訂正ビットフリッピング方式 Pending JP2022507988A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/199,773 US10951232B2 (en) 2018-11-26 2018-11-26 Error correction bit flipping scheme
US16/199,773 2018-11-26
PCT/US2019/058141 WO2020112285A1 (en) 2018-11-26 2019-10-25 Error correction bit flipping scheme

Publications (1)

Publication Number Publication Date
JP2022507988A true JP2022507988A (ja) 2022-01-18

Family

ID=70770024

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021529440A Pending JP2022507988A (ja) 2018-11-26 2019-10-25 誤り訂正ビットフリッピング方式

Country Status (6)

Country Link
US (3) US10951232B2 (ja)
EP (1) EP3888090A4 (ja)
JP (1) JP2022507988A (ja)
KR (1) KR20210079388A (ja)
CN (1) CN113272907A (ja)
WO (1) WO2020112285A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10951232B2 (en) * 2018-11-26 2021-03-16 Micron Technology, Inc. Error correction bit flipping scheme
KR102588969B1 (ko) * 2019-03-19 2023-10-16 에스케이하이닉스 주식회사 오류 정정 디코더 및 이를 포함하는 메모리 시스템
CN112712838B (zh) * 2019-10-25 2024-07-26 长鑫存储技术(上海)有限公司 读操作电路、半导体存储器和读操作方法
CN112181710B (zh) * 2020-09-11 2022-03-29 厦门大学 一种基于比特翻转的固态盘数据存储方法和装置
US12105589B2 (en) * 2022-02-23 2024-10-01 Micron Technology, Inc. Parity-based error management for a processing system
CN114995752A (zh) * 2022-05-25 2022-09-02 武汉元赋存储企业管理咨询合伙企业(有限合伙) 基于mlc相变存储器的数据存储方法、读取方法及装置
US11934267B1 (en) 2022-08-28 2024-03-19 Micron Technology, Inc. Data inversion and unidirectional error detection
US20240256328A1 (en) * 2023-01-26 2024-08-01 Micron Technology, Inc. Preventing back-to-back flips of a bit in bit flipping decoding

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10135847A (ja) * 1996-10-25 1998-05-22 Nec Corp Atm通信装置の並列型ヘッダ誤り訂正回路およびヘッダ誤り訂正方法
WO2011030410A1 (ja) * 2009-09-09 2011-03-17 株式会社 東芝 メモリ装置
US20120166904A1 (en) * 2010-12-23 2012-06-28 International Business Machines Corporation Data bus inversion using spare error correction bits
US20120198313A1 (en) * 2011-01-31 2012-08-02 Everspin Technologies, Inc. Method of reading and writing to a spin torque magnetic random access memory with error correcting code
WO2016063592A1 (ja) * 2014-10-24 2016-04-28 ソニー株式会社 メモリコントローラ、メモリシステム、および、メモリコントローラの制御方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7734985B2 (en) * 2006-02-27 2010-06-08 Intel Corporation Systems, methods, and apparatuses for using the same memory type to support an error check mode and a non-error check mode
KR101466270B1 (ko) 2008-09-19 2014-11-28 삼성전자주식회사 비휘발성 메모리 시스템 및 그것의 데이터 처리 방법
JP5303325B2 (ja) * 2009-03-18 2013-10-02 ルネサスエレクトロニクス株式会社 データ処理装置
JP5942781B2 (ja) * 2012-04-16 2016-06-29 ソニー株式会社 記憶制御装置、メモリシステム、情報処理システム、および、記憶制御方法
US8990655B2 (en) * 2012-09-28 2015-03-24 Intel Corporation Techniques associated with error correction for encoded data
US9582354B2 (en) * 2014-01-28 2017-02-28 Infineon Technologies Ag Apparatus and method for improving data storage by data inversion
US9501352B2 (en) * 2014-03-05 2016-11-22 Kabushiki Kaisha Toshiba Memory device
US9729171B2 (en) 2015-09-24 2017-08-08 Intel Corporation Techniques for soft decision decoding of encoded data
US10075190B2 (en) 2015-10-27 2018-09-11 Sandisk Technologies Llc Adaptive scheduler for decoding
US10210040B2 (en) * 2016-01-28 2019-02-19 Nxp Usa, Inc. Multi-dimensional parity checker (MDPC) systems and related methods for external memories
US9923579B2 (en) * 2016-03-08 2018-03-20 International Business Machines Corporation Clock path technique for using on-chip circuitry to generate a correct encode pattern to test the on-chip circuitry
US10116333B2 (en) 2016-07-29 2018-10-30 Sandisk Technologies Llc Decoder with parallel decoding paths
KR102697887B1 (ko) * 2016-08-17 2024-08-22 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
JP6606039B2 (ja) * 2016-09-09 2019-11-13 東芝メモリ株式会社 メモリシステムおよび制御方法
US10148287B2 (en) 2016-11-08 2018-12-04 SK Hynix Inc. Bit-flipping LDPC decoding algorithm with hard channel information
KR102258140B1 (ko) * 2017-07-06 2021-05-28 삼성전자주식회사 반도체 메모리 장치의 에러 정정 회로, 반도체 메모리 장치 및 메모리 시스템
US10523236B2 (en) * 2017-11-21 2019-12-31 Silicon Motion, Inc. Method employed in LDPC decoder and the decoder
US10802909B2 (en) 2018-08-17 2020-10-13 Micron Technology, Inc. Enhanced bit flipping scheme
US10951232B2 (en) * 2018-11-26 2021-03-16 Micron Technology, Inc. Error correction bit flipping scheme
US11018695B1 (en) * 2019-11-11 2021-05-25 SK Hynix Inc. Fast-converging bit-flipping decoder for low-density parity-check codes
US11184024B2 (en) * 2019-12-02 2021-11-23 SK Hynix Inc. Error mitigation scheme for bit-flipping decoders for irregular low-density parity-check codes
US11385833B2 (en) * 2020-04-20 2022-07-12 Alibaba Group Holding Limited Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10135847A (ja) * 1996-10-25 1998-05-22 Nec Corp Atm通信装置の並列型ヘッダ誤り訂正回路およびヘッダ誤り訂正方法
WO2011030410A1 (ja) * 2009-09-09 2011-03-17 株式会社 東芝 メモリ装置
US20120166904A1 (en) * 2010-12-23 2012-06-28 International Business Machines Corporation Data bus inversion using spare error correction bits
US20120198313A1 (en) * 2011-01-31 2012-08-02 Everspin Technologies, Inc. Method of reading and writing to a spin torque magnetic random access memory with error correcting code
WO2016063592A1 (ja) * 2014-10-24 2016-04-28 ソニー株式会社 メモリコントローラ、メモリシステム、および、メモリコントローラの制御方法

Also Published As

Publication number Publication date
US11336298B2 (en) 2022-05-17
US11799496B2 (en) 2023-10-24
US10951232B2 (en) 2021-03-16
WO2020112285A1 (en) 2020-06-04
US20210167798A1 (en) 2021-06-03
US20200169269A1 (en) 2020-05-28
EP3888090A1 (en) 2021-10-06
KR20210079388A (ko) 2021-06-29
EP3888090A4 (en) 2022-08-10
US20220247428A1 (en) 2022-08-04
CN113272907A (zh) 2021-08-17

Similar Documents

Publication Publication Date Title
TWI709035B (zh) 用於操作位元翻轉之方法及設備
JP2022507988A (ja) 誤り訂正ビットフリッピング方式
JP2019526845A (ja) 誤り訂正符号イベント検出
US11016843B2 (en) Direct-input redundancy scheme with adaptive syndrome decoder
US11740964B2 (en) Direct-input redundancy scheme with dedicated error correction code circuit
US20200341841A1 (en) Error correction code scrub scheme
CN116030875B (zh) 管理存储器系统中的信息保护方案

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210716

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210716

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220608

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220712

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221006

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20230124