数据存储系统的制作方法

文档序号:24753922发布日期:2021-04-21 00:06阅读:144来源:国知局
数据存储系统的制作方法

1.本申请涉及数据缓存技术领域,特别是涉及一种数据存储系统。


背景技术:

2.信息时代用户数据呈指数级增长,用户对高速数据的存储和导出提出了新的要求:用户数据能够高速无阻塞的存储到存储介质中,同时数据的导出又能够方便快捷,要求数据的导出兼容通用的非实时性系统。
3.在现有的采用的解决方案中,大多采用将存储介质直接挂载到非实时性系统中进行用户数据的存储控制,这样当前端数据速度达到gb级别甚至更高时,前端数据拥塞现象将逐渐明显,限制系统的整体带宽。
4.可见,传统的高速数据缓存方案容易出现阻塞情况,无法实现数据高速存储。


技术实现要素:

5.基于此,有必要针对上述技术问题,提供一种能够实现数据高速存储的数据存储系统。
6.一种数据存储系统,包括n个处理核模块,m个第一缓存模块、以及第二缓存模块,n=m+2,所述n为正整数,所述m为不小于1的正整数;
7.所述n个处理核模块依次串联集成于同一个fpga(field

programmable gate array,现场可编程逻辑门阵列)上形成包含1~n号处理核模块的处理核链,1~n

1号处理核模块加载有实时系统,n号处理模块加载有非实时系统,1~n

1号处理核模块中相邻两个处理核模块与同一个所述第一缓存模块连接,1号处理核模块接收用户实时数据,n

1号处理核模块以及n号处理核模块与所述第二缓存模块连接,所述n号处理核模块与接收用户应用程序的操作指令,对所述第二缓存模块内存储的数据进行与所述操作指令对应的处理。
8.在其中一个实施例中,所述第一缓存模块内划分有m个存储空间。
9.在其中一个实施例中,所述第一缓存模块内基于缓存介质逻辑等大小划分有m个存储空间。
10.在其中一个实施例中,所述第一缓存模块内维护有完成队列和空闲队列,其中,所述m个存储空间中填充数据的存储空间构成完成队列,所述m个存储空间中未存储数据的存储空间构成空闲队列。
11.在其中一个实施例中,上述数据存储系统还包括用户数据接收控制模块,所述用户数据接收控制模块与所述1号处理核模块连接。
12.在其中一个实施例中,所述用户数据接收控制模块侦听到用户实时数据时,发送存储空间分配请求至所述1号处理核模块,所述1号处理核模块分配已连接的第一缓存模块中空闲存储空间,并反馈已分配存储空间对应身份标识至所述用户数据接收控制模块,所述用户数据接收控制模块根据接收到的所述身份标识,将用户实时数据填充与所述1号处理核模块连接的所述第一缓存模块。
13.在其中一个实施例中,所述用户数据接收控制模块还用于根据接收到的所述身份标识,将用户实时数据通过dma(direct memory access,直接存储器访问)方式填充至所述1号第一缓存模块。
14.在其中一个实施例中,所述n个处理核模块通过共享存储空间单一级联,所述n个处理核模块之间采用消息方式进行交互。
15.在其中一个实施例中,所述第一缓存模块包括ddr,所述第二缓存模块包括ssd(solid state drives,固态硬盘)或磁盘。
16.在其中一个实施例中,所述n个处理核模块包括支持部署实时系统和非实时系统的硬核,或包括支持部署实时系统和非实时系统的嵌入式软核。
17.上述数据存储系统包括n个处理核模块,m个第一缓存模块、以及第二缓存模块,n个处理核模块集成在fpga上,并且在前1~n

1号处理核模块中加载有实时系统,将接收到的用户数据高速缓存至多个第一缓存模块中,存储的数据通过处理核模块传递最终归集到第二缓存模块,在n号处理核模块中加载有非实时系统,可以响应对时间明感性不强的用户应用程序操作指令。整个数据存储系统,区分实时性数据和非实时性数据,针对实时性数据采取集成于fpga多级处理核模块来实现数据高速缓存,针对非实时性数据采取加载非实时系统的n号处理核模块来响应处理,能够有效避免数据存储过程中出现阻塞,可以实现数据的高速缓存。
附图说明
18.图1为一个实施例中本申请数据存储系统的结构示意图;
19.图2为n=3时,本申请数据存储系统的结构示意图;
20.图3为n=4时,本申请数据存储系统的结构示意图;
21.图4为第一缓存模块内划分m个存储空间示意图;
22.图5为另一个实施例中本申请数据存储系统的结构示意图;
23.图6为一个应用实例中采集、存储用户实时数据的交互示意图;
24.图7为处理核模块之间共享存储空间的示意图;
25.图8为一个应用实例中本申请数据存储系统的结构示意图。
具体实施方式
26.为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
27.如图1所示,本申请提供一种数据存储系统,包括n个处理核模块100,m个第一缓存模块200、以及第二缓存模块300,n=m+2,n为正整数,m为不小于1的正整数;
28.n个处理核模块100依次串联集成于同一个fpga上形成包含1~n号处理核模块的处理核链,1~n

