JP2011081776A - 不揮発性メモリ装置、メモリコントローラ、およびメモリシステム - Google Patents

不揮発性メモリ装置、メモリコントローラ、およびメモリシステム Download PDF

Info

Publication number
JP2011081776A
JP2011081776A JP2010171690A JP2010171690A JP2011081776A JP 2011081776 A JP2011081776 A JP 2011081776A JP 2010171690 A JP2010171690 A JP 2010171690A JP 2010171690 A JP2010171690 A JP 2010171690A JP 2011081776 A JP2011081776 A JP 2011081776A
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.)
Granted
Application number
JP2010171690A
Other languages
English (en)
Other versions
JP5540969B2 (ja
Inventor
Junichi Koshiyama
潤一 越山
Kenichi Nakanishi
健一 中西
Keiichi Tsutsui
敬一 筒井
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.)
Sony Corp
Original Assignee
Sony 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
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2010171690A priority Critical patent/JP5540969B2/ja
Priority to US12/874,914 priority patent/US8438457B2/en
Priority to CN201010275225XA priority patent/CN102023901B/zh
Publication of JP2011081776A publication Critical patent/JP2011081776A/ja
Application granted granted Critical
Publication of JP5540969B2 publication Critical patent/JP5540969B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/35Unequal 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/356Unequal error protection [UEP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] 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/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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic 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/152Bose-Chaudhuri-Hocquenghem [BCH] 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/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/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes

Abstract

【課題】不揮発性メモリは長期保存データの信頼性を改善するためにECCを使用するが、標準的なECCで想定するよりも長期にわたる保存データが存在した場合には、訂正不可能エラーの発生による、データの信頼性低下の問題があった。標準とするECCのエラー検出・訂正能力を強化することは、ECCコードの増大によりアクセス性能低下、実効容量低下の問題があった。
【解決手段】不揮発性メモリ300に保存するデータに対して、メモリコントローラ200に標準ECCと拡張ECCの2つのECC処理部206を持ち、ホスト装置100が長期保存のために拡張ECCが必要なデータを指示することで、長期保存特性を改善し、拡張ECCは標準ECCの整数倍のデータに対して付加することで、ECCコードの増大による影響を最小限にすることが可能な不揮発性メモリ装置、メモリコントローラ、およびメモリシステムを提供する。
【選択図】図1

Description

本発明は、誤り訂正機能を有する不揮発性メモリ装置、メモリコントローラ、およびメモリシステムに関するものである。
不揮発性メモリ(NVM)は、ページと呼ぶ複数のバイト数またはワード数からなるデータを単位としてアクセス可能であり電源を切った後もデータ保持可能であることから、セクタ単位にアクセスを行うストレージシステムに広く使われている。このようなNVMの代表として、NANDフラッシュがある。
近年、揮発性ランダムアクセスメモリ(RAM)であるSRAMやDRAMのように、単一のバイト、ワードを単位としてランダムアクセス可能でありながら、電源を切った後もデータ保持可能な不揮発性ランダムアクセスメモリ(NVRAM)の開発、製品化が進んでいる。
このNVRAMとして、FeRAM、PCRAMやReRAMがあげられる。
NVMでは、データの信頼性をあげるために誤り訂正符号(エラー訂正コード:ECC)が使われている。アクセス速度への影響を小さくするためには、ECCも高速な方式が必要となる。このような方式のECCとして、たとえば、1ビット誤り訂正・2ビット誤り検出が可能な拡張ハミング符号などがあげられる。
NVRAMでは、バイト単位またはワード単位の小さな単位で、DRAM並みの高速なランダムアクセス性能が求められるために、ECCも小さなアクセス単位毎に非常に高速な訂正処理が可能な方式であることが重要となる。
一方で一般的には、誤り訂正能力の高いECCであるほど、検出・訂正にかかる処理時間が長く、さらに符号サイズも大きくなる。ECCをデータとともにNVMやNVRAMに保存するためには、データの保存用の領域の他に冗長ビット領域が必要であり、高い訂正能力を持ったECCを使用するためには、それだけ冗長ビット領域の容量も大きくする必要がある。
特許文献1には誤り訂正機能を備えたメモリシステムが開示されている。
特許文献1に開示された半導体メモリシステムは、第1エラー訂正コードと、それよりも訂正能力の高い第2エラー訂正コードを利用する。そして、この半導体メモリシステムは、読み出しデータに第1エラー訂正コードで訂正可能なエラーが発生した場合に、それ以降、第2エラー訂正コードを用いて、誤り訂正処理を行うことで、データの信頼性を高めている。
特開2008−192054号公報
しかしながら、より誤り検出、訂正能力の高いエラー訂正方式では、符号サイズが大きく、検出・訂正処理にかかる時間も大きくなるため、アクセス性能の低下が発生する。
また、アクセス性能を維持するために、訂正能力は変えずに保護するデータの単位サイズを小さくすることでも、誤り訂正能力を高くできる。しかし、その分データ領域に対する冗長ビット領域の容量が大きくなり、不揮発性メモリ装置として同じ容量があったとしても、実際にデータを記録できる領域が少なくなってしまう。
一方、不揮発性メモリに記録されたデータは保存期間が長くなるほど劣化し、ビット化けが発生する確率が増大していく。劣化の傾向はその不揮発性メモリの記憶方式によってさまざまであるが、例えばNANDフラッシュでは、書換え回数が多いメモリセルほどデータの保持特性が悪い傾向がある。さらにNANDフラッシュでは、メモリセルは電荷を蓄積してデータを記憶するため、製造プロセスが微細化されるに従って蓄積される電荷量が減少していることもデータの保持特性を悪くする大きな要因となっている。
特許文献1に開示された技術は、高い頻度で読み出されるデータでは、第1エラー訂正コードによってビット化けを早期に検出し、第2エラー訂正コードによって訂正能力を強化しデータエラーを防ぐことができる。しかし長期間アクセスされないデータでは、第1エラー訂正コードでのビット化けの発見が遅れることによって、ビット化けが進行し、第2エラー訂正コードに切換える前に、第1エラー訂正コードで訂正不可能エラーになったデータは、以降正しいデータとして読み出すことができない。また、第1エラー訂正コードと第2エラー訂正コードで同じ単位サイズのデータに対してエラー訂正するため、訂正コードを保存に必要な冗長ビット領域の容量が大きくなる欠点がある。
本発明の第1の観点の不揮発性メモリ装置は、データを保存するデータ領域と、標準エラー訂正コード(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ブロックのデータの誤り訂正処理を行う機能と、を含む。
本発明の第2の観点のメモリコントローラは、データ領域、標準ECC領域、拡張ECC領域を含む不揮発性メモリ部に対するアクセスを制御する制御部と、標準ECCの生成処理と、誤り検出・訂正処理を行う標準ECC処理部と、拡張ECCの生成処理と、誤り検出・訂正処理を行う拡張ECC処理部と、を有し、上記メモリコントローラは、
書込み指示を受けて、受信データを上記データ領域に書込み、上記標準ECC処理部によって前記受信データからアクセス単位毎に生成した標準ECCを標準ECC領域へ書込む機能と、
読み込み指示を受けて、上記標準ECC領域から標準ECCを読込み、上記標準ECC処理部によって、上記データ領域から読み込んだデータをアクセス単位ごとに誤り検出・訂正処理し、訂正後のデータを外部に送信する機能と、
拡張ECC設定指示を受けて、上記拡張ECC処理部によって、上記データ領域から読出したアクセス単位の整数倍から成る拡張ECCブロックのデータから生成した拡張ECCを上記拡張ECC領域に書込む機能と、
標準ECCで訂正不可能なエラーが発生した場合に、上記拡張ECC領域から拡張ECCを読込み、上記拡張ECC処理部によって、上記データ領域から読み出した上記拡張ECCブロックのデータの誤り訂正処理を行う機能と、を含む。
本発明の第3の観点のメモリシステムは、データ領域、標準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によってNVM並びにNVRAMの読出し、書込みアクセス性能の低下を抑え、さらに、長期保存が必要なデータを指定する手段を持つことと拡張ECCを複数のアクセス単位から成るデータ単位に適用することによって拡張ECC訂正コード保存する冗長ビット領域の増大を抑制することができる。
本発明の第1の実施形態に係る不揮発性メモリ装置を搭載したメモリシステムの構成を示す図である。 本実施形態に係る標準ECCと拡張ECCを説明するための図である。 本実施形態に係る標準・拡張ECC生成部の第1の構成例を示す図である。 本実施形態に係る標準・拡張ECC生成部の第2の構成例を示す図である。 本実施形態に係る標準・拡張ECC検出訂正部の構成例を示す図である。 本第1の実施形態に係る、書込みコマンドSYS_WRITE受信時のメモリコントローラの動作を説明するためのフローチャートである。 本第1の実施形態に係る、拡張ECC設定コマンドEECC_SET受信時のメモリコントローラの動作を説明するためのフローチャートである。 本第1の実施形態に係る、書込みコマンドSYS_WRITE受信時に拡張ECCを設定するオプションOPT_ESETを設定した場合のメモリコントローラの動作を説明するためのフローチャートである。 拡張ECC領域に保存する拡張ECCのフォーマットの一例を示す図である。 本第1の実施形態に係る、読出しコマンドSYS_READ受信時のメモリコントローラの動作を説明するためのフローチャートである。 拡張ECCとして積符号を使用した場合に誤り訂正能力がどのように強化されるかを説明するための図である。 拡張ECCとして多重誤り訂正符号を使用した場合に誤り訂正能力がどのように強化されるかを説明するための図である。 本第1の実施形態に係る、拡張ECC消去コマンドEECC_CLR受信時のメモリコントローラの動作を説明するためのフローチャートである。 本発明の第2の実施形態に係る不揮発性メモリ装置を搭載したメモリシステムの構成を示す図である。 本第2の実施形態に係る、読出しコマンドSYS_READ受信時のメモリコントローラの動作を説明するためのフローチャートである。 本発明の第3の実施形態に係る不揮発性メモリ装置を搭載したメモリシステムの構成を示す図である。 本第3の実施形態に係る、拡張ECC設定コマンドEECC_SETの送信側であるホスト装置と、受信側であるメモリコントローラの動作を説明するためのフローチャートである。 本第3の実施形態に係るホスト装置のデータ読出し時の動作を説明するためのフローチャートである。 本発明の第4の実施形態に係る不揮発性メモリ装置を搭載したメモリシステムの構成を示す図である。 本発明の第5の実施形態に係る不揮発性メモリ装置を搭載したメモリシステムの構成を示す図である。 本発明の第6の実施形態に係る不揮発性メモリ装置を搭載したメモリシステムの構成を示す図である。 本発明の第7の実施形態に係る不揮発性メモリ装置を搭載したメモリシステムの構成を示す図である。
以下、本発明の実施形態を図面に関連付けて説明する。
なお、説明は以下の順序で行う。
1.第1の実施形態(メモリシステムの第1の構成例)
2.第2の実施形態(メモリシステムの第2の構成例)
3.第3の実施形態(メモリシステムの第3の構成例)
4.第4の実施形態(メモリシステムの第4の構成例)
5.第5の実施形態(メモリシステムの第5の構成例)
6.第6の実施形態(メモリシステムの第6の構成例)
7.第7の実施形態(メモリシステムの第7の構成例)
<1.第1の実施形態>
図1は、本発明の第1の実施形態に係る不揮発性メモリ装置を搭載したメモリシステムの構成を示す図である。
本第1の実施形態に係るメモリシステムを構成する不揮発性メモリ装置の例として、NANDフラッシュメモリで代表される数百〜数Kバイトのページ単位でしかアクセスできない不揮発性メモリ(NVM)と、バイト単位またはワード単位でアクセス可能な不揮発性ランダムアクセスメモリ(NVRAM)が存在し、ここではNVRAMでかつ、消去処理の指示をせずにデータの書き換えが可能なメモリを適用した例について説明する。
本メモリシステム10は、ホスト装置100、メモリコントローラ200、不揮発性メモリ300を含んで構成される。
不揮発性メモリ300は、不揮発性メモリ部に相当する。
本実施形態に係るメモリシステム10は、NVRAMに合わせてバイト、ワード単位の小さなアクセス単位毎に標準ECCを付加する機能と、ホスト装置100が選択したデータに対しては、アクセス単位の整数倍のデータ毎に拡張ECCを設定する機能を有する。
そして、本メモリシステム10は、データ読出し時に標準ECCで誤り訂正ができない場合に、拡張ECCを使用して、誤り訂正を行う機能を有する。
本第1の実施形態のメモリシステム10では、標準ECC処理と拡張ECC処理はメモリコントローラ200内で処理される。
ホスト装置100、メモリコントローラ200、および不揮発性メモリ300の構成要素について説明する。
ホスト装置100は、CPU101およびホストインタフェース部102を含んで構成される。
CPU101は、メモリコントローラ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が指定される。
メモリコントローラ200は、ホストインタフェース部201、不揮発性メモリ制御部202、データバッファ部203、およびメモリインタフェース部204を有する。
不揮発性メモリ制御部202は、制御部205および標準・拡張ECC処理部206を含んで構成される。
標準・拡張ECC処理部206は、標準ECC処理部と拡張ECC処理部の機能を併せ持つ。
ホストインタフェース部201は、ホスト装置100からのコマンドを受信し、不揮発性メモリ制御部202に通知する。
不揮発性メモリ制御部202の制御部205は、ホスト装置100からのコマンドをデコードして処理を実行する。その際、メモリインタフェース部204を介して以下のコマンドを不揮発性メモリ300に対して発行する。
制御部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に書き戻す処理を行う。
データバッファ部203は、ホストインタフェース部201を介してホスト装置100から受信した書込みデータを一時保存し、また制御部205がメモリインタフェース部204を介して不揮発性メモリ300から読出したデータを一時保存する。
図2は、本実施形態に係る標準ECCと拡張ECCを説明するための図である。
標準・拡張ECC処理部206の基本的な機能について図2に関連付けて説明する。
なお、図2ではシステムからNVMへのアクセス単位をページと呼んでいる。ページはNVRAMの場合、単一のバイト、ワードサイズであり、NANDフラッシュの場合は、書込み単位であるページに一致する。アクセス単位+標準ECCがページ210+標準ECC215に書き込まれ、アクセス単位のn倍からなるブロックを拡張ECCブロック230として、その最終ページ220を拡張ECC領域として拡張ECC220とそれを保護する標準ECC225が書き込まれる。例えばNANDフラッシュの場合は拡張ECCブロック230が消去ブロックに一致する。
標準・拡張ECC処理部206は、書込みデータに、たとえば図2に示すように、ページPG0〜PGn-2のページデータ210ごとに生成した標準ECCを付加し、ページ単位に不揮発性メモリ(NVM)300に出力し書き込む。
標準・拡張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として書き込む。
標準・拡張ECC処理部206は、標準ECCと拡張ECCの生成、誤り検出・訂正処理を実行し、誤りを検出した場合には、データバッファ部203上でデータ訂正を行い、ホスト装置100にデータを出力する。
ここで、標準・拡張ECC処理部206における標準・拡張ECC生成部および標準・拡張ECC検出訂正部の構成例について、図3〜図5に関連付けて説明する。
図3は、本実施形態に係る標準・拡張ECC生成部の第1の構成例を示す図である。
図3の標準・拡張ECC生成部240は、標準ECC生成部241、標準ECC検出訂正部242、拡張ECC生成部243、およびセレクタ(SEL)244を有する。
標準・拡張ECC生成部240において、書込みデータはセレクタ244を通して標準ECC生成部241に入力され、ページデータ210に標準ECC215を付加して1ページとして不揮発性メモリ(NVM)300に出力し書き込む。
標準・拡張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の最終ページとして書き込む。
図4は、本実施形態に係る標準・拡張ECC生成部の第2の構成例を示す図である。
図4の標準・拡張ECC生成部240Aは、図3の標準・拡張ECC生成部240の構成に加えてデータ入力ラインと標準ECC検出訂正部242の出力のいずれかを選択して拡張ECC生成部243に入力するセレクタ(SEL)245を有する。
標準・拡張ECC生成部240Aにおいて、書込みデータはセレクタ244を通して標準ECC生成部に241入力され、ページデータ210に標準ECC215を付加して1ページとして不揮発性メモリ(NVM)300に出力し書き込む。
標準・拡張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の最終ページとして書き込む。
図5は、本実施形態に係るECC検出・訂正部の構成例を示す図である。
図5のECC検出訂正部250は、標準ECC検出・訂正部251、拡張ECC検出・訂正部252、およびセレクタ(SEL)253を有する。
ECC検出・訂正部250において、不揮発性メモリ(NVM)300から読み出されたページデータ210および標準ECC215は標準ECC検出・訂正部251に入力される。そして、標準ECC検出・訂正部251でデータの誤りを検出して訂正後、セレクタ253を通してホスト装置100に出力される。
不揮発性メモリ(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に出力してもよい。
メモリコントローラ200のメモリインタフェース部204は、不揮発性メモリ制御部202からのコマンドをメモリインタフェースのプロトコルに変換し、不揮発性メモリ300に送信する。
メモリコントローラ200は、拡張ECCブロック230のページ0〜ページn-2のデータ210が存在するデータ領域303と、ページ0〜ページn-1の標準ECC215、225が存在する標準ECC領域304と、最終ページn-1の拡張ECC220が存在する拡張ECC領域305を管理する。拡張ECCブロック230の最終ページ220は図9の例に示すようなフォーマットであり、メモリコントローラ200は、拡張ECC有効フラグFLEEV402の値によって、最終ページn-1の拡張ECC220が設定されているかを判断する。
不揮発性メモリ300は、メモリインタフェース部301、メモリセルアレイ302、データ領域303、標準ECC領域304、拡張ECC領域305、および制御部306により構成される。
なお、不揮発性メモリ部としてのメモリセルアレイ302は、データ領域303、標準ECC領域304、拡張ECC領域305を含んで構成される。
不揮発性メモリ部はメモリインタフェース部301を介して、拡張ECCブロック空間230を複数持つアドレス空間としてアクセスされる。
メモリインタフェース部301は、メモリコントローラ200からのアクセス要求を受信し、制御部306に通知する。
制御部306は、受信したアクセス要求に従って、メモリセルアレイ302を制御して、データの書込み、読出しを行う。
次に、ホスト装置100、メモリコントローラ200、および不揮発性メモリ300の動作について説明する。
まず、不揮発性メモリ300へのデータの書込み処理について説明する。
図6は、本第1の実施形態に係る書込みコマンドSYS_WRITE受信時のメモリコントローラのフローチャートである。
メモリコントローラ200は、ホストインタフェース部201を介して、SYS_WRITEと、書込みデータを受信し、不揮発性メモリ制御部202の制御部205に通知する。
制御部205は、受信したコマンドをデコードし、SYS_WRITEを受信したことを判別し、書込みデータを受信する。(ST1)そして、標準・拡張ECC処理部206でアクセス単位のデータ210毎に付加する標準ECC215を生成する(ST2)。
次に、制御部205は、データを書込むアドレスのデータに対して、拡張ECC220が有効か否かを拡張ECC有効フラグFLEEV402で確認し(ST3)、拡張ECC220が有効な場合には、EECC_WRITEを不揮発性メモリへ送信し、FLEEV402をクリアする(ST4)。
その後、制御部205は、書込みコマンドMEM_WRITEと一緒にデータバッファ部203にあるページデータ210と標準ECC215をメモリインタフェース部204を介して不揮発性メモリ300へ送信する(ST5)。
次に、不揮発性メモリ300への拡張ECC設定処理について説明する。
図7は、本第1の実施形態に係る拡張ECC設定コマンドEECC_SET受信時のメモリコントローラのフローチャートである。
ホスト装置100は、例えば不揮発性メモリ300上に長期保存するデータに対して、拡張ECCの設定を行い、データの保持特性を改善する。
ホスト装置100は、不揮発性メモリ300のデータの中から拡張ECCを設定する拡張ECCブロック230を選択して、その先頭アドレスを拡張ECC設定コマンドEECC_SETの引数として、メモリコントローラ200に送信する。
メモリコントローラ200はホストインタフェース部201を介して、拡張ECC設定コマンドEECC_SETを受信し、不揮発性メモリ制御部202の制御部205に通知する。
制御部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)。
次に、不揮発性メモリ300へのデータ書込み時に同時に拡張ECCを設定する場合の動作について説明する。
図8は、本第1の実施形態に係る拡張ECC同時設定オプションであるOPT_ESETが付加された書込みコマンドSYS_WRITE受信時のメモリコントローラ200の動作フローチャートである。
ホスト装置100は、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は、以上の処理を拡張ECCブロック230のページn-2まで行うと(ST24)、生成した拡張ECC220にFLEEV402を設定し(ST25)、さらに標準・拡張ECC処理部206で拡張ECC220に対する標準ECC225を生成する(ST26)。
その後、制御部205は、書込みコマンドEECC_WRITEと一緒にデータバッファ部203にある拡張ECC220と標準ECC225をメモリインタフェース部204を介して、不揮発性メモリ300に出力する(ST27)。
図9は、拡張ECC領域に保存する拡張ECCのフォーマットの一例を示す図である。
図9の拡張ECC400は、拡張ECCで保護される拡張ECCブロック230を示す物理アドレスフィールド401、拡張ECC有効フラグフィールドFLEEV402、および拡張ECCフィールド403により構成される。
次に、不揮発性メモリ300からのデータの読出し動作について説明する。
図10は、本第1の実施形態に係る読出しコマンドSYS_READ受信時のメモリコントローラの動作フローチャートである。
ホスト装置100は、データの読出しコマンドSYS_READをメモリコントローラ200に送信する。
メモリコントローラ200は、ホストインタフェース部201は、ホスト装置100からの読出しコマンドSYS_READを受信すると、不揮発性メモリ制御部202の制御部205に通知する。
制御部205は受信したコマンドをデコードし、読出しコマンドSYS_READを受信したことを判別し、読出しコマンドMEM_READをメモリインタフェース部204を介して不揮発性メモリ300に送信する(ST31)。
制御部205は、メモリインタフェース部204を介して、データ210と標準ECC215をデータバッファ部203に受信し、標準・拡張ECC処理部206は標準ECCを使って誤り検出処理を行い、データバッファ部203上のデータの訂正処理を行う(ST33)。
ステップST33において、誤りがなく、もしくは標準ECCで訂正可能であった場合には、制御部205はデータバッファ部203上のデータ210をホストインタフェース部201を介してホスト装置に送信する(ST34)。
ステップST33において、標準ECCで訂正不可能であった場合には、拡張ECC有効フラグFLEEV402の値を調べる(ST35)。
ステップ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で訂正不可能エラーがなかった場合には、制御部205はデータバッファ部203上の訂正済みデータをホストインタフェース部201を介してホスト装置100へ送信する(ST34)。
ステップST41において、拡張ECCでも訂正不可能エラーがあると判別した場合には、エラー処理を行い(ST42)、処理を終了する。
また、ステップST34の処理後、制御部205は、ホスト装置100からの読出しコマンドSYS_READに訂正済みデータ書き戻しオプションOWETBが設定されているか否かの判別を行い(ST43)、設定されていた場合には、制御部205はMEM_WRITEとEECC_WRITEを使って、データバッファ部203上の訂正済みデータを不揮発性メモリ300に書き戻す(ST44)。
ここで、拡張ECCの具体例として、積符号と多重誤り訂正符号を使用した場合に、実際に標準ECCで訂正できなかったデータを拡張ECCで訂正する例について説明する。
図11は、拡張ECCとして積符号を使用した場合の誤り検出・訂正処理を説明するための図である。
図12は、拡張ECCとして多重誤り訂正符号を使用した場合を誤り検出・訂正処理を説明するための図である。
まず、拡張ECCが積符号の場合を図11に関連付けて説明する。
積符号は列方向と行方向に並べられたデータのブロックに対して、列方向と行方向にそれぞれECCを計算し、行方向と列方向の訂正を繰り返すことで誤り訂正をする。
図11は、行方向と列方向がそれぞれ1誤り訂正可能な場合を例示している。行方向のECCが標準ECC領域に保存され、列方向のECCが拡張ECC領域に保存される。通常のアクセスでは標準ECCに相当する行方向のECCのみ使用される。拡張ECCは列方向と行方向のECCの両方を組み合わせたものであり、行方向のECCの値は標準ECCと重複することから、拡張ECC領域に保存する必要はない。
行R0を読み出す場合には、行R0は誤りE0と誤りE1の2重誤りが発生しているため、この行に対応する標準ECCでは誤り訂正ができない(状態STS0)。
そこで、列C0から列Cnまで列方向の拡張ECCで誤り訂正が実施され、列方向ECCで誤りE0が訂正されるが、列Cn-1では2重誤りがあるために訂正ができない(状態STS1)。
もう一度行方向の行R0の読出しに戻ると、誤りはE1のみなので、今度は行方向のECCで訂正が行われ、行R0の誤りは全て訂正され(状態STS2)、行R0のデータが正しく読出される。
このように最初の状態(状態STS0)では誤り訂正不可能な場合でも、行・列の誤り訂正を繰り返すことで、誤り訂正をできることが積符号の特徴である。
本実施形態では、行方向のECCは標準ECCで処理され、列方向のECCは拡張ECCで処理される。行方向と列方向で同じ誤り訂正方法を使用しても、訂正能力を高めることができ、標準ECCと拡張ECCの生成、訂正処理は一つの回路で実行できるといったメリットもある。
次に、拡張ECCが多重誤り訂正符号の場合を図12に関連付けて説明する。
図12は、たとえば、標準ECCに1誤り訂正が可能なハミング符号を使い、拡張ECCには4重誤り訂正が可能なBCH符号を使用した場合を例示している。
行R0を読み出す場合、3重誤りがあるために標準ECCでは誤りが訂正できない(状態STS10)。そこで、拡張ECCで保護されるデータを読み出す。
行R0以外はすべて1誤りなので、標準ECCで誤り訂正が実行される(状態STS11)。
次に、拡張ECCで保護されるデータには3重誤りがあり、拡張ECCは4重誤りまで訂正可能なので、3重誤りは訂正される(状態STS12)。
このように、拡張ECCブロック230単位に拡張ECC220を付加することによって、標準ECC215だけでは訂正できない誤りであっても、訂正することができる。
次に、ホスト装置100が設定した拡張ECCを削除する動作について説明する。
図13は、本第1の実施形態に係る拡張ECC削除コマンドEECC_CLR受信時のメモリコントローラ200の動作フローチャートである。
ホスト装置100は、拡張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)。
<2.第2の実施形態>
図14は、本発明の第2の実施形態に係る不揮発性メモリ装置を搭載したメモリシステムの構成を示す図である。
本第2の実施形態に係るメモリシステム10Aが第1の実施形態に係るメモリシステム10と異なる点は次の通りである。
第1の実施形態に係るメモリシステム10においては、標準ECC処理および拡張ECC処理をメモリコントローラ200で処理される。
これに対して、本第2の実施形態に係るメモリシステム10Aにおいては、標準ECC処理は不揮発性メモリ300Aで処理される。
これに対応して、メモリシステム10Aにおいて、メモリコントローラ200Aの不揮発性メモリ制御部202Aに、標準・拡張ECC処理部に代わり拡張ECC処理部207が配置されている。
そして、不揮発性メモリ300Aに、データバッファ部307、および標準ECC処理部308が配置されており、制御部306によって制御される。
第2の実施形態において、ホスト装置100は第1の実施形態と同様、SYS_WRITE、SYS_READ、EECC_SET、EECC_GET、EECC_CLRのコマンドをメモリーコントローラに発行する。
第2の実施形態において、不揮発性メモリ300Aは、標準ECCを生成する機能、標準ECCの誤り検出・訂正を行う機能、標準ECCでの訂正不可能エラーをメモリコントローラ200Aに通知する機能を有する。
メモリコントローラ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によるデータ読出し時の誤り検出・訂正の動作について説明する。
MEM_WRITEによる不揮発性メモリ300Aへのデータ書込み時は、不揮発性メモリ300Aはメモリインタフェース部301でコマンドを受信すると制御部306に通知し、書き込みデータをデータバッファ部307に受信する。
制御部306は、コマンドをデコードし、MEM_WRITEであることを判別し、データバッファ部307の書込みデータから標準ECCを生成し、データをデータ領域303へ書込み、標準ECCを標準ECC領域304に書き込む。
MEM_READによる不揮発性メモリ300Aからのデータ読出し時は、不揮発性メモリ300Aはメモリインタフェース部301でコマンドを受信すると制御部306に通知する。
制御部306は、コマンドをデコードし、MEM_READであることを判別し、データ領域303と標準ECC領域304からデータバッファ部307へ読み込み、標準ECC処理部によってデータの誤り検出・訂正処理を行った後に、メモリインタフェース部301を介してメモリコントローラ200Aへデータを送信する。もし訂正不可能エラーが発生した場合には、メモリコントローラ200Aへ通知し、訂正処理前のデータをメモリインタフェース部301を介してメモリコントローラ200Aへ送信する。
次に、SYS_READによるメモリコントローラ200Aからのデータ読出し時の動作について説明する。
図15は、本第2の実施形態に係るSYS_READ実行時のメモリコントローラ200Aの動作フローチャートである。
第1の実施形態である図10と比べると、ステップST32A、ST33A、ST37A、ST39Aの処理が異なる。その他の処理は第1の実施形態と同じである。
第2の実施形態では、ステップST32A、ST37A、ST39Aで標準ECC訂正後のデータを受信する。
ステップST33Aで、メモリコントローラ200Aは標準ECCの訂正不可能エラーの発生の有無を不揮発性メモリ300Aから受信し、拡張ECCの処理を実施するかを決める。
不揮発性メモリ300A内の標準ECC処理部で訂正不可能エラーが発生したデータは、訂正前のデータをメモリコントローラ200Aへ出力する。
<3.第3の実施形態>
図16は、本発明の第3の実施形態に係る不揮発性メモリ装置を搭載したメモリシステムの構成を示す図である。
本第3の実施形態に係るメモリシステム10Bが第1の実施形態に係るメモリシステム10と異なる点は次の通りである。
第1の実施形態に係るメモリシステム10においては、標準ECC処理および拡張ECC処理をメモリコントローラ200で行っている。
これに対して、本第3の実施形態に係るメモリシステム10Bにおいては、標準ECC処理はメモリコントローラ200Bで処理され、拡張ECC処理はホスト装置100Bで処理される。
これに対応して、メモリシステム10Bにおいて、メモリコントローラ200Bの不揮発性メモリ制御部202Bに、標準・拡張ECC処理部に代わり標準ECC処理部208が配置され、ホスト装置100Bに、拡張ECC処理部103が配置され、CPU101によって制御される。
ホスト装置100Bの拡張ECC処理部103は、その実現手段としてハードウェアでも、ソフトウェアでもよい。
第3の実施形態において、ホスト装置100Bは、拡張ECCを生成する機能、拡張ECCの誤り検出・訂正処理を行う機能を有する。
ホスト装置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の実施形態と動作は変わらない。
メモリコントローラ200Bは不揮発性メモリ300に対して、MEM_WRITE、MEM_READ、EECC_WRITE、EECC_READを発行するが、これらの動作は第1の実施形態と同じである。
次に第3の実施形態で特徴的なEECC_SET時と、SYS_READ時の動作ついて説明する。
図17(A)および(B)は、本第3の実施形態に係るEECC_SET処理時の、ホスト装置100Bおよびメモリコントローラ200Bの動作フローチャートである。
図17(A)はホスト装置100Bの動作を、図17(B)はメモリコントローラ200Bの動作を示している。
図17(A)で、ホスト装置100Bは、メモリコントローラ200BにSYS_READを送信し、拡張ECCで保護する拡張ECCブロック230のページデータ210を読出す(ST61)。
読出したデータから拡張ECCを生成し、さらに拡張ECC有効フラグFLEEV402を設定し(ST62)、EECC_SETと共にメモリコントローラ200Bに送信する(ST63)。
図17(B)で、メモリコントローラ200Bのホストインタフェース部201は、EECC_SETを受信すると、不揮発性メモリ制御部202Bの制御部205に通知し、拡張ECC403と拡張ECC有効フラグFLEEV402をデータバッファ部203に書き込む。
制御部205は、受信したコマンドをデコードし、EECC_SETを受信したことを判別する。そして、制御部205は、受信した拡張ECC403とFLEEV402を図9にあるフォーマットに整え(ST71)、標準ECCを計算し、不揮発性メモリ300にEECC_WRITEと共に送信する(ST72)。
次に、本第3の実施形態に係るホスト装置100Bによるデータ読出し時の拡張ECC訂正処理について説明する。図18は、ホスト装置100Bのデータ読出し時の動作フローチャートである。
図18のフローチャートと、第1の実施形態のフローチャート図10との違いは、第1の実施形態は拡張ECC、標準ECCをメモリコントローラが処理するのに対して、第3の実施形態は拡張ECCをホスト装置、標準ECCを不揮発性メモリが処理することである。
ホスト装置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の実施形態と同じである。
<4.第4の実施形態>
図19は、本発明の第4の実施形態に係る不揮発性メモリ装置を搭載したメモリシステムの構成を示す図である。
本第4の実施形態に係るメモリシステム10Cが第1の実施形態に係るメモリシステム10と異なる点は次の通りである。
すなわち、第1の実施形態に係るメモリシステム10においては、標準ECC処理および拡張ECC処理をメモリコントローラ200で行っている。
これに対して、本第4の実施形態に係るメモリシステム10Cにおいては、標準ECC処理および拡張ECC処理は不揮発性メモリ300Cで処理される。
これに対応して、メモリシステム10Cにおいて、メモリコントローラ200Cの不揮発性メモリ制御部202Cに、標準・拡張ECC処理部は配置されていない。
そして、不揮発性メモリ300Cに、データバッファ部307、および標準・拡張ECC処理部309が配置されている。
このように、本第4の実施形態においては、標準ECCおよび拡張ECCの処理が不揮発性メモリ300Cで行われ、第1の実施形態でメモリコントローラが行っていた処理が不揮発性メモリ300Cで実施される。
<5.第5の実施形態>
図20は、本発明の第5の実施形態に係る不揮発性メモリ装置を搭載したメモリシステムの構成を示す図である。
本第5の実施形態に係るメモリシステム10Dが第1の実施形態に係るメモリシステム10と異なる点は次の通りである。
すなわち、第1の実施形態に係るメモリシステム10においては、標準ECC処理および拡張ECC処理をメモリコントローラ200で行っている。
これに対して、本第5の実施形態に係るメモリシステム10Dにおいては、標準ECC処理は不揮発性メモリ300Dで処理され、拡張ECC処理はホスト装置100Dで処理される。
これに対応して、メモリシステム10Dにおいて、メモリコントローラ200Dの不揮発性メモリ制御部202Dに、標準・拡張ECC処理部は配置されていない。
そして、不揮発性メモリ300Dに、データバッファ部307、および標準ECC処理部308が配置され、ホスト装置100Dに拡張ECC処理部103が配置されている。
このように、本第5の実施形態においては、標準ECCの処理が不揮発性メモリ300Dで実行され、拡張ECCの処理がホスト装置100Dで実行される。
標準ECCの処理は第2の実施形態と同じで、メモリコントローラ200Dは拡張ECCの処理機能がなく、不揮発性メモリ300Dから出力される標準ECC訂正不可能エラーをホスト装置100Dに通知する機能を有する。
拡張ECCの処理は第3の実施形態と同じである。
<6.第6の実施形態>
図21は、本発明の第6の実施形態に係る不揮発性メモリ装置を搭載したメモリシステムの構成を示す図である。
本第6の実施形態に係るメモリシステム10Eが第1の実施形態に係るメモリシステム10と異なる点は次の通りである。
すなわち、第1の実施形態に係るメモリシステム10においては、標準ECC処理および拡張ECC処理をメモリコントローラ200で行っている。
これに対して、本第6の実施形態に係るメモリシステム10Dにおいては、標準ECC処理および拡張ECC処理はホスト装置100Eで処理される。
これに対応して、メモリシステム10Eにおいて、メモリコントローラ200Eの不揮発性メモリ制御部202Eに、標準・拡張ECC処理部は配置されていない。
そして、ホスト装置100Eに、拡張ECC処理部103および標準ECC処理部104が配置されている。また、ホスト装置100Eの拡張ECC処理部は標準ECC処理部で訂正不可能エラーが発生した場合に必要となる処理であるため、ソフトウェアで実現されていてもよい。
このように、本第6の実施形態においては、標準ECCと拡張ECCがホスト装置100で実行され、第1の実施形態でメモリコントローラ200が行っていた処理がホスト装置100Eで実行される。
<7.第7の実施形態>
図22は、本発明の第7の実施形態に係る不揮発性メモリ装置を搭載したメモリシステムの構成を示す図である。
本第7の実施形態に係るメモリシステム10Fが第1の実施形態に係るメモリシステム10と異なる点は次の通りである。
すなわち、第1の実施形態に係るメモリシステム10においては、ホスト装置100とメモリコントローラ200が別々に形成されている。
これに対して、本第7の実施形態に係るメモリシステム10Fにおいては、メモリコントローラ200Fがホスト装置100Fに含まれるように形成されている。
これに対応して、本第7の実施形態に係るメモリシステム10Fにおいては、ホストインタフェース部102,201が不要となっている。
その他の構成、機能は第1の実施形態と同様である。
10,10A〜10F・・・メモリシステム、100,100B〜100F・・・ホスト装置、101・・・CPU、102・・・ホストインタフェース部、103・・・拡張ECC処理部、200,200A,200B〜200F・・・メモリコントローラ、201・・・ホストインタフェース部、202,202A〜202F・・・不揮発性メモリ制御部、203・・・データバッファ部、204・・・メモリインタフェース部、205・・・制御部、206・・・標準・拡張ECC処理部、207・・・拡張ECC処理部、208・・・標準ECC処理部、300,300C,300D・・・不揮発性メモリ、301・・・メモリインタフェース部、302・・・メモリセルアレイ、303・・・データ領域、304・・・標準ECC領域、305・・・拡張ECC領域、306・・・制御部、307・・・データバッファ部、308・・・標準ECC処理部、309・・・標準・拡張ECC処理部。

