JP7157516B2 - 階層デコーダを使用したエラー訂正 - Google Patents

階層デコーダを使用したエラー訂正 Download PDF

Info

Publication number
JP7157516B2
JP7157516B2 JP2020557901A JP2020557901A JP7157516B2 JP 7157516 B2 JP7157516 B2 JP 7157516B2 JP 2020557901 A JP2020557901 A JP 2020557901A JP 2020557901 A JP2020557901 A JP 2020557901A JP 7157516 B2 JP7157516 B2 JP 7157516B2
Authority
JP
Japan
Prior art keywords
decoder
data
error correction
validity flag
error
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.)
Active
Application number
JP2020557901A
Other languages
English (en)
Other versions
JP2021520555A (ja
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 JP2021520555A publication Critical patent/JP2021520555A/ja
Application granted granted Critical
Publication of JP7157516B2 publication Critical patent/JP7157516B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/1012Adding 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 codes or arrangements adapted for a specific type of error
    • 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
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • 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/1012Adding 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 codes or arrangements adapted for a specific type of error
    • G06F11/102Error in check bits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/10Decoders
    • 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/1128Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2927Decoding strategies
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2948Iterative decoding
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • 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/65Purpose and implementation aspects
    • H03M13/6575Implementations based on combinatorial logic, e.g. Boolean circuits

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)
  • Microelectronics & Electronic Packaging (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)

Description

