JP2010237822A - メモリコントローラおよび半導体記憶装置 - Google Patents

メモリコントローラおよび半導体記憶装置 Download PDF

Info

Publication number
JP2010237822A
JP2010237822A JP2009083051A JP2009083051A JP2010237822A JP 2010237822 A JP2010237822 A JP 2010237822A JP 2009083051 A JP2009083051 A JP 2009083051A JP 2009083051 A JP2009083051 A JP 2009083051A JP 2010237822 A JP2010237822 A JP 2010237822A
Authority
JP
Japan
Prior art keywords
error correction
unit
memory
memory controller
error
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2009083051A
Other languages
English (en)
Inventor
Michiko Takahashi
美智子 高橋
Kenji Sakagami
健二 坂上
Hiroshi Sukegawa
博 助川
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
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2009083051A priority Critical patent/JP2010237822A/ja
Priority to US12/560,974 priority patent/US20100251075A1/en
Priority to KR1020100027719A priority patent/KR20100109445A/ko
Publication of JP2010237822A publication Critical patent/JP2010237822A/ja
Pending legal-status Critical Current

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/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

Abstract

【課題】それぞれが、いずれかのブロック33に分類可能な複数のメモリセル31から構成されたメモリ部30に記憶するデータの誤り訂正処理の効率が良いメモリコントローラ10および半導体記憶装置2を提供する。
【解決手段】誤り訂正数と対応した誤り訂正レベルを記憶する誤り訂正数対応テーブル25と、各ブロック単位の誤り訂正レベルを記憶する誤り訂正レベル記憶部23と、各ブロック単位ごとの誤り訂正不能回数を計測する訂正不能回数計測部26と、誤り訂正不能回数が所定の回数を超えるごとに、各ブロックの誤り訂正レベルを変更する誤り訂正レベル変更部24と、誤り訂正レベルおよび誤り訂正数対応テーブル25にもとづいた誤り訂正数で符号化処理を行う符号化器21と、復号器22と、を有する。
【選択図】図2

Description

本発明は、データを符号化処理し符号化データを生成するとともに符号化データを復号処理する誤り訂正部を有するメモリコントローラおよび半導体記憶装置に関し、特にNAND型フラッシュメモリ部に記憶するデータを符号化処理するときの誤り訂正数を変更できるメモリコントローラおよび半導体記憶装置に関する。
たとえば、特開2004−120419号公報には、フレーム長および誤り訂正数を任意に設定することができるリードソロモン符号化回路が開示されている。
しかし、NAND型フラッシュメモリ部に記憶するデータを符号化処理し符号化データを生成するとともに符号化データを復号処理するメモリコントローラにおいては、データを記憶するメモリ部が複数のメモリセルから構成されており、それぞれのメモリセルに記憶されたデータの誤りが発生する確率は同じではない。このため一律に同じ誤り訂正数を設定すると、設定された誤り訂正数が少ない場合には誤りが多発する。一方、設定された誤り訂正数が多い場合には長い誤り訂正符号、すなわちパリティをデータに付与するために符号化データ長が長くなり、ユーザが任意にデータを記憶可能なメモリ部の容量が減少する。また、不必要な処理が行われるために符号化処理および復号化処理の処理時間が長くなる。このように、単に誤り訂正数を増減可能なメモリコントローラを用いても、効率的に誤り訂正処理を行うことは容易ではないことがあった。
特開2004−120419号公報
本発明は誤り訂正処理の効率が良いメモリコントローラおよび前記メモリコントローラを具備する半導体記憶装置を提供することを目的とする。
本発明の一態様によれば、それぞれが複数の集合単位のいずれかに分類可能な複数のメモリセルにより構成されたフラッシュメモリ部に記憶するデータを符号化処理するときの誤り訂正数を増減可能なメモリコントローラであって、誤り訂正数と対応した誤り訂正レベルを記憶する誤り訂正数対応テーブルと、各集合単位の誤り訂正レベルを記憶する誤り訂正レベル記憶部と、各集合単位ごとの誤り訂正不能回数を計測する訂正不能回数計測部と、訂正不能回数計測部が計測した誤り訂正不能回数が所定の回数を超えるごとに、誤り訂正数記憶部に記憶されている各集合の誤り訂正レベルを変更する誤り訂正レベル変更部と、誤り訂正レベル部に記憶する誤り訂正レベルおよび誤り訂正数対応テーブルにもとづいた誤り訂正数で符号化処理を行う符号化器と、フラッシュメモリ部に記憶するデータの復号処理を行う復号器と、を有することを特徴とするメモリコントローラが提供される。
また、本発明の別の一態様によれば、それぞれが複数の集合単位のいずれかに分類可能な複数のメモリセルにより構成されたフラッシュメモリ部に記憶するデータを符号化処理するときの誤り訂正数を増減可能なメモリコントローラであって、誤り訂正数と対応した誤り訂正レベルを記憶する誤り訂正数対応テーブルと、各集合単位の誤り訂正レベルを記憶する誤り訂正レベル記憶部と、各集合単位ごとの誤り訂正不能回数を計測する訂正不能回数計測部と、訂正不能回数計測部が計測した誤り訂正不能回数が所定の回数を超えるごとに、誤り訂正数記憶部に記憶されている各集合の誤り訂正レベルを変更する誤り訂正レベル変更部と、誤り訂正レベル部に記憶する誤り訂正レベルおよび誤り訂正数対応テーブルにもとづいた誤り訂正数で符号化処理を行う符号化器と、フラッシュメモリ部に記憶するデータの復号処理を行う復号器と、を有するメモリコントローラと、フラッシュメモリ部とを具備する半導体記憶装置が提供される。
本発明は誤り訂正処理の効率が良いメモリコントローラおよび前記メモリコントローラを具備する半導体記憶装置を提供する。
第1の実施の形態の半導体装置の構成を示した構成図である。 第1の実施の形態の半導体装置の構成を示した構成図である。 第1の実施の形態のメモリコントローラの誤り訂正数対応テーブルの一例である。 第1の実施の形態のメモリコントローラの復号処理について説明するためのフローチャートである。 第1の実施の形態のメモリコントローラの復号処理について説明するための構成図である。 第1の実施の形態のメモリコントローラの符号化処理について説明するためのフローチャートである。 第1の実施の形態のメモリコントローラの符号化処理について説明するための構成図である。 第2の実施の形態の半導体装置の構成を示した構成図である。
<第1の実施の形態>
以下、図面を参照して本発明の第1の実施の形態のメモリコントローラおよび半導体記憶装置について説明する。
図1に示すように、本実施の形態の半導体記憶装置2は、パソコンまたはデジタルカメラ等のホスト3と着脱可能に接続される記憶媒体であり、たとえばメモリカード等の形態である。尚、本発明の実施形態としての半導体記憶装置(不図示)は、ホスト(不図示)の内部に収納され、ホストの起動データ等を記憶する、いわゆるエンベデッドタイプであってもよく、または半導体ディスク:SSD(Solid State Drive)等の形態であってもよい。あるいは半導体記憶装置2とホスト3とが、たとえば携帯音楽プレーヤであるMP3プレーヤ等のメモリシステム1を構成していてもよい。半導体記憶装置2は、メモリ部30と、メモリコントローラ10とを有する。メモリ部30はNAND型のフラッシュメモリ部であり、単位セルである多数のメモリセル31が、書き込みに用いるビット線(不図示)および読み出しに用いるワード線32等で接続された構成を有する。
なお、NAND型フラッシュメモリ部を有する半導体記憶装置2は、複数のメモリセル31に記憶されたデータを一括して消去することにより構成を簡略化している。このデータを一括消去処理するときの消去単位が図1に模式的に示したブロック33である。一方、半導体記憶装置2が、複数のメモリセル31に記憶されたデータを読み出す単位はブロック33よりも小さい大きさのページと呼ばれる単位である。すなわち、ページは複数のメモリセル31により構成され、ブロック33は複数のページにより構成され、メモリ部30は複数のブロック33により構成されている。
メモリコントローラ10は、バス17を介して接続された、ROM13と、制御部であるCPU11と、RAM15と、ホスト I/F(インターフェイス)12と、記憶するデータの符号化処理を行い符号化データを出力する符号化器21および記憶された符号化データの復号処理を行う復号器22を有する誤り訂正数を増減可能な誤り訂正(ECC:Error Correcting Code)部20と、NAND I/F(インターフェイス)14とを具備する。メモリコントローラ10は、CPU11を用いて、ホストI/F18を介してホスト3とのデータ送受信を、NAND I/F21を介してメモリ部30とのデータ送受信を行う。
以上のように、メモリコントローラ10は、複数のメモリセル31を含むメモリセルアレイが複数のブロック33で構成され、それぞれのブロック33がブロック単位で消去可能に構成されたメモリ部30に対して、メモリ部30に記憶するデータを符号化処理および復号化処理をする。
次に、図2を用いて、本実施の形態のメモリコントローラ10の構成について、より詳細に説明する。図2に示すように、メモリコントローラ10は、ECC20と、ECC20が誤り訂正数を増減するため機能等を行う機能部18とを有する。
ECC20の符号化器21はホスト3から入力されたデータに対して、後述する誤り訂正レベル(Error Threshold Level:以下、「ETL」ともいう。)記憶部23に記憶されている誤り訂正数にもとづいて、各ブロック33ごとにパリティ長の異なるパリティを算出するパリティ算出部21Aと、データにパリティを付与して符号化データとするためのセレクタ21Bとを有する。すなわち、符号化器21は誤り訂正レベル記憶部23に記憶した誤り訂正レベルと、誤り訂正数と対応した誤り訂正レベルを記憶する誤り訂正数対応テーブル25と、にもとづいた誤り訂正数で各ブロックに属するメモリセルに記憶するデータの符号化処理を行う。
ECC20の復号器22は、メモリ部30からページ単位で読み出した符号化データの誤りを検出し訂正するために、シンドロームを算出するシンドローム算出部22Aと、誤り位置多項式を算出する誤り位置多項式算出部22Bと、誤り位置を探索するチェンサーチ部22Cと、特定された誤り位置の誤りを訂正する誤り訂正部(不図示)とを有する。
すなわち、復号処理においては、最初にシンドローム算出部22Aにおいてシンドロームが算出される。シンドローム算出値がゼロの場合には、誤りの個数Nがゼロであることを意味しており、誤り訂正を行う必要はないため、当該データは、ホストインターフェイス12を介してホスト3に出力される。シンドローム算出値がゼロでない場合、シンドロームを基に、誤り位置多項式算出部22Bおいて、誤り位置多項式が算出される。算出された誤り位置多項式の係数がN次の多項式で表された場合には、N個の誤りがあることを意味している。
誤り位置多項式算出により、N個の誤りがあることが発見された場合には、次のステップとして、チェンサーチ部22Cにおいて誤り位置が特定される。チェンサーチ部22Cにおいては、N次の誤り位置多項式の変数Xに、あり得る全ての値(たとえば、0〜M:Mは最終ビット位置または最終バイト位置)を順次、代入して、誤り位置多項式を満たすかどうかを探索していく。そして、N個の解の全てが特定された時点で、誤り訂正部は一括して誤りデータを訂正する。
誤り訂正部における誤り訂正は、BCH符号を有する符号化データの場合には、ビット反転が行われる。リードソロモン符号を有する符号化データの場合には、さらに連立一次方程式を解くことにより8ビットのデータとして誤り訂正後の値が算出される。
そして、機能部18は、各ブロックに対応した誤り訂正数に対応した誤り訂正レベルETLを記憶する誤り訂正レベル記憶部23と、復号処理のときの各ブロックごとの誤り訂正不能回数を計測する訂正不能回数計測部26と、訂正不能回数計測部26が計測した誤り訂正不能回数が所定の回数を超えるごとに、誤り訂正レベル記憶部23に記憶されている各ブロックに対応したETLを増加する誤り訂正レベル変更部24と、ETLと誤り訂正数Tとの対応を記憶した誤り訂正数対応テーブル25と、を有する。すなわちメモリコントローラ10は、それぞれのブロックごとに誤り訂正数を自動調整する。
なお、ここでは説明を容易にするために機能部18を独立した構成要素として説明しているが、機能部18の各構成要素は、すでに説明したCPU11およびRAM15の一部である。たとえば、訂正不能回数計測部26および誤り訂正レベル変更部24の動作は、CPU11がファームウエア(FW)により実行する。また、誤り訂正レベル記憶部23および誤り訂正数対応テーブル25はRAM15の一部である。もちろん機能部18の各構成要素が実際にCPU11またはRAM15から独立した構成要素であってもよい。
ここで、NAND型フラッシュメモリ部を有する半導体記憶装置2は、書き込み/消去回数の増加につれて記憶したデータを読み出すときに誤りが多くなる傾向にある。これはNAND型フラッシュメモリ部のメモリセル31に対する書き込み/消去処理では、基板に対してゲートに高電圧がかけられフローティングゲートに電子が注入されることに起因する。書き込み/消去処理回数の増加につれて、フローティングゲート周りの酸化膜が劣化するため、誤りが増加する。また、メモリ部30内の複数のブロックは、ブロックごとに、書き込み/消去処理回数が異なる。
長期間の使用後も誤り訂正不能が発生しないようにするためには、最初、たとえば工場出荷時から将来の誤りの発生増加を考慮して誤り訂正数を設定する必要がある。すると、すでに説明したように誤り訂正処理の効率が悪くなる。
これに対して、メモリコントローラ10は半導体記憶装置2の使用開始時には、誤り訂正数の少ない復号処理を行い、誤り発生の増加に応じて、ブロックごとに誤り訂正数を増加する。
なお、メモリコントローラ10は、半導体記憶装置2の使用開始前から、書き込み/消去処理回数が多くなることが判明しているブロック、たとえば、FAT領域のブロックに対しては、誤り訂正数の初期値を、他のブロックよりも多く設定しておいてもよい。
ここで、図3は本実施の形態のメモリコントローラ10の誤り訂正数対応テーブル25の一例である。図3に示した例では、誤り訂正数を誤り訂正レベル0、1、2の3レベルに分類している。そして、誤り訂正レベル0は0〜4ビットの誤りに対応して訂正能力が4ビットと小さいが、パリティ長pが7バイトと小さい。誤り訂正レベル1は5〜12ビットの誤りに対応して訂正能力が12ビットであり、パリティ長pは20バイトとなる。そして、誤り訂正レベル2は13〜16ビットの誤りに対応して訂正能力が16ビットと大きいが、パリティ長pが26バイトと長い。なお上記誤り訂正数対応テーブルはECC20の最大誤り訂正数が16ビットの例であり、誤り訂正数対応テーブルは、ECC20の最大誤り訂正数に応じて適宜設定される
すなわち、メモリコントローラ10は誤り訂正数を誤り訂正レベルETLに分類し、ETLと誤り訂正数Tとの対応を記憶した誤り訂正数対応テーブル25を用いることにより、誤り訂正数変更処理の発生頻度を減少している。このためメモリコントローラ10は復号処理の効率がよい。
次に図4および図5を用いて、メモリコントローラ10の復号処理について説明する。図4はメモリコントローラ10の復号処理について説明するためのフローチャートであり、以下、図4のフローチャートに従って説明する。
<ステップS10> 初期化ステップ
メモリコントローラ10は半導体記憶装置2の工場出荷時には、ブロックに応じた誤り訂正レベルETLを誤り訂正数対応テーブル25に記憶している。
そして、メモリコントローラ10は半導体記憶装置2の使用開始後には、前回使用を終了したときの、ブロックごとの誤り訂正不能回数に応じた誤り訂正レベルETLを誤り訂正数対応テーブル25に記憶している。
すなわち、メモリコントローラ10は、たとえば、論理アドレス/物理アドレス変換テーブル(不図示)とともに、メモリ部30等に記憶されている誤り訂正数対応テーブル25、前回使用を終了したときの訂正不能回数計測部26が計測した訂正不能回数、および各ブロックの誤り訂正レベルの情報をRAM15に転送する。また、CPU11が訂正不能回数計測部26および誤り訂正レベル変更部24の動作を行うためのFWをROM13等からCPU11に転送する。
なお、図5に示すメモリコントローラ10では、今までの誤り訂正レベルETLがETL記憶部23にブロックアドレスBAと対応付けて記憶されている。すなわちブロックアドレスBAと対応付けて、そのブロックのETL、およびが符号長nが記憶されている。
<ステップS11> 読み出しコマンド入力
ホスト3から論理アドレスで位置を指定されたデータの読み出しコマンドが入力される。すなわち、半導体記憶装置2では、書き込み/消去処理が特定のメモリセルに集中することを回避するために、消去処理回数をカウントし消去処理回数の多いメモリセルと少ないメモリセルとを入れ替えて、書き込み/消去処理回数の平均化をはかる、いわゆるウェアレベリングが実施されている。
ウェアレベリングを行う半導体記憶装置2では、ホストがメモリセルのメモリ部中の物理的な位置を示す物理アドレスを用いてデータ記憶位置を特定することは困難である。このため、ホスト3からは論理空間における位置を示す論論理アドレスによりデータの位置が指定される。
<ステップS12> 論物変換、ETL読み出し
メモリコントローラ10は、論理アドレスを、論理アドレス/物理アドレス変換テーブル(不図示)を用いて、物理アドレスに変換する。
メモリコントローラ10は、さらに、たとえば、論理アドレス/物理アドレス変換テーブルと関連したサブテーブルとして誤り訂正レベル記憶部23に記憶されている、読み出し対象の物理アドレスのメモリセル31が属するブロックの誤り訂正レベルETLを制御レジスタ11Aに読み込む。制御レジスタ11AはたとえばCPU11の一部である。
<ステップS13> 誤り訂正数算出
メモリコントローラ10は、RAM15に記憶されている誤り訂正数対応テーブル25と、ブロックに対応した誤り訂正レベルとから、読み出し対象のブロックに対応した誤り訂正数を算出する。
なお、図3に示した誤り訂正数対応テーブル25では、誤り訂正数を3個のレベルに分類していたが、より多くのレベルに分類してもよい。たとえば、誤り訂正数と同じ数のレベルに分類してもよい。
<ステップS14> データ読み出し
メモリコントローラ10は、読み出し対象のメモリセル31の符号化データを読み出す。
<ステップS15> 復号処理
メモリコントローラ10の復号器22は読み出された符号化データの復号処理を行い、復号できた場合、すなわち、誤りの数が誤り訂正数以下の場合には誤り訂正を行ったデータをホスト3に出力する。
<ステップS16> 誤り訂正不能判断
符号化処理において、誤りの数が誤り訂正数を超えた場合には、復号器22は誤り訂正不能信号を訂正不能回数計測部26に出力する。
<ステップS17> 誤り訂正不能回数積算
訂正不能回数計測部26は復号器22から誤り訂正不能信号を受信すると、内部の誤り訂正不能回数カウンタ(不図示)に1を加算する。
<ステップS18> 誤り訂正不能回数比較
訂正不能回数計測部26は、誤り訂正不能回数カウンタの回数、すなわち誤り訂正不能回数を、所定の回数である誤り訂正不能回数閾値と比較する。誤り訂正不能回数閾値は、半導体記憶装置2により予め設定されるが、1以上であればよく、たとえば100である。
<ステップS19> 誤り訂正レベル変更
誤り訂正レベル変更部24は、誤り訂正不能回数が誤り訂正不能回数閾値を超えていた場合には、そのブロックの誤り訂正レベルを、より誤り訂正能力の高いレベルに変更するために、誤り訂正レベル1を加算する。このとき、訂正不能回数計測部26は、誤り訂正不能回数カウンタの回数をリセットする。
なお、誤り訂正不能回数閾値は誤り訂正レベルにより異なっていても良い。たとえば、誤り訂正レベル0から1への変更は誤り訂正不能回数閾値を10回とし、1から2への変更は誤り訂正不能回数閾値を100回としてもよい。
<ステップS20> 処理継続
メモリコントローラ10はホスト3から終了指示があるまで上記の処理を繰り返す。
<ステップS21> ETLデータ保存処理
ホスト3から終了指示があったとき、メモリコントローラは、訂正不能回数計測部26の誤り訂正不能回数カウンタの回数と、誤り訂正レベル記憶部23の情報とを、メモリ部30等に転送し保存する。
次に、図6および図7を用いて、メモリコントローラ10の符号化処理について説明する。図6はメモリコントローラ10の符号化処理について説明するためのフローチャートであり、以下、図6のフローチャートに従って説明する。
<ステップS30> 初期化
メモリコントローラ10は、メモリ部30等に記憶されている誤り訂正数対応テーブル25等をRAM15等に転送する。
<ステップS31> 書き込みコマンド入力
ホスト3から論理アドレスで位置を指定されたデータの書き込みコマンドが入力される。
<ステップS32> 論物変換、ETL読み出し
メモリコントローラ10は、論理アドレスを、論理アドレス/物理アドレス変換テーブル(不図示)を用いて、物理アドレスに変換する。
さらに、メモリコントローラ10は、誤り訂正レベル記憶部23に記憶されている、変換された物理アドレスのメモリセル31が属するブロックの誤り訂正レベルETLを制御レジスタ11Aに読み込む。
<ステップS33> 誤り訂正数算出
メモリコントローラ10は、誤り訂正数対応テーブル25と、ブロックに対応した誤り訂正レベルとから、対象のブロックに対応した誤り訂正数を算出する。
<ステップS34> パリティ生成
符号化器21は、誤り訂正数に応じた符号長のパリティを生成し、データに付加し、符号化データを生成する。
<ステップS35> 記憶処理
メモリコントローラ10は符号化データをメモリ部30の指定されたブロック内のメモリセル31に記憶する。
<ステップS36> 処理継続
メモリコントローラ10はホスト3から終了指示があるまで上記の処理を繰り返す。
以上の説明のように、本実施の形態のメモリコントローラ10は、工場出荷時の初期設定の誤り訂正数を、ECC部20の最大誤り訂正数よりも小さくしているため、パリティ長が短くユーザが使用可能なメモリ部30の容量が大きい。また、メモリコントローラ10および半導体記憶装置2は少ない誤り訂正数の符号化データを作成するために符号化器21および復号器22の処理負荷が小さく、処理速度が速く低消費電力であるため、誤り訂正処理の効率がよい。
さらに、メモリコントローラ10および半導体記憶装置2は、半導体記憶装置2の使用につれて、いずれかのブロックのデータの誤りが多くなっても、ブロック単位での誤り発生率増加に応じてブロック単位で最適値に自動調整することができるため、誤り訂正処理の効率がよい。すなわち、メモリコントローラ10および半導体記憶装置2は、誤り数および誤りレベル、言い換えればメモリ部30の信頼性に対応して柔軟に誤り訂正数を最適値に自動調整できる。
なお、上記説明では、ブロックを集合単位とする場合を例に説明したが、複数のブロックからなるブロックグループを集合単位としてもよい。
<第2の実施の形態>
以下、図8を参照して本発明の第2の実施の形態のメモリコントローラ10Bおよび半導体記憶装置2Bを説明する。第2の実施の形態のメモリシステム1B、メモリコントローラ10Bおよび半導体記憶装置2Bは、第1の実施の形態のメモリシステム1、メモリコントローラ10および半導体記憶装置2と類似しているため同じ構成要素には同じ符号を付し説明は省略する。
半導体記憶装置2Bのメモリ部30Bには、1つのメモリセル31に記憶するデータのビット数を2とした、いわゆる多値メモリセル31Aからなる多値メモリ(MLC:Multi Level Cell)領域30Cと、1つのメモリセル31に記憶するデータのビット数が1のシングルビットメモリセル31Bからなる2値(SLC:Single Level Cell)領域30Dとが存在している。多値メモリセル31Aはシングルビットメモリセル31Bの2倍のデータが記憶可能であるため、半導体記憶装置2Bの大容量化に大きく寄与する。しかし、多値メモリセル31Aはシングルビットメモリセル31Bと比較すると、読み出しのときに誤りが発生しやすい。
半導体記憶装置2Bのメモリコントローラ10Bは、多値メモリセル31Aからなるメモリセルの集合単位と、シングルビットメモリセル31Bからなるメモリセルの集合単位と、で符号化処理のときの誤り訂正数を変更する。
すなわち、半導体記憶装置2Bのメモリコントローラ10Bは、1つのメモリセルに記憶するデータのビット数が同じメモリセルからなる集合単位ごとに、誤り訂正数を管理する。たとえば、1つのメモリセルに記憶するデータのビット数が2ビットの2ビットメモリセルと、1つのメモリセルに記憶するデータのビット数が3ビットの3ビットメモリセルと、を有する半導体記憶装置2Bのメモリコントローラ10Bでは、2ビットメモリセルと3ビットメモリセルとを集合単位とする。
本実施の形態のメモリコントローラ10Bおよび半導体記憶装置2Bは、メモリセルに記憶するビット数が異なるためにメモリセルの集合単位により誤り発生の程度が異なっていても、第1の実施の形態の場合と同じように、誤り訂正処理の効率がよい。
<第2の実施の形態の変形例>
第2の実施の形態のメモリコントローラ10Bおよび半導体記憶装置2Bは、多値メモリセル31Aからなるメモリセルの集合単位と、シングルビットメモリセル31Bからなるメモリセルの集合単位と、で符号化処理のときの誤り訂正数を設定したが、メモリセルの集合単位はこれに限られるものではない。
たとえば、メモリ部30が物理的に複数の領域、すなわちPlainを有する場合にはPlainを集合単位としてもよい。または、データ読み込み単位であるページを集合単位としてもよい。ページを集合単位とする場合にはページの管理部(冗長部)に、そのページの誤り訂正不能回数と誤り訂正レベルを記憶できる。
さらに、同じブロック内でも、物理的に特定ワードラインまたはカラム領域でエラー発生率が高くなることがあるので、ワードライン単位またはカラム領域を集合単位としてもよい。すなわち、集合単位としては、ワード線32での奇数・偶数Page単位、ページ内での内先頭・末端カラムに特化したECCフレーム単位等が挙げられる。言い換えれば、メモリセルの集合単位はメモリ部内の物理構造に依存した信頼性パラメータにより分類可能な複数のメモリセルにより構成されている。
さらに、ブロックグループと同様に、複数の前記集合単位からなるグループを単位としてもよい。また、ブロックとワードラインとの組み合わせのように、異なる種別の集合単位を組み合わせた単位でもよい。
上記のように、本発明は、上述した実施の形態または変形例に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更または改変等が可能である。
1…メモリシステム、2、2B…半導体記憶装置、3…ホスト、10、10B…メモリコントローラ、11…CPU、11A…制御レジスタ、12…ホストインターフェイス、17…バス、18…機能部、20…ECC部、21…符号化器、21A…パリティ算出部、21B…セレクタ、22…復号器、22A…シンドローム算出部、22B…位置多項式算出部、22C…チェンサーチ部、23…誤り訂正レベル記憶部、24…誤り訂正レベル変更部、25…誤り訂正数対応テーブル、26…訂正不能回数計測部、30…NAND型フラッシュメモリ部、30、30B…メモリ部、30C…MLC領域、30D…SLC領域、31…メモリセル、32…ワード線、33…ブロック

Claims (5)

  1. それぞれが複数の集合単位のいずれかに分類可能な複数のメモリセルにより構成されたフラッシュメモリ部に記憶したデータを符号化処理するときの誤り訂正数を増減可能なメモリコントローラであって、
    前記誤り訂正数と対応した誤り訂正レベルを記憶する誤り訂正数対応テーブルと、
    各集合単位の誤り訂正レベルを記憶する誤り訂正レベル記憶部と、
    前記各集合単位ごとの誤り訂正不能回数を計測する訂正不能回数計測部と、
    前記訂正不能回数計測部が計測した前記誤り訂正不能回数が所定の回数を超えるごとに、前記誤り訂正数記憶部に記憶されている前記各集合の誤り訂正レベルを変更する誤り訂正レベル変更部と、
    前記誤り訂正レベル部に記憶する前記誤り訂正レベルおよび前記誤り訂正数対応テーブルにもとづいた前記誤り訂正数で前記符号化処理を行う符号化器と、
    前記フラッシュメモリ部に記憶するデータの復号処理を行う復号器と、
    を有することを特徴とするメモリコントローラ。
  2. 前記集合単位が、消去単位であるブロックであることを特徴とする請求項1に記載のメモリコントローラ。
  3. 前記集合単位が、1つの前記メモリセルに記憶するデータのビット数が同じ前記メモリセルからなる集合単位であることを特徴とする請求項1に記載のメモリコントローラ。
  4. 前記誤り訂正レベルの初期値を、前記各集合単位ごとに設定することを特徴とする請求項1から請求項3のいずれか1項に記載のメモリコントローラ。
  5. 請求項1から請求項4のいずれか1項に記載のメモリコントローラと、前記フラッシュメモリ部とを少なくとも具備することを特徴とする半導体記憶装置。
