一种时钟同步方法和系统的制作方法

文档序号:7662000阅读:94来源:国知局
专利名称:一种时钟同步方法和系统的制作方法
技术领域
本发明涉及通信技术领域,特别是涉及一种多处理装置系统的时钟同步 方法和系统。
背景技术
随着处理系统规模的不断发展,在系统中包含业务模块的数量也越来越 多,例如业务处理模块、主控模块等,通常这些业务模块都拥有独立的时钟 单元,为上述业务模块单独提供时钟。由于各个业务模块所采用的时钟均来 自其模块内部,因此常常会产生业务模块之间时钟不同步的问题。然而在一 些比较重要的场合,比如数据存储系统,系统中的信息数据是对时间特性非 常敏感性的,例如数据本身的生效时间、数据间的相对时间等数据,如果各 个业务模块之间的时钟不能够同步,将会对上述数据的记录和保存造成混乱。 因此系统必须采用 一种有效的方法来保证多个业务单元间的时钟同步,保证 不同业务模块之间数据时间的相对性。现有技术中通常采用在系统中设置一个统一的系统时钟源,该系统时钟 源为所有业务模块提供时钟,从而保证各个业务模块时钟的一致性。如图1 所示,为现有技术中采用统一系统时钟源的多模块系统架构图。图1中每个Node均为一个独立的处理单元,可以拥有独立的时钟单元,MCA (Manage Control Adapter,管理控制适配器)为整个系统的管理;f莫块,用于实现对整个 系统的管理,并由MCA产生统一的系统时钟源为各个业务模块提供时钟。由 MCA1和MCA2分别生成时钟1和时钟2,然后分别连接到整个系统的所有 Node上,对于所有的Node来说,时钟1和时钟2均是本地模块的输入时钟, 系统通过管理协商,决定采用其中一个作为整个系统的主时钟,另外一个作 为备份时钟,当主时钟出现故障时,由备份时钟保证系统的同步,如果主、 备时钟均出现故障,则每个Node才可以采用本地时钟单元的时钟。 在使用上述方法时,至少存在如下问题现有4支术中的系统时钟对 MCA的依赖性非常大,当系统中有多个业务模块时,为了保持系统时钟一 致性,需要配套至少一个MCA模块。2、现有技术中在有多个MCA为系 统提供时钟时,需要采用软件协商的方式确定主时钟,特别是在主时钟出 现故障时也需要通过采用软件协商从备用时钟中挑选主时钟,因为软件协 商需要上报系统处理器进行处理,因此从系统时钟故障到系统时间恢复需 要较长时间,从而导致因此产生的时间延迟不可忽略。发明内容本发明提供一种时钟同步方法和系统,以实现包括多个处理装置的系 统中的时钟同步。为达到上述目的,本发明提供一种时钟同步方法,用于包括多个处理装 置的网络存储控制系统中不同装置间的时钟同步,包括如下步骤所述网络存储控制系统的多个处理装置使用其中一个处理装置的本地时 钟作为同步时钟源进行时钟同步;;险测到所述同步时钟源无效时,从其他所述处理装置选择另一处理装置 的本地时钟作为新的同步时钟源。其中,所述4企测到同步时钟源无效的方法具体为在预先设定的时间内,检测到所述同步时钟源的时钟信号状态始终无变化。其中,所述在预先设定的时间内同步时钟源的时钟信号状态始终无变化 的方法具体为所述处理装置在本地运行一定时器,所述定时器的设定时间大于所述同 步时钟源的时钟信号的半周期,小于所述同步时钟源的时钟信号的一个周期;所述同步时钟源的时钟信号的信号状态发生变化时,所述定时器清零; 所述定时器到达所述设定时间时,判断为所述同步时钟源的时钟信号状态无 变化,所述同步时钟源无效。其中,所述^"测到同步时钟源无效时,其他所述处理装置通过仲裁输出 的方法,选择另 一处理装置的本地时钟作为新的同步时钟源。其中,所述其他处理装置通过仲裁输出选择另一处理装置的本地时钟作为新的同步时钟源的步骤具体包括检测到所述同步时钟源无效的每一处理装置,输出本地时钟用于驱动所 述同步时钟源;所述每一处理装置在输出本地时钟后,判断以所述本地时钟驱动所述同 步时钟源是否成功;所述每一处理装置在所述判断结果为驱动成功时,继续输出本地时钟用 于驱动所述同步时钟源;否则停止输出本地时钟并获取所述同步时钟源。其中,所述判断以本地时钟驱动所述同步时钟源的时钟信号是否成功的 方法具体为检测到本地时钟信号的上升沿时,检测所述同步时钟源的信号状态是否 为高,若为高则判断为驱动成功,否则判断为驱动失败。其中,所述多个处理装置使用其中一个处理装置的本地时钟作为同步时 钟源进行时钟同步的步骤后还包括所述多个处理装置实时或定时对本地时钟进行自检,发现本地时钟无效 时,正在以本地时钟驱动所述同步时钟源的处理装置停止输出本地时钟;其 他处理装置不输出本地无效时钟用于驱动所述同步时钟源。本发明还提供一种时钟同步方法,用于包括多个处理装置的网络存储控 制系统中任一处理装置与其他处理装置间的时钟同步,包括如下步骤检测同步时钟源是否有效;所述同步时钟源有效时,获取所述同步时钟源用于与其他处理装置间的 时钟同步;所述同步时钟源无效时,输出本地时钟用于驱动所述同步时钟源,并判 断以所述本地时钟驱动所述同步时钟源是否成功;若成功则继续输出本地时 钟用于驱动所述同步时钟源;否则停止输出本地时钟并获取所述同步时钟源。其中,所述检测同步时钟源是否有效的方法具体为在预先设定的时间内,所述同步时钟源的时钟信号状态交替变化时,所
述同步时钟源有效,否则所述同步时钟源无效。本发明还提供一种时钟同步系统,用于包括多个处理装置的网络存储控制系统中,不同装置间的时钟同步,包括第一处理装置,用于使用其本地时钟作为同步时钟源进行所述系统中不同装置间的时钟同步;至少一个其他处理装置,^r测到所述第一处理装置的同步时钟源无效时, 通过仲裁输出选择另一处理装置的本地时钟作为新的同步时钟源。其中,所述第一处理装置和其他装置进一步包括本地时钟单元,用于生成本地时钟并向处理单元发送,以在需要时以 所述本地时钟驱动系统的同步时钟源;处理单元,用于在发现系统的同步时钟有效时,通知接口单元读入同 步时钟,并发送到同步时钟单元用于时钟的同步;在发现系统的同步时钟 无效时,将所述本地时钟单元产生的本地时钟向接口单元输出用于驱动系 统的同步时钟源;判断驱动失败时,中断所述本地时钟的输出,否则继续 输出本地时钟;接口单元,用于接收到所述处理单元发送的本地时钟时,以所述本地 时钟驱动系统的同步时钟源;并获取同步时钟发送到所述处理单元,用于 驱动本地同步时钟;同步时钟单元,用于接收所述处理单元发送的同步时钟,进行时间的 同步。其中,所述处理单元进一步包括同步时钟检测子单元,用于检测所述接口单元获取的系统的同步时钟地时钟,否则通知输出子单元;输出子单元,用于在所述同步时钟检测子单元判断系统的同步时钟无 效时,将所述本地时钟单元产生的本地时钟向所述接口单元发送用于驱动 系统的同步时钟源;驱动判决子单元,用于将所述本地时钟发送到所述接口单元用于尝试
驱动系统的同步时钟源时,判断所述驱动是否成功,若失败则中断所述本
地时钟的输出;否则继续输出本地时钟。
其中,所述同步时钟检测子单元进一步包括
定时器模块,用于对所述同步时钟源的时钟信号的信号状态进行计时, 所述定时器的设定时间大于所述同步时钟源的时钟信号的半周期,小于所述 同步时钟源的时钟信号的一个周期;到达所述设定时间时,判断为所述同步 时钟源无效; 、
同步时钟源状态检测模块,用于检测到所述同步时钟源的时钟信号的信 号状态发生变化时,将所述定时器模块中的定时器清零。
其中,所述驱动判决子单元进一步包括
本地信号检测模块,用于在所述输出子单元使用本地时钟驱动系统的 同步时钟源时,检测本地时钟信号的上升沿并通知所述驱动判决模块;
驱动判决模块,用于所述本地信号检测模块检测到本地时钟信号的上升 沿时,检测所述同步时钟源的信号状态是否为高,若为高则判断为驱动成功, 否则判断为驱动失败。
其中,所述第一处理装置和其他装置还包括
自斗企单元,与所述处理单元和接口单元连接,用于对所述处理单元向 所述接口单元发送的本地时钟进行自检,发现所述本地时钟无效时,停止 将所述本地时钟输出到所述接口单元,以避免所述无效的本地时钟去驱动 同步时钟源。
其中,所述自检单元进一步包括
自检定时器子单元,用于对所述本地时钟信号的信号状态进行计时,所 述定时器的设定时间大于所述本地时钟信号的半周期,小于所述本地时钟信 号的一个周期;到达所述设定时间时,判断为所述本地时钟无效;
本地时钟状态检测子单元,用于检测到所述本地时钟信号的信号状态发 生变化时,将所述自检定时器模块中的定时器清零。
本发明的技术方案具有以下优点
采用硬件检测方法检测系统同步时钟的有效性,实现了时钟源的仲裁,
方法简单且实时性好。另外,在检测到系统时钟出现故障时,通过硬件仲裁 的方法选取其中 一个处理单元内部的时钟作为主时钟源为整个系统提供同步 时钟,从故障中恢复所需的时间很短。


图1是现有技术中采用统一系统时钟源的多模块系统架构图2是本发明中各Node的时钟同步系统架构示意图3是本发明中Node启动时的时钟同步方法流程图4是本发明中Node对时钟clk进行实时信号监控的方法流程图6是本发明中的应用场景中时钟同步方法流程图; 图7是本发明中的处理装置的结构示意图; 图8是本发明中的处理装置的另一结构示意图。
具体实施例方式
下面结合附图和实施例,对本发明的具体实施方式
作进一步详细描述 本发明中,无需MCA进行网络存储控制系统时钟时间的同步管理,各 个Node都使用同一个时钟clk,该时钟clk是由各个Node中的某一个Node 输出的。同时每个Node也拥有独立的本地时钟单元。对于^f吏用本地的时 钟输出时钟elk用于系统同步的Node来说,时钟clk既是输出信号,也是 输入信号。对于其他使用时钟elk的Node来说,时钟elk只是输入信号。 Node对于其他使用本发明中各Node的时钟同步系统架构如图2所示。
因各个Node的结构以及处理逻辑相同,因此以下只具体的描述一个 Node的时钟同步处理方法。其中,以时钟clk表示系统公用的同步时钟信 号,以local—elk表示该Node本地的时钟信号。需要说明的是,对于每一 个Node,其内部一般有高频和低频两种时钟信号,高频时钟信号一般用来 计数,低频信号一般用来作为本地的时钟信号local—clk。 一般情况下,各 个Node内部的低频时钟的频率彼此相同,高频时钟的频率也彼此相同,
而系统公用的时钟信号clk也是低频信号。
以下首先对Node启动时的时钟同步方法进行描述。如图3所示,包 括如下步骤
步骤s301、 Node启动时,判断时钟elk是否已经有效,有效时进行步 骤s305,否则继续步骤s302。
Node启动时,系统的同步时钟clk可能已经有效存在,即已经由某一 其他Node的本地时钟所驱动,因此需要首先对时钟elk的有效性进行判断。 时钟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由本地的1ocaLclk驱动
时,时钟clk即本地的local—clk。
Node获得了时钟clk后,还需要对该时钟clk进行实时信号监控,以
便在时钟clk有故障发生时,能够及时发现并根据预设的逻辑进入仲裁输
出。而对于使用本地时钟local_clk驱动时钟elk的Node,在本地时钟 local—elk发生故障时,该Node会根据本身的自检机制停止以本地时钟 local—elk驱动时钟clk。对于该自检机制,将在下文进行详细描述。Node 对时钟clk进行实时信号监控的步骤如图4所示,包括如下步骤 步骤s401 、检测到时钟elk的信号边沿。
检测到时钟clk的信号边沿时,说明时钟clk的信号有效。因此,每一 次检测到时钟clk的信号边沿,都直接重新开始本监控流程。
步骤s402、将计数器Counter清零,记录当前时钟elk的状态s0。
该计数器Counter的值是通过Node的本地高频时钟进行计数的,记录 的当前时钟的状态s0为0或1 。
步骤s403、以自身高频时钟进行计数。
可以以每一次上升沿或下降沿作为一次计数,也即每经过一个高频时 钟的周期,计数加1。
步骤s404、判断计数是否超过预设值,未超过时返回上一步骤s403, 超过时进行步骤s405。
该预设的门限值与本地高频时钟及本地低频时钟(即local—elk)的关 系有关,具体的,考虑到时钟信号的占空比一般为50%,因此该预设值可 以设置为1/2个本地低频时钟周期和1个本地低频时钟周期之间,即经过 该门限值的时间后,时钟elk的状态应该发生变化。以高频时钟的频率是 低频时钟的1000倍为例,该计数器可以设置在500 ~ 1000之间,即1/2个 本地低频时钟周期和1个本地低频时钟周期之间。
步骤s405、获取时钟elk的当前状态,判断时钟elk的当前状态是否 与sO相同。相同时进行步骤s406,否则进行步骤s402。
若相同,说明经过了该预设值的时间后,时钟clk的状态未发生变化, 可以判断为时钟clk出现了故障。
步骤s406、判断时钟elk出现故障。
步骤s407、进入仲裁输出流程。
出现故障时,Node上执行的仲裁输出流程如图5所示,包括以下步骤
步骤s501、检测到时钟elk出现故障。
步骤s502、以本地时钟local—elk作为时钟elk输出。
在以本地时钟local—elk作为时钟elk丰t出时,还需要对本地时钟
local一clk预先进行自检,自检通过时才可以将本地时钟local—elk作为时钟
clk输出,该自检的机制将在下文进行详细描述。
步骤s503、判断本地时钟local—elk是否出现上升沿,若出现则进行步
骤s504,否则重复本步骤直至检测到上升沿,以进行步骤s504。
等待本地时钟local_clk的上升沿,作为驱动时钟clk是否成功的条件。 步骤s504、读取时钟clk的状态。
步骤s505、判断时钟clk的状态是否为高,不是则进行步骤s506,否 则进行步骤s507。
检测到本地时钟local—elk的上升沿后,若时钟elk的状态也为高,说 明本地时钟local—clk对时钟elk的驱动成功;若时钟elk的状态不为高, 说明其他Node正在尝试驱动clk,因此放弃驱动。需要说明的是,在有的 Node对时钟clk的驱动为高、有的Node对时钟elk的驱动为低的情况下, 时钟clk的信号为低。
步骤s506、撤销以本地local—elk驱动时钟clk,从背纟反时钟信号线上 取用时钟elk作为同步时钟并结束。
步骤s507、持续以本地时钟local—elk作为时钟clk输出并结束。
上述各步骤中,涉及到了 Node对于本地时钟local_dk进行自检的过 程,自4全的目的在于,当Node以本地时钟local—elk驱动所有Node用于同 步时间的时钟clk时,若发现本地时钟local—elk出现故障,即停止对时钟 clk的驱动;或当发现本地时钟local—elk出现故障时,不尝试用该出现故 障的本地时钟local—elk去驱动所有Node用于同步时间的时钟clk。该自检 机制的实现方法很多,如将本地时钟local—elk经过RC电路变换后,与预 设的参考电压进行比较,高于该参考电压时即为local—clk正常,否则判断 为该local—elk出现故障。
以下通过一个具体的应用场景,描述本发明的实施方式。
假设系统中包括NodeO、 Node 1以及Node2三个处理单元。其中,以 Node0的本地时钟local—clk0 (图中未画出)作为系统时钟elk的驱动源给 所有Node提供时钟信号。对于该NodeO来讲,local—clkO为输出信号,同 时也是本地同步时间elk的输入;而Nodel和Node2均处于备份状态,elk (即local—clkO)是输入信号,用该信号作为本地Node同步时间elk的输 入,这样4呆i正整个系统的时钟同步。其中Nodel和Node2在"f吏用clk信号 的同时,实时监控该clk信号,以便当elk出现时进行仲裁,切换系统时钟 源。以下假设NodeO、 Nodel以及Node2中所使用的本地时钟local—clkO、 本地时钟local—clkl和本地时钟local—clk2的频率均为33KHz,而内部用于 计数的高频时钟为33MHz。
如图6所示,Nodel和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清零。因此Nodel和Node2不会检测到时钟clk出现 故障。
当NodeO的时钟驱动源local—clkO出现故障时(图中未画出),使得 clk无信号,处于常高状态。如图6所示,在clk的上升沿或者下降沿,如 图中的A点都会使Node的counter计数器清零,如果clk正常,则在B点 应该出现如虚线所示的下降沿,但是实际上并没有,也即clk出现故障, 计数器没有被正常清零。当Nodel和Node2计数器计数到750,如图中C 点,而且clk没有变化,则认为时钟源出现故障,所有检测到该故障的Node 均把自身的内部33KHz信号当作时钟源输出。由于Nodel和Node2的本 地时钟local—clkl和local—clk2存在时间差异,因此在C点,clk信号被Node 1 的本地时4t local—clkl驱动为0;随后,Node2的本地时钟local—clk2的信
号也为低,因此Node2也驱动clk为0。在D点,Nodel的本地时钟local—clkl 出现上升沿时,Nodel试图把elk驱动为高,但是由于Node2的本地时钟 local—clk2还在驱动为低,因此Nodel 4佥测到clk仍然为低,说明还有别的 Node在驱动clk,因此Nodel放弃驱动。同样,Node2的本地时钟local—clk2 出现上升沿时,Node2试图把clk驱动为高,读取clk信号后发现clk信号 确实为高,因此确认clk确实受Node2的本地时钟local—clk2驱动,这样 就实现了对同步时钟clk的输出仲裁。整个系统的最后由Node2的33K本 地时钟local—clkl作为时钟源;如果还有更多的Node时,仲裁方法不变, 也即把clk信号拉低并最后释放的Node胜出。
通过以上描述的方法,采用硬件检测方法检测系统同步时钟的有效性, 实现了时钟源的仲裁,方法简单且实时性好。另外,在检测到系统时钟出现 故障时,通过^5更件仲裁的方法选取其中 一个处理单元内部的时钟作为主时钟 源为整个系统提供同步时钟,从故障中恢复所需的时间很短。
本发明还提供一种处理装置,应用于包括多个处理装置的网络存储控制 系统中,安装在每一装置上用于不同装置间的时间同步。
其结构如图7所示,包括本地时钟单元10、处理单元20、自冲企单元 30、接口单元40和同步时钟单元50。
其中,本地时钟单元10,用于生成本地时钟local—clk并向处理单元 20发送,用于在需要时以该本地时钟local_clk驱动系统的同步时钟dk。
处理单元20,用于在发现系统的同步时钟clk有效时,通知接口单元 40读入背板时钟信号线的同步时钟clk,并发送到同步时钟单元50用于时 钟的同步。另外,还用于在发现系统的同步时钟clk无效时,将本地时钟 单元10产生的本地时钟loca1—clk输出到自检单元30,通过自检后尝试驱 动系统的同步时钟clk。判断驱动失败时,中断向自检单元30发送本地时 钟单元10产生的本地时钟local—clk;否则继续将本地时钟单元10产生的 本地时钟local—clk输出到自检单元30。
自检单元30,用于对处理单元20发送的由本地时钟单元10生成的本 地时钟local—clk进行自检,发现故障时,若正以本地时钟local—clk驱动同
步时间的时钟clk,则停止对时钟clk的驱动;另外,发现故障时,不将本 地时钟local—elk输出到接口单元40,避免尝试用该出现故障的本地时钟 1ocaLclk去驱动时钟clk。该自4企单元30进一步包括自检定时器子单元 31,用于对本地时钟信号local—clk的信号状态进行计时,定时器的设定时间 大于本地时钟信号local—elk的半周期,小于本地时钟信号local—elk的一个周 期;到达设定时间时,判断为所述本地时钟local—elk无效;本地时钟状态检 测子单元32,用于检测到本地时钟信号local—elk的信号状态发生变化时,将 自检定时器子单元31中的定时器清零。即在半周期时应检测到信号 local一clk的交替变化,此时将自检定时器子单元31清零,若没有变化则会 导致自检定时器子单元31到达预设值,判断为本地时钟信号local—elk无效。 接口单元40,用于接收到自^r单元30发送的由本地时钟单元10生成 的本地时钟local—elk时,尝试用该本地时钟local—elk去驱动时钟clk,另 外,从背板时钟信号线获取时钟clk并发送到处理单元20,用于驱动本地 同步时钟。同步时钟单元50,用于接收处理单元20发送的时钟clk,作为同步时 钟进行时间的同步。其中,处理单元20进一步包括同步时钟4全测子单元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无效或出 现故障时,将本地时钟单元IO产生的本地时钟local—elk向自检单元30发 送,用于通过自检后尝试驱动系统的同步时钟clk。驱动判决子单元23,用于当本单元将本地时钟单元IO产生的本地时 钟local—elk发送到自检单元30用于尝试驱动系统的同步时钟elk时,判断 驱动是否成功,若驱动失败则中断向自检单元30发送本地时钟单元10产 生的本地时钟local—elk;否则继续将本地时钟单元10产生的本地时钟 local—elk输出到自检单元30。驱动判决子单元23进一步包括本地信号 检测模块231,用于在输出子单元22使用本地时钟local_clk驱动系统的同 步时钟源elk时,检测本地时钟信号的上升沿local一clk并在检测到时通知驱 动判决模块232;驱动判决模块232,用于当本地信号检测模块231检测到 本地时钟信号local—elk的上升沿时,检测同步时钟源elk的信号状态是否为 高,若为高则判断为驱动成功,否则判断为驱动失败。驱动失败的原因可能 为其他装置正在尝试以本地时钟信号驱动时钟源。本发明中处理装置的一具体实现方式如图8所示。其中,本地时钟单元10生成local一clk并发送到处理单元20,处理单元 将该local—elk发送到自4企单元30和控制单元52,控制单元52在接口 B的输 入为0时将local—elk输出到漏极输出(OD)单元53。其中,接口 B的输入 是由OR单元51控制的。具体的,当处理单元20判断需要向接口单元发送 local一clk时,通过接口 A向OR单元51发送代表0的低电平信号,本地时钟 单元10生成local—elk经过自检单元30的检测后,自检单元30判断local—elk 无故障时,向OR单元51发送代表0的低电平信号,只有OR单元51的两个 输入都为低电平时,OR单元51才向控制单元52的接口 B发送代表0的低电 平信号,控制单元52打开,将local—elk通过OD单元53向接口单元40发送。 当处理单元20判断使用local—elk驱动elk失败时,将接口 A输出的信号调整 为代表1的高电平信号,或自检单元30发现local—elk存在故障、输出代表1 的高电平信号时,控制单元52关闭,停止local—elk的输出。而接口单元40 将接收到的elk通过处理单元20发送到同步时钟单元50用于时钟同步。
本发明还提供一种网络存储控制系统,包括若干上述图7或图8所描述的处理装置。其中存在一个第一处理装置,使用其本地时钟作为同步时钟源 进行系统中不同装置间的时钟同步。该存在至少一个其他处理装置,;险测到 上述第一处理装置的同步时钟源无效时,通过仲裁输出选择另 一处理装置的本地时钟作为新的同步时钟源。对于各处理装置的结构,与上述图7或图8 所描述的结构完全相同,在此不进^f亍重复描述。通过以上描述的装置和系统,采用硬件检测系统同步时钟的有效性,实 现了时钟源的仲裁。另外,在4企测到系统时钟出现故障时,通过/更件仲裁的 方法选取其中 一个处理单元内部的时钟作为主时钟源为整个系统提供同步时 钟,从故障中恢复所需的时间很短。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的 普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进 和润饰,这些改进和润饰也应^L为本发明的保护范围。
权利要求
1、一种时钟同步方法,用于包括多个处理装置的网络存储控制系统中不同装置间的时钟同步,其特征在于,包括如下步骤所述网络存储控制系统的多个处理装置使用其中一个处理装置的本地时钟作为同步时钟源进行时钟同步;检测到所述同步时钟源无效时,从其他所述处理装置选择另一处理装置的本地时钟作为新的同步时钟源。
2、 如权利要求1所述时钟同步方法,其特征在于,所述检测到同步时钟 源无效的方法具体为在预先设定的时间内,检测到所述同步时钟源的时钟信号状态始终无变化。
3、 如权利要求2所述时钟同步方法,其特征在于,所述在预先设定的时 间内同步时钟源的时钟信号状态始终无变化的方法具体为所述处理装置在本地运行一定时器,所述定时器的设定时间大于所述同 步时钟源的时钟信号的半周期,小于所述同步时钟源的时钟信号的一个周期;所述同步时钟源的时钟信号的信号状态发生变化时,所述定时器清零; 所述定时器到达所述设定时间时,判断为所述同步时钟源的时钟信号状态无 变化,所述同步时钟源无效。
4、 如权利要求1所述时钟同步方法,其特征在于,所述一企测到同步时钟 源无效时,其他所述处理装置通过仲裁输出的方法,选择另一处理装置的本 地时钟作为新的同步时钟源。
5、 如权利要求4所述时钟同步方法,其特征在于,所述其他处理装置通 过仲裁输出选择另 一处理装置的本地时钟作为新的同步时钟源的步骤具体包 括..检测到所述同步时钟源无效的每一处理装置,输出本地时钟用于驱动所 述同步时钟源;所述每一处理装置在输出本地时钟后,判断以所述本地时钟驱动所述同 步时钟源是否成功;所述每一处理装置在所述判断结果为驱动成功时,继续输出本地时钟用于驱动所述同步时钟源;否则停止输出本地时钟并获取所述同步时钟源。
6、 如权利要求5所述时钟同步方法,其特征在于,所述判断以本地时钟 驱动所述同步时钟源的时钟信号是否成功的方法具体为检测到本地时钟信号的上升沿时,检测所述同步时钟源的信号状态是否 为高,若为高则判断为驱动成功,否则判断为驱动失败。
7、 如权利要求1所述时钟同步方法,其特征在于,所述多个处理装置使 用其中一个处理装置的本地时钟作为同步时钟源进行时钟同步的步骤后还包括所述多个处理装置实时或定时对本地时钟进行自检,发现本地时钟无效 时,正在以本地时钟驱动所述同步时钟源的处理装置停止输出本地时钟;其 他处理装置不输出本地无效时钟用于驱动所述同步时钟源。
8、 一种时钟同步方法,用于包括多个处理装置的网络存储控制系统中任 一处理装置与其他处理装置间的时钟同步,其特征在于,包括如下步骤检测同步时钟源是否有效;所述同步时钟源有效时,获取所述同步时钟源用于与其他处理装置间的 时钟同步;所述同步时钟源无效时,输出本地时钟用于驱动所述同步时钟源,并判 断以所述本地时钟驱动所述同步时钟源是否成功;若成功则继续输出本地时 钟用于驱动所述同步时钟源;否则停止输出本地时钟并获取所述同步时钟源。
9、 如权利要求8所述时钟同步方法,所述才企测同步时钟源是否有效的方 法具体为在预先设定的时间内,所述同步时钟源的时钟信号状态交替变化时,所 述同步时钟源有效,否则所述同步时钟源无效。
10、 一种时钟同步系统,用于包括多个处理装置的网络存储控制系统中, 不同装置间的时钟同步,其特征在于,包括第一处理装置,用于使用其本地时钟作为同步时钟源进行所述系统中不 同装置间的时钟同步;其他处理装置,检测到所述第一处理装置的同步时钟源无效时,通过仲 裁输出选择一处理装置的本地时钟作为新的同步时钟源。
11、 如权利要求IO所述时钟同步系统,其特征在于,所述第一处理装置和其他装置进一步包括本地时钟单元,用于生成本地时钟并向处理单元发送,以在需要时以 所述本地时钟驱动系统的同步时钟源;处理单元,用于在发现系统的同步时钟有效时,通知接口单元读入同 步时钟,并发送到同步时钟单元用于时钟的同步;在发现系统的同步时钟 无效时,将所述本地时钟单元产生的本地时钟向接口单元输出用于驱动系 统的同步时钟源;判断驱动失败时,中断所述本地时钟的输出,否则继续 输出本地时钟;接口单元,用于接收到所述处理单元发送的本地时钟时,以所述本地 时钟驱动系统的同步时钟源;并获取同步时钟发送到所述处理单元,用于 驱动本地同步时钟;同步时钟单元,用于接收所述处理单元发送的同步时钟,进行时间的 同步。
12、 如权利要求11所述时钟同步系统,其特征在于,所述处理单元进 一步包括同步时钟检测子单元,用于检测所述接口单元获取的系统的同步时钟 是否有效,若有效则中断向所述接口单元发送所述本地时钟单元产生的本 地时钟,否则通知输出子单元;输出子单元,用于在所述同步时钟检测子单元判断系统的同步时钟无 效时,将所述本地时钟单元产生的本地时钟向所述接口单元发送用于驱动 系统的同步时钟源;驱动判决子单元,用于将所述本地时钟发送到所述接口单元用于尝试 驱动系统的同步时钟源时,判断所述驱动是否成功,若失败则中断所述本 地时钟的输出;否则继续输出本地时钟。
13、 如权利要求12所述时钟同步系统,其特征在于,所述同步时钟检 测子单元进一步包括定时器模块,用于对所述同步时钟源的时钟信号的信号状态进行计时, 所述定时器的设定时间大于所述同步时钟源的时钟信号的半周期,小于所述 同步时钟源的时钟信号的一个周期;到达所述^:定时间时,判断为所述同步 时钟源无效;同步时钟源状态检测模块,用于检测到所述同步时钟源的时钟信号的信 号状态发生变化时,将所述定时器模块中的定时器清零。'
14、 如权利要求12所述时钟同步系统,其特征在于,所述驱动判决子 单元进一步包括本地信号检测模块,用于在所述输出子单元使用本地时钟驱动系统的 同步时钟源时,检测本地时钟信号的上升沿并通知所述驱动判决模块;驱动判决模块,用于所述本地信号检测模块检测到本地时钟信号的上升 沿时,检测所述同步时钟源的信号状态是否为高,若为高则判断为驱动成功, 否则判断为驱动失败。
15、 如权利要求11所述时钟同步系统,其特征在于,所述第一处理装 置和其他装置还包括自检单元,与所述处理单元和接口单元连接,用于对所述处理单元向 所述接口单元发送的本地时钟进行自4企,发现所述本地时钟无效时,停止 将所述本地时钟输出到所述接口单元,以避免所述无效的本地时钟去驱动 同步时钟源。
16、 如权利要求15所述时钟同步系统,其特征在于,所述自检单元进 一步包括自检定时器子单元,用于对所述本地时钟信号的信号状态进行计时,所 述定时器的设定时间大于所述本地时钟信号的半周期,小于所述本地时钟信 号的一个周期;到达所述设定时间时,判断为所述本地时钟无效;本地时钟状态检测子单元,用于检测到所述本地时钟信号的信号状态发 生变化时,将所述自检定时器模块中的定时器清零。
全文摘要
本发明公开了一种时钟同步方法,用于包括多个处理装置的网络存储控制系统中不同装置间的时钟同步,包括如下步骤网络存储控制系统的多个处理装置使用其中一个处理装置的本地时钟作为同步时钟源进行时钟同步;检测到同步时钟源无效时,其他处理装置选择另一处理装置的本地时钟作为新的同步时钟源。本发明还公开了一种时钟同步系统。通过使用本发明,实现了对系统同步时钟的有效性的检测和对时钟源的仲裁,方法简单且实时性好。另外,在检测到系统时钟出现故障时,通过硬件仲裁的方法选取其中一个处理单元内部的时钟作为主时钟源为整个系统提供同步时钟,从故障中恢复所需的时间很短。
文档编号H04L12/26GK101119192SQ20071015447
公开日2008年2月6日 申请日期2007年9月11日 优先权日2007年9月11日
发明者刘介良, 辉 安, 赖守锋 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1