(57)【要約】      （修正有）【課題】ＥＥＰＲＯＭを内蔵したシングルチップマイクロコンピュータにおいて、ＥＥＰＲＯＭ未書き込み状態でもプログラムの実行によってＥＥＰＲＯＭの書き込みをする。【解決手段】中央処理装置と、書込制御プログラムを格納する第１不揮発性メモリ領域と、プログラム及びデータを書き込み可能な第２不揮発性メモリ領域を備えたアドレス空間を備えたシングルチップマイクロコンピュータであって、上記第１及び第２不揮発性メモリ領域は、上記動作モードに応じて上記アドレス空間の異なるアドレス領域に配置され、上記第２動作モードで上記データを上記第２不揮発性メモリ領域に書き込みを行っているとき、割り込み要求の受付を禁止し、上記データの書込終了後、割り込み要求に応じた処理を実行することを特徴とする。【選択図】図１
2006040300.tif 000002
【特許請求の範囲】
【請求項１】
中央処理装置と、
上記中央処理装置が実行する第１プログラムを格納する第１不揮発性メモリ領域と、上記中央処理装置が実行する第２プログラム及びデータとを格納する第２不揮発性メモリ領域とを配置するアドレス空間を備えたシングルチップマイクロコンピュータであって、
上記第１プログラムは、上記第２不揮発性メモリ領域への書き込みを行うための書込制御プログラムであり、
上記第２不揮発性メモリ領域は、上記第１プログラムの実行に応じてプログラムデータが書き込まれ、
更に、第１の動作モードと、第２の動作モードとを有し、
上記第１の動作モードでは、上記中央処理装置が上記第１プログラムを実行することにより、上記第２不揮発性メモリ領域に対し、上記中央処理装置が実行可能な第２プログラムを書き込み、
上記第２の動作モードでは、上記中央処理装置は上記第２不揮発性メモリ領域に格納されている第２プログラムを実行可能であり、上記第２プログラムの実行に応じて生成されるデータを上記第１プログラムの実行によって第２不揮発性メモリ領域に書き込み可能であり、
上記第１不揮発性メモリ領域と第２不揮発性メモリ領域とは、上記動作モードによって配置されるアドレス領域が異なり、
上記第２の動作モードで上記データを上記第２不揮発性メモリ領域に書き込むとき、割り込み要求の受付を禁止し、上記データの書き込み終了後、割り込みを受け付けることを特徴とするシングルチップマイクロコンピュータ。
【請求項２】
上記請求項１において、
上記第１の動作モードと上記第２の動作モードは、リセット処理を行うことで所定の動作モードを設定することを特徴とするシングルチップマイクロコンピュータ。
【請求項３】
上記請求項２において、
上記第１の動作モードで、上記第１プログラムを実行することでシリアルインタフェースを介して入力される上記プログラムデータを、上記第２不揮発性メモリ領域に書き込むことを特徴とするシングルチップマイクロコンピュータ。
【請求項４】
中央処理装置と、
上記中央処理装置が実行する書込制御プログラムを格納する第１不揮発性メモリ領域と、上記中央処理装置が実行するプログラム及びデータを書き込み可能な第２不揮発性メモリ領域とを有するアドレス空間を備えたシングルチップマイクロコンピュータであって、
上記第２不揮発性メモリ領域に上記書込制御プログラムを実行して上記プログラムを書き込む第１動作モードと、
上記第２不揮発性メモリ領域に格納された上記プログラムを実行可能であり、実行中に生成されたデータを上記書込制御プログラムを用いて上記第２不揮発性メモリ領域に格納可能な第２動作モードとを有し、
上記第１及び第２不揮発性メモリ領域は、上記動作モードに応じて上記アドレス空間の異なるアドレス領域に配置され、
上記第２動作モードで上記データを上記第２不揮発性メモリ領域に書き込みを行っているとき、割り込み要求の受付を禁止し、上記データの書込終了後、割り込み要求に応じた処理を実行することを特徴とするシングルチップマイクロコンピュータ。
【請求項５】
請求項４において、
上記第１動作モードと第２動作モードは、上記シングルチップマイクロコンピュータをリセット処理することで設定することを特徴とするシングルチップマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理装置に関し、特に、ＥＥＰＲＯＭ内蔵のシングルチップマイクロコンピュータに関する発明である。
【背景技術】
【０００２】
シングルチップマイクロコンピュータは、例えば、非特許文献１に記載されるように、中央処理装置（ＣＰＵ）を中心にしてプログラム保持用のＲＯＭ（リードオンリメモリ）、データ保持用のＲＡＭ（ランダムアクセスメモリ）、およびデータの入出力を行うための入出力回路などの機能ブロックが１つの半導体基板上に形成されてなる。
【０００３】
かかるシングルチップマイクロコンピュータを用いてシステム構成を行うと、汎用マルチチップマイクロコンピュータなどを用いる場合に比べて実装面積の縮小と信頼性の向上を実現することができる。
【０００４】
なお内蔵したＲＯＭを電気的に書き込み可能なＥＰＲＯＭ（エレクトリカリプログラマブルＲＯＭ）で構成したシングルチップマイクロコンピュータの内蔵ＥＰＲＯＭは、変換アダプタを使用することにより、汎用のＥＰＲＯＭと同一ピン配置とし、ＰＲＯＭライタで書き込むことができる。
【０００５】
このため、プログラム作成後直ちに所望のシングルチップマイクロコンピュータを得ることができ、開発期間の短縮・少量生産に適している。かかるＥＰＲＯＭは、特に制限はされないものの、動作状態での書き込みまたは消去ができず、プログラムのような固定的な内容を記憶する。
【０００６】
なお、かかるＥＰＲＯＭを内蔵したシングルチップマイクロコンピュータは、例えば、非特許文献２によって公知であるので詳細な説明は省略する。
【０００７】
これに対して、例えば、特許文献１に記載されるように、電気的に書き込みまたは消去が可能なＥＥＰＲＯＭ（エレクトリカリイレーザブルプログラマブルＲＯＭ）を内蔵したシングルチップマイクロコンピュータにあっては、前記ＥＥＰＲＯＭをプログラム・データ兼用の記憶領域とすることができる。
【０００８】
かかるＥＥＰＲＯＭは、プログラムは応用システムに実装した状態で書き込むことができ、プログラムあるいはデータの微調整などを実装後に行うことができる。
【０００９】
この場合、ＣＰＵによるプログラムの実行によって、ＥＥＰＲＯＭを書き込むためのプログラムを格納するＢＯＯＴＲＯＭを設けることがある。なお、かかるＢＯＯＴＲＯＭは、通常マスクＲＯＭ上で作られることが多い。
【００１０】
ＥＥＰＲＯＭの書き込み時には、ＣＰＵのアドレス空間上の別のアドレス、例えば上記ＢＯＯＴＲＯＭであるマスクＲＯＭ等に分岐し、かかるアドレス上のプログラムの実行によって、ＥＥＰＲＯＭの書き込みを行うものである。
【００１１】
このとき、ＣＰＵにリセットあるいは割込みなどの例外処理要因が発生したときに、いずれのアドレスからプログラムの実行を開始するかを示すベクタ領域があるが、これを上記マスクＲＯＭなどの別のアドレスに配置する必要がある。
【００１２】
すなわち、ＥＥＰＲＯＭ上にベクタ領域を配置すると、ＥＥＰＲＯＭに書き込みを行っていない状態では、ベクタも読み出せず、ＣＰＵは動作できない。従って、実装状態ではプログラムの書き込みはできない。
【００１３】
また、前記のように変換アダプタを使用することにより汎用ＰＲＯＭライタを用いて、ＥＥＰＲＯＭの書き込みを行った後、実装し、微調整のみを実装状態で行うこともできる。
【００１４】
しかしながら、これは使用者の使用方法を制限することになり、また、汎用ＰＲＯＭライタで書き込む際に変換アダプタのソケットにマイクロコンピュータは着脱しなければならず、特に、端子間隔が微細なパッケージを用いたものにあっては、端子の変形を起こしやすい。
【００１５】
しかしながら、ベクタ領域をマスクＲＯＭなどの上記ＥＥＰＲＯＭと別のアドレス空間上に配置すると、容易に書替が行えず、開発期間の短縮・少量生産に好適な性質を著しく損なってしまう。
【００１６】
すなわち、プログラムの変更などを大きく制約され、また、少量多品種のプログラムを作成する場合などマスクＲＯＭのプログラムを共通化することが困難となり、更に上記ベクタ領域も固定されてしまう欠点がある。
【００１７】
また、ＣＰＵのベクタ領域を上記ＥＥＰＲＯＭおよび別のアドレス空間から選択するようにすることもできるが、既存のＣＰＵに対しての変更が困難となり、また、開発ツールおよびソフトウェアの流用性の面で得策ではない。
【００１８】
【特許文献１】特開昭６２−２２４８５３号公報
【非特許文献１】「ＬＳＩハンドブック」昭和５９年１１月３０日、オーム社発行、Ｐ５４０−Ｐ５４１
【非特許文献２】「Ｈ８／５３２  ＨＤ６４７５３２８  ＨＤ６４３５３２８  ハードウェアマニュアル」昭和６３年１２月、株式会社日立製作所発行
【発明の開示】
【発明が解決しようとする課題】
【００１９】
従来、ＥＥＰＲＯＭ内蔵のシングルチップマイクロコンピュータのＥＥＰＲＯＭ未書き込み状態において、上記理由によりプログラムの実行によってＥＥＰＲＯＭの書き込みをすることが困難であった。またそれに伴い、開発期間は長期となり、少量生産にも適さなかった。
【００２０】
本発明の目的は、シングルチップマイクロコンピュータの動作モ−ドにＥＥＰＲＯＭを分割して配置等することにより、ＥＥＰＲＯＭ未書き込み状態でもプログラムの実行によってＥＥＰＲＯＭの書き込みができ、それにより開発期間の短縮・少量生産に好適な性質を有することである。
【００２１】
なお、本発明の前記ならびにそのほかの目的と新規な特長は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００２２】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００２３】
第１の発明は、中央処理装置と、
上記中央処理装置が実行する第１プログラムを格納する第１不揮発性メモリ領域と、上記中央処理装置が実行する第２プログラム及びデータとを格納する第２不揮発性メモリ領域とを配置するアドレス空間を備えたシングルチップマイクロコンピュータであって、
上記第１プログラムは、上記第２不揮発性メモリ領域への書き込みを行うための書込制御プログラムであり、
上記第２不揮発性メモリ領域は、上記第１プログラムの実行に応じてプログラムデータが書き込まれ、
更に、第１の動作モードと、第２の動作モードとを有し、
上記第１の動作モードでは、上記中央処理装置が上記第１プログラムを実行することにより、上記第２不揮発性メモリ領域に対し、上記中央処理装置が実行可能な第２プログラムを書き込み、
上記第２の動作モードでは、上記中央処理装置は上記第２不揮発性メモリ領域に格納されている第２プログラムを実行可能であり、上記第２プログラムの実行に応じて生成されるデータを上記第１プログラムの実行によって第２不揮発性メモリ領域に書き込み可能であり、
上記第１不揮発性メモリ領域と第２不揮発性メモリ領域とは、上記動作モードによって配置されるアドレス領域が異なり、
上記第２の動作モードで上記データを上記第２不揮発性メモリ領域に書き込むとき、割り込み要求の受付を禁止し、上記データの書き込み終了後、割り込みを受け付けることを特徴とするシングルチップマイクロコンピュータである。
【００２４】
第２の発明は、上記第１の発明のシングルチップマイクロコンピュータにおいて、上記第１の動作モードと上記第２の動作モードは、リセット処理を行うことで所定の動作モードを設定することを特徴とする。
【００２５】
第３の発明は、上記第２の発明のシングルチップマイクロコンピュータにおいて、上記第１の動作モードで、上記第１プログラムを実行することでシリアルインタフェースを介して入力される上記プログラムデータを、上記第２不揮発性メモリ領域に書き込むことを特徴とする。
【００２６】
第４の発明は、中央処理装置と、
上記中央処理装置が実行する書込制御プログラムを格納する第１不揮発性メモリ領域と、上記中央処理装置が実行するプログラム及びデータを書き込み可能な第２不揮発性メモリ領域とを有するアドレス空間を備えたシングルチップマイクロコンピュータであって、
上記第２不揮発性メモリ領域に上記書込制御プログラムを実行して上記プログラムを書き込む第１動作モードと、
上記第２不揮発性メモリ領域に格納された上記プログラムを実行可能であり、実行中に生成されたデータを上記書込制御プログラムを用いて上記第２不揮発性メモリ領域に格納可能な第２動作モードとを有し、
上記第１及び第２不揮発性メモリ領域は、上記動作モードに応じて上記アドレス空間の異なるアドレス領域に配置され、
上記第２動作モードで上記データを上記第２不揮発性メモリ領域に書き込みを行っているとき、割り込み要求の受付を禁止し、上記データの書込終了後、割り込み要求に応じた処理を実行することを特徴とするシングルチップマイクロコンピュータである。
【００２７】
第５の発明は、上記第４の発明のシングルチップマイクロコンピュータにおいて、上記第１動作モードと第２動作モードは、上記シングルチップマイクロコンピュータをリセット処理することで設定することを特徴とする。
【発明の効果】
【００２８】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
すなわち、ＥＥＰＲＯＭ４００内蔵のシングルチップマイクロコンピュータにおいて、開発期間の短縮・少量生産に好適な性質を有し、ＥＥＰＲＯＭ４００の未書き込み状態で、応用システムに実装し、プログラムの実行によってＥＥＰＲＯＭ４００の書き込みを行なうことができる。
【発明を実施するための最良の形態】
【００２９】
［実施例］
【００３０】
図１は本発明にかかるデータ処理装置の実施例であるシングルチップマイクロコンピュータのブロック図である。
【００３１】
このシングルチップマイクロコンピュータ１００は、特に制限はされないものの、ＣＰＵ２００、割込み制御回路ＩＮＴＣ３００、１６ｋバイトＥＥＰＲＯＭ４００、１６ｋバイトマスクＲＯＭ５００、１ｋバイトＲＡＭ６００、タイマ７１０、シリアルコミュニケーションインタフェース（ＳＣＩ）７２０、Ａ／Ｄ変換器７３０、第１乃至第９入出力ポート（ＩＯＰ１乃至ＩＯＰ９）８１０乃至８９０、およびクロックパルスジェネレータ（ＣＰＧ）９００から構成され、公知の半導体製造技術により１つの半導体基板上に形成される。
【００３２】
かかるシングルチップマイクロコンピュータ１００は、電源端子として、グランドレベル（Ｖｓｓ）、電源電圧レベル（Ｖｃｃ）端子、その他専用制御端子として、リセット（ＲＥＳ）、スタンバイ（ＳＴＢＹ）、モード制御（ＭＤ０、ＭＤ１、ＭＤ２）、割込み端子（ＮＭＩ）、クロック入力（ＥＸＴＡＬ、ＸＴＡＬ）端子を有する。
【００３３】
ＣＰＵ２００と、割込み制御回路ＩＮＴＣ３００、１６ｋバイトＥＥＰＲＯＭ４００、１６ｋバイトマスクＲＯＭ５００、１ｋバイトＲＡＭ６００、タイマ７１０、ＳＣＩ７２０、Ａ／Ｄ変換器７３０、第１乃至第９入出力ポート８１０〜８９０は、内部バス１０００によって相互に接続され、ＣＰＵ２００の制御によってリード／ライトが行なわれる。
【００３４】
上記内部バス１０００は、アドレスバス、データバス、リード信号、ライト信号、機能ブロック選択信号、およびシステムクロックなどを含む。
【００３５】
システムクロックは、ＥＸＴＡＬ端子およびＸＴＡＬ端子に接続され、図示はされない水晶発振子などを基準に、ＣＰＧで適宜生成される。また、水晶発振子を接続しないで、ＥＸＴＡＬ端子より外部クロックを入力することもできる。
【００３６】
割込み制御回路３００は、タイマ７１０、シリアルコミュニケーションインタフェース（ＳＣＩ）７２０、Ａ／Ｄ変換器７３０、および第９入出力ポート８９０から出力される割込み要求信号を制御し、ＣＰＵ２００に割込みを要求する。
【００３７】
入出力ポートは、アドレスバス出力、データバス入出力、バス制御信号入出力、割込み要求信号入力などと兼用されている。これらの兼用機能は動作モードおよびソフトウェアによって選択される。
【００３８】
例えば、動作モードとして、拡張モードを選択すると、第１、第２入出力ポートがアドレスバス出力、第３入出力ポートがデータバス入出力、第４ポートがバス制御信号入出力端子となり、図示はされない外部に接続される外部メモリをリード／ライトできる。
【００３９】
図２に、シングルチップマイクロコンピュータ１００の動作モードを示す。かかる動作モードは、モード１が、ＲＯＭ無効外部拡張モードとなり、外部メモリ及び周辺デバイスをアクセスすることができるが、内蔵マスクＲＯＭを使用することはできない。また、モード２、モード３は、内蔵マスクＲＯＭが有効な外部拡張モードとなり、外部メモリ及び周辺デバイスをアクセスすることができ、内蔵マスクＲＯＭを使用することもできる。なお、モード２は、ＥＥＰＲＯＭがベクタ領域を有し、モード３では、マスクＲＯＭがベクタ領域を有する。モード４、モード５は、シングルチップモードとなり内蔵マスクＲＡＭ、内蔵マスクＲＯＭで動作するモードであるので、外部アドレス空間は使用できない。
【００４０】
なお、モード０は、テストモード及びＰＲＯＭモードである。
モード６、７は予約されている。これらについては本発明と直接の関係はないので詳細な説明は省略する。
【００４１】
動作モードは、リセット時にモード制御（ＭＤ０、ＭＤ１、ＭＤ２）端子の入力レベルを設定することによって選択される。かかる動作モードの設定により、上記シングルチップマイクロコンピュータ１００の、端子機能とアドレス空間を切り替えることができる。例えば、モード制御端子ＭＤ０が「０」、モード制御端子ＭＤ１が「０」、モード制御端子ＭＤ２が「１」の場合は、動作モードはモード１になる。同様に、モード制御端子ＭＤ０が「０」、モード制御端子ＭＤ１が「１」、モード制御端子ＭＤ２が「０」の場合は、動作モードはモード２となる。
【００４２】
モード１では、ＥＥＰＲＯＭ４００は、例えば１６進数でアドレスＨ’８０００〜Ｈ’ＢＦＦＦと表示される空間に配置され、ベクタ領域は外部メモリとされる。
【００４３】
また、モード２では、ＥＥＰＲＯＭ４００はアドレスＨ’００００〜Ｈ’３ＦＦＦに、マスクＲＯＭ５００はアドレスＨ’８０００〜Ｈ’ＢＦＦＦに配置され、ベクタ領域はＥＥＰＲＯＭ４００とされる。
【００４４】
モード３では、ＥＥＰＲＯＭ４００はアドレスＨ’８０００〜Ｈ’ＢＦＦＦに、マスクＲＯＭ５００はアドレスＨ’００００〜Ｈ’３ＦＦＦに配置され、ベクタ領域はマスクＲＯＭ５００とされる。内蔵ＲＡＭ６００・入出力回路のほか、外部メモリを使用できる。
【００４５】
モード４では、ＥＥＰＲＯＭ４００はアドレスＨ’００００〜Ｈ’３ＦＦＦに、マスクＲＯＭ５００はアドレスＨ’８０００〜Ｈ’ＢＦＦＦに配置され、ベクタ領域はＥＥＰＲＯＭ４００とされる。
【００４６】
モード５では、ＥＥＰＲＯＭ４００はアドレスＨ’８０００〜Ｈ’ＢＦＦＦに、マスクＲＯＭ５００はアドレスＨ’００００〜Ｈ’３ＦＦＦに配置され、ベクタ領域はマスクＲＯＭ４とされる。
【００４７】
ＰＲＯＭモードでは、ＥＥＰＲＯＭ４００はアドレスＨ’００００〜Ｈ’３ＦＦＦに配置される。なお、ＰＲＯＭモードは、ＭＤ０、ＭＤ１、ＭＤ２、ＳＴＢＹ端子をロウレベルとすることによって設定される。かかるＰＲＯＭモードを設定する場合、ＣＰＵ２００の動作を停止することとし、汎用ＰＲＯＭライタでＥＥＰＲＯＭ４００を書き込むことができるようにする。
【００４８】
ＥＥＰＲＯＭ４００の初期書き込みは、モード１、３、５で行うことができる。これらのモードではベクタ領域がＥＥＰＲＯＭ４００以外に存在するために、リセット直後にこれらに格納したプログラムを実行して、ＥＥＰＲＯＭ４００の書き込みを行えばよい。また、ＥＥＰＲＯＭ４００に書き込むプログラムは外部メモリからリードしてもよいし、ＳＣＩを介して受信してもよい。
【００４９】
図３に、シングルチップマイクロコンピュータ１００のアドレスマップを示す。図３および図６、図８において、ベクタ領域のアドレス空間を現わす。
なお、ここでベクタとは、上記シングルチップマイクロコンピュータ１００のリスタート時に、スタートするアドレスを定める先頭のプログラムをいう。
【００５０】
また、ベクタ領域とは、上記ベクタを格納している領域をいう。
外部とは、外部メモリ又は、周辺デバイスのアドレス空間を現わす。
マスクＲＯＭとは、マスクＲＯＭ５００のアドレス空間を現わす。
ＥＥＰＲＯＭとは、ＥＥＰＲＯＭ４００のアドレス空間を現わす。
ＲＡＭとは、ＲＡＭ６００のアドレス空間を現わす。
Ｉ／Ｏとは、タイマ７１０、ＳＣＩ７２０、Ａ／Ｄ変換器７３０、及び入出力ポートＩＯＰ１乃至ＩＯＰ９のアドレス空間を現わす。
【００５１】
上述の通り、モ−ドの指定により、ＥＥＰＲＯＭ４００、マスクＲＯＭ５００、外部アドレスの配置が選択される。ベクタ領域は、特に制限はされないものの、アドレスＨ’００００以降に配置され、モード１では外部メモリ、モード３、５ではマスクＲＯＭ５００、モード２、４ではＥＥＰＲＯＭ４００とされる。
【００５２】
また、ＰＲＯＭモードのＥＥＰＲＯＭ４００のアドレスはＨ’００００〜Ｈ’３ＦＦＦである。モード２、４と同一のアドレスであり、ＰＲＯＭモードでＥＥＰＲＯＭ４００書き込み後に、応用システムに実装し動作させる場合に、便利がよい。
なお、ＰＲＯＭモードでは、２５６ｋビットＥＥＰＲＯＭ４００と互換性のある書き込みを行なうことができる。
【００５３】
図４に、機能ブロック選択回路のブロック図を示す。
機能ブロック選択回路は、ＣＰＵが出力するアドレスをデコードしたモジュールセレクト信号あるいはチップセレクト信号を内蔵の各機能ブロックに与える。かかる機能ブロック選択回路は、機能的にはＣＰＵに含まれるものの、シングルチップマイクロコンピュータ毎のアドレスマップに応じて変更が必要であるため、物理的にはＣＰＵと独立してなり、本願発明の場合では、かかる機能ブロック選択回路は、ＣＰＵ２００の外部に位置することとなる。
【００５４】
上記図４、図７、図９において、ＲＯＭ選択とは、ＲＯＭ４のモジュールセレクト信号をいい、また、ＥＥＰＲＯＭ選択とは、ＥＥＰＲＯＭ４００のモジュールセレクト信号、外部選択とは、外部メモリは周辺デバイスセレクト信号、ＲＡＭ・Ｉ／Ｏ選択は、ＲＡＭ６００、タイマ７１０、ＳＣＩ７２０、Ａ／Ｄ変換器７３０のモジュール選択信号をいう。
【００５５】
ＥＥＰＲＯＭ４００のモジュールセレクト信号はモード１、３、５の場合、アドレスＨ’８０００〜Ｈ’ＢＦＦＦのとき活性状態とされ、ＥＥＰＲＯＭ４００が選択される。
【００５６】
また、モード２、４の場合アドレスＨ’００００〜Ｈ’３ＦＦＦのとき、ＥＥＰＲＯＭのモジュールセレクト信号が活性状態とされ、ＥＥＰＲＯＭ４００が選択される。
【００５７】
また、ＰＲＯＭモードでは、外部端子から入力される信号がＥＥＰＲＯＭ４００のモジュールセレクト信号とされる。
【００５８】
マスクＲＯＭ５００のモジュール選択信号は、モード３、５の場合アドレスＨ’００００〜Ｈ’３ＦＦＦ、モード２、４のときアドレスＨ’８０００〜Ｈ’ＢＦＦＦのときそれぞれ活性状態とされ、マスクＲＯＭ５００が選択される。ＲＡＭおよびＩ／Ｏ選択信号は、動作モードによらずアドレスＨ’ＦＢ８０〜Ｈ’ＦＦＦＦのとき、活性状態とされＲＡＭ６００、タイマ７１０、ＳＣＩ７２０、Ａ／Ｄ変換器７３０が、アドレスに従って選択される。
【００５９】
外部選択は、モード１、２、３のときで、内蔵の機能ブロックが非選択のときに活性状態とされ外部メモリまたは周辺デバイスが選択される。モード４、５では常に非選択とされる。
【００６０】
また、図示はされない制御レジスタの内容によって、内蔵マスクＲＯＭ・ＲＡＭ６００の選択の許可および禁止を選択できる。かかる制御レジスタはＲＯＭ許可ビット、ＲＡＭ許可ビットを有し、これらのビットは初期値１で、許可状態であり、ＣＰＵ２００のプログラム実行によって０にクリアすることによって禁止状態とされる。
【００６１】
拡張モードで、これらが禁止された場合、相当するアドレスは外部メモリとされる。連続した大きな外部メモリを必要とする場合にはモード２で内蔵ＲＯＭを禁止すればよい。また、内蔵ＲＡＭ６００の内容の誤書替を防止したい場合には内蔵ＲＡＭ６００を禁止すればよい。
【００６２】
なお、モード２、４およびモード３、５およびモード２、３のモード信号はモード制御（ＭＤ０、ＭＤ１、ＭＤ２）端子の入力レベルをデコードして適宜生成される。
【００６３】
図５に、シングルチップマイクロコンピュータ１００のＥＥＰＲＯＭ４００への書き込み方法の実施例を示す。以下に、かかる書き込み方法を説明する。
【００６４】
（１）シングルチップマイクロコンピュータを応用システムに装着する（５１）。
特に制限はされないものの、かかるシングルチップマイクロコンピュータは、上記図１〜図４のようなものを用い、また応用システムはシングルチップモードを使用するものとする。
【００６５】
（２）ＥＥＰＲＯＭ４００の書き込みを行なうために、モード３に設定し、シングルチップマイクロコンピュータ１００の動作を開始させ、マスクＲＯＭ上のプログラムを実行させる（５２）。シングルチップマイクロコンピュータ１００は動作開始を示すために、ＳＣＩを介して所定のデータを、ホストシステムに送信する。
【００６６】
（３）ホストシステムは、かかるデータを受信し、シングルチップマイクロコンピュータ１００の動作確認を行なうと、ＥＥＰＲＯＭ４００に書き込むべきデータを順次ＳＣＩを介して送信する（５３）。
【００６７】
（４）シングルチップマイクロコンピュータ１００はＳＣＩを介して受信したデータを、ＥＥＰＲＯＭ４００の先頭アドレスＨ’８０００から順次書き込む（５４）。ＥＥＰＲＯＭ４００の書き込み単位に応じたデータ単位で、ＳＣＩによる書き込みデータの送信・受信を行なえばよい。必要に応じて送信・受信データの確認をＳＣＩを介しておこなってもよい。
かかる書き込み用のＳＣＩの送受信は応用システムにおいて必要なければ、かかるホストシステムとの回線は、書き込み終了後にとり外せばよい。
【００６８】
（５）応用システムの動作を行なうために、モード４に設定し、シングルチップマイクロコンピュータ１００を動作させる（５５）。
【００６９】
（６）ＥＥＰＲＯＭ４００に書き込まれたプログラムによって、シングルチップマイクロコンピュータ１００は動作を行なう（５６）。
【００７０】
（７）プログラムの実行によって、要保存のデータが発生した場合にはマスクＲＯＭ５００上に分岐して、マスクＲＯＭ５００上のプログラムの実行によって前記要保存のデータをＥＥＰＲＯＭ４００に書き込めばよい（５７）。書き込み終了後、ＥＥＰＲＯＭ４００上のプログラムに復帰すればよい。
【００７１】
ＥＥＰＲＯＭ４００の書き込みをマスクＲＯＭ５００上のプログラムで行なうのは、ＥＥＰＲＯＭ搭載のシングルチップマイクロコンピュータ１００において、書き込み中ＥＥＰＲＯＭ４００の内容が読み出せなくなってしまい、この書き込み時間がＣＰＵの動作速度に比べて長いため、この間ＣＰＵの実行すべきプログラムをＥＥＰＲＯＭ４００から読みだせなくなってしまうことによる。
【００７２】
かかる書き込み方法によれば、ＥＥＰＲＯＭ４００にプログラムを書き込むことができ、開発期間の短縮・少量生産に好適である。実装状態でＥＥＰＲＯＭ４００に書き込みができ、さらに書替可能なため、開発期間の短縮効果を大きくすることができる。実使用状態で、直ちに所望のプログラムを実行できる。
【００７３】
シングルチップマイクロコンピュータ１００を変換アダプタなどを介して汎用ＰＲＯＭライタなどを用いて書き込む必要がなく、シングルチップマイクロコンピュータ１００のシステムへの着脱回数を低減して、端子間隔が微細なパッケージを用いることができる。
【００７４】
また、マスクＲＯＭ５００の物理的な規模がＥＥＰＲＯＭ４００に比較して小さいため、マスクＲＯＭ５００に、応用システムに依存しないプログラムあるいは検証済みのプログラムを書き込み、ＥＥＰＲＯＭ４００には応用システム毎に異なるプログラムあるいは実装後に変更が必要なプログラムを書き込むようにプログラムを分割して配置することにより、開発期間の短縮・少量生産に好適な性質を損なわず、マイクロコンピュータ１００の物理的な規模を縮小でき、製造費用を低減できる。
【００７５】
なお、ホストシステムについては、本発明にかかるシングルチップマイクロコンピュータ１００と同一フォーマットのＳＣＩを内蔵してなるマイクロコンピュータと、かかるマイクロコンピュータの外部バスに接続された、書き込むべきデータあるいはプログラムを格納したＥＰＲＯＭでなるようなメモリで構成したシステムとすることができる。
【００７６】
ホストシステムのマイクロコンピュータはメモリから読み出したデータを順次ＳＣＩを介して、本発明にかかるシングルチップマイクロコンピュータ１００に送信すればよい。この送信先は、同じデータあるいはプログラムを書き込む複数のシングルチップマイクロコンピュータとした方が効率がよい。
【００７７】
ホストシステムに複数のＳＣＩを有してもよいし、１回線で複数のシングルチップマイクロコンピュータと送受信するプロトコルを備えてもよい。プログラムをマスクＲＯＭ５００に予め格納しておくことにより、任意のＥＥＰＲＯＭ４００書き込み方法を採ることができる。
【００７８】
また、外部バスを介して書き込むべきデータあるいはプログラムを読み込む場合には、複数の実装システムの外部バスを接続して、書き込むべきデータあるいはプログラムを格納したＥＰＲＯＭでなるような、単一のメモリと接続して、複数のシングルチップマイクロコンピュータが同時にデータを読み込むようにすれば効率がよい。このとき前記複数のシングルチップマイクロコンピュータの動作クロックを外部のクロック入力とし、共通にすれば都合がよい。
【００７９】
図６に、上記図３のアドレスマップの第一の変形例を示す。上記図３のアドレスマップではＥＥＰＲＯＭが連続したアドレスとされ、かかるＥＥＰＲＯＭをプログラム・データの共用とするため、データ書き込み時に誤ってプログラムを書き替えてしまう可能性がある。
【００８０】
上記図６においては、ＰＲＯＭモードとしてモード２、４においてＥＥＰＲＯＭを分割して配置している。ベクタ領域を含む領域をプログラム格納用とし、他の領域をデータ格納用とすることができる。
【００８１】
しかしながら、アドレスを分割しただけでは上記可能性を充分に除去できない。このため、プログラム格納用領域はモード２、４において読み出し専用・書き込み禁止とする。なお、ＰＲＯＭモードではＥＥＰＲＯＭのアドレスは連続である。モード１、３、５およびＰＲＯＭモードでは書き込み禁止は行なわない。
【００８２】
図７に、図６に対応する機能ブロック選択回路のブロック図を示す。
なお、かかる機能ブロック選択回路は、上記図４と同様であるため詳細な説明は省略する。
【００８３】
上記ＥＥＰＲＯＭのモジュールセレクト信号はモード１、３、５の場合、図４と同様にアドレスＨ’８０００〜Ｈ’ＢＦＦＦのとき活性状態とされ、ＥＥＰＲＯＭが選択される。
【００８４】
また、モード２、４の場合アドレスＨ’００００〜Ｈ’１ＦＦＦ、Ｈ’Ｂ０００〜Ｈ’ＢＦＦＦのときＥＥＰＲＯＭが選択される。
ただし、アドレスＨ’Ｂ０００〜Ｈ’ＢＦＦＦはライト時には禁止される。モード２、４の場合のマスクＲＯＭのアドレスはＨ’４０００〜Ｈ’７ＦＦＦである。
【００８５】
なお、本実施例においては、ＥＥＰＲＯＭの分割した容量を１２ｋバイトと４ｋバイトとしたが、これは任意に変更できる。データ用のＥＥＰＲＯＭのアドレスも任意に選択できる。
また、分割をするかしないか、分割する容量、分割するアドレスをプログラムによって選択できるようにしてもよい。
【００８６】
ただし、分割したそれぞれの下位アドレス、上記の場合ビット０〜１４は重ならないように配置するのが得策である。
さらに、分割は行なわず、一部領域の書き込みを禁止するだけでもよい。
【００８７】
図８に、図６のアドレスマップの第二の変形例を示す。本実施例においてはＥＥＰＲＯＭ４００は、２ｋバイトとする。上記図８のアドレスマップではモード１、３、５の時、アドレスＨ’００００〜３ＦＦＦは初期状態では外部メモリまたはマスクＲＯＭとされ、モード１、３、５のとき、制御レジスタの制御ビットを０にクリアすることにより、ＥＥＰＲＯＭとされる。
【００８８】
また、前記同様に、モード１、２、３のとき、ＲＯＭ許可ビットを０にクリアすると、アドレスＨ’８０００〜ＢＦＦＦは外部メモリとなる。
【００８９】
また、モード３、５の時、アドレスＨ’８０００〜ＢＦＦＦのマスクＲＯＭは前記アドレスＨ’００００〜３ＦＦＦのマスクＲＯＭと同一の内容とされる。即ち、マスクＲＯＭの容量は、初期状態では論理アドレスは１６ｋバイト、物理アドレス８ｋバイトである。
【００９０】
上記制御ビットを０にクリアすると、論理アドレス・物理アドレス共に８ｋバイトとなる。例えば、モード５において、ＥＥＰＲＯＭの書き込みは以下の順序で行なうことができる。
【００９１】
まずアドレスＨ’００００〜３ＦＦＦのマスクＲＯＭ上のプログラムで実行を開始し、アドレスＨ’８０００〜ＢＦＦＦのマスクＲＯＭ上のプログラムに分岐する。
【００９２】
あるいはベクタにアドレスＨ’８０００〜ＢＦＦＦの範囲の値を書き込んでおいてもよい。その後制御ビットを０にクリアすれば、上記図６同様のアドレスマップとなるので、この状態でＥＥＰＲＯＭの書き込みを行なえばよい。
【００９３】
図９に、上記図８に対応する機能ブロック選択回路のブロック図を示す。アドレスＨ’００００〜Ｈ’３ＦＦＦのモジュールセレクト信号が、動作モードおよび制御レジスタの内容で、外部メモリ、マスクＲＯＭ、ＥＥＰＲＯＭのいずかが選択されるようにされる。その他は上記図４と概略同様であるので詳細な説明は省略する。
【００９４】
図１０に、本発明に用いられるＥＥＰＲＯＭ４００の一実施例を示すブロック図である。ＥＥＰＲＯＭは、メモリアレイ（ＭーＡＲＹ）１１０、Ｘアドレスバッファ・ラッチ回路（ＸＡＤＢ）１２０、Ｘアドレスデコーダ（ＸＤＣＲ）１３０、Ｙアドレスバッファ・ラッチ回路（ＹＡＤＢ）１４０、Ｙアドレスデコーダ（ＹＤＣＲ）１５０、入出力回路・ラッチ回路（Ｉ／Ｏ）１６０、制御レジスタ（ＲＥＧ）１７０、昇圧回路１８０、制御回路（ＣＯＮＴ）１９０から構成されてなる。
【００９５】
メモリアレイ（ＭーＡＲＹ）１１０は、例えばＭＮＯＳ（メタルナイトライドオキサイドセミコンダクタ）のような不揮発性記憶素子によってなる。
【００９６】
Ｘアドレスバッファ・ラッチ回路（ＸＡＤＢ）１２０およびＸアドレスデコーダ（ＸＤＣＲ）１３０は、アドレスバスの上位ビット、例えばアドレス１３〜５を入力し、解読して、メモリアドレスのロウアドレスを指定する。なお、書き込み中、アドレスはＸアドレスバッファ・ラッチ回路（ＸＡＤＢ）１２０に保持される。
【００９７】
Ｙアドレスバッファ・ラッチ回路（ＹＡＤＢ）１４０、Ｙアドレスデコーダ（ＹＤＣＲ）１５０は、アドレスバスの下位ビット、例えばアドレス４〜０を入力し、解読して、メモリアドレスのカラムアドレスを指定する。
入出力回路・ラッチ回路１６０はデータバスとの入出力を行なうとともに、書き込み中、データを保持する。
【００９８】
制御回路１９０は、ＣＰＵ２００の発行するリード信号ＯＥ、ライト信号ＷＥ、および前記機能ブロック選択信号ＣＥによって、ＥＥＰＲＯＭを選択し、かかるＥＥＰＲＯＭの各部を制御する。
【００９９】
制御レジスタ１７０は、ＥＥＰＲＯＭ４００の動作モードを指定し、また、ＥＥＰＲＯＭ４００の動作状態を表示する。特に制限はされないものの、消去のみを実行し、書き込みを行なわない動作を指定する消去モードビット、および、ＥＥＰＲＯＭ４００が書き込み中であることを示すビジーフラグを有する。
【０１００】
昇圧回路１８０は、負の高電圧−Ｖｐｐを生成する。なお、ＥＥＰＲＯＭ４００の書き込みはＣＰＵ２００のＥＥＰＲＯＭ４００に対するライト動作、即ち、機能ブロック選択信号ＣＥおよびライト信号ＷＥが活性状態になることによって起動される。書き込み中は、前記の通り、アドレス・データをラッチ回路１６０に保持し、アドレスバス・データバスとは電気的に切り離される。
【０１０１】
この間はＥＥＰＲＯＭ４００の読み出しはできない。読み出しは、同様にＣＰＵ２００のＥＥＰＲＯＭ４００に対するリード動作、即ち、機能ブロック選択信号ＣＥおよびリード信号ＯＥが活性状態になることによって行なわれる。書き込み中以外の読み出しは随時行なうことができる。
【０１０２】
ＰＲＯＭモードにおいては、ＣＥ（機能ブロック選択信号）、ＯＥ（リード信号）、ＷＥ（ライト信号）を所定の端子の入力によって制御すればよい。また、ＰＲＯＭモ−ドに書き込む場合は、上記ＣＥ、ＯＥ、ＷＥに対応する所定の端子と外部の、例えば汎用ＥＥＰＲＯＭ４００ライタ等に接続し、書き込むことが出来る。
【０１０３】
なおシングルチップマイクロコンピュータ１００において、ＥＥＰＲＯＭ４００の書き込み中に、いわゆる割込みが要求される場合がある。前記の通り、モード２、４では、ベクタ領域はＥＥＰＲＯＭ４００上にあり、ＥＥＰＲＯＭ４００の書き込み中は、ベクタを読みだすことができない。このため、ＥＥＰＲＯＭ４００の書き込み中は、割込み要求を保留とし、書き込み修了後に割込みを受付けるものとする。
【０１０４】
図１１に、割込み制御回路２の要部の一実施例を示すブロック図である。
上記割り込み制御回路２は、論理積回路２１０、論理和回路２２０、優先順位判定回路２３０、ゲートＡＮＤ２４０、ＯＲ２５０からなる。
【０１０５】
割込み要求は、外部端子あるいは内蔵のタイマ７１０、ＳＣＩ７２０、Ａ／Ｄ変換器７３０から要求される。外部端子による割込み要求および内蔵のタイマ７１０、ＳＣＩ７２０、Ａ／Ｄ変換器７３０による割込み要求は、それぞれ要因フラグ２６０を有し、また、割込みを許可するか禁止するかを指定する許可ビット２７０を有している。
【０１０６】
上記論理積回路２１０は、上記要因フラグ２６０と許可ビット２７０の論理積信号をそれぞれの割込み要求ごとに生成し、かかる論理積信号は次段の上記論理和回路２２０および上記優先順位判定回路２３０の入力信号となる。
【０１０７】
上記論理和回路２２０は、上記割込み信号ごとに生成された複数の論理積信号の論理和である論理和信号２２１を出力する。なお、許可ビットを複数の割り込み要求に共通としたり、許可ビットを設けない割り込み要求を設けたりすることもできる。
【０１０８】
上記ゲートＡＮＤ２４０は、上記論理和信号２２１と上記ゲートＯＲ２５０の出力２５１の論理積信号である割込み要求である２９０を、ＣＰＵ２００に与える。
【０１０９】
ここで、上記ゲートＯＲ２５０の入力は、ＥＥＰＲＯＭ４００の書き込み信号２８０の反転信号およびモード１、３、５に設定されたことを現わす信号２８１であり、上記ゲートＯＲ２５０は、上記２８０と２８１の論理和信号２５１を出力する。
【０１１０】
また、上記論理積回路２１０の論理積信号２１１のうち、優先順位の高い割り込み要求を判定して、いずれの割込み要求が存在しているかを示すベクタ番号２９１をＣＰＵ２００に与える。
【０１１１】
なお、上記許可ビット２７０を複数の割り込み要求に共通としたり、許可ビットを設けない割り込み要求を設けたりすることもできる。
【０１１２】
従って、モード１、３、５のとき、またはＥＥＰＲＯＭ４００の書き込み中でないとき、上記ゲートＯＲ２５０の出力が１レベルとなって、割り込み要求の状態に従ってＣＰＵ２００に割込み要求が行なわれる。
【０１１３】
所定の条件で、ＣＰＵ２００は命令の逐次実行を中断して、ベクタを参照し、割込み処理プログラムに分岐する。また、モード２、４でかつＥＥＰＲＯＭ４００の書き込み中は上記ゲートＯＲ２５０の出力２５１は０レベルとされ、割り込み要求信号２９０は常に非活性状態とするようにしている。
【０１１４】
すなわち、ＥＥＰＲＯＭ４００の書き込み中は、ＣＰＵ２００は逐次命令を実行し、割込み例外処理を行なって、ベクタ領域を参照することはない。ＥＥＰＲＯＭ４００の書き込みは、ＥＥＰＲＯＭ４００素子への書き込みが行なわれている時間のほか、データラッチ時間、消去時間、あるいはベリファイ時間なども含む。この場合、制御レジスタにおける上記ビジーフラグを用い、ＥＥＰＲＯＭ４００が書き込み中であることを示せば良い。
【０１１５】
このとき、ＥＥＰＲＯＭ４００が自動ページ書替機能を有するものにあっては、ＣＰＵ２００が最初のデータをライトすることによってＥＥＰＲＯＭ４００を起動してから、ＥＥＰＲＯＭ４００の自動書替が終了するまでの全期間、割込みを禁止する必要がある。
【０１１６】
また、特開昭６３−１０６９９６に示されるように、ＣＰＵ２００のプログラムの実行によってＥＥＰＲＯＭ４００の書き込みを行なう場合には、ＣＰＵ２００が事前に所定の割込み禁止ビットを「１」にセットし、書き込み終了後に割込み禁止ビットを「０」にクリアすればよい。
【０１１７】
或いは、ＣＰＵ２００内部の割込みマスクビットで、割込みを禁止してもよい。前記のように、ＥＥＰＲＯＭ４００が自動ページ書替機能を有するものにあっては、ＥＥＰＲＯＭ４００の書き込み中にＣＰＵ２００が処理すべきプログラムを有さない場合がある。
【０１１８】
このような場合には、ＣＰＵ２００の動作を停止して、消費電力を低くした低消費電力状態とすることできる。ＥＥＰＲＯＭ４００の書き込み終了後に低消費電力状態を解除して、ＣＰＵ２００のプログラム実行を再開すればよい。
これは、例えば、前記ビジーフラグが非活性状態となったことを検出して、前記低消費電力状態を解除することで実現できる。
【０１１９】
このとき、低消費電力状態を解除するだけでなく、割込み要求を発生することができれば、ＥＥＰＲＯＭ４００の書き込み中に低消費電力状態を使用せず、別の処理プログラムを実行する応用にあっても、利便性が向上する。
【０１２０】
例えば、かかる別の処理プログラム実行中に、ＥＥＰＲＯＭ４００の書き込み終了を割込みによって検出することができ、例えば次のデータを書き込みを開始して、前記別の処理プログラムの実行を続けることができる。
【０１２１】
また、ＥＥＰＲＯＭ４００の書き込み終了後に、ＣＰＵ２００によって書き込みデータのベリファイを行なう必要がなければ、書き込み終了後、ＣＰＵ２００は直ちに次の処理プログラムを実行するのが得策である。
【０１２２】
即ち、ＥＥＰＲＯＭ４００の書き込み終了の割込みは、低消費電力状態を解除し、ＣＰＵ２００の動作を再開するためにのみ使用し、割込み処理プログラムとしては、実行すべき内容を持たないためである。
【０１２３】
このような場合には、ＥＥＰＲＯＭ４００の書き込みが終了して、低消費電力状態を解除したときに、別の割込み要求が発生していれば、かかる別の割込み例外処理を実行して、ＥＥＰＲＯＭ４００の書き込み終了の割込みを無視してよい。
【０１２４】
図１２に、ＥＥＰＲＯＭ４００の書き込み終了の割込みの要因フラグの生成回路３００の一例であるブロック図を示す。要因フラグの生成回路３００はフリップフロップＦＦ、ゲートＡＮＤ３１０、ＯＲ３２０およびデコーダＤＥＣからなる。
【０１２５】
上記フリップフロップＦＦのセット信号はＥＥＰＲＯＭ４００の書込み終了信号３３０であり、リセット信号はゲートＡＮＤ３１０の出力とされる。
【０１２６】
ゲートＡＮＤ３１０の一方の入力は割込み受付信号３４０、他方の入力はゲートＯＲ３２０の出力であって、このゲートＯＲ３２０の入力は、制御ビット３５０の反転信号およびベクタ番号のデコード信号２９１である。
【０１２７】
ベクタ番号デコード信号は、図１１のベクタ番号２９１をデコーダＤＥＣで解読し、ＥＥＰＲＯＭ４００の終了割込みに相当するベクタ番号が出力されているときに、デコーダＤＥＣは１レベルを出力する。割込み受付け信号は、ＣＰＵ２００が割込みを受付け、割込み例外処理を実行していることを示す信号である。
【０１２８】
制御ビット３５０の出力は、図示はされないが、ＣＰＵ２００からリード／ライト可能なレジスタの出力であって、ＥＥＰＲＯＭ４００の書き込み終了の割込みを制御する。
【０１２９】
すなわち、制御ビット３５０が０であれば、ＣＰＵ２００が任意の割込みを受付けた時点でリセット信号が１レベルとなって、フリップフロップＦＦがリセットされるため、ＥＥＰＲＯＭ４００の書き込み終了の割込みは必ず実行されるとは限らない。
【０１３０】
制御ビット３５０が１であれば、ＣＰＵ２００がＥＥＰＲＯＭ４００の書き込み終了の割込みを受付けた時点でリセット信号が１レベルとなって、要因フラグはクリアされるため、ＥＥＰＲＯＭ４００の書き込み終了の割込みは必ず実行される。
【０１３１】
要因フラグの出力、すなわちＥＥＰＲＯＭ書込み終了割込み３６０は、図１１の論理積回路２１０を介して、論理和回路２２０および優先順位判定回路に入力される。論理和回路の出力である割り込み要求信号が低消費電力状態の解除にも用いられる。
【０１３２】
従って、モード２、４で制御ビット３５０を０にクリアしたとき、ＥＥＰＲＯＭ４００の書き込み中に他の割込みが発生していない場合、ＥＥＰＲＯＭ４００の書き込み終了によって、要因フラグ（ＥＥＰＲＯＭ書込み終了割込み３６０）が１にセットされる。
【０１３３】
同時に割り込み要求信号が許可状態になり、低消費電力状態が解除され、ＣＰＵ２００はＥＥＰＲＯＭ４００の書き込み終了の割込みを実行する。
【０１３４】
また、ＥＥＰＲＯＭ４００の書き込み中に他の割込みが発生している場合、ＥＥＰＲＯＭ４００の書き込み中は、かかる割込みは保留とされ、低消費電力状態も解除されない。
【０１３５】
ＥＥＰＲＯＭ４００の書き込み終了によって、要因フラグ（ＥＥＰＲＯＭ書込み終了割込み３６０）が１にセットされ、かつ割り込み要求信号が許可状態になり、低消費電力状態が解除され、ＣＰＵ２００は優先度の高い割込みを実行する。ＥＥＰＲＯＭ４００の書き込み終了の割込みより優先度の高い割込みが要求されていれば、かかる割込み例外処理の実行によって要因フラグ（ＥＥＰＲＯＭ書込み終了割込み３６０）がクリアされ、ＥＥＰＲＯＭ４００の書き込み終了の割込みを実行されない。
【０１３６】
かかる例においては、ＥＥＰＲＯＭ４００の書き込み終了の割込みの優先順位は相当程度に低くしなければ意味がない。なお、ＥＥＰＲＯＭ４００の書き込み終了信号は、前記の通り、前記ビジーフラグが非活性状態となったことを検出して生成することができる。
【０１３７】
上記実施例によれば以下の効果を得るものである。すなわち、
（１）シングルチップマイクロコンピュータのソフトウェアをＥＥＰＲＯＭ４００に格納して、開発期間の短縮・少量生産に好適な性質を得ることができ、さらに応用システムに実装状態で上記プログラムの微調整などを行うことができ、さらに開発期間を短縮できる。
【０１３８】
（２）リセット後にＥＥＰＲＯＭ４００以外のメモリからプログラムを実行でき、ＥＥＰＲＯＭ４００に書き込んでいない状態で実装して、実装状態でＥＥＰＲＯＭ４００にプログラムを書き込むことができる。
【０１３９】
（３）汎用ＰＲＯＭライタで書き込む必要がないため、ソケットに着脱しなくて済み、微細な端子配置を有するパッケージを用いても、端子を変形などの不具合をおこすことがない。
【０１４０】
（４）書き込みプログラムをマスクＲＯＭに予め書き込んでおくことにより、任意の方法でＥＥＰＲＯＭ４００へ書き込むプログラムを取り込むことができる。
【０１４１】
（５）マスクＲＯＭに、応用システムに依存しないプログラムあるいは検証済みのプログラムを書き込み、ＥＥＰＲＯＭ４００には応用システム毎に異なるプログラムあるいは実装後に変更が必要なプログラムを書き込むようにプログラムを分割して配置することにより、開発期間の短縮・少量生産に好適な性質を損なわず、マイクロコンピュータの物理的な規模を縮小でき、製造費用を低減できる。
【０１４２】
以上本発明者等によってなされた発明を実施例に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。
【０１４３】
ＥＥＰＲＯＭ４００は、バイト単位で書き込みおよび消去が可能なＥＥＰＲＯＭ４００の他、部分的な消去が可能な一括消去型ＥＥＰＲＯＭ４００またはフラッシュメモリ、消去不可能なＰＲＯＭであってもよく、ＣＰＵ２００のプログラムの実行によって実装状態で書き込むことができるＰＲＯＭであればよい。
【０１４４】
ただし、上記図６、図７の例では、ＰＲＯＭを分割した境界がＰＲＯＭの消去単位あるいは書き込み単位の境界と一致していることが望ましい。ＣＰＵ２００の具体的な機能・構成には何等制約されない。
【０１４５】
シングルチップマイクロコンピュータの他の機能ブロック、動作モード設定方法、制御レジスタの構成などについては、種々変更可能である。動作モードの設定方法なども任意にできる。かかる動作モードはモード端子で設定する他、ＥＥＰＲＯＭ４００記憶素子で構成することもできる。
【０１４６】
例えば、ＭＤ０端子をＥＥＰＲＯＭ４００記憶素子で代替することもできる。ＥＥＰＲＯＭ４００の書き込み状態をＭＤ０端子の１レベルとすればよい。モードの設定はリセット中にのみ限定すれば、動作中に動作モードが変化してしまうことを防止できる。かかるモード設定用のＥＥＰＲＯＭ４００記憶素子は、ＥＥＰＲＯＭ４００同様に書き込みを行えることが望ましい。
【０１４７】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるＥＥＰＲＯＭ４００内蔵シングルチップマイクロコンピュータに適用した場合について説明したが、それに限定されるものではなく、その他の半導体集積回路装置にも適用可能であり、本発明は少なくともＰＲＯＭを内蔵し、ＰＲＯＭとは別の記憶装置をリードまたはライト可能な半導体集積回路装置に適用することができる。
【図面の簡単な説明】
【０１４８】
【図１】図１は、本発明の実施例にかかるシングルチップマイクロコンピュータのブロック図である。
【図２】図２は、図１のシングルチップマイクロコンピュータの動作モードである。
【図３】図３は、図１のシングルチップマイクロコンピュータのアドレスマップの一例である。
【図４】図４は、図３のアドレスマップに相当する機能ブロック選択回路の一例である。
【図５】図５は、図１のシングルチップマイクロコンピュータのＥＥＰＲＯＭ書き込み方法の一実施例である。
【図６】図６は、図１のシングルチップマイクロコンピュータのアドレスマップの第二の例である。
【図７】図７は、図６のアドレスマップに相当する機能ブロック選択回路の第二の例である。
【図８】図８は、図１のシングルチップマイクロコンピュータのアドレスマップの第三の例である。
【図９】図９は、図１のシングルチップマイクロコンピュータの機能ブロック選択回路の第三の例である。
【図１０】図１０は、本発明に用いられるＥＥＰＲＯＭ４００の一例ブロック図である。
【図１１】図１１は、図１のシングルチップマイクロコンピュータの割込み制御回路２の一例である。
【図１２】図１２は、ＥＥＰＲＯＭ４００の書き込み終了の割込み要因フラグの生成回路３００の一例である。
【符号の説明】
【０１４９】
１００…シングルチップ・マイクロコンピューター
１１０…メモリアレイ
１２０…Ｘアドレスバッファ・ラッチ回路
１３０…Ｘアドレスデコーダ
１４０…Ｙアドレスバッファ・ラッチ回路
１５０…Ｙアドレスデコーダ
１６０…入出力回路・ラッチ回路
１７０…制御レジスタ
１８０…昇圧回路
１９０…制御回路
２００…ＣＰＵ
３００…ＩＮＴＣ
４００…ＥＥＰＲＯＭ
５００…マスクＲＯＭ
６００…ＲＡＭ
７１０…タイマ
７２０…ＳＣＩ
７３０…Ａ／Ｄ変換器
８１０…入出力ポートアドレスバス下位
８２０…入出力ポートアドレスバス上位
８３０…入出力ポートデータバス
８４０…入出力ポートバス制御信号入力
８５０…入出力ポートタイマ入出力
８６０…入出力ポートタイマ入出力
８７０…入出力ポートＳＣＩ入出力
８８０…入出力ポートアナログ入力
８９０…入出力ポート外部割込み入力
９００…ＣＰＧ
１０００…内部バス
【図１】
2006040300.tif 000003
【図２】
2006040300.tif 000004
【図３】
2006040300.tif 000005
【図４】
2006040300.tif 000006
【図５】
2006040300.tif 000007
【図６】
2006040300.tif 000008
【図７】
2006040300.tif 000009
【図８】
2006040300.tif 000010
【図９】
2006040300.tif 000011
【図１０】
2006040300.tif 000012
【図１１】
2006040300.tif 000013
【図１２】
2006040300.tif 000014