(57)【要約】      （修正有）【課題】読み出しデータを用いて読み出し電圧の最適値を予測できるようになり、１回の読み出し動作に比べてエラー訂正できる可能性を高め、さらにエラー訂正に失敗した場合の再動作の発動確率を抑制することが出来る半導体記憶装置を提供する。【解決手段】読み出したデータに含まれるエラー数を数えるコントローラ部を具備し、読み出し電圧の最適値よりも低い電圧での読み出しと、高い電圧での読み出しとの両方を実行し、低い電圧で読み出した時のデータとエラーのないデータとの差である第１の誤りビット数と、高い電圧で読み出した時のデータとエラーのないデータとの差である第２の誤りビット数と、を比較し、第１の誤りビット数が前記第２の誤りビット数より小さい場合、次回のデータ読み出しの時の読み出し電圧の最適値を読み出し電圧の最適値よりも低く設定する。【選択図】図５
2015133161.tif 000002
【特許請求の範囲】
【請求項１】
読み出し電圧の最適値を設定するメモリ部と、
読み出したデータに含まれるエラー数を数えるコントローラ部と、
を具備し、
前記コントローラ部は、今回の読み出し電圧の予想最適値でデータを読み出さず、読み出し電圧の予想最適値よりも低い電圧での読み出しと、高い電圧での読み出しと、の計２回の読み出しを実行し、前記低い電圧で読み出した時のデータと前記エラーのないデータとの差である第１の誤りビット数と、前記高い電圧で読み出した時のデータと前記エラーのないデータとの差である第２の誤りビット数と、を比較し、前記第１の誤りビット数が前記第２の誤りビット数より小さい場合、次回のデータ読み出しの時の読み出し電圧の予想最適値を前記読み出し電圧の最適値よりも低く設定し、前記第１の誤りビット数が前記第２の誤りビット数より大きい場合、次回のデータ読み出し時の読み出し電圧の予想最適値を前記読み出し電圧の最適値よりも高く設定する
ことを特徴とする半導体記憶装置。
【請求項２】
前記コントローラ部は、前記第１の誤りビット数と前記第２の誤りビット数との差の大きさに応じて次回のデータ読み出し時の読み出し電圧の予想最適値を設定する
ことを特徴とする請求項１記載の半導体記憶装置。
【請求項３】
前記コントローラ部は、前記第１の誤りビット数と前記第２の誤りビット数との比に応じて次回のデータ読み出しの時の読み出し電圧の予想最適値を設定する
ことを特徴とする請求項１記載の半導体記憶装置。
【請求項４】
前記コントローラ部は、前記読み出し電圧の予想最適値より低い電圧で読み出したデータと、高い電圧で読み出したデータとの排他的論理和をソフトビットデータとし、低い電圧で読み出したデータまたは高い電圧で読み出したデータのどちらか一方をハードビットデータとし、前記二つのデータからＥＣＣ訂正を行う
ことを特徴とする請求項１記載の半導体記憶装置。
【請求項５】
前記コントローラ部は、前記読み出し電圧の予想最適値より低い電圧で読み出したデータと高い電圧で読み出したデータとの排他的論理和をソフトビットデータとし、前記低い電圧で読み出したデータと前記高い電圧で読み出したデータとを組み合わせて作り出したデータをハードビットデータとし、前記二つのデータからＥＣＣ訂正を行う
ことを特徴とする請求項１記載の半導体記憶装置。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、半導体記憶装置に関する。
【背景技術】
【０００２】
メモリ装置のメモリセルの作製では、シリコン基板上のＰ型半導体層を挟みこむようにソースとドレインとなる２つのＮ型半導体部分を形成し、Ｐ型半導体層の上に酸化物層にはさまれたポリシリコン製の浮遊ゲートを形成し、さらにその上に制御ゲートが形成される。このため、メモリセルの浮遊ゲートに蓄積された電荷（電子）は、浮遊ゲートを覆う酸化物層により保持されるため、電源を供給することなくデータを長期間、保持することができる。
【０００３】
メモリセルへのデータの書き込みは、量子トンネル効果により電子を、酸化物層を介して浮遊ゲート内に注入することで行われる。回路基板であるＮ型半導体を接地電位にし、微小な電流によって制御ゲートに書き込み電圧を印加する。浮遊ゲート内に蓄積された電子が情報を記憶する。多値メモリでは、浮遊ゲートに蓄積された電荷量により複数ビットの情報を記憶する。
【０００４】
メモリセルからのデータの情報の読み出しでは、ソース／ドレイン間に読み出し電圧が印加される。浮遊ゲートにある電子数（電荷量）に応じて、ソース／ドレイン間に電流が流れはじめる電圧、すなわち浮遊ゲートにある電子が放出される電圧の最適値が異なる。所定の複数の読み出し電圧を順に印加していくことで、読み出し電圧に対するメモリセルの閾値の大小が分かる。
【０００５】
フラッシュメモリセルでは、書き込みおよび読み出しの度に、絶縁体である酸化膜を電子が貫通する。このため、書き込み回数および読み出し回数の増加により酸化膜が劣化する。
【０００６】
そして、近年、メモリ装置は高記録密度化のためにメモリセルのサイズが微細化され、メモリセルの浮遊ゲートに蓄積する電荷量が減少している。このため、隣接セル間の干渉ノイズの影響が相対的に増大している。すなわち、メモリセルにデータの書き込み（プログラム）または読み出しを行うことにより、隣接する他方のメモリセルのデータが変化することがある。
【０００７】
例えばデータの書き込みは、ワード線とビット線により選択されたメモリセルに対して行われる。しかし、非選択メモリセルにおいても弱い書き込み状態となり、電圧の最適値が高くなるプログラムディスターブ（以下、「ＰＤ」という）現象が発生する。また、データの読み出しにおいても、非選択メモリセルが弱い書き込み状態となり、電圧の最適値が高くなるリードディスターブ（以下、「ＲＤ」という）現象が発生する。
【０００８】
一方、メモリセルに書き込まれたデータが、長時間アクセスされなかった場合、メモリセルの浮遊ゲートから徐々に電子が放出され、電圧の最適値が低くなるデータリテンション（以下「ＤＲ」という）現象が発生する。
【０００９】
ＲＤまたはＤＲ等による、データ読み出しエラーの発生を防止し、メモリ装置の信頼性を改善するためには、例えば、読み出しレベル（以下、電圧）を変えることが有効である。
【００１０】
通常、読み出しの際には一組のデータをメモリから読み出してＥＣＣ訂正を行う。また、データに含まれるエラーが最少となる読み出し電圧の最適値の予想値がある場合は、予測値でデータを読み出す方法も広く行われている。この方法は読み出し速度が速く、消費電力も少ないという特徴があるが、前回の読み出し動作時に設定された今回の読み出し電圧の最適値が本来の最適値からずれている場合に、本来の最適値に設定されている場合よりも読み出しデータに含まれるエラービット数が多く、かつ、今回の読み出し電圧の最適値が本来の最適値からずれていることを検出することができないため、読み出しデータを訂正できない可能性が高くなる、という問題があった。
【００１１】
一方、メモリからのデータ読み出しの時に、想定されている読み出し電圧の最適値のデータと併せて、その最適値よりも高い電圧で読み出したデータと低い電圧で読み出したデータを一組または複数組用いてＥＣＣ訂正を行う方法も行われている。最適値で読み出したデータをハードビットデータ（ＨＢデータ：ＥＣＣ訂正の対象となるデータ）、それ以外のデータをソフトビットデータ（ＳＢデータ：ＨＢデータをＥＣＣ訂正する際のＨＢデータの信頼度情報を与えるデータ）と呼ぶこともある。すなわち、ＥＣＣ訂正はＨＢデータに対して行われ、ＳＢデータはＨＢデータの確からしさ（尤度）の情報を与える。この方法によるＥＣＣ訂正は、ＨＢデータだけを用いる最初の方法によるＥＣＣ訂正に比べてＥＣＣ訂正の能力は高くなるが、メモリから複数回データを読み出すので読み出し速度が遅く、消費電力が大きくなる、という問題があった。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２０００−２３５７９９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
本発明が解決しようとする課題は、読み出しデータを用いて読み出し電圧の最適値を予測できるようになり、１回の読み出し動作に比べてエラー訂正できる可能性を高め、さらにエラー訂正に失敗した場合の再動作の発動確率を抑制することが出来る半導体記憶装置を提供する。
【課題を解決するための手段】
【００１４】
上記課題を解決するために、第１の実施形態の半導体記憶装置は、読み出したデータに含まれるエラー数を数えるコントローラ部を具備する。コントローラ部は、読み出し電圧の予想最適値でデータを読み出さず、読み出し電圧の予想最適値よりも低い電圧での読み出しと、高い電圧での読み出しとの計２回の読み出しを実行し、低い電圧で読み出した時のデータとエラーのないデータとの差である第１の誤りビット数と、高い電圧で読み出した時のデータとエラーのないデータとの差である第２の誤りビット数と、を比較し、第１の誤りビット数が前記第２の誤りビット数より小さい場合、次回のデータ読み出しの時の読み出し電圧の予想最適値を読み出し電圧の予想最適値よりも低く設定し、第１の誤りビット数が第２の誤りビット数より大きい場合、次回のデータ読み出し時の読み出し電圧の予想最適値を読み出し電圧の予想最適値よりも高く設定することを特徴とする。
【図面の簡単な説明】
【００１５】
【図１】第１の実施形態のメモリ装置の概略構成を示す構成図である。
【図２】第１実施形態のメモリ装置の初期状態の電圧分布を説明するための説明図である。
【図３】第１実施形態のメモリ装置のデータリテンション状態の閾値電圧分布を説明するための説明図である。
【図４】第１実施形態のメモリ装置のリードディスターブ状態の閾値電圧分布を説明するための説明図である。
【図５】第１実施形態のメモリ装置の制御方法を説明するためのフローチャートである。
【図６】第１実施形態のメモリ装置の読み出し時の最適な閾値電圧の予想分布を説明するための説明図である。
【図７】第２実施形態のメモリ装置の制御方法を説明するためのフローチャートである。
【図８】第２実施形態のメモリ装置の読み出し時の最適な電圧の予想分布を説明するための説明図である。
【図９】第３実施形態のメモリ装置の制御方法を説明するためのフローチャートである。
【図１０】第４実施形態のメモリ装置の制御方法を説明するためのフローチャートである。
【図１１】第５実施形態のメモリ装置の復号時のＬＬＲテーブルである。
【図１２】第６実施形態のメモリ装置のＨＢデータを説明するための説明図である。
【発明を実施するための形態】
【００１６】
以下、各実施形態につき図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
【００１７】
（第１の実施形態）
第１の実施形態のメモリ装置１について、図１を参照して説明する。実施形態のメモリ装置１は、ＳＤカードなどのメモリカードやｅＭＭＣなどの組み込み用メモリ等を想定しており、パソコンやデジタルカメラ等のホストから受信したデータを記憶し、記憶したデータをホストに送信する記憶媒体である。また、メモリ装置はホストとともに、例えば携帯電話、スマートフォンや携帯音楽プレーヤーであるＭＰ３プレーヤー等のメモリシステムを構成していてもよい。
【００１８】
メモリ装置１は、メモリ部２と、デコーダ６を具備したメモリコントローラ３とを有する。メモリ部２は、ＮＡＮＤ型フラッシュメモリを有し、データを不揮発に記憶する。メモリ部２は、複数のメモリセルを含むページと呼ばれる単位でデータを書き込み、また読み出す。各ページには、固有の物理アドレスが割り当てられている。更にメモリ部２は、複数のページを含むブロックと呼ばれる単位でデータを消去する。
【００１９】
そして、メモリコントローラ３は、バス１２を介して接続された、ＲＯＭ１０と、ＣＰＵコア１１と、ＲＡＭ９と、誤り訂正部（以下「ＥＣＣ部」という）５と、ＮＡＮＤ Ｉ／Ｆ（インターフェイス）４と、データ比較部７と、誤りビットカウント部８とを有する。
【００２０】
メモリコントローラ３は、ホスト装置からの要求に応じて、制御部であるＣＰＵコア１１を用いて、メモリ部２に対してデータの書き込み、読み出し、及び消去を命令する。また、メモリコントローラ３は、メモリ部２のブロックの状態を管理する。ブロックの管理とは、どの物理アドレスのブロックが、どの論理アドレスのデータを保持しているかの関係、およびどの物理アドレスのブロックが消去状態（何も書き込まれていない、または無効なデータを保持している状態）であるかを管理することを含んでいる。ＲＯＭ１０には、メモリ装置１の制御プログラム等が格納されており、ＲＡＭ９には、アドレス管理で必要となるアドレス変換テーブル等が記憶される。
【００２１】
ＮＡＮＤ Ｉ／Ｆ４は、メモリコントローラ３とメモリ部２との間のインターフェース処理を行う。データ比較部７は、異なる電圧で読み出したときのデータを比較し、誤りビットカウント部８は、エラーのないデータと、エラーのあるデータとから誤りビット数を求める。
【００２２】
ＥＣＣ部５は、データ書き込み時に、データを符号化する（図示しない）エンコーダと、データ読み出し時に、メモリ部２から読みだされたデータから符号化データを復号するデコーダ６を有する。符号化および復号は複数のビットデータからなるＥＣＣフレーム単位で行われる。なお、書き込みおよび読み出し単位であるページは複数のＥＣＣフレームからなる。各実施形態のデコーダ６のＥＣＣ部５は、例えば、硬判定復号用符号であるＢＣＨ符号や確率に基づく反復計算により軟判定復号する誤り訂正符号であるＬＤＰＣ符号を用いる。
【００２３】
硬判定復号する場合は、データとパリティで構成されるECCフレームの各ビットが「０」か「１」か、を示すハードビット（以下、ＨＢ）だけを用いて演算が行われる。これに対して、例えばＬＤＰＣ符号を軟判定復号する場合は、所定の複数の読み出し電圧を印加してソフトビットデータ（以下、ＳＢデータ）から、ＨＢデータの信頼度情報（確からしさ）を含む対数尤度比（Ｌｏｇ Ｌｉｋｅｌｉｈｏｏｄ Ｒａｔｉｏ以下、「ＬＬＲ」ともいい。符号「λ」で示す。）が対数尤度比テーブルをもとに取得される。そして、ＬＬＲをもとに、ＥＣＣフレーム単位で、確率に基づく反復計算により誤り訂正処理が行われる。
【００２４】
しかし、データが記憶されているメモリ部２のメモリセルの電圧の最適値は、ＲＤまたはＤＲ等により変化することがある。
【００２５】
ここで、図２〜図４は、メモリセルの電圧の分布を示す。図２〜図４の横軸は、読み出し電圧Ｖであり、縦軸は、読み出し電圧Ｖで読み出されたメモリセルの個数ｎを示している。ここに示すメモリセルはＮ＝２（Ｎは自然数）のメモリセルであるため、４種類のデータが記憶されており、読み出し電圧によって（１、１）、（１、０）、（０、０）、（０、１）に区別される。ここで、ＮＡＮＤメモリセルに記憶する２ｂｉｔのデータのＬｏｗｅｒ  ｂｉｔをＸ、Ｕｐｐｅｒ  ｂｉｔをＹとしたとき、（Ｘ、Ｙ）と表記する。そして、図２に示すように、メモリセルに記憶されているデータを読み出すためのＨＢ読み出し電圧セットは、ＶＡ、ＶＢ、ＶＣの３（＝２Ｎ−１）個の電圧からなる。すなわち、閾値電圧分布において個数ｎが最小の電圧である最小頻度電圧の３個の電圧ＶＡ、ＶＢ、ＶＣをメモリセルに印加することで、そのメモリセルの読み出し電圧の最適値が、どの電圧のレベルにあるかが判明するため、ＨＢデータを読み出すことができる。
【００２６】
なお、ＨＢ読み出し電圧セットの情報は、設計および作製条件等をもとに予め設定され、例えば、ＲＯＭ１０に記憶されている。
【００２７】
しかし、図３に示すように、メモリセルがＤＲの影響を受けた場合、メモリセルの電圧の分布は、破線で示す初期分布に比べて、実線で示すように低電圧側が広がる。このため、初期設定の読み出し電圧セットの電圧ＶＡ、ＶＢ、ＶＣでは正しくデータを読み出すことができなくなる場合がある。
【００２８】
一方、図４に示すように、メモリセルがＲＤの影響を受けた場合、メモリセルの電圧の分布は、破線で示す初期分布に比べて、実線で示すように高電圧側が広がる。このため、やはり初期設定の読み出し電圧セットの電圧ＶＡ、ＶＢ、ＶＣでは正しくデータを読み出すことができなくなる場合がある。
【００２９】
すでに説明したように、上記初期設定の読み出し電圧が本来の最適値がずれている場合、ずれている範囲を予想し、読み出し電圧の最適値を設定する方法がある。従来では、今回の読み出し動作の前の読み出し動作の時にメモリ部に保存された読み出し電圧の最適値での計１回の読み出しを行っていた。そのため、情報量が少なく前回の読み出し電圧の最適値から読み出したデータを使って今回の読み出し電圧の最適値を予想することはできなかった。すなわち、ＥＣＣ訂正を行う際に読み出し電圧の最適値が大幅にずれていた場合などに訂正にかかる負担が大きくなってしまう問題があった。
【００３０】
これに対して、メモリ装置１では、前回の読み出し時に保存された読み出し電圧の予想最適値（以下、特に断りが無い限り、「予想最適値」を「最適値」と表記）は、ＲＤまたはＤＲ等の影響により最適ではないとして読み出さず、前回の読み出し時の読み出し電圧の最適値より高い電圧と低い電圧との計２回の読み出しを行う。これにより、第一の実施形態では、メモリ部２から２回データを読み出してＥＣＣ訂正を１回実行し、デコードにより訂正されたデータと２つの読み出しデータを比較することによって次回の読み出し電圧の最適値を設定することができる。
【００３１】
次に、上述したメモリ装置１の動作について図５と図６を参照ながら説明する。第１の実施形態では、前回の読み出しから、ある程度の時間が経過しており、ＲＤまたはＤＲ等の影響を大いに受けている際に、特に有効な方法である。
【００３２】
まず、メモリコントローラ３は、データを読み込むために、メモリ部２からＮＡＮＤ Ｉ／Ｆ４を介してデータを受信する。メモリ部２は、データをメモリコントローラ３に送信する。メモリ部２は、読み出し電圧を補正することが可能である。しかし、このとき、メモリコントローラ３は、データを読み出し電圧の最適値では読まずに、読み出し電圧の最適値より低い電圧６３でデータＡを読み出す。同様にして、高い電圧６５でもデータＢを読み出す。このように、メモリコントローラ３は、読み出し電圧の最適値より低い電圧６３と高い電圧６５の二つのデータを読み出し、ＲＡＭ９に記憶する。
【００３３】
次に、読み出し電圧の最適値より低い電圧６３で読み出したデータＡをＥＣＣ部５でＥＣＣ訂正を行う。そして、メモリコントローラ３は、ＥＣＣ訂正をしたデータＣをＲＡＭ９に記憶する。
【００３４】
データ比較部７は、低い電圧６３で読み出しデータＡとＥＣＣ訂正をしたデータＣとを比較する。そして、誤りビット数カウント部は、低い電圧６３で読み出した時の誤りビット数を求める。ここでは、低い電圧６３で読み出した時の誤りビット数を第１の誤りビット数６６とする（ステップ５２）。
【００３５】
同様にして、データ比較部７は、ＥＣＣ訂正したデータＣと読み出し電圧の最適値より高い電圧６５で読み出したデータＢとを比較する。そして、誤りビット数カウント部は、高い電圧６５で読み出した時の誤りビット数を求める。ここでは、高い電圧６５で読み出した時の誤りビット数を第２の誤りビット数６７とする（ステップ５３）。
【００３６】
メモリコントローラ３は、第１の誤りビット数６６と第２の誤りビット数６７とを比較する（ステップ５４）。その際、書込み直後のデータ分布６１のように、第１の誤りビット数６６と第２の誤りビット数６７との値が同じであれば、今回の読み出し電圧が本来の最適値に設定されていると判断し、今回の読み出し電圧の最適値を次回の読み出しの時にも使用する。また、ストレス印加後のデータ分布６２のように、第１の誤りビット数６６の方が第２の誤りビット数６７よりも小さければ、今回の読み出し電圧の最適値よりも低い電圧６３で読み出した方が、エラーが減る可能性が高いと判断する。そして、今回の読み出し電圧の最適値と低い電圧６３との差分の半分の値分だけ今回の読み出し電圧の最適値より低い電圧を次回の読み出し電圧の最適値とする（ステップ５５）。逆に、第１の誤りビット数６６の方が第２の誤りビット数６７よりも大きければ、今回の読み出し電圧よりも高い電圧で読み出した方が、エラーが減る可能性が高いと判断する。そして、今回の読み出し電圧の最適値と高い電圧６５との差分の半分の値分だけ今回の読み出し電圧の最適値より高い電圧を次回の読み出し電圧の最適値とする（ステップ５６、５７）。
【００３７】
なお、コントローラ３は、読み出し電圧の最適値より低い電圧で読み出したデータをＥＣＣ部５でＥＣＣ訂正できなかった場合、読み出し電圧の最適値より高い電圧で読み出したデータに対してＥＣＣ訂正を行い、その後同様に図５に示したデータの比較を行う。
【００３８】
上記第１の実施形態では、読み出し電圧の最適値より低い電圧と高い電圧の二つのデータを読み出す。そして、この二つのデータのどちらか一方を用いてＥＣＣ訂正を行うことにより、ＥＣＣ訂正したデータを作り出す。このようにして、次回の読み出しの際に使用する読み出し電圧の最適値を設定する。これにより、上記第１の実施形態では、合計２回の読み出しを行う。従来の通常の読み出し方式では、メモリ装置１の読み出し動作は１回であったため、読み出したデータを使って読み出し電圧の閾値の最適値を予測することはできなかった。第１の実施形態では、メモリ装置１の読み出し動作は２回になるが、読み出したデータを使って読み出し電圧の閾値の最適値を予測できるようになり、従来の１回の読み出し動作に比べてエラー訂正できる可能性を高め、エラー訂正に失敗した場合の再動作の発動確率を抑制することができる。
【００３９】
（第２の実施形態）
第２の実施形態は、次回の読み出し電圧の最適値を設定するために、今回の読み出し電圧の最適値を誤りビット数からどのくらい移動させるのかのパターンを示したものである。この説明において、上記第１の実施形態と重複する部分の詳細な説明は省略する。
【００４０】
第２の実施形態は、第１の誤りビット数と第２の誤りビット数の差の大きさによって、次回の読み出し電圧の最適値を調節する。すなわち、差が大きければ設定値の変更幅を大きくし、差が小さければ設定値の変更幅を小さくする。
【００４１】
具体例として、図７と図８を参照して、以下に第２の実施形態の半導体記憶装置の動作について説明する。
【００４２】
メモリコントローラ３は、例えば読み出し電圧の最適値より０．１２５Ｖ低い電圧と０．１２５Ｖ高い電圧で読み出す。この時、ＥＣＣ回路のＥＣＣ訂正能力が５０ｂｉｔであるとする。また、図７のステップ７８が第１の実施形態との違いにあたる部分である。
【００４３】
もし、書き込み直後のデータ分布７１のように、第１の誤りビット数７６と第２の誤りビット数７７の差が５ｂｉｔ以下ならば、読み出し電圧の最適値は変更しない。
【００４４】
次に、ストレス印加後のデータ分布７２のように、第１の誤りビット数７６と第２の誤りビット数７７の差が５ｂｉｔ以上１０ｂｉｔ以下である場合、第１の誤りビット数７６と第２の誤りビット数７７の差に比例した電圧値を、誤りビット数の少ない方に近づくように補正して、そのときの誤りビット数の少ない方の電圧を次回の読み出し電圧の最適値とする。例えば、第１の誤りビット数７６が第２の誤りビット数７７より７ｂｉｔ多ければ、第２の誤りビット数に０．０１２５Ｖの７倍の０．０８７５Ｖを加算して、そのときの第２の誤りビット数７７に対応した電圧を読み出し電圧の最適値とする。逆に、第２の誤りビット数７７が第１の誤りビット数７６より８ｂｉｔ多ければ、第１の誤りビット数７６に０．０１２５Ｖの８倍の０．１Ｖを減算して、そのときの第１の誤りビット数７６に対応した電圧を次回の読み出し電圧の最適値とする。
【００４５】
さらに、第１の誤りビット数７６が第２の誤りビット数７７よりも１０ｂｉｔ以上大きい場合、第２の誤りビット数７７の電圧値に０．０１２５Ｖの１０倍の０．１２５Ｖを加算して、今回の読み出し電圧の最適値を移動させる。また、第１の誤りビット数７６が第２の誤りビット数７７よりも１０ｂｉｔ以上小さい場合、第１の誤りビット数７６の電圧値に０．０１２５Ｖの１０倍の０．１２５Ｖを加算して、今回の読み出し電圧の最適値を移動させる。第２の実施形態で示した誤りビット数や電圧値はこれらに限定されることはなく、様々なパターンが考えられる（ステップ７８）。
【００４６】
第２の実施形態では、第１の実施形態と同様に、メモリ装置１の読み出し動作は２回になるが、読み出したデータを使って読み出し電圧の閾値の最適値を予測できるようになり、従来の１回の読み出し動作にくらべてエラー訂正できる可能性を高め、エラー訂正に失敗した場合の再動作の発動確率を抑制することができる。
【００４７】
（第３の実施形態）
第３の実施形態は、上記各実施形態と同様に、次回の読み出し電圧の最適値を設定するために、今回の読み出し電圧の最適値を誤りビット数からどのくらい移動させるのかのパターンを示したものである。この説明において、上記各実施形態と重複する部分の詳細な説明は省略する。
【００４８】
具体例として、図９を参照して、以下に第３の実施形態の半導体記憶装置の動作について説明する。また、図９のステップ９８が上記各実施形態との違いにあたる部分である。
【００４９】
第３の実施形態は、例えば第１の誤りビット数と第２の誤りビット数の比が３：７の場合、比を逆転した７：３の割合で、０．２５Ｖを分割した０．１７５Ｖを低い電圧マイナス０．１２５Ｖに加算したプラス０．０５Ｖを読み出し電圧の最適値として設定する。第３の実施形態で示した比率や電圧値はこれらに限定されることはなく、様々なパターンが考えられる。
【００５０】
第３の実施形態では、上記各実施形態と同様に、メモリ装置１の読み出し動作は２回になるが、読み出したデータを使って読み出し電圧の閾値の最適値を予測できるようになり、従来の１回の読み出し動作にくらべてエラー訂正できる可能性を高め、エラー訂正に失敗した場合の再動作の発動確率を抑制することができる。
【００５１】
（第４の実施形態）
第４の実施形態は、上記各実施形態と同様に、次回の読み出し電圧の最適値を設定するために、今回の読み出し電圧の最適値を誤りビット数からどのくらい移動させるのかのパターンを示したものである。この説明において、上記各実施形態と重複する部分の詳細な説明は省略する。
【００５２】
第４の実施形態は、第１の誤りビット数と第２の誤りビット数との絶対値の大きさによって、次回の読み出し電圧の最適値を調節する。すなわち、絶対値が大きければ読み出し電圧の最適値の変更幅を大きくし、絶対値が小さければ読み出し電圧の最適値の変更幅を小さくする。
【００５３】
具体例として、図１０を参照して、以下に第４の実施形態の半導体装置の動作について説明する。また、図１０のステップ１０８が上記各実施形態との違いにあたる部分である。
【００５４】
第４の実施形態では、第１の誤りビット数と第２の誤りビット数との絶対値のうち、小さい方が１０以下の場合、読み出し電圧の最適値を変更しない。小さい方が１０以上２０以下の場合、誤りビット数の小さい方向に０．０５Ｖ加算する。小さい方が２０以上５０以下の場合、誤りビット数の小さい方向に０．１Ｖ加算する。誤りビット数が５０以上の場合、誤りビット数の小さい方向に０．１８７５Ｖ補正する。
【００５５】
第４の実施形態では、上記各実施形態と同様に、メモリ装置１の読み出し動作は２回になるが、読み出したデータを使って読み出し電圧の閾値の最適値を予測できるようになり、従来の１回の読み出し動作にくらべてエラー訂正できる可能性を高め、エラー訂正に失敗した場合の再動作の発動確率を抑制することができる。
【００５６】
なお、コントローラ３は、読み出し電圧の最適値より低い電圧で読み出したデータと、読み出し電圧の最適値より高い電圧で読み出したデータとのどちらもＥＣＣ部５でＥＣＣ訂正できなかった場合、第５の実施形態の読み出し方式に切り替える。詳しい説明は下記の実施形態で説明する。
【００５７】
（第５の実施形態）
第５の実施形態は、上記各実施形態において読み出し電圧の最適値より低い電圧で読み出したデータと、読み出し電圧の最適値より高い電圧で読み出したデータとのどちらもＥＣＣ部５でＥＣＣ訂正できなかった場合、ＳＢデータを用いてＥＣＣ訂正するものである。この説明において、上記各実施形態と重複する部分の詳細な説明は省略する。
【００５８】
上記各実施形態の方式で読み出す場合、今回の読み出し電圧の最適値で読み出したデータが無い。第５の実施形態では、今回の読み出し電圧の最適値より低い電圧で読み出したデータと、高い電圧で読み出したデータとの排他的論理和（ＸＮＯＲ）をＳＢデータとし、さらに低い電圧で読み出したデータまたは高い電圧で読み出したデータのどちらか一方をＨＢデータとして用いて、これら二つのデータからＥＣＣ訂正を行う。
【００５９】
具体例として、以下に第５の実施形態のメモリ装置の動作について説明する。
【００６０】
図１１に示すように、以下の説明において、メモリカード３の各メモリセルはＬｏｗｅｒビット、Ｍｉｄｄｌｅビット、Ｕｐｐｅｒビットにそれぞれ１ビットのデータを記憶する３ビットセルとする（Ｎ＝３）。メモリセルからＨＢデータを読み出すために、Ｈ０１〜Ｈ０７の７個のＨＢ読み出し電圧が印加される。一般に、Ｎビット（Ｎは２以上の自然数）のデータを記憶するメモリセルのデータを読み出すためのＨＢ読み出し電圧は、（２のＮ乗−１）個である。
【００６１】
例えば、図１１に示すように、読み出し電圧の最適値ＶｔｈがＨ０４とＨ０５の間（Ｄレベル）の場合には、メモリセルに記憶されていたＨＢデータは（００１）と判断される。なお、（００１）はＬｏｗｅｒビットおよびＭｉｄｄｌｅビットが「０」、Ｕｐｐｅｒビットが「１」であることを示す。
【００６２】
所定のＥＣＣフレーム単位のＨＢデータを用いて、硬判定復号が行われる。復号できた場合には、ステップＳ２６において復号データがメモリ部２に送信される。
【００６３】
硬判定復号ができなかった場合には、より誤り訂正能力の高い軟判定復号を行うための、Ｓ０１〜Ｓ１４の１４個のＳＢ読み出し電圧からなる読み出し電圧セットの電圧が順次、メモリセルに印加される。
【００６４】
なお、ＳＢ読み出し電圧の個数は、図１１に示すように、それぞれのＨＢ読み出し電圧の低電圧側と高電圧側に各１個の２×（２のＮ乗−１）個に限られるものではなく、例えば、４×（２のＮ乗−１）個であってもよい。
【００６５】
ＳＢ読み出し電圧により読み出されたＳＢデータ（電圧の最適値（Ｖｔｈ）レベル）は、ＨＢデータの信頼度情報を含む。例えば、Ｓ０６〜Ｓ０７の間で読み出されたＨＢデータ（Ｖｔｈレベル１０）は、Ｈ０３〜Ｓ０６の間で読み出されたＨＢデータ（Ｖｔｈレベル９）と同じ（１０１）であるが、より信頼性が高い。
【００６６】
軟判定復号では、ＳＢ読み出し電圧により読み出されたＳＢデータからＨＢデータの確からしさを示すＬＬＲが、図８に示す通常復号用の対数尤度比テーブル（ＬＬＲテーブル）２０Ａから取得される。対数尤度比λの絶対値｜λ｜が信頼度であり、信頼度が、大きいほど信頼性が高く、反対に、信頼度が０に近いほど信頼性が低い。そして、ＬＤＰＣ復号ではＬＬＲテーブルから取得した初期ＬＬＲをもとに、確率に基づく反復計算による軟判定復号により誤り訂正処理が行われる。
【００６７】
すなわち、所定個数のビットデータを単位として、タナーグラフ上で接続された符号語の各ビットに対応したビットノードと各パリティ検査式に対応したチェックノードとの間で局所的に推論した結果を、やりとりしながら更新していくイタレーション処理が行われる。そして、メモリコントローラ３は予め定められた最大イタレーション回数内で、復号し、メモリ部２にデータを送信する。
【００６８】
第５の実施形態も上記各実施形態同様に、読み出し電圧の最適値より低い電圧と高い電圧の二つのデータを読み出す。そして、この二つのデータのどちらもＥＣＣ部５でＥＣＣ訂正できなかった場合、ＳＢデータを用いてＥＣＣ訂正する。第５の実施形態では、今回の読み出し電圧の最適値より低い電圧で読み出したデータと、高い電圧で読み出したデータとの排他的論理和（ＸＮＯＲ）をＳＢデータとし、さらに低い電圧で読み出したデータまたは高い電圧で読み出したデータのどちらか一方をＨＢデータとして用いて、これら二つのデータからＥＣＣ訂正を行う。このようにして、次回の読み出しの際に使用する読み出し電圧の最適値を設定する。従来の通常の読み出し方式でＳＢデータによるＥＣＣ訂正は、メモリ装置１の読み出し動作は３回であった。第５の実施形態では、メモリ装置１の読み出し動作は２回であり、読み出したデータを使って読み出し電圧の最適値を予測できるようになり、従来の３回の読み出し動作に比べてＮＡＮＤ型フラッシュメモリのような読み出し時間の長いメモリを使う場合、従来よりも読み出し時間を短縮できる。さらに、コントローラやメモリの消費電力が削減できる。
【００６９】
（第６の実施形態）
第６の実施形態は、上記各実施形態において読み出し電圧の最適値より低い電圧で読み出したデータと、読み出し電圧の最適値より高い電圧で読み出したデータとのどちらもＥＣＣ部５でＥＣＣ訂正できなかった場合、ＳＢデータを用いてＥＣＣ訂正するものであるが、その際に何をＨＢデータとして用いるかについてものである。この説明において、上記各実施形態と重複する部分の詳細な説明は省略する。
【００７０】
具体例として、図１２を参照して、以下に第６の実施形態の半導体装置の動作について説明する。
【００７１】
第６の実施形態は、読み出し電圧の最適値より低い電圧で読み出したデータと、高い電圧で読み出したデータとの排他的論理和をＳＢデータとし、図１２のように低い電圧で読み出したデータと高い電圧で読み出したデータとを例えば同じ割合で、１ｂｉｔずつ交互に混ぜたデータをＨＢデータとして用いてＥＣＣ訂正する。ここでは同じ割合で交互に１ｂｉｔずつ交互に混ぜたデータをＨＢデータとしたが、それに限られず、様々なパターンが考えられる。そして、ＥＣＣ訂正後の動作は第５の実施形態と同じである。
【００７２】
第６の実施形態では、上記第５の実施形態と同様に、メモリ装置１の読み出し動作は２回であるが、読み出したデータを使って読み出し電圧の最適値を予測できるようになり、従来の３回の読み出し動作に比べてＮＡＮＤ型フラッシュメモリのような読み出し時間の長いメモリを使う場合、従来よりも読み出し時間を短縮できる。さらに、コントローラやメモリの消費電力が削減できる。
【００７３】
以上のように、上記各実施形態に係るメモリ装置によれば、読み出しデータを用いて読み出し電圧の最適値を予測できるようになり、１回の読み出し動作に比べてエラー訂正できる可能性を高め、さらにエラー訂正に失敗した場合の再動作の発動確率を抑制することが出来る。
【００７４】
なお、上記実施形態は唯一の実施形態では無く、種々の変形が可能である。すなわち、上記一実施形態は複数の態様を含んでおり、その一部のみが実施されても良い。
【００７５】
また、上記実施形態では半導体記憶装置としてメモリカードを想定していた。しかし、半導体記憶装置はメモリカードに限らず、あらゆる記憶媒体であって良い。
【００７６】
同様に、上記実施形態ではＮＡＮＤ型フラッシュメモリを用いているが、これに限らず、例えばＤＲＡＭなどの揮発性メモリや、不揮発性メモリであっても良い。
【００７７】
更に、上記実施形態で説明したフローチャート図は、可能な限り順番を入れ替えることができ、また複数の処理を同時に実行することが出来る。また、メモリ装置１の構成は、図１の構成に限らず、上記実施形態で説明した機能を実現出来る構成であれば、ハードウェアとソフトウェアとを限らず、限定されるものでは無い。
【００７８】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００７９】
１…メモリ装置、２…メモリ部、３…メモリコントローラ、４…ＮＡＮＤＩ／Ｆ、５…ＥＣＣ部、６…デコーダ、７…データ比較部、８…誤りビットカウント部、９…ＲＡＭ、１０…ＲＯＭ、１１…ＣＰＵコア、１２…バス
【図１】
2015133161.tif 000003
【図２】
2015133161.tif 000004
【図３】
2015133161.tif 000005
【図４】
2015133161.tif 000006
【図５】
2015133161.tif 000007
【図６】
2015133161.tif 000008
【図７】
2015133161.tif 000009
【図８】
2015133161.tif 000010
【図９】
2015133161.tif 000011
【図１０】
2015133161.tif 000012
【図１１】
2015133161.tif 000013
【図１２】
2015133161.tif 000014