JP2002215563A - Dma制御装置 - Google Patents

Dma制御装置

Info

Publication number
JP2002215563A
JP2002215563A JP2001012033A JP2001012033A JP2002215563A JP 2002215563 A JP2002215563 A JP 2002215563A JP 2001012033 A JP2001012033 A JP 2001012033A JP 2001012033 A JP2001012033 A JP 2001012033A JP 2002215563 A JP2002215563 A JP 2002215563A
Authority
JP
Japan
Prior art keywords
data
address
stored
transfer
address value
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
JP2001012033A
Other languages
English (en)
Inventor
Kenji Imamura
健二 今村
Hidetoshi Kuramoto
秀俊 藏本
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 JP2001012033A priority Critical patent/JP2002215563A/ja
Publication of JP2002215563A publication Critical patent/JP2002215563A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Bus Control (AREA)

Abstract

(57)【要約】 【課題】 回路規模が小さくデータ転送の高速化が容易
であるDMA制御装置を提供する。 【解決手段】 転送元デバイス20において第1アドレ
ス値以降の連続するアドレス領域に記憶されている各デ
ータは、マスタリード制御部11によりバースト入力さ
れ、バッファメモリ13に格納される。バッファメモリ
13に格納された各データは、転送元デバイス20にお
ける第1アドレス値と転送先デバイス30における第2
アドレス値とに基づいてバッファ制御部12により順次
に読み出されて、マスタライト制御部14により、転送
先デバイス30における第2アドレス値以降の連続する
アドレス領域に対してバースト出力される。第1アドレ
ズ値と第2アドレス値とが相違する場合には、バッファ
制御部12により、第1アドレズ値と第2アドレス値と
に基づいて、バッファメモリ13からデータが読み出だ
された後にデータの並び替えが行われる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、転送元入出力装置
のデータを転送先入出力装置に転送する制御を行うDM
A制御装置に関するものである。
【0002】
【従来の技術】一般に情報処理システムは、複数のデバ
イスから構成されており、各々のデバイスの間でデータ
の転送を行い、このデータ転送を行いつつ目的の処置を
行う。例えば、情報処理システムの一例としてプリンタ
コントロールシステムを考えると、このシステムは、種
々の制御・演算を行うCPU(Central Processing Uni
t)、印刷すべき画像データ等を記憶するハードディス
ク、画像データを圧縮する圧縮器、画像データ等を一時
的に記憶するシステムメモリ、画像データに基づいて画
像を用紙上に印刷するプリンタエンジン、等のデバイス
を有しており、これらのデバイスの間で画像データの転
送を行う。
【0003】このような情報処理システムにおける処理
の高速化が求められており、特に、デバイス間のデータ
転送の高速化が求められている。デバイス間のデータ転
送の高速化を図る技術としてDMA(Direct Memory Ac
cess)転送技術が知られている。DMA転送技術は、C
PUを介することなく転送元デバイスのデータを転送先
デバイスへ転送するものである。また、転送元デバイス
の連続する各アドレスに格納されているデータ列の読み
出し、および、転送先デバイスの連続する各アドレスへ
のデータ列の書き込みを、バーストサイクルで行うこと
によっても、デバイス間のデータ転送の高速化が図られ
る。
【0004】例えば、特開平10−254817号公報
は、転送元デバイスのデータを転送先デバイスへバース
トサイクルでDMA転送するDMA転送制御システムを
開示している。特に、この公報は、転送元デバイスにお
いて読み出すべきデータ列が記憶されているアドレス領
域の先頭アドレス値を第1アドレス値とし、転送先デバ
イスにおいてデータ列を書き込むべきアドレス領域の先
頭アドレス値を第2アドレス値としたときに、第1アド
レズ値と第2アドレス値とが相違する場合におけるバー
ストサイクルによるDMA転送の技術(データ並び替え
技術)について開示している。なお、ここでの第1アド
レズ値と第2アドレス値との相違とは、データバスのビ
ット幅に基づく相違を意味する。例えば、データバスが
32ビット(4バイト分)であれば、第1アドレズ値と
第2アドレス値とは、下位2ビットが比較されて相違の
有無が判断される。
【0005】図9は、上記公報に開示された従来のDM
A制御装置におけるデータ並び替え手段の概略構成図で
ある。このDMA制御装置は、転送元デバイスから入力
した32ビット(4バイト)のデータを並び替える4to
4のマルチプレクサMUX1、このマルチプレクサMU
X1により並び替えられたデータを保持する各々8ビッ
トのフリップフロップFFmn(m=1〜M、N=1〜
4)、および、これらフリップフロップFFのうち何れ
か4つのフリップフロップから出力された4バイトのデ
ータを並び替えて転送先デバイスへ出力する4to4のマ
ルチプレクサMUX2を備えている。また、図示はして
いないが、このDMA制御装置は、前段のマルチプレク
サMUX1より出力された4バイトのデータを格納すべ
きフリップフロップFFを選択する為の回路、および、
後段のマルチプレクサMUX2に入力させるべき4バイ
トのデータを出力させるフリップフロップFFを選択す
る為の回路をも備えている。
【0006】そして、これらの選択回路による制御の下
に、この従来のDMA制御装置は、例えば以下のように
動作する。ここでは、転送元デバイスにおいて読み出す
べきデータ列が記憶されているアドレス領域の先頭アド
レス値(第1アドレス値)の下位2ビットを「01」と
する。また、転送先デバイスにおいてデータ列を書き込
むべきアドレス領域の先頭アドレス値(第2アドレス
値)の下位2ビットを「11」とする。
【0007】このとき、初めに、第1アドレス値から3
バイト分の第1〜第3のデータが、転送元デバイスから
DMA制御装置へ送られ、前段のマルチプレクサMUX
1により並べ替えられて、そのうちの第1のデータがフ
リップフロップFF11に格納され、第2のデータがフリ
ップフロップFF12に格納され、第3のデータがフリッ
プフロップFF13に格納される。続いて、4バイト分の
第4〜第7のデータが、転送元デバイスからDMA制御
装置へ送られ、前段のマルチプレクサMUX1により並
べ替えられて、そのうちの第4のデータがフリップフロ
ップFF14に格納され、第5のデータがフリップフロッ
プFF21に格納され、第6のデータがフリップフロップ
FF22に格納され、第7のデータがフリップフロップF
23に格納される。以降も同様である。
【0008】一方、各フリップフロップに格納されたデ
ータは、以下のようにして転送先デバイスへ送られてい
く。すなわち、初めに、第2アドレス値から1バイト分
の第1のデータ(フリップフロップFF11に格納されて
いたデータ)が、後段のマルチプレクサMUX2により
並べ替えられて、転送先デバイスへ送られる。続いて、
4バイト分の第2〜第5のデータ(フリップフロップF
12〜FF14およびFF21それぞれに格納されていたデ
ータ)が、後段のマルチプレクサMUX2により並べ替
えられて、転送先デバイスへ送られる。さらに続いて、
4バイト分の第6〜第9のデータ(フリップフロップF
22〜FF24およびFF31それぞれに格納されていたデ
ータ)が、後段のマルチプレクサMUX2により並べ替
えられて、転送先デバイスへ送られる。以降も同様であ
る。
【0009】
【発明が解決しようとする課題】上記従来のDMA制御
装置は、2つの4to4マルチプレクサおよび多数のフリ
ップフロップの他に、データを書き込む又は読む出すフ
リップフロップを選択するための選択回路を設ける必要
があることから、回路規模が大きくなって、高価なもの
となる。また、このDMA制御装置は、レイテンシが増
加して、データ転送の高速化が困難である。
【0010】また、書き込み時に必ず決まった位置から
書き込む必要があるため、データ並び替えの対象は常に
1つのDMAブロックとなる。データ保持のFFが増加
されたとしても、読み出しがすべて終了するまで、次の
DMAブロックの書き込みは行えないので、実際に使用
されるFFは限られてしまい無駄になる。
【0011】本発明は、上記問題点を解消する為になさ
れたものであり、回路規模が小さくデータ転送の高速化
が容易であるDMA制御装置を提供することを目的とす
る。
【0012】
【課題を解決するための手段】本発明に係るDMA制御
装置は、CPUを介さずに単一または独立したバスに接
続される入出力装置間のデータの転送を制御するダイレ
クトアクセス(DMA)装置であって、(1) 転送元入出
力装置から開始アドレス(アドレス1)とサイズとで指
定されるブロックデータを読み出し、1回または複数回
のアクセスで自身に取り込む制御を行うデータ入力手段
と、(2) データ入力手段が取り込んだデータを一時的に
保持する一時記憶手段と、(3) 転送先入出力装置に対し
て、開始アドレス(アドレス2)とサイズとで指定され
るブロックデータを一時記憶手段から読み出して1回ま
たは複数回のアクセスで出力する制御を行うデータ出力
手段と、(4) 転送元入出力装置のアドレス値と転送先入
出力装置のアドレス値とに基づいて、データ出力手段が
出力すべきデータを順次に一時記憶手段から読み出して
データ出力手段へ送るバッファ制御手段と、を備えるこ
とを特徴とする。
【0013】このDMA制御装置によれば、転送元入出
力装置において開始アドレス値以降の連続するアドレス
領域に記憶されている各データは、データ入力手段によ
り入力され、一時記憶手段に格納される。そして、一時
記憶手段に格納された各データは、転送元入出力装置に
おける開始アドレス値と転送先入出力装置における開始
アドレス値とに基づいて、バッファ制御手段により順次
に読み出されてデータ出力手段へ送られ、このデータ出
力手段により、転送先入出力装置における開始アドレス
値以降の連続するアドレス領域に対して出力される。転
送元および転送先それぞれのアドレスが相違する場合に
はデータの並び替えが必要になるが、本発明に係るDM
A制御装置では、バッファ制御手段により、両アドレス
値に基づいて一時記憶手段からデータが読み出されると
同時にデータの並び替えが行われる。
【0014】また、本発明に係るDMA制御装置では、
一時記憶手段は、複数の単位バッファを含み、アドレス
差異が異なる2つ以上のDMAブロックを連続して扱う
のが好適である。単位バッファは、転送すべきデータと
属性情報とを含み、属性情報は、転送元の開始アドレス
のうち単位バッファのバイト数を表現するのに充分なビ
ット数のアドレスと、単位バッファに格納された有効バ
イト数と、ブロックの開始を示す開始ブロックビット
と、ブロックの終了を示す終了アドレスビットとを有す
るのが好適である。
【0015】また、本発明に係るDMA制御装置では、
一時記憶手段の読み出しに使用するアドレスは、転送先
入出力装置に出力すべきアドレスを、転送元入出力装置
のアドレス値と転送先入出力装置のアドレス値との差異
に基づいて変換して生成するのが好適である。一時記憶
手段は、転送先または転送元のデータ幅nと同数のn個
のRAMを含むのが好適である。一時記憶手段は、n個
のRAMそれぞれに対して、データ出力手段からの読み
出し時には、転送元および転送先それぞれの開始アドレ
スの差異から計算されるシフト量に応じてn個のバイト
を2つの領域に分割し、変換後のアドレスまたは変換後
のアドレスから1差し引いたアドレスを与えるのが好適
である。転送先の都合でサイクルが中断された場合に
は、シフト量と転送先に対する開始アドレスからの差分
アドレスとを使用し、再開後の一時記憶手段に対するア
ドレス変換を行うのが好適である。
【0016】
【発明の実施の形態】以下、添付図面を参照して本発明
の実施の形態を詳細に説明する。なお、図面の説明にお
いて同一の要素には同一の符号を付し、重複する説明を
省略する。
【0017】図1は、本実施形態に係るDMA制御装置
10の構成を示すブロック図である。この図には、DM
A制御装置10の他に、転送元デバイス20、転送先デ
バイス30およびCPU40も示されている。DMA制
御装置10は、第1バス50を介して転送元デバイス2
0と接続されており、第2バス60を介して転送先デバ
イス30と接続されており、CPUバス70を介してC
PU40と接続されている。第1バス50、第2バス6
0およびCPUバス70それぞれは、アドレス信号を送
るアドレス線、データ信号を送るデータ線、および、各
種制御信号を送る制御信号線を含む。DMA制御装置1
0は、マスタリード制御部11、バッファ制御部12、
バッファメモリ13、マスタライト制御部14、レジス
タ15およびレジスタ制御部16を備える。
【0018】マスタリード制御部11は、自らマスタと
なって、第1バス50の使用権の獲得を要求する旨を示
すバス使用要求信号を出力し、第1バス50の使用が許
可された旨を示すバス使用許可信号を入力する。その後
に、マスタリード制御部11は、転送元デバイス20に
おいて読み出すべきデータ列が記憶されているアドレス
領域の先頭アドレス値(第1アドレス値)、および、読
み出すべきデータのサイズを、第1バス50を介して、
ターゲットである転送元デバイス20に対して送信す
る。そして、マスタリード制御部(データ入力手段)1
1は、転送元デバイス20において第1アドレス値以降
の連続するアドレス領域に記憶されている各データを、
第1バス50を介してバースト入力して、バッファ制御
部12へ送る。
【0019】バッファ制御部12は、マスタリード制御
部11より送られてきたデータをバッファメモリ13に
格納するとともに、バッファメモリ13に格納されてい
るデータを読み出してマスタライト制御部14へ送る。
バッファメモリ13は、バッファ制御部12によりデー
タが書き込まれ又は読み出される。なお、バッファ制御
部12およびバッファメモリ13それぞれの詳細につい
ては後述する。
【0020】マスタライト制御部14は、自らマスタと
なって、第2バス60の使用権の獲得を要求する旨を示
すバス使用要求信号を出力し、第2バス60の使用が許
可された旨を示すバス使用許可信号を入力する。その後
に、マスタライト制御部14は、転送先デバイス30に
おいてデータ列を書き込むべきアドレス領域の先頭アド
レス値(第2アドレス値)、および、書き込むべきデー
タのサイズを、第2バス60を介して、ターゲットであ
る転送先デバイス30に対して送信する。そして、マス
タライト制御部(データ出力手段)14は、転送先デバ
イス30における第2アドレス値以降の連続するアドレ
ス領域に対して、バッファメモリ13に格納された各デ
ータを、第2バス60を介してバースト出力する。
【0021】レジスタ15は、上述した第1アドレス
値、第2アドレス値およびデータサイズを記憶する。マ
スタリード制御部11、バッファ制御部12およびマス
タライト制御部14それぞれは、このレジスタ15に記
憶されている上記各パラメータに基づいて動作する。レ
ジスタ制御部16は、CPUバス70を介してCPU4
0と接続されており、第1アドレス値、第2アドレス値
およびデータサイズをCPU30より受け取ってレジス
タ15に格納する。
【0022】図2は、本実施形態に係るDMA制御装置
10のバッファメモリ13の構成を示す図である。バッ
ファメモリ13は8つのブロックを含む。各ブロックに
は、転送元デバイス20よりバースト入力して格納した
データ列、ならびに、そのデータ列の先頭アドレス値お
よびデータサイズが格納される。また、図3は、本実施
形態に係るDMA制御装置10のバッファメモリ13の
各ブロックにおけるデータ格納部の構成を示す図であ
る。各ブロックにおけるデータ格納部は、8ビットRA
Mが配列されて構成されている。
【0023】以下では、第1バス50および第2バス6
0それぞれが32本(4バイト分)データ線DATA 0〜31
を有するとする。1回のバーストで転送元デバイス20
よりDMA制御装置10へ転送し得るデータの最大サイ
ズが256バイトであり、各ブロックにおけるデータ列
を格納する領域のサイズが256バイトであるとする。
このとき、図3に示すように、各ブロックにおけるデー
タ格納部は、4×64個の各々8ビットのRAM
m,n(m=1〜64、N=1〜4)が配列されたもので
ある。
【0024】また、第1アドレス値が16進表記で10
001hであり、転送元デバイス20から読み出すべき
全データのサイズが1024バイトであるとする。転送
元デバイス20において第1アドレス値「10001
h」以降の連続するアドレス領域に順に記憶されていた
1024バイトのデータをD0〜D1023と表す。
【0025】このとき、第1ブロックでは、図2に示す
ように、最初のバースト転送に対応して、先頭アドレス
値として第1アドレス値「10001h」が格納され、
データサイズとして「255」が格納され、データ列と
してD0〜D254が格納される。このバースト転送では、
初めに3バイトのデータD0〜D2がDMA制御装置10
へ転送されてきて、図4に示すように、データD0がR
AM1,2に格納され、データD1がRAM1,3に格納さ
れ、データD2がRAM1,4に格納される。続いて4バイ
トのデータD3〜D6がDMA制御装置10へ転送されて
きて、データD3がRAM2,1に格納され、データD4
RAM2,2に格納され、データD5がRAM2, 3に格納さ
れ、データD6がRAM2,4に格納される。以下同様にし
て各データが各RAMに格納されていき、データD251
がRAM64,1に格納され、データD252がRAM64,2
格納され、データD253がRAM64,3に格納され、デー
タD254がRAM64,4に格納される。
【0026】第2ブロックでは、図2に示すように、2
回目のバースト転送に対応して、先頭アドレス値として
「10100h」が格納され、データサイズとして「2
56」が格納され、データ列としてD255〜D510が格納
される。このバースト転送では、初めに4バイトのデー
タD255〜D258がDMA制御装置10へ転送されてき
て、図5に示すように、データD255がRAM1,1に格納
され、データD256がRAM1,2に格納され、データD
257がRAM1,3に格納され、データD258がRAM 1,4
格納される。続いて4バイトのデータD259〜D262がD
MA制御装置10へ転送されてきて、データD259がR
AM2,1に格納され、データD260がRAM2 ,2に格納さ
れ、データD261がRAM2,3に格納され、データD262
がRAM2,4に格納される。以下同様にして各データが
各RAMに格納されていき、データD50 7がRAM64,1
に格納され、データD508がRAM64,2に格納され、デ
ータD509がRAM64,3に格納され、データD510がRA
64,4に格納される。
【0027】第3ブロックでは、図2に示すように、3
回目のバースト転送に対応して、先頭アドレス値として
「10200h」が格納され、データサイズとして「2
56」が格納され、データ列としてD511〜D766が格納
される。このバースト転送では、初めに4バイトのデー
タD511〜D514がDMA制御装置10へ転送されてき
て、図6に示すように、データD511がRAM1,1に格納
され、データD512がRAM1,2に格納され、データD
513がRAM1,3に格納され、データD514がRAM 1,4
格納される。続いて4バイトのデータD515〜D518がD
MA制御装置10へ転送されてきて、データD515がR
AM2,1に格納され、データD516がRAM2 ,2に格納さ
れ、データD517がRAM2,3に格納され、データD518
がRAM2,4に格納される。以下同様にして各データが
各RAMに格納されていき、データD76 3がRAM64,1
に格納され、データD764がRAM64,2に格納され、デ
ータD765がRAM64,3に格納され、データD766がRA
64,4に格納される。
【0028】第4ブロックでは、図2に示すように、4
回目のバースト転送に対応して、先頭アドレス値として
「10300h」が格納され、データサイズとして「2
56」が格納され、データ列としてD767〜D1022が格
納される。このバースト転送では、初めに4バイトのデ
ータD767〜D770がDMA制御装置10へ転送されてき
て、図7に示すように、データD767がRAM1,1に格納
され、データD768がRAM1,2に格納され、データD
769がRAM1,3に格納され、データD770がRAM1,4
格納される。続いて4バイトのデータD770〜D773がD
MA制御装置10へ転送されてきて、データD771がR
AM2,1に格納され、データD772がRAM2,2に格納さ
れ、データD773がRAM2,3に格納され、データD774
がRAM2, 4に格納される。以下同様にして各データが
各RAMに格納されていき、データD1019がRAM64,1
に格納され、データD1020がRAM64,2に格納され、デ
ータD1021がRAM64,3に格納され、データD1022がR
AM64,4に格納される。
【0029】また、第5ブロックでは、図2に示すよう
に、5回目のバースト転送に対応して、先頭アドレス値
として「10400h」が格納され、データサイズとし
て「1」が格納され、図8に示すように、データとして
1023がRAM1,1に格納される。
【0030】バッファ制御部12は、マスタリード制御
部11より送られてきたデータを、以上のようにしてバ
ッファメモリ13の各ブロックに格納する。すなわち、
バッファ制御部12は、バッファメモリ13の8つのブ
ロックのうちデータ書き込み可能なブロック(データが
全く格納されていないブロック、或いは、格納されたデ
ータの全てが既に読み出されて転送先デバイスへ送られ
たブロック)を選択して、マスタリード制御部11より
送られてきたデータを、この選択したブロックに格納し
ていく。また、バッファ制御部12は、この選択したブ
ロックに、このブロックに格納されるデータ列の先頭ア
ドレス値およびデータサイズをも格納する。この選択し
たブロックへのデータの格納が満杯になったら、バッフ
ァ制御部12は、次のデータ書き込み可能なブロックを
選択して、マスタリード制御部11より送られてきたデ
ータ等を、この選択したブロックに格納していく。
【0031】このとき、バッファ制御部12は、第1バ
ス50のデータ線DATA 0〜7を伝送されてきたデータを
RAMm,1(m=1〜64)に順に格納し、第1バス5
0のデータ線DATA 8〜15を伝送されてきたデータをRA
m,2(m=1〜64)に順に格納し、第1バス50の
データ線DATA 16〜23を伝送されてきたデータをRAM
m,3(m=1〜64)に順に格納し、第1バス50のデ
ータ線DATA 24〜31を伝送されてきたデータをRAMm,4
(m=1〜64)に順に格納する。
【0032】ただし、上記の例のように、初めは、転送
元デバイス20における第1アドレス以降の連続する3
バイトのデータD0〜D2が第1バスのデータ線DATA 8〜
23を介してDMA制御装置10へ送られてくる。このと
きには、バッファ制御部12は、データD0をRAM1,2
に格納し、データD1をRAM1,3に格納し、データD 2
をRAM1,4に格納する。また、上記の例のように、最
後は、転送元デバイス20における最終アドレスの1バ
イトのデータD1023が第1バスのデータ線DATA0〜7を介
してDMA制御装置10へ送られてくる。このときに
は、バッファ制御部12は、このデータD1023をRAM
64,1に格納する。
【0033】次に、バッファメモリ13に格納されてい
るデータの読み出しについて説明する。バッファ制御部
12は、バッファメモリ13の各ブロックへのデータ書
き込みが終了すると、この書き込みが終了したブロック
に格納されたデータを読み出してマスタライト制御部1
4へ送ることが可能となる。この読み出しに際しては、
バッファ制御部12は、レジスタ15に記憶されている
第1アドレス値および第2アドレス値それぞれの下位2
ビットを比較して、この比較結果に基づいて、各ブロッ
クに格納されているデータを所定の順序で読み出す。
【0034】上記の例のように第1アドレス値を100
01hとし、また、第2アドレス値を20003hとす
ると、各々の下位2ビットの差は2であるから、バッフ
ァ制御部12は、RAMm,1およびRAMm,2それぞれに
格納されているデータ、ならびに、RAMm-1,3および
RAMm-1,4それぞれに格納されているデータを、同時
に読み出し並び替えてマスタライト制御部14へ送る。
このデータの並び替えに際しては4to4マルチプレクサ
MUXが用いられる(図3参照)。
【0035】すなわち、バッファメモリ13の第1ブロ
ックへのデータ書き込みが終了すると、初めに、バッフ
ァ制御部12は、第1ブロックのデータ格納部(図4参
照)のRAM1,2に格納されているデータD0を読み出し
て、このデータD0を第2バス60のデータ線DATA 24〜
31に送出し得るようにして、データD0をマスタライト
制御部14へ送る。続いて、バッファ制御部12は、第
1ブロックのデータ格納部のRAM1,3に格納されてい
るデータD1、RAM1,4に格納されているデータD2
RAM2,1に格納されているデータD3、および、RAM
2,2に格納されているデータD4を、同時に読み出して、
これら4バイトのデータを並び替えることで、データD
1を第2バス60のデータ線DATA 0〜7に送出し得るよう
にし、データD2を第2バス60のデータ線DATA 8〜15
に送出し得るようにし、データD3を第2バス60のデ
ータ線DATA 16〜23に送出し得るようにし、データD4
第2バス60のデータ線DATA 24〜31に送出し得るよう
にして、これら4バイトのデータD1〜D4をマスタライ
ト制御部14へ送る。以下同様にして、バッファ制御部
12は、第1ブロックのデータ格納部の各RAMに格納
されているデータを4バイト毎に読み出してマスタライ
ト制御部14へ送る。
【0036】バッファメモリ13の第2ブロックへのデ
ータ書き込みが終了すると、バッファ制御部12は、第
1ブロックのデータ格納部(図4参照)のRAM64,3
格納されているデータD253、第1ブロックのデータ格
納部のRAM64,4に格納されているデータD254、第2
ブロックのデータ格納部(図5参照)のRAM1,1に格
納されているデータD255、および、第2ブロックのデ
ータ格納部のRAM1,2に格納されているデータD
256を、同時に読み出して、これら4バイトのデータを
並び替えることで、データD253を第2バス60のデー
タ線DATA 0〜7に送出し得るようにし、データD254を第
2バス60のデータ線DATA 8〜15に送出し得るように
し、データD255を第2バス60のデータ線DATA 16〜23
に送出し得るようにし、データD256を第2バス60の
データ線DATA 24〜31に送出し得るようにして、これら
4バイトのデータD253〜D256をマスタライト制御部1
4へ送る。続いて、バッファ制御部12は、第2ブロッ
クのデータ格納部のRAM1,3に格納されているデータ
257、RAM1,4に格納されているデータD258、RA
2,1に格納されているデータD259、および、RAM
2,2に格納されているデータD260を、同時に読み出し
て、これら4バイトのデータを並び替えることで、デー
タD25 7を第2バス60のデータ線DATA 0〜7に送出し得
るようにし、データD258を第2バス60のデータ線DAT
A 8〜15に送出し得るようにし、データD259を第2バス
60のデータ線DATA 16〜23に送出し得るようにし、デ
ータD260を第2バス60のデータ線DATA 24〜31に送出
し得るようにして、これら4バイトのデータD2 57〜D
260をマスタライト制御部14へ送る。以下同様にし
て、バッファ制御部12は、第2ブロックのデータ格納
部の各RAMに格納されているデータを4バイト毎に読
み出してマスタライト制御部14へ送る。
【0037】バッファメモリ13の第3ブロックへのデ
ータ書き込みが終了すると、バッファ制御部12は、第
2ブロックのデータ格納部(図5参照)のRAM64,3
格納されているデータD509、第2ブロックのデータ格
納部のRAM64,4に格納されているデータD510、第3
ブロックのデータ格納部(図6参照)のRAM1,1に格
納されているデータD511、および、第3ブロックのデ
ータ格納部のRAM1,2に格納されているデータD
512を、同時に読み出して、これら4バイトのデータを
並び替えることで、データD509を第2バス60のデー
タ線DATA 0〜7に送出し得るようにし、データD510を第
2バス60のデータ線DATA 8〜15に送出し得るように
し、データD511を第2バス60のデータ線DATA 16〜23
に送出し得るようにし、データD512を第2バス60の
データ線DATA 24〜31に送出し得るようにして、これら
4バイトのデータD509〜D512をマスタライト制御部1
4へ送る。続いて、バッファ制御部12は、第3ブロッ
クのデータ格納部のRAM1,3に格納されているデータ
513、RAM1,4に格納されているデータD514、RA
2,1に格納されているデータD515、および、RAM
2,2に格納されているデータD516を、同時に読み出し
て、これら4バイトのデータを並び替えることで、デー
タD51 3を第2バス60のデータ線DATA 0〜7に送出し得
るようにし、データD514を第2バス60のデータ線DAT
A 8〜15に送出し得るようにし、データD515を第2バス
60のデータ線DATA 16〜23に送出し得るようにし、デ
ータD516を第2バス60のデータ線DATA 24〜31に送出
し得るようにして、これら4バイトのデータD5 13〜D
516をマスタライト制御部14へ送る。以下同様にし
て、バッファ制御部12は、第3ブロックのデータ格納
部の各RAMに格納されているデータを4バイト毎に読
み出してマスタライト制御部14へ送る。
【0038】バッファメモリ13の第4ブロックへのデ
ータ書き込みが終了すると、バッファ制御部12は、第
3ブロックのデータ格納部(図6参照)のRAM64,3
格納されているデータD765、第3ブロックのデータ格
納部のRAM64,4に格納されているデータD766、第4
ブロックのデータ格納部(図7参照)のRAM1,1に格
納されているデータD767、および、第4ブロックのデ
ータ格納部のRAM1,2に格納されているデータD
768を、同時に読み出して、これら4バイトのデータを
並び替えることで、データD765を第2バス60のデー
タ線DATA 0〜7に送出し得るようにし、データD766を第
2バス60のデータ線DATA 8〜15に送出し得るように
し、データD767を第2バス60のデータ線DATA 16〜23
に送出し得るようにし、データD768を第2バス60の
データ線DATA 24〜31に送出し得るようにして、これら
4バイトのデータD765〜D768をマスタライト制御部1
4へ送る。続いて、バッファ制御部12は、第3ブロッ
クのデータ格納部のRAM1,3に格納されているデータ
769、RAM1,4に格納されているデータD770、RA
2,1に格納されているデータD771、および、RAM
2,2に格納されているデータD772を、同時に読み出し
て、これら4バイトのデータを並び替えることで、デー
タD76 9を第2バス60のデータ線DATA 0〜7に送出し得
るようにし、データD770を第2バス60のデータ線DAT
A 8〜15に送出し得るようにし、データD771を第2バス
60のデータ線DATA 16〜23に送出し得るようにし、デ
ータD772を第2バス60のデータ線DATA 24〜31に送出
し得るようにして、これら4バイトのデータD7 69〜D
772をマスタライト制御部14へ送る。以下同様にし
て、バッファ制御部12は、第4ブロックのデータ格納
部の各RAMに格納されているデータを4バイト毎に読
み出してマスタライト制御部14へ送る。
【0039】バッファメモリ13の第5ブロックへのデ
ータ書き込みが終了すると、バッファ制御部12は、第
4ブロックのデータ格納部(図7参照)のRAM64,3
格納されているデータD1021、第4ブロックのデータ格
納部のRAM64,4に格納されているデータD1022、およ
び、第5ブロックのデータ格納部(図8参照)のRAM
1,1に格納されているデータD1023を、同時に読み出し
て、これら3バイトのデータを並び替えることで、デー
タD1021を第2バス60のデータ線DATA 0〜7に送出し
得るようにし、データD1022を第2バス60のデータ線
DATA 8〜15に送出し得るようにし、データD1023を第2
バス60のデータ線DATA 16〜23に送出し得るようにし
て、これら3バイトのデータD1021〜D1023をマスタラ
イト制御部14へ送る。
【0040】マスタライト制御部14は、自らマスタと
なって第2バス60の使用権を獲得した後に、上記のよ
うにしてバッファ制御部12より送られてきたデータを
受け取って、これらのデータを転送先デバイス30に対
してバースト出力する。
【0041】以上のように、本実施形態に係るDMA制
御装置10では、バッファメモリ14をRAMにより構
成して、転送元デバイス20からバースト入力したデー
タを並び替えることなくバッファメモリ14に格納し、
その一方で、バッファメモリ14に格納したデータを読
み出して、必要に応じてデータを並び替えた後に、デー
タを転送先デバイス30へバースト出力する。このデー
タ並び替えに際しては、バッファ制御部12は、転送元
デバイス20における第1アドレス値と転送先デバイス
30における第2アドレス値とに基づいて、マスタライ
ト制御部14がバースト出力するべき各データを順次に
バッファメモリ13より読み出して並べ替えてマスタラ
イト制御部14へ送る。
【0042】したがって、このDMA制御装置10は、
データ並び替えの為の回路として1つの4to4マルチプ
レクサのみを備えるだけでよいから、回路規模が小さ
く、安価なものとなる。また、このDMA制御装置10
は、レイテンシが小さく、データ転送の高速化を図るこ
とが容易である。また、第1アドレス値および第2アド
レス値の何れについても制限が無いことから、第1バス
50および第2バス60それぞれのデータ幅が互いに異
なる場合であっても、また、転送元デバイス20および
転送先デバイス30それぞれの種類が如何なるものであ
っても、このDMA制御装置10は利用可能である。
【0043】
【発明の効果】以上、詳細に説明したとおり、本発明に
係るDMA制御装置によれば、転送元入出力装置におい
て開始アドレス値以降の連続するアドレス領域に記憶さ
れている各データは、データ入力手段により入力され、
一時記憶手段に格納される。そして、一時記憶手段に格
納された各データは、転送元入出力装置における開始ア
ドレス値と転送先入出力装置における開始アドレス値と
に基づいて、バッファ制御手段により順次に読み出され
てデータ出力手段へ送られ、このデータ出力手段によ
り、転送先入出力装置における開始アドレス値以降の連
続するアドレス領域に対して出力される。転送元および
転送先それぞれのアドレスが相違する場合にはデータの
並び替えが必要になるが、本発明に係るDMA制御装置
では、バッファ制御手段により、両アドレス値に基づい
て一時記憶手段からデータが読み出されると同時にデー
タの並び替えが行われる。
【0044】したがって、本発明に係るDMA制御装置
は、データ並び替えの為の回路として1つのマルチプレ
クサのみを備えるだけでよいから、回路規模が小さく、
安価なものとなる。また、このDMA制御装置は、レイ
テンシが小さく、データ転送の高速化を図ることが容易
である。加えて、複数の単位バッファから構成したこと
により、アドレス差異量が異なるブロックを複数個連続
して転送することができる。単位バッファに対してのア
ドレス変換を行っているので、データ出力の途中でサイ
クルが中断された場合にも、再開後の転送先アドレスを
使用してのアクセスが可能である。
【図面の簡単な説明】
【図1】本実施形態に係るDMA制御装置10の構成を
示すブロック図である。
【図2】本実施形態に係るDMA制御装置10のバッフ
ァメモリ13の構成を示す図である。
【図3】本実施形態に係るDMA制御装置10のバッフ
ァメモリ13の各ブロックにおけるデータ格納部の構成
を示す図である。
【図4】本実施形態に係るDMA制御装置10のバッフ
ァメモリ13の第1ブロックにおけるデータ格納部への
データの格納の様子を説明する図である。
【図5】本実施形態に係るDMA制御装置10のバッフ
ァメモリ13の第2ブロックにおけるデータ格納部への
データの格納の様子を説明する図である。
【図6】本実施形態に係るDMA制御装置10のバッフ
ァメモリ13の第3ブロックにおけるデータ格納部への
データの格納の様子を説明する図である。
【図7】本実施形態に係るDMA制御装置10のバッフ
ァメモリ13の第4ブロックにおけるデータ格納部への
データの格納の様子を説明する図である。
【図8】本実施形態に係るDMA制御装置10のバッフ
ァメモリ13の第5ブロックにおけるデータ格納部への
データの格納の様子を説明する図である。
【図9】従来のDMA制御装置におけるデータ並び替え
手段の概略構成図である。
【符号の説明】
10…DMA制御装置、11…マスタリード制御部、1
2…バッファ制御部、13…バッファメモリ、14…マ
スタライト制御部、15…レジスタ、16…レジスタ制
御部、20…転送元デバイス、30…転送先デバイス、
40…CPU、50…第1バス、60…第2バス、70
…CPUバス。

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 CPUを介さずに単一または独立したバ
    スに接続される入出力装置間のデータの転送を制御する
    ダイレクトアクセス(DMA)装置であって、 転送元入出力装置から開始アドレス(アドレス1)とサ
    イズとで指定されるブロックデータを読み出し、1回ま
    たは複数回のアクセスで自身に取り込む制御を行うデー
    タ入力手段と、 前記データ入力手段が取り込んだデータを一時的に保持
    する一時記憶手段と、 転送先入出力装置に対して、開始アドレス(アドレス
    2)とサイズとで指定されるブロックデータを前記一時
    記憶手段から読み出して1回または複数回のアクセスで
    出力する制御を行うデータ出力手段と、 前記転送元入出力装置のアドレス値と前記転送先入出力
    装置のアドレス値とに基づいて、前記データ出力手段が
    出力すべきデータを順次に前記一時記憶手段から読み出
    して前記データ出力手段へ送るバッファ制御手段と、 を備えることを特徴とするDMA制御装置。
  2. 【請求項2】 前記一時記憶手段は、複数の単位バッフ
    ァを含み、アドレス差異が異なる2つ以上のDMAブロ
    ックを連続して扱う、ことを特徴とする請求項1記載の
    DMA制御装置。
  3. 【請求項3】 前記単位バッファは、転送すべきデータ
    と属性情報とを含み、前記属性情報は、前記転送元の開
    始アドレスのうち単位バッファのバイト数を表現するの
    に充分なビット数のアドレスと、単位バッファに格納さ
    れた有効バイト数と、ブロックの開始を示す開始ブロッ
    クビットと、ブロックの終了を示す終了アドレスビット
    とを有する、ことを特徴とする請求項2記載のDMA制
    御装置。
  4. 【請求項4】 前記一時記憶手段の読み出しに使用する
    アドレスは、前記転送先入出力装置に出力すべきアドレ
    スを、前記転送元入出力装置のアドレス値と前記転送先
    入出力装置のアドレス値との差異に基づいて変換して生
    成する、ことを特徴とする請求項1記載のDMA制御装
    置。
  5. 【請求項5】 前記一時記憶手段は、転送先または転送
    元のデータ幅nと同数のn個のRAMを含む、ことを特
    徴とする請求項4記載のDMA制御装置。
  6. 【請求項6】 前記一時記憶手段は、前記n個のRAM
    それぞれに対して、前記データ出力手段からの読み出し
    時には、転送元および転送先それぞれの開始アドレスの
    差異から計算されるシフト量に応じてn個のバイトを2
    つの領域に分割し、変換後のアドレスまたは変換後のア
    ドレスから1差し引いたアドレスを与える、ことを特徴
    とする請求項5記載のDMA制御装置。
  7. 【請求項7】 転送先の都合でサイクルが中断された場
    合には、前記シフト量と転送先に対する開始アドレスか
    らの差分アドレスとを使用し、再開後の前記一時記憶手
    段に対するアドレス変換を行う、ことを特徴とする請求
    項6記載のDMA制御装置。
