(57)【要約】【課題】復号処理効率のよい誤り検出訂正器１６を提供する。【解決手段】誤りページアドレスおよび誤り位置多項式の係数σと、誤り位置を示す誤りビットアドレスとを対応付けて記憶するＥＣＣキャッシュ部２１と、シンドローム算出部１８Ａが検出した誤りページアドレスおよび多項式算出部１８Ｂが算出した誤り位置多項式の係数σとＥＣＣキャッシュ部２１に記憶されている誤りページアドレスおよび誤り位置多項式の係数σとを比較し一致するかどうか判断する比較部２２と、比較部２２が一致すると判断した場合に、ＥＣＣキャッシュ部２１に記憶されている誤りビットアドレスの位置を誤り位置として特定する第１の誤り位置特定部２３と、を具備する。【選択図】図２
2010218634.tif 000002
【特許請求の範囲】
【請求項１】
ページ単位で読み出される符号化データ列の誤りの有無を検出し、誤りがあった場合には前記誤りを訂正する誤り検出訂正器であって、
前記ページ単位で読み出される符号化データ列の誤りの有無を検出する誤り検出部と、
誤り位置多項式を算出する多項式算出部と、
誤りがあったページの位置を示す誤りページアドレスおよび／または前記誤り位置多項式の係数と、前記誤り位置を示す誤りアドレスとを対応付けて記憶する誤り位置記憶部と、
前記誤り検出部が新規に検出した誤りページアドレスおよび／または前記多項式算出部が新規に算出した前記誤り位置多項式の係数と、前記誤り位置記憶部に既に記憶されている前記誤りページアドレスおよび／または前記誤り位置多項式の係数と、を比較し一致するかどうか判断する比較部と、
前記比較部が比較した値が一致すると判断した場合に、前記誤りページアドレスおよび／または前記誤り位置多項式の係数と対応付けて前記誤り位置記憶部に記憶されている前記誤りアドレスの位置を誤り位置として特定する第１の誤り位置特定部と、
前記比較部が比較した値が一致しないと判断した場合に、前記誤り位置多項式から誤り位置を算出する第２の誤り位置特定部と、
前記誤り位置のデータの誤りを訂正する誤り訂正部と、を具備することを特徴とする誤り検出訂正器。
【請求項２】
前記比較部が一致しないと判断した場合には、前記第２の誤り位置特定部が特定した前記誤り位置を、誤りアドレスとして前記誤り位置記憶部の情報を更新することを特徴とする請求項１に記載の誤り検出訂正器。
【請求項３】
前記誤り位置記憶部が、前記誤り位置多項式の係数を前記誤り位置記憶部における記憶位置を示すキャッシュアドレスとして前記誤りアドレスを記憶することを特徴とする請求項１または請求項２に記載の誤り検出訂正器。
【請求項４】
ページ単位で読み出される符号化データ列の誤りの有無を検出し、誤りがあった場合には前記誤りを訂正するメモリコントローラであって、
前記ページ単位で読み出される符号化データ列の誤りの有無を検出する誤り検出部と、
誤り位置多項式を算出する多項式算出部と、
誤りがあったページの位置を示す誤りページアドレスおよび／または前記誤り位置多項式の係数と、前記誤り位置を示す誤りアドレスとを対応付けて記憶する誤り位置記憶部と、
前記誤り検出部が新規に検出した誤りページアドレスおよび／または前記多項式算出部が新規に算出した前記誤り位置多項式の係数と、前記誤り位置記憶部に既に記憶されている前記誤りページアドレスおよび／または前記誤り位置多項式の係数と、を比較し一致するかどうか判断する比較部と、
前記比較部が比較した値が一致すると判断した場合に、前記誤りページアドレスおよび／または前記誤り位置多項式の係数と対応付けて前記誤り位置記憶部に記憶されている前記誤りアドレスの位置を誤り位置として特定する第１の誤り位置特定部と、
前記比較部が比較した値が一致しないと判断した場合に、前記誤り位置多項式から誤り位置を算出する第２の誤り位置特定部と、
前記誤り位置のデータの誤りを訂正する誤り訂正部と、を具備することを特徴とするメモリコントローラ。
【請求項５】
ページ単位で読み出される符号化データ列の誤りの有無を検出し、誤りがあった場合には前記誤りを訂正する半導体記憶装置であって、
前記ページ単位で読み出される符号化データ列の誤りの有無を検出する誤り検出部と、
誤り位置多項式を算出する多項式算出部と、
誤りがあったページの位置を示す誤りページアドレスおよび／または前記誤り位置多項式の係数と、前記誤り位置を示す誤りアドレスとを対応付けて記憶する誤り位置記憶部と、
前記誤り検出部が新規に検出した誤りページアドレスおよび／または前記多項式算出部が新規に算出した前記誤り位置多項式の係数と、前記誤り位置記憶部に既に記憶されている前記誤りページアドレスおよび／または前記誤り位置多項式の係数と、を比較し一致するかどうか判断する比較部と、
前記比較部が比較した値が一致すると判断した場合に、前記誤りページアドレスおよび／または前記誤り位置多項式の係数と対応付けて前記誤り位置記憶部に記憶されている前記誤りアドレスの位置を誤り位置として特定する第１の誤り位置特定部と、
前記比較部が比較した値が一致しないと判断した場合に、前記誤り位置多項式から誤り位置を算出する第２の誤り位置特定部と、
前記誤り位置のデータの誤りを訂正する誤り訂正部と、を具備することを特徴とする半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、誤り検出訂正器、メモリコントローラおよび半導体記憶装置に関し、特に複数のメモリセルからなるＮＡＮＤ型フラッシュメモリ部からページ単位で読み出される符号化データの誤りを検出し訂正する誤り検出訂正器、メモリコントローラおよび半導体記憶装置に関する。
【背景技術】
【０００２】
半導体記憶装置の誤り検出訂正器は符号化器と復号化器とを有する。すなわち、データを記憶するときに、符号化器により誤り訂正符号、例えば、ＢＣＨ（Ｂｏｓｅ−Ｃｈａｕｄｈｕｒｌ−Ｈｏｃｑｕｅｎｇｈｅｍ）符号またはＢＣＨ符号の線形ブロックコードであるリードソロモン（Ｒｅｅｄ Ｓｏｌｏｍｏｎ；ＲＳ）符号を付加した符号化データを生成し、記憶した符号化データを読み出すときに、復号化器により誤りを検出し訂正する。
【０００３】
ここで、ＢＣＨ符号およびリードソロモン符号は、いずれも、ガロア体上の原始多項式とその根の性質を使って構成される符号である。しかし、ＢＣＨ符号が、１ビットを単位としてデータを取り扱い、また、誤り訂正符号もビット単位で生成されるのに対して、リードソロモン符号は、例えば８ビット＝１バイトを単位としてデータを取り扱い、また、誤り訂正符号もバイト単位で生成される点で両者は異なる。
【０００４】
復号化器は、データにＢＣＨ符号またはリードソロモン符号が付加された符号化データを、（１）誤りの有無の確認ステップ、（２）誤り数の算出ステップ（誤り位置多項式算出ステップ）、（３）誤り位置算出ステップ、（４）誤り訂正ステップの順で処理を行う。
【０００５】
そして、誤りの位置の算出ステップにおいては、例えばチェンサーチ法が採用されている。チェンサーチ法では、誤り位置多項式算出ステップで算出されたＮ次の誤り位置多項式の変数Ｘに、とり得る全ての値、例えば、０〜Ｍ（Ｍはデータの最終ビット位置または最終バイト位置）を順次、代入して、誤り位置多項式を満たすかどうかを探索していく。そして、Ｎ個の解の全てが特定された時点、すなわちＮ個の誤り全ての位置が特定された時点で、誤り訂正部が一括して誤っていたデータを訂正し、訂正後のデータを出力する。もし誤りの位置がデータの最終部、すなわち、チェンサーチで代入する最後の値であった場合には、チェンサーチにおいて最後の値Ｍの代入後において、はじめてデータ訂正および出力が行われる。このため復号処理が完了してデータが出力されるまでに時間を要し消費電力が多くなることがあった。
【０００６】
すなわち、公知の誤り検出訂正器、前記誤り検出訂正器を有するメモリコントローラ、および前記誤り検出訂正器を有する半導体記憶装置は、処理速度が遅く消費電力が多くなること、すなわち復号処理効率が悪いことがあった。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００７−１９３９１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明は、復号処理効率のよい誤り検出訂正器、前記誤り検出訂正器を有するメモリコントローラおよび前記誤り検出訂正器を有する半導体記憶装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の一態様によれば、ページ単位で読み出される符号化データ列の誤りの有無を検出し、誤りがあった場合には誤りを訂正する誤り検出訂正器であって、ページ単位で読み出される符号化データ列の誤りの有無を検出する誤り検出部と、誤り位置多項式を算出する多項式算出部と、誤りがあったページの位置を示す誤りページアドレスおよび／または誤り位置多項式の係数と、誤り位置を示す誤りアドレスとを対応付けて記憶する誤り位置記憶部と、誤り検出部が新規に検出した誤りページアドレスおよび／または多項式算出部が新規に算出した誤り位置多項式の係数と、誤り位置記憶部に既に記憶されている誤りページアドレスおよび／または誤り位置多項式の係数と、を比較し一致するかどうか判断する比較部と、比較部が比較した値が一致すると判断した場合に、誤りページアドレスおよび／または誤り位置多項式の係数と対応付けて誤り位置記憶部に記憶されている誤りアドレスの位置を誤り位置として特定する第１の誤り位置特定部と、比較部が比較した値が一致しないと判断した場合に、誤り位置多項式から誤り位置を算出する第２の誤り位置特定部と、誤り位置のデータの誤りを訂正する誤り訂正部と、を具備することを特徴とする誤り検出訂正器が提供される。
【００１０】
また、本発明の別の一態様によれば、ページ単位で読み出される符号化データ列の誤りの有無を検出し、誤りがあった場合には誤りを訂正するメモリコントローラであって、ページ単位で読み出される符号化データ列の誤りの有無を検出する誤り検出部と、誤り位置多項式を算出する多項式算出部と、誤りがあったページの位置を示す誤りページアドレスおよび／または誤り位置多項式の係数と、誤り位置を示す誤りアドレスとを対応付けて記憶する誤り位置記憶部と、誤り検出部が新規に検出した誤りページアドレスおよび／または多項式算出部が新規に算出した誤り位置多項式の係数と、誤り位置記憶部に既に記憶されている誤りページアドレスおよび／または誤り位置多項式の係数と、を比較し一致するかどうか判断する比較部と、比較部が比較した値が一致すると判断した場合に、誤りページアドレスおよび／または誤り位置多項式の係数と対応付けて誤り位置記憶部に記憶されている誤りアドレスの位置を誤り位置として特定する第１の誤り位置特定部と、比較部が比較した値が一致しないと判断した場合に、誤り位置多項式から誤り位置を算出する第２の誤り位置特定部と、誤り位置のデータの誤りを訂正する誤り訂正部と、を具備することを特徴とするメモリコントローラが提供される。
【００１１】
さらに、本発明の別の一態様によれば、ページ単位で読み出される符号化データ列の誤りの有無を検出し、誤りがあった場合には誤りを訂正する半導体記憶装置であって、ページ単位で読み出される符号化データ列の誤りの有無を検出する誤り検出部と、誤り位置多項式を算出する多項式算出部と、誤りがあったページの位置を示す誤りページアドレスおよび／または誤り位置多項式の係数と、誤り位置を示す誤りアドレスとを対応付けて記憶する誤り位置記憶部と、誤り検出部が新規に検出した誤りページアドレスおよび／または多項式算出部が新規に算出した誤り位置多項式の係数と、誤り位置記憶部に既に記憶されている誤りページアドレスおよび／または誤り位置多項式の係数と、を比較し一致するかどうか判断する比較部と、比較部が比較した値が一致すると判断した場合に、誤りページアドレスおよび／または誤り位置多項式の係数と対応付けて誤り位置記憶部に記憶されている誤りアドレスの位置を誤り位置として特定する第１の誤り位置特定部と、比較部が比較した値が一致しないと判断した場合に、誤り位置多項式から誤り位置を算出する第２の誤り位置特定部と、誤り位置のデータの誤りを訂正する誤り訂正部と、を具備することを特徴とする半導体記憶装置が提供される。
【発明の効果】
【００１２】
本発明によれば復号処理効率のよい誤り検出訂正器、メモリコントローラおよび半導体記憶装置を提供することができる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施の形態の半導体記憶装置の構成を示した構成図である。
【図２】第１の実施の形態の半導体記憶装置の構成を示した構成図である。
【図３】第１の実施の形態の誤り検出訂正器の復号処理を説明するための説明図である。
【図４】第１の実施の形態の誤り検出訂正器の復号処理の流れを説明するためのフローチャートである。
【図５】第２の実施の形態の誤り検出訂正器の復号処理を説明するための説明図である。
【図６】第３の実施の形態の誤り検出訂正器の復号処理を説明するための説明図である。
【図７】第４の実施の形態の誤り検出訂正器の復号処理を説明するための説明図である。
【図８】第５の実施の形態の誤り検出訂正器の復号処理を説明するための説明図である。
【発明を実施するための形態】
【００１４】
＜第１の実施の形態＞  
以下、図面を参照して本発明の第１の実施の形態の誤り検出訂正器、誤り検出訂正器を有するメモリコントローラ１０および誤り検出訂正器を有する半導体記憶装置２（以下、「誤り検出訂正器等」ともいう。）について説明する。  
図１に示すように、本実施の形態の半導体記憶装置２は、パソコンまたはデジタルカメラ等のホスト３と着脱可能に接続される記憶媒体であり、例えばメモリカード等の形態である。なお、本実施の形態としての半導体記憶装置はホストの内部に収納されホストの起動データ等を記憶する、いわゆるエンベデッドタイプの記憶装置であってもよく、または半導体ディスク：ＳＳＤ(Solid State Drive)等の形態であってもよい。あるいは半導体記憶装置２とホスト３とが、例えば携帯音楽プレーヤであるＭＰ３プレーヤ等のメモリシステム１を構成していてもよい。半導体記憶装置２は、メモリ部１４と、メモリコントローラ１０とを有する。メモリ部１４はＮＡＮＤ型フラッシュメモリ部であり、単位セルである多数のメモリセル１４Ｃが、書き込みに用いるビット線（不図示）および読み出しに用いるワード線１４Ａ等で接続された構成を有する。
【００１５】
なお、ＮＡＮＤ型フラッシュメモリ部を有する半導体記憶装置２は、メモリセル１４Ｃが複数アレイ状に配置され、所定数のメモリセル１４Ｃに記憶されたデータを一括して消去するように構成されている。このデータを一括消去処理するときの所定数のメモリセルの消去単位をブロックとよぶ。一方、メモリセル１４Ｃに記憶されたデータを読み出す単位はブロックよりも小さいサイズであり、図１に模式的に示したページ１４Ｂと呼ばれる単位である。すなわち、ページ１４Ｂは複数のメモリセル１４Ｃにより構成され、ブロックは複数のページ１４Ｂにより構成され、さらにメモリ部１４は複数のブロックにより構成されている。
【００１６】
メモリコントローラ１０は、バス２０を介して接続された、ＲＯＭ１１と、制御部であるＣＰＵ１２と、データバッファとしても機能するＲＡＭ１３と、ホスト  Ｉ／Ｆ（インターフェイス）１９と、誤り検出訂正器（Error Correcting Code、以下「ＥＣＣ」ともいう。）１６と、ＮＡＮＤ  Ｉ／Ｆ（インターフェイス）１５と、不揮発性記憶部１４Ｄとを具備する。ＥＣＣ部１６は記憶するデータの符号化処理を行う符号化器１７および記憶されたデータの復号処理を行う復号化器１８とを有する。なお以下では、ＢＣＨ符号を用いるＥＣＣ部について説明する。メモリコントローラ１０は、ＣＰＵ１２を用いて、ホストＩ／Ｆ１５を介してホスト３とのデータ送受信を、ＮＡＮＤ  Ｉ／Ｆ１９を介してメモリ部１４とのデータ送受信を行う。
【００１７】
図２に示すように、ＥＣＣ部１６の復号化器１８は、シンドローム算出部１８Ａと多項式算出部１８Ｂと第２の誤り位置特定部であるチェンサーチ部１８Ｃと誤り訂正部１８Ｄとを有する。シンドローム算出部１８ＡはシンドロームＳを算出し、メモリ部１４からページ単位で読み出した符号化データの誤りの有無を検出する誤り検出部である。多項式算出部１８Ｂは誤り位置多項式を算出する。チェンサーチ部１８Ｃは、既に説明したように誤り位置多項式をもとに誤り位置を探索し特定する誤り位置特定部（polynomial generator）である。誤り訂正部１８Ｄは特定された誤り位置の誤りを訂正する。
【００１８】
ここで、複数のメモリセル１４Ｃからなるメモリ部１４にデータを記憶する半導体記憶装置２においては、記憶したデータの誤り発生の原因がメモリ部１４の物理的要因、例えば、特定のメモリセル１４Ｃの劣化に起因する場合には、劣化したメモリセル１４Ｃにデータを記憶し読み出すたびに誤りとなる不良モード、すなわち誤り位置が固定の不良モードとなる。誤り位置が固定の不良モードでは、同じページの同じ位置で繰り返して誤りが発生する。
【００１９】
このため、誤りがあったページの位置を示す誤りページアドレスおよび／または誤り位置多項式の係数（以下「係数」ともいう。））σと、誤り位置を示す誤りアドレスである誤りビットアドレスとを対応付けて記憶しておくことにより、再度、同じページアドレスのページで誤りが発生したときに、処理時間の長いチェンサーチ部１８Ｃによる誤り位置特定処理を行わなくとも、誤り位置を簡易に特定できる。
【００２０】
なお、誤りアドレスはＢＣＨ符号による符号化データを復号処理するときには誤りビットアドレスであるが、ＲＳ符号による符号化データを復号処理するときには、例えば、誤りバイトアドレスとなる。
【００２１】
すなわち、図２に示すように、本実施の形態のＥＣＣ部１６は誤り位置を簡易に特定するために、ＥＣＣキャッシュ部（ECC cache）２１と、比較部２２と、第１の誤り位置特定部２３とを有する。ＥＣＣキャッシュ部２１は、誤りがあったページの位置を示す誤りページアドレスおよび誤り位置多項式の係数σと、誤り位置を示す誤りビットアドレスとを対応付けて記憶する誤り位置記憶部である。
【００２２】
比較部２２は、新規にシンドローム算出部１８Ａが検出した誤りページアドレスおよび多項式算出部１８Ｂが算出した誤り位置多項式の係数σと、ＥＣＣキャッシュ部２１に記憶されている誤りページアドレスおよび誤り位置多項式の係数σと、を比較し一致するかどうか判断する。そして比較部２２が一致すると判断した場合に第１の誤り位置特定部２３は、誤りページアドレスおよび誤り位置多項式の係数と対応付けてＥＣＣキャッシュ部２１に記憶されている誤りビットアドレスの位置を誤り位置として特定する。
【００２３】
なお、ＥＣＣキャッシュ部２１、比較部２２、第１の誤り位置特定部２３、または不揮発性記憶部１４Ｄは独立した構成要素でなくともよく、さらにメモリコントローラ１０または半導体記憶装置２の構成要素であってもよい。例えば、ＥＣＣキャッシュ部２１はＣＰＵ１２のレジスタまたはＲＡＭ１３の一部であってもよいし、比較部２２と第１の誤り位置特定部２３とは、ＣＰＵ１２で実行されるＦＷ（Firm Ware）により実現してもよい。
【００２４】
なお、アクセス頻度の高い特定のページ（以下、「特別ページ」という。）、例えば、ページアドレスの論理アドレス／物理アドレス変換テーブル等のようなシステム管理情報を記憶し頻繁にアクセスされるページ、において誤り位置が固定の不良モードである場合に、本実施の形態の誤り検出訂正器等の効果は顕著である。このため、誤り検出訂正器１６は特別ページの誤りのみを第１の誤り位置特定部２３で誤り位置を簡易特定することにより、ＥＣＣキャッシュ部２１の容量を小さくできる。もちろん、ＥＣＣキャッシュ部２１の容量が大きくても許容される誤り検出訂正器等の場合には特別ページではない通常ページの誤り情報をＥＣＣキャッシュ部２１に記憶してもよい。すなわち、メモリシステム１に応じてＥＣＣキャッシュ部２１の仕様は最適化される。
【００２５】
一方、ＥＣＣキャッシュ部２１の容量を小さくしたい誤り検出訂正器等の場合には、ＥＣＣキャッシュ部２１に記憶する条件を誤り数が一定値以上のページでかつ特別ベージという条件にしてもよい。
【００２６】
次に、図３および図４を用いて本実施の形態の誤り検出訂正器等の処理の流れについて説明する。図３は、ページアドレスを２４ビットとし、上位１６ビットをページアドレスとする誤り検出訂正器等の処理の流れの例である。ここでは、ページアドレス１６ビットの下位８ビットをＥＣＣキャッシュ部のアドレスとし、上位８ビットを「page address tag」とする。ＥＣＣキャッシュ部２１に格納する係数σおよび誤りページアドレスの容量は、係数σが１３ビット×１２＝１５６ビットであり、誤りページアドレスが１３ビット×１２＝１５６ビットになる。
【００２７】
図４は、誤り検出訂正器１６の復号処理の流れを説明するためのフローチャートであり、以下図４のフローチャートに従って説明する。
【００２８】
＜ステップＳ１０＞  初期化ステップ  
誤り検出訂正器１６は、起動時に、前回終了時のＥＣＣキャッシュ部２１の情報等を不揮発性記憶部１４Ｄから読み出し、ＥＣＣキャッシュ部２１に記憶する。
【００２９】
＜ステップＳ１１＞  書き込みステップ（符号化ステップ）  
誤り検出訂正器１６はホスト３からの書き込みコマンドに応じて入力されたデータを符号化処理、すなわちパリティを付与し、メモリ部１４に記憶する。
【００３０】
例えば、誤り検出訂正器１６の符号化器１７はページデータ８ｋビットに１２ビット訂正のＢＣＨ方式による全体パリティを付加する。すなわち全体パリティは１３×１２＝１５６ビットになる。パリティが付加された符号化データがメモリ部１４に記憶される。
【００３１】
＜ステップＳ１２＞特別ページ読み出しステップ  
ホスト３からリードコマンドにより読み出し指示があったとき、読み出すページが、特別ページかどうかがシンドローム算出部１８ＡまたはＣＰＵ１２等により判断される。なお、特別ページアクセスの識別はホスト３からの識別信号「special_page」で行う。特定ページは、メモリシステム１上で予め定義しておく。特別ページでない通常ページだった場合（Ｎｏ）には、シンドローム算出処理からの通常の復号処理がステップＳ１３にて行われる。
【００３２】
＜ステップＳ１４＞  シンドローム算出ステップ  
特別ページであった場合（Ｓ１２：Ｙｅｓ）にも、シンドローム算出部１８Ａがメモリ部１４から読み出した特別ページの符号化データからシンドロームＳを算出する。すなわち、シンドローム算出部１８Ａが行うシンドローム算出処理は特別ページ同様、通常ページでも行われる。
【００３３】
＜ステップＳ１５＞  誤り有無検出ステップ  
シンドローム算出値がゼロの場合には、誤りの個数Ｎがゼロであることを意味しており、誤り訂正処理を行う必要はないため、そのページのデータはホストインターフェイス１５を介してホスト３に出力される。
【００３４】
＜ステップＳ１６＞  誤り位置多項式算出ステップ  
シンドローム算出値がゼロでない場合、シンドロームをもとに、多項式算出部１８Ｂが誤り位置多項式を算出する。すなわち、多項式算出部１８Ｂが行う誤り位置多項式算出処理は特別ページでも通常ページでも同じである。
【００３５】
＜ステップＳ１７＞  比較ステップ  
比較部２２は、シンドローム算出部１８Ａが誤りを検出したページアドレスおよび多項式算出部１８Ｂが算出した誤り位置多項式の係数σと、ＥＣＣキャッシュ部２１に記憶されている誤りページアドレスおよび誤り位置多項式の係数σと、を比較し一致するかどうか判断する。
【００３６】
言い換えれば、比較部２２はページアドレスをもとにＥＣＣキャッシュ部２１にアクセスし「page address tag」がヒットしたエントリがあるかを判断する。もちろんＥＣＣキャッシュ部２１に記憶されている誤りデータがない場合には比較部２２は動作しなくともよい。
【００３７】
＜ステップＳ１８＞  誤り位置簡易特定ステップ  
比較部２２が一致すると判断した場合には第１の誤り位置特定部２３が、誤りページアドレスおよび誤り位置多項式の係数と対応付けてＥＣＣキャッシュ部２１に記憶されている誤りビットアドレスの位置を誤り位置として特定する。
【００３８】
図３において、「sigma_fix」は多項式算出部１８Ｂによる係数σの計算が終了したことを、「error_bit_address_fix」は誤りビットアドレス計算が終了したことを示すタイミング信号であり、これらの信号を使って最終的に誤り位置である誤りビットアドレスが決定される。
【００３９】
＜ステップＳ１９＞  チェンサーチステップ  
比較部２２が一致しないと判断した場合、およびページアドレス「page address tag」が一致していたが係数σ「sigma tag」が一致しなかった場合には、チェンサーチ部１８Ｃが通常ページの復号処理と同様に、誤り位置多項式からチェンサーチ法により誤り位置を特定する。
【００４０】
＜ステップＳ２０＞  ＥＣＣキャッシュステップ  
チェンサーチ部１８Ｃが算出した誤り位置と、誤りページアドレスと、誤り位置を算出するのに用いたパラメータである誤り位置多項式の係数σとが、将来の誤り位置簡易特定処理のためにＥＣＣキャッシュ部２１に記憶される。
【００４１】
ＥＣＣキャッシュ部２１の空エントリにそのページ情報を格納する。すなわち多項式算出部が算出した係数σを「sigma_table」に、誤りビットアドレスを「error_bit_address_table」に記憶する。
【００４２】
なお、誤りページアドレス等の情報をＥＣＣキャッシュ部２１に記憶するとき、ＥＣＣキャッシュ部２１に空きがない場合には、所定の置換アルゴリズムに従って、旧エントリを新エントリに置換する。この置換処理アルゴリズムにはランダム方式、またはＬＲＵ(Last recently used：アクセスされた時期が最も古いページアドレスのエントリを捨てて置換する)方式等を用いる。
【００４３】
＜ステップＳ２１＞  誤り訂正  
誤り訂正部１８Ｄは特定された誤り位置の誤りを訂正する。誤り訂正部１８Ｄにおける誤り訂正は、ＢＣＨ符号を有する符号化データの場合には、ビット反転が行われる。リードソロモン符号を有する符号化データの場合には、さらに連立一次方程式を解くことにより８ビットのデータとして誤り訂正後の値が算出される。
【００４４】
＜ステップＳ２２＞  終了指示  
ホストから終了指示があるまで誤り検出訂正器１６は処理を継続する。
【００４５】
＜ステップＳ２３＞  退避ステップ  
ホストから終了指示があった場合、誤り検出訂正器１６はＥＣＣキャッシュ部２１に記憶されている情報を、不揮発性記憶部１４Ｄに転送、すなわち退避する。不揮発性記憶部１４Ｄはメモリ部１４の一部であってもよく、また、メモリシステム１が磁気記録ハードィスクドライブ（ＨＤＤ）を有する場合にはＨＤＤであってもよい。なお誤り検出訂正器１６が行う退避処理はホスト３からの終了指示時のみではなく、所定の時間間隔で行っても良い。
【００４６】
また、上記説明では省略したが、誤り検出訂正器１６が行うそれぞれの処理は、データバッファであるバッファ１３Ａ（図２参照）またはＲＡＭ１３にデータを一時記憶したり、データバッファからデータを読み出したりしながら行われる。また、ＥＣＣ１６とメモリ部１４との間のデータ転送はバス２０を経由してもよいが、専用のバスを経由することが処理速度の向上のためには好ましい。
【００４７】
以上の説明のように、本実施の形態の誤り検出訂正器１６、メモリコントローラ１０および半導体記憶装置２は、処理時間が長いチェンサーチ部１８Ｃによる誤り位置特定処理を行わなくとも、第１の誤り位置特定部２３により誤り位置を簡易に特定可能であるため、復号処理効率がよい。
【００４８】
＜第２の実施の形態＞  
次に、図５を参照して本発明の第２の実施の形態の誤り検出訂正器１６Ａ等の復号処理について説明する。第２の実施の形態の誤り検出訂正器１６Ａ等は第１の実施の形態の誤り検出訂正器１６等と類似しているため同じ構成要素には同じ符号を付し説明は省略する。
【００４９】
第１の実施の形態の誤り検出訂正器１６等のＥＣＣキャッシュ部２１は、誤りページアドレスと係数σとをＥＣＣキャッシュ部２１のタグとしたが、第２の実施の形態の誤り検出訂正器１６ＢのＥＣＣキャッシュ部２１Ａでは、係数σのみをタグとする。なお、「タグ」はデータに関する様々な状態を識別可能にするための「標識」である。
【００５０】
すなわち、図５に示すように、誤り検出訂正器１６Ａでは特別ページの読み出しのときに誤りが発生した場合にＥＣＣキャッシュ部２１Ａに係数σと対応付けて誤りビットアドレスを記憶する。そのとき、係数σの一部をＥＣＣキャッシュ部アドレスとし、残りの係数σをタグとする。
【００５１】
以上の説明のように、本実施の形態の誤り検出訂正器１６Ａは誤り位置多項式の係数と誤り位置を示す誤りビットアドレスとを対応付けて記憶するＥＣＣキャッシュ部２１Ａと、多項式算出部１８Ｂが算出した誤り位置多項式の係数とＥＣＣキャッシュ部２１Ａに記憶されている誤り位置多項式の係数σと、を比較し一致するかどうか判断する比較部２２Ａと、比較部２２Ａが一致すると判断した場合に、誤り位置多項式の係数と対応付けてＥＣＣキャッシュ部２１Ａに記憶されている誤りビットアドレスの位置を誤り位置として特定する第１の誤り位置特定部２３と、を具備する。
【００５２】
また、本実施の形態の誤り検出訂正器１６ＡはＥＣＣキャッシュ部２１Ａが、誤り位置多項式の係数σをＥＣＣキャッシュ部２１Ａにおける記憶位置を示すキャッシュアドレスとして誤りビットアドレスを記憶する。
【００５３】
このため、本実施の形態の誤り検出訂正器１６Ａ、メモリコントローラ１０Ａ（図１、図２参照）および半導体記憶装置２Ａ（図１、図２参照）はＥＣＣキャッシュ部２１Ａのアドレスタグ分の容量とアドレスタグ制御ロジックとを削減できる。このため、本実施の形態の誤り検出訂正器１６Ａ等は、第１の実施の形態の誤り検出訂正器１６等が有する効果を有し、さらに第１の実施の形態の誤り検出訂正器１６等より低価格で小型化が実現できる。
【００５４】
＜第３の実施の形態＞  
次に、図６を参照して本発明の第３の実施の形態の誤り検出訂正器１６Ｂ等の復号処理について説明する。第３の実施の形態の誤り検出訂正器１６Ｂ等は第１の実施の形態の誤り検出訂正器１６等と類似しているため同じ構成要素には同じ符号を付し説明は省略する。
【００５５】
誤り位置多項式の係数σは誤り数を反映した値になる。例えば、４ビット誤りならば「sigma５」〜「sigma１２」＝０になる。第３の実施の形態の誤り検出訂正器１６Ｂは、この特性を利用したもので、誤り数の少ないページのみをＥＣＣキャッシュ部２１Ｂの対象、言い換えれば、第１の誤り位置特定部２３が誤り位置を簡易特定する対象にする。
【００５６】
図６に例示した本実施の形態の誤り検出訂正器１６Ｂは、４ビット以下の誤りのあるページのみをＥＣＣキャッシュ部２１Ｂに記憶する対象にしたものである。そして、ＥＣＣキャッシュ部２１Ｂのアドレスを「sigma１」〜「sigma2」の２６ビットとし、タグを「sigma3」〜「sigma４」の２６ビットに設定している。誤りページアドレスは最大値の４アドレス分(４×１３ビット＝５２ビット)のみ格納する。本実施の形態の誤り検出訂正器１６Ｂは第２の実施の形態の誤り検出訂正器１６ＡのＥＣＣキャッシュ部２１Ａでタグ部５〜１２＝０にした場合に相当する。多項式算出部１８Ｂが算出した誤りが４ビット以下の場合、「error_４to１bit信号」がアサート（出力）されＥＣＣキャッシュ部２１Ｂへの記憶処理が起動される。
【００５７】
本実施の形態の誤り検出訂正器１６Ｂ、メモリコントローラ１０Ｂ（図１、図２参照）および半導体記憶装置２Ｂ（図１、図２参照）は、第１の実施の形態の誤り検出訂正器１６等が有する効果を有し、さらに、誤り数の少ない確率が高い場合に、比較部２２Ｂが行う比較処理が一致する確率が高くなるので第１の実施の形態の誤り検出訂正器１６等より復号処理の高速化を達成できる。また、本実施の形態の誤り検出訂正器１６Ｂ等はＥＣＣキャッシュ部２１Ｂの誤りアドレステーブルの容量を小さくできるので、さらに第１の実施の形態の誤り検出訂正器１６等より低コストである。
【００５８】
なお、逆に、誤り数の少ない確率が低い場合は、本実施の形態の誤り検出訂正器１６Ｂ等はＥＣＣキャッシュ部２１Ｂに記憶する情報量を低減できるので、小容量のＥＣＣキャッシュ部２１Ｂでも高い復号性能が得られる。
【００５９】
＜第４の実施の形態＞  
次に、図７を参照して本発明の第４の実施の形態の誤り検出訂正器１６Ｃ等の復号処理について説明する。第４の実施の形態の誤り検出訂正器１６Ｃ等は第１の実施の形態の誤り検出訂正器１６等と類似しているため同じ構成要素には同じ符号を付し説明は省略する。
【００６０】
第３の実施の形態の誤り検出訂正器１６Ｂでは誤り数が少ないページの情報のみをＥＣＣキャッシュ部２１Ｂの記憶対象とした。これに対して、第４の実施の形態の誤り検出訂正器１６Ｃでは、図７に示すように、逆に誤り数が多いページ、例えば、誤り数７以上のページの情報をＥＣＣキャッシュ部２１Ｃに記憶する。
【００６１】
このため、本実施の形態の誤り検出訂正器１６Ｃ等は、第１の実施の形態の誤り検出訂正器１６等が有する効果を有し、さらに、誤り数の多い確率が高い場合に、比較部２２Ｃの比較処理において一致する確率が高くなるのでさらに第１の実施の形態の誤り検出訂正器１６等より復号処理の高速化を達成できる。また、誤り数に応じてチェンサーチ部１８Ｃの処理時間および消費電力が増大する場合であっても、本実施の形態の誤り検出訂正器１６Ｃ等は誤り数が多くなれば比較部２２Ｃが行う比較処理で一致してチェンサーチが不要になる確率が高いので、さらに第１の実施の形態の誤り検出訂正器１６等より処理時間および消費電力を削減できる。  
逆に、誤り数の多い確率が低い場合は、本実施の形態の誤り検出訂正器１６Ｃ等はＥＣＣキャッシュ部記憶数の絶対値を低減できるので、小容量のＥＣＣキャッシュ部２１Ｃでも高い復号性能が得られる。
【００６２】
なお、本実施の形態の誤り検出訂正器１６Ｃ、メモリコントローラ１０Ｃ（図１、図２参照）および半導体記憶装置２Ｃ（図１、図２参照）は、定常的に誤り数が多く、かつ頻繁にアクセスするページのみをＥＣＣキャッシュ部対象にすることで、より少ない容量のＥＣＣキャッシュ部２１Ｃで効率的に復号処理時間の短縮が図れる。
【００６３】
＜第５の実施の形態＞  
次に、図８を参照して本発明の第５の実施の形態の誤り検出訂正器１６Ｄ等の復号処理について説明する。第５の実施の形態の誤り検出訂正器１６Ｄ等は第１の実施の形態の誤り検出訂正器１６等と類似しているため同じ構成要素には同じ符号を付し説明は省略する。
【００６４】
第５の実施の形態の誤り検出訂正器１６Ｄ等では、説明の都合上、誤り位置記憶部をＥＣＣキャッシュ部２１Ｄと呼ぶが、誤り位置記憶部がキャッシュ方式ではなくテーブル方式である。本実施の形態の誤り検出訂正器１６Ｄ等は、１ビットの誤りのみを対象にＥＣＣキャッシュ部２１Ｄのテーブルを用いて誤りビットアドレスを算出する。すなわち図８に示すように、誤り検出訂正器１６Ｄ等ではテーブルアドレスを「sigma１」の１３ビットとし、「sigma１」に対応する全誤りビットアドレス２１３＝８ｋＷｏｒｄを、ＣＰＵ１２のレジスタまたはＲＡＭ１３等に格納する。テーブルには予め、「sigma１」に対応する誤りビットアドレスを格納しておく。「error_bit_address」１〜１２のうち、１のみをテーブルから読み出して求める。
【００６５】
本実施の形態の誤り検出訂正器１６Ｄ、メモリコントローラ１０Ｄ（図１、図２参照）および半導体記憶装置１Ｄ（図１、図２参照）は、第１の実施の形態の誤り検出訂正器１６等が有する効果を有し、さらにページごとの誤りの数が１の１ビット誤りの確率が高い場合は、復号処理の高速化が達成できる。本実施の形態の誤り検出訂正器１６Ｄ等は、第１の実施の形態の誤り検出訂正器１６Ｄ等が有する効果を有し、さらに「sigmaタグ」が不要で誤りアドレステーブル、すなわちＥＣＣキャッシュ部２１Ｄの容量を小さくできるので、コスト的に有利である。
【００６６】
＜第６の実施の形態＞  
次に、本発明の第５の実施の形態の誤り検出訂正器１６Ｅ等の復号処理について説明する。第５の実施の形態の誤り検出訂正器１６Ｅ等は第１の実施の形態の誤り検出訂正器１６等と類似しているため同じ構成要素には同じ符号を付し説明は省略する。
【００６７】
第１の実施の形態の誤り検出訂正器１６等のＥＣＣキャッシュ部２１は、誤りページアドレスと係数σとをＥＣＣキャッシュ部のタグとしたが、第６の実施の形態の誤り検出訂正器１６ＥのＥＣＣキャッシュ部２１Ｅでは、誤りページアドレスのみをタグとする。
【００６８】
すなわち、本実施の形態の誤り検出訂正器１６Ｅ等は、誤りがあったページの位置を示す誤りページアドレスと誤り位置を示す誤りビットアドレスとを対応付けて記憶するＥＣＣキャッシュ部２１Ｅと、シンドローム算出部１８Ａが検出したページアドレスとＥＣＣキャッシュ部２１Ｅに記憶されているページアドレスとを比較し一致するかどうか判断する比較部２２Ｅと、比較部２２Ｅが一致すると判断した場合に、誤りページアドレスと対応付けてＥＣＣキャッシュ部２１Ｅに記憶されている誤りビットアドレスの位置を誤り位置として特定する第１の誤り位置特定部２３と、を具備する。
【００６９】
このため、本実施の形態の誤り検出訂正器１６Ｅ、メモリコントローラ１０Ｅ（図１、図２参照）および半導体記憶装置１Ｅ（図１、図２参照）は、第１の実施の形態の誤り検出訂正器１６等が有する効果を有し、さらに復号処理効率が高い。
【００７０】
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
【符号の説明】
【００７１】
１…メモリシステム
２、２Ａ〜２Ｅ…半導体記憶装置
３…ホスト
１０、１０Ａ〜１０Ｅ…メモリコントローラ
１１…ＲＯＭ
１２…ＣＰＵ
１３…ＲＡＭ
１３Ａ…バッファ
１４…メモリ部
１４Ａ…ワード線
１４Ｂ…ページ
１４Ｃ…メモリセル
１４Ｄ…不揮発性記憶部
１５…ホストインターフェイス
１６、１６Ａ〜１６Ｅ…誤り検出訂正器（ＥＣＣ）
１７…符号化器
１８…復号化器
１８Ａ…シンドローム算出部
１８Ｂ…多項式算出部
１８Ｃ…チェンサーチ部（第２の誤り位置特定部）
１８Ｄ…誤り訂正部
１９…ＮＡＮＤ  Ｉ／Ｆ
２０…バス
２１、２１Ａ〜２１Ｅ…ＥＣＣキャッシュ部
２２、２２Ａ〜２２Ｅ…比較部
２３…第１の誤り位置特定部
【図１】
2010218634.tif 000003
【図２】
2010218634.tif 000004
【図３】
2010218634.tif 000005
【図４】
2010218634.tif 000006
【図５】
2010218634.tif 000007
【図６】
2010218634.tif 000008
【図７】
2010218634.tif 000009
【図８】
2010218634.tif 000010