CN112765059A - 一种基于fpga的dma设备及dma数据搬移方法 - Google Patents
一种基于fpga的dma设备及dma数据搬移方法 Download PDFInfo
- Publication number
- CN112765059A CN112765059A CN202110076297.XA CN202110076297A CN112765059A CN 112765059 A CN112765059 A CN 112765059A CN 202110076297 A CN202110076297 A CN 202110076297A CN 112765059 A CN112765059 A CN 112765059A
- Authority
- CN
- China
- Prior art keywords
- data
- module
- moving
- channel
- target
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000012545 processing Methods 0.000 claims abstract description 19
- 238000010586 diagram Methods 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 235000003642 hunger Nutrition 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000037351 starvation Effects 0.000 description 1
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/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
- G06F13/26—Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control
-
- 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
- G06F2213/2806—Space or buffer allocation for DMA transfers
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
本申请公开了一种基于FPGA的DMA设备及DMA数据搬移方法,DMA设备包括:配置模块用于获取主机发送的配置信息,并基于配置信息向多通道模块中多个数据搬移通道分别下发数据搬移任务;配置信息包括每个通道待搬移的数据量、源地址、目的地址;多通道模块用于通过每个数据搬移通道基于对应的搬移任务向仲裁模块发送搬移请求;仲裁模块用于基于预设通道优先级从多个搬移请求中确定出第一目标请求,并处理第一目标请求以通过对应的数据搬移通道将第一存储设备中的目标数据搬移至第二存储设备,当第一存储设备中数据量不足,则基于预设通道优先级确定出第二目标请求进行处理。能够满足多个外部存储设备之间的数据搬移需求,提升数据搬移效率。
Description
技术领域
本申请涉及数据传输技术领域,特别涉及一种基于FPGA的DMA设备及DMA数据搬移方法。
背景技术
随着异构加速日益广泛的应用,基于FPGA(即Field Programmable Gate Array现场可编程与门阵列)的加速卡也发展迅速。加速卡FPGA通过PCIE接口与服务器主机连接,服务器主机通过PCIE(即peripheral component interconnect express,一种高速串行计算机扩展总线标准)接口将需要加速的数据发送给加速卡FPGA,加速卡FPGA处理完成后通过PCIE接口返回相关的数据。在数据传输过程中,DMA(即direct memory access,直接存储器访问)是常用的数据搬移设备,用于接收主机的搬移指令,申请总线控制权,进行数据搬移。
目前,如果系统中的外设较多,现有的DMA一次只能接收一次搬移指令,那就需要多个DMA同时工作才能满足要求,而这样显然会增加系统复杂性。而且因为都挂在同一总线上,多个DMA并不能同时搬移数据,同一时刻只有一个DMA能获取总线,进行数据搬移。这样总线就需要在多个DMA之间进行切换,效率较低。
发明内容
有鉴于此,本申请的目的在于提供一种基于FPGA的DMA设备及DMA数据搬移方法,能够满足多个外部存储设备之间的数据搬移需求,避免总线在多个DMA之间进行切换,提升数据搬移效率。其具体方案如下:
第一方面,本申请公开了一种基于FPGA的DMA设备,包括配置模块、多通道模块、仲裁模块,其中,
所述配置模块,用于获取主机发送的配置信息,并基于所述配置信息向所述多通道模块中相应的多个数据搬移通道分别下发对应的数据搬移任务;其中,所述配置信息包括每个所述数据搬移通道待搬移的数据量、源地址以及目的地址;
所述多通道模块,用于通过每个所述数据搬移通道基于对应的所述数据搬移任务向所述仲裁模块发送搬移请求;
所述仲裁模块,用于基于预设通道优先级从多个所述搬移请求中确定出第一目标请求,并处理所述第一目标请求以通过所述第一目标请求对应的所述数据搬移通道将第一存储设备中的目标数据搬移至第二存储设备,当所述第一目标请求对应的所述第一存储设备中数据量不足,则基于所述预设通道优先级确定出第二目标请求进行处理。
可选的,所述仲裁模块,具体用于基于所述预设通道优先级以及搬移请求对应的所述目的地址确定出所述第二目标请求进行处理。
可选的,所述仲裁模块,还用于当所述第一存储设备中数据量满足继续读取条件,则暂停处理所述第二目标请求,继续处理所述第一目标请求。
可选的,具体用于基于所述第一目标请求从所述第一存储设备中读取所述目标数据,并将所述目标数据放置于所述第一目标请求对应的所述数据搬移通道的缓存中,从所述缓存中读取所述目标数据写入所述第二存储设备中。
可选的,还包括:
状态模块,用于记录全部所述数据搬移通道对应的搬移状态。
可选的,所述仲裁模块还用于:
将所述搬移状态写入所述状态模块。
可选的,所述多通道模块还用于:
将所述搬移状态写入所述状态模块。
可选的,还包括:
中断模块,用于当任一所述数据搬移任务完成后,发送对应的中断至所述主机。
第二方面,本申请公开了一种基于FPGA的DMA数据搬移方法,包括:
通过配置模块获取主机发送的配置信息,并基于所述配置信息向多通道模块中相应的多个数据搬移通道分别下发对应的数据搬移任务;
通过所述多通道模块中每个所述数据搬移通道基于对应的所述数据搬移任务向仲裁模块发送搬移请求;
通过所述仲裁模块基于预设通道优先级从多个所述搬移请求中确定出第一目标请求,并处理所述第一目标请求以通过所述第一目标请求对应的所述数据搬移通道将第一存储设备中的目标数据搬移至第二存储设备,当所述第一目标请求对应的所述第一存储设备中数据量不足,则基于所述预设通道优先级确定出第二目标请求进行处理。
可选的,所述基于所述预设通道优先级确定出第二目标请求进行处理,包括:
基于所述预设通道优先级以及搬移请求对应的所述目的地址确定出所述第二目标请求进行处理。
可见,本申请公开的基于FPGA的DMA设备,包括配置模块、多通道模块、仲裁模块,其中,所述配置模块,用于获取主机发送的配置信息,并基于所述配置信息向所述多通道模块中相应的多个数据搬移通道分别下发对应的数据搬移任务;其中,所述配置信息包括每个所述数据搬移通道待搬移的数据量、源地址以及目的地址;所述多通道模块,用于通过每个所述数据搬移通道基于对应的所述数据搬移任务向所述仲裁模块发送搬移请求;所述仲裁模块,用于基于预设通道优先级从多个所述搬移请求中确定出第一目标请求,并处理所述第一目标请求以通过所述第一目标请求对应的所述数据搬移通道将第一存储设备中的目标数据搬移至第二存储设备,当所述第一目标请求对应的所述第一存储设备中数据量不足,则基于所述预设通道优先级确定出第二目标请求进行处理。也即,本申请通过配置数据搬移的源地址、目的地址和搬移数据量通过多个数据搬移通道执行多个数据搬移任务,通过仲裁模块确定出目标请求进行数据搬移,若当前目标请求对应的存储设备数据不足时,确定出新的目标请求进行数据搬移,避免等待时间过程,这样,能够满足多个外部存储设备之间的数据搬移需求,避免总线在多个DMA之间进行切换,提升数据搬移效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种基于FPGA的DMA设备结构示意图;
图2为本申请公开的一种具体的基于FPGA的DMA设备结构示意图;
图3为本申请公开的一种具体的基于FPGA的DMA设备结构示意图;
图4为本申请公开的一种具体的数据搬移示意图;
图5为本申请公开的一种基于FPGA的DMA数据搬移方法流程图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,如果系统中的外设较多,现有的DMA一次只能接收一次搬移指令,那就需要多个DMA同时工作才能满足要求,而这样显然会增加系统复杂性。而且因为都挂在同一总线上,多个DMA并不能同时搬移数据,同一时刻只有一个DMA能获取总线,进行数据搬移。这样总线就需要在多个DMA之间进行切换,效率较低。为此本申请提供了一种基于FPGA的DMA方案,能够满足多个外部存储设备之间的数据搬移需求,避免总线在多个DMA之间进行切换,提升数据搬移效率。
参见图1所示,本申请实施例公开一种基于FPGA的DMA设备,包括配置模块11、多通道模块12、仲裁模块13,其中,
所述配置模块11,用于获取主机发送的配置信息,并基于所述配置信息向所述多通道模块12中相应的多个数据搬移通道分别下发对应的数据搬移任务;其中,所述配置信息包括每个所述数据搬移通道待搬移的数据量、源地址以及目的地址。
所述多通道模块12,用于通过每个所述数据搬移通道基于对应的所述数据搬移任务向所述仲裁模块13发送搬移请求。
其中,多通道模块中的通道数量可以根据实际需求进行设定,比如4、16等,在此不做具体限定。
所述仲裁模块13,用于基于预设通道优先级从多个所述搬移请求中确定出第一目标请求,并处理所述第一目标请求以通过所述第一目标请求对应的所述数据搬移通道将第一存储设备中的目标数据搬移至第二存储设备,当所述第一目标请求对应的所述第一存储设备中数据量不足,则基于所述预设通道优先级确定出第二目标请求进行处理。
也即,本实施实施可以设置通道的优先级,先处理优先级最高的通道对应的请求。例如,通道1至通道4优先级依次降低,当通道1和通道2都有搬移任务时,优先执行通道1的搬移任务。但是当通道1的任务因对应待读取设备的数据不足而处于等待状态,那么就开始执行通道2的任务,这样避免等待,因为等待时间太久,DMA会失去总线控制权,如果需要就要再次申请总线控制权。
并且,当所述第一目标请求对应的所述第一存储设备中数据量不足,则将对应搬移任务的状态记为等待。具体的,存储设备自身进行数据量判断,当数据不足一次读取量时,存储设备则拉高等待信号告知DMA进入等待。也即,拉高信号通知仲裁模块数据量不足。例如,DMA在从存储里读取,而另一个设备在往存储里面写,如果DMA读的快了,存储的数据就会被读空,那就需要等待。
在具体的实施方式中,所述所述仲裁模块13具体用于基于所述第一目标请求从所述第一存储设备中读取所述目标数据,并将所述目标数据放置于所述第一目标请求对应的所述数据搬移通道的缓存中,从所述缓存中读取所述目标数据写入所述第二存储设备中。
具体的,所述仲裁模块基于第一目标请求生成符合Avalon总线协议格式的请求数据发送至FPGA Avalon总线,Avalon总线将请求数据发送至第一存储设备,读取出目标数据返回给仲裁模块,仲裁模块将目标数据存储至对应缓存中。
并且,所述仲裁模块13具体用于基于所述预设通道优先级以及搬移请求对应的所述目的地址确定出所述第二目标请求进行处理。
具体的,从未开始处理的搬移请求中确定出与第一目标请求对应的目的地址不同的且通道优先级最高的请求作为所述第二目标请求,确定出所述第二目标请求并对该第二目标请求进行处理。
需要指出的是,如果出现地址冲突,在后处理的请求会破坏相同目的地址的已搬移数据。
进一步的,所述仲裁模块,还用于当所述第一存储设备中数据量满足继续读取条件,则暂停处理所述第二目标请求,继续处理所述第一目标请求。
具体的,当第一存储设备中的数据量充足,则拉低等待信号,通知仲裁模块继续处理第一目标请求。
也即,当所述第一存储设备中的数据量充足时,则暂停处理所述第二目标请求,继续处理所述第一目标请求。
可见,本申请实施例公开的基于FPGA的DMA设备,包括配置模块、多通道模块、仲裁模块,其中,所述配置模块,用于获取主机发送的配置信息,并基于所述配置信息向所述多通道模块中相应的多个数据搬移通道分别下发对应的数据搬移任务;其中,所述配置信息包括每个所述数据搬移通道待搬移的数据量、源地址以及目的地址;所述多通道模块,用于通过每个所述数据搬移通道基于对应的所述数据搬移任务向所述仲裁模块发送搬移请求;所述仲裁模块,用于基于预设通道优先级从多个所述搬移请求中确定出第一目标请求,并处理所述第一目标请求以通过所述第一目标请求对应的所述数据搬移通道将第一存储设备中的目标数据搬移至第二存储设备,当所述第一目标请求对应的所述第一存储设备中数据量不足,则基于所述预设通道优先级确定出第二目标请求进行处理。也即,本申请实施例通过配置数据搬移的源地址、目的地址和搬移数据量通过多个数据搬移通道执行多个数据搬移任务,通过仲裁模块确定出目标请求进行数据搬移,若当前目标请求对应的存储设备数据不足时,确定出新的目标请求进行数据搬移,避免等待时间过程,这样,能够满足多个外部存储设备之间的数据搬移需求,避免总线在多个DMA之间进行切换,提升数据搬移效率。
参见图2所示,本申请实施例公开了一种具体的基于FPGA的DMA设备,包括配置模块21、多通道模块22、仲裁模块23,状态模块24,中断模块25,其中,
所述配置模块21,用于获取主机发送的配置信息,并基于所述配置信息向所述多通道模块22中相应的多个数据搬移通道分别下发对应的数据搬移任务;其中,所述配置信息包括每个所述数据搬移通道待搬移的数据量、源地址以及目的地址;
所述多通道模块22,用于通过每个所述数据搬移通道基于对应的所述数据搬移任务向所述仲裁模块23发送搬移请求;
所述仲裁模块23,用于基于预设通道优先级从多个所述搬移请求中确定出第一目标请求,并处理所述第一目标请求以通过所述第一目标请求对应的所述数据搬移通道将第一存储设备中的目标数据搬移至第二存储设备,当所述第一目标请求对应的所述第一存储设备中数据量不足,则基于所述预设通道优先级确定出第二目标请求进行处理。
状态模块24,用于记录全部所述数据搬移通道对应的搬移状态。
其中,所述搬移状态包括:各个数据搬移通道内部fifo(First Input FirstOutput,先进先出)空满状态,当前数据搬移通道任务状态包括正在搬移、等待、结束,以及剩余数据量等。
在一种具体的实施方式中,所述仲裁模块23还用于:将所述搬移状态写入所述状态模块。
在另一种具体的实施方式中,所述多通道模块22还用于:将所述搬移状态写入所述状态模块。
也即,可以通过仲裁模块23或多通道模块22将所述搬移状态写入所述状态模块。
中断模块25,用于当任一所述数据搬移任务完成后,发送对应的中断至所述主机。
在具体的实施方式中,可以发送中断或其他信息告知主机任务完成。当然,主机也可以屏蔽这些中断,通过读取状态模块获取对应信息。
例如,参见图3所示,本申请实施例公开了一种具体的基于FPGA的DMA设备。以SRAM,DDR,flash三个设备之间的数据搬移来说明整个DMA的工作流程。如图4所示,图4为本申请实施例公开的一种具体的数据搬移示意图。Host向配置模块下发的配置信息为channel1从SRAM的地址A搬移256M的数据到DDR的地址C,channel2从flash的地址E搬移256M数据到DDR的地址D,channel3从SRAM的地址B搬移256M数据到flash的地址E,channel4从flash地址F搬移100M数据到DDR的地址G。配置模块收到host下发的配置信息后,启动DMA开始工作。由于同一时刻只能有一个设备占据总线,channel1优先级最高,DMA首先开始执行A->C的数据搬移,状态模块记录状态。此时仲裁模块根据情况开始处理channel2的请求,执行E->D的数据搬移,channel2搬到64M时,SRAM的数据充足了,channel1重新进入搬移状态,此时会暂停channel2,继续执行A->C搬移。当channel1执行到192M搬移量时,SRAM再次等待,此时channel又进入等待,channel2开始继续执行。当channel2执行到128M时,如果flash也出现数据不足或者其他情况需要等待,channel2也进入等待状态。此时正常情况下应该启动channel3,执行B->E的数据搬移,但是因为channel2中也有地址E相关的搬移,而且channel2的优先级高,如果在host应用层没有软件进行顺序限制的情况下,如果此时执行B->E的数据搬移,会破坏E的数据,导致E->D搬移数据错误。仲裁模块在有地址冲突的情况下,会阻止优先级低的channel启动,所以此时不会执行channel3,此时会启动channel4。当某个channel完成搬移任务后,中断模块会发出对应中断告知host。这样,从宏观上看,channel1和channel2以及channel4的任务几乎是并行执行的,在channel1进入等待的情况下,channel2继续执行,channel2等待时,channel4继续执行。如果channel的数量足够多,同一时刻很难出现所有channel同时等待的情况,DMA会一直有总线的控制权,数据传输效率很高,这样就不需要多个DMA来共同完成多个搬移任务。而且host不需要在软件层避免channel2与channel3的冲突,DMA自己逻辑能够确保不会发生冲突。
这样,基于FPGA实现时分多通道DMA,可以将DMA的实现逻辑封装成IP独立使用,能够适用多个外设之间的数据搬移。提升灵活性和可移植性以及可扩展性,在可以直接调用,为相应产品的开发提供便利,缩短开发周期。
参见图5所示,本申请实施例公开了一种基于FPGA的DMA数据搬移方法,包括:
步骤S11:通过配置模块获取主机发送的配置信息,并基于所述配置信息向多通道模块中相应的多个数据搬移通道分别下发对应的数据搬移任务。
步骤S12:通过所述多通道模块中每个所述数据搬移通道基于对应的所述数据搬移任务向仲裁模块发送搬移请求。
步骤S13:通过所述仲裁模块基于预设通道优先级从多个所述搬移请求中确定出第一目标请求,并处理所述第一目标请求以通过所述第一目标请求对应的所述数据搬移通道将第一存储设备中的目标数据搬移至第二存储设备,当所述第一目标请求对应的所述第一存储设备中数据量不足,则基于所述预设通道优先级确定出第二目标请求进行处理。
在具体的实施方式中,通过仲裁模块基于所述第一目标请求从所述第一存储设备中读取所述目标数据,并将所述目标数据放置于所述第一目标请求对应的所述数据搬移通道的缓存中,从所述缓存中读取所述目标数据写入所述第二存储设备中。
在具体的实施方式中,可以通过所述仲裁模块基于所述预设通道优先级以及搬移请求对应的所述目的地址确定出所述第二目标请求进行处理。
并且,当所述第一存储设备中数据量满足继续读取条件,通过所述仲裁模块暂停处理所述第二目标请求,继续处理所述第一目标请求。
进一步的,所述方法还包括:
通过状态模块记录全部所述数据搬移通道对应的搬移状态。
相应的,所述方法还包括:通过所述仲裁模块将所述搬移状态写入所述状态模块,或通过所述多通道模块将所述搬移状态写入所述状态模块。
另外,所述方法还包括:
通过中断模块当任一所述数据搬移任务完成后,发送对应的中断至所述主机。
可见,本申请实施例通过配置模块获取主机发送的配置信息,并基于所述配置信息向多通道模块中相应的多个数据搬移通道分别下发对应的数据搬移任务;通过所述多通道模块中每个所述数据搬移通道基于对应的所述数据搬移任务向仲裁模块发送搬移请求;通过所述仲裁模块基于预设通道优先级从多个所述搬移请求中确定出第一目标请求,并处理所述第一目标请求以通过所述第一目标请求对应的所述数据搬移通道将第一存储设备中的目标数据搬移至第二存储设备,当所述第一目标请求对应的所述第一存储设备中数据量不足,则基于所述预设通道优先级确定出第二目标请求进行处理。也即,本申请实施例通过配置数据搬移的源地址、目的地址和搬移数据量通过多个数据搬移通道执行多个数据搬移任务,通过仲裁模块确定出目标请求进行数据搬移,若当前目标请求对应的存储设备数据不足时,确定出新的目标请求进行数据搬移,避免等待时间过程,这样,能够满足多个外部存储设备之间的数据搬移需求,避免总线在多个DMA之间进行切换,提升数据搬移效率。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的方法而言,由于其与实施例公开的设备相对应,所以描述的比较简单,相关之处参见设备部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本申请所提供的一种基于FPGA的DMA设备及DMA数据搬移方法进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种基于FPGA的DMA设备,其特征在于,包括配置模块、多通道模块、仲裁模块,其中,
所述配置模块,用于获取主机发送的配置信息,并基于所述配置信息向所述多通道模块中相应的多个数据搬移通道分别下发对应的数据搬移任务;其中,所述配置信息包括每个所述数据搬移通道待搬移的数据量、源地址以及目的地址;
所述多通道模块,用于通过每个所述数据搬移通道基于对应的所述数据搬移任务向所述仲裁模块发送搬移请求;
所述仲裁模块,用于基于预设通道优先级从多个所述搬移请求中确定出第一目标请求,并处理所述第一目标请求以通过所述第一目标请求对应的所述数据搬移通道将第一存储设备中的目标数据搬移至第二存储设备,当所述第一目标请求对应的所述第一存储设备中数据量不足,则基于所述预设通道优先级确定出第二目标请求进行处理。
2.根据权利要求1所述的基于FPGA的DMA设备,其特征在于,所述仲裁模块,具体用于基于所述预设通道优先级以及搬移请求对应的所述目的地址确定出所述第二目标请求进行处理。
3.根据权利要求1所述的基于FPGA的DMA设备,其特征在于,所述仲裁模块,还用于当所述第一存储设备中数据量满足继续读取条件,则暂停处理所述第二目标请求,继续处理所述第一目标请求。
4.根据权利要求1所述的基于FPGA的DMA设备,其特征在于,所述仲裁模块,具体用于基于所述第一目标请求从所述第一存储设备中读取所述目标数据,并将所述目标数据放置于所述第一目标请求对应的所述数据搬移通道的缓存中,从所述缓存中读取所述目标数据写入所述第二存储设备中。
5.根据权利要求1所述的基于FPGA的DMA设备,其特征在于,还包括:
状态模块,用于记录全部所述数据搬移通道对应的搬移状态。
6.根据权利要求5所述的基于FPGA的DMA设备,其特征在于,所述仲裁模块还用于:
将所述搬移状态写入所述状态模块。
7.根据权利要求5所述的基于FPGA的DMA设备,其特征在于,所述多通道模块还用于:
将所述搬移状态写入所述状态模块。
8.根据权利要求1所述的基于FPGA的DMA设备,其特征在于,还包括:
中断模块,用于当任一所述数据搬移任务完成后,发送对应的中断至所述主机。
9.一种基于FPGA的DMA数据搬移方法,其特征在于,包括:
通过配置模块获取主机发送的配置信息,并基于所述配置信息向多通道模块中相应的多个数据搬移通道分别下发对应的数据搬移任务;
通过所述多通道模块中每个所述数据搬移通道基于对应的所述数据搬移任务向仲裁模块发送搬移请求;
通过所述仲裁模块基于预设通道优先级从多个所述搬移请求中确定出第一目标请求,并处理所述第一目标请求以通过所述第一目标请求对应的所述数据搬移通道将第一存储设备中的目标数据搬移至第二存储设备,当所述第一目标请求对应的所述第一存储设备中数据量不足,则基于所述预设通道优先级确定出第二目标请求进行处理。
10.根据权利要求9所述的基于FPGA的DMA数据搬移方法,其特征在于,所述基于所述预设通道优先级确定出第二目标请求进行处理,包括:
基于所述预设通道优先级以及搬移请求对应的所述目的地址确定出所述第二目标请求进行处理。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110076297.XA CN112765059A (zh) | 2021-01-20 | 2021-01-20 | 一种基于fpga的dma设备及dma数据搬移方法 |
PCT/CN2021/134142 WO2022156370A1 (zh) | 2021-01-20 | 2021-11-29 | 一种基于fpga的dma设备及dma数据搬移方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110076297.XA CN112765059A (zh) | 2021-01-20 | 2021-01-20 | 一种基于fpga的dma设备及dma数据搬移方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112765059A true CN112765059A (zh) | 2021-05-07 |
Family
ID=75701770
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110076297.XA Withdrawn CN112765059A (zh) | 2021-01-20 | 2021-01-20 | 一种基于fpga的dma设备及dma数据搬移方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112765059A (zh) |
WO (1) | WO2022156370A1 (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113434441A (zh) * | 2021-06-24 | 2021-09-24 | 深圳市航顺芯片技术研发有限公司 | 一种dma传输方法、装置、控制器及可读存储介质 |
CN113672530A (zh) * | 2021-10-21 | 2021-11-19 | 苏州浪潮智能科技有限公司 | 一种服务器及其排序设备 |
CN113868039A (zh) * | 2021-08-30 | 2021-12-31 | 浪潮电子信息产业股份有限公司 | 一种测试方法、装置及相关设备 |
CN114330691A (zh) * | 2021-12-30 | 2022-04-12 | 北京奕斯伟计算技术有限公司 | 用于直接存储器访问装置的数据搬运方法 |
CN114399034A (zh) * | 2021-12-30 | 2022-04-26 | 北京奕斯伟计算技术有限公司 | 用于直接存储器访问装置的数据搬运方法 |
WO2022156370A1 (zh) * | 2021-01-20 | 2022-07-28 | 苏州浪潮智能科技有限公司 | 一种基于fpga的dma设备及dma数据搬移方法 |
CN114879584A (zh) * | 2022-07-05 | 2022-08-09 | 成都智明达电子股份有限公司 | 一种基于fpga的dma控制器边界对齐方法及其电路 |
CN115599717A (zh) * | 2022-11-15 | 2023-01-13 | 浪潮电子信息产业股份有限公司(Cn) | 一种数据搬移方法、装置、设备及介质 |
CN115658571A (zh) * | 2022-11-16 | 2023-01-31 | 浪潮电子信息产业股份有限公司 | 一种数据传输方法、装置、电子设备及介质 |
CN115964155A (zh) * | 2023-03-16 | 2023-04-14 | 燧原智能科技(成都)有限公司 | 芯片内数据处理硬件、芯片内数据处理方法及ai平台 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115833920B (zh) * | 2023-02-14 | 2023-04-25 | 北京融为科技有限公司 | 一种解调数据的传输方法和装置 |
CN117614915B (zh) * | 2024-01-24 | 2024-04-05 | 上海合见工业软件集团有限公司 | Fpga片内接口数据交换路由系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7594057B1 (en) * | 2006-01-09 | 2009-09-22 | Qlogic, Corporation | Method and system for processing DMA requests |
CN102231142B (zh) * | 2011-07-21 | 2013-12-11 | 浙江大学 | 一种带有仲裁器的多通道dma控制器 |
CN109359069A (zh) * | 2018-09-25 | 2019-02-19 | 济南浪潮高新科技投资发展有限公司 | 一种数据传输方法及装置 |
CN109408428B (zh) * | 2018-10-29 | 2021-05-28 | 京信通信系统(中国)有限公司 | 直接内存存取的控制方法、装置及物理层加速卡 |
CN110083461B (zh) * | 2019-03-29 | 2021-09-24 | 郑州信大捷安信息技术股份有限公司 | 一种基于fpga的多任务处理系统及方法 |
CN112765059A (zh) * | 2021-01-20 | 2021-05-07 | 苏州浪潮智能科技有限公司 | 一种基于fpga的dma设备及dma数据搬移方法 |
-
2021
- 2021-01-20 CN CN202110076297.XA patent/CN112765059A/zh not_active Withdrawn
- 2021-11-29 WO PCT/CN2021/134142 patent/WO2022156370A1/zh active Application Filing
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022156370A1 (zh) * | 2021-01-20 | 2022-07-28 | 苏州浪潮智能科技有限公司 | 一种基于fpga的dma设备及dma数据搬移方法 |
CN113434441A (zh) * | 2021-06-24 | 2021-09-24 | 深圳市航顺芯片技术研发有限公司 | 一种dma传输方法、装置、控制器及可读存储介质 |
CN113868039A (zh) * | 2021-08-30 | 2021-12-31 | 浪潮电子信息产业股份有限公司 | 一种测试方法、装置及相关设备 |
CN113868039B (zh) * | 2021-08-30 | 2024-02-09 | 浪潮电子信息产业股份有限公司 | 一种测试方法、装置及相关设备 |
CN113672530A (zh) * | 2021-10-21 | 2021-11-19 | 苏州浪潮智能科技有限公司 | 一种服务器及其排序设备 |
CN114330691B (zh) * | 2021-12-30 | 2023-08-29 | 北京奕斯伟计算技术股份有限公司 | 用于直接存储器访问装置的数据搬运方法 |
CN114330691A (zh) * | 2021-12-30 | 2022-04-12 | 北京奕斯伟计算技术有限公司 | 用于直接存储器访问装置的数据搬运方法 |
CN114399034A (zh) * | 2021-12-30 | 2022-04-26 | 北京奕斯伟计算技术有限公司 | 用于直接存储器访问装置的数据搬运方法 |
CN114879584A (zh) * | 2022-07-05 | 2022-08-09 | 成都智明达电子股份有限公司 | 一种基于fpga的dma控制器边界对齐方法及其电路 |
CN114879584B (zh) * | 2022-07-05 | 2022-10-28 | 成都智明达电子股份有限公司 | 一种基于fpga的dma控制器边界对齐方法及其电路 |
CN115599717B (zh) * | 2022-11-15 | 2023-03-10 | 浪潮电子信息产业股份有限公司 | 一种数据搬移方法、装置、设备及介质 |
CN115599717A (zh) * | 2022-11-15 | 2023-01-13 | 浪潮电子信息产业股份有限公司(Cn) | 一种数据搬移方法、装置、设备及介质 |
CN115658571A (zh) * | 2022-11-16 | 2023-01-31 | 浪潮电子信息产业股份有限公司 | 一种数据传输方法、装置、电子设备及介质 |
CN115658571B (zh) * | 2022-11-16 | 2023-02-28 | 浪潮电子信息产业股份有限公司 | 一种数据传输方法、装置、电子设备及介质 |
CN115964155A (zh) * | 2023-03-16 | 2023-04-14 | 燧原智能科技(成都)有限公司 | 芯片内数据处理硬件、芯片内数据处理方法及ai平台 |
Also Published As
Publication number | Publication date |
---|---|
WO2022156370A1 (zh) | 2022-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112765059A (zh) | 一种基于fpga的dma设备及dma数据搬移方法 | |
KR970000910B1 (ko) | 멀티미디어 타스크 컴퓨터 시스템 및 동작 제어 방법 | |
JP5546635B2 (ja) | データ転送装置およびその制御方法 | |
CN112947857B (zh) | 一种数据搬移方法、装置、设备及计算机可读存储介质 | |
CN111190842B (zh) | 直接存储器访问、处理器、电子设备和数据搬移方法 | |
US20200356503A1 (en) | Pcie root complex message interrupt generation method using endpoint | |
CN113535425A (zh) | 一种数据发送方法、装置、电子设备及存储介质 | |
CN103106164A (zh) | 一种高效dma控制器 | |
US8756356B2 (en) | Pipe arbitration using an arbitration circuit to select a control circuit among a plurality of control circuits and by updating state information with a data transfer of a predetermined size | |
CN111290983A (zh) | Usb传输设备及传输方法 | |
CN109992539B (zh) | 双主机协同工作装置 | |
JP2006268753A (ja) | Dma回路及びコンピュータシステム | |
JP2014167818A (ja) | データ転送装置およびデータ転送方法 | |
WO2007039933A1 (ja) | 演算処理装置 | |
JP2008503833A (ja) | 並列通信バスに連結された装置内で割込みメッセージを待ち行列に入れるためのコンピュータシステム及び方法 | |
JPH0656602B2 (ja) | キヤツシユを有するプロセツサのための優先制御システム | |
JPH11232213A (ja) | 入出力装置におけるデータ転送方式 | |
JP2008503834A (ja) | 並列通信バスを介して割り込みメッセージを伝送するためのコンピュータシステムおよび方法 | |
JPH0844662A (ja) | 情報処理装置 | |
CN109597770B (zh) | 半导体装置和半导体装置中使用的方法 | |
CN111930214B (zh) | 一种fpga加速卡复位的方法、装置及fpga加速卡 | |
CN116225318A (zh) | 命令调度方法、闪存控制器、闪存设备及存储介质 | |
JPH0844661A (ja) | 情報処理装置 | |
US20050165988A1 (en) | Bus communication system | |
JP2015215641A (ja) | 情報処理装置,エミュレーションプログラム,及びエミュレーション方法 |
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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210507 |
|
WW01 | Invention patent application withdrawn after publication |