JP2001012033A 2001-01-19 2001-01-19 Dma制御装置 Pending JP2002215563A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001012033A JP2002215563A (ja) 2001-01-19 2001-01-19 Dma制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001012033A JP2002215563A (ja) 2001-01-19 2001-01-19 Dma制御装置

Publications (1)

Publication Number Publication Date
JP2002215563A true JP2002215563A (ja) 2002-08-02

Family

ID=18879096

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001012033A Pending JP2002215563A (ja) 2001-01-19 2001-01-19 Dma制御装置

Country Status (1)

Country Link
JP (1) JP2002215563A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100876537B1 (ko) 2007-05-04 2008-12-31 (주)씨앤에스 테크놀로지 멀티 파라메터 셋을 이용한 디엠에이 콘트롤러 장치 및제어 방법
JP2010170164A (ja) * 2009-01-20 2010-08-05 Nec Engineering Ltd Dma転送制御装置
US7930445B2 (en) 2006-09-06 2011-04-19 Hitachi, Ltd. Computer system using remote I/O and I/O data transfer method

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7930445B2 (en) 2006-09-06 2011-04-19 Hitachi, Ltd. Computer system using remote I/O and I/O data transfer method
KR100876537B1 (ko) 2007-05-04 2008-12-31 (주)씨앤에스 테크놀로지 멀티 파라메터 셋을 이용한 디엠에이 콘트롤러 장치 및제어 방법
JP2010170164A (ja) * 2009-01-20 2010-08-05 Nec Engineering Ltd Dma転送制御装置

