(57)【要約】【課題】マイクロコンピュータなどの半導体集積回路装置において、複数のバスマスタ間のバス使用権調停にあたって、全体として処理効率を高く保つことが可能な手段を提供する。【解決手段】並行動作が可能な分割された第１バス１９、第２バス２０又は第３バス２１を持ち、第１バス１９上の複数のバスマスタ、例えばＣＰＵ１１とＤＭＡＣ１２、のバス使用権調停を行うバスアービタ２３を有し、第２バス２０又は第３バス２１が動作中であるか否かによって、バス使用権調停の優先順位を変えられるようにする。第２バス２０が第１バス１９と並行した動作を行っている期間に、ＤＭＡＣ１２にバス使用権を与えず、ＣＰＵ１１にバス使用権を与えることによって、第１バス１９上のＲＯＭ１３からの命令リードなどが可能となるので、不所望の待機状態の発生頻度が低減される。【選択図】        図１
2004213142.tif 000002
【特許請求の範囲】
【請求項１】
装置間の信号の伝送を行う第１のバスと、
前記第１のバスに接続された中央処理装置と、
前記第１のバスに接続されたデータ転送装置と、
前記第１のバスのバス使用権を調停するバス使用権調停手段と、
前記第１のバスを介してリード又はライトされる第２のバスとを有し、
前記バス使用権調停手段は、前記第２のバスの状態に応じて、バス使用権の調停方法を変更することを特徴とする半導体集積回路装置。
【請求項２】
請求項１記載の半導体集積回路装置であって、
前記第１のバスと前記第２のバスは、並行してバス動作を行うことが可能であり、前記第２のバスがバス動作を実行しているときは、前記中央処理装置にバス使用権を与えることを特徴とする半導体集積回路装置。
【請求項３】
請求項１又は２記載の半導体集積回路装置であって、
前記第１のバスには、前記中央処理装置のプログラムを格納するメモリが接続されていることを特徴とする半導体集積回路装置。
【請求項４】
請求項１、２又は３記載の半導体集積回路装置であって、
前記データ転送装置は、バス使用権の要求をするときに、前記第２のバスを使用するか否かを前記バス使用権調停手段に知らせることを特徴とする半導体集積回路装置。
【請求項５】
請求項１、２、３又は４記載の半導体集積回路装置であって、
前記第２のバス、又は前記第２のバスに接続される機能ブロックは、前記第１のバスよりも遅いクロックで動作することを特徴とする半導体集積回路装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、半導体集積回路装置に関し、特に中央処理装置とデータ転送装置を内蔵したマイクロコンピュータなどに適用して有効な技術に関する。
【０００２】
【従来の技術】
例えば、本発明者が検討した技術として、マイクロコンピュータなどの半導体集積回路装置においては、以下の技術が考えられる。
【０００３】
シングルチップマイクロコンピュータは、中央処理装置（ＣＰＵ）を中心にしてプログラム保持用のＲＯＭ（リードオンリメモリ）、データ保持用のＲＡＭ（ランダムアクセスメモリ）、及びデータの入出力を行うための入出力回路などの機能ブロックが一つの半導体基板上に形成されてなり、機器制御などに用いられる（例えば、非特許文献１参照）。
【０００４】
かかるマイクロコンピュータに、データ転送装置としてダイレクトメモリアクセスコントローラ（ＤＭＡＣ）を内蔵し、ＣＰＵとは独立にデータ転送を行うものがある（例えば、特許文献１参照）。
【０００５】
かかるＤＭＡＣは、割込要求によって起動でき、リピートモード、ブロック転送モードなどを行うことができる。プリンタなどのシステムにおいて、ステッピングモータの制御やプリンタの印字データ制御、さらには、受信データのメモリへの蓄積に好適である。
【０００６】
かかる例では、最大８チャネルの転送を行うことができる。ＤＭＡＣの転送はＣＰＵと独立しているが、バスを共有しているために、バス使用権調停手段としてのバスアービタによって調停され、バス使用権を与えられたときにデータ転送動作を行う。
【０００７】
バス使用権調停においては、通常、ＤＭＡＣはＣＰＵよりバス使用権の優先順位が高く設定されている。あるいは、ラウンドロビンなどのように、優先順位が予め決められた順序で変更される場合もある。
【０００８】
機器制御を行う場合、ＤＭＡＣは、タイマなどの、いわゆる周辺機能の内部Ｉ／Ｏレジスタとメモリ間のデータ転送を行うことが多い。
【０００９】
マイクロコンピュータのバスを、ＣＰＵやＤＭＡＣが接続されるＩバスと、周辺機能ブロックが接続されるＰバスと、さらには外部バスとに分割して構成し、Ｐバスないし外部バスに対するライト動作を行う場合、その完了を待たずに、ＩバスすなわちＣＰＵやＤＭＡＣは動作を先に進める、いわゆるライトバッファ機能が知られている。近年、ＣＰＵの高速化が図られる一方、低消費電力化のために、前記Ｉバスは速いクロックで動作し、Ｐバスないし外部バスは遅いクロックで動作する場合が増えているから、ライトバッファ機能は重要になる。
【００１０】
【特許文献１】
特開平５−３０７５１６号公報（第４頁、図１）
【００１１】
【非特許文献１】
電子通信学会編、「ＬＳＩハンドブック」、第1版、株式会社オーム社、昭和５９年１１月３０日、Ｐ．５４０−５４１
【００１２】
【発明が解決しようとする課題】
ところで、前記のようなマイクロコンピュータなどの半導体集積回路装置の技術について、本発明者が検討した結果、以下のようなことが明らかとなった。
【００１３】
ＣＰＵは、Ｉバスに接続されたＲＯＭなどのメモリからの命令リードの頻度が高く、次いで、ＲＡＭなどのメモリに対するリード／ライトが多い。前記の通り、ＤＭＡＣは、Ｉバスに接続されたＲＡＭなどのメモリと周辺機能ブロックとの間のデータ転送が多い。
【００１４】
例えば、ＤＭＡＣにバス使用権を与えたときに、Ｐバス上のライトバッファ機能を実行中であれば、ＤＭＡＣは当該ライトバッファ機能が終了後でなければ、メモリと周辺機能ブロックとの間のデータ転送を完了できず、待機状態になる場合がある。一方、このとき、ＣＰＵにバス使用権を与えれば、ＣＰＵはＩバス上のメモリからの命令リードやデータのリード／ライトを行うことができる。
【００１５】
そこで、本発明の目的は、マイクロコンピュータなどの半導体集積回路装置において、複数のバスマスタ間のバス使用権調停にあたって、全体として処理効率を高く保つことが可能な手段を提供するものである。
【００１６】
本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【００１７】
【課題を解決するための手段】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００１８】
すなわち、本発明による半導体集積回路装置は、分割された第１のバス（第１バス）、第２のバス（第２バス又は第３バス）を持ち、これらは並行して動作が可能であって、第１のバス上の複数のバスマスタ、例えば中央処理装置（ＣＰＵ）とデータ転送装置としてのダイレクトメモリアクセスコントローラ（ＤＭＡＣ）、のバス使用権調停を行うバス使用権調停手段を有し、バス使用権調停において、第２のバスが動作中であるか否かによって、バス使用権調停の優先順位を変えることができるものである。
【００１９】
またさらに、少なくとも一方のバスマスタは、バス使用権を要求するときに、使用するバスを示すようにするとよい。
【００２０】
よって、前記半導体集積回路装置によれば、第２のバスが、ライトバッファ機能のように、第１のバスと並行した動作を行っている期間に、データ転送装置にバス使用権を与えることにより発生する不所望の待機状態を回避することができる。このとき、中央処理装置にバス使用権を与えることによって、第１のバス上のメモリからの命令リードなどが可能となるので、不所望の待機状態の発生頻度が低減される。
【００２１】
また、データ転送装置が、バス使用権を要求するときに、第２のバスを使用するか否かを示すことにより、不所望の待機状態の発生頻度が、一層低減される。
【００２２】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部材には同一の符号を付し、その繰り返しの説明は省略する。
【００２３】
（実施の形態１）
図１は本発明の実施の形態１の半導体集積回路装置の構成を示すブロック図、図２は本実施の形態１の半導体集積回路装置において、バス使用権調停手段としてのバスアービタの論理記述を示す図、図３は本実施の形態１の半導体集積回路装置において、バス動作の一例を示すタイミング図である。
【００２４】
まず、図１により、本実施の形態１の半導体集積回路装置（マイクロコンピュータ）の構成を説明する。
【００２５】
本実施の形態１の半導体集積回路装置は、例えば、マイクロコンピュータとされ、中央処理装置（ＣＰＵ）１１、データ転送装置としてのＤＭＡコントローラ（ＤＭＡＣ）１２、リードオンリメモリ（ＲＯＭ）１３、ランダムアクセスメモリ（ＲＡＭ）１４、タイマ，パルス出力回路，シリアルコミュニケーションインタフェース（ＳＣＩ），Ａ／Ｄ変換器（Ａ／Ｄ）などを含む周辺機能ブロック１５、入出力ポート（ＩＯＰ）１６、バスコントローラ（ＢＳＣ）１７、クロック発振器（ＣＰＧ）１８などの機能ブロックもしくはモジュールから構成されている。
【００２６】
バスを使用してリード／ライトを行うバスマスタとして、ＣＰＵ１１とＤＭＡＣ１２がある。動作の主体となるのはＣＰＵ１１であり、主にＲＯＭ１３から命令を読込んで動作する。ＤＭＡＣ１２はＣＰＵ１１とバスを共有し、ＣＰＵ１１に代ってデータ転送を行う。
【００２７】
次に、バスの構成について説明する。前記マイクロコンピュータの各機能ブロックは、内部バスによって相互に接続されている。内部バスにはアドレスバス、データバスのほか、図示はされない、バス使用権要求信号、バスアクノレッジ信号、バスコマンド（リード信号、ライト信号、バスサイズ信号）が含まれている。
【００２８】
内部バスには、第１バス（Ｉバス）１９、第２バス（Ｐバス）２０、第３バス（外部バス）２１が存在する。これらのバスは、バスコントローラ（ＢＳＣ）１７によってインタフェースされている。
【００２９】
第１バス（ＩＡＢ、ＩＤＢ）１９は、ＣＰＵ１１、ＤＭＡＣ１２、ＲＯＭ１３、ＲＡＭ１４、バスコントローラ１７に接続され、さらに、ＩＡＢは外部バスのアドレスバスとするために、また、ＩＤＢは外部バスのデータバスとするために、ＩＯＰ１６内のＢＵＦ２２に接続される。第１バス１９は、バスマスタと内蔵メモリ（ＲＯＭ１３、ＲＡＭ１４）間を高速に接続するために、負荷を小さくするようにし、バス幅を広くし（例えば３２ビット）、単位ステートでの動作が可能とされている。
【００３０】
第２バス（ＰＡＢ、ＰＤＢ）２０は、バスコントローラ（ＢＳＣ）１７、ＤＭＡＣ１２、タイマ、パルス出力回路、ＳＣＩ、Ａ／Ｄ変換器、割込コントローラ、ＩＯＰ（Ａ〜Ｆ、１〜５）１６に接続されている。第２バス２０は、接続される機能ブロック数が多く、使用頻度も第１バス１９ほど高くないから、バス幅を制限し（例えば１６ビット）、複数ステート（例えば２ステート）を基本とする動作を行う。
【００３１】
第３バス（ＥＸＡＢ、ＥＸＤＢ）２１は、バスコントローラ１７とＩＯＰ（Ａ〜Ｃ）１６に接続されている。第３バスも、第２バスと同様に、バス幅を制限し（例えば１６ビット）、複数ステート（例えば２ステート）を基本とする動作を行い、さらに所定のウェイトステートの挿入も可能とする。バスアクセスのステート数やウェイトの有無は、アドレス空間を分割したエリアに応じて指定可能とする。
【００３２】
バスコントローラ１７は、バスアービタ２３、第１バスコントローラ（図示せず）、第２バスコントローラ２４、第３バスコントローラ２５、リフレッシュタイマ（図示せず）などから構成される。
【００３３】
ＤＭＡＣ１２は、第１バス１９のバス使用権を要求でき、第１バス１９を介して、リード／ライトを行う。第２バス２０はバススレーブとして接続され、ＣＰＵ１１からリード／ライトされる。
【００３４】
ＣＰＵ１１は、第１バス１９のバス使用権を要求できる。これらのＣＰＵ１１、ＤＭＡＣ１２は、第１バス１９を介して、第２バス２０、第３バス２１を利用できる。
【００３５】
ＣＰＵ１１は、通常バス使用権が与えられる。バスアービタ２３は、ＣＰＵ１１にバス使用権を与えていることを、ｃｐｕａｃｋ信号によって知らせる。
【００３６】
ＤＭＡＣ１２は、ｄｍａｒｅｑ信号によって、バスアービタ２３に対してバス使用権を要求し、バスアービタ２３は、ｄｍａａｃｋ信号によって、ＤＭＡＣ１２にバス使用権を与えたことを知らせる。このとき同時に、ｃｐｕａｃｋ信号を非活性化する。
【００３７】
ＲＯＭ１３、ＲＡＭ１４、タイマ、パルス出力回路、ＳＣＩ、Ａ／Ｄ変換器、ＩＯＰ（Ａ〜Ｆ、１〜５）１６、割込コントローラの各機能ブロック及びＤＭＡＣ１２はスレーブとして、ＣＰＵ１１又はＤＭＡＣ１２によってリード／ライトされる。
【００３８】
第２バス２０、第３バス２１に対するリード／ライトは、前記の通り、ＣＰＵ１１及びＤＭＡＣ１２により第１バス１９を介して行われる。ライトの場合、第１バス１９に、ＣＰＵ１１及びＤＭＡＣ１２が、バスコマンド，アドレス，データを出力し、指定されたアドレスに対応する第２バスコントローラ２４又は第３バスコントローラ２５が、バス幅や、当該バスのアクセス仕様に対応したライト動作の実行を行う。このとき、第１バス１９上のステートは先に進むことができる。これをライトバッファ機能と呼ぶ。
【００３９】
その他の本実施の形態１であるマイクロコンピュータの機能の概略は以下の通りである。
【００４０】
入出力ポートは、外部バス信号、入出力回路の入出力信号と兼用とされている。外部アドレス（ＥＸＡＢ）、外部データ（ＥＸＤＢ）は、これらの入出力ポートに含まれるバッファ回路（ＢＵＦ）２２を介して、第１バス１９のＩＡＢ，ＩＤＢと接続されている。第２バス２０のＰＡＢ、ＰＤＢは入出力ポートのレジスタをリード／ライトするために使用し、外部バスとは直接の関係はない。バス制御信号出力は、アドレスストローブ、ハイ／ロウデータストローブ、リードストローブ、ライトストローブ、バスアクノリッジ信号などがある。バス制御入力信号にはウェイト信号、外部バスリクエスト信号などがある。これらの入出力信号は図示されない。外部バス拡張を行うことは、動作モードなどで選択され、これらの入出力ポートの機能も選択される。
【００４１】
また、ＩＯＰ（１）はタイマ入出力、ＩＯＰ（２）はパルス出力、ＩＯＰ（３）はＳＣＩ入出力、ＩＯＰ（４）はアナログ入力、ＩＯＰ（５）はＤＭＡＣ入出力と兼用されている。ＤＭＡＣ１２、タイマ、ＳＣＩ、パルス出力、Ａ／Ｄ変換器とＩＯＰ（１〜５）との入出力信号や内部割込み要求信号などは図示されない。
【００４２】
ＣＰＧ１８は、バスマスタ用のクロックφＩ、第２バス（Ｐバス）２０に接続された機能ブロック用のクロックφＰ、第３バス（外部バス）２１用のクロックφＥを出力し、図示はされないが、クロックφＩとクロックφＰの同期タイミングを示すＳＹＮＣＰ信号、クロックφＩとクロックφＥの同期タイミングを示すＳＹＮＣＥ信号を出力する。クロックφＰとクロックφＥは、クロックφＩの周波数以下の条件で、周波数を選択できる。
【００４３】
さらに、図示はされないが、割込みコントローラを有し、タイマ、ＳＣＩ、Ａ／Ｄ変換器、入出力ポートの出力する割込信号を入力し、ＣＰＵ１１に割込要求信号を、ＤＭＡＣ１２に起動要求信号を出力する。また、ＤＭＡＣ１２の出力するクリア信号を入力して、割込クリア信号を出力する。これらの割込み信号などは図示されていない。また、図示はされないが、電源端子Ｖｃｃ，Ｖｓｓ、アナログ電源端子ＡＶｃｃ，ＡＶｓｓ、リセット入力ＲＥＳ、スタンバイ入力ＳＴＢＹ、割込入力ＮＭＩ、クロック入力ＥＸＴＡＬ，ＸＴＡＬ、動作モード入力ＭＤ０，ＭＤ１，ＭＤ２などの入力端子がある。
【００４４】
次に、図２により、本実施の形態１において、バス使用権調停手段としてのバスアービタ２３の機能を説明する。前記の通り、バスアービタ２３は、ｄｍａｒｅｑ信号を入力し、ｃｐｕａｃｋ信号、ｄｍａａｃｋ信号を出力する。また、第２バスコントローラ２４、第３バスコントローラ２５のライトバッファ動作を示すｐｗｒｂｆ、ｅｗｒｂｆ信号を入力する。
【００４５】
ＤＭＡＣ１２へのバス使用権は、ＤＭＡＣ１２がバス使用権を要求し（ｄｍａｒｅｑ＝１）、第２バス２０、第３バス２１上でライトバッファ動作が行われていないとき（ｐｗｒｂｆ＝０，ｅｗｒｂｆ＝０）に与えられる（ｄｍａａｃｋ＝１）。ＣＰＵ１１へのバス使用権は、ＤＭＡＣ１２へのバス使用権の論理反転として与えられる。
【００４６】
次に、図３により、本実施の形態１であるマイクロコンピュータのバス動作のタイミングの一例を説明する。以下は、第１バス１９、第２バス２０において、φＰがφＩの２分周となっている場合の一例である。
【００４７】
バス使用権調停、第１バス１９のＩＡＢ出力，ＩＤＢ入出力は、パイプライン化しており、この状態は、レディ信号ｒｅａｄｙが活性状態のときに遷移する。すなわち、ｒｅａｄｙ＝１のときに、ｄｍａａｃｋ又はｃｐｕａｃｋ信号によってバス使用権を与えられたバスマスタが、次のクロックからＩＡＢを使用して、アドレスを出力する。アドレスはｒｅａｄｙ＝１となったときに使用され、アドレスを出力していたバスマスタは、次のクロックからＩＤＢを使用してデータを入出力する。
【００４８】
クロックφＩにおけるタイミングＴ１で、ＣＰＵ１１が第２バス２０に相当するアドレスｗａ１にライトを行うと、タイミングＴ２でライトデータｗｄ１が出力され、これらは第２バス２０のＰＡＢ、ＰＤＢに出力されて、第２バス２０上のライト動作が実行される。ライトバッファ動作を行うため、第２バスコントローラ２４は、ｐｗｒｂｆ信号を活性状態（ｐｗｒｂｆ＝１）にする。
【００４９】
一方、ＣＰＵ１１はタイミングＴ２で、次のアドレス出力（例えば、ＲＯＭ１３からの命令リード）を行う。ＤＭＡＣ１２は、ｄｍａｒｅｑを活性状態（ｄｍａｒｅｑ＝１）にしてバス使用権を要求するが、ライトバッファ動作中であるため、バスアービタ２３はＤＭＡＣ１２に対してバス使用権を与えない。
【００５０】
その後、タイミングＴ４で第２バスコントローラ２４は、ｐｗｒｂｆ信号を非活性状態（ｐｗｒｂｆ＝０）にし、バスアービタ２３はｄｍａａｃｋ信号を活性状態（ｄｍａａｃｋ＝１）にし、ＤＭＡＣ１２にバス使用権を与える。
【００５１】
タイミングＴ５で、ＤＭＡＣ１２は第２バス２０に相当するアドレスｒａに対するリードを開始する。
【００５２】
タイミングＴ６で、ＤＭＡＣ１２は、ｄｍａｒｅｑ信号を非活性状態（ｄｍａｒｅｑ＝０）にしてバス使用権要求を取り下げる。バスアービタ２３はｄｍａａｃｋ信号を非活性状態（ｄｍａａｃｋ＝０）にし、ｃｐｕａｃｋを活性状態（ｃｐｕａｃｋ＝１）にして、バス使用権をＣＰＵ１１に戻す。
【００５３】
なお、ｐｗｒｂｆ信号やｄｍａｒｅｑ信号は、第２バスコントローラ２４やＤＭＡＣ１２のステートの遷移に応じて、所定のタイミングで変化させるようにすればよい。前記の通り、バス使用権調停、ＩＡＢ出力、ＩＤＢ入出力は、パイプライン化しているから、実際使用するタイミングより、事前に変化させる必要がある。
【００５４】
したがって、本実施の形態１の半導体集積回路装置によれば、ライトバッファ機能のように第２バス又は第３バスが第１バスと並行動作している期間に、ＤＭＡＣにバス使用権を与えず、ＣＰＵにバス使用権を与えることにより、マイクロコンピュータなどの処理性能を向上させることができる。
【００５５】
（実施の形態２）
図４は本発明の実施の形態２である半導体集積回路装置において、ＤＭＡＣのレジスタ構成を示す図、図５は本実施の形態２である半導体集積回路装置において、バス使用権調停手段としてのバスアービタの論理記述を示す図、図６は本実施の形態２である半導体集積回路装置において、ＤＭＡＣのバス使用権要求の論理記述を示す図、図７は本実施の形態２である半導体集積回路装置において、バス動作の一例を示すタイミング図である。
【００５６】
本実施の形態２の半導体集積回路装置は、例えば、マイクロコンピュータとされ、基本的な構成は、前記実施の形態１で示した図１と同じである。異なる点は、ＤＭＡＣ１２のレジスタ構成とバスアービタ２３の構成である。
【００５７】
まず、図４により、本実施の形態２において、ＤＭＡＣ１２のレジスタ構成を説明する。図４は、１チャネル分のレジスタ構成を示す。
【００５８】
ＤＭＡＣ１２のレジスタ群は、ソースアドレスレジスタ（ＳＡＲ）４１、デスティネーションアドレスレジスタ（ＤＡＲ）４２、転送カウンタ（ＴＣＲ）４３、ＤＭＡコントロールレジスタ（ＤＭＣＲ）４４などから構成される。
【００５９】
ソースアドレスレジスタ（ＳＡＲ）４１とデスティネーションアドレスレジスタ（ＤＡＲ）４２は、それぞれ、転送元と転送先のアドレスを指定する。１回のデータ転送を行うと、例えば、インクリメントが行われる。
【００６０】
転送カウンタ（ＴＣＲ）４３は、転送回数を指定する。１回のデータ転送を行うと、デクリメントが行われ、カウンタの内容が０になると、ＤＭＡコントロールレジスタ（ＤＭＣＲ）４４のＤＴＥビットを０にクリアして、割込み要求を発生する。
【００６１】
ＤＭＡコントロールレジスタ（ＤＭＣＲ）４４は、ＤＴＥビット、ＤＭＡＰビット、ＤＭＡＥビット、ＳＺ１〜０ビット、ＤＴＳ２〜０ビットから構成される。ＤＴＥビットは、当該チャネルのデータ転送を許可する。ＤＭＡＰビットは、転送先又は転送元のアドレスが第２バスに相当するときに１にセットされる。同様に、ＤＭＡＥビットは、転送先又は転送元のアドレスが第３バスに相当するときに１にセットされる。ＳＺ１〜０ビットはデータ転送サイズ（バイト、ワード、ロングワード）を指定する。ＤＴＳ２〜０ビットは転送要求発生元を指定する。
【００６２】
そのほか、ＤＭＡＣ共通に制御レジスタを持つが、詳細な説明は省略する。
【００６３】
次に、図５により、本実施の形態２におけるバスアービタ２３の機能を説明する。
【００６４】
バスアービタ２３は、ＤＭＡＣ１２から、ｄｍａｒｅｑ信号とともに、前記ＤＭＡコントロールレジスタ（ＤＭＣＲ）４４のＤＭＡＰビット，ＤＭＡＥビットの内容に対応したｄｍａｐ，ｄｍａｅ信号を入力する。これらは、バス使用権を与えられた後実行すべき、ＤＭＡＣ１２のデータ転送において、第２バス、第３バスを使用することを示す。
【００６５】
ＤＭＡＣ１２へのバス使用権は、ＤＭＡＣ１２がバス使用権を要求し（ｄｍａｒｅｑ＝１）、ＤＭＡＣ１２が第２バスを使用しない（ｄｍａｐ＝０）か、第２バス上でライトバッファ動作が行われていないとき（ｐｗｒｂｆ＝０）、かつ、ＤＭＡＣ１２が第３バスを使用しない（ｄｍａｅ＝０）か、第３バス上でライトバッファ動作が行われていないとき（ｅｗｒｂｆ＝０）に、与えられる（ｄｍａａｃｋ＝１）。ＣＰＵ１１へのバス使用権は、ＤＭＡＣ１２へのバス使用権の論理反転として与えられる。
【００６６】
次に、図６により、ＤＭＡＣ１２のバス使用権要求の機能を説明する。本例では、ＤＭＡＣ１２は２チャネル（チャネル０及びチャネル１）を有するものとする。
【００６７】
従来と同様に、ＤＭＡＣ１２において、転送要求信号の受付けと、複数の転送要求が発生した場合のチャネル間の優先順位の判定が行われる。
【００６８】
ＤＭＡＣ１２のバス使用権要求は、チャネル０，１の転送要求信号ｔｒｅｑ０，ｔｒｅｑ１の論理和とされる。
【００６９】
２チャネルに同時に転送要求が行われた場合は、チャネル０を優先する。前記信号ｄｍａｐ、ｄｍａｅはチャネルの優先順位に従って、選択されたチャネルの制御ビットｄｍａｐ０又はｄｍａｐ１、ｄｍａｅ０又はｄｍａｅ１が、ＤＭＡＣ１２からバスアービタ２３へ出力される。例えば、ｄｍａｐ０は、チャネル０に対応する図４に示したＤＭＡＰビットから出力される。
【００７０】
次に、図７により、本実施の形態２であるマイクロコンピュータにおけるバス動作のタイミングの一例を説明する。
【００７１】
以下は、第１バス、第３バスについて、φＥが、φＩの２分周となっている場合の例である。
【００７２】
クロックφＩにおけるタイミングＴ１で、ＣＰＵ１１が第３バス２１に相当するアドレスｗａ２にライトを行うと、タイミングＴ２でライトデータｗｄ２が出力され、これらは第３バス２１のＥＸＡＢ，ＥＸＤＢに出力されて、第３バス上のライト動作が実行される。ライトバッファ動作を行うため、第３バスコントローラ２５は、ｅｗｒｂｆ信号を活性状態（ｅｗｒｂｆ＝１）にする。このライトはクロックφＥの３クロックで実行するものとする。
【００７３】
一方、ＤＭＡＣ１２は既に、チャネル０に従って、ｄｍａｒｅｑを活性状態（ｄｍａｒｅｑ＝１）にし、バス使用権を要求し、第３バスを使用しないことを、ｄｍａｅを非活性状態（ｄｍａｅ＝０）にして示す。バスアービタ２３は、第３バス上でライトバッファ実行中であるが、ＤＭＡＣ１２は第３バス２１を使用しないので、ｄｍａａｃｋを活性状態（ｄｍａａｃｋ＝１）にしてバス使用権を与える。
【００７４】
ＤＭＡＣ１２はタイミングＴ２，Ｔ３で、データ転送（例えば、ＲＡＭ１４から、第２バス２０上の周辺機能ブロック１５への転送）のアドレスを出力し、タイミングＴ３，Ｔ４でデータ入出力を行う。
【００７５】
タイミングＴ３では、ＤＭＡＣ１２がバス使用権要求を取り下げる。バスアービタ２３はｄｍａａｃｋ信号を非活性状態（ｄｍａａｃｋ＝０）にし、ｃｐｕａｃｋを活性状態（ｃｐｕａｃｋ＝１）にして、バス使用権をＣＰＵ１１に戻す。
【００７６】
ＤＭＡＣ１２は、引続き、チャネル１に従って、タイミングＴ５でｄｍａｒｅｑを活性状態（ｄｍａｒｅｑ＝１）にし、バス使用権を要求し、第３バス２１を使用することを、ｄｍａｅを活性状態（ｄｍａｅ＝１）にして示す。バスアービタ２３は、タイミングＴ６でｅｗｒｂｆ信号が非活性状態（ｅｗｒｂｆ＝０）になったときに、ｄｍａａｃｋを活性状態（ｄｍａａｃｋ＝１）にしてバス使用権を与える。
【００７７】
タイミングＴ７で、ＤＭＡＣ１２は第３バス２１に相当するアドレスｒａに対するリードを開始する。
【００７８】
タイミングＴ８で、ＤＭＡＣ１２は、ｄｍａｒｅｑ信号を非活性状態（ｄｍａｒｅｑ＝０）にしてバス使用権要求を取り下げる。バスアービタ２３はｄｍａａｃｋ信号を非活性状態（ｄｍａａｃｋ＝０）にし、ｃｐｕａｃｋ信号を活性状態（ｃｐｕａｃｋ＝１）にして、バス使用権をＣＰＵ１１に戻す。
【００７９】
したがって、本実施の形態２の半導体集積回路装置によれば、ＤＭＡＣの制御ビットに指定を行うことにより、バスアービタのバス使用権調停を制御し、マイクロコンピュータなどの処理性能を向上させることができる。
【００８０】
以上、本発明者によってなされた発明をその実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００８１】
例えば、前記実施の形態においては、データ転送装置として、ＤＭＡＣについて説明したが、これに限定されるものではなく、データトランスファコントローラと称されるものであってもよいし、データ転送のみならず、演算機能などを有するものであってもよい。
【００８２】
また、ＣＰＵに代って、バス使用権を獲得して、バスを利用できるものであればよい。
【００８３】
また、第１バス上に複数のデータ転送装置を設けることも可能であり、バスアービタの論理記述は容易に変形可能である。
【００８４】
また、バス使用権調停時に参照する情報としては、ライトバッファ機能に限らず、第２，第３バス上でバスサイクルが実行中であることを示す情報とすればよい。例えば、第２バス上に、別のデータ転送装置が存在して、前記別のデータ転送装置のデータ転送が行われていることを示す情報を含むことができる。第３バスにおいては、外部バス使用権解放なども含むことができる。
【００８５】
また、ＤＭＡＣが、使用するバスを示す方法も種々変形が可能である。制御レジスタで設定するほか、ソースアドレスレジスタ、デスティネーションアドレスレジスタのアドレス情報から使用するバスを判定してもよい。バスアービタに通知する信号線やタイミングも変形可能である。
【００８６】
また、バスは３つに分割されているほか、４以上であってもよい。第１，第２バスを一体に構成することもできる。第２，第３バスの一方のみ、ライトバッファ機能を持つようにしてもよい。
【００８７】
また、バスの動作タイミングや、制御信号なども種々変更可能である。
【００８８】
また、マイクロコンピュータの構成についても限定されない。そのほか、機能ブロックなども種々変更できる。
【００８９】
以上の説明では、主として本発明者によってなされた発明をその属する技術分野であるシングルチップマイクロコンピュータに適用した場合について説明したが、これに限定されるものではなく、その他の半導体集積回路装置、例えば、デジタルシグナルプロセッサ（ＤＳＰ）を中心にした半導体集積回路装置などに適用することも可能である。本発明は少なくとも、データ処理装置に接続可能なデータ転送装置を内蔵した半導体集積回路装置に適用することができる。
【００９０】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、以下のとおりである。
【００９１】
（１）第２のバスが、ライトバッファ機能のように、第１のバスと並行した動作を行っている期間に、データ転送装置にバス使用権を与えず、中央処理装置にバス使用権を与えることによって、第１のバス上のメモリからの命令リードなどが可能となるため、不所望の待機状態の発生頻度が低減される。
【００９２】
（２）データ転送装置が、バス使用権を要求するときに、第２のバスを使用するか否かを示すことにより、不所望の待機状態の発生頻度が、一層低減される。
【００９３】
【発明の効果】
不所望の待機状態の発生頻度が低減され、半導体集積回路装置の処理性能の向上が可能となる。
【図面の簡単な説明】
【図１】本発明の実施の形態１の半導体集積回路装置の構成を示すブロック図である。
【図２】本発明の実施の形態１の半導体集積回路装置において、バス使用権調停手段としてのバスアービタの論理記述を示す図である。
【図３】本発明の実施の形態１の半導体集積回路装置において、バス動作の一例を示すタイミング図である。
【図４】本発明の実施の形態２である半導体集積回路装置において、ＤＭＡＣのレジスタ構成を示す図である。
【図５】本発明の実施の形態２である半導体集積回路装置において、バス使用権調停手段としてのバスアービタの論理記述を示す図である。
【図６】本発明の実施の形態２である半導体集積回路装置において、ＤＭＡＣのバス使用権要求の論理記述を示す図である。
【図７】本発明の実施の形態２である半導体集積回路装置において、バス動作の一例を示すタイミング図である。
【符号の説明】
１１  中央処理装置（ＣＰＵ）
１２  ＤＭＡコントローラ（ＤＭＡＣ）
１３  リードオンリメモリ（ＲＯＭ）
１４  ランダムアクセスメモリ（ＲＡＭ）
１５  周辺機能ブロック
１６  入出力ポート（ＩＯＰ）
１７  バスコントローラ（ＢＳＣ）
１８  クロック発振器（ＣＰＧ）
１９  第１バス
２０  第２バス
２１  第３バス
２２  バッファ回路（ＢＵＦ）
２３  バスアービタ
２４  第２バスコントローラ
２５  第３バスコントローラ
４１  ソースアドレスレジスタ（ＳＡＲ）
４２  デスティネーションアドレスレジスタ（ＤＡＲ）
４３  転送カウンタ（ＴＣＲ）
４４  ＤＭＡコントロールレジスタ（ＤＭＣＲ）
ｄｍａｒｅｑ  ＤＭＡＣバス使用権要求信号
ｄｍａａｃｋ  ＤＭＡＣバス使用権承認信号
ｄｍａｐ，ｄｍａｐ０，ｄｍａｐ  ＤＭＡＣ第２バス使用信号
ｄｍａｅ，ｄｍａｅ０，ｄｍａｅ１  ＤＭＡＣ第３バス使用信号
ｃｐｕａｃｋ  ＣＰＵバス使用権承認信号
ｒｅａｄｙ  レディ信号
ｔｒｅｑ０，ｔｒｅｑ１  転送要求信号
ｐｗｒｂｆ  第２バスライトバッファ信号
ｅｗｒｂｆ  第３バスライトバッファ信号
ｒａ，ｗａ１，ｗａ２  アドレス
ｗｄ１，ｗｄ２，ｒ，ｒｄ  データ
φＩ，φＰ，φＥ  クロック
ＩＡＢ  第１バスアドレス
ＩＤＢ  第1バスデータ
ＰＡＢ  第２バスアドレス
ＰＤＢ  第２バスデータ
ＥＸＡＢ  第３バスアドレス
ＥＸＤＢ  第３バスデータ
【図１】
2004213142.tif 000003
【図２】
2004213142.tif 000004
【図３】
2004213142.tif 000005
【図４】
2004213142.tif 000006
【図５】
2004213142.tif 000007
【図６】
2004213142.tif 000008
【図７】
2004213142.tif 000009