(57)【要約】【課題】処理量を削減することができるメモリ読み出し方法を提供することである。【解決手段】読み出しステップは、読み出し電圧を用いて不揮発性メモリのメモリセルアレイに書き込まれたデータを読み出す。カウントステップは、データ読み出し時に得られるランダマイズ解除前のデータの１又は０のビット数をカウントしてビットカウント値を出力する。判定ステップは、読み出したデータにエラー訂正符号復号エラーが発生した場合に、ビットカウント値と第１基準値とに基づきデータが正常な書き込みされたデータか否かを判定する。実行ステップは、データが正常な書き込みされたデータであると判定された場合に読み出し電圧をシフトさせることにより正常な書き込みされたデータのリトライリードを実行する。【選択図】図１
2020155180.tif 000002
【特許請求の範囲】
【請求項１】
読み出し電圧を用いて不揮発性メモリのメモリセルアレイに書き込まれたデータを読み出す第１読み出しステップと、
データ読み出し時に得られるランダマイズ解除前のデータの１又は０のビット数をカウントしてビットカウント値を出力するカウントステップと、
読み出した前記データにエラー訂正符号復号エラーが発生した場合に、前記ビットカウント値と第１基準値とに基づき前記データが正常な書き込みされたデータか否かを判定する第１判定ステップと、
前記データが正常な書き込みされたデータであると判定された場合に前記読み出し電圧をシフトさせることにより前記正常な書き込みされたデータのリトライリードを実行する実行ステップと、
を備えることを特徴とするメモリ読み出し方法。
【請求項２】
前記メモリセルアレイに有するセルトランジスタがトリプルレベルセルからなり、ワード線を共有する複数のセルを含むページを複数有し、前記データの書き込みを開始した後、前記ビットカウント値が前記第１基準値付近となり且つ前記複数のページに前記データの書き込みが完了していない場合には、前記リトライリードを実行する前に、前記読み出し電圧を用いて前記データを読み出す第２読み出しステップと、
前記読み出したデータについて、０のビット数が第２基準値に満たない場合には前記データが不完全に書き込みされたデータであると判定する第２判定ステップと、
を備えることを特徴とする請求項１記載のメモリ読み出し方法。
【請求項３】
前記メモリセルアレイに有するセルトランジスタがトリプルレベルセルからなり、ワード線を共有する複数のセルを含むページを複数有し、
前記複数のページの内の２つのページの書き込み開始から書き込み完了時までのビットカウント値に基づいて前記データが不完全に書き込みされたデータであるか否かを判定する第３判定ステップを備えることを特徴とする請求項１記載のメモリ読み出し方法。
【請求項４】
読み出し電圧を用いて不揮発性メモリのメモリセルアレイに書き込まれたデータを読み出す第１読み出し部と、
データ読み出し時に得られるランダマイズ解除前のデータの１又は０のビット数をカウントしてビットカウント値を出力するカウンタと、
読み出した前記データにエラー訂正符号復号エラーが発生した場合に、前記ビットカウント値と第１基準値とに基づき前記データが正常な書き込みされたデータか否かを判定する第１判定部と、
前記データが正常な書き込みされたデータであると判定された場合に前記読み出し電圧をシフトさせることにより前記正常な書き込みされたデータのリトライリードを実行する実行部と、
を備えることを特徴とするメモリシステム。
【請求項５】
前記メモリセルアレイに有するセルトランジスタがトリプルレベルセルからなり、ワード線を共有する複数のセルを含むページを複数有し、前記複数のページに前記データの書き込みを開始した後、前記ビットカウント値が前記第１基準値付近となり且つ前記複数のページに前記データの書き込みが完了していない場合には、前記リトライリードを実行する前に、前記読み出し電圧を用いて前記データを読み出す第２読み出し部と、
前記読み出したデータについて、つ０のビット数が第２基準値に満たない場合には前記データが不完全に書き込みされたデータであると判定する第２判定部と、
を備えることを特徴とする請求項４記載のメモリシステム。
【請求項６】
前記メモリセルアレイに有するセルトランジスタがトリプルレベルセルからなり、ワード線を共有する複数のセルを含むページを複数有し、
前記複数のページの内の２つのページの書き込み開始から書き込み完了時までのビットカウント値に基づいて前記データが不完全に書き込みされたデータであるか否かを判定する第３判定部を備えることを特徴とする請求項４記載のメモリシステム。
【請求項７】
不揮発性メモリと、該不揮発性メモリを制御する制御部とを有するメモリシステムのメモリ書き込み及び読み出し処理を実行するコンピュータ・プログラムであって、
読み出し電圧を用いて前記不揮発性メモリのメモリセルアレイに書き込まれたデータを読み出す第１読み出しステップと、
データ読み出し時に得られるランダマイズ解除前のデータの１又は０のビット数をカウントしてビットカウント値を出力するカウントステップと、
読み出した前記データにエラー訂正符号復号エラーが発生した場合に、前記ビットカウント値と第１基準値とに基づき前記データが正常な書き込みされたデータか否かを判定する第１判定ステップと、
前記データが正常な書き込みされたデータであると判定された場合に前記読み出し電圧をシフトさせることにより前記正常な書き込みされたデータのリトライリードを実行する実行ステップと、
を備えることを特徴とするコンピュータ・プログラム。
【請求項８】
前記メモリセルアレイに有するセルトランジスタがトリプルレベルセルからなり、ワード線を共有する複数のセルを含むページを複数有し、前記データの書き込みを開始した後、前記ビットカウント値が前記第１基準値付近となり且つ前記複数のページに前記データの書き込みが完了していない場合には、前記リトライリードを実行する前に、前記読み出し電圧を用いて前記データを読み出す第２読み出しステップと、
前記読み出したデータについて、０のビット数が第２基準値に満たない場合には前記データが不完全に書き込みされたデータであると判定する第２判定ステップと、
を備えることを特徴とする請求項７記載のコンピュータ・プログラム。
【請求項９】
前記メモリセルアレイに有するセルトランジスタがトリプルレベルセルからなり、ワード線を共有する複数のセルを含むページを複数有し、
前記複数のページの内の２つのページの書き込み開始から書き込み完了時までのビットカウント値に基づいて前記データが不完全に書き込みされたデータであるか否かを判定する第３判定ステップを備えることを特徴とする請求項７記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、不揮発性のＮＡＮＤフラッシュメモリ等のメモリ読み出し方法及びメモリシステム並びにコンピュータ・プログラムに関する。
【背景技術】
【０００２】
ＮＡＮＤフラッシュメモリに有するメモリセルは、浮遊ゲートに蓄えられた電荷量に応じたデータを記憶する。メモリセルから読み出したデータは、書き込み時に付加されたエラー訂正符号（ＥＣＣ）を用いて復号される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−７９４０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が解決しようとする課題は、処理量を削減することができるメモリ読み出し方法及びメモリシステム並びにコンピュータ・プログラムを提供することである。
【課題を解決するための手段】
【０００５】
本発明の実施形態に係るメモリ読み出し方法は、第１読み出しステップと、カウントステップと、第１判定ステップと、実行ステップとを備える。第１読み出しステップは、読み出し電圧を用いて不揮発性メモリのメモリセルアレイに書き込まれたデータを読み出す。カウントステップは、データ読み出し時に得られるランダマイズ解除前のデータの１又は０のビット数をカウントしてビットカウント値を出力する。第１判定ステップは、読み出したデータにエラー訂正符号復号エラーが発生した場合に、ビットカウント値と第１基準値とに基づきデータが正常な書き込みされたデータか否かを判定する。実行ステップは、データが正常な書き込みされたデータであると判定された場合に読み出し電圧をシフトさせることにより正常な書き込みされたデータのリトライリードを実行する。
【図面の簡単な説明】
【０００６】
【図１】図１は、本発明の第１実施形態にかかるメモリシステムの機能ブロック図である。
【図２】図２は、本発明の第１実施形態にかかるブロックＢＬＫ０の回路図である。
【図３】図３は、本発明の第１実施形態にかかるセルトランジスタの閾値電圧の分布の一例を示す図である。
【図４】図４は、本発明の第１実施形態にかかるメモリシステムの書き込みデータ判定処理を示すフローチャートである。
【図５】図５は、本発明の第１実施形態にかかるＳＬＣである複数のセルトランジスタＭＴに対する書き込みの進み具合とビットカウント（割合）との関係を示す図である。
【図６】図６は、本発明の第１実施形態にかかるＳＬＣである複数のセルトランジスタＭＴに対する（ａ）書き込み２５％完了時、（ｂ）５０％完了時、（ｃ）１００％完了時それぞれにおける閾値電圧の分布の一例である。
【図７】図７は、本発明の第１実施形態にかかるＴＬＣである複数のセルトランジスタＭＴに対する書き込みの進み具合とビットカウント値との関係を示す図である。
【図８】図８は、本発明の第１実施形態にかかるＴＬＣセルトランジスタの（ａ）ロウワーページ、（ｂ）ミドルページ、（ｃ）アッパーページの各ページについて書き込まれたデータの一例を示す図である。
【図９】図９は、本発明の第２実施形態にかかるメモリシステムの書き込みデータ判定処理を示すフローチャートである。
【図１０】図１０は、本発明の第３実施形態にかかるメモリシステムにおけるビットカウントの変化を示す図である。
【発明を実施するための形態】
【０００７】
以下、実施形態のメモリ読み出し方法及びメモリシステムについて、図面を参照しながら詳細に説明する。
【０００８】
参照される図面は模式的なものである。以下の説明において、同一の機能及び構成を有する要素については、共通する参照符号を付す。参照符号を構成する数字の後のアルファベットは、同じ数字を含んだ参照符号によって参照される。且つ同様の構成を有する要素同士を区別するために用いられている。同じ数字を含んだ参照符号で示される要素を相互に区別する必要がない。この場合、これらの要素は数字のみを含んだ参照符号により参照される。
【０００９】
（第１実施形態）
（メモリシステムの構成）
図１は、本発明の第１実施形態にかかるメモリシステムの機能ブロック図である。メモリシステム１は、図１に示すように、図示しないホスト装置のためのストレージとして機能する。メモリシステム１は、ホスト装置と通信する。メモリシステム１は、ホスト装置の指示に基づいて、ホスト装置からのデータを記憶する。
【００１０】
メモリシステム１は、複数のメモリ装置１００と、メモリコントローラ２００を備える。メモリシステム１は、例えばＳＤＴＭカードのようなメモリカードや、ＳＳＤ（Solid state device）である。メモリ装置１００と、メモリコントローラ２００は、別々のパッケージに例えば、樹脂によって封止されたチップであってもよい。メモリ装置１００と、メモリコントローラ２００は、１つのチップであってもよい。
【００１１】
複数のメモリ装置１００は、同じ要素及び接続を有する。ここでは、１つのメモリ装置１００を代表として説明する。１つのメモリ装置１００の説明は他のメモリ装置１００にも適用される。メモリ装置１００は、不揮発にデータを記憶するＮＡＮＤ型フラッシュメモリである。
【００１２】
（メモリコントローラの構成）
メモリコントローラ２００は、ホスト装置からの命令に応答する。メモリコントローラ２００は、メモリ装置１００に対して読み出し、書き込み、及び消去等を命令する制御装置である。メモリコントローラ２００は、ホスト装置から書き込みを指示されたデータをメモリ装置１００に書き込む。メモリコントローラ２００は、ホスト装置から読み出しを指示されたデータをメモリ装置１００から読み出す。メモリコントローラ２００は、メモリ装置１００から読み出したデータをホスト装置に送信する。
【００１３】
また、メモリコントローラ２００は、メモリ装置１００におけるメモリ空間を管理する。管理は、アドレスの管理、及びメモリ装置１００の状態の管理を含む。アドレスのマッピングは、論理アドレスと物理アドレスのマッピングである。物理アドレスはメモリ装置１００により提供される記憶領域を特定する領域である。具体的には、メモリコントローラ２００は、書き込みを指示される。すると、書き込みを指示されたデータの書き込み先の論理アドレスと、当該データが書き込まれたメモリ装置１００中の記憶領域の物理アドレスはアドレス変換テーブルにより管理される。
【００１４】
メモリコントローラ２００は、ある論理アドレスと関連付けられた物理アドレスを知得し、知得された物理アドレスの記憶領域からデータを読み出す。メモリ装置１００の状態の管理は、メモリ装置１００の記憶領域の管理、ウェアレベリング、ガベージコレクション、及びリフリッシュを含む。
【００１５】
メモリコントローラ２００は、ホストインターフェイス２１、全体制御部２２、ＲＡＭ（random access memory）２３、メモリインターフェイス２４、ＥＣＣ回路２５、ＲＯＭ（read only memory）２６を備える。なお、各図において、インターフェイスは、Ｉ／Ｆと記載する。
【００１６】
メモリコントローラ２００は、例えば、ハードウェアとしてＣＰＵ（central processing unit ）等のプロセッサを含む。メモリコントローラ２００は、ＲＯＭ２６に記憶され且つＲＡＭ２３上にロードされたファームウェア（プログラム）がプロセッサによって実行されることによって、ホストインターフェイス２１、全体制御部２２、ＲＡＭ２３、メモリインターフェイス２４及びＥＣＣ回路２５の各々の機能の一部または全部を実行する。ホストインターフェイス２１、全体制御部２２、メモリインターフェイス２４及びＥＣＣ回路２５は、バスにより相互に接続されている。
【００１７】
ホストインターフェイス２１は、外部との通信を行うハードウェアインターフェイスである。例えば、ホストインターフェイス２１は、外部から受信した命令及びデータをそれぞれ、全体制御部２２及びＲＡＭ２３に転送する。
【００１８】
ＲＡＭ２３は、メモリコントローラ２００がメモリ装置１００及びホスト装置から受信したデータを一時的に記憶し、バッファとしての機能を有するメモリである。
【００１９】
メモリインターフェイス２４は、メモリ装置１００と接続され、メモリコントローラ２００とメモリ装置１００との通信を行うハードウェアインターフェイスである。メモリインターフェイス２４は、ＮＡＮＤインターフェイスに従った信号の送受信を行う。ＮＡＮＤインターフェイスに従った信号は、例えば種々の制御信号及び入出力信号ＤＱを含む。入出力信号ＤＱ（ＤＱ０〜ＤＱ７）は、例えば８ビットの幅を有し、コマンド（ＣＭＤ）、書き込みデータ及び読み出しデータ（ＤＡＴＡ）、アドレス信号（ＡＤＤ）、各種の管理データを含む。
【００２０】
ＥＣＣ回路２５は、データのエラー訂正（Error Checking  and Correcting）を行うハードウェア回路である。ＥＣＣ回路２５は、メモリインターフェイス２４を介してメモリ装置１００に接続される。具体的には、ＥＣＣ回路２５は、データの書き込み時に書き込みデータに基づいてパリティを生成する。ＥＣＣ回路２５は、データの読み出し時にパリティからシンドロームを生成して、エラーを検出し、検出したエラーを訂正する。
【００２１】
また、ＥＣＣ回路２５は、メモリ装置１００からの読み出されたデータ（読み出しデータ）に対して誤り訂正演算を行う。ＥＣＣ回路２５は、読み出しデータの符号誤り（エラー）が、誤り訂正能力以内である場合には、読み出しデータから正しいデータを復元できる。誤り訂正能力は、読み出しデータに含まれる誤り訂正データに基づいて定まる。ＥＣＣ回路２５は、読み出しデータのエラーが誤り訂正能力を超える場合には、読み出しデータから正しいデータを復元できない。
【００２２】
全体制御部２２は、演算処理装置である。全体制御部２２は、ホストインターフェイス２１、ＲＡＭ２３、メモリインターフェイス２４、ＲＯＭ２６、ＥＣＣ回路２５、ＲＯＭ２６に接続される。全体制御部２２は、ホストインターフェイス２１、ＲＡＭ２３、メモリインターフェイス２４及びＥＣＣ回路２５を制御する。全体制御部２２は、書き込み及び読み出しの際に、ＲＡＭ２３及びメモリインターフェイス２４を制御しつつ、メモリ装置１００の状態を管理する。また、全体制御部２２は、ホスト装置から受信した書き込み命令に応答して、書き込み命令を発行する。この動作は、読み出し及び消去の場合についても同様である。
【００２３】
全体制御部２２は、ＥＣＣ回路２５によるパリティ生成前でメモリ装置１００へのデータ書き込み前に、ビット単位で各々の値をそれらと無関係に０又は１に等確率で変換する。この処理をランダマイズと呼ぶ。ランダマイズの結果、書き込まれるデータの０又は１の数はほぼ同数（それぞれ５０％）となる。
【００２４】
ＲＯＭ２６は、データの読み出しのみ可能なメモリである。ＲＯＭ２６は、全体制御部２２に接続される。ＲＯＭ２６は、書き込みデータ判定処理プログラム（コンピュータ・プログラムに対応）を格納する。全体制御部２２は、ＲＯＭ２６に格納された書き込みデータ判定処理プログラムを実行することで、図４に示すフローチャートの各処理を実行する。
【００２５】
（メモリ装置の構成）
各メモリ装置１００は、メモリセルアレイ１１、シーケンサ（制御回路）１２、電位
生成回路１３、ドライバ１４、ロウデコーダ１５、センスアンプ１６等を含む。
【００２６】
メモリセルアレイ１１は、複数のブロック（メモリブロック）ＢＬＫ（ＢＬＫ０、ＢＬＫ１、…）により構成される記憶部である。メモリセルアレイ１１は、電位生成回路１３、ロウデコーダ１５、センスアンプ１６に接続される。各ブロックＢＬＫ中のデータは一括して消去される。各ブロックＢＬＫは、ビット線及びワード線に関連付けられた複数のセルトランジスタ（メモリセル）を備える。セルトランジスタは、メモリコントローラ２００からの書き込みデータを不揮発に記憶する。
【００２７】
電位生成回路１３は、電位を生成するハードウェア回路である。電位生成回路１３は、シーケンサ１２、メモリセルアレイ１１、ドライバ１４、ロウデコーダ１５、センスアンプ１６に接続される。電位生成回路１３は、シーケンサ１２の指示に基づいて電位を生成する。生成された電位は、メモリセルアレイ１１、ドライバ１４、ロウデコーダ１５、センスアンプ１６に供給される。ドライバ１４は、メモリコントローラ２００からのアドレス信号ＡＤＤを受け取り、電位生成回路１３からの電位のうちアドレス信号ＡＤＤに基づいていくつかの電位を選択し、選択された電位をロウデコーダ１５に供給する。
【００２８】
ロウデコーダ１５は、ブロックアドレス又はページアドレスをデコードするハードウェア回路である。ロウデコーダ１５は、メモリコントローラ２００に接続される。ロウデコーダ１５は、メモリコントローラ２００からのアドレス信号ＡＤＤを受け取る。ロウデコーダ１５は、アドレス信号ＡＤＤに基づいて、１つのブロックを選択する。ロウデコーダ１５は、選択されたブロックＢＬＫにドライバ１４からの電位を転送する。また、ロウデコーダ１５は読み出し動作及び書き込み動作を行う対象のセルトランジスタに対応するワード線を選択する。そして、ロウデコーダ１５は、選択ワード線及び非選択ワード線にそれぞれ所望の電圧を印加する。
【００２９】
センスアンプ１６は、メモリセルからの電圧を増幅する回路である。データ読み出し時、メモリセルからビット線に読み出される電圧は数百ｍＶ程度と小さい。センスアンプ１６は、データ読み出し時にビット線の電圧変動をデジタル信号として取り扱いが可能となるレベルまで増幅する。また、センスアンプ１６は、カウンタ１６１を有する。カウンタ１６１は、読み出しデータの１または０の数をカウントし、このカウント結果をシーケンサ１２に転送する。
【００３０】
シーケンサ１２は、メモリ装置１００の動作を制御するコントローラである。シーケンサ１２は、メモリコントローラ２００に接続される。シーケンサ１２は、メモリコントローラ２００からのコマンドＣＭＤに基づいて、電位生成回路１３、ドライバ１４、及びセンスアンプ１６等を制御する。シーケンサ１２は、レジスタ１２１を含む。レジスタ１２１は、複数の記憶領域を含む。各記憶領域は、一意のアドレスにより特定でき、１または複数のビットの情報を記憶できる。レジスタ１２１は、各記憶領域において種々のデータを記憶する。
【００３１】
図２は、本発明の第１実施形態にかかるブロックＢＬＫ０の回路図である。図２は、メモリセルアレイ１１のブロックＢＬＫ０の要素及び接続を示す。ブロックＢＬＫ０以外の他のブロックＢＬＫは、図２に示されるブロックＢＬＫ０と同様の要素及び接続を備える。
【００３２】
ブロックＢＬＫ０は、ビット線及びワード線に関連付けられた複数のトランジスタを備える。ブロックＢＬＫ０は、複数の（例えば４つの）ストリングユニットＳＵ（ＳＵ０〜ＳＵ３）からなる。各ストリングＳＴＲは、１つの選択ゲートトランジスタＳＴ、複数（例えば８個）のセルトランジスタＭＴ（ＭＴ０〜ＭＴ７）、１つの選択ゲートトランジスタＤＴ（ＤＴ０〜ＤＴ３）からなる。ブロックＢＬＫ０において、ｍ（ｍは自然数）本のビット線ＢＬ０〜ＢＬｍ−１の各々は、４つのストリングユニットＳＵ０〜ＳＵ３の各々の１つのストリングＳＴＲと、それぞれ接続されている。
【００３３】
１つの選択ゲートトランジスタＳＴは、制御ゲート電極が信号線ＳＧＳＬに接続される。複数のセルトランジスタＭＴ（ＭＴ０〜ＭＴ７）は、制御ゲート電極がワード線ＷＬに接続される。１つの選択ゲートトランジスタＤＴ（ＤＴ０〜ＤＴ３）は、制御ゲート電極が信号線ＳＧＤＬ０に接続される。選択ゲートトランジスタＳＴ、セルトランジスタＭＴ、及び選択ゲートトランジスタＤＴは、この順でソース線ＣＥＬＳＲＣと１つのビット線ＢＬとに直列に接続されている。
【００３４】
セルトランジスタＭＴは、ＭＯＳＦＥＴ（Metal Oxide Semiconductor Field Effect Transistor）である。セルトランジスタＭＴは、制御ゲート電極がワード線ＷＬに接続される。セルトランジスタＭＴは、制御ゲート電極及び周囲から絶縁された浮遊ゲート電極を備える。セルトランジスタＭＴは、浮遊ゲート電極に蓄えられた電荷の量に応じて閾値電圧が変化する。つまり、セルトランジスタＭＴは、電荷の量に応じたデータを記憶する。データ書き込み時、セルトランジスタＭＴは、浮遊ゲート電極に、電子を注入される。データ消去時、セルトランジスタＭＴは、浮遊ゲート電極から電子を引き抜かれる。
【００３５】
複数のビット線ＢＬとそれぞれ接続された複数のストリングＳＴＲは、複数のストリングユニットＳＵ（ＳＵ０、ＳＵ１、ＳＵ２、ＳＵ３）を構成する。各ストリングユニットＳＵは、１本のビット線ＢＬ毎に１つずつ、そのビット線ＢＬと接続されたストリングＳＴＲを備える。
【００３６】
各ストリングユニットＳＵにおいて、セルトランジスタＭＴ（ＭＴ０〜ＭＴ７）の制御ゲート電極は、ワード線ＷＬ０〜ＷＬ７とそれぞれ接続されている。さらに、相違するストリングユニットＳＵ中の同じアドレスのワード線ＷＬも相互に接続されている。
【００３７】
１つのストリングユニットＳＵ中でワード線ＷＬを共有するセルトランジスタＭＴの組は、１ページＰＧとして取り扱われ、ページ毎にデータの書き込み及び読み出しが行われる。即ち、１ページＰＧのセルトランジスタＭＴは、一括してデータを書き込まれ、また一括してデータを読み出される。ページＰＧは、複数を纏めて管理することができる。
【００３８】
選択ゲートトランジスタＤＴ０〜ＤＴ３は、ストリングユニットＳＵ０〜ＳＵ３にそれぞれ属する。各α（αは０または３以下の自然数）について、ストリングユニットＳＵαの複数のストリングＳＴＲの各々の選択ゲートトランジスタＤＴαのゲートは、選択ゲート線ＳＧＤＬαに接続されている。選択ゲートトランジスタＳＴのゲートは、選択ゲート線ＳＧＳＬに接続されている。
【００３９】
メモリ装置１００は、１つのセルトランジスタＭＴにおいて１ビット以上のデータを記憶することができる。書き込みの結果として１セルトランジスタ当たり１ビットのデータを記憶するものはシングルレベルセル（ＳＬＣ）と呼ぶ。ＳＬＣであるセルトランジスタＭＴは、電荷の蓄積量が２つのレベルに分類される。１セルトランジスタ当たり２ビットのデータを記憶するものはマルチレベルセル（ＭＬＣ）と呼ぶ。ＭＬＣであるセルトランジスタＭＴは、電荷の蓄積量が４つのレベルに分類される。１セルトランジスタ当たり３ビットのデータを記憶するものはトリプルレベルセル（ＴＬＣ）と呼ぶ。ＴＬＣであるセルトランジスタＭＴは、電荷の蓄積量が８つのレベルに分類される。１セルトランジスタ当たりのビット数が増加するに従って、データ容量が大きい記憶素子である。
【００４０】
各ワード線ＷＬ０〜ＷＬ７に対して、電位生成回路１３の出力が接続され、各ビット線ＢＬ０〜ＢＬｍ−１にそれぞれセンスアンプ１６が接続される。各ワード線ＷＬ０〜ＷＬ７から１つを選択し、電位生成回路１３により選択されたワード線をセルトランジスタＭＴのオフ電圧、それ以外のワード線をオン電圧とする。そして、各ビット線ＢＬ０〜ＢＬｍ−１の電圧をそれぞれセンスアンプ１６により検知することで、１ページ分のデータを読み出すことができる。
【００４１】
図３は、本発明の第１実施形態にかかるセルトランジスタの閾値電圧の分布の一例を示す図である。図３（ａ）は、ＳＬＣである複数のセルトランジスタＭＴの閾値電圧の分布の一例を示す。図３（ｂ）は、ＴＬＣである複数のセルトランジスタＭＴの閾値電圧の分布の一例を示す。図３（ａ）、図３（ｂ）において、縦軸は導通するセルトランジスタＭＴの数（セル数）、横軸は閾値電圧を示す。
【００４２】
図３（ａ）において、分布３ｂは、閾値電圧が読み出し電圧Ｔｈ１以下である消去状態（Ｅｒａｓｅ状態またはＥｒ状態とも呼ぶ）にある複数のセルトランジスタの分布を模式的に示す。データの書き込みは、Ｅｒ状態のセルトランジスタＭＴに対して実行される。分布３ａは、閾値電圧がＴｈ１以上であるＡ状態にある複数のセルトランジスタの分布を模式的に示す。ＳＬＣであるセルトランジスタＭＴにおける読み出し電圧Ｔｈ１は例えば０Ｖである。書き込みの結果、ＳＬＣであるセルトランジスタＭＴは、Ｅｒ状態からＡ状態に遷移する。
【００４３】
図３（ｂ）において、読み出し条件として７つの読み出し電圧Ｔｈ１１〜Ｔｈ１７を含む読み出し電圧Ｔｈの組を設定する。セルトランジスタＭＴの閾値電圧をこれらの読み出し電圧Ｔｈ１１〜Ｔｈ１７で分類する。即ち、読み出し電圧Ｔｈ１１〜Ｔｈ１７を用いてデータを読み出す。なお、分布５ｈは、消去状態（Ｅｒａｓｅ）の分布を示す。
【００４４】
（書き込みデータ判定処理）
次に、第１実施形態のメモリシステムの書き込みデータ判定処理について説明する。図４は、本発明の第１実施形態にかかるメモリシステムの書き込みデータ判定処理を示すフローチャートである。図４を参照しながら、書き込みデータ判定処理を説明する。
【００４５】
外部から書き込みの指示を受信すると、全体制御部２２は、データを書き込むメモリ装置１００を選択する。全体制御部２２は、データの書き込み前にビット単位で各々の値をそれらと無関係に０又は１に等確率で変換する（ステップＳ１）。書き込まれるデータの０又は１の数はほぼ同数（それぞれ５０％）となる。そして、全体制御部２２は、選択したメモリ装置１００へ、データの書き込みを指示する（ステップＳ２）。外部から受信する書き込みの指示は、例えば、ページを指定する信号、データ、アドレス信号、書き込み実行コマンドを含む。次に、シーケンサ１２は、全体制御部２２の指示に基づいて、セルユニットにデータを書き込む。
【００４６】
次に、全体制御部２２は、読み出し信号をステップＳ２で選択したメモリ装置１００へ送信する。全体制御部２２は、ステップＳ２で選択したメモリ装置１００に対する通常データ読み出し処理を実施する（ステップＳ３）。シーケンサ１２は、読み出し対象ページのデータを読み出す。
【００４７】
全体制御部２２は、Ｓ３のデータ読み出し時に得られた２進数データの１（または０）のビット数（ビットカウント値）をカウンタ１６１にカウントさせる（ステップＳ４）。カウンタ１６１は、ビットカウント値をシーケンサ１２に転送する。シーケンサ１２は、全体制御部２２にビットカウント値を送る。
【００４８】
全体制御部２２は、Ｓ３のデータ読み出し時に得られた２進数データについて、誤り訂正演算をＥＣＣ回路２５に行わせる（ステップＳ５）。読み出しデータのエラーが誤り訂正能力以内である場合（ステップＳ５  ＮＯ）、ＥＣＣ回路２５は、読み出しデータから正しいデータを復元できたこと（ＥＣＣ復号成功）を全体制御部２２に通知する（ステップＳ６）。全体制御部２２は、ＥＣＣ回路２５からＥＣＣ復号成功を通知されると、一連の処理を終了する（終了）。読み出しデータのエラーが誤り訂正能力を超える場合（ステップＳ５  ＹＥＳ）、ＥＣＣ回路２５は、読み出しデータから正しいデータを復元できなかったこと（ＥＣＣ復号エラー）を全体制御部２２に通知する（ステップＳ７）。
【００４９】
全体制御部２２は、ＥＣＣ回路２５からＥＣＣ復号エラーを通知されると、Ｓ４でカウントされたビットカウント値と基準値（第１基準値）との差が所定範囲内かどうかを判断する（ステップＳ８）。
【００５０】
ビットカウント値と第１基準値との差が所定範囲内であると判断した場合には（ステップＳ８  ＹＥＳ）、全体制御部２２は、Ｓ３のデータ読み出し時とは異なる読み出し電圧でデータ読み出し（リトライリード）を行う（ステップＳ９）。ビットカウント値と第１基準値との差が所定範囲内でないと判断した場合には（ステップＳ８  ＮＯ）、全体制御部２２は、一連の処理を終了する（終了）。
【００５１】
全体制御部２２は、Ｓ９のリトライリード時に得られた２進数データについて、誤り訂正演算をＥＣＣ回路２５に行わせる（ステップＳ１０）。読み出しデータのエラーが誤り訂正能力以内である場合（ステップＳ１０  ＮＯ）、ＥＣＣ回路２５は、読み出しデータから正しいデータを復元できたこと（ＥＣＣ復号成功）を全体制御部２２に通知する（ステップＳ１１）。全体制御部２２は、ＥＣＣ回路２５からＥＣＣ復号成功を通知されると、一連の処理を終了する（終了）。読み出しデータのエラーが誤り訂正能力を超える場合（ステップＳ１０  ＹＥＳ）、ＥＣＣ回路２５は、読み出しデータから正しいデータを復元できなかったこと（ＥＣＣ復号エラー）を全体制御部２２に通知する（ステップＳ１２）。全体制御部２２は、ＥＣＣ回路２５からＥＣＣ復号エラーを通知されると、一連の処理を終了する（終了）。
【００５２】
図５は、本発明の第１実施形態にかかるＳＬＣである複数のセルトランジスタＭＴに対する書き込みの進み具合とビットカウント（割合）との関係を示す図である。横軸は、所定数のセルトランジスタＭＴに対する書き込み開始から書き込み完了までの時間を示す。縦軸は、上述した所定数の複数のセルトランジスタＭＴについて、データ読み出し時に得られる２進数データの１の割合（ビットカウント（割合））である。所定数とは例えば１ページ分のことである。
【００５３】
書き込み開始時点では、すべてのデータは１である。上述した通り、セルトランジスタＭＴに書き込むデータにはランダマイズを行うので、書き込み完了時には、ビットカウントが５０％となる。
【００５４】
図６は、本発明の第１実施形態にかかるＳＬＣである複数のセルトランジスタＭＴに対する（ａ）書き込み２５％完了時、（ｂ）５０％完了時、（ｃ）１００％完了時それぞれにおける閾値電圧の分布の一例である。図６を参照しながら、ビットカウント（割合）が図５に示すように変化する過程を説明する。
【００５５】
図６（ａ）に示すように、書き込み２５％完了時、ランダマイズにより、全体の半数のセルトランジスタＭＴに対してデータ書き込みがそれぞれ２５％進行すると考えられる。しかしながら、２５％程度では閾値電圧が読出し電圧を超えるほどのことはなく、書き込まれたデータの１の割合は、１００％となると考えられる。次に、図６（ｂ）に示すように、書き込み５０％完了時、全体の半数のセルトランジスタＭＴに対してデータ書き込みがそれぞれ５０％進行すると考えられる。しかしながら、５０％でも閾値電圧が読出し電圧を超えるほどのことはなく、書き込まれたデータの１の割合は、１００％となると考えられる。次に、図６（ｃ）に示すように、書き込み１００％完了時、全体の半数のセルトランジスタＭＴに対してデータ書き込みがそれぞれ１００％進行すると考えられる。１００％まで進行すれば閾値電圧が読出し電圧を超えて、書き込まれたデータの１の割合は、５０％となると考えられる。
【００５６】
図６において、全体制御部２２は、１の割合が基準値、例えば６０％を下回ったときにアサインされている、即ち、データを読み出しできると判定する。アサインされているとは、データの読み出し（リトライリードを含む）が可能な状態であり、書き込みが完全に完了していない場合、例えば書き込み９９％完了も含む。
【００５７】
次に、ＴＬＣの場合で複数のページにデータ書き込みがなされた場合について説明する。図７は、本発明の第１実施形態にかかるＴＬＣである複数のセルトランジスタＭＴに対する書き込みの進み具合とビットカウント値との関係を示す図である。横軸は、所定数のセルトランジスタＭＴに対する書き込み開始から書き込み完了までの時間を示している。縦軸は、所定数の複数のセルトランジスタＭＴについて、データ読み出し時に得られる２進数データの１の割合（ビットカウント（割合））である。所定数とは例えば１ページ分のことである。縦軸は、アッパーページ、ミドルページ、ロウワーページの書き込み開始から書き込み完了時までのビットカウント値の変化を示す。図７において、ビットカウントが５０％から大きく外れている場合には全体制御部２２がデータを読み出しできないと判断する。
【００５８】
図８は、本発明の第１実施形態にかかるＴＬＣセルトランジスタの（ａ）ロウワーページ、（ｂ）ミドルページ、（ｃ）アッパーページの各ページについて書き込まれたデータの一例を示す図である。
【００５９】
図８（ａ）に示すロウワーページでは、ＴＬＣの８つのレベルを閾値電圧の低い順から１００００１１１と定義し、読み出し電圧Ｔｈ３以下および読み出し電圧Ｔｈ４以上を１、読み出し電圧Ｔｈ３以上かつ読み出し電圧Ｔｈ４以下が０となるように読み出し電圧Ｔｈ３およびＴｈ４を設定する。図８（ｂ）に示すミドルページでは、ＴＬＣの８つのレベルを閾値電圧の低い順から１１００１１００と定義し、読み出し電圧Ｔｈ５以下および読み出し電圧Ｔｈ６以上読み出し電圧Ｔｈ７以下を１、読み出し電圧Ｔｈ５以上読み出し電圧Ｔｈ６以下および読み出し電圧Ｔｈ７を０となるように読み出し電圧Ｔｈ５、電圧Ｔｈ６およびＴｈ７を設定する。
【００６０】
図８（ｃ）に示すアッパーページでは、ＴＬＣの８つのレベルを閾値電圧の低い順から１１１００００１と定義し、読み出し電圧Ｔｈ８以下および読み出し電圧Ｔｈ９以上を１、読み出し電圧Ｔｈ８以上および読み出し電圧Ｔｈ９以下を０となるように読み出し電圧Ｔｈ８およびＴｈ９を設定する。メモリコントローラ２００は、７つの読み出し電圧Ｔｈ３〜Ｔｈ９を用いてデータを読み出す。なお、ＴＬＣの読み出し電圧の設定方法は、３ビットの区別が可能であれば、上記の方法以外の方法でもよい。
【００６１】
１の分布状態は、浮遊ゲート電極に電子がない状態である。０の分布は、浮遊ゲート電極に電子がある状態である。書き込み開始時点では、全てのデータは１であり、１の分布は、１００％である。０の分布は、０％である。上述した通り、セルトランジスタＭＴに書き込むデータにはランダマイズを行うので、書き込み完了時には、ビットカウントが５０％となる。消去状態では、アッパーページ、ミドルページ、ロウワーページの各ページについて、１の割合は、１００％である。
【００６２】
なお、図７において、ビットカウントが５０％近辺でも書き込み完了していない時間帯の点線に示す領域ＥＡ１，ＥＡ２，ＥＡ３，ＥＡ４では、書き込み状態を誤判定されるため、誤判定の対策が必要になる。誤判定対策に対しては、第２実施形態、第３実施形態のメモリシステムで説明する。
【００６３】
このように第１実施形態のメモリシステムによれば、データを読み出した時にデータに含まれる１又は０のビット数（ビットカウント値）をカウントする。読み出したデータに復号エラーが発生した場合には、ビットカウント値と第１基準値とに基づき正常な書き込みがされたか否かを判定する。正常な書き込みがされたと判定された場合、リトライリードを実行する。
【００６４】
即ち、読み出し時に得られるデータの０と１のビット数の割合に基づきデータの書き込み状態を判定し、正常な書き込みデータに対してのみリトライリードを行う。
【００６５】
これにより、不完全な書き込みデータに対してリトライリードを実施することがなくなる。また、正常な書き込みデータに対してもアサインドチェックによる余分なリードを回避することができる。
【００６６】
（第２実施形態）
第２実施形態のメモリシステムは、第１実施形態のメモリシステムにおける書き込み状態を誤判定したときの誤判定の対策として、第１実施形態のメモリシステムの書き込みデータ判定処理に、さらに、アサインドチェック判定を追加したことを特徴とする。図９は、本発明の第２実施形態にかかるメモリシステムの書き込みデータ判定処理を示すフローチャートである。なお、図１３に示すフローチャートの各処理は、全体制御部２２がＲＯＭ２６に格納された書き込みデータ判定処理プログラムを実行することで実行される。
【００６７】
次に、図９のフローチャートを参照しながら、第２実施形態のメモリシステムのリトライリード処理を説明する。まず、ステップＳ１からＳ１２までの処理は、図４のフローチャートの処理と同じであるので、ここでは、それらの説明は、省略する。
【００６８】
ビットカウント値と第１基準値との差が所定範囲内であると判断した場合（ステップＳ８  ＹＥＳ）、全体制御部２２は、ビットカウント（割合）が５０％付近で且つ複数のページにデータの書き込みが完了していない時間帯かどうかを判断する（ステップＳ１３）。ビットカウント値と第１基準値との差が所定範囲内でないと判断した場合には（ステップＳ８  ＮＯ）、全体制御部２２は、一連の処理を終了する（終了）。
【００６９】
全体制御部２２は、ステップＳ１３において、複数のページにデータの書き込みが完了していない時間帯でないと判断した場合には（ステップＳ１３のＮＯ）、リトライリードを行う（ステップＳ９）。複数のページにデータの書き込みが完了していない時間帯であると判断した場合には（ステップＳ１３のＹＥＳ）、リードを行う（ステップＳ１４）。
【００７０】
全体制御部２２は、ステップＳ１４で読み出したデータについて、０のビット数が第２基準値を超えたかどうかを判断する（ステップＳ１５）。０のビット数が第２基準値を超えたと判断した場合には（ステップＳ１５のＹＥＳ）、ステップＳ９に進み、全体制御部２２は、データのリトライリードを実行する（ステップＳ９）。
【００７１】
０のビット数が第２基準値に満たないと判断した場合には（ステップＳ１５のＮＯ）、全体制御部２２は、図９の一連の処理を終了する（終了）。
【００７２】
このように、第２実施形態のメモリシステムによれば、書き込み完了していない書き込みデータの誤判定を防止することができる。また、不完全な書き込みデータに対してリトライリードを実施することがなくなる。
【００７３】
（第３実施形態）
第３実施形態のメモリシステムは、第１実施形態のメモリシステムにおける書き込み状態を誤判定したときの対策として、第１実施形態のメモリシステムの書き込みデータ判定処理に、さらに、複数ページの組み合わせによる判定処理を追加したことを特徴とする。
【００７４】
第３実施形態のメモリシステムでは、全体制御部２２は、アッパーページとロウワーページの書き込み開始から書き込み完了時までのビットカウント値に基づいてデータが不完全に書き込みされたデータであるか否かを判定する。
【００７５】
図１０は、本発明の第３実施形態にかかるメモリシステムにおけるビットカウントの変化を示す図である。
【００７６】
図１０を参照して全体制御部２２の動作を説明する。図１４に示すように、書き込み開始直後では、アッパーページのビットカウントは、約１００％、ロウワーページのビットカウントは、約５０％である（領域ＥＡ１１）。
【００７７】
アッパーページのビットカウントとロウワーページのビットカウントとの差は５０％である。全体制御部２２は、ビットカウントの差が例えば２０％を超えた場合には、データが不完全に書き込みされたデータであると判定する。
【００７８】
次に、書き込み途中では、アッパーページのビットカウントは約５０％、ロウワーページのビットカウントは 約２０％である（領域ＥＡ１２）。
【００７９】
アッパーページのビットカウントとロウワーページのビットカウントとの差は３０％である。全体制御部２２は、ビットカウントの差が例えば２０％を超えた場合には、データが不完全に書き込みされたデータであると判定する。
【００８０】
次に、書き込み完了時では、アッパーページのビットカウントもロウワーページのビットカウントも、ともに５０％である（領域ＥＡ１３）。アッパーページのビットカウントとロウワーページのビットカウントとの差は０％である。全体制御部２２は、ビットカウントの差が例えば２０％を超えないので、データが完全に書き込みされたデータであると判定する。
【００８１】
このように、第３実施形態のメモリシステムによれば、アッパーページとロウワーページの書き込み開始から書き込み完了時までのビットカウント値に基づいてデータが不完全に書き込みされたデータであるか否かを判定する。
【００８２】
これにより、書き込み完了していない書き込みデータの誤判定を防止することができる。また、不完全な書き込みデータに対してリトライリードを実施することがなくなり、処理量を削減することができる。また、正常な書き込みデータに対してもアサインドチェックによる余分なリードを回避することができ、処理量を削減することができる。
【００８３】
以上説明した少なくともひとつの実施形態のメモリシステムによれば、データを読み出した時にデータに含まれる１又は０のビット数をカウントしてビットカウント値を出力する。読み出したデータにエラー訂正符号復号エラーが発生した場合には、ビットカウント値と第１基準値とに基づきデータが正常な書き込みされたデータか否かを判定する。データが正常な書き込みされたデータであると判定された場合に正常な書き込みされたデータのリトライリードを実行する。
【００８４】
これにより、不完全な書き込みデータに対してリトライリードを実施することがなくなり、処理量を削減することができる。また、正常な書き込みデータに対してもアサインドチェックによる余分なリードを回避することができ、処理量を削減することができる。
【００８５】
なお、第１乃至第３の実施形態のメモリシステムは、複数のページにＴＬＣ書き込みが行われた場合を説明したが、これに限定されることなく、複数のページにＭＬＣ書き込みが行われた場合にも、第１乃至第３の実施形態のメモリシステムは適用可能である。
【００８６】
また、第１乃至第３の実施形態のメモリシステムは、１のビット数をカウントしたが、０のビット数をカウントし、０のビットカウント値を基準値と比較してデータが正常な書き込みされたデータかどうかを判定しても良い。
【００８７】
以上のように、いくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００８８】
１…メモリシステム
１１…メモリセルアレイ
１２…シーケンサ
１３…電位生成回路
１４…ドライバ
１５…ロウデコーダ
１６…センスアンプ
２１…ホストインターフェイス
２２…全体制御部
２３…ＲＡＭ
２４…メモリインターフェイス
２５…ＥＣＣ回路
２６…ＲＯＭ
１００…メモリ装置
２００…メモリコントローラ
１６１…カウンタ
ＤＴ０〜ＤＴ３，ＳＴ…選択ゲートトランジスタ
ＳＵ０〜ＳＵ３…ストリングユニット
ＭＴ０〜ＭＴ７…セルトランジスタ
ＰＧ…ページ
ＢＬ０〜ＢＬｍ−１…ビット線
ＷＬ０〜ＷＬ７…ワード線
ＢＬＫ０，ＢＬＫ１…ブロック
ＣＭＤ…コマンド
ＤＡＴＡ…書き込みデータ及び読み出しデータ
ＡＤＤ…アドレス信号
ＤＱ…入出力信号
ＳＧＳＬ，ＳＧＤＬ０…信号線
Ｔｈ１〜Ｔｈ１７…読み出し電圧
ＥＡ１，ＥＡ２，ＥＡ３，ＥＡ４，ＥＡ１１，ＥＡ１２，ＥＡ１３…領域
【図１】
2020155180.tif 000003
【図２】
2020155180.tif 000004
【図３】
2020155180.tif 000005
【図４】
2020155180.tif 000006
【図５】
2020155180.tif 000007
【図６】
2020155180.tif 000008
【図７】
2020155180.tif 000009
【図８】
2020155180.tif 000010
【図９】
2020155180.tif 000011
【図１０】
2020155180.tif 000012