本開示は、一般にメモリに関連し、より具体的には、エラー訂正に関連する装置及び方法に関する。
メモリデバイスは、典型的には、コンピュータまたは他の電子デバイスにおける内部の半導体集積回路として提供される。揮発性及び不揮発性メモリを含む、多くの異なる種類のメモリが存在する。揮発性メモリは、そのデータを維持するために電力を必要とする場合があり、中でも、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、及び同期ダイナミックランダムアクセスメモリ(SDRAM)を含む。不揮発性メモリは、電力供給されていないときに記憶されたデータを保持することによって永続的データを提供することができ、中でも、NANDフラッシュメモリ、NORフラッシュメモリ、リードオンリーメモリ(ROM)、電気的消去可能なプログラマブルROM(EEPROM)、消去可能なプログラマブルROM(EPROM)、相変化ランダムアクセスメモリ(PCRAM)などの抵抗可変メモリ、抵抗性ランダムアクセスメモリ(RRAM)、及び磁気抵抗性ランダムアクセスメモリ(MRAM)を含むことができる。
メモリは、広範囲な電気的用途のために揮発性及び不揮発性データストレージとしても利用される。不揮発性メモリは、例えば、パーソナルコンピュータ、ポータブルメモリスティック、デジタルカメラ、携帯電話、MP3プレイヤーなどのポータブルミュージックプレイヤー、ムービープレイヤー及び他の電子デバイスにおいて使用され得る。メモリセルは、アレイに配列される場合があり、アレイは、メモリデバイスにおいて使用される。
様々なコンピューティングシステムは、一組の命令(例えば、プログラム、アプリケーションなど)の実行に関連してアクセスされるメモリ(例えば、メモリシステム)に結合された処理リソースを含む。メモリシステムは、エラー訂正コード(ECC)を使用して、データのエラーを検出及び訂正することができる。
本開示の複数の実施形態を実装することが可能なメモリデバイス及びコントローラを含むメモリシステムのブロック図である。 本開示の複数の実施形態にしたがったエラーを訂正することが可能な高速デコーディング(FD)デコーダのブロック図である。 本開示の複数の実施形態にしたがったFDデコーダ及び高精度デコーディング(AD)デコーダを利用したエラー訂正に関連するフローチャートを示す。 本開示の複数の実施形態にしたがったコードワードの例を示す。
本開示は、エラー訂正に関連する装置及び方法を含む。例示的な方法は、メモリアレイから入力データを受信すること、入力データに対してエラー検出に関連する複数の動作を実行すること、ならびに入力データを処理したことに基づき、メモリデバイスに結合されたコントローラによってホスティングされる第2のデコーダに出力データ、有効化フラグ及び複数のパリティビットを提供することを含むことができる。
本開示の複数の実施形態は、メモリデバイスを使用して記憶されたデータに対してエラー訂正を実行するために改良されたエラー訂正コード(ECC)を提供することができる。例えば、いくつかの従来のECCは、メッセージを復旧することができるようにメッセージに冗長データまたはパリティデータを追加することを含む。データの送信、記憶及び/または取得中、複数のエラーの指示を受けてデータを回復させることができる。
ストレージは、コンピュータシステムにおいて性能のボトルネックになっている。データを記憶し、ストレージからデータを取得する機能は、計算及び動作を実行するコンピュータシステムの機能を制限する原因であった。
NANDベースのストレージソリューションにより、ハードドライブのレイテンシは10倍以上改善されたが、ストレージには依然としてレイテンシの遅れがある。相変化メモリ(PCM)、磁気抵抗性ランダムアクセスメモリ(MRAM)、抵抗性ランダムアクセスメモリ(ReRAM)及び/または3D Xpointメモリなどの新興メモリ(EM)技術は、他のメモリ技術に比べてメモリ関連のレイテンシを改善し得る。EMは、システム(例えば、コンピューティングシステム)の他の部分と同じ速さのデータストレージを提供することができる。EMは、コンピューティングシステムの他の構成要素のレイテンシに匹敵するレイテンシを有するデータストレージを提供することができる。ストレージ用途の信頼性目標に対処するために、EMは、エラーを訂正し、EMをホスティングするデバイスの低レイテンシ性能を維持することが可能であるECCを利用してもよい。
ストレージ用途は、メモリ用途とは異なり、可変のアクセスレイテンシを許容できることを考えると、低レイテンシのECCデコーダを利用することが有益である場合がある。いくつかの例では、低レイテンシは、複数のナノ秒の範囲内のレイテンシを含み得る。他の例では、より高いレイテンシは、複数のマイクロ秒の範囲内のレイテンシであり得る。
訂正機能が高く、かつ低レイテンシのECCデコーダは、ECC連結方式及び階層デコーダを利用することによって実現することができる。本明細書で使用される場合、階層デコーダは、データのエラーを訂正するための複数のデコーダの使用を説明することができる。階層デコーダは、高速デコーディング(FD)デコーダ及び高精度デコーディング(AD)デコーダの使用を含むことができる。いくつかの例では、階層デコーディング方式は、FDデコーダを利用することができ、必要に応じてADデコーダにおいて使用されるより強力なECCを用いることができる。
FDデコーダにおいて用いられるECCは、FDデコーダが障害を高確率でフラグ通知することが可能である場合に使用することができる。FDデコーダにおいて使用されたECCがフラグを立てずに失敗した場合、情報ブロックは、デコードイベントが不正確に終わったものとして確定される。いくつかの例では、フラグを立てない障害が、FDデコーダにおいて非常に低い確率で発生し得る。障害を識別するためにFDデコーダによって生成されたフラグは、FDデコーダの低レイテンシに不利にならないように非常に短い時間で生成され得る。
複数の実施形態では、階層コードアーキテクチャは、メモリデバイスに組み込まれたFDデコーダ及びストレージコントローラ内に実装されたADデコーダを利用する。効果的かつ効率的なソリューションを持つために、FDデコーダアーキテクチャを図1に示したような階層方式での使用に適合させることができる。
本開示の以下の詳細な説明では、本明細書の一部を構成する添付図面への参照がなされる。これらの図面では、本開示の複数の実施形態がどのように実施され得るかが一例として示されている。これらの実施形態は、当業者が本開示の実施形態を実施することができるように十分詳細に説明されており、本開示の範囲から逸脱することなく、他の実施形態が利用されてもよいこと、ならびにプロセスの変更、電気的変更及び/または構造的変更がなされてもよいことが理解されよう。本明細書で使用される場合、指示子「N」は、そのように指示された複数の特定の特徴を本開示の複数の実施形態と共に含めることができることを示す。
本明細書で使用される場合、「幾つかの(a number of)」何かは、そのようなもののうちの1つ以上を指すことができる。例えば、幾つかのメモリデバイスは、メモリデバイスのうちの1つ以上を指すことができる。「複数(plurality)」の何かは、2つ以上を意図している。加えて、特に図面の参照符号に関して本明細書で使用されるような「N」などの指示子は、そのように指示された幾つかの特定の特徴を本開示の幾つかの実施形態と共に含めることができることを示す。
本明細書の図面は、最初の一桁または複数桁が描写図面の番号に対応し、残りの桁が図面における要素または構成要素を識別するという付番規則に従う。異なる図面の間の類似の要素または構成要素は、類似の数字を使用することによって識別され得る。理解されるであろうが、本明細書の様々な実施形態に示した要素を追加、交換及び/または削除することによって本開示の複数の追加の実施形態を提供することができる。加えて、図面に提供された要素の比率及び相対的スケールは、本開示の様々な実施形態を例示することを意図し、限定的な意味で使用されることを意図しない。
図1は、本開示の複数の実施形態を実装することが可能なメモリデバイス104及びコントローラ102を含むメモリシステム100のブロック図である。メモリシステム100はまた、一般にFEエンコーダ106と呼ばれる複数の高速エンコーディング(FE)エンコーダ106-1及び106-2、ならびに高精度エンコーディング(AE)エンコーダ108を含むことができる。メモリシステム100はまた、一般にFDデコーダ110と呼ばれる複数のFDデコーダ110-1及び110-2、ならびにADデコーダ112を含むことができる。メモリシステム100は、メモリアレイ114をさらに含むことができる。
本明細書で使用される場合、「装置」は、限定されることはないが、回路もしくは回路網、1つもしくは複数のダイ、1つもしくは複数のモジュール、1つもしくは複数のデバイス、または1つもしくは複数のシステムなどの、様々な構造または構造の組み合わせを指すことができる。例えば、メモリシステム100、コントローラ102、メモリデバイス104、FEエンコーダ106、AEエンコーダ108、FDデコーダ110、ADデコーダ112及びメモリアレイ114は、個別的または集合的に「装置」と呼ばれる場合がある。
この例では、コンピューティングシステムは、メモリシステム100に結合されたコントローラ102に結合されたホストを含む。コンピューティングシステムは、システムの中でも、ラップトップコンピュータ、パーソナルコンピュータ、デジタルカメラ、デジタル録音及び再生デバイス、携帯電話、PDA、メモリカードリーダ、インタフェースハブ、センサ、モノのインターネット(IoT)対応デバイスとすることができ、ホストは、(例えば、コントローラ102を介して)メモリシステム100にアクセス可能な複数の処理リソース(例えば、1つ以上のプロセッサ)を含むことができる。ホストは、オペレーティングシステム(OS)、及び/または(例えば、メモリシステム100からコントローラ102を介して)そのホストにロード可能である様々なアプリケーションの実行を担当してもよい。
コントローラ102は、メモリトランザクション要求を(例えば、ロードコマンド及びストアコマンドとそれぞれ呼ばれる場合がある、リードコマンド及びライトコマンドの形態で)ホストから受信してもよい。コントローラ102は、好適なプロトコルを利用して、例えば、バスなどの物理インタフェースを含むことができる複数のインタフェースを通じてホストとメモリシステム100との間でコマンド及び/またはデータを転送することができる。このようなプロトコルは、カスタムもしくは独自仕様であってもよく、またはインタフェースは、ペリフェラル・コンポーネント・インターコネクト・エクスプレス(PCIe)、Gen-Z、CCIXなどの、標準化されたプロトコルを利用してもよい。コントローラ102は、ハードウェア、ファームウェアもしくはソフトウェア、またはこれら3つの任意の組み合わせの形態をとった制御回路を含むことができる。一例として、コントローラ102は、ステートマシン、シーケンサ、及び/またはプリント回路基板に結合された特定用途向け集積回路(ASIC)の形態で実装され得るいくつかの他のタイプの制御回路を含むことができる。複数の実施形態では、コントローラ102は、(例えば、システム・オン・チップ(SOC)構成において)ホストと同じ場所に配置されてもよい。また、コントローラ102は、メモリシステム100と同じ場所に配置されてもよい。
メモリシステム100は、メモリセルの複数のアレイ(例えば、バンク)、及び(例えば、アレイからデータを読み取り、データをアレイに書き込むための)アレイ(複数可)へのアクセスに関連する、対応するサポート回路(例えば、アドレス回路、I/O回路、制御回路、リード/ライト回路など)をそれぞれが含むことができる、複数の物理メモリ「チップ」またはダイを含むことができる。一例として、メモリシステム100は、複数のDRAMデバイス、SRAMデバイス、PCRAMデバイス、RRAMデバイス、FeRAM、相変化メモリ、3DXポイント及び/またはフラッシュメモリデバイスを含むことができる。複数の実施形態では、メモリシステム100は、コンピューティングシステム用のメインメモリとして機能することができる。
FDデコーダ110は、FDコードを実施することができる。FDコードは、ある期間でエラーを訂正することができる。期間は、複数のナノ秒を含むことができる。FDコード及びさらにはFDデコーダ110は、多くとも所定量のエラーを訂正することができる。例えば、FDデコーダ110は、メモリアレイ114から取得された所与のデータのページにおいて1~5個のエラーを訂正することができる。FDデコーダ110は、代数デコーディング方式を実装することができる。すなわち、FDデコーダ110は、反復デコーディングではなく代数デコーディングを利用することができる。FDデコーダ110は、組み合わせ論理を利用して代数デコーディングを実装することができる。いくつかの例では、FDデコーダ110は、低レイテンシを維持しつつ、不正確なデコーディングデータが確率的に10-5未満でデータをデコードすることができる。
ADデコーダ112は、ADコードを実施することができる。ADコードは、ある期間でエラーを訂正することができる。期間は、複数のマイクロ秒を含むことができる。所定の期間は、FDデコーダ110とADデコーダ112とで別にすることができる。例えば、FDデコーダ110は、所定の期間内で、エラーを訂正すべきかどうかを決定することができ、及び/またはエラーを訂正することができる。ADデコーダ112は、上記所定の期間よりも長い期間で、エラーを訂正すべきかどうかを決定することができ、及び/またはエラーを訂正することができる。
ADコード及びさらにはADデコーダ112は、所定量を超えるエラーを訂正することができる。例えば、ADデコーダ112は、メモリアレイ114から取得された所与のデータのページにおいて6個以上のエラーを訂正することができる。例えば、ADデコーダ112は、数百個のエラーを訂正することができる。ADデコーダ112は、反復プロセスを実することができる。反復プロセスは、順序論理を利用して実することができる。
ADデコーダ112、及びFDデコーダ110のうちの少なくとも1つは、異なるデバイス及び/または装置内に存在することができる。例えば、ADデコーダ112は、FDデコーダ110-2がメモリデバイス104内に存在すると共に、コントローラ102内に存在することができる。いくつかの実施形態では、コントローラ102は、マイクロコントローラ(uC)とすることができる。
FDデコーダ110-2は、有効性フラグを利用してADデコーダ112を起動することができる。すなわち、ADデコーダ112は、有効性フラグを受信したことに応答して、かつ/または有効性フラグの値に応答してデータのエラーを訂正するようにADコードを実施すべきかどうかを決定することができる。FDデコーダ110-2は、FDデコーダ110-2が、メモリアレイ114から取得されたデータのエラーを訂正したか、それとも訂正しなかったかに基づいて有効性フラグを起動することができる。起動された有効性フラグは、FDデコーダ110-2がエラーを訂正したことまたはエラーが存在しないことを識別するために所定の値を含む幾つかのビットを表すことができる。起動された有効性フラグは、ADデコーダ112によるデータ処理を禁止することができる。
いくつかの例では、メモリアレイに記憶されたデータはまた、エンコードすることができる。データは、FEエンコーダ106及びAEエンコーダ108のうちの一方を利用してエンコードすることができる。例えば、データは、同じデバイス(例えば、コントローラ102)内に存在するFEエンコーダ106-1及びAEエンコーダ108を利用してエンコードすることができる。データはまた、異なるデバイス内に存在するFEデコーダ106-2及びAEエンコーダ108を利用してエンコードすることができる。FEエンコーダ106-2がメモリデバイス104によってホスティングされると共に、AEエンコーダ108がコントローラ102によってホスティングされることが可能である。
いくつかの実施形態では、データ及び/またはパリティビットは、メモリアレイ114からページで取得することができる。いくつかの例では、ページはコードワードを含む。本明細書で使用される場合、パリティビットは、データがエラーを含むかどうかを判定するために使用可能であるビットについて説明する。パリティビットはまた、エラーを識別する、かつ/またはエラーを訂正するために使用することができる。
データ及び/またはパリティビットは、FDデコーダ110-2に提供することができる。例えば、コントローラ102は、メモリアレイ114からFDデコーダ110-2へのデータ及び/またはパリティビットの転送を調整することができる。FDデコーダ110-2は、パリティビットを利用して、エラーがデータに存在するかどうか、及び/またはエラーを訂正するかどうかを決定することができる。FDデコーダ110-2は、エラーが訂正されたかどうか、またはエラーが訂正されなかったかどうかに基づいて有効性フラグを生成することができる。
FDデコーダ110-2は、データ、パリティビット及び/または有効性フラグをADデコーダ112に提供することができる。ADデコーダ112は、有効性フラグの値に基づいてデータに対してエラー訂正コード(例えば、ADコード)を実行すべきかどうかを決定することができる。例えば、ADデコーダ112は、第1の値を含む有効性フラグを受信したことに応答してデータのエラーを訂正することができる。ADデコーダ112は、第2の値を含む有効性フラグを受信したことに応答してエラーの訂正を控えることができる。FDデコーダ110-2は、データの幾つかのエラーを訂正したことに応答して、アクティブ状態の有効性フラグを生成することができる。アクティブ状態の有効性フラグは論理「1」のビットとすることができ、非アクティブ状態の有効性フラグは論理「0」のビットとすることができる。いくつかの例では、アクティブ状態の有効性フラグは論理「0」のビットとすることができ、非アクティブ状態の有効性フラグは論理「1」のビットとすることができる。
ADデコーダ112は、非アクティブ状態の有効性フラグを受信したことに応答してエラーを訂正することができる。すなわち、ADデコーダ112は、非アクティブ状態の有効性フラグを受信したことに応答して受信データにエラーが存在するかどうかを判定することができる。ADデコーダ112は、エラーが存在すると判定したことに応答してエラーを訂正することができる。
ADデコーダ112がパリティビットを使用してデータのエラーを訂正する場合、ADデコーダ112は、さらなるエラー訂正のために訂正済みデータをFDデコーダ110-1に提供することができる。いくつかの例では、ADデコーダ112は、FDデコーダ110-1によるさらなる処理を伴わずに要求元装置にデータを提供することができる。
他の例では、ADデコーダ112は、アクティブ状態の有効性フラグを受信したことに応答してデータに対してエラー訂正を実行せずに入力データを出力データとして提供することができる。すなわち、ADデコーダ112は、FDデコーダ110-2によって訂正されたデータを受信したことに応答してデータ及び/またはパリティビットをFDデコーダ110-1及び/または要求元装置に渡すことができる。
いくつかの例では、ADデコーダ112は、パリティビットを受信せずにFDデコーダ110-2からデータ及び有効性フラグを受信することができる。ADデコーダ112は、データにエラーが存在するかどうかを判定することができる。データにエラーが存在すると判定したことに応答して、ADデコーダ112及び/またはコントローラ102は、メモリデバイス104にパリティビットを要求することができる。例えば、ADデコーダ112は、リードリトライコマンドを使用してパリティビットを要求することができる。ADデコーダ112及び/またはコントローラ102は、リードリトライコマンドを使用してメモリデバイス104にパリティビットを要求することができる。
ADデコーダ112は、要求されたパリティビットを使用してエラーを訂正する。要求されたパリティビットは、FDデコーダ110-2から受信されてもよく、かつ/またはFDデコーダ110-2を用いずに受信されてもよい。いくつかの例では、FDデコーダ110-2は、1本以上の専用のパリティビット線を使用してパリティビットを提供することができる。
FDデコーダ110-1は、ADデコーダ112からデータを受信することができ、データのエラーを訂正することができる。例えば、FDデコーダ110-1は、ADデコーダ112によって提供されたデータがエラーを含むかどうかを判定することができる。データがエラーを含むと判定したことに応答して、FDデコーダ110-1はエラーを訂正することができる。
図2は、本開示の複数の実施形態にしたがったエラーを訂正することが可能なFDデコーダ210のブロック図である。FDデコーダ210は、シンドローム計算ユニット227、エラー訂正ユニット228及び誤訂正チェッカユニット229を含むことができる。
いくつかの実施形態では、シンドローム計算ユニット227は、エラー訂正ユニット228及び/または誤訂正チェッカユニット229と通信することができる。誤訂正チェッカユニット229も、エラー訂正ユニット228と通信することができる。
FDデコーダ210は、メモリアレイからデータ220及びパリティビット226を受信することができる。FDデコーダ210は、シンドローム計算ユニット227にてデータ220を受信することができる。FDデコーダ210は、専用のパリティビット線を介してコントローラ及び/またはコントローラの装置にパリティビット226を提供することができる。
いくつかの例では、FDデコーダ210は、データが訂正されるかデータが訂正されない(例えば、生データ)かに関わらず、パリティビット226を提供することができる。他の例では、FDデコーダ210は、有効性フラグ224が非アクティブ状態(例えば、無効)である場合にデータを提供することができる。FDデコーダ210はまた、要求時にパリティビット226を提供することができる。例えば、FDデコーダ210は、有効性フラグ224の値に関わらず、要求時にパリティビット226を提供してもよい。
シンドローム計算ユニット227は、データ220及びパリティビット226からシンドロームを生成することができる。シンドロームは、データ220にエラーがあるかどうかを判定するために使用可能であるベクトルとすることができる。例えば、シンドローム計算ユニット227は、受信した1つ以上のコードワードからシンドロームを生成することができる。シンドロームは、エラー訂正ユニット228及び/または誤訂正チェッカユニット229に提供することができる。
エラー訂正ユニット228は、データ220がエラーを含むかどうかを判定するためにシンドロームを利用することができる。エラー訂正ユニット228はまた、ある量のエラーがデータ220に存在することを判定するためにシンドロームを使用することができる。データ220のエラーの量が所定の閾値よりも少ない場合、エラー訂正ユニット228はエラーを訂正することができる。データ220のエラーの量が所定の閾値よりも多い場合、エラー訂正ユニット228はエラーを訂正することを差し控えても良い。このようにして、エラー訂正ユニット228は、訂正済みデータまたは生データを生成することができる。エラー訂正ユニットによって提供されたデータは、データ222、訂正済みデータ222及び/または生データ222として参照されてもよい。FDデコーダ210は、コントローラ及び/またはコントローラによってホスティングされるADデコーダにデータ222を提供することができる。いくつかの例では、エラー訂正ユニット228は、エラーがデータ222において訂正されたかどうかを誤訂正チェッカユニット229に知らせるために、誤訂正チェッカユニット229にメッセージを提供することができる。
誤訂正チェッカユニット229は、エラー訂正ユニット228から受信したシンドローム及び/またはメッセージを使用して、エラーがデータ222において訂正されたかどうかを判定することができる。エラーがデータ222において訂正されたかどうかに基づき、エラー訂正ユニット228は有効性フラグ224を生成することができる。データ220のエラーに対する訂正をデータ222が含む場合、誤訂正チェッカユニット229は、アクティブ状態の有効性フラグ224を生成することができる。データ222が訂正を含まない場合、誤訂正チェッカユニット229は、非アクティブ状態の有効性フラグ224を生成することができる。誤訂正チェッカユニット229は、コントローラ及び/またはコントローラによってホスティングされるADデコーダに有効性フラグ224を提供することができる。
いくつかの例では、FDデコーダ210は、データ222が訂正を含むかどうかに関わらず、データ222、有効性フラグ224及びパリティビット226をコントローラに提供することができる。他の例では、FDデコーダ210は、データ222が訂正を含むかどうかに関わらず、データ222及び有効性フラグ224をコントローラに提供することができる。FDデコーダ210は、データ222が訂正を含まない場合、パリティビット226をコントローラに提供することができる。
図3は、本開示の複数の実施形態にしたがったFDデコーダ及びADデコーダを利用したエラー訂正に関連するフローチャート330を示す。図3は、アウターエンコーダ306、インナーエンコーダ308、メモリデバイス304、インナーデコーダ312及びアウターデコーダ310を含む。図3は、アウターFDコードを使用した直列コード連結を示す。
アウターエンコーダ306はFEエンコーダとすることができ、インナーエンコーダ308はAEエンコーダとすることができる。インナーデコーダ312はADデコーダとすることができ、アウターデコーダ310はFDデコーダとすることができる。図示されていないが、メモリデバイス304は、FDデコーダを含むことができる。インナーデコーダ312及びアウターデコーダ310は、コントローラによってホスティングすることができる。いくつかの例では、アウターエンコーダ306及びインナーエンコーダ308は、コントローラによってホスティングされる。
メモリデバイス304によってホスティングされるFDデコーダによって生成された有効性フラグ及びデータは、インナーデコーダ312及び/またはアウターデコーダ310にデータを提供するかどうかを決定するために使用することができる。例えば、メモリデバイス304によってホスティングされるFDデコーダは、データが未訂正(例えば、生)であることを示す論理「0」などの所定の値を有する有効性フラグを生成したことに応答してインナーデコーダ312に生データを提供することができる。メモリデバイス304によってホスティングされるFDデコーダは、データが訂正されていることを示す論理「1」などの所定の値を有する有効性フラグを生成したことに応答してインナーデコーダ312に訂正済みデータを提供することができる。
アウターエンコーダ306は、データ(例えば、生データ)の小さいチャンクをエンコードして、高速コードワードを生成することができる。インナーエンコーダ308を使用して高速コードワードをエンコードして、高精度コードワードを生成することができる。高精度コードワードは、高精度コードと呼ぶことができる。高精度コードは、系統的コードとすることができる。すなわち、高精度コードは、データとパリティビットとを分離することができる。
デコーディング段階では、インナーデコーダ312は、高精度コードをデコードして高速コードワードを生成することができる。アウターデコーダ310は、高速コードワードをデコードして、データの小さいチャンクを生成することができる。インナーデコーダ312の後にアウターデコーダ310を利用することにより、フローチャート330を実施するシステムのエラー訂正能力を高めることができる。
すなわち、アウターデコーダ310は、潜在的なエラーフロアを除去することができる。アウターデコーダ310は、インナーデコーダ312に比べてより良好な性能を提供するために使用することができる。いくつかの例では、インナーデコーダ312及びアウターデコーダ310は、異なるサイズのデータのチャンクに対して動作することができる。例えば、データの小さいチャンクは第1のサイズとすることができ、高精度コードワードは第2のサイズとすることができ、ここで、第2のサイズは第1のサイズよりも大きい。
高精度コードの系統的性質のために、FDデコーダの複製が可能になる。「FDデコーダの複製」とは、メモリデバイス304内のFDデコーダの使用、及びアウターデコーダ310の使用を意味する。高精度コードの系統的性質のため、インナーデコーダ312及び/またはアウターデコーダ310にエラーを訂正する機会を提供する前に、メモリデバイス304内のFDデコーダにエラーを訂正する機会を提供することができる。
図3の例は直列コード連結を使用して示されているが、本明細書で説明された例は、インナーFDコードを使用した直列または並列連結に適用することができる。
図4は、本開示の複数の実施形態にしたがったコードワード440の例を示す。コードワード440は、ADデータ442及びADパリティビット444を含む。ADデータ442は、FDデータ446及びFDパリティビット448を含む。
メモリデバイス(例えば、メモリデバイス304)にデータを記憶する前に、データのチャンク(例えば、FDデータ446のチャンク)に対して作用を及ぼすアウターエンコーダ(例えば、アウターエンコーダ306)は、FDコードワード内のFDデータ446のチャンクのそれぞれを、チャンクのそれぞれに対応するFDパリティビット448を追加することによってエンコードする。すなわち、FDデータ446のチャンクは、FDデータ446及びFDパリティビット448を含むN個のFDコードワードに順次エンコードされる。
N個のFDコードワードは、インナーエンコーダ(例えば、インナーエンコーダ308)によってN個のADコードワードにエンコードされる。インナーエンコーダは、N個のFDコードワードをADデータ442として処理する。ここで、ADデータ442のチャンクのそれぞれは、N個のFDコードワードからの異なるコードワードである。インナーエンコーダは、ADデータ442のチャンクのそれぞれについてADパリティビット444を生成する。ADパリティビット444は、FDパリティビット448に依存する。
デコーディング段階では、FDコードワードは、FDデコーダによって一時的にデコードされる。FDコードワードが正しくデコードされている場合(例えば、FDコードワードがエラーを持たない、または幾つかのエラーが訂正されている場合)、有効性フラグが全てのFDコードワードについて設定され、ADデコーダが停止される。FDコードワードのうちの少なくとも1つがFDデコーダによって訂正されず、かつFDデコーダがエラーの存在を検出している場合、ADデコーダがアクティブ状態にされ、ADデコーダはFDコードワードを処理する。
いくつかの実施形態では、FDデコーダは、FDデコーダにおけるエラー訂正に関連するレイテンシを減少させるためにメモリ内に実装される。FDデコーダは、ADデコーダと通信して、デコーディングプロセスを完了するためにADデコーダの参加を要求することができる。すなわち、FDデコーダは、デコーディングプロセスを開始することができ、FDデコーダは、ADデコーダが有効性フラグを介してデコーディングプロセスを完了することを要求することができる。有効性フラグは、データが訂正可能であることをADデコーダに警告するために、かつ/またはADデコーダをアクティブ状態にするために使用することができる。
いくつかの例では、インナーADデコーダを用いて直列連結方式を繰り返すことができる。FEエンコーダとFDデコーダとの両方をメモリデバイス内に実装してレイテンシを減少させることができる。FDデコーダがパリティビット及び有効性フラグをADデコーダに提供できることにより、ADデコーダは、FDデコーダが以前データをデコードした(例えば、データのエラーを訂正した)かどうかに基づいてデータをデコードすることが可能である。
特定の実施形態が本明細書で例示及び説明されてきたが、当業者は、同じ結果を達成するように推測される配置構成が、示された特定の実施形態に置き換えられ得ることを認識するであろう。本開示は、本開示の様々な実施形態の適応または変形を網羅するように意図される。上記の説明は、例示的になされたものであり、限定的になされたものではないことが理解されよう。上記の実施形態と、本明細書で具体的に説明されていない他の実施形態との組み合わせは、上記の説明を考察すれば当業者にとって明らかとなるであろう。本開示の様々な実施形態の範囲には、上記の構造及び方法が使用される他の適用が含まれる。したがって、本開示の様々な実施形態の範囲は、添付された特許請求の範囲、ならびにかかる特許請求の範囲の権利が与えられる均等物の全範囲を参照して定められるべきである。
前述の発明を実施するための形態では、本開示を簡素化する目的で、様々な特徴が単一の実施形態に共にまとめられている。開示のこの方法は、本開示の開示された実施形態が、各請求項に明示的に記載されたものよりも多くの特徴を使用する必要があるという意図を反映したものとして解釈されるべきではない。むしろ、以下の特許請求の範囲が反映するように、発明の主題は、単一の開示された実施形態の全ての特徴より少ないところにある。したがって、以下の特許請求の範囲は、本明細書によって発明を実施するための形態に組み込まれ、各請求項は、別個の実施形態として独立している。

Claims (13)

  1. モリアレイと、
    第1のデコーダと、
    を備えたメモリデバイスであって、
    前記第1のデコーダは、
    前記メモリアレイから入力データを受信することと、
    前記入力データがエラーを含むと判定することと、
    前記エラーを訂正するとの決定に応答して、前記入力データに対するエラー検出に関連付けられた複数の動作を実行することであって、前記複数の動作は、前記入力データが前記エラーを含むとの判定に基づいて前記エラーを訂正して出力データを生成する、ことと、
    前記エラーを訂正しないとの決定に応答して、前記入力データを前記出力データとして通過させることと、
    前記入力データを処理したことに基づき、前記メモリデバイスに結合されたコントローラによってホスティングされる第2のデコーダに、前記出力データ、有効性フラグ及び複数のパリティビットを提供することであって、前記有効性フラグの第1の値は、前記出力データにおいて前記エラーが訂正されていることを表し、前記有効性フラグの第2の値は、前記出力データにおいて前記エラーが訂正されていないことを表す、ことと、
    を行うように構成される、メモリデバイス。
  2. 前記複数のパリティビットが、前記エラー検出を行うために使用される、請求項に記載のメモリデバイス。
  3. 前記第1のデコーダがエラー訂正コードデコーダであり、前記第2のデコーダがエラー訂正コードデコーダである、請求項に記載のメモリデバイス。
  4. 前記第1のデコーダが、
    前記入力データがエラーを含まないと判定することと、
    前記入力データが前記エラーを含まないと判定したことに基づいて前記入力データを前記出力データとして提供することと
    を行うようにさらに構成される、請求項1に記載のメモリデバイス。
  5. メモリデバイスに結合されたコントローラであって、
    高精度デコーディング(AD)デコーダであって、
    前記メモリデバイスによってホスティングされる第1の高速デコーディング(FD)デコーダからデータ、有効性フラグ及びパリティビットを受信することであって、前記有効性フラグの第1の値は、前記データにおいてエラーが訂正されていることを表し、前記有効性フラグの第2の値は、前記データにおいて前記エラーが訂正されていないことを表す、ことと、
    前記有効性フラグが前記第1の値であると判定したことに応答して、前記データ及び前記パリティビットを第2のFDデコーダに提供することと、
    前記有効性フラグが前記第2の値であると判定したことに応答して、
    前記パリティビットを使用して前記データに対してエラー訂正動作を実行し、かつ、
    訂正された前記データ及び前記パリティビットを前記第2のFDデコーダに提供することと
    を行うように構成されたADデコーダと、
    前記パリティビットを使用して前記データに対してエラー訂正を実行するように構成された前記第2のFDデコーダと
    を含むコントローラ。
  6. 前記ADデコーダが、
    前記有効性フラグが前記第1の値を含む場合に訂正済みデータを受信することと、
    前記有効性フラグが前記第2の値を含む場合に生データを受信することと
    を行うようにさらに構成される、請求項に記載のコントローラ。
  7. 前記ADデコーダがインナーデコーダであり、前記第2のFDデコーダがアウターデコーダである、請求項5または6に記載のコントローラ。
  8. データ及びパリティビットを記憶するように構成されたメモリアレイと、
    前記データ及び前記パリティビットを受信するように構成された高速デコーディング(FD)デコーダと、
    を含む装置であって、
    前記FDデコーダは、
    前記データ及び前記パリティビットからシンドロームを生成するように構成されたシンドローム計算ユニットと、
    エラー訂正ユニットであって、
    前記データを訂正するとの決定に基づき、前記シンドローム及び前記パリティビットを使用して前記データに対してエラー訂正コードを実行して、訂正済みデータを生成することと、
    前記データ及び前記訂正済みデータのうちの少なくとも一方をコントローラによってホスティングされる高精度デコーディング(AD)デコーダに提供することと
    を行うように構成されたエラー訂正ユニットと、
    誤訂正チェッカユニットであって、
    前記エラー訂正ユニットが前記訂正済みデータを前記ADデコーダに提供することに基づいて、第1の値を有する有効性フラグを生成し、前記エラー訂正ユニットが前記データを前記ADデコーダに提供することに基づいて、第2の値を有する有効性フラグを生成することと、
    前記有効性フラグを前記ADデコーダに提供することと
    を行うように構成された誤訂正チェッカユニットと
    を含む装置。
  9. 前記誤訂正チェッカユニットが、前記シンドローム計算ユニットによって提供された前記シンドロームに基づいて前記有効性フラグを生成するようにさらに構成される、請求項に記載の装置。
  10. 前記誤訂正チェッカユニットが、前記エラー訂正ユニットが前記データまたは前記訂正済みデータのうちの前記少なくとも一方を前記ADデコーダに提供したかどうかを記述するメッセージを、前記エラー訂正ユニットから受信するようにさらに構成される、請求項8または9に記載の装置。
  11. 高速デコーディング(FD)デコーダを使用してエラー訂正コードを実行するための方法であって、
    ページがエラーを含むか否かの判定に基づき、メモリデバイスによってホスティングされる前記FDデコーダを使用して前記ページに対して第1のエラー訂正コードを実行するか否かを決定することと、
    前記第1のエラー訂正コードを実行するとの決定に基づき、
    前記ページ及びパリティビットから訂正済みページを生成し、
    第1の有効性フラグを生成し、かつ、
    前記第1の有効性フラグ及び前記訂正済みページをマイクロコントローラに提供することと、
    前記第1のエラー訂正コードを実行しないとの決定に基づき、
    第2の有効性フラグを生成し、かつ、
    前記第2の有効性フラグ、前記ページ及び前記パリティビットを前記マイクロコントローラに提供することと
    を含む方法。
  12. 記第2の有効性フラグを受信したことに基づき、前記マイクロコントローラによってホスティングされる高精度デコーディング(AD)デコーダを使用して前記パリティビットを使用して前記ページに対して第2のエラー訂正コードを実行すること
    前記第1の有効性フラグを受信したことに基づき、前記ページに対して第2のエラー訂正コードを実行することを差し控えることと、
    さらに含む、請求項11に記載の方法。
  13. 前記FDデコーダが代数デコーディング及び組み合わせ論理のうちの一方を利用する、請求項11または12に記載の方法。
JP2020557901A 2018-04-20 2019-04-01 階層デコーダを使用したエラー訂正 Active JP7157516B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/958,496 US10606694B2 (en) 2018-04-20 2018-04-20 Error correction using hierarchical decoders
US15/958,496 2018-04-20
PCT/US2019/025161 WO2019204017A1 (en) 2018-04-20 2019-04-01 Error correction using hierarchical decoders

Publications (2)

Publication Number Publication Date
JP2021520555A JP2021520555A (ja) 2021-08-19
JP7157516B2 true JP7157516B2 (ja) 2022-10-20

Family

ID=68236392

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020557901A Active JP7157516B2 (ja) 2018-04-20 2019-04-01 階層デコーダを使用したエラー訂正

Country Status (6)

Country Link
US (2) US10606694B2 (ja)
JP (1) JP7157516B2 (ja)
KR (1) KR102414202B1 (ja)
CN (1) CN111989746A (ja)
TW (1) TWI697908B (ja)
WO (1) WO2019204017A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220374152A1 (en) * 2021-05-21 2022-11-24 Samsung Electronics Co., Ltd. Low latency ssd read architecture with multi-level error correction codes (ecc)
KR20230083689A (ko) * 2021-12-03 2023-06-12 서울대학교산학협력단 온-다이 오류 정정 코드에서 오류 정정과 오류 검출을 동적 전환 가능한 메모리 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7043679B1 (en) 2002-06-27 2006-05-09 Advanced Micro Devices, Inc. Piggybacking of ECC corrections behind loads
US20080040647A1 (en) 2006-06-27 2008-02-14 Sergey Zhidkow Apparatus and method for improving error correction capability using stuffing byte
US20090276689A1 (en) 2008-05-02 2009-11-05 Weijun Tan Using short burst error detector in a queue-based system
US20170163287A1 (en) 2012-11-08 2017-06-08 Micron Technology, Inc. Error correction methods and apparatuses using first and second decoders

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5689727A (en) * 1994-09-08 1997-11-18 Western Digital Corporation Disk drive with pipelined embedded ECC/EDC controller which provides parallel operand fetching and instruction execution
JP2009271956A (ja) * 2008-04-30 2009-11-19 Toshiba Corp データ復号装置,データ再生装置,およびデータ復号方法
JP2010033181A (ja) * 2008-07-25 2010-02-12 Toshiba Microelectronics Corp エラー訂正回路、および半導体メモリシステム
KR20110073932A (ko) * 2009-12-24 2011-06-30 주식회사 하이닉스반도체 Ecc 회로를 포함하는 반도체 스토리지 시스템 및 그 제어 방법
KR101678053B1 (ko) 2010-04-02 2016-11-22 삼성전자 주식회사 반도체 장치 및 이의 복호 방법
US8756479B2 (en) * 2011-01-14 2014-06-17 Marvell World Trade Ltd. LDPC multi-decoder architectures
US8645789B2 (en) * 2011-12-22 2014-02-04 Sandisk Technologies Inc. Multi-phase ECC encoding using algebraic codes
US8656257B1 (en) * 2012-01-11 2014-02-18 Pmc-Sierra Us, Inc. Nonvolatile memory controller with concatenated error correction codes
CN103247347B (zh) * 2012-02-11 2017-07-25 三星电子株式会社 提供智能存储器架构的方法和系统
CN103839594A (zh) * 2012-11-27 2014-06-04 建兴电子科技股份有限公司 固态储存装置及其联合编解码方法
KR102143517B1 (ko) * 2013-02-26 2020-08-12 삼성전자 주식회사 에러 정정회로를 포함하는 반도체 메모리 장치 및 반도체 메모리 장치의 동작방법
US9164832B2 (en) * 2013-02-27 2015-10-20 Seagate Technology Llc ECC management for variable resistance memory cells
KR101913900B1 (ko) * 2013-04-30 2018-10-31 웨스턴 디지털 테크놀로지스, 인코포레이티드 조기 디코딩 종료 검출을 갖는 디코더
WO2014205590A1 (en) * 2013-06-24 2014-12-31 Micron Technology, Inc. Circuits, apparatuses, and methods for correcting data errors
JP6028709B2 (ja) * 2013-10-18 2016-11-16 ソニー株式会社 記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法
US9524242B2 (en) 2014-01-28 2016-12-20 Stmicroelectronics International N.V. Cache memory system with simultaneous read-write in single cycle
KR102347418B1 (ko) * 2015-09-25 2022-01-06 에스케이하이닉스 주식회사 데이터 처리 장치 및 그것의 동작 방법
US9912355B2 (en) 2015-09-25 2018-03-06 Intel Corporation Distributed concatenated error correction
US10193576B2 (en) * 2015-10-30 2019-01-29 Toshiba Memory Corporation Memory system and memory device
KR20170068681A (ko) * 2015-12-09 2017-06-20 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US9786362B1 (en) * 2016-08-26 2017-10-10 Arm Limited Memory circuit and data processing system
US10475524B2 (en) * 2016-09-15 2019-11-12 Apple Inc. Recovery of data read from memory with unknown polarity

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7043679B1 (en) 2002-06-27 2006-05-09 Advanced Micro Devices, Inc. Piggybacking of ECC corrections behind loads
US20080040647A1 (en) 2006-06-27 2008-02-14 Sergey Zhidkow Apparatus and method for improving error correction capability using stuffing byte
US20090276689A1 (en) 2008-05-02 2009-11-05 Weijun Tan Using short burst error detector in a queue-based system
US20170163287A1 (en) 2012-11-08 2017-06-08 Micron Technology, Inc. Error correction methods and apparatuses using first and second decoders

