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