JP2009083051A 2009-03-30 2009-03-30 メモリコントローラおよび半導体記憶装置 Pending JP2010237822A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2009083051A JP2010237822A (ja) 2009-03-30 2009-03-30 メモリコントローラおよび半導体記憶装置
US12/560,974 US20100251075A1 (en) 2009-03-30 2009-09-16 Memory controller and semiconductor memory apparatus
KR1020100027719A KR20100109445A (ko) 2009-03-30 2010-03-29 메모리 컨트롤러 및 반도체 기억 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009083051A JP2010237822A (ja) 2009-03-30 2009-03-30 メモリコントローラおよび半導体記憶装置

Publications (1)

Publication Number Publication Date
JP2010237822A true JP2010237822A (ja) 2010-10-21

Family

ID=42785827

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009083051A Pending JP2010237822A (ja) 2009-03-30 2009-03-30 メモリコントローラおよび半導体記憶装置

Country Status (3)

Country Link
US (1) US20100251075A1 (ja)
JP (1) JP2010237822A (ja)
KR (1) KR20100109445A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013242694A (ja) * 2012-05-21 2013-12-05 Renesas Mobile Corp 半導体装置、電子装置、電子システム及び電子装置の制御方法
WO2014089312A1 (en) * 2012-12-06 2014-06-12 Micron Technology, Inc. Setting a default read signal based on error correction
US9230684B2 (en) 2012-12-19 2016-01-05 Kabushiki Kaisha Toshiba Memory controller, storage device, and memory control method

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8745451B2 (en) * 2009-07-02 2014-06-03 Sony Corporation Method and device for processing signal data
JP5039193B2 (ja) * 2010-09-22 2012-10-03 株式会社東芝 半導体記憶装置および制御方法
JP5605238B2 (ja) * 2011-01-25 2014-10-15 ソニー株式会社 メモリシステムおよびその動作方法
US8601347B1 (en) * 2012-06-21 2013-12-03 Hitachi, Ltd. Flash memory device and storage control method
US20140068378A1 (en) * 2012-08-31 2014-03-06 Kabushiki Kaisha Toshiba Semiconductor storage device and memory controller
JP2014082574A (ja) 2012-10-15 2014-05-08 Samsung Electronics Co Ltd 誤り検出訂正回路、及びメモリ装置
US10241866B2 (en) 2013-01-04 2019-03-26 International Business Machines Corporation Allocating rebuilding queue entries in a dispersed storage network
US9311187B2 (en) * 2013-01-04 2016-04-12 Cleversafe, Inc. Achieving storage compliance in a dispersed storage network
US11416340B1 (en) 2013-01-04 2022-08-16 Pure Storage, Inc. Storage system with multiple storage types in a vast storage network
US10204009B2 (en) 2013-01-04 2019-02-12 International Business Machines Corporation Prioritized rebuilds using dispersed indices
US10013203B2 (en) * 2013-01-04 2018-07-03 International Business Machines Corporation Achieving storage compliance in a dispersed storage network
US10229002B2 (en) 2013-01-04 2019-03-12 International Business Machines Corporation Process to migrate named objects to a dispersed or distributed storage network (DSN)
US9349476B2 (en) * 2013-02-21 2016-05-24 Sandisk Technologies Inc. Methods, systems, and computer readable media for early detection of potential flash failures using an adaptive system level algorithm based on flash program verify
US9563373B2 (en) * 2014-10-21 2017-02-07 International Business Machines Corporation Detecting error count deviations for non-volatile memory blocks for advanced non-volatile memory block management
US10365859B2 (en) 2014-10-21 2019-07-30 International Business Machines Corporation Storage array management employing a merged background management process
US9990279B2 (en) 2014-12-23 2018-06-05 International Business Machines Corporation Page-level health equalization
US10339048B2 (en) 2014-12-23 2019-07-02 International Business Machines Corporation Endurance enhancement scheme using memory re-evaluation
US9811417B2 (en) 2015-03-12 2017-11-07 Toshiba Memory Corporation Semiconductor memory device
US9772901B2 (en) * 2015-05-08 2017-09-26 Nxp Usa, Inc. Memory reliability using error-correcting code
KR20160146332A (ko) * 2015-06-12 2016-12-21 에스케이하이닉스 주식회사 복수의 저장 영역들을 포함하는 메모리 시스템 및 그것의 동작 방법
WO2018020299A1 (en) * 2016-07-29 2018-02-01 Chan Kam Fu Lossless compression and decompression methods
KR20180090422A (ko) * 2017-02-02 2018-08-13 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR20230064279A (ko) * 2021-11-03 2023-05-10 에스케이하이닉스 주식회사 메모리 시스템에서 데이터를 복구하는 장치 및 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004120419A (ja) * 2002-09-26 2004-04-15 Oki Electric Ind Co Ltd リードソロモン符号化回路およびリードソロモン復号化回路
JP2004240793A (ja) * 2003-02-07 2004-08-26 Renesas Technology Corp メモリシステム
JP2008192054A (ja) * 2007-02-07 2008-08-21 Megachips Lsi Solutions Inc 半導体メモリシステム
JP2008192240A (ja) * 2007-02-05 2008-08-21 Toshiba Corp 半導体メモリと半導体メモリシステム
WO2008109586A1 (en) * 2007-03-08 2008-09-12 Intel Corporation A method, apparatus, and system for dynamic ecc code rate adjustment

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4117458A (en) * 1977-03-04 1978-09-26 Grumman Aerospace Corporation High speed double error correction plus triple error detection system
KR19990056099A (ko) * 1997-12-29 1999-07-15 윤종용 에러정정코드 임계치 변경을 이용한 데이타섹터 재 할당방법
JP2000059237A (ja) * 1998-08-07 2000-02-25 Nec Corp 誤り訂正復号方法及びその装置
KR100604909B1 (ko) * 2004-10-11 2006-07-28 삼성전자주식회사 가변적인 반복 에러 정정 횟수를 갖는 디지털 신호 처리방법
US20070011513A1 (en) * 2005-06-13 2007-01-11 Intel Corporation Selective activation of error mitigation based on bit level error count
US7480848B2 (en) * 2006-02-10 2009-01-20 The Directv Group, Inc. Methods and apparatus to select tornado error correction parameters
US7900116B2 (en) * 2006-08-07 2011-03-01 Broadcom Corporation Switch with error checking and correcting
KR100842680B1 (ko) * 2007-01-08 2008-07-01 삼성전자주식회사 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템
JP2009129070A (ja) * 2007-11-21 2009-06-11 Hitachi Ltd フラッシュメモリ記憶装置の制御方法、その方法を用いたフラッシュメモリ記憶装置及びストレージシステム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004120419A (ja) * 2002-09-26 2004-04-15 Oki Electric Ind Co Ltd リードソロモン符号化回路およびリードソロモン復号化回路
JP2004240793A (ja) * 2003-02-07 2004-08-26 Renesas Technology Corp メモリシステム
JP2008192240A (ja) * 2007-02-05 2008-08-21 Toshiba Corp 半導体メモリと半導体メモリシステム
JP2008192054A (ja) * 2007-02-07 2008-08-21 Megachips Lsi Solutions Inc 半導体メモリシステム
WO2008109586A1 (en) * 2007-03-08 2008-09-12 Intel Corporation A method, apparatus, and system for dynamic ecc code rate adjustment

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013242694A (ja) * 2012-05-21 2013-12-05 Renesas Mobile Corp 半導体装置、電子装置、電子システム及び電子装置の制御方法
WO2014089312A1 (en) * 2012-12-06 2014-06-12 Micron Technology, Inc. Setting a default read signal based on error correction
US9257203B2 (en) 2012-12-06 2016-02-09 Micron Technology, Inc. Setting a default read signal based on error correction
US9582362B2 (en) 2012-12-06 2017-02-28 Micron Technology, Inc. Setting a default read signal based on error correction
US9941022B2 (en) 2012-12-06 2018-04-10 Micron Technology, Inc. Setting a default read signal based on error correction
US10535419B2 (en) 2012-12-06 2020-01-14 Micron Technology, Inc. Setting a default read signal based on error correction
US9230684B2 (en) 2012-12-19 2016-01-05 Kabushiki Kaisha Toshiba Memory controller, storage device, and memory control method

