CN101118524A - 直接存储器存取传输控制装置 - Google Patents

直接存储器存取传输控制装置 Download PDF

Info

Publication number
CN101118524A
CN101118524A CNA2007101020089A CN200710102008A CN101118524A CN 101118524 A CN101118524 A CN 101118524A CN A2007101020089 A CNA2007101020089 A CN A2007101020089A CN 200710102008 A CN200710102008 A CN 200710102008A CN 101118524 A CN101118524 A CN 101118524A
Authority
CN
China
Prior art keywords
data
transmission
selector switch
spinner
impact damper
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
CNA2007101020089A
Other languages
English (en)
Inventor
泽井隆二
柄谷康治
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
Publication of CN101118524A publication Critical patent/CN101118524A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Abstract

本发明公开了一种DMA传输控制装置,该装置包括:内部存储器(140),用于临时保存数据;缓冲器(150),用于临时保存数据;选择器(160),用于对于每个字节,从所述缓冲器的输入数据或者所述缓冲器的输出数据中的任一个中选择;以及旋转器170,用于旋转数据;其中,所述内部存储器接收来自传输源的读数据;所述缓冲器接收来自所述内部存储器的数据;所述选择器接收来自所述内部存储器的数据和来自所述缓冲器的数据;所述旋转器接收所述选择器中选择的数据,将所述旋转器的输出作为写数据。在DMA传输中,即使数据传输源地址和数据传输目的地址设置为位于地址的字节对齐不同时,也能高速地进行数据传输。

Description

