(57)【要約】【課題】ＣＰＵ／ＢＩＵと周辺デバイスとの間の独立性を高め、これにより各周辺デバイスの再利用を容易とし、応用上も理解し易く、回路構成も単純なマイクロコンピュータを得ること。【解決手段】ＣＰＵ２４がＢＩＵ２５を介してＣＰＵ資源以外の複数の周辺デバイス９〜１２に対応する複数のアドレス領域にアクセスするマイクロコンピュータにおいて、ＣＰＵ２４はＢＩＵ２５に対しオペコードに複数の周辺デバイスに対するアクセスエリアを指定するエリアセレクト情報を含む命令を出力し、ＢＩＵ２５は、入力された命令のエリアセレクト情報をデコードし、そのデコード結果に基づき複数のアドレス領域を選択指定するための信号を出力するデコード回路４０を備える。【選択図】　　　図１
2004021422.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵがバスインタフェース装置を介してＣＰＵ資源以外の複数の周辺デバイスに対応する複数のアクセス領域にアクセスするマイクロコンピュータにおいて、
前記ＣＰＵは、前記バスインタフェース装置に対し、オペコードに前記複数の周辺デバイスに対するアクセスエリアを指定するエリアセレクト情報を含む命令を出力し、
前記バスインタフェース装置は、入力された命令のエリアセレクト情報をデコードし、そのデコード結果に基づき前記複数のアクセス領域を選択指定するための信号を前記各周辺デバイスに出力するデコード手段を備えることを特徴とするマイクロコンピュータ。
【請求項２】
ＣＰＵがバスインタフェース装置を介してＣＰＵ資源以外の複数の周辺デバイスに対応する複数のアクセス領域にアクセスするマイクロコンピュータにおいて、
前記ＣＰＵは、前記バスインタフェース装置に対し、オペコードに前記複数の周辺デバイスに対するアクセスエリアを指定するエリアセレクト情報を含む命令を出力し、
前記バスインタフェース装置は、
入力された命令のエリアセレクト情報をデコードし、そのデコード結果に基づき前記複数のアクセス領域を選択指定するための第１のデコード信号を出力する第１のデコード手段と、
前記ＣＰＵからの命令のオペランドに含まれるアドレスをデコードし、そのデコード結果に基づき前記複数のアクセス領域の何れかを選択指定するための第２のデコード信号をそれぞれ出力する複数の第２のデコード手段と、
前記第１のデコード信号および第２のデコード信号の何れかを選択して前記複数の周辺デバイスに出力する選択手段と、
を備えることを特徴とするマイクロコンピュータ。
【請求項３】
前記第２のデコード手段は、
アクセス領域の開始アドレスが設定される開始アドレス設定レジスタと、
アクセス領域の終了アドレスが設定される終了アドレス設定レジスタと、
前記ＣＰＵからの命令のオペランドに含まれるアドレスを前記開始アドレス設定レジスタの設定開始アドレスおよび前記終了アドレス設定レジスタの設定終了アドレスと比較し、前記アドレスが設定開始アドレスおよび設定終了アドレスの範囲内にあるときに、前記第２のデコード信号を出力する比較器と、
を備えることを特徴とする請求項２に記載のマイクロコンピュータ。
【請求項４】
前記複数の周辺デバイスは、自身のアクセス領域以外のアドレスが指定されると、割込みを発生させることを特徴とする請求項１〜３の何れか一つに記載のマイクロコンピュータ。
【請求項５】
前記周辺デバイスはＲＯＭであり、ＲＯＭはライトアクセスが入力されると、割込みを発生させることを特徴とする請求項１〜４の何れか一つに記載のマイクロコンピュータ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、各種機器，機械の制御用の１チップのマイクロコンピュータに関し、さらに詳しくは、各種の内蔵周辺装置、ＲＡＭ、ＲＯＭなどを内蔵するマイクロコンピュータに関するものである。
【０００２】
【従来の技術】
１チップマイクロコンピュータには、中央処理装置（ＣＰＵ）と、ＲＡＭと、マスクＲＯＭ，フラッシュメモリまたはＥＥＰ−ＲＯＭなどのＲＯＭと、タイマ，入出力ポート，Ａ−Ｄ変換器，シリアルＩ／Ｏ，クロック発生回路などの各種の内蔵周辺装置などが１個の半導体基板上に集積されている。
【０００３】
１個の半導体チップで構成されるＣＰＵがその周辺に設置されるＲＡＭ，ＲＯＭ，各種の内蔵周辺装置の制御レジスタなどの周辺機能部（Ｉ／Ｏ装置）にアクセスする方式として、メモリマップトＩ／Ｏ方式が知られている。
【０００４】
メモリマップトＩ／Ｏ方式は、本来主メモリのために用意されているアドレス領域の一部にＩ／Ｏ装置のアドレスを割り当て、主メモリに対する書込み及び読出し命令、演算命令等に基づいて発生される主メモリへのアドレスと主メモリへの書込み及び読出し信号とを用いてＣＰＵとＩ／Ｏ装置との間でデータのやりとりを行うものである。メモリマップトＩ／Ｏ方式の特徴は、一般の算術論理演算命令や転送命令等のオペコードを用いて主メモリと同様にＩ／Ｏ装置も指定することが可能なことである。
【０００５】
図１２に、メモリと周辺機能部とを同一アドレス空間に配置するメモリマップトＩ／Ｏ方式を採用した１チップマイクロコンピュータの従来の構成を示す。この従来のマイクロコンピュータにおいては、ＣＰＵ７は、ＢＩＵ（バスインタフェース装置）８を介して、外部インタフェース（外部Ｉ／Ｆ）９と、内蔵周辺装置の制御レジスタ（以下ＰＤＣＲと略す、Ｐｅｒｉｐｈｅｒａｌ　ｄｅｖｉｃｅ　ｃｏｎｔｒｏｌ　ｒｅｇｉｓｔｅｒｓ　内蔵周辺装置制御レジスタ領域）１０と、ＲＡＭ１１と、ＲＯＭ１２とに接続されている。
【０００６】
ＣＰＵ７と内部バス（図示せず）との間にはＢＩＵ８が設けられており、ＣＰＵ７と、外部Ｉ／Ｆ９，ＰＤＣＲ１０，ＲＡＭ１１，ＲＯＭ１２とのデータのやり取りはＢＩＵ８を介して実行される。ＣＰＵ７とＢＩＵ８との間は、専用のバス１３で接続されており、このバス１３を用いてＣＰＵ７のアクセス先（外部Ｉ／Ｆ９、ＰＤＣＲ１０、ＲＡＭ１１およびＲＯＭ１２のいずれであるか）を指定する。ＢＩＵ８と、外部Ｉ／Ｆ９，ＰＤＣＲ１０，ＲＡＭ１１，ＲＯＭ１２とは、共通の図示しない内部データバス、内部アドレスバスおよび内部コントロールバスを介して接続されている。さらに、ＢＩＵ８内に設けられたデコード回路（図示せず）の出力１４〜１７が、外部インタフェース９，ＰＤＣＲ１０，ＲＡＭ１１，ＲＯＭ１２に入力されている。
【０００７】
メモリマップトＩ／Ｏ方式では、アドレス空間をメモリとＩ／Ｏとで分割して用いるため、メモリへ対する命令はそのままＩ／Ｏにも使うことができ、各種領域を同一の命令でアクセスすることが可能であるが、その反面、ＢＩＵ８内にアドレスアクセス先を判定するデコード回路を設けてアクセス領域を指定する必要がある。
【０００８】
図１３は、メモリマップトＩ／Ｏ方式を用いたアドレス空間を示すものであり、この場合、アドレス空間は、０Ｈ番地からＦＦＦＦＦＦＨ番地までの１６Ｍバイトある（「Ｈ」は１６進表示を示している）。この１６Ｍバイトのうち、０Ｈ番地から００ＦＦＦＦＨ番地までの領域を、ＰＤＣＲ領域３、外部領域４、内部ＲＡＭ領域５、割込みベクタ領域を含む内部ＲＯＭ領域６に割り付けており、それ以外の領域（００１０００Ｈ番地〜ＦＦＦＦＦＦＨ番地）を外部領域としている。
【０００９】
すなわち、ＢＩＵ８内のデコード回路では、ＣＰＵ７からの命令に含まれるアドレスが、００００００Ｈ番地〜００００ＦＦＨ番地の場合は、ＰＤＣＲ１０を選択し、０００１００Ｈ番地〜０００７ＦＦＨ番地または００１０００Ｈ番地〜ＦＦＦＦＦＦＨ番地の場合は、外部Ｉ／Ｆ９を選択し、０００８００Ｈ番地〜０００ＦＦＦＨ番地の場合は、ＲＡＭ１１を選択し、００１０００Ｈ番地〜００ＦＦ００Ｈ番地の場合は、ＲＯＭ１２を選択するように動作する。
【００１０】
【発明が解決しようとする課題】
このようにメモリマップトＩ／Ｏ方式を用いたマイクロコンピュータにおいては、マイクロコンピュータの品種が異なって、そのメモリマップが異なる毎に、ＢＩＵ８内に異なるデコード論理構造をもつデコード回路を用意する必要があるので、マイクロコンピュータの品種毎にＢＩＵを手直しする必要性が生じる。また、ＢＩＵ８内のデコード回路においては、ＣＰＵ７からの命令に含まれるアドレスの全てのビットをデコードする必要があるので、デコード回路が複雑かつ大規模になる問題がある。
【００１１】
また、マイクロコンピュータを応用して各種機器，機械の設計を行うマイコン応用エンジニアは、ＲＯＭ／ＲＡＭの容量と、マイコン品種毎に異なる領域配置（アドレス空間）を把握して設計を行う必要性があり、マイコン設計者は、各マイコン毎に異なる領域間の境界チェック（各領域間のつなぎ目検査）を行う出荷検査用のテストパターンを作成する必要があった。
【００１２】
この発明は上記に鑑みてなされたもので、ＣＰＵ／ＢＩＵと周辺デバイス（メモリモジュール）との間の独立性を高め、これにより各周辺デバイスの再利用を容易とし、応用上も理解し易く、回路構成上も単純なマイクロコンピュータを得ることを目的とする。
【００１３】
【課題を解決するための手段】
上記目的を達成するため、この発明にかかるマイクロコンピュータは、ＣＰＵがバスインタフェース装置を介してＣＰＵ資源以外の複数の周辺デバイスに対応する複数のアクセス領域にアクセスするマイクロコンピュータにおいて、前記ＣＰＵは、前記バスインタフェース装置に対し、オペコードに前記複数の周辺デバイスに対するアクセスエリアを指定するエリアセレクト情報を含む命令を出力し、前記バスインタフェース装置は、入力された命令のエリアセレクト情報をデコードし、そのデコード結果に基づき前記複数のアクセス領域を選択指定するための信号を前記各周辺デバイスに出力するデコード手段を備えることを特徴とする。
【００１４】
この発明によれば、ＣＰＵからの命令のオペコードにエリアセレクト情報を持たせるすなわちアクセス領域毎に専用命令を設け、このエリアセレクト情報をバスインタフェース装置内に設けたデコード手段によってデコードして各周辺デバイスに出力するようにしており、これにより、バスインタフェース装置内に配するデコード手段の構成を簡単化することができるとともに、各周辺デバイスのアドレス空間を別空間とすることが可能となる。
【００１５】
つぎの発明にかかるマイクロコンピュータは、ＣＰＵがバスインタフェース装置を介してＣＰＵ資源以外の複数の周辺デバイスに対応する複数のアクセス領域にアクセスするマイクロコンピュータにおいて、前記ＣＰＵは、前記バスインタフェース装置に対し、オペコードに前記複数の周辺デバイスに対するアクセスエリアを指定するエリアセレクト情報を含む命令を出力し、前記バスインタフェース装置は、入力された命令のエリアセレクト情報をデコードし、そのデコード結果に基づき前記複数のアクセス領域を選択指定するための第１のデコード信号を出力する第１のデコード手段と、前記ＣＰＵからの命令のオペランドに含まれるアドレスをデコードし、そのデコード結果に基づき前記複数のアクセス領域の何れかを選択指定するための第２のデコード信号をそれぞれ出力する複数の第２のデコード手段と、前記第１のデコード信号および第２のデコード信号の何れかを選択して前記複数の周辺デバイスに出力する選択手段とを備えることを特徴とする。
【００１６】
この発明によれば、アクセス領域毎に別アドレス空間をもつマイクロコンピュータとして動作させるための第１のデコード回路と、メモリマップトＩ／Ｏ方式のマイクロコンピュータとして動作させるための第２のデコード回路とを用意し、これら第１のデコード信号および第２のデコード信号の何れかを選択して前記複数の周辺デバイスに出力するようにしており、これにより、１つの１チップマイクロコンピュータを、アクセス領域毎に別アドレス空間をもつマイクロコンピュータおよびメモリマップトＩ／Ｏ方式のマイクロコンピュータとして動作させることができるようになる。
【００１７】
つぎの発明にかかるマイクロコンピュータは、上記の発明において、前記第２のデコード手段は、アクセス領域の開始アドレスが設定される開始アドレス設定レジスタと、アクセス領域の終了アドレスが設定される終了アドレス設定レジスタと、前記ＣＰＵからの命令のオペランドに含まれるアドレスを前記開始アドレス設定レジスタの設定開始アドレスおよび前記終了アドレス設定レジスタの設定終了アドレスと比較し、前記アドレスが設定開始アドレスおよび設定終了アドレスの範囲内にあるときに、前記第２のデコード信号を出力する比較器とを備えることを特徴とする。
【００１８】
この発明によれば、アクセス領域の開始アドレスおよび終了アドレスを設定できるようにしており、これによりアプリケーションに応じて柔軟にメモリマップを変更することができる。
【００１９】
つぎの発明にかかるマイクロコンピュータは、上記の発明において、前記複数の周辺デバイスは、自身のアクセス領域以外のアドレスが指定されると、割込みを発生させることを特徴とする。
【００２０】
この発明によれば、複数の周辺デバイスは、自身のアクセス領域以外のアドレスが指定されると、割込みを発生させるようにしており、これによりアクセス領域オーバーの検知が可能となり、異常な動作を未然に防ぐことが可能になる。
【００２１】
つぎの発明にかかるマイクロコンピュータは、上記の発明において、前記周辺デバイスはＲＯＭであり、ＲＯＭはライトアクセスが入力されると、割込みを発生させることを特徴とする。
【００２２】
この発明によれば、ＲＯＭにライトアクセスが入力されると、割込みを発生させるようにしており、これにより異常動作を効果的に検出することが可能になる。
【００２３】
【発明の実施の形態】
以下に添付図面を参照して、この発明にかかるマイクロコンピュータの好適な実施の形態を詳細に説明する。
【００２４】
実施の形態１．
図１〜図４を用いてこの発明の実施の形態１について説明する。図１は、実施の形態１のマイクロコンピュータの機能ブロック図を示し、図２はＣＰＵから出力されるＣＰＵ資源外アクセス命令のフォーマットを示し、図３はＢＩＵに内蔵されるデコード回路を示し、図４は実施の形態１のマイクロコンピュータを実現するためのＣＰＵのメモリマップを示している。
【００２５】
図１に示すように、実施の形態１のマイクロコンピュータにおいては、ＣＰＵ２４は、ＢＩＵ（バスインタフェース装置）２５を介して、外部インタフェース（外部Ｉ／Ｆ）９と、タイマ，シリアルＩ／Ｏ，Ａ−Ｄ変換器，入出力ポート，クロック発生回路などの内蔵周辺装置を制御するための内蔵周辺装置制御レジスタ領域（ＰＤＣＲ）１０と、ＲＡＭ１１と、ＲＯＭ１２とに接続されている。本発明では、外部Ｉ／Ｆ９、ＰＤＣＲ１０、ＲＡＭ１１およびＲＯＭ１２などをＣＰＵ２４の周辺デバイスという。
【００２６】
ＢＩＵ２５は、ＣＰＵ２４と、外部Ｉ／Ｆ９，ＰＤＣＲ１０，ＲＡＭ１１，ＲＯＭ１２とのデータの授受を実行するユニットであり、プログラムアドレスレジスタ、命令キューバッファ、データアドレスレジスタ、データバッファなどのレジスタの他に図３に示すアクセス領域デコード回路（以下単にデコード回路という）４０を備えている。
【００２７】
ＣＰＵ２４とＢＩＵ２５との間は、従来と同様の専用バス１３の他に、アクセスエリアを指定するＡＳ（エリアセレクト）信号線２６によって接続されている。この場合、ＡＳ信号線２６は２ビットであり、この２ビットによって外部Ｉ／Ｆ９，ＰＤＣＲ１０，ＲＡＭ１１，ＲＯＭ１２の何れかを選択指定する。
【００２８】
ＢＩＵ２５と、外部Ｉ／Ｆ９，ＰＤＣＲ１０，ＲＡＭ１１，ＲＯＭ１２とは、共通の図示しない内部データバス、内部アドレスバスおよび内部コントロールバスを介して接続されている。さらに、ＢＩＵ２５内に設けられた図３に示すデコード回路４０の出力３６〜３９が、外部Ｉ／Ｆ９，ＰＤＣＲ１０，ＲＡＭ１１，ＲＯＭ１２に入力されている。
【００２９】
ＣＰＵ２４からは、図２に示すＣＰＵ資源外アクセス命令がＢＩＵ２５に入力される。ＣＰＵ資源とはＣＰＵ（ブロック）２４内に存在し、ＢＩＵ２５を介すことなくアクセス可能な内部レジスタを指しており、ＣＰＵ資源外とはＢＩＵ２５を介してアクセス可能な周辺デバイスを示している。
【００３０】
図２に示すように、ＣＰＵ資源外アクセス命令は、命令の種類を示すオペコード２７と、演算の対象となるデータであるオペランド２８を備えている。オペコード２７には、アクセスエリアを指定する２ビットのＡＳ（エリアセレクト）ビット２６が含まれている。ＣＰＵ２４は、外部ＩＦ９を選択するときは、ＡＳビット２６を“００”とし、ＰＤＣＲ１０を選択するときは、ＡＳビット２６を“０１”とし、ＲＡＭ１１を選択するときは、ＡＳビット２６を“１０”とし、ＲＯＭ１２を選択するときは、ＡＳビット２６を“１１”とする。
【００３１】
ＢＩＵ２５に内蔵されるデコード回路４０は、図３に示すように、２つのＮＯＴ回路２９，３０と、４つのＡＮＤ回路３１〜３４とを備えている。ＢＩＵ２５内の命令キューバッファに格納されたオペコード２７は、図示しないデコーダによってデコードされてＣＰＵ資源外アクセス命令であるか否かが判定される。このデコーダによる判定の結果、実行するオペコードがＣＰＵ資源外アクセス命令である場合、該デコーダから出力されるＣＰＵ資源外アクセス命令デコード信号（ＯＲＥＳＡＣ）３５が、その命令の実行サイクル期間中に“１”となる。
【００３２】
ＣＰＵ資源外アクセス命令デコード信号（ＯＲＥＳＡＣ）３５は、４つのＡＮＤ回路３１〜３４に入力されている。ＮＯＴ回路２９は、ＡＳビット２６の上位ビットを反転して出力する。ＮＯＴ回路３０は、ＡＳビット２６の下位ビットを反転して出力する。
【００３３】
ＡＮＤ回路３１には、ＯＲＥＳＡＣ信号３５と、ＡＳビット２６の上位ビットの反転信号と、ＡＳビット２６の下位ビットの反転信号とが入力されているので、その出力である外部領域デコード信号（ＥＸＴＡＲ）３６は、ＯＲＥＳＡＣ信号３５が“１”で、ＡＳビット２６が“００”のときに“１”となる。この外部領域デコード信号（ＥＸＴＡＲ）３６は、外部Ｉ／Ｆ９に入力される。したがって、外部領域デコード信号（ＥＸＴＡＲ）３６が“１”となったときには、外部Ｉ／Ｆ９が選択される。
【００３４】
ＡＮＤ回路３２には、ＯＲＥＳＡＣ信号３５と、ＡＳビット２６の上位ビットの反転信号と、ＡＳビット２６の下位ビットの非反転信号とが入力されているので、その出力であるＰＤＣＲ領域デコード信号（ＰＤＣＲＡＲ）３７は、ＯＲＥＳＡＣ信号が“１”で、ＡＳビット２６が“０１”のときに“１”となる。このＰＤＣＲ領域デコード信号（ＰＤＣＡＲ）３７は、ＰＤＣＲ１０に入力される。したがって、ＰＤＣＲ領域デコード信号（ＰＤＣＡＲ）３７が“１”となったときには、ＰＤＣＲ１０が選択される。
【００３５】
ＡＮＤ回路３３には、ＯＲＥＳＡＣ信号３５と、ＡＳビット２６の上位ビットの非反転信号と、ＡＳビット２６の下位ビットの反転信号とが入力されているので、その出力であるＲＡＭ領域デコード信号（ＲＡＭＡＲ）３８は、ＯＲＥＳＡＣ信号が“１”で、ＡＳビット２６が“１０”のときに“１”となる。このＲＡＭ領域デコード信号（ＲＡＭＡＲ）３８は、ＲＡＭ１１に入力される。したがって、ＲＡＭ領域デコード信号（ＲＡＭＡＲ）３８が“１”となったときには、ＲＡＭ１１が選択される。
【００３６】
ＡＮＤ回路３４には、ＯＲＥＳＡＣ信号３５と、ＡＳビット２６の上位ビットの非反転信号と、ＡＳビット２６の下位ビットの非反転信号とが入力されているので、その出力であるＲＯＭ領域デコード信号（ＰＯＭＡＲ）３９は、ＯＲＥＳＡＣ信号３５が“１”で、ＡＳビット２６が“１１”のときに“１”となる。このＲＯＭ領域デコード信号（ＰＯＭＡＲ）３９は、ＲＯＭ１２に入力される。したがって、ＲＯＭ領域デコード信号（ＰＯＭＡＲ）３９が“１”となったときには、ＲＯＭ１１が選択される。
【００３７】
このようにして、これらの領域デコード信号３６〜３９と、ＣＰＵ２４からの命令のオペランド２８に含まれるアドレスによって複数のデバイス（外部Ｉ／Ｆ９，ＰＤＣＲ１０，ＲＡＭ１１，ＲＯＭ１２）中の所望のＩ／Ｏエリアにアクセスすることができる。
【００３８】
図４はＣＰＵ２４のアドレス空間を示すものである。この実施の形態１の構成によれば、オペコードに含まれる２ビットのＡＳビットによって周辺デバイスを選択する、すなわち周辺デバイス毎に（アクセス領域毎に）、専用命令を設けるようにしているので、各周辺デバイスのアドレス空間は、別空間となり、主メモリのために用意されているアドレス領域を使わずに済む。したがって、実施の形態１の構成によれば、図４に示すように、例えば、外部領域２０を００００００Ｈ番地〜ＦＦＦＦＦＦＨ番地とし、ＰＤＣＲ領域２１を００００００Ｈ番地〜００００ＦＦＨ番地とし、内部ＲＡＭ領域２２を００００００Ｈ番地〜０００７ＦＦＨ番地とし、内部ＲＯＭ領域２３を００００００Ｈ番地〜００ＦＦＦＦＨ番地とするように、各周辺デバイスのアドレス領域を０番地からの共通アドレスが存在するように設定することができる。
【００３９】
このように実施の形態１によれば、オペコードにアクセス領域情報（ＡＳビット２６）を持たせることにより、すなわちアクセス領域毎に専用命令を設けるようにしたので、ＢＩＵ２５内に配するデコード回路の構成を簡単化することができる。
【００４０】
また、各周辺デバイスのアドレス空間が別空間となるため、図４に示したように各領域は０番地から存在することができるようになる。したがって、マイコン応用エンジニアは、各アクセス領域毎のメモリマップだけを考慮すればよくなり、１チップマイクロコンピュータで頻繁に行なわれるメモリ容量による品種展開が容易になる。加えて、ＢＩＵ２５内に配するデコード回路の構成が単純化されたので、出荷検査時においても、各領域間の境界チェック（各領域間のつなぎ目検査）が不要となり、検査時間の短縮も図れる。なお、本実施の形態１は、Ｉ／Ｏ空間を専用命令でアクセスするという点においてＩ／ＯマップトＩ／Ｏ方式と類似しているが、本実施の形態１は、命令コードを配置して動作させることを想定しているＲＡＭやＲＯＭのアドレス空間もそれぞれ分離し、専用命令でアクセスするという点において、Ｉ／ＯマップトＩ／Ｏ方式とは異なっている。
【００４１】
実施の形態２．
つぎに、図５および図６を用いてこの発明の実施の形態２について説明する。図５は、実施の形態２のマイクロコンピュータの機能ブロック図を示し、図６は図５のＢＩＵ５０に内蔵されるデコード回路６０を示している。この実施の形態２においては、アクセス領域毎に別アドレス空間をもつ実施の形態１に示したマイクロコンピュータとしても使用できる上に、従来技術で説明したメモリマップトＩ／Ｏ方式のマイクロコンピュータとしても使用できるようにしている。
【００４２】
図５に示すように、実施の形態２のマイクロコンピュータは、ＣＰＵ２４、ＢＩＵ５０、外部Ｉ／Ｆ９，ＰＤＣＲ１０，ＲＡＭ１１およびＲＯＭ１２を備えている。
【００４３】
ＣＰＵ２４からＢＩＵ５０に対しては、先の図２に示したような、ＡＳビットを含む命令が入力される。ただし、本マイクロコンピュータを、アクセス領域毎に別アドレス空間をもつ実施の形態１に示したマイクロコンピュータとして動作させるときは、２ビットのＡＳビット２６は、“０１”、“１０”、“１１”の値をとるようにし、従来技術で説明したメモリマップトＩ／Ｏ方式のマイクロコンピュータとして使用する際には、２ビットのＡＳビット２６は、“００”の値をとるようにしている。
【００４４】
ＢＩＵ５０内のデコード回路６０は、図６に示すような構成をとっており、このデコード回路６０の構成およびその出力６４〜６７が実施の形態１と異なっている。他の構成は、基本的には、実施の形態１と同じである。
【００４５】
ＢＩＵ５０に内蔵されるデコード回路６０は、図３に示したものと同じ構成を有するアクセス領域デコード回路４０と、外部領域デコーダ５６と、ＰＤＣＲ領域デコーダ５３と、ＲＡＭ領域デコーダ５４と、ＲＯＭ領域デコーダ５５と、３つのオア回路５７〜５９とを備えている。
【００４６】
アクセス領域デコード回路４０は、前述したように、２ビットのＡＳビット２６をデコードして、メモリマップトＩ／Ｏモード信号３６´、ＰＤＣＲ領域デコード信号３７、ＲＡＭ領域デコード信号３８およびＲＯＭ領域デコード信号３９の何れかを“１”にする。実施の形態２においては、ＡＳビット２６が“００”のときには、アクセス領域デコード回路４０からメモリマップトＩ／Ｏモード信号３６´が出力されるが、この信号３６´は、本マイクロコンピュータをメモリマップトＩ／Ｏ方式で機能させるときに、“１”となる。
【００４７】
まず、本マイクロコンピュータがメモリマップトＩ／Ｏ方式のマイクロコンピュータとして動作する場合について説明する。
【００４８】
ＰＤＣＲ領域デコーダ５３、ＲＡＭ領域デコーダ５４およびＲＯＭ領域デコーダ５５は、アクセス領域デコード回路４０から出力されるメモリマップトＩ／Ｏモード信号３６´が“１”であるとき、すなわちＡＳビット２６が“００”をとるときに、その動作がアクティブとなる。
【００４９】
ＰＤＣＲ領域デコーダ５３は、メモリマップトＩ／Ｏ方式を採用したときのＰＤＣＲ領域を検出するものであり、ＣＰＵ２４からの命令に含まれるアドレスが予め設定されたＰＤＣＲ領域内のアドレスであるときにその出力６１を“１”にする。例えば、先の図１３に示したように、ＰＤＣＲ領域を、００００００Ｈ番地〜００００ＦＦＨ番地に設定した場合は、ＣＰＵ２４からの命令に含まれるアドレスがこの範囲内にあるときに出力６１を“１”にする。この出力“１”は、オア回路５７を介してＰＤＣＲＡＲ信号６５としてＰＤＣＲ１０に出力され、ＰＤＣＲ１０が選択される。
【００５０】
ＲＡＭ領域デコーダ５４は、メモリマップトＩ／Ｏ方式を採用したときのＲＡＭ領域を検出するものであり、ＣＰＵ２４からの命令に含まれるアドレスが予め設定されたＲＡＭ領域内のアドレスであるときにその出力６２を“１”にする。例えば、先の図１３に示したように、ＲＡＭ領域を、０００８００Ｈ番地〜０００ＦＦＦＨ番地に設定した場合は、ＣＰＵ２４からの命令に含まれるアドレスがこの範囲内にあるときに出力６２を“１”にする。この出力“１”は、オア回路５８を介してＲＡＭＡＲ信号６６としてＲＡＭ１１に出力され、ＲＡＭ１１が選択される。
【００５１】
ＲＯＭ領域デコーダ５５は、メモリマップトＩ／Ｏ方式を採用したときのＲＯＭ領域を検出するものであり、ＣＰＵ２４からの命令に含まれるアドレスが予め設定されたＲＯＭ領域内のアドレスであるときにその出力６３を“１”にする。例えば、先の図１３に示したように、ＲＯＭ領域を、００１８００Ｈ番地〜００ＦＦＦＦＨ番地に設定した場合は、ＣＰＵ２４からの命令に含まれるアドレスがこの範囲内にあるときに出力６３を“１”にする。この出力“１”は、オア回路５９を介してＲＯＭＡＲ信号６７としてＲＯＭ１２に出力され、ＲＯＭ１２が選択される。
【００５２】
外部領域デコーダ５６は、アクセス領域デコード回路４０から出力されるメモリマップトＩ／Ｏモード信号３６´が“１”であるとき、すなわちＡＳビット２６が“００”をとるときであってかつ、ＰＤＣＲ領域デコーダ５３の出力６１、ＲＡＭ領域デコーダ５４の出力６２およびＲＯＭ領域デコーダ５５の出力６３の全てが“０”のときに、その出力（ＥＸＴＡＲ信号）６４を“１”とする。このＥＸＴＡＲ信号６４は、外部Ｉ／Ｆ９に出力され、外部Ｉ／Ｆ９が選択されることになる。
【００５３】
つぎに、アクセス領域毎に別アドレス空間をもつ実施の形態１に示したマイクロコンピュータとして動作する場合について説明する。
【００５４】
ＡＳビットが“０１”のときには、アクセス領域デコード回路４０のＰＤＣＲデコード信号３７が“１”となり、これ以外の信号３６´，３８，３９は“０”となる。このＰＤＣＲデコード信号３７は、オア回路５７を介してＰＤＣＲＡＲ信号６５としてＰＤＣＲ１０に出力される。したがって、この場合は、ＰＤＣＲ１０が選択される。
【００５５】
ＡＳビットが“１０”のときには、アクセス領域デコード回路４０のＲＡＭデコード信号３８が“１”となり、これ以外の信号３６´，３７，３９は“０”となる。このＲＡＭデコード信号３８は、オア回路５８を介してＲＡＭＡＲ信号６６としてＲＡＭ１１に出力される。したがって、この場合は、ＲＡＭ１１が選択される。
【００５６】
ＡＳビットが“１１”のときには、アクセス領域デコード回路４０のＲＯＭデコード信号３９が“１”となり、これ以外の信号３６´〜３８は“０”となる。このＲＯＭデコード信号３９は、オア回路５９を介してＲＯＭＡＲ信号６７としてＲＯＭ１２に出力される。したがって、この場合は、ＲＯＭ１２が選択される。
【００５７】
図７は、実施の形態２によるマイクロコンピュータにおけるＣＰＵ２４のアドレス空間を示すものである。
【００５８】
ＡＳビット２６が“００”のときは、図７（ａ）に示すように、１６Ｍバイトの記憶領域（０Ｈ番地からＦＦＦＦＦＦＨ番地までの領域）が、外部領域２０、ＰＤＣＲ領域２１、内部ＲＡＭ領域２２および内部ＲＯＭ領域２３に割り振られたメモリマップトＩ／Ｏ方式のメモリマップとなっている。
【００５９】
ＡＳビット２６が“０１”“１０”“１１”のときには、図７（ｂ）〜（ｄ）に示すように、ＰＤＣＲ領域２１を００００００Ｈ番地〜００００ＦＦＨ番地とし、内部ＲＡＭ領域２２を００００００Ｈ番地〜０００７ＦＦＨ番地とし、内部ＲＯＭ領域２３を００００００Ｈ番地〜００ＦＦＦＦＨ番地とするように、各周辺デバイスのアドレス領域を０番地からの共通アドレスが存在するように設定することができる。
【００６０】
なお、図６においては、外部領域は、ＡＳビットを“００”としたメモリマップトＩ／Ｏ方式のときに選択可能としたが、実施の形態１に示したマイクロコンピュータとしても動作させるかあるいはメモリマップトＩ／Ｏ方式のマイクロコンピュータとして動作させるかを選択するための１ビットをＣＰＵ資源内のレジスタに設け、外部領域をアクセスする際にも、図４に示したようなメモリマップを持つ実施の形態１に示したマイクロコンピュータとしても動作させるモードと、メモリマップトＩ／Ｏ方式でのモードを選択できるようにしてもよい。
【００６１】
要は、実施の形態２においては、入力された命令のＡＳビットをデコードし、そのデコード結果に基づき複数のアクセス領域を選択指定するための第１のデコード信号を出力する第１のデコード手段（アクセス領域デコード回路４０に対応）と、ＣＰＵからの命令のオペランドに含まれるアドレスをデコードし、そのデコード結果に基づき複数のアクセス領域の何れかを選択指定するための第２のデコード信号をそれぞれ出力する複数の第２のデコード手段（ＰＤＣＲ領域デコーダ５３，ＲＡＭ領域デコーダ５４，ＲＯＭ領域デコーダ５５などに対応）と、第１のデコード信号および第２のデコード信号の何れかを選択して複数の周辺デバイスに出力する選択手段（オア回路５７〜５９に対応）とを備えるようにすればよい。
【００６２】
つぎに、図８は、ＰＤＣＲ領域デコーダ５３、ＲＡＭ領域デコーダ５４、ＲＯＭ領域デコーダ５５の内部構成を示すものであり、図８の構成では、領域開始アドレスレジスタ７０および領域終了アドレスレジスタ７１を設け、これらに所望のアドレス値を設定できるようにして、ＡＳビット＝“００”時のメモリマップを任意に変更できるようにしている。
【００６３】
この場合は、図８をＰＤＣＲ領域デコーダ５３の内部構成として説明する。ＰＤＣＲ領域デコーダ５３は、領域開始アドレスレジスタ７０、領域終了アドレスレジスタ７１、比較器７２、比較器７３およびアンド回路７４を備えている。
【００６４】
領域開始アドレスレジスタ７０には、メモリマップトＩ／Ｏ方式を用いる場合の、ＰＤＣＲ領域の開始アドレスが設定される。例えば、先の図１３に示したように、ＰＤＣＲ領域を設定する場合は、００００００Ｈ番地が設定される。但し、領域開始アドレスレジスタ７０および領域終了アドレスレジスタ７１の設定アドレスは、ＰＤＣＲ領域、ＲＡＭ領域、ＲＯＭ領域を区別することができればよいので、アドレス全てのビットを設定するのではなく、アドレス中のこれらの各領域を区別するのに必要な上位ビットのみを設定すればよい。この場合は、アドレスの上位１６ビットを設定している。
【００６５】
領域終了アドレスレジスタ７１には、メモリマップトＩ／Ｏ方式を用いる場合の、ＰＤＣＲ領域の終了アドレスが設定される。例えば、先の図１３に示したように、ＰＤＣＲ領域を設定する場合は、００００ＦＦＨ番地が設定される。領域終了アドレスレジスタ７１もアドレスの上位１６ビットを設定するようにしている。
【００６６】
比較器７２は、ＡＳビットが“００”のときアクティブとなるものである。比較器７２は、アクセスアドレスの値Ａと領域開始アドレスレジスタ７０の設定値Ｂとを比較し、Ａ≧Ｂのときその比較出力７７を“１”とする。
【００６７】
比較器７３は、ＡＳビットが“００”のときアクティブとなるものである。比較器７３は、アクセスアドレスの値Ａと領域終了アドレスレジスタ７１の設定値Ｃとを比較し、Ａ＜Ｃのときその比較出力７８を“１”とする。
【００６８】
これら比較出力７７，７８はアンド回路７４に入力される。したがって、アンド回路７４からは、両比較器７２，７３の出力が“１”のとき、その出力６１が“１”となり、ＰＤＣＲ領域内であることを示す。
【００６９】
このようにこの実施の形態２においては、アクセス領域毎に別アドレス空間をもつ実施の形態１に示したマイクロコンピュータとして動作させるためのデコード回路と、メモリマップトＩ／Ｏ方式のマイクロコンピュータとして動作させるためのデコード回路とを各別に用意し、使用形態に応じてこれらデコーダを選択的に動作させるようにしたので、１つの１チップマイクロコンピュータを、アクセス領域毎に別アドレス空間をもつ実施の形態１に示したマイクロコンピュータおよびメモリマップトＩ／Ｏ方式のマイクロコンピュータとして動作させることができるようになる。従って、各アクセス領域毎の専用命令でも、アクセス領域によらない共用の命令でもアクセスすることが可能となる。
【００７０】
また、図８に示すように、領域開始アドレスレジスタ７０および領域終了アドレスレジスタ７１を設け、これらに所望のアドレス値を設定するようにすれば、ＡＳビット＝“００”時のメモリマップを任意に変更することが可能となる。したがって、例えば、各アクセス領域を跨いだメモリアクセスに関して、命令長の小さいアドレッシングの命令を用いたアクセスが可能になるように、メモリマップを構成でき、またマッピングする各アクセス領域のメモリ容量も任意に設定することが可能となる。このため、アプリケーションに応じたメモリマップへの変更が容易となり、最適なアドレッシングモードを利用可能となる。
【００７１】
実施の形態３．
つぎに、図９および図１０を用いてこの発明の実施の形態３について説明する。図９は、実施の形態３のマイクロコンピュータの一部の機能ブロック図を示し、図１０は各種信号のタイムチャートを示している。
【００７２】
ＲＡＭ１１から出力される割込み要求信号ＲＡＭＩＲＱＢが、割込み制御回路（以下、ＩＣＵという）８０に入力されている。ＩＣＵ８０は、割込み要求信号（ＲＡＭＩＲＱＢ信号）８２に基づきＣＰＵ２４への割込み要求信号８３を形成してＣＰＵ２４に出力する。これ以外の構成は、実施の形態１と同じである。
【００７３】
ＲＡＭ１１のリード時の動作を説明する。ＲＡＭアクセス専用命令によるＲＡＭ１１へのリード時、正常アクセスであれば、図１０に示すように、ＢＩＵ２５から出力されるＲＡＭＡＲ信号３８が“Ｈ”となり、ＲＡＭアドレスラッチイネーブル信号ＲＡＭＡＬＥの“Ｌ”期間にアドレスがラッチされ、ラッチされたアドレスで指定されるデータが読出され、この結果、バスドライバのイネーブル信号ＲＡＭＢＵＦＦＯＮが破線に示したように“Ｈ”となり、データがデータバスに出力される。なお、ＲＡＭＡＲＤ信号は、ＲＡＭＡＲ信号３８を２クロック周期分に伸張した信号であり、ＲＤ信号はリード信号である。
【００７４】
一方、ＲＡＭ領域を超えた領域をアクセスした場合は、図１０に実線で示したように、バスドライバのイネーブル信号ＲＡＭＢＵＦＦＯＮが“Ｈ”とならず、またデータがデータバスに出力されない。このときには、ＲＡＭ１１は、ＲＡＭアクセス異常としてＲＡＭＩＲＱＢ信号８２を“Ｌ”として、ＩＣＵ８０に対してＲＡＭからの割込み要求があることを通知する。
【００７５】
ライト時も、リード時と同様にＲＡＭＡＲ信号３８が“Ｈ”であるが、実際にブロック内のセルを選択して書きこまれなかった場合に、ＲＡＭＩＲＱＢ信号８２を“Ｈ”としてＩＣＵ８０に対してＲＡＭからの割込み要求があることを通知する。
【００７６】
ＲＯＭアクセス命令によるＲＯＭ１２に対するアクセスについても同様であり、ＲＯＭ１２は、ＲＯＭ領域を超えた領域をアクセスした場合は、割込み要求信号をＩＣＵ８０に出力する。ＰＤＣＲ１０、外部Ｉ／Ｆ９の場合も同様である。
【００７７】
これらの割込み要求信号がＩＣＵ８０に入力されると、ＩＣＵ８０は、ＣＰＵ２４に割込み要求信号８３を出力する。
【００７８】
以上のように構成することにより、ＲＡＭまたはＲＯＭ領域をアクセスする命令によりアクセスしたにもかかわらず、実際にＲＡＭまたはＲＯＭのセルがアクセスされなかったときＣＰＵに割込み処理を行なうことができる。これにより、アクセス領域オーバーの検知が可能となり、異常な動作を未然に防ぐことが可能になる。なお、この方法はメモリ容量の違いによるＢＩＵ、ＩＣＵの変更は不要であり、メモリ容量による品種展開も容易であるという特徴もある。
【００７９】
実施の形態４．
つぎに、図１１を用いてこの発明の実施の形態４について説明する。図１１は実施の形態４のマイクロコンピュータの一部の機能ブロック図を示している。この実施の形態４においては、ＲＯＭへの無効なライトアクセスに対して割込み処理を発生させるようにしている。
【００８０】
ＲＯＭ１２から出力される割込み要求信号ＲＯＭＩＲＱＢ９１が、ＩＣＵ８０に入力されている。ＩＣＵ８０は、割込み要求信号（ＲＯＭＩＲＱＢ信号）９１に基づきＣＰＵ２４への割込み要求信号８２を形成してＣＰＵ２４に出力する。これ以外の構成は、実施の形態１と同じである。
【００８１】
この場合、ＲＯＭ１２は、フラッシュメモリなどの書き換え可能なメモリが使用されているとする。この場合は、ＲＯＭ領域へのアクセスなので、ＢＩＵ２５から出力されるＲＯＭＡＲ信号３９が“Ｈ”となる。ＲＯＭの書換えモード時でない場合に、ＲＯＭ１２へのライト動作が発生すると、ＲＯＭ１２は、ＲＯＭＩＲＱＢ信号９１を“Ｈ”にして、ＩＣＵ８０に出力する。ＲＯＭＩＲＱＢ信号９１がＩＣＵ８０に入力されると、ＩＣＵ８０は、ＣＰＵ２４に割込み要求信号８２を出力する。
【００８２】
以上のように構成することにより、ＲＯＭへの無効なライトアクセスに対して割込み処理を行なうことができ、これにより異常動作をより効果的に検出することが可能になる。
【００８３】
【発明の効果】
以上説明したように、この発明によれば、ＣＰＵからの命令のオペコードにエリアセレクト情報を持たせるすなわちアクセス領域毎に専用命令を設け、このエリアセレクト情報をバスインタフェース装置内に設けたデコード手段によってデコードして各周辺デバイスに出力するようにしているので、バスインタフェース装置内に配するデコード手段の構成を簡単化することができるとともに、各周辺デバイスのアドレス空間を別空間とすることが可能となる。したがって、マイコン応用エンジニアは、各アクセス領域毎のメモリマップだけを考慮すればよくなり、１チップマイクロコンピュータで頻繁に行なわれるメモリ容量による品種展開が容易になる。また、バスインタフェース装置内に配するデコード手段の構成が単純化されたので、出荷検査時においても、各領域間の境界チェック（各領域間のつなぎ目検査）が不要となり、検査時間の短縮も図れる。
【００８４】
つぎの発明によれば、アクセス領域毎に別アドレス空間をもつマイクロコンピュータとして動作させるための第１のデコード回路と、メモリマップトＩ／Ｏ方式のマイクロコンピュータとして動作させるための第２のデコード回路とを用意し、これら第１のデコード信号および第２のデコード信号の何れかを選択して前記複数の周辺デバイスに出力するようにしているので、１つの１チップマイクロコンピュータを、アクセス領域毎に別アドレス空間をもつマイクロコンピュータおよびメモリマップトＩ／Ｏ方式のマイクロコンピュータとして動作させることが可能となる。
【００８５】
つぎの発明によれば、アクセス領域の開始アドレスおよび終了アドレスをレジスタに設定できるようにしているので、アプリケーションに応じて柔軟にメモリマップを変更することができるようになり、最適なアドレッシングモードを利用可能となる。
【００８６】
つぎの発明によれば、複数の周辺デバイスは、自身のアクセス領域以外のアドレスが指定されると、割込みを発生させるようにしているので、アクセス領域オーバーの検知が可能となり、異常な動作を未然に防ぐことが可能になる。
【００８７】
つぎの発明によれば、ＲＯＭにライトアクセスが入力されると、割込みを発生させるようにしているので、異常動作を効果的に検出することが可能になる。
【図面の簡単な説明】
【図１】この発明の実施の形態１のマイクロコンピュータを示すブロック図である。
【図２】ＣＰＵの命令のフォーマットを示す図である。
【図３】実施の形態１のＢＩＵ内のアクセス領域デコード回路の内部回路構成を示す図である。
【図４】実施の形態１のＣＰＵのメモリマップを示す図である。
【図５】この発明の実施の形態２のマイクロコンピュータを示すブロック図である。
【図６】実施の形態２のＢＩＵ内のデコード回路の内部回路構成を示す図である。
【図７】実施の形態２のＣＰＵのメモリマップを示す図である。
【図８】実施の形態２のＢＩＵ内のＰＤＣＲ領域デコーダ、ＲＡＭ領域デコーダ、ＲＯＭ領域デコーダの内部回路構成を示す図である。
【図９】この発明の実施の形態３のマイクロコンピュータの一部を示すブロック図である。
【図１０】実施の形態３を説明するためのタイムチャートである。
【図１１】この発明の実施の形態４のマイクロコンピュータの一部を示すブロック図である。
【図１２】メモリマップトＩ／Ｏ方式を用いた従来技術を示す図である。
【図１３】メモリマップトＩ／Ｏ方式のＣＰＵのメモリマップを示す図である。
【符号の説明】
３　ＰＤＣＲ領域、４　外部領域、５　内部ＲＡＭ領域、６　内部ＲＯＭ領域、９　外部Ｉ／Ｆ（周辺デバイス）、１０　ＰＤＣＲ（周辺デバイス）、１１　ＲＡＭ（周辺デバイス）、１２　ＲＯＭ（周辺デバイス）、１３　バス、２０　外部領域、２１　ＰＤＣＲ領域、２２　内部ＲＡＭ領域、２３　内部ＲＯＭ領域、２４　ＣＰＵ、２５　ＢＩＵ、２６　エリアセレクト信号線（ＡＳビット）、２７　オペコード、２８　オペランド、４０　アクセス領域デコード回路（デコード回路）、５０　ＢＩＵ、５３　ＰＤＣＲ領域デコーダ、５４　ＲＡＭ領域デコーダ、５５　ＲＯＭ領域デコーダ、５６　外部領域デコーダ、６０　デコード回路、７０　領域開始アドレスレジスタ、７１　領域終了アドレスレジスタ、７２　比較器、７３　比較器。
【図１】
2004021422.tif 000003
【図２】
2004021422.tif 000004
【図３】
2004021422.tif 000005
【図４】
2004021422.tif 000006
【図５】
2004021422.tif 000007
【図６】
2004021422.tif 000008
【図７】
2004021422.tif 000009
【図８】
2004021422.tif 000010
【図９】
2004021422.tif 000011
【図１０】
2004021422.tif 000012
【図１１】
2004021422.tif 000013
【図１２】
2004021422.tif 000014
【図１３】
2004021422.tif 000015