CN101119192A - 一种时钟同步方法和系统 - Google Patents
一种时钟同步方法和系统 Download PDFInfo
- Publication number
- CN101119192A CN101119192A CNA2007101544718A CN200710154471A CN101119192A CN 101119192 A CN101119192 A CN 101119192A CN A2007101544718 A CNA2007101544718 A CN A2007101544718A CN 200710154471 A CN200710154471 A CN 200710154471A CN 101119192 A CN101119192 A CN 101119192A
- Authority
- CN
- China
- Prior art keywords
- clock
- local
- synchronised
- processing unit
- 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.)
- Granted
Links
Images
Landscapes
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本发明公开了一种时钟同步方法,用于包括多个处理装置的网络存储控制系统中不同装置间的时钟同步,包括如下步骤:网络存储控制系统的多个处理装置使用其中一个处理装置的本地时钟作为同步时钟源进行时钟同步;检测到同步时钟源无效时,其他处理装置选择另一处理装置的本地时钟作为新的同步时钟源。本发明还公开了一种时钟同步系统。通过使用本发明,实现了对系统同步时钟的有效性的检测和对时钟源的仲裁,方法简单且实时性好。另外,在检测到系统时钟出现故障时,通过硬件仲裁的方法选取其中一个处理单元内部的时钟作为主时钟源为整个系统提供同步时钟,从故障中恢复所需的时间很短。
Description
技术领域
本发明涉及通信技术领域,特别是涉及一种多处理装置系统的时钟同步方法和系统。
背景技术
随着处理系统规模的不断发展,在系统中包含业务模块的数量也越来越多,例如业务处理模块、主控模块等,通常这些业务模块都拥有独立的时钟单元,为上述业务模块单独提供时钟。由于各个业务模块所采用的时钟均来自其模块内部,因此常常会产生业务模块之间时钟不同步的问题。然而在一些比较重要的场合,比如数据存储系统,系统中的信息数据是对时间特性非常敏感性的,例如数据本身的生效时间、数据间的相对时间等数据,如果各个业务模块之间的时钟不能够同步,将会对上述数据的记录和保存造成混乱。因此系统必须采用一种有效的方法来保证多个业务单元间的时钟同步,保证不同业务模块之间数据时间的相对性。
现有技术中通常采用在系统中设置一个统一的系统时钟源,该系统时钟源为所有业务模块提供时钟,从而保证各个业务模块时钟的一致性。如图1所示,为现有技术中采用统一系统时钟源的多模块系统架构图。图1中每个Node均为一个独立的处理单元,可以拥有独立的时钟单元,MCA(ManageControl Adapter,管理控制适配器)为整个系统的管理模块,用于实现对整个系统的管理,并由MCA产生统一的系统时钟源为各个业务模块提供时钟。由MCA1和MCA2分别生成时钟1和时钟2,然后分别连接到整个系统的所有Node上,对于所有的Node来说,时钟1和时钟2均是本地模块的输入时钟,系统通过管理协商,决定采用其中一个作为整个系统的主时钟,另外一个作为备份时钟,当主时钟出现故障时,由备份时钟保证系统的同步,如果主、备时钟均出现故障,则每个Node才可以采用本地时钟单元的时钟。
在使用上述方法时,至少存在如下问题:现有技术中的系统时钟对MCA的依赖性非常大,当系统中有多个业务模块时,为了保持系统时钟一致性,需要配套至少一个MCA模块。2、现有技术中在有多个MCA为系统提供时钟时,需要采用软件协商的方式确定主时钟,特别是在主时钟出现故障时也需要通过采用软件协商从备用时钟中挑选主时钟,因为软件协商需要上报系统处理器进行处理,因此从系统时钟故障到系统时间恢复需要较长时间,从而导致因此产生的时间延迟不可忽略。
发明内容
本发明提供一种时钟同步方法和系统,以实现包括多个处理装置的系统中的时钟同步。
为达到上述目的,本发明提供一种时钟同步方法,用于包括多个处理装置的网络存储控制系统中不同装置间的时钟同步,包括如下步骤:
所述网络存储控制系统的多个处理装置使用其中一个处理装置的本地时钟作为同步时钟源进行时钟同步;
检测到所述同步时钟源无效时,从其他所述处理装置选择另一处理装置的本地时钟作为新的同步时钟源。
其中,所述检测到同步时钟源无效的方法具体为:
在预先设定的时间内,检测到所述同步时钟源的时钟信号状态始终无变化。
其中,所述在预先设定的时间内同步时钟源的时钟信号状态始终无变化的方法具体为:
所述处理装置在本地运行一定时器,所述定时器的设定时间大于所述同步时钟源的时钟信号的半周期,小于所述同步时钟源的时钟信号的一个周期;
所述同步时钟源的时钟信号的信号状态发生变化时,所述定时器清零;所述定时器到达所述设定时间时,判断为所述同步时钟源的时钟信号状态无变化,所述同步时钟源无效。
其中,所述检测到同步时钟源无效时,其他所述处理装置通过仲裁输出的方法,选择另一处理装置的本地时钟作为新的同步时钟源。
其中,所述其他处理装置通过仲裁输出选择另一处理装置的本地时钟作为新的同步时钟源的步骤具体包括:
检测到所述同步时钟源无效的每一处理装置,输出本地时钟用于驱动所述同步时钟源;
所述每一处理装置在输出本地时钟后,判断以所述本地时钟驱动所述同步时钟源是否成功;
所述每一处理装置在所述判断结果为驱动成功时,继续输出本地时钟用于驱动所述同步时钟源;否则停止输出本地时钟并获取所述同步时钟源。
其中,所述判断以本地时钟驱动所述同步时钟源的时钟信号是否成功的方法具体为:
检测到本地时钟信号的上升沿时,检测所述同步时钟源的信号状态是否为高,若为高则判断为驱动成功,否则判断为驱动失败。
其中,所述多个处理装置使用其中一个处理装置的本地时钟作为同步时钟源进行时钟同步的步骤后还包括:
所述多个处理装置实时或定时对本地时钟进行自检,发现本地时钟无效时,正在以本地时钟驱动所述同步时钟源的处理装置停止输出本地时钟;其他处理装置不输出本地无效时钟用于驱动所述同步时钟源。
本发明还提供一种时钟同步方法,用于包括多个处理装置的网络存储控制系统中任一处理装置与其他处理装置间的时钟同步,包括如下步骤:
检测同步时钟源是否有效;
所述同步时钟源有效时,获取所述同步时钟源用于与其他处理装置间的时钟同步;
所述同步时钟源无效时,输出本地时钟用于驱动所述同步时钟源,并判断以所述本地时钟驱动所述同步时钟源是否成功;若成功则继续输出本地时钟用于驱动所述同步时钟源;否则停止输出本地时钟并获取所述同步时钟源。
其中,所述检测同步时钟源是否有效的方法具体为:
在预先设定的时间内,所述同步时钟源的时钟信号状态交替变化时,所述同步时钟源有效,否则所述同步时钟源无效。
本发明还提供一种时钟同步系统,用于包括多个处理装置的网络存储控制系统中,不同装置间的时钟同步,包括:
第一处理装置,用于使用其本地时钟作为同步时钟源进行所述系统中不同装置间的时钟同步;
至少一个其他处理装置,检测到所述第一处理装置的同步时钟源无效时,通过仲裁输出选择另一处理装置的本地时钟作为新的同步时钟源。
其中,所述第一处理装置和其他装置进一步包括:
本地时钟单元,用于生成本地时钟并向处理单元发送,以在需要时以所述本地时钟驱动系统的同步时钟源;
处理单元,用于在发现系统的同步时钟有效时,通知接口单元读入同步时钟,并发送到同步时钟单元用于时钟的同步;在发现系统的同步时钟无效时,将所述本地时钟单元产生的本地时钟向接口单元输出用于驱动系统的同步时钟源;判断驱动失败时,中断所述本地时钟的输出,否则继续输出本地时钟;
接口单元,用于接收到所述处理单元发送的本地时钟时,以所述本地时钟驱动系统的同步时钟源;并获取同步时钟发送到所述处理单元,用于驱动本地同步时钟;
同步时钟单元,用于接收所述处理单元发送的同步时钟,进行时间的同步。
其中,所述处理单元进一步包括:
同步时钟检测子单元,用于检测所述接口单元获取的系统的同步时钟是否有效,若有效则中断向所述接口单元发送所述本地时钟单元产生的本地时钟,否则通知输出子单元;
输出子单元,用于在所述同步时钟检测子单元判断系统的同步时钟无效时,将所述本地时钟单元产生的本地时钟向所述接口单元发送用于驱动系统的同步时钟源;
驱动判决子单元,用于将所述本地时钟发送到所述接口单元用于尝试驱动系统的同步时钟源时,判断所述驱动是否成功,若失败则中断所述本地时钟的输出;否则继续输出本地时钟。
其中,所述同步时钟检测子单元进一步包括:
定时器模块,用于对所述同步时钟源的时钟信号的信号状态进行计时,所述定时器的设定时间大于所述同步时钟源的时钟信号的半周期,小于所述同步时钟源的时钟信号的一个周期;到达所述设定时间时,判断为所述同步时钟源无效;
同步时钟源状态检测模块,用于检测到所述同步时钟源的时钟信号的信号状态发生变化时,将所述定时器模块中的定时器清零。
其中,所述驱动判决子单元进一步包括:
本地信号检测模块,用于在所述输出子单元使用本地时钟驱动系统的同步时钟源时,检测本地时钟信号的上升沿并通知所述驱动判决模块;
驱动判决模块,用于所述本地信号检测模块检测到本地时钟信号的上升沿时,检测所述同步时钟源的信号状态是否为高,若为高则判断为驱动成功,否则判断为驱动失败。
其中,所述第一处理装置和其他装置还包括:
自检单元,与所述处理单元和接口单元连接,用于对所述处理单元向所述接口单元发送的本地时钟进行自检,发现所述本地时钟无效时,停止将所述本地时钟输出到所述接口单元,以避免所述无效的本地时钟去驱动同步时钟源。
其中,所述自检单元进一步包括:
自检定时器子单元,用于对所述本地时钟信号的信号状态进行计时,所述定时器的设定时间大于所述本地时钟信号的半周期,小于所述本地时钟信号的一个周期;到达所述设定时间时,判断为所述本地时钟无效;
本地时钟状态检测子单元,用于检测到所述本地时钟信号的信号状态发生变化时,将所述自检定时器模块中的定时器清零。
本发明的技术方案具有以下优点:
采用硬件检测方法检测系统同步时钟的有效性,实现了时钟源的仲裁,方法简单且实时性好。另外,在检测到系统时钟出现故障时,通过硬件仲裁的方法选取其中一个处理单元内部的时钟作为主时钟源为整个系统提供同步时钟,从故障中恢复所需的时间很短。
附图说明
图1是现有技术中采用统一系统时钟源的多模块系统架构图;
图2是本发明中各Node的时钟同步系统架构示意图;
图3是本发明中Node启动时的时钟同步方法流程图;
图4是本发明中Node对时钟clk进行实时信号监控的方法流程图;
图5是本发明中时钟出现故障时Node上执行的仲裁输出方法流程图;
图6是本发明中的应用场景中时钟同步方法流程图;
图7是本发明中的处理装置的结构示意图;
图8是本发明中的处理装置的另一结构示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述:
本发明中,无需MCA进行网络存储控制系统时钟时间的同步管理,各个Node都使用同一个时钟clk,该时钟clk是由各个Node中的某一个Node输出的。同时每个Node也拥有独立的本地时钟单元。对于使用本地的时钟输出时钟clk用于系统同步的Node来说,时钟clk既是输出信号,也是输入信号。对于其他使用时钟clk的Node来说,时钟clk只是输入信号。Node对于其他使用本发明中各Node的时钟同步系统架构如图2所示。
因各个Node的结构以及处理逻辑相同,因此以下只具体的描述一个Node的时钟同步处理方法。其中,以时钟clk表示系统公用的同步时钟信号,以local_clk表示该Node本地的时钟信号。需要说明的是,对于每一个Node,其内部一般有高频和低频两种时钟信号,高频时钟信号一般用来计数,低频信号一般用来作为本地的时钟信号local_clk。一般情况下,各个Node内部的低频时钟的频率彼此相同,高频时钟的频率也彼此相同,而系统公用的时钟信号clk也是低频信号。
以下首先对Node启动时的时钟同步方法进行描述。如图3所示,包括如下步骤:
步骤s301、Node启动时,判断时钟clk是否已经有效,有效时进行步骤s305,否则继续步骤s302。
Node启动时,系统的同步时钟clk可能已经有效存在,即已经由某一其他Node的本地时钟所驱动,因此需要首先对时钟clk的有效性进行判断。时钟clk在无信号时,会处于常高状态,因此,clk判断的标准可以为:在预定的时间内检测到时钟clk的上升沿或下降沿时,认为时钟clk有效,否则认为时钟clk无效。该无效的原因可能为:系统重启后暂无其他Node对时钟clk进行驱动;或目前正在驱动时钟clk的Node出现故障。
步骤s302、使用本地时钟local_clk作为输出,驱动时钟clk。
检测到时钟clk无效时,输出本地时钟local_clk驱动时钟clk。
步骤s303、判断clk和local_clk是否同步释放,是则进行步骤s304,否则进行步骤s305。
使用本地钟local_clk驱动时钟clk后,检测clk和local_clk是否同步释放,同步释放的检测标准为:同时出现上升沿和下降沿。若同步释放,则说明由本地时钟local_clk对时钟clk的驱动已经成功,否则驱动失败。驱动失败的原因可能为:其他Node正在对同步时钟clk进行驱动。
步骤s304、继续由本地时钟驱动输出并进行步骤s306。
步骤s305、放弃本地时钟输出并进行步骤s306。
驱动失败时,放弃本地时钟输出。
步骤s306、从背板时钟信号线上取用时钟作为同步时钟并结束。
所有的Node都与背板上的传输时钟clk的信号线相连,从该信号线上获取信号作为时钟clk进行时间同步。当时钟clk由本地的local_clk驱动时,时钟clk即本地的local_clk。
Node获得了时钟clk后,还需要对该时钟clk进行实时信号监控,以便在时钟clk有故障发生时,能够及时发现并根据预设的逻辑进入仲裁输出。而对于使用本地时钟local_clk驱动时钟clk的Node,在本地时钟local_clk发生故障时,该Node会根据本身的自检机制停止以本地时钟local_clk驱动时钟clk。对于该自检机制,将在下文进行详细描述。Node对时钟clk进行实时信号监控的步骤如图4所示,包括如下步骤:
步骤s401、检测到时钟clk的信号边沿。
检测到时钟clk的信号边沿时,说明时钟clk的信号有效。因此,每一次检测到时钟clk的信号边沿,都直接重新开始本监控流程。
步骤s402、将计数器Counter清零,记录当前时钟clk的状态s0。
该计数器Counter的值是通过Node的本地高频时钟进行计数的,记录的当前时钟的状态s0为0或1。
步骤s403、以自身高频时钟进行计数。
可以以每一次上升沿或下降沿作为一次计数,也即每经过一个高频时钟的周期,计数加1。
步骤s404、判断计数是否超过预设值,未超过时返回上一步骤s403,超过时进行步骤s405。
该预设的门限值与本地高频时钟及本地低频时钟(即local_clk)的关系有关,具体的,考虑到时钟信号的占空比一般为50%,因此该预设值可以设置为1/2个本地低频时钟周期和1个本地低频时钟周期之间,即经过该门限值的时间后,时钟clk的状态应该发生变化。以高频时钟的频率是低频时钟的1000倍为例,该计数器可以设置在500~1000之间,即1/2个本地低频时钟周期和1个本地低频时钟周期之间。
步骤s405、获取时钟clk的当前状态,判断时钟clk的当前状态是否与s0相同。相同时进行步骤s406,否则进行步骤s402。
若相同,说明经过了该预设值的时间后,时钟clk的状态未发生变化,可以判断为时钟clk出现了故障。
步骤s406、判断时钟clk出现故障。
步骤s407、进入仲裁输出流程。
出现故障时,Node上执行的仲裁输出流程如图5所示,包括以下步骤:
步骤s501、检测到时钟clk出现故障。
步骤s502、以本地时钟local_clk作为时钟clk输出。
在以本地时钟local_clk作为时钟clk输出时,还需要对本地时钟local_clk预先进行自检,自检通过时才可以将本地时钟local_clk作为时钟clk输出,该自检的机制将在下文进行详细描述。
步骤s503、判断本地时钟local_clk是否出现上升沿,若出现则进行步骤s504,否则重复本步骤直至检测到上升沿,以进行步骤s504。
等待本地时钟local_clk的上升沿,作为驱动时钟clk是否成功的条件。
步骤s504、读取时钟clk的状态。
步骤s505、判断时钟clk的状态是否为高,不是则进行步骤s506,否则进行步骤s507。
检测到本地时钟local_clk的上升沿后,若时钟clk的状态也为高,说明本地时钟local_clk对时钟clk的驱动成功;若时钟clk的状态不为高,说明其他Node正在尝试驱动clk,因此放弃驱动。需要说明的是,在有的Node对时钟clk的驱动为高、有的Node对时钟clk的驱动为低的情况下,时钟clk的信号为低。
步骤s506、撤销以本地local_clk驱动时钟clk,从背板时钟信号线上取用时钟clk作为同步时钟并结束。
步骤s507、持续以本地时钟local_clk作为时钟clk输出并结束。
上述各步骤中,涉及到了Node对于本地时钟local_clk进行自检的过程,自检的目的在于,当Node以本地时钟local_clk驱动所有Node用于同步时间的时钟clk时,若发现本地时钟local_clk出现故障,即停止对时钟clk的驱动;或当发现本地时钟local_clk出现故障时,不尝试用该出现故障的本地时钟local_clk去驱动所有Node用于同步时间的时钟clk。该自检机制的实现方法很多,如将本地时钟local_clk经过RC电路变换后,与预设的参考电压进行比较,高于该参考电压时即为local_clk正常,否则判断为该local_clk出现故障。
以下通过一个具体的应用场景,描述本发明的实施方式。
假设系统中包括Node0、Node1以及Node2三个处理单元。其中,以Node0的本地时钟local_clk0(图中未画出)作为系统时钟clk的驱动源给所有Node提供时钟信号。对于该Node0来讲,local_clk0为输出信号,同时也是本地同步时间clk的输入;而Node1和Node2均处于备份状态,clk(即local_clk0)是输入信号,用该信号作为本地Node同步时间clk的输入,这样保证整个系统的时钟同步。其中Node1和Node2在使用clk信号的同时,实时监控该clk信号,以便当clk出现时进行仲裁,切换系统时钟源。以下假设Node0、Node1以及Node2中所使用的本地时钟local_clk0、本地时钟local_clk1和本地时钟local_clk2的频率均为33KHz,而内部用于计数的高频时钟为33MHz。
如图6所示,Node1和Node2正常运行时,分别在本地使用33MHz时钟对33KHz的时钟clk进行采样,clk的占空比一般要求在50%左右,这样可以设置计数器counter的预设值为3/4的时钟clk周期,这样3/4的时钟clk周期大概为750个33MHz的脉冲,也即counter的超时值为750,该计数器在检测到上升沿或下降沿时初始化为0,然后以高频时钟33MHz作为计数单位,当clk正常运行时,按照上述步骤s401至步骤s407,每一次counter到达750前都能发现clk的状态发生变化,时钟源正常,无需切换,因此把counter清零。因此Node1和Node2不会检测到时钟clk出现故障。
当Node0的时钟驱动源local_clk0出现故障时(图中未画出),使得clk无信号,处于常高状态。如图6所示,在clk的上升沿或者下降沿,如图中的A点都会使Node的counter计数器清零,如果clk正常,则在B点应该出现如虚线所示的下降沿,但是实际上并没有,也即clk出现故障,计数器没有被正常清零。当Node1和Node2计数器计数到750,如图中C点,而且clk没有变化,则认为时钟源出现故障,所有检测到该故障的Node均把自身的内部33KHz信号当作时钟源输出。由于Node1和Node2的本地时钟local_clk1和local_clk2存在时间差异,因此在C点,clk信号被Node1的本地时钟local_clk1驱动为0;随后,Node2的本地时钟local_clk2的信号也为低,因此Node2也驱动clk为0。在D点,Node1的本地时钟local_clk1出现上升沿时,Node1试图把clk驱动为高,但是由于Node2的本地时钟local_clk2还在驱动为低,因此Node1检测到clk仍然为低,说明还有别的Node在驱动clk,因此Node1放弃驱动。同样,Node2的本地时钟local_clk2出现上升沿时,Node2试图把clk驱动为高,读取clk信号后发现clk信号确实为高,因此确认clk确实受Node2的本地时钟local_clk2驱动,这样就实现了对同步时钟clk的输出仲裁。整个系统的最后由Node2的33K本地时钟local_clk1作为时钟源;如果还有更多的Node时,仲裁方法不变,也即把clk信号拉低并最后释放的Node胜出。
通过以上描述的方法,采用硬件检测方法检测系统同步时钟的有效性,实现了时钟源的仲裁,方法简单且实时性好。另外,在检测到系统时钟出现故障时,通过硬件仲裁的方法选取其中一个处理单元内部的时钟作为主时钟源为整个系统提供同步时钟,从故障中恢复所需的时间很短。
本发明还提供一种处理装置,应用于包括多个处理装置的网络存储控制系统中,安装在每一装置上用于不同装置间的时间同步。
其结构如图7所示,包括:本地时钟单元10、处理单元20、自检单元30、接口单元40和同步时钟单元50。
其中,本地时钟单元10,用于生成本地时钟local_clk并向处理单元20发送,用于在需要时以该本地时钟local_clk驱动系统的同步时钟clk。
处理单元20,用于在发现系统的同步时钟clk有效时,通知接口单元40读入背板时钟信号线的同步时钟clk,并发送到同步时钟单元50用于时钟的同步。另外,还用于在发现系统的同步时钟clk无效时,将本地时钟单元10产生的本地时钟local_clk输出到自检单元30,通过自检后尝试驱动系统的同步时钟clk。判断驱动失败时,中断向自检单元30发送本地时钟单元10产生的本地时钟local_clk;否则继续将本地时钟单元10产生的本地时钟local_clk输出到自检单元30。
自检单元30,用于对处理单元20发送的由本地时钟单元10生成的本地时钟local_clk进行自检,发现故障时,若正以本地时钟local_clk驱动同步时间的时钟clk,则停止对时钟clk的驱动;另外,发现故障时,不将本地时钟local_clk输出到接口单元40,避免尝试用该出现故障的本地时钟local_clk去驱动时钟clk。该自检单元30进一步包括:自检定时器子单元31,用于对本地时钟信号local_clk的信号状态进行计时,定时器的设定时间大于本地时钟信号local_clk的半周期,小于本地时钟信号local_clk的一个周期;到达设定时间时,判断为所述本地时钟local_clk无效;本地时钟状态检测子单元32,用于检测到本地时钟信号local_clk的信号状态发生变化时,将自检定时器子单元31中的定时器清零。即在半周期时应检测到信号local_clk的交替变化,此时将自检定时器子单元31清零,若没有变化则会导致自检定时器子单元31到达预设值,判断为本地时钟信号local_clk无效。
接口单元40,用于接收到自检单元30发送的由本地时钟单元10生成的本地时钟local_clk时,尝试用该本地时钟local_clk去驱动时钟clk,另外,从背板时钟信号线获取时钟clk并发送到处理单元20,用于驱动本地同步时钟。
同步时钟单元50,用于接收处理单元20发送的时钟clk,作为同步时钟进行时间的同步。
其中,处理单元20进一步包括同步时钟检测子单元21、输出子单元22和驱动判决子单元23。
同步时钟检测子单元21,用于检测接口单元40向处理单元20发送的时钟clk是否有效,若有效则中断向自检单元30发送本地时钟单元10产生的本地时钟local_clk,否则通知输出子单元22。同步时钟检测子单元21进一步包括:定时器模块211,用于对同步时钟源clk的信号状态进行计时,定时器的设定时间大于同步时钟源clk的时钟信号的半周期,小于同步时钟源clk的时钟信号的一个周期;到达设定时间时,判断为同步时钟源clk无效;同步时钟源状态检测模块212,用于检测到同步时钟源clk的时钟信号的信号状态发生变化时,将定时器模块211中的定时器清零,即在半周期时应检测到信号的交替变化,此时将定时器模块211清零,若没有变化则会导致定时器模块211到达预设值,判断为同步时钟源clk无效。
输出子单元22,用于在同步时钟检测子单元21判断时钟clk无效或出现故障时,将本地时钟单元10产生的本地时钟local_clk向自检单元30发送,用于通过自检后尝试驱动系统的同步时钟clk。
驱动判决子单元23,用于当本单元将本地时钟单元10产生的本地时钟local_clk发送到自检单元30用于尝试驱动系统的同步时钟clk时,判断驱动是否成功,若驱动失败则中断向自检单元30发送本地时钟单元10产生的本地时钟local_clk;否则继续将本地时钟单元10产生的本地时钟local_clk输出到自检单元30。驱动判决子单元23进一步包括:本地信号检测模块231,用于在输出子单元22使用本地时钟local_clk驱动系统的同步时钟源clk时,检测本地时钟信号的上升沿local_clk并在检测到时通知驱动判决模块232;驱动判决模块232,用于当本地信号检测模块231检测到本地时钟信号local_clk的上升沿时,检测同步时钟源clk的信号状态是否为高,若为高则判断为驱动成功,否则判断为驱动失败。驱动失败的原因可能为:其他装置正在尝试以本地时钟信号驱动时钟源。
本发明中处理装置的一具体实现方式如图8所示。
其中,本地时钟单元10生成local_clk并发送到处理单元20,处理单元将该local_clk发送到自检单元30和控制单元52,控制单元52在接口B的输入为0时将local_clk输出到漏极输出(OD)单元53。其中,接口B的输入是由OR单元51控制的。具体的,当处理单元20判断需要向接口单元发送local_clk时,通过接口A向OR单元51发送代表0的低电平信号,本地时钟单元10生成local_clk经过自检单元30的检测后,自检单元30判断local_clk无故障时,向OR单元51发送代表0的低电平信号,只有OR单元51的两个输入都为低电平时,OR单元51才向控制单元52的接口B发送代表0的低电平信号,控制单元52打开,将local_clk通过OD单元53向接口单元40发送。当处理单元20判断使用local_clk驱动clk失败时,将接口A输出的信号调整为代表1的高电平信号,或自检单元30发现local_clk存在故障、输出代表1的高电平信号时,控制单元52关闭,停止local_clk的输出。而接口单元40将接收到的clk通过处理单元20发送到同步时钟单元50用于时钟同步。
本发明还提供一种网络存储控制系统,包括若干上述图7或图8所描述的处理装置。其中存在一个第一处理装置,使用其本地时钟作为同步时钟源进行系统中不同装置间的时钟同步。该存在至少一个其他处理装置,检测到上述第一处理装置的同步时钟源无效时,通过仲裁输出选择另一处理装置的本地时钟作为新的同步时钟源。对于各处理装置的结构,与上述图7或图8所描述的结构完全相同,在此不进行重复描述。
通过以上描述的装置和系统,采用硬件检测系统同步时钟的有效性,实现了时钟源的仲裁。另外,在检测到系统时钟出现故障时,通过硬件仲裁的方法选取其中一个处理单元内部的时钟作为主时钟源为整个系统提供同步时钟,从故障中恢复所需的时间很短。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (16)
1.一种时钟同步方法,用于包括多个处理装置的网络存储控制系统中不同装置间的时钟同步,其特征在于,包括如下步骤:
所述网络存储控制系统的多个处理装置使用其中一个处理装置的本地时钟作为同步时钟源进行时钟同步;
检测到所述同步时钟源无效时,从其他所述处理装置选择另一处理装置的本地时钟作为新的同步时钟源。
2.如权利要求1所述时钟同步方法,其特征在于,所述检测到同步时钟源无效的方法具体为:
在预先设定的时间内,检测到所述同步时钟源的时钟信号状态始终无变化。
3.如权利要求2所述时钟同步方法,其特征在于,所述在预先设定的时间内同步时钟源的时钟信号状态始终无变化的方法具体为:
所述处理装置在本地运行一定时器,所述定时器的设定时间大于所述同步时钟源的时钟信号的半周期,小于所述同步时钟源的时钟信号的一个周期;
所述同步时钟源的时钟信号的信号状态发生变化时,所述定时器清零;所述定时器到达所述设定时间时,判断为所述同步时钟源的时钟信号状态无变化,所述同步时钟源无效。
4.如权利要求1所述时钟同步方法,其特征在于,所述检测到同步时钟源无效时,其他所述处理装置通过仲裁输出的方法,选择另一处理装置的本地时钟作为新的同步时钟源。
5.如权利要求4所述时钟同步方法,其特征在于,所述其他处理装置通过仲裁输出选择另一处理装置的本地时钟作为新的同步时钟源的步骤具体包括:
检测到所述同步时钟源无效的每一处理装置,输出本地时钟用于驱动所述同步时钟源;
所述每一处理装置在输出本地时钟后,判断以所述本地时钟驱动所述同步时钟源是否成功;
所述每一处理装置在所述判断结果为驱动成功时,继续输出本地时钟用于驱动所述同步时钟源;否则停止输出本地时钟并获取所述同步时钟源。
6.如权利要求5所述时钟同步方法,其特征在于,所述判断以本地时钟驱动所述同步时钟源的时钟信号是否成功的方法具体为:
检测到本地时钟信号的上升沿时,检测所述同步时钟源的信号状态是否为高,若为高则判断为驱动成功,否则判断为驱动失败。
7.如权利要求1所述时钟同步方法,其特征在于,所述多个处理装置使用其中一个处理装置的本地时钟作为同步时钟源进行时钟同步的步骤后还包括:
所述多个处理装置实时或定时对本地时钟进行自检,发现本地时钟无效时,正在以本地时钟驱动所述同步时钟源的处理装置停止输出本地时钟;其他处理装置不输出本地无效时钟用于驱动所述同步时钟源。
8.一种时钟同步方法,用于包括多个处理装置的网络存储控制系统中任一处理装置与其他处理装置间的时钟同步,其特征在于,包括如下步骤:
检测同步时钟源是否有效;
所述同步时钟源有效时,获取所述同步时钟源用于与其他处理装置间的时钟同步;
所述同步时钟源无效时,输出本地时钟用于驱动所述同步时钟源,并判断以所述本地时钟驱动所述同步时钟源是否成功;若成功则继续输出本地时钟用于驱动所述同步时钟源;否则停止输出本地时钟并获取所述同步时钟源。
9.如权利要求8所述时钟同步方法,所述检测同步时钟源是否有效的方法具体为:
在预先设定的时间内,所述同步时钟源的时钟信号状态交替变化时,所述同步时钟源有效,否则所述同步时钟源无效。
10.一种时钟同步系统,用于包括多个处理装置的网络存储控制系统中,不同装置间的时钟同步,其特征在于,包括:
第一处理装置,用于使用其本地时钟作为同步时钟源进行所述系统中不同装置间的时钟同步;
其他处理装置,检测到所述第一处理装置的同步时钟源无效时,通过仲裁输出选择一处理装置的本地时钟作为新的同步时钟源。
11.如权利要求10所述时钟同步系统,其特征在于,所述第一处理装置和其他装置进一步包括:
本地时钟单元,用于生成本地时钟并向处理单元发送,以在需要时以所述本地时钟驱动系统的同步时钟源;
处理单元,用于在发现系统的同步时钟有效时,通知接口单元读入同步时钟,并发送到同步时钟单元用于时钟的同步;在发现系统的同步时钟无效时,将所述本地时钟单元产生的本地时钟向接口单元输出用于驱动系统的同步时钟源;判断驱动失败时,中断所述本地时钟的输出,否则继续输出本地时钟;
接口单元,用于接收到所述处理单元发送的本地时钟时,以所述本地时钟驱动系统的同步时钟源;并获取同步时钟发送到所述处理单元,用于驱动本地同步时钟;
同步时钟单元,用于接收所述处理单元发送的同步时钟,进行时间的同步。
12.如权利要求11所述时钟同步系统,其特征在于,所述处理单元进一步包括:
同步时钟检测子单元,用于检测所述接口单元获取的系统的同步时钟是否有效,若有效则中断向所述接口单元发送所述本地时钟单元产生的本地时钟,否则通知输出子单元;
输出子单元,用于在所述同步时钟检测子单元判断系统的同步时钟无效时,将所述本地时钟单元产生的本地时钟向所述接口单元发送用于驱动系统的同步时钟源;
驱动判决子单元,用于将所述本地时钟发送到所述接口单元用于尝试驱动系统的同步时钟源时,判断所述驱动是否成功,若失败则中断所述本地时钟的输出;否则继续输出本地时钟。
13.如权利要求12所述时钟同步系统,其特征在于,所述同步时钟检测子单元进一步包括:
定时器模块,用于对所述同步时钟源的时钟信号的信号状态进行计时,所述定时器的设定时间大于所述同步时钟源的时钟信号的半周期,小于所述同步时钟源的时钟信号的一个周期;到达所述设定时间时,判断为所述同步时钟源无效;
同步时钟源状态检测模块,用于检测到所述同步时钟源的时钟信号的信号状态发生变化时,将所述定时器模块中的定时器清零。
14.如权利要求12所述时钟同步系统,其特征在于,所述驱动判决子单元进一步包括:
本地信号检测模块,用于在所述输出子单元使用本地时钟驱动系统的同步时钟源时,检测本地时钟信号的上升沿并通知所述驱动判决模块;
驱动判决模块,用于所述本地信号检测模块检测到本地时钟信号的上升沿时,检测所述同步时钟源的信号状态是否为高,若为高则判断为驱动成功,否则判断为驱动失败。
15.如权利要求11所述时钟同步系统,其特征在于,所述第一处理装置和其他装置还包括:
自检单元,与所述处理单元和接口单元连接,用于对所述处理单元向所述接口单元发送的本地时钟进行自检,发现所述本地时钟无效时,停止将所述本地时钟输出到所述接口单元,以避免所述无效的本地时钟去驱动同步时钟源。
16.如权利要求15所述时钟同步系统,其特征在于,所述自检单元进一步包括:
自检定时器子单元,用于对所述本地时钟信号的信号状态进行计时,所述定时器的设定时间大于所述本地时钟信号的半周期,小于所述本地时钟信号的一个周期;到达所述设定时间时,判断为所述本地时钟无效;
本地时钟状态检测子单元,用于检测到所述本地时钟信号的信号状态发生变化时,将所述自检定时器模块中的定时器清零。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101544718A CN101119192B (zh) | 2007-09-11 | 2007-09-11 | 一种时钟同步方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101544718A CN101119192B (zh) | 2007-09-11 | 2007-09-11 | 一种时钟同步方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101119192A true CN101119192A (zh) | 2008-02-06 |
CN101119192B CN101119192B (zh) | 2010-09-29 |
Family
ID=39055148
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101544718A Expired - Fee Related CN101119192B (zh) | 2007-09-11 | 2007-09-11 | 一种时钟同步方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101119192B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103716106A (zh) * | 2012-09-28 | 2014-04-09 | 华为技术有限公司 | 时钟同步方法、系统及设备 |
CN103746625A (zh) * | 2013-11-19 | 2014-04-23 | 广东威灵电机制造有限公司 | 电机控制系统中微处理器的系统时钟故障检测方法 |
CN104796213A (zh) * | 2015-03-19 | 2015-07-22 | 南京科远自动化集团股份有限公司 | 一种多重冗余控制器的时钟同步控制系统及方法 |
CN105629107A (zh) * | 2015-12-30 | 2016-06-01 | 北京四方继保自动化股份有限公司 | 一种厂站时钟同步故障在线监测方法 |
CN106559604A (zh) * | 2016-12-05 | 2017-04-05 | 北京空间机电研究所 | 一种双视频处理器同步成像的实现方法 |
CN106921457A (zh) * | 2015-12-28 | 2017-07-04 | 北京东土科技股份有限公司 | 基于sdh网络实现时钟同步的方法及装置 |
CN108628668A (zh) * | 2017-03-21 | 2018-10-09 | 北京京东尚科信息技术有限公司 | 一种多倒计时任务调度系统、方法、电子设备和储存介质 |
CN108885433A (zh) * | 2016-03-24 | 2018-11-23 | Wago管理有限责任公司 | 安全控制装置和用于运行安全控制装置的方法 |
CN109039519A (zh) * | 2018-09-12 | 2018-12-18 | 杭州晨晓科技股份有限公司 | 一种时钟同步方法及同步系统 |
CN110782709A (zh) * | 2019-11-04 | 2020-02-11 | 四川九洲空管科技有限责任公司 | 一种民航ads-b地面站系统高精度时钟冗余备份方法 |
WO2020052298A1 (zh) * | 2018-09-12 | 2020-03-19 | 中兴通讯股份有限公司 | 时钟、时间同步方法、装置以及多路由器系统 |
CN111106990A (zh) * | 2019-12-30 | 2020-05-05 | 苏州联视泰电子信息技术有限公司 | 一种水下多通道信号采集传输阵列系统环路的自诊断方法 |
CN113589006A (zh) * | 2021-07-30 | 2021-11-02 | 宁波三星医疗电气股份有限公司 | 一种电能表运行时钟控制方法 |
CN115801165A (zh) * | 2022-09-29 | 2023-03-14 | 成都赛力斯科技有限公司 | 一种车载控制器的时间同步方法、系统、设备和介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100440193C (zh) * | 2002-12-05 | 2008-12-03 | 亮标公司 | 数据处理系统的引擎装置以及相应的数据处理系统和方法 |
CN1983920B (zh) * | 2006-04-11 | 2010-08-25 | 华为技术有限公司 | 混合传输系统和混合传输系统的信号处理方法 |
CN100518146C (zh) * | 2006-11-09 | 2009-07-22 | 华中科技大学 | 一种用于集群存储系统的全局缓存管理的方法 |
-
2007
- 2007-09-11 CN CN2007101544718A patent/CN101119192B/zh not_active Expired - Fee Related
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9641268B2 (en) | 2012-09-28 | 2017-05-02 | Huawei Technologies Co., Ltd. | Method, system and device for synchronizing clocks |
CN103716106A (zh) * | 2012-09-28 | 2014-04-09 | 华为技术有限公司 | 时钟同步方法、系统及设备 |
CN103716106B (zh) * | 2012-09-28 | 2017-08-29 | 华为技术有限公司 | 时钟同步方法、系统及设备 |
CN103746625B (zh) * | 2013-11-19 | 2016-02-03 | 广东威灵电机制造有限公司 | 电机控制系统中微处理器的系统时钟故障检测方法 |
CN103746625A (zh) * | 2013-11-19 | 2014-04-23 | 广东威灵电机制造有限公司 | 电机控制系统中微处理器的系统时钟故障检测方法 |
CN104796213B (zh) * | 2015-03-19 | 2017-04-26 | 南京科远自动化集团股份有限公司 | 一种多重冗余控制器的时钟同步控制系统及方法 |
CN104796213A (zh) * | 2015-03-19 | 2015-07-22 | 南京科远自动化集团股份有限公司 | 一种多重冗余控制器的时钟同步控制系统及方法 |
CN106921457A (zh) * | 2015-12-28 | 2017-07-04 | 北京东土科技股份有限公司 | 基于sdh网络实现时钟同步的方法及装置 |
CN106921457B (zh) * | 2015-12-28 | 2018-09-11 | 北京东土科技股份有限公司 | 基于sdh网络实现时钟同步的方法及装置 |
CN105629107A (zh) * | 2015-12-30 | 2016-06-01 | 北京四方继保自动化股份有限公司 | 一种厂站时钟同步故障在线监测方法 |
CN105629107B (zh) * | 2015-12-30 | 2018-08-31 | 北京四方继保自动化股份有限公司 | 一种厂站时钟同步故障在线监测方法 |
CN108885433A (zh) * | 2016-03-24 | 2018-11-23 | Wago管理有限责任公司 | 安全控制装置和用于运行安全控制装置的方法 |
CN106559604A (zh) * | 2016-12-05 | 2017-04-05 | 北京空间机电研究所 | 一种双视频处理器同步成像的实现方法 |
CN106559604B (zh) * | 2016-12-05 | 2019-06-18 | 北京空间机电研究所 | 一种双视频处理器同步成像的实现方法 |
CN108628668A (zh) * | 2017-03-21 | 2018-10-09 | 北京京东尚科信息技术有限公司 | 一种多倒计时任务调度系统、方法、电子设备和储存介质 |
CN108628668B (zh) * | 2017-03-21 | 2021-01-26 | 北京京东尚科信息技术有限公司 | 一种多倒计时任务调度系统、方法、电子设备和储存介质 |
CN109039519A (zh) * | 2018-09-12 | 2018-12-18 | 杭州晨晓科技股份有限公司 | 一种时钟同步方法及同步系统 |
WO2020052298A1 (zh) * | 2018-09-12 | 2020-03-19 | 中兴通讯股份有限公司 | 时钟、时间同步方法、装置以及多路由器系统 |
CN110782709A (zh) * | 2019-11-04 | 2020-02-11 | 四川九洲空管科技有限责任公司 | 一种民航ads-b地面站系统高精度时钟冗余备份方法 |
CN110782709B (zh) * | 2019-11-04 | 2020-11-03 | 四川九洲空管科技有限责任公司 | 一种民航ads-b地面站系统高精度时钟冗余备份方法 |
CN111106990A (zh) * | 2019-12-30 | 2020-05-05 | 苏州联视泰电子信息技术有限公司 | 一种水下多通道信号采集传输阵列系统环路的自诊断方法 |
CN111106990B (zh) * | 2019-12-30 | 2021-09-14 | 苏州联视泰电子信息技术有限公司 | 一种水下多通道信号采集传输阵列系统环路的自诊断方法 |
CN113589006A (zh) * | 2021-07-30 | 2021-11-02 | 宁波三星医疗电气股份有限公司 | 一种电能表运行时钟控制方法 |
CN115801165A (zh) * | 2022-09-29 | 2023-03-14 | 成都赛力斯科技有限公司 | 一种车载控制器的时间同步方法、系统、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN101119192B (zh) | 2010-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101119192B (zh) | 一种时钟同步方法和系统 | |
CN101345663B (zh) | 心跳检测方法和心跳检测设备 | |
US5452443A (en) | Multi-processor system with fault detection | |
US7487377B2 (en) | Method and apparatus for fault tolerant time synchronization mechanism in a scaleable multi-processor computer | |
EP2226700B1 (en) | Clock supply method and information processing apparatus | |
EP1703395A2 (en) | Multiprocessor system with a management processor | |
US6098143A (en) | Remote server management device | |
JP3445270B2 (ja) | 多重障害時動作可能なフォールトトレラント・クロック | |
CN104079454A (zh) | 一种设备异常检测方法和设备 | |
US6128682A (en) | Method and apparatus for bus isolation | |
US6760849B1 (en) | Event initiation bus and associated fault protection for a telecommunications device | |
US20200065200A1 (en) | Counter circuitry and methods | |
CN109361453A (zh) | 一种otn传送网设备中的主备倒换电路及倒换方法 | |
JP2004334863A (ja) | 順番のある(in−order)キューをドレインする(drain)システムおよび方法 | |
CN103532728A (zh) | 一种对故障dsp芯片复位的方法及装置 | |
CN101627375A (zh) | I2c时钟发生方法和系统 | |
US10014072B2 (en) | Diagnosis method for diagnosing memory, transmission apparatus, and computer-readable recording medium | |
JP3652910B2 (ja) | 装置内状態監視方式 | |
JP3318926B2 (ja) | 時刻同期方式 | |
CN103001789A (zh) | 时钟倒换方法和装置 | |
CN109525350B (zh) | 基于异步串口同步源的模块同步控制方法 | |
JP2001175545A (ja) | サーバシステムおよび障害診断方法ならびに記録媒体 | |
JP2538682B2 (ja) | 基準クロック源自動切替え方式 | |
CN114676001A (zh) | 一种双芯片备份切换电路及切换方法 | |
CN117478492A (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 | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology 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: Huasan Communication Technology Co., Ltd. |
|
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100929 Termination date: 20200911 |