JPH08194602A - バッファ長可変式アクセス制御装置 - Google Patents

バッファ長可変式アクセス制御装置

Info

Publication number
JPH08194602A
JPH08194602A JP2347595A JP2347595A JPH08194602A JP H08194602 A JPH08194602 A JP H08194602A JP 2347595 A JP2347595 A JP 2347595A JP 2347595 A JP2347595 A JP 2347595A JP H08194602 A JPH08194602 A JP H08194602A
Authority
JP
Japan
Prior art keywords
dma
buffer memory
channel
transfer
data transfer
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
JP2347595A
Other languages
English (en)
Inventor
Takashi Matsumoto
隆 松本
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry 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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2347595A priority Critical patent/JPH08194602A/ja
Publication of JPH08194602A publication Critical patent/JPH08194602A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 バッファのサイズを適切とし、データ転送効
率の低下を防止する。 【構成】 DMA動作の当初は、DMA制御部21〜2
n、31〜3nによる各チャネルに対し、バッファメモ
リ1内の領域11〜1nが均等に割り当てられる。各チ
ャネルのDMA転送が終了する都度、DMA監視部2の
転送速度検出部4は、システムクロック等によりデータ
転送速度を検出し、各チャネルのデータ転送速度の比を
算出する。そして、DMA監視部2の領域割当部5は、
データ転送速度の比により各チャネルに対し、バッファ
メモリ1の領域11〜1nの大きさを決定して各領域1
1〜1nを再配分する。この結果、データ転送速度の速
いチャネルでのDMA転送のオーバヘッドを軽減すると
ともに、データ転送速度の遅いチャネルでのバッファメ
モリ1へのデータ蓄積時間を短縮することができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、中央処理装置を介する
ことなく、メモリ上のデータを転送させるダイレクトメ
モリアクセス(DMA)において、バッファ長を可変と
したバッファ長可変式アクセス制御装置に関するもので
ある。
【0002】
【従来の技術】一般に、コンピュータシステムにおいて
は、中央処理装置の負担を軽くしてデータ転送を効率よ
く実行するためにDMAを用いる。これは、周知のよう
に、中央処理装置に代わってデータ転送を専用に行うD
MA制御部を設けたシステム構成としたものである。こ
のようなDMA制御部は、メモリと、磁気ディスク装置
等の入出力デバイスとの間のデータ転送を制御するが、
入出力デバイスが複数存在するような場合は、DMA制
御部も複数設けられる。このように、複数のDMA制御
部により複数のデータ転送が行われる場合の各データ転
送はチャネルと呼ばれる。
【0003】
【発明が解決しようとする課題】しかしながら、上述し
た従来の技術には、次のような課題があった。複数チャ
ネルのDMA転送においては、データ転送処理のために
使用されるバッファが複数必要となる。この場合、一定
の大きさのバッファメモリを複数の領域に分割して割り
当てることになるが、各領域の大きさは均一にされる。
ところが、各チャネルのデータ転送速度は、必ずしも一
定ではない。ここで、バッファメモリの容量には限界が
あるため、各領域の大きさにも限界があり、データ転送
速度の速いチャネルではオーバヘッドの増大によりデー
タ転送が制限され、転送効率が低下してしまった。一
方、データ転送速度の遅いチャネルでは、割り当てられ
た領域へのデータ蓄積時間が長くなり、それにより、デ
ータ転送効率が低下してしまった。
【0004】
【課題を解決するための手段】本発明のバッファ長可変
式アクセス制御装置は、上述した課題を解決するため、
以下の点を特徴とするものである。 (1) バッファメモリを備える。 当該バッファメモリへのデータの入出力を制御する複
数のアクセス制御部を備える。 当該複数のアクセス制御部によるデータの転送速度を
検出する転送速度検出部を備える。 当該転送速度検出部により検出された速度に応じた大
きさの領域を前記バッファメモリ内に割り当てる領域割
当部を備える。
【0005】(2)(1)において、バッファメモリ内
に割り当てられる領域の数は、複数のアクセス制御部の
数と等しくされることを特徴とする。
【0006】
【作用】
(1)DMA動作の当初は、各チャネルに対し、バッフ
ァメモリ内の領域が均等に割り当てられる。各チャネル
のDMA転送が終了する都度、DMA監視部の転送速度
検出部は、データ転送速度を検出し、各チャネルのデー
タ転送速度の比を算出する。そして、DMA監視部の領
域割当部は、データ転送速度の比により各チャネルに対
し、バッファメモリの領域の大きさを決定して再配分す
る。この結果、データ転送速度の速いチャネルでのDM
A転送のオーバヘッドを軽減するとともに、データ転送
速度の遅いチャネルでのバッファメモリへのデータ蓄積
時間を短縮することができる。
【0007】(2)(1)において、各チャネルの複数
のアクセス制御部(DMA制御部)ごとにバッファメモ
リ内の領域を割り当てる結果、同一チャネル内の各DM
A制御部の同時動作が可能となる。
【0008】
【実施例】以下、本発明の実施例を図面を参照して詳細
に説明する。図1は、本発明のバッファ長可変式アクセ
ス制御装置の一実施例のブロック図である。図示の装置
は、バッファメモリ1、DMA制御部21〜2n、31
〜3n、転送速度検出部4、領域割当部5を備えてい
る。
【0009】バッファメモリ1は、RAM(ランダム・
アクセス・メモリ)等から成り、システムバス10又は
I/Oバス20から転送されるデータを一時的に格納す
る。このバッファメモリ1は、複数の領域11、12、
1nに分割して使用され、各領域11、12、1nには
それぞれ各DMA制御部21、22、2n、31、3
2、3nにより転送されるデータが格納される。各領域
11、12、1nの大きさは、データ転送速度に応じて
変えられる。
【0010】DMA制御部21〜2n、31〜3nは、
それぞれシステムバス10及びI/Oバス20からバッ
ファメモリ1へのデータの入出力を制御する複数のアク
セス制御部である。即ち、DMA制御部21〜2n、3
1〜3nは、周知のように、データ転送専用のプロセッ
サから成り、中央処理装置3からのデータ転送命令によ
りデータの転送を開始し、データ転送の終了後、メッセ
ージを中央処理装置3に返送する。DMA制御部21〜
2nは、システムバス10とバッファメモリ1間のDM
A転送制御を行い、チャネル数分の独立した回路を持
つ。また、DMA制御部31〜3nは、I/Oバス20
とバッファメモリ1間のDMA転送制御を行い、チャネ
ル数分の独立した回路を持つ。
【0011】DMA監視部2は、システムバス10上の
中央処理装置3等から受けたDMA転送命令に従い、各
DMA制御部21〜2n、31〜3nにそれぞれ転送ア
ドレス、転送バイト数、使用可能なバッファメモリ1の
領域等を指示する。転送速度検出部4は、当該複数のD
MA制御部21〜2n、31〜3nによるデータの転送
速度を検出する。即ち、例えば、各DMA制御部21〜
2n、31〜3nの動作の開始及び終了をシステムクロ
ック等により検出してデータ転送時間を求め、転送した
データのバイト数をデータ転送時間で割ってデータ転送
速度を算出する。領域割当部5は、当該転送速度検出部
4により検出された速度に応じた大きさの領域をバッフ
ァメモリ1内に割り当てる。この割当の手順の詳細は以
下で説明する。
【0012】次に、上述した装置の動作を説明する。ま
ず、システムバス10上の図示しないメモリ等からI/
Oバス20上のデバイス6へデータのDMA転送を行う
場合を考える。DMA監視部2は、システムバス10上
の中央処理装置3からDMA転送命令を受け取ると、D
MA制御部21〜2nの1つに対してシステムバス10
上の転送開始アドレス、転送バイト数及びバッファメモ
リ1の使用可能領域の開始アドレスを通知する。そし
て、システムバス10からバッファメモリ1へのDMA
転送を実行させる。この転送が終了すると、DMA監視
部2は、DMA制御部31〜3nの1つに対してI/O
バス20上の転送開始アドレス、転送バイト数及びバッ
ファメモリ1の使用可能領域の開始アドレスを通知す
る。そして、バッファメモリ1からI/Oバス20への
DMA転送を実行させる。
【0013】図2に、DMA転送時のバッファサイズ制
御手順を示す。まず、ステップS1で、DMA監視部2
は、初期状態として、上述した各DMA転送チャネルに
対してバッファメモリ1を全チャネル数で均等に分割し
た領域11、12、1nを割り当てる。ここで、中央処
理装置3からのDMA転送命令の転送バイト数が割り当
てた領域よりも小さい場合、DMA監視部2からDMA
制御部21〜2n、31〜3nへ設定する転送バイト数
は中央処理装置3等からの転送命令の転送バイト数と同
じになる。一方、中央処理装置3からのDMA転送命令
の転送バイト数が割り当てた領域よりも大きい場合には
DMA監視部2はDMA制御部21〜2n、31〜3n
へ設定するバイト数をそのDMA転送チャネルに割り当
てたバッファメモリ1の各領域の大きさと同じにして数
度に分けて転送を行わせる。
【0014】次に、ステップS2で、複数のDMAチャ
ネルが平行して動作している状態でDMA監視部2は各
DMA制御部21〜2n、31〜3nのDMA転送が終
了したか否かを判別する。そして、DMA転送が終了す
る都度、ステップS3で、そのチャネルに割り当てたバ
ッファメモリ1の領域分のデータの転送時間を評価す
る。そして、ステップS4で、この転送時間の逆数によ
りデータ転送速度を算出する。
【0015】次に、ステップS5で、DMA監視部2
は、データ転送速度の比により、バッファメモリ1の領
域割当量を決定する。即ち、当初各チャネルに対して均
等に配分されていたバッファメモリ1の各領域をデータ
転送速度の比に応じて再配分する。これにより、各チャ
ネルのバッファメモリ1の領域分のデータの転送時間が
同じ値に近づくように次の転送のバッファメモリ1の各
領域の割当量を増減して調整する。
【0016】例えば、チャネルC1とチャネルC2の2
つのチャネルが存在し、バッファメモリ1の全領域が4
00Kバイトであるとする。当初はチャネルC1とチャ
ネルC2に均等に200Kバイトずつのバッファメモリ
1領域が割り当てられるが、DMA転送が繰り返し行わ
れると、それぞれの割当量が順次変更される。そして、
図3(a)に示すように、チャネルC1に300Kバイ
トのバッファメモリ1領域が割り当てられ、チャネルC
2に100Kバイトのバッファメモリ1領域が割り当て
られる状態になったとする。この場合、次のDMA転送
でどのように割当量が変更されるかを説明する。
【0017】チャネルC1が10ミリ秒でDMA転送を
終了すると、その場合のデータ転送速度は、300Kバ
イト÷10ミリ秒=30Kバイト/ミリ秒である。ま
た、チャネルC2が20ミリ秒で転送を終了すると、デ
ータ転送速度は、100Kバイト÷20ミリ秒=5Kバ
イト/ミリ秒である。従って、チャネルC1とチャネル
C2のデータ転送速度の比は、6:1となる。400K
バイトのバッファメモリ1の全領域をこの比により再配
分すると、343Kバイトと57Kバイトになる。従っ
て、次のDMA転送では、図3(b)に示すように、チ
ャネルC1ではバッファメモリ1の該当領域を343K
バイトに増やして設定し、チャネルC2ではバッファメ
モリ1の該当領域を57Kバイトに減らして設定する。
【0018】ただし、2つのチャネルC1、C2のデー
タ転送が同時に終了しなかった場合には、以下の手順で
領域を設定する。例えば、チャネルC2のDMA転送が
先に終了したなら、まず、チャネルC2に対するバッフ
ァメモリ1の該当領域を57Kバイトに減らして設定
し、チャネルC1が終了した時点でチャネルC1に対す
るバッファメモリ1の該当領域を343Kバイトに増や
して設定する。一方、チャネルC1のDMA転送が先に
終了したなら、その時点でチャネルC2の割当量を減ら
してしまうことはできないので、チャネルC1は次の転
送の際も一旦300Kバイトで領域を設定する。そし
て、チャネルC2のDMA転送が終了した時点でチャネ
ルC2に対するバッファメモリ1の該当領域を57Kバ
イトに減らす。ステップS6及びS7では、このための
処理を行う。ステップS7の実行によりチャネルC2に
対するバッファメモリ1の該当領域が57Kバイトに減
少した場合には、チャネルC1は次のデータ転送時間の
評価の時点でバッファメモリ1の該当領域を最大343
Kバイトまで増やすことができる。
【0019】このようにして、各DMA制御部21〜2
n、31〜3nのDMA転送が終了するごとに、そのD
MA転送における転送速度を評価し、転送速度が他のチ
ャネルに比べて遅い場合にはそのチャネルに対するバッ
ファメモリ1の該当領域を削減し、逆に転送速度が他の
チャネルに比べて速い場合にはそのチャネルに対し、バ
ッファメモリ1の領域を多く割り当てることができる。
従って、転送速度の速いチャネルではバッファメモリ1
への蓄積量が大きくなるため、DMA転送制御のオーバ
ヘッドを小さくすることができる。このため、データ転
送効率が向上する。逆に、転送速度の遅いチャネルで
は、DMA転送開始までのバッファメモリ1へのデータ
蓄積量が小さくなるため、バッファメモリ1でのデータ
蓄積時間によるデータ転送遅延時間を短縮することがで
きる。このように、バス上に高速転送が可能なデバイス
と高速転送ができないデバイスとが混在して接続されて
いる場合でも、全体としてDMA転送を効率よく行うこ
とができる。
【0020】尚、本発明は上述した実施例に限定される
ものではなく、種々の変形が可能であることはもちろん
である。例えば、上述した各実施例では、各チャネルに
対して1つずつバッファメモリ1の領域を割り当てる場
合について説明したが、本発明はこれに限らず、各チャ
ネルにバッファメモリ1の複数の領域を割り当てる場合
にも適用できる。即ち、図1において、同じチャネルの
システムバス10側のDMA制御部21〜2nと、I/
Oバス20側のDMA制御部31〜3nに対し、それぞ
れバッファメモリ1の領域を割り当てることもできる。
これにより、同じチャネルの2つのDMA制御部21、
31等が交互に動作する必要がなく、同時に動作するこ
とができる。この結果、データ転送効率を更に向上させ
ることができる。
【0021】また、システムバス10とI/Oバス20
が分離している場合に、システムバス10上の中央処理
装置3からI/Oバス20上のデバイス6へのDMA転
送又はI/Oバス20上のデバイス6からシステムバス
10上の中央処理装置3へのDMA転送を行う場合につ
いて説明したが、本発明はこれに限らない。即ち、本発
明は、システムバス10上の中央処理装置3から同じく
システムバス10上の図示しない他のデバイスへの転送
にも適用でき、また、I/Oバス20上のデバイス6か
ら同じくI/Oバス20上の図示しない他のデバイスへ
のDMA転送にも適用できる。
【0022】更にまた、図1の実施例に限らず、I/O
バス20及びI/Oバス20側のDMA制御部31〜3
nとデバイス6がなく、システムバス10、中央処理装
置3等しか存在しない構成にも本発明を適用することが
できる。逆に、システムバス10及びシステムバス10
側のDMA制御部21〜2nと中央処理装置3がなく、
I/Oバス20側しか存在しない構成にも本発明を適用
することができる。
【0023】
【発明の効果】以上説明したように、本発明のバッファ
長可変式アクセス制御装置によれば、DMA転送時のデ
ータ転送速度の比により各チャネルにバッファメモリの
領域を割り当てるようにしたので、次のような効果があ
る。即ち、各チャネルのデータ転送速度が一定でない場
合でも、データ転送速度の速いチャネルでオーバヘッド
の増大によりデータ転送が制限されることがなく、転送
効率の低下を防止することができる。一方、データ転送
速度の遅いチャネルでも、割り当てられた領域へのデー
タ蓄積時間が長くなることがなく、データ転送効率を防
止することができる。
【図面の簡単な説明】
【図1】本発明のDMAコントローラの一実施例のブロ
ック図である。
【図2】DMA転送時のバッファサイズ制御手順を説明
するフローチャートである。
【図3】バッファメモリの配分状況の説明図である。
【符号の説明】
1 バッファメモリ 2 DMA監視部 3 中央処理装置 4 転送速度検出部 5 領域割当部 6 デバイス 21〜2n、31〜3n DMA制御部(アクセス制御
部)

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 バッファメモリと、 当該バッファメモリへのデータの入出力を制御する複数
    のアクセス制御部と、 当該複数のアクセス制御部によるデータの転送速度を検
    出する転送速度検出部と、 当該転送速度検出部により検出された速度に応じた大き
    さの領域を前記バッファメモリ内に割り当てる領域割当
    部とを備えたことを特徴とするバッファ長可変式アクセ
    ス制御装置。
  2. 【請求項2】 前記バッファメモリ内に割り当てられる
    領域の数は、前記複数のアクセス制御部の数と等しくさ
    れることを特徴とする請求項1記載のバッファ長可変式
    アクセス制御装置。
