CN100371851C - 时间同步方法及装置 - Google Patents

时间同步方法及装置 Download PDF

Info

Publication number
CN100371851C
CN100371851C CNB2006101453790A CN200610145379A CN100371851C CN 100371851 C CN100371851 C CN 100371851C CN B2006101453790 A CNB2006101453790 A CN B2006101453790A CN 200610145379 A CN200610145379 A CN 200610145379A CN 100371851 C CN100371851 C CN 100371851C
Authority
CN
China
Prior art keywords
system time
time
memory module
master cpu
clock source
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CNB2006101453790A
Other languages
English (en)
Other versions
CN1949129A (zh
Inventor
郭昕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
New H3C Information Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CNB2006101453790A priority Critical patent/CN100371851C/zh
Publication of CN1949129A publication Critical patent/CN1949129A/zh
Application granted granted Critical
Publication of CN100371851C publication Critical patent/CN100371851C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Electric Clocks (AREA)

Abstract

本发明涉及一种时间同步方法,其包括:主控CPU核根据内部定时器发出的定时器中断对***时间存储模块中存储的***时间进行累加,以获得当前的***时间;主控CPU核将当前的***时间写入***时间存储模块;非主控CPU核收到获取***时间的请求时,从***时间存储模块读取当前的***时间。本发明还涉及一种时间同步装置,该时间同步装置用于多核CPU***,包括主控CPU核、一个或数个非主控CPU核和***时间存储模块。本发明既可使非主控CPU核能够共享当前的***时间,又不需定时器中断来同步***时间,从而在保证***时间的同步的同时,只需要主控CPU响应定时器中断,减少非主控CPU的中断开销,以此提高了***性能。

Description

时间同步方法及装置
技术领域
本发明涉及通信设备中***时间同步技术,尤其是一种通信设备中时间同步方法,以及时间同步装置。
背景技术
对于通信网中的各种通信设备或者计算机设备来说,设备内部的***时间作为重要参数需要与协调世界时(Universal Time Coordinated,简称UTC)保持尽可能的同步,通常时间偏差被限定在足够小的范围内(如100ms)。为了保证时间同步能够顺利完成,时间同步网络中的各个节点时钟都需要利用专用的网络时间同步技术与UTC同步。在互联网络中,普遍采用网络时间协议(Network Time Protocol,简称NTP)作为互联网络中各种通信设备的***时间的时间同步协议,时间同步的准确程度和NTP服务器与用户间的距离有关。
对于通信设备内部的各个部件来说,也需要保证时间的同步性,在采用多核CPU的通信设备中,多核CPU中的各个CPU可以运行独立的任务,在报文处理上可采用流水线方式或者并行处理方式。如图1所示,为多核CPU中采用流水线方式的报文处理示意图,在流水线方式下,每个CPU完成报文处理的一部分。如图2所示,为多核CPU中采用并行处理方式的报文处理示意图,在并行处理方式下,每个CPU可以独立完成报文的全部处理。无论采用流水线的方式还是并行处理的方式,多核CPU之间时间同步在某些情况下是正确处理业务的前提。
现有技术中关于多CPU之间时间的同步采用以下方式:利用一个外部的定时器对各个CPU核按照周期同时发出定时器中断,所谓外部的定时器为一种可按照一定的周期发出定时器中断的设备,而各个CPU核在上电时会获取相同的***时间初值,再根据接收到的定时器中断进行累加,以获得当前的***时间,从而保证了各个CPU之间时间的同步。这种同步方式可保证各个CPU核之间的时间同步,但是这种定时器中断需要各个CPU核都进行响应,从而使得各个CPU的开销变大,导致***的整个处理性能受到较大影响。
发明内容
本发明的目的是针对现有的多核CPU中时间同步时定时器中断对***性能的影响等缺陷,提出一种时间同步方法,能够保证多核CPU内的***时间一致,且不需要每个CPU核都处理定时器中断,以降低定时器中断对***的处理性能的影响。
本发明的另一目的是提出一种时间同步装置,能够保证多核CPU内的***时间一致,且不需要每个CPU核都处理定时器中断,以降低定时器中断对***的处理性能的影响。
为实现上述目的,本发明提供了一种时间同步方法,包括以下步骤:
步骤1,主控CPU核根据内部定时器发出的定时器中断对***时间存储模块中存储的***时间进行累加,以获得当前的***时间;
步骤2,主控CPU核将所述当前的***时间写入***时间存储模块;
步骤3,非主控CPU核收到获取***时间的请求时,从所述***时间存储模块读取所述当前的***时间。
在上述技术方案中,所述步骤1之前,主控CPU核在上电初始化时从时钟源读取时钟源内保存的***时间初值。当采用硬件实时时钟作为时钟源时,由于硬件实时时钟内的编码方式与操作***有所区别,例如硬件实时时钟采用BCD编码,而操作***采用BIN(二进制)编码,因此需要进行格式转换。
进一步地,步骤3之后,主控CPU核在掉电前将所述当前的***时间写入时钟源,并由所述时钟源对所述当前的***时间进行维护。
可选地,步骤2具体为:将所述当前的***时间封装为存储在***时间存储模块的软件设备,所述主控CPU核对该软件设备执行写入操作。采用对软件设备读写的方式可以解决多核间不能互访各自的内存区域的问题。
进一步地,步骤3具体为:所述非主控CPU核收到获取***时间的请求时,对该软件设备执行读取操作。
为实现上述目的,本发明提供了一种时间同步装置,该时间同步装置用于多核CPU***,其包括主控CPU核、一个或数个非主控CPU核和用于存储***时间的***时间存储模块,该主控CPU核中包括:
内部定时器,用于按照周期发出定时器中断;
累加模块,与所述内部定时器和***时间存储模块相连,用于接收所述内部定时器发出的定时器中断,对***时间存储模块存储的***时间进行累加,获得当前的***时间,并写入***时间存储模块;
该一个或数个非主控CPU核包括:
接收请求模块,用于接收获取***时间的请求;
内存读取模块,与所述***时间存储模块和接收请求模块相连,用于根据接收请求模块发送的获取***时间的请求从所述***时间存储模块读取所述当前的***时间。
在上述技术方案中,还可以包括时钟源,与所述累加模块相连,用于为所述主控CPU核提供***时间初值。所述时钟源可为硬件实时时钟。
基于上述的技术方案,本发明具有以下优点:通过主控CPU核集中管理***时间计算的硬件资源,并将***时间写入***时间存储模块,由其他非主控CPU核在需要时直接读取,这样既可以使非主控CPU核能够共享当前的***时间,又不需要利用定时器中断来同步***时间,从而在保证了***时间的同步的同时,只需要主控CPU响应定时器中断,以此提高了***性能。在实现上将当前的***时间作为***时间变量写入***时间存储模块,并封装为一个软件设备,在软件设计和应用上可以利用统一的接口进行操作。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为多核CPU中采用流水线方式的报文处理示意图。
图2为多核CPU中采用并行处理方式的报文处理示意图。
图3为本发明时间同步装置的一实施例的结构示意图。
图4为本发明时间同步装置的另一实施例的结构示意图。
图5为本发明时间同步方法的一实施例的流程示意图。
图6为本发明时间同步方法的另一实施例的流程示意图。
图7为本发明时间同步方法的又一实施例的流程示意图。
图8为采用软件时钟方式的***时间同步***的结构示意图。
具体实施方式
鉴于现有多CPU核通信设备中,各个CPU核在维护和同步***时间时都需要使用内部定时器中断,从而影响***性能,本发明采用一种集中式的时钟管理,不需要每个CPU核都去维护***时间,从而既使CPU核能够共享当前的***时间,又提高了***性能。
如图3所示,为本发明时间同步装置的一实施例的结构示意图,在本实施例中,***时间同步***包括主控CPU核1、***时间存储模块2和其他的CPU核3。其中主控CPU核1能够对***时间作集中式管理,而其他的C PU核3为非主控CPU核,不需对***时间进行维护,只有在需要使用时才进行获取。在这个实施例中,适用于多CPU核通信设备为不常掉电的单板的情况,在初始上电时通过外部时钟源为主控CPU核提供***时间初值或者利用预设的设备参数,再由主控CPU核1实现***时间的维护。所谓外部时钟源可以为软件时钟源或者外部时钟源(例如硬件RTC),预设的设备参数可以为厂家写入到多核CPU的初始设备信息。如果单板需要经常的掉电和上电,那就需要采用外部的时钟源了。
在主控CPU核1中包括内部定时器11和累加模块12,其中累加模块12可以接收内部定时器11按照周期发出的定时器中断,并将***时间存储模块2中的***时间进行累加,获得当前的***时间,然后写回***时间存储模块2。***时间存储模块2中所存储的***时间是在预设或接收外部时钟源的***时间初值的基础上,根据内部定时器12发出的定时器中断不断累加获得的。
非主控CPU核3包括接收请求模块31和内存读取模块32,当非主控CPU核3上运行的上层程序向非主控CPU核3中的接收请求模块31发出获取***时间的请求时,内存读取模块32可以根据接收请求模块31发送的获取***时间的请求从***时间存储模块2读取当前的***时间。
如图4所示,为本发明时间同步装置的另一实施例的结构示意图,与上一实施例相比,增加了时钟源4,时钟源4与主控CPU核1中的累加模块12相连,其可以为外部的软件时钟源或硬件时钟源(硬件RTC)。
累加模块12可以在上电时从时钟源2中获取***时间作为***时间初值,并根据内部定时器12发出的定时器中断对***时间初值进行累加,获得当前的***时间,然后将当前的***时间写入***时间存储模块2。累加模块12也可在设备掉电前,可以将当前的***时间写入时钟源2,并由时钟源2对当前的***时间进行维持。
非主控CPU核在操作***运行时不需要处理对时钟源的信号,只需要在收到上层软件获取***时间的请求时,才从预定的内存区域读取当前的***时间以供上层软件使用。
如图5所示,为本发明时间同步方法的一实施例的流程示意图,包括以下步骤:
步骤101,主控CPU核根据内部定时器发出的定时器中断对***时间存储模块中存储的***时间进行累加,以获得当前的***时间;
步骤102,主控CPU核将当前的***时间写入***时间存储模块;
步骤103,非主控CPU核收到获取***时间的请求时,从***时间存储模块读取当前的***时间。
本实施例中主控CPU核内部的定时器作为硬件资源,与单核CPU内的定时器相比不必有特殊要求,无论定时器的设计方式如何,定时器只需要按照Tick间隔给主控CPU一个定时器中断即可。主控CPU核可以利用这个定时器中断从***时间初值开始进行时间累加,以获得当前***时间。
如图6所示,为本发明时间同步方法的另一实施例的流程示意图,本实施例对上一实施例的***时间初值进行进一步地描述,在步骤101之前还可以包括步骤100,即主控CPU核在上电初始化时从时钟源读取该时钟源内保存的***时间初值。当采用硬件实时时钟作为时钟源时,由于硬件实时时钟内的编码方式与操作***有所区别,例如硬件实时时钟采用BCD编码,而操作***采用BIN(二进制)编码,因此需要进行格式转换,由于格式变换已经是所属领域技术人员很容易实现的技术,这里就不赘述了。
在步骤3之后,主控CPU核还可以在掉电前将当前的***时间写入所述时钟源,并由时钟源对所述当前的***时间进行维护,以供下次上电时由主控CPU核读取。
***时间在操作***运行过程中实际上是一种存储在某段内存地址的变量,该段内存地址即图3中的***时间存储模块2,在利用高级语言或汇编语言编程实现的时候,可以将***时间变量作为一个软件设备进行封装,而这个软件设备实际占用着内存中的预定区域,例如MEM地址,在某些基于多核的通讯设备中,各CPU核所操作的内存区域是相互区分的,通过封装成软件设备的方式,就可以对该软件设备进行读写,从而操作其他不属于该CPU核的内存区域。
下面用C语言给出了该软件设备的定义:
struct sys_time
{
    spinlock_t lock;//spinlock_t表示软件中的自旋锁,用于互斥操作;
    int time_ms;
    int time_sec;
    int time_min;
    int time_hour;
    int time_day;
    int time_month;
    int time_year;
    int time_weekday;
    int yearday;
    int time_isdst;//time_isdst表示“是否为日光节约时间”,与标准Linux中的定义相匹配;
}
主控CPU核对这个软件设备具有读写权限,负责向软件设备定时更新当前的***时间;而其他的非主控CPU核只具有读权限,只有在需要的时候才从该软件设备上读取***时间。
如图7所示,为本发明时间同步方法的又一实施例的流程示意图,包括以下步骤:
步骤101,主控CPU核根据内部定时器发出的定时器中断对***时间存储模块中存储的***时间进行累加,以获得当前的***时间;
步骤102’,将当前的***时间封装为存储在***时间存储模块的软件设备,主控CPU核对该软件设备执行写入操作;
步骤103’,非主控CPU核收到获取***时间的请求时,对该软件设备执行读取操作。
本实施例也可以在步骤101之前加入上一实施例中的步骤100,在步骤103’之后加入上一实施例中的步骤104。
其中采用C语言描述的***时间定义不应作为实现方式的限制,其它的可以完成***时间变量的定义的实现形式也应在本发明的覆盖范围之内。
除了以主控CPU核进行集中式管理以外,还可以采用软件时钟方式进行***时间管理,如图8所示,为采用软件时钟方式的***时间同步***的结构示意图,每个CPU核与单核CPU核相比,没有特殊的要求,但时钟源可采用一种软件时钟源6,整个***由软件时钟源6集中管理,避免了各个CPU核的晶振、定时器等差异带来的***时间误差,软件时钟源6从硬件时钟源(硬件RTC)中获取***时间初值,并根据外部的硬件定时器对***时间初值进行累加以获得当前***时间。然后根据上层软件要求的时间精度,在软件时钟在软件定时事件触发时,通过软件时钟信号5(例如消息、软件脉冲信号等)周期的向各个CPU核发送软件时钟信号,再由各个CPU核自行更新维护***时间。由于CPU核对软件时钟信号的处理要比处理定时器中对***性能的影响要小得多,因此可以在很小的***性能的影响下实现***时间的同步。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。

Claims (9)

1.一种时间同步方法,其包括以下步骤:
步骤1,主控CPU核根据内部定时器发出的定时器中断对***时间存储模块中存储的***时间进行累加,以获得当前的***时间;
步骤2,主控CPU核将所述当前的***时间写入所述***时间存储模块;
步骤3,非主控CPU核收到获取***时间的请求时,从所述***时间存储模块读取所述当前的***时间。
2.根据权利要求1所述的时间同步方法,其中所述步骤1之前,主控CPU核在上电初始化时,从时钟源读取时钟源内保存的***时间初值。
3.根据权利要求2所述的时间同步方法,其中所述主控CPU核在上电初始化时从时钟源读取该时钟源内保存的***时间初值具体为:主控CPU核在上电初始化时从硬件实时时钟读取该时钟源内保存的***时间初值,并进行格式转换。
4.根据权利要求1所述的时间同步方法,其中步骤3之后,主控CPU核在掉电前将所述当前的***时间写入时钟源,并由所述时钟源对所述当前的***时间进行维护。
5.根据权利要求1所述的时间同步方法,其中步骤2具体为:将所述当前的***时间对应的变量封装为存储在***时间存储模块的软件设备,所述主控CPU核对该软件设备执行写入操作。
6.根据权利要求5所述的时间同步方法,其中步骤3具体为:所述非主控CPU核收到获取***时间的请求时,对该软件设备执行读取操作。
7.一种时间同步装置,该时间同步装置用于多核CPU***,其包括主控CPU核、一个或数个非主控CPU核和用于存储***时间的***时间存储模块,该主控CPU核中包括:
内部定时器,用于按照周期发出定时器中断;
累加模块,与所述内部定时器和***时间存储模块相连,用于接收所述内部定时器发出的定时器中断,对***时间存储模块存储的***时间进行累加,获得当前的***时间,并写入***时间存储模块;
该一个或数个非主控CPU核包括:
接收请求模块,用于接收获取***时间的请求;
内存读取模块,与所述***时间存储模块和接收请求模块相连,用于根据接收请求模块发送的获取***时间的请求从所述***时间存储模块读取所述当前的***时间。
8.根据权利要求7所述的时间同步装置,其中还包括时钟源,与所述累加模块相连,用于为所述主控CPU核提供***时间初值。
9.根据权利要求8所述的时间同步装置,其中所述时钟源为硬件实时时钟。
CNB2006101453790A 2006-11-27 2006-11-27 时间同步方法及装置 Active CN100371851C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2006101453790A CN100371851C (zh) 2006-11-27 2006-11-27 时间同步方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006101453790A CN100371851C (zh) 2006-11-27 2006-11-27 时间同步方法及装置

Publications (2)

Publication Number Publication Date
CN1949129A CN1949129A (zh) 2007-04-18
CN100371851C true CN100371851C (zh) 2008-02-27

Family

ID=38018664

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006101453790A Active CN100371851C (zh) 2006-11-27 2006-11-27 时间同步方法及装置

Country Status (1)

Country Link
CN (1) CN100371851C (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101359238B (zh) * 2008-09-02 2012-01-18 中兴通讯股份有限公司 一种多核***的时间同步方法及***
CN101751067B (zh) * 2008-11-11 2012-05-23 盛群半导体股份有限公司 应用于多个微处理器的同步电路
CN101719080B (zh) * 2009-12-25 2014-03-26 北京网御星云信息技术有限公司 多核定时器实现方法及***
CN104216813B (zh) * 2014-09-02 2017-06-27 迈普通信技术股份有限公司 一种从核状态的监控方法及装置
CN106559157A (zh) * 2015-09-29 2017-04-05 中兴通讯股份有限公司 一种时钟同步方法、装置及通信设备
CN106708639B (zh) * 2015-11-13 2020-05-05 中国科学院沈阳自动化研究所 一种基于VxWorks***的数据定时精确记录方法
CN105550156B (zh) * 2015-12-02 2018-08-07 浙江大华技术股份有限公司 一种时间同步的方法及装置
CN106354119B (zh) * 2016-08-26 2020-04-21 华自科技股份有限公司 微机继电保护装置掉电时间记录方法、***和装置
CN109471588B (zh) * 2018-09-13 2021-08-10 北京米文动力科技有限公司 一种同步方法及设备
CN111107020B (zh) * 2019-12-31 2022-01-11 苏州盛科通信股份有限公司 一种多核心以太网交换芯片时间同步的方法
CN111752335B (zh) * 2020-05-23 2022-05-31 苏州浪潮智能科技有限公司 基于硬盘多核cpu的时间同步方法、***、终端及存储介质
CN112558685B (zh) * 2020-12-11 2024-05-10 南京四方亿能电力自动化有限公司 一种配电终端模块间对时同步的方法
CN113406992B (zh) * 2021-05-25 2022-11-11 威胜集团有限公司 ***时钟的控制方法、处理装置和可读存储介质
CN114895746B (zh) * 2022-06-14 2023-11-07 北京东土军悦科技有限公司 一种***时间的同步方法及装置、计算设备、存储介质
CN117220817B (zh) * 2023-11-07 2024-01-05 江苏金智科技股份有限公司 一种多核处理器的时间同步监测的方法和***

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5845060A (en) * 1993-03-02 1998-12-01 Tandem Computers, Incorporated High-performance fault tolerant computer system with clock length synchronization of loosely coupled processors
KR20020037166A (ko) * 2000-11-13 2002-05-18 윤종용 다중 프로세서 시스템을 위한 리셋 회로
CN1483247A (zh) * 2000-11-10 2004-03-17 ٿ��� 码分多址***中的时间定位

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5845060A (en) * 1993-03-02 1998-12-01 Tandem Computers, Incorporated High-performance fault tolerant computer system with clock length synchronization of loosely coupled processors
CN1483247A (zh) * 2000-11-10 2004-03-17 ٿ��� 码分多址***中的时间定位
KR20020037166A (ko) * 2000-11-13 2002-05-18 윤종용 다중 프로세서 시스템을 위한 리셋 회로

Also Published As

Publication number Publication date
CN1949129A (zh) 2007-04-18

Similar Documents

Publication Publication Date Title
CN100371851C (zh) 时间同步方法及装置
CN102498480B (zh) 动态频率内存控制
CN100530134C (zh) 用于分布式计算机***测量的***及方法
CN102270187B (zh) 处理器和输入/输出中枢的集成
CN103647669A (zh) 一种保证分布式数据处理一致性的***及方法
US20060150006A1 (en) Securing time for identifying cause of asynchronism in fault-tolerant computer
CN104126155A (zh) 控制装置、信息处理装置、控制方法、计算机可读取的存储介质以及程序
CN102315929B (zh) 一种地面仿真***的校时同步控制器
CN101625568A (zh) 一种基于数据同步控制器的主控单元热备份***和实现方法
CN105468727A (zh) 基于zookeeper实现MySQL强一致性复制方法
CN109819048A (zh) 数据同步方法、装置、终端及存储介质
CN103544057A (zh) 数据业务***的切换方法和切换***
CN103544076B (zh) 一种数据备份方法及装置
WO2024109239A1 (zh) 集群数据同步方法、装置、设备及非易失性可读存储介质
CN107943732B (zh) 一种基于国产化fpga器件实现1553b总线模块
US9747246B2 (en) Electronic device for communicating between a microcontroller unit (MCU) and a host processor and related methods
US20140189265A1 (en) Atomic time counter synchronization
CN111506156B (zh) 一种处理器阵列的授时方法及***
CN109753368A (zh) 一种实时数据发送方法及***
US7694176B2 (en) Fault-tolerant computer and method of controlling same
JP5845771B2 (ja) 情報伝達システムおよび情報伝達方法
CN114610817A (zh) 数据同步方法、装置、多活***、电子设备及存储介质
CN103490995A (zh) 报文发送方法和装置
CN109614266B (zh) 一种数据同步方法及装置
CN113641760A (zh) 数据同步方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP03 Change of name, title or address

Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Patentee after: NEW H3C TECHNOLOGIES Co.,Ltd.

Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base

Patentee before: HANGZHOU H3C TECHNOLOGIES Co.,Ltd.

CP03 Change of name, title or address
TR01 Transfer of patent right

Effective date of registration: 20230616

Address after: 310052 11th Floor, 466 Changhe Road, Binjiang District, Hangzhou City, Zhejiang Province

Patentee after: H3C INFORMATION TECHNOLOGY Co.,Ltd.

Address before: 310052 Changhe Road, Binjiang District, Hangzhou, Zhejiang Province, No. 466

Patentee before: NEW H3C TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right