(57)【要約】【課題】駆動電圧生成回路（昇圧回路）を大規模化することなく動作保証外の電源電圧による不揮発性メモリへの読み出し動作を禁止することができる不揮発性メモリシステムを提供する。【解決手段】電源電圧が予め決められた下限電圧以下である場合に読み出し誤りが生じるレベルの電荷をフローティングゲートに蓄積した不揮発性メモリである下限電圧検知用メモリセルを用意する。下限電圧検知用メモリセルの読み出し動作において読み出し誤りが生じないことを条件に、通常メモリセルの読み出し動作を行う。【選択図】図１
2007242068.tif 000002
【特許請求の範囲】
【請求項１】
電源電圧を基に駆動電圧を生成する駆動電圧生成回路と、
記憶するデータに応じた極性の電荷を、前記駆動電圧生成回路が生成した前記駆動用電圧に応じたレベルでフローティングゲートに蓄積して記憶を行い、読み出しおよび書き込みの対象となる不揮発性メモリである複数の通常メモリセルと、
前記電源電圧が予め決められた下限電圧以下である場合に読み出し誤りが生じるレベルの電荷をフローティングゲートに蓄積した不揮発性メモリである下限電圧検知用メモリセルと、
前記下限電圧検知用メモリセルの読み出し動作において読み出し誤りが生じていない場合に、前記通常メモリセルの読み出し結果を出力する制御回路と
を有する不揮発性メモリシステム。
【請求項２】
前記電源電圧が予め決められた上限電圧以上である場合に読み出し誤りが生じるレベルの電荷を前記フローティングゲートに蓄積した不揮発性メモリである上限電圧検知用メモリセル
をさらに有し、
前記制御回路は、前記下限電圧検知用メモリセルおよび前記上限電圧検知用メモリセルの双方の読み出し動作において読み出し誤りが生じていない場合に、前記通常メモリセルの読み出し結果を出力する
請求項１に記載の不揮発性メモリシステム。
【請求項３】
前記下限電圧検知用メモリセルに対する書き込み動作が禁止されている
請求項１に記載の不揮発性メモリシステム。
【請求項４】
前記制御回路は、前記下限電圧検知用メモリセルの読み出し動作において読み出し誤りが生じたと判断するとリセット動作を行う
請求項１に記載の不揮発性メモリシステム。
【請求項５】
前記下限電圧検知用メモリセルには、正の電荷が蓄積されている
請求項１に記載の不揮発性メモリシステム。
【請求項６】
前記上限電圧検知用メモリセルには、負の電荷が蓄積されている
請求項２に記載の不揮発性メモリシステム。
【請求項７】
記憶するデータに応じた極性の電荷を、前記駆動電圧生成回路が生成した前記駆動用電圧に応じたレベルでフローティングゲートに蓄積して記憶を行う不揮発性メモリである複数の通常メモリセルの読み出し動作を行うメモリ制御方法であって、
電源電圧が予め決められた下限電圧以下である場合に読み出し誤りが生じるレベルの電荷がフローティングゲートに蓄積された不揮発性メモリである下限電圧検知用メモリセルの読み出し動作を行う第１の工程と、
前記第１の工程における前記下限電圧検知用メモリセルの読み出し動作において読み出し誤りが生じたか否かを判断する第２の工程と、
前記第２の工程において読み出し誤りが生じていないと判断した場合に、前記通常メモリセルの読み出し結果を出力する第３の工程と
を有するメモリ制御方法。
【請求項８】
前記電源電圧が予め決められた上限電圧以上である場合に読み出し誤りが生じるレベルの電荷を前記フローティングゲートに蓄積した不揮発性メモリである上限電圧検知用メモリセルの読み出し動作を行う第４の工程
をさらに有し、
前記第３の工程は、前記第２の工程および前記第４の工程において読み出し誤りが生じていない場合に、前記通常メモリセルの読み出し結果を出力する
請求項７に記載のメモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不正な環境での読み出し動作を禁止する不揮発性メモリシステムおよび不揮発性メモリ制御方法に関する。
【背景技術】
【０００２】
例えば、ＩＣ(Integrated Circuit)カード等のセキュリティＬＳＩ(Large Scale Integration)では、他の機器とのデータのやり取りには暗号化したデータで行なうため、ＬＳＩ内部に暗号エンジンを搭載し、多くの場合、その鍵等の機密情報を格納するために不揮発性メモリを搭載している。そして、セキュリティＬＳＩは、機密情報を不正に得ようとする攻撃者によって種々の方法で攻撃される。攻撃の手法としは、例えば、以下に示すものがある。
（１）仕様書で定義されている範囲外の動作環境（電圧、クロック周波数等）で動作させる事によって誤動作を起こさせ、その誤動作による結果を解析する事によって機密情報（暗号鍵等）を取り出す。
（２）複数の入力値で暗号エンジンを動作させている時に、消費電流波形を取得し、その電流波形を統計処理する事により暗号鍵を取り出す（ＤＰＡ攻撃：Differential Power Analysis ）。
（３）ＬＳＩを開封して、暗号エンジンを動作させている時に、レーザー照射等によって誤動作を起させ、その結果の解析により暗号鍵を取り出す（ＤＦＡ攻撃：Differential Fault Analysis ）等があり、各々に対して対抗策を搭載している。
【０００３】
上記（２）、（３）の攻撃に関しては、暗号エンジンの論理回路に対抗策を載せたり、暗号エンジンの周辺に対抗策を載せたりして対処している。
上記（１）の攻撃に関しては、電圧検知回路や周波数検知回路等を搭載し、定義されている範囲外の電圧・周波数等が入力された時には、検知回路が検知信号を発行し、それを受けてシステム側でリセットを掛ける等を行なって、攻撃に対処する。
【０００４】
電圧検知回路や周波数検知回路、また最近では定義されている温度範囲外での攻撃に対処するために、温度検知回路等も搭載されている製品もある。
例えば、図２０に示すように、電源電圧の仕様が 2.50Ｖ±10% の場合、動作保証範囲は 2.25Ｖ〜2.75Ｖであるが、設計・評価においては、例えば 0.1Ｖのマージンを見込んで、2.15Ｖ〜2.85Ｖの範囲内で設計・評価を行なう。そして、保証範囲外の電圧の供給で誤動作を起こさせて、誤動作の出力結果から機密情報を取り出す攻撃に対処するために、例えば、2.15Ｖ以下または2.85Ｖ以上を検知する電圧検知回路を搭載し、その検知回路が保証範囲外の電圧を検知した場合、ＣＰＵに対してリセット信号を発生する構成を取る。外部から供給されるシステムクロックの周波数や動作温度に対しても、同様の対策が取られ、これによって、保証されていない動作環境での動作によって、誤動作を起こさせ、その誤動作に起因した演算結果から機密情報を取り出す攻撃に対処できる。
【０００５】
しかし、これらの検知回路はいずれもアナログ回路で設計されるため、プロセスバラツキを持つ。このため、例えば下限側の検知する電圧を 2.15V に設計する場合、プロセスバラツキを考慮すると、その分布の上限が 2.15V になる様に設計する。この時、プロセスバラツキによる分布幅を例えば 0.1V とした時、電圧検出回路の電圧の下限は 2.05V となる。そして、セキュリティ用途に使われるＬＳＩの場合、電圧検知回路によって検知される電圧までは、セキュリティ上、誤動作が発生しない様に動作を保証する必要があるため、2.05V までは正常に動作する様に設計する必要がある。
【０００６】
低電圧で設計する場合、問題となる回路ブロックの１つが不揮発性メモリである。不揮発性メモリとしてＥＥＰＲＯＭ(Electronically Erasable and Programmable Read Only Memory)を使用している場合、ＥＥＰＲＯＭは消去・書込に十数ボルトの高電圧を必要とするため昇圧回路が必要となるが、電源電圧が低くなると昇圧回路の回路規模は大きくなり、面積増加をもたらす。また、プロセス世代の微細化により電源電圧が低下した場合、それに伴ってその電圧で動作する周辺回路の電源電圧も低下する。
例えば、図２１に示すように、電源電圧が 1.8V±10% の場合、電圧保証範囲は 1.62V〜1.98V となる。周辺回路の回路設計においては、電圧保証範囲での動作を保証するために、動作マージンを見込んで例えば 1.50V〜 2.10V で設計する。そして、電圧検知回路の設定電圧を 1.50V と 2.10V に設定する場合、電圧検知回路のバラツキを 0.1V とすると、検知回路の下限側の検出電圧は 1.4V となり、これを電源とする周辺回路は電圧検知の下限の 1.4V まで動作することが必要となる。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、暗号鍵等のセキュリティ情報を格納する不揮発性メモリにＥＥＰＲＯＭを用いる場合、消去・書込に必要な高電圧を発生するための昇圧回路の設計やその電圧制御をするための基準電圧発生回路（ＢＧＲ）は、電源電圧が低下すると低い電圧で必要な電圧を発生するために昇圧回路等の面積の増大をもたらす。
また、読出においては、微細化によって電源電圧が低くなっても動作周波数は変わらなかったり、逆に高くなったりする。しかし、電源電圧をそのままワード線電圧に使っている場合、電源電圧が低下すると、セル電流が減少して要求されるアクセスタイムを実現できないため、昇圧電圧をワード線に印加して読出を行なう必要が生じる。
そして、誤動作による攻撃に対抗するために、電圧検知回路の下限まで動作保証するためには、昇圧回路の面積を更に大きくする必要がある。また、ＬＳＩに供給されるクロック周波数の仕様が固定ではない場合、発振回路を搭載して昇圧回路に供給する必要があるが、電圧検知回路の下限までほぼ一定の発振周波数を得るためには、発振回路にも対策回路を付加する必要が生じ、発振回路も大きくなる。
更に、温度検知回路はバラツキを押さえる事が困難な回路で、仕様の温度範囲に温度検知回路のバラツキを加えた温度範囲まで動作保証するためには、電流値の小さくなる高温側では面積増をもたらし、電流値の大きくなる低温側では消費電流の仕様を満たす事が困難になる。
【０００８】
本発明は上述した従来技術の問題点に鑑みてなされ、駆動電圧生成回路（昇圧回路）を大規模化することなく、設計マージンを加味しながら、動作保証外の電源電圧による不揮発性メモリへの読み出し動作を禁止することができる不揮発性メモリシステムおよび不揮発性メモリ制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した従来技術の問題点を解決し、上述した目的を達成するため、第１の観点の発明の不揮発性メモリシステムは、電源電圧を基に駆動電圧を生成する駆動電圧生成回路と、記憶するデータに応じた極性の電荷を、前記駆動電圧生成回路が生成した前記駆動用電圧に応じたレベルでフローティングゲートに蓄積して記憶を行い、読み出しおよび書き込みの対象となる不揮発性メモリである複数の通常メモリセルと、前記電源電圧が予め決められた下限電圧以下である場合に読み出し誤りが生じるレベルの電荷をフローティングゲートに蓄積した不揮発性メモリである下限電圧検知用メモリセルと、前記下限電圧検知用メモリセルの読み出し動作において読み出し誤りが生じていない場合に、前記通常メモリセルの読み出し結果を出力する制御回路とを有する。
【００１０】
また、第２の観点の発明のメモリ制御方法は、記憶するデータに応じた極性の電荷を、前記駆動電圧生成回路が生成した前記駆動用電圧に応じたレベルでフローティングゲートに蓄積して記憶を行う不揮発性メモリである複数の通常メモリセルの読み出し動作を行うメモリ制御方法であって、電源電圧が予め決められた下限電圧以下である場合に読み出し誤りが生じるレベルの電荷がフローティングゲートに蓄積された不揮発性メモリである下限電圧検知用メモリセルの読み出し動作を行う第１の工程と、前記第１の工程における前記下限電圧検知用メモリセルの読み出し動作において読み出し誤りが生じたか否かを判断する第２の工程と、前記第２の工程において読み出し誤りが生じていないと判断した場合に、前記通常メモリセルの読み出し結果を出力する第３の工程とを有する。
【発明の効果】
【００１１】
本発明によれば、駆動電圧生成回路（昇圧回路）を大規模化することなく、設計マージンを加味しながら、動作保証外の電源電圧による不揮発性メモリへの読み出し動作を禁止することができる不揮発性メモリシステムおよび不揮発性メモリ制御方法を提供することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施形態に係わる不揮発性メモリシステムについて説明する。
先ず、本実施形態の構成要素と、本発明の構成要素との対応関係を説明する。
通常メモリセルＭＣが本発明の通常メモリセルの一例であり、検知用メモリセルＤＭＣ０が本発明の下限電圧検知用メモリセルの一例であり、検知用メモリセルＤＭＣ１が本発明の上限電圧検知用メモリセルの一例である。
また、昇圧回路８が本発明の駆動電圧生成回路の一例である。
また、ビット制御回路２２およびＣＰＵ３６が本発明の制御回路の一例である。
【００１３】
図１は、本発明の実施形態に係わる不揮発性メモリシステム１の全体構成図である。
図１に示すように、不揮発性メモリシステム１は、例えば、電源６、昇圧回路８、コマンドレジスタ１０、アドレスバッファ１２、ロウデコーダ１４、ワード制御回路１６、カラムデコーダ２０、ビット制御回路２２、センスアンプ２３、メモリセルアレイ２４、誤動作検知回路２８、データレジスタ３０、ＣＰＵ(Central Processing Unit)３６およびＲＯＭ(Read Only Memory)３８を有する。
【００１４】
電源６は、電源電圧Ｖｃｃを不揮発性メモリシステム１内の各回路に供給する。本実施形態において、電源電圧Ｖｃｃは、例えば、１．８０Ｖである。
昇圧回路８は、電源６が提供する電源電圧Ｖｃｃをα倍に昇圧して電圧α＊Ｖｃｃを生成し、これをメモリセルアレイ２４に供給する。本実施形態において、電圧α＊Ｖｃｃは、例えば、２０Ｖである。
また、昇圧回路８は、電源６が提供する電源電圧Ｖｃｃをβ倍に昇圧して電圧β＊Ｖｃｃを生成し、これをメモリセルアレイ２４に供給する。本実施形態において、電圧β＊Ｖｃｃは、例えば、５Ｖである。
【００１５】
コマンドレジスタ１０は、メモリセルアレイ２４に対してのアクセスに関するコマンドを記憶する。当該コマンドは、例えば、データバス３２を介してＣＰＵ３６によって書き込まれる。
アドレスバッファ１２は、コマンドレジスタ１０に記憶されたコマンド内のアドレスのうち、ロウアドレスをロウデコーダ１４に出力し、カラムアドレスをカラムデコーダ２０に出力する。
ロウデコーダ１４は、アドレスバッファ１２から入力したロウアドレスをデコードし、そのデコード結果をワード制御回路１６に出力する。
ワード制御回路１６は、ロウデコーダ１４からのデコード結果を基に、メモリセルアレイ２４内のアクセス対象のメモリセル（ターゲットメモリセル）のワード線をアクティブにする。
【００１６】
カラムデコーダ２０は、アドレスバッファ１２から入力したカラムアドレスをデコードし、そのデコード結果をセンスアンプ２３に出力する。
ビット制御回路２２は、カラムデコーダ２０からのデコード結果を基に、メモリセルアレイ２４内のターゲットメモリセルのビット線をアクティブにする。
ターゲットメモリセルに対応したビット線は、そのターゲットメモリセルの読み出し時に、そのターゲットメモリセルのフローティングゲートＦＧの荷電状態、すなわちデータ「０」，「１」のどちらを記憶しているかに応じた電位となる。
センスアンプ２３は、ターゲットメモリセルに対応した上記ビット線の上記電位を検出する。
【００１７】
メモリセルアレイ２４は、複数のメモリセルをマトリックス状に配置して構成される。
メモリセルアレイ２４は、図２に示すように、通常メモリセルＭＣと、検知用メモリセルＤＭＣとを有する。
通常メモリセルＭＣは、書き込みおよび読み出し動作の対象となるメモリセルである。
検知用メモリセルＤＭＣは、図２に示すように、不揮発性メモリシステム１の出荷時に、予め「１」が記憶されている検知用メモリセルＤＭＣ１と、予め「０」が記憶されている検知用メモリセルＤＭＣ０とを有する。
【００１８】
本実施形態では、出荷前に、電源電圧Ｖｃｃが上限電圧Ｖｃｃ（ｍａｘ）以下の場合に読み出し結果が「１」になり（正常動作し）、電源電圧Ｖｃｃが上限電圧Ｖｃｃ（ｍａｘ）を越えた場合に読み出し結果が「０」になる（誤動作する）ように、通常メモリセルに対して「１」を書き込む場合に比べて少ない電子が、検知用メモリセルＤＭＣ１に注入されている。
本実施形態では、出荷前に、電源電圧Ｖｃｃが下限電圧Ｖｃｃ（ｍｉｍ）以上の場合に読み出し結果が「０」になり（正常動作し）、電源電圧Ｖｃｃが下限電圧Ｖｃｃ（ｍｉｍ）未満の場合に読み出し結果が「１」になる（誤動作する）ように、通常メモリセルに対して「０」を書き込む場合に比べて検知用メモリセルＤＭＣ０の電子放出量を少なくしている。
【００１９】
以下、メモリセルへの記憶について説明する。
［通常メモリセルＭＣへの「１」書き込み動作］
図３は、通常メモリセルＭＣへの「１」書き込み動作を説明するための図である。
図３に示すように、通常メモリセルＭＣは、基板Ｐ上にメモリトランジスタＭＴと、セレクトトランジスタＳＴとを形成している。
セレクトトランジスタＳＴのセレクトゲートＳＧには、図１に示すワード制御回路１６の制御によって昇圧回路８からの電圧α＊Ｖｃｃが印加される。これにより、セレクトトランジスタＳＴがオン（ドレインとソース間が導通状態）になる。
また、セレクトトランジスタＳＴのドレイン電極ＤＮは、ビット制御回路２２の制御によって、０Ｖに保持される。
また、メモリトランジスタＭＴのコントロールゲートＣＧには、ワード制御回路１６からの制御によって、昇圧回路８からの電圧α＊Ｖｃｃが印加される。
これにより、図３に示すように、セレクトトランジスタＳＴの拡散層（ドレイン）Ａ３から、拡散層Ａ２を介して、トンネル部からフローティングゲートＦＧに電子が注入される。
そして、フローティングゲートＦＧに電子を注入する度に、フローティングゲートＦＧに注入された電子レベルを検証（ベリファイ）し、電子レベルが十分（消去レベルが十分）になったと判断すると、当該「１」書き込み動作を終了する。
【００２０】
［通常メモリセルＭＣからの「１」読み出し動作］
図５は、通常メモリセルＭＣからの「１」読み出し動作を説明するための図である。
図５に示すように、セレクトトランジスタＳＴのセレクトゲートＳＧには、図１に示すワード制御回路１６の制御によって、昇圧回路８からの電圧β＊Ｖｃｃが印加される。これにより、図５に示すように、セレクトトランジスタＳＴがオン状態になる。
また、メモリトランジスタＭＴのフローティングゲートＦＧには十分な量の電子が注入されているため、メモリトランジスタＭＴはオフ状態（ドレインとソース間が非導通状態）になっている。
これにより、ドレイン電極ＤＮは、プルアップレベルの１Ｖを維持する。
すなわち、通常メモリセルＭＣに「１」が記憶されている場合には、メモリトランジスタＭＴがオフ状態となり、セル電流は流れず、セレクトトランジスタＳＴのドレイン電極ＤＮが１Ｖとなる。このことをセンスアンプ２３において検出することで、通常メモリセルＭＣに「１」が記憶されていることを判定できる。
【００２１】
［通常メモリセルＭＣへの「０」書き込み動作］
図６は、通常メモリセルＭＣへの「０」書き込み動作を説明するための図である。
セレクトトランジスタＳＴのセレクトゲートＳＧには、図１に示すワード制御回路１６の制御によって昇圧回路８からの電圧α＊Ｖｃｃが印加される。これにより、セレクトトランジスタＳＴがオンになり（ドレインとソース間が導通状態）になる。
また、セレクトトランジスタＳＴのドレイン電極ＤＮには、ビット制御回路２２の制御によって、昇圧回路８からの電圧α＊Ｖｃｃが印加される。
また、メモリトランジスタＭＴのコントロールゲートＣＧは、ワード制御回路１６からの制御によって、０Ｖに保持される。
これにより、図６に示すように、メモリトランジスタＭＴのフローティングゲートＦＧ内の電子が、トンネル部、拡散領域Ａ２を介して、拡散領域Ａ３に放出される。
そして、フローティングゲートＦＧから電子が放出される度に、フローティングゲートＦＧが放出した電子レベルを検証（ベリファイ）し、電子放出レベルが十分（消去レベルが十分）になったと判断すると、当該「０」書き込み動作を終了する。
【００２２】
［通常メモリセルＭＣからの「０」読み出し動作］
図８は、通常メモリセルＭＣからの「０」読み出し動作を説明するための図である。
図８に示すように、セレクトトランジスタＳＴのセレクトゲートＳＧには、図１に示すワード制御回路１６の制御によって、昇圧回路８からの電圧β＊Ｖｃｃが印加される。これにより、図８に示すように、セレクトトランジスタＳＴがオン状態になる。
また、メモリトランジスタＭＴのフローティングゲートＦＧから十分な量の電子が放出されているため、メモリトランジスタＭＴはディプレッション型になっており、オン状態になっている。
これにより、拡散領域Ａ３から、拡散領域Ａ２を介して、拡散領域Ａ１に向けてセル電流が流れ、このセル電流による電圧降下によってセレクトトランジスタＳＴのドレイン電極ＤＮは約０．２Ｖと低い電位になる。
すなわち、通常メモリセルＭＣに「０」が記憶されている場合には、メモリトランジスタＭＴがオン状態となり、セル電流が流れ、セレクトトランジスタＳＴのドレイン電極ＤＮが０．２Ｖとなる。このことをセンスアンプ２３において検出することで、通常メモリセルＭＣに「０」が記憶されていることを判定できる。
【００２３】
以下、不揮発性メモリシステム１の出荷前に行われる検知用メモリセルＤＭＣ１，０に対する書き込み動作を説明する。
［検知用メモリセルＤＭＣ１に対する「１」書き込み］
図９は、検知用メモリセルＤＭＣ１に対する「１」書き込み動作を説明するための図である。
当該動作は、例えば、出荷判定を行なうメモリテスターやロジックテスターで行なわれる。
ステップＳＴ１：
図３を用いて前述した通常メモリセルＭＣに対する「１」書き込み動作と同様に、検知用メモリセルＤＭＣ１のメモリトランジスタＭＴのフローティングゲートＦＧに電子を注入する。
このとき、フローティングゲートＦＧに対する１回の電子注入は、通常メモリセルＭＣに対する「１」書き込みに比べて短い時間（短いパルス）で、少量ずつ繰り返し行われる。
フローティングゲートＦＧへの電子注入が所定時間終了すると「ステップＳＴ２に進む。
【００２４】
ステップＳＴ２：
電源６あるいは他の電源から、設計マージンを見込んだ上限電圧Ｖｃｃ（ｍａｘ）がメモリセルアレイ２４に供給される。この上限電圧Ｖｃｃ（ｍａｘ）は、高精度に設定される。
そして、図５を用いて説明したのと同様な手順で検知用メモリセルＤＭＣ１からデータを読み出し、誤動作検知回路２８において、センスアンプ２３の検出結果を基に、読み出し結果が「０」および「１」のいずれであるかを決定する。
【００２５】
ステップＳＴ３：
誤動作検知回路２８が、ステップＳＴ２において読み出し結果が「１」であると検出した場合、すなわち、「セル電流＜所定の判定電流」であると検出した場合に、処理を終了する。
一方、誤動作検知回路２８は、ステップＳＴ２において読み出し結果が「０」であると検出した場合にはステップＳＴ１の処理に戻る。
すなわち、メモリトランジスタＭＴのフローティングゲートＦＧに電子を注入する。当該注入された電子の量は、図１０に示すように、図５に示す通常メモリセルＭＣに対する「１」書き込みの場合に比べて少ない。
【００２６】
不揮発性メモリシステム１の出荷後に、例えば、電源６の電源電圧Ｖｃｃが上昇して上限電圧Ｖｃｃ（ｍａｘ）を超えると、通常メモリセルＭＣでは誤読み出しは生じないが、図１１に示すように、検知用メモリセルＤＭＣ１の読み出し結果が「０」になり、誤動作検知回路２８において誤動作が検出される。
これにより、誤動作検知回路２８がリセット信号ＲをＣＰＵ３６に出力し、ＣＰＵ３６がリセット動作を開始する。
このように検知用メモリセルＤＭＣ１でのみ誤読み出しが生じるのは、図１２に示すように、検知用メモリセルＤＭＣ１のフローティングゲートＦＧに注入されている電子の量は、「１」を記憶する通常メモリセルＭＣのフローティングゲートＦＧに注入されている電子の量に比べて少ないためである。すなわち、検知用メモリセルＤＭＣ１は、「１」を記憶する通常メモリセルＭＣに比べて、メモリトランジスタＭＴのしきい値が低く、電源電圧Ｖｃｃが上昇して図１２に示す拡散層Ａ２の電位が上昇すると、検知用メモリセルＤＭＣ１のメモリトランジスタＭＴが先にオン状態になり、そのセル電流が判定電流を越えるが、上限電圧Ｖｃｃ（ｍａｘ）で「１」と読まれるぎりぎりの量に設定されているためである。
【００２７】
［検知用メモリセルＤＭＣ０に対する「０」書き込み］
図１３は、検知用メモリセルＤＭＣ０に対する「０」書き込み動作を説明するための図である。
当該動作は、例えば、出荷判定を行なうメモリテスターやロジックテスターで行なわれる。
ステップＳＴ１１：
図６を用いて前述した通常メモリセルＭＣに対する「０」書き込み動作と同様に、検知用メモリセルＤＭＣ０のメモリトランジスタＭＴのフローティングゲートＦＧから電子を放出する。
このとき、フローティングゲートＦＧからの１回の電子放出は、通常メモリセルＭＣに対する「０」書き込みに比べて短い時間（短いパルス）で、少量ずつ繰り返し行われる。
フローティングゲートＦＧからの電子放出が所定時間終了すると、ステップＳＴ１２に進む。
【００２８】
ステップＳＴ１２：
電源６あるいは他の電源から、設計マージンを見込んだ下限電圧Ｖｃｃ（ｍｉｍ）がメモリセルアレイ２４に供給される。この下限電圧Ｖｃｃ（ｍｉｍ）は、高精度に設定される。
そして、図８を用いて説明したのと同様な手順で検知用メモリセルＤＭＣ０からデータを読み出し、誤動作検知回路２８において、センスアンプ２３の検出結果を基に、読み出し結果が「０」および「１」のいずれであるかを決定する。
【００２９】
ステップＳＴ１３：
誤動作検知回路２８が、ステップＳＴ１２において読み出し結果が「０」であると検出した場合、すなわち、「セル電流＞所定の判定電流」であると検出した場合に、処理を終了する。
一方、誤動作検知回路２８は、ステップＳＴ１２において読み出し結果が「１」であると検出した場合にはステップＳＴ１１の処理に戻る。
すなわち、メモリトランジスタＭＴのフローティングゲートＦＧから電子を放出する。
当該放出された電子によって生じる正孔の量は、図１４に示すように、図７に示す通常メモリセルＭＣに対する「０」書き込みの場合に比べて少ない。
【００３０】
不揮発性メモリシステム１の出荷後に、例えば、電源６の電源電圧Ｖｃｃが下降して下限電圧Ｖｃｃ（ｍｉｎ）以下にすると、通常メモリセルＭＣでは誤読み出しは生じないが、図１５に示すように、検知用メモリセルＤＭＣ０の読み出し結果が「１」になり、誤動作検知回路２８において誤動作が検出される。
これにより、誤動作検知回路２８がリセット信号ＲをＣＰＵ３６に出力し、ＣＰＵ３６がリセット動作を開始する。
このように検知用メモリセルＤＭＣ０でのみ誤読み出しが生じるのは、図１６に示すように、検知用メモリセルＤＭＣ０のフローティングゲートＦＧから放出された電子の量は、「０」を記憶する通常メモリセルＭＣのフローティングゲートＦＧからの電子の量に比べて少ないためである。すなわち、検知用メモリセルＤＭＣ０は、「０」を記憶する通常メモリセルＭＣに比べて、メモリトランジスタＭＴのしきい値が高く、電源電圧Ｖｃｃが下昇して図１２に示す拡散層Ａ２の電位が下降すると、検知用メモリセルＤＭＣ０のメモリトランジスタＭＴを流れるセル電流が判定電流より低くなるためである。
【００３１】
［不揮発性メモリシステム１の読み出し動作例］
図１７は、不揮発性メモリシステム１の読み出し動作を説明するためのフローチャートである。
ステップＳＴ３１：
ＣＰＵ３６は、メモリセルアレイ２４の検知用メモリセルＤＭＣ０の読み出し動作を行うように制御する。
【００３２】
ステップＳＴ３２：
ＣＰＵ３６は、メモリセルアレイ２４の検知用メモリセルＤＭＣ１の読み出し動作を行うように制御する。
ステップＳＴ３１とＳＴ３２とは並行して実行される。
【００３３】
ステップＳＴ３３：
検知用メモリセルＤＭＣ０のメモリトランジスタＭＴは、電源電圧Ｖｃｃが下限電圧Ｖｃｃ（ｍｉｎ）以下である場合にオフになり、セル電流は流れず、セレクトトランジスタＳＴのドレイン電極ＤＮが判定電圧より高くなる。すなわち、検知用メモリセルＤＭＣ０からのセル電流が、判定電流以下となる。
一方、検知用メモリセルＤＭＣ０のメモリトランジスタＭＴは、電源電圧Ｖｃｃが下限電圧Ｖｃｃ（ｍｉｎ）より大きい場合にオンになり、セル電流が流れ、セレクトトランジスタＳＴのドレイン電極ＤＮが判定電圧より低くなる。すなわち、検知用メモリセルＤＭＣ０からのセル電流が、判定電流より大きくなる。
また、検知用メモリセルＤＭＣ１のメモリトランジスタＭＴは、電源電圧Ｖｃｃが上限電圧Ｖｃｃ（ｍａｘ）以上である場合にオンになり、セル電流が流れ、セレクトトランジスタＳＴのドレイン電極ＤＮが判定電圧より低くなる。すなわち、検知用メモリセルＤＭＣ１からのセル電流が、判定電流以上となる。
一方、検知用メモリセルＤＭＣ１のメモリトランジスタＭＴは、電源電圧Ｖｃｃが上限電圧Ｖｃｃ（ｍａｘ）より小さい場合にオフになり、セル電流が流れず、セレクトトランジスタＳＴのドレイン電極ＤＮが判定電圧より高くなる。すなわち、検知用メモリセルＤＭＣ１からのセル電流が、判定電流より小さくなる。
誤動作検知回路２８は、条件「ＤＭＣ０のセル電流＜判定電流Ｔ」または条件「ＤＭＣ１のセル電流＞判定電流Ｔ」を満たす場合に、ステップＳＴ３４に進み、そうでない場合にステップＳＴ３９に進む。
【００３４】
ステップＳＴ３４：
誤動作検知回路２８は、ＣＰＵ３６にリセット信号を出力する。
【００３５】
ステップＳＴ３５：
ＣＰＵ３６は、メモリセルアレイ２４の通常メモリセルＭＣの読み出し動作を行うように制御する。
ステップＳＴ３５の動作は、例えば、ステップＳＴ３１，ＳＴ３２と並行して行われる。
【００３６】
ステップＳＴ３６：
センスアンプ２３の検出結果を基に、読み出しセル電流が判定電流より大きい場合にはステップＳＴ３７に進み、そうでない場合にはステップＳＴ３８に進む。
【００３７】
ステップＳＴ３７：
ＣＰＵ３６は、読み出し対象の通常メモリセルＭＣの読み出し結果は「０」であると判断する。
ステップＳＴ３８：
ＣＰＵ３６は、読み出し対象の通常メモリセルＭＣの読み出し結果は「１」であると判断する。
【００３８】
ステップＳＴ３９：
ＣＰＵ３６は、誤動作検知回路２８からリセット信号を入力したか否かを判断し、入力したと判断した場合には処理を終了し、そうでない場合にはステップＳＴ４０に進む。
【００３９】
ステップＳＴ４０：
ＣＰＵ３６は、ステップＳＴ３７，ＳＴ３８の判定結果を外部に出力する。
【００４０】
以上説明したように、不揮発性メモリシステム１によれば、電源６からの電源電圧Ｖｃｃが予め規定した正常動作保証範囲（下限電圧Ｖｃｃ（ｍｉｎ）〜上限電圧Ｖｃｃ（ｍａｘ））の範囲外になった場合に、そのことを通常メモリセルＭＣの読み出しと並行して検知用メモリセルＤＭＣ０，１の読み出し動作によって特定できる。そのため、従来のように電源検知回路の特性バラツキを考慮して、実質的に上記正常動作保証範囲より広い範囲の動作を保証する必要がない。これにより、昇圧回路の構成を小規模にできる。
【００４１】
不揮発性メモリシステム１では、例えば、電源電圧Ｖｃｃが 1.8V±10% の仕様の場合、電源電圧Ｖｃｃの範囲は 1.62V〜1.98V であるが、マージンを見込んで 1.50V〜2.10V で設計し、なおかつ、上記の異常動作検出用のメモリを配置して“０”と“１”を精度良く書き込んでおいた場合、誤読出を引き起こそうと電源電圧を低くする行為に対しては、設計範囲の下限の 1.50V より低くしていくと、書込データが“０”のセルのセル電流は減少していくが、まず検知用メモリセルＤＭＣ０の読出においてセル電流が判定電流より少なくなって“１”と読出され、誤読出が検出されてリセットがかけられる。
また、動作温度を高くする場合も、書込データが“０”のセルのセル電流は減少するが、まず検知用メモリセルＤＭＣ０の読出においてセル電流が判定電流より少なくなって“１”と誤読出され、誤読出が検出されてリセットがかけられる。これらにより、メモリセルの誤読出を引き起こして、その誤読出データによるＣＰＵの暴走やその誤読出データを用いた事による暗号エンジンでの誤動作の発生を阻止できる。
【００４２】
逆に、誤読出を引き起こそうとして電源電圧Ｖｃｃを高くする行為に対しては、設計範囲の上限の 2.10V より高くしていくと、書込データが“１”のセルのセル電流は増加していくが、まず検知用メモリセルＤＭＣ１の読出においてセル電流が判定電流より多くなって“０”と読出され、誤読出が検出されてリセットがかけられる。また、動作温度を低くする場合も、書込データが“１”のセルのセル電流は増加するが、まず検知用メモリセルＤＭＣ１の読出においてセル電流が判定電流より多くなって“０”と誤読出され、誤読出が検出されてリセットがかけられる。
【００４３】
この構成の回路設計において電源電圧に設計マージンを見込んだ範囲まではシミュレーション及び試作後の設計検証において動作確認されている。そして、誤動作検出用のＥＥＰＲＯＭへのデータの書込レベルは、電源電圧の設計マージンを見込んだ下限の電源電圧でベリファイ（Verify）読出する事によって、判定レベルから若干下がったレベルに設定されている。このため、仕様の電源電圧範囲での動作では、設計マージンの分だけ余裕があるため、誤動作検出用のＥＥＰＲＯＭへのデータが誤読出される事はない。一方、書込レベルは、電源電圧の設計マージンを見込んだ下限の電源電圧でのベリファイ読出で、判定レベルから若干下がったレベルに設定されているため、電源電圧を下げていった時、判定レベルから僅かな電圧降下で誤読出が発生し、この間で内部回路の動作不安定等による誤動作が発生する事はない。すなわち、電源電圧を下げていった時のリセット信号が発生するまでの期間、不揮発性メモリシステム１は常に正常動作をしている。
【００４４】
上位側でも同様に、検知用メモリセルの消去レベルは、電源電圧の設計マージンを見込んだ上限の電源電圧でベリファイ読出する事によって、判定レベルから若干上がったレベルに設定されている。このため、仕様の電源電圧範囲での動作では、設計マージンの分だけ余裕があるため、検知用メモリセルのデータが誤読出される事はない。一方、消去レベルは、電源電圧の設計マージンを見込んだ上限の電源電圧でのベリファイ読出で、判定レベルから若干上がったレベルに設定されているため、電源電圧を上げていった時、判定レベルから僅かな電圧上昇で誤読出が発生し、この間で内部回路の動作不安定等による誤動作が発生する事はない。すなわち、電源電圧を上げていった時も、検知用メモリセルの読み出しによりリセット信号が発生するまでの期間は不揮発性メモリシステム１は常に正常動作をしている。
これらにより、電源電圧を仕様書で規定されている電圧値より高くする／低くする、または動作温度を仕様書で規定されている温度範囲より高くする／低くする等の攻撃を行なった場合、異常検出用の“０”または“１”のメモリセルの必ず一方で誤読出が発生し、これによってＣＰＵ３６にリセット信号を出力することにより、誤読出データによるＣＰＵ３６の暴走や誤読出データを用いた事による暗号エンジンでの誤データによる誤演算等の発生を阻止できる。
【００４５】
また、消去・書込動作は、その命令が起動された場合、短い消去・書込動作と検証用のＶｅｒｉｆｙ読出が繰り返される動作シーケンスが起動されるが、その動作シーケンスにおいてまずＶｅｒｉｆｙ読出から開始する様にシーケンスを組んでおく。これにより、仕様書で定義されている範囲外の電圧・温度で動作させようとする場合、シーケンスの最初のＶｅｒｉｆｙ読出で誤動作検出用の“０”または“１”のメモリセルの必ず一方で誤読出が発生するため、これによってＣＰＵ３６にリセットがかけられ、不揮発性メモリセルの誤消去や誤書込が阻止できる。
【００４６】
以上により、不揮発性メモリを、仕様書で規定されている電圧範囲・温度範囲に設計マージンを加えた範囲で設計する事が可能で、異常電圧・異常温度の検知回路の設計バラツキの範囲まで加味して設計する必要はない。この不揮発性メモリに対して、誤読出、誤書込、誤消去を引き起こそうとして仕様の範囲外の動作条件で動作させた場合、ＥＥＰＲＯＭ自身がそれを検知してＣＰＵ３６に対してリセットをかけるため、誤動作を起こさせる事が不可能となる。
セキュリティ用途に用いられる、消去・書込動作に内部発生した高電圧を用いる不揮発性メモリの設計において、セキュリティ用途以外に用いられる不揮発性メモリの設計と同様に、仕様書で定義されている電圧・温度に設計マージンを付加した範囲内で設計が可能となり、昇圧回路等の面積増や消費電流の増加等が押さえられ、なおかつ、誤読出、誤消去、誤書込の発生は確実に阻止される。
【００４７】
本発明は上述した実施形態には限定されない。
すなわち、当業者は、本発明の技術的範囲またはその均等の範囲内において、上述した実施形態の構成要素に関し、様々な変更、コンビネーション、サブコンビネーション、並びに代替を行ってもよい。
例えば、上述した実施形態では、ＦＬＯＴＯＸ型の不揮発性メモリを例示したが、本発明は、それ以外の例えば３ＴｒＮＡＮＤやＥＴＯＸなどの形式の不揮発性メモリに本発明を適用してもよい。
図１８は、３ＴｒＮＡＮＤ型の不揮発性メモリのメモリセル１００の構造を説明するための図である。
図１８に示すように、メモリセル１００は、ワード線ＷＬに印加された電圧によってオン・オフするメモリトランジスタを有する。
また、メモリセル１００の両側には、それぞれセレクトゲートＳＧ１，ＳＧ２に印加された電圧によってオン・オフするセレクトトランジスタが配設されている。
【００４８】
メモリセル１００は、データ消去時に図１９（Ａ）に示すようにセレクトゲートＳＧ１，ＳＧ２をオープンにし、ワード線ＷＬを０Ｖにする。これにより、フローティングゲートＦＧに正孔を蓄積する。
また、メモリセル１００は、データ書き込み時に図１９（Ｂ）に示すようにセレクトゲートＳＧ１を２０Ｖ、セレクトゲートＳＧ２を０Ｖにし、ワード線ＷＬに２０Ｖを印加する。これにより、フローティングゲートＦＧに電子を蓄積する。
また、メモリセル１００は、データ読み出し時に図１９（Ｃ）に示すようにセレクトゲートＳＧ１に電源電圧Ｖｃｃを印加し、セレクトゲートＳＧ２およびワード線ＷＬを０Ｖにする。
【００４９】
上述したようなメモリセル１００を用いた３ＴｒＮＡＮＤ型の不揮発性メモリにおいても、前述した不揮発性メモリシステム１と同様に、メモリセル１００として、通常メモリセルと検知用メモリセルＤＭＣ１，ＤＭＣ０とを予め規定し、通常メモリセルに対して「１」を書き込む場合に比べて少ない電子を検知用メモリセルＤＭＣ１に注入し、通常メモリセルに対して「０」を書き込む場合に比べて電子放出量が少なくなるように検知用メモリセルＤＭＣ０から電子を放出することで、メモリセルシステム１と同様の効果が得られる。
【００５０】
なお、上述した例では、フローティングゲートに正孔と電子の何れが保持されているか（正負何れの電荷常態か）によって「１」，「０」の記憶状態を示したが、例えば、ＤｉＮＯＲ型やＥＴＯＸ型のように、フローティングゲートに電子が注入されているか否かによって「１」，「０」の記憶状態を示してもよい。
【図面の簡単な説明】
【００５１】
【図１】図１は、本発明の実施形態に係わる不揮発性メモリシステムの全体構成図である。
【図２】図２は、図１に示す通常メモリセルＭＣおよび検知用メモリセルＤＭＣ０，１を説明するための図である。
【図３】図３は、通常メモリセルＭＣの「１」書き込み動作を説明するための図である。
【図４】図４は、通常メモリセルＭＣにおける「１」記憶状態を説明するための図である。
【図５】図５は、通常メモリセルＭＣの「１」読み出し動作を説明するための図である。
【図６】図６は、通常メモリセルＭＣの「０」書き込み動作を説明するための図である。
【図７】図７は、通常メモリセルＭＣにおける「０」記憶状態を説明するための図である。
【図８】図８は、通常メモリセルＭＣの「０」読み出し動作を説明するための図である。
【図９】図９は、出荷前に行われる検知用メモリセルＤＭＣ１への「１」書き込み動作を説明するためのフローチャートである。
【図１０】図１０は、検知用メモリセルＤＭＣ１の「１」記憶状態を説明するための図である。
【図１１】図１１は、図１に示す不揮発性メモリシステムに対するデータ「１」への攻撃を説明するための図である。
【図１２】図１２は、電源電圧が上限電圧を超えた場合における検知用メモリセルＤＭＣ１の読み出し動作を説明するための図である。
【図１３】図１３は、出荷前に行われる検知用メモリセルＤＭＣ０への「０」書き込み動作を説明するためのフローチャートである。
【図１４】図１４は、検知用メモリセルＤＭＣ０の「０」記憶状態を説明するための図である。
【図１５】図１５は、図１に示す不揮発性メモリシステムに対するデータ「０」への攻撃を説明するための図である。
【図１６】図１６は、電源電圧が下限電圧より下がった場合における検知用メモリセルＤＭＣ０の読み出し動作を説明するための図である。
【図１７】図１７は、図１に示す不揮発性メモリシステムの読み出し動作を説明するための図である。
【図１８】図１８は、本発明を３ＴｒＮＡＮＤ型の不揮発性メモリに適用した場合を説明するための図である。
【図１９】図１９は、本発明を３ＴｒＮＡＮＤ型の不揮発性メモリに適用した場合を説明するための図である。
【図２０】図２０は、電源電圧の仕様が２．５０Ｖ±１０％の場合を説明するための図である。
【図２１】図２１は、電源電圧の仕様が１．８０Ｖ±１０％の場合を説明するための図である。
【符号の説明】
【００５２】
１…不揮発性メモリシステム、６…電源、８…昇圧回路、１０…コマンドレジスタ、１２…アドレスバッファ、１４…ロウデコーダ、１６…ワード制御回路、２２…ビット制御回路、２３…センスアンプ、２４…メモリセルアレイ、２８…誤動作検知回路、３０…データレジスタ、３６…ＣＰＵ、ＤＭＣ０，ＤＭＣ１…検知用メモリセル。
【図１】
2007242068.tif 000003
【図２】
2007242068.tif 000004
【図３】
2007242068.tif 000005
【図４】
2007242068.tif 000006
【図５】
2007242068.tif 000007
【図６】
2007242068.tif 000008
【図７】
2007242068.tif 000009
【図８】
2007242068.tif 000010
【図９】
2007242068.tif 000011
【図１０】
2007242068.tif 000012
【図１１】
2007242068.tif 000013
【図１２】
2007242068.tif 000014
【図１３】
2007242068.tif 000015
【図１４】
2007242068.tif 000016
【図１５】
2007242068.tif 000017
【図１６】
2007242068.tif 000018
【図１７】
2007242068.tif 000019
【図１８】
2007242068.tif 000020
【図１９】
2007242068.tif 000021
【図２０】
2007242068.tif 000022
【図２１】
2007242068.tif 000023