Also Published As

Publication number Publication date
US20100251075A1 (en) 2010-09-30
KR20100109445A (ko) 2010-10-08

Similar Documents

Publication Publication Date Title
JP2010237822A (ja) メモリコントローラおよび半導体記憶装置
US8281217B2 (en) Memory devices and encoding and/or decoding methods
US8307261B2 (en) Non-volatile memory management method
US9583217B2 (en) Decoding method, memory storage device and memory control circuit unit
TWI474330B (zh) 用來進行記憶體存取管理之方法以及記憶裝置及其控制器
US9543983B2 (en) Decoding method, memory storage device and memory control circuit unit
JP6110953B2 (ja) 階層化反復誤り訂正のための停止基準
US9092350B1 (en) Detection and handling of unbalanced errors in interleaved codewords
US9529666B2 (en) Decoding method, memory storage device and memory controlling circuit unit
US10103748B2 (en) Decoding method, memory control circuit unit and memory storage device
US9471421B2 (en) Data accessing method, memory storage device and memory controlling circuit unit
US10067824B2 (en) Error processing method, memory storage device and memory controlling circuit unit
JP2012118979A (ja) Nandフラッシュ・メモリにおける確率論的多層エラー訂正のためのシステム、方法、およびコンピュータ・プログラム
US10679707B2 (en) Voltage adjusting method, memory controlling circuit unit and memory storage device
US20100241932A1 (en) Error detector/corrector, memory controller, and semiconductor memory device
US8762823B2 (en) Method for performing data shaping, and associated memory device and controller thereof
US10009045B2 (en) Decoding method, memory controlling circuit unit and memory storage device
US8762814B2 (en) Method for enhancing error correction capability, and associated memory device and controller thereof
US10193569B2 (en) Decoding method, memory storage device and memory control circuit unit
US10324787B2 (en) Decoding method, memory storage device and memory control circuit unit
US10872667B2 (en) Decoding method, memory controlling circuit unit and memory storage device
KR20160075001A (ko) 플래시 메모리 시스템 동작 방법
US11146295B1 (en) Decoding method, memory storage device, and memory controlling circuit unit
TW201526013A (zh) 儲存裝置及其存取方法
TWI836877B (zh) 讀取電壓校正方法、記憶體儲存裝置及記憶體控制電路單元

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110412

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110610

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110628