一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种纠删任务处理系统、方法、电子设备及存储介质与流程

2022-03-31 10:23:16 来源:中国专利 TAG:


1.本技术涉及数据处理技术领域,特别涉及一种纠删任务处理系统、方法、电子设备及存储介质。


背景技术:

2.面对海量数据的存储要求,分布式存储以其成本低廉,可扩展性好等优势逐渐取代了统一存储的主导地位,在理论研究和实际应用方面得到了越来越多的关注。分布式存储系统多以廉价的磁盘作为存储节点,每个存储节点的可靠性往往不会很高,另一方面,一个分布式存储系统通常包含很多的节点,由于软硬件故障,人为失误等原因,系统常常发生节点失效的情况。为了提高分布式存储系统的数据可靠性,保证数据收集节点能以很高的概率实现原始文件的重构,需要在存储原始数据的基础上,额外存储一定数量的冗余,使得在出现部分节点失效的情况下,系统仍然可以正常运行,数据收集节点仍然可以对原始文件实现解码恢复。同时,为了维持系统的可靠性,需要对失效的节点及时进行修复,因此,设计一个良好的节点修复机制十分重要。
3.现在业界在分布式存储中,对基于纠删码的编码和解码,大都使用如 intel-isa,jerasure2.0等开源软件的解决方案,即在cpu上运行rs (reed-solomon code,里德所罗门码)相关的软件做纠删的编码和解码。但是上述常规的纠删任务处理方式需要占用较多的计算资源。
4.因此,如何降低纠删任务处理对计算资源的占用是本领域技术人员目前需要解决的技术问题。


技术实现要素:

5.本技术的目的是提供一种纠删任务处理系统、方法、电子设备及存储介质,能够降低纠删任务处理对cpu计算资源的占用。
6.为解决上述技术问题,本技术提供一种纠删任务处理系统,该状态预警系统包括:
7.数据切片调度单元,用于确定所述纠删任务对应的切片参数,并将所述切片参数发送至输入数据地址计算单元和输出数据地址计算单元;其中,所述切片参数包括:预设切片大小、所述纠删任务的数据块大小、输入数据块数量和输出数据块数量;
8.所述输入数据地址计算单元,用于根据所述切片参数计算每一输入切片数据块的第一地址信息,并将所述第一地址信息发送至dma单元;其中,所述第一地址信息包括所述输入切片数据块的起始地址和数据大小;
9.所述输出数据地址计算单元,用于根据所述切片参数计算每一输出切片数据块的第二地址信息,并将所述第二地址信息发送至所述dma单元;其中,所述第二地址信息包括所述输出切片数据块的起始地址和数据大小;
10.所述dma单元,用于根据所述第一地址信息和所述第二地址信息控制纠删处理模块的输入和输出,以便完成所述纠删任务。
11.可选的,所述数据切片调度单元包括:
12.切片参数确定子单元,用于根据所述dma单元的调度方式和硬件输出的缓存能力设置所述预设切片大小;
13.或,参数自适应调整子单元,用于根据当前缓存空闲情况自适应调整所述预设切片大小。
14.可选的,所述纠删处理模块包括任务调度单元、输入数据调度单元、矩阵调度单元、输出数据调度单元、处理单元和输出数据调度单元;
15.其中,所述任务调度单元用于接收并解析纠删任务得到解析信息,并将所述解析信息发送至数据调度单元、矩阵调度单元、输出数据调度单元和所述数据切片调度单元;
16.可选的,所述数据调度单元,用于根据所述输入数据块数量、所述输出数据块数量和所述每一输入切片数据块的大小将每一所述输入切片数据块输入所述处理单元。
17.可选的,所述矩阵调度单元,用于根据所述输入数据块数量和所述输出数据块数量确定编码矩阵和/或解码矩阵,并将所述确定编码矩阵和/或解码矩阵输入所述处理单元。
18.可选的,所述配置调度单元,用于根据所述输入数据块数量、所述输出数据块数量、所述每一输入切片数据块的大小生成配置信息,并将所述配置信息输入所述处理单元和所述输出数据调度单元。
19.可选的,所述输出数据调度单元,用于根据所述配置信息判断所述纠删任务是否完成;还用于在所述纠删任务完成后向所述任务调度单元返回响应信息。
20.本技术还提供了一种纠删任务处理方法,该方法包括:
21.确定所述纠删任务对应的切片参数;其中,所述切片参数包括:预设切片大小、所述纠删任务的数据块大小、输入数据块数量和输出数据块数量;
22.根据所述切片参数计算每一输入切片数据块的第一地址信息;其中,所述第一地址信息包括所述输入切片数据块的起始地址和数据大小;
23.根据所述切片参数计算每一输出切片数据块的第二地址信息;其中,所述第二地址信息包括所述输出切片数据块的起始地址和数据大小;
24.根据所述第一地址信息和所述第二地址信息控制纠删处理模块的输入和输出,以便完成所述纠删任务。
25.本技术还提供了一种存储介质,其上存储有计算机程序,所述计算机程序执行时实现上述纠删任务处理方法执行的步骤。
26.本技术还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现上述纠删任务处理方法执行的步骤。
27.本技术提供了一种纠删任务处理系统,包括:数据切片调度单元,用于确定所述纠删任务对应的切片参数,并将所述切片参数发送至输入数据地址计算单元和输出数据地址计算单元;其中,所述切片参数包括:预设切片大小、所述纠删任务的数据块大小、输入数据块数量和输出数据块数量;所述输入数据地址计算单元,用于根据所述切片参数计算每一输入切片数据块的第一地址信息,并将所述第一地址信息发送至dma单元;其中,所述第一地址信息包括所述输入切片数据块的起始地址和数据大小;所述输出数据地址计算单元,
用于根据所述切片参数计算每一输出切片数据块的第二地址信息,并将所述第二地址信息发送至所述dma单元;其中,所述第二地址信息包括所述输出切片数据块的起始地址和数据大小;所述dma单元,用于根据所述第一地址信息和所述第二地址信息控制纠删处理模块的输入和输出,以便完成所述纠删任务。
28.本技术利用数据切片调度单元确定纠删任务的切片参数,输入数据地址计算单元根据切片参数可以确定每一输入切片数据块的起始地址和数据大小,以便dma模块按照每一输入切片数据块的起始地址和数据大小控制纠删处理模块的输入。输出数据地址计算单元根据切片参数可以确定每一输出切片数据块的起始地址和数据大小,以便dma模块根据每一输出切片数据块的起始地址和数据大小控制纠删处理模块的输出。本方案对纠删任务的数据块做数据切片处理,通过动态滚动调度小块数据来实现较大数据块的纠删。该过程对上层应用软件无感知,通过可配置的切片大小和硬件切片的方式,可以适用于不同片上缓存的硬件系统。本技术能够降低纠删任务处理对cpu计算资源的占用。本技术同时还提供了一种纠删任务处理方法、一种存储介质和一种电子设备,具有上述有益效果,在此不再赘述。
附图说明
29.为了更清楚地说明本技术实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
30.图1为本技术实施例所提供的一种分布式存储节点中纠删应用示意图;
31.图2为本技术实施例所提供的rs纠删编解码硬件框图;
32.图3为本技术实施例所提供的一种rs纠删编解码硬件的工作流程图;
33.图4为本技术实施例所提供的一种两个连续的任务调度示意图。
具体实施方式
34.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
35.本技术实施例所提供的一种纠删任务处理系统包括:
36.数据切片调度单元,用于确定所述纠删任务对应的切片参数,并将所述切片参数发送至输入数据地址计算单元和输出数据地址计算单元;其中,所述切片参数包括:预设切片大小、所述纠删任务的数据块大小、输入数据块数量和输出数据块数量;
37.所述输入数据地址计算单元,用于根据所述切片参数计算每一输入切片数据块的第一地址信息,并将所述第一地址信息发送至dma单元;其中,所述第一地址信息包括所述输入切片数据块的起始地址和数据大小;
38.所述输出数据地址计算单元,用于根据所述切片参数计算每一输出切片数据块的第二地址信息,并将所述第二地址信息发送至所述dma单元;其中,所述第二地址信息包括所述输出切片数据块的起始地址和数据大小;
39.所述dma单元,用于根据所述第一地址信息和所述第二地址信息控制纠删处理模块的输入和输出,以便完成所述纠删任务。
40.上述实施例在接收到纠删任务之后,确定执行纠删任务需要输入的数据块,将该数据块切分为多个输入切片数据块,以便对多个输入切片数据块进行纠删处理。本实施例利用输入数据地址计算单元计算每一输入切片数据的起始地址和数据大小。本实施例还利用输出数据地址计算单元计算每一输出切片数据块的起始地址和数据大小。本实施例将输入切片数据块的起始地址和数据大小,以及输出切片数据块的起始地址和数据大小发送至dma(directmemory access,直接存储器访问)单元。dma单元可以控制纠删处理模块按照输入切片数据块的起始地址和数据大小进行数据输入,还可以控制纠删处理模块按照输出切片数据块的起始地址和数据大小进行数据输出。
41.本实施例利用数据切片调度单元确定纠删任务的切片参数,输入数据地址计算单元根据切片参数可以确定每一输入切片数据块的起始地址和数据大小,以便dma模块按照每一输入切片数据块的起始地址和数据大小控制纠删处理模块的输入。输出数据地址计算单元根据切片参数可以确定每一输出切片数据块的起始地址和数据大小,以便dma模块根据每一输出切片数据块的起始地址和数据大小控制纠删处理模块的输出。本方案对纠删任务的数据块做数据切片处理,通过动态滚动调度小块数据来实现较大数据块的纠删。该过程对上层应用软件无感知,通过可配置的切片大小和硬件切片的方式,可以适用于不同片上缓存的硬件系统。
42.进一步的,所述数据切片调度单元包括:
43.切片参数确定子单元,用于根据所述dma单元的调度方式和硬件输出的缓存能力设置所述预设切片大小;
44.或,参数自适应调整子单元,用于根据当前缓存空闲情况自适应调整所述预设切片大小。
45.其中,数据切片调度单元可以使用切片参数确定子单元对预设切片大小进行静态配置,也可以使用参数自适应调整子单元对预设切片大小进行动态配置。上述硬件输出的缓存能力包括缓冲大小和吞吐率,上述预设切片大小为输入切片数据块和输出切片数据块的大小。本实施例引入自适应的方法来做数据的切片,可以在某个确定缓存大小的基础上划分几种缓存的大小,根据实时缓存空闲情况来实现不同的切片大小的调度,进一步的提高缓存的利用率以及系统的吞吐率。
46.进一步的,所述纠删处理模块包括任务调度单元、输入数据调度单元、矩阵调度单元、输出数据调度单元、处理单元和输出数据调度单元。
47.任务调度单元用于接收并解析纠删任务得到解析信息,并将所述解析信息发送至数据调度单元、矩阵调度单元、输出数据调度单元和所述数据切片调度单元。
48.数据调度单元,用于根据所述输入数据块数量、所述输出数据块数量和所述每一输入切片数据块的大小将每一所述输入切片数据块输入所述处理单元。
49.矩阵调度单元,用于根据所述输入数据块数量和所述输出数据块数量确定编码矩阵和/或解码矩阵,并将所述确定编码矩阵和/或解码矩阵输入所述处理单元。
50.配置调度单元,用于根据所述输入数据块数量、所述输出数据块数量、所述每一输入切片数据块的大小生成配置信息,并将所述配置信息输入所述处理单元和所述输出数据
调度单元。
51.输出数据调度单元,用于根据所述配置信息判断所述纠删任务是否完成;还用于在所述纠删任务完成后向所述任务调度单元返回响应信息。
52.下面通过在实际应用中的实施例说明上述实施例描述的流程。
53.纠删码(erasure code)属于编码理论中的一种前向纠错技术,最早应用于通信领域以解决数据传输中的丢失与损耗这类问题。由于纠删码技术在防止数据丢失取得了较好的效果,因此被引入存储领域。纠删码可以在保证相同可靠性的前提下有效地降低存储开销,因此纠删码技术被广泛地应用于各大存储系统以及数据中心例如微软的azure、facebook的f4等。
54.纠删码的种类众多,在实际存储系统中较常见的有应用在分布式环境下的rs码(reed-solomon code)。rs码与两个参数k和r相关。给定两个正整数k和r,rs码将k个数据块编码为r个额外的校验块。r个校验块基于范德蒙矩阵或柯西矩阵进行编码的方式就称为利用范德蒙矩阵或柯西矩阵编码的rs纠删码。
55.基于范德蒙矩阵的rs纠删码如下所示:
[0056][0057]
基于柯西矩阵的rs纠删码如下所示:
[0058][0059]
上部分的k*k矩阵对应的就是k个原始数据块,下部分的r*k矩阵对应的就是编码矩阵,通过与原始数据d1到dk相乘,得到新添加的p1到pr就是编码所得到的r个校验数据。当其中任意小于r个数据在传输中出错或丢失,需要纠错时,用剩余数据对应矩阵的逆矩阵与数据相乘(乘法是在gf域的乘法运算),即会得到原始数据块d1到dk。gf(galois field)为伽罗华域。
[0060]
以d1到dr数据丢失进行解码为例,rs纠删码恢复数据方式如下所示:
[0061][0062]
纠删码的核心概念是构建一个可逆的编码矩阵用以产生校验数据,其逆矩阵可经过计算恢复原始数据。常见的rs纠删码使用的是上面介绍的柯西矩阵或范德蒙矩阵,这样的优势是所得到的矩阵肯定可逆,其任意子矩阵也都可逆,并且矩阵的大小扩充简单。
[0063]
上述介绍中的d1到dk,p1到pr的数据单位可以是8bit、16bit或者其他数值(这里称之为符号位,称之为symbol),取决乘法运算的位宽,即伽罗华域运算的有限域定义。对于一个任务,如果块大小为z bit。对于乘法运算,如果使用8bit的伽罗华域运算,要拆分为(z/8)个独立的数据和相同矩阵做运算。并将运算结果输出。如下所示可以求出第1个字节的编码输出,依次类推经过4096次不同数据和同一矩阵计算,可以求出一个块大小为4kbyte 的纠删编码。由此可知,纠删的特征就是各个数据块、校验块,不同symbol 之间是不相关的。
[0064]
对块大小4kbyte的数据做纠删编码的方式如下:
[0065]
对第1个字节计算;
[0066]
根据以上分析可知,对于一个纠删硬件系统,要完成纠删编码或者解码功能,需要提供以下三个要素:
[0067]
纠删任务分配:数据块数目,校验块数目,任务类型(编码或解码),数据块的状态(存在,出错或缺失),校验块的状态(存在,出错或缺失)。
[0068]
矩阵:对于编码,需要提供原始的编码矩阵,对于解码,需要提供解码矩阵,或者提供原始的编码矩阵,由硬件通过高斯消元计算逆矩阵完成解码。
[0069]
输入数据:对于编码,需要提供所有数据块的数据;对于解码,需要提供存在数据块的数据和存在校验块的数据。
[0070]
另外,关于纠删的性能,即数据的吞吐率,也是需要考虑的一个因素,通过上述的描述可知,只需要对各个symbol做尽可能多的并行就可以提高数据的吞吐率。综上,完成一个高性能的纠删系统,需要一个高度并发的硬件系统。现在业界用的比较多的是在通用cpu上运行开源软件,如intel的isa, jerasure2.0开源软件等,要么通过较高的cpu运行频率提高数据的吞吐率,要么通过例如intel的simd(single instruction multiple data,单指令多数据指令)等cpu提供的硬件加速指令做加速。
[0071]
现在业界在分布式存储中,对基于rs纠删码的编码和解码,大都使用如 intel-isa,jerasure2.0等开源软件的解决方案,即在cpu上运行rs相关的软件做纠删的编码,解
码。这种解决方案的一个明显的问题就是占用cpu的计算资源。本技术提出使用硬件加速方案的方案来进行纠删的编码,解码可以减小cpu的开销,同时可以提供比cpu方案更快的吞吐率。
[0072]
请参见图1,图1为本技术实施例所提供的一种分布式存储节点中纠删应用示意图,分布式存储系统包括分布式存储节点、纠删硬件处理单元和存储池1~3,接收到任务请求后纠删硬件处理单元可以进行任务响应。图1中d 表示数据块,c表示校验块。在分布式存储系统中,一个处理节点上可以处理很多的纠删策略,例如一个存储节点可以有4 2,6 2,3 1等不同策略配置。在多进程或多线程并发的情况下,对于一个处理纠删的硬件系统,需要处理的任务也是不相同的。如下所示,在一个分布式存储节点上,有多个存储池。例如图示中三个存储池的纠删策略为4 2、6 2或2 1。主机存储节点发起连续5个任务给硬件处理单元,硬件处理单元需要按照顺序对纠删任务进行处理,并将处理的编/解码后的数据反馈给主机。
[0073]
本实施例针对纠删硬件系统中的数据调度,提出了一种数据切片技术的硬件实现,该硬件可以根据用户定义的目标任务的数据块的大小,自动地计算每次数据调度的数据块的大小,可以在使用比较小的片内缓存,达到很高数据吞吐率。该硬件可以自动计算每次调度的输入数据块的大小以及输入数据的源地址,可以自动计算每次调度的输出数据块的大小以及输出数据的目的地址。
[0074]
本实施例可用的环境如下:对于k个数据块,r个校验块,编码需要配置数据块数目k和校验块数目r、编码矩阵、解码矩阵,块大小信息。解码需要配置数据块数目k和校验块数目r,编码矩阵或者解码矩阵,块大小,缺失的数据块,存在的校验块信息,缺失的数据块和校验块总和为lbn(lost blocknumber,丢失的块数),只要lbn小于等于r,纠删解码可以恢复所有的缺失数据块和校验块。数据切片的大小是通过静态配置的方式实现,该切片大小是结合系统的dma调度方式已经硬件输出的缓存能力确定。切片大小和数据块的大小没有关联,可以大于、小于或者等于数据块的大小。本实施例中数据调度、矩阵调度等操作可以通过外部辅助的硬件完成,例如dma。
[0075]
请参见图2,图2为本技术实施例所提供的rs纠删编解码硬件框图,如图2所示,本实施例提出的rs纠删硬件以一个最大支持数据节点数无限制, 最大支持校验节点数r=6为例。
[0076]
模块分为

任务调度单元,

输入数据调度单元,

矩阵调度单元,

配置调度单元,

伽罗华乘法单元(6个),

输出数据调度单元(6个),

数据切片调度单元,

输入数据地址计算单元,

输出数据地址计算单元,伽罗华乘法单元即处理单元。具体的各个模块的功能介绍如下:
[0077]

任务调度单元负责接收、解析纠删任务请求,并根据解析得到的信息,将需要调度输入的数据信息发送给输入数据调度单元;将编码、解码需要的矩阵信息发送给矩阵调度单元;将任务的具体配置信息发送给配置调度单元。在该纠删任务处理结束后,负责向外发送任务完成的响应。
[0078]

输入数据调度单元根据需要调度的输入数据,将该纠删任务的输入数据送给需要计算的pe(process element)处理单元,该调度单元还需要保证不会发生数据的丢失即要和目标pe有必要的数据流控。
[0079]

矩阵调度单元根据纠删的任务,负责从外部分调入纠删编码或者解码所需要的矩阵,或者由矩阵调度单元根据原始的编码矩阵,自行计算所需要的解码矩阵。同时将编码或者解码矩阵送给需要计算的pe目标单元,该调度单元还需要保证不会发生矩阵的丢失即要和目标pe有必要的数据流控。
[0080]

