(57)【特許請求の範囲】
【請求項１】
中央処理装置（ＣＰＵ）と、データ転送装置（ＤＴＣ）と、記憶装置（ＲＡＭ）と、を有し、
前記記憶装置は、転送モード情報（ＭＲ）と、転送元または転送先または操作対象を示すアドレス情報（ＳＡＲ、ＤＡＲ）を含む転送情報セット（データ転送情報）を格納しており、
前記データ転送装置は、前記転送モード情報を格納するモードレジスタと、前記アドレス情報が転送されるアドレスレジスタと、前記データ転送情報を格納した時の転送情報セットを指定する情報を示すステータスレジスタ（ＳＲ）とを含む、複数のレジスタファイルを有し、
前記データ転送装置は、前記ステータスレジスタの情報を確認して、前記レジスタファイルに保持した転送情報セットを利用するか、前記記憶装置から転送情報セットを読み出して、前記レジスタファイルを書き換えるかを判断し、
前記レジスタファイルに格納した転送情報セットに基づいたデータ転送を行う
マイクロコンピュータ。
【請求項２】
前記転送情報セットは、転送カウント（ＣＲ）情報をさらに含み、
前記レジスタファイルは、前記転送カウント情報が転送されるカウントレジスタと、前記転送情報セットの有効情報フラグ手段（ＶＬＤ）をさらに有し、
前記データ転送装置は、前記記憶装置から前記転送情報セットを読み出して、前記レジスタファイルに格納したときに、前記有効情報フラグ手段をセットし、
前記転送カウント情報によって、指定回数のデータ転送が終了したことを判断したときに、前記有効情報フラグ手段をクリアする
請求項１記載のマイクロコンピュータ。
【請求項３】
転送情報格納指定手段（ＤＴＣＩＲ）をさらに有し、
前記転送情報格納指定手段は、初期化に用いられる前記転送情報セットを指定する情報を含み、
前記データ転送装置は、前記転送情報格納指定手段による指示に応じ、前記転送情報セットを指定する情報に従って、前記記憶装置から前記転送情報セットを読み出して、前記レジスタファイルに格納する
請求項１又は２記載のマイクロコンピュータ。
【請求項４】
前記レジスタファイルには、前記転送情報セットの保持を指示するフラグ手段（ＰＲＭ）を含み、
前記データ転送装置は、前記記憶装置から前記転送情報セットを読み出して、前記レジスタファイルに格納したときに、前記転送情報セットの保持を指示するフラグ手段をセットし、
前記有効情報フラグ手段と前記転送情報セットの保持を指示するフラグ手段とがいずれもセットされている状態では、対応する前記レジスタファイルの書き換えを行わない
請求項２記載のマイクロコンピュータ。
【請求項５】
前記有効情報フラグ手段と前記転送情報セットの保持を指示するフラグ手段がいずれもセットされている状態では、対応する前記レジスタファイルが格納した前記転送情報セットの前記記憶装置への書き戻しを行わない
請求項４記載のマイクロコンピュータ。
【請求項６】
前記転送情報セットを指定する情報は、前記転送情報セットを格納する先頭アドレスを指定する情報と対応する
請求項１乃至５いずれか１項記載のマイクロコンピュータ。
【請求項７】
前記転送情報セットを指定する情報は、前記転送情報セットのアドレスを指定する情報と対応する
請求項１乃至５いずれか１項記載のマイクロコンピュータ。
【請求項８】
中央処理装置（ＣＰＵ）と、データ転送装置（ＤＴＣ）と、記憶装置（ＲＡＭまたはＲＯＭ）と転送情報格納指定手段（ＤＴＣＩＲ）と、を有し、
前記記憶装置は、転送モード情報（ＭＲ）と、転送元または転送先または操作対象を示すアドレス情報（ＳＡＲ、ＤＡＲ）と、転送カウント情報（ＣＲ）とを含む転送情報セット（データ転送情報）を格納しており、
前記データ転送装置は、前記転送モード情報を格納するモードレジスタと、前記アドレス情報が転送されるアドレスレジスタと、前記転送カウント情報が転送されるカウントレジスタと、を含むレジスタファイルと、連続データ転送の指定手段（ＡＵＴＥ）と、を有し、
前記転送情報格納指定手段は、前記転送情報セットを指定する情報を含み、
前記データ転送装置は、前記転送情報格納指定手段による指示に応じて、前記転送情報セットを指定する情報に従って、前記記憶装置から前記転送情報セットを読み出して、前記レジスタファイルに格納するとともに、
前記連続データ転送の指定手段がセットされている場合、直ちにデータ転送を実行する
マイクロコンピュータ。
【請求項９】
前記転送情報セットを指定する情報は、前記転送情報セットのアドレスを指定する情報と対応する
請求項８記載のマイクロコンピュータ。
【請求項１０】
中央処理装置（ＣＰＵ）と、データ転送装置（ＤＴＣ）と、情報を固定的に保持する記憶装置（ＲＯＭ）と、情報を書き換え可能に保持する記憶装置（ＲＡＭまたは機能ブロック）と、を有し、
前記情報を固定的に保持する記憶装置は、転送モード情報（ＭＲ）と、転送元または転送先または操作対象を示すアドレス情報（ＳＡＲ、ＤＡＲ）と、転送カウント情報（ＣＲ）と、を含む転送情報セット（データ転送情報）を格納しており、
前記データ転送装置は、前記転送モード情報を格納するモードレジスタと、前記アドレス情報が転送されるアドレスレジスタと、前記転送カウント情報が転送されるカウントレジスタと、を含むレジスタファイルを有し、
前記データ転送装置は、マイクロコンピュータの動作開始後に起動され、前記情報を固定的に保持する記憶装置から前記転送情報セットを読み出して、前記レジスタファイルに格納するとともに、
前記情報を固定的に保持する記憶装置から、前記情報を書き換え可能に保持する記憶装置へ、連続データ転送を実行する
マイクロコンピュータ。
【請求項１１】
前記転送モード情報は、連続データ転送の指定手段（ＡＵＴＥ）を含む
請求項１０記載のマイクロコンピュータ。
【請求項１２】
データ入出力手段と割り込み制御手段とをさらに有し、
前記データ入出力手段は、前記割り込み制御手段に対して割り込み要求を行い、
前記割り込み制御手段は、前記割り込み要求に応じて、前記中央処理装置に対して割り込み信号を出力し、前記データ転送装置に対して起動要求を出力する
請求項１乃至１１いずれか１項記載のマイクロコンピュータ。
【請求項１３】
前記転送モード情報は、ビット操作を指定する情報（ＢＯＰ）及び前記アドレス情報で指定されたデータの中のビットを操作対象として指定する情報を含み、
前記ビット操作を指定する情報によりビット操作が指定されているときは、
前記記憶装置から前記転送情報セットを前記データ転送装置に読み出し、
前記アドレス情報で指定されたアドレスをリードして、指定されたビットを用いた操作を実行する
請求項１乃至１２いずれか１項記載のマイクロコンピュータ。
【請求項１４】
前記データ転送装置は、
前記転送情報セットを用いたビット操作において、前記転送モード情報によって指定されたビットを格納する手段（ＡＣＭ）を含み、
次の転送情報セットを用いた動作において、前記指定されたビットを格納する手段を利用可能とする
請求項１３記載のマイクロコンピュータ。
【請求項１５】
前記転送モード情報には分岐を指定する情報（ＢＲＥ）を含み、
前記データ転送装置は、前記転送情報セットを用いた分岐において、前記指定されたビットを格納する手段を参照して、次の転送情報セットを指定するアドレスを選択する
請求項１４記載のマイクロコンピュータ。
【請求項１６】
前記転送情報セットは、分岐の条件を指定する情報と、次の転送情報セットを指定する情報（分岐アドレス）を含み、
前記データ転送装置は、
前記転送情報セットの読み出しまたは書き込みを行うためのカウント手段（ＶＧＲ）を有し、
前記分岐の条件の指定情報と前記指定されたビットを格納する手段とを参照して、所定の条件をみたすとき、前記カウント手段と次の転送情報セットを指定する情報との演算を行い、所定の条件をみたしていないとき、前記演算を行わない
請求項１５記載のマイクロコンピュータ。
【請求項１７】
前記記憶装置は、前記転送モード情報と、転送元アドレスと、転送先アドレスと、転送回数を指定する転送カウントデータと、データ情報と、の少なくとも１つを含む前記転送情報セット（データ転送情報）を格納しており、
前記データ転送装置は、前記転送モード情報を格納するモードレジスタと、前記転送元アドレス、前記転送先アドレス、及び前記転送カウントデータが転送されるレジスタと、データレジスタと、演算器と、を含み、
前記転送モード情報と、前記転送元アドレスと、前記転送先アドレスと、前記転送カウントデータと、に基づいてデータ転送を行うことが可能であって、
前記転送情報セットを用いたデータ転送においては、前記記憶装置から前記転送情報セットを前記データ転送装置に読み出し、前記転送情報セットに基づいて所定の転送を行った後、前記転送情報セットに含まれる情報の前記記憶装置へ書き戻しを１単位として行うものであって、
前記転送モード情報は、前記転送元アドレスと、前記転送先アドレスと、前記転送回数と、を指定する前記転送カウントデータと、データ情報と、ののうち使用すべき項目を指定する情報を含む
請求項１乃至１２いずれか１項記載のマイクロコンピュータ。
【請求項１８】
前記データ転送装置は、
前記転送情報セットの読み出しに続いて、次の転送情報セットの一部を読みだすとともに、
読み出した次の転送情報セットの一部を格納するバッファ手段（ＰＦＢ）を有する
請求項１７記載のマイクロコンピュータ。
【請求項１９】
前記中央処理装置は、前記転送情報セットを設定する手段を有する
請求項１７乃至１８いずれか１項記載のマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はマイクロコンピュータに関し、例えば中央処理機能とデータ転送機能を有するマイクロコンピュータに適用可能なデータ転送技術に関する。
【背景技術】
【０００２】
シングルチップマイクロコンピュータは、非特許文献１に記載されるように、中央処理装置（ＣＰＵ）を中心にしてプログラム保持用のＲＯＭ（リードオンリメモリ）、データ保持用のＲＡＭ（ランダムアクセスメモリ）、およびデータないし信号の入出力を行うための入出力回路などの機能ブロックが一つの半導体基板上に形成されてなり、機器制御に用いられる。
【０００３】
このようなシングルチップマイクロコンピュータによる機器制御においては、割り込みなどのイベントに呼応して、データ転送を行うことが求められる。ＣＰＵは命令の組み合わせによって任意の処理を実現できるから、割り込み処理及びデータ転送処理を行うことも可能である。しかし、ＣＰＵが割り込み処理を行う場合には、それまでの処理の流れを切り替えるために、例外処理、スタックの退避・復帰操作、復帰命令の実行が必要になる。また、正味のデータ転送処理に対して、付随する命令リードなどの動作時間が大きくなりがちである。
【０００４】
加えて、近年、マイクロコンピュータが内蔵する機能は増えてきており、これに伴って割り込みなどのイベントに呼応して行うべきデータ転送の数も増え、ひとつひとつのイベントに呼応した処理もより高速に実行する必要性が高まっている。
【０００５】
そこで、マイクロコンピュータにおいては、ＣＰＵ負荷を抑制しつつ、データ転送処理の効率性、高速性、利便性を向上させることが求められている。
【０００６】
この点、シングルチップマイクロコンピュータにＣＰＵとデータ転送装置とを備え、データ転送は専用のハードウェアであるデータ転送装置で実行することとすれば、ＣＰＵがデータ転送を行うよりも高速なデータ転送を実現できることが知られている。そして、ＣＰＵは割り込み処理の頻度が減ることで、効率的な処理を行うことができる。
【０００７】
このようなデータ転送装置において、少ないハードウェアで多数の周辺処理装置（入出力回路）からの要求に応じてデータ転送を行うことができるようにした例に、特許文献１がある。
【０００８】
特許文献１の例では、転送すべきデータが格納されているメモリの位置を示す転送元アドレスなどのデータ転送情報を格納する記憶装置（ＲＡＭ）をマイクロコンピュータに備えている。また、前記データ転送に必要なすべての情報が前記記憶装置（ＲＡＭ）のどこに格納しであるかを示すアドレスを格納するベクタテーブルを設けている。そして、データ転送の起動要求があった場合に、起動要求に対応してベクタテーブルの内容を参照する手段と、ベクタテーブルの内容からデータ転送に必要なすべての情報を得る手段とを設けている。
【０００９】
このようなデータ転送情報を記憶装置に格納して、データ転送装置の１回の動作で、少なくとも１つ以上のデータ転送情報によるデータ転送を指定可能（チェイン転送）とした例に、特許文献２がある。特許文献２の例では、データ転送装置が、任意の起動要因で、任意の数の転送を行うことが可能となる。これにより、データ転送装置の様々な用途での利用が可能となり、システム構成上の自由度が向上し、使い勝手が向上する。
【００１０】
また、特許文献２の例では、データ転送装置の応用範囲を広げるために、リピート転送モード、データブロック転送を可能にしている。このようなデータ転送装置は、転送先や転送元のアドレスの制御や、転送回数の選択などを行うことができるから、例えば、プリンタなどのシステムに適用して、ステッピングモータの制御（複数）やプリンタの印字データ制御、さらには、受信データのメモリへの蓄積に好適である。
【００１１】
さらに、特許文献２では、ＣＰＵが主に利用するバスと並列に動作可能なバスで、データ転送装置がデータ転送情報のリード／ライトやデータ転送を行なうことにより、データ転送情報を読み出しまたは書き戻す際の無駄を抑制できることも指摘されている。
【００１２】
発明者の検討によれば、使用用途の限定されない、すなわち汎用的な記憶装置であるＲＡＭにデータ転送情報を格納する、特許文献１又は２に記載されているようなデータ転送装置には、以下のような利点がある。
（ａ）データ転送の数を増やすことができる。いわゆるＤＭＡコントローラのように、データ転送情報をデータ転送装置自身の専用のハードウェアに保持する方式は、実装されるハードウェアによってデータ転送の数が制限されるのに比較して、データ転送情報を使用用途の限定されないＲＡＭに格納する方式は、データ転送の数を増やすことが容易であり、利用者の種々の使用方法に対応することができる。
（ｂ）いわゆるＤＭＡコントローラのように、起動要因の選択をデータ転送装置自身の制御レジスタによる指定およびマイクロコンピュータのインタフェースとして実装する方式に対して、割り込み要因を利用して、ＣＰＵに割り込みを要求するか、ＤＴＣにデータ転送を要求するかを選択する方式は、より多くの割り込みないしイベント発生に応じたデータ転送を行うことができる。
（ｃ）チェイン動作など、１回の起動時に実行するデータ転送の数を増やすことができ、また異なるデータ転送を組み合わせた機能を実現できる。
（ｄ）データ転送情報の構成の変更、あるいは増減ができる。
（ｅ）専用のハードウェアは最低限１回のデータ転送に必要な分を持てばよいので、機能を追加して、ハードウェア規模が増えても、マイクロコンピュータ全体の物理的な規模の増加を抑止することができる。
（ｆ）データ転送装置自身の専用のハードウェアとして、制御レジスタなどを持たないため、ＣＰＵからのライトとの競合など、複雑な動作条件を考慮する必要がない。物理的な規模の増加を抑止することに寄与できる。
【００１３】
ところで、上述のような、データ転送情報を記憶装置に格納するデータ転送装置にあっては、今回転送しようとするデータの転送要因が前回の転送要因と同一であっても、前回用いたデータ転送情報を利用することなく、今回のデータ転送情報を改めて取得する構成となっている。そのため、データ転送処理の高速化という観点からは、本来必要のない時間を費やしているという問題がある。
【００１４】
この問題に着目して、転送しようとするデータの転送要因が前回と今回とで同じ場合には、前回用いた既知の転送情報を再利用することによりデータ転送の高速化を図るように工夫したデータ転送装置が特許文献３で提案されている。
【００１５】
また、データ転送実行後に、データ転送情報を記憶装置に書き戻すにあたって、データ転送情報の更新を行ったか否かによって、書き戻す必要があるか否かを判定し、書き戻す必要のない情報はデータ転送情報レジスタをメモリに書き戻すサイクルを行わない構成とすることにより、データ転送装置の高速化を図った例に、特許文献４がある。
【００１６】
また、データ転送装置の利便性を高める工夫としては、データ転送装置内にあらかじめ設定したデータと転送するデータと間で比較や簡単な演算が行える演算器を内蔵した例に、特許文献５がある。
【先行技術文献】
【特許文献】
【００１７】
【特許文献１】特開平０１−１２５６４４号公報
【特許文献２】特開平０７−１２９５３７号公報
【特許文献３】特開２００１−１６００２５号公報
【特許文献４】特開２００４−０２１４０１号公報
【特許文献５】特開２０００−１９４６４７号公報
【非特許文献】
【００１８】
【非特許文献１】電子情報通信学会編、「ＬＳＩハンドブック」、日本、株式会社オーム社、昭和５９年１１月３０日発行、第５４０−５４１頁
【発明の概要】
【発明が解決しようとする課題】
【００１９】
特許文献３の例は、ＣＰＵ負荷を抑制しデータ転送装置の効率性を高めるという利点を有するものの、データ転送装置が保持するデータ転送情報は１つである。そのため、複数の起動要因が同じ程度の頻度で発生する場合は、データ転送情報を再利用できる可能性が低くなってしまい、高速化もできにくいという問題があった。
【００２０】
また、特許文献５記載の例は、ＣＰＵ負荷を抑制しデータ転送装置の利便性を高めるという利点を有するものの、例えば機器制御用途においては、ビットのリード及びライトの手順や、ビット操作が可能な期間について制限がある場合が少なくない。そのため、これらに対応したビット操作の方法を提供することが望まれる。
【００２１】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００２２】
一実施の形態によれば、ＭＣＵ１００のデータ転送装置１０２は、ステータスレジスタの情報を確認して、レジスタファイルに保持した転送情報セットを利用するか、記憶装置から転送情報セットを読み出してレジスタファイルの所定の１つを書き換えるかを判断し、レジスタファイルの１つに格納した転送情報セットに基づいたデータ転送を行う。
【００２３】
一実施の形態によれば、ＭＣＵ１００のデータ転送装置１０２は、ビット操作を指定する情報によりビット操作が指定されているときは、記憶装置から転送情報セットをデータ転送装置１０２に読み出し、指定されたアドレスをリードして、指定されたビット操作を実行する。
【００２４】
なお、上記実施の形態の装置を方法やシステムに置き換えて表現したもの、該装置または該装置の一部の処理をコンピュータに実行せしめるプログラム、該装置を備えた撮像装置なども、本発明の態様としては有効である。
【発明の効果】
【００２５】
前記一実施の形態によれば、汎用的な記憶装置（ＲＡＭ）にデータ転送情報を格納するデータ転送装置の利点を維持し、機器制御用途での多様な要求への柔軟な対応性を享受しつつ、記憶装置に保持したデータ転送情報の読み出しまたは書き込みを省略することにより、データ転送の高速化を実現できる。
【図面の簡単な説明】
【００２６】
【図１】実施の形態１のＭＣＵ１００の構成を示す図である。
【図２】実施の形態１のＤＴＣ１０２の構成を示す図である。
【図３】実施の形態１のレジスタファイルおよびデータ転送情報を示す図である。
【図４】実施の形態１のデータ転送情報初期化レジスタ（ＤＴＣＩＲ）を示す図である。
【図５】実施の形態１のＤＴＣ１０２の初期化処理を示す図である。
【図６】実施の形態１のＤＴＣ１０２のデータ転送処理を示す図である。
【図７】実施の形態１のＤＴＣ１０２のデータ転送処理を示す図である。
【図８】実施の形態１の変形例のＤＴＣ１０２の構成を示す図である。
【図９】実施の形態１の変形例のデータ転送情報初期化レジスタ（ＤＴＣＩＲ）を示す図である。
【図１０】実施の形態２のレジスタファイルおよびデータ転送情報を示す図である。
【図１１】実施の形態２のＤＴＣ１０２のデータ転送情報初期化レジスタ（ＤＴＣＩＲ）を示す図である。
【図１２】実施の形態２のＤＴＣ１０２の初期化処理を示す図である。
【図１３】実施の形態２のＤＴＣ１０２のデータ転送処理を示す図である。
【図１４】実施の形態２のＤＴＣ１０２のデータ転送処理を示す図である。
【図１５】実施の形態２の変形例のＤＴＣ１０２の構成を示す図である。
【図１６】実施の形態３のレジスタファイルおよびデータ転送情報を示す図である。
【図１７】実施の形態３のＤＴＣ１０２のデータ転送処理を示す図である。
【図１８】実施の形態３の変形例のＤＴＣ１０２の構成を示す図である。
【図１９】実施の形態３の変形例のデータ転送情報初期化レジスタ（ＤＴＣＩＲ）を示す図である。
【図２０】実施の形態４のＤＴＣ１０２によるＭＣＵ１００の初期設定処理を示す図である。
【図２１】実施の形態５のＭＣＵ１００を用いたシステム構成を示す図である。
【図２２】ＩＮＴ１０３の構成を示す図である。
【図２３】実施の形態６のＭＣＵ１００の構成を示す図である。
【図２４】実施の形態６のＤＴＣ１０２の構成を示す図である。
【図２５】実施の形態６のデータ転送情報を示す図である。
【図２６】実施の形態６のＤＴＣ１０２のデータ転送処理を示す図である。
【図２７】実施の形態６の第１の例のデータ転送情報を示す図である。
【図２８】実施の形態６の第１の例のＤＴＣ１０２のデータ転送処理を示す図である。
【図２９】実施の形態６の第１の例のＤＴＣ１０２のデータ転送処理を示す図である。
【図３０】実施の形態６の第２の例のデータ転送情報を示す図である。
【図３１】実施の形態６の第２の例のＤＴＣ１０２のデータ転送処理を示す図である。
【図３２】実施の形態６の第２の例のＤＴＣ１０２のデータ転送処理を示す図である。
【図３３】実施の形態６の第３の例のデータ転送情報を示す図である。
【図３４】実施の形態６の第３の例のＤＴＣ１０２のデータ転送処理を示す図である。
【図３５】実施の形態６の第４の例のデータ転送情報を示す図である。
【図３６】実施の形態６の第４の例のＤＴＣ１０２のデータ転送処理を示す図である。
【図３７】実施の形態６の変形例のＤＴＣ１０２の構成を示す図である。
【図３８】実施の形態６の変形例のＤＴＣ１０２のデータ転送処理を示す図である。
【図３９】実施の形態６の変形例のデータ転送情報を示す図である。
【図４０】実施の形態６の変形例のＤＴＣ１０２のデータ転送処理を示す図である。
【図４１】実施の形態６の変形例のデータ転送情報を示す図である。
【図４２】実施の形態６の変形例のＤＴＣ１０２のデータ転送処理を示す図である。
【図４３】実施の形態６の変形例のＤＴＣ１０２のデータ構成を示す図である。
【図４４Ａ】実施の形態６の変形例のデータ転送情報を示す図である。
【図４４Ｂ】実施の形態６の変形例のデータ転送情報を示す図である。
【図４５】実施の形態６の変形例のデータ転送処理を示す図である。
【図４６】実施の形態６のＩＮＴ１０３の構成を示す図である。
【図４７】実施の形態６のＭＣＵ１００を用いたシステム構成を示す図である。
【図４８】背景技術を示す図である。
【発明を実施するための形態】
【００２７】
＜実施の形態１＞
まず、図１のブロック図を用いて、実施の形態１にかかるマイクロコンピュータ（ＭＣＵ）１００の構成について説明する。
【００２８】
ＭＣＵ１００は、中央処理装置（ＣＰＵ）１０１、データトランスファコントローラ（ＤＴＣ）１０２、割り込みコントローラ（ＩＮＴ）１０３、リードオンリメモリ（ＲＯＭ）１０４、ランダムアクセスメモリ（ＲＡＭ）１０５、バスコントローラ（ＢＳＣ）１０５、タイマ６、シリアルコミュニケーションインタフェースなどの通信モジュール１０７、Ａ／Ｄ変換器およびＤ／Ａ変換器などのアナログモジュール１０８、入出力ポート（Ｉ／Ｏ）１０９、および、図示はされない、リセット制御や動作モード制御などの機能ブロックないしはモジュールから構成される。これらは、ＭＣＵ内部バス（マスタバスおよびスレーブバス）によって相互に接続される。
【００２９】
ＭＣＵ１００において動作の主体となるのはＣＰＵ１０１であり、主にＲＯＭ１０４から命令を読込んで動作する。ＤＴＣ１０２は、ＣＰＵ１０１の設定に基づき、ＣＰＵ１０１に代ってデータ転送を行う。
【００３０】
ＩＮＴ１０３は、タイマ１０７、通信モジュール１０８、アナログモジュール１０９などからの割み込み要求、およびＭＣＵ１００外部からの複数の外部割り込み要求信号に基づく、Ｉ／Ｏ１１０からの割り込み要求を受けて、ＣＰＵ１０１、ＤＴＣ１０２のいずれかに割り込みないしデータ転送要求を出力する。また、ＩＮＴ１０３は、割り込み信号による処理を開始したときあるいは終了したときに、割り込みをクリアする信号である割込みクリア信号を、タイマ１０７、通信モジュール１０８、アナログモジュール１０９、Ｉ／Ｏ１１０のそれぞれの割込み信号ないし割り込み要因フラグに対応して出力する。
【００３１】
ＢＳＣ１０６は、ＣＰＵ１０１およびＤＴＣ１０２からのバスリクエスト信号を受けて、ＭＣＵ内部バス（マスタバス）の占有に対する調停をし、図示はされないバス使用許可信号を出力する。ＢＳＣ１０６は、ＣＰＵ１０１およびＤＴＣ１０２と、バスリクエスト、バスアクノレジ、バスコマンド、ウェイト、アドレス、データなどのインタフェースを行い、ＭＣＵ１００の内部バスに接続された、ＲＡＭ１０５やそのほかの機能ブロックないしはモジュールに対するＣＰＵ１０１およびＤＴＣ１０２によるリード／ライトを実現ならしめる。
【００３２】
図２に、ＤＴＣ１０２の構成を示すブロック図を示す。
【００３３】
ＤＴＣ１０２は、データ転送制御ブロック（ＤＴＣＣＮＴ）、バスインタフェース（ＭＢＩＦ）、ベクタ生成ブロック（ＶＧ）、４チャネルのレジスタファイル（ＲＥＧ０〜３）、演算器（ＡＬＵ）を含む。
【００３４】
各レジスタファイルは、ベクタアドレスレジスタ（ＶＡＲ）、モードレジスタ（ＭＲ）、ソースアドレスレジスタ（ＳＡＲ）、デスティネーションアドレスレジスタ（ＤＡＲ）、データ転送カウンタ（ＣＲ）、ステータスレジスタ（ＳＲ）を持つ。
【００３５】
ＤＴＣＣＮＴは、ＩＮＴ１０３とのインタフェースとして、ＤＴＣＩＮＩＴ、ＤＴＣＲＥＱ、ＤＴＣＶＥＣの入力、割り込み要因／ＤＴＥ／ＩＮＩＴＥクリア、ＤＴＣ動作開始／終了の出力を持つ。また、ＭＣＵ１００内部マスタバスとのインタフェース（ＭＢＩＦ）が、ＭＣＵ１００内部バスをバスマスタとして利用可能にする。
【００３６】
ＤＴＣＣＮＴは、ＩＮＴ１０３からのＤＴＣＲＥＱなどの入力信号およびＭＲの内容に基づき、ＤＴＣ１０２の制御を行う。また、ＩＮＴ１０３に対して、割り込み要因、ＤＴＥ、ＩＮＩＴＥクリア信号などを出力する。ＤＴＣＣＮＴは使用チャネル情報記憶手段を有し、ＤＴＣが起動されると割り込み要因フラグまたはＤＴＥビットをクリアし、ＤＴＣが停止するまでに使用したレジスタファイルのチャネルを保持する。
【００３７】
ＭＢＩＦは、ＤＴＣ内部バスと、ＭＣＵ１００の内部マスタバスとのインタフェースを行う。このインタフェースには、バスリクエスト、バスアクノレジ、バスコマンド、ウェイト、アドレス、データなどを含む。
【００３８】
ＶＧは、ＩＮＴ１０３から与えられる割込みベクタ番号ＤＴＣＶＥＣに従って、ベクタアドレスを生成する。例えば、ＤＴＣＶＥＣを４倍などとし、所定のオフセットを加算する。
【００３９】
ＶＡＲは、前記ベクタアドレスからリードしたデータ転送情報の先頭アドレスを格納する。
【００４０】
ＭＲ、ＳＡＲ、ＤＡＲ、ＣＲは、前記データ転送情報先頭アドレスから順次リードしたデータ転送情報を格納する。
【００４１】
ＳＲは、当該レジスタファイルの保持しているデータ転送情報のベクタ番号などを保持する。
【００４２】
ＡＬＵは、算術演算、論理演算、シフトなどを行う。
【００４３】
ＤＴＣ１０２の内部バスは、図示はされないものの、複数のバスが存在し、上述のＳＡＲ、ＤＡＲ、ＣＲの複数の内容を、ＡＬＵで演算できるようにする。
【００４４】
図３に、実施の形態１にかかるＤＴＣ１０２のレジスタファイルおよびデータ転送情報（転送情報セット）の一例を示す。
【００４５】
ＤＴＣ１０２のデータ転送情報は、モードレジスタ（ＭＲ）、ソースアドレスレジスタ（ＳＡＲ）、デスティネーションレジスタ（ＤＡＲ）、転送カウントレジスタ（ＣＲ）からなる。
【００４６】
ＤＴＣ１０２のレジスタファイルは、前記データ転送情報および、ベクタアドレスレジスタ（ＶＡＲ）、ステータスレジスタ（ＳＲ）を含む。
【００４７】
ＣＲは、ブロック転送カウントレジスタ（ＢＴＣＲ）、転送カウントレジスタ（ＴＣＲ）に分割され、ＴＣＲは８ビットずつ上位（ＴＣＲＨ）、下位（ＴＣＲＬ）に分割されている。ＣＲは後述のデータ転送モードに従って動作する。
【００４８】
これらのレジスタファイルは、上述の通り４チャネル分の回路がＤＴＣの内部に存在し、これらに格納されるべきデータ転送情報（ＭＲ、ＳＡＲ、ＤＡＲ、ＣＲ）は、任意の必要組数がＣＰＵのアドレス空間上の、ＲＡＭなどの所定のデータ転送情報配置領域に配置される。
【００４９】
モードレジスタ（ＭＲ）のビット構成は以下の通りである。
【００５０】
ビット１５、ビット１４は、ＳＭ１、ＳＭ０ビットであり、データ転送後にＳＡＲ２をインクリメントするか、デクリメントするか、固定にするかを指定する。
【００５１】
ビット１３、ビット１２は、ＤＭ１、ＤＭ０ビットであり、データ転送後にＤＡＲをインクリメントするか、デクリメントするか、固定にするかを指定する。
【００５２】
ビット１１、ビット１０は、ＴＭＤ１、ＴＭＤ０ビットであり、データ転送モードを選択する。ＴＭＤ１、ＴＭＤ０ビットを００にするとノーマルモードとなる。このノーマルモードでは、１回の起動で、ＳＡＲで示されるアドレスからＤＡＲで示されるアドレスへ１回のデータ転送を行う。
【００５３】
この後、ＳＭ１、ＳＭ０、ＤＭ１、ＤＭ０ビットの指定に基づいてＳＡＲ、ＤＡＲの操作が行われ、ＣＲがデクリメントされる。これを起動要因が発生する毎に、ＣＲで指定された回数だけ繰り返す。そして、ＣＲで指定された回数のデータ転送が終了すると、ＤＴＣ動作が禁止され、起動要因となった割り込みがＣＰＵに要求される。
【００５４】
ＴＭＤ１、ＴＭＤ０ビットを０１にするとリピートモードとなる。ＴＭＤ１、ＴＭＤ０ビットを１０にするとブロック転送モードとなる。リピートモード、ブロック転送モードは、公知の技術で実現できる。
【００５５】
ビット９はＤＩＲビットであり、転送元または転送先のいずれをリピート領域、ブロック領域とするかを選択する。
【００５６】
ビット７、６はＳｚ１、Ｓｚ０ビットであり、１回のデータ転送をバイトサイズ、ワードサイズ、ロングワードサイズのいずれで行うかを選択する。
【００５７】
ビット１はＮＸＴＥ１ビットであり、１つの起動要因に対してデータ転送を終了するか、次のデータ転送を行うかを選択する。このＮＸＴＥ１ビットを０にクリアした場合、データ転送情報リードおよびデータ転送後、データ転送情報をライトしてＤＴＣの動作を終了する。
【００５８】
また、このＮＸＴＥ１ビットを１にセットした場合、データ転送情報リードおよびデータ転送後、データ転送情報をライトして、さらに連続したアドレスからデータ転送情報をリードして、このデータ転送情報で指定されるデータ転送を行い、データ転送情報をライトする。これをチェイン転送と呼ぶ。
【００５９】
ビット０はＮＸＴＥ０ビットであり、ＣＲが０になったときに、チェイン転送を行うかを指定する。
【００６０】
ステータスレジスタ（ＳＲ）のビット構成は以下の通りである。
【００６１】
ビット３１は、ＶＬＤフラグであり、当該レジスタファイルが保持するデータ転送情報が有効であることを示す。リセットによって０にクリアされる。当該レジスタファイルにデータ転送情報が格納されると１にセットされる。所定のデータ転送の実行を終了すると０にクリアされる。
【００６２】
ビット３０は、ＰＲＭフラグビットであり、当該レジスタファイルが、後述のＤＴＣＩＲライトによるデータ転送情報格納を行ったことを示す。
【００６３】
ビット２９、２８は、ＬＲＵフラグである。レジスタファイルの各チャネルが異なる値（０〜３）を示すようにする。その方法は任意にできるが、例えば、古く使用したチャネルは大きい値、新しく使用したチャネルは小さい値となるようにするとよい。
【００６４】
ビット７〜０は、当該レジスタファイルにデータ転送情報を格納したときのベクタを保持する。
【００６５】
図４に、実施の形態１にかかるＤＴＣ１０２のデータ転送情報初期化レジスタ（ＤＴＣＩＲ）を示す。
【００６６】
ＤＴＣＩＲのビット３１はＩＮＩＴＥビット、ビット７〜０はベクタ番号である。ＤＴＣＩＲは、特に制限はされないものの、割り込みコントローラ（ＩＮＴ）に１本を設ける。
【００６７】
ＣＰＵ１０１がＩＮＩＴＥビットを１にセットすると、ＤＴＣ１０２に対し、ＤＴＣＩＮＩＴ、ＤＴＣＶＥＣを与える。この場合のＤＴＣＶＥＣは、ＤＴＣＩＲのビット７〜０による。ＤＴＣ１０２はこれに基づき、データ転送情報先頭アドレスとデータ転送情報のリードを行う。このリードが完了すると、ＩＮＩＴＥビットを０にクリアする。
【００６８】
本実施の形態では、ＤＴＣ１０２のレジスタファイルは４チャネルであるため、ＣＰＵ１０１は４つのベクタに対して、上記動作を実行することができる。
【００６９】
なお、初期化後に要求される起動要因が予測できないような場合は、上記初期化動作を行わずに、ＤＴＣ１０２を起動することも可能である。
【００７０】
図５に、実施の形態１におけるＤＴＣ１０２の初期化フローチャートを示す。
【００７１】
ＤＴＣ初期化が起動される場合、割り込みコントローラ（ＩＮＴ１０３）から、前記ＤＴＣＩＲライトに基づく、ＤＴＣＩＮＩＴ、ＤＴＣＶＥＣがＤＴＣ１０２に与えられる。
【００７２】
Ｓ１０１：ＤＴＣ１０２のＤＴＣＣＮＴは、与えられたＤＴＣＶＥＣに対応したベクタ領域をリードする（ＶＲ）。ここでリードした内容は、データ転送情報が存在する記憶領域の先頭アドレスである。
【００７３】
Ｓ１０２：ＤＴＣＣＮＴは、取得した先頭アドレスに基づきデータ転送情報をリードする（ＩＲ）。リードしたデータ転送情報は、ＤＴＣ１０２のレジスタファイルの内の１つに格納する。このとき、ステータスレジスタ（ＳＲ）のＶＬＤ、ＬＲＵフラグを参照して、ＶＬＤ＝０（無効）のレジスタファイル、あるいは、ＬＲＵが最も大きい（古い）レジスタファイルを使用する。無効のレジスタファイルが複数ある場合は、チャネル番号の小さい順に使用する。
【００７４】
データ転送情報を格納すると、ＳＲのＶＬＤ、ＰＲＭフラグを１にセットする。また、ＩＮＴに対し、ＩＮＩＴＥクリア信号を与える。
【００７５】
図６に、実施の形態１にかかるＤＴＣ１０２のデータ転送動作のフローチャートを示す。
【００７６】
ＣＰＵ１０１は、所要のデータ転送情報を、所定の転送情報アドレス領域にライトし、起動要因とする割り込み要因に対応したＤＴＥビットを１にセットしておく。この状態で、当該割り込みが発生して、ＤＴＣ動作が起動される場合、割り込みコントローラ（ＩＮＴ）から、ＤＴＣＲＥＱ、ＤＴＣＶＥＣがＤＴＣ１０２に与えられる。
【００７７】
Ｓ２０１：ＤＴＣ１０２のＤＴＣＣＮＴは、ＤＴＣＶＥＣと、各レジスタファイルのステータスレジスタに保持しているベクタ番号との比較を行う。有効なベクタステータスと一致すると、ＤＴＣに保持した当該レジスタファイルを利用できることとなるので、当該レジスタファイルを使用して、対応するレジスタセットを利用する。
【００７８】
Ｓ２０２：一致しない場合は、与えられたＤＴＣＶＥＣに対応したベクタ領域をリードする（ＶＲ）。ここでリードした内容がデータ転送情報の先頭アドレスである。
【００７９】
Ｓ２０３：ＤＴＣＣＮＴは、上記先頭アドレスからデータ転送情報をリードする（ＩＲ）。リードしたデータ転送情報は、ＤＴＣのレジスタファイルの内の１つに格納する。このとき、ステータスレジスタ（ＳＲ）のＶＬＤ、ＬＲＵフラグを参照して、ＶＬＤ＝０（無効）のレジスタファイル、あるいは、ＬＲＵが最も大きい（古い）レジスタファイルを使用する。データ転送情報を格納すると、ＳＲのＶＬＤフラグを１にセットし、ＰＲＭフラグを０にクリアする。
【００８０】
Ｓ２０４：ＤＴＣＣＮＴは、保持またはリードしたデータ転送情報に従って、ＳＡＲで指定された転送元アドレスをリードする（ＳＲ）。
【００８１】
Ｓ２０５：ＤＴＣＣＮＴは、転送元アドレスからリードしたデータをＤＡＲで指定された転送先アドレスへライトする（ＤＷ）。ＣＲのデクリメントなども行う。このデータ転送は公知の技術で実現できる。
【００８２】
Ｓ２０６：ＤＴＣＣＮＴは、転送情報書き換え判定を行う。すなわち、データ転送情報が更新されていれば、更新されたデータ転送情報を、元のアドレスすなわちＳ２０２で取得した先頭アドレスへライトする（ＩＷ）。ＣＲが０になり、所定回数のデータ転送が終了した場合は、ＤＴＥクリア信号を、ＩＮＴに与える。同時に、ＤＴＣＣＮＴの使用チャネル情報で指定されたチャネルの全ての、ＳＲのＶＬＤフラグをクリアする。
【００８３】
ＤＴＣＣＮＴは、当該レジスタファイルの所定回数のデータ転送が終了していない場合は、割り込み要因クリア信号を、ＩＮＴに与える。
【００８４】
ＤＴＣＣＮＴは、ＶＡＲに、データ転送情報に基づく所定のアドレスを保持させる。例えば、データ転送情報の次のアドレスを保持させる。
【００８５】
Ｓ２０７：チェイン動作が指定されている場合は、ＤＴＣＣＮＴは、当該レジスタファイルのＶＡＲに基づき、次のデータ転送情報をリードする（ＩＲ）。リードしたデータ転送情報は、前記同様に、ＤＴＣのレジスタファイルの内の１つに格納する。以下の動作は上述のとおりである。
【００８６】
図７に、実施の形態１にかかるＤＴＣ１０２のデータ転送動作における状態遷移図を示す。かかる状態遷移は、主として、ＤＴＣ１０２のＤＴＣＣＮＴに実装される。
【００８７】
ＤＴＣ１０２は、ＩＮＴからＤＴＣＩＮＴ、ＤＴＣＲＥＱが与えられて動作を開始する。
【００８８】
ＤＴＣＲＥＱが与えられた場合は、与えられたＤＴＣＶＥＣとＤＴＣ内部のレジスタファイルのＳＲのベクタとを比較する。また、どのレジスタファイルを使用するかを判断する。ＤＴＣＩＮＴが与えられた場合、およびＤＴＣＲＥＱが与えられてベクタが不一致の場合は、ＶＲステートに遷移する。ＤＴＣＲＥＱが与えられてベクタが一致の場合は、直ちにＳＲステートに遷移する。
【００８９】
Ｓ３０１（ＶＲステート）：ＤＴＣＣＮＴは、与えられたＤＴＣＶＥＣをＳＲに反映し、ＤＴＣＶＥＣに従って、ＶＧで生成したベクタアドレスに基づき、ベクタ領域（データ転送情報先頭アドレス配置領域）に格納されたデータ転送情報の先頭アドレスをリードする。リードした内容は、使用するレジスタファイルのＶＡＲに格納する。ＩＲステートに遷移する。
【００９０】
Ｓ３０２（ＩＲステート）：上記先頭アドレスにあるデータ転送情報配置領域に格納されたデータ転送情報をリードする。データ転送情報の内容は、ＭＲ、ＤＲ、ＳＡＲ、ＤＡＲ、ＣＲである。Ｓ３０１へ遷移した要因がＤＴＣＩＮＴによる場合は、ＳＲのＶＬＤ、ＰＲＭフラグを１にセットして、ＩＮＩＴＥビットをクリアして、停止状態に戻る。ＤＴＣＲＥＱによる場合は、ＳＲのＶＬＤフラグを１にセット、ＰＲＭフラグを０にクリアして、ＳＲステートに遷移する。
【００９１】
Ｓ３０３（ＳＲステート）：ＤＴＣＣＮＴは、ＳＡＲの内容に従い、転送元アドレスの内容をリードする。ＭＲの内容に従い、ＳＡＲのインクリメントなどを行う。続いて、ＤＷステートに遷移する。
【００９２】
Ｄ３０４（ＤＷステート）：ＤＴＣＣＮＴは、ＲＡＭ１０５の転送元アドレスからリードしたデータを、ＤＡＲの内容に従い、転送先アドレスへライトする、ＭＲの内容に従い、ＤＡＲのインクリメントなどを行う。また、ＣＲのデクリメントなどを行う。続いて、ＩＷステートに遷移する。
【００９３】
ここで、ブロック転送モードの場合は、ＴＣＲで指定した回数、ＳＲおよびＤＷステートを繰り返す。
【００９４】
Ｓ３０５（ＩＷステート）：ＤＴＣＣＮＴは、ＤＲ、ＳＡＲ、ＤＡＲ、ＣＲの内容の内、更新したものを、前記ＶＡＲの内容に従って、データ転送情報配置領域に書き戻す。
【００９５】
ここで、チェイン転送の場合は、引き続き、ＩＲ、ＳＲ、ＤＷ、ＩＷステートを実行し、ＩＲでリードした別のデータ転送情報に従って、データ転送を行う。
【００９６】
一方、チェイン転送でない場合、ＣＲの内容に従って、起動要因となった割り込み要因フラグ、またはＤＴＥビットをクリアして、停止状態に戻る。
【００９７】
（変形例）
図８に、ＤＴＣ１０２の変形例のブロック図を示す。
【００９８】
ＤＴＣＣＮＴは、ＤＴＣＩＮＩＴ信号を、チャネル１〜３に対応したＤＴＣＩＮＩＴ１〜３として入力する。また、ＤＴＣＲＳＵＳ信号を、チャネル１〜３に対応したＤＴＣＲＳＵＳ１〜３として入力する。
【００９９】
図９に、実施の形態１の変形例におけるＤＴＣ１０２のデータ転送情報初期化レジスタ（ＤＴＣＩＲ１〜３）を示す。
【０１００】
ＤＴＣＩＲは、チャネル１〜３に対応したＤＴＣＩＲ１〜３とし、ＤＴＣＩＲ１〜３に対応して、ＤＴＣＩＮＩＴ１〜３を出力する。また、ビット３０には、ＳＵＳビットを持つ。
【０１０１】
ＤＴＣＩＲ１〜３へのライトによって、ＤＴＣＩＮＩＴ１〜３を与え、ＤＴＣ内部のレジスタファイル１〜３が、データ転送情報を格納するようにする。
【０１０２】
具体的には、保持したデータ転送情報が有効、ＳＲのＶＬＤ、ＰＲＭフラグが１にセットされていれば、ＬＲＵフラグに関わらず、データ転送情報を保持するようにする。さらに、データ転送情報の更新に関わらず、データ転送情報の書き戻しは行わないようにする。
【０１０３】
このため、レジスタファイル１〜３は、データ転送情報リードを行わないから、高速なデータ転送を行うことができる。起動要因となるイベントからデータ転送までの時間を短縮して、いわゆるリアルタイム性を向上することができる。所定回数のデータ転送を実行した後も、前回同様のデータ転送を行う場合は、データ転送情報をＲＯＭに配置することもでき、データ転送情報をＲＡＭに配置する、ＣＰＵのプログラムを省略することができる。
【０１０４】
マイクロコンピュータの使用方法に応じて、起動頻度が高い起動要因をレジスタファイル１〜３に固定することで、全体的な処理を高速化できる。
【０１０５】
また、ＳＵＳビットを１にセットすると、ＤＴＣＲＳＵＳ１〜３信号を与えて、対応するレジスタファイルのＳＲのＶＬＤ、ＰＲＭフラグを０にクリアする。
【０１０６】
レジスタファイル０は、従来技術同様に、割り込みコントローラ（ＩＮＴ）から与えられるＤＴＣＲＥＱ、ＤＴＣＶＥＣに応じて、データ転送情報をリードして動作を行う。さらに、レジスタファイル０のＳＲを使用して、データ転送情報の再利用を行うことができる。
【０１０７】
レジスタファイル１〜３のＳＲのＰＲＭフラグが０にクリアされている場合も、チャネル０同様に動作する。例えば、レジスタファイル１〜３のデータ転送が完了し、再度の初期化待ちになっている場合、この期間にほかの起動要因が有効に利用することができる。ＳＵＳビットを１にセットして、ＶＬＤ、ＰＲＭフラグを０にクリアした場合も同様にできる。
【０１０８】
＜実施の形態２＞
図１０に、実施の形態２におけるＤＴＣ１０２のレジスタファイルおよびデータ転送情報（転送情報セット）を示す。
【０１０９】
実施の形態１に対し、ステータスレジスタ（ＳＲ）の構成が異なる。このＳＲのビット構成は以下の通りである。
【０１１０】
ビット２７〜２は、データ転送情報アドレスである。
【０１１１】
データ転送情報は３２ビット（ロングワード）を単位とし、下位２ビットは００とみなす。
【０１１２】
ビット０は、ＶＬＤフラグであり、当該レジスタファイルが保持するデータ転送情報が有効であることを示す。リセットによって０にクリアされる。当該レジスタファイルにデータ転送情報が格納されると１にセットされる。所定のデータ転送の実行を終了すると０にクリアされる。
【０１１３】
ＣＰＵのアドレス空間が４ＧＢより小さい場合、あるいは、データ転送情報を配置可能なアドレス空間を小さくできる場合、ビット３０〜２８に、ＰＲＭ、ＬＲＵフラグを設けることができる。アドレス空間が大きく、データ転送情報を配置可能なアドレス空間を小さくできない場合、ＰＲＭ、ＬＲＵフラグを設けなくてもよい。
【０１１４】
図１１に、実施の形態２におけるＤＴＣ１０２のデータ転送情報初期化レジスタ（ＤＴＣＩＲ１〜３）を示す。
【０１１５】
ＤＴＣＩＲのビット２７〜２はデータ転送情報先頭アドレス、ビット１はＳＵＳビット、ビット０はＩＮＩＴＥビットである。
【０１１６】
ＣＰＵ１０１がＩＮＩＴＥビットを１にセットすると、ＤＴＣに対し、ＤＴＣＩＮＩＴ、ＤＴＣＶＥＣを与える。この場合のＤＴＣＶＥＣはビット数を拡張しておき、ＤＴＣＩＲのビット２７〜２を与える。ＤＴＣはこれに基づき、データ転送情報のリードを行う。このリードが完了すると、ＩＮＩＴＥビットを０にクリアする。
【０１１７】
図１２に、実施の形態２におけるＤＴＣ１０２の初期化フローチャートを示す。
【０１１８】
ＤＴＣ１０２初期化が起動される場合、割り込みコントローラ（ＩＮＴ１０３）から、前記ＤＴＣＩＲライトに基づく、ＤＴＣＩＮＩＴ、ＤＴＣＶＥＣがＤＴＣ１０２に与えられる。ＤＴＣＶＥＣはデータ転送情報の先頭アドレスを示す。
【０１１９】
Ｓ４０１：ＤＴＣ１０２のＤＴＣＣＮＴは、与えられたＤＴＣＶＥＣ（データ転送情報先頭アドレス）に対応したデータ転送情報をリードする（ＩＲ）。リードしたデータ転送情報は、ＤＴＣのレジスタファイルの内の１つに格納する。このとき、ステータスレジスタ（ＳＲ）のＶＬＤ、ＬＲＵフラグを参照して、ＶＬＤ＝０（無効）のレジスタファイル、あるいは、ＬＲＵが最も大きい（古い）レジスタファイルを使用する。無効のレジスタファイルが複数ある場合は、チャネル番号の小さい順に使用する。
【０１２０】
データ転送情報を格納すると、ＳＲのＶＬＤ、ＰＲＭフラグを１にセットする。また、ＩＮＴに対し、ＩＮＩＴＥクリア信号を与える。
【０１２１】
図１３に、実施の形態２におけるＤＴＣ１０２のデータ転送動作のフローチャートを示す。
【０１２２】
割り込みなどのイベントが発生して、ＤＴＣ１０２動作が起動される場合、割り込みコントローラ（ＩＮＴ）から、ＤＴＣＲＥＱ、ＤＴＣＶＥＣがＤＴＣ１０２に与えられる。
【０１２３】
Ｓ５０１：ＤＴＣＣＮＴは、与えられたＤＴＣＶＥＣに対応したベクタ領域をリードする（ＶＲ）。
【０１２４】
Ｓ５０２：ＤＴＣＣＮＴは、リードしたデータ転送情報先頭アドレスを、各レジスタファイルのステータスレジスタに保持しているデータ転送情報先頭アドレスとの比較を行う。
【０１２５】
有効なデータ転送情報先頭アドレスと一致すると、ＤＴＣに保持した当該レジスタファイルを利用できるので、当該レジスタファイルを使用して、対応するレジスタセットを利用する。Ｓ５０４へ遷移する。
【０１２６】
Ｓ５０３：一致しない場合は、ＤＴＣＣＮＴは、リードしたデータ転送情報先頭アドレスに基づきデータ転送情報をリードする（ＩＲ）。リードしたデータ転送情報は、ＤＴＣのレジスタファイルの内の１つに格納する。このとき、ステータスレジスタ（ＳＲ）のＶＬＤ、ＬＲＵフラグを参照して、ＶＬＤ＝０（無効）のレジスタファイル、あるいは、ＬＲＵが最も大きい（古い）レジスタファイルを使用する。データ転送情報を格納すると、ＳＲのＶＬＤフラグを１にセットし、ＰＲＭフラグを０にクリアする。
【０１２７】
Ｓ５０４：ＤＴＣＣＮＴは、保持またはリードしたデータ転送情報に従って、ＳＡＲで指定された転送元アドレスをリードする（ＳＲ）。
【０１２８】
Ｓ５０５：ＤＴＣＣＮＴは、リードしたデータを、ＤＡＲで指定された転送先アドレスへライトする（ＤＷ）。ＣＲのデクリメントなども行う。このデータ転送は公知の技術で実現できる。
【０１２９】
Ｓ５０６：ＤＴＣＣＮＴは、転送情報書き換え判定を行う。すなわち、データ転送情報が更新されていれば、更新されたデータ転送情報を、データ転送情報先頭アドレスへライトする（ＩＷ）。ＣＲが０になり、所定回数のデータ転送が終了した場合は、ＤＴＥクリア信号を、ＩＮＴに与える。同時に、ＳＲのＶＬＤフラグをクリアする。
当該レジスタファイルの所定回数のデータ転送が終了していない場合は、割り込み要因クリア信号を、ＩＮＴに与える。
【０１３０】
ＤＴＣＣＮＴは、ＶＡＲに、データ転送情報の所定のアドレスを保持させる。例えば、データ転送情報の次のアドレスを保持させる。
【０１３１】
Ｓ５０７：チェイン動作が指定されている場合は、ＤＴＣＣＮＴは、各レジスタファイルのステータスレジスタに保持しているデータ転送情報先頭アドレスとの比較を行う。
【０１３２】
有効なデータ転送情報先頭アドレスと一致すると、ＤＴＣに保持した当該レジスタファイルを利用できるので、当該レジスタファイルを使用して、対応するレジスタセットを利用する。
【０１３３】
一致しない場合は、ＶＡＲが保持する次のデータ転送情報先頭アドレスに基づきデータ転送情報をリードする（ＩＲ）。リードしたデータ転送情報は、前記同様に、ＤＴＣのレジスタファイルの内の１つに格納する。以下の動作は上述のとおりである。
【０１３４】
１つの起動要因で、チェイン転送によって、複数のデータ転送を行う場合、そのいずれもレジスタファイルに保持することができる。複数の起動要因でデータ転送情報を共有する場合も、このデータ転送情報をレジスタファイルに保持することができる。共通に利用可能で利用頻度の高いものを高速化することができる。
【０１３５】
図１４に、実施の形態２におけるＤＴＣ１０２の状態遷移図を示す。
【０１３６】
ＤＴＣＩＮＴが与えられた場合は、ベクタＩＲステートに遷移する。ＤＴＣＲＥＱが与えられた場合は、ＶＲステートに遷移する。ＤＴＣＳＵＳが与えられた場合は、ＩＷステートへ遷移する。
【０１３７】
Ｓ６０１（ＶＲステート）：与えられたＤＴＣＶＥＣに従って、ＶＧで生成したベクタアドレスに基づき、ＤＴＣＣＮＴは、ベクタ領域（データ転送情報先頭アドレス配置領域）に格納されたデータ転送情報の先頭アドレスをリードする。リードしたデータ転送情報先頭アドレスと、ＤＴＣ内部のレジスタファイルのＳＲのデータ転送情報先頭アドレスとを比較する。また、どのレジスタファイルを使用するかを判断する。
【０１３８】
データ転送情報先頭アドレスが不一致の場合は、ＩＲステートに遷移する。一方、データ転送情報先頭アドレスが一致の場合は、直ちにＳＲステートに遷移する。
【０１３９】
Ｓ６０２（ＩＲステート）：ＤＴＣＲＥＱが与えられてここに遷移した場合は、ＤＴＣＶＥＣにデータ転送情報先頭アドレスが与えられので、これに基づき、ＤＴＣＣＮＴは、データ転送情報配置領域に格納されたデータ転送情報をリードする。この内容は、ＭＲ、ＤＲ、ＳＡＲ、ＤＡＲ、ＣＲである。ＳＲのＶＬＤ、ＰＲＭフラグを１にセットして、ＩＮＩＴＥビットをクリアして、停止状態に戻る。
【０１４０】
ＶＲステートからここに遷移した場合は、ＤＴＣＣＮＴは、前記先頭アドレスに従ってデータ転送情報配置領域に格納されたデータ転送情報をリードする。この内容は、ＭＲ、ＤＲ、ＳＡＲ、ＤＡＲ、ＣＲである。ＳＲのＶＬＤフラグを１にセット、ＰＲＭフラグを０にクリアして、ＳＲステートに遷移する。
【０１４１】
Ｓ６０３（ＳＲステート）：ＤＴＣＣＮＴは、ＳＡＲの内容に従い、転送元アドレスの内容をリードする。ＭＲの内容に従い、ＳＡＲのインクリメントなどを行う。続いて、ＤＷステートに遷移する。
【０１４２】
Ｓ６０４（ＤＷステート）：ＤＴＣＣＮＴは、転送元アドレスからリードしたデータを、ＤＡＲの内容に従い、転送先アドレスへライトする、ＭＲの内容に従い、ＤＡＲのインクリメントなどを行う。また、ＣＲのデクリメントなどを行う。
【０１４３】
ＶＬＤ、ＰＲＤフラグがいずれも１にセットされている場合、データ転送情報は、ＤＴＣ内部のレジスタファイルを再利用するので、データ転送情報の書き戻しは行わないので、ＩＷステートへは遷移しない。なお、所定回数のデータ転送が終了し、ＣＲが０になった場合は、ＩＷステートへは遷移するようにしてもよい。
【０１４４】
Ｓ６０５（ＩＷステート）：ＤＷステートからここに遷移した場合、ＤＴＣＣＮＴは、ＭＲ、ＤＲ、ＳＡＲ、ＤＡＲ、ＣＲの内容の内、更新したものを、前記ＶＡＲの内容に従って、データ転送情報配置領域に書き戻す。
【０１４５】
チェイン転送の場合は、前記ＶＡＲが示す次のデータ転送情報先頭アドレスと、ＤＴＣ内部のレジスタファイルのＳＲのデータ転送情報先頭アドレスとを比較する。前記同様に、ＩＲステートまたはＳＲステートに遷移する。
【０１４６】
チェイン転送でない場合、ＣＲの内容に従って、起動要因となった割り込み要因フラグ、またはＤＴＥビットをクリアして、停止状態に戻る。所定回数のデータ転送が終了し、ＤＴＥビットをクリアするときは、ＳＲのＶＬＤ、ＰＲＭフラグも０にクリアする。
【０１４７】
ＤＴＣＳＵＳが与えられてここに遷移した場合、ＤＴＣＣＮＴは、ＳＲのＶＬＤ、ＰＲＭフラグを０にクリアして、ＭＲ、ＤＲ、ＳＡＲ、ＤＡＲ、ＣＲを、前記ＶＡＲの内容に従って、データ転送情報配置領域に書き戻す。
【０１４８】
（変形例）
図１５に、実施の形態２におけるＤＴＣ１０２の変形例のブロック図を示す。
【０１４９】
変形例では、バスインタフェース（ＳＢＩＦ）を設け、ＭＣＵ内部スレーブバスとのインタフェースを行う。ＳＢＩＦに、ＤＴＣ内部のレジスタファイルのＳＲを出力し、ＭＣＵ内部スレーブバスを介して、ＣＰＵ１０１によるリードを可能にする。
【０１５０】
ＣＰＵ１０１は、ＳＲをリードすることで、ＤＴＣ１０２内部のレジスタファイルの状態を知ることができる。また、ＭＣＵ内部スレーブバスを持つことで、エミュレーションなどのほかの機能によっても利用することができる。
【０１５１】
本実施の形態では、データ転送情報は３２ビット×４本（固定）として説明を行った。データ転送のモード、転送元アドレス、転送先アドレス、転送回数を指定することは一般的であるためである。
【０１５２】
一方、データ転送情報が可変長の場合も考えられる。例えば、データレジスタを伴うデータ転送情報（３２ビット×５本）の形式、あるいは、回数に制限をなくし、ＣＲを無効としたデータ転送情報（３２ビット×３本）の形式をも有することも考えられる。
【０１５３】
このようなデータ転送情報が可変長場合、データ転送情報が、レジスタファイルに備えるレジスタより少なければ対応可能である。従って、最大のデータ転送情報に合わせたレジスタファイルを設けるようにすればよい。
【０１５４】
あるいは、高速化が必要なデータ転送が、最大のデータ転送情報とは限らないから、チャネル０のみ、最大のデータ転送情報に合わせたレジスタファイルとし、チャネル１〜３は使用頻度が高く、より小さいデータ転送情報に対応するようにしてもよい。
【０１５５】
＜実施の形態３＞
図１６に、実施の形態３のＤＴＣ１０２のレジスタファイルおよびデータ転送情報（転送情報セット）を示す。
【０１５６】
本実施の形態においては、モードレジスタ（ＭＲ）のビット３１、ビット３０は、ＡＵＴＥ、ＡＵＴＳビットを設ける。
【０１５７】
ＡＵＴＥビットを１にセットした場合、ＤＴＣＣＮＴは、ＣＲで指定された回数のデータ転送を連続して実行する。ＡＵＴＳビットは、この連続実行の途中でＣＰＵにバス権を移譲するかを指定する。
【０１５８】
図１７に、実施の形態３のＤＴＣ１０２の状態遷移図を示す。
【０１５９】
ＤＴＣＩＮＴが与えられた場合は、ベクタＩＲステートに遷移する。
【０１６０】
Ｓ７０２（ＩＲステート）：ＤＴＣＩＮＴが与えられてここに遷移した場合は、ＤＣＴＣＮＴは、データ転送情報配置領域に格納されたデータ転送情報をリードする。リードしたＭＲのＡＵＴＥビットが０にクリアされている場合は、停止状態に戻る。ＡＵＴＥビットが１にセットされている場合には、引き続きＳＲ、ＤＷステートに遷移する。
【０１６１】
Ｓ７０３乃至Ｓ７０４（ＳＲステート、ＤＷステート）：ＤＣＴＣＮＴは、ＣＲで指定された回数のデータ転送を連続して実行する。このとき、ＡＵＴＳビットが１にセットされている場合は、一旦、ＩＤＬＥステート（Ｓ７０５）を経るようにする。ＩＤＬＥステートでは、一旦バス権を解放する。所定回数のデータ転送が終了し、ＣＲが０になった場合は、ＩＷステートへ遷移する。
【０１６２】
Ｓ７０６（ＩＷステート）：ＤＣＴＣＮＴは、ＡＵＴＥビットが１にセットされている場合は、データ転送情報の書き戻しは行わない。
【０１６３】
チェイン動作の場合は、前記同様に、ＩＲステートまたはＳＲステートに遷移する。
【０１６４】
なお、ＩＤＬＥステートに留まる時間を、ＭＲの別のビットなどによって、可変にすることもできる。
【０１６５】
ＡＵＴＥビットを１にセットしたデータ転送は、マイクロコンピュータの初期設定に好適である。ＲＯＭ上のデータ転送情報を直接使用し、ＲＯＭ上に用意した初期値を、マイクロコンピュータの所定のアドレスに設定することできる。チェイン転送を利用することで、飛び飛びのアドレスに対しても初期設定を行うことができる。
【０１６６】
（変形例）
図１８に、実施の形態３の変形例にかかるＤＴＣ１０２のブロック図を示す。
【０１６７】
変形例においては、レジスタファイルを１チャネルとする。前記の初期設定に対するＤＴＣの利用にあたっては、１チャネルでも問題ない。
【０１６８】
また、ＡＵＴＥビットはデータ転送情報に持つのではなく、ＤＴＣＩＮＩＴとともに与えられるようにする。
【０１６９】
モード信号を入力し、マイクロコンピュータの動作モードなどによって、リセット解除時にＤＴＣを起動することを選択可能にする。モード信号は、マイクロコンピュータのモード入力などによって決定するようにする。
【０１７０】
図１９に、実施の形態３の変形例にかかるＤＴＣ１０２のデータ転送情報初期化レジスタ（ＤＴＣＩＲ）を示す。
【０１７１】
レジスタファイルが１チャネルであることに対して、ＤＴＣＩＲも１本とする。また、ビット１をＡＵＴＥとする。前記の初期設定に対するＤＴＣの利用にあたっては、ＡＵＴＥ、ＩＮＩＴＥビットをいずれも１にセットする。
【０１７２】
ＤＴＣ１０２は、データ転送情報をリード（ＩＲステート）後、連続してデータ転送を行う（ＳＲ、ＤＷステート）。必要に応じて、データ転送情報配置領域に書き戻し（ＩＷステート）、チェイン動作を行う。
【０１７３】
チェイン動作も含めて、所定のデータ転送を終了すると、ＡＵＴＥ、ＩＮＩＴＥビットを０にクリアする。
【０１７４】
＜実施の形態４＞
ＭＣＵ１００の初期設定のためにＤＴＣ１０２を利用することが可能である。この場合、リセットに対応したベクタを用意し、リセット後にＤＴＣ１０２を起動するようにするとよい。これは、ＤＴＣ１０２の状態遷移において、リセットで停止状態（ＳＴＯＰステート）に遷移し、リセット解除によって、前記モード信号によって、ＤＴＣ１０２の起動が許可されている場合に、ＶＲステートに遷移するようにすればよい。
【０１７５】
ＣＰＵ１０１によるＤＴＣＩＲの設定も不要にすることができる。
【０１７６】
図２０に、ＤＴＣ１０２によるＭＣＵ１００の初期設定の動作説明図を示す。
【０１７７】
リセットが解除されて、ＤＴＣ１０２が起動されると、ＤＣＴ１０２は、ＲＯＭ１０４上のリセットに対応するベクタ領域から、データ転送情報先頭アドレスをリードする（ＶＲステート）。
【０１７８】
ＤＴＣ１０２は、このアドレスに基づいて、ＲＯＭ１０４上のデータ転送情報配置領域からデータ転送情報（転送情報１）をリードする（ＩＲステート）。このデータ転送情報のＭＲは、ＡＵＴＥ、ＮＸＴＥ１ビットを１にセットしておく。
【０１７９】
ＤＴＣ１０２は、ＳＡＲで指定した、ＲＯＭ１０４上の初期値データ格納領域から初期値データをリードし（ＳＲステート）、ＤＡＲで指定した、データ領域であるＲＡＭ１０５または所定の機能ブロック上の初期化対象領域にライトする（ＤＲステート）。ＣＲで指定された回数を連続して実行する。ＡＵＴＥビットが１にセットされている場合は、データ転送情報の書き戻しは行わない。
【０１８０】
ＮＸＴＥ１ビットが１にセットされているので、ＤＴＣ１０２は、チェイン動作として、ＲＯＭ上のデータ転送情報配置領域からデータ転送情報（転送情報２）をリードし、前記動作を繰り返す。
【０１８１】
図２０では２つの初期値データ転送を示しているが、初期化対象領域の数に応じて、チェイン動作を繰り返すことができる。最後のデータ転送情報のＭＲは、ＮＸＴＥ１ビットを０にクリアしておく。
【０１８２】
ＤＴＣ１０２は、ＡＵＴＳビットを１にセットし、途中でＣＰＵ１０１にバス権を移譲することで、ＣＰＵ１０１による処理を並行して実施することができる。
【０１８３】
この初期設定は、使用者が使用するほか、製造者が個別の半導体集積回路としてのＭＣＵ１００の設定を行うことに利用することもできる。
【０１８４】
＜実施の形態５＞
本発明をカメラに適用した場合のシステムのブロック図を図２１に示す。
【０１８５】
本発明を適用したマイクロコンピュータは、カメラレンズＭＣＵである。焦点、絞り、防振の制御を行うものとし、それぞれに独立したタイマＦ、タイマＤ、タイマＳを使用するものとする。また、オートフォーカスの許可や、防振の許可などのスイッチを、入出力ポート（Ｉ／Ｏ）で入力する。
【０１８６】
カメラボディＭＣＵから、シリアルコミュニケーションインタフェース（ＳＣＩ）などの１回線の通信手段を介して、コマンドとそれに伴うデータを受信する。この受信完了割り込みでＤＴＣを起動する。
【０１８７】
ＳＣＩによる受信完了割り込みによって、ＤＴＣを起動し、ＤＴＣは受信データであるコマンドを、受信データレジスタから所定のＲＡＭなどに転送し、ＣＰＵに割り込みを要求する。ＣＰＵはコマンドを解析し、コマンドが焦点、絞り、防振の制御コマンドであれば、そのコマンドに基づき、ＤＴＣを設定し、後続するデータを、焦点、絞り、防振のタイマＦ、タイマＤ、タイマＳへ転送する。
【０１８８】
入力したコマンドが、例えばステータス要求コマンドで、レンズの所定の状態、例えば、手振れ補正の許可スイッチの状態の返信を求めている場合、カメラレンズＭＣＵの所定の機能ブロック、例えば、入出力ポート（Ｉ／Ｏ）の内容を、ＳＣＩの送信データレジスタに転送して、送信を行う。
【０１８９】
多くの動作は、ＳＣＩによる受信完了割り込みに基づいてなされるから、受信完了割り込みによるＤＴＣのベクタないしデータ転送情報先頭アドレスを、ＤＴＣのレジスタファイルチャネル１に設定するようにすれば、高速化を実現できる。そのほか、チャネル２、３に対しても、使用する頻度の高い起動要因ないしデータ転送を設定するようにすればよい。
【０１９０】
ＤＴＣの上記の処理中に、ＣＰＵはスリープないしスタンバイモードなどの低消費電力状態とすることもでき、システムの低消費電力化に寄与できる。ＤＴＣはＣＰＵより論理規模が小さく、かつ高速に処理を行うことができるので、低消費電力化の効果を高めることができる。バッテリで駆動されるカメラシステムなどにおいては、低消費電力化が重要であることは言うまでもない。
【０１９１】
＜割り込みコントローラ（ＩＮＴ１０３）＞
最後に、割り込みコントローラ（ＩＮＴ１０３）の構成について、図２２を用いて説明する。
【０１９２】
ＭＣＵ１００の割り込み要因には、内部割り込み、外部割り込みの２種類があり、それぞれ割り込み要因フラグを有する。割り込みの要因フラグは、タイマ、通信、アナログの機能ブロックが所定の状態になったときに１にセットされる。
【０１９３】
外部割り込みの要因フラグは、外部割り込み入力端子が所定のレベルになったとき、または所定の信号変化が発生したときに１にセットされる。割り込み要因フラグは、ＣＰＵのライト動作によって０にクリアされるほか、ＤＴＣ１０２による転送が終了したときに０にクリアされる。
【０１９４】
割り込み要因フラグの各ビットの出力は、割り込み許可回路に入力され、この割り込み許可回路には、さらに割り込み許可レジスタの内容、すなわち割り込み許可ビットが入力される。この割り込み許可レジスタは、ＣＰＵ１００からリード／ライト可能なレジスタで、対応する割り込みを許可するか、禁止するかを選択する。割り込み要因フラグが１にセットされ、割り込み許可ビットが１にセットされていると割り込みが要求される。
割り込み許可回路の出力は、割り込み／ＤＴＣ判定回路に入力される。この割り込み許可回路には、さらにＤＴＣ許可レジスタ（ＤＴＥＲ）の内容が入力され、前記の通り、ＤＴＣ許可レジスタは、割り込みが要求されたとき、ＤＴＣ１０２を起動するか、ＣＰＵ１０１に割り込みを許可するかを選択する。ＤＴＣ許可レジスタの当該割り込み要因に対応したビットが１にセットされていると、ＤＴＣ１０２の起動が要求され、ＣＰＵ１０１の割り込みは要求されない。ＤＴＣ許可レジスタのビットが０にクリアされていると、ＣＰＵ１０１の割り込みが要求され、ＤＴＣ１０２の起動は要求されない。
【０１９５】
ＤＴＣ許可回路の出力は、ＣＰＵ割り込み要求とＤＴＣ起動要求が独立に優先順位判定回路に入力される。ＣＰＵ１０１の優先順位判定・マスクレベル判定回路には、プライオリティレジスタ、割り込みマスクレベルなどに従って制御される。
【０１９６】
ＣＰＵ割り込み要求、ＤＴＣ起動要求のそれぞれについて、複数の割り込み要求が発生している場合に、優先順位を判定する。この判定の結果、優先順位の最高のものが選択され、ベクタ番号が生成され、ＣＰＵ割り込み要求とベクタ番号、ＤＴＣ起動要求（ＤＴＣＲＥＱ）とベクタ番号（ＤＴＣＶＥＣ）が出力される。
【０１９７】
ＤＴＣ起動要求はＤＴＣ１０２に入力され、またＤＴＣベクタ番号はセレクタ／ラッチ回路に入力される。ＤＴＣ動作開始信号およびＤＴＣ動作終了信号がＤＴＣ１０２から出力され、ラッチ回路に入力される。すなわち、ＤＴＣ１０２が動作を開始すると、ＤＴＣ動作信号が活性状態になり、ベクタのラッチないし保持が行われる。そして、ＤＴＣ１０２のデータ転送が終了してＤＴＣ動作終了信号が活性状態になり、ラッチは解除される。
【０１９８】
また、ＤＴＣベクタ番号とＤＴＣ動作終了信号はデコーダ回路に入力され、対応する割り込み要因フラグに対して要因クリア信号が活性状態になって、要因フラグまたはＤＴＥビットがクリアされる。
【０１９９】
所要の割り込み要因でＤＴＣ１０２を起動する場合、ＣＰＵ１０１は予め、データ転送情報などを所要のアドレスにライトするとともに、当該割り込みの割り込み許可ビットと、ＤＴＣ許可レジスタの当該割り込み要因に対応したＤＴＥビットを１にセットしておく。
【０２００】
この状態で当該割り込み要因フラグが１にセットされると、ＤＴＣ１０２が起動される。ＤＴＣ１０２が所定のデータ転送などの動作を実行している状態では、ＤＴＣ１０２はデータ転送毎に当該割り込み要因フラグを０にクリアする。このとき、ＣＰＵ１０１に割り込みは要求されない。
【０２０１】
所定のデータ転送などを終了した場合、ＤＴＣ１０２は動作終了時に当該ＤＴＥビットを０にクリアする。このとき、当該割り込み要因フラグは１に保持され、当該ＤＴＥビットが０にクリアされているので、ＣＰＵ１０１に割り込みが要求される。ＣＰＵ１０１は、所定のデータ転送の終了などに対応した処理を実行するとともに、データ転送情報やＤＴＥビットの再設定を行う。これらは公知の技術によって実現される。
【０２０２】
ＤＴＣＩＲは、そのビットに従って、ＤＴＣに対し、ＤＴＣＩＮＩＴ、ＤＴＣＳＵＳを出力する。また、ベクタ番号またはデータ転送情報先頭アドレスをセレクタ／ラッチ回路を経由して、ＤＴＣに出力する。セレクタ／ラッチ回路は、ＤＴＣＲＥＱとＤＴＣＩＮＩＴが同時に要求された場合は、ＤＴＣ起動要求に基づく、ベクタを優先する。ＤＴＣからのＩＮＩＴＥクリア信号によって、当該ＩＮＩＴＥビットをクリアする。
【０２０３】
前記の実施例・変形例のＤＴＣとのインタフェースに応じて、信号の有無や幅などの必要な変更を加える。第１の実施例においては、ＤＴＣＩＮＩＴ信号は１本とし、ＤＴＣＳＵＳ信号は削除する。第３の実施例の変形例においては、ＤＴＣＳＵＳ信号の代わりにＡＵＴＥ信号を出力し、ＩＮＩＴＥクリア信号とともにＡＵＴＥクリア信号を入力するようにする。
【０２０４】
なお、ＤＴＥＲ、ＤＴＣＩＲ、割り込み要因フラグ、割り込み許可の各レジスタは、ＭＣＵ内部スレーブバスに接続されているが、図示は省略する。
【０２０５】
＜実施の形態１乃至５の作用効果＞
以上の実施例によれば、以下の作用効果を得ることができる。
（１）汎用的な記憶装置（ＲＡＭ）に、データ転送情報を格納するデータ転送装置の利点、例えば、割り込み要因を利用して、多くの割り込みないしイベント発生に対して、データ転送を実現可能といった利点を享受できる。すなわち柔軟性および効率性を得られる。加えて、データ転送装置内部にデータ転送情報を格納するレジスタファイルを複数セット保持し、前記レジスタファイルに存在するデータ転送情報を利用して、データ転送情報の記憶装置からの読み出しを不要としたことで、データ転送の高速化、ひいてはマイクロコンピュータの高速化を実現する場合を増やすことができる。既存のデータ転送情報を記憶装置から読み出して格納するレジスタファイルを１セットもつデータ転送装置を制御するソフトウェア資産が存在する場合、これを容易に活用しつつ、高速化を図ることができる。
（２）前記レジスタファイルに格納したデータ転送情報を指定する情報をベクタとすることで、データ転送情報の読み出しに加えて、ベクタの読み出しを不要にすることができる。
（３）前記レジスタファイルに格納したデータ転送情報を指定する情報をデータ転送情報先頭アドレスとすることで、複数の起動要因すなわち異なるベクタで、データ転送情報を共通に利用する場合にも、データ転送情報の読み出しを不要にすることができる。
（４）前記レジスタファイルの一部にデータ転送情報の保持する指定を可能にして、起動要求の発生頻度の高いデータ転送情報をレジスタファイルに保持することによって、データ転送情報の記憶装置からの読み出しを不要として、高速化を実現することを確実にできる。前記レジスタ転送情報を保持したレジスタファイルにあっては、データ転送の実行において、データ転送情報に更新があっても、記憶装置への書き戻しも不要にできる。すなわち、高速化が可能である。所定回数のデータ転送を実行した後も、前回同様のデータ転送を行う場合は、データ転送情報をＲＯＭに配置することもでき、データ転送情報をＲＡＭに配置する、ＣＰＵのプログラムを省略することができる。すなわち、効率化が可能である。
いわゆるＤＭＡコントローラのように、データ転送情報をデータ転送装置自身の専用のハードウェアとして持つ方式と同等にでき、かつ、多くの割り込みないしイベント発生に対応したデータ転送と仕様や論理を共通にすることができ、利便性の向上を実現し、論理的規模の増加も抑止できる。前記の通り、データ転送情報をＲＯＭに配置することもでき、いわゆるＤＭＡコントローラへのデータ転送情報の設定を行う、ＣＰＵのプログラムを省略することができる。すなわち、効率化が可能である。
（５）前記レジスタファイルへのデータ転送情報の読み出しを指示するための、制御レジスタ（ＤＴＣＩＲ）を設け、前記制御レジスタの設定によって、データ転送装置を起動して、データ転送情報のレジスタファイルへの読み出しを行うことを可能にし、これをマイクロコンピュータの初期設定時などに行うことによって、レジスタファイルの一部のデータ転送情報を保持する指定と併用することで、起動要求が発生したときに、常にデータ転送情報の記憶装置からの読み出しを不要として、高速化とリアルタイム性を向上することができる。
（６）前記レジスタファイルに格納したデータ転送情報が有効であることを示す情報（ＶＬＤ）を設け、さらに、ＤＴＣが起動されてから、割り込み要因フラグまたはＤＴＥビットをクリアして、停止するまでに使用したレジスタファイルのチャネルを保持して、所定回数のデータ転送が終了し、ＣＲが０になったとき、ＤＴＣＣＮＴの使用チャネル情報で指定されたチャネルの全ての、ＳＲのＶＬＤフラグをクリアすることで、不要なデータ転送情報を保持せず、レジスタファイルを有効に利用することができる。すなわち、高速化が可能である。
（７）前記データ転送情報に連続データ転送を指定する情報（ＡＵＴＥ）を設け、前記制御レジスタ（ＤＴＣＩＲ）の設定によって、データ転送装置を起動して、データ転送情報のレジスタファイルへの読み出しを行い、前記連続データ転送を指定する情報がセットされている場合には、直ちにデータ転送を行うようにすることによって、ＲＯＭ上のデータ転送情報を直接使用して、ＲＯＭ上に用意した初期値を、マイクロコンピュータの所定のアドレスに設定することできる。チェイン転送を利用することで、飛び飛びのアドレスに対しても設定を行うことができる。すなわち、利便性を享受できる。ＲＯＭ上に、必要なデータ転送情報と必要な初期値を用意しておくことで、ＣＰＵは前記制御レジスタを設定するだけで、マイクロコンピュータの初期設定を行うことができる。初期設定のためのＣＰＵのプログラムを最小限にし、ＲＯＭの使用効率も向上することができる。
（８）いわゆるＤＭＡコントローラなどのデータ転送装置と、データ転送情報を記憶装置から読み出して格納するレジスタファイルを１セットもつデータ転送装置を一体に構成することも可能である。この場合、いわゆるＤＭＡコントローラは、ＣＰＵなどからデータ転送情報を初期設定されなければ動作できない。また、２種類のデータ転送装置を一体にしても、データ転送情報の形式が異なってしまうことが考えられる。これを制御するＣＰＵのプログラムなども２種類を必要とすることになる。システム上の変更などで、どちらの形式を使用するかを変更することが容易ではない。本発明によれば、１種類のデータ転送情報を用意すればよく、レジスタファイルにデータ転送情報の保持する指定をどのデータ転送にするかを容易に変更できる。例えば、この指定を変更しながら、システムの性能を評価することもできる。
（９）ＤＴＣがＣＰＵに代わって、データ転送を実行可能にすることで、ＣＰＵに割り込みを要求する頻度を低減したり、ＣＰＵを低消費電力状態にする期間を長くしたりすることができる。ＣＰＵが割り込み処理にあたって実行すべき、例外処理、スタックの退避・復帰操作、復帰命令の実行を不要とすることができ、プログラムの簡略化やシステムの効率化に寄与することができる。また、イベントの発生から所要の動作の実行までの時間を短縮し、いわゆる応答性を向上することができる。ＣＰＵより論理規模が小さく、かつ高速に処理を行うことができるＤＴＣが動作し、ＣＰＵを低消費電力状態にすることで、低消費電力化を実現することができる。本発明によって、ＤＴＣが実行可能な処理を増やすことができ、上記の利点をより大きく享受することができる。
＜実施の形態１乃至５の変形＞
【０２０６】
なお、本発明は上述の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。
【０２０７】
例えば、アドレスレジスタのビット数は３２ビットに限定されるものではなく、ＣＰＵまたはマイクロコンピュータのアドレス空間に応じて変更でき、たとえば１６Ｍバイトのアドレス空間であれば２４ビットとすればよい。データ転送のモード、転送元アドレス、転送先アドレス、転送回数をそれぞれ３２ビットとし、データ転送情報を３２ビット×４本としたが、３２ビット×３本とすることも可能である。
【０２０８】
ＤＴＣ、割り込みコントローラの構成は適宜変更可能である。例えば、ＤＴＣ内部のレジスタファイルは４チャネルに限らず、任意に変更できる。ＤＴＣＩＲの数も変更可能である。
【０２０９】
また、ＣＰＵのプログラムは、ＲＯＭに配置するほか、外部メモリとすることができる。同様に、ＣＰＵの作業領域であるメモリはＲＡＭに限らず、外部メモリとすることができ、またＲＯＭまたはＲＡＭは内蔵しなくてもよい。
【０２１０】
ＤＴＣのレジスタファイルについても、ＲＡＭに配置するほか、ＲＯＭあるいは外部メモリとすることができる。ＤＴＣのレジスタファイルに保持し、データ転送情報の書き換えを行わないものは、ＲＯＭに配置し、ほかのものはＲＡＭに配置してもよい。
【０２１１】
ＤＴＣのほかに、いわゆるＤＭＡコントローラなどのデータ転送装置を設けることもできる。ＤＴＣとＤＭＡコントローラの機能を１つの機能モジュールとすることもできる。２種類のデータ転送情報の形式に、それぞれソフトウェア資産がある場合に、これらを容易に活用できる。
【０２１２】
ＤＴＣ、割り込みコントローラの具体的な構成についても種々変更可能である。
【０２１３】
ＢＳＣや、バス権やウェイトなどのバス動作の詳細については省略したが、これらは適宜実装可能である。
【０２１４】
マイクロコンピュータの構成についても限定されない。そのほかや機能ブロックなども種々変更できる。
【０２１５】
＜実施の形態６＞
実施の形態６では、データ転送装置の機器制御用途での利便性をさらに高めることを検討する。
【０２１６】
機器制御用途では、バイト（８ビット）、ワード（１６ビット）、ロングワード（３２ビット）などのデータを扱うほかに、ビット単位で意味を持つものが多い。例えば、マイクロコンピュータの入出力端子は、スイッチのオン／オフの制御（出力端子）または状態（入力端子）など、１本ずつ別の用途に使用することが多く、所定のレジスタのビットとして表現される。この複数のビットの組み合せで、別のビットを制御することもある。例えば、スイッチＡ、Ｂ、Ｃの状態によって、スイッチＤを制御することが考えられる。
このような場合、同一のアドレスに配置されたほかのビットに影響を与えず処理する必要がある。このため、単純なリード／ライトでは扱えない場合がある。例えば、以下の例があげられる。
【０２１７】
（ａ）割り込み要因フラグなどは、１の状態をリード後に０をライトすることが求められることがある。ハードウェアによって１にセットされるフラグを、１の状態をリード後、０をライトすることでクリアする方式においては、当該フラグを、例えば、バイト単位のアドレスに配置し、同一のアドレスに別の制御ビットやフラグが存在する場合があっても、当該アドレスをリードし、所要のフラグを０にクリアして、ほかのビットは保持したデータでライトを行うことによって、ほかのビットに影響を与えることなく、当該フラグを０にクリアすることができる。同一アドレスに別のフラグが存在して、前記リードの前後に１にセットされることがあっても、不所望に０にクリアしてしまうことがない。（図４８）
（ｂ）割り込み要因フラグなどに対して、１をライトすることで０にクリアすることも行われている。同一のアドレスに複数のフラグが存在する場合、クリアしたいビットのみ１にセットし、そのほかのビットは０にクリアしたデータでライトを行うことによって、ほかのビットに影響を与えることなく、当該フラグを０にクリアすることができる。（図４８）
（ｃ）所要のレジスタにライトを行う場合に、所定のキーワードを付加することが求められることがある。上位バイトにキーワードを、下位バイトにライトデータを組み合わせた、ワード単位（２バイト）のライトによってのみ、対象レジスタの書き換えを行う方式によって、不所望の書き換えの可能性を低くすることができる。
【０２１８】
上記のようなライトの手順のほか、ライトを禁止する期間が存在する場合もある。
【０２１９】
マイクロコンピュータに内蔵される機能は増えていて、応用システムに固有の機能が必要になる場合がある、１つのマイクロコンピュータの中で、ビット操作の方法を統一することも、必ずしも容易ではない。
【０２２０】
一方、機器制御用途のマイクロコンピュータには、あるイベントの発生から、それに対応した処理を所定の時間内に実行するといった、リアルタイム性が求められており、このような用途に、その高速性を活かして、データ転送装置を用いることが想定されてきた。
【０２２１】
また、マイクロコンピュータに内蔵される機能は増えていて、応用システムに固有の機能が必要になる場合がある。専用のインタフェースを全ての機能ブロックに備えること、有意味の組み合わせを想定し、相互のインタフェースを実装することは容易ではない。
【０２２２】
同様に、Ａ／Ｄ変換などの内部機能ブロックの動作開始を要求する外部入力信号を持つ場合がある。この外部入力信号は、マイクロコンピュータのほかの機能、例えばタイマの出力と、端子を兼用する場合がある。端子を兼用する場合、利用者は１つの機能を選択しなければならず、前記の外部入力信号を利用できない場合も生じる。
【０２２３】
かかる知見に鑑み、発明者は、データ転送装置において、複数のビットの組み合わせで、制御を行うことの必要性を見出した。
【０２２４】
そこで、実施の形態６では、利用者が利用できる方法を広げ、使用するビット位置と、処理の内容と、処理のステップを指定可能にするマイクロコンピュータを提案する。また、データ転送に必要な情報（データ転送情報）を記憶装置に格納する１つのデータ転送装置において、データ転送毎に、データ転送情報の容量を可変にするマイクロコンピュータを提案する。
【０２２５】
図２３に、実施の形態６にかかるＭＣＵ１００のブロック図を示す。
【０２２６】
ＭＣＵ１００は、ＣＰＵ１０１、ＤＴＣ１０２、ＩＮＴ１０３、ＲＯＭ１０４、ＲＡＭ１０５、ＢＳＣ１０６、クロック発振器（ＣＰＧ）１１１、タイマ機能およびシリアルコミュニケーションインタフェースなどの通信機能を含むデジタルモジュール１１２、Ａ／Ｄ変換器およびＤ／Ａ変換器、電源電圧検出機能などのアナログモジュール１０９、入出力ポート（Ｉ／Ｏ）１１０などの機能ブロックないしはモジュールから構成される。
【０２２７】
動作の主体となるのはＣＰＵ１０１であり、主にＲＯＭ１０４から命令を読込んで動作する。ＤＴＣ１０２は、ＣＰＵ１０１の設定に基づき、ＣＰＵ１０１に代ってデータ転送を行う。
【０２２８】
ＩＮＴ１０３は、デジタルモジュール１１２、アナログモジュール１０９などからの割み込み要求、およびマイコン外部からの複数の外部割り込み要求信号に基づく、Ｉ／Ｏ１１０からの割り込み要求を受けて、ＣＰＵ１０１、ＤＴＣ１０２のいずれかに割り込みないしデータ転送要求を出力する。割り込み信号による処理を開始したときあるいは終了したときに、割り込みをクリアする信号である割込みクリア信号を、デジタルモジュール１１２、アナログモジュール１０９、Ｉ／Ｏ１１０のそれぞれの割込み信号ないし割り込み要因フラグに対応して出力する。
【０２２９】
アナログモジュール１０９には、電源電圧検出機能を含み、これは、ＭＣＵ１００の電源電圧供給端子に供給される電圧の検出機能を有し、所定の電圧以下になったことを検出して、電圧監視割り込みを要求する。
【０２３０】
Ｉ／Ｏ１１０には、各端子に入力信号の変化を検出して割り込みを要求する外部割り込み（ＩＲＱ）機能を有する。
【０２３１】
ＢＳＣ１０６は、ＣＰＵ１０１およびＤＴＣ１０２と、バスリクエスト、バスアクノレジ、バスコマンド、ウェイト、アドレス、データなどのインタフェースを行い、ＭＣＵ内部バスに接続された、ＲＡＭ１０５やそのほかの機能ブロックないしはモジュールに対するリード／ライトを実現する。具体的には、ＣＰＵ１０１およびＤＴＣ１０２からのバスリクエスト信号を受けて、ＭＣＵ内部バスの占有に対する調停をして、バス使用許可信号を出力する。ＭＣＵ内部バスは、ＣＰＵ１０１またはＤＴＣ１０２のいずれかが排他的に使用する。少なくとも、ＭＣＵ１００に内蔵される各機能ブロックは、同時に、ＣＰＵ１０１またはＤＴＣ１０２から複数のバスアクセスを受けることはない。
【０２３２】
ＣＰＧ１１１は、外部クロックによるメインクロック発振器（ＭＯＣＯ）および低速内蔵発振器（ＬＯＣＯ）を持つ。ＭＯＣＯは分周・逓倍を行うことができる。ＭＣＵの動作クロックは、図示されないクロック選択レジスタ（ＣＫＳＲ）によって選択され、通常は、ＭＯＣＯによる、例えば１００ＭＨｚなどの高速なクロックで動作する。ＬＯＣＯのクロックは、例えば１２５ｋＨｚなどである。
【０２３３】
図２４に、本実施の形態におけるＤＴＣ１０２のブロック図を示す。
【０２３４】
ＤＴＣ１０２はデータ転送制御ブロック（ＤＴＣＣＮＴ）、バスインタフェース（ＢＩＦ）、ベクタ生成ブロック（ＶＧ）、ベクタアドレスレジスタ（ＶＡＲ）、モードレジスタ（ＭＲ）、ソースアドレスレジスタ（ＳＡＲ／ＤＲ）、デスティネーションアドレスレジスタ（ＤＡＲ／ＡＲ）、データ転送カウンタ（ＣＲ）、ビットアキュムレータ（ＡＣＭ）、演算器（ＡＬＵ）を含む。
【０２３５】
ＭＲ、ＳＡＲ／ＤＲ、ＤＡＲ／ＡＲ、ＣＲはデータ転送情報を格納するレジスタセットである。
【０２３６】
ＤＴＣＣＮＴは、ＩＮＴからの転送要求（ＤＴＣＲＥＱ、ＤＴＣＶＥＣ）およびＭＲの内容に基づき、ＤＴＣ内部の動作制御を行う。また、ＩＮＴに対し、制御信号を出力する。
【０２３７】
ＢＩＦは、ＤＴＣ内部バスと、マイクロコンピュータの内部バスとのインタフェースを行う。このインタフェースには、バスリクエスト、バスアクノレジ、バスコマンド、ウェイト、アドレス、データなどを含む。
【０２３８】
ＶＧは、ＩＮＴから与えられる割込みベクタ番号ＤＴＣＶＥＣに従って、ベクタアドレスを生成する。例えば、ＤＴＣＶＥＣを４倍などとし、所定のオフセットを加算する。
【０２３９】
ＶＡＲは、前記ベクタアドレスからリードしたデータ転送情報の先頭アドレスを格納する。
【０２４０】
ＭＲ、ＳＡＲ／ＤＲ、ＤＡＲ／ＡＲ、ＣＲは、前記データ転送情報先頭アドレスから順次リードしたデータ転送情報を格納する。
【０２４１】
ＡＬＵは、算術演算、論理演算、シフト、およびビット番号のデコードなどを行う。
【０２４２】
ＤＴＣ内部バスは、図示はされないものの、複数のバスを持っており、前記ＳＡＲ／ＤＲ、ＤＡＲ／ＡＲ、ＣＲ、ＡＣＭの複数の内容を、前記ＡＬＵで演算できるようにする。
【０２４３】
図２５に、ＤＴＣ１０２のデータ転送情報（転送情報セット）を示す。データ転送情報は３２ビット構成であり、上位側と下位側を２段に分割して示している。
【０２４４】
ＤＴＣ１０２のデータ転送情報は、モードレジスタ（ＭＲ）、ソースアドレスレジスタ（ＳＡＲ）、デスティネーションアドレスレジスタ（ＤＡＲ）、転送カウントレジスタ（ＣＲ）、データレジスタ（ＤＲ）からなる。
【０２４５】
ＭＲに保持した内容によって、データ転送情報は３つの構成をとり、データ転送情報の容量が変わり、上記の内の必要なものが使用され、また、名称と異なる動作をする場合がある。
【０２４６】
ＣＲは、ブロック転送カウントレジスタ（ＢＴＣＲ）、転送カウントレジスタ（ＴＣＲ）に分割され、ＴＣＲは８ビットずつ上位（ＴＣＲＨ）、下位（ＴＣＲＬ）に分割されている。後述のデータ転送モードに従って、動作する。
【０２４７】
これらのレジスタは、１組分の回路がＤＴＣ１０２の内部に存在し、特に制限はされないものの、ＣＰＵ１０１のアドレス空間上には存在しない。これらに格納されるべきデータ転送情報は、必要組数がＣＰＵ１０１のアドレス空間上の、ＲＡＭ１０５などの所定のデータ転送情報配置領域に配置される。
【０２４８】
モードレジスタ（ＭＲ）の指定内容によって、前記の通り、データ転送情報は３つの構成をとる。
【０２４９】
（ａ）にビット操作モードを示す。
【０２５０】
ビット３１は、ＢＯＰビットであり、本ビットを１にセットすることによって、ビット操作モードを指定する。
【０２５１】
ビット操作モード（ＢＯＰ＝１）の場合、ＭＲの内容は以下のようになる。
【０２５２】
ビット２９、２８は、ＤＩＲ１、０ビットであり、１０のときＡＲで指定したアドレスをリードして操作を行う。１１のとき、ＡＲで指定したアドレスからリードし、別に指定される処理を行って、ライトを行うようにする。ＤＩＲ１、０ビットが１０のとき、ビット操作の結果は、ビットアキュムレータ（ＡＣＭ）に保持する。
【０２５３】
ビット２７は、ＩＮＶビットであり、リードまたはライト時の論理反転を指定する。
【０２５４】
ビット２５、２４は、ＯＰ１、０ビットであり、００のとき無操作（転送）、０１のとき論理積、１０のとき論理和、１１のとき排他的論理和を行う。
【０２５５】
ビット２３は、ＣＮＤＥビットである。０のときは、ビット操作を１回行う。１のときは、ＣＮＤＳビットと対象ビットによって、ビット操作を終了するか、繰り返すかを指定する。
【０２５６】
ビット２２は、ＣＮＤＳビットである。０のときは、対象ビットが０のとき、条件成立として、ビット操作を終了し、対象ビットが１のとき、条件不成立として、ビット操作を繰り返す。ＣＮＤＳビットが１のときは、対象ビットが１のとき、条件成立として、ビット操作を終了し、対象ビットが０のとき、条件不成立として、ビット操作を繰り返す。
【０２５７】
ビット２０〜１６ビットは、ＢＮＯ４〜０ビットであり、使用するビット番号を指定する。
【０２５８】
ビット７、６はＳｚ１、Ｓｚ０ビットであり、１回のメモリのリード／ライトをバイトサイズ、ワードサイズ、ロングワードサイズのいずれで行うかを選択する。
【０２５９】
ビット１はＮＸＴＥビットであり、１つの起動要因に対して操作を終了するか、次の操作を行うかを選択する。このＮＸＴＥビットを０にクリアした場合、指定した処理の終了後、データ転送情報をライトしてＤＴＣの動作を終了する。
【０２６０】
アドレスレジスタ（ＡＲ）を使用し、ＤＴＣのデータ転送情報はロングワード×２本となる。
【０２６１】
ビット操作モード以外（ＢＯＰ＝０）の場合、ＭＲの内容は以下のようになる。
【０２６２】
ビット３０は、ＤＲＥビットである。本ビットを１にセットした場合、直接データ転送モード、０にクリアした場合、通常データ転送モードとなる。
【０２６３】
（ｂ）に直接データ転送モードを示す。
【０２６４】
直接データ転送モード（ＢＯＰ＝０、ＤＲＥ＝１）の場合、ＭＲの内容は以下のようになる。
【０２６５】
ビット２５は、ＴＳＴＥビットである。０のときは、無条件でデータ転送を行う。１のときは、ＴＳＴＳビットとビットアキュムレータ（ＡＣＭ）によって、データ転送を実行するか、しないかを指定する。
【０２６６】
ビット２４は、ＴＳＴＳビットである。０のときは、対象ビットが０のとき、条件成立として、直接データ転送モードを実行し、対象ビットが１のとき、条件不成立として、直接データ転送モードによるライトを実行せずに終了する。ＴＳＴＳビットが１のときは、対象ビットが１のとき、条件成立として、直接データ転送モードを実行し、対象ビットが０のとき、条件不成立として、直接データ転送モードによるライトを実行せずに終了する。
【０２６７】
ビット１３、ビット１２は、ＤＭ１、ＤＭ０ビットであり、データ転送後にＡＲをインクリメントするか、デクリメントするか、固定にするかを指定する。
【０２６８】
ビット１１、ビット１０は、ＴＭＤ１、ＴＭＤ０ビットであり、データ転送モードを選択する。ＴＭＤ１、ＴＭＤ０ビットを００にするとノーマルモードとなる。このノーマルモードでは、１回の起動で、ＳＡＲで示されるアドレスからＤＡＲで示されるアドレスへ１回のデータ転送を行う。
【０２６９】
この後、ＳＭ１、ＳＭ０、ＤＭ１、ＤＭ０ビットの指定に基づいてＳＡＲ、ＤＡＲの操作が行われ、ＣＲがデクリメントされる。これを起動要因が発生する毎に、ＣＲで指定された回数だけ繰り返す。そして、ＣＲで指定された回数のデータ転送が終了すると、ＤＴＣ動作が禁止され、起動要因となった割り込みがＣＰＵに要求される。
【０２７０】
ＴＭＤ１、ＴＭＤ０ビットを０１にするとリピートモードとなる。ＴＭＤ１、ＴＭＤ０ビットを１０にするとブロック転送モードとなる。リピートモード、ブロック転送モードは、公知の技術で実現できる。
【０２７１】
直接データ転送モードの場合、転送先がリピート領域、ブロック領域となる。
【０２７２】
ビット７、６はＳｚ１、Ｓｚ０ビットであり、１回のデータ転送をバイトサイズ、ワードサイズ、ロングワードサイズのいずれで行うかを選択する。
【０２７３】
ビット４はＣＲＥビットであり、０にクリアした場合は、ＤＴＣ起動要求に応じて、無制限にＤＴＣの動作を行う。１にセットした場合は、ＣＲに初期設定した値に応じて、ＤＴＣの動作を行う。
【０２７４】
ビット１はＮＸＴＥビットであり、１つの起動要因に対してデータ転送を終了するか、次のデータ転送を行うかを選択する。このＮＸＴＥ１ビットを０にクリアした場合、データ転送情報リードおよびデータ転送後、データ転送情報をライトしてＤＴＣの動作を終了する。
また、このＮＸＴＥビットを１にセットした場合、データ転送情報リードおよびデータ転送後、データ転送情報をライトして、さらに連続したアドレスからデータ転送情報をリードして、このデータ転送情報で指定されるデータ転送を行い、データ転送情報をライトする。これをチェイン動作（またはチェイン転送）と呼ぶ。
【０２７５】
ビット０はＮＸＴＳビットであり、ＣＲＥビットが１にセットされた状態で、ＣＲが０になったときに、チェイン動作を行うかを指定する。
【０２７６】
（ｃ）に通常データ転送モードを示す。
【０２７７】
通常データ転送モード（ＢＯＰ＝０、ＤＲＥ＝０）の場合、ＭＲの内容は以下のようになる。
【０２７８】
ビット２５はＴＳＴＥビット、ビット２４はＴＳＴＳビットであり、これらは、前記直接データ転送モードと同様である。
【０２７９】
ビット１５、ビット１４は、ＳＭ１、ＳＭ０ビットであり、データ転送後にＳＡＲをインクリメントするか、デクリメントするか、固定にするかを指定する。
【０２８０】
ビット１３、ビット１２は、ＤＭ１、ＤＭ０ビットであり、また、ビット１１、ビット１０は、ＴＭＤ１、ＴＭＤ０ビットであり、これらは、前記直接データ転送モードと同様である。
【０２８１】
ビット９はＤＩＲビットであり、転送元または転送先のいずれをリピート領域、ブロック領域とするかを選択する。
【０２８２】
ビット７、６はＳｚ１、Ｓｚ０ビットであり、ビット３はＣＲＥビットであり、ビット１はＮＸＴＥビットであり、また、ビット０はＮＸＴＳビットであり、これらは、前記直接データ転送モードと同様である。
【０２８３】
（ｄ）にビット操作モードの変形例（短縮形）を示す。
【０２８４】
ビット３０に、ＳＨＯＲＴビットを設け、ＢＯＰ＝ＳＨＯＲＴ＝１のときは、ビット操作モード短縮形とする。このデータ転送情報は、ＭＲ、ＡＲをロングワード×１本にまとめている。
【０２８５】
メモリのリード／ライトをバイトサイズはバイトサイズに固定し、Ｓｚ１、Ｓｚ０ビットを省略し、ビット番号の指定をＢＮＯ２〜０ビットの３ビットとする。ＣＮＤＥ、ＣＮＤＳビットは省略し、条件の設定は行わない。
【０２８６】
このデータ転送情報は、特に制限はされないものの、ＤＴＣ内部のＭＲ、ＤＡＲ／ＡＲの両方に格納するようにする。本ビット操作モード短縮形で、ＤＡＲ／ＡＲを使用する場合は、上位８ビットをマスク（０または１に固定）するようにする。
【０２８７】
ＡＲが２４ビットになり、指定できるアドレス空間が１６Ｍバイトになるが、ビット操作に用いるアドレス空間は、ＣＰＵの全空間とは限らないから、実質的な問題はない。データ転送情報をリードする回数を少なくして、高速化することができる。
【０２８８】
図２６に、本実施の形態におけるＤＴＣ１０２の状態遷移図を示す。かかる状態遷移は、主として、ＤＴＣ１０２のデータ転送制御ブロック（ＤＴＣＣＮＴ）に実装される。
【０２８９】
ＤＴＣ１０２は、ＩＮＴからデータ転送要求信号ＤＴＣＲＥＱが与えられると、ＶＲステートに遷移し、割込みベクタ番号ＤＴＣＶＥＣに従って、ＶＧで生成したベクタアドレスに基づき、ベクタ領域（データ転送情報先頭アドレス配置領域）に格納されたデータ転送情報の先頭アドレスをリードする。この内容は、ＶＡＲに格納する。
【０２９０】
次に、ＩＲステートに遷移し、前記先頭アドレスに従ってデータ転送情報配置領域に格納されたデータ転送情報をリードする。この内容は、ＭＲ、ＳＡＲ、ＤＡＲ、ＤＲ、ＡＲ、ＣＲであり、最初にリードしたＭＲで指定されたデータ転送機能で使用するものを順次格納する。
【０２９１】
ＭＲの内容に従い、ビット操作モードまたは通常データ転送モードの場合はＳＲステートへ遷移する。直接データ転送モードの場合はＤＷステートへ遷移する。
【０２９２】
ＳＲステートでは、ＳＡＲまたはＡＲで指定されたメモリをリードする。ＣＮＤＥ、ＣＮＤＳビットによって設定された、条件が不成立の場合、ＳＲを繰り返す。ビット操作モードで、ＤＩＲ１、０＝１０のときは、転送情報書き換え判定を行う。ビット操作モードで、ＤＩＲ１、０＝１１のとき、および通常データ転送モードでは、ＤＷステートへ遷移する。
【０２９３】
ＤＷステートでは、ＤＡＲまたはＡＲで指定されたメモリにライトする。その後は転送情報書き換え判定を行う。
【０２９４】
転送情報書き換え判定は、図示の簡略化のために設けているが、実際には前のステートで処理される。データ転送情報に更新されたものがあれば、ＩＷステートに遷移する。データ転送情報に更新されたものがなければ、ＮＸＴＥ、ＮＸＴＳビットでチェイン動作が指定された場合、ＩＲステートに遷移する。チェイン動作が指定されない場合は、起動要因に対応した割り込み要因フラグまたは、ＤＴＥビットを０にクリアして、ＳＴＯＰステートへ遷移する。
【０２９５】
ＩＷステートでは、データ転送情報を元のアドレスにライトする。その後、ＮＸＴＥ、ＮＸＴＳビットでチェイン動作が指定された場合、ＩＲステートに遷移する。チェイン動作が指定されない場合は、起動要因に対応した割り込み要因フラグまたは、ＤＴＥビットを０にクリアして、ＳＴＯＰステートへ遷移する。
【０２９６】
ブロック転送モードの場合は、ＳＲ、ＤＷを繰り返すが、図示は省略する。
【０２９７】
（例１）
図２７に、本実施の形態にかかるＤＴＣ１０２の使用方法の第１の例におけるデータ転送情報設定を示す。データ転送情報は３２ビット構成であり、上位側と下位側を２段に分割して示している。
【０２９８】
第１の例は、ＭＣＵ１００の電源電圧供給端子に供給される電圧が電圧以下になったことを検出した、電圧監視割り込みによって、電源低下を検出して、ＭＣＵ１００の動作クロックを切り替えるものである。
【０２９９】
ＭＣＵ１００の動作クロックは、ＣＰＧ１１１のクロック選択レジスタ（ＣＫＳＲ）によって選択される。このＣＫＳＲは、ＣＰＧ１１１の書き換え禁止状態を示すステータスフラグと、クロックを選択する複数の選択ビットからなる。
【０３００】
前記電圧監視割り込みによって、ＤＴＣ１０２が起動されると、所定のベクタに基づき、転送情報１をリードする。この転送情報１のＭＲの内容は以下のように設定しておく。
【０３０１】
ＢＯＰ＝１とし、ビット操作モードを指定する。
ＤＩＲ１、０＝１０とし、ＡＲで指定したアドレスをリードして操作を行う。
ＩＮＶ＝０とし、論理反転は行わない。
ＯＰ１、０＝００とし、無操作（転送）を指定する。
ＣＮＤＥ＝１、ＣＮＤＳ＝０とし、対象ビットが０であるかを確認する。対象ビットが０のとき、条件成立として、ビット操作（転送情報１による動作）を終了し、対象ビットが１のとき、条件不成立として、ビット操作を繰り返す。
ＢＮＯ４〜０ビットは、前記ＣＫＳＲの、ＣＰＧの書き換え禁止状態を示すステータスフラグのビット番号を指定する。
Ｓｚ１、Ｓｚ０＝０１とし、バイトサイズを指定する。
ＮＸＴＥ＝１とし、チェイン動作で転送情報２による動作を指示する。
アドレスレジスタ（ＡＲ）は前記ＣＫＳＲのアドレスを指定する。
【０３０２】
転送情報１による動作を終了すると、必要に応じて転送情報１を元のアドレスにライトするが、上記設定の場合は、転送情報１の内容は更新されないのでライトは行わない。引き続き、転送情報２をリードする。この転送情報２のＭＲの内容は以下のように設定しておく。
【０３０３】
ＢＯＰ＝０、ＤＲＥ＝１とし、直接データ転送モードを指定する。
ＴＳＴＥ＝ＴＳＴＳ＝０とし、条件の設定は行わない。
ＤＭ１＝ＤＭ０とし、ＡＲは固定にする。
ＴＭＤ１＝ＴＭＤ０＝０とし、ノーマルモードを指定する。
Ｓｚ１、Ｓｚ０＝０１とし、バイトサイズを指定する。
ＣＲＥ＝０とし、ＣＲを使用せず、ＤＴＣ動作回数を無制限にする。
ＮＸＴＥ＝０とし、ＤＴＣ動作終了を指示する。
データレジスタ（ＤＲ）は前記ＣＫＳＲにライトするデータ、すなわち、ＬＯＣＯを選択するデータを格納しておく。
アドレスレジスタ（ＡＲ）は前記ＣＫＳＲのアドレスを指定する。
【０３０４】
図２８に、ＤＴＣ１０２の使用方法の第１の例にかかる処理のフローチャートを示す。
【０３０５】
ＣＰＵ１０１は、所要のデータ転送情報（転送情報１２）を、所定の転送情報アドレス領域にライトし、起動要因とする電圧監視割り込みに対応した、ＤＴＥビットを１にセットしておく。この状態で、電圧監視割り込みが発生して、ＤＴＣ１０２が起動されると、電圧監視割り込みに対応したベクタ領域をリードする（ＶＲ）。このリードした内容がデータ転送情報の先頭アドレスであって、転送情報１をリードする（ＩＲ１）。転送情報１に従って、ＣＫＳＲをリード（ＳＲ）し、指定したビット（書き換え禁止状態を示すステータスフラグ）を判定する。条件が成立するまで、これを繰り返す。
【０３０６】
条件が成立した場合、転送情報書き換え判定を行い、転送情報１の内容は更新されないので元のアドレスへのライトは行わず、転送情報２をリードする（ＩＲ２）。転送情報２に従って、ＤＲで指定した内容を、ＣＫＳＲへライトする（ＤＷ）。転送情報書き換え判定を行い、転送情報２の内容は更新されないので元のアドレスへのライトは行わず、ＤＴＣ１０２の動作を終了する。
【０３０７】
図２９に、ＤＴＣ１０２の使用方法の第１の例にかかる処理の動作タイミング図を示す。
【０３０８】
Ｔ０で、ＤＴＣ１０２はＶＲに遷移し、与えられたＤＴＣＶＥＣに対応するアドレスを、ＭＣＵ内部バスのアドレスバス（ＩＡＢ）に出力してリードを行う。このリードデータ（データ転送情報先頭アドレス）は次のＴ１でＭＣＵ内部バスのデータバス（ＩＤＢ）に得られる。このリードデータはＶＡＲに格納する。
【０３０９】
Ｔ２で、ＤＴＣ１０２はＩＲに遷移し、ＶＡＲ（データ転送情報先頭アドレス）をＩＡＢに出力してリードを行う。ＶＡＲのインクリメント動作などを行い、データ転送情報のロングワード×２本（転送情報１）をリードし、ＤＴＣ１０２内部のＭＲ、ＤＡＲ／ＡＲに格納する。ＤＡＲ／ＡＲの格納後に、動作が可能になる。
【０３１０】
Ｔ５で、ＤＴＣ１０２はＳＲに遷移し、ＤＡＲ／ＡＲ（ＣＫＳＲアドレス）をＩＡＢに出力してリードを行う。Ｔ７で、リードデータの指定したビットをＡＣＭに格納し、条件成立の判断を行う。
【０３１１】
ＡＣＭへの格納は、ＡＬＵにおいて、以下の通り行う。まず、ＢＮＯ４〜０ビットをデコードしたデータを生成する。本例では、バイトサイズなので、デコードしたデータとして、０００００００１、００００００１０、…を生成する。これとリードしたデータとの論理積を生成する。さらに、このデータの全ビットの論理和を生成する。この結果を、ＡＣＭに転送する。
【０３１２】
本図では条件成立の場合を示す。
転送情報書き換え判定を行い、Ｔ８で、ＤＴＣはＩＲに遷移し、インクリメント後のＶＡＲをＩＡＢに出力してリードを行う。ＶＡＲのインクリメント動作などを行い、データ転送情報のロングワード×３本（転送情報２）をリードし、ＤＴＣ１０２内部のＭＲ、ＳＡＲ／ＤＲ、ＤＡＲ／ＡＲに格納する。
【０３１３】
Ｔ１２で、ＤＴＣ１０２はＤＷに遷移し、ＤＡＲ／ＡＲ（ＣＫＳＲアドレス）をＩＡＢに出力し、Ｔ１２で、ＳＡＲ／ＤＲ（ＣＫＳＲにライトするデータ）をＩＤＢに出力して、ライトを行う。
【０３１４】
これによって、転送情報１による動作で、前記ＣＫＳＲをリードして、ＣＰＧの書き換え禁止状態を示すステータスフラグが０にクリアされていることを確認（Ｔ２〜Ｔ７）し、転送情報２によるＭＣＵの動作クロックを切り替えのための、前記ＣＫＳＲへのライトを行うことができる（Ｔ８〜Ｔ１３）。
【０３１５】
電源電圧供給端子に供給される電圧の低下を検出した場合に、ＭＣＵ１００の動作クロック周波数を低くして、ＭＣＵ１００の消費電力を小さくして、安定した動作を確保することができる。これをＣＰＵ１０１の負荷なく、すなわち消費電力を少なくして、実行することができる。
【０３１６】
（例２）
図３０に、実施の形態６におけるＤＴＣ１０２の使用方法の第２の例にかかるデータ転送情報設定を示す。データ転送情報は３２ビット構成であり、上位側と下位側を２段に分割して示している。
【０３１７】
第２の例は、入出力ポート（Ｉ／Ｏ）１１０に入力される信号の所定の変化を検出した、外部割り込み（ＩＲＱ）によって、タイマのスタートを行うものである。
【０３１８】
かかるタイマは、タイマカウンタ（ＴＣＮＴ）とタイマスタートレジスタ（ＴＳＴＲ）を持ち、ＴＳＴＲはカウンタスタート（ＣＳＴ）ビットを持つ。ＣＳＴビットを１にセットすると、ＴＣＮＴのカウントが開始される。
【０３１９】
さらに、タイマは、コンペアレジスタを持ち、タイマカウンタとコンペアレジスタの一致を検出して、コンペアマッチ割り込みを発生するなど、所定の時間を計測する機能を有する。
【０３２０】
ＩＲＱ割り込みによって、ＤＴＣが起動されると、所定のベクタに基づき、転送情報１をリードする。この転送情報１のＭＲの内容は以下のように設定しておく。
【０３２１】
ＢＯＰ＝０、ＤＲＥ＝１とし、直接データ転送モードを指定する。
ＴＳＴＥ＝ＴＳＴＳ＝０として、条件は設定しない。
ＤＭ１＝ＤＭ０とし、ＡＲは固定にする。
ＴＭＤ１＝ＴＭＤ０＝０とし、ノーマルモードを指定する。
Ｓｚ１、Ｓｚ０＝１０とし、ワードサイズを指定する。
ＣＲＥ＝０とし、ＣＲを使用せず、ＤＴＣ動作回数を無制限にする。
ＮＸＴＥ＝１とし、チェイン動作で転送情報２による動作を指示する。
データレジスタ（ＤＲ）は前記ＴＣＮＴにライトするデータ（００００などの初期値）を格納しておく。
アドレスレジスタ（ＡＲ）は前記ＴＣＮＴのアドレスを指定する。
【０３２２】
転送情報１による動作を終了すると、必要に応じて転送情報１を元のアドレスにライトするが、上記設定の場合は、転送情報１の内容は更新されないのでライトは行わない。引き続き、転送情報２をリードする。この転送情報２のＭＲの内容は以下のように設定しておく。
【０３２３】
ＢＯＰ＝１とし、ビット操作モードを指定する。
ＤＩＲ１、０＝１１とし、ＡＲで指定したアドレスに対して、リード／ライトを行う。
ＩＮＶ＝０とし、論理反転は行わない。
ＯＰ１、０＝１０とし、論理和（ビットセット）を指定する。
ＣＮＤＥ＝ＣＮＤＳ＝０とし、対象ビットの条件は設定しない。
ＢＮＯ４〜０ビットは、前記ＴＳＴＲのＣＳＴビットのビット番号を指定する。
Ｓｚ１、Ｓｚ０＝０１とし、バイトサイズを指定する。
ＮＸＴＥ＝０とし、ＤＴＣ動作終了を指示する。
アドレスレジスタ（ＡＲ）は前記ＴＳＴＲのアドレスを指定する。
【０３２４】
図３１に、ＤＴＣ１０２の使用方法の第２の例にかかる処理のフローチャートを示す。
【０３２５】
ＩＲＱ割り込みが発生して、ＤＴＣ１０２が起動されると、ＩＲＱ割り込みに対応したベクタ領域をリードする（ＶＲ）。このリードした内容がデータ転送情報の先頭アドレスであって、転送情報１をリードする（ＩＲ１）。転送情報１に従って、ＤＲで指定した内容を、ＴＣＮＴへライトする（ＤＷ１）。
【０３２６】
転送情報書き換え判定を行い、転送情報１の内容は更新されないので元のアドレスへのライトは行わず、転送情報２をリードする（ＩＲ２）。転送情報２に従って、ＡＲで指定したアドレス（ＴＳＴＲ）からリードを行う（ＳＲ２）。このリードした内容に対し、指定したビット（ＣＳＴビット）を１にセットし、ほかのビットは保持して、ＡＲで指定したアドレスへライトを行う（ＤＷ２）。転送情報書き換え判定を行い、転送情報２の内容は更新されないので元のアドレスへのライトは行わず、ＤＴＣ１０２の動作を終了する。
【０３２７】
これによって、転送情報１による動作で、前記ＴＣＮＴに初期値を設定し、転送情報２による動作で、ＣＳＴビットを１にセットし、タイマの動作を開始することができる。
【０３２８】
図３２に、ＤＴＣ１０２の使用方法の第２の例にかかる処理の動作タイミング図を示す。概略は図２９と同様である。
【０３２９】
Ｔ２で、ＤＴＣ１０２はＩＲに遷移し、データ転送情報のロングワード×３本をリード（転送情報１）し、ＤＴＣ１０２内部のＭＲ、ＳＡＲ／ＤＲ、ＤＡＲ／ＡＲに格納する。
Ｔ６でＤＷに遷移し、ＴＣＮＴへのライトを行う。
【０３３０】
Ｔ８でＩＲに遷移し、データ転送情報のロングワード×３本（転送情報２）をリードし、ＤＴＣ内部のＭＲ、ＤＡＲ／ＡＲに格納する。
【０３３１】
Ｔ１１でＳＲに遷移し、ＴＳＴＲのリードを行う。
【０３３２】
Ｔ１３でＤＷに遷移し、リードしたＴＳＴＲの指定したＣＳＴビットを１にセットして、ＴＳＴＲへのライトを行う。
【０３３３】
ＣＳＴビットのセットは、ＡＬＵにおいて、ＢＮＯ４〜０ビットをデコードしたデータを生成し、リードしたデータ（ＴＳＴＲ）との論理和を生成するようにする。
【０３３４】
事前に前記コンペアレジスタに所定の値を設定しておくなどして、所定の時間を計測後に、コンペアマッチ割り込みなどを発生することができる。このコンペアマッチ割り込みで、ＤＴＣ１０２を起動するなどして、例えば、Ａ／Ｄ変換器を起動することができる。
【０３３５】
これによって、外部の状態の変化をＩＲＱで検出し、外部の状態の安定する時間などを待って、Ａ／Ｄ変換器を起動して、外部の状態を知ることができる
【０３３６】
（例３）
図３３に、実施の形態６におけるＤＴＣ１０２の使用方法の第３の例にかかるデータ転送情報設定を示す。データ転送情報は３２ビット構成であり、上位側と下位側を２段に分割して示している。
【０３３７】
第３の例は、例えば３本の入出力ポート（Ｉ／Ｏ）に入力される信号の所定の変化を検出した、外部割り込み（ＩＲＱ０、ＩＲＱ１、ＩＲＱ２）によって、出力ポートを反転されるものである。
【０３３８】
ＩＲＱ０、ＩＲＱ１、ＩＲＱ２割り込みのデータ転送情報のＭＲの内容は以下のように設定しておく。
【０３３９】
ＢＯＰ＝１とし、ビット操作モードを指定する。
ＤＩＲ１、０＝１１とし、ＡＲで指定したアドレスに対して、リード／ライトを行う。
ＩＮＶ＝０とし、論理反転は行わない。
ＯＰ１、０＝１１とし、排他的論理和（ビットノット）を指定する。
ＣＮＤＥ＝ＣＮＤＳ＝０とし、対象ビットの条件は設定しない。
ＢＮＯ４〜０ビットは、出力ポートの対象のビットのビット番号を指定する。
Ｓｚ１、Ｓｚ０＝０１とし、バイトサイズを指定する。
ＮＸＴＥ＝０とし、ＤＴＣ動作終了を指示する。
アドレスレジスタ（ＡＲ）は前記出力ポートのアドレスを指定する。
【０３４０】
図３４に、ＤＴＣ１０２の使用方法の第３の例にかかる処理のフローチャートを示す。
【０３４１】
ＩＲＱ０、ＩＲＱ１、ＩＲＱ２割り込みが発生して、ＤＴＣ１０２が起動されると、ＩＲＱ割り込みに対応したベクタ領域をリードする（ＶＲ）。ＩＲＱ０、ＩＲＱ１、ＩＲＱ２割り込みに対して、ベクタ領域は独立しているが、そこで指定するデータ転送情報の先頭アドレスは同一にする。
【０３４２】
このデータ転送情報の先頭アドレスであって、データ転送情報をリードする（ＩＲ）。データ転送情報に従って、ＡＲで指定したアドレス（出力ポート）からリードを行う（ＳＲ）。このリードした内容に対し、指定したビットを反転し、ほかのビットは保持して、ＡＲで指定したアドレスへライトを行う（ＤＷ）。転送情報書き換え判定を行い、データ転送情報の内容は更新されないので元のアドレスへのライトは行わず、ＤＴＣ１０２の動作を終了する。
【０３４３】
ＩＲＱ０、ＩＲＱ１、ＩＲＱ２割り込みのいずれかの入力変化によっても、上記のデータ転送を起動して、出力ポートを反転するトグルスイッチを実現できる。
【０３４４】
（例４）
図３５に、実施の形態６におけるＤＴＣ１０２の使用方法の第４の例にかかるデータ転送情報設定を示す。データ転送情報は３２ビット構成であり、上位側と下位側を２段に分割して示している。
【０３４５】
第４の例は、タイマのコンペアマッチ割り込みなどによる、一定間隔のタイマ割り込みによって、例えば３本の入出力ポート（Ｉ／Ｏ）１１０に入力される信号に従って、出力ポートを制御するものである。
【０３４６】
この場合５つのビット操作モードのＤＴＣ１０２の動作をチェイン動作によって、順次実行する。
【０３４７】
転送情報１のＭＲの内容は以下のように設定しておく。
ＢＯＰ＝１とし、ビット操作モードを指定する。
ＤＩＲ１、０＝１０とし、ＡＲで指定したアドレスをリードして操作を行う。
ＩＮＶ＝０とし、論理反転は行わない。
ＯＰ１、０＝００とし、無操作（転送）を指定する。
ＣＮＤＥ＝ＣＮＤＳ＝０とし、対象ビットの条件は設定しない。
ＢＮＯ４〜０ビットは、出力ポートの対象のビットのビット番号を指定する。
Ｓｚ１、Ｓｚ０＝０１とし、バイトサイズを指定する。
ＮＸＴＥ＝１とし、チェイン動作で後続の転送情報２による動作を指示する。
アドレスレジスタ（ＡＲ）は前記出力ポートのアドレスを指定する。
【０３４８】
転送情報２，３，４は簡単のために、同一の操作を行うものとし、ＭＲの内容は以下のように設定しておく。
ＢＯＰ＝１とし、ビット操作モードを指定する。
ＤＩＲ１、０＝１０とし、ＡＲで指定したアドレスをリードして操作を行う。
ＩＮＶ＝０とし、論理反転は行わない。
ＯＰ１、０＝１１とし、排他的論理和（反転）を指定する。
ＣＮＤＥ＝ＣＮＤＳ＝０とし、対象ビットの条件は設定しない。
ＢＮＯ４〜０ビットは、参照する入力ポートの対象のビットのビット番号をそれぞれ指定する。
Ｓｚ１、Ｓｚ０＝０１とし、バイトサイズを指定する。
ＮＸＴＥ＝１とし、チェイン動作で後続の転送情報３ないし４ないし５による動作を指示する。
アドレスレジスタ（ＡＲ）は参照する入力ポートのアドレスをそれぞれ指定する。
【０３４９】
転送情報５のＭＲの内容は以下のように設定しておく。
ＢＯＰ＝１とし、ビット操作モードを指定する。
ＤＩＲ１、０＝１１とし、ＡＲで指定したアドレスに対して、リード／ライトを行う。
ＩＮＶ＝０とし、論理反転は行わない。
ＯＰ１、０＝００とし、無操作（転送）を指定する。
ＣＮＤＥ＝ＣＮＤＳ＝０とし、対象ビットの条件は設定しない。
ＢＮＯ４〜０ビットは、出力ポートの対象のビットのビット番号を指定する。
Ｓｚ１、Ｓｚ０＝０１とし、バイトサイズを指定する。
ＮＸＴＥ＝０とし、ＤＴＣ動作終了を指示する。
アドレスレジスタ（ＡＲ）は前記出力ポートのアドレスを指定する。
【０３５０】
図３６に、ＤＴＣ１０２の使用方法の第４の例にかかる処理のフローチャートを示す。
【０３５１】
タイマ割り込みが発生して、ＤＴＣ１０２が起動されると、タイマ割り込みに対応したベクタ領域をリードする（ＶＲ）。前記同様に、転送情報１をリードする（ＩＲ１）。転送情報１に従って、ＡＲで指定した出力ポートの内容をリードする（ＳＲ１）。この指定したビットの内容を、ビットアキュムレータ（ＡＣＭ）に格納する。
【０３５２】
転送情報２をリードする（ＩＲ２）。転送情報２に従って、ＡＲで指定した入力ポート１の内容をリードする（ＳＲ２）。この指定したビットの内容を、ＡＣＭと演算（排他的論理和）し、演算結果は、ＡＣＭに格納する。同様に、ＩＲ３、ＳＲ３、ＩＲ４、ＳＲ４を実行する。
【０３５３】
その後、転送情報５をリードする（ＩＲ５）。転送情報５に従って、ＡＲで指定した入力ポート１の内容をリードする（ＳＲ５）。リードしたデータの指定したビットに、ＡＣＭの内容を挿入し、ほかのビットは保持して、ライトを行う（ＤＷ）。
【０３５４】
なお、参照するビットは任意に増減でき、これらの演算内容も任意に変更できる。
【０３５５】
インターバルタイマによって、一定時間間隔で、ＤＴＣ１０２を起動して、ビット演算を行って、スイッチのオン／オフなどの、所要の制御を行うことができる。
【０３５６】
（変形例：プリフェッチ追加）
図３７に、実施の形態６のＤＴＣ１０２の変形例のブロック図を示す。
【０３５７】
変形例のＤＴＣ１０２は、バスインタフェース（ＢＩＦ）に直結した、プリフェッチバッファ（ＰＦＢ）を持つ。データ転送情報のリード時の空いたバスサイクルに次のデータ転送情報をリード可能にする。
【０３５８】
プリフェッチバッファは、データ転送情報のリードのレイテンシと、最小のデータ転送情報の容量などに応じて、複数のロングワード分を用意することもできる。
【０３５９】
図３８に、ＤＴＣ１０２の変形例を用いた、使用方法の第１の例にかかる処理の動作タイミング図を示す。
【０３６０】
図３８は、図２９との比較において、Ｔ４において、次のデータ転送情報の最初のロングワードのリードを行う点に特徴を有する。この内容はＴ６でＰＦＢに一旦格納される。
Ｔ８からは、転送情報２の残りのロングワード×２本のリードを行う。Ｔ９で、ＰＦＢに保持した転送情報２の内容をＭＲに転送する。
【０３６１】
リードしたＭＲをＤＴＣ内部で利用可能になるまでの状態を有効に利用して、実行ステート数を短縮することができる。
【０３６２】
（変形例：分岐モード追加）
実施の形態６のＤＴＣ１０２に分岐モードを追加した変形例を示す。図３９に、この変形例におけるデータ転送情報（転送情報セット）を示す。データ転送情報は３２ビット構成であり、上位側と下位側を２段に分割して示している。
【０３６３】
ＢＯＰ＝０、ＤＲＥ＝１のとき、ビット２９にＢＲＥビットを設ける。
【０３６４】
直接データ転送モードは、ＢＯＰ＝０、ＤＲＥ＝１、ＢＲＥ＝０とする。
【０３６５】
（ｅ）は分岐モードであり、ＢＯＰ＝０、ＤＲＥ＝１、ＢＲＥ＝１として指定する。この分岐モードでは、ほかのモードのＮＸＴＥ＝１の場合と同様に、チェイン動作として、次のデータ転送情報に基づいた動作を行う。この次のデータ転送情報を、連続したアドレスからリードするほかに、別のアドレスからリード（分岐）することを可能にする。
【０３６６】
ＭＲの内容は以下のようになる。
ビット２５は、ＴＳＴＥビットである。０のときは、無条件で分岐を行う。１のときは、ＴＳＴＳビットとビットアキュムレータ（ＡＣＭ）によって、分岐を実行するか、しないかを指定する。
【０３６７】
ビット２４は、ＴＳＴＳビットである。０のときは、対象ビットが０のとき、条件成立として、分岐を実行し、対象ビットが１のとき、条件不成立として、連続した次のアドレスからデータ転送情報をリードする。ＴＳＴＳビットが１のときは、対象ビットが１のとき、条件成立として、分岐を実行、対象ビットが０のとき、条件不成立として、連続した次のアドレスからデータ転送情報をリードする。
【０３６８】
ビット２３〜０は、分岐アドレス指定部であり、これを符号拡張して、ＶＧＲに加算して、次のデータ転送情報の先頭アドレスを生成する。すなわち、当該データ転送情報の次のアドレスと、条件成立時に実行すべきデータ転送情報のアドレスの相対値を、分岐アドレス指定部で指定する。
【０３６９】
図４０に、ＤＴＣ１０２に分岐モードを追加した変形例における状態遷移図を示す。
【０３７０】
ＩＲステートから。ＭＲの内容に従い、分岐モードの場合はＢＲステートへ遷移する
【０３７１】
ＢＲステートでは、ビットアキュムレータ（ＡＣＭ）の内容を確認し、条件成立の場合は、ＶＧＲに、ＭＲの分岐アドレス指定部を符号拡張したものを加算する。不成立の場合は、加算を行わない。その後は転送情報書き換え判定を行うが、分岐モードの場合は、必ず、ＩＲステートに遷移する。
【０３７２】
次のＩＲステートでは、前記の加算を行ったＶＧＲに基づき、データ転送情報をリードする。
【０３７３】
図４１に、ＤＴＣ１０２の使用方法の第１の例のデータ転送情報設定に対し、分岐モードを追加的に指定した例を示す。データ転送情報は３２ビット構成であり、上位側と下位側を２段に分割して示している。
【０３７４】
転送情報１には、条件を設定しない。
【０３７５】
転送情報２は、ＢＯＰ＝０、ＤＲＥ＝１、ＢＲＥ＝１として、分岐モードを指定する。ＴＳＴＥ＝１、ＴＳＴＳ＝１とし、対象ビットが０であるかを確認する。対象ビットが１のとき、条件成立として、ビット２３〜０に格納した、ＦＦＦＦＦ４を符号拡張して、ＶＧＲに加算して、転送情報１の先頭アドレスを計算して、分岐する。対象ビットが０のとき、条件不成立として、次の転送情報３を実行する。
【０３７６】
転送情報３は、図２７の転送情報２と同一である。
【０３７７】
このように、条件分岐を可能とすることで、柔軟な処理を実現できる。
【０３７８】
図４２に、ＤＴＣ１０２の使用方法の第１の例に分岐モードを追加した変形例のフローチャートを示す。
【０３７９】
電圧監視割り込みが発生して、ＤＴＣが起動されると、電圧監視割り込みに対応したベクタ領域をリードする（ＶＲ）。このリードした内容がデータ転送情報の先頭アドレスであって、転送情報１をリードする（ＩＲ１）。転送情報１に従って、ＣＫＳＲをリード（ＳＲ）する。指定したビットをＡＣＭに格納する。
【０３８０】
次に、転送情報２をリードする（ＩＲ２）。転送情報２に従って、ＡＣＭの内容を確認し、分岐条件判定を行う（ＢＲ）する。条件が成立した場合、ＶＧＲに、ＭＲの分岐アドレス指定部を符号拡張したものを加算し、ＩＲ２に戻る。
【０３８１】
不成立の場合は、加算を行わず、転送情報３をリードする（ＩＲ３）。転送情報３に従って、ＤＲで指定した内容を、ＣＫＳＲへライトする（ＤＷ）。転送情報書き換え判定を行い、転送情報２の内容は更新されないので元のアドレスへのライトは行わず、ＤＴＣの動作を終了する。
【０３８２】
（その他の変形例）
図４３に、実施の形態６のＤＴＣ１０２の別の変形例のブロック図を示す。
【０３８３】
データ転送情報を格納するレジスタセットとして、分岐アドレスレジスタ（ＪＡＲ）を追加する。
【０３８４】
図４４Ａ及び図４４Ｂは、上記構成におけるデータ転送情報（転送情報セット）である。データ転送情報は３２ビット構成であり、上位側を図４４Ａ、下位側を図４４Ｂとして示している。
【０３８５】
ビット操作モード、直接データ転送モード、通常データ転送モードのＭＲのビット３にＪＭＰビットを、ビット２にＲＥＴビットを追加する。分岐モードのビット２８にＲＥＴビットを追加する。
【０３８６】
ＪＭＰビットを１にセットした場合は、データ転送情報に、ＪＡＲを含めるようにする。この場合、所要の動作後、チェイン動作同様に、次のデータ転送情報をリードするようにし、このデータ転送情報の先頭アドレスを、ＶＡＲではなく、ＪＡＲで指定するようにする。
【０３８７】
ＲＥＴビットを０にクリアした場合は、ＪＡＲをＶＡＲにコピーする。次のデータ転送情報でチェイン動作を行う場合には、次のデータ転送情報に連続したアドレスからデータ転送情報をリードする。
【０３８８】
ＲＥＴビットを１にセットした場合は、ＶＡＲは保持するようにする。次のデータ転送情報でチェイン動作を行う場合には、ＪＭＰビットを１にセットしたデータ転送情報に連続したアドレスからデータ転送情報をリードする。
【０３８９】
なお、ＪＭＰビットを１にセットした場合は、ＮＸＴＥ、ＮＸＴＳビットを無視するようにする。分岐モードについても、ＲＥＴビットによって、分岐アドレスをＶＡＲにコピーするかを選択する。
【０３９０】
図４５に、上記データ転送情報（転送情報セット）の使用方法を示す。
【０３９１】
データ転送情報ｊのＭＲのＪＭＰビットが１にセットされ、ＪＡＲでデータ転送情報ｋのアドレスを指定している場合、データ転送情報ｊの実行後、データ転送情報ｋの実行を行う。
【０３９２】
データ転送情報ｋのＭＲのＮＸＴＥビットが１にセットされている場合、チェイン動作を行うが、次に実行するデータ転送情報は、データ転送情報ｊのＭＲのＲＥＴビットによって相違する。
【０３９３】
データ転送情報ｊのＭＲのＲＥＴビットが０にクリアされている場合、ＶＡＲが更新されているので、データ転送情報ｋの実行後、データ転送情報ｋ＋１の実行を行う。
【０３９４】
データ転送情報ｊのＭＲのＲＥＴビットが１にセットされている場合、ＶＡＲが保持されているので、データ転送情報ｋの実行後、データ転送情報ｊ＋１の実行を行う。
【０３９５】
図４６に、実施の形態６における割り込みコントローラ（ＩＮＴ１０３）のブロック図を示す。
【０３９６】
マイクロコンピュータの割り込み要因は、それぞれ割り込み要因フラグを有する。割り込みの要因フラグは、タイマ、通信、アナログの機能ブロックが所定の状態になったときに１にセットされる。
【０３９７】
外部割り込みの要因フラグは、外部割り込み入力端子が所定のレベルになったとき、または所定の信号変化が発生したときに１にセットされる。割り込み要因フラグは、ＣＰＵ１０１のライト動作によって０にクリアされるほか、ＤＴＣ１０２による転送が終了したときに０にクリアされる。
【０３９８】
割り込み要因フラグの各ビットの出力は、割り込み許可回路に入力され、この割り込み許可回路には、さらに割り込み許可レジスタの内容、すなわち割り込み許可ビットが入力される。この割り込み許可レジスタは、ＣＰＵ１０１からリード／ライト可能なレジスタで、対応する割り込みを許可するか、禁止するかを選択する。割り込み要因フラグが１にセットされ、割り込み許可ビットが１にセットされていると割り込みが要求される。
【０３９９】
割り込み許可回路の出力は、割り込み／ＤＴＣ判定回路に入力される。この割り込み許可回路には、さらにＤＴＣ許可レジスタ（ＤＴＥＲ）の内容が入力され、前記の通り、ＤＴＣ許可レジスタは、割り込みが要求されたとき、ＤＴＣ１０２を起動するか、ＣＰＵ１０１に割り込みを許可するかを選択する。ＤＴＣ許可レジスタの当該割り込み要因に対応したビットが１にセットされていると、ＤＴＣ１０２の起動が要求され、ＣＰＵ１０１の割り込みは要求されない。ＤＴＣ許可レジスタのビットが０にクリアされていると、ＣＰＵ１０１の割り込みが要求され、ＤＴＣ１０２の起動は要求されない。
【０４００】
ＤＴＣ許可回路の出力は、ＣＰＵ割り込み要求とＤＴＣ起動要求が独立に優先順位判定回路に入力される。ＣＰＵ１０１の優先順位判定・マスクレベル判定回路には、プライオリティレジスタ、割り込みマスクレベルなどに従って制御される。
【０４０１】
ＣＰＵ割り込み要求、ＤＴＣ起動要求のそれぞれについて、複数の割り込み要求が発生している場合に、優先順位を判定する。この判定の結果、優先順位の最高のものが選択され、ベクタ番号が生成され、ＣＰＵ割り込み要求とベクタ番号、ＤＴＣ起動要求（ＤＴＣＲＥＱ）とベクタ番号（ＤＴＣＶＥＣ）が出力される。
【０４０２】
ＤＴＣ起動要求はＤＴＣに入力され、またＤＴＣベクタ番号はラッチ回路に入力される。ＤＴＣ動作開始信号およびＤＴＣ動作終了信号がＤＴＣから出力され、ラッチ回路に入力される。すなわち、ＤＴＣ１０２が動作を開始すると、ＤＴＣ動作信号が活性状態になり、ベクタのラッチないし保持が行われる。そして、ＤＴＣ１０２のデータ転送が終了してＤＴＣ動作終了信号が活性状態になり、ラッチは解除される。
【０４０３】
また、ＤＴＣベクタ番号とＤＴＣ動作終了信号はデコーダ回路に入力され、対応する割り込み要因フラグに対して要因クリア信号が活性状態になって、要因フラグまたはＤＴＥビットがクリアされる。
【０４０４】
所定の割り込み要因で、ＤＴＣ１０２を起動する場合、ＣＰＵ１０１は予め、データ転送情報などを所要のアドレスにライトするとともに、当該割り込みの割り込み許可ビットと、ＤＴＣ許可レジスタの当該割り込み要因に対応したＤＴＥビットを１にセットしておく。
【０４０５】
この状態で当該割り込み要因フラグが１にセットされると、ＤＴＣ１０２が起動される。ＤＴＣ１０２が所定のデータ転送などの動作を実行している状態では、ＤＴＣ１０２はデータ転送毎に当該割り込み要因フラグを０にクリアする。このとき、ＣＰＵ１０１に割り込みは要求されない。
【０４０６】
所定のデータ転送などを終了した場合、ＤＴＣ１０２は動作終了時に当該ＤＴＥビットを０にクリアする。このとき、当該割り込み要因フラグは１に保持され、当該ＤＴＥビットが０にクリアされているので、ＣＰＵ１０１に割り込みが要求される。ＣＰＵ１０１は、所定のデータ転送の終了などに対応した処理を実行するとともに、データ転送情報やＤＴＥビットの再設定を行う。
【０４０７】
図４７に、実施の形態６にかかるＭＣＵ１００を用いたシステムのブロック図を示す。
【０４０８】
ＭＣＵ１００は所要の制御対象の制御、例えば、カメラレンズにおいては、焦点、絞り、防振のモータ制御を行う。
【０４０９】
ＭＣＵ１００の内部構成は主要なものを示しており、状態入力ブロック、制御出力ブロックは、いずれも、タイマ機能およびシリアルコミュニケーションインタフェースなどの通信機能を含むデジタルモジュール、Ａ／Ｄ変換器およびＤ／Ａ変換器、電源電圧検出機能などのアナログモジュール、入出力ポート（Ｉ／Ｏ）などを含む。
【０４１０】
状態入力ブロックは、制御対象の状態を、エンコード値やアナログ値などとして入力し、入力した値や、機能ブロックの内部状態に従って、所定のイベントを発生し、このイベント発生は、割り込み要因フラグに反映される。このイベントは、例えば、エンコード値が所定の値になったときに発生するコンペアマッチ割り込み、アナログ入力の変換が完了したときに発生するＡ／Ｄ変換完了割り込み、などである。
【０４１１】
一方、制御出力ブロックは、タイマパルス出力やアナログ出力などを行い、制御対象の制御を行う。制御出力ブロックは、前記出力のためのデータレジスタのほか、制御出力ブロックを制御するための制御レジスタを持っている。例えば、タイマのカウンタを０にクリアするためのカウンタクリアビットなどがある。
【０４１２】
このイベントないし割り込み要因は、割り込みコントローラ（ＩＮＴ１０３）を介して、ＤＴＣ１０２に伝達される。
【０４１３】
割り込み要因によって、ＤＴＣ１０２が起動されると、所定のデータ転送情報に従い、制御出力ブロックに対して、データ転送や制御レジスタの操作などを実行する。データ転送情報のリードにあたって、分岐動作を行い実行するデータ転送情報を切り替えることによって、制御出力ブロックやそのほかの状態に応じた処理を実行することができる。
【０４１４】
すなわち、状態入力ブロックで発生したイベントに呼応した、制御出力ブロックに対する処理を、ＣＰＵ１０１によらず、ＤＴＣ１０２のみで実行することができる。所要の制御レジスタをリードし、所要のビットを操作し、そのほかのビットを保持して、ライトを行うことで、ほかの状態に影響を与えることなく、所要の制御を行うことができる。従来技術においては、ＣＰＵ１００に割り込みを要求して処理を切り替えていた動作を、ＤＴＣ１０２によって実行することができる。
【０４１５】
このようなシステムにおいて、ＣＰＵ１０１は事前にデータ転送情報の設定などを行えばよく、制御対象の制御にあたっては、スリープないしスタンバイモードなどの低消費電力状態とすることもでき、システムの低消費電力化に寄与できる。ＤＴＣ１０２はＣＰＵ１０１より論理規模が小さく、かつ高速に処理を行うことができるので、低消費電力化の効果を高めることができる。バッテリで駆動されるカメラシステムなどにおいては、低消費電力化が重要であることは言うまでもない。
【０４１６】
＜実施の形態６の作用効果＞
実施の形態６によれば以下の作用効果を得ることができる。
（１）ＤＴＣによるビット操作を可能とすることで、機器制御に対応したビット単位の操作をハードウェア的に実行できる。バイトなどのサイズでデータをリードし、当該データに所要のビット操作を行って、ライトを行うこと、および、ＤＲに用意したデータをライトすることで、マイクロコンピュータの内蔵する各種の機能の、種々のビット操作の仕様に対応できる。バスインタフェースを利用するので、専用のインタフェースを設ける必要がなく、マイクロコンピュータのアドレス空間上に存在する任意のデータを使用でき、利用者が使用方法を任意に選択することができる。バスは排他的に制御されるため、複数のイベントの競合に配慮する必要がない。すなわち高速化が実現できる。イベントに呼応した、データ転送機能とビット操作機能を、１つのハードウェアで実現し、データ転送情報で切り替えることによって、割込みコントローラやＤＴＣベクタなどを共通化して、ハードウェア構成を簡略化することができる。
（２）ビット操作を指定する、データ転送情報をメモリに格納することによって、ビット操作の対象を増やすことができる。チェイン動作などによって１回に実行するビット操作ないしデータ転送の数を増やすことができる。複数の起動要因によって、共通のビット操作を実現することができる。ビット操作を可能にすることで、マイクロコンピュータの仕様および制御対象に応じて、使用する端子やタイマのチャネルなどを柔軟に変更することができる。専用のハードウェアは１回のデータ転送に必要な分を持てばよいので、機能を追加して、ハードウェア規模が増えても、マイクロコンピュータ全体の物理的な規模の増加を抑止することができる。データ転送機能とビット操作機能を１つのハードウェアで実現することによって、さらに、物理的な規模の増加を抑止することができる。
（３）チェイン動作によって、ビット操作を連続的に実行することができ、さらに、所定のビットの状態およびこれを演算した結果を、ビットアキュムレータに保持して、次のビット操作で利用可能とすることができるので、複数のビットに基づく操作など、複数のビット操作組み合わせることができる。所要のビットの状態を確認して、ＤＴＣの動作を変更することを可能にして、さらに柔軟な動作を実現できる。
（４）ＤＴＣのデータ転送情報のリードにあたって、連続したデータ転送情報以外に、分岐動作を可能とすることによって、複数のデータ転送情報を、所要の順序で連続して実行することができる。指定したビットの状態を判断して分岐を行うかの選択を可能とすることにより、マイクロコンピュータの制御対象の状態などに対応した処理を実現することができる。
（５）ＤＴＣのデータ転送情報のリード時に、連続する次のデータ転送情報の一部を予めリードしておくことで、実行ステートの短縮を実現することができる。
（６）データ転送情報の容量を変更可能にすることで、使用するＲＡＭの容量を節約することができる。最大のデータ転送情報の容量に対応したハードウェアを１つ分持てばよいので、マイクロコンピュータ全体の物理的な規模の増加を抑止することができる。最適な容量のデータ転送情報をリード／ライトすることで、リード／ライトの回数を最小限にし、高速化に寄与することができる。
（７）ＣＲを無効とする指定を設けることで、所定回数のデータ転送を行うこととは別に、マイクロコンピュータの状態に応じた制御を、任意の回数実行することができる。データ転送情報を短縮して、ＤＴＣ動作の高速化と、メモリの利用効率の向上を実現できる。また、ＣＲを無効とすることで、データ転送情報の更新をなくし、データ転送情報の書き戻しを不要とすることができる。具体的には、実施例で説明した例は、データ転送情報の更新がなく、これらのデータ転送情報はＲＯＭに配置することができる。ＲＯＭに配置すれば、ＲＡＭに初期書き込みを行う必要がなくなる。また、使用するＲＡＭの容量を節約することができる。
（８）ＤＴＣがＣＰＵに代わって、データ転送やビット操作を実行可能にすることで、ＣＰＵに割り込みを要求する頻度を低減したり、ＣＰＵを低消費電力状態にする期間を長くしたりすることができる。ＣＰＵが割り込み処理にあたって実行すべき、例外処理、スタックの退避・復帰操作、復帰命令の実行を不要とすることができ、プログラムの簡略化やシステムの効率化に寄与することができる。また、イベントの発生から所要の動作の実行までの時間を短縮し、いわゆる応答性を向上することができる。ＣＰＵより論理規模が小さく、かつ高速に処理を行うことができるＤＴＣが動作し、ＣＰＵを低消費電力状態にすることで、低消費電力化を実現することができる。
【０４１７】
＜実施の形態６の変形＞
実施の形態６は上述の構成に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。
【０４１８】
例えば、データ転送情報は３２ビット単位の可変長としたが、この単位は任意にできる。アドレスレジスタのビット数は３２ビットに限定されるものではなく、ＣＰＵまたはマイクロコンピュータのアドレス空間に応じて変更でき、たとえば１６Ｍバイトのアドレス空間であれば２４ビットとすればよい。分岐アドレス指定部は、データ転送情報がロングワード（３２ビット）を単位としていることに対応して、１／４とした内容を保持するようにしてもよい。ＶＧＲに加算するときに、４倍すればよい。分岐できる範囲を広げることができる。あるいは、分岐アドレス指定部は、ＭＲと別のロングワードにしてもよい。相対アドレスとするほか、直接アドレスを指定するようにしてもよい。
【０４１９】
また、ＣＰＵ１０１のプログラムは、ＲＯＭ１０４に配置するほか、外部メモリとすることができる。同様に、ＣＰＵ１０１の作業領域であるメモリはＲＡＭ１０５に限らず、外部メモリとすることができ、またＲＯＭ１０４またはＲＡＭ１０５は内蔵しなくてもよい。
【０４２０】
ＤＴＣ１０２のデータ転送情報についても、ＲＡＭ１０５に配置するほか、ＲＯＭ０４あるいは外部メモリとすることができる。データ転送情報の書き換えを行わないものは、ＲＯＭ１０４に配置してもよい。ただし、ＲＯＭ１０４に対するＣＰＵ１０１のアクセス頻度が高い場合は、データ転送情報の書き換えを行わないものも、ＲＡＭ１０５に配置することができる。
【０４２１】
ＤＴＣ１０２のほかに、ＤＭＡコントローラなどのデータ転送装置を設けることもできる。ＤＴＣ１０２とＤＭＡコントローラの機能を１つの機能モジュールとすることもできる。
【０４２２】
ＤＴＣ１０２、割り込みコントローラの具体的な構成についても種々変更できる。
【０４２３】
ＢＳＣや、バス権やウェイトなどのバス動作の詳細については省略したが、これらは適宜実装可能である。
【０４２４】
ＭＣＵ１００の構成についても限定されない。内蔵する機能ブロックなども種々変更できる。
＜その他の実施の形態＞
【０４２５】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるマイクロコンピュータに適用した実施の形態について説明したが、それに限定されるものではなく、その他の半導体集積回路装置、例えば、デジタルシグナルプロセッサ（ＤＳＰ）を中心にした半導体集積回路装置にも適用可能であり、本発明は少なくとも、データ処理装置およびデータ転送装置を内蔵した半導体集積回路装置に適用することができる。
【０４２６】
また、上述の実施の形態の記載及び図面は、説明の明確化のため、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、任意の回路構成を有するハードウェアで構成することができ、メモリにロードされたプログラムなどソフトウェアによって実現することもできる。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【０４２７】
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（ｔａｎｇｉｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【０４２８】
１００  ＭＣＵ
１０１  ＣＰＵ
１０２  ＤＴＣ
１０３  ＩＮＴ
１０４  ＲＯＭ
１０５  ＲＡＭ
１０６  ＢＳＣ
１０７  タイマ
１０８  通信モジュール
１０９  アナログモジュール
１１０  Ｉ／Ｏ
１１１  ＣＰＧ
１１２  デジタルモジュール
【図１】
0006433191.tif 000002
【図２】
0006433191.tif 000003
【図３】
0006433191.tif 000004
【図４】
0006433191.tif 000005
【図５】
0006433191.tif 000006
【図６】
0006433191.tif 000007
【図７】
0006433191.tif 000008
【図８】
0006433191.tif 000009
【図９】
0006433191.tif 000010
【図１０】
0006433191.tif 000011
【図１１】
0006433191.tif 000012
【図１２】
0006433191.tif 000013
【図１３】
0006433191.tif 000014
【図１４】
0006433191.tif 000015
【図１５】
0006433191.tif 000016
【図１６】
0006433191.tif 000017
【図１７】
0006433191.tif 000018
【図１８】
0006433191.tif 000019
【図１９】
0006433191.tif 000020
【図２０】
0006433191.tif 000021
【図２１】
0006433191.tif 000022
【図２２】
0006433191.tif 000023
【図２３】
0006433191.tif 000024
【図２４】
0006433191.tif 000025
【図２５】
0006433191.tif 000026
【図２６】
0006433191.tif 000027
【図２７】
0006433191.tif 000028
【図２８】
0006433191.tif 000029
【図２９】
0006433191.tif 000030
【図３０】
0006433191.tif 000031
【図３１】
0006433191.tif 000032
【図３２】
0006433191.tif 000033
【図３３】
0006433191.tif 000034
【図３４】
0006433191.tif 000035
【図３５】
0006433191.tif 000036
【図３６】
0006433191.tif 000037
【図３７】
0006433191.tif 000038
【図３８】
0006433191.tif 000039
【図３９】
0006433191.tif 000040
【図４０】
0006433191.tif 000041
【図４１】
0006433191.tif 000042
【図４２】
0006433191.tif 000043
【図４３】
0006433191.tif 000044
【図４４Ａ】
0006433191.tif 000045
【図４４Ｂ】
0006433191.tif 000046
【図４５】
0006433191.tif 000047
【図４６】
0006433191.tif 000048
【図４７】
0006433191.tif 000049
【図４８】
0006433191.tif 000050