JP2009211209A - 半導体記憶装置、その制御方法、および誤り訂正システム - Google Patents

半導体記憶装置、その制御方法、および誤り訂正システム Download PDF

Info

Publication number
JP2009211209A
JP2009211209A JP2008051419A JP2008051419A JP2009211209A JP 2009211209 A JP2009211209 A JP 2009211209A JP 2008051419 A JP2008051419 A JP 2008051419A JP 2008051419 A JP2008051419 A JP 2008051419A JP 2009211209 A JP2009211209 A JP 2009211209A
Authority
JP
Japan
Prior art keywords
error
error correction
data
code
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
JP2008051419A
Other languages
English (en)
Other versions
JP5166074B2 (ja
Inventor
Akira Yamaya
陽 山家
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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
Priority to JP2008051419A priority Critical patent/JP5166074B2/ja
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to KR1020107018696A priority patent/KR101203235B1/ko
Priority to PCT/JP2008/067585 priority patent/WO2009107267A1/en
Priority to EP08872770A priority patent/EP2248028A4/en
Priority to US12/867,068 priority patent/US8086933B2/en
Priority to CN200880126996.3A priority patent/CN101946239A/zh
Publication of JP2009211209A publication Critical patent/JP2009211209A/ja
Priority to US13/334,438 priority patent/US8381066B2/en
Priority to US13/743,727 priority patent/US8499216B2/en
Application granted granted Critical
Publication of JP5166074B2 publication Critical patent/JP5166074B2/ja
Priority to US13/939,335 priority patent/US8751896B2/en
Expired - Fee Related 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/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
    • 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
    • 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
    • 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/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Read Only Memory (AREA)
  • Error Detection And Correction (AREA)

Abstract

【課題】誤り訂正能力を損なうことなく消費電力及び回路規模を低減することが可能な半導体記憶装置、その制御方法、および誤り訂正システムを提供することを目的とする。
【解決手段】SSD100のECC回路40は、読み出しデータに対して、第1誤り訂正符号(ハミング符号)を用いて第1誤り訂正し、この第1誤り訂正結果を、第2誤り訂正符号(BHC符号)を用いてさらに第2誤り訂正し、さらに、第2誤り訂正結果を、第3誤り訂正符号(RS符号)を用いて第3誤り訂正する。
【選択図】 図1

Description

本発明は、半導体記憶装置、その制御方法、および誤り訂正システムに関し、詳細には、不揮発に情報を記憶する半導体メモリの誤りを訂正する誤り訂正回路を備えた半導体記憶装置、その制御方法、および誤り訂正システムに関する。
近年、保持された電荷量に応じて情報を記憶するフラッシュメモリなどの半導体素子が広く知られている。また、電荷量の閾値を複数設定することにより2ビット以上の情報を記憶する多値メモリ技術も開発されている。
このような半導体メモリ素子では、時間経過の増大とともに電荷が放電されていくため、閾値を超えて電荷が放電されると情報の読み出し時に誤りが発生する。特に、多値型のメモリ素子では一般に閾値の間隔が狭いため、誤りが発生する可能性が高くなる。
上記のような半導体メモリ素子を用いた記憶装置では、誤った情報を正しく復元するための誤り訂正機構が設けられていることがある(例えば、特許文献1参照)。
一般に、複数のビットからなるデータに、情報の記録から時間が経過したこと等を理由
として誤りが多く含まれている場合でも誤りを訂正するには、高い誤り訂正能力を有する
訂正機構が必要である。高い誤り訂正能力を有する訂正機構は、回路規模が大きく、消費
電力が大きく、処理に時間を要する。通常、情報の記憶から長時間が経過した後でも正し
い情報を復元できることを保証しておくために、高い誤り訂正能力を有する訂正機構が設
けられている。そして、情報の記憶からの時間の経過の長短によらずに、一律に、高性能
の誤り訂正機構が適用される。
このため、記憶から短い時間しか経過していない情報を読み出す際にも、このような高
性能の誤り訂正機構が用いられる。すると、それほど多くの誤りが含まれていない情報の
読み出しであるにも係らず、無駄に、高性能の誤り訂正機構が用いられる。このことは、
記憶装置の消費電力が無駄に消費されることにつながる。
さらに、一般に、誤り訂正能力を高めるには、誤り訂正の対象となる情報を大きくする
ことが求められる。例えば、512バイトのデータに対して誤り訂正符号が生成される代
わりに、複数個の512バイトのデータが連結された例えば4kバイトのデータを1つの
単位として用いて誤り訂正符号が生成される。こうすることにより、誤り訂正能力を高め
ることができる。しかしながら、この手法は、例えば、512バイトのデータを読み出したいにも係らず、4kバイトのデータを読み出さなければならないことにつながる。この
ことによっても、記憶装置は、無駄な電力を消費することを強いられる。
特開2007−87464号公報
本発明は、誤り訂正能力を損なうことなく消費電力及び回路規模を低減することが可能
な半導体記憶装置、その制御方法、および誤り訂正システムを提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、複数データで構成されるデータブロックを行列状に複数格納可能な一時記憶手段と、前記データブロック毎にその誤りを検出するための誤り検出符号を生成する誤り検出符号生成手段と、前記データブロックで構成される第1単位データ毎に、その誤りを訂正するための第1誤り訂正符号を生成する第1誤り訂正符号生成手段と、列方向に配列される複数の前記データブロックで構成される第2単位データ毎に、その誤りを訂正するための第2誤り訂正符号を生成する第2誤り訂正符号生成手段と、行方向に配列される複数の前記データブロックで構成される第3単位データ毎に、その誤りを訂正するための第3誤り訂正符号を生成する第3誤り訂正符号生成手段と、前記データブロック、前記生成された誤り検出符号および前記第1〜第3誤り訂正符号を格納可能な不揮発性半導体メモリと、を備えたことを特徴とする。
また、本発明は、複数データで構成されるデータブロックの複数を行列状に一時記憶手段に格納する工程と、前記データブロック毎にその誤りを検出するための誤り検出符号を生成する誤り検出符号生成工程と、前記データブロックで構成される第1単位データ毎に、その誤りを訂正するための第1誤り訂正符号を生成する第1誤り訂正符号生成工程と、列方向に配列される複数の前記データブロックで構成される第2単位データ毎に、その誤りを訂正するための第2誤り訂正符号を生成する第2誤り訂正符号生成工程と、行方向に配列される複数の前記データブロックで構成される第3単位データ毎に、その誤りを訂正するための第3誤り訂正符号を生成する第3誤り訂正符号生成工程と、前記データブロック、前記生成された誤り検出符号および前記第1〜第3誤り訂正符号を不揮発性半導体メモリに格納する工程と、を含むことを特徴とする。
また、本発明は、ホスト装置と、当該ホスト装置の指示に応じて不揮発性メモリに対するデータのリード/ライトを行う半導体記憶装置とで構成される誤り訂正システムにおいて、前記半導体記憶装置は、前記ホスト装置から転送されてくるデータを、複数データで構成されるデータブロックに分割して、行列状に格納する一時記憶手段と、前記データブロック毎にその誤りを検出するための誤り検出符号を生成する誤り検出符号生成手段と、前記データブロックで構成される第1単位データ毎に、その誤りを訂正するための第1誤り訂正符号を生成する第1誤り訂正符号生成手段と、列方向に配列される複数の前記データブロックで構成される第2単位データ毎に、その誤りを訂正するための第2誤り訂正符号を生成する第2誤り訂正符号生成手段と、行方向に配列される複数の前記データブロックで構成される第3単位データ毎に、その誤りを訂正するための第3誤り訂正符号を生成する第3誤り訂正符号生成手段と、前データブロック、前記生成された誤り検出符号および前記第1〜第3誤り訂正符号を格納する不揮発性半導体メモリと、前記データブロック毎に、対応する前記第1誤り訂正符号を用いて第1誤り訂正を行う第1誤り訂正手段と、
前記第1誤り訂正済みのブロックの誤りを、対応する前記誤り検出符号を用いて検出する第1誤り検出手段と、前記第1誤り検出手段で検出された前記第1誤り訂正済みのブロックの誤りを、対応する前記第2訂正符号を用いて誤り訂正する第2誤り訂正手段と、前記第2誤り訂正済みのブロックの誤りを、対応する前記誤り検出符号を用いて検出する第2誤り検出手段と、前記第2誤り訂正済みのデータおよび前記第2誤り検出手段の検出結果をホスト装置に送信する送信手段と、を備え、前記ホスト装置は、前記半導体記憶装置から転送されてくる、前記第2誤り検出手段で検出された前記第2誤り訂正済みのブロックの誤りを、対応する前記第3訂正符号を用いて誤り訂正する第3誤り訂正手段を備えたこと特徴とする。
本発明によれば、誤り訂正能力を損なうことなく消費電力及び回路規模を低減すること
が可能な半導体記憶装置、その制御方法、および誤り訂正システムを提供することが可能になるという効果を奏する。
以下に、この発明につき図面を参照しつつ詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。また、下記実施の形態における構成要素には、当業者が容易に想定できるものまたは実質的に同一のものが含まれる。
(実施の形態1)
本発明では、フラッシュメモリ等の不良ビットのあるメモリに誤り訂正符号・復号を適用する際に、誤り訂正能力の異なる3種類の訂正符号化を行なうことにより、消費電力および回路規模を削減することができる。
[SSDの構成]
図1は、SSD(Solid State Drive)100の構成例を示すブロック図である。SSD100は、ATAインタフェース(ATA I/F)2などのメモリ接続インタフェースを介してパソコンあるいはCPUコアなどのホスト装置(ホスト)1と接続され、ホスト装置1の外部メモリとして機能する。また、SSD100は、RS232Cインタフェース(RS232C I/F)などの通信インタフェース3を介して、デバッグ用機器200との間でデータを送受信することができる。SSD100は、不揮発性メモリとしてのNANDフラッシュメモリ(以下、NANDメモリと略す)10と、コントローラとしてのドライブ制御回路4と、揮発性メモリとしてのDRAM20と、電源回路5と、状態表示用のLED6などを備えている。
電源回路5は、ホスト装置1側の電源回路から供給される外部直流電源から複数の異なる内部直流電源電圧を生成し、これら内部直流電源電圧をSSD100内の各回路に供給する。また、電源回路5は、外部電源の立ち上がりまたは立ち下がりを検知し、パワーオンリセット信号またはパワーオフリセット信号を生成して、ドライブ制御回路4に供給する。
NANDメモリ10は、この場合、4並列動作を行う4つの並列動作要素10a〜10dを有し、1つの並列動作要素は、2つのNANDメモリパッケージを有する。各NANDメモリパッケージは、積層された複数のNANDメモリチップ(例えば、1チップ=2GB)によって構成されている。図1の場合は、各NANDメモリパッケージは、積層された4枚のNANDメモリチップによって構成されており、NANDメモリ10は64GBの容量を有する。各NANDメモリパッケージが、積層された8枚のNANDメモリチップによって構成されている場合は、NANDメモリ10は128GBの容量を有することになる。
DRAM20は、ホスト装置1とNANDメモリ10間でのデータ転送用キャッシュおよび作業領域用メモリとして機能する。
ドライブ制御回路4は、ホスト装置1とNANDメモリ10との間でDRAM20を介してデータ転送制御を行うとともに、SSD100内の各構成要素を制御する。また、ドライブ制御回路4は、状態表示用LED6にステータス表示用信号を供給するとともに、電源回路5からのパワーオン/オフリセット信号を受けて、リセット信号およびクロック信号を自回路内およびSSD100内の各部に供給する機能も有している。
各NANDメモリチップは、データ消去の単位であるブロックを複数配列して構成されている。図2は、NANDメモリチップに含まれる1個のブロックの構成例を示す回路図である。各ブロックは、X方向に沿って順に配列された(m+1)個のNANDストリングを備えている(mは、0以上の整数)。(m+1)個のNANDストリングにそれぞれ含まれる選択トランジスタST1は、ドレインがビット線BL0〜BLmに接続され、ゲートが選択ゲート線SGDに共通接続されている。また、選択トランジスタST2は、ソースがソース線SLに共通接続され、ゲートが選択ゲート線SGSに共通接続されている。
各メモリセルトランジスタMTは、半導体基板上に形成された積層ゲート構造を備えたMOSFET(Metal oxide semiconductor field effect transistor)から構成される。積層ゲート構造は、半導体基板上にゲート絶縁膜を介在して形成された電荷蓄積層(浮遊ゲート電極)、及び電荷蓄積層上にゲート間絶縁膜を介在して形成された制御ゲート電極を含んでいる。メモリセルトランジスタMTは、浮遊ゲート電極に蓄えられる電子の数に応じて閾値電圧が変化し、この閾値電圧の違いに応じてデータを記憶する。メモリセルトランジスタMTは、1ビットを記憶するように構成されていてもよいし、多値(2ビット以上のデータ)を記憶するように構成されていてもよい。
各NANDストリングにおいて、(n+1)個のメモリセルトランジスタMTは、選択トランジスタST1のソースと選択トランジスタST2のドレインとの間に、それぞれの電流経路が直列接続されるように配置されている。すなわち、複数のメモリセルトランジスタMTは、隣接するもの同士で拡散領域(ソース領域若しくはドレイン領域)を共有するような形でY方向に直列接続される。
そして、最もドレイン側に位置するメモリセルトランジスタMTから順に、制御ゲート電極がワード線WL0〜WLnにそれぞれ接続されている。従って、ワード線WL0に接続されたメモリセルトランジスタMTのドレインは選択トランジスタST1のソースに接続され、ワード線WLnに接続されたメモリセルトランジスタMTのソースは選択トランジスタST2のドレインに接続されている。
ワード線WL0〜WLnは、ブロック内のNANDストリング間で、メモリセルトランジスタMTの制御ゲート電極を共通に接続している。つまり、ブロック内において同一行にあるメモリセルトランジスタMTの制御ゲート電極は、同一のワード線WLに接続される。この同一のワード線WLに接続される(m+1)個のメモリセルトランジスタMTは1ページとして取り扱われ、このページごとにデータの書き込み及びデータの読み出しが行われる。
また、ビット線BL0〜BLmは、ブロック間で、選択トランジスタST1のドレインを共通に接続している。つまり、複数のブロック内において同一列にあるNANDストリングは、同一のビット線BLに接続される。
図1に示したように、NANDメモリ10においては、4つの並列動作要素(メモリパッケージ)10a〜10dが各8ビットの4チャネル(4ch)を介してドライブ制御回路4に並列接続されている。4つの並列動作要素10a〜10dを単独動作させるか、並列動作させるか、NANDメモリ10の倍速モードを使用するか否か、という組み合わせにより、下記3種類のアクセスモードが提供される。
(1)8ビットノーマルモード
1chだけ動作させ、8ビット単位で読み書きをするモードである。転送サイズの1単位はページサイズ(4kB)である。
(2)32ビットノーマルモード
4ch並列で動作させ、32ビット単位で読み書きをするモードである。転送サイズの1単位はページサイズ×4(16kB)である。
(3)32ビット倍速モード
4ch並列で動作させ、更に、NANDメモリ10の倍速モードを利用して読み書きをするモードである。転送サイズの1単位はページサイズ×4×2(32kB)である。
4ch並列動作する32ビットノーマルモードまたは32ビット倍速モードでは、並列動作する4または8ブロックが、NANDメモリ10としての消去単位となり、並列動作する4または8ページが、NANDメモリ10としての書き込み単位及び読み出し単位となる。
ドライブ制御回路4は、コントローラ41と、ECC(Error correcting code)回路42と、NAND I/F43を備えている。
コントローラ41は、ATAインタフェース2を介してホスト装置1との間でデータを送受信すると共に、DRAM20のアクセス制御を行う。
NAND I/F43は、NANDメモリ10の各NANDパッケージ10a〜10dとのインタフェース処理を行う。
ECC回路42は、NANDメモリ10に書き込むデータに対して、誤り検出符号および誤り訂正符号を生成する。また、ECC回路42は、NANDメモリ10から読み出されたデータに対して、誤り検出および誤り訂正を行う。
上記構成のSSD100の動作の概略を説明する。ホスト装置1からSSD100に書き込みを要求するデータ(書き込みデータ)が供給されると、コントローラ41は、書き込みデータをDRAM20に一時的に格納する。DRAM20に格納された書き込みデータは、コントローラ41により所定単位毎にECC回路42に供給される。ECC回路42は、書き込みデータに対して、誤り訂正符号及び誤り検出符号を生成する。NAND I/F43は、誤り訂正符号及び誤り検出符号を付加した書き込みデータをNANDメモリ10に書き込む。
また、SSD100は、ホスト装置1からデータの読み出し要求が入力されると、NAND I/F43は、読み出しを要求されているデータ(読み出しデータ)とこれに付加された誤り訂正符号及び誤り検出符号を読み出して、ECC回路42に供給する。ECC回路42は、読み出しデータの誤りを検出および誤り訂正を行う。誤り訂正後のデータはコントローラ41によりDRAM20に格納された後、ホスト装置1に転送される。
[ECC回路]
以下に、ECC回路42の基本的動作手順について説明する。本発明の実施例に係るECC回路42は、NANDメモリ10に書き込むデータに対して、誤り訂正能力の異なる3種類の訂正符号化を行なうことにより、消費電力および回路規模を削減している。第1誤り訂正符号はデータブロックD単位で誤り訂正を行うためのものである。第2誤り訂正符号は、複数のデータブロックDで構成される列単位で誤り訂正を行うためのものである。第3誤り訂正符号は、複数のデータブロックDで構成される行単位で誤り訂正を行うためのものである。誤り訂正能力は、第1誤り訂正符号<第2誤り訂正符号<第3誤り訂正符号の順となっている。
図3は、ECC回路42の誤り訂正原理の概略を説明するための模式図である。同図は、NANDメモリ10から読み出されたデータを示しており、複数データで構成されるデータブロックDが行列(マトリクス)状に配列されている。斜線部分は、誤りデータを含んでいる誤りデータブロックを示している。まず、最初に、データブロックD単位で誤り訂正(第1誤り訂正)を行う(A)。つぎに、誤りが訂正できなかったデータブロックDに対して、列単位での誤り訂正(1回目の第2誤り訂正)を行う(B)。さらに、誤り訂正ができなかったデータブロックDに対して、行単位での誤り訂正(1回目の第3誤り訂正)を行う(C)。再び、誤りが訂正できなかったデータブロックDに対して、列単位での誤り訂正(2回目の第2誤り訂正)を行う(D)。さらに、誤りが訂正できなかったデータブロックDに対して、行単位での誤り訂正(2回目の第3誤り訂正)を行う(E)。これにより、誤りのないデータを復号する(F)。
このように、本実施の形態では、まず、データブロック単位での誤り訂正(第1誤り訂正)を行う。ここで、誤り訂正ができなかったデータブロックがある場合には、誤りが無くなるまで、列単位での誤り訂正(第2誤り訂正)と行単位での誤り訂正(第3誤り訂正)を交互に繰り返し実行し、誤りのないデータを復号する。
[ECC回路の符号化系の構成]
図4は、ECC回路42の符号化系に関する主要部を示すブロック図である。図5は、ホスト装置10から転送されるデータをDRAM20に格納する場合のフォーマットの一例を示す図である。図6は、NANDメモリ10に転送されるデータのフォーマットの一例を示す図である。
ECC回路42は、図4に示すように、誤り検出符号生成部50−1〜8(誤り検出符号生成手段)と、第1ECC生成部51−1〜8(第1誤り訂正符号生成手段)と、第2ECC生成部52(第2誤り訂正符号生成手段)と、第3ECC生成部53−1〜8(第3誤り訂正符号生成手段)とを備えている。
誤り検出符号生成部50−1〜8(誤り検出符号生成手段)は、書き込みデータのデータブロックD毎にその誤りを検出するための誤り検出符号を生成する。データブロックDのサイズは、例えば512バイトである。
誤り検出符号としては、CRC(Cyclic redundancy checksum)32、CRC16等を用いることができる。本実施の形態では、CRC32を使用し、CRC32(以下、「CRC」と表記する)のサイズを4バイトとしている。誤り検出符号生成部50−1〜8は一般に知られたものを用いることができ、詳細な説明はここでは省略する。
第1ECC生成部51−1〜8(第1の誤り訂正符号生成手段)は、データブロックDとその誤り検出符号で構成される第1単位データ毎に、その誤りを訂正するための第1誤り訂正符号を生成する。
第1の誤り訂正符号としては、1ビットあるいは複数ビットの誤りを訂正できる誤り訂正符号を用いることができ、例えば、ハミング符号(Hamming code)やBCH符号(Bose−chaudhuri hocquenghem code)等を用いることができる。本実施の形態では、第1誤り訂正符号としてハミング符号を使用し、ハミング符号のサイズを4バイトとしている。第1ECC生成部51−1〜8は一般に知られたものを用いることができ、詳細な説明はここでは省略する。
第2ECC生成部52(第2誤り訂正符号生成手段)は、列方向に配列される複数の第1単位データで構成される第2単位データUDa毎に、第2誤り訂正符号を生成する。第2誤り訂正符号を生成する単位となる書き込みデータの数は、達成することが望まれる誤り訂正能力及び採用される誤り訂正符号に応じて決定される。
第2誤り訂正符号としては、第1誤り訂正符号に比して誤り訂正能力が高いものが用いられ、複数ビットの誤りを訂正できる誤り訂正符号が用いられる。具体的には、BCH符号やLDPC符号(Low density parity check code)等を用いることができる。本実施の形態では、列方向の8個の第1単位データで構成される第2単位データUDa毎にBCH符号を生成し、BCH符号のサイズを24バイトとしている。第2ECC生成部52は一般に知られたものを用いることができ、詳細な説明はここでは省略する。
第3ECC生成部53−1〜8(第3の誤り訂正符号生成手段)は、行方向に配列された複数のデータブロックDで構成される第3単位データUDb毎に、その誤りを訂正するための第3誤訂正符号を生成する。第3誤り訂正符号を生成する単位となるデータブロックDの数は、達成することが望まれる誤り訂正能力及び採用される誤り訂正符号に応じて決定される。
第3誤り訂正符号としては、例えば、複数ビット単位で誤り訂正を行う第2誤り訂正符号を用いた誤り訂正よりも高い能力の誤り訂正を可能とするものが用いられる。具体的には、第3の誤り訂正符号としては、RS符号(Reed−solomon code)等を用いることができる。本実施の形態では、1024個の第1単位データDからなる第3単位データUDbごとに、RS符号を生成し、RS符号のサイズをデータブロックDと同じ512バイトとしている。そして、第3ECC生成部53−1〜53−8は、1個の第3単位データUDbに対して、例えば4個のRS符号を生成する。従って、1個の第3単位データUDbを構成する1024個のデータブロックDのうち4個の書き込みデータの誤りを訂正することができる。第3ECC生成部53は一般に知られたものを用いることができ、詳細な説明はここでは省略する。
コントローラ41は、書き込みデータD(1,1)〜D(8,1024)をホスト装置1から受信すると、図5に示すように、DRAM20に、第1ECC生成部51の処理単位である8個のデータブロックD(1,p)〜D(8,p)を列方向に順次格納し、第3ECC生成部53の処理単位である1024個の第1単位データD(q,1)〜D(q,1024)を格納するとともに、列単位で順次、ECC回路42に転送する。pは1〜1024のうちの任意の数、qは1〜8のうちの任意の数である。
誤り検出符号生成部50は、列方向に配列された8個のデータブロックD(1,p)〜D(8,p)に対応して、8個の誤り検出符号生成部50−1〜50−8を備えている。8個の誤り検出符号生成部50−1〜50−8は、8個のデータブロックD(1,p)〜D(8,p)に対して、8個のCRC32を生成する。この8個のCRC32はそれぞれ、これらに対応する8個のデータブロックD(1,p)〜D(8,p)の誤りを検出するために用いられる。この8個のCRC32は、第1ECC生成部51−1〜51−8および第2ECC生成部52に出力される。なお、誤り検出符号生成部50−1〜50−8はそれぞれ、列方向に配列された8個のRS(1,r)〜RS(8,r)に対しても、CRC32を生成する。rは、1〜4のうちの任意の数である。
第1ECC生成部51は、列方向に配列される8個のデータブロックD(1,p)〜D(8,p)に対応して、8個の第1ECC生成部51−1〜51−8を備えている。8個の第1ECC生成部51−1〜51−8は、それぞれ、第1単位データ毎、すなわち、8個のデータブロックD(1,p)〜D(8,p)および8個のCRC(1,p)〜CRC(8,p)から、それぞれハミング符号を生成する。この8個のハミング符号はそれぞれ、これらに対応する8個の単位データD(1,p)〜D(8,p)第1誤り訂正に用いられる。この8個のハミング符号は、第2ECC生成部52に出力される。なお、第1ECC生成部51−1〜51−8はそれぞれ、列方向に配列された8個のRS(1,r)〜RS(8,r)および対応するCRC32に対してもそれぞれハミング符号を生成する。rは、1〜4のうちの任意の数である。
第2ECC生成部52は、列方向に配置された8個の第1単位データ、すなわち、データブロックD(1,p)〜D(8,p)と、これらに対応する8個のCRC(1,p)〜CRC(8,p)とで構成される第2単位データUDa毎に、1個のBCH符号を生成する。このBCH符号は第2単位データUDa内(ECC1(1,p)〜ECC1(8,p)を除く)の誤りを訂正するために用いられる。本実施形態では、第2単位データUDaとBCH符号とからなるデータのサイズ、1ページ(NANDメモリ10の最小アクセス単位)分のサイズに対応する。
第3ECC生成部53は、行方向に配列された1024個のデータブロックD(q,1)〜D(q,1024)からなる第3単位データUDb毎に、1個のRS符号を生成する。第3のECC生成部53は、DRAM20に格納される書き込みデータの行に対応する8個の第3ECC生成部53−1〜53−8を備えている。第3ECC生成部53−1は、第3単位データUDbを格納するバッファを備えている。データD(1,1)〜D(1,1024)からなる第3単位データUDb1に対して、4個のRS(1,1)〜RS(1,4)を生成する。2〜8行にそれぞれ対応する第3ECC生成部53−2〜53−8についても同様である。
データブロックD、CRC、ハミング符号、BCH符号、及びRS符号は、図6に示したページ毎に、NAND IF43からNANDメモリ12に転送される。NANDメモリ10は、これらのデータを、ページ順に格納する。例えば、1つのメモリブロックBLKが1028ページで構成されている場合、図6に示したデータは、NANDメモリ10内の1つのメモリブロックBLKに格納される(8ビットノーマルモードの場合)。なお、32ビットモード(32ビットノーマルモード、32ビット倍速モード)の場合には、各Chのメモリチップに並列に書き込まれる。
[ECC回路の符号化系のデータ書き込み動作]
次に、データ書き込み動作におけるECC回路42の誤り検出符号生成動作及び誤り
訂正符号生成動作について、図4〜図9を参照して説明する。
まず、図5において、コントローラ41は、DRAM20に、NANDメモリ10への書き込み対象となるデータを、8個のデータブロックD(1,q)〜D(8,1)毎に、順次、列方向に書き込んで、データブロックD(1,1)〜D(8,1024)を格納すると共に、DRAM20に格納したデータを列単位で順次、データブロックD(1,q)〜D(8,1)を、誤り検出符号生成部50−1〜8、第1ECC生成部51−1〜8、第2ECC生成部52、第3ECC生成部53−1〜8に出力する。
続いて、図7に示すように、誤り検出符号生成部50−1〜50−8は、転送されてくる8個のデータブロックD(1,1)〜D(8,1)に対して、8個の誤り検出符号CRC(1,1)〜CRC(8,1)を生成する。そして、第1ECC生成部51−1〜51−8は、それぞれ、8個の書き込みデータD(1,1)〜D(8,1)および8個のCRC(1,1)〜CRC(8,1)から、それぞれハミング符号ECC1(1,1)〜ECC1(8,1)を生成する。
続いて、図8に示すように、8個のデータブロックD(1,1)〜D(8,1)および対応する8個の誤り検出符号CRC(1,1)〜CRC(8,1)で構成される第2単位データUDa1は、第2ECC生成部52に出力される。第2のECC生成部52は、第2単位データUDa1を用いて、この第2単位データUDa1の誤りを訂正するためのBCH符号ECC2を生成する。このBCH符号ECC2が、第2単位データUDa1の後ろに繋げられて、ページ1(Page1)が構成される。このページ1は、NANDメモリ10に格納される。
ページ2〜ページ1024についても、上記同様の生成動作により、図6に示すデータ
が生成される。そして、ページ2〜ページ1024は、NANDメモリ10に格納される。
さらに、図9に示すように、第3ECC生成部53−1〜53−8は、列単位で順次、転送される第1単位データD(1,q)〜D(8,q)をそれぞれバッファに格納し、第3単位データUDb1、UDb2、・・・UDb8を用いて、4個のRS(p,1)〜R
S(p,4)をそれぞれ生成する。具体的には、第3ECC生成部53−1は、第3単位データUDb1を用いて、4個のRS(1,1)〜RS(1,4)を生成する。第3ECC生成部53−2〜53−8によるRS生成動作についても、RS生成部53−1と同様である。本実施形態では、第3ECC生成部53−1〜53−8は、訂正符号生成動作を並行して行っている。このように、第3ECC生成部53−1〜53−8を並行して動作させることによって、処理時間を短縮させることができる。
RS符号を用いた場合、通常は、4個の冗長符号を用いて2個の誤り位置情報と2個の誤り訂正情報を得るため、2個の誤りの訂正が可能である。しかし、本実施形態では、データブロックDの誤り位置を特性するために、別途CRCを用いている。従って、本実施形態では、4個の冗長符号を用いて4個の誤りを訂正することが可能となる。すなわち、1024個のデータブロックD(1,1)〜D(1,1024)のうち4個の誤りを訂正することが可能となる。
続いて、誤り符号生成部50−1〜50−8はデータブロックDの場合と同様に、RS(1,1)〜RS(8,4)毎に、CRC(1,1025)〜(8,1028)をそれぞれ生成する。また、第1ECC符号生成部51−1〜51−8は、RS(1,1)〜RS(8,4)および対応するCRC(1,1025)〜(8,1028)毎に、ハミング符号(1,1025)〜(8,1028)を生成する。さらに、第2ECC訂正部52は、
RS(1,1)〜RS(8,4)および対応するCRC(1,1025)〜(8,1028)に対して、BCH符号ECC2を生成し、このBCH符号ECC2が、これらの後ろに繋げられて、ページ1025が構成される。このページ1025は、NANDメモリ10に転送されて格納される。ページ1026〜ページ1028についても、上記同様の生成動作により、図6に示すデータが生成される。そして、ページ1026〜ページ1028は、NANDメモリ10に転送されて格納される。
[ECC回路の復号系回路の構成]
図10は、ECC回路42の復号系に関する主要部を示すブロック図である。図11〜図19は、ECC回路42のデータ読み出しを説明するための図である。ECC回路42は、図10に示すように、誤り検出部60と、第1ECC訂正部61−1〜61−8と、第2ECC訂正部62と、第3ECC訂正部63−1〜61−8とを備えている。同図において、説明の簡単のため、コントローラ41およびNAND I/F43の図示を省略している。
SSD100は、ホスト装置1からデータの読み出し要求が入力されると、NAND I/F43により、NANDメモリ10内の1つのメモリブロックBLKに格納されたブロックデータ(図6に示すデータ)が読み出され(8ビットノーマルモードの場合)、コントローラ41によりDRAM20に格納される。DRAM20は、図6に示すブロックデータを格納する。なお、32ビットモード(32ビットノーマルモード、32ビット倍速モード)の場合には、各Chのメモリチップから並列に読み出される。
第1ECC訂正部61は、列方向に配列された8個のデータブロックD(1,p)〜D(8,p)および対応するCRC(1,p)〜CRC(8,p)に対して、すなわち、行数に対応して、8個の第1ECC訂正部61−1〜61−8を備えている。
第1ECC訂正部61−1〜61−8は、列方向に配列された8個のデータブロックD(1,p)〜D(8,p)およびCRC(1,p)〜CRC(8,p)に対して、ハミング符号ECC1(1,p)〜ECC1(8,p)を用いてそれぞれ第1誤り訂正を行い、DRAM20の格納されたデータのうち、第1の誤り訂正済データDC1−1〜DC1−8に対応するデータを更新する。同様に、RS(1,1)〜RS(8,4)および対応するCRC(1,1025)〜(8,1028)に対しても第1誤り訂正を行う。第1ECC訂正部61−1〜61−8は一般に知られたものを用いることができ、詳細な説明はここでは省略する。
誤り検出部60は、列方向に配列された8個のデータブロックD(1,p)〜D(8,p)およびそのCRC(1,p)〜CRC(8,p)に対応して、すなわち、行数に対応して、8個の誤り検出部60−1〜60−8を備えている。
誤り検出部60−1〜60−8は、それぞれ、8個のデータブロックD(1,p)〜D(8,p)に対して生成された8個のCRC(1,p)〜CRC(8,p)を用いて、第1単位データD(1,p)〜D(8,p)内の誤りを検出する。誤り検出部60−1〜60−8は一般に知られたものを用いることができ、詳細な説明はここでは省略する。
第2ECC訂正部62は、ページごとに生成されたBCH符号ECC2を用いて、8個の第1単位データD(1,p)〜D(8,p)と対応する8個のCRC(1,p)〜CRC(8,p)とで構成される第2単位データ内の第2誤り訂正を行い、DRAM20の格納されたデータのうち、第2の誤り訂正済データDC2に対応するデータを更新する。ページ1025〜1024についても同様に第2誤り訂正が行われる。
第3ECC訂正部63は、列方向に配列された8個の第1単位データD(1,p)〜D(8,p)に対応して、8個の第3ECC訂正部63−1〜63−8を備えている。第3ECC訂正部63−1は、4個のRS(1,1)〜RS(1,4)を用いて、行方向に配列された1024個の読み出しデータD(1,1)〜D(1,1024)からなる第3単位データUDb1内の第3誤り訂正を行う。同様に、第3ECC訂正部63−2〜63−8は、第3単位データUDb1〜UDb8内の第3誤り訂正を行う。第3ECC訂正部63−1〜63−8は一般に知られたものを用いることができ、詳細な説明はここでは省略する。
本実施形態では、4個のリードソロモン符号RS(1,1)〜RS(1,4)が全て誤り訂正に用いられる。従って、第3ECC訂正部63−1は、1024個の読み出しデータD(1,1)〜D(1,1024)のうち4個の読み出しデータを復元することができる。2〜8行にそれぞれ対応する第3ECC訂正部63−2〜63−8についても同様である。第3ECC訂正部63−1〜63−8により訂正された第3誤り訂正済データDC3は、DRAM20に転送され、DRAM20に格納されたデータのうち、第3誤り訂正済データDC3に対応するデータが更新される。
第1ECC訂正部61−1〜61−8、第2ECC訂正部62、および第3ECC訂正部63−1〜61−8により訂正されたデータブロックD(1,1)〜D(8,1024)のデータは、コントローラ41によりホスト装置に転送される。
[ECC回路の復号系のデータ読み出し動作]
次に、データ読み出し動作におけるECC回路42の誤り検出動作及び誤り訂正動作
について、図11〜図19を参照して説明する。
誤り訂正動作に先立って、NANDメモリ10内の1個のメモリブロックBLKに格納されたブロックデータ(図6に示すデータ)が、DRAM20に転送される(8ビットノーマルモードの場合)。DRAM20は、図6に示すブロックデータを格納する。
第1ECC訂正部61−1〜61−8には、ページ1〜ページ1028のデータがページ単位(BCH符号ECC2を除く)で、順次転送され、各ページのそれぞれのデータブロックD(1,1)〜D(8,1024)およびそのCRC(1,1)〜CRC(8,1024、RS(1,1)〜RS(8,4)およびそのCRC(1,1025)〜CRC(8,1028)に対して、ハミング符号ECC1(1,1)〜ECC1(8,1028)を用いてそれぞれ第1誤り訂正を行い、第1誤り訂正済みデータDC1−1〜8をDRAM20に格納する。
続いて、誤り検出部60−1〜60−8による誤り検出動作が行われる。すなわち、誤り検出部60−1〜60−8にはそれぞれ、各ページのそれぞれの第1誤り訂正済みの第1単位データD(1,1)〜D(8,1024)とそのCRC(1,1)〜CRC(8,1024)、および第1の誤り訂正済みのRS(1,1)〜RS(8,4)とそのCRC(1,1025)〜CRC(8,1028)がDRAM20から転送される。
誤り検出部60−1〜60−8は、それぞれ、ページ単位で、第1誤り訂正後のデータブロックD(1,1)〜D(8,1024)および第1誤り訂正後のRS(1,1)〜RS(8,4)内の誤りを、それぞれCRC(1,1)〜CRC(8,1028)を用いて検出する。そして、誤り検出部60−1〜60−8はそれぞれ、誤り検出の結果、どの読み出しデータブロックDおよびRS符号RSに誤りが存在するかを示す第1誤り情報S1〜S8をページ単位で生成する。この第1誤り情報S1〜S8はそれぞれ、第2ECC訂正部62に転送される。なお、誤り検出部60−1〜60−8で誤りが存在すると分かったデータブロックDは、第1誤り訂正済みデータDC1-1〜8ではなく、訂正前のデータブロックDを第2ECC訂正部62に転送する。これは、誤り検出部60−1〜60−8で誤りが見つかったデータブロックDは,訂正不可能であった、つまり第1ECC訂正部61−1〜61−8での訂正能力を超えた誤りが含まれていることを意味し、第1ECC訂正部61−1〜61−8での誤り訂正は、結果としてさらなる誤りを付加することになるからである。従って、さらに誤りを付加したデータよりも、訂正前のデータのほうが誤りが少ないので、訂正前のデータを第2ECC訂正部62に送る。RS(1,1)〜RS(8,4)に関しても同様である。
図11は、第1誤り訂正後の誤り検出を説明するための図であり、図12は、第1誤り情報S1〜S8の一例を示す図である。図11および図12において、第1誤り訂正後の誤り検出で誤りがない第1単位データについては、第1誤り情報S=0、第1誤り訂正後の誤り検出で誤りを検出した第1単位データについては、第1誤り情報S=1とする。図11および図12に示す例では、第1単位データ1,4,5に誤りがあることを示している。この誤りがある第1単位データが第2誤り訂正の対象となる。
第2ECC訂正部62には、ページ単位で、第1誤り訂正後の第2単位データUDa1〜UDa1028および第1誤り情報S1〜S8が転送される。第2ECC訂正部62は、第2単位データUDaに含まれるBHC符号ECC2を使用し、第1誤り情報S1〜S8を参照して、第2誤り訂正の対象となる第1単位データに対して第2誤り訂正を行う。第2ECC訂正部62により訂正された第2誤り訂正済データDC2は、DRAM20に転送され、DRAM20に格納されたデータのうち、第2誤り訂正済データDC2に対応するデータを更新する。
続いて、誤り検出部60−1〜60−8による誤り検出動作が行われる。すなわち、誤り検出部60−1〜60−8には、ページ単位で、それぞれ、各ページのそれぞれの第2誤り訂正済みのデータブロックD(1,1)〜D(8,1024)とそのCRC(1,1)〜CRC(8,1024)、および第2誤り訂正済みのRS(1,1)〜RS(8,4)とそのCRC(1,1025)〜CRC(8,1028)がDRAM20から転送される。
誤り検出部60−1〜60−8は、それぞれ、第2誤り訂正後のデータブロックD(1,1)〜D(8,1024)および第2誤り訂正後のRS(1,1)〜RS(8,4)内の誤りを、それぞれCRC(1,1)〜CRC(8,1028)を用いて検出する。そして、誤り検出部60−1〜60−8はそれぞれ、誤り検出の結果、どの第1単位データおよびRS符号RSに誤りが存在するかを示す第2誤り情報S1〜S8をページ単位で生成する。この第2誤り情報S1〜S8はそれぞれ、第3ECC訂正部63−1〜63−8に送られる。なお、第1誤り訂正の場合と同様に、誤り検出部60−1〜60−8で誤りが存在すると分かったデータブロックDは、第2誤り訂正済みデータDC2ではなく、訂正前のデータブロックDを第3ECC訂正部63−1〜63−8に転送する。これは、誤り検出部60−1〜60−8で誤りが見つかったデータブロックDは、訂正不可能であった、すなわち第2ECC訂正部62−1〜62−8での訂正能力を超えた誤りが含まれていることを意味し、第2ECC訂正部62−1〜62−8での誤り訂正は、結果としてさらなる誤りを付加していることになるからである。したがって、さらに誤りを付加したデータよりも、訂正前のデータのほうが誤りが少ないので、訂正前のデータを第3ECC訂正部63−1〜63−8に送る。RS(1,1)〜RS(8,4)についても同様である。本実施形態では、誤り検出部60−1〜60−8は、誤り検出動作を並行して行っている。このように、誤り検出部60−1〜60−8を並行して動作させることによって、処理時間を短縮させることができる。
図13は、第2誤り訂正後の誤り検出を説明するための図であり、図14は、第2誤り訂正後の第2誤り情報S1〜S8の一例を示す図である。図13および図14において、第2誤り訂正後の誤り検出で誤りがない第1単位データについては、第2誤り情報S=0、第2の誤り訂正後の誤り検出で誤りを検出したブロックについては、第2誤り情報S=1とする。図13および図14に示す例では、第1単位データ5に誤りがあることを示している。この誤りがある第1単位データが第3誤り訂正の対象となる。
図15は、第2ECC訂正部62による1回目の誤り訂正後のブロックデータの一例を示す図である。斜線は、第2ECC訂正部62による1回目の誤り訂正によっても訂正不能であるため、誤り検出部60−1〜60−8により誤りが検出されたデータを示している。
なお、第2ECC訂正部62による1回目の誤り訂正の結果、全ての読み出しデータに誤りが存在しない場合は、誤り訂正動作はここで終了する。すなわち、後述する第3ECC訂正部63による誤り訂正は行われない。例えば、第3ECC訂正部63は電源回路5からの電源供給の停止、或いはクロック回路(図示せず)からのクロック信号の供給の停止等によって、誤り訂正動作を停止する。これにより、誤りが少ない場合のデータ読み出し時間を短縮することができる。また、第3ECC訂正部63による誤り訂正動作が行われないため、消費電力を低減することができる。
続いて、第3ECC訂正部63による1回目の誤り訂正動作が行われる。すなわち、行方向に配列された1024個のデータブロックD(1,1)〜D(1,1024)からなる第3単位データUDb1と、これらに対応して生成された4個のRS(1,1)〜RS(1,4)とが、DRAM20から第3ECC訂正部63−1に送られる。第3ECC訂正部63−1は、RS(1,1)〜RS(1,4)を用いて、データブロックD(1,1)〜D(1,1024)内の誤りを訂正する。2〜8行にそれぞれ対応する第3ECC訂正部63−2〜63−8についても同様である。
本実施形態では、第3ECC訂正部63−1〜63−8は、訂正動作を並行して行っている。このように、第3ECC訂正部63−1〜63−8を並行して動作させることによって、処理時間を短縮させることができる。第3ECC訂正部63−1〜63−8により訂正された第3誤り訂正済データDC3は、DRAM20に送られる。DRAM20は、格納されたデータのうち、第3の誤り訂正済データDC3に対応するデータを更新する。
図16は、第3ECC訂正部63による1回目の第3の誤り訂正後のブロックデータの一例を示す図である。図16に示すように、読み出しデータD(1,2)及び(1,6)内の誤りが、第3ECC訂正部63−1により訂正されている。また、読み出しデータD(8,1)及び(8,1022)内の誤りが、第3ECC訂正部63−8により訂正されている。
なお、前述したように、第3ECC訂正部63による誤り訂正に先立って、誤り検出部60を用いて誤りが存在する読み出しデータの位置を特定している。よって、第3ECC訂正部63は、誤りが検出された読み出しデータのみに対して誤り訂正を行えばよい。これにより、第3ECC訂正部63による訂正時間を短縮することができ、また消費電力を低減することができる。
続いて、ページ1〜ページ1028に対して、第2ECC訂正部62による2回目の第2の誤り訂正が行われる。この第2の誤り訂正動作は、前述した第2ECC訂正部62による1回目の誤り訂正と同じである。図17は、第2ECC訂正部62による2回目の第2の誤り訂正後のブロックデータの一例を示す図である。図17に示すように、読み出しデータD(2,1)、(3,2)、及び(2,1022)内の誤りが、第2ECC訂正部62により訂正されている。
続いて、誤り検出部60−1〜60−8は、全てのデータブロックD及びRS符号の誤りを検出する。この検出動作は、前述した誤り検出部60−1〜60−8による1回目の誤り検出動作と同じである。続いて、第3単位データUDb1〜UDb8に対してそれぞれ、第3ECC訂正部63−1〜63−8による2回目の第3誤り訂正が行われる。この第3誤り訂正動作は、前述した第3ECC訂正部63−1〜63−8による1回目の誤り訂正と同じである。
図18は、第3ECC訂正部63による2回目の第3誤り訂正後のブロックデータの一例を示す図である。図18に示すように、データブロックD(2,5)内の誤りが、第3ECC訂正部63−2により訂正されている。また、データブロックD(3,4)、(3,7)、及び(3,1023)内の誤りが、第3ECC訂正部63−3により訂正されている。これにより、データブロックD(1,1)〜D(8,1024)の誤りが全て訂正されたことになる。
その後、誤りが全て訂正されたデータブロックD(1,1)〜D(8,1024)がDRAM20からホスト装置1に出力される。
図19は、NANDメモリ10にデータを書き込んでからの経過時間と、必要訂正能力との関係を示す図である。図19に示すように、経過時間が長くなると、NANDメモリ10に書き込まれたデータのうち誤りの数が増加する。そこで、誤りの数の増加に合わせて誤り訂正能力を変化させる。そして、過剰または不十分な誤り訂正能力が使用されないように、第1誤り訂正部61〜第3誤り訂正部63の誤り訂正能力が決定される。具体的には、経過時間が短い間は、第1誤り訂正部61のみによって誤り訂正ができるとともに、経過時間が所定時間(誤り数が急激に増加する時間)を過ぎた後は第1の誤り訂正部61、第2誤り訂正部62、及び第3誤り訂正部63によって誤りが訂正できるように、第1誤り訂正部61〜第3誤り訂正部63の誤り訂正能力が決定される。
以上説明したように、本実施形態によれば、まず、読み出しデータに対して、第1誤り訂正符号(ハミング符号)を用いて第1誤り訂正し、この第1誤り訂正結果を、第2誤り訂正符号(BHC符号)を用いてさらに第2誤り訂正し、さらに、第2誤り訂正結果を、第3誤り訂正符号(RS符号)を用いて第3誤り訂正することができる。従って、第1誤り訂正符号〜第3誤り訂正符号の訂正能力を低くした場合でも、所望の訂正能力を確保することができ、また、回路規模を低減することができる。
また、小程度の誤り訂正能力を持つ第1誤り訂正符号(ハミング符号)と、中程度の誤り訂正能力を持つ第2誤り訂正符号(BCH符号)と、高程度の誤り訂正能力を持つ第3誤り訂正符号(RS符号)を3重にかけることにより、高程度の誤り訂正の復号化の頻度をきわめて減らすことができ、この結果、ハードウェアを持たなくても、ソフトウェアで十分処理できるようになり、回路規模が削減できる。
また、第1ECC訂正部61による第1誤り訂正の結果、全ての読み出しデータに誤り
が存在しない場合は、第2ECC訂正部62および第3ECC訂正部63による誤り訂正は行われない。これにより、誤りが少ない場合のデータ読み出し時間を短縮することができる。すなわち、誤りが少ない場合のデータ読み出し時間を短縮と、誤りが多い場合の高い訂正能力との両立が可能となる。さらに、第2ECC訂正部62および第3ECC訂正部63の動作を停止することにより、消費電力を低減することができる。
また、第2誤り訂正符号(BCH符号)を用いて列方向のデータの誤りを訂正し、一方、
第3誤り訂正符号(RS符号)を用いて行方向のデータの誤りを訂正している。よって、NAND型フラッシュメモリ1のメモリブロック内の全ページに跨る誤り訂正が可能となる。さらに、記憶されるデータの位置に起因して誤り発生確率が大きく異なるような半導体メモリに対しては、誤り発生確率が大きい領域を何度も誤り訂正することができるため、本実施形態は特に有効である。
また、誤り検出部60を用いて誤りが存在するデータの位置を特定できるため、第2ECC訂正部62および第3誤り訂正部63は、誤りが検出された読み出しデータの誤り訂正を行えばよい。これにより、第2ECC訂正部62および第3誤り訂正部63による処理時間を短縮することができる。
また、誤り検出符号(CRC)により誤りが存在するデータの位置が検出できるため、第3誤り訂正部33は、誤り検出を行う必要がない。これにより、全てのRS符号(本実施形態では、4個のRS符号)を誤り訂正に使用することができる。
(実施の形態2)
図20〜図22を参照して、実施の形態2にかかるSSDについて説明する。実施の形態2では、第1および第2誤り訂正をSSD100で行い、高い誤り訂正能力を有する第3誤り訂正をSSD100ではなく、ホスト装置1で行う構成としたものである。第1および第2誤り訂正で殆どの誤りが訂正でき、また、第3誤り訂正は使用頻度が極めて低く、かつ処理時間が長くかかるため、SSD100の負荷を軽減したものである。
図20は、実施の形態2の誤り訂正原理を説明するための模式図である。図21は、実施の形態2にかかるSSD100およびホスト装置100の構成を示す図である。実施の形態2では、図20において、第1誤り訂正(A)および第2誤り訂正(B)をSSD100で行い、第3誤り訂正(C)以降の処理をホスト装置1で行う。
図21に示すように、ホスト装置1は、CRCを用いて各データブロックDの誤りを検出する誤り検出部101と、BCH符号(第2誤り訂正符号)を用いて第2誤り訂正を行う第2ECC部102と、RS符号(第3誤り訂正符号)を用いて第3誤り訂正を行う第3ECC部103とを備えている。誤り検出部101、第2ECC部102、および第3ECC部103は、ホスト装置1のCPUがソフトウェアを実行することにより実現することができる。
SSD100は、第2誤り訂正後のデータ{ブロックD(1,1)〜D(8,1024)とそのCRC(1,1)〜CRC(8,1024)、およびRS(1,1)〜RS(8,4)とそのCRC(1,1025)〜CRC(8,1028),ECC1)、および第2誤り情報をホスト装置1に転送する。
ホスト装置1は、SSDから受信した第2誤り訂正後のデータに対して、第2誤り訂正情報を使用して、第3の誤り訂正を行い、その結果を、CRCで確認し、誤りが検出された場合は、再度、第2の誤り訂正を行って、誤りがなくなるまで、第2と第3の誤り訂正を交互に繰り返し行う(上記図15〜図19の処理を行う)。
図22は、実施の形態2にかかるECC回路42の復号系に関する主要部を示すブロック図である。図22に示すように、実施の形態2にかかるECC回路42の復号系では、第3ECC復号部を実装する必要がなくなるので、回路規模を小規模にすることが可能となる。
実施の形態2によれば、第3誤り訂正をホスト装置1で行うこととしたので、SSD100で第3誤り訂正を行う必要がなくなり、SSD100の負荷および回路規模を低減することが可能となる。
なお、上記実施の形態では、本発明をNANDメモリを有するSSDに適用するようにしたが、NOR型などの他のフラッシュEEPROMを有するSSDに本発明を適用するようにしてもよい。
SSD(Solid State Drive)の構成例を示すブロック図である。 NANDメモリチップに含まれる1個のブロックの構成例を示す回路図である。 ECC回路の誤り訂正原理の概略を説明するための模式図である。 ECC回路の符号化系に関する主要部を示すブロック図である。 DRAMに格納されるデータのフォーマットの一例を示す図である。 NANDメモリに転送されるデータのフォーマットを示す図である。 ECC回路の誤り検出符号生成動作及び誤り訂正符号生成動作を説明する図である。 図7に続く、誤り検出符号生成動作及び誤り訂正符号生成動作を説明する図である。 図8に続く、誤り検出符号生成動作及び誤り訂正符号生成動作を説明する図である。 ECC回路の復号系に関する主要部を示すブロック図である。 第1誤り訂正後の誤り検出を説明するための図である。 第1誤り情報の一例を示す図である。 第2誤り訂正後の誤り検出を説明するための図である。 第2誤り情報の一例を示す図である。 第2ECC訂正部による1回目の誤り訂正後のブロックデータを示す図である。 第3ECC訂正部による1回目の誤り訂正後のブロックデータを示す図である。 第2ECC訂正部による2回目の誤り訂正後のブロックデータを示す図である。 第3ECC訂正部による2回目の誤り訂正後のブロックデータを示す図である。 書き込みからの経過時間と必要訂正能力との関係を示す図である。 実施の形態2の誤り訂正原理を説明するための模式図である。 実施の形態2にかかるSSDおよびホスト装置の構成を示す図である。 実施の形態2にかかるECC回路の復号系に関する主要部を示すブロック図である。
符号の説明
100 SSD
1 ホスト装置
2 ATAインタフェース(ATA I/F)
3 ホスト装置(ホスト)
4 ドライブ制御回路
5 電源回路
6 LED
10 NANDメモリ
20 DRAM
41 コントローラ
42 ECC回路
43 NAND I/F
50 誤り検出符号生成部
51 第1ECC生成部
52 第2ECC生成部
53 第3ECC生成部
60 誤り検出部
61 第1ECC訂正部
62 第2ECC訂正部
63 第3ECC訂正部
101 誤り検出部
102 第2ECC部
103 第3ECC部

Claims (13)

  1. 複数データで構成されるデータブロックを行列状に複数格納可能な一時記憶手段と、
    前記データブロック毎にその誤りを検出するための誤り検出符号を生成する誤り検出符号生成手段と、
    前記データブロックで構成される第1単位データ毎に、その誤りを訂正するための第1誤り訂正符号を生成する第1誤り訂正符号生成手段と、
    列方向に配列される複数の前記データブロックで構成される第2単位データ毎に、その誤りを訂正するための第2誤り訂正符号を生成する第2誤り訂正符号生成手段と、
    行方向に配列される複数の前記データブロックで構成される第3単位データ毎に、その誤りを訂正するための第3誤り訂正符号を生成する第3誤り訂正符号生成手段と、
    前記データブロック、前記生成された誤り検出符号および前記第1〜第3誤り訂正符号を格納可能な不揮発性半導体メモリと、
    を備えたことを特徴とする半導体記憶装置。
  2. 前記データブロック毎に、対応する前記第1誤り訂正符号を用いて第1誤り訂正を行う第1誤り訂正手段と、
    前記第1誤り訂正済みのブロックの誤りを、対応する前記誤り検出符号を用いて検出する第1誤り検出手段と、
    前記第1誤り検出手段で検出された前記第1誤り訂正済みのブロックの誤りを、対応する前記第2訂正符号を用いて誤り訂正する第2誤り訂正手段と、
    前記第2誤り訂正済みのブロックの誤りを、対応する前記誤り検出符号を用いて検出する第2誤り検出手段と、
    前記第2誤り検出手段で検出された前記第2誤り訂正済みのブロックの誤りを、対応する前記第3訂正符号を用いて誤り訂正する第3誤り訂正手段と、
    を備えたことを特徴とする請求項1に記載の半導体記憶装置。
  3. 誤り訂正能力は、第3誤り訂正>第2誤り訂正>第1誤り訂正の順で高いことを特徴とする請求項1または請求項2に記載の半導体記憶装置。
  4. 前記第2誤り訂正手段と前記第3誤り訂正手段とは、それぞれの訂正動作を交互に繰り返すことを特徴とする請求項2に記載の半導体記憶装置。
  5. 前記誤り検出符号生成手段は、前記第3誤り訂正符号の誤りを検出するための誤り検出符号を生成することを特徴とする請求項1〜4のいずれか1つに記載の半導体記憶装置。
  6. 前記第1単位データは、前記データブロックに対応する誤り検出符号を含むことを特徴とする請求項1〜請求項5のいずれか1つに記載の半導体記憶装置。
  7. 前記第2単位データは、当該第2単位データを構成する複数のデータブロックに各々対応する誤り検出符号を含むことを特徴とする請求項1〜請求項6のいずれか1つに記載の半導体記憶装置。
  8. 前記第2誤り符号生成手段は、列方向に配列される複数の前記第3誤り検出符号毎に、その誤りを訂正するための第2誤り訂正符号を生成することを特徴とする請求項1〜請求項7のいずれか1つに記載の半導体記憶装置。
  9. 前記第1誤り検出手段は、誤りが検出されたデータブロックを特定する第1誤り情報を生成し、
    前記第2誤り訂正手段は、前記第1誤り情報に基づいて、第2誤り訂正を行い、
    前記第2誤り検出手段は、誤りが検出されたデータブロックを特定する第2誤り情報を生成し、
    前記第3誤り訂正手段は、前記第2誤り情報に基づいて、第3誤り訂正を行うことを特徴とする請求項2に記載の半導体記憶装置。
  10. 前記不揮発性半導体メモリは、NAND型フラッシュメモリであることを特徴とする請求項1〜請求項9のいずれか1つに記載の半導体記憶装置。
  11. 複数データで構成されるデータブロックの複数を行列状に一時記憶手段に格納する工程と、
    前記データブロック毎にその誤りを検出するための誤り検出符号を生成する誤り検出符号生成工程と、
    前記データブロックで構成される第1単位データ毎に、その誤りを訂正するための第1誤り訂正符号を生成する第1誤り訂正符号生成工程と、
    列方向に配列される複数の前記データブロックで構成される第2単位データ毎に、その誤りを訂正するための第2誤り訂正符号を生成する第2誤り訂正符号生成工程と、
    行方向に配列される複数の前記データブロックで構成される第3単位データ毎に、その誤りを訂正するための第3誤り訂正符号を生成する第3誤り訂正符号生成工程と、
    前データブロック、前記生成された誤り検出符号および前記第1〜第3誤り訂正符号を不揮発性半導体メモリに格納する工程と、
    を含むことを特徴とする半導体記憶装置の制御方法。
  12. 前記データブロック毎に、対応する前記第1誤り訂正符号を用いて第1誤り訂正を行う第1誤り訂正工程と、
    前記第1誤り訂正済みのブロックの誤りを、対応する前記誤り検出符号を用いて検出する第1誤り検出工程と、
    前記第1誤り検出工程で検出された前記第1誤り訂正済みのブロックの誤りを、対応する前記第2訂正符号を用いて誤り訂正する第2誤り訂正工程と、
    前記第2誤り訂正済みのブロックの誤りを、対応する前記誤り検出符号を用いて検出する第2誤り検出工程と、
    前記第2誤り検出手段で検出された前記第2誤り訂正済みのブロックの誤りを、対応する前記第3訂正符号を用いて誤り訂正する第3誤り訂正工程と、
    を備えたことを特徴とする請求項12に記載の半導体記憶装置の制御方法。
  13. ホスト装置と、当該ホスト装置の指示に応じて不揮発性メモリに対するデータのリード/ライトを行う半導体記憶装置とで構成される誤り訂正システムにおいて、
    前記半導体記憶装置は、
    前記ホスト装置から転送されてくるデータを、複数データで構成されるデータブロックに分割して、行列状に格納する一時記憶手段と、
    前記データブロック毎にその誤りを検出するための誤り検出符号を生成する誤り検出符号生成手段と、
    前記データブロックで構成される第1単位データ毎に、その誤りを訂正するための第1誤り訂正符号を生成する第1誤り訂正符号生成手段と、
    列方向に配列される複数の前記データブロックで構成される第2単位データ毎に、その誤りを訂正するための第2誤り訂正符号を生成する第2誤り訂正符号生成手段と、
    行方向に配列される複数の前記データブロックで構成される第3単位データ毎に、その誤りを訂正するための第3誤り訂正符号を生成する第3誤り訂正符号生成手段と、
    前データブロック、前記生成された誤り検出符号および前記第1〜第3誤り訂正符号を格納する不揮発性半導体メモリと、
    前記データブロック毎に、対応する前記第1誤り訂正符号を用いて第1誤り訂正を行う第1誤り訂正手段と、
    前記第1誤り訂正済みのブロックの誤りを、対応する前記誤り検出符号を用いて検出する第1誤り検出手段と、
    前記第1誤り検出手段で検出された前記第1誤り訂正済みのブロックの誤りを、対応する前記第2訂正符号を用いて誤り訂正する第2誤り訂正手段と、
    前記第2誤り訂正済みのブロックの誤りを、対応する前記誤り検出符号を用いて検出する第2誤り検出手段と、
    前記第2誤り訂正済みのデータおよび前記第2誤り検出手段の検出結果をホスト装置に送信する送信手段と、
    を備え、
    前記ホスト装置は、
    前記半導体記憶装置から転送されてくる、前記第2誤り検出手段で検出された前記第2誤り訂正済みのブロックの誤りを、対応する前記第3訂正符号を用いて誤り訂正する第3誤り訂正手段を備えたこと特徴とする誤り訂正システム。
JP2008051419A 2008-02-29 2008-02-29 半導体記憶装置、その制御方法、および誤り訂正システム Expired - Fee Related JP5166074B2 (ja)

Priority Applications (9)

Application Number Priority Date Filing Date Title
JP2008051419A JP5166074B2 (ja) 2008-02-29 2008-02-29 半導体記憶装置、その制御方法、および誤り訂正システム
PCT/JP2008/067585 WO2009107267A1 (en) 2008-02-29 2008-09-19 Semiconductor storage device, method of controlling the same, and error correction system
EP08872770A EP2248028A4 (en) 2008-02-29 2008-09-19 SEMICONDUCTOR STORAGE DEVICE, METHOD FOR CONTROLLING THE DEVICE, AND ERROR CORRECTION SYSTEM
US12/867,068 US8086933B2 (en) 2008-02-29 2008-09-19 Semiconductor storage device, method of controlling the same, and error correction system
KR1020107018696A KR101203235B1 (ko) 2008-02-29 2008-09-19 반도체 기억 장치, 그 제어 방법, 및 에러 정정 시스템
CN200880126996.3A CN101946239A (zh) 2008-02-29 2008-09-19 半导体存储装置及其控制方法和错误纠正系统
US13/334,438 US8381066B2 (en) 2008-02-29 2011-12-22 Semiconductor storage device, method of controlling the same, and error correction system
US13/743,727 US8499216B2 (en) 2008-02-29 2013-01-17 Semiconductor storage device, method of controlling the same, and error correction system
US13/939,335 US8751896B2 (en) 2008-02-29 2013-07-11 Semiconductor storage device, method of controlling the same, and error correction system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008051419A JP5166074B2 (ja) 2008-02-29 2008-02-29 半導体記憶装置、その制御方法、および誤り訂正システム

Publications (2)

Publication Number Publication Date
JP2009211209A true JP2009211209A (ja) 2009-09-17
JP5166074B2 JP5166074B2 (ja) 2013-03-21

Family

ID=41015677

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008051419A Expired - Fee Related JP5166074B2 (ja) 2008-02-29 2008-02-29 半導体記憶装置、その制御方法、および誤り訂正システム

Country Status (6)

Country Link
US (4) US8086933B2 (ja)
EP (1) EP2248028A4 (ja)
JP (1) JP5166074B2 (ja)
KR (1) KR101203235B1 (ja)
CN (1) CN101946239A (ja)
WO (1) WO2009107267A1 (ja)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011203878A (ja) * 2010-03-24 2011-10-13 Toshiba Corp 半導体記憶装置
JP2011210023A (ja) * 2010-03-30 2011-10-20 Toshiba Corp 情報処理装置および情報処理方法
JP2011210277A (ja) * 2011-06-20 2011-10-20 Toshiba Corp 情報処理装置および情報処理方法
CN102231284A (zh) * 2011-06-02 2011-11-02 孙飞 一种降低闪存芯片数据写操作功耗的方法
JP2012038168A (ja) * 2010-08-09 2012-02-23 Toshiba Corp 記録ユニット及び故障チップ特定方法
JP2013205853A (ja) * 2012-03-27 2013-10-07 Nec Corp フラッシュメモリディスク装置、フラッシュメモリディスク装置におけるデータ記憶制御方法およびプログラム
JP2014063503A (ja) * 2013-11-07 2014-04-10 Univ Of Tokyo データ入出力制御装置および半導体記憶装置システム
WO2014061161A1 (ja) * 2012-10-19 2014-04-24 富士通株式会社 記録再生装置、誤り訂正方法および制御装置
US8732553B2 (en) 2010-12-27 2014-05-20 Kabushiki Kaisha Toshiba Memory system and control method thereof
JP2014515536A (ja) * 2011-05-31 2014-06-30 マイクロン テクノロジー, インク. データ完全性を与えるための装置および方法
US8954828B2 (en) 2012-03-19 2015-02-10 Kabushiki Kaisha Toshiba Memory controller
US8954817B2 (en) 2012-07-31 2015-02-10 Kabushiki Kaisha Toshiba Storage apparatus and controller
US9128864B2 (en) 2012-05-14 2015-09-08 Kabushiki Kaisha Toshiba Memory controller, storage device and error correction method
US9189323B2 (en) 2010-12-15 2015-11-17 Kabushiki Kaisha Toshiba Semiconductor storage device and method of controlling the same
US9230684B2 (en) 2012-12-19 2016-01-05 Kabushiki Kaisha Toshiba Memory controller, storage device, and memory control method
US9520901B2 (en) 2014-03-06 2016-12-13 Kabushiki Kaisha Toshiba Memory controller, memory system, and memory control method
WO2020236403A1 (en) * 2019-05-23 2020-11-26 Micron Technology, Inc. Error correction memory device with fast data access
US12034459B2 (en) 2023-05-05 2024-07-09 Kioxia Corporation Memory controller, memory system, and memory control method

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7574272B2 (en) * 2000-10-13 2009-08-11 Eric Paul Gibbs System and method for data transfer optimization in a portable audio device
JP4564520B2 (ja) 2007-08-31 2010-10-20 株式会社東芝 半導体記憶装置およびその制御方法
JP4672743B2 (ja) 2008-03-01 2011-04-20 株式会社東芝 誤り訂正装置および誤り訂正方法
CN102034552A (zh) * 2009-09-25 2011-04-27 威刚科技(苏州)有限公司 存储装置与其资料处理方法
GB2488462B (en) * 2009-12-17 2018-01-17 Ibm Data management in solid state storage systems
US8631304B2 (en) 2010-01-28 2014-01-14 Sandisk Il Ltd. Overlapping error correction operations
US8365041B2 (en) * 2010-03-17 2013-01-29 Sandisk Enterprise Ip Llc MLC self-raid flash data protection scheme
US8572457B2 (en) * 2010-05-28 2013-10-29 Seagate Technology Llc Outer code protection for solid state memory devices
KR101826137B1 (ko) * 2011-03-24 2018-03-22 삼성전자주식회사 메모리 컨트롤러, 이를 포함하는 장치들, 및 이의 동작 방법
US8832524B2 (en) 2011-09-22 2014-09-09 Violin Memory, Inc. System and method for correcting errors in data using a compound code
KR101320684B1 (ko) * 2011-11-18 2013-10-18 한국과학기술원 연접 비씨에이치 부호, 복호 및 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치의 오류 정정 회로 및 플래쉬 메모리 장치
US8719677B2 (en) * 2011-12-22 2014-05-06 Sandisk Technologies Inc. Using ECC encoding to verify an ECC decode operation
US8645789B2 (en) * 2011-12-22 2014-02-04 Sandisk Technologies Inc. Multi-phase ECC encoding using algebraic codes
US8996950B2 (en) 2012-02-23 2015-03-31 Sandisk Technologies Inc. Erasure correction using single error detection parity
US9230683B2 (en) * 2012-04-25 2016-01-05 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device and driving method thereof
US9215726B1 (en) * 2012-07-24 2015-12-15 Spectranet, Inc. Low latency wireless messaging
JP2014035673A (ja) * 2012-08-09 2014-02-24 Renesas Electronics Corp 半導体記憶装置及び方法
US9312885B2 (en) * 2012-08-15 2016-04-12 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory system error correction capability of which is improved
TWI477104B (zh) * 2012-09-13 2015-03-11 Mstar Semiconductor Inc 錯誤校正裝置與錯誤校正方法
CN103716119B (zh) * 2012-09-29 2016-12-28 晨星软件研发(深圳)有限公司 错误校正装置与错误校正方法
CN103839594A (zh) * 2012-11-27 2014-06-04 建兴电子科技股份有限公司 固态储存装置及其联合编解码方法
EP2936496B1 (en) * 2012-12-21 2018-11-28 Hewlett-Packard Enterprise Development LP Memory module having error correction logic
TWI527040B (zh) 2013-05-13 2016-03-21 群聯電子股份有限公司 資料寫入方法、記憶體儲存裝置與記憶體控制器
TWI497280B (zh) * 2013-07-08 2015-08-21 Phison Electronics Corp 資料保護方法、記憶體儲存裝置與記憶體控制器
US9424131B2 (en) * 2013-09-19 2016-08-23 Avago Technologies General Ip (Singapore) Pte. Ltd. Spatially decoupled redundancy schemes for a solid state drive (SSD)
KR101550762B1 (ko) 2013-11-29 2015-09-08 한국과학기술원 연접 오류 정정 장치
KR102094878B1 (ko) * 2014-02-10 2020-03-30 에스케이하이닉스 주식회사 반도체 메모리 장치 및 동작 방법
TWI556254B (zh) 2014-10-14 2016-11-01 慧榮科技股份有限公司 資料儲存裝置及其資料存取方法
US9711240B2 (en) 2015-01-08 2017-07-18 Kabushiki Kaisha Toshiba Memory system
WO2016143170A1 (en) * 2015-03-09 2016-09-15 Kabushiki Kaisha Toshiba Semiconductor storage device
JP6605839B2 (ja) * 2015-05-08 2019-11-13 株式会社東芝 復号装置、復号方法及びプログラム
US10063263B2 (en) * 2015-05-20 2018-08-28 International Business Machines Corporation Extended error correction coding data storage
CN106970852A (zh) * 2016-01-14 2017-07-21 钰创科技股份有限公司 闪存错误控制电路及其方法
TWI672703B (zh) * 2016-04-27 2019-09-21 慧榮科技股份有限公司 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置
CN107391296B (zh) * 2016-04-27 2020-11-06 慧荣科技股份有限公司 存取闪存模块的方法及相关的闪存控制器与记忆装置
US10110255B2 (en) * 2016-04-27 2018-10-23 Silicon Motion Inc. Method for accessing flash memory module and associated flash memory controller and memory device
US10289487B2 (en) 2016-04-27 2019-05-14 Silicon Motion Inc. Method for accessing flash memory module and associated flash memory controller and memory device
US10025662B2 (en) 2016-04-27 2018-07-17 Silicon Motion Inc. Flash memory apparatus and storage management method for flash memory
CN111679787B (zh) 2016-04-27 2023-07-18 慧荣科技股份有限公司 闪存装置、闪存控制器及闪存存储管理方法
US9910772B2 (en) 2016-04-27 2018-03-06 Silicon Motion Inc. Flash memory apparatus and storage management method for flash memory
US10019314B2 (en) 2016-04-27 2018-07-10 Silicon Motion Inc. Flash memory apparatus and storage management method for flash memory
CN112463433B (zh) * 2016-04-27 2024-03-29 慧荣科技股份有限公司 存取闪存模块的方法及相关的闪存控制器与记忆装置
CN112214348B (zh) * 2016-04-27 2023-08-29 慧荣科技股份有限公司 存取闪存模块的方法及相关的闪存控制器与记忆装置
CN107391026B (zh) 2016-04-27 2020-06-02 慧荣科技股份有限公司 闪存装置及闪存存储管理方法
CN106502590A (zh) * 2016-10-24 2017-03-15 郑州云海信息技术有限公司 一种固态硬盘ssd存储系统及方法
KR20180052154A (ko) * 2016-11-09 2018-05-18 에스케이하이닉스 주식회사 메모리 시스템
KR20180078426A (ko) * 2016-12-29 2018-07-10 에스케이하이닉스 주식회사 데이터 저장 장치의 에러 정정 코드 처리 방법
KR102333140B1 (ko) 2017-08-18 2021-12-02 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10831596B2 (en) * 2018-01-22 2020-11-10 Micron Technology, Inc. Enhanced error correcting code capability using variable logical to physical associations of a data block
US10521296B2 (en) * 2018-02-20 2019-12-31 Micron Technology, Inc. Performing an additional decoding operation on an identified set of bits of a data block
US10748462B2 (en) * 2018-05-29 2020-08-18 Shenzhen China Star Optoelectronics Technology Co., Ltd. Hardware controller of NAND device, control method and liquid crystal display
US11537464B2 (en) 2019-06-14 2022-12-27 Micron Technology, Inc. Host-based error correction
US11023317B2 (en) 2019-07-12 2021-06-01 Micron Technology, Inc. Read recovery control circuitry
US11428104B2 (en) 2019-07-29 2022-08-30 Pratt & Whitney Canada Corp. Partition arrangement for gas turbine engine and method
JP2021033530A (ja) * 2019-08-21 2021-03-01 キオクシア株式会社 メモリシステム
KR20210147686A (ko) * 2020-05-29 2021-12-07 에스케이하이닉스 주식회사 오류 정정 회로 및 오류 정정 인코딩 방법
US11656937B2 (en) * 2020-08-25 2023-05-23 Micron Technology, Inc. Techniques for error detection and correction in a memory system
CN117079686A (zh) * 2020-09-18 2023-11-17 长鑫存储技术有限公司 存储器
EP4227944A4 (en) 2020-09-18 2024-06-19 Changxin Memory Technologies, Inc. STORAGE
CN115329399B (zh) * 2022-10-13 2023-01-31 江苏华存电子科技有限公司 基于nand的垂直水平raid4数据保护管理方法及系统
CN117762350A (zh) * 2024-01-18 2024-03-26 四川和恩泰半导体有限公司 一种固态硬盘数据读取方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63275225A (ja) * 1987-05-06 1988-11-11 Seiko Epson Corp 誤り訂正装置
JPH0675799A (ja) * 1992-08-28 1994-03-18 Matsushita Electric Ind Co Ltd メモリアクセス装置とメモリ装置
JPH0816488A (ja) * 1994-06-29 1996-01-19 Nec Corp 電子ディスク装置
JPH11143787A (ja) * 1997-11-06 1999-05-28 Hitachi Ltd 記録再生装置
JP2004280556A (ja) * 2003-03-17 2004-10-07 Renesas Technology Corp 情報記憶装置および情報処理システム
JP2004334845A (ja) * 2003-04-30 2004-11-25 Hewlett-Packard Development Co Lp 階層化された3次元記憶アーキテクチャにおけるエラー検出およびエラー訂正
JP2006073191A (ja) * 2005-09-26 2006-03-16 Toshiba Corp メモリアドレス発生装置及び方法
JP2006318461A (ja) * 2005-05-10 2006-11-24 Hewlett-Packard Development Co Lp 水平及び垂直のエラー訂正符号化(ecc)システム及び方法
JP2009080651A (ja) * 2007-09-26 2009-04-16 Toshiba Corp 半導体記憶装置、及びその制御方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61264599A (ja) * 1985-05-16 1986-11-22 Fujitsu Ltd 半導体記憶装置
EP0540007B1 (en) * 1991-10-29 1999-01-07 Nippon Hoso Kyokai Method and apparatus for the reception of information signals
US5357527A (en) * 1992-12-31 1994-10-18 Trimble Navigation Limited Validation of RAM-resident software programs
JPH06236632A (ja) * 1993-02-09 1994-08-23 Matsushita Electric Ind Co Ltd 光ディスクおよび光ディスク再生装置
JP3190853B2 (ja) * 1997-05-23 2001-07-23 エヌイーシーマイクロシステム株式会社 誤り訂正処理方法及びその装置
US6052815A (en) * 1997-11-14 2000-04-18 Cirrus Logic, Inc. ECC system for generating a CRC syndrome over randomized data in a computer storage device
US6453427B2 (en) * 1998-12-31 2002-09-17 Intel Corporation Method and apparatus for handling data errors in a computer system
JP3920558B2 (ja) * 2000-11-08 2007-05-30 株式会社東芝 データ処理方法及び装置及び記録媒体及び再生方法及び装置
JP2006146976A (ja) * 2004-11-16 2006-06-08 Sony Corp 記録再生システム、誤り訂正装置、記録再生方法
JP2006295510A (ja) * 2005-04-08 2006-10-26 Mitsubishi Electric Corp Fecフレーム符号化装置、fec多重化装置、fec多重分離装置、および光通信装置
JP4413840B2 (ja) 2005-09-20 2010-02-10 株式会社東芝 記憶媒体再生装置、記憶媒体再生方法および記憶媒体再生プログラム
US8291295B2 (en) * 2005-09-26 2012-10-16 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
KR100845529B1 (ko) * 2007-01-03 2008-07-10 삼성전자주식회사 플래시 메모리 장치의 이씨씨 제어기 및 그것을 포함한메모리 시스템
JP2008300020A (ja) * 2007-06-04 2008-12-11 Toshiba Corp 再生装置
JP2009181439A (ja) * 2008-01-31 2009-08-13 Toshiba Corp メモリシステム
JP4672743B2 (ja) 2008-03-01 2011-04-20 株式会社東芝 誤り訂正装置および誤り訂正方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63275225A (ja) * 1987-05-06 1988-11-11 Seiko Epson Corp 誤り訂正装置
JPH0675799A (ja) * 1992-08-28 1994-03-18 Matsushita Electric Ind Co Ltd メモリアクセス装置とメモリ装置
JPH0816488A (ja) * 1994-06-29 1996-01-19 Nec Corp 電子ディスク装置
JPH11143787A (ja) * 1997-11-06 1999-05-28 Hitachi Ltd 記録再生装置
JP2004280556A (ja) * 2003-03-17 2004-10-07 Renesas Technology Corp 情報記憶装置および情報処理システム
JP2004334845A (ja) * 2003-04-30 2004-11-25 Hewlett-Packard Development Co Lp 階層化された3次元記憶アーキテクチャにおけるエラー検出およびエラー訂正
JP2006318461A (ja) * 2005-05-10 2006-11-24 Hewlett-Packard Development Co Lp 水平及び垂直のエラー訂正符号化(ecc)システム及び方法
JP2006073191A (ja) * 2005-09-26 2006-03-16 Toshiba Corp メモリアドレス発生装置及び方法
JP2009080651A (ja) * 2007-09-26 2009-04-16 Toshiba Corp 半導体記憶装置、及びその制御方法

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8751911B2 (en) 2010-03-24 2014-06-10 Kabushiki Kaisha Toshiba Semiconductor memory device
USRE49253E1 (en) 2010-03-24 2022-10-18 Kioxia Corporation Semiconductor memory device
US9298546B2 (en) 2010-03-24 2016-03-29 Kabushiki Kaisha Toshiba Semiconductor memory device
US8418042B2 (en) 2010-03-24 2013-04-09 Kabushiki Kaisha Toshiba Semiconductor memory device
KR101267183B1 (ko) * 2010-03-24 2013-05-24 가부시끼가이샤 도시바 반도체 기억 장치
JP2011203878A (ja) * 2010-03-24 2011-10-13 Toshiba Corp 半導体記憶装置
US9048878B2 (en) 2010-03-24 2015-06-02 Kabushiki Kaisha Toshiba Semiconductor memory device
JP2011210023A (ja) * 2010-03-30 2011-10-20 Toshiba Corp 情報処理装置および情報処理方法
JP2012038168A (ja) * 2010-08-09 2012-02-23 Toshiba Corp 記録ユニット及び故障チップ特定方法
US9189323B2 (en) 2010-12-15 2015-11-17 Kabushiki Kaisha Toshiba Semiconductor storage device and method of controlling the same
US8732553B2 (en) 2010-12-27 2014-05-20 Kabushiki Kaisha Toshiba Memory system and control method thereof
JP2014515536A (ja) * 2011-05-31 2014-06-30 マイクロン テクノロジー, インク. データ完全性を与えるための装置および方法
US9152512B2 (en) 2011-05-31 2015-10-06 Micron Technology, Inc. Apparatus and methods for providing data integrity
CN102231284A (zh) * 2011-06-02 2011-11-02 孙飞 一种降低闪存芯片数据写操作功耗的方法
JP2011210277A (ja) * 2011-06-20 2011-10-20 Toshiba Corp 情報処理装置および情報処理方法
US8954828B2 (en) 2012-03-19 2015-02-10 Kabushiki Kaisha Toshiba Memory controller
JP2013205853A (ja) * 2012-03-27 2013-10-07 Nec Corp フラッシュメモリディスク装置、フラッシュメモリディスク装置におけるデータ記憶制御方法およびプログラム
US9128864B2 (en) 2012-05-14 2015-09-08 Kabushiki Kaisha Toshiba Memory controller, storage device and error correction method
US8954817B2 (en) 2012-07-31 2015-02-10 Kabushiki Kaisha Toshiba Storage apparatus and controller
WO2014061161A1 (ja) * 2012-10-19 2014-04-24 富士通株式会社 記録再生装置、誤り訂正方法および制御装置
US9230684B2 (en) 2012-12-19 2016-01-05 Kabushiki Kaisha Toshiba Memory controller, storage device, and memory control method
JP2014063503A (ja) * 2013-11-07 2014-04-10 Univ Of Tokyo データ入出力制御装置および半導体記憶装置システム
US9520901B2 (en) 2014-03-06 2016-12-13 Kabushiki Kaisha Toshiba Memory controller, memory system, and memory control method
US10965324B2 (en) 2014-03-06 2021-03-30 Toshiba Memory Corporation Memory controller, memory system, and memory control method
US11683053B2 (en) 2014-03-06 2023-06-20 Kioxia Corporation Memory controller, memory system, and memory control method
WO2020236403A1 (en) * 2019-05-23 2020-11-26 Micron Technology, Inc. Error correction memory device with fast data access
US12034459B2 (en) 2023-05-05 2024-07-09 Kioxia Corporation Memory controller, memory system, and memory control method

Also Published As

Publication number Publication date
WO2009107267A1 (en) 2009-09-03
KR101203235B1 (ko) 2012-11-20
US8751896B2 (en) 2014-06-10
EP2248028A1 (en) 2010-11-10
CN101946239A (zh) 2011-01-12
US20100313099A1 (en) 2010-12-09
US20130132795A1 (en) 2013-05-23
US8499216B2 (en) 2013-07-30
US8086933B2 (en) 2011-12-27
US8381066B2 (en) 2013-02-19
EP2248028A4 (en) 2012-03-28
US20120166908A1 (en) 2012-06-28
KR20100113135A (ko) 2010-10-20
JP5166074B2 (ja) 2013-03-21
US20130297984A1 (en) 2013-11-07

Similar Documents

Publication Publication Date Title
JP5166074B2 (ja) 半導体記憶装置、その制御方法、および誤り訂正システム
JP4538034B2 (ja) 半導体記憶装置、及びその制御方法
US20190215015A1 (en) Semiconductor memory device and method of controlling the same
KR100842680B1 (ko) 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템
KR101730510B1 (ko) 메타데이터 태그를 통한 불규칙적인 패리티 분포 검출
KR101575248B1 (ko) 메모리 컨트롤러 및 그것을 포함하는 메모리 시스템
JP5017407B2 (ja) 半導体記憶装置
CN110347530B (zh) 数据存储装置及其操作方法
US10725863B2 (en) Memory system and method for operating the same
JP2015018451A (ja) メモリコントローラ、記憶装置およびメモリ制御方法
US9003264B1 (en) Systems, methods, and devices for multi-dimensional flash RAID data protection
US8347183B2 (en) Flash memory device using ECC algorithm and method of operating the same
JP2012137994A (ja) メモリシステムおよびその制御方法
US10142419B2 (en) Erasure correcting coding using data subsets and partial parity symbols
JP2009301194A (ja) 半導体記憶装置の制御システム
US10256843B2 (en) Systems, methods, and devices for encoding and decoding data using multi-layer integrated interleaved codes
JP2010128697A (ja) メモリシステム
KR20170067656A (ko) Nand 플래시용 터보 프로덕트 코드
JP2007179480A (ja) メモリコントローラおよびフラッシュメモリシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120529

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120726

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121220

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151228

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151228

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees