一种时间同步的方法及装置的制造方法

文档序号:9787364阅读:411来源:国知局
一种时间同步的方法及装置的制造方法
【技术领域】
[0001]本发明涉及嵌入式系统领域,尤其涉及一种时间同步的方法及装置。
【背景技术】
[0002]多核处理器是将两个或多个处理器封装在一起,集成有两个或多个完整的计算引擎(内核)。多核处理器由于多核并行的处理数据使得系统的性能大幅的提高,但是随着处理器个数的增加,多个核之间的信息共享越来越重要,一个核经常需要知道或参考其他核的数据信息,则相应的开发难度也越来越大,问题的定位也越来越难。
[0003]目前,每一个从CPU核都有属于自身的时钟,以自身启动时间为基准,根据自身的时钟来计算获得自身的当前时间,这样,就会导致在某一时刻每个从CPU核的当前时间会有差异,难以实现核间的时间同步,当出现问题时,需要定位某一时刻从CPU核的行为,就会导致定位不准确,使得对问题的解决非常不方便。例如,如果当前需要知道数据流整个处理流程中在每个核内的耗时情况,就需要统一的时间。
[0004]而目前,还没有通用的多核间时间同步的方法。

【发明内容】

[0005]本发明实施例提供一种时间同步的方法及装置,实现了多核间的时间同步,使得问题定位更加准确方便。
[0006]本发明实施例提供的具体技术方案如下:
[0007]—种时间同步的方法,包括:
[0008]主CPU核创建乒乓缓存,并将上述乒乓缓存的地址发送给从CPU核;
[0009]主CPU核在设定的定时器超时时,更新上述乒乓缓存中的参数;其中,上述参数至少包括乒乓缓存的标记位、乒乓缓存的索引值和当前的基准时间;
[0010]从CPU核获取主CHJ核发送的上述乒乓缓存的地址,以及在确定要获取当前时间时,获取上述乒乓缓存中保存的当前的基准时间;
[0011]从CPU核读取上述定时器的时间偏移值,以及基于上述时间偏移值和上述当前的基准时间,计算获得从CPU核的当前时间,且基于上述从CPU核的当前时间和上述当前的基准时间,完成与主CPU核的时间同步。
[0012]本发明实施例中,主CPU核创建乒乓缓存,并将上述乒乓缓存的地址发送给从CPU核;主CPU核在设定的定时器超时时,更新上述乒乓缓存中的参数;其中,上述参数至少包括乒乓缓存的标记位、乒乓缓存的索引值和当前的基准时间;从CPU核获取主CPU核发送的上述乒乓缓存的地址,以及在确定要获取当前时间时,获取上述乒乓缓存中保存的当前的基准时间;从CHJ核读取上述定时器的时间偏移值,以及基于上述时间偏移值和上述当前的基准时间,计算获得从CPU核的当前时间,且基于上述从CPU核的当前时间和上述当前的基准时间,完成与主CPU核的时间同步。这样,利用创建的乒乓缓存和定时器,实现每一个CPU核的时间同步,且获取的时间精度高;并且,不再使用锁功能,减少每个核的加锁、等待延迟和解锁等操作,不会影响系统的性能。
[0013]较佳的,上述设定的定时器为单次触发one_shot模式的定时器。
[0014]较佳的,主CPU核在设定的定时器超时时,更新上述乒乓缓存中的参数,具体包括:
[0015]确定乒乓缓存中当前使用的乒乓缓存块,以及将当前使用的乒乓缓存块的标记位设置为正在使用IN_USE,将当前未使用的乒乓缓存块的标记位设置为未使用UNJJSE;其中,上述乒乓缓存包括两个乒乓缓存块;
[0016]将获取的当前的基准时间写入当前使用的乒乓缓存块中,且设置每一个乒乓缓存块的索引值并重新启动定时器。
[0017]较佳的,在确定要获取当前时间时,获取上述乒乓缓存中的当前的基准时间,具体包括:
[0018]获取乒乓缓存中乒乓缓存块的索引值,并基于上述索引值,获取对应的乒乓缓存块的标记位;
[0019]判断上述标记位是否为IN_USE,以及在确定标记位为IN_USE时,获取上述对应的乒乓缓存块中保存的当前的基准时间。
[0020]较佳的,基于上述时间偏移值和上述当前的基准时间,计算获得从CPU核的当前时间,具体包括:
[0021 ]判断上述时间偏移值是否为O;
[0022]若为O,则计算上述当前的基准时间和预设的定时器的定时时间之和,作为从CPU核的当前时间;
[0023]若不为O,则计算上述时间偏移值和上述当前的基准时间之和,作为从CPU核的当前时间。
[0024]一种时间同步装置,包括一个主CPU核和至少一个从CPU核,具体包括:
[0025]主CPU核,用于创建乒乓缓存,并将上述乒乓缓存的地址发送给从CPU核,以及在设定的定时器超时时,更新上述乒乓缓存中的参数;其中,上述参数至少包括乒乓缓存的标记位、乒乓缓存的索引值和当前的基准时间;
[0026]从CPU核,用于获取主CPU核发送的上述乒乓缓存的地址,在确定要获取当前时间时,获取上述乒乓缓存中保存的当前的基准时间,以及读取定时器的时间偏移值,基于上述时间偏移值和上述当前的基准时间,计算获得从CPU核的当前时间,且基于上述从CPU核的当前时间和上述当前的基准时间,完成与主CPU核的时间同步。
[0027]本发明实施例中,主CPU核创建乒乓缓存,并将上述乒乓缓存的地址发送给从CPU核;主CPU核在设定的定时器超时时,更新上述乒乓缓存中的参数;其中,上述参数至少包括乒乓缓存的标记位、乒乓缓存的索引值和当前的基准时间;从CPU核获取主CPU核发送的上述乒乓缓存的地址,以及在确定要获取当前时间时,获取上述乒乓缓存中保存的当前的基准时间;从CHJ核读取上述定时器的时间偏移值,以及基于上述时间偏移值和上述当前的基准时间,计算获得从CPU核的当前时间,且基于上述从CPU核的当前时间和上述当前的基准时间,完成与主CPU核的时间同步。这样,利用创建的乒乓缓存和定时器,实现每一个CPU核的时间同步,且获取的时间精度高;并且,不再使用锁功能,不会影响系统的性能。
[0028]较佳的,上述设定的定时器为单次触发one_shot模式的定时器。
[0029]较佳的,在设定的定时器超时时,更新上述乒乓缓存中的参数时,主CPU核具体用于:
[0030]确定乒乓缓存中当前使用的乒乓缓存块,以及将当前使用的乒乓缓存块的标记位设置为正在使用IN_USE,将当前未使用的乒乓缓存块的标记位设置为未使用UNJJSE;其中,上述乒乓缓存包括两个乒乓缓存块;
[0031]将获取的当前的基准时间写入当前使用的乒乓缓存块中,且设置每一个乒乓缓存块的索引值并重新启动定时器。
[0032]较佳的,在确定要获取当前时间时,获取上述乒乓缓存中的当前的基准时间,从CHJ核具体用于:
[0033]获取乒乓缓存中乒乓缓存块的索引值,并基于上述索引值,获取对应的乒乓缓存块的标记位;
[0034]判断上述标记位是否为IN_USE,以及在确定标记位为IN_USE时,获取上述对应的乒乓缓存块中保存的当前的基准时间。
[0035]较佳的,基于上述时间偏移值和上述当前的基准时间,计算获得从CPU核的当前时间时,从CPU核具体用于:
[0036]判断上述时间偏移值是否为O;
[0037]若为O,则计算上述当前的基准时间和预设的定时器的定时时间之和,作为从CPU核的当前时间;
[0038]若不为O,则计算上述时间偏移值和上述当前的基准时间之和,作为从CPU核的当前时间。
【附图说明】
[0039]图1为本发明实施例中时间同步方法概述流程图;
[0040]图2为本发明实施例中时间同步方法详细流程图;
[0041]图3为本发明实施例中时间同步装置结构示意图。
【具体实施方式】
[0042]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,并不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0043]为了实现了多核间的时间同步,使得问题定位更加准确方便,本发明实施例中,主CPU核创建乒乓缓存,并将乒乓缓存地址发送给从CPU核,然后主CPU核就可以将获得的当前的基准时间写入到乒乓缓存中,当从CPU核需要获取当前时间时,从乒乓缓存中获取当前的基准时间,且读取设定的定时器的时间偏移值,这样,从CPU核根据定时器的时间偏移值和获取的当前的基准时间,计算获得从CHJ核的当前时间,这样就实现了主CPU核和从CPU核的时间同步。
[0044]下面通过具体实施例对本发明方案进行详细描述,当然,本发明并不限于以下实施例。
[0045]本发明实施例,针对于多核系统,在多核系统中包括有一个主CPU核和多个从CPU核,当需要知道在某一时刻多个CHJ核的行为时,那么就需要主CPU核在共享内存中提供一个基准时间,从CPU核都根据这个基准时间,来计算自身当前的时间,这样,就可以实现所有CPU核的时间同步。但是,目前是利用核间锁技术来使用共享内存的,当一个从C
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1