(57)【特許請求の範囲】
【請求項１】
実行アドレスを指示するプログラムカウンタを有するＣＰＵとこのＣＰＵの一般プログラムデータ格納用の一般プログラム領域及び前記一般プログラムデータの書換用の書換プログラムを格納した書換プログラム格納領域とを有する不揮発メモリとを内蔵し、前記不揮発メモリの書換対象のアドレスである書換アドレスを指定するアドレスレジスタと、前記一般プログラムデータを書換えるための書換データを指定するデータレジスタと、前記不揮発メモリの書換時に消去及び書込の動作を制御する制御レジスタと、前記制御レジスタの値に基づき書換を実行する書込消去制御回路とを備える不揮発メモリ内蔵マイクロコンピュータにおいて、
前記一般プログラムデータの書換を行う書換動作時に、前記実行アドレスと前記書換アドレスとを比較し前記実行アドレスと前記書換アドレスとの一致に応答して前記データ書換プログラムを破壊するような異常書換であることを示す異常書換信号を出力するアドレス比較回路を備え、
前記異常書換信号の供給に応じて前記書換動作を禁止することにより、前記ＣＰＵの暴走を含む異常動作に起因する異常書換による誤書換を防止することを特徴とする不揮発メモリ内蔵マイクロコンピュータ。
【請求項２】
前記異常書換信号の供給に応答して割込信号を出力し前記ＣＰＵに供給する割込コントローラを備えることを特徴とする請求項１記載の不揮発メモリ内蔵マイクロコンピュータ。
【請求項３】
前記異常書換信号の供給に応答してマイクロコンピュータの内部回路を初期化するためのリセット信号を出力するリセットコントローラを備えることを特徴とする請求項１記載の不揮発メモリ内蔵マイクロコンピュータ。
【請求項４】
前記アドレス比較回路が、前記実行アドレスと前記書換アドレスの各々の予め定めたビット数の上位ビットの各々同士を比較することにより前記異常書換信号を出力することを特徴とする請求項１記載の不揮発メモリ内蔵マイクロコンピュータ。
【請求項５】
前記アドレス比較回路が、前記実行アドレスと前記書換アドレスの各々の予め定めたｍ（ｍは整数）ビットの前記上位ビットの各々同士の排他的論理和（ＸＯＲ）演算を行い第１〜第ｍのビット比較信号を出力する第１〜第ｍのＸＯＲ回路と、
前記第１〜第ｍのビット比較信号を否定論理和（ＮＯＲ）演算し判定結果である前記異常書換信号を出力するＮＯＲ回路とを備えることを特徴とする請求項４記載の不揮発メモリ内蔵マイクロコンピュータ。
【請求項６】
実行アドレスを指示するプログラムカウンタを有するＣＰＵとこのＣＰＵの一般プログラムデータを格納した一般プログラム格納領域である一般プログラムブロック及び前記一般プログラムデータの書換用の書換プログラムを格納した書換プログラム格納領域である書換プログラムブロックから成る複数のブロックを有する不揮発メモリとを内蔵する不揮発メモリ内蔵マイクロコンピュータの前記不揮発メモリの自己書換方法において、
前記書換プログラムブロックに分岐し前記実行アドレスとして設定する実行アドレス設定ステップと、
前記不揮発メモリの書換対象の前記書換プログラムブロックのアドレスである書換アドレスを指定する書換アドレス指定ステップと、
前記書換アドレスと前記実行アドレスとを比較し、現在アクセス中のブロックが同一ブロックであるかの判別を行うアドレス比較ステップと、
前記アドレス比較ステップで不一致の場合書換を実行する書換ステップと、
前記アドレス比較ステップで一致の場合異常書換信号を出力する異常書換信号出力ステップと、
前記異常書換信号の供給に応答して前記書換のための消去及び書込を停止する消去書込制御停止ステップと、
前記異常書換信号により発生した割込信号の供給に応答して前記ＣＰＵが割込処理を実施する割込処理ステップとを有することを特徴とする不揮発メモリ内蔵マイクロコンピュータの不揮発メモリの自己書換方法。
【請求項７】
前記書換ステップが、前記書換アドレスの指定ブロックを消去する消去ステップと、
前記指定ブロックに書込データを書込む書込ステップと、
書換終了か否かを判定し、未了の場合は前記書換アドレス指定ステップに戻り、終了の場合は処理を終了する書換終了判定ステップとを有することを特徴とする請求項６記載の不揮発メモリ内蔵マイクロコンピュータの不揮発メモリの自己書換方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は不揮発メモリ内蔵マイクロコンピュータとその不揮発メモリの自己書換方法に関し、特に不揮発メモリにデータ書換用プログラムを格納する不揮発メモリ内蔵マイクロコンピュータとその不揮発メモリの自己書換方法に関する。
【０００２】
【従来の技術】
フラッシュメモリ（ＥＥＰＲＯＭ）等の電気的データ消去及び書き込みが可能な不揮発メモリは、最近、１チップマイクロコンピュータに内蔵されてプログラムメモリ又はデータメモリとして広く使用されるようになってきている。
【０００３】
近年、この種の不揮発メモリ内蔵のマイクロコンピュータ市場では、内蔵不揮発メモリのオンボード（実装された状態）での自己書換要求が強く、その対応は必須となっている。また、より安全に自己書換が行える環境を提示することが要求されている。
【０００４】
この要求に応えるために、例えば、特開平１０−１３４０２４号公報記載の従来の不揮発メモリ内蔵マイクロコンピュータは、以下に述べるような方法で誤書換を防止している。
【０００５】
従来の不揮発メモリ内蔵マイクロコンピュータをブロックで示す図５を参照すると、この従来の不揮発メモリ内蔵マイクロコンピュータは、プログラムカウンタ１１を有するＣＰＵ１及び複数の記憶領域（以下、ブロック）２１〜２ｎ（ｎは２以上の整数）から成る不揮発メモリ２を内蔵し、不揮発メモリ２の格納データ書換用のアドレスレジスタ５０とデータレジスタ６及び制御レジスタ７及び書込消去制御回路８０と、１ブロック分の書換データを格納するＲＡＭ３５と、プログラムカウンタ１１とアドレスレジスタ５０の選択を行うマルチプレクサ３６とを有し、さらに誤書換防止用にデータ一致検出回路Ａ３１と、レジスタ３２と、データ識別回路３３と、データ一致検出回路Ｂ３４と、データ一致検出回路Ｃ３７と、データ一致検出回路Ｄ３８とを備える。
【０００６】
不揮発メモリ２を構成する複数のブロックのうち、ブロック２１はマイクロコンピュータを制御するためのプログラム領域であり、その他のブロック２２〜２ｎは他の一般データを格納する一般データ領域である。また、ブロック２１の一部の特定アドレス領域は、この特定アドレス領域以外のプログラム領域のデータを書換えるためのプログラムデータが記憶されているものとする。
【０００７】
また、説明の便宜上、ブロック２１〜２ｎの各々は１２８ワードの記憶領域から成るものとする。さらに、プログラムカウンタ１１のプログラムデータは１６ビット、アドレスデータは１６ビット、不揮発メモリ２の指定アドレスへの書込データ（プログラムデータ）は８ビット、不揮発メモリ２の書込制御のための制御データは８ビットであるものとする。
【０００８】
次に、図５を参照して、従来の不揮発メモリ内蔵マイクロコンピュータの不揮発メモリの自己書換動作である不揮発メモリの自己書換方法について説明すると、まず、ＣＰＵ１のプログラムカウンタ１１が不揮発メモリ２の特定アドレス領域２１１をアドレス指定すると、ブロック２１の特定アドレス領域から読み出されたデータ書換用のプログラムがＣＰＵ１内の命令デコーダ（図示省略）で解読され、バス１０を経由してデータ一致検出回路Ａ３１に入力する。データ一致検出回路Ａ３１は、入力したデータ書換用のプログラムデータが所望の書換動作であるかの判定を行い、その判定結果をレジスタ３２に書込む。
【０００９】
データ識別回路３３は、レジスタ３２の値をチェックし、このレジスタ３２の値に応じてデータ一致検出回路Ｂ３４、データ一致検出回路Ｃ３７、及びデータ一致検出回路Ｄ３８の各々に対するイネーブル信号を出力してイネーブル状態に設定することにより、アドレスレジスタ５０、データレジスタ６、制御レジスタ７の各々の書込み許可の制御を行う。
【００１０】
ＣＰＵ暴走などにより、プログラムカウンタ１１がブロック２の特定アドレス領域の途中アドレスにジャンプしてアドレス指定したような場合、すなわち、意図しない書換の場合は、データ一致検出回路Ａ３１は不一致と判定し、データ識別回路３３はイネーブル信号を出力しないので、上記イネーブル状態が設定されず、書込み許可されないので、従って書換動作は起らない。
【００１１】
意図した書換の場合は、１ブロック１２８ワード分の書換データをＲＡＭ３５に転送し、書込み消去制御回路８のみで１ブロック１２８ワード分の書換を行うことにより、ＣＰＵ１が介在しない。
【００１２】
これにより、不揮発メモリ内蔵マイクロコンピュータの不揮発メモリのオンボードでの自己書換を行う場合の危険回避を達成できる。
【００１３】
しかし、この従来の不揮発メモリ内蔵マイクロコンピュータとその不揮発メモリの自己書換方法では、データ一致検出回路Ａ３１、レジスタ３２、データ識別回路３３の各々にはそれぞれ８ビットのレジスタが不可欠であり、さらにデータ検出回路Ｂ３４、データ検出回路Ｃ３７、データ検出回路Ｄ３８に組合せ回路を必要とする。また、書込消去制御回路８０にはＲＡＭ５への書換データ転送と、不揮発メモリの書換をＣＰＵなしで行うために、シーケンサとアドレス加算器を必要とする。さらに、アドレスレジスタ５０にも不揮発メモリの書換アドレスをインクリメントする加算器が必要になるため、回路規模が大きくなる。
【００１４】
また、データの書換は、１ブロック分の書換のみに対応しているため、徐々にデータを追記するような用途に適した１ワードずつの書換には対応できない。
【００１５】
【発明が解決しようとする課題】
上述した従来の不揮発メモリ内蔵マイクロコンピュータとその不揮発メモリの自己書換方法は、誤書換防止用にデータ書換用のプログラムデータが所望の書換動作であるかの判定を行うためのデータ一致検出回路とこの判定結果を保持するためのレジスタ及びデータ識別回路にプログラムデータ長分のレジスタ、また、各書換動作に対応し組合せ回路から成る複数のデータ一致検出回路を必要とし、さらに、書込消去制御回路はシーケンサとアドレス加算器を、さらにまた、アドレスレジスタは書換アドレスインクリメント用の加算器をそれぞれ必要とするため、回路規模が大きくなるという欠点があった。
【００１６】
また、データの書換は、１ブロック分の書換のみに対応しているため、徐々にデータを追記するような用途に適した１ワードずつの書換には対応できないという欠点があった。
【００１７】
本発明の目的は、安全にかつ自由に自己書換を行うことを可能とするとともに回路規模の増大を抑制した不揮発メモリ内蔵マイクロコンピュータとその不揮発メモリの自己書換方法を提供することにある。
【００１８】
【課題を解決するための手段】
請求項１記載の発明の不揮発メモリ内蔵マイクロコンピュータは、実行アドレスを指示するプログラムカウンタを有するＣＰＵとこのＣＰＵの一般プログラムデータ格納用の一般プログラム領域及び前記一般プログラムデータの書換用の書換プログラムを格納した書換プログラム格納領域とを有する不揮発メモリとを内蔵し、前記不揮発メモリの書換対象のアドレスである書換アドレスを指定するアドレスレジスタと、前記一般プログラムデータを書換えるための書換データを指定するデータレジスタと、前記不揮発メモリの書換時に消去及び書込の動作を制御する制御レジスタと、前記制御レジスタの値に基づき書換を実行する書込消去制御回路とを備える不揮発メモリ内蔵マイクロコンピュータにおいて、
前記一般プログラムデータの書換を行う書換動作時に、前記実行アドレスと前記書換アドレスとを比較し前記実行アドレスと前記書換アドレスとの一致に応答して前記データ書換プログラムを破壊するような異常書換であることを示す異常書換信号を出力するアドレス比較回路を備え、
前記異常書換信号の供給に応じて前記書換動作を禁止することにより、前記ＣＰＵの暴走を含む異常動作に起因する異常書換による誤書換を防止することを特徴とするものである。
【００１９】
また、請求項２記載の発明は、請求項１記載の不揮発メモリ内蔵マイクロコンピュータにおいて、前記異常書換信号の供給に応答して割込信号を出力し前記ＣＰＵに供給する割込コントローラを備えて構成されている。
【００２０】
また、請求項３記載の発明は、請求項１記載の不揮発メモリ内蔵マイクロコンピュータにおいて、前記異常書換信号の供給に応答してマイクロコンピュータの内部回路を初期化するためのリセット信号を出力するリセットコントローラを備えて構成されている。
【００２１】
また、請求項４記載の発明は、請求項１記載の不揮発メモリ内蔵マイクロコンピュータにおいて、前記アドレス比較回路が、前記実行アドレスと前記書換アドレスの各々の予め定めたビット数の上位ビットの各々同士を比較することにより前記異常書換信号を出力することを特徴とするものである。
【００２２】
さらに、請求項５記載の発明は、請求項４記載の不揮発メモリ内蔵マイクロコンピュータにおいて、前記アドレス比較回路が、前記実行アドレスと前記書換アドレスの各々の予め定めたｍ（ｍは整数）ビットの前記上位ビットの各々同士の排他的論理和（ＸＯＲ）演算を行い第１〜第ｍのビット比較信号を出力する第１〜第ｍのＸＯＲ回路と、
前記第１〜第ｍのビット比較信号を否定論理和（ＮＯＲ）演算し判定結果である前記異常書換信号を出力するＮＯＲ回路とを備えて構成されている。
【００２３】
請求項６記載の発明の不揮発メモリ内蔵マイクロコンピュータの不揮発メモリの自己書換方法は、実行アドレスを指示するプログラムカウンタを有するＣＰＵとこのＣＰＵの一般プログラムデータを格納した一般プログラム格納領域である一般プログラムブロック及び前記一般プログラムデータの書換用の書換プログラムを格納した書換プログラム格納領域である書換プログラムブロックから成る複数のブロックを有する不揮発メモリとを内蔵する不揮発メモリ内蔵マイクロコンピュータの前記不揮発メモリの自己書換方法において、
前記書換プログラムブロックに分岐し前記実行アドレスとして設定する実行アドレス設定ステップと、
前記不揮発メモリの書換対象の前記書換プログラムブロックのアドレスである書換アドレスを指定する書換アドレス指定ステップと、
前記書換アドレスと前記実行アドレスとを比較し、現在アクセス中のブロックが同一ブロックであるかの判別を行うアドレス比較ステップと、
前記アドレス比較ステップで不一致の場合書換を実行する書換ステップと、
前記アドレス比較ステップで一致の場合異常書換信号を出力する異常書換信号出力ステップと、
前記異常書換信号の供給に応答して前記書換のための消去及び書込を停止する消去書込制御停止ステップと、
前記異常書換信号により発生した割込信号の供給に応答して前記ＣＰＵが割込処理を実施する割込処理ステップとを有することを特徴とするものである。
【００２４】
また、請求項７記載の発明は、請求項６１記載の不揮発メモリ内蔵マイクロコンピュータの不揮発メモリの自己書換方法において、前記書換ステップが、前記書換アドレスの指定ブロックを消去する消去ステップと、
前記指定ブロックに書込データを書込む書込ステップと、
書換終了か否かを判定し、未了の場合は前記書換アドレス指定ステップに戻り、終了の場合は処理を終了する書換終了判定ステップとを有することを特徴とするものである。
【００２５】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００２６】
本実施の形態の不揮発メモリ内蔵マイクロコンピュータは、実行アドレスを指示するプログラムカウンタを有するＣＰＵとこのＣＰＵの一般プログラムデータ格納用の一般プログラム領域及び上記一般プログラムデータの書換用の書換プログラムを格納した書換プログラム格納領域とを有する不揮発メモリとを内蔵し、上記不揮発メモリの書換対象のアドレスである書換アドレスを指定するアドレスレジスタと、上記一般プログラムデータを書換えるための書換データを指定するデータレジスタと、上記不揮発メモリの書換時に消去及び書込の動作を制御する制御レジスタと、上記制御レジスタの値に基づき書換を実行する書込消去制御回路とを備える不揮発メモリ内蔵マイクロコンピュータにおいて、上記一般プログラムデータの書換を行う書換動作時に、上記実行アドレスと上記書換アドレスとを比較し上記実行アドレスと上記書換アドレスとの一致に応答して上記データ書換プログラムを破壊するような異常書換であることを示す異常書換信号を出力するアドレス比較回路を備え、上記異常書換信号の供給に応じて上記書換動作を禁止することにより、上記ＣＰＵの暴走を含む異常動作に起因する異常書換による誤書換を防止することを特徴とするものである。
【００２７】
次に、本発明の実施の形態を図５と共通の構成要素には共通の参照文字／数字を付して同様にブロックで示す図１を参照すると、この図に示す本実施の形態の不揮発メモリ内蔵マイクロコンピュータは、従来と共通の実行アドレスＰＣを指示するプログラムカウンタ１１を有し不揮発メモリ２に記憶したプログラムを実行するＣＰＵ１と、アドレスで認識できる複数の記憶領域である後述のブロック２１〜２ｎ（ｎは２以上の整数）を有する不揮発メモリ２と、書換データＤＣを指定するデータレジスタ６と、消去及び書込等の動作を制御する制御レジスタ７と、データ伝送用のバス１０とに加えて、アドレスレジスタ５０の代わりに不揮発メモリ２の一般プログラムデータの記憶領域の書換用のアドレスである書換アドレスＷＡを指定するアドレスレジスタ５と、書込消去制御回路８０の代わりに書換を実行する書込消去制御回路８と、ＣＰＵ１が不揮発メモリ２からフェッチし実行中の実行アドレスＰＣと書換アドレスＷＡとを比較し実行アドレスＰＣと書換アドレスＷＡとが同一である同一ブロックへのアクセスの場合に異常書換信号Ｆを発生し後述の割込コントローラ４と書込消去制御回路８とに供給するアドレス比較回路３と、アドレス比較回路３からの異常書換信号Ｆに応答して割込信号ＩＳをＣＰＵ１に出力する割込コントローラ４とを備える。
【００２８】
不揮発メモリ２を構成する複数のブロックのうちの任意の１つのブロック２１〜２ｎに自己のデータを書換える書換プログラムを記憶させておくことにより、ＣＰＵ１の書換プログラム実行による自己書換が可能となる。
【００２９】
以下、説明の便宜上、上記任意の１つのブロックをブロック２１とすると、このブロック２１は、マイクロコンピュータを制御するためのプログラム領域であり、その他のブロック２２〜２ｎは一般プログラムデータを格納する一般プログラムデータ領域である。また、ブロック２１の一部の特定アドレス領域は、この特定データ領域以外のプログラム領域のデータを書換えるためのプログラムである書換プログラムのデータが記憶されているものとする。これらブロック２１〜２ｎは各ブロック毎での消去が可能である。
【００３０】
また、１ビット、８ビット、１６ビット、３２ビット、６４ビット、１２８ビット単位等での書込が可能である。不揮発メモリ２の書換を行う場合は、すでに消去済みの場合は上記何れかのビット単位にて書込を行う。しかし、消去されていない場合は、ブロック単位の消去を行った後に上記何れかのビット単位にて書込みを行い、書換を終了する。この書換動作は、アドレスレジスタ５と、データレジスタ６と、制御レジスタ７と、書込消去制御回路８とを用いて実行する。
【００３１】
説明の便宜上、ブロック２１〜２ｎの各々は、１２８ワードの記憶領域から成るものとする。さらに、プログラムカウンタ１１のプログラムデータは１６ビット、アドレスデータは１６ビット、不揮発メモリ２の指定アドレスへの書込データ（プログラムデータ）は８ビット、不揮発メモリ２の書込制御のための制御データは８ビットであるものとする。
【００３２】
さらに、不揮発メモリ２は、ブロック２１〜２４の４ブロックを有するものとし、ブロック２１が００００−０ＦＦＦ、ブロック２２が１０００−１ＦＦＦ、ブロック２３が２０００−２ＦＦＦ、ブロック２４が３０００−ＦＦＦＦ番地のアドレス領域を有するものとする。従って、不揮発メモリ２の各ブロック２１〜２ｎの判別は、判別可能な最小限のアドレスを比較すれば良いので、この場合は、各ブロックの判別は、アドレスの上位４ビット（０，１，２，３）の比較で可能となる。
【００３３】
アドレス比較回路３の構成を回路図で示す図２を参照すると、この図に示すアドレス比較回路３は、それぞれ１６ビットデータである実行アドレスＰＣと書換アドレスＷＡの各々の上位４ビットのデータから成る上位実行アドレスＰＣＵと上位書換アドレスＷＡＵの各々をビット毎に排他的論理和（ＸＯＲ）しビット比較信号ｂ０，ｂ１，ｂ２，ｂ３の各々を出力するＸＯＲ回路Ｘ３０，Ｘ３１，Ｘ３２，Ｘ３３と、ビット比較信号ｂ０，ｂ１，ｂ２，ｂ３を否定論理和（ＮＯＲ）演算し判定結果である異常書換信号Ｆを出力するＮＯＲ回路Ｎ３１とを備える。
【００３４】
次に、図１及び本実施の形態の不揮発メモリ内蔵マイクロコンピュータの不揮発メモリの自己書換方法をフローチャートで示す図３を参照して本実施の形態の自己書換動作について説明すると、自己書換は、まず、不揮発メモリ２の自己書換プログラムのある特定アドレス領域を含むブロック２１に分岐し実行アドレスＰＣとしてブロック２１のアドレスを設定し（ステップＳ１）、外部からバス１０を経由して書換対象のブロック２２〜２ｎの１つ、例えばブロック２２のアドレスを書換アドレスＷＡとしてアドレスレジスタ５にセットする（ステップＳ２）。
【００３５】
次に、アドレス比較回路３は、アドレスレジスタ５に書き込まれた書換アドレスＷＡとプログラムカウンタ１１から供給される実行アドレスＰＣとを比較し、現在アクセス中のブロックの判別を行う（ステップＳ３）。
【００３６】
ここでは、前述の仮定により最上位の４ビット、すなわち、上位書換アドレスＷＡＵのビットＷＡ０，ＷＡ１，ＷＡ２，ＷＡ４の各々と、上位実行アドレスＰＵのビットＰＣ０，ＰＣ１，ＰＣ２，ＰＣ３の各々同士を比較することにより、書換アドレスＷＡと実行アドレスＰＣの各々のアクセスが同一ブロックに対するアクセスか異ブロックに対するアクセスかの判定を行う。
【００３７】
所望の自己書換が行われる場合は、実行アドレスＰＣで指定するブロック２１を書換アドレスＷＡとすることはあり得ないので、ステップＳ３で、必ずブロック比較結果が「不一致」になり、以下のステップＳ４〜Ｓ９で書換を実行する。
【００３８】
すなわち、ステップＳ３で、不一致の場合は、消去・書込動作を制御する制御レジスタ７をバス１０を経由してアクティブ状態にセットし（ステップＳ４）、書換アドレスＷＡの指定ブロックを消去するとともに（ステップＳ５）、データレジスタ６にバス１０を経由して書込データＤＣをセットし（ステップＳ６）、指定アドレスである書換アドレスＷＡに書き込む（ステップＳ７）。次に、制御レジスタ７をリセットし（ステップＳ８）、書換終了か否かを判定し（ステップＳ９）、未了の場合はステップＳ２に戻り、終了の場合は処理を終了する。
【００３９】
一方、ＣＰＵの暴走などにより、意図しないタイミングで自己書換プログラムのある領域であるブロック２１に分岐し、書換アドレスＷＡとしてブロック２１を設定し、自己書換プログラムを破壊するようなブロック２１の異常書換を実行しようとしたり、自己書換プログラムに不具合があり、書換アドレスＷＡが自己書換プログラムのあるブロック２１を指定していた場合には、ステップ３のアドレス比較回路３によるアドレス比較の判定結果が「一致」となり、割込みコントローラ４に対し異常書換信号Ｆを出力して割込みコントローラ４と書込消去制御回路８に供給し、割込みコントローラ４は異常書換信号Ｆの供給に応答してＣＰＵ１に異常動作を伝える割込信号ＩＳを発生し（ステップＳ１０）、書込消去制御回路８は割込みの優先度に関係なく書込消去制御動作を停止し（ステップＳ１１）、ＣＰＵ１は割込信号ＩＳの供給に応答して割込処理を実施する（ステップＳ１２）。これにより、書換動作を禁止する。
【００４０】
このように、自己書換の実行時にアドレスレジスタ５に書込まれた書換対象ブロックのアドレスである書換アドレスＷＡと、書換動作実行用のデータ格納ブロックのアドレスである実行アドレスＰＣとを比較し異なるブロックであることを確認するアドレス比較回路３を設けることにより、ＣＰＵ１の暴走などにより、ブロック２１の異常書換を実行しようとしたり、自己書換プログラムに不具合があり、書換アドレスＷＡが自己書換プログラムのあるブロック２１を指定していた場合には、書換動作を終了しデータの異常書換による誤書換を防止できる。
【００４１】
さらに、本実施の形態では、異常書換を実行しようとする場合に異常書換信号Ｆを発生する機能を有するため、割込みコントローラ４を介してＣＰＵが異常なアクセスがあったことを検知できる。
【００４２】
次に、本発明の第２の実施の形態を図１と共通の構成要素には共通の参照文字／数字を付して同様にブロックで示す図４を参照すると、この図に示す本実施の形態の前述の第１の実施の形態との相違点は、割込みコントローラ４の代わりに異常書換信号Ｆの供給に応答してマイクロコンピュータの内部回路を初期化するためのリセット信号Ｒを出力するリセットコントローラ９を備えることである。
【００４３】
本実施の形態では、異常書換を実行しようとして異常書換信号Ｆが発生すると、リセットコントローラ９がリセット信号Ｒを出力し、マイクロコンピュータの内部回路を初期化する。
【００４４】
従って、このリセットコントローラ９を用いた異常検知動作は、割込みの優先順位に関係なく動作するために、内部リセットによる初期化が即座に行われることになる。
【００４５】
このように、本実施の形態では、ＣＰＵ１が暴走し、割込みを受け付けられなくなっていたり、優先順位の高い割込みが実行されていた場合などにも対応できる。
【００４６】
以上本発明の実施の形態を述べたが、本発明は上記実施の形態に限られることなく種々の変形が可能である。例えば、アドレスデータのビット数を３２ビット、４８ビット、６４ビット等とすることや、ブロック数を４に限定せず、８ブロック、１２ブロック等とすることや、また、アドレス比較のための上位ビットも４ビットに限らず２ビット、８ビット等とすることや、さらに、異常書換を実行しようとする場合の割込として想定したマスカブル割込の代わりにノンマスカブル割込とすることも、本発明の主旨を逸脱しない限り適用できることは勿論である。
【００４７】
【発明の効果】
以上説明したように、本発明の不揮発メモリ内蔵マイクロコンピュータとその不揮発メモリの自己書換方法は、自己書換の実行時にアドレスレジスタに書込まれた書換対象ブロックのアドレスである書換アドレスと、書換動作実行用のデータ格納ブロックのアドレスである実行アドレスとを比較し異なるブロックであることを確認するアドレス比較回路を備えることにより、ＣＰＵの暴走などにより、意図しないタイミングで自己書換プログラムのあるブロックに分岐し、自己書換プログラムを破壊するようなブロックの異常書換を実行しようとしたり、自己書換プログラムに不具合があり、書換アドレスＷＡが自己書換プログラムのあるブロック２１を指定していた場合には、書換動作を終了しデータの異常書換による誤書換を防止できるという効果がある。
【００４８】
また、データの書換は、１ビット、８ビット、１６ビット、３２ビット、６４ビット、１２８ビット単位等での書込が可能であるため、徐々にデータを追記するような用途に適した１ワードずつの書換にも対応できるという効果がある。
【図面の簡単な説明】
【図１】本発明の不揮発メモリ内蔵マイクロコンピュータの第１の実施の形態を示すブロック図である。
【図２】図１のアドレス比較回路の構成例を示す回路図である。
【図３】本実施の形態の不揮発メモリ内蔵マイクロコンピュータにおける動作である不揮発メモリの自己書換方法の一例を示すフローチャートである。
【図４】本発明の不揮発メモリ内蔵マイクロコンピュータの第２の実施の形態を示すブロック図である。
【図５】従来の不揮発メモリ内蔵マイクロコンピュータの一例を示すブロック図である。
【符号の説明】
１    ＣＰＵ
２    不揮発メモリ
３    アドレス比較回路
４    割込コントローラ
５，５０    アドレスレジスタ
６    データレジスタ
７    制御レジスタ
８，８０    書込消去制御回路
９    リセットコントローラ
１０    バス
１１    プログラムカウンタ
２１〜２ｎ    ブロック
３１    データ一致検出回路Ａ
３２    レジスタ
３３    データ識別回路
３４    データ一致検出回路Ｂ
３５    ＲＡＭ
３６    マルチプレクサ
３７    データ一致検出回路Ｃ
３８    データ一致検出回路Ｄ
【図１】
0004236808.tif 000002
【図２】
0004236808.tif 000003
【図３】
0004236808.tif 000004
【図４】
0004236808.tif 000005
【図５】
0004236808.tif 000006