1号处理核模块加载有实时系统,n号处理模块加载有非实时系统,1~n

1号处理核模块中相邻两个处理核模块与同一个第一缓存模块200连接,1号处理核模块接收用户实时数据,n

1号处理核模块以及n号处理核模块与第二缓存模块300连接,n号处理核模块与接收用户应用程序的操作指令,对第二缓存模块300内存储的数据进行与操作指令
对应的处理。
29.处理核模块100是用于对接收到的用户实时数据进行处理,将其存储至连接的第一缓存模块200或存储至第二缓存模块300。第一缓存模块200和第二缓存模块300用于缓存数据,处理核模块100用于控制数据逐级存储至对应的连接的第一缓存模块200,在处理核模块连接有2个第一缓存模块200时,处理核模块100用于将上一级第一缓存模块200中存储的数据读取出来放入到下一级第一缓存模块200,直至最终数据全部传递归集至第二缓存模块300。非必要的,第一缓存模块200的存储容量小于第二缓存模块300的存储容量。
30.n个处理核模块依次串联集成在同一个fpga上形成处理核链,该处理核链是由1~n号处理核模块组成的,这些处理核模块依次串联,其中1号处理核模块接收用户实时数据,n号处理核模块与接收用户应用程序的操作指令,在1号至n

1号处理核模块中相邻两个处理核模块与同一个第一缓存模块连接,n号处理和模块与第二缓存模块连接,1号处理核模块接收到的用户实时数据会在其控制下存储至与其(1号处理核模块)连接的1号第一缓存模块,由于第2号处理核模块与同样与1号第一缓存模块连接,因此,第2号处理核模块可以从中读取数据再存储至与第2号处理核模块连接的2号第二缓存模块,依次类推支持将数据归集存储至第二缓存模块,n号处理核模块与第二缓存模块连接,n号处理核模块接收用户应用程序的操作指令,其相应该指令对第二缓存模块内存储的数据进行对应的处理。另外,在上述1~n号处理核模块中1~n

1号处理核模块加载有实时系统,n号处理核模块加载有非实时系统,并且这些处理核模块都集成于同一个fpga上,整个数据存储系统基于实时系统对时间敏感程度高的用户实时级联缓存至第二缓存模块中,基于非实时系统对时间敏感程度不高(相较而言)的用户应用程序操作指令对已存储至第二缓存模块的数据进行处理,通过在fpga中实现微型的实时系统控制用户数据的存储,保证后端用户使用非实时系统在非实时性下无感的控制数据的高速存储,大大提高存储系统可提供的前端用户数据的速率指标,减小了用户数据高速存储的拥塞程度。
31.为详细说明本申请数据存储系统的技术方案下面将分别采用n=3以及n=4两个实施例详细说明。
32.如图2所示,n=3,本申请数据存储系统包括依次串联的1号处理核模块、2号处理核模块、3号处理核模块以及第一缓存模块以及第二缓存模块,1号处理核模块与第一缓存模块连接,2号处理核模块分别与第一缓存模块以及第二缓存模块连接,3号处理核模块与第二缓存模块连接。1号处理核模块采集用户实时数据,将采集到的用户实时数据存储至第一缓存模块,2号处理核模块将第一缓存模块内存储的用户实时数据读取,并将读取的数据存储至第二缓存模块,3号处理核模块接收用户应用程序的控制指令,响应该控制指令,对第二缓存模块内存储的数据进行对应处理。
33.如图3所示,n=4,本申请数据存储系统包括依次串联的1号处理核模块、2号处理核模块、3号处理核模块、4号处理核模块、1号第一缓存模块、2号第一缓存模块以及第二缓存模块,1号处理核模块与1号第一缓存模块连接,2号处理核模块分别与1号第一缓存模块以及2号第一缓存模块连接,3号处理核模块分别与2号第一缓存模块以及第二缓存模块连接,4号处理核模块与第二缓存模块连接。1号处理核模块采集用户实时数据,将采集到的用户实时数据存储至1号第一缓存模块,2号处理核模块将1号第一缓存模块内存储的用户实时数据读取,并将读取的数据存储至2号第一缓存模块,3号处理核模块将2号第一缓存模块
内存储的用户实时数据读取,并将读取的数据存储至第二缓存模块,4号处理核模块接收用户应用程序的控制指令,响应该控制指令,对第二缓存模块内存储的数据进行对应处理。
34.上述数据存储系统包括n个处理核模块,m个第一缓存模块、以及第二缓存模块,n个处理核模块集成在fpga上,并且在前1~n

1号处理核模块中加载有实时系统,将接收到的用户数据高速缓存至多个第一缓存模块中,存储的数据通过处理核模块传递最终归集到第二缓存模块,在n号处理核模块中加载有非实时系统,可以响应对时间明感性不强的用户应用程序操作指令。整个数据存储系统,区分实时性数据和非实时性数据,针对实时性数据采取集成于fpga多级处理核模块来实现数据高速缓存,针对非实时性数据采取加载非实时系统的n号处理核模块来响应处理,能够有效避免数据存储过程中出现阻塞,可以实现数据的高速缓存。
35.如图4所示,在其中一个实施例中,第一缓存模块内划分有m个存储空间。在本实施例中,第一缓存模块内划分有m个存储空间,这些存储空间可以逐一使用,当每次需要存储数据时,每次存储占用一定数量的存储空间来填充数据,当数据被下一级缓存模块(包括下一级第一缓存模块或第二缓存模块)读取时,释放已读取数据对应的存储空间。可以理解,在第一缓存模块内m个存储空间可以构成队列,其中填充有数据的存储空间构成完成队列,当前未存储数据的存储空间构成空闲队列,具体可以继续参见图4。
36.更进一步来说,这里m个存储空间具体可以等大小的存储空间,可以基于缓存介质逻辑等大小划分m个存储空间。在实际应用时,第一缓存模块只需维护好内部完成队列和空闲队列,其具体可以通过其缓存队列控制单元来维护,缓存队列控制单元在处理核模块的控制下维护好内部完成队列和空闲队列从而实现数据的存储与读取,最终实现数据在m个第一缓存模块和第二缓存模块中的传递。
37.如图5所示,在其中一个实施例中,上述数据存储系统还包括用户数据接收控制模块400,用户数据接收控制模块400与1号处理核模块连接。
38.用户数据接收控制模块400用于侦听用户实时数据。具体来说,如图6所示,当用户数据接收控制模块侦听到用户实时数据时,发送存储空间分配请求至1号处理核模块,1处理核模块分配已连接的第一缓存模块(1号第一缓存模块)中空闲存储空间,例如m1,反馈m1对应的身份标识“m1”至用户数据接收控制模块,用户数据接收控制模块根据接收到的身份标识“m1”将用户实时数据填充至与1号处理核模块联机的1号第一缓存模块中m1的存储空间。更进一步来说,在数据填充时,可以采用dma方式或者是其他方式填充,以实现数据高速且准确填充。dma传输将数据从一个地址空间复制到另外一个地址空间,当cpu初始化这个传输动作,传输动作本身是由dma控制器来实行和完成,典型的例子就是移动一个外部内存的区块到芯片内部更快的内存区,像是这样的操作并没有让处理器工作拖延,反而可以被重新排程去处理其他的工作,dma传输对于高效能嵌入式系统算法和网络是很重要的。
39.下面将结合图6进一步说明书下在上述2个实施例中,关于第一缓存模块以及用户数据接收控制模块等部件在具体应用中的数据处理过程和功能。
40.传统的设计数据缓存队列一般在对应的处理核(core)中进行实现,考虑到部分处理核搭载裸机系统或者其他简单的系统,为了减少处理核的处理逻辑,在本申请数据存储系统中将缓存队列的数据传输功能转移到fpga端进行实现,也就是将软件功能迁移到硬件前端进行实现(硬件加速)如图6中所示,core0首先将缓存介质在逻辑上等大小的分配成m
个存储空间,并分配独立的编号,用于区分是哪个存储空间。然后core在内部维护两个队列,分别是时完成队列和空闲队列,这m个存储空间一开始上电处于未被使用状态(未填充数据),都被core分配到空闲队列中,一旦某个存储空间被使用(被填充数据)则将其移入到完成队列中。后续的core1则可以从完成队列中取数据,一旦完成队列中的存储空间数被取走,则重新将该存储空间分配到空闲队列中,如此则形成存储空间的循环使用。
41.如图6所示,用户数据接收控制模块检测时前端用户数据,则首先向core0发出请求,申请一个存储空间,core0根据目前空闲队列的使用情况,返回响应,响应报文中携带请求是否成功,以及分配的存储空间编号。用户数据接收控制单元收到响应之后,就可以将对应的数据通过dma或者其他方式主动将用户数据填充到对应的存储单元中,并将完成情况通过报文方式反馈给core0。这样core0就不需要控制数据的传输过程,只需要负责维护两个队列,减少core0的处理压力,降低前端数据拥塞的风险。同时此示意图中单次只请求一个存储空间,对于此架构同样可以单次请求多个存储空间,进一步减少用户接收控制单元和core0之间的交互。
42.如图7所示,在其中一个实施例中,n个处理核模块通过共享存储空间单一级联,n个处理核模块之间采用消息方式进行交互。
43.在本实施例中,提出了一种级联核心的架构,如今多核心异构平台比较普遍,但是核心之间的互相通信随着处理核模块(core)的增加变得益发复杂。为保证各个core之间的一致性,需要进行诸多额外的操作。本方案中根据对用户数据的流向对系统功能进行独立的划分,通过单独的硬核或者软核实现功能的控制,由于功能之间的部分独立性,其core上搭载的系统也可根据实际需求进行单独配置,这样就可实现多异构系统的融合。同时由于数据流方向基本固定,所以对应功能的core可以采用共享存储空间这种单一级联的方式连接,简化core之间的通信复杂度。
44.在其中一个实施例中,第一缓存模块包括ddr,第二缓存模块包括ssd或磁盘。
45.第一缓存模块和第二缓存模块可以采用相同的存储介质,两者存储介质的存储容量上可以存在差异,具体来说,由于采集到的用户实时数据最终都归集到第二缓存模块中,因此,第二缓存模块的存储容量可以大于第一缓存模块的存储容量。在本实施例中,第一缓存模块采用ddr实现数据的高速缓存,第二缓存模块采用ssd或磁盘,实现容量数据的存储。非必要的,第二缓存模块也可以采用ddr,其可以采用更大容量的ddr。ssd简称固盘,其用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元组成。固态硬盘在接口的规范和定义、功能及使用方法上与传统硬盘的完全相同,在产品外形和尺寸上也完全与传统硬盘一致,但i/o性能相对于传统硬盘大大提升。被广泛应用于军事、车载、工控、视频监控、网络监控、网络终端、电力、医疗、航空、导航设备等领域。其芯片的工作温度范围很宽,商规产品(0~70℃)工规产品(

40~85℃)。随着互联网的飞速发展,人们对数据信息的存储需求也在不断提升,现在多家存储厂商推出了自己的便携式固态硬盘,更有支持type

