JPH10133997A - Dma制御装置 - Google Patents

Dma制御装置

Info

Publication number
JPH10133997A
JPH10133997A JP29177996A JP29177996A JPH10133997A JP H10133997 A JPH10133997 A JP H10133997A JP 29177996 A JP29177996 A JP 29177996A JP 29177996 A JP29177996 A JP 29177996A JP H10133997 A JPH10133997 A JP H10133997A
Authority
JP
Japan
Prior art keywords
transfer
amount
burst
burst transfer
data
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.)
Pending
Application number
JP29177996A
Other languages
English (en)
Inventor
Tomoyuki Shotani
智之 庄谷
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox 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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP29177996A priority Critical patent/JPH10133997A/ja
Publication of JPH10133997A publication Critical patent/JPH10133997A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Bus Control (AREA)

Abstract

(57)【要約】 【課題】 DMA転送の相手側の適当なバースト転送量
が不明な場合でも、バスの使用効率を悪化させないよう
にする。 【解決手段】 DMA転送装置1に対して転送中止信号
が与えられた場合、DMA転送装置1はバースト転送を
中断する。バースト転送復旧回路108は転送データ量
カウンタ106の値と、バースト転送量設定レジスタ1
04の値とから、バースト転送が中止された時点で、ど
れだけのデータが転送されたかを判断し、中断されたバ
ースト転送の残りのデータをバースト転送するために必
要な転送アドレスとバースト転送量を決定して再度バス
インターフェイス101に対してバースト転送の開始要
求を出力する。さらに、バースト転送復旧回路108
は、バースト転送が中断されるまでに転送したデータ量
に基づいて、バースト転送量を最適化する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、システムメモリと
入出力装置との間でデータ転送を行うバスインターフェ
イスに関し、特にバースト転送サイズが可変長であるよ
うなDMA(ダイレクト・メモリ・アクセス)制御装置
に関する。
【0002】
【従来の技術】画像処理などの目的のために、イメージ
データを画像入力装置からCPU(中央処理装置)の主
記憶装置に転送する場合や、主記憶装置のイメージデー
タを画像出力装置に転送する場合、一般的にCPUに負
担がかからないDMA転送方式を用いる。また、DMA
転送では1回のバストランザクションで、データバスの
ビット幅(ワード)分のデータを複数個転送する、バー
スト転送方式を用いることによってバスを効率よく使用
することができる。
【0003】1回のバストランザクションにおいては実
際にデータが転送される時間に加えて、アドレスの指定
や出力ドライバーの切り替えなど、いわゆるオーバーヘ
ッドに相当する時間が存在する。従ってバースト転送方
式では、ウエイトサイクルが挿入されことがなければ、
1回のバストランザクションで転送するデータの量(バ
ースト転送量)が多いほど、相対的にオーバーヘッドが
減少し、バスの使用効率は向上する。
【0004】バースト転送量を増大させるためには、D
MA転送の送出側、受領側の双方が同量のデータの送出
および受領ができなければならない。バースト転送量が
多すぎて送出側、受領側のどちらかの準備が間に合わな
い状態になるとバストランザクションにウエイトサイク
ルが挿入されるか、あるいはバストランザクションが中
止されてしまうため、バースト転送量が多くなってもバ
スの使用効率は低下する。そのため、DMA制御装置に
はバースト転送用のバッファメモリを設けて、バースト
転送量をそのバッファメモリの大きさの範囲内とするこ
とでウエイトサイクルの挿入を防いでいる。
【0005】ところで、DMA転送は送出側、受領側の
2者により行われるため、2者のうちバッファメモリの
容量が少ない方によってバースト転送量が制限されてし
まう。つまり、接続する相手によって最適なバースト転
送量が変化するということになる。
【0006】そこで、従来のバースト転送制御方式では
あらかじめ外部からバースト転送量を設定することでバ
スの使用効率を最適化していた。
【0007】また、バースト転送制御方式にはバースト
転送量を毎回の転送時に明示的にマスタ側からスレーブ
側へ伝える方式と、バースト転送量を明示せずにマスタ
かスレーブのどちらかが中止の要求を行うまで行う方式
がある。前者の方式では、転送開始時にマスタとスレー
ブの間でバースト転送量が適切であれば、バースト転送
の途中で転送が中止されることはない。しかし、後者の
方式では、マスタ側が実行しようとしているバースト転
送量をスレーブ側が取り扱うことができない場合は、ス
レーブ側が取り扱える分を転送した後にバースト転送は
中止される。
【0008】バースト転送が中止されると、本来転送す
るつもりであったデータがすべて転送されないため、再
度転送要求を出さなければならないが、従来はバースト
転送量の境界まで、残りの転送データを1ワードづつ転
送していたため、バスの使用効率は低下した。また、バ
ースト転送が中止されると、最低でも1サイクルのオー
バーヘッドが発生する。
【0009】もしも、このような状態にバースト転送量
を設定した場合は、バースト転送を行うたびに転送中止
と、残りのデータの再転送を行う必要があり、バスの使
用効率は大きく低下する。
【0010】一方、バースト転送途中における転送中止
は、上に述べた以外の要因で発生することが考えられ
る。例えば、より優先度の高いバスの使用要求が発生
し、バスの使用権が取り上げられてしまう場合がある。
従って、バースト転送の中止要求がスレーブ側の取り扱
えるバースト転送量を越えたことによるものであるかど
うかを判断することはできない。
【0011】
【発明が解決しようとする課題】このように、バースト
転送が設定した転送量をすべて転送するという保証が無
いバスアーキテクチャの場合には、DMA転送のマスタ
側とスレーブ側で適当なバースト転送量を設定しないと
バスの使用効率が低下するという問題があった。
【0012】本発明はこのような点に鑑みてなされたも
のであり、DMA転送の相手側の適当なバースト転送量
が不明な場合でも、バスの使用効率を悪化させることの
無いDMA制御装置を提供することを目的とする。
【0013】
【課題を解決するための手段】本発明によれば、以上の
目的を達成するために、1回のバースト転送によりシス
テムメモリと入出力装置との間を転送させられるデータ
の量が可変であるバースト転送方式を採用したDMA制
御装置に、転送データを一時的に保管するバッファ手段
と、前記バッファ手段に蓄えられているデータ量を求め
るデータ量カウント手段と、1回のバースト転送で転送
されるデータ量を設定するバースト転送量設定手段と、
前記データ量カウント手段と前記バースト転送量設定手
段とから、前記バッファ手段がバースト転送を開始でき
る状態であることを判断し、バースト転送開始要求を出
力するバースト転送開始要求手段と、前記バースト転送
開始要求手段による要求によって、バースト転送が開始
されてからどれだけのデータ量を転送したかを記録する
転送量カウント手段と、バースト転送実行中に転送の相
手側から与えられた転送終了指示に応じて、前記バース
ト転送量設定手段及び前記転送量カウント手段により、
残りのデータのアドレスとデータ量を求め、中断したバ
ースト転送の残りのデータを再度バースト転送方式によ
り転送を行う転送復旧手段とを備えるようにしている。
【0014】この構成においては、中断されたバースト
転送の残りのデータを再びバースト転送で転送でき、バ
スの使用効率を向上させることができる。
【0015】また、この構成において、前記転送終了指
示が送られた場合に、前記バースト転送量設定手段にお
いて設定されるバースト転送量を、前記転送量カウント
手段に記憶されている終了時点の転送データ量以下の転
送量に設定し直すようにすることができる。
【0016】また、次回のDMA転送から上記設定し直
した転送量で転送を行うようにしてもよいし、中断した
バースト転送のつぎ以降のバースト転送から上記設定し
直した転送量で転送を行うようにしてもよい。
【0017】また、予め設定された設定された回数だけ
連続してバースト転送の中断が発生した場合に、前記バ
ースト転送量設定手段において設定されるバースト転送
量を、前記転送量カウント手段に記憶されている終了時
点の転送データ量以下の転送量に設定するようにしても
よい。
【0018】
【発明の実施の形態】以下、図面を参照して本発明の実
施例について説明する。 [実施例1]図1は本発明のDMA制御装置の実施例の
ブロック図を示している。同図において、1は本発明の
DMA制御装置、2はデータ転送を行うバス、3は外部
からのデータを入出力する入出力装置、4はDMA転送
装置1との間で、バス2を経由してデータ転送を行うメ
モリ装置、5はCPUである。また、101はDMA転
送装置1においてバス2とのインターフェイスを行うバ
スインターフェイス、102は入出力装置3とメモリ装
置4との間で転送するデータを一時的に保管するデータ
バッファ、103はデータバッファ102にどれだけの
データが蓄積されているか、あるいはどれだけの量が空
であるかを示すバッファデータ量カウンタ、104はD
MA転送装置1が1回のバースト転送でどれだけの量の
データを転送するかを設定するためのバースト転送量設
定レジスタ、105はバスインターフェイス101に対
してバースト転送開始の要求を発生させるバースト転送
起動回路、106はバースト転送が開始して、どれだけ
の量のデータが転送されたかを示す転送データ量カウン
タ、107はバースト転送中にバス2から中止信号を受
け取り、バスインターフェイス101が途中でバースト
転送を中止したことを示すバースト転送中止フラグ、1
08はバースト転送が途中で中止された場合に残りのデ
ータを改めて転送する要求を発生させ、中止までにどれ
だけのデータを転送したかを保持するバースト転送復旧
回路である。
【0019】本実施例ではデータバッファ102の大き
さは24ワード(1ワードは32ビット)、バースト転
送量設定レジスタ104に設定可能なバースト転送量は
1ワード、4ワード、8ワード、16ワードの4通りと
する。
【0020】上記の構成において、まずCPU5からD
MA制御装置1の内部のバースト転送量設定レジスタ1
04に対してバースト転送量の設定を行う。設定された
バースト転送量はバースト転送量設定レジスタ104か
らバースト転送起動回路105に与えられる。次にCP
U5はDMA制御装置1に対してDMA転送開始の指示
を与える。本実施例ではDMA転送におけるデータの流
れは、DMA転送装置1からメモリ4、及びメモリ4か
らDMA転送装置1という2通りが実行されるが、ここ
ではDMA転送装置1からメモリ4にデータが転送され
る場合について述べる。なお、DMAのアドレスはDM
A転送装置1内部の図示しない回路によって生成される
ものとする。
【0021】DMA転送開始の指示によって、入出力装
置3からデータバッファ102に対してデータが転送さ
れてくる。すると、バッファデータ量カウンタ103の
値がカウントアップされる。このバッファデータ量はバ
ースト転送起動回路105に伝えられる。
【0022】バースト転送起動回路105は与えられた
バースト転送量とバッファデータ量を比較して、バッフ
ァデータ量がバースト転送量と等しいか大きな場合は、
バスインターフェイス101に対してバースト転送の開
始要求を出力する。
【0023】バースト転送開始要求はバス2に接続する
図示しないバス制御装置に伝えられ、DMA制御装置1
に対してバス1の使用許可が与えられる。
【0024】すると、データバッファに蓄えられたデー
タはバス2に対して出力され、メモリ4に格納される。
バースト転送の開始と同時に、バースト転送量設定レジ
スタ104に設定されているバースト転送量は転送デー
タ量カウンタ106にロードされ、1ワードのデータが
転送される毎にカウントダウンする。
【0025】バースト転送が開始されてから、DMA転
送装置1に対して転送中止信号が与えられなかった場合
には、転送データ量カウンタ106の値が0になり、設
定されていたバースト転送量に相当するデータがデータ
バッファ102からメモリ4に転送が行われ、バースト
転送は正常に終了し、DMAが終了するまで、バースト
転送を継続する。
【0026】次に、バースト転送が開始されてから、D
MA転送装置1に対して転送中止信号が与えられた場
合、DMA転送装置1はバースト転送を中断する。この
場合は、設定されたバースト転送量のデータがすべて転
送されていない。転送中止信号はバースト転送復旧回路
108とバースト転送中止フラグ107にラッチされ、
転送データ量カウンタ106の値がバースト転送復旧回
路108に与えられる。
【0027】バースト転送復旧回路108は転送データ
量カウンタ106の値と、バースト転送量設定レジスタ
104の値から、バースト転送が中止された時点で、ど
れだけのデータが転送されたかを判断し、中断されたバ
ースト転送の残りのデータをバースト転送するために必
要な転送アドレスとバースト転送量を決定して再度バス
インターフェイス101に対してバースト転送の開始要
求を出力する。また、バースト転送復旧回路108はバ
ースト転送が中断された時点でどれだけのデータが転送
されたかを記憶しているため、DMA転送終了後にCP
U5から、中断時のデータ転送量を読み出してDMA開
始時の値と比較し、次回以降のDMA転送時にはバース
ト転送量をバースト転送復旧回路108から読み出した
値より少なくすることで、バースト転送の中断を避ける
ことができる。
【0028】なお、バースト転送の中断が発生しなかっ
た場合にバースト転送復旧回路108からデータ転送量
を読み出した場合にはバースト転送量設定レジスタ10
4に設定された値が読み出される。
【0029】図2に本実施例のDMA制御装置の操作を
示すフローチャートを示す。 [S101] CPU5からバースト転送量設定レジス
タ104にバースト転送量を設定する。 [S102] CPU5からDMA転送装置1に対して
DMA転送を起動する。 [S103] 入出力装置3からデータバッファ12に
転送されたデータ量を示すバッファデータ量カウンタ1
03の値と、転送量設定レジスタ104の設定値を比較
して、バースト転送量に相当する量のデータがデータバ
ッファ12に蓄えられていればステップS104へ進
み、データバッファ12に蓄えられているデータ量がバ
ースト転送量よりも少ない場合はステップS103を繰
り返す。 [S104] バースト転送を開始し、転送量設定レジ
スタ104の設定値を転送データ量カウンタ106にロ
ードする。 [S105] バースト転送で1ワード毎にデータが転
送されるたび、中断要求の有無を調べ、中断の要請が無
い場合はステップS106へ進み、中断要請がある場合
にはステップS109へ進む。 [S106] 転送データ量カウンタ106の値をデク
リメントする。 [S107] 転送データ量カウンタ106の値が0で
あれば1回のバースト転送は終了であり、ステップS1
08へ進む。転送データ量カウンタ106の値が0でな
い場合は次のデータの転送を行うためにステップS10
5へ進む。 [S108] DMA転送が終了していなければステッ
プS103へ戻り、そうでなければ終了する。 [S109] 転送データ量カウンタ106の値から、
中断されるまでに転送されたデータ量と、未転送のデー
タ量を求め、未転送のデータ量を転送データ量カウンタ
106に設定して、ステップS105へ進みバースト転
送を再開する。また、中断されるまでに転送されたデー
タ量を保持する。 [S110] CPU5からバースト転送復旧回路10
8が保持しているバースト転送中断時の転送量を読み出
し、ステップS101で設定した値と比較して、中断の
有無を調べる。値が同じであればバースト転送の中断が
発生しなかったことが分かり、少ない場合はバースト転
送の中断が発生したことが分かる。バースト転送の中断
が発生していた場合、CPU5は次回のDMAのステッ
プS101で設定するバースト転送量をこのステップで
読み出した値より少なく設定する。
【0030】以上述べたような手順でバースト転送の中
断に対応することにより、中断されたバースト転送の残
りのデータを再びバースト転送で転送し、2回目以降の
DMAではバースト転送の中断がより少なくなるため、
バスの使用効率を向上させることができる。
【0031】[実施例2]図3は本発明のDMA制御装
置の第2の実施例のブロック図を示している。第1の実
施例と異なるのはバースト転送が途中で中断された場
合、中断されるまでに転送されたデータの量に応じて、
バースト転送量設定レジスタ104の値を変更するバー
スト転送量変更回路109を備えていることである。デ
ータバッファ102の大きさと、バースト転送量設定レ
ジスに設定可能なバースト転送量は第1の実施例と同様
であるとする。
【0032】本実施例ではバースト転送が途中で中断さ
れた時に、転送データ量カウンタ106の値から、バー
スト転送量変更回路109が中断までに転送されたデー
タ量を調べて、バースト転送量設定レジスタ104に設
定可能なバースト転送量の中で、中断までに転送された
データ量よりも小さな設定値に変更する。実施例1で述
べたようなバースト転送の復旧を行った後の、次のバー
スト転送から、新しく設定されたバースト転送量による
転送が行われる。
【0033】例えばバースト転送量設定レジスタ104
にバースト転送量が16ワードと設定されていて、10
ワード転送した時点でバースト転送が中断された場合、
バースト転送量設定レジスタ104には転送量が8ワー
ドに設定される。まず残りの6ワードのバースト転送が
行われた後の次のバースト転送からはバースト転送量が
8ワードに設定されて行われる。また、バースト転送量
設定レジスタ104にバースト転送量16ワードと設定
されていて、6ワード転送した時点でバースト転送が中
断された場合、バースト転送量設定レジスタ104には
転送量が4ワードに設定される。
【0034】ここで、バースト転送量の変更は中断され
た後の残りのバースト転送に対しては適応されていない
が、中断した転送の再開から変更後のバースト転送量で
行うことも可能である。
【0035】また、DMA終了後にCPU5からバース
ト転送量設定レジスタ104の内容を読み出し、DMA
転送開始前に設定した値と比較するすることにより、バ
ースト転送中断によりバースト転送量の変更があったこ
とを知ることができ、次回のDMA転送の時には読み出
した値を設定することで、バースト転送の中断を回避す
ることができる。
【0036】図4に本発明の第2の実施例のフローチャ
ートを示す。 [S201] CPU5からバースト転送量設定レジス
タ104にバースト転送量を設定する。 [S202] CPU5からDMA転送装置1に対して
DMA転送を起動する。 [S203] 入出力装置3からデータバッファ12に
転送されたデータ量を示すバッファデータ量カウンタ1
03の値と、転送量設定レジスタ104の設定値を比較
して、バースト転送量に相当する量のデータがデータバ
ッファ12に蓄えられていればステップS204へ進
み、データバッファ12に蓄えられているデータ量がバ
ースト転送量よりも少ない場合はステップS203を繰
り返す。 [S204] バースト転送を開始し、転送量設定レジ
スタ104の設定値を転送データ量カウンタ106にロ
ードする。 [S205] バースト転送で1ワード毎にデータが転
送されるたび、中断要求の有無を調べ、中断の要請が無
い場合はステップS206へ進み、中断要請がある場合
にはステップS209へ進む。 [S206] 転送データ量カウンタ106の値をデク
リメントする。 [S207] 転送データ量カウンタ106の値が0で
あれば1回のバースト転送は終了であり、ステップS2
08へ進む。転送データ量カウンタ106の値が0でな
い場合は次のデータの転送を行うためにステップS20
5へ進む。 [S208] DMA転送が終了していなければステッ
プS203へ戻り、そうでなければステップS211へ
進む。 [S209] 転送データ量カウンタ106の値から、
中断されるまでに転送されたデータ量と、未転送のデー
タ量を求め、未転送のデータ量を転送データ量カウンタ
106に設定して、ステップS210へ進む。 [S210] バースト転送が中断した時点ですでに転
送したデータ量に応じてバースト転送量設定レジスタ1
04の値を変更し、バースト転送を再開する。 [S211] CPU5に対しDMA転送終了時のバ
ースト転送量設定レジスタ104の値を読み出す。 [S212] CPU5はステップS201でバースト
転送量設定レジスタ104に設定した値と、ステップS
211でバースト転送量設定レジスタ104から読み出
した値を比較し、バースト転送中断によるバースト転送
量の変更の有無を調べ、次回のDMAにおけるステップ
S201で設定するバースト転送量を決定する。
【0037】以上、述べたような手順でバースト転送の
中断に対応することにより、バースト転送の中断を検出
した場合に、バースト転送量設定レジスタ104のバー
スト転送量を、転送中断時点の転送データ量カウンタ1
06の値から転送できたデータ量以下の転送量に設定し
直して、以後のDMA転送を継続することで、バースト
転送が中断されることがなくなるため、転送の相手側が
実行可能なバースト転送量を決定すろことができ、バー
スト転送中断によるオーバーヘッドを無くしてバスの使
用効率を向上させることができる。
【0038】[実施例3]図5は本発明のDMA制御装
置の第3の実施例のブロック図を示している。本実施例
では、第2の実施例に加え、バースト転送が何回連続し
て中断した場合にバースト転送量を変更するかを設定す
る転送量変更決定回数レジスタ110と、DMA転送開
始時に転送量変更決定回数レジスタ110の設定値をロ
ードして、バースト転送の中止が発生した場合に、ダウ
ンカウントする中止回数カウンタ111を備えている。
【0039】本実施例ではDMA転送を開始する前にC
PU5から転送量変更決定回数レジスタ110にバース
ト転送の中断が何回連続して発生したらバースト転送量
を変更するかを設定する。その後、DMA転送が開始さ
れると転送量変更決定回数レジスタ110の値は中止回
数カウンタ111にロードされる。
【0040】DMA転送実行中のあるバースト転送で、
途中で中断されると、第1の実施例で述べたようなバー
スト転送の復旧が行われると同時に、中止回数カウンタ
111の値をデクリメントする。そして、その次のバー
スト転送が正常に終了した場合は再び転送量変更決定回
数レジスタ110の値を中止回数カウンタ111にロー
ドする。しかし、その次のバースト転送でも途中で中断
が発生した場合は、さらに中止回数カウンタ111の値
をデクリメントする。もしも、中止回数カウンタ111
に2を設定したとすると、ここでカウンタの値は0とな
る。
【0041】カウンタの値が0になった場合は、そのこ
とがバースト転送量変更回路109に伝えられ、第2の
実施例で述べたように、バースト転送量の変更が行われ
る。この時、変更後のバースト転送量は中止回数カウン
タ111が0になった時の転送データ量カウンタ106
の値から、第2の実施例と同様に設定される。
【0042】また、第2の実施例と同様に、DMA終了
後にCPU5からバースト転送量設定レジスタ104の
内容を読み出し、DMA転送開始前に設定した値と比較
するすることにより、バースト転送中断によりバースト
転送量の変更があったことを知ることができ、次回のD
MA転送の時には読み出した値を設定することで、バー
スト転送の中断を回避することができる。
【0043】図6は本発明の第3の実施例のフローチャ
ートである。 [S301] CPU5からバースト転送量設定レジス
タ104にバースト転送量を設定する。 [S302] CPU5から転送量変更決定回数レジス
タ110に、何回連続して転送が中断されたなら、バー
スト転送量を変更させるかを書き込む。 [S303] CPU5からDMA転送装置1に対して
DMA転送を起動する。 [S304] 入出力装置3からデータバッファ12に
転送されたデータ量を示すバッファデータ量カウンタ1
03の値と、転送量設定レジスタ104の設定値を比較
して、バースト転送量に相当する量のデータがデータバ
ッファ12に蓄えられていればステップS305へ進
み、データバッファ12に蓄えられているデータ量がバ
ースト転送量よりも少ない場合はステップS304を繰
り返す。 [S305] バースト転送を開始し、転送量設定レジ
スタ104の設定値を転送データ量カウンタ106にロ
ードする。また、転送量変更決定回数レジスタ110の
値を中止回数カウンタ111にロードする。 [S306] バースト転送で1ワード毎にデータが転
送されるたび、中断要求の有無を調べ、中断の要請が無
い場合はステップS307へ進み、中断要請がある場合
にはステップS310へ進む。 [S307] 転送データ量カウンタ106の値をデク
リメントする。 [S308] 転送データ量カウンタ106の値が0で
あれば1回のバースト転送は終了であり、ステップS3
09へ進む。転送データ量カウンタ106の値が0でな
い場合は次のデータの転送を行うためにステップS30
6へ進む。 [S309] DMA転送が終了していなければステッ
プS304へ戻り、そうでなければ終了する。 [S310] 転送データ量カウンタ106の値から、
中断されるまでに転送されたデータ量と、未転送のデー
タ量を求め、未転送のデータ量を転送データ量カウンタ
106に設定する。 [S311] バースト転送の中断により復旧を行って
から、バースト転送の中断が連続して発生したものかど
うかを検査する。バースト転送の中断が連続して発生し
た場合にはステップS312へ進み、前回のバースト転
送は中断が起きていない場合にはステップS315へ進
む。 [S312] 連続してバースト転送が中断された場合
は中止回数カウンタ111の値を1つ減らす。 [S313] 中止回数カウンタ111の値が0であれ
ば、ステップS314へ進み、中止回数カウンタ111
の値が0でなければステップS306へ進み、中断され
たバースト転送を復旧する。 [S314] バースト転送が中断した時点で、すでに
転送したデータ量に応じてバースト転送量設定レジスタ
104の値を変更する。ステップS306へ進み、中断
されたバースト転送を復旧する。 [S315] バースト転送の中断が連続して発生した
ものではなかったので、バースト転送量設定レジスタ1
04の値を変更せずに、中止回数カウンタ111に転送
量変更決定回数レジスタ110の値を再ロードして、中
断されたバースト転送を復旧する。 [S316] CPU5に対しDMA転送終了時のバー
スト転送量設定レジスタ104の値を読み出す。 [S317] CPU5はステップS301でバースト
転送量設定レジスタ104に設定した値と、ステップS
316でバースト転送量設定レジスタ104から読み出
した値を比較し、バースト転送中断によるバースト転送
量の変更の有無を調べ、次回のDMAにおけるステップ
S301で設定するバースト転送量を決定する。
【0044】以上、述べたような手順でバースト転送の
中断に対応することにより、バースト転送中断検出フラ
グ107が、転送量変更決定回数レジスタ110に設定
された回数だけ連続してバースト転送の中断を検出した
場合に、バースト転送量設定レジスタ104において段
階的に設定されるバースト転送量を、転送データ量カウ
ンタ106に記憶されている終了時点の転送データ量以
下の転送量に設定し直して、以後のDMA転送を継続す
ることにより、偶発的な原因によるバースト転送中断に
よって、バースト転送量を減少させることによるバスの
使用効率の悪化を防ぎ、また転送の相手側が転送可能な
バースト転送量よりも大きな値を前記バースト転送量設
定手段に設定した場合には、バースト転送量を変更する
ことで、毎回の転送時にバースト転送の中断が発生する
ことによるバスの使用効率を低下を防ぐことができる。
【0045】
【発明の効果】以上説明したように、本発明によれば、
バースト転送が中断された場合に、転送復旧手段によっ
て、中断されたバースト転送を継続して行うことができ
る。また、バースト転送の中断があった場合には以後の
DMA転送におけるバースト転送量を変更することによ
り、バスの使用効率を向上させることができる。さら
に、バースト転送中断の状態から、転送復旧手段がバー
スト転送量を自動的に変更することによって、バースト
転送の中断の発生を無くし、バスの使用効率を向上させ
ることが可能となる。
【図面の簡単な説明】
【図1】 本発明の第1の実施例におけるDMA制御装
置のブロック図である。
【図2】 本発明の第1の実施例におけるDMA転送の
フローチャートである。
【図3】 本発明の第2の実施例に置けるDMA制御装
置のブロック図である。
【図4】 本発明の第2の実施例に実施例におけるDM
A転送のフローチャートである。
【図5】 本発明の第3の実施例に置けるDMA制御装
置のブロック図である。
【図6】 本発明の第3の実施例に実施例におけるDM
A転送のフローチャートである。
【符号の説明】
1 DMA制御装置 2 バス 3 入出力装置 4 メモリ 5 CPU 101 バスインターフェイス 102 データバッファ 103 バッファデータ量カウンタ 104 バースト転送量設定レジスタ 105 バースト転送起動回路 106 転送データ量カウンタ 107 バースト転送中止フラグ 108 バースト転送復旧回路 109 バースト転送量変更回路 110 転送量変更決定回数レジスタ 111 中止回数カウンタ

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 1回のバースト転送によりシステムメモ
    リと入出力装置との間を転送させられるデータの量が可
    変であるバースト転送方式を採用したDMA制御装置に
    おいて、 転送データを一時的に保管するバッファ手段と、 前記バッファ手段に蓄えられているデータ量を求めるデ
    ータ量カウント手段と、 1回のバースト転送で転送されるデータ量を設定するバ
    ースト転送量設定手段と、 前記データ量カウント手段と前記バースト転送量設定手
    段とから、前記バッファ手段がバースト転送を開始でき
    る状態であることを判断し、バースト転送開始要求を出
    力するバースト転送開始要求手段と、 前記バースト転送開始要求手段による要求によって、バ
    ースト転送が開始されてからどれだけのデータ量を転送
    したかを記録する転送量カウント手段と、 バースト転送実行中に転送の相手側から与えられた転送
    終了指示に応じて、前記バースト転送量設定手段及び前
    記転送量カウント手段により、残りのデータのアドレス
    とデータ量を求め、中断したバースト転送の残りのデー
    タを再度バースト転送方式により転送を行う転送復旧手
    段とを備えることを特徴とするDMA制御装置。
  2. 【請求項2】 前記転送終了指示が送られた場合に、前
    記バースト転送量設定手段において設定されるバースト
    転送量を、前記転送量カウント手段に記憶されている終
    了時点の転送データ量以下の転送量に設定し直す請求項
    1に記載のDMA制御装置。
  3. 【請求項3】 次回のDMA転送から上記設定し直した
    転送量で転送を行う請求項2に記載のDMA制御装置。
  4. 【請求項4】 中断したバースト転送のつぎ以降のバー
    スト転送から上記設定し直した転送量で転送を行う請求
    項2に記載のDMA制御装置。
  5. 【請求項5】 予め設定された回数だけ連続してバース
    ト転送の中断が発生した場合に、前記バースト転送量設
    定手段において設定されるバースト転送量を、前記転送
    量カウント手段に記憶されている終了時点の転送データ
    量以下の転送量に設定する請求項1に記載のDMA制御
    装置。
JP29177996A 1996-11-01 1996-11-01 Dma制御装置 Pending JPH10133997A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP29177996A JPH10133997A (ja) 1996-11-01 1996-11-01 Dma制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP29177996A JPH10133997A (ja) 1996-11-01 1996-11-01 Dma制御装置

Publications (1)

Publication Number Publication Date
JPH10133997A true JPH10133997A (ja) 1998-05-22

Family

ID=17773323

Family Applications (1)

Application Number Title Priority Date Filing Date
JP29177996A Pending JPH10133997A (ja) 1996-11-01 1996-11-01 Dma制御装置

Country Status (1)

Country Link
JP (1) JPH10133997A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100889730B1 (ko) * 2006-12-01 2009-03-24 한국전자통신연구원 직접 메모리 접근 제어 방법 및 장치
WO2009133671A1 (ja) * 2008-04-30 2009-11-05 パナソニック株式会社 ビデオ符号化・復号化装置
US8073994B2 (en) 2000-05-03 2011-12-06 At&T Laboratories Data transfer, synchronising applications, and low latency networks

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8346971B2 (en) 1999-05-04 2013-01-01 At&T Intellectual Property I, Lp Data transfer, synchronising applications, and low latency networks
US8423675B2 (en) * 1999-05-04 2013-04-16 At&T Intellectual Property I, L.P. Data transfer, synchronising applications, and low latency networks
US8843655B2 (en) 1999-05-04 2014-09-23 At&T Investments Uk Llc Data transfer, synchronising applications, and low latency networks
US9769274B2 (en) 1999-05-04 2017-09-19 At&T Investments Uk Llc Data transfer, synchronising applications, and low latency networks
US8073994B2 (en) 2000-05-03 2011-12-06 At&T Laboratories Data transfer, synchronising applications, and low latency networks
KR100889730B1 (ko) * 2006-12-01 2009-03-24 한국전자통신연구원 직접 메모리 접근 제어 방법 및 장치
US8037214B2 (en) 2006-12-01 2011-10-11 Electronics And Telecommunications Research Institute Method and apparatus for controlling direct memory access
WO2009133671A1 (ja) * 2008-04-30 2009-11-05 パナソニック株式会社 ビデオ符号化・復号化装置
CN102017638A (zh) * 2008-04-30 2011-04-13 松下电器产业株式会社 视频编码/解码装置

Similar Documents

Publication Publication Date Title
EP0464615B1 (en) Microcomputer equipped with DMA controller
US6115778A (en) Method and apparatus for handling interrupts through the use of a vector access signal
JPH03129448A (ja) データ転送制御装置
JPH07253936A (ja) タイムアウト処理回路およびそれを用いた受信装置
JPS609292B2 (ja) デ−タ・ブロック間の時間間隔長制御方式
JPH10133997A (ja) Dma制御装置
JPH04302035A (ja) 割り込み制御装置
JPH03263158A (ja) 共通バス調停制御方式
JPH0764886A (ja) シリアルインターフェイス装置を有する処理装置
JP3096382B2 (ja) Dma回路
JPS59144955A (ja) 情報処理装置
JP2594611B2 (ja) Dma転送制御装置
JPH04123160A (ja) 受信データ処理システム
JPH02166548A (ja) 共通バス制御方式
JPH1011387A (ja) 情報処理装置
JPH02299048A (ja) 転送制御方式
JPH0736820A (ja) I/o制御装置
JPH06348644A (ja) Dma回路
JPS6252342B2 (ja)
JPH0414378B2 (ja)
JPH04274545A (ja) チャネル制御装置
JPH06149715A (ja) システムバス接続装置及び方法
JPH04211856A (ja) クロック同期式シリアルインターフェース
JPS63208944A (ja) 情報処理システム
JPS6269752A (ja) デ−タ通信装置