一种数据存储系统
文献发布时间:2023-06-19 10:48:02
技术领域
本发明涉及一种数据存储系统。
背景技术
近年来,为了解决传统计算体系结构瓶颈,存算一体架构得到人们的广泛关注,其基本思想是直接利用存储器进行逻辑计算,从而减少存储器与处理器之间的数据传输量以及传输距离,降低功耗的同时提高性能。
现有技术中,存算一体芯片中的计算和存储模块通常是固定的,不能根据实际的需求进行算力的动态分配;数据的存储是按照统一的策略进行分配,无法进行动态的设置;另外现有的系统中,CPU和计算模块通常各自执行任务,而且数据处理方式固定,缺少有效的任务分配及协调处理机制,不利于资源的动态调度。
发明内容
为解决现有技术中存在的问题,本发明解决其技术问题所采用的技术方案是:
一种数据存储系统,包括CPU和存算一体设备,所述存算一体设备包括:多个计算模块,多个存储阵列以及监控模块;
所述监控模块用于实现对CPU、计算模块、存储阵列以及待处理任务的状态监控;
所述监控模块还用于根据计算模块和存储阵列的状态进行动态的匹配,其中,所述动态的匹配包括:将多个计算模块分为第一计算模块组和第二计算模块组,将第一计算模块组中的计算模块根据存储阵列的状态和待处理任务的状态划分至对应的存储阵列,其中,第一计算模块组中的计算模块的个数大于存储阵列的个数;
所述第二计算模块组中的计算模块为空闲计算模块,根据待处理任务和CPU的状态进行分配;
其中,当所述待处理任务为新数据时,所述监控模块获取新数据的状态,所述新数据的状态至少包括新数据的大小、新数据的权重,根据新数据的状态确定新数据的存储策略,然后将新数据发送至CPU和、或计算模块进行处理后,根据存储策略存储至对应的存储阵列。
其中,所述将第一计算模块组中的计算模块根据存储阵列的状态和待处理任务的状态划分至对应的存储阵列包括:
获取每个待处理任务的存储地址,根据所述存储地址确定与该存储地址对应的存储阵列;其中,每个存储阵列中包括至少一个数据;
确定所述存储地址对应的待处理任务量的个数R,所述存储地址对应的数据的大小M,以及确定所述存储地址对应的存储阵列的剩余空间的大小N,根据所述M、N确定需要的计算模块的个数P;
其中,
其中,所述根据待处理任务和CPU的状态进行空闲计算模块分配包括:
确定CPU所需处理的待处理任务的个数X,以及CPU的温度T;
当温度T超过指定阈值
其中,
其中,数学符号⌈ ⌉为向上取整,在空闲模块分配之前还包括CPU的分配,所述CPU的分配包括:确定CPU所需处理的待处理任务的个数X;
其中,所述根据新数据的状态确定新数据的存储策略包括:
当所述新数据的大小不小于指定阈值,且新数据的权重大于设定的安全性阈值时,将所述新数据划分为不同的数据块,分别存储至不同的存储阵列中;
当所述新数据的大小小于指定阈值,且新数据的权重大于设定的安全性阈值时,将所述新数据划分为不同的数据块,分别存储至同一存储阵列中的不同位置;
当所述新数据的大小小于指定阈值,且新数据的权重不大于设定的安全性阈值时,将所述新数据存储至至少两个存储阵列中。
其中,当所述待处理任务为数据子块时,从所述数据子块中获取上一数据子块对应的存储地址,然后根据所述数据子块的权重确定所述数据子块的存储策略;
根据所述存储策略确定对应的存储阵列,并获取分配给所述存储策略对应的存储阵列的计算模块;
然后使用所述计算模块执行数据子块的存储。
其中,在确定待处理任务之前,还包括对数据进行分流处理。
本发明还提供了一种基于所述系统的数据存储方法,所述方法包括:
当所述系统接收到待处理任务后,对所述待处理任务进行分流处理;
使用CPU和计算模块分别对分流后的待处理任务进行处理;
当CPU对分流后的待处理任务处理完成后,确定对应的存储阵列,然后经过与存储阵列对应的计算模块执行存储操作;
当计算模块对分流后的待处理任务处理完成后,进行存储操作;
其中,当CPU和、或计算模块负载变大时,使用空闲计算模块进行算力补充。
本发明的有益效果是,本发明提供的数据存储系统,包括CPU和存算一体设备,所述存算一体设备包括:多个计算模块,多个存储阵列以及监控模块;该系统中,将多个计算模块分为第一计算模块组和第二计算模块组,将第一计算模块组中的计算模块根据存储阵列的状态和待处理任务的状态划分至对应的存储阵列,其中,第一计算模块组中的计算模块的个数大于存储阵列的个数;所述第二计算模块组中的计算模块为空闲计算模块,根据待处理任务和CPU的状态进行分配;该系统能够实现算力的合理分配,并根据CPU和计算模块的状态进行任务的调整,同时根据不同的数据具有不同的存储策略,不仅实现了算力的优化,还实现了数据存储的有效性、可靠性、安全性。
附图说明
下面结合附图和实施例对本发明进一步说明。
图1是本发明的结构框图。
具体实施方式
现在结合附图对本发明作进一步详细的说明。这些附图均为简化的示意图,仅以示意方式说明本发明的基本结构,因此其仅显示与本发明有关的构成。
如图1所示,本发明提供了一种数据存储系统,包括CPU和存算一体设备,所述存算一体设备包括:多个计算模块,多个存储阵列以及监控模块;其中,所述存储系统还可以包括与CPU配合使用的cache。
所述监控模块用于实现对CPU、计算模块、存储阵列以及待处理任务的状态监控;通过对CPU、计算模块、存储阵列以及待处理任务的状态监控,便于后续算力的动态调整,存储阵列的优化使用,以及待处理任务的调整。
所述监控模块还用于根据计算模块和存储阵列的状态进行动态的匹配,其中,所述动态的匹配包括:将多个计算模块分为第一计算模块组和第二计算模块组,将第一计算模块组中的计算模块根据存储阵列的状态和待处理任务的状态划分至对应的存储阵列,其中,第一计算模块组中的计算模块的个数大于存储阵列的个数;在本发明中,创造性的将算力划分为多个计算模块,且计算模块的个数大于存储阵列的个数,具体计算模块的个数可以但不限于为存储阵列个数的2-5倍;通过计算模块的颗粒度划分,能够便于根据实际的情况进行动态的调度,实现算力的合理分配。
所述第二计算模块组中的计算模块为空闲计算模块,根据待处理任务和CPU的状态进行分配;空闲计算模块的设置可以根据待处理任务的变化,如任务中数据的增加、减小,和或任务的增加或减小等,进行算力的动态补充,保证算力的优化利用。
其中,当所述待处理任务为新数据时,所述监控模块获取新数据的状态,所述新数据的状态至少包括新数据的大小、新数据的权重,根据新数据的状态确定新数据的存储策略,然后将新数据发送至CPU和、或计算模块进行处理后,根据存储策略存储至对应的存储阵列。在本发明中,不同的数据具有不同的处理方式,具体的可以根据数据的大小确定数据是整体存储还是分块存储,根据数据的权重确定数据是通过CPU和计算模块并行处理,还是单独处理,根据数据的权重还需要确定是否加密分块存储,还是加密整体存储,亦或是加密冗余处理,或是采用上述的任一组合进行处理等。
其中,所述将第一计算模块组中的计算模块根据存储阵列的状态和待处理任务的状态划分至对应的存储阵列包括:
获取每个待处理任务的存储地址,根据所述存储地址确定与该存储地址对应的存储阵列;其中,每个待处理任务中包至少一个数据,每个存储阵列中存储有至少一个数据;
确定所述存储地址对应的待处理任务量的个数R,所述存储地址对应的待存储的数据大小M,以及确定所述存储地址对应的存储阵列的剩余空间的大小N,根据所述M、N确定需要的计算模块的个数P;
其中,
在每个存储阵列中存储有相同或不同的数据,每个待处理任务中可能包括存储在一个或多个存储阵列中的相同或不同的数据,而且,不同的数据可能存储在不同的阵列和或位置上,为了便于实现任务的处理,需要确定待处理任务中数据的大小,以及相关存储阵列的存储空间,由此确定所需要的计算模块的个数,实现算力的合理分配;其中,每个存储阵列对应的计算模块的个数可以是相同,也可以是不同的,优选的,当按照上述公式计算进行计算模块的分配时,当分配的总数量超过现有计算模块的个数时,可以根据
其中,所述根据待处理任务和CPU的状态进行空闲计算模块分配包括:
确定CPU所需处理的待处理任务的个数X,以及CPU的温度T;
当温度T超过指定阈值
其中,
其中,在空闲模块分配之前还包括CPU的分配,所述CPU的分配包括:确定CPU所需处理的待处理任务的个数X;
其中,所述根据新数据的状态确定新数据的存储策略包括:
当所述新数据的大小不小于指定阈值,且新数据的权重大于设定的安全性阈值时,将所述新数据划分为不同的数据块,分别存储至不同的存储阵列中;其中,在存储时,可以选用具有高安全性的加密算法;
当所述新数据的大小小于指定阈值,且新数据的权重大于设定的安全性阈值时,将所述新数据划分为不同的数据块,分别存储至同一存储阵列中的不同位置;其中,在存储时,可以选用具有高安全性的加密算法;
当所述新数据的大小小于指定阈值,且新数据的权重不大于设定的安全性阈值时,将所述新数据存储至至少两个存储阵列中。
对于不同的数据采用不同的存储策略,由此实现了数据的动态处理,在具体的实现过程中,还可以通过对数据状态的监控,根据实际的安全和可靠性需求,设置数据的存储策略,利用现有的加密、分块、冗余处理等方式实现存储策略的构架,由此提高数据的安全性和可靠性。
其中,当所述待处理任务为数据子块时,从所述数据子块中获取上一数据子块对应的存储地址,然后根据所述数据子块的权重确定所述数据子块的存储策略;
根据所述存储策略确定对应的存储阵列,并获取分配给所述存储策略对应的存储阵列的计算模块;
然后使用所述计算模块执行数据子块的存储。
对于已经处理过的分块处理,可以通过获取上一数据子块,识别其对应的存储策略的识别,然后根据确定的存储策略进行所述数据子块的处理,由此提高数据的处理效率,然而为了进一步提高数据的安全性,可以通过对该数据子块的识别,再次确定其对应的存储策略,然后与识别出的上一数据子块对应的存储策略进行比较,当两者一致时执行存储策略,否则进行异常报警。
其中,在确定待处理任务之前,还包括对数据进行分流处理。在本发明的系统中,同时存在CPU和计算模块,为了提高算力的合理利用,保证传统系统和存算一体芯片的有效结合,可以在接收到待处理任务之后,首先对其中的数据进行分流处理,其中,上述分流处理可以根据数据的安全性和可靠性指标确定数据的权重,并据此进行分流处理,优选的,数据可以分为三类,分别是高权重,中权重和低权重,其中,高权重需要同时通过CPU和计算模块处理后,当监控模块确定处理结果一致时,执行存储处理;对于中权重和低权重,则分别通过CPU、计算模块进行处理后执行存储处理;其中,高权重,中权重和低权重中的数据的比重依据CPU和计算模块的处理能力进行确定,其中,高权重和中权重相关的待处理任务的量不大于X。
本发明还提供了一种基于所述系统的数据存储方法,所述方法包括:
当所述系统接收到待处理任务后,对所述待处理任务进行分流处理;
使用CPU和计算模块分别对分流后的待处理任务进行处理;
当CPU对分流后的待处理任务处理完成后,确定对应的存储阵列,然后经过与存储阵列对应的计算模块执行存储操作;
当计算模块对分流后的待处理任务处理完成后,进行存储操作;
其中,当CPU和、或计算模块负载变大时,使用空闲计算模块进行算力补充。
本发明的有益效果是,本发明提供的数据存储系统,包括CPU和存算一体设备,所述存算一体设备包括:多个计算模块,多个存储阵列以及监控模块;该系统中,将多个计算模块分为第一计算模块组和第二计算模块组,将第一计算模块组中的计算模块根据存储阵列的状态和待处理任务的状态划分至对应的存储阵列,其中,第一计算模块组中的计算模块的个数大于存储阵列的个数;所述第二计算模块组中的计算模块为空闲计算模块,根据待处理任务和CPU的状态进行分配;该系统能够实现算力的合理分配,并根据CPU和计算模块的状态进行任务的调整,同时根据不同的数据具有不同的存储策略,不仅实现了算力的优化,还实现了数据存储的有效性、可靠性、安全性。
以上述依据本发明的理想实施例为启示,通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。
- 一种数据存储系统及用于数据存储系统的动态预留空间方法
- 一种数据存储系统及数据存储系统的部署方法