c接口的移动固态硬盘和支持指纹识别的固态硬盘推出。
46.在其中一个实施例中,n个处理核模块包括支持部署实时系统和非实时系统的硬核,或包括支持部署实时系统和非实时系统的嵌入式软核。
47.处理核模块中包含的处理核不特指arm cortex硬核或者microblaze等软核,也可以是其他可以搭载实时或非实时等简易或复杂系统的单元或模块。
48.为更详细说明本申请数据存储系统的技术方案及其效果,下面将采用具体应用实例,并结合图8详细说明。
49.如图8所示,在本应用实例中n=3,处理核具体包括core0、core1以及core2,缓存介质包括小容量存储介质(第一缓存模块)和大容量存储介质(第二缓存模块),其中core0搭载裸机系统(实时系统),core1搭载freertos(实时系统),core2搭载linux等非实时系统,core之间使用共享存储空间进行message(消息)的交互,message的命令格式可以使用通用的消息格式也可以使用自定义的消息格式,如图中蓝色双向箭头所示。在方案中core0负责控制对用户数据的接收,并控制数据缓存到缓存队列(该缓存队列实现在小容量存储介质上,后文描述)中,同时将这些事务对应的处理结构通过message和core1进行交互,core1接收到数据存储到缓存中的事务message时,通过大容量存储介质的控制单元(大容量存储介质内部有控制单元)将数据存储到大容量存储介质中,完成用户数据的记录功能。然后将对应的事务结果通过message和core2进行交互。core2实现通用的非实时系统,可以方便的和用户应用程序对接,根据用户的应用程序对应的事务通过message一级一级的通知对应的core实现对应的操作。譬如上图中最后的将用户数据卸载到数据中心等。
50.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
51.以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1