(57)【要約】【課題】それぞれが、いずれかのブロック３３に分類可能な複数のメモリセル３１から構成されたメモリ部３０に記憶するデータの誤り訂正処理の効率が良いメモリコントローラ１０および半導体記憶装置２を提供する。【解決手段】誤り訂正数と対応した誤り訂正レベルを記憶する誤り訂正数対応テーブル２５と、各ブロック単位の誤り訂正レベルを記憶する誤り訂正レベル記憶部２３と、各ブロック単位ごとの誤り訂正不能回数を計測する訂正不能回数計測部２６と、誤り訂正不能回数が所定の回数を超えるごとに、各ブロックの誤り訂正レベルを変更する誤り訂正レベル変更部２４と、誤り訂正レベルおよび誤り訂正数対応テーブル２５にもとづいた誤り訂正数で符号化処理を行う符号化器２１と、復号器２２と、を有する。【選択図】図２
2010237822.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが複数の集合単位のいずれかに分類可能な複数のメモリセルにより構成されたフラッシュメモリ部に記憶したデータを符号化処理するときの誤り訂正数を増減可能なメモリコントローラであって、
前記誤り訂正数と対応した誤り訂正レベルを記憶する誤り訂正数対応テーブルと、
各集合単位の誤り訂正レベルを記憶する誤り訂正レベル記憶部と、
前記各集合単位ごとの誤り訂正不能回数を計測する訂正不能回数計測部と、
前記訂正不能回数計測部が計測した前記誤り訂正不能回数が所定の回数を超えるごとに、前記誤り訂正数記憶部に記憶されている前記各集合の誤り訂正レベルを変更する誤り訂正レベル変更部と、
前記誤り訂正レベル部に記憶する前記誤り訂正レベルおよび前記誤り訂正数対応テーブルにもとづいた前記誤り訂正数で前記符号化処理を行う符号化器と、
前記フラッシュメモリ部に記憶するデータの復号処理を行う復号器と、
を有することを特徴とするメモリコントローラ。
【請求項２】
前記集合単位が、消去単位であるブロックであることを特徴とする請求項１に記載のメモリコントローラ。
【請求項３】
前記集合単位が、１つの前記メモリセルに記憶するデータのビット数が同じ前記メモリセルからなる集合単位であることを特徴とする請求項１に記載のメモリコントローラ。
【請求項４】
前記誤り訂正レベルの初期値を、前記各集合単位ごとに設定することを特徴とする請求項１から請求項３のいずれか１項に記載のメモリコントローラ。
【請求項５】
請求項１から請求項４のいずれか１項に記載のメモリコントローラと、前記フラッシュメモリ部とを少なくとも具備することを特徴とする半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを符号化処理し符号化データを生成するとともに符号化データを復号処理する誤り訂正部を有するメモリコントローラおよび半導体記憶装置に関し、特にＮＡＮＤ型フラッシュメモリ部に記憶するデータを符号化処理するときの誤り訂正数を変更できるメモリコントローラおよび半導体記憶装置に関する。
【背景技術】
【０００２】
たとえば、特開２００４−１２０４１９号公報には、フレーム長および誤り訂正数を任意に設定することができるリードソロモン符号化回路が開示されている。
【０００３】
しかし、ＮＡＮＤ型フラッシュメモリ部に記憶するデータを符号化処理し符号化データを生成するとともに符号化データを復号処理するメモリコントローラにおいては、データを記憶するメモリ部が複数のメモリセルから構成されており、それぞれのメモリセルに記憶されたデータの誤りが発生する確率は同じではない。このため一律に同じ誤り訂正数を設定すると、設定された誤り訂正数が少ない場合には誤りが多発する。一方、設定された誤り訂正数が多い場合には長い誤り訂正符号、すなわちパリティをデータに付与するために符号化データ長が長くなり、ユーザが任意にデータを記憶可能なメモリ部の容量が減少する。また、不必要な処理が行われるために符号化処理および復号化処理の処理時間が長くなる。このように、単に誤り訂正数を増減可能なメモリコントローラを用いても、効率的に誤り訂正処理を行うことは容易ではないことがあった。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−１２０４１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は誤り訂正処理の効率が良いメモリコントローラおよび前記メモリコントローラを具備する半導体記憶装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一態様によれば、それぞれが複数の集合単位のいずれかに分類可能な複数のメモリセルにより構成されたフラッシュメモリ部に記憶するデータを符号化処理するときの誤り訂正数を増減可能なメモリコントローラであって、誤り訂正数と対応した誤り訂正レベルを記憶する誤り訂正数対応テーブルと、各集合単位の誤り訂正レベルを記憶する誤り訂正レベル記憶部と、各集合単位ごとの誤り訂正不能回数を計測する訂正不能回数計測部と、訂正不能回数計測部が計測した誤り訂正不能回数が所定の回数を超えるごとに、誤り訂正数記憶部に記憶されている各集合の誤り訂正レベルを変更する誤り訂正レベル変更部と、誤り訂正レベル部に記憶する誤り訂正レベルおよび誤り訂正数対応テーブルにもとづいた誤り訂正数で符号化処理を行う符号化器と、フラッシュメモリ部に記憶するデータの復号処理を行う復号器と、を有することを特徴とするメモリコントローラが提供される。
【０００７】
また、本発明の別の一態様によれば、それぞれが複数の集合単位のいずれかに分類可能な複数のメモリセルにより構成されたフラッシュメモリ部に記憶するデータを符号化処理するときの誤り訂正数を増減可能なメモリコントローラであって、誤り訂正数と対応した誤り訂正レベルを記憶する誤り訂正数対応テーブルと、各集合単位の誤り訂正レベルを記憶する誤り訂正レベル記憶部と、各集合単位ごとの誤り訂正不能回数を計測する訂正不能回数計測部と、訂正不能回数計測部が計測した誤り訂正不能回数が所定の回数を超えるごとに、誤り訂正数記憶部に記憶されている各集合の誤り訂正レベルを変更する誤り訂正レベル変更部と、誤り訂正レベル部に記憶する誤り訂正レベルおよび誤り訂正数対応テーブルにもとづいた誤り訂正数で符号化処理を行う符号化器と、フラッシュメモリ部に記憶するデータの復号処理を行う復号器と、を有するメモリコントローラと、フラッシュメモリ部とを具備する半導体記憶装置が提供される。
【発明の効果】
【０００８】
本発明は誤り訂正処理の効率が良いメモリコントローラおよび前記メモリコントローラを具備する半導体記憶装置を提供する。
【図面の簡単な説明】
【０００９】
【図１】第１の実施の形態の半導体装置の構成を示した構成図である。
【図２】第１の実施の形態の半導体装置の構成を示した構成図である。
【図３】第１の実施の形態のメモリコントローラの誤り訂正数対応テーブルの一例である。
【図４】第１の実施の形態のメモリコントローラの復号処理について説明するためのフローチャートである。
【図５】第１の実施の形態のメモリコントローラの復号処理について説明するための構成図である。
【図６】第１の実施の形態のメモリコントローラの符号化処理について説明するためのフローチャートである。
【図７】第１の実施の形態のメモリコントローラの符号化処理について説明するための構成図である。
【図８】第２の実施の形態の半導体装置の構成を示した構成図である。
【発明を実施するための形態】
【００１０】
＜第１の実施の形態＞
以下、図面を参照して本発明の第１の実施の形態のメモリコントローラおよび半導体記憶装置について説明する。  
図１に示すように、本実施の形態の半導体記憶装置２は、パソコンまたはデジタルカメラ等のホスト３と着脱可能に接続される記憶媒体であり、たとえばメモリカード等の形態である。尚、本発明の実施形態としての半導体記憶装置（不図示）は、ホスト（不図示）の内部に収納され、ホストの起動データ等を記憶する、いわゆるエンベデッドタイプであってもよく、または半導体ディスク：ＳＳＤ(Solid State Drive)等の形態であってもよい。あるいは半導体記憶装置２とホスト３とが、たとえば携帯音楽プレーヤであるＭＰ３プレーヤ等のメモリシステム１を構成していてもよい。半導体記憶装置２は、メモリ部３０と、メモリコントローラ１０とを有する。メモリ部３０はＮＡＮＤ型のフラッシュメモリ部であり、単位セルである多数のメモリセル３１が、書き込みに用いるビット線（不図示）および読み出しに用いるワード線３２等で接続された構成を有する。
【００１１】
なお、ＮＡＮＤ型フラッシュメモリ部を有する半導体記憶装置２は、複数のメモリセル３１に記憶されたデータを一括して消去することにより構成を簡略化している。このデータを一括消去処理するときの消去単位が図１に模式的に示したブロック３３である。一方、半導体記憶装置２が、複数のメモリセル３１に記憶されたデータを読み出す単位はブロック３３よりも小さい大きさのページと呼ばれる単位である。すなわち、ページは複数のメモリセル３１により構成され、ブロック３３は複数のページにより構成され、メモリ部３０は複数のブロック３３により構成されている。
【００１２】
メモリコントローラ１０は、バス１７を介して接続された、ＲＯＭ１３と、制御部であるＣＰＵ１１と、ＲＡＭ１５と、ホスト  Ｉ／Ｆ（インターフェイス）１２と、記憶するデータの符号化処理を行い符号化データを出力する符号化器２１および記憶された符号化データの復号処理を行う復号器２２を有する誤り訂正数を増減可能な誤り訂正（ＥＣＣ：Error Correcting Code）部２０と、ＮＡＮＤ  Ｉ／Ｆ（インターフェイス）１４とを具備する。メモリコントローラ１０は、ＣＰＵ１１を用いて、ホストＩ／Ｆ１８を介してホスト３とのデータ送受信を、ＮＡＮＤ  Ｉ／Ｆ２１を介してメモリ部３０とのデータ送受信を行う。
【００１３】
以上のように、メモリコントローラ１０は、複数のメモリセル３１を含むメモリセルアレイが複数のブロック３３で構成され、それぞれのブロック３３がブロック単位で消去可能に構成されたメモリ部３０に対して、メモリ部３０に記憶するデータを符号化処理および復号化処理をする。
【００１４】
次に、図２を用いて、本実施の形態のメモリコントローラ１０の構成について、より詳細に説明する。図２に示すように、メモリコントローラ１０は、ＥＣＣ２０と、ＥＣＣ２０が誤り訂正数を増減するため機能等を行う機能部１８とを有する。
【００１５】
ＥＣＣ２０の符号化器２１はホスト３から入力されたデータに対して、後述する誤り訂正レベル（Error Threshold Level：以下、「ＥＴＬ」ともいう。）記憶部２３に記憶されている誤り訂正数にもとづいて、各ブロック３３ごとにパリティ長の異なるパリティを算出するパリティ算出部２１Ａと、データにパリティを付与して符号化データとするためのセレクタ２１Ｂとを有する。すなわち、符号化器２１は誤り訂正レベル記憶部２３に記憶した誤り訂正レベルと、誤り訂正数と対応した誤り訂正レベルを記憶する誤り訂正数対応テーブル２５と、にもとづいた誤り訂正数で各ブロックに属するメモリセルに記憶するデータの符号化処理を行う。
【００１６】
ＥＣＣ２０の復号器２２は、メモリ部３０からページ単位で読み出した符号化データの誤りを検出し訂正するために、シンドロームを算出するシンドローム算出部２２Ａと、誤り位置多項式を算出する誤り位置多項式算出部２２Ｂと、誤り位置を探索するチェンサーチ部２２Ｃと、特定された誤り位置の誤りを訂正する誤り訂正部（不図示）とを有する。
【００１７】
すなわち、復号処理においては、最初にシンドローム算出部２２Ａにおいてシンドロームが算出される。シンドローム算出値がゼロの場合には、誤りの個数Ｎがゼロであることを意味しており、誤り訂正を行う必要はないため、当該データは、ホストインターフェイス１２を介してホスト３に出力される。シンドローム算出値がゼロでない場合、シンドロームを基に、誤り位置多項式算出部２２Ｂおいて、誤り位置多項式が算出される。算出された誤り位置多項式の係数がＮ次の多項式で表された場合には、Ｎ個の誤りがあることを意味している。
【００１８】
誤り位置多項式算出により、Ｎ個の誤りがあることが発見された場合には、次のステップとして、チェンサーチ部２２Ｃにおいて誤り位置が特定される。チェンサーチ部２２Ｃにおいては、Ｎ次の誤り位置多項式の変数Ｘに、あり得る全ての値（たとえば、０〜Ｍ：Ｍは最終ビット位置または最終バイト位置）を順次、代入して、誤り位置多項式を満たすかどうかを探索していく。そして、Ｎ個の解の全てが特定された時点で、誤り訂正部は一括して誤りデータを訂正する。
【００１９】
誤り訂正部における誤り訂正は、ＢＣＨ符号を有する符号化データの場合には、ビット反転が行われる。リードソロモン符号を有する符号化データの場合には、さらに連立一次方程式を解くことにより８ビットのデータとして誤り訂正後の値が算出される。
【００２０】
そして、機能部１８は、各ブロックに対応した誤り訂正数に対応した誤り訂正レベルＥＴＬを記憶する誤り訂正レベル記憶部２３と、復号処理のときの各ブロックごとの誤り訂正不能回数を計測する訂正不能回数計測部２６と、訂正不能回数計測部２６が計測した誤り訂正不能回数が所定の回数を超えるごとに、誤り訂正レベル記憶部２３に記憶されている各ブロックに対応したＥＴＬを増加する誤り訂正レベル変更部２４と、ＥＴＬと誤り訂正数Ｔとの対応を記憶した誤り訂正数対応テーブル２５と、を有する。すなわちメモリコントローラ１０は、それぞれのブロックごとに誤り訂正数を自動調整する。
【００２１】
なお、ここでは説明を容易にするために機能部１８を独立した構成要素として説明しているが、機能部１８の各構成要素は、すでに説明したＣＰＵ１１およびＲＡＭ１５の一部である。たとえば、訂正不能回数計測部２６および誤り訂正レベル変更部２４の動作は、ＣＰＵ１１がファームウエア（ＦＷ）により実行する。また、誤り訂正レベル記憶部２３および誤り訂正数対応テーブル２５はＲＡＭ１５の一部である。もちろん機能部１８の各構成要素が実際にＣＰＵ１１またはＲＡＭ１５から独立した構成要素であってもよい。
【００２２】
ここで、ＮＡＮＤ型フラッシュメモリ部を有する半導体記憶装置２は、書き込み／消去回数の増加につれて記憶したデータを読み出すときに誤りが多くなる傾向にある。これはＮＡＮＤ型フラッシュメモリ部のメモリセル３１に対する書き込み／消去処理では、基板に対してゲートに高電圧がかけられフローティングゲートに電子が注入されることに起因する。書き込み／消去処理回数の増加につれて、フローティングゲート周りの酸化膜が劣化するため、誤りが増加する。また、メモリ部３０内の複数のブロックは、ブロックごとに、書き込み／消去処理回数が異なる。
【００２３】
長期間の使用後も誤り訂正不能が発生しないようにするためには、最初、たとえば工場出荷時から将来の誤りの発生増加を考慮して誤り訂正数を設定する必要がある。すると、すでに説明したように誤り訂正処理の効率が悪くなる。
【００２４】
これに対して、メモリコントローラ１０は半導体記憶装置２の使用開始時には、誤り訂正数の少ない復号処理を行い、誤り発生の増加に応じて、ブロックごとに誤り訂正数を増加する。
【００２５】
なお、メモリコントローラ１０は、半導体記憶装置２の使用開始前から、書き込み／消去処理回数が多くなることが判明しているブロック、たとえば、ＦＡＴ領域のブロックに対しては、誤り訂正数の初期値を、他のブロックよりも多く設定しておいてもよい。
【００２６】
ここで、図３は本実施の形態のメモリコントローラ１０の誤り訂正数対応テーブル２５の一例である。図３に示した例では、誤り訂正数を誤り訂正レベル０、１、２の３レベルに分類している。そして、誤り訂正レベル０は０〜４ビットの誤りに対応して訂正能力が４ビットと小さいが、パリティ長ｐが７バイトと小さい。誤り訂正レベル１は５〜１２ビットの誤りに対応して訂正能力が１２ビットであり、パリティ長ｐは２０バイトとなる。そして、誤り訂正レベル２は１３〜１６ビットの誤りに対応して訂正能力が１６ビットと大きいが、パリティ長ｐが２６バイトと長い。なお上記誤り訂正数対応テーブルはＥＣＣ２０の最大誤り訂正数が１６ビットの例であり、誤り訂正数対応テーブルは、ＥＣＣ２０の最大誤り訂正数に応じて適宜設定される
すなわち、メモリコントローラ１０は誤り訂正数を誤り訂正レベルＥＴＬに分類し、ＥＴＬと誤り訂正数Ｔとの対応を記憶した誤り訂正数対応テーブル２５を用いることにより、誤り訂正数変更処理の発生頻度を減少している。このためメモリコントローラ１０は復号処理の効率がよい。
【００２７】
次に図４および図５を用いて、メモリコントローラ１０の復号処理について説明する。図４はメモリコントローラ１０の復号処理について説明するためのフローチャートであり、以下、図４のフローチャートに従って説明する。
【００２８】
＜ステップＳ１０＞  初期化ステップ  
メモリコントローラ１０は半導体記憶装置２の工場出荷時には、ブロックに応じた誤り訂正レベルＥＴＬを誤り訂正数対応テーブル２５に記憶している。  
そして、メモリコントローラ１０は半導体記憶装置２の使用開始後には、前回使用を終了したときの、ブロックごとの誤り訂正不能回数に応じた誤り訂正レベルＥＴＬを誤り訂正数対応テーブル２５に記憶している。
【００２９】
すなわち、メモリコントローラ１０は、たとえば、論理アドレス／物理アドレス変換テーブル（不図示）とともに、メモリ部３０等に記憶されている誤り訂正数対応テーブル２５、前回使用を終了したときの訂正不能回数計測部２６が計測した訂正不能回数、および各ブロックの誤り訂正レベルの情報をＲＡＭ１５に転送する。また、ＣＰＵ１１が訂正不能回数計測部２６および誤り訂正レベル変更部２４の動作を行うためのＦＷをＲＯＭ１３等からＣＰＵ１１に転送する。
【００３０】
なお、図５に示すメモリコントローラ１０では、今までの誤り訂正レベルＥＴＬがＥＴＬ記憶部２３にブロックアドレスＢＡと対応付けて記憶されている。すなわちブロックアドレスＢＡと対応付けて、そのブロックのＥＴＬ、およびが符号長ｎが記憶されている。
【００３１】
＜ステップＳ１１＞  読み出しコマンド入力  
ホスト３から論理アドレスで位置を指定されたデータの読み出しコマンドが入力される。すなわち、半導体記憶装置２では、書き込み／消去処理が特定のメモリセルに集中することを回避するために、消去処理回数をカウントし消去処理回数の多いメモリセルと少ないメモリセルとを入れ替えて、書き込み／消去処理回数の平均化をはかる、いわゆるウェアレベリングが実施されている。
【００３２】
ウェアレベリングを行う半導体記憶装置２では、ホストがメモリセルのメモリ部中の物理的な位置を示す物理アドレスを用いてデータ記憶位置を特定することは困難である。このため、ホスト３からは論理空間における位置を示す論論理アドレスによりデータの位置が指定される。
【００３３】
＜ステップＳ１２＞  論物変換、ＥＴＬ読み出し  
メモリコントローラ１０は、論理アドレスを、論理アドレス／物理アドレス変換テーブル（不図示）を用いて、物理アドレスに変換する。
【００３４】
メモリコントローラ１０は、さらに、たとえば、論理アドレス／物理アドレス変換テーブルと関連したサブテーブルとして誤り訂正レベル記憶部２３に記憶されている、読み出し対象の物理アドレスのメモリセル３１が属するブロックの誤り訂正レベルＥＴＬを制御レジスタ１１Ａに読み込む。制御レジスタ１１ＡはたとえばＣＰＵ１１の一部である。
【００３５】
＜ステップＳ１３＞  誤り訂正数算出  
メモリコントローラ１０は、ＲＡＭ１５に記憶されている誤り訂正数対応テーブル２５と、ブロックに対応した誤り訂正レベルとから、読み出し対象のブロックに対応した誤り訂正数を算出する。
【００３６】
なお、図３に示した誤り訂正数対応テーブル２５では、誤り訂正数を３個のレベルに分類していたが、より多くのレベルに分類してもよい。たとえば、誤り訂正数と同じ数のレベルに分類してもよい。
【００３７】
＜ステップＳ１４＞  データ読み出し  
メモリコントローラ１０は、読み出し対象のメモリセル３１の符号化データを読み出す。
【００３８】
＜ステップＳ１５＞  復号処理  
メモリコントローラ１０の復号器２２は読み出された符号化データの復号処理を行い、復号できた場合、すなわち、誤りの数が誤り訂正数以下の場合には誤り訂正を行ったデータをホスト３に出力する。
【００３９】
＜ステップＳ１６＞  誤り訂正不能判断  
符号化処理において、誤りの数が誤り訂正数を超えた場合には、復号器２２は誤り訂正不能信号を訂正不能回数計測部２６に出力する。
【００４０】
＜ステップＳ１７＞  誤り訂正不能回数積算  
訂正不能回数計測部２６は復号器２２から誤り訂正不能信号を受信すると、内部の誤り訂正不能回数カウンタ（不図示）に１を加算する。
【００４１】
＜ステップＳ１８＞  誤り訂正不能回数比較  
訂正不能回数計測部２６は、誤り訂正不能回数カウンタの回数、すなわち誤り訂正不能回数を、所定の回数である誤り訂正不能回数閾値と比較する。誤り訂正不能回数閾値は、半導体記憶装置２により予め設定されるが、１以上であればよく、たとえば１００である。
【００４２】
＜ステップＳ１９＞  誤り訂正レベル変更  
誤り訂正レベル変更部２４は、誤り訂正不能回数が誤り訂正不能回数閾値を超えていた場合には、そのブロックの誤り訂正レベルを、より誤り訂正能力の高いレベルに変更するために、誤り訂正レベル１を加算する。このとき、訂正不能回数計測部２６は、誤り訂正不能回数カウンタの回数をリセットする。
【００４３】
なお、誤り訂正不能回数閾値は誤り訂正レベルにより異なっていても良い。たとえば、誤り訂正レベル０から１への変更は誤り訂正不能回数閾値を１０回とし、１から２への変更は誤り訂正不能回数閾値を１００回としてもよい。
【００４４】
＜ステップＳ２０＞  処理継続  
メモリコントローラ１０はホスト３から終了指示があるまで上記の処理を繰り返す。
【００４５】
＜ステップＳ２１＞  ＥＴＬデータ保存処理  
ホスト３から終了指示があったとき、メモリコントローラは、訂正不能回数計測部２６の誤り訂正不能回数カウンタの回数と、誤り訂正レベル記憶部２３の情報とを、メモリ部３０等に転送し保存する。
【００４６】
次に、図６および図７を用いて、メモリコントローラ１０の符号化処理について説明する。図６はメモリコントローラ１０の符号化処理について説明するためのフローチャートであり、以下、図６のフローチャートに従って説明する。
【００４７】
＜ステップＳ３０＞  初期化  
メモリコントローラ１０は、メモリ部３０等に記憶されている誤り訂正数対応テーブル２５等をＲＡＭ１５等に転送する。
【００４８】
＜ステップＳ３１＞  書き込みコマンド入力  
ホスト３から論理アドレスで位置を指定されたデータの書き込みコマンドが入力される。
【００４９】
＜ステップＳ３２＞  論物変換、ＥＴＬ読み出し  
メモリコントローラ１０は、論理アドレスを、論理アドレス／物理アドレス変換テーブル（不図示）を用いて、物理アドレスに変換する。
【００５０】
さらに、メモリコントローラ１０は、誤り訂正レベル記憶部２３に記憶されている、変換された物理アドレスのメモリセル３１が属するブロックの誤り訂正レベルＥＴＬを制御レジスタ１１Ａに読み込む。
【００５１】
＜ステップＳ３３＞  誤り訂正数算出  
メモリコントローラ１０は、誤り訂正数対応テーブル２５と、ブロックに対応した誤り訂正レベルとから、対象のブロックに対応した誤り訂正数を算出する。
【００５２】
＜ステップＳ３４＞  パリティ生成  
符号化器２１は、誤り訂正数に応じた符号長のパリティを生成し、データに付加し、符号化データを生成する。
【００５３】
＜ステップＳ３５＞  記憶処理  
メモリコントローラ１０は符号化データをメモリ部３０の指定されたブロック内のメモリセル３１に記憶する。
【００５４】
＜ステップＳ３６＞  処理継続  
メモリコントローラ１０はホスト３から終了指示があるまで上記の処理を繰り返す。
【００５５】
以上の説明のように、本実施の形態のメモリコントローラ１０は、工場出荷時の初期設定の誤り訂正数を、ＥＣＣ部２０の最大誤り訂正数よりも小さくしているため、パリティ長が短くユーザが使用可能なメモリ部３０の容量が大きい。また、メモリコントローラ１０および半導体記憶装置２は少ない誤り訂正数の符号化データを作成するために符号化器２１および復号器２２の処理負荷が小さく、処理速度が速く低消費電力であるため、誤り訂正処理の効率がよい。
【００５６】
さらに、メモリコントローラ１０および半導体記憶装置２は、半導体記憶装置２の使用につれて、いずれかのブロックのデータの誤りが多くなっても、ブロック単位での誤り発生率増加に応じてブロック単位で最適値に自動調整することができるため、誤り訂正処理の効率がよい。すなわち、メモリコントローラ１０および半導体記憶装置２は、誤り数および誤りレベル、言い換えればメモリ部３０の信頼性に対応して柔軟に誤り訂正数を最適値に自動調整できる。
【００５７】
なお、上記説明では、ブロックを集合単位とする場合を例に説明したが、複数のブロックからなるブロックグループを集合単位としてもよい。
【００５８】
＜第２の実施の形態＞
以下、図８を参照して本発明の第２の実施の形態のメモリコントローラ１０Ｂおよび半導体記憶装置２Ｂを説明する。第２の実施の形態のメモリシステム１Ｂ、メモリコントローラ１０Ｂおよび半導体記憶装置２Ｂは、第１の実施の形態のメモリシステム１、メモリコントローラ１０および半導体記憶装置２と類似しているため同じ構成要素には同じ符号を付し説明は省略する。
【００５９】
半導体記憶装置２Ｂのメモリ部３０Ｂには、１つのメモリセル３１に記憶するデータのビット数を２とした、いわゆる多値メモリセル３１Ａからなる多値メモリ（MLC:Multi Level Cell）領域３０Ｃと、１つのメモリセル３１に記憶するデータのビット数が１のシングルビットメモリセル３１Ｂからなる２値(SLC:Single Level Cell)領域３０Ｄとが存在している。多値メモリセル３１Ａはシングルビットメモリセル３１Ｂの２倍のデータが記憶可能であるため、半導体記憶装置２Ｂの大容量化に大きく寄与する。しかし、多値メモリセル３１Ａはシングルビットメモリセル３１Ｂと比較すると、読み出しのときに誤りが発生しやすい。
【００６０】
半導体記憶装置２Ｂのメモリコントローラ１０Ｂは、多値メモリセル３１Ａからなるメモリセルの集合単位と、シングルビットメモリセル３１Ｂからなるメモリセルの集合単位と、で符号化処理のときの誤り訂正数を変更する。  
すなわち、半導体記憶装置２Ｂのメモリコントローラ１０Ｂは、１つのメモリセルに記憶するデータのビット数が同じメモリセルからなる集合単位ごとに、誤り訂正数を管理する。たとえば、１つのメモリセルに記憶するデータのビット数が２ビットの２ビットメモリセルと、１つのメモリセルに記憶するデータのビット数が３ビットの３ビットメモリセルと、を有する半導体記憶装置２Ｂのメモリコントローラ１０Ｂでは、２ビットメモリセルと３ビットメモリセルとを集合単位とする。
【００６１】
本実施の形態のメモリコントローラ１０Ｂおよび半導体記憶装置２Ｂは、メモリセルに記憶するビット数が異なるためにメモリセルの集合単位により誤り発生の程度が異なっていても、第１の実施の形態の場合と同じように、誤り訂正処理の効率がよい。
【００６２】
＜第２の実施の形態の変形例＞
第２の実施の形態のメモリコントローラ１０Ｂおよび半導体記憶装置２Ｂは、多値メモリセル３１Ａからなるメモリセルの集合単位と、シングルビットメモリセル３１Ｂからなるメモリセルの集合単位と、で符号化処理のときの誤り訂正数を設定したが、メモリセルの集合単位はこれに限られるものではない。
【００６３】
たとえば、メモリ部３０が物理的に複数の領域、すなわちＰｌａｉｎを有する場合にはＰｌａｉｎを集合単位としてもよい。または、データ読み込み単位であるページを集合単位としてもよい。ページを集合単位とする場合にはページの管理部（冗長部）に、そのページの誤り訂正不能回数と誤り訂正レベルを記憶できる。
【００６４】
さらに、同じブロック内でも、物理的に特定ワードラインまたはカラム領域でエラー発生率が高くなることがあるので、ワードライン単位またはカラム領域を集合単位としてもよい。すなわち、集合単位としては、ワード線３２での奇数・偶数Page単位、ページ内での内先頭・末端カラムに特化したＥＣＣフレーム単位等が挙げられる。言い換えれば、メモリセルの集合単位はメモリ部内の物理構造に依存した信頼性パラメータにより分類可能な複数のメモリセルにより構成されている。
【００６５】
さらに、ブロックグループと同様に、複数の前記集合単位からなるグループを単位としてもよい。また、ブロックとワードラインとの組み合わせのように、異なる種別の集合単位を組み合わせた単位でもよい。
【００６６】
上記のように、本発明は、上述した実施の形態または変形例に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更または改変等が可能である。
【符号の説明】
【００６７】
１…メモリシステム、２、２Ｂ…半導体記憶装置、３…ホスト、１０、１０Ｂ…メモリコントローラ、１１…ＣＰＵ、１１Ａ…制御レジスタ、１２…ホストインターフェイス、１７…バス、１８…機能部、２０…ＥＣＣ部、２１…符号化器、２１Ａ…パリティ算出部、２１Ｂ…セレクタ、２２…復号器、２２Ａ…シンドローム算出部、２２Ｂ…位置多項式算出部、２２Ｃ…チェンサーチ部、２３…誤り訂正レベル記憶部、２４…誤り訂正レベル変更部、２５…誤り訂正数対応テーブル、２６…訂正不能回数計測部、３０…ＮＡＮＤ型フラッシュメモリ部、３０、３０Ｂ…メモリ部、３０Ｃ…ＭＬＣ領域、３０Ｄ…ＳＬＣ領域、３１…メモリセル、３２…ワード線、３３…ブロック
【図１】
2010237822.tif 000003
【図２】
2010237822.tif 000004
【図３】
2010237822.tif 000005
【図４】
2010237822.tif 000006
【図５】
2010237822.tif 000007
【図６】
2010237822.tif 000008
【図７】
2010237822.tif 000009
【図８】
2010237822.tif 000010