(57)【特許請求の範囲】
【請求項１】
データの書き込み及び読み出しが可能であり且つデータの電気的消去が可能な第１の不揮発性メモリをプログラムメモリ又はデータメモリとして内蔵した不揮発性メモリ内蔵マイクロコンピュータにおいて、
前記マイクロコンピュータが初期化された際に、前記マイクロコンピュータが所定状態に設定されているか否かを検出するものであって、前記マイクロコンピュータが所定状態に設定されていることを検出した時、前記第１の不揮発性メモリの内容の書き換えを実行し、前記マイクロコンピュータが所定状態に設定されていないことを検出した時、前記第１の不揮発性メモリの内容の書き換えを実行せずに、前記第１の不揮発性メモリのルーチンを実行するための手段と、
前記第１の不揮発性メモリが正常にデータの書き換え動作を行える回数を確認するためのプログラムが予め書き込まれた第２の不揮発性メモリと、
前記第１及び第２の不揮発性メモリをアクセス可能なプログラムカウンタと、
前記マイクロコンピュータの初期化時に、前記手段の検出出力に応じて、前記プログラムカウンタが前記第２の不揮発性メモリの所定アドレスをアクセスするように、前記プログラムカウンタの所定ビットの値を設定する手段と、を備え、
前記第２の不揮発性メモリから読み出されたプログラム命令を実行することにより、前記第１の不揮発性メモリの内容を所定回数書き換える毎に、該第１の不揮発性メモリの内容を読み出して正常か否かを判断し、該第１の不揮発性メモリから読み出した内容が正常の時は、さらに該第１の不揮発性メモリの内容を所定回数書き換える毎に該第１の不揮発性メモリの内容を読み出して正常か否かを判断する動作を繰り返し、
該第１の不揮発性メモリから読み出した内容が異常の時は、所定回数までの書き換えは正常であった旨のデータを出力ポートから出力させ、前記第１の不揮発性メモリが正常に書き換え動作を行える回数を確認可能としたことを特徴とする不揮発性メモリ内蔵マイクロコンピュータ。
【請求項２】
前記第２の不揮発性メモリから読み出されるプログラム命令に基づき、前記第１の不揮発性メモリのデータ書き換えを行う際のアドレスデータがセットされるアドレスレジスタを備えたことを特徴とする請求項１記載の不揮発性メモリ内蔵マイクロコンピュータ。
【請求項３】
前記マイクロコンピュータの所定の状態とは、ポートの状態であることを特徴とする請求項１記載の不揮発性メモリ内蔵マイクロコンピュータ。
【請求項４】
前記第１及び第２の不揮発性メモリは同一アドレス空間に割り振られ、前記マイクロコンピュータの初期化時に該マイクロコンピュータが所定状態に設定されていない時、前記第１又は前記第２の不揮発性メモリをアクセスするプログラムカウンタの所定ビットを変更して前記第１の不揮発性メモリのアクセスを可能とすることを特徴とする請求項１記載の不揮発性メモリ内蔵マイクロコンピュータ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、フラッシュメモリ（ＥＥＰＲＯＭ）を内蔵するマイクロコンピュータにおいて、前記フラッシュメモリのデータ書き換え回数を知るのに好適な、不揮発性メモリの書き換え回数測定装置に関する。
【０００２】
【従来の技術】
最近の１チップマイクロコンピュータの中には、プログラムメモリ又はデータメモリとして、データの電気的消去が可能であり且つデータの書き込み及び読み出しが可能なフラッシュメモリ（ＥＥＰＲＯＭ）を内蔵したものが存在する。前記ＥＥＰＲＯＭの各メモリセルは各々コントロールゲート及びフローティングゲートを有するＭＯＳトランジスタで構成されている。前記ＥＥＰＲＯＭの各メモリセルは、ドレイン−ソース間に高電圧を印加してフローティングゲートに負の電荷を帯電させた時、ドレインソース間にチャンネルが形成されなくなり、出力電流が流れ難くなる。このメモリセルの状態が論理「０」である。一方、前記ＥＥＰＲＯＭの各メモリセルのコントロールゲートに高電圧を印加すれば、フローティングゲートに帯電していた負の電荷はコントロールゲートを介して消失し、ドレインソース間にチャンネルが形成されて最大１００μＡ程度の出力電流が流れる。このメモリセルの状態が論理「１」である。前記ＥＥＰＲＯＭの各メモリセルは、こうして「１」及び「０」のデータが書き込まれた状態となる。
【０００３】
ところで、前記ＥＥＰＲＯＭのデータ書き換えを行う場合、特に各メモリセルの状態を論理「０」から論理「１」に変更する場合、フローティングゲートに帯電された負の電荷を抜き取る必要がある。ところが、フローティングゲート付ＭＯＳトランジスタの構造上、フローティングゲートから帯電済みの電荷を完全に抜き取ることは物理的に不可能である。その為、各メモリセルに対して、論理「０」から論理「１」へのデータ書き換えを繰り返し何度も実行すると、フローティングゲートに徐々に負の電荷が蓄積され、最後には各メモリセルを論理「１」とする処理を行っているにも関わらず、フローティングゲートは負の電荷が蓄積されたままとなってしまい、誤って論理「０」を書き込んだ状態と等価となる。その為、ＥＥＰＲＯＭ内蔵マイクロコンピュータの使用者は、前記ＥＥＰＲＯＭの正常なデータ書き換えが最大何回まで可能であるのかを事前に確認しておく必要がある。
【０００４】
そこで、従来は、前記ＥＥＰＲＯＭ内蔵マイクロコンピュータを製造する半導体製造業者が、前記ＥＥＰＲＯＭ内蔵マイクロコンピュータの為の半導体素子を集積化したＩＣを任意に複数個抽出し、これら複数のＩＣに対して内蔵ＥＥＰＲＯＭの書き換え試験を行っていた。具体的には、前記ＩＣに設けられたＥＥＰＲＯＭの為のアドレスデータ入力端子とデータ入出力端子とにデータ書き換え専用の測定器を結合し、ＥＥＰＲＯＭ全体のデータの書き換えを行った結果、各メモリセルの出力電流がどれだけ流れているのかを測定してＥＥＰＲＯＭの書き換え回数の限界を検出していた。詳しくは、各メモリセルの出力電流に共通の閾値を設定しており、出力電流が前記閾値より大きい時は論理「１」と判断し、出力電流が前記閾値より小さい時は論理「０」と判断する。従って、論理「１」をメモりセルに書き込む処理を実行しているにも関わらず、出力電流が前記閾値より小さくなった場合には、フローティングゲートに多くの負の電荷が蓄積されていることを意味し、もうこれ以上の正常なデータ書き換えは不可能となる。この時点の書き換え回数を、半導体製造業者は、ＥＥＰＲＯＭ内蔵マイクロコンピュータの使用者に事前に報告している。
【０００５】
【発明が解決しようとする課題】
しかしながら、ＥＥＰＲＯＭのデータの正常な最大書き換え回数を評価する為に、わざわざ専用の前記測定器を購入しなければならない問題があった。
そこで、本発明は、前記測定器を不要とできる不揮発性メモリの書き換え回数測定装置を提供することを目的とする。
【０００６】
【課題を解決するための手段】
本発明は、前記問題点を解決する為に成されたものであり、その特徴とするところは、データの書き込み及び読み出しが可能であり且つデータの電気的消去が可能な第１の不揮発性メモリをプログラムメモリ又はデータメモリとして内蔵した不揮発性メモリ内蔵マイクロコンピュータにおいて、前記マイクロコンピュータが初期化された際に、前記マイクロコンピュータが所定状態に設定されているか否かを検出するものであって、前記マイクロコンピュータが所定状態に設定されていることを検出した時、前記第１の不揮発性メモリの内容の書き換えを実行し、前記マイクロコンピュータが所定状態に設定されていないことを検出した時、前記第１の不揮発性メモリの内容の書き換えを実行せずに、前記第１の不揮発性メモリのルーチンを実行するための手段と、前記第１の不揮発性メモリが正常にデータの書き換え動作を行える回数を確認するためのプログラムが予め書き込まれた第２の不揮発性メモリと、前記第１及び第２の不揮発性メモリをアクセス可能なプログラムカウンタと、前記マイクロコンピュータの初期化時に、前記手段の検出出力に応じて、前記プログラムカウンタが前記第２の不揮発性メモリの所定アドレスをアクセスするように、前記プログラムカウンタの所定ビットの値を設定する手段と、を備え、前記第２の不揮発性メモリから読み出されたプログラム命令を実行することにより、前記第１の不揮発性メモリの内容を所定回数書き換える毎に、該第１の不揮発性メモリの内容を読み出して正常か否かを判断し、該第１の不揮発性メモリから読み出した内容が正常の時は、さらに該第１の不揮発性メモリの内容を所定回数書き換える毎に該第１の不揮発性メモリの内容を読み出して正常か否かを判断する動作を繰り返し、該第１の不揮発性メモリから読み出した内容が異常の時は、所定回数までの書き換えは正常であった旨のデータを出力ポートから出力させ、前記第１の不揮発性メモリが正常に書き換え動作を行える回数を確認可能とした点である。
【０００７】
【発明の実施の形態】
本発明の詳細を図面に従って具体的に説明する。
図１は本発明の不揮発性メモリの書き換え回数測定装置を示す回路ブロック図であり、全て１チップマイクロコンピュータ内部に内蔵されている。
図１において、（１）はＥＥＰＲＯＭ（第１の不揮発性メモリ）であり、電気的にデータ消去が可能であり、データの書き込み及び読み出しが可能なものである。該ＥＥＰＲＯＭ（１）の記憶領域は、特定アドレス（破線）を境にプログラム領域とデータ領域とに分割されている。
【０００８】
（２）はマスクＲＯＭ（第２の不揮発性メモリ）であり、該マスクＲＯＭ（２）には、ＥＥＰＲＯＭ（１）に対する正常なデータ書き換えの最大回数を評価する為のプログラムデータが記憶されている。該マスクＲＯＭ（２）は、前記１チップマイクロコンピュータが初期化された時に、後述するプログラムカウンタによりアドレス指定される。ここで、本発明の実施の形態においては、ＥＥＰＲＯＭ（１）及びマスクＲＯＭ（２）は同一アドレス空間に割り振られており、例えばＥＥＰＲＯＭ（１）のアドレス領域を「００００」Ｈ〜「７ＦＦＦ」Ｈ、マスクＲＯＭ（２）のアドレス領域を「８０００」Ｈ〜「ＦＦＦＦ」Ｈとする。即ち、前記１チップマイクロコンピュータの初期化時、後述のプログラムカウンタの最上位ビットは「１」にハード的に変更される。
【０００９】
（３）は上記した１６ビット構成のプログラムカウンタＰＣであり、ＥＥＰＲＯＭ（１）及びマスクＲＯＭ（２）のアドレスをアクセスするものである。ここで、図２にプログラムカウンタ（３）内部のラッチ回路部分を示している。図２において、ｂｉｔ０が最下位ビット、ｂｉｔ１５が最上位ビットに対応し、ｂｉｔ０〜ｂｉｔ１４は各々同一構成であり、ｂｉｔ１５のみ構成が一部異なる。まず、ｂｉｔ０〜ｂｉｔ１４において、ｂｉｔ０を代表して説明すると、ＮＡＮＤゲート（２０）の一方の入力はトランスミッションゲート（２１）と接続され、ＮＡＮＤゲート（２０）の出力と一方の入力の間にはｂｉｔ０データ保持の為のインバータ（２２）及びトランスミッションゲート（２３）が直列接続されている。トランスミッションゲート（２１）は最下位ビットのアドレスデータＡＤＤ０をラッチ回路内部に取り込むものであり、トランスミッションゲート（２３）はラッチ回路内部に取り込まれたアドレスデータＡＤＤ０を保持する為のものである。従って、トランスミッションゲート（２１）（２３）は相補的に動作する必要があり、トランスミッションゲート（２１）の制御入力にはクロックＣＫがそのまま印加され、トランスミッションゲート（２３）の制御入力には、前記クロックＣＫがインバータ（２４）を介して反転印加される。動作は、アドレスデータの変更時、クロックＣＫが発生してハイレベルとなると、アドレスデータＡＤＤ０がＮＡＮＤゲート（２０）に印加され、インバータ（２５）を介して出力される。その後、アドレスデータＡＤＤ０の保持時は、前記クロックＣＫが無くなってローレベルとなる為、トランスミッションゲート（２３）がゲートを開いてアドレスデータＡＤＤ０はＮＡＮＤゲート（２０）、インバータ（２２）及びトランスミッションゲート（２３）から成るループで保持され、インバータ（２５）から出力され続ける。一方、ＮＡＮＤゲート（２０）の他方の入力には、インバータ（２６）を介して前記１チップマイクロコンピュータを初期化する際に発生するハイレベルのイニシャル信号ＩＮＴが印加される。前記１チップマイクロコンピュータの初期化時は、ｂｉｔ０〜ｂｉｔ１４から出力されるアドレスデータＡＤＤ０〜ＡＤＤ１４は全て「０」となる。
【００１０】
ｂｉｔ１５においては、ｂｉｔ０〜ｂｉｔ１４に設けたＮＡＮＤゲート（２０）をＮＯＲゲート（２７）に代え、インバータ（２６）を削除した構成で、それ以外の構成には変更はなく、同一構成には同一番号を記すものとする。前記１チップマイクロコンピュータの初期化時、ハイレベルのイニシャル信号ＩＮＴがｂｉｔ１５内部のＮＯＲゲート（２７）の一方の入力に印加されると、ｂｉｔ１５から出力されるアドレスデータＡＤＤ１５は「１」となる。即ち、前記１チップマイクロコンピュータの初期化時のプログラムカウンタ（３）の値は、ハード的にマスクＲＯＭ（２）の先頭番地である「８０００」Ｈとなる。
【００１１】
（４）はインストラクションレジスタＩＲであり、ＥＥＰＲＯＭ（１）及びマスクＲＯＭ（２）から読み出されたデータを内部バス（５）を介して保持するものである。（６）はインストラクションデコーダＩＤＥＣであり、インストラクションレジスタ（４）の内容を解読し、前記１チップマイクロコンピュータを制御する為の各種制御信号を出力するものである。
【００１２】
（７）は１６ビット構成のアドレスレジスタであり、マスクＲＯＭ（２）から読み出されたプログラム命令に基づき、ＥＥＰＲＯＭ（１）のデータ書き換えを行う際の該ＥＥＰＲＯＭ（１）のアドレスデータがセットされるものである。
（８）は８ビットの入力ポートであり、ＥＥＰＲＯＭ（１）のデータ書き換えモードを実行する時に「００」Ｈが前記１チップマイクロコンピュータ外部で設定される。
【００１３】
（９）は８ビット構成のスタティックＲＡＭであり、各種データの書き込み及び読み出しが行われるものである。（１０）はアキュムレータＡＣＣであり、データの一時格納を行うものである。（１１）（１２）は各々テンポラリレジスタＴＭＰ１、ＴＭＰ２であり、アキュムレータ（１０）と同様にデータの一時保持を行うものである。（１３）は演算論理ユニットＡＬＵであり、テンポラリレジスタ（１１）（１２）に一時保持されたデータに対して、ＥＥＰＲＯＭ（１）又はマスクＲＯＭ（２）の読み出しプログラムに基づく論理演算を行い、この結果に基づき、プログラムカウンタ（３）の値を制御するものである。
【００１４】
（１４）は出力ポートであり、ＥＥＰＲＯＭ（１）に対する正常なデータ書き換えの最大回数を表すデータを出力するものである。
（１５）（１６）はＡＮＤゲート且つ（１７）はＯＲゲートであり、マルチプレクサを構成する。尚、該マルチプレクサは、プログラムカウンタ（３）のビット数１６に対応して１６個パラレルに設けられている。ＡＮＤゲート（１５）の一方の入力にはプログラムカウンタ（３）の値が印加され、ＡＮＤゲート（１６）の一方の入力にはアドレスレジスタ（７）の値ＡＤＤが印加される。更に、ＡＮＤゲート（１５）（１６）の他方の入力には、各々、インストラクションデコーダ（６）から出力される切換制御信号が反転及びそのまま共通印加される。
【００１５】
以下、図３のフローチャートを用いて図１の動作を説明する。
まず、ＥＥＰＲＯＭ（１）の書き換え回数の評価を行う為に、入力ポート（８）を「００」Ｈの状態としておく。即ち、８ビットの入力ポート（８）全てを外部端子を介して接地した状態としておく。そして、前記１チップマイクロコンピュータに電源を投入し、該１チップマイクロコンピュータを初期化する。この時、前記切換制御信号は「０」であり、上記したプログラムカウンタ（３）のラッチ回路構成の説明により、プログラムカウンタ（３）の値はハード的に「８０００」Ｈとなる。従って、マスクＲＯＭ（２）の「８０００」Ｈ以降のプログラムデータが順次読み出され、以下の動作が実行される。
【００１６】
初めに、マスクＲＯＭ（２）のプログラムデータをインストラクションデコーダ（６）で解読した結果に基づき、入力ポート（８）の「００」Ｈが内部バス（５）を介してアキュムレータ（１０）に一時保持される（ステップ１）。その後、アキュムレータ（１０）の内容が「００」Ｈであるか否かの判断が行われる（ステップ２）。具体的には、アキュムレータ（１０）の内容が内部バス（５）を介してテンポラリレジスタ（１１）に一時保持され、且つ、マスクＲＯＭ（２）から読み出されてインストラクションレジスタ（４）に保持された比較データが内部バス（５）を介してテンポラリレジスタ（１２）にセットされる。そして、テンポラリレジスタ（１１）（１２）の保持データが演算論理ユニット（１３）に印加されて所定の論理演算が実行される。この結果、演算論理ユニット（１３）からアキュムレータ（１０）の内容が「００」Ｈである旨の演算結果が得られると（ステップ２：ＹＥＳ）、これ以降、マスクＲＯＭ（２）から読み出されるプログラム命令に基づき、以下に説明するＥＥＰＲＯＭ（１）のデータ書き換え動作が実行される。一方、アキュムレータ（１０）の内容が「００」Ｈでない旨の演算結果が演算論理ユニット（１３）から得られると（ステップ２：ＮＯ）、プログラムカウンタ（３）の値は「００００」Ｈに変更され（ステップ３）、データ書き換え回数のチェックを目的とした、ＥＥＰＲＯＭ（１）のデータ書き換えを行わず、ＥＥＰＲＯＭ（１）に既に書き込まれている通常動作ルーチンが実行される。
【００１７】
前記ステップ２：ＹＥＳの後、マスクＲＯＭ（２）がプログラムカウンタ（３）により特定アドレスを順次アクセスされる訳であるが、初めに、マスクＲＯＭ（２）の読み出しプログラムがインストラクションデコーダ（６）で解読されることにより、マスクＲＯＭ（２）からデータ「００００」Ｈが読み出され、上位８ビット「００」Ｈ及び下位８ビット「００」Ｈが各々ＲＡＭ（９）の所定の２アドレス（Ａ領域）に書き込まれ、その後、アキュムレータ（１０）に一時格納された後にアドレスレジスタ（７）に順次セットされる。こうして、アドレスレジスタ（７）の値は「００００」Ｈとなる（ステップ４）。そして、マスクＲＯＭ（２）の次のプログラム命令の解読結果に基づき、前記切換制御信号が「１」となってＥＥＰＲＯＭ（１）のアクセスがアドレスレジスタ（７）側に切り換えられ、ＥＥＰＲＯＭ（１）の「００００」Ｈ番地にマスクＲＯＭ（２）から読み出された「ＦＦ」Ｈが書き込まれる。即ち、ＥＥＰＲＯＭ（１）の「００００」Ｈ番地を構成する全メモリセルのフローティングゲートの蓄積電荷の抜き取りが行われる（ステップ５）。その後、ＥＥＰＲＯＭ（１）の「００００」Ｈ番地にマスクＲＯＭ（２）から読み出された「００」Ｈが書き込まれる。即ち、ＥＥＰＲＯＭ（１）の「００００」Ｈ番地の全メモリセルのフローティングゲートに対して電荷の帯電が行われる（ステップ６）。これより、ＥＥＰＲＯＭ（１）の「００００」Ｈ番地に対して「ＦＦ」Ｈ及び「００」Ｈの１回の書き換えが終了したことになる。
【００１８】
次に、ＥＥＰＲＯＭ（１）の「００００」Ｈ〜「ＦＦＦＦ」Ｈ番地に対する「ＦＦ」Ｈ及び「００」Ｈの書き換えが１００回終了したか否かを判断する（ステップ７）。現段階では、ＥＥＰＲＯＭ（１）の「００００」Ｈ番地への１回のデータ書き換えが終了しただけの為（ステップ７：ＮＯ）、マスクＲＯＭ（２）の次の読み出しプログラムを解読した結果、アドレスレジスタ（７）のインクリメント命令が実行される。具体的には、マスクＲＯＭ（２）から読み出された「０１」Ｈが内部バス（５）を介してテンポラリレジスタ（１１）にセットされ、且つ、アドレスレジスタ（７）の下位８ビット「００」Ｈがテンポラリレジスタ（１２）にセットされ、演算論理ユニット（１３）で両テンポラリレジスタ（１１）（１２）の論理和演算が実行され、この値が再び内部バス（５）を介してアドレスレジスタ（７）の下位８ビットにセットされる。これより、アドレスレジスタ（７）の値は「０００１」Ｈとなり、＋１インクリメントされたことになる（ステップ８）。尚、演算論理ユニット（１３）の論理和演算の結果がキャリーを発生する場合、そのキャリーとアドレスレジスタ（７）の上位８ビットが再び演算論理ユニット（１３）で論理和演算され、再びアドレスレジスタ（７）の上位８ビットにセットされる。
【００１９】
次に、アドレスレジスタ（７）の値が「８０００」Ｈになったか否かが判断される（ステップ９）。現段階では、アドレスレジスタ（７）の値が「０００１」Ｈになったばかりの為（ステップ９：ＮＯ）、上記動作と同様にして、ＥＥＰＲＯＭ（１）の「０００１」Ｈ番地に対して「ＦＦ」Ｈ及び「００」Ｈの１回の書き換えが実行される（ステップ５，６）。こうして、ステップ５，６，７：ＮＯ，８，９：ＮＯを繰り返し、ＥＥＰＲＯＭ（１）の「７ＦＦＦ」Ｈ番地に対する「ＦＦ」Ｈ及び「００」Ｈの１回の書き換えまでが終了すると、アドレスレジスタ（７）の値は「８０００」Ｈとなる（ステップ９：ＹＥＳ）。この状態は、ＥＥＰＲＯＭ（１）の「００００」Ｈ〜「７ＦＦＦ」Ｈの全アドレスに対して「ＦＦ」Ｈ及び「００」Ｈの１回の書き換えが完了したことを意味する。すると、ＲＡＭ（９）の所定の１アドレス（Ｂ領域）に、ＥＥＰＲＯＭ（１）の全アドレスのデータ書き換えが１回終了したことを表す「０１」Ｈが書き込まれる（ステップ１０）。尚、「８０００」Ｈとなったアドレスレジスタ（７）には再び「００００」Ｈがセットされる。以後、ステップ５，６，７：ＮＯ，８，９，１０を繰り返し、ＲＡＭ（９）のＢ領域のデータがインクリメント命令に伴い１００に対応するバイナリデータとなった時、ＥＥＰＲＯＭ（１）の全アドレスに対するデータ書き換えが１００回終了したことになる（ステップ７：ＹＥＳ）。すると、ＲＡＭ（９）の所定の１アドレス（Ｃ領域）に対して、ＥＥＰＲＯＭ（１）の全アドレスのデータ書き換えが１００回終了したことを表す「０１」Ｈが書き込まれる（ステップ１１）。
【００２０】
その後、ＥＥＰＲＯＭ（１）の全アドレスに１００回目に書き換えられた本来「００」Ｈであろうデータが読み出され、各アドレスの読み出しデータが「００」Ｈになっているか否かの判断が行われる（ステップ１２，１３）。具体的には、マスクＲＯＭ（２）のプログラム命令の解読結果に基づき、前記切換制御信号を「１」とすると共にアドレスレジスタ（７）に「００００」Ｈをセットし、まずＥＥＰＲＯＭ（１）の「００００」Ｈ番地のデータを読み出す。そして、このデータをテンポラリレジスタ（１１）にセットすると共にマスクＲＯＭ（２）からの比較データをテンポラリレジスタ（１２）にセットし、演算論理ユニット（１３）で所定の論理演算を行う。この結果、演算論理ユニット（１３）からＥＥＰＲＯＭ（１）の「００００」Ｈ番地のデータが「００」Ｈでない旨の演算結果が得られた時（ステップ１３：ＮＯ）、ＲＡＭ（９）のＣ領域に書き込まれたデータを出力ポート（１４）から出力する（ステップ１４）。これより、ＥＥＰＲＯＭ（１）は１００回以下で正常にデータの書き換えが可能であることを使用者に知らせることが可能となる。一方、ＥＥＰＲＯＭ（１）の「００００」Ｈ番地から読み出されたデータが、演算論理ユニット（１３）の演算結果により、「００」Ｈであった場合は、上記動作と同様にしてインクリメント命令が実行され、アドレスレジスタ（７）の値が「０００１」Ｈとなる。そして、ＥＥＰＲＯＭ（１）の「０００１」Ｈ番地から読み出されたデータが「００」Ｈであるか否か判断され、「００」Ｈである時は上記アドレスレジスタ（７）のインクリメント動作が行われる。ＥＥＰＲＯＭ（１）の何れか１つのアドレスの読み出しデータが「００」Ｈでないと、ステップ１４に進み、プログラムは終了してしまう。ところで、アドレスレジスタ（７）の値が「８０００」Ｈになるということは、ＥＥＰＲＯＭ（１）の「００００」Ｈ〜「７ＦＦＦ」Ｈから読み出されたデータは全て「００」Ｈで正常であったことを意味する（ステップ１３：ＹＥＳ）。
【００２１】
次は、ＥＥＰＲＯＭ（１）の「００」Ｈデータのチェックが完了した為、ステップ５と同様にしてＥＥＰＲＯＭ（１）の全アドレスに「ＦＦ」Ｈを書き込む（ステップ１５）。その後、ステップ１２，１３と同様にして、ＥＥＰＲＯＭ（１）の全アドレスからデータを読み出し、そのデータが「ＦＦ」Ｈであるか否かを判断する（ステップ１６，１７）。ＥＥＰＲＯＭ（１）からの読み出しデータが「ＦＦ」Ｈでない場合は（ステップ１７：ＮＯ）、ステップ１４へ進み、ＥＥＰＲＯＭ（１）が１００回以下で正常なデータ書き換えをできる旨のＲＡＭ（９）のＣ領域のデータを出力ポート（１４）から出力する。一方、ＥＥＰＲＯＭ（１）の読み出しデータが全て「ＦＦ」Ｈであった場合（ステップ１７：ＹＥＳ）、再びステップ４に戻り、上記動作を繰り返す。
【００２２】
以上より、ＥＥＰＲＯＭ（１）に前記１チップマイクロコンピュータの初期化時の状態判断を行う為のプログラムを事前に外部から書き込むことなく、前記１チップマイクロコンピュータの初期化時にマスクＲＯＭ（２）の先頭番地をハード的にアクセスできる構成とした。これより、ＥＥＰＲＯＭ（１）への書き換え回数測定の為のプログラムをわざわざ書き込む必要が無くなる。そして、マスクＲＯＭ（２）のプログラムを実行することにより、ＥＥＰＲＯＭ（１）の正常なデータ書き換え回数を１００回単位で確認することができ、従来必要とされていたＥＥＰＲＯＭ（１）の書き換え回数評価の為の専用の測定器を不要とできる。
【００２３】
【発明の効果】
本発明によれば、第１の不揮発性メモリに１チップマイクロコンピュータの初期化時の状態判断を行う為のプログラムを事前に外部から書き込むことなく、前記１チップマイクロコンピュータの初期化時に第２の不揮発性メモリの所定番地をハード的にアクセスできる構成とした。これより、第１の不揮発性メモリへの書き換え回数測定の為のプログラムをわざわざ書き込む必要が無くなる。そして、第２の不揮発性メモリのプログラムを実行することにより、第１の不揮発性メモリの正常なデータ書き換え回数を所定回数単位で確認することができ、従来必要とされていた第１の不揮発性メモリの書き換え回数評価の為の専用の測定器を不要とできる利点が得られる。
【図面の簡単な説明】
【図１】本発明の不揮発性メモリの書き換え回数測定装置を示す回路ブロック図である。
【図２】図１のプログラムメモリの一部の構成を示す回路図である。
【図３】図１の動作を示すフローチャートである。
【符号の説明】
（１）  ＥＥＰＲＯＭ
（２）  マスクＲＯＭ
（３）  プログラムカウンタ
（７）  アドレスレジスタ
（８）  入力ポート
（１４）  出力ポート
【図１】
0003702016.tif 000002
【図２】
0003702016.tif 000003
【図３】
0003702016.tif 000004