CN111813713A - 数据加速运算处理方法、装置及计算机可读存储介质 - Google Patents
数据加速运算处理方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111813713A CN111813713A CN202010934747.XA CN202010934747A CN111813713A CN 111813713 A CN111813713 A CN 111813713A CN 202010934747 A CN202010934747 A CN 202010934747A CN 111813713 A CN111813713 A CN 111813713A
- Authority
- CN
- China
- Prior art keywords
- data
- cache space
- output
- input
- descriptor table
- 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
- 230000001133 acceleration Effects 0.000 title claims abstract description 108
- 238000003672 processing method Methods 0.000 title claims abstract description 23
- 238000012545 processing Methods 0.000 claims abstract description 115
- 238000000034 method Methods 0.000 claims abstract description 48
- 238000012544 monitoring process Methods 0.000 claims description 8
- 238000012546 transfer Methods 0.000 claims description 8
- 230000002776 aggregation Effects 0.000 claims description 3
- 238000004220 aggregation Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 17
- 238000007726 management method Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000012805 post-processing Methods 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013144 data compression Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- 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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请公开了一种数据加速运算处理方法、装置及计算机可读存储介质。其中,方法包括存储服务器利用内存管理模块预先申请输入缓存空间和输出缓存空间,同时将输入缓存空间和输出缓存空间的每个内存页的起始地址传递至直接内存存取描述符表,输入缓存空间存储用户数据请求对应的IO原始数据,输出缓存空间存储IO原始数据被加速运算后的数据处理结果。FPGA加速卡在接收到数据加速运算请求,通过直接内存存取描述符表从输入缓存空间将IO原始数据搬移至本地进行加速运算处理,并将数据处理结果通过直接内存存取描述符表搬移至输出缓存空间,在使用FPGA加速卡对存储服务器进行数据处理同时能够避免内存拷贝,有效降低存储服务器在加速过程中的性能损耗。
Description
技术领域
本申请涉及数据读写技术领域,特别是涉及一种数据加速运算处理方法、装置及计算机可读存储介质。
背景技术
在大数据、云计算的潮流下,数据存储的重要性日益凸显。从目前来看,全闪产品是存储系统发展的必然趋势。随着SSD(Solid State Drives,固态硬盘)技术的飞速发展,越来越多的SSD被用到存储系统中,但SSD的价格始终居高不下。如何利用有限的SSD空间来存储更多的数据内容,压缩和重删是全闪存储的重要特性。而重删、压缩等特性消耗CPU过多,且难以避免的涉及内存拷贝动作,需要借助FPGA加速卡实现。
存储服务器在调用FPGA加速卡进行数据压缩和数据重删过程中,需要预先申请一大块存储空间,用于将用户IO请求及其数据从原存储位置复制在该存储空间中,然后FPGA加速卡从该存储空间读取数据进行处理,待处理完之后,FPGA加速卡会将处理结果传回至存储服务器中的另外一块存储空间中,存储服务器将数据处理结果再拷贝回原存储位置,整个数据处理过程涉及多次数据拷贝,而内存拷贝需要消耗大量CPU(Central ProcessingUnit,中央处理器)资源。
鉴于此,如何在使用FPGA加速卡对存储服务器数进行数据处理同时能够避免内存拷贝、从而减少CPU消耗,是所属领域技术人员需要解决的技术问题。
发明内容
本申请提供了一种数据加速运算处理方法、装置及计算机可读存储介质,在使用FPGA加速卡对存储服务器进行数据处理的同时能够避免内存拷贝,实现FPGA加速卡的IO零拷贝,有效降低存储服务器在加速过程中的性能损耗。
为解决上述技术问题,本发明实施例提供以下技术方案:
本发明实施例一方面提供了一种数据加速运算处理方法,应用于存储服务器,包括:
利用内存管理模块预先申请输入缓存空间和输出缓存空间;所述输入缓存空间用于存储用户数据请求对应的IO原始数据,所述输出缓存空间用于存储所述IO原始数据被加速运算后的数据处理结果;
将所述输入缓存空间和所述输出缓存空间的每个内存页的起始地址传递给直接内存存取描述符表,以使FPGA加速卡在接收到数据加速运算请求,通过所述直接内存存取描述符表从所述输入缓存空间将所述IO原始数据搬移至本地进行加速运算处理,并将所述数据处理结果通过所述直接内存存取描述符表搬移至所述输出缓存空间。
可选的,所述将所述输入缓存空间和所述输出缓存空间的每个内存页的起始地址传递给直接内存存取描述符表中之后,还包括:
判断所述IO原始数据是否具有加速运算处理已完成标记;
若是,则将IO的输出地址传递给下一个IO模块,以使所述FPGA加速卡对所述IO模块中数据进行加速运算处理。
可选的,所述通过所述直接内存存取描述符表从所述输入缓存空间将所述IO原始数据搬移至本地进行加速运算处理包括:
通过所述直接内存存取描述符表以分散聚合表方式从所述输入缓存空间将所述IO原始数据搬移至本地进行加速运算处理。
可选的,所述将所述数据处理结果通过所述直接内存存取描述符表搬移至所述输出缓存空间包括:
将所述数据处理结果通过所述直接内存存取描述符表以所述分散聚合表方式搬移至所述输出缓存空间。
本发明实施例还提供了一种数据加速运算处理装置,应用于存储服务器,包括:
空间预申请模块,用于利用内存管理模块预先申请输入缓存空间和输出缓存空间;所述输入缓存空间用于存储用户数据请求对应的IO原始数据,所述输出缓存空间用于存储所述IO原始数据被加速运算后的数据处理结果;
地址传递模块,用于将所述输入缓存空间和所述输出缓存空间的每个内存页的起始地址传递给直接内存存取描述符表,以使FPGA加速卡在接收到数据加速运算请求,通过所述直接内存存取描述符表从所述输入缓存空间将所述IO原始数据搬移至本地进行加速运算处理,并将所述数据处理结果通过所述直接内存存取描述符表搬移至所述输出缓存空间。
本发明实施例另一方面提供了一种数据加速运算处理方法,应用于FPGA加速卡,包括:
检测是否接收到数据加速运算请求;
若接收到数据加速运算请求,通过直接内存存取描述符表从存储服务器的输入缓存空间将IO原始数据搬移至本地;
对所述IO原始数据进行加速运算处理,得到数据处理结果;
将所述数据处理结果通过所述直接内存存取描述符表搬移至输出缓存空间;
其中,所述输入缓存空间和所述输出缓存空间为所述存储服务器利用内存管理模块预先申请;所述输入缓存空间用于存储用户数据请求对应的IO原始数据,所述输出缓存空间用于存储所述IO原始数据被加速运算后的数据处理结果;所述直接内存存取描述符表存储所述输入缓存空间和所述输出缓存空间的每个内存页的起始地址。
可选的,所述检测是否接收到数据加速运算请求包括:
通过监控门铃寄存器检测是否接收到数据加速运算请求;相应的,所述将所述数据处理结果通过所述直接内存存取描述符表搬移至输出缓存空间之后,还包括:
置位所述门铃寄存器,并为所述IO原始数据设置加速运算处理已完成标记。
可选的,所述通过直接内存存取描述符表从存储服务器的输入缓存空间将IO原始数据搬移至本地包括:
通过所述直接内存存取描述符表从存储服务器的输入缓存空间将IO原始数据搬移至本地随机存取存储器中。
本发明实施例还提供了一种数据加速运算处理装置,应用于FPGA加速卡,包括:
请求监控模块,用于检测是否接收到数据加速运算请求;
数据搬移模块,用于若接收到数据加速运算请求,通过直接内存存取描述符表从存储服务器的输入缓存空间将IO原始数据搬移至本地;
数据处理模块,用于对所述IO原始数据进行加速运算处理,得到数据处理结果;
数据传回模块,用于将所述数据处理结果通过所述直接内存存取描述符表搬移至输出缓存空间;所述输入缓存空间和所述输出缓存空间为所述存储服务器利用内存管理模块预先申请;所述输入缓存空间用于存储用户数据请求对应的IO原始数据,所述输出缓存空间用于存储所述IO原始数据被加速运算后的数据处理结果;所述直接内存存取描述符表存储所述输入缓存空间和所述输出缓存空间的每个内存页的起始地址。
本发明实施例还提供了一种数据加速运算处理装置,包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如前任一项所述数据加速运算处理方法的步骤。
本发明实施例最后还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有数据加速运算处理程序,所述数据加速运算处理程序被处理器执行时实现如前任一项所述数据加速运算处理方法的步骤。
本申请提供的技术方案的优点在于,使用内存管理模块申请内存页作为缓存空间分别存储存放IO原始数据和处理后结果,并将输入缓存空间和输出缓存空间的每个物理地址连续的页内数据起始地址传递给DMA,IO内容基于内存页内部物理地址连续特性通过DMA在FPGA加速卡和存储服务器进行搬移,在使用FPGA加速卡对存储服务器进行数据处理的同时能够避免内存拷贝,实现FPGA加速卡的IO零拷贝,从而降低CPU损耗;DMA可脱离CPU独立完成数据传送,进一步有效降低CPU在加速过程中的性能损耗,在提供加速功能同时最大限度提高存储服务器性能。
此外,本发明实施例还针对数据加速运算处理方法提供了相应的实现装置及计算机可读存储介质,进一步使得所述方法更具有实用性,所述装置及计算机可读存储介质具有相应的优点。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
为了更清楚的说明本发明实施例或相关技术的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据加速运算处理方法的流程示意图;
图2为本发明实施例提供的另一种数据加速运算处理方法的流程示意图;
图3为本发明实施例提供的数据加速运算处理装置的一种具体实施方式结构图;
图4为本发明实施例提供的数据加速运算处理装置的另一种具体实施方式结构图;
图5为本发明实施例提供的数据加速运算处理装置的再一种具体实施方式结构图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
在介绍了本发明实施例的技术方案后,下面详细的说明本申请的各种非限制性实施方式。
首先参见图1,图1为本发明实施例提供的一种数据加速运算处理方法的流程示意图,应用于存储服务器或存储系统中,本发明实施例可包括以下内容:
S101:利用内存管理模块预先申请输入缓存空间和输出缓存空间。
在本申请中,利用存储服务器或存储系统自身的内存管理模块向其申请两块内存空间,即输入缓存空间和输出缓存空间,每个内存空间包括多个页面。其中,内存被细分为多个页面帧,页面是最基本的页面分配的单位,页帧代表了系统内存的最小单位。内存可被视为连续的字节,即内存为字节数组,内存单元的编号或者是说地址可作为字节数组的索引。分页管理时,将若干字节视为一页,比如4K byte。此时,内存变成了连续的页,即内存为页数组,每一页物理内存叫页帧,以页为单位对内存进行编号,该编号可作为页数组的索引,又称为页帧号。输入缓存空间用于存储用户数据请求对应的IO(input/output,输入/输出)原始数据,输出缓存空间用于存储IO原始数据被加速运算后的数据处理结果。
S102:将输入缓存空间和输出缓存空间的每个内存页的起始地址传递给直接内存存取描述符表,以使FPGA加速卡在接收到数据加速运算请求,通过直接内存存取描述符表从输入缓存空间将IO原始数据搬移至本地进行加速运算处理,并将数据处理结果通过直接内存存取描述符表搬移至输出缓存空间。
可以理解的是,用户请求的IO原始数据存储在输入缓存空间中,而这些IO原始数据是要被FPGA加速卡进行加速处理的,所以FPGA加速卡需要从存储系统中读取这些数据,为了避免存储系统做多次内存拷贝占用CPU资源,本申请将输入缓存空间的每个物理地址连续内存页内的数据起始地址写到直接内存存取描述符表中,也就是将输入缓存空间的每个内存页的起始地址传递给DMA(Direct Memory Access,直接内存存取)descriptortables(描述符表),FPGA加速卡通过DMA descriptor tables读取这些IO原始数据。由于FPGA加速卡和存储系统通过DMA方式将IO原始数据从输入缓存空间对应地址空间搬移到FPGA加速卡对应的本地地址空间传递数据。存储系统的主机板上有DMA控制器,DMA控制器初始化完成后,数据开始传送,DMA就可以脱离CPU,独立完成数据传送。在DMA传送开始的短暂时间内,基本上有两个处理器为它工作,一个执行程序代码,一个传送数据。IO原始数据直接在源地址和目的地址之间传送,不需要中间媒介。但如果通过CPU把一个字节从适配卡传送至内存,需要两步操作。首先,CPU把这个字节从适配卡读到内部寄存器中,然后再从寄存器传送到内存的适当地址。DMA控制器将这些操作简化为一步,它操作总线上的控制信号,使写字节一次完成,大大提高了计算机运行速度和工作效率,无需CPU参与,不耗费CPU资源。在FPGA加速卡处理完IO原始数据,也即对IO原始数据进行加速运算完成后,将IO原始数据的数据处理结果同样以DMA方式传递给输出缓存空间,当然输出缓存空间的各内存页的起始地址会预先传递给DMA描述符表。
在本发明实施例提供的技术方案中,使用内存管理模块申请内存页作为缓存空间分别存储存放IO原始数据和处理后结果,并将输入缓存空间和输出缓存空间的每个物理地址连续的页内数据起始地址传递给DMA,IO内容基于内存页内部物理地址连续特性通过DMA在FPGA加速卡和存储服务器进行搬移,在使用FPGA加速卡对存储服务器进行数据处理的同时能够避免内存拷贝,实现FPGA加速卡的IO零拷贝,从而降低CPU损耗;DMA可脱离CPU独立完成数据传送,进一步有效降低CPU在加速过程中的性能损耗,在提供加速功能同时最大限度提高存储服务器性能。
可以理解的是,I/O命令支持SGL(Scatter/Gather List 分散聚合表),例如在NVMe over Fabrics中,无论是管理命令还是I/O命令都只支持SGL。在RDMA编程中,SGL为一种数据组织形式,该数组中的元素被称之为SGE(Scatter/Gather Element),每一个SGE就是一个数据段。其支持一个连续的缓存空间,进行Scatter分散到多个目的主机的不连续的缓存空间。聚合为将多个不连续的Buffer空间可以Gather到目的主机的一段连续的Buffer空间。基于此,作为一种可选的实施方式,本发明实施例可通过直接内存存取描述符表以分散聚合表方式从输入缓存空间将IO原始数据搬移至本地进行加速运算处理。同样还可将数据处理结果通过直接内存存取描述符表以分散聚合表方式搬移至输出缓存空间。也就是说,本申请的存储系统可利用Scather/Gather list方式交给FPGA加速卡,FPGA加速卡通过DMA从主机内存中获取原始数据,并把加速后生成的数据结果通过DMA搬移到另一个Scather/Gather list的输出缓存空间中。
为了使存储系统更快更及时地处理用户请求,作为另一种可选的实施方式,在S102之后,还可包括:
判断IO原始数据是否具有加速运算处理已完成标记;
若是,则将IO的输出地址传递给下一个IO模块,以使FPGA加速卡对IO模块中数据进行加速运算处理。
在本实施例中,加速运算处理已完成标记可为FPGA加速卡在反馈数据处理结果时设置,存储系统可以定时检测用户IO请求是否被完成,存储系统检测到完成标记后把IO的输出地址传递给下一个IO模块,保证FPGA加速卡对IO的零拷贝。
上述内容是基于存储系统或者是说存储服务器端作为执行主语的角度上对本申请技术方案的描述,为了使所属领域技术人员更加清楚明白本申请的技术方案,本申请还提供了基于FPGA加速卡作为执行主语的角度的实施例,请参见图2,图2为本发明实施例提供的另一种数据加速运算处理方法的流程示意图,具体的可包括以下内容:
S201:检测是否接收到数据加速运算请求。
在本步骤中,数据加速运算请求可通过监控门铃寄存器来获知,门铃寄存器每次通知FPGA加速卡有数据加速运算请求后被置位,以表示FPGA加速卡已获知有数据加速运算请求了。当然,也可直接监控FPGA加速卡中接收数据加速运算请求的寄存器,这均不影响本申请的实现。
S202:若接收到数据加速运算请求,通过直接内存存取描述符表从存储服务器的输入缓存空间将IO原始数据搬移至本地。
S203:对IO原始数据进行加速运算处理,得到数据处理结果。
S204:将数据处理结果通过直接内存存取描述符表搬移至输出缓存空间。
在本实施例中,输入缓存空间和输出缓存空间均为存储服务器利用内存管理模块预先申请,且将输入缓存空间和输出缓存空间的每个内存页的起始地址预先传递给DMA描述符表。其中,输入缓存空间用于存储用户数据请求对应的IO原始数据,输出缓存空间用于存储IO原始数据被加速运算后的数据处理结果。
FPGA加速卡可通过直接内存存取描述符表从存储服务器的输入缓存空间将IO原始数据搬移至本地随机存取存储器RAM中进行加速运算,也可存储至其他存储空间中,这均不影响本申请的实现。FPGA加速卡在将数据处理结果通过直接内存存取描述符表搬移至输出缓存空间之后,还可置位门铃寄存器,并为IO原始数据设置加速运算处理已完成标记。
由上可知,本发明实施例利用存储服务器的内存管理模块获取输入、输出缓存空间的每个物理地址连续的页内数据起始地址,并把起始地址传递给DMA进行数据搬移,有效的降低CPU在加速过程中的性能损耗,在提供加速功能同时最大限度提高性能。
需要说明的是,本申请中各步骤之间没有严格的先后执行顺序,只要符合逻辑上的顺序,则这些步骤可以同时执行,也可按照某种预设顺序执行,图1-图2只是一种示意方式,并不代表只能是这样的执行顺序。
本发明实施例还针对数据加速运算处理方法提供了相应的装置,进一步使得所述方法更具有实用性。其中,装置可从功能模块的角度和硬件的角度分别说明。下面对本发明实施例提供的数据加速运算处理装置进行介绍,下文描述的数据加速运算处理装置与上文描述的数据加速运算处理方法可相互对应参照。
基于功能模块的角度,对于应用于存储服务器的数据加速运算处理装置,请参见图3,图3为本发明实施例提供的数据加速运算处理装置在一种具体实施方式下的结构图,该装置可包括:
空间预申请模块301,用于利用内存管理模块预先申请输入缓存空间和输出缓存空间;输入缓存空间用于存储用户数据请求对应的IO原始数据,输出缓存空间用于存储IO原始数据被加速运算后的数据处理结果。
地址传递模块302,用于将输入缓存空间和输出缓存空间的每个内存页的起始地址传递给直接内存存取描述符表,以使FPGA加速卡在接收到数据加速运算请求,通过直接内存存取描述符表从输入缓存空间将IO原始数据搬移至本地进行加速运算处理,并将数据处理结果通过直接内存存取描述符表搬移至输出缓存空间。
可选的,在本实施例的一些实施方式中,所述装置例如还可以包括第一后处理模块,所述第一后处理模块可包括:
判断子模块,用于判断IO原始数据是否具有加速运算处理已完成标记;
地址传递子模块,用于若IO原始数据具有加速运算处理已完成标记,则将IO的输出地址传递给下一个IO模块,以使FPGA加速卡对IO模块中数据进行加速运算处理。
可选的,在本实施例的另一些实施方式中,所述地址传递模块302还可为通过直接内存存取描述符表以分散聚合表方式从输入缓存空间将IO原始数据搬移至本地进行加速运算处理的模块。
在本实施例的其他一些实施方式中,所述地址传递模块302例如还可为将数据处理结果通过直接内存存取描述符表以分散聚合表方式搬移至输出缓存空间的模块。
基于功能模块的角度,对于应用于FPGA加速卡的数据加速运算处理装置,请参见图4,图4为本发明实施例提供的数据加速运算处理装置在一种具体实施方式下的结构图,该装置可包括:
请求监控模块401,用于检测是否接收到数据加速运算请求。
数据搬移模块402,用于若接收到数据加速运算请求,通过直接内存存取描述符表从存储服务器的输入缓存空间将IO原始数据搬移至本地。
数据处理模块403,用于对IO原始数据进行加速运算处理,得到数据处理结果。
数据传回模块404,用于将数据处理结果通过直接内存存取描述符表搬移至输出缓存空间;输入缓存空间和输出缓存空间为存储服务器利用内存管理模块预先申请;输入缓存空间用于存储用户数据请求对应的IO原始数据,输出缓存空间用于存储IO原始数据被加速运算后的数据处理结果;直接内存存取描述符表存储输入缓存空间和输出缓存空间的每个内存页的起始地址。
作为一种可选的实施方式,所述请求监控模块401可为通过监控门铃寄存器检测是否接收到数据加速运算请求的模块;相应的,所述装置还包括第二后处理模块,所述第二后处理模块用于置位门铃寄存器,并为IO原始数据设置加速运算处理已完成标记。
作为另外一种可选的实施方式,所述数据搬移模块402例如可为通过直接内存存取描述符表从存储服务器的输入缓存空间将IO原始数据搬移至本地随机存取存储器中的模块。
本发明实施例所述数据加速运算处理装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本发明实施例在使用FPGA加速卡对存储服务器进行数据处理的同时能够避免内存拷贝,实现FPGA加速卡的IO零拷贝,有效降低存储服务器在加速过程中的性能损耗。
上文中提到的数据加速运算处理装置是从功能模块的角度描述,进一步的,本申请还提供一种数据加速运算处理装置,是从硬件角度描述。图5为本申请实施例提供的另一种数据加速运算处理装置的结构图。如图5所示,应用于存储服务器,该装置包括存储器50,用于存储计算机程序;
处理器51,用于执行计算机程序时实现如上述任一实施例提到的数据加速运算处理方法的步骤。
其中,处理器51可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器51可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器51也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器51可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器51还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器50可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器50还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器50至少用于存储以下计算机程序501,其中,该计算机程序被处理器51加载并执行之后,能够实现前述任一实施例公开的数据加速运算处理方法的相关步骤。另外,存储器50所存储的资源还可以包括操作系统502和数据503等,存储方式可以是短暂存储或者永久存储。其中,操作系统502可以包括Windows、Unix、Linux等。数据503可以包括但不限于测试结果对应的数据等。
在一些实施例中,数据加速运算处理装置还可包括有显示屏52、输入输出接口53、通信接口54、电源55以及通信总线56。
本领域技术人员可以理解,图5中示出的结构并不构成对数据加速运算处理装置的限定,可以包括比图示更多或更少的组件,例如传感器57。
本发明实施例所述数据加速运算处理装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本发明实施例在使用FPGA加速卡对存储服务器进行数据处理的同时能够避免内存拷贝,实现FPGA加速卡的IO零拷贝,有效降低存储服务器在加速过程中的性能损耗。
可以理解的是,如果上述实施例中的数据加速运算处理方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、磁碟或者光盘等各种可以存储程序代码的介质。
基于此,本发明实施例还提供了一种计算机可读存储介质,存储有数据加速运算处理程序,所述数据加速运算处理程序被处理器执行时如上任意一实施例所述数据加速运算处理方法的步骤。
本发明实施例所述计算机可读存储介质的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本发明实施例在使用FPGA加速卡对存储服务器进行数据处理的同时能够避免内存拷贝,实现FPGA加速卡的IO零拷贝,有效降低存储服务器在加速过程中的性能损耗。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上对本申请所提供的一种数据加速运算处理方法、装置及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
Claims (10)
1.一种数据加速运算处理方法,其特征在于,应用于存储服务器,包括:
利用内存管理模块预先申请输入缓存空间和输出缓存空间;所述输入缓存空间用于存储用户数据请求对应的IO原始数据,所述输出缓存空间用于存储所述IO原始数据被加速运算后的数据处理结果;
将所述输入缓存空间和所述输出缓存空间的每个内存页的起始地址传递给直接内存存取描述符表,以使FPGA加速卡在接收到数据加速运算请求,通过所述直接内存存取描述符表从所述输入缓存空间将所述IO原始数据搬移至本地进行加速运算处理,并将所述数据处理结果通过所述直接内存存取描述符表搬移至所述输出缓存空间。
2.根据权利要求1所述的数据加速运算处理方法,其特征在于,所述将所述输入缓存空间和所述输出缓存空间的每个内存页的起始地址传递给直接内存存取描述符表中之后,还包括:
判断所述IO原始数据是否具有加速运算处理已完成标记;
若是,则将IO的输出地址传递给下一个IO模块,以使所述FPGA加速卡对所述IO模块中数据进行加速运算处理。
3.根据权利要求1或2所述的数据加速运算处理方法,其特征在于,所述通过所述直接内存存取描述符表从所述输入缓存空间将所述IO原始数据搬移至本地进行加速运算处理包括:
通过所述直接内存存取描述符表以分散聚合表方式从所述输入缓存空间将所述IO原始数据搬移至本地进行加速运算处理。
4.根据权利要求3所述的数据加速运算处理方法,其特征在于,所述将所述数据处理结果通过所述直接内存存取描述符表搬移至所述输出缓存空间包括:
将所述数据处理结果通过所述直接内存存取描述符表以所述分散聚合表方式搬移至所述输出缓存空间。
5.一种数据加速运算处理方法,其特征在于,应用于FPGA加速卡,包括:
检测是否接收到数据加速运算请求;
若接收到数据加速运算请求,通过直接内存存取描述符表从存储服务器的输入缓存空间将IO原始数据搬移至本地;
对所述IO原始数据进行加速运算处理,得到数据处理结果;
将所述数据处理结果通过所述直接内存存取描述符表搬移至输出缓存空间;
其中,所述输入缓存空间和所述输出缓存空间为所述存储服务器利用内存管理模块预先申请;所述输入缓存空间用于存储用户数据请求对应的IO原始数据,所述输出缓存空间用于存储所述IO原始数据被加速运算后的数据处理结果;所述直接内存存取描述符表存储所述输入缓存空间和所述输出缓存空间的每个内存页的起始地址。
6.根据权利要求5所述的数据加速运算处理方法,其特征在于,所述检测是否接收到数据加速运算请求包括:
通过监控门铃寄存器检测是否接收到数据加速运算请求;相应的,所述将所述数据处理结果通过所述直接内存存取描述符表搬移至输出缓存空间之后,还包括:
置位所述门铃寄存器,并为所述IO原始数据设置加速运算处理已完成标记。
7.根据权利要求6所述的数据加速运算处理方法,其特征在于,所述通过直接内存存取描述符表从存储服务器的输入缓存空间将IO原始数据搬移至本地包括:
通过所述直接内存存取描述符表从存储服务器的输入缓存空间将IO原始数据搬移至本地随机存取存储器中。
8.一种数据加速运算处理装置,其特征在于,应用于存储服务器,包括:
空间预申请模块,用于利用内存管理模块预先申请输入缓存空间和输出缓存空间;所述输入缓存空间用于存储用户数据请求对应的IO原始数据,所述输出缓存空间用于存储所述IO原始数据被加速运算后的数据处理结果;
地址传递模块,用于将所述输入缓存空间和所述输出缓存空间的每个内存页的起始地址传递给直接内存存取描述符表,以使FPGA加速卡在接收到数据加速运算请求,通过所述直接内存存取描述符表从所述输入缓存空间将所述IO原始数据搬移至本地进行加速运算处理,并将所述数据处理结果通过所述直接内存存取描述符表搬移至所述输出缓存空间。
9.一种数据加速运算处理装置,其特征在于,应用于FPGA加速卡,包括:
请求监控模块,用于检测是否接收到数据加速运算请求;
数据搬移模块,用于若接收到数据加速运算请求,通过直接内存存取描述符表从存储服务器的输入缓存空间将IO原始数据搬移至本地;
数据处理模块,用于对所述IO原始数据进行加速运算处理,得到数据处理结果;
数据传回模块,用于将所述数据处理结果通过所述直接内存存取描述符表搬移至输出缓存空间;所述输入缓存空间和所述输出缓存空间为所述存储服务器利用内存管理模块预先申请;所述输入缓存空间用于存储用户数据请求对应的IO原始数据,所述输出缓存空间用于存储所述IO原始数据被加速运算后的数据处理结果;所述直接内存存取描述符表存储所述输入缓存空间和所述输出缓存空间的每个内存页的起始地址。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有数据加速运算处理程序,所述数据加速运算处理程序被处理器执行时实现如权利要求1至4任一项所述数据加速运算处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010934747.XA CN111813713B (zh) | 2020-09-08 | 2020-09-08 | 数据加速运算处理方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010934747.XA CN111813713B (zh) | 2020-09-08 | 2020-09-08 | 数据加速运算处理方法、装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111813713A true CN111813713A (zh) | 2020-10-23 |
CN111813713B CN111813713B (zh) | 2021-02-12 |
Family
ID=72860190
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010934747.XA Active CN111813713B (zh) | 2020-09-08 | 2020-09-08 | 数据加速运算处理方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111813713B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112598565A (zh) * | 2020-12-09 | 2021-04-02 | 第四范式(北京)技术有限公司 | 一种基于加速卡的服务运行方法、装置、电子设备及存储介质 |
CN113238869A (zh) * | 2021-05-28 | 2021-08-10 | 北京达佳互联信息技术有限公司 | 一种计算加速方法、设备和系统及存储介质 |
CN113535745A (zh) * | 2021-08-09 | 2021-10-22 | 威讯柏睿数据科技(北京)有限公司 | 一种层次化数据库操作加速系统和方法 |
CN113704301A (zh) * | 2021-07-15 | 2021-11-26 | 苏州浪潮智能科技有限公司 | 异构计算平台的数据处理方法、装置、系统、设备及介质 |
CN113703951A (zh) * | 2021-10-27 | 2021-11-26 | 苏州浪潮智能科技有限公司 | 一种处理dma的方法、装置、及计算机可读存储介质 |
CN117666963A (zh) * | 2023-12-13 | 2024-03-08 | 湖南承希科技有限公司 | 一种cpu云计算平台的数据io加速方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559156A (zh) * | 2013-11-11 | 2014-02-05 | 北京大学 | 一种fpga与计算机之间的通信系统 |
CN105677491A (zh) * | 2015-12-31 | 2016-06-15 | 杭州华为数字技术有限公司 | 一种数据传输方法及装置 |
US10127185B1 (en) * | 2016-12-20 | 2018-11-13 | The United States Of America, As Represented By The Secretary Of The Navy | Format agnostic data transfer circuit |
CN109308280A (zh) * | 2017-07-26 | 2019-02-05 | 杭州华为数字技术有限公司 | 数据处理方法和相关设备 |
CN109376104A (zh) * | 2018-09-28 | 2019-02-22 | 阿里巴巴集团控股有限公司 | 一种芯片及基于其的数据处理方法和装置 |
CN109739784A (zh) * | 2019-01-08 | 2019-05-10 | 郑州云海信息技术有限公司 | 一种数据处理方法、装置、系统及fpga加速卡 |
CN109766296A (zh) * | 2019-01-08 | 2019-05-17 | 郑州云海信息技术有限公司 | 一种数据处理方法、装置、系统和dma控制器 |
CN111159074A (zh) * | 2019-12-31 | 2020-05-15 | 山东超越数控电子股份有限公司 | 一种基于FPGA的超大规模数据hash运算加速卡 |
CN111367839A (zh) * | 2020-02-21 | 2020-07-03 | 苏州浪潮智能科技有限公司 | 一种主机端与fpga加速器之间的数据同步方法 |
-
2020
- 2020-09-08 CN CN202010934747.XA patent/CN111813713B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559156A (zh) * | 2013-11-11 | 2014-02-05 | 北京大学 | 一种fpga与计算机之间的通信系统 |
CN105677491A (zh) * | 2015-12-31 | 2016-06-15 | 杭州华为数字技术有限公司 | 一种数据传输方法及装置 |
US10127185B1 (en) * | 2016-12-20 | 2018-11-13 | The United States Of America, As Represented By The Secretary Of The Navy | Format agnostic data transfer circuit |
CN109308280A (zh) * | 2017-07-26 | 2019-02-05 | 杭州华为数字技术有限公司 | 数据处理方法和相关设备 |
CN109376104A (zh) * | 2018-09-28 | 2019-02-22 | 阿里巴巴集团控股有限公司 | 一种芯片及基于其的数据处理方法和装置 |
CN109739784A (zh) * | 2019-01-08 | 2019-05-10 | 郑州云海信息技术有限公司 | 一种数据处理方法、装置、系统及fpga加速卡 |
CN109766296A (zh) * | 2019-01-08 | 2019-05-17 | 郑州云海信息技术有限公司 | 一种数据处理方法、装置、系统和dma控制器 |
CN111159074A (zh) * | 2019-12-31 | 2020-05-15 | 山东超越数控电子股份有限公司 | 一种基于FPGA的超大规模数据hash运算加速卡 |
CN111367839A (zh) * | 2020-02-21 | 2020-07-03 | 苏州浪潮智能科技有限公司 | 一种主机端与fpga加速器之间的数据同步方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112598565A (zh) * | 2020-12-09 | 2021-04-02 | 第四范式(北京)技术有限公司 | 一种基于加速卡的服务运行方法、装置、电子设备及存储介质 |
WO2022121866A1 (zh) * | 2020-12-09 | 2022-06-16 | 第四范式(北京)技术有限公司 | 一种基于加速卡的服务运行方法、装置、电子设备及计算机可读存储介质 |
CN112598565B (zh) * | 2020-12-09 | 2024-05-28 | 第四范式(北京)技术有限公司 | 一种基于加速卡的服务运行方法、装置、电子设备及存储介质 |
CN113238869A (zh) * | 2021-05-28 | 2021-08-10 | 北京达佳互联信息技术有限公司 | 一种计算加速方法、设备和系统及存储介质 |
CN113704301A (zh) * | 2021-07-15 | 2021-11-26 | 苏州浪潮智能科技有限公司 | 异构计算平台的数据处理方法、装置、系统、设备及介质 |
CN113704301B (zh) * | 2021-07-15 | 2023-06-20 | 苏州浪潮智能科技有限公司 | 异构计算平台的数据处理方法、装置、系统、设备及介质 |
CN113535745A (zh) * | 2021-08-09 | 2021-10-22 | 威讯柏睿数据科技(北京)有限公司 | 一种层次化数据库操作加速系统和方法 |
CN113703951A (zh) * | 2021-10-27 | 2021-11-26 | 苏州浪潮智能科技有限公司 | 一种处理dma的方法、装置、及计算机可读存储介质 |
CN113703951B (zh) * | 2021-10-27 | 2022-02-18 | 苏州浪潮智能科技有限公司 | 一种处理dma的方法、装置、及计算机可读存储介质 |
CN117666963A (zh) * | 2023-12-13 | 2024-03-08 | 湖南承希科技有限公司 | 一种cpu云计算平台的数据io加速方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111813713B (zh) | 2021-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111813713B (zh) | 数据加速运算处理方法、装置及计算机可读存储介质 | |
US11042297B2 (en) | Techniques to configure a solid state drive to operate in a storage mode or a memory mode | |
CN113704301B (zh) | 异构计算平台的数据处理方法、装置、系统、设备及介质 | |
US20240037060A1 (en) | Computing device, virtualization acceleration device, remote control method and storage medium | |
US11687242B1 (en) | FPGA board memory data reading method and apparatus, and medium | |
US11188365B2 (en) | Memory overcommit by speculative fault | |
KR20200135718A (ko) | 액세스 요청을 관리하기 위한 방법, 장치, 기기 및 저장 매체 | |
CN114513545B (zh) | 请求处理方法、装置、设备及介质 | |
CN113849238B (zh) | 数据通信方法、装置、电子设备及可读存储介质 | |
CN105677491A (zh) | 一种数据传输方法及装置 | |
US10733687B2 (en) | Method and apparatus for data communication in virtualized environment, and processor | |
CN113687779B (zh) | 数据迁移方法、装置、电子设备及可读存储介质 | |
CN117591450B (zh) | 一种数据处理系统、方法、设备及介质 | |
WO2022032990A1 (zh) | 一种命令信息传输方法、系统、装置及可读存储介质 | |
CN104123173A (zh) | 一种实现虚拟机间通信的方法及装置 | |
CN112433812A (zh) | 一种虚拟机跨集群迁移方法、系统、设备及计算机介质 | |
WO2020177567A1 (zh) | 一种迁移数据的方法、装置及系统 | |
CN111159124B (zh) | Linux内核文件系统异步写缓存方法、装置及介质 | |
CN116561091A (zh) | 一种日志存储方法、装置、设备及可读存储介质 | |
CN114138424B (zh) | 一种虚拟机内存快照生成方法、装置及电子设备 | |
WO2022083158A1 (zh) | 数据处理的方法、实例以及系统 | |
CN115292000A (zh) | 一种虚拟机动态迁移的方法、装置及电子设备 | |
CN112732176B (zh) | 基于fpga的ssd访问方法及装置、存储系统及存储介质 | |
CN112214444A (zh) | 一种核间通信方法、arm、dsp及终端 | |
CN112885402B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |