CN118041477A - 时间校正方法及装置 - Google Patents
时间校正方法及装置 Download PDFInfo
- Publication number
- CN118041477A CN118041477A CN202211414938.9A CN202211414938A CN118041477A CN 118041477 A CN118041477 A CN 118041477A CN 202211414938 A CN202211414938 A CN 202211414938A CN 118041477 A CN118041477 A CN 118041477A
- Authority
- CN
- China
- Prior art keywords
- clock module
- time
- slave clock
- slave
- master clock
- 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
- 238000012937 correction Methods 0.000 title claims abstract description 105
- 238000000034 method Methods 0.000 title claims abstract description 83
- 238000013507 mapping Methods 0.000 claims abstract description 20
- 230000006870 function Effects 0.000 claims description 40
- 230000004044 response Effects 0.000 claims description 20
- 238000012545 processing Methods 0.000 claims description 19
- 238000004891 communication Methods 0.000 abstract description 29
- 230000005540 biological transmission Effects 0.000 description 21
- 238000010586 diagram Methods 0.000 description 12
- 230000000694 effects Effects 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 230000010076 replication Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 239000000470 constituent Substances 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 230000008054 signal transmission Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 102100034112 Alkyldihydroxyacetonephosphate synthase, peroxisomal Human genes 0.000 description 1
- 101000799143 Homo sapiens Alkyldihydroxyacetonephosphate synthase, peroxisomal Proteins 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000000848 angular dependent Auger electron spectroscopy Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000006386 memory function Effects 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Electric Clocks (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本申请公开了一种时间校正方法及装置,涉及通信领域;该时间校正方法,应用于计算设备,计算设备包括主时钟模块和从时钟模块,方法应用于从时钟模块,该方法包括:获取主时钟模块和从时钟模块至少两次互相发送时间消息时,主时钟模块和从时钟模块分别收发时间消息的多个时间戳;主时钟模块与从时钟模块通过第一通道收发时间消息;第一通道通过主时钟模块安装的尤内克斯域套接字文件与从时钟模块安装的虚拟串口之间的映射实现,虚拟串口由主时钟模块在从时钟模块中启动VirtIO驱动得到;根据多个时间戳,确定从时钟模块相对主时钟模块的时间误差;根据时间误差校正从时钟模块的系统时间;提升了从时钟模块的时间校正精度。
Description
技术领域
本申请涉及通信领域,尤其涉及时间校正方法及装置。
背景技术
在以虚拟化技术支持的嵌入式系统里,各个虚拟机执行着各自的功能任务,相互之间互不干涉,从而能够确保某个虚拟机出现故障的时候不会影响其他虚拟机的正常运行。但虚拟机之间需要进行频繁的实时数据传输来进行特定的复杂功能操作。例如,在汽车中,刹车系统(虚拟机1)需要根据雷达系统(虚拟机2)获取到车距等数据来判断当前是否刹车。
虚拟机之间的实时通信功能需要保证消息传输过程的低时延性及高可靠性。部分时间精度要求高的应用场景中,例如先进驾驶辅助系统(advanced driver assistancesystem,ADAS)应用场景,要求虚拟机之间的时间误差是不允许低于微秒级别的。因此,需要对主机与虚拟机之间进行时间同步操作,将两者之间的时间偏差降低到微秒级别,以满足多虚拟机之间实时通信的需求。然而,现有的时间同步方法精度较低。
发明内容
本申请提供一种时间校正方法及装置,用于解决现有的时间同步方法精度较低的问题。
为达到上述目的,本申请采用如下技术方案:
第一方面,提供了一种时间校正方法,应用于计算设备的从时钟模块,该计算设备还包括主时钟模块,该方法包括:
获取主时钟模块和从时钟模块至少两次互相发送时间消息时,主时钟模块和从时钟模块分别收发时间消息的多个时间戳;主时钟模块与从时钟模块通过第一通道收发时间消息;第一通道通过主时钟模块安装的尤内克斯域套接字文件与从时钟模块安装的虚拟串口之间的映射实现,虚拟串口由主时钟模块在从时钟模块中启动VirtIO驱动得到;根据多个时间戳,确定从时钟模块相对主时钟模块的时间误差;根据时间误差校正从时钟模块的系统时间。
第一方面中,从时钟模块与主时钟模块通过由尤内克斯域套接字文件与虚拟串口之间的映射构成的第一通道收发时间消息,进而使从时钟模块获取到多个时间戳。然后从时钟模块根据多个时间戳确定从时钟模块相对主时钟模块的时间误差,再根据时间误差校正从时钟模块的系统时间。采用VirtIO驱动构建第一通道,而VirtIO是一种基于I/O虚拟化的共享物理内存通信方式,不依赖网络通信,无需进行协议处理,通过文件映射实现数据复制的作用,减少了从时钟模块与主时钟模块收发时间消息的负载消耗以及网络延迟带来的影响,进而实现资源层面轻量化的时间校正,能够满足资源受限的虚拟化平台的时间校正要求。并且将从时钟模块与主时钟模块之间的时间误差从毫秒级别降低到微秒级别。
在一种可能的实现中,获取多个时间戳包括:
接收第一时间消息,第一时间消息携带表征主时钟模块发送第一时间消息的时刻的第一时间戳;记录表征主时钟模块接收第一时间消息的时刻的第二时间戳;响应于第一时间消息,向主时钟模块发送第二时间消息,并记录表征从时钟模块发送第二时间消息的时刻的第三时间戳;接收主时钟模块响应于第二时间消息向从时钟模块发送的第三时间消息,第三时间消息包括表征主时钟模块接收第二时间消息的时间的第四时间戳。
在该实现中,通过设计时间消息的应答机制使得从时钟模块能够获取到多个时间戳,获取到的多个时间戳准确性较高。
在一种可能的实现中,主时钟模块为主操作系统的时钟模块,从时钟模块为从操作系统中的时钟模块,其中,主操作系统是计算设备的操作系统,从操作系统是运行于计算设备的虚拟机的操作系统。
在一种可能的实现中,从时钟模块的启动配置可扩展标记语言文件中设置有virtio serial字段和尤内克斯字段;虚拟串口由主时钟模块根据添加了virtio serial字段和尤内克斯字段的启动配置可扩展标记语言文件,在从时钟模块中启动VirtIO驱动得到;其中,一个虚拟串口对应一个尤内克斯域套接字文件。
在该实现中,采用VirtIO驱动构建第一通道,而VirtIO是一种基于I/O虚拟化的共享物理内存通信方式,不依赖网络通信,无需进行协议处理,通过文件映射实现数据复制的作用,减少了从时钟模块与主时钟模块收发时间消息的负载消耗以及网络延迟带来的影响,进而实现资源层面轻量化的时间校正,能够满足资源受限的虚拟化平台的时间校正要求。
在一种可能的实现中,根据时间误差校正从时钟模块的系统时间,包括:
将时间误差输入预设计算机函数以校正从时钟模块的系统时间。
在该实现中,通过预设计算机函数基于时间误差校正从时钟模块的系统时间,校正效率较高。
在一种可能的实现中,在从时钟模块根据时间误差校正从时钟模块的时间之后,方法还包括:
在预设计算机函数输出的结果表征从时钟模块的系统时间校正失败的情况下,重新获取多个时间戳,以重新校正所述从时钟模块的系统时间。
在该实现中,设计了一种从时钟模块的系统时间校正失败情况下的再校正机制,能够在从时钟模块的系统时间校正失败的情况下,重新获取多个时间戳,以重新校正所述从时钟模块的系统时间,进而提升时间校正精度。
第二方面,提供了一种时间校正方法,应用于计算设备,计算设备包括主时钟模块和从时钟模块,方法应用于主时钟模块,方法包括:
通过第一通道向从时钟模块发送至少两个时间戳,时间戳用于校正获取到至少两个时间戳的从时钟模块的系统时间;至少两个时间戳包括表征主时钟模块向从时钟模块发送时间消息的时刻的时间戳,以及包括表征主时钟模块从从时钟模块接收到时间消息的时刻的时间戳;第一通道包括主时钟模块安装的尤内克斯域套接字文件与从时钟模块安装的虚拟串口之间的映射,虚拟串口由主时钟模块在从时钟模块中启动VirtIO驱动得到。
第二方面中,从时钟模块与主时钟模块通过由尤内克斯域套接字文件与虚拟串口之间的映射构成的第一通道收发时间消息,进而使从时钟模块获取到多个时间戳。采用VirtIO驱动构建第一通道,而VirtIO是一种基于I/O虚拟化的共享物理内存通信方式,不依赖网络通信,无需进行协议处理,通过文件映射实现数据复制的作用,减少了从时钟模块与主时钟模块收发时间消息的负载消耗以及网络延迟带来的影响,进而实现资源层面轻量化的时间校正,能够满足资源受限的虚拟化平台的时间校正要求。
在一种可能的实现中,通过第一通道向从时钟模块发送至少两个时间戳,包括:向从时钟模块发送第一时间消息,第一时间消息携带表征主时钟模块向从时钟模块发送第一时间消息的时刻的时间戳;接收来自从时钟模块的第二时间消息,第二时间消息是从时钟模块响应于第一时间消息向主时钟模块发送的时间消息;响应于第二时间消息,向从时钟模块发送第三时间消息,第三时间消息包括表征主时钟模块接收第二时间消息的时刻的时间戳。
在该实现中,通过设计时间消息的应答机制使得从时钟模块能够获取到多个时间戳,获取到的多个时间戳准确性较高。
在一种可能的实现中,主时钟模块为主操作系统的时钟模块,从时钟模块为从操作系统中的时钟模块,其中,主操作系统是计算设备的操作系统,从操作系统是运行于计算设备的虚拟机的操作系统。
在一种可能的实现中,从时钟模块的启动配置可扩展标记语言文件中设置有virtio serial字段和尤内克斯字段;虚拟串口由主时钟模块根据添加了virtio serial字段和尤内克斯字段的启动配置可扩展标记语言文件,在从时钟模块中启动VirtIO驱动得到;其中,一个虚拟串口对应一个尤内克斯域套接字文件。
在该实现中,采用VirtIO驱动构建第一通道,而VirtIO是一种基于I/O虚拟化的共享物理内存通信方式,不依赖网络通信,无需进行协议处理,通过文件映射实现数据复制的作用,减少了从时钟模块与主时钟模块收发时间消息的负载消耗以及网络延迟带来的影响,进而实现资源层面轻量化的时间校正,能够满足资源受限的虚拟化平台的时间校正要求。
第三方面,本申请提供一种时间校正装置,该时间校正装置可以为从时钟模块或者从时钟模块中的芯片或者片上系统。该时间校正装置可以实现上述第一方面或者第一方面可能的设计中从时钟模块所执行的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。
第四方面,本申请提供一种时间校正装置,该时间校正装置可以为主时钟模块或者主时钟模块中的芯片或者片上系统。该时间校正装置可以实现上述第二方面或者第二方面可能的设计中主时钟模块所执行的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。
第五方面,本申请提供一种时间校正装置,时间校正装置包括处理器,处理器用于支持时间校正装置执行第一方面或第二方面的方法。进一步的,该时间校正装置还可以包括存储器,该存储器存储有计算机指令,当处理器可以运行该计算机指令执行第一方面或者第二方面的方法。
第六方面,本申请提供一种计算机可读存储介质,计算机可读存储介质存储计算机指令,当计算机指令运行时,第一方面或第二方面的方法被执行。
第七方面,本申请提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机可以执行上述第一方面或第二方面的方法。
第八方面,本申请提供一种芯片,该芯片包括处理器和收发器,处理器和收发器用于支持时间校正装置执行第一方面或第二方面的方法。
第九方面,本申请提供一种时间校正系统,该时间校正系统包括主时钟模块和从时钟模块;其中,主时钟模块,用于执行第二方面的方法;从时钟模块,用于执行第一方面的方法。
其中,本申请中第三方面至第九方面描述的有益效果,可以对应参考第一方面或第二方面的有益效果分析,此处不再赘述。
附图说明
图1为本申请实施例提供的一种时间校正系统的结构示意图;
图2为本申请实施例提供的一种时间校正方法的流程示意图;
图3为本申请实施例提供的另一种时间校正系统的结构示意图;
图4为本申请实施例提供的另一种时间校正方法的流程示意图;
图5为本申请实施例提供的另一种时间校正方法的流程示意图;
图6为本申请实施例提供的另一种时间校正系统的结构示意图;
图7为本申请实施例提供的一种时间设备的结构示意图;
图8为本申请实施例提供的一种时间校正装置的结构图;
图9为本申请实施例提供的另一种时间校正装置的结构图;
图10为本申请实施例提供的另一种时间校正系统的结构示意图。
具体实施方式
本申请实施例描述的网络架构以及业务场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
在介绍本申请实施例之前,对本申请实施例涉及的一些名词进行解释。
消息传递:计算机系统中,进程间或软件组件间的一类数据时间校正方法的统称。它将待通信的数据抽象并封装为“消息”,参与通信的双方或多方通过调用消息发送、接收等原语实现消息在进程或组件之间的传递,从而完成数据通信。
时间同步:通过对本地时钟的某些操作,达到为分布式系统提供一个统一时间标度的过程。
对于部署于同一物理机上的虚拟机,在操作系统启动的时候,先是需要获取实时时钟(real time clock,RTC)时间进行时间初始化,然后通过时钟源(内核自动选择精确值最高的时钟源)的频率计数来计算当前的系统时间,计数值都是存放在寄存器中,比如ARM处理器(advanced risc machines,ARM)64架构下,主机和虚拟机都设定的通过cntvct_el0寄存器的计数值来获取当前的系统时间。因为同一寄存器不可同时被多台虚拟机读取,在获取到计数值的读写过程中被中断等情况打断,导致虚拟机获取的当前时间与实际时间存在几毫秒的时间偏差,这对于时间精度高的系统不利于保证实时通信的低时延性及高可靠性。因此,需要对主机与虚拟机之间进行时间同步操作,将两者之间的时间偏差降低到微秒级别,满足多虚拟机之间实时通信的需求。
一般的时间同步方法依赖于主机与虚拟机之间互通的网络进行时间同步,比如精确时间协议(precise time protocol,PTP)、Chrony时间同步服务、网络时间协议(NTP)时间同步服务等。上述几种方法针对的场景是云计算及高性能计算中的虚拟化平台,不会受到通信资源的限制,基于较大的通信资源消耗以实现高精度的时间同步。
而对于一些资源受限的虚拟化平台,无法支持较大的通信资源消耗,例如嵌入式系统。如果采用上述几种时间同步方法进行资源受限的虚拟化平台的时间同步,则只能将资源受限的虚拟化平台之间的误差控制在毫秒级别,达不到微秒级别,时间同步精度较低。
为了解决上述技术问题,本申请实施例提供一种时间校正方法,下面结合说明书附图,对本申请实施例提供的方法进行描述。
本申请实施例提供的时间校正方法可以应用于各种时间校正系统,例如:长期演进(long term evolution,LTE)系统、第五代(5th generation,5G)移动时间校正系统、无线保真(wireless fidelity,WiFi)系统、未来的时间校正系统、或者多种时间校正系统融合的系统等,本申请实施例不做限定。其中,5G还可以称为新无线(new radio,NR)。
下面以图1所示时间校正系统为例,对本申请实施例提供的时间校正方法进行描述。
图1是本申请实施例提供的一种计算设备的示意图,如图1所示,该计算设备可以包括:主时钟模块和从时钟模块。该主时钟模块可以为主操作系统的时钟模块,从时钟模块可以为客操作系统的时钟模块。从时钟模块的数量可以是多个,图1中以两个为示例。主时钟模块与从时钟模块之间能够双向传输消息。
图2示出了本申请实施例提供的时间校正方法的流程示意图。如图2所示,该方法可以包括以下步骤:
S210,从时钟模块获取多个时间戳。
其中,多个时间戳包括主时钟模块和从时钟模块至少两次互相发送时间消息时,主时钟模块和从时钟模块分别收发时间消息的时刻的时间戳。主时钟模块向从时钟模块发送一次时间消息,或者,从时钟模块向主时钟模块发送一次时间消息,记为一次互相发送。获取的多个时间戳至少包括主时钟模块发送一个时间消息(记为消息A)的时间戳、从时钟模块接收该消息A的时间戳、从时钟模块响应于该消息A,发送的另一个时间消息(记为消息B)的时间戳、以及主时钟模块接收该消息B的时间戳。也就是说,至少包括四个时间戳。
主时钟模块可以为主操作系统;从时钟模块可以为客操作系统。主时钟模块与从时钟模块通过第一通道收发时间消息;该第一通道在从时钟模块获取多个时间戳之前建立完成,是本申请实施例提供的时间校正方法的准备工作。第一通道通过主时钟模块安装的尤内克斯域套接字文件与从时钟模块安装的虚拟串口之间的映射。下面对第一通道的建立过程进行说明:
在主时钟模块安装尤内克斯unix域套接字文件。以及在主时钟模块中修改从时钟模块对应的启动配置可扩展标记语言(extensible markup language,XML)文件,具体的,如图3所示,在启动配置XML文件中的controller属性对应字段添加virtio serial字段、以及在启动配置XML文件中的channel属性对应字段添加unix字段。然后,主时钟模块根据添加了virtio serial字段和unix字段的启动配置XML文件在从时钟模块中启动VirtIO驱动而以从时钟模块中安装虚拟串口。再将从时钟模块的虚拟串口与主时钟模块的unix域套接字文件进行一一映射,使得一个虚拟串口对应一个尤内克斯域套接字文件,最终得到第一通道。通过第一通道,可以实现主时钟模块与从时钟模块之间的通信。
S220,从时钟模块根据多个时间戳,确定从时钟模块相对主时钟模块的时间误差。
其中,多个时间戳能够表征主时钟模块和从时钟模块至少两次互相发送时间消息时,主时钟模块和从时钟模块分别收发时间消息的时间。进而,根据多个时间戳,能够确定从时钟模块相对主时钟模块的时间误差。
可选的,记从发送某一时间消息到接收该时间消息的间隔为传输时间,从时钟模块可以通过计算任一次传输时间与传输时间的均值的差值作为从时钟模块相对主时钟模块的时间误差。可以理解为,根据一条时间消息的传输时间和多条时间消息传输时间的均值的差值,来得到从时钟模块相对主时钟模块的时间误差。
示例性的,在确定时间误差时,可以根据时间误差计算公式计算时间误差。以主时钟模块和从时钟模块两次互相发送时间消息时对应的时间戳计算时间误差为例,该时间误差计算公式可以是:
时间误差=(T2-T1)-[(T2-T1)+(T4-T3)]/2
其中,T1表示第一次发送时间消息的时刻的时间戳,T2表示第二次接收时间消息的时刻的时间戳,T3表示第二次发送时间消息的时刻的时间戳,T4表示第一次接收时间消息的时刻的时间戳。
基于该时间误差计算公式进行时间误差计算,虽然S210中每次传递时间戳的时候,数据的读取消耗了微小时间,但根据时间误差计算公式,一条时间消息的传输时间(净传输时间和上述微小时间的和)和多条时间消息传输时间的均值都包含了该微小时间,通过相减,可以相互抵消掉,增加了时间误差的准确性,能够准确计算出从时钟模块相对主时钟模块的时间误差。
S230,从时钟模块根据时间误差校正从时钟模块的系统时间。
其中,在确定出从时钟模块相对主时钟模块的时间误差后,即可根据该时间误差校正从时钟模块的系统时间。
进一步地,可以通过将时间误差输入预设计算机函数以校正从时钟模块的系统时间。示例性的,预设计算机函数可以选用为adjtime。
本申请实施例中,从时钟模块与主时钟模块通过由尤内克斯域套接字文件与虚拟串口之间的映射构成的第一通道收发时间消息,进而使从时钟模块获取到多个时间戳。然后从时钟模块根据多个时间戳确定从时钟模块相对主时钟模块的时间误差,再根据时间误差校正从时钟模块的系统时间。采用VirtIO驱动构建第一通道,而VirtIO是一种基于I/O虚拟化的共享物理内存通信方式,不依赖网络通信,无需进行协议处理,通过文件映射实现数据复制的作用,减少了从时钟模块与主时钟模块收发时间消息的负载消耗以及网络延迟带来的影响,进而实现资源层面轻量化的时间校正,能够满足资源受限的虚拟化平台的时间校正要求。并且将从时钟模块与主时钟模块之间的时间误差从毫秒级别降低到微秒级别。
在一种实施例中,如图4所示,S210,从时钟模块获取多个时间戳,可以包括:
S410,主时钟模块向从时钟模块发送第一时间消息,相应的,从时钟模块接收来自主时钟模块的第一时间消息。
其中,第一时间消息携带第一时间戳,第一时间戳表征主时钟模块发送第一时间消息的时刻。
S420,从时钟模块记录第二时间戳。
其中,第二时间戳表征主时钟模块接收第一时间消息的时刻。
S430,从时钟模块响应于第一时间消息,向主时钟模块发送第二时间消息,并记录第三时间戳。相应的,主时钟模块接收第二时间消息。第二时间消息可以不携带内容数据。
其中,第三时间戳表征从时钟模块发送第二时间消息的时刻。
S440,主时钟模块响应于第二时间消息,向从时钟模块发送第三时间消息。相应的,从时钟模块接收第三时间消息。
其中,第三时间消息包括第四时间戳,第四时间戳表征主时钟模块接收第二时间消息的时间。
本申请实施例中,通过设计时间消息的应答机制使得从时钟模块能够获取到多个时间戳,获取到的多个时间戳准确性较高。
在一种实施例中,在S230:从时钟模块根据时间误差校正从时钟模块的时间之后,如图5所示,该方法还可以:
S510,在预设计算机函数输出的结果表征从时钟模块的系统时间校正失败的情况下,重新获取多个时间戳,以重新校正所述从时钟模块的系统时间。
其中,预设计算机函数能够输出表征从时钟模块的系统时间校正是否成功的结果,以adjtime函数为例。如果校正成功,则输出TRUE;如果校正失败,则输出FALSE。在输出的结果表征校正失败的情况下,可以根据S220计算出的时间误差重新获取多个时间戳,以重新校正所述从时钟模块的系统时间。
本申请实施例中,设计了一种从时钟模块的系统时间校正失败情况下的再校正机制,能够在从时钟模块的系统时间校正失败的情况下,重新获取多个时间戳,以重新校正所述从时钟模块的系统时间,进而提升时间校正精度。
本申请实施例提供的时间校正方法可以应用于多种架构的计算设备中,示例性的,可以应用于X86架构和ARM64架构。如图6所示,在X86架构或者ARM64架构的计算设备中,主时钟模块和从时钟模块均为Ubuntu操作系统,基于S210介绍的第一通道的创建步骤,在主时钟模块上,创建了vm1.ctl和vm2.ctl两个unix域套接字文件;在从时钟模块上,生成了vport2p1和vport2p2两个虚拟串口,vm1.ctl和vm2.ctl分别与vport2p1和vport2p2一一映射。
基于上述实施例,在X86架构或者ARM64架构的计算设备执行本申请实施例提供的时间校正方法后,计算主时钟模块与从时钟模块之间的时间误差,以测试校正效果。并同时采用Chrony时间同步服务进行时间校正后计算主时钟模块与从时钟模块之间的时间误差,作为对照组。测试结果如表1所示。
表1
表1表明,在X86架构上,本申请实施例提供的时间校正方法可以将虚拟机与主机之间时间误差降低到40微秒us左右,并且稳定在微秒级别,而现有的时间同步技术Chrony时间同步服务,只能将虚拟机与主机之间的时间误差降低到2000us(即2毫秒ms)左右。
在ARM64架构上,本申请实施例提供的时间校正方法可以将虚拟机与主机之间的时间误差降低到400us左右,而Chrony时间同步服务只能降低到4100us(即4ms)左右。
经过上述测试可以看出,本申请实施例提供的时间校正方法的时间校正精度较高,可以将从时钟模块与主时钟模块之间的时间误差从毫秒级别降低到微秒级别。
上述主要从各个节点之间交互的角度对本申请实施例提供的方案进行了介绍。可以理解的是,各个节点,例如主时钟模块和从时钟模块为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的算法步骤,本申请实施例的方法能够以硬件、软件、或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对主时钟模块和从时钟模块进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在具体实现时,本申请所示计算设备可采用图7所示的组成结构或者包括图7所示的部件。图7为本申请实施例提供的一种计算设备的结构示意图,当该计算设备具有本申请实施例所述的主时钟模块的功能时,该计算设备可以为主时钟模块或主时钟模块中的芯片或片上系统。当计算设备具有本申请实施例所述的从时钟模块的功能时,计算设备可以为从时钟模块或者从时钟模块中的芯片或片上系统。
如图7所示,该计算设备可以包括处理器701,通信线路702,以及存储器704。其中,处理器701,以及存储器704之间可以通过通信线路702连接。在一种示例中,处理器701可以包括一个或多个CPU,例如图7中的CPU0和CPU1。
作为一种可选的实现方式,计算设备包括多个处理器,例如,除图7中的处理器701之外,还可以包括处理器707。
其中,处理器701可以是中央处理器(central processing unit,CPU)、通用处理器网络处理器(network processor,NP)、数字信号处理器(digital signal processing,DSP)、微处理器、微控制器、可编程逻辑器件(programmable logic device,PLD)或它们的任意组合。处理器701还可以是其它具有处理功能的装置,如电路、器件或软件模块等。
通信线路702,用于在计算设备所包括的各部件之间传送信息。
进一步的,该计算设备还可以包括存储器704。存储器704,用于存储指令。其中,指令可以是计算机程序。
其中,存储器704可以是只读存储器(read_only memory,ROM)或可存储静态信息和/或指令的其他类型的静态存储设备,也可以是随机存取存储器(random accessmemory,RAM)或者可存储信息和/或指令的其他类型的动态存储设备,还可以是电可擦可编程只读存储器(electrically erasable programmable read_only memory,EEPROM)、只读光盘(compact disc read_only memory,CD_ROM)或其他光盘存储、光碟存储、磁盘存储介质或其他磁存储设备,光碟存储包括压缩光碟、激光碟、光碟、数字通用光碟、或蓝光光碟等。
需要说明的是,存储器704可以独立于处理器701存在,也可以和处理器701集成在一起。存储器704可以用于存储指令或者程序代码或者一些数据等。存储器704可以位于计算设备内,也可以位于计算设备外,不予限制。处理器701执行存储器704中存储的指令时,可以实现本申请实施例提供的方法。
需要说明的是,计算设备可以是台式机、便携式电脑、网络服务器、移动手机、平板电脑、无线终端、嵌入式设备、芯片系统或有图7中类似结构的设备。此外,图7中示出的组成结构并不构成对该时间校正装置的限定,除图7所示部件之外,该计算设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
图8示出了一种时间校正装置的结构图,该时间校正装置应用于从时钟模块。图8所示装置中各模块具有实现图2中对应步骤的功能,并能达到其相应技术效果。各模块执行步骤相应的有益效果可以参考图2对应步骤的说明,不再赘述。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的模块。
如:该时间校正装置包括:
收发模块810,用于获取多个时间戳。
多个时间戳包括主时钟模块和从时钟模块至少两次互相发送时间消息时,主时钟模块和从时钟模块分别收发时间消息的时刻的时间戳。主时钟模块与从时钟模块通过第一通道收发时间消息。第一通道通过主时钟模块安装的尤内克斯域套接字文件与从时钟模块安装的虚拟串口之间的映射实现,虚拟串口由主时钟模块在从时钟模块中启动VirtIO驱动得到。
处理模块820,用于根据多个时间戳,确定从时钟模块相对主时钟模块的时间误差。
处理模块820,还用于根据时间误差校正从时钟模块的系统时间。
在一种实施例中,收发模块810,具体用于:
接收第一时间消息,第一时间消息携带第一时间戳,第一时间戳表征主时钟模块发送第一时间消息的时刻。
记录第二时间戳,第二时间戳表征主时钟模块接收第一时间消息的时刻。
响应于第一时间消息,向主时钟模块发送第二时间消息,并记录第三时间戳,第三时间戳表征从时钟模块发送第二时间消息的时刻。
接收第三时间消息,第三时间消息是主时钟模块响应于第二时间消息向从时钟模块发送的时间消息,第三时间消息包括第四时间戳,第四时间戳表征主时钟模块接收第二时间消息的时间。
在一种实施例中,主时钟模块为主操作系统的时钟模块。从时钟模块为客操作系统。
在一种实施例中,从时钟模块的启动配置可扩展标记语言文件中设置有virtioserial字段和尤内克斯字段。
虚拟串口由主时钟模块根据添加了virtio serial字段和尤内克斯字段的启动配置可扩展标记语言文件,在从时钟模块中启动VirtIO驱动得到。其中,一个虚拟串口对应一个尤内克斯域套接字文件。
在一种实施例中,处理模块820,具体用于:
将时间误差输入预设计算机函数以校正从时钟模块的系统时间。
在一种实施例中,处理模块820还用于:
在从时钟模块根据时间误差校正从时钟模块的时间之后,且预设计算机函数输出的结果表征从时钟模块的系统时间校正失败的情况下,重新获取多个时间戳,以重新校正所述从时钟模块的系统时间。
图9示出了一种时间校正装置的结构图,该时间校正装置应用于主时钟模块。图9所示装置中各模块具有实现图2中对应步骤的功能,并能达到其相应技术效果。各模块执行步骤相应的有益效果可以参考图2对应步骤的说明,不再赘述。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的模块。
如:该时间校正装置包括:
发送模块910,用于通过第一通道收发向从时钟模块发送至少两次时间消息。
时间消息包括主时钟模块发送时间消息的时刻的时间戳;第一通道通过主时钟模块安装的尤内克斯域套接字文件与从时钟模块安装的虚拟串口之间的映射实现,虚拟串口由主时钟模块在从时钟模块中启动VirtIO驱动得到。
在一种实施例中,装置还包括接收模块920;
发送模块910,用于向从时钟模块发送第一时间消息,第一时间消息携带第一时间戳,第一时间戳表征主时钟模块发送第一时间消息的时刻;
接收模块920,用于接收来自从时钟模块的第二时间消息;
发送模块910,用于响应于第二时间消息,向从时钟模块发送第三时间消息,第三时间消息包括第四时间戳,第四时间戳表征主时钟模块接收第二时间消息的时间。
在一种实施例中,主时钟模块为主操作系统的时钟模块;从时钟模块为客操作系统。
在一种实施例中,从时钟模块的启动配置可扩展标记语言文件中设置有virtioserial字段和尤内克斯字段;虚拟串口由主时钟模块根据添加了virtio serial字段和尤内克斯字段的启动配置可扩展标记语言文件,在从时钟模块中启动VirtIO驱动得到;其中,一个虚拟串口对应一个尤内克斯域套接字文件。
图10为本申请实施例提供的一种时间校正系统的结构图,该时间校正系统为时间校正场景相应的时间校正系统,如图10所示,该时间校正系统可以包括:
主时钟模块110和从时钟模块120。
主时钟模块110,用于通过第一通道收发向从时钟模块120发送至少两次时间消息。
时间消息包括主时钟模块110发送时间消息的时刻的时间戳。第一通道通过主时钟模块110安装的尤内克斯域套接字文件与从时钟模块120安装的虚拟串口之间的映射实现,虚拟串口由主时钟模块110在从时钟模块120中启动VirtIO驱动得到。
从时钟模块120,用于接收至少两次时间消息,并记录接收至少两次时间消息的时刻的时间戳。以及响应于至少两次时间消息中的第一次时间消息,向主时钟模块110发送至少一次时间消息,并记录发送至少一次时间消息的时刻的时间戳。
从时钟模块120,还用于根据接收到的时间戳和记录到的时间戳,确定从时钟模块120相对主时钟模块110的时间误差。
从时钟模块120,还用于根据时间误差校正从时钟模块120的系统时间。
本申请实施例还提供了一种计算机可读存储介质。上述方法实施例中的全部或者部分流程可以由计算机程序来指令相关的硬件完成,该程序可存储于上述计算机可读存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。计算机可读存储介质可以是前述任一实施例的终端装置,如:包括数据发送端和/或数据接收端的内部存储单元,例如终端装置的硬盘或内存。上述计算机可读存储介质也可以是上述终端装置的外部存储设备,例如上述终端装置上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,上述计算机可读存储介质还可以既包括上述终端装置的内部存储单元也包括外部存储设备。上述计算机可读存储介质用于存储上述计算机程序以及上述终端装置所需的其他程序和数据。上述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还提供了一种计算机指令。上述方法实施例中的全部或者部分流程可以由计算机指令来指令相关的硬件(如计算机、处理器、网络设备、和终端等)完成。该程序可被存储于上述计算机可读存储介质中。
本申请实施例还提供了一种芯片系统。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件,不予限制。该芯片系统包括处理器以及收发器,上述方法实施例中的全部或者部分流程可以由该芯片系统完成,如该芯片系统可以用于实现上述方法实施例中主时钟模块所执行的功能,或者,实现上述方法实施例中从时钟模块所执行的功能。
在一种可能的设计中,上述芯片系统还包括存储器,所述存储器,用于保存程序指令和/或数据,当该芯片系统运行时,该处理器执行该存储器存储的该程序指令,以使该芯片系统执行上述方法实施例中主时钟模块所执行的功能或者执行上述方法实施例中从时钟模块所执行的功能。
在本申请实施例中,处理器可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
在本申请实施例中,存储器可以是非易失性存储器,比如硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)等,还可以是易失性存储器(volatilememory),例如随机存取存储器(random-access memory,RAM)。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器还可以是电路或者其它任意能够实现存储功能的装置,用于存储指令和/或数据。
需要说明的是,本申请的说明书、权利要求书及附图中的术语“第一”和“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请实施例中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上,“至少两个(项)”是指两个或三个及三个以上,“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。应理解,在本申请实施例中,“与A对应的B”表示B与A相关联。例如,可以根据A可以确定B。还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。此外,本申请实施例中出现的“连接”是指直接连接或者间接连接等各种连接方式,以实现设备间的通信,本申请实施例对此不做任何限定。
本申请实施例中出现的“传输”(transmit/transmission)如无特别说明,是指双向传输,包含发送和/或接收的动作。具体地,本申请实施例中的“传输”包含数据的发送,数据的接收,或者数据的发送和数据的接收。或者说,这里的数据传输包括上行和/或下行数据传输。数据可以包括信道和/或信号,上行数据传输即上行信道和/或上行信号传输,下行数据传输即下行信道和/或下行信号传输。本申请实施例中出现的“网络”与“系统”表达的是同一概念,时间校正系统即为通信网络。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备,如:可以是单片机,芯片等,或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (23)
1.一种时间校正方法,其特征在于,应用于计算设备的从时钟模块,所述计算设备还包括主时钟模块,所述方法包括:
获取多个时间戳,所述多个时间戳包括所述主时钟模块和所述从时钟模块至少两次互相发送时间消息时,所述主时钟模块和所述从时钟模块分别收发所述时间消息的时刻的时间戳;所述主时钟模块与所述从时钟模块通过第一通道收发时间消息;所述第一通道通过所述主时钟模块安装的尤内克斯域套接字文件与所述从时钟模块安装的虚拟串口之间的映射实现,所述虚拟串口由所述主时钟模块在所述从时钟模块中启动VirtIO驱动得到;
根据所述多个时间戳,确定所述从时钟模块相对所述主时钟模块的时间误差;
根据所述时间误差校正所述从时钟模块的系统时间。
2.根据权利要求1所述的时间校正方法,其特征在于,所述获取多个时间戳包括:
接收第一时间消息,第一时间消息携带第一时间戳,所述第一时间戳表征所述主时钟模块发送所述第一时间消息的时刻;
记录第二时间戳,所述第二时间戳表征所述主时钟模块接收所述第一时间消息的时刻;
响应于所述第一时间消息,向所述主时钟模块发送第二时间消息,并记录第三时间戳,所述第三时间戳表征所述从时钟模块发送第二时间消息的时刻;
接收第三时间消息,所述第三时间消息是主时钟模块响应于所述第二时间消息向从时钟模块发送的时间消息,所述第三时间消息包括第四时间戳,所述第四时间戳表征所述主时钟模块接收所述第二时间消息的时刻。
3.根据权利要求1或2所述的时间校正方法,其特征在于,所述主时钟模块为主操作系统的时钟模块,所述从时钟模块为从操作系统中的时钟模块,其中,所述主操作系统是所述计算设备的操作系统,所述从操作系统是运行于所述计算设备的虚拟机的操作系统。
4.根据权利要求1-3任一项所述的时间校正方法,其特征在于,所述从时钟模块的启动配置可扩展标记语言文件中设置有virtio serial字段和尤内克斯字段;则所述虚拟串口由所述主时钟模块根据添加了所述virtio serial字段和所述尤内克斯字段的所述启动配置可扩展标记语言文件,在所述从时钟模块中启动VirtIO驱动得到;其中,一个所述虚拟串口对应一个所述尤内克斯域套接字文件。
5.根据权利要求1-4任一项所述的时间校正方法,其特征在于,所述根据所述时间误差校正所述从时钟模块的系统时间,包括:
将所述时间误差输入预设计算机函数以校正所述从时钟模块的系统时间。
6.根据权利要求5所述的时间校正方法,其特征在于,在所述根据所述时间误差校正所述从时钟模块的时间之后,所述方法还包括:
在所述预设计算机函数输出的结果指示所述从时钟模块的系统时间校正失败的情况下,重新获取多个时间戳,以重新校正所述从时钟模块的系统时间。
7.一种时间校正方法,其特征在于,应用于计算设备的主时钟模块,所述计算设备还包括从时钟模块,所述方法包括:
通过第一通道向所述从时钟模块发送至少两个时间戳,所述时间戳用于校正获取到所述至少两个时间戳的所述从时钟模块的系统时间;所述至少两个时间戳包括表征所述主时钟模块向所述从时钟模块发送时间消息的时刻的时间戳,以及包括表征所述主时钟模块从所述从时钟模块接收到时间消息的时刻的时间戳;所述第一通道通过所述主时钟模块安装的尤内克斯域套接字文件与所述从时钟模块安装的虚拟串口之间的映射实现,所述虚拟串口由所述主时钟模块在所述从时钟模块中启动VirtIO驱动得到。
8.根据权利要求7所述的时间校正方法,其特征在于,所述通过第一通道向所述从时钟模块发送至少两个时间戳,包括:
向所述从时钟模块发送第一时间消息,所述第一时间消息携带表征所述主时钟模块向所述从时钟模块发送所述第一时间消息的时刻的时间戳;
接收来自所述从时钟模块的第二时间消息,所述第二时间消息是所述从时钟模块响应于所述第一时间消息向所述主时钟模块发送的时间消息;
响应于所述第二时间消息,向所述从时钟模块发送第三时间消息,所述第三时间消息包括表征所述主时钟模块接收所述第二时间消息的时刻的时间戳。
9.根据权利要求7或8所述的时间校正方法,其特征在于,所述主时钟模块为主操作系统的时钟模块,所述从时钟模块为从操作系统中的时钟模块,其中,所述主操作系统是所述计算设备的操作系统,所述从操作系统是运行于所述计算设备的虚拟机的操作系统。
10.根据权利要求7-9任一项所述的时间校正方法,其特征在于,所述从时钟模块的启动配置可扩展标记语言文件中设置有virtio serial字段和尤内克斯字段;所述虚拟串口由所述主时钟模块根据添加了所述virtio serial字段和所述尤内克斯字段的所述启动配置可扩展标记语言文件,在所述从时钟模块中启动VirtIO驱动得到;其中,一个所述虚拟串口对应一个所述尤内克斯域套接字文件。
11.一种时间校正装置,其特征在于,应用于计算设备的从时钟模块,所述计算设备还包括主时钟模块,所述装置包括:
收发模块,用于获取多个时间戳,所述多个时间戳包括所述主时钟模块和所述从时钟模块至少两次互相发送时间消息时,所述主时钟模块和所述从时钟模块分别收发所述时间消息的时刻的时间戳;所述主时钟模块与所述从时钟模块通过第一通道收发时间消息;所述第一通道通过所述主时钟模块安装的尤内克斯域套接字文件与所述从时钟模块安装的虚拟串口之间的映射实现,所述虚拟串口由所述主时钟模块在从时钟模块中启动VirtIO驱动得到;
处理模块,用于根据所述多个时间戳,确定所述从时钟模块相对所述主时钟模块的时间误差;
所述处理模块,还用于根据所述时间误差校正所述从时钟模块的系统时间。
12.根据权利要求11所述的时间校正装置,其特征在于,所述收发模块,具体用于:
接收第一时间消息,第一时间消息携带第一时间戳,所述第一时间戳表征所述主时钟模块发送所述第一时间消息的时刻;
记录第二时间戳,所述第二时间戳表征所述主时钟模块接收所述第一时间消息的时刻;
响应于所述第一时间消息,向所述主时钟模块发送第二时间消息,并记录第三时间戳,所述第三时间戳表征所述从时钟模块发送第二时间消息的时刻;
接收第三时间消息,所述第三时间消息是主时钟模块响应于所述第二时间消息向从时钟模块发送的时间消息,所述第三时间消息包括第四时间戳,所述第四时间戳表征所述主时钟模块接收所述第二时间消息的时刻。
13.根据权利要求11或12所述的时间校正装置,其特征在于,所述主时钟模块为主操作系统的时钟模块,所述从时钟模块为从操作系统中的时钟模块,其中,所述主操作系统是所述计算设备的操作系统,所述从操作系统是运行于所述计算设备的虚拟机的操作系统。
14.根据权利要求11-13任一项所述的时间校正装置,其特征在于,所述从时钟模块的启动配置可扩展标记语言文件中设置有virtio serial字段和尤内克斯字段;
则所述虚拟串口由所述主时钟模块根据添加了所述virtio serial字段和所述尤内克斯字段的所述启动配置可扩展标记语言文件,在所述从时钟模块中启动VirtIO驱动得到;其中,一个所述虚拟串口对应一个所述尤内克斯域套接字文件。
15.根据权利要求11-14任一项所述的时间校正装置,其特征在于,所述处理模块,具体用于:
将所述时间误差输入预设计算机函数以校正所述从时钟模块的系统时间。
16.根据权利要求15所述的时间校正装置,其特征在于,所述处理模块还用于:
在所述从时钟模块根据所述时间误差校正所述从时钟模块的时间之后,且所述预设计算机函数输出的结果表征所述从时钟模块的系统时间校正失败的情况下,重新校正所述从时钟模块的时间。
17.一种时间校正装置,其特征在于,应用于计算设备的主时钟模块,所述计算设备还包括从时钟模块,所述装置包括:
发送模块,用于通过第一通道向所述从时钟模块发送至少两个时间戳,所述时间戳用于校正获取到所述至少两个时间戳的所述从时钟模块的系统时间;所述至少两个时间戳包括表征所述主时钟模块向所述从时钟模块发送时间消息的时刻的时间戳,以及包括表征所述主时钟模块从所述从时钟模块接收到时间消息的时刻的时间戳;所述第一通道包括所述主时钟模块安装的尤内克斯域套接字文件与所述从时钟模块安装的虚拟串口之间的映射,所述虚拟串口由所述主时钟模块在所述从时钟模块中启动VirtIO驱动得到。
18.根据权利要求17所述的时间校正装置,其特征在于,所述装置还包括接收模块;
所述发送模块,用于向所述从时钟模块发送第一时间消息,所述第一时间消息携带表征所述主时钟模块向所述从时钟模块发送所述第一时间消息的时刻的时间戳;
所述接收模块,用于接收来自所述从时钟模块的第二时间消息,所述第二时间消息是所述从时钟模块响应于所述第一时间消息向所述主时钟模块发送的时间消息;
所述发送模块,用于响应于所述第二时间消息,向所述从时钟模块发送第三时间消息,所述第三时间消息包括表征所述主时钟模块接收所述第二时间消息的时刻的时间戳。
19.根据权利要求17或18所述的时间校正装置,其特征在于,所述主时钟模块为主操作系统的时钟模块;所述从时钟模块为客操作系统的时钟模块。
20.根据权利要求17-19任一项所述的时间校正装置,其特征在于,所述从时钟模块的启动配置可扩展标记语言文件中设置有virtio serial字段和尤内克斯字段;
所述虚拟串口由所述主时钟模块根据添加了所述virtio serial字段和所述尤内克斯字段的所述启动配置可扩展标记语言文件,在所述从时钟模块中启动VirtIO驱动得到;其中,一个所述虚拟串口对应一个所述尤内克斯域套接字文件。
21.一种时间校正装置,其特征在于,所述时间校正装置包括处理器,所述处理器用于支持所述时间校正装置执行如权利要求1-10任一项所述的方法。
22.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储计算机指令,当所述计算机指令运行时,执行如权利要求1-10任一项所述的方法。
23.一种时间校正系统,其特征在于,所述时间校正系统包括:主时钟模块和从时钟模块;
所述主时钟模块,用于通过第一通道收发向所述从时钟模块发送至少两次时间消息;所述时间消息包括所述主时钟模块发送所述时间消息的时刻的时间戳;所述第一通道通过所述主时钟模块安装的尤内克斯域套接字文件与所述从时钟模块安装的虚拟串口之间的映射实现,所述虚拟串口由所述主时钟模块在从时钟模块中启动VirtIO驱动得到;
所述从时钟模块,用于接收所述至少两次时间消息,并记录接收所述至少两次时间消息的时刻的时间戳;以及响应于所述至少两次时间消息中的第一次时间消息,向所述主时钟模块发送至少一次时间消息,并记录发送所述至少一次时间消息的时刻的时间戳;
所述从时钟模块,还用于根据接收到的所述时间戳和记录到的所述时间戳,确定所述从时钟模块相对所述主时钟模块的时间误差;
所述从时钟模块,还用于根据所述时间误差校正所述从时钟模块的系统时间。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211414938.9A CN118041477A (zh) | 2022-11-11 | 2022-11-11 | 时间校正方法及装置 |
PCT/CN2023/103446 WO2024098783A1 (zh) | 2022-11-11 | 2023-06-28 | 时间校正方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211414938.9A CN118041477A (zh) | 2022-11-11 | 2022-11-11 | 时间校正方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118041477A true CN118041477A (zh) | 2024-05-14 |
Family
ID=90990132
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211414938.9A Pending CN118041477A (zh) | 2022-11-11 | 2022-11-11 | 时间校正方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN118041477A (zh) |
WO (1) | WO2024098783A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105703865A (zh) * | 2014-11-25 | 2016-06-22 | 中兴通讯股份有限公司 | 一种自动获取1588链路非对称性延时的方法及装置 |
CN106775946B (zh) * | 2016-12-16 | 2019-05-24 | 无锡华云数据技术服务有限公司 | 一种虚拟机快速创建方法 |
US10355799B2 (en) * | 2017-09-28 | 2019-07-16 | Ciena Corporation | Pseudowire clock recovery |
CN110572230A (zh) * | 2019-09-10 | 2019-12-13 | 北京邮电大学 | 一种用于实现时间同步的修正方法及装置 |
CN111726189B (zh) * | 2020-06-15 | 2022-11-11 | 合肥哈工轩辕智能科技有限公司 | 基于时间戳标记电路的双核系统时钟同步方法及装置 |
-
2022
- 2022-11-11 CN CN202211414938.9A patent/CN118041477A/zh active Pending
-
2023
- 2023-06-28 WO PCT/CN2023/103446 patent/WO2024098783A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024098783A1 (zh) | 2024-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10976769B2 (en) | Method and system for time synchronization among systems using parallel sysplex links | |
US12061566B2 (en) | IO processing method and apparatus | |
US9875204B2 (en) | System and method for providing a processing node with input/output functionality provided by an I/O complex switch | |
US10496676B2 (en) | Synchronization cache seeding | |
CN111061338B (zh) | 一种基板管理控制器时序的更新方法、系统及设备 | |
CN111314799A (zh) | 终端系统构架、通信系统及通信方法、存储介质 | |
CN110502310B (zh) | 一种虚拟机的时间同步方法及装置 | |
US11853767B2 (en) | Inter-core data processing method, system on chip and electronic device | |
WO2017032112A1 (zh) | 一种与无中央处理器单板通讯的方法及通讯设备 | |
US9459652B1 (en) | Virtual reference clock for virtual machines | |
CN110865868B (zh) | 一种低延迟控制方法、装置及其设备 | |
CN109471588B (zh) | 一种同步方法及设备 | |
CN116028455A (zh) | 一种数据处理方法、装置、存储介质及电子设备 | |
EP4120754A1 (en) | Clock calibration method and apparatus | |
US20110161716A1 (en) | Systems, methods, and apparatuses for providing access to real time information | |
CN110515540B (zh) | 一种拓扑硬盘的方法及装置 | |
CN117729092A (zh) | 一种重启原因的确定方法及电子设备 | |
CN118041477A (zh) | 时间校正方法及装置 | |
CN109933418B (zh) | 一种时间戳同步方法、电子设备及异构设备 | |
CN114779883B (zh) | 系统时钟同步方法、装置、系统及存储介质 | |
CN108563492B (zh) | 数据获取方法、虚拟机以及电子设备 | |
WO2022041936A1 (zh) | 一种分布式系统中的时钟同步方法、装置及系统 | |
US12019466B2 (en) | Virtual precision time protocol clock devices for virtual nodes | |
CN118394453B (zh) | 用户态半虚拟化设备创建以及删除系统、设备及集群 | |
CN117873566A (zh) | 跨时钟域寄存器读写接口异步处理方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |