System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及嵌入式领域,特别涉及一种基于linux系统的时钟组合处理方法、装置、设备及介质。
技术介绍
1、随着linux在嵌入式方面应用越来越广,基于linux的应用程序。例如dpdk(dataplane development kit,数据平面开发套件)、vpp(vector package process,用户态协议栈)等对时钟的精度要求也越来越高,有的cpu(central processing unit,中央处理器)硬件设计中只提供了32位rtc(real time clock,实时时钟),每个tick根据分频情况可以表示1hz、2hz或者4hz等,32位时钟只能表示单独有效的秒数,无法作为累计时钟使用。如果使用linux系统自身提供的jiffer时钟只能提供千分之一秒的精度,而使用系统调用获取时钟则会因为系统调用开销大,二者均难以作为高精度时钟源。
2、现有技术中,基于32位高精度硬件时钟无法表达长期时钟参考,且linux难以为应用程序提供微秒级、纳秒级时钟。如果使用内核的低精度时钟映射到应用程序,应用程序只能得到毫秒级低精度时钟;如果使用系统调用获取内核态较高精度的时钟,会因系统调用频繁而导致cpu消耗过高,影响业务处理性能;如果利用循环累计计数方法,无法得到精确的时钟。
技术实现思路
1、有鉴于此,本专利技术的目的在于提供一种基于linux系统的时钟组合处理方法、装置、设备及介质,可以在cpu只提供32位高精度时钟的情况下,通过对时钟的组合处理,为应用
2、第一方面、本申请公开了一种基于linux系统的时钟组合处理方法,应用于目标进程,包括:
3、对系统时钟进行映射,并判断是否存在执行中的业务,若是,则采集所述系统时钟的当前低精度时钟值;
4、获取32位高精度时钟,并确定目标分频因子,以通过所述32位高精度时钟以及所述目标分频因子确定当前高精度时钟值;
5、对所述当前低精度时钟值以及所述当前高精度时钟值进行组合,以得到当前64位高精度时钟值,并跳转至所述对系统时钟进行映射,并判断是否有业务执行,若是,则采集所述系统时钟的当前低精度时钟值的步骤,进行下一轮时钟组合,以得到实时64位高精度时钟。
6、可选的,所述对系统时钟进行映射,并判断是否存在执行中的业务,若是,则采集所述系统时钟的当前低精度时钟值,包括:
7、确定本地系统用于对时钟进行映射的调用接口,以通过调用接口调用目标映射函数对系统时钟进行映射;
8、判断是否存在循环处理的业务或事件,若是,则采集所述系统时钟的当前低精度时钟值。
9、可选的,所述获取32位高精度时钟,并确定目标分频因子,以通过所述32位高精度时钟以及所述目标分频因子确定当前高精度时钟值,包括:
10、获取本地系统中的32位高精度时钟,采集所述32位高精度时钟的32位高精度时钟值,并读取预设的目标分频因子或通过预设参考书手册确定所述目标分频因子;
11、将所述32位高精度时钟值除以所述目标分频因子,以确定与所述32位高精度时钟对应的当前高精度时钟值,并将首次得到的所述当前高精度时钟值确定为周期高精度时钟值。
12、可选的,所述对所述当前低精度时钟值以及所述当前高精度时钟值进行组合,以得到当前64位高精度时钟值,并跳转至所述对系统时钟进行映射,并判断是否有业务执行,若是,则采集所述系统时钟的当前低精度时钟值的步骤,进行下一轮时钟组合,以得到实时64位高精度时钟之前,还包括:
13、确定所述当前低精度时钟值以及所述当前高精度时钟值之间的相位差,以基于所述相位差对所述当前低精度时钟值以及所述当前高精度时钟值进行校准补偿。
14、可选的,所述对所述当前低精度时钟值以及所述当前高精度时钟值进行组合,以得到当前64位高精度时钟值,并跳转至所述对系统时钟进行映射,并判断是否有业务执行,若是,则采集所述系统时钟的当前低精度时钟值的步骤,进行下一轮时钟组合,以得到实时64位高精度时钟,包括:
15、通过预设频率合成方法或时间戳方法对所述当前低精度时钟值以及所述当前高精度时钟值进行组合,以得到当前64位高精度时钟值,并跳转至所述对系统时钟进行映射,并判断是否有业务执行,若是,则采集所述系统时钟的当前低精度时钟值的步骤,以进行下一轮时钟组合,持续合成所述当前64位高精度时钟值,以得到实时64位高精度时钟。
16、可选的,所述对所述当前低精度时钟值以及所述当前高精度时钟值进行组合,以得到当前64位高精度时钟值,并跳转至所述对系统时钟进行映射,并判断是否有业务执行,若是,则采集所述系统时钟的当前低精度时钟值的步骤,进行下一轮时钟组合,以得到实时64位高精度时钟之后,还包括:
17、判断本轮采集到的高精度时钟值是否小于上一轮采集到的高精度时钟值;
18、若是,则将所述周期高精度时钟值确定为本轮高精度时钟值,以通过所述本轮高精度时钟值以及采集到的所述当前低精度时钟值确定所述当前64位高精度时钟值。
19、可选的,所述当前低精度时钟值为毫秒级精度的时钟值,所述当前高精度时钟值为纳秒级精度的时钟值。
20、第二方面、本申请公开了一种基于linux系统的时钟组合处理装置,应用于目标进程,包括:
21、第一时钟信息采集模块,用于对系统时钟进行映射,并判断是否存在执行中的业务,若是,则采集所述系统时钟的当前低精度时钟值;
22、第二时钟信息采集模块,用于获取32位高精度时钟,并确定目标分频因子,以通过所述32位高精度时钟以及所述目标分频因子确定当前高精度时钟值;
23、时钟组合模块,用于对所述当前低精度时钟值以及所述当前高精度时钟值进行组合,以得到当前64位高精度时钟值,并跳转至所述对系统时钟进行映射,并判断是否有业务执行,若是,则采集所述系统时钟的当前低精度时钟值的步骤,进行下一轮时钟组合,以得到实时64位高精度时钟。
24、第三方面、本申请公开了一种电子设备,包括:
25、存储器,用于保存计算机程序;
26、处理器,用于执行所述计算机程序以实现如前述的基于linux系统的时钟组合处理方法。
27、第四方面、本申请公开了一种计算机可读存储介质,用于保存计算机程序,所述计算机程序被处理器执行时实现如前述的基于linux系统的时钟组合处理方法。
28、本申请中,首先对系统时钟进行映射,并判断是否存在执行中的业务,若是,则采集所述系统时钟的当前低精度时钟值;获取32位高精度时钟,并确定目标分频因子,以通过所述32位高精度时钟以及所述目标分频因子确定当前高精度时钟值;对所述当前低精度时钟值以及所述当前高精度时钟值进行组合,以得到当前64位高精度时钟值,并跳转至所述对系统时钟进行映射,并判断是否有业务执行,若是,则采集所述系统时钟的当前低精度时钟值的步骤,本文档来自技高网...
【技术保护点】
1.一种基于Linux系统的时钟组合处理方法,其特征在于,应用于目标进程,包括:
2.根据权利要求1所述的基于Linux系统的时钟组合处理方法,其特征在于,所述对系统时钟进行映射,并判断是否存在执行中的业务,若是,则采集所述系统时钟的当前低精度时钟值,包括:
3.根据权利要求1所述的基于Linux系统的时钟组合处理方法,其特征在于,所述获取32位高精度时钟,并确定目标分频因子,以通过所述32位高精度时钟以及所述目标分频因子确定当前高精度时钟值,包括:
4.根据权利要求1所述的基于Linux系统的时钟组合处理方法,其特征在于,所述对所述当前低精度时钟值以及所述当前高精度时钟值进行组合,以得到当前64位高精度时钟值,并跳转至所述对系统时钟进行映射,并判断是否有业务执行,若是,则采集所述系统时钟的当前低精度时钟值的步骤,进行下一轮时钟组合,以得到实时64位高精度时钟之前,还包括:
5.根据权利要求1所述的基于Linux系统的时钟组合处理方法,其特征在于,所述对所述当前低精度时钟值以及所述当前高精度时钟值进行组合,以得到当前64位高精度时钟
6.根据权利要求3所述的基于Linux系统的时钟组合处理方法,其特征在于,所述对所述当前低精度时钟值以及所述当前高精度时钟值进行组合,以得到当前64位高精度时钟值,并跳转至所述对系统时钟进行映射,并判断是否有业务执行,若是,则采集所述系统时钟的当前低精度时钟值的步骤,进行下一轮时钟组合,以得到实时64位高精度时钟之后,还包括:
7.根据权利要求1至6任一项所述的基于Linux系统的时钟组合处理方法,其特征在于,所述当前低精度时钟值为毫秒级精度的时钟值,所述当前高精度时钟值为纳秒级精度的时钟值。
8.一种基于Linux系统的时钟组合处理装置,其特征在于,应用于目标进程,包括:
9.一种电子设备,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的基于Linux系统的时钟组合处理方法。
...【技术特征摘要】
1.一种基于linux系统的时钟组合处理方法,其特征在于,应用于目标进程,包括:
2.根据权利要求1所述的基于linux系统的时钟组合处理方法,其特征在于,所述对系统时钟进行映射,并判断是否存在执行中的业务,若是,则采集所述系统时钟的当前低精度时钟值,包括:
3.根据权利要求1所述的基于linux系统的时钟组合处理方法,其特征在于,所述获取32位高精度时钟,并确定目标分频因子,以通过所述32位高精度时钟以及所述目标分频因子确定当前高精度时钟值,包括:
4.根据权利要求1所述的基于linux系统的时钟组合处理方法,其特征在于,所述对所述当前低精度时钟值以及所述当前高精度时钟值进行组合,以得到当前64位高精度时钟值,并跳转至所述对系统时钟进行映射,并判断是否有业务执行,若是,则采集所述系统时钟的当前低精度时钟值的步骤,进行下一轮时钟组合,以得到实时64位高精度时钟之前,还包括:
5.根据权利要求1所述的基于linux系统的时钟组合处理方法,其特征在于,所述对所述当前低精度时钟值以及所述当前高精度时钟值进行组合,以得到当前64位高精度时钟值,并...
【专利技术属性】
技术研发人员:金兴伟,李明明,
申请(专利权)人:中电科网络安全科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。