CN101030182A - 执行dma数据传输的设备和方法 - Google Patents
执行dma数据传输的设备和方法 Download PDFInfo
- Publication number
- CN101030182A CN101030182A CNA2006100918061A CN200610091806A CN101030182A CN 101030182 A CN101030182 A CN 101030182A CN A2006100918061 A CNA2006100918061 A CN A2006100918061A CN 200610091806 A CN200610091806 A CN 200610091806A CN 101030182 A CN101030182 A CN 101030182A
- Authority
- CN
- China
- Prior art keywords
- data
- dma
- transmission
- data transmission
- memory
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
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数据传输的设备和方法,该设备包括:存储器;通信控制器;DMA控制器,其具有多个DMA引擎,每个DMA引擎以DMA方式将数据从该存储器传输至该通信控制器;以及DMA控制单元。该DMA控制单元确定传输数据的分割尺寸以使所述DMA引擎能够传输所述数据,向该DMA控制器发出DMA数据传输指示,并且控制DMA数据传输。该DMA控制单元将用于确定数据传输终止的确定信息发送至该通信控制器。该通信控制器基于从该DMA控制单元发送的确定信息,确定数据传输的终止。
Description
相关申请的参考
本申请要求基于2006年2月28日申请的日本申请No.2006-051872的优先权,在此通过参考的方式援引其公开的内容。
技术领域
本发明一般地涉及一种执行DMA数据传输的设备和方法,更具体地涉及一种在执行多个DMA数据传输时传输目的地装置确定DMA数据传输终止的执行DMA数据传输的设备和方法。
背景技术
DMA(直接存储器存取)能够不受CPU的任何干涉而传输数据。因此,即使在存储器与装置之间进行数据传输时,CPU也能够同时进行其它处理,由此增加系统的吞吐量。近年来,在数据通信领域如10G比特以太网(IBM公司的商标)中,存储器的带宽(存储器的数据传输能力)增大,并且该装置的带宽也增大,因此也期望DMA具有更高的性能。
例如公知的是,通过使用传输次数(传输的次数)参数在多个存储器之间连续执行DMA数据传输(以DMA方式进行的数据传输),实现在多个存储器之间的高速数据传输(参见日本特开No.4-236649)。
例如还公知通过减少保持地址的一组寄存器能够减少DMA控制器的能耗(参见日本特开No.2003-316722)。
在DMA中能够传输大尺寸数据。在这种情况下,CPU必须将这种数据分割成DMA控制器能够传输的数据尺寸的数据块,并且将数据传输指令连续发送给DMA控制器。当通过虚拟地址映射数据传输源时,必须分割数据以防止一段数据块跨越虚拟地址页的边界。
CPU本身在使用多线程的处理中通过分时操作还执行多个发送DMA指令的处理。结果,CPU向DMA控制器发送多个(或多次)对于不同传输数据的DMA请求。
如上所述,DMA控制器增加DMA引擎的数量,增加待同时执行的数据传输的次数(数据传输的多重性(multiplicity)),并且无误地管理传输。否则,无法进行高性能处理。发明人研究了图8至图11中所示的DMA数据传输设备200。下面简要说明DMA数据传输设备200的DMA数据传输。
图8示出作为本发明背景技术的DMA数据传输设备200的结构。图9示出图8所示的DMA数据传输设备的DMA数据传输的操作顺序。
在下文中,着重说明一段传输数据A。在有多个传输数据时,对于所述多个传输数据同时执行下文说明的DMA数据传输。在下文的描述中,由DMA引擎221分割并传输的数据称为数据块。A1、A2、……、Am(在上下文的说明中1到m是正整数)是数据块。序号越小,数据块越接近传输数据的头部。在图9中,省略从存储器控制器230到每个DMA引擎221的数据读取。
CPU 210向还未分配进行数据传输的DMA引擎221发送用于数据块A1的传输指令(DMA数据传输请求)(A1传输指令)(步骤S100)。收到用于数据块A1的传输指令的DMA引擎221将数据块A1传输至传输目的地装置240(步骤S101)。之后,与在步骤S100中一样,CPU 210发出用于数据块A2的传输指令(A2传输指令)(步骤S102)。一旦收到传输指令,与在步骤S101中一样,DMA引擎221传输数据块A2(步骤S103)。然后,传输数据块A1或者A2,并且每次DMA引擎221都向发送检查处理单元222发出传输终止通知(A1传输终止通知或者A2传输终止通知)(步骤S104和S105)。
如上所述,执行数据块传输处理。CPU 210如在步骤S100中一样,发出用于最后一个数据块Am的前一数据块Am-1的传输指令(Am-1传输指令)(步骤S106),并且传输数据块Am-1(步骤S107)。再者,CPU 210如在步骤S100中一样,发出用于最后一个数据块Am的传输指令(Am传输指令)(步骤S108),并且传输数据块Am(步骤S109)。此时,在步骤S108中,CPU 210通知传输数据Am的DMA引擎221:数据Am是最后一个数据块。
例如,由于最后一个数据块Am的尺寸小于前一数据块Am-1的尺寸,所以数据块Am的传输能够比数据块Am-1的传输更快终止,如图9所示。因此,传输数据块Am的DMA引擎221在数据块Am-1传输终止之前终止数据块Am的传输,并且向发送检查处理单元222发出最后数据块传输终止通知(步骤S110)。之后,传输数据块Am-1的DMA引擎221终止数据块Am-1的传输,并且向发送检查处理单元222发出数据块Am-1传输终止通知(步骤S111)。
发送检查处理单元222接收来自传输数据块Am的DMA引擎221的最后数据块传输终止通知,通过接收数据块Am-1传输终止通知来确认已传输所有的数据块,然后向传输目的地装置240发出传输数据A的所有数据传输终止通知(步骤S112)。传输目的地装置240具有用于存储接收到的数据块A1至Am的数据缓冲器241。一旦从发送检查处理单元222接收到所有数据传输终止通知,则传输目的地装置240确定已完成传输数据A的传输,并且执行其它处理。
为了传输上述DMA数据,发送检查处理单元222必须具有DMA传输管理表224和DMA传输控制单元223,如图10所示。DMA传输管理表224具有传输数据数量×DMA引擎数量的矩阵形式的管理区域,并且具有用于每段传输数据的最后数据块传输标记,如图11所示。在每个管理区域矩阵中,记录状态“未分配”或“传输中”。当DMA传输控制单元223接收到来自传输最后一个数据块的DMA引擎221的最后数据块传输终止通知时,设定最后数据块传输标记。
在发送检查处理单元222中,DMA传输控制单元223更新DMA传输管理表224。也就是说,当来自CPU 210的数据传输指令分配给与传输相关的DMA引擎221时,DMA传输管理表224中相应矩阵部分的状态从“未分配”变为“传输中”。当释放已终止数据块传输的DMA引擎221时,DMA传输管理表224中相应矩阵部分的状态从“传输中”变为“未分配”。当从传输最后一个数据块的DMA引擎221接收到最后数据块传输终止通知时,DMA传输管理表224的相应传输数据的最后数据块传输标记变为“1”。
DMA传输控制单元223检查DMA传输管理表224的每个传输数据的最后数据块传输标记是否为“1”。当用于传输数据的状态处于“传输中(或传输的过程中)”的DMA引擎221都不具有最后数据块传输标记“1”时,DMA传输控制单元223向传输目的地装置240发出相应传输数据的所有数据传输终止通知。
发明人进一步研究图8至图11中所示的DMA数据传输设备,设法提高DMA控制器220的性能,并且了解到发送检查处理单元222出现的下列问题。
与传输有关的所有DMA引擎221必须检查是否完成向传输目的地装置240的数据块传输。因此,当增强DMA引擎221的多重性(增加DMA引擎221的数量)时,在DMA传输管理表224中增加DMA引擎数量项,即增加列数。
当同时处理大量传输数据时,在DMA传输管理表224中增加传输数据的数量项,即增加行数。这是因为当存在大量传输数据且对其进行动态管理时,在使用传输数据的所有管理项的情况下,即使某些DMA引擎221的状态是“未分配”,也不能立刻执行数据传输处理。
另外,当DMA引擎的数量以及能够同时处理的传输数据的数量增加时,相关的处理也增加。也就是说,根据DMA引擎数量×传输数据数量的规模,用于将已终止数据传输的DMA引擎221分配给下一次传输的资源获取/释放处理等成比例地增加。因此,所得到的电路变复杂。
此外,为了提高DMA的性能,必须增加DMA引擎的数量和传输数据的数量,同时在两者之间取得适当的平衡。但是,当通过增加DMA引擎的数量以及增加传输数据的数量来提高DMA数据传输的性能时,DMA数据传输电路的规模变大,并且如上所述,该电路变复杂。
发明内容
本发明的一个目的是提供一种执行DMA数据传输的设备,其在不大幅增加硬件规模的情况下增加DMA引擎的数量和传输数据的数量。
本发明的另一目的是提供一种执行DMA数据传输的方法,其在不大幅增加硬件规模的情况下增加DMA引擎的数量和传输数据的数量。
本发明的执行DMA数据传输的设备包括:作为数据传输源的存储器;作为数据传输目的地的传输目的地装置;DMA控制器,其具有多个DMA引擎,每个DMA引擎以DMA方式将数据从该存储器传输至该传输目的地装置;以及DMA控制单元,其用于指示该DMA控制器的多个DMA引擎进行DMA数据传输。该DMA控制单元将用于确定待传输数据的数据传输终止的确定信息发送至该传输目的地装置,并且该传输目的地装置基于从该DMA控制单元发送的确定信息,确定待传输数据的数据传输终止。
优选地,在本发明的设备中,在完成所有数据传输次数、即完成传输所述待传输数据所需的传输次数之后,该DMA控制单元发送基于完成结果所生成的确定信息至该传输目的地装置。
优选地,在本发明的设备中,该确定信息包括所有数据的传输次数,该所有数据的传输次数作为传输所述待传输数据所需的传输次数。并且,该传输目的地装置包括:数据传输次数计数器,其计算待传输数据的已完成的数据传输的次数;以及所有数据传输次数保存单元,其保存所有数据的传输次数;当该数据传输次数计数器的数值达到该所有数据的传输次数时,该传输目的地装置确定待传输数据的数据传输已经完成。
优选地,在本发明的设备中,该传输目的地装置包括数据传输次数计数器,其计算待传输数据的已完成的数据传输的次数。并且,该确定信息包括数据传输次数差值,该数据传输次数差值通过从计数器MAX值中减去所有数据的传输次数得到,该所有数据的传输次数是待传输数据所必需的传输次数,该计数器MAX值是该数据传输次数计数器可计算的最大值。并且,该传输目的地装置将该数据传输次数差值加在该传输次数计数器的数值上,并在该数据传输次数计数器的数值达到该计数器MAX值时,确定待传输数据的数据传输终止。
优选地,在本发明的设备中,该存储器包括:第一存储器,其存储由用户生成的数据;以及第二存储器,其存储内容预先确定的数据,并且该第二存储器的位置比该第一存储器更接近该DMA控制单元。
本发明的执行DMA数据传输的方法是一种由执行DMA数据传输的设备来实施的执行DMA数据传输的方法,该设备包括:DMA控制器,其具有多个DMA引擎,每个DMA引擎将数据从存储器传输至传输目的地装置;以及DMA控制单元,其用于指示该DMA控制器的多个DMA引擎进行DMA数据传输。该执行DMA数据传输的方法包括:在该DMA控制单元中,确定待传输数据的分割尺寸以使所述多个DMA引擎能够传输所述数据,并且指示该DMA控制器的多个DMA引擎进行DMA数据传输;在该DMA控制器的多个DMA引擎中,根据该DMA控制单元的指令,分割所述待传输数据,并将所述数据传输至该传输目的地装置;在该DMA控制单元中,将用于确定待传输数据的数据传输终止的确定信息发送至该传输目的地装置;以及在该传输目的地装置中,基于从该DMA控制单元发送的确定信息,确定待传输数据的数据传输终止。
在根据本发明的执行DMA数据传输的设备和方法中,传输目的地装置基于从DMA控制单元发送的确定信息确定数据传输的终止。也就是说,根据本发明,传输目的地装置具有确定数据传输终止的功能。由此,DMA控制器无需设置用于确定数据传输终止的电路(例如,图8和图10中所示的发送检查处理单元222)。因此,当DMA控制器增强DMA引擎的多重性以提高DMA数据传输的性能时,只需添加DMA引擎,而无需添加其它硬件。此外,虽然传输数据的数量增多,但是只需在传输目的地装置中添加确定数据传输终止的功能,而无需添加其它硬件。因此,例如无需准备DMA引擎数量×传输数据数量的DMA传输管理表,从而成功地使电路减到最小。
根据本发明执行DMA数据传输的设备的实施例,DMA控制单元发送基于所有数据的传输次数所生成的确定信息至传输目的地装置。由此,传输目的地装置在数据传输终止之前收到确定信息,并且能够正确地确定数据传输的终止。
根据本发明执行DMA数据传输的设备的实施例,由于确定信息包括所有数据的传输次数,因此能够仅通过计算数据传输的次数来确定数据传输终止。由此,传输目的地装置无需特别复杂的电路或者处理就能够容易地确定数据传输的终止。
根据本发明执行DMA数据传输的设备的实施例,由于确定信息包括数据传输次数差值,因此能够在数据传输次数计数器的数值达到计数器MAX值时确定数据传输终止。由此,由于无需保存所有数据的传输次数,因此能够简化传输目的地装置的电路结构。
此外,根据本发明执行DMA数据传输的设备的实施例,第二存储器设置在比第一存储器更接近DMA控制单元的位置。由此,能够减少诸如内容预先确定的头部信息之类的数据的传输时间。
附图说明
图1示出根据本发明的信息处理装置的结构实例。
图2示出根据本发明实施例的通信控制卡的结构实例。
图3是根据本发明的DMA数据传输实例的示意图。
图4是根据本发明的DMA数据传输的示意图。
图5示出根据本发明的DMA数据传输的操作顺序的实例。
图6是根据本发明的DMA数据传输另一实例的示意图。
图7示出根据本发明的DMA数据传输的操作顺序的另一实例。
图8示出作为本发明背景技术的DMA数据传输设备。
图9示出由图8中所示的DMA数据传输设备执行的DMA数据传输的操作顺序。
图10示出图8中所示的DMA数据传输设备中设置的发送检查处理单元的结构实例。
图11示出图8中所示的DMA数据传输设备中设置的DMA传输管理表的实例。
具体实施方式
图1和图2示出根据本发明实施例的执行DMA数据传输的设备的结构示图,并且示出根据本发明实施例的执行DMA数据传输的设备的结构。更具体地,图1示出根据本发明的信息处理装置的结构实例,图2示出根据本发明的通信控制卡的结构实例。
在图1中,信息处理装置1例如是一种自身独立运行的计算机,并且该装置包括CPU(中央处理器)20、存储器30、第一主控制器40和扩展槽50。至少设置一个扩展槽50,也可以设置多个扩展槽50,图中未示出。CPU 20执行对整个信息处理装置1的控制和算术运算。存储器(第一存储器)30例如包括外部存储器,并且例如存储由用户生成的各种数据(或者大容量数据)。存储器30是DMA数据传输中的数据传输源。第一主控制器40与CPU20、存储器30和扩展槽50(以及通信控制卡10)连接,并且用于在它们之间进行通信。扩展槽50用于连接实现附加在信息处理装置1中的各种功能的装置,并且配置有各种扩展卡(或者扩充板)。
在本实例中,作为扩展卡的实例,加载具有DMA数据传输功能的通信控制卡10。通信控制卡10例如通过诸如连接线、光纤之类的通信介质4与用于信息处理装置1的外部通信交换机2连接。信息处理装置1通过交换机2与另一信息处理装置3连接。或者,如图1中的虚线所示,通信控制卡10可与另一信息处理装置3直接连接。由此,信息处理装置1通过通信控制卡(扩展卡)10与通信交换机2或者另一信息处理装置3连接,并且与它们进行通信。
在图2中,通信控制卡10具有:DMA控制单元11、DMA控制器12、内置存储器13、存储器控制器14、通信控制器15和第二主控制器16。DMA控制器12包括多个DMA引擎120。通信控制器15包括数据包生成电路150和传输终止确定单元151。
DMA控制单元11包括载入通信控制卡10中的CPU,并且控制整个通信控制卡10。一旦接收到来自信息处理装置1的CPU 20的数据传输指令,DMA控制单元11就确定待从存储器30或者内置存储器13传输的数据(下文称为传输数据)的分割尺寸,以使DMA引擎120能够传输该数据,并且指示DMA控制器12(的多个DMA引擎120)以DMA方式传输数据。预先确定DMA引擎120的可传输尺寸(最大数据长度),并且每个DMA引擎120的可传输尺寸相等。
DMA控制单元11将确定数据传输终止的确定信息发送至用于传输数据的通信控制器15。实际上,当完成每段传输数据的数据传输次数(所有数据的传输次数“m”)时,DMA控制单元11将每段传输数据的确定信息通知传输终止确定单元151。也就是说,对于多个传输数据中的每个传输数据,均发送确定信息。
DMA控制器12实际以DMA方式传输数据。因此,DMA控制器12包括多个DMA引擎120。多个DMA引擎120均根据来自DMA控制单元11的指示,分割来自信息处理装置1的存储器30或者内置存储器13的传输数据,并将分割后的传输数据的数据块传输至通信控制器15。在下面的说明中,被每个DMA引擎120分割且传输的传输数据的每个部分称为数据块。
内置存储器(第二存储器)13所存储的数据的内容是预先确定的,例如为数据包的头部信息。内置存储器13是DMA数据传输中的数据传输源。由于内置存储器13在物理上比存储器30更接近作为DMA控制单元11的CPU(和DMA控制器12),因此可将内置存储器13作为高速缓存。存储器控制器14控制内置存储器13与DMA控制器12之间的数据传输。
通信控制器15是传输目的地装置,即为DMA数据传输中的数据传输目的地。在通信控制器15中,当存在所有传输的数据块时,数据包生成电路150基于所述数据块生成数据包,并将所生成的数据包向外发送。由此,通信控制器15与通信交换机2或者其它信息处理装置3进行数据包通信。传输终止确定单元151基于从DMA控制单元11发送的确定信息,确定用于传输数据的数据传输终止。实际上,传输终止确定单元151基于从DMA控制单元11接收到的每段传输数据的确定信息,确定数据传输的终止。也就是说,确定多个传输数据中每个传输数据的数据传输终止。当传输终止确定单元151确定数据传输已终止,其通知数据包生成电路150数据传输终止。响应该通知,例如,数据包生成电路150发送数据包。
第二主控制器16与信息处理装置1的第一主控制器40进行通信。来自信息处理装置1的CPU 20的数据传输指示通过第一主控制器40和第二主控制器16发送到DMA控制单元11。从信息处理装置1的存储器30传输的数据通过第一主控制器40和第二主控制器16发送到DMA控制器12。
第二主控制器16通过扩展槽50与信息处理装置1的第一主控制器40连接。第二主控制器16经由内部总线与DMA控制单元11和DMA控制器12连接。DMA控制器12经由内部总线与存储器控制器14连接。通信控制器15经由内部总线与DMA控制单元11和DMA控制器12连接。
图3是根据本发明实施例的具有DMA数据传输功能的通信控制卡10的实际结构的实例示意图。
在本实例中,确定信息包括所有数据的传输次数“m”,其是传输数据所需的传输次数。基于此,本实例中的传输终止确定单元151包括数据传输次数计数器152和所有数据传输次数保存(holding)单元153。将数据传输次数计数器152和所有数据传输次数保存单元153设置为用于每个数据缓冲器154(也就是用于每个传输数据)。
DMA控制单元11解释来自信息处理装置1的通信命令,确定传输数据的分割尺寸以使每个DMA引擎120能够传输数据,并且向DMA控制器12发出指示以通过DMA方式传输数据。当完成所有数据的传输次数“m”时,DMA控制单元11通知通信控制器15。所有数据的传输次数“m”是传输全部传输数据所必需的传输次数。
作为传输目的地装置的通信控制器15包括数据缓冲器154,其用于存储每段传输数据的已传输数据块。数据缓冲器154是一个存储区,DMA控制器12(的DMA引擎120)可向该存储区存取每段传输数据。通信控制器15包括作为传输终止确定单元151的数据传输次数计数器152和所有数据传输次数保存单元153。数据传输次数计数器152计算传输数据的数据传输终止的次数。所有数据传输次数保存单元153保存从DMA控制单元11发送的所有数据的传输次数“m”。
数据传输次数计数器152为每段传输数据计算来自DMA控制器12的数据传输的次数(即来自DMA引擎120的传输终止通知的次数)。通信控制器15(或者数据传输次数计数器152)比较数据传输次数计数器152的数值与所存储的所有数据的传输次数“m”,在两者相等(即数据传输次数计数器的数值达到所有数据的传输次数)时确定数据传输终止,并向数据包生成电路150发送数据传输终止通知。因此,待由传输终止确定单元151确定的“数据传输终止”并不是每个DMA引擎120中的数据传输均终止,而是一段传输数据的所有数据(所有数据块)的传输终止。
下面,基于图3中所示的结构说明根据本发明实施例的DMA数据传输。下面的描述重点集中在一段传输数据A。当有多个传输数据A和B时,对多个传输数据A和B同时执行下面说明的DMA数据传输。在这种情况下,为传输数据B设置数据缓冲器154,相应地设置数据传输次数计数器152和所有数据传输次数保存单元153。
信息处理装置1的CPU 20发出数据包发送指令。该数据包发送指令通过信息处理装置1的第一主控制器40发送到通信控制卡10的第二主控制器16。DMA控制单元11接收来自第二主控制器16的数据包发送指令,并且通过第二主控制器16和第一主控制器40读取信息处理装置1的存储器30中的通信命令。然后,DMA控制单元11解释读取的通信命令,确定传输数据的分割尺寸以便DMA引擎120能够传输所述数据,并且向DMA控制器12发出数据传输指示。
根据来自DMA控制单元11的指示,DMA控制器12中的DMA引擎120均通过例如存储器控制器14读取来自内置存储器13的数据块,并将所述数据块传输至通信控制器15。例如,如图4所示,从内置存储器13读取数据块A1。由此,数据包生成电路150利用从内置存储器13传输的数据形成数据包160的头部(控制数据)。
此外,根据来自DMA控制单元11的指示,DMA引擎120均通过例如第二主控制器16读取来自信息处理装置1的存储器30的数据块,并将所述数据块传输至通信控制器15。例如,如图4所示,从存储器30读取数据块A2至Am。由此,数据包生成电路150利用从存储器30传输的数据形成数据包160的主体(实际数据)。由此,生成数据包160。
多个DMA引擎120均同时运行,并且由所述多个DMA引擎120中的每个DMA引擎传输的数据块具有不同的数据长度,如图4所示。因此,如图5中所示的数据Am-1和Am,存在这样的情况:来自DMA控制单元11的数据传输指示的顺序与数据传输终止的顺序不匹配,因为例如图4所示,数据Am-1是最长的数据块,而数据Am是其余小尺寸的数据块。
在图4中,数据块A2、A4、A5和Am-1是具有最大尺寸的数据块,而数据块A1、A3和Am具有的尺寸由于各种原因而小于最大尺寸。
当DMA控制单元11发出数据传输指示时,其通常确定传输数据的分割尺寸,以使该尺寸成为DMA引擎120能够传输的最大尺寸。但是,如图4所示,当传输数据跨越存储器30中的页边界(由虚线示出)时,数据块A3被分割成的尺寸小于DMA引擎120可传输的最大尺寸,以使数据块不跨越页边界。因此,确定所有数据的传输次数“m”的时段取决于传输数据,并且该时段是不确定的。在许多情况下,当数据传输到接近传输数据结束点时,确定所有数据的传输次数“m”。
因此,在本发明中,DMA控制单元11确定传输数据的分割尺寸,以使这种尺寸的数据能够被多个DMA引擎传输,基于该确定结果完成所有数据的传输次数“m”,并且基于该完成结果生成确定信息。在图3所示的实例中,在完成所有数据的传输次数“m”时(或者在完成之后),DMA控制单元11将所有数据的传输次数“m”作为确定信息通知给通信控制器15。
在来自DMA控制器12的数据传输次数达到所有数据的传输次数“m”时,也就是说,在数据传输次数计数器152的数值达到所有数据的传输次数“m”时,通信控制器15(或者数据传输次数计数器152)确定该传输数据的数据传输终止,并且发送数据包160。
图5示出在图3所示的实例中根据本发明的DMA数据传输的操作顺序。图5中所示的操作顺序示出用于传输数据A的DMA数据传输的实例。
在下面的说明中,A1、A2、……和Am是数据块。序号越小,数据块越接近传输数据的头部。在图5中,省略从CPU 20到DMA控制单元11的数据包发送指令以及从存储器30或者内置存储器13到DMA引擎120的数据读取。图5示出一段传输数据A的DMA数据传输,但是实际上,以DMA方式同时传输多个传输数据A、B、……。
DMA控制单元11确定传输数据A的分割尺寸以使该数据能够被DMA引擎120传输,并且向DMA控制器12发出数据传输指示(DMA数据传输请求)以将传输数据A分割成特定尺寸并传输该传输数据A。也就是说,DMA控制单元11向DMA控制器12发出用于数据块A1的传输指令(A1传输指令)(步骤S10)。在该指令中,还指定内置存储器13或者存储器30作为数据传输源,并且指定传输目的地装置例如通信控制器15作为数据传输目的地。
在DMA控制器12中,每个DMA引擎120均根据DMA控制单元11的指示以DMA方式传输数据。例如,DMA控制器12接收用于数据块A1的传输指令,并且使用还未分配数据传输的DMA引擎120传输数据块A1至通信控制器15(步骤S11)。具体地,DMA引擎120通过向存储器控制器14发出读取请求来读取数据块A1,并且将数据块A1传输至通信控制器15。通过为每个DMA引擎120设置表示其是否被分配的标记,能够检测是否对DMA引擎120分配了数据传输。
随后,如在步骤S10中,DMA控制单元11发出用于数据块A2的传输指令(A2传输指令)(步骤S12)。一旦收到用于数据块A2的传输指令,DMA控制器12就如在步骤S11中一样传输数据块A2(步骤S13)。终止数据块A1或者A2的数据传输的DMA引擎120均向通信控制器15发出传输终止通知(A1传输终止通知或者A2传输终止通知)(步骤S14和S15)。相应地,数据传输次数计数器152计算数据传输的次数。
在完成所有数据的传输次数“m”时,DMA控制单元11将所有数据的传输次数“m”通知通信控制器15(步骤S16)。据此,所有数据传输次数保存单元153保存从DMA控制单元11发送的所有数据的传输次数“m”。之后,通信控制器15比较数据传输次数计数器152的数值与所有数据的传输次数“m”。当它们匹配时,确定数据传输终止。
如上所述,执行数据块传输处理。DMA控制单元11如在步骤S10中一样发出用于数据块Am-1的传输指令(Am-1传输指令)(步骤S17)。一旦收到用于数据块Am-1的传输指令,DMA控制器12就如在步骤S11中一样传输数据块Am-1(步骤S18)。然后,DMA控制单元11如在步骤S10中一样发出用于数据块Am的传输指令(Am传输指令)(步骤S19)。一旦收到用于数据块Am的传输指令,DMA控制器12就如在步骤S11中一样传输数据块Am(步骤S20)。
当完成传输数据块Am时,DMA控制器12向通信控制器15发出传输终止通知(Am传输终止通知)(步骤S21)。在本实例中,由于最后一个数据块Am小于前一数据块Am-1,所以数据块Am的数据传输比数据块Am-1的数据传输更快完成。因此,此时数据传输次数计数器152的数值为m-1,未达到所有数据的传输次数“m”。
当完成数据块Am-1的数据传输时,DMA控制器12向通信控制器15发出传输终止通知(Am-1传输终止通知)(步骤S22)。此时,数据传输次数计数器152的数值为m,并且匹配所有数据的传输次数“m”。然后,传输终止确定单元151(数据传输次数计数器152)确定传输数据A的数据传输终止。
图6是示出根据本发明实施例具有DMA数据传输功能的通信控制卡10的实际结构的另一实例的示意图。图6与图3相似,因此省略图3中所示的相同部分的说明。
本实例示出包含数据传输次数差值的确定信息,该数据传输次数差值通过从计数器MAX值中减去所有数据的传输次数“m”得到。计数器MAX值是数据传输次数计数器152可计算的最大值。计数器MAX值等于在DMA数据传输中数据传输的允许次数的最大值。相应地,本实例的传输终止确定单元151仅包括作为传输终止确定单元151的数据传输次数计数器152。将数据传输次数计数器152设置为用于每个数据缓冲器154(也就是用于每个传输数据)。
在完成所有数据的传输次数“m”时,DMA控制单元11将从计数器MAX值中减去所有数据的传输次数“m”所得到的数值(下文称为数据传输次数差值)通知通信控制器15。此时,通信控制器15(数据传输次数计数器152)将通知到的数据传输次数差值加在数据传输次数计数器152的数值上,并在该数值达到计数器MAX值时,确定该传输数据的数据传输终止。之后,数据传输次数计数器152继续计算数据传输的次数,在计数值达到计数器MAX值时确定数据传输终止,并向数据包生成电路150发送数据传输终止通知。
例如,假设计数器MAX值是16,并且传输数据A的所有数据的传输次数“m”是10。每次数据块A1、A2、……的传输终止时,数据传输次数计数器152计算数据传输的次数1、2、……。当DMA控制单元11完成所有数据的传输次数“m”时,从计数器MAX值减去所有数据的传输次数“m”所得到的数值、即16-10=6,作为数据传输次数差值发送至通信控制器15。假设在数据传输次数计数器152的数值是6时发送数据传输次数差值。在这种情况下,将数据传输次数差值加在数据传输次数计数器152的数值上,并将数据传输次数计数器152的数值设置为6+6=12。之后,每次完成数据块传输时,数据传输次数计数器152继续计算13、14、……,并在数据传输次数计数器152的数值达到计数器MAX值即16时,确定数据传输终止。
下面,基于图6中所示的结构,说明根据本发明实施例的DMA数据传输。也就是说,如同在如图3所示的实例中,根据来自信息处理装置1的CPU20的数据包发送指令,DMA控制单元11向DMA控制器12发出数据传输指示。基于来自DMA控制单元11的指示,DMA控制器12的DMA引擎120均读取来自内置存储器13或者存储器30的数据块,并将其传输至通信控制器15。数据传输次数计数器152计算来自DMA控制器12的数据传输的次数。
在完成所有数据的传输次数“m”时,DMA控制单元11将从计数器MAX值减去所有数据的传输次数“m”所得到的数值即数据传输次数差值通知通信控制器15。通信控制器15将从DMA控制单元11接收到的数据传输次数差值添加到数据传输次数计数器152中。之后,数据传输次数计数器152继续计算来自DMA控制器12的数据传输的次数,在计数值达到计数器MAX值时确定该传输数据的数据传输终止,并发送数据包160。
图7示出本发明根据图6所示实例的DMA数据传输的操作顺序的另一实例。图7与图5相似,因此省略也显示在图5中的相同部分的说明。
DMA控制单元11如在步骤S10中一样向DMA控制器12发出用于数据块A1的传输指令(A1传输指令)(步骤S30),收到用于数据块A1的传输指令的DMA控制器12如在步骤S11中一样传输数据块A1(步骤S31)。然后,DMA控制单元11如在步骤S12中一样发出用于数据块A2的传输指令(A2传输指令)(步骤S32)。收到用于数据块A2的传输指令的DMA控制器12如在步骤S13中一样传输数据块A2(步骤S33)。然后,完成数据块A1或者A2的数据传输的DMA控制器12向通信控制器15发出传输终止通知(A1传输终止通知或者A2传输终止通知)(步骤S34和S35)。据此,数据传输次数计数器152计算数据传输的次数。
在完成所有数据的传输次数“m”时,DMA控制单元11将数据传输次数差值(Nmax-m)通知通信控制器15(步骤S36)。据此,将数据传输次数差值(Nmax-m)加在数据传输次数计数器152的数值k上。从而,数据传输次数计数器152的数值为Nmax-m+k。之后,每次从DMA控制器12收到传输终止通知时,数据传输次数计数器152继续计算传输终止通知。
如上所述,执行数据块传输处理。然后,DMA控制单元11如在步骤S17中一样发出用于数据块Am-1的传输指令(Am-1传输指令)(步骤S37),收到用于数据块Am-1的传输指令的DMA控制器12如在步骤S18中一样传输数据块Am-1(步骤S38)。然后,DMA控制单元11如在步骤S19中一样发出用于数据块Am的传输指令(Am传输指令)(步骤S39)。收到用于数据块Am的传输指令的DMA控制器12如在步骤S20中一样传输数据块Am(步骤S40)。
当数据块Am的传输终止时,DMA控制器12向通信控制器15发出传输终止通知(Am传输终止通知)(步骤S41)。如上所述,数据块Am的传输比数据块Am-1的传输更快终止。因此,此时数据传输次数计数器152的数值为Nmax-1,未达到计数器MAX值。
当数据块Am-1的数据传输终止时,DMA控制器12向通信控制器15发出传输终止通知(Am-1传输终止通知)(步骤S42)。此时,数据传输次数计数器152的数值达到Nmax。然后,通信控制器15(数据传输次数计数器152)确定传输数据A的数据传输终止。
在图6所示的实例中,通信控制器15中不必设置所有数据传输次数保存单元153以保存从DMA控制单元11收到的所有数据的传输次数。因此,与图3中所示的实例相比,能够减少通信控制器15的数据传输次数计数器152的外围电路。
如上所述,根据本发明,在执行DMA数据传输的设备和方法中,传输目的地装置确定数据传输的终止。从而,在传输目的地装置中添加了确定终止的功能,并且增强了DMA控制器中DMA数据传输的多重性,由此提高了DMA数据传输的性能,而几乎无需增大电路的规模。因此,能够提供一种DMA数据传输的性能大大增强的诸如计算机的信息处理装置。
Claims (14)
1、一种执行DMA数据传输的设备,包括:
作为数据传输源的存储器;
作为数据传输目的地的传输目的地装置;
DMA控制器,其具有多个DMA引擎,每个DMA引擎以DMA方式将数据从该存储器传输至该传输目的地装置;以及
DMA控制单元,其用于指示该DMA控制器的多个DMA引擎进行DMA数据传输;
其中,该DMA控制单元将用于确定待传输数据的数据传输终止的确定信息发送至该传输目的地装置,以及
该传输目的地装置基于从该DMA控制单元发送的确定信息,确定待传输数据的数据传输终止。
2、如权利要求1所述的设备,其中:
该DMA控制单元将待传输的多个数据中的每个数据的确定信息发送至该传输目的地装置,以及
该传输目的地装置基于该确定信息,确定待传输的多个数据中的每个数据的数据传输终止。
3、如权利要求1所述的设备,其中,该DMA控制单元确定待传输数据的分割尺寸以使所述多个DMA引擎能够传输所述数据,基于确定结果完成所有数据的传输次数,即完成传输所述待传输数据所需的传输次数,并且基于完成结果生成该确定信息。
4、如权利要求1所述的设备,其中,在完成所有数据传输次数、即完成传输所述待传输数据所需的传输次数之后,该DMA控制单元发送基于完成结果所生成的确定信息至该传输目的地装置。
5、如权利要求1所述的设备,其中:
该确定信息包括所有数据的传输次数,该所有数据的传输次数作为传输所述待传输数据所需的传输次数,以及
该传输目的地装置包括:数据传输次数计数器,其计算待传输数据的已完成的数据传输的次数;以及所有数据传输次数保存单元,其保存所有数据的传输次数;并且当该数据传输次数计数器的数值达到该所有数据的传输次数时,该传输目的地装置确定待传输数据的数据传输已经完成。
6、如权利要求1所述的设备,其中:
该传输目的地装置包括数据传输次数计数器,其计算待传输数据的已完成的数据传输的次数;
该确定信息包括数据传输次数差值,该数据传输次数差值通过从计数器MAX值中减去所有数据的传输次数得到,该所有数据的传输次数是待传输数据所必需的传输次数,该计数器MAX值是该数据传输次数计数器可计算的最大值,以及
该传输目的地装置将该数据传输次数差值加在该数据传输次数计数器的数值上,并在该数据传输次数计数器的数值达到该计数器MAX值时,确定待传输数据的数据传输终止。
7、如权利要求6所述的设备,其中,该计数器MAX值等于在待传输数据的数据传输中所允许的DMA数据传输的次数最大值。
8、如权利要求1所述的设备,其中:
该存储器包括:第一存储器,其存储由用户生成的数据;以及第二存储器,其存储内容预先确定的数据,以及
该第二存储器的位置比该第一存储器更接近该DMA控制单元。
9、如权利要求1所述的设备,还包括:
信息处理装置,其包括至少一个扩展槽;以及
扩展卡,其载入在该扩展槽中;
其中,该存储器设置为用于该信息处理装置或者该扩展卡,并且该传输目的地装置、该DMA控制器和该DMA控制单元均设置为用于该扩展卡。
10、如权利要求9所述的设备,其中:
该存储器包括:第一存储器,其存储由用户生成的数据;以及第二存储器,其存储内容预先确定的数据,以及
该第一存储器设置为用于该信息处理装置,而该第二存储器设置为用于该扩展卡。
11、如权利要求9所述的设备,其中:
该扩展卡包括通信控制卡;
该传输目的地装置包括通信控制器,以及
该信息处理装置通过该扩展卡与通信交换机或者另一信息处理装置连接,并且与该通信交换机或者另一信息处理装置进行通信。
12、如权利要求11所述的设备,其中,该传输目的地装置包括生成数据包的数据包生成电路,并且与该通信交换机或者另一信息处理装置进行数据包通信。
13、如权利要求12所述的设备,其中:
该存储器包括:第一存储器,其存储由用户生成的数据;以及第二存储器,其存储内容预先确定的数据;
该第一存储器设置为用于该信息处理装置,而该第二存储器设置为用于该扩展卡,以及
该数据包生成电路利用从该第二存储器传输的数据形成数据包的头部,并且利用从该第一存储器传输的数据形成数据包的主体,由此生成数据包。
14、一种执行DMA数据传输的方法,由执行DMA数据传输的设备来实施,该设备包括:DMA控制器,其具有多个DMA引擎,每个DMA引擎将数据从存储器传输至传输目的地装置;以及DMA控制单元,其用于指示该DMA控制器的多个DMA引擎进行DMA数据传输,该方法包括:
在该DMA控制单元中,确定待传输数据的分割尺寸以使所述多个DMA引擎能够传输所述数据,并且指示该DMA控制器的多个DMA引擎进行DMA数据传输;
在该DMA控制器的多个DMA引擎中,根据DMA控制单元的指令,分割所述待传输数据,并将所述数据传输至该传输目的地装置;
在该DMA控制单元中,将用于确定所述待传输数据的数据传输终止的确定信息发送至该传输目的地装置;以及
在该传输目的地装置中,基于从该DMA控制单元发送的确定信息,确定所述待传输数据的数据传输终止。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006051872A JP4908017B2 (ja) | 2006-02-28 | 2006-02-28 | Dmaデータ転送装置及びdmaデータ転送方法 |
JP2006051872 | 2006-02-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101030182A true CN101030182A (zh) | 2007-09-05 |
CN100592273C CN100592273C (zh) | 2010-02-24 |
Family
ID=37459390
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200610091806A Expired - Fee Related CN100592273C (zh) | 2006-02-28 | 2006-05-29 | 执行dma数据传输的设备和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7752349B2 (zh) |
EP (1) | EP1826677A1 (zh) |
JP (1) | JP4908017B2 (zh) |
KR (1) | KR100775406B1 (zh) |
CN (1) | CN100592273C (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100498748C (zh) * | 2007-11-16 | 2009-06-10 | 威盛电子股份有限公司 | 计算机系统及直接内存访问传输方法 |
CN104717433A (zh) * | 2015-03-27 | 2015-06-17 | 电子科技大学 | 一种用于视频流信号处理系统的分布式传输装置 |
WO2024103720A1 (zh) * | 2022-11-16 | 2024-05-23 | 浪潮电子信息产业股份有限公司 | 一种数据传输方法、装置、电子设备及非易失性可读存储介质 |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8327040B2 (en) * | 2009-01-26 | 2012-12-04 | Micron Technology, Inc. | Host controller |
JP5693176B2 (ja) * | 2010-11-26 | 2015-04-01 | キヤノン株式会社 | モニタ回路、バスブリッジ及びバスシステム |
US8904058B2 (en) | 2011-05-27 | 2014-12-02 | International Business Machines Corporation | Selecting direct memory access engines in an adaptor input/output (I/O) requests received at the adaptor |
WO2015155850A1 (ja) * | 2014-04-09 | 2015-10-15 | 株式会社日立製作所 | 入出力装置及び方法 |
KR20160087224A (ko) * | 2015-01-13 | 2016-07-21 | 삼성전자주식회사 | 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
KR102387460B1 (ko) | 2015-04-09 | 2022-04-15 | 삼성전자주식회사 | 데이터 저장 장치와 이의 작동 방법 |
EP3502906B1 (en) * | 2016-06-08 | 2021-06-16 | Google LLC | Tlb shootdown for low overhead |
US10540292B2 (en) | 2016-06-08 | 2020-01-21 | Google Llc | TLB shootdowns for low overhead |
US10657292B2 (en) * | 2017-12-18 | 2020-05-19 | Xilinx, Inc. | Security for programmable devices in a data center |
US10725942B2 (en) * | 2018-11-09 | 2020-07-28 | Xilinx, Inc. | Streaming platform architecture for inter-kernel circuit communication for an integrated circuit |
KR20210088653A (ko) * | 2018-11-09 | 2021-07-14 | 자일링크스 인코포레이티드 | 스트리밍 플랫폼 흐름 및 아키텍처 |
US10924430B2 (en) * | 2018-11-09 | 2021-02-16 | Xilinx, Inc. | Streaming platform flow and architecture for an integrated circuit |
JP7226084B2 (ja) * | 2019-05-16 | 2023-02-21 | オムロン株式会社 | 情報処理装置 |
US10990547B2 (en) | 2019-08-11 | 2021-04-27 | Xilinx, Inc. | Dynamically reconfigurable networking using a programmable integrated circuit |
US11232053B1 (en) * | 2020-06-09 | 2022-01-25 | Xilinx, Inc. | Multi-host direct memory access system for integrated circuits |
US11539770B1 (en) | 2021-03-15 | 2022-12-27 | Xilinx, Inc. | Host-to-kernel streaming support for disparate platforms |
US11456951B1 (en) | 2021-04-08 | 2022-09-27 | Xilinx, Inc. | Flow table modification for network accelerators |
US11606317B1 (en) | 2021-04-14 | 2023-03-14 | Xilinx, Inc. | Table based multi-function virtualization |
Family Cites Families (62)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4271466A (en) * | 1975-02-20 | 1981-06-02 | Panafacom Limited | Direct memory access control system with byte/word control of data bus |
US4313160A (en) * | 1976-08-17 | 1982-01-26 | Computer Automation, Inc. | Distributed input/output controller system |
JPS6349946A (ja) * | 1986-08-20 | 1988-03-02 | Canon Inc | 演算処理装置 |
EP0554917B1 (en) * | 1987-06-05 | 1998-05-06 | Mitsubishi Denki Kabushiki Kaisha | Digital signal processing system having two instruction memories accessed by a processor under control of host |
JPH077375B2 (ja) * | 1988-06-17 | 1995-01-30 | 日本電気株式会社 | バス制御方式 |
US5140679A (en) * | 1988-09-14 | 1992-08-18 | National Semiconductor Corporation | Universal asynchronous receiver/transmitter |
JPH03122745A (ja) * | 1989-10-05 | 1991-05-24 | Mitsubishi Electric Corp | Dma制御方式 |
US5179661A (en) * | 1989-10-30 | 1993-01-12 | Hayes Microcomputer Products, Inc. | Method and apparatus for serial data flow control |
JPH04236649A (ja) | 1991-01-21 | 1992-08-25 | Matsushita Electric Ind Co Ltd | データ転送装置 |
US5379381A (en) * | 1991-08-12 | 1995-01-03 | Stratus Computer, Inc. | System using separate transfer circuits for performing different transfer operations respectively and scanning I/O devices status upon absence of both operations |
US5444855A (en) * | 1992-04-17 | 1995-08-22 | International Business Machines Corporation | System for guaranteed CPU bus access by I/O devices monitoring separately predetermined distinct maximum non CPU bus activity and inhibiting I/O devices thereof |
JPH0683638A (ja) * | 1992-09-03 | 1994-03-25 | Nec Ic Microcomput Syst Ltd | 割込み制御回路 |
US6026443A (en) * | 1992-12-22 | 2000-02-15 | Sun Microsystems, Inc. | Multi-virtual DMA channels, multi-bandwidth groups, host based cellification and reassembly, and asynchronous transfer mode network interface |
US5644787A (en) * | 1993-08-03 | 1997-07-01 | Seiko Epson Corporation | Apparatus for controlling data transfer between external interfaces through buffer memory using table data having transfer start address transfer count and unit selection parameter |
US5687389A (en) * | 1993-12-22 | 1997-11-11 | Adaptec, Inc. | System for controlling an automatic read operation of read cache control circuit in a disk drive controller utilizing a start counter, a working counter, and a sector counter |
US5805927A (en) * | 1994-01-28 | 1998-09-08 | Apple Computer, Inc. | Direct memory access channel architecture and method for reception of network information |
US5608889A (en) * | 1994-08-17 | 1997-03-04 | Ceridian Corporation | DNA controller with wrap-around buffer mode |
US5548587A (en) * | 1994-09-12 | 1996-08-20 | Efficient Networks, Inc. | Asynchronous transfer mode adapter for desktop applications |
US6351780B1 (en) * | 1994-11-21 | 2002-02-26 | Cirrus Logic, Inc. | Network controller using held data frame monitor and decision logic for automatically engaging DMA data transfer when buffer overflow is anticipated |
US5628026A (en) * | 1994-12-05 | 1997-05-06 | Motorola, Inc. | Multi-dimensional data transfer in a data processing system and method therefor |
US5768622A (en) * | 1995-08-18 | 1998-06-16 | Dell U.S.A., L.P. | System for preemptive bus master termination by determining termination data for each target device and periodically terminating burst transfer to device according to termination data |
KR0160193B1 (ko) * | 1995-12-30 | 1998-12-15 | 김광호 | 직접메모리접근 제어장치 |
JP3492139B2 (ja) * | 1996-03-04 | 2004-02-03 | 松下電器産業株式会社 | バスを介したデータ転送方法およびバスマスタ制御装置 |
US6125425A (en) * | 1996-03-29 | 2000-09-26 | Intel Corporation | Memory controller performing a mid transaction refresh and handling a suspend signal |
US5991817A (en) * | 1996-09-06 | 1999-11-23 | Cisco Systems, Inc. | Apparatus and method for a network router |
US6148326A (en) * | 1996-09-30 | 2000-11-14 | Lsi Logic Corporation | Method and structure for independent disk and host transfer in a storage subsystem target device |
EP0837397B1 (en) * | 1996-10-18 | 2006-04-05 | Matsushita Electric Industrial Co., Ltd. | Data transfer apparatus and data transfer system for arbitrating a plurality of I/O ports in DMA |
US6702056B2 (en) * | 1997-08-06 | 2004-03-09 | Takata Corporation | Seatbelt retractor |
US6260082B1 (en) * | 1998-12-23 | 2001-07-10 | Bops, Inc. | Methods and apparatus for providing data transfer control |
US6330623B1 (en) * | 1999-01-08 | 2001-12-11 | Vlsi Technology, Inc. | System and method for maximizing DMA transfers of arbitrarily aligned data |
JP2000267988A (ja) | 1999-03-19 | 2000-09-29 | Canon Inc | Dmaコントローラおよびdmaコントローラの異常検出方法 |
GB9909196D0 (en) * | 1999-04-21 | 1999-06-16 | Texas Instruments Ltd | Transfer controller with hub and ports architecture |
KR20010057244A (ko) * | 1999-12-20 | 2001-07-04 | 윤종용 | 직접 메모리 억세스 버스 제어 방법 |
JP3761061B2 (ja) * | 2000-04-28 | 2006-03-29 | シャープ株式会社 | データ処理システムおよびデータ処理方法 |
JP2002041445A (ja) * | 2000-05-19 | 2002-02-08 | Matsushita Electric Ind Co Ltd | 高性能dmaコントローラ |
US6778548B1 (en) * | 2000-06-26 | 2004-08-17 | Intel Corporation | Device to receive, buffer, and transmit packets of data in a packet switching network |
US7010614B2 (en) * | 2000-07-05 | 2006-03-07 | International Business Machines Corporation | System for computing cumulative amount of data received by all RDMA to determine when a complete data transfer has arrived at receiving device |
US6922741B2 (en) * | 2002-02-01 | 2005-07-26 | Intel Corporation | Method and system for monitoring DMA status |
JP3785373B2 (ja) * | 2002-03-01 | 2006-06-14 | シャープ株式会社 | 通信制御回路 |
DE10213839B4 (de) * | 2002-03-27 | 2016-11-03 | Advanced Micro Devices, Inc. | DMA-Mechanismus für einen Hochgeschwindigkeitspaketbus |
US6898723B2 (en) * | 2002-04-01 | 2005-05-24 | Mitac International Corp. | Method for verifying clock signal frequency of computer sound interface that involves checking whether count value of counter is within tolerable count range |
JP4686104B2 (ja) | 2002-04-22 | 2011-05-18 | 富士通セミコンダクター株式会社 | Dmaコントローラ |
JP2004029898A (ja) * | 2002-06-21 | 2004-01-29 | Renesas Technology Corp | データプロセッサ |
US7664909B2 (en) * | 2003-04-18 | 2010-02-16 | Nextio, Inc. | Method and apparatus for a shared I/O serial ATA controller |
US7133943B2 (en) * | 2003-02-26 | 2006-11-07 | International Business Machines Corporation | Method and apparatus for implementing receive queue for packet-based communications |
JP2004287654A (ja) | 2003-03-20 | 2004-10-14 | Ricoh Co Ltd | Dma転送装置 |
JP2004343205A (ja) * | 2003-05-13 | 2004-12-02 | Ricoh Co Ltd | コントローラ装置、画像形成装置、メモリ制御方法、コンピュータプログラム及び記録媒体 |
US7323438B2 (en) * | 2003-06-13 | 2008-01-29 | Procter & Gamble | Cleansing article with improved handleability |
JP2005071104A (ja) * | 2003-08-25 | 2005-03-17 | Murata Mach Ltd | データ転送制御装置 |
JP3955876B2 (ja) * | 2003-08-28 | 2007-08-08 | 株式会社ルネサステクノロジ | マイクロコンピュータ及びシステムプログラムの開発方法 |
JP2005115464A (ja) | 2003-10-03 | 2005-04-28 | Fuji Xerox Co Ltd | データ処理装置およびデータ制御ユニット |
US7475271B2 (en) * | 2003-10-14 | 2009-01-06 | Broadcom Corporation | Exponential channelized timer |
JP2005135098A (ja) | 2003-10-29 | 2005-05-26 | Denso Corp | ダイレクト・メモリ・アクセス・システム |
KR100633742B1 (ko) * | 2003-12-23 | 2006-10-13 | 한국전자통신연구원 | 주변 장치로부터 데이터 전송 크기를 자동으로 갱신하는직접 메모리 액세스 제어 장치 및 방법 |
GR1004758B (el) | 2004-02-11 | 2004-12-15 | Intracomαα.Ε.Αελληνικηαβιομηχανιαατηλεπικοινωνιωνα&Ασυστηματωναπληροφορικησαα | Συνθεσιμοαμοντελοαvhdlαπολυκαναλικουαπυρηνααμηχανησαdmaαγιααενθεταασυστηματααδιαυλωναα |
JP2005250683A (ja) * | 2004-03-02 | 2005-09-15 | Renesas Technology Corp | マイクロコンピュータ |
KR20050094989A (ko) * | 2004-03-24 | 2005-09-29 | 삼성전자주식회사 | 디엠에이 설정값의 설정방법 및 장치 |
US7577772B2 (en) * | 2004-09-08 | 2009-08-18 | Qlogic, Corporation | Method and system for optimizing DMA channel selection |
JP2006293927A (ja) | 2005-04-14 | 2006-10-26 | Toshiba Corp | ダイレクトメモリアクセス制御装置及びダイレクトメモリアクセス制御装置を含むシステムlsi |
US7415549B2 (en) * | 2005-09-27 | 2008-08-19 | Intel Corporation | DMA completion processing mechanism |
US7644198B2 (en) * | 2005-10-07 | 2010-01-05 | International Business Machines Corporation | DMAC translation mechanism |
US20080313363A1 (en) * | 2006-02-20 | 2008-12-18 | Freescale Semiconductor, Inc. | Method and Device for Exchanging Data Using a Virtual Fifo Data Structure |
-
2006
- 2006-02-28 JP JP2006051872A patent/JP4908017B2/ja not_active Expired - Fee Related
- 2006-05-11 KR KR1020060042303A patent/KR100775406B1/ko not_active IP Right Cessation
- 2006-05-26 US US11/441,118 patent/US7752349B2/en not_active Expired - Fee Related
- 2006-05-29 CN CN200610091806A patent/CN100592273C/zh not_active Expired - Fee Related
- 2006-05-31 EP EP06114790A patent/EP1826677A1/en not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100498748C (zh) * | 2007-11-16 | 2009-06-10 | 威盛电子股份有限公司 | 计算机系统及直接内存访问传输方法 |
CN104717433A (zh) * | 2015-03-27 | 2015-06-17 | 电子科技大学 | 一种用于视频流信号处理系统的分布式传输装置 |
WO2024103720A1 (zh) * | 2022-11-16 | 2024-05-23 | 浪潮电子信息产业股份有限公司 | 一种数据传输方法、装置、电子设备及非易失性可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP1826677A1 (en) | 2007-08-29 |
JP2007233522A (ja) | 2007-09-13 |
KR100775406B1 (ko) | 2007-11-12 |
US7752349B2 (en) | 2010-07-06 |
CN100592273C (zh) | 2010-02-24 |
KR20070089556A (ko) | 2007-08-31 |
JP4908017B2 (ja) | 2012-04-04 |
US20070204074A1 (en) | 2007-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101030182A (zh) | 执行dma数据传输的设备和方法 | |
EP3706394B1 (en) | Writes to multiple memory destinations | |
US9934173B1 (en) | Pseudo cut-through architecture between non-volatile memory storage and remote hosts over a fabric | |
US20210326280A1 (en) | Storage device for interfacing with host and method of operating the host and the storage device | |
CN100351781C (zh) | 多线程并行处理器结构中所用的微引擎的存储器引用指令 | |
US10331595B2 (en) | Collaborative hardware interaction by multiple entities using a shared queue | |
US20230076210A1 (en) | Memory system and method for controlling nonvolatile memory | |
US20180005670A1 (en) | Hybrid lpddr4-dram with cached nvm and flash-nand in multi-chip packages for mobile devices | |
TWI506444B (zh) | 改良mmio請求處置之處理器及方法 | |
CN1961300A (zh) | 使用集成dma引擎进行高性能易失性磁盘驱动器存储器访问的装置和方法 | |
CN1864145A (zh) | 用于处理输入/输出命令的方法、系统和程序 | |
KR101789190B1 (ko) | 스크래치 패드 메모리 구조를 이용한 캐시 및 이를 포함하는 프로세서 | |
US20140040541A1 (en) | Method of managing dynamic memory reallocation and device performing the method | |
CN1394310A (zh) | 处理器间通信系统 | |
CN111274025A (zh) | 用于在ssd中加速数据处理的系统和方法 | |
WO2020257748A1 (en) | Dma-scatter and gather operations for non-contiguous memory | |
CN105260332A (zh) | 一种对cpld数据包进行有序存储的方法及系统 | |
US11456972B2 (en) | Methods and arrangements to accelerate array searches | |
CN1645351A (zh) | 多处理器系统中传送数据的方法、多处理器系统及处理器 | |
CN116685943A (zh) | 可编程原子单元中的自调度线程 | |
US20150177985A1 (en) | Information processing device | |
US9137167B2 (en) | Host ethernet adapter frame forwarding | |
KR101428317B1 (ko) | 고성능 ahci 인터페이스 | |
CN110737618B (zh) | 内嵌处理器进行快速数据通信的方法、装置及存储介质 | |
US11853614B2 (en) | Synchronous write method and device, storage system and electronic device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100224 Termination date: 20180529 |
|
CF01 | Termination of patent right due to non-payment of annual fee |