JP3264921B2 - データ転送制御装置 - Google Patents

データ転送制御装置

Info

Publication number
JP3264921B2
JP3264921B2 JP32317590A JP32317590A JP3264921B2 JP 3264921 B2 JP3264921 B2 JP 3264921B2 JP 32317590 A JP32317590 A JP 32317590A JP 32317590 A JP32317590 A JP 32317590A JP 3264921 B2 JP3264921 B2 JP 3264921B2
Authority
JP
Japan
Prior art keywords
transfer
data
register
data transfer
address
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.)
Expired - Lifetime
Application number
JP32317590A
Other languages
English (en)
Other versions
JPH04195448A (ja
Inventor
卓 塚本
守 松田
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.)
Hitachi Ltd
Hitachi Solutions Technology Ltd
Original Assignee
Hitachi Ltd
Hitachi ULSI Systems Co Ltd
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 Hitachi Ltd, Hitachi ULSI Systems Co Ltd filed Critical Hitachi Ltd
Priority to JP32317590A priority Critical patent/JP3264921B2/ja
Publication of JPH04195448A publication Critical patent/JPH04195448A/ja
Application granted granted Critical
Publication of JP3264921B2 publication Critical patent/JP3264921B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Bus Control (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はデータ転送制御技術さらにはメモリと入出力
装置(I/O)間のデータ転送方式に適用して特に有効な
技術に関し、例えばシングルチップマイクロコンピュー
タやダイレクトメモリアクセス(DMA)コントローラに
利用して有効な技術に関する。
〔従来の技術〕
テータプロセッサシステムにおいて、メモリと入出力
装置(I/O)間で中央処理ユニット(CPU)を介さずに、
直接データを転送可能にするデバイスとしてたとえば、
ダイレクトメモリアクセス(DMA)コントローラが提供
されている。
DMAコントローラは、JP−A−59−53928,JP−A−61
−198351,JP−A−63−29868,JP−A−63−163560及びJ
P−A−1−50153などに開示される様に種々の方式が提
案される。これらの日本特許公開公報のDMA転送方式
は、1回の転送要求に対し転送語数(転送回数、又はレ
ングス)レジスタ内にストアされた転送語数データの値
に対応する回数だけ、データ転送を連続して行なう方式
である。
〔発明が解決しようとする課題〕
しかしながら、従来のDMAコントローラは、単にCPUが
命令を使ってデータを転送すめよりも高速に特定アドレ
ス間においてデータ転送を行なうだけのものであり、第
5図(B)に示すようにアドレス空間上において互いに
離れた位置にある2つのデータDATA1,DATA2を1回の転
送要求で転送するようなことはできなかった。そのた
め、DMA転送をポート等の周辺I/Oの複雑な制御に利用す
るようなことはできなかった。
例えば、CPUのポートから所定の波形パルスを出力さ
せたいようなときは、DMA転送を用いてポートに定期的
に書込みを行なうことで実現できる。そのDMAの転送要
求にはタイマの割込み要求を使用するのが一般的であ
る。この場合、タイマからの転送要求によりDMAコント
ローラはポートへのデータ書込みの他、タイマのフラグ
クリアを含む条件の再設定を行なわなければならない。
ところが従来のDMAコントローラは、1回の転送要求に
対しては1回の転送しか実現できないためDMA転送によ
るパルスの出力制御を実現することができなかった。
本発明の目的は、転送効率の向上されたデータ転送方
法を提供することにある。
さらに本発明の他の目的は、転送効率の向上されたデ
ータ転送方法を実現可能なダイレクトメモリアクセスコ
ントローラ及びシングルチップマイクロコンピュータを
提供することにある。
この発明の前記ならびにそのほかの目的と新規な特徴
については、本明細書の記述および添付図面から明らか
になるであろう。
〔課題を解決するための手段〕
本願において開示される発明のうち代表的なものの概
要を説明すれば、下記のとおりである。
すなわち、本発明のデータ転送方法は、転送回数レジ
スタ内に設定された値の整数倍のデータ転送を実現でき
るデータ転送方法である。例えば、10進法にしたがう10
回という値が、転送回数レジスタに設定されたならば、
10×n(nは整数)個のデータを転送することが可能と
される。
この様な転送方法を実現するため、本発明に従うダイ
レクトメモリアクセスコントローラ及びシングルチップ
マイクロコンピュータは、転送元アドレスを保持する為
の転送元アドレスレジスタと、転送先アドレスを保持す
るための転送先アドレスレジスタとを一対のアドレスレ
ジスタ群とする場合、この様なアドレスレジスタ群を複
数対含む。さらに、上記ダイレクトメモリアクセスコン
トローラや、マイクロコンピュータは、転送回数レジス
タと、転送モードを指定するための制御レジスタを含
み、上記制御レジスタは、その内部に、転送モードを識
別するためのコントロールビット(フラッグビット)を
含む。このコントロールビットは、セット状態と
(“1")とクリア状態(“0")を有し、それがセット状
態とされた場合、本発明に従うデータ転送を指定し、そ
れがクリア状態とされた場合、従来のデータ転送を指定
する。上記に記載された各レジスタは、それぞれスタテ
ィック型フリップフロップ回路などで構成することがで
きるし、また半導体メモリ内の所定のアドレス番地に設
定されることも可能である。
本発明に従うデータ転送方法の一例は以下の様にされ
る。尚、説明を簡単化するために、ダイレクトメモリア
クセスコントローラは、第1及び第2転送元アドレスレ
ジスタ、第1及び第2転送先アドレスレジスタ転送回数
レジスタ及び制御レジスタを含む場合を想定する。たと
えば、ダイレクトメモリアクセスコントローラがデータ
転送要求を受けると、まず第1転送元アドレスレジスタ
内に設定された第1転送元アドレスデータの示す、たと
えば半導体メモリのアドレスから転送すべき第1データ
が読み出されるとともに上記第1転送元アドレスデータ
が更新される。次に、上記第1データは第1転送先アド
レスレジスタ内に設定された第1転送先アドレスデータ
の示すたとえば第1データレジスタに書き込まれるとと
もに第1転送先アドレスデータが更新される。その後、
制御レジスタ内の転送モード指定コントロールビットの
状態が調べられる。
もし、上記コントロールビットがセット状態とされて
いるなら、第2転送元アドレスレジスタ内の第2転送元
アドレスデータの示すたとえば半導体メモリのアドレス
から転送されるべき第2データが読みだされるとともに
第2転送元アドレスデータが更新される。次に、第2デ
ータが第2転送先アドレスレジスタ内に設定された第2
転送先アドレスデータの示すたとえば第2データレジス
タに書き込まれるとともに、第2転送先アドレスデータ
が更新される。そして、上記転送回数レジスタ内に設定
された回数データの値が1だけデクリメントされて、次
のデータ転送へと移行する。
もし、上記コントロールビットがクリア状態とされて
いるならば、第2転送元及び第2転送先アドレスレジス
タに基づくデータ転送は行なわれず、転送回数レジスタ
内に設定された回数データの値が1だけデクリメントさ
れて、次のデータ転送へと移行する。尚、このデータ転
送は、従来のデータ転送と同一である。
〔作 用〕
従って、第5図(B)に示すように、メモリアドレス
空間上において互いに離れたアドレス位置にある2つの
データDATA1,DATA2を1回の転送要求で転送することが
できる。そのため、DMA転送をポート等の周辺I/Oの複雑
な制御に利用することができる。
例えば、シングルチップマイクロコンピュータの出力
ポートから所定の波形パルスを出力させるときは、本発
明のDMA転送を用いて上記出力ポートのデータレジスタ
に定期的にデータを書込むことによって、所定の波形パ
ルスの出力が実現できる。この様なDMA転送の転送要求
にはタイマの割込み要求が使用される。この場合、タイ
マからの1個の転送要求によりDMAコントローラは出力
ポートの内蔵レジスタへのデータ書込みの他、タイマの
フラグのクリア動作を含む条件の再設定を行なうことが
必要とされるから、本発明に従うデータ転送方法が有効
である。
〔実施例〕
第1図は本発明に従うダイレクトメモリアクセスコン
トローラ(DMAC)を含むデータプロセッサシステムを示
す。
データプロセッサシステムは、プログラムやデータを
記憶するメモリ装置20、上記メモリ装置20内のプログラ
ムを実行し、所定のデータ処理を行なう中央処理装置
(CPU)10,データプロセッサシステムに必要とされるタ
イムインターバルを発生するためのタイマモジュール21
及びDMAC100を含む。これらの各回路10,20,21,100はシ
ステムアドレスバス110及びシステムデータバス115を介
して結合される。
上記DMAC100は、バス&タイミング制御回路1、制御
レジスタ2、転送要求回数レジスタ3、インクリメンタ
4、テンポラリレジスタ5、転送元アドレスレジスタ6a
及び6b、転送先アドレスレジスタ7a及び7b、アドレスバ
ス8、及びデータバス9を含む。
バス&タイミング制御回路1は、CPU10もしくは入出
力(I/O)デバイス30からのデータ転送要求信号DRQ1,DR
Q2またはタイマ21からの割込み要求信号TIRを受ける
と、優先順位を判定するとともに、コントロール信号CN
Tの状態に応じてバスマスタとされるCPU10からバス権を
獲得し、アクノリッジ信号DACKをバスマスタとされるCP
U10に出力する様に動作する。その結果、DMAC100は、バ
ス権の取得によってデータ転送開始状態とされるととも
に、上記バス&タイミング制御回路1はデータ転送制御
を開始する。すなわち、上記バス&タイミング制御回路
1はバスアビータの機能を有する 制御用レジスタ2はデータ転送モードや転送データの
サイズ等を指定するためのレジスタで、転送要求回数レ
ジスタ3は転送要求回数を格納するためのレジスタであ
る。インクリメンタ4は転送回数を更新したり転送アド
レスを更新(インクリメントおよびデクリメント)する
ために設けられ、テンポラリレジスタ5はメモリ又はI/
Oデバイスから読み出したデータを一旦保持するために
設けられる。
上記転送元アドレスレジスタ6a,6bは転送されるべき
データのストアされている各アドレスを指定するための
レジスタで、それぞれ異なるアドレスをストア可能であ
る。
上記転送先アドレスレジスタ7aは上記転送元アドレス
レジスタ6aによって指定されたアドレスにストアされた
データの転送先アドレスを指定する。上記転送先アドレ
スレジスタ7bは上記転送元アドレスレジスタ6bによって
指定されたアドレスにストアされたデータの転送先アド
レスを指定する。
上記制御用レジスタ2は、16ビットのレジスタで、第
2図に示すように構成され、以下の制御ビットを含む。
コントロールビットSZ1は、転送元レジスタ6aを用い
て行なわれるデータ転送動作において、転送されるべき
データのサイズを指示する。たとえば、SZ1がクリア状
態“0"とされると、8ビット(1バイト)のデータが転
送先レジスタ7a内のアドレスデータによって指定される
アドレスにストアされる。SZ1がセット状態“1"とされ
ると、16ビット(1ワード)のデータがレジスタ7aの内
容によって指示されるアドレスにストアされる。
コントロールビットSI1は転送元アドレスレジスタ6a
内にストアされたアドレスデータをインクリメントする
か否かを指定する。SI1がクリア状態“0"とされると、
レジスタ6a内のアドレスデータはインクリメントされ
ず、ソースアドレス固定モードのデータ転送が実行され
る。SI1がセット状態“1"とされ、かつ、上記SZ1がクリ
ア状態“0"とされると、データ転送終了後、レジスタ6a
内のアドレスデータが+1だけインクリメンタ4によっ
て更新される。SI1がセット状態“1"とされ、かつ、SZ1
がセット状態“1"とされると、データ転送終了後、レジ
スタ6a内のアドレスデータが+2だけインクリメンタ4
によって更新される。
コントロールビットDI1は、転送先アドレスレジスタ7
a内のアドレスデータをインクリメントするか否かを指
定する。DI1がクリア状態“0"とされると、レジスタ7a
内のアドレスデータはインクリメントされず、ディステ
ィネションアドレス固定モードのデータ転送が実行され
る。DI1がセット状態“1"とされ、かつ、SZ1が“0"とさ
れると、データ転送終了後、レジスタ7a内のアドレスデ
ータが+1だけインクリメンタ4によって更新される。
DI1が“1"とされ、かつ、SZ1が“1"とされると、データ
転送終了後、レジスタ7a内のアドレスデータが+2だけ
インクリメンタ4によって更新される。
コントロールビットFG1は、本発明を特徴ずけるフラ
ッグであり、転送元及び転送先アドレスレジスタ6b及び
7bにもとづくデータ転送が、転送元及び転送先アドレス
レジスタ6a及び7aにもとづくデータ転送の終了後、実行
されるか否かを指定する。
コントロールビットSZ2は、転送元レジスタ6aを用い
て行なわれるデータ転送動作において、転送されるべき
データのサイズを指示する。たとえば、SZ2がクリア状
態“0"とされると、8ビット(1バイト)のデータが転
送先レジスタ7b内のアドレスデータによって指定される
アドレスにストアされる。SZ2がセット状態“1"とされ
ると、16ビット(1ワード)のデータがレジスタ7bの内
容によって指示されるアドレスにストアされる。
コントロールビットSI2は、転送元アドレスレジスタ6
b内にストアされたアドレスデータをインクリメントす
るか否かを指定する。SI2がクリア状態“0"とされる
と、レジスタ6b内のアドレスデータはインクリメントさ
れず、ソースアドレス固定モードのデータ転送が実行さ
れる。SI2がセット状態“1"とされ、かつ、上記SZ2が
“0"とされると、データ転送終了後、レジスタ6b内のア
ドレスデータが+1だけインクリメンタ4によって更新
される。SI2が“1"とされ、かつ、SZ2が“1"とされる
と、データ転送終了後、レジスタ6b内のアドレスデータ
が+2だけインクリメンタ4によって更新される。
コントロールビットDI2は、転送先アドレスレジスタ7
b内のアドレスデータをインクリメントするか否かを指
定する。DI2がクリア状態“0"とされると、レジスタ7b
内のアドレスデータはインクリメントされず、ディステ
ィネションアドレス固定モードのデータ転送が実行され
る。DI2がセット状態“1"とされ、かつ、SZ2が“0"とさ
れると、データ転送終了後、レジスタ7b内のアドレスデ
ータが+1だけインクリメンタ4によって更新される。
DI2が“1"とされ、かつ、SZ2が“1"とされると、データ
転送終了後、レジスタ7b内のアドレスデータが+2だけ
インクリメンタ4によって更新される。
コントロールビットFG2は、コントロールビットFG1同
様本発明を特徴ずけるフラッグである。
コントロールビットFG1のクリア状態“0"は、転送元
アドレスレジスタ6a及び転送先アドレスレジスタ7aにも
とづくデータ転送のみの実行を定義する。コントロール
ビットFG1のセット状態“1"は転送元アドレスレジスタ6
a及び転送先アドレスレジスタ7aに基づくデータ転送の
終了後、ひきつづき転送元アドレスレジスタ6b及び転送
先アドレスレジスタ7bに基づくデータ転送を実行するこ
とを定義する。
一方、コントロールビットFG2のクリア状態“0"は、
転送元及び転送先アドレスレジスタ6b及び7bに基づくデ
ータ転送の終了後、転送元及び転送先アドレスレジスタ
6a及び7aに基づくデータ転送に次の処理が移行されるこ
とを定義する。コントロールビットFG2のセット状態
“1"は、たとえば、第2図に示される制御レジスタ2の
7ビットから5ビットに上述の様なSZ1(SZ2),SI1(SI
2)及びDI1(DI2)と同様な定義がされ、かつ、さらに
第3転送元及び第3転送先アドレスレジスタが第1図の
DMAC100内に設けられている場合、転送元及び転送先ア
ドレスデータ6b及び7bに基づくデータ転送終了後、ひき
つづき第3転送元及び第3転送先アドレスレジスタに基
づくデータ転送が行なわれることを定義する。したがっ
て、第1図に示すようなDMAC100においては、コントロ
ールビットFG2のセット状態“1"は禁止される。尚、第
2図において7ビットから0ビットの“−”は未定とさ
れている状態を示している。
上記転送要求回数レジスタ3内にストアされた転送要
求回数データのデクリメントタイミングは、上記コント
ロールビットFG1及びFG2の状態によって制御される。FG
1がクリア状態“0"とされていると、転送元及び転送先
アドレスレジスタ6a及び7aにもとづくデータ転送が1回
行なわれた後、上記回数データは、インクリメンタ4に
よって−1だけデクリメントされる。FG1がセット状態
“1"とされ、かつ、FG2がクリア状態“0"とされている
と、転送元及び転送先アドレスレジスタ6a及び7aにもと
づくデータ転送及び転送元及び転送先アドレスレジスタ
6b及び7bにもとづくデータ転送が連続して1回づつ行な
われた後、上記回数データはインクリメンタ4によって
−1だけデクリメントされる。
したがって、FG1がクリア状態“0"とされている場
合、第6図に示される様なタイミングで転送要求回数レ
ジスタ3内のデータのデクリメントが実行される。尚図
中、Aで示される部分は、転送元及び転送先アドレスレ
ジスタ6a,7aにもとづくデータ転送を示す。
一方、FG1がセット状態“1"とされている場合、第7
図に示される様なタイミングで転送要求回数レジスタ3
内のデータのデクリメントが実行される。尚第7図にお
いて、Aで示される部分はレジスタ6a,7aに基づくデー
タ転送を、Bで示される部分はレジスタ6b,7bに基づく
データ転送をそれぞれ示している。
バス&タイミング制御回路1は、第2図に示すような
配列で設定された制御レジスタ2の各コントロールビッ
トの状態を制御コードと見なし、左側から順次読み出し
て解読し、インクリメンタ4,アドレスレジスタ6a,7a及
び6b,7bやテンポラリレジスタ5等をシーケンシャルに
動作させる制御信号を出力する。それによって、データ
転送が実行される。
次に、上記DMAコントローラ100により第5図(A)の
様な従来のデータ転送及び第5図(B)の様な各々独立
したアドレス間のデータ転送を実行する場合の動作手順
について説明する。
このようなデータ転送を実行する場合、CPU10は転送
開始直前もしくはイニシャライズ時に予めDMAコントロ
ーラDMAC内の制御用レジスタ2内に対応する転送モード
を書き込むとともに、転送要求回数レジスタ3に転送要
求回数を、また、アドレスレジスタ6a及び6b,7bに転送
元アドレスデータSA1及びSA2をアドレスレジスタ7aと7b
に転送先のアドレスデータDA1及びDA2をそれぞれ設定す
る。尚、第5図(A)の様なデータ転送先の場合は、レ
ジスタ6b,7bは使用されないので、それらへのデータSA
2,DA2の書き込みは行なわない。
そして、バス&タイミング制御回路1がCPU10からの
転送要求DRQ1もしくはタイマモジュール21からの割込み
要求TIRを受けると、バス&タイミング制御回路1がバ
スマスタであるCPU10からバス権を獲得する。そして、
バス&タイミング制御回路1は、上記制御用レジスタ2
内のコード(SZ1,SI1,DI1)を左側から順次読み出して
解読し、先ず第1転送元アドレスレジスタ6a内のアドレ
スデータSA1をアドレスバス8上に出力するとともに、
リードライト信号R/Wをリード状態“H"にアサートし
て、リード側のデバイス(この場合メモリ20)をアクセ
スする。これによってメモリ20から読み出された例えば
1バイトのデータDATA1はデータバス9を介して一旦テ
ンポラリレジスタ5に格納される。次に、DMAコントロ
ーラは第1転送先アドレスレジスタ7a内のアドレスデー
タDA1をアドレスバス8上に出力するとともに、リード
ライト信号R/Wをライト状態(“L")に変化させてライ
ト側の(例えばタイマモジュール)内のデータレジスタ
をアクセスし、テンポラリレジスタ5内のデータDATA1
をデータバス9上に出力する。そして、制御レジスタ3
のコントロールビットSI1及びDI1の状態に従って、レジ
スタ6a及び7aのアドレスデータSA1及びDA1がインクリメ
ントされたり、インクリメントされなかったりする。こ
れによって転送元及び転送先アドレスレジスタ6a,7aに
基づく1回目のデータ転送が終了する。
次に、バス&タイミング制御回路1は制御用レジスタ
2内のフラグFG1を調べてクリア状態“0"なら転送を終
了し、レジスタ3内の回数データがインクリメンタ4で
−1だけデクリメントされて、レジスタ3内に書き込ま
れる。したがって、第5図(A)に示される様なデータ
転送が実施されることになる。一方、フラグFG1がセッ
ト状態“1"に設定されていると、フラグFG1の次のコー
ド(SZ2,SI2,DI2)を読み出して2回目の転送を開始す
る。すなわち、先ず第2転送先アドレスレジスタ6b内の
アドレスSA2をアドレスバス8に出力してメモリからた
とえば、1バイトのデータDATA2を読み出してテンポラ
リレジスタ5に入れ、次に第2転送先アドレスレジスタ
7b内のアドレスDATA2を出力して所望のタイマモジュー
ル21内のコントロールレジスタにテンポラリレジスタ5
内のデータDATA2を書き込む。それから、バス&タイミ
ング制御回路1はフラグFG2を調べてそれがクリア状態
“0"ならバス権を開放し、転送を終了して、転送要求回
数レジスタ3内の回数データがインクリメンタ4に送ら
れてデクリメント(−1)されてから元のレジスタ3へ
書き込まれる。
このようにして、割込み要求DRQ1,2又はTIRが入力さ
れるごとにDMAC100はデータ転送を繰り返し、転送要求
回数レジスタ3の値が「0」になるとDMAC100はその旨
をCPU10へ知らせる。CPU10は転送元アドレスレジスタ6
a,6b,7a及び7bのアドレスデータを書き換えてI/Oデバイ
スに転送すべきデータを変更したり、回数レジスタ3や
制御用レジスタ2の値を設定し直す。
第5図(B)の様なデータ転送方式は、特に、シング
ルチップマイクロコンピュータの外部端子から所定の波
形を有するパルスを出力させる場合に利用することがで
きる。この場合、第1図に2点鎖線で囲まれた内部の領
域がシリコンの様な1つの単結晶半導体基板(chip)内
に形成されていると見なされるとともに、配線X及び外
部端子Yが存在すると見なされる。尚、図中には外部端
子Y以外の外部端子は記入されていないが、実際のシン
グルチップマイクロコンピュータは、端子Y以外に複数
の外部端子を有することは、当業者にとって容易に理解
されるだろう。
以下、本発明のデータ転送の利用方法が述べられる。
まず、タイマモジュールは第8図に示すような、フリ
ランニングカウンタ(FRC)200を含む。FRT200は、その
内部にクロック信号φ受けてクロック数をカウントする
16ビットのアップ・カウンタによって構成されたフリラ
ンニング・カウンタFRC202,上記FRC202のカウント値と
比較されるべきデータをストアするアウトプット・コン
ペア・レジスタ(OCR)204,上記FRCとOCRのそれぞれの
値を比較し、両者が一致したとき一致信号Cを出力する
比較回路(COMP)206,上記FRTの動作制御の為のタイマ
コントロールレジスタ(TCR)208及びタイマコントロー
ル/ステータスレジスタ(TCSR)、及びタイマコントロ
ールロジック(TCL)212を含む。上記FRC,OCR,TCR及びT
CSRはそれぞれリード・ライト可能なレジスタであり、
そのリード動作及びライト動作はリード/ライト信号
(R/W)によって制御される。また上記FRC,OCR,TCR及び
TCSRはそれぞれデータバス110に結合されるとともに、
アドレスバス115上のアドレス信号をデコードするアド
レスデコーダ214から出力される選択信号SEL0〜SEL3に
よって、選一的に選択される。
TCR208はその内部にアウトプットコンペア信号FTOの
出力を許可するか否かを指定するアウトプットイネーブ
ルフラッグ、及びCOMP206から一致信号Cが発生したと
きタイマ割込み要求TIRの出力を許可するか否かを指示
するアウトプットインタラプトイネーブルフラッグを含
む。TCSR210は一致信号Cにより、アウトプットコンペ
ア信号FTOの出力レベルを指定するアウトプットレベル
コントロールフラッグを含む。
上記TCL212は、アウトプットコンペアイネーブルフラ
ッグのセット状態“1"で、上記一致信号Cを上記COMP20
6から受けると、アウトプットレベルコントロールフラ
ッグによって指定された出力レベルを有するFTO信号を
出力する様に動作する。また、アウトプットレベルコン
トロールフラッグがクリア状態“0"とされると、FTO信
号はD−レベルにされ、そのフラッグがセット状態とさ
れると、FTO信号はハイレベルとされる。上記TCL212
は、アウトプットインターラプトイネーブルフラッグが
セット状態“1"で、上記一致信号を受けると、たとえば
ハイレベルのTIR信号を出力するように動作する。
第8図は、上記FRTによって制御される被制御デバイ
スとして、たとえば、プリンター300内のステップモー
ター302を例示的に示している。すなわち、上記FTO信号
で、上記モーター302の回転数及び/又はトルクを制御
しようとする例が述べられる。
第9図は、データ転送の順番及びシングルチップマイ
クロコンピュータのアドレス空間とデータ転送の順番と
の間の関係が示される。このデータ転送において、DMAC
100内の制御レジスタ2、転送元及び転送先アドレスレ
ジスタ6a,6b,7a7bは、表1の様に初期設定され、タイマ
割込(TIR)がDMACに入力されるごと に、データ転送先 が実行されていく。
第10図は、第9図に示したデータ転送FRT200動作波形
図及びFTO信号の出力レベルの関係が示される。
図中において、太い実線はFRC202のカウントアップ状
態を示し、2点鎖線はOCR204の値を示し、上記2点鎖点
の矢印はOCR204の値の変更を示し、点線はOCR204の内容
とFRC202のカウント値の一致点すなわち、TIRの出力さ
れるタイミングを示し、FTOは外部端子Yから出力され
るFTO信号の出力レベルを示す。理解を容易とするため
に、図中に、CPU10の動作期間とデータ転送期間との時
間配分が示されている。CPU動作期間はCPU EX.と示さ
れ、CPU10がデータ処理プログラムを実行していること
を示す。,…はデータ転送を示し、Jは、アドレス
レジスタ6bのアドレスのインンリメント動作を、Kは回
数レジスタ3のデクリメント動作を示す。
これによって、シングルチップマイクロコンピュータ
の外部端子Yから所定の波形パルス(FTO)を出力さ
せ、しかもそのパルスを所望の回数だけ出力させた後に
パルスの幅を変えたりすることができる。従って、これ
をステップモータ302の制御パルスの形成に利用すると
初めは回転度が徐々に速くなり、途中から一定速度にな
るようにステップモータ302を制御するようなことが可
能となることは当業者にとって容易に理解されるであろ
う。
なお、上記実施例では制御用レジスタ2が1つだけ設
けられているが、上記制御用レジスタ2と転送先および
転送元アドレスレジスタ6a〜7bの組を複数チャネル分設
け、複数の独立したデータ転送を行なえるようにしても
よい。
また、転送要求回数レジスタ3の代わりもしくはこれ
とともに転送語数等を設定する転送回数レジスタを設
け、ブロック転送等における転送回数を入れるようにし
てもよい。
次に本発明をシングルチップマイクロコンピュータに
適用し、上記データ転送をマイクロプログラムで実現で
きるようにした実施例について説明する。
第3図には、本発明が適用されるシングルチップマイ
クロコンピュータ102の構成例が、また第4図にはメモ
リーI/O間のデータ転送を可能にするマイクロプログラ
ムの制御手順の一例が示されている。
第3図においては、11はマイクロプログラム制御方式
の制御部と演算器やレジスタ類を含む実行ユニットから
なるマイクロプロセッサ、12はプログラマブルな内蔵タ
イマ、13はタイマ割込みTIRや外部デバイスからの割込
み要求IRQを受けて優先順位を決定する割込み制御回
路、14はバス権を獲得したり、外部デバイスに対する制
御信号を形成したりするバスアビータの機能を含むバス
&タイミンング制御回路である。
また、15は出力ポート、16はアドレスデコーダDEC
で、この実施例ではポート15内に出力状態を制御するた
めのデータレジスタDRが2つ設けられている。このデー
タレジスタDR1とDR2はカスケード接続されており、1段
目のデータレジスタDR1はCPU11からの制御信号によって
データバス19上のデータを読込み、2段目のデータレジ
スタDR2はタイマ12からの信号CMによって1段目のデー
タレジスタDR2内のデータを取込むように構成されてい
る。
さらに、この実施例ではアドレスバス18およびデータ
バス19に接続される外部メモリ(RAM)20内の所定アド
レス領域に第1図に示されている制御レジスタ2と、転
送要求回数レジスタ3および転送元アドレスレジスタ6
a,6bと転送先アドレスレジスタ7a,7bが割り当てられ
て、第4図に示すようなマイクロプログラム制御フロー
によって、メモリ20とI/O間のデータ転送を実行するよ
うに構成されている。
次に、タイマ割込みによって外部のメモリ20から上記
ポート15のレジスタにデータを転送して所定パルスを出
力させる場合の手順を第4図のフローチャートを用いて
説明する。
タイマ12から割込み制御回路13に対してタイマ割込み
TIRが入ると、割込み制御回路13はバス&タイミング制
御回路14へバス要求信号BRを送る。バス&タイミング回
路14はバス権を獲得し、CPU11にアクノリッジ信号ACKを
出力する。CPU11はデータ転送のための割込み(DTCIR
Q)かそれ以外の割込みか判定する(ステップS1)。デ
ータ転送割込みDTCIRQの場合、ステップS2へ進みベクタ
領域から対応するデータ転送の為の割込みベクタ(DTC
ベクタ)すなわちメモリ20内に入っている制御用レジス
タ2のアドレスをCPU11が読み込むとともに、そのアド
レスを使ってメモリ20をアクセスし制御用レジスタ2の
内容(転送モード(SZ1,SI1,DI1)等)を読み込む(ス
テップS3)。そして、CPU11はデータのサイズ(SZ1)と
転送モード(SI1,DI1)を解読し、先ずメモリ20内の転
送元アドレスレジスタ6aとされるアドレスにストアされ
たソースアドレスを読み込むとともに、そのソースアド
レスをアドレスバス18上に出力し、それによって、CPU1
はメモリ20をアクセスして転送されるべきデータを読み
込む(ステップS4,S5)。それから、CPUは上記ステップ
S3で読み込んだ転送モード(SI1)から転送元アドレス
を更新すべきか否か判定する(ステップS6)。ポート15
よりモータの駆動パルスを出力させるような場合には、
出力状態をタイマ割込みTIRの度に反転させる必要があ
るので転送元アドレスをインクリメントまたはデクリメ
ントすることになる。この場合には、ステップS6からS7
へ移行して、サイズ指定部(SZ1)に応じて転送元アド
レスにプラス1またはプラス2を行なってそれを転送元
アドレスレジスタ6aに書き込む。(ステップS8)。
それから、CPU11はメモリ20内の転送先アドレスレジ
スタ7a内にストアされたデスティネションアドレスを読
み込むとともにそのデスティネションアドレスをアドレ
スバス18上に出力する。その時、ステップS5で読み込ん
だ転送すべきデータをデータバス19上に出力する(ステ
ップS9,S10)。バス19上に出力されたデスティネション
アドレスがポート15を指定するものであるときは、デコ
ーダ16によってポート15内のデータレジスタDR1の選択
信号SEL1が形成され、バス19上のデータがデータレジス
タDR1に格納される。
その後、ステップS3で制御用レジスタ2から読み込ん
だ転送モードDI1に基づいて転送先アドレスを更新する
か否か判定する(ステップS11)。タイマ割込みで出力
ポートを制御する場合、転送先アドレスは固定であるた
め、この場合にはステップS11からS14へジャンプし、制
御用レジスタ2内の終了フラグFG1がセット状態か“1"
か否か調べられる。FG1が“1"のときはステップS4へ戻
って2回目の転送を開始する。2回目の転送では、メモ
リ20内のアドレスレジスタ6b,7bを使用してタイマ12内
の時間レジスタ(第8図のOCR)(パルス幅に対応して
いる)を設定するためのデータをメモリ20から転送すべ
く、ステップS4〜S14を繰り返す。この場合、モータの
回転速度を変えるようなときはステップS6からS7へ移行
して転送元アドレスを更新し、回転速度を一定に保つと
きは転送元アドレスの更新は行なわないようにすればよ
い。
2回目のデータ転送が終了すると、終了フラグFG2が
チェックされ、クリア状態“0"ならステップS15へ進
み、メモリ20から転送要求回数レジスタ3の内容(DTC
R)を読み込んでデクリメントしてから元のレジスタ3
のアドレス内にデクリメントされた値を書き込む(ステ
ップS16,S17)。その後、レジスタ3の値(転送要求回
数DTCR)が「0」になったか否か判定する(ステップS1
8)そして、「0」でないときはそのまま次のタイマ割
込みTIRが来るのを待ち、タイマ割込みTIRが入ると上記
手順S1〜S18を繰り返し、同一の転送モードでポート15
の出力状態を制御する。
一方、ステップS18で転送要求回数が「0」になった
と判定すると、ステップS21へ移行し、別の割込み処理
を開始する。ポート15から出力されるモータの駆動パル
スを制御するような場合には、この割込み処理で制御用
レジスタ2を書き換えて転送モードを変えたりすること
ができる。
このような手順により、例えばステップモータが回転
を開始してから1000個目のパルスまでパルス幅を徐々に
大きくして回転速度を次第に増加させ、その後はパルス
幅すなわち回転速度を一定とするようにパルス幅の一定
なパルスを連続的に出力させるようなモータの制御が可
能となる。
なお、上記実施例のシングルチップマイクロコンピュ
ータでは、制御用レジスタ2や転送元、転送先アドレス
レジスタ6a〜7bを外部のメモリ20内に用意するとした
が、シングルチップマイクロコンピュータが内蔵RAMを
有する場合には、その中に用意しておくようにしてもよ
いことはいうまでもない。
以上説明したように上記実施例は、転送元アドレスと
転送先アドレスを設定可能なアドレスレジスタの組を2
組用意するとともに、転送方法を指定するため用意され
た制御用レジスタ内に上記アドレスレジスタ組のうち一
方のみを使用する転送モードと両方を使用する転送モー
ドを区別するビット(FG1)を設け、上記制御用レジス
タの制御コードを解読しながらデータ転送のための制御
信号を形成させるようにしたので、転送元アドレスと転
送先アドレスを2つずつ設定できるため、1回の転送要
求で2回の各々独立したアドレス間のデータ転送が可能
となる。また、制御用レジスタ内に1回転送と2回転送
を区別するビット(FG1)が設けられているため、新た
に可能となった上記2回転送の他、従来の1回の転送要
求で1回の転送を行なうDMAコントローラの機能を保障
することができるという効果がある。
以上本発明者によってなされた発明を実施例に基づき
具体的に説明したが、本発明は上記実施例に限定される
ものではなく、その要旨を逸脱しない範囲で種々変更可
能であることはいうまでもない。例えば上記第1の実施
例ではCPUと別個のチップ上に形成されたDMAコントロー
ラを想定して説明したが、本発明はシングルチップマイ
クロコンピュータ内蔵のDMAコントローラに適用するこ
とも可能である。
以上の説明では主として本発明者によってなされた発
明をその背景となった利用分野であるDMAコントローラ
およびシングルチップマイクロコンピュータに適用した
ものについて説明したがこの発明はそれに限定されるも
のでなく、データ転送機能を有する半導体回路一般に利
用することができる。
〔発明の効果〕
本願において開示される発明のうち代表的なものによ
って得られる効果を簡単に説明すれば下記のとおりであ
る。
すなわち、1回の転送要求で2回の各々特立したアド
レス間のデータ転送ができるようなDMAコントローラが
提供でき、また、シングルチップマイコンにおいてDMA
転送によるパルスの出力制御が可能となる。
【図面の簡単な説明】
第1図は本発明をDMAコントローラに適用した場合の一
実施例を示すブロック図、 第2図はその制御用レジスタの構成例を示す図、 第3図は本発明をシングルチップマイクロコンピュータ
に適用した場合に一実施例を示すブロック図、 第4図はマイクロプログラムによるデータ転送制御手順
を示すフローチャート、 第5図(A)は従来のDMAコントローラによるデータ転
送方式を示すメモリマップ、 第5図(B)は発明のDMAコントローラによるデータ転
送方式を示すメモリマップ、 第6図はコントロールビットFG1が“0"とされた場合の
回数レジスタのデクリメントタイミングを示し、 第7図はコントロールビットFG1が“1"とされた場合の
回数レジスタのデクリメントタイミングを示し、 第8図はフリランニングカウンタの構成及び被制御装置
を示し、 第9図はデータ転送の順序を示し、 第10図は、第9図のデータ転送における動作波形図を示
す。 11……マイクロプロセッサ、15……ポート、16……デコ
ーダ、DR1,DR2……データレジスタ。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭62−267847(JP,A) 特開 平2−72464(JP,A) 特開 平2−259861(JP,A) 特開 昭54−124644(JP,A) 特開 平2−176844(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 13/28

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】第1転送元アドレスをストアするための第
    1記憶手段、 第1転送先アドレスをストアするための第2記憶手段、 第2転送元アドレスをストアするための第3記憶手段、 第2転送先アドレスをストアするための第4記憶手段、 転送要求回数データをストアするための第5記憶手段、 データ転送を制御するための制御手段を含み、 上記制御手段は、 上記第1、第2記憶手段を用いた第1データ転送を制御
    するための第1制御ビット、 上記第3、第4記憶手段を用いた第2データ転送を制御
    するための第2制御ビット、 一方の状態が上記第1データ転送を繰り返して行われる
    ことを示し、かつ、他方の状態が上記第1及び第2デー
    タ転送がそれぞれ1回ずつ連続して実行されることを示
    す第3制御ビットを持ち、 上記第3制御ビットが上記一方の状態とされている時、
    上記第1データ転送を上記転送要求回数を示す回数行
    い、 上記第3制御ビットが上記他方の状態とされている時、
    上記第1及び第2データ転送の連続転送を上記転送要求
    回数を示す回数を行うようにすることを特徴とするデー
    タ転送制御装置。
  2. 【請求項2】請求項1において、 上記転送要求回数は、 上記第3制御ビットが一方の状態とされている時、第1
    データ転送が行われた後、1デクリメントされ、 上記第3制御ビットが他方の状態とされている時、第1
    及び第2データ転送が連続して行われた後、1デクリメ
    ントされこることを特徴とするデータ転送制御装置。
  3. 【請求項3】請求項3において、 上記データ転送制御装置は、中央処理ユニットを含む1
    チップデータプロセッサ内に内蔵され、 データ転送要求に対して、上記データ転送制御装置が応
    答する第1動作と、上記中央処理ユニットが応答する第
    2動作とを含むことを特徴とするデータ転送制御装置。
JP32317590A 1990-11-28 1990-11-28 データ転送制御装置 Expired - Lifetime JP3264921B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP32317590A JP3264921B2 (ja) 1990-11-28 1990-11-28 データ転送制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP32317590A JP3264921B2 (ja) 1990-11-28 1990-11-28 データ転送制御装置

Publications (2)

Publication Number Publication Date
JPH04195448A JPH04195448A (ja) 1992-07-15
JP3264921B2 true JP3264921B2 (ja) 2002-03-11

Family

ID=18151915

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32317590A Expired - Lifetime JP3264921B2 (ja) 1990-11-28 1990-11-28 データ転送制御装置

Country Status (1)

Country Link
JP (1) JP3264921B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3841810B2 (ja) 2002-09-30 2006-11-08 株式会社ルネサステクノロジ データプロセッサ
JP2007128336A (ja) * 2005-11-04 2007-05-24 Nec Corp 並列レジスタアクセス装置及びシステムlsi

Also Published As

Publication number Publication date
JPH04195448A (ja) 1992-07-15

Similar Documents

Publication Publication Date Title
US4514808A (en) Data transfer system for a data processing system provided with direct memory access units
US5642489A (en) Bridge between two buses of a computer system with a direct memory access controller with accessible registers to support power management
US5630172A (en) Data transfer control apparatus wherein an externally set value is compared to a transfer count with a comparison of the count values causing a transfer of bus use right
US5212795A (en) Programmable DMA controller
US5107415A (en) Microprocessor which automatically rearranges the data order of the transferred data based on predetermined order
US5826106A (en) High performance multifunction direct memory access (DMA) controller
US4782439A (en) Direct memory access system for microcontroller
US3962682A (en) Split low order internal address bus for microprocessor
EP0428111A2 (en) Data transfer control method and data processor using the same
JPS61148563A (ja) デ−タ転送方式およびデ−タ転送制御装置
EP0212637B1 (en) Mircrocomputer
KR970003321B1 (ko) 코프로세서 지정 시스템
JP3619532B2 (ja) 半導体集積回路装置
US4016546A (en) Bus switch coupling for series-coupled address bus sections in a microprocessor
JP2845433B2 (ja) 集積回路装置
JPS5844558A (ja) Nチヤンネルmos半導体プロセツサ
US4037204A (en) Microprocessor interrupt logic
US4004281A (en) Microprocessor chip register bus structure
US4030079A (en) Processor including incrementor and program register structure
US4040035A (en) Microprocessor having index register coupled to serial-coupled address bus sections and to data bus
JP3264921B2 (ja) データ転送制御装置
US4032896A (en) Microprocessor having index register coupled to serial-coupled address bus sections and to data bus
EP0331487B1 (en) Data transfer control system
US5317750A (en) Microcontroller peripheral expansion bus for access to internal special function registers
US7310717B2 (en) Data transfer control unit with selectable transfer unit size

Legal Events

Date Code Title Description
S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313117

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071228

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081228

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081228

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091228

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101228

Year of fee payment: 9

EXPY Cancellation because of completion of term