(57)【要約】【課題】新たなインタフェース仕様に対応することが可能なマイクロコンピュータを提供する。【解決手段】バスコントローラ３０は、固定バス制御部３４と、可変バス制御部３５とを含む。ＣＰＵ１０は、固定バス制御部３４を介して内部ＲＯＭ５０にアクセスし、可変バス制御論理情報を読み出して、プログラム可能な可変バス制御論理部３５にマッピングする。そして、ＣＰＵ１０は、可変バス制御論理部３５を介して外部バス６２と接続された外部メモリに対してアクセスする。【選択図】図１
2010282284.tif 000002
【特許請求の範囲】
【請求項１】
制御部と、
構築データを記憶する内部メモリと、
前記内部メモリと接続された内部バスと、
バスコントローラと、
外部バスインタフェースとを備え、
前記バスコントローラは、
前記内部バスを介して前記内部メモリをアクセスするバス制御部と、
プログラム可能な論理部とを含み、
前記制御部は、前記内部メモリに記憶された構築データを読み出して、前記構築データに基づいて、前記プログラム可能な論理部上に、前記外部バスインタフェースを介して接続される外部メモリをアクセスするためのバス制御機能を構築する、マイクロコンピュータ。
【請求項２】
前記内部メモリは、ＲＡＭに相当する、請求項１記載のマイクロコンピュータ。
【請求項３】
前記制御部は、リセット処理後に、前記内部メモリに記憶された構築データを読み出して、前記バス制御機能を構築する、請求項１記載のマイクロコンピュータ。
【請求項４】
前記内部メモリは、前記外部バスインタフェースを介して接続される第１および第２の外部メモリにそれぞれ対応して設けられ、対応する外部メモリをアクセスするためのバス制御機能を前記論理部上に構築するための第１および第２の構築データを記憶する、請求項１記載のマイクロコンピュータ。
【請求項５】
前記バスコントローラは、アドレスデコーダをさらに含み、
前記アドレスデコーダは、前記外部バスインタフェースを介して接続される第１および第２の外部メモリの一方をアクセスするアドレス情報の入力を受けて、デコード結果に基づく切り替え信号を生成し、
前記制御部は、前記切り替え信号に従って、前期内部メモリから前記第１および第２の構築データの一方を読み出して、前記論理部上に構築するバス制御機能を切り替える、請求項４記載のマイクロコンピュータ。
【請求項６】
前記プログラム可能な周辺機能論理部を含む周辺回路をさらに備え、
前記内部メモリは、周辺機能を構築するための周辺機能構築データを記憶し、
前記制御部は、前記内部メモリに記憶された周辺機能構築データを読み出して、前記周辺機能構築データに基づいて、前記プログラム可能な周辺機能論理部上に、前記周辺機能を構築する、請求項１記載のマイクロコンピュータ。
【請求項７】
制御部と、
構築データを記憶する内部メモリと、
前記内部メモリと接続された内部バスと、
バスコントローラと、
外部バスインタフェースとを備え、
前記バスコントローラは、
前記内部バスを介して前記内部メモリをアクセスするバス制御部と、
プログラム可能な論理部と、
専用メモリと、
前記プログラム可能な論理部上にバス制御機能を構築するコンフィグレーション制御部とを含み、
前記制御部は、前記内部メモリに記憶された構築データを読み出して、前記専用メモリに格納し、
前記コンフィグレーション制御部は、前記専用メモリに格納された前記構築データに基づいて、前記外部バスインタフェースを介して接続される外部メモリをアクセスするためのバス制御機能を構築する、マイクロコンピュータ。
【請求項８】
前記論理部は、複数の回路情報保持手段を含み、
前記複数の回路情報保持手段は、前記専用メモリの一部を用いて構成される、請求項７記載のマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路であるマイクロコンピュータに係り、特にバス制御に関するものである。
【背景技術】
【０００２】
半導体集積回路であるマイクロコンピュータは、機器制御用途に広く用いられる。また、マイクロコンピュータに装着されるメモリは、よりメモリ容量の大きいものやメモリアクセスが高速にできるものなど様々な種類がある。例えば、メモリの種類として、ＳＲＡＭ（Static Random Access Memory）や、フラッシュメモリ、ＤＲＡＭ（Dynamic Random Access Memory）等が挙げられる。
【０００３】
これらがバスに接続された場合におけるバス制御には、各メモリにおける制御信号、アドレス、あるいはアクセス時間等が異なるために、接続されるメモリに応じたインタフェース仕様が求められる。
【０００４】
特に、新たな種類のメモリが提供された場合には、新たなインタフェース仕様が求められることになる。
【０００５】
これに対応するために、マイクロコンピュータのアドレス空間を複数のエリアに分割し、エリア毎にインタフェースを選択可能とすることが可能である。
【０００６】
具体的には、バス制御として複数のインタフェース仕様を実装する。これは、ステートマシンなどとして実装される。
【０００７】
そして、バスマスタとなる例えばＣＰＵから出力されるアドレスと、ユーザの設定とによってどのステート遷移をとるかを選択することになる。
【０００８】
実装するインタフェースが増加すると、ステートマシン等の論理が複雑になり、開発期間が長くなるという問題がある。
【０００９】
また、一般的に、ｎ個のインタフェースを別々に開発するよりも、ｎ個のインタフェースを全て実装した１つの論理を開発する方が、非常に複雑になり易い。
【００１０】
また、アドレス空間の各エリアには、通常１種類のインタフェースを設定するため、複数のインタフェース仕様を実装していても、実際には使われないインタフェースも考えられるため無駄があるという問題がある。
【００１１】
また、１つのインタフェースに対しても、動作周波数に応じて、最適な実装形態が異なる場合がある。例えば、動作周波数が高ければ、レイテンシよりもＦＦ（Flip Flop）間の論理段数を小さくすることが必要になる。これを動作周波数が低い領域で実行すると、レイテンシが増加する影響が相対的に大きくなる。
【００１２】
これらに鑑みて、例えば、プログラム可能なＦＰＧＡ（Field Programmable Gate Array）あるいは、ＰＬＤ（Programmable Logic Array）を用いて新たなインタフェース仕様に対応することも考えられる。
【００１３】
例えば、特開２００４−５６７１６号公報においては、ＦＰＧＡあるいは、ＰＬＤがチップに組み込まれた構成が開示されており、内蔵されたフラッシュメモリからコンフィグレーションデータを読み出して、ＦＰＧＡあるいはＰＬＤに論理回路を構築する方式が開示されている。
【００１４】
しかしながら、特開２００４−５６７１６号公報においては、フラッシュメモリに格納されたコンフィグレーションデータをコンフィグ回路が読み出してプログラマブルロジック回路に転送することにより、論理回路を構築する方式が示されているが、外付けのメモリに対して、新たなインタフェース仕様を提供する方式については開示されていない。
【００１５】
また、特開平６−７５８４９号公報においては、外付けのメモリの種類を指示する判断信号に応じて、内部のプログラマブル・ロジックアレイに対応するメモリの制御回路を実装する論理を決めることが開示されている。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】特開２００４−５６７１６号公報
【特許文献２】特開平６−７５８４９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１７】
しかしながら、特開平６−７５８４９号公報においては、パワーオン後、すなわち、プログラマブル・ロジックアレイが初期化された状態のときに、ＭＰＵ（Micro Processing Unit）により特定端子から入力されたコンフィグレーションデータをバスを介して転送するとの記載があるが、内部のプログラマブル・ロジックアレイを構築するデータが格納されているプログラムＲＯＭにアクセスするための手段が開示されていない。
【００１８】
すなわち、最初の初期化の状態において、プログラマブル・ロジックアレイが構成されていないためプログラムＲＯＭを制御する制御回路が実際には別に必要となると考えられるが、どのような構成とするのが適切であるかについては何ら考慮されていない。
【００１９】
したがって、上記の文献には、新たなインタフェース仕様に対応することが可能なマイクロコンピュータについては開示されていない。
【００２０】
本発明は、上記のような問題を解決するためになされたものであって、新たなインタフェース仕様に対応することが可能なマイクロコンピュータを提供することを目的とする。
【課題を解決するための手段】
【００２１】
本発明の一実施例に従うマイクロコンピュータは、制御部と、構築データを記憶する内部メモリと、内部メモリと接続された内部バスと、バスコントローラと、外部バスインタフェースとを備える。バスコントローラは、内部バスを介して内部メモリをアクセスするバス制御部と、プログラム可能な論理部とを含む。制御部は、内部メモリに記憶された構築データを読み出して、構築データに基づいて、プログラム可能な論理部上に、外部バスインタフェースを介して接続される外部メモリをアクセスするためのバス制御機能を構築する。
【発明の効果】
【００２２】
本発明の一実施例によれば、マイクロコンピュータは、内部メモリをアクセスするバス制御部により、構築データを読み出して、プログラム可能な論理部上に外部メモリをアクセスするためのバス制御機能を構築するため新たなインタフェース仕様に対応することができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の実施の形態１に従うマイクロコンピュータ１等の概略構成について説明する図である。
【図２】マイクロコンピュータ１のアドレス空間について説明する図である。
【図３】ＰＬＤ（Programmable Logic Device）１００の構成について説明する図である。
【図４】図３のＬＵＴアレイ１２０のアーキテクチャの具体例について説明する図である。
【図５】ＬＵＴ論理ユニット１２１について説明する図である。
【図６】外部バスインタフェースのＳＲＡＭの制御タイミングについて説明する図である。
【図７】外部バスインタフェースのＳＤＲＡＭの制御タイミングについて説明する図である。
【図８】ＳＤＲＡＭの状態遷移図について説明する図である。
【図９】本発明の実施の形態に従う電源投入時のバスコントローラ３０の設定について説明する図である。
【図１０】本発明の実施の形態２に従うマイクロコンピュータ１＃等の概略構成について説明する図である。
【図１１】可変バス制御部の切り替え処理について説明する図である。
【図１２】本発明の実施の形態３に従うマイクロコンピュータ１ａの概略構成について説明する図である。
【図１３】本発明の実施の形態４に従うマイクロコンピュータ２の概略構成について説明する図である。
【図１４】本発明の実施の形態４に従うバスコントローラの処理について説明する図である。
【図１５】本発明の実施の形態４に従う別のマイクロコンピュータ２＃の概略構成について説明する図である。
【図１６】専用ＲＡＭを可変バス制御情報用の領域と、コンフィグレーションメモリ用の領域とに分けて用いる場合について説明する図である。
【図１７】本発明の実施の形態５に従うマイクロコンピュータ３の概略構成について説明する図である。
【発明を実施するための形態】
【００２４】
以下において、本発明の実施の形態について図面を参照しながら詳細に説明する。なお図中における同一符号は、同一または相当部分を示すものとする。
【００２５】
（実施の形態１）
図１を用いて、本発明の実施の形態１に従うマイクロコンピュータ１等の概略構成について説明する。
【００２６】
図１を参照して、本発明の実施の形態に従うマイクロコンピュータ１は、ＣＰＵ（Central Processing Unit）１０と、内部ＣＰＵバス１２と、内部周辺バス１４と、内部メモリバス１６と、ＤＭＡＣ（Direct Memory Access Controller）１５と、周辺機能２０と、バスコントローラ３０と、ＲＯＭ（Read-Only Memory）５０と、ＲＡＭ（Random Access Memory）５５と、外部バスインタフェース６０とを含む。
【００２７】
また、ＣＰＵ１０は、内部ＣＰＵバス１２を介してＤＭＡＣ１５およびバスコントローラ３０と接続され、マイクロコンピュータ１全体を管理する。
【００２８】
ＤＭＡＣ１５は、ＣＰＵ１０からのＤＭＡ転送要求に応じてマイクロコンピュータ１内のＤＭＡ転送を制御する。
【００２９】
バスコントローラ３０は、接続されている内部ＣＰＵバス１２、内部周辺バス１４、内部メモリバス１６および外部バスインタフェース６０を介する外部バス６２を管理する。各バスは、アドレスバス線、データバス線、データ制御信号線等の少なくとも１つを含む。
【００３０】
ＲＯＭ５０は、ブートＲＯＭであり起動用のプログラム等が格納されている。また、ＲＡＭ５５は、ＣＰＵ１０のワーク領域として用いられる。
【００３１】
外部バスインタフェース６０は、外部バス６２と接続され、バスコントローラ３０と外部バス６２と接続されたメモリとの間のデータの授受を実行する。
【００３２】
バスコントローラ３０は、バス管理部４０と、バス制御部３１とを含む。
バス管理部４０は、内部ＣＰＵバスＩ／Ｆ４２と、内部周辺バスＩ／Ｆ４４と、調停制御部４６とを含む。
【００３３】
内部ＣＰＵバスＩ／Ｆ４２は、内部ＣＰＵバス１２と接続され、内部ＣＰＵバス１２を介してＣＰＵ１０との間のデータの授受を実行する。
【００３４】
内部周辺バスＩ／Ｆ４４は、内部周辺バス１４と接続され、内部周辺バス１４を介して周辺機能２０あるいはＤＭＡＣ１５との間のデータの授受を実行する。
【００３５】
調停制御部４６は、バスの使用状態を監視し、内部ＣＰＵバス１２、内部周辺バス１４、内部メモリバス１６、外部バス６２に関して、どのデバイスにバスの使用権を与えるのかを決定し、バス使用権の調停を行っている。
【００３６】
バス制御部３１は、アドレスデコーダ３２と、固定バス制御部３４と、可変バス制御部３５と、ロック機構３８と、マルチプレクサ３６とを含む。
【００３７】
アドレスデコーダ３２は、例えばＣＰＵ１０あるいは、ＤＭＡＣ１５からのアドレス指示に対してデコード処理して、後述する固定バス制御部３４あるいは可変バス制御部３５を起動する。
【００３８】
固定バス制御部３４は、マルチプレクサ３６を介して内部メモリバス１６と接続されたＲＯＭ５０あるいは、ＲＡＭ５５を制御する。
【００３９】
一方、可変バス制御部３５は、マルチプレクサ３６および外部バスインタフェース６０を介して、外部バス６２と接続されたＦＬＡＳＨ／ＲＯＭ７０、ＳＲＡＭ（Static Random Access Memory）８０、あるいはＳＤＲＡＭ（Synchronous DRAM）９０の少なくとも１つを制御する。
【００４０】
マルチプレクサ３６は、固定バス制御部３４と内部メモリバス１６との接続あるいは、可変バス制御部３５と外部バスインタフェース６０との接続を切り替える。マルチプレクサ３６は、アドレスデコーダ３２のデコード処理した処理結果に基づいて上記接続を切り替える。
【００４１】
本実施の形態においては、可変バス制御部３５は、プログラム可能なＰＬＤ（Programmable Logic Device）で構成されているものとする。なお、本例においては、ＰＬＤを用いた構成について説明するが、ＰＬＤに限られず、ＦＰＧＡ（Field Programmable Gate Array）等を用いることも可能である。
【００４２】
図２を用いて、マイクロコンピュータ１のアドレス空間について説明する。
図２（Ａ）を参照して、ここでは、４ＧＢのアドレス空間（Ｈ’００００００００〜Ｈ’ＦＦＦＦＦＦＦＦ）が設けられている場合が示されている。このアドレス空間は、バスコントローラにより制御されている。
【００４３】
エリア０の一部の領域には、内部ＲＯＭが割り当てられ、エリア１が可変バス制御用に割り当てられている。
【００４４】
また、エリア２の一部の領域には、内部ＲＡＭおよび内部Ｉ／Ｏレジスタが割り当てられている。内部ＲＯＭ、内部ＲＡＭおよび内部Ｉ／Ｏレジスタのアドレスは、予め定められているものとする。
【００４５】
図２（Ｂ）を参照して、ここでは、上記のアドレス空間のエリア１をさらに２つに分割した場合が示されている。具体的には、エリア１ａ，１ｂとに分けられた場合が示されている。例えば、エリア１ａ，１ｂに対応して、外部バスと接続される２つのメモリデバイスをそれぞれ割り当てるようにすることが可能である。
【００４６】
図３を用いて、ＰＬＤ（Programmable Logic Device）１００の構成について説明する。
【００４７】
図３を参照して、ＰＬＤ１００は、ＬＵＴ（Look Up Table）アレイ１２０およびＦＦ（Flip Flop）クラスタ１３０からなるブロック１１０をインターコネクト部１４０を介して互いに接続した構成からなる。
【００４８】
インターコネクト部１４０は、ＰＬＤ１００外部とブロック１１０との間およびブロック１１０同士の間に介在し、これらの間で信号を入出力させるものである。
【００４９】
図４を用いて、図３のＬＵＴアレイ１２０のアーキテクチャの具体例について説明する。
【００５０】
図４を参照して、ＬＵＴアレイ１２０は複数個のＬＵＴ論理ユニット１２１を２次元アレイとして行列状に高密度に集積したものである。
【００５１】
図３において、ＦＦクラスタ１３０は、複数個のＦＦ論理ユニットを１次元アレイとして列状に配置したものである。
【００５２】
図５を用いて、ＬＵＴ論理ユニット１２１について説明する。
図５を参照して、ＬＵＴ論理ユニット１２１は、４ｂｉｔのコンフィグレーションメモリと４ｔｏ１マルチプレクサとからなる２入力１出力のＬＵＴとなっている。
【００５３】
ＬＵＴは、この４ｂｉｔのコンフィグレーションメモリの値を設定することにより、論理関数を設定できる。
【００５４】
そして、４ｂｉｔのコンフィグレーションメモリ（ＭＥＭ１〜ＭＥＭ４）の設定値に応じた論理関数に基づいて、入力値Ａ，Ｂに対する出力値Ｙが決定される。
【００５５】
ＬＵＴアレイ１２０では、ＬＵＴ論理ユニット１２１間には配線スイッチ（図示しない）が配置され、ＬＵＴ論理ユニット１２１同士を接続している。ＬＵＴ論理ユニット１２１間の接続は、この配線スイッチで切り替えられる。この配線スイッチとしては、例えばＰＭＯＳやＮＭＯＳ等を用いて構成し、ゲート電圧を制御することによりＬＵＴ論理ユニット１２１間を導通または遮断すればよい。
【００５６】
このように、ＬＵＴ論理ユニット１２１および配線スイッチは、内蔵するコンフィグレーションメモリを変更することにより論理や接続を変更できるので、ＬＳＩ製造後に回路の再構成が可能となる。
【００５７】
そして、本実施の形態においては、上記ＰＬＤのコンフィグレーションメモリに後述する可変バス制御論理情報を格納（マッピング）することにより可変バス制御部を構築するものとする。
【００５８】
次に、外部バスと接続されるメモリの制御タイミングについて説明する。
図６を用いて、外部バスインタフェースのＳＲＡＭの制御タイミングについて説明する。
【００５９】
図６（Ａ）を参照して、ここでは、外部メモリがＳＲＡＭの場合のリードの場合が示されている。
【００６０】
ここでは、バスクロックＳＤφが示されており、２周期で１バスサイクルであるものとする。
【００６１】
具体的には、外部バス６２に接続された外部メモリに対する読出アドレスＡｍが制御信号と合わせてバスコントローラ３０に対して入力される。アドレスＡｍは、アドレスデコーダ３２においてデコード処理される。そして、デコード結果に基づいて、対応する外部メモリに割り当てられたエリア、例えばエリア１に対応したチップセレクト信号ＣＳ＿ｎ、リードイネーブル信号ＲＤ＿ｎがアサートされる。ＳＲＡＭからの読出データＤ１５−Ｄ８／Ｄ７−Ｄ０は、Ｔ２サイクルに有効となる。
【００６２】
図６（Ｂ）を参照して、ここでは、外部メモリがＳＲＡＭの場合のライトの場合が示されている。
【００６３】
ここでは、リードの場合と同様に、外部バス６２に接続された外部メモリに対する書込アドレスＡｍが制御信号と合わせてバスコントローラ３０に対して入力される。アドレスＡｍは、アドレスデコーダ３２においてデコード処理される。そして、デコード結果に基づいて、対応する外部メモリに割り当てられたエリア、例えばエリア１に対応したチップセレクト信号ＣＳ＿ｎ、ライトイネーブル信号ＷＲ＿ｎがアサートされる。ＳＲＡＭへの書込データＤ１５−Ｄ８／Ｄ７−Ｄ０は、Ｔ１サイクルの立ち下がりから有効となる。
【００６４】
図７を用いて、外部バスインタフェースのＳＤＲＡＭの制御タイミングについて説明する。
【００６５】
図７（Ａ）を参照して、ここでは、外部メモリがＳＤＲＡＭの場合のリードの場合が示されている。
【００６６】
ここでは、バスクロックＳＤφが示されており、ＳＤＲＡＭは、バスクロックに同期して動作する。
【００６７】
具体的には、Ｔｄ１サイクルにおいて、外部バス６２に接続された外部メモリに対するロウアドレスが制御信号と合わせてバスコントローラ３０に対して入力される。具体的には、ロウアドレスストローブ信号ＲＡＳ＿ｎがアサートされ、その間にロウアドレスが取り込まれる。また、その際に、リード／ライト指定信号ＷＥ＿ｎがアサートされる。また、コラムアドレスストローブ信号ＣＡＳ＿ｎは、ネゲートされている。
【００６８】
このＲＡＳ、ＣＡＳ、ＷＥの組合せに基づいてコマンドが発行され、全バンクプリチャージを実行するＰＡＬＬコマンドが発行される。
【００６９】
そして、次に、Ｔｄ２サイクルにおいて、ロウアドレスストローブ信号ＲＡＳ＿ｎがアサートされ、また、コラムアドレスストローブ信号ＣＡＳ＿ｎおよびリード／ライト指定信号ＷＥ＿ｎは、ネゲートである場合に、アクティブコマンドＡＣＴＶが発行される。
【００７０】
そして、次に、Ｔｄ３サイクルは、ＮＯＰ状態である。
次に、Ｔｄ４サイクルにおいて、コラムアドレスストローブ信号ＣＡＳ＿ｎがアサートされる。その間に、コラムアドレスが取り込まれる。また、リード／ライト指定信号ＷＥ＿ｎがアサートされる。
【００７１】
このＲＡＳ、ＣＡＳ、ＷＥの組合せに基づいて、ライトコマンドＷＲＩＴＥが発行される。
【００７２】
そして、ＳＤＲＡＭへの書込データＤ１５−Ｄ８／Ｄ７−Ｄ０は、Ｔｄ４サイクルに有効となる。
【００７３】
図８を用いて、ＳＤＲＡＭの状態遷移図について説明する。
図８を参照して、リフレッシュ状態ＳＴ２、あるいは、パワーオン状態ＳＴ４となった後、全バンクプリチャージコマンドが発行される（状態ＳＴ６）。これにより、例えば、バンクＡ，Ｂの２つのバンクがＳＤＲＡＭに設けられている場合に、両方のバンクがプリチャージされる。
【００７４】
そして、次に、バンクＡのアクティブコマンドが発行される（状態ＳＴ８）。
そして、バンクＡのリード／ライトコマンドが発行される（状態ＳＴ１０）。これにより、バンクＡのリードあるいは、ライト動作が実行される。
【００７５】
そして、次に、ページ変更の処理が求められた場合には、バンクＡのプリチャージコマンドが発行される（状態ＳＴ１２）。
【００７６】
そして、バンクＡのアクティブコマンドが発行される（状態ＳＴ１４）。そして、再び、状態ＳＴ１０に戻る。
【００７７】
一方、状態ＳＴ１０において、バンク変更の処理が求められた場合には、次に、バンクＢのアクティブコマンドが発行される（状態ＳＴ１６）。
【００７８】
そして、バンクＢのリード／ライトコマンドが発行される（状態ＳＴ１８）。これにより、バンクＢのリードあるいは、ライト動作が実行される。
【００７９】
そして、次に、ページ変更の処理が求められた場合には、バンクＢのプリチャージコマンドが発行する（状態ＳＴ２０）。
【００８０】
そして、再び、状態ＳＴ１６に戻る。
一方、状態ＳＴ１８において、バンク変更の処理が求められた場合には、状態ＳＴ１２に進む。以降の処理については、同様である。
【００８１】
したがって、図６〜図８に示されるようにＳＤＲＡＭに対するアクセスは、ＳＲＡＭに対するアクセスと異なり、コマンドを用いたアクセスシーケンスが必要となる。
【００８２】
本発明の実施の形態１においては、ＲＯＭ５０あるいは、ＲＡＭ５５に用いられるＳＲＡＭのような簡単なアクセスシーケンスについては、固定バス制御部３４でアクセスするものとする。
【００８３】
一方、ＳＤＲＡＭのような複雑なプロトコル（アクセスシーケンス）が必要な外部メモリについては、可変バス制御部３５でアクセスするものとする。
【００８４】
図９を用いて、本発明の実施の形態に従う電源投入時のバスコントローラ３０の設定について説明する。
【００８５】
図９を参照して、まず、パワーオンリセットが有るかどうかを判断する（ステップＳ２）。具体的には、電源投入に従って、図示しないパワーオンリセット回路は、パワーオンリセット信号を出力する。ＣＰＵ１０は、当該信号を検知したかどうかを判断し、当該信号を検知した場合には、電源投入があったものと判断する。
【００８６】
そして、次に、ＣＰＵ１０は、リセット処理を実行する（ステップＳ４）。具体的には、初期値をリセットするとともに、バスの接続状況の確認等の初期化処理を実行する。
【００８７】
そして、次に、ＣＰＵ１０は、ブート処理を実行する（ステップＳ６）。具体的には、ＣＰＵ１０は、内部ＲＯＭに格納されているプログラムのデータ読出を実行する。具体的には、ＣＰＵ１０は、内部ＣＰＵバス１２を介して、バスコントローラ３０に対して図２で説明した予め設けられている内部ＲＯＭが格納されているエリア０のアドレスを指定する。バスコントローラ３０のアドレスデコーダ３２は、内部ＣＰＵバスＩ／Ｆ４２を介して入力されるアドレスをデコード処理する。そして、エリア０のアドレスであると判断した場合には、固定バス制御部３４を起動する。そして、固定バス制御部３４は、マルチプレクサ３６、内部メモリバス１６を介してＲＯＭ５０にアクセスする。
【００８８】
そして、バスコントローラ３０の固定バス制御部３４は、ＲＯＭ５０にアクセスして、ＲＯＭ５０に格納されている起動用のプログラム等を読み出す。
【００８９】
そして、次に、ＣＰＵ１０は、ＲＯＭ５０に可変バス制御論理情報が格納されているかどうかを判断する（ステップＳ８）。
【００９０】
そして、ＣＰＵ１０は、ＲＯＭ５０に可変バス制御論理情報が格納されていると判断した場合（ステップＳ８においてＹＥＳ）には、可変バス制御情報を設定する（ステップＳ１０）。
【００９１】
具体的には、ＣＰＵ１０は、ＲＯＭ５０に格納されている可変バス制御論理情報をＰＬＤのコンフィグレーションメモリにマッピングすることにより可変バス制御部３５を構築する。これにより、可変バス制御部３５を利用することが可能となる。例えば、一例として、ＲＯＭ５０に格納されている可変バス制御論理情報は、ＳＤＲＡＭ９０の制御機能に対応するものとする。そして、可変バス制御部３５は、可変バス制御論理情報のマッピングが完了したことをロック機構３８に通知する。
【００９２】
そして、ロック機構３８は、ロック信号を設定する（ステップＳ１１）。
当該ロック信号の設定により、可変バス制御部３５への可変バス論理情報の格納を禁止することができる。また、ロック機構３８からアドレスデコーダ３２にロック信号が設定されたことが通知される。アドレスデコーダ３２は、ロック機構３８から当該ロック信号の設定の通知を受けて、可変バス制御部３５を起動可能とする。なお、アドレスデコーダ３２は、ロック機構３８からロック信号の設定の通知を受けていない場合には、可変バス制御部３５へのマッピングが完了していないと判断されるため可変バス制御部３５の起動を抑制し、固定バス制御部３４のみ起動するようにしてもよいし、アドレスエラー等の例外処理の対象としてもよい。
【００９３】
そして、処理を終了する（エンド）。
ＲＯＭ５０の可変バス制御論理情報の格納は、予めチップ設計時に格納しておいても良いし、周辺機能に含まれるシリアルコミュニケーションインタフェース（ＳＣＩ）を介してたとえばＲＯＭライターを用いて外部からＲＯＭ５０に可変バス制御情報を書き込むようにしても良い。
【００９４】
例えば、外部バス６２と接続されたＳＤＲＡＭ９０にアクセスする場合について説明する。
【００９５】
ＣＰＵ１０は、内部ＣＰＵバス１２を介して、バスコントローラ３０に対して図２で説明したエリア１のアドレスを指定する。バスコントローラ３０のアドレスデコーダ３２は、内部ＣＰＵバスＩ／Ｆ４２を介して入力されるアドレスをデコード処理する。そして、エリア１のアドレスであると判断した場合には、可変バス制御部３５を起動する。なお、この際、アドレスデコーダ３２のデコード処理結果に基づいてマルチプレクサ３６は、可変バス制御部３５と外部バスインタフェース６０とに接続を切り替える。
【００９６】
そして、可変バス制御部３５は、マルチプレクサ３６、外部バスインタフェース６０、外部バス６２を介してＳＤＲＡＭ９０にアクセスする。
【００９７】
メモリの種類毎に、インタフェースを設ける構成の場合には、接続されるデバイス毎にインタフェースを用意する必要があり回路規模が大きくなる可能性がある。また、同一の機能をマージすることによりコントローラの回路規模を縮小することも考えられるが、外部メモリの構成がシステム／アプリケーションによって多様化すると、予め全てのデバイスに対応するように機能をマージすることは非常に難しく、複雑となる可能性があり、設計コストが余分にかかる可能性もある。
【００９８】
本願方式の如く、可変バス制御論理情報を用意して、可変バス制御部にマッピングする方式を採用することにより、回路規模を縮小することが可能となる。また、複雑なコントローラを設計する必要が無く、開発期間も縮小することが可能となる。
【００９９】
また、可変バス制御論理情報を格納することにより、外付けのメモリに対して新たなインタフェース仕様に対応することも可能である。
【０１００】
本例においては、一例として、可変バス制御論理情報に基づいてＰＬＤに構築された可変バス制御部３５は、外部バス６２と接続されたＳＤＲＡＭ９０にアクセス可能である場合について説明したが、特にＳＤＲＡＭ９０に限られず、同様に、ＦＬＡＳＨ／ＲＯＭ７０、ＳＲＡＭ８０に対しても同様に適用可能である。すなわち、ＦＬＡＳＨ／ＲＯＭ７０用の可変バス制御論理情報あるいは、ＳＤＲＡＭ９０用の可変バス制御論理情報をＲＯＭ５０にそれぞれ格納しておけばよい。
【０１０１】
（実施の形態２）
図１０を用いて、本発明の実施の形態２に従うマイクロコンピュータ１＃等の概略構成について説明する。
【０１０２】
図１０を参照して、本発明の実施の形態２に従うマイクロコンピュータ１＃は、マイクロコンピュータ１と比較して、内部ＲＯＭ５０において、２つの可変バス制御情報ＰＡ，ＰＢを格納している点が異なる。例えば、可変バス制御情報ＰＡに基づいてＰＬＤに構築された可変バス制御部３５は、外部バス６２と接続されたＦＬＡＳＨ／ＲＯＭ７０にアクセス可能であるものとする。また、例えば、可変バス制御部ＰＢに基づいてＰＬＤに構築された可変バス制御部３５は、外部バス６２と接続されたＳＤＲＡＭ９０にアクセス可能であるものとする。
【０１０３】
また、本例においては、一例として、図２（Ｂ）におけるエリア１ａがＦＬＡＳＨ／ＲＯＭ７０に対応する外部メモリとして割り当てられているものとする。また、図２（Ｂ）におけるエリア１ｂがＳＤＲＡＭ９０に対応する外部メモリとして割り当てられているものとする。
【０１０４】
図１１を用いて、可変バス制御部の切り替え処理について説明する。なお、最初に可変バス制御部３５に可変バス制御情報をマッピングする方式については、実施の形態１で説明したのと同様である。
【０１０５】
図１１を参照して、まず、外部メモリに対するアドレスをデコードする（ステップＳ２０）。具体的には、上述したように、バスコントローラ３０のアドレスデコーダ３２は、内部ＣＰＵバスＩ／Ｆ４２を介して入力されるアドレスをデコード処理する。
【０１０６】
そして、次に、アドレスデコーダ３２は、指定するエリアは、現在の可変バス制御論理で対応可能であるかどうかを判断する（ステップＳ２２）。例えば、エリア１ａのアドレスが指定されたと判断した場合には、現在の可変バス制御論理がエリア１ａに対応するものであるか否かを判断する。
【０１０７】
ステップＳ２２において、アドレスデコーダ３２は、指定するエリアは、現在の可変バス制御論理で対応可能であると判断した場合（ステップＳ２２においてＹＥＳ）には、転送を実行する（ステップＳ２４）。例えば、エリア１ａのアドレスが指定されたと判断した場合に、現在の可変バス制御論理がエリア１ａに対応するものであると判断した場合には、データ読出あるいはデータ書込に関するデータ転送処理を実行する。
【０１０８】
一方、ステップＳ２２において、アドレスデコーダ３２は、指定するエリアは、現在の可変バス制御論理で対応可能でないと判断した場合（ステップＳ２２においてＮＯ）には、次に現在の論理は、論理情報ＰＡであるか否かを判断する（ステップＳ２６）。
【０１０９】
そして、アドレスデコーダ３２は、現在の論理は、可変バス制御論理情報ＰＡであると判断した場合（ステップＳ２６においてＹＥＳ）には、可変バス制御論理情報ＰＡから可変バス制御論理情報ＰＢへの切り替え要求をＣＰＵ１０に出力する（ステップＳ２８）。
【０１１０】
一方、アドレスデコーダ３２は、現在の論理は、可変バス制御論理情報ＰＡでないと判断した場合（ステップＳ２６においてＮＯ）には、可変バス制御論理情報ＰＢから可変バス制御論理情報ＰＡへの切り替え要求をＣＰＵ１０に出力する（ステップＳ３０）。
【０１１１】
そして、次に、ＣＰＵ１０は、外部との間のデータ転送処理が完了したかどうかを判断する（ステップＳ３２）。外部との間でのデータ転送処理が完了する前に、可変バス制御部３５の機能を切り替えてしまうと前回の転送処理が停止し、処理が適切に終了しないからである。
【０１１２】
ステップＳ３２において、外部との間でのデータ転送処理が完了したと判断された場合（ステップＳ３２においてＹＥＳ）には、次に、ＣＰＵ１０は、ロックの解除を要求し、ロック機構３８はロックを解除する（ステップＳ３４）。
【０１１３】
具体的には、ロック機構３８は、可変バス制御部３５にロックが解除されたことを通知し、当該処理により、可変バス制御部３５への可変バス制御情報の格納が可能となる。また、ロック機構３８は、ロック信号が解除されたことをアドレスデコーダ３２に通知する。当該ロック信号の解除の通知を受けて、アドレスデコーダ３２は、可変バス制御部３５を起動不能とする。ロック信号の解除の通知を受けた場合には、可変バス制御部３５へのマッピングが完了していないと判断されるからである。
【０１１４】
そして、論理情報を転送する（ステップＳ３６）。
具体的には、上述したように、ＣＰＵ１０は、内部ＲＯＭに格納されているプログラムのデータ読出を実行する。具体的には、ＣＰＵ１０は、内部ＲＯＭ５０に格納されている可変バス制御情報ＰＡあるいは可変バス制御情報ＰＢを可変バス制御部３５にマッピングする。
【０１１５】
これにより、可変バス制御部３５を利用することが可能となる。例えば、一例として、可変バス制御論理情報ＰＡに基づいてＰＬＤに構築された可変バス制御部３５は、外部バス６２と接続されたＦＬＡＳＨ／ＲＯＭ７０にアクセス可能であるものとする。一方、可変バス制御論理情報ＰＢに基づいてＰＬＤに構築された可変バス制御部３５は、外部バス６２と接続されたＳＤＲＡＭ９０にアクセス可能であるものとする。
【０１１６】
そして、次に、ロック機構３８は、ロック信号を設定する（ステップＳ３８）。
当該ロック信号の設定により、可変バス制御部３５への可変バス論理情報の格納を禁止することができる。また、ロック機構３８からアドレスデコーダ３２にロック信号が設定されたことが通知される。アドレスデコーダ３２は、ロック機構３８から当該ロック信号の設定の通知を受けて、可変バス制御部３５を起動可能とする。
【０１１７】
そして、外部メモリに対するアドレスをデコードしたデコード結果に基づく、指定するエリアに対応するメモリのデータ読出あるいはデータ書込に関するデータ転送処理を実行する（ステップＳ４０）。
【０１１８】
例えば、エリア１ａのアドレスが指定されたと判断した場合に、現在の可変バス制御論理がエリア１ｂに対応するものである場合には、可変バス制御論理をエリア１ａに切り替えてデータ転送処理を実行する。また、逆にエリア１ｂのアドレスが指定されたと判断された場合に、現在の可変バス制御論理がエリア１ａに対応するものである場合には、可変バス制御論理をエリア１ｂに切り替えてデータ転送処理を実行する。
【０１１９】
そして、処理を終了する（エンド）。
当該方式により、ＰＬＤである可変バス制御部３５の機能を切り替えることにより、効率的に外部バスに接続された外部メモリを切り替えてアクセスすることが可能となる。
【０１２０】
（実施の形態３）
図１２を用いて、本発明の実施の形態３に従うマイクロコンピュータ１ａの概略構成について説明する。
【０１２１】
図１２を参照して、本発明の実施の形態３に従うマイクロコンピュータ１＃ａは、マイクロコンピュータ１と比較して、内部ＲＡＭ５５において、可変バス制御情報を格納している点が異なる。
【０１２２】
当該構成の如く、内部ＲＡＭ５５に可変バス制御情報を格納するようにすることも可能である。
【０１２３】
外部メモリの種類が複数あり、チップ開発時（ＲＯＭのデータ確定時）において、どの外部メモリを外部メモリとして用いるかが特定できない場合には、システム構築時に、可変バス制御情報を外部メモリあるいは周辺機能に含まれるシリアルコミュニケーションインタフェース（ＳＣＩ）を介して通信インタフェースにより内部ＲＡＭ５５に格納することも可能である。
【０１２４】
そして、内部ＲＡＭ５５に格納された可変バス制御情報に基づいて、上述したＰＬＤにマッピングすることにより、外部バスと接続された外部メモリに対してもアクセスすることが可能となる。すなわち、外付けのメモリに対して新たなインタフェース仕様に対応することが可能である。
【０１２５】
（実施の形態４）
図１３を用いて、本発明の実施の形態４に従うマイクロコンピュータ２の概略構成について説明する。
【０１２６】
図１３を参照して、本発明の実施の形態４に従うマイクロコンピュータ２は、マイクロコンピュータ１と比較して、バスコントローラ３０をバスコントローラ３０＃に置換した点が異なる。その他の点については同様であるのでその詳細な説明については繰り返さない。また、ロック機構３８の代わりに調停制御部４６からのロック解除の指示の入力を受けるロック機構３８＃を設けた点が異なる。
【０１２７】
バスコントローラ３０＃は、バスコントローラ３０と比較して、さらに、コンフィグレーション制御部３７と、専用ＲＡＭ３９とをさらに設けた点が異なる。
【０１２８】
コンフィグレーション制御部３７は、専用ＲＡＭ３９に格納されている可変制御論理情報を可変バス制御部３５にマッピングする。
【０１２９】
図１４を用いて、本発明の実施の形態４に従うバスコントローラの処理について説明する。
【０１３０】
図１４を参照して、まず、外部メモリに対するアドレスをデコードする（ステップＳ２０）。具体的には、上述したように、バスコントローラ３０のアドレスデコーダ３２は、内部ＣＰＵバスＩ／Ｆ４２を介して入力されるアドレスをデコード処理する。
【０１３１】
そして、次に、アドレスデコーダ３２は、指定するエリアは、現在の可変バス制御論理で対応可能であるかどうかを判断する（ステップＳ２２）。例えば、エリア１ａのアドレスが指定されたと判断した場合には、現在の可変バス制御論理がエリア１ａに対応するものであるか否かを判断する。
【０１３２】
ステップＳ２２において、アドレスデコーダ３２は、指定するエリアは、現在の可変バス制御論理で対応可能であると判断した場合（ステップＳ２２においてＹＥＳ）には、転送を実行する（ステップＳ２４）。例えば、エリア１ａのアドレスが指定されたと判断した場合に、現在の可変バス制御論理がエリア１ａに対応するものであると判断した場合には、データ読出あるいはデータ書込に関するデータ転送処理を実行する。
【０１３３】
一方、ステップＳ２２において、アドレスデコーダ３２は、指定するエリアは、現在の可変バス制御論理で対応可能でないと判断した場合（ステップＳ２２においてＮＯ）には、次に現在の論理は、論理情報ＰＡであるか否かを判断する（ステップＳ２６）。
【０１３４】
そして、アドレスデコーダ３２は、現在の論理は、論理情報ＰＡであると判断した場合（ステップＳ２６においてＹＥＳ）には、可変バス制御論理情報ＰＡから可変バス制御論理情報ＰＢへの切り替え要求を出力する（ステップＳ２８）。具体的には、アドレスデコーダ３２は、コンフィグレーション制御部３７に対して可変バス制御論理情報（ＰＡ→ＰＢ）の切り替え要求を出力する。
【０１３５】
一方、現在の論理は、論理情報ＰＡでないと判断された場合（ステップＳ２６においてＮＯ）には、可変バス制御論理情報ＰＢから可変バス制御論理情報ＰＡへの切り替え要求を出力する（ステップＳ３０）。具体的には、アドレスデコーダ３２は、コンフィグレーション制御部３７に対して可変バス制御論理情報（ＰＢ→ＰＡ）の切り替え要求を出力する。
【０１３６】
コンフィグレーション制御部３７は、可変バス制御論理情報の切り替え要求に対してウエイト要求をアドレスデコーダ３２に対して出力する（ステップＳ２９）。
【０１３７】
アドレスデコーダ３２は、ウエイト要求に従って処理を一時停止させるとともに、後続の可変バス制御部３５を使用する転送をウエイトさせる。
【０１３８】
そして、次に、調停制御部４６は、外部との間のデータ転送処理が完了したかどうかを判断する（ステップＳ３２）。外部との間でのデータ転送処理が完了する前に、可変バス制御部３５の機能を切り替えてしまうと前回の転送処理が停止し、処理が適切に終了しないからである。
【０１３９】
ステップＳ３２において、調整制御部４６は、外部との間でのデータ転送処理が完了したと判断した場合（ステップＳ３２においてＹＥＳ）には、次に、調整制御部４６は、ロックの解除を要求し、ロック機構３８は、ロックを解除する（ステップＳ３４）。具体的には、ロック機構３８は、可変バス制御部３５にロックが解除されたことを通知し、当該処理により、可変バス制御部３５への可変バス制御情報の格納が可能となる。また、可変バス制御部３５は、ロックが解除されたことをコンフィグレーション制御部３７に通知する。
【０１４０】
そして、論理情報を転送する（ステップＳ３６）。
具体的には、コンフィグレーション制御部３７は、ロックが解除されたことの通知を受けて、専用ＲＡＭ３９にアクセスし、専用ＲＡＭ３９に格納されているプログラムのデータ読出を実行する。具体的には、コンフィグレーション制御部３７は、専用ＲＡＭ３９に格納されている可変バス制御情報ＰＡあるいは可変バス制御情報ＰＢを可変バス制御部３５にマッピングする。
【０１４１】
これにより、可変バス制御部３５を利用することが可能となる。例えば、一例として、可変バス制御論理情報ＰＡに基づいてＰＬＤに構築された可変バス制御部３５は、外部バス６２と接続されたＦＬＡＳＨ／ＲＯＭ７０にアクセス可能であるものとする。一方、可変バス制御論理情報ＰＢに基づいてＰＬＤに構築された可変バス制御部３５は、外部バス６２と接続されたＳＤＲＡＭ９０にアクセス可能であるものとする。
【０１４２】
次に、ロック機構３８＃は、ロック信号を設定する（ステップＳ３８）。
当該ロック信号の設定により、可変バス制御部３５への可変バス論理情報の格納を禁止することができる。また、ロック機構３８からアドレスデコーダ３２にロック信号が設定されたことが通知される。アドレスデコーダ３２は、ロック機構３８から当該ロック信号の設定の通知を受けて、可変バス制御部３５を起動可能とする。
【０１４３】
そして、また、コンフィグレーション制御部３７は、ウエイト要求を解除する（ステップＳ３９）。
【０１４４】
具体的には、コンフィグレーション制御部３７は、アドレスデコーダ３２に対してウエイト要求の解除を通知する。
【０１４５】
そして、アドレスデコーダ３２は、ウエイト要求の解除の通知を受けて、外部メモリに対するアドレスをデコードしたデコード結果に基づく、指定するエリアに対応するメモリのデータ読出あるいはデータ書込に関するデータ転送処理を実行する（ステップＳ４０）。
【０１４６】
例えば、エリア１ａのアドレスが指定されたと判断した場合に、現在の可変バス制御論理がエリア１ｂに対応するものである場合には、可変バス制御論理をエリア１ａに切り替えて転送を実行する。また、逆にエリア１ｂのアドレスが指定されたと判断された場合に、現在の可変バス制御論理がエリア１ａに対応するものである場合には、可変バス制御論理をエリア１ｂに切り替えて転送を実行する。
【０１４７】
そして、終了する（エンド）。
当該方式により、ＰＬＤである可変バス制御部３５の機能を切り替えることにより、効率的に外部バスに接続された外部メモリを切り替えてアクセスすることが可能となるとともに、バスコントローラ３０＃内部でコンフィグレーション制御部３７により可変バス制御部３５の機能が切り替えられるためＣＰＵ１０を介することなく高速に機能の切り替えが可能となる。また、ＣＰＵ処理が割込みにより中断されることなく、ＣＰＵ処理とコンフィグレーション処理とを並列して実行することができシステム性能の低下を低減することが可能となる。
【０１４８】
なお、本例と同様に、実施の形態１に従う構成においても調整制御部４６において、外部との間でのデータ転送処理が完了したか否かを判断して、ＣＰＵの代わりにロック機構３８に対してロックの解除を要求するようにすることも可能である。
【０１４９】
また、専用ＲＡＭへの書込は、例えば、図９で説明した如く、ブート処理により、内部ＲＯＭに格納されているプログラムのデータ読出を実行する。具体的には、ＣＰＵ１０は、固定バス制御部３４を介して内部ＲＯＭ５０にアクセスし、そして、内部メモリバス１６を介して、可変バス制御情報ＰＡ，ＰＢを専用ＲＡＭ３９に書き込むことにより実現可能である。
【０１５０】
また、上述したように内部ＲＯＭに限られず、内部ＲＡＭから専用ＲＡＭに可変バス制御情報を転送するようにすることも可能である。
【０１５１】
あるいは、周辺機能に含まれるＳＣＩを介して通信インタフェースにより外部から専用ＲＡＭ３９に可変バス制御情報を書き込むようにすることも可能である。
【０１５２】
また、上記の図１３の例においては、可変バス制御論理情報の切り替え要求に対して、調停制御部４６において、バスの状態を監視する。そして、調停制御部４６において、外部との間でのデータ転送処理が完了したか否かを判断し、完了したと判断した場合には、ロック機構３８＃に対してロックの解除を要求する方式について説明した。
【０１５３】
一方で、ロック機構の機能をコンフィグレーション制御部に持たせることも可能である。
【０１５４】
図１５は、本発明の実施の形態４に従う別のマイクロコンピュータ２＃の概略構成について説明する。
【０１５５】
図１５を参照して、本発明の実施の形態４に従う別のマイクロコンピュータ２＃は、マイクロコンピュータ２と比較して、バスコントローラ３０＃をバスコントローラ３０＃ａに置換した点が異なる。その他の点については同様であるので、その詳細な説明については繰り返さない。具体的には、ロック機構の機能をコンフィグレーション制御部３７＃に持たせた点が異なる。その他の構成については同様であるのでその詳細な説明は繰り返さない。すなわち、コンフィグレーション制御部３７＃は、内部状態としてロックか否かを情報を保持しており、ロックが設定されている場合には、可変バス制御部３５への書込を禁止し、ロックが解除されている場合には、可変バス制御部３５への書込を可能とする。
【０１５６】
上記の図１４で説明したバスコントローラの処理についてはほぼ同様であるが、ステップＳ３２において、コンフィグレーション制御部３７＃が外部との間のデータ転送処理が完了したかどうかを判断する（ステップＳ３２）。そして、ステップＳ３２において、コンフィグレーション制御部３７＃は、外部との間でのデータ転送処理が完了したと判断した場合（ステップＳ３２においてＹＥＳ）には、次に、内部状態として有するロックを解除（ステップＳ３４）し、そして、論理情報を転送（ステップＳ３６）し、ロックを設定する（ステップＳ３８）。以降の処理については上述したのと同様である。
【０１５７】
本方式においても、バスコントローラ３０＃ａ内部でコンフィグレーション制御部３７＃により可変バス制御部３５の機能が切り替えられるためＣＰＵ１０を介することなく高速に機能の切り替えが可能となる。また、ロック機構の機能をコンフィグレーション制御部３７＃に持たせることにより構成が簡易となる。
【０１５８】
また、図１３および図１５に示される構成において、専用ＲＡＭ３９を可変バス制御部３５であるＰＬＤに近接して配置する構成を採用し、専用ＲＡＭの一部領域をＰＬＤにおける、上述した４ｂｉｔのコンフィグレーションメモリ（ＭＥＭ１〜ＭＥＭ４）の領域として用いることも可能である。
【０１５９】
図１６を用いて、専用ＲＡＭを可変バス制御情報用の領域と、コンフィグレーションメモリ用の領域とに分けて用いる場合について説明する。
【０１６０】
図１６に示される方式により、可変バス制御情報を格納する専用ＲＡＭの一部をコンフィグレーションメモリ用の領域として一体化して用いることにより回路面積を縮小することが可能である。
【０１６１】
また、専用ＲＡＭを例えば、デュアルポートＲＡＭで構成する。一方のポートでデータを読み出しながら、他方のポートを用いてデータの書込を実行することが可能であるため例えば、内部メモリバス１６と接続されたＲＯＭ５０から可変バス制御情報を専用ＲＡＭに転送する際においても高速な転送が可能となる。
【０１６２】
（実施の形態５）
図１７を用いて、本発明の実施の形態５に従うマイクロコンピュータ３の概略構成について説明する。
【０１６３】
図１７を参照して、本発明の実施の形態５に従うマイクロコンピュータ３は、マイクロコンピュータ１と比較して、周辺機能２０を周辺機能２０＃に置換した点が異なる。その他の点については同様であるのでその詳細な説明については繰り返さない。
【０１６４】
周辺機能２０＃は、周辺機能管理部２１と周辺機能制御部２４とを含む。
周辺機能管理部２１は、内部周辺バスＩ／Ｆ２２と、調停制御部２３とを含む。
【０１６５】
内部周辺バスＩ／Ｆ２２は、内部周辺バス１４と接続され、内部ＣＰＵバス１２を介してＣＰＵ１０あるいはＤＭＡＣ１５との間のデータの授受を実行する。
【０１６６】
調停制御部２３は、バス使用権の調停を行っている。
周辺機能制御部２４は、固定周辺機能部２５と、可変周辺機能部２６と、ロック機構２７と、マルチプレクサ２８とを含む。
【０１６７】
固定周辺機能部２５は、マルチプレクサ２８を介して、例えばポートＡＡを用いて外部との間でデータ通信が可能であるものとする。
【０１６８】
一方、可変周辺機能部２６は、マルチプレクサ２８を介して、例えばポートＢＢを用いて外部との間でデータ通信が可能であるものとする。
【０１６９】
具体的には、上述したように、例えば、内部メモリバス１６と接続されているＲＯＭ５０に可変周辺機能部２６を設定するための周辺機能制御論理情報が含まれているものとする。
【０１７０】
そして、ＣＰＵ１０によって、固定バス制御部３４を介して読み出されて、可変周辺機能部２６にマッピングする。マッピングの方式等については、図１で説明したのと同様であるのでその詳細な説明は繰り返さない。
【０１７１】
当該方式により、バスコントローラのみならず、他の例えば周辺機能にＰＬＤを設けることにより、周辺機能に新たな機能を設計することが可能となるため例えば、新たな通信インタフェースに対応した周辺機能を設定することも可能である。
【０１７２】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１７３】
１，１＃，１ａ，２，３  マイクロコンピュータ、１０  ＣＰＵ、１２  内部ＣＰＵバス、１４  内部周辺バス、１５  ＤＭＡＣ、１６  内部メモリバス、２０，２０＃  周辺機能、２１  周辺機能管理部、２２  内部周辺バスＩ／Ｆ、２３  調整制御部、２４  周辺機能制御部、２５  固定周辺機能部、２６  可変周辺機能部、２７，３８，３８＃  ロック、２８  マルチプレクサ、３０，３０＃，３０＃ａ  バスコントローラ、３１  バス制御部、３２  アドレスデコーダ、３４  固定バス制御部、３５  可変バス制御部、３６  マルチプレクサ、３７，３７＃  コンフィグレーション制御部、３９  専用ＲＡＭ、４０  バス管理部、４２  内部ＣＰＵバスＩ／Ｆ、４４  内部周辺バスＩ／Ｆ、４６  調停制御部、５０  ＲＯＭ、５５  ＲＡＭ、６０  外部バスインタフェース、７０  ＦＬＡＳＨ／ＲＯＭ、８０  ＳＲＡＭ、９０  ＳＤＲＡＭ。
【図１】
2010282284.tif 000003
【図２】
2010282284.tif 000004
【図３】
2010282284.tif 000005
【図４】
2010282284.tif 000006
【図５】
2010282284.tif 000007
【図６】
2010282284.tif 000008
【図７】
2010282284.tif 000009
【図８】
2010282284.tif 000010
【図９】
2010282284.tif 000011
【図１０】
2010282284.tif 000012
【図１１】
2010282284.tif 000013
【図１２】
2010282284.tif 000014
【図１３】
2010282284.tif 000015
【図１４】
2010282284.tif 000016
【図１５】
2010282284.tif 000017
【図１６】
2010282284.tif 000018
【図１７】
2010282284.tif 000019