JPH09297730A - バスを介したデータ転送方法およびバスマスタ制御装置 - Google Patents

バスを介したデータ転送方法およびバスマスタ制御装置

Info

Publication number
JPH09297730A
JPH09297730A JP4830797A JP4830797A JPH09297730A JP H09297730 A JPH09297730 A JP H09297730A JP 4830797 A JP4830797 A JP 4830797A JP 4830797 A JP4830797 A JP 4830797A JP H09297730 A JPH09297730 A JP H09297730A
Authority
JP
Japan
Prior art keywords
bus
transfer
data
transferred
predetermined number
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
JP4830797A
Other languages
English (en)
Other versions
JP3492139B2 (ja
Inventor
Yuichi Hashimoto
祐一 橋本
Toru Kakiage
透 書上
Masato Suzuki
正人 鈴木
Yoshiaki Kasuga
義昭 春日
Junichi Yasui
純一 安井
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP04830797A priority Critical patent/JP3492139B2/ja
Publication of JPH09297730A publication Critical patent/JPH09297730A/ja
Application granted granted Critical
Publication of JP3492139B2 publication Critical patent/JP3492139B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 共通のバスを有し、バスマスタとして働く双
方の装置においてデータの転送効率の向上が図れるデー
タ転送方法およびバスマスタ制御装置を提供することを
目的とする。 【解決手段】 バスを介してデータを転送する方法であ
って、第1の装置がバスマスタとして前記バスを占有す
る工程と、前記第1の装置が前記バスを占有している状
態で、転送すべきデータのうち所定個数のデータを転送
する工程と、前記所定個数のデータの転送が終了した
後、第2の装置の要求の有無に応じて前記第1の装置が
前記バスを解放するか否かを判定する工程と、前記第1
の装置が前記バスを解放すると判定された場合、前記第
1の装置が前記バスを解放する工程とを含む。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、情報処理装置にお
けるバスを介したデータ転送方法およびバスマスタ制御
装置に関する。
【0002】
【従来の技術】DMA(ダイレクト・メモリ・アクセ
ス)コントローラとは、共通のバスに接続されたメモリ
やI/O(入出力)装置などの外部装置間のデータ転送
を、CPUを介さず高速に実行するために用いられる制
御装置である。
【0003】図5(a)〜図5(d)は、従来のDMA
コントローラを用いたデータ転送方法を概念的に示す。
1つの囲みが1回のデータ転送(例えば1サイクル期間
における1語のデータ転送)を示し、データ転送は左か
ら右へ順に実行される。それぞれのデータ転送における
バスマスタを囲みの中に示している。バスマスタとは、
データ転送においてバスを占有しデータ転送を制御する
装置であり、CPUやDMAコントローラなどがこれに
相当する。図5(a)〜図5(d)において「DMA」
とあるのは、DMAコントローラがバスマスタとしてバ
スを占有していることを示し、「他」とあるのはDMA
コントローラ以外(例えば、CPU)がバスマスタとし
てバスを占有していることを示す。
【0004】図5(a)は「バースト転送方法」による
データ転送を示している。DMA転送が起動されると、
そのDMA転送が終了するまでDMAコントローラがバ
スを占有する。そのため、例えばCPU等の他の装置が
バスを介してメモリとのデータ転送を行う場合、バース
ト転送中であれば他の装置はそのDMA転送が終わるま
で待機しなければならない。このようにバースト転送中
に他の装置が長時間待機させられるのを防ぐために、図
5(b)、図5(c)および図5(d)に示すデータ転
送方法が提案されている。
【0005】図5(b)は、バスを占有するバスマスタ
としてDMAコントローラと他の装置とを1語のデータ
の転送ごと交互に強制的に切り換える「1語転送方法」
によるデータ転送を示す。図5(c)は、他の装置がバ
スマスタとしてバスを使用していない時のみDMAコン
トローラがバスマスタとしてバスを占有しDMA転送を
実行する「サイクルスチール転送方法」によるデータ転
送を示す。図5(d)は、タイマーによる所定時間で割
り込みをかけることによって、それぞれの装置がバスを
交互に占有する「タイマー割り込み転送方法」によるデ
ータ転送を示す。タイマー割り込み転送方法では、DM
A転送の起動から所定時間後の割り込みによりDMAコ
ントローラは強制的にDMA転送を中断させられ、他の
装置がバスマスタとしてバスを占有する。さらに所定時
間後の割り込みによって他の装置は強制的にバス占有を
中断させられ、DMAコントローラが再度バスを占有し
てDMA転送を再開する。
【0006】
【発明が解決しようとする課題】バスマスタとなること
ができる複数の装置がバスを共有しているシステムにお
けるデータ転送、例えばDMA転送においては、DMA
コントローラ及び他の装置の両方の転送効率を上げるこ
とが要求されている。
【0007】しかしながら、上記の「1語転送方法」で
は、DMA転送が連続的に行なえないので、特にDRA
Mのページモードなどの高速転送モードを利用したメモ
リへのアクセスができない。そのためDMA転送効率が
非常に悪くなるといった問題点があった。
【0008】また、「サイクルスチール転送方法」で
は、前記と同様の問題に加えて、他の装置がバスマスタ
として長時間バスを占有した場合にはDMAコントロー
ラがバスにアクセすることができず、その結果DMA転
送が待たされ、所定の時間内に転送を完了することがで
きない、といった問題点を有していた。
【0009】また、「タイマー割り込み転送方法」で
は、バスマスタとして働いている装置の都合によらずタ
イマー割り込みによってバスマスタとしてバスを占有す
る装置が強制的に切り換えられるので、データ転送効率
が悪いという問題点があった。
【0010】本発明はかかる点に鑑み、ある装置がバス
マスタとしてデータ転送中(例えば、DMA転送中)で
あっても他の装置が長時間待機させられることなく、か
つ、所定個数のデータを連続して転送する間バスを占有
でき、両方の装置におけるデータの転送効率の向上が図
れるデータ転送方法およびバスマスタ制御装置を提供す
ることを目的とする。
【0011】
【課題を解決するための手段】本発明の方法は、バスを
介してデータを転送する方法であって、第1の装置がバ
スマスタとして前記バスを占有する工程と、前記第1の
装置が前記バスを占有している状態で、転送すべきデー
タのうち第1の所定個数のデータを転送する工程と、前
記第1の所定個数のデータの転送が終了したか否かを判
定する工程と、前記第1の所定個数のデータの転送が終
了したと判定された後、第2の装置の要求の有無に応じ
て前記第1の装置が前記バスを解放するか否かを判定す
る工程と、前記第1の装置が前記バスを解放すると判定
された場合、前記第1の装置が前記バスを解放する工程
とを含み、そのことにより上記目的を達成することがで
きる。
【0012】ある実施形態では、前記第1の装置が前記
バスを解放した後、前記第2の装置がバスマスタとして
前記バスを占有する工程と、前記第2の装置が前記バス
へのアクセスを終了した後、前記第2の装置が前記バス
を解放する工程と、前記第2の装置が前記バスを解放し
た後、前記第1の装置が前記バスを再び占有する工程
と、前記第1の装置が前記バスを再び占有している状態
で、前記転送した第1の所定個数のデータに続く第2の
所定個数のデータを転送する工程をさらに含む。
【0013】ある実施形態では、前記第1の装置が前記
バスを解放しないと判定された場合、前記第1の装置が
前記バスを占有し続け、前記転送した第1の所定個数の
データに続く第2の所定個数のデータを転送する工程と
を含む。
【0014】ある実施形態では、前記転送すべきデータ
全ての転送が終了したか否かを判定する工程と、前記転
送すべきデータ全ての転送が終了したと判定された後、
前記バスを解放する工程をさらに含む。
【0015】ある実施形態では、前記第1の装置は、D
MAコントローラであり、前記第2の装置は、CPUで
ある。
【0016】本発明のバスマスタ制御装置は、バスを介
してデータ転送を行うバスマスタの動作を制御するバス
マスタ制御装置であって、データ転送要求に応答して、
前記バスの占有を要求する信号を出力するバス占有要求
手段と、前記バスマスタが前記バスを占有している状態
で、転送すべきデータのうち第1の所定個数のデータを
転送するデータ転送手段と、前記第1の所定個数のデー
タの転送が終了した後、前記バスの解放を指示する信号
を出力するバス解放指示手段とを含み、そのことにより
上記目的を達成することができる。
【0017】ある実施形態では、前記バス占有要求手段
は、前記バス解放指示手段が前記バス解放指示信号を出
力した後、前記バスの占有を要求する信号を再び出力
し、前記データ転送手段は、前記バスマスタが前記バス
を再び占有している状態で、前記転送した第1の所定個
数のデータに続く第2の所定個数のデータを転送する。
【0018】ある実施形態では、前記バス解放指示手段
は、前記転送すべきデータ全ての転送が終了した後、前
記バスの解放を指示する信号を出力する。
【0019】ある実施形態では、前記データ転送手段
は、前記第1の所定個数のデータのうち転送したデータ
の個数をカウントする第1のカウンタと、前記第1のカ
ウンタの出力に基づいて前記第1の所定個数のデータの
転送が終了したか否かを判定する第1の判定手段とを含
む。
【0020】ある実施形態では、前記データ転送手段
は、前記転送すべきデータ全てのうち転送したデータの
個数をカウントする第2のカウンタと、前記第2のカウ
ンタの出力に基づき前記転送すべきデータの転送が全て
終了したか否かを判定する第2の判定手段とをさらに含
む。
【0021】以下に作用を説明する。
【0022】本発明は、上記の構成によって、第1の装
置がバスマスタとして所定個数のデータ転送を終了した
後、第2の装置の要求の有無に応じて第1の装置がバス
を解放することにより、第1の装置によるデータ転送中
であっても第2の装置がバスマスタになるために長時間
待機させられることがない。
【0023】また、第2の装置がバスを解放した後、第
1の装置がバスマスタとしてバスを再び占有し、転送し
た所定個数のデータに続く所定個数のデータを転送を行
なう。このように所定個数毎にデータ転送を行なうこと
により、第1の装置によるデータ転送が効率よく行なわ
れる。
【0024】
【発明の実施の形態】以下、図1〜図4を参照して本発
明の実施の形態を説明する。
【0025】図1は、情報処理装置408の構成を示す
ブロック図である。情報処理装置408は、CPU40
1と周辺装置404とDMAコントローラ11とバスコ
ントローラ9とを備えている。CPU401、周辺装置
404およびバスコントローラ9は、内部バス406で
結合されている。さらに情報処理装置408は、バスコ
ントローラ9および外部バス407を介して外部メモリ
405と接続されている。301はCPU401が内部
バス406および外部バス407の占有をバスコントロ
ーラ9に対して要求するCPU転送要求信号であり、1
01は周辺装置404がDMAコントローラ11に対し
てDMA転送を要求するDMA起動要求信号である。D
MAコントローラ11とバスコントローラ9は、後述す
るように制御信号とアドレスを送る線で接続されてい
る。
【0026】CPU401は、演算処理を行ない、また
情報処理装置408全体の処理を統括し制御する中央処
理装置である。周辺装置404は、CPU401の指示
に基づき、あるまとまった処理を受け持つ装置である。
例えばハードディスクや光ディスク等の外部記憶装置や
プリンタがこれに相当する。バスコントローラ9は、内
部バス406と外部バス407に対するアクセスを制御
し、バスマスタになりうる装置としてCPU401とD
MAコントローラ11を持つ。バスコントローラ9は、
これらの装置からの内部バス406および外部バス40
7の占有要求に対して調停を行ない、どの装置がバスマ
スタとしてバスを占有するかの判定を行なう。DMAコ
ントローラ11は、周辺装置404からの要求に基づ
き、CPU401を介さずに行なう周辺装置404と外
部メモリ405間のデータ転送(DMA転送)を制御す
る。
【0027】図2はDMAコントローラ11の構成を示
すブロック図である。
【0028】DMAコントローラ11は、転送元アドレ
スレジスタ1a、転送先アドレスレジスタ1b、アドレ
ス生成部7を含んでいる。転送元アドレスレジスタ1a
は、DMA転送における転送元アドレスであるソースア
ドレスを格納する。転送先アドレスレジスタ1bは、D
MA転送における転送先アドレスであるデスティネーシ
ョンアドレスを格納する。転送元アドレスレジスタ1a
の出力と転送先アドレスレジスタ1bの出力は、アドレ
ス生成部7に接続されている。また、バスコントローラ
9から出力された読み出しアクノリッジ信号106およ
び書き込みアクノリッジ信号110が、アドレス生成部
7に入力されている。読み出しアクノリッジ信号106
は、バスコントローラ9がDMA転送要求を受け付け、
DMA転送すべきデータの読み出しを開始したことを知
らせる信号である。書き込みアクノリッジ信号110
は、バスコントローラ9がDMA転送すべきデータの書
き込みを開始したことを知らせる信号である。アドレス
生成部7は、データ転送開始アドレスとして転送元アド
レスレジスタ1aおよび転送先アドレスレジスタ1bの
内容を読み出し、転送元アドレス105aおよび転送先
アドレス105bとしてバスコントローラ9に出力す
る。さらにアドレス生成部7は、読み出しアクノリッジ
信号106および書き込みアクノリッジ信号110に基
づき、次に読み出しおよび書き込みを行なうべきアドレ
スを更新し、それぞれ転送元アドレス105aおよび転
送先アドレス105bとしてバスコントローラ9に出力
する。これにより所定個数のデータの転送が順次行なわ
れる。
【0029】DMAコントローラ11は、転送回数レジ
スタ2と、間欠転送回数レジスタ3とをさらに含む。転
送回数レジスタ2は、DMA転送すべき転送回数を格納
する。間欠転送回数レジスタ3は、1回の間欠転送にお
いて転送すべきデータの個数として所定の値を格納す
る。DMAコントローラ11は、DMA転送すべき全デ
ータの転送を所定個数のデータ毎に何回かに分けて間欠
的に行なう。本発明では、バスマスタがバスを占有して
所定個数のデータの転送を連続して行なうひとかたまり
の転送を間欠転送と呼ぶ。
【0030】DMAコントローラ11は、カウンタ4、
カウンタ5およびデクリメンタ6をさらに含む。カウン
タ4は、間欠転送の開始時点でリセットされ、バスコン
トローラ9から入力された読み出しアクノリッジ信号1
06をカウントする。すなわち、カウンタ4は、間欠転
送において転送すべき所定個数のデータのうち転送元か
らの読み出しが終了したデータの個数をカウントする。
カウンタ5は、間欠転送の開始時点でリセットされ、バ
スコントローラ9から入力される転送終了信号102を
カウントする。転送終了信号102は、ひとつデータの
DMA転送が終了したことを知らせるためにバスコント
ローラ9が出力する信号である。すなわち、カウンタ5
は、間欠転送において転送すべき所定個数のデータのう
ち転送先へのデータ書き込みが終了し転送が完了したデ
ータの個数をカウントする。転送終了信号102は、転
送回数レジスタ2およびデクリメンタ6にも入力されて
いる。デクリメンタ6は、転送終了信号102がアサー
トされる毎に転送回数レジスタ2の出力を1減じて転送
回数レジスタ2に出力する。したがって、転送回数レジ
スタ2とデクリメンタ6によって、転送すべきデータ全
てのうち転送したデータの個数がカウントされ、転送す
べきデータの残りの数が転送回数レジスタ2に格納され
る。
【0031】DMAコントローラ11は、DMA転送の
制御を行なうDMA転送制御部8をさらに含む。DMA
転送制御部8は、DMA起動要求信号101、読み出し
アクノリッジ信号106、書き込みアクノリッジ信号1
10、転送終了信号102、カウンタ4の出力108、
カウンタ5の出力109、間欠転送回数レジスタ3の出
力111および転送回数レジスタ2の出力112を入力
として受け取り、全転送終了信号103およびDMA転
送要求信号104を出力する。DMA転送制御部8は、
周辺装置404からのDMA起動要求信号101に応答
して、バスコントローラ9に対してDMA転送要求信号
104をアサートし、バスの占有を要求する。また、D
MA転送制御部8は、カウンタ4の出力108、カウン
タ5の出力109および間欠転送回数レジスタ3の出力
111に基づき、間欠転送における所定個数のデータの
転送が終了したか否かを判定する。DMA転送制御部8
は、間欠転送における所定個数のデータの転送が終了し
たと判定された場合、バスコントローラに対して出力し
ていたDMA転送要求信号104のアサートを終了し、
バスの解放を指示する。DMA転送制御部8は、転送回
数レジスタ2の出力112に基づき転送すべきデータ全
ての転送が終了したか否かを判定する。転送すべきデー
タ全ての転送が終了していないと判定された場合、ひと
つの間欠転送が終了した後、DMA転送制御部8は、バ
スコントローラ9に対してDMA転送要求信号104を
アサートし、バスの占有を再び要求し、以降同様に次の
間欠転送の制御を行なう。転送すべきデータ全ての転送
が終了したと判定された場合、DMA転送制御部8は、
バスコントローラ9に対して出力していたDMA転送要
求信号104のアサートを終了し、バスの解放を指示す
る。
【0032】バスコントローラ9は、DMA転送制御部
8からのDMA転送要求信号104とCPU401から
のCPU転送要求信号301に基づいて調停を行ない、
DMAコントローラ11とCPU401のどちらの装置
がバスマスタとして内部バス406および外部バス40
7を占有するかの判定を行なう。DMAコントローラ1
1がこれらのバスを占有すると判定された場合、バスコ
ントローラ9は、DMAコントローラ11内のアドレス
生成部7から出力された転送元アドレス105aおよび
転送先アドレス105bの内容をそれぞれ内部バス40
7および外部バス406に出力する(または転送元アド
レス105aおよび転送先アドレス105bの内容をそ
れぞれ内部バス406および外部バス407に出力す
る)。このようにしてデータの読み出しと書き込みを制
御する。バスコントローラ9は、データの読み出しまた
は書き込みが始まったことをそれぞれ示す読み出しアク
ノリッジ信号106または書き込みアクノリッジ信号1
10をDMAコントローラ11に出力する。
【0033】次に、図3および図4を参照してDMAコ
ントローラ11の動作を説明する。
【0034】図3は、DMAコントローラ11の動作例
を示す動作概念図である。図5と同様に1つの囲みが1
回のデータ転送を示し、データ転送は左から右へ順に実
行される。それぞれのデータ転送におけるバスマスタは
囲みの中に示されている。図3に示す例においては12
個のデータの転送をそれぞれが4個のデータの転送から
なる第1から第3の間欠転送に分けて行なっている。ひ
とつの間欠転送と次の間欠転送との間はCPU401が
バスを占有している。また、12個全てのデータ転送が
終了すれば、DMAコントローラ11はバスを解放し、
以降はCPUがバスを占有する。
【0035】図3(a)は、間欠転送の間において毎回
CPU401がバスを1サイクル占有している例を示し
ている。ここでは間欠転送の間においてCPU401が
バスを占有している期間が1サイクルである例を示して
いるが、間欠転送の間におけるCPU401がバスを占
有する期間は1サイクルには限定されない。CPU40
1は必要とする期間だけバスを占有することができる
が、通常はCPU401が連続してバスを占有する必要
があるのは短期間である。したがって、DMAコントロ
ーラ11はバスを解放した後、まもなく再びバスを占有
することができ、先に転送した4個のデータに続く4個
のデータの転送を行なう。
【0036】図3(b)は、第1の間欠転送と第2の間
欠転送の間でCPU401が3サイクルの間バスを占有
し、第2の間欠転送と第3の間欠転送の間ではCPU4
01からバス占有要求を出さなかったためDMAコント
ローラ11がバスを占有し続けデータ転送を継続して行
なっている例を示す。
【0037】いずれの場合においても、1回の間欠転送
において転送されるデータの数は一定である。
【0038】図4は、図3における第1の間欠転送の動
作タイミング図である。上から順に、情報処理装置40
8における動作の基準となるクロック信号、DMA起動
要求信号101、DMA転送要求信号104、バスコン
トローラ9からDMA転送制御部8へDMA転送要求を
受け付け、読み出しを開始したことを知らせる読み出し
アクノリッジ信号106、カウンタ4の出力108、バ
スコントローラ9からDMA転送制御部8へ書き込みを
開始したことを知らせる書き込みアクノリッジ信号11
0、バスコントローラ9からDMA転送制御部8へ転送
が終了したことを知らせる転送終了信号102、カウン
タ5の出力109、転送回数レジスタ2、転送元アドレ
ス105a、転送先アドレス105b、CPU転送要求
信号301、外部バス407、そして内部バス406を
クロックのサイクル毎に示している。
【0039】なお、DMA起動要求信号101とCPU
転送要求信号301とはハイ状態のときに信号がアサー
トされるアクティブハイ信号である。また、DMA転送
要求信号104、読み出しアクノリッジ信号106、書
き込みアクノリッジ信号110および転送終了信号10
2はロー状態のときに信号がアサートされるアクティブ
ロー信号である。
【0040】次に、このような情報処理装置408にお
いて、DMAコントローラ11が外部メモリ405から
周辺装置404へのデータ転送を実行する場合の動作を
サイクル毎に詳細に説明する。ここでは、ひとつの間欠
転送で4個のデータを連続して転送するものとし、外部
メモリ405の1000番地から1011番地にある1
2個のデータを周辺装置404の2000番地から20
11番地へ、3回の間欠転送に分けて転送する例を示
す。
【0041】(前処理)まず、CPU401または外部
の機器からの指令に基づいて、DMA転送制御部8は、
転送元アドレスレジスタ1aおよび転送先アドレスレジ
スタ1bにそれぞれ転送元・転送先アドレスである10
00と2000を設定し、転送回数レジスタ2には「1
2」、間欠転送回数レジスタ3には「4」を設定する。
【0042】(t0サイクル)周辺装置404は、DM
Aコントローラ11のDMA転送制御部8に対してDM
A起動要求信号101をアサートする。
【0043】(t1サイクル)DMA転送制御部8はD
MA起動要求信号101がアサートされハイ状態になっ
たのを検知し、DMA転送要求信号104(ロー状態)
をバスコントローラ9へ出力する。また、DMA転送制
御部8からの指示に基づき、アドレス生成部7は転送元
アドレスレジスタ1aおよび転送先アドレスレジスタ1
bの内容を読み出し、転送元アドレス105aとして1
000番地を、転送先アドレス105bとして2000
番地をバスコントローラ9に出力する。さらに、DMA
転送制御部8は、カウンタ4およびカウンタ5をリセッ
トする。
【0044】(t2サイクル)DMA転送制御部8から
のDMA転送要求104がロー状態になったことを検知
したバスコントローラ9は、CPU転送要求信号301
がアサートされていないのでDMAコントローラ11に
バスを占有させると判定する。バスコントローラ9は、
外部バス407より外部メモリ405の1000番地の
読み出しを開始し、同時に読み出しアクノリッジ信号1
06(ロー状態)をDMA転送制御部8に出力する。
【0045】(t3サイクル)アドレス生成部7は、ロ
ー状態の読み出しアクノリッジ信号106が入力された
のを検知すると転送元アドレス105aを次の1001
番地に更新しバスコントローラ9に出力する。またカウ
ンタ4は読み出しアクノリッジ信号106をカウントし
内容を1にする。
【0046】(t4サイクル)バスコントローラ9は、
外部バス407による1000番地の読み出しが終了し
たことにより外部メモリ405から次の1001番地の
読み出しを開始するとともに、内部バス406を介して
周辺装置404の2000番地へ外部メモリの1000
番地から読み出したデータの書き込みを開始する。同時
にバスコントローラ9は、読み出しアクノリッジ信号1
06(ロー状態)および書き込みアクノリッジ信号11
0(ロー状態)をDMA転送制御部8に出力する。
【0047】(t5サイクル)アドレス生成部7は、ロ
ー状態の読み出しアクノリッジ信号106が入力された
のを検知すると転送元アドレス105aを次の1002
番地に更新し、ロー状態の書き込みアクノリッジ信号1
10が入力されたのを検知すると転送先アドレス105
bを次の2001番地に更新し、それぞれのアドレスを
バスコントローラ9に出力する。またカウンタ4は読み
出しアクノリッジ信号106をカウントし内容を2にす
る。バスコントローラ9は、読み出しアクノリッジ信号
106および書き込みアクノリッジ信号110がアドレ
ス生成部7に受け取られたタイミングの後、それらをハ
イ状態に戻す。なお、次のデータ転送においても同様の
タイミングでこれらの信号はハイ状態に戻されるが、以
降では説明を省略する。
【0048】(t6サイクル)バスコントローラ9は、
外部バス407による1001番地の読み出しが終了し
たことにより外部メモリ405にから次の1002番地
の読み出しを開始するとともに、内部バス406を介し
て周辺装置404の2001番地へ外部メモリの100
1番地から読み出したデータの書き込みを開始する。同
時にバスコントローラ9は、読み出しアクノリッジ信号
106(ロー状態)および書き込みアクノリッジ信号1
10(ロー状態)をDMA転送制御部8に出力する。ま
た、内部バス406による2000番地の書き込みが終
了したことにより、バスコントローラ9はDMA転送制
御部8へ転送終了信号102(ロー状態)を送る。
【0049】(t7サイクル)アドレス生成部7は、ロ
ー状態の読み出しアクノリッジ信号106が入力された
のを検知すると転送元アドレス105aを次の1003
番地に更新し、ロー状態の書き込みアクノリッジ信号1
10が入力されたのを検知すると転送先アドレス105
bを次の2002番地に更新し、それぞれのアドレスを
バスコントローラ9に出力する。またカウンタ4は読み
出しアクノリッジ信号106をカウントし内容を3に、
カウンタ5は転送終了信号102をカウントし内容を1
にする。さらにまた転送終了信号102により、転送回
数レジスタ2に格納されていた内容「12」はデクリメ
ンタ6により1だけ減算され、その値が転送回数レジス
タ2に出力される。したがって、転送回数レジスタ2に
は新しい値「11」が格納される。
【0050】(t8サイクル)バスコントローラ9は、
外部バス407による1002番地の読み出しが終了し
たことにより外部メモリ405から次の1003番地の
読み出しを開始するとともに、内部バス406を介して
の周辺装置404の2002番地へ外部メモリの100
2番地から読み出したデータの書き込みを開始する。同
時にバスコントローラ9は、読み出しアクノリッジ信号
106(ロー状態)および書き込みアクノリッジ信号1
10(ロー状態)をDMA転送制御部8に出力する。ま
た、内部バス406による2001番地の書き込みが終
了したことにより、バスコントローラ9はDMA転送制
御部8へ転送終了信号102を送り、ロー状態とする。
【0051】(t9サイクル)アドレス生成部7は、ロ
ー状態の書き込みアクノリッジ信号110が入力された
のを検知すると転送先アドレス105bを次の2003
番地に更新しバスコントローラ9に出力する。またカウ
ンタ4は読み出しアクノリッジ信号106をカウントし
内容を4に、カウンタ5は転送終了信号102をカウン
トし内容を2にする。さらにまた転送終了信号102に
より、転送回数レジスタ2に格納されていた内容「1
1」はデクリメンタ6により1だけ減算され、その値が
転送回数レジスタ2に出力される。したがって、転送回
数レジスタ2には新しい値「10」が格納される。
【0052】(t10サイクル)バスコントローラ9
は、外部バス407による1003番地の読み出しが終
了したことにより内部バス406を介しての周辺装置4
04の2003番地へ外部メモリの1003番地から読
み出したデータの書き込みを開始する。同時にバスコン
トローラ9は、書き込みアクノリッジ信号110(ロー
状態)をDMA転送制御部8に出力する。また、内部バ
ス406による2002番地の書き込みが終了したこと
により、バスコントローラ9はDMA転送制御部8へ転
送終了信号102(ロー状態)を送る。
【0053】DMA転送制御部8に入力されている間欠
転送回数レジスタ3の出力111とカウンタ4の出力1
08が共に4となって一致したことにより、DMA転送
制御部8は1回の間欠転送の転送元からのデータ読み出
しが終了したと判定し、DMA転送要求信号104のア
サートを終了し、バスの解放を指示する。
【0054】(t11サイクル)カウンタ5は転送終了
信号102をカウントし内容を3にする。さらにまた転
送終了信号102により、転送回数レジスタ2に格納さ
れていた内容「10」はデクリメンタ6により1だけ減
算され、その値が転送回数レジスタ2に出力される。し
たがって、転送回数レジスタ2には新しい値「9」が格
納される。
【0055】(t12サイクル)バスコントローラ9
は、内部バス406による2003番地の書き込みが終
了したことにより、バスコントローラ9はDMA転送制
御部8へ転送終了信号102(ロー状態)を送る。
【0056】(t13サイクル)カウンタ5は転送終了
信号102をカウントし内容を4にする。さらにまた転
送終了信号102により、転送回数レジスタ2に格納さ
れていた内容「9」はデクリメンタ6により1だけ減算
され、その値が転送回数レジスタ2に出力される。した
がって、転送回数レジスタ2には新しい値「8」が格納
される。
【0057】CPU401からのCPU転送要求信号3
01がハイ状態でありCPU401からのバス占有要求
がある場合を例に示している。バスコントローラ9は、
CPU401からのCPU転送要求信号301を検知
し、バス占有についての調停を行なう。DMAコントロ
ーラ11は、DMA転送要求信号104をハイ状態とし
てバス占有要求を出していないので、CPU401にt
14サイクルからバスを占有させることを決定する。
【0058】(t14サイクル)DMA転送制御部8に
入力されている間欠転送回数レジスタ3の出力111と
カウンタ5の出力109が共に4となって一致したこと
により、DMA転送制御部8は1回の間欠転送が転送先
へのデータ書き込みを含めて終了したと判定する。DM
A転送制御部8は第2の間欠転送のために再びDMA転
送要求信号104(ロー状態)をバスコントローラ9に
出力する。しかし、バスコントローラ9は、t13サイ
クルにおいてCPU401からのCPU転送要求信号3
01を検知し、t14サイクルではバス調停の結果とし
てCPU401をバスマスタとしてバスを占有させ、転
送を起動している。この転送は図3(a)の第1間欠転
送と第2間欠転送との間の転送に相当する。従って、D
MA転送要求信号104は出力され続け、CPU401
がバスを解放した後、バスコントローラ9はDMAコン
トローラ11のバス占有要求を受け付ける。
【0059】もしCPU401からの転送要求301が
ない場合は、バスコントローラ9はt14サイクルの次
のサイクルにおいてDMA転送要求信号104を受け付
ける。この場合はDMAコントローラ11はバスを解放
することなく占有し続け、次の間欠転送を行なう。
【0060】以上のような過程によって第1の間欠転送
が実行され、外部バス407を介して外部メモリ405
の1000〜1003番地から読み出されたデータが内
部バス406を介して周辺装置404の2000〜20
03番地に書き込まれる。図3における第2の間欠転送
は、CPU401がバスを解放しt14サイクルから出
力され続けたDMA転送要求信号104がバスコントロ
ーラ9に検知された時より開始され、第1の間欠転送と
同様に実行され、外部バス407を介して外部メモリ4
05の1004〜1007番地から読み出されたデータ
が内部バス406を介して周辺装置404の2004〜
2007番地に書き込まれる。第3の間欠転送において
も同様に、外部バス407を介して外部メモリ405の
1008〜1011番地から読み出されたデータが内部
バス406を介して周辺装置404の2008〜201
1番地に書き込まれる。第3の間欠転送において、4回
目の転送終了信号102がアサートされると転送回数レ
ジスタ2の内容は0になる。DMA転送制御部8に入力
されている転送回数レジスタ2の出力112が0になっ
たことを検出して、DMA転送制御部8は転送すべきデ
ータの転送が全て終了したと判定して、バスコントロー
ラ9にバスの解放を指示する全転送終了信号103を出
力し、全ての転送処理を終える。
【0061】なお、DMA転送中にそれよりも優先度の
高いDRAMリフレッシュ処理が割り込んでデータ転送
のためにバスが使用できないサイクルがあったとして
も、間欠転送の終了判定は時間ではなく転送されたデー
タの数に基づいて行なわれる。したがって、1回の間欠
転送におけるデータの個数は保証されている。
【0062】また、1回の間欠転送におけるデータの個
数を4個とした例で説明したが、4個に限る必要はな
く、その都度適切な値をCPU401または外部から指
定して間欠転送回数レジスタ3に設定することも可能で
ある。
【0063】なお本発明の実施の形態では、DMAコン
トローラ11以外の装置としてCPU401をあげてい
るが、CPU以外の装置がバスマスタとして働く装置で
ある場合も同様である。またバスマスタとなりうる装置
が3つ以上存在する場合であっても本発明が応用可能で
あることは言うまでもない。
【0064】また、本発明の実施の形態では、DMAコ
ントローラ11のDMA転送が所定個数のデータ毎に間
欠転送を行なうとしたが、CPU401によるデータ転
送が所定個数のデータ毎に間欠転送を行ない、DMAコ
ントローラ11はCPU401による間欠転送の間でデ
ータ転送を行なう構成としてもよい。
【0065】また、本発明の実施の形態では、1回の間
欠転送の終了判定に関して、間欠転送回数レジスタ3の
出力111とカウンタ4の出力108に基づいて1回の
間欠転送の転送元からのデータ読み出しが終了したと判
定した時点で1回の間欠転送が終了したと判定し、DM
A転送要求信号104のアサートを終了しバスの解放を
指示するとしたが、間欠転送回数レジスタ3の出力11
1とカウンタ5の出力109に基づいて1回の間欠転送
の転送先へのデータ書き込みを含めて終了した時点で1
回の間欠転送が終了したと判定し、DMA転送要求信号
104のアサートを終了しバスの解放を指示するとして
もよい。
【0066】
【発明の効果】以上説明したように本発明によれば、第
1の装置がバスマスタとして所定個数のデータ転送を終
了した後、第2の装置の要求の有無に応じて第1の装置
がバスを解放することにより、例えば転送すべきデータ
数が多いDMA転送を第1の装置がバスマスタとして行
なっている場合であっても第2の装置がバスマスタにな
るために長時間待機させられることがない。
【0067】また、第2の装置がバスを解放した後、第
1の装置がバスを再び占有し、転送した所定個数のデー
タに続く所定個数のデータを転送することができ、1回
の間欠転送で転送されるデータの数が保証されているの
で、第1の装置によるデータ転送が効率よく行なわれ
る。
【0068】本発明においては、従来のように装置がバ
スマスタとしてバスを占有できる時間を一定にしてバス
の占有、解放を強制的に切り換えることはない。したが
って、例えば、DMA起動要求から受け付けまでの時間
が一定していないため、またはDMA転送中にそれより
も優先度の高いDRAMリフレッシュ処理が割り込んで
データ転送のためにバスが使用できないサイクルがある
ため等の理由により、1回の連続したデータ転送で転送
できるデータの個数が保証されないという不便さがな
い。間欠転送の終了判定は時間ではなく転送されたデー
タの数に基づいて行なわれるので、1回の間欠転送にお
いて連続して転送できるデータの個数は保証されてい
る。CPUや周辺機器におけるデータ処理の都合上、所
定のデータ数、例えば8バイト単位で、データ転送を行
なうと効率よく処理ができる場合がある。また、DRA
Mの高速ページモードのように例えば同一ページのデー
タ256バイトを連続して転送すれば非常に高速に効率
よくデータ転送を行なうことができる場合がある。特に
このような場合、本発明による大きな効果が得られる。
【0069】また、第2の装置がバスマスタとしてバス
を占有した後、時間により強制的にバスを解放させられ
ることがないので、第2の装置にとっても効率よくデー
タ転送が行なわれる。
【0070】したがって、本発明によれば、バスマスタ
として働く両方の装置におけるデータの転送効率の向上
が図れるデータ転送の方法およびバスマスタ制御装置を
提供することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態におけるDMAコントロー
ラを用いた情報処理装置のブロック図である。
【図2】本発明の実施の形態によるDMAコントローラ
のブロック図である。
【図3】(a)および(b)は、本発明の実施の形態に
よるDMA転送の動作例を示す動作概念図である。
【図4】本発明の実施の形態における図3に示す第1の
間欠転送の動作タイミング図である。
【図5】(a)〜(d)は従来のDMAコントローラの
動作概念図である。
【符号の説明】
1a 転送元アドレスレジスタ 1b 転送先アドレスレジスタ 2 転送回数レジスタ 3 間欠転送回数レジスタ 4、5 カウンタ 6 デクリメンタ 7 アドレス生成部 8 DMA転送制御部 9 バスコントローラ 11 DMAコントローラ 401 CPU 404 周辺装置 408 情報処理装置 406 内部バス 407 外部バス 405 外部メモリ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 春日 義昭 大阪府門真市大字門真1006番地 松下電器 産業株式会社内 (72)発明者 安井 純一 大阪府門真市大字門真1006番地 松下電器 産業株式会社内

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 バスを介してデータを転送する方法であ
    って、 第1の装置がバスマスタとして前記バスを占有する工程
    と、 前記第1の装置が前記バスを占有している状態で、転送
    すべきデータのうち第1の所定個数のデータを転送する
    工程と、 前記第1の所定個数のデータの転送が終了したか否かを
    判定する工程と、 前記第1の所定個数のデータの転送が終了したと判定さ
    れた後、第2の装置の要求の有無に応じて前記第1の装
    置が前記バスを解放するか否かを判定する工程と、 前記第1の装置が前記バスを解放すると判定された場
    合、前記第1の装置が前記バスを解放する工程とを含む
    方法。
  2. 【請求項2】 前記第1の装置が前記バスを解放した
    後、前記第2の装置がバスマスタとして前記バスを占有
    する工程と、 前記第2の装置が前記バスへのアクセスを終了した後、
    前記第2の装置が前記バスを解放する工程と、 前記第2の装置が前記バスを解放した後、前記第1の装
    置が前記バスを再び占有する工程と、 前記第1の装置が前記バスを再び占有している状態で、
    前記転送した第1の所定個数のデータに続く第2の所定
    個数のデータを転送する工程をさらに含む請求項1に記
    載の方法。
  3. 【請求項3】 前記第1の装置が前記バスを解放しない
    と判定された場合、前記第1の装置が前記バスを占有し
    続け、前記転送した第1の所定個数のデータに続く第2
    の所定個数のデータを転送する工程とを含む請求項1に
    記載の方法。
  4. 【請求項4】 前記転送すべきデータ全ての転送が終了
    したか否かを判定する工程と、 前記転送すべきデータ全ての転送が終了したと判定され
    た後、前記バスを解放する工程をさらに含む請求項1に
    記載の方法。
  5. 【請求項5】 前記第1の装置は、DMAコントローラ
    であり、 前記第2の装置は、CPUである請求項1に記載の方
    法。
  6. 【請求項6】 バスを介してデータ転送を行うバスマス
    タの動作を制御するバスマスタ制御装置であって、 データ転送要求に応答して、前記バスの占有を要求する
    信号を出力するバス占有要求手段と、 前記バスマスタが前記バスを占有している状態で、転送
    すべきデータのうち第1の所定個数のデータを転送する
    データ転送手段と、 前記第1の所定個数のデータの転送が終了した後、前記
    バスの解放を指示する信号を出力するバス解放指示手段
    とを含むバスマスタ制御装置。
  7. 【請求項7】 前記バス占有要求手段は、前記バス解放
    指示手段が前記バス解放指示信号を出力した後、前記バ
    スの占有を要求する信号を再び出力し、 前記データ転送手段は、前記バスマスタが前記バスを再
    び占有している状態で、前記転送した第1の所定個数の
    データに続く第2の所定個数のデータを転送する請求項
    6に記載のバスマスタ制御装置。
  8. 【請求項8】 前記バス解放指示手段は、前記転送すべ
    きデータ全ての転送が終了した後、前記バスの解放を指
    示する信号を出力する請求項6に記載のバスマスタ制御
    装置。
  9. 【請求項9】 前記データ転送手段は、前記第1の所定
    個数のデータのうち転送したデータの個数をカウントす
    る第1のカウンタと、 前記第1のカウンタの出力に基づいて前記第1の所定個
    数のデータの転送が終了したか否かを判定する第1の判
    定手段とを含む請求項6に記載のバスマスタ制御装置。
  10. 【請求項10】 前記データ転送手段は、前記転送すべ
    きデータ全てのうち転送したデータの個数をカウントす
    る第2のカウンタと、 前記第2のカウンタの出力に基づき前記転送すべきデー
    タの転送が全て終了したか否かを判定する第2の判定手
    段とをさらに含む請求項9に記載のバスマスタ制御装
    置。
JP04830797A 1996-03-04 1997-03-03 バスを介したデータ転送方法およびバスマスタ制御装置 Expired - Lifetime JP3492139B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP04830797A JP3492139B2 (ja) 1996-03-04 1997-03-03 バスを介したデータ転送方法およびバスマスタ制御装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP8-45760 1996-03-04
JP4576096 1996-03-04
JP04830797A JP3492139B2 (ja) 1996-03-04 1997-03-03 バスを介したデータ転送方法およびバスマスタ制御装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2002145497A Division JP2002351816A (ja) 1996-03-04 2002-05-20 バスを介したデータ転送方法およびバスマスタ制御装置

Publications (2)

Publication Number Publication Date
JPH09297730A true JPH09297730A (ja) 1997-11-18
JP3492139B2 JP3492139B2 (ja) 2004-02-03

Family

ID=26385825

Family Applications (1)

Application Number Title Priority Date Filing Date
JP04830797A Expired - Lifetime JP3492139B2 (ja) 1996-03-04 1997-03-03 バスを介したデータ転送方法およびバスマスタ制御装置

Country Status (1)

Country Link
JP (1) JP3492139B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100775406B1 (ko) * 2006-02-28 2007-11-12 후지쯔 가부시끼가이샤 Dma 데이터 전송 장치 및 dma 데이터 전송 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100775406B1 (ko) * 2006-02-28 2007-11-12 후지쯔 가부시끼가이샤 Dma 데이터 전송 장치 및 dma 데이터 전송 방법

Also Published As

Publication number Publication date
JP3492139B2 (ja) 2004-02-03

Similar Documents

Publication Publication Date Title
JP3749732B2 (ja) コンピュータ・バス上の共用リソースに対する高速アクセス
US6115767A (en) Apparatus and method of partially transferring data through bus and bus master control device
US6782433B2 (en) Data transfer apparatus
JP2000047974A (ja) バス制御コントローラのバス調停方法、バス制御コントローラ及び電子機器のシステム
JPH0793274A (ja) データ転送方式及びデータ転送装置
JP3492139B2 (ja) バスを介したデータ転送方法およびバスマスタ制御装置
JP4112813B2 (ja) バスシステム及びそのコマンドの伝達方法
JP2000298640A (ja) Dma装置
JP2000132505A (ja) バスアクセス方法および装置とその利用装置およびシステム
JPH06175911A (ja) メモリ制御方式
JP2002351816A (ja) バスを介したデータ転送方法およびバスマスタ制御装置
JPH02219157A (ja) コンピュータシステム内のバスアービタ
JP2570271B2 (ja) 半導体メモリ制御装置
JPH06111568A (ja) 画像メモリ装置
JP3206013B2 (ja) ダイレクト・メモリ・アクセス転送制御装置
JP2966038B2 (ja) ディジタルデータ処理ユニット調停装置及び方法
JP2002082901A (ja) バス制御装置
JPH05204832A (ja) Dmaバス調停方式
JPH10228418A (ja) メモリ制御装置及びメモリ制御方法
JP2001188749A (ja) バスコントローラ
JPH02278362A (ja) データ転送制御方式
JP2001117862A (ja) マイクロコンピュータ
JPH1011356A (ja) メモリアクセスシステム
JPH05173936A (ja) データ転送処理装置
JPS60151894A (ja) ダイナミツクramのリフレツシユ回路

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

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

Free format text: PAYMENT UNTIL: 20071114

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20081114

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20091114

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20091114

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20101114

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20111114

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20121114

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20121114

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20131114

Year of fee payment: 10

EXPY Cancellation because of completion of term