Also Published As

Publication number Publication date
US20190324848A1 (en) 2019-10-24
CN111989746A (zh) 2020-11-24
US10606694B2 (en) 2020-03-31
US11237901B2 (en) 2022-02-01
JP2021520555A (ja) 2021-08-19
EP3782156A1 (en) 2021-02-24
WO2019204017A1 (en) 2019-10-24
KR20200133808A (ko) 2020-11-30
KR102414202B1 (ko) 2022-06-27
TWI697908B (zh) 2020-07-01
TW201944426A (zh) 2019-11-16
US20200226020A1 (en) 2020-07-16

Similar Documents

Publication Publication Date Title
KR102190683B1 (ko) 메모리 데이터 에러 정정 방법
WO2017151264A1 (en) Technologies for correcting flipped bits for an error correction decode process
US11409601B1 (en) Memory device protection
US20230100557A1 (en) Host-based error correction
US11714704B2 (en) Modified checksum using a poison data pattern
US11942175B2 (en) Memory device protection using interleaved multibit symbols
JP7157516B2 (ja) 階層デコーダを使用したエラー訂正
US11775382B2 (en) Modified parity data using a poison data unit
US11256565B2 (en) Transaction metadata
US20230214119A1 (en) Data stripe protection

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201120

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220413

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220913

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221006

R150 Certificate of patent or registration of utility model

Ref document number: 7157516

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150