JP2347595A 1995-01-18 1995-01-18 バッファ長可変式アクセス制御装置 Pending JPH08194602A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2347595A JPH08194602A (ja) 1995-01-18 1995-01-18 バッファ長可変式アクセス制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2347595A JPH08194602A (ja) 1995-01-18 1995-01-18 バッファ長可変式アクセス制御装置

Publications (1)

Publication Number Publication Date
JPH08194602A true JPH08194602A (ja) 1996-07-30

Family

ID=12111566

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2347595A Pending JPH08194602A (ja) 1995-01-18 1995-01-18 バッファ長可変式アクセス制御装置

Country Status (1)

Country Link
JP (1) JPH08194602A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002527825A (ja) * 1998-10-14 2002-08-27 株式会社日立製作所 データストリーマ
JP2008063992A (ja) * 2006-09-06 2008-03-21 Denso Corp エンジン制御用データの処理装置及びエンジン制御装置
US7418532B2 (en) 2001-10-09 2008-08-26 Matsushita Electric Industrial Co., Ltd. Data transfer device, data transfer system, and data transfer method
JP2009298404A (ja) * 1998-01-07 2009-12-24 Microsoft Corp オーディオ娯楽システムを備えた車両コンピュータ・システム

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009298404A (ja) * 1998-01-07 2009-12-24 Microsoft Corp オーディオ娯楽システムを備えた車両コンピュータ・システム
US8001290B2 (en) 1998-01-07 2011-08-16 Microsoft Corporation Vehicle computer system with audio entertainment system
US8065026B2 (en) 1998-01-07 2011-11-22 Microsoft Corporation Vehicle computer system with audio entertainment system
JP2002527825A (ja) * 1998-10-14 2002-08-27 株式会社日立製作所 データストリーマ
US7548996B2 (en) 1998-10-14 2009-06-16 Hitachi, Ltd. Data streamer
US7418532B2 (en) 2001-10-09 2008-08-26 Matsushita Electric Industrial Co., Ltd. Data transfer device, data transfer system, and data transfer method
JP2008063992A (ja) * 2006-09-06 2008-03-21 Denso Corp エンジン制御用データの処理装置及びエンジン制御装置
JP4532450B2 (ja) * 2006-09-06 2010-08-25 株式会社デンソー エンジン制御用データの処理装置及びエンジン制御装置

Similar Documents

Publication Publication Date Title
US7640374B2 (en) Data transfer apparatus by direct memory access controller
JP5040050B2 (ja) 複数チャネルdmaコントローラおよびプロセッサシステム
US5414816A (en) Data transfer apparatus having means for controlling the difference in speed between data input/output ports and memory access
US5640597A (en) Method and apparatus for servicing simultaneously a plurality of requests for data streams
JPH08194602A (ja) バッファ長可変式アクセス制御装置
US20040044809A1 (en) DMA controller and DMA transfer method
JP4620880B2 (ja) 半導体装置、及びデータ転送方法
JP2002259326A (ja) Dmaコントローラ及びdma転送方法
JPS60201453A (ja) 記憶装置アクセス制御方式
JP2505303B2 (ja) デ―タ転送方法
JPS61125670A (ja) デ−タ転送装置
JPS6368957A (ja) 情報処理装置におけるデ−タ転送方式
JPS588336A (ja) デ−タ転送方法
KR20050076274A (ko) 디스크립터 dma콘트롤러를 채용한 더블 버퍼링 dma데이터전송장치
JPS60183659A (ja) 情報転送制御方式
JPH1049479A (ja) マスタデバイス
JP2001232871A (ja) データ処理方法
JPH0310354A (ja) データ転送制御システム
JP2000132498A (ja) Dma転送制御装置
JP2000207350A (ja) デ―タ転送装置及びデ―タ転送方法
JPH06318188A (ja) マルチcpuに関するデータ転送方法及び装置
JPH0380470A (ja) 記憶制御装置
JPH03105610A (ja) データ転送制御方式
JPH09146864A (ja) 通信制御装置
JPH0236454A (ja) 主記憶制御装置間バス制御方式