JP5540969B2 - 不揮発性メモリ装置、メモリコントローラ、およびメモリシステム - Google Patents
不揮発性メモリ装置、メモリコントローラ、およびメモリシステム Download PDFInfo
- Publication number
- JP5540969B2 JP5540969B2 JP2010171690A JP2010171690A JP5540969B2 JP 5540969 B2 JP5540969 B2 JP 5540969B2 JP 2010171690 A JP2010171690 A JP 2010171690A JP 2010171690 A JP2010171690 A JP 2010171690A JP 5540969 B2 JP5540969 B2 JP 5540969B2
- Authority
- JP
- Japan
- Prior art keywords
- ecc
- data
- extended
- standard
- unit
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/35—Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
- H03M13/356—Unequal error protection [UEP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/152—Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/19—Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
Description
近年、揮発性ランダムアクセスメモリ(RAM)であるSRAMやDRAMのように、単一のバイト、ワードを単位としてランダムアクセス可能でありながら、電源を切った後もデータ保持可能な不揮発性ランダムアクセスメモリ(NVRAM)の開発、製品化が進んでいる。
このNVRAMとして、FeRAM、PCRAMやReRAMがあげられる。
NVRAMでは、バイト単位またはワード単位の小さな単位で、DRAM並みの高速なランダムアクセス性能が求められるために、ECCも小さなアクセス単位毎に非常に高速な訂正処理が可能な方式であることが重要となる。
一方で一般的には、誤り訂正能力の高いECCであるほど、検出・訂正にかかる処理時間が長く、さらに符号サイズも大きくなる。ECCをデータとともにNVMやNVRAMに保存するためには、データの保存用の領域の他に冗長ビット領域が必要であり、高い訂正能力を持ったECCを使用するためには、それだけ冗長ビット領域の容量も大きくする必要がある。
特許文献1に開示された半導体メモリシステムは、第1エラー訂正コードと、それよりも訂正能力の高い第2エラー訂正コードを利用する。そして、この半導体メモリシステムは、読み出しデータに第1エラー訂正コードで訂正可能なエラーが発生した場合に、それ以降、第2エラー訂正コードを用いて、誤り訂正処理を行うことで、データの信頼性を高めている。
書込み指示を受けて、受信データを上記データ領域に書込み、上記標準ECC処理部によって前記受信データからアクセス単位毎に生成した標準ECCを標準ECC領域へ書込む機能と、
読み込み指示を受けて、上記標準ECC領域から標準ECCを読込み、上記標準ECC処理部によって、上記データ領域から読み込んだデータをアクセス単位ごとに誤り検出・訂正処理し、訂正後のデータを外部に送信する機能と、
拡張ECC設定指示を受けて、上記拡張ECC処理部によって、上記データ領域から読出したアクセス単位の整数倍から成る拡張ECCブロックのデータから生成した拡張ECCを上記拡張ECC領域に書込む機能と、
標準ECCで訂正不可能なエラーが発生した場合に、上記拡張ECC領域から拡張ECCを読込み、上記拡張ECC処理部によって、上記データ領域から読み出した上記拡張ECCブロックのデータの誤り訂正処理を行う機能と、を含む。
書込み指示を受けて、受信データを上記データ領域に書込み、上記標準ECC処理部によって前記受信データからアクセス単位毎に生成した標準ECCを標準ECC領域へ書込む機能と、
読み込み指示を受けて、上記標準ECC領域から標準ECCを読込み、上記標準ECC処理部によって、上記データ領域から読み込んだデータをアクセス単位ごとに誤り検出・訂正処理し、訂正後のデータを外部に送信する機能と、
拡張ECC設定指示を受けて、上記拡張ECC処理部によって、上記データ領域から読出したアクセス単位の整数倍から成る拡張ECCブロックのデータから生成した拡張ECCを上記拡張ECC領域に書込む機能と、
標準ECCで訂正不可能なエラーが発生した場合に、上記拡張ECC領域から拡張ECCを読込み、上記拡張ECC処理部によって、上記データ領域から読み出した上記拡張ECCブロックのデータの誤り訂正処理を行う機能と、を含む。
標準ECCの生成処理と、誤り検出・訂正処理を行う標準ECC処理部と、拡張ECCの生成処理と、誤り検出・訂正処理を行う拡張ECC処理部と、上記不揮発性メモリ部へのアクセス並びに上記標準ECC処理部および上記拡張ECC処理部を制御するメモリコントローラと、
上記メモリコントローラに対して、少なくとも書込みを指示する機能と、読み出しを指示する機能と、拡張ECC設定を指示する機能を含むホスト装置と、を有し、上記メモリコントローラは、
ホスト装置から書込み指示を受けて、受信データを上記データ領域に書込み、上記標準ECC処理部によって前記受信データからアクセス単位毎に生成した標準ECCを標準ECC領域へ書込む機能と、
ホスト装置から読み込み指示を受けて、上記標準ECC領域から標準ECCを読込み、上記標準ECC処理部によって、上記データ領域から読み込んだデータをアクセス単位ごとに誤り検出・訂正処理し、訂正後のデータをホスト装置に送信する機能と、
ホスト装置から拡張ECC設定指示を受けて、上記拡張ECC処理部によって、上記データ領域から読出したアクセス単位の整数倍から成る拡張ECCブロックのデータから生成した拡張ECCを上記拡張ECC領域に書込む機能と、
標準ECCで訂正不可能なエラーが発生した場合に、上記拡張ECC領域から拡張ECCを読込み、上記拡張ECC処理部によって、上記データ領域から読み出した上記拡張ECCブロックのデータの誤り訂正処理を行う機能と、を含む。
なお、説明は以下の順序で行う。
1.第1の実施形態(メモリシステムの第1の構成例)
2.第2の実施形態(メモリシステムの第2の構成例)
3.第3の実施形態(メモリシステムの第3の構成例)
4.第4の実施形態(メモリシステムの第4の構成例)
5.第5の実施形態(メモリシステムの第5の構成例)
6.第6の実施形態(メモリシステムの第6の構成例)
7.第7の実施形態(メモリシステムの第7の構成例)
図1は、本発明の第1の実施形態に係る不揮発性メモリ装置を搭載したメモリシステムの構成を示す図である。
本第1の実施形態に係るメモリシステムを構成する不揮発性メモリ装置の例として、NANDフラッシュメモリで代表される数百〜数Kバイトのページ単位でしかアクセスできない不揮発性メモリ(NVM)と、バイト単位またはワード単位でアクセス可能な不揮発性ランダムアクセスメモリ(NVRAM)が存在し、ここではNVRAMでかつ、消去処理の指示をせずにデータの書き換えが可能なメモリを適用した例について説明する。
不揮発性メモリ300は、不揮発性メモリ部に相当する。
そして、本メモリシステム10は、データ読出し時に標準ECCで誤り訂正ができない場合に、拡張ECCを使用して、誤り訂正を行う機能を有する。
本第1の実施形態のメモリシステム10では、標準ECC処理と拡張ECC処理はメモリコントローラ200内で処理される。
CPU101は、データの書込みコマンドSYS_WRITEを発行し、ホストインタフェース部102を介して、コマンドと書込みデータを送信する。SYS_WRITEの追加動作モードとして、書込み中のデータに対して拡張ECCの設定を指示するオプションであるOPT_ESETを含む。
CPU101は、データの読出しコマンドSYS_READを発行し、ホストインタフェース部102を介して、コマンドを送信し、読出しデータを受信する。受信したデータは標準ECCによって訂正済みである。SYS_READの追加動作モードとして、ECCによる訂正済みデータの書き戻しを指示するオプションであるOPT_OWRTBを含む。
CPU101は、拡張ECCを生成・保存する拡張ECC設定コマンドEECC_SETを発行し、ホストインタフェース部102を介して、コマンドとデータの先頭アドレスを送信する。拡張ECCを設定されたデータは、SYS_READによるデータ読出し時に標準ECCでは訂正不可能な誤りも拡張ECCを使って訂正処理される。
CPU101は、拡張ECC読出しコマンドEECC_GETを発行し、ホストインタフェース部102を介して、コマンドとデータの先頭アドレスを送信し、設定済みの拡張ECC情報を受信する。
CPU101は、拡張ECC消去コマンドEECC_CLRを発行し、ホストインタフェース部102を介して、コマンドと拡張ECCを消去するデータの先頭アドレスを送信する。
上記データの先頭アドレスによって拡張ECCブロック230が指定される。
不揮発性メモリ制御部202は、制御部205および標準・拡張ECC処理部206を含んで構成される。
標準・拡張ECC処理部206は、標準ECC処理部と拡張ECC処理部の機能を併せ持つ。
制御部205は、書込みコマンドMEM_WRITEを発行し、メモリインタフェース部204を介してコマンドと不揮発性メモリ300への書込みデータを送信する。
制御部205は、データの読出しコマンドMEM_READを発行し、メモリインタフェース部204を介してコマンドを送信し、不揮発性メモリ300からの読出しデータを受信する。
制御部205は、拡張ECC書込みコマンドEECC_WRITEを発行し、メモリインタフェース部204を介して、コマンドと不揮発性メモリ300の拡張ECC領域への書込みデータを送信する。
制御部205は、拡張ECC読出しコマンドEECC_READを発行し、メモリインタフェース部204を介して、コマンドを送信し、不揮発性メモリ300の拡張ECC領域からの読出しデータを受信する。
制御部205は、ホスト装置100から受信したSYS_READの訂正済みデータ書き戻しオプションOPT_OWRTBが設定されていた場合、MEM_READ後、標準ECCあるいは拡張ECCで訂正済みデータを、MEM_WRITE、EECC_WRITEを使って不揮発性メモリ300に書き戻す処理を行う。
標準・拡張ECC処理部206の基本的な機能について図2に関連付けて説明する。
なお、図2ではシステムからNVMへのアクセス単位をページと呼んでいる。ページはNVRAMの場合、単一のバイト、ワードサイズであり、NANDフラッシュの場合は、書込み単位であるページに一致する。アクセス単位+標準ECCがページ210+標準ECC215に書き込まれ、アクセス単位のn倍からなるブロックを拡張ECCブロック230として、その最終ページ220を拡張ECC領域として拡張ECC220とそれを保護する標準ECC225が書き込まれる。例えばNANDフラッシュの場合は拡張ECCブロック230が消去ブロックに一致する。
標準・拡張ECC処理部206は、拡張ECCを生成する場合には、不揮発性メモリ300から拡張ECCブロック230の拡張ECC用のページ220を除く(n-1)ページ分のページデータ210および標準ECC215を読出す。
標準・拡張ECC処理部206は、上記読み出したデータを標準ECC処理部で誤り検出・訂正処理後、標準ECCを除いた(n-1)ページ分のページデータ210を拡張ECC処理部に入力し、生成した拡張ECCを、再度標準ECC処理部に入力し標準ECCデータを付加した後、不揮発性メモリ300に出力し、拡張ECCブロック230の最終ページ220+標準ECC225として書き込む。
さらに標準ECCと拡張ECCを同時に生成する場合には、標準・拡張ECC処理部206は、(n-1)ページ分の書込みデータに対して、1ページ毎にページデータ210に標準ECC215を付加して不揮発性メモリ300に出力し書き込む。
並行して標準・拡張ECC処理部206は、前記(n-1)ページ分のページデータ入力中に並行して拡張ECC220を生成し、PGn-2のページデータ210と標準ECC215を不揮発性メモリ300に書込み後、拡張ECC220に標準ECCデータ225を付加して1ページ分のデータとして不揮発性メモリ300に出力し、拡張ECCブロック230の最終ページ220として書き込む。
標準・拡張EEC生成部240において、拡張ECC設定時は、不揮発性メモリ(NVM)300から拡張ECCブロック230の全ページデータ210および標準ECC215を読出す。
そして、標準ECC検出・訂正部242で誤り検出・訂正処理後、拡張ECC生成部243に標準ECC215を除いた(n-1)ページ分のページデータ210を入力し、拡張ECC生成部243で生成した拡張ECC220はセレクタ244を通して標準ECC生成部241に入力される。
標準ECC生成部241は、拡張ECC220に標準ECCデータ225を付加して不揮発性メモリ(NVM)300に出力し、拡張ECCブロック230の最終ページとして書き込む。
標準・拡張ECC生成部240Aにおいて、拡張ECC設定時は、不揮発性メモリ(NVM)300から拡張ECCブロックの全ページデータ210および標準ECC215を読出す。
標準ECC検出訂正部242で誤り検出・訂正処理後、拡張ECC生成部243に標準ECC215を除いた(n-1)ページ分のページデータ210を、セレクタ245を通して入力し、拡張ECC生成部243で生成した拡張ECC220はセレクタ244を通して標準ECC生成部241に入力される。
標準ECC生成部241は、拡張ECC220に標準ECCデータ225を付加して不揮発性メモリ(NVM)300に出力し、拡張ECCブロック230の最終ページとして書き込む。
ページデータ210と標準ECC215と拡張ECC220を同時に設定する場合には、(n-1)ページ分の書込みデータはセレクタ244を通して標準ECC生成部に241入力され、ページデータ210に標準ECC215を付加して1ページとして不揮発性メモリ(NVM)300に出力し書き込む。
これと並行して、(n-1)ページ分のページデータ210はセレクタ245を通して拡張ECC生成部244にも入力される。
拡張ECC生成部244で生成した拡張ECC220を、セレクタ244を通して標準ECC生成部241に入力する。
そして、拡張ECC220に標準ECCデータ225を付加して拡張ECCブロック230の1ページ分のデータとして不揮発性メモリ(NVM)300に出力し、拡張ECCブロック230の最終ページとして書き込む。
不揮発性メモリ(NVM)300から読み出された拡張ECCブロック230の全ページデータ210および標準ECC215は、拡張ECC設定時においては、標準ECC検出・訂正部252に入力され、標準ECC215を除いた(n-1)ページ分の誤り訂正後のページデータ210が拡張ECC検出・訂正部252に入力される。
そして、拡張ECC検出・訂正部252でデータの誤りを検出して訂正後、ページPG0からPGn-2のページデータは、セレクタ253を通してホスト装置100に出力される。
なお、標準ECC検出・訂正部251において誤りが検出されなかったページデータ210および誤りが訂正できたページデータ210は、拡張ECC220によるデータ誤りの検出結果を待たずにホスト装置100に出力してもよい。
なお、不揮発性メモリ部としてのメモリセルアレイ302は、データ領域303、標準ECC領域304、拡張ECC領域305を含んで構成される。
不揮発性メモリ部はメモリインタフェース部301を介して、拡張ECCブロック空間230を複数持つアドレス空間としてアクセスされる。
制御部306は、受信したアクセス要求に従って、メモリセルアレイ302を制御して、データの書込み、読出しを行う。
図6は、本第1の実施形態に係る書込みコマンドSYS_WRITE受信時のメモリコントローラのフローチャートである。
制御部205は、受信したコマンドをデコードし、SYS_WRITEを受信したことを判別し、書込みデータを受信する。(ST1)そして、標準・拡張ECC処理部206でアクセス単位のデータ210毎に付加する標準ECC215を生成する(ST2)。
その後、制御部205は、書込みコマンドMEM_WRITEと一緒にデータバッファ部203にあるページデータ210と標準ECC215をメモリインタフェース部204を介して不揮発性メモリ300へ送信する(ST5)。
図7は、本第1の実施形態に係る拡張ECC設定コマンドEECC_SET受信時のメモリコントローラのフローチャートである。
ホスト装置100は、不揮発性メモリ300のデータの中から拡張ECCを設定する拡張ECCブロック230を選択して、その先頭アドレスを拡張ECC設定コマンドEECC_SETの引数として、メモリコントローラ200に送信する。
制御部205は、受信したコマンドをデコードし、EECC_SETを受信したことを判別する。制御部205は、MEM_READを使って、拡張ECCで保護する拡張ECCブロック230のデータ210と標準ECC215を不揮発性メモリ300からデータバッファ部203に順次読出す(ST11)。その際、標準ECCによる誤り検出・訂正処理が行われる(ST12)。
データバッファ部203のデータから、標準・拡張ECC処理部206で拡張ECC220を生成する。
制御部205は、拡張ECC有効フラグFLEEV402を拡張ECC220にセットし(ST13)、標準・拡張ECC処理部206では、拡張ECC220に対して標準ECC225を生成する(ST14)。制御部205は、拡張ECC書込みコマンドEECC_WRITEと拡張ECC220、標準ECC225をメモリインタフェース部204を介して、不揮発性メモリ300に出力する(ST15)。
図8は、本第1の実施形態に係る拡張ECC同時設定オプションであるOPT_ESETが付加された書込みコマンドSYS_WRITE受信時のメモリコントローラ200の動作フローチャートである。
メモリコントローラ200において、ホストインタフェース部201がSYS_WRITEと書込みデータをデータバッファ部203に受信すると、不揮発性メモリ制御部202の制御部205に通知する。
制御部205は、SYS_WRITEを受信したことを判別し(ST21)、標準・拡張ECC処理部206がアクセス単位毎に付加する標準ECCを生成し、並行して拡張ECCを生成する(ST22)。
制御部205は、書込みコマンドMEM_WRITEと一緒にデータバッファ部203にあるデータ210と標準ECC215をメモリインタフェース部204を介して不揮発性メモリ300に出力する(ST23)。
その後、制御部205は、書込みコマンドEECC_WRITEと一緒にデータバッファ部203にある拡張ECC220と標準ECC225をメモリインタフェース部204を介して、不揮発性メモリ300に出力する(ST27)。
図10は、本第1の実施形態に係る読出しコマンドSYS_READ受信時のメモリコントローラの動作フローチャートである。
メモリコントローラ200は、ホストインタフェース部201は、ホスト装置100からの読出しコマンドSYS_READを受信すると、不揮発性メモリ制御部202の制御部205に通知する。
制御部205は受信したコマンドをデコードし、読出しコマンドSYS_READを受信したことを判別し、読出しコマンドMEM_READをメモリインタフェース部204を介して不揮発性メモリ300に送信する(ST31)。
ステップST33において、誤りがなく、もしくは標準ECCで訂正可能であった場合には、制御部205はデータバッファ部203上のデータ210をホストインタフェース部201を介してホスト装置に送信する(ST34)。
ステップST35において、FLEEV402がクリア状態の場合には拡張ECCは設定されていないため、制御部205は、エラー処理をして終了する(ST42)。
ステップST35において、FLEEV402がセット状態の場合には、MEM_READを使って、不揮発性メモリ300より拡張ECCブロック230の全ページをデータバッファ部203に受信する(ST36)。この際、標準ECCで誤り訂正処理され、訂正不可能なデータはそのままデータバッファ部203に受信する(ST37)。
制御部205はEECC_READを使って、拡張ECC220と標準ECC225を読出し(ST38)、標準・拡張ECC処理部206によって、標準ECC225で拡張ECCの誤り訂正処理を行い(ST39)、拡張ECC220を使用してデータバッファ部203上のデータの誤り検出・訂正処理を行う(ST40)。ここで上記標準ECCで訂正不可能であったデータが拡張ECCによって訂正される。
ステップST41において、拡張ECCでも訂正不可能エラーがあると判別した場合には、エラー処理を行い(ST42)、処理を終了する。
また、ステップST34の処理後、制御部205は、ホスト装置100からの読出しコマンドSYS_READに訂正済みデータ書き戻しオプションOWETBが設定されているか否かの判別を行い(ST43)、設定されていた場合には、制御部205はMEM_WRITEとEECC_WRITEを使って、データバッファ部203上の訂正済みデータを不揮発性メモリ300に書き戻す(ST44)。
図11は、拡張ECCとして積符号を使用した場合の誤り検出・訂正処理を説明するための図である。
図12は、拡張ECCとして多重誤り訂正符号を使用した場合を誤り検出・訂正処理を説明するための図である。
積符号は列方向と行方向に並べられたデータのブロックに対して、列方向と行方向にそれぞれECCを計算し、行方向と列方向の訂正を繰り返すことで誤り訂正をする。
図11は、行方向と列方向がそれぞれ1誤り訂正可能な場合を例示している。行方向のECCが標準ECC領域に保存され、列方向のECCが拡張ECC領域に保存される。通常のアクセスでは標準ECCに相当する行方向のECCのみ使用される。拡張ECCは列方向と行方向のECCの両方を組み合わせたものであり、行方向のECCの値は標準ECCと重複することから、拡張ECC領域に保存する必要はない。
そこで、列C0から列Cnまで列方向の拡張ECCで誤り訂正が実施され、列方向ECCで誤りE0が訂正されるが、列Cn-1では2重誤りがあるために訂正ができない(状態STS1)。
もう一度行方向の行R0の読出しに戻ると、誤りはE1のみなので、今度は行方向のECCで訂正が行われ、行R0の誤りは全て訂正され(状態STS2)、行R0のデータが正しく読出される。
このように最初の状態(状態STS0)では誤り訂正不可能な場合でも、行・列の誤り訂正を繰り返すことで、誤り訂正をできることが積符号の特徴である。
本実施形態では、行方向のECCは標準ECCで処理され、列方向のECCは拡張ECCで処理される。行方向と列方向で同じ誤り訂正方法を使用しても、訂正能力を高めることができ、標準ECCと拡張ECCの生成、訂正処理は一つの回路で実行できるといったメリットもある。
図12は、たとえば、標準ECCに1誤り訂正が可能なハミング符号を使い、拡張ECCには4重誤り訂正が可能なBCH符号を使用した場合を例示している。
行R0以外はすべて1誤りなので、標準ECCで誤り訂正が実行される(状態STS11)。
次に、拡張ECCで保護されるデータには3重誤りがあり、拡張ECCは4重誤りまで訂正可能なので、3重誤りは訂正される(状態STS12)。
図13は、本第1の実施形態に係る拡張ECC削除コマンドEECC_CLR受信時のメモリコントローラ200の動作フローチャートである。
メモリコントローラ200のホストインタフェース部201は、コマンドを受信すると、不揮発性メモリ制御部202の制御部205に通知する。制御部205は、受信したコマンドをデコードし、拡張ECC消去コマンドEECC_CLRを受信したことを判別する。
制御部205は、拡張ECC有効フラグFLEEV402をクリアしたデータを用意する(ST51)。
制御部205は、メモリインタフェース部204を介して、不揮発性メモリ300に拡張ECC書込みコマンドEECC_WRITEを送信し、指定した拡張ECC領域305の拡張ECCブロックの拡張ECC220をクリアする(ST52)。
図14は、本発明の第2の実施形態に係る不揮発性メモリ装置を搭載したメモリシステムの構成を示す図である。
第1の実施形態に係るメモリシステム10においては、標準ECC処理および拡張ECC処理をメモリコントローラ200で処理される。
これに対して、本第2の実施形態に係るメモリシステム10Aにおいては、標準ECC処理は不揮発性メモリ300Aで処理される。
これに対応して、メモリシステム10Aにおいて、メモリコントローラ200Aの不揮発性メモリ制御部202Aに、標準・拡張ECC処理部に代わり拡張ECC処理部207が配置されている。
そして、不揮発性メモリ300Aに、データバッファ部307、および標準ECC処理部308が配置されており、制御部306によって制御される。
メモリコントローラ200Aは不揮発性メモリ300Aに対して、MEM_WRITE,MEM_READとEECC_READ、EECC_WRITEを発行するが、データ転送時に標準ECCが付加されないことが、第1の実施形態と異なる。具体的には、
MEM_WRITEによる書込み時、受信データには標準ECCは含まれず、不揮発性メモリ300A内部で標準ECCを付加して保存する。
MEM_READによる読出し時、標準ECCで訂正後のデータをメモリコントローラ200Aに送信する。
EECC_WRITEによる拡張ECC保存時、受信する拡張ECC情報には標準ECCは含まれず、不揮発性メモリ300A内部で標準ECCを付加して保存する。
EECC_READによる拡張ECC読出し時、標準ECCで訂正後の拡張ECCをメモリコントローラ200A送信する。
次に、不揮発性メモリ300Aでの、MEM_WRITEによるデータ書込み時の標準ECCの生成と、MEM_READによるデータ読出し時の誤り検出・訂正の動作について説明する。
制御部306は、コマンドをデコードし、MEM_WRITEであることを判別し、データバッファ部307の書込みデータから標準ECCを生成し、データをデータ領域303へ書込み、標準ECCを標準ECC領域304に書き込む。
制御部306は、コマンドをデコードし、MEM_READであることを判別し、データ領域303と標準ECC領域304からデータバッファ部307へ読み込み、標準ECC処理部によってデータの誤り検出・訂正処理を行った後に、メモリインタフェース部301を介してメモリコントローラ200Aへデータを送信する。もし訂正不可能エラーが発生した場合には、メモリコントローラ200Aへ通知し、訂正処理前のデータをメモリインタフェース部301を介してメモリコントローラ200Aへ送信する。
図15は、本第2の実施形態に係るSYS_READ実行時のメモリコントローラ200Aの動作フローチャートである。
第1の実施形態である図10と比べると、ステップST32A、ST33A、ST37A、ST39Aの処理が異なる。その他の処理は第1の実施形態と同じである。
ステップST33Aで、メモリコントローラ200Aは標準ECCの訂正不可能エラーの発生の有無を不揮発性メモリ300Aから受信し、拡張ECCの処理を実施するかを決める。
不揮発性メモリ300A内の標準ECC処理部で訂正不可能エラーが発生したデータは、訂正前のデータをメモリコントローラ200Aへ出力する。
図16は、本発明の第3の実施形態に係る不揮発性メモリ装置を搭載したメモリシステムの構成を示す図である。
第1の実施形態に係るメモリシステム10においては、標準ECC処理および拡張ECC処理をメモリコントローラ200で行っている。
これに対して、本第3の実施形態に係るメモリシステム10Bにおいては、標準ECC処理はメモリコントローラ200Bで処理され、拡張ECC処理はホスト装置100Bで処理される。
これに対応して、メモリシステム10Bにおいて、メモリコントローラ200Bの不揮発性メモリ制御部202Bに、標準・拡張ECC処理部に代わり標準ECC処理部208が配置され、ホスト装置100Bに、拡張ECC処理部103が配置され、CPU101によって制御される。
ホスト装置100Bの拡張ECC処理部103は、その実現手段としてハードウェアでも、ソフトウェアでもよい。
ホスト装置100Bはメモリコントローラ200Bに対して、SYS_WRITE、SYS_READとEECC_SET、EECC_GET、EECC_CLRを発行するが、データアクセスだけでなく、拡張ECC処理のためにこれらのコマンドを発行することが、第1の実施形態と異なる。
SYS_WRITEによる書込みは、第1の実施形態と動作は変わらない。
SYS_READによる読出しは、メモリコントローラ200Bが標準ECCによる訂正不可能エラーが発生したことを通知する機能を持つことが、第1の実施形態と異なる。ホスト装置100Bはメモリコントローラ200Bから標準ECC訂正不可能エラーを受信した場合に、拡張ECCブロック230のページデータ210をSYS_READを使って読出し、拡張ECCによる訂正処理を行う。
EECC_SETによる拡張ECC設定は、ホスト装置100Bがコマンドとともに図9にあるようなフォーマットの拡張ECCを加えて、メモリコントローラ200Bに送信することが、第1の実施形態と異なる。
EECC_GETによる拡張ECC読出しは、第1の実施形態と動作は変わらない。
EECC_CLRによる拡張ECC削除は、第1の実施形態と動作は変わらない。
図17(A)および(B)は、本第3の実施形態に係るEECC_SET処理時の、ホスト装置100Bおよびメモリコントローラ200Bの動作フローチャートである。
図17(A)はホスト装置100Bの動作を、図17(B)はメモリコントローラ200Bの動作を示している。
読出したデータから拡張ECCを生成し、さらに拡張ECC有効フラグFLEEV402を設定し(ST62)、EECC_SETと共にメモリコントローラ200Bに送信する(ST63)。
制御部205は、受信したコマンドをデコードし、EECC_SETを受信したことを判別する。そして、制御部205は、受信した拡張ECC403とFLEEV402を図9にあるフォーマットに整え(ST71)、標準ECCを計算し、不揮発性メモリ300にEECC_WRITEと共に送信する(ST72)。
ホスト装置100BはステップST31B、ST32Bで、SYS_READを使ってデータを読み込む。ST33Bでメモリコントローラ200Bより標準ECC訂正不可能エラーの発生の通知を受けた場合、拡張ECCによる訂正処理(ST36B〜ST40)を試みる。
拡張ECCブロック230のページデータ210は、SYS_READを使用して読み込まれる。(ST36B)その際受信データ210は標準ECC215で訂正済みであり、訂正不可能だった場合には訂正前のデータ210を受信する(ST37B)。次に拡張ECC220を読み込む為のEECC_GETがメモリコントローラ200Bに送信され(ST38B),標準ECCで訂正済みの拡張ECC220を受信する。(ST39B)以降のステップST40、ST41はホスト装置100Bが処理を実行すること以外は第1の実施形態と同じである。
図19は、本発明の第4の実施形態に係る不揮発性メモリ装置を搭載したメモリシステムの構成を示す図である。
すなわち、第1の実施形態に係るメモリシステム10においては、標準ECC処理および拡張ECC処理をメモリコントローラ200で行っている。
これに対して、本第4の実施形態に係るメモリシステム10Cにおいては、標準ECC処理および拡張ECC処理は不揮発性メモリ300Cで処理される。
これに対応して、メモリシステム10Cにおいて、メモリコントローラ200Cの不揮発性メモリ制御部202Cに、標準・拡張ECC処理部は配置されていない。
そして、不揮発性メモリ300Cに、データバッファ部307、および標準・拡張ECC処理部309が配置されている。
図20は、本発明の第5の実施形態に係る不揮発性メモリ装置を搭載したメモリシステムの構成を示す図である。
すなわち、第1の実施形態に係るメモリシステム10においては、標準ECC処理および拡張ECC処理をメモリコントローラ200で行っている。
これに対して、本第5の実施形態に係るメモリシステム10Dにおいては、標準ECC処理は不揮発性メモリ300Dで処理され、拡張ECC処理はホスト装置100Dで処理される。
これに対応して、メモリシステム10Dにおいて、メモリコントローラ200Dの不揮発性メモリ制御部202Dに、標準・拡張ECC処理部は配置されていない。
そして、不揮発性メモリ300Dに、データバッファ部307、および標準ECC処理部308が配置され、ホスト装置100Dに拡張ECC処理部103が配置されている。
標準ECCの処理は第2の実施形態と同じで、メモリコントローラ200Dは拡張ECCの処理機能がなく、不揮発性メモリ300Dから出力される標準ECC訂正不可能エラーをホスト装置100Dに通知する機能を有する。
拡張ECCの処理は第3の実施形態と同じである。
図21は、本発明の第6の実施形態に係る不揮発性メモリ装置を搭載したメモリシステムの構成を示す図である。
すなわち、第1の実施形態に係るメモリシステム10においては、標準ECC処理および拡張ECC処理をメモリコントローラ200で行っている。
これに対して、本第6の実施形態に係るメモリシステム10Dにおいては、標準ECC処理および拡張ECC処理はホスト装置100Eで処理される。
これに対応して、メモリシステム10Eにおいて、メモリコントローラ200Eの不揮発性メモリ制御部202Eに、標準・拡張ECC処理部は配置されていない。
そして、ホスト装置100Eに、拡張ECC処理部103および標準ECC処理部104が配置されている。また、ホスト装置100Eの拡張ECC処理部は標準ECC処理部で訂正不可能エラーが発生した場合に必要となる処理であるため、ソフトウェアで実現されていてもよい。
図22は、本発明の第7の実施形態に係る不揮発性メモリ装置を搭載したメモリシステムの構成を示す図である。
すなわち、第1の実施形態に係るメモリシステム10においては、ホスト装置100とメモリコントローラ200が別々に形成されている。
これに対して、本第7の実施形態に係るメモリシステム10Fにおいては、メモリコントローラ200Fがホスト装置100Fに含まれるように形成されている。
これに対応して、本第7の実施形態に係るメモリシステム10Fにおいては、ホストインタフェース部102,201が不要となっている。
その他の構成、機能は第1の実施形態と同様である。
Claims (19)
- データを保存するデータ領域と、標準エラー訂正コード(ECC)を保存するための標準ECC領域と、拡張ECCを保存する拡張ECC領域とを含む不揮発性メモリ部と、
標準ECCを生成し、上記データ領域のアクセス単位毎に誤り訂正処理を行う標準ECC処理部と、
拡張ECCを生成し、上記データ領域のアクセス単位の整数倍のデータ毎に誤り訂正処理を行う拡張ECC処理部と、
上記不揮発性メモリ部へのアクセス、並びに上記標準ECC処理部および上記拡張ECC処理部の処理を制御する制御部と、を有し、
上記制御部は、
書込み指示を受けて、受信したデータから上記標準ECC処理部によりアクセス単位ごとに標準ECCを生成し、データを上記不揮発性メモリ部のデータ領域に書込み、生成した標準ECCを標準ECC領域に書込む機能と、
読出し指示を受けて、上記不揮発性メモリ部のデータ領域からデータと、標準ECC領域から標準ECCを読出し、上記標準ECC処理部によりデータのアクセス単位ごとに誤り検出および訂正を行い、訂正後のデータを外部に送信する読出し機能と、
外部からの指示を受けて、上記不揮発性メモリ部のデータ領域から、指示されたアドレスを先頭とするアクセス単位の整数倍のデータを読出して、上記拡張ECC処理部により拡張ECCを生成し、上記拡張ECC領域に書込む機能と、
外部からの指示を受けて、上記不揮発性メモリ部のデータ領域から、指示されたアドレスを先頭とするアクセス単位の整数倍のデータと、拡張ECC領域から拡張ECCを読出し、上記拡張ECC処理部によりデータの誤り検出及び訂正を行い、訂正後のデータを外部に送信する機能と、
を含む不揮発性メモリ装置。 - 上記制御部は、
外部からの指示を受けて、上記不揮発性メモリ部の拡張ECC領域に保存された拡張ECCを削除する機能を有する
請求項1記載の不揮発性メモリ装置。 - 上記制御部は、
外部からの指示を受けて、上記不揮発性メモリ部のデータ領域へ、指示されたアドレスアクセス単位の整数倍のデータを書き込む際に、上記拡張ECC処理部により拡張ECCを生成し、生成した拡張ECCを上記拡張ECC領域に書込む
請求項1から2のいずれか一に記載の不揮発性メモリ装置。 - 上記制御部は、
上記拡張ECCを上記拡張ECC領域に書込むと同時に、上記拡張ECCから生成した標準ECCを上記標準ECC領域に書込む、
請求項1から3のいずれか一に記載の不揮発性メモリ装置。 - 上記制御部は、
外部からの指示を受けて、上記不揮発性メモリ部のデータ領域から、指示されたアドレスを先頭とするアクセス単位の整数倍のデータと、拡張ECC領域から拡張ECCを読出し、上記拡張ECC処理部によりデータの誤り検出及び訂正を行ったデータを、上記不揮発性メモリ部のデータ領域に書込む機能を含む
請求項1から4のいずれか一に記載の不揮発性メモリ装置。 - 上記制御部は、
拡張ECC領域に保存された値が所定の固定値と一致した場合、当該値が保存された領域は未使用であると判断する
請求項1から5のいずれか一に記載の不揮発性メモリ装置。 - 前記固定値は、保存領域の特定のビットを未使用であることを示すフラグにより形成される
請求項6記載の不揮発性メモリ装置。 - データを保存するデータ領域と、標準エラー訂正コード(ECC)を保存するための標準ECC領域と、拡張ECCを保存する拡張ECC領域とを含む不揮発性メモリ部に対するアクセスを制御する制御部と、
標準ECCを生成し、上記データ領域のアクセス単位毎に誤り訂正処理を行う標準ECC処理部と、
拡張ECCを生成し、上記データ領域のアクセス単位の整数倍のデータ毎に誤り訂正処理を行う拡張ECC処理部と、を有し、
上記制御部は、
書込み指示を受けて、受信したデータから上記標準ECC処理部によりアクセス単位ごとに標準ECCを生成し、データを上記不揮発性メモリ部のデータ領域に書込み、生成した標準ECCを標準ECC領域に書込む機能と、
読出し指示を受けて、上記不揮発性メモリ部のデータ領域からデータと、標準ECC領域から標準ECCを読出し、上記標準ECC処理部によりアクセス単位ごとにデータの誤り検出および訂正を行い、訂正後のデータを外部に送信する機能と、
外部からの指示を受けて、上記不揮発性メモリ部のデータ領域から、指示されたアドレスを先頭とするアクセス単位の整数倍のデータを読出して、上記拡張ECC処理部により拡張ECCを生成し、上記拡張ECC領域に書込む機能と、
外部からの指示を受けて、上記不揮発性メモリ部のデータ領域から、指示されたアドレスを先頭とするアクセス単位の整数倍のデータと、拡張ECC領域から拡張ECCを読出し、上記拡張ECC処理部によりデータの誤り検出及び訂正を行い、訂正後のデータを外部に送信する機能と、を含む
メモリコントローラ。 - 上記制御部は、
上記拡張ECCを上記拡張ECC領域に書込むと同時に、上記拡張ECCから生成した標準ECCを上記標準ECC領域に書込む、
請求項8に記載のメモリコントローラ。 - データを保存するデータ領域と、標準エラー訂正コード(ECC)を保存するための標準ECC領域と、拡張ECCを保存する拡張ECC領域と、標準ECCを生成し、上記データ領域のアクセス単位毎に誤り訂正処理を行う標準ECC処理部と、
を含む不揮発性メモリ部に対するアクセスを制御する制御部と、
拡張ECCを生成し、上記データ領域のアクセス単位の整数倍のデータ毎に誤り訂正処理を行う拡張ECC処理部と、を有し、
上記制御部は、
書込み指示を受けて、受信したデータを上記不揮発性メモリ部のデータ領域に書込む機能と、
読出し指示を受けて、上記不揮発性メモリ部のデータ領域から標準ECCで誤り訂正後のデータを読出し、外部に送信する機能と、
外部からの指示を受けて、上記不揮発性メモリ部のデータ領域から、指示されたアドレスを先頭とするアクセス単位の整数倍のデータを読出して、上記拡張ECC処理部により拡張ECCを生成し、上記拡張ECC領域に書込む機能と、
外部からの指示を受けて、上記不揮発性メモリ部のデータ領域から、指示されたアドレスを先頭とするアクセス単位の整数倍のデータと、拡張ECC領域から拡張ECCを読出し、上記拡張ECC処理部によりデータの誤り検出及び訂正を行い、訂正後のデータを外部に送信する機能と、を含む
メモリコントローラ。 - データを保存するデータ領域と、標準エラー訂正コード(ECC)を保存するための標準ECC領域と、拡張ECCを保存する拡張ECC領域とを含む不揮発性メモリ部と、
標準ECCを生成し、上記不揮発性メモリ部のアクセス単位毎に誤り訂正処理を行う標準ECC処理部と、
拡張ECCを生成し、上記アクセス単位の整数倍のデータ毎に誤り訂正処理を行う拡張ECC処理部と、
上記不揮発性メモリ部へのアクセス、並びに上記標準ECC処理部および上記拡張ECC処理部の処理を制御するメモリコントローラと、
上記メモリコントローラに対して、少なくとも書込みを指示する機能および読み出しを指示する機能を含むホスト装置と、を有し、
上記メモリコントローラは、
上記ホスト装置からの書込み指示を受けて、受信したデータから上記標準ECC処理部によりアクセス単位ごとに標準ECCを生成し、データを上記不揮発性メモリ部のデータ領域に書込み、生成した標準ECCを標準ECC領域に書込む機能と、
上記ホスト装置からの読出し指示を受けて、上記不揮発性メモリ部のデータ領域からデータと標準ECC領域から標準ECCを読出し、上記標準ECC処理部によりアクセス単位ごとにデータの誤り検出および訂正を行い、訂正後のデータを外部に送信する読出し機能、を含む
メモリシステム。
さらに上記メモリコントローラは、
上記ホスト装置からの指示を受けて、上記不揮発性メモリ部のデータ領域から、指示されたアドレスを先頭とするアクセス単位の整数倍のデータを読出して、上記拡張ECC処理部により拡張ECCを生成し、上記拡張ECC領域に書込む機能と、
上記ホスト装置からの指示を受けて、上記不揮発性メモリ部のデータ領域から、指示されたアドレスを先頭とするアクセス単位の整数倍のデータと、拡張ECC領域から拡張ECCを読出し、上記拡張ECC処理部によりデータの誤り検出及び訂正を行い、訂正後のデータを外部に送信する機能と、を含む
メモリシステム。 - 上記ホスト装置は、
拡張ECCを追加するデータのアドレスをメモリコントローラに指定する機能と、追加した拡張ECCを削除するデータのアドレスを指定する機能とを含み、
上記メモリコントローラは、
上記ホスト装置の指定に従って拡張ECCの追加または削除制御を行う
請求項11に記載のメモリシステム。 - 上記ホスト装置は、
上記不揮発性メモリ部のデータ領域に保存したデータの中で、長期間の保存に備え保護が必要なデータに対し、拡張ECCの追加を上記メモリコントローラに指示し、
上記メモリコントローラは、
上記ホスト装置からの指示を受けて、上記不揮発性メモリ部のデータ領域から、指示されたアドレスを先頭とするアクセス単位の整数倍のデータを読出して、上記拡張ECC処理部により拡張ECCを生成し、生成した拡張ECCを上記拡張ECC領域に書込む
請求項11から12のいずれか一に記載のメモリシステム。 - 上記メモリコントローラは、
拡張ECCが設定されたデータを読出す場合には、
まず上記標準ECCを使用しアクセス単位ごとにデータの確認および訂正を行い、
標準ECCで訂正が不可能であった場合には、拡張ECCを使用し、拡張ECCで訂正されるデータの誤り検出および訂正を行う
請求項11から13のいずれか一に記載のメモリシステム。 - 上記ホスト装置は、
上記メモリコントローラに、標準ECCおよび拡張ECCで訂正が発生した場合に、訂正後のデータで、訂正が発生した元のデータを書換えることを指示可能であり、
上記メモリコントローラは、
上記ホスト装置の指示を受けて、訂正後のデータで元のデータの書換えのための制御を行う
請求項11から14のいずれか一に記載のメモリシステム。 - 上記メモリコントローラは、
拡張ECC領域に保存された値が所定の固定値と一致した場合、当該値が保存された領域は未使用であると判断する
請求項11から15のいずれか一に記載のメモリシステム。 - 上記固定値は、保存領域の特定のビットを未使用であることを示すフラグにより形成される
請求項16記載のメモリシステム。 - 上記標準ECC処理部および上記拡張ECC処理部は、
上記メモリコントローラ、上記不揮発性メモリ部、および上記ホスト装置のいずれかに配置される
請求項11から17のいずれか一に記載のメモリシステム。 - 上記ホスト装置が、
上記メモリコントローラの機能を含む、
請求項11から18のいずれか一に記載のメモリシステム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010171690A JP5540969B2 (ja) | 2009-09-11 | 2010-07-30 | 不揮発性メモリ装置、メモリコントローラ、およびメモリシステム |
US12/874,914 US8438457B2 (en) | 2009-09-11 | 2010-09-02 | Nonvolatile memory apparatus, memory controller, and memory system |
CN201010275225XA CN102023901B (zh) | 2009-09-11 | 2010-09-06 | 非易失性存储器装置、存储器控制器和存储器系统 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009210433 | 2009-09-11 | ||
JP2009210433 | 2009-09-11 | ||
JP2010171690A JP5540969B2 (ja) | 2009-09-11 | 2010-07-30 | 不揮発性メモリ装置、メモリコントローラ、およびメモリシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011081776A JP2011081776A (ja) | 2011-04-21 |
JP5540969B2 true JP5540969B2 (ja) | 2014-07-02 |
Family
ID=43731671
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010171690A Expired - Fee Related JP5540969B2 (ja) | 2009-09-11 | 2010-07-30 | 不揮発性メモリ装置、メモリコントローラ、およびメモリシステム |
Country Status (3)
Country | Link |
---|---|
US (1) | US8438457B2 (ja) |
JP (1) | JP5540969B2 (ja) |
CN (1) | CN102023901B (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10776019B2 (en) | 2017-09-20 | 2020-09-15 | Toshiba Memory Corporation | Memory system and method of controlling nonvolatile memory |
US10795761B2 (en) | 2018-03-15 | 2020-10-06 | Toshiba Memory Corporation | Memory system and method of controlling non-volatile memory |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101803970B1 (ko) * | 2011-03-16 | 2017-12-28 | 삼성전자주식회사 | 컨텐트를 구성하는 장치 및 방법 |
KR101843918B1 (ko) | 2011-04-25 | 2018-04-02 | 삼성전자주식회사 | 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 그 동작 방법 |
JP2012252558A (ja) * | 2011-06-03 | 2012-12-20 | Sony Corp | 不揮発性メモリ、メモリコントローラ、不揮発性メモリのアクセス方法、およびプログラム |
JP5845876B2 (ja) * | 2011-12-20 | 2016-01-20 | ソニー株式会社 | 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法 |
US8898541B2 (en) | 2011-11-30 | 2014-11-25 | Sony Corporation | Storage controller, storage device, information processing system, and storage controlling method |
KR101889362B1 (ko) * | 2012-02-06 | 2018-09-20 | 에스케이하이닉스 주식회사 | 비휘발성 메모리 장치 및 그 동작 방법, 이를 이용하는 데이터 처리 시스템 |
US8954825B2 (en) | 2012-03-06 | 2015-02-10 | Micron Technology, Inc. | Apparatuses and methods including error correction code organization |
JP2014086062A (ja) * | 2012-10-29 | 2014-05-12 | Sony Corp | 記憶制御装置、記憶装置、情報処理システム、および、記憶制御方法 |
US9146809B2 (en) * | 2013-10-07 | 2015-09-29 | Macronix International Co., Ltd. | ECC method for double pattern flash memory |
JP6028709B2 (ja) | 2013-10-18 | 2016-11-16 | ソニー株式会社 | 記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法 |
CN104637542B (zh) * | 2013-11-11 | 2018-03-13 | 旺宏电子股份有限公司 | 储存对应于数据的错误更正码的存储器装置及其操作方法 |
US9535785B2 (en) | 2014-01-17 | 2017-01-03 | Macronix International Co., Ltd. | ECC method for flash memory |
US9542268B2 (en) * | 2014-01-29 | 2017-01-10 | Macronix International Co., Ltd. | Dynamic data density ECC |
US9520901B2 (en) | 2014-03-06 | 2016-12-13 | Kabushiki Kaisha Toshiba | Memory controller, memory system, and memory control method |
US9772900B2 (en) | 2014-07-10 | 2017-09-26 | Samsung Electronics Co., Ltd. | Tiered ECC single-chip and double-chip Chipkill scheme |
JP2016062463A (ja) * | 2014-09-19 | 2016-04-25 | 株式会社東芝 | メモリシステム、誤り訂正装置、および誤り訂正方法 |
US9558066B2 (en) * | 2014-09-26 | 2017-01-31 | Intel Corporation | Exchanging ECC metadata between memory and host system |
US10289475B2 (en) | 2015-01-21 | 2019-05-14 | Toshiba Memory Corporation | Memory system |
JP6486723B2 (ja) | 2015-01-21 | 2019-03-20 | 東芝メモリ株式会社 | メモリシステムおよび処理装置 |
US10063263B2 (en) * | 2015-05-20 | 2018-08-28 | International Business Machines Corporation | Extended error correction coding data storage |
US9845268B2 (en) * | 2016-05-23 | 2017-12-19 | Kennametal Inc. | Sintered ceramic bodies and applications thereof |
US10290353B2 (en) * | 2016-09-06 | 2019-05-14 | Western Digital Technologies, Inc. | Error mitigation for 3D NAND flash memory |
KR102611860B1 (ko) * | 2018-11-05 | 2023-12-11 | 에스케이하이닉스 주식회사 | 디코딩 회로 및 이를 포함하는 반도체 메모리 장치 |
KR20200078830A (ko) * | 2018-12-24 | 2020-07-02 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 모듈 |
US11514174B2 (en) * | 2019-01-23 | 2022-11-29 | Micron Technology, Inc. | Memory devices with cryptographic components |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08166910A (ja) | 1994-12-15 | 1996-06-25 | Nec Corp | データ修復方法 |
JPH09167120A (ja) | 1995-12-15 | 1997-06-24 | Denso Corp | 記憶装置の誤り訂正装置 |
JP2001117825A (ja) | 1999-10-20 | 2001-04-27 | Sharp Corp | データ記録装置およびデータ再生装置 |
JP2003196142A (ja) * | 2001-12-25 | 2003-07-11 | Sony Corp | ライトワンス型メモリ装置及びファイル管理方法 |
JP2004348824A (ja) | 2003-05-21 | 2004-12-09 | Toshiba Corp | Eccエンコード方法、eccエンコード装置 |
JP4586469B2 (ja) * | 2004-09-15 | 2010-11-24 | ソニー株式会社 | メモリ制御装置、メモリ制御方法、プログラム |
JP2006195569A (ja) * | 2005-01-11 | 2006-07-27 | Sony Corp | 記憶装置 |
US20060256615A1 (en) | 2005-05-10 | 2006-11-16 | Larson Thane M | Horizontal and vertical error correction coding (ECC) system and method |
US7568135B2 (en) * | 2006-05-15 | 2009-07-28 | Apple Inc. | Use of alternative value in cell detection |
JP2008139908A (ja) | 2006-11-29 | 2008-06-19 | Matsushita Electric Ind Co Ltd | メモリ制御装置、コンピュータシステム及びデータ再生記録装置 |
JP4925301B2 (ja) * | 2007-02-07 | 2012-04-25 | 株式会社メガチップス | 半導体メモリシステム |
JP4564520B2 (ja) * | 2007-08-31 | 2010-10-20 | 株式会社東芝 | 半導体記憶装置およびその制御方法 |
JP4538034B2 (ja) * | 2007-09-26 | 2010-09-08 | 株式会社東芝 | 半導体記憶装置、及びその制御方法 |
US7941696B2 (en) * | 2009-08-11 | 2011-05-10 | Texas Memory Systems, Inc. | Flash-based memory system with static or variable length page stripes including data protection information and auxiliary protection stripes |
-
2010
- 2010-07-30 JP JP2010171690A patent/JP5540969B2/ja not_active Expired - Fee Related
- 2010-09-02 US US12/874,914 patent/US8438457B2/en active Active
- 2010-09-06 CN CN201010275225XA patent/CN102023901B/zh not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10776019B2 (en) | 2017-09-20 | 2020-09-15 | Toshiba Memory Corporation | Memory system and method of controlling nonvolatile memory |
US10795761B2 (en) | 2018-03-15 | 2020-10-06 | Toshiba Memory Corporation | Memory system and method of controlling non-volatile memory |
Also Published As
Publication number | Publication date |
---|---|
CN102023901B (zh) | 2013-06-05 |
US8438457B2 (en) | 2013-05-07 |
CN102023901A (zh) | 2011-04-20 |
US20110066923A1 (en) | 2011-03-17 |
JP2011081776A (ja) | 2011-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5540969B2 (ja) | 不揮発性メモリ装置、メモリコントローラ、およびメモリシステム | |
US8707135B2 (en) | Method and system of dynamic data storage for error correction in a memory device | |
JP5605238B2 (ja) | メモリシステムおよびその動作方法 | |
JP2015018451A (ja) | メモリコントローラ、記憶装置およびメモリ制御方法 | |
JP5426711B2 (ja) | メモリコントローラ及び不揮発性記憶装置 | |
US8555143B2 (en) | Flash memory controller and the method thereof | |
US20140380119A1 (en) | Memory controller | |
JP2011198272A (ja) | 半導体記憶装置および半導体記憶装置の制御方法 | |
US9003153B2 (en) | Method of storing blocks of data in a plurality of memory devices in a redundant manner, a memory controller and a memory system | |
US20100241932A1 (en) | Error detector/corrector, memory controller, and semiconductor memory device | |
JP2012137994A (ja) | メモリシステムおよびその制御方法 | |
US20130117632A1 (en) | Storage control apparatus | |
KR100688549B1 (ko) | 비휘발성 메모리를 지원하는 온더플라이 bcc 코덱시스템 및 방법 | |
TWI802324B (zh) | 異常斷電恢復方法、記憶體控制電路單元以及記憶體儲存裝置 | |
JP2009301194A (ja) | 半導体記憶装置の制御システム | |
TW202040370A (zh) | 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置 | |
CN109491828B (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
JP2010079856A (ja) | 記憶装置およびメモリ制御方法 | |
JP4357305B2 (ja) | 外部記憶装置 | |
US10922025B2 (en) | Nonvolatile memory bad row management | |
CN111258498A (zh) | 一种flash存储器管理方法 | |
US11604586B2 (en) | Data protection method, with disk array tags, memory storage device and memory control circuit unit | |
KR20140101626A (ko) | 솔리드 스테이트 드라이브의 데이터 처리 방법 | |
CN111597126B (zh) | 存取方法 | |
CN111724851B (zh) | 数据保护方法、存储器存储装置及存储器控制电路单元 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130710 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140214 |
|
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: 20140408 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140421 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5540969 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
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 |
|
LAPS | Cancellation because of no payment of annual fees |