直接存储器存取传输控制装置
技术领域
本发明涉及计算机系统的总线之间的数据传输。详细地涉及用于在设备之间传输数据的直接存储器存取(DMA)传输控制装置、用于在总线之间传输数据的总线适配器、装入如上总线适配器或DMA传输控制装置或者装入以上两者的计算机系统、以及总线之间的数据传输方法。
背景技术
现有技术中,不经过CPU而在传输设备之间直接进行数据传输的DMA传输方法被广为所知,该DMA传输方法用于在两个存储器之间直接进行存储器的数据传输等。
DMA传输中,在DMA传输控制装置的寄存器等设置数据传输源地址、数据传输目的地址、数据传输大小等传输所需信息,之后通过CPU等控制传输的开始,执行传输操作。在传输时,由于无需由CPU进行传输控制,所以,与经过CPU的情况相比,可以进行高速的数据传输,而且可以减轻CPU的负担。设置于寄存器等的传输大小相当的传输完毕后,根据DMA传输控制装置的设置,断言DMA传输结束中断。CPU检测到DMA传输结束中断,则读取DMA传输控制装置的寄存器等,监控DMA传输的结果、状态。
另外在DMA传输中经常利用突发传输,突发传输技术是指,指定一次地址后,可以将多个字节数据作为一组连续地传输。
在DMA传输中,数据传输源地址和数据传输目的地址的设置使得位于地址的字节对齐(alignment)不同时,不能直接将读取的数据作为写入的数据使用。因此,按照地址,需要从读数据重新生成写数据等二次处理。
针对该课题,一种现有的传输控制装置包括移位器和累加器,其中,移位器用于移位读数据,累加器用于对移位的字节进行选择性的累加,且供给输出字节(参考专利文献1)。
用图22说明在该现有技术中,传输源地址和传输目的地址的字节对齐不同时的突发传输操作。对一个读数据,分两个阶段进行传输处理。在第1阶段,按照设定地址移位读数据,对于可以直接作为写数据输出的字节,将累加器的字节使能信号设为有效并写入累加器,同时由累加器输出写数据。在第2阶段,对于在第1阶段中未作为写数据输出的字节,将累加器的字节使能信号设为有效并写入累加器,使累加器累加数据。这些字节在下次的第1阶段中,与下次的读数据的一部分一起作为写数据输出。
专利文献1:美国专利第6,330,631号说明书
但是,上述现有的传输控制装置,当传输源地址和传输目的地址的字节对齐不同时,对一个读数据需要分两个阶段进行处理,所以造成数据传输速度降低。
发明内容
有鉴于此,本发明的目的在于提供一种DMA传输控制装置,即使传输源地址和传输目的地址的字节对齐不同时,也能够在不降低传输速度的情况下进行数据传输。
本发明的DMA传输控制装置,其特征在于,该装置包括:内部存储器,用于临时保存数据;缓冲器,用于临时保存数据;选择器,用于对于每个字节,从所述缓冲器的输入数据或者所述缓冲器的输出数据中的任一个中选择;旋转器,用于旋转数据;其中,所述内部存储器、具有所述缓冲器的所述选择器、以及所述旋转器以任意的顺序连接。
作为具体的连接,其特征在于,所述内部存储器接收来自传输源的读数据:所述缓冲器接收来自所述内部存储器的数据;所述选择器接收来自所述内部存储器的数据和来自所述缓冲器的数据;所述旋转器接收所述选择器中选择的数据。
或者,其特征在于,所述缓冲器接收来自传输源的读数据;所述选择器接收来自所述传输源的读数据和来自所述缓冲器的数据;所述旋转器接收所述选择器中选择的数据;所述内部存储器接收来自所述旋转器的数据。
或者,其特征在于,所述内部存储器接收来自传输源的读数据;所述旋转器接收来自所述内部存储器的数据;所述缓冲器接收来自所述旋转器的数据;所述选择器接收来自所述旋转器的数据和来自所述缓冲器的数据。
或者,其特征在于,所述旋转器接收来自传输源的读数据;所述缓冲器接收来自所述旋转器的数据;所述选择器接收来自所述旋转器的数据和来自所述缓冲器的数据;所述内部存储器接收所述选择器中选择的数据。
或者,其特征在于,所述旋转器接收来自传输源的读数据;所述内部存储器接收来自所述旋转器的数据;所述缓冲器接收来自所述内部存储器的数据;所述选择器接收来自所述内部存储器的数据和来自所述缓冲器的数据。
或者,其特征在于,所述缓冲器接收来自传输源的读数据;所述选择器接收来自所述传输源的读数据和来自所述缓冲器的数据;所述内部存储器接收所述选择器中选择的数据;所述旋转器接收来自所述内部存储器的数据。
根据本发明的DMA传输控制装置,即使传输源地址和传输目的地址的字节对齐不同,由于将读数据的一部分作为写数据输出的时间和为了下一个写数据的生成而保存的时间相同,所以能够在不降低传输速度的情况下,进行DMA传输。
而且,本发明的DMA传输控制装置,其特征在于,所述旋转器利用传输源地址和传输目的地址之间的差值确定旋转级数。
根据本发明的DMA传输控制装置,仅通过一次旋转操作,就能够调整从传输源地址到传输目的地址的数据对齐。
而且,本发明的DMA传输控制装置,其特征在于,所述选择器利用传输源地址和传输目的地址之间的差值确定选择。
根据本发明的DMA传输控制装置,在选择器中能够以字节为单位准确地选择用于生成写数据的输入数据。
而且,本发明的DMA传输控制装置,其特征在于,该装置进一步包括:读大小确定电路和写大小确定电路之中的至少一个;其中,读大小确定电路用于确定对传输源的读传输大小,写大小确定电路用于确定对传输目的的写传输大小。
根据本发明的DMA传输控制装置,不仅考虑已设置的传输大小,而且还考虑其他因素,所以能够确定进一步提高传输效率的传输大小。
而且,本发明的DMA传输控制装置,其特征在于,所述读大小确定电路及所述写大小确定电路,利用传输源地址和传输目的地址之中的至少一个,确定读大小或者确定写大小。
根据本发明的DMA传输控制装置,当传输源地址和传输目的地址不对齐时,能够通过调整传输大小来提高传输效率。
而且,本发明的DMA传输控制装置,其特征在于,所述读大小确定电路及所述写大小确定电路,利用传输源读取地址中的连续区域大小和传输目的写入地址中的连续区域大小,确定读大小或者确定写大小。
根据本发明的DMA传输控制装置,通过调整读传输或者写传输大小使其不超过连续区域大小,这样,不需要增加用于处理不连续区域的传输数据的电路,就能够进行支持不连续区域的读数据或者写数据或者两者都支持的DMA传输。
而且,本发明的DMA传输控制装置,其特征在于,所述旋转器利用传输源读取地址中的连续区域大小和传输目的写入地址中的连续区域大小,确定旋转级数。
而且,本发明的DMA传输控制装置,其特征在于,所述选择器利用传输源读取地址中的连续区域大小和传输目的写入地址中的连续区域大小,确定选择。
根据本发明的DMA传输控制装置,能够从不连续区域大小的读数据生成连续区域的写数据,或者能够从连续区域大小的读数据生成不连续区域的写数据,或者能够从不连续区域大小的读数据生成不同的不连续区域的写数据,从而能够高速地进行支持不连续区域的读数据或者写数据的DMA传输。
而且,本发明的一些DMA传输控制装置,其特征在于,该装置进一步包括:第2缓冲器,用于临时保存数据;第2选择器,用于对于每个字节,从所述第2缓冲器的接收数据或者所述第2缓冲器的输出数据中的任一个中选择;其中,将所述第2选择器的输出数据,输入到所述内部存储器或者所述旋转器。
根据本发明的DMA传输控制装置,当读数据的数据宽度小于传输总线宽度时,在所述第2缓冲器累积读数据之后,再将数据存入内部存储器,从而,能够有效地使用内部存储器。
而且,本发明的一些DMA传输控制装置,其特征在于,所述选择器的选择功能及所述旋转器的旋转功能通过选择器/旋转器电路实现,其中,所述选择器/旋转器电路从以字节为单位任意组合两个输入数据而生成的数据中,选择一个作为输出。
根据本发明的DMA传输控制装置,可以用小规模电路实现选择功能和旋转功能,从而能够减小电路规模。
而且,本发明的DMA传输控制装置,其特征在于,当传输源地址和传输目的地址的对齐相同时,不使用所述缓冲器。
根据本发明的DMA传输控制装置,在不需要对齐调整时,通过控制不使用缓冲器,从而能够抑制功率消耗。
另外,对于本发明,虽然通过权利要求书的独立项以及从属项详细说明,但本发明可以将从属项特征的组合和独立项特征适当地组合,并不限于权利要求书中明确说明的内容。
如上所述,根据本发明的DMA传输控制装置,即使传输源地址和传输目的地址的字节对齐不同,与现有技术相比,可以高速地生成写数据,从而能够在不降低传输速度的情况下进行DMA传输。
而且,根据本发明的DMA传输控制装置,即使进行包含像矩形区域的不连续区域的数据传输,也不需要特殊的电路就能够进行支持不连续区域的传输数据的DMA传输。而且,能够将包含不连续区域的数据转换为连续区域的数据或者包含不同的不连续区域的数据,能够高速地进行DMA传输。
附图说明
图1所示为本发明的实施方式1中的DMA传输控制装置的简略结构块图;
图2所示为在本发明的实施方式1中,用于说明传输源地址和传输目的地址的字节对齐不同时的传输操作例子的时间流程图;
图3所示为在本发明的实施方式1中,用于说明当传输源地址和传输目的地址的字节对齐不同时,不进行发布大小调整的例子的时间流程图;
图4所示为在本发明的实施方式1中,用于说明当传输源地址和传输目的地址的字节对齐不同时,进行发布大小调整的例子的时间流程图;
图5所示为在本发明的实施方式1中,用于说明在读操作中进行不连续区域的数据传输时,进行发布大小调整的例子的时间流程图;
图6所示为在本发明的实施方式1中,用于说明在写操作中进行不连续区域的数据传输时,进行发布大小调整的例子的时间流程图;
图7所示为在本发明的实施方式1中,用于说明在读操作和写操作中进行不连续区域的数据传输时,进行发布大小调整的例子的时间流程图;
图8所示为本发明的实施方式2中的DMA传输控制装置的简略结构块图;
图9所示为在本发明的实施方式2中,说明传输源地址和传输目的地址的字节对齐不同时的传输操作例子的时间流程图;
图10所示为在本发明的实施方式2中,说明以小于传输总线宽度的数据宽度进行读传输时的传输操作例子的时间流程图;
图11所示为本发明的实施方式3中的DMA传输控制装置的简略结构块图;
图12所示为在本发明的实施方式3中,说明传输源地址和传输目的地址的字节对齐不同时的传输操作例子的时间流程图;
图13所示为在本发明的实施方式3中,说明在读操作中进行不连续区域的数据传输时的传输操作例子的时间流程图;
图14所示为本发明的实施方式4中的DMA传输控制装置的简略结构块图;
图15所示为在本发明的实施方式4中,说明传输源地址和传输目的地址的字节对齐不同时的传输操作例子的时间流程图;
图16所示为本发明的实施方式5中的DMA传输控制装置的简略结构块图;
图17所示为在本发明的实施方式5中,说明传输源地址和传输目的地址的字节对齐不同时的传输操作例子的时间流程图;
图18所示为本发明的实施方式6中的DMA传输控制装置的简略结构块图;
图19所示为在本发明的实施方式6中,说明传输源地址和传输目的地址的字节对齐不同时的传输操作例子的时间流程图;
图20所示为本发明的实施方式7中的DMA传输控制装置的简略结构块图;
图21所示为实现本发明实施方式1、2、7中的选择器功能和旋转器功能的选择器/旋转器电路的简略结构块图;
图22所示为现有的数据传输控制装置的简略结构块图,以及说明传输源地址和传输目的地址的字节对齐不同时的传输操作例子的时间流程图。
符号的说明
100、200、300、400、500、600、700:DMA传输控制装置
110、210、310、410、510、610、710:设置寄存器
111、211、311、411、511、611、711:传输大小
112、212、312、412、512、612、712:传输源开始地址
113、213、313、413、513、613、713:传输目的开始地址
114、214、314、414、514、614、714:传输源连续区域大小
115、215、315、415、515、615、715:传输目的连续区域大小
116、216、316、416、516、616、716:传输源数据宽度
117、217、317、417、517、617、717:传输目的数据宽度
120、220、320、420、520、620、720:总线接口A
121、221、321、421、521、621、721:读数据
130、230、330、430、530、630、730:总线接口B
140、240、340、440、540、640、740:内部存储器
141、241、341、441、541、641、741:内部存储器输出数据
150、250、350、450、550、650:缓冲器
151、251、351、451、551、651:缓冲器输出数据
160、260、360、460、560、660:选择器
161、261、361、461、561、661:选择器输出数据
170、270、370、470、570、670、770:旋转器
171、271、371、471、571、671、771:旋转器输出数据
180、280、380、480、580、680、780:读大小确定电路
190、290、390、490、590、690、790:写数据确定电路
750:缓冲器A
751:缓冲器A输出数据
752:缓冲器B
753:缓冲器B输出数据
760:选择器A
761:选择器A输出数据
762:选择器B
763:选择器B输出数据
800:选择器/旋转器电路
801:前述缓冲器输入数据
802:前述缓冲器输出数据
803:旋转级数控制信号
804:选择器
805:选择器/旋转器输出数据
具体实施方式
以下,根据附图详细说明本发明中的DMA传输控制装置的实施方式。另外,本发明的实施方式中使用的方法、结构仅仅为例子,本发明并不局限于此。
《实施方式1》
图1所示为本发明的实施方式1中的DMA传输控制装置100的简略结构块图。在本实施方式的DMA传输控制装置100中,传输源设备或者连接有传输源设备的总线,与总线接口A120连接,传输目的设备或者连接有传输目的设备的总线,与总线接口B130连接。
DMA传输控制装置100具有:上述的总线接口A120;内部存储器140,接收从总线接口A120输出的读数据121;缓冲器150,接收从内部存储器140输出的内部存储器输出数据141;选择器160,接收内部存储器输出数据141和从缓冲器150输出的缓冲器输出数据151;旋转器(rotator)170,接收从选择器160输出的选择器输出数据161;总线接口B130,接收从旋转器170输出的旋转器输出数据171。
DMA传输控制装置100还具有设置寄存器110,该设置寄存器110中设置有传输大小111、传输源开始地址112、传输目的开始地址113、传输源连续区域大小114、传输目的连续区域大小115、传输源数据宽度116、传输目的数据宽度117。
DMA传输控制装置100还具有读大小确定电路180和写大小确定电路190。
其中,对于保存有传输所需信息的设置寄存器,并不局限于此,传输信息可以通过例如从外部端子接收传输信息等不同方法得到。
下面,对本实施方式的DMA传输控制装置的数据传输的流程进行说明。为了对于通过总线接口A120从传输源设备读取的读数据121进行突发传输,将读数据121暂时存入内部存储器140。适当大小的数据累积到内部存储器140后,从内部存储器140读取数据。内部存储器的输出数据,输入到选择器160的同时,也输入到缓冲器150。缓冲器150临时储存数据后,输出给选择器160。选择器160根据从传输目的开始地址113的设置值减去传输源开始地址112的设置值所得到的差值,对于每个字节,从所接收到的两个数据中的任意一个中选择。选择器的输出数据,输入到旋转器170。旋转器170根据前述的地址差值确定旋转级数,并相应地旋转输入数据。旋转器输出数据通过总线接口B130传到传输目的设备。
用图2说明传输源地址和传输目的地址的字节对齐不同时的传输(不对齐传输)操作例。传输总线宽度为8字节。传输源开始地址的低3位值为3,传输目的开始地址的低3位值为5,这样,在传输源和传输目的中,地址没有和传输总线宽度对齐,而且从起始数据的中间字节开始的数据有效。
首先,内部存储器140输出的起始读数据“xxxABCDE”输入到缓冲器150和选择器160。选择器160根据从传输目的开始地址113的设置值的低3位减去传输源开始地址112的设置值的低3位得到的差值,选择每个字节。此例中,差值为2,所以从缓冲器输出数据151中选择8字节中的后2个字节,剩余的字节从内部存储器输出数据141中选择。即,第0字节到第5字节从内部存储器输出数据141中选择,第6字节到第7字节从缓冲器输出数据151中选择,所以从起始读数据中仅选择生成起始写数据所需的“xxxABC”,而未选择“DE”。选择器输出数据161输入到旋转器170,向右方向旋转与前述地址差值相同的级数。即,输入的“xxxABCxx”向右方向旋转,成为“xxxxxABC”输出,并通过总线接口B130传到传输目的设备。输入到缓冲器150的内部存储器输出数据141被临时保存。
在下一次循环中,当内部存储器140输出下一个读数据“FGHIJKLM”时,与上一次同样地输入到缓冲器150和选择器160。与上一次同样地,选择器160在第6字节处分开选择的字节,所以从内部存储器输出数据141“FGHIJKLM”中选择“FGHIJK”,从缓冲器输出数据151中选择上一次循环中的读数据的一部分“DE”,这样从选择器输出“FGHIJKDE”。该数据在旋转器170中与上一次同样地旋转,成为“DEFGHIJK”并作为旋转器输出数据171输出,通过总线接口B130传到传输目的设备。
通过重复执行该操作进行写数据的生成,即使传输源地址和传输目的地址的字节对齐不同时,也能够在每次循环中输出写数据,可以进行高速DMA传输。
另外,当传输源地址和传输目的地址的字节对齐相同时,选择器160总是从内部存储器输出数据141中选择输入数据,在旋转器170中对输入数据不进行旋转而直接输出。由于未使用缓冲器150,所以可以通过控制时钟供给来抑制功率消耗。
下面,对于本实施方式的DMA传输控制装置,说明当传输源地址和传输目的地址的字节对齐不同时,发布大小调整的情况。假设,如果仅根据设置在寄存器的传输大小111确定读大小和写大小,则发布使传输次数在读和写操作中相同的命令。但是当传输源地址和传输目的地址的字节对齐不同时,即使读和写操作中的传输次数相同,传输有效的数据大小不一定总是相同。当读操作中有效的数据大小比写操作中有效的数据大小少时,需要先发布读操作中传输次数多于写操作中传输次数的读命令之后,发布写命令。在多数系统中,总线、传输设备的协议等规定用一次命令能够存取的传输次数。在这种情况下,需要执行2次读命令之后发布写命令。图3所示为一个例子。图3中,假设在总线协议中规定用一次命令能够存取的传输次数可以达到2次。此时,通过第2次读命令获得数据之后,写操作所需的数据才能备齐。换句话说,由于在所需要的数据备齐之后发布写命令,所以与传输源地址和传输目的地址的字节对齐相同的情况相比,传输变慢。
因此,对于上述情况,本发明的DMA传输控制装置在完成一次读命令的时刻进行调整,发布将传输次数减少一次的写传输命令。图4给出这种情况的一个例子。传输次数的条件与上述情况相同。在写操作中传输次数原本可以达到2次,但将第一次写操作中的传输次数设为1次,从而在得到第一次读数据之后,可以立即写入写数据。
与不调整写操作中的传输次数的情况相比,通过这种方式调整传输大小,能够加快写数据的到达,能够提高传输速率。而且,通过迅速写入,能够防止内部存储器积存过剩的数据,防止由于内部存储器的空闲容量不足所造成的读错误。
下面,说明本实施方式的DMA传输控制装置在进行不连续区域的数据传输时,发布大小调整的情况。在读不连续区域的数据时,执行在数据不连续的部分分开传输的命令。即,发布将传输大小设置为传输数据不连续的部分为止的命令,在下一次命令发布中,设置从下一个连续区域传输数据的地址和大小。图5所示为处理不连续区域的读数据时的一个例子。总线协议中规定用一次命令能够存取的传输次数可以达到4次。此时,通过用传输源数据宽度0x8字节除传输大小0x13,算出读操作需要的传输次数为3次,但是,由于连续区域读大小为0x0a,所以用传输源数据宽度0x8字节除该连续区域读大小得到2,并发布将该结果2作为在第一次读操作中传输次数的读命令。在第2次发布的读命令中,根据剩余的传输大小0x09将传输次数设为2次。并且,在第2次发布的读命令中,地址被指定为下一个连续区域的开头。另外,对于发布写命令的时刻,并不限于图示的例子。
在处理不连续区域的写数据时,同样也进行发布大小调整。图6所示为进行写操作的情况的一个例子。在图6中,假设总线协议规定用一次命令能够存取的传输次数可以达到4次。在写操作中,通过用传输源数据宽度0x8字节除传输大小0x13,算出在写操作中需要的传输次数为3次,但是,由于连续区域写大小为0x0a,所以用传输源数据宽度0x8字节除所述连续区域写大小0x0a得到2,并发布将该结果2作为第一次写操作中的传输次数的写命令。在第2次发布的写命令中,根据剩余的传输大小0x09将传输次数设为2次,并且,地址被指定为下一个连续区域的开头。
图7所示为同时处理不连续区域的读数据和写数据时的一个例子。在图7中,假设总线协议规定用一次命令能够存取的传输次数可以达到4次。在此,根据前面说明的读取不连续区域数据时的方法,得到读数据。在写操作中,虽然通过用传输源数据宽度0x8字节除传输大小0x13可以算出写操作需要的传输次数为3次,但是,由于连续区域读大小是0x0a,所以,为了对应读的不连续区域,用传输源数据宽度0x8字节除连续区域读大小0x0a得到2,并发布将该结果2作为第一次写操作的传输次数的写命令。在第2次发布的写命令中,由于通过从连续区域写大小0x0c中减去上一次的传输大小0x0a算出剩余的连续区域写大小为0x02,所以,为了对应写的不连续区域,在此分割写数据,在第2次写命令中将传输次数设为1次。在第3次写操作中,虽然从传输大小0x13减去已传输的大小0x0c所得到的值为0x07,但是,为了与发布地址对齐,将传输次数设为2次。
另外,这些说明仅为一个例子,读和写操作的时刻、传输次数并不局限于此。通过上述方式调整传输大小和传输地址,可以在不需要特别的电路的情况下,同连续区域的数据一样地处理不连续区域的数据。
《实施方式2》
图8所示为本发明的实施方式2中的DMA传输控制装置200的简略结构块图。在本实施方式的DMA传输控制装置200中,连接有传输源设备的总线,与总线接口A220连接,连接有传输目的设备的总线,与总线接口B230连接。
DMA传输控制装置200具有:上述的总线接口A220;缓冲器250,接收从总线接口A220输出的读数据221;选择器260,接收读数据221和从缓冲器250输出的缓冲器输出数据251;旋转器270,接收从选择器260输出的选择器输出数据261;内部存储器240,接收从旋转器270输出的旋转器输出数据271;总线接口B230,接收从内部存储器240输出的内部存储器输出数据241。
DMA传输控制装置200还具有设置寄存器210,该设置寄存器210中设置有传输大小211、传输源开始地址212、传输目的开始地址213、传输源连续区域大小214、传输目的连续区域大小215、传输源数据宽度216、传输目的数据宽度217。
DMA传输控制装置200还具有读大小确定电路280和写大小确定电路290。
其中,对于保存有传输所需信息的设置寄存器,并不局限于此,传输信息可以通过例如从外部端子接收传输信息等不同方法得到。
下面,对本实施方式的DMA传输控制装置的数据传输的流程进行说明。通过总线接口A220从传输源设备读取的读数据221,输入到选择器260的同时,也输入到缓冲器250。缓冲器250临时储存数据后,输出给选择器260。选择器260根据从传输目的开始地址213的设置值减去传输源开始地址212的设置值得到的差值,对于每个字节,从所接收到的两个数据中的任意一个中选择。选择器的输出数据输入到旋转器270。旋转器270根据前述的地址差值确定旋转级数,并相应地旋转输入数据。为了进行突发传输,将旋转器输出数据暂时存入内部存储器240。适当大小的数据累积到内部存储器240之后,从内部存储器240进行数据读取。内部存储器的输出数据通过总线接口B230传到传输目的设备。
用图9说明传输源地址和传输目的地址的字节对齐不同时的传输操作例。传输总线宽度为8字节。传输源开始地址的低3位为3,传输目的开始地址的低3位为5,这样,传输源和传输目的的地址都未和传输总线宽度对齐,而且从起始数据的中间字节开始的数据有效。
首先,起始的读数据“xxxABCDE”通过总线接口A220输入到缓冲器250和选择器260。选择器260根据从传输目的开始地址213的设置值的低3位减去传输源开始地址212的设置值的低3位得到的差值,选择每个字节。此例中,差值为2,所以从缓冲器输出数据251中选择8字节中的后2个字节,剩余的字节从读数据221中选择。即第0字节到第5字节从读数据221中选择,第6字节到第7字节从缓冲器输出数据251中选择,所以从起始读数据中仅选择生成起始写数据所需的“xxxABC”,而未选择“DE”。选择器输出数据261输入到旋转器270,向右方向旋转与前述地址差值相同的级数。即,输入的“xxxABCxx”向右方向旋转两级,成为“xxxxxABC”输出,并送到内部存储器240。输入到缓冲器250的读数据221被临时保存。
在下一次循环中,当由总线接口A220输出下一个读数据“FGHIJKLM”时,与上一次同样地输入到缓冲器250和选择器260。与上一次同样的,选择器260在第6字节处分开选择的字节,所以从读数据221“FGHIJKLM”中选择“FGHIJK”,从缓冲器输出数据251中选择上一次循环中的读数据的一部分“DE”,并从选择器输出“FGHIJKDE”。该数据在旋转器270中与上一次同样地旋转,成为“DEFGHIJK”并作为旋转器输出数据271输出,送到内部存储器240。
通过重复执行该操作将读数据送入内部存储器,即使传输源地址和传输目的地址的字节对齐不同时,也能够在每次循环中接收读数据。而且,由于适当的写数据按照传输源地址保存在内部存储器,所以可以进行高速DMA传输。
另外,当传输源地址和传输目的地址的字节对齐相同时,选择器260总是从读数据221中选择输入数据,在旋转器270中对输入数据不进行旋转就直接输出。由于未使用缓冲器250,所以可以通过控制时钟供给来抑制功率消耗。
另外,在本实施方式的DMA传输控制装置中,可以进行发布大小调整,关于传输源地址和传输目的地址的字节对齐不同的情况,以及进行不连续区域的数据传输的情况,均与实施方式1中的说明相同。
下面,关于本实施方式的DMA传输控制装置,说明以小于传输总线宽度的数据宽度进行读传输时的情况。缓冲器250具有仅把有效的读数据的字节写入缓冲器的功能,可以利用传输源开始地址和传输数据宽度确定写入哪个字节。有效的读数据221按顺序累积到缓冲器250,当读取到同传输总线宽度的数据后,保存到内部存储器240。在没有累积完读数据之前不进行保存。
用图10说明操作例子。对于来自传输源设备的读数据221,当第一个读数据“xAxxxxxx”被读取时,将低位地址为0x1的“A”写入缓冲器250。此时,对其他字节不进行写入。但是对于低位地址为0x0的“x”,可以写入或可以不写入。在下一次循环中,当读数据“xxBCxxxx”被读取时,将低位地址为0x2、0x3的“BC”写入缓冲器250。此时,其他字节不被写入,保持以前的值,所以缓冲器250的数据成为“xABCxxxx”。在每次循环中重复上述操作,则缓冲器250的数据成为“xABCDEFG”。接着,当读数据221中“HIxxxxxx”被读取时,选择器260根据传输源开始地址与传输目的开始地址之间的差值,选择读数据221中的“H”和缓冲器数据251中的“ABCDEFG”,输出“HABCDEFG”。该选择器输出数据261输入到旋转器270。旋转器270根据前述的地址差值,对输入的数据进行旋转并输出“ABCDEFGH”,该数据被保存到内部存储器240。
通过以上方式处理读数据,即使以小于传输总线宽度的数据宽度进行读传输时,也能够累积为传输总线宽度后保存到内部存储器,可以有效地使用内部存储器。另外,对于以小于传输总线宽度的数据宽度进行写传输的情况,将写数据分为多个循环进行写入,而在其它方面,本DMA传输控制装置内的数据传输方法与以和传输总线宽度相同的数据宽度进行写传输时相同。
《实施方式3》
图11所示为本发明的实施方式3中的DMA传输控制装置300的简略结构块图。在本实施方式的DMA传输控制装置300中,传输源设备或者连接有传输源设备的总线,与总线接口A320连接,传输目的设备或者连接有传输目的设备的总线,与总线接口B330连接。
DMA传输控制装置300具有:上述的总线接口A320;内部存储器340,接收从总线接口A320输出的读数据321;旋转器370,接收从内部存储器340输出的内部存储器输出数据341;缓冲器350,接收从旋转器370输出的旋转器输出数据371;选择器360,接收旋转器输出数据371和从缓冲器350输出的缓冲器输出数据351;总线接口B330,接收从选择器360输出的选择器输出数据361。
DMA传输控制装置300还具有设置寄存器310,该设置寄存器310中设置有传输大小311、传输源开始地址312、传输目的开始地址313、传输源连续区域大小314、传输目的连续区域大小315、传输源数据宽度316、传输目的数据宽度317。
DMA传输控制装置300还具有读大小确定电路380和写大小确定电路390。
其中,对于保存有传输所需信息的设置寄存器,并不局限于此,传输信息可以通过例如从外部端子接收传输信息等不同方法得到。
下面,对本实施方式的DMA传输控制装置的数据传输的流程进行说明。为了对于通过总线接口A320从传输源设备读取的读数据321进行突发传输,将读数据321暂时存入内部存储器340。适当大小的数据累积到内部存储器340后,从内部存储器340进行数据读取。内部存储器的输出数据输入到旋转器370。旋转器370根据从传输目的开始地址313的设置值减去传输源开始地址312的设置值得到的地址差值,确定旋转级数并对输入数据进行旋转。旋转器输出数据371输入到选择器360的同时,也输入到缓冲器350。缓冲器350临时储存数据后,输出给选择器360。选择器360根据前述的地址差值,对于每个字节,从所接收到的两个数据中的任一个中选择。选择器的输出数据通过总线接口B330传到传输目的设备。
利用图12说明传输源地址和传输目的地址的字节对齐不同时的传输操作例子。传输总线宽度为8字节。传输源开始地址的低3位为3,传输目的开始地址的低3位为5,这样,传输源和传输目的的地址都未和传输总线宽度对齐,而且从起始数据的中间字节开始的数据有效。
首先,读数据通过总线接口A320保存到内部存储器340。保存生成写数据所需的数据后,从内部存储器340读取数据。起始的读数据“xxxABCDE”输入到旋转器370。旋转器370根据从传输目的开始地址313的设置值的低3位减去传输源开始地址312的设置值的低3位得到的差值,进行旋转。此例中,差值为2,所以将输入数据向右方向旋转两级,输出“DExxxABC”。旋转器输出数据371输入到缓冲器350和选择器360。选择器360根据前述的地址差值选择每个字节。由于是从旋转完成的数据中选择,所以在此例中,根据地址差值2,从缓冲器输出数据351中选择8字节中的前2个字节,剩余的字节从旋转器输出数据371中选择。即,第0字节到第1字节从缓冲器输出数据351中选择,第2字节到第7字节从旋转器输出数据371中选择,所以从起始读数据中仅选择生成起始写数据所需的“xxxABC”,而未选择“DE”。选择器输出数据361通过总线接口B330传到传输目的设备。输入到缓冲器350的旋转器输出数据371被临时保存。
在下一次循环中,当内部存储器340输出下一个读数据“FGHIJKLM”时,与上一次同样地在旋转器370中旋转该数据,输出“LMFGHIJK”。该数据输入到缓冲器350和选择器360。选择器360与上一次同样地在第2字节处分开选择的字节,所以从旋转器输出数据371“LMFGHIJK”中选择“FGHIJK”,从缓冲器输出数据351中选择上一次循环中的读数据的一部分“DE”,并从选择器输出“DEFGHIJK”。此数据通过总线接口B330传到传输目的设备。
通过重复执行该操作进行写数据的生成,即使传输源地址和传输目的地址的字节对齐不同时,也能够在每次循环中输出写数据,可以进行高速DMA传输。
另外,传输源地址和传输目的地址的字节对齐相同时,旋转器370对输入数据不进行旋转就直接输出,选择器360总是从旋转器输出数据371中选择输入数据。由于未使用缓冲器350,所以可以通过控制时钟供给来抑制功率消耗。
另外,在本实施方式的DMA传输控制装置中能够进行发布大小调整,关于传输源地址和传输目的地址的字节对齐不同的情况,以及进行不连续区域的数据传输的情况,都与实施方式1中的说明相同。
下面,在本实施方式的DMA传输控制装置中,说明对包括不连续区域大小的数据进行有效传输的方法。为了支持包含不连续区域大小的数据传输,旋转器370不仅考虑传输源开始地址与传输目的开始地址之间的差值,而且还考虑连续传输数据大小,来确定旋转级数。另外缓冲器350可以仅写入有效数据的字节,能够累积数据。
图13示出为从包含不连续区域大小的读数据,生成连续区域的写数据并进行传输的情况。读数据321以不连续数据的原样保存到内部存储器340。首先,由内部存储器340输出的起始读数据“xABCDExx”输入到旋转器370。由于从传输目的开始地址313的设置值的低3位减去传输源开始地址312的设置值的低3位得到的差值为4,所以旋转器370将该起始读数据向右方向旋转4级,得到的旋转器输出数据371为“DExxxABC”。此数据输入到缓冲器350和选择器360。选择器360根据传输目的开始地址在第5字节处分开选择的字节,从起始读数据中仅选择生成起始写数据所需的“ABC”。选择器输出数据361通过总线接口B330传到传输目的设备。输入到缓冲器350的旋转器输出数据371被临时保存。
在下一次循环中,下一个读数据“xFGHIJxx”从内部存储器340输入到旋转器370。旋转级数为在上一次循环中的值4加上传输源连续区域大小5得到的值9,用传输总线宽度8除该值9得到余值1,并将该数据向右方向旋转同所述余值1的一级,得到旋转器输出数据371“xxFGHIJx”。旋转器输出数据371“xxFGHIJx”输入到缓冲器350和选择器360。缓冲器350仅写入有效字节“FGHIJ”,而其他字节的数据照原样累积,所以在下一次循环中缓冲器输出数据351为“DEFGHIJx”。在选择器360中,在上一次循环中的5加上传输源连续区域大小5得到10,用传输总线宽度8除该值10得到余值2,将该余值2指定为选择字节,在第2字节处分开选择的字节,所以得到的选择器输出数据361为“DEFGHIJx”。但是在本次循环中,由于生成下一次写数据所需的读数据不足,所以不进行写入。
在下一次循环中,下一个读数据“xKLMNOxx”从内部存储器340输入到旋转器370。旋转级数为在上一次循环中的值1加上传输源连续区域大小5得到的值6,所以将读数据“xKLMNOxx”向右方向旋转6级,得到旋转器输出数据371“LMNOxxxK”。旋转器输出数据371“LMNOxxxK”输入到缓冲器350和选择器360。在选择器360中,在上一次循环中分开选择字节的位置2加上传输源连续区域大小5算出7,在第7字节处分开选择的字节,所以选择器输出数据361为“DEFGHIJK”。此数据通过总线接口B330传到传输目的设备。
通过以上方法传输数据,即使是包含不连续区域的读数据,通过将其转换为连续区域数据或者转换为包含不同不连续区域的数据等适合写操作的数据,也可以高速地进行支持不连续区域的读数据的DMA传输。另外根据同样的方法,通过调整选择器中的数据选择字节、旋转器的旋转级数,能够传输包含不连续区域的写数据,或者能够传输写数据和读数据都包含不连续区域时的数据。
《实施方式4》
图14所示为本发明的实施方式4中的DMA传输控制装置400的简略结构块图。在本实施方式的DMA传输控制装置400中,传输源设备或者连接有传输源设备的总线,与总线接口A420连接,传输目的设备或者连接有传输目的设备的总线,与总线接口B430连接。
DMA传输控制装置400具有:上述的总线接口A420;旋转器470,接收从总线接口A420输出的读数据421;缓冲器450,接收从旋转器470输出的旋转器输出数据471;选择器460,接收旋转器输出数据471和从缓冲器450输出的缓冲器输出数据451;内部存储器440,接收从选择器460输出的选择器输出数据461;总线接口B430,接收从内部存储器440输出的内部存储器输出数据441。
DMA传输控制装置400还具有设置寄存器410,该设置寄存器410中设置有传输大小411、传输源开始地址412、传输目的开始地址413、传输源连续区域大小414、传输目的连续区域大小415、传输源数据宽度416、传输目的数据宽度417。
DMA传输控制装置400还具有读大小确定电路480和写大小确定电路490。
其中,对于保存有传输所需信息的设置寄存器,并不局限于此,传输信息可以通过例如从外部端子接收传输信息等不同方法得到。
下面,对本实施方式的DMA传输控制装置的数据传输的流程进行说明。通过总线接口A420从传输源设备读取的读数据421,输入到旋转器470。旋转器470根据从传输目的开始地址413的设置值减去传输源开始地址412的设置值得到的地址差值确定旋转级数,并旋转输入数据。旋转器输出数据471输入到选择器460的同时,也输入到缓冲器450。缓冲器450临时储存数据后,输出给选择器460。选择器460根据前述的地址差值,对于每个字节,从所接收到的两个数据中的任一个中选择。为了进行突发传输,选择器的输出数据暂时存入内部存储器440。适当大小的数据累积到内部存储器440后,从内部存储器440进行数据读取。内部存储器的输出数据通过总线接口B430传到传输目的设备。
用图15说明传输源地址和传输目的地址的字节对齐不同时的传输操作例子。传输总线宽度为8字节。传输源开始地址的低3位为3,传输目的开始地址的低3位为5,这样,传输源和传输目的的地址都未和传输总线宽度对齐,而且从起始数据的中间字节开始的数据有效。
首先,起始的读数据“xxxABCDE”从总线接口A420输入到旋转器470。旋转器470根据从传输目的开始地址413的设置值的低3位减去传输源开始地址412的设置值的低3位得到的差值进行旋转。此例中,差值为2,所以将输入数据向右方向旋转两级,输出“DExxxABC”。旋转器输出数据471输入到缓冲器450和选择器460。选择器460根据前述的地址差值选择每个字节。此例中,从缓冲器输出数据451中选择8字节中的前2个字节,剩余的字节从旋转器输出数据471中选择。即第0字节到第1字节从缓冲器输出数据451中选择,第2字节到第7字节从旋转器输出数据471中选择,所以从起始读数据中仅选择生成起始写数据所需的“xxxABC”,而未选择“DE”。选择器输出数据461被保存于内部存储器440。输入到缓冲器450的旋转器输出数据471被临时保存。
在下一次循环中,当总线接口A420输出下一个读数据“FGHIJKLM”时,与上一次同样地在旋转器470中旋转该数据,输出“LMFGHIJK”。此数据输入到缓冲器450和选择器460。与上一次同样的,选择器460在第2字节处分开选择的字节,所以从旋转器输出数据471“LMFGHIJK”中选择“FGHIJK”,从缓冲器输出数据451中选择上一次循环中的读数据的一部分“DE”,从选择器输出“DEFGHIJK”。此数据保存到内部存储器440。保存生成写数据所需的数据之后,从内部存储器440读取数据,通过总线接口B430传到传输目的设备。
通过重复执行该操作进行写数据的生成,即使传输源地址和传输目的地址的字节对齐不同时,也能够在每次循环中输出写数据,可以高速进行DMA传输。
另外,传输源地址和传输目的地址的字节对齐相同时,旋转器470对输入数据不进行旋转就直接输出,选择器460总是从旋转器输出数据471中选择输入数据,由于未使用缓冲器450,所以可以通过控制时钟供给来抑制功率消耗。
另外,在本实施方式的DMA传输控制装置中,能够进行发布大小调整,关于传输源地址和传输目的地址的字节对齐不同的情况,以及进行不连续区域的数据传输的情况,都与实施方式1中的说明相同。
另外,在本实施方式的DMA传输控制装置中,能够以小于传输总线宽度的数据宽度进行读传输,其操作与实施方式2中的说明相同。
另外,在本实施方式的DMA传输控制装置中,能够实现对包含不连续区域大小的数据进行有效传输的方法,其操作与实施方式3中的说明相同。
《实施方式5》
图16所示为本发明的实施方式5中的DMA传输控制装置500的简略结构块图。在本实施方式的DMA传输控制装置500中,传输源设备或者连接有传输源设备的总线,与总线接口A520连接,传输目的设备或者连接有传输目的设备的总线,与总线接口B530连接。
DMA传输控制装置500具有:上述的总线接口A520;旋转器570,接收从总线接口A520输出的读数据521;内部存储器540,接收从旋转器570输出的旋转器输出数据571;缓冲器550,接收从内部存储器540输出的内部存储器输出数据541;选择器560,接收内部存储器输出数据541和从缓冲器550输出的缓冲器输出数据551;总线接口B530,接收从选择器560输出的选择器输出数据561。
DMA传输控制装置500还具有设置寄存器510,该设置寄存器510中设置有传输大小511、传输源开始地址512、传输目的开始地址513、传输源连续区域大小514、传输目的连续区域大小515、传输源数据宽度516、传输目的数据宽度517。
DMA传输控制装置500还具有读大小确定电路580和写大小确定电路590。
其中,对于保存有传输所需信息的设置寄存器,并不局限于此,传输信息可以通过例如从外部端子接收传输信息等不同方法得到。
下面,对本实施方式的DMA传输控制装置的数据传输的流程进行说明。通过总线接口A520从传输源设备读取的读数据521输入到旋转器570。旋转器570根据从传输目的开始地址513的设置值减去传输源开始地址512的设置值得到的地址差值确定旋转级数,并旋转输入数据。为了进行突发传输,旋转器输出数据571暂时存入内部存储器540。适当大小的数据累积到内部存储器540之后,从内部存储器540读取数据。内部存储器输出数据541输入到选择器560的同时,也输入到缓冲器550。缓冲器550临时储存数据后,输出给选择器560。选择器560根据前述的地址差值,对于每个字节,从所接收到的两个数据中的任一个中选择。选择器的输出数据通过总线接口B530传到传输目的设备。
用图17说明传输源地址和传输目的地址的字节对齐不同时的传输操作例子。传输总线宽度为8字节。传输源开始地址的低3位为3,传输目的开始地址的低3位为5,这样,传输源和传输目的的地址都未和传输总线宽度对齐,而且从起始数据的中间字节开始的数据有效。
首先,总线接口A520输出的起始读数据“xxxABCDE”,输入到旋转器570。旋转器570根据从传输目的开始地址513的设置值的低3位减去传输源开始地址512的设置值的低3位得到的差值进行旋转。此例中,差值为2,所以将输入数据向右方向旋转两级,输出“DExxxABC”。旋转器输出数据571保存到内部存储器540。在下一次循环中,当下一个读数据“FGHIJKLM”输出后,与上一次同样地在旋转器570旋转该读数据,输出“LMFGHIJK”,并保存到内部存储器540。
保存生成写数据所需的所有数据之后,从内部存储器540读取数据,并输入到缓冲器550和选择器560。选择器560根据前述的地址差值选择每个字节。此例中,从缓冲器输出数据551中选择8字节中的前2个字节,剩余的字节从内部存储器输出数据541中选择。即第0字节到第1字节从缓冲器输出数据551中选择,第2字节到第7字节从内部存储器输出数据541中选择,所以从起始读数据中仅选择生成起始写数据所需的“xxxABC”,而未选择“DE”。选择器输出数据561通过总线接口B530传到传输目的设备。输入到缓冲器550的内部存储器输出数据541被临时保存。
在下一次循环中,当总线接口A520输出下一个读数据“FGHIJKLM”时,与上一次同样地在旋转器570旋转该读数据,输出“LMFGHIJK”。此数据输入到内部存储器540。内部存储器输出数据541输入到缓冲器550和选择器560。与上一次同样地,选择器560在第2字节处分开选择的字节,所以从内部存储器输出数据541“LMFGHIJK”中选择“FGHIJK”,从缓冲器输出数据551中选择上一次循环的读数据的一部分“DE”,从选择器输出“DEFGHIJK”。此数据通过总线接口B530传到传输目的设备。
通过重复执行该操作进行写数据的生成,即使传输源地址和传输目的地址的字节对齐不同时,也能够在每次循环中输出写数据,能够高速进行DMA传输。
另外,传输源地址和传输目的地址的字节对齐相同时,旋转器570对输入数据不进行旋转就直接输出,选择器560总是从内部存储器输出数据541中选择输入数据,由于未使用缓冲器550,所以可以通过控制时钟供给来抑制功率消耗。
另外,在本实施方式的DMA传输控制装置中,能够进行发布大小调整,关于传输源地址和传输目的地址的字节对齐不同的情况,以及进行不连续区域的数据传输的情况,都与实施方式1中的说明相同。
《实施方式6》
图18所示为本发明的实施方式6中的DMA传输控制装置600的简略结构块图。在本实施方式的DMA传输控制装置600中,连接有传输源设备的总线,与总线接口A620连接,连接有传输目的设备的总线,与总线接口B630连接。
DMA传输控制装置600具有:上述的总线接口A620;缓冲器650,接收从总线接口A620输出的读数据621;选择器660,接收读数据621和从缓冲器650输出的缓冲器输出数据651;内部存储器640,接收从选择器660输出的选择器输出数据661;旋转器670,接收从内部存储器640输出的内部存储器输出数据641;总线接口B630,接收从旋转器670输出的旋转器输出数据671。
DMA传输控制装置600还具有设置寄存器610,该设置寄存器610中设置有传输大小611、传输源开始地址612、传输目的开始地址613、传输源连续区域大小614、传输目的连续区域大小615、传输源数据宽度616、传输目的数据宽度617。
DMA传输控制装置600还具有读大小确定电路680和写大小确定电路690。
其中,对于保存有传输所需信息的设置寄存器,并不局限于此,传输信息可以通过例如从外部端子接收传输信息等不同方法得到。
下面,对本实施方式的DMA传输控制装置的数据传输的流程进行说明。通过总线接口A620从传输源设备读取的读数据621,输入到选择器660的同时,也输入到缓冲器650。缓冲器650临时储存数据后,输出给选择器660。选择器660根据从传输目的开始地址613的设置值减去传输源开始地址612的设置值得到的差值,对于每个字节,从两个数据中的任一个中选择。为了进行突发传输,选择器的输出数据暂时存入内部存储器640。适当大小的数据累积到内部存储器640后,从内部存储器640进行数据读取。内部存储器的输出数据输入到旋转器670。旋转器670根据前述的地址差值确定旋转级数,相应地对输入数据进行旋转。输出数据通过总线接口B630传到传输目的设备。
用图19说明传输源地址和传输目的地址的字节对齐不同时的传输操作例子。传输总线宽度为8字节。传输源开始地址的低3位为3,传输目的开始地址的低3位为5,这样,传输源和传输目的的地址都未和传输总线宽度对齐,而且从起始数据的中间字节开始的数据有效。
首先,总线接口A620输出起始的读数据“xxxABCDE”时,该读数据输入到缓冲器650和选择器660。选择器660根据从传输目的开始地址613的设置值的低3位减去传输源开始地址612的设置值的低3位得到的差值,选择每个字节。此例中,差值为2,所以从缓冲器输出数据651中选择8字节中的后2个字节,剩余的字节从读数据621中选择。即,第0字节到第5字节从读数据621中选择,第6字节到第7字节从缓冲器输出数据651中选择,所以从起始读数据中仅选择生成起始写数据所需的“xxxABC”,而未选择“DE”。选择器输出数据661输入到内部存储器640。输入到缓冲器650的读数据621被临时保存。
在下一次循环中,由总线接口A620输出的下一个读数据“FGHIJKLM”,与上一次同样地输入到缓冲器650和选择器660。与上一次同样的,选择器660在第6字节处分开选择的字节,所以从读数据621“FGHIJKLM”中选择“FGHIJK”,从缓冲器输出数据651中选择上一次循环中的读数据的一部分“DE”,从选择器输出“FGHIJKDE”。该选择器输出数据661输入到内部存储器640。
适当大小的数据累积到内部存储器640之后,从内部存储器640进行数据读取。内部存储器输出数据641输入到旋转器670,旋转器670根据前述的地址差值将输入数据向右方向旋转。即,将输入的起始读数据“xxxABCxx”向右方向旋转两级后得到“xxxxxABC”,并将其输出。
在下一次循环中,下一个内部存储器输出数据“FGHIJKDE”与上一次同样地在旋转器670被旋转,成为“DEFGHIJK”后,作为旋转器输出数据671输出,并发送到总线接口B630。
通过重复执行该操作进行写数据的生成,即使传输源地址和传输目的地址的字节对齐不同时,也能够在每次循环中获取读数据。由于适当的写数据按照传输源地址保存在内部存储器,所以能够高速地进行DMA传输。
另外,传输源地址和传输目的地址的字节对齐相同时,选择器660总是从读数据621中选择输入数据,旋转器670对内部存储器输出数据641不进行旋转就直接输出。由于未使用缓冲器650,所以可以通过控制时钟供给来抑制功率消耗。
另外,在本实施方式的DMA传输控制装置中,能够进行发布大小调整,关于传输源地址和传输目的地址的字节对齐不同的情况,以及进行不连续区域的数据传输的情况,都与实施方式1中的说明相同。
另外,在本实施方式的DMA传输控制装置中,能够以小于传输总线宽度的数据宽度进行读传输,其操作与实施方式2中的说明相同。
《实施方式7》
图20所示为本发明的实施方式7中的DMA传输控制装置700的简略块图。在本实施方式的DMA传输控制装置700中,传输源设备或者连接有传输源设备的总线,与总线接口A720连接,传输目的设备或者连接有传输目的设备的总线,与总线接口B730连接。
DMA传输控制装置700具有:上述的总线接口A720;缓冲器B752,接收从总线接口A720输出的读数据721;选择器B762,接收读数据721和从缓冲器B752输出的缓冲器B输出数据753;内部存储器740,接收从选择器B输出的选择器输出数据763;缓冲器A750,接收从内部存储器740输出的内部存储器输出数据741;选择器A760,接收内部存储器输出数据741和缓冲器A输出数据751;旋转器770,接收从选择器A760输出的选择器A输出数据761、总线接口B730,接收从旋转器770输出的旋转器输出数据771。换句话说,图20的DMA传输控制装置700,在与本发明的实施方式1中的DMA传输控制装置100(参考图1)同样的缓冲器A750及选择器A760的基础上,还具有缓冲器B752及选择器B762作为第2缓冲器和第2选择器。
DMA传输控制装置700还具有设置寄存器710,该设置寄存器710中设置有传输大小711、传输源开始地址712、传输目的开始地址713、传输源连续区域大小714、传输目的连续区域大小715、传输源数据宽度716、传输目的数据宽度717。
DMA传输控制装置700还具有读大小确定电路780和写大小确定电路790。
其中,对于保存有传输所需信息的设置寄存器,并不局限于此,传输信息可以通过例如从外部端子接收传输信息等不同方法得到。
另外,在本实施方式的DMA传输控制装置中,能够实现传输源开始地址和传输目的开始地址不同时的数据传输。其操作,除了选择器B762总是从读数据721中选择输入数据以外,其他与实施方式1的说明相同。
另外,在本实施方式的DMA传输控制装置中,通过使用缓冲器B752和选择器B762,能够以小于传输总线宽度的数据宽度进行读传输。这种情况下的读操作,与实施方式2的说明相同。
另外,在本发明的实施方式3中的DMA传输控制装置300(参考图11)中,也可以在内部存储器340的前面或者后面增加第2缓冲器及第2选择器。同样地,在本发明的实施方式5中的DMA传输控制装置500(参考图16)中,也可以在旋转器570的前面或者后面增加第2缓冲器及第2选择器。
以上,说明了本发明的实施方式1~7。最后,说明实现上述实施方式1、2、7中的选择器功能和旋转器功能的电路结构。
图21所示为选择器/旋转器电路800的简略结构块图。图21的选择器/旋转器电路800接收缓冲器输入数据801、缓冲器输出数据802和旋转级数控制信号803,包括选择器804,输出选择器/旋转器输出数据805。
输入到选择器804的数据是,以字节为单位从缓冲器输入数据801和缓冲器输出数据802中的任一个中选择字节并连接所选择的字节而生成的数据,输入数据宽度与传输总线宽度相同。从这些数据中,根据旋转级数控制信号803选择一个数据,作为选择器/旋转器输出数据805输出。例如,旋转级数控制信号803为3时,将缓冲器输入数据801的第0字节到第4字节和缓冲器输出数据802的第5字节到第7字节连接在一起而生成的8字节的数据,作为选择器/旋转器输出数据805输出。
如上述的实施方式1、2、7,当选择器的输出与旋转器的输入连接在一起时,可以使用图21的选择器/旋转器电路作为实现选择器功能和旋转器功能的电路。通过使用此电路,可以用小规模电路实现需要的选择功能和旋转功能。
本发明的DMA传输控制装置,即使将传输源地址和传输目的地址设置为字节对齐不同的地址,仅通过增加小规模电路,就可以在不降低传输速度的情况下进行DMA传输,所以不用关心由于字节对齐不同而造成的性能下降,可以灵活地设置地址等。在包含DMA传输控制功能的总线适配器中,在如具有不同字节对齐等不同协议总线之间进行数据传输时也有效。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (17)

1.一种直接存储器存取DMA传输控制装置,用于从传输源向传输目的进行DMA传输,其特征在于,该装置包括:
内部存储器,用于临时保存数据;
缓冲器,用于临时保存数据;
选择器,用于对于每个字节,从所述缓冲器的输入数据或者所述缓冲器的输出数据中的任一个中选择;
旋转器,用于旋转数据;
其中,所述内部存储器、具有所述缓冲器的所述选择器、以及所述旋转器以任意顺序连接。
2.根据权利要求1所述的DMA传输控制装置,其特征在于,
所述内部存储器接收来自传输源的读数据;
所述缓冲器接收来自所述内部存储器的数据;
所述选择器接收来自所述内部存储器的数据和来自所述缓冲器的数据;
所述旋转器接收所述选择器中选择的数据。
3.根据权利要求1所述的DMA传输控制装置,其特征在于,
所述缓冲器接收来自传输源的读数据;
所述选择器接收来自所述传输源的读数据和来自所述缓冲器的数据;
所述旋转器接收所述选择器中选择的数据;
所述内部存储器接收来自所述旋转器的数据。
4.根据权利要求1所述的DMA传输控制装置,其特征在于,
所述内部存储器接收来自传输源的读数据;
所述旋转器接收来自所述内部存储器的数据;
所述缓冲器接收来自所述旋转器的数据;
所述选择器接收来自所述旋转器的数据和来自所述缓冲器的数据。
5.根据权利要求1所述的DMA传输控制装置,其特征在于,
所述旋转器接收来自传输源的读数据;
所述缓冲器接收来自所述旋转器的数据;
所述选择器接收来自所述旋转器的数据和来自所述缓冲器的数据;
所述内部存储器接收所述选择器中选择的数据。
6.根据权利要求1所述的DMA传输控制装置,其特征在于,
所述旋转器接收来自传输源的读数据;
所述内部存储器接收来自所述旋转器的数据;
所述缓冲器接收来自所述内部存储器的数据;
所述选择器接收来自所述内部存储器的数据和来自所述缓冲器的数据。
7.根据权利要求1所述的DMA传输控制装置,其特征在于,
所述缓冲器接收来自传输源的读数据;
所述选择器接收来自所述传输源的读数据和来自所述缓冲器的数据;
所述内部存储器接收所述选择器中选择的数据;
所述旋转器接收来自所述内部存储器的数据。
8.根据权利要求1所述的DMA传输控制装置,其特征在于,
所述旋转器利用传输源地址和传输目的地址之间的差值确定旋转级数。
9.根据权利要求1所述的DMA传输控制装置,其特征在于,
所述选择器利用传输源地址和传输目的地址之间的差值确定选择。
10.根据权利要求1所述的DMA传输控制装置,其特征在于,
该装置进一步包括:读大小确定电路和写大小确定电路之中的至少一个;
其中,读大小确定电路用于确定对传输源的读传输大小;写大小确定电路用于确定对传输目的的写传输大小。
11.根据权利要求10所述的DMA传输控制装置,其特征在于,
所述读大小确定电路及所述写大小确定电路,利用传输源地址和传输目的地址之中的至少一个,确定读大小或者确定写大小。
12.根据权利要求10所述的DMA传输控制装置,其特征在于,
所述读大小确定电路及所述写大小确定电路,利用传输源读取地址中的连续区域大小和传输目的写入地址中的连续区域大小,确定读大小或者确定写大小。
13.根据权利要求4或5所述的DMA传输控制装置,其特征在于,
所述旋转器利用传输源读取地址中的连续区域大小和传输目的写入地址中的连续区域大小,确定旋转级数。
14.根据权利要求4或5所述的DMA传输控制装置,其特征在于,
所述选择器利用传输源读取地址中的连续区域大小和传输目的写入地址中的连续区域大小,确定选择。
15.根据权利要求2、4、6中任一项所述的DMA传输控制装置,其特征在于,该装置进一步包括:
第2缓冲器,用于临时保存数据;
第2选择器,用于对于每个字节,从所述第2缓冲器的接收数据或者所述第2缓冲器的输出数据中的任一个中选择;
其中,将所述第2选择器的输出数据,输入到所述内部存储器或者所述旋转器。
16.根据权利要求2或3所述的DMA传输控制装置,其特征在于,
所述选择器的选择功能及所述旋转器的旋转功能通过选择器/旋转器电路实现,其中,所述选择器/旋转器电路从以字节为单位任意组合两个输入数据而生成的数据中,选择一个作为输出。
17.根据权利要求1所述的DMA传输控制装置,其特征在于,
当传输源地址和传输目的地址的对齐相同时,不使用所述缓冲器。
CNA2007101020089A 2006-07-31 2007-04-26 直接存储器存取传输控制装置 Pending CN101118524A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006207744A JP2008033721A (ja) 2006-07-31 2006-07-31 Dma転送制御装置
JP2006207744 2006-07-31

Publications (1)

Publication Number Publication Date
CN101118524A true CN101118524A (zh) 2008-02-06

Family

ID=38987721

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2007101020089A Pending CN101118524A (zh) 2006-07-31 2007-04-26 直接存储器存取传输控制装置

Country Status (3)

Country Link
US (1) US7698475B2 (zh)
JP (1) JP2008033721A (zh)
CN (1) CN101118524A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103677663A (zh) * 2012-08-30 2014-03-26 想象力科技有限公司 用于数字信号处理的存储器地址生成
CN111159075A (zh) * 2019-12-31 2020-05-15 成都海光微电子技术有限公司 数据传输方法和数据传输装置

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009205521A (ja) * 2008-02-28 2009-09-10 Fujitsu Ltd データ転送装置
US9128699B2 (en) * 2008-12-22 2015-09-08 Intel Corporation Method and system for queuing transfers of multiple non-contiguous address ranges with a single command
US8205025B2 (en) * 2009-08-12 2012-06-19 Globalspec, Inc. Efficient buffered reading with a plug-in for input buffer size determination
JP5803000B2 (ja) * 2011-03-17 2015-11-04 株式会社Pfu Dma装置、情報処理装置、及びデータ転送方法
US10825526B1 (en) * 2019-06-24 2020-11-03 Sandisk Technologies Llc Non-volatile memory with reduced data cache buffer

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6330631B1 (en) * 1999-02-03 2001-12-11 Sun Microsystems, Inc. Data alignment between buses
US6363438B1 (en) * 1999-02-03 2002-03-26 Sun Microsystems, Inc. Method of controlling DMA command buffer for holding sequence of DMA commands with head and tail pointers
JP2003067321A (ja) * 2001-08-28 2003-03-07 Hitachi Ltd データ転送装置及び該データ転送装置内に具備されるアライナ

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103677663A (zh) * 2012-08-30 2014-03-26 想象力科技有限公司 用于数字信号处理的存储器地址生成
CN103677663B (zh) * 2012-08-30 2016-09-28 想象力科技有限公司 用于数字信号处理的存储器地址生成
US9529747B2 (en) 2012-08-30 2016-12-27 Imagination Technologies Limited Memory address generation for digital signal processing
US9684592B2 (en) 2012-08-30 2017-06-20 Imagination Technologies Limited Memory address generation for digital signal processing
CN111159075A (zh) * 2019-12-31 2020-05-15 成都海光微电子技术有限公司 数据传输方法和数据传输装置

