公开/公告号CN112685198A
专利类型发明专利
公开/公告日2021-04-20
原文格式PDF
申请/专利权人 湖南博匠信息科技有限公司;
申请/专利号CN202011591580.8
申请日2020-12-29
分类号G06F9/54(20060101);
代理机构43254 长沙智勤知识产权代理事务所(普通合伙);
代理人彭凤琴
地址 410000 湖南省长沙市高新开发区麓景路2号孵化、培训、后勤楼西栋(创业楼)二层Y201房
入库时间 2023-06-19 10:41:48
技术领域
本发明涉及数据存储技术领域,尤其涉及一种提高系统实时性的方法及嵌入式数据实时采集系统。
背景技术
随着外部数据量的不断增大,对数据采集的速度与实时性的要求也越来越高。传统的嵌入式系统设计普遍搭载Linux操作系统,Linux操作系统有着跨平台的硬件支持、丰富的软件支持、多用户任务、可靠安全和良好的稳定性等优点,并且开放所有系统源代码,非常易于裁剪。虽然Linux操作系统功能强大,且易于二次开发,但是设计Linux的进程调度算法主要考虑的是公平性而非实时性。
目前,对存储系统实时性的改造主要有两大类方法,一种是直接修改Linux内核源代码,另一种是双内核法,但这两类方法实现起来都很耗时,而且效果也很难达到性能需求,从而,现有技术中的数据采集系统存在采集效率不足以导致数据丢失的问题。
发明内容
本发明的主要目的在于提供一种提高系统实时性的方法,旨在解决数据采集系统因采集效率不足导致数据丢失的问题。
为实现上述目的,本发明提供的提高系统实时性的方法,应用于嵌入式数据实时采集系统,所述嵌入式数据实时采集系统包括主体模块和分别独立于主体模块之外的缓冲模块和实时硬核,所述实时硬核、所述缓冲模块和所述主体模块依次信号连接;所述提高系统实时性的方法包括以下步骤:
通过所述实时硬核采集数据并存入缓冲模块;
将所述缓冲模块中存储的数据发送至所述主体模块进行处理;
将所述主体模块处理后的数据发送至存储介质。
优选地,所述将所述缓冲模块中存储的数据发送至所述主体模块进行处理的步骤,包括:
接收所述缓冲模块发送的所述数据;
获取预设的排列方式;
根据所述预设的排列方式,对排列无序的所述数据进行排列处理,以将所述数据排列成存储文件。
优选地,所述提高系统实时性的方法,还包括:
判断所述缓冲模块是否存满;
若是,则执行所述将所述缓冲模块中存储的数据发送至所述主体模块进行处理的步骤;
若否,则执行所述通过所述实时硬核采集数据并存入缓冲模块的步骤。
优选地,所述实时硬核的数量为多个;所述提高系统实时性的方法还包括以下步骤:
设定速率阈值;
通过所述主体模块采集数据并侦测外部数据传输速率;
比较所述速率阈值与所述外部数据传输速率,并根据比较结果启用全部或部分所述实时硬核;
根据所述比较结果关闭或部分关闭所述主体模块的数据采集功能。
优选地,所述设定速率阈值的步骤,包括:
获取主体模块总算力值;
获取所述主体模块中的各业务子模块的算力需求预计量,并确定保险系数;
求所述主体模块总算力值与所述各业务子模块的算力需求预计量之差,并乘以保险系数,得到所述速率阈值。
优选地,所述比较所述速率阈值与所述外部数据传输速率,并根据比较结果启用全部或部分所述实时硬核的步骤,包括:
分别获取以T
分别比较S
当S
获取以T
分别比较S
当S
其中,T
优选地,所述将所述缓冲模块中存储的数据发送至所述主体模块进行处理的步骤,包括:
当所述缓冲模块中的数据量达到容量阈值中的容量值时,通过所述缓冲模块打包数据;
通过所述主体模块根据主体模块的算力空置值换算得到数据处理速率;
通过所述主体模块根据所述数据处理速率确定内部数据传输速率;
控制所述缓冲模块按所述内部数据传输速率将数据传输至所述主体模块并删除所述缓冲模块中已经传输至所述主体模块中的数据。
此外,为实现上述目的,本发明还提供一种嵌入式数据实时采集系统,所述嵌入式数据实时采集系统应用以上任一项方法的步骤;所述嵌入式数据实时采集系统包括主体模块和分别独立于主体模块之外的缓冲模块和实时硬核,所述实时硬核、所述缓冲模块和所述主体模块依次信号连接。
优选地,所述主体模块包括记录单元和文件系统单元;
所述记录单元用于接收所述缓冲模块发送的所述数据;
所述文件系统单元用于获取预设的排列方式,根据所述预设的排列方式,对排列无序的所述数据进行排列处理,以将所述数据排列成存储文件。
优选地,所述主体模块还包括回放单元;
所述回放单元用于从所述存储介质中提取所述存储文件,并将提取出的所述存储文件发送至所述文件系统单元进行数据处理,将处理完后的数据依次发送至所述缓冲模块和所述实时硬核,以进行数据的外发。
在本发明的技术方案中,通过设置一个或多个独立于所述主体模块的所述实时硬核,所述实时硬核与用于外部数据传输的传输通道连接,所述实时硬核能够部分或全部取代所述主体模块的采集数据的功能,减轻所述主体模块用于数据采集的压力,有利于所述主体模块将运算能力更多地投入至其他业务子模块,从而提升所述主体模块的运行效率。同时,在所述实时硬核与所述主体模块之间还设置有用于临时存储数据的所述缓冲模块,所述实时硬核将采集到的数据暂存于所述缓冲模块中,所述缓冲模块实时侦测其中的数据量,当所述数据量达到预设条件时,所述缓冲模块将打包数据并发送至所述主体模块进行处理。所述主体模块在接收到数据后将其处理成文件形式,并发送至所述存储介质中进行长期保存。由于所述实时硬核分担了所述主体模块的数据采集工作,所述实时硬核能够将更多运算能力投入于其他业务,因而能够有效提升系统的整体运算速度。从另一方面看,由于数据采集工作所需的运算能力被所述实时硬核分担,因而数据采集速率将显著提升,从而避免因主体模块无法及时采集数据造成丢包。
附图说明
图1为本发明提高系统实时性的方法的流程示意图;
图2为本发明嵌入式数据实时采集系统的模块结构示意图。
本发明目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参阅图1,一种提高系统实时性的方法,应用于嵌入式数据实时采集系统,所述嵌入式数据实时采集系统包括主体模块和分别独立于主体模块之外的缓冲模块和实时硬核,所述实时硬核、所述缓冲模块和所述主体模块依次信号连接;所述提高系统实时性的方法包括以下步骤:
步骤S10,通过所述实时硬核采集数据并存入缓冲模块;
步骤S20,将所述缓冲模块中存储的数据发送至所述主体模块进行处理;
步骤S30,将所述主体模块处理后的数据发送至存储介质。
在本发明的技术方案中,设置一个或多个独立于所述主体模块的所述实时硬核,以将数据采集功能从所述主体模块部分或者全部剥离出来。所述实时硬核与用于外部数据传输的传输通道连接,所述实时硬核能够部分或全部取代所述主体模块的采集数据的功能,减轻所述主体模块用于数据采集的压力,有利于所述主体模块将运算能力更多地投入至其他业务子模块,从而提升所述主体模块的运行效率。同时,在所述实时硬核与所述主体模块之间还设置有用于临时存储数据的所述缓冲模块,所述实时硬核将采集到的数据暂存于所述缓冲模块中,所述缓冲模块实时侦测其中的数据量,当所述数据量达到预设条件时,所述缓冲模块将打包数据并发送至所述主体模块进行处理。所述主体模块在接收到数据后将其处理成文件形式,并发送至所述存储介质中进行长期保存。由于所述实时硬核分担了所述主体模块的数据采集工作,所述实时硬核能够将更多运算能力投入于其他业务,因而能够有效提升系统的整体运算速度。从另一方面看,由于数据采集工作所需的运算能力被所述实时硬核分担,因而数据采集速率将显著提升,从而避免因主体模块无法及时采集数据造成丢包。
优选地,所述通过所述实时硬核采集的数据为嵌入式高速数据。
进一步地,每个所述实时硬核与至少一条所述外部数据通道信号连接,且全部所述外部数据通道均与所述主体模块信号连接。
外部数据能够通过所述传输通道传入所述实时硬核,并经所述缓冲模块进入所述主体模块;当所述实时硬核或所述缓冲模块发生故障时,外部数据还能通过所述传输通道直接进入所述主体模块。
具体地,所述缓冲模块包括用于侦测所述缓冲模块能够用于存储数据的剩余容量的监控报警单元;所述监控报警单元与所述主体模块信号连接。
当所述缓冲模块能够用于存储数据的剩余容量低于预警值时,所述监控报警单元向所述主体模块发送告警信号;所述主体模块根据所述告警信号临时开放部分数据采集功能,使部分数据绕过所述实时硬核和所述缓冲模块直接通过所述传输通道进入所述主体模块,以减轻所述缓冲模块的存储压力。
具体地,所述预警值为所述缓冲模块总容量的3%-5%。
基于本发明的一种提高系统实时性的方法的第一实施例,本发明的一种提高系统实时性的方法的第二实施例中,所述将所述缓冲模块中存储的数据发送至所述主体模块进行处理的步骤,包括:
步骤S21,接收所述缓冲模块发送的所述数据;
步骤S22,获取预设的排列方式;
步骤S23,根据所述预设的排列方式,对排列无序的所述数据进行排列处理,以将所述数据排列成存储文件。
基于本发明的一种提高系统实时性的方法的第一实施例,本发明的一种提高系统实时性的方法的第三实施例中,所述提高系统实时性的方法,还包括:
步骤S40,判断所述缓冲模块是否存满;
步骤S50,若是,则执行步骤S20;
步骤S60,若否,则执行步骤S10。
进一步地,所述提高系统实时性的方法,还包括:
步骤S70,侦测是否达到预设的结束条件;
步骤S80,若是,则执行步骤S20,结束当前的数据采集进程。
具体地,所述侦测是否达到预设的结束条件的步骤,包括:
步骤S71,侦测是否接收到用户输入的结束采集指令;
或
步骤S72,侦测当前的采集数据量是否达到预设长度。
基于本发明的一种提高系统实时性的方法的第一实施例,本发明的一种提高系统实时性的方法的第四实施例中,所述实时硬核的数量为多个;所述提高系统实时性的方法还包括以下步骤:
步骤S90,设定速率阈值;
步骤S100,通过所述主体模块采集数据并侦测外部数据传输速率;
步骤S110,比较所述速率阈值与所述外部数据传输速率,并根据比较结果启用全部或部分所述实时硬核;
步骤S120,根据所述比较结果关闭或部分关闭所述主体模块的数据采集功能。
所述速率阈值用于控制外部数据的传输路径,当数据传输速率没有超出所述主体模块的算力范围且不需挤占其他业务子模块的算力时,数据由所述主体模块直接采集,省略了由所述实时硬核采集、所述缓冲模块暂存,然后传输至所述主体模块的中间步骤,提升了数据采集的效率,也减少了系统运行的功率。当数据传输速率过高,将影响其他业务子模块的算力甚至会因所述主体模块无法及时采集造成丢包时,所述主体模块将根据数据的传输通道启动与对应所述实时硬核用以采集数据,释放所述主体模块的全部或部分算力用于完成其他业务。对于一些需要即时处理的数据,所述主体模块能够保留部分数据采集功能,以提高数据处理效率。
优选地,所述主体模块和所述实时硬核上均设置有温度传感器,所述主体模块能够根据所述温度传感器所获取的温度信息开启或关闭数据采集功能。所述温度信息能够在一定程度上反映所述主体模块和所述实时硬核的健康状况,当所述主体模块的温度过高时,表征所述主体模块负荷过重,此时所述主体模块将关闭数据采集功能以减轻工作负荷,转由所述实时硬核承担数据采集工作;当所述实时硬核的温度过高时,表征所述实时硬核负荷过重,此时所述主体模块将开启数据采集功能以减轻所述实时硬核的工作负荷,转由所述主体模块承担数据采集工作。所述主体模块持续获取所述温度传感器测得的温度信息并与正常温度值进行比对,当所述主体模块或所述实时硬核的温度恢复正常,数据采集任务的分配将恢复正常。
基于本发明的一种提高系统实时性的方法的第四实施例,本发明的一种提高系统实时性的方法的第五实施例中,所述设定速率阈值的步骤,包括:
步骤S91,获取主体模块总算力值;
步骤S92,获取所述主体模块中的各业务子模块的算力需求预计量,并确定保险系数;
步骤S93,求所述主体模块总算力值与所述各业务子模块的算力需求预计量之差,并乘以保险系数,得到所述速率阈值。
具体地,所述保险系数值为0.85-0.95。
由于外部数据在传输过程中的速率并非保持绝对稳定,为了避免数据传输峰值超出所述主体模块的算力造成数据传输异常,在设定所述速率阈值时加入保险系数。
进一步地,所述确定保险系数的步骤,包括:
步骤S92a,获取前一次数据采集的保险系数值W,并读取前一次的数据采集记录;
步骤S92b,若所述前一次的数据采集记录正常,且所述前一次数据采集的保险系数值W小于0.95,则本次数据采集的保险系数值为W+0.01;
步骤S92c,若所述前一次的数据采集记录正常,且所述前一次数据采集的保险系数值W等于0.95,则本次数据采集的保险系数值为0.95;
步骤S92d,若所述前一次的数据采集记录异常,且所述前一次数据采集的保险系数值W大于0.85,则本次数据采集的保险系数值为W-0.01;
步骤S92e,若所述前一次的数据采集记录异常,且所述前一次数据采集的保险系数值W等于0.85,则本次数据采集的保险系数值为0.85。
在确定所述保险系数的过程中,将参照前一次数据采集过程,如果前一次数据采集过程一切正常,说明前一次数据采集的保险系数符合安全要求,为了提升数据采集效率,在本次数据采集时将在前一次数据采集时的保险系数基础上进行适量提升;如果前一次数据采集过程出现异常,说明前一次数据采集的保险系数不符合安全要求,为了降低异常率且保证数据采集速率相对较高,在本次数据采集时将在前一次数据采集时的保险系数基础上进行适量降低。
基于本发明的一种提高系统实时性的方法的第四实施例,本发明的一种提高系统实时性的方法的第六实施例中,所述比较所述速率阈值与所述外部数据传输速率,并根据比较结果启用全部或部分所述实时硬核的步骤,包括:
步骤S111,分别获取以T
步骤S112,分别比较S
步骤S113,当S
步骤S114,获取以T
步骤S115,分别比较S
步骤S116,当S
其中,T
由于数据传输速率和所述速率阈值并非保持稳定不变,通过在不同时刻下反复比对数据传输速率和所述速率阈值,可以获知当前传输速率是否与所述主体模块算力相匹配,当出现可能因超出算力导致数据传输异常时,分批启用所述实时硬核。这种渐进式的启用所述实时硬核的方式相对于一次性启用全部所述实时硬核,更能充分利用所述实时硬核的算力和所述主体模块的算力。
基于本发明的一种提高系统实时性的方法的第一至第六实施例,本发明的一种提高系统实时性的方法的第七实施例中,所述将所述缓冲模块中存储的数据发送至所述主体模块进行处理的步骤,包括:
步骤S24,当所述缓冲模块中的数据量达到容量阈值中的容量值时,通过所述缓冲模块打包数据;
步骤S25,通过所述主体模块根据主体模块的算力空置值换算得到数据处理速率;
步骤S26,通过所述主体模块根据所述数据处理速率确定内部数据传输速率;
步骤S27,控制所述缓冲模块按所述内部数据传输速率将数据传输至所述主体模块并删除所述缓冲模块中已经传输至所述主体模块中的数据。
在将数据从所述缓冲模块转移至所述主体模块时,为了避免因传输速率过快造成所述主体模块无法及时处理数据造成丢包或挤占其他业务子模块的算力,必须根据所述主体模块算力空置值确定传输速率,以使从所述缓冲模块转移至所述主体模块的数据量恰好符合所述主体模块闲置的算力水平,既不会因传输速率过慢造成算力浪费,也不会因传输速率过快造成拥堵。
具体地,所述容量值不超过所述缓冲模块总容量的85%。由于所述缓冲模块在向所述主体模块传输数据的同时还在源源不断地接收由传输通道传入的外部数据。如果外部传入数据的传输速率高于所述缓冲模块向所述主体模块传输数据的速率,则所述缓冲模块的数据量将进一步增加。如果所述容量值过高,意味着在所述缓冲模块向所述主体模块传输数据的过程中能够容纳外部数据的空间过小,可能因为所述缓冲模块缺乏存储空间无法完成存储导致数据丢失,因此所述容量值不超过所述缓冲模块总容量的85%,保证至少有15%的空间能够用于在所述缓冲模块向所述主体模块传输数据的过程中存储外部输入的数据。
所述算力空置值是指所述主体模块在处理全部业务子模块的当前任务后剩余的运算能力,即未被充分调用的算力,是一个根据所述主体模块的实时状态变化的值,表征所述主体模块在不对其他业务造成影响的前提下能够用于进行数据处理的最大算力。当所述算力空置值达到预设标准,说明所述主体模块此时正在处理的其他业务量较小,有足够能力进行数据的处理。此时将所述缓冲模块中的数据打包发送至所述主体模块,能够有效、充分地利用所述主体模块闲置的算力,既能避免算力浪费,同时还能减少数据处理过程中对其他业务的影响。
为实现以上目的,本发明还提供一种嵌入式数据实时采集系统,应用以上任一项所述方法的步骤;所述嵌入式数据实时采集系统包括主体模块和分别独立于主体模块之外的缓冲模块和实时硬核,所述实时硬核、所述缓冲模块和所述主体模块依次信号连接。
进一步地,所述主体模块包括记录单元和文件系统单元;
所述记录单元用于接收所述缓冲模块发送的所述数据;
所述文件系统单元用于获取预设的排列方式,根据所述预设的排列方式,对排列无序的所述数据进行排列处理,以将所述数据排列成存储文件。
具体地,所述主体模块还包括回放单元;
所述回放单元用于从所述存储介质中提取所述存储文件,并将提取出的所述存储文件发送至所述文件系统单元进行数据处理,将处理完后的数据依次发送至所述缓冲模块和所述实时硬核,以进行数据的外发。
优选地,所述缓冲模块为能被所述实时硬核和所述主体模块同时访问的共享内存,且所述实时硬核与所述缓冲模块之间、所述缓冲模块与所述主体模块之间均为多核通信。
具体地,所述实时硬核与缓冲模块之间、所述缓冲模块与所述主体模块之间均设置有检测模块。
所述检测模块用以分别获取所述实时硬核传入所述缓冲模块的数据传输速率以及所述缓冲模块传入所述主体模块的数据传输速率,并通过分析所述数据传输速率判定是否发生数据传输异常。
进一步地,所述主体模块包括与所述检测模块信号连接的告警单元。所述告警单元能够根据所述检测模块的判定结果向外发出告警信号。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
机译: 一种计算机实现的方法,一种计算机程序产品以及一种嵌入式系统,用于通过嵌入式系统上的客户端来提高数据检索的速度
机译: 一种计算机实现的方法,一种计算机程序产品以及一种嵌入式系统,用于通过嵌入式系统上的客户端来提高数据检索的速度
机译: 一种通过在线系统提高数据速率以确保数据传输模式下实时性的方法