(57)【特許請求の範囲】
【請求項１】
各種プログラムを格納したＲＯＭと、データを格納したＲＡＭと、
該ＲＯＭに格納されたプログラムを実行するＣＰＵと、各種制御信号を入出力する入出力装置とを内蔵したシングルチップマイクロコンピュータにおいて、
少なくとも２つ以上の動作モードを有し、
ＣＰＵがベクタアドレスを出力中にアクティブとなるベクタアドレス出力信号と、入出力装置から出力される動作モード制御信号とに従って、ＣＰＵから論理アドレスとして出力されたベクタアドレスを変換するベクタアドレス変換手段が備えられ、
前記ＲＯＭにおいて、
前記動作モードの数を最大とする複数の異なるベクタアドレス領域は、同一のＲＯＭアドレス空間の異なるアドレスに配置され、
前記各動作モード時に使用される各複数のプログラムの各々は、前記ＲＯＭアドレス空間の共用プログラム領域に配置され、かつ、
前記各動作モード時に使用される各複数のプログラム間にて異なる動作モードに共通するプログラムは、前記共用プログラム領域の同一アドレスに配置され、
前記シングルチップマイクロコンピュータは、
前記入出力装置から出力される動作モード制御信号に基づいて前記複数の動作モードのうちの１つを設定し、
前記ベクタアドレス変換手段により決定されたベクタアドレス領域に格納されたアドレスにより指示されるプログラムを実行可能であり、かつ、
前記異なる動作モードにおいて前記共用プログラム領域の同一アドレスに格納されたプログラムの実行が可能である、
ことを特徴とするシングルチップマイクロコンピュータ。
【請求項２】
請求項１に記載のシングルチップマイクロコンピュータにおいて、
前記動作モードは、
１つ以上のユーザが使用するユーザ用動作モードと、１つ以上のメーカが使用するメーカ用動作モードとを含み、
前記ＲＯＭにおいて、
前記ユーザ用動作モード時に使用するベクタアドレス領域と、前記メーカ用動作モード時に使用するベクタアドレス領域との２つの異なるベクタアドレス領域が同一のＲＯＭアドレス空間に配置され、
前記ユーザ用動作モードと前記メーカ用動作モードとのいずれかに使用される各複数のユーザ用プログラム及びメーカ用プログラムは、前記ＲＯＭアドレス空間の前記共用プログラム領域に配置され、かつ、
前記ユーザ用動作モードと前記メーカ用動作モードとのいずれかに使用される各々複数のプログラム間にて共通するプログラムは、前記共用プログラム領域の同一アドレスに配置され、
前記シングルチップマイクロコンピュータは、
前記各動作モードに応じて異なるベクタアドレス領域を使用することにより、前記ユーザ用プログラムと前記メーカ用プログラムとを選択可能であり、かつ、
前記ユーザ用動作モードと前記メーカ用動作モードとのいずれかの動作モードにおいて前記共用プログラム領域の同一アドレスに格納されたプログラムを実行可能である、
ことを特徴とするシングルチップマイクロコンピュータ。
【請求項３】
各種プログラムを格納したＲＯＭと、データを格納したＲＡＭと、
該ＲＯＭに格納されたプログラムを実行するＣＰＵと、各種制御信号を入出力する入出力装置とを内蔵したシングルチップマイクロコンピュータにおいて、
ユーザー用動作モードとメーカー用動作モードとを含む少なくとも２つ以上の動作モードを有し、
ＣＰＵから出力された論理アドレスを、該論理アドレスに規定値を加算することにより物理アドレスに変換するＲＯＭアドレス変換手段と、前記各動作モードに応じて前記ＲＯＭアドレス変換手段が出力する物理アドレスの上位より少なくとも１ビット以上のアドレス信号に対し反転処理を施す信号処理回路とが備えられ、
前記信号処理回路は、動作モードに応じて反転処理の有無を選択し、
前記ＲＯＭアドレス変換手段と信号処理回路とにより、ユーザー用動作モードとメーカー用動作モードとでは論理アドレス空間に対して前記ＲＯＭの異なる物理アドレス空間を割り付けて、物理アドレスと論理アドレスとの対応を選択可能とし、
前記シングルチップマイクロコンピュータは、
前記入出力装置から出力される動作モード制御信号に基づいて前記複数の動作モードのうちの１つを設定し、
前記設定された動作モードに応じて、前記ＲＯＭアドレス変換手段により変換されたＲＯＭアドレスの上位より少なくとも1ビット以上のアドレス信号に対し反転処理を施してＲＯＭアドレスを決定し、
前記動作モードに応じて決定、選択されるＲＯＭアドレスに格納されたプログラムの実行が可能である、
ことを特徴とするシングルチップマイクロコンピュータ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、シングルチップマイクロコンピュータに関し、特に、リセット時又は割り込み受理時に処理を開始するプログラムの先頭アドレスを特定のベクタアドレス領域から読み出すシングルチップマイクロコンピュータにおける、そのベクタアドレスの制御方法に関するものである。
【０００２】
【従来の技術】
読み出し専用メモリ(以下ＲＯＭと略す)を内蔵するシングルチップマイクロコンピュータは、チップのテストを行うために通常はチップの外部から命令をフェッチさせるモードを備えている。このモードはユーザが使用するモードの一つであるプロセッサモードとして備えられる場合と、メーカが使用するテストモードとして備えられる場合とがある。いずれの場合も、特定の端子からアドレス及び命令コードの入出力を行う必要があるため、内蔵ＲＯＭを使用して動作するシングルチップモードとは異なる状態を前記特定の端子に対して機能させなければならない。つまり、前述のモードではシングルチップモードにおける端子の機能をテストできないことになる。
【０００３】
しかしながら、メーカはチップの機能を保証するために、全ての動作状態で正しくチップが動作するかをテストする必要がある。そこで、チップの外部から命令をフェッチさせるモードではテストできない端子機能のテストを行うために、メーカ用プログラム領域を内蔵し、シングルチップモードと同一の状態でユーザ用プログラム領域ではなくメーカ用プログラム領域から命令をフェッチしてテストを行う手段や、内蔵ＲＡＭにプログラムを書き込み、内蔵ＲＡＭから命令をフェッチしてテストを行う手段等が備えられている。
【０００４】
次に、従来の一般的なシングルチップマイクロコンピュータについて、図１４及び図１５を参照しながら説明する。
図１４は、従来のシングルチップマイクロコンピュータの構成を示すブロック図である。図１４において、１はＣＰＵ、２はＲＯＭ、３はＲＡＭ、４はＩ／Ｏで、ＤＢはデータバス、ＡＢはアドレスバスである。
【０００５】
このような構成のシングルチップマイクロコンピュータは、ＣＰＵ１からアドレスバスＡＢを介して指示されたＲＯＭアドレスに格納されたデータを、ＲＯＭ２からデータバスＤＢを介して随時読み出しながら命令を実行する。また必要に応じてＲＡＭ３へのデータの書き込み、読み出しを行い命令処理を行っている。場合によってはＲＡＭ３上に配置された命令を実行することも可能である。
【０００６】
図１５(ａ)は、従来のシングルチップマイクロコンピュータのＲＯＭデータの格納状態を示す図である。図１５(ｂ)は、ユーザ用動作モード時のＲＯＭデータの格納状態を示す図である。図１５(ｃ)は、メーカ用動作モード時のＲＯＭデータの格納状態を示す図である。
【０００７】
図１５において，領域Ａ(ｘ’０００００’〜ｘ’０ＦＦＦＦ’)はＲＡＭ領域、領域Ｂ(ｘ’１００００’〜ｘ’１ＦＦＦＦ’)はメーカ用ベクタアドレス領域及びメーカ用プログラム領域、領域Ｃ(ｘ’１００００’〜ｘ’１ＦＦＦＦ’)はユーザ用ベクタアドレス領域及びユーザ用プログラム領域、領域Ｄ(ｘ’２００００’〜ｘ’３ＦＦＦＦ’)は共用プログラム領域である。メーカ用ベクタアドレス領域とユーザ用ベクタアドレス領域は、同一論理アドレス空間の同一アドレスの異なるバンク(領域Ｂと領域Ｃ)に配置される。また、メーカ用プログラムはメーカ用プログラム領域(領域Ｂ内)に格納されている。シングルチップマイクロコンピュータは、リセット解除時にベクタアドレス領域(ｘ’１００００’〜ｘ’１０１００)に格納されたリセットベクタアドレスからプログラムの実行を開始する。
【０００８】
なお、論理アドレス空間をｘ’０００００’〜ｘ’３ＦＦＦＦ’までの２５６Ｋバイトとする。また、ＲＡＭ容量を６４Ｋバイト、ベクタアドレス領域を２５６バイトとする。
【０００９】
以下に、従来のシングルチップマイクロコンピュータの動作について、説明する。
従来のリセットスタート時や割込受理時に処理を開始する先頭アドレスを特定のベクタアドレス領域(本実施例ではｘ’１００００’〜ｘ’１０１００’)から読み出すシングルチップマイクロコンピュータでは、ユーザ用プログラムあるいはメーカ用プログラムを使用する場合に同一のベクタアドレス領域から処理の先頭アドレスを読み出す。しかしながら、一般的にユーザ用プログラムとメーカ用プログラムの双方において、前述の処理先頭アドレスを同一の値にすることは非常に困難である。そこで、先頭アドレスを異なった値にするために、図１５(ａ)の領域Ｂと領域Ｃに示すように、メーカ用プログラムとユーザ用プログラムを同一アドレスの異なるバンク空間に配置する。なお、バンク空間領域Ｂと領域Ｃには、それぞれ固有のプログラムと固有のベクタアドレス領域が含まれる。ユーザ用プログラムを使用する場合は、図１５(ｂ)に示すように、バンクをユーザ用プログラム側(領域Ｃ)へ切り換える。また、テストを行う場合は、図１５(ｃ)に示すように、バンクをメーカ用プログラム領域側(領域Ｂ)へ切り換える。このような切り換えは、シングルチップマイクロコンピュータの特定の端子の状態(Ｉ／Ｏ４より入力)により動作モードを決定し、動作モード制御信号Ｓ１００により実行される。
【００１０】
また、内蔵ＲＡＭを用いる場合は、特殊な動作モードにおいて内蔵ＲＡＭにテスト用のプログラムを書き込み、次に命令をフェッチするメモリをＲＯＭからＲＡＭに切り換えてテストを行う。当然この場合は、ベクタアドレス領域はＲＡＭ側に割り当てられる。
【００１１】
また、近年、電気的にデータの消去及び書き込みが可能なフラッシュＥＥＰＲＯＭを内蔵するシングルチップマイクロコンピュータが増加している。このようなシングルチップマイクロコンピュータは、内蔵するフラッシュＥＥＰＲＯＭへの消去及び書き込み方法として、シングルチップマイクロコンピュータの端子を単体のフラッシュＥＥＰＲＯＭと同一の状態にし、外部からアドレス、データ及び制御信号を個別の端子に印加するパラレルモードと、シングルチップマイクロコンピュータを動作させ、書き込みデータをシリアル通信で送受信し、シングルチップマイクロコンピュータの命令実行により書き込みを行うシリアルモードを有する場合が多い。
【００１２】
前記シリアルモードで内蔵フラッシュＥＥＰＲＯＭの書き換えを行う場合は、シングルチップマイクロコンピュータに特別のプログラムを実行させる必要がある。リセットスタート時や割込受理時に処理を開始する先頭アドレスを特定のベクタアドレス領域から読み出すシングルチップマイクロコンピュータでは、動作モードによりベクタアドレス領域を変更し実行するプログラムを切り換えるか、ユーザ用プログラム内で、端子の状態等を判断し実行するプログラムを切り換える必要がある。
【００１３】
【発明が解決しようとする課題】
上述のように、従来のシングルチップマイクロコンピュータに内蔵されるＲＯＭの容量には限りがあり、テスト用プログラムといえどもその容量を有効に活用することが所望される。例えば、メーカ用プログラム領域(領域Ｂ)内のサブルーチンプログラムや、ＢＩＯＳ等のプログラムルーチンをユーザ用プログラム側からコールすること等が考えられる。しかしながら前述のバンク配置の手段では、メーカ用プログラム領域(領域Ｂ)内のプログラムをユーザが使用する場合、バンクの切り換えという複雑な手続きを取らなければならない。またユーザ用プログラム領域(領域Ｃ)とメーカ用プログラム領域(領域Ｂ)にはそれぞれ固有のベクタアドレス領域が含まれており、ユーザがメーカ用プログラム領域(領域Ｂ)内のプログラムを使用するためにメーカ用プログラム領域(領域Ｂ)側へバンクを切り換えている間は割込等を受理することが出来ない。なぜならバンクをメーカ用プログラム領域(領域Ｂ)側に切り換えている間に割込を受理するとメーカ用の割込処理プログラムが起動されるからである。
【００１４】
また一般的にシングルチップマイクロコンピュータに内蔵されるＲＡＭの容量はＲＯＭに比べて少なく、十分なプログラムを格納することができず、多種の複雑なテストを一度に行うことは困難であるため、テスト項目毎にプログラムを書き換える必要がある。また内蔵ＲＡＭにテスト用のプログラムを書き込むという操作も必要となり、テストが煩雑になるという課題もある。
【００１５】
一方、フラッシュＥＥＰＲＯＭのシリアルモードでの書き換えにおいては、一般に書き換え用のプログラム(以降ローダープログラムと称す)を消去することを禁止している。なぜなら、書き換え中にシングルチップマイクロコンピュータに異常が発生した場合ローダープログラムが破壊され、以後２度とシリアルモードで書き換えが出来なくなるからである。従って、ユーザ用プログラム内にローダープログラムを配置した場合はベクタアドレス領域をユーザ用プログラムと共有することになり、前記理由によりベクタアドレス領域の書き換えが出来なくなるという課題が生じる。
【００１６】
また、ベクタアドレス領域内に格納されるべきアドレスはユーザ用プログラムにより常に変化するものであり、このベクタアドレスの書き換えができなければ、ユーザ用プログラムを作成する上で大きな障害となる。
【００１７】
さらに、近年は設計の効率を高めるために、設計資産をＩＰ(Intellectual Property)として登録し、活用を推進する動きがある。ＩＰ化されたＣＰＵを使用する場合、ベクタアドレスの領域の切り換え機能を有している場合は問題がないが、機能を有していない場合は、ＩＰコア外部で対応する必要がある。またフラッシュＥＥＰＲＯＭ等のメモリに関しても、ＩＰ化される場合は２のべき乗の容量(例えば６４Ｋバイト、１２８Ｋバイト、２５６Ｋバイト等)になっている場合が多い。例えば論理アドレスとして２５６Ｋバイトの空間を持つＣＰＵに対してＲＡＭを１６Ｋバイト、残りをフラッシュＥＥＰＲＯＭにしたい場合、２５６ＫバイトのＩＰ化コアを使用することになる。この場合、フラッシュＥＥＰＲＯＭの全容量のうち１６Ｋバイトは論理アドレスを与えることができず使用できなくなり、無駄を生じる。
【００１８】
本発明は、上記問題点を解決するためになされたものであり、動作モードに応じて異なるプログラムの起動が可能であると共に、メーカ用プログラム領域内のプログラムをユーザが使用可能なシングルチップマイクロコンピュータを提供すること、及び実装されるハードウエアを最大限有効に活用することを目的とする。
【００２１】
【課題を解決するための手段】
本発明の請求項１に記載のシングルチップマイクロコンピュータは、各種プログラムを格納したＲＯＭと、データを格納したＲＡＭと、該ＲＯＭに格納されたプログラムを実行するＣＰＵと、各種制御信号を入出力する入出力装置とを内蔵したシングルチップマイクロコンピュータにおいて、少なくとも２つ以上の動作モードを有し、ＣＰＵがベクタアドレスを出力中にアクティブとなるベクタアドレス出力信号と、入出力装置から出力される動作モード制御信号とに従って、ＣＰＵから論理アドレスとして出力されたベクタアドレスを変換するベクタアドレス変換手段が備えられ、前記ＲＯＭにおいて、前記動作モードの数を最大とする複数の異なるベクタアドレス領域は、同一のＲＯＭアドレス空間の異なるアドレスに配置され、前記各動作モード時に使用される各複数のプログラムの各々は、前記ＲＯＭアドレス空間の共用プログラム領域に配置され、かつ、前記各動作モード時に使用される各複数のプログラム間にて異なる動作モードに共通するプログラムは、前記共用プログラム領域の同一アドレスに配置され、前記シングルチップマイクロコンピュータは、前記入出力装置から出力される動作モード制御信号に基づいて前記複数の動作モードのうちの１つを設定し、前記ベクタアドレス変換手段により決定されたベクタアドレス領域に格納されたアドレスにより指示されるプログラムを実行可能であり、かつ、前記異なる動作モードにおいて前記共用プログラム領域の同一アドレスに格納されたプログラムの実行が可能であることを特徴とする。
【００２２】
これにより、ベクタアドレス変換手段により使用するべきベクタアドレスを決定して、異なるプログラムを起動できる。また、異なる動作モードにおいて、共用プログラム領域の同一アドレスに格納されたプログラムを使用できる。さらに、プログラム容量を有効に活用し、ＲＯＭ容量を節約できる。
【００２３】
本発明の請求項２に記載のシングルチップマイクロコンピュータは、請求項１に記載のシングルチップマイクロコンピュータにおいて、前記動作モードは、１つ以上のユーザが使用するユーザ用動作モードと、１つ以上のメーカが使用するメーカ用動作モードとを含み、前記ＲＯＭにおいて、前記ユーザ用動作モード時に使用するベクタアドレス領域と、前記メーカ用動作モード時に使用するベクタアドレス領域との２つの異なるベクタアドレス領域が同一のＲＯＭアドレス空間に配置され、前記ユーザ用動作モードと前記メーカ用動作モードとのいずれかに使用される各複数のユーザ用プログラム及びメーカ用プログラムは、前記ＲＯＭアドレス空間の前記共用プログラム領域に配置され、かつ、前記ユーザ用動作モードと前記メーカ用動作モードとのいずれかに使用される各々複数のプログラム間にて共通するプログラムは、前記共用プログラム領域の同一アドレスに配置され、前記シングルチップマイクロコンピュータは、前記各動作モードに応じて異なるベクタアドレス領域を使用することにより、前記ユーザ用プログラムと前記メーカ用プログラムとを選択可能であり、かつ、前記ユーザ用動作モードと前記メーカ用動作モードとのいずれかの動作モードにおいて前記共用プログラム領域の同一アドレスに格納されたプログラムを実行可能であることを特徴とする。
【００２４】
これにより、動作モードに応じてユーザ用プログラムとメーカ用プログラムの起動を選択でき、かつユーザがメーカ用プログラム領域内のプログラムを使用できる。さらに、プログラム容量を有効に活用し、ＲＯＭ容量を節約できる。
【００２５】
本発明の請求項３に記載のシングルチップマイクロコンピュータは、各種プログラムを格納したＲＯＭと、データを格納したＲＡＭと、該ＲＯＭに格納されたプログラムを実行するＣＰＵと、各種制御信号を入出力する入出力装置とを内蔵したシングルチップマイクロコンピュータにおいて、ユーザー用動作モードとメーカー用動作モードとを含む少なくとも２つ以上の動作モードを有し、ＣＰＵから出力された論理アドレスを、該論理アドレスに規定値を加算することにより物理アドレスに変換するＲＯＭアドレス変換手段と、前記各動作モードに応じて前記ＲＯＭアドレス変換手段が出力する物理アドレスの上位より少なくとも１ビット以上のアドレス信号に対し反転処理を施す信号処理回路とが備えられ、前記信号処理回路は、動作モードに応じて反転処理の有無を選択し、前記ＲＯＭアドレス変換手段と信号処理回路とにより、ユーザー用動作モードとメーカー用動作モードとでは論理アドレス空間に対して前記ＲＯＭの異なる物理アドレス空間を割り付けて、物理アドレスと論理アドレスとの対応を選択可能とし、前記シングルチップマイクロコンピュータは、前記入出力装置から出力される動作モード制御信号に基づいて前記複数の動作モードのうちの１つを設定し、前記設定された動作モードに応じて、前記ＲＯＭアドレス変換手段により変換されたＲＯＭアドレスの上位より少なくとも1ビット以上のアドレス信号に対し反転処理を施してＲＯＭアドレスを決定し、前記動作モードに応じて決定、選択されるＲＯＭアドレスに格納されたプログラムの実行が可能であることを特徴とする。
【００２６】
これにより、動作モードに応じてＲＯＭへ入力されるアドレスの全てのビットに対し所要の処理を施すことにより、異なるプログラムの起動が可能である。また、メーカが、ユーザ用プログラム領域を使用することなくメーカ用プログラムを使用することができる。さらに、内蔵ＲＯＭの使用不可領域を有効に活用し、ＲＯＭ容量を節約できる。
【００２９】
【発明の実施の形態】
以下本発明の実施の形態について、図面を参照しながら説明する。なお、ここで示す実施の形態は、あくまでも一例であって、必ずしもこの実施の形態に限定されるものではない。
【００３０】
（実施の形態１）
以下に、本発明の実施の形態１に係るシングルチップマイクロコンピュータについて、図１、図２及び図３を用いて説明する。
図１は、実施の形態１に係るシングルチップマイクロコンピュータの構成を示すブロック図である。図１において、１はＣＰＵ(中央処理装置)であり、ＲＯＭ２に格納されたプログラムを実行する。２はＲＯＭ(読み出し専用メモリ)であり、各種プログラムを格納している。３はＲＡＭ(ランダムアクセスメモリ)であり、主としてデータを格納している。４はＩ／Ｏ(入出力装置)であり、ＣＰＵ１の内部や外部に対して各種制御信号を出力する。５はＩ／Ｏ端子である。ＤＢはデータバスであり、情報を送受信する。ＡＢはアドレスバスであり、アドレス情報を伝送する。Ｓ１００は動作モード制御信号であり、ユーザ用動作モードあるいはメーカ用動作モードの切り換えを命令する信号である。
【００３１】
このような構成のシングルチップマイクロコンピュータは、少なくとも２つ以上の動作モードを有し、ＲＯＭにおいて、前記動作モードの数を最大とする複数の異なるベクタアドレス領域は同一のＲＯＭアドレス空間の同一アドレスに複数のバンクとして配置され、前記各動作モード時に使用される各複数のプログラムの各々は前記ＲＯＭアドレス空間の共用プログラム領域に配置され、かつ、前記各動作モード時に使用される各複数のプログラム間にて異なる動作モードに共通するプログラムは前記共用プログラム領域の同一アドレスに配置されている。
【００３２】
なお、本実施の形態１または実施の形態２に係るシングルチップマイクロコンピュータにおいて、動作モードは、１つ以上のユーザが使用するユーザ用動作モードと、１つ以上のメーカが使用するメーカ用動作モードとを含み、前記ＲＯＭにおいて、前記ユーザ用動作モード時に使用するベクタアドレス領域と、前記メーカ用動作モード時に使用するベクタアドレス領域との２つの異なるベクタアドレス領域が同一のＲＯＭアドレス空間に配置され、前記ユーザ用動作モードと前記メーカ用動作モードとのいずれかに使用される各複数のユーザ用プログラム及びメーカ用プログラムは、前記ＲＯＭアドレス空間の前記共用プログラム領域に配置され、かつ、前記ユーザ用動作モードと前記メーカ用動作モードとのいずれかに使用される各々複数のプログラム間にて共通するプログラムは、前記共用プログラム領域の同一アドレスに配置されている。
【００３３】
図２(ａ)は、実施の形態１に係るシングルチップマイクロコンピュータのＲＯＭデータの格納状態を示す図である。図２(ｂ)は、ユーザ用モード時のＲＯＭアドレスデータの格納状態を示す図である。図２(ｃ)は、メーカ用モード時のＲＯＭアドレスデータの格納状態を示す図である。図２において、領域Ａ(ｘ’０００００’〜ｘ’０ＦＦＦＦ’)はＲＡＭ領域、領域Ｂ’(ｘ’１００００’〜ｘ’１００ＦＦ’)はメーカ用ベクタアドレス領域、領域Ｃ’(ｘ’１００００’〜ｘ’１００ＦＦ’)はユーザ用ベクタアドレス領域、領域Ｄ(ｘ’１０１００’〜ｘ’３ＦＦＦＦ’)は共用プログラム領域である。
【００３４】
シングルチップマイクロコンピュータは、リセット解除時にベクタアドレス領域(ｘ’１００００’〜ｘ’１００ＦＦ’)に格納されたリセットベクタアドレスからプログラムの実行を開始する。
【００３５】
なお、ベクタアドレス領域をｘ’０００００’〜ｘ’１００ＦＦ’としたが、他のアドレスであっても同様であることは言うまでもない。また、簡単化のために論理アドレス空間をｘ’０００００’〜ｘ’３ＦＦＦＦ’までの２５６Ｋバイトとし、ＲＡＭ容量を６４Ｋバイト、ベクタアドレス領域を２５６バイトとする。当然ながらこれらの容量は任意に設定することが可能である。
【００３６】
以下に、実施の形態１に係るシングルチップマイクロコンピュータの動作について説明する。
まず、ＣＰＵ１は、ＲＯＭアドレスをアドレスバスＡＢを介してＲＯＭ２へ出力する。また、Ｉ/Ｏ４は、Ｉ/Ｏ端子５より入力された信号を基に動作モード制御信号Ｓ１００を生成し、ＲＯＭ２へ出力する。ＲＯＭ２は、Ｉ/Ｏ４から出力される動作モード制御信号Ｓ１００に基づいて複数の動作モードのうちの１つを設定し、バンクを切り換えて異なるベクタアドレス領域を使用することにより、設定された動作モードに応じて実行するプログラムを変更できる。また、異なる動作モードにおいて共用プログラム領域に格納されたプログラムの実行が可能である。
【００３７】
なお、動作モード制御信号Ｓ１００がＬレベルの時、図２(ｂ)に示すようにユーザ用ベクタアドレス領域Ｃ’が選択され、動作モード制御信号Ｓ１００がＨレベルの時、図２(ｃ)に示すようにメーカ用ベクタアドレス領域Ｂ’が選択される。このように、各動作モードに応じてユーザ用プログラムとメーカ用プログラムを変更できる。
【００３８】
そして、ＣＰＵ１からアドレスバスＡＢを介して指示されたＲＯＭアドレスに格納されたデータを、ＲＯＭ２からデータバスＤＢを介して随時読み出しながらプログラムを実行する。また、必要に応じてＲＡＭ３へのデータの書き込み、読み出しを行い、命令処理を行う。場合によっては、ＲＡＭ３上に配置された命令を実行することも可能である。
【００３９】
次に、従来のシングルチップマイクロコンピュータ及び本発明の実施の形態１に係るシングルチップマイクロコンピュータのＲＯＭデータ格納状態を比較するため、図３を用いて説明する。
図３は、従来のシングルチップマイクロコンピュータ及び本発明の実施の形態１に係るシングルチップマイクロコンピュータのＲＯＭデータ格納状態を示した図である。
【００４０】
従来のシングルチップマイクロコンピュータでは、図３(ａ)に示すように、メーカ用プログラム領域Ｂとユーザ用プログラム領域Ｃがバンク配置され排他的に使用される。例えばユーザ用プログラムが３つ(Ｕ１、Ｕ２、Ｕ３)とメーカ用プログラムが３つ(Ｍ１、Ｍ２、Ｍ３)である場合、これらはそれぞれ領域Ｃと領域Ｂに配置され、メーカ用プログラムＭ３とユーザ用プログラムＵ１が同一アドレスである場合、従来のシングルチップマイクロコンピュータでは個別に配置しなければならない。しかしながら、本発明の実施の形態１に係るシングルチップマイクロコンピュータでは、共用プログラム領域にそれぞれのプログラム(Ｕ１，Ｕ２，Ｕ３、Ｍ１、Ｍ２、Ｍ３)が配置されており、ユーザ用プログラムＵ１とメーカ用プログラムＭ３が同一アドレスの場合、どちらか一方を配置するだけでよく、ユーザ用動作モードとメーカ用動作モードのいずれかの動作モードにおいて共用プログラム領域の同一アドレスに格納されたプログラムを実行できる。このように、ユーザ用プログラム(Ｕ１)もしくはメーカ用プログラム(Ｍ３)のプログラムサイズ分だけＲＯＭ容量を節約することができ、また、ユーザが、ユーザ用プログラムと同一アドレスのメーカ用プログラムを使用することができる。
【００４１】
以上のように、本実施の形態１に係るシングルチップマイクロコンピュータによれば、各種プログラムを格納したＲＯＭと、データを格納したＲＡＭと、 該ＲＯＭに格納されたプログラムを実行するＣＰＵと、各種制御信号を出力する入出力装置とを内蔵したシングルチップマイクロコンピュータにおいて、少なくとも２つ以上の動作モードを有し、前記ＲＯＭにおいて、前記動作モードの数を最大とする複数の異なるベクタアドレス領域は、同一のＲＯＭアドレス空間の同一アドレスに複数のバンクとして配置され、前記各動作モード時に使用される各複数のプログラムの各々は、前記ＲＯＭアドレス空間の共用プログラム領域に配置され、かつ、前記各動作モード時に使用される各複数のプログラム間にて、異なる動作モードに共通するプログラムは、前記共用プログラム領域の同一アドレスに配置され、前記シングルチップマイクロコンピュータは、前記入出力装置から出力される動作モード制御信号に基づいて前記複数の動作モードのうちの１つを設定し、バンクを切り換えて、異なるベクタアドレス領域を使用することにより、前記設定された動作モードに応じて実行するプログラムを変更可能であり、かつ、前記異なる動作モードにおいて、前記共用プログラム領域の同一アドレスに格納されたプログラムの実行が可能であるので、各動作モードに応じてバンクを切り換えて異なるベクタアドレスを使用し、異なるプログラムの起動を実行でき、かつ、異なる動作モードにおいて共用プログラム領域の同一アドレスに格納されたプログラムを実行でき、プログラム容量を有効に活用してＲＯＭ容量を節約したシングルチップマイクロコンピュータを提供できる。
【００４２】
また、実施の形態１または実施の形態２に係るシングルチップマイクロコンピュータにおいて、動作モードは、１つ以上のユーザが使用するユーザ用動作モードと、１つ以上のメーカが使用するメーカ用動作モードとを含み、ＲＯＭにおいて、前記ユーザ用動作モード時に使用するベクタアドレス領域と、前記メーカ用動作モード時に使用するベクタアドレス領域との２つの異なるベクタアドレス領域が同一のＲＯＭアドレス空間に配置され、前記ユーザ用動作モードと前記メーカ用動作モードとのいずれかに使用される各複数のユーザ用プログラム及びメーカ用プログラムは、前記ＲＯＭアドレス空間の前記共用プログラム領域に配置され、かつ、前記ユーザ用動作モードと前記メーカ用動作モードとのいずれかに使用される各々複数のプログラム間にて共通するプログラムは、前記共用プログラム領域の同一アドレスに配置され、前記シングルチップマイクロコンピュータは、前記各動作モードに応じて異なるベクタアドレス領域を使用することにより、前記ユーザ用プログラムと前記メーカ用プログラムとを選択可能であり、かつ、前記ユーザ用動作モードと前記メーカ用動作モードとのいずれかの動作モードにおいて前記共用プログラム領域の同一アドレスに格納されたプログラムを実行可能であるので、ユーザが、ユーザ用プログラムと同一アドレスのメーカ用プログラムを使用することができ、また、プログラム容量を有効に活用してＲＯＭ容量を節約できるシングルチップマイクロコンピュータを提供できる。
【００４３】
（実施の形態２)
以下に、本発明の実施の形態２に係るシングルチップマイクロコンピュータについて、図４、図５及び図６を用いて説明する。
図４は、実施の形態２に係るシングルチップマイクロコンピュータの構成を示すブロック図である。図４において、６はベクタアドレス変換手段であり、ベクタアドレス出力信号Ｓ１０１及び動作モード制御信号Ｓ１００に従って、ＣＰＵ１から論理アドレスとして出力されたベクタアドレスの変換を行う。Ｓ１０１はベクタアドレス出力信号であり、ＣＰＵ１がベクタアドレスを出力中にアクティブになる信号でる。
【００４４】
このような構成のシングルチップマイクロコンピュータは、少なくとも２つ以上の動作モードを有し、ＣＰＵから出力されるベクタアドレス出力信号と、入出力装置から出力される動作モード制御信号とに従って、ＣＰＵから論理アドレスとして出力されたベクタアドレスを変換するベクタアドレス変換手段が備えられ、ＲＯＭにおいて、前記動作モードの数を最大とする複数の異なるベクタアドレス領域は、同一のＲＯＭアドレス空間の異なるアドレスに配置され、前記各動作モード時に使用される各複数のプログラム各々は、前記ＲＯＭアドレス空間の共用プログラム領域に配置され、かつ、前記各動作モード時に使用される各複数のプログラム間にて異なる動作モードに共通するプログラムは、前記共用プログラム領域の同一アドレスに配置されている。
なお、図１と同一または相当する構成要素については同じ符号を用い、その説明を省略する。
【００４５】
図５は、実施の形態２に係るシングルチップマイクロコンピュータのＲＯＭデータの格納状態を示す。図５において領域Ａ(ｘ’０００００’〜ｘ’０ＦＦＦＦ’)はＲＡＭ領域、領域Ｂ’(ｘ’１００００’〜ｘ’１００ＦＦ’)はユーザ用ベクタアドレス領域、領域Ｃ’(ｘ’３ＦＦ００’〜ｘ’３ＦＦＦＦ’)はメーカ用ベクタアドレス領域、領域Ｄ(ｘ’１０１００’〜ｘ’３ＦＥＦＦ’)は共用プログラム領域である。
【００４６】
シングルチップマイクロコンピュータは、リセット解除時に領域Ｂ’(ｘ’１００００’〜ｘ’１００ＦＦ’)に格納されたリセットベクタアドレス、又は領域Ｃ’(ｘ’３ＦＦ００’〜ｘ’３ＦＦＦＦ’)に格納されたリセットベクタアドレスからプログラムの実行を開始する。
【００４７】
なお、実施の形態２では、ユーザ用動作モード時に使用するベクタアドレス領域と、メーカ用動作モード時に使用するベクタアドレス領域の２つの異なるベクタアドレス領域が、同一のＲＯＭアドレス空間の異なるアドレスに配置されている。また、ベクタアドレス領域をｘ’０００００’〜ｘ’１００ＦＦ’とｘ’３ＦＦ００’〜ｘ’３ＦＦＦＦ’にしたが、他のアドレスであっても同様であることは言うまでもない。また、簡単化のために論理アドレス空間をｘ’０００００’〜ｘ’３ＦＦＦＦ’までの２５６Ｋバイトとし、ＲＡＭ容量を６４Ｋバイト、ベクタアドレス領域を２５６バイトとする。当然ながらこれらの容量は任意に設定することが可能である。
【００４８】
以下に、実施の形態２に係るシングルチップマイクロコンピュータの動作について説明する。
まず、ＣＰＵ１は、論理アドレスとしてｘ’１００００’〜ｘ’１００ＦＦ’のベクタアドレス出力信号をベクタアドレス変換手段６へ出力する。また、Ｉ／Ｏ４は、Ｉ／Ｏ５より入力された信号を基に動作モード制御信号Ｓ１００を生成し、ベクタアドレス変換手段６へ出力する。そして、動作モード制御信号Ｓ１００に基づいて複数の動作モードのうちの１つを設定し、ＣＰＵ１から論理アドレスとして出力されたｘ’１００００’〜ｘ’１００ＦＦ’は、ベクタアドレス変換手段６によってｘ’１００００’〜ｘ’１００ＦＦ’又はｘ’３ＦＦ００’〜ｘ’３ＦＦＦＦ’に変換され、使用するべきベクタアドレス領域のアドレスが決定する。そして、決定されたベクタアドレス領域に格納されたプログラムを実行できる。また、異なる動作モードにおいて共用プログラム領域の同一アドレスに格納されたプログラムを実行できる。
【００４９】
なお、動作モード制御信号Ｓ１００がＨレベルで、ＣＰＵ１から出力されるベクタアドレス出力信号Ｓ１０１がアクティブな場合にベクタアドレス変換手段６はＣＰＵ１から出力された論理アドレスにｘ’３ＦＦ００’を加えて領域Ｃ’のアドレスに変換する。その他の場合はＣＰＵ１から出力された論理アドレスをそのまま通過させる。
【００５０】
そして、アドレスバスＡＢを介して決定されたＲＯＭアドレスに格納されたデータを、ＲＯＭ２からデータバスＤＢを介して随時読み出しながら、プログラムを実行する。また必要に応じてＲＡＭ３へのデータの書き込み、読み出しを行い命令処理を行う。場合によってはＲＡＭ３上に配置された命令を実行することも可能である。
【００５１】
次に、従来のシングルチップマイクロコンピュータと本発明の実施の形態２に係るシングルチップマイクロコンピュータのＲＯＭデータ格納状態を比較するため、図６を用いて説明する。
図６は、従来のシングルチップマイクロコンピュータと本発明の実施の形態２に係るシングルチップマイクロコンピュータのＲＯＭデータ格納状態を示す。
【００５２】
従来のシングルチップマイクロコンピュータでは、メーカ用プログラム領域Ｂとユーザ用プログラム領域Ｃがバンク配置され排他的に使用される。例えばユーザ用プログラムが３つ(Ｕ１、Ｕ２、Ｕ３)とメーカ用プログラムが３つ(Ｍ１、Ｍ２、Ｍ３)である場合、これらはそれぞれ領域Ｃと領域Ｂに配置され、メーカ用プログラムＭ３とユーザ用プログラムＵ１が同一であった場合、従来のシングルチップマイクロコンピュータでは個別に配置しなければならない。しかしながら、本発明のシングルチップマイクロコンピュータでは、共用プログラム領域にそれぞれのプログラム(Ｕ１，Ｕ２，Ｕ３、Ｍ１、Ｍ２、Ｍ３)が配置されており、ユーザ用プログラムＵ１とメーカ用プログラムＭ３のアドレスが同じ場合はどちらか一方を配置するだけでよく、ユーザ用動作モードとメーカ用動作モードのいずれかの動作モードにおいて共用プログラム領域の同一アドレスに格納されたプログラムを実行できる。すなわち、ユーザ用プログラム(Ｕ１)もしくはメーカ用プログラム(Ｍ３)のプログラムサイズ分だけＲＯＭ容量を節約することが可能となる。また、ユーザが、ユーザ用プログラムと同一アドレスのメーカ用プログラムを使用することができる。
【００５３】
以上のように、本実施の形態２に係るシングルチップマイクロコンピュータによれば、各種プログラムを格納したＲＯＭと、データを格納したＲＡＭと、 該ＲＯＭに格納されたプログラムを実行するＣＰＵと、各種制御信号を入出力する入出力装置とを内蔵したシングルチップマイクロコンピュータにおいて、少なくとも２つ以上の動作モードを有し、ＣＰＵから出力されるベクタアドレス出力信号と、入出力装置から出力される動作モード制御信号とに従って、ＣＰＵから論理アドレスとして出力されたベクタアドレスを変換するベクタアドレス変換手段が備えられ、前記ＲＯＭにおいて、前記動作モードの数を最大とする複数の異なるベクタアドレス領域は、同一のＲＯＭアドレス空間の異なるアドレスに配置され、前記各動作モード時に使用される各複数のプログラムの各々は、前記ＲＯＭアドレス空間の共用プログラム領域に配置され、かつ、前記各動作モード時に使用される各複数のプログラム間にて異なる動作モードに共通するプログラムは、前記共用プログラム領域の同一アドレスに配置され、前記シングルチップマイクロコンピュータは、前記入出力装置から出力される動作モード制御信号に基づいて前記複数の動作モードのうちの１つを設定し、前記ベクタアドレス変換手段により決定されたベクタアドレス領域に格納されたプログラムを実行可能であり、かつ、前記異なる動作モードにおいて前記共用プログラム領域の同一アドレスに格納されたプログラムの実行が可能であるので、実施の形態１のようにバンクの切り換えを行う必要が無く、動作モードに応じてベクタアドレス領域のアドレスを変更して、異なるプログラムの起動が可能である。また、異なる動作モードにおいて、共用プログラム領域の同一アドレスに格納されたプログラムの実行が可能である。さらに、プログラム容量を有効に活用し、ＲＯＭ容量を節約できる。
【００５４】
（実施の形態３）
以下に、本発明の実施の形態３に係るシングルチップマイクロコンピュータについて、図７、図８及び図９を用いて説明する。
実施の形態３に係るシングルチップマイクロコンピュータは、少なくとも２つ以上の動作モードを有し、ＣＰＵから出力された論理アドレスを物理アドレスに変換するＲＯＭアドレス変換手段と、前記各動作モードに応じて前記ＲＯＭへのアドレス信号の全てのビットに対し所要の処理を施す信号処理回路とが備えられている。
【００５５】
なお、本実施の形態３または実施の形態４に係るシングルチップマイクロコンピュータは、アドレスを変換するためのＲＯＭアドレス変換手段、及び信号処理回路（本実施例では、排他的論理和)をＣＰＵとＲＯＭの間に挿入するだけで実現できる。
【００５６】
図７は、実施の形態３に係るシングルチップマイクロコンピュータの構成を示すブロック図である。図７において、７は、ＲＯＭアドレス変換手段であり、ＣＰＵ１から出力される論理アドレスを物理アドレスに変換する。８は、排他的論理和であり、各動作モードに応じてＲＯＭへの全てのアドレス信号を正転もしくは反転する。
なお、図１と同一または相当する構成要素については同じ符号を用い、その説明を省略する。
【００５７】
図８は、物理アドレスと論理アドレスの関係を示す図である。図８において、便宜上領域２から領域５までの4つの領域に区分する。各領域は６４Ｋバイトである。それぞれの領域の物理アドレスは領域２がｘ’０００００’〜ｘ’０ＦＦＦＦ’、領域３がｘ’１００００’〜ｘ’１ＦＦＦＦ’、領域４がｘ’２００００’〜ｘ’２ＦＦＦＦ’、領域５がｘ’３００００’〜ｘ’３ＦＦＦＦ’である。物理アドレスは論理アドレスからｘ’１００００’を減算した値であるから、それぞれの論理アドレスは動作モード制御信号Ｓ１００がＬレベルの場合、領域２がｘ’１００００’〜ｘ’１ＦＦＦＦ’、領域３がｘ’２００００’〜ｘ’２ＦＦＦＦ’、領域４がｘ’３００００’〜ｘ’３ＦＦＦＦ’となる。また、領域５は論理アドレス外となりＣＰＵ１からアクセスすることができず、使用不可領域となる。一方、動作モード制御信号Ｓ１００がＨレベルの場合は、領域５がｘ’１ＦＦＦＦ’〜ｘ’１００００’、領域４がｘ’２ＦＦＦＦ’〜ｘ’２００００’、領域３がｘ’３ＦＦＦＦ’〜ｘ’３００００’となる。また領域２は論理アドレス外となりＣＰＵ１からアクセスすることができず、使用不可領域となる。
【００５８】
図９は、本発明の実施の形態３に係るシングルチップマイクロコンピュータのＲＯＭデータの格納状態を示す図であり、ＲＯＭ２とＲＡＭ３は同一の論理アドレス上に配置される。図９において、図９(ａ)と図９(ｂ)はＣＰＵ１の論理アドレス上での格納状態、図９(ｃ)と図９(ｄ)はＲＯＭの物理アドレス上での格納状態を示す図である。また、図９(ａ)と図９(ｃ)はユーザ用動作モード時(動作モード制御信号Ｓ１００がＬレベル)の格納状態を、図９(ｂ)と図９(ｄ)はメーカ用動作モード時(動作モード制御信号Ｓ１００がＨレベル)の格納状態を示す図である。
【００５９】
なお、実施の形態３では簡単化のために論理アドレス空間をｘ’０００００’〜ｘ’３ＦＦＦＦ’までの２５６Ｋバイトとする。また、ＲＡＭ容量を６４Ｋバイト、ベクタアドレス領域を２５６バイトとする。またＲＯＭ２は２５６Ｋバイトの容量を持ち、ｘ’０００００’〜ｘ’３ＦＦＦＦ’までの物理アドレスを持つものとする。当然ながらこれらの容量は任意に設定することが可能であることは言うまでもない。
【００６０】
以下に、実施の形態３に係るシングルチップマイクロコンピュータの動作について説明する。
まず、ＣＰＵ１は、ＲＯＭアドレスをアドレスバスＡＢを介してＲＯＭアドレス変換手段７に出力する。そして、ＲＯＭアドレス変換手段７は、入力されたＲＯＭアドレスを変換し、排他的論理和８へ出力する。また、Ｉ/Ｏ４は、Ｉ/Ｏ端子５より入力された信号を基に動作モード制御信号Ｓ１００を生成し、排他的論理和８へ出力する。そして、排他的論理和８は、Ｉ/Ｏ４から入力された動作モード制御信号Ｓ１００に基づいて複数の動作モードのうちの１つを設定し、設定された動作モードに応じて、変換されたＲＯＭアドレス全てを正転もしくは反転し、ＲＯＭアドレスを決定する。
【００６１】
なお、ユーザ用動作モード時は、図９(ａ)に示すように領域２にユーザ用ベクタアドレス領域が配置され、シングルチップマイクロコンピュータは領域２(ｘ’１００００’〜ｘ’１００ＦＦ’)に格納されたリセットベクタアドレスからプログラムの実行を開始する。この場合、領域５は論理アドレスが割り当てられず、使用不可領域となり、領域５に格納されたメーカ用プログラムは、ユーザ用モードでは実行することができない。一方、メーカ用動作モード時はアドレス信号が排他的論理和８により反転されるため、物理アドレスがユーザ用動作モード時とは反転することになり、図９(ｂ)に示すように領域５に論理アドレスｘ’１００００’〜ｘ’１００ＦＦ’が割り付けられる。領域５にはメーカ用ベクタアドレス領域及びメーカ用プログラム領域が配置され、シングルチップマイクロコンピュータは領域５(ｘ’１００００’〜ｘ’１００ＦＦ’)に格納されたリセットベクタアドレスからプログラムの実行を開始する。この場合、領域２は論理アドレスが割り当てられず、使用不可領域となる。
【００６２】
つまり、ＲＯＭアドレス変換手段７は、ＣＰＵ１からの論理アドレスに対してｘ’１００００’を減算することにより、例えばＣＰＵ１の論理アドレスｘ’１００００’をＲＯＭ２の物理アドレスｘ’０００００’に変換する。そして、排他的論理和８はＲＯＭ２の物理アドレスの配置を反転する役割を有しており、ユーザ用動作モードの場合、動作モード制御信号Ｓ１００がＬレベルのため、ＲＯＭアドレス変換手段７で変換されたＲＯＭアドレスをそのまま反転せずにＲＯＭ２に供給する。一方、メーカ用動作モードの場合、動作モード制御信号Ｓ１００がＨレベルとなり、ＲＯＭアドレス変換手段７で変換されたＲＯＭアドレスを反転してＲＯＭ２に供給する。このように、ユーザ用動作モード(動作モード制御信号Ｓ１００がＬレベル)とメーカ用動作モード(動作モード制御信号Ｓ１００がＨレベル)において使用可能となる領域が異なり、ユーザ用動作モード時に使用不可能となる領域５にメーカ用ベクタアドレス領域とメーカ用プログラム領域を配置することで、メーカはユーザ用プログラム領域を使用することなくメーカ用プログラムを配置し、実行することができる。
【００６３】
そして、決定されたＲＯＭアドレスに格納されたデータを、ＲＯＭ２からデータバスＤＢを介して随時読み出しながら、プログラムを実行する。また必要に応じてＲＡＭ３へのデータの書き込み、読み出しを行い命令処理を行う。場合によってはＲＡＭ３上に配置された命令を実行することも可能である。
【００６４】
以下に、実施の形態３または実施の形態４係るフラッシュＥＥＰＲＯＭ内蔵のシングルチップマイクロコンピュータのシリアルモードでの書き換えについて、図１３を用いて説明する。
図１３は、シリアルモードでの内蔵フラッシュＥＥＰＲＯＭの書き換え手順を示すフローチャートである。
【００６５】
まず、シングルチップマイクロコンピュータをメーカ用動作モードに設定し、リセット解除する。この時メーカ用ベクタアドレスを使用してメーカ用プログラムが起動する(Ｓ２０１)。メーカ用プログラムは、実施の形態３または実施の形態４に示すように、ユーザ用動作モードでは使用不可である領域５に格納されている。メーカ用プログラムにはローダー用プログラムが含まれ、ローダー用プログラムをＲＡＭ３(領域１)に転送する(Ｓ２０２)。ローダー用プログラムがＲＡＭ３に転送されると、プログラムの実行をＲＡＭ３上のローダー用プログラムに分岐させる(Ｓ２０３)。ローダー用プログラムの実行により、フラッシュＥＥＰＲＯＭを書き換え可能な状態に設定し、ユーザ用ベクタアドレス領域及びユーザ用プログラム領域の消去及び書き込みを行う(Ｓ２０４)。以上のシーケンスによりフラッシュＥＥＰＲＯＭの書き換えを行うが、書き換えを行う領域はベクタアドレス領域を含めユーザが使用可能な全ての領域であるため、プログラムの作成上に生じる障害を排除することができる。
【００６６】
このように、全てのユーザ用プログラム領域及びベクタアドレス領域の書き換えが可能なフラッシュＥＥＰＲＯＭ内蔵のシングルチップマイクロコンピュータを提供することができる。
【００６７】
以上のように、実施の形態３に係るシングルチップマイクロコンピュータによれば、各種プログラムを格納したＲＯＭと、データを格納したＲＡＭと、 該ＲＯＭに格納されたプログラムを実行するＣＰＵと、各種制御信号を入出力する入出力装置とを内蔵したシングルチップマイクロコンピュータにおいて、少なくとも２つ以上の動作モードを有し、ＣＰＵから出力された論理アドレスを物理アドレスに変換するＲＯＭアドレス変換手段と、前記各動作モードに応じて前記ＲＯＭへのアドレス信号の全てのビットに対して所要の処理を施す信号処理回路とが備えられ、前記シングルチップマイクロコンピュータは、前記入出力装置から出力される動作モード制御信号に基づいて前記複数の動作モードのうちの１つを設定し、前記設定された動作モードに応じて、前記ＲＯＭアドレス変換手段により変換されたＲＯＭアドレスの全てのビットに対し所要の処理を施してＲＯＭアドレスを決定し、前記動作モードに応じて決定されたＲＯＭアドレスに格納されたプログラムの実行が可能であるので、ＲＯＭアドレスを正転もしくは反転することが可能であり、各動作モードに応じて異なるプログラムの起動が可能である。また、ユーザ用動作モードとメーカ用動作モードの使用可能な領域が異なるので、メーカがユーザ用プログラム領域を使用することなく、メーカ用プログラムを使用できる。さらに、プログラム容量を有効に活用し、ＲＯＭ容量を節約できる。
【００６８】
また、実施の形態３または実施の形態４に係るシングルチップマイクロコンピュータによれば、アドレスを変換するためのＲＯＭアドレス変換手段、及び信号処理回路（本実施例では、排他的論理和)をＣＰＵとＲＯＭの間に挿入するだけで実現できるため、ＩＰ化されたＣＰＵコアや、メモリコアの様に個別の製品を設計する際に設計的な加工が困難な場合でもユーザ用動作モードとメーカ用動作モードを切り換えることが可能であり、また、全てのユーザ用プログラム領域及びベクタアドレス領域の書き換えが可能なフラッシュＥＥＰＲＯＭ内蔵のシングルチップマイクロコンピュータを提供することができる。
【００６９】
（実施の形態４）
以下に、実施の形態４に係るシングルチップマイクロコンピュータについて、図１０、図１１及び図１２を用いて説明する。
実施の形態４に係るシングルチップマイクロコンピュータは、少なくとも２つ以上の動作モードを有し、ＣＰＵから出力された論理アドレスを物理アドレスに変換するＲＯＭアドレス変換手段と、前記各動作モードに応じて前記ＲＯＭへのアドレス信号のうち上位のｍビット(ｍは任意の整数)に対して所要の処理を施す信号処理回路とが備えられている。
【００７０】
図１０は、実施の形態４に係るシングルチップマイクロコンピュータの構成を示すブロック図である。７は、ＲＯＭアドレス変換手段であり、論理アドレスから物理アドレスに変換する。８は、排他的論理和であり、各動作モードに応じて前記ＲＯＭへのアドレス信号のうち上位のｍビット(ｍは任意の整数)を正転もしくは反転する。
【００７１】
図１１は、物理アドレスと論理アドレスの関係を示す図である。図１１において、便宜上領域２から領域５までの4つの領域に区分する。各領域は６４Ｋバイトである。それぞれの領域の物理アドレスは領域２がｘ’０００００’〜ｘ’０ＦＦＦＦ’、領域３がｘ’１００００’〜ｘ’１ＦＦＦＦ’、領域４がｘ’２００００’〜ｘ’２ＦＦＦＦ’、領域５がｘ’３００００’〜ｘ’３ＦＦＦＦ’である。それぞれの論理アドレスは動作モード制御信号Ｓ１００がＬレベルの場合、領域２がｘ’１００００’〜ｘ’１ＦＦＦＦ’、領域３がｘ’２００００’〜ｘ’２ＦＦＦＦ’、領域４がｘ’３００００’〜ｘ’３ＦＦＦＦ’となる。また、領域５は論理アドレス外となりＣＰＵ１からアクセスすることができず、使用不可領域となる。一方、動作モード制御信号Ｓ１００がＨレベルの場合は、領域５がｘ’１００００’〜ｘ’ １ＦＦＦＦ’、領域４がｘ’２００００’〜ｘ’ ２ＦＦＦＦ’、領域３がｘ’ ３００００’〜ｘ’ ３ＦＦＦＦ’となる。また領域２は論理アドレス外となりＣＰＵ１からアクセスすることができず、使用不可領域となる。
【００７２】
図１２はＲＯＭデータの格納状態を示す図であり、ＲＯＭとＲＡＭは、同一の論理アドレス上に配置される。図１２において、図１２(ａ)と図１２(ｂ)はＣＰＵ１の論理アドレス上での格納状態、図１２(ｃ)と図１２(ｄ)はＲＯＭの物理アドレス上での格納状態を示す。また、図１２(ａ)と図１２(ｃ)はユーザ用動作モード時(動作モード制御信号Ｓ１００がＬレベル)の格納状態を、図１２(ｂ)と図１２(ｄ)はメーカ用動作モード時(動作モード制御信号Ｓ１００がＨレベル)の格納状態を示す。
なお、実施の形態４は、実施の形態３とほとんど同じであるので、共通する部分についての説明は省略する。
【００７３】
以下に、実施の形態４に係るシングルチップマイクロコンピュータの動作について説明する。
まず、ＣＰＵ１は、ＲＯＭアドレスをアドレスバスＡＢを介してＲＯＭアドレス変換手段７に出力する。そして、ＲＯＭアドレス変換手段７は、入力されたＲＯＭアドレスを変換し、排他的論理和８へ出力する。また、Ｉ/Ｏ４は、Ｉ/Ｏ端子５より入力された信号を基に動作モード制御信号Ｓ１００を生成し、排他的論理和８へ出力する。そして、排他的論理和８は、Ｉ/Ｏ４から入力された動作モード制御信号Ｓ１００に基づいて複数の動作モードのうちの１つを設定し、設定された動作モードに応じて、変換されたＲＯＭアドレスのうちの上位任意のビットを正転もしくは反転してアドレスを決定する。
【００７４】
そして、決定されたＲＯＭアドレスに格納されたデータを、ＲＯＭ２からデータバスＤＢを介して随時読み出しながら、プログラムを実行する。また必要に応じてＲＡＭ３へのデータの書き込み、読み出しを行い命令処理を行う。場合によってはＲＡＭ３上に配置された命令を実行することも可能である。
【００７５】
実施の形態３との違いは、排他的論理和８でＲＯＭアドレス変換手段７の出力を反転するビット数が、実施の形態３では全てのビットなのに対して、実施の形態４では上位の任意のビット数であることである。このビット数はＲＯＭ２をいくつの領域に分割するかで決定される。実施の形態４では、領域２から領域５までの４つの領域に分割しているため、反転が必要なビット数は上位の２ビットとなる。このように、ＲＯＭアドレスの反転操作を上位のビットのみに対して行うため、必要な排他的論理和８の個数を削減することができる効果がある。
【００７６】
また、ユーザ用動作モード時のＲＯＭ２における物理アドレスの配置は実施の形態３と同一であるが、メーカ用動作モード時のＲＯＭ２における物理アドレスの配置は図１１及び図１２(ｂ)に示すように実施の形態３とは異なる。但し論理アドレスが割り当てられず使用不可となる領域は同一である。
【００７７】
以上のように、実施の形態４に係るシングルチップマイクロコンピュータによれば、本発明の請求項５に記載のシングルチップマイクロコンピュータは、各種プログラムを格納したＲＯＭと、データを格納したＲＡＭと、 該ＲＯＭに格納されたプログラムを実行するＣＰＵと、各種制御信号を入出力する入出力装置とを内蔵したシングルチップマイクロコンピュータにおいて、少なくとも２つ以上の動作モードを有し、ＣＰＵから出力された論理アドレスを物理アドレスに変換するＲＯＭアドレス変換手段と、前記各動作モードに応じて前記ＲＯＭへのアドレス信号のうち上位のｍビット(ｍは任意の整数)に対して所要の処理を施す信号処理回路とが備えられ、前記シングルチップマイクロコンピュータは、前記入出力装置から出力される動作モード制御信号に基づいて前記複数の動作モードのうちの１つを設定し、前記設定された動作モードに応じて、前記ＲＯＭアドレス変換手段により変換されたＲＯＭアドレスのうち、上位任意のビットに対し所要の処理を施すＲＯＭアドレスを決定し、前記動作モードに応じて決定されたＲＯＭアドレスに格納されたプログラムの実行が可能であるので、必要な排他的論理和の個数を削減でき、さらに、内蔵ＲＯＭの使用不可領域を有効に活用し、ＲＯＭ容量を節約できる。また、ＩＰ化されたＣＰＵコアや、メモリコアの様に個別の製品を設計する際に設計的な加工が困難な場合でもユーザ用動作モードとメーカ用動作モードを切り換えることが可能である。
【００７９】
【発明の効果】
本発明の請求項１に記載のシングルチップマイクロコンピュータによれば、少なくとも２つ以上の動作モードを有し、さらに、ＣＰＵがベクタアドレスを出力中にアクティブとなるベクタアドレス出力信号と、入出力装置から出力される動作モード制御信号とに従って、ＣＰＵから論理アドレスとして出力されたベクタアドレスを変換するベクタアドレス変換手段を備え、内蔵ＲＯＭにおいて、前記動作モードの数を最大とする複数の異なるベクタアドレス領域を、同一のＲＯＭアドレス空間の異なるアドレスに配置し、前記各動作モード時に使用される各複数のプログラムの各々を、前記ＲＯＭアドレス空間の共用プログラム領域に配置し、かつ、前記各動作モード時に使用される各複数のプログラム間にて異なる動作モードに共通するプログラムを、前記共用プログラム領域の同一アドレスに配置したので、ベクタアドレス変換手段により使用するべきベクタアドレスを決定して、異なるプログラムを実行できる。また、異なる動作モードにおいて、共用プログラム領域の同一アドレスに格納されたプログラムを使用できる。さらに、プログラム容量を有効に活用し、ＲＯＭ容量を節約できる。
【００８０】
本発明の請求項２に記載のシングルチップマイクロコンピュータによれば、１つ以上のユーザが使用するユーザ用動作モードと、１つ以上のメーカが使用するメーカ用動作モードとを有し、内蔵ＲＯＭにおいて、前記ユーザ用動作モード時に使用するベクタアドレス領域と、前記メーカ用動作モード時に使用するベクタアドレス領域との２つの異なるベクタアドレス領域を同一のＲＯＭアドレス空間に配置し、前記ユーザ用動作モードと前記メーカ用動作モードとのいずれかに使用される各々複数のユーザ用プログラム及びメーカ用プログラムを、前記ＲＯＭアドレス空間の前記共用プログラム領域に配置し、かつ、前記ユーザ用動作モードと前記メーカ用動作モードとのいずれかに使用される各々複数のプログラム間にて共通するプログラムを、前記共用プログラム領域の同一アドレスに配置したので、ユーザ用プログラムとメーカ用プログラムが個別のベクタアドレス領域を使用し、かつ双方が同一のプログラム領域を使用できる為、起動時にユーザ用プログラムとメーカ用プログラムの選択が可能で、かつプログラム容量を有効に活用し、ＲＯＭ容量を節約できるシングルチップマイクロコンピュータを提供することができる。
【００８１】
本発明の請求項３に記載のシングルチップマイクロコンピュータによれば、ユーザー用動作モードとメーカー用動作モードとを含む少なくとも２つ以上の動作モードを有し、ＣＰＵから出力された論理アドレスを物理アドレスに変換するＲＯＭアドレス変換手段と、前記各動作モードに応じて前記ＲＯＭアドレス変換手段が出力する物理アドレスの上位より少なくとも１ビット以上のアドレス信号のビットに対し反転処理を施す信号処理回路とを備えたので、メーカが、ユーザ用プログラム領域を使用することなくメーカ用プログラムを使用することができる。また、内蔵ＲＯＭの使用不可領域を有効に活用し、ＲＯＭ容量を節約できる。また、ＣＰＵとＲＯＭの間にアドレスを変換するための制御手段(ＲＯＭアドレス変換手段、排他的論理和)を挿入するだけで実現できるため、ＩＰ化されたＣＰＵコアや、メモリコアの様に個別の製品を設計する際に設計的な加工が困難な場合でもユーザ用動作モードとメーカ用動作モードを切り換えることが可能である。さらに、全てのユーザ用プログラム領域及びベクタアドレス領域の書き換えが可能なフラッシュＥＥＰＲＯＭ内蔵のシングルチップマイクロコンピュータを提供することができる。
【００８２】
さらに、ＩＰ化されたメモリコアの様に最適なメモリ容量を選択することができず、そのままでは使用不可能になる領域を有する場合でも、有効にメモリを活用することが可能であるので、本来使用することができないＲＯＭ領域を活用可能とし、全てのユーザ用プログラム領域及びベクタアドレス領域の書き換えが可能なフラッシュＥＥＰＲＯＭ内蔵のシングルチップマイクロコンピュータを提供することができる。
【図面の簡単な説明】
【図１】本発明の実施の形態１に係るシングルチップマイクロコンピュータの構成を示すブロック図である。
【図２】本発明の実施の形態１に係るシングルチップマイクロコンピュータのＲＯＭデータの格納状態を示す図である。
【図３】従来のシングルチップマイクロコンピュータと本発明の実施の形態１に係るシングルチップマイクロコンピュータのＲＯＭデータ格納状態の比較図である。
【図４】本発明の実施の形態２に係るシングルチップマイクロコンピュータの構成を示すブロック図である。
【図５】本発明の実施の形態２に係るシングルチップマイクロコンピュータのＲＯＭデータの格納状態を示す図である。
【図６】従来のシングルチップマイクロコンピュータと本発明の実施の形態２に係るシングルチップマイクロコンピュータとのＲＯＭデータ格納状態の比較図である。
【図７】本発明の実施の形態３に係るシングルチップマイクロコンピュータのブロック図である。
【図８】本発明の実施の形態３に係るシングルチップマイクロコンピュータの物理アドレスと論理アドレスの関係を示す図である。
【図９】本発明の実施の形態３に係るシングルチップマイクロコンピュータのＲＯＭデータの格納状態を示す図である。
【図１０】本発明の実施の形態４に係るシングルチップマイクロコンピュータの構成を示すブロック図である。
【図１１】本発明の実施の形態４に係るシングルチップマイクロコンピュータの物理アドレスと論理アドレスの関係を示す図である。
【図１２】本発明の実施の形態４に係るシングルチップマイクロコンピュータのＲＯＭデータの格納状態を示す図である。
【図１３】シリアルモードでのフラッシュＥＥＰＲＯＭの書き換え手順を示すフローチャートである。
【図１４】従来のシングルチップマイクロコンピュータの構成を示すブロック図である。
【図１５】従来のシングルチップマイクロコンピュータのＲＯＭデータの格納状態を示す図である。
【符号の説明】
１  ＣＰＵ
２  ＲＯＭ
３  ＲＡＭ
４  Ｉ／Ｏ
５  Ｉ／Ｏ端子
６  ベクタアドレス変換手段
７  ＲＯＭアドレス変換手段
８  排他的論理和
ＤＢ  データバス
ＡＢ  アドレスバス
Ｓ１００  動作モード制御信号
Ｓ１０１  ベクタアドレス出力信号
【図１】
0003804754.tif 000002
【図２】
0003804754.tif 000003
【図３】
0003804754.tif 000004
【図４】
0003804754.tif 000005
【図５】
0003804754.tif 000006
【図６】
0003804754.tif 000007
【図７】
0003804754.tif 000008
【図８】
0003804754.tif 000009
【図９】
0003804754.tif 000010
【図１０】
0003804754.tif 000011
【図１１】
0003804754.tif 000012
【図１２】
0003804754.tif 000013
【図１３】
0003804754.tif 000014
【図１４】
0003804754.tif 000015
【図１５】
0003804754.tif 000016