CN109766296A - 一种数据处理方法、装置、系统和dma控制器 - Google Patents
一种数据处理方法、装置、系统和dma控制器 Download PDFInfo
- Publication number
- CN109766296A CN109766296A CN201910016839.7A CN201910016839A CN109766296A CN 109766296 A CN109766296 A CN 109766296A CN 201910016839 A CN201910016839 A CN 201910016839A CN 109766296 A CN109766296 A CN 109766296A
- Authority
- CN
- China
- Prior art keywords
- descriptor
- data
- dma
- buffer queue
- sent
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 26
- 238000013508 migration Methods 0.000 claims abstract description 100
- 230000005012 migration Effects 0.000 claims abstract description 100
- 230000001133 acceleration Effects 0.000 claims abstract description 35
- 238000012163 sequencing technique Methods 0.000 claims abstract description 21
- 238000000034 method Methods 0.000 claims abstract description 20
- 238000003780 insertion Methods 0.000 claims abstract description 19
- 230000037431 insertion Effects 0.000 claims abstract description 19
- 230000005540 biological transmission Effects 0.000 claims abstract description 17
- 238000012545 processing Methods 0.000 claims abstract description 16
- 238000004590 computer program Methods 0.000 claims description 11
- 238000013507 mapping Methods 0.000 claims description 11
- 230000006870 function Effects 0.000 claims description 9
- 102100037060 Forkhead box protein D3 Human genes 0.000 claims description 4
- 101001029308 Homo sapiens Forkhead box protein D3 Proteins 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 claims 1
- 230000000694 effects Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 4
- 230000002045 lasting effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Landscapes
- Bus Control (AREA)
Abstract
本发明公开了一种数据处理方法,该方法包括:在接收目标终端发送的迁移请求时,获取各个寄存器的状态信息;利用状态信息确定出处于空闲状态的目标寄存器,并利用目标寄存器接收目标终端发送的数据迁移指令;利用数据迁移指令生成描述符,并按照描述符插入规则将描述符插入缓存队列;按照缓存队列的先后顺序,将描述符发送给DMA搬移器,以使DMA搬移器在服务器主机和加速设备之间进行数据搬移。该方法可提高服务器主机与加速设备之间的数据传输效率。本发明还公开了一种数据处理装置、系统、可读存储介质和DMA控制器,具有相应的技术效果。
Description
技术领域
本发明涉及计算机应用技术领域,特别是涉及一种数据处理方法、装置、系统、可读存储介质和DMA控制器。
背景技术
随着异构加速日益广泛的应用,基于诸如FPGA的加速设备也发展迅速。FPGA通过PCIE接口与服务器主机连接,服务器主机通过PCIE接口将需要加速的数据发送给FPGA,FPGA处理完成后通过PCIE接口返回相关的数据。在PCIE接口两侧的服务器主机与FPGA的数据传输中,数据传输量很大,为了提升传输速率,于是在PCIE接口引入DMA机制,解决了与服务器主机之间的大数据量的传输问题。
该DMA(Direct Memory Access,直接内存存取)机制主要:接收数据迁移相关指令,然后执行数据搬移,数据搬移完成后向服务器主机发送中断。也就是说,PEIE接口中的DMA功能主要分为两个,一个是DMA控制器,用于负责接收和解析数据迁移指令,另一个是DMA搬移器,用于负责根据指令在服务器主机的内存和FPGA的片上存储器之间搬移对应的数据。
现有单队列DMA控制器,接收数据迁移指令,由于DMA控制器接收和解析指令需要时间,因此用于接收和存储数据迁移指令的寄存器被占用较长时间,而在这段时间内,无法接收下一个数据迁移指令。当需要在服务器主机和加速设备之间搬移各种不同大小数据包的时,数据传输速率会有较大的波动。具体的,如果传输的数据包都是数据量很小的包,则数据搬移占据的时间占总时间的比率下降,服务器主机和加速设备之间的数据传输效率会有明显下降,影响数据处理效率。
综上所述,如何有效地解决服务器主机与加速设备之间的数据传输效率等问题,是目前本领域技术人员急需解决的技术问题。
发明内容
本发明的目的是提供一种数据处理方法、装置、系统、可读存储介质和DMA控制器,以实现数据迁移请求的流水线操作,提升服务器主机与加速设备之间的数据传输效率,进一步提升异构加速的数据处理效率。
为解决上述技术问题,本发明提供如下技术方案:
一种数据处理方法,包括:
在接收目标终端发送的迁移请求时,获取各个寄存器的状态信息;
利用所述状态信息确定出处于空闲状态的目标寄存器,并利用所述目标寄存器接收所述目标终端发送的数据迁移指令;
利用所述数据迁移指令生成描述符,并按照描述符插入规则将所述描述符插入缓存队列;
按照所述缓存队列的先后顺序,将所述描述符发送给DMA搬移器,以使所述DMA搬移器在服务器主机和加速设备之间进行数据搬移。
优选地,在各个所述寄存器与缓存队列具有映射关系时,所述按照描述符插入规则将所述描述符插入缓存队列,包括:
将所述描述符插入与所述目标寄存器具有所述映射关系的目标缓存队列。
优选地,按照所述缓存队列的先后顺序,将所述描述符发送给DMA搬移器,包括:
按照缓存队列轮询顺序,依次发送每一个所述缓存队列位于队首的所述描述符。
优选地,按照所述缓存队列的先后顺序,将所述描述符发送给DMA搬移器,包括:
依次发送当前缓存队列位于队首的所述描述符;
在所述当前缓存队列内无所述描述符时,则按照优先权等级或时间先后关系重新确定所述当前缓存队列。
优选地,所述按照描述符插入规则将所述描述符插入缓存队列,包括:
按照描述符生成顺序,将所述描述符插入所述缓存队列。
优选地,在将所述描述符发送给DMA搬移器之后,还包括:
接收所述DMA搬移器返回的描述符表,将所述描述符表内的描述符插入所述缓存队列。
一种数据处理装置,包括:
寄存器状态信息获取模块,用于在接收目标终端发送的迁移请求时,获取各个寄存器的状态信息;
数据迁移信息获取模块,用于利用所述状态信息确定出处于空闲状态的目标寄存器,并利用所述目标寄存器接收所述目标终端发送的数据迁移指令;
描述符生成模块,用于利用所述数据迁移指令生成描述符,并按照描述符插入规则将所述描述符插入缓存队列;
描述符执行模块,用于按照所述缓存队列的先后顺序,将所述描述符发送给DMA搬移器,以使所述DMA搬移器在服务器主机和加速设备之间进行数据搬移。
一种DMA控制器,包括:
第一数据接口,用于与发送数据迁移指令的目标终端建立通信连接;
第二数据接口,用于与DMA搬移器建立通信连接;
存储器,用于存储计算机程序,所述存储器包括多个用于接收数据迁移指令的寄存器;
处理器,用于执行所述计算机程序时实现如上述数据处理方法的步骤;
其中,所述第一数据接口包括FPGA接口、Avalon-MM接口和Avalon-ST接口中的至少一种。
一种数据处理系统,包括:
服务器主机、加速设备、DMA搬移器、目标终端和如上述的DMA控制器;
所述目标终端通过所述第一数据接口与所述DMA控制器建立通信连接,所述DMA搬移器通过所述第二数据接口与所述DMA控制器建立通信连接;
所述服务器主机用于访问所述DMA控制器,以使所述DMA控制器获得描述符,所述DMA搬移器执行所述DMA控制器发送的描述符,在所述服务器主机和所述加速设备之间进行数据搬移,所述加速设备用于对所述服务器主机中的数据处理过程进行加速。
一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述数据处理方法的步骤。
应用本发明实施例所提供的方法,在接收目标终端发送的迁移请求时,获取各个寄存器的状态信息;利用状态信息确定出处于空闲状态的目标寄存器,并利用目标寄存器接收目标终端发送的数据迁移指令;利用数据迁移指令生成描述符,并按照描述符插入规则将描述符插入缓存队列;按照缓存队列的先后顺序,将描述符发送给DMA搬移器,以使DMA搬移器在服务器主机和加速设备之间进行数据搬移。
在接收到目标终端发送的迁移请求时,可通过获取各个寄存器的状态信息,从多个寄存器中确定出一个处于空闲状态的目标寄存器。然后,利用处于空闲状态的目标寄存器接收目标终端发送的数据迁移指令,然后利用数据迁移指令生成描述符,并按照描述符插入规则将描述符插入缓存队列中。按照缓存队列的先后顺序,将描述符发送给DMA搬移器,以使DMA搬移器在服务器主机和加速设备之间进行数据搬移。在接收到迁移请求时,便可从多个寄存器中确定出一个目标寄存器,以接收数据迁移指令。多个寄存器之间互不干扰,便可实现持续接收数据迁移指令,以避免在接收数据迁移指令和对数据迁移指令进行解析得到描述符期间,由于寄存器被占用导致无法接收下一个数据迁移指令的问题。配合缓存队列便可实现数据迁移指令的接收、解析和执行之间就形成了流水线的操作,可提高服务器主机与加速设备之间的数据传输效率。
相应地,本发明实施例还提供了与上述数据处理方法相对应的数据处理装置、系统、可读存储介质和DMA控制器,具有上述技术效果,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种数据处理方法的实施流程图;
图2为本发明实施例中一种数据处理装置的结构示意图;
图3为本发明实施例中一种DMA控制器的结构示意图;
图4为本发明实施例中一种数据处理系统的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一:
请参考图1,图1为本发明实施例中一种数据处理方法的流程图,该方法可应用于DMA控制器中,该方法包括以下步骤:
S101、在接收目标终端发送的迁移请求时,获取各个寄存器的状态信息。
其中,目标终端可以为异构加速中被加速的服务器主机,也可为非该服务器主机的其他能够向DMA控制器发送迁移请求,并能够访问DMA控制器的寄存器的终端设备(即除该服务器主机之外的其他用户逻辑master)。当为目标终端非被加速的服务器主机时,可通过在DMA控制器上设置一个专门用于连接该目标终端的数据接口,如FPGA接口、Avalon-MM接口和Avalon-ST接口,能够实现通信连接即可。
需要说明的是,在本发明实施例中,DMA控制器包括多个用于接收数据迁移指令的寄存器。其中,考虑到实际应用中,数据迁移指令所需的存储空间可能一个独立的寄存器无法满足,因此和将一组寄存器作为一个独立寄存器使用。
目标终端在需要控制异构加速时,可通过向DMA控制器发送迁移请求。DMA控制器接收到迁移请求之后,便可获取各个寄存器的状态信息。其中,寄存器的状态信息可分为空闲状态和繁忙状态,其中繁忙状态即寄存器正在接收数据迁移指令或处于保存数据迁移指令的使用阶段,相应地,空闲状态与该繁忙状态相对应,即寄存器处于一种等待被使用的状态。具体的,可对DMA控制器内的多个寄存器设置状态标签,当状态变更时,对状态标签进行调整即可。例如,在使用寄存器时,将状态标签调整为繁忙状态标签,在释放寄存器时将状态标签调整为空闲状态标签。
S102、利用状态信息确定出处于空闲状态的目标寄存器,并利用目标寄存器接收目标终端发送的数据迁移指令。
得到各个寄存器的状态信息之后,便可得知哪些寄存器处于繁忙状态,哪些寄存器处于空闲状态,然后从处于空闲状态的寄存器中确定出一个目标寄存器。具体的,若处于空闲状态的寄存器为多个时,则可在多个寄存器中随机选择一个寄存器作为目标寄存器;若仅有一个寄存器处于空闲状态,则可直接将该寄存器作为目标寄存器。得到目标寄存器之后,便可利用目标寄存器接收目标终端发送的数据迁移指令。具体的,可通知目标终端可通过配置目标寄存器发送数据迁移指令,目标终端接收到通知之后,便对目标寄存器进行配置操作。如此,便可通过读取目标寄存器的数据信息获得数据迁移指令。
S103、利用数据迁移指令生成描述符,并按照描述符插入规则将描述符插入缓存队列。
利用数据迁移指令生成描述符的具体实现过程可为先解析数据迁移指令,得到数据迁移信息,进而将数据迁移信息转换成描述符。对于具体如何解析数据迁移指令和如何生成描述符,可参见现有的描述符生成规则进行,在此不再赘述。在生成描述符之后,便可按照描述符插入规则,将描述符插入缓存队列中。
优选地,需要说明的是,由于有多个可接受数据迁移指令的寄存器,因此利用数据迁移指令生成描述符的过程可并行执行,为了保障描述符的正常执行,还可相应设置一个缓存队列,以及描述符插入缓存队列的描述符插入规则。
具体的,当只有一个缓存队列时,按照描述符生成顺序,将描述符插入缓存队列。即缓存队列中的描述符顺序与描述符生成顺序保持一致。当然,还可为不同的寄存器配置不同的优先权,在插入缓存队列时,可按照优先权的权重进行插入,以使高优先权的描述符优先被执行。
在各个寄存器与缓存队列具有映射关系时,即存在多个缓存队列时,可将描述符插入与目标寄存器具有映射关系的目标缓存队列。即来自对不同的寄存器的数据迁移指令所生成的描述符分别插入对应的目标缓存队列中,以实现集中管理。在利用数据迁移信息生成描述符时,可将描述符插入与目标寄存器具体映射关系的目标缓存队列中。具体的,可为不同寄存器中读取的数据迁移信息规定其生成的描述符的ID进行限定。例如若存在4个寄存器时,规定描述符ID共10位(bit),其中高2位表示表示描述符即将插入那个缓存队列,而其余8位用于表示在缓存队列中的唯一标识,在生成描述符时,规定第一个寄存器生成的描述符ID的高2位为“00”,第二个寄存器生成的描述符ID的高2位为“01”,第三个寄存器生成的描述符ID的高2位为“10”,第四个寄存器生成的描述符ID的高2位为“11”,又令描述符ID的高2位为“00”的描述符插入第一缓存队列,描述符ID的高2位为“01”的描述符插入第二缓存队列,描述符ID的高2位为“10”的描述符插入第三缓存队列,描述符ID的高2位为“11”的描述符插入第四缓存队列。
S104、按照缓存队列的先后顺序,将描述符发送给DMA搬移器,以使DMA搬移器在服务器主机和加速设备之间进行数据搬移。
将描述符插入缓存队列之后,便可按照缓存队列的先后顺序将描述符发送给DMA搬移器。具体的,当仅有一个缓存队列时,则直接按照该缓存队列的先后顺序将描述符发送给DMA搬移器即可。
当存在多个缓存队列时,发送描述符的方式包括但不限于以下两种模式:
模式一:
当存在多个缓存队列时,则按照缓存队列轮询顺序,依次发送每一个缓存队列位于队首的描述符。具体的,可按照缓存队列轮询顺序,依次发送每一个缓存队列位于队首的描述符。例如,当存在A、B和C三个缓存队列时,且这三个队列中均有需要被执行的描述符,此时可先发送A队列中位于队首的描述符,而后发送B队列中位于队首的描述符,再发送位于C队列中位于队首的描述符,紧接着再发送A队列中位于队首的描述符,如此循环往复,便可将三个缓存队列中的描述符依次发送至DMA搬移器,并依次被DMA搬移器所执行。
模式二:
依次发送当前缓存队列位于队首的描述符;在当前缓存队列内无描述符时,则按照优先权等级或时间先后关系重新确定当前缓存队列。具体的,可依次发送当前缓存队列位于队首的描述符;在当前缓存队列内无描述符时,则按照优先权等级或时间先后关系重新确定当前缓存队列。例如,当存在A、B和C三个缓存队列时,A缓存队列的优先级为高级,B缓存队列的优先级为中级,C缓存队列的优先级为低级,而当这三个队列均有需被执行的描述符时,此时可将A缓存队列确定为当前缓存队列,并按照A缓存队列中描述符的先后顺序依次发送给DMA搬移器,在A缓存队列中无需被执行的描述符之后,在发送B缓存队列中的描述符,在B缓存队列中无需被执行的描述符之后,在发送C缓存队列的描述符。当然,确定当前队列的方式,还可选取每一个缓存队列中第一个描述符的插入时间点作为参照,选择哪个缓存队列中先插入描述符,则确定哪个缓存队列为当前缓存队列。另外,除了以描述符的插入时间顺序的方式,还可提供判断缓存队列的长度的方式,选择缓存队列最长的优先处理,以避免出现内存泄漏的问题。
将描述符发送给DMA搬移器之后,DMA搬移器便可执行该描述符,在服务器主机和加速设备之间进行数据搬移。其中,加速设备可为GPGPU、Xeon Phi和FPGA中的任意一种。
DMA搬移器在执行完成一个描述符之后,将该描述符的ID,即描述符ID返回给DMA控制器。DMA控制器接收DMA搬移器返回的描述符ID,DMA控制器接收到DMA搬移器返回的描述符ID之后,便可知道上一个描述符已被执行,此时可发送下一个描述符。当仅存在一个缓存队列时,则可将描述符ID对应的寄存器重置为空闲状态,当存在多个缓存队列时,则在描述符ID为缓存队列中的最后一个待执行描述符的ID时,将与该缓存队列具有映射关系的寄存器的状态重置为空闲状态。即通过描述符ID判断目标缓存队列中的描述符是否均执行,如果均被执行,则可将目标缓存队列对应的目标寄存器的状态重置为空闲状态,以便接收下一个数据搬移指令。
其中,将目标寄存器的状态重置为空闲状态,包括:
步骤一、将目标寄存器的状态标签调整为空闲状态标签;
步骤二、向数据迁移指令的目标终端发送数据迁移完成的通知消息。
为便于描述,下面将上述两个步骤结合起来进行说明。
在确定目标缓存队列中的描述符已被执行之后,便可将与目标缓存队列具有映射关系的目标寄存器调整为空闲调整,具体的,可将其状态标签设置为空闲状态。以便接收其他数据搬移指令。与此同时,还可向数据迁移指令的目标终端发送数据迁移完成的通知消息,以便该目标终端执行其内部处理流程。具体的,可通过向目标终端发送中断信号的方式通知数据迁移已完成。
应用本发明实施例所提供的数据处理方法,在接收目标终端发送的迁移请求时,获取各个寄存器的状态信息;利用状态信息确定出处于空闲状态的目标寄存器,并利用目标寄存器接收目标终端发送的数据迁移指令;利用数据迁移指令生成描述符,并按照描述符插入规则将描述符插入缓存队列;按照缓存队列的先后顺序,将描述符发送给DMA搬移器,以使DMA搬移器在服务器主机和加速设备之间进行数据搬移。
在接收到目标终端发送的迁移请求时,可通过获取各个寄存器的状态信息,从多个寄存器中确定出一个处于空闲状态的目标寄存器。然后,利用处于空闲状态的目标寄存器接收目标终端发送的数据迁移指令,然后利用数据迁移指令生成描述符,并按照描述符插入规则将描述符插入缓存队列中。按照缓存队列的先后顺序,将描述符发送给DMA搬移器,以使DMA搬移器在服务器主机和加速设备之间进行数据搬移。在接收到迁移请求时,便可从多个寄存器中确定出一个目标寄存器,以接收数据迁移指令。多个寄存器之间互不干扰,便可实现持续接收数据迁移指令,以避免在接收数据迁移指令和对数据迁移指令进行解析得到描述符期间,由于寄存器被占用导致无法接收下一个数据迁移指令的问题。配合缓存队列便可实现数据迁移指令的接收、解析和执行之间就形成了流水线的操作,可提高服务器主机与加速设备之间的数据传输效率。
需要说明的是,基于上述实施例,本发明实施例还提供了相应的改进方案。在优选/改进实施例中涉及与上述实施例中相同步骤或相应步骤之间可相互参考,相应的有益效果也可相互参照,在本文的优选/改进实施例中不再一一赘述。
优选地,在将描述符发送给DMA搬移器之后,还包括:接收DMA搬移器返回的描述符表,将描述符表内的描述符插入缓存队列。若该描述符对应的搬移数据对象为包括多个描述符的描述符表,则表明该描述符的数据搬移为一个批量搬移。此时DMA搬移器可将描述符表发送给DMA搬移器。DMA搬移器接收DMA搬移器返回的描述符表,将描述符表内的描述符插入缓存队列中。其中,当仅为一个缓存队列时,则直接插入缓存队列,当存在多个缓存队列时,则将描述符表的描述符插入当前被执行的描述符对应的缓存队列中。如此,通过预先设置描述符表,便可无需多次向DMA搬移输入多个不同的数据搬移指令,减少数据搬移指令的接收、解析和生成描述符的时间,可实现批量处理数据搬移指令。
优选地,由于本发明实施例所提供的方法可实现流水线操作,因此,DMA控制器在不同时期或同一时期接收到的不同数据迁移指令可为不同的目标终端发送的指令。具体的,即在DMA控制器上多设置几个用于连接数据迁移指令的数据接口即可。
实施例二:
相应于上面的方法实施例,本发明实施例还提供了一种数据处理装置,下文描述的数据处理装置与上文描述的数据处理方法可相互对应参照。
参见图2所示,该装置包括以下模块:
寄存器状态信息获取模块101,用于在接收目标终端发送的迁移请求时,获取各个寄存器的状态信息;
数据迁移信息获取模块102,用于利用状态信息确定出处于空闲状态的目标寄存器,并利用目标寄存器接收目标终端发送的数据迁移指令;
描述符生成模块103,用于利用数据迁移指令生成描述符,并按照描述符插入规则将描述符插入缓存队列;
描述符执行模块104,用于按照缓存队列的先后顺序,将描述符发送给DMA搬移器,以使DMA搬移器在服务器主机和加速设备之间进行数据搬移。
应用本发明实施例所提供的装置,在接收目标终端发送的迁移请求时,获取各个寄存器的状态信息;利用状态信息确定出处于空闲状态的目标寄存器,并利用目标寄存器接收目标终端发送的数据迁移指令;利用数据迁移指令生成描述符,并按照描述符插入规则将描述符插入缓存队列;按照缓存队列的先后顺序,将描述符发送给DMA搬移器,以使DMA搬移器在服务器主机和加速设备之间进行数据搬移。
在接收到目标终端发送的迁移请求时,可通过获取各个寄存器的状态信息,从多个寄存器中确定出一个处于空闲状态的目标寄存器。然后,利用处于空闲状态的目标寄存器接收目标终端发送的数据迁移指令,然后利用数据迁移指令生成描述符,并按照描述符插入规则将描述符插入缓存队列中。按照缓存队列的先后顺序,将描述符发送给DMA搬移器,以使DMA搬移器在服务器主机和加速设备之间进行数据搬移。在接收到迁移请求时,便可从多个寄存器中确定出一个目标寄存器,以接收数据迁移指令。多个寄存器之间互不干扰,便可实现持续接收数据迁移指令,以避免在接收数据迁移指令和对数据迁移指令进行解析得到描述符期间,由于寄存器被占用导致无法接收下一个数据迁移指令的问题。配合缓存队列便可实现数据迁移指令的接收、解析和执行之间就形成了流水线的操作,可提高服务器主机与加速设备之间的数据传输效率。
在本发明的一种具体实施方式中,描述符生成模块103,具体用于在各个寄存器与缓存队列具有映射关系时,将描述符插入与目标寄存器具有映射关系的目标缓存队列。
在本发明的一种具体实施方式中,描述符执行模块104,具体用于按照缓存队列轮询顺序,依次发送每一个缓存队列位于队首的描述符。
在本发明的一种具体实施方式中,描述符执行模块104,具体用于依次发送当前缓存队列位于队首的描述符;在当前缓存队列内无描述符时,则按照优先权等级或时间先后关系重新确定当前缓存队列。
在本发明的一种具体实施方式中,描述符生成模块103,具体用于按照描述符生成顺序,将描述符插入缓存队列。
在本发明的一种具体实施方式中,还包括:
批量处理模块,用于在将描述符发送给DMA搬移器之后,接收DMA搬移器返回的描述符表,将描述符表内的描述符插入缓存队列。
实施例三:
相应于上面的方法实施例,本发明实施例还提供了一种DMA控制器,下文描述的一种DMA控制器与上文描述的一种数据处理方法可相互对应参照。
参见图3所示,该DMA控制器300包括:
第一数据接口301,用于与发送数据迁移指令的目标终端建立通信连接;
第二数据接口302,用于与DMA搬移器建立通信连接;
存储器303,用于存储计算机程序,存储器包括多个用于接收数据迁移指令的寄存器(图示3031、3032、3033);
处理器304,用于执行计算机程序时实现如上述数据处理方法的步骤;
其中,第一数据接口包括FPGA接口、Avalon-MM接口和Avalon-ST接口中的至少一种。
为了便于描述,下面结合具体的应用场景,对DMA控制器进行详细说明。
可设置对应的几组寄存器,且每组寄存器对应一个队列,每个队列的地址不同。服务器主机或者用户逻辑通过第一数据接口访问DMA控制器的内部寄存器,根据各组寄存器的信息生成对应描述符,通过第二数据接口模块发给DMA搬移器,DMA搬移器执行指令进行相关数据的搬移。如果要搬移的数据本身为一个由描述符构成的表,DMA搬移器可将描述符表发送给DMA控制器。DMA控制的处理器,根据指令的地址将描述符表搬进对应队列中,即根据地址将描述符表写入FIFO1(第一缓存队列)/FIFO2(第二缓存队列)/FIFO3(第三缓存队列),然后这三个FIFO会将描述符表中的每一个描述符通过第二数据接口发给DMA搬移器执行。
三个FIFO将自己的每一个描述符发给第二数据接口之前会有一个仲裁,仲裁方式可以根据要求设置。可以设置优先级模式(一个FIFO的全部描述符执行完再开始执行下一个FIFO)或者轮询模式(每个FIFO各执行一个描述符直到三个FIFO都执行完)。
DMA搬移器执行完数据搬移后,返回刚才执行完的描述符的ID,ID由10bit数据构成,高三位表示该描述符来自哪个FIFO,低7位表示该描述符在FIFO的标识。ID通过RX_ST模块发给DCM模块,DCM模块判断这是否是对应FIFO中的最后一个描述符,如果是最后一个,DCM会向服务器主机或者用户逻辑发送中断,以告知整个描述符表已经执行完。
在某一个FIFO的描述符已经全部执行完时,服务器主机或用户逻辑可以继续配置该FIFO对应的寄存器,使其生成新的指令开始新一轮的数据搬移,而此时其他的FIFO的描述符还没有全部完成,还在继续执行,从而实现了配置解析和执行操作的流水。这样除了第一次的配置寄存器和解析指令需要额外花费时间,之后的配置和解析都与其他FIFO的执行同时进行,不再额外花费时间,这样就提高了传输效率,解决了之前单队列DMA传输小数据包时,速率下降明显的问题。
实施例四:
相应于上面的实施例,本发明实施例还提供了一种数据处理系统,下文描述的一种数据处理系统与上文描述的一种数据处理方法、DMA控制器可相互对应参照。
请参考图4,该数据处理系统,包括:
服务器主机401、加速设备402、DMA搬移器403、目标终端404和如上述实施例三所描述的DMA控制器300;
目标终端通过第一数据接口301与DMA控制器建立通信连接,DMA搬移器通过第二数据接口302与DMA控制器建立通信连接;
服务器主机用于访问DMA控制器,以使DMA控制器获得描述符,DMA搬移器执行DMA控制器发送的描述符,在服务器主机和加速设备之间进行数据搬移,加速设备用于对服务器主机中的数据处理过程进行加速。
在本系统中,由于DMA控制器可实现数据搬移指令的流水线操作,因而本发明实施例所提供的数据处理系统也具有相应技术效果,在此不在赘述。
实施例五:
相应于上面的方法实施例,本发明实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种数据处理方法可相互对应参照。
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的数据处理方法的步骤。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
在接收目标终端发送的迁移请求时,获取各个寄存器的状态信息;
利用所述状态信息确定出处于空闲状态的目标寄存器,并利用所述目标寄存器接收所述目标终端发送的数据迁移指令;
利用所述数据迁移指令生成描述符,并按照描述符插入规则将所述描述符插入缓存队列;
按照所述缓存队列的先后顺序,将所述描述符发送给DMA搬移器,以使所述DMA搬移器在服务器主机和加速设备之间进行数据搬移。
2.根据权利要求1所述的数据处理方法,其特征在于,在各个所述寄存器与缓存队列具有映射关系时,所述按照描述符插入规则将所述描述符插入缓存队列,包括:
将所述描述符插入与所述目标寄存器具有所述映射关系的目标缓存队列。
3.根据权利要求2所述的数据处理方法,其特征在于,按照所述缓存队列的先后顺序,将所述描述符发送给DMA搬移器,包括:
按照缓存队列轮询顺序,依次发送每一个所述缓存队列位于队首的所述描述符。
4.根据权利要求2所述的数据处理方法,其特征在于,按照所述缓存队列的先后顺序,将所述描述符发送给DMA搬移器,包括:
依次发送当前缓存队列位于队首的所述描述符;
在所述当前缓存队列内无所述描述符时,则按照优先权等级或时间先后关系重新确定所述当前缓存队列。
5.根据权利要求1所述的数据处理方法,其特征在于,所述按照描述符插入规则将所述描述符插入缓存队列,包括:
按照描述符生成顺序,将所述描述符插入所述缓存队列。
6.根据权利要求1至5任一项所述的数据处理方法,其特征在于,在将所述描述符发送给DMA搬移器之后,还包括:
接收所述DMA搬移器返回的描述符表,将所述描述符表内的描述符插入所述缓存队列。
7.一种数据处理装置,其特征在于,包括:
寄存器状态信息获取模块,用于在接收目标终端发送的迁移请求时,获取各个寄存器的状态信息;
数据迁移信息获取模块,用于利用所述状态信息确定出处于空闲状态的目标寄存器,并利用所述目标寄存器接收所述目标终端发送的数据迁移指令;
描述符生成模块,用于利用所述数据迁移指令生成描述符,并按照描述符插入规则将所述描述符插入缓存队列;
描述符执行模块,用于按照所述缓存队列的先后顺序,将所述描述符发送给DMA搬移器,以使所述DMA搬移器在服务器主机和加速设备之间进行数据搬移。
8.一种DMA控制器,其特征在于,包括:
第一数据接口,用于与发送数据迁移指令的目标终端建立通信连接;
第二数据接口,用于与DMA搬移器建立通信连接;
存储器,用于存储计算机程序,所述存储器包括多个用于接收数据迁移指令的寄存器;
处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述数据处理方法的步骤;
其中,所述第一数据接口包括FPGA接口、Avalon-MM接口和Avalon-ST接口中的至少一种。
9.一种数据处理系统,其特征在于,包括:
服务器主机、加速设备、DMA搬移器、目标终端和如权利要求8所述的DMA控制器;
所述目标终端通过所述第一数据接口与所述DMA控制器建立通信连接,所述DMA搬移器通过所述第二数据接口与所述DMA控制器建立通信连接;
所述服务器主机用于访问所述DMA控制器,以使所述DMA控制器获得描述符,所述DMA搬移器执行所述DMA控制器发送的描述符,在所述服务器主机和所述加速设备之间进行数据搬移,所述加速设备用于对所述服务器主机中的数据处理过程进行加速。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910016839.7A CN109766296A (zh) | 2019-01-08 | 2019-01-08 | 一种数据处理方法、装置、系统和dma控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910016839.7A CN109766296A (zh) | 2019-01-08 | 2019-01-08 | 一种数据处理方法、装置、系统和dma控制器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109766296A true CN109766296A (zh) | 2019-05-17 |
Family
ID=66453581
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910016839.7A Withdrawn CN109766296A (zh) | 2019-01-08 | 2019-01-08 | 一种数据处理方法、装置、系统和dma控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109766296A (zh) |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110399322A (zh) * | 2019-06-28 | 2019-11-01 | 苏州浪潮智能科技有限公司 | 一种数据传输方法及乒乓dma架构 |
CN111615692A (zh) * | 2019-05-23 | 2020-09-01 | 深圳市大疆创新科技有限公司 | 数据搬运方法、计算处理装置、设备及存储介质 |
CN111813759A (zh) * | 2020-07-13 | 2020-10-23 | 北京九维数安科技有限公司 | 小包数据并行处理装置和方法 |
CN111813713A (zh) * | 2020-09-08 | 2020-10-23 | 苏州浪潮智能科技有限公司 | 数据加速运算处理方法、装置及计算机可读存储介质 |
CN111966399A (zh) * | 2019-05-20 | 2020-11-20 | 上海寒武纪信息科技有限公司 | 指令处理方法、装置及相关产品 |
CN112347186A (zh) * | 2019-08-09 | 2021-02-09 | 安徽寒武纪信息科技有限公司 | 数据同步方法及装置以及相关产品 |
CN112347026A (zh) * | 2019-08-09 | 2021-02-09 | 安徽寒武纪信息科技有限公司 | 数据同步方法及装置以及相关产品 |
CN112835823A (zh) * | 2021-01-25 | 2021-05-25 | 无锡众星微系统技术有限公司 | 存储控制器应答发送方法 |
CN112947857A (zh) * | 2021-02-25 | 2021-06-11 | 山东英信计算机技术有限公司 | 一种数据搬移方法、装置、设备及计算机可读存储介质 |
CN113703951A (zh) * | 2021-10-27 | 2021-11-26 | 苏州浪潮智能科技有限公司 | 一种处理dma的方法、装置、及计算机可读存储介质 |
CN113778694A (zh) * | 2021-11-12 | 2021-12-10 | 苏州浪潮智能科技有限公司 | 一种任务处理方法、装置、设备及介质 |
CN114238184A (zh) * | 2021-12-18 | 2022-03-25 | 山东云海国创云计算装备产业创新中心有限公司 | 一种多功能dma的传输方法、装置及存储介质 |
CN114661644A (zh) * | 2022-02-17 | 2022-06-24 | 之江实验室 | 辅助3d架构近存计算加速器系统的预存储dma装置 |
CN115328065A (zh) * | 2022-09-16 | 2022-11-11 | 中国核动力研究设计院 | 一种应用于工业控制系统的控制单元功能自动迁移的方法 |
CN115543221A (zh) * | 2022-11-29 | 2022-12-30 | 苏州浪潮智能科技有限公司 | 固态硬盘的数据迁移方法、装置、电子设备及存储介质 |
CN115563038A (zh) * | 2022-10-24 | 2023-01-03 | 苏州雄立科技有限公司 | 基于dma控制器的数据处理系统、方法和数据处理设备 |
CN115754971A (zh) * | 2023-01-10 | 2023-03-07 | 长沙傲英创视信息科技有限公司 | 一种基于离散dma技术的雷达数据采集存储方法和系统 |
CN116233036A (zh) * | 2023-03-14 | 2023-06-06 | 上海耀芯电子科技有限公司 | 一种dma传输控制方法及装置 |
CN116578234A (zh) * | 2023-04-27 | 2023-08-11 | 珠海妙存科技有限公司 | 闪存访问系统及方法 |
CN117076353A (zh) * | 2023-10-16 | 2023-11-17 | 苏州元脑智能科技有限公司 | 描述符的配置方法和描述符的配置装置 |
CN117667793A (zh) * | 2024-01-30 | 2024-03-08 | 苏州元脑智能科技有限公司 | 一种多通道描述符管理系统、方法、设备、介质 |
-
2019
- 2019-01-08 CN CN201910016839.7A patent/CN109766296A/zh not_active Withdrawn
Cited By (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111966399B (zh) * | 2019-05-20 | 2024-06-07 | 上海寒武纪信息科技有限公司 | 指令处理方法、装置及相关产品 |
CN111966399A (zh) * | 2019-05-20 | 2020-11-20 | 上海寒武纪信息科技有限公司 | 指令处理方法、装置及相关产品 |
CN111615692A (zh) * | 2019-05-23 | 2020-09-01 | 深圳市大疆创新科技有限公司 | 数据搬运方法、计算处理装置、设备及存储介质 |
WO2020258566A1 (zh) * | 2019-06-28 | 2020-12-30 | 苏州浪潮智能科技有限公司 | 一种数据传输方法及乒乓dma架构 |
CN110399322A (zh) * | 2019-06-28 | 2019-11-01 | 苏州浪潮智能科技有限公司 | 一种数据传输方法及乒乓dma架构 |
CN112347186A (zh) * | 2019-08-09 | 2021-02-09 | 安徽寒武纪信息科技有限公司 | 数据同步方法及装置以及相关产品 |
CN112347026A (zh) * | 2019-08-09 | 2021-02-09 | 安徽寒武纪信息科技有限公司 | 数据同步方法及装置以及相关产品 |
CN112347026B (zh) * | 2019-08-09 | 2023-03-31 | 安徽寒武纪信息科技有限公司 | 数据同步方法及装置以及相关产品 |
CN111813759A (zh) * | 2020-07-13 | 2020-10-23 | 北京九维数安科技有限公司 | 小包数据并行处理装置和方法 |
CN111813713A (zh) * | 2020-09-08 | 2020-10-23 | 苏州浪潮智能科技有限公司 | 数据加速运算处理方法、装置及计算机可读存储介质 |
CN111813713B (zh) * | 2020-09-08 | 2021-02-12 | 苏州浪潮智能科技有限公司 | 数据加速运算处理方法、装置及计算机可读存储介质 |
CN112835823A (zh) * | 2021-01-25 | 2021-05-25 | 无锡众星微系统技术有限公司 | 存储控制器应答发送方法 |
CN112947857A (zh) * | 2021-02-25 | 2021-06-11 | 山东英信计算机技术有限公司 | 一种数据搬移方法、装置、设备及计算机可读存储介质 |
CN113703951B (zh) * | 2021-10-27 | 2022-02-18 | 苏州浪潮智能科技有限公司 | 一种处理dma的方法、装置、及计算机可读存储介质 |
CN113703951A (zh) * | 2021-10-27 | 2021-11-26 | 苏州浪潮智能科技有限公司 | 一种处理dma的方法、装置、及计算机可读存储介质 |
WO2023071125A1 (zh) * | 2021-10-27 | 2023-05-04 | 苏州浪潮智能科技有限公司 | 一种处理dma的方法、装置、及计算机可读存储介质 |
CN113778694B (zh) * | 2021-11-12 | 2022-02-18 | 苏州浪潮智能科技有限公司 | 一种任务处理方法、装置、设备及介质 |
CN113778694A (zh) * | 2021-11-12 | 2021-12-10 | 苏州浪潮智能科技有限公司 | 一种任务处理方法、装置、设备及介质 |
CN114238184A (zh) * | 2021-12-18 | 2022-03-25 | 山东云海国创云计算装备产业创新中心有限公司 | 一种多功能dma的传输方法、装置及存储介质 |
CN114238184B (zh) * | 2021-12-18 | 2024-05-14 | 山东云海国创云计算装备产业创新中心有限公司 | 一种多功能dma的传输方法、装置及存储介质 |
CN114661644A (zh) * | 2022-02-17 | 2022-06-24 | 之江实验室 | 辅助3d架构近存计算加速器系统的预存储dma装置 |
CN114661644B (zh) * | 2022-02-17 | 2024-04-09 | 之江实验室 | 辅助3d架构近存计算加速器系统的预存储dma装置 |
CN115328065A (zh) * | 2022-09-16 | 2022-11-11 | 中国核动力研究设计院 | 一种应用于工业控制系统的控制单元功能自动迁移的方法 |
CN115563038A (zh) * | 2022-10-24 | 2023-01-03 | 苏州雄立科技有限公司 | 基于dma控制器的数据处理系统、方法和数据处理设备 |
CN115563038B (zh) * | 2022-10-24 | 2023-11-07 | 苏州雄立科技有限公司 | 基于dma控制器的数据处理系统、方法和数据处理设备 |
CN115543221A (zh) * | 2022-11-29 | 2022-12-30 | 苏州浪潮智能科技有限公司 | 固态硬盘的数据迁移方法、装置、电子设备及存储介质 |
CN115543221B (zh) * | 2022-11-29 | 2023-03-14 | 苏州浪潮智能科技有限公司 | 固态硬盘的数据迁移方法、装置、电子设备及存储介质 |
WO2024113568A1 (zh) * | 2022-11-29 | 2024-06-06 | 苏州元脑智能科技有限公司 | 固态硬盘的数据迁移方法、装置、电子设备及存储介质 |
CN115754971B (zh) * | 2023-01-10 | 2023-09-15 | 湖南傲英创视信息科技有限公司 | 一种基于离散dma技术的雷达数据采集存储方法和系统 |
CN115754971A (zh) * | 2023-01-10 | 2023-03-07 | 长沙傲英创视信息科技有限公司 | 一种基于离散dma技术的雷达数据采集存储方法和系统 |
CN116233036B (zh) * | 2023-03-14 | 2023-08-25 | 上海耀芯电子科技有限公司 | 一种dma传输控制方法及装置 |
CN116233036A (zh) * | 2023-03-14 | 2023-06-06 | 上海耀芯电子科技有限公司 | 一种dma传输控制方法及装置 |
CN116578234A (zh) * | 2023-04-27 | 2023-08-11 | 珠海妙存科技有限公司 | 闪存访问系统及方法 |
CN116578234B (zh) * | 2023-04-27 | 2023-11-14 | 珠海妙存科技有限公司 | 闪存访问系统及方法 |
CN117076353A (zh) * | 2023-10-16 | 2023-11-17 | 苏州元脑智能科技有限公司 | 描述符的配置方法和描述符的配置装置 |
CN117076353B (zh) * | 2023-10-16 | 2024-02-02 | 苏州元脑智能科技有限公司 | 描述符的配置方法和描述符的配置装置 |
CN117667793A (zh) * | 2024-01-30 | 2024-03-08 | 苏州元脑智能科技有限公司 | 一种多通道描述符管理系统、方法、设备、介质 |
CN117667793B (zh) * | 2024-01-30 | 2024-04-09 | 苏州元脑智能科技有限公司 | 一种多通道描述符管理系统、方法、设备、介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109766296A (zh) | 一种数据处理方法、装置、系统和dma控制器 | |
CN1150460C (zh) | 计算机总线系统、通信系统和通过总线通信的方法 | |
JPS58501065A (ja) | パケツト音声統合交換のための処理設備 | |
CN1146804C (zh) | 快速16位分离事务i/o总线 | |
CN109408243B (zh) | 一种基于rdma的数据处理方法、装置和介质 | |
CN112311702B (zh) | Fc交换机调度方法、装置、电子设备及存储介质 | |
CN101283338A (zh) | 微控制器和FlexRay通信组件之间的用户接口、FlexRay用户以及用于通过这种接口传输消息的方法 | |
CN101261613B (zh) | 图像处理器群接口总线 | |
CN109739786A (zh) | 一种dma控制器和异构加速系统 | |
CN112181887B (zh) | 数据传输方法及装置 | |
CN114490467B (zh) | 一种多核网络处理器的报文处理dma系统及方法 | |
CN115827524A (zh) | 一种数据传输方法以及装置 | |
CN100351824C (zh) | 总线系统和用于连接到总线的总线接口 | |
CN110062417A (zh) | 一种协作传输控制的方法、装置及系统 | |
CN110034942A (zh) | 一种基于半双工电台的组网通信控制方法和系统 | |
CN109429355A (zh) | 一种随机接入的处理方法、用户终端及网络侧设备 | |
CN111064768B (zh) | 打印机数据传输控制方法、装置、设备及存储介质 | |
CN115469804B (zh) | NVMe多队列仲裁方法及装置 | |
RU175049U9 (ru) | УСТРОЙСТВО КОММУНИКАЦИОННЫХ ИНТЕРФЕЙСОВ SpaceWire | |
CN116166421A (zh) | 分布式训练任务的资源调度方法及其设备 | |
CN115563038A (zh) | 基于dma控制器的数据处理系统、方法和数据处理设备 | |
CN111371799B (zh) | Mctp控制器收发数据的控制方法、装置及设备 | |
CN110536467B (zh) | ZigBee网络化工业控制系统通信调度方法及其协调器 | |
CN113032307A (zh) | 一种集成器件访问请求处理方法及相关组件 | |
US7889645B2 (en) | Hybrid coordination function implementation |
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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20190517 |