配置调度单元根据纠删任务,将配置信息下发给目标pe和输出数据调度单元,该调度单元还需要保证不会发生配置信息的丢失即要和目标pe和输出数据调度单元有必要的数据流控。
[0081]

伽罗华乘法单元根据送入的配置、数据和矩阵进行对应的矩阵计算。
[0082]

输出数据调度单元根据送入的配置,将产生的数据输出,同时对目标 pe做输出数据的计数,当输出的数据数和该任务期望的数据数一致,该任务的处理结束,向任务调度单元发送任务结束的通知。
[0083]

数据切片调度单元负责根据任务的类型,将具体的数据切换任务分发给输入数据调度单元和输出数据调度单元。
[0084]

输入数据地址计算单元负责根据每个输入数据块的起始地址、切片大小、数据块大小计算出每一个调度的切片数据块的起始地址和数据块大小,从外部调度输入数据。
[0085]

输出数据地址计算单元负责根据每个输出数据块的起始地址、切片大小、数据块大小计算出每一个调度的切片数据块的起始地址和数据块大小,将产生的输出数据调度输出到外部。
[0086]
请参见图3,图3为本技术实施例所提供的一种rs纠删编解码硬件的工作流程图,具体过程如下:
[0087]
任务调度单元得到一个纠删的任务请求。
[0088]
任务调度单元把该纠删任务需要的输入数据块的个数k,输出的数据块个数lbn和每个数据块的大小压入输入数据调度单元。输入数据调度单元根据输入数据块数目k,输出的数据块个数lbn和每个数据块的大小,按照预定的数据顺序压入lbn个目标pe(即,伽罗华乘法单元),目标pe接收到的数据相同。
[0089]
任务调度单元把该纠删任务需要的输入数据块的个数k,输出的数据块个数lbn压入矩阵调度单元。矩阵调度单元根据输入数据块数目k,输出的数据块个数lbn,把lbn*k大小的矩阵送给lbn个目标pe(每个pe接收到k个矩阵元素)。
[0090]
任务调度单元把该纠删任务需要的输入数据块的个数k,输出的数据块个数lbn和每个数据块的大小压入配置调度单元。配置调度单元根据输出数据块个数lbn,将配置信送给lbn个目标pe(每个pe接收到配置信息相同)。配置调度单元根据输出数据块个数lbn,将配置信送给lbn个输出数据调度单元 (每个单元接收到配置信息相同)。
[0091]
数据切片调度单元根据配置的切片大小和整个任务的数据块大小,以及输出的数据块数目k和输出的数据块数目lbm通知两个地址计算单元(即,输入数据地址计算单元和输出数据地址计算单元)。
[0092]
输入数据地址计算单元根据每个输入数据块的起始地址、切片大小、数据块大小计算出每一个调度的切片数据块的起始地址和数据块大小,从外部调度输入数据。输出数据地址计算单元根据每个输出数据块的起始地址、切片大小、数据块大小计算出每一个调度的切片数据块的起始地址和数据块大小,将产生的输出数据调度输出到外部。
[0093]
每个目标输出数据调度单元按照配置信息中的块大小和切片大小,每做完一个切片大小数据的计算,将数据向外输出。当做完整个任务数据块大小的计算,将数据向外输出并将状态信息反馈给任务调度单元。任务调度单元监测到纠删任务完成后发送任务响应。
[0094]
请参见图4,图4为本技术实施例所提供的一种两个连续的任务调度示意图,图4是在本技术提出的硬件结构和工作数据流的工作方式下,以连续处理2个纠删任务为例说明该硬件架构的工作过程。从图中可以看到,2个任务可以连续的送入硬件处理单元,做到输入的数据吞吐率达到满负荷的状态,6 个pe单元会根据任务的编码、解码输出数据的块数进行数据的输出,可以看到系统是以小的数据切片滚动调度的方式产生纠删的输出数据。如图4所示,纵轴为硬件资源,横轴为时间。任务请求输入任务请求1为7 3编码,输入数据调度单元输出数据块1~6,矩阵调度单元输出编码矩阵1每次的7个切片 (每片4kbyte),配置调度单元输出任务1配置,输出调度单元1~6输出每次的3个校验块1~3的切片,任务响应输出任务1的响应7 3编码。任务请求输入任务请求1为7 3解码,输入数据调度单元输出校验块1~6,矩阵调度单元输出解码矩阵1每次的7个切片(每片4kbyte),配置调度单元输出任务2配置,输出调度单元1~6输出每次的4个数据块1~4的切片,任务响应输出任务2的响应7 3编码。
[0095]
本实施例针对分布式存储下的rs纠删码,通过硬件对大的块大小任务做数据切片处理,通过动态滚动调度小块数据来实现大的数据块的纠删。该过程对上层应用软件无感知,通过可配置的切片大小和硬件切片的方式,可以适用于不同片上缓存的硬件系统。如果不采用本发明方案,在面对数据块大小比较大的纠删任务时候(比如纠删数据块大小为2mbyte),一种做法是在软件层将大的数据块纠删任务拆分成小的纠删任务,这样会增加调度成本,原因是会有大量的任务请求和任务相应在硬件系统中传输,同时也会增加软件的开销。另外一种做法是在硬件上对每个处理单元增加非常大的缓冲,例如任务如果是2mbyte大小,那么需要每个处理单元的缓冲大小为2mbyte,这样会显著增加片上缓存资源,同时对于系统输入单元的缓冲大小也提出了比较高的要求。
[0096]
本技术实施例还提供的一种纠删任务处理方法,可以包括以下步骤:
[0097]
确定所述纠删任务对应的切片参数;其中,所述切片参数包括:预设切片大小、所述纠删任务的数据块大小、输入数据块数量和输出数据块数量;
[0098]
根据所述切片参数计算每一输入切片数据块的第一地址信息;其中,所述第一地址信息包括所述输入切片数据块的起始地址和数据大小;
[0099]
根据所述切片参数计算每一输出切片数据块的第二地址信息;其中,所述第二地址信息包括所述输出切片数据块的起始地址和数据大小;
[0100]
根据所述第一地址信息和所述第二地址信息控制纠删处理模块的输入和输出,以便完成所述纠删任务。
[0101]
本实施例确定纠删任务的切片参数,根据切片参数可以确定每一输入切片数据块的起始地址和数据大小,以便dma模块按照每一输入切片数据块的起始地址和数据大小控制纠删处理模块的输入。本实施例根据切片参数可以确定每一输出切片数据块的起始地址和数据大小,以便dma模块根据每一输出切片数据块的起始地址和数据大小控制纠删处理模块的输出。本方案对纠删任务的数据块做数据切片处理,通过动态滚动调度小块数据来实现较大数据块的纠删。该过程对上层应用软件无感知,通过可配置的切片大小和硬件切
片的方式,可以适用于不同片上缓存的硬件系统。
[0102]
进一步的,确定所述纠删任务对应的切片参数包括:
[0103]
根据所述dma单元的调度方式和硬件输出的缓存能力设置所述预设切片大小;
[0104]
或,根据当前缓存空闲情况自适应调整所述预设切片大小。
[0105]
进一步的,所述纠删处理模块包括任务调度单元、输入数据调度单元、矩阵调度单元、输出数据调度单元、处理单元和输出数据调度单元;
[0106]
其中,所述任务调度单元用于接收并解析纠删任务得到解析信息,并将所述解析信息发送至数据调度单元、矩阵调度单元、输出数据调度单元和所述数据切片调度单元。
[0107]
进一步的,所述数据调度单元,用于根据所述输入数据块数量、所述输出数据块数量和所述每一输入切片数据块的大小将每一所述输入切片数据块输入所述处理单元。
[0108]
进一步的,所述矩阵调度单元,用于根据所述输入数据块数量和所述输出数据块数量确定编码矩阵和/或解码矩阵,并将所述确定编码矩阵和/或解码矩阵输入所述处理单元。
[0109]
进一步的,所述配置调度单元,用于根据所述输入数据块数量、所述输出数据块数量、所述每一输入切片数据块的大小生成配置信息,并将所述配置信息输入所述处理单元和所述输出数据调度单元。
[0110]
进一步的,所述输出数据调度单元,用于根据所述配置信息判断所述纠删任务是否完成;还用于在所述纠删任务完成后向所述任务调度单元返回响应信息。
[0111]
由于方法部分的实施例与系统部分的实施例相互对应,因此方法部分的实施例请参见系统部分的实施例的描述,这里暂不赘述。
[0112]
本技术还提供了一种存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(randomaccess memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0113]
本技术还提供了一种电子设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述电子设备还可以包括各种网络接口,电源等组件。
[0114]
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术权利要求的保护范围内。
[0115]
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个
……”
限定的要素,并不排
除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献