(57)【要約】【課題】複数のデータを同時に処理する演算器に対し、演算に要する複数のデータを効率的に与えること。【解決手段】データ転送装置３は、起動要求を受けたときに、データ転送情報に基づいて、転送元アドレス領域から複数のデータを順に読み込み、読み込んだ複数のデータを読み込んだ順に転送先アドレス領域へデータ転送する転送動作を行うデータ転送装置である。データ転送装置３は、第１の転送動作で第１の複数のデータを転送し、第１の転送動作に続く第２の転送動作で第２の複数のデータを転送する。第２の複数のデータのうち最も早く読み込んだ第２のデータは、第１の複数のデータのうち最も早く読み込んだ第１のデータよりも後に読み込んだデータである。【選択図】図１Ｂ
2018085130.tif 000002
【特許請求の範囲】
【請求項１】
起動要求を受けたときに、データ転送情報に基づいて、転送元アドレス領域から複数のデータを順に読み込み、読み込んだ前記複数のデータを読み込んだ順に転送先アドレス領域へデータ転送する転送動作を行うデータ転送装置であって、
前記転送動作である第１の転送動作で第１の複数のデータを転送し、
前記第１の転送動作に続く第２の転送動作で第２の複数のデータを転送し、
前記第２の複数のデータのうち最も早く読み込んだ第２のデータは、前記第１の複数のデータのうち最も早く読み込んだデータよりも後に読み込んだデータである、
データ転送装置。
【請求項２】
請求項１に記載のデータ転送装置と、
データ入出力部と、
割り込み制御手段と、を備え
前記データ入出力部は、前記割り込み制御手段に対して割込み要求を行い、
前記割り込み制御手段は、前記割り込み要求に応じて、前記データ転送装置に対して起動要求を出力する、
半導体装置。
【請求項３】
中央処理装置を更に備え、
前記割り込み制御手段は、前記データ転送装置がデータ転送を終了したら、前記中央処理装置に割込み要求を出力する、
請求項２に記載の半導体装置。
【請求項４】
起動要求を受けたときに、データ転送情報に基づいて、転送元アドレス領域から複数のデータを順に読み込み、読み込んだ前記複数のデータを読み込んだ順に転送先アドレス領域へデータ転送する転送動作を行うデータ転送装置であって、
前記転送元アドレス領域は前記データ転送情報に基づいて設定された第１の転送元アドレスから開始する領域であって、
前記転送動作である第１のデータ転送動作で、前記第１の転送元アドレスから順に前記転送元アドレス領域の第１の複数のデータを読み込み、読み込んだ前記第１の複数のデータを読み込んだ順に前記転送先アドレス領域へデータ転送し、
前記第１のデータ転送動作に続く第２のデータ転送動作で、前記第１の転送元アドレスとは異なる第２の転送元アドレスから順に前記転送元アドレス領域の第２の複数のデータを読み込み、読み込んだ前記第２の複数のデータを読み込んだ順に前記転送先アドレス領域へデータ転送する
データ転送装置。
【請求項５】
前記第２の複数のデータのうち最も早く読み込んだデータは、前記第１の複数のデータのうち最も早く読み込んだデータよりも後に読み込んだデータである、
請求項４記載のデータ転送装置。
【請求項６】
転送元アドレスを設定する転送元アドレス指定レジスタと、
転送先アドレスを設定する転送先アドレス指定レジスタと、
ブロックサイズを設定するブロックサイズカウントレジスタと、
を備え、
起動要求を受けたときに、データ転送情報に基づいて前記転送元アドレス、前記転送先アドレスおよび前記ブロックサイズが設定され、
第１のデータ転送動作において、
前記転送元アドレス指定レジスタに設定される第１の転送元アドレスを先頭アドレスとして、前記第１の転送元アドレスをインクリメントもしくはデクリメントしながら、前記ブロックサイズに基づき指定される転送元アドレス領域の複数のデータを順に読み込み、
前記転送先アドレス指定レジスタに設定される前記転送先アドレスを先頭アドレスとして、前記転送先アドレスを順にインクリメントもしくはデクリメントしながら、前記ブロックサイズに基づき指定される転送先アドレス領域へ、読み込んだ前記複数のデータを読み込んだ順に転送するデータ転送動作を行い、
前記データ転送動作終了後に、前記第１の転送元アドレスとは異なる前記転送元アドレス領域内の第２の転送元アドレスを前記転送元アドレス指定レジスタに設定する
データ転送装置。
【請求項７】
前記第１のデータ転送動作に続く第２のデータ転送動作において、
前記第２の転送元アドレスを先頭アドレスとして、前記転送元アドレス領域の前記複数のデータを、前記第２の転送元アドレスをインクリメントもしくはデクリメントしながら順に読み込み、
前記転送先アドレス領域へ、前記転送先アドレスを順にインクリメントもしくはデクリメントしながら前記複数のデータを読み込んだ順にデータ転送する
請求項６に記載のデータ転送装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ転送装置及び半導体装置に関し、例えばマイクロコンピュータに関する。
【背景技術】
【０００２】
一般に、シングルチップマイクロコンピュータは、中央処理装置（ＣＰＵ：Central Processing Unit）を中心にして、プログラム保持用のＲＯＭ（Read Only Memory：リードオンリメモリ）、データ保持用のＲＡＭ（Random Access Memory：ランダムアクセスメモリ）、及びデータ又は信号の入出力を行うための入出力回路などの機能ブロックが、一つの半導体基板上に形成されている。このようなシングルチップマイクロコンピュータは、様々な機器制御に用いられる。
【０００３】
シングルチップマイクロコンピュータの機器制御において、割り込みなどのイベントに呼応して、データ転送を行う要求がある。ＣＰＵは命令の組み合わせによって任意の処理を実現できるものの、割り込み処理を行う場合には、処理の流れを切り替えるために例外処理、スタックの退避・復帰処理、復帰命令の実行が必要になる。この場合、データ転送行う際の命令リードなどのＣＰＵの動作時間が大きくなりがちである。
【０００４】
上記のデータ転送の問題点を解消するため、シングルチップマイクロコンピュータにデータ転送装置を設け、少ないハードウェアで多数の周辺処理装置（入出力回路）からの要求に応じたデータ転送を行う技術が提案されている（特許文献１）。この技術では、転送すべきデータが格納されているメモリの位置を示す転送元アドレスなどのデータ転送情報が、記憶装置（ＲＡＭ）に格納される。また、データ転送に必要なすべての情報が記憶装置（ＲＡＭ）のどこに格納してあるかを示すアドレスを格納するベクタテーブルが設けられる。そして、データ転送の起動要求があった場合に、起動要求に対応してベクタテーブルの内容を参照する手段と、ベクタテーブルの内容からデータ転送に必要なすべての情報を得る手段が設けられる。この技術では、少ないハードウェアでデータ転送を実現することができるが、データ転送の内容については考慮されていない。
【０００５】
これに対し、データ転送装置でのデータ転送の応用範囲を広げるため、データ転送のモードによって異なるデータ転送を行う技術も提案されている（特許文献２）。この技術では、データ転送のモードとして、リピート転送モード、ブロック転送モードが提案されている。これにより、転送先や転送元のアドレスの制御や、転送回数の選択などを行うことが可能である。例えば、本技術をプリンタなどのシステムに適用すれば、ステッピングモータの制御、プリンタの印字データ制御が可能である。また、受信データのメモリへの蓄積に好適である。また、この技術では、データ転送情報を、データ転送装置内部に専用のハードウェアとして保有し、このハードウェアを有効に利用するため、ショートアドレスモード／フルアドレスモードの転送情報の構成を選択可能にすることも示されている。本例では、ステッピングモータは回転角と移動量が対応しており、フィードバックが不要であり、所定の数のデータを、所定の順番で転送することができればよい。本技術では、転送元アドレス及び転送先アドレスの一方はＲＡＭなどとなるが、ＲＡＭの記憶内容を更新しながら使用することは考えられていない。
【０００６】
データ転送に必要な情報を記憶装置に格納して、データ転送装置の１回の動作で、少なくとも１つ以上の情報によるデータ転送が指定可能（チェイン転送ないしチェイン動作）な技術も提案されている（特許文献３）。本技術によれば、任意の起動要因で、任意の数の転送を可能としたことにより、様々な用途に適用可能となる。その結果、システム構成上の自由度を向上し、使い勝手を向上させることができる。
【０００７】
データ転送装置内にあらかじめ設定したデータと転送するデータとの間で比較や簡単な演算が行える演算器を内蔵した技術も提案されている（特許文献４）。この技術では、データ転送を、専用のハードウェアであるデータ転送装置で実行するので、ＣＰＵより高速なデータ転送を実現できる。その結果、ＣＰＵの割り込み処理の頻度を低減できるので、効率的な処理を行うことができる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平１−１２５６４４号公報
【特許文献２】特開平５−３０７５１６号公報
【特許文献３】特開平７−１２９５３７号公報
【特許文献４】特開２０００−１９４６４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ところが、発明者らは、上述の技術には、以下に示す問題点が有ることを見出した。近年、マイクロコンピュータが内蔵する機能及び制御対象は増加しており、マイクロコンピュータの制御もより高い精度が求められるようになっている。このため、ＦＩＲ（Finite Impulse Response）フィルタ演算やＩＩＲ（Infinite Impulse Response）フィルタ演算を行うことが求められる。こうしたフィルタ演算は、積和演算で実現される。フィルタ演算は、ＣＰＵが所定の割り込み（イベント）などに呼応して行うこともできるが、ＣＰＵがデータ転送を行う場合と同様に、ＣＰＵの効率的な処理を阻害する。
【００１０】
また、マイクロコンピュータの制御対象は多いので、フィルタ演算も制御対象ごとに実行する必要がある。フィルタ演算器をハードウェアとして設ける場合、物理的な規模の増加の抑制の観点から、１つのフィルタ演算器を複数の制御対象に利用できることが望ましい。また、フィルタ演算においては、時間的にサンプリングされた複数の時系列データをフィルタ演算器に入力することになる。よって、１つのフィルタ演算器を複数の制御対象に利用するには、使用する複数のデータを、フィルタ演算に先立ってフィルタ演算器に与える必要がある。また、積和演算の係数は、制御対象毎に変更する必要がある場合が考え得る。よって、積和演算の係数についても、フィルタ演算に先立ってフィルタ演算器に与える必要がある。
【００１１】
フィルタ演算器の演算が高速であるとしても、フィルタ演算器にデータを与えるのに時間を要してしまうと、フィルタ演算器の処理の律速要因となる。その結果、マイクロコンピュータ全体としての処理ないし制御動作の高速化を実現することができない。そのため、マイクロコンピュータにおいて、フィルタ演算のような複数のデータを用いた演算を行う場合、演算器に効率的にデータを入力する技術の確立が必要である。
【００１２】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１３】
一実施の形態によれば、データ転送装置は、起動要求を受けたときに、データ転送情報に基づいて、転送元アドレス領域から複数のデータを順に読み込み、読み込んだ前記複数のデータを読み込んだ順に転送先アドレス領域へデータ転送する転送動作を行うデータ転送装置であって、前記転送動作である第１の転送動作で第１の複数のデータを転送し、前記第１の転送動作に続く第２の転送動作で第２の複数のデータを転送し、前記第２の複数のデータのうち最も早く読み込んだ第２のデータは、前記第１の複数のデータのうち最も早く読み込んだデータよりも後に読み込んだデータであるものである。
【００１４】
一実施の形態によれば、データ転送装置は、起動要求を受けたときに、データ転送情報に基づいて、転送元アドレス領域から複数のデータを順に読み込み、読み込んだ前記複数のデータを読み込んだ順に転送先アドレス領域へデータ転送する転送動作を行うデータ転送装置であって、前記転送元アドレス領域は前記データ転送情報に基づいて設定された第１の転送元アドレスから開始する領域であって、前記転送動作である第１のデータ転送動作で、前記第１の転送元アドレスから順に前記転送元アドレス領域の第１の複数のデータを読み込み、読み込んだ前記第１の複数のデータを読み込んだ順に前記転送先アドレス領域へデータ転送し、前記第１のデータ転送動作に続く第２のデータ転送動作で、前記第１の転送元アドレスとは異なる第２の転送元アドレスから順に前記転送元アドレス領域の第２の複数のデータを読み込み、読み込んだ前記第２の複数のデータを読み込んだ順に前記転送先アドレス領域へデータ転送するものである。
【００１５】
一実施の形態によれば、データ転送装置は、転送元アドレスを設定する転送元アドレス指定レジスタと、転送先アドレスを設定する転送先アドレス指定レジスタと、ブロックサイズを設定するブロックサイズカウントレジスタと、有し、起動要求を受けたときに、データ転送情報に基づいて前記転送元アドレス、前記転送先アドレスおよび前記ブロックサイズが設定され、第１のデータ転送動作において、前記転送元アドレス指定レジスタに設定される第１の転送元アドレスを先頭アドレスとして、前記第１の転送元アドレスをインクリメントもしくはデクリメントしながら、前記ブロックサイズに基づき指定される転送元アドレス領域の複数のデータを順に読み込み、前記転送先アドレス指定レジスタに設定される前記転送先アドレスを先頭アドレスとして、前記転送先アドレスを順にインクリメントもしくはデクリメントしながら、前記ブロックサイズに基づき指定される転送先アドレス領域へ、読み込んだ前記複数のデータを読み込んだ順に転送するデータ転送動作を行い、前記データ転送動作終了後に、前記第１の転送元アドレスとは異なる前記転送元アドレス領域内の第２の転送元アドレスを前記転送元アドレス指定レジスタに設定するものである。
【発明の効果】
【００１６】
一実施の形態によれば、複数のデータを同時に処理する演算器に対し、演算に要する複数のデータを効率的に与えることができる。
【図面の簡単な説明】
【００１７】
【図１Ａ】実施の形態１にかかるマイクロコンピュータの構成を模式的に表したブロック図である。
【図１Ｂ】実施の形態１にかかるマイクロコンピュータ１００のうち、データ転送にかかる部分を表示した図を示す。
【図２】データ転送情報の構成を示す図である。
【図３】データ転送装置（ＤＴＣ）の構成を模式的に表したブロック図である。
【図４】転送モードの概要を示す図である。
【図５】シフトブロックモードでのデータ転送装置（ＤＴＣ）のデータ転送動作を示す図である。
【図６】シフトブロックモードでのデータ転送装置（ＤＴＣ）のデータ転送動作を示す図である。
【図７】シフトブロックモードでのデータ転送装置（ＤＴＣ）のデータ転送動作を示す図である。
【図８】データ転送装置（ＤＴＣ）の状態遷移図を示す図である。
【図９】データ転送装置（ＤＴＣ）のシフトブロックモードのデータ転送の内部動作の第１の例を示す図である。
【図１０】データ転送装置（ＤＴＣ）のシフトブロックモードのデータ転送の内部動作の第２の例を示す図である。
【図１１】シフトブロックモードでのデータ転送装置（ＤＴＣ）のデータ転送の動作例を示す図である。
【図１２】実施の形態２にかかるフィルタ演算器（ＦＬＴ）の構成を模式的に表したブロック図を示す。
【図１３】実施の形態２にかかるフィルタ演算器（ＦＬＴ）の使用例を示す図である。
【図１４】実施の形態３にかかるフィルタ演算器（ＦＬＴ）の構成を模式的に表したブロック図を示す。
【図１５】実施の形態３にかかるフィルタ演算器（ＦＬＴ）の使用例を示す図である。
【図１６】実施の形態４にかかるフィルタ演算器（ＦＬＴ）の構成を模式的に表したブロック図である。
【図１７】実施の形態４にかかるフィルタ演算器（ＦＬＴ）の使用例を示す図である。
【図１８】実施の形態５にかかるデータ転送情報の構成を模式的に示す図である。
【図１９】ブロックバッファモードでのデータ転送装置（ＤＴＣ）の動作を示す図である。
【図２０】ブロックバッファモードでのフィルタ演算器（ＦＬＴ）の使用例を示す図である。
【図２１】実施の形態６にかかるデータ転送情報の構成を模式的に示す図である。
【図２２】デュアルブロックモードでのデータ転送装置（ＤＴＣ）のラウンド動作を示す図である。
【図２３】デュアルブロックモードのラウンド動作を用いる場合のフィルタ演算器（ＦＬＴ）の使用例を示す図である。
【図２４】割り込みコントローラ（ＩＮＴ）のブロック図である。
【図２５】マイクロコンピュータ（ＭＣＵ）を含むカメラシステムのブロック図である。
【発明を実施するための形態】
【００１８】
以下、図面を参照して本発明の実施の形態について説明する。各図面においては、同一要素には同一の符号が付されており、必要に応じて重複説明は省略される。
【００１９】
実施の形態１
実施の形態１にかかるマイクロコンピュータ１００について説明する。図１Ａに、実施の形態１にかかるマイクロコンピュータ１００の構成を模式的に表したブロック図を示す。図１Ｂに、実施の形態１にかかる半導体装置であるマイクロコンピュータ１００のうち、データ転送にかかる部分を表示した図を示す。以下、図１を参照して、マイクロコンピュータ１００の構成を説明する。なお、マイクロコンピュータは、以下ではＭＣＵ（Micro Controller Unit）と略記する。
【００２０】
ＭＣＵ１００は、中央処理装置（ＣＰＵ）１、割り込みコントローラ（Interrupt Controller：以下、ＩＮＴと称する）２、データ転送装置（データトランスファコントローラ（Data Transfer Controller：以下、ＤＴＣと称する））３、リードオンリメモリ（ＲＯＭ）４、ランダムアクセスメモリ（ＲＡＭ）５、バスコントローラ（Bus Controller：以下、ＢＳＣと称する）６、タイマ７、通信モジュール８、アナログモジュール９、入出力ポート（Ｉ／Ｏ）１０、内部バス１１及びフィルタ演算器（以下、ＦＬＴと称する）２１などを有する。通信モジュール８として、例えばシリアルコミュニケーションインタフェースなどが設けられる。アナログモジュール９として、例えばアナログ／デジタル（Ａ／Ｄ）変換器およびデジタル／アナログ（Ｄ／Ａ）変換器などが設けられる。
【００２１】
ＭＣＵ１００では、動作の主体となるのはＣＰＵ１である。ＣＰＵ１は、主にＲＯＭ４から命令を読込んで動作する。ＤＴＣ３は、ＣＰＵ１の設定に基づき、ＣＰＵ１に代ってデータ転送を行う。
【００２２】
ＩＮＴ２は、タイマ７、通信モジュール８及びアナログモジュール９などからの割み込み要求や、ＭＣＵ１００の外部からの複数の外部割り込み要求信号に基づくＩ／Ｏ１０からの割り込み要求を受けて、ＣＰＵ１又はＤＴＣ３に割り込み要求又はデータ転送要求を出力する。また、ＩＮＴ２は、割り込み信号による処理を開始又は終了したときに、割り込みをクリアする信号である割込みクリア信号を、タイマ７、通信モジュール８、アナログモジュール９及びＩ／Ｏ１０のそれぞれの割込み信号又は割り込み要因フラグに対応して出力する。
【００２３】
ＢＳＣ６は、ＣＰＵ１及びＤＴＣ３からのバスリクエスト信号を受けて、内部バス１１の占有に対する調停をして、バス使用許可信号を出力する。ＢＳＣ６は、ＣＰＵ１及びＤＴＣ３と、バスリクエスト、バスアクノレジ、バスコマンド、ウェイト、アドレス及びデータなどのインタフェースを行い、内部バス１１に接続されたＲＡＭやその他の機能ブロック及びモジュールに対するリード／ライトを実現する。
【００２４】
ＦＬＴ２１は、内部バス１１によってリード／ライト可能な複数のデータレジスタを有し、データレジスタに与えられたデータに従って、積和演算などを行う。
【００２５】
上述の通り、ＤＴＣ３は、データ転送情報に基づいて、データ転送を行う。図２に、データ転送情報の構成を示す。データ転送情報は、モードレジスタ（ＭＲとも称する）、ソースアドレスレジスタ（ＳＡＲとも称する）、デスティネーションレジスタ（ＤＡＲとも称する）及び転送カウントレジスタ（ＣＲとも称する）からなる。
【００２６】
ＭＲは、ＤＴＣ３が行うデータ転送のモードを指定する。ＤＴＣ３は、ＭＲが指定するデータ転送のモードによって、ＳＡＲ、ＤＡＲ及びＣＲのうちから必要なデータを利用する。
【００２７】
ＣＲは、ブロック転送カウントレジスタ（ＢＴＣＲとも称する）と転送カウントレジスタ（ＴＣＲとも称する）とに分割される。ＢＴＣＲは、８ビットのＢＴＣＲＨと８ビットのＢＴＣＲＬとに分割される。ＴＣＲは、８ビットのＴＣＲＨと８ビットのＴＣＲＬと に分割される。
【００２８】
これらのレジスタは、１組分の回路がＤＴＣ３の内部に存在し、特に制限はされないものの、ＣＰＵ１のアドレス空間上には存在しない。これらのレジスタに格納されるべきデータ転送情報は、必要組数がＣＰＵ１のアドレス空間上の、ＲＡＭ５などの所定のデータ転送情報配置領域に配置される。
【００２９】
次いで、ＭＲのビット構成について説明する。ＭＲのビット１５及びビット１４は、それぞれＳＭ１ビット及びＳＭ０ビットであり、データ転送後にＳＡＲをインクリメントするか、デクリメントするか、又は固定にするかを指定する。
【００３０】
ＭＲのビット１３及びビット１２は、ＤＭ１ビット及びＤＭ０ビットであり、データ転送後にＤＡＲをインクリメントするか、デクリメントするか、又は固定にするかを指定する。
【００３１】
ＭＲのビット１１はＤＩＲビットであり、転送元または転送先のアドレス制御を指定する。
【００３２】
ＭＲのビット１０〜８は、それぞれＴＭＤ２ビット、ＴＭＤ１ビット及びＴＭＤ０ビットであり、データの転送モードを指定する。ＴＭＤ２〜０ビットが「０００」のとき、転送モードはノーマルモードとなる。ＴＭＤ２〜０ビットが「００１」のとき、転送モードはリピートモードとなる。ＴＭＤ２〜０ビットが「１００」とき、転送モードはブロック転送モードとなる。ＴＭＤ２〜０ビットが「１０１」とき、転送モードはデュアルブロックモードとなる。ＴＭＤ２〜０ビットが「１１０」とき、転送モードはシフトブロックモードとなる。各転送モードの詳細については、後述する。
【００３３】
ＭＲのビット７及び６は、それぞれＳｚ１ビット及びＳｚ０ビットであり、１回のデータ転送をバイトサイズ、ワードサイズ及びロングワードサイズのいずれで行うかを指定する。
【００３４】
ＭＲのビット１はＮＸＴＥ１ビットであり、１つの起動要因に対してデータ転送を終了するか、次のデータ転送を行うかを指定する。ＮＸＴＥ１ビットを０にクリアした場合、データ転送情報リード及びデータ転送後、データ転送情報をライトしてＤＴＣ３の動作を終了する。ＮＸＴＥ１ビットを１にセットした場合、データ転送情報リード及びデータ転送後、データ転送情報をライトする。更に、連続したアドレスからデータ転送情報をリードする。そして、このデータ転送情報で指定されるデータ転送を行った後、データ転送情報をライトする。このように、データ転送情報のライト、データ転送及びデータ転送情報のライトの一連の処理を複数回連続して行う動作を、チェイン動作と称する。ＭＲのビット０はＮＸＴＥ０ビットであり、ＣＲが０になったときに、チェイン動作を行うかを指定する。
【００３５】
ＤＴＣ３の構成について説明する。図３に、ＤＴＣ３の構成を模式的に表したブロック図を示す。ＤＴＣ３は、データ転送制御ブロック（ＤＴＣＣＮＴとも称する）３１、バスインタフェース（ＢＩＦとも称する）３２、ベクタ生成ブロック（ＶＧとも称する）３３、ベクタアドレスレジスタ（ＶＡＲとも称する）３４、ＭＲ、ＳＡＲ、ＤＡＲ、ＣＲ、テンポラリレジスタ（ＴＲとも称する）、演算器（ＡＬＵとも称する）３５及び内部バス３６を有する。内部バス６は、内部バスＢＳ１〜ＢＳ５を含む。
【００３６】
ＤＴＣＣＮＴ３１は、ＩＮＴ２からの起動要求信号ＤＣＴＲＥＱ及びＭＲの内容に基づき、ＤＴＣ３の制御を行う。
【００３７】
ＢＩＦ３２は、ＤＴＣ３の内部バス３６とＭＣＵ１００の内部バス１１とのインタフェースを行う。このインタフェースには、バスリクエスト、バスアクノレジ、バスコマンド、ウェイト、アドレス、データなどが含まれる。
【００３８】
ＶＧ３３は、ＩＮＴ２から与えられるベクタ番号ＤＴＣＶＥＣに従って、ベクタアドレスを生成する。例えば、ベクタ番号ＤＴＣＶＥＣを４倍などとし、所定のオフセットを加算する。
【００３９】
ＶＡＲ３４は、ベクタアドレスからリードしたデータ転送情報の先頭アドレスを格納する。
【００４０】
ＭＲ、ＳＡＲ、ＤＡＲ及びＣＲは、データ転送情報の先頭アドレスから順次リードしたデータ転送情報を格納する。
【００４１】
ＡＬＵ３５は、論理演算、シフト及び算術演算などの機能を持ち、所定の順序でこれらの演算を実行する。
【００４２】
また、内部バスＢＳ１〜ＢＳ５を介して、ＳＡＲ、ＤＡＲ、ＣＲ及びＴＲの内容を、ＡＬＵ３５に与えることができる。ＡＬＵ３５は、与えられた情報に基づいた演算を行う。
【００４３】
以下、ＡＬＵ３５について説明する。ＡＬＵ３５は、インクリメンタ（ＩＮＣとも称する）４１、シフタ（ＳＦＴとも称する）４２、算術演算器（ＡＵとも称する）４３、デクリメンタ（ＤＥＣとも称する）４４を有する。その他、ＡＬＵ３５には、論理演算器などを設けることも可能である。
【００４４】
転送元アドレスのリード、転送先アドレスのライトのためのアドレス出力は、内部バスＢＳ１を用いて行われる。ＩＮＣ４１は、内部バスＢＳ１を介して入力するＳＭ１ビット、ＳＭ０ビット、ＤＭ１ビット及びＤＭ０ビットの指定に基づいて、ＳＡＲ及びＤＡＲのインクリメント／デクリメントを行う。ＩＮＣ４１は、ＳＡＲ及びＤＡＲをインクリメント／デクリメントした結果を、内部バスＢＳ３を介して、それぞれＳＡＲ及びＤＡＲに格納する。
【００４５】
ＳＦＴ４２は、内部バスＢＳ２を介して入力するＳｚ１ビット及びＳｚ０ビットに基づいて、ＴＣＲＬの内容をシフトする。ＡＵ４３は、ＩＮＣ４１の出力とＳＦＴ４２の出力とを加算又は減算する。ＡＵ４３は、演算結果を、内部バスＢＳ３を介して、ＳＡＲ又はＤＡＲに格納する。
【００４６】
ＣＲ、ＴＣＲＨ、ＴＲ及びＢＴＣＲの内容は、内部バスＢＳ４に出力される。ＤＥＣ４４は、内部バスＢＳ４を介して入力するＣＲ、ＴＣＲＨ、ＴＲ及びＢＴＣＲをデクリメントする。そして、ＤＥ４５は、ＣＲ、ＴＣＲＨ、ＴＲ及びＢＴＣＲのデクリメント結果を、内部バスＢＳ５を介して、ＣＲ、ＴＣＲＨ、ＴＲ及びＢＴＣＲのそれぞれに格納する。
【００４７】
次に、転送モードについて説明する。図４に、転送モードの概要を示す。
【００４８】
ノーマルモード
ＴＭＤ２〜０ビットが「０００」の場合、転送モードはノーマルモードとなる。ノーマルモードでは、１回の起動で、ＳＡＲで示される転送元アドレスからＤＡＲで示される転送先アドレスへ、１回のデータ転送を行う。データ転送の終了後、ＳＡＲは、ＳＭ１ビット及びＳＭ０ビットに応じて、インクリメント、デクリメント又は固定される。ＤＡＲは、ＤＭ１ビット及びＤＭ０ビットに応じて、インクリメント、デクリメント又は固定される。その後、ＴＣＲがデクリメントされる。
【００４９】
ノーマルモードでは、以上で説明したデータ転送とレジスタ操作を、起動要因が発生するごとに、ＴＣＲで指定された回数だけ繰り返す。
【００５０】
ＣＲで指定された回数だけ繰り返し動作を行った後、起動要因となった割り込みがＣＰＵに要求される。
【００５１】
リピートモード
ＴＭＤ２〜０ビットが「００１」の場合、転送モードはリピートモードとなる。ＤＩＲビットが０にクリアされている場合、転送元アドレスをリピート領域として設定する。ＤＩＲビットが１にセットされている場合、転送先アドレスをリピート領域として設定する。リピートモードでは、ＴＣＲＨを転送カウントレジスタ、ＴＣＲＬを転送回数保持レジスタとして使用する。リピート領域の大きさは、ＴＣＲＨで指定される。データ転送の開始前には、ＴＣＲＨとＴＣＲＬとには、同じ値が初期値として設定される。
【００５２】
リピートモードでは、１回の起動で、ＳＡＲで示される転送元アドレスからＤＡＲで示される転送先アドレスへ、１回のデータ転送を行う。データ転送の終了後、ＳＡＲは、ＳＭ１ビット及びＳＭ０ビットに応じて、インクリメント、デクリメント又は固定される。ＤＡＲは、ＤＭ１ビット及びＤＭ０ビットに応じて、インクリメント、デクリメント又は固定される。その後、ＴＣＲ（ＴＣＲＨ）がデクリメントされる。リピートモードでは、以上で説明したデータ転送とレジスタ操作を、起動要因が発生するごとに、ＴＣＲ（ＴＣＲＨ及びＴＣＲＬ）で指定された回数だけ繰り返す。
【００５３】
指定された回数のデータ転送が終了すると、ＴＣＲＨは０となる。その後、ＴＣＲＬに保持した内容に基づいて、ＳＡＲ、ＤＡＲ及びＴＣＲＨの一部又は全部の初期設定値が回復される。
【００５４】
ＴＣＲＨが０になった場合、ＴＣＲＬの内容が転送カウンタレジスタのＴＣＲＨに転送される。これにより、ＴＣＲＨは初期値に回復される。また、ＳＡＲ又はＤＡＲは、以下の演算により、初期設定値に回復される。
【００５５】
ＤＩＲビットが１にセットされているとき、式（１）に示す演算ＯＰ１が行われ、ＳＡＲは初期設定値に回復される。
【数１】
2018085130.tif 000003
【００５６】
ＤＩＲビットが０にクリアされているとき、式（２）に示す演算ＯＰ２が行われ、ＤＡＲは初期設定値に回復される。
【数２】
2018085130.tif 000004
【００５７】
上記の演算を行うには、リピート領域に指定したＳＡＲ又はＤＡＲに対して、ＴＣＲＬの内容を、内部バスＢＳ２を介してＡＬＵ３５に入力する。そして、ＳＦＴ４２が、Ｓｚ１ビットと及びＳｚ０ビットの指定に基づいて、ＴＣＲＬをシフトする。そして、ＡＵ４３がＳＦＴ４２の出力とＩＮＣ４１の出力と加算又は減算することで実現される。
【００５８】
ブロック転送モード
ＴＭＤ２〜０ビットが「１００」の場合、転送モードはブロック転送モードとなる。ＤＩＲビットが０にクリアされている場合、転送元アドレスをブロック領域として設定する。ＤＩＲビットが１にセットされている場合、転送先アドレスをブロック領域として設定する。ブロック転送モードでは、ＳＡＲを転送元アドレス指定レジスタ、ＤＡＲを転送先アドレス指定レジスタ、ＴＣＲＨ（８ビット）をブロックサイズカウントレジスタ、ＴＣＲＬをブロックサイズ保持レジスタ、ＢＴＣＲをブロック転送カウントレジスタとして使用する。
【００５９】
ブロック転送モードでは、１回の起動で、ＳＡＲで示される転送元アドレスからＤＡＲで示される転送先アドレスへ、ブロックサイズ分のデータ転送を行う。データ転送ごとに、ＳＡＲは、ＳＭ１ビット及びＳＭ０ビットに応じて、インクリメント、デクリメント又は固定される。ＤＡＲは、ＤＭ１ビット及びＤＭ０ビットに応じて、インクリメント、デクリメント又は固定される。その後、ＴＣＲ（ＴＣＲＨ）がデクリメントされる。
【００６０】
指定された回数のデータ転送が終了すると、ＴＣＲＨが０となる。この場合、リピートモードと同様に、ＴＣＲＬに保持した内容に基づいて、ＳＡＲ、ＤＡＲ及びＴＣＲＨの一部又は全部の初期設定値が回復される。
【００６１】
また、ブロック領域のデータ転送が終了すると、ＢＴＣＲ（ＢＴＣＲＨ及びＢＴＣＲＬ）をデクリメントする。ブロック転送モードでは、以上で説明したブロック領域のデータ転送を、起動要因が発生するごとに、ＢＴＣＲ（ＢＴＣＲＨ及びＢＴＣＲＬ）で指定された回数だけ（ＢＴＣＲがゼロになるまで）繰り返す。
【００６２】
ブロックエリア分のデータ転送が終了すると、ＢＴＣＲＨがデクリメントされる。ＢＴＣＲＨが０になると、ＢＴＣＲＬに保持した内容に基づいて、ＢＴＣＲＨの初期設定値が回復される。
【００６３】
デュアルブロックモード
ＴＭＤ２〜０ビットが「１０１」の場合、転送モードはデュアルブロックモードとなる。デュアルブロックモードでは、ＤＩＲビットによらず、転送元アドレス及び転送先アドレスがブロック領域となる。デュアルブロックモードでは、ブロック転送モードと同様に、ＳＡＲを転送元アドレス指定レジスタ、ＤＡＲを転送先アドレス指定レジスタ、ＴＣＲＨ（８ビット）をブロックサイズカウントレジスタ、ＴＣＲＬをブロックサイズ保持レジスタ、ＢＴＣＲをブロック転送カウントレジスタとして使用する。
【００６４】
デュアルブロックモードでは、ブロック転送モードと同様に、１回の起動で、ＳＡＲで示される転送元アドレスからＤＡＲで示される転送先アドレスへ、ブロックサイズ分のデータ転送を行う。データ転送ごとに、ＳＡＲは、ＳＭ１ビット及びＳＭ０ビットに応じて、インクリメント、デクリメント又は固定される。ＤＡＲは、ＤＭ１ビット及びＤＭ０ビットに応じて、インクリメント、デクリメント又は固定される。その後、ＴＣＲ（ＴＣＲＨ）がデクリメントされる。
【００６５】
指定された回数のデータ転送が終了すると、ＴＣＲＨが０となる。この場合、リピートモードと同様に、ＴＣＲＬに保持した内容に基づいて、ＳＡＲ、ＤＡＲ及びＴＣＲＨの一部又は全部の初期設定値が回復される。
【００６６】
また、ブロック領域のデータ転送が終了すると、ＢＴＣＲ（ＢＴＣＲＨ及びＢＴＣＲＬ）をデクリメントする。ブロック転送モードでは、以上で説明したブロック領域のデータ転送を、起動要因が発生するごとに、ＢＴＣＲ（ＢＴＣＲＨ及びＢＴＣＲＬ）で指定された回数だけ（ＢＴＣＲがゼロになるまで）繰り返す。
【００６７】
ブロックエリア分のデータ転送が終了すると、ＢＴＣＲＨがデクリメントされる。ＢＴＣＲＨが０になると、ＢＴＣＲＬに保持した内容に基づいて、ＢＴＣＲＨの初期設定値が回復される。
【００６８】
シフトブロックモード
ＴＭＤ２〜０ビットが「１１０」の場合、転送モードはシフトブロックモードとなる。ＤＩＲビットが０にクリアされている場合、転送元アドレスをローテーション付ブロック領域として、転送先アドレスをブロック領域として設定する。ＤＩＲビットが１にセットされている場合、転送元アドレスをブロック領域として、転送先アドレスをローテーション付ブロック領域として設定する。シフトブロックモードでは、ブロック転送モードと同様に、ＳＡＲを転送元アドレス指定レジスタ、ＤＡＲを転送先アドレス指定レジスタ、ＴＣＲＨ（８ビット）をブロックサイズカウントレジスタ、ＴＣＲＬをブロックサイズ保持レジスタ、ＢＴＣＲをブロック転送カウントレジスタとして使用する。
【００６９】
シフトブロックモードでは、ブロック転送モードと同様に、１回の起動で、ＳＡＲで示される転送元アドレスからＤＡＲで示される転送先アドレスへ、ブロックサイズ分のデータ転送を行う。データ転送ごとに、ＳＡＲは、ＳＭ１ビット及びＳＭ０ビットに応じて、インクリメント、デクリメント又は固定される。ＤＡＲは、ＤＭ１ビット及びＤＭ０ビットに応じて、インクリメント、デクリメント又は固定される。その後、ＴＣＲ（ＴＣＲＨ）がデクリメントされる。
【００７０】
指定された回数のデータ転送が終了すると、ＴＣＲＨが０となる。この場合、リピートモードと同様に、ＴＣＲＬに保持した内容に基づいて、ＳＡＲ、ＤＡＲ及びＴＣＲＨの一部又は全部の初期設定値が回復される。
【００７１】
また、ブロック領域のデータ転送が終了すると、ＢＴＣＲ（ＢＴＣＲＨ及びＢＴＣＲＬ）をデクリメントする。ブロック転送モードでは、以上で説明したブロック領域のデータ転送を、起動要因が発生するごとに、ＢＴＣＲ（ＢＴＣＲＨ及びＢＴＣＲＬ）で指定された回数だけ（ＢＴＣＲがゼロになるまで）繰り返す。
【００７２】
ローテーション付ブロック領域は、その最後のデータ転送を行った後、ＢＴＣＲＬに保持した内容に基づいて、ＳＡＲ又はＤＡＲを、ローテーション付ブロック領域の先頭アドレスに戻すようにする。
【００７３】
ブロックエリア分のデータ転送が終了すると、ＢＴＣＲＨがデクリメントされる。ＢＴＣＲＨが０になると、ＢＴＣＲＬに保持した内容に基づいて、ＢＴＣＲＨの初期設定値が回復される。
【００７４】
シフトブロックモードの場合、所定のブロックのデータ終了後、ローテーション付ブロック領域に指定したＳＡＲまたはＤＡＲを内部バスＢＳ１に出力し、ＩＮＣ４１でインクリメント／デクリメントを行う。さらに、ＴＣＲＬの内容を、内部バスＢＳ２を経由して、ＡＬＵ３５に入力して、Ｓｚビットの指定に基づいてＳＦＴ４２でシフトし、ＩＮＣ４１の出力と加算または減算する。この結果を、内部バスＢＳ３を介して、ＳＡＲまたはＤＡＲに格納する。
【００７５】
上記のＳＡＲ又はＤＡＲの初期化は、上述の式（１）及び（２）で行う演算において、ＴＣＲＬをＢＴＣＲＬに置き換えることで実現できる。
【００７６】
シフトブロックモードについて、更に詳細に説明する。図５〜７に、シフトブロックモードでのＤＴＣ３のデータ転送動作を示す。図５はｋ回目のデータ転送、図６は（ｋ＋１）回目のデータ転送、図７は（ｋ＋２）回目のデータ転送を示している。
【００７７】
シフトブロックモードでは、ＤＴＣ３の起動毎に、例えば入力データブロックのデータが古い順に、出力データブロックにデータ転送を行うことが可能である。この転送モードでは、入力データブロックは、１つのデータブロックの転送が終わるごとに、ブロック内の１つのデータが更新される。具体的には、１つのデータブロックの転送が終わるごとに、入力データブロック内のデータの順番が１つ繰り下がり、最も古いデータは破棄される。そして、繰り下がりで空きとなった先頭のデータは新しいデータに更新される。このような入力データブロックの更新は、上述のリピートモードのデータ転送により実現可能であるので、詳細については説明を省略する。
【００７８】
図５〜７は、ブロックサイズが３、ＤＩＲビットが０である場合の例である。この場合、アドレス転送元アドレスがローテーション付ブロック領域（図５〜７では、ＲＢと表記
、転送先アドレスがブロック領域となる。
【００７９】
ｋ（ｋは正の整数）回目のシフトブロックモードのデータ転送時には、入力データブロックには入力データｕ、ｖ及びｗが格納される。このうち、入力データｕが最も古く、入力データｖがその次に古く、入力データｗが最も新しいデータである。
【００８０】
シフトブロックモードでは、ＤＴＣ３は入力データｕ、ｖ、ｗの順にリードを行い、出力データブロックの出力データｉ、ｉ＋１、ｉ＋２そそれぞれにライトを行う。
【００８１】
その後、入力データブロックの更新を行う。このとき、最も古い入力データｕが置き換えられる。そして、（ｋ＋１）回目のシフトブロックモードのデータ転送では、リードする順序を１データすらし（ローテーション）、入力データｖ、ｗ、ｕの順にリードを行い、出力データブロックの出力データｉ、ｉ＋１、ｉ＋２のそれぞれにライトを行う。
【００８２】
同様に、起動毎に、ローテーション付ブロック領域（入力データブロック）をリードする順序を１データずつずらすようにして、ブロックサイズのデータ転送を行う。言い換えれば、入力データの書き込みにリピートモードを使用し、入力データの読み出しにシフトブロックモードを使用することで、汎用的なメモリをＦＩＦＯとして利用できることになる。ハードウェアとしてＦＩＦＯを実現することもできるが、ＦＩＦＯの数および大きさは固定になってしまう。これに対し、ＤＴＣを利用することで、任意の数および任意の大きさのＦＩＦＯを構成することができる。
【００８３】
図８に、ＤＴＣ３の状態遷移図を示す。図８に示す状態遷移は、主として、ＤＴＣ３のデータ転送制御ブロック（ＤＴＣＣＮＴ）３１に実装される。
【００８４】
ＤＴＣ３は、ＩＮＴ２から起動要求信号ＤＴＣＲＥＱが与えられると、ＶＲステートに遷移する。ＶＲステートに遷移後、ＤＴＣ３は、ベクタ番号ＤＴＣＶＥＣに従って、ＶＧ３３で生成したベクタアドレスに基づき、ベクタ領域（データ転送情報先頭アドレス配置領域）に格納されたデータ転送情報の先頭アドレスをリードする。ＤＴＣ３は、リードした内容を、ＶＡＲ３４に格納する。
【００８５】
次に、ＤＴＣ３は、ＩＲステートに遷移する。ＶＲステートにてリードした先頭アドレスに従って、データ転送情報配置領域に格納されたデータ転送情報をリードする。この際、ＤＴＣ３は、ＭＲ、ＳＡＲ、ＤＡＲ及びＣＲをリードする。
【００８６】
ＤＴＣ３は、ＭＲの内容に従い、ノーマルモード又はリピートモードのデータ転送を行う場合は、ＳＲステート、ＤＷステートと遷移する。図８では、ノーマルモード又はリピートモードのデータ転送を行う場合の遷移を、「ノーマル」、「リピート」と表記している。ＳＲステートでは、ＤＴＣ３は、ＳＡＲの内容に従い、転送元アドレスの内容をリードする。また、ＤＴＣ３は、ＭＲの内容に従い、ＳＡＲのインクリメントなどを行う。ＤＷステートでは、ＤＴＣ３は、リードした内容を、ＤＡＲの内容に従い、転送先アドレスへライトする。また、ＤＴＣ３は、ＭＲの内容に従い、ＤＡＲのインクリメントやＣＲのデクリメントなどを行う。その後、ＤＴＣ３は、ＩＷステートに遷移する。ＩＷステートでは、ＤＴＣ３は、ＶＡＲ３４の内容に従って、ＭＲ、ＳＡＲ、ＤＡＲ及びＣＲをデータ転送情報配置領域に書き戻す。但し、ＩＷステートでは、ＭＲ、ＳＡＲ、ＤＡＲ及びＣＲの内で更新されなかったもののライトを行わないようにすることができる。例えば、ＤＡＲが固定の場合、ＤＡＲのライトは行わない。
【００８７】
チェイン動作を行わない場合、ＤＴＣ３は、ＣＲの内容に従って、起動要因となった割り込み要因フラグ又はＤＴＥビットをクリアし、動作を終了して、停止状態に戻る。
【００８８】
チェイン動作を行う場合、ＩＷステートからＶＲステートへと戻り、別のデータ転送を行うことができる。
【００８９】
ＤＴＣ３は、ＭＲの内容に従い、ブロック転送モード、デュアルブロックモード又はシフトブロックモードのデータ転送を行う場合には、ＳＲステート、ＤＷステートと遷移する。ＳＲステート及びＤＷステートは、上述と同様であるので、説明を省略する。図８では、ブロック転送モード、デュアルブロックモード又はシフトブロックモードのデータ転送を行う場合の遷移を、「ブロック」と表記している。そして、ＤＴＣ３は、ＴＣＲＨで指定された回数だけ、ＳＲステートからＤＷステートへの遷移を繰り返す。
【００９０】
ＤＷステートにおいてＴＣＲＨが０のとき、ＤＴＣ３は、ＤＷステートからＯＰステート、ＩＷステートと遷移する。ＤＴＣ３は、ＯＰステートでは、ＢＴＣＲのデクリメント、ローテーション付ブロック領域に指定したＳＡＲ又はＤＡＲの操作などを行う。その後のＩＷステートとチェイン動作については、ノーマルモード及びリピートモードの場合と同様であるので、説明を省略する。
【００９１】
以下、ＤＴＣ３のシフトブロックモードのデータ転送について具体的に説明する。図９に、ＤＴＣ３のシフトブロックモードのデータ転送の内部動作の第１の例を示す。この例では、保持する入力データの数はブロックサイズと同じである。
【００９２】
初期状態においては、ＳＡＲに入力データブロックの先頭アドレスｍ（入力データｕに相当する）を、ＢＴＣＲＨ、ＢＴＣＲＬ、ＴＣＲＨ及びＴＣＲＬにはそれぞれブロックサイズｎ（本例では３）を設定する。
【００９３】
初期状態及び初期状態これと同じ状態の場合をｋ回目とする。ＤＴＣ３の起動時は、ＳＡＲはｍ、ＢＴＣＲＨはｎである。ＴＣＲＨの内容をＡＬＵ３５のＤＥＣ４４でデクリメントし、ＳＡＲの内容をＡＬＵ３５のＩＮＣ４１でインクリメントしながら、ブロックサイズで指定した３回のデータ転送を行う。同時に、ＢＴＣＲＨの内容をＴＲに保持しつつ、ＡＬＵ３５のＤＥＣ４４でＢＴＣＲＨの内容のデクリメントを行う。
【００９４】
３番目のデータ転送後に、ＳＡＲの内容（ｍ＋２）を、ＡＬＵ３５のＩＮＣ４１でインクリメントした結果（ｍ＋３）にする。さらに、ＴＣＲＨのデクリメント結果が０になり、ブロックデータの転送が終了するので、ＯＰステート（内部動作）において、ＩＮＣ４１−ＡＵ４３の動作を指定し、ＩＮＣ４１でインクリメント（ｍ＋４）し、ＴＣＲＬの内容を減算した結果（ｍ＋１）をＳＡＲに格納する。また、ＴＣＲＬの内容を、ＴＣＲＨにコピーする。ＢＴＣＲＨのデクリメントを行う。
【００９５】
ｋ＋１回目のＤＴＣ起動時に、ＳＡＲはｍ＋１、ＢＴＣＲＨはｎ−１である。それ以外は、同様に３回のデータ転送を行う。
【００９６】
２番目のデータ転送後に、ＴＲのデクリメント結果が０になるので、ＩＮＣ４１−ＡＵ４３の動作を指定し、ＳＡＲの内容（ｍ＋２）を、ＡＬＵ３５のＩＮＣ４１でインクリメントした結果（ｍ＋３）から、ＢＴＣＲＬの内容を減算した結果（ｍ）を、ＳＡＲに格納する。
【００９７】
３番目のデータ転送後に、ＴＣＲＨのデクリメント結果が０になるので、ＯＰステート（内部動作）において、ＴＣＲＬの内容を、ＴＣＲＨにコピーする。ＢＴＣＲＨのデクリメントを行う。
【００９８】
この場合、２番目のデータ転送時にＴＣＲＬの内容を減算しており、ＢＴＣＲＨも０ではないので、ＳＡＲの内容（ｍ）を、ＡＬＵ３５のＩＮＣ４１でインクリメント（ｍ＋１）する。さらに、ＩＮＣ４１でインクリメントした結果（ｍ＋２）を、ＳＡＲに格納する。
【００９９】
ｋ＋２回目のＤＴＣ起動時に、ＳＡＲはｍ＋２、ＢＴＣＲＨはｎ−２（本例では１）である。それ以外は、同様に３回のデータ転送を行う。
【０１００】
１番目のデータ転送後に、ＴＲのデクリメント結果が０になるので、ＩＮＣ４１−ＡＵ４３の動作を指定し、ＳＡＲの内容（ｍ＋２）を、ＡＬＵ３５のＩＮＣ４１でインクリメントした結果（ｍ＋３）から、ＢＴＣＲＬの内容を減算した結果（ｍ）を、ＳＡＲに格納する。
【０１０１】
３番目のデータ転送後に、ＴＣＲＨのデクリメント結果が０になるので、ＯＰステート（内部動作）において、ＴＣＲＬの内容を、ＴＣＲＨにコピーする。また、ＢＴＣＲＨのデクリメントを行い、０になるので、ＢＴＣＲＬの内容を、ＢＴＣＲＨにコピーする。
【０１０２】
ＳＡＲの内容（ｍ＋１）を、ＡＬＵ３５のＩＮＣ４１でインクリメントした結果（ｍ＋２）に対し、ＢＴＣＲＨが０になったことに対応して、ＩＮＣ４１−ＡＵ４３の動作を指定し、ＳＡＲの内容（ｍ＋２）を、ＡＬＵ３５のＩＮＣ４１でインクリメントした結果（ｍ＋３）から、ＢＴＣＲＬの内容を減算した結果（ｍ）を、ＳＡＲに格納する。
【０１０３】
次いで、ＤＴＣ３のシフトブロックモードのデータ転送の別の例について具体的に説明する。図１０に、ＤＴＣ３のシフトブロックモードのデータ転送の内部動作の第２の例を示す。この例では、保持する入力データ数（ｎｉ）は、ブロックサイズ（ｎ）より大きい。
【０１０４】
初期状態においては、ＳＡＲに入力データブロックの先頭アドレスｍ（入力データｕに相当する）を、ＢＴＣＲＨ及びＢＴＣＲＬには入力データ数ｎｉ、ＴＣＲＨ及びＴＣＲＬにはブロックサイズｎ（本例では３）を設定する。
【０１０５】
初期状態及び初期状態と同じ状態の場合をｋ回目とする。ＤＴＣ３の起動時は、ＳＡＲはｍ、ＢＴＣＲＨはｎｉである。図９に示す例と同様に、ＴＣＲＨの内容をＡＬＵ３５のＤＥＣ４４でデクリメントし、ＳＡＲの内容をＡＬＵ３５のＩＮＣ４１でインクリメントしながら、ブロックサイズで指定した３回のデータ転送を行う。同時に、ＢＴＣＲＨの内容をＴＲに保持しつつ、ＡＬＵ３５のＤＥＣ４４でＢＴＣＲＨの内容のデクリメントを行う。
【０１０６】
ｋ＋１回目のＤＴＣ起動時では、ＳＡＲはｍ＋１、ＢＴＣＲＨはｎｉ−１である。そして、ｋ回目と同様に、３回のデータ転送を行う。
【０１０７】
ｋ＋２回目のＤＴＣ起動時では、ＳＡＲはｍ＋２、ＢＴＣＲＨはｎｉ−２である。そして、ｋ回目と同様に、３回のデータ転送を行う。
【０１０８】
１番目のデータ転送後に、ＴＲのデクリメント結果が０になる。これにより、ＳＡＲの内容（ｍ＋２）を、ＡＬＵ３５のＩＮＣ４１でインクリメントした結果（ｍ＋３）から、ＴＣＲＬの内容を減算した結果（ｍ）を、ＳＡＲに格納する。
【０１０９】
３番目のデータ転送後に、ＴＣＲＨのデクリメント結果が０になるので、ＴＣＲＬの内容を、ＴＣＲＨにコピーする。さらに、ＢＴＣＲＨが１であり、デクリメント後に０になる。ＳＡＲの内容（ｍ＋１）を、ＡＬＵ３５のＩＮＣ４１でインクリメントした結果（ｍ＋２）から、ＴＣＲＬの内容を減算した結果（ｍ−１）をＡＬＵ３５のＩＮＣ４１でインクリメントした結果（ｍ）を、ＳＡＲに格納する。
【０１１０】
ＢＴＣＲＨのデクリメントを行って０となると、ＢＴＣＲＬの内容をＢＴＣＲＨにコピーする。
【０１１１】
図１１に、シフトブロックモードでのＤＴＣ３のデータ転送の動作例を示す。図１１において、破線矢印はアドレスの指定、実線矢印はデータの転送を示す。この例では、保持する入力データの数がブロックサイズと同じでる。また、この例では、入力データブロックへのデータ転送と、入力データブロックから出力データブロックへのデータ転送とが、同一の起動要因で、チェイン動作によって連続して実行される。
【０１１２】
初期状態においては、ＳＡＲに入力データブロックの先頭アドレスｍ（入力データｕに相当する）を設定する。ＢＴＣＲＨ、ＢＴＣＲＬ、ＴＣＲＨ及びＴＣＲＬにはそれぞれブロックサイズｎ（本例では３）を設定する。
【０１１３】
そして、チェイン動作で結合された２つのデータ転送を行う。ここで、１つ目のデータ転送で用いるデータ転送情報を、データ転送情報ＩＮＦ１１とする。２つ目のデータ転送で用いるデータ転送情報を、データ転送情報ＩＮＦ１２とする。
【０１１４】
ＣＰＵ１は、所要のデータ転送情報を、所定の転送情報アドレス領域にライトし、起動要因とする割り込み要因に対応したＤＴＥビットを１にセットしておく。この状態で、当該割り込み要因が発生してＤＴＣ３が起動されると、ＤＴＣ３はデータ転送情報先頭アドレスをリード（ステートＶＲ）し、データ転送情報配置領域からデータ転送情報ＩＮＦ１１をリードする（ステートＩＲ）。
【０１１５】
データ転送情報ＩＮＦ１１において、ＭＲは、ＴＭＤ２〜０ビットを「００１」（リピートモード）に、ＤＩＲビットを１（転送先アドレスがリピート領域）に、ＮＸＴＥ１ビットを１（チェイン動作）にセットされる。
【０１１６】
ＤＴＣ３は、ＳＡＲで指定したアドレスから入力データをリードする（ステートＳＲ）。ＤＴＣ３は、リードした入力データを、ＤＡＲで指定した入力データブロックの所定のアドレスにライトする（ステートＤＷ）。
【０１１７】
例えば、ＤＡＲがインクリメントされる場合に、ＴＣＲＬで指定した回数（本例では３）のデータ転送を行うと、ＤＡＲは入力データブロックの先頭アドレスに戻る。このときの演算は、上述の式（２）で表される。
【０１１８】
また、ＤＴＣ３は、ＴＣＲＨをデクリメントする。その後、ＤＴＣ３は、データ転送情報の内で更新が行われたものを、元のアドレスにライトする（ステートＩＷ）。具体的には、ＤＴＣ３は、ＤＡＲ及びＣＲを、元のアドレスにライトする。
【０１１９】
次いで、ＤＴＣ３は、データ転送情報ＩＮＦ１１に連続したアドレスから、データ転送情報ＩＮＦ１２をリードする（ステートＩＲ）。
【０１２０】
データ転送情報ＩＮＦ１２におけるＭＲの内容は以下の通りである。ＴＭＤ２〜０ビットは「１１０」（シフトブロックモード）であり、ＤＩＲビットは０にクリア（転送元アドレスをローテーション付ブロック領域）されている。ＳＡＲの初期設定値は、データ転送情報ＩＮＦ１１のＤＡＲより１データ分ずれている。ＢＴＣＲＨの初期設定値は、ＢＴＣＲＬの初期設定値（本例では３）より１だけ小さい。
【０１２１】
ＤＴＣ３は、ＳＡＲで指定した入力データブロックのアドレスから、ＤＡＲで指定した出力データブロックのアドレスへ、ＢＴＣＲＨ及びＴＣＲＨをデクリメントしながら、ＴＣＲＬで指定したブロックサイズ分のデータ転送を行う（ステートＳＲ、ステートＤＷ）。ＢＴＣＲＨが０になると、ＳＡＲはローテーション付ブロック領域の先頭アドレス、ＢＴＣＲＨはローテーション付ブロック領域のブロックサイズになる。
【０１２２】
ＴＣＲＨが０になると、ＤＴＣ３は、ＤＡＲとＴＣＲＨの内容を初期設定値に戻す（ステートＯＰ）。その後、ＤＴＣ３は、データ転送情報の内で更新が行われたものを、元のアドレスにライトする（ステートＩＷ）。具体的には、ＤＴＣ３は、ＳＡＲ、ＤＡＲ及びＣＲを、元のアドレスにライトする。
【０１２３】
この例では、データ転送情報ＩＮＦ１１のＤＡＲが入力データｕのアドレスを示している場合、データ転送情報ＩＮＦ１２のＤＡＲは入力データｖのアドレスを示すように初期設定しておく。これにより、データ転送情報ＩＮＦ１１により、入力データｕが置き換えられ、入力データｖ、ｗ、ｕの順に古いデータとなる。その後、データ転送情報ＩＮＦ１２で、入力データｖ、ｗ、ｕの順で、ブロックのデータ転送を行うことができる。
【０１２４】
なお、図１１に示す例では、チェイン動作を指定するものとしたが、データ転送情報ＩＮＦ１１及びデータ転送情報ＩＮＦ１２は、別の起動要因とすることもできる。
【０１２５】
以上、本構成によれば、フィルタ演算に必要な複数のデータ、すなわち、ＲＡＭなどに用意した入力データ、あるいはＲＯＭなどに用意した係数データを、１回の起動で、フィルタ演算器の複数のレジスタにデータ転送できる。これにより、フィルタ演算を用いた処理ないし制御動作の高速化することができる。
【０１２６】
また、本構成によれば、複数のデータ（係数データや入力データ）の格納領域が連続していない場合も、チェイン動作で複数のブロックのデータ転送を、１回の起動で連続して実行することができる。また、出力データのデータ転送を、１回の起動で連続して実行することも可能である。つまり、データの配置に応じたデータ転送モードを適宜選択することができる。
【０１２７】
本構成によれば、フィルタ演算器に、フィルタ演算前に所要のデータを与えることができる。よって、フィルタ演算器の直前の状態に依存することなく、１つのＤＴＣと１つのフィルタ演算器とを用いた所要の複数の処理ないし制御動作を実現できる。本構成では、ＤＴＣがフィルタ演算器へのデータのライトからリードまでを一連の動作として実行することで、フィルタ演算器を排他的に使用することができるので、競合を回避することもできる。
【０１２８】
本構成によれば、イベントに呼応した通常のデータ転送機能に加えて、フィルタ演算器へのデータ転送に好適なデュアルブロックモード、シフトブロックモードのデータ転送ができる。また、これらのデータ転送情報の形式を共通にすることで、マイクロコンピュータ全体の物理的な規模の増加を抑制することができる。これにより、割込みコントローラやＤＴＣベクタなどを共通化に利用でき、ハードウェア構成を簡略化することができる。
【０１２９】
また、本実施の形態で説明したデータ転送装置は、特に使用用途は限定されず、ＲＡＭなどの汎用的な記憶装置にデータ転送情報を格納できるものである。このようなデータ転送装置には、以下の利点がある。
（１）データ転送の数を増やすことができる。いわゆるＤＭＡ（Direct Memory Access）コントローラのように、データ転送情報をデータ転送装置自身の専用のハードウェアとして持つ方式では、実装されたハードウェアによってデータ転送の数が制限される。これに対し、データ転送装置は、データ転送情報を使用用途の限定されないＲＡＭに格納するので、データ転送の数を増やすことが容易であり、利用者の種々の使用方法に対応することができる。
（２）いわゆるＤＭＡコントローラのように、起動要因の選択をデータ転送装置自身の制御レジスタによる指定およびマイクロコンピュータのインタフェースとして実装する方式では、多くの割り込みないしイベントに対応するのが困難である。これに対し、データ転送装置は、割り込み要因を利用して、ＣＰＵに割り込みを要求するか、ＤＴＣにデータ転送を要求するかを選択することができる。これにより、多くの割り込みないしイベント発生に対して、データ転送を行うことができる。
（３）チェイン動作など１回の起動時に実行するデータ転送の数を増やすことができ、異なるデータ転送を組み合わせて機能を実現できる。
（４）データ転送情報の構成を変更できる。また、データ転送情報を構成するデータの増減ができる。
（５）専用のハードウェア（ＤＴＣやＦＬＴ）は、最低限（１回）のデータ転送に必要な分をもうければよい。そのため、ＭＣＵの機能を追加して、ハードウェア規模が増えても、ＭＣＵ全体の物理的な規模の増加を抑制することができる。
（６）データ転送装置自身の専用のハードウェアとして、制御レジスタなどを持たないため、ＣＰＵからのライトとの競合など、複雑な動作条件を考慮する必要がない。よって、ＭＣＵの物理的な規模の増加を抑止することに寄与できる。
【０１３０】
実施の形態２
実施の形態２にかかるマイクロコンピュータについて説明する。本実施の形態では、ＭＣＵ１００のＦＬＴ２１の具体例について説明する。図１２に、実施の形態２にかかるＦＬＴ２１の構成を模式的に表したブロック図を示す。
【０１３１】
ＦＬＴ２１は、ＦＩＲ（Ｆｉｎｉｔｅ  Ｉｍｐｕｌｓｅ  Ｒｅｓｐｏｎｓｅ）フィルタであり、３つの入力データレジスタＸ［ｎ］、Ｘ［ｎ−１］及びＸ［ｎ−２］と、３つの係数データレジスタＡ０、Ａ１及びＡ２と、出力データレジスタＹ［ｎ］と、乗算器２１１〜２１３と、加算器２１４とを有する。
【０１３２】
入力データレジスタＸ［ｎ］、Ｘ［ｎ−１］及びＸ［ｎ−２］と、係数データレジスタＡ０、Ａ１及びＡ２と、出力データレジスタＹ［ｎ］とは、それぞれ内部バス１１と接続される。３つの入力データレジスタＸ［ｎ］、Ｘ［ｎ−１］及びＸ［ｎ−２］と、係数データレジスタＡ０、Ａ１及びＡ２は、逆の順に、それぞれ連続したアドレスに配置する。
【０１３３】
これらのデータに対し、ＦＬＴ２１は、式（３）に示す演算を行う。
【数３】
2018085130.tif 000005
なお、特に制限はされないものの、入力データレジスタＸ［ｎ］へのライトが行われたことによって、ＦＬＴ２１は演算動作を開始するものとする。また、ＦＬＴ２１の演算動作は２クロックで完了するものとする。
【０１３４】
例えば、マイクロコンピュータの制御するモータの状態を、Ａ／Ｄ変換器（アナログモジュール９に含まれる）で入力し、この変換データに対してＦＬＴ２１によるフィルタ演算を行う場合が考え得る。この場合、フィルタ演算結果によって、タイマ７のデータレジスタを設定し、タイマ７のパルス出力を制御することができる。
【０１３５】
このとき、ＤＴＣ３は、Ａ／Ｄ変換完了割り込みで起動され、図１１に示す通り、Ａ／Ｄ変換器変換データ（入力データ）をリピートモードで、入力データブロックとなるＲＡＭにデータ転送する。更に、ＤＴＣ３は、チェイン動作によって、シフトブロックモードにて入力データブロックの３つのデータを古い順に、ＦＬＴ２１の入力データレジスタＸ［ｎ−２］、Ｘ［ｎ−１］及びＸ［ｎ］へ、データが古い順にデータ転送を行う。この場合には、データ転送情報のＳＡＲにＡ／Ｄ変換データレジスタを指定し、データ転送情報のＤＡＲに入力データレジスタＸ［ｎ−２］を指定すればよい。
【０１３６】
入力データレジスタＸ［ｎ］へのライトによって、ＦＬＴ２１での演算が行われ、演算結果が出力データレジスタＹ［ｎ］で得られる。
【０１３７】
更に、ＤＴＣ３は、チェイン動作によって、出力データレジスタＹ［ｎ］をリードしてする。そして、ＤＴＣ３は、リードしたデータを所定のタイマのデータレジスタにライトすることができる。その結果、所要のパルス又は波形出力を得ることができる。
【０１３８】
この際、入力データレジスタＸ［ｎ］へのライトから出力データレジスタＹ［ｎ］のライトの間には、データ転送情報ライト（ＩＷステート）及びデータ転送情報リード（ＩＲステート）が存在する。よって、ＦＬＴ２１の演算に要する期間を確保できる。
【０１３９】
次いで、ＦＬＴ２１の使用例について説明する。図１３に、実施の形態２にかかるＦＬＴ２１の使用例を示す。ＦＬＴ２１は、複数の制御に対して異なるタイミングで使用し、異なる係数データを使用するものとする。このため、例えば、ＤＴＣ３は、ＲＯＭ４上に用意した係数データを、ＦＬＴ２１の係数データレジスタＡ０、Ａ１及びＡ２にデータ転送する（デュアルブロックモード）。このデータ転送は、データ転送情報ＩＮＦ２２により実行される。
【０１４０】
入力データブロックから入力データレジスタＸ［ｎ−２］、Ｘ［ｎ−１］及びＸ［ｎ］へのデータ転送（図１１におけるシフトブロックモードでのデータ転送）を、データ転送情報ＩＮＦ２３とする。
【０１４１】
データ転送情報ＩＮＦ２１によるデータ転送後、チェイン動作により、データ転送情報ＩＮＦ２２がリードされる（ステートＩＲ）。データ転送情報ＩＮＦ２２によるデータ転送後、チェイン動作により、データ転送情報ＩＮＦ２３がリードされる（ステートＩＲ）。
【０１４２】
データ転送情報ＩＮＦ２２では、ＭＲのＴＭＤ２〜０ビットは「１０１」（デュアルブロックモード）である。この状態で、ＤＴＣ３は、ＳＡＲで指定した係数データのアドレスから、ＤＡＲで指定したＦＬＴ２１の係数データレジスタＡ２、Ａ１及びＡ０のアドレスへ、ＴＣＲＨをデクリメントしながら、ＴＣＲＬで指定したブロックサイズ分のデータ転送を行う（ステートＳＲ、ステートＤＷ）。
【０１４３】
ＴＣＲＨが０になると、ＤＴＣ３は、ＤＡＲ及びＴＣＲＨの内容を初期設定値に戻す（ステートＯＰ）。その後、ＤＴＣ３は、データ転送情報の内で更新が行われたもの、具体的にはＣＲを、元のアドレスにライトする（ステートＩＷ）。
【０１４４】
その後、ＤＴＣ３は、チェイン動作により、データ転送情報ＩＮＦ２３によるデータ転送を行う。ＦＬＴ２１は、入力データレジスタＸ［ｎ］へのライトにより、上述のフィルタ演算動作を開始する。図示はしないが、ＤＴＣ３は、その後チェイン動作によって、出力データレジスタＹ［ｎ］をリードする。そして、ＤＴＣ３は、リードしたデータを、所定のタイマのデータレジスタにライトする。
【０１４５】
以上、本構成によれば、ＦＩＲフィルタによる複数の入力データの演算を行うことができる。
【０１４６】
実施の形態３
実施の形態３にかかるマイクロコンピュータについて説明する。本実施の形態では、ＭＣＵ１００のＦＬＴ２１の変形例について説明する。図１４に、実施の形態３にかかるＦＬＴ２２の構成を模式的に表したブロック図を示す。
【０１４７】
ＦＬＴ２２は、ＩＩＲ（Ｉｎｆｉｎｉｔｅ  Ｉｍｐｕｌｓｅ  Ｒｅｓｐｏｎｓｅ）フィルタであり、５つの入力データレジスタＸ［ｎ］、Ｘ［ｎ−１］、Ｘ［ｎ−２］、Ｙ［ｎ−１］及びＹ［ｎ−２］と、５つの係数データレジスタＡ０、Ａ１、Ａ２、Ｂ１及びＢ２と、出力データレジスタＹ［ｎ］と、乗算器２１１〜２１３、２２１及び２２２と、加算器２１４とを有する。つまり、  ＦＬＴ２２は、ＦＬＴ２１に、出力データレジスタＹ［ｎ−１］及びＹ［ｎ−２］と、係数データレジスタＢ１及びＢ２と、乗算器２２１及び２２２を追加した構成を有する。
【０１４８】
入力データレジスタＸ［ｎ］、Ｘ［ｎ−１］、Ｘ［ｎ−２］、Ｙ［ｎ−１］及びＹ［ｎ−２］と、係数データレジスタＡ０、Ａ１、Ａ２、Ｂ１及びＢ２と、出力データレジスタＹ［ｎ］とは、それぞれ内部バス１１と接続される。入力データレジスタＸ［ｎ］、Ｘ［ｎ−１］、Ｘ［ｎ−２］、Ｙ［ｎ−１］及びＹ［ｎ−２］と、係数データレジスタＡ０、Ａ１、Ａ２、Ｂ１及びＢ２と、出力データレジスタＹ［ｎ］とは、逆の順に、それぞれ連続したアドレスに配置する。
【０１４９】
これらのデータに対し、ＦＬＴ２２は、式（４）に示す演算を行う。
【数４】
2018085130.tif 000006
【０１５０】
なお、ＦＬＴ２２は、係数データＢ１及びＢ２に０を設定することで、ＦＩＲフィルタであるＦＬＴ２１と同等のフィルタとなる。また、係数データの設定によって、次数あるいは使用する遅延データ数なども変更することができる。算術演算器（ＦＬＴ）は、１つのハードウェアで複数の制御に共通に使用するため、次数などを大きくし、ハードウェア構成を大きくしても、マイクロコンピュータの物理的な規模に与える影響を抑制することができる。
【０１５１】
次いで、ＦＬＴ２２の使用例について説明する。図１５に、実施の形態３にかかるＦＬＴ２２の使用例を示す。ＤＴＣ３は、データ転送情報ＩＮＦ３２により、ＲＯＭ４上に用意した係数データを、ＦＬＴ２２の係数データレジスタＡ０、Ａ１、Ａ２、Ｂ１及びＢ２にデータ転送する。このときの転送モードはデュアルブロックモード、ブロックサイズは５である。なお、データ転送情報ＩＮＦ３１及びＩＮＦ３２にかかるデータ転送は、実施の形態２でのデータ転送情報ＩＮＦ２１及びＩＮＦ２２かかるデータ転送と同様である。
【０１５２】
ＤＴＣ３は、データ転送情報ＩＮＦ３３により、例えばＲＡＭ５上に確保した遅延データ（フィードバックデータブロック）を、ＦＬＴ２２の出力データレジスタＹ［ｎ−１］及びＹ［ｎ−２］にデータ転送する。このときの転送モードはシフトブロックモード、ブロックサイズは２である。
【０１５３】
ＤＴＣ３は、データ転送情報ＩＮＦ３４により、入力データブロックから入力データレジスタＸ［ｎ−２］、Ｘ［ｎ−１］及びＸ［ｎ］にデータ転送を行う。これにより、ＦＬＴ２２は、フィルタ演算動作を開始する。
【０１５４】
ＤＴＣ３は、データ転送情報ＩＮＦ３５により、出力データレジスタＹ［ｎ］を、フィードバックデータブロックにデータ転送する。このときの転送モードはリピートモード、リピートサイズは２である。
【０１５５】
図示しないが、ＤＴＣ３は、チェイン動作により、出力データレジスタＹ［ｎ］をリードして、リードしたデータを所定のタイマのデータレジスタにライトすることができる。
【０１５６】
以上、本構成によれば、ＦＬＴでのフィルタ演算に、過去のＦＬＴの出力データによる遅延データを用いることができる。これにより、より複雑なフィルタ演算が可能となり、例えばＩＩＲフィルタが実現できる。
【０１５７】
実施の形態４
実施の形態４にかかるマイクロコンピュータについて説明する。本実施の形態では、ＦＬＴ２２の変形例について説明する。図１６に、実施の形態４にかかるＦＬＴ２３の構成を模式的に表したブロック図を示す。
【０１５８】
以下、ＦＬＴ２３の構成のＦＬＴ２２に対する差異について説明する。ＦＬＴ２３では、フィルタ演算動作完了時に、入力データレジスタＸ［ｎ］からＸ［ｎ−１］へ、Ｘ［ｎ−１］からＸ［ｎ−２］へ、Ｙ［ｎ−１］からＹ［ｎ−２］へ、Ｙ［ｎ］からＹ［ｎ−１］へのデータ転送を行う。また、出力データレジスタＹ［ｎ−２］、Ｙ［ｎ−１］、Ｘ［ｎ−２］、Ｘ［ｎ−１］、Ｘ［ｎ］を連続したアドレスに配置する。
【０１５９】
次いで、ＦＬＴ２２の使用例について説明する。図１７に、実施の形態４にかかるＦＬＴ２３の使用例を示す。ＤＴＣ３は、フィルタ演算後に、次回に必要なデータをフィードバック領域に確保する。入力データは直接データ転送することができる。なお、データ転送情報ＩＮＦ４１及びＩＮＦ４２にかかるデータ転送は、実施の形態２でのデータ転送情報ＩＮＦ２１及びＩＮＦ２２にかかるデータ転送と同様である。
【０１６０】
ＤＴＣ３は、データ転送情報ＩＮＦ４１により、ＲＯＭ４上に用意した係数データを、ＦＬＴ２３の係数データレジスタＡ０、Ａ１、Ａ２、Ｂ１及びＢ２にデータ転送する。このときの転送モードはデュアルブロックモード、ブロックサイズは５である。
【０１６１】
ＤＴＣ３は、データ転送情報ＩＮＦ４２により、例えばＲＡＭ５上に確保したフィードバックデータブロックを、ＦＬＴ２３の入力データレジスタＸ［ｎ−１］、Ｘ［ｎ−２］、Ｙ［ｎ−１］及びＹ［ｎ−２］にデータ転送する。このときの転送モードはデュアルブロックモード、ブロックサイズは４である。
【０１６２】
ＤＴＣ３は、データ転送情報ＩＮＦ４３により、Ａ／Ｄ変換器変換データ（入力データ）を、ＦＬＴ２３の入力データレジスタＸ［ｎ］にデータ転送する。このときの転送モードはノーマルモードである。これにより、ＦＬＴ２３は、フィルタ演算動作を開始する。フィルタ演算動作完了時に、入力データレジスタＸ［ｎ］からＸ［ｎ−１］へ、Ｘ［ｎ−１］からＸ［ｎ−２］へ、Ｙ［ｎ−１］からＹ［ｎ−２］へ、Ｙ［ｎ］からＹ［ｎ−１］へのデータ転送をＦＬＴ２３内で行う。これにより、次のフィルタ演算の遅延データを得ることができる。
【０１６３】
ＤＴＣ３は、データ転送情報ＩＮＦ４４により、入力データレジスタＸ［ｎ−２］、Ｘ［ｎ−１］、Ｙ［ｎ−１］及びＹ［ｎ−２］を、フィードバックデータブロックにデータ転送する。このときの転送モードはデュアルブロックモード、ブロックサイズは４である。
【０１６４】
ＤＴＣ３は、データ転送情報ＩＮＦ４５により、出力データレジスタＹ［ｎ］をリードして、リードしたデータを所定のタイマのデータレジスタにライトする。このときの転送モードはノーマルモードである。
【０１６５】
なお、係数データを、フィードバックデータブロックと連続したアドレスに配置しておけば、データ転送情報ＩＮＦ４１及びＩＮＦ４２によるデータ転送は、１つのデュアルブロックモードでのデータ転送で行うことができる。
【０１６６】
また、必要に応じてＦＬＴ２３の演算終了割り込みを設け、これによりＤＴＣ３を起動することもできる。しかし、ＦＬＴ２３を複数の制御に用いる場合、いずれの制御の演算が終了したかの判断が必要になってしまう。起動要因が決まれば、いずれの制御を行うかも決まるので、本例のように、出力データのデータ転送までチェイン動作で連続して実行することが望ましい。複数の制御用途でＦＬＴ２３を使用する場合に、競合の回避をＤＴＣ３に委ねることができる。
【０１６７】
以上、本構成によれば、ＦＬＴでのフィルタ演算に、過去のＦＬＴの出力データによる遅延データを用いることができる。これにより、より複雑なフィルタ演算が可能となり、例えばＩＩＲフィルタが実現できる。また、遅延データの転送をＦＬＴの内部で行うことができるので、ＤＴＣとＦＬＴとの間で転送するデータ数を低減できる。これにより、ＭＣＵの処理の高速化を実現できる。
【０１６８】
実施の形態５
実施の形態５にかかるマイクロコンピュータについて説明する。本実施の形態では、データ転送情報の変形例について説明する。図１８に、実施の形態５にかかるデータ転送情報の構成を模式的に示す。
【０１６９】
本実施の形態では、ＴＭＤ２〜０ビットが「１１１」のときの転送モードを、ブロックバッファモードとする。また、本実施の形態では、実施の形態１と比較して、データ転送情報にデータレジスタ（ＤＲとも称する）が追加される。ＤＲのデータサイズはＳｚ１ビット及びＳｚ０ビットで指定される。ＤＲの本数は、ＴＣＲＨ及びＴＣＲＬで指定される。また、後述するように、ブロックバッファモードではアドレスレジスタは１本で足りる。よって、この例では、ＳＡＲを使用しないものとして説明する。
【０１７０】
次いで、ブロックバッファモードでのＤＴＣ３の動作について説明する。図１９に、ブロックバッファモードでのＤＴＣ３の動作を示す。ＣＰＵ１は、所要のデータ転送情報を所定の転送情報アドレス領域にライトする。また、ＣＰＵ１は、起動要因とする割り込み要因に対応したＤＴＥビットを１にセットする。この状態で、割り込みが発生してＤＴＣ３が起動される場合、起動要求信号ＤＴＣＲＥＱ及びベクタ番号ＤＴＣＶＥＣが、ＩＮＴ２からＤＴＣ３に与えられる。
【０１７１】
ＤＴＣ３は、ベクタ番号ＤＴＣＶＥＣに対応したベクタ領域をリードする（ＶＲステート）。ＤＴＣ３は、リードした内容であるデータ転送情報の先頭アドレスをＶＡＲ３４に格納し、かつ、データ転送情報の先頭アドレスをインクリメントする。そして、ＤＴＣ３は、ＭＲ、ＤＡＲ及びＣＲをリードし（ＩＲステート）、リードしたデータ転送情報をＤＴＣ３のレジスタファイルに格納する。
【０１７２】
ＤＴＣ３は、ＶＡＲ３４に従って、ＤＲをリードし（ＤＲＲステート）、リードした内容をＤＡＲで指定された転送先アドレスへライトする（ＤＤＷステート）。そして、ＤＴＣ３は、ＴＣＲＨをデクリメントする。この動作を、ＴＣＲＨ及びＴＣＲＬで指定される回数だけ繰り返す。ＴＣＲＨが０になると、ＤＴＣ３は、ＴＣＲＬの内容をＴＣＲＨにコピーする。
【０１７３】
ＤＴＣ３は、ＤＡＲで指定された転送先アドレスをリードし（ＤＤＲステート）、リードした内容、ＶＡＲ３４に従ってＤＲへライトする（ＤＲＷステート）。ＤＡＲは、ＤＭ１ビット及びＤＭ０ビットの指定と逆方向に、ＶＡＲ３４をデクリメントする。この動作を、ＴＣＲＨ及びＴＣＲＬで指定された回数だけ繰り返す。ＴＣＲＨが０になると、ＤＴＣ３は、ＴＣＲＬの内容をＴＣＲＨにコピーする。
【０１７４】
ＤＴＣ３は、データ転送情報の内で更新されたものを、元のアドレスへライトする（ＩＷ）。
【０１７５】
なお、チェイン動作が指定されている場合は、ＶＡＲ３４に基づき、次のデータ転送情報をリード（ＩＲ）して、次のデータ転送を行う。
【０１７６】
なお、上述においてＴＣＲＨが０になったとき、ブロック転送モードと同様の動作で、ＤＡＲ及びＶＡＲ３４を先頭アドレスに戻し、ＤＤＲステート及びＤＲＷステートにおいて、ＤＡＲをＤＭ１ビット及びＤＭ０ビットの指定に従ってインクリメント／デクリメントし、かつＶＡＲ３４をインクリメントしてもよい。
【０１７７】
ＤＴＣ３の状態遷移は、ＤＲＲステート、ＤＤＷステート、ＤＤＲステート及びＤＲＷステートが追加されることとなる。なお、ＤＤＷステートは、ＤＷステートと兼用することもできる。
【０１７８】
次いで、実施の形態５におけるＦＬＴ２３の使用例について説明する。図２０に、ブロックバッファモードでのＦＬＴ２３の使用例を示す。
【０１７９】
この例では、係数データ（Ｂ２、Ｂ１、Ａ２、Ａ１及びＡ０）、フィードバックデータ（Ｙ［ｎ−２］、Ｙ［ｎ−１］、Ｘ［ｎ−２］及びＸ［ｎ−１］）、入力データ（Ｘ［ｎ］）がデータ転送情報ＩＮＦ５２のＤＲ内に確保される。
【０１８０】
ＤＴＣ３は、データ転送情報ＩＮＦ５１により、Ａ／Ｄ変換器変換データ（入力データ）を、例えばＲＡＭ５などに配置されているデータ転送情報ＩＮＦ５２のＤＲの入力データ（Ｘ［ｎ］）に対応するアドレスにデータ転送する。このときの転送モードはノーマルモードである。
【０１８１】
ＤＴＣ３は、データ転送情報ＩＮＦ５２により、ＤＲとして保持しているＲＡＭ５の内容を、ＦＬＴ２３の係数データレジスタ（Ｂ２、Ｂ１、Ａ２、Ａ１及びＡ０）、入力データレジスタ（Ｙ［ｎ−２］、Ｙ［ｎ−１］、Ｘ［ｎ−２］、Ｘ［ｎ−１］及びＸ［ｎ］）にデータ転送する。このときの転送モードはブロックバッファモードであり、ブロックサイズは１０である。ＦＬＴ２３は、入力データレジスタＸ［ｎ］へのライトが行われることで、フィルタ演算動作を開始する。
【０１８２】
ＤＴＣ３は、データ転送情報ＩＮＦ５２により、更に演算後のＦＬＴ２３の係数データレジスタ（Ｂ２、Ｂ１、Ａ２、Ａ１及びＡ０）、入力データレジスタ（Ｙ［ｎ−２］、Ｙ［ｎ−１］、Ｘ［ｎ−２］、Ｘ［ｎ−１］及びＸ［ｎ］）の内容を、ＤＲとして使用しているＲＡＭ５へデータ転送する。
【０１８３】
ＤＴＣ３は、データ転送情報ＩＮＦ５３により、出力データレジスタＹ［ｎ］をリードして、リードしたデータを所定のタイマのデータレジスタにライトする。このときの転送モードはノーマルモードである。
【０１８４】
この例において、ＤＲはＲＡＭ５などに配置されるので、ＣＰＵによる初期設定などを行うことができる。
【０１８５】
上述の通り、本実施の形態では、ブロックバッファモードによりデータ転送により、２つの逆方向のデータ転送を１組のデータ転送として実行することができる。その結果、フィルタ演算器へのデータ設定のためのデータ転送や遅延データなどの演算結果の保持のためのデータ転送を、少ないデータ転送情報で行うことができる。これにより、データ転送情報を保持するＲＡＭの領域を節約できる。また、データ転送情報のリード／ライトの回数を減らして、データ転送を高速化することができる。
【０１８６】
実施の形態６
実施の形態６にかかるマイクロコンピュータについて説明する。本実施の形態では、データ転送情報の変形例について説明する。図２１に、実施の形態６にかかるデータ転送情報の構成を模式的に示す。
【０１８７】
本実施の形態では、ＭＲのビット３にＲＮＤビットを設ける。ＲＮＤビットが１にセットされているとき、転送元アドレスから転送先アドレスへのデータ転送の後、転送先アドレスから転送元アドレスへのデータ転送を行う。この動作を、ラウンド動作と称する。ラウンド動作は、ノーマルモード及びデュアルブロックモードと組み合わせて使用することができる。
【０１８８】
次いで、デュアルブロックモードのラウンド動作について説明する。図２２に、デュアルブロックモードでのＤＴＣ３のラウンド動作を示す。ＤＴＣ３は、ベクタ番号ＤＴＣＶＥＣに対応したベクタ領域をリードする（ＶＲステート）。ＤＴＣ３は、リードした内容に従って、データ転送情報をリードする（ＩＲステート）。ＤＴＣ３は、リードしたデータ転送情報を、ＤＴＣ３のレジスタファイルに格納する。
【０１８９】
ＤＴＣ３は、ＳＡＲで指定された転送元アドレスをリードし（ＳＲステート）、これをＤＡＲで指定された転送先アドレスへライトする（ＤＷステート）。この動作をＴＣＲＨ及びＴＣＲＬで指定された回数だけ繰り返す。ＴＣＲＨが０になったとき、ＤＴＣ３は、ＳＡＲ及びＤＡＲを先頭アドレスに戻し、ＴＣＲＬの内容をＴＣＲＨにコピーする。
【０１９０】
ＤＴＣ３は、ＤＡＲで指定された転送先アドレスをリードし（ＤＲステート）、これをＳＡＲで指定された転送元アドレスへライトする（ＳＷステート）。この動作をＴＣＲＨ及びＴＣＲＬで指定された回数だけ繰り返す。ＴＣＲＨが０になったとき、ＤＴＣ３は、ＳＡＲ及びＤＡＲを先頭アドレスに戻し、ＴＣＲＬの内容をＴＣＲＨにコピーする。
【０１９１】
ＤＴＣ３は、データ転送情報の内で更新されたものを、元のアドレスへライトする（ＩＷステート）。
【０１９２】
なお、チェイン動作が指定されている場合は、ＶＡＲ３４に基づき、次のデータ転送情報をリード（ＩＲステート）して次のデータ転送を行う。
【０１９３】
なお、ＳＲステート及びＤＷステートにおいて、ＴＣＲＨが０になったとき、ＤＴＣ３は、ＳＡＲ及びＤＡＲを先頭アドレスに戻さず、ＤＲステート及びＳＷステートにおいて、ＳＡＲをＳＭ１ビット及びＳＭ０ビットの指定と逆方向に、ＤＡＲをＤＭ１ビット及び ＤＭ０ビットの指定と逆方向に、インクリメント／デクリメントしてもよい。
【０１９４】
ＤＴＣ３の状態遷移は、ＤＲステート、ＳＷステートを追加するように拡張する。
【０１９５】
次いで、実施の形態６におけるＦＬＴ２３の使用例について説明する。図２３に、デュアルブロックモードのラウンド動作を用いる場合のＦＬＴ２３の使用例を示す。
【０１９６】
ＤＴＣ３は、係数データ（Ｂ２、Ｂ１、Ａ２、Ａ１及びＡ０）と、フィードバックデータ（Ｙ［ｎ−２］、Ｙ［ｎ−１］、Ｘ［ｎ−２］及びＸ［ｎ−１］）と、入力データ（Ｘ［ｎ］）とを保持する領域を、ＲＡＭ５上の連続したアドレスに設ける。
【０１９７】
ＤＴＣ３は、データ転送情報ＩＮＦ６１により、Ａ／Ｄ変換器変換データ（入力データ）を、ＲＡＭ５上の入力データ領域にデータ転送する。このときの転送モードは、ノーマルモードである。
【０１９８】
ＤＴＣ３は、データ転送情報ＩＮＦ６２により、ＲＡＭ５上の係数データ、フィードバックデータ及び入力データ領域の内容を、ＦＬＴ２３の係数データレジスタ（Ｂ２、Ｂ１、Ａ２、Ａ１及びＡ０）、入力データレジスタ（Ｙ［ｎ−２］、Ｙ［ｎ−１］、Ｘ［ｎ−２］、Ｘ［ｎ−１］及びＸ［ｎ］）にデータ転送する。このときの転送モードは、デュアルブロックモードであり、ラウンド動作を用いる。このときのブロックサイズは１０である。入力データレジスタＸ［ｎ］へのライトが行われることで、ＦＬＴ２３がフィルタ演算動作を開始する。
【０１９９】
ＤＴＣ３は、データ転送情報ＩＮＦ６２により、更に演算後のＦＬＴ２３の係数データレジスタ（Ｂ２、Ｂ１、Ａ２、Ａ１及びＡ０）、入力データレジスタ（Ｙ［ｎ−２］、Ｙ［ｎ−１］、Ｘ［ｎ−２］、Ｘ［ｎ−１］及びＸ［ｎ］）の内容を、ＲＡＭ５上の係数データ、フィードバックデータ及び入力データ領域へデータ転送する。
【０２００】
ＤＴＣ３は、データ転送情報ＩＮＦ６３により、出力データレジスタＹ［ｎ］をリードして、リードしたデータを、所定のタイマのデータレジスタにライトする。このときの転送モードは、ノーマルモードである。
【０２０１】
上述の通り、本実施の形態では、ラウンド動作を行うことにより、２つの逆方向のデータ転送を１組のデータ転送として実行することができる。その結果、フィルタ演算器へのデータ設定のためのデータ転送や遅延データなどの演算結果の保持のためのデータ転送を、少ないデータ転送情報で行うことができる。これにより、データ転送情報を保持するＲＡＭの領域を節約できる。また、データ転送情報のリード／ライトの回数を減らして、データ転送を高速化することができる。
【０２０２】
実施の形態７
実施の形態７にかかるマイクロコンピュータについて説明する。本実施の形態では、ＭＣＵ１００のＩＮＴ２の具体例について説明する。図２４に、割り込みコントローラ（ＩＮＴ）２のブロック図を示す。
【０２０３】
ＩＮＴ２は、割り込み／ＤＴＣ判定回路５１、ＤＴＣ許可レジスタ（ＤＴＥＲとも称する）５２、優先順位判定回路５３、ラッチ回路５４及びデコーダ回路５５を有する。
【０２０４】
ＭＣＵ１００の割り込み要因には、内部割り込み及び外部割り込みの２種類があり、それぞれ割り込み要因フラグを有する。割り込みの要因フラグは、タイマ、通信、アナログの機能ブロックが所定の状態になったときに、「１」にセットされる。例えば、外部割り込み要因フラグは、外部割り込み入力端子が所定のレベルになったとき、又は、所定の信号変化が発生したときに「１」にセットされる。割り込み要因フラグは、ＣＰＵ１のライト動作によって「０」にクリアされるほか、ＤＴＣ３によるデータ転送が終了したときに「０」にクリアされる。
【０２０５】
割り込み要因フラグの各ビットの出力は、割り込み許可回路に入力される。この割り込み許可回路には、さらに割り込み許可レジスタの内容、すなわち割り込み許可ビットが入力される。割り込み許可レジスタは、ＣＰＵ１からリード／ライト可能なレジスタで、対応する割り込みを許可するか、禁止するか、を選択する。
【０２０６】
割り込み要因フラグが「１」にセットされ、割り込み許可ビットが「１」にセットされていると割り込みが要求される。割り込みを要求である割り込み許可回路の出力は、割り込み／ＤＴＣ判定回路５１に入力される。
【０２０７】
また、割り込み／ＤＴＣ判定回路５１には、ＤＴＣ許可レジスタ（ＤＴＥＲとも称する）５２の内容が入力される。割り込み／ＤＴＣ判定回路５１は、割り込みが要求されたとき、ＤＴＣ３を起動するか、ＣＰＵ１に割り込みを許可するかを選択する。
【０２０８】
ＤＴＣ許可レジスタ５２の割り込み要因に対応したビットが「１」にセットされていると、割り込み／ＤＴＣ判定回路５１は、ＤＴＣ３の起動を要求し、ＣＰＵ１の割り込みを要求しない。ＤＴＣ許可レジスタ５２の割り込み要因に対応したビットが「０」にクリアされていると、割り込み／ＤＴＣ判定回路５１は、ＣＰＵ１の割り込みを要求し、ＤＴＣ３の起動を要求しない。割り込み／ＤＴＣ判定回路５１は、起動要求を優先順位判定回路５３に出力する。
【０２０９】
優先順位判定回路５３は、ＣＰＵ１の割り込み要求、ＤＴＣ３の起動要求のそれぞれについて、複数の割り込み要求が発生している場合に優先順位を判定する。ＣＰＵ１の起動要求の優先順位判定を行う際には、マスクレベルの判定を併せて行うことができる。ＣＰＵ１の起動要求の優先順位の判定は、プライオリティレジスタや割り込みマスクレベルなどに従って制御される。
【０２１０】
優先順位判定回路５３は、最高の優先順位を有する起動要求を選択し、ベクタ番号を生成する。ＣＰＵ１の起動要求を選択した場合、優先順位判定回路５３は、ＣＰＵ１の割り込み要求ＣＰＵＩＮＴとベクタ番号ＣＰＵＶＥＣとを生成する。ＤＴＣ３の起動要求を選択した場合、ＤＴＣ３の起動要求信号ＤＴＣＲＥＱとベクタ番号ＤＴＣＶＥＣとを生成する。起動要求信号ＤＴＣＲＥＱは、ＤＴＣ３に入力される。ベクタ番号ＤＴＣＶＥＣはラッチ回路５４に入力される。
【０２１１】
また、ラッチ回路５４には、ＤＴＣ動作開始信号及びＤＴＣ動作終了信号がＤＴＣ３から入力される。すなわち、ＤＴＣ３が動作を開始するとＤＴＣ動作信号が活性状態になり、ラッチ回路５４はベクタ番号ＤＴＣＶＥＣのラッチないし保持する。ＤＴＣ３のデータ転送が終了してＤＴＣ動作終了信号が活性状態になると、ラッチ回路５４によるラッチは解除される。
【０２１２】
ベクタ番号ＤＴＣＶＥＣとＤＴＣ動作終了信号とは、デコーダ回路５５に入力される。これにより、対応する割り込み要因フラグに対する要因クリア信号が活性状態になって、対応する割り込み要因フラグ又はＤＴＥビットがクリアされる。
【０２１３】
所要の割り込み要因でＤＴＣ３を起動する場合、ＣＰＵ１は予めデータ転送情報などを所要のアドレスにライトするとともに、当該割り込み要因に対応する割り込み許可ビットと、ＤＴＣ許可レジスタ５２の当該割り込み要因に対応するＤＴＥビットを「１」にセットしておく。
【０２１４】
当該割り込み要因フラグが「１」にセットされると、ＤＴＣ３が起動される。ＤＴＣ３が所定のデータ転送を実行している状態では、ＤＴＣ３はデータ転送毎に当該割り込み要因フラグを「０」にクリアする。このとき、ＣＰＵ１に割り込みは要求されない。
【０２１５】
所定のデータ転送を終了すると、ＤＴＣ３はデータ転送後にＤＴＥビットを「０」にクリアする。このとき、当該割り込み要因フラグは「１」に保持され、ＤＴＥビットが「０」にクリアされているので、ＣＰＵ１に割り込みが要求される。ＣＰＵ１は、所定のデータ転送の終了に対応した処理を実行するとともに、データ転送情報やＤＴＥビットの再設定を行う。
【０２１６】
実施の形態８
実施の形態８にかかるマイクロコンピュータについて説明する。本実施の形態では、カメラを制御するカメラシステムに上述のＭＣＵを適用した例について説明する。図２５に、ＭＣＵを含むカメラシステム１０００のブロック図を示す。
【０２１７】
カメラシステム１０００は、カメラボディＭＣＵ１００１、カメラレンズＭＣＵ１００２、防振モータ１００３、レンズの速度および角速度を測定するセンサ１００４を含む。このうち、カメラレンズＭＣＵ１００２には、実施の形態１〜７で説明したＭＣＵのいずれかが用いられる。カメラレンズＭＣＵ１００２は、所要の制御対象の制御、防振モータの制御のほか、焦点や絞りのモータ制御（不図示）を行う。
【０２１８】
カメラレンズＭＣＵ１００２は、防振モータ用のタイマＳ（ＴＳとも称する）、焦点モータ用のタイマＦ（ＴＦとも称する）、絞りモータ用のタイマＤ（ＴＤとも称する）、インターバルタイマ機能を持つタイマＩ（ＴＩとも称する）を含む。これらのタイマＳ、タイマＦ、タイマＤ及びタイマＩは、それぞれ、タイマ７に相当する。また、防振用センサの出力は、Ａ／Ｄ変換器ＡＤＣに入力される。Ａ／Ｄ変換器ＡＤＣは、アナログモジュール９に相当する。
【０２１９】
防振制御の場合、カメラレンズＭＣＵ１００２は、ヨー方向とピッチ方向などの複数の軸に対して、シフトブレと角度ブレなどの複数の制御を行う。例えば、シフトブレに対しては、レンズの速度のセンサの出力をＡ／Ｄ変換器ＡＤＣで変換し、入力データ（速度）を得る。入力データ（速度）を、ＲＡＭ５に所要個数保持（遅延データ）するとともに、ＦＬＴに与えて、フィルタ演算を行う。そして、ＦＬＴの演算結果を、防振用タイマの所定のデータレジスタなどに与えることで、防振（シフトブレ）制御を実現される。
【０２２０】
この場合、タイマＩのコンペアマッチなどで、所定のＡ／Ｄ変換器ＡＤＣの変換開始を行うようにする。Ａ／Ｄ変換器ＡＤＣの変換終了割り込みでＤＴＣ３を起動し、係数データ及び遅延データとともに、入力データ（速度）をＦＬＴに与える。さらに、ＤＴＣ３は、フィルタ演算結果を所定のタイマのデータレジスタにデータ転送する。
【０２２１】
カメラレンズＭＣＵ１００２は、１つのＤＴＣと１つのＦＬＴを用いて、ヨー方向とピッチ方向、シフトブレと角度ブレに対して、この制御動作を行うことができる。
【０２２２】
この際、ＣＰＵ１はスリープないしスタンバイモードなどの低消費電力状態とすることもできる。防振は、フレーミング中なども含め、カメラ使用中の多くの場合に動作するので、カメラシステムの低消費電力化に大きく寄与できる。ＤＴＣはＣＰＵより論理規模が小さく、かつ高速に処理を行うことができるので、低消費電力化の効果を高めることができる。バッテリで駆動されるカメラシステムなどにおいては、低消費電力化が重要であることは言うまでもない。
【０２２３】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、データ転送情報は３２ビット単位としたが、データ転送情報は任意のビット単位とすることができる。データ転送情報の配置も任意に変更することができる。具体的には、アドレスレジスタのビット数は３２ビットに限定されるものではなく、ＣＰＵまたはマイクロコンピュータのアドレス空間に応じて変更でき、例えば１６Ｍバイトのアドレス空間であれば２４ビットとすればよい。ＭＲのビット配置を分割して、２４ビットのＳＡＲ及びＤＡＲと組み合わせてもよい。
【０２２４】
ＣＰＵで動作するプログラムは、ＲＯＭに配置するほか、外部メモリに配置してもよい。同様に、ＣＰＵの作業領域であるメモリはＲＡＭに限らず、外部メモリとしてもよい。また、マイクロコンピュータは、ＲＯＭ及びＲＡＭの一方又は両方を内蔵しなくてもよい。 
【０２２５】
ＤＴＣのデータ転送情報、入力データブロック、係数データブロックについては、処理速度や消費電力などの点で、マイクロコンピュータ内蔵のＲＡＭに格納するのが有利であるものの、外部メモリに格納してもよい。
【０２２６】
フィルタ演算器は、ＦＩＲフィルタ又はＩＩＲフィルタに限定されず、フィルタ演算器以外にも、複数のデータの設定が必要な任意の演算器に適用可能である。
【０２２７】
上述の実施の形態では、データ転送情報をＲＡＭなどの記憶装置に格納する方式に基づき、説明を行った。しかし、使用できるデータ転送情報が実装されたハードウェアによって制限されるものの、いわゆるＤＭＡコントローラに対しても上述の実施の形態で説明したデータ転送を適用可能である。
【０２２８】
また、ＤＴＣのほかに、ＤＭＡコントローラなどの他のデータ転送装置を設けることもできる。ＤＴＣとＤＭＡコントローラの機能を１つの機能モジュールとすることもできる。
【０２２９】
ＤＴＣ、割り込みコントローラの具体的な回路構成については、上述の実施の形態で説明した機能と同等の機能を有する種々の回路構成に変更可能である。ＢＳＣや、バスやウェイトなどのバス動作の詳細については省略したが、これらは適宜実装可能である。マイクロコンピュータの構成についても、例示に過ぎず、適宜変更可能である。
【０２３０】
上述の実施の形態では、マイクロコンピュータついて説明したが、これは例示に過ぎない。上述の実施の形態で説明したＤＴＣは、データ処理装置、データ処理装置と独立した演算器を内蔵した半導体集積回路などの各種の装置に適用することができる。
【０２３１】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【符号の説明】
【０２３２】
１  中央処理装置（ＣＰＵ）
２  割り込みコントローラ（ＩＮＴ）
３  データ転送装置（ＤＴＣ）
４  ＲＯＭ
５  ＲＡＭ
６  バスコントローラ（ＢＳＣ）
７  タイマ
８  通信モジュール
９  アナログモジュール
１０  入出力ポート（Ｉ／Ｏ）
１１  内部バス
２１−２３  フィルタ演算器
３１  ＤＴＣＣＮＴ
３２  ＢＩＦ
３３  ＶＧ  
３４  ＶＡＲ
３５  ＡＬＵ
３６  内部バス
４１  ＩＮＣ
４２  シフタ
４３  ＡＵ
４４  ＤＥＣ
５１  割り込み／ＤＴＣ判定回路
５２  割り込み許可レジスタ
５３  優先順位判定回路
５４  ラッチ回路
５５  デコーダ回路
１００  マイクロコンピュータ（ＭＣＵ）
２１１−２１３、２２１、２２２  乗算器
２１４  加算器
１０００  カメラシステム
１００１  カメラボディＭＣＵ
１００２  カメラレンズＭＣＵ
１００３  防振モータ
１００４  センサ
ＡＤＣ  Ａ／Ｄ変換器
ＢＳ１−ＢＳ５  内部バス
ＣＰＵＶＥＣ        ベクタ番号
ＤＴＣＲＥＱ        起動要求信号
ＤＴＣＶＥＣ        ベクタ番号
ＩＮＦ１１、ＩＮＦ１２、ＩＮＦ２１−ＩＮＦ２３、ＩＮＦ３１−ＩＮＦ３５、ＩＮＦ４１−ＩＮＦ４５、ＩＮＦ５１−ＩＮＦ５３、ＩＮＦ６１−ＩＮＦ６２  データ転送情報
Ｘ［ｎ］、Ｘ［ｎ−１］、Ｘ［ｎ−２］  入力データレジスタ
Ｙ［ｎ］、Ｙ［ｎ−１］、Ｙ［ｎ−２］  出力データレジスタ
ＣＲ  転送カウントレジスタ
ＤＡＲ  デスティネーションレジスタ
ＤＲ  データレジスタ
ＭＲ  モードレジスタ
ＳＡＲ  ソースアドレスレジスタ
ＴＲ  テンポラリレジスタ
Ｂ１〜Ｂ５  内部バス
ＤＴＣＲＥＱ  データ転送要求信号
ＤＴＣＶＥＣ  ベクタ番号
【図１Ａ】
2018085130.tif 000007
【図１Ｂ】
2018085130.tif 000008
【図２】
2018085130.tif 000009
【図３】
2018085130.tif 000010
【図４】
2018085130.tif 000011
【図５】
2018085130.tif 000012
【図６】
2018085130.tif 000013
【図７】
2018085130.tif 000014
【図８】
2018085130.tif 000015
【図９】
2018085130.tif 000016
【図１０】
2018085130.tif 000017
【図１１】
2018085130.tif 000018
【図１２】
2018085130.tif 000019
【図１３】
2018085130.tif 000020
【図１４】
2018085130.tif 000021
【図１５】
2018085130.tif 000022
【図１６】
2018085130.tif 000023
【図１７】
2018085130.tif 000024
【図１８】
2018085130.tif 000025
【図１９】
2018085130.tif 000026
【図２０】
2018085130.tif 000027
【図２１】
2018085130.tif 000028
【図２２】
2018085130.tif 000029
【図２３】
2018085130.tif 000030
【図２４】
2018085130.tif 000031
【図２５】
2018085130.tif 000032