(57)【要約】【課題】フラッシュメモリに代表されるEEPROMはメモリセルのVtが経時変化するため、システムが誤動作する前に劣化度合いを検知し、Vtを正常値に戻す等の対策が必要である。【解決手段】判定基準の異なる複数のセンスアンプ２２、２３と、センスアンプ２２、２３の結果を比較する比較回路２４と、比較回路２４の比較結果を格納し保持する保持回路２５を備え、センスアンプ２２、２３で判定された結果からメモリ２１のセルの劣化度合いを検知し、異常時にはCPU２６によりデータの上書きを実施する。【選択図】  図１
2006147073.tif 000002
【特許請求の範囲】
【請求項１】
メモリセルの閾値の劣化度合いを検知する半導体装置であって、
前記メモリセルのデータを前記閾値に対して判定する判定基準の異なる複数の判定手段と、前記複数の判定手段の結果を比較して一致しない場合に異なる信号を出力する比較手段と、前記比較手段の比較結果を格納し保持する保持手段とを備え、前記複数の判定手段で判定された結果から前記メモリセルの劣化度合いを検知することを特徴とする半導体装置。
【請求項２】
メモリセルの閾値の劣化度合いを検知する半導体装置であって、
前記メモリセルに互いに並列に接続される複数の異なる抵抗値の抵抗部を介して、前記メモリセルに接続され前記複数の抵抗部を順次選択して出力する選択手段と、前記選択手段により順次選択された前記抵抗部を通る前記メモリセルのデータを判定する判定手段と、前記選択手段により先に選択された前記抵抗部を通る前記判定手段のデータを保持する第１の保持手段と、前記選択手段により後に選択された前記判定手段のデータと前記第１の保持手段のデータを比較して一致しない場合に異なる信号を出力する比較手段と、前記比較手段の比較結果を保持する第２の保持手段とを備えた半導体装置。
【請求項３】
保持手段の出力を受けて比較手段の結果が一致の場合に切換え信号を出力するCPUと、前記CPUの前記切換え信号を受けて複数の判定手段のうち低い判定基準の前記判定手段により判定されたメモリセルのデータを前記ＣＰＵに出力する切換え手段を有する請求項1記載の半導体装置。
【請求項４】
保持手段の出力を受けて比較手段の結果が不一致の場合に書込み信号をメモリセルに出力するCPUと、複数の判定手段のうち最も判定基準の高い判定手段により判定されたデータを保持するデータ用保持手段を有し、メモリセルは前記書込み信号を受けて前記データ用保持手段の保持データを上書きする請求項1記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、EEPROMを用いた半導体装置（以後、半導体装置とする）に関するものである。
【背景技術】
【０００２】
図９は従来の半導体装置のブロック概略図を示す。図９において、半導体装置は任意の容量のフラッシュメモリ11、センスアンプ（以下SAとする）12とCPU13で構成されている。フラッシュメモリ11は複数のメモリセルから構成されており、SA12はフラッシュメモリ11内の指定されたメモリセルのセル電流値でもって読み出したデータが“1”データか“０”データかを判定し出力する（例えば、特許文献１参照）。
【０００３】
以上のように構成された半導体装置についてその動作を説明する。フラッシュメモリ11には任意のデータが書き込まれている。フラッシュメモリ11はアドレスが与えられると、指定されたメモリセルのデータを電流値として出力する。SA12はメモリセル１１の電流値をビット毎に判定し、"1"もしくは"0"データとして出力する。CPU13はSA12の出力データを格納し、所定の処理を行う。
【特許文献１】特開昭５７−６４３８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
半導体装置は、セットの開発サイクルの加速に伴い、実装後のプログラム書換えが可能なために、幅広い電子機器に必要不可欠な部品となっている。このような背景のもと、マスクROM内蔵マイクロコントローラの代替品となるためには、同等の信頼性を確保することが必須となっている。
【０００５】
ところで、フラッシュメモリを構成するメモリセルのVt値（閾値。以下Vtとする）を制御することで、“1”データ、“０”データが作られる。
【０００６】
しかしながら、メモリセルの構造的な問題から、温度や電圧の変化や書換え/消去の繰り返しによるストレスにより、書込みおよび消去されたセルのVtが、初期状態から変化するという問題がある。
【０００７】
従来の半導体装置では、Vtの経時変化によりSAがデータの判定を誤り、結果としてCPUが誤動作するという課題があった。
【０００８】
したがって、本発明の目的は、誤動作の防止、フラッシュメモリの信頼性向上およびシステムの寿命向上を図ることができる半導体装置を提供することである。
【課題を解決するための手段】
【０００９】
この課題を解決するために、本発明の半導体装置は、メモリセルの閾値の劣化度合いを検知する半導体装置であって、
メモリセルのデータを閾値に対して判定する判定基準の異なる複数の判定手段と、複数の判定手段の結果を比較して一致しない場合に異なる信号を出力する比較手段と、比較手段の比較結果を格納し保持する保持手段とを備え、複数の判定手段で判定された結果からメモリセルの劣化度合いを検知することを特徴とするものである。
【００１０】
本発明の別の半導体装置は、メモリセルの閾値の劣化度合いを検知する半導体装置であって、
メモリセルに互いに並列に接続される複数の異なる抵抗値の抵抗部を介して、メモリセルに接続され複数の抵抗部を順次選択して出力する選択手段と、選択手段により順次選択された抵抗部を通るメモリセルのデータを判定する判定手段と、選択手段により先に選択された抵抗部を通る判定手段のデータを保持する第１の保持手段と、選択手段により後に選択された判定手段のデータと第１の保持手段のデータを比較して一致しない場合に異なる信号を出力する比較手段と、比較手段の比較結果を保持する第２の保持手段とを備えたものである。
【００１１】
上記構成において、保持手段の出力を受けて比較手段の結果が一致の場合に切換え信号を出力するCPUと、CPUの切換え信号を受けて複数の判定手段のうち低い判定基準の判定手段により判定されたメモリセルのデータをＣＰＵに出力する切換え手段を有するものである。
【００１２】
上記構成において、保持手段の出力を受けて比較手段の結果が不一致の場合に書込み信号をメモリセルに出力するCPUと、複数の判定手段のうち最も判定基準の高い判定手段により判定されたデータを保持するデータ用保持手段を有し、メモリセルは書込み信号を受けてデータ用保持手段の保持データを上書きするものである。
【発明の効果】
【００１３】
本発明に係る半導体装置によれば、複数の判定基準が異なる判定手段を備え、その判定結果から、例えば不揮発性メモリのVt変化を検知し、その情報をユーザーやCPUが知ることでシステムの誤動作に対し、不揮発性メモリのリフレッシュ等の対策を未然に打つことが可能となり、誤動作を防止し、不揮発性メモリの信頼性を向上し、システムの寿命を飛躍的に向上することが可能となる。
【００１４】
また、判定基準がセンスアンプ回路に代表される電流値を基準にするものであれば、不揮発性メモリの状態によってはより低消費電力のシステムを構築することができる。
【００１５】
別の半導体装置によれば、センスアンプを削減することでより小面積でVtを検知することができる。抵抗はトランジスタだけでなく、配線の長さや幅を変化させることで形成することが可能なため、形成そのものやレイアウトが容易である。
【００１６】
例えば、フラッシュメモリのVt変化を検出しメモリの劣化度合いが少ない場合や、システムスピードが遅い場合は、判定電流が小さいセンスアンプ回路を使用することでシステムの低消費電力化を図り、システムの長寿命化を達成することが可能となる。
【００１７】
さらに、メモリの劣化度合いを察知し、読み出したデータを例えばフラッシュメモリに上書きすることで、メモリセルのVtを正常な値に戻し、システムの寿命を飛躍的に伸ばすことが可能となる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施の形態について、図を用いて説明する。
（実施の形態１）
図１は、本発明の第１の実施の形態である半導体装置の概略構成図である。  図１において、半導体装置は、フラッシュメモリ21、データ判定回路2、比較回路24、保持回路25、CPU26で構成されている。データ判定回路2は、2種類のセンスアンプSA22、SA23で構成されている。SA22とSA23はそれぞれフラッシュメモリ21のデータが“０”か“1”かを判定し出力する。比較回路24は、SA22とSA23のデータをビット毎に比較し、1ビットでも異なれば“1”データを出力し、それ以外は“０”データを出力する。保持回路25は、比較回路24の出力を格納し保持する。CPU26はSA22の出力データを命令およびテーブルデータとして格納し、保持回路25の出力を比較回路24の比較結果として格納し、所定の処理を行う。
【００１９】
ここで、データ判定回路2の詳細動作について図５を用いて説明する。図５において、61はSA23の判定基準となる電流曲線、62はSA22の判定基準となる電流曲線であり、第１の実施の形態では、SA22とSA23の判定基準は異なり、SA22よりSA23の方が低くなるように設定されている。SA22は、任意の電源電圧におけるフラッシュメモリ21のセル電流値が判定基準62より高い場合は“０”データ、低い場合は“１”データとして判定する。この判定方法は、SA23についても同様であり、判定基準61よりセル電流が高い場合は“０”、低い場合は“１”と判定する。
【００２０】
63と64はフラッシュメモリ21のセル電流曲線であり、前者は書込み直後のVt=max[V]時、後者は消去直後のVt=min[V]時の特性を示す。65と66はVt変動した場合のセル電流曲線であり、前者はVt変動幅が小さく(Vt=X[V]時)、後者はVt変動幅が大きい場合（Vt=Y[V]時）の特性を示す。図中A値、B値、C値は電源電圧=D［V］時におけるセル電流曲線63、65、66上の点であり、それぞれ、書込み直後、Vt=X[V]時およびVt=Y[V]時のセル電流値である。
【００２１】
図５から、電源電圧D[V]時は、メモリセルのVtがVt=max[V]→X[V]→Y[V]に変化すると、セル電流値がA値→B値→C値に移動する。この場合のフラッシュメモリ21の“１”データは、SA22ではそれぞれ“１”、“１”、“０”と判定される。一方SA23においては、それぞれ“１”、“０”、“０”と判定されることになる。結果として、SA22と比較してSA23の方が早い段階でフラッシュメモリ21の“１”データの読み出しを誤判定することになる。
【００２２】
以上のように構成された半導体装置において、フラッシュメモリ21の書込みされたメモリセルのVtが変動した場合の“１”データの読み出し動作について説明する。
【００２３】
SA22とSA23は、順次フラッシュメモリ21のデータを判定し出力する。メモリセルのVtがVt=max[V]からX[V]に低下した場合、図５のA値がB値になる。B値はSA22では“１”判定されるため、CPU26は正常に動作することが出来る。しかしながら、VtがY[V]に更に低下した場合、図５のA値はC値になり、SA22は“１”データと判定する。この時、CPU２６は誤ったデータを格納するため、誤動作することになる。
【００２４】
一方、SA23ではB値は“０”判定される。従ってSA22とSA23の判定結果が異なるため、比較回路24は“１”を出力する。保持回路25は上記“１”データを格納し、CPU26はSA22とSA23の判定結果が異なったことを知ることができる。つまり、CPU26は、Vtが低下しても誤動作する前にVtが低下していることを察知できる。
【００２５】
以上のように第１の実施の形態によれば、フラッシュメモリ21のVt変化を検出しメモリの劣化度合いを察知することで、例えば、ユーザーやCPU２６によるフラッシュメモリのリフレッシュや、CPU２６による動作速度の最適化等、事前に誤動作防止の処置を実施することが可能となる。
（実施の形態2）
図２は、本発明の第２の実施の形態である半導体装置の概略構成図である。
【００２６】
図２において、半導体装置は、フラッシュメモリ31、データ判定回路3、2つの保持回路35、37、比較回路36およびCPU38で構成されている。
【００２７】
ここで第２の実施の形態における半導体装置は、通常動作モードとそれ以外にフラッシュメモリ31のVtを検知するモードの2つの動作モードを持っているものとする。これら2つの動作モードは、CPU38によりシステムの状態が判断して切換えられる。CPU38は、フラッシュメモリ31のVt検知のモードに入った場合にのみセレクト信号301として“１”と“０”を交互に出力し、それ以外は“０”のみを出力するものとする。CPU３８は保持回路３７の出力を受けて適切なタイミングで切換え信号を出力して切り換えが行われる。また、フラッシュメモリ31のnビットのデータが1回出力される間に、セレクト信号301は“１”、“０”の順番でそれぞれ一度づつ出力されるものとする。
【００２８】
データ判定回路3は、抵抗32とセレクタ33とセンスアンプ回路SA34で構成されている。フラッシュメモリ31は抵抗32を経由する経路と何も経由しない経路（抵抗０）でデータを出力する。セレクタ33はセレクト信号301が“０”の時に抵抗32のデータを出力し、“１”の時にフラッシュメモリ31のデータを出力する。また保持回路35は、セレクト信号301が“０”の時にのみデータを保持する。SA34はそれぞれフラッシュメモリ31のデータが“０”か“１”かを判定し出力する。比較回路36は、SA34と保持回路35のデータをビット毎に比較し、1ビットでも異なれば“１”データを出力し、それ以外は“０”データを出力する。保持回路37は、セレクト信号301が“１”の時にのみ比較回路36の出力を格納し保持する。CPU38はSA34の出力データを命令およびテーブルデータとして格納し、また保持回路37の出力を比較回路36の比較結果として格納し、所定の処理を行う。
【００２９】
ここで、CPU38によりVt検知モードに入った場合のデータ判定回路3の動作について図６を用いて説明する。
【００３０】
図６において、71はSA34の判定基準となる電流曲線を示す。SA34は、任意の電源電圧におけるフラッシュメモリ31のセル電流値が判定基準71より高い場合は“０”データ、低い場合は“１”データとして判定する。
【００３１】
72と76はフラッシュメモリ31のセル電流曲線であり、前者は書込み直後のVt=max[V]時、後者は消去直後のVt=min[V]時の特性を示す。73は抵抗32を経由した場合の書込み直後のセル電流曲線であり、抵抗32を介することによりセル電流曲線72より低い数値を示す。74と75はVt変動した場合のセル電流曲線であり、前者はVt=X[V]時、後者はVt=X[V]時に抵抗32を経由した場合の特性を示す。A値、B値、A'値、B'値は電源電圧=C［V］時におけるセル電流曲線72、73、74、75上の点であり、A値とB値は書込み直後、A'値とB'値はVt=X[V]時のセル電流値を示す。
【００３２】
まずセレクト信号301が“０”の場合の動作を説明する。
【００３３】
フラッシュメモリ31のデータは抵抗32を経由してSA34に入力される。この時、SA34に入力される電流値はセル電流曲線73と75の特性を示す。図６から、電源電圧C[V]時において、メモリセルのVtがVt=max[V]からX[V]に変化すると、セル電流値Bは B'値に変化する。フラッシュメモリ31のデータは、SA34によりB値とB'値はともに“１”データと判定される。
【００３４】
次にセレクト信号301が“１”の場合の動作を説明する。この時、SA34に入力される電流値はセル電流曲線72と74の特性を示す。図６から、電源電圧C[V]時において、メモリセルのVtがVt=max[V]からX[V]に変化すると、セル電流値Aは A'値に変化する。フラッシュメモリ31のデータは、SA34によりA値は“１”、A'値は“０”データと判定される。
【００３５】
上記のように、セレクト信号が“１”の場合は“０”の場合と比較して早い段階でフラッシュメモリ31の読み出しデータを誤判定することになる。
【００３６】
以上のように構成された半導体装置において、フラッシュメモリ31のメモリセルのVtがVt=max[V]からX[V]に変動した場合の動作について説明する。
【００３７】
通常動作モードでは、CPU38によりセレクト信号301は“０”であるため、フラッシュメモリ31のデータは抵抗32を経由してSA34に入力される。
【００３８】
図６から、電源電圧C[V]時において、セル電流値Bは B'値に変化する。フラッシュメモリ31のデータは、SA34によりB値とB'値はともに“１”データと判定され、CPU38は正常に動作することができる。
【００３９】
またVt検知モードにおいて、セレクト信号301が“０”の時は上記通常動作モード時と同一の判定がSA34によりなされる。この時、保持回路35はSA34の出力である“１”データを格納する。しかしながら、セレクト信号301が“１”の場合、A'値はSA34により“０”データと判定される。結果、保持回路35のデータと異なるデータが入力されるため比較回路36は“１”を出力し、保持回路37は比較回路36の出力を格納する。CPU38は保持回路37の“１”データを受けるため判定結果が異なったことを知ることができる。つまり、CPU３８は、Vtが低下しても誤動作する前にVtが低下していることを察知できる。
【００４０】
以上のように第２の実施の形態によれば、フラッシュメモリ31のVt変化を検出しメモリの劣化度合いを察知することで、例えば、ユーザーやCPUによるフラッシュメモリのリフレッシュや、CPUによる動作速度の最適化等、事前に誤動作防止の処置を実施することが可能となる。
【００４１】
また、第２の実施の形態によれば、第１の実施の形態と比較して回路面積のあるセンスアンプを削減することでより小面積でVtを検知することができる。
【００４２】
さらに、第２の実施の形態によれば、抵抗32はトランジスタだけでなく、配線の長さや幅を変化させることで形成することが可能なため、形成そのものやレイアウトが容易であるという特徴を有する。
（実施の形態3）
図３は、第３の実施の形態である半導体装置の概略構成図である。
【００４３】
図３において、半導体装置は、フラッシュメモリ41、データ判定回路4、比較回路44、切換え回路45、保持回路46、CPU47で構成されている。データ判定回路4は、2種類のセンスアンプ回路SA42、SA43で構成されている。SA42は、2ビットで構成された切換え信号401を受け、切換え信号401が(0,0)、(1,1)および（1,0）の時にフラッシュメモリ41のデータが“０”か“１”かを判定し、それ以外は動作を停止する。同様にしうＳＡ43は、切換え信号401が(0,0)、(1,1)および（0,1）の時にフラッシュメモリ41のデータが“０”か“１”かを判定し、それ以外は動作を停止する。比較回路44は、SA42とSA43のデータをビット毎に比較し、1ビットでも異なれば“１”データを出力し、それ以外は“０”データを出力する。保持回路４６は、比較回路44の出力を格納し保持する。また保持回路４６は、“０”データに初期値化されており、一度“１”データを格納するとCPU47により初期化されるまでそのデータを保持するものとする。さらに保持回路４６は、切換え信号401が(0,0)もしくは(1,1)の時にのみ比較回路44の出力を格納する。切換え回路４５は切換え信号401を受け、切換え信号401が(0,0)、(1,1)および（1,0）の時にSA42のデータを出力し、それ以外はSA43のデータを出力する。CPU47は切換え回路４５を経由してフラッシュメモリ41のデータを命令およびテーブルデータとして格納し所定の処理を行う。また、CPU47は保持回路46のデータを受け、2ビットで構成する切換え信号401を表1の通りに出力するものとする。定期的に保持回路４６、切換え信号401、SA42、SA43と切換え回路４５の関係を表1に示す。
【００４４】
【表１】
2006147073.tif 000003
表1において、切換え信号401が(0,0)もしくは(1,1)、（0,1）、(1,0)の場合を、それぞれVt判定モード、低消費モード、通常モードと呼ぶこととする。CPU47は低消費モード時において、システムの状態を判断し、切換え信号401を切換えることで、定期的にVt判定モードを実行するものとする。
【００４５】
また、データ判定回路4の詳細動作について図７を用いて説明する。
【００４６】
図７において、81はSA43の判定基準となる電流曲線、82はSA42の判定基準となる電流曲線であり、第３の実施の形態では、SA42とSA43の判定基準となる判定電流値が異なり、SA42よりSA43の方が低くなるように設定されている。SA42は、任意の電源電圧におけるフラッシュメモリ41のセル電流値が判定基準82より高い場合は“０”データ、低い場合は“１”データとして判定する。判定方法は、SA43についても同様であり、判定基準81よりセル電流が高い場合は“０”、低い場合は“１”と判定する。
【００４７】
83と84はフラッシュメモリ41のセル電流曲線であり、前者は書込み直後のVt=max[V]時、後者は消去直後のVt=min[V]時の特性を示す。85はVt変動した場合のセル電流曲線であり、前者はVt=X[V]時の特性を示す。図中A値、B値は電源電圧=D［V］時におけるセル電流曲線83、85上の点であり、それぞれ、書込み直後、Vt=X[V]時のセル電流値である。
【００４８】
図７から、電源電圧D[V]時は、メモリセルのVtがVt=max[V]からX[V]に変化すると、セル電流値がA値からB値に変化する。A値は、SA42およびSA43により、ともに“１”データと判定される。一方B値は、SA42により“１”データと判定されるが、SA43により“０”データと判定されることになる。結果として、SA42と比較してSA43の方が判定電流値が小さいため、フラッシュメモリ41のVtがある値以上に変化するとSA42より早く“１”データの読み出しを誤判定することになる。
【００４９】
以上のように構成された半導体装置において、フラッシュメモリ41の書込みされたメモリセルのVtが変動した場合の動作について説明する。
【００５０】
第３の実施の形態による半導体装置が、CPU47によりVt判定モードに移行した場合、保持回路４６は初期値“０”であるため、CPU47は切換え信号401として（0,0）もしくは(1,1)を出力する。SA42とSA43は、切換え信号401を受け、共にフラッシュメモリ41のデータを判定し出力する。
【００５１】
まずメモリセルのVtがVt=max[V]の場合、図７のA値はSA42およびSA43によりともに“１”データと判定される。この時比較回路44は“０”を出力し、保持回路４６は“０”データを格納し保持する。CPU47は保持回路４６のデータを受け、S42とSA43の判定が一致しているとして切換え信号401として（0,1）を出力する。この結果、本半導体装置は低消費モードに移行する。従って、SA42は切換え信号401の値を受け判定動作を停止し、次のフラッシュメモリ41の読み出しはSA43でのみ実施される。SA43はSA42より判定電流値が小さいため、結果として本半導体装置の消費電力が小さくなる。
【００５２】
次に、メモリセルのVtがVt=max[V]からX[V]に低下した場合、図７のA値がB値になる。B値はSA42では“１”判定されるため、CPU47は正常に動作することが出来る。しかしながら、SA43は“０”データと判定する。この時、CPU４７は誤ったデータを格納するため、誤動作することになる。この時比較回路44は“１”を出力し、保持回路４６は“１”データを格納し保持する。CPU47は保持回路４６のデータを受け、ＳＡ42とSA43の判定が一致していないとして切換え信号401として（1,0）を出力する。この結果、本半導体装置は通常モードに移行する。従って、SA43は切換え信号401の値を受け判定動作を停止し、次のフラッシュメモリ41の読み出しはSA42でのみ実施される。
【００５３】
以上のように第３の実施の形態によれば、フラッシュメモリ41のVt変化を検出しメモリの劣化度合いが少ない場合や、システムスピードが遅い場合は、判定電流が小さいセンスアンプ回路を使用することでシステムの低消費電力化を図り、システムの長寿命化を達成することが可能となる。
（実施の形態4）
図４は、本発明における第４の実施の形態である半導体装置の概略構成図である。
【００５４】
ここで第４の実施の形態における半導体装置の動作モードとして、通常動作モードと、書込みモードを備えているものとする。通常動作モードは、CPU56が指定したアドレスのフラッシュメモリデータを読出しCPU56が所定の動作をするモードである。また書込みモードは、CPU56が指定したアドレスのフラッシュメモリデータを読出し、読み出したデータを保持回路57が格納し、格納したデータをフラッシュメモリに書込むモードである。フラッシュメモリデータの読出しと、保持回路57によるデータ格納と、保持回路57のデータのフラッシュメモリ51への書込みは、順番の通りに同一CPUサイクル内で実行されるものとする。また2種類の動作モードは図４のCPU56がシステムの状態を判断し制御するものとする。
【００５５】
図４において、半導体装置は、フラッシュメモリ51、データ判定回路5、比較回路54、保持回路55と57、CPU56で構成されている。データ判定回路5は、2種類のセンスアンプ回路SA52、SA53で構成されている。SA52とSA53はそれぞれフラッシュメモリ51のデータが“０”か“１”かを判定し出力する。比較回路54は、前記SA52とSA53のデータをビット毎に比較し、1ビットでも異なれば“１”データを出力し、それ以外は“０”データを出力する。保持回路55は、比較回路54の出力を格納し保持する。CPU56はSA52の出力データを命令およびテーブルデータとして格納し所定の処理を行う。またCPU56は、保持回路55の出力が“１”の時に書込み信号501として“１”データを出力し、それ以外は“０”を出力する。保持回路57は、CPU56と同様にSA52のデータを格納し、フラッシュメモリ51に出力する。フラッシュメモリ51は、書込み信号501が"1"の時に保持回路57のデータをCPU56に指定されたアドレスに書込まれ、それ以外は順次メモリデータをSA52と53に出力する。
【００５６】
ここで、データ判定回路5の詳細動作について図８を用いて説明する。
図８において、91はSA53の判定基準となる電流曲線、92はSA52の判定基準となる電流曲線であり、第３の実施の形態では、SA52とSA53の判定基準は異なり、SA52よりSA53の方が低くなるように設定されている。SA52は、任意の電源電圧におけるフラッシュメモリ51のセル電流値が判定基準92より高い場合は“０”データ、低い場合は“１”データとして判定する。この判定方法は、SA53についても同様であり、判定基準91よりセル電流が高い場合は“０”、低い場合は“１”と判定する。
【００５７】
93と94はフラッシュメモリ51のセル電流曲線であり、前者は書込み直後のVt=max[V]時、後者は消去直後のVt=min[V]時の特性を示す。95と96はVt変動した場合のセル電流曲線であり、前者はVt変動幅が小さく(Vt=X[V]時)、後者はVt変動幅が大きい場合（Vt=Y[V]時）の特性を示す。図中A値、B値、C値は電源電圧=D［V］時におけるセル電流曲線93、95、96上の点であり、それぞれ、書込み直後、Vt=X[V]時およびVt=Y[V]時のセル電流値である。
【００５８】
図８から、電源電圧D[V]時は、メモリセルのVtがVt=max[V]→X[V]→Y[V]に変化すると、セル電流値がA値→B値→C値に移動する。この場合のフラッシュメモリ51の“１”データは、SA52ではそれぞれ“１”、“１”、“０”と判定される。一方SA53においては、それぞれ“１”、“０”、“０”と判定されることになる。結果として、SA52と比較してSA53の方が早い段階でフラッシュメモリ51の“１”データの読み出しを誤判定することになる。
【００５９】
以上のように構成された半導体装置において、フラッシュメモリ51の書込みされたメモリセルのVtが変動した場合の動作について説明する。
【００６０】
まず通常動作モードにおいて、SA52とSA53は、順次フラッシュメモリ51のデータを判定し出力する。メモリセルのVtがVt=max[V]からX[V]に低下した場合、図８のA値がB値になる。B値はSA52では“１”判定されるため、CPU56は正常に動作することが出来る。しかしながら、VtがY[V]に更に低下した場合、図9のA値はC値になり、SA52は“０”データと判定する。この時、CPU５６は誤ったデータを格納するため、誤動作することになる。
【００６１】
一方、SA53ではB値は“０”判定される。従ってSA52とSA53の判定結果が異なるため、比較回路54は“１”を出力する。保持回路55は“１”データを格納し、一度“１”データを格納するとCPU56により初期化されるまでデータを保持する。CPU56は保持回路55の“１”データを受けSA52とSA53の判定結果が異なったと判断する。この時CPU56は、システムの状態を考慮して、半導体装置を書込みモードに移行させる。以上の結果、CPU56は、フラッシュメモリ51のVtが変化していることを察知し、誤動作する前に半導体装置を書込みモードに移行させることができる。
【００６２】
書込みモードにおいて、保持回路57はCPU56に指定されたアドレスのフラッシュメモリ51のデータを格納する。CPU56は、書込み信号として“１”を出力し、読み出したデータをフラッシュメモリ51に上書きする。上記の動作を繰り返すことでフラッシュメモリ51のメモリセルのVtは、書込み直後の状態に改善されることになる。
【００６３】
以上のように、第４の実施の形態によれば、フラッシュメモリ51のVt変化を検出しメモリの劣化度合いを察知し、読み出したデータをフラッシュメモリに上書きすることで、メモリセルのVtを正常な値に戻し、システムの寿命を飛躍的に伸ばすことが可能となる。
【００６４】
なお、以上の実施の形態では、書き込まれたメモリセルのVt変化（低下）に対する形態で説明したが、判定基準に対してメモリセルの初期電流値が高いか低いかの違いだけであるので、消去されたメモリセルのVt変化（上昇）についても同様の判定方法が適用できることは言うまでもない。
【産業上の利用可能性】
【００６５】
本発明にかかる半導体装置は、誤動作を防止し、不揮発性メモリの信頼性を向上し、システムの寿命を飛躍的に向上する。また、小面積化が可能でレイアウトが容易になり、低消費電力が可能となり、メモリセルのＶｔを正常値に戻すことができる等の効果を有し、半導体装置等として有用である。
【図面の簡単な説明】
【００６６】
【図１】本発明の第１の実施の形態の半導体装置のブロック図である。
【図２】第２の実施の形態の半導体装置のブロック図である。
【図３】第３の実施の形態の半導体装置のブロック図である。
【図４】第４の実施の形態の半導体装置のブロック図である。
【図５】第１の実施の形態のメモリセルの電流曲線図である。
【図６】第２の実施の形態のメモリセルの電流曲線図である。
【図７】第３の実施の形態のメモリセルの電流曲線図である。
【図８】第４の実施の形態のメモリセルの電流曲線図である。
【図９】従来例の半導体装置のブロック図である。
【符号の説明】
【００６７】
２１  メモリ
２２  ＳＡ
２３  ＳＡ
２４  比較回路
２５  保持回路
２６  ＣＰＵ
【図１】
2006147073.tif 000004
【図２】
2006147073.tif 000005
【図３】
2006147073.tif 000006
【図４】
2006147073.tif 000007
【図５】
2006147073.tif 000008
【図６】
2006147073.tif 000009
【図７】
2006147073.tif 000010
【図８】
2006147073.tif 000011
【図９】
2006147073.tif 000012