(57)【要約】【課題】  読み出し性能を向上する。【解決手段】  実施形態のメモリシステムは、データを格納するメモリセルを備えた不揮発性半導体メモリ３と、不揮発性半導体メモリ３の動作を制御し、不揮発性半導体メモリ３からデータを読み出すコントローラ５とを含む。コントローラ５は、書き込み動作が終了した直後から始まる第１期間と、前記第１期間に続く第２期間とに分けて、不揮発性半導体メモリ３からデータを読み出すための読み出し電圧を決定する。コントローラ５は、第１期間の読み出し動作において、書き込み動作が終了してからの経過時間に応じて読み出し電圧を変更し、第２期間の読み出し動作において、経過時間に関わらず、読み出し電圧を決定する。【選択図】  図１１
2019149219.tif 000002
【特許請求の範囲】
【請求項１】
データを格納するメモリセルを備えた不揮発性半導体メモリと、
前記不揮発性半導体メモリの動作を制御し、前記不揮発性半導体メモリからデータを読み出すコントローラと
を具備し、
前記コントローラは、
書き込み動作が終了した直後から始まる第１期間と、前記第１期間に続く第２期間とに分けて、前記不揮発性半導体メモリからデータを読み出すための読み出し電圧を決定し、
前記第１期間の読み出し動作において、前記書き込み動作が終了してからの経過時間に応じて読み出し電圧を変更し、
前記第２期間の読み出し動作において、経過時間に関わらず、読み出し電圧を決定する
メモリシステム。
【請求項２】
前記第１期間と前記第２期間とで、メモリセルの閾値電圧が低下する速度が異なり、
前記第１期間における前記速度は、第１閾値以上であり、
前記第２期間における前記速度は、前記第１閾値より小さい
請求項１に記載のメモリシステム。
【請求項３】
第１テーブルを格納する第１メモリをさらに具備し、
前記第１テーブルは、前記第１期間用の複数の読み出し電圧を格納する第１領域を含み、
前記第１領域は、複数の経過時間と前記複数の読み出し電圧との対応関係を示す情報を格納し、
前記コントローラは、前記第１テーブルを用いて、前記第１期間における読み出し電圧を決定する
請求項１又は２に記載のメモリシステム。
【請求項４】
前記第１テーブルは、前記第２期間用の１つの読み出し電圧を格納する第２領域をさらに含み、
前記コントローラは、前記第１テーブルの前記第２領域を用いて、前記第２期間における読み出し電圧を決定する
請求項３に記載のメモリシステム。
【請求項５】
前記第１テーブルは、メモリセルの消去回数をそれぞれが示す複数の第１情報を格納し、
前記第１領域は、前記複数の第１情報の各々に対応して設けられ、
前記第２領域は、前記複数の第１情報の各々に対応して設けられる
請求項４に記載のメモリシステム。
【請求項６】
前記第１テーブルは、温度をそれぞれが示す複数の第２情報を格納し、
前記第１領域は、前記複数の第２情報の各々に対応して設けられ、
前記第２領域は、前記複数の第２情報の各々に対応して設けられる
請求項４に記載のメモリシステム。
【請求項７】
前記第１メモリは、第２テーブルをさらに格納し、
前記第２テーブルは、読み出し動作ごとに、エラー訂正に成功した読み出し電圧を履歴値として格納し、
前記コントローラは、前記第２期間の２回目以降の読み出し動作において、前記第２テーブルを使用する
請求項３乃至６のいずれかに記載のメモリシステム。
【請求項８】
前記コントローラは、前記第２期間の１回目の読み出し動作において、前記第１テーブルを使用する
請求項７に記載のメモリシステム。
【請求項９】
前記第１期間と前記第２期間との境界時刻は、メモリセルの消去回数に応じて変更される
請求項１乃至８のいずれかに記載のメモリシステム。
【請求項１０】
前記第１期間と前記第２期間との境界時刻は、温度に応じて変更される
請求項１乃至８のいずれかに記載のメモリシステム。
【請求項１１】
前記コントローラは、前記読み出し電圧を設定するための第１コマンドを前記不揮発性半導体メモリに送信し、
前記不揮発性半導体メモリは、前記第１コマンドに応答して、読み出し電圧を変更する
請求項１乃至１０のいずれかに記載のメモリシステム。
【請求項１２】
前記経過時間を計測するタイマーをさらに具備し、
前記コントローラは、前記タイマーの計測結果を用いて、前記読み出し動作を制御する
請求項１乃至１１のいずれかに記載のメモリシステム。
【請求項１３】
前記メモリセルは、閾値電圧に関する複数のステートの１つを取ることが可能であり、
前記読み出し電圧は、前記閾値電圧に関する複数のステートごとに設定される
請求項１乃至１２のいずれかに記載のメモリシステム。
【請求項１４】
前記第１期間において、読み出し電圧の履歴値は、更新されない
請求項１乃至１３のいずれかに記載のメモリシステム。
【請求項１５】
前記第１期間内の読み出し電圧は、リードディスターブストレスによる閾値ずれが考慮されない
請求項１乃至１４のいずれかに記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、メモリシステムに関する。
【背景技術】
【０００２】
半導体記憶装置の一種として、ＮＡＮＤ型フラッシュメモリが知られている。また、３次元に積層された複数のメモリセルを備えたＮＡＮＤ型フラッシュメモリが知られている。
【０００３】
ＮＡＮＤ型フラッシュメモリでは、プログラム後のショートタームにおいて、閾値電圧分布が大きく負側にシフト（ダウンシフト）するという現象（ＳＴＤＲ：short term data retention）が発生する。このため、メモリセルアレイからデータを読み出すための読み出し電圧を閾値電圧分布の変化に追随させることが困難であり、すなわち、最適な読み出し電圧を設定することが困難である。結果として、ＮＡＮＤ型フラッシュメモリに対するリトライリードの回数が増え、読み出し性能が劣化してしまう。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許第９，７６７，９１３号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
実施形態は、読み出し性能を向上することが可能なメモリシステムを提供する。
【課題を解決するための手段】
【０００６】
実施形態に係るメモリシステムは、データを格納するメモリセルを備えた不揮発性半導体メモリと、前記不揮発性半導体メモリの動作を制御し、前記不揮発性半導体メモリからデータを読み出すコントローラとを具備する。前記コントローラは、書き込み動作が終了した直後から始まる第１期間と、前記第１期間に続く第２期間とに分けて、前記不揮発性半導体メモリからデータを読み出すための読み出し電圧を決定し、前記第１期間の読み出し動作において、前記書き込み動作が終了してからの経過時間に応じて読み出し電圧を変更し、前記第２期間の読み出し動作において、経過時間に関わらず、読み出し電圧を決定する。
【図面の簡単な説明】
【０００７】
【図１】第１実施形態に係るメモリシステムのブロック図。
【図２】図１に示したＮＡＮＤ型フラッシュメモリのブロック図。
【図３】図２に示したメモリセルアレイに含まれる１つのブロックＢＬＫの回路図。
【図４】ブロックＢＬＫの一部領域の断面図。
【図５】メモリセルトランジスタの閾値電圧分布の一例を示す模式図。
【図６】図２に示したセンスアンプユニット及びデータレジスタのブロック図。
【図７】閾値電圧分布の変動の様子を説明する模式図。
【図８】経過時間とともに最適な読み出し電圧が変動する様子を説明するグラフ。
【図９Ａ】第１実施形態に係るメモリシステムの読み出しシーケンスを説明するフローチャート。
【図９Ｂ】第１実施形態に係るメモリシステムの読み出しシーケンスを説明するフローチャート。
【図９Ｃ】第１実施形態に係るメモリシステムの読み出しシーケンスを説明するフローチャート。
【図９Ｄ】第１実施形態に係るメモリシステムの読み出しシーケンスを説明するフローチャート。
【図１０】境界時刻Ｔｄ用テーブルの一例を説明する図。
【図１１】設定値テーブルに格納される複数の読み出し電圧と経過時間との関係の一例を説明する模式図。
【図１２】設定値テーブルの一例を説明する図。
【図１３】履歴値テーブルの一例を説明する図。
【図１４】履歴値テーブルの管理動作を説明するフローチャート。
【図１５】メモリシステムにおける読み出し電圧の設定動作を説明するタイミングチャート。
【図１６】メモリシステムの読み出し動作を説明するタイミングチャート。
【図１７】Ｖｔｈトラッキング動作を説明する模式図。
【図１８Ａ】第２実施形態に係るメモリシステムの読み出しシーケンスを説明するフローチャート。
【図１８Ｂ】第２実施形態に係るメモリシステムの読み出しシーケンスを説明するフローチャート。
【発明を実施するための形態】
【０００８】
以下、実施形態について図面を参照して説明する。以下に示す幾つかの実施形態は、本発明の技術思想を具体化するための装置および方法を例示したものであって、構成部品の形状、構造、配置等によって、本発明の技術思想が特定されるものではない。各機能ブロックは、ハードウェア及びソフトウェアのいずれかまたは両者を組み合わせたものとして実現することができる。各機能ブロックが以下の例のように区別されていることは必須ではない。例えば、一部の機能が例示の機能ブロックとは別の機能ブロックによって実行されてもよい。さらに、例示の機能ブロックがさらに細かい機能サブブロックに分割されていてもよい。なお、以下の説明において、同一の機能及び構成を有する要素については同一符号を付し、重複説明は必要な場合にのみ行う。
【０００９】
［１］  第１実施形態
［１−１］  メモリシステムの構成
図１は、第１実施形態に係るメモリシステム２のブロック図である。メモリシステム２は、ホスト装置１と接続可能である。ホスト装置１は、サーバ、パーソナルコンピュータのような情報処理装置である。
【００１０】
メモリシステム２は、ホスト装置１が搭載されたマザーボード上にメモリシステム２を構成する複数のチップを実装して構成してもよいし、メモリシステム２を１つのモジュールで実現するシステムＬＳＩ（large-scale integrated circuit）、又はＳｏＣ（system on a chip）として構成してもよい。メモリシステム２は、ＳＳＤ（solid state drive）、ＳＤＴＭカードのようなメモリカード、及びｅＭＭＣ（embedded multimedia card）などで構成することができる。典型的には、メモリシステム２は、ＳＳＤで構成される。
【００１１】
図１に示すように、メモリシステム２は、複数のＮＡＮＤ型フラッシュメモリ（不揮発性半導体メモリ）３、ＤＲＡＭ（dynamic random access memory）４、メモリコントローラ５、及び温度センサ６などを備える。
【００１２】
複数のＮＡＮＤ型フラッシュメモリ３の各々は、複数のメモリセルを備え、データを不揮発に記憶する。ＮＡＮＤ型フラッシュメモリ３の数は、１個であってもよい。ＮＡＮＤ型フラッシュメモリ３の具体的な構成については後述する。
【００１３】
ＤＲＡＭ４は、揮発性メモリの一種である。ＤＲＡＭ４は、複数のテーブル４Ａを格納する。複数のテーブル４Ａは、ＮＡＮＤ型フラッシュメモリ３に不揮発に記憶されかつＮＡＮＤ型フラッシュメモリ３からロードされたテーブルと、各種の動作中にメモリコントローラ５が作成したテーブルとを含む。また、ＤＲＡＭ４の一部領域は、ＮＡＮＤ型フラッシュメモリ３に書き込むべきデータを一時的に保持するためのライトバッファとして用いられ、また、ＮＡＮＤ型フラッシュメモリ３から読み出されたデータを一時的に保持するためのリードバッファとして用いられる。
【００１４】
温度センサ６は、メモリシステム２の温度、又はメモリシステム２に含まれる素子の温度を検知する。温度センサ６による検知結果は、メモリコントローラ５に送られる。温度センサ６は、ＮＡＮＤ型フラッシュメモリ３内に設けられてもよい。
【００１５】
メモリコントローラ５は、例えばホスト装置１からの命令に応答して、ＮＡＮＤ型フラッシュメモリ３に対して書き込み（プログラムともいう）、読み出し、及び消去などを命令する。また、メモリコントローラ５は、ＮＡＮＤ型フラッシュメモリ３のメモリ空間を管理する。メモリコントローラ５は、ホストインターフェース回路（ホストＩ／Ｆ）１０、プロセッサ１１、ＳＲＡＭ（static random access memory）１２、ＥＣＣ（error checking and correcting）回路１３、ＮＡＮＤインターフェース回路（ＮＡＮＤ Ｉ／Ｆ）１４、ＤＲＡＭインターフェース回路（ＤＲＡＭ Ｉ／Ｆ）１５、及びタイマー１６などを備える。これらのモジュールは、バス１７を介して互いに接続される。メモリコントローラ５は、ＳｏＣ（system on a chip）で構成してもよい。
【００１６】
ホストインターフェース回路１０は、ホストバスを介してホスト装置１に接続される。ホストインターフェース回路１０は、所定のプロトコルに従って、ホスト装置１との間でインターフェース処理を行う。また、ホストインターフェース回路１０は、ホスト装置１との間で、命令、アドレス、及びデータの送受信を行う。ホストインターフェースとしては、ＳＡＴＡ（Serial Advanced Technology Attachment）、ＰＣＩｅ（Peripheral Component Interconnect Express）ＴＭ、ＳＡＳ（Serial Attached SCSI）、及びＮＶＭｅ（Non-Volatile Memory Express）ＴＭなどが挙げられる。
【００１７】
プロセッサ１１は、例えばＣＰＵ（central processing unit)から構成される。プロセッサ１１は、メモリコントローラ５全体の動作を制御する。例えば、プロセッサ１１は、ホスト装置１から書き込み命令を受けた場合に、それに応答して、ＮＡＮＤインターフェースに基づく書き込み命令をＮＡＮＤ型フラッシュメモリ３に発行する。読み出し及び消去の場合も同様である。また、プロセッサ１１は、ウェアレベリング、及びガベージコレクションなど、ＮＡＮＤ型フラッシュメモリ３を管理するための様々な処理を実行する。
【００１８】
ＳＲＡＭ１２は、揮発性メモリの一種である。ＳＲＡＭ１２は、プロセッサ１１の作業領域として使用され、ＮＡＮＤ型フラッシュメモリ３からロードされたファームウェアなどを格納する。
【００１９】
ＥＣＣ回路１３は、データの書き込み時には、書き込みデータに対してエラー訂正符号を生成し、このエラー訂正符号を書き込みデータに付加してＮＡＮＤインターフェース回路１４に送る。また、ＥＣＣ回路１３は、データの読み出し時には、読み出しデータに対して、読み出しデータに含まれるエラー訂正符号を用いてエラー検出及び／又はエラー訂正を行う。
【００２０】
ＮＡＮＤインターフェース回路１４は、ＮＡＮＤバスを介してＮＡＮＤ型フラッシュメモリ３に接続される。ＮＡＮＤインターフェース回路１４は、所定のプロトコルに従って、ＮＡＮＤ型フラッシュメモリ３との間でインターフェース処理を行う。また、ＮＡＮＤインターフェース回路１４は、ＮＡＮＤ型フラッシュメモリ３との間で命令、アドレス、及びデータの送受信を行う。
【００２１】
ＤＲＡＭインターフェース回路１５は、ＤＲＡＭバスを介してＤＲＡＭ４に接続される。ＤＲＡＭインターフェース回路１５は、所定のプロトコルに従って、ＤＲＡＭ４との間でインターフェース処理を行う。
【００２２】
タイマー１６は、時刻を計測する。タイマー１６による計測結果は、プロセッサ１１に送られる。プロセッサ１１は、タイマー１６の計測結果を用いて、現在時刻及びタイムスタンプなどを管理することができる。
【００２３】
［１−１−１］  ＮＡＮＤ型フラッシュメモリ３の構成
図２は、図１に示したＮＡＮＤ型フラッシュメモリ３のブロック図である。
【００２４】
ＮＡＮＤ型フラッシュメモリ３は、メモリセルアレイ２０、入出力回路２１、ロジック制御回路２２、レジスタ２３、シーケンサ（制御回路）２４、電圧生成回路２５、ロウデコーダ２６、カラムデコーダ２７、センスアンプユニット２８、及びデータレジスタ（データキャッシュ）２９を備える。
【００２５】
メモリセルアレイ２０は、ｊ個のブロックＢＬＫ０〜ＢＬＫ（ｊ−１）を備える。ｊは、１以上の整数である。複数のブロックＢＬＫの各々は、複数のメモリセルトランジスタを備える。メモリセルトランジスタは、電気的に書き換え可能なメモリセルから構成される。メモリセルアレイ２０には、メモリセルトランジスタに電圧を印加するために、複数のビット線、複数のワード線、及びソース線などが配設される。ブロックＢＬＫの具体的な構成については後述する。
【００２６】
入出力回路２１及びロジック制御回路２２は、ＮＡＮＤバスを介して、メモリコントローラ５に接続される。入出力回路２１は、メモリコントローラ５との間でＮＡＮＤバスを介して、信号ＤＱ（例えばＤＱ０〜ＤＱ７）を送受信する。
【００２７】
ロジック制御回路２２は、メモリコントローラ５からＮＡＮＤバスを介して、外部制御信号（例えば、チップイネーブル信号ＣＥｎ、コマンドラッチイネーブル信号ＣＬＥ、アドレスラッチイネーブル信号ＡＬＥ、書き込みイネーブル信号ＷＥｎ、読み出しイネーブル信号ＲＥｎ、及びライトプロテクト信号ＷＰｎ）を受信する。信号名に付記された“ｎ”は、アクティブ・ローを示す。また、ロジック制御回路２２は、ＮＡＮＤバスを介して、メモリコントローラ５にレディー／ビジー信号ＲＢｎを送信する。
【００２８】
信号ＣＥｎは、ＮＡＮＤ型フラッシュメモリ３の選択を可能にし、当該ＮＡＮＤ型フラッシュメモリ３を選択する際にアサートされる。信号ＣＬＥは、信号ＤＱとして送信されるコマンドをコマンドレジスタにラッチすることを可能にする。信号ＡＬＥは、信号ＤＱとして送信されるアドレスをアドレスレジスタにラッチすることを可能にする。信号ＷＥｎは、信号ＤＱとしてＮＡＮＤ型フラッシュメモリ３にデータを入力することを可能にする。信号ＲＥｎは、信号ＤＱとしてＮＡＮＤ型フラッシュメモリ３からデータを出力することを可能する。信号ＷＰｎは、書き込み及び消去を禁止する際にアサートされる。信号ＲＢｎは、ＮＡＮＤ型フラッシュメモリ３がレディー状態（外部からの命令を受け付けることが可能である状態）であるか、ビジー状態（外部からの命令を受け付けることができない状態）であるかを示す。メモリコントローラ５は、ＮＡＮＤ型フラッシュメモリ３から信号ＲＢｎを受けることで、ＮＡＮＤ型フラッシュメモリ３の状態を知ることができる。
【００２９】
レジスタ２３は、コマンドレジスタ、アドレスレジスタ、及びステータスレジスタなどを備える。コマンドレジスタは、コマンドを一時的に保持する。アドレスレジスタは、アドレスを一時的に保持する。ステータスレジスタは、ＮＡＮＤ型フラッシュメモリ３の動作に必要なデータを一時的に保持する。レジスタ２３は、例えばＳＲＡＭから構成される。
【００３０】
制御回路２４は、レジスタ２３からコマンドを受け、このコマンドに基づくシーケンスに従ってＮＡＮＤ型フラッシュメモリ３を統括的に制御する。
【００３１】
電圧生成回路２５は、ＮＡＮＤ型フラッシュメモリ３の外部から電源電圧を受け、この電源電圧を用いて、書き込み動作、読み出し動作、及び消去動作に必要な複数の電圧を生成する。電圧生成回路２５は、生成した電圧を、メモリセルアレイ２０、ロウデコーダ２６、及びセンスアンプユニット２８などに供給する。
【００３２】
ロウデコーダ２６は、レジスタ２３からロウアドレスを受け、このロウアドレスをデコードする。ロウデコーダ２６は、デコードされたロウアドレスに基づいて、ワード線などの選択動作を行う。そして、ロウデコーダ２６は、選択されたブロックＢＬＫに、書き込み動作、読み出し動作、及び消去動作に必要な複数の電圧を転送する。
【００３３】
カラムデコーダ２７は、レジスタ２３からカラムアドレスを受け、このカラムアドレスをデコードする。カラムデコーダ２７は、デコードされたカラムアドレスに基づいて、ビット線の選択動作を行う。
【００３４】
センスアンプユニット２８は、データの読み出し時には、メモリセルトランジスタからビット線に読み出されたデータを検知及び増幅する。また、センスアンプユニット２８は、データの書き込み時には、書き込みデータをビット線に転送する。
【００３５】
データレジスタ２９は、データの読み出し時には、センスアンプユニット２８から転送されたデータを一時的に保持し、これをシリアルに入出力回路２１へ転送する。また、データレジスタ２９は、データの書き込み時には、入出力回路２１からシリアルに転送されたデータを一時的に保持し、これをセンスアンプユニット２８へパラレルに転送する。データレジスタ２９は、ＳＲＡＭなどで構成される。
【００３６】
［１−１−２］  ブロックＢＬＫの構成
図３は、メモリセルアレイ２０に含まれる１つのブロックＢＬＫの回路図である。複数のブロックＢＬＫの各々は、複数のストリングユニットＳＵを備える。図３には、４つのストリングユニットＳＵ０〜ＳＵ３を例示している。１つのブロックＢＬＫに含まれるストリングユニットＳＵの数は、任意に設定可能である。
【００３７】
複数のストリングユニットＳＵの各々は、複数のＮＡＮＤストリング（メモリストリング）ＮＳを備える。１つのストリングユニットＳＵに含まれるＮＡＮＤストリングＮＳの数は、任意に設定可能である。
【００３８】
複数のＮＡＮＤストリングＮＳの各々は、複数のメモリセルトランジスタＭＴ、及び２個の選択トランジスタＳＴ１、ＳＴ２を備える。複数のメモリセルトランジスタＭＴは、選択トランジスタＳＴ１のソースと選択トランジスタＳＴ２のドレインとの間に直列接続される。本明細書では、メモリセルトランジスタをメモリセル又はセルと呼ぶ場合もある。図３は、簡略化のために、ＮＡＮＤストリングＮＳが８個のメモリセルトランジスタＭＴ（ＭＴ０〜ＭＴ７）を備える構成例を示しているが、ＮＡＮＤストリングＮＳが備えるメモリセルトランジスタＭＴの数は、実際にはこれよりも多く、また、任意に設定可能である。メモリセルトランジスタＭＴは、制御ゲート電極と電荷蓄積層とを備え、データを不揮発に記憶する。メモリセルトランジスタＭＴは、１ビットのデータ、又は２ビット以上のデータを記憶することが可能である。
【００３９】
ストリングユニットＳＵ０に含まれる複数の選択トランジスタＳＴ１のゲートは、選択ゲート線ＳＧＤ０に共通接続され、同様に、ストリングユニットＳＵ１〜ＳＵ３にはそれぞれ、選択ゲート線ＳＧＤ１〜ＳＧＤ３が接続される。ストリングユニットＳＵ０に含まれる複数の選択トランジスタＳＴ２のゲートは、選択ゲート線ＳＧＳ０に共通接続され、同様に、ストリングユニットＳＵ１〜ＳＵ３にはそれぞれ、選択ゲート線ＳＧＳ１〜ＳＧＳ３が接続される。なお、各ブロックＢＬＫに含まれるストリングユニットＳＵ０〜ＳＵ３には、共通の選択ゲート線ＳＧＳが接続されていてもよい。各ブロックＢＬＫ内にあるメモリセルトランジスタＭＴ０〜ＭＴ７の制御ゲートはそれぞれ、ワード線ＷＬ０〜ＷＬ７に接続される。
【００４０】
各ブロックＢＬＫ内でマトリクス状に配置されたＮＡＮＤストリングＮＳのうち、同一列にある複数のＮＡＮＤストリングＮＳの選択トランジスタＳＴ１のドレインは、ビット線ＢＬ０〜ＢＬ（ｍ−１）のいずれかに共通接続される。“ｍ”は１以上の整数である。さらに、各ビット線ＢＬは、複数のブロックＢＬＫに共通接続され、複数のブロックＢＬＫの各々に含まれる各ストリングユニットＳＵ内にある１つのＮＡＮＤストリングＮＳに接続される。各ブロックＢＬＫに含まれる複数の選択トランジスタＳＴ２のソースは、ソース線ＳＬに共通接続される。ソース線ＳＬは、例えば複数のブロックＢＬＫに共通接続される。
【００４１】
各ブロックＢＬＫ内にある複数のメモリセルトランジスタＭＴのデータは、例えば一括して消去される。データの読み出し及び書き込みは、１つのストリングユニットＳＵに配設された１本のワード線ＷＬに共通接続された複数のメモリセルトランジスタＭＴに対して、一括して行われる。１つのストリングユニットＳＵ内でワード線ＷＬを共有するメモリセルトランジスタＭＴの組を、セルユニットＣＵと呼ぶ。セルユニットＣＵに含まれる複数のメモリセルトランジスタＭＴがそれぞれ記憶する１ビットのデータの集まりをページと呼ぶ。すなわち、セルユニットＣＵに対する書き込み動作及び読み出し動作は、ページを単位として実行される。
【００４２】
なお、ＮＡＮＤストリングＮＳは、ダミーセルトランジスタを備えていてもよい。具体的には、選択トランジスタＳＴ２とメモリセルトランジスタＭＴ０との間には、例えば２個のダミーセルトランジスタＤＴ０、ＤＴ１（図示せず）が直列接続される。メモリセルトランジスタＭＴ７と選択トランジスタＳＴ１との間には、例えば２個のダミーセルトランジスタＤＴ２、ＤＴ３（図示せず）が直列接続される。ダミーセルトランジスタＤＴ０〜ＤＴ３のゲートにはそれぞれ、ダミーワード線ＤＷＬ０〜ＤＷＬ３が接続される。ダミーセルトランジスタの構造は、メモリセルトランジスタと同じである。ダミーセルトランジスタは、データを記憶するためのものではなく、書き込み動作や消去動作中に、メモリセルトランジスタや選択トランジスタが受けるディスターブを緩和する機能を有する。
【００４３】
［１−１−３］  ブロックＢＬＫの積層構造
図４は、ブロックＢＬＫの一部領域の断面図である。図４において、Ｘ方向は、選択ゲート線が延びる方向であり、Ｘ方向と水平面内で交差するＹ方向は、ビット線が延びる方向であり、Ｚ方向は、積層方向である。
【００４４】
半導体層内には、ｐ型ウェル領域（ｐ−ｗｅｌｌ）３０が設けられる。ｐ型ウェル領域３０上には、複数のＮＡＮＤストリングＮＳが設けられる。すなわち、ウェル領域３０上には、選択ゲート線ＳＧＳとして機能する配線層３１、ワード線ＷＬ０〜ＷＬ７として機能する８層の配線層３２、及び選択ゲート線ＳＧＤとして機能する配線層３３がそれぞれ、この順に複数の絶縁層を介して積層される。図面が煩雑になるのを避けるために、積層された複数の配線層の間に設けられた複数の絶縁層のハッチングを省略している。
【００４５】
メモリホール３４は、配線層３１、３２、３３を貫通してウェル領域３０に達する。メモリホール３４内には、ピラー状の半導体層（半導体ピラー）３５が設けられる。半導体ピラー３５の側面には、ゲート絶縁膜３６、電荷蓄積層（絶縁膜）３７、及びブロック絶縁膜３８が順に設けられる。これらによってメモリセルトランジスタＭＴ、及び選択トランジスタＳＴ１、ＳＴ２が構成される。半導体ピラー３５は、ＮＡＮＤストリングＮＳの電流経路として機能し、各トランジスタのチャネルが形成される領域である。半導体ピラー３５の上端は、コンタクトプラグ３９を介して、ビット線ＢＬとして機能する金属配線層４０に接続される。
【００４６】
ウェル領域３０の表面領域には、高濃度のｎ型不純物が導入されたｎ＋型拡散領域４１が設けられる。拡散領域４１上にはコンタクトプラグ４２が設けられ、コンタクトプラグ４２は、ソース線ＳＬとして機能する金属配線層４３に接続される。さらに、ウェル領域３０の表面領域には、高濃度のｐ型不純物が導入されたｐ＋型拡散領域４４が設けられる。拡散領域４４上にはコンタクトプラグ４５が設けられ、コンタクトプラグ４５は、ウェル配線ＣＰＷＥＬＬとして機能する金属配線層４６に接続される。ウェル配線ＣＰＷＥＬＬは、ウェル領域３０を介して半導体ピラー３５に電圧を印加するための配線である。
【００４７】
以上の構成が、図４の紙面の奥行き方向（Ｘ方向）に複数配列されており、Ｘ方向に並ぶ複数のＮＡＮＤストリングＮＳの集合によってストリングユニットＳＵが構成される。
【００４８】
［１−１−４］  メモリセルトランジスタの閾値電圧分布
次に、メモリセルトランジスタＭＴの取り得る閾値電圧Ｖｔｈの分布について説明する。図５は、メモリセルトランジスタＭＴの閾値電圧分布の一例を示す模式図である。メモリセルトランジスタＭＴは、２ビット以上のデータを記憶することが可能である。本実施形態では、メモリセルトランジスタＭＴが３ビットのデータを記憶する場合、いわゆるＴＬＣ（triple level cell）方式を例に説明する。
【００４９】
３ビットのデータは、下位（lower）ビット、中位（middle）ビット、及び上位（upper）ビットにより規定される。メモリセルトランジスタＭＴが３ビットを記憶する場合、メモリセルトランジスタＭＴは、閾値電圧に関する８つの状態（ステート）のうちのいずれかを取り得る。８つの状態（ステート）を、低い方から順に、ステート“Ｅｒ”、“Ａ”、“Ｂ”、“Ｃ”、“Ｄ”、“Ｅ”、“Ｆ”、及び“Ｇ”と呼ぶ。ステート“Ｅｒ”、“Ａ”、“Ｂ”、“Ｃ”、“Ｄ”、“Ｅ”、“Ｆ”、及び“Ｇ”の各々に属する複数のメモリセルトランジスタＭＴは、分布を形成する。
【００５０】
ステート“Ｅｒ”、“Ａ”、“Ｂ”、“Ｃ”、“Ｄ”、“Ｅ”、“Ｆ”、及び“Ｇ”にはそれぞれ、例えば、“１１１”データ、“１１０”データ、“１００”データ、“０００”データ、“０１０”データ、“０１１”データ、“００１”データ、及び“１０１”データが割り当てられる。ビットの順番は、左から、上位ビット、中位ビット、及び下位ビットである。閾値電圧分布とデータとの割り当ては、任意に設定可能である。
【００５１】
読み出し対象のメモリセルトランジスタＭＴに記憶されたデータを読み出すために、当該メモリセルトランジスタＭＴの閾値電圧が属するステートが判定される。ステートの判定のために、読み出し電圧ＶＡ、ＶＢ、ＶＣ、ＶＤ、ＶＥ、ＶＦ、及びＶＧが用いられる。
【００５２】
ステート“Ｅｒ”は、例えば、データが消去された状態（消去状態）に相当する。ステート“Ｅｒ”に属するメモリセルトランジスタＭＴの閾値電圧は、電圧ＶＡより低く、例えば負の値を有する。
【００５３】
ステート“Ａ”〜“Ｇ”は、電荷蓄積層に電荷が注入されてメモリセルトランジスタＭＴにデータが書き込まれた状態に相当し、各ステートに属するメモリセルトランジスタＭＴの閾値電圧は、例えば正の値を有する。ステート“Ａ”に属するメモリセルトランジスタＭＴの閾値電圧は、読み出し電圧ＶＡより高く、かつ読み出し電圧ＶＢ以下である。ステート“Ｂ”に属するメモリセルトランジスタＭＴの閾値電圧は、読み出し電圧ＶＢより高く、かつ読み出し電圧ＶＣ以下である。ステート“Ｃ”に属するメモリセルトランジスタＭＴの閾値電圧は、読み出し電圧ＶＣより高く、かつ読み出し電圧ＶＤ以下である。ステート“Ｄ”に属するメモリセルトランジスタＭＴの閾値電圧は、読み出し電圧ＶＤより高く、かつ読み出し電圧ＶＥ以下である。ステート“Ｅ”に属するメモリセルトランジスタＭＴの閾値電圧は、読み出し電圧ＶＥより高く、かつ読み出し電圧ＶＦ以下である。ステート“Ｆ”に属するメモリセルトランジスタＭＴの閾値電圧は、読み出し電圧ＶＦより高く、かつ読み出し電圧ＶＧ以下である。ステート“Ｇ”に属するメモリセルトランジスタＭＴの閾値電圧は、読み出し電圧ＶＧより高く、電圧ＶＲＥＡＤ以下である。電圧ＶＲＥＡＤは、非読み出し対象のセルユニットＣＵのメモリセルトランジスタＭＴに接続されたワード線ＷＬに印加される電圧であり、いずれのステートにあるメモリセルトランジスタＭＴの閾値電圧よりも高い。つまり、制御ゲートに電圧ＶＲＥＡＤが印加されたメモリセルトランジスタＭＴは、保持するデータに関わらずオン状態になる。
【００５４】
以上のように、各メモリセルトランジスタＭＴは、８種類の状態（ステート）を取ることができる。また、データの書き込み及び読み出しは、１つのセルユニットＣＵ内のページ単位で行われる。メモリセルトランジスタＭＴが３ビットデータを記憶している場合、１つのセルユニットＣＵ内の３つのページにそれぞれ、下位ビット、中位ビット、及び上位ビットが割当てられる。以下の説明では、下位ビットに対応するページを下位（lower）ページ、中位ビットに対応するページを中位（middle）ページ、上位ビットに対応するページを上位（upper）ページと呼ぶ。
【００５５】
［１−１−５］  センスアンプユニット２８及びデータレジスタ２９の構成
図６は、図２に示したセンスアンプユニット２８及びデータレジスタ２９のブロック図である。
【００５６】
センスアンプユニット２８は、ビット線ＢＬ０〜ＢＬ（ｍ−１）に対応したセンスアンプユニットＳＡＵ０〜ＳＡＵ（ｍ−１）を備える。各センスアンプユニットＳＡＵは、センスアンプＳＡ、及びデータラッチ回路ＳＤＬ、ＡＤＬ、ＢＤＬ、ＣＤＬを備える。センスアンプＳＡ、及びデータラッチ回路ＳＤＬ、ＡＤＬ、ＢＤＬ、ＣＤＬは、互いにデータが転送可能なように接続される。
【００５７】
データラッチ回路ＳＤＬ、ＡＤＬ、ＢＤＬ、ＣＤＬは、データを一時的に保持する。書き込み動作時には、センスアンプＳＡは、データラッチ回路ＳＤＬが保持するデータに応じて、ビット線ＢＬの電圧を制御する。データラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬは、メモリセルトランジスタＭＴが２ビット以上のデータを保持する多値動作用に使用される。すなわち、データラッチ回路ＡＤＬは、下位ページを保持するために使用される。データラッチ回路ＢＤＬは、中位ページを保持するために使用される。データラッチ回路ＣＤＬは、上位ページを保持するために使用される。センスアンプユニットＳＡＵが備えるデータラッチ回路の数は、１つのメモリセルトランジスタＭＴが保持するビット数に応じて任意に変更可能である。
【００５８】
センスアンプＳＡは、読み出し動作時には、対応するビット線ＢＬに読み出されたデータを検知し、読み出されたデータが、データ“０”及びデータ“１”のいずれであるかを判定する。また、センスアンプＳＡは、書き込み動作時には、書き込みデータに基づいてビット線ＢＬに電圧を印加する。
【００５９】
データレジスタ２９は、センスアンプユニットＳＡＵ０〜ＳＡＵ（ｍ−１）に対応した数のデータラッチ回路ＸＤＬを備える。データラッチ回路ＸＤＬは、入出力回路２１に接続される。データラッチ回路ＸＤＬは、入出力回路２１から送られた書き込みデータを一時的に保持し、また、センスアンプユニットＳＡＵから送られた読み出しデータを一時的に保持する。より具体的には、入出力回路２１とセンスアンプユニット２８との間のデータ転送は、１ページ分のデータラッチ回路ＸＤＬを介して行われる。入出力回路２１が受信した書き込みデータは、データラッチ回路ＸＤＬを介して、データラッチ回路ＡＤＬ、ＢＤＬ、ＣＤＬのいずれかに転送される。センスアンプＳＡによって読み出された読み出しデータは、データラッチ回路ＸＤＬを介して、入出力回路２１に転送される。
【００６０】
［１−２］  動作
次に、上記のように構成されたメモリシステム２の動作について説明する。
【００６１】
図３及び図４に示すメモリセルトランジスタＭＴにデータを書き込む動作、及びメモリセルトランジスタＭＴからデータを読み出す動作について簡単に説明する。
【００６２】
メモリセルトランジスタＭＴにデータを書き込む書き込み動作は、以下のように行われる。書き込み動作には、プログラム動作と、ベリファイ動作とが含まれる。また、書き込み動作では、プログラム動作とベリファイ動作とからなるプログラムループが複数回繰り返される。
【００６３】
プログラム動作は、メモリセルトランジスタＭＴの電荷蓄積層に電荷（電子）を注入することで、メモリセルトランジスタＭＴの閾値電圧を上昇させる、又は、電荷蓄積層への電子の注入を禁止することで、メモリセルトランジスタＭＴの閾値電圧を維持させる動作である。閾値電圧を上昇させる動作を「“０”書き込み」と呼び、閾値電圧を維持させる動作を「“１”書き込み」又は「書き込み禁止」と呼ぶ。より具体的には、“０”書き込みと“１”書き込みとは、ビット線ＢＬに印加される電圧が異なる。“０”書き込みに対応するビット線ＢＬには、例えば接地電圧ＶＳＳが印加される。“１”書き込みに対応するビット線ＢＬには、例えば電源電圧ＶＤＤ（＞ＶＳＳ）が印加される。
【００６４】
ロウデコーダ２６は、選択ワード線ＷＬにプログラム電圧ＶＰＧＭを印加し、非選択ワード線ＷＬに電圧ＶＰＡＳＳ（＜ＶＰＧＭ）を印加する。電圧ＶＰＡＳＳは、メモリセルトランジスタＭＴの閾値電圧に関わらず、メモリセルトランジスタＭＴをオン状態にしつつ、非選択メモリセルトランジスタＭＴへの誤書き込みを防止するための電圧である。また、ロウデコーダ２６は、選択ゲート線ＳＧＤに、電圧ＶＳＧＤを印加し、選択ゲート線ＳＧＳに、電圧ＶＳＳを印加する。電圧ＶＳＧＤは、選択ビット線ＢＬに接続された選択トランジスタＳＴ１をオン状態とし、非選択ビット線ＢＬに接続された選択トランジスタＳＴ１をカットオフ状態とする電圧である。ソース線ＳＬには、例えば電源電圧ＶＤＤが印加される。
【００６５】
これにより、書き込み対象のメモリセルトランジスタＭＴでは、ワード線ＷＬとチャネルとの間の電圧差が大きくなり、メモリセルトランジスタＭＴの閾値電圧が上昇する。一方、書き込み禁止のメモリセルトランジスタＭＴでは、セルフブーストにより、ワード線ＷＬとチャネルとの間の電圧差が大きくならず、メモリセルトランジスタＭＴの閾値電圧の変動が抑制される。
【００６６】
ベリファイ動作は、プログラム動作の後、メモリセルトランジスタＭＴのデータを読み出し、メモリセルトランジスタＭＴの閾値電圧がターゲットレベルに達したか否かを判定する動作である。メモリセルトランジスタＭＴの閾値電圧がターゲットレベルに達している場合を、「ベリファイをパスした」と呼び、ターゲットレベルに達していない場合を、「ベリファイをフェイルした」と呼ぶ。ベリファイ動作の詳細は、読み出し動作と同じである。
【００６７】
次に、メモリセルトランジスタＭＴからデータを読み出す読み出し動作について説明する。
【００６８】
ロウデコーダ２６は、選択ワード線ＷＬに、読み出し電圧ＶＣＧを印加し、非選択ワード線ＷＬに、電圧ＶＲＥＡＤを印加する。また、ロウデコーダ２６は、選択ゲート線ＳＧＤ、ＳＧＳに、電圧ＶＳＧを印加する。電圧ＶＳＧは、選択トランジスタＳＴ１、ＳＴ２をオン状態にする電圧である。センスアンプユニット２８は、全ビット線ＢＬに、電圧ＶＢＬを印加する。電圧ＶＢＬは、電圧ＶＳＳより高い電圧である。ソース線ＳＬには、電圧ＶＳＳが印加される。これにより、メモリセルトランジスタＭＴがオン、又はオフしたかが判定され、メモリセルトランジスタＭＴのデータが読み出される。
【００６９】
［１−２−１］  閾値電圧分布の変動
次に、閾値電圧分布の変動について説明する。
【００７０】
メモリセルトランジスタＭＴをプログラムした後、電荷蓄積層から電子が抜けることで、メモリセルトランジスタＭＴの閾値電圧が変動する場合がある。図７は、閾値電圧分布の変動の様子を説明する模式図である。図７では、ステート“Ａ”〜“Ｄ”を抽出して示している。
【００７１】
ＮＡＮＤ型フラッシュメモリ、特に３次元ＮＡＮＤ型フラッシュメモリでは、メモリセルトランジスタをプログラムした後、閾値電圧分布は、ショートターム（プログラム直後から所定時間までの期間）内において、大幅に負側にシフト（ダウンシフト）する場合がある。閾値電圧分布のダウンシフトにより、各ステートの最適な読み出し電圧もダウンシフトする。最適な読み出し電圧は、２つのステートの閾値電圧分布の重なりが最小となる谷位置における電圧である。
【００７２】
図７において、実線で示した分布は、プログラム直後における閾値電圧分布（Ｖｔｈ分布）であり、破線で示した分布は、ショートターム経過後における閾値電圧分布である。また、図７において、実線の直線で示した読み出し電圧は、プログラム直後における最適な読み出し電圧（リードレベル）であり、破線の直線で示した読み出し電圧は、ショートターム経過後における最適な読み出し電圧である。
【００７３】
図８は、経過時間とともに最適な読み出し電圧が変動する様子を説明するグラフである。図８の横軸は、経過時間ｔを表し、縦軸は、読み出し時にワード線に印加する最適読み出し電圧を表している。なお、図８は、任意の閾値電圧に関するグラフである。
【００７４】
図８に示したパラメータは、以下のように定義される。  
・“ｔ＝０”：時刻ｔ＝０は、プログラム直後の時刻である。
・“Ｌ０”：読み出し電圧Ｌ０は、時刻ｔ＝０における最適な読み出し電圧である。
・“Ｌｄ”：読み出し電圧Ｌｄは、時刻Ｔｄにおける最適な読み出し電圧である。
・“Ｔｄ”：時刻Ｔｄは、ショートタームとロングタームとの境界時刻である。最適な読み出し電圧のダウンシフト速度は、経過時間が増加するにつれて低くなるので、ダウンシフト速度が既定値（例えば０．００１ｍＶ／ｓ）以下になる時刻を、ショートタームとロングタームとが切り替わる時刻Ｔｄと定義する。例えば、最適な読み出し電圧のダウンシフト速度は、ある既定値以下になる時刻、または温度やストレス条件によるある時間既定値を超えた時刻を“Ｔｄ”とする。
・“ショートターム”：ショートタームは、プログラム直後（ｔ＝０）から時刻Ｔｄまでの期間である。
・“ロングターム”：ロングタームは、時刻Ｔｄ以降（ｔ＞Ｔｄ）の期間である。
【００７５】
図８において、ショートターム内では、経過時間に対する最適な読み出し電圧の変化が大きいことが理解できる。このため、経過時間を考慮した読み出し電圧の調整が必要である。そこで、本実施形態では、プログラム直後からの経過時間を、時刻Ｔｄを境界としたショートタームとロングタームとに分けて管理し、ショートタームとロングタームとで読み出し電圧の補正手法を変えるようにしている。
【００７６】
［１−２−２］  読み出しシーケンス
次に、読み出しシーケンスの全体の流れについて説明する。図９Ａ乃至図９Ｄは、メモリシステム２の読み出しシーケンスを説明するフローチャートである。読み出しシーケンスは、書き込み動作が終了した後に行われ、ＮＡＮＤ型フラッシュメモリ３からデータを読み出すための一連の処理である。
【００７７】
まず、前述したように、選択ページに対して書き込み動作（プログラム動作及びベリファイ動作）が行われる。
【００７８】
続いて、メモリコントローラ５は、プログラムの終了時刻を図示しないタイムスタンプ管理テーブル内に記録する（ステップＳ１００）。タイムスタンプ管理テーブルは、例えば、ＤＲＡＭ４に格納される。例えば、タイムスタンプ管理テーブルは、ワード線ごとに、プログラムの終了時刻を記録する。あるいは、ブロックごとに、ブロックの代表プログラム終了時刻を記録してもよい。このとき、代表プログラム終了時刻は、ブロック内の最後のプログラム終了時刻、ブロック内の最初のプログラム終了時刻、ブロック内の平均プログラム終了時刻のいずれかであってもよい。時刻は、タイマー１６により計測される。
【００７９】
続いて、メモリコントローラ５は、温度、及びライト／イレース回数（Ｗ／Ｅ回数）などのストレス条件をチェックする（ステップＳ１０１）。Ｗ／Ｅ回数は、書き込み動作と消去動作とからなるセットの回数（書き換え回数）であり、ＮＡＮＤ型フラッシュメモリ３のブロックＢＬＫ単位で管理される。Ｗ／Ｅ回数は、ＤＲＡＭ４に格納された管理テーブルによって管理され、適宜情報が更新される。温度は、温度センサ６によって計測される。
【００８０】
続いて、メモリコントローラ５は、ステップＳ１０１でチェックしたストレス条件に基づいて、境界時刻Ｔｄを決定する（ステップＳ１０２）。境界時刻Ｔｄの設定手法の一例については、後述する。
【００８１】
続いて、メモリコントローラ５は、読み出し電圧を補正するために用いられる設定値テーブルを選択する（ステップＳ１０３）。設定値テーブルは、ショートターム用の設定値テーブルと、ロングターム用の設定値テーブルとを含む。設定値テーブルの詳細については後述する。
【００８２】
続いて、メモリコントローラ５は、ホスト装置１から読み出し命令を受信したか否かを監視する（ステップＳ１０４）。
【００８３】
ステップＳ１０４において読み出し命令を受信した場合（ステップＳ１０４＝Ｙｅｓ）、メモリコントローラ５は、プログラム終了から読み出し命令受信までの経過時間、すなわち、“経過時間＝現在時刻−プログラム終了時刻”を計算する（ステップＳ１０５）。続いて、メモリコントローラ５は、ステップＳ１０５で計算した経過時間が、境界時刻Ｔｄ以下であるか否かを判定する（ステップＳ１０６）。
【００８４】
ステップＳ１０６において経過時間が境界時刻Ｔｄ以下である場合（ステップＳ１０６＝Ｙｅｓ）、メモリコントローラ５は、ショートターム用の読み出しシーケンスを実行する。すなわち、メモリコントローラ５は、ショートターム用の設定値テーブルを用いて、読み出し電圧を決定する（ステップＳ１０７）。メモリコントローラ５は、計算された経過時間に基づいてステップＳ１０３で選択した設定値テーブルを参照し、対応する読み出し電圧を求める。経過時間が、設定値テーブル内の各行の経過時間に含まれない場合は、最も近い値の行の値を選ぶか、最も近い２行を選び、例えば線形補間によって読み出し電圧を計算する。
【００８５】
続いて、メモリコントローラ５は、ステップＳ１０７で決定された読み出し電圧を用いて、ＮＡＮＤ型フラッシュメモリ３に対して読み出し動作を実行する（ステップＳ１０８）。読み出し動作には、ＮＡＮＤ型フラッシュメモリ３に対して、コマンドを用いて、読み出し電圧を調整する処理が含まれてもよい。読み出し動作の詳細については、後述する。
【００８６】
続いて、メモリコントローラ５は、ステップＳ１０８で正常にデータが読み出せた場合（ステップＳ１０９＝Ｙｅｓ）、読み出し動作を終了する。エラービット数がＥＣＣ回路１３のエラー訂正可能ビット数より多い場合に、訂正に失敗し、その結果読み出しエラーと判定される。エラービット数がＥＣＣ回路１３のエラー訂正可能ビット数以下である場合に、訂正に成功し、その結果正常に読み出しが行われたと判定される。
【００８７】
一方、ステップＳ１０８で正常にデータが読み出せなかった場合（ステップＳ１０９＝Ｎｏ）、メモリコントローラ５は、他の読み出し手法、例えば、最適な読み出し電圧を探索するための動作（Ｖｔｈトラッキング動作）を実行する（ステップＳ１１０）。続いて、メモリコントローラ５は、ステップＳ１１０で得られた読み出し電圧を用いて、ＮＡＮＤ型フラッシュメモリ３に対して読み出し動作を実行する（ステップＳ１１１）。
【００８８】
ステップＳ１１１で正常にデータが読み出せた場合（ステップＳ１１２＝Ｙｅｓ）、メモリコントローラ５は、読み出し動作を終了する。ステップＳ１１１で正常にデータが読み出せなかった場合（ステップＳ１１２＝Ｎｏ）、メモリコントローラ５は、読み出し動作が正常に行われなかったことを示すエラーステータスを、ホスト装置１に送信する（ステップＳ１１３）。
【００８９】
ステップＳ１０６に戻り、経過時間が境界時刻Ｔｄを超えている場合（ステップＳ１０６＝Ｎｏ）、メモリコントローラ５は、図９Ｃに示すロングターム用の読み出しシーケンスを実行する。すなわち、メモリコントローラ５は、履歴値が存在するか否かを判定する（ステップＳ２００）。例えば、メモリコントローラ５は、「履歴値が存在するか否かを示すフラグを管理する。当該フラグは、ブロックＢＬＫのデータが消去された場合に、リセットされる。
【００９０】
ステップＳ２００において履歴値が存在しない、すなわち、プログラム後の最初の読み出し動作である場合（ステップＳ２００＝Ｎｏ）、メモリコントローラ５は、ロングターム用の設定値テーブルを用いて、読み出し電圧を決定する（ステップＳ２０１）。
【００９１】
続いて、メモリコントローラ５は、ステップＳ２０１で決定された読み出し電圧を用いて、ＮＡＮＤ型フラッシュメモリ３に対して読み出し動作を実行する（ステップＳ２０２）。
【００９２】
続いて、メモリコントローラ５は、ステップＳ２０２で正常にデータが読み出せた場合（ステップＳ２０３＝Ｙｅｓ）、設定値テーブルの読み出し電圧（設定値）を履歴値テーブルに記録する（ステップＳ２０４）。履歴値テーブルは、読み出し動作で用いた読み出し電圧を記録しておくためのテーブルである。履歴値テーブルは、ブロックＢＬＫごと、ページごと、又は複数のページあるいは複数のワード線をまとめたグループごとに管理される。その後、メモリコントローラ５は、読み出し動作を終了する。
【００９３】
一方、ステップＳ２０２で正常にデータが読み出せなかった場合（ステップＳ２０３＝Ｎｏ）、メモリコントローラ５は、例えばＶｔｈトラッキング動作を実行する（ステップＳ２０５）。続いて、メモリコントローラ５は、ステップＳ２０５で得られた読み出し電圧を用いて、ＮＡＮＤ型フラッシュメモリ３に対して読み出し動作を実行する（ステップＳ２０６）。
【００９４】
ステップＳ２０６で正常にデータが読み出せた場合（ステップＳ２０７＝Ｙｅｓ）、メモリコントローラ５は、履歴値テーブルを更新する（ステップＳ２０８）。すなわち、メモリコントローラ５は、履歴値テーブルのうち当該ブロックのエントリを、読み出しに成功したときの読み出し電圧に更新する。その後、メモリコントローラ５は、読み出し動作を終了する。
【００９５】
一方、ステップＳ２０６で正常にデータが読み出せなかった場合（ステップＳ２０７＝Ｎｏ）、メモリコントローラ５は、読み出し動作が正常に行われなかったことを示すエラーステータスを、ホスト装置１に送信する（ステップＳ２０９）。
【００９６】
ステップＳ２００に戻り、履歴値が存在する場合（ステップＳ２００＝Ｙｅｓ）、メモリコントローラ５は、履歴値テーブルを参照して、読み出し対象アドレスを含むブロックのエントリから、読み出し電圧を取得し、読み出し電圧を決定する（ステップＳ２１０）。
【００９７】
続いて、メモリコントローラ５は、ステップＳ２１０で決定された読み出し電圧を用いて、ＮＡＮＤ型フラッシュメモリ３に対して読み出し動作を実行する（ステップＳ２１１）。
【００９８】
続いて、メモリコントローラ５は、ステップＳ２１１で正常にデータが読み出せた場合（ステップＳ２１２＝Ｙｅｓ）、読み出し動作を終了する。
【００９９】
一方、ステップＳ２１１で正常にデータが読み出せなかった場合（ステップＳ２１２＝Ｎｏ）、メモリコントローラ５は、ステップＳ２０５に移行する。ステップＳ２０５以降の動作は、前述した通りである。
【０１００】
［１−２−３］  境界時刻Ｔｄの設定手法
次に、前述したステップＳ１０１及びＳ１０２に関する境界時刻Ｔｄの設定手法について説明する。温度、及び書き込み／消去のサイクル（Ｗ／Ｅ）などのストレス条件に応じて、メモリセルの特性（データ保持特性など）が変化する可能性があり、また、最適な読み出し電圧が変化する可能性がある。そこで、本実施形態では、ストレス条件に応じて、境界時刻Ｔｄを最適に設定するようにしている。
【０１０１】
図１０は、境界時刻Ｔｄ用テーブルの一例を説明する図である。境界時刻Ｔｄ用テーブルは、複数のストレス条件ｉと、複数の境界時刻Ｔｄ_ｉとの対応関係を格納する。“ｉ”は、１以上の整数である。例えば、ストレス条件１は、温度１０度（℃）、書き込み／消去のサイクル（Ｗ／Ｅ）＝１０００回（１ｋ）であり、ストレス条件２は、温度１０度、Ｗ／Ｅ＝１ｋであり、ストレス条件Ｍは、温度８０度、Ｗ／Ｅ＝１５００回（１５ｋ）である。ストレス条件１、ストレス条件２、及びストレス条件Ｍではそれぞれ、境界時刻Ｔｄ_１、Ｔｄ_２、及びＴｄ_Ｍが選択される。図１０は、ストレス条件の基準値を例示しており、例えば、温度及びＷ／Ｅがストレス条件１の基準値以下である場合に、境界時刻Ｔｄ_１が選択され、温度及びＷ／Ｅがストレス条件１の基準値より大きくかつストレス条件２の基準値以下である場合に、境界時刻Ｔｄ_２が選択されるようにしてもよい。
【０１０２】
例えば、メモリシステム２の設計段階において、複数のストレス条件ごとに境界時刻Ｔｄを計算する。そして、計算結果を境界時刻Ｔｄ用テーブルとして、ＮＡＮＤ型フラッシュメモリ３に不揮発に記憶させる。そして、動作時には、境界時刻Ｔｄ用テーブルは、ＤＲＡＭ４に読み出される。例えば、境界時刻Ｔｄ用テーブルは、メモリシステムの設計段階の時に決定し、その後、書き換えない。或いは、メモリシステムの動作中に動的に境界時刻を計測し、境界時刻Ｔｄを更新してもよい。
【０１０３】
［１−２−４］  読み出し電圧の補正手法
次に、読み出し電圧の補正手法について説明する。本実施形態では、ショートタームとロングタームとの境界時刻Ｔｄを規定し、プログラム直後からの経過時間がショートタームであるか、ロングタームであるかを判定する。そして、ショートタームとロングタームとで異なる手法を用いて読み出し電圧を補正する。このために、ショートターム用の読み出し電圧と、ロングターム用の読み出し電圧とが分けて管理された設定値テーブルが用いられる。
【０１０４】
図１１は、設定値テーブルに格納される複数の読み出し電圧と経過時間（プログラム終了から読み出し命令受信までの経過時間）との関係の一例を説明する模式図である。図１１の横軸は、経過時間ｔを表し、縦軸は、読み出し時にワード線に印加する最適読み出し電圧を表している。メモリセルの閾値電圧の任意のステートにおいて、プログラム直後（ｔ＝０）における最適な読み出し電圧はＬ０、境界時刻Ｔｄにおける最適な読み出し電圧はＬｄである。他のステートにおいても同様に定義される。
【０１０５】
前述したように、ショートターム内では、経過時間に応じてメモリセルの閾値電圧が大きくダウンシフトする。そこで、ショートターム内では、複数の経過時間に対応して複数の読み出し電圧（図１１の白丸に対応する電圧）が用意される。
【０１０６】
図１２は、設定値テーブルの一例を説明する図である。複数のストレス条件ごとに、設定値テーブルが用意される。図１２の“・・・”は、任意の電圧である。
【０１０７】
例えば、ストレス条件１では、境界時刻Ｔｄ＝２５（ｓ）である。また、経過時間ｔ＝０、５、１０、１５、２０、２５ごとに、最適な読み出し電圧が設定される。最適な読み出し電圧は、ステート“Ａ”〜“Ｇ”ごとに設定される。具体的には、ステート“Ａ”〜“Ｇ”の順に、読み出し電圧が高くなる。また、経過時間ｔ＝０、５、１０、１５、２０、２５の順に、読み出し電圧が低くなる。
【０１０８】
ロングタームの最適な読み出し電圧は、境界時刻Ｔｄから適切な時刻（経験値）における最適な読み出し電圧の平均値に設定される。
【０１０９】
温度、及びＷ／Ｅ回数などのストレス条件によって最適な読み出し電圧が変化するので、設計段階で、全てのストレス条件における設定値を確認し、この設定値を設定値テーブルに格納しておく。設定値テーブルは、ＮＡＮＤ型フラッシュメモリ３に不揮発に記憶させる。そして、動作時には、設定値テーブルは、ＤＲＡＭ４に読み出される。例えば、設定値テーブルの値は、メモリシステムの設計時に決定し、その後、書き換えない。或いは、メモリシステムの動作中に動的に設定値を計測し、設定値テーブルを更新してもよい。
【０１１０】
［１−２−５］  履歴値テーブルの一例
次に、履歴値テーブルの一例について説明する。図１３は、履歴値テーブルの一例を説明する図である。
【０１１１】
履歴値テーブルは、正常に読み出しが行われた際に使用された読み出し電圧を履歴値として格納しておくためのテーブルである。履歴値テーブルは、ロングターム内の読み出し電圧を格納する。読み出し電圧は、ブロックＢＬＫごとに管理される。読み出し電圧は、ブロックＢＬＫ以外の単位、例えばページ単位、又は複数のページあるいは複数のワード線をまとめたグループ単位で管理するようにしてもよい。読み出し電圧は、ステート“Ａ”〜“Ｇ”ごとに設定される。図１３では、一例として、ブロックＢＬＫ０（ブロック_０）からブロックＢＬＫ２５００（ブロック_２５００）の履歴値を示している。
【０１１２】
履歴値テーブルは、ロングターム内での読み出し動作に用いられる。履歴値テーブルは、読み出しに成功した場合、今回の読み出し動作で用いられた読み出し電圧に更新される。よって、今回の読み出し動作で最初に用いられる読み出し電圧は、ロングターム内の前回の成功した読み出し動作で用いられた読み出し電圧と同じである。これにより、時間が経過するに従ってメモリセルの閾値電圧が変動（例えばダウンシフト）した場合でも、より最適な読み出し電圧を用いて読み出し動作を行うことができる。履歴値テーブルは、ＮＡＮＤ型フラッシュメモリ３に不揮発に記憶させる。そして、動作時には、履歴値テーブルは、ＤＲＡＭ４に読み出される。
【０１１３】
次に、履歴値テーブルの管理動作について説明する。図１４は、履歴値テーブルの管理動作を説明するフローチャートである。
【０１１４】
メモリコントローラ５は、例えばホスト装置１からの消去命令に応答して、又は内部処理（ガベージコレクション等）に応じて、あるブロックＢＬＫのデータを消去する（ステップＳ３００）。続いて、メモリコントローラ５は、前述したステップＳ１００で記録した、プログラムの終了時間を消去する（ステップＳ３０１）。続いて、メモリコントローラ５は、履歴値テーブルのデータを消去する（ステップＳ３０２）。具体的には、メモリコントローラ５は、履歴値テーブルのうち当該ブロックに対応するエントリの履歴値を消去するとともに、前述した履歴値が存在するか否かを示すフラグを、履歴値が存在しない状態にリセットする。
【０１１５】
このように、本実施形態では、一例として、ブロックＢＬＫのデータが消去されるごとに、履歴値テーブルのうち当該ブロックに対応するエントリの履歴値も消去される。
【０１１６】
［１−２−６］  読み出し電圧の設定動作
次に、読み出し動作に含まれる読み出し電圧の設定動作について説明する。図１５は、メモリシステム２における読み出し電圧の設定動作を説明するタイミングチャートである。
【０１１７】
メモリコントローラ５は、信号線ＤＱｘ（例えばＤＱ０〜ＤＱ７）を介してＮＡＮＤ型フラッシュメモリ３にデータを送信する。メモリコントローラ５は、set featureコマンド“ＥＦｈ”を用いて、ＮＡＮＤ型フラッシュメモリ３における読み出し電圧を設定する。“ｈ”は、１６進数表記を意味する。set featureコマンド“ＥＦｈ”は、ＮＡＮＤ型フラッシュメモリ３における各種電圧、及び動作タイミングなどのパラメータを変更することが可能なコマンドである。
【０１１８】
メモリコントローラ５は、コマンドシーケンス“＜ＥＦｈ＞＜Ｃｏｌ０＞＜Ｃｏｌ１＞＜Ｒｏｗ０＞＜Ｒｏｗ１＞＜Ｒｏｗ２＞＜Ｂ０＞〜＜Ｂ５＞”をＮＡＮＤ型フラッシュメモリ３に送信する。アドレス“＜Ｃｏｌ０＞＜Ｃｏｌ１＞＜Ｒｏｗ０＞＜Ｒｏｗ１＞＜Ｒｏｗ２＞”は、featureアドレスであり、読み出し電圧の情報が格納されている記憶領域を指定する。featureアドレスは、例えばカラムアドレスＣｏｌ、及びロウアドレスＲｏｗを含む。データ“＜Ｂ０＞〜＜Ｂ５＞”は、読み出し電圧用の設定データである。
【０１１９】
ＮＡＮＤ型フラッシュメモリ３は、メモリコントローラ５からコマンドシーケンスを受信すると、レディー／ビジー信号ＲＢｎをローレベルにする。そして、ＮＡＮＤ型フラッシュメモリ３は、読み出し電圧用の設定データを用いて、読み出し電圧を書き換える。読み出し電圧に関する情報の記憶領域は、例えばレジスタ２３に含まれる。
【０１２０】
このようにして、メモリコントローラ５は、ＮＡＮＤ型フラッシュメモリ３内で用いられる読み出し電圧を適宜設定することが可能となる。
【０１２１】
［１−２−７］  読み出し動作
次に、メモリシステム２の読み出し動作について説明する。図１６は、メモリシステム２の読み出し動作を説明するタイミングチャートである。
【０１２２】
メモリコントローラ５は、page readコマンド“００ｈ”、“３０ｈ”を用いて、ＮＡＮＤ型フラッシュメモリ３からデータを読み出す。page readコマンド“００ｈ”、“３０ｈ”は、データ、例えばページの読み出しを指示するコマンドである。メモリコントローラ５は、コマンドシーケンス“＜００ｈ＞＜Ｃｏｌ２＞＜Ｃｏｌ３＞＜Ｒｏｗ３＞＜Ｒｏｗ４＞＜Ｒｏｗ５＞＜３０ｈ＞”をＮＡＮＤ型フラッシュメモリ３に送信する。アドレス“＜Ｃｏｌ２＞＜Ｃｏｌ３＞＜Ｒｏｗ３＞＜Ｒｏｗ４＞＜Ｒｏｗ５＞”は、リード対象アドレスである。
【０１２３】
ＮＡＮＤ型フラッシュメモリ３は、メモリコントローラ５からpage readコマンド“３０ｈ”を受信すると、レディー／ビジー信号ＲＢｎをローレベルにする。そして、ＮＡＮＤ型フラッシュメモリ３は、リードアドレスを用いて、メモリセルアレイ２０内の対応するページからデータを読み出す。メモリセルアレイ２０から読み出されたページは、データレジスタ２９に格納される。データの読み出しが終了すると、ＮＡＮＤ型フラッシュメモリ３は、レディー／ビジー信号ＲＢｎをハイレベルにする。
【０１２４】
続いて、メモリコントローラ５は、data outコマンド“０５ｈ”、“Ｅ０ｈ”を用いて、ＮＡＮＤ型フラッシュメモリ３からデータを出力させる。data outコマンド“０５ｈ”、“Ｅ０ｈ”は、データの出力を指示するコマンドである。メモリコントローラ５は、コマンドシーケンス“＜０５ｈ＞＜Ｃｏｌ２＞＜Ｃｏｌ３＞＜Ｒｏｗ３＞＜Ｒｏｗ４＞＜Ｒｏｗ５＞＜Ｅ０ｈ＞”をＮＡＮＤ型フラッシュメモリ３に送信する。
【０１２５】
ＮＡＮＤ型フラッシュメモリ３は、data outコマンドに応答して、データレジスタ２９に格納されたデータをメモリコントローラ５へ出力する。
【０１２６】
このようにして、メモリコントローラ５は、ＮＡＮＤ型フラッシュメモリ３からデータを読み出すことが可能となる。
【０１２７】
読み出し動作では、例えば予め決められた読み出し電圧が用いられる。また、前述した図１５のシーケンスによって設定した読み出し電圧を用いてもよい。さらに、読み出し電圧を変化させて再度読み出しを行うリトライリードを行うようにしてもよい。リトライリードでは、前述した図１５のシーケンスによって読み出し電圧を設定可能である。
【０１２８】
［１−２−８］  Ｖｔｈトラッキング動作
次に、前述したステップＳ１１０及びＳ２０６に関するＶｔｈトラッキング動作について説明する。
【０１２９】
データ読み出しの際にエラービット数を最少とするためには、２つのレベルの閾値電圧分布の重なりが最小となる谷位置における電圧でリトライリード動作を行うことが望ましい。Ｖｔｈトラッキング動作とは、最適な読み出し電圧を探索するための動作である。
【０１３０】
図１７は、Ｖｔｈトラッキング動作を説明する模式図である。図１７では、一例として、ステート“Ａ”及びステート“Ｂ”の閾値電圧分布を抽出して示している。図１７（ａ）は、ステート“Ａ”及びステート“Ｂ”の閾値電圧分布を示したグラフである。図１７（ｂ）は、読み出し電圧を変化させた場合のオン状態となるメモリセル数（オンセル数）の推移を示したグラフである。図１７（ｃ）は、読み出し電圧の範囲におけるオンセル数変化量を示したヒストグラムである。なお、図１７（ｂ）及び１７（ｃ）は、図１７（ａ）の閾値電圧分布を有するメモリセルトランジスタＭＴ群に対応してプロットされたものである。
【０１３１】
図１７（ｂ）に示すように、読み出し電圧を高くしていくと、ステート“Ａ”の中央値である電圧ＣＡよりわずかに低い電圧でオンセル数が急激に増大し、ｄＭ／ｄＶが極大となる。ここで、中央値とは、図１７（ａ）において最も閾値電圧の分布確率が高い電圧である。Ｍはオンセル数であり、Ｖは選択ワード線ＷＬの電圧である。さらに読み出し電圧を高くしていくと、オンセル数の増加率は小さくなり、ある値において極小となる。この読み出し電圧における増加率は、ステート“Ａ”の閾値電圧分布と、ステート“Ｂ”の閾値電圧の分布とが重ならない場合にはゼロとなる。他方で重なる場合には、ゼロではない極小値（＞０）となる。さらに読み出し電圧を高くしていくと、再びオンセル数の増加率が大きくなり、ステート“Ｂ”の中央値である電圧ＣＢよりわずかに低い電圧で再びｄＭ／ｄＶが極大となる。
【０１３２】
上述のオンセル数の累積値の変化によって、２つのステート間の谷位置、すなわち２つのステートの閾値電圧分布の重なりが最も小さくなる読み出し電圧の位置を検出することができる。例えば、まず、読み出し電圧Ｖ１を用いて読み出し動作が行われる。この時のオンセル数をＭ１とする。次に、電圧Ｖ１よりΔＶだけ高い電圧Ｖ２を用いて読み出し動作が行われる。この時のオンセル数をＭ２とする。すると、選択ワード線ＷＬの電圧がＶ１からＶ２に上昇した際に新たにオンするメモリセルトランジスタＭＴの数は、（Ｍ２−Ｍ１）個である。
【０１３３】
引き続き、電圧Ｖ２よりΔＶだけ高い電圧Ｖ３を用いて読み出し動作を行う。この時のオンセル数をＭ３とする。すると、選択ワード線ＷＬの電圧がＶ２からＶ３に上昇した際に新たにオンするメモリセルトランジスタＭＴの数は、（Ｍ３−Ｍ２）個である。そして、（Ｍ２−Ｍ１）＞（Ｍ３−Ｍ２）であったとすれば、ｄＭ／ｄＶが極小となる電圧は、少なくとも電圧Ｖ２より高いと推定される。
【０１３４】
引き続き、電圧Ｖ３よりΔＶだけ高い電圧Ｖ４を用いて読み出し動作を行う。この時のオンセル数がＭ４であり、（Ｍ３−Ｍ２）＜（Ｍ４−Ｍ３）であったとすれば、図１７（ｃ）のようなヒストグラムが得られる。
【０１３５】
以上の結果、オンセル数変化量によって、図１７（ｃ）における一点鎖線で示されるような閾値電圧分布を推測することができ、ステート“Ａ”とステート“Ｂ”との間の谷位置が電圧Ｖ２と電圧Ｖ３との間にあることが推定できる。その後、推定された谷位置に対応する読み出し電圧を用いて読み出し動作が行われる。なお、トラッキング動作は、実際の閾値電圧分布に基づいて最適な読み出し電圧を正確に推定できるが、読み出し電圧を決定するまでに行うリード回数が多いため、リード性能低下を起こしやすい。
【０１３６】
［１−３］  第１実施形態の効果
以上詳述したように第１実施形態では、メモリシステム２は、データを格納するメモリセルアレイ２０を備えたＮＡＮＤ型フラッシュメモリ（不揮発性半導体メモリ）３と、ＮＡＮＤ型フラッシュメモリ３の動作を制御し、ＮＡＮＤ型フラッシュメモリ３からデータを読み出すメモリコントローラ５とを具備する。メモリコントローラ５は、書き込み動作が終了した直後から始まるショートターム（第１期間）と、ショートタームに続くロングターム（第２期間）とに分けて、ＮＡＮＤ型フラッシュメモリ３からデータを読み出すための読み出し電圧を決定する。メモリコントローラ５は、ショートタームの読み出し動作において、経過時間に応じて読み出し電圧を変更し、ロングタームの読み出し動作において、経過時間に関わらず、読み出し電圧を決定するようにしている。
【０１３７】
たとえば、履歴値による方法のみの場合（図９ＡのステップＳ１０６で常時ＮＯ、及び図９ＣのステップＳ２０１で固定値を適用）、履歴値がない期間において固定値を用いることにより、最適読み出し電圧を外して１回目の読み出しをしてしまい、１回目の読み出しに失敗する確率が高い。また、ショートターム内においても（リトライリード成功後の）履歴値を記録してしまう。ショートターム内では最適読み出し電圧の時間変化が大きいため、履歴値を使って読み出しても、最適読み出し電圧を外してしまう確率が高い。
【０１３８】
また、ショートターム内において、時間に依らない読み出し電圧を用いる方法の場合（ステップＳ１０６で常時Ｎｏに相当）、最適読み出し電圧の時間変化が大きいショートターム内においても、ある一定の電圧を用いてリードしてしまうことにより、最適読み出し電圧を外してしまう。
【０１３９】
一方、第１実施形態によれば、最適な読み出し電圧を用いて、読み出し動作を行うことができる。これにより、メモリシステム２の読み出し性能を向上させることができる。また、読み出し動作においてリトライリードを行う例では、リトライリードの回数を低減することができる。
【０１４０】
また、ショートタームにおいて、複数の経過時間と複数の読み出し電圧との対応関係を示す情報を格納する設定値テーブルを備えている。これにより、最適な読み出し電圧の選択をより速く行うことができる。
【０１４１】
また、設定値テーブルは、ロングターム用の読み出し電圧を、ステートごとに１種類格納している。これにより、ロングタームにおいても、最適な読み出し電圧を用いて読み出し動作を実行することができる。
【０１４２】
また、読み出し動作で使用された読み出し電圧を履歴値として格納するための履歴値テーブルを備えている。そして、ロングターム内の２回目からの読み出し動作では、履歴値テーブルに格納された読み出し電圧を用いて読み出し動作を行うようにしている。これにより、ロングタームにおける２回目からの読み出し動作において、最適な読み出し電圧により近い読み出し電圧を用いることができる。一方、ショートターム内においては、最適な読み出し電圧が短時間で大きく変化するため、前回成功した読み出し電圧で次回も読める可能性が少ない。このため、ショートターム内では、履歴値を記録しない（更新しない）。
【０１４３】
また、温度、及びＷ／Ｅ回数などのストレス条件に応じて、ショートタームとロングタームとの境界時刻Ｔｄを変更することができる。さらに、温度、及びＷ／Ｅ回数などのストレス条件に応じて、ショートターム及びロングタームのそれぞれにおいて読み出し電圧を変更することができる。
【０１４４】
［２］  第２実施形態
図１８Ａ及び図１８Ｂは、第２実施形態に係るメモリシステム２の読み出しシーケンスを説明するフローチャートである。図１８Ａ及び図１８Ｂは、ステップＳ２００以降の動作について説明しており、ステップＳ２００より前のステップ、すなわち、図９Ａ及び図９ＢのステップＳ１００〜Ｓ１１４の動作は、第１実施形態と同じであるため、図９Ａ及び図９Ｂが援用される。
【０１４５】
図１８Ａ及び図１８Ｂに示すように、第２実施形態と第１実施形態との違いは、第１実施形態で説明した図９Ｃ及び図９Ｄのフローチャートに、ステップＳ４００及びステップＳ４０１が新たに追加されたことである。
【０１４６】
第２実施形態では、ロングタームよりさらに長いロングスタンディング時間が新たに定義される。ロングスタンディング時間は、ショートターム及びロングタームに比べて十分長い時間であり、例えば１日などの期間である。
【０１４７】
ステップＳ２００履歴値が存在しない場合（ステップＳ２００＝Ｎｏ）、メモリコントローラ５は、経過時間がロングスタンディング時間を超えたか否かを判定する（ステップＳ４００）。
【０１４８】
ステップＳ４００において経過時間がロングスタンディング時間を超えた場合（ステップＳ４００＝Ｙｅｓ）、メモリコントローラ５は、ロングターム用の設定値テーブルを用い、かつ設定値テーブルから求めた読み出し電圧を負側に所定電圧だけシフトして得られる新たな読み出し電圧を設定する（ステップＳ４０１）。ステップＳ４０１における電圧のシフト量は、メモリセルトランジスタＭＴの特性に応じて任意に設計可能である。
【０１４９】
経過時間がロングスタンディング時間を超えた場合、データリテンション特性の影響で、閾値電圧分布は、ダウンシフトする。それに合わせて、読み出し電圧は、ロングターム用の設定値テーブルよりさらに負側にシフトされる。
【０１５０】
一方、ステップＳ４００において経過時間がロングスタンディング時間を超えていない場合（ステップＳ４００＝Ｎｏ）、メモリコントローラ５は、ロングターム用の設定値テーブルを用いて、読み出し電圧を決定する（ステップＳ２０１）。その後の動作は、第１実施形態と同じである。
【０１５１】
第２実施形態によれば、経過時間がロングスタンディング時間を超えた場合に、リトライリードの回数を低減できる。これにより、読み出し動作にかかる時間（読み出し時間）を短縮することができる。
【０１５２】
［３］  その他の変形例
ショートタームは比較的短時間のため、ずれた閾値電圧を考慮しなければならないほどのリードディスターブストレスはかからないと想定される。よって、ショートターム内の読み出し電圧は、リードディスターブストレスによる閾値ずれを考慮しないようにしてもよい。
【０１５３】
上記実施形態では、１つのメモリセルトランジスタが３ビットのデータを記憶する場合を例に説明したが、これに限定されない。例えば、１つのメモリセルトランジスタは、２ビットのデータを記憶可能（ＭＬＣ：Multi-level Cell）であってもよいし、４ビット以上のデータを記憶可能であってもよい。このような実施例においても、上記実施形態で説明した各種動作を実現できる。
【０１５４】
上記実施形態では、３次元に積層された複数のメモリセルを備えたＮＡＮＤ型フラッシュメモリを例に挙げて説明している。しかし、これに限定されず、２次元に配置された複数のメモリセルを備えたＮＡＮＤ型フラッシュメモリであってもよい。
【０１５５】
上記実施形態において、メモリセルにＭＯＮＯＳ膜を使用した場合を例に説明したが、これに限定されない。例えば、フローティングゲート型のメモリセルを用いてもよい。
【０１５６】
本明細書において、“接続”とは、電気的に接続されていることを示し、例えば、接続された２つの素子の間に、別の素子を介することを除外しない。
【０１５７】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１５８】
１…ホスト装置、２…メモリシステム、３…ＮＡＮＤ型フラッシュメモリ、４…ＤＲＡＭ、５…メモリコントローラ、６…温度センサ、１０…ホストインターフェース回路、１１…プロセッサ、１２…ＳＲＡＭ、１３…ＥＣＣ回路、１４…ＮＡＮＤインターフェース回路、１５…ＤＲＡＭインターフェース回路、１６…タイマー、１７…バス、２０…メモリセルアレイ、２１…入出力回路、２２…ロジック制御回路、２３…レジスタ、２４…シーケンサ、２５…電圧生成回路、２６…ロウデコーダ、２７…カラムデコーダ、２８…センスアンプユニット、２９…データレジスタ
【図１】
2019149219.tif 000003
【図２】
2019149219.tif 000004
【図３】
2019149219.tif 000005
【図４】
2019149219.tif 000006
【図５】
2019149219.tif 000007
【図６】
2019149219.tif 000008
【図７】
2019149219.tif 000009
【図８】
2019149219.tif 000010
【図９Ａ】
2019149219.tif 000011
【図９Ｂ】
2019149219.tif 000012
【図９Ｃ】
2019149219.tif 000013
【図９Ｄ】
2019149219.tif 000014
【図１０】
2019149219.tif 000015
【図１１】
2019149219.tif 000016
【図１２】
2019149219.tif 000017
【図１３】
2019149219.tif 000018
【図１４】
2019149219.tif 000019
【図１５】
2019149219.tif 000020
【図１６】
2019149219.tif 000021
【図１７】
2019149219.tif 000022
【図１８Ａ】
2019149219.tif 000023
【図１８Ｂ】
2019149219.tif 000024