CN113392063A - 时间同步方法、装置及系统 - Google Patents
时间同步方法、装置及系统 Download PDFInfo
- Publication number
- CN113392063A CN113392063A CN202110656930.2A CN202110656930A CN113392063A CN 113392063 A CN113392063 A CN 113392063A CN 202110656930 A CN202110656930 A CN 202110656930A CN 113392063 A CN113392063 A CN 113392063A
- Authority
- CN
- China
- Prior art keywords
- subsystem
- register
- frequency
- counter
- count value
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/12—Synchronisation of different clock signals provided by a plurality of clock generators
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Power Sources (AREA)
Abstract
一种时间同步方法、装置及系统,该方法包括:预先在各子系统中分别设置相同频率的高频时钟源和低频时钟源;接收第一子系统唤醒后发送的映射关系节点信息,所述映射关系节点信息包括:架构计数器的计数值、空转计数器的计数值、第一子系统启动时间;第二子系统中有事件触发时,获取所述第一子系统的状态、以及所述高频时间源计数器的计数值和所述低频时间源计数器的计数值;根据所述第一子系统的状态确定基准时钟,并根据所述映射关系节点信息中及所述第二子系统中与所述基准时钟相关的计数值确定所述事件的触发时间。利用本发明,可以实现不同系统间的精准同步。
Description
技术领域
本发明涉及时间同步技术领域,具体地涉及一种时间同步方法、装置及系统。
背景技术
在性能和功耗敏感的终端芯片领域,SoC(System on Chip,片上系统或称系统级芯片)已占据主导地位,而且其应用正在扩展到更广的领域。在有些应用中,SoC上可能会存在多个不同的子系统,这些子系统各自维护它们的本地时钟,但不同子系统间需要在时间上保持同步。
在现有技术中,考虑到功耗问题,通常是作为同步基准的子系统采用高精度时钟源,作为被同步的子系统采用低精度时钟源。时间同步通常有两种方式:一种方式是基准子系统定时向待同步的子系统同步时间;另外一种方式是由待同步的子系统定时向基准子系统发送授时请求,以获取基准时间。
这种方式会存在以下问题:
1)基准子系统接收到上述授时请求时如果正处在睡眠状态,则会被唤醒,会增加系统功耗;
2)数据包的传输会有一定的延迟,待同步子接收基准子系统发送的包含当前时间的数据包后,需要对其进行解析,解析出其中包含的时间那一刻,已晚于当前时间,因而无法满足一些需要保持高精度时间同步的应用需求。比如,情境感知应用中,需要AP(Application Processor,应用处理器)与CH(Context Hub,情境感知中枢)两个子系统间保持高精度的时间同步,以便于CH上的传感器获取事件发生的精准时间,完成VR(VirtualReality,虚拟现实)的需求。
发明内容
本发明实施例提供一种时间同步方法、装置及系统,以满足不同子系统间高精度的时间同步需求。
为此,本发明实施例提供如下技术方案:
一种时间同步方法,所述方法包括:
预先在各子系统中分别设置相同频率的高频时钟源和低频时钟源;第一子系统中的高频时钟源为架构计数器,第一子系统中的低频时钟为空转计数器,并且第一子系统休眠时,所述架构计数器停止计数;第二子系统中的高频时钟源为高频时间源计数器,第二子系统中的低频时钟源为低频时间源计数器;
接收第一子系统唤醒后发送的映射关系节点信息,所述映射关系节点信息包括:架构计数器的计数值ATC0、空转计数器的计数值SFRT0、第一子系统启动时间T0;
第二子系统中有事件触发时,获取所述第一子系统的状态、以及所述高频时间源计数器的计数值ATC1和所述低频时间源计数器的计数值SFRT1;
根据所述第一子系统的状态确定基准时钟,并根据所述映射关系节点信息中及所述第二子系统中与所述基准时钟相关的计数值确定所述事件的触发时间。
可选地,所述根据所述第一子系统的状态确定基准时钟,并根据所述映射关系节点信息中及所述第二子系统中与所述基准时钟相关的计数值确定所述事件的触发时间包括:如果所述第一子系统的状态为睡眠状态,则将所述第一子系统中的低频时钟源作为基准时钟,并根据所述映射关系节点信息中的空转计数器的计数值SFRT0和第一子系统启动时间T0、以及所述低频时间源计数器的计数值SFRT1确定所述事件的触发时间;
如果所述第一子系统的状态为唤醒状态,则将所述第一子系统中的高频时钟源作为基准时钟,并根据所述映射关系节点信息中的架构计数器的计数值ATC0和子系统启动时间T0、以及所述高频时间源计数器的计数值ATC1确定所述事件的触发时间。
可选地,所述方法还包括:
设置寄存器组,所述寄存器组包括:第一寄存器、第二寄存器、状态寄存器;所述状态寄存器用于存储指示所述第一子系统的状态的数值;
在所述事件触发时,触发所述第一寄存器锁存所述高频时间源计数器的计数值ATC1;触发所述第二寄存器锁存所述低频时间源计数器的计数值SFRT1;
所述获取所述第一子系统的状态包括:
读取所述状态寄存器的数值,并根据所述状态寄存器的数值确定所述第一子系统的状态;
所述分别获取所述高频时间源计数器的计数值ATC1和所述低频时间源计数器的计数值SFRT1包括:
读取所述第一寄存器的数值得到所述高频时间源计数器的计数值ATC1;
读取所述第二寄存器的数值得到所述低频时间源计数器的计数值SFRT1。
可选地,所述方法还包括:
将所述寄存器设置在所述第二子系统中、或者设置在所述第二子系统外的不掉电区域。
可选地,所述方法还包括:
预先设置触发方式,所述触发方式包括:电平触发、上升沿或下降沿触发;
在所述事件触发时,利用预先设置的触发方式触发所述第一寄存器锁存所述高频时间源计数器的计数值ATC1;利用预先设置的触发方式触发所述第二寄存器锁存所述低频时间源计数器的计数值SFRT。
可选地,所述寄存器组有多个,不同寄存器组对应不同的事件。
可选地,所述方法还包括:
在所述事件触发时,设置中断触发标志;
在读取所述第一寄存器的数值、以及所述第二寄存器的数值后,清除所述中断触发标志;
在所述中断触发标志被清除前,如果所述事件再次触发,则丢弃所述事件。
可选地,所述方法还包括:
使用全局结构体变量存储所述映射关系节点信息。
可选地,所述第一子系统和所述第二子系统位于同一SoC上。
一种时间同步装置,所述装置包括:
节点信息接收模块,用于接收第一子系统唤醒后发送的映射关系节点信息,所述映射关系节点信息包括:架构计数器的计数值ATC0、空转计数器的计数值SFRT0、第一子系统启动时间T0;所述架构计数器和所述空转计数器分别为设置在第一子系统中的高频时钟源和低频时钟源;并且所述第一子系统休眠时,所述架构计数器停止计数,所述第一子系统唤醒时,所述架构计数器继续计数;
状态获取模块,用于第二子系统中有事件触发时,获取所述第一子系统的状态;
计数值获取模块,用于所述事件触发时,分别获取所述高频时间源计数器的计数值ATC1和所述低频时间源计数器的计数值SFRT1;所述高频时间源计数器和所述低频时间源计算器分别为设置在第二子系统中的高频时钟源和低频时钟源;所述第二子系统中的高频时钟源与所述第一子系统中的高频时钟源频率相同,所述第二子系统中的低频时钟源与所述第一子系统中的低频时钟源频率相同;
同步模块,用于根据所述第一子系统的状态确定基准时钟,并根据所述映射关系节点信息中及所述第二子系统中与所述基准时钟相关的计数值确定所述事件的触发时间。
可选地,所述同步模块,具体用于在所述第一子系统的状态为睡眠状态时,将所述第一子系统中的低频时钟源作为基准时钟,并根据所述映射关系节点信息中的空转计数器的计数值SFRT0和子系统启动时间T0、以及所述低频时间源计数器的计数值SFRT1确定所述事件的触发时间;在所述第一子系统的状态为唤醒状态时,将所述第一子系统中的高频时钟源作为基准时钟,并根据所述映射关系节点信息中的架构计数器的计数值ATC0和子系统启动时间T0、以及所述高频时间源计数器的计数值ATC1确定所述事件的触发时间。
可选地,所述装置还包括:
寄存器组,所述寄存器组包括:第一寄存器、第二寄存器、状态寄存器;所述状态寄存器用于存储指示所述第一子系统的状态的数值;
事件触发模块,用于在所述事件触发时,触发所述第一寄存器锁存所述高频时间源计数器的计数值ATC1;触发所述第二寄存器锁存所述低频时间源计数器的计数值SFRT1;
所述状态获取模块,用于读取所述状态寄存器的数值,并根据所述状态寄存器的数值确定所述第一子系统的状态;
所述计数值获取模块,具体用于读取所述第一寄存器的数值得到所述高频时间源计数器的计数值ATC1,读取所述第二寄存器的数值得到所述低频时间源计数器的计数值SFRT1。
可选地,所述寄存器组设置在所述第二子系统中、或者设置在所述第二子系统外的不掉电区域。
可选地,所述装置还包括:
触发方式设置模块,用于预先设置触发方式,所述触发方式包括:电平触发、上升沿或下降沿触发;
所述事件触发模块,具体用于在所述事件触发时,利用所述触发方式设置模块预先设置的触发方式触发所述第一寄存器锁存所述高频时间源计数器的计数值ATC1;利用预先设置的触发方式触发所述第二寄存器锁存所述低频时间源计数器的计数值SFRT。
可选地,所述寄存器组有多个,不同寄存器组对应不同的事件。
可选地,所述装置还包括:
中断标志管理模块,用于在所述事件触发时,设置中断触发标志;在所述计数值获取模块读取所述第一寄存器的数值、以及所述第二寄存器的数值后,清除所述中断触发标志;
事件管理模块,用于在所述中断触发标志被清除前,所述事件再次触发时,丢弃所述事件。
可选地,所述装置还包括:
节点信息存储模块,用于使用全局结构体变量存储所述映射关系节点信息。
一种时间同步系统,所述系统包括:第一子系统、一个或多个第二子系统;所述第一子系统和所述第二子系统中分别设置有相同频率的高频时钟源、以及相同频率的低频时钟源;
所述第一子系统,用于在唤醒时获取映射关系节点信息,并将所述映射关系节点信息发送给所述第二子系统;
所述第二子系统包括所述时间同步装置,用于根据所述映射关系节点信息确定事件的触发时间。
可选地,所述第一子系统和所述第二子系统位于同一SoC上。
可选地,所述第一子系统和所述第二子系统通过SIPC协议进行通信。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质为非易失性存储介质或非瞬态存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时执行上述方法的步骤。
本发明实施例还提供一种电子设备,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行上述方法的步骤。
本发明实施例还提供一种芯片系统,包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片系统的通信设备,执行上述方法的步骤。
本发明实施例提供的时间同步方法、装置及系统,在各子系统中分别设置相同频率的高频时钟源和低频时钟源,而且作为同步基准的第一子系统在休眠时,其高频时钟源停止工作,由其低频时钟源计数,以降低第一子系统的功耗。第一子系统每次唤醒后需要向作为被同步的第二子系统发送映射关系节点信息,该信息中包括:架构计数器的计数值ATC0、空转计数器的计数值SFRT0、第一子系统启动时间T0。这样,第二子系统中有事件触发时,可以根据第一系统的当前状态决定所要参考的基准时钟,进而根据所述映射关系节点信息以及自身时钟源的计数信息,计算该事件触发的准确时间。由于所述事件触发时,寄存器立即锁存自身时钟源的计数值,该动作为硬件执行,无误差,保证了计算结果的准确性,从而实现与第一子系统时间的精准同步,而且不会影响第一子系统的休眠,兼顾了不同子系统的功耗及时间的精准同步。
附图说明
图1是本发明实施例时间同步方法的一种流程图;
图2是利用本发明实施例时间同步方法实现AP和CH系统间同步的过程示意图;
图3是本发明实施例时间同步装置的一种结构框图;
图4是本发明实施例时间同步装置的另一种结构框图。
具体实施方式
为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
针对现有技术中不同子系统间时间同步所存在的上述问题,本发明实施例提供一种时间同步方法、装置及系统,在各子系统中分别设置相同频率的高频时钟源和低频时钟源,而且作为同步基准的第一子系统在休眠时,其高频时钟源停止工作,由其低频时钟源计数,以降低第一子系统的功耗。第一子系统每次唤醒后需要向作为被同步的第二子系统发送映射关系节点信息,该信息中包括:架构计数器的计数值ATC0、空转计数器的计数值SFRT0、第一子系统启动时间T0。这样,第二系统中有事件触发时,可以根据第一系统的当前状态决定所要参考的基准时钟,进而根据所述映射关系节点信息以及自身时钟源的计数信息,计算该事件触发的准确时间,实现与第一子系统时间的精准同步。
如图1所示,是本发明实施例时间同步方法的流程图,包括以下步骤:
步骤101,预先在各子系统中分别设置相同频率的高频时钟源和低频时钟源。
其中,第一子系统中的高频时钟源为架构计数器,第一子系统中的低频时钟为空转计数器,并且第一子系统休眠时,所述架构计数器停止计数;第二子系统中的高频时钟源为高频时间源计数器,第二子系统中的低频时钟源为低频时间源计数器。
需要说明的是,为了进一步保证不同子系统间时间的精准同步,在实际应用中,不同子系统中相同频率的时钟源可优选由同一晶振分频得到。
步骤102,接收第一子系统唤醒后发送的映射关系节点信息。
所述映射关系节点信息包括:架构计数器的计数值ATC0、空转计数器的计数值SFRT0、第一子系统启动时间T0。
需要说明的是,第一子系统可以在每次唤醒后获取所述映射关系节点信息,并将所述映射关系节点信息发送给第二子系统。所述映射关系节点信息可以使用一个全局结构体变量存储。
不同子系统间的通信可以由厂商自行决定,比如可以使用SIPC(SPRD Inter-Processor Communication,一种通讯处理器间通信机制)实现,对此本发明实施例不做限定。
步骤103,第二子系统中的事件触发时,获取所述第一子系统的状态、以及所述高频时间源计数器的计数值ATC1和所述低频时间源计数器的计数值SFRT1。
所述高频时间源计数器的计数值ATC1和所述低频时间源计数器的计数值SFRT1是第二子系统时钟源对应的时间,在具体实现中可以由硬件从相应时钟源的计数寄存器中读取,对此将在后面详细说明。
步骤104,根据所述第一子系统的状态确定基准时钟,并根据所述映射关系节点信息中及所述第二子系统中与所述基准时钟相关的计数值确定所述事件的触发时间。
具体如下:
如果所述第一子系统的状态为睡眠状态,则将所述第一子系统中的低频时钟源作为基准时钟,并根据所述映射关系节点信息中的空转计数器的计数值SFRT0和第一子系统启动时间T0、以及所述低频时间源计数器的计数值SFRT1确定所述事件的触发时间T,具体计算公式如下:
事件触发的时间T(ns)=T0+(SFRT1-SFRT0)*(1000000000/(Fl*1024));
其中,Fl为所述低频时钟源的频率,单位为KHz。
如果所述第一子系统的状态为唤醒状态,则将所述第一子系统中的高频时钟源作为基准时钟,并根据所述映射关系节点信息中的架构计数器的计数值ATC0和子系统启动时间T0、以及所述高频时间源计数器的计数值ATC1确定所述事件的触发时间,具体计算公式如下:
事件触发的时间T(ns)=T0+(ATC1-ATC0)*(1000000000/(Fh*1024*1024));
其中,Fh为所述高频时钟源的频率,单位为MHz。
需要说明的是,所述高频时钟源和低频时钟源的频率可以根据应用需要来选择,比如,高频时钟源选用26MHz,低频时钟源选用32KHz。
在一种具体实现方式中,可以利用寄存器锁存第二子系统中各计数器的计数值,利用中断程序来读取所述寄存器的锁存值。进一步地,还可以设置状态寄存器,用于存储指示所述第一子系统的状态的数值。而且,可以将这些寄存器作为一组,即设置寄存器组。由于所述第二子系统中的事件可能会有多种,因此可以针对事件的种类,设置多组所述寄存器组,每个寄存器组对应一种事件。
为了描述方便,将所述寄存器组中的寄存器分别称为:第一寄存器、第二寄存器、状态寄存器。其中,所述状态寄存器用于存储指示所述第一子系统的状态的数值;所述第一寄存器对应所述高频时间源计数器,所述第二寄存器对应所述低频时间源计数器。
相应地,在所述事件触发时,触发所述第一寄存器锁存所述高频时间源计数器的计数值ATC1;触发所述第二寄存器锁存所述低频时间源计数器的计数值SFRT1。
读取所述状态寄存器的数值,根据该数值即可确定所述第一子系统的状态。比如,在第一子系统休眠时,将所述状态寄存器写入0,第一子系统唤醒时,将所述状态寄存器写入1;或反之,在第一子系统休眠时,将所述状态寄存器写入1,第一子系统唤醒时,将所述状态寄存器写入0,对此本发明实施例不做限定。
相应地,通过读取所述第一寄存器的数值可得到所述高频时间源计数器的计数值ATC1;通过读取所述第二寄存器的数值可得到所述低频时间源计数器的计数值SFRT1。
需要说明的是,所述寄存器组可以设置在第二系统中或其它不掉电区域。另外,为了不影响第二系统中其他任务的执行,可以设置中断触发标志,并通过中断程序来读取第一寄存器和第二寄存器的数值。具体地,在所述事件触发时,设置中断触发标志;在读取所述第一寄存器的数值、以及所述第二寄存器的数值后,清除所述中断触发标志。
进一步地,还可以预先设置各寄存器的触发方式,比如,电平触发、或者上升/下降沿触发。这样,在所述事件触发时,利用预先设置的触发方式触发所述第一寄存器锁存所述高频时间源计数器的计数值ATC1;利用预先设置的触发方式触发所述第二寄存器锁存所述低频时间源计数器的计数值SFRT1。
前面提到,可以针对事件的种类,设置多组所述寄存器组,每个寄存器组对应一种事件。需要说明的是,针对每种事件的触发,同步的过程都是各自独立进行的,由该事件对应的寄存器组完成对第二子系统时钟源当前时间的锁存,进而按照前面所描述的方式确定该事件触发的准确时间。
本发明实施例提供的时间同步方法,在各子系统中分别设置相同频率的高频时钟源和低频时钟源,而且作为同步基准的第一子系统在休眠时,其高频时钟源停止工作,由其低频时钟源计数,以降低第一子系统的功耗。第一子系统每次唤醒后需要向作为被同步的第二子系统发送映射关系节点信息,该信息中包括:架构计数器的计数值ATC0、空转计数器的计数值SFRT0、第一子系统启动时间T0。这样,第二系统中有事件触发时,可以根据第一系统的当前状态决定所要参考的基准时钟,进而根据所述映射关系节点信息以及自身时钟源的计数信息,计算该事件触发的准确时间,实现与第一子系统时间的精准同步,而且不会影响第一子系统的休眠,兼顾了不同子系统的功耗及时间的精准同步。
本发明实施例提供的时间同步方法,可以应用于所有具备多个子系统、且子系统间存在高精度时间同步需求模块的设备。例如:VR(Virtual Reality,虚拟现实)设备,通讯芯片,车载芯片等。
下面以AP(Application Processor,应用处理器)与CH(Context Hub,情境感知中枢)两个子系统间的时间同步为例,进一步详细说明本发明方案。其中,CH上设置有多种传感器,用于采集不同的事件,而且需要获取事件发生的精准时间,以完成VR的需求。
AP和CH两个子系统间同步的过程如图2所示。其中,左侧为AP的处理流程,右侧为CH的处理流程。AP与CH是SoC上的两个独立子系统。AP和CH时间同步的实现依赖于硬件,硬件提供四组129bit的寄存器。
AP侧的处理流程如下:
1)在AP子系统休眠时,将硬件AP状态寄存器写0,代表系统进入深度睡眠状态;
2)在AP子系统唤醒时:
将硬件AP状态寄存器写1;
创建新的映射关系节点信息,所述映射关系节点信息包括:架构计时器数值、空转计数器数值、系统启动时间(包含睡眠时间);其中,所述系统启动时间可以通过调用相应系统函数接口即可得到。
将新的映射关系节点信息通过处理器间通信机制发送至CH子系统。
需要说明的是,AP子系统会不定时地进行休眠,在休眠时,AP子系统中的高频时钟源停止增长。在AP子系统唤醒后,高频时钟源与AP子系统的启动时间boottime的映射就会出现偏差,此时需要更新所述映射关系节点信息。
CH侧的处理流程如下:
1)设置事件的触发条件;
2)使能寄存器使能标志位sensor ts,设置事件的触发条件event trigger_en(电平触发,或上下沿触发);
3)在A_事件1发生时,硬件会同时锁存AP状态寄存器、26MHz计数器数值与32KHz计数器数值,将26MHz计数器数值存储至第一寄存器中,将32KHz计数器数值存储至第二寄存器中;
4)中断处理程序开始,设置中断触发标志,在中断处理函数中,根据AP状态寄存器中的数值,读取第一寄存器或第二寄存器中的数值;
5)清除中断触发标志,中断处理程序结束;
需要说明的是,正常工作时,与A_事件1来自同一传感器的A_事件2事件不会发生,CH侧通过配置传感器的采样频率,保证采样区间足够大,足够软件中断处理完当前事件A_事件1。只有在系统发生异常(比如,系统异常、或传感器异常等情况)时,才有可能在未处理完A_事件1时,A_事件2已到来,此时硬件不会重复存储A_事件2的触发时间,仍保留A_事件1的触发时间。
当然,如果在所述中断触发标志被清除前,如果有相同事件再次发生,则丢弃所述事件。
6)整合数据,调用转换函数,根据AP子系统的状态,计算出A_事件1的触发时间并返回该时间,该时间就是A_事件1触发时,AP子系统的启动时间,即boottime。
需要说明的是,在实际应用中,可以通过系统睡眠、唤醒处理列表注册新的回调函数,完成相关逻辑。具体地,在系统进入休眠时,会调用休眠流程,在睡眠流程中非常重要的一步就是需要处理工作列表,工作列表是不同的驱动程序向其中注册的函数接口。针对本发明方案,需要向该工作列表中新增需要处理的工作。同样,在系统进入唤醒流程时,需要完成一系列工作,本方案需要新增需要处理的工作。
在本发明实施例中,由CH侧进行时间计算处理,相比于由AP侧计算,具有以下优势:
1)CH相比于AP主频虽然慢很多,但是时间的转换是基于一个时间点进行的,CH要求的是准确度,对转换速率不关注,因此CH进行转换是可行的。
2)简化AP侧数据结构的维护,仅保留最新一份映射关系节点信息即可,每次在系统唤醒时将更新后的映射关系节点信息发送给CH。
3)CH在得到所述映射关系节点信息后,计算得到AP的启动时间(boottime),从而实现了与AP子系统时间同步。其它子模块同样可以使用该时间,例如日志模块,从而使CH子系统中不同子模块间的时间一致性更好。
需要说明的是,本发明实施例提供的时间同步方法,不仅局限于上述AP和CH系统,位于同一SoC(System-on-a-Chip,系统级芯片)上的任意两个或多个子系统都可以按照本发明方案实现时间同步功能。
相应地,本发明实施例还提供一种时间同步装置,如图3所示,是该装置的一种结构框图。
在该实施例中,所述装置包括以下各模块:
节点信息接收模块301,用于接收第一子系统唤醒后发送的映射关系节点信息,所述映射关系节点信息包括:架构计数器的计数值ATC0、空转计数器的计数值SFRT0、第一子系统启动时间T0;所述架构计数器和所述空转计数器分别为设置在第一子系统中的高频时钟源和低频时钟源;并且所述第一子系统休眠时,所述架构计数器停止计数,所述第一子系统唤醒时,所述架构计数器继续计数;
状态获取模块302,用于第二子系统中有事件触发时,获取所述第一子系统的状态;
计数值获取模块303,用于所述事件触发时,分别获取所述高频时间源计数器的计数值ATC1和所述低频时间源计数器的计数值SFRT1;所述高频时间源计数器和所述低频时间源计算器分别为设置在第二子系统中的高频时钟源和低频时钟源;所述第二子系统中的高频时钟源与所述第一子系统中的高频时钟源频率相同,所述第二子系统中的低频时钟源与所述第一子系统中的低频时钟源频率相同;
同步模块304,用于根据所述第一子系统的状态确定基准时钟,并根据所述映射关系节点信息中及所述第二子系统中与所述基准时钟相关的计数值确定所述事件的触发时间。
具体地,所述同步模块304在所述第一子系统的状态为睡眠状态时,将所述第一子系统中的低频时钟源作为基准时钟,并根据所述映射关系节点信息中的空转计数器的计数值SFRT0和子系统启动时间T0、以及所述低频时间源计数器的计数值SFRT1确定所述事件的触发时间;在所述第一子系统的状态为唤醒状态时,将所述第一子系统中的高频时钟源作为基准时钟,并根据所述映射关系节点信息中的架构计数器的计数值ATC0和子系统启动时间T0、以及所述高频时间源计数器的计数值ATC1确定所述事件的触发时间。具体计算过程可参照前面本发明方法实施例中的描述,在此不再赘述。
在实际应用中,可以利用寄存器锁存第二子系统中各计数器的计数值,利用中断程序来读取所述寄存器的锁存值。进一步地,还可以设置状态寄存器,用于存储指示所述第一子系统的状态的数值。而且,可以将这些寄存器作为一组,即设置寄存器组。由于所述第二子系统中的事件可能会有多种,因此可以针对事件的种类,设置多组所述寄存器组,每个寄存器组对应一种事件。
如图4所示,是本发明时间同步装置的另一种结构框图。
在该实施例中,所述装置还包括:
寄存器组401,所述寄存器组包括:第一寄存器、第二寄存器、状态寄存器;所述状态寄存器用于存储指示所述第一子系统的状态的数值;
事件触发模块402,用于在所述事件触发时,触发所述第一寄存器锁存所述高频时间源计数器的计数值ATC1;触发所述第二寄存器锁存所述低频时间源计数器的计数值SFRT1。
相应地,在该实施例中,所述状态获取模块302读取所述状态寄存器的数值,并根据所述状态寄存器的数值确定所述第一子系统的状态。
所述计数值获取模块303读取所述第一寄存器的数值得到所述高频时间源计数器的计数值ATC1,读取所述第二寄存器的数值得到所述低频时间源计数器的计数值SFRT1。
需要说明的是,在实际应用中,可以根据事件的种类不同,设置一个或多个所述寄存器组,不同的寄存器组对应不同种类的事件。另外,所述寄存器组可以设置在所述第二子系统中、或者设置在所述第二子系统外的不掉电区域。
进一步地,在本发明装置另一实施例中,所述装置还可包括:触发方式设置模块(未图示),用于预先设置触发方式,所述触发方式包括:电平触发、上升沿或下降沿触发。相应地,所述事件触发模块402在所述事件触发时,利用所述触发方式设置模块预先设置的触发方式触发所述第一寄存器锁存所述高频时间源计数器的计数值ATC1;利用预先设置的触发方式触发所述第二寄存器锁存所述低频时间源计数器的计数值SFRT1。
进一步地,在本发明装置另一实施例中,所述装置还可包括:中断标志管理模块(未图示),用于在所述事件触发时,设置中断触发标志;在所述计数值获取模块303读取所述第一寄存器的数值、以及所述第二寄存器的数值后,清除所述中断触发标志。
进一步地,在本发明装置另一实施例中,所述装置还可包括:事件管理模块(未图示),用于在所述中断触发标志被清除前,所述事件再次触发时,丢弃所述事件。
进一步地,在本发明装置另一实施例中,所述装置还可包括:节点信息存储模块(未图示),用于使用全局结构体变量存储所述映射关系节点信息。
本发明实施例提供的时间同步装置,在各子系统中分别设置相同频率的高频时钟源和低频时钟源,而且作为同步基准的第一子系统在休眠时,其高频时钟源停止工作,由其低频时钟源计数,以降低第一子系统的功耗。第一子系统每次唤醒后需要向作为被同步的第二子系统发送映射关系节点信息,该信息中包括:架构计数器的计数值ATC0、空转计数器的计数值SFRT0、第一子系统启动时间T0。这样,第二系统中有事件触发时,可以根据第一系统的当前状态决定所要参考的基准时钟,进而根据所述映射关系节点信息以及自身时钟源的计数信息,计算该事件触发的准确时间,实现与第一子系统时间的精准同步,而且不会影响第一子系统的休眠,兼顾了不同子系统的功耗及时间的精准同步。
本发明实施例提供的时间同步装置,可以应用于所有具备多个子系统、且子系统间存在高精度时间同步需求模块的设备。例如:VR(Virtual Reality,虚拟现实)设备,通讯芯片,车载芯片等。
相应地,本发明实施例还提供一种时间同步系统,所述系统包括:第一子系统、一个或多个第二子系统;所述第一子系统和所述第二子系统中分别设置有相同频率的高频时钟源、以及相同频率的低频时钟源;
所述第一子系统,用于在唤醒时获取映射关系节点信息,并将所述映射关系节点信息发送给所述第二子系统;
所述第二子系统包括上面各实施例中的时间同步装置,用于根据所述映射关系节点信息确定事件的触发时间。
所述第一子系统和所述第二子系统可位于同一SoC上,所述第一子系统和所述第二子系统的通信可以由厂商自己确定,比如通过SIPC协议进行通信,对此本发明实施例不做限定。
在具体实施中,上述时间同步装置和系统可以对应于网络设备中的芯片,例如SoC、基带芯片、芯片模组等。
在具体实施中,关于上述实施例中描述的各个装置、产品包含的各个模块/单元,其可以是软件模块/单元,也可以是硬件模块/单元,或者也可以部分是软件模块/单元,部分是硬件模块/单元。
例如,对于应用于或集成于芯片的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于芯片内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现;对于应用于或集成于芯片模组的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,不同的模块/单元可以位于芯片模组的同一组件(例如芯片、电路模块等)或者不同组件中,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于芯片模组内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现;对于应用于或集成于终端的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,不同的模块/单元可以位于终端内同一组件(例如,芯片、电路模块等)或者不同组件中,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于终端内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质为非易失性存储介质或非瞬态存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时执行上述图1或图2对应实施例提供的方法的步骤。或者,所述计算机程序被处理器运行时执行上述图1对应实施例提供的方法的步骤。
本发明实施例还提供了另一种时间同步装置,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行上述图1或图2对应实施例所提供的方法的步骤。
本发明实施例还提供了一种电子设备,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行上述图1或图2对应实施例所提供的方法的步骤。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (23)
1.一种时间同步方法,其特征在于,所述方法包括:
预先在各子系统中分别设置相同频率的高频时钟源和低频时钟源;第一子系统中的高频时钟源为架构计数器,第一子系统中的低频时钟为空转计数器,并且第一子系统休眠时,所述架构计数器停止计数;第二子系统中的高频时钟源为高频时间源计数器,第二子系统中的低频时钟源为低频时间源计数器;
接收第一子系统唤醒后发送的映射关系节点信息,所述映射关系节点信息包括:架构计数器的计数值、空转计数器的计数值、以及第一子系统启动时间;
第二子系统中有事件触发时,获取所述第一子系统的状态、以及所述高频时间源计数器的计数值和所述低频时间源计数器的计数值;
根据所述第一子系统的状态确定基准时钟,并根据所述映射关系节点信息中及所述第二子系统中与所述基准时钟相关的计数值确定所述事件的触发时间。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一子系统的状态确定基准时钟,并根据所述映射关系节点信息中及所述第二子系统中与所述基准时钟相关的计数值确定所述事件的触发时间包括:如果所述第一子系统的状态为睡眠状态,则将所述第一子系统中的低频时钟源作为基准时钟,并根据所述映射关系节点信息中的空转计数器的计数值和第一子系统启动时间、以及所述低频时间源计数器的计数值确定所述事件的触发时间;
如果所述第一子系统的状态为唤醒状态,则将所述第一子系统中的高频时钟源作为基准时钟,并根据所述映射关系节点信息中的架构计数器的计数值和子系统启动时间、以及所述高频时间源计数器的计数值确定所述事件的触发时间。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
设置寄存器组,所述寄存器组包括:第一寄存器、第二寄存器、状态寄存器;所述状态寄存器用于存储指示所述第一子系统的状态的数值;
在所述事件触发时,触发所述第一寄存器锁存所述高频时间源计数器的计数值;触发所述第二寄存器锁存所述低频时间源计数器的计数值;
所述获取所述第一子系统的状态包括:
读取所述状态寄存器的数值,并根据所述状态寄存器的数值确定所述第一子系统的状态;
所述分别获取所述高频时间源计数器的计数值和所述低频时间源计数器的计数值包括:
读取所述第一寄存器的数值得到所述高频时间源计数器的计数值;
读取所述第二寄存器的数值得到所述低频时间源计数器的计数值。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
将所述寄存器设置在所述第二子系统中、或者设置在所述第二子系统外的不掉电区域。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
预先设置触发方式,所述触发方式包括:电平触发、上升沿或下降沿触发;
在所述事件触发时,利用预先设置的触发方式触发所述第一寄存器锁存所述高频时间源计数器的计数值;利用预先设置的触发方式触发所述第二寄存器锁存所述低频时间源计数器的计数值。
6.根据权利要求3所述的方法,其特征在于,所述寄存器组有多个,不同寄存器组对应不同的事件。
7.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在所述事件触发时,设置中断触发标志;
在读取所述第一寄存器的数值、以及所述第二寄存器的数值后,清除所述中断触发标志;
在所述中断触发标志被清除前,如果所述事件再次触发,则丢弃所述事件。
8.根据权利要求1至7任一项所述的方法,其特征在于,所述方法还包括:
使用全局结构体变量存储所述映射关系节点信息。
9.根据权利要求1至7任一项所述的方法,其特征在于,所述第一子系统和所述第二子系统位于同一SoC上。
10.一种时间同步装置,其特征在于,所述装置包括:
节点信息接收模块,用于接收第一子系统唤醒后发送的映射关系节点信息,所述映射关系节点信息包括:架构计数器的计数值、空转计数器的计数值、第一子系统启动时间;所述架构计数器和所述空转计数器分别为设置在第一子系统中的高频时钟源和低频时钟源;并且所述第一子系统休眠时,所述架构计数器停止计数,所述第一子系统唤醒时,所述架构计数器继续计数;
状态获取模块,用于第二子系统中有事件触发时,获取所述第一子系统的状态;
计数值获取模块,用于所述事件触发时,分别获取所述高频时间源计数器的计数值和所述低频时间源计数器的计数值;所述高频时间源计数器和所述低频时间源计算器分别为设置在第二子系统中的高频时钟源和低频时钟源;所述第二子系统中的高频时钟源与所述第一子系统中的高频时钟源频率相同,所述第二子系统中的低频时钟源与所述第一子系统中的低频时钟源频率相同;
同步模块,用于根据所述第一子系统的状态确定基准时钟,并根据所述映射关系节点信息中及所述第二子系统中与所述基准时钟相关的计数值确定所述事件的触发时间。
11.根据权利要求10所述的装置,其特征在于,
所述同步模块,具体用于在所述第一子系统的状态为睡眠状态时,将所述第一子系统中的低频时钟源作为基准时钟,并根据所述映射关系节点信息中的空转计数器的计数值和子系统启动时间、以及所述低频时间源计数器的计数值确定所述事件的触发时间;在所述第一子系统的状态为唤醒状态时,将所述第一子系统中的高频时钟源作为基准时钟,并根据所述映射关系节点信息中的架构计数器的计数值和子系统启动时间、以及所述高频时间源计数器的计数值确定所述事件的触发时间。
12.根据权利要求10所述的装置,其特征在于,所述装置还包括:
寄存器组,所述寄存器组包括:第一寄存器、第二寄存器、状态寄存器;所述状态寄存器用于存储指示所述第一子系统的状态的数值;
事件触发模块,用于在所述事件触发时,触发所述第一寄存器锁存所述高频时间源计数器的计数值;触发所述第二寄存器锁存所述低频时间源计数器的计数值;
所述状态获取模块,用于读取所述状态寄存器的数值,并根据所述状态寄存器的数值确定所述第一子系统的状态;
所述计数值获取模块,具体用于读取所述第一寄存器的数值得到所述高频时间源计数器的计数值,读取所述第二寄存器的数值得到所述低频时间源计数器的计数值。
13.根据权利要求12所述的装置,其特征在于,所述寄存器组设置在所述第二子系统中、或者设置在所述第二子系统外的不掉电区域。
14.根据权利要求12所述的装置,其特征在于,所述装置还包括:
触发方式设置模块,用于预先设置触发方式,所述触发方式包括:电平触发、上升沿或下降沿触发;
所述事件触发模块,具体用于在所述事件触发时,利用所述触发方式设置模块预先设置的触发方式触发所述第一寄存器锁存所述高频时间源计数器的计数值;利用预先设置的触发方式触发所述第二寄存器锁存所述低频时间源计数器的计数值。
15.根据权利要求12所述的装置,其特征在于,所述寄存器组有多个,不同寄存器组对应不同的事件。
16.根据权利要求12所述的装置,其特征在于,所述装置还包括:
中断标志管理模块,用于在所述事件触发时,设置中断触发标志;在所述计数值获取模块读取所述第一寄存器的数值、以及所述第二寄存器的数值后,清除所述中断触发标志;
事件管理模块,用于在所述中断触发标志被清除前,所述事件再次触发时,丢弃所述事件。
17.根据权利要求10至16任一项所述的装置,其特征在于,所述装置还包括:
节点信息存储模块,用于使用全局结构体变量存储所述映射关系节点信息。
18.一种时间同步系统,其特征在于,所述系统包括:第一子系统、一个或多个第二子系统;所述第一子系统和所述第二子系统中分别设置有相同频率的高频时钟源、以及相同频率的低频时钟源;
所述第一子系统,用于在唤醒时获取映射关系节点信息,并将所述映射关系节点信息发送给所述第二子系统;
所述第二子系统包括权利要求9至15任一项所述的时间同步装置,用于根据所述映射关系节点信息确定事件的触发时间。
19.根据权利要求18所述的系统,其特征在于,所述第一子系统和所述第二子系统位于同一SoC上。
20.根据权利要求18或19所述的系统,其特征在于,所述第一子系统和所述第二子系统通过SIPC协议进行通信。
21.一种计算机可读存储介质,所述计算机可读存储介质为非易失性存储介质或非瞬态存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器运行时执行权利要求1至9中任一项所述方法的步骤。
22.一种电子设备,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器运行所述计算机程序时执行权利要求1至9中任一项所述方法的步骤。
23.一种芯片系统,其特征在于,包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片系统的通信设备,执行权利要求1至9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110656930.2A CN113392063B (zh) | 2021-06-11 | 2021-06-11 | 时间同步方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110656930.2A CN113392063B (zh) | 2021-06-11 | 2021-06-11 | 时间同步方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113392063A true CN113392063A (zh) | 2021-09-14 |
CN113392063B CN113392063B (zh) | 2022-11-25 |
Family
ID=77620964
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110656930.2A Active CN113392063B (zh) | 2021-06-11 | 2021-06-11 | 时间同步方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113392063B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116938379A (zh) * | 2023-09-18 | 2023-10-24 | 湖北芯擎科技有限公司 | 时间同步的方法、装置、电子设备及计算机可读存储介质 |
CN117579213A (zh) * | 2023-12-27 | 2024-02-20 | 中国科学院微电子研究所 | 一种面向随机同步触发事件的多节点时间同步方法及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998058460A1 (en) * | 1997-06-17 | 1998-12-23 | Lsi Logic Corporation | Apparatus and method for calibration of sleep mode clock in wireless communications mobile station |
US6029061A (en) * | 1997-03-11 | 2000-02-22 | Lucent Technologies Inc. | Power saving scheme for a digital wireless communications terminal |
US6088602A (en) * | 1998-03-27 | 2000-07-11 | Lsi Logic Corporation | High resolution frequency calibrator for sleep mode clock in wireless communications mobile station |
US6735454B1 (en) * | 1999-11-04 | 2004-05-11 | Qualcomm, Incorporated | Method and apparatus for activating a high frequency clock following a sleep mode within a mobile station operating in a slotted paging mode |
CN101083503A (zh) * | 2006-05-30 | 2007-12-05 | 凯明信息科技股份有限公司 | 一种准确维护接收装置在睡眠状态下系统同步信息的方法 |
-
2021
- 2021-06-11 CN CN202110656930.2A patent/CN113392063B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6029061A (en) * | 1997-03-11 | 2000-02-22 | Lucent Technologies Inc. | Power saving scheme for a digital wireless communications terminal |
WO1998058460A1 (en) * | 1997-06-17 | 1998-12-23 | Lsi Logic Corporation | Apparatus and method for calibration of sleep mode clock in wireless communications mobile station |
US6088602A (en) * | 1998-03-27 | 2000-07-11 | Lsi Logic Corporation | High resolution frequency calibrator for sleep mode clock in wireless communications mobile station |
US6735454B1 (en) * | 1999-11-04 | 2004-05-11 | Qualcomm, Incorporated | Method and apparatus for activating a high frequency clock following a sleep mode within a mobile station operating in a slotted paging mode |
CN101083503A (zh) * | 2006-05-30 | 2007-12-05 | 凯明信息科技股份有限公司 | 一种准确维护接收装置在睡眠状态下系统同步信息的方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116938379A (zh) * | 2023-09-18 | 2023-10-24 | 湖北芯擎科技有限公司 | 时间同步的方法、装置、电子设备及计算机可读存储介质 |
CN116938379B (zh) * | 2023-09-18 | 2023-12-15 | 湖北芯擎科技有限公司 | 时间同步的方法、装置、电子设备及计算机可读存储介质 |
CN117579213A (zh) * | 2023-12-27 | 2024-02-20 | 中国科学院微电子研究所 | 一种面向随机同步触发事件的多节点时间同步方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113392063B (zh) | 2022-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113392063B (zh) | 时间同步方法、装置及系统 | |
CN103580770B (zh) | 测量带有独立硅时钟的设备之间的时间偏差 | |
EP1421704B1 (en) | Methods and apparatus for clock and power control in wireless systems | |
US20140348182A1 (en) | Time synchronization between nodes of a switched interconnect fabric | |
US9104343B2 (en) | Global synchronous clock circuit and method for blade processors | |
CN103458036A (zh) | 一种集群文件系统的访问装置和方法 | |
WO2020228289A1 (zh) | 日志获取方法、装置、终端及存储介质 | |
WO2019190682A1 (en) | System, apparatus and method for handshaking protocol for low power state transitions | |
US20080162976A1 (en) | Method and apparatus of collecting timer ticks | |
CN111552701B (zh) | 确定分布式集群中数据一致性的方法及分布式数据系统 | |
CN112163038A (zh) | 跨集群数据同步方法、装置、设备及存储介质 | |
CN116032411A (zh) | 一种时间戳同步方法、系统、终端及存储介质 | |
CN109543811B (zh) | 一种计数电路、计数方法及芯片 | |
WO2017215373A1 (zh) | 输出时钟生成方法及装置 | |
US11907754B2 (en) | System to trigger time-dependent action | |
CN104597964A (zh) | 时间服务器 | |
CN106452647A (zh) | 一种射频装置以及无线传感器网络系统 | |
CN113934257A (zh) | 系统时间计算方法、装置、设备及存储介质 | |
CN113552921A (zh) | 一种软硬件互锁的系统时间同步方法及系统及电子设备 | |
EP2687938A2 (en) | Measuring time offsets between devices with independent silicon clocks | |
CN114884724B (zh) | 一种云服务器交互方法、装置、可读存储介质及终端设备 | |
CN104735772A (zh) | 一种定时同步的装置及方法 | |
CN112084022B (zh) | 一种项目容量规划方法、装置、计算机设备和存储介质 | |
US20230401112A1 (en) | Synchronized system-on-chip telemetry aggregation and buffering | |
US20230153156A1 (en) | Synchronization of system resources in a multi-socket data processing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |