JPH08137785A - Dma制御装置 - Google Patents
Dma制御装置Info
- Publication number
- JPH08137785A JPH08137785A JP27629994A JP27629994A JPH08137785A JP H08137785 A JPH08137785 A JP H08137785A JP 27629994 A JP27629994 A JP 27629994A JP 27629994 A JP27629994 A JP 27629994A JP H08137785 A JPH08137785 A JP H08137785A
- Authority
- JP
- Japan
- Prior art keywords
- transfer
- dma
- bus
- cpu
- read
- 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.)
- Withdrawn
Links
Landscapes
- Bus Control (AREA)
Abstract
(57)【要約】
【目的】DMAデバイスの広範囲な転送要求に対応し、
かつCPUを完全に停止させることなく高速転送が可能
なDMA制御を行う。 【構成】DMAコントローラ102は、DMA要求があ
るとバス105,106,107の使用権を獲得し、転
送を開始する。その際、転送間隔タイマ211を起動
し、所定時間経過すると転送を中断してCPUに制御を
戻す。転送中はテンポラリカウンタ210によって転送
したデータ量を計数する。データ量と経過時間とから転
送速度を算出し、その転送速度に見合った時間をタイマ
211にセットしなおし、以降の転送を行う。このよう
にして、所定時間毎にCPUに制御が戻るため、DMA
の速度を必要以上に落とさずに、CPUによる処理と完
全に停止しないシステムを構成できる。
かつCPUを完全に停止させることなく高速転送が可能
なDMA制御を行う。 【構成】DMAコントローラ102は、DMA要求があ
るとバス105,106,107の使用権を獲得し、転
送を開始する。その際、転送間隔タイマ211を起動
し、所定時間経過すると転送を中断してCPUに制御を
戻す。転送中はテンポラリカウンタ210によって転送
したデータ量を計数する。データ量と経過時間とから転
送速度を算出し、その転送速度に見合った時間をタイマ
211にセットしなおし、以降の転送を行う。このよう
にして、所定時間毎にCPUに制御が戻るため、DMA
の速度を必要以上に落とさずに、CPUによる処理と完
全に停止しないシステムを構成できる。
Description
【0001】
【産業上の利用分野】本発明は、例えばマイクロコンピ
ュータシステム等におけるDMA転送を制御するDMA
制御装置に関する。
ュータシステム等におけるDMA転送を制御するDMA
制御装置に関する。
【0002】
【従来の技術】DMAによるデータ転送の手順の一例を
以下に示す。 1.CPUからDMA要求デバイスへのDMA実行コマ
ンドの発行。 2.DMA要求デバイスからバスマスターへのバス使用
権の要求。 3.バスアービトレーションによるDMA要求デバイス
のバス使用権の確保。 4.DMAシークエンスによるデータ転送。 5.データ転送完了。 6.バス使用権の放棄。 7.バスマスタのバス使用権の確保。
以下に示す。 1.CPUからDMA要求デバイスへのDMA実行コマ
ンドの発行。 2.DMA要求デバイスからバスマスターへのバス使用
権の要求。 3.バスアービトレーションによるDMA要求デバイス
のバス使用権の確保。 4.DMAシークエンスによるデータ転送。 5.データ転送完了。 6.バス使用権の放棄。 7.バスマスタのバス使用権の確保。
【0003】ここでバスマスタとは一般的にCPUであ
るが、複数のバスマスタとなりうるデバイスを持つバス
では、DMA要求デバイスの次にバスマスタとなるデバ
イスはそれらの優先順位により決定される。DMAによ
るデータ転送モードとしてはバーストモードとサイクル
スチールモードがある。
るが、複数のバスマスタとなりうるデバイスを持つバス
では、DMA要求デバイスの次にバスマスタとなるデバ
イスはそれらの優先順位により決定される。DMAによ
るデータ転送モードとしてはバーストモードとサイクル
スチールモードがある。
【0004】バーストモードではDMA実行コマンド発
行時に設定されたデータ量の転送が完了するまでDMA
要求デバイスがバスを確保し続ける。このモードでは高
速にデータ転送可能であるが、転送期間中はDMA要求
デバイス以外のバスを使用するデバイスは機能できな
い。
行時に設定されたデータ量の転送が完了するまでDMA
要求デバイスがバスを確保し続ける。このモードでは高
速にデータ転送可能であるが、転送期間中はDMA要求
デバイス以外のバスを使用するデバイスは機能できな
い。
【0005】サイクルスチールモードではDMA要求デ
バイス以外のバスマスタがバスを使用しない期間のみD
MA転送を行う。基本的に1ワード転送実行毎にバス専
有権を放棄する。このモードではデータ転送期間中であ
ってもDMA要求デバイス以外のバスマスタは機能でき
るが、転送レートはかなり低下する。
バイス以外のバスマスタがバスを使用しない期間のみD
MA転送を行う。基本的に1ワード転送実行毎にバス専
有権を放棄する。このモードではデータ転送期間中であ
ってもDMA要求デバイス以外のバスマスタは機能でき
るが、転送レートはかなり低下する。
【0006】
【発明が解決しようとする課題】バースト転送モードで
は転送は高速で実行可能であるが、その期間中他のバス
マスタは機能できない。例えば他のバスマスタがCPU
であり、バスがそのCPUに直結したアドレスバスやデ
ータバス等である場合、そのCPUは停止する。もしD
MA要求デバイス転送レートが外部I/F等で支配され
るものであれば、その外部I/Fが低速である場合CP
Uが長時間停止してシステム機能に重大な問題が生じる
可能性がある。
は転送は高速で実行可能であるが、その期間中他のバス
マスタは機能できない。例えば他のバスマスタがCPU
であり、バスがそのCPUに直結したアドレスバスやデ
ータバス等である場合、そのCPUは停止する。もしD
MA要求デバイス転送レートが外部I/F等で支配され
るものであれば、その外部I/Fが低速である場合CP
Uが長時間停止してシステム機能に重大な問題が生じる
可能性がある。
【0007】サイクルスチールモードでは上記ケースに
おいてもCPUは機能するが、外部I/Fが高速であっ
てもそのI/Fのハードウエアを十分に使用することが
できず、データ転送レートが低下してシステム効率を低
下させる。
おいてもCPUは機能するが、外部I/Fが高速であっ
てもそのI/Fのハードウエアを十分に使用することが
できず、データ転送レートが低下してシステム効率を低
下させる。
【0008】本発明は上記従来例に鑑みてなされたもの
で、DMAデバイスの広範囲な転送要求に対応し、かつ
CPUを完全に停止させることなく高速転送が可能なD
MA制御を行うことができる。
で、DMAデバイスの広範囲な転送要求に対応し、かつ
CPUを完全に停止させることなく高速転送が可能なD
MA制御を行うことができる。
【0009】
【課題を解決するための手段】及び
【作用】上記目的を達成するために本発明のDMA制御
装置は次のような構成からなる。すなわち、DMA転送
は基本的にバースト転送で行うが、所定の転送量あるい
は転送時間毎にバス専有権を放棄する。データ転送が低
速である場合は連続DMA転送量を少なくしてCPUの
バス使用権を上げる。高速である場合には連続DMA転
送料を多くしてデータ転送によるシステムパフォーマン
スの低下をおさえる。このように任意のバス専有率でD
MA転送を実行することによりDMA要求デバイスの広
範囲な転送速度に対応し、かつCPUを完全に停止させ
ることなく高速化に対応する。
装置は次のような構成からなる。すなわち、DMA転送
は基本的にバースト転送で行うが、所定の転送量あるい
は転送時間毎にバス専有権を放棄する。データ転送が低
速である場合は連続DMA転送量を少なくしてCPUの
バス使用権を上げる。高速である場合には連続DMA転
送料を多くしてデータ転送によるシステムパフォーマン
スの低下をおさえる。このように任意のバス専有率でD
MA転送を実行することによりDMA要求デバイスの広
範囲な転送速度に対応し、かつCPUを完全に停止させ
ることなく高速化に対応する。
【0010】また、バスマスタの管理するバスを介して
転送元から転送先へのDMA転送を制御するDMA制御
装置であって、バスの使用権をバスマスタから獲得する
獲得手段と、該獲得手段により獲得したバスを介して連
続的にDMA転送を行う期間を所定期間に制限し、該期
間が経過するとバスの使用権を放棄する制限手段と、前
記獲得手段及び前記制限手段により、転送すべきデータ
が終了するまでDMA転送を行うべく制御する制御手段
とを備える。
転送元から転送先へのDMA転送を制御するDMA制御
装置であって、バスの使用権をバスマスタから獲得する
獲得手段と、該獲得手段により獲得したバスを介して連
続的にDMA転送を行う期間を所定期間に制限し、該期
間が経過するとバスの使用権を放棄する制限手段と、前
記獲得手段及び前記制限手段により、転送すべきデータ
が終了するまでDMA転送を行うべく制御する制御手段
とを備える。
【0011】さらに、バスマスタの管理するバスを用い
てDMA転送するDMA制御装置であって、バスマスタ
とバス使用権の調停を行いバス使用権を得るバスアービ
タと、複数ワードの連続したDMAデータ転送の実行シ
ークエンスを制御するリードライトシークエンサと、前
記バスアービタにより使用権を得たバスの制御を前記リ
ードライトシークエンサの指示に従って行うバス制御手
段と、連続したDMAデータ転送の長さを所定の条件で
制限し、該条件を越えた場合にDMA転送の停止を前記
レードライトシークエンサ指示し、それと共にバス使用
権の放棄を前記バスアービタに指示する転送制限手段と
を備える。
てDMA転送するDMA制御装置であって、バスマスタ
とバス使用権の調停を行いバス使用権を得るバスアービ
タと、複数ワードの連続したDMAデータ転送の実行シ
ークエンスを制御するリードライトシークエンサと、前
記バスアービタにより使用権を得たバスの制御を前記リ
ードライトシークエンサの指示に従って行うバス制御手
段と、連続したDMAデータ転送の長さを所定の条件で
制限し、該条件を越えた場合にDMA転送の停止を前記
レードライトシークエンサ指示し、それと共にバス使用
権の放棄を前記バスアービタに指示する転送制限手段と
を備える。
【0012】
[実施例1]DMAコントローラを含むCPU周辺回路
の構成例を図1に示す。CPU101から周辺回路への
アクセスはアドレスバス105、データバス106、制
御信号107で行う。通常はCPU101がバスマスタ
となり、これらのバス制御を行う。DMAコントローラ
102は、DMA転送元デバイス103からのDMA要
求信号108が発生すると、即ちDMA要求があるとバ
スアービトレーション信号109でCPU101を停止
させ、バスマスタとなってバスの制御を行う。この状態
でDMA転送元デバイス103とDMA転送先デバイス
104との間でデータ転送を行う。ここで言うDMA転
送元デバイスとはDMA要求を出すデバイスであり、D
MA転送先デバイスとはメモリやレジスタ等であって、
DMA転送元デバイスとのデータ転送対象となるデバイ
スである。DMA転送元デバイスは外部I/F112と
データ転送を行い、I/F規格あるいはこのI/Fに接
続する他のデバイスやホスト(図示せず)の転送能力に
応じた転送速度でデータ転送を制御する。
の構成例を図1に示す。CPU101から周辺回路への
アクセスはアドレスバス105、データバス106、制
御信号107で行う。通常はCPU101がバスマスタ
となり、これらのバス制御を行う。DMAコントローラ
102は、DMA転送元デバイス103からのDMA要
求信号108が発生すると、即ちDMA要求があるとバ
スアービトレーション信号109でCPU101を停止
させ、バスマスタとなってバスの制御を行う。この状態
でDMA転送元デバイス103とDMA転送先デバイス
104との間でデータ転送を行う。ここで言うDMA転
送元デバイスとはDMA要求を出すデバイスであり、D
MA転送先デバイスとはメモリやレジスタ等であって、
DMA転送元デバイスとのデータ転送対象となるデバイ
スである。DMA転送元デバイスは外部I/F112と
データ転送を行い、I/F規格あるいはこのI/Fに接
続する他のデバイスやホスト(図示せず)の転送能力に
応じた転送速度でデータ転送を制御する。
【0013】DMA転送はDMA転送元、転送先間の転
送をリード/ライト別のバスサイクルで行う2アクセス
/転送サイクルモードでもよいし、リード期間中もう一
方に同時に書き込む1アクセス/転送サイクルモードで
もよい。ただし、前者はバスサイクルとしては、データ
をDMAコントローラ内部のテンポラリレジスタに一時
格納し、後者の場合はDMA専用のリード/ライト制御
信号線(図示せず)が必要となる。
送をリード/ライト別のバスサイクルで行う2アクセス
/転送サイクルモードでもよいし、リード期間中もう一
方に同時に書き込む1アクセス/転送サイクルモードで
もよい。ただし、前者はバスサイクルとしては、データ
をDMAコントローラ内部のテンポラリレジスタに一時
格納し、後者の場合はDMA専用のリード/ライト制御
信号線(図示せず)が必要となる。
【0014】DMA転送が完了すると、DMA転送元デ
バイス103はDMA要求信号108を消滅させてDM
A要求を取り下げる。DMAコントローラ102はこれ
に対応してバスの制御権をCPU101に戻す。またD
MA転送完了に対応して割り込み信号110あるいは1
11を発生し、その完了をCPU101に通知する。
バイス103はDMA要求信号108を消滅させてDM
A要求を取り下げる。DMAコントローラ102はこれ
に対応してバスの制御権をCPU101に戻す。またD
MA転送完了に対応して割り込み信号110あるいは1
11を発生し、その完了をCPU101に通知する。
【0015】DMAコントローラ102の構成例を図2
に示す。CPU101がバスマスタである通常の動作状
態では、制御信号制御回路201及びアドレスバス制御
回路203は入力回路として機能し、リードライト制御
回路206を介してDMAコントローラ102内部のレ
ジスタをアクセスするように動作する。
に示す。CPU101がバスマスタである通常の動作状
態では、制御信号制御回路201及びアドレスバス制御
回路203は入力回路として機能し、リードライト制御
回路206を介してDMAコントローラ102内部のレ
ジスタをアクセスするように動作する。
【0016】バスアービタ208は、DMA要求信号1
08が発生するとCPU101とアービトレーションを
行い、CPUを停止させてバスマスタとなった後リード
ライトシークエンス回路204を起動させる。リードラ
イトシークエンス回路204は制御信号制御回路201
を介して制御信号107を制御し、DMA転送元デバイ
ス103、DMA転送先デバイス104のリードライト
制御を行い、DMA転送を実行する。これらのデバイス
にアクセスするアドレスはアドレス発生回路207が発
生する。また2アクセス/転送サイクルの動作モードで
はテンポラリレジスタ205にリードサイクルで読み込
んだデータを一時格納し、ライトサイクルでデバイスに
書き出す。
08が発生するとCPU101とアービトレーションを
行い、CPUを停止させてバスマスタとなった後リード
ライトシークエンス回路204を起動させる。リードラ
イトシークエンス回路204は制御信号制御回路201
を介して制御信号107を制御し、DMA転送元デバイ
ス103、DMA転送先デバイス104のリードライト
制御を行い、DMA転送を実行する。これらのデバイス
にアクセスするアドレスはアドレス発生回路207が発
生する。また2アクセス/転送サイクルの動作モードで
はテンポラリレジスタ205にリードサイクルで読み込
んだデータを一時格納し、ライトサイクルでデバイスに
書き出す。
【0017】転送カウンタ209は転送バイト数をカウ
ントし、あらかじめ設定された値の転送が完了するとリ
ードライトシークエンス回路204を停止させ、バスア
ービタ208にバス制御権をCPU101に戻させると
ともに、割り込み制御回路212を介してCPU101
に対して転送終了処理を要求する割り込み信号110を
発生させる。またもしDMA転送元デバイスに転送バイ
ト数カウント機能があるならば、この割り込み要求はD
MA転送元デバイスから割り込み信号111を介して行
い、DMAコントローラは割り込み要求を出さなくても
良い。
ントし、あらかじめ設定された値の転送が完了するとリ
ードライトシークエンス回路204を停止させ、バスア
ービタ208にバス制御権をCPU101に戻させると
ともに、割り込み制御回路212を介してCPU101
に対して転送終了処理を要求する割り込み信号110を
発生させる。またもしDMA転送元デバイスに転送バイ
ト数カウント機能があるならば、この割り込み要求はD
MA転送元デバイスから割り込み信号111を介して行
い、DMAコントローラは割り込み要求を出さなくても
良い。
【0018】テンポラリカウンタ210は転送カウンタ
209と同様に転送バイト数をカウントするが、これは
次に述べる転送間隔タイマ211によるバス制御権の一
時放棄後、DMA転送が再スタートするときリセットさ
れる。すなわちCPU101はテンポラリカウンタ21
0の値と転送間隔タイマ211の設定値からDMA転送
速度を算出することができる。
209と同様に転送バイト数をカウントするが、これは
次に述べる転送間隔タイマ211によるバス制御権の一
時放棄後、DMA転送が再スタートするときリセットさ
れる。すなわちCPU101はテンポラリカウンタ21
0の値と転送間隔タイマ211の設定値からDMA転送
速度を算出することができる。
【0019】転送間隔タイマ211はCPU101が指
定した連続最大DMA転送時間を保持し、リードライト
シークエンス回路204が起動してからこの設定時間を
経過するとリードライトシークエンスを停止させ、バス
アービタ回路208を介してバス制御権をCPU101
に戻す。これによりCPU101は動作状態となるが、
DMA転送要求信号108がアサートされていればバス
アービタ208はCPU101がバスマスタとなった直
後再びバスアービトレーションを行いバス制御権を得
る。
定した連続最大DMA転送時間を保持し、リードライト
シークエンス回路204が起動してからこの設定時間を
経過するとリードライトシークエンスを停止させ、バス
アービタ回路208を介してバス制御権をCPU101
に戻す。これによりCPU101は動作状態となるが、
DMA転送要求信号108がアサートされていればバス
アービタ208はCPU101がバスマスタとなった直
後再びバスアービトレーションを行いバス制御権を得
る。
【0020】これらの動作を図3のタイミング図に示
す。波形301はバスアービトレーション信号109の
中のバスリクエスト信号、波形302はバスマスタ、波
形303はDMA転送状態である。DMA要求信号10
8が発生するとそれに対応してバスリクエスト信号30
1がアサートされる(タイミングt1)。これによりD
MAコントローラ102は波形302に示すようにバス
マスタとなり、波形303に示す様にDMA転送を行う
(タイミングt2)。上述したように転送間隔タイマ2
11は、リードライトシークエンス回路204が起動し
てからCPU101が設定した連続最大DMA転送時間
p1経過すると、リードライトシークエンスを停止さ
せ、バスアービタ回路208を介してバス制御権をCP
U101に戻す。これがタイミングt3である。バスア
ービタ回路208はCPU101がバスマスタとなった
直後再びバスリクエスト301をアサートさせ再びバス
制御権を得る(タイミングt4)。ここで転送間隔タイ
マ211に設定した連続最大DMA転送時間p1を短く
すれば1バイトあるいは1ワード転送毎にCPUアクセ
スサイクルが入るサイクルスチールモードに、長く取れ
ば動作は完全なバースト転送に近づいていく。もし転送
間隔タイマ211に設定した時間の経過以前に転送カウ
ンタに設定した転送を完了したり、DMAリクエスト信
号108がネゲートされた場合(タイミングt5)、そ
の時点でバスリクエスト301をネゲートし、バス制御
をCPU101に戻すとともにDMAシークエンスを停
止させる。また、この時点で必要ならばCPU101に
DMA停止処理を行わせるため割り込み信号110をア
サートする。
す。波形301はバスアービトレーション信号109の
中のバスリクエスト信号、波形302はバスマスタ、波
形303はDMA転送状態である。DMA要求信号10
8が発生するとそれに対応してバスリクエスト信号30
1がアサートされる(タイミングt1)。これによりD
MAコントローラ102は波形302に示すようにバス
マスタとなり、波形303に示す様にDMA転送を行う
(タイミングt2)。上述したように転送間隔タイマ2
11は、リードライトシークエンス回路204が起動し
てからCPU101が設定した連続最大DMA転送時間
p1経過すると、リードライトシークエンスを停止さ
せ、バスアービタ回路208を介してバス制御権をCP
U101に戻す。これがタイミングt3である。バスア
ービタ回路208はCPU101がバスマスタとなった
直後再びバスリクエスト301をアサートさせ再びバス
制御権を得る(タイミングt4)。ここで転送間隔タイ
マ211に設定した連続最大DMA転送時間p1を短く
すれば1バイトあるいは1ワード転送毎にCPUアクセ
スサイクルが入るサイクルスチールモードに、長く取れ
ば動作は完全なバースト転送に近づいていく。もし転送
間隔タイマ211に設定した時間の経過以前に転送カウ
ンタに設定した転送を完了したり、DMAリクエスト信
号108がネゲートされた場合(タイミングt5)、そ
の時点でバスリクエスト301をネゲートし、バス制御
をCPU101に戻すとともにDMAシークエンスを停
止させる。また、この時点で必要ならばCPU101に
DMA停止処理を行わせるため割り込み信号110をア
サートする。
【0021】CPU101は、テンポラリカウンタ21
0の値を読み込むことにより設定した転送間隔の間に転
送したバイト数を、上述したようにDMA転送期間中に
知ることができ、ここから転送速度を見積もることがで
きる。この転送速度から転送効率をさらに上げるべきで
あると判断した場合、転送間隔を長くしてバースト転送
に近い状態で動作させ、逆の場合は転送間隔を短くして
サイクルスチール転送に近い状態で動作させる。この処
理手順を図7に示す。
0の値を読み込むことにより設定した転送間隔の間に転
送したバイト数を、上述したようにDMA転送期間中に
知ることができ、ここから転送速度を見積もることがで
きる。この転送速度から転送効率をさらに上げるべきで
あると判断した場合、転送間隔を長くしてバースト転送
に近い状態で動作させ、逆の場合は転送間隔を短くして
サイクルスチール転送に近い状態で動作させる。この処
理手順を図7に示す。
【0022】DMAからCPUに制御が移り、しかもD
MA転送がまだ終了していない場合には、まず転送間隔
タイマ211から転送間隔を読み取り(ステップS70
1)、テンポラリカウンタ210から転送データ量を読
み取る(ステップS702)。これらの値から転送速度
を算出し(ステップS703)、設定されている転送間
隔が適正か判定する(ステップS704)。適正な場合
にはそのままであるが、不適な場合には適正な値を転送
間隔タイマ211に再設定する(ステップS705)。
ステップS705における判定のためには、転送速度
と、転送間隔とを対照した表などをメモリに予め記憶し
ておけば良い。最後に、次の転送シーケンスのために、
テンポラリカウンタ210を0にしリセットする(S7
06)。
MA転送がまだ終了していない場合には、まず転送間隔
タイマ211から転送間隔を読み取り(ステップS70
1)、テンポラリカウンタ210から転送データ量を読
み取る(ステップS702)。これらの値から転送速度
を算出し(ステップS703)、設定されている転送間
隔が適正か判定する(ステップS704)。適正な場合
にはそのままであるが、不適な場合には適正な値を転送
間隔タイマ211に再設定する(ステップS705)。
ステップS705における判定のためには、転送速度
と、転送間隔とを対照した表などをメモリに予め記憶し
ておけば良い。最後に、次の転送シーケンスのために、
テンポラリカウンタ210を0にしリセットする(S7
06)。
【0023】以上述べた様に、転送間隔タイマ211に
設定する連続最大DMA転送時間を変化させることによ
り、外部I/Fの転送速度が大きくDMA転送速度が大
きい場合はDMAによる連続的なバス専有時間を長くし
て転送効率を上げ、小さければ逆に連続的なバス専有時
間を短くしてCPUの動作効率を上げることが可能とな
る。すなわち任意のDMAのバス専有率でデータ転送を
行うことが可能となる。
設定する連続最大DMA転送時間を変化させることによ
り、外部I/Fの転送速度が大きくDMA転送速度が大
きい場合はDMAによる連続的なバス専有時間を長くし
て転送効率を上げ、小さければ逆に連続的なバス専有時
間を短くしてCPUの動作効率を上げることが可能とな
る。すなわち任意のDMAのバス専有率でデータ転送を
行うことが可能となる。
【0024】[実施例2]第2の実施例のDMAコント
ローラを図4に示す。装置全体の構成は図1に示した通
りのものである。第1の実施例では転送間隔タイマ21
1で最大連続DMA転送時間を制御したが、本実施例で
は転送間隔タイマ211及びテンポラリカウンタ210
の代わりに転送間隔カウンタ401を設け、最大連続D
MA転送バイト数でDMAのバス専有時間を制御するも
のである。転送間隔カウンタ401はCPU101が指
定した最大連続DMA転送バイト数を保持し、DMA要
求信号108がアサートされていても連続転送バイト数
がこの設定値となったときバスアービタ208を介して
バス制御権をCPU101に戻す。CPU101はシス
テムクロック(図示せず)から設定バイト数の転送にか
かった時間を算出することができ、この結果に応じて最
大連続DMA転送バイト数の設定を制御する。この制御
は図7と同じ要領で行えば良い。ただし、テンポラリカ
ウンタ210を用いないためステップS706は不要で
あるし、転送間隔が時間でなくデータ量により設定され
ている点が異なっている。転送に要した時間の設定値を
大きくすればバースト転送に近くなり、小さくすればサ
イクルスチール転送に近くなる。すなわち第1の実施例
を同様に任意のDMAのバス専有率でデータ転送を行う
ことが可能となる。
ローラを図4に示す。装置全体の構成は図1に示した通
りのものである。第1の実施例では転送間隔タイマ21
1で最大連続DMA転送時間を制御したが、本実施例で
は転送間隔タイマ211及びテンポラリカウンタ210
の代わりに転送間隔カウンタ401を設け、最大連続D
MA転送バイト数でDMAのバス専有時間を制御するも
のである。転送間隔カウンタ401はCPU101が指
定した最大連続DMA転送バイト数を保持し、DMA要
求信号108がアサートされていても連続転送バイト数
がこの設定値となったときバスアービタ208を介して
バス制御権をCPU101に戻す。CPU101はシス
テムクロック(図示せず)から設定バイト数の転送にか
かった時間を算出することができ、この結果に応じて最
大連続DMA転送バイト数の設定を制御する。この制御
は図7と同じ要領で行えば良い。ただし、テンポラリカ
ウンタ210を用いないためステップS706は不要で
あるし、転送間隔が時間でなくデータ量により設定され
ている点が異なっている。転送に要した時間の設定値を
大きくすればバースト転送に近くなり、小さくすればサ
イクルスチール転送に近くなる。すなわち第1の実施例
を同様に任意のDMAのバス専有率でデータ転送を行う
ことが可能となる。
【0025】[実施例3]第3の実施例のDMAコント
ローラを図5に示す。この構成例では、連続的にDMA
転送できる最大値である最大連続DMA転送バイト数を
カウント制御回路501が制御するが、これは転送カウ
ントテーブル502の設定に従って行われる。CPU1
01は転送速度に応じたバス専有率と転送速度との関係
を転送カウントテーブル502にDMA転送に先行して
ダウンロードしておく。カウント制御回路501は第2
の実施例と同様に連続DMA転送バイト数がある転送バ
イト数に達した時点で転送シークエンスを中断し、バス
制御権をCPUに戻す。その際、DMA転送開始時にタ
イマ503を起動し、中断時にタイマを停止する。こう
して転送時間をタイマ503による時間経過から求め、
転送に要した時間から転送速度を算出する。転送カウン
トテーブル502は転送速度をインデクスとする最大連
続DMA転送バイト数を格納しており、カウント制御回
路501はこの変換結果を次のDMA転送の最大連続D
MA転送バイト数として動作を行う。以上の動作により
DMAコントローラ102はあらかじめCPUが転送カ
ウントテーブルに設定した特性に従って自動的にバス専
有率を制御して動作する。
ローラを図5に示す。この構成例では、連続的にDMA
転送できる最大値である最大連続DMA転送バイト数を
カウント制御回路501が制御するが、これは転送カウ
ントテーブル502の設定に従って行われる。CPU1
01は転送速度に応じたバス専有率と転送速度との関係
を転送カウントテーブル502にDMA転送に先行して
ダウンロードしておく。カウント制御回路501は第2
の実施例と同様に連続DMA転送バイト数がある転送バ
イト数に達した時点で転送シークエンスを中断し、バス
制御権をCPUに戻す。その際、DMA転送開始時にタ
イマ503を起動し、中断時にタイマを停止する。こう
して転送時間をタイマ503による時間経過から求め、
転送に要した時間から転送速度を算出する。転送カウン
トテーブル502は転送速度をインデクスとする最大連
続DMA転送バイト数を格納しており、カウント制御回
路501はこの変換結果を次のDMA転送の最大連続D
MA転送バイト数として動作を行う。以上の動作により
DMAコントローラ102はあらかじめCPUが転送カ
ウントテーブルに設定した特性に従って自動的にバス専
有率を制御して動作する。
【0026】[実施例4]第4の実施例のDMAコント
ローラを図6に示す。この構成例ではカウント制御回路
601は最大連続DMA転送バイト数をホストI/Fテ
ーブル602に登録されている値に設定して動作する。
DMA転送元デバイス103は外部I/F112の転送
速度とDMAコントローラ102の転送速度に対応して
動作するが、外部I/F112につながるホスト(図示
せず)の転送速度はホスト、I/Fのタイプに応じてお
よそ見積もることができる。この見積もられた転送速度
とそれに対応したDMAによるバス専有率に相当する最
大連続転送バイト数の対応表がホストI/Fテーブル6
02である。CPU101はDMA転送に先立ってホス
トとI/FタイプのIDコードをホストI/Fテーブル
にインデクスとして入力し、カウント制御回路601は
そのインデクスに対応した値をテーブルから読み出して
それを最大連続転送バイト数としてカウント制御回路に
設定し、DMA制御を行う。これによりCPU101は
簡単なインデックスを指定するだけで最適なDMA転送
を行うことができる。
ローラを図6に示す。この構成例ではカウント制御回路
601は最大連続DMA転送バイト数をホストI/Fテ
ーブル602に登録されている値に設定して動作する。
DMA転送元デバイス103は外部I/F112の転送
速度とDMAコントローラ102の転送速度に対応して
動作するが、外部I/F112につながるホスト(図示
せず)の転送速度はホスト、I/Fのタイプに応じてお
よそ見積もることができる。この見積もられた転送速度
とそれに対応したDMAによるバス専有率に相当する最
大連続転送バイト数の対応表がホストI/Fテーブル6
02である。CPU101はDMA転送に先立ってホス
トとI/FタイプのIDコードをホストI/Fテーブル
にインデクスとして入力し、カウント制御回路601は
そのインデクスに対応した値をテーブルから読み出して
それを最大連続転送バイト数としてカウント制御回路に
設定し、DMA制御を行う。これによりCPU101は
簡単なインデックスを指定するだけで最適なDMA転送
を行うことができる。
【0027】尚、本発明は、複数の機器から構成される
システムに適用しても、1つの機器から成る装置に適用
しても良い。また、本発明はシステム或は装置にプログ
ラムを供給することによって達成される場合にも適用で
きることはいうまでもない。
システムに適用しても、1つの機器から成る装置に適用
しても良い。また、本発明はシステム或は装置にプログ
ラムを供給することによって達成される場合にも適用で
きることはいうまでもない。
【0028】
【発明の効果】以上説明したように、本発明に係るDM
A制御装置は、DMAデバイスの広範囲な転送要求に対
応し、かつCPUを完全に停止させることなく高速転送
が可能なDMA制御を行うことができるという効果を奏
する。
A制御装置は、DMAデバイスの広範囲な転送要求に対
応し、かつCPUを完全に停止させることなく高速転送
が可能なDMA制御を行うことができるという効果を奏
する。
【0029】
【図1】DMAコントローラを含むシステムの構成例で
ある。
ある。
【図2】DMAコントローラの第1の構成例を示すブロ
ック図である。
ック図である。
【図3】DMAコントローラの動作時の波形図である。
【図4】DMAコントローラの第2の構成例を示すブロ
ック図である。
ック図である。
【図5】DMAコントローラの第3の構成例を示すブロ
ック図である。
ック図である。
【図6】DMAコントローラの第4の構成例を示すブロ
ック図である。
ック図である。
【図7】DMAによるバス占有率を制御する手順を示す
フローチャートである。
フローチャートである。
101 CPU 102 DMAコントローラ 103 DMAソースデバイス 104 DMAデスティネーションデバイス 201 制御信号制御回路 202 データバス制御回路 203 アドレスバス制御回路 204 リードライトシークエンス回路 205 テンポラリーレジスタ 206 リードライト制御回路 207 アドレス発生回路 208 バスアービター 209 転送カウンタ 210 テンポラリーカウンタ 211 転送間隔タイマ 401 転送間隔カウンタ 501 カウント制御回路 502 転送カウントテーブル 503 タイマ 602 ホストI/Fテーブル
Claims (9)
- 【請求項1】 バスマスタの管理するバスを介して転送
元から転送先へのDMA転送を制御するDMA制御装置
であって、 バスの使用権をバスマスタから獲得する獲得手段と、 該獲得手段により獲得したバスを介して連続的にDMA
転送を行う期間を所定期間に制限し、該期間が経過する
とバスの使用権を放棄する制限手段と、 前記獲得手段及び前記制限手段により、転送すべきデー
タが終了するまでDMA転送を行うべく制御する制御手
段と、を備えることを特徴とするDMA制御装置。 - 【請求項2】 前記所定期間とその期間に転送されたデ
ータ量とから転送速度を算出し、該転送速度に応じて前
記所定期間を再設定する手段を更に備えることを特徴と
する請求項1に記載のDMA制御装置。 - 【請求項3】 バスマスタの管理するバスを用いてDM
A転送するDMA制御装置であって、 バスマスタとバス使用権の調停を行いバス使用権を得る
バスアービタと、 複数ワードの連続したDMAデータ転送の実行シークエ
ンスを制御するリードライトシークエンサと、 前記バスアービタにより使用権を得たバスの制御を前記
リードライトシークエンサの指示に従って行うバス制御
手段と、 連続したDMAデータ転送の長さを所定の条件で制限
し、該条件を越えた場合にDMA転送の停止を前記リー
ドライトシークエンサ指示し、それと共にバス使用権の
放棄を前記バスアービタに指示する転送制限手段と、を
備えることを特徴とするDMA制御装置。 - 【請求項4】 前記DMAデータ転送の長さを制限する
条件を外部から設定する手段を更に備えることを特徴と
する請求項3に記載のDMA制御装置。 - 【請求項5】 前記転送制限手段は、前記リードライト
シークエンサによるリードライトシークエンス動作開始
からの経過時間を条件として連続したDMAデータ転送
の長さを制限する請求項4記載のDMA制御装置。 - 【請求項6】 前記転送制限手段は、前記リードライト
シークエンサによるリードライトシークエンス動作開始
からの転送ワード数を条件として連続したDMAデータ
転送の長さを制限することを特徴とする請求項4記載の
DMA制御装置。 - 【請求項7】 前記転送制限手段は、連続したDMAデ
ータ転送の転送速度を計測する計測手段と、該計測手段
による計測結果と経過時間とを基に、連続的にDMAデ
ータ転送されたワード数に変換する変換手段とを有し、
該変換手段により得られたワード数を前記所定条件とす
ることを特徴とする請求項3記載のDMA制御装置。 - 【請求項8】 前記転送制限手段は、DMA転送を行う
デバイスを識別するIDコードを設定する設定手段と、
設定されたIDコードに基づいて連続的にDMAデータ
転送されるワード数に変換する変換手段とを有し、変換
により得られたワード数を前記所定条件とする請求項3
記載のDMA制御装置。 - 【請求項9】 前記転送制御手段は、外部のホストマシ
ンと接続されたI/Fを有するDMA要求デバイスとの
DMAデータ転送制御を行い、この外部ホストマシンを
識別するIDコード設定手段を更に有することを特徴と
する請求項8記載のDMA制御装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP27629994A JPH08137785A (ja) | 1994-11-10 | 1994-11-10 | Dma制御装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP27629994A JPH08137785A (ja) | 1994-11-10 | 1994-11-10 | Dma制御装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH08137785A true JPH08137785A (ja) | 1996-05-31 |
Family
ID=17567521
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP27629994A Withdrawn JPH08137785A (ja) | 1994-11-10 | 1994-11-10 | Dma制御装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH08137785A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008204242A (ja) * | 2007-02-21 | 2008-09-04 | Ricoh Co Ltd | サブ制御装置および情報処理装置 |
| KR100868766B1 (ko) * | 2007-01-31 | 2008-11-17 | 삼성전자주식회사 | 복수의 dma 요청 블록들을 가지는 직접 메모리 액세스장치의 우선 순위를 결정하는 방법 및 장치 |
| JP2011008413A (ja) * | 2009-06-24 | 2011-01-13 | Fujitsu Semiconductor Ltd | 処理装置 |
-
1994
- 1994-11-10 JP JP27629994A patent/JPH08137785A/ja not_active Withdrawn
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100868766B1 (ko) * | 2007-01-31 | 2008-11-17 | 삼성전자주식회사 | 복수의 dma 요청 블록들을 가지는 직접 메모리 액세스장치의 우선 순위를 결정하는 방법 및 장치 |
| JP2008204242A (ja) * | 2007-02-21 | 2008-09-04 | Ricoh Co Ltd | サブ制御装置および情報処理装置 |
| JP2011008413A (ja) * | 2009-06-24 | 2011-01-13 | Fujitsu Semiconductor Ltd | 処理装置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5619726A (en) | Apparatus and method for performing arbitration and data transfer over multiple buses | |
| JP3633998B2 (ja) | コンピュータシステム | |
| JPH0467224B2 (ja) | ||
| CN114911727A (zh) | 总线仲裁方法和装置、计算机可读存储介质及主控芯片 | |
| CA2121720A1 (en) | Reservation overriding normal prioritization of microprocessors in multiprocessing computer systems | |
| JPH0623970B2 (ja) | 複数バス・マイクロコンピユータ・システム | |
| JPS5812611B2 (ja) | デ−タテンソウセイギヨホウシキ | |
| US5796968A (en) | Bus arbiter used in a computer system | |
| JP2000040061A (ja) | バス使用権調停システム | |
| KR20010080515A (ko) | 다수의 가상 직접 메모리 접근 채널들을 지원하기위한직접 메모리 접근 엔진 | |
| US5138709A (en) | Spurious interrupt monitor | |
| USRE40261E1 (en) | Apparatus and method of partially transferring data through bus and bus master control device | |
| JP2004005677A (ja) | 集積回路装置のバスアービター | |
| JPH1153049A (ja) | コンピュータシステム | |
| JPH08137785A (ja) | Dma制御装置 | |
| JPH01131943A (ja) | バスエラー処理システム | |
| US5850529A (en) | Method and apparatus for detecting a resource lock on a PCI bus | |
| JPH0696014A (ja) | バス使用優先順位制御装置 | |
| JP2002024156A (ja) | Dmaコントローラおよびその転送方法 | |
| JPH10320349A (ja) | プロセッサ及び当該プロセッサを用いるデータ転送システム | |
| JPS62154045A (ja) | バス調停方式 | |
| JPH1091568A (ja) | データ処理システムにおいてチップ選択可能な装置をアクセスする方法および装置 | |
| JP2000207354A (ja) | バスア―ビタ及びバス間制御装置 | |
| JP2003091501A (ja) | 情報処理装置 | |
| JP2846999B2 (ja) | マイクロプロセッサ |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20020115 |