JP3265582B2 - マイクロコンピュータ - Google Patents

マイクロコンピュータ

Info

Publication number
JP3265582B2
JP3265582B2 JP03127091A JP3127091A JP3265582B2 JP 3265582 B2 JP3265582 B2 JP 3265582B2 JP 03127091 A JP03127091 A JP 03127091A JP 3127091 A JP3127091 A JP 3127091A JP 3265582 B2 JP3265582 B2 JP 3265582B2
Authority
JP
Japan
Prior art keywords
data
dma
transfer
memory
bus
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
JP03127091A
Other languages
English (en)
Other versions
JPH04271451A (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP03127091A priority Critical patent/JP3265582B2/ja
Priority to EP92103373A priority patent/EP0503390A1/en
Publication of JPH04271451A publication Critical patent/JPH04271451A/ja
Application granted granted Critical
Publication of JP3265582B2 publication Critical patent/JP3265582B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

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/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、メモリと周辺装置との
データ転送をダイレクト・メモリ・アクセス(以下DM
Aと記す)方式で行うデータ転送制御装置を含むマイク
ロコンピュータに関する。
【0002】
【従来の技術】マイクロコンピュータを利用した情報処
理システムにおいては、周辺装置とメモリ間で大量のデ
ータ転送を行ない、これらのデータを中央処理装置で処
理、加工してさらに別の周辺装置、記憶装置へ転送する
といった使用例が多い。この場合、周辺装置から中央処
理装置(以下CPUと記す)へ割り込みを発生し、割り
込みルーチンでそのようなデータ転送を行なうと、CP
Uのオーバヘッド(割り込み処理のための時間)が増大
し、システムのデータ処理効率が低下するため、データ
転送を専門に制御するデータ転送制御装置としてダイレ
クト・メモリ・アクセス(以下、DMAという)コント
ローラが提供されている。
【0003】従来よりDMA転送を行う場合、CPUに
おいて予めDMAコントローラに各種制御情報を設定し
ておき、周辺回路よりDMA転送要求が指示されると周
辺回路に所定の転送用バッファとメモリとの間でDMA
により転送を行っている。
【0004】DMA転送では周辺回路(例えば通信制御
回路、印字制御回路、表示制御回路など)からDMA要
求をDMAコントローラ(以下DMACと記す)が検知
すると、DMACはCPUへバス制御権の空け渡しを要
求する。
【0005】この要求をCPUが検知すると、CPUは
現在実行中のプログラム処理を中断し、アドレスバス、
データバスのバス制御権をCPUがDMACに渡す。す
るとDMACは空いたバスを利用して、アドレス情報、
リード/ライト制御信号を発生し、DMAを要求した周
辺回路の所定の転送バッファ(I/O)とメモリ間でデ
ータ転送をCPUを介することなしに行なう。
【0006】このようなDMA転送動作を繰り返して所
定数のデータ転送が完了すると、DMAコントローラは
CPUに対してDMA完了を検出すると、周辺回路から
メモリへのDMA転送の場合はメモリをアクセスして転
送されたデータに対する処理を実行し、メモリから周辺
回路へのDMA転送の場合は次に転送すべきデータをメ
モリに書き込む。
【0007】
【発明が解決しようとする課題】ところで上述した従来
のDMA転送制御装置を応用した情報処理システムにお
いては、転送回数分のDMA転送が完了すると、CPU
はPC,PSWをスタックに退避、復帰する割り込み処
理と、次のDMA転送のための制御情報の設定を行なう
割り込みプログラム処理を実行する。この割り込み処理
および割り込みプログラム処理を実行している間、DM
ACは周辺装置から発生するDMA転送要求を保留しな
ければならない。このため、DMA転送要求が発生して
から、実際にDMA転送が実行されるまでDMA応答保
留時間が長くなるという問題があった。
【0008】また、CPUがDMA転送データをメモリ
に書き込み毎に、CPUの書き込みアドレスとDMA転
送領域の最終アドレスとを比較し、書き込みアドレスが
最終アドレスを越えたとき、書き込みアドレスを転送領
域の先頭アドレスに戻す処理を行わなければならなず、
CPUの処理が繁雑となり負担となっていた。このため
CPUがDMA転送に関する処理に携わる時間が多くか
かり、CPU本来の処理が高速にできなくなるといった
問題点があった。
【0009】さらに、CPUの内部に命令処理用のバス
制御ユニットを持つとともに、DMACの内部にもDM
A専用のバス制御ユニットをもつため冗長であり、特に
高集積化が必要とされる1チップマイクロコンピュータ
においては効率の悪さが無視できなくなっているといっ
た問題があった。
【0010】
【課題を解決するための手段】 本発明のマイクロコン
ピュータは、マイクロコンピュータ外部からのDMA要
求に応答してDMA転送する転送データ数を記憶する転
送データ数記憶回路とメモリのDMA転送アドレスを生
成するアドレス生成回路とを含むDMAデータ転送制御
装置を備えたマイクロコンピュータにおいて、データ転
送先メモリの先頭アドレスを記憶する先頭アドレス記憶
回路と、前記転送データ数を計数するカウンタと、前記
転送データ数を計数した計数結果よりDMA転送されて
いないデータが無くなることが分かると前記転送データ
数記憶回路の前記転送データ数を前記カウンタへ設定し
直し、前記先頭アドレス記憶回路の前記データ転送先メ
モリの先頭アドレスを前記アドレス生成回路へ設定し直
してDMA要求が無くなるまでDMA転送を継続する手
段とを有することを特徴とするマイクロコンピュータで
ある。
【0011】
【実施例】以下図面を参照して本発明のデータ転送制御
装置の実施例を詳述する。
【0012】図1は本発明の一実施例によるデータ転送
制御装置としてのバス制御部12を内蔵するマイクロコ
ンピュータ1を用いた情報処理システムの構成を示すブ
ロック図であり、図2は中央処理装置CPU10の要部
構成を示すブロック図である。
【0013】マイクロコンピュータは内部にプログラム
カウンタ,ブログラムステータスワード,各種制御レジ
スタ等を含み各種命令の実行を行う実行部11及びアド
レス・バス,データ・バス,リード信号,ライト信号を
含バスインターフェースを司さどるバス制御部12を内
蔵する中央処理装置CPU10と周辺装置6(例えばデ
ータ受信制御回路)とを有している。
【0014】CPU10に内蔵するバス制御部12は実
行部11の命令実行に伴うバス5の制御、即ち命令コー
ドのフェッチ,メモリアクセスに関わるアドレス計算,
アクセスサイクルの起動を行うとともに、周辺装置6と
周辺装置3及びメモリ20間のデータ転送処理を実行制
御するダイレクト・メモリ・アクセス(DMA)転送、
すなわちDMA転送アドレスの生成,転送回数の更新,
転送ポインタの更新等を行う。
【0015】マイクロコンピュータ1は、周辺装置6で
受信した外部装置からのデータをプログラム処理してメ
モリ20内のDMA転送元領域21に書き込み、DMA
転送を用いて周辺装置3(例えばプリンタ制御装置)に
転送するといった情報処理システム全体の制御を行な
う。
【0016】周辺装置6は、データのリード/ライト用
バッファを備えており、DMA転送により上記バッファ
に送られたデータを基に、印字処理、表示処理等の周辺
装置固有の処理を行う。
【0017】メモリ20は、CPU10のプログラム領
域とデータ領域、およびDMA転送用に割り当てられた
領域であるDMA転送元領域21を含み、CPU10の
制御によりバス5を介して情報処理システムの各種デー
タを一時記憶する。
【0018】CPU10では、図2に示すように、バス
制御部12に内蔵する各種レジスタのリード/ライト制
御及び実行部11のバスサイクラ要求信号16に基づい
て所定のバスサイクルを起動制御する制御ユニット17
と、DMA転送を行なう際の、転送先メモリ領域の先頭
アドレス情報(初期値)を格納するメモリ・アドレス・
モジュロ・レジスタ(MARM)102と、DMA転送
実行時のカレント・メモリ・アドレスを記憶するメモリ
・アドレス・レジスタ(MAR)101とDMA転送の
実行回数(初期値)を設定するターミナル・カウンタ・
モジュロ・レジスタTCM112と、DMA転送の実行
回数を記憶するターミナル・カウンタTC111と、C
PU11が次に読み出すべきメモリ領域の先頭アドレス
を指定するリード・ライト・ポインタRP103と、1
回のDMA転送を実行する毎にカウントアップし、CP
U10がRP(103)の内容を読み出す毎にダウンカ
ウントするアップ・ダウン・カウンタ(U/Dカウン
タ)120と、U/Dカウンタ120の値と内部に設定
されたデータの比較を行い、両方が等しくなると一致信
号25を出力するコンペア・レジスタ(COMP)12
1と、MAR101の内容またはRP103の内容をイ
ンクリメントまたはデクリメントするINC/DEC回
路100と、INC/DEC回路100の出力値(アド
レス)がRP103を指すアドレスに一致するとアドレ
ス検出信号123を出力するアドレス検出回路122
と、RP103の値と内部に設定されたデータとの比較
を行い両者が一致すると信号41を発生する第二のコン
ペアレジスタ(COMP)105と、RP103に設定
すべきアドレスデータを格納するレジスタ(MARE)
106と、TC111の内容をデクリメントするデクリ
メンタ回路(DEC)110とを有する。
【0019】さらにアドレスバス5a,データバス5
b,制御バス5cとリード/ライトバッファデータの転
送方向とアクセスタイミング等の制御情報を記憶するコ
ントロールレジスタ、及びDMA動作の禁止許可フラグ
(共に図示せず)を有し、バス5a,b,5cの制御権
の授受及びDMA転送のタイミング制御並びに内部の各
制御レジスタの更新制御を実行してDMA動作制御を行
なう制御ユニット17とから構成される。
【0020】CPU10の通常命令実行のためメモリの
読みだしまたは書き込みが必要になると、実行部11は
アドレス情報をアドレス信号線14を介してバス制御部
12に伝え、また読みだしまたは書き込みのいずれかの
バスサイクル要求をバスサイクル要求信号16を介して
バス制御部12に要求する。
【0021】まず実行部11の内部レジスタにメモリ2
0からデータをよみだす動作を説明する。バス制御部1
2は制御バス5cを活性化してリード信号をメモリ20
に伝えるとともに、アドレス情報をINC/DEC回路
100を介してアドレスバス5aに伝え、同時にバスB
USY信号16を活性化して実行部11に伝え実行部1
1をウェイト状態とする。バス5aに乗せられたアドレ
スで指定するメモリ20からデータがバス5bに読みだ
されるとバス制御部12はバスBUSY信号16をイン
アクティブにして実行部11のウェイト状態を解除す
る。実行部11はバスBUSY信号16がインアクティ
ブとなるとバス5b上のデータを読みだし、内部レジス
タに書き込みを行なう。
【0022】次に実行部11の内部レジスタからメモリ
20にデータを書き込む動作を説明する。実行部11は
内部レジスタから読みだしたデータをバス5bに出力す
るとともに、書き込むべきアドレス情報をアドレス信号
線14を介してバス制御部12に伝える。バス制御部1
2は実行部11から伝えられたアドレス情報をINC/
DEC回路100を介してアドレスバス5aに伝え、同
時にバスBUSY信号16を活性化して実行部11に伝
え実行部11をウェイト状態とする。実行部11は内部
レジスタのデータをバス5bに出力したままウェイト状
態になる。続いてバス制御部12は制御バス5cを活性
化してライト信号をメモリ20に伝える。バス5aに乗
せられたアドレスで指定するメモリ20にデータがバス
5bを介して書き込まれるとバス制御部12はバスBU
SY信号16をインアクティブにして実行部11のウェ
イト状態を解除する。実行部11はバスBUSY信号1
6がインアクティブとなるとバス5b上のデータ出力を
中止する。
【0023】以上のように通常命令では実行部11より
要求されたバスサイクルをバス制御部12が起動し、メ
モリ20の所定アドレスよりデータの読みだしまたは所
定アドレスへデータの書き込みを行なう。また実行部1
1のプログラム実行に関わる命令のメモリ20から読み
だし、即ち命令コードのフェッチも上記と同様に行なわ
れる。
【0024】なお図面の複雑化を避けるために、バス制
御部12の内部各レジスタとのデータのリード/ライト
信号線は省略する。
【0025】次に本実施例のDMA動作を説明する。本
実施例では、周辺装置3からの要求に基づきメモリ20
の図3(A)に示すDMA転送領域に周辺装置3からの
データをDMA転送する。
【0026】まず、CPU10のソフトウェア処理につ
いて説明する。CPU10はDMA転送処理に先だって
図4(A)のフローに示すように各DMA制御レジスタ
の初期設定処理をプログラムに基づき実行する。すなわ
ち、MARM102,MAR101,RP103にDM
A転送先メモリ領域(エリアa)の先頭アドレスを設定
する。(401)TC111及びTM112はエリアa
のデータ数。(例えばバイトデータの転送を行なう時に
はエリアaの先頭アドレスから最終アドレスまでのデー
タバイト数)−1を設定する(402)。COMP12
1にはエリアaのデータ数−α(αは0〜数ワードを設
定する)(403)。U/Dカウンタ120は“0”に
初期化する(404)。COMP105にはDMA転送
領域の終端アドレス−1を設定する(405)。そし
て、制御ユニット17内の許可フラグをセットしDMA
動作が許可される(406)。制御ユニット17は実行
部11からのバスサイクル要求15の発生を専用ハード
ウェア手段により常にチェックしている。
【0027】一方周辺装置3は、DMA転送要因(例え
ばデータの受信動作完了)が発生すると、マイクロコン
ピュータ1にDMA要求30を伝える。これによってマ
イクロコンピュータ1は図5(A)に示す流れに従って
動作する。すなわち、周辺装置2よりマイクロコンピュ
ータ1にDMA要求30が伝えられると(501)、制
御ユニット17はバスBUSY信号を16をアクティブ
にしてプログラム実行に必要なバスサイクルが起動不可
の状態にあることを実行部11に伝える(502)。
【0028】実行部11はバスBLSY信号16がアク
ティブになると、実行中のプログラム処理でメモリ20
へのアクセスが不要の場合には処理が継続されるが、メ
モリ20へのアクセスが必要になった場合はPC,PS
W、各種レジスタ類の内容を保持しつつプログラム処理
を中断してウェイト状態に入る。DMA転送が終了して
バスBUSY信号16がインアクティブになるとウェイ
ト状態を解除して中断したプロウラム処理を再開し、バ
スサイクル要求をアクティブにしてメモリの読みだしま
たは書き込みのバスサイクルを要求する。
【0029】続いて制御ユニット17は周辺装置3に対
してDMAアクノリッジ信号(DMAAK)31を出力
して周辺装置3に転送データをバス5b上に読みださせ
る(504)。
【0030】同時にMAR101の内容をバス5aに出
力しバス5bを介してデータライトアクセスを実行し
(505)、周辺装置3から読みだされた被転送データ
をバス5bを介してメモリ部20に伝え書き込みを行な
う。一回のDMA転送の実行終了毎にMAR101の内
容は信号線を介してINC/DEC回路100に読みだ
され“1”インクリメントされた後書き戻される(50
6)。またU/Dカウンタ120の内容がINC/DE
C回路100により“1”カウントアップされる(50
7)。TC111の内容はDEC回路110に読みださ
れた後“1”デクリメントされた後信号線を介して書き
戻される(508)。この時、TC111に設定された
所定回数のDMA転送が実行され,DEC回路110で
TC111のデクリメントの結果ボローが発生すると
(509)、ボロー信号33が発生し、MARM102
及びTCM102の内容は各々MAR101及びTC1
11にロードされる(510)。従って、この後に周辺
装置3のDMA要求30が発生しDMA転送実行される
ときには、再びメモリ20のエリアaの先頭アドレスか
らDMA転送が実行され、つまりエリアaの領域をリン
グ構造として扱う事ができる。
【0031】つづいて制御ユニット17は周辺装置3か
らのDMA要求がアクティブかどうかを判定し(51
1)、アクティブでなければバスBUSY信号16をイ
ンアクティブにして(512)、CPU10にバスアク
セスが可能になった事を伝え、ステップ501に戻りD
MA転送動作を終了する。周辺装置3からのDMA要求
30がアクティブである時には、ステップ504に戻
り、再び上記のDMA転送動作を繰り返す。
【0032】実行部11はバスアクセス可能になると、
RC、RSW、及び各種レジスタ類がすべて前の値を保
持しウェイト状態であるため、中断したプログラム処理
を即時に再開することができる。
【0033】本実施例では、DEC110からボロー信
号33が検出される前にCPU10がメモリ20のエリ
アaからDMA転送データを読み出す事を容易に実現し
ており、そのためのプログラム動作図4(B)に示され
ている。すなわち、まずCPU10はU/Dカウンタ1
20の内容を読みだし(410)、メモリ20にDMA
転送されたデータ数を得る。(411)。U/Dカウン
タ120の内容が“0”で無ければ少なくとも一回以上
のDMA転送が実行されたことを示しており、この時は
続いてRP103の内容を読みだし、DMA転送データ
を記憶しているメモリ20の先頭アドレスを得る。RP
103の読みだしがDMAレジスタの初期設定後、初め
てであれば、RP103にはエリアaの先頭アドレスが
記憶されている。実行部11は専用命令を実行する事に
よりRP103の内容(データ)をアドレスとしてメモ
リ20の間接アドレッシングを行い内部レジスタにDM
A転送されたデータを読み出す(412)。上記の専用
命令においてはまず実行部11よりRP103のアドレ
ス情報がアドレス信号線14を介してINC/DEC回
路100を介してバス5aに伝えられる。INC/DE
C回路100の出力アドレスがRP103を指している
ことをアドレス検出回路122が検出して検出信号12
3をバス制御ユニット17に伝えると、バス制御ユニッ
ト17はバスBUSY信号16を活性化し実行部11を
ウェイト状態にする。続いて次のバスサイクルでRP1
03の内容をデータ線37及びINC/DEC回路10
0を介してバス5aに出力し、同時にバス5cを活性化
してメモリ20にリード信号を伝え、メモリ20からバ
ス5bにデータの読みだしを行なう。データがバス5b
に伝えられるとバス制御ユニット17はバスBUSYし
号16をインアクティブに戻し、実行部11はウェイト
状態を解除してバス5b上のデータを所定の内部レジス
タに書き込む。そして、読みだしたDMA転送データに
対して所定の処理を実行して表示制御回路4へ転送する
(413)。一方実行部11における専用命令の実行に
よりRP103の内容で指定されるメモリ20のデータ
が内部レジスタに読みだされる毎に、図5(B)処理が
実行される。すなわち、制御ユニット17はRP103
の内容をデータ線36に出力し、INC/DEC回路1
00によりインクリメントしてその結果をデータ線37
を介してRP103に書き戻す(520)。このとき、
RP103の更新はDMA転送実行時のMAR101の
更新内容に等しく行われる。例えば1回のDMA転送毎
にMAR101の内容が“1”インクリメントされるの
であれば、RP103は命令処理において実行部11に
一回読みだされる毎に内容が“1”インクリメントされ
る。INC/DEC100はさらに信号39を発生しU
/Dカウンタ120を“1”ダウンカウントさせる。R
P103の内容はデータ線40を介してCOMP105
により監視されておりその内容がエリアaの(終端アド
レス−1)を指している際には,COMP105は信号
41を発生し(521)、MARE106の内容がRP
103に書き込まれる(552)。U/Dカウンタ12
0はCPU10がRP103の内容を読み出す毎に
“1”カウントダウンされ、DMA転送が実行される毎
に“1”カウントアップされる。従って、U/Dカウン
タ120の内容はまだ読みだされていないDMA転送さ
れたデータ数を示し、RP103の内容は次に読みだす
べきDMA転送されたデータの先頭アドレスを示してい
る。
【0034】図4(B)に戻って、CPU10はプログ
ラム処理でU/Dカウンタ120の内容が“0”になる
まで(414)、繰り返しエリアaに書き込まれたDM
A転送データの読みだしで所定の処理を実行する。
【0035】U/Dカウンタ120の内容はCOMP1
21でモニタされており、COMP121にはプログラ
ムによりメモリ20の“DMA転送領域(エリアa)の
データ数−α(α:0〜数ワード程度)”が設定されて
いる。DMA転送が実行され、U/Dカウンタ120の
内容がCOMPに一致すると一致信号25を制御ユニッ
ト17に伝える。制御ユニット17は一致信号25が伝
えられたことにより、DMA転送データの引き取りを要
求するDMA割り込みを発生する。DMA割り込みの発
生はCPU10に引き取られていないDMA転送データ
でエリアアドレスが一杯になっていることを示してお
り、そのまま放置すれば、次に発生するDMA転送でエ
リアaの内容がオーバーライトされてしまう。従って割
り込み処理プログラムにより直ちにCPU10はデータ
の読みだしを実行する。なおCOMP121にはCPU
10におけるDMA割り込みの受付遅延を考慮して、エ
リアaの実際のデータ数よりも数ワード分少ない値を設
定した方が好ましい。
【0036】以上説明したように、本実施例のDMAC
を内蔵したマイクロコンピュータ1においては、CPU
がDMAを一回初期化するだけで、DMA転送を行った
メモリの同一転送領域に繰り返しDMA転送を実行す
る。またDMA転送領域の専用読みだしポインタRP1
03と、DMA転送が実行されると自動的にカウントア
ップされ、CPUが専用読みだしポインタによりDMA
転送領域からデータの読みだしを行なうと自動的にカウ
ントダウンされるU/Dカウンタ120とを利用する事
により、DMA転送バッファとして使用するメモリ領域
をCPU10は図3(B)に示すように論理的にリング
構造をしているバッファとして扱うことが可能である。
このためCPUは任意のタイミングでDMA転送バッフ
ァの内容を読みだして、必要なデータ処理を行うことが
出きる。
【0037】またCPU10における命令の読みだし及
び実行に関わるバス制御とDMA制御に関わるバス制御
とを単一のバス制御ユニット12で行なうことが可能な
ためハードウェア資源を有効に活用することができる。
【0038】第2の実施例に関して図6を参照して説明
する。
【0039】本実施例が、実施例1と異なる点は、CP
U部に備っているシステムバスの制御部、即ち命令コー
ドのフェッチ,メモリアクセスに関わるアドレス計算及
びDMA転送アドレスの生成、転送回数の更新、転送ポ
インタの更新等行う手段が異なることである。
【0040】本実施例におけるCPU610は、図6に
示すように命令の実行を行う実行部611、バスインタ
ーフェースを司さどるバス制御部612から成る。
【0041】バス制御部612は、命令コードのフェッ
チ、メモリアクセスに関わるアドレス計算を行う算術演
算器(以下ADCと略す)200と、DMA転送元領域
20の最終アドレス+1の値を記憶するメモリ・アドレ
ス・レジスタMAR201と、DMA転送のカレントの
実行回数を記憶するターミナル・カウンタTC221
と、DMA転送の実行回数(初期値)を設定するターミ
ナル・カウンタ・モジュロ・レジスタTCM212と、
CPU610が次に書き込むべきメモリ領域の先頭アド
レスを指定するリード・ライト・ポインタRWP203
と、DMA転送領域内の空き領域のデータ数を格納する
U/Dレジスタ220と、U/Dレジスタ220の値と
の比較値を格納し、比較の結果等しくなると一致信号2
25を出力するコンペア・レジスタCOMP221と、
アクセスサイクルの起動、メモリ制御信号のコントロー
ル、バス制御部の内部制御を行う制御ユニット217
と、実行部611がバス制御部612に対してアドレス
計算の元となるデータ(以下、オフセットとセグメント
と記す)を受けて渡す為のバス614から構成される。
【0042】次に各部の動作を説明する。尚、前記MA
R201,TC211,TCM212,COMP221
は、前述した実施例1と同様の動作を行う為、ここでの
説明は省略する。
【0043】バス制御部612は、通常CPU610の
命令実行動作に関わる命令プログラムをメモリ20から
読み込む動作や、プログラム上に記述されたメモリ20
に対するアクセスを行っており、実行部611がバス6
14を経由してバス制御部612に対してメモリ参照の
オフセットとセグメントを与え、読みだしまたは書き込
みのいずれかのバスサイクル要求をバスサイクル要求線
616を介してバス制御部612に要求するとバス制御
部612はADC200で前記のオフセットとセグメン
トを加算することによりアドレスを計算し、メモリアク
セスを行う。
【0044】まず実行部611の内部レジスタにメモリ
20からデータをよみだす動作を説明する。バス制御部
612はバスサイクル要求信号615が伝えられると、
実行部611よりバス614を介して与えられるセグメ
ント情報をラッチ620にラッチし、続いて実行部61
1よりバス614を介して与えられるオフセット情報と
ラッチA620の内容とをADC200を介して加算ア
ドレスバス5aに伝え、同時にバスBUSY信号616
を活性化して実行部611に伝え実行部611をウェイ
ト状態とする。またバス制御部612は制御バス5cを
活性化してリード信号をメモリ20に伝える。バス5a
に乗せられたアドレスで指定するメモリ20からデータ
がバス5bに読みだされるとバス制御部612はバスB
USY信号616をインアクティブにして実行部611
のウェイト状態を解除する。実行部611はバスBUS
Y信号616がインアクティブとなるとバス5b上のデ
ータを読みだし、内部レジスタに書き込みを行なう。
【0045】次に実行部611の内部レジスタからメモ
リ20にデータを書き込む動作を説明する。実行部61
1は内部レジスタから読みだしたデータをバス5bに出
力するとともに、バスサイクル要求615を伝え、バス
制御部612はバス614を介して書き込むべきアドレ
スのセグメント情報をラッチA620にラッチする。続
いてバス制御部612はバス614を介して与えられる
オフセット情報とラッチ620の内容とをADC200
を介して加算しアドレスバス5aに伝え、同時にバスB
USY信号616を活性化して実行部611に伝え実行
部611をウェイト状態とする。またバス制御部612
は制御バス5cを活性化してライト信号をメモリ20に
伝えるとともにバスBUSY信号616を活性化するこ
とにより、実行部11を内部レジスタのデータをバス5
bに出力したままウェイト状態にさせる。バス5aに乗
せられたアドレスで指定するメモリ20にデータがバス
5bを介して書き込まれるとバス制御部612はバスB
USY信号616をインアクティブにして実行部611
のウェイト状態を解除する。実行部611はバスBUS
Y信号616がインアクティブとなるとバス5b上のデ
ータ出力を中止する。
【0046】以上のように通常命令では実行部611よ
り要求されたバスサイクルをバス制御部612が起動
し、メモリ20の所定アドレスよりデータの読みだしま
たは所定アドレスへデータの書き込みを行なう。また実
行部611のプログラム実行に関わる命令のメモリ20
から読みだし、即ち命令コードのフェッチも上記と同様
に行なわれる。なお図面の複雑化を避けるために、バス
制御部612の内部各レジスタとのデータのリード/ラ
イト信号線は省略する。
【0047】また、周辺装置3からのDMA転送要求信
号30が活性化されると、バス制御部612は、DMA
転送制御を行う。
【0048】U/Dレジスタ220は実施例1と異な
り、カウントアップ/カウントダウン動作を行うことは
せず、単なるU/Dカウント値を格納しておくレジスタ
である。
【0049】ADC200は、上述したアドレス計算を
実際に行うユニットで、実行部611がバス614を経
由してバス制御部612に対してメモリ参照のオフセッ
トとセグメントを与えると、前記のオフセットとセグメ
ントを加算してメモリアクセスのアドレスを計算する。
【0050】命令コードフェッチの際には、命令コード
フェッチアドレスを記憶しておくレジスタ(図示せず)
の値を、命令コードのフェッチ毎にインクリメントす
る。
【0051】また、前記メモリ参照のアドレス値がRW
P203のアドレスに一致したことを検出する機能を持
ち、RWP203のアドレスに一致すると一致信号22
8を活性化する。
【0052】さらに、DMA転送を行う際に必要な、M
AR201とTC211の加減算、TC211のディク
リメント、U/Dレジスタ220のアップカウント/ダ
ウンカウント動作、RWP203の更新も行う。
【0053】上記RWP203の更新動作を行ったと
き、ADC200は、引きつづいて、MAR201の値
と、RWP203の値を減算して比較し、一致した場合
には一致信号228を活性化する。
【0054】制御ユニットは、実行部611がオフセッ
トとセグメントをバス制御部612に対して与えた場合
は、通常のメモリ参照制御を行い、周辺装置3がDMA
転送要求信号30を活性化するとDMA転送の制御を行
う。
【0055】次に、メモリ20から周辺装置3へデータ
を転送する際の動作について具体的に説明する。尚、C
PUのソフトウェア処理については実施例1と同様であ
るので説明を省略する。
【0056】実行部611が通常のメモリ参照命令の実
行時に前述のADC200が一致信号228を活性化し
た場合は、制御ユニット217は単にRWP203に対
するメモリ参照を行う制御を行う。しかし実行部611
がI/O操作命令の実行時に前述のADC200が一致
信号228を活性化すると、制御ユニット217はRW
P203の内容をバス5aに対してアドレス情報として
出力してメモリ参照を行う制御を行う。
【0057】ここではまず実行部611がI/O操作命
令を実行したことによりRWP203を使用してメモリ
20にデータ書込みを行う時の動作について説明する。
【0058】CPU610が、I/O操作命令を実行す
ると実行部611は、バス614を介してバス制御部6
12にRWP203のアドレス情報のオフセットとセグ
メントを伝達する。
【0059】ADC200はADC200自身の生成す
るアドレスとRWP203のアドレスが合致したことを
検知すると、一致信号228を活性化し、制御ユニット
217に対してRWP203を使用してのメモリ参照制
御を行わせる。一致信号228を検出したバス制御ユニ
ット617はバスBUSY信号616を活性化し実行部
611をウェイト状態にする。同時に制御ユニット61
7はRWP203の値をADC200を介してアドレス
情報としてバス5a上に出力し、バス5cを活性化して
メモリ20にライト信号を伝え実行部611の出力する
書込みデータをメモリ20の該当アドレスに書込む。続
いてバスBUSY信号616をインアクティブに戻して
実行部611のウェイト状態を解除する。
【0060】次に実行部611がI/O操作命令を実行
したことによりRWP203を使用してメモリ20から
データ読みだしを行う時の動作について説明する。
【0061】CPU610が、I/O操作命令を実行す
ると実行部611は、バス614を介してバス制御部6
12にRWP203のアドレス情報のオフセットとセグ
メントを伝達する。
【0062】ADC200はADC200自身の生成す
るアドレスとRWP203のアドレスが合致したことを
検知すると、一致信号228を活性化し、制御ユニット
217に対してRWP203を使用してのメモリ参照制
御を行わせる。一致信号228を検出したバス制御ユニ
ット617はバスBUSY信号616を活性化し実行部
611をウェイト状態にする。同時に制御ユニット61
7はRWP203の値をADC200を介してアドレス
情報としてバス5a上に出力し、バス5cを活性化して
メモリ20をリードして、データをバス5b上に読み出
す。続いてバスBUSY信号616をインクアクティブ
に戻して実行部611のウェイト状態を解除する。ウェ
イト状態を解除された実行部611はメモリ20の該当
アドレスのデータを内部レジスタに書込む。
【0063】ここで、I/O操作命令の実行によりバス
制御部612がメモリ20にデータを書き込んだときの
各ポインタ、カウンタの動作について説明する。
【0064】バス制御部612は、RWP203の値を
アドレス情報としてメモリ20にデータを書き込むまた
は読み出す毎に、ADC200によって、U/Dレジス
タ220の値をディクリメントし、また、RWP203
の値をインクリメントする。
【0065】この動作にひき続いて、ADC200は、
MAR201の値とRWP203の減算を行って、MA
R201とRWP203の値を比較する。
【0066】もしMAR201と、RWP203が一致
すればADC200は、一致信号228を活性化し、M
AR201からTCM212の値を減算してRWP20
3に書き込む。これにより、RWP203はDMA転送
元領域21の先頭アドレスに更新される。
【0067】次に、バス制御部612によるDMA転送
元領域30から周辺装置3へのDMA転送動作について
具体的に説明する。
【0068】周辺装置3のDMA転送要因が発生する
と、周辺装置3はバス制御部612に対しDMA転送要
求信号30を活性化する。
【0069】バス制御部612はDMA転送要求信号3
0が活性化されると、CPUとしてのバス制御動作と、
要求のあったDMA転送動作のメモリアクセスの要求度
の裁定を行った後、DMA転送の実行に移行する。
【0070】データをメモリ20から周辺装置3にデー
タ転送するDMA転送では、バス制御部612は、AD
C200でMAR201からTC211の値を減算し生
成したアドレス情報をバス5に出力してDMA転送元領
域30から転送データをバス5b上に読み出し、周辺装
置3に対してアクノリッジ信号31を出力する。これに
より、周辺装置3は転送データの読み出しを行なう。
【0071】一回のDMA転送の実行終了ごとにTC2
11の内容はADC200に読み出され“1”デクリメ
ントされた後書き戻される。これにより、MAR201
からTC211の値を減算して生成されるDMA転送対
象アドレスは“1”ずつインクリメント更新されていく
ことになる。また一回のDMA転送の実行終了ごとにU
/Dレジスタ220の内容はADC200によって
“1”カウントアップされて書き戻される。
【0072】周辺装置3からDMA転送要求信号30が
続けて発生している時には、再び上記のDMA転送動作
を繰り返す。周辺装置3から連続するDMA転送要求信
号30が発生していなければ、バス制御部612はDM
A転送を終了し、通常の命令実行に関わるメモリアクセ
スや、命令コードフェッチを行う。
【0073】以上のDMA転送を繰り返し実行し、AD
C200でTC211をデクリメントした結果TC=0
となり、TC211に設定された所定回数のDMA転送
の実行を終了すると、バス制御部612はTCM212
の内容をTC211にロードする。その後、周辺装置3
からDMA転送要求信号30が発生しDMA転送が実行
されるときには、再びメモリ20のDMA転送元領域2
1の先頭アドレスからDMA転送が実行される。
【0074】このようにして、DMA転送元領域21を
用いて繰り返しDMA転送を行うことができる。
【0075】次にCOMP221の動作について説明す
る。DMA転送に先立ちCOMP221にはプログラム
により“DMA転送元領域30のデータ数−α”が設定
されている。DMA転送が実行され、U/Dレジスタ2
20の値がインクリメントされてCOMP221に一致
すると一致信号225が活性化し制御ユニット217に
伝えられる。この一致信号225は、DMA転送元領域
21にDMA転送すべきデータが残っていないことを示
している。
【0076】制御ユニット217は一致信号225が活
性化状態になったことを検知すると、実行部611に対
してDMA割り込み要求を行い(図示せず)、CPU6
10は、DMA割込み処理を行う。
【0077】この割込み処理ではDMA転送を禁止状態
にするか、U/Dレジスタ220の値がCOMP221
の値より小さくなるまでDMA転送元領域21に高速に
転送データを書き込む(図4)。
【0078】なお、αを“0〜数バイト程度”としたの
は、COMP221が一致を検出してからDMA転送を
禁止するか、あるいはデータをCPUが書き込むまでの
遅延期間にも行われるDMA転送によってCPUの未処
理データが転送されてしまうことを防止するためのもの
である。
【0079】
【発明の効果】以上説明したように、本発明のデータ転
送制御装置(DMAC)を内蔵したマイクロコンピュー
タでは、転送回数分のDMA転送が完了したときに自動
的に次のDMA転送のための制御情報を設定するため、
CPUによる上記情報の設定処理が不要となり、その結
果DMA転送要求を保留する必要がなくなり、高速に周
辺装置のDMA転送要求に応答することができる。
【0080】また、CPUがDMA転送元領域にデータ
を書き込む度に自動的に更新され、しかもDMA転送元
領域を越えるときに領域の先頭アドレス情報が自動的に
設定される専用書き込みポインタと、CPUがデータの
書き込みを行うと自動的にカウントダウンし、DMA転
送が実行されると自動的にカウントアップするU/Dレ
ジスタとを利用することにより、CPUはDMA転送領
域を論理的にリング構造をしているバッファとして扱う
ことができる。このため、CPUとしては書き込みアド
レスの管理を一切行なわずにI/O操作命令を実行する
だけでデータの書き込みができるため、CPUの操作性
が非常によく、システム全体としての処理能力を大幅に
向上することができるといった効果がある。
【0081】さらにCPUにおける命令の読みだし及び
実行に関わるバス制御とDMA制御に関わるバス制御と
を単一のバス制御部をで実行することにより、チップ面
積の低減を図ることができる。
【0082】また実施例2に示した様に、CPUのアド
レス生成部と、DMAのアドレス生成部するためのハー
ドウェア資源を共用し有効に活用することができ、経済
的なマイクロコンピュータを提供することができるとい
った効果がある。
【図面の簡単な説明】
【図1】本発明の第一の実施例におけるマイクロコンピ
ュータを用いたシステム構成を示すブロック図である。
【図2】図1のCPUの要部構成を示すブロック図であ
る。
【図3】第一の実施例におけるメモリのマップである。
【図4】図1のCPUの動作を示すフローチャートであ
る。
【図5】図2のCPUおけるDMA動作を示すブロック
図。
【図6】本発明の第二の実施例におけるマイクロコンピ
ュータを用いたシステム構成を示すブロック図である。

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 マイクロコンピュータ外部からのDMA
    要求に応答してDMA転送する転送データ数を記憶する
    転送データ数記憶回路とメモリのDMA転送アドレスを
    生成するアドレス生成回路とを含むDMAデータ転送制
    御装置を備えたマイクロコンピュータにおいて、データ
    転送先メモリの先頭アドレスを記憶する先頭アドレス記
    憶回路と、前記転送データ数を計数するカウンタと、前
    記転送データ数を前記カウンタにより計数した計数結果
    よりDMA転送されていないデータが無くなることが分
    かると前記転送データ数記憶回路の前記転送データ数を
    前記カウンタへ設定し直し、前記先頭アドレス記憶回路
    の前記データ転送先メモリの先頭アドレスを前記アドレ
    ス生成回路へ設定し直してDMA要求が無くなるまでD
    MA転送を継続する手段とを有することを特徴とするマ
    イクロコンピュータ。
  2. 【請求項2】 DMA転送により前記メモリへデータを
    転送する毎に前記転送データ数をインクリメントし、前
    記メモリ内のDMA転送されたデータを読み出す毎にデ
    クリメントする計数回路と、前記データ転送先メモリの
    先頭アドレスを用いて前記メモリから読み出すデータの
    アドレスを生成するアドレス生成手段と、前記計数した
    計数値と前記メモリのDMA転送領域へ記憶できるデー
    タ数とを比較する比較回路と、比較結果が一致すると前
    記メモリからDMA転送されたデータを読み出す割り込
    み処理を行う割り込みを発生する手段とを有することを
    特徴とする請求項1記載のマイクロコンピュータ。
  3. 【請求項3】 マイクロコンピュータ外部からのDMA
    要求に応答してDMA転送する転送データ数を記憶する
    転送データ数記憶回路とメモリのDMA転送アドレスを
    生成するアドレス生成回路とを含むDMAデータ転送制
    御装置を備えたマイクロコンピュータにおいて、DMA
    転送により前記メモリからデータを転送する毎に前記転
    送データ数を計数する計数回路と、前記転送データ数を
    計数した計数結果よりDMA転送されていないデータが
    無くなることが分かると前記転送データ数記憶回路の前
    記転送データ数を前記計数回路へ設定し直してDMA要
    求が無くなるまでDMA転送を継続する手段とを有する
    ことを特徴とするマイクロコンピュータ。
  4. 【請求項4】 前記計数回路は、DMA転送により前記
    メモリからデータを転送 する毎に前記転送データ数を計
    数すると共にDMA転送するデータを記憶できるメモリ
    領域の空きデータ数を計数するものであって、前記空き
    データ数を計数した計数値と前記メモリのDMA転送領
    域へ記憶できるデータ数とを比較する比較回路を有し、
    比較結果が一致するとDMA転送禁止にするか、又は前
    記メモリへデータを書き込むことを特徴とする請求項3
    記載のマイクロコンピュータ。
JP03127091A 1991-02-27 1991-02-27 マイクロコンピュータ Expired - Lifetime JP3265582B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP03127091A JP3265582B2 (ja) 1991-02-27 1991-02-27 マイクロコンピュータ
EP92103373A EP0503390A1 (en) 1991-02-27 1992-02-27 Microcomputer having direct memory access mode

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP03127091A JP3265582B2 (ja) 1991-02-27 1991-02-27 マイクロコンピュータ

Publications (2)

Publication Number Publication Date
JPH04271451A JPH04271451A (ja) 1992-09-28
JP3265582B2 true JP3265582B2 (ja) 2002-03-11

Family

ID=12326645

Family Applications (1)

Application Number Title Priority Date Filing Date
JP03127091A Expired - Lifetime JP3265582B2 (ja) 1991-02-27 1991-02-27 マイクロコンピュータ

Country Status (2)

Country Link
EP (1) EP0503390A1 (ja)
JP (1) JP3265582B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5284142B2 (ja) * 2009-02-27 2013-09-11 ローム株式会社 データ処理装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57113162A (en) * 1980-12-29 1982-07-14 Fujitsu Ltd High-speed external storage device
JP2618223B2 (ja) * 1984-07-27 1997-06-11 株式会社日立製作所 シングルチツプマイクロコンピユータ
EP0373393A1 (en) * 1988-11-22 1990-06-20 Nec Corporation Information processing system
EP0410382A3 (en) * 1989-07-24 1991-07-24 Nec Corporation Data transfer controller using direct memory access method

Also Published As

Publication number Publication date
JPH04271451A (ja) 1992-09-28
EP0503390A1 (en) 1992-09-16

Similar Documents

Publication Publication Date Title
US4737932A (en) Processor
EP0464615B1 (en) Microcomputer equipped with DMA controller
US5524268A (en) Flexible processor-driven control of SCSI buses utilizing tags appended to data bytes to determine SCSI-protocol phases
US5497501A (en) DMA controller using a predetermined number of transfers per request
JP2978539B2 (ja) データ転送制御装置
JPH0520263A (ja) データ転送制御装置
JP3055917B2 (ja) データ転送制御装置
JP4226085B2 (ja) マイクロプロセッサ及びマルチプロセッサシステム
JPH0530112A (ja) デイジタル信号処理システムの制御方法
JPH06309230A (ja) バススヌ−プ方法
US5481756A (en) DMA controller mailing auto-initialize halting unit
JP3265582B2 (ja) マイクロコンピュータ
US6134642A (en) Direct memory access (DMA) data transfer requiring no processor DMA support
JP2001188745A (ja) 制御装置及び制御方法
JP4592944B2 (ja) Cpuインターフェース回路
JP3205992B2 (ja) ダイレクト・メモリ・アクセス転送制御装置
EP0410382A2 (en) Data transfer controller using direct memory access method
JP3323341B2 (ja) エミュレーション用プロセッサおよびそれを搭載したエミュレータ
JPH03188547A (ja) データ転送制御装置
JP2594611B2 (ja) Dma転送制御装置
JP2001117862A (ja) マイクロコンピュータ
JP2972557B2 (ja) データ転送制御装置および制御方法
JP2781999B2 (ja) マルチプロセツサシステムにおける共通データチヤネル装置起動方式
JP3206013B2 (ja) ダイレクト・メモリ・アクセス転送制御装置
JPH02219157A (ja) コンピュータシステム内のバスアービタ

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20011204

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

Free format text: PAYMENT UNTIL: 20080111

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20090111

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20100111

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20110111

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20110111

Year of fee payment: 9

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

Free format text: PAYMENT UNTIL: 20110111

Year of fee payment: 9

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: 20110111

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20120111

Year of fee payment: 10

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120111

Year of fee payment: 10