一种多核系统的时间同步方法及系统的制作方法

文档序号:6466111阅读:104来源:国知局
专利名称:一种多核系统的时间同步方法及系统的制作方法
技术领域
本发明涉及多核处理器领域,尤其涉及一种多核系统的时间同步方法 及系统。
背景技术
在单核嵌入式处理器系统中,通常只能运行单个嵌入式操作系统,而 在系统运行中,最关键的系统时钟中断是通过将定时中断时间间隔换算成 具体数值,当内核硬件计数器累加到达时间间隔数值时,向内核提交定时
中断并由处理器重新自动装载计数器来完成;考虑到定时中断发生的间隔 不宜过频,通常系统中设置系统定时中断发生的间隔为10ms 100ms,每 次产生时钟中断时,系统进入定时中断服务程序,累加系统的tick(时钟 滴答,为系统的相对时间单位,来源于定时器的周期性中断, 一次中断表 示一个tick),并进行操作系统任务调度。
在单核处理器中,时钟tick的同步要求不高,例如设定两个软件定时 器,由于时间偏差是相对于一个硬件定时器基准,即使时钟tick中断丢失, 定时器之间的相对间隔并不会发生明显变化,因此不会对业务带来很大的 影响。
然而,在多核处理系统中,随着技术的发展,内核数目不断增加,双 核、四核、八核、十六核成为了各种应用开发的主流,多核多线程技术也 发展迅猛,在未来几年将出现单芯片包含64核甚至更多内核,系统的规模 的扩大使得对系统的时钟同步要求也越来越高。当多核系统运行多个嵌入 式操作系统时,例如每个内核单独运行vxWorks、 Linux等嵌入式操作系统 时,如图1所示,多核系统20中的每个内核10单独通过时钟中断30完成 系统时钟计数功能,由于各内核运行负载不均衡等原因,每个内核上运行 的嵌入式操作系统的系统时钟tick不能保持同步,反而随着系统运行时间 的增加,不同内核的系统时钟tick会出现较大的偏差,由于上层软件定时 器一般基于系统时钟tick设计,所以这种偏差达到一定程度时会严重影响
不同内核间的上层应用软件定时器的精确和同步。例如假设操作系统每个
时钟中断tick为lOms,如果在多个内核上的操作系统同样设置10000个 tick时长的定时器,由于某个内核负载不均衡也会导致该内核上时钟中断 丢失,从而导致tick产生偏差。当不同内核的时钟tick累加偏差正负达 到5个tick即50ms时,这在某些对时间敏感的应用中是无法容忍的。