Claims (19)

  1. データを保存するデータ領域と、標準エラー訂正コード(ECC)を保存するための標準ECC領域と、拡張ECCを保存する拡張ECC領域とを含む不揮発性メモリ部と、
    標準ECCを生成し、上記データ領域のアクセス単位毎に誤り訂正処理を行う標準ECC処理部と、
    拡張ECCを生成し、上記データ領域のアクセス単位の整数倍のデータ毎に誤り訂正処理を行う拡張ECC処理部と、
    上記不揮発性メモリ部へのアクセス、並びに上記標準ECC処理部および上記拡張ECC処理部の処理を制御する制御部と、を有し、
    上記制御部は、
    書込み指示を受けて、受信したデータから上記標準ECC処理部によりアクセス単位ごとに標準ECCを生成し、データを上記不揮発性メモリ部のデータ領域に書込み、生成した標準ECCを標準ECC領域に書込む機能と、
    読出し指示を受けて、上記不揮発性メモリ部のデータ領域からデータと、標準ECC領域から標準ECCを読出し、上記標準ECC処理部によりデータのアクセス単位ごとに誤り検出および訂正を行い、訂正後のデータを外部に送信する読出し機能と、
    外部からの指示を受けて、上記不揮発性メモリ部のデータ領域から、指示されたアドレスを先頭とするアクセス単位の整数倍のデータを読出して、上記拡張ECC処理部により拡張ECCを生成し、上記拡張ECC領域に書込む機能と、
    外部からの指示を受けて、上記不揮発性メモリ部のデータ領域から、指示されたアドレスを先頭とするアクセス単位の整数倍のデータと、拡張ECC領域から拡張ECCを読出し、上記拡張ECC処理部によりデータの誤り検出及び訂正を行い、訂正後のデータを外部に送信する機能と、
    を含む不揮発性メモリ装置。
  2. 上記制御部は、
    外部からの指示を受けて、上記不揮発性メモリ部の拡張ECC領域に保存された拡張ECCを削除する機能を有する
    請求項1記載の不揮発性メモリ装置。
  3. 上記制御部は、
    外部からの指示を受けて、上記不揮発性メモリ部のデータ領域へ、指示されたアドレスアクセス単位の整数倍のデータを書き込む際に、上記拡張ECC処理部により拡張ECCを生成し、生成した拡張ECCを上記拡張ECC領域に書込む
    請求項1から2のいずれか一に記載の不揮発性メモリ装置。
  4. 上記制御部は、
    上記拡張ECCを上記拡張ECC領域に書込むと同時に、上記拡張ECCから生成した標準ECCを上記標準ECC領域に書込む、
    請求項1から3のいずれか一に記載の不揮発性メモリ装置。
  5. 上記制御部は、
    外部からの指示を受けて、上記不揮発性メモリ部のデータ領域から、指示されたアドレスを先頭とするアクセス単位の整数倍のデータと、拡張ECC領域から拡張ECCを読出し、上記拡張ECC処理部によりデータの誤り検出及び訂正を行ったデータを、上記不揮発性メモリ部のデータ領域に書込む機能を含む
    請求項1から4のいずれか一に記載の不揮発性メモリ装置。
  6. 上記制御部は、
    拡張ECC領域に保存された値が所定の固定値と一致した場合、当該値が保存された領域は未使用であると判断する
    請求項1から5のいずれか一に記載の不揮発性メモリ装置。
  7. 前記固定値は、保存領域の特定のビットを未使用であることを示すフラグにより形成される
    請求項6記載の不揮発性メモリ装置。
  8. データを保存するデータ領域と、標準エラー訂正コード(ECC)を保存するための標準ECC領域と、拡張ECCを保存する拡張ECC領域とを含む不揮発性メモリ部に対するアクセスを制御する制御部と、
    標準ECCを生成し、上記データ領域のアクセス単位毎に誤り訂正処理を行う標準ECC処理部と、
    拡張ECCを生成し、上記データ領域のアクセス単位の整数倍のデータ毎に誤り訂正処理を行う拡張ECC処理部と、を有し、
    上記制御部は、
    書込み指示を受けて、受信したデータから上記標準ECC処理部によりアクセス単位ごとに標準ECCを生成し、データを上記不揮発性メモリ部のデータ領域に書込み、生成した標準ECCを標準ECC領域に書込む機能と、
    読出し指示を受けて、上記不揮発性メモリ部のデータ領域からデータと、標準ECC領域から標準ECCを読出し、上記標準ECC処理部によりアクセス単位ごとにデータの誤り検出および訂正を行い、訂正後のデータを外部に送信する機能と、
    外部からの指示を受けて、上記不揮発性メモリ部のデータ領域から、指示されたアドレスを先頭とするアクセス単位の整数倍のデータを読出して、上記拡張ECC処理部により拡張ECCを生成し、上記拡張ECC領域に書込む機能と、
    外部からの指示を受けて、上記不揮発性メモリ部のデータ領域から、指示されたアドレスを先頭とするアクセス単位の整数倍のデータと、拡張ECC領域から拡張ECCを読出し、上記拡張ECC処理部によりデータの誤り検出及び訂正を行い、訂正後のデータを外部に送信する機能と、を含む
    メモリコントローラ。
  9. 上記制御部は、
    上記拡張ECCを上記拡張ECC領域に書込むと同時に、上記拡張ECCから生成した標準ECCを上記標準ECC領域に書込む、
    請求項8に記載のメモリコントローラ。
  10. データを保存するデータ領域と、標準エラー訂正コード(ECC)を保存するための標準ECC領域と、拡張ECCを保存する拡張ECC領域と、標準ECCを生成し、上記データ領域のアクセス単位毎に誤り訂正処理を行う標準ECC処理部と、
    を含む不揮発性メモリ部に対するアクセスを制御する制御部と、
    拡張ECCを生成し、上記データ領域のアクセス単位の整数倍のデータ毎に誤り訂正処理を行う拡張ECC処理部と、を有し、
    上記制御部は、
    書込み指示を受けて、受信したデータを上記不揮発性メモリ部のデータ領域に書込む機能と、
    読出し指示を受けて、上記不揮発性メモリ部のデータ領域から標準ECCで誤り訂正後のデータを読出し、外部に送信する機能と、
    外部からの指示を受けて、上記不揮発性メモリ部のデータ領域から、指示されたアドレスを先頭とするアクセス単位の整数倍のデータを読出して、上記拡張ECC処理部により拡張ECCを生成し、上記拡張ECC領域に書込む機能と、
    外部からの指示を受けて、上記不揮発性メモリ部のデータ領域から、指示されたアドレスを先頭とするアクセス単位の整数倍のデータと、拡張ECC領域から拡張ECCを読出し、上記拡張ECC処理部によりデータの誤り検出及び訂正を行い、訂正後のデータを外部に送信する機能と、を含む
    メモリコントローラ。
  11. データを保存するデータ領域と、標準エラー訂正コード(ECC)を保存するための標準ECC領域と、拡張ECCを保存する拡張ECC領域とを含む不揮発性メモリ部と、
    標準ECCを生成し、上記不揮発性メモリ部のアクセス単位毎に誤り訂正処理を行う標準ECC処理部と、
    拡張ECCを生成し、上記アクセス単位の整数倍のデータ毎に誤り訂正処理を行う拡張ECC処理部と、
    上記不揮発性メモリ部へのアクセス、並びに上記標準ECC処理部および上記拡張ECC処理部の処理を制御するメモリコントローラと、
    上記メモリコントローラに対して、少なくとも書込みを指示する機能および読み出しを指示する機能を含むホスト装置と、を有し、
    上記メモリコントローラは、
    上記ホスト装置からの書込み指示を受けて、受信したデータから上記標準ECC処理部によりアクセス単位ごとに標準ECCを生成し、データを上記不揮発性メモリ部のデータ領域に書込み、生成した標準ECCを標準ECC領域に書込む機能と、
    上記ホスト装置からの読出し指示を受けて、上記不揮発性メモリ部のデータ領域からデータと標準ECC領域から標準ECCを読出し、上記標準ECC処理部によりアクセス単位ごとにデータの誤り検出および訂正を行い、訂正後のデータを外部に送信する読出し機能、を含む
    メモリシステム。
    さらに上記メモリコントローラは、
    上記ホスト装置からの指示を受けて、上記不揮発性メモリ部のデータ領域から、指示されたアドレスを先頭とするアクセス単位の整数倍のデータを読出して、上記拡張ECC処理部により拡張ECCを生成し、上記拡張ECC領域に書込む機能と、
    上記ホスト装置からの指示を受けて、上記不揮発性メモリ部のデータ領域から、指示されたアドレスを先頭とするアクセス単位の整数倍のデータと、拡張ECC領域から拡張ECCを読出し、上記拡張ECC処理部によりデータの誤り検出及び訂正を行い、訂正後のデータを外部に送信する機能と、を含む
    メモリシステム。
  12. 上記ホスト装置は、
    拡張ECCを追加するデータのアドレスをメモリコントローラに指定する機能と、追加した拡張ECCを削除するデータのアドレスを指定する機能とを含み、
    上記メモリコントローラは、
    上記ホスト装置の指定に従って拡張ECCの追加または削除制御を行う
    請求項11に記載のメモリシステム。
  13. 上記ホスト装置は、
    上記不揮発性メモリ部のデータ領域に保存したデータの中で、長期間の保存に備え保護が必要なデータに対し、拡張ECCの追加を上記メモリコントローラに指示し、
    上記メモリコントローラは、
    上記ホスト装置からの指示を受けて、上記不揮発性メモリ部のデータ領域から、指示されたアドレスを先頭とするアクセス単位の整数倍のデータを読出して、上記拡張ECC処理部により拡張ECCを生成し、生成した拡張ECCを上記拡張ECC領域に書込む
    請求項11から12のいずれか一に記載のメモリシステム。
  14. 上記メモリコントローラは、
    拡張ECCが設定されたデータを読出す場合には、
    まず上記標準ECCを使用しアクセス単位ごとにデータの確認および訂正を行い、
    標準ECCで訂正が不可能であった場合には、拡張ECCを使用し、拡張ECCで訂正されるデータの誤り検出および訂正を行う
    請求項11から13のいずれか一に記載のメモリシステム。
  15. 上記ホスト装置は、
    上記メモリコントローラに、標準ECCおよび拡張ECCで訂正が発生した場合に、訂正後のデータで、訂正が発生した元のデータを書換えることを指示可能であり、
    上記メモリコントローラは、
    上記ホスト装置の指示を受けて、訂正後のデータで元のデータの書換えのための制御を行う
    請求項11から14のいずれか一に記載のメモリシステム。
  16. 上記メモリコントローラは、
    拡張ECC領域に保存された値が所定の固定値と一致した場合、当該値が保存された領域は未使用であると判断する
    請求項11から15のいずれか一に記載のメモリシステム。
  17. 上記固定値は、保存領域の特定のビットを未使用であることを示すフラグにより形成される
    請求項16記載のメモリシステム。
  18. 上記標準ECC処理部および上記拡張ECC処理部は、
    上記メモリコントローラ、上記不揮発性メモリ部、および上記ホスト装置のいずれかに配置される
    請求項11から17のいずれか一に記載のメモリシステム。
  19. 上記ホスト装置が、
    上記メモリコントローラの機能を含む、
    請求項11から18のいずれか一に記載のメモリシステム。
JP2010171690A 2009-09-11 2010-07-30 不揮発性メモリ装置、メモリコントローラ、およびメモリシステム Expired - Fee Related JP5540969B2 (ja)

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 true JP2011081776A (ja) 2011-04-21
JP5540969B2 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 (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012252558A (ja) * 2011-06-03 2012-12-20 Sony Corp 不揮発性メモリ、メモリコントローラ、不揮発性メモリのアクセス方法、およびプログラム
JP2013130899A (ja) * 2011-12-20 2013-07-04 Sony Corp 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
JP2014086062A (ja) * 2012-10-29 2014-05-12 Sony Corp 記憶制御装置、記憶装置、情報処理システム、および、記憶制御方法
US8898541B2 (en) 2011-11-30 2014-11-25 Sony Corporation Storage controller, storage device, information processing system, and storage controlling method
JP2015079402A (ja) * 2013-10-18 2015-04-23 ソニー株式会社 記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法
JP2016062463A (ja) * 2014-09-19 2016-04-25 株式会社東芝 メモリシステム、誤り訂正装置、および誤り訂正方法
JP2016134167A (ja) * 2015-01-21 2016-07-25 株式会社東芝 メモリシステムおよび処理装置
KR101843918B1 (ko) 2011-04-25 2018-04-02 삼성전자주식회사 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 그 동작 방법
US9983928B2 (en) 2012-03-06 2018-05-29 Micron Technology, Inc. Apparatuses and methods including error correction code organization
KR101889362B1 (ko) * 2012-02-06 2018-09-20 에스케이하이닉스 주식회사 비휘발성 메모리 장치 및 그 동작 방법, 이를 이용하는 데이터 처리 시스템
US10173930B2 (en) * 2016-05-23 2019-01-08 Kennametal Inc. Sintered ceramic bodies and applications thereof
US10289475B2 (en) 2015-01-21 2019-05-14 Toshiba Memory Corporation Memory system
KR20200051382A (ko) * 2018-11-05 2020-05-13 에스케이하이닉스 주식회사 디코딩 회로 및 이를 포함하는 반도체 메모리 장치
JP2022523294A (ja) * 2019-01-23 2022-04-22 マイクロン テクノロジー,インク. 暗号化構成要素を備えたメモリデバイス

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101803970B1 (ko) * 2011-03-16 2017-12-28 삼성전자주식회사 컨텐트를 구성하는 장치 및 방법
US9146809B2 (en) * 2013-10-07 2015-09-29 Macronix International Co., Ltd. ECC method for double pattern flash memory
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
US9558066B2 (en) * 2014-09-26 2017-01-31 Intel Corporation Exchanging ECC metadata between memory and host system
US10063263B2 (en) * 2015-05-20 2018-08-28 International Business Machines Corporation Extended error correction coding data storage
US10290353B2 (en) * 2016-09-06 2019-05-14 Western Digital Technologies, Inc. Error mitigation for 3D NAND flash memory
JP6847796B2 (ja) 2017-09-20 2021-03-24 キオクシア株式会社 メモリシステム
JP6957392B2 (ja) 2018-03-15 2021-11-02 キオクシア株式会社 メモリシステム
KR20200078830A (ko) * 2018-12-24 2020-07-02 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 모듈

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008192054A (ja) * 2007-02-07 2008-08-21 Megachips Lsi Solutions Inc 半導体メモリシステム
JP2009059422A (ja) * 2007-08-31 2009-03-19 Toshiba Corp 半導体記憶装置およびその制御方法
JP2009080651A (ja) * 2007-09-26 2009-04-16 Toshiba Corp 半導体記憶装置、及びその制御方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
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 メモリ制御装置、コンピュータシステム及びデータ再生記録装置
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008192054A (ja) * 2007-02-07 2008-08-21 Megachips Lsi Solutions Inc 半導体メモリシステム
JP2009059422A (ja) * 2007-08-31 2009-03-19 Toshiba Corp 半導体記憶装置およびその制御方法
JP2009080651A (ja) * 2007-09-26 2009-04-16 Toshiba Corp 半導体記憶装置、及びその制御方法

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101843918B1 (ko) 2011-04-25 2018-04-02 삼성전자주식회사 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 그 동작 방법
JP2012252558A (ja) * 2011-06-03 2012-12-20 Sony Corp 不揮発性メモリ、メモリコントローラ、不揮発性メモリのアクセス方法、およびプログラム
US8898541B2 (en) 2011-11-30 2014-11-25 Sony Corporation Storage controller, storage device, information processing system, and storage controlling method
JP2013130899A (ja) * 2011-12-20 2013-07-04 Sony Corp 記憶制御装置、記憶装置、情報処理システム、および、それらにおける処理方法
KR101889362B1 (ko) * 2012-02-06 2018-09-20 에스케이하이닉스 주식회사 비휘발성 메모리 장치 및 그 동작 방법, 이를 이용하는 데이터 처리 시스템
US9983928B2 (en) 2012-03-06 2018-05-29 Micron Technology, Inc. Apparatuses and methods including error correction code organization
JP2014086062A (ja) * 2012-10-29 2014-05-12 Sony Corp 記憶制御装置、記憶装置、情報処理システム、および、記憶制御方法
JP2015079402A (ja) * 2013-10-18 2015-04-23 ソニー株式会社 記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法
US9547566B2 (en) 2013-10-18 2017-01-17 Sony Corporation Storage control apparatus, storage apparatus, information processing system, and storage control method therefor
US10078550B2 (en) 2014-09-19 2018-09-18 Kabushiki Kaisha Toshiba Memory system, error correction device, and error correction method
JP2016062463A (ja) * 2014-09-19 2016-04-25 株式会社東芝 メモリシステム、誤り訂正装置、および誤り訂正方法
JP2016134167A (ja) * 2015-01-21 2016-07-25 株式会社東芝 メモリシステムおよび処理装置
US10289475B2 (en) 2015-01-21 2019-05-14 Toshiba Memory Corporation Memory system
US11099927B2 (en) 2015-01-21 2021-08-24 Toshiba Memory Corporation Memory system
US11960355B2 (en) 2015-01-21 2024-04-16 Kioxia Corporation Memory system
US10173930B2 (en) * 2016-05-23 2019-01-08 Kennametal Inc. Sintered ceramic bodies and applications thereof
KR20200051382A (ko) * 2018-11-05 2020-05-13 에스케이하이닉스 주식회사 디코딩 회로 및 이를 포함하는 반도체 메모리 장치
KR102611860B1 (ko) 2018-11-05 2023-12-11 에스케이하이닉스 주식회사 디코딩 회로 및 이를 포함하는 반도체 메모리 장치
JP2022523294A (ja) * 2019-01-23 2022-04-22 マイクロン テクノロジー,インク. 暗号化構成要素を備えたメモリデバイス
US11514174B2 (en) 2019-01-23 2022-11-29 Micron Technology, Inc. Memory devices with cryptographic components
US11868488B2 (en) 2019-01-23 2024-01-09 Micron Technology, Inc. Memory devices with cryptographic components

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
JP5540969B2 (ja) 2014-07-02

Similar Documents

Publication Publication Date Title
JP5540969B2 (ja) 不揮発性メモリ装置、メモリコントローラ、およびメモリシステム
US9817711B2 (en) Memory controller
JP5605238B2 (ja) メモリシステムおよびその動作方法
JP2015018451A (ja) メモリコントローラ、記憶装置およびメモリ制御方法
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
JP2012137994A (ja) メモリシステムおよびその制御方法
US20100241932A1 (en) Error detector/corrector, memory controller, and semiconductor memory device
US10062418B2 (en) Data programming method and memory storage device
KR100688549B1 (ko) 비휘발성 메모리를 지원하는 온더플라이 bcc 코덱시스템 및 방법
US20130117632A1 (en) Storage control apparatus
JP2009301194A (ja) 半導体記憶装置の制御システム
TWI802324B (zh) 異常斷電恢復方法、記憶體控制電路單元以及記憶體儲存裝置
TW202040370A (zh) 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置
US9928137B2 (en) Data storage device and error correction method
CN109491828B (zh) 解码方法、存储器存储装置及存储器控制电路单元
JP2010079856A (ja) 記憶装置およびメモリ制御方法
JP4357305B2 (ja) 外部記憶装置
JP6438763B2 (ja) エラー訂正装置
US10922025B2 (en) Nonvolatile memory bad row management
US9104596B2 (en) Memory system
CN111258498A (zh) 一种flash存储器管理方法
CN111597126B (zh) 存取方法
KR20140101626A (ko) 솔리드 스테이트 드라이브의 데이터 처리 방법
US11604586B2 (en) Data protection method, with disk array tags, memory storage device and memory control circuit unit

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