Also Published As

Publication number Publication date
US20080028108A1 (en) 2008-01-31
JP2008033721A (ja) 2008-02-14
US7698475B2 (en) 2010-04-13

Similar Documents

Publication Publication Date Title
CN101118524A (zh) 直接存储器存取传输控制装置
CN100440184C (zh) 一种能同时进行读写操作的dma控制器及传输方法
US8400924B2 (en) Credit management when resource granularity is larger than credit granularity
CN101636721B (zh) 用于处理未知长度传输的dmac
US7930462B2 (en) Interface controller that has flexible configurability and low cost
JP5107016B2 (ja) トークンバケットを用いたバッファ装置及びプログラム
US6901496B1 (en) Line rate buffer using single ported memories for variable length packets
CN101710309B (zh) 一种基于海量数据传输的dma控制器
CN104021097A (zh) 数据传输方法、装置及直接存储器存取
US6513105B1 (en) FIFO system with variable-width interface to host processor
CN104461966B (zh) 一种基于Nand Flash芯片的数据缓存传输方法及其控制器
US8284792B2 (en) Buffer minimization in interface controller
CN102932265B (zh) 数据缓存管理装置和方法
CN101576865B (zh) 保证存储器读交易带宽的方法和装置
CN103488597A (zh) 一种先进先出缓存器及其读写数据的方法
CN102364455B (zh) 一种级联多核cpu间vcpu均衡分担控制方法及其装置
CN104394100A (zh) 信用分配方法和交换机
CN101276315A (zh) 动态调整传输数据宽度的直接存储器存取控制器与方法
CN114461553B (zh) 数据处理系统、电子装置、电子设备及数据处理方法
CN115586974B (zh) 内存控制器、系统、装置及电子设备
JPS60201453A (ja) 記憶装置アクセス制御方式
RU2473142C1 (ru) Съемный носитель информации с повышенной скоростью доступа
CN100587679C (zh) 数据处理方法及系统
CN116382595A (zh) 一种保序装置、方法和芯片
JP2689490B2 (ja) 受信バッファの制御装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20080206