JP2013141219A - 格納装置からのデータ読出し方法、エラー訂正装置、及びエラー訂正コードデコーダーを含む格納システム - Google Patents

格納装置からのデータ読出し方法、エラー訂正装置、及びエラー訂正コードデコーダーを含む格納システム Download PDF

Info

Publication number
JP2013141219A
JP2013141219A JP2012274415A JP2012274415A JP2013141219A JP 2013141219 A JP2013141219 A JP 2013141219A JP 2012274415 A JP2012274415 A JP 2012274415A JP 2012274415 A JP2012274415 A JP 2012274415A JP 2013141219 A JP2013141219 A JP 2013141219A
Authority
JP
Japan
Prior art keywords
data
reliability
bit
read
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.)
Granted
Application number
JP2012274415A
Other languages
English (en)
Other versions
JP6096496B2 (ja
Inventor
fei xiong Zheng
飛雄 鄭
Jun-Tin Gong
駿鎮 孔
Nanshoku Kin
南植 金
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2013141219A publication Critical patent/JP2013141219A/ja
Application granted granted Critical
Publication of JP6096496B2 publication Critical patent/JP6096496B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers

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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Error Detection And Correction (AREA)
  • Read Only Memory (AREA)

Abstract

【課題】向上された信頼性を有し、より少ない資源を消耗する格納装置からのデータ読出し方法が提供される
【解決手段】本発明による読出し方法は、正常読出し電圧を利用して格納装置に格納されたデータを読み出す段階、読み出されたデータに基づいて第1低密度パリティー検査(LDPC:Low Density Parity Check)デコーディングを遂行しデコーディング結果にしたがって信頼性ビットを生成する段階、そして読み出されたデータ及び信頼性ビットに基づいて第2低密度パリティー検査デコーディングを遂行して、読み出されたデータのエラーを訂正する段階に構成される。
【選択図】図17

Description

本発明は格納装置からのデータ読出し方法、エラー訂正装置、及びエラー訂正装置を含む格納システムに関する。
半導体メモリ装置(semiconductor memory device)はシリコン(Si、silicon)、ゲルマニウム(Ge、Germanium)、砒素ガリウム(GaAs、gallium arsenide)、リン化インジウム(InP、indium phospide)等のような半導体を利用して具現される記憶装置である。半導体メモリ装置は大きく揮発性メモリ装置(Volatile memory device)と不揮発性メモリ装置(Nonvolatile memory device)とに区分される。
揮発性メモリ装置は電源供給が遮断されれば、格納しているデータが消滅されるメモリ装置である。揮発性メモリ装置にはSRAM(Static RAM)、DRAM(Dynamic RAM)、SDRAM(Synchronous DRAM)等がある。不揮発性メモリ装置は電源供給が遮断されても格納しているデータを維持するメモリ装置である。不揮発性メモリ装置にはROM(Read Only Memory)、PROM(Programmable ROM)、EPROM(Electrically Programmable ROM)、EEPROM(Electrically Erasable and Programmable ROM)、フラッシュメモリ装置、PRAM(Phase−change RAM)、MRAM(Magnetic RAM)、ReRAM(Resistive RAM)、FRAM(登録商標)(Ferroelectric RAM)等がある。フラッシュメモリ装置はNORタイプとNANDタイプとに区分される。
メモリ装置にプログラムされたデータが読み出される時、エラーが発生する。読出しの時に、エラーが発生すれば、読み出されたデータにエラーが包含され得る。読み出されたデータのエラーを訂正するために、BCH(Bose−Chaudhuri−Hocquenghem)コード、RS(Reed−Solomon)コード、LDPC(Low Density Parity Check)コード、ターボ(Tutbo)コード等のようなエラー訂正コードが研究されている。
米国特許公開第2011/0083060号明細書
本発明の目的は向上された信頼性を有し、より少ない資源を消耗する格納装置からのデータ読出し方法、エラー訂正装置、及びエラー訂正コードデコーダーを含む格納システムを提供することにある。
本発明の実施形態による格納装置からのデータ読出し方法は、正常読出し電圧を利用して前記格納装置に格納されたデータを読み出す段階と、前記読み出されたデータに基づいて第1低密度パリティー検査(LDPC:Low Density Parity Check)デコーディングを遂行し、前記デコーディング結果にしたがって前記読み出されたデータのビット(以下で、読出しビット)各々の信頼性ビットを生成する段階と、前記読み出されたデータ及び前記信頼性ビットに基づいて第2低密度パリティー検査デコーディングを遂行して、前記読み出されたデータのエラーを訂正する段階と、を含む。
実施形態として、前記信頼性ビットを生成する段階は、前記第1低密度パリティー検査デコーディングの結果としてデコーディングされたビットを生成する段階と、前記読出しビットの中で第1ビット、そして前記デコーディングされたビットの中で前記第1ビットと同一の位置の第2ビットを比較する段階と、前記比較結果にしたがって、前記第1ビットに対応する信頼性ビットを生成する段階と、を含む。
実施形態として、前記第1ビットと第2ビットが同一である時、前記第1ビットの信頼性が高いことを示す信頼性ビットが生成される。
実施形態として、前記第1ビットと第2ビットが互いに異なる時、前記第1ビットの信頼性が低いことを示す信頼性ビットが生成される。
実施形態として、前記第1低密度パリティー検査デコーディングが遂行される時、前記読出しビットに大きさは同一であり、符号が反対である対数尤度比がマッピングされる。
実施形態として、前記第2低密度パリティー検査デコーディングが遂行される時、前記読出しビット及び信頼性ビットにしたがって前記読出しビットに2つ以上の互に異なる対数尤度比がマッピングされる。
実施形態として、前記エラーを訂正する段階でエラー訂正が完了されなければ、部分読出し電圧を利用して前記格納装置に格納された前記データを再び読出し、前記読み出されたデータ及び前記再び読み出されたデータに基づいて第3低密度パリティー検査デコーディングを遂行してエラーを訂正する段階をさらに含む。
実施形態として、前記読み出す段階の読出し電圧のレベルと前記再び読み出す段階の読出し電圧のレベルは互に異なる。
実施形態として、前記第1低密度パリティー検査デコーディングのデコーディングループが基準回数遂行された後に、前記第1低密度パリティー検査デコーディングのデコーディングループが反復される時毎に前記信頼性ビットが生成される。
実施形態として、前記生成された信頼性ビットの数が最大値に到達すれば、前記信頼性ビットはFIFO(First−In First−Out)に管理される。
実施形態として、前記生成された信頼性ビットの数が最大値に到達した後に、前記第1低密度パリティー検査のデコーディングループが基準回数遂行された後に、前記第2低密度パリティー検査デコーディングが遂行される。
実施形態として、前記第2低密度パリティー検査デコーディングが遂行される時、前記第1低密度パリティー検査デコーディングで演算された検査ノード及び変数ノードの値が承継される。
本発明の実施形態によるエラー訂正装置は、外部から受信されるデータを格納し、前記データの信頼性をを示す信頼性データを格納するように構成されるメモリと、前記メモリから出力される前記データに第1対数尤度比をマッピングして第1マッピングデータを出力し、前記メモリから出力される前記データ及び信頼性データに第2対数尤度比をマッピングして第2マッピングデータを出力するように構成される対数尤度比マッパと、前記第1マッピングデータ又は第2マッピングデータに基づいて低密度パリティー検査(LDPC:Low Density Parity Check)デコーディングを遂行するように構成される判定部と、前記判定部から前記第1マッピングデータに基づいたデコーディング結果を受信し、前記デコーディング結果を前記メモリに格納された前記データと比較し、比較結果にしたがって前記データの各ビットの信頼性をを示す信頼性データを生成して前記メモリに格納するように構成される対数尤度比信頼性更新器を含む。
実施形態として、前記メモリは前記信頼性データの量が特定値未満である時、前記データを出力し、前記信頼性データの量が前記特定値に到達する時、前記データ及び信頼性データを共に出力する。
実施形態として、前記特定値は前記データの1ビットに対応する信頼性データを格納する前記メモリのビット数である。
実施形態として、前記対数尤度比信頼性更新器は前記デコーディング結果の中で第1ビット、そして前記データの中で前記第1ビットと同一の位置の第2ビットが互に異なる値を有する時、信頼性が低いことを示す信頼性データを生成する。
実施形態として、前記対数尤度比信頼性更新器は前記デコーディング結果の中で第1ビット、そして前記データの中で前記第1ビットと同一の位置の第2ビットが同一の値を有する時、信頼性が高いことを示す信頼性データを生成する。
実施形態として、前記第1デコーディングが遂行される時、前記対数尤度比マッパは前記データに大きさが同一であり、符号が互に異なる2つの対数尤度比をマッピングする。
実施形態として、前記第2デコーディングが遂行される時、前記対数尤度比マッパは前記データ及び信頼性データに互に異なる3以上の対数尤度比をマッピングする。
実施形態として、前記判定部でエラーの訂正失敗が感知されれば、前記メモリは追加データを受信して格納し、前記対数尤度比マッパは前記データ及び追加データに対数尤度比をマッピングして第3マッピングデータを出力し、前記判定部は前記第3マッピングデータに基づいてデコーディングを遂行する。
実施形態として、前記データに対応する各信頼性データのビット数が特定値に到達する時、前記メモリは前記信頼性データをFIFO(First−In First−Out)方式に管理する。
実施形態として、前記データに対応する各信頼性データのビット数が特定値に到達し、前記第1マッピングデータに基づいたデコーディングが基準回数遂行された後に、前記メモリは前記データ及び信頼性データを前記対数尤度比マッパへ共に出力する。
実施形態として、前記第1マッピングデータに基づいたデコーディングが基準回数遂行された後に、前記対数尤度比信頼性更新器は前記信頼性データを生成する。
本発明の実施形態による格納システムは、格納装置と、前記格納装置から読み出されたデータを受信し、前記受信されたデータのエラーを訂正するエラー訂正コードデコーダーを具備するコントローラを含み、前記エラー訂正コードデコーダーは、前記格納装置から読み出されたデータを格納し、前記読み出されたデータの信頼性をを示す信頼性データを格納するように構成されるメモリと、前記メモリから出力される前記データに第1対数尤度比をマッピングして第1マッピングデータを出力し、前記メモリから出力される前記データ及び信頼性データに第2対数尤度比をマッピングして第2マッピングデータを出力するように構成される対数尤度比マッパと、前記第1マッピングデータ又は第2マッピングデータに基づいて低密度パリティー検査(LDPC:Low Density Parity Check)デコーディングを遂行するように構成される判定部と、前記判定部から前記第1マッピングデータに基づいた第1デコーディング結果を受信し、前記第1デコーディング結果を前記メモリに格納された前記データと比較し、比較結果にしたがって前記データの各ビットの信頼性をを示す信頼性データを生成して前記メモリに格納するように構成される対数尤度比信頼性更新器を含み、前記対数尤度比マッパは前記第2マッピングデータにしたがう第2デコーディング結果に基づいて前記読み出されたデータのエラーを訂正する。
実施形態として、前記格納装置はフラッシュメモリを含む。
実施形態として、前記格納装置及び前記コントローラはメモリカードを形成する。
実施形態として、前記格納装置及び前記コントローラはソリッドステートドライブ(SSD、Solid State Drive)を形成する。
実施形態として、前記エラーの訂正が失敗する時、前記メモリは前記格納装置から追加に読み出されたデータを受信して格納し、前記対数尤度比マッパは前記データ及び追加に読み出されたデータに対数尤度比をマッピングして第3マッピングデータを出力し、前記判定部は前記第3マッピングデータに基づいてデコーディングを遂行する。
実施形態として、前記エラー訂正コードデコーダーは前記格納装置に格納された使用者データのエラーを訂正し、前記コントローラは前記格納装置に格納されたメタデータのエラーを訂正するメタデータ用エラー訂正コードデコーダーをさらに含む。
実施形態として、前記メタデータ用エラー訂正コードデコーダーはBCH(Bose−Chaudhuri−Hocquenghem)コードの利用してエラーを訂正する。
実施形態として、前記コントローラ及び格納装置は複数の(k個、kは量の整数)チャンネルを通じて互に通信し、前記エラー訂正コードデコーダーは前記複数のチャンネルの中で1つのチャンネルを通じて通信されるデータのエラーを訂正し、前記コントローラは前記複数のチャンネルの中で残りチャンネルを通じて通信されるデータのエラーを各々訂正する複数の(k−1個)エラー訂正コードデコーダーをさらに含む。
本発明によれば、読出しデータ及び信頼性データに基づいて硬判定が遂行される。硬判定の信頼性が向上されて軟判定が発生する頻度が減少するので、向上された信頼性を有し、より少ない資源を消耗する格納装置からのデータ読出し方法、エラー訂正装置、及びエラー訂正コードデコーダーを含む格納システムが提供される。
本発明の実施形態による格納システムを示すブロック図である。 読出しの時に、遂行される本発明の実施形態によるエラー訂正デコーディング方法を示すフローチャートである。 正常読出し電圧と部分読出し電圧との例を示す。 本発明の実施形態によるエラー訂正コードデコーダーを示すブロック図である。 図3のエラー訂正コードデコーダーで使用されるパリティー検査行列の例を示す。 図4のパリティー検査行列から導出されるファクタグラフを示す。 読出しの時に、エラー訂正コードデコーダーのエラー訂正方法を示すフローチャートである。 デコーディングを遂行する方法をさらに詳細に示すフローチャートである。 図7の初期化段階を説明するためのファクタグラフを示す。 初期化の時の演算空間を示す。 検査ノードが更新される過程を示す。 検査ノードの更新方法にしたがう演算空間を示す。 検査ノードの更新方法にしたがう演算空間を示す。 変数ノードが更新される過程を示す。 変数ノードの更新方法にしたがう演算空間を示す。 変数ノードの更新方法にしたがう演算空間を示す。 読出し及び信頼性情報メモリの例を示す図面である。 信頼性ビットを生成する方法をさらに詳細に示すフローチャートである。 信頼性ビットが生成される過程を示す。 信頼性ビットが生成される過程を示す。 硬判定対数尤度比レジスターに格納されたマッピング情報の例を示す。 検査ノードが更新される方法を示す。 変数ノードが更新される方法を示す。 デコーディングを遂行する方法の他の例を示すフローチャートである。 図1の格納システムの他の例を示すブロック図である。 図1の格納システムの応用例を示すブロック図である。 本発明の実施形態によるメモリカードを示す。 本発明の実施形態によるソリッドステートドライブを示す。 図25を参照して説明された格納システムを含むコンピューティングシステムを示すブロック図である。
以下で、本発明が属する技術分野で通常の知識を有する者が本発明の技術的思想を容易に実施できるように詳細に説明するために、本発明の実施形態を添付されたの図面を参照して説明する。
図1は本発明の実施形態による格納システム1000を示すブロック図である。図1を参照すれば、格納システム1000は格納装置100及びコントローラ200を含む。格納装置100はフラッシュメモリを含む。即ち、格納装置100はメモリセルの閾値電圧を調節することによって、データを格納する。
コントローラ200はホスト及び格納装置100に連結される。ホストからの要請に応答して、コントローラ200は格納装置100にアクセスするように構成される。例えば、コントローラ200は格納装置100の読出し、書込み、消去、及び背景(background)動作を制御するように構成される。コントローラ200は格納装置100及びホストの間にインターフェイスを提供するように構成される。コントローラ200は格納装置100を制御するためのファームウェア(firmware)を駆動するように構成される。
例示的に、コントローラ200は格納装置100へ制御信号及びアドレスを提供するように構成される。そして、コントローラ200は格納装置100とデータを交換するように構成される。
コントローラ200はエラー訂正コードデコーダー300を含む。エラー訂正コードデコーダー300は格納装置100から読み出されるデータに対してエラー訂正コード(ECC:Error Correcting Code)を利用するデコーディングを遂行する。エラー訂正コードデコーダー300はデコーディングを遂行して、読み出されたデータのエラーを訂正する。エラー訂正コードデコーダー300はLDPC(Low Density Parity Check)コードを利用してデコーディングを遂行する。
コントローラ200は特定な通信規格によってホストと通信する。例えば、コントローラ200はUSB(Universal Serial Bus)、MMC(multimedia card)、PCI(peripheral component interconnection)、PCI−E(PCI−express)、ATA(Advanced Technology Attachment)、Serial−ATA、Parallel−ATA、SCSI(small computer small interface)、ESDI(enhanced small disk interface)、IDE(Integrated Drive Electronics)、及びファイアーワイヤ(Firewire)等のような多様な通信規格の中で少なくとも1つを通じてホストと通信する。
コントローラ200及び格納装置100は1つの半導体装置に集積され得る。例示的に、コントローラ200及び格納装置100は1つの半導体装置に集積されてソリッドステートドライブ(SSD:Solid State Drive)を構成する。コントローラ200及び格納装置100は1つの半導体装置に集積されてメモリカードを構成する。例えば、コントローラ200及び格納装置100は1つの半導体装置に集積されてPCカード(PCMCIA、personal computer memory card international association)、コンパクトフラッシュ(登録商標)カード(CF)、スマートメディアカード(SM、SMC)、メモリスティック、マルチメディアカード(MMC、RS−MMC、MMCmicro)、SDカード(SD、miniSD、microSD、SDHC)、ユニバーサルフラッシュ記憶装置(UFS)等のようなメモリカードを構成する。
他の例として、格納システム1000はコンピューター、UMPC(Ultra Mobile PC)、ワークステーション、ネットブック(net−book)、PDA(Personal Digital Assistants)、ポータブル(portable)コンピューター、ウェブタブレット(web tablet)、タブレットコンピューター(tablet computer)、無線電話機(wireless phone)、モバイルフォン(mobile phone)、スマートフォン(smart phone)、e−ブック(e−book)、PMP(portable multimedia player)、携帯用ゲーム機、ナビゲーション(navigation)装置、ブラックボックス(black box)、デジタルカメラ(digital camera)、DMB(Digital Multimedia Broadcasting)再生器、3次元テレビジョン(3−dimensional television)、スマートテレビジョン(smart television)、デジタル音声録音機(digital audio recorder)、デジタル音声再生器(digital audio player)、デジタル映像 録画器(digital picture recorder)、デジタル映像再生器(digital picture player)、デジタル動画録画器(digital video recorder)、デジタル動画再生器(digital video player)、データセンターを構成するストレージ、情報を無線環境で送受信する装置、ホームネットワークを構成する多様な電子装置の中の1つ、コンピューターネットワークを構成する多様な電子装置の中の1つ、テレマティクスネットワークを構成する多様な電子装置の中の1つ、RFID装置、又はコンピューティングシステムを構成する多様な構成要素の中の1つ等を構成する。
例示的に、格納装置100又は格納システム1000は多様な形態のパッケージに実装され得る。例えば、格納装置100又は格納システム1000はPoP(Package on Package)、Ball grid arrays(BGAs)、Chip scale packages(CSPs)、Plastic Leaded Chip Carrier(PLCC)、Plastic Dual In Line Package(PDIP)、Die in Waffle Pack、Die in Wafer Form、Chip On Board(COB)、Ceramic Dual In Line Package(CERDIP)、Plastic Metric Quad Flat Pack(MQFP)、Thin Quad Flatpack(TQFP)、Small Outline(SOIC)、Shrink Small Outline Package(SSOP)、Thin Small Outline(TSOP)、Thin Quad Flatpack(TQFP)、System In Package(SIP)、Multi Chip Package(MCP)、Wafer−level Fabricated Package(WFP)、Wafer−Level Processed Stack Package(WSP)等のような方式にパッケージ化されて実装され得る。
図2Aは読出しの時に、遂行される本発明の実施形態によるエラー訂正デコーディング方法を示すフローチャートである。図1及び図2Aを参照すれば、S110段階で、正常読出し電圧を利用してデータが格納装置100から読み出される。コントローラ200は読出しコマンド及びアドレスを発生し、発生された読出しコマンド及びアドレスを格納装置100へ伝送する。格納装置100は読出しコマンド及びアドレスに応答して正常読出し電圧を利用してデータを読み出すことができる。読み出されたデータはコントローラ200へ伝送され得る。
S120段階で、硬判定(Hard Decision)が遂行される。コントローラ200のエラー訂正コードデコーダー300は格納装置100で正常読出し電圧を利用して読み出されたデータ(以下で、第1読出しデータ)、即ち正常読出し電圧を利用して読み出されたデータを、エラー訂正コードを利用してデコーディングする。
S130段階で、硬判定されたデータが正しいデータ、即ちエラーが全て訂正されたデータであるか否かが判別される。例えば、コントローラ200は硬判定されたデータ及びパリティー検査行列(Parity Check Matrix)を利用して硬判定されたデータが正しいデータであるか否かを判別する。例えば、硬判定されたデータとパリティー検査行列の演算結果が‘0’である時、硬判定されたデータは正しいデータであると判別され得る。硬判定されたデータとパリティー検査行列の演算結果が‘0’ではない時、硬判定されたデータは正しいデータではないと判別され得る。
硬判定されたデータが正しいデータである時、エラー訂正デコーディングは終了され得る。硬判定されたデータはエラー訂正されたデータとしてコントローラ200外部へ出力されるか、或いはコントローラ200の内部で使用され得る。
硬判定されたデータが正しいデータではない時、S140段階が遂行される。S140段階で、部分(fractional)読出し電圧を利用してデータが読み出される。例えば、正常読出し電圧を利用して読み出されたメモリセルで、部分読出し電圧を利用して追加的な読出しが遂行され得る。部分読出し電圧は正常読出し電圧と異なるレベルを有することができる。
S150段階で、軟判定(Soft Decision)が遂行される。軟判定は第1読出しデータに部分読出し電圧を利用して読み出されたデータが追加されたデータ(以下で、第2読出しデータ)に基づいて遂行できる。正常読出し電圧と部分読出し電圧とは互に異なるレベルを有することができる。正常読出し電圧と部分読出し電圧との例が図2Bに図示されている。
図2Bで、横軸はメモリセルの閾値電圧を示し、縦軸はメモリセルの数を示す。即ち、図2Bはメモリセルの閾値電圧散布を示す。例示的に、メモリセルは消去状態E及び第1乃至第3プログラム状態P1〜P3を有することができる。
正常読出し電圧VRNの各々は隣接する2つの論理状態の間のレベルを有することができる。部分読出し電圧VRN1、VRN2の各々は隣接する2つの論理状態の間のレベルを有するが、正常読出し電圧VRNと異なるレベルを有することができる。
メモリセルが正常読出し電圧VRNによって読み出される時の結果と部分読出し電圧VRN1、VRN2によって読み出される時の結果とは互に異なり得る。例えば、メモリセルの中で正常的な論理状態の電圧分布より低いか、或いは高い閾値電圧を有するテール(tail)セルが存在する。テールセルの読出し結果は正常読出し電圧VRNによって読み出される時と部分読出し電圧VRN1、VRN2によって読み出される時とが互に異なり得る。即ち、部分読出し電圧を利用して追加的な読出しが遂行されれば、メモリセルの閾値電圧に対する追加的な情報(例えば、テールセルに対する情報)が獲得され得る。
メモリセルの閾値電圧に対する追加的な情報が獲得されれば、メモリセルが格納するデータが第1状態(例えば、‘1’)又は第2状態(例えば、‘0’)である確率(又は尤度比:likelihood ratio)の正確性が増加する。即ち、判定の信頼性が増加する。コントローラ200は第2読出しデータ、即ち格納装置100で複数回の読出しを通じて読み出されたデータと正常読出し電圧によって得た硬判定データを利用して軟判定を遂行する。
S160段階で、軟判定されたデータが正しいデータ、即ちエラーが全て訂正されたデータであるか否かが判別される。例えば、コントローラ200は軟判定されたデータ及びパリティー検査行列(Parity Check Matrix)を利用して軟判定されたデータが正しいデータであるか否かを判別する。軟判定されたデータとパリティー検査行列の演算結果が‘0’である時、軟判定されたデータは正しいデータであると判別され得る。軟判定されたデータとパリティー検査行列の演算結果が‘0’ではない時、軟判定されたデータは正しいデータではないと判別され得る。軟判定されたデータとパリティー検査行列の演算、及び上述された硬判定されたデータとパリティー検査行列の演算は同一の方法に遂行できる。
軟判定されたデータが正しいデータである時、エラー訂正デコーディングは終了され得る。軟判定されたデータはエラー訂正されたデータとしてコントローラ200の外部へ出力されるか、或いはコントローラ200の内部で使用され得る。
軟判定されたデータが正しいデータではない時、コントローラ200は読出しエラーとして処理する。コントローラ200は読出しエラーを内部で処理するか、或いはホストに報告する。コントローラ200は予め定まれたプロセスにしたがって、読出しエラーを処理する。
上述したように、格納装置100で読出しが遂行されれば、硬判定が遂行される。硬判定が失敗すれば、格納装置100で少なくとも1回の読出しがさらに遂行され、軟判定が遂行される。軟判定は硬判定と比較して追加的な読出しを必要とする。軟判定を通じてエラーが訂正される時に消耗される資源(時間、格納装置100のストレス等)は硬判定を通じてエラーが訂正される時に消耗される資源(時間、格納装置100のストレス等)より大きい。したがって、硬判定の正確性が増加して軟判定が遂行される回数が減少すれば、読出しの時に、格納装置100で消耗される資源(時間、格納装置100のストレス等)が減少され得る。本発明は向上された正確性を有する硬判定方法及び装置を提供して読出しの時に、より少ない資源(時間、格納装置100のストレス等)を消耗する読出し方法及び格納システムを提供する。
図3は本発明の実施形態によるエラー訂正コードデコーダー300を示すブロック図である。図3を参照すれば、エラー訂正コードデコーダー300は読出し及び信頼性情報メモリ310、初期対数尤度比マッパ(Initial Log−likehood ratio(LLR) mapper)320、判定部330、及び対数尤度比信頼性更新器360を含む。
読出し及び信頼性情報メモリ310は格納装置100から読み出された読出しデータを格納する。硬判定HDが遂行される時、読出し及び信頼性情報メモリ310は正常読出しを通じて読み出されたデータを格納装置100から受信し、第1読出しデータY1として格納する。正常読出しとは図2Bの正常読出し電圧を利用して読み出す動作を意味する。また、硬判定HDが遂行される時、読出し及び信頼性情報メモリ310は対数尤度比信頼性更新器360から対数尤度比の信頼性を示すデータを受信し、信頼性データRDとして格納する。第1読出しデータY1及び信頼性データRDは共に格納されて第3読出しデータY3を形成する。
また、軟判定SDが遂行される時、読出し及び信頼性情報メモリ310は追加的な読出しを通じて読み出されたデータを格納装置100から受信し、格納する。即ち、軟判定SDが遂行される時では、読出し及び信頼性情報メモリ310は硬判定HDが遂行される時に、格納された第1読出しデータY1及び追加的に格納されたデータを第2読出しデータY2として格納する。
初期対数尤度比マッパ320は読出し及び信頼性情報メモリ310に格納された読出しデータに初期対数尤度比(Initial Log−Likelihood Ratio)をマッピング(mapping)するように構成される。初期対数尤度比マッパ320は硬判定HDの時に、マッピングされる対数尤度比を格納する硬判定対数尤度比レジスター321、及び軟判定SDの時に、マッピングされる対数尤度比を格納する軟判定対数尤度比レジスター323を含む。
一例として、硬判定の時に、初期対数尤度比マッパ320は読出し及び信頼性情報メモリ310から第1読出しデータY1を受信する。初期対数尤度比マッパ320は硬判定対数尤度比レジスター321に格納された対数尤度比、及び第1読出しデータY1の各ビットの値に基づいて、対数尤度比をマッピングする。例えば、初期対数尤度比マッパ320は第1読出しデータY1の中で特定メモリセルから読み出されたビットの値にしたがって該当ビットの対数尤度比をマッピングする。マッピング結果は第1マッピングデータFn1へ出力される。
他の例として、硬判定の時に、初期対数尤度比マッパ320は読出し及び信頼性情報メモリ310から第3読出しデータY3を受信する。第3読出しデータY3が受信される時、初期対数尤度比マッパ321は硬判定レジスター321を参照して対数尤度比をマッピングする。マッピング結果は第3マッピングデータFn3である。
軟判定の時に、初期対数尤度比マッパ320は読出し及び信頼性情報メモリ310から第2読出しデータY2を受信する。初期対数尤度比マッパ320は軟判定対数尤度比レジスター323に格納された対数尤度比、及び第2読出しデータY2の各要素のビットに基づいて、対数尤度比をマッピングする。
例示的に、第1読出しデータY1の1つのビットは格納装置100の1つのメモリセルで遂行された1回の読出し結果である。第2読出しデータY2の各要素のビットは、1つのメモリセルで遂行された1回の読出し結果と追加的な読出しの結果を含む。初期対数尤度比マッパ320は第2読出しデータY2の各要素のビットに基づいて、対数尤度比をマッピングする。マッピング結果は第2マッピングデータFn2へ出力される。
判定部330は硬判定の時に、初期対数尤度比マッパ320から第1マッピングデータFn1又は第3マッピングデータFn3を受信し、軟判定の時に、初期対数尤度比マッパ320から第2マッピングデータFn2を受信する。判定部330は受信された第1、第2、又は第3マッピングデータFn1、Fn2、又はFn3をデコーディングする。第1マッピングデータFn1のデコーディング、第2マッピングデータFn2のデコーディング、及び第3マッピングデータFn3のデコーディングは同一の方法及び装置を利用して遂行される。
例示的に、硬判定対数尤度比レジスター321は第1読出しデータY1に対応する対数尤度比と第3読出しデータY3に対応する対数尤度比とを別に格納する。他の例として、硬判定対数尤度比レジスター321は第1読出しデータY1に対応する対数尤度比を格納し、軟判定対数尤度比レジスター323は第2読出しデータY2と第3読出しデータY3とに共通に対応する対数尤度比を格納する。即ち、第2読出しデータY2と第3読出しデータY3とは同一の対数尤度比にマッピングされ得る。
判定部330は更新器340及び暫定デコーダー350を含む。更新器340は複数の検査ノード(check nodes)及び複数の変数ノード(variable nodes)の更新を遂行する。更新結果は暫定デコーダー350へ伝送される。
暫定デコーダー350は更新器340の更新結果(例えば、事後確率:posteriori probability)にしたがって、暫定デコーディングを遂行する。暫定デコーダー350はデコーディングされたデータとパリティー検査行列を演算し、演算結果にしたがって正しいデコーディングが遂行されたか否かを判別する。正しいデコーディングが遂行されたら、即ち格納装置100で読み出されたデータのエラーが訂正されたら、暫定デコーダー350はデコーディングされたデータを最終データXとして出力する。正しいデコーディングが遂行されなかったら、即ち格納装置100で読み出されたデータのエラーが全て訂正されなかったら、暫定デコーダー350は更新器340を呼出する。暫定デコーダー350の呼出に応答して更新器340は検査ノード及び変数ノードの更新を再び遂行する。
更新器340の更新と暫定デコーダー350のデコーディングとは反復的に(interatively)遂行される。更新器340で遂行される検査ノードの更新と変数ノードの更新、及び暫定デコーダー350で遂行されるデコーディングは1つのデコーディングループを構成する。
判定部330で第1マッピングデータFn1に基づいて硬判定HDが遂行され、パリティー検査が失敗する時、暫定デコーダー350はデコーディング結果を対数尤度比信頼性更新器360へ伝送する。
対数尤度比信頼性更新器360はデコーディング結果を読出し及び信頼性情報メモリ310に格納された第1読出しデータY1と比較する。第1読出しデータY1の特定ビット、及び特定ビットと同一の位置のデコーディング結果のビットが同一の値を有する時、対数尤度比更新器360は特定ビットの信頼性が高いことを示す信頼性ビットを読出し及び信頼性情報メモリ310に格納する。第1読出しデータY1の特定ビット、そして特定ビットと同一の位置のデコーディング結果のビットが互に異なる値を有する時、対数尤度比更新器360は特定ビットの信頼性が低いことを示す信頼性ビットを信頼性データRDとして読出し及び信頼性情報メモリ310に格納する。
即ち、対数尤度比信頼性更新器360はデコーディングループが1回遂行される時、第1読出しデータY1の各ビットに対して1つの信頼性ビットを生成する。デコーディングループがk回遂行される時、第1読出しデータY1の各ビットに対応するk個の信頼性ビットが生成される。対数尤度比信頼性更新器360は予め定まれた数のデコーディングループの間に信頼性ビットを生成し、以後に信頼性ビットの生成を中止する。
硬判定遂行される時、第1読出しデータY1が読出し及び信頼性情報メモリ310に格納される。第1読出しデータY1に基づいて、初期対数尤度比マッパ320は対数尤度比をマッピングする。例示的に、第1読出しデータY1は数学式1である。
初期対数尤度比マッパ320は第1読出しデータY1の各ビットの値にしたがって大きさは同一であり、符号が異なる対数尤度比をマッピングする。例えば、初期対数尤度比マッパ320は第1読出しデータY1のビットが‘1’である時、該当ビットによって、‘+M’の対数尤度比をマッピングする。第1読出しデータY1のビットが‘0’である時、初期対数尤度比マッパ320は該当ビットによって、‘−M’の対数尤度比をマッピングする。即ち、第1読出しデータY1に対数尤度比+M、−Mがマッピングされた第1マッピングデータFn1は数学式2である。
第1マッピングデータFn1は判定部330へ伝送される。判定部330は第1マッピングデータFn1にしたがって硬判定を遂行する。
軟判定遂行される時、第2読出しデータY2が読出し及び信頼性情報メモリ310に格納される。第2読出しデータY2に基づいて、初期対数尤度比マッパ320は対数尤度比をマッピングする。第2読出しデータY2は第1読出しデータY1のビット及びそれに対応する追加ビットを含む。例示的に、第2読出しデータY2は数学式3である。
第2読出しデータY2の各要素は3ビットを含む。各要素の第1番目ビットは第1読出しデータY1の各ビットである。各要素の残りビットは追加的な読出しの結果である。第2読出しデータY2の各要素が3ビットで構成されれば、各要素は‘000’乃至‘111’の8つのパターンの中で1つを有する。初期対数尤度比マッパ320は第2読出しデータY2の各要素の値にしたがって、8つの対数尤度比の中で1つをマッピングする。第2読出しデータY2の各要素のビットの数は限定されない。
軟判定SDを遂行するために、追加的な読出しを通じてメモリセルの閾値セルの情報が追加的に獲得される。追加情報に基づいて、多様な対数尤度比がマッピングされる。例えば、1つのメモリセルが第1番目読出しで‘1’に読み出されるが、追加的な読出しを通じて‘0’に近い閾値電圧を有する‘1’であると読み出される。このようなメモリセルは低い対数尤度比を有するようにマッピングされる。1つのメモリセルが第1番目読出しで‘1’として読み出され、追加的な読出しを通じて‘0’と大きい差異がある閾値電圧を有することと読み出される。このようなメモリセルは高い対数尤度比を有するようにマッピングされる。メモリセルの閾値電圧に対する追加情報を利用するので、軟判定SDのデコーディング正確度は硬判定SDのデコーディング正確度より高い。
本発明の実施形態によれば、第1読出しデータY1と信頼性ビットが形成する第3読出しデータY3とを利用してデコーディングが遂行される。第3読出しデータY3を利用するデコーディングは、第1読出しデータY1を利用する時のようなオーバーヘッドに、第2読出しデータY2を利用する時に近接する正確度を有する。
図4は図3のエラー訂正コードデコーダー300で使用されるパリティー検査行列Hの例を示す。例示的に、パリティー検査行列Hの第1行に“1011100”が順次的に配置され、第2行に“1101010”が順次的に配置され、第3行に“0111001”が順次的に配置される。
パリティー検査行列Hの要素の中で第1行の要素、第2行の要素、及び第3行の要素は各々第1乃至第3検査ノードを形成する。パリティー検査行列Hの因子(Factors)の中で第1乃至第7列の要素は各々第1乃至第7変数ノードを形成する。
説明を簡単にするために、第1乃至第3検査ノードの要素はパリティー検査行列Hの列の位置にしたがって参照記号a乃至gに表示される。また、第1乃至第7検査ノードの要素はパリティー検査行列Hの行の位置にしたがって参照記号a乃至cに表示される。
図4に示したように、パリティー検査行列Hの各要素は検査ノードであり、かつ変数ノードである。
エラー訂正コードデコーダー300で使用されるパリティー検査行列Hは図4に図示された行列に限定されない。例えば、図4のパリティー検査行列Hより低い密度の“1”を有するパリティー検査行列がエラー訂正コードデコーダー300で使用される。エラー訂正コードデコーダー300で使用されるパリティー検査行列のサイズは図4に示したように3X7であることに限定されない。
図5は図4のパリティー検査行列Hから導出されるファクタグラフFG1〜FG3を示す。図4及び図5を参照すれば、第1ファクタグラフFG1は第1乃至第3検査ノードC1a、C2a、C3a、及び第1乃至第7変数ノードV1a、V2a、V3a、V4a、V5a、V6a、V7aの間のファクタグラフを示す。
検査ノードC1a〜C3aの中で‘1’を有する検査ノードC1a、C2aは変数ノードV1a〜V7aの中で‘1’を有する変数ノードV1a、V3a〜V5aと連結関係を有し得り、相互間にメッセージを伝送する。例えば、‘1’を有する変数ノードV1aは‘1’を有する全て検査ノードC1a、C2aと連結関係を有する。‘1’を有する検査ノードC1aは‘1’を有する全ての変数ノードV1a、V3a、V4a、V5aと連結関係を有する。
検査ノードC1a〜C3aの中で‘0’を有する検査ノードC3aは変数ノードV1a〜V7aの中で‘0’を有する変数ノードV2a、V6a、V7aと連結関係を有し得るが、相互間にメッセージを伝送できない。
第2ファクタグラフFG2は第1乃至第3検査ノードC1b〜C3bと第1乃至第7変数ノードV1b〜V7bとの間のファクタグラフを示す。検査ノードC1b〜C3bの中で‘1’を有する検査ノードC2b、C3bと変数ノードV1b〜V7bの中で‘1’を有する変数ノードV1b、V2b、V4b、V6bとは連結関係を有し得り、相互間にメッセージを伝送する。‘0’を有する検査ノードC1bと‘0’を有する変数ノードV3b、V5b、V7bとは連結関係を有するが、相互間にメッセージを伝送できない。
第3ファクタグラフFG3は第1乃至第3検査ノードC1c〜C3cと第1乃至第7変数ノードV1c〜V7cとの間のファクタグラフを示す。検査ノードC1c〜C3cの中で‘1’を有する検査ノードC1c、C3cは変数ノードV1c〜V7cの中で‘1’を有する変数ノードV2c〜V4c、V7cと連結関係を有し、互にメッセージを伝送する。検査ノードC1c〜C3cの中で‘0’を有する検査ノードC2cは変数ノードV1c〜V7cの中で‘0’を有する変数ノードV1c、V5c、V6cと連結関係を有するが、互にメッセージを伝送できない。
第1ファクタグラフFG1で、パリティー検査行列Hの第a列の検査ノードC1a〜C3aと第a行の変数ノードV1a〜V7aとの間の関係が示される。同様に、第a行の変数ノードV1a〜V7aは第b乃至第g列の検査ノードと各々ファクタグラフを形成する。
第2ファクタグラフFG2で、パリティー検査行列Hの第b列の検査ノードC1b〜C3bと第b行の変数ノードV1b〜V7bとの間の関係が示される。同様に、第b行の変数ノードV1b〜V7bは第a、第c乃至第g列の検査ノードと各々ファクタグラフを形成する。
第3ファクタグラフFG3で、パリティー検査行列Hの第c列の検査ノードC1c〜C3cと第c行の変数ノードV1c〜V1cとの間の関係が示される。同様に、第c行の変数ノードV1c〜V7cは第a及び第b、及び第d乃至第g列の検査ノードと各々ファクタグラフを形成する。
図4及び図5で、パリティー検査行列Hとそれに基づいた検査ノード、変数ノード、及びファクタグラフが説明された。エラー訂正コードデコーダー300は検査ノードと変数ノードとの間のメッセージ伝送に基づいてデコーディングを遂行する。
図6は読出しの時に、エラー訂正コードデコーダー300のエラー訂正方法を示すフローチャートである。例示的に、図2AのS120段階に該当する硬判定HD方法が図6に図示されている。図3及び図6を参照すれば、S210段階で、第1読出しデータY1の読出しビットを利用して第1デコーディングが遂行されて第1読出しデータY1の読出しビットに各々対応する信頼性ビットが生成される。第1読出しデータY1の1つの読出しビットに対して、2以上の信頼性ビットが生成される。第1デコーディングは低密度パリティー検査(LDPC)デコーディングである。第1デコーディングは正常読出し電圧を利用する読出し結果に基づいて遂行される硬判定HDのデコーディングである。信頼性ビットは信頼性データRDを形成する。第1読出しデータY1及び信頼性データRDは第3読出しデータY3を形成する。
S220段階で、第1読出しデータY1の読出しビット及び信頼性データRDの信頼性ビット、即ち第3読出しデータY3を利用して第2デコーディングが遂行される。第2デコーディングは低密度パリティー検査(LDPC)デコーディングである。第2デコーディングは正常読出し電圧を利用する読出し結果とこれに基づいた信頼性ビットに基づいて遂行される硬判定HDのデコーディングである。
図7はデコーディングを遂行する方法をさらに詳細に示すフローチャートである。図3及び図7を参照すれば、S310段階で初期化が遂行される。例えば、変数ノードから検査ノードへ伝送される初期V−Cメッセージが設定される。そして、第1読出しデータY1に初期対数尤度比がマッピングされて第1マッピングデータFn1が生成され得る。
S320段階で、対数尤度比の再マッピング条件が充足されるか否かを判別される。例えば、対数尤度比の再マッピング条件は第1読出しデータY1の1つのビットによって該当する信頼性ビットの数が予め設定された値に到達したか否かを含むことができる。即ち、信頼性ビットの数が予め設定された値に到達すれば、S330段階で第1読出しデータY1及び信頼性データRDに対数尤度比が再マッピングされて第3マッピングデータFn3が生成され得る。
対数尤度比の再マッピング条件は信頼性ビットの数が予め設定された値に到達した後に、デコーディングが遂行された回数が予め設定された値に到達したか否かを含むことができる。信頼性ビットの数が予め設定された値に到達し、以後に遂行されたデコーディングの回数が予め設定された値に到達すれば、S330段階で第1読出しデータY1及び信頼性データRDに対数尤度比が再マッピングされて第3マッピングデータFn3が生成され得る。
S340段階で、V−Cメッセージに基づいて検査ノードが更新される。更新結果は検査ノードから変数ノードへ伝送されるC−Vメッセージである。
S350段階で、C−Vメッセージに基づいて変数ノードが更新される。更新結果は変数ノードから検査ノードへ伝送されるV−Cメッセージである。
S360段階で、暫定デコーディング及びパリティー検査が遂行される。例えば、S350段階の変数ノードの更新結果にしたがって暫定デコーディングが遂行される。デコーディングされたデータ及びパリティー検査行列Hを利用してパリティー検査が遂行される。
S370段階で、パリティー検査が成功したか否かを判別される。パリティー検査が成功すれば、S380段階で硬判定HDが成功したと判定され、エラー訂正デコーディングは終了される。
パリティー検査が失敗すれば、S391段階で、デコーディングループ回数が最大値に到達したか否かが判別される。デコーディングループ回数が最大値に到達すれば、S393段階で硬判定HDが失敗したと判定され得る。デコーディングループ回数が最大値に到達しなかったら、S397段階で信頼性ビットが生成される。例えば、第1読出しデータY1の1つのビットに対して1つの信頼性ビットが生成される。以後に、S320段階が再び遂行される。
例示的に、信頼性ビットの数の最大値は1又はそれより大きい数である。信頼性ビットの生成が完了されれば、第1読出しデータY1の各ビットに対して最大値に対応する数の信頼性ビットが生成される。
信頼性ビットの数が最大値であり、S397段階で新しい信頼性ビットが生成される時、既存に格納された信頼性ビットの中で最も古い値が削除され得る。即ち、信頼性ビットの数が最大値に到達すれば、信頼性ビットはFIFO(First−In First−Out)の形態に管理され得る。
S310段階の初期化は数学式4に基づいて遂行される。
ここで、Zmnは第n変数ノードの中で第m番目変数ノードから伝送されるメッセージを示す。例えば、Z21は第1変数ノードV1a、V1b、V1cの中で第2番目変数ノードV1bから伝送されるメッセージを示す。
第n変数ノードが伝送するメッセージは第1マッピングデータFn1の第n番目要素の対数尤度比である。初期化が遂行されれば、変数ノードから検査ノードへ伝送される初期V−Cメッセージが生成される。例示的に、軟判定SDが遂行される時、初期V−Cメッセージは第2マッピングデータFn2である。
図8は図7の初期化段階(S310)を説明するためのファクタグラフを示す。図8を参照すれば、第1ファクタグラフFG1の第1変数ノードV1aは第1及び第2検査ノードC1a、C2aへメッセージを伝送する。数学式4にしたがって、第1変数ノードV1aは第1マッピングデータFn1の第1番目要素である対数尤度比‘−M’を初期メッセージとして伝送する。
第2変数ノードV2aは検査ノードC1a〜C3aへメッセージを伝送しない。
第3変数ノードV3aは第1及び第2検査ノードC1a、C2aへメッセージを伝送する。数学式4にしたがって、第3変数ノードV3aは第1マッピングデータFn1の3番目要素である対数尤度比‘M’を初期メッセージとして伝送する。
同様に、第4変数ノードV4aは第1及び第2検査ノードC1a、C2aへ第1マッピングデータFn1の第4番目要素である対数尤度比‘M’を初期メッセージとして伝送し、第5変数ノードV5aは第1及び第2検査ノードC1a、C2aへ第1マッピングデータFn1の第五番目要素である対数尤度比‘M’を初期メッセージとして伝送する。第5及び第6変数ノードV6a、V7aはメッセージを伝送しない。
第2ファクタグラフFG2で、第1変数ノードV1bは第2及び第3検査ノードC2b、C3bへメッセージを伝送する。数学式4にしたがって、第1変数ノードV1bは第1マッピングデータFn1の第1番目要素である対数尤度比‘−M’を初期メッセージとして伝送する。同様に、第2変数ノードV2bは第2及び第3検査ノードC2b、C3bへ第1マッピングデータFn1の第2番目要素である対数尤度比‘M’を初期メッセージとして伝送する。第4変数ノードV4bは第2及び第3検査ノードC2b、C3bへ第1マッピングデータFn1の第4番目要素である対数尤度比‘−M’を初期メッセージとして伝送する。第6変数ノードV6bは第2及び第3検査ノードC2b、C3bへ第1マッピングデータFn1の第6番目要素である対数尤度比‘M’を初期メッセージとして伝送する。
第3ファクタグラフFG3で、第2変数ノードV2cは第1及び第3検査ノードC1c、C3cへ第1マッピングデータFn1の第2番目要素である対数尤度比‘M’を初期メッセージとして伝送する。第3変数ノードV3cは第1及び第3検査ノードC1c、C3cへ第1マッピングデータFn1の第3番目要素である対数尤度比‘M’を初期メッセージとして伝送する。第4変数ノードV4cは第1及び第3検査ノードC1c、C3cへ第1マッピングデータFn1の第4番目要素である対数尤度比‘−M’を初期メッセージとして伝送する。第7変数ノードV7cは第1及び第3検査ノードC1c、C3cへ第1マッピングデータFn1の第7番目要素である対数尤度比‘M’を初期メッセージとして伝送する。
変数ノードは第1マッピングデータFn1の対数尤度比を初期メッセージとして検査ノードへ伝送する。変数ノードの各々は自分の値をメッセージとして伝送する。即ち、初期化の時に、変数ノードは第1マッピングデータFn1の対数尤度比に更新されることと理解される。
例示的に、図9に示したように、パリティー検査行列Hの第1行の変数ノードV1a〜V7aの中で‘1’の値を有するノードは第1マッピングデータFn1の同一の位置の対数尤度比に更新される。第2行の変数ノードV1b〜V7bの中で‘1’の値を有するノードは第1マッピングデータFn1の同一の位置の対数尤度比に更新される。第3行の変数ノードV1c〜V7cの中で‘1’の値を有するノードは第1マッピングデータFn1の同一の位置の対数尤度比に更新される。
初期化(図7のS310段階)が遂行された後に、検査ノードの更新(S330段階)が遂行される。検査ノードが更新される過程が図10に示されている。例示的に、対数尤度比再マッピング条件が充足されない時の検査ノードの更新が図10に示される。
図10を参照すれば、検査ノードは変数ノードからV−Cメッセージを受信し、受信されたメッセージにしたがって更新される。検査ノードの更新された値は検査ノードから伝送されるC−Vメッセージである。即ち、検査ノードの更新は検査ノードの値の更新及びC−Vメッセージの生成を含む。検査ノードの更新は数学式5にしたがって遂行される。
第m検査ノードの中で第n番目検査ノードから伝送されるC−VメッセージLmnは媒介変数Tmnに基づいた数式によって定義される。媒介変数TmnはV−CメッセージZmnに基づいた数式によって定義される。
検査ノードの各々は自分の値をC−Vメッセージとして伝送する。即ち、検査ノードの値はC−Vメッセージによって更新される。更新された検査ノードは自分の値をC−Vメッセージとして変数ノードへ伝送する。
関数N(m)はmが選択される時、即ち更新される検査ノードC1、C2、又はC3が選択される時、選択された検査ノードC1、C2、又はC3の内のノード、即ち変数ノードを示す。
式‘N(m)\n’は選択された検査ノードC1、C2又はC3に対応する変数ノードの中で第n番目ノードを除外したノードを示す。例えば、第2検査ノードC2a〜C2gの中で第2番目検査ノードC2bのメッセージが計算される時、‘n’の値は2である。この時、計算式‘N(m)\n’は選択された検査ノードC2に対応する変数ノードV1b〜V1b(第b行の変数ノード)の中で変数ノードC2b(第2番目変数ノード)を除外した残り変数ノードを示す。検査ノードCmnのメッセージTmnは第m検査ノードCmに対応する変数ノードの中で第n番目変数ノードを除外した変数ノードの値にしたがって計算される。
更新される検査ノードが選択されれば、即ち変数mが選択されれば、選択された検査ノードに対応する変数ノード(例えば、選択された検査ノードを含む行の変数ノード)の中で更新される検査ノードと同一の位置の変数ノードを除外した残り変数ノードの値にしたがって、検査ノードのメッセージ(又は値)が更新される。
数学式5の数式は複雑な指数(exponential)演算を含む。したがって、数学式5にしたがう演算を遂行するハードウェア、又はソフトウェアは演算時間及び電力消耗のようなオーバーヘッドを有する。
複雑な指数演算を除去するために、数学式6の近似式が使用される。
数学式6を利用して、数学式5の複雑な指数(exponential)演算を除去した数学式7が検査ノードのアップデートのために使用される。
ここで、αは正規化因子(normalized factor)である。正規化因子(α)は数学式6の近似式を利用することにしたがう誤差を減らすために使用される。
第m検査ノードCma〜Cmgの中で第n番目検査ノードCmnのメッセージLmnの大きさ(magnitude)は検査ノードCmnと同一行の変数ノードVm1〜Vm7の中で検査ノードCmnと同一の位置の変数ノードVmnを除外した残り検査ノードの最小値に正規化因子(α)が掛けられた値である。
第m検査ノードCma〜Cmgの中で第n番目検査ノードCmnのメッセージLmnの符号は第1及び第2媒介変数σmn、σnによって決定される。検査ノードに受信されたV−CメッセージZmnが正の値を有する時、第1媒介変数σmnは1の値を有する。検査ノードに受信されたV−CメッセージZmnが正の値を有しない時、第1媒介変数σmnは0の値を有する。
第2媒介変数σnは第1媒介変数σmnにしたがって決定される値を有する。第2媒介変数σnの値は検査ノードに受信されたV−Cメッセージにしたがって演算される第1媒介変数σmnの総合にモジュロ(modulo)−2演算を遂行した結果である。即ち、第2媒介変数σnの値は検査ノードに受信されるV−Cメッセージの中で正の値を有するメッセージの数にモジュロ−2演算を遂行した結果である。
検査ノードに受信されたV−Cメッセージの中で正の値を有するメッセージの数が奇数である時、第2媒介変数σnは1の値を有する。検査ノードに受信されたV−Cメッセージの中で正の値を有するメッセージの数が偶数である時、第2媒介変数σnは0の値を有する。即ち、受信されたV−Cメッセージの中で正の値を有するメッセージの数が奇数である時、第m検査ノードCma〜Cmgの中で第n番目検査ノードCmnのメッセージLmnの符号はマイナス(−)に設定される。受信されたV−Cメッセージの中で正の値を有するメッセージの数が偶数である時、第m検査ノードCma〜Cmgの中で第n番目検査ノードCmnのメッセージLmnの符号はプラス(+)に設定される。
数学式5及び7を比較すれば、数学式7の演算が数学式5の演算より簡単である。即ち、検査ノードの更新の時のオーバーヘッドは数学式7にしたがう演算方法がさらに少ない。
説明を簡単にするために、パリティー検査行列Hのような行列の形態を取り、第1マッピングデータFn1によって初期化され、そして以後の検査ノードの更新と変数ノードの更新とを直観的に示す空間を演算空間OSと称する。以下で、演算空間OSを参照して検査ノードの更新及び変数ノードの更新が説明される。
図11及び図12は検査ノードの更新方法にしたがう演算空間OSを示す。
図11は第1番目列の検査ノードC1a、C2a、C3aの更新方法を示す。数学式5又は数学式7に記載されたように、更新される検査ノードが選択されれば、即ち変数mが選択されれば、選択された検査ノード内の変数ノードの中で更新される検査ノードと同一の位置の変数ノードを除外した残り変数ノードの値にしたがって、検査ノードのメッセージ(又は値)が更新される。
第1検査ノードC1に対応する変数ノードV1a〜V7aの中で0の値を有する変数ノードはメッセージを伝送できない。したがって、検査ノードC1aの更新はメッセージを伝送する変数ノードV3a、V4a、V5aからのメッセージにしたがって遂行される。検査ノードC1aの更新は数学式5又は数学式7にしたがって遂行される。数学式5又は数学式7の演算結果が検査ノードC1aの新しい値(又はメッセージ)に更新される。
同様に、検査ノードC2aは変数ノードV2b、V4b、V6bから伝送されるメッセージにしたがって更新される。
検査ノードC3aは0の値を有するので、メッセージを受信できない。したがって、検査ノードC3aは更新されない。
図12は第2番目列の検査ノードC1b、C2b、C3bの更新方法を示す。数学式5又は数学式7に記載されたように、更新される検査ノードが選択されれば、即ち変数mが選択されれば、選択された検査ノード内の変数ノードVm1〜Vm7の中で更新される検査ノードと同一の位置の変数ノードを除外した残り変数ノードの値にしたがって、検査ノードのメッセージ(又は値)が更新される。
第2検査ノードC2の変数ノードV1b〜V7bの中で0の値を有する変数ノードはメッセージを伝送できない。したがって、検査ノードC2bの更新はメッセージを伝送する変数ノードV1b、V4b、V6bからのメッセージにしたがって遂行される。検査ノードC2bの更新は数学式5又は数学式7にしたがって遂行される。数学式5又は数学式7の演算結果が検査ノードC2bの新しい値(又はメッセージ)に更新される。
同様に、検査ノードC3bは変数ノードV3c、V4c、V7cから伝送されるメッセージにしたがって更新される。
検査ノードC1bは0の値を有するので、メッセージを受信できない。したがって、検査ノードC1bは更新されない。
同一の方法に、第3列乃至第7列の検査ノードの更新が遂行される。
図11及び図12を参照して説明されたように、特定な検査ノードが更新される時、特定な検査ノードと同一の行の変数ノードの中で特定な検査ノードと同一の位置の変数ノードを除外した残り変数ノードのメッセージにしたがって、数学式5又は数学式7の演算が遂行される。演算の結果は特定な検査ノードの値(又はメッセージ)に更新される。
検査ノードの更新(図7のS340段階)が遂行された後に、変数ノードの更新(S350段階)が遂行される。変数ノードが更新される過程が図13に図示されている。例示的に、対数尤度比再マッピング条件が充足されない時の変数ノードの更新が図13に図示される。
図13を参照すれば、変数ノードは検査ノードからC−Vメッセージを受信し、受信されたメッセージにしたがって更新される。変数ノードの更新された値は変数ノードから伝送されるV−Cメッセージである。即ち、変数ノードの更新は変数ノードの値の更新及びV−Cメッセージの生成を含む。変数ノードの更新は数学式8にしたがって遂行される。
媒介変数Znは事後確率(Posteriori Probability)を示す。事後確率Znは該当位置の読出しデータ(例えば、第1読出しデータY1)が1である確率又は0である確率を示す。事後確率Znは特定変数ノードに受信された全てC−Vメッセージと特定変数ノードに対応する第1マッピングデータFn1との合計である。
特定変数ノードから伝送されるV−CメッセージZmnは事後確率Zn、そして特定変数ノードと同一位置の検査ノードから伝送されたC−VメッセージLmnとの差である。
図14及び図15は変数ノードの更新方法にしたがう演算空間OSを示す。数学式8に記載されたように、更新される検査ノードが選択されれば、即ち変数nが選択されれば、選択された変数ノード内の検査ノードC1n〜C3nの中で更新される変数ノードと同一の位置の検査ノードを除外した残り検査ノードのメッセージ(又は値)、そして第1マッピングデータFn1の中で対応する位置の値にしたがって、変数ノードのメッセージ(又は値)が更新される。
図14で、第1番目行の変数ノードV1a〜V7aの更新方法が図示される。第1変数ノードV1aに対応する検査ノードC1a〜C3aの中で0の値を有する検査ノードはメッセージを伝送できない。したがって、変数ノードV1aの更新はメッセージを伝送する検査ノードC2a及び第1マッピングデータFn1の値(−M)にしたがって遂行される。変数ノードV1aの更新は数学式8にしたがって遂行される。数学式8の演算結果が変数ノードV1aの新しい値(又はメッセージ)に更新される。
同様に、変数ノードV3aは検査ノードC3cから伝送されるメッセージと第1マッピングデータFn1の値(M)にしたがって更新される。変数ノードCa4は検査ノードC2d、C3dから伝送されるメッセージと第1マッピングデータFn1の値(−M)にしたがって更新される。変数ノードV5aは第1マッピングデータFn1の値(M)にしたがって更新される。
変数ノードV2a、V6a、V7aは0の値を有するので、メッセージを受信できない。したがって、変数ノードV2a、V6a、V7aは更新されない。
図15で、第2番目行の変数ノードV1b〜V7bの更新方法が図示される。第1変数ノードV1bに対応する検査ノードC1a〜C3aの中で0の値を有する検査ノードはメッセージを伝送できない。したがって、変数ノードV1aの更新はメッセージを伝送する検査ノードC2a及び第1マッピングデータFn1の値(−M)にしたがって遂行される。変数ノードV1aの更新は数学式8にしたがって遂行される。数学式8の演算結果が変数ノードV1aの新しい値(又はメッセージ)に更新される。
同様に、変数ノードV2bは検査ノードC3bから伝送されるメッセージと第1マッピングデータFn1の値(M)にしたがって更新される。変数ノードCa4は検査ノードC1d、C3dから伝送されるメッセージと第1マッピングデータFn1の値(−M)にしたがって更新される。変数ノードV6bは第1マッピングデータFn1の値(M)にしたがって更新される。
同一の方法で、第3行の変数ノードの更新が遂行される。
図14及び図15を参照して説明されたように、特定な変数ノードが更新される時、特定な変数ノードと同一の列の検査ノードの中で特定な変数ノードと同一の位置の検査ノードを除外した残り変数ノードのメッセージ及び第1マッピングデータFn1の値の合計が特定な変数ノードの値(又はメッセージ)に更新される。
図7に示したように、変数ノードの更新(S350段階)が遂行された後に暫定デコーディング及びパリティー検査(S360段階)が遂行される。暫定デコーディングは事後確率Znに基づいて数学式9にしたがって遂行される。暫定デコーディングの結果はデコーディングされたデータ
である。
特定位置の事後確率Znが0又は正の値である時、該当位置のデコーディングされたデータ
は‘1’と判別される。特定位置の事後確率Znが負の値である時、該当位置のデコーディングされたデータ
は‘0’と判別される。
以後に、暫定デコーディングの結果にしたがってパリティー検査が遂行される。パリティー検査はデコーディングされたデータ
及びパリティー検査行列に基づいて数学式10にしたがって遂行される。
デコーディングされたデータ
及びパリティー検査行列が数学式10を満足する時、デコーディングされたデータ
は正しくデコーディングされ、パリティー検査は成功したと判別される。即ち、硬判定HDが成功したと判別(S260段階)される。
デコーディングされたデータ
及びパリティー検査行列が数学式10を満足しない時、デコーディングされたデータ
は正しくデコーディングされなく、パリティー検査は失敗したと判別される。以後に、硬判定HDの次にループが遂行されるか、或いは、軟判定SDが遂行される。
図16は読出し及び信頼性情報メモリ310の例を示す図面である。図3及び図16を参照すれば、読出し及び信頼性情報メモリ310は第1読出しデータY1を格納する第1格納領域M1、信頼性データRDを格納する第2格納領域M2と第3格納領域M3とを含む。
信頼性データRDの各ビットは同一の位置の第1読出しデータY1のビットの信頼性を示す。
読出し及び信頼性情報メモリ310は信頼性データRDをFIFO(First−In First−Out)の方法によって管理する。例えば、読出し及び信頼性情報メモリ310が最大値に該当する信頼性データRDを格納し、新しい信頼性データRDが生成される時、読出し及び信頼性情報メモリ310は最も古い信頼性データRDを削除し、新しい信頼性データRDを格納できる。
例示的に、第2及び第3格納領域M2、M3は軟判定SDが遂行される時、追加に読み出されたデータを格納する格納領域と同一であり得る。軟判定SDの時に、追加データを格納する格納領域が信頼性データRDを格納するために使用されれば、信頼性データRDを格納するための別の格納領域が要求されない。
図17は信頼性ビットを生成する方法(図7のS397段階)をさらに詳細に示すフローチャートである。図17を参照すれば、S410段階で第1読出しデータY1の読出しビットとデコーディングされたデータ
のデコーディングされたビットが比較される。同一の位置の読出しビットとデコーディングされたビットが比較される。
S420段階で、対応する位置でデコーディングされたビットと異なる値を有する読出しビットが検出される。例えば、第1読出しデータY1の第k番目ビットの値が‘1’であり、デコーディングされたデータ
の第k番目ビットの値が‘0’であれば、第k番目ビットが検出される。
S430段階で、検出された読出しビットにしたがって弱い(weak)信頼性ビットが生成される。例えば、‘0’が読出しビットの信頼性が低いことを示す弱い(weak)信頼性信頼性ビットである時、S520段階で検出された読出しビットに対応する信頼性ビットは‘0’である。
S440段階で、残り読出しビットにしたがって強い(strong)信頼性ビットが生成される。例えば、‘1’が読出しビットの信頼性が高いことを示す強い(strong)信頼性信頼性ビットである時、S520段階で検出されない読出しビットに対応する信頼性ビットは‘1’である。S430段階とS440段階は同時に遂行できる。
図18及び図19は信頼性ビットが生成される過程を示す。図18で、第1番目デコーディングループが遂行された場合が図示される。第1読出しデータY1とデコーディングされたデータ
の比較を通じて第1番目信頼性ビットRD_1が生成される。信頼性ビットは第2格納領域M2に格納される。
第1読出しデータY1の第1番目、第5番目、及び第6番目ビットはデコーディングされたデータ
の第1番目、第5番目、及び第6番目ビットと各々異なる値を有する。したがって、第1番目信頼性ビットRD_1の第1番目、第5番目、及び第6番目ビットは弱い(weak)信頼性ビット(例えば、‘0’)として生成される。
第1読出しデータY1の第2番目乃至第4番目ビット、及び第7番目ビットはデコーディングされたデータ
の第2番目乃・至第4番目ビット、及び第7番目ビットと各々同一の値を有する。したがって、第1番目信頼性ビットRD_1の第2番目乃至第4番目信頼性ビット、そして第7番目信頼性ビットは強い(Strong)信頼性ビット(例えば、‘1’)として生成される。
図19で、第2番目デコーディングループが遂行された場合が図示される。第1番目デコーディングループで生成された信頼性ビットは第2格納領域M2から第3格納領域M3へ移動される。第2番目デコーディングループで生成される信頼性ビットは第2格納領域M2に格納される。
第1読出しデータY1の第3番目、第6番目、及び第7番目ビットはデコーディングされたデータ
の第3番目、第6番目、及び第7番目ビットと各々異なる値を有する。したがって、第2番目信頼性ビットRD_2の第3番目、第6番目、及び第7番目信頼性ビットは弱い(weak)信頼性ビットとして生成される。
第1読出しデータY1の第1番目、第2番目、第4番目、及び第5番目ビットはデコーディングされたデータ
の第1番目、第2番目、第4番目、及び第5番目ビットと各々同一の値を有する。したがって、第2番目信頼性ビットRD_2の第1番目、第2番目、第4番目、及び第5番目信頼性ビットは強い(strong)信頼性ビットとして生成される。
強い(strong)信頼性ビットが‘1’であり、弱い(weak)信頼性ビットが‘0’である時、第3読出しデータY3は数学式11の形態に整理される。
Y3 = [010 111 101 011 110 100 101]
・・・<数学式11>
第3読出しデータY3の各要素の第1番目ビットは第1読出しデータY1の各ビットである。第3読出しデータY3の各要素の第2番目ビットは最も最近に遂行されたデコーディングループで生成された信頼性ビットである。第3読出しデータY3の各要素の第3番目ビットは最も最近のデコーディングループの直前に遂行されたデコーディングループで生成された信頼性ビットである。
軟判定SDの時に、使用される第2読出しデータY2と類似に、第3読出しデータY3は第1読出しデータY1の各ビットの信頼性を示す追加情報を含む。第3読出しデータY3は2^3=8個のパターンを有するので、より多い対数尤度比にマッピングされ得り、したがって硬判定HDデコーディングの正確性が向上される。
図20は硬判定対数尤度比レジスター321に格納されたマッピング情報の例を示す。第1読出しデータY1が受信される時、硬判定対数尤度比レジスター321は上述したように2つの対数尤度比(+M、−M)をマッピング情報に出力する。第3読出しデータY3が受信される時、硬判定対数尤度比レジスター321は図20に図示されたようなマッピング情報を出力する。
例示的に、信頼性が低い要素、即ち弱い(weak)信頼性ビットを含む要素はさらに低い対数尤度比を有するようにマッピングされる。信頼性が高い要素、即ち強い(strong)信頼性ビットを含む要素はさらに高い対数尤度比を有するようにマッピングされる。
例示的に、最も最近に生成された信頼性データRDの影響が増大されるように、対数尤度比M1〜M8が設定される。
数学式11の第3読出しデータY3に図20のマッピング情報がマッピングされれば、第3マッピングデータFn3は数学式12である。
Fn3 = [M3 M8 M6 M4 M7 M5 M6] ・・・<数学式12>
各対数尤度比は正の値又は負の値を有する。
図21は検査ノードが更新(S340段階)される方法を示す。例示的に、対数尤度比再マッピング条件が充足された時の検査ノードの更新方法が図21に図示される。図21を参照すれば、検査ノードは同一行の変数ノードの中で自分と同一の位置ではない変数ノードからメッセージを受信し、受信されたメッセージにしたがって更新される。対数尤度比が再マッピングされた第3マッピングデータFn3が使用されないので、検査ノードの更新は図10乃至図12を参照して説明された方法と同一の方法に遂行される。
図22は変数ノードが更新(S350段階)される方法を示す。変数ノードは同一列の検査ノードの中で自分と同一の位置ではない変数ノード、そして自分と同一の位置の第3マッピングデータFn3の要素からメッセージを受信し、受信されたメッセージにしたがって更新される。多様な対数尤度比(M1〜M8)が再マッピングされた第3マッピングデータFn3が使用されることを除外すれば、検査ノードの更新は図13乃至図15を参照して説明された方法と同一の方法に遂行される。
上述したように、本発明の実施形態によるエラー訂正デコーダー300は格納装置100で1回読み出された第1読出しデータY1をデコーディングして信頼性データRDを生成する。そして、第1読出し結果Y1と信頼性データRDの組み合わせである第3読出しデータY3に基づいて対数尤度比が再マッピングされる。この時、低い信頼性を有する要素は低い対数尤度比を有するようにマッピングされ、高い信頼性を有する要素は高い対数尤度比を有するようにマッピングされる。低密度パリティー検査(LDPC)デコーディングが遂行される時、低い対数尤度比を有する要素は他の要素に及ぶ影響が少ない。高い対数尤度比を有する要素は他の要素に及ぶ影響が大きい。
即ち、本発明によれば、信頼性が少ない要素の影響は減少し、信頼性が高い要素の影響は増加する。したがって、低密度パリティー検査(LDPC)デコーディング、より詳細には硬判定HDデコーディングの正確性が向上される。
上述された実施形態で、第1読出しデータY1の1つのビットによって2ビットの信頼性ビットが提供されると説明された。しかし、第1読出しデータY1の1つのビットによって提供される信頼性ビットの数は限定されない。
上述された実施形態で、エラー訂正コードデコーダー300は格納システム1000の構成要素であると説明された。しかし、エラー訂正コードデコーダー300は格納システム1000で使用されることに限定されない。エラー訂正コードデコーダー300はデータでエラーが発生する環境で多様に使用される。
例示的に、軟判定SDは図7に図示された方法と類似に遂行される。例示的に、対数尤度比再マッピング(S320段階及びS330段階)と信頼性ビットの生成段階(S397段階)が除去され、S380段階が軟判定成功に置換され、S393段階が軟判定失敗に置換され、そして軟判定失敗処理した後に読出しエラー(図2AのS170段階)処理が遂行されることを除外すれば、軟判定SDは図7に図示された方法と同一の方法によって遂行される。
例示的に、軟判定SDの時に、使用される対数尤度比が第1読出しデータY1及び信頼性データRDにマッピングされる。即ち、S330段階で再マッピングされる対数尤度比と軟判定SDの時に、マッピングされる対数尤度比は同一であり得る。
例示的に、デコーディングが反復的に遂行される時、以前デコーディングループで計算されたノードの値が次にデコーディングループに使用される。
図23はデコーディングを遂行する方法の他の例を示すフローチャートである。図7のデコーディング方法と比較すれば、最大ループ判別段階(S591)と信頼性ビット生成段階(S597)との間に、信頼性ビット生成条件が充足されるか否かを判別する段階(S595段階)が追加される。
例えば、信頼性ビット生成条件はデコーディングが遂行された回数を含む。最初n回のデコーディングループが遂行される時、信頼性ビットは生成されなく、n回のデコーディングループが遂行された次から信頼性ビットが生成される。したがって、相対的に信頼性が低い初期デコーディング結果は無視され、相対的に信頼性が高い中間以後のデコーディング結果にしたがって信頼性ビットが生成される。
図24は図1の格納システム1000の他の例を示すブロック図である。図24を参照すれば、エラー訂正コードデコーダー300aは第1デコーダーと第2デコーダーとを含む。第1デコーダーは第2デコーダーと異なるデコーディング方法を使用する。例えば、第1デコーダーはBCH(Bose−Chaudhuri−Hocquenghem)コードの利用してエラーを訂正する。第2デコーダーはLDPC(Low Density Parity Check)コードの利用してエラーを訂正する。第1デコーダーは相対的に少ない容量を有するメタデータのエラーを訂正する。第2デコーダーは相対的に多い容量を有する使用者データのエラーを訂正する。
図25は図1の格納システム1000の応用例を示すブロック図である。図25を参照すれば、格納システム2000は不揮発性メモリ装置2100及びコントローラ2200を含む。不揮発性メモリ装置2100は複数の不揮発性メモリチップを含む。複数の不揮発性メモリチップは複数のグループに分割される。複数の不揮発性メモリチップの各グループは1つの共通チャンネルを通じてコントローラ2200と通信するように構成される。例示的に、複数の不揮発性メモリチップは第1乃至第kチャンネルCH1〜CHkを通じてコントローラ2200と通信することと図示されている。
コントローラ2200は図3を参照して説明されたエラー訂正コードデコーダー300b_1〜300b_kを含む。エラー訂正コードデコーダー300b_1〜300b_kは不揮発性メモリ装置2100から読み出されるデータのエラーを訂正する。
エラー訂正コードデコーダー300b_1〜300b_kはチャンネルCH1〜CHkの同等の数だけ提供される。1つのエラー訂正コードデコーダーは1つのチャンネルに連結された不揮発性メモリチップのエラーを訂正する。
1つのエラー訂正コードデコーダーは第1デコーダーと第2デコーダーとを含む。第1デコーダーは第2デコーダーと異なるデコーディング方法を使用する。例えば、第1デコーダーはBCH(Bose−Chaudhuri−Hocquenghem)コードの利用してエラーを訂正する。第2デコーダーはLDPC(Low Density Parity Check)コードの利用してエラーを訂正する。第1デコーダーは相対的に少ない容量を有するメタデータのエラーを訂正する。第2デコーダーは相対的に多い容量を有する使用者データのエラーを訂正する。
図25で、1つのチャンネルに複数の不揮発性メモリチップが連結されることと説明された。しかし、1つのチャンネルに1つの不揮発性メモリチップが連結されるように格納システム2000が変形され得る。
図26は本発明の実施形態によるメモリカード3000を示す。図26を参照すれば、メモリカード3000は不揮発性メモリ装置3100、コントローラ3200、及びコネクター3300を含む。
コントローラ3200は図3を参照して説明されたエラー訂正コードデコーダー300cを含む。エラー訂正コードデコーダー300cは不揮発性メモリ装置3100から読み出されるデータのエラーを訂正する。
エラー訂正コードデコーダー300cは第1デコーダーと第2デコーダーを含む。第1デコーダーは第2デコーダーと異なるデコーディング方法を使用する。例えば、第1デコーダーはBCH(Bose−Chaudhuri−Hocquenghem)コードの利用してエラーを訂正する。第2デコーダーはLDPC(Low Density Parity Check)コードの利用してエラーを訂正する。第1デコーダーは相対的に少ない容量を有するメタデータのエラーを訂正する。第2デコーダーは相対的に多い容量を有する使用者データのエラーを訂正する。
コネクター3300はメモリカード3000とホストを電気的に連結する。
メモリカード3000はPCカード(PCMCIA、personal computer memory card international association)、コンパクトフラッシュ(登録商標)カード(CF)、スマートメディアカード(SM、SMC)、メモリスティック、マルチメディアカード(MMC、RS−MMC、MMCmicro)、SDカード(SD、miniSD、microSD、SDHC)、ユニバーサルフラッシュ記憶装置(UFS)等のようなメモリカードを構成する。
図27は本発明の実施形態によるソリッドステートドライブ(4000、SSD、Solid State Drive)を示す。図27を参照すれば、ソリッドステートドライブ4000は複数の不揮発性メモリ装置4100、コントローラ4200、及びコネクター4300を含む。
コントローラ3200は図3を参照して説明されたエラー訂正コードデコーダー300d_1〜300d_3を含む。エラー訂正コードデコーダー300d_1〜300d_3は不揮発性メモリ装置3100から読み出されるデータのエラーを訂正する。
エラー訂正コードデコーダー300d_1〜300d_3はチャンネルの数に該当するように提供される。1つのエラー訂正コードデコーダーは1つのチャンネルに連結された不揮発性メモリ装置のエラーを訂正する。
1つのエラー訂正コードデコーダーは第1デコーダーと第2デコーダーとを含む。第1デコーダーは第2デコーダーと異なるデコーディング方法を使用する。例えば、第1デコーダーはBCH(Bose−Chaudhuri−Hocquenghem)コードの利用してエラーを訂正する。第2デコーダーはLDPC(Low Density Parity Check)コードの利用してエラーを訂正する。第1デコーダーは相対的に少ない容量を有するメタデータのエラーを訂正する。第2デコーダーは相対的に多い容量を有する使用者データのエラーを訂正する。
コネクター4300はソリッドステートドライブ4000とホストを電気的に連結する。
図28は図25を参照して説明された格納システム2000を含むコンピューティングシステム5000を示すブロック図である。図28を参照すれば、コンピューティングシステム5000は中央処理装置5100、RAM5200、使用者インターフェイス5300、電源5400、及び格納システム2000を含む。
格納システム2000はシステムバス5500を通じて、中央処理装置5100、RAM5200、使用者インターフェイス5300、及び電源5400に電気的に連結される。使用者インターフェイス5300を通じて提供されるか、或いは中央処理装置5100によって処理されたデータは格納システム2000に格納される。
図28で、不揮発性メモリ装置2100はコントローラ2200を通じてシステムバス3500に連結されることと図示されている。しかし、不揮発性メモリ装置2100はシステムバス3500に直接連結されるように構成される。
図28で、図25を参照して説明された格納システム2000が提供されることと図示されている。しかし、格納システム2000は図1、図24、又は図25を参照して説明された格納システム1000を含むことができる。
本発明の詳細な説明では具体的な実施形態に関して説明したが、本発明の範囲と技術的思想から逸脱しない限度内で様々な変形が可能である。したがって、本発明の範囲は上述した実施形態に限定されて定められるのではなく、後述する特許請求の範囲と、発明の特許請求の範囲と均等なものによって定まれるべきである。
100 ・・・ 格納装置
200 ・・・ コントローラ
300 ・・・ エラー訂正デコーダー
310 ・・・ 読出し及び信頼性情報メモリ
320 ・・・ 初期対数尤度比マッパ
321 ・・・ 硬判定対数尤度比レジスター
323 ・・・ 軟判定対数尤度比レジスター
330 ・・・ 判定部
340 ・・・ 更新器
350 ・・・ 暫定デコーダー
360 ・・・ 対数尤度比信頼性更新器
1000、2000 ・・・ 格納システム
3000 ・・・ メモリカード
4000 ・・・ ソリッドステートドライブ
5000 ・・・ コンピューティングシステム

Claims (34)

  1. 格納装置からのデータ読出し方法において、
    第1読出し電圧を利用して前記格納装置に格納されたデータを読み出す段階と、
    前記読み出されたデータに基づいて第1低密度パリティー検査(LDPC:Low Density Parity Check)デコーディングを遂行する段階と、
    前記デコーディング結果にしたがって前記読み出されたデータのビット(以下で、読出しビット)各々の信頼性ビットを生成する段階と、
    前記読み出されたデータ及び前記信頼性ビットに基づいて第2低密度パリティー検査デコーディングを遂行して前記読み出されたデータの第1エラー訂正を遂行する段階と、を含む読出し方法。
  2. 前記信頼性ビットを生成する段階は、
    前記第1低密度パリティー検査デコーディングの結果としてデコーディングされたビットを生成する段階と、
    前記読出しビットのビット(第1ビット)の各々を前記デコーディングされたビット(第2ビット)の対応するビットと比較して比較結果を生成する段階と、
    前記比較結果にしたがって、前記第1ビットに対応する信頼性ビットを生成する段階と、を含む請求項1に記載の読出し方法。
  3. 前記第1ビットの中で1つのビットが前記第2ビットの中で対応するビットと同一である時、前記生成された信頼性ビットは前記第1ビットの中で1つのビットの信頼性が高いことを示す請求項2に記載の読出し方法。
  4. 前記第1ビットの中で1つのビットと前記第2ビットの中で対応するビットが互いに異なる時、前記生成された信頼性ビットは前記第1ビットの中で1つのビットの信頼性が低いことを示す請求項2又は3に記載の読出し方法。
  5. 前記第1低密度パリティー検査デコーディングが遂行される時、前記読出しビットに大きさは同一であり、符号が反対である対数尤度比がマッピングされる請求項1から4いずれか1項に記載のに記載の読出し方法。
  6. 前記第2低密度パリティー検査デコーディングが遂行される時、前記読出しビット及び信頼性ビットにしたがって、2つ以上の互いに異なる対数尤度比が再マッピングされる請求項1から5いずれか1項に記載の読出し方法。
  7. 前記第1エラー訂正の時に、エラー訂正が完了されなければ、部分読出し電圧を利用して前記格納装置に格納された前記データを再び読出し、前記読み出されたデータ及び前記再び読み出されたデータに基づいて第3低密度パリティー検査デコーディングを遂行することによって、第2エラー訂正を遂行する段階をさらに含む請求項1から6いずれか1項に記載の読出し方法。
  8. 前記読出し電圧のレベルと前記部分読出し電圧のレベルとは互に異なる請求項7に記載の読出し方法。
  9. 前記第1低密度パリティー検査デコーディングのデコーディングループが基準回数遂行された後に、前記第1低密度パリティー検査デコーディングのデコーディングループが反復される時毎に前記信頼性ビットが生成される請求項1から8いずれか1項に記載の読出し方法。
  10. 前記生成された信頼性ビットの数が基準値に到達すれば、前記信頼性ビットの除去はFIFO(First−In First−Out)に管理される請求項1から9いずれか1項に記載の読出し方法。
  11. 前記生成された信頼性ビットの数が第2基準値に到達した後で、前記第1低密度パリティー検査のデコーディングループが第1基準回数遂行された後に、前記第2低密度パリティー検査デコーディングが遂行される請求項1から10いずれか1項に記載の読出し方法。
  12. 前記第2低密度パリティー検査デコーディングが遂行される時、前記第1低密度パリティー検査デコーディングで演算された検査ノード及び変数ノードの値が承継される請求項1から11いずれか1項に記載の読出し方法。
  13. 外部から受信される第1データを格納し、前記第1データの信頼性をを示す信頼性データを格納し、前記第1データ及び信頼性データを出力するように構成されるメモリと、
    前記メモリから出力される前記第1データに第1対数尤度比をマッピングして第1マッピングデータを出力し、前記メモリから出力される前記第1データ及び信頼性データに第2対数尤度比をマッピングして第2マッピングデータを出力するように構成される対数尤度比マッパと、
    前記第1マッピングデータ又は第2マッピングデータに基づいて低密度パリティー検査(LDPC:Low Density Parity Check)デコーディングを遂行するように構成される判定部と、
    前記判定部から前記第1マッピングデータに基づいたデコーディング結果を受信し、前記デコーディング結果を前記メモリに格納された前記第1データと比較し、比較結果にしたがって前記第1データの各ビットの信頼性をを示す前記信頼性データを生成して前記メモリに格納するように構成される対数尤度比信頼性更新器と、を含むエラー訂正装置。
  14. 前記メモリは前記第1データに対応する各信頼性データのビット数が基準値未満である時、前記データを前記対数尤度比マッパへ出力し、前記第1データに対応する各信頼性データのビット数が前記基準値に到達する時、前記第1データ及び信頼性データを前記対数尤度比マッパへ共に出力するように構成される請求項13に記載のエラー訂正装置。
  15. 前記基準値は前記第1データの1ビットに対応する信頼性データを格納する前記メモリのビット数である請求項14に記載のエラー訂正装置。
  16. 前記対数尤度比信頼性更新器は前記デコーディング結果の中で第1ビット、そして前記データの中で前記第1ビットと、対応する位置の第2ビットとが互いに異なる値を有する時、信頼性が低いことを示す信頼性データを生成するように構成される請求項13から15いずれか1項に記載のエラー訂正装置。
  17. 前記対数尤度比信頼性更新器は前記デコーディング結果の中で第1ビット、そして前記データの中で前記第1ビットと、対応する位置の第2ビットとが同一の値を有する時、信頼性が高いことを示す信頼性データを生成するように構成される請求項13から16いずれか1項に記載のエラー訂正装置。
  18. 前記対数尤度比マッパは前記第1デコーディングが遂行される時、前記第1データに大きさが同一であり、符号が互いに異なる2つの対数尤度比をマッピングするように構成される請求項13から17いずれか1項に記載のエラー訂正装置。
  19. 前記対数尤度比マッパは前記第2デコーディングが遂行される時、前記第1データ及び信頼性データに互いに異なる3以上の対数尤度比をマッピングするように構成される請求項13から19いずれか1項に記載のエラー訂正装置。
  20. 前記判定部でエラーの訂正失敗が感知されれば、前記メモリは外部から追加データを受信して格納し、前記対数尤度比マッパは前記第1データ及び追加データに対数尤度比をマッピングして第3マッピングデータを出力し、前記判定部は前記第3マッピングデータに基づいてデコーディングを遂行する請求項から19いずれか1項に記載のエラー訂正装置。
  21. 前記データに対応する各信頼性データのビット数が基準値に到達する時、前記メモリは前記信頼性データの除去をFIFO(First−In First−Out)方式に管理する請求項13から20いずれか1項に記載のエラー訂正装置。
  22. 前記データに対応する各信頼性データのビット数が基準値に到達し、前記第1マッピングデータに基づいたデコーディングが基準回数遂行された後に、前記メモリは前記第1データ及び信頼性データを前記対数尤度比マッパへ共に出力する請求項13から22いずれか1項に記載のエラー訂正装置。
  23. 前記第1マッピングデータに基づいたデコーディングが基準回数遂行された後に、前記対数尤度比信頼性更新器は前記信頼性データを生成する請求項13から22いずれか1項に記載のエラー訂正装置。
  24. 格納装置と、
    前記格納装置から読み出された第1データを受信し、前記受信された第1データのエラーを訂正する第1エラー訂正コードデコーダーを具備するコントローラと、を含み、
    前記第1エラー訂正コードデコーダーは、
    前記格納装置から読み出された第1データを格納し、前記読み出された第1データの信頼性をを示す信頼性データを格納し、そして前記読み出された第1データ及び信頼性データを出力するように構成されるメモリと、
    前記メモリから出力される前記第1データに第1対数尤度比をマッピングして第1マッピングデータを出力し、前記メモリから出力される前記第1データ及び信頼性データに第2対数尤度比をマッピングして第2マッピングデータを出力するように構成される対数尤度比マッパと、
    前記第1マッピングデータ又は第2マッピングデータに基づいて低密度パリティー検査(LDPC:Low Density Parity Check)デコーディングを遂行するように構成される判定部と、
    前記判定部から前記第1マッピングデータに基づいた第1デコーディング結果を受信し、前記第1デコーディング結果を前記メモリに格納された前記第1データと比較し、比較結果にしたがって前記第1データの各ビットの信頼性をを示す信頼性データを生成して前記メモリに格納するように構成される対数尤度比信頼性更新器と、を含み、
    前記対数尤度比マッパは前記第2マッピングデータにしたがう第2デコーディング結果に基づいて前記読み出された第1データで第1エラー訂正動作を遂行するように構成される格納システム。
  25. 前記格納装置はフラッシュメモリを含む請求項24に記載の格納システム。
  26. 前記格納装置及び前記コントローラはメモリカードを形成する請求項24に記載の格納システム。
  27. 前記格納装置及び前記コントローラはソリッドステートドライブ(SSD:Solid State Drive)を形成する請求項24に記載の格納システム。
  28. 前記第1エラー訂正動作が失敗する時、前記メモリは前記格納装置から追加に読み出されたデータを受信して格納し、前記対数尤度比マッパは前記第1データ及び追加データに対数尤度比をマッピングして第3マッピングデータを出力し、前記判定部は前記第3マッピングデータに基づいてデコーディングを遂行する請求項24に記載の格納システム。
  29. 前記格納装置に格納されたメタデータのエラーを訂正する第2エラー訂正コードデコーダーをさらに含み、
    前記第1エラー訂正コードデコーダーは前記格納装置に格納された使用者データのエラーを訂正するように構成される請求項24に記載の格納システム。
  30. 前記第2エラー訂正コードデコーダーはBCH(Bose−Chaudhuri−Hocquenghem)コードを利用してエラーを訂正するように構成される請求項29に記載の格納システム。
  31. 前記コントローラ及び格納装置は複数の(k個、kは正の整数)チャンネルを通じて互いに通信し、
    前記エラー訂正コードデコーダーは前記複数のチャンネルの中で第1チャンネルを通じて通信されるデータのエラーを訂正し、
    前記コントローラは前記複数のチャンネルの中で第1チャンネルではない他のチャンネルを通じて通信されるデータのエラーを各々訂正する複数の(k−1個)エラー訂正コードデコーダーをさらに含む請求項24に記載の格納システム。
  32. 格納装置からデータを読み出す方法において、
    硬判定読出し動作を遂行して硬判定データを生成する段階と、
    前記硬判定データに基づいて比較結果を生成する段階と、
    前記比較結果に基づいて、前記第1読出し電圧と異なる部分読出し電圧を利用して前記格納装置に格納されたデータに対して軟判定読出し動作を遂行するか否かを判別する段階と、を含み、
    前記硬判定読出し動作を遂行する段階は、
    第1電圧を利用して前記格納装置に格納されたデータを読み出す段階と、
    前記読み出されたデータに基づいてデコーディング動作を遂行することによって、前記読み出されたデータのビット(以下で、読出しビット)各々に対応する信頼性ビットを生成する段階と、
    前記読み出されたデータ及び信頼性ビットに基づいて前記読み出されたデータに対して第1エラー訂正動作を遂行する段階と、を含む方法。
  33. 第1エラー訂正動作を遂行する段階は、デコーディングされたビットを生成する段階を含み、
    前記信頼性ビットを生成する段階は、前記読出しビットのビット(以下で、第1ビット)各々と前記デコーディングされたビット(以下で、第2ビット)との中で対応するビットを比較する段階を含む請求項32に記載の方法。
  34. 前記第1エラー訂正動作は、低密度パリティーチェック(LDPC)デコーディング動作を含み、
    前記比較結果はパリティーチェックによって生成され、
    前記判別する段階は、前記パリティーチェックが失敗した場合、前記軟判定読出し動作を遂行することと判別する段階を含む請求項32に記載の方法。
JP2012274415A 2011-12-30 2012-12-17 格納装置からのデータ読出し方法、エラー訂正装置、及びエラー訂正コードデコーダーを含む格納システム Active JP6096496B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2011-0146645 2011-12-30
KR1020110146645A KR101968746B1 (ko) 2011-12-30 2011-12-30 저장 장치로부터 데이터를 읽는 읽기 방법, 에러 정정 장치, 그리고 에러 정정 코드 디코더를 포함하는 저장 시스템

Publications (2)

Publication Number Publication Date
JP2013141219A true JP2013141219A (ja) 2013-07-18
JP6096496B2 JP6096496B2 (ja) 2017-03-15

Family

ID=48677532

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012274415A Active JP6096496B2 (ja) 2011-12-30 2012-12-17 格納装置からのデータ読出し方法、エラー訂正装置、及びエラー訂正コードデコーダーを含む格納システム

Country Status (4)

Country Link
US (1) US9059738B2 (ja)
JP (1) JP6096496B2 (ja)
KR (1) KR101968746B1 (ja)
CN (1) CN103186352A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019194841A (ja) * 2018-04-09 2019-11-07 インテル・コーポレーション 片側ソフト読み出し
JP2020511079A (ja) * 2017-03-09 2020-04-09 エルジー エレクトロニクス インコーポレイティド Ldpc符号の階層的復号の方法及びそのための装置
JP7407231B2 (ja) 2021-12-08 2023-12-28 ウェスタン デジタル テクノロジーズ インコーポレーテッド メモリ一致低密度パリティ検査符号化方式

Families Citing this family (114)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9136011B2 (en) * 2012-04-26 2015-09-15 Hgst Technologies Santa Ana, Inc. Soft information module
JP2014140111A (ja) * 2013-01-21 2014-07-31 Sony Corp コントローラ、情報処理システム、コントローラの制御方法およびプログラム
KR20150128750A (ko) * 2013-03-07 2015-11-18 마벨 월드 트레이드 리미티드 늦은 신뢰도 정보를 사용하여 디코딩하기 위한 시스템 및 방법
WO2014149738A1 (en) * 2013-03-21 2014-09-25 Marvell World Trade Ltd. Systems and methods for multi-stage soft input decoding
US9450619B2 (en) * 2013-03-22 2016-09-20 Seagate Technology Llc Dynamic log likelihood ratio quantization for solid state drive controllers
CN104572334B (zh) * 2013-10-14 2017-11-21 群联电子股份有限公司 解码方法、存储器存储装置与存储器控制电路单元
TWI527382B (zh) * 2013-10-22 2016-03-21 群聯電子股份有限公司 解碼方法、解碼電路、記憶體儲存裝置與控制電路單元
CN104601178B (zh) * 2013-10-30 2018-02-02 群联电子股份有限公司 解码方法、解码电路、存储器存储装置与控制电路单元
US9189327B2 (en) * 2013-11-19 2015-11-17 International Business Machines Corporation Error-correcting code distribution for memory systems
GB2520708A (en) 2013-11-28 2015-06-03 Ibm Multi-stage codeword detector
US10276247B2 (en) 2013-12-20 2019-04-30 Seagate Technology Llc Read retry operations with estimation of written data based on syndrome weights
US9563502B1 (en) 2013-12-20 2017-02-07 Seagate Technology Llc Read retry operations with read reference voltages ranked for different page populations of a memory
US9633740B1 (en) * 2016-02-11 2017-04-25 Seagate Technology Llc Read retry operations where likelihood value assignments change sign at different read voltages for each read retry
KR102108386B1 (ko) 2013-12-23 2020-05-08 삼성전자주식회사 저장 장치 및 그것의 데이터 엔코딩 및 디코딩 방법들
TWI523018B (zh) * 2013-12-31 2016-02-21 群聯電子股份有限公司 解碼方法、記憶體儲存裝置、記憶體控制電路單元
US9665757B2 (en) 2014-03-07 2017-05-30 Hand Held Products, Inc. Indicia reader for size-limited applications
US9424134B2 (en) * 2014-03-28 2016-08-23 Intel Corporation Boot management in a non-volatile memory system
US9224027B2 (en) 2014-04-01 2015-12-29 Hand Held Products, Inc. Hand-mounted indicia-reading device with finger motion triggering
US9412242B2 (en) 2014-04-04 2016-08-09 Hand Held Products, Inc. Multifunction point of sale system
TWI540586B (zh) * 2014-04-15 2016-07-01 群聯電子股份有限公司 解碼方法、記憶體儲存裝置、記憶體控制電路單元
CN105023613B (zh) * 2014-04-22 2019-06-14 群联电子股份有限公司 解码方法、存储器存储装置及存储器控制电路单元
CN105022674B (zh) * 2014-04-25 2019-02-01 群联电子股份有限公司 解码方法、存储器存储装置、存储器控制电路单元
US9224022B2 (en) 2014-04-29 2015-12-29 Hand Held Products, Inc. Autofocus lens system for indicia readers
US9329935B2 (en) 2014-05-19 2016-05-03 Seagate Technology Llc Method to dynamically update LLRs in an SSD drive and/or controller
US11546428B2 (en) 2014-08-19 2023-01-03 Hand Held Products, Inc. Mobile computing device with data cognition software
US20160062473A1 (en) 2014-08-29 2016-03-03 Hand Held Products, Inc. Gesture-controlled computer system
CN105468471A (zh) * 2014-09-12 2016-04-06 光宝科技股份有限公司 固态存储装置及其错误更正方法
EP3001368A1 (en) 2014-09-26 2016-03-30 Honeywell International Inc. System and method for workflow management
US9594615B2 (en) * 2014-09-30 2017-03-14 Apple Inc. Estimating flash quality using selective error emphasis
US10775165B2 (en) 2014-10-10 2020-09-15 Hand Held Products, Inc. Methods for improving the accuracy of dimensioning-system measurements
US9779276B2 (en) 2014-10-10 2017-10-03 Hand Held Products, Inc. Depth sensor based auto-focus system for an indicia scanner
EP3009968A1 (en) 2014-10-15 2016-04-20 Vocollect, Inc. Systems and methods for worker resource management
US9484089B2 (en) * 2014-10-20 2016-11-01 Sandisk Technologies Llc Dual polarity read operation
US9897434B2 (en) 2014-10-21 2018-02-20 Hand Held Products, Inc. Handheld dimensioning system with measurement-conformance feedback
US9762793B2 (en) 2014-10-21 2017-09-12 Hand Held Products, Inc. System and method for dimensioning
EP3016023B1 (en) 2014-10-31 2020-12-16 Honeywell International Inc. Scanner with illumination system
US10810529B2 (en) 2014-11-03 2020-10-20 Hand Held Products, Inc. Directing an inspector through an inspection
US20160125217A1 (en) 2014-11-05 2016-05-05 Hand Held Products, Inc. Barcode scanning system using wearable device with embedded camera
US9984685B2 (en) 2014-11-07 2018-05-29 Hand Held Products, Inc. Concatenated expected responses for speech recognition using expected response boundaries to determine corresponding hypothesis boundaries
US20160180713A1 (en) 2014-12-18 2016-06-23 Hand Held Products, Inc. Collision-avoidance system and method
US9743731B2 (en) 2014-12-18 2017-08-29 Hand Held Products, Inc. Wearable sled system for a mobile computer device
US10296259B2 (en) 2014-12-22 2019-05-21 Hand Held Products, Inc. Delayed trim of managed NAND flash memory in computing devices
US9564035B2 (en) 2014-12-22 2017-02-07 Hand Held Products, Inc. Safety system and method
US20160180594A1 (en) 2014-12-22 2016-06-23 Hand Held Products, Inc. Augmented display and user input device
US10635876B2 (en) 2014-12-23 2020-04-28 Hand Held Products, Inc. Method of barcode templating for enhanced decoding performance
US10049246B2 (en) 2014-12-23 2018-08-14 Hand Held Products, Inc. Mini-barcode reading module with flash memory management
US10191514B2 (en) 2014-12-23 2019-01-29 Hand Held Products, Inc. Tablet computer with interface channels
US10552786B2 (en) 2014-12-26 2020-02-04 Hand Held Products, Inc. Product and location management via voice recognition
US9652653B2 (en) 2014-12-27 2017-05-16 Hand Held Products, Inc. Acceleration-based motion tolerance and predictive coding
US20160189447A1 (en) 2014-12-28 2016-06-30 Hand Held Products, Inc. Remote monitoring of vehicle diagnostic information
US10621538B2 (en) 2014-12-28 2020-04-14 Hand Held Products, Inc Dynamic check digit utilization via electronic tag
US11443363B2 (en) 2014-12-29 2022-09-13 Hand Held Products, Inc. Confirming product location using a subset of a product identifier
US9830488B2 (en) 2014-12-30 2017-11-28 Hand Held Products, Inc. Real-time adjustable window feature for barcode scanning and process of scanning barcode with adjustable window feature
US9898635B2 (en) 2014-12-30 2018-02-20 Hand Held Products, Inc. Point-of-sale (POS) code sensing apparatus
US9230140B1 (en) 2014-12-30 2016-01-05 Hand Held Products, Inc. System and method for detecting barcode printing errors
US10152622B2 (en) 2014-12-30 2018-12-11 Hand Held Products, Inc. Visual feedback for code readers
US10108832B2 (en) 2014-12-30 2018-10-23 Hand Held Products, Inc. Augmented reality vision barcode scanning system and method
EP3043235B1 (en) 2014-12-31 2018-06-20 Hand Held Products, Inc. Reconfigurable sled for a mobile device
US20160203429A1 (en) 2015-01-09 2016-07-14 Honeywell International Inc. Restocking workflow prioritization
US9564921B1 (en) 2015-02-04 2017-02-07 Microsemi Storage Solutions (U.S.), Inc. Method and system for forward error correction decoding based on a revised error channel estimate
US10121466B2 (en) 2015-02-11 2018-11-06 Hand Held Products, Inc. Methods for training a speech recognition system
KR102265220B1 (ko) * 2015-03-09 2021-06-16 에스케이하이닉스 주식회사 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법
US9564239B2 (en) * 2015-03-16 2017-02-07 Sk Hynix Memory Solutions Inc. Memory controller and operating method thereof
US9250712B1 (en) 2015-03-20 2016-02-02 Hand Held Products, Inc. Method and application for scanning a barcode with a smart device while continuously running and displaying an application on the smart device display
KR102556479B1 (ko) * 2015-03-20 2023-07-17 에스케이하이닉스 주식회사 Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법
US20160292477A1 (en) 2015-03-31 2016-10-06 Hand Held Products, Inc. Aimer for barcode scanning
US9521331B2 (en) 2015-04-21 2016-12-13 Hand Held Products, Inc. Capturing a graphic information presentation
US9693038B2 (en) 2015-04-21 2017-06-27 Hand Held Products, Inc. Systems and methods for imaging
US9786101B2 (en) 2015-05-19 2017-10-10 Hand Held Products, Inc. Evaluating image values
EP3118576B1 (en) 2015-07-15 2018-09-12 Hand Held Products, Inc. Mobile dimensioning device with dynamic accuracy compatible with nist standard
US10094650B2 (en) 2015-07-16 2018-10-09 Hand Held Products, Inc. Dimensioning and imaging items
US9853575B2 (en) 2015-08-12 2017-12-26 Hand Held Products, Inc. Angular motor shaft with rotational attenuation
US9798413B2 (en) 2015-08-27 2017-10-24 Hand Held Products, Inc. Interactive display
US10134112B2 (en) 2015-09-25 2018-11-20 Hand Held Products, Inc. System and process for displaying information from a mobile computer in a vehicle
US20170094238A1 (en) 2015-09-30 2017-03-30 Hand Held Products, Inc. Self-calibrating projection apparatus and process
US9727083B2 (en) 2015-10-19 2017-08-08 Hand Held Products, Inc. Quick release dock system and method
US10395116B2 (en) 2015-10-29 2019-08-27 Hand Held Products, Inc. Dynamically created and updated indoor positioning map
KR20170060234A (ko) * 2015-11-23 2017-06-01 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US9864891B2 (en) 2015-11-24 2018-01-09 Intermec Technologies Corporation Automatic print speed control for indicia printer
KR20170075065A (ko) * 2015-12-22 2017-07-03 에스케이하이닉스 주식회사 메모리 시스템 동작 방법
US9945777B2 (en) 2016-01-14 2018-04-17 Hand Held Products, Inc. Multi-spectral imaging using longitudinal chromatic aberrations
CN106970852A (zh) * 2016-01-14 2017-07-21 钰创科技股份有限公司 闪存错误控制电路及其方法
TWI595498B (zh) * 2016-01-20 2017-08-11 大心電子(英屬維京群島)股份有限公司 解碼方法、記憶體儲存裝置及記憶體控制電路單元
US10235547B2 (en) 2016-01-26 2019-03-19 Hand Held Products, Inc. Enhanced matrix symbol error correction method
US10043582B2 (en) 2016-02-11 2018-08-07 Seagate Technology Llc Establishing parameters of subsequent read retry operations based on syndrome weights of prior failed decodings
US20170299851A1 (en) 2016-04-14 2017-10-19 Hand Held Products, Inc. Customizable aimer system for indicia reading terminal
EP3232367B1 (en) 2016-04-15 2021-11-03 Hand Held Products, Inc. Imaging barcode reader with color separated aimer and illuminator
US10185906B2 (en) 2016-04-26 2019-01-22 Hand Held Products, Inc. Indicia reading device and methods for decoding decodable indicia employing stereoscopic imaging
US9727841B1 (en) 2016-05-20 2017-08-08 Vocollect, Inc. Systems and methods for reducing picking operation errors
US10339352B2 (en) 2016-06-03 2019-07-02 Hand Held Products, Inc. Wearable metrological apparatus
US9940721B2 (en) 2016-06-10 2018-04-10 Hand Held Products, Inc. Scene change detection in a dimensioner
KR102626162B1 (ko) 2016-06-14 2024-01-18 삼성전자주식회사 연산 복잡도를 감소시킬 수 있는 디코더의 동작 방법과 이를 포함하는 데이터 저장 장치의 동작 방법
US10163216B2 (en) 2016-06-15 2018-12-25 Hand Held Products, Inc. Automatic mode switching in a volume dimensioner
US10067827B2 (en) 2016-06-29 2018-09-04 Micron Technology, Inc. Error correction code event detection
US10290358B2 (en) 2016-07-08 2019-05-14 Seagate Technology Llc Independent read threshold voltage tracking for multiple dependent read threshold voltages using syndrome weights
EP3220369A1 (en) 2016-09-29 2017-09-20 Hand Held Products, Inc. Monitoring user biometric parameters with nanotechnology in personal locator beacon
CN106601305A (zh) * 2016-11-18 2017-04-26 华中科技大学 一种使用检错码和纠错码相结合的固态盘纠错方法
WO2018119900A1 (zh) * 2016-12-29 2018-07-05 华为技术有限公司 数据读取方法及闪存设备
CN106992026B (zh) * 2017-03-20 2020-12-01 中山大学 一种针对NAND-Flash存储介质的LDPC码快速信息恢复的译码方法
DE102017117899A1 (de) * 2017-08-07 2019-02-07 Infineon Technologies Ag Durchführen einer kryptografischen Operation
CN107657984B (zh) * 2017-08-16 2020-09-22 深圳市江波龙电子股份有限公司 闪存的纠错方法、装置、设备以及计算机可读存储介质
US10574274B2 (en) * 2017-09-29 2020-02-25 Nyquist Semiconductor Limited Systems and methods for decoding error correcting codes
US10970363B2 (en) * 2017-10-17 2021-04-06 Microsoft Technology Licensing, Llc Machine-learning optimization of data reading and writing
US10491244B2 (en) * 2017-11-14 2019-11-26 Nyquist Semiconductor Limited Systems and methods for decoding error correcting codes
US10511326B2 (en) * 2017-11-14 2019-12-17 Nyquist Semiconductor Limited Systems and methods for decoding error correcting codes
KR102415974B1 (ko) * 2017-12-14 2022-07-04 삼성전자주식회사 에러 정정 장치, 에러 정정 장치의 동작 방법, 그리고 에러 정정 장치를 포함하는 제어기
US10546160B2 (en) 2018-01-05 2020-01-28 Datamax-O'neil Corporation Methods, apparatuses, and systems for providing print quality feedback and controlling print quality of machine-readable indicia
CN108683423B (zh) * 2018-05-16 2022-04-19 广东工业大学 一种多级闪存信道下的ldpc码动态串行调度译码算法及装置
US10715182B2 (en) * 2018-07-27 2020-07-14 Innogrit Technologies Co., Ltd. Systems and methods for decoding error correcting codes with self-generated LLR
KR20200016606A (ko) 2018-08-07 2020-02-17 삼성전자주식회사 메모리 컨트롤러, 메모리 컨트롤러의 동작 방법 및 메모리 시스템
KR20200020535A (ko) * 2018-08-17 2020-02-26 에스케이하이닉스 주식회사 에러 정정 장치, 그것의 동작 방법 및 그것을 포함하는 전자 장치
US11283468B1 (en) * 2021-06-24 2022-03-22 Beijing Tenafe Electronic Technology Co., Ltd. Log-likelihood ratio mapping tables in flash storage systems
CN113571113B (zh) * 2021-07-14 2023-05-09 深圳宏芯宇电子股份有限公司 目标数据的解码方法、装置、电子设备和存储装置
JP2023030722A (ja) * 2021-08-24 2023-03-08 富士通株式会社 信号処理装置及び伝送装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008065969A (ja) * 2006-08-09 2008-03-21 Fujitsu Ltd 符号化装置、復号化装置、符号化方法、復号化方法および記憶装置
JP2009273123A (ja) * 2008-05-02 2009-11-19 Lsi Corp 待ち行列ベースのデータ検出および復号のシステムおよび方法
JP2010109468A (ja) * 2008-10-28 2010-05-13 Toshiba Corp 復号器、メモリコントローラおよび半導体メモリ装置
WO2011113034A2 (en) * 2010-03-12 2011-09-15 Sandforce, Inc. Ldpc erasure decoding for flash memories

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7398453B2 (en) 2005-10-03 2008-07-08 Motorola, Inc. Method and apparatus for a low-density parity-check decoder
WO2007046350A1 (ja) * 2005-10-18 2007-04-26 Nec Corporation Mramの動作方法
KR100738983B1 (ko) 2006-06-07 2007-07-12 주식회사 대우일렉트로닉스 저밀도 패리티 체크 부호의 복호화 방법 및 장치, 이를이용한 광정보 재생장치
US7904793B2 (en) * 2007-03-29 2011-03-08 Sandisk Corporation Method for decoding data in non-volatile storage using reliability metrics based on multiple reads
JP5197544B2 (ja) 2009-10-05 2013-05-15 株式会社東芝 メモリシステム
JP2012050008A (ja) * 2010-08-30 2012-03-08 Toshiba Corp 誤り検出訂正方法および半導体メモリ装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008065969A (ja) * 2006-08-09 2008-03-21 Fujitsu Ltd 符号化装置、復号化装置、符号化方法、復号化方法および記憶装置
JP2009273123A (ja) * 2008-05-02 2009-11-19 Lsi Corp 待ち行列ベースのデータ検出および復号のシステムおよび方法
JP2010109468A (ja) * 2008-10-28 2010-05-13 Toshiba Corp 復号器、メモリコントローラおよび半導体メモリ装置
WO2011113034A2 (en) * 2010-03-12 2011-09-15 Sandforce, Inc. Ldpc erasure decoding for flash memories

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020511079A (ja) * 2017-03-09 2020-04-09 エルジー エレクトロニクス インコーポレイティド Ldpc符号の階層的復号の方法及びそのための装置
US11206042B2 (en) 2017-03-09 2021-12-21 Lg Electronics Inc. Layered decoding method for LDPC code and device therefor
JP2019194841A (ja) * 2018-04-09 2019-11-07 インテル・コーポレーション 片側ソフト読み出し
JP7321717B2 (ja) 2018-04-09 2023-08-07 タホ リサーチ リミテッド 片側ソフト読み出し
JP7407231B2 (ja) 2021-12-08 2023-12-28 ウェスタン デジタル テクノロジーズ インコーポレーテッド メモリ一致低密度パリティ検査符号化方式
US11860733B2 (en) 2021-12-08 2024-01-02 Western Digital Technologies, Inc. Memory matched low density parity check coding schemes

Also Published As

Publication number Publication date
US9059738B2 (en) 2015-06-16
KR20130077962A (ko) 2013-07-10
JP6096496B2 (ja) 2017-03-15
KR101968746B1 (ko) 2019-04-15
US20130173985A1 (en) 2013-07-04
CN103186352A (zh) 2013-07-03

Similar Documents

Publication Publication Date Title
JP6096496B2 (ja) 格納装置からのデータ読出し方法、エラー訂正装置、及びエラー訂正コードデコーダーを含む格納システム
US9529666B2 (en) Decoding method, memory storage device and memory controlling circuit unit
US8397116B2 (en) Decoding method and memory system device using the same
TWI592937B (zh) 解碼方法、記憶體儲存裝置及記憶體控制電路單元
US10484008B2 (en) Memory system with on-the-fly error detection and termination and operating method thereof
US20200373943A1 (en) Data storage device
US9906244B2 (en) Decoding method, memory storage device and memory control circuit unit
US10135464B2 (en) Reliability-assisted bit-flipping decoding algorithm
US10067824B2 (en) Error processing method, memory storage device and memory controlling circuit unit
US10103748B2 (en) Decoding method, memory control circuit unit and memory storage device
US20190163567A1 (en) Decoding method, memory storage device and memory control circuit unit
US9274891B2 (en) Decoding method, memory storage device, and memory controlling circuit unit
US20190190539A1 (en) Error correction device, operating method of error correction device, and controller including error correction device
CN111143107B (zh) 一种fpga单粒子反转校验电路和方法
US10205469B2 (en) Low latency soft decoder architecture for generalized product codes
US20170134049A1 (en) Decoding method, memory storage device and memory control circuit unit
KR20210074425A (ko) 에러를 정정하는 스토리지 컨트롤러, 이를 포함하는 스토리지 장치, 및 이의 동작 방법
US20190158116A1 (en) Method of decoding low density parity check (ldpc) code, decoder and system performing the same
JP2019054448A (ja) メモリシステム
TWI550628B (zh) 解碼方法、記憶體儲存裝置及記憶體控制電路單元
CN107608818A (zh) 解码方法、存储器存储装置及存储器控制电路单元
CN110535476B (zh) Ldpc软译码器软信息存储优化方法、装置、计算机设备及存储介质
WO2019001159A9 (zh) 一种编码方法及装置、计算机存储介质
CN112951313A (zh) 用于纠错的存储控制器、包括其的存储设备及其操作方法
CN112486848A (zh) 一种测试数据的生成方法、装置、芯片及存储介质

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20141226

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151217

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160913

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161007

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170106

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: 20170123

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170216

R150 Certificate of patent or registration of utility model

Ref document number: 6096496

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250