JP2015130058A - 半導体装置 - Google Patents

半導体装置 Download PDF

Info

Publication number
JP2015130058A
JP2015130058A JP2014001105A JP2014001105A JP2015130058A JP 2015130058 A JP2015130058 A JP 2015130058A JP 2014001105 A JP2014001105 A JP 2014001105A JP 2014001105 A JP2014001105 A JP 2014001105A JP 2015130058 A JP2015130058 A JP 2015130058A
Authority
JP
Japan
Prior art keywords
data
data transfer
transfer
source address
mode
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014001105A
Other languages
English (en)
Other versions
JP6316593B2 (ja
Inventor
三ッ石 直幹
Naomiki Mitsuishi
直幹 三ッ石
誠司 猪狩
Seiji Inokari
誠司 猪狩
勝正 内山
Katsumasa Uchiyama
勝正 内山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2014001105A priority Critical patent/JP6316593B2/ja
Priority to US14/586,926 priority patent/US10049063B2/en
Publication of JP2015130058A publication Critical patent/JP2015130058A/ja
Application granted granted Critical
Publication of JP6316593B2 publication Critical patent/JP6316593B2/ja
Priority to US16/034,201 priority patent/US20180322079A1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/32Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/24Interrupt
    • G06F2213/2406Generation of an interrupt or a group of interrupts after a fixed or calculated time elapses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/28DMA
    • G06F2213/2802DMA using DMA transfer descriptors
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

【課題】半導体装置において、簡易な構成にて、テーブルデータを参照することで、入力データに対応する出力データを得ること。
【解決手段】
MCU100は、起動要求を受けたときに、データ転送情報INF11に基づいて転送元アドレス領域から転送先アドレス領域へデータを転送するDTC3を有する。DTC3は、第1の転送元アドレス情報からリードしたデータに基づいて、第2の転送元アドレス情報に演算を行い、演算結果に基づいてリードを行い、リードしたデータを転送先アドレス情報に基づいてライトする。
【選択図】図1B

Description

本発明は半導体装置に関し、例えばマイクロコンピュータに関する。
一般に、シングルチップマイクロコンピュータは、中央処理装置(CPU:Central Processing Unit)を中心にして、プログラム保持用のROM(Read Only Memory:リードオンリメモリ)、データ保持用のRAM(Random Access Memory:ランダムアクセスメモリ)、及びデータ又は信号の入出力を行うための入出力回路などの機能ブロックが、一つの半導体基板上に形成されている。このようなシングルチップマイクロコンピュータは、様々な機器制御に用いられる。
シングルチップマイクロコンピュータの機器制御において、割り込みなどのイベントに呼応して、データ転送を行う要求がある。CPUは命令の組み合わせによって任意の処理を実現できるものの、割り込み処理を行う場合には、処理の流れを切り替えるために例外処理、スタックの退避・復帰処理、復帰命令の実行が必要になる。この場合、データ転送行う際の命令リードなどのCPUの動作時間が大きくなりがちである。
上記のデータ転送の問題点を解消するため、シングルチップマイクロコンピュータにデータ転送装置を設け、少ないハードウェアで多数の周辺処理装置(入出力回路)からの要求に応じたデータ転送を行う技術が提案されている(特許文献1)。この技術では、転送すべきデータが格納されているメモリの位置を示す転送元アドレスなどのデータ転送情報が、記憶装置(RAM)に格納される。また、データ転送に必要なすべての情報が記憶装置(RAM)のどこに格納してあるかを示すアドレスを格納するベクタテーブルが設けられる。そして、データ転送の起動要求があった場合に、起動要求に対応してベクタテーブルの内容を参照する手段と、ベクタテーブルの内容からデータ転送に必要なすべての情報を得る手段が設けられる。この技術では、少ないハードウェアでデータ転送を実現することができるが、データ転送の内容については考慮されていない。
これに対し、データ転送装置でのデータ転送の応用範囲を広げるため、データ転送のモードによって異なるデータ転送を行う技術も提案されている(特許文献2)。この技術では、データ転送のモードとして、リピート転送モード、ブロック転送モードが提案されている。これにより、転送先や転送元のアドレスの制御や、転送回数の選択などを行うことが可能である。例えば、本技術をプリンタなどのシステムに適用すれば、ステッピングモータの制御、プリンタの印字データ制御が可能である。また、受信データのメモリへの蓄積に好適である。また、この技術では、データ転送情報を、データ転送装置内部に専用のハードウェアとして保有し、このハードウェアを有効に利用するため、ショートアドレスモード/フルアドレスモードの転送情報の構成を選択可能にすることも示されている。本例では、ステッピングモータは回転角と移動量が対応しており、フィードバックが不要であり、所定の数のデータを、所定の順番で転送することができればよい。本技術では、転送元アドレス及び転送先アドレスの一方はRAMなどとなるが、RAMの記憶内容を更新しながら使用することは考えられていない。
データ転送に必要な情報を記憶装置に格納して、データ転送装置の1回の動作で、少なくとも1つ以上の情報によるデータ転送が指定可能(チェイン転送ないしチェイン動作)な技術も提案されている(特許文献3)。本技術によれば、任意の起動要因で、任意の数の転送を可能としたことにより、様々な用途に適用可能となる。その結果、システム構成上の自由度を向上し、使い勝手を向上させることができる。
データ転送装置内にあらかじめ設定したデータと転送するデータとの間で比較や簡単な演算が行える演算器を内蔵した技術も提案されている(特許文献4)。この技術では、データ転送を、専用のハードウェアであるデータ転送装置で実行するので、CPUより高速なデータ転送を実現できる。その結果、CPUの割り込み処理の頻度を低減できるので、効率的な処理を行うことができる。
特開平1−125644号公報 特開平5−307516号公報 特開平7−129537号公報 特開2000−194647号公報
ところが、発明者らは、上述の技術には、以下に示す問題点が有ることを見出した。近年、マイクロコンピュータが内蔵する機能及び制御対象は増加しており、マイクロコンピュータの制御もより高い精度が求められるようになっている。例えば、入力データに対応したデータ出力を行うことが求められるが、入力データの種類ごとに専用のハードウェアを設けると、マイクロコンピュータの物理的規模が増大してしまう。また、マイクロコンピュータの構造が複雑化し、出力データを得るための処理時間も長くなってしまう。
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
一実施の形態によれば、半導体装置は、データ転送情報に基づいて転送元アドレス領域から転送先アドレス領域へデータを転送するデータ転送装置を備え、前記データ転送装置は、第1の転送元アドレス情報からリードしたデータに基づいて、第2の転送元アドレス情報に演算を行い、演算結果に基づいてリードを行い、リードしたデータを転送先アドレス情報に基づいてライトする。
一実施の形態によれば、半導体装置において、簡易な構成にて、テーブルデータを参照することで、入力データに対応する出力データを得ることができる。
実施の形態1にかかるマイクロコンピュータの構成を模式的に表したブロック図である。 データ転送装置(DTC)の基本的なデータの流れを示す図である。 データ転送情報の構成を示す図である。 データ転送装置(DTC)の構成を模式的に表したブロック図である。 データ転送装置(DTC)の状態遷移を示す図である。 分岐モードでのデータ転送を示す図である。 分岐モードでのデータ転送情報の指定の一例を示す図である。 シフトモードでのデータ転送を示す図である。 シフトモードで使用するテーブルの指定方法の一例を示す図である。 オフセットモードでのデータ転送を示す図である。 オフセットモードで使用するテーブルの指定方法の一例を示す図である。 比例モードでのデータ転送を示す図である。 微分モードでのデータ転送を示す図である。 積分モードでのデータ転送を示す図である。 転送モードがブロック加算モードである場合のデータ転送を示す図である。 分岐モードの変形例でのデータ転送を示す図である。 分岐モードの変形例でのDTCの状態遷移図である。 アドレス演算モードでのデータ転送を示す図である。 アドレス演算モードで使用するテーブルの指定方法の一例を示す図である。 割り込みコントローラ(INT)のブロック図である。 マイクロコンピュータ(MCU)を含むカメラシステムのブロック図である。
以下、図面を参照して本発明の実施の形態について説明する。各図面においては、同一要素には同一の符号が付されており、必要に応じて重複説明は省略される。
実施の形態1
実施の形態1にかかる半導体装置であるマイクロコンピュータ100について説明する。図1Aに、実施の形態1にかかるマイクロコンピュータ100の構成を模式的に表したブロック図を示す。図1Bに、マイクロコンピュータ100に含まれるデータ転送装置(DTC)の基本的なデータの流れを示す。以下、図1Aを参照して、マイクロコンピュータ100の構成を説明する。なお、マイクロコンピュータは、以下ではMCU(Micro Controller Unit)と略記する。
MCU100は、中央処理装置(CPU)1、割り込みコントローラ(Interrupt Controller:以下、INTと称する)2、データ転送装置(データトランスファコントローラ(Data Transfer Controller:以下、DTCと称する))3、リードオンリメモリ(ROM)4、ランダムアクセスメモリ(RAM)5、バスコントローラ(Bus Controller:以下、BSCと称する)6、タイマ7、通信モジュール8、アナログモジュール9、入出力ポート(I/O)10及び内部バス11などを有する。通信モジュール8として、例えばシリアルコミュニケーションインタフェースなどが設けられる。アナログモジュール9として、例えばアナログ/デジタル(A/D)変換器およびデジタル/アナログ(D/A)変換器などが設けられる。
MCU100では、動作の主体となるのはCPU1である。CPU1は、主にROM4から命令を読込んで動作する。DTC3は、CPU1の設定に基づき、CPU1に代ってデータ転送を行う。
INT2は、タイマ7、通信モジュール8及びアナログモジュール9などからの割み込み要求や、MCU1の外部からの複数の外部割り込み要求信号に基づくI/O10からの割り込み要求を受けて、CPU1又はDTC3に割り込み要求又はデータ転送要求を出力する。また、INT2は、割り込み要求信号による処理を開始又は終了したときに、割り込みをクリアする信号である割込みクリア信号を、タイマ7、通信モジュール8、アナログモジュール9及びI/O10のそれぞれの割込み信号又は割り込み要因フラグに対応して出力する。
BSC6は、CPU1及びDTC3からのバスリクエスト信号を受けて、内部バス11の占有に対する調停をして、バス使用許可信号を出力する。BSC6は、CPU1及びDTC3と、バスリクエスト、バスアクノレジ、バスコマンド、ウェイト、アドレス及びデータなどのインタフェースを行い、内部バス11に接続されたRAMやその他の機能ブロック及びモジュールに対するリード/ライトを実現する。
上述の通り、DTC3は、データ転送情報に基づいて、データ転送を行う。図2に、データ転送情報の構成を示す。データ転送情報は、モードレジスタ(MRとも称する)、第1ソースアドレスレジスタ(SAR1とも称する)、第2ソースアドレスレジスタ(SAR2とも称する)、デスティネーションアドレスレジスタ(DARとも称する)、データレジスタ(DRとも称する)及び転送カウントレジスタ(CRとも称する)からなる。
MRは、DTC3が行うデータ転送のモードを指定する。DTC3は、MRが指定するデータ転送のモードによって、DR、SAR1、SAR2、DAR及びCRのうちから必要なデータを利用する。
CRは、ブロック転送カウントレジスタ(BTCRとも称する)と転送カウントレジスタ(TCRとも称する)とに分割される。TCRは、8ビットのTCRHと8ビットのTCRLと に分割される。
これらのレジスタは、1組分の回路がDTC3の内部に存在し、特に制限はされないものの、CPU1のアドレス空間上には存在しない。これらのレジスタに格納されるべきデータ転送情報は、必要組数がCPU1のアドレス空間上の、RAM5などの所定のデータ転送情報配置領域に配置される。
次いで、MRのビット構成について説明する。MRのビット31〜16は、データ転送モードの設定と、テーブル参照用のデータ転送機能の入力データと指定と、を行う。MRのビット15〜0は、テーブル参照用のデータ転送機能のテーブル参照の指定と、通常データ転送機能のデータ転送の指定と、を行う。このとき、テーブルは、複数のデータないしパラメータを、アドレス空間上に所定の順序で予め配置したものである。
MRのビット31はTLUビットであり、データ転送において、テーブル参照を実行するか否かを選択する。TLUビットが「0」にクリアされている場合は、テーブル参照を実行しない。このときのデータ転送情報は、後述するDREビットの値により変化する。TLUビットが「1」で、DREビットが「0」にクリアされている場合、データ転送情報はMR、SAR2、DAR及びCRの132ビット(32ビット×4本)となる。TLUビットが「1」で、DREビットが「1」にセットされている場合、データ転送情報はMR、DR、SAR2、DAR及びCRの160ビット(32ビット×5本)となる。
TLUビットが「1」にされている場合、テーブル参照が実行される。このとき、後述するSFMビット、OFMビット、PRMビット、DRMビット、INMビット、BRMビット、AEMビット及びNOPビットに基づいて、テーブル参照モードが指定される。テーブル参照モードについては、後述する。
MRのビット30〜23は、それぞれSFMビット、OFMビット、PRMビット、DRMビット、INMビット、BRMビット、AEMビット及びNOPビットである。これらのビットは、テーブル参照を実行する場合のテーブル参照モードを指定する情報である。
SFMビットが「1」の場合、テーブル参照モードはシフトモードとなる。OFMビットが「1」の場合、テーブル参照モードはオフセットモードとなる。PRMビットが「1」の場合、テーブル参照モードは比例モードとなる。DRMビットが「1」の場合、テーブル参照モードは微分モードとなる。INMビットが「1」の場合、テーブル参照モードは積分モードとなる。BRMビットが「1」の場合、テーブル参照モードは分岐モードとなる。AEMビットが「1」の場合、テーブル参照モードはアドレス演算モードとなる。NOPビットが「1」の場合、テーブル参照モードはノーオペレーションモードとなる。
シフトモードでは、データ転送情報は、後述するCREビットの値により変化する。CREビットが「1」にセットされている場合、データ転送情報は、MR、SAR1、SAR2、DAR及びCRの160ビット(32ビット×5本)となる。CREビットが「0」にクリアされている場合、データ転送情報は、MR、SAR1、SAR2及びDARの132ビット(32ビット×4本)となる。
オフセットモード、比例モード及び微分モードでは、データ転送情報は、後述するCREビットの値により変化する。CREビットが「1」にセットされている場合、データ転送情報は、MR、DR、DAR1、SAR2、DAR及びCRの182ビット(32ビット×6本)となる。CREビットが「0」にクリアされている場合、データ転送情報は、MR、DR、SAR1、SAR2及びDARの160ビット(32ビット×5本)となる。
積分モード及びアドレス演算モードでは、データ転送情報は、MR、SAR1、SAR2、DAR及びCRの160ビット(32ビット×5本)となる。
分岐モードでは、データ転送情報は、MR、SAR1及びSAR2の96ビット(32ビット×3本)となる。
ノーオペレーションモードでは、データ転送情報は、MRのみの32ビット(32ビット×1本)となる。
なお、各テーブル参照モードでのデータ転送の詳細については、後述する。
ビット22〜20は、SF[2:0]ビットであり、入力データのシフトを+3〜−3ビットで指定する。+のときは左算術シフト、−のときは右算術シフトを行う。
ビット19及びビット18は、それぞれS1M[1:0]ビットであり、データ転送後にSAR1をインクリメントするか、デクリメントするか、又は固定にするかを指定する。
ビット17、16はISz[1:0]ビットであり、入力データのリードをバイトサイズ、ワードサイズ、又はロングワードサイズのいずれで行うかを選択する。
MRのビット15及びビット14は、SM[1:0]ビットであり、データ転送後にSAR2をインクリメントするか、デクリメントするか、又は固定にするかを指定する。
MRのビット13及びビット12は、DM[1:0]ビットであり、データ転送後にDARをインクリメントするか、デクリメントするか、又は固定にするかを指定する。
MRのビット11及び10は、TMD[1:0]ビットであり、データの転送モードを指定する。TMD[1:0]ビットが「00」のとき、転送モードはノーマルモードとなる。TMD[1:0]ビットが「01」のとき、転送モードはリピートモードとなる。TMD[1:0]ビットが「10」とき、転送モードはブロック転送モードとなる。TMD[1:0]ビットが「11」とき、転送モードはブロック加算モードとなる。各転送モードの詳細については、後述する。
MRのビット9はDIRビットであり、転送元及び転送先のいずれをリピート領域とし、いずれをブロック領域とするかを指定する。
MRのビット7及び6は、それぞれSz[1:0]ビットであり、1回のデータ転送をバイトサイズ、ワードサイズ及びロングワードサイズのいずれで行うかを指定する。
ビット3はDREビットである。DREビットが「0」にクリアされている場合は、DRを使用せず、リードしたデータをライトする。DREビットが「1」にセットされている場合は、DRを使用し、リードしたデータからDRの内容を減算したものをライトする。
ビット2はCREビットである。CREビットが「0」にクリアされている場合は、起動要求信号に応じて、無制限にDTCの動作を行う。このとき、転送モードが通常モードの場合、CRを使用しない。CREビットが「1」にセットされている場合は、CRに初期設定した値に応じて、DTC3が動作する。
MRのビット1はNXTE1ビットであり、1つの起動要因に対してデータ転送を終了するか、次のデータ転送を行うかを指定する。NXTE1ビットを「0」にクリアした場合、データ転送情報リード及びデータ転送後、データ転送情報をライトしてDTC3の動作を終了する。NXTE1ビットを「1」にセットした場合、データ転送情報リード及びデータ転送後、データ転送情報をライトする。更に、連続したアドレスからデータ転送情報をリードする。そして、このデータ転送情報で指定されるデータ転送を行った後、データ転送情報をライトする。このように、データ転送情報のライト、データ転送及びデータ転送情報のライトの一連の処理を複数回連続して行う動作を、チェイン動作と称する。MRのビット0はNXTE0ビットであり、CRが「0」になったときに、チェイン動作を行うかを指定する。
DTC3の構成について説明する。図3に、DTC3の構成を模式的に表したブロック図を示す。DTC3は、データ転送制御ブロック(DTCCNTとも称する)31、バスインタフェース(BIFとも称する)32、ベクタ生成ブロック(VGとも称する)33、ベクタアドレスレジスタ(VARとも称する)34、MR、SAR1、SAR2、DAR、CR、DR、演算器(ALUとも称する)35及び内部バス36を有する。
DTCCNT31は、INT2からの起動要求信号DCTREQ及びMRの内容に基づき、DTC3の制御を行う。
BIF32は、DTC3の内部バス36とMCU1の内部バス11とのインタフェースを行う。このインタフェースには、バスリクエスト、バスアクノレジ、バスコマンド、ウェイト、アドレス、データなどが含まれる。
VG33は、INT2から与えられるベクタ番号DTCVECに従って、ベクタアドレスを生成する。例えば、ベクタ番号DTCVECを4倍などとし、所定のオフセットを加算する。
VAR34は、ベクタアドレスからリードしたデータ転送情報の先頭アドレスを格納する。
MR、SAR1、SAR2、DAR及びCRは、データ転送情報の先頭アドレスから順次リードしたデータ転送情報を格納する。
ALU35は、論理演算、シフト及び算術演算などの機能を持ち、所定の順序でこれらの演算を実行する。図示しないが、内部バス36は複数のバスを有し、複数のバスを介して、SAR1、SAR2、DAR、CR及びDRの内容をALU35に与えることができる。ALU35は、SAR1、SAR2、DAR、CR及びDRを用いた演算を行うことができる。
ノーマルモード
TMD[1:0]ビットが「00」の場合、転送モードはノーマルモードとなる。ノーマルモードでは、1回の起動で、SARで示される転送元アドレスからDARで示される転送先アドレスへ、1回のデータ転送を行う。データ転送の終了後、SARは、SM[1:0]ビットに応じて、インクリメント、デクリメント又は固定される。DARは、DM[1:0]ビットに応じて、インクリメント、デクリメント又は固定される。その後、TCRがデクリメントされる。
ノーマルモードでは、以上で説明したデータ転送とレジスタ操作を、起動要因が発生するごとに、TCRで指定された回数だけ繰り返す。
CRで指定された回数だけ繰り返し動作を行った後、起動要因となった割り込みがCPUに要求される。
リピートモード
TMD[1:0]ビットが「01」の場合、転送モードはリピートモードとなる。DIRビットが「0」にクリアされている場合、転送元アドレスをリピート領域として設定する。DIRビットが「1」にセットされている場合、転送先アドレスをリピート領域として設定する。リピートモードでは、TCRHを転送カウントレジスタ、TCRLを転送回数保持レジスタとして使用する。リピート領域の大きさは、TCRHで指定される。データ転送の開始前には、TCRHとTCRLとには、同じ値が初期値として設定される。
リピートモードでは、1回の起動で、SARで示される転送元アドレスからDARで示される転送先アドレスへ、1回のデータ転送を行う。データ転送の終了後、SARは、SM[1:0]ビットに応じて、インクリメント、デクリメント又は固定される。DARは、DM[1:0]ビットに応じて、インクリメント、デクリメント又は固定される。その後、TCR(TCRH)がデクリメントされる。リピートモードでは、以上で説明したデータ転送とレジスタ操作を、起動要因が発生するごとに、TCR(TCRH及びTCRL)で指定された回数だけ繰り返す。
指定された回数のデータ転送が終了すると、TCRHは「0」となる。その後、TCRLに保持した内容に基づいて、SAR、DAR及びTCRHの一部又は全部の初期設定値が回復される。
TCRHが「0」になった場合、TCRLの内容が転送カウンタレジスタのTCRHに転送される。これにより、TCRHは初期値に回復される。また、SAR又はDARは、以下の演算により、初期設定値に回復される。
DIRビットが「1」にセットされているとき、式(1)に示す演算OP1が行われ、SARは初期設定値に回復される。
Figure 2015130058
DIRビットが「0」にクリアされているとき、式(2)に示す演算OP2が行われ、DARは初期設定値に回復される。
Figure 2015130058
上記の演算を行うには、リピート領域に指定したSAR又はDARに対して、TCRLの内容を、内部バス36を介してALU35に入力する。ALU35は、式(1)又は式(2)に示す演算を行うことで、SAR又はDARが初期化される。
ブロック転送モード
TMD[1:0]ビットが「10」の場合、転送モードはブロック転送モードとなる。DIRビットが「0」にクリアされている場合、転送元アドレスをブロック領域として設定する。DIRビットが「1」にセットされている場合、転送先アドレスをブロック領域として設定する。ブロック転送モードでは、SARを転送元アドレス指定レジスタ、DARを転送先アドレス指定レジスタ、TCRHをブロックサイズカウントレジスタ、TCRLをブロックサイズ保持レジスタ、BTCRをブロック転送カウントレジスタとして使用する。
ブロック転送モードでは、1回の起動で、SARで示される転送元アドレスからDARで示される転送先アドレスへ、ブロックサイズ分のデータ転送を行う。データ転送ごとに、SARは、SM[1:0]ビットに応じて、インクリメント、デクリメント又は固定される。DARは、DM[1:0]ビットに応じて、インクリメント、デクリメント又は固定される。その後、TCR(TCRH)がデクリメントされる。
指定された回数のデータ転送が終了すると、TCRHが「0」となる。この場合、リピートモードと同様に、TCRLに保持した内容に基づいて、SAR、DAR及びTCRHの一部又は全部の初期設定値が回復される。
また、ブロック領域のデータ転送が終了すると、BTCRをデクリメントする。ブロック転送モードでは、以上で説明したブロック領域のデータ転送を、起動要因が発生するごとに、BTCRで指定された回数だけ(BTCRが「0」になるまで)繰り返す。
図4に、DTC3の状態遷移図を示す。図4に示す状態遷移は、主として、DTC3のデータ転送制御ブロック(DTCCNT)31に実装される。
DTC3は、INT2から起動要求信号DTCREQが与えられると、VRステートに遷移する。VRステートに遷移後、DTC3は、ベクタ番号DTCVECに従って、VG33で生成したベクタアドレスに基づき、ベクタ領域(データ転送情報先頭アドレス配置領域)に格納されたデータ転送情報の先頭アドレスをリードする。DTC3は、リードした内容を、VAR34に格納する。
次に、DTC3は、IRステートに遷移する。IRステートに遷移後、DTC3は、VRステートにてリードした先頭アドレスに従って、データ転送情報配置領域に格納されたデータ転送情報をリードする。この際、DTC3は、MR、DR、SAR1、SAR2、DAR及びCRをリードする。
DTC3は、TLUビットが「0」にクリアされている状態で、ノーマルモードのデータ転送を行う場合は、SRステート、DWステート、IWステートと遷移する。
SRステートでは、DTC3は、SAR2の内容に従い、転送元アドレスの内容をリードする。また、DTC3は、MRの内容に従い、SAR2のインクリメントなどを行う。
DWステートでは、DTC3は、リードした内容を、DARの内容に従い、転送先アドレスへライトする。また、DTC3は、MRの内容に従い、DARのインクリメントやCRのデクリメントなどを行う。
IWステートでは、DTC3は、VAR34の内容に従って、MR、SAR1、SAR2、DAR及びCRをデータ転送情報配置領域に書き戻す。但し、IWステートでは、MR、DR、SAR、DAR及びCRの内で更新されなかったもののライトを行わないようにすることができる。例えば、DARが固定の場合、DARのライトは行わない。
なお、DTC3は、MRの内容に従い、ブロック転送モードのデータ転送を行う場合は、上述のSRステート、DWステートの動作を、TCRで指定された回数だけ繰り返す。
その後、チェイン動作を行わない場合、DTC3は、CRの内容に従って、起動要因となった割り込み要因フラグ又はDTEビットをクリアし、動作を終了して、停止状態に戻る。
チェイン動作を行う場合、DTC3は、IWステートからIRステートへと戻り、別のデータ転送を行うことができる。
一方、DTC3は、TLUビットが「1」にクリアされている状態(テーブル参照を行う場合)で、ノーマルモードのデータ転送を行う場合は、IRステートからDRステートに遷移する。
DRステートでは、DTC3は、テーブルを参照するための入力データをリードする。その後は、上述の通り、SRステート、DWステート、IWステートと遷移する。SRステートでは、入力データとSAR2の内容に基づき、所要のテーブルを参照(リード)する。その後は、通常データ転送モードと同様である。
本実施の形態では、テーブル参照モードのうち、分岐モードを選択して動作を行う。 分岐モードでは、TLUビットが「1」、かつ、BRMビットが「1」の場合、テーブル参照モードは分岐モードとなる。図5に、分岐モードでのデータ転送を示す。
CPU1は、所要のデータ転送情報を、所定の転送情報アドレス領域にライトしておく。テーブルデータとして、当該データ転送情報による動作に引き続いて実行するデータ転送情報の先頭アドレスのオフセットを用意しておく。この状態で、割り込み要因が発生してDTC3が起動されると、対応するベクタ領域からデータ転送情報先頭アドレスをリードする(VRステート)。
リードしたアドレスに基づいて、データ転送情報配置領域からデータ転送情報INF11をリードする(IRステート)。このときのデータ転送情報INF11は、MR、SAR1及びSAR2となる。
SAR1で指定したアドレスから、ISz[1:0]ビットで指定したデータサイズのデータをリードする(DRステート)。ここでリードしたデータを判定データと称する。判定データは、前記の、引き続いてチェイン動作として実行するデータ転送情報の先頭アドレスのオフセットである。
ALU35は、リードした判定データを、Sz[1:0]ビットで指定した転送データサイズ(テーブルのデータサイズ)に応じて、1、2、4倍し、又は、0、1、2ビットだけシフトして、テーブルのオフセット値を生成する。シフト量は、必要に応じてSF[2:0]ビットで指定することができる。そして、テーブルのオフセット値をSAR2に加算して転送元アドレスとして使用する。
前記の転送元アドレスから転送データをリードする(SRステート)。なお、リードした転送データのライトは行わない(DWステート)。
その後、SAR2の更新、及び元のデータ転送情報INF11のアドレスにライトすることなく、IRステートでリードしたMR、SAR1及びSAR2に相当する、VARのインクリメントを行い、データ転送情報INF11による処理を終了する(IWステート)。
次いで、テーブルからリードした内容に16を乗算し、又は、4ビットシフトした結果を、データ転送情報INF11の次のアドレスに相当するVARに加算する。これにより、チェイン動作として起動するデータ転送情報の先頭アドレスが生成される。なお、テーブルに16を乗算するのは、データ転送情報が4ロングワード(すなわち16バイト)であることに対応したものである。
次いで、生成されたチェイン動作で起動するデータ転送情報の先頭アドレスに基づいて、データ転送情報INF22をリードし、データ転送を行う。
分岐モードでは、例えば、シリアルコミュニケーションインタフェース(SCI)などの通信手段を介してコマンドを入力し、受信完了割り込みでDTC3を起動する。このコマンドを判定データとしてテーブル参照を行い、テーブル参照結果に対応したデータ転送情報を得ることができる。そして、引き続き、生成したデータ転送情報に基づき、データ転送(チェイン動作)を行う。これによれば、コマンドに対応したパラメータ(テーブルに格納されているオフセット)でデータ転送情報を指定することができる。その結果、パラメータに対応して、柔軟に転送元アドレス及び転送先アドレスを選択することができる。
図6に、分岐モードでのデータ転送情報の指定の一例を示す。分岐モードでは、判定データに従ってチェイン動作でのデータ転送に用いるデータ転送情報を切り替えるために、必要な組数のデータ転送情報が予め用意される。
データ転送情報INF11は、ベクタで指定される。データ転送情報INF11による1つめのデータ転送の終了後、VARに格納したアドレスにデータ転送情報INF11をライトするとともに、アドレスのインクリメントを行い、データ転送情報INF11を格納した次のアドレスをVARに保持する。
分岐モードでは、データ転送情報INF11が更新されないので、実際のライトは行わず、DTC3内部でアドレス(VAR)のインクリメントのみを行うようにする。
VARと判定データに16を乗算したものとをALU35で加算して、データ転送情報INF22の先頭アドレスを得る。
なお、判定データに16を乗算せずに、判定データにVARを加算してもよい。これによれば、データ転送情報が可変長である場合でも判定データの設定によって対応できる。
複数のコマンドないしパラメータに対し、同一のデータないしデータ転送情報INF12を使用することもできる。例えば、CPUに委ねるべき複数のコマンドに対しては、データ転送情報INF12においてノーオペレーションモードを指定し、DTEビットを「0」にクリアして、CPUに割り込みを要求するようにする。
また、例えば、ステータス要求コマンドに対応したパラメータに「0」を設定した場合、データ転送情報INF11に連続する領域のデータ転送情報INF12に、所定のステータスレジスタの所定の送信データレジスタへのデータ転送などを設定するようにする。CPUの処理を必要とせず、コマンドに対する応答をDTCのみで実現できる。
以上、本構成によれば、入力データに対応した出力データを、テーブルを参照して得ることによって、制御に対応した制御を実現できる。また、テーブルを利用することで、制御に対応した制御を行うために要する専用のハードウェアを最小限にすることができる。また、入力データの有効なビットを指定する(DRとの論理積、およびシフト)ことで、テーブルの情報量を小さくすることができる。
また、本構成によれば、イベントに呼応した通常のデータ転送(通常データ転送)機能と、テーブル参照を行うデータ転送(テーブル参照)機能を、1つのハードウェアで実現できる。これらの機能は、データ転送情報で切り替えることができる。つまり、1回のデータ転送に必要な分だけ専用のハードウェアを設ければ足りる。よって、機能の追加により、使用するデータ転送情報の量が増え、その結果ハードウェア規模が増えても、半導体装置(マイクロコンピュータ)全体の物理的な規模の増加を抑制することができる。換言すれば、通常のデータ転送機能と、テーブル参照を行うデータ転送機能とを、1つのハードウェアで実現できるので、半導体装置(マイクロコンピュータ)の物理的な規模の増加を抑制することができる。また、割込みコントローラやDTCベクタなどを共通化して、ハードウェア構成を簡略化することができる。
本構成では、CRを無効とする指定を行うことができる。これにより、所定回数のデータ転送を行うこととは別に、半導体装置(マイクロコンピュータ)の状態に応じた制御を任意の回数実行することができる。その結果、データ転送情報を短縮して、DTC動作の高速化と、メモリの利用効率の向上と、を実現できる。また、CRを無効とすることで、データ転送情報の更新を行わない、すなわち、データ転送情報の書き戻しを不要とすることができる。
本構成によれば、DTCがCPUに代わって、データ転送やテーブル参照を実行可能である。これにより、CPUに割り込みを要求する頻度を低減し、CPUを低消費電力状態とする期間を長くすることができる。また、CPUが割り込み処理にあたって実行すべき例外処理、スタックの退避・復帰操作、及び、復帰命令の実行を不要とすることができ、プログラムの簡略化やシステムの効率化に寄与することができる。また、イベントの発生から所要の動作の実行までの時間を短縮し、いわゆる応答性を向上することができる。更に、DTCは、CPUより論理規模が小さく、かつ高速に処理を行うことができる。これにより、DTC動作中にCPUを低消費電力状態とすることで、半導体装置(マイクロコンピュータ)の低消費電力化を実現することができる。
また、本実施の形態で説明したデータ転送装置は、特に使用用途は限定されず、RAMなどの汎用的な記憶装置にデータ転送情報を格納できるものである。このようなデータ転送装置には、以下の利点がある。
(1)データ転送の数を増やすことができる。いわゆるDMA(Direct Memory Access)コントローラのように、データ転送情報をデータ転送装置自身の専用のハードウェアとして持つ方式では、実装されたハードウェアによってデータ転送の数が制限される。これに対し、データ転送装置は、データ転送情報を使用用途の限定されないRAMに格納するので、データ転送の数を増やすことが容易であり、利用者の種々の使用方法に対応することができる。
(2)いわゆるDMAコントローラのように、起動要因の選択をデータ転送装置自身の制御レジスタによる指定およびマイクロコンピュータのインタフェースとして実装する方式では、多くの割り込みないしイベントに対応するのが困難である。これに対し、データ転送装置は、割り込み要因を利用して、CPUに割り込みを要求するか、DTCにデータ転送を要求するかを選択することができる。これにより、多くの割り込みないしイベント発生に対して、データ転送を行うことができる。
(3)チェイン動作など1回の起動時に実行するデータ転送の数を増やすことができ、異なるデータ転送を組み合わせて機能を実現できる。
(4)データ転送情報の構成を変更できる。また、データ転送情報を構成するデータの増減ができる。
(5)専用のハードウェアは、最低限(1回)のデータ転送に必要な分をもうければよい。そのため、MCUの機能を追加して、ハードウェア規模が増えても、MCU全体の物理的な規模の増加を抑制することができる。
(6)データ転送装置自身の専用のハードウェアとして、制御レジスタなどを持たないため、CPUからのライトとの競合など、複雑な動作条件を考慮する必要がない。よって、MCUの物理的な規模の増加を抑止することに寄与できる。
実施の形態2
実施の形態2にかかるマイクロコンピュータについて説明する。本実施の形態では、テーブル参照モードがシフトモードである場合のMCU100の動作について説明する。図7に、シフトモードでのデータ転送を示す。TLUビットが「1」かつSFTビットが「1」の場合、テーブル参照モードはシフトモードとなる。
CPU1は、所要のデータ転送情報を、所定の転送情報アドレス領域にライトしておく。テーブルデータとして、当該データ転送情報でライトするデータ(出力データとも称する)、例えば、速度パラメータを用意しておく。この状態で、割り込み要因が発生し、DTC3が起動されると、対応するベクタ領域から、データ転送情報先頭アドレスをリードする(VRステート)。
リードしたアドレスに基づいて、データ転送情報配置領域からデータ転送情報INF21をリードする(IRステート)。シフトモードでは、データ転送情報INF21は、MR、SAR1、SAR2及びDARである。
SAR1で指定したアドレスから、ISz[1:0]ビットで指定したデータサイズのデータをリードする(DRステート)。ここでは、リードしたデータをシフトデータと称する。
ALU35は、リードしたシフトデータを、Szビット[1:0]で指定した転送データサイズ(テーブルのデータサイズ)に応じて、1、2、4倍し、又は、0、1、2ビットだけシフトする演算を行う。シフト量は、必要に応じて、SF[2:0]ビットで指定することができる。そして、演算結果をSAR2に加算して転送元アドレスとして使用する。DTC3は、SAR2の内容として、加算結果をセットする。
SAR2で指定した転送元アドレスから転送データをリードし(SRステート)、DARで指定した転送先アドレスにライトする(DWステート)。転送先アドレスは、例えばタイマなどとされる。
その後、データ転送情報の内で更新が行われたもの、具体的には、SAR2を元のアドレスにライトする(IWステート)。
図8に、シフトモードで使用するテーブルの指定方法の一例を示す。例えば、モータの速度を指定するデータの制御において、モータを駆動するタイマに速度データを与える場合を想定する。この速度パラメータは、予め計算しておき、テーブルとしてROMに格納しておく。そのアドレスはSAR2で指定するものとする。この速度パラメータは、例えば16ビットであり、昇順に速度が大きくなるようにする。
Sz[1:0]ビットでワードサイズを指定し、入力データ(シフトデータ)を2倍してSAR2に加算する。初期設定の段階では、SAR2はパラメータ0を指定するようにする。
モータを駆動する必要が生じた場合は、シフトデータに基づき、所定の速度パラメータ、例えばパラメータmをタイマに転送する。別のタイマやアナログ入力でモータの状態を監視し、加速が十分と判断したならば、負方向のシフトデータ、すなわち、より速度の遅い速度パラメータ(パラメータn)を得て、これをタイマに転送する。
この例では、例えばマイクロコンピュータの制御するモータの状態をA/D変換器(アナログモジュール9に相当)で入力する。この入力を変換完了割り込みとして、DTC3を起動できる。そして、A/D変換器での変換結果をシフトデータとして使用し、モータを駆動するタイマに速度データ(出力データ)を与えることができる。モータの状態に対応した速度データは、予め計算してテーブルとしてROMに格納しておくので、実動作状態においては演算を行う必要はなく、テーブルを参照すればよい。
上記説明した様に、シフトモードを用いることで、マイクロコンピュータの制御対象の状態をフィードバックしたデータ転送を行うことができる。
実施の形態3
実施の形態3にかかるマイクロコンピュータについて説明する。本実施の形態では、テーブル参照モードがオフセットモードである場合のMCU100の動作について説明する。図9に、オフセットモードでのデータ転送を示す。TLUビットが「1」、かつ、OFMビットが「1」の場合、テーブル参照モードはオフセットモードとなる。
まず、シフトモードの場合と同様に、VRステート、IRステートと遷移する。オフセットモードでのデータ転送情報INF31は、MR、DR、SAR1、SAR2及びDARである。
SAR1で指定したアドレスから、データをリードする(DRステート)。ここでは、リードしたデータをオフセットデータと称する。
DRには、リードしたオフセットデータの有効なビットを指定するマスクデータを保持しておく。例えば、オフセットデータが32ビットで、上位8ビットと下位4ビットを無視する場合は、マスクデータとして「00FFFFF0」をセットする。なお、上位8ビットを無視したので、符号拡張を行うようにするとよい。また、下位4ビットを無視したので、一旦4ビット右シフトを行う。そして、Sz[1:0]ビットで指定したサイズに応じて、0、1、2ビットだけ左シフトを行う。左シフト終了後の結果を、SAR2に加算して、加算結果を転送元アドレスとして使用する。DTC3は、SAR2の内容として、加算結果をセットする。
SAR2で指定した転送元アドレスから転送データをリードし(SRステート)、DARで指定した転送先アドレスにライトする(DWステート)。
その後、SAR2の更新、すなわち、データ転送情報の内で更新が行われたSAR2を元のアドレスにライトすることなく、処理を終了する(IWステート)。
図10に、オフセットモードで使用するテーブルの指定方法の一例を示す。テーブルの構造は、シフトモードの場合と同様とすることができる。
SAR2は、テーブルの基準アドレスを保持する。図10では、アドレス領域の中央を基準アドレス(パラメータm)としているが、先頭アドレスなどの他のアドレスを基準アドレスとしてもよい。入力データ(オフセットデータ)に基づくオフセットを基準アドレスに加算して、出力データ(パラメータn)が得られる。
そして、入力データの有効なビットを指定する(DRとの論理積)ことで、必要なテーブルを小さくすることができる。
実施の形態4
実施の形態4にかかるマイクロコンピュータについて説明する。本実施の形態では、テーブル参照モードを応用したPID制御を行う場合のMCU100の動作について説明する。本実施の形態では、テーブル参照モードとして、比例モード(P)、積分モード(I)及び微分モード(D)を用いる。そして、比例モード、積分モード及び微分モードでのデータ転送結果を転送モードの1つであるブロック加算モードでのデータ転送で加算することで、PID制御を実現する。以下、各テーブル参照モードとブロック加算モードでのデータ転送について説明する。
比例モード
比例モードについて説明する。図11に、比例モードでのデータ転送を示す。TLUビットが「1」、かつ、PRMビットが「1」の場合、テーブル参照モードは比例モードとなる。
まず、シフトモードの場合と同様に、VRステート、IRステートと遷移する。比例モードのデータ転送情報INF41は、MR、DR、SAR1、SAR2及びDARである。
SAR1で指定したアドレスから、データをリードする(DRステート)。ここでは、リードデータを現在値データと称する。
DRには、目標値データを保持しておく。そして、現在値データと目標値データとの偏差を求める。そして、Sz[1:0]ビットで指定したサイズに応じて、0、1、2ビットだけ左シフトを行う。左シフト終了後の結果をSAR2に加算して、加算結果を転送元アドレスとして使用する。DTC3は、SAR2の内容として、加算結果をセットする。
その後、オフセットモードと同様に、SRステート、DWステートと遷移する。
その後、SAR2の更新、すなわち、データ転送情報の内で更新が行われたSAR2を元のアドレスにライトすることなく、処理を終了する(IWステート)。
現在値データは、A/D変換器(アナログモジュール9に相当)の変換結果ないしタイマの位相計数などによって得ることができる。DTC3は、A/D変換器の変換終了割り込みやインターバルタイマ(タイマ7に相当)割り込みなどによって起動することができる。
比例モードでは、入力データである制御対象の現在値と目標値との偏差に応じた出力データを、テーブルを参照して得ることができる。例えば、偏差が大きければ出力データを大きく、偏差が小さければ出力データを小さくするといった比例制御を実現することができる。
微分モード
次いで、微分モードについて説明する。図12に、微分モードでのデータ転送を示す。TLUビットが「1」かつDRMビットが「1」の場合、テーブル参照モードは微分モードとなる。
まず、シフトモードの場合と同様に、VRステート、IRステートと遷移する。微分モードのデータ転送情報INF51は、MR、DR、SAR1、SAR2及びDARである。
SAR1で指定したアドレスから、現在値データをリードする(DRステート)。
DRには前回の(古い)現在値データを保持しておき、リードした新しい現在値データと前回の現在値データとの比較を行う。この減算結果は微分値(速度)に相当する。そして、Sz[1:0]ビットで指定したサイズに応じて、0、1、2ビットだけ左シフトを行う。左シフト終了後の結果をSAR2に加算して、加算結果を転送元アドレスとして使用する。DTC3は、SAR2の内容として、加算結果をセットする。DRの内容を、リードした新しい現在値データに置き換える。
その後、オフセットモードと同様に、SRステート、DWステートと遷移する。
その後、データ転送情報の内で更新が行われたもの、具体的には、DR(リードした新しい現在値データ)を元のアドレスにライトする(IWステート)。
微分モードによれば、入力データである制御対象の現在値の2回の変化(微分値)に応じた出力データを、テーブルを参照して得ることができる。例えば、変化が大きければ出力データを小さく、変化が小さければ出力データを大きく、といった微分制御が実現できる。
積分モード
次いで、積分モードについて説明する。図13に、積分モードでのデータ転送を示す。TLUビットは「1」にセットされる。積分モードでは、チェイン動作により結合された2つのデータ転送を行う。TMD[1:0]ビットは「01」(リピートモード)にセットされ、NXTE1ビットは「1」にセット(チェイン動作)される。
まず、1つめのデータ転送を行う。このときのデータ転送情報INF61は、MR、DR、SAR1、DAR及びCRである。このとき、DREビットは「1」にセットされる。
シフトモードの場合と同様に、VRステート、IRステートと遷移する。
SAR1で指定したアドレスから、現在値データをリードする(SRステート)。
DRには目標値データを保持しておき、リードした現在値データとの減算を行う。そして減算結果をDARが指定するアドレスにライトする(DWステート)。このライトは、リピートモードと同様の動作にて行う。これにより、CRのTCRHで指定した数だけ(図13では4個)、現在値と目標値との偏差データ(偏差n〜偏差(n+3))を蓄積する。
その後、データ転送情報の内で更新が行われたもの、具体的には、DAR及びCRを元のアドレスにライトする(IWステート)。
次いで、2つめのデータ転送を行う。このときのデータ転送情報INF62は、MR、SAR1、SAR2、DAR及びCRである。このとき、INMビットが「1」にセットされる。
データ転送情報配置領域からデータ転送情報INF62をリードする(IRステート)。データ転送情報INF62は、データ転送情報INF61に連続したアドレスからリードされる。
SAR1で指定したアドレスから、現在値と目標値との偏差データを、ブロック転送モードと同様に、SAR1をインクリメント又はデクリメントし、TCRHをデクリメントしながら、TCRLで指定した回数分リードする(DRステート)。そして、TCRHが「0」になると、SAR1及びTCRHの内容を、所期設定値に戻す。このとき、データサイズはISz[1:0]ビットで指定される。
リードした偏差データをDTC3内部で加算し、加算した数に応じて除算又は右シフトを行う。除算又は右シフトは、加算したデータ数(TCRLの内容)などに応じて自動的に行うように構成してもよいし、SF[2:0]ビットで指定するようにしてもよい。除算又は右シフトした結果を、Sz[1:0]ビットで指定したサイズに応じて、0、1、2ビットだけ左シフトする。左シフトした結果を、SAR2に加算して、転送元アドレスとして使用する。
SAR2で指定した転送元アドレスから転送データをリードする(SRステート)。そして、リードしたデータをDARで指定した転送先アドレスにライトする(DWステート)。
その後、SAR2の更新、すなわち、データ転送情報の内で更新が行われたSAR2を元のアドレスにライトすることなく、処理を終了する(IWステート)。
なお、データ転送情報INF61による1つめのデータ転送でライトし、データ転送情報INF62による2つめのデータ転送でリードする領域は、動作開始前に初期化を行っておくようにする。
積分モードによれば、入力データである制御対象の現在値と目標値との偏差の一定時間の累積に応じた出力データを、テーブルを参照して得ることができる。例えば、累積値が大きければ出力データを大きく、累積値が小さければ出力データを小さく、といった積分制御を行うことができる。
また、DRに設定した目標値データとの減算は、データ転送情報INF61による1つめのデータ転送では行わず(DRE=0)、データ転送情報INF62による2つめのデータ転送にて行う(DRE=1)ようにしてもよい。
ブロック加算モード
続いて、データの転送モードの1つであるブロック加算モードについて説明する。図14に、転送モードがブロック加算モードである場合のデータ転送を示す。ブロック加算モードでは、TLUビットが「0」にクリア(通常データ転送機能)され、TMD1及びTMD0ビットが「11」(ブロック加算モード)にセットされる。
DTC3が起動されると、データ転送情報先頭アドレスをリード(VRステート)し、データ転送情報配置領域からデータ転送情報をリードする(IRステート)。ブロック加算モードでのデータ転送情報は、MR、SAR2、DAR及びCRである。
SAR2で指定したアドレスから、ブロック転送モードと同様に、SAR2をインクリメント又はデクリメントし、TCRHをデクリメントしながら、TCRLで指定した回数(図14では3回)分リードする(SRステート)。TCRHが0になると、SAR2及びTCRHの内容を所期設定値に戻す。このときデータサイズはSz[1:0]ビットで指定される。
リードしたデータは、DTC3内部で加算し、DARで指定した転送先アドレスにライトする(DWステート)。
その後、SAR2の更新、すなわち、データ転送情報の内で更新が行われたSAR2を元のアドレスにライトすることなく、処理を終了する(IWステート)。
比例モード、積分モード、微分モードの転送先アドレスを、RAM上の連続したアドレスにし、これをブロック加算モードで重畳し、モータ制御などを行う、所要のタイマにライトするようにできる。例えば、インターバルタイマでDTCを起動し、比例モード、積分モード、微分モード、ブロック加算モードを、チェイン動作(最後のブロック加算モード以外のNXTE1ビットを1にセット)で連続して実行するようにすることができる。入力データに対応した、PID制御を実現することができる。
実施の形態5
実施の形態5にかかるマイクロコンピュータについて説明する。本実施の形態では、実施の形態1にかかる分岐モードの変形例について説明する。図15に、分岐モードの変形例でのデータ転送を示す。この変形例では、テーブルに用意したデータの最上位ビット(MSB)によって、チェイン動作の有無を選択する。
データ転送情報INF71は、MR、DR、SAR1及びSAR2とする。初期設定において、又は、CRが「0」であるといった、一連の処理が終了した後の再設定の処理において、DRを「00000000」としておく。
SAR1で指定したアドレスから、ISz[1:0]ビットで指定したデータサイズのシフトデータをリードする(DRステート)。リードしたシフトデータとSAR2とに基づいて、転送元アドレスを生成する。
SAR2で指定した転送元アドレスから転送データをリードし、リードデータはDRに格納するとともに、テーブルをリードしたことを示すステータスとしてDRのビット31を「1」にセットする(SRステート)。なお、転送データのライトは行わない(DWステート)。
データ転送情報の内で更新が行われたもの、具体的には、DRを元のアドレスにライトする(IWステート)。
リードしたテーブルデータのMSBが「1」にセットされている場合について説明する。リードしたテーブルデータであるDRに格納したデータ(ビット31は無視する)と、VARとから、実施の形態1と同様に、チェイン動作で起動するデータ転送情報の先頭アドレスを生成する。生成した先頭アドレスに対応するデータ転送情報INF72をリードし、これに基づきデータ転送を行う。
次いで、リードしたテーブルデータのMSBが「0」にクリアされている場合について説明する。この場合、チェイン動作を行わずに処理を終了する。
次に、同一の起動要因でDTC3が起動され、データ転送情報INF71をリードしたとき、TLUビット及びSFMビットがそれぞれ「1」にセットされ、かつ、DRのビット31が「1」にセットされている場合、データ転送を行わず、前記同様に、DRに格納したデータとVARとに基づいて、チェイン動作を開始する。前記同様に、データ転送情報INF72をリードし、これに基づき、データ転送を行う。
例えば、シリアルコミュニケーションインタフェース(SCI)などの通信手段を介して、コマンドを入力し、受信完了割り込みでDTCを起動し、これを判定データとしてテーブル参照を行う場合、直ちにコマンドに対応したデータ転送を実行可能な場合と、次の受信完了割り込みを待たなければならない場合がある。
直ちにコマンドに対応したデータ転送を実行可能な場合は、テーブルデータのMSBを「1」にセットしておき、チェイン動作で、コマンドに対応したデータ転送を実行することができる。
次の受信完了割り込みを待たなければならない場合は、テーブルデータのMSBを「0」にクリアしておき、1回目のDTC起動時には、テーブルデータをDRに格納し、チェイン動作すなわちデータ転送を行わずに一旦終了する。2回目のDTC3起動時には、データ転送情報INF31をリードして、TLUビット、SFMビット及びDRのビット31がいずれも「1」にセットされているので、テーブル参照を行わず、コマンドに対応した、次のデータ転送情報INF32をリードし、これに基づき、データ転送を行う。
2回目のDTC起動時には、テーブルデータのMSBによらず、同一の動作にできる。
DRに、リードしたテーブルデータを格納するほか、チェイン動作の次のデータ転送情報先頭アドレスを格納するようにしてもよい。テーブルをリードしたことを示すステータスは、DRを使用するほか、MRの適切なビットを使用してもよい。
図16に、分岐モードの変形例でのDTCの状態遷移図を示す。
IRステートにおいて、TLUビット、SFMビット、DRのビット31がいずれも「1」にセットされていれば、再度IRステートに遷移し、次のデータ転送情報のリードを行う。
以上、本構成によれば、テーブル参照モードが分岐モードである場合に、リードしたデータに含まれる情報に基づいて、チェイン動作の実行の是非を判断することが可能となる。
実施の形態6
実施の形態6にかかるマイクロコンピュータについて説明する。本実施の形態では、テーブル参照モードがアドレス演算モードである場合のMCU100の動作について説明する。図17に、アドレス演算モードでのデータ転送を示す。TLUビットが「1」かつAEMビットが「1」の場合、テーブル参照モードはアドレス演算モードとなる。
DTC3が起動されると、対応するベクタ領域から、データ転送情報先頭アドレスをリードする(VRステート)。
リードしたアドレスに基づいて、データ転送情報配置領域からデータ転送情報INF81をリードする(IRステート)。このときのデータ転送情報INF81は、MR、SAR1、SAR2、DAR及びCRである。
SAR1で指定したアドレスから、ISz[1:0]ビットで指定したデータサイズのデータをリードする(DRステート)。ここでは、リードしたデータをアドレス演算データと称する。
リードしたアドレス演算データは、ALU35で、Sz[1:0]ビットで指定した転送データサイズに応じて1、2、4倍し、又は0、1、2ビットだけシフトする演算を行う。演算結果を、一旦、DTC3内部(例えばDR)に保持する。
SAR2で指定した転送元アドレスから転送データをリードし(SRステート)、DARで指定した転送先アドレスにライトする(DWステート)。そして、CRのデクリメントを行う。
DIRビットが「0」のときは、SM[1:0]ビットで指定されたインクリメント又はデクリメントに代わり、シフトしたアドレス演算データをSAR2に加算又は減算し、結果をSAR2に格納する。
DIRビットが「1」のときは、DM[1:0]ビットで指定されたインクリメント又はデクリメントに代わり、シフトしたアドレス演算データをDARに加算又は減算し、結果をDARに格納する。
その後、データ転送情報INF81の内で更新が行われたもの、具体的には、SAR2又はDARとCRとを、元のアドレスにライトする(IWステート)。
上記のデータ転送を、CR(TCRH)で指定した回数だけ繰り返す。
図18に、アドレス演算モードで使用するテーブルの指定方法の一例を示す。i番目のデータ転送にてデータDiのデータ転送を行う場合、アドレス演算データ(テーブル)からパラメータPiをリードする。パラメータPiに基づき、データDiのデータ転送後に、転送元アドレス(SAR2)または転送先アドレス(DAR)に対して演算を行う。
次のi+1番目のデータ転送で、データDi+1のデータ転送を行うとき、データDiとデータDi+1のアドレスは連続ではなく、パラメータPiに基づいて、間隔が挿入される。
この間隔は、各データ転送に対して、アドレス演算データ(テーブル)に含まれるパラメータで指定することができる。このため、DTC3は、テーブルを参照することで、不規則な間隔で配置されたデータを連続してデータ転送することができる。
実施の形態7
実施の形態7にかかるマイクロコンピュータについて説明する。本実施の形態では、MCU100のINT2の具体例について説明する。図19に、割り込みコントローラ(INT)2のブロック図を示す。
INT2は、割り込み/DTC判定回路51、DTC許可レジスタ(DTERとも称する)52、優先順位判定回路53、ラッチ回路54及びデコーダ回路55を有する。
MCU100の割り込み要因には、内部割り込み及び外部割り込みの2種類があり、それぞれ割り込み要因フラグを有する。割り込みの要因フラグは、タイマ、通信、アナログの機能ブロックが所定の状態になったときに、「1」にセットされる。例えば、外部割り込み要因フラグは、外部割り込み入力端子が所定のレベルになったとき、又は、所定の信号変化が発生したときに「1」にセットされる。割り込み要因フラグは、CPU1のライト動作によって「0」にクリアされるほか、DTC3によるデータ転送が終了したときに「0」にクリアされる。
割り込み要因フラグの各ビットの出力は、割り込み許可回路に入力される。この割り込み許可回路には、さらに割り込み許可レジスタの内容、すなわち割り込み許可ビットが入力される。割り込み許可レジスタは、CPU1からリード/ライト可能なレジスタで、対応する割り込みを許可するか、禁止するか、を選択する。
割り込み要因フラグが「1」にセットされ、割り込み許可ビットが「1」にセットされていると割り込みが要求される。割り込みを要求である割り込み許可回路の出力は、割り込み/DTC判定回路51に入力される。
また、割り込み/DTC判定回路51には、DTC許可レジスタ(DTERとも称する)52の内容が入力される。割り込み/DTC判定回路51は、割り込みが要求されたとき、DTC3を起動するか、CPU1に割り込みを許可するかを選択する。
DTC許可レジスタ52の割り込み要因に対応したビットが「1」にセットされていると、割り込み/DTC判定回路51は、DTC3の起動を要求し、CPU1の割り込みを要求しない。DTC許可レジスタ52の割り込み要因に対応したビットが「0」にクリアされていると、割り込み/DTC判定回路51は、CPU1の割り込みを要求し、DTC3の起動を要求しない。割り込み/DTC判定回路51は、起動要求を優先順位判定回路53に出力する。
優先順位判定回路53は、CPU1の割り込み要求、DTC3の起動要求のそれぞれについて、複数の割り込み要求が発生している場合に優先順位を判定する。CPU1の起動要求の優先順位判定を行う際には、マスクレベルの判定を併せて行うことができる。CPU1の起動要求の優先順位の判定は、プライオリティレジスタや割り込みマスクレベルなどに従って制御される。
優先順位判定回路53は、最高の優先順位を有する起動要求を選択し、ベクタ番号を生成する。CPU1の起動要求を選択した場合、優先順位判定回路53は、CPU1の割り込み要求CPUINTとベクタ番号CPUVECとを生成する。DTC3の起動要求を選択した場合、DTC3の起動要求信号DTCREQとベクタ番号DTCVECとを生成する。起動要求信号DTCREQは、DTC3に入力される。ベクタ番号DTCVECはラッチ回路54に入力される。
また、ラッチ回路54には、DTC動作開始信号及びDTC動作終了信号がDTC3から入力される。すなわち、DTC3が動作を開始するとDTC動作信号が活性状態になり、ラッチ回路54はベクタ番号DTCVECのラッチないし保持する。DTC3のデータ転送が終了してDTC動作終了信号が活性状態になると、ラッチ回路54によるラッチは解除される。
ベクタ番号DTCVECとDTC動作終了信号とは、デコーダ回路55に入力される。これにより、対応する割り込み要因フラグに対する要因クリア信号が活性状態になって、対応する割り込み要因フラグ又はDTEビットがクリアされる。
所要の割り込み要因でDTC3を起動する場合、CPU1は予めデータ転送情報などを所要のアドレスにライトするとともに、当該割り込み要因に対応する割り込み許可ビットと、DTC許可レジスタ52の当該割り込み要因に対応するDTEビットを「1」にセットしておく。
当該割り込み要因フラグが「1」にセットされると、DTC3が起動される。DTC3が所定のデータ転送を実行している状態では、DTC3はデータ転送毎に当該割り込み要因フラグを「0」にクリアする。このとき、CPU1に割り込みは要求されない。
所定のデータ転送を終了すると、DTC3はデータ転送後にDTEビットを「0」にクリアする。このとき、当該割り込み要因フラグは「1」に保持され、DTEビットが「0」にクリアされているので、CPU1に割り込みが要求される。CPU1は、所定のデータ転送の終了に対応した処理を実行するとともに、データ転送情報やDTEビットの再設定を行う。
実施の形態8
実施の形態8にかかるマイクロコンピュータについて説明する。本実施の形態では、カメラを制御するカメラシステムに上述のMCUを適用した例について説明する。図20に、MCUを含むカメラシステム1000のブロック図を示す。
カメラシステム1000は、カメラボディMCU1001、カメラレンズMCU1002、焦点モータ1003、焦点モータの位置を検出するエンコーダ1004を含む。このうち、カメラレンズMCU1002には、実施の形態1〜7で説明したMCUのいずれかが用いられる。
カメラレンズMCU1002は、焦点モータ駆動用のタイマF(TFとも称する)、エンコーダ入力用のタイマD(TDとも称する)、インターバルタイマ機能を持つタイマI(TIとも称する)を含む。これらのタイマF、タイマD及びタイマIは、それぞれ、タイマ7に相当する。カメラレンズMCU1002には、焦点モータ用のテーブルが格納されたROM4が含まれる(不図示)。また、オートフォーカスの許可や防振の許可などのスイッチを、入出力ポート(I/O)10で入力する。
カメラレンズMCU1002は、カメラボディMCU1001から、シリアルコミュニケーションインタフェース(SCI、通信モジュール8に相当)などの1回線の通信手段を介して、コマンドとそれに伴うデータを受信する。この受信完了割り込みにより、DTC3が起動する。
DTC3のテーブル参照モードを分岐モードとすることで、通信手段から入力したコマンドを解析し、コマンドに基づき所要のデータ転送を行う。
入力したコマンド(例えばステータス要求コマンド)が、レンズの所定の状態(例えば、手振れ補正の許可スイッチの状態)の返信を求めている場合について説明する。この場合、分岐モードに対応するデータ転送情報によりカメラレンズMCU1001の所定の機能ブロック(例えば、入出力ポート(I/O)の内容)を、SCIの送信データレジスタに転送することで、データの送信を行うことができる。そして、コマンドに対してチェイン動作を行うことで、CPUの処理を不要とし、かつ即座に所要の動作を完了できる。
入力したコマンドが焦点合わせコマンドの場合、引き続き、目標位置を受信する。次の受信完了割り込み発生時に、目標位置を比例モードのDRに設定し、タイマIによって、DTCを起動させる。そして、テーブルを参照して、所要の焦点モータ駆動を行うことができる。
上記動作を行うにあたり、CPU1はスリープないしスタンバイモードなどの低消費電力状態とすることができる。これにより、システムの低消費電力化に寄与できる。DTC3はCPUより論理規模が小さく、かつ高速に処理を行うことができるので、低消費電力化の効果を高めることができる。バッテリで駆動されるカメラシステムなどにおいては、低消費電力化が特に重要である。
ズームレンズの場合、ズーム位置によって、焦点モータ駆動制御を変える必要も考えられる。この場合、テーブルを複数用意し、カメラボディMCU1001から焦点合わせの指示と目標位置と使用するテーブルを受信する。そして、使用するテーブルに対応したアドレスにSAR2を設定することができる。
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、データ転送情報は32ビット単位としたが、データ転送情報は任意のビット単位とすることができる。データ転送情報の配置も任意に変更することができる。具体的には、アドレスレジスタのビット数は32ビットに限定されるものではなく、CPUまたはマイクロコンピュータのアドレス空間に応じて変更でき、例えば16Mバイトのアドレス空間であれば24ビットとすればよい。MRのビット配置を分割して、24ビットのSAR及びDARと組み合わせてもよい。MRのビット配置は任意でよく、SFMビット、OFMビット、PRMビット、DRMビット、INMビット、BRMビット、NOPビットなどはエンコードするようにしてもよい。
上述の実施の形態では、通常データ転送のときは、データ転送情報における転送元アドレスレジスタとして、ハードウェアとしてのSAR2を使用するものとしたが、これはSAR1であってもよい。また、データ転送情報に含まれる転送モード情報以外の配置は、任意に変更することができる。転送元アドレス情報は、転送先アドレス情報より前にリード可能に配置することが望ましい。
CPUで動作するプログラムは、ROMに配置するほか、外部メモリに配置してもよい。同様に、CPUの作業領域であるメモリはRAMに限らず、外部メモリとしてもよい。また、マイクロコンピュータは、ROM及びRAMの一方又は両方を内蔵しなくてもよい。
DTCのデータ転送情報、入力データブロック、係数データブロックについては、処理速度や消費電力などの点で、マイクロコンピュータ内蔵のRAMに格納するのが有利であるものの、外部メモリに格納してもよい。
上述の実施の形態では、データ転送情報をRAMなどのメモリに配置するものとして説明した。しかし、いわゆるDMAコントローラなどのように、データ転送情報を内部I/Oレジスタとして機能ブロック内に持つようにし、アドレス空間上に配置する構成とすることも可能である。
上述の実施の形態では、データ転送情報をRAMなどの記憶装置に格納する方式に基づき、説明を行った。しかし、使用できるデータ転送情報が実装されたハードウェアによって制限されるものの、いわゆるDMAコントローラに対しても上述の実施の形態で説明したデータ転送を適用可能である。
また、DTCのほかに、DMAコントローラなどの他のデータ転送装置を設けることもできる。DTCとDMAコントローラの機能を1つの機能モジュールとすることもできる。
DTC、割り込みコントローラの具体的な回路構成については、上述の実施の形態で説明した機能と同等の機能を有する種々の回路構成に変更可能である。BSCや、バスやウェイトなどのバス動作の詳細については省略したが、これらは適宜実装可能である。マイクロコンピュータの構成についても、例示に過ぎず、適宜変更可能である。
上述の実施の形態では、マイクロコンピュータついて説明したが、これは例示に過ぎない。上述の実施の形態で説明したDTCは、データ処理装置、データ処理装置と独立した演算器を内蔵した半導体集積回路などの各種の装置に適用することができる。例えば、デジタルシグナルプロセッサ(DSP)を中心にした半導体集積回路装置にも適用可能である。本発明は少なくとも、データ処理装置およびデータ転送装置を内蔵した半導体集積回路装置に適用することができる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
1 中央処理装置(CPU)
2 割り込みコントローラ(INT)
3 データ転送装置(DTC)
4 ROM
5 RAM
6 バスコントローラ(BSC)
7 タイマ
8 通信モジュール
9 アナログモジュール
10 入出力ポート(I/O)
11 内部バス
31 DTCCNT
32 BIF
33 VG
34 VAR
35 ALU
36 内部バス
51 割り込み/DTC判定回路
52 割り込み許可レジスタ
53 優先順位判定回路
54 ラッチ回路
55 デコーダ回路
100 マイクロコンピュータ(MCU)
1000 カメラシステム
1001 カメラボディMCU
1002 カメラレンズMCU
1003 防振モータ
1004 センサ
ADC A/D変換器
CPUVEC ベクタ番号
DTCREQ 起動要求信号
DTCVEC ベクタ番号
INF11、INF12、INF21、INF31、INF41、INF51、INF61、INF62、INF71、INF81、INF82、INF91 データ転送情報
CR 転送カウントレジスタ
DAR デスティネーションレジスタ
DR データレジスタ
MR モードレジスタ
SAR1、SAR2 ソースアドレスレジスタ
DTCREQ データ転送要求信号
DTCVEC ベクタ番号

Claims (14)

  1. 起動要求を受けたときに、データ転送情報に基づいて転送元アドレス領域から転送先アドレス領域へデータを転送するデータ転送装置を備え、
    前記データ転送装置は、
    第1の転送元アドレス情報からリードしたデータに基づいて、第2の転送元アドレス情報に演算を行い、
    演算結果に基づいてリードを行い、
    リードしたデータを転送先アドレス情報に基づいてライトする、
    半導体装置。
  2. 前記データ転送装置は、
    前記演算結果に基づいてリードしたデータに基づいて、次のデータ転送で用いるデータ転送情報を指定する、
    請求項1に記載の半導体装置。
  3. 前記第1の転送元アドレス情報からリードしたデータには、次のデータ転送動作を行うかを指定する情報が含まれ、
    前記データ転送装置は、前記第1の転送元アドレス情報からリードしたデータに含まれる所定の情報に基づいて、次のデータ転送動作を行うかを判断する、
    請求項2に記載の半導体装置。
  4. 前記データ転送装置は、
    前記第1の転送元アドレス情報からリードしたデータに対する論理演算及びシフト演算のいずれか一方又は両方を行った結果を、前記第2の転送元アドレス情報に加算する、
    請求項1に記載の半導体装置。
  5. 前記データ転送装置は、
    前記第1の転送元アドレス情報からリードしたデータの一部に対する論理演算及びシフト演算のいずれか一方又は両方を行った結果を、前記第2の転送元アドレス情報に加算する、
    請求項1に記載の半導体装置。
  6. 前記データ転送装置は、
    前記第1の転送元アドレス情報からリードしたデータと、前記リードしたデータに対応する目標値データと、の偏差を求め、
    前記偏差に基づいて前記第2の転送元アドレス情報に対する演算を行う、
    請求項1に記載の半導体装置。
  7. 前記データ転送装置は、
    前記第1の転送元アドレス情報からリードしたデータと、前記第1の転送元アドレス情報からリードした古いデータと、の偏差を求め、
    前記偏差に基づいて前記第2の転送元アドレス情報に対する演算を行う、
    請求項1に記載の半導体装置。
  8. 前記データ転送装置は、
    前記第1の転送元アドレス情報を複数回切り替えながら、前記第1の転送元アドレス情報からリードしたデータと、前記第1の転送元アドレス情報に隣接するデータと、の偏差を複数回求め、
    複数の前記偏差の和に基づいて前記第2の転送元アドレス情報に対する演算を行う、
    請求項1に記載の半導体装置。
  9. 前記データ転送装置は、前記データ転送情報に含まれる前記データ転送装置での演算を指定する情報に基づいて、前記第2の転送元アドレス情報に対する演算を行う、
    請求項1に記載の半導体装置。
  10. 前記データ転送装置は、
    複数の異なる前記データ転送情報のそれぞれについて前記データ転送装置がライトしたデータを加算した結果をライトする、
    請求項9に記載の半導体装置。
  11. 前記データ転送装置は、複数の転送モードのデータ転送を連続して行う、
    請求項1に記載の半導体装置。
  12. データ入出力部と、
    割り込み制御手段と、を更に備え、
    前記データ入出力部は、前記割り込み制御部に対して割り込み要求を行い、
    前記割り込み制御部は、前記割り込み要求に応じて、前記データ転送装置に対して起動要求を出力する、
    請求項1に記載の半導体装置。
  13. 中央処理装置を更に備え、
    前記割り込み制御部は、前記データ転送装置がデータ転送を終了したら、前記中央処理装置に割り込み要求を出力する、
    請求項12に記載の半導体装置。
  14. 前記中央処理装置は、前記データ転送情報を設定する、
    請求項13に記載の半導体装置。
JP2014001105A 2014-01-07 2014-01-07 半導体装置 Active JP6316593B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2014001105A JP6316593B2 (ja) 2014-01-07 2014-01-07 半導体装置
US14/586,926 US10049063B2 (en) 2014-01-07 2014-12-30 Semiconductor apparatus
US16/034,201 US20180322079A1 (en) 2014-01-07 2018-07-12 Semiconductor apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014001105A JP6316593B2 (ja) 2014-01-07 2014-01-07 半導体装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2018062537A Division JP2018101448A (ja) 2018-03-28 2018-03-28 半導体装置

Publications (2)

Publication Number Publication Date
JP2015130058A true JP2015130058A (ja) 2015-07-16
JP6316593B2 JP6316593B2 (ja) 2018-04-25

Family

ID=53495294

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014001105A Active JP6316593B2 (ja) 2014-01-07 2014-01-07 半導体装置

Country Status (2)

Country Link
US (2) US10049063B2 (ja)
JP (1) JP6316593B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6313018B2 (ja) * 2013-11-13 2018-04-18 ルネサスエレクトロニクス株式会社 設計支援装置、半導体装置及びコンパイルプログラム
JP6602579B2 (ja) 2015-07-15 2019-11-06 ルネサスエレクトロニクス株式会社 半導体装置およびシステム
JP2019106053A (ja) * 2017-12-13 2019-06-27 ルネサスエレクトロニクス株式会社 半導体装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003167726A (ja) * 2001-11-22 2003-06-13 Univ Of Washington コプロセッサ装置およびデータ転送を容易にするための方法
JP2012014436A (ja) * 2010-06-30 2012-01-19 Toshiba Corp ダイレクトメモリアクセス制御装置及び方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01125644A (ja) 1987-11-11 1989-05-18 Hitachi Ltd データ転送装置
JPH0452741A (ja) * 1990-06-14 1992-02-20 Toshiba Corp キャッシュメモリ装置
JP3490101B2 (ja) 1992-04-30 2004-01-26 株式会社ルネサステクノロジ データ転送制御装置、及び半導体集積回路装置
JP3619532B2 (ja) 1993-11-08 2005-02-09 株式会社ルネサステクノロジ 半導体集積回路装置
US6202106B1 (en) * 1998-09-09 2001-03-13 Xilinx, Inc. Method for providing specific knowledge of a structure of parameter blocks to an intelligent direct memory access controller
JP2000194647A (ja) 1998-12-28 2000-07-14 Hitachi Ltd デ―タ転送装置
US6785743B1 (en) * 2000-03-22 2004-08-31 University Of Washington Template data transfer coprocessor
JP2001350713A (ja) * 2000-06-07 2001-12-21 Hitachi Ltd 転送制御装置
JP4836488B2 (ja) * 2005-05-09 2011-12-14 株式会社東芝 データ転送装置及び半導体集積回路装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003167726A (ja) * 2001-11-22 2003-06-13 Univ Of Washington コプロセッサ装置およびデータ転送を容易にするための方法
JP2012014436A (ja) * 2010-06-30 2012-01-19 Toshiba Corp ダイレクトメモリアクセス制御装置及び方法

Also Published As

Publication number Publication date
US20180322079A1 (en) 2018-11-08
US10049063B2 (en) 2018-08-14
JP6316593B2 (ja) 2018-04-25
US20150193367A1 (en) 2015-07-09

Similar Documents

Publication Publication Date Title
US7500028B2 (en) DMA controller providing for ring buffer and rectangular block transfers
JP5989656B2 (ja) 処理クラスタ用の共有機能メモリ回路要素
EP2725498B1 (en) DMA vector buffer
JP3759647B2 (ja) 24ビットおよび16ビット算術演算の双方を実行するための装置および方法
US20130036426A1 (en) Information processing device and task switching method
US20180322079A1 (en) Semiconductor apparatus
US6728797B2 (en) DMA controller
JP6266308B2 (ja) 半導体装置
JP3605978B2 (ja) マイクロコンピュータ
CN105373496B (zh) 微型计算机
JP2005057374A (ja) A/d変換装置およびマイクロコントローラ
JP2018101448A (ja) 半導体装置
JP6275474B2 (ja) 半導体装置及びデータ転送装置
JP2018085130A (ja) データ転送装置及び半導体装置
US20230409323A1 (en) Signal processing apparatus and non-transitory computer-readable storage medium
US20030177291A1 (en) Direct access controller
JP2001216136A (ja) 加算回路およびプロセッサ
JP2004118300A (ja) Dmaコントローラ
JP2688245B2 (ja) Dma制御装置
JPH044630B2 (ja)
JP4839759B2 (ja) メモリアクセス制御方式と方法、及びプロセッサ装置
JP3936694B2 (ja) 半導体集積回路装置および半導体集積回路装置のデータ転送方法
JP2004118298A (ja) データ処理制御装置
JP2002278753A (ja) データ処理システム
JP2009026269A (ja) データ処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161003

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170621

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170718

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170914

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171219

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180209

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180227

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180328

R150 Certificate of patent or registration of utility model

Ref document number: 6316593

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150