发明内容
有鉴于此,本发明提供了一种多核系统的时间同步方法及系统,可以 有效实现多核系统的时钟同步,保证系统运行的可靠性和稳定性。 为了解决上述技术问题,本发明采用了如下技术方案 一种多核系统的时间同步方法,包含如下步骤
A、 建立至少一个时钟同步域,将所述多核系统的各个内核分别配属 到各个时钟同步域;
B、 在各个时钟同步域中,选择负载最低的内核作为本时钟同步域的 主时钟同步设备,其他内核为本时钟同步域的从时钟同步设备;以各主时 钟同步设备中负载最低的主时钟同步设备所在时钟同步域为主时钟同步 域,其他时钟同步域为从时钟同步域;
C、 主时钟同步域向各从时钟同步域发送同步偏差检测消息,计算各 从时钟同步域与主时钟同步域的时间偏差值;
D、 当所述时间偏差值大于允许偏差,主时钟同步域计算出各从时钟 同步域的时间调整量并向各从时钟同步域发布,各从时钟同步域根据各自 的时间调整量进行调整,完成时钟同步。
进一步的,所述步骤B中还包括如下处理在各个时钟同步域中,选 择负载次低的内核作为本时钟同步域的备时钟同步设备,当主时钟同步设 备的内核负载高于备时钟同步设备的内核负载,或主时钟同步设备发生异 常,发生主备倒换。
优选的,所述步骤C具体包括如下处理
Cl、将主时钟同步域与各从时钟同步域构建成环形同步网络,各从时
钟同步域向主时钟同步域注册;
C2、主时钟同步域发送同步偏差检测消息,同步偏差检测消息按各从
时钟同步域的注册顺序流经各从时钟同步域后返回主时钟同步域,各从时 钟同步域向同步偏差检测消息返回各自的相对时间偏差,所述相对时间偏 差为每一从时钟同步域相对同步偏差检测消息流向的上一个从时钟同步域 的时间偏差;
C3、主时钟同步域根据返回的同步偏差检测消息计算各从时钟同步域
与主时钟同步域的时间偏差值。
其中,所述步骤C中,主时钟同步域向各从时钟同步域发送同步偏差 检测消息采用定时发送方式。
进一步的,所述步骤D还包括如下处理
对每一从时钟同步域的时间调整量绝对值在预定次数范围内进行加权
平均计算;
通过所述加权平均计算结果确定各从时钟同步域优先级别;
按内核应用的时间精度使各从时钟同步设备在各从时钟同步域之间进 行调整,将时间精度要求高的从时钟同步设备调整到优先级高的从时钟同 步域,将时间精度要求低的从时钟同步设备调整到优先级低的从时钟同步域。
更进一步的,如果新增内核,将新增内核加入到对应优先级的时钟同 步域,如果新增内核数量超过对应优先级的时钟同步域的设备容纳门限值, 将该时钟同步域进行拆分。
所述的时间同步方法,内核负载按如下方式计算-.
确定内核负载计算关联因子,所述内核负载计算关联因子包括内核当 前占用率、内核负载历史、内核挂接终端设备类型、内核挂接中断源数量、 内核应用类型;
选择上述内核负载计算关联因子中的至少一种进行加权运算,以加权 运算结果作为内核负载。
所述的时间同步方法,还包括系统时钟tick监测处理 主时钟同步域的主时钟同步设备在每个系统tick间隔内至少对系统
tick采样两次,累加系统tick采样值;
按预定原则判定系统tick是否丢失,如果丢失,修正当前系统tick值。
本发明还公开了一种多核系统的时间同步系统,包括至少一个时钟同
步域,所述多核系统的各个内核分别被配属到各个时钟同步域,在各个时 钟同步域中,负载最低的内核为本时钟同步域的主时钟同步设备,其他内
核为本时钟同步域的从时钟同步设备;各主时钟同步设备中负载最低的主 时钟同步设备所在时钟同步域为主时钟同步域,其他时钟同步域为从时钟 同步域;
所述主时钟同步域用于向各从时钟同步域发送同步偏差检测消息,计 算各从时钟同步域与主时钟同步域的时间偏差值,并在所述时间偏差值大 于允许偏差时,计算出各从时钟同步域的时间调整量并向各从时钟同步域 发布。
所述的时间同步系统,主时钟同步域外接有外部同步源。
本发明在多核系统中划分时间同步区域,由主时钟同步域作为所有时 钟同步域的控制管理域,因而可以均衡系统的处理负载,避免由于运行规 模的增加而导致的系统软件处理延时,调整上层软件定时器随着系统的运 行时间增加导致的偏差,有效实现了多核系统的时钟同步,提高了系统运 行的可靠性和稳定性。


