(57)【特許請求の範囲】
【請求項１】
複数のＣＰＵと、
これら複数のＣＰＵの各々が各ローカルバスを介して接続される複数のローカルメモリと、
前記各ローカルバス、各バスバッファや各ゲート及び各共有バスを介して前記各ＣＰＵと接続されている複数の周辺回路と、
前記複数のＣＰＵによって共通に使用され、それらのＣＰＵによって設定されたパラメータに基づいて、前記複数の周辺回路間におけるデータ転送を行うデータ転送装置と、
前記複数のＣＰＵの内何れか１つによって、ＣＰＵ選択用のデータの書き込みが行われる選択レジスタと、
この選択レジスタに書き込まれたデータに基づいて、前記データ転送を行うために必要な制御信号が、前記複数のＣＰＵの内何れか１つと前記データ転送装置との間で伝達されるように入力元、出力先を調整する調停回路とを備えてなることを特徴とするマイクロコンピュータ。
【請求項２】
前記データ転送を行うために必要な制御信号は、
前記データ転送装置が何れか１つのＣＰＵに対してローカルバスの開放を要求するために出力するバス開放要求信号と、
前記バス開放要求信号が入力された場合に、前記ＣＰＵが所定の処理を終了した段階で、前記データ転送装置に対してローカルバスの開放を承認するために出力するバス開放承認信号とであることを特徴とする請求項１記載のマイクロコンピュータ。
【請求項３】
前記選択レジスタは、前記データ転送装置がデータ転送処理を実行している状態で、その他の何れかのＣＰＵが当該レジスタに対して実行した書き込みを無視するように構成されており、
前記選択レジスタに対して実行した書込みが無視されたことが記憶され、その記憶状態が読出し可能に構成される書込み結果観測レジスタを備えたことを特徴とする請求項１または２記載のマイクロコンピュータ。
【請求項４】
前記選択レジスタは、何れか１つのＣＰＵが既に書込みを行っている状態で、その他の何れかのＣＰＵが当該レジスタに対して実行した書き込みを無視するように構成されており、
前記選択レジスタに対して実行した書込みが無視されたことが記憶され、その記憶状態が読出し可能に構成される書込み結果観測レジスタを備えたことを特徴とする請求項１または２記載のマイクロコンピュータ。
【請求項５】
前記複数のＣＰＵは、夫々、前記書込み結果観測レジスタの読み出し結果に基づいて、前記データ転送装置に対して前記パラメータの設定を行なうか否かを判断することを特徴とする請求項３または４記載のマイクロコンピュータ。
【請求項６】
何れかのＣＰＵが読出しを行うことで、前記データ転送を行うために必要な制御信号の状態を検出することが可能に構成される信号状態検出レジスタを備えたことを特徴とする請求項１乃至５の何れかに記載のマイクロコンピュータ。
【請求項７】
前記共有バスは、複数系統に分割されており、
前記周辺回路は、１つ以上毎に、前記複数系統に分割された共有バスのブロックに別れて接続されていることを特徴とする請求項１乃至６の何れかに記載のマイクロコンピュータ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のＣＰＵと、周辺回路間におけるデータ転送を行うデータ転送装置とを備えてなるマイクロコンピュータに関する。
【０００２】
【発明が解決しようとする課題】
近年、マイクロコンピュータの処理性能を向上させて高機能化を図るため、複数のＣＰＵを用いてシステムを構成するものがあり、その一例が、特開平５−２８２２４６号公報に開示されている。図１３は、この従来技術の構成を示す機能ブロック図である。各マイコン１０１（Ａ，Ｂ，Ｃ）は、夫々、ＣＰＵ１０２，メモリ１０３，ＤＭＡ(Direct Memory Access)コントローラ（以下、単にＤＭＡと称す）１０４及び共有バス制御部１０５を備えて構成されている。そして、３つのマイコン１０１は、共有バス１０６を介して共有メモリ１０７に対するアクセスを夫々行うようになっている。
【０００３】
ところで、上記従来技術では、各マイコン１０１（Ａ，Ｂ，Ｃ）は夫々ＤＭＡ０４を備えているが、各マイコン１０１が夫々備えている何れかのメモリ１０３と共有メモリ１０７との間でデータ転送が行われる場合は、実質的に何れか１つのＤＭＡ１０４だけが動作可能であり、その他２つのＤＭＡ１０４が並行して動作することはできない。従って、必ずしもリソースを有効に活用しているとは言えなかった。
【０００４】
本発明は上記事情に鑑みてなされたものであり、その目的は、複数のＣＰＵが１つのデータ転送装置を共通に使用することが可能であるマイクロコンピュータを提供することにある。
【０００５】
【課題を解決するための手段】
請求項１記載のマイクロコンピュータによれば、調停回路は、複数のＣＰＵのうち何れか１つが選択レジスタにＣＰＵ選択用データの書き込みを行うと、その書き込まれた選択用データに基づいて、データ転送を行うために必要な制御信号が複数のＣＰＵの内何れか１つとデータ転送装置との間で伝送されるように入力元、出力先を調整する。尚、ここでの“何れか１つ”とは、固定的な意味ではなく、任意選択的な意味で用いている。
【０００６】
即ち、１つのデータ転送装置に対して複数のＣＰＵが存在している場合でも、選択レジスタにデータの書込みを行うことで何れか１つのＣＰＵを選択すると、データ転送装置との制御インターフェイスとして使用される前記制御信号は、その選択された１つのＣＰＵとデータ転送装置との間において伝達されるように調停回路が振り分ける。
【０００７】
従って、複数のＣＰＵが調停回路を介して１つのデータ転送装置を共通に使用することが可能となり、従来のように各ＣＰＵが夫々使用するデータ転送装置を個別に配置する必要がなくなるので、回路の配置面積を削減して小形化を図ることができると共に低コスト化を図ることができる。
【０００８】
請求項２記載のマイクロコンピュータによれば、データ転送を行うために必要な制御信号を、データ転送装置が何れか１つのＣＰＵに対して出力するバス開放要求信号と、そのバス開放要求信号が入力された場合に、前記ＣＰＵが所定の処理を終了した段階でデータ転送装置に対して出力するバス開放承認信号とする。尚、ここでの“バス”とは、ＣＰＵとデータ転送装置とが共通に使用する可能性があるバスである。
【０００９】
即ち、上記の制御信号が選択された１つのＣＰＵとデータ転送装置との間で伝達されることで、データ転送装置は、前記ＣＰＵによるバスのアクセスを一時的に停止させた状態で、そのバスを使用してデータ転送を行うことができる。そして、これらの信号は、ＣＰＵとデータ転送装置との間のインターフェイスにおいて一般的に使用される信号であるから、調停回路がこれらの信号の入出力先を選択レジスタに書き込まれたデータに基づいて調整することで、複数のＣＰＵの何れか１つが択一的にデータ転送装置を使用できるようになる。
【００１０】
請求項３記載のマイクロコンピュータによれば、選択レジスタは、データ転送装置がデータ転送処理を実行している状態でその他のＣＰＵが書込みを行うと、その書き込みを無視する。そして、書込み結果観測レジスタには、選択レジスタに対して実行した書込みが無視されたことが記憶され、その記憶状態がＣＰＵによって読出し可能となる。
【００１１】
従って、選択レジスタに対する書込みは排他的に制御されると共に、各ＣＰＵは、書込み結果観測レジスタを参照することによって、自身が選択レジスタに対して行った書込みが有効に行われたか否かを確認することができ、無効にされていた場合には選択レジスタに対する書込みを再度行うなどの処理を行うことも可能となる。
【００１２】
請求項４記載のマイクロコンピュータによれば、選択レジスタは、何れか１つのＣＰＵが既に選択レジスタに対して書込みを行っている状態でその他のＣＰＵが書込みを行うと、その書き込みを無視する。そして、書込み結果観測レジスタには、選択レジスタに対して実行した書込みが無視されたことが記憶され、その記憶状態がＣＰＵによって読出し可能となる。
【００１３】
従って、選択レジスタに対する書込みは、請求項３と同様に排他的に制御される。また、各ＣＰＵは、請求項３と同様に書込み結果観測レジスタを参照して自身が選択レジスタに対して行った書込みが有効に行われたか否かを確認することができる。
【００１４】
請求項５記載のマイクロコンピュータによれば、複数のＣＰＵは、夫々、書込み結果観測レジスタの読み出し結果に基づいて、データ転送装置に対してパラメータの設定を行なうか否かを判断する。即ち、選択レジスタに対して実行した書込みが無視されることなく有効に実行されたことを認識したＣＰＵだけに、データ転送装置に対するパラメータの設定を可能とすることで、パラメータ設定の排他制御を容易且つ確実に行なうことができる。
【００１５】
請求項６記載のマイクロコンピュータによれば、何れかのＣＰＵが信号状態検出レジスタの読出しを行うと、データ転送を行うために必要な制御信号の状態を検出することが可能となる。従って、各ＣＰＵは、信号状態検出レジスタを参照することで、自身以外のＣＰＵによるデータ転送装置の使用状態やデータ転送装置の動作状態などを確認することができる。
【００１６】
請求項７記載のマイクロコンピュータによれば、複数の周辺回路は、複数系統に分割された共有バスのブロックに別れて接続されているので、例えば、データ転送装置が１つの共有バスを使用して２つの周辺回路間でデータ転送を実行している場合であっても、ＣＰＵは、その他の共有バスを使用して異なるブロックの周辺回路にアクセスすることが可能となる。従って、処理効率を向上させることができる。
【００１７】
【発明の実施の形態】
（第１実施例）
以下、本発明の第１実施例について図１乃至図７を参照して説明する。図１は、マイクロコンピュータの電気的構成を示す機能ブロック図である。マイクロコンピュータ（マイコン）１は、２つのＣＰＵ２Ａ，２Ｂを備えており、これらのＣＰＵ２Ａ，２ＢがＤＭＡ調停回路３を介して１つのＤＭＡコントローラ（データ転送装置）４を共通に使用するように構成されている。
【００１８】
即ち、ＣＰＵ２Ａ側のアドレスバス５Ａ（及びバス制御信号線）は、ＤＭＡ調停回路３，マルチプレクサ（ＭＵＸ）６Ａ及びローカルメモリ７Ａに接続されており、データバス８Ａは、ローカルメモリ７Ａ及びトランスミッションゲート（以下、単にＴゲートと称する）９Ａに接続されている。尚、Ｔゲートは、実際には双方向バッファとして構成され方向制御が行われるものであるが、図示の都合上Ｔゲートで表している。また、ＣＰＵ２Ｂ側はＣＰＵ２Ａ側と対称に構成されており、図１では同一符号に“Ｂ”を付して示している。
【００１９】
ＤＭＡ調停回路３とＤＭＡ４との間は、ＤＭＡ側のアドレスバス１０及びデータバス１１によって接続されている。そして、これらのバス１０及び１１には、ＣＰＵ選択レジスタ１２，書込み結果観測レジスタ１３及び信号状態検出レジスタ１４の３つのレジスタが接続されている。これらのレジスタ１２〜１４は、ＣＰＵ２Ａ，２ＢによりＤＭＡ調停回路３を介してアクセスされるようになっている。
【００２０】
ＤＭＡ４は、ＤＭＡ調停回路３に対してバス開放要求信号であるBUSREQを出力し、ＤＭＡ調停回路３は、その信号BUSREQをＣＰＵ選択レジスタ１２の書込み結果に応じてＣＰＵ２Ａ，２Ｂの何れか一方に対し信号BUSREQ(A),(B) として夫々出力するようになっている。また、ＣＰＵ２Ａ，２Ｂは、ＤＭＡ調停回路３に対してバス開放承認信号であるBUSACK(A),(B) を夫々出力するが、ＤＭＡ調停回路３は、その信号BUSACK(A),(B) の何れか一方をＣＰＵ選択レジスタ１２の書込み結果に応じてＤＭＡ４に信号BUSACKとして出力するようになっている。
【００２１】
図２は、主に、ＤＭＡ調停回路３の詳細な電気的構成を示すものである。ＣＰＵ２Ａ，２Ｂ側のアドレスバス５Ａ，５Ｂは、アクセス権調停回路１５に夫々接続されている。また、アドレスバス５Ａは、出力バッファ１６Ａ及びＭＵＸ１７Ａの入力ポート“０”に接続されており、アドレスバス５Ｂは、出力バッファ１６Ｂ及びＭＵＸ１７Ｂの入力ポート“０”に接続されている。そして、ＭＵＸ１７Ａ及び１７Ｂの入力ポート“１”には、ＤＭＡ側のアドレスバス１０が接続されている。また、出力バッファ１６Ａ及び１６Ｂの出力側は、アドレスバス１０に接続されている。
【００２２】
ＭＵＸ１７Ａ及び１７Ｂの出力ポートには、ＣＰＵ２Ａ，２Ｂ側のＤＭＡアドレスバス１８Ａ，１８Ｂが接続されている。ＤＭＡ側のデータバス１１は、Ｔゲート１９Ａ及び１９Ｂの一方側に共通に接続されており、Ｔゲート１９Ａ及び１９Ｂの他方側は、ＣＰＵ２Ａ，２Ｂ側のＤＭＡデータバス２０Ａ，２０Ｂに接続されている。
【００２３】
アクセス権調停回路１５は、ＣＰＵ２Ａ，２Ｂによってアドレスバス５Ａ，５Ｂに出力されるアドレスのデコード結果に応じて、ＤＭＡ４並びに３つのレジスタ１２〜１４に対するアクセス権を与えるアクセス許可信号ACS(A),(B)を、出力バッファ１６Ａ及び１６Ｂ，Ｔゲート１９Ａ及び１９Ｂに対しイネーブル信号として排他的に出力するようになっている。
【００２４】
ＤＭＡ４が出力する信号BUSREQは、ＡＮＤゲート２１及び２２の一方の入力端子に与えられており、ＣＰＵ選択レジスタ１２によって出力される選択信号DMASELは、ＡＮＤゲート２１他方の入力端子，及びＡＮＤゲート２２他方の入力端子にインバータ（ＩＮＶ）ゲート２３を介して与えられている。ＡＮＤゲート２１，２２の出力端子からは信号BUSREQ(A),(B) が夫々出力されるようになっており、それらの信号はアクセス権調停回路１５にも与えられている。
【００２５】
また、ＣＰＵ２Ａ，２Ｂによって出力される信号BUSACK(A),(B) は、ＭＵＸ２４の入力端子“０”，“１”に夫々与えられていると共にアクセス権調停回路１５にも与えられており、ＭＵＸ２４の出力端子からは、ＤＭＡ４に対して信号BUSACKが出力される。ＭＵＸ２４の選択切替え信号には選択信号DMASELが用いられており信号DMASELが“ロウ”の場合は入力端子“０”側が選択され、信号DMASELが“ハイ”の場合は入力端子“１”側が選択されるようになっている。
【００２６】
アクセス権調停回路１５は、アクセス権を得たＣＰＵ２Ａ，２ＢがＤＭＡ４或いはレジスタ１２〜１４の何れかにアクセスを行うと、内部のステートカウンタに基づく適当なタイミングで、ＣＰＵ２Ａ，２Ｂにバスアクセス終了信号であるACK(A),(B)を出力するようになっている（図１では図示せず）。また、アクセス権調停回路１５は、ＭＵＸ１７Ａ，１７Ｂに選択信号DMA (A),(B) を出力するようになっており、ＣＰＵ２Ａ，２Ｂの何れかが信号BUSACK(A),(B) を出力するとそれに応じて何れか一方の選択信号DMA (A),(B) を“ハイ”にすることで、ＤＭＡ側のアドレスバス１０をＣＰＵ２Ａ，２Ｂ側のＤＭＡアドレスバス１８Ａ，１８Ｂに接続するようになっている。
【００２７】
図３は、ＣＰＵ選択レジスタ１２の詳細な電気的構成を示すものである。ＣＰＵ選択レジスタ１２は、直列に接続されたマスタラッチ１２Ｍ及びスレーブラッチ１２Ｓよりなるダブルラッチ構成であり、これらのラッチ１２Ｍ，１２Ｓは、二相クロック信号ＣＫＢ，ＣＫＡに同期して夫々ラッチ動作を行うようになっている。クロック信号ＣＫＡは、ＣＰＵ２Ａ，２Ｂの動作クロックと同相であり，クロック信号ＣＫＢはその逆相側である。
【００２８】
マスタラッチ１２Ｍのラッチ信号は、４入力のＡＮＤゲート２５より出力されるようになっており、ＡＮＤゲート２５の入力端子には、ＣＰＵ選択レジスタ１２のアドレスデコード信号とクロック信号ＣＫＢが与えられていると共に、ＣＰＵ２Ａまたは２Ｂが出力する負論理のライト信号ＷＲと、バス開放要求信号BUSREQとが、夫々ＩＮＶゲート２６，２７を介して与えられている。一方、スレーブラッチ１２Ｓのラッチ信号には、クロック信号ＣＫＡが直接与えられている。また、これらのラッチ１２Ｍ及び１２Ｓは、マイコン１のシステムリセット信号によってリセットされるようになっている。
【００２９】
マスタラッチ１２Ｍの入力側はデータバス１１の何れかのビット線に接続されており、スレーブラッチ１２Ｓの出力側は信号DMASELを出力すると共に、出力バッファ２８を介してデータバス１１の何れかのビット線に接続されている。出力バッファ２８のイネーブル信号はＡＮＤゲート２９より出力されるようになっており、ＡＮＤゲート２９の入力端子には、ＣＰＵ選択レジスタ１２のアドレスデコード信号が与えられていると共に、ＣＰＵ２Ａまたは２Ｂが出力する負論理のリード信号ＲＤがＩＮＶゲート３０を介して与えられている。
【００３０】
即ち、ＣＰＵ選択レジスタ１２に対するデータの書込みは、ＤＭＡ４が出力する信号BUSREQがインアクティブの状態にある場合にＡＮＤゲート２５の出力端子がハイレベルとなることで可能となるように構成されており、書込みデータ（選択用データ）が“０”，“１”の何れであるかに応じて信号DMASELの状態が変化するようになっている。
【００３１】
図４は、書込み結果レジスタ１３の詳細な電気的構成を示すものである。書込み結果レジスタ１３は、ＣＰＵ選択レジスタ１２と同様に、マスタラッチ１３Ｍ及びスレーブラッチ１３Ｓよりなるダブルラッチ構成であり、これらのラッチ信号には、クロック信号ＣＫＢ，ＣＫＡが夫々直接与えられている。
【００３２】
マスタラッチ１３Ｍの入力側はＯＲゲート３１の出力端子が接続されており、そのＯＲゲート３１の一方の入力端子には、３入力ＡＮＤゲート３２の出力端子が接続されている。ＡＮＤゲート３２の入力端子には、ＣＰＵ選択レジスタ１３のアドレスデコード信号とバス開放要求信号BUSREQとが与えられていると共に、負論理のライト信号ＷＲがＩＮＶゲート３３を介して与えられている。
【００３３】
スレーブラッチ１３Ｓの出力側は出力バッファ３４を介してデータバス１１の何れかのビット線に接続されている。出力バッファ３４のイネーブル信号はＡＮＤゲート３５より出力されるようになっており、ＡＮＤゲート３５の入力端子には、書込み結果レジスタ１３のアドレスデコード信号が与えられていると共に、負論理のリード信号ＲＤがＩＮＶゲート３６を介して与えられている。
【００３４】
ＯＲゲート３１の他方の入力端子には、ＡＮＤゲート３７の出力端子が接続されている。ＡＮＤゲート３７の入力端子には、スレーブラッチ１３Ｓの出力信号と、３入力ＮＡＮＤゲート３８の出力端子が接続されている。ＮＡＮＤゲート３８の入力端子には、書込み結果レジスタ１３のアドレスデコード信号が与えられていると共に、負論理のライト信号ＷＲがＩＮＶゲート３９を介して与えられ、データバス１１の何れかのビット線がＩＮＶゲート４０を介して接続されている。また、これらのラッチ１３Ｍ及び１３Ｓは、マイコン１のシステムリセット信号によってリセットされるようになっている。
【００３５】
即ち、書込み結果レジスタ１３は、ＤＭＡ４が出力する信号BUSREQがアクティブの状態にある場合に何れかのＣＰＵ２Ａ，２ＢがＣＰＵ選択レジスタ１２に任意のデータの書込みを行うと、ＡＮＤゲート３２の出力端子がハイレベルとなることでデータ“１”が自動的に書き込まれる構成である。
【００３６】
上述したように、ＤＭＡ４が起動されて信号BUSREQがアクティブの状態にある場合には、ＣＰＵ２Ａ，２ＢがＣＰＵ選択レジスタ１２にデータの書込み行うことはできない（無視される）。そして、書込み結果レジスタ１３は、ＣＰＵ選択レジスタ１２に対する書込みが無視されたことを記憶保持するために設けられている。
【００３７】
また、ＮＡＮＤゲート３８は、書込み結果レジスタ１３にデータ“１”が既に書き込まれている状態で、何れかのＣＰＵ２Ａ，２Ｂが自らデータ“０”を書き込んでクリアしようとすとロウレベルとなり、ＡＮＤゲート３７をロウレベルにして“０”を書き込むために設けられている。
【００３８】
また、図２には、信号状態検出レジスタ１４をも図示している。信号状態検出レジスタ１４は、実質的には３ビットの出力バッファであり、その入力側にはバス開放要求信号BUSREQ，BUSREQ(A),BUSREQ(B) が夫々与えられ、出力側はデータバス１１の異なるビット線に夫々接続されている。そして、バッファのイネーブル信号として、信号状態検出レジスタ１４のデコード信号が与えられている。
【００３９】
尚、各レジスタ１２〜１４のアドレスデコード信号を生成するデコーダは明示していないが、これらは、各レジスタ１２〜１４毎に持っていても良いし、ＤＭＡ調停回路３の内部に配置しても良い。また、ＣＰＵ２Ａ，２Ｂ側で出力されたアドレスをデコードして、そのデコード結果をＤＭＡ調停回路３の内部において選択して出力するようにしても良い。
【００４０】
再び図１を参照して、ＤＭＡ調停回路３以降の構成について説明する。ＤＭＡアドレスバス１８Ａ，１８Ｂは、ＭＵＸ６Ａ，６Ｂの他方の端子に夫々接続されており、ＭＵＸ６Ａの出力端子は、アドレスバス４１Ａを介して共有バス制御回路４２Ａ及び４２Ｂと、出力バッファ４３Ａ及び４３Ｂの入力側に接続されている。一方、ＭＵＸ６Ｂの出力端子は、アドレスバス４１Ｂを介して共有バス制御回路４２Ａ及び４２Ｂと、出力バッファ４４Ａ及び４４Ｂの入力側に接続されている。
【００４１】
出力バッファ４３Ａ及び４４Ａの出力側には、共有アドレスバス４５を介して、例えばＤＲＡＭで構成される共有メモリ（周辺回路）４６のアドレス入力端子が接続されている。また、出力バッファ４３Ｂ及び４４Ｂの出力側は、共有アドレスバス４７を介して周辺回路４８（１，…，Ｎ）のアドレス入力端子が接続されている。
【００４２】
ＭＵＸ６Ａ，６Ｂの選択切替えは、ＤＭＡ調停回路３によって出力される制御信号（選択信号DMA (A),(B) ）によって行われる。また、出力バッファ４３Ａ及び４４Ａ，４３Ｂ及び４４Ｂのイネーブル制御は、共有バス制御回路４２Ａ，４２Ｂのアドレスデコード結果に基づいて行われるようになっている。
【００４３】
一方、データ側のＴゲート９Ａの他方側は、データバス４９Ａを介して２つのＴゲート５０Ａ，５０Ｂに接続されている。Ｔゲート５０Ａの他方側には、共有データバス５１を介して共有メモリ４６のデータ入出力端子が接続されており、Ｔゲート５０Ｂの他方側には、共有データバス５２を介して周辺回路４８のデータ入出力端子が接続されている。
【００４４】
また、Ｔゲート９Ｂの他方側は、データバス４９Ｂを介して２つのＴゲート５３Ａ，５３Ｂに接続されており、それらのＴゲート５３Ａ，５３Ｂの他方側には、共有データバス５１，５２が接続されている。そして、ＤＭＡデータバス２０Ａ，２０Ｂは、Ｔゲート５４Ａ，５４Ｂを介してデータバス４９Ａ，４９Ｂに夫々接続されている。
【００４５】
Ｔゲート９，５４のイネーブル制御は、ＤＭＡ調停回路３によって出力される制御信号（選択信号DMA (A),(B) とリード信号ＲＤ，ライト信号ＷＲに基づく信号）によって行われる。また、Ｔゲート５０Ａ及び５３Ａ，５０Ｂ及び５３Ｂのイネーブル制御は、共有バス制御回路４２Ａ，４２Ｂのアドレスデコード結果に基づいて行われるようになっている。尚、共有バス制御回路４２Ａ，出力バッファ４３Ａ及び４４Ａ，Ｔゲート５０Ａ及び５３Ａはバス調停回路５５Ａを構成しており、共有バス制御回路４２Ｂ，出力バッファ４３Ｂ及び４４Ｂ，Ｔゲート５０Ｂ及び５３Ｂはバス調停回路５５Ｂを構成している。
【００４６】
次に、本実施例の作用について図５乃至図７を参照して説明する。図５は、ＣＰＵ２ＡがＤＭＡ４にＤＭＡ転送を行わせる場合の処理の流れを示すフローチャートである。ＣＰＵ２Ａは、先ず、信号状態検出レジスタ１４にアクセスして読み出しを行う（ステップＳ１）。
【００４７】
この場合、ＤＭＡ調停回路３のアクセス権調停回路１５は、ＣＰＵ２Ａがドライブしたアドレスをデコードして、その時点でＣＰＵ２ＢがＤＭＡ４側のデバイスにアクセスを行っていなければ、アクセス許可信号ACS(A)を出力バッファ１６Ａ並びにＴゲート１９Ａに対し出力する。そして、信号状態検出レジスタ１４はアドレスデコード信号が与えられてイネーブルとなり、データバス１１の例えばＤ０，Ｄ１，Ｄ２には、BUSREQ, BUSREQ(A),BUSREQ(B) の信号状態に応じたレベルが出力される。
【００４８】
それから、ＣＰＵ２Ａは、BUSREQ, BUSREQ(B) が何れもインアクティブであることを確認すると（ステップＳ２，「ＹＥＳ」）、ＣＰＵ選択レジスタ１２にデータ“０”を書き込む（ステップＳ３）。すると、選択信号DMASELはロウレベルとなる。また、BUSREQ, BUSREQ(B) の何れがアクティブである場合には（ステップＳ２，「ＮＯ」）ステップＳ１に戻る。
【００４９】
ＣＰＵ２Ａは、ステップＳ３に続いて、書込み結果観測レジスタ１３を読み出すと（ステップＳ４）、ステップＳ３で行われた書込みの結果が「ＯＫ」であるか否かを判断する。書込み結果観測レジスタ１３より読み出されたデータが“０”であれば書込み結果は「ＯＫ」であり（ステップＳ５，「ＹＥＳ」）、ＣＰＵ２Ａは、続いてＤＭＡ４に転送パラメータの設定を行う（ステップＳ６）。
【００５０】
一方、書込み結果観測レジスタ１３より読み出されたデータが“１”であれば、ステップＳ２における信号状態の確認後にＣＰＵ２ＢがＣＰＵ選択レジスタ１２に書込みを行ったため、ステップＳ３で行われた書込みは無視されていることを示す。従って、ＣＰＵ２Ａは、ステップＳ５で「ＮＯ」と判断してステップＳ１に戻り、シーケンスを最初からやり直す。
【００５１】
以上のように、ＣＰＵ２Ａ（または２Ｂ）は、ステップＳ３でレジスタ１２に行った書込みが確実に行われていることを確認できなければ、それ以降のＤＭＡ４側に対するアクセスを行うことはない。
【００５２】
また、ステップＳ６における“転送パラメータ”とは、ＤＭＡ転送の転送元（ソース）アドレス，転送先（デスティネーション）アドレス，転送サイズ（ビット幅），転送データ量，転送開始条件などを示す。これらのパラメータを、ＣＰＵ２ＡがＤＭＡ４に内蔵されている制御レジスタに書き込んで設定する。
【００５３】
以降のステップＳ７乃至Ｓ１１は、ＣＰＵ２Ａのハードウエアによって処理されるシーケンスである。また、図６は、この場合の各信号波形の状態を示すタイミングチャートである。ＤＭＡ４は、転送開始条件（例えば、何れかの周辺回路が発生した割込み信号の入力など）が成立すると、ＤＭＡ転送を実行するためにバス開放要求信号BUSREQをアサート（ハイアクティブ）してＣＰＵ２側にバスの開放要求を出力する（図６，▲１▼）。この場合、選択信号DMASELはロウレベルであるから、ＤＭＡ調停回路３においてはＡＮＤゲート２２がハイレベルとなってBUSREQ(A) がアサートされる（図６，▲２▼）。
【００５４】
そして、ＣＰＵ２Ａは、BUSREQ(A) がアサートされると（ステップＳ７，「ＹＥＳ」）、その時点で自身が何らかの処理中である場合にはその処理が終了するまで待機し（ステップＳ８）、前記処理が終了すると（「ＮＯ」）バス開放応答信号BUSACK(A) をアサートする（ステップＳ９，図６，▲３▼）。ＣＰＵ２Ａが信号BUSACK(A) をアサートすると、ＤＭＡ調停回路３においては選択信号DMASELがロウレベルであるからＭＵＸ２４の（Ａ）側が選択され、BUSACK(A) がBUSACKとしてＤＭＡ４側に出力される（図６，▲４▼）。
【００５５】
すると、ＤＭＡ４は、バス開放応答信号BUSACKのアサートを受けてＤＭＡ転送を開始する。例えば、転送元が共有バス４５，５１側における周辺回路（図示せず）であり、転送先が共有メモリ４６である場合、ＤＭＡ４は、設定されたソースアドレスをドライブして周辺回路にリードアクセスを行う（図６，▲５▼）。
【００５６】
この時、ＤＭＡ調停回路３のアクセス権調停回路１５においては、バス開放応答信号BUSACK(A) がアサートされていることでＤＭＡ転送の実行信号DMA(A)がハイレベルとなり、ＭＵＸ１７Ａの“０”側が選択されてＤＭＡ側のアドレスバス１０がＣＰＵ２Ａ側のアドレスバス１８Ａに接続される。また、Ｔゲート１９Ａはイネーブルとなり、ＤＭＡ側のデータバス１１がＣＰＵ２Ａ側のデータバス２０Ａに接続される。
【００５７】
そして、ＤＭＡ４がドライブしたアドレスは、ＭＵＸ６Ａにおいてバス１８Ａ側が選択されることでアドレスバス４１Ａ上に出力されて共有バス制御回路４２Ａにおいてデコードされ、その結果、出力バッファ４３がイネーブルとなって共有アドレスバス４５がドライブされる。
【００５８】
すると、ＤＭＡ４は、転送元の周辺回路におけるデータバッファ等にリードアクセスを行いデータを読み出すと、次のバスサイクルではデスティネーションアドレスを出力して転送先の共有メモリ４６にライトアクセスを行うことでＤＭＡ転送を実行する。図６に示す例では、アドレス５２００Ｈをリードしてデータ３３０Ｈを読み出し（図６，▲５▼）、次に、アドレス５４００Ｈに読み出したデータ３３０Ｈを書き込んでいる（図６，▲６▼）。
【００５９】
ＤＭＡ４は、以降、転送元からのリード，転送先へのライトのサイクルを交互に繰り返す。この間、ＣＰＵ２Ａは、図６に示すように外部サイクルを実行することなく待機している。そして、ＣＰＵ２Ａが設定した転送量に相当するデータを共有メモリ４６に転送してＤＭＡ転送を終了すると、ＤＭＡ４は、バス開放要求信号BUSREQをネゲートする（図６，▲７▼）。すると、ＣＰＵ２Ａ側の信号BUSREQ(A) がネゲートされるので（図６，▲８▼：図５，ステップＳ１０，「ＹＥＳ」）、ＣＰＵ２Ａは、BUSACK(A) をネゲートする（ステップＳ１１，図６，▲９▼）。それから、ＤＭＡ４側の信号BUSACKがネゲートされて（図６，“10”）、一連の処理が終了する。
【００６０】
一方、以上のようにＤＭＡ４が共有バス４５，５１側においてＤＭＡ転送を行っている間、ＣＰＵ２Ｂ側は、図６に示すように、共有バス４５，５１とは分離されている共有バス４７，５２側において周辺回路４８に対するアクセスを行うことが可能となっている。尚、以上の処理は、ＣＰＵ２Ｂが図５のフローチャートに示す設定を行うことで、実行させても良い。
【００６１】
また、図７は、ＣＰＵ２Ａ，２Ｂの何れかが設定を行うことで、ＤＭＡ調停回路３によりＣＰＵ２Ｂ側にバス開放を要求させて、ＤＭＡ４が共有バス４７，５２側においてＤＭＡ転送を実行する場合の例である。即ち、図５に示すフローチャートのステップＳ３において、ＣＰＵ２Ａ，２Ｂの何れかがＣＰＵ選択レジスタ１２に“１”を書き込むことで選択信号DMASELはハイレベルとなり、ＣＰＵ２Ｂ側にバス開放を要求させることができる。
【００６２】
この場合には、ＤＭＡ４がバス開放要求信号BUSREQをアサートすると（図７，▲１▼）、選択信号DMASELはハイレベルであるからＤＭＡ調停回路３においてはＡＮＤゲート２１がハイレベルとなってBUSREQ(B) がアサートされる（図７，▲２▼）。そして、ＣＰＵ２Ｂは、BUSREQ(B) がアサートされるとその時点で行っている処理が終了した時点でバス開放応答信号BUSACK(B) をアサートする（図７，▲３▼）。ＣＰＵ２Ｂが信号BUSACK(B) をアサートすると、ＤＭＡ調停回路３においては選択信号DMASELがハイレベルであるからＭＵＸ２４のＢ側が選択され、BUSACK(B) がBUSACKとしてＤＭＡ４側に出力される（図７，▲４▼）。
【００６３】
すると、ＤＭＡ４はＤＭＡ転送を開始する。例えば、転送元が共有バス４７，５２側における２つの周辺回路４８間で行われる場合、ＤＭＡ４は、設定されたソースアドレスをドライブして例えば周辺回路４８（１）にリードアクセスを行う。図７に示す例では、アドレス６２００ＨをリードしてデータＡＡ０Ｈを読み出し（図７，▲５▼）、次に、アドレス６４００Ｈに読み出したデータＡＡ０Ｈを書き込んでいる（図７，▲６▼）。この間、ＣＰＵ２Ｂは、外部サイクルを実行することなく待機している。
【００６４】
そして、ＤＭＡ転送を終了すると、ＤＭＡ４はバス開放要求信号BUSREQをネゲートする（図７，▲７▼）。すると、ＣＰＵ２Ｂ側の信号BUSREQ(B) がネゲートされるので（図７，▲８▼）、ＣＰＵ２Ｂは、BUSACK(B) をネゲートする（図７，▲９▼）。それから、ＤＭＡ４側の信号BUSACKがネゲートされて（図７，“10”）、一連の処理が終了する。尚、この場合も、ＤＭＡ４が共有バス４７，５２側においてＤＭＡ転送を行っている間、ＣＰＵ２Ａ側は、図７に示すように、共有バス４５，５１側において例えば共有メモリ４６に対するアクセスを行うことが可能となっている。
【００６５】
以上のように本実施例によれば、マイコン１に設けれらたＤＭＡ調停回路３は、ＣＰＵ２Ａ，２Ｂの内何れか一方がＣＰＵ選択レジスタ１２に選択用データの書き込みを行うと、その書き込まれたデータに基づいて、ＣＰＵ２Ａ，２Ｂの何れか一方とＤＭＡ４との間でデータ転送を行うための制御信号，BUSREQ,BUSACK が伝達されるように調停を行うようにした。
【００６６】
従って、ＣＰＵ２Ａ，２ＢがＤＭＡ調停回路３を介して１つのＤＭＡ４を共通に使用することが可能となり、従来のように各ＣＰＵ２Ａ，２Ｂが夫々使用するＤＭＡ４を個別に配置する必要がなくなるので、回路の配置面積を削減して小形化を図ることができると共に低コスト化を図ることができる。
【００６７】
また、ＣＰＵ選択レジスタ１２を、ＣＰＵ２Ａ，２Ｂの何れかが既に書込みを行うことでＤＭＡ４がデータ転送を実行している状態で、その他のＣＰＵ２Ａ，２Ｂが書込みを行うとその書き込みを無視し、書込み結果観測レジスタ１３には、ＣＰＵ選択レジスタ１２に対して実行した書込みが無視されたことが記憶され、その記憶状態がＣＰＵ２Ａ，２Ｂによって読出し可能となるように構成した。
【００６８】
従って、ＣＰＵ選択レジスタ１２に対する書込みは排他的に制御されると共に、各ＣＰＵ２Ａ，２Ｂは、書込み結果観測レジスタ１３を参照することで、自身がＣＰＵ選択レジスタ１２に対して行った書込みが有効に行われたか否かを確認することができ、無効にされていた場合にはＣＰＵ選択レジスタ１２に対する書込みを再度行うなどの処理を行うことも可能となる。
【００６９】
そして、ＣＰＵ２Ａ，２Ｂは、夫々、書込み結果観測レジスタ１３の読み出し結果に基づいて、ＤＭＡ４に対して転送パラメータの設定を行なうか否かを判断するので、ＣＰＵ選択レジスタ１２に対して実行した書込みが無視されることなく有効に実行されたことを認識したＣＰＵだけがＤＭＡ４に対する転送パラメータの設定が可能となり、転送パラメータ設定の排他制御を容易且つ確実に行なうことができる。
【００７０】
更に、本実施例によれば、ＣＰＵ２Ａ，２Ｂの何れかが信号状態検出レジスタ１４の読出しを行うと、信号BUSREQ, BUSREQ(A),BUSREQ(B) の状態を検出することができるので、各ＣＰＵ２Ａ，２Ｂは、信号状態検出レジスタ１４を参照することで、自身以外のＣＰＵ２Ａ，２ＢによるＤＭＡ４の使用状態やＤＭＡ４の動作状態などを確認することができる。
【００７１】
加えて、マイコン１は、共有メモリ４６や複数の周辺回路（４８，共有メモリ４６を含む）を、複数系統に分割された共有バス４５及び５１、並びに４７及び５２の各ブロックに分けて接続しているので、例えば、ＤＭＡ４が一方の共有バス４５及び５１を使用して２つの周辺回路間でＤＭＡ転送を実行している場合であっても、ＣＰＵ２Ｂは、他方の共有バス４７及び５２を使用して異なるブロックの周辺回路４８にアクセスすることができ、処理効率を向上させることができる。
【００７２】
また、ＤＭＡ４がＤＭＡ転送を実行している場合に限ることなく、例えば、ＣＰＵ２Ａによる共有メモリ４６に対するアクセスと、ＣＰＵ２Ｂによる周辺回路４８（１）に対するアクセスとを並行して同時に実行することが可能となる。
【００７３】
更に、ＤＭＡ４が一連の（複数サイクルによる）ＤＭＡ転送を行っている間、バス調停回路５５ＡによってＤＭＡ転送のサイクルの途中にＣＰＵ２のサイクルを割り込ませてメモリ４６にアクセスさせることもできるので（例えば、ＤＭＡ４が出力するバス制御信号によって他のＣＰＵによるサイクルが割り込めないように排他制御する構成を採用しなければ良い）、ＣＰＵ２の処理効率の低下を極力防止することができる。
【００７４】
（第２実施例）
図８は本発明の第２実施例を示すものであり、第１実施例と同一部分には同一符号を付して説明を省略し、以下異なる部分についてのみ説明する。第２実施例のマイコン５６は、第１実施例のマイコン１における信号状態検出レジスタ１４を取り除き、ＣＰＵ２Ａ，２Ｂ側のローカルなバス５Ａ及び８Ａ，５Ｂ及び８Ｂ内に信号状態検出レジスタ５７Ａ，５７Ｂを夫々配置したものである。
【００７５】
そして、ＣＰＵ２Ａがローカルにアクセスするレジスタ５７Ａでは、ＣＰＵ２Ｂ側のバス開放要求信号BUSREQ(B) の状態を参照できるようになっており、逆に、ＣＰＵ２Ｂがローカルにアクセスするレジスタ５７Ｂでは、ＣＰＵ２Ａ側の信号BUSREQ(A) の状態を参照できるようになっている。
【００７６】
即ち、第１実施例の信号状態検出レジスタ１４は、ＤＭＡ４がＤＭＡ転送を行っている場合には実質的にＣＰＵ２Ａ，２Ｂがアクセスを行うことができず、利用効率が余り良くない。そこで、第２実施例では、信号状態検出レジスタ５７Ａ，５７Ｂを夫々配置することで、ＣＰＵ２Ａ，２Ｂは、ＤＭＡ調停回路３を介すことなくレジスタ５７Ａ，５７Ｂにローカルにアクセスすることができ、信号状態検出レジスタ５７Ａ，５７Ｂの利用効率を向上させることができる。
【００７７】
（第３実施例）
図９は本発明の第３実施例を示すものであり、第１実施例と同一部分には同一符号を付して説明を省略し、以下異なる部分についてのみ説明する。第３実施例のマイコン５８は、第１実施例のマイコン１におけるバス調停回路５５Ｂ並びに共有バス４７及び５２側を削除して、周辺回路４８を、共有メモリ４６と共に共有バス４５及び５１側に配置したものである。
【００７８】
以上のように構成した第３実施例によれば、ＤＭＡ４がＤＭＡ転送を行っている場合には、ＣＰＵ２Ａ，２Ｂの何れも共有メモリ４６や周辺回路４８にアクセスすることはできないが、夫々ローカルなバス５Ａ及び８Ａ，５Ｂ及び８Ｂにおいてローカルメモリ７Ａ，７Ｂにインストラクションアクセス等を行うことは可能である。そして、ＤＭＡ４を共通に使用することについては、第１実施例と同様に行うことができる。
【００７９】
（第４実施例）
図１０は本発明の第４実施例を示すものであり、第１乃至第３実施例と同一部分には同一符号を付して説明を省略し、以下異なる部分についてのみ説明する。第３実施例のマイコン５９は、第２実施例のマイコン５６と、第３実施例のマイコン５８の特徴的な構成を組み合わせたものである。即ち、ＣＰＵ２Ａ，２Ｂ側のバス５Ａ及び８Ａ，５Ｂ及び８Ｂ内に信号状態検出レジスタ５７Ａ，５７Ｂを夫々配置し、且つ、周辺回路４８を共有メモリ４６と共に共有バス４５及び５１側に配置したものである。
【００８０】
また、第４実施例においては、Ｔゲート５０Ａ，５０Ｂが削除されており、バス調停回路６０を構成している。そして、ＣＰＵ２Ａ側のデータバス８ＡはＴゲート９Ａを介してデータバス５１に直結されている。同様に、ＣＰＵ２Ｂ側のデータバス８ＢはＴゲート９Ｂを介してデータバス５１に直結されている。更に、ＤＭＡ調停回路３側のデータバス２０Ｂ及びＴゲート５４Ｂも削除されており、Ｔゲート５４Ａの一方の側（ＤＭＡ調停回路３と反対の側）には、データバス５１に直結されている。
【００８１】
更に、第４実施例では、ＤＭＡ調停回路３の内部においてＭＵＸ１７Ａ，１７Ｂは削除されており、ＭＵＸ６Ａ，６Ｂには、アドレスバス１８Ａ，１８Ｂに代えてＤＭＡ４側のアドレスバス１０が共通に入力されている。
【００８２】
即ち、斯様に構成した場合、ＣＰＵ２Ａは、ＤＭＡ４側にデータアクセスする際は、Ｔゲート９Ａ，データバス５１及びＴゲート５４を介してアクセスすることになり、ＣＰＵ２Ｂは、Ｔゲート９Ｂ，データバス５１及びＴゲート５４を介してアクセスすることになる。
【００８３】
以上のように第４実施例によれば、第２または第３実施例と同様の効果が得られると共に、バス制御に必要な回路素子を第３実施例の場合よりも少なくすることができるので、小形化及び低コスト化を一層図ることができる。
【００８４】
（第５実施例）
図１１及び図１２は本発明の第５実施例を示すものであり、第１実施例と異なる部分についてのみ説明する。第５実施例では、ＣＰＵ選択レジスタ１２に対する書き込みを制御する周辺回路の構成が第１実施例と異なっている。即ち、図１１に示すように、第１実施例においてＡＮＤゲート２５の入力端子に接続されていたＩＮＶゲート２７に代えてＤフリップフロップ６１が配置され、そのＱバー出力端子が前記入力端子に接続されている。このＱバー出力端子からは、書込み制御信号ＷＦバーが出力される。
【００８５】
Ｄフリップフロップ６１のＤ入力端子はプルアップされており、クロック入力端子には、ＡＮＤゲート２５の出力端子がディレイライン６４を介して接続されている。Ｄフリップフロップ６１のＱ出力端子からは書込み制御信号ＷＦが出力され、その信号ＷＦは、図１２に示すように、書込み結果観測レジスタ１３側のＡＮＤゲート３２の入力端子に、信号BUSREQに代えて与えられている。
【００８６】
Ｄフリップフロップ６１のリセット入力端子には、ＯＲゲート６２の出力端子が接続されている。そのＯＲゲート６２の一方の入力端子にはリセット信号が与えられており、他方の入力端子はワンショットマルチバイブレータ（ＯＭＶと称す）６３のＱ出力端子に接続されている。ＯＭＶ６３のトリガ入力端子Ｔ（負論理）には、信号BUSACKが与えられている。その他の構成は第１実施例と同様である。
【００８７】
次に、第５実施例の作用について説明する。
▲１▼Ｄフリップフロップ６１は、初期状態ではリセット信号によりリセットされており、書込み制御信号ＷＦはロウレベル，ＷＦバーはハイレベルとなっているため、ＣＰＵ選択レジスタ１２は書込み可能な状態にある。
【００８８】
▲２▼▲１▼の状態から、何れかのＣＰＵ２Ａ，２ＢがＣＰＵ選択レジスタ１２に書込みを行なうとＡＮＤゲート２５の出力端子がハイレベルとなり、その信号の遷移状態がディレイライン６４を介してＤフリップフロップ６１のクロック入力端子に与えられる。すると、Ｄフリップフロップ６１は前記信号の遷移における立上がりエッジによってセットされ、書込み制御信号ＷＦはハイレベル，ＷＦバーはロウレベルとなるので、ＣＰＵ選択レジスタ１２は書込み不能となる。尚、ディレイライン６４によって付与される遅延時間は、マスタラッチ１２Ｍにおけるラッチ信号のハイレベルホールドタイムが十分確保できるように設定する。
【００８９】
▲３▼書込み制御信号ＷＦがハイレベルの状態で、何れかのＣＰＵ２Ａ，２ＢがＣＰＵ選択レジスタ１２に書込みを行なうと、ＡＮＤゲート３２の出力端子がハイレベルとなり書込み結果観測レジスタ１３にデータ“１”がセットされる。
即ち、この状態に至ると、第１実施例の図５に示すフローチャートにおいては、ＣＰＵ選択レジスタ１２に対する書込みを成功させたＣＰＵ以外のＣＰＵは、ステップＳ５から先に進めなくなる。
【００９０】
▲４▼そして、ＤＭＡ４が、ＣＰＵ選択レジスタ１２に対する書込みを成功させたＣＰＵの設定に基づくＤＭＡ転送を終了して例えば図６に示すタイミングチャートの▲７▼において信号BUSREQをネゲートすると、ＣＰＵ２ＡがBUSACK(A) をネゲートする。それに応じてＤＭＡ４側の信号BUSACKがネゲートされると（図６，“10”）、ＯＭＶ６３は、信号BUSACKの立下がりエッジをトリガとして所定パルス幅（Ｄフリップフロップ６１をリセットするのに十分な時間に相当する）のハイレベル信号をワンショットで出力する。すると、そのワンショットパルスの出力期間でＡＮＤゲート６３の出力端子がハイレベルとなりＤフリップフロップ６１はリセットされ、ＣＰＵ選択レジスタ１２は、上記▲１▼と同様の書込み可能な状態に戻る。
その他の作用については、第１実施例と全く同様であり、処理の流れは図５に示すフローチャートに従って実行される。
【００９１】
以上のように第５実施例によれば、ＣＰＵ選択レジスタ１２を、ＣＰＵ２Ａ，２Ｂの何れかが書込みを行った時点で直ちに書込みが不能となるように構成し、その他のＣＰＵ２Ａ，２Ｂが行なう書き込みを無視するようにしたので、ＣＰＵ選択レジスタ１２に対する書込みの排他制御をより確実に行なうことができる。
【００９２】
本発明は上記し且つ図面に記載した実施例にのみ限定されるものではなく、次のような変形または拡張が可能である。
第１実施例において、ＤＭＡ転送を、例えば周辺回路４８（１）から共有メモリ４６に対して行っても良い。
書込み結果観測レジスタ１３についても、第２実施例の信号状態検出レジスタ５７Ａ，５７Ｂと同様に、ＣＰＵ２Ａ，２Ｂ側のローカルなバス５Ａ及び８Ａ，５Ｂ及び８Ｂ内に夫々配置しても良い。
ＣＰＵ選択レジスタ１２のデータ値を読み出す機能は必要に応じて設ければく、不要な場合はゲート２８〜３０を削除しても良い。
また、書込み結果観測レジスタ１３にデータ“０”を書込む機能も必要に応じて設ければ良く、不要な場合はゲート３１，３７〜４０を削除して，ＡＮＤゲート３２の出力端子をマスタラッチ１３Ｍの入力側に直結すれば良い。
また、書込み結果観測レジスタ１３及び信号状態検出レジスタ１４は、必要に応じて設ければ良い。
【００９３】
第２実施例の信号状態検出レジスタ５７Ａ，５７Ｂにおいて、ＤＭＡ４が出力する信号BUSREQの状態を参照できるように構成しても良い。
第３実施例における共有側のバス構成を、第４実施例と同様にしても良い。
データ転送を行うために必要な制御信号は、バス開放要求信号，及びバス開放承認信号に限ることなく、個別の設計に応じて必要とされる制御信号であれば良い。
第１乃至第３実施例においても、第４実施例と同様に、ＤＭＡ調停回路３の内部のＭＵＸ１７Ａ，１７Ｂを削除し、ＭＵＸ６Ａ，６ＢにＤＭＡ４側のアドレスバス１０を共通に入力するように構成しても良い。
ＣＰＵは３個以上あっても良く、調停回路は、そのＣＰＵの数に応じて、選択レジスタに書き込まれる選択用データに基づき制御信号の振り分けを行うように構成すれば良い。また、共有バスについても、３系統以上あっても良い。
データ転送装置は、複数のＣＰＵによって共通に使用されるものが２個以上あっても良い。
マイクロコンピュータは、ワンチップ構成のものに限らず、ディスクリートデバイスを組み合わせて構成したものでも良い。
【図面の簡単な説明】
【図１】本発明の第１実施例であり、マイクロコンピュータの電気的構成を示す機能ブロック図
【図２】主に、ＤＭＡ調停回路の詳細な電気的構成を示す図
【図３】ＣＰＵ選択レジスタの詳細な電気的構成を示す図
【図４】書込み結果レジスタの詳細な電気的構成を示す図
【図５】ＣＰＵがＤＭＡにＤＭＡ転送を行わせる場合の処理の流れを示すフローチャート
【図６】ＤＭＡがデータ転送を実行する場合の各信号波形の状態を示すタイミングチャート（その１）
【図７】図６相当図（その２）
【図８】本発明の第２実施例を示す図１相当図
【図９】本発明の第３実施例を示す図１相当図
【図１０】本発明の第４実施例を示す図１相当図
【図１１】本発明の第５実施例を示す図３相当図
【図１２】図４相当図
【図１３】従来技術を示す図１相当図
【符号の説明】
１はマイクロコンピュータ、２Ａ，２ＢはＣＰＵ、３はＤＭＡ調停回路、４はＤＭＡコントローラ（データ転送装置）、１２はＣＰＵ選択レジスタ、１３は書込み結果観測レジスタ、１４は信号状態検出レジスタ、４５，４７はアドレスバス（共有バス）、５１，５２はデータバス（共有バス）、５６はマイクロコンピュータ、５７Ａ，５７Ｂは信号状態検出レジスタ、５８，５９はマイクロコンピュータを示す。
【図１】
0004319788.tif 000002
【図２】
0004319788.tif 000003
【図３】
0004319788.tif 000004
【図４】
0004319788.tif 000005
【図５】
0004319788.tif 000006
【図６】
0004319788.tif 000007
【図７】
0004319788.tif 000008
【図８】
0004319788.tif 000009
【図９】
0004319788.tif 000010
【図１０】
0004319788.tif 000011
【図１１】
0004319788.tif 000012
【図１２】
0004319788.tif 000013
【図１３】
0004319788.tif 000014