Similar Documents

Publication Publication Date Title
JP4532542B2 (ja) メモリハブ付きメモリモジュールでデータ転送を編成するためのシステムおよび方法
JPH0619752B2 (ja) データ転送方法及び装置
JP3940435B2 (ja) ダイレクト・メモリ・アクセス(dma)バイト・スワッピングを実行する方法および装置
JPS62297952A (ja) 可変長デ−タの記憶方式
JPS6261185B2 (ja)
JP2002215563A (ja) Dma制御装置
JPH10162157A (ja) グラフィックコントローラ
JPH09265367A (ja) プリンタ制御装置およびプリンタ制御方法
JP2617252B2 (ja) プリンタ
JPS59132479A (ja) デ−タ処理回路
JPS6367702B2 (ja)
JP3520570B2 (ja) メモリアクセス制御装置
JPS6349809B2 (ja)
JP2849804B2 (ja) メモリーアクセスのインターフェイス回路及びメモリーアクセスの方法
JP4024502B2 (ja) 情報処理装置の制御方法
JPH07319840A (ja) マルチcpu装置
JP2527335B2 (ja) 高速転送方式
JPH06274450A (ja) データ転送システム
JPH051437Y2 (ja)
JP2002041447A (ja) プリンター
JPH11119975A (ja) ビット幅変換装置
JPH11249958A (ja) メモリ制御システム
JPH01307990A (ja) バブルメモリ装置
JPS62121580A (ja) 画像転写装置
JPH06274405A (ja) メモリライト制御回路