图1是现有多核系统应用示意图2是本发明具体实施方式
的多核系统时间同步区域划分示意图3是本发明具体实施方式
点多核系统的时间同步组网示意图; 图4是本发明具体实施方式
的时钟tick监测示意图5是本发明具体实施方式
的多核系统时间同步方法流程图。
具体实施例方式
下面对照附图并结合具体实施方式
对本发明进行详细说明。
本发明具体实施方式
参见图2至图5,如图2所示,本发明具体实施
方式的时间同步方法主要包括如下步骤
510、 首先划分时钟同步域,将各个内核唯一的划分到各时钟同步域中;
511、 确定主时钟同步域和从时钟同步域,从时钟同步域向主时钟同步 域发送注册消息;
512、 将所有时钟同步域构建成环状网络,由主时钟同步域的主时钟同 步设备定时监测其余时钟同步域的时钟偏差;
513、 需要调整时,主时钟同步域向各个从时钟同步域发布时间调整量, 各从时钟同步域根据发布的时间调整量进行调整;
514、 根据各时钟同步域调整值确定时钟同步域的级别,新增或根据实 际情况需要调整的内核根据需要加入到相应级别的时钟同步域中。
下面对上述步骤进行详细说明
第一步,在多核系统中建立一个或多个时钟同步域,将多核系统中的 每个内核唯一划分到某个时钟同步域当中,在每个时钟同步域确定主时钟 同步设备和从时钟同步设备,进一步的,还可以确定备时钟同步设备,主、 备时钟同步设备互为备份,这样可以提高同步的可靠性。时钟同步域中的 各个内核最初的划分可以在内核间随机划分,也可按照各内核应用的相关 性进行划分。如图3所示,各个内核被划分到时钟同步域130中,时钟同 步域130包括时钟同步域0到时钟同步域N,确定主时钟同步设备100、备 时钟同步设备110和从时钟同步设备120;主、备时钟同步设备保持时钟 同步握手消息,主时钟同步设备100定时向备时钟同步设备110和从时钟 同步设备120同步时钟。
第二步,在每个时钟同步域中,主、备时钟同步设备的确定由系统上 电后竞争获得;主、备时钟同步设备的竞争考虑各内核系统的负载确定, 负载最低的内核作为主时钟同步设备,负载次低的内核作为备用时钟同步 设备,其余的内核为从时钟同步设备;时钟同步域也分主、从时钟同步域, 在所有时钟同步域中,以负载最低的主时钟同步设备所在的时钟同步域作 为主时钟同步域,该主时钟同步域可外接外部同步设备例如高精度RTC时 钟、高精度GPS时钟或高精度振荡器,作为整个时钟同步系统的参考系。 内核负载的计算时,考虑的关联因子包含但不限于内核当前占用率、内核 负载历史、内核挂接的中断设备类型、内核挂接的中断源数量,内核应用 类型等,以这些因子的一种或多种通过相乘一定的加权系数累加得到内核 负载。
主时钟同步域的主时钟同步设备定时采集各从时钟同步域的主时钟同 步设备的负载,并对所有的主时钟同步设备最近N (N为整数)次的负载进 行算数平均计算,N的大小决定了对负载变化的敏感度。如果当前最小负
载的主时钟同步设备与主时钟同步域中的主时钟同步设备不一致时,则切 换主时钟同步域到最小负载的主时钟同步设备所在的时钟同步域,当前主
时钟同步域转变为从时钟同步域;为避免负载变化时导致主时钟同步域的 频繁切换,可以设置主时钟同步域保护时间间隔T1 (秒),在T1时间内禁 止主时钟同步域的再次切换;类似的,在每个时钟同步域内部由主时钟同 步设备负责计算该时钟同步域内的所有时钟同步设备的最近M (M为整数) 次负载算数平均,M的大小决定了对负载变化的敏感度;选择该时钟同步 域内负载最小的时钟同步设备作为主时钟同步设备,可以设置主时钟同步 设备保护时间间隔T2 (秒),在T2时间内禁止该时钟同步域内的主时钟同
步设备的再次切换;进一步的,可以在负载算术平均计算之后,选择该时 钟同步域内负载最小的时钟同步设备作为备时钟同步设备,而后再通过主 备倒换的方式将备时钟同步设备倒换为主时钟同步设备,这样可以使得主 时钟同步设备的变化更加平滑。
第三步,在每个时钟同步域中,主时钟同步设备定时向从时钟同步设 备(包括备时钟同步设备)同步时钟,此外,主、备时钟同步设备定时发 送握手消息,若当前主时钟同步设备的内核负载高于备时钟同步设备的内 核负载,或主时钟同步设备发生异常,则备时钟同步设备变为主时钟同步 设备,原主时钟同步设备转化为备时钟同步设备,并在主备倒换时向主时 钟同步域发送主备倒换消息。为避免主备倒换可能出现的频繁发生,设置 主备倒换保护时间间隔T3 (秒),在T3时间内禁止该时钟同步域内的主用 时钟同步设备的再次切换;
第四步,所有的时钟同步区域可构建一个环形同步网络,主时钟同步 域作为所有时钟同步域的控制管理域,定时发送同步偏差检测消息。其他 各时钟同步域的信息均需在各时钟同步域建立后向主时钟同步域注册,按 照注册先后顺序加入到环形网络的同步链表中;该注册信息包括时钟同步 域中的主、备时钟同步设备信息,同步偏差检测消息在同步链表中依次传 递;如图4所示,在主时钟同步域700中的主时钟同步设备300通过高精 度实时时钟210获取当前系统标准时间,或通过外部振荡计数器200获取 同步要求的时钟精度。主时钟同步域700中的主时钟同步设备300、从时 钟同步域800中的主时钟同步设备400、从时钟同步域900中的主时钟同 步设备500、从时钟同步域1000中的主时钟同步设备600通过构建环形同
步网络,进行各个时钟同步域中的主时钟同步设备之间的同步,主时钟同
步设备300发送同步偏差检测消息,同步偏差检测消息按照环形流向依次 经过主时钟同步设备400、主时钟同步设备500、主时钟同步设备600,最 终返回到主时钟同步设备300,各个主时钟同步设备向同步偏差检测消息 返回各自的时间偏差,主时钟同步设备300检测同步偏差检测消息中携带 的其余时钟同步域中的各主时钟同步设备的时间偏差,确定整个时钟同步 系统是否偏差在允许范围内。
第五步,当同步偏差检测消息按照环形流向依次经过主时钟同步设备 时,假定经过作为主时钟同步设备的内核的个数为M,在同步偏差检测消 息中记录下各主时钟同步设备当前时钟,由于每个内核激活启动时间不一 定相同,不能按照绝对时钟tick数比较各主时钟同步设备,应比较各主时 钟同步设备的相对时间间隔。计算各时间同步偏差的方法为按照同步偏 差检测消息流向,依次记录每个时钟同步域中主时钟同步设备的当前时钟 tick,相对流向上的前一个主时钟同步设备,当前主时钟同步设备的时间 偏差为」Tn (n二O, 1…M-1), JTn二Tn-Tn-1, M为主时钟同步设备数目,Tn 为同步偏差检测消息流向上第n个主时钟同步设备当前系统时钟tick。时 钟偏差从第二次发送同步偏差检测消息开始计算。
第七步,当该同步偏差检测消息回到主时钟同步域时,计算每个时钟 同步域与主时钟同步域700的偏差值,当偏差值大于允许误差时,需要由 主时钟同步域700的主时钟同步设备300对所有时钟同步域的主时钟同步 设备进行修正,并由该主时钟同步设备300发布经过修正后的时间,在下 一个同步偏差检测消息中携带每个时钟同步域中主时钟同步设备所需的调 整量;
第八步,对每个时钟同步域的调整量绝对值在设定的次数范围内进行 加权平均计算,例如可以通过5次调整量绝对值的计算结果来确定该时钟 同步域的优先级别,调整量绝对值的计算结果的数值越小,表示时间精度 要求越高。时间同步域的优先级别与时间精度要求正相关,即时间精度要 求越高,则优先级别越高。当内核应用对时钟精度要求发生变化或激活新 的内核应用时,可根据需要使各从时钟同步设备在不同时钟同步域之间进 行调整;例如将对时间精度不敏感的一组内核应用划分在一个较低优先级 的时钟同步域内,将对时间精度要求较高的一组内核应用划分在较高优先
级的时钟同步域内。当系统中的时钟同步设备增加时,例如系统中由于负 荷升高,需要激活新内核时,考虑该内核应用以及对时钟精度的要求,将 其划分到现有对应级别的时钟同步域中作为从时钟同步设备,当激活的内 核数量增加到超过该级别的时钟同步域可容纳的时钟同步设备门限值时, 则可以拆分对应级别的时钟同步域并发送消息到主时钟同步域,将该时钟 同步域内的主、备时钟同步设备分别作为两个时钟同步域中的主时钟同步 设备,新时钟同步域中的备时钟同步设备在新的时钟同步域内重新竞争获 得,并向主时钟同步域发送注册消息,这样可有效避免由于系统规模扩大 造成的误差。
第九步,主时钟同步区域的主时钟同步设备监测系统时钟tick增加是 否正确,保证每个tick间隔内至少对该内核上运行的操作系统tick数值 采样两次以上,监测tick累加值,发现主时钟同步区域的主时钟同步设备 tick丢失立即更正;丢失判定原则如图5所示,在每个tick间隔内需要
采样两次以上,当采样间隔超过一个tick的累加间隔时,可确认tick丢 失,例如在Cn+l时刻采样tick为k,考虑到软件或中断延时误差,Cn+3、 Cn+4时刻不确认当前tick是否丢失,只记录当前tick采样值,当在Cn+5 时刻采样时,与Cn+1间隔大于1个tick,当监测到tick数值仍未增加时, 确认tick丢失,修正当前主时钟同步设备的tick数值。
本发明具体实施方式
的时间同步系统,包括至少一个时钟同步域,多 核系统的各个内核分别被配属到各个时钟同步域,在各个时钟同步域中, 负载最低的内核为本时钟同步域的主时钟同步设备,其他内核为本时钟同 步域的从时钟同步设备;各主时钟同步设备中负载最低的主时钟同步设备 所在时钟同步域为主时钟同步域,其他时钟同步域为从时钟同步域;
主时钟同步域用于向各从时钟同步域发送同步偏差检测消息,计算各 从时钟同步域与主时钟同步域的时间偏差值,并在所述时间偏差值大于允 许偏差时,计算出各从时钟同步域的时间调整量并向各从时钟同步域发布。
本发明由主时钟同步域作为所有时钟同步域的控制管理域,可以均衡 系统的处理负载,避免由于运行规模的增加而导致的系统软件处理延时, 并可定时调整上层软件定时器随着系统的运行时间增加导致的偏差,有效 实现了多核系统的时钟同步,提高了系统运行的可靠性和稳定性。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说
明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术 领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若 干简单推演或替换,都应当视为属于本发明的保护范围。
权利要求
1.一种多核系统的时间同步方法,其特征在于,包含如下步骤A、建立至少一个时钟同步域,将所述多核系统的各个内核分别配属到各个时钟同步域;B、在各个时钟同步域中,选择负载最低的内核作为本时钟同步域的主时钟同步设备,其他内核为本时钟同步域的从时钟同步设备;以各主时钟同步设备中负载最低的主时钟同步设备所在时钟同步域为主时钟同步域,其他时钟同步域为从时钟同步域;C、主时钟同步域向各从时钟同步域发送同步偏差检测消息,计算各从时钟同步域与主时钟同步域的时间偏差值;D、当所述时间偏差值大于允许偏差,主时钟同步域计算出各从时钟同步域的时间调整量并向各从时钟同步域发布,各从时钟同步域根据各自的时间调整量进行调整,完成时钟同步。
2. 如权利要求1所述的时间同步方法,其特征在于,所述步骤B中 还包括如下处理在各个时钟同步域中,选择负载次低的内核作为本时钟 同步域的备时钟同步设备,当主时钟同步设备的内核负载高于备时钟同步 设备的内核负载,或主时钟同步设备发生异常,发生主备倒换。
3. 如权利要求1所述的时间同步方法,其特征在于,所述步骤C具 体包括如下处理Cl、将主时钟同步域与各从时钟同步域构建成环形同步网络,各从时 钟同步域向主时钟同步域注册;C2、主时钟同步域发送同步偏差检测消息,同步偏差检测消息按各从时钟同步域的注册顺序流经各从时钟同步域后返回主时钟同步域,各从时钟同步域向同步偏差检测消息返回各自的相对时间偏差,所述相对时间偏 差为每一从时钟同步域相对同步偏差检测消息流向的上一个从时钟同步域的时间偏差;C3、主时钟同步域根据返回的同步偏差检测消息计算各从时钟同步域 与主时钟同步域的时间偏差值。
4. 如权利要求l所述的时间同步方法,其特征在于,所述步骤C中, 主时钟同歩域向各从时钟同步域发送同步偏差检测消息采用定时发送方 式。
5. 如权利要求4所述的时间同步方法,其特征在于,所述步骤D还包括如下处理对每一从时钟同步域的时间调整量绝对值在预定次数范围内进行加权平均计算;通过所述加权平均计算结果确定各从时钟同步域优先级别;按内核应用的时间精度使各从时钟同步设备在各从时钟同步域之间进 行调整,将时间精度要求高的从时钟同步设备调整到优先级高的从时钟同 步域,将时间精度要求低的从时钟同步设备调整到优先级低的从时钟同步 域。
6. 如权利要求5所述的时间同步方法,其特征在于,如果新增内核, 将新增内核加入到对应优先级的时钟同步域,如果新增内核数量超过对应 优先级的时钟同步域的设备容纳门限值,将该时钟同步域进行拆分。
7. 如权利要求1所述的时间同步方法,其特征在于,内核负载按如下 方式计算确定内核负载计算关联因子,所述内核负载计算关联因子包括内核当 前占用率、内核负载历史、内核挂接终端设备类型、内核挂接中断源数量、 内核应用类型;选择上述内核负载计算关联因子中的至少一种进行加权运算,以加权 运算结果作为内核负载。
8. 如权利要求1至7任一所述的时间同步方法,其特征在于,所述时 间同步方法还包括系统时钟tick监测处理主时钟同步域的主时钟同步设备在每个系统tick间隔内至少对系统tick采样两次,累加系统tick采样值;按预定原则判定系统tick是否丢失,如果丢失,修正当前系统tick值。
9. 一种多核系统的时间同步系统,其特征在于,包括至少一个时钟同步域,所述多核系统的各个内核分别被配属到各个时钟同步域,在各个时 钟同步域中,负载最低的内核为本时钟同步域的主时钟同步设备,其他内核为本时钟同步域的从时钟同步设备;各主时钟同步设备中负载最低的主 时钟同步设备所在时钟同步域为主时钟同步域,其他时钟同步域为从时钟 同步域;所述主时钟同步域用于向各从时钟同步域发送同步偏差检测消息,计 算各从时钟同步域与主时钟同步域的时间偏差值,并在所述时间偏差值大 于允许偏差时,计算出各从时钟同步域的时间调整量并向各从时钟同步域 发布。
10.如权利要求9所述的时间同步系统,其特征在于,所述主时钟同 步域外接有外部同步源。
全文摘要
本发明公开了一种多核系统的时间同步方法及系统,所述时间同步方法包含如下步骤A.建立至少一个时钟同步域,将各个内核分别配属到各个时钟同步域;B.在各个时钟同步域中,选择负载最低的内核作为本时钟同步域的主时钟同步源,以各主时钟同步源中负载最低的主时钟同步源所在时钟同步域为主时钟同步域,其他时钟同步域为从时钟同步域;C.主时钟同步域向各从时钟同步域发送同步偏差检测消息,计算各从时钟同步域与主时钟同步域的时间偏差值;D.当时间偏差值大于允许偏差,主时钟同步域计算出各从时钟同步域的时间调整量并向各从时钟同步域发布,各从时钟同步域根据各自的时间调整量进行调整。本发明有效解决了多核系统的时间同步问题。
文档编号G06F1/12GK101359238SQ200810142169
公开日2009年2月4日 申请日期2008年9月2日 优先权日2008年9月2日
发明者理 肖, 阳 赵 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1