(57)【要約】【課題】本発明が解決しようとする課題は、性能を向上させたメモリシステムおよび不揮発性メモリの制御方法を提供することである。【解決手段】実施形態の制御方法は、ワード線と前記ワード線に接続される複数のメモリセルとを複数備えデータ消去単位であるブロックを複数有する不揮発性メモリの制御方法であって、複数のメモリセルに対する読み出し電圧の探索を前記不揮発性メモリに要求し、探索の要求に対して不揮発性メモリから受信した応答が読み出し電圧を探索できなかったことを示す情報である場合、不揮発性メモリに読み出しを指示することにより読み出し電圧を探索し、探索された読み出し電圧と第１の読み出し電圧との差分である第１の差分を算出し、第１の差分が所定の第１の値以上の場合、ワード線に接続される複数のメモリセルが含まれるブロックに保存されるデータを別のブロックに保存する。【選択図】図１
2020102295.tif 000002
【特許請求の範囲】
【請求項１】
ワード線と前記ワード線に接続される複数のメモリセルとを複数備えデータ消去単位であるブロックを複数有する不揮発性メモリの制御方法であって、
前記複数のメモリセルに対する読み出し電圧の探索を前記不揮発性メモリに要求し、
前記探索の要求に対して前記不揮発性メモリから受信した応答が読み出し電圧を探索できなかったことを示す情報である場合、
前記不揮発性メモリに読み出しを指示することにより読み出し電圧を探索し、
前記探索された読み出し電圧と第１の読み出し電圧との差分である第１の差分を算出し、
前記第１の差分が所定の第１の値以上の場合、
前記ワード線に接続される複数のメモリセルが含まれるブロックに保存されるデータを別のブロックに保存する、
制御方法。
【請求項２】
前記探索の要求に対して前記不揮発性メモリから応答を受信した場合、前記応答に基づいて、前記不揮発性メモリのワード線に接続される複数のメモリセルが含まれるブロックに保存されるデータを別のブロックに保存するかを判定する請求項１に記載の制御方法。
【請求項３】
所定時間内に、前記複数のブロックの各々に含まれる前記複数のワード線に対して前記判定を行う請求項２に記載の制御方法。
【請求項４】
前記応答に含まれる読み出し電圧と前記第１の読み出し電圧との差分である第２の差分を算出し、前記第２の差分が所定の第２の値以上の場合、前記不揮発性メモリのワード線に接続される複数のメモリセルが含まれるブロックに保存されるデータを別のブロックに保存する請求項２または請求項３に記載の制御方法。
【請求項５】
前記第１の読み出し電圧は前記不揮発性メモリに保存され、前記第１の差分を算出する際、前記第１の読み出し電圧を取得し保持する請求項１乃至請求項４のいずれか１項に記載の制御方法。
【請求項６】
前記応答が読み出し電圧を探索できなかったことを示す情報である場合であって、第２の読み出し電圧を使用して前記ワード線に接続された複数のメモリセルからデータを読み出し、前記読み出したデータを復号できなかった場合に、前記不揮発性メモリに前記読み出しを指示する請求項１に記載の制御方法。
【請求項７】
前記不揮発性メモリのワード線に接続される複数のメモリセルの消耗度を算出し、前記算出した消耗度が所定の消耗度以上の場合、前記不揮発性メモリへ前記探索を要求しない請求項１乃至請求項６のいずれか１項に記載の制御方法。
【請求項８】
前記算出した消耗度が前記所定の消耗度未満の場合、前記不揮発性メモリに読み出し電圧の探索を指示し、前記探索された読み出し電圧と前記第１の読み出し電圧との差分である第３の差分を算出し、前記第３の差分が所定の第３の値以上の場合、前記ワード線が含まれるブロックに保存されるデータを別のブロックに保存する請求項７に記載の制御方法。
【請求項９】
ホスト装置から読み出し命令を受信した場合に、前記読み出し命令に対応するデータを前記不揮発性メモリから読み出し、前記読み出したデータである第１のデータを復号し、前記第１のデータの復号に成功した場合は、前記復号された第１データを前記ホスト装置へ送信し、
前記第１のデータの復号に失敗した場合は、前記不揮発性メモリに前記探索を要求し、前記不揮発性メモリからの前記応答に含まれる読み出し電圧を使用して前記読み出し命令に対応するデータを前記不揮発性メモリから読み出し、前記応答に含まれる読み出し電圧を使用して読み出したデータである第２のデータを復号し、前記第２のデータの復号に成功した場合は、前記復号された第２のデータを前記ホスト装置へ送信する請求項１に記載の制御方法。
【請求項１０】
前記読み出し命令に対応するデータを前記不揮発性メモリから読み出すための読み出し電圧を、前記応答に含まれる読み出し電圧で更新する請求項９に記載の制御方法。
【請求項１１】
前記応答が読み出し電圧を探索できなかったことを示す情報である場合、前記不揮発性メモリに読み出しを指示することにより読み出し電圧を探索し、前記探索された読み出し電圧を使用して前記読み出し命令に対応するデータを前記不揮発性メモリから読み出し、前記探索された読み出し電圧を使用して読み出されたデータである第３のデータを復号し、前記第３のデータの復号に成功した場合は、前記復号された第３データを前記ホスト装置へ送信する請求項９または請求項１０に記載の制御方法。
【請求項１２】
ワード線と前記ワード線に接続される複数のメモリセルとを複数備え、データ消去単位であるブロックを複数有する不揮発性メモリと、
前記不揮発性メモリを制御可能なコントローラと、
を備え、
前記コントローラは、前記複数のメモリセルに対する読み出し電圧を前記不揮発性メモリに探索させるためのコマンドを前記不揮発性メモリに対して送信し、前記送信したコマンドに対して前記不揮発性メモリから受信した応答が読み出し電圧を探索できたことを示す情報である場合、
前記応答に含まれる読み出し電圧と前記第１の読み出し電圧との差分である第２の差分を算出し、
前記第２の差分が所定の第２の値以上の場合、
前記応答に含まれる読み出し電圧を用いて前記複数のメモリセルからデータを読み出し、
前記データのうち、誤っているデータの数である第４の値が、所定の第５の値以上の場合、
前記ワード線に接続される複数のメモリセルが含まれるブロックに保存されるデータを別のブロックに保存する、
メモリシステム。
【請求項１３】
ワード線と前記ワード線に接続される複数のメモリセルとを複数備え、データ消去単位であるブロックを複数有する不揮発性メモリと、
前記不揮発性メモリを制御可能なコントローラと、
を備え、
前記コントローラは、前記複数のメモリセルに対する読み出し電圧を前記不揮発性メモリに探索させるためのコマンドを前記不揮発性メモリに対して送信し、前記送信したコマンドに対して前記不揮発性メモリから受信した応答が読み出し電圧を探索できたことを示す情報である場合、
前記応答に含まれる読み出し電圧と前記第１の読み出し電圧との差分である第２の差分を算出し、
前記第２の差分が所定の第２の値以上の場合、
前記応答に含まれる読み出し電圧を用いて前記複数のメモリセルからデータを読み出し、
前記データのうち、誤っているデータの数である第４の値が、所定の第５の値以上の場合、
前記ワード線に接続される複数のメモリセルが含まれるブロックに保存されるデータを別のブロックに保存し、
前記コマンドで、第１の電圧と第２の電圧を指定し、
最小電圧値を前記第１の電圧とし、少なくとも読み出し電圧を前記第２の値分変化させて前記電圧の探索をさせる、
メモリシステム。
【請求項１４】
前記応答に基づいて、前記複数のメモリセルが含まれるブロックに保存されるデータを別のブロックに保存するかを判定する、請求項１３に記載のメモリシステム。
【請求項１５】
前記コントローラは、所定時間内に、前記複数のブロックの各々に含まれる前記複数のワード線に対して前記判定を行う、請求項１４に記載のメモリシステム。
【請求項１６】
前記応答が読み出し電圧を探索できなかったことを示す情報である場合、
前記コントローラは、前記応答に含まれる読み出し電圧と前記予め設定された読み出し電圧との差分である第２の差分を算出し、
前記第２の差分が所定の第２の値以上の場合、前記複数のメモリセルが含まれるブロックに保存されるデータを別のブロックに保存する、
請求項１４または請求項１５に記載のメモリシステム。
【請求項１７】
前記予め設定された読み出し電圧は前記不揮発性メモリに保存され、
前記コントローラは前記予め設定された読み出し電圧を取得し保持する、
請求項１３乃至請求項１６のいずれか１項に記載のメモリシステム。
【請求項１８】
前記コントローラは、前記応答が読み出し電圧を探索できなかったことを示す情報である場合であって、
前記コントローラが保持する読み出し電圧を使用して前記複数のメモリセルからデータを読み出し、
前記読み出したデータを復号できなかった場合に、前記不揮発性メモリに読み出し要求を送信することにより読み出し電圧を探索する、
請求項１３に記載のメモリシステム。
【請求項１９】
前記コントローラは前記複数のメモリセルの消耗度を算出し、
前記算出した消耗度が所定の消耗度以上の場合、前記不揮発性メモリへ前記コマンドを送信しない、
請求項１３乃至請求項１８のいずれか１項に記載のメモリシステム。
【請求項２０】
前記コントローラはブロックの管理情報を保持し、前記管理情報から前記消耗度を算出する、請求項１９に記載のメモリシステム。
【請求項２１】
前記管理情報はブロックの消去回数を含む、請求項２０に記載のメモリシステム。
【請求項２２】
前記コントローラは、前記算出した消耗度が前記所定の消耗度未満の場合、前記不揮発性メモリに読み出し要求を送信することにより読み出し電圧を探索し、
前記探索された読み出し電圧と前記予め設定された読み出し電圧との差分である第３の差分を算出し、
前記第３の差分が所定の第３の値以上の場合、前記ワード線が含まれるブロックに保存されるデータを別のブロックに保存する、
請求項１９に記載のメモリシステム。
【請求項２３】
前記メモリシステムは、ホスト装置に接続可能であって、
前記コントローラは、前記ホスト装置から読み出し要求を受信した場合に、前記読み出し要求に対応するデータを前記不揮発性メモリから読み出し、
前記読み出したデータである第１のデータを復号し、
前記第１のデータの復号に成功した場合は、前記復号された第１データを前記ホスト装置へ送信し、
前記第１のデータの復号に失敗した場合は、前記コマンドを送信し、
前記応答に含まれる読み出し電圧を使用して前記読み出し要求に対応するデータを前記不揮発性メモリから読み出し、
前記応答に含まれる読み出し電圧を使用して読み出したデータである第２のデータを復号し、
前記第２のデータの復号に成功した場合は、前記復号された第２のデータを前記ホスト装置へ送信する、
請求項１３に記載のメモリシステム。
【請求項２４】
前記コントローラは、前記読み出し要求に対応するデータを前記不揮発性メモリから読み出すための読み出し電圧を保持し、
前記保持されている読み出し電圧を前記応答に含まれる読み出し電圧で更新する、
請求項２３に記載のメモリシステム。
【請求項２５】
前記コントローラは、前記応答が読み出し電圧を探索できなかったことを示す情報である場合、
前記不揮発性メモリに読み出し要求を送信することにより読み出し電圧を探索し、
前記探索された読み出し電圧を使用して前記読み出し要求に対応するデータを前記不揮発性メモリから読み出し、
前記探索された読み出し電圧を使用して読み出されたデータである第３のデータを復号し、
前記第３のデータの復号に成功した場合は、前記復号された第３データを前記ホスト装置へ送信する、
請求項２３または請求項２４に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、メモリシステムおよび不揮発性メモリの制御方法に関する。
【背景技術】
【０００２】
ＮＡＮＤ型フラッシュメモリのような不揮発性メモリと、メモリコントローラと、を備えるメモリシステムおよび不揮発性メモリの制御方法が提供されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２０１２−５１３０７２号公報
【特許文献２】特開２０１３−１２２８０４号公報
【特許文献３】米国特許第８８４８４５３号明細書
【特許文献４】特表２０１１−５２７０６７号公報
【特許文献５】特表２０１０−５３３９２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が解決しようとする課題は、性能を向上させたメモリシステムおよび不揮発性メモリの制御方法を提供することである。
【課題を解決するための手段】
【０００５】
上記課題を達成するために、実施形態の制御方法は、ワード線と前記ワード線に接続される複数のメモリセルとを複数備えデータ消去単位であるブロックを複数有する不揮発性メモリの制御方法であって、複数のメモリセルに対する読み出し電圧の探索を前記不揮発性メモリに要求し、探索の要求に対して不揮発性メモリから受信した応答が読み出し電圧を探索できなかったことを示す情報である場合、不揮発性メモリに読み出しを指示することにより読み出し電圧を探索し、探索された読み出し電圧と第１の読み出し電圧との差分である第１の差分を算出し、第１の差分が所定の第１の値以上の場合、ワード線に接続される複数のメモリセルが含まれるブロックに保存されるデータを別のブロックに保存する。
【図面の簡単な説明】
【０００６】
【図１】第１の実施形態に係るメモリシステムの構成例を示すブロック図。
【図２】第１の実施形態に係るメモリシステムが組み込まれたシステムを例示した図。
【図３】第１の実施形態に係るメモリシステムが組み込まれたポータブルコンピュータを例示した図。
【図４】第１実施形態に係るメモリシステムの外観の一例を示す図。
【図５】第１の実施形態に係るメモリシステムのメモリチップのブロック図。
【図６】第１の実施形態に係るメモリシステムのメモリセルアレイの回路図。
【図７】第１の実施形態に係るメモリシステムのメモリセルアレイの断面図。
【図８】第１の実施形態に係るメモリシステムの不揮発性メモリに保持されるデータとセルトランジスタの閾値電圧との関係を示す図。
【図９】第１の実施形態に係るメモリシステムの不揮発性メモリが備えるメモリセルにおける閾値電圧のシフトを示す図。
【図１０】読み出されたデータが“１”であるメモリセルの個数の差分データを示す図。
【図１１】第１の実施形態に係るメモリシステムの第１パラメータ情報の内容の一例を示す図。
【図１２】第１の実施形態に係るメモリシステムの第２パラメータ情報の内容の一例を示す図。
【図１３】第１の実施形態に係るメモリシステムのパトロール処理のフローチャート。
【図１４】第１の実施形態に係るメモリシステムのメモリコントローラからメモリチップへ送信されるコマンドシーケンス例。
【図１５】第１の実施形態に係るメモリシステムのパトロール処理の第１の変形例のフローチャート。
【図１６】第１の実施形態に係るメモリシステムのパトロール処理の第２の変形例のフローチャート。
【図１７】第２の実施形態に係るメモリシステムのホスト装置２からの読み出し要求に対するデータ読み出し処理のフローチャート。
【図１８】第３の実施形態に係るメモリシステムのパトロール処理のフローチャート。
【発明を実施するための形態】
【０００７】
以下、発明を実施するための実施形態について図面を参照して説明する。
【０００８】
（第１の実施形態）
図１は、第１の実施形態に係るメモリシステムの構成例を示すブロック図である。メモリシステム１は、ホスト装置２と通信線で接続され、ホスト装置２の外部記憶装置として機能する。ホスト装置２は、例えば、パーソナルコンピュータなどの情報処理装置、携帯電話、撮像装置であってもよいし、タブレットコンピュータやスマートフォンなどの携帯端末であってもよいし、ゲーム機器であってもよいし、カーナビゲーションシステムなどの車載端末であってもよい。
【０００９】
不揮発性メモリ１００は、データを不揮発に記憶するメモリである。不揮発性メモリ１００は、例えば、複数個のメモリチップであるメモリチップ＃１  １１０−１、・・・、メモリチップ＃Ｎ  １１０−Ｎを備える不揮発性半導体メモリである。なお、Ｎは任意の自然数である。
【００１０】
以下の説明において、複数のメモリチップ１１０−１、・・・、１１０−Ｎのうち１つを特定する必要がある場合は符号１１０−１、・・・、１１０−Ｎを使用するが、任意のメモリチップを指す場合や、あるメモリチップを他のメモリチップと区別しない場合は、符号１１０を使用する。
【００１１】
メモリチップ１１０の各々は、例えば互いに独立して動作可能であり、その一例としてはＮＡＮＤ型フラッシュメモリチップである。ＮＡＮＤ型フラッシュメモリでは、一般に、ページと呼ばれるデータ単位で、書き込みおよび読み出しが行われ、ブロックと呼ばれるデータ単位で消去が行われる。
【００１２】
なお、不揮発性メモリ１００としてＮＡＮＤ型フラッシュメモリを用いる例を説明するが、不揮発性メモリ１００として３次元構造フラッシュメモリ、ＲｅＲＡＭ（Resistance Random Access Memory）、ＦｅＲＡＭ（Ferroelectric Random Access Memory）等のＮＡＮＤ型フラッシュメモリ以外の記憶手段を用いてもよい。また、ここでは、記憶手段として半導体メモリを用いる例を説明するが、半導体メモリ以外の記憶手段を用いてもよい。
【００１３】
メモリシステム１は、メモリコントローラ２００と不揮発性メモリ１００が１つのパッケージとして構成されるメモリカードであってもよいし、ＳＳＤ（Solid State Drive）であってもよい。
【００１４】
メモリコントローラ２００は、ホスト装置２からの書き込み要求に従って不揮発性メモリ１００への書き込みを制御する。本実施形態において、要求とは、例えば、命令、コマンドである。また、ホスト装置２からの読み出し要求に従って不揮発性メモリ１００からの読み出しを制御する。メモリコントローラはコントローラとも称される。
【００１５】
メモリコントローラ２００は、ホストインターフェース（ホストＩ／Ｆ）２１０、制御部２２０、データバッファ２３０、符号化部／復号部（Encoder/Decoder）２４０およびメモリインタフェース（メモリＩ／Ｆ）２５０を備える。ホストＩ／Ｆ２１０、制御部２２０、データバッファ２３０、符号化部／復号部２４０およびメモリＩ／Ｆ２５０は、内部バス２６０で接続されている。
【００１６】
ホストＩ／Ｆ２１０は、ホスト装置２との間のインターフェース規格に従った処理を実施し、ホスト装置２から受信した要求、ユーザデータなどを内部バス２６０に出力する。また、ホストＩ／Ｆ２１０は、不揮発性メモリ１００から読み出されたユーザデータ、制御部２２０からの応答などをホスト装置２へ送信する。なお、本実施の形態では、ホスト装置２からの書き込み要求で不揮発性メモリ１００へ書き込まれたデータをユーザデータと呼ぶ。
【００１７】
制御部２２０は、メモリシステム１の各構成要素を統括的に制御する。制御部２２０は、ハードウェアにより実現されてもよいし、ＣＰＵ（Central Processing Unit）等のプロセッサがファームウェアを実行することにより実現されてもよい。後者の場合、例えば、プロセッサが、メモリシステム１が電源供給を受けたときに、図示しないＲＯＭに格納されているファームウェア（制御プログラム）をバッファ２３０または制御部２２０内の図示しないＲＡＭ上に読み出して所定の処理を実行することにより、制御部２２０の処理が実現される。ここで、プロセッサは、コアまたはプロセッサコアとも称される。
【００１８】
制御部２２０は、ホスト装置２からホストＩ／Ｆ２１０経由で要求を受けた場合に、その命令に従った制御を行う。例えば、制御部２２０は、ホスト装置２からの要求に従って、不揮発性メモリ１００へのユーザデータおよびパリティの書き込みをメモリＩ／Ｆ２５０へ指示する。また、制御部２２０は、ホスト装置２からの要求に従って、不揮発性メモリ１００に対する命令をメモリＩ／Ｆ２５０へ指示する。
【００１９】
また、制御部２２０は、ホスト装置２から書き込み要求を受信した場合、書き込み要求で指定されたユーザデータをデータバッファ２３０に保存し、このユーザデータに対する不揮発性メモリ１００上の格納領域（メモリ領域）を決定する。すなわち、制御部２２０は、ユーザデータの書込み先を決定し、管理する。ホスト装置２から受信したユーザデータの論理アドレスと当該ユーザデータが格納される不揮発性メモリ１００上の格納領域を示す物理アドレスとの対応はアドレス変換テーブルとして格納される。
【００２０】
また、制御部２２０は、ホスト装置２から読み出し要求を受信した場合、読み出し要求により指定された論理アドレスを上述のアドレス変換テーブルを用いて物理アドレスに変換し、該物理アドレスからの読み出しをメモリＩ／Ｆ２５０へ指示する。
【００２１】
データバッファ２３０は、メモリコントローラ２００がホスト装置２から受信したユーザデータを、不揮発性メモリ１００へ記憶するまでの間、一時格納する。また、データバッファ２３０は、不揮発性メモリ１００から読み出したユーザデータをホスト装置２へ送信するまでに一時格納する。データバッファ２３０は、例えば、ＳＲＡＭ（Static  Random  Access  Memory）やＤＲＡＭ（Dynamic  Random  Access  Memory）などの汎用メモリで構成される。また、データバッファ２３０は、メモリコントローラ２００内部に搭載されてもよく、メモリコントローラ２００の外にメモリコントローラ２００とは独立して搭載されてもよい。
【００２２】
また、制御部２２０は、アドレス変換テーブルを含む管理情報２２０１をデータバッファ２３０に保存する。制御部２２０は、所定のタイミングでデータバッファ２３０の管理情報２２０１を不揮発性メモリ１００へ保存する。制御部２２０は、メモリシステム１の起動時に、不揮発性メモリ１００の管理情報２２０１をデータバッファ２３０へ保存し、管理情報２２０１を変更する場合はデータバッファ２３０の管理情報２２０１を更新する。
【００２３】
符号化部／復号部２４０は、符号化回路２４１と復号回路２４２とを備える。符号化部／復号部はＥＣＣ（Error Correcting Code）回路とも称される。符号化回路２４１は、データバッファ２３０に保持されたデータを符号化して、データと冗長部（パリティ）とを有する符号語を生成する。符号化回路２４１は、第１のデータ長のユーザデータを符号化（誤り訂正符号化）して第２のデータ長の符号語を生成する。符号化回路２４１が行う符号化では、例えば、ＢＣＨ（Bose-Chaudhuri-Hocquenghem）符号、ＲＳ（Reed-Solomon）符号、ＬＤＰＣ（Low Density Parity Check）符号等を用いることができる。なお、符号化回路２４１が用いる誤り訂正符号はこれらに限定されない。復号回路２４２は、不揮発性メモリ１００から読み出されたデータである符号語をメモリＩ／Ｆ２５０経由で取得し、取得した符号語を復号する。復号回路２４２は、復号時に誤り訂正に失敗した場合は、制御部２２０に誤り訂正失敗を通知する。
【００２４】
メモリＩ／Ｆ２５０は、不揮発性メモリ１１０を制御する。メモリＩ／Ｆ２５０は、制御部２２０等の制御に従って符号化回路２４１から出力された符号語を不揮発性メモリ１１０に書き込む。また、メモリＩ／Ｆ２５０は、制御部２２０等の制御に従って不揮発性メモリ１１０からデータを読み出し、バッファ２３０経由で復号回路２４２に転送する。更にメモリＩ／Ｆ２５０は、制御部２２０等の制御に従って、不揮発性メモリ１１０に保存されているデータを消去する。
【００２５】
メモリＩ／Ｆ２５０は、バスを介して各メモリチップ１１０と接続される。バスは、各メモリチップ１１０がＮＡＮＤ型フラッシュメモリである例に基づくと、ＮＡＮＤバスであり、以下の記述および図はＮＡＮＤバスの例に基づく。ＮＡＮＤバスは、信号ＣＥｎ、ＣＬＥ、ＡＬＥ、ＷＥｎ、ＲＥｎ、ＷＰｎ、ＲＹ／ＢＹｎ、ＤＱ、ＤＱＳ、およびＤＱＳｎを伝送する。本明細書において、信号の名称の末尾のｎは、末尾のｎの信号の反転論理を示し、信号がローレベルの場合にアサートされていることを意味する。
【００２６】
アサートされている信号ＣＥｎは、メモリチップ１１０をイネーブルにする。アサートされている信号ＣＬＥは、アサートされている信号ＣＬＥと並行してメモリチップ１１０へ流れる信号ＤＱがコマンドであることをメモリチップ１１０に通知する。アサートされている信号ＡＬＥは、アサートされている信号ＡＬＥと並行してメモリチップ１１０へ流れる信号ＤＱがアドレスであることをメモリチップ１１０に通知する。アサートされている信号ＷＥｎは、アサートされている信号ＷＥｎと並行してメモリチップ１１０へ流れる信号ＤＱをメモリチップ１１０に取り込むことを指示する。アサートされている信号ＲＥｎは、メモリチップ１１０に信号ＤＱを出力することを指示する。アサートされている信号ＷＰｎは、データ書き込みおよび消去の禁止をメモリチップ１１０に指示する。信号ＲＹ／ＢＹｎは、メモリチップ１１０がレディ状態であるか、ビジー状態であるかを示し、ローレベルによってビジー状態を示す。メモリチップ１１０は、レディ状態においてメモリコントローラ２００からの命令を受け付け、ビジー状態においてメモリコントローラ２００からの命令を受け付けない。
【００２７】
信号ＤＱ（ＤＱ０〜ＤＱ７）は、例えば８ビットの幅を有し、データの実体であり、コマンド（ＣＭＤ）、メモリチップ１１０への書き込みデータまたはメモリチップ１１０からの読み出しデータ（ＤＡＴ）、アドレス信号（ＡＤＤ）、ステータスデータ（ＳＴＡ）等を含む。メモリチップ１１０からの読み出しデータは、単に読み出しデータと称される場合がある。メモリコントローラ２００からメモリチップ１１０へ向かう信号ＤＱＳおよびＤＱＳｎは、信号ＤＱを出力するタイミングをメモリチップ１１０に指示する。一方、メモリチップ１１０からメモリコントローラ２００に向かう信号ＤＱＳおよびＤＱＳｎは、信号ＤＱを出力するタイミングをメモリコントローラ２００に通知する。
【００２８】
メモリシステム１は、メモリコントローラ２００の温度を測定するためのセンサで、メモリコントローラ２００の近傍に配置される温度センサ３００を備えてもよい。この場合、メモリコントローラ２００は、メモリコントローラ２００と温度センサ３００との間の通信インターフェースの機能を有する温度センサＩ／Ｆ２７０を備え、制御部２２０は、温度センサ３００で測定された温度情報を、温度センサＩ／Ｆ２７０を介して取得するようにしてもよい。
【００２９】
図２及び図３は、メモリシステム１とホスト装置２が組み込まれたシステム３の例を示す。システム３は、電子機器の一例である。
【００３０】
図２に示すように、メモリシステム１は、例えばサーバ等のシステム３内に記憶装置として組み込まれる。システム３は、メモリシステム１とメモリシステム１が装着されたホスト装置２とを含む。ホスト装置２は、例えば上方に開口した複数のコネクタ４を有する。コネクタ４は、例えば、スロットである。図２に示す例では、メモリシステム１は、基板４００を含み、基板４００に、不揮発性メモリ１００とメモリコントローラ２００が搭載される。複数のメモリシステム１は、ホスト装置２のコネクタ４に其々装着され、略鉛直方向に起立した姿勢で互いに並べて支持される。このような構成によれば、複数のメモリシステム１をコンパクトに纏めて実装可能であり、ホスト装置２の小型化を図ることができる。
【００３１】
また、メモリシステム１は、例えばノートブック型ポータブルコンピュータやタブレット端末、その他デタッチャブルノートＰＣ（personal computer）のような電子機器のストレージデバイスとして使用されるものでもよい。図３に示すように、メモリシステム１は、例えば、ホスト装置２に対応するポータブルコンピュータに実装される。ここでは、メモリシステム１を含むポータブルコンピュータ全体がシステム３となる。
【００３２】
ポータブルコンピュータは、本体３０１と、表示ユニット３０２と、を備える。表示ユニット３０２は、ディスプレイハウジング３０３と、このディスプレイハウジング３０３に収容された表示装置３０４と、を備える。
【００３３】
本体３０１は、筐体３０５と、キーボード３０６と、ポインティングデバイスであるタッチパッド３０７と、を備える。筐体３０５は、メイン回路基板、ＯＤＤ（Optical Disk Device）ユニット、カードスロット３０８など、を含む。
【００３４】
カードスロット３０８は、筐体３０５の側面に設けられる。ユーザは、筐体３０５の外部から追加デバイス３０９をカードスロット３０８に挿入することが可能である。
【００３５】
メモリシステム１は、ＨＤＤ（Hard disk drive）の置き換えとして、ポータブルコンピュータ内部に実装された状態で使用してもよいし、追加デバイス３０９として使用してもよい。
【００３６】
図４は、第１実施形態に係るメモリシステムの外観の一例を示す斜視図である。この例では、メモリシステム１は、基板４００を含む。基板４００には、メモリチップ１１０−１、１１０−２、１１０−３、１１０−４、１１０−５、１１０−６、１１０−７、１１０−８、ホストＩ／Ｆ２１０に含まれる接続部２１１、メモリコントローラ２００、バッファ２３０としてのＤＲＡＭ、および温度センサ３００が搭載されてよいが、これに限定されない。
【００３７】
なお、ホストＩ／Ｆ２１０は、接続部２１１（端子部）を有し、図４に示すメモリシステム１では、接続部２１１はメモリコントローラ２００の外にメモリコントローラ２００と独立して搭載される。接続部２１１は、例えば複数の接続端子（金属端子）を有する。接続部２１１は、例えば、ホスト装置２のコネクタ４に差し込まれ、コネクタ４に電気的に接続される。ホストＩ／Ｆ２１０は、接続部２１１を介してホスト装置２との間で信号をやり取りする。
【００３８】
また、図４に示すメモリシステム１では、メモリチップ１１０は、他のメモリチップ１１０、メモリコントローラ２００、バッファ２３０としてのＤＲＡＭ、または温度センサ３００と側面が任意の長さの間隙を介して向き合うように配置され、温度センサ３００は、メモリコントローラ２００、ＮＡＮＤメモリ１１０−１、・・・、１１０−８、バッファ２３０としてのＤＲＡＭに囲まれた位置に配置されているが、ＮＡＮＤメモリ１１０−１、１１０−２、１１０−３、１１０−４、１１０−５、１１０−６、１１０−７、１１０−８、ホストインターフェース２１０、メモリコントローラ２００、バッファ２３０としてのＤＲＡＭ、および温度センサ３００の配置は一例であり、これに限定されない。
【００３９】
次に、上記メモリチップ１１０の構成について説明する。図５は、本実施形態に係るメモリチップ１１０のブロック図である。前述の通り、メモリチップ１１０は例えばＮＡＮＤ型フラッシュメモリチップであり、本実施態様では、メモリセルが半導体基板上方に三次元に積層された三次元積層型ＮＡＮＤ型フラッシュメモリである。
【００４０】
図５に示されるように、メモリチップ１１０は、メモリセルアレイ１１１、入出力回路１１２、入出力制御回路１１３、シーケンサ（制御回路）１１４、電圧生成回路１１５、ドライバ１１６、センスアンプ１１７、カラムデコーダ１１８、データラッチ１１９、およびロウデコーダ１２０、等の要素を含む。
【００４１】
メモリセルアレイ１１１は複数のブロック（ＢＬＫ０、ＢＬＫ１、…）を含む。ブロックは、例えばデータの消去単位であり、各ブロック中のデータは一括して消去される。１つのブロックより小さい単位（例えばブロックの半分）でデータが消去されてもよい。
【００４２】
各ブロックは複数のストリングユニットＳＵ（ＳＵ０、ＳＵ１、…）の集合である。各ストリングユニットＳＵは複数のＮＡＮＤストリング１３１の集合である。ＮＡＮＤストリング１３１は、複数のメモリセルトランジスタＭＴを含む。メモリセルアレイ１１１にはさらにワード線ＷＬ、ビット線ＢＬ、セルソース線ＣＥＬＳＲＣ、および選択ゲート線ＳＧＤＬならびにＳＧＳＬ等の配線が設けられている。
【００４３】
入出力回路１１２は、信号ＤＱを受け取り、または信号ＤＱを送信する。入出力回路１１２は、また、データストローブ信号ＤＱＳならびにＤＱＳｎを送信する。
【００４４】
入出力制御回路１１３は、メモリコントローラ２００から種々の制御信号を受け取り、制御信号に基づいて、入出力回路１２を制御する。制御信号は、信号ＣＥｎ、ＣＬＥ、ＡＬＥ、ＷＥｎ、ＲＥｎ、ＷＰｎ、およびデータストローブ信号ＤＱＳならびにＤＱＳｎを含む。
【００４５】
シーケンサ１１４は、入出力回路１１２からコマンドおよびアドレス信号を受け取り、コマンドおよびアドレス信号に基づいて、電圧生成回路１１５、ドライバ１１６、センスアンプ１１７、カラムデコーダ１１８を制御する。シーケンサ１１４は、カウンタ１１４ａおよびレジスタ１１４ｂを含む。
【００４６】
電圧生成回路１１５は、メモリチップ１１０の外部から所定の数値データを受け取り、受け取った数値データから種々の電位（電圧）を生成する。所定の数値データは、例えば、デジタル値（ＤＡＣ値）である。生成された電位は、ドライバ１１６およびセンスアンプ１１７等の要素に供給される。電圧生成回路１１５によって生成される電位は、例えば、ワード線ＷＬ、選択ゲート線ＳＧＤＬおよびＳＧＳＬ、ならびにソース線ＣＥＬＳＲＣに印加される電位を含む。種々の電位の印加により、種々の要素に電圧が印加される。ドライバ１１６は、電圧生成回路１１５によって生成された電位を受け取り、シーケンサ１１４の制御に従って、受け取られた電位のうちの選択されたものをロウデコーダ１２０に供給する。
【００４７】
ロウデコーダ１２０は、ドライバ１１６から種々の電位を受け取り、入出力回路１１２からアドレス信号を受け取り、受け取られたアドレス信号に基づいて１つのブロックを選択し、選択されたブロックにドライバ１１６からの電位を転送する。
【００４８】
センスアンプ１１７は、メモリセルトランジスタＭＴの状態をセンスし、センスされた状態に基づいて読み出しデータを生成し、また、書き込みデータをメモリセルトランジスタＭＴに転送する。
【００４９】
データラッチ１１９は、入出力回路１１２からの書き込みデータを保持し、書き込みデータをセンスアンプに供給する。また、データラッチ１１９は、センスアンプ１１７から読み出しデータを受け取り、カラムデコーダ１１８の制御に従って、読み出しデータを入出力回路１１２に供給する。カラムデコーダ１１８は、アドレス信号に基づいて、データラッチ１１９を制御する。
【００５０】
次に、上記メモリセルアレイ１１１の備えるブロックの構成について、図６を用いて説明する。図６は、ブロックの回路図である。
【００５１】
図示するように、ブロックは例えば４つのストリングユニットＳＵ（ＳＵ０〜ＳＵ３）を含む。また各々のストリングユニットＳＵは、複数のＮＡＮＤストリング１３１を含む。
【００５２】
ＮＡＮＤストリング１３１の各々は、例えば８個のメモリセルトランジスタＭＴ（ＭＴ０〜ＭＴ７）と、選択トランジスタＳＴ１、ＳＴ２とを含んでいる。メモリセルトランジスタＭＴは、制御ゲートと電荷蓄積層とを含む積層ゲートを備え、データを不揮発に保持する。なお、メモリセルトランジスタＭＴの個数は８個に限られず、１６個や３２個、６４個、１２８個等であってもよく、その数は限定されるものではない。メモリセルトランジスタＭＴは、選択トランジスタＳＴ１、ＳＴ２間に、その電流経路が直列接続されるようにして配置されている。この直列接続の一端側のメモリセルトランジスタＭＴ７の電流経路は選択トランジスタＳＴ１の電流経路の一端に接続され、他端側のメモリセルトランジスタＭＴ０の電流経路は選択トランジスタＳＴ２の電流経路の一端に接続されている。
【００５３】
ストリングユニットＳＵ０〜ＳＵ３の各々の選択トランジスタＳＴ１のゲートは、それぞれセレクトゲート線ＳＧＤ０〜ＳＧＤ３に共通接続される。他方で、選択トランジスタＳＴ２のゲートは、複数のストリングユニット間で同一のセレクトゲート線ＳＧＳに共通接続される。また、同一のブロック０内にあるメモリセルトランジスタＭＴ０〜ＭＴ７の制御ゲートはそれぞれワード線ＷＬ０〜ＷＬ７に共通接続される。
【００５４】
すなわち、ワード線ＷＬ０〜ＷＬ７及びセレクトゲート線ＳＧＳは同一ブロック内の複数のストリングユニットＳＵ０〜ＳＵ３間で共通に接続されているのに対し、セレクトゲート線ＳＧＤは、同一ブロック内であってもストリングユニットＳＵ０〜ＳＵ３毎に独立している。
【００５５】
また、メモリセルアレイ１１１内でマトリクス状に配置されたＮＡＮＤストリング１３１のうち、同一行にあるＮＡＮＤストリング１３１の選択トランジスタＳＴ１の電流経路の他端は、いずれかのビット線ＢＬ（ＢＬ０〜ＢＬ（Ｌ−１）、（Ｌ−１）は１以上の自然数）に共通接続される。すなわちビット線ＢＬは、複数のブロック間でＮＡＮＤストリング１３１を共通に接続する。また、選択トランジスタＳＴ２の電流経路の他端はソース線ＳＬに共通に接続されている。ソース線ＳＬは、例えば複数のブロック間でＮＡＮＤストリング１３１を共通に接続する。
【００５６】
前述の通り、同一のブロック内にあるメモリセルトランジスタＭＴのデータは、一括して消去される。これに対してデータの読み出し及び書き込みは、いずれかのブロックのいずれかのストリングユニットＳＵにおける、いずれかのワード線ＷＬに共通に接続された複数のメモリセルトランジスタＭＴにつき、一括して行われる。メモリセルトランジスタＭＴが２値（１ビット）を記憶するメモリセルトランジスタＭＴの場合は、この一括して行われる単位が１ページに対応する。
【００５７】
図７は、本実施形態に係るメモリセルアレイ１１１の一部領域の断面図である。図示するように、ｐ型ウェル領域２０上に複数のＮＡＮＤストリング１３１が形成されている。すなわち、ウェル領域２０上には、セレクトゲート線ＳＧＳとして機能する複数の配線層２７、ワード線ＷＬとして機能する複数の配線層２３、及びセレクトゲート線ＳＧＤとして機能する複数の配線層２５が形成されている。
【００５８】
そして、これらの配線層２５、２３、及び２７を貫通してウェル領域２０に達するメモリホール２６が形成されている。メモリホール２６の側面には、ブロック絶縁膜２８、電荷蓄積層２９（絶縁膜）、及びゲート絶縁膜３０が順次形成され、更にメモリホール２６内を導電膜３１が埋め込んでいる。導電膜３１は、ＮＡＮＤストリング１３１の電流経路として機能し、メモリセルトランジスタＭＴ並びに選択トランジスタＳＴ１及びＳＴ２の動作時にチャネルが形成される領域である。
【００５９】
配線層２７は、例えば４層設けられ、セレクトゲート線ＳＧＳ、及び選択トランジスタＳＴ２のゲート電極として機能する。最下層の配線層２７及びゲート絶縁膜３０は、ｐ型ウェル領域２０の表面内に形成されたｎ＋型不純物拡散領域３３の近傍まで設けられている。
【００６０】
配線層２３は、例えば８層設けられ、配線層２７の上方に設けられている。配線層２３はそれぞれ、対応するワード線ＷＬ及びメモリセルトランジスタＭＴの制御ゲート電極として機能する。
【００６１】
配線層２５は、例えば４層設けられ、配線層２３の上方に設けられている。配線層２５は、セレクトゲート線ＳＧＤ、及び選択トランジスタＳＴ１のゲート電極として機能する。
【００６２】
以上の構成により、各ＮＡＮＤストリング１３１において、ウェル領域２０上に選択トランジスタＳＴ２、複数のメモリセルトランジスタＭＴ、及び選択トランジスタＳＴ１が順次積層されている。
【００６３】
なお、図７の例では選択トランジスタＳＴ１及びＳＴ２は、メモリセルトランジスタＭＴと同様に電荷蓄積層２９を備えている。しかし選択トランジスタＳＴ１及びＳＴ２は、実質的にデータを保持するメモリセルとして機能するものでは無く、スイッチとして機能する。この際、選択トランジスタＳＴ１及びＳＴ２がオン／オフする閾値は、電荷蓄積層２９に電荷を注入することによって制御されても良い。
【００６４】
導電膜３１の上端には、ビット線ＢＬとして機能する配線層３２が形成される。ビット線ＢＬは、センスアンプ１１７に接続される。
【００６５】
更に、ウェル領域２０の表面内には、ｎ＋型不純物拡散層３３及びｐ＋型不純物拡散層３４が形成されている。拡散層３３上にはコンタクトプラグ３５が形成され、コンタクトプラグ３５上には、ソース線ＳＬとして機能する配線層３６が形成される。ソース線ＳＬは、図示しないソース線ドライバに接続される。また拡散層３４上にはコンタクトプラグ３７が形成され、コンタクトプラグ３７上には、ウェル配線ＣＰＷＥＬＬとして機能する配線層３８が形成される。ウェル配線ＣＰＷＥＬＬは、図示しないウェルドライバに接続される。配線層３６及び３８は、セレクトゲート線ＳＧＤよりも上層であり、且つ配線層３２よりも下層のレイヤに形成されるが、この構造は一例であり、これに限定されない。
【００６６】
以上の構成が、図７を記載した紙面の奥行き方向に複数配列されており、奥行き方向に並ぶ複数のＮＡＮＤストリング１３１の集合によってストリングユニットＳＵが形成される。また、同一のストリングユニットＳＵ内に含まれる複数のセレクトゲート線ＳＧＳとして機能する配線層２７は、互いに共通に接続されている。つまり、隣接するＮＡＮＤストリング１３１間のウェル領域２０上にもゲート絶縁膜３０が形成され、拡散層３３に隣接する半導体層２７及びゲート絶縁膜２８は、拡散層３３近傍まで形成される。
【００６７】
従って、選択トランジスタＳＴ２がオン状態とされる際には、そのチャネルはメモリセルトランジスタＭＴ０と拡散層３３とを電気的に接続する。また、ウェル配線ＣＰＷＥＬＬに電圧を印加することで、導電膜３１に電位を与えることが出来る。
【００６８】
なお、メモリセルアレイ１１１の構成についてはその他の構成であっても良い。すなわちメモリセルアレイ１１１の構成については、例えば、“三次元積層不揮発性半導体メモリ”という２００９年３月１９日に出願された米国特許出願１２／４０７，４０３号に記載されている。また、“三次元積層不揮発性半導体メモリ”という２００９年３月１８日に出願された米国特許出願１２／４０６，５２４号、“不揮発性半導体記憶装置及びその製造方法”という２０１０年３月２５日に出願された米国特許出願１２／６７９，９９１号“半導体メモリ及びその製造方法”という２００９年３月２３日に出願された米国特許出願１２／５３２，０３０号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【００６９】
次に、図８を参照して、メモリセルトランジスタＭＴについて説明する。メモリチップ１１０は、１つのメモリセルトランジスタＭＴにおいて１ビット以上のデータを保持することができる。図８は、例として、データ書き込みの結果、１メモリセルトランジスタ当たり３ビットのデータを保持するメモリセルトランジスタＭＴの閾値電圧の分布を示す。各メモリセルトランジスタＭＴの閾値電圧は、保持される３ビットデータに応じた値を有する。メモリセルトランジスタＭＴ当たり３ビットの記憶の場合、各メモリセルトランジスタＭＴは、８つの閾値電圧のうちのいずれかを有し得る。８つの閾値電圧は、例えば、“１１１”データ、“１１０”データ、“１００”データ、“０００”データ、“０１０”データ、“０１１”データ、“００１”データ、および“１０１”データをそれぞれ保持している状態である。８つの閾値電圧と３ビットデータとの組み合わせは、図８の例に限られない。
【００７０】
１つのセルユニットＣＵのメモリセルトランジスタＭＴのある同じ位置のビットのデータの組は、ページを構成する。１つのセルユニットＣＵのメモリセルトランジスタＭＴの最上位ビットのデータの組は、アッパーページを構成する。１つのメモリセルユニットＣＵのメモリセルトランジスタＭＴの中位ビットのデータの組は、ミドルページを構成する。１つのセルユニットＣＵのメモリセルトランジスタＭＴの最下位ビットのデータの組は、ロワーページを構成する。
【００７１】
ある同じ３ビットデータを保持する複数のメモリセルトランジスタＭＴであっても、メモリセルトランジスタＭＴの特性のばらつき等に起因して、互いに相違する閾値電圧を有し得る。このため、ある同じデータを保持する複数のトランジスタＭＴの閾値電圧は１つの分布を形成する。分布はＥｒ、Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、およびＧレベルと称される。Ａレベル中の閾値電圧は、Ｅｒレベル中の閾値電圧より高い。同様に、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ、およびＧレベル中の閾値電圧は、それぞれ、Ａ、Ｂ、Ｃ、Ｄ、Ｅ、およびＦレベル中の閾値電圧より高い。Ｅｒレベルは、消去状態のメモリセルトランジスタＭＴの閾値電圧の分布である。
【００７２】
読み出し対象のメモリセルトランジスタＭＴによって保持されているデータの判別のために、当該メモリセルトランジスタＭＴの閾値電圧が属するレベルが判断される。レベルの判断のために、読み出し電圧ＶＡ、ＶＢ、ＶＣ、ＶＤ、ＶＥ、ＶＦ、およびＶＧが用いられる。以下、電圧ＶＡ、ＶＢ、ＶＣ、ＶＤ、ＶＥ、ＶＦ、およびＶＧを含め、レベルの判断ために読み出し対象のメモリセルトランジスタＭＴに印加されるある値の電圧は、読み出し電圧ＶＣＧＲと称される場合がある。
【００７３】
読み出し対象のメモリセルトランジスタＭＴの閾値電圧がある読み出し電圧ＶＣＧＲを超えているかが、このメモリセルトランジスタＭＴの閾値電圧が属するレベルの判定に用いられる。読み出し電圧ＶＡは、ＥｒレベルのメモリセルトランジスタＭＴが有する最高の閾値電圧より高く、ＢレベルのメモリセルトランジスタＭＴが有する最低の閾値電圧より低く、すなわちＥｒレベルとＡレベルとの間に位置する。同様に、読み出し電圧ＶＢ、ＶＣ、ＶＤ、ＶＥ、およびＶＦは、それぞれ、ＡレベルとＢレベルの間、ＢレベルとＣレベルの間、ＣレベルとＤレベルの間、ＤレベルとＥレベルの間、ＥレベルとＦレベルの間、およびＦレベルとＧレベルの間に位置する。読み出し電圧ＶＣＧＲ以上の閾値電圧を有するメモリセルトランジスタＭＴは、制御ゲート電極において読み出し電圧ＶＣＧＲを受け取ってもオフを維持する。一方、読み出し電圧ＶＲ未満の閾値電圧を有するメモリセルトランジスタＭＴは、制御ゲート電極において読み出し電圧ＶＣＧＲを受け取っていると、オンしている。電圧ＶＲＥＡＤは、非読み出し対象のセルユニットＣＵのメモリセルトランジスタＭＴのワード線ＷＬに印加され、いずれのレベルにあるメモリセルトランジスタＭＴの閾値電圧よりも高い。
【００７４】
読み出し電圧ＶＡ、ＶＢ、ＶＣ、ＶＤ、ＶＥ、ＶＦ、およびＶＧは予め設定されており、より具体的には、読み出し電圧ＶＡ、ＶＢ、ＶＣ、ＶＤ、ＶＥ、ＶＦ、およびＶＧに対応する数値データ（ＤＡＣ値）が予め設定されている。予め設定された数値データは、例えば２５ＤＡＣ、９０ＤＡＣ、１４０ＤＡＣ、２２０ＤＡＣ、３００ＤＡＣ、３７０ＤＡＣ、４２０ＤＡＣである。これらの数値データは、例えばメモリセルアレイ１１１のデータ領域に記憶されている。この数値データは、メモリチップ１１０のパワーオン時にメモリセルアレイ１１１から読み出され、例えば、レジスタ１１４ｂに転送される。メモリコントローラ２００はメモリＩ／Ｆ２５０経由でこれらの数値データを取得し、保持してもよい。
【００７５】
図９を用いて、メモリセルトランジスタＭＴの閾値電圧のシフトについて説明する。メモリセルトランジスタＭＴは、例えば書き込み後のプログラムディスターブ、及び読み出し後のリードディスターブの影響を受ける。この影響を受けると、メモリセルトランジスタＭＴの閾値電圧は、例えば図９に示すように負側にシフトする場合がある。
【００７６】
このとき、予め設定された読み出し電圧では、メモリセルトランジスタＭＴから正確にデータを読み出すことができなくなり、ビット誤り率が増加する場合がある。ここでビット誤り率は、読み出されたデータに含まれる誤りビットの割合を示している。
【００７７】
そこで、メモリコントローラ２００は、ビット誤り率が増加したページに対して、最適な読み出し電圧を特定するために、シフトリードやＶｔｈトラッキングを実行してもよい。
【００７８】
シフトリードは、メモリセルトランジスタＭＴの最適な読み出し電圧を探索するための読み出し動作であり、予め設定された読み出し電圧からシフトさせた電圧値を用いて行う読み出し動作である。
【００７９】
シフトリードでは、読み出し電圧を一定量ずつ変化させ、各読み出し電圧を用いて不揮発性メモリ１００からデータを読み出す。制御部２２０は、各閾値電圧分布に対応した予め設定された読み出し電圧を中心にした探索領域を設け、各読み出し電圧毎に不揮発性メモリ１１０に対して読み出し動作を実行する。そして、この探索領域内において、誤りビット数の最も少ない読み出し電圧に基づき、最適な読み出し電圧を決定する。
【００８０】
Ｖｔｈトラッキングも、メモリセルトランジスタＭＴの最適な読み出し電圧を探索するための不揮発性メモリ１１０に対する読み出し動作である。なお、メモリコントローラ２００が実行するＶｔｈトラッキングは、第１のＶｔｈトラッキングとも称される。
【００８１】
第１のＶｔｈトラッキングでは、制御部２２０は、例えば、読み出し電圧範囲を所定の数に分け、各々の読み出し電圧を使用して読み出したデータを基にしてＶｔｈ分布を求める。
【００８２】
例えば、制御部２２０は、まず、ある読み出し電圧を所定のワード線に印加することによりデータを読み出し、読み出したデータに含まれる“１”の個数をカウントする。
【００８３】
例えば、制御部２２０は、次に、所定の電圧幅だけずらした読み出し電圧を当該所定のワード線に印加することによりデータを読み出し、読み出したデータに含まれる“１”の個数をカウントし、当該電圧幅をずらす前の読み出し電圧を使用したときにカウントされた“１”の個数との差分を求める。
【００８４】
例えば、制御部２２０は、この後、上記動作を所定回数繰り返すことで、横軸に読み出し電圧をプロットし縦軸に差分をプロットした場合に、図１０に示すようなＶｔｈ分布が得られる。なお、制御部２２０は、プロット後に所定のスムージング処理を行って図１０に示すようなＶｔｈ分布を得てもよい。
【００８５】
そして、例えば、制御部２２０は、図１０に示すようなＶｔｈ分布の谷、つまり、Ｖｔｈ分布において隣接する読み出し電圧でカウントされた“１”の個数の差分が最小となる読み出し電圧を求め、これをメモリセルトランジスタＭＴの最適な読み出し電圧として決定する。なお、メモリセルトランジスタＭＴは単にメモリセルとも称される。
【００８６】
次に、図１１、図１２を参照して、管理情報２２０１について説明する。管理情報２２０１は、さらに、第１パラメータ情報２２０２と、第２パラメータ情報２２０３と、を含んでよいが、これに限定されない。
【００８７】
図１１は、第１パラメータ情報２２０２の内容の一例を示す図である。図示するように、第１パラメータ情報２２０２は、ページの識別情報の一例であるページ番号に対し、各種の動作パラメータが対応付けられたテーブルである。動作パラメータは、例えば、そのページからデータを読み出す際に使用される読み出し電圧であるが、これに限られない。また、動作パラメータが読み出し電圧である場合、初期値として、予め設定された読み出し電圧値が設定されているが、制御部２２０は、例えば、シフトリードやＶｔｈトラッキングで決定された最適な読み出し電圧により動作パラメータを更新してもよい。また、制御部２２０は、予め設定された読み出し電圧値を読み出し電圧とは別に第１パラメータ情報２２０２に保存しておいてもよい。
【００８８】
図１２は、第２パラメータ情報２２０３の内容の一例を示す図である。図示するように、第２パラメータ情報２２０３は、例えば、ページの識別情報の一例であるページ番号に対し、書き込み世代番号、書き込み時に温度センサ３００から取得したメモリコントローラ２２０の温度などの温度情報、書き込みが行われてからの読み出し回数、消去回数、書き込み回数などのうち一部または全部を含む。
【００８９】
第１パラメータ情報２２０２、第２パラメータ情報２２０３ともに、メモリチップ１１０ごと、ブロックごとに分類されたテーブルであってもよい。
【００９０】
書き込み世代番号は、データが書き込まれる順に関連する情報である。メモリシステム１は、あるブロックにデータを書き込み始めると、そのブロックの全てのページが書き込み済みとなるまで、そのブロックのページにデータを書き込むものとする。メモリシステム１は、例えば、あるブロックのページの書き込み順に書き込み世代番号「１」〜「ｍ」（ｍは２以上の自然数）を付与してもよいし、ブロックの各ページに共通して書き込み世代番号「ｍ」を付与してもよい。
【００９１】
そして、メモリシステム１は、例えば、別のブロックにデータを書き込む場合、当該別のブロックのページの書き込み順に書き込み世代番号「ｍ＋１」〜「２ｍ」を付与してもよいし、ブロックの各ページに共通して書き込み世代番号「２ｍ」を付与してもよい。
【００９２】
このように、書き込み世代番号は、書き込みが行われてからの経過時間が長くなる程、その値が小さくなる傾向を有する。書き込みの頻度は一様ではないため、書き込み世代番号の差が、そのまま経過時間の差に比例するものでは無いが、少なくとも書き込み世代番号が小さいページは、書き込み世代番号が大きいページに比して、書き込みからの経過時間が長いと言える。なお、書き込み世代番号に代えて、書き込みが行われてからの経過時間を保持するようにしてもよい。
【００９３】
次に、第１の実施形態に係るメモリシステムの不揮発性メモリ１００に格納されたデータに対するアクセス処理について説明する。
【００９４】
第１の実施形態に係るメモリシステムでは、メモリシステム１がホスト装置２から読み出し要求、書き込み要求、データ消去要求、トリムコマンドのようなデータ削除要求等を受信した場合や、バックグラウンドでメモリコントローラ２００が、ガベージコレクションや、リフレッシュや、ウェアレベリングや、パトロール処理等を実行する場合に、メモリコントローラ２００は不揮発性メモリ１００にアクセスする。
【００９５】
ガベージコレクションは、コンパクションとも称される。不揮発性メモリ１００は、データの消去単位とデータの読み書き単位が異なるため、不揮発性メモリ１００の書き換えが進むと、無効データによって、ブロックが断片化され、このような断片化されたブロックが増えると、使用可能なブロックが少なくなる。ガベージコレクションは、使用可能なブロックを増加させるための処理で、例えば、有効データおよび無効データが含まれている複数のアクティブブロックから有効データを集めて、別のブロックに書き直し、フリーブロックを確保する処理を意味する。
【００９６】
アクティブブロックは、有効データが記録されているブロックを示す。フリーブロックは、有効データが記録されていないブロックを示す。フリーブロックは、消去した後、消去済みブロックとして再利用可能である。フリーブロックは、本実施形態では、有効データが記録されていない消去前のブロックと、消去済みブロックとの両方を含んでいる。有効データとは、論理アドレスと対応付けられているデータであり、無効データとは論理アドレスが対応付けられていないデータである。消去済みブロックは、データが書き込まれると、アクティブブロックとなる。
【００９７】
リフレッシュは、あるブロック内のデータを別のブロックに書き直す処理である。メモリコントローラ２００は、例えば、誤り訂正処理における訂正ビット数が増加する等のようにあるブロック内のデータの劣化を検出した場合に、当該ブロック内のデータを別のブロックに書き直すリフレッシュを実行する。
【００９８】
ウェアレベリングは、例えば、書き換え回数や消去回数が多いブロックに記憶されているデータと、書き換え回数や消去回数の少ないブロックに記憶されているデータとを入れ替えることで、不揮発性メモリ１００のブロックの書き換え回数を平準化する処理である。
【００９９】
パトロール処理は、不揮発性メモリ１００に記録済みのデータが媒体の劣化によって失われていないかをチェック、確認するための動作であり、ホスト装置１からの指示を受けることなくメモリシステム１００が自主的に行う。
【０１００】
パトロール処理は、エラーの増加したブロックを検出するために、例えば、不揮発性メモリ１００に記憶されているデータを所定単位ずつ読み出し、当該読み出されたデータを復号回路２４２での誤り訂正結果に基づいてチェックする処理である。この実施形態では、所定単位は１セルユニットＣＵとするが、他の単位をパトロールリードの単位としてもよい。
【０１０１】
このチェック処理では、例えば、読み出されたデータの誤りビット数を閾値と比較し、誤りビット数が閾値を越えたデータをリフレッシュの対象とする。例えば、制御部２２０は、あるセルユニットＣＵからの読み出しデータの誤りビット数が閾値を超えた場合に、そのセルユニットＣＵが含まれるブロック内のデータをリフレッシュの対象とする。つまり、制御部２２０は、誤りビット数が閾値を越えたセルユニットＣＵを含むブロックに記憶されているデータを、別のブロックに再記憶する。制御部２２０は、元のブロックに記憶されていたデータを無効化、つまり、元のブロックをフリーブロックとする。
【０１０２】
制御部２２０は、不揮発性メモリ１００におけるアクティブブロックに対して、定期的にパトロール処理を実行する。制御部２２０は、全てのアクティブブロックに対するパトロール処理を、サイクルタイムＴａの時間内に実行する。制御部２２０は、あるサイクルタイムＴａの時間内に全てのアクティブブロックに対するパトロール処理を完了したら、続けてパトロール処理を行い、次のサイクルタイムＴａの時間内に全てのアクティブブロックに対するパトロール処理を完了できるようにする。
【０１０３】
サイクルタイムＴａは、メモリシステム１がオンしている時間換算でカウントされ、例えば、１０時間、１００時間等の任意の時間単位で設定される。メモリシステム１が、パトロール処理実行中に、ホスト装置１から読み出し要求、書き込み要求等のコマンドを受信した場合、メモリコントローラ２００は、ホスト装置１から受信したコマンドに対する処理をパトロール処理より優先させて実行する。
【０１０４】
図１３は、第１の実施形態に係るメモリシステムのパトロール処理のフローチャートである。図１３のフローチャートでは、メモリコントローラ２００が不揮発性メモリ１００の所定のセルユニットＣＵをパトロールすることに決定した段階から説明を行う。
【０１０５】
本実施形態では、パトロール対象となるセルユニットＣＵを含むメモリチップ１１０がメモリチップ１１０−１であるとして説明する。
【０１０６】
制御部２２０は、メモリチップ１１０−１に対してパトロール対象のセルユニットＣＵに対するＶｔｈトラッキングをメモリＩ／Ｆ２５０経由で要求する（ステップ１３０１）。
【０１０７】
制御部２２０は、メモリチップ１１０−１に対してパトロール対象のセルユニットＣＵに対する読み出し電圧の最適値の探索を要求するために、メモリＩ／Ｆ２５０経由で、メモリチップ１１０−１に対してパトロール対象のセルユニットＣＵのＶｔｈトラッキングの実行を要求するコマンドを送信する。
【０１０８】
メモリチップ１１０−１は、メモリＩ／Ｆ２５０経由で制御部２２０から送信されたＶｔｈトラッキングの実行を要求するコマンドに対する応答として、Ｖｔｈトラッキング結果（ＶＤ）をメモリＩ／Ｆ２５０経由で送信する。制御部２２０は、メモリチップ１１０−１から送信されたＶｔｈトラッキング結果（ＶＤ）をメモリＩ／Ｆ２５０経由で取得する。
【０１０９】
なお、このように、制御部２２０がメモリチップ１１０に対して所定のセルユニットＣＵのＶｔｈトラッキングの実行を要求し、メモリチップ１１０が所定のセルユニットＣＵのＶｔｈトラッキングを実行してメモリコントローラ２００に対してＶｔｈトラッキング結果を出力し、制御部２２０がＶｔｈトラッキングの実行要求に対してメモリチップ１１０から出力されたＶｔｈトラッキング結果を取得することは、第２のＶｔｈトラッキングとも称される。
【０１１０】
図１４は、メモリチップ１１０に対してパトロール対象のセルユニットＣＵのＶｔｈトラッキングの実行を要求するために、メモリＩ／Ｆ２５０を経由してメモリコントローラ２００からメモリチップ１１０へ送信される信号を示すコマンドシーケンスの例を示す。図１４は、また、Ｖｔｈトラッキングの要求に応答してメモリチップ１１０からメモリコントローラ２００に流れる信号、および信号ＲＹ／ＢＹｎを示す。図１４では、信号ＤＱとして送信される信号と、メモリチップ１１０−１のレディ／ビジー状態を示すＲＹ／ＢＹｎ信号のみを示しており、その他の信号ＣＥｎ、ＣＬＥ、ＡＬＥ、ＷＥｎ、ＲＥｎ、ＷＰｎ、ＤＱＳ及びＤＱＳｎの図示を省略している。
【０１１１】
図１４に示されるように、制御部２２０は、メモリＩ／Ｆ２５０経由で、コマンドＸＸｈを送信する。コマンドＸＸｈの送信の間、図示せぬ信号ＣＬＥがアサートされている。コマンドＸＸｈは、例えばＶｔｈトラッキングの要求を指示するためのコマンドである。
【０１１２】
制御部２２０は、メモリＩ／Ｆ２５０経由で、コマンドＸＸｈに続いて、５サイクルに亘ってアドレス信号を送信する。アドレス信号は、不揮発性メモリ１００の記憶領域のうちの、読み出し対象の領域を指定する。アドレス信号の送信の間、図示せぬ信号ＡＬＥがアサートされている。アドレス信号は、例えば第１および第２サイクルにおいてカラムアドレス信号ＣＡ（ＡＤ１およびＡＤ２）を含む。カラムアドレス信号ＣＡはカラムアドレスを含み、カラムアドレスは、指定されたページのうちの読み出し対象のカラムを指定する。アドレス信号は、例えば第３〜第５サイクルにおいてロウアドレス信号ＲＡ（ＡＤ３〜ＡＤ５）を含む。ロウアドレス信号ＲＡは、ロウアドレス、すなわち選択ページを指定する。選択ページの記憶空間を提供するセルトランジスタＭＴを含んだセルユニットＣＵと接続されたワード線ＷＬは、選択ワード線ＷＬと称される。
【０１１３】
制御部２２０は、ロウアドレス信号ＲＡ（ＡＤ３〜ＡＤ５）を送信した後、メモリＩ／Ｆ２５０経由で、メモリチップ１１０がＶｔｈトラッキングを実行するときの最小電圧値を指定する信号（ＤＡ１）を送信する。Ｖｔｈトラッキングが開始されるときの最小電圧値は、例えば、ＤＡＣ値で指定される。
【０１１４】
メモリコントローラ２００の制御部は、Ｖｔｈトラッキングが実行されるときの最小電圧値を指定する信号（ＤＡ１）を送信した後、メモリＩ／Ｆ２５０経由で、メモリチップ１１０がＶｔｈトラッキングを実行する際に変化させる読み出し電圧を指定する信号（ＤＡ２）を送信する。変化させる読み出し電圧は、例えば、ＤＡＣ値で指定される。
【０１１５】
メモリチップ１１０は、Ｖｔｈトラッキングを実行する際に変化させる読み出し電圧を指定する信号（ＤＡ２）を受信すると、Ｖｔｈトラッキングを実行する。メモリチップ１１０は、Ｖｔｈトラッキングの実行の間、ビジー状態をメモリコントローラ２００に通知する。
【０１１６】
メモリチップ１１０は、メモリコントローラ２００からメモリＩ／Ｆ２５０経由受信したカラムアドレス信号ＣＡ（ＡＤ１およびＡＤ２）およびロウアドレス信号ＲＡ（ＡＤ３〜ＡＤ５）で指定されたセルユニットＣＵに対して、メモリコントローラ２００から受信した最小電圧値を指定する信号（ＤＡ１）と変化させる読み出し電圧を指定する信号（ＤＡ２）を使用してＶｔｈトラッキングを実行する。
【０１１７】
メモリチップ１１０は、第１のステップとして、Ｖｔｈトラッキング対象のセルユニットＣＵの選択ワード線ＷＬに対して最小電圧値に対応する読み出し電圧を印加することによりデータを読み出し、読み出したデータに含まれる“１”の個数をカウントする。
【０１１８】
メモリチップ１１０は、第１のステップの後、第２のステップとして、選択ワード線ＷＬに対して最小電圧値に対応する電圧に対して変化させる読み出し電圧に対応する電圧を加えた読み出し電圧を印加することによりデータを読み出し、読み出したデータに含まれる“１”の個数をカウントし、第１のステップにてカウントされた“１”の個数との差分を求める。
【０１１９】
メモリチップ１１０は、第２のステップの後、第３のステップとして、選択ワード線ＷＬに対して第２のステップで使用した電圧に対して変化させる読み出し電圧に対応する電圧を加えた読み出し電圧を印加することによりデータを読み出し、読み出したデータに含まれる“１”の個数をカウントし、第２のステップにてカウントされた“１”の個数との差分を求める。
【０１２０】
この後、メモリチップ１１０が上記第３のステップのような処理を所定回数繰り返すことで、横軸に読み出し電圧をプロットし縦軸に差分をプロットした場合に、図１０と同様のグラフが得られる。なお、プロット後に所定のスムージング処理を行ってグラフ化してもよい。
【０１２１】
メモリチップ１１０は、“１”の個数の差分が最小値となる読み出し電圧を最適な読み出し電圧として算出し、算出した最適な読み出し電圧をＶｔｈトラッキング結果（ＶＤ）とする。また、メモリチップ１１０は、グラフ化をした場合にグラフの底部（凹部）を見つけられない場合や複数個のグラフの底部を見つけられた場合には、最適な読み出し電圧を算出できなかったことを示す情報をＶｔｈトラッキング結果（ＶＤ）としてもよい。
【０１２２】
また、メモリチップ１１０は、“１”の個数の差分の最小値が所定の個数よりも大きい場合には、最適な読み出し電圧を算出できなかったことを示す情報をＶｔｈトラッキング結果（ＶＤ）としてもよい。
【０１２３】
メモリコントローラ２００は、図示せぬ信号ＲＥｎを繰り返しアサートして、Ｖｔｈトラッキング結果（ＶＤ）をメモリチップ１１０から出力させ、出力されたＶｔｈトラッキング結果（ＶＤ）メモリＩ／Ｆ２５０経由で取得する。
【０１２４】
図１４で説明したコマンドは、１つのメモリチップ１１０に対してのみ出力される。すなわち、例えば、メモリコントローラ２００は、メモリＩ／Ｆ２５０経由で、メモリチップ１１０−１、・・・、メモリチップ１１０−Ｎそれぞれに対してＶｔｈトラッキング要求のコマンドを発行することにより、メモリコントローラ２００はメモリチップ１１０−１、・・・、メモリチップ１１０−Ｎそれぞれに対して所定のセルユニットＣＵに対するＶｔｈトラッキングを要求できる。
【０１２５】
制御部２２０は、メモリＩ／Ｆ２５０経由でメモリチップ１１０−１から取得したＶｔｈトラッキング結果（ＶＤ）に基づいてメモリチップ１１０−１がＶｔｈトラッキングに成功したか、つまり、第２のＶｔｈトラッキングが成功したか、を判定する（ステップ１３０２）。
【０１２６】
制御部２２０は、例えば、メモリチップ１１０−１から取得したＶｔｈトラッキング結果が、最適な読み出し電圧を算出できなかったことを示す情報では無い場合、メモリチップ１１０−１がＶｔｈトラッキングに成功した、と判定する。
【０１２７】
制御部２２０は、メモリチップ１１０−１がＶｔｈトラッキングに成功したと判定する場合（ステップ１３０２：Ｙｅｓ）、メモリチップ１１０−１からＶｔｈトラッキング結果である最適な読み出し電圧を取得し、取得した読み出し電圧と予め定められた読み出し電圧との差分を求める（ステップ１３０３）。
【０１２８】
メモリチップ１１０−１がメモリＩ／Ｆ２５０経由で送信するＶｔｈトラッキング結果である最適な読み出し電圧の情報は、Ｖ単位の電圧値であってもよく、ＤＡＣ値のような所定の数値データであってもよい。
【０１２９】
制御部２２０は、取得した読み出し電圧と予め定められた読み出し電圧との差分が所定の第１の値未満か判定し（ステップ１３０４）、所定の第１の値以上の場合（ステップ１３０４：Ｎｏ）、パトロール対象のセルユニットＣＵが含まれるブロックをリフレッシュする（ステップ１３０５）。
【０１３０】
制御部２２０は、メモリチップ１１０−１がＶｔｈトラッキングに成功したと判定しない場合（ステップ１３０２：Ｎｏ）、セルユニットＣＵに対して前述した第１のＶｔｈトラッキングまたは前述したシフトリードを行うことにより最適な読み出し電圧を取得する（ステップ１３０６）。
【０１３１】
制御部２２０は、第１のＶｔｈトラッキングまたはシフトリードにより取得した最適な読み出し電圧と予め定められた読み出し電圧との差分を計算し（ステップ１３０７）、その差分が所定の第２の値未満か判定する（ステップ１３０８）。差分が所定の第２の値以上の場合（ステップ１３０８：Ｎｏ）、パトロール対象のセルユニットＣＵが含まれるブロックをリフレッシュする（ステップ１３０９）。なお、所定の第２の値は所定の第１の値と同じであってもよいし、異なる値であってもよい。
【０１３２】
なお、制御部２２０は、メモリコントローラ２００が保持する読み出し電圧の情報、または、第１パラメータ情報２２０２の動作パラメータの情報、をステップ１３０６にて第１のＶｔｈトラッキングまたはシフトリードにより取得した読み出し電圧で更新してもよい。
【０１３３】
図１５は、第１の実施形態に係るメモリシステムのパトロール処理の第１の変形例のフローチャートである。図１５のフローチャートにおいても、図１３と同様に、メモリコントローラ２００が不揮発性メモリ１００の所定のセルユニットＣＵをパトロールすることに決定した段階から説明を行う。また、図１５において、図１３の構成と同一部分は同一符号で示す。
【０１３４】
制御部２２０は、第２のＶｔｈトラッキングにより取得した読み出し電圧と予め定められた読み出し電圧との差分が所定の第１の値未満か判定し（ステップ１３０４）、所定の第１の値以上の場合（ステップ１３０４：Ｎｏ）、第２のＶｔｈトラッキングにより取得した読み出し電圧を使用して、メモリＩ／Ｆ２５０経由で、セルユニットＣＵのデータを読み出す。（ステップ１５０１）。
【０１３５】
メモリコントローラ２００は、読み出されたデータを復号する（ステップ１５０２）。制御部２２０は、読み出されたセルユニットＣＵのデータの復号を復号回路２４２に対して指示し、復号回路２４２は制御部２２０から指示されたデータを復号する。復号回路２４２は、復号結果を制御部２２０に対して出力する。すなわち、復号時に誤り訂正に成功した場合は復号されたデータを、復号時に誤り訂正に失敗した場合は誤り訂正失敗を制御部２２０に通知する。
【０１３６】
制御部２２０は、復号回路２４２による読み出されたセルユニットＣＵのデータの復号において検出された誤りビット数が所定の第１のビット数未満か判定し（ステップ１５０３）、所定の第１のビット数以上の場合（ステップ１５０３：Ｎｏ）、パトロール対象のセルユニットＣＵが含まれるブロックをリフレッシュする（ステップ１５０４）。
【０１３７】
図１６は、第１の実施形態に係るメモリシステムのパトロール処理の第２の変形例のフローチャートである。図１６のフローチャートにおいても、図１３と同様に、メモリコントローラ２００が不揮発性メモリ１００の所定のセルユニットＣＵをパトロールすることに決定した段階から説明を行う。また、図１６において、図１３、図１５の構成と同一部分は同一符号で示す。
【０１３８】
制御部２２０は、メモリチップ１１０−１がＶｔｈトラッキングに成功しないと判定した場合（ステップ１３０２：Ｎｏ）にメモリコントローラ２００が保持する読み出し電圧を使用して、メモリＩ／Ｆ２５０経由で、セルユニットＣＵのデータを読み出し（ステップ１６０１）、読み出したデータを復号する（ステップ１６０２）。制御部２２０は、読み出されたセルユニットＣＵのデータの復号を復号回路２４２に対して指示し、復号回路２４２は制御部２２０から指示されたデータを復号する。復号回路２４２は、復号結果を制御部２２０に対して出力する。すなわち、復号時に誤り訂正に成功した場合は復号されたデータを、復号時に誤り訂正に失敗した場合は誤り訂正失敗を制御部２２０に通知する。
【０１３９】
制御部２２０は、復号回路２４２による読み出されたセルユニットＣＵのデータの復号において検出された誤りビット数が所定の第２のビット数未満か判定し（ステップ１６０３）、所定の第２のビット数以上の場合（ステップ１６０３：Ｎｏ）、セルユニットＣＵに対して、第１のＶｔｈトラッキングまたはシフトリードにより最適な読み出し電圧を取得する（ステップ１３０６）。制御部２２０は、取得した読み出し電圧とメモリコントローラ２００が保持する読み出し電圧との差分を計算し（ステップ１３０７）、その差分が所定の第２の値未満か判定する（ステップ１３０８）。差分が所定の第２の値以上の場合（ステップ１３０８：Ｎｏ）、制御部２２０は、パトロール対象のセルユニットＣＵが含まれるブロックをリフレッシュする（ステップ１３０９）。
【０１４０】
上述した第１の実施形態によれば、メモリコントローラ２００は、パトロール処理の際、第２のＶｔｈトラッキングにより取得した読み出し電圧と予め定められた読み出し電圧との差分に基づいてリフレッシュするかを決定する。
【０１４１】
このため、第１の実施形態に係るメモリシステムでは、メモリコントローラ２００は、第１のＶｔｈトラッキングやシフトリードをすること無く、メモリチップ１１０により実行される第２のＶｔｈトラッキングの結果を使用してパトロール処理を行うことができるため、メモリコントローラ２００の処理負荷を減らすことができる。
【０１４２】
また、第１の実施形態に係るメモリシステムでは、誤り訂正処理を実行すること無くリフレッシュするかを決定するため、パトロール処理の際のメモリコントローラ２００の処理負荷を減らすことができる。メモリコントローラ２００の処理負荷が減ることにより、メモリシステム１の性能が向上する。第１の実施形態に係るメモリシステムでは、パトロール処理の際のメモリコントローラ２００の処理負荷が減ることにより、パトロール処理にかかる時間を短くでき、メモリコントローラ２００の消費電力も減らすことができ、より短時間かつ低消費電力でパトロール処理を実行できる。
【０１４３】
また、第１の実施形態によれば、メモリコントローラ２００は、第２のＶｔｈトラッキングにより最適な読み出し電圧を取得できない場合には、メモリコントローラ２００が第１のＶｔｈトラッキングやシフトリードにより取得した読み出し電圧と予め定められた読み出し電圧との差分に基づいてリフレッシュするかを決定する。この場合も、メモリコントローラ２００は、誤り訂正処理を実行すること無くリフレッシュするかを決定するため、パトロール処理の際のメモリコントローラ２００の処理負荷を減らすことができ、より短時間かつ低消費電力でパトロール処理を実行できる。
【０１４４】
（第２の実施形態）
図１７は、第２の実施形態に係るメモリシステムのホスト装置２からの読み出し要求に対する不揮発性メモリ１００からのデータの読み出し処理のフローチャートである。図１７において、図１３の構成と同一部分は同一符号で示す。尚、本実施形態の説明において、第１実施形態と同様の構成および動作については、重複する説明を省略する。また、本実施形態におけるメモリシステム１の外観及び構成等は、図１乃至図１２と同様とする。
【０１４５】
図１７のフローチャートは、ホスト装置２から読み出し要求を受け、要求のあったデータを不揮発性メモリ１００から読み出し、読み出し結果をホスト装置２へ送信する処理を示している。
【０１４６】
ホスト装置２からの読み出し要求では、ホスト装置２がメモリシステム１に対して読み出したいデータの量やデータの読み出し位置を示したアドレス情報等が指定されている。メモリシステム１は、読み出し要求の受信が可能か否かを判断し、読み出し要求の受信が可能である場合に、ホスト装置２から読み出し要求を受信してもよい。図１７のフローチャートではこの過程を省略し、読み出し要求の受信が可能であるとして、メモリシステム１のメモリコントローラ２００がホスト装置２からホストＩ／Ｆ２１０経由で読み出し要求を受信した段階から説明を行う。
【０１４７】
メモリコントローラ２００がホスト装置３００から読み出しの指示を受け取ると、図１７のフローが開始する。メモリコントローラ２００は、ホストＩ／Ｆ２１０経由でホスト装置２から読み出し要求を受ける（ステップ１７０１）と、制御部２２０は、読み出し要求の対象となるデータの格納場所を特定するためにアドレス変換テーブルを使用して読み出し要求で指定されたアドレスである論理アドレスを物理アドレスに変換し、ホスト装置２からの読み出し要求を処理するためにどのメモリチップ１１０のどの物理アドレスへアクセスすればよいかを解決する（ステップ１７０２）。
【０１４８】
本実施形態では、ホスト装置２からの読み出し要求で指定された論理アドレスに対するアクセス先のメモリチップ１１０がメモリチップ１１０−１であるとして説明する。
【０１４９】
制御部２２０は、メモリチップ１１０−１からのデータ読み出しをメモリＩ／Ｆ２５０へ指示し、メモリＩ／Ｆ２５０経由でメモリチップ１１０−１からデータを読み出す（ステップ１７０３）。
【０１５０】
ここでの読み出しは、通常の読み出しであり、メモリコントローラ２００は、第１パラメータ情報２２０２の動作パラメータを使用してメモリＩ／Ｆ２５０経由で、メモリチップ１１０−１からデータを読み出す。メモリチップ１１０−１は、入出力回路１１２にて読み出し指示を受け取ると、シーケンサ１１４が、電圧生成回路１１５、ドライバ１１６、センスアンプ１１７、カラムデコーダ１１８、およびロウデコーダ１２０を制御して、読み出し指示にて指定されたページからデータを読み出し、読み出されたデータは、入出力回路１１２によりメモリＩ／Ｆ２５０へ出力される。メモリコントローラ２００は、メモリＩ／Ｆ２５０経由で読み出されたデータを受け取る。
【０１５１】
次に、メモリコントローラ２００は、メモリチップ１１０−１から読み出したデータを復号する（ステップ１７０４）。制御部２２０は、メモリチップ１１０−１からデータを読み出したデータの復号を復号回路２４２に対して指示し、復号回路２４２は制御部２２０から指示されたデータを復号する。復号回路２４２は、復号結果を制御部２２０に対して出力する。すなわち、復号時に誤り訂正に成功した場合は復号されたデータを、復号時に誤り訂正に失敗した場合は誤り訂正失敗を制御部２２０に通知する。
【０１５２】
その後、制御部２２０は、誤り訂正に成功の場合（ステップ１７０５：Ｙｅｓ）、復号されたデータであるユーザデータをホストＩ／Ｆ２１０経由でホスト装置２へ送信する（ステップ１７０６）。
【０１５３】
制御部２２０は、誤り訂正に成功しなかった場合（ステップ１７０５：Ｎｏ）、第２のＶｔｈトラッキングを実行する。すなわち、制御部２２０は、誤り訂正に成功しなかった場合（ステップ１７０５：Ｎｏ）、メモリチップ１１０−１からパトロール対象のセルユニットＣＵに対するＶｔｈトラッキング結果（ＶＤ）をメモリＩ／Ｆ２５０経由で取得する（ステップ１７０７）。ステップ１７０７での処理は、第１実施形態におけるＶｔｈトラッキングのメモリチップ１１０−１への要求および当該要求に対するメモリチップ１１０−１からのＶｔｈトラッキング結果（ＶＤ）の取得（ステップ１３０１）と同じである。
【０１５４】
制御部２２０は、メモリＩ／Ｆ２５０経由でメモリチップ１１０−１から取得したＶｔｈトラッキング結果（ＶＤ）に基づいて、メモリチップ１１０−１がＶｔｈトラッキングに成功したか、つまり、第２のＶｔｈトラッキングが成功したか、を判定する（ステップ１７０８）。ステップ１７０７での処理は、第１実施形態での、メモリチップ１１０−１がＶｔｈトラッキングに成功したか、つまり、第２のＶｔｈトラッキングが成功したか、の判定処理（ステップ１３０２）と同じである。
【０１５５】
制御部２２０は、メモリチップ１１０−１がＶｔｈトラッキングに成功したと判定する場合（ステップ１７０８：Ｙｅｓ）、メモリチップ１１０−１から出力されたＶｔｈトラッキング結果から読み出し電圧を取得し、取得した読み出し電圧を使用してメモリチップ１１０−１からデータを読み出す（ステップ１７０９）。
【０１５６】
次に、メモリコントローラ２００は、ステップ１７０９にてメモリチップ１１０−１から読み出したデータを復号する（ステップ１７１０）。制御部２２０は、ステップ１７０９にてメモリチップ１１０−１からデータを読み出したデータの復号を復号回路２４２に対して指示し、復号回路２４２は制御部２２０から指示されたデータを復号する。復号回路２４２は、復号結果を制御部２２０に対して出力する。すなわち、復号時に誤り訂正に成功した場合は復号されたデータを、復号時に誤り訂正に失敗した場合は誤り訂正失敗を制御部２２０に通知する。
【０１５７】
その後、制御部２２０は、誤り訂正に成功の場合（ステップ１７１１：Ｙｅｓ）、復号されたデータであるユーザデータをホストＩ／Ｆ２１０経由でホスト装置２へ送信する（ステップ１７０６）。
【０１５８】
制御部２２０は、誤り訂正に成功しなかった場合（ステップ１７１１：Ｎｏ）、第１のＶｔｈトラッキングを実行する（ステップ１７１２）。
【０１５９】
制御部２２０は、第１のＶｔｈトラッキングで得られた読み出し電圧を使用して、メモリチップ１１０−１からのデータ読み出しをメモリＩ／Ｆ２５０へ指示し、メモリＩ／Ｆ２５０経由でメモリチップ１１０−１からデータを読み出す（ステップ１７１３）。
【０１６０】
次に、メモリコントローラ２００は、メモリチップ１１０−１から読み出したデータを復号する（ステップ１７１４）。制御部２２０は、メモリチップ１１０−１からデータを読み出したデータの復号を復号回路２４２に対して指示し、復号回路２４２は制御部２２０から指示されたデータを復号する。復号回路２４２は、復号結果を制御部２２０に対して出力する。すなわち、復号時に誤り訂正に成功した場合は復号されたデータを、復号時に誤り訂正に失敗した場合は誤り訂正失敗を制御部２２０に通知する。
【０１６１】
その後、制御部２２０は、誤り訂正に成功の場合は復号されたデータであるユーザデータを、復号回路２４２から誤り訂正失敗が通知された場合は読み出しエラーを、ホストＩ／Ｆ２１０経由でホスト装置２へ送信する（ステップ１７０６）。
【０１６２】
本実施形態に係るメモリシステムでは、制御部２２０が、ステップ１７１２およびステップ１７１３の処理にて、第１のＶｔｈトラッキングを実行し、第１のＶｔｈトラッキングで得られた読み出し電圧を使用してメモリチップ１１０−１からデータを読み出しているが、代わりに、シフトリードを使用してメモリチップ１１０−１からデータを読み出すようにしてもよい。
【０１６３】
上述した第２の実施形態によれば、メモリコントローラ２００は、まず通常の読み出しを行い、通常の読み出しで得られたデータの誤り訂正に成功しなかった場合、第２のＶｔｈトラッキングを実行し、第２のＶｔｈトラッキングで取得した読み出し電圧を使用してメモリチップ１１０からデータを読み出す。
【０１６４】
このため、第２の実施形態では、メモリコントローラ２００が通常の読み出しで得られたデータの誤り訂正が成功しなかった場合に、メモリコントローラ２００が第１のＶｔｈトラッキングやシフトリードをすること無く、メモリチップ１１０により実行されたＶｔｈトラッキングによる結果を使用してデータ読み出しを行うことができ、メモリコントローラ２００の処理負荷を減らすことができ、その結果メモリシステム１の性能が向上する。読み出し処理におけるメモリコントローラ２００の処理負荷が減ることにより、メモリコントローラ２００の消費電力も減らすことができ、より低消費電力で読み出し処理を実行できる。すなわち、第２の実施形態によれば、より少ない処理で、高い精度の読み出しを実現でき、低消費電力を図ることができる。
【０１６５】
（第３の実施形態）
図１８は、第３の実施形態に係るメモリシステムのパトロール処理のフローチャートである。図１８において、図１３の構成と同一部分は同一符号で示す。尚、本実施形態の説明において、第１実施形態と同様の構成および動作については、重複する説明を省略する。また、本実施形態におけるメモリシステム１の外観及び構成等は、図１乃至図１２と同様とする。
【０１６６】
図１８のフローチャートでは、図１３のフローチャートと同様に、メモリコントローラ２００が不揮発性メモリ１００の所定のセルユニットＣＵをパトロールすることに決定した段階から説明を行う。
【０１６７】
本実施形態では、パトロール対象となるセルユニットＣＵを含むメモリチップ１１０がメモリチップ１１０−１であるとして説明する。
【０１６８】
第３の実施形態に係るメモリシステムが、第１の実施形態に係るメモリシステムと異なる点は、メモリコントローラ２００が、アクセス先のセルユニットＣＵの消耗度が所定の消耗度以上の場合は、第２のＶｔｈトラッキングを実行させず、第１のＶｔｈトラッキングまたはシフトリードにより読み出し電圧を特定することにある。
【０１６９】
制御部２２０は、メモリチップ１１０−１からパトロール対象のセルユニットＣＵに対する消耗度を算出し（ステップ１８０１）、算出された消耗度が所定の消耗度より小さいか判定する（ステップ１８０２）。
【０１７０】
制御部２２０が消耗度を算出するにあたり、消耗度は、アクセス先のセルユニットＣＵの読み出し回数、書き込み回数、書き込み世代番号、アクセス先のセルユニットＣＵが含まれる消去回数等であってもよいし、これらを組み合わせた演算式により算出されてもよい。
【０１７１】
制御部２２０は、第２パラメータ情報２２０３を参照することにより、アクセス先のセルユニットＣＵの読み出し回数、書き込み回数、書き込み世代番号、アクセス先のセルユニットＣＵが含まれる消去回数等を取得することができる。
【０１７２】
制御部２２０は、例えば、アクセス先のセルユニットＣＵの読み出し回数が所定の読み出し回数より小さい場合や、アクセス先のセルユニットＣＵの書き込み回数が所定の読み出し回数より小さい場合や、アクセス先のセルユニットＣＵの書き込み世代番号が所定の番号より小さい場合や、アクセス先のセルユニットＣＵが含まれる消去回数が所定の消去回数より小さい場合に、算出された消耗度が所定の消耗度より小さいと判定するが、判定の方法はこれに限定されない。制御部２２０は、消耗度を演算式で算出し、算出された消耗度と所定の消耗度と比較することにより判定してもよい。
【０１７３】
また、制御部２２０は、アクセス先のセルユニットＣＵの読み出し回数、書き込み回数、アクセス先のセルユニットＣＵが含まれる消去回数以外のデータを使用してアクセス先のセルユニットＣＵの消耗度を判断してもよい。制御部２２０は、例えば、アクセス先であるメモリチップ１１０−１に含まれるブロック全ての消去回数を合計した値でアクセス先のセルユニットＣＵの消耗度を算出し、算出された消耗度と所定の消耗度と比較することによりステップ１８０２の判定を実行してもよい。
【０１７４】
制御部２２０は、算出された消耗度が所定の消耗度より小さいと判定する場合（ステップ１８０２：Ｙｅｓ）、メモリチップ１１０−１からパトロール対象のセルユニットＣＵに対するＶｔｈトラッキング結果（ＶＤ）をメモリＩ／Ｆ２５０経由で取得し（ステップ１３０１）、以降は、第１の実施形態に係るメモリシステムと同様の処理を実行する。
【０１７５】
制御部２２０は、算出された消耗度が所定の消耗度以上と判定する場合（ステップ１８０２：Ｎｏ）、パトロール対象のセルユニットＣＵに対して第１のＶｔｈトラッキングまたはシフトリードを行うことにより最適な読み出し電圧を取得し（ステップ１３０６）、第１のＶｔｈトラッキングまたはシフトリードにより取得した読み出し電圧と予め定められた読み出し電圧との差分を計算し（ステップ１３０７）、その差分が所定の第２の値未満か判定し（ステップ１３０８）、差分が所定の第２の値以上の場合（ステップ１３０８：Ｎｏ）はパトロール対象のセルユニットＣＵが含まれるブロックをリフレッシュする（ステップ１３０９）。
【０１７６】
なお、本実施形態におけるメモリシステムのメモリコントローラ２００では、算出された消耗度が所定の消耗度以上と判定する場合（ステップ１８０２：Ｎｏ）、または、メモリチップ１１０−１がＶｔｈトラッキングに成功したと判定しない場合（ステップ１３０２：Ｎｏ）において、第１のＶｔｈトラッキングまたはシフトリードにより取得した読み出し電圧と予め定められた読み出し電圧との差分を所定の第２の値と比較しているが、比較対象となる所定の第２の値は、各々の場合で別々の値としてもよい。
【０１７７】
上述した第３の実施形態によれば、メモリシステム１において、第１の実施形態と同様に、メモリコントローラ２００は、パトロール処理の際、メモリコントローラ２００が第１のＶｔｈトラッキングやシフトリードをすること無く、第２のＶｔｈトラッキングによる結果を使用してデータ読み出しを行うことができ、メモリコントローラ２００の処理負荷を減らすことができる。
【０１７８】
また、第１の実施形態と同様に、誤り訂正処理を実行すること無くリフレッシュするかを決定するため、パトロール処理の際のメモリコントローラ２００の処理負荷を減らすことができる。パトロール処理の際のメモリコントローラ２００の処理負荷を減らすことができる結果、メモリシステム１の性能が向上する。
【０１７９】
また、第１の実施形態と同様に、パトロール処理の際のメモリコントローラ２００の処理負荷が減ることにより、パトロール処理にかかる時間を短くでき、メモリコントローラ２００の消費電力も減らすことができ、より短時間かつ低消費電力でパトロール処理を実行できる。
【０１８０】
また、第３の実施形態によれば、メモリチップ１１０の疲弊がある程度進んでいる場合には、第２のＶｔｈトラッキングを実行しない。メモリチップ１１０の疲弊がある程度進んでいる場合には、第２のＶｔｈトラッキングが失敗する可能性、すなわち、メモリチップ１１０がＶｔｈトラッキングに失敗する可能性が高くなるため、メモリチップ１１０の疲弊がある程度進んでいる場合には、メモリコントローラ２００は、第２のＶｔｈトラッキングをスキップすることで、より効率よくパトロール処理を実行することができる。
【０１８１】
なお、本発明は、上述の実施形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【０１８２】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これらの実施形態は、その他のさまざまな形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これらの実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【０１８３】
１・・・メモリシステム
２・・・ホスト装置
３・・・システム
４・・・コネクタ
１００・・・不揮発性メモリ
１１０・・・メモリチップ
２００・・・メモリコントローラ
２１０・・・ホストＩ／Ｆ
２２０・・・制御部
２３０・・・データバッファ
２４０・・・符号化部／復号部
２５０・・・メモリＩ／Ｆ
２６０・・・内部バス
４００・・・基板
【図１】
2020102295.tif 000003
【図２】
2020102295.tif 000004
【図３】
2020102295.tif 000005
【図４】
2020102295.tif 000006
【図５】
2020102295.tif 000007
【図６】
2020102295.tif 000008
【図７】
2020102295.tif 000009
【図８】
2020102295.tif 000010
【図９】
2020102295.tif 000011
【図１０】
2020102295.tif 000012
【図１１】
2020102295.tif 000013
【図１２】
2020102295.tif 000014
【図１３】
2020102295.tif 000015
【図１４】
2020102295.tif 000016
【図１５】
2020102295.tif 000017
【図１６】
2020102295.tif 000018
【図１７】
2020102295.tif 000019
【図１８】
2020102295.tif 000020