(57)【要約】【課題】タイマ回路を設けることなくフラッシュメモリセルの閾値電圧を管理する。【解決手段】記憶装置１は、複数のフラッシュメモリセル１０と、複数のフラッシュメモリセル１０のうちデータを記憶するセルとして用いられるメモリセル１０１に対しデータを書き込むとともに、複数のフラッシュメモリセル１０のうちメモリセル１０１の閾値電圧の判定に用いるタイマセル１０２の閾値電圧のリセットを行うメモリコントローラ１１と、タイマセル１０２の現在の閾値電圧である第１の閾値電圧に基づいて、メモリセル１０１の現在の閾値電圧である第２の閾値電圧の状態を推定するレベル判定回路１２とを有する。【選択図】図２
2018045742.tif 000002
【特許請求の範囲】
【請求項１】
複数のフラッシュメモリセルと、
前記複数のフラッシュメモリセルのうちデータを記憶するセルとして用いられるメモリセルに対しデータを書き込むとともに、前記複数のフラッシュメモリセルのうち前記メモリセルの閾値電圧の判定に用いる判定用セルの閾値電圧のリセットを行う制御部と、
前記判定用セルの現在の閾値電圧である第１の閾値電圧に基づいて、前記メモリセルの現在の閾値電圧である第２の閾値電圧の状態を推定する推定部と
を有する記憶装置。
【請求項２】
前記リセットでは、前記メモリセルのリードデータが不定となる所定の電圧範囲の上限電圧値よりも高い所定の初期値に、前記第１の閾値電圧が設定され、
前記推定部は、前記第１の閾値電圧が、第１の所定値よりも低い場合、前記第２の閾値電圧の状態はリフレッシュが必要な状態であると推定し、
前記制御部は、前記推定部により、リフレッシュが必要な状態であると推定された場合に、前記メモリセルのリードデータと同じデータを、前記メモリセルに再度書き込む
請求項１に記載の記憶装置。
【請求項３】
前記推定部は、前記第１の閾値電圧が、前記第１の所定値よりも低い値である第２の所定値よりも低い場合、前記第２の閾値電圧の状態は、前記メモリセルのリードデータが不定となる状態であると推定し、
前記制御部は、前記推定部により、リフレッシュが必要な状態であると推定され、かつ、前記メモリセルのリードデータが不定となる状態ではないと推定された場合に、前記メモリセルのリードデータと同じデータを、前記メモリセルに再度書き込む
請求項２に記載の記憶装置。
【請求項４】
前記リセットでは、前記メモリセルのリードデータが不定となる所定の電圧範囲の下限電圧値よりも低い所定の初期値に、前記第１の閾値電圧が設定され、
前記推定部は、前記第１の閾値電圧が、第１の所定値よりも高い場合、前記第２の閾値電圧の状態はリフレッシュが必要な状態であると推定し、
前記制御部は、前記推定部により、リフレッシュが必要な状態であると推定された場合に、前記メモリセルのリードデータと同じデータを、前記メモリセルに再度書き込む
請求項１に記載の記憶装置。
【請求項５】
前記推定部は、前記第１の閾値電圧が、前記第１の所定値よりも高い値である第２の所定値よりも高い場合、前記第２の閾値電圧の状態は、前記メモリセルのリードデータが不定となる状態であると推定し、
前記制御部は、前記推定部により、リフレッシュが必要な状態であると推定され、かつ、前記メモリセルのリードデータが不定となる状態ではないと推定された場合に、前記メモリセルのリードデータと同じデータを、前記メモリセルに再度書き込む
請求項４に記載の記憶装置。
【請求項６】
前記判定用セルのリテンション特性である第１のリテンション特性と、前記メモリセルのリテンション特性である第２のリテンション特性との対応関係を記憶する記憶部と、
前記推定部は、前記記憶部に記憶された対応関係を用いて、前記第１の閾値電圧から前記第２の閾値電圧を推定し、前記第２の閾値電圧が、前記メモリセルのリードデータが不定となる所定の電圧範囲に到達しているか否かを判定する
請求項１に記載の記憶装置。
【請求項７】
前記記憶部に記憶された前記対応関係における前記第１のリテンション特性が示す前記第１の閾値電圧の経時変化の度合いは、前記第１の閾値電圧の実際の経時変化の度合いよりも小さく、かつ、前記記憶部に記憶された前記対応関係における前記第２のリテンション特性が示す前記第２の閾値電圧の経時変化の度合いは、前記第２の閾値電圧の実際の経時変化の度合いよりも大きい
請求項６に記載の記憶装置。
【請求項８】
前記制御部は、前記第２の閾値電圧が前記電圧範囲に到達していると推定された場合、推定された前記第２の閾値電圧と前記電圧範囲の境界値との差分に応じた電圧値だけ前記第２の閾値電圧を変化させた後、前記メモリセルのリードデータを取得する
請求項６に記載の記憶装置。
【請求項９】
前記制御部は、前記第２の閾値電圧を変化させた後に取得されたリードデータと同じデータを、前記メモリセルに再度書き込む
請求項８に記載の記憶装置。
【請求項１０】
前記判定用セルは、書き換え単位であるメモリセル群ごとに設けられている
請求項１に記載の記憶装置。
【請求項１１】
複数のフラッシュメモリセルのうちデータを記憶するセルとして用いられるメモリセルに対しデータを書き込むとともに、前記複数のフラッシュメモリセルのうち前記メモリセルの閾値電圧の判定に用いる判定用セルの閾値電圧のリセットを行い、
前記判定用セルの現在の閾値電圧である第１の閾値電圧に基づいて、前記メモリセルの現在の閾値電圧である第２の閾値電圧の状態を推定する、
記憶装置の管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は記憶装置及び記憶装置の管理方法に関する。
【背景技術】
【０００２】
フラッシュメモリでは、トランジスタの閾値電圧（Ｖｔｈ）のレベルを０又は１といったデータに対応させている。また、フラッシュメモリでは、トランジスタのゲート部に設けられたトラップ層（浮遊ゲートともいう）へ電荷を注入して閾値電圧を操作することにより、所望のデータが記憶される。しかしながら、トラップ層に蓄積されていた電荷量は、時間の経過、環境、及び書き換え回数などといった要因により、様々な速度で減少していく。このため、現在の電荷量を把握することは困難であるとともに、記憶したデータを誤って読み出してしまう危険性がある。
【０００３】
このため、データの保持期間（リテンション期間ともいう）を管理する技術が提案されている。例えば、特許文献１では、不揮発性メモリに対する書き込み動作を実行してからの経過時間を計測するタイマと、このタイマによって計測される経過時間が所定時間を超えたときに、この不揮発性メモリに対して再度書き込み動作を実行するリフレッシュ回路とを有する機器について開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−１１６７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１に記載されたリテンション期間の管理では、タイマ回路が必要となる。また、このタイマ回路が、電源に依存しないタイマ（例えば、ＲＴＣ（リアルタイムクロック：Real Time Clock））でない場合、タイマ回路を用いた補正の精度は、電源状態に依存してしまう。このように、特許文献１に記載されたリテンション期間の管理では、ＲＴＣ等のタイマ回路を設けなければならないという問題があった。
【０００６】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００７】
一実施の形態によれば、記憶装置は、判定用セルの現在の閾値電圧に基づいて、メモリセルの現在の閾値電圧を推定する推定部を有する。
【発明の効果】
【０００８】
前記一実施の形態によれば、タイマ回路を設けることなくフラッシュメモリセルの閾値電圧を管理することができる。
【図面の簡単な説明】
【０００９】
【図１】フラッシュメモリセルのリテンション特性を示すグラフである。
【図２】実施の形態１にかかる記憶装置の構成の一例を示すブロック図である。
【図３】タイマセルのリテンション特性の具体例を示すグラフである。
【図４】実施の形態１にかかる記憶装置の動作の一例を示すフローチャートである。
【図５】実施の形態２にかかる記憶装置の構成の一例を示すブロック図である。
【図６】タイマセルのリテンション特性の具体例を示すグラフである。
【図７】メモリセルのリテンション特性の具体例を示すグラフである。
【図８】データベースに記憶されるリテンション特性の対応関係を図示したグラフである。
【図９】図８に示す対応関係をテーブルとして記憶する場合の一例を示す表である。
【図１０Ａ】メモリセルのリードデータが不定となる状態を示すグラフである。
【図１０Ｂ】メモリセルのリードデータが不定となる状態を示すグラフである。
【図１０Ｃ】メモリセルのリードデータが不定となる状態を示すグラフである。
【図１１】図１０Ａに示す状態において、制御部が閾値電圧を操作した場合の様子を示すグラフである。
【図１２】メモリセルのリードデータが不定となる状態を示すグラフである。
【図１３Ａ】実施の形態２にかかる記憶装置の動作の一例を示すフローチャートである。
【図１３Ｂ】実施の形態２にかかる記憶装置の動作の一例を示すフローチャートである。
【図１４】実施の形態の変形例にかかる記憶装置の構成の一例を示すブロック図である。
【図１５】データベースによって記憶される、メモリセルのリテンション特性のテーブルの一例を示す表である。
【発明を実施するための形態】
【００１０】
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００１１】
実施の形態について説明する前に、まず、フラッシュメモリにおけるトランジスタの閾値電圧（Ｖｔｈ）の推移について説明する。フラッシュメモリでは、セルを構成するトランジスタのトラップ層の電荷量を調整することにより、閾値電圧が、記憶するデータに応じた値へと調整される。例えば、データとして第１の値（例えば１）を記憶する場合、閾値電圧が第１の所定値（Ｖｔｈ_ｌｏｗとする）となるように、閾値電圧が設定され、データとして第２の値（例えば０）を記憶する場合、閾値電圧が第２の所定値（Ｖｔｈ_ｈｉｇｈとする）となるように、閾値電圧が設定される。なお、ここで、Ｖｔｈ_ｌｏｗ＜Ｖｔｈ_ｈｉｇｈである。以下、データとして第１の値を記憶する際に設定されうる２つの閾値電圧のうち低い方の閾値電圧に対応する記憶データを、Ｌｏｗ側データと称す。また、データとして第２の値を記憶する際に設定されうる２つの閾値電圧のうち高い方の閾値電圧に対応する記憶データを、Ｈｉｇｈ側データと称す。
【００１２】
図１は、フラッシュメモリセルのリテンション特性を示すグラフである。すなわち、図１は、閾値電圧の時間推移を示している。時刻０において、書き換え処理が行われ、閾値電圧が設定されたとしても、図１に示すように、時間の経過に伴い、閾値電圧は一定を保たず、変化する。トランジスタ形成時における電荷の注入量及びトランジスタの構造などによって決まる固有の閾値電圧（Ｖｔｈ_ｉとする）が、図１のように、Ｖｔｈ_ｌｏｗとＶｔｈ_ｈｉｇｈの間の電圧値であるとすると、書き換え時に設定した閾値電圧は、Ｖｔｈ_ｉに収束する。より詳細には、Ｈｉｇｈ側データを記憶するための書き換えが行われた際に設定された閾値電圧は、時間の経過とともに徐々に減少し、Ｌｏｗ側データを記憶するための書き換えが行われた際に設定された閾値電圧は、時間の経過とともに徐々に上昇する。そして、閾値電圧は、データの読み出しを正しく行うことが保証されない電圧範囲に突入することとなる。以下、この電圧範囲を、リード限界の電圧範囲と称す。
【００１３】
リード限界の電圧範囲では、リード処理のための回路の動作限界により、リードデータが不定となる。このため、データの読み出しを正しく行うことが保証されない。より詳細に説明すると、トランジスタに設定された閾値電圧は、トランジスタに所定の電圧をかけた際の電流値により判定されるが、閾値電圧がリード限界の電圧範囲に突入すると、電流値による判定結果が一意に定まらない。例えば、シングル型のフラッシュメモリでは、トランジスタに流れる電流値と基準電流値との差分をアンプにより増幅するが、閾値電圧が上記の電圧範囲にある場合、トランジスタに流れる電流値と基準電流値との差が小さすぎて、アンプが正しく機能せず、リードデータの値が不定となる。同様に、相補型のフラッシュメモリでは、一方のトランジスタに流れる電流値と他方のトランジスタに流れる電流値との差分をアンプにより増幅するが、閾値電圧が上記の電圧範囲にある場合、差分が小さすぎて、アンプが正しく機能せず、リードデータの値が不定となる。つまり、リード限界の電圧範囲は、リードデータの値が一意に定まらないレベルの電流がトランジスタに流れる閾値電圧の範囲である。言い換えると、リード限界の電圧範囲は、メモリセルのリードデータが不定となる電圧範囲である。なお、この電圧範囲の上限及び下限は、リード処理のための回路の特性により定まるものであり、設計及び製造段階において、既知の値である。
【００１４】
なお、シングル型のフラッシュメモリとは、１つのトランジスタにより１ビットを記憶するフラッシュメモリである。相補型のフラッシュメモリとは、２つのトランジスタにより１ビットを記憶するフラッシュメモリである。相補型のフラッシュメモリでは、１を記憶する場合、第１のトランジスタの閾値電圧をＶｔｈ_ｌｏｗに設定し、第２のトランジスタの閾値電圧をＶｔｈ_ｈｉｇｈに設定する。一方、０を記憶する場合、第１のトランジスタの閾値電圧をＶｔｈ_ｈｉｇｈに設定し、第２のトランジスタの閾値電圧をＶｔｈ_ｌｏｗに設定する。
【００１５】
＜実施の形態１＞
次に、実施の形態１について説明する。図２は、実施の形態１にかかる記憶装置１の構成の一例を示すブロック図である。図２に示すように、記憶装置１は、複数のフラッシュメモリセル１０と、メモリコントローラ１１と、レベル判定回路１２とを有している。
【００１６】
フラッシュメモリセル１０は、トラップ層の電荷量を変更して閾値電圧を制御することでデータを記憶するＭＯＳトランジスタにより構成される。すなわち、フラッシュメモリセル１０は、例えば、フローティングゲートＭＯＳトランジスタなどと呼ばれるトランジスタにより構成される。本実施の形態において、複数のフラッシュメモリセル１０は、メモリセル１０１と、タイマセル１０２とに分類される。本実施の形態では、一例として、図２に示されるように１以上のメモリセル１０１と１つのタイマセル１０２とを有する。メモリセル１０１とタイマセル１０２は、閾値電圧の変化に対して類似の特性を有するセルである。すなわち、メモリセル１０１とタイマセル１０２は、閾値電圧を変化させる要因に対する閾値電圧の変化特性が類似している。言い換えると、メモリセル１０１の閾値電圧の変化特性と、タイマセル１０２の閾値電圧の変化特性との間に相関がある。一例として、メモリセル１０１とタイマセル１０２とが、同じ構成を有するセルである場合が挙げられる。
【００１７】
メモリセル１０１は、複数のフラッシュメモリセル１０のうちデータを記憶するセルとして用いられるセルである。また、タイマセル１０２は、複数のフラッシュメモリセル１０のうちメモリセル１０１の閾値電圧の判定に用いられるセルである。タイマセル１０２は、判定用セルとも称す。
【００１８】
メモリコントローラ１１は、フラッシュメモリセル１０を制御する電子回路である。なお、メモリコントローラ１１は、制御部とも称す。メモリコントローラ１１は、メモリセル１０１に記憶されたデータのリード処理、メモリセル１０１へのデータの書き換え処理、及びメモリセル１０１のリフレッシュ処理を行う。また、メモリコントローラ１１は、タイマセル１０２の閾値電圧を所定の初期値に設定する処理であるリセット処理を行う。ここで、メモリコントローラ１１は、データ書き込み時、メモリセル１０１にデータを書き込むとともに、タイマセル１０２のリセット処理、すなわちタイマセル１０２の閾値電圧のリセットを行う。本実施の形態では、記憶装置１に、１つのタイマセル１０２が設けられており、メモリコントローラ１１は、複数のメモリセル１０１のうち、いずれかのメモリセル１０１に対する最初の書き込み時に、タイマセル１０２のリセット処理を行い、以降、いずれかのメモリセル１０１のリード時にリフレッシュ処理が行われる度に、タイマセル１０２のリセット処理を行う。
【００１９】
レベル判定回路１２は、タイマセル１０２の現在の閾値電圧を取得し、取得した閾値電圧に基づいて、メモリセル１０１の現在の閾値電圧の状態を判定（推定）する電子回路である。なお、レベル判定回路１２は、推定部とも称す。レベル判定回路１２は、例えば、タイマセル１０２に印加する電圧を変動させ、タイマセル１０２に所定の電流値の電流が流れた時の電圧を計測することにより閾値電圧を取得する。上述の通り、タイマセル１０２は、閾値電圧の変化に対し、メモリセル１０１と類似の特性を有する。従って、メモリセル１０１への書き込み時にリセットが行われたタイマセル１０２の現在の閾値電圧を調べることにより、メモリセル１０１の現在の閾値電圧が書き込み時からどの程度変化しているかを把握することができる。
【００２０】
図３は、タイマセル１０２のリテンション特性の具体例を示すグラフである。図３において、縦軸はタイマセル１０２の閾値電圧の値を示し、横軸はタイマセル１０２の閾値電圧が初期値に設定されてからの経過時間を示している。図３からわかるように、タイマセル１０２の閾値電圧が初期値に設定されてからの経過時間を、タイマセル１０２の閾値電圧を測定することにより、把握することができる。ここで、メモリセル１０１に対し記憶のための閾値電圧の設定が行われる際、タイマセル１０２がリセットされてタイマセル１０２の閾値電圧が初期値に設定される。したがって、メモリセル１０１の閾値電圧がデータ記憶のために設定されてからの経過時間を、タイマセル１０２の閾値電圧の測定値から把握することができる。
【００２１】
このことは、タイマセル１０２の閾値電圧の測定値に基づいて、メモリセル１０１の閾値電圧が設定時からどの程度変動しているかを把握できることを意味する。例えば、タイマセル１０２の閾値電圧が時間経過とともに減少するようなリテンション特性（図３に示されるリテンション特性）である場合、タイマセル１０２の閾値電圧が初期値からどの程度減少しているかを判定することにより、メモリセル１０１の閾値電圧の設定時からの変動量を推測することができる。よって、レベル判定回路１２は、タイマセル１０２の現在の閾値電圧を、予め定められた基準値と比較することにより、メモリセル１０１の現在の閾値電圧の状態を推定する。
【００２２】
タイマセル１０２の初期値は、例えば、メモリセル１０１のリード限界の電圧範囲の上限電圧値よりも高い任意の所定値、又はメモリセル１０１のリード限界の電圧範囲の下限電圧値よりも低い任意の所定値である。ただし、タイマセル１０２のリテンション特性は、メモリセル１０１のリテンション特性よりもリテンション期間が長いことが好ましい。すなわち、タイマセル１０２の閾値電圧が初期値に設定されてからタイマセル１０２の閾値電圧がリード限界の電圧範囲に突入するまでの時間が、メモリセル１０１の閾値電圧が設定されてからメモリセル１０１の閾値電圧がリード限界の電圧範囲に突入するまでの時間よりも長いことが好ましい。タイマセル１０２の閾値電圧がリード限界に達してしまうと、タイマセル１０２の閾値電圧の測定が正常に行われない恐れがあるためである。すなわち、メモリセル１０１の状態を推定可能な期間が限られてしまう。タイマセル１０２のリテンション特性が、メモリセル１０１のリテンション特性よりもリテンション期間が長いことで、これを防ぐことができる。
【００２３】
レベル判定回路１２は、具体的には次のように推定する。まず、タイマセル１０２の閾値電圧の初期値が、メモリセル１０１のリード限界の電圧範囲の上限電圧値よりも高い場合の動作例について説明する。すなわち、メモリコントローラ１１によるリセット処理において、メモリセル１０１のリード限界の電圧範囲の上限電圧値よりも高い所定の初期値に、タイマセル１０２の閾値電圧が設定される場合の動作例について説明する。この場合においては、タイマセル１０２のＶｔｈ_ｉはリード限界の電圧範囲内に存在するため、図３に示すようにタイマセル１０２の閾値電圧は時間経過とともに減少する。このため、レベル判定回路１２は、タイマセル１０２の閾値電圧の測定値が、初期値よりも低い所定値であるリフレッシュ基準値（図３参照）よりも低い場合、メモリセル１０１が、リフレッシュが必要な状態であると推定する。また、レベル判定回路１２は、タイマセル１０２の閾値電圧が、リフレッシュ基準値よりも低い所定値であるリード限界基準値（図３参照）よりも低い場合、メモリセル１０１が、リードデータが不定となる状態であると推定する。すなわち、レベル判定回路１２は、メモリセル１０１の閾値電圧が、リード限界の電圧範囲に突入していると推定する。また、レベル判定回路１２は、さらに他の推定を行ってもよい。例えば、タイマセル１０２の閾値電圧が、リード限界基準値よりも低い所定値であるブランク基準値（図３参照）よりも低い場合、レベル判定回路１２は、メモリセル１０１の状態が、メモリセル１０１にデータが記憶されていない状態であると推定してもよい。
【００２４】
次に、タイマセル１０２の閾値電圧の初期値が、メモリセル１０１のリード限界の電圧範囲の下限電圧値よりも低い場合の動作例について説明する。すなわち、メモリコントローラ１１によるリセット処理において、メモリセル１０１のリード限界の電圧範囲の下限電圧値よりも低い所定の初期値に、タイマセル１０２の閾値電圧が設定される場合の動作例について説明する。この場合においては、タイマセル１０２のＶｔｈ_ｉはリード限界の電圧範囲内に存在するため、図３に示した例とは逆に、タイマセル１０２の閾値電圧は時間経過とともに増加する。このため、レベル判定回路１２は、タイマセル１０２の閾値電圧の測定値が、初期値よりも高い所定値であるリフレッシュ基準値よりも高い場合、メモリセル１０１はリフレッシュが必要な状態であると推定する。また、レベル判定回路１２は、タイマセル１０２の閾値電圧が、リフレッシュ基準値よりも高い所定値であるリード限界基準値よりも高い場合、メモリセル１０１は、リードデータが不定となる状態であると推定する。すなわち、レベル判定回路１２は、メモリセル１０１の閾値電圧が、リード限界の電圧範囲に突入していると推定する。また、レベル判定回路１２は、さらに他の推定を行ってもよい。例えば、レベル判定回路１２は、タイマセル１０２の閾値電圧が、リード限界基準値よりも高い所定値であるブランク基準値よりも高い場合、メモリセル１０１にデータが記憶されていないと推定してもよい。
【００２５】
メモリコントローラ１１は、レベル判定回路１２により、リフレッシュが必要な状態であると推定された場合に、メモリセル１０１に対するリフレッシュ処理を実行する。すなわち、メモリコントローラ１１は、メモリセル１０１にリード処理を行ってリードデータを取得し、リードデータと同じデータを、メモリセル１０１に再度書き込む。このため、閾値電圧が回復し、リテンション期間を長くすることが可能となる。ただし、メモリセル１０１の閾値電圧がリード限界の電圧範囲にある場合には、メモリセル１０１に本来記憶されていたデータによる上書きが、リフレッシュの際に行われない恐れがある。したがって、本実施の形態では、メモリコントローラ１１は、レベル判定回路１２により、リフレッシュが必要な状態であると推定され、かつ、メモリセル１０１のリードデータが不定となる状態ではないと推定された場合に、メモリセル１０１に対するリフレッシュ処理を実行する。これにより、リフレッシュ処理により、記憶データが誤ったデータで更新されてしまうことを防ぐことができる。
【００２６】
次に、実施の形態１にかかる記憶装置１の動作例について説明する。図４は、実施の形態１にかかる記憶装置１の動作の一例を示すフローチャートである。以下、図４を参照しつつ、まず、記憶装置１におけるリード時の動作例を説明する。
【００２７】
ステップ１００（Ｓ１００）において、記憶装置１は、他の装置等からのリード指示を受信する。次に、ステップ１０１（Ｓ１０１）において、レベル判定回路１２が、タイマセル１０２の現在の閾値電圧を取得する。そして、ステップ１０２（Ｓ１０２）において、レベル判定回路１２は、取得した閾値電圧がリフレッシュ基準値に到達しているか否かを判定する。閾値電圧がリフレッシュ基準値に到達していないと判定された場合、処理はステップ１０３へ移行し、閾値電圧がリフレッシュ基準値に到達していると判定された場合、処理はステップ１０４へ移行する。ステップ１０３（Ｓ１０３）では、メモリセル１０１の閾値電圧の状態は正常なレベルであるため、メモリコントローラ１１は、リード処理を行う。
【００２８】
これに対し、ステップ１０４（Ｓ１０４）では、レベル判定回路１２は、取得した閾値電圧がリード限界基準値に到達しているか否かを判定する。閾値電圧がリード限界基準値に到達していると判定された場合、リードデータを適切に読み出すことができないため、メモリアクセス処理を終了する。閾値電圧がリード限界基準値に到達していないと判定された場合、処理は、ステップ１０５へ移行する。
【００２９】
ステップ１０５（Ｓ１０５）において、メモリコントローラ１１は、リード処理に加えリフレッシュ処理を行う。すなわち、メモリコントローラ１１は、リード処理を行うとともに、リードデータによる上書き処理をメモリセル１０１に対して行う。その後、処理はステップ１０６へ移行する。ステップ１０６（Ｓ１０６）において、メモリコントローラ１１は、タイマセル１０２の閾値電圧についてリセット処理を行う。
【００３０】
以上が、リード時の動作例の説明となる。次に、書き換え時の動作例について説明する。
ステップ１５０（Ｓ１５０）において、記憶装置１は、他の装置等からの書き換え指示を受信する。次に、ステップ１５１（Ｓ１５１）において、メモリコントローラ１１は、メモリセル１０１に対する最初の書き込みであるか否か、すなわち記憶装置１における最初の書き込みであるか否かを判定する。最初の書き込みである場合、処理はステップ１５２へ移行する。２回目以降の書き込みである場合、処理はステップ１５３へ移行する。ステップ１５２（Ｓ１５２）において、メモリコントローラは、タイマセル１０２のリセット処理を行い、タイマセルの閾値電圧を初期値に設定する。ステップ１５３（Ｓ１５３）において、メモリコントローラ１１は、メモリセル１０１の書き換え処理を実施する。
【００３１】
以上、実施の形態１にかかる記憶装置１について説明した。本実施の形態にかかる記憶装置１によれば、タイマセル１０２により、メモリセル１０１の現在の状態を推定することができる。このため、タイマ回路を設けることなくフラッシュメモリセルを管理することができる。また、タイマセル１０２の閾値電圧は、電源の有無によらず、メモリセル１０１と同様に変化するため、タイマ回路により経過時間を管理する場合にＲＴＣであることが要求されるという問題が回避される。なお、本実施の形態では、メモリセル１０１の閾値電圧を直接検出しないため、次のような効果がある。すなわち、メモリセル１０１の閾値電圧を直接検出する場合、メモリセル１０１に電圧を印加し、ゲート電圧をスイープすることにより閾値電圧を検出することとなるが、検出中はバイアスラインを共有する他のセルの保持電荷に影響を与えてしまい、データが改変してしまう恐れがある。本実施の形態では、メモリセル１０１の閾値電圧を直接検出するのではなく、タイマセル１０２の閾値電圧から推定しているため、このような問題の発生を回避することができる。また、メモリセル１０１の閾値電圧を個々に検出するよりも、複数のメモリセル１０１と関連付けられた１つのタイマセル１０２の閾値電圧だけを検出するほうが、検出にかかる所要時間を短くすることができるという利点もある。また、タイマセル１０２とメモリセル１０１によって共有されるバイアスラインが存在するよう記憶装置１が設計されている場合、検出にあたる所要時間の短縮は、検出時のメモリセル１０１へのストレスの低減につながる。すなわち、メモリセル１０１のデータが改変されてしまうことを抑制することができる。
【００３２】
なお、上述の実施の形態では、１つのタイマセル１０２を設ける場合の構成例について示した。しかしながら、タイマセル１０２は、複数設けられてもよい。例えば、タイマセル１０２は、書き換え単位であるメモリセル群（メモリブロック）ごとに設けられていてもよい。このような場合には、タイマセル１０２を設けるための追加面積が必要となるものの、冗長なリフレッシュ処理を低減することができる。すなわち、複数のメモリブロックで共通のタイマセル１０２を利用している場合、最も書き込みタイミングが古いメモリブロックの閾値電圧の状態に従ってリフレッシュ処理が行われるため、本来、リフレッシュ処理が必要でないにもかかわらずリフレッシュ処理が行われる恐れがある。メモリブロック毎に、タイマセル１０２を設けることにより、この点が改善される。なお、メモリブロック毎に、タイマセル１０２が設けられる場合、上記動作例において、最初の書き込みか否かにかかわらず、メモリコントローラ１１は、書き換え処理の実行の度に、書き換え対象のメモリブロックに対応するタイマセル１０２について、リセット処理することとなる。また、タイマセル１０２は、メモリブロック毎ではなく、所定数のメモリブロック毎に設けられていてもよい。
【００３３】
＜実施の形態２＞
次に、実施の形態２について説明する。実施の形態１にかかる記憶装置１では、メモリセル１０１の閾値電圧が、リード限界の電圧範囲に突入していると推測された場合には、リード処理は行わなかった。これに対し、実施の形態２では、メモリセル１０１の閾値電圧がリード限界の電圧範囲に突入していると推測される場合であっても、リードデータを取得することができる記憶装置について示す。
【００３４】
図５は、実施の形態２にかかる記憶装置２の構成の一例を示すブロック図である。図５に示されるように、記憶装置２は、複数のフラッシュメモリセル２０と、制御部２１と、データベース２２と、電流比較回路２３とを有している。
【００３５】
複数のフラッシュメモリセル２０は、図５に示されるように、書き換え単位毎にメモリブロック２００を構成している。メモリブロック２００は、１以上のメモリセル２０１と、１つのタイマセル２０２とを含んでいる。すなわち、本実施の形態では、タイマセル２０２は、書き換え単位であるメモリセル群毎、すなわちメモリブロック毎に設けられている。なお、本実施の形態では、一例として、タイマセル２０２はメモリブロック毎に設けられるが、タイマセル２０２は、記憶装置２に対し１つであってもよいし、所定数のメモリブロック毎に設けられていてもよい。メモリセル２０１は、実施の形態１におけるメモリセル１０１と同様であり、タイマセル２０２は、実施の形態１におけるタイマセル１０２と同様であるため、これらについての具体的な説明は省略する。
【００３６】
制御部２１は、メモリコントローラ及びＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などを有する電子回路である。制御部２１は、上述のメモリコントローラ１１と同様、メモリセル２０１に記憶されたデータのリード処理、メモリセル２０１に対するデータの書き換え処理、及びメモリセル２０１に対するリフレッシュ処理を行う。なお、制御部２１は、データ書き込み時、メモリブロック２００のメモリセル２０１に対しデータを書き込むとともに、このメモリブロック２００のタイマセル２０２のリセット処理を行う。
【００３７】
また、制御部２１は、上述のメモリコントローラ１１と同様、タイマセル２０２に対しリセット処理を行う。また、制御部２１は、メモリセル２０１の閾値電圧を操作する閾値電圧変更処理を行う。なお、閾値電圧変更処理の詳細については後述する。また、制御部２１は、タイマセル２０２の現在の閾値電圧を取得し、取得した閾値電圧及びデータベース２２の情報に基づいて、メモリセル１０１の現在の閾値電圧の電圧値を推定する。制御部２１の機能構成のうち、この推定処理を行う機能構成については、推定部とも称す。
【００３８】
データベース２２は、制御部２１に対し、計算用のデータを提供する記憶部であり、例えば不揮発性メモリなどの記憶装置により構成されている。具体的には、データベース２２は、タイマセル２０２の代表的なリテンション特性と、メモリセル２０１の代表的なリテンション特性との対応関係を記憶している。また、データベース２２は、メモリセル２０１の閾値電圧の変更処理に対する閾値電圧の電圧値の変更特性についても記憶している。制御部２１は、この変更特性を参照して、閾値電圧を所望の電圧値だけ変更するための閾値電圧変更処理を行う。
【００３９】
電流比較回路２３は、メモリセル２０１に所定の電圧をかけた際の電流を比較する。記憶装置２がシングル型のフラッシュメモリである場合、電流比較回路２３は、トランジスタに所定の電圧をかけた際の電流値を所定値と比較し、この所定値以上の電流が流れるか否かを判定する。また、記憶装置２が相補型のフラッシュメモリである場合、トランジスタに所定の電圧をかけた際の一方のトランジスタに流れる電流値と他方のトランジスタに流れる電流値とを比較し、電流がより多く流れるトラジスタがいずれであるかを判定する。制御部２１は、電流比較回路２３による比較結果を取得することにより、メモリセル２０１に格納されているデータを読み出す。
【００４０】
次に、制御部２１による推定処理について詳述する。制御部２１は、例えば、プログラムをＣＰＵにより実行することにより、推定処理を実現する。図６は、タイマセル２０２のリテンション特性の具体例を示すグラフである。図３と同様、図６において、縦軸はタイマセル２０２の閾値電圧の値を示し、横軸はタイマセル２０２の閾値電圧が初期値に設定されてからの経過時間を示している。図６を参照し、タイマセル２０２を用いた時間推定について説明する。タイマセル２０２のリテンション特性が予めわかっている場合、タイマセル２０２の閾値電圧の測定値から、閾値電圧が初期値に設定されてからの経過時間が特定される。しかしながら、図６に示されるように、タイマセル２０２のリテンション特性として、どのようなリテンション特性を用いて推定するかにより、推定される経過時間は異なる。経過時間を過小評価してしまうと、メモリセル２０１に設定された閾値電圧がリード限界の電圧範囲に突入した状態であること、もしくは突入間近な状態であることを看過してしまう恐れがある。タイマセル２０２のリテンション特性は、温度等の環境条件や個体差などにより、ばらつきがあるが、このような看過を防ぐため、本実施の形態では、想定される最良のリテンション特性（図中のＢｅｓｔケース参照）をタイマセル２０２の代表的なリテンション特性として用いる。よって、図６に示すように、本実施の形態では、タイマセル２０２の閾値電圧が測定されると、実際の経過時間ｔ１ではなく、経過時間ｔ２が推定されることとなる。このように、本実施の形態では、データベース２２におけるタイマセル２０２のリテンション特性が示す閾値電圧の経時変化の度合いは、タイマセル２０２の閾値電圧の実際の経時変化の度合いよりも小さい。
【００４１】
次に、メモリセル２０１の閾値電圧の推定について説明する。図７は、メモリセル２０１のリテンション特性の具体例を示すグラフである。なお、図７では、メモリセル２０１の閾値電圧をＶｔｈ_ｌｏｗに設定した場合のリテンション特性について示している。タイマセル２０２の閾値電圧の設定とメモリセル２０１の閾値電圧の設定とが同じタイミングで行われている場合、上述の通り、タイマセル２０２の閾値電圧の測定値から経過時間を推定することができる。また、図７に示すように、経過時間からは、メモリセル２０１の閾値電圧の電圧値を推定することができる。例えば、推定される経過時間がｔ３である場合、メモリセル２０１の閾値電圧値として、Ｖｔｈ１が推定される。同様に、推定される経過時間がｔ４である場合、メモリセル２０１の閾値電圧値として、Ｖｔｈ２が推定される。
【００４２】
ここで、図７に示すように、メモリセル２０１のリテンション特性として、どのようなリテンション特性を用いて推定するかにより、推定される閾値電圧が異なる。閾値電圧の劣化が過小評価されてしまうと、メモリセル２０１に設定された閾値電圧がリード限界の電圧範囲に突入した状態であること、もしくは突入間近な状態であることを看過してしまう恐れがある。メモリセル２０１のリテンション特性も、温度等の環境条件や個体差などにより、ばらつきがあるが、このような看過を防ぐため、本実施の形態では、想定される最悪のリテンション特性（図中のＷｏｒｓｔケース参照）をメモリセル２０１の代表的なリテンション特性として用いる。このように、本実施の形態では、データベース２２におけるメモリセル２０１のリテンション特性が示す閾値電圧の経時変化の度合いは、メモリセル２０１の閾値電圧の実際の経時変化の度合いよりも大きい。
上述の通り、本実施の形態では、推定に用いる、タイマセル２０２のリテンション特性及びメモリセル２０１のリテンション特性のそれぞれに、マージンを持たせている。このため、メモリセル２０１の閾値電圧のリード限界への突入を看過することを防ぐことができる。
【００４３】
制御部２１は、メモリセル２０１の推定した閾値電圧に応じて、リード指示を受領した際のメモリセル２０１に対する処理を決定する。具体的には、制御部２１は、メモリセル２０１の推定閾値電圧が、リフレッシュ基準値に到達していない場合（図７の電圧範囲Ｒ１参照）、リード処理を行い、メモリセル２０１の推定閾値電圧が、リフレッシュ基準値に到達している場合（図７の電圧範囲Ｒ２参照）、リード処理に加えリフレッシュ処理を実施する。また、制御部２１は、メモリセル２０１の推定閾値電圧が、さらに劣化してリード限界基準値に到達している場合（図７の電圧範囲Ｒ３参照）、メモリセル２０１に対し閾値電圧変更処理を行う。
【００４４】
次に、データベース２２が記憶する、タイマセル２０２のリテンション特性とメモリセル２０１のリテンション特性との対応関係について、具体例を用いて示す。図８は、データベース２２に記憶されるリテンション特性の対応関係を図示したグラフである。また、図９は、図８に示す対応関係をテーブルとして記憶する場合の一例を示す表である。図９に示すように、タイマセル２０２の閾値電圧と、閾値電圧を設定してからの経過時間と、メモリセル２０１の閾値電圧とを対応付けたテーブルをデータベース２２が記憶していてもよい。図９に示したテーブルでは、具体的には、タイマセル２０２の想定される最良のリテンション特性（ベストケースのリテンション特性）における電圧値と、閾値電圧を設定してからの経過時間と、メモリセル２０１の想定される最悪のリテンション特性（ワーストケースのリテンション特性）における電圧値とが格納されている。
【００４５】
なお、後述するように、本実施の形態では、Ｌｏｗ側データを記憶するために設定される閾値電圧、すなわち、書き込みの際、Ｖｔｈ_ｌｏｗに設定された閾値電圧の推定値により、制御部２１は処理を決定する。したがって、テーブルには、メモリセル２０１の代表的なリテンション特性として、Ｌｏｗ側データを記憶するために設定される閾値電圧のリテンション特性及びＨｉｇｈ側データを記憶するために設定される閾値電圧のリテンション特性の両方ではなく、Ｌｏｗ側データを記憶するために設定される閾値電圧のリテンション特性のみが格納されていてもよい。また、本実施の形態においては、タイマセル２０２の閾値電圧の値から、メモリセル２０１の閾値電圧の推定値がわかればよいため、テーブルは、経過時間については格納していなくてもよい。
【００４６】
データベース２２は、必ずしもテーブルにより、対応関係を記憶していなくてもよい。データベース２２が記憶するデータ形式としては任意のデータ形式が可能である。例えば、リテンション特性についてモデル化が可能である場合には、タイマセル２０２の閾値電圧からメモリセル２０１の閾値電圧を算出する演算式を格納していてもよい。
【００４７】
例えば、タイマセル２０２のベストケースのリテンション特性が下記式（１）のように関数ｆによりモデル化されるとする。同様に、メモリセル２０１のワーストケースのリテンション特性（Ｌｏｗ側データを記憶するために設定される閾値電圧のリテンション特性）が下記式（２）のように関数ｇによりモデル化され、メモリセル２０１のワーストケースのリテンション特性（Ｈｉｇｈ側データを記憶するために設定される閾値電圧のリテンション特性）が下記式（３）のように関数ｈによりモデル化されるとする。なお、式（１）〜（３）において、ａＴ、ｂＴ、・・・、ａＭＨ、ｂＭＨ、・・・、及びａＭＬ、ｂＭＬ、・・・は、それぞれ実験又はシミュレーションなどにより決定されるパラメータである。また、ｔは時間を示す変数であり、ＶｔｈＴは、タイマセル２０２の現在の閾値電圧の値を示し、ＶｔｈＭＨは、Ｖｔｈ_ｈｉｇｈに閾値電圧が設定されたメモリセル２０１の現在の閾値電圧の値を示し、ＶｔｈＭＬは、Ｖｔｈ_ｌｏｗに閾値電圧が設定されたメモリセル２０１の現在の閾値電圧の値を示す。
【００４８】
【数１】
2018045742.tif 000003
【数２】
2018045742.tif 000004
【数３】
2018045742.tif 000005
【００４９】
これらの式からメモリセル２０１の閾値電圧ＶｔｈＭＨ及びＶｔｈＭＬを算出することができる。データベース２２は、テーブルの代わりに、この演算式を記憶していてもよい。
【００５０】
テーブルにより対応関係が示されている場合、メモリセル２０１の閾値電圧の推定に際し、数値計算を省略することが可能である。例えば、式（１）〜（３）などのモデル化が難しい場合に、テーブルが用いられる。また、演算式により対応関係が示される場合、書き換え回数などを示すパラメータを加えてモデル化することにより、推定精度を向上させることも可能である。
【００５１】
制御部２１は、データベース２２に記憶された対応関係を用いて、タイマセル２０２の現在の閾値電圧からメモリセル２０１の現在の閾値電圧を推定し、メモリセル２０１の閾値電圧が、リフレッシュ処理を要する電圧範囲に到達しているか否か、及びリード限界の電圧範囲に到達しているか否かを判定する。このため、タイマ回路を設けることなくフラッシュメモリセルの閾値電圧を管理することができる。以下、制御部２１における推定と、閾値電圧変更処理についてさらに説明する。本実施の形態では、制御部２１は、上述の通り、リード時、タイマセル２０２の閾値電圧から、読み出し対象のメモリセル２０１の閾値電圧を推定する。制御部２１は、この推定された閾値電圧の値がリード限界に到達していると判定された場合（図７の電圧範囲Ｒ３参照）、読み出し対象のメモリセル２０１に対し閾値電圧変更処理を行う。閾値電圧変更処理では、制御部２１は、メモリセル２０１の現在の閾値電圧の推定値と、リード限界の電圧範囲の境界値との差分に応じた電圧値だけメモリセル２０１の閾値電圧を変化させる。その後、制御部２１は、メモリセル２０１のリードデータを取得する。
【００５２】
以下、制御部２１の動作について、さらに詳細に説明する。本実施の形態では、制御部２１は、次のように動作する。まず、制御部２１は、メモリセル２０１の閾値電圧の推定の際、読み出し対象のメモリセル２０１が、Ｌｏｗ側データが格納されたメモリセルであると仮定して、閾値電圧の値を推定する。つまり、制御部２１は、Ｖｔｈ_ｌｏｗに閾値電圧が設定された場合のメモリセル２０１の現在の閾値電圧の値を推定する。
【００５３】
制御部２１は、この推定された閾値電圧の値がリード限界に到達していると判定された場合、次の通り、閾値電圧変更処理を行う。制御部２１は、Ｖｔｈ_ｌｏｗに閾値電圧が設定されたと仮定したメモリセル２０１の現在の閾値電圧の推定値が、リード限界の電圧範囲の下限値を超える場合、その差分を算出する。そして、制御部２１は、データベース２２に格納された電圧値の変更特性を参照し、差分に応じた電圧値だけメモリセル２０１の閾値電圧を減少させる。すなわち、制御部２１は、メモリセル２０１の消去処理をこの差分だけ行う。その後、制御部２１は、電流比較回路２３による判定結果を取得する。これについて、図を用いてさらに説明する。
【００５４】
Ｖｔｈ_ｌｏｗに閾値電圧が設定されたメモリセル２０１のリテンション特性とＶｔｈ_ｈｉｇｈに閾値電圧が設定されたメモリセル２０１のリテンション特性とが交差するタイミングより前にリードが行われる場合、メモリセル２０１のリードデータが不定となる状態としては、図１０Ａ〜図１０Ｃの３つの状態が考えられる。
【００５５】
図１０Ａに示される状態は、Ｖｔｈ_ｌｏｗに閾値電圧が設定されたメモリセル２０１のリテンション特性に対応する推定値がリード限界の電圧範囲に到達しているものの、Ｖｔｈ_ｈｉｇｈに閾値電圧が設定されたメモリセル２０１のリテンション特性に対応する推定値はリード限界の電圧範囲に到達していない状態である。この場合、メモリセル２０１にＨｉｇｈ側データが格納されているときには、正常にリード処理が可能であるが、メモリセル２０１にＬｏｗ側データが格納されているときには、リードデータが不定となりうる。なお、本実施の形態では、上述のマージンがあるため、必ずしも不定とはならず、実際には正常にリードできる可能性がある。
【００５６】
図１０Ｂに示される状態は、Ｖｔｈ_ｌｏｗに閾値電圧が設定されたメモリセル２０１のリテンション特性に対応する推定値も、Ｖｔｈ_ｈｉｇｈに閾値電圧が設定されたメモリセル２０１のリテンション特性に対応する推定値も、リード限界の電圧範囲に到達している状態である。この場合、メモリセル２０１にＨｉｇｈ側データが格納されているときも、メモリセル２０１にＬｏｗ側データが格納されているときも、リードデータが不定となりうる。なお、この場合も、上述のマージンがあるため、必ずしも不定とはならず、実際には正常にリードできる可能性がある。
【００５７】
図１０Ｃに示される状態は、Ｖｔｈ_ｌｏｗに閾値電圧が設定されたメモリセル２０１のリテンション特性に対応する推定値はリード限界の電圧範囲に到達していないものの、Ｖｔｈ_ｈｉｇｈに閾値電圧が設定されたメモリセル２０１のリテンション特性に対応する推定値がリード限界の電圧範囲に到達している状態である。この場合、メモリセル２０１にＬｏｗ側データが格納されているときには、正常にリード処理が可能であるが、メモリセル２０１にＨｉｇｈ側データが格納されているときには、リードデータが不定となりうる。なお、この場合も、上述のマージンがあるため、必ずしも不定とはならず、実際には正常にリードできる可能性がある。
【００５８】
上述の通り、本実施の形態では、制御部２１は、閾値電圧がＶｔｈ_ｌｏｗに設定されていると仮定した上で、メモリセル２０１の現在の閾値電圧の推定値を取得する。これにより、図１０Ａ及び図１０Ｂに示される場合には、制御部２１は、メモリセル２０１の閾値電圧がリード限界に到達していると判定する。このように、推定を行う際、実際に格納されているデータがＬｏｗ側データであるのかＨｉｇｈ側データであるのか不明であるため、制御部２１は、格納されているデータがＬｏｗ側データであるとの仮定の下、Ｖｔｈ_ｌｏｗに閾値電圧が設定された場合のメモリセル２０１の現在の閾値電圧の推定値から、メモリセル２０１の閾値電圧がリード限界に到達しているか否かを判定する。なお、図１０Ｃに示した状態では、Ｖｔｈ_ｌｏｗに閾値電圧が設定された場合のメモリセル２０１の現在の閾値電圧の推定値はリード限界に到達していないため（すなわち、図１０Ｃに示すように後述するΔＶｔｈが負であるため）、制御部２１は、メモリセル２０１の閾値電圧がリード限界に到達しているとは判定しない。
【００５９】
推定値が得られると、制御部２１は、推定値から、予め既知であるリード限界の電圧範囲の下限値を減算し、差分ΔＶｔｈを算出する。制御部２１は、差分ΔＶｔｈを算出すると、ΔＶｔｈだけメモリセル２０１の閾値電圧を減少させるよう、閾値電圧を操作する。
【００６０】
図１１は、図１０Ａに示す状態において、制御部２１が閾値電圧を操作した場合の様子を示すグラフである。なお、図１０Ｂに示す状態において、制御部２１が閾値電圧を操作した場合も、図１１と同様、ΔＶｔｈだけメモリセル２０１の閾値電圧は減少する。図１１に示すように、制御部２１による閾値電圧の操作により、閾値電圧がＶｔｈ_ｌｏｗに設定されたメモリセル２０１の現在の閾値電圧は、リード限界の電圧範囲を脱することとなる。したがって、メモリセル２０１がＬｏｗ側データを格納している場合には、閾値電圧の操作後にリード処理が行われると、リードデータとしてＬｏｗ側データが正常に取得される。一方、メモリセル２０１がＨｉｇｈ側データを格納している場合には、閾値電圧の操作後にリード処理が行われると、リードデータとしてＨｉｇｈ側データが正常に取得されるか、又は、リードデータが不定となる。すなわち、メモリセル２０１がＨｉｇｈ側データを格納している場合、このメモリセル２０１の閾値電圧の値が、閾値電圧の操作後も依然としてリード限界の上限電圧値よりも高いときには、リードデータとしてＨｉｇｈ側データが取得される。また、メモリセル２０１がＨｉｇｈ側データを格納している場合、このメモリセル２０１の閾値電圧の値が、閾値電圧の操作後にリード限界の電圧範囲内にあるときには、リードデータが不定となる。なお、リードデータが不定であるか否かについては、例えば、リード処理を繰り返し行い、リードデータが常に同じであるか否かにより判定可能である。なお、この繰り返し行われるリード処理の際、ΔＶｔｈだけ変化させた閾値電圧を、予め定められた変動値だけわずかに増減させてリード処理を行ってもよい。このように、メモリセル２０１の閾値電圧の推定値が、リード限界の電圧範囲に到達している場合であっても、本実施の形態では、メモリセル２０１の閾値電圧の電圧値を操作することにより、このメモリセル２０１に格納されているデータを取得することができる。
【００６１】
ここで、上記説明を補足する。メモリセル２０１の閾値電圧の推定時においては、メモリセル２０１に格納されているデータは不明であるものの、上述の通り、閾値電圧がリード限界に到達しているか否かについては判定可能である。特に、リード処理が正常に行われるか否かについては、正確に判定することが可能である。その理由は、上述のマージンがあるため、閾値電圧の推定値がリード限界に到達していないならば、メモリセル２０１が破壊していない限り、必ずリード可能であるためである。
【００６２】
また、上述の通り、本実施の形態では、閾値電圧がリード限界の電圧範囲に到達していると判定された場合、制御部２１は、格納されているデータをＬｏｗ側データだとみなし、Ｌｏｗ側データが正常にリード可能なレベルに届くためのΔＶｔｈを算出し、このΔＶｔｈだけ消去処理を行う。その後、制御部２１は、メモリセル２０１にリード処理のための所定電圧を印加した際のセル電流の判定結果を、電流比較回路２３から取得する。その判定結果がＬｏｗ側データを示す場合、格納されていたデータがＬｏｗ側データであったことが判明する。そして、判定結果がＨｉｇｈ側データを示す場合、もしくはいずれにも一意に定まらない場合、格納されていたデータがＨｉｇｈ側データであったことが判明する。
【００６３】
なぜなら、閾値電圧の操作によって、Ｌｏｗ側データとして正常にリードできる電圧値に閾値電圧が設定し直された後には、上述のマージンがあるため、メモリセル２０１が破壊していない限り、必ずＬｏｗ側データとして正常にリード可能であるからである。また、閾値電圧の操作による閾値電圧の変化はΔＶｔｈだけであるため、格納されているデータがＨｉｇｈ側データであったとしても、メモリセル２０１の操作後の閾値電圧は、リード限界の電圧範囲の下限以上である。つまり、Ｈｉｇｈ側データが格納されているメモリセル２０１の閾値電圧は、閾値電圧の操作が行われた後も、必ずリード限界の電圧範囲の下限よりも大きいといえる。なぜならば、上述のマージンがあるためである。したがって、Ｈｉｇｈ側データが格納されている場合、閾値電圧の操作後、Ｌｏｗ側データとして正常にリードデータが取得されることはない。
【００６４】
なお、本実施の形態では、図１０Ｃに示した状態では、Ｖｔｈ_ｌｏｗに閾値電圧が設定されたと仮定したメモリセル２０１の現在の閾値電圧の推定値がリード限界に到達していないため、閾値電圧変更処理が行われずに、リード処理が行われる。この場合、メモリセル２０１に実際に格納されているデータがＬｏｗ側データである場合、リードデータとしてＬｏｗ側データが正常に取得される。一方、メモリセル２０１に実際に格納されているデータがＨｉｇｈ側データである場合、リードデータは不定となりうる。しかしながら、上述の通り、本実施の形態では、マージンを伴う推定を行っているため、メモリセル２０１の実際の閾値電圧はリード限界の電圧範囲よりも高いことが想定される。このため、メモリセル２０１に実際に格納されているデータがＨｉｇｈ側データである場合も、Ｈｉｇｈ側データが正常に取得されることが期待される。なお、図１０Ｃに示した状態においてメモリセル２０１に実際に格納されているデータがＨｉｇｈ側データである場合に、より確実にデータを取得するために、Ｖｔｈ_ｈｉｇｈに閾値電圧が設定されたと仮定したメモリセル２０１の現在の閾値電圧についても、推定してもよい。Ｖｔｈ_ｌｏｗに閾値電圧が設定されたと仮定したメモリセル２０１の推定値と、Ｖｔｈ_ｈｉｇｈに閾値電圧が設定されたと仮定したメモリセル２０１の推定値から、図１０Ｃに示す状態であることが特定できるためである。また、図１０Ｃに示す状態であることが特定できた場合、リードデータとしてＨｉｇｈ側データが正常に取得されるか、又は、リードデータが不定となるならば、メモリセル２０１にＨｉｇｈ側データが格納されていたことを特定できる。
【００６５】
以上説明した通り、本実施の形態によれば、Ｖｔｈ_ｌｏｗに閾値電圧が設定されたメモリセル２０１のリテンション特性とＶｔｈ_ｈｉｇｈに閾値電圧が設定されたメモリセル２０１のリテンション特性とが交差するタイミングより前にリードが行われる限り、リードデータを取得することが可能となる。しかしながら、図１２に示すように、Ｖｔｈ_ｌｏｗに閾値電圧が設定されたメモリセル２０１のリテンション特性とＶｔｈ_ｈｉｇｈに閾値電圧が設定されたメモリセル２０１のリテンション特性とが交差するまで時間が経過した場合や、タイマセル２０２の閾値電圧がリード限界の電圧範囲に到達するまで時間が経過した場合には、リードデータは保証されない。
【００６６】
次に、実施の形態２にかかる記憶装置２の動作例について説明する。図１３Ａ及び図１３Ｂは、実施の形態２にかかる記憶装置２の動作の一例を示すフローチャートである。まず、記憶装置２における書き換え時の動作例を説明する。
【００６７】
ステップ２００（Ｓ２００）において、記憶装置２は、他の装置等からの書き換え指示を受信する。次に、ステップ２０１（Ｓ２０１）において、制御部２１は、メモリセル２０１の書き換え処理を実施する。次に、ステップ２０２（Ｓ２０２）において、制御部２１は、書き換えた対象のメモリブロック２００に対応するタイマセル２０２に対し、リセット処理を行う。以上が書き換え時の動作となる。
【００６８】
次に、リード時の動作例について説明する。
ステップ２５０（Ｓ２５０）において、記憶装置２は、他の装置等からのリード指示を受信する。次に、ステップ２５１（Ｓ２５１）において、制御部２１が、リード対象のメモリブロック２００のタイマセル２０２の現在の閾値電圧を取得する。
【００６９】
次に、ステップ２５２（Ｓ２５２）において、制御部２１は、ステップ２５１で取得したタイマセル２０２の現在の閾値電圧から、リード対象のメモリセル２０１の現在の閾値電圧の電圧値を推定する。具体的には、制御部２１は、リード対象のメモリセル２０１はＶｔｈ_ｌｏｗに閾値電圧が設定されたものであると仮定して、メモリセル２０１の現在の閾値電圧の推定値を取得する。
【００７０】
次に、ステップ２５３（Ｓ２５３）において、制御部２１は、ステップ２５２で推定された閾値電圧がリフレッシュ基準値に到達しているか否かを判定する。閾値電圧がリフレッシュ基準値に到達していないと判定された場合、処理はステップ２５４へ移行し、閾値電圧がリフレッシュ基準値に到達していると判定された場合、処理はステップ２５５へ移行する。ステップ２５４（Ｓ２５４）では、メモリセル２０１の閾値電圧の状態は正常なレベルであるため、制御部２１は、リード処理を行う。
【００７１】
これに対し、ステップ２５５（Ｓ２５５）では、制御部２１は、ステップ２５２で推定された閾値電圧がリード限界基準値に到達しているか否かを判定する。閾値電圧がリード限界基準値に到達していないと判定された場合、処理は、ステップ２５６へ移行する。閾値電圧がリード限界基準値に到達していると判定された場合、閾値電圧変更処理を行ったうえでリードデータを取得するため、処理はステップ２５８へ移行する。
【００７２】
ステップ２５６（Ｓ２５６）において、制御部２１は、リード処理に加えリフレッシュ処理を行う。すなわち、制御部２１は、リード処理を行うとともに、リードデータによる上書き処理をメモリセル２０１に対して行う。その後、処理はステップ２５７へ移行する。ステップ２５７（Ｓ２５７）において、制御部２１は、タイマセル２０２の閾値電圧についてリセット処理を行う。
【００７３】
閾値電圧がリード限界基準値に到達していると判定された場合、ステップ２５８（Ｓ２５８）において、制御部２１は、リード限界の電圧範囲の境界値と、ステップ２５２で推定された閾値電圧との差分を算出する。次に、ステップ２５９（Ｓ２５９）において、制御部２１は、ステップ２５８で計算された差分に応じた電圧値だけ、メモリセル２０１の閾値電圧を変化させる。
【００７４】
次に、ステップ２６０（Ｓ２６０）において、制御部２１は、メモリセル２０１にリード処理のための所定電圧を印加した際のセル電流の判定結果を、電流比較回路２３から取得する。そして、ステップ２６１（Ｓ２６２）において、制御部２１は、セル電流の判定結果がＬｏｗ側データを示すか否かを判定する。セル電流の判定結果がＬｏｗ側データを示す場合、処理はステップ２６２へ移行する。セル電流の判定結果がＬｏｗ側データを示さない場合、すなわち、判定結果がＨｉｇｈ側データを示す場合、又は判定結果が不定である場合、処理はステップ２６３へ移行する。
【００７５】
ステップ２６２（Ｓ２６２）において、制御部２１は、リードデータとして、Ｌｏｗ側データを取得する。また、制御部２１は、リードデータによる上書き処理をメモリセル２０１に対して行う。その後、処理は、ステップ２６４へ移行する。ステップ２６３（Ｓ２６３）では、制御部２１は、リードデータとして、Ｈｉｇｈ側データを取得する。また、制御部２１は、リードデータによる上書き処理をメモリセル２０１に対して行う。
このように、制御部２１は、閾値電圧を変化させた後に取得されたリードデータと同じデータを、メモリセル２０１に再度書き込む。このため、閾値電圧が回復し、リテンション期間を長くすることが可能となる。
【００７６】
その後、処理は、ステップ２６４へ移行する。ステップ２６４（Ｓ２６４）において、制御部２１は、ステップ２５１において閾値電圧を取得したタイマセル２０２の閾値電圧についてリセット処理を行う。以上が、リード時の動作例の説明となる。
【００７７】
以上、実施の形態２にかかる記憶装置２について説明した。本実施の形態によれば、メモリセル２０１の閾値電圧が、リード限界の電圧範囲に突入していると推測された場合には、閾値電圧変更処理を行い、リードデータを取得する。このため、メモリセル２０１の閾値電圧がリード限界の電圧範囲に突入していると推測される場合であっても、リードデータを取得することができる。なお、本実施の形態では、タイマセル２０２は、書き換え単位であるメモリセル群ごとに設けられているが、タイマセル２０２は記憶装置２に対し１つであってもよい。また、タイマセル２０２は、所定数のメモリブロック毎に設けられていてもよい。
【００７８】
＜実施の形態２の変形例＞
次に、実施の形態２の変形例について説明する。上記の実施の形態２では、タイマセル２０２を用いて、メモリセル２０１の閾値電圧の現在の値を推定したが、本実施の形態では、タイマを用いて、メモリセル２０１の閾値電圧の現在の値を推定する。
【００７９】
図１４は、実施の形態２の変形例にかかる記憶装置３の構成の一例を示すブロック図である。図１４に示されるように、実施の形態２にかかる記憶装置２と異なり、各メモリブロック２００は、タイマセル２０２を有していない。その代わりに、タイマ３０を有している。タイマ３０は、時間を測定する電子回路である。タイマ３０はＲＴＣであってもよい。また、実施の形態２にかかる記憶装置２では、データベース２２は、タイマセル２０２のリテンション特性と、メモリセル２０１のリテンション特性との対応関係を記憶していたが、本変形例にかかる記憶装置３のデータベース２２は、これに代えて、メモリセル２０１のリテンション特性を記憶している。データベース２２は、メモリセル２０１のリテンション特性を記憶するために、例えば、図１５に示すようなテーブルを記憶している。
【００８０】
本変形例では、制御部２１は、書き込みが行われた時にタイマ３０から取得された時刻とリードが行われる時にタイマ３０から取得される時刻とから、経過時間を算出する。そして、制御部２１は、算出された経過時間及びデータベース２２に記憶されたメモリセル２０１のリテンション特性から、メモリセル２０１の現在の閾値電圧の推定値を取得する。記憶装置３が、メモリセル２０１の現在の閾値電圧の推定値を推定した後の動作は、実施の形態２と同様であるため、説明を割愛する。
【００８１】
本変形例では、タイマ回路が必要となるものの、実施の形態２と同様、メモリセル２０１の閾値電圧がリード限界の電圧範囲に突入していると推測される場合であっても、リードデータを取得することができる。
【００８２】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。例えば、上記実施の形態では、推定に用いる、タイマセルのリテンション特性及びメモリセルのリテンション特性のそれぞれに、マージンを持たせているが、マージンはいずれか一方の特性のみに持たせてもよいし、いずれにも持たせなくてもよい。ただし、リードデータを誤って取得する可能性を抑制するためには、両方のリテンション特性に対しマージンを持たせた上で、推定が行われた方が好ましい。
【００８３】
また、上記実施の形態２及びその変形例では、制御部２１は、読み出し対象のメモリセル２０１が、Ｌｏｗ側データが格納されたメモリセルであると仮定して、Ｖｔｈ_ｌｏｗに閾値電圧が設定されたメモリセル２０１の現在の閾値電圧の値を推定した。しかしながら、制御部２１は、Ｈｉｇｈ側データが格納されたメモリセルであると仮定して、Ｖｔｈ_ｈｉｇｈに閾値電圧が設定されたメモリセル２０１の現在の閾値電圧の値を推定してもよい。この場合、推定された閾値電圧がリード限界に突入していると判定されると、制御部２１は、リード限界の電圧範囲の上限電圧値と、推定された閾値電圧との差分を算出する。そして、制御部２１は、算出した差分に応じた電圧値だけメモリセル２０１の閾値電圧を増加させる。制御部２１は、その後、リード処理を行う。その際、制御部２１は、セル電流の判定結果がＨｉｇｈ側データを示す場合、Ｈｉｇｈ側データをリードデータとして取得し、セル電流の判定結果がＨｉｇｈ側データを示さない場合、すなわち、判定結果がＬｏｗ側データを示す場合、又は判定結果が不定である場合、Ｌｏｗ側データをリードデータとして取得する。
【００８４】
また、上述の説明では、各実施の形態をハードウェアの構成として説明したが、各実施の形態は、これに限定されるものではない。各実施の形態は、任意の処理を、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等のプロセッサにコンピュータプログラムを実行させることにより実現することも可能である。
【００８５】
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（ｔａｎｇｉｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００８６】
また、上記実施の形態及び変形例は、以下の付記のようにも記載され得る。
【００８７】
（付記１）
タイマ回路と、
フラッシュメモリセルのリテンション特性を記憶する記憶部と、
前記タイマ回路により計測された経過時間と、前記記憶部に記憶された前記リテンション特性とを用いて、前記フラッシュメモリセルの現在の閾値電圧を推定し、現在の前記閾値電圧が、前記フラッシュメモリセルのリードデータが不定となる所定の電圧範囲に到達しているか否かを判定する推定部と
を有する記憶装置。
【００８８】
（付記２）
前記制御部 は、前記閾値電圧が前記電圧範囲に到達していると判定された場合、推定された前記閾値電圧と前記電圧範囲の境界値との差分に応じた電圧値だけ前記閾値電圧を変化させた後、前記フラッシュメモリセルのリードデータを取得する制御部
をさらに有する付記１に記載の記憶装置。
【００８９】
（付記３）
前記制御部は、前記閾値電圧を変化させた後に取得されたリードデータと同じデータを、前記フラッシュメモリセルに再度書き込む
付記２に記載の記憶装置。
【符号の説明】
【００９０】
１、２、３    記憶装置
１０、２０    フラッシュメモリセル
１１    メモリコントローラ
１２    レベル判定回路
２１    制御部
２２    データベース
２３    電流比較回路
３０    タイマ
１０１、２０１    メモリセル
１０２、２０２    タイマセル
２００    メモリブロック
【図１】
2018045742.tif 000006
【図２】
2018045742.tif 000007
【図３】
2018045742.tif 000008
【図４】
2018045742.tif 000009
【図５】
2018045742.tif 000010
【図６】
2018045742.tif 000011
【図７】
2018045742.tif 000012
【図８】
2018045742.tif 000013
【図９】
2018045742.tif 000014
【図１０Ａ】
2018045742.tif 000015
【図１０Ｂ】
2018045742.tif 000016
【図１０Ｃ】
2018045742.tif 000017
【図１１】
2018045742.tif 000018
【図１２】
2018045742.tif 000019
【図１３Ａ】
2018045742.tif 000020
【図１３Ｂ】
2018045742.tif 000021
【図１４】
2018045742.tif 000022
【図１５】
2018045742.tif 000023