CN111831595A - 一种dma传输方法及相关装置 - Google Patents
一种dma传输方法及相关装置 Download PDFInfo
- Publication number
- CN111831595A CN111831595A CN202010614567.3A CN202010614567A CN111831595A CN 111831595 A CN111831595 A CN 111831595A CN 202010614567 A CN202010614567 A CN 202010614567A CN 111831595 A CN111831595 A CN 111831595A
- Authority
- CN
- China
- Prior art keywords
- transmission
- data
- peripheral
- peripheral equipment
- dma
- 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
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/28—DMA
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传输装置、计算机设备以及计算机可读存储介质。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种DMA传输方法、DMA传输装置、计算机设备以及计算机可读存储介质。
背景技术
随着信息技术的不断发展,目前计算机设备中传输的数据量越来越大,对数据传输的速度也越来越高。为了进一步提高数据传输的效率,现有技术中提出了一种直接对存储设备进行读取的数据传输方式,提高效率。该传输放置即为DMA((Direct Memory Access直接存储器访问),是指***设备不通过CPU(central processing unit中央处理器),直接与***内存交换数据的接口技术。在数据传输中,CPU完全不参与。数据的传送速度,取决于存储器和外设的工作速度。DMA技术提升传输速度,降低CPU负载,CPU只需访问MEM(Memory存储)。
现有技术中,各***设备的接收、发送方向,需要较大的接收缓存、发送缓存;或者使用小缓存,P2M方向需要等到***设备数据,M2P方向容易反压DMAC(DMA Controller DMA控制器);P2M(Peripherals to Memory***设备到存储)方向,DMAC长时间传输数据到某个***设备上,如果缓存不够大,***设备速率慢,造成DMAC等待***设备数据,影响传输性能。DMAC要传输的数据流量部分时间峰值较大,部分时间没有流量,流量不均衡,也影响传输性能;M2P(Memory to Peripherals存储到***设备)方向,DMAC长时间传输数据到某个***设备上,如果缓存不够大,***设备速率慢,造成DMAC被反压,暂停传输,影响传输性能。对其他有实时要求的***设备有较大影响。
因此,如何提高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控制器启动该***设备对应的传输通道,将所述数据进行传输,当所述数据传输完毕时,DMA控制器关闭该***设备对应的传输通道的步骤,直至所有***设备的数据传输完成。
通过在多个***设备进行数据传输时,根据每个***设备发送的传输请求对这些***设备均配置对应的传输通道,然后当***设备接收到分片长度的数据时即启动对应传输通道的将该分片长度的数据进行传输,当传输结束后就可以对下一个接收到对应分片长度的数据进行传输,而不是针对每个传输通道接收到传输通道长度的数据才进行传输,实现了将传输资源分片使用,而不是在一个传输长度中等待***设备传输完成,提高了响应速度,同时也提高了传输资源的利用效率,避免了出现等待情况,提高传输效率。
本申请还提供一种DMA传输方法、DMA传输装置、计算机设备以及计算机可读存储介质。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例所提供的一种DMA传输方法的流程图;
图2为本申请实施例所提供的一种DMA传输装置的结构示意图。
具体实施方式
本申请的核心是提供一种DMA传输方法、DMA传输装置、计算机设备以及计算机可读存储介质,通过接收到传输请求时,对每个***设备均配置对应的传输通道,然后在传输过程中通过分片长度进行数据传输,并非通过传输通道的传输长度,实现分片传输,避免接收设备和***设备产生等待,提高传输效率。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
现有技术中,各***设备的接收、发送方向,需要较大的接收缓存、发送缓存;或者使用小缓存,P2M方向需要等到***设备数据,M2P方向容易反压DMAC;P2M方向,DMAC长时间传输数据到某个***设备上,如果缓存不够大,***设备速率慢,造成DMAC等待***设备数据,影响传输性能。DMAC要传输的数据流量部分时间峰值较大,部分时间没有流量,流量不均衡,也影响传输性能;M2P方向,DMAC长时间传输数据到某个***设备上,如果缓存不够大,***设备速率慢,造成DMAC被反压,暂停传输,影响传输性能。对其他有实时要求的***设备有较大影响。
因此,本申请提供一种DMA传输方法,通过在多个***设备进行数据传输时,根据每个***设备发送的传输请求对这些***设备均配置对应的传输通道,然后当***设备接收到分片长度的数据时即启动对应传输通道的将该分片长度的数据进行传输,当传输结束后就可以对下一个接收到对应分片长度的数据进行传输,而不是针对每个传输通道接收到传输通道长度的数据才进行传输,实现了将传输资源分片使用,而不是在一个传输长度中等待***设备传输完成,提高了响应速度,同时也提高了传输资源的利用效率,避免了出现等待情况,提高传输效率。
以下通过一个实施例,对本申请提供的一种DMA传输方法进行说明。
请参考图1,图1为本申请实施例所提供的一种DMA传输方法的流程图。
本实施例中,该方法可以包括:
S101,处理器接收到多个***设备发送的传输请求,根据传输请求对多个***设备配置对应的传输通道;
本步骤旨在当接收到多个***设备发送的传输请求时,对所有的***设备配置并建立对应的传输通过。
一般的,在现有技术中***设备当接收到完整的数据时,发送传输请求,处理器接收到传输请求后根据传输请求配置出对应的传输通道,然后以该传输通道的传输大小进行传输。也就是说,***设备接收到该传输大小的数据并缓存后,才会发送传输请求,进一步的传输了该传输大小的数据后才会释放该传输通道,以便使其他***设备进行数据传输。
但是,在本实施例中为了实现采用更小的分片传输的方式,首先对所有的***设备均配置了对应的传输通道,而不是当一个***设备接收到足够的数据时才配置对应的传输通道。
本步骤中根据传输请求建立传输通道的方式,可以采用现有技术中任意一种配置传输通道的方式,在此不做具体限定。不同的是,本步骤中将该传输通道的配置操作对每一个***设备均进行执行。
可选的,本步骤可以包括:
步骤1,处理器接收到多个***设备发送的传输请求,根据传输请求对多个***设备分配对应的初级传输通道;
步骤2,对每个初级传输通道配置传输源地址、目的地址、传输长度以及分片长度,得到每个***设备对应的传输通道。
可见,本可选方案中首先对每个***设备监理出对应的初级传输通道,然后对每个初级传输通道配置对应的传输源地址、目的地址、传输长度以及分片长度,最后得到每个***设备对应的传输通道。
S102,当任一***设备接收到对应分片长度的数据时,DMA控制器启动该***设备对应的传输通道,将数据进行传输;当数据传输完毕时,DMA控制器关闭该***设备对应的传输通道;
在S102的基础上,本步骤旨在当任一***设备接收到对应分片长度的数据时,DMA控制器启动该***设备对应的传输通道,将数据进行传输;当数据传输完毕时,DMA控制器关闭该***设备对应的传输通道。也就是只要出现一个***设备接收到分片长度的数据时,也就是该***设备进行数据发送时,DMA控制器即启动对应的传输通道将该数据进行传输。
其中,需要说明的是,每个***设备对应的分片长度小于传输通道配置的传输长度。实现了每个***设备只要接收到较少的数据就可以将数据进行传输。并且,传输的数据较少占用传输通道的时间极短。而不是每个***设备接收到一定长度的数据后才进行数据传输,避免出现传输通道空闲的情况,提高传输资源的利用率。
可选的,本实施例中,还可以包括:
步骤1,每个***设备收集数据,并将数据存放于缓存中;
步骤2,当收集到对应分片长度的数据时,发送数据传输请求。
可见,本可选方案中主要是对***设备如何收集数据,并进行发送进行说明。首先是每个***设备收集数据,并将收集到的数据存放于缓存中。然后,每当收集到分片长度的数据时,就发送对应的数据传输请求,以便进行发送。
可选的,本步骤可以包括:
步骤1,当任一***设备接收到对应分片长度的数据时,所述DMA控制器启动该***设备对应的传输通道;
步骤2,通过***总线采用该传输通道将所述数据传输至对应的存储位置;
步骤3,当所述数据传输完毕时,所述DMA控制器关闭该***设备对应的传输通道,并向该***设备发送传输完成消息。
可见,本可选方案主要是对如何对该任一外设设备进行数据传输进行说明。具体的,在本可选方案中当任一***设备接收到对应分片长度的数据时,所述DMA控制器首先启动该***设备对应的传输通道;也就是在处理器中激活该传输通道。然后通过***总线采用该传输通道将所述数据传输至对应的存储位置,当所述数据传输完毕时,所述DMA控制器关闭该***设备对应的传输通道,并向该***设备发送传输完成消息。也就是最后关闭该传输通道。需要说明的是,本可选方案中并不完全释放对应的传输通道,而是仅仅关闭该传输通道,以便在下一分片时直接使用该传输通道。
可选的,该可选方案中的步骤3可以包括:
当所述数据传输完毕时,所述DMA控制器向所述处理器发送该***设备对应的传输通道的释放消息;向该***设备发送所述传输完成消息。
S103,对下一个接收到对应分片长度数据的***设备执行DMA控制器启动该***设备对应的传输通道,将数据进行传输,当数据传输完毕时,DMA控制器关闭该***设备对应的传输通道的步骤,直至所有***设备的数据传输完成。
在S102的基础上,本步骤旨在循环对***设备循环执行S101的步骤,直至所有的***设备的数据传输完成。也就是说,在本实施例中的每个***设备每次传输数据均是传输分片长度。
具体的,在不断传输的过程中,每个***设备依然是在不断的获取到数据。
可选的,本实施例中,还可以包括:
步骤1,当多个***设备接收数据时,处理器对多个***设备配置对应的传输通道;
步骤2,当接收到任意一个***设备发送的传输请求时,DMA控制器通过***总线将数据从存储设备传输至该***设备;当对应分片长度的数据传输完成时,DMA控制器关闭该***设备对应的传输通道;
步骤3,对下一个发送传输请求的***设备执行DMA控制器通过***总线将数据从存储设备传输至该***设备;当对应分片长度的数据传输完成时,DMA控制器关闭该***设备对应的传输通道的步骤,直至将所有数据从存储设备发送至多个***设备。
可见,本可选方案主要是对将数据从存储设备发送至***设备进行说明,也就是对,***设备如何接收到存储设备的数据进行说明。
具体的,在当前的存在多个***设备需要接收到数据的情况下,首先需要对这些***设备分别配置出对应的传输通道。然后,按照每个传输通道中分片的长度将数据从存储设备分别发送至对应的***设备中。
可选的,本实施例还可以包括:
当所有***设备的数据传输完成时,向所述处理器发送中断消息。
通过本可选方案,以便通知处理器所有传输已完成,将对应的传输通道进行释放。
综上,本实施例通过在多个***设备进行数据传输时,根据每个***设备发送的传输请求对这些***设备均配置对应的传输通道,然后当***设备接收到分片长度的数据时即启动对应传输通道的将该分片长度的数据进行传输,当传输结束后就可以对下一个接收到对应分片长度的数据进行传输,而不是针对每个传输通道接收到传输通道长度的数据才进行传输,实现了将传输资源分片使用,而不是在一个传输长度中等待***设备传输完成,提高了响应速度,同时也提高了传输资源的利用效率,避免了出现等待情况,提高传输效率。
以下通过一个具体的实施例,对本申请提供的一种DMA传输方法进行说明。
本实施例中,该方法分别包括***设备向存储设备发送数据和存储设备向***设备发送数据。也就是***设备发送数据和***设备接收数据。
其中,***设备向存储设备发送数据的过程中,包括2个低速率***设备(即peri_0、peri_1)、每个***设备1次DMA传输,长度以字节为单位,该传输方法可以包括:
步骤1,peri_0、peri_1各自接收数据。配置分片长度分别为4字节、8字节,其中,缓存大小分别为8字节、16字节;
步骤2,peri_0接收到4字节,peri_1接收到6字节。peri_0发起req,请求DMA传输,并通知CPU;peri_0、peri_1继续各自接收数据;
步骤3,CPU给peri_0分配DMAC通道0,配置通道0的DMA传输源地址、目的地址、传输长度128字节、分片长度(与peri_0一致,为4字节);
步骤4,DMAC启动通道0的DMA传输,通过SBUS***总线,将数据从peri_0传输到对应存储位置。达到分片长度4字节后,停止DMA传输,发起rls,通知peri_0传输分片长度4字节完成;
步骤5,在上述过程中,peri_1接收到12字节,peri_1发起req,请求DMA传输,并通知CPU;peri_0、peri_1继续各自接收数据;
步骤6,CPU给peri_1分配DMAC通道1,配置通道1的DMA传输源地址、目的地址、传输长度128字节、分片长度(与peri_1一致,为8字节);
步骤7,DMAC启动通道1的DMA传输,通过SBUS***总线,将数据从peri_1传输到对应存储位置。达到分片长度8字节后,停止DMA传输,发起rls,通知peri_1传输分片长度8字节完成;
步骤8,重复步骤3到步骤7,peri_0传输32次分片长度,peri_1传输16次分片长度,各自的DMA传输完成,发送中断通知CPU。
其中,req为传输请求,rls释放请求。
其中,***设备向存储设备发送数据的过程中,包括2个低速率***设备(即为peri_0、peri_1)、给每个***设备1次DMA传输,长度以字节为单位,该传输方法可以包括:
步骤1,存储需要发送给peri_0、peri_1数据,到对应的存储位置;
步骤2,CPU给peri_0/peri_1分配DMAC通道0/1,配置通道0/1的DMA传输源地址、目的地址、传输长度128字节、分片长度(分别为4/8字节);peri_0、peri_1发起各自的DMA传输请求req;
步骤3,DMAC启动通道0的DMA传输,通过***总线,将数据从对应存储位置传输到peri_0。达到分片长度4字节后,停止DMA传输,发起rls,通知peri_0传输分片长度4字节完成;peri_0稍后再度发起DMA传输请求;
步骤4,DMAC启动通道1的DMA传输,通过SBUS***总线,将数据从对应存储位置传输到peri_1。达到分片长度8字节后,停止DMA传输,发起rls,通知peri_1传输分片长度8字节完成;peri_1稍后再度发起DMA传输请求;
步骤5,重复步骤3到步骤4,peri_0传输32次分片长度,peri_1传输16次分片长度,各自的DMA传输完成,发送中断通知CPU。
可见,通过以上两种传输方向进行数据传输。各个***设备的接收、发送方向,缓存大小只需要2个左右分片大小即可,节约了缓存资源。其中,P2M方向,传输分片长度后即可切换通道,DMAC不用在长时间传输数据到某个***设备上,不用等待***设备数据,提升了DMA传输性能。其中,M2P方向,传输分片长度后即可切换通道,DMAC不用在长时间传输数据到某个***设备上,减小了***设备反压带来的影响,提升了DMA传输性能。其中,M2P方向,有实时要求的***设备,数据传输实时性好。此外,分片灵活配置,将各通道按需求配置成不同大小,实现按权重传输。
显然,本实施例通过在多个***设备进行数据传输时,根据每个***设备发送的传输请求对这些***设备均配置对应的传输通道,然后当***设备接收到分片长度的数据时即启动对应传输通道的将该分片长度的数据进行传输,当传输结束后就可以对下一个接收到对应分片长度的数据进行传输,而不是针对每个传输通道接收到传输通道长度的数据才进行传输,实现了将传输资源分片使用,而不是在一个传输长度中等待***设备传输完成,提高了响应速度,同时也提高了传输资源的利用效率,避免了出现等待情况,提高传输效率。
下面对本申请实施例提供的一种DMA传输装置进行介绍,下文描述的一种DMA传输装置与上文描述的一种DMA传输方法可相互对应参照。
请参考图2,图2为本申请实施例所提供的一种DMA传输装置的结构示意图。
本实施例中,该装置可以包括:
传输通道配置模块100,用于接收到多个***设备发送的传输请求,根据传输请求对多个***设备配置对应的传输通道;
第一发送模块200,用于当任一***设备接收到对应分片长度的数据时,启动该***设备对应的传输通道,将数据进行传输;当数据传输完毕时,关闭该***设备对应的传输通道;
第二发送模块300,用于对下一个接收到对应分片长度数据的***设备执行启动该***设备对应的传输通道,将数据进行传输,当数据传输完毕时,关闭该***设备对应的传输通道的步骤,直至所有***设备的数据传输完成。
可选的,传输通道配置模块100,可以包括:
初级通道分配单元,用于接收到多个***设备发送的传输请求,根据传输请求对多个***设备分配对应的初级传输通道;
初级通道配置单元,用于对每个初级传输通道配置传输源地址、目的地址、传输长度以及分片长度,得到每个***设备对应的传输通道。
可选的,其特征在于,还包括:
***设备,用于收集数据,并将数据存放于缓存中;当收集到对应分片长度的数据时,发送数据传输请求。
可选的,其特征在于,还包括:
接收通道配置模块,用于当多个***设备接收数据时,对多个***设备配置对应的传输通道;
第一接收模块,用于当接收到任意一个***设备发送的传输请求时,通过***总线将数据从存储设备传输至该***设备;当对应分片长度的数据传输完成时,关闭该***设备对应的传输通道;
第二接收模块,用于对下一个发送传输请求的***设备执行通过***总线将数据从存储设备传输至该***设备;当对应分片长度的数据传输完成时,关闭该***设备对应的传输通道的步骤,直至将所有数据从存储设备发送至多个***设备。
本申请实施例还提供一种计算机设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如以上实施例的DMA传输方法的步骤。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如以上实施例的DMA传输方法的步骤。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的一种DMA传输方法、DMA传输装置、计算机设备以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
Claims (10)
1.一种DMA传输方法,其特征在于,包括:
处理器接收到多个***设备发送的传输请求,根据所述传输请求对所述多个***设备配置对应的传输通道;
当任一***设备接收到对应分片长度的数据时,DMA控制器启动该***设备对应的传输通道,将所述数据进行传输;当所述数据传输完毕时,DMA控制器关闭该***设备对应的传输通道;
对下一个接收到对应分片长度数据的***设备执行所述DMA控制器启动该***设备对应的传输通道,将所述数据进行传输,当所述数据传输完毕时,DMA控制器关闭该***设备对应的传输通道的步骤,直至所有***设备的数据传输完成。
2.根据权利要求1所述的DMA传输方法,其特征在于,处理器接收到多个***设备发送的传输请求,根据所述传输请求对所述多个***设备配置对应的传输通道,包括:
所述处理器接收到所述多个***设备发送的传输请求,根据所述传输请求对所述多个***设备分配对应的初级传输通道;
对每个初级传输通道配置传输源地址、目的地址、传输长度以及分片长度,得到每个***设备对应的传输通道。
3.根据权利要求1所述的DMA传输方法,其特征在于,还包括:
每个***设备收集数据,并将所述数据存放于缓存中;
当收集到对应分片长度的数据时,发送数据传输请求。
4.根据权利要求1所述的DMA传输方法,其特征在于,还包括:
当多个***设备接收数据时,所述处理器对所述多个***设备配置对应的传输通道;
当接收到任意一个***设备发送的传输请求时,DMA控制器通过***总线将数据从存储设备传输至该***设备;当对应分片长度的数据传输完成时,所述DMA控制器关闭该***设备对应的传输通道;
对下一个发送传输请求的***设备执行所述DMA控制器通过***总线将数据从存储设备传输至该***设备;当对应分片长度的数据传输完成时,所述DMA控制器关闭该***设备对应的传输通道的步骤,直至将所有数据从所述存储设备发送至所述多个***设备。
5.根据权利要求1所述的DMA传输方法,其特征在于,当任一***设备接收到对应分片长度的数据时,DMA控制器启动该***设备对应的传输通道,将所述数据进行传输;当所述数据传输完毕时,DMA控制器关闭该***设备对应的传输通道,包括:
当任一***设备接收到对应分片长度的数据时,所述DMA控制器启动该***设备对应的传输通道;
通过***总线采用该传输通道将所述数据传输至对应的存储位置;
当所述数据传输完毕时,所述DMA控制器关闭该***设备对应的传输通道,并向该***设备发送传输完成消息。
6.根据权利要求1所述的DMA传输方法,其特征在于,还包括:
当所有***设备的数据传输完成时,向所述处理器发送中断消息。
7.根据权利要求5所述的DMA传输方法,其特征在于,当所述数据传输完毕时,所述DMA控制器关闭该***设备对应的传输通道,并向该***设备发送传输完成消息,包括:
当所述数据传输完毕时,所述DMA控制器向所述处理器发送该***设备对应的传输通道的释放消息;
向该***设备发送所述传输完成消息。
8.一种DMA传输装置,其特征在于,包括:
传输通道配置模块,用于接收到多个***设备发送的传输请求,根据所述传输请求对所述多个***设备配置对应的传输通道;
第一发送模块,用于当任一***设备接收到对应分片长度的数据时,启动该***设备对应的传输通道,将所述数据进行传输;当所述数据传输完毕时,关闭该***设备对应的传输通道;
第二发送模块,用于对下一个接收到对应分片长度数据的***设备执行启动该***设备对应的传输通道,将所述数据进行传输,当所述数据传输完毕时,关闭该***设备对应的传输通道的步骤,直至所有***设备的数据传输完成。
9.一种计算机设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至4任一项所述的DMA传输方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述的DMA传输方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010614567.3A CN111831595A (zh) | 2020-06-30 | 2020-06-30 | 一种dma传输方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010614567.3A CN111831595A (zh) | 2020-06-30 | 2020-06-30 | 一种dma传输方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111831595A true CN111831595A (zh) | 2020-10-27 |
Family
ID=72900662
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010614567.3A Pending CN111831595A (zh) | 2020-06-30 | 2020-06-30 | 一种dma传输方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111831595A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5386532A (en) * | 1991-12-30 | 1995-01-31 | Sun Microsystems, Inc. | Method and apparatus for transferring data between a memory and a plurality of peripheral units through a plurality of data channels |
CN101034383A (zh) * | 2007-04-24 | 2007-09-12 | 北京中星微电子有限公司 | 一种实现软/硬件复用的dma控制器和传输方法 |
CN105122228A (zh) * | 2013-04-17 | 2015-12-02 | 密克罗奇普技术公司 | 具有混合的散射-聚集功能性的直接存储器存取控制器 |
CN106775477A (zh) * | 2016-12-19 | 2017-05-31 | 湖南国科微电子股份有限公司 | SSD主控BE Buffer、SSD主控、数据传输管理装置及方法 |
-
2020
- 2020-06-30 CN CN202010614567.3A patent/CN111831595A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5386532A (en) * | 1991-12-30 | 1995-01-31 | Sun Microsystems, Inc. | Method and apparatus for transferring data between a memory and a plurality of peripheral units through a plurality of data channels |
CN101034383A (zh) * | 2007-04-24 | 2007-09-12 | 北京中星微电子有限公司 | 一种实现软/硬件复用的dma控制器和传输方法 |
CN105122228A (zh) * | 2013-04-17 | 2015-12-02 | 密克罗奇普技术公司 | 具有混合的散射-聚集功能性的直接存储器存取控制器 |
CN106775477A (zh) * | 2016-12-19 | 2017-05-31 | 湖南国科微电子股份有限公司 | SSD主控BE Buffer、SSD主控、数据传输管理装置及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7953915B2 (en) | Interrupt dispatching method in multi-core environment and multi-core processor | |
CN109697122B (zh) | 任务处理方法、设备及计算机存储介质 | |
CN108536526B (zh) | 一种基于可编程硬件的资源管理方法以及装置 | |
WO2014176927A1 (zh) | 一种文件下载的方法、装置及*** | |
US11201836B2 (en) | Method and device for managing stateful application on server | |
CN109408243B (zh) | 一种基于rdma的数据处理方法、装置和介质 | |
CN112769905B (zh) | 一种基于numa架构的飞腾平台下高性能网卡性能优化方法 | |
CN104994032A (zh) | 一种信息处理的方法和装置 | |
CN113515320A (zh) | 一种硬件加速处理方法、装置以及服务器 | |
CN103324599A (zh) | 处理器间通信方法与***级芯片 | |
CN113037649B (zh) | 网络中断数据包的收发方法和装置、电子设备和存储介质 | |
KR20120072134A (ko) | 가상 데스크톱 가속 장치 및 방법 | |
US6223261B1 (en) | Communication system method and recording apparatus for performing arbitrary application processing | |
CN112822300B (zh) | 基于rdma的数据传输方法、装置及电子设备 | |
WO2021136099A1 (zh) | 数据传输方法、装置、设备及存储介质 | |
CN111404842B (zh) | 数据传输方法、装置及计算机存储介质 | |
CN115766044A (zh) | 一种基于用户态协议栈的通信方法及相应装置 | |
CN111831595A (zh) | 一种dma传输方法及相关装置 | |
CN110445580B (zh) | 数据发送方法及装置、存储介质、电子装置 | |
CN111404986A (zh) | 数据传输处理方法、设备和存储介质 | |
CN109167740B (zh) | 一种数据传输的方法和装置 | |
CN102117261B (zh) | 一种芯片内部处理器之间的通信方法 | |
EP2413248B1 (en) | Direct memory access device for multi-core system and operating method of the same | |
CN113630808A (zh) | 一种数据传输方法、第一设备、第二设备 | |
CN113204517A (zh) | 一种电力专用以太网控制器的核间共享方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201027 |