(57)【要約】【課題】データ転送処理とこれに並行する中央処理によるデータ処理とを効率化する。【解決手段】データ転送装置（５）は、第１のバス（ＩＢＵＳ）と第２のバス（ＰＢＵＳ）の夫々に対し独立したバス権要求とアドレス出力が可能である。双方のバスのバス権を共に占有する状態を解消可能であり、一方のバスのバス権を獲得してリード又はライトを行っているとき他方のバスのバス権を解放することが可能になる。データ転送装置が第１のバスのバス権を解放しているとき中央処理装置（３）はデータ処理が可能である。１つのデータ転送起動要求に応答して、一方のバスに対するバス権の要求と他方のバスに対するバス権の要求を行う。バス毎に夫々別々のデータ転送要求によってバス権の要求を行うシーケンスを採用しない。データ転送要求と承認のハンドシェークシーケンスが簡素化される。【選択図】        図１
2004227049.tif 000002
【特許請求の範囲】
【請求項１】
第１のバスと第２のバスに接続され、それらバスの間のデータ転送を行うデータ転送装置であって、
前記第１のバスと第２のバスの夫々に対し独立したバス権要求とアドレス出力が可能であり、１つのデータ転送起動要求に応答して、リードを行う一方のバスにバス権を要求し、ライトを行う他方のバスにバス権を要求することを特徴とするデータ転送装置。
【請求項２】
前記一方のバスのバス権要求と他方のバスのバス権要求を別のタイミングで行うことを特徴とする請求項１記載のデータ転送装置。
【請求項３】
バス権を獲得した一方のバスのリード動作の所定タイミングで、他方のバスのバス権要求を行うことを特徴とする請求項２記載のデータ転送装置。
【請求項４】
複数のデータ転送チャネルと、データ転送チャネルの動作を指示する制御レジスタを有し、
前記制御レジスタは、転送要求を受付けるデータ転送チャネルと転送要求発生元との対応を定義する転送要求発生元指定領域、データ転送チャネルと転送元バスとの対応を定義するソースバス指定領域、及びデータ転送チャネルと転送先バスとの対応を定義するディスティネーションバス指定領域を有することを特徴とする請求項３記載のデータ転送装置。
【請求項５】
第１のバスと、第２のバスと、前記第１のバスと第２のバスの間のデータ転送を行うデータ転送装置と、前記第１のバスに接続された中央処理装置と、前記中央処理装置の制御プログラムを保有し前記第１のバスに接続されたプログラム格納用メモリとを有し、
前記データ転送装置は、前記第１のバスと第２のバスの夫々に対し独立したバス権要求とアドレス出力が可能であり、１つのデータ転送起動要求に応答して、リードを行う一方のバスにバス権を要求し、それとは異なったタイミングでライトを行う他方のバスにバス権を要求し、
前記中央処理装置は、前記データ転送装置による第２のバスを利用したバスアクセスに並行して、前記第１のバスを利用したバスアクセスが可能であることを特徴とする半導体集積回路。
【請求項６】
第１のバスと、第２のバスと、前記第１のバスと第２のバスの間のデータ転送を行うデータ転送装置と、前記第１のバスに接続された中央処理装置と、前記第１のバスと第２のバスのバス制御手段とを有し、
前記データ転送装置は、前記第１のバスと第２のバスの夫々に対し独立したバス権要求とアドレス出力が可能であり、１つのデータ転送起動要求に応答して、リードを行う一方のバスにバス権を要求し、それとは異なったタイミングでライトを行う他方のバスにバス権を要求し、
前記バス制御手段は、前記第１のバスと第２のバスの夫々に対し独立にバス権要求の調停とバス制御が可能であることを特徴とする半導体集積回路。
【請求項７】
第１のバスと、第２のバスと、第３のバスと、前記第１のバスに接続された中央処理装置と、前記中央処理装置の制御プログラムを保有し前記第１のバスに接続されたプログラム格納用メモリと、前記第２のバスと第３のバスの間のデータ転送が可能なデータ転送装置とを有し、
前記データ転送装置は、前記第２のバスと第３のバスの夫々に対し独立したバス権要求とアドレス出力が可能であり、１つのデータ転送起動要求に応答して、リードを行う一方のバスにバス権を要求し、それとは異なったタイミングでライトを行う他方のバスにバス権を要求し、
前記中央処理装置は、前記データ転送装置による第２のバス又は第３のバスを利用したバスアクセスに並行して、前記第１のバスを利用したバスアクセスが可能であることを特徴とする半導体集積回路。
【請求項８】
前記第１乃至第３のバスのバス制御手段を有し、
前記バス制御手段は、前記第１乃至第３のバスの夫々に対し独立にバス権要求の調停とバス制御が可能であることを特徴とする請求項７記載の半導体集積回路。
【請求項９】
前記中央処理装置は、前記第１のバスから前記バス制御手段を介して第２のバス又は第３のバスをアクセス可能であることを特徴とする請求項８記載の半導体集積回路。
【請求項１０】
第１のバスと、第２のバスと、第３のバスと、前記第１のバスに接続された中央処理装置と、前記中央処理装置の制御プログラムを保有し前記第１のバスに接続されたプログラム格納用メモリと、前記第１乃至第３のバスの内の何れか２つのバスの間のデータ転送を行うデータ転送装置とを有し、
前記データ転送装置は、前記第１乃至第３のバスの夫々に対し独立したバス権要求とアドレス出力が可能であり、１つのデータ転送起動要求に応答して、リードを行うバスにバス権を要求し、それとは異なったタイミングでライトを行うバスにバス権を要求することを特徴とするマイクロコンピュータ。
【請求項１１】
前記中央処理装置は、前記データ転送装置による第２のバス又は第３のバスを利用したバスアクセスに並行して、前記第１のバスを利用したバスアクセスが可能であることを特徴とする請求項１０記載のマイクロコンピュータ。
【請求項１２】
前記第１乃至第３のバスのバス制御手段を有し、
前記バス制御手段は、前記第１乃至第３のバスの夫々に対し独立にバス権要求の調停とバス制御が可能であることを特徴とする請求項１１記載のマイクロコンピュータ。
【請求項１３】
前記中央処理装置は、前記第１のバスから前記バス制御手段を介して第２のバス又は第３のバスをアクセス可能であることを特徴とする請求項１２記載のマイクロコンピュータ。
【請求項１４】
前記データ転送装置は、複数のデータ転送チャネルと、データ転送チャネルの動作を指示する制御レジスタを有し、
前記制御レジスタは、転送要求を受付けるデータ転送チャネルと転送要求発生元との対応を定義する転送要求発生元指定領域、データ転送チャネルと転送元バスとの対応を定義するソースバス指定領域、及びデータ転送チャネルと転送先バスとの対応を定義するディスティネーションバス指定領域を有することを特徴とする請求項１０記載のマイクロコンピュータ。
【請求項１５】
前記制御レジスタは中央処理装置によってアクセス可能であることを特徴とする請求項１４記載のマイクロコンピュータ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ転送装置に係り、詳しくはこれを内蔵する半導体集積回路及びマイクロコンピュータに関し、例えば高速の外部入出力インタフェース回路を備えたシングルチップマイクロコンピュータに利用して有効な技術に関するものである。
【０００２】
【従来の技術】
シングルチップマイクロコンピュータは、中央処理装置（ＣＰＵ）を中心にしてプログラム保持用のＲＯＭ（リードオンリメモリ）、データ保持用のＲＡＭ（ランダムアクセスメモリ）、およびデータの入出力を行うための入出力回路などの機能ブロックが１つの半導体基板上に形成されて成る。
【０００３】
かかるシングルチップマイクロコンピュータに、ダイレクトメモリアクセスコントローラ（ＤＭＡＣ）を内蔵し、ＣＰＵとは独立にデータ転送を可能にしたものがある（特許文献１参照）。そのＤＭＡＣは、割込要求によって起動でき、リピートモード、ブロック転送モードなどを行うことができる。プリンタなどのシステムにおいて、ステッピングモータの制御（複数）やプリンタの印字データ制御、さらには、受信データのメモリへの蓄積に好適である。かかる例では、最大８チャネルの転送を行うことができる。ＤＭＡＣの転送はＣＰＵと独立しているが、ＣＰＵとバスを共有しているために、ＤＭＡＣによるデータ転送に必要なバスサイクルではＣＰＵの動作を停止してしまう。すなわち、１つの起動要求に対して、ＤＭＡＣはバス権を獲得し、リードとライトの２つのバスサイクルの間バスを占有する。例えば、ＲＡＭから入出力回路にバイトデータの転送で転送元・転送先アドレスをインクリメントする場合、ＲＡＭのアクセスを２ステート、入出力回路のアクセスを３ステートとして、前記の例では、デッドサイクル１ステートを含めて、データ転送６ステート分でバスを占有する。なお、シングルチップマイクロコンピュータまたは半導体集積回路装置の基準クロックの１周期を１ステートと言う。
【０００４】
一方、マイクロコンピュータの外部バスに、ＤＭＡコントローラを接続すれば、ＣＰＵのＲＯＭリードなどの内部バスの動作と、外部のＤＭＡコントローラによる、受信データのメモリへの転送などの外部バス上の転送を並行して行うことができる。しかしながら、外部バス権解放は、そのバス権の授受の際に、アクノレッジ信号やリクエスト信号などの認識の遅延が発生するし、マイクロコンピュータと外部のＤＭＡコントローラのバスが衝突したりしないようにするために、双方がバスを使用しない時間が発生したりして、実際の動作に関係のないオーバヘッドを発生しやすい。１回のデータ転送の前後に、オーバヘッドが発生してしまうのでは、実際のデータ転送にかかる時間に比較して無視できない。また、外部のＤＭＡコントローラは、汎用的なものを使用すれば、使用しない機能が生じてしまい、費用対効果の面で得策とは言えない。また、各システムに適したＤＭＡコントローラを開発することは可能だが、マイクロコンピュータと別のＬＳＩでは製造費用などの面で不利になりやすい。
【０００５】
本発明者による先の出願（特許文献２参照）では、マイクロコンピュータの外部バス上の転送を行う外部バスＤＭＡＣをオンチップし、外部バスとマイクロコンピュータの内部バスとを並列に動作可能とし、外部バスＤＭＡＣによる外部バス上のデータ転送と、ＣＰＵによる内部バスを用いた命令実行などの内部バスマスタの内部バス上の動作（ＤＭＡＣによる内部バス上のデータ転送など）とを並列に動作可能とする。これにより、外部バスＤＭＡＣによる外部バス上のデータ転送と、ＣＰＵによる内部バスを用いた命令実行とを並列に動作可能になり、マイクロコンピュータの処理性能を向上できる。ＣＰＵの処理性能を低下させることなく、外部バス上のデータ転送を行うことができる。
【０００６】
上記特許文献１，２に代表されるＤＭＡＣは結局、バスマスタとして、単一のバス（内部バスまたは外部バスの一方）に接続され、そのバスを利用して、リード・ライトといったデータ転送を実行するものである。したがって、そのようなＤＭＡＣはソースアドレスとディスティネーションアドレスに対するアクセス動作中ずっとその単一バスのバス権を占有することになる。
【０００７】
これに対し特許文献３には、異なる２つのデータ処理装置に対応してそれぞれ設けられるインタフェースを通して読出し／書込みが可能にされたバッファメモリを設け、上記２つのインタフェースに対応したそれぞれのデータ処理装置と上記バッファメモリとの間で相互にデータの授受を行うデータ転送機能を持つようにする例が記載されている。この場合は、第１のインタフェースを通した、周辺処理装置から上記バッファメモリへのデータ転送と、第２のインタフェースを通した、上記バッファメモリからメインメモリへのデータ転送を、別々に行うようになっており、データ転送要求も独立になっている。
【０００８】
【特許文献１】
特願平４−１３７９５４号公報
【特許文献２】
特開２０００−２３５５６０号公報
【特許文献３】
特開平５−２５５７号公報
【０００９】
【発明が解決しようとする課題】
本発明者はデータ転送制御の観点よりマイクロコンピュータ等による処理のトータル性能を向上することについて検討した。即ち、応用システムの小型化の要求や、半導体集積回路の微細加工の進展に伴い、各種のインタフェース回路が、マイクロコンピュータに集積されるようになってきている。例えば、ＵＳＢ（ユニバーサルシリアルバス）インタフェース、ＭＭＣ（マルチメディアカード）インタフェースなどがある。前記インタフェースから入力されたデータは、通常、一旦バッファＲＡＭに蓄えるため、ＤＭＡＣを用いて、前記インタフェースからバッファＲＡＭへ転送する。音声さらには画像データなどを扱う応用機器が増えるにつれて、転送するデータも大容量かつ高速になる。例えば、ＵＳＢの場合４８０Ｍｂｐｓである。このデータ転送の期間、ＣＰＵがバスを使用できず、プログラムの実行が妨げられてしまうと、システム全体の制御ができず、不都合が発生してしまう。要するに、ＵＳＢインタフェースなどにより大量のデータを受信しているときＣＰＵの処理を間に入れられる余地すらない程に高速にデータ受信が行なわれるということである。逆にインタフェース速度が低速であれば随時ＣＰＵの処理を割込ませる時間的余裕はできる。また、バッファＲＡＭに蓄えたデータも、ＣＰＵによって加工が必要になる場合がある。バッファＲＡＭがシンクロナスＤＲＡＭのような、連続アクセスが好適なメモリにあっては、ＣＰＵが逐次リード／ライトするよりも、まとまったデータを内蔵ＲＡＭに転送し、加工し、バッファＲＡＭに書戻す処理をした方が高速になることが考えられる。この場合には、バッファＲＡＭと内蔵ＲＡＭの間の転送を、ＤＭＡＣによって高速に実行できることが必要である。加工済みのデータの転送や、新しいデータの入力などと重なり合っても、ＣＰＵによる処理時間が遅くならないようにすることが必要である。
【００１０】
しかしながら、上記特許文献１，２に代表されるＤＭＡＣのように、バスマスタとして、単一のバス（内部バスまたは外部バスの一方）に接続され、そのバスを利用して、リード・ライトといったデータ転送を実行していたのでは、前記単一バスを共有するＣＰＵの処理が遅れてしまう。また、特許文献３の技術を採用しても、一方のインタフェースを介するバッファメモリへの転送と、バッファメモリから他方のインタフェースを介する転送が夫々独立のデータ転送要求によって別々に行なわれるから、データ転送要求と承認のハンドシェークシーケンスに要する時間が増えて、データ転送処理とＣＰＵによるデータ処理の効率化が難しいと考えられる。
【００１１】
本発明の目的は、データ転送処理とこれに並行する中央処理によるデータ処理とを効率化することにある。
【００１２】
本発明の別の目的は、中央処理装置のプログラムリードなどを主とした処理と、各種のインタフェース回路とバッファメモリとの間のデータ転送処理とを並列化する事ができると共に、並列化される双方の処理効率を向上させることができるデータ転送装置、更には半導体集積回路及びマイクロコンピュータを提供することにある。
【００１３】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【００１４】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１５】
〔１〕本発明によるデータ転送装置（５）は、第１のバス（ＩＢＵＳ）と第２のバス（ＰＢＵＳ）に接続され、それらバスの間のデータ転送を行い、前記第１のバスと第２のバスの夫々に対し独立したバス権要求とアドレス出力が可能であり、１つのデータ転送起動要求に応答して、リードを行う一方のバスにバス権を要求し、ライトを行う他方のバスにバス権を要求する。
【００１６】
前記第１のバスと第２のバスの夫々に対し独立したバス権要求とアドレス出力が可能であるから、双方のバスのバス権を共に占有する状態を解消可能であり、一方のバスのバス権を獲得してリード又はライトを行っているとき他方のバスのバス権を解放することが可能になる。第１のバス又は第２のバスの何れかに中央処理装置が接続される場合、データ転送装置によりバス権が解放されているとき中央処理装置はデータ処理を行うことができる。
【００１７】
また、１つのデータ転送起動要求に応答して、一方のバスに対するバス権の要求と他方のバスに対するバス権の要求を行い、バス毎に夫々別々のデータ転送要求によってバス権の要求を行うシーケンスを採用していないから、データ転送要求と承認のハンドシェークシーケンスが簡素化され、データ転送処理と中央処理装置によるデータ処理の効率化に寄与することができる。
【００１８】
本発明の望ましい形態として、前記一方のバスのバス権要求と他方のバスのバス権要求を別のタイミングで行うのがよい。例えば、バス権を獲得した一方のバスのリード動作の所定タイミングで、他方のバスのバス権要求を行う。
【００１９】
本発明の望ましい形態として、データ転送装置は複数のデータ転送チャネルと、データ転送チャネルの動作を指示する制御レジスタを有する。前記制御レジスタは、転送要求を受付けるデータ転送チャネルと転送要求発生元との対応を定義する転送要求発生元指定領域、データ転送チャネルと転送元バスとの対応を定義するソースバス指定領域、及びデータ転送チャネルと転送先バスとの対応を定義するディスティネーションバス指定領域を有する。
【００２０】
〔２〕本発明の第１の観点による半導体集積回路（１）は、第１のバス（ＩＢＵＳ）と、第２のバス（ＰＢＵＳ）と、前記第１のバスと第２のバスの間のデータ転送を行うデータ転送装置（５）と、前記第１のバスに接続された中央処理装置（３）と、前記中央処理装置の制御プログラムを保有し前記第１のバスに接続されたプログラム格納用メモリ（７）とを有する。前記データ転送装置は、前記第１のバスと第２のバスの夫々に対し独立したバス権要求とアドレス出力が可能であり、１つのデータ転送起動要求に応答して、リードを行う一方のバスにバス権を要求し、それとは異なったタイミングでライトを行う他方のバスにバス権を要求する。前記中央処理装置は、前記データ転送装置による第２のバスを利用したバスアクセスに並行して、前記第１のバスを利用したバスアクセスが可能である。これにより、上記同様にデータ転送処理と中央処理装置によるデータ処理とを並行することができると共に双方の処理の効率化に寄与することができる。
【００２１】
本発明の第２の観点による半導体集積回路は、第１のバスと、第２のバスと、前記第１のバスと第２のバスの間のデータ転送を行うデータ転送装置と、前記第１のバスに接続された中央処理装置と、前記第１のバスと第２のバスのバス制御手段（１１）とを有する。前記データ転送装置は、前記第１のバスと第２のバスの夫々に対し独立したバス権要求とアドレス出力が可能であり、１つのデータ転送起動要求に応答して、リードを行う一方のバスにバス権を要求し、それとは異なったタイミングでライトを行う他方のバスにバス権を要求する。前記バス制御手段は、前記第１のバスと第２のバスの夫々に対し独立にバス権要求の調停とバス制御が可能である。これにより、上記同様にデータ転送処理と中央処理装置によるデータ処理とを並行することができると共に双方の処理の効率化に寄与することができる。
【００２２】
本発明の第３の観点による半導体集積回路は、第１のバス（ＩＢＵＳ）と、第２のバス（ＰＢＵＳ）と、第３のバス（ＥＸＢＵＳ，ＥＸＩＦＢＵＳ）と、前記第１のバスに接続された中央処理装置（３）と、前記中央処理装置の制御プログラムを保有し前記第１のバスに接続されたプログラム格納用メモリと、前記第２のバスと第３のバスの間のデータ転送が可能なデータ転送装置（５）とを有する。前記データ転送装置は、前記第２のバスと第３のバスの夫々に対し独立したバス権要求とアドレス出力が可能であり、１つのデータ転送起動要求に応答して、リードを行う一方のバスにバス権を要求し、それとは異なったタイミングでライトを行う他方のバスにバス権を要求する。前記中央処理装置は、前記データ転送装置による第２のバス又は第３のバスを利用したバスアクセスに並行して、前記第１のバスを利用したバスアクセスが可能である。上記同様にデータ転送処理と中央処理装置によるデータ処理とを並行することができると共に、転送要求と承認のハンドシェークシーケンスの点においてデータ転送処理の効率化に寄与することができる。
【００２３】
本発明の望ましい形態として、前記第１乃至第３のバスのバス制御手段（１１）を有し、前記バス制御手段は、前記第１乃至第３のバスの夫々に対し独立にバス権要求の調停とバス制御が可能である。また、前記中央処理装置は、前記第１のバスから前記バス制御手段を介して第２のバス又は第３のバスをアクセス可能である。
【００２４】
〔３〕本発明によるマイクロコンピュータは、第１のバス（ＩＢＵＳ）と、第２のバス（ＰＢＵＳ）と、第３のバス（ＥＸＩＦＢＵＳ，ＥＸＢＵＳ）と、前記第１のバスに接続された中央処理装置（３）と、前記中央処理装置の制御プログラムを保有し前記第１のバスに接続されたプログラム格納用メモリ（７）と、前記第１乃至第３のバスの内の何れか２つのバスの間のデータ転送を行うデータ転送装置（５）とを有する。前記データ転送装置は、前記第１乃至第３のバスの夫々に対し独立したバス権要求とアドレス出力が可能であり、１つのデータ転送起動要求に応答して、リードを行うバスにバス権を要求し、それとは異なったタイミングでライトを行うバスにバス権を要求する。上記同様にデータ転送処理と中央処理装置によるデータ処理とを並行することができると共に双方の処理の効率化に寄与することができる。
【００２５】
本発明の望ましい形態として、前記中央処理装置は、前記データ転送装置による第２のバス又は第３のバスを利用したバスアクセスに並行して、前記第１のバスを利用したバスアクセスを行う。中央処理装置のプログラムメモリが第１のバスに接続されているからである。また、前記第１乃至第３のバスのバス制御手段を有し、前記バス制御手段は、前記第１乃至第３のバスの夫々に対し独立にバス権要求の調停とバス制御が可能である。前記中央処理装置は、前記第１のバスから前記バス制御手段を介して第２のバス又は第３のバスをアクセス可能である。
【００２６】
例えば前記バス制御手段は、第１乃至第３のバス制御論理回路を有する。第１のバス制御論理回路は、中央処理装置及びデータ転送装置などのバスマスタから第１のバスに対するバスリクエストを調停し、所定の優先順位に従って、バス権を与える。バスマスタが出力するアドレスを判定し、当該アドレスが、第１のバス、第２のバス、第３のバスのいずれに相当するかを判断し、第１のバスに相当すれば、第１のバスのバスサイクルを制御する。第２のバスに相当すれば、第２バス制御論理回路に制御を渡し、そのバスサイクルの完了を待つ。同様に、第３のバスに相当すれば、第３のバス制御論理回路に制御を渡し、そのバスサイクルの完了を待つ。
【００２７】
第２のバス制御論理回路は、アドレスに対して固有のバス幅、アクセスステート数などのバス仕様に従って、中央処理装置等の第１のバスのバスマスタによる第２のバスに対するアクセスとデータ転送装置による第２のバスに対するアクセスを一括して制御する。このとき、データ転送装置は第２のバスを利用するためのアドレスやバスコマンドなどを専用の信号として出力する。また、第２のバス制御装置は、中央処理装置そのほかの第１バスのバスマスタによる第２のバスに対するアクセスとデータ転送装置による第２バスに対するバス権要求とを調停する。
【００２８】
第３のバス制御論理回路は、アドレス空間を分割して、メモリの種類やバス幅、アクセスステート数等バス仕様が設定可能にされ、中央処理装置等第１のバスのバスマスタによる第３のバスに対するアクセスとデータ転送装置による第３のバスに対するアクセスを一括して制御する。このとき、データ転送装置は第３のバスを利用するためのアドレスやバスコマンドなどを専用の信号として出力する。また、第３のバス制御論理回路は、中央処理装置等の第１バスのバスマスタによる第３のバスに対するアクセス要求とデータ転送装置或はその他の外部バスモジュールからのアクセス要求とを調停する。
【００２９】
本発明の別の望ましい形態として、前記データ転送装置は、複数のデータ転送チャネルと、データ転送チャネルの動作を指示する制御レジスタを有する。前記制御レジスタは、転送要求を受付けるデータ転送チャネルと転送要求発生元との対応を定義する転送要求発生元指定領域、データ転送チャネルと転送元バスとの対応を定義するソースバス指定領域、及びデータ転送チャネルと転送先バスとの対応を定義するディスティネーションバス指定領域を有する。前記制御レジスタは中央処理装置によってアクセス可能である。
【００３０】
【発明の実施の形態】
図１には本発明の一例に係るマイクロコンピュータが示される。同図に示されるマイクロコンピュータ１は、特に制限されないが、ＣＭＯＳ集積回路製造技術により単結晶シリコンのような１個の半導体基板に形成される。
【００３１】
マイクロコンピュータ１は、中央処理装置（ＣＰＵ）３、ＤＭＡコントローラ（ＤＭＡＣ）５、リードオンリメモリ（ＲＯＭ）７、ランダムアクセスメモリ（ＲＡＭ）９、バスコントローラ（ＢＳＣ）１１、入出力インタフェース１３、周辺機能回路１５及び入出力ポート（ＩＯＰ）１７、更に、図示を省略する割込コントローラ、クロック発振器等の機能ブロック乃至はモジュールから構成される。前記周辺機能回路１５として、例えばタイマ、パルス出力回路、シリアルコミュニケーションインタフェース（ＳＣＩ）、及びＡ／Ｄ変換器（Ａ／Ｄ）等を有する。
【００３２】
動作の主体となるのはＣＰＵ３であり、主にＲＯＭ７から命令を読込んで動作し、作業用のデータ領域としてＲＡＭ９をリード／ライトする。ＣＰＵ３のプログラム用メモリとしては、ＲＯＭ７のほかキャッシュメモリであってもよい。同様に、ＣＰＵ３のデータ用メモリとしても、キャッシュメモリを使用することもできる。
【００３３】
また、ＤＭＡＣ５はＣＰＵ３と第１のバスであるＩバス（内部バス）ＩＢＵＳを共有し、ＣＰＵ３に代ってデータ転送を行うことができる。周辺機能回路１５及び入出力インタフェース回路１３は、ＤＭＡＣ５に代表的に示された転送リクエスト信号ｔｒｅｑ−ｉｏ，ｔｒｅｑ−ｐｅによりデータ転送起動を要求する。
ＤＭＡＣ５が起動要求を受付けて、データ転送を行うと、代表的に示された転送アクノレッジ信号ｔａｃｋ−ｉｏ，ｔａｃｋ−ｐｅを返し、起動要因をクリアする。起動要因の判定やクリアは割込みコントローラが行ってもよい。
【００３４】
上記マイクロコンピュータ１は、第１のバスとして内部バス（Ｉバス）ＩＢＵＳ、第２のバスとして周辺バス（Ｐバス）ＰＢＵＳ、外部インタフェースバス（ＥＸＩＦＢＵＳ）、そしてチップ外部に至る外部バス（ＥＸバス）ＥＸＢＵＳを有する。各バスによって前記内部回路モジュールが接続される。それぞれのバスはアドレスバス、データバスの他、バスコマンド（またはリード信号、ライト信号、バスサイズ信号）、レディ信号（またはウェイト信号）を含む。半導体集積回路としてのマイクロコンピュータ１は、前記外部バスＥＸＢＵＳとして、チップ外部のバス信号線が接続される外部端子ＴＭＬに至る内部配線Ｌｉｎｒを有している。厳密には、半導体集積回路としてのマイクロコンピュータ１が備える第３のバスは外部インタフェースバスＥＸＩＦＢＵＳ及び外部バスＥＸＢＵＳの前記内部配線Ｌｉｎｒであるが、本明細書では便宜上それらを含めて単に外部バスＥＸＢＵＳとも称する。
【００３５】
内部バスＩＢＵＳは、ＣＰＵ３そのほかの内部バスマスタに直接接続されるバスである。メモリの高速アクセスのため、メモリ７，９も内部バスＩＢＵＳに接続される。メモリ７，９のアクセスは１ステートで行われる。
【００３６】
周辺バスＰＢＵＳには、前記入出力インタフェース回路１３、周辺機能回路１５及び入出力ポート１７に含まれる内部Ｉ／Ｏレジスタが接続される。内部バスＩＢＵＳと周辺バスＰＢＵＳを分離することによって、ＣＰＵ３のプログラムリードなどで、主として使用する内部バスＩＢＵＳの負荷を軽減し、高速化を図るとともに、未使用時の周辺バスＰＢＵＳの状態を保持するなどして、低消費電力化を図るのに好都合である。ＣＰＵ３が、周辺バスＰＢＵＳに接続される内部Ｉ／Ｏレジスタをアクセスする場合は、内部バスＩＢＵＳおよびバスコントローラ１１を経由して行う。内部Ｉ／Ｏレジスタのアクセスは２ステートで行われる。
【００３７】
内部バスＩＢＵＳはバスコントローラ１１から外部インタフェースバスＥＸＩＦＢＵＳ及び外部バスバッファ回路（ＢＵＦ）２７を介して外部バスＥＸＢＵＳにインタフェースされる。外部バスバッファ回路（ＢＵＦ）２７は、特に制限されないが、入出力ポート（ＩＯＰ）１７に含まれる。内部バスＩＢＵＳと周辺バスＰＢＵＳは、バスコントローラ１１によってインタフェースされる。
【００３８】
前記バスＩＢＵＳ，ＰＢＵＳ，ＥＸＢＵＳは、バスコントローラ１１によって制御される。バスコントローラ１１は、夫々のバスに対応させて内部バスアービタ（Ｉ−ＡＲＢ）２０、周辺バスアービタ（Ｐ−ＡＲＢ）２１、外部バスアービタ（ＥＸ−ＡＲＢ）２２、内部バスコントローラ（Ｉ−ＢＳＣ）２３、周辺バスコントローラ（Ｐ−ＢＳＣ）２４、外部バスコントローラ（ＥＸ−ＢＳＣ）２５、リフレッシュタイマ（ＲＥＦ）２６を有する。尚、バスコントローラ１１による外部バスＥＸＢＵＳに対するバス制御は外部インタフェースバスＥＸＩＦＢＵＳ及び外部バスバッファ回路（ＢＵＦ）２７を介して行なわれる。
【００３９】
内部バスＩＢＵＳはＣＰＵ３、ＤＭＡＣ５、ＲＯＭ７、ＲＡＭ９、外部バスバッファ回路（ＢＵＦ）２７、バスコントローラ１１に接続される。ここではＣＰＵ３とＤＭＡＣ５が、内部バスマスタとして内部バスＩＢＵＳを使用することができる。ＤＭＡＣ５はバス権要求信号ｄｍａｒｅｑ−ｉによりバス権を要求し、ＣＰＵ３はバス権要求信号ｃｐｕｒｅｑ−ｉによりバス権を要求する。内部バスアービタ２０は、バス権要求信号ｄｍａｒｅｑ−ｉ、ｃｐｕｒｅｑ−ｉによりバス権要求があると、所定の優先順位に従って、必要な調停を行い、ＣＰＵ３又はＤＭＡＣ５にバス権を与える。バス権の授与はバス権承認信号ｃｐｕａｃｋ−ｉ、ｄｍａａｃｋ−ｉにて通知される。これによりＣＰＵ３とＤＭＡＣ５は、排他的に内部バスＩＢＵＳを使用する。バス権を獲得した内部バスマスタは、内部バスＩＢＵＳにアドレス信号及びバスコマンドを出力して、バスアクセスを行う。内部バスコントローラ２３は、ＣＰＵ３から内部バスＩＢＵＳに出力されるアドレス信号をデコードし、ＲＯＭ７などの内部バスＩＢＵＳ上の回路モジュールに対するアクセスであれば、内部バスＩＢＵＳを使用したバス制御を行う。そのアクセス対象が周辺機能回路１５の内部Ｉ／Ｏレジスタ等の周辺バスＰＢＵＳ上の回路モジュールへのアクセスであるとき内部バスコントローラ２３は、周辺バスコントローラ２４を起動し、内部バスＩＢＵＳ上のバスレディ信号を非活性化し、ＣＰＵ３をウェイトさせ、更に周辺バスアービタ２１に周辺バスに対するバス権を要求し、そのバス権要求が承認されるのを待って、周辺バスＰＢＵＳに対するバス制御を行う。また、前記アクセス対象が外部バスＥＸＢＵＳ上の回路モジュールの場合に内部バスコントローラ２３は、外部バスコントローラ２５を起動し、内部バスＩＢＵＳ上のバスレディ信号を非活性化し、ＣＰＵ３をウェイトさせ、更に外部バスアービタ２２に外部バスＥＸＢＵＳに対するバス権を要求し、そのバス権要求が承認されるのを待って、外部バスＥＸＢＵＳに対するバス制御を行う。
【００４０】
周辺バスＰＢＵＳはバスコントローラ１１、ＤＭＡＣ５、入出力インタフェース回路１３、周辺機能回路１５及びＩＯＰ１７に接続される。周辺バスＰＢＵＳは、周辺バスコントローラ２４によってバス制御される。周辺バスＰＢＵＳに接続された周辺バスマスタは、ここではＤＭＡＣ５があり、周辺バスＰＢＵＳのバス権調停は周辺バスアービタ２１が行う。ＤＭＡＣ５はバス権要求信号ｄｍａｒｅｑ−ｐを周辺バスアービタ２１に出力し、ＤＭＡＣ５に周辺バスアービタ２１からバス権承認信号ｄｍａａｃｋ−ｐが返される。周辺バスアービタ２１はＤＭＡＣ５からのバス権用要求とＣＰＵ３のアクセスに起因する内部バスコントローラ２３からのバス使用要求を所定の優先順位にしたがって調停し、何れかにバス権を承認する。ＤＭＡＣ５がバス権を獲得したときは、ＤＭＡＣ５が周辺バスＰＢＵＳにアドレス信号及びバスコマンドを出力して、バスアクセスを行う。ＣＰＵ３のアクセスに起因する内部バスコントローラ２３からのバス使用要求が承認されたときは周辺バスコントローラ２４は周辺バスＩＢＵＳを使用したバス制御を行う。前述の如くＣＰＵ３のバス権は一旦内部バスアービタ２０で調停され、バス権が与えられたＣＰＵ３のアクセス対象が周辺バスＰＢＵＳであるときは内部バスコントローラ２３を介して周辺バス権を要求することになる。換言すれば、ＣＰＵ３は、内部バスＩＢＵＳを使用している限り、周辺バス権を要求しない。したがって、ＣＰＵ３の内部バスＩＢＵＳの使用中に、ＤＭＡＣ５による周辺バスＰＢＵＳのリード／ライトを並行して行うことが保証される。
【００４１】
外部バスＥＸＢＵＳは、特に制限されないが、外部バスバッファ回路（ＢＵＦ）及び外部インタフェースバスＥＸＩＦＢＵＳを介してバスコントローラ１１及びＤＭＡＣ５に接続される。図１では外部バスＥＸＢＵＳにはマイクロコンピュータ１とは別チップの代表的に示されたシンクロナスＤＲＡＭ（ＳＤＲＡＭ）２８が接続される。外部バスＥＸＢＵＳは、外部バスコントローラ２５によってバス制御される。外部バスＥＸＢＵＳにＤＲＡＭが接続されている場合にはアドレスマルチプレクスなどの制御も行う。外部バスＥＸＢＵＳを使用できる外部バスマスタは、ＣＰＵ３、ＤＭＡＣ５、リフレッシュタイマ２６、図示を省略する外部バスマスタであり、それぞれからのバス権要求は外部バスアービタ２２が調停する。ｄｍａｒｅｑ−ｅｘはＤＭＡＣ５からのバス権要求信号、ｄｍａａｃｋ−ｅｘはＤＭＡＣ５へのバス権承認信号である。外部バスマスタからのバス権要求信号ＢＲＥＱはｅｘｒｅｑ−ｅｘによって与えられ、これに応答するバス権承認信号ｅｘａｃｋ−ｅｘはバス権承認信号ＢＡＣＫとして外部バスマスタに与えられる。ＤＭＡＣ５がバス権を獲得したときは、ＤＭＡＣ５が外部インタフェースバスＥＸＩＦＢＵＳから外部バスＥＸＢＵＳにアドレス信号及びバスコマンドを出力して、外部バスアクセスを行う。リフレッシュタイマ２６がバス権を獲得したときは、外部バスコントローラ２５が外部インタフェースバスＥＸＩＦＢＵＳから外部バスＥＸＢＵＳにアドレス信号及びバスコマンドを出力して、外部バス上のＳＤＲＡＭ２８などに対するリフレッシュのためのバスアクセスを行う。内部バスマスタのアクセスに起因する内部バスコントローラ２３からのバス使用要求が外部バスアービタ２２により承認されたときは、外部バスコントローラ２４は外部インタフェースバスＥＸＩＦＢＵＳ及び外部バスＥＸＢＵＳを使用したバス制御を行う。前述の如くＣＰＵ３のバス権は一旦内部バスアービタ２０で調停され、バス権が与えられたＣＰＵ３は、アクセス対象が外部バスであるとき、外部バス権を要求する。換言すれば、ＣＰＵ３は、内部バスＩＢＵＳを使用している限り、外部バス権を要求しない。したがって、ＣＰＵ３による内部バスＩＢＵＳの使用中に、ＤＭＡＣ５、リフレッシュタイマ２６による外部バスＥＸＢＵＳにアクセス、或は外部バスマスタに対するバス権解放を行うことが保証される。
【００４２】
尚、リフレッシュタイマ２６は一定時間毎にリフレッシュ要求を発生する。例えば、リフレッシュタイマ２６が外部バス権を獲得すると、ＳＤＲＡＭのリフレッシュとして、ＣＡＳビフォＲＡＳリフレッシュを行う。また、外部バスマスタが外部バス権を獲得すると、外部バス（アドレスバス、データバス、制御信号）ＥＸＢＵＳをハイインピーダンス状態にし、外部バスマスタによる外部バスの利用を可能にするとともに、外部バス権アクノレッジ信号ＢＡＣＫを活性状態にし、これを通知する。
【００４３】
前述の如く、ＤＭＡＣ５は、内部バスＩＢＵＳ、周辺バスＰＢＵＳ、外部バスＥＸＢＵＳに対して、個別にバス権要求を出力できる。データ転送に使用するバスに応じて、内部バスアービタ２０、周辺バスアービタ２１、外部バスアービタ２２の何れかに、それぞれ、内部バス権要求ｄｍａｒｅｑ−ｉ、周辺バス権要求ｄｍａｒｅｑ−ｐ、外部バス権要求ｄｍａｒｅｑ−ｅｘを出力することができる。内部バス権要求を行った場合、内部バス権アクノレッジ信号ｄｍａａｃｋ−ｉを入力して、内部バス権の獲得を確認すると、内部バスコマンド、アドレスを発行して、内部バスＩＢＵＳのアクセスを行う。同様に、周辺バスアービタ２１に、周辺バス権要求を行った場合、周辺バス権アクノレッジ信号ｄｍａａｃｋ−ｐを入力して、周辺バス権の獲得を確認すると、周辺バスコマンド、アドレスを発行して、周辺バスＰＢＵＳのアクセスを行う。外部バスに対しても同様である。
【００４４】
ＣＰＵ３は、前述の通り、内部バスＩＢＵＳに対して、バス権を要求でき、内部バスＩＢＵＳを介して、周辺バスＰＢＵＳ及び外部バスＥＸＢＵＳを利用することができる。
【００４５】
前記ＲＯＭ７及びＲＡＭ９は内部バススレーブとして、また、入出力インタフェース回路１３、周辺機能回路１５及びＩＯＰ１７の各機能ブロックは周辺バススレーブとして、ＣＰＵ３又はＤＭＡＣ５によってリード／ライトされる。ＤＭＡＣ５は、転送制御データの設定等のために、ＣＰＵ３によって周辺バススレーブとしてリード／ライト可能にされる。
【００４６】
その他にマイクロコンピュータ１が備える機能の概略は以下の通りである。例えば、図示を省略する割込コントローラは入出力インタフェース回路１３、周辺機能回路１５及びＩＯＰ１７の各機能ブロックの出力する割込信号を入力し、ＣＰＵ３に割込要求信号を出力する。ＩＯＰ１７は、外部バス信号（アドレスバス出力、データバス入出力、バス制御信号入出力）、周辺機能回路１５を構成するタイマやパルス出力回路等の入出力信号と兼用とされている。そのほか、図示はされない、電源端子、回路の接地端子、アナログ電源端子、アナロググランド端子、リセット入力端子、スタンバイ入力端子、、割込入力端子、クロック入力端子、動作モード端子等を有する。
【００４７】
図２にはＣＰＵ３のアドレス空間が例示される。ＣＰＵ３のアドレス空間は、特に制限されないが、４Ｇバイトあり、８つのエリアに分割されている。これらのエリアは、バスコントローラ１１の設定によって、独立して、バス幅、アクセスステート数を設定可能にされ、外部バス空間は外部バスコントローラ２５によって制御される。一方、マイクロコンピュータ３内部のＲＯＭ７及びＲＡＭ９、内部Ｉ／Ｏレジスタは、前記バスコントローラ１１の設定にかかわらず、固有のバス幅、アクセスステート数で動作する。前記の通り、内蔵ＲＯＭ７、ＲＡＭ９は、内部バスＩＢＵＳで接続され、１ステートでリード／ライトされる。内部Ｉ／Ｏレジスタは、周辺バスＰＢＵＳに接続され、２ステートでリード／ライトされる。
【００４８】
図３にはＤＭＡＣ５のブロックダイアグラムが例示される。ＤＭＡＣ５は、特に制限はされないものの、４チャネルのデータ転送チャネルを有する。図３には代表的に一つのデータ転送チャネルＣＨＮが示される。ＤＭＡＣ５は、各データ転送チャネルに共通の、制御回路３１、データセレクタ３３、データバッファ３５、アドレスセレクタ３７及び算術演算回路（ＡＵ）３９を有し、後述のコントロールレジスタＤＴＭＲ、ディスティネーションアドレスレジスタＤＡＲ、ソースアドレスレジスタＳＡＲ、転送カウントレジスタＴＣＲのレジスタが４チャネルの夫々のデータ転送チャネルＣＨＮに設けられている。
【００４９】
ＤＭＡＣ５は、前記転送リクエスト信号ｔｒｅｑ−ｉｏ、ｔｒｅｑ−ｐｅに代表される複数の転送リクエスト信号ｔｒｅｑを入力し、これに呼応したデータ転送を実行したとき前記転送アクノレッジ信号ｔａｃｋ−ｉｏ、ｔａｃｋ−ｐｅに代表される複数の転送アクノレッジ信号ｔａｃｋを出力する。
【００５０】
前記の通り、ＤＭＡＣ５は３つのバスＩＢＵＳ，ＰＢＵＳ，ＥＸＢＵＳと独立したデータ入出力を可能とする。一つの転送リクエスト信号による一つのデータ転送起動要求に応答してデータ転送を行うとき、転送元アドレス、転送先アドレスの夫々に応じて、当該アドレスに対応するバスに対するバス権の要求を別々のタイミングで行い、アクセス対象バスに対してデータのリードとデータのライトとを行う。ＤＭＡＣ５は、内部バスアービタ２０、周辺バスアービタ２１、外部バスアービタ２２に対して、前記専用のバス権要求信号ｄｍａｒｅｑ−ｉ，ｄｍａｒｅｑ−ｐ，ｄｍａｒｅｑ−ｅｘにて各別にバス権を要求し、各別に前記専用のバス権承認信号ｄｍａａｃｋ−ｉ，ｄｍａａｃｋ−ｐ，ｄｍａａｃｋ−ｅｘにてバス権獲得の承認が通知される。バス権承認が通知されると、ＤＭＡＣ５は対応するバスコントローラから出力されるバスレディー信号のレディー状態に応答してアクセス対象バスにバスコマンドの発生とアドレスの出力を行い、アクセス動作を行う。使用するデータ転送チャネルは転送リクエストとの対応で各データ転送チャネルのコントロールレジスタＤＴＭＲに設定される。データ転送に使用するバスはデータ転送チャネル毎にコントロールレジスタＤＴＭＲに設定される。尚、ソースアドレスレジスタＳＡＲとディスティネーションアドレスレジスタＤＡＲに設定されているアドレスをデコードして使用すべきバスを判定するようにしてもよい。
【００５１】
ＤＭＡＣ５は、バス権を獲得したソースバスのデータバスｉｄｂ（ＩＢＵＳ用）、ｐｄｂ（ＰＢＵＳ用）又はｅｘｄｂ（ＥＸＢＵＳ用）からリードしたデータを一旦、データセレクタ３３を介してデータバッファ３５に格納し、これを再度データセレクタ３３を介してバス権を獲得したディスティネーションバスのデータバスｉｄｂ（ＩＢＵＳ用）、ｐｄｂ（ＰＢＵＳ用）又はｅｘｄｂ（ＥＸＢＵＳ用）にライトする。リードするバスとライトするバスをそれぞれ独立に選択できる。
【００５２】
アドレスセレクタ３７は、ＤＭＡＣ５内部バス４０からソースアドレスレジスタＳＡＲ又はディスティネーションアドレスレジスタＤＡＲの内容を入力し、バス権を獲得したバスのアドレスバスｉａｂ（ＩＢＵＳ用）、ｐａｂ（ＰＢＵＳ用）又はｅｘａｂ（ＥＸＢＵＳ用）に出力する。
【００５３】
前記算術演算回路３９は、ソースアドレスレジスタＳＡＲとディスティネーションアドレスレジスタＤＡＲのインクリメント／デクリメント処理、転送カウントレジスタＴＣＲのデクリメント処理を行う。転送カウントレジスタＴＣＲにはデータの転送回数もしくは転送語数が初期設定される。
【００５４】
前記制御回路３１は、転送リクエスト信号ｔｒｅｑを検出して動作を開始し、バス権要求、バスコマンドおよびアドレスの出力を制御する共に、バス権アクノレッジ信号ｔａｃｋ、バスレディ信号を入力しつつ、バスの動作を制御する。尚、図示は省略するが、ＤＭＡＣ５の周辺バスインタフェースとして、ＣＰＵ３によるリード／ライトのために、周辺バスコントローラ２４は、モジュールセレクト信号、リード信号、ライト信号、周辺バスＰＢＵＳへのアドレスの下位ビット出力、周辺バスへのデータ入出力を行う。これらにしたがって、制御回路３１は内部Ｉ／Ｏレジスタの一つである各データ転送チャネルの前記レジスタＳＡＲ、ＤＡＲ、ＴＣＲ、ＤＴＭＲに対する初期設定や設定データの読み出しを行うことができる。
【００５５】
図４にＤＭＡＣ５の１データ転送チャネル分のレジスタ構成の詳細が例示される。ソースアドレスレジスタＳＡＲ、デスティネーションレジスタＤＡＲは、特に制限されないが、それぞれ３２ビット構成であり、転送元、転送先のアドレスを格納する。これらは、特に制限はされないものの、マイクロコンピュータのアドレス空間４Ｇバイト全領域を直接指定できる。
【００５６】
転送カウントレジスタＴＣＲは、特に制限されないが、１６ビット構成であり、データ転送回数を格納する。１回の起動要求でデータ転送を行う毎に、デクリメントされる。
【００５７】
コントロールレジスタＤＴＭＲは、ＤＭＡＣ５の転送モードなどを制御する。ＤＴＭＲの各ビットの機能は次の通りである。
【００５８】
ビット１５はＤＴＥビットであり、当該チャネルのＤＭＡＣの動作を許可する。ＤＴＥビットを”１”にセットした状態で、転送リクエスト信号が活性化されると、当該データ転送チャネルの動作が開始される。
【００５９】
ビット１４はＤＥＮＤフラグであり、所定回数の転送が終了したとき（ＴＣＲが０になったとき）に”１”にセットされる。
【００６０】
ビット１３はＤＩＥビットであり、割込みを許可する。ＤＩＥビット、ＤＥＮＤフラグがいずれも”１”にセットされたとき、ＣＰＵ３に割込みが要求される。ＤＩＥビットが”１”にセットされた状態で、ＤＥＮＤフラグが”１”にセットされると、同時にＤＴＥビットが”０”にクリアされ、当該データ転送チャネルの動作は中断され、ＣＰＵ３による処理を待つ。
【００６１】
ビット２〜０はＤＴＳ２〜０ビットであり、転送動作開始のトリガとすべき転送要求発生元を指定する。例えば、“０００”は入出力インタフェース回路１３の入力完了による起動要求、“００１”は入出力インタフェース回路１３の出力完了による起動要求、“０１０”はタイマの第１のコンペアマッチによる起動要求、“０１１”はタイマの第２のコンペアマッチによる起動要求、“１００”はＳＣＩの入力完了による起動要求、“１０１”はＳＣＩの出力完了による起動要求、“１１０”は外部リクエストによる起動要求、とされる。
【００６２】
ビット９、ビット８はＳＺ１、ＳＺ０ビットであり、１回のデータ転送のサイズ（“０１”のときバイト、“１０”のときワード（２バイト）、“１１”のときロングワード（４バイト））を選択する。
【００６３】
ビット７、ビット６は、ＳＭ１、ＳＭ０ビットであり、データ転送後にソースアドレスレジスタＳＡＲをインクリメントするか、デクリメントするか、固定にするかを指定する。ＳＭ１ビットを“０”にクリアすると、ソースアドレスレジスタＳＡＲは固定とされる。ＳＭ１ビットを“１”にセットした状態で、ＳＭ０ビットを“０”にクリアすると、インクリメント、ＳＭ０ビットを“１”にセットすると、デクリメントが行われる。
【００６４】
ビット５、ビット４は、ＤＭ１、ＤＭ０ビットであり、データ転送後にディスティネーションアドレスレジスタＤＡＲをインクリメントするか、デクリメントするか、固定にするかを指定する。ＤＭ１ビットを“０”にクリアすると、ディスティネーションアドレスレジスタＤＡＲは固定とされる。ＤＭ１ビットを“１”にセットした状態で、ＤＭ０ビットを“０”にクリアすると、インクリメント、ＤＭ０ビットを“１”にセットすると、デクリメントが行われる。
【００６５】
ビット３、ビット２は、ＳＡ１、ＳＡ０ビットであり、ソースアドレスとして使用するバスを選択する。“００”または“０１”のときは内部バスＩＢＵＳ、“１０”のときは周辺バスＰＢＵＳ、“１１”のときは外部バスＥＸＢＵＳに対して、バス権を要求する。
【００６６】
ビット１、ビット０は、ＤＡ１、ＤＡ０ビットであり、デスティネーションアドレスとして使用するバスを選択する。指定の仕方は、ＳＡ１、ＳＡ０ビットと同様である。前記バス指定ビットＳＡ１，ＳＡ０，ＤＡ１，ＤＡ０を持つことにより、ソース／ディスティネーションアドレスによって使用するバスを判定するよりも、その判定を容易に行うことができる。
【００６７】
図５にはＤＭＡＣ５の状態遷移図が例示される。この状態遷移は、ＤＭＡＣ５の制御回路３１内の論理によって実現される。
【００６８】
ＤＭＡＣ５は、ステートＩ（アイドル状態）、ステートＳＲ（ソースリクエスト）、ステートＳＡ（ソースアドレス）、ステートＳＤ（ソースデータ）、ステートＤＲ（ディスティネーションリクエスト）、ステートＤＡ（デスティネーションアドレス）、ステートＤＤ（デスティネーションデータ）の７つの状態を持つ。
【００６９】
リセット後には、ステートＩに遷移する。ステートＩでは、ＤＭＡＣ５起動要求信号をサンプリングする。いずれかのチャネルの転送許可ビットが１にセットされると、当該チャネルの起動要求を検出する。複数のチャネルが起動された場合は、チャネル０から優先して動作を行う。
【００７０】
起動要求に所定の入力が発生すると（ｄｒｅｑ＝１）、ステートＳＲに遷移する。ステートＳＲでは、ソースに指定されたバス、すなわち、内部バスＩＢＵＳ、周辺バスＰＢＵＳ、外部バスＥＸＢＵＳのいずれかのバス権を要求する（ｂｒｅｑ＿ｓ＝１）。いずれのバスにバス権を要求するかは、前記の通り、コントロールレジスタＤＴＭＲのＳＡ１、ＳＡ０ビットを使用して判定するればよい。起動要求に応ずるデータ転送チャネルのソースアドレスレジスタＳＡＲの内容を用意する。バス権の要求に応答してバス権承認信号が活性状態で（ｂｕｓａｃｋ＿ｓ＝１）、当該バスのバスレディを検出すると、ステートＳＡに遷移する。ステートＳＡでは、当該チャネルのソースアドレスレジスタＳＡＲの内容を所定のアドレスバスに、また当該バスにバスコマンドを出力する。例えば周辺バスをアクセスする場合には周辺バスコントローラ２４が周辺バスＰＢＵＳを起動する。周辺バスアクセスが終了すると、周辺バスレディ信号が活性状態にされてＤＭＡＣ５に返される。
【００７１】
当該バスのバスレディ信号の活性状態を検出すると（ｂｕｓｒｄｙ＿ｓ＝１）、ＤＭＡＣ５はステートＳＤに遷移する。このステートＳＤではリードしたデータを、データバッファ３５に格納する。
【００７２】
引続き、ステートＤＲに遷移する。ステートＤＲでは、デスティネーションに指定されたバス、すなわち、内部バスＩＢＵＳ、周辺バスＰＢＵＳ、外部バスＥＸＢＵＳの何れかにバス権を要求する。起動要求に応ずるデータ転送チャネルのディスティネーションアドレスレジスタＤＡＲの内容を用意する。前記バス権の要求に応答してバス権承認信号が活性状態で（ｂｕｓａｃｋ＿ｄ＝１）、当該バスのバスレディを検出すると、ステートＤＡに遷移する。
【００７３】
ステートＤＡでは、当該チャネルのディスティネーションアドレスレジスタＤＡＲの内容を所定のアドレスバスに、また当該バスにバスコマンドを出力する。
例えば、内部バスをアクセスする場合には内部バスコントローラ２３が内部バスを起動する。内部バスアクセスが終了すると、内部バスレディ信号が活性状態にされる（ｂｕｓｒｄｙ＿ｄ＝１）。当該バスのバスレディを検出すると、ＤＭＡＣはステートＤＤに遷移する。
【００７４】
ステートＤＤでは転送カウントレジスタＴＣＲのデクリメントを行う。ディスティネーションバスに前記データバッファ３５のデータを出力する。バスレディ信号が活性状態になると（ｂｕｓｒｄｙ＿ｄ＝１）、ステートＩに遷移し、１回分のデータ転送の動作を終了する。
【００７５】
図６にはＤＭＡＣ５の第１の使用例の動作タイミングが示される。これは入出力インタフェース回路１３と内蔵ＲＡＭ９との間のデータ転送を行う場合の例である。
【００７６】
内部バスＩＢＵＳに関しては、バス権調停、ＩＡＢ（内部バスＩＢＵＳのアドレスバス）出力及びＩＤＢ（内部バスＩＢＵＳのデータバス）入出力は、パイプライン化しており、バスの状態は、内部バスＩＢＵＳのバスレディー信号ｒｅａｄｙ−ｉ、周辺バスＰＢＵＳのバスレディー信号ｒｅａｄｙ−ｐが活性状態のときに遷移する。すなわち、ｒｅａｄｙ−ｉ＝１のときに、ｄｍａａｃｋ−ｉ＝１またはｃｐｕａｃｋ−ｉ＝１信号によってバス権を与えられたバスマスタが、次のクロックからＩＡＢを使用して、アドレスを出力する。アドレスはｒｅａｄｙ−ｉ＝１となったときに使用され、アドレスを出力していたバスマスタは、次のクロックからＩＤＢを使用してデータを入出力する。
【００７７】
周辺バスＰＢＵＳ及び外部バスＥＸＢＵＳについては、アドレスとデータはパイプラインかされておらず、アドレスは２ステート期間出力され、データはアドレス出力の第２ステートで入出力される。外部バスＥＸＢＵＳは適宜ウェイトの挿入が可能であり、また所要のメモリとのインタフェースのために所定のアクセスを行うことができる。
【００７８】
図６においてステートＴ１で、入出力インタフェースするデータ転送起動要求信号ｄｒｅｑが活性状態になり、ＤＭＡＣ５が起動される。
【００７９】
ステートＴ２で、ＤＭＡＣ５はｄｍａｒｅｑ−ｐを活性状態にして（ｄｍａｒｅｑ−ｐ＝１）、周辺バスＰＢＵＳにバス権を要求する。ＣＰＵ３による周辺バスアクセスがないので、周辺バスアービタは、ｄｍａａｃｋ−ｐを活性状態にして（ｄｍａａｃｋ−ｐ＝１）、ＤＭＡＣ５にバス権を与える。
【００８０】
ステートＴ３で、ＤＭＡＣ５は周辺バスＰＡＢにアドレスを出力し（ＤＭＡＣ：ｒａ）、ステートＴ４で周辺バスＰＤＢの内容を取込む（ＤＭＡＣ：ｒｄ）。
図示はされない転送アクノレッジ信号とともに、入出力インタフェース回路の所定の内部Ｉ／Ｏレジスタをリードしたことによって、データ転送起動要求信号ｄｒｅｑは非活性状態にされる。
【００８１】
ステートＴ５で、ＤＭＡＣ５はｄｍａｒｅｑ−ｉを活性状態にして（ｄｍａｒｅｑ−ｉ＝１）、内部バスＩＢＵＳにバス権を要求する。ＣＰＵ３より高位の優先順位が与えられており、内部バスアービタ２０は、ｄｍａａｃｋ−ｉを活性状態にして（ｄｍａａｃｋ−ｉ＝１）、ＤＭＡＣ５にバス権を与える。
【００８２】
ステートＴ６で、ＤＭＡＣ５はアドレスバスＩＡＢにアドレスを出力し（ＤＭＡＣ：ｗａ）、ステートＴ７で、前記リードしたデータをデータバスＩＤＢに出力する（ＤＭＡＣ：ｗｄ）。
【００８３】
図６の動作タイミングより明らかなように、ＣＰＵ３は１ステートのみバス権を、ＤＭＡＣ５に移譲し、動作停止する。内部バスＩＢＵＳを使用するのを、データ転送のうち、ライトのみとしているから、ＣＰＵ３が内部バスＩＢＵＳを使用できずに不所望の待機状態になることを最小限にすることができる。図示はしないが、外部バスからデータをリードして内部バスに転送する場合もほぼ同じ動作とされる。
【００８４】
図７にはＤＭＡＣ５の第２の使用例の動作タイミングが示される。これは入出力インタフェース回路１３と外部バスＥＸＢＵＳに接続されたＳＤＲＡＭ２８との間のデータ転送を行う。
【００８５】
ステートＴ４までは、図６と同様である。ステートＴ５で、ＤＭＡＣ５はｄｍａｒｅｑ−ｅｘを活性状態にして（ｄｍａｒｅｑ−ｅｘ＝１）、内部バスＩＢＵＳにバス権を要求する。ＣＰＵ３より高位の優先順位が与えられており、内部バスアービタ２０は、ｄｍａａｃｋ−ｅｘを活性状態にして（ｄｍａａｃｋ−ｅｘ＝１）、ＤＭＡＣ５にバス権を与える。
【００８６】
ステートＴ６からで、ＤＭＡＣ５は外部アドレスバスＥＸＡＢ（外部バスＥＸＢＵＳのアドレスバス）にアドレスを出力し、ＳＤＲＡＭ２８などの場合は、ステートＴ６でロウアドレスを、ステートＴ７〜Ｔ８でカラムアドレスを出力する。Ｔ７〜Ｔ８で、リード済みのデータを、ＥＸＤＢにデータを出力する。この間、ステートＴ７で、外部バスＥＸＢＵＳのバスレディー信号ｒｅａｄｙ−ｅｘが非活性状態になり（ｒｅａｄｙ−ｅｘ＝０）、ＤＭＡＣ５のステート遷移は待たされる。ライトするＳＤＲＡＭ２８の上位アドレス（ロウアドレス）が一致していれば、ロウアドレスを出力するステートを省略して、ステートＴ６〜Ｔ７でカラムアドレスを出力することができる。
【００８７】
図７の動作タイミングより明らかなように、周辺バスＰＢＵＳと外部バスＥＸＢＵＳを使用したＤＭＡＣ５によるデータ転送中も、ＣＰＵ３は内部バスＩＢＵＳを使用することができ、不所望の待機状態になることを回避することができる。
【００８８】
図８には前記マイクロコンピュータ１をプリンタ制御に用いたマイクロコンピュータシステムの例が示される。プリンタ制御システムは、ユニバーサルシリアルバスなどの送受信回路（受信回路または送受信回路）を入出力インタフェース回路１３に内蔵したマイクロコンピュータ１、バッファＲＡＭ（ＳＤＲＡＭ）２８、キャラクタジェネレートＲＯＭ（ＣＧＲＯＭ）４１、プログラムＲＯＭ４３、及び印字制御回路４５を含み、これらがバス４７に接続されて構成される。
【００８９】
マイクロコンピュータ１のアドレス空間は所定の大きさに分割され、プログラムＲＯＭ４３はエリア０に、バッファＲＡＭ２８はエリア１に、ＣＧＲＯＭ４１はエリア２に、印字制御回路４５はエリア３に接続する。外部に接続されたプログラムＲＯＭ４３に対して、必要な部分を、内蔵ＲＯＭ７に格納するか、内蔵ＲＡＭ７にコピーするか、あるいは、キャッシュメモリを内蔵したりして、内部バスＩＢＵＳ上メモリに配置するようにする。内蔵ＲＯＭ７が十分に大きな容量を持つことができれば、プログラムＲＯＭ４３は不要とできる。
【００９０】
また、本システムは、さらに、印字ヘッド４９、ラインフィードモータ５１、キャリッジリターンモータ５３を含み、これらのモータ５１，５３は、それぞれ周辺機能回路１５に含まれるタイマの出力によって制御される。図示はされないものの、周辺機能回路１５に含まれるＳＣＩはホストなどとの通信に使用され、Ａ／Ｄ変換器は紙枚数などのセンサ情報の入力に使用される。
【００９１】
図８のマイクロコンピュータシステムでは、ＤＭＡＣ５はＵＳＢなどの入出力インタフェース回路１３と、バッファＲＡＭ２８との間のデータ転送を、内部バスＩＢＵＳを介さずに実行することができる。また、ＤＭＡＣ５は、印字データの出力、ラインフィードモータ５１、キャリッジリターンモータ５２を駆動するパルス出力を行うことができる。更にＤＭＡＣ５は、ＳＣＩの送信データ、受信データの転送を行うことができる。これらの場合は、前記周機能回路１５と内蔵ＲＡＭ９との間のデータ転送を行う。
【００９２】
尚、半導体集積回路の集積度の向上によって、印字制御回路４５などを１個の半導体集積回路化されたマイクロコンピュータに集積することができる。さらに、バッファＲＡＭ２８などの汎用的なメモリも１個の半導体集積回路化されたマイクロコンピュータに集積することができる。プログラムＲＯＭ４３やＣＧＲＯＭ４１などの様に、個別のプリンタの機種などに応じて、マイクロコンピュータシステム毎に変更になるものは、個別の半導体集積回路で構成する方が都合がよい。いずれの部分を１個の半導体集積回路とするにせよ、バスの論理的な構成が変らなければよい。
【００９３】
以上説明した発明の実施形態によれば以下の作用効果を得るものである。
【００９４】
（１）マイクロコンピュータ１のバスを分離してぞれぞれのバスの制御を独立にし、一つのデータ転送要求に応答するデータ転送制御において、ＤＭＡＣ５のバス権要求を、ソースとデスティネーションとで独立に要求することにより、ＣＰＵ３のメモリ７からのプログラムリードなどの動作と、ＤＭＡＣ５のそのほかのバスを用いた、少なくともリードまたはライトの一方のデータ転送とを独立に行うことができ、これによって、マイクロコンピュータの処理性能を向上することができる。
【００９５】
（２）ＤＭＡＣ５は、１つのデータ転送起動要求に応答して、一方のバスに対するバス権の要求と他方のバスに対するバス権の要求を行い、バス毎に夫々別々のデータ転送要求によってバス権の要求を行うシーケンスを採用していないから、データ転送要求とその承認のハンドシェークシーケンスが簡素化され、ＤＭＡＣ５とＣＰＵ３によるデータ処理の効率化に寄与することができる。
【００９６】
（３）ＤＭＡＣ５のデュアルアドレス転送において、１つの起動要求に基づく、リードとライトのバス権要求を夫々独立にすることにより、バス権調停の頻度を高くでき、バス権要求からバス権解放までの待ち時間を短くすることができ、この点においてもデータ処理性能を向上することができる。
【００９７】
（４）それぞれのバスＩＢＵＳ，ＰＢＵＳ，ＥＸＢＵＳのバスコントローラ１１に、アクセスアドレスエリアに応じたバス制御論理を有するようにしたので、ＣＰＵ３そのほかのバスマスタによるアクセスを一括して制御することが可能になり、バス制御の論理的規模の増加を最小限に抑えることが可能になる。
【００９８】
（５）内部バスＩＢＵＳを利用したＣＰＵ３のプログラム実行と、周辺バスＰＢＵＳと外部バスＥＸＢＵＳによるＤＭＡＣ５のデータ転送を並行して行う事ができるから、マイクロコンピュータ１のデータ処理性能を向上でき、さらに、ＳＤＲＡＭを外部バスＥＸＢＵＳに接続する場合、バーストアクセスの適用が容易になり、換言すれば、ＣＰＵ３のデータ処理を妨げることなくＳＤＲＡＭをバーストアクセスすることが容易になり、この点においてもデータ処理性能を向上することができる。
【００９９】
以上本発明者等によってなされた発明を具体的に説明したが本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。
【０１００】
例えば、データ転送装置としては、ＤＭＡＣに限定されず、データトランスファコントローラあるいは、バス権を要求するコプロセッサなどであってもよい。ＤＭＡＣの転送機能やレジスタ構成も任意に変更可能である。転送データサイズは、バイト／ワード／ロングワードのほか、ブロック転送などを持つようにしてもよい。１回の起動要求に対して複数のリードとライトを行う場合は、リードとライト毎にバス権を要求すればよい。アドレスレジスタのビット数は３２ビットに限定されない。ＣＰＵまたは半導体集積回路装置のアドレス空間に応じて、変更できる。例えば、１６Ｍバイトのアドレス空間であれば、２４ビットとすればよい。転送カウントレジスタのビット数や構成も変更可能である。転送データサイズや起動要因の選択なども、転送すべきデータや、転送元・転送先となるＩ／Ｏや入出力インタフェースに応じて、種々変更可能である。
【０１０１】
マイクロコンピュータの構成についても限定されない。機能ブロックなども種々変更できる。ＤＭＡＣの他に、第１バス（Ｉバス）または第２バス（Ｐバス）に接続された、データトランスファコントローラのような、別のデータ転送装置を内蔵してもよい。
【０１０２】
ＤＭＡＣやバスコントローラ、内部バスや外部バスの構成など、具体的な回路構成についても種々変更可能である。周辺バスが複数あってもよいし、外部バスが複数あってもよい。例えば、第２バスを複数にし、そのうちの１つを、入出力インタフェースとＤＭＡＣの間を直結するようにすることもできる。外部バスは、かならずしも、半導体集積回路の外部とのインタフェースでなくてもよい。クロックは、内部バス、周辺バス、外部バスの動作周波数を同一のものとして説明したが、これは適宜分周クロックなどを使用することができる。
【０１０３】
マイクロコンピュータシステムは、プリンタに限定されない。例えば、デジタル通信システムや、デジタルメディアインタフェースシステムなどに用いることができる。入出力インタフェースで受信したデータを、ＤＭＡＣでバッファＲＡＭへ転送し、復調や誤り訂正、変調など所要の処理を行って、ＤＭＡＣでバッファＲＡＭから入出力インタフェースへ転送し、送信するシステムに利用できる。
この場合には、入出力インタフェースからバッファＲＡＭへの転送と、バッファＲＡＭから入出力インタフェースへの転送にＤＭＡＣを使用し、そのほかのＣＰＵなどによるデータ処理と並行させることができて、データ処理性能の向上に寄与することができる。
【０１０４】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるシングルチップマイクロコンピュータに適用した場合について説明したが、それに限定されるものではなく、その他の半導体集積回路装置、例えば、デジタルシグナルプロセッサ（ＤＳＰ）を中心にした半導体集積回路装置にも適用可能であり、本発明は少なくとも、２つのバスを介してデータ転送可能な条件のものに適用することができる。
【０１０５】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【０１０６】
異なったバスの夫々に対し独立したバス権要求とアドレス出力が可能であるから、夫々のバスのバス権を共に占有する状態を解消可能であり、一方のバスのバス権を獲得してリード又はライトを行っているとき他方のバスのバス権を解放することが可能になる。何れかのバスに中央処理装置が接続される場合、データ転送装置によりバス権が解放されているとき中央処理装置はデータ処理を行うことができる。
【０１０７】
また、１つのデータ転送起動要求に応答して、一方のバスに対するバス権の要求と他方のバスに対するバス権の要求を行い、バス毎に夫々別々のデータ転送要求によってバス権の要求を行うシーケンスを採用していないから、データ転送要求と承認のハンドシェークシーケンスが簡素化され、データ転送処理と中央処理装置によるデータ処理の効率化に寄与することができる。
【０１０８】
したがって、データ転送処理とこれに並行する中央処理によるデータ処理とを効率化することができる。要するに、中央処理装置のプログラムリードなどを主とした処理と、各種のインタフェース回路とバッファメモリとの間のデータ転送処理とを並列化する事ができると共に、並列化される双方の処理効率を向上させることができる。
【図面の簡単な説明】
【図１】本発明の一例に係るマイクロコンピュータのブロック図である。
【図２】ＣＰＵのアドレス空間を例示するアドレスマップである。
【図３】ＤＭＡＣの詳細を例示するブロック図である。
【図４】ＤＭＡＣの１データ転送チャネル分のレジスタ構成の詳細を例示する説明図である。
【図５】ＤＭＡＣによるデータ転送制御の状態遷移図である。
【図６】ＤＭＡＣの第１の使用例の動作タイミング図である。
【図７】ＤＭＡＣの第２の使用例の動作タイミング図である。
【図８】マイクロコンピュータをプリンタ制御に用いたマイクロコンピュータシステムを例示するブロック図である。
【符号の説明】
１  マイクロコンピュータ
３  ＣＰＵ
５  ＤＭＡＣ
７  ＲＯＭ
９  ＲＡＭ
１１  バスコントローラ
１３  入出力インタフェース回路
１５  周辺機能回路
１７  入出力ポート
ＩＢＵＳ  内部バス
ＰＢＵＳ  周辺バス
ＥＸＢＵＳ  外部バス
ＥＸＩＦＢＵＳ  外部インタフェースバス
２０  内部バスアービタ
２１  周辺バスアービタ
２２  外部バスアービタ
２３  内部バスコントローラ
２４  周辺バスコントローラ
２５  外部バスコントローラ
２６  リフレッシュタイマ
２７  外部バスバッファ回路
ｄｍａｒｅｑ−ｉ，ｄｍａｒｅｑ−ｐ，ｄｍａｒｅｑ−ｅｘ  バス権要求信号
ｄｍａａｃｋ−ｉ，ｄｍａａｃｋ−ｐ，ｄｍａａｃｋ−ｅｘ  バス権承認信号
ｃｐｕｒｅｑ−ｉ  バス権要求信号
ｃｐｕａｃｋ−ｉ  バス権承認信号
ｔｒｅｑ−ｉｏ，ｔｒｅｑ−ｐｅ，ｔｒｅｑ  転送リクエスト信号
ｔａｃｋ−ｉｏ，ｔａｃｋ−ｐｅ，ｔａｃｋ  転送アクノリッジ信号
３１  制御回路
ＣＨＮ  データ転送チャネル
ＤＴＭＲ  コントロールレジスタ
ＳＡＲ  ソースアドレスレジスタ
ＤＡＲ  ディスティネーションアドレスレジスタ
【図１】
2004227049.tif 000003
【図２】
2004227049.tif 000004
【図３】
2004227049.tif 000005
【図４】
2004227049.tif 000006
【図５】
2004227049.tif 000007
【図６】
2004227049.tif 000008
【図７】
2004227049.tif 000009
【図８】
2004227049.tif 000010