CN116961808A - 一种时钟同步方法和相关设备 - Google Patents
一种时钟同步方法和相关设备 Download PDFInfo
- Publication number
- CN116961808A CN116961808A CN202210377287.4A CN202210377287A CN116961808A CN 116961808 A CN116961808 A CN 116961808A CN 202210377287 A CN202210377287 A CN 202210377287A CN 116961808 A CN116961808 A CN 116961808A
- Authority
- CN
- China
- Prior art keywords
- synchronized
- host
- link
- clock
- links
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 230000001360 synchronised effect Effects 0.000 claims abstract description 251
- 238000005259 measurement Methods 0.000 claims abstract description 46
- 238000012937 correction Methods 0.000 claims description 116
- 230000001934 delay Effects 0.000 claims description 21
- 230000008878 coupling Effects 0.000 claims description 7
- 238000010168 coupling process Methods 0.000 claims description 7
- 238000005859 coupling reaction Methods 0.000 claims description 7
- 239000000523 sample Substances 0.000 description 32
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
- H04J3/0658—Clock or time synchronisation among packet nodes
- H04J3/0661—Clock or time synchronisation among packet nodes using timestamps
- H04J3/0667—Bidirectional timestamps, e.g. NTP or PTP for compensation of clock drift and for compensation of propagation delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0682—Clock or time synchronisation in a network by delay compensation, e.g. by compensation of propagation delay or variations thereof, by ranging
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
- H04L43/0858—One way delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
- H04L43/0864—Round trip delays
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本申请实施例提供了一种时钟同步方法和相关设备。该方法包括:确定至少两个待同步主机间的N条链路中第n条链路的时延信息和测量时钟偏移,n=1,......,N,N为大于或等于1的正整数;根据第n条链路的时延信息,确定第n条链路的权重;根据N条链路的权重和测量时钟偏移,同步至少两个待同步主机的时钟时间。由于每条链路的时延信息一般不会完全相同,因此确定的每条链路的权重也不会完全相同。该方法可以根据N条链路中每条链路的权重和测量时钟偏移,同步至少两个待同步主机的时钟时间,从而将误差以不同的权重分配到每条链路中,提高多个待同步主机的时钟同步的精确度,降低时钟同步的误差。
Description
技术领域
本申请实施例涉及计算机领域,主要涉及一种时钟同步方法、计算装置、计算设备、芯片系统和计算机可读存储介质。
背景技术
随着高性能计算技术和业务的发展,越来越多的计算业务需要通过多台主机共同完成。在此过程中,需要对多台主机的时钟进行同步,从而为主机间的数据共享、设备协调等功能提供保障。多台主机的时钟同步的基础是两两主机时钟间的精确同步。目前主流的时钟同步方法是发送附有时间戳的包探测方法,例如网络时间协议(network timeprotocol,NTP)、精准时间协议(precision time protocol,PTP)和数据中心时间协议(datacenter time protocol,DTP)协议。包探测方法需要假设两个主机间往返的单向时延相同,然而在包含多台主机的网络中,两两主机间往返的单向时延具有不对称性。单向时延为从第一主机传输数据包至第二主机所需的时间。往返的单向时延的不对称性为从第一主机传输数据包至第二主机所需的时间与从第二主机传输数据包至第一主机所需的时间不相同。因此,在往返的单向时延不对称的场景中,仅使用包探测方法进行时钟同步的精确度较低,产生的误差较大。
如何提高多个主机的时钟同步的精确度,从而降低时钟同步的误差成为亟待解决的问题。
发明内容
本申请实施例提供一种时钟同步方法、计算装置、计算设备、芯片系统和计算机可读存储介质,可以提高多个主机的时钟同步的精确度,从而降低时钟同步的误差。
第一方面,提供了一种时钟同步方法,该方法包括:确定至少两个待同步主机间的N条链路中第n条链路的时延信息和测量时钟偏移;根据第n条链路的时延信息,确定第n条链路的权重;根据N条链路的权重和测量时钟偏移,同步至少两个待同步主机的时钟时间。
其中,n=1,......,N,N为大于或等于1的正整数。时延信息包括往返时间或往返的单向时延之差。第n条链路的测量时钟偏移为第n条链路连接的两个待同步主机的测量时钟偏移。
本申请实施例中,计算设备可以根据每条链路的时延信息,确定每条链路的权重。由于每条链路的时延信息一般不会完全相同,因此确定的每条链路的权重也不会完全相同。计算设备可以根据N条链路中每条链路的权重和测量时钟偏移,同步至少两个待同步主机的时钟时间,从而将误差以不同的权重分配到每条链路中,提高多个待同步主机的时钟同步的精确度,降低时钟同步的误差。
结合第一方面,在第一方面的某些实现方式中,第n条链路的权重与第n条链路的时延信息成反比。
本申请实施例中,计算设备可以为时延信息较大的链路分配较小的权重,从而为时延信息较大的链路分配较大的修正量,降低时钟同步的误差。
结合第一方面,在第一方面的某些实现方式中,确定M个线性独立环路的环路误差;根据M个线性独立环路的环路误差和N条链路的权重,确定N条链路中每条链路的修正量;根据N条链路中每条链路的修正量和测量时钟偏移,同步至少两个待同步主机的时钟时间。
其中,M个线性独立环路中的第m个线性独立环路的环路误差是第m个线性独立环路包括的所有链路的测量时钟偏移之和,m=1,......,M,M<N。N条链路中的每条链路的修正量满足约束条件。
本申请实施例中,计算设备可以根据M个线性独立环路的环路误差和N条链路的权重,将误差按照权重分配给每条链路,从而确定每条链路的修正量。计算设备还可以根据每条链路的修正量和测量时钟偏移,同步至少两个待同步主机的时钟时间,从而提高多个待同步主机的时钟同步的精确度,降低时钟同步的误差。
结合第一方面,在第一方面的某些实现方式中,约束条件包括:第m个线性独立环路包括的所有链路的修正量之和与第m个线性独立环路的环路误差相同,N条链路中每条链路的修正量为使WTΔ2的值为最小值的修正量,其中,WT={w1,......,wN},wN为第N条链路的权重,Δ={Δ1,......,ΔN}T,ΔN为第N条链路的修正量。
本申请实施例中,计算设备可以根据每条链路的权重,为每条链路分配修正量,从而使线性独立环路中每条链路的修正量与该线性独立环路的环路误差相抵消,降低时钟同步的误差。
结合第一方面,在第一方面的某些实现方式中,约束条件还包括:第n条链路的修正量的绝对值小于第n条链路的往返时间。
本申请实施例中,计算设备可以根据第n条链路的修正量与第n条链路的往返时间的大小关系,限定第n条链路的修正量的取值范围,从而便于确定每条链路的修正量,节省计算资源。
结合第一方面,在第一方面的某些实现方式中,确定至少两个待同步主机中的一个主机为参考主机;确定第k个最短路径的实际时钟偏移;将第k个待同步主机的时钟时间调整为第k个待同步主机的时钟时间与第k个最短路径的实际时钟偏移的差值。
其中,第k个最短路径为K个待同步主机中的第k个待同步主机与参考主机间的最短路径,K个待同步主机是至少两个待同步主机中除参考主机以外的主机,k=1,......,K。第k个最短路径的实际时钟偏移为第k个待同步主机与参考主机间的最短路径包括的所有链路的实际时钟偏移之和。第k个最短路径包括的每条链路的实际时钟偏移为每条链路的测量时钟偏移与修正量的差值。
本申请实施例中,计算设备可以根据每条链路的修正量和测量时钟偏移,确定每条链路的实际时钟偏移,还可以确定参考主机、以及每个待同步主机与参考主机间的最短路径的实际时钟偏移。计算设备还可以根据每个待同步主机与参考主机间的最短路径的实际时钟偏移,同步该待同步主机与参考主机的时钟时间,从而提高多个待同步主机的时钟同步的精确度,降低时钟同步的误差。
第二方面,本申请实施例提供一种计算设备,该计算设备包括用于实现第一方面或第一方面的任一种可能的实现方式的单元。
第三方面,本申请实施例提供一种计算设备,该计算设备包括处理器,该处理器用于与存储器耦合,读取并执行该存储器中的指令和/或程序代码,以执行第一方面或第一方面的任一种可能的实现方式。
第四方面,本申请实施例提供一种芯片系统,该芯片系统包括逻辑电路,该逻辑电路用于与输入/输出接口耦合,通过该输入/输出接口传输数据,以执行第一方面或第一方面任一种可能的实现方式。
第五方面,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质存储有程序代码,当该计算机存储介质在计算机上运行时,使得计算机执行如第一方面或第一方面的任一种可能的实现方式。
第六方面,本申请实施例提供一种计算机程序产品,该计算机程序产品包括:计算机程序代码,当该计算机程序代码在计算机上运行时,使得该计算机执行如第一方面或第一方面的任一种可能的实现方式。
附图说明
图1是根据本申请一个实施例的时钟同步系统的示意性系统架构图。
图2是根据本申请一个实施例的时钟同步方法的示意性流程图。
图3是根据本申请一个实施例的根据N条链路的权重和测量时钟偏移进行时钟同步的示意性流程图。
图4是根据本申请一个实施例的3条链路的测量时钟偏移的示意图。
图5是根据本申请一个实施例的计算装置的示意性结构图。
图6是根据本申请一个实施例的计算设备的示意性结构图。
具体实施方式
下面将结合附图,对本申请实施例中的技术方案进行描述。
本申请实施例的技术方案可以应用于包括至少两个主机的网络中,例如局域网、城域网、广域网等。或者,本申请实施例的技术方案还可以应用于包括至少两个主机的集群网络中,本申请实施例对此并不限定。
本申请实施例中的主机包括拥有计算能力的机器设备,例如个人计算机、笔记本电脑、台式电脑、智能手机、服务器、智能芯片等。或者,本申请实施例中的主机可以包括路由器或交换机等,本申请实施例对此并不限定。
为便于理解本申请实施例,首先对本申请中涉及的几个术语做简单说明。
1、单向时延
在网络通信中,单向时延为从第一主机传输数据包至第二主机所需的时间。该第一主机与第二主机间存在通信链路。
2、往返时间(round-trip time,RTT)
在网络通信中,往返时间为从第一主机传输数据包至第二主机的时间、以及从第二主机传输数据包至第一主机的时间之和。在单向时延对称的情况下,往返时间为单向时延的两倍。单向时延对称指的是从第一主机传输数据包至第二主机的时间与从第二主机传输数据包至第一主机的时间相同。在单向时延不对称的情况下,往返时间不等于单向时延的两倍。单向时延不对称指的是从第一主机传输数据包至第二主机的时间与从第二主机传输数据包至第一主机的时间不同。
3、时钟偏移
时钟偏移为两个时钟时间的相对差距,即在同一个时刻两个时钟时间的差值。例如在同一个时刻,第一时钟与第二时钟的时间分别为12:00和12:01,则第一时钟相对于第二时钟的时钟偏移为-1秒,第二时钟相对于第一时钟的偏移为1秒钟。
4、集群网络
集群指的是在一组计算机设备上运行相同的软件并虚拟成主机系统,从而为客户端与应用提供服务。集群网络是用于连接多个相互独立的、通过高速网络互联的计算机设备和存储资源的通信系统。
图1是时钟同步系统100的示意性系统架构图。时钟同步系统为需要进行时钟同步的计算设备组成的系统。时钟同步系统可以包括集群网络或计算机网络中的全部主机,例如图1中的时钟同步系统100包括计算设备110、第一待同步主机120、第二待同步主机130和第三待同步主机140。
或者,时钟同步系统可以包括集群网络或计算机网络中的部分主机,例如时钟同步系统100可以仅包括第一待同步主机120、第二待同步主机130和第三待同步主机140。在此情况下,第一待同步主机120、第二待同步主机130或第三待同步主机140中的任一个待同步主机可以执行计算设备110所执行的步骤或方法。
图2是时钟同步方法的示意性流程图。图2中的时钟同步方法可以由图1中的时钟同步系统100执行。图2中的方法包括如下步骤。
S210,确定至少两个待同步主机间的N条链路中第n条链路的时延信息和测量时钟偏移。
计算设备可以确定至少两个待同步主机间的N条链路中第n条链路的时延信息和测量时钟偏移。其中,第n条链路的时延信息包括第n条链路的往返时间或往返的单向时延之差。第n条链路的测量时钟偏移为测量出的第n条链路连接的两个待同步主机的测量时钟偏移,n=1,......,N,N为大于或等于1的正整数。
可选地,计算设备可以通过与该计算设备连接的其他设备获得该至少两个待同步主机间的N条链路的时延信息和测量时钟偏移。或者,该至少两个待同步主机中的第一待同步主机和第二待同步主机可以相互发送探测包或数据包,计算设备可以根据该探测包或数据包中记录的时间,确定该第一待同步主机与第二待同步主机间的链路的时延信息和测量时钟偏移。该第一待同步主机与第二待同步主机为至少两个待同步主机中的任意两个不相同的待同步主机。
以图1所示的时钟同步系统100为例,计算机设备110可以确定3条链路中的每条链路的时延信息和时钟偏移。例如,计算设备110可以确定第一待同步主机120、第二待同步主机130和第三待同步主机140之间3条链路(如图1所示的链路1、链路2和链路3)中每条链路的时延信息和测量时钟偏移。以链路1为例,链路1的时延信息包括链路1的往返时间或者往返的单向时延之差。
假设第一待同步主机120向第二待同步主机130发送探测包1的时间为t1,第二待同步主机130接收到该探测包1的时间为t2。第二待同步主机130向第一待同步主机120发送探测包2的时间为t3,第一待同步主机120接收到该探测包2的时间为t4。探测包1中可以记录时间t1与t2,探测包2中可以记录时间t3与t4。第二待同步主机130可以将探测包1所记录的时间t1与t2发送给计算设备110,从而使计算设备110获得链路1的单向时延1,该单向时延1=t2–t1。第一待同步主机120可以将探测包2所记录的时间t3与t4发送给计算设备110,从而使计算设备110获得链路1的单向时延2,该单向时延2=t4–t3。链路1的往返时间为单向时延1与单向时延2之和,即链路1的往返时间=t1+t2+t3+t4。链路1的往返的单向时延之差为单向时延1与单向时延2之差,即链路1的往返的单向时延之差=(t2–t1)–(t4–t3)。
可选地,探测包1与探测包2可以为同一探测包3,即探测包3中可以记录时间t1、t2、t3与t4。
在探测包1与探测包2为不同探测包的情况下,计算设备110可以根据该探测包1与探测包2中记录的时间,确定第一待同步主机120与第二待同步主机130的测量时钟偏移。或者,在探测包2与探测包1为同一探测包3的情况下,计算设备110可以根据该探测包3中记录的时间,确定第一待同步主机120与第二待同步主机130的测量时钟偏移。
例如,假设在同一时刻,第一待同步主机120的时钟时间为12:00,第二待同步主机130相对于第一待同步主机120的时钟偏移为X,则第二待同步主机130的时钟时间为12:00+X。根据探测包1与探测包2中记录的时间,可以确定t1+d1=t2-X,t3-X+d2=t4。其中,d1为探测包1通过链路1从第一待同步主机120发送至第二待同步主机130所需的时间,d2为探测包2通过链路1从第二待同步主机130发送至第一待同步主机120所需的时间。根据上式可以确定X=((t2-t1)+(t3-t4)+d2-d1)/2。在往返的单向时延对称的情况下,即d1=d2时,X=((t2-t1)+(t3-t4))/2。
S220,根据第n条链路的时延信息,确定第n条链路的权重。
由于N条链路中每条链路的时延信息并不完全相同,因此可以根据第n条链路的时延信息确定第n条链路的权重,从而可以根据每条链路的权重分配误差,提高至少两个待同步主机的时钟同步的精确度。
计算设备可以根据N条链路中第n条链路的时延信息,确定该第n条链路的权重。该第n条链路的权重与该第n条链路的时延信息成反比。由于N条链路中每条链路的时延信息一般不会完全相同,因此每条链路的权重也不会完全相同。
以图1所示的时钟同步系统100为例,计算设备110可以根据步骤S210获得的链路1的时延信息,确定链路1的权重。其中链路1的权重与链路1的时延信息成反比。
可选地,计算设备可以根据第n条链路的往返时间,确定该第n条链路的权重,该第n条链路的权重与该第n条链路的往返时间成反比。或者,计算设备可以根据第n条链路的往返的单向时延之差,确定该第n条链路的权重,该第n条链路的权重与该第n条链路的往返的单向时延之差成反比。或者,计算设备可以根据第n条链路的往返时间与往返的单向时延之差,确定该第n条链路的权重,该第n条链路的权重与该第n条链路的往返时间与往返的单向时延之差成反比。
例如,第n条链路的权重可以是第n条链路的往返时间的倒数。或者,第n条链路的权重可以是第n条链路的往返的单向时延之差的倒数。或者,第n条链路的权重可以是第n条链路的往返时间与往返的单向时延之差的和的倒数。
例如,假设第n条链路的往返时间为50ms,则第n条链路的权重可以为1/50。或者,第n条链路的权重可以为a/(50),其中a为预设参数。
例如,假设第n条链路的往返的单向时延之差为10ms,则第n条链路的权重可以为1/10。或者,第n条链路的权重可以为b/(10),其中b为预设参数。
例如,假设第n条链路的往返时间为50ms,第n条链路的往返的单向时延之差为10ms,则第n条链路的权重可以为1/(50+10)。或者,第n条链路的权重可以为c/(50+10),其中c为预设参数。
S230,根据N条链路的权重和测量时钟偏移,同步至少两个待同步主机的时钟时间。
计算设备可以根据N条链路的权重和测量时钟偏移,对至少两个待同步主机中的全部或部分主机进行同步。
可选地,计算设备可以根据N条链路,确定M个线性独立环路。线性独立环路为无法拆分出其他环路的环路,即一个线性独立环路中不能包括另一个或多个环路。该M个线性独立环路中的第m个线性独立环路包括N条链路中的至少三条链路,m=1,......,M,M<N。该第m个线性独立环路中包括的所有链路组成一个环路,并且该环路中不包括另一个环路。
以图1所示的时钟同步系统100为例,计算设备110可以根据链路1、链路2与链路3,确定一个线性独立环路。该线性独立环路中包括链路1、链路2和链路3,并且该线性独立环路无法拆分出其他环路。
又例如,假设计算设备110为第四待同步主机,第四待同步主机与第二待同步主机130间的链路为链路4,第四待同步主机与第一待同步主机120间的链路为链路5,第四待同步主机与第三待同步主机140间的链路为链路6,则可以根据该6条链路(即链路1至链路6),确定3个线性独立环路。其中线性独立环路1包括链路1、链路2与链路3,线性独立环路2包括链路1、链路4与链路5,线性独立环路3包括链路2、链路5与链路6。
可选地,计算设备可以根据确定的M个线性独立环路,确定M个线性独立环路的环路误差。该M个线性独立环路中的第m个线性独立环路的环路误差是第m个线性独立环路包括的所有链路的测量时钟偏移之和。计算设备还可以根据M个线性独立环路的环路误差和N条链路的权重,确定N条链路中每条链路的修正量,其中N条链路中的每条链路的修正量满足约束条件。计算设备还可以根据N条链路中每条链路的修正量和测量时钟偏移,同步至少两个待同步主机的时钟时间。具体实现方式可以参见图3的描述。
可选地,N条链路中的每条链路的修正量满足的约束条件包括:第m个线性独立环路包括的所有链路的修正量之和与第m个线性独立环路的环路误差相同,并且N条链路中每条链路的修正量为使WTΔ2的值为最小值的修正量,其中,WT={w1,......,wN},wN为第N条链路的权重,Δ={Δ1,......,ΔN}T,ΔN为第N条链路的修正量。
可选地,N条链路中的每条链路的修正量满足的约束条件还包括:第n条链路的修正量的绝对值小于第n条链路的往返时间。
在同步至少两个待同步主机的时钟时间时,计算设备可以确定至少两个待同步主机中的一个主机为参考主机。计算设备还可以确定第k个最短路径的实际时钟偏移,并将第k个待同步主机的时钟时间调整为第k个待同步主机的时钟时间与第k个最短路径的实际时钟偏移的差值。其中,第k个最短路径为K个待同步主机中的第k个待同步主机与参考主机间的最短路径,K个待同步主机是至少两个待同步主机中除参考主机以外的主机,k=1,......,K。第k个最短路径的实际时钟偏移为第k个待同步主机与参考主机间的最短路径包括的所有链路的实际时钟偏移之和,第k个最短路径包括的每条链路的实际时钟偏移为每条链路的测量时钟偏移与修正量的差值。
可选地,第k个待同步主机与参考主机间的最短路径为第k个待同步主机与参考主机间链路的数量最少的路径。
以图1所示的时钟同步系统100为例,将第一待同步主机120确定为参考主机。根据图1所示的3条链路,可以确定第二待同步主机130与第一待同步主机120间的最短路径为直接连接第二待同步主机130与第一待同步主机120的链路1,而不是经由第三待同步主机140连接第二待同步主机130与第一待同步主机120的路径(即链路2+链路3)。
计算设备可以根据N条链路中第n条链路的时延信息,确定第n条链路的权重。计算设备还可以根据N条链路中每条链路的权重和测量时钟偏移,将误差以不同的权重分配到每条链路中,从而较为精确地同步至少两个待同步主机的时钟时间,降低时钟同步的误差。
图3是根据N条链路的权重和测量时钟偏移进行时钟同步的方法的示意性流程图。图3中的方法可以由图1中的时钟同步系统100执行。图3中的方法包括如下步骤。
S310,确定M个线性独立环路的环路误差。
计算设备可以确定M个线性独立环路的环路误差,该M个线性独立环路中的第m个线性独立环路的环路误差为该第m个线性独立环路包括的所有链路的测量时钟偏移之和,m=1,......,M,M<N。
由于第一待同步主机相对于第二待同步主机的时钟偏移与第二待同步主机相对于第一待同步主机的时钟偏移互为相反数,因此两个待同步主机间的时钟偏移可以表示为带有权值的有向线。第一待同步主机与第二待同步主机为至少两个待同步主机中的任意两个不相同的主机。
以图1所示的时钟同步系统100为例。假设第二待同步主机130相对于第一待同步主机120的测量时钟偏移为20微秒,即第一待同步主机120相对于第二待同步主机130的测量时钟偏移为-20微秒。假设第三待同步主机140相对于第二待同步主机130的测量时钟偏移为-15微秒,即第二待同步主机130相对于第三待同步主机140的测量时钟偏移为15微秒。假设第一待同步主机120相对于第三待同步主机140的测量时钟偏移为5微秒,即第三待同步主机140相对于第一待同步主机120的测量时钟偏移为-5微秒,则3个待同步主机间的3条链路的测量时钟偏移如图4所示。图4中连接两个待同步主机的链路上的箭头用于指示该两个待同步主机间的测量时钟偏移的方向,连接两个待同步主机的链路上的数值用于指示箭头所指的待同步主机相对于箭头尾部的待同步主机的测量时钟偏移的数值。
根据图4中的3个待同步主机间的3条链路,可以确定一个线性独立环路。该线性独立环路包括链路1、链路2和链路3。该线性独立环路的环路误差为链路1、链路2与链路3的测量时钟偏移之和,并且链路1、链路2与链路3上用于指示测量时钟偏移方向的箭头首尾相连。也就是说,该线性独立环路的环路误差为第二待同步主机130相对于第一待同步主机120的测量时钟偏移、第三待同步主机140相对于第二待同步主机130的测量时钟偏移、与第一待同步主机120相对于第三待同步主机140的测量时钟偏移之和,即该线性独立环路的环路误差为20-15+5=10微秒。
在线性独立环路的环路误差为0的情况下,根据线性独立环路中包括的每个链路的测量时钟偏移,同步每个链路所连接的两个待同步主机的时钟时间的精确度较高。在线性独立环路的环路误差不为0的情况下,根据线性独立环路中包括的每个链路的测量时钟偏移,同步每个链路所连接的两个待同步主机的时钟时间的精确度较低。
例如,假设第二待同步主机130相对于第一待同步主机120的测量时钟偏移为10微秒,其他待同步主机间的测量时钟偏移如图4所示。假设第一待同步主机120的时钟时间在第一时刻为12:00,则可以确定第二待同步主机130的时钟时间在第一时刻为12:00+10微秒,第三待同步主机140的时钟时间在第一时刻为12:00-5微秒。在同一时刻,若根据第三待同步主机140的时钟时间、以及第三待同步主机140与第二待同步主机130之间的测量时钟偏移,可以确定第二待同步主机130的时钟时间为12:00+10微秒,即与根据第一待同步主机120的时钟时间、以及第一待同步主机120与第二待同步主机130之间的测量时钟偏移确定的时钟时间一致。也就是说,在线性独立环路的环路误差为0的情况下,线性独立环路中的每条链路的测量时钟偏移没有误差或误差很小。根据每条链路的没有误差或误差很小的测量时钟偏移,对每条链路连接的两个待同步主机进行时钟同步的精确度较高。
例如,假设3个待同步主机间的测量时钟偏移如图4所示。假设第一待同步主机120的时钟时间在第一时刻为12:00,则可以确定第二待同步主机130的时钟时间在第一时刻为12:00+20微秒,第三待同步主机140的时钟时间在第一时刻为12:00-5微秒。在同一时刻,若根据第三待同步主机140的时钟时间、以及第三待同步主机140与第二待同步主机130之间的测量时钟偏移,可以确定第二待同步主机130的时钟时间为12:00+10微秒,即与根据第一待同步主机120的时钟时间、以及第一待同步主机120与第二待同步主机130之间的测量时钟偏移确定的时钟时间不一致。也就是说,在线性独立环路的环路误差不为0的情况下,线性独立环路中存在至少一条链路的测量时钟偏移有误差。根据该至少一条链路的有误差的测量时钟偏移,对该至少一条链路中每条链路连接的两个待同步主机的时钟时间进行同步时的精确度较低。
S320,根据M个线性独立环路的环路误差和N条链路的权重,确定N条链路中每条链路的修正量。
计算设备可以根据M个线性独立环路的环路误差与N条链路的权重,确定N条链路中每条链路的修正量,从而可以根据每条链路的修正量,同步至少两个待同步主机的时钟时间。
可选地,每条链路的修正量可以满足以下约束条件:第m个线性独立环路包括的所有链路的修正量之和与第m个线性独立环路的环路误差相同,并且N条链路中每条链路的修正量为使WTΔ2的值为最小值的修正量,其中,WT={w1,......,wN},wN为第N条链路的权重,Δ={Δ1,......,ΔN}T,ΔN为第N条链路的修正量。
或者,每条链路的修正量可以满足以下约束条件:第m个线性独立环路包括的所有链路的修正量之和与第m个线性独立环路的环路误差的差值小于第一预设阈值,并且N条链路中每条链路的修正量为使WTΔ2的值为最小值的修正量,其中,WT={w1,......,wN},wN为第N条链路的权重,Δ={Δ1,......,ΔN}T,ΔN为第N条链路的修正量。
或者,每条链路的修正量可以满足以下约束条件:第m个线性独立环路包括的所有链路的修正量之和与第m个线性独立环路的环路误差相同,并且N条链路中每条链路的修正量为使WTΔ2的值小于第二预设阈值的修正量,其中,WT={w1,......,wN},wN为第N条链路的权重,Δ={Δ1,......,ΔN}T,ΔN为第N条链路的修正量。
或者,每条链路的修正量可以满足以下约束条件:第m个线性独立环路包括的所有链路的修正量之和与第m个线性独立环路的环路误差的差值小于第一预设阈值,并且N条链路中每条链路的修正量为使WTΔ2的值小于第二预设阈值的修正量,其中,WT={w1,......,wN},wN为第N条链路的权重,Δ={Δ1,......,ΔN}T,ΔN为第N条链路的修正量。
可选地,每条链路的修正量还可以满足以下约束条件:第n条链路的修正量的绝对值小于第n条链路的往返时间。或者,每条链路的修正量还可以满足以下约束条件:第n条链路的修正量的绝对值小于第n条链路的往返时间的一半。
以图1所示的时钟同步系统100为例。假设第一待同步主机120向第二待同步主机130发送探测包1的时间为t1,第二待同步主机130接收到该探测包1的时间为t2。第二待同步主机130向第一待同步主机120发送探测包2的时间为t3,第一待同步主机120接收到该探测包2的时间为t4。探测包1通过链路1从第一待同步主机120发送至第二待同步主机130所需的时间为d1,探测包2通过链路1从第二待同步主机130发送至第一待同步主机120所需的时间为d2,则可以确定第二待同步主机130相对于第一待同步主机120的时钟偏移为X=((t2-t1)+(t3-t4)+d2-d1)/2。在理想情况下,即d1=d2时,X=((t2-t1)+(t3-t4))/2。也就是说,第二待同步主机130相对于第一待同步主机120的修正量Δ≈(d2-d1)/2。由于第一待同步主机120与第二待同步主机130之间的往返时间RRT=d1+d2,并且由于|d1-d2|<d1+d2,因此|Δ|≈|(d2-d1)/2|<(d1+d2)/2=RTT/2,即|Δ|<RTT。也就是说,可以获得-RTT<Δ<RTT。
例如,假设3个待同步主机间的链路和测量时钟偏移如图4所示,根据步骤S310可以确定图4中的线性独立环路的环路误差为10微秒。
由于至少两个待同步主机间的N条链路中每个链路的时延信息并不完全相同,因此需要根据不同的权重为每条链路分配不同的修正量。
在第n条链路的时延信息较大的情况下,即在第n条链路的往返时间或往返的单向时延之差较大的情况下,第n条链路的测量时钟偏移的误差较大。由于第n条链路的测量时钟偏移的误差较大,因此需要为第n条链路分配较小的权重,从而在满足约束条件的情况下使第n条链路的修正量较大。
以图1所示的时钟同步系统100为例,由上可知,第二待同步主机130相对于第一待同步主机120的时钟偏移为X=((t2-t1)+(t3-t4)+d2-d1)/2。其中,d2-d1为往返的单向时延之差。也就是说,若往返的单向时延之差较大,链路的测量时钟偏移的误差较大,而测量时钟偏移的误差较大的链路应该分配较大的修正量。由于约束条件为:N条链路中每条链路的修正量为使WTΔ2的值为最小值的修正量,因此若链路的往返的单向时延之差较大,则应该为该链路分配较小的权重,从而在WTΔ2的值为最小值的情况下,使该链路分配到的修正量较大。
以图1所示的时钟同步系统100为例。假设根据步骤S220可以确定第一待同步主机120与第二待同步主机130之间的链路的权重为w1,第一待同步主机120与第三待同步主机140之间的链路的权重为w2,第二待同步主机130与第三待同步主机140之间的链路的权重为w3。
为同步图1所示的3个待同步主机的时钟时间,需要使图1中的线性独立环路的环路误差为0。由于图1中的线性独立环路的环路误差不为0,因此需要对该线性独立环路中的每条链路的测量时钟偏移进行修正。由于每条链路的测量时钟偏移为具有方向的数值,因此对每条链路的测量时钟偏移进行修正的修正量也为具有方向的数值。
可选地,第一待同步主机120与第二待同步主机130间的链路的测量时钟偏移可以为第二待同步主机130相对于第一待同步主机120的测量时钟偏移,也可以为第一待同步主机120相对于第二待同步主机130的测量时钟偏移,本申请实施例对此并不限定。
在第一待同步主机120与第二待同步主机130间的链路的测量时钟偏移为第二待同步主机130相对于第一待同步主机120的测量时钟偏移的情况下,第一待同步主机120与第二待同步主机130间的链路的修正量为第二待同步主机130相对于第一待同步主机120的测量时钟偏移的修正量。
在第一待同步主机120与第二待同步主机130间的链路的测量时钟偏移为第一待同步主机120相对于第二待同步主机130的测量时钟偏移的情况下,第一待同步主机120与第二待同步主机130间的链路的修正量为第一待同步主机120相对于第二待同步主机130的测量时钟偏移的修正量。
根据图4所示的每条链路的测量时钟偏移,假设第一待同步主机120与第二待同步主机130之间的链路的修正量为Δ1,即假设第二待同步主机130相对于第一待同步主机120的修正量为Δ1。假设第一待同步主机120与第三待同步主机140之间的链路的修正量为Δ2,即假设第一待同步主机120相对于第三待同步主机140的修正量为Δ2。假设第二待同步主机130与第三待同步主机140之间的链路的修正量为Δ3,即假设第三待同步主机140相对于第二待同步主机130的修正量为Δ3。
为使线性独立环路的环路误差为0,需要使线性独立环路中所有链路的修正量之和与该线性独立环路的环路误差相同,从而消除该线性独立环路的环路误差。也就是说,需要使Δ1+Δ2+Δ3=10。
在线性独立环路的环路误差与该线性独立环路包括的每条链路的修正量之和相同的情况下,每条链路应该被分配的修正量为使WTΔ2的值为最小值的修正量。其中,WT={w1,......,wN},wN为第N条链路的权重,Δ={Δ1,......,ΔN}T,ΔN为第N条链路的修正量。
也就是说,在满足Δ1+Δ2+Δ3=10的情况下,通过调整Δi的值,i=1,2,3,获得的值。将/>的值为最小值时对应的Δi作为第i条链路的修正量。
例如,假设的值为最小值时,Δ1=6,Δ2=1,Δ3=3。也就是说,第一待同步主机120与第二待同步主机130之间的链路的修正量为6微秒,即第二待同步主机130相对于第一待同步主机120的修正量为6微秒。第一待同步主机120与第三待同步主机140之间的链路的修正量为1微秒,即第一待同步主机120相对于第三待同步主机140的修正量为1微秒。第二待同步主机130与第三待同步主机140之间的链路的修正量为3微秒,即第三待同步主机140相对于第二待同步主机130的修正量为3微秒。
由于第二待同步主机130相对于第一待同步主机120的测量时钟偏移为20微秒,并且第二待同步主机130相对于第一待同步主机120的修正量为6微秒,因此第二待同步主机130相对于第一待同步主机120的实际时钟偏移为20-6=14微秒,即第一待同步主机120相当于第二待同步主机130的实际时钟偏移为-14微秒。由于第一待同步主机120相对于第三待同步主机140的测量时钟偏移为5微秒,并且第一待同步主机120相对于第三待同步主机140的修正量为1微秒,因此第一待同步主机120相对于第三待同步主机140的测量时钟偏移为5-1=4微秒,即第三待同步主机140相对于第一待同步主机120的实际时钟偏移为-4微秒。由于第三待同步主机140相对于第二待同步主机130的测量时钟偏移为-15微秒,并且第三待同步主机140相对于第二待同步主机130的修正量为3微秒,因此第三待同步主机140相对于第二待同步主机130的实际时钟偏移为-15-3=-18微秒,即第二待同步主机130相对于第三待同步主机140的实际时钟偏移为18微秒。
也就是说,图1中的链路1的实际时钟偏移为14微秒,链路2的实际时钟偏移为4微秒,链路3的实际时钟偏移为-18微秒。根据3条链路的实际时钟偏移,可以确定图1中的线性独立环路的环路误差为14+4-18=0微秒。因此,根据步骤S320获得的每条链路的修正量对每条链路的测量时钟偏移进行修正后,可以使M个线性独立环路中的每个线性独立环路的环路误差为0,即可以根据N条链路的实际时钟偏移,对至少两个待同步主机进行时钟同步,并且时钟同步的误差较小。
S330,根据N条链路中每条链路的修正量和测量时钟偏移,同步至少两个待同步主机的时钟时间。
可选地,计算设备可以将至少两个待同步主机中的一个主机确定为参考主机。计算设备还可以确定第k个最短路径的实际时钟偏移,并将第k个待同步主机的时钟时间调整为第k个待同步主机的时钟时间与第k个最短路径的实际时钟偏移的差值。其中,第k个最短路径为K个待同步主机中的第k个待同步主机与参考主机间的最短路径,K个待同步主机是至少两个待同步主机中除参考主机以外的主机,k=1,......,K。
可选地,第k个最短路径的实际时钟偏移为第k个待同步主机与参考主机间的最短路径包括的所有链路的实际时钟偏移之和。第k个最短路径包括的每条链路的实际时钟偏移为每条链路的测量时钟偏移与修正量的差值。
可选地,第k个待同步主机与参考主机间的最短路径为第k个待同步主机与参考主机间链路的数量最少的路径。
以图1所示的时钟同步系统100为例,假设将第一待同步主机120确定为参考主机。根据图1所示的3条链路,可以确定第二待同步主机130与第一待同步主机120间的最短路径为链路1,而不是链路2与链路3组成的路径。
在第k个待同步主机与参考主机间的最短路径为直接连接第k个待同步主机与参考主机的一条链路的情况下,第k个待同步主机与参考主机间的最短路径的实际时钟偏移为第k个待同步主机相对于参考主机的实际时钟偏移。第k个待同步主机相对于参考主机的实际时钟偏移为第k个待同步主机相对于参考主机的测量时钟偏移与修正量的差值。
在第k个待同步主机与参考主机间的最短路径为经由第i个待同步主机连接第k个待同步主机与参考主机的两条链路的情况下,第k个待同步主机与参考主机间的最短路径的实际时钟偏移为第k个待同步主机相对于第i个待同步主机的实际时钟偏移、以及第i个待同步主机相对于参考主机的实际时钟偏移之和。第i个待同步主机为K个待同步主机中与第k个待同步主机不相同的任一个待同步主机。第k个待同步主机相对于第i个待同步主机的实际时钟偏移为第k个待同步主机相对于第i个待同步主机的测量时钟偏移与修正量的差值。
以图1所示的时钟同步系统100为例,根据步骤S320获得的每条链路的修正量为Δ1=6,Δ2=1,Δ3=3。若第一待同步主机120为参考主机,则可以确定第二待同步主机130与第一待同步主机120间的最短路径的实际时钟偏移为第二待同步主机130相对于第一待同步主机120的测量时钟偏移与修正量的差值,即第二待同步主机130相对于第一待同步主机120的实际时钟偏移为20-6=14微秒。同理,可以确定第三待同步主机140与第一待同步主机120间的最短路径的实际时钟偏移为第三待同步主机140相对于第一待同步主机120的测量时钟偏移与修正量的差值,即第三待同步主机140相对于第一待同步主机120的实际时钟偏移为(-5)-(-1)=-4微秒。
假设第一待同步主机120为参考主机,并且第一待同步主机120在第一时刻的时钟时间为12:00,则根据第二待同步主机130与参考主机间的最短路径的实际时钟偏移,可以确定第二待同步主机130在第一时刻的时钟时间为12:00+14微秒。同理可知,第三待同步主机140在第一时刻的时钟时间为12:00-4微秒。
也就是说,可以将第二待同步主机130的时钟时间调整为第二待同步主机130的时钟时间与第二待同步主机130相对于第一待同步主机120的实际时钟偏移的差值,即可以将第二待同步主机130的时钟时间调整为12:00+14-14=12:00微秒。同理,可以将第三待同步主机140的时钟时间调整为12:00-4-(-4)=12:00微秒。
计算设备可以根据N条链路中第n条链路的时延信息,确定第n条链路的权重。计算设备还可以根据N条链路中每条链路的权重和测量时钟偏移,确定每条链路的实际时钟偏移,从而根据每条链路的实际时钟偏移,同步至少两个待同步主机的时钟时间。由于计算设备确定的每条链路的实际时钟偏移的误差较小,因此可以提高多个待同步主机的时钟同步的精确度,降低时钟同步的误差。
可选地,根据至少两个待同步主机间的N条链路的权重和测量时钟偏移,对至少两个待同步主机的时钟时间进行同步的具体实现方式有多种,图3中的步骤仅为示例性方法。计算设备还可以通过其他方式根据N条链路的权重和测量时钟偏移,确定N条链路的实际时钟偏移,从而同步至少两个待同步主机的时钟时间。或者,计算设备还可以通过其他方式直接根据N条链路的权重和测量时钟偏移,同步至少两个待同步主机的时钟时间,本申请实施例对此并不限定。
根据本申请实施例所示的方法,以不同数量的主机为例进行仿真实验可以获得:在主机数量为50、所有主机间的所有链路的往返的单向时延之差的平均值相同的情况下,将误差以同一权重分配给所有链路进行时钟同步时,所有链路的平均误差为y1。根据本申请实施例所示的方法进行时钟同步时,所有链路的平均误差为y2,y2与y1的比值大约为0.85,即根据本申请实施例的方法可以降低约15%的时钟同步误差。在主机数量为100、所有主机间的所有链路的往返的单向时延之差的平均值相同的情况下,将误差以同一权重分配给所有链路进行时钟同步时,所有链路的平均误差为y3。根据本申请实施例所示的方法进行时钟同步时,所有链路的平均误差为y4,y4与y3的比值大约为0.75,即根据本申请实施例的方法可以降低约25%的时钟同步误差。在主机数量为150、所有主机间的所有链路的往返的单向时延之差的平均值相同的情况下,将误差以同一权重分配给所有待同步主机间的所有链路进行时钟同步的误差为y5,根据本申请实施例所示的方法进行时钟同步的误差为y6,y6与y5的比值大约为0.7,即根据本申请实施例的方法可以降低约30%的时钟同步误差。也就是说,根据本申请实施例所示的方法可以有效提高多个待同步主机的时钟同步的精确度,降低时钟同步的误差。
以上描述了根据本申请实施例的时钟同步方法,下面分别结合图5和图6描述根据本申请实施例的计算装置和计算设备。
图5是根据本申请实施例的计算装置的结构示意图。计算装置400包括确定模块410和同步模块420。
确定模块410用于确定至少两个待同步主机间的N条链路中第n条链路的时延信息和测量时钟偏移,还用于根据第n条链路的时延信息,确定第n条链路的权重。其中,n=1,......,N,N为大于或等于1的正整数。确定模块410可以执行图2的方法中的步骤S210与S220。
同步模块420用于根据确定模块410确定的该N条链路的权重和测量时钟偏移,同步至少两个待同步主机的时钟时间。同步模块420可以执行图2的方法中的步骤S230或者图3的方法中的步骤S310至S330。
图6是根据本申请实施例的计算设备的结构框图。图6所示的计算设备500包括:处理器501、存储器502和通信接口503,处理器501、存储器502和通信接口503通过总线504相通信。接收器505用于接收来自于主机的待处理请求,发送器506用于将存储器502中存储的待处理请求发送至计算集群中的另一计算设备。
上述本发明实施例揭示的方法可以应用于处理器501中,或者由处理器501实现。处理器501可以是中央处理器(central processing unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(applicationspecific integrated circuit,ASIC)、现场可编程门阵列(field programmable gatearray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。在实现过程中,上述方法的各步骤可以通过处理器501中的硬件的集成逻辑电路或者软件形式的指令完成。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储器502中,该存储器502可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronousDRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambusRAM,DR RAM)处理器501读取存储器502中的指令,结合其硬件完成上述方法的步骤。
存储器502可以存储用于执行上述实施例中计算设备执行的方法的指令。处理器501可以执行存储器502中存储的指令结合其他硬件(例如接收器505和发送器506)完成上述实施例中计算设备的步骤,具体工作过程和有益效果可以上述实施例中的描述。
存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlinkDRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
总线504除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线504。
根据本申请实施例提供的方法,本申请实施例还提供了一种计算机存储介质,该计算机存储介质中存储有程序指令,所述程序执行时可包括如图2或图3中的步骤。
根据本申请实施例提供的方法,本申请实施例还提供了一种芯片系统,该芯片系统包括逻辑电路,该逻辑电路用于与输入/输出接口耦合,通过该输入/输出接口传输数据,以执行上述实施例中计算设备执行的各个步骤。
根据本申请实施例提供的方法,本申请还提供一种计算机程序产品,该计算机程序产品包括:计算机程序代码,当该计算机程序代码在计算机上运行时,使得该计算机执行上述实施例中的各个步骤。
根据本申请实施例提供的方法,本申请还提供一种计算机可读介质,该计算机可读介质存储有程序代码,当该程序代码在计算机上运行时,使得该计算机执行上述实施例中的各个步骤。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (15)
1.一种时钟同步方法,其特征在于,包括:
确定至少两个待同步主机间的N条链路中第n条链路的时延信息和测量时钟偏移,所述时延信息包括往返时间或往返的单向时延之差,所述第n条链路的测量时钟偏移为所述第n条链路连接的两个待同步主机的测量时钟偏移,n=1,......,N,N为大于或等于1的正整数;
根据所述第n条链路的时延信息,确定所述第n条链路的权重;
根据所述N条链路的权重和测量时钟偏移,同步所述至少两个待同步主机的时钟时间。
2.根据权利要求1所述的方法,其特征在于,所述第n条链路的权重与所述第n条链路的时延信息成反比。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述N条链路的权重和测量时钟偏移,同步所述至少两个待同步主机的时钟时间,包括:
确定M个线性独立环路的环路误差,所述M个线性独立环路中的第m个线性独立环路的环路误差是所述第m个线性独立环路包括的所有链路的测量时钟偏移之和,m=1,......,M,M<N;
根据所述M个线性独立环路的环路误差和所述N条链路的权重,确定所述N条链路中每条链路的修正量,其中所述N条链路中的每条链路的修正量满足约束条件;
根据所述N条链路中每条链路的修正量和测量时钟偏移,同步所述至少两个待同步主机的时钟时间。
4.根据权利要求3所述的方法,其特征在于,所述约束条件包括:
所述第m个线性独立环路包括的所有链路的修正量之和与所述第m个线性独立环路的环路误差相同,
所述N条链路中每条链路的修正量为使WTΔ2的值为最小值的修正量,其中,WT={w1,......,wN},wN为第N条链路的权重,Δ={Δ1,......,ΔN}T,ΔN为第N条链路的修正量。
5.根据权利要求4所述的方法,其特征在于,所述约束条件还包括:所述第n条链路的修正量的绝对值小于所述第n条链路的往返时间。
6.根据权利要求3至5中任一项所述的方法,其特征在于,所述根据所述N条链路中每条链路的修正量和测量时钟偏移,同步所述至少两个待同步主机的时钟时间,包括:
确定所述至少两个待同步主机中的一个主机为参考主机;
确定第k个最短路径的实际时钟偏移,所述第k个最短路径为K个待同步主机中的第k个待同步主机与所述参考主机间的最短路径,其中所述K个待同步主机是所述至少两个待同步主机中除所述参考主机以外的主机,k=1,......,K;
将所述第k个待同步主机的时钟时间调整为所述第k个待同步主机的时钟时间与第k个最短路径的实际时钟偏移的差值,所述第k个最短路径的实际时钟偏移为所述第k个待同步主机与所述参考主机间的最短路径包括的所有链路的实际时钟偏移之和,所述第k个最短路径包括的每条链路的实际时钟偏移为每条链路的测量时钟偏移与修正量的差值。
7.一种计算装置,其特征在于,包括:
确定模块,用于确定至少两个待同步主机间的N条链路中第n条链路的时延信息和测量时钟偏移,所述时延信息包括往返时间或往返的单向时延之差,所述第n条链路的测量时钟偏移为所述第n条链路连接的两个待同步主机的测量时钟偏移,n=1,......,N,N为大于或等于1的正整数;
确定模块,还用于根据所述第n条链路的时延信息,确定所述第n条链路的权重;
同步模块,用于根据所述确定模块确定的所述N条链路的权重和测量时钟偏移,同步所述至少两个待同步主机的时钟时间。
8.根据权利要求7所述的装置,其特征在于,所述第n条链路的权重与所述第n条链路的时延信息成反比。
9.根据权利要求7或8所述的装置,其特征在于,所述同步模块,具体用于确定M个线性独立环路的环路误差,所述M个线性独立环路中的第m个线性独立环路的环路误差是所述第m个线性独立环路包括的所有链路的测量时钟偏移之和,m=1,......,M,M<N;
所述同步模块,还用于根据所述M个线性独立环路的环路误差和所述N条链路的权重,确定所述N条链路中每条链路的修正量,其中所述N条链路中的每条链路的修正量满足约束条件;
所述同步模块,还用于根据所述N条链路中每条链路的修正量和测量时钟偏移,同步所述至少两个待同步主机的时钟时间。
10.根据权利要求9所述的装置,其特征在于,所述约束条件包括:
所述第m个线性独立环路包括的所有链路的修正量之和与所述第m个线性独立环路的环路误差相同,
所述N条链路中每条链路的修正量为使WTΔ2的值为最小值的修正量,其中,WT={w1,......,wN},wN为第N条链路的权重,Δ={Δ1,......,ΔN}T,ΔN为第N条链路的修正量。
11.根据权利要求10所述的装置,其特征在于,所述约束条件还包括:所述第n条链路的修正量的绝对值小于所述第n条链路的往返时间。
12.根据权利要求9至11中任一项所述的装置,其特征在于,所述同步模块,具体用于确定所述至少两个待同步主机中的一个主机为参考主机;
所述同步模块,还用于确定第k个最短路径的实际时钟偏移,所述第k个最短路径为K个待同步主机中的第k个待同步主机与所述参考主机间的最短路径,其中所述K个待同步主机是所述至少两个待同步主机中除所述参考主机以外的主机,k=1,......,K;
所述同步模块,还用于将所述第k个待同步主机的时钟时间调整为所述第k个待同步主机的时钟时间与第k个最短路径的实际时钟偏移的差值,所述第k个最短路径的实际时钟偏移为所述第k个待同步主机与所述参考主机间的最短路径包括的所有链路的实际时钟偏移之和,所述第k个最短路径包括的每条链路的实际时钟偏移为每条链路的测量时钟偏移与修正量的差值。
13.一种计算设备,其特征在于,包括:处理器,所述处理器用于与存储器耦合,读取并执行所述存储器中的指令和/或程序代码,以执行如权利要求1-6中任一项所述的方法。
14.一种芯片系统,其特征在于,包括:逻辑电路,所述逻辑电路用于与输入/输出接口耦合,通过所述输入/输出接口传输数据,以执行如权利要求1-6中任一项所述的方法。
15.一种计算机可读介质,其特征在于,所述计算机可读介质存储有程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行如权利要求1-6中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210377287.4A CN116961808A (zh) | 2022-04-12 | 2022-04-12 | 一种时钟同步方法和相关设备 |
PCT/CN2023/082658 WO2023197835A1 (zh) | 2022-04-12 | 2023-03-21 | 一种时钟同步方法和相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210377287.4A CN116961808A (zh) | 2022-04-12 | 2022-04-12 | 一种时钟同步方法和相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116961808A true CN116961808A (zh) | 2023-10-27 |
Family
ID=88328848
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210377287.4A Pending CN116961808A (zh) | 2022-04-12 | 2022-04-12 | 一种时钟同步方法和相关设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116961808A (zh) |
WO (1) | WO2023197835A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117318871A (zh) * | 2023-11-29 | 2023-12-29 | 四川蜀能电科能源技术有限公司 | 一种电力监控系统时间保护方法、设备和介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013117997A2 (en) * | 2012-02-09 | 2013-08-15 | Marvell Israel (M.I.S.L) Ltd. | Clock synchronization using multiple network paths |
US9806835B2 (en) * | 2012-02-09 | 2017-10-31 | Marvell International Ltd. | Clock synchronization using multiple network paths |
CN112511253A (zh) * | 2020-03-23 | 2021-03-16 | 中兴通讯股份有限公司 | 一种同步方法、装置、设备和存储介质 |
CN112235861B (zh) * | 2020-09-03 | 2021-11-30 | 西安电子科技大学 | 适用于自组织网络的时间同步方法、时间同步系统和设备 |
-
2022
- 2022-04-12 CN CN202210377287.4A patent/CN116961808A/zh active Pending
-
2023
- 2023-03-21 WO PCT/CN2023/082658 patent/WO2023197835A1/zh unknown
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117318871A (zh) * | 2023-11-29 | 2023-12-29 | 四川蜀能电科能源技术有限公司 | 一种电力监控系统时间保护方法、设备和介质 |
CN117318871B (zh) * | 2023-11-29 | 2024-02-27 | 四川蜀能电科能源技术有限公司 | 一种电力监控系统时间保护方法、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2023197835A1 (zh) | 2023-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11804919B2 (en) | High speed embedded protocol for distributed control system | |
US10673565B2 (en) | Confirming data accuracy in a distributed control system | |
US11050501B2 (en) | Performing PHY-level hardware timestamping and time synchronization in cost-sensitive environments | |
EP3149897B1 (en) | High speed embedded protocol for distributed control system | |
US7328359B2 (en) | Technique to create link determinism | |
CN110278065B (zh) | 一种补偿时延的方法和设备 | |
WO2014173267A1 (zh) | 时间戳生成方法、装置及系统 | |
WO2022052609A1 (zh) | 时延补偿方法、装置、设备及计算机可读存储介质 | |
EP2448168A1 (en) | Method and system for bearing time synchronization protocol in optical transport network | |
US11349587B2 (en) | Generating a timestamp | |
CN112162591B (zh) | 具有多个处理器的电子装置及其同步方法 | |
CN113259038A (zh) | 时间同步方法、节点、装置及存储介质 | |
CN111726189A (zh) | 基于时间戳标记电路的双核系统时钟同步方法及装置 | |
WO2023197835A1 (zh) | 一种时钟同步方法和相关设备 | |
US20190306062A1 (en) | Methods and apparatus for providing deterministic latency for communications interfaces | |
CN114138054A (zh) | 一种时间戳获取方法、装置、电子设备及存储介质 | |
US20220021513A1 (en) | Delay jitter compensation method and device, and computer storage medium | |
WO2020132834A1 (zh) | 一种打戳处理方法及装置 | |
CN114422069B (zh) | FlexE业务的时延处理方法、装置、设备及存储介质 | |
WO2022247307A1 (zh) | 传输报文的方法及装置 | |
CN115883049B (zh) | 信号同步方法及装置 | |
CN117220817B (zh) | 一种多核处理器的时间同步监测的方法和系统 | |
US9344209B2 (en) | Discrete time compensation mechanisms | |
WO2021147042A1 (zh) | 一种时间同步方法及设备 | |
CN118445088A (zh) | 一种网络报文的处理方法、系统、装置、设备以及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |