Cluster clock system and storage medium

The cluster clock system provides a resilient and efficient method for synchronizing multiple clocks by using a central server and distributed nodes to converge to an average time system, addressing vulnerabilities in existing Leader/Follower configurations and ensuring high precision in time synchronization.

WO2026069921A1PCT designated stage Publication Date: 2026-04-02NAT INST OF INFORMATION & COMM TECH +1
View PDF 6 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-07-07
Publication Date
2026-04-02

AI Technical Summary

Technical Problem

Existing time synchronization methods, particularly in Leader/Follower configurations, are vulnerable to failures and do not effectively achieve robust and resilient synchronization of multiple clocks, especially in next-generation wireless communication standards like Beyond 5G/6G, where high precision and reliability are crucial.

Method used

A cluster clock system with a central server and distributed nodes that synchronize autonomously and in a distributed manner, calculating time difference information and rate adjustments to converge to an average time system, allowing for scalable and resilient synchronization without a hierarchical structure.

Benefits of technology

The system achieves robust and resilient time synchronization with reduced computational load, enabling high precision and reliability in time synchronization across multiple clocks, even in the presence of failures or disruptions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure JP2025024415_02042026_PF_FP_ABST
    Figure JP2025024415_02042026_PF_FP_ABST
Patent Text Reader

Abstract

A cluster clock system according to the present invention comprises: a plurality of distributed nodes that each comprise a clock and perform synchronization operations for each other's clocks on a prescribed first cycle; and a centralization server that performs a synchronization control operation that distributes synchronization control information that gives guidance for the synchronization operations of the distributed nodes to the distributed nodes on a second cycle that is a longer cycle than the first cycle.
Need to check novelty before this filing date? Find Prior Art

Description

Cluster clock system and storage medium

[0001] The present invention relates to a cluster clock system and a storage medium. This application claims priority under Japanese Patent Application No. 2024-170995, filed in Japan on September 30, 2024, the contents of which are incorporated herein by reference.

[0002] Traditionally, time synchronization between multiple clocks (e.g., atomic clocks) has typically involved a hierarchical structure where lower-level clocks synchronize with higher-level clocks, a so-called Leader / Follower configuration. However, in the next-generation wireless communication standards, Beyond 5G / 6G, there is a growing demand for highly accurate time synchronization to ensure efficient use of radio frequencies. Attempts to achieve time synchronization through an ensemble of multiple clocks have been made before. (See, for example, Non-Patent Documents 1-4.)

[0003] CA Greenhall “A Kalman filter clock ensemble algorithm that admits measurement noise”, Metrologia, Vol. 43, No. 4 (2006) L. Galleani, P. Tavella “Time and the Kalman filter”, IEEE control system magazine, vol. 30, no. 2 (2010) D. Mills, et al. Network Time Protocol Version 4: Protocol and Algorithms Specification. RFC 5905, RFC Editor, 2010. IEEE Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems. IEEE Standard 1588-2008, 2008.

[0004] It is desirable to achieve robust and resilient time synchronization of these clock groups. However, it was unknown how to achieve robust and resilient time synchronization of a group of clocks when performing time synchronization using an ensemble of multiple clocks.

[0005] The object of the present invention is to provide a cluster clock system and a storage medium that can achieve robust and resilient time synchronization of a group of clocks.

[0006] One aspect of the present invention is a cluster clock system comprising: a plurality of distributed nodes, each equipped with a clock, which synchronize their clocks in a predetermined first period; and a central server which performs synchronization control operations to distribute synchronization control information indicating the synchronization operations at the distributed nodes in a second period which has a longer period than the first period.

[0007] One aspect of the present invention is a storage medium that stores a program for a computer on a general node to perform the following actions: communicate information with any of the other distributed nodes; generate time difference information indicating the time difference between a first time measured by its own clock and a second time measured by the clocks of the other distributed nodes; calculate an edge state estimate, which is an estimate of the difference between the state of its own clock and the state of the clocks of the other distributed nodes, based on the generated time difference information; and communicate with a centralized server.

[0008] One aspect of the present invention is a storage medium that stores a program for causing a computer in a centralized server to perform the following actions: generate rate adjustment information indicating the degree of rate adjustment of the distributed nodes based on clock network information indicating the configuration of the distributed nodes, and distribute the rate adjustment information as synchronization control information to all of the multiple distributed nodes.

[0009] According to the present invention, robust and resilient time synchronization of a group of clocks can be achieved.

[0010] This figure shows an example of the system configuration of the cluster clock system of this embodiment. This figure shows an example of the timing accuracy of the general nodes constituting relationship between the average time system of the group of general nodes constituting the cluster clock system of this embodiment and the average time system of the reference time. This figure shows an example of the functional configuration of the general nodes of this embodiment. This figure shows an example of the functional configuration of the reference node of this embodiment. This figure shows an example of the functional configuration of the central server of this embodiment. This figure shows an example of the operation flow of the cluster clock system of this embodiment. This figure shows an example of the configuration of a conventional time synchronization method.

[0011] The cluster clock system 1 of this embodiment will be described with reference to the drawings. The embodiments described below are merely examples, and the embodiments to which the present invention is applied are not limited to the embodiments described below. In all the figures used to describe the embodiments, components having the same function are given the same reference numerals, and repeated explanations are omitted. Furthermore, in this application, "based on XX" means "based on at least XX," and includes cases where it is based on another element in addition to XX. Furthermore, "based on XX" is not limited to cases where XX is used directly, but also includes cases where it is based on XX after calculations or processing have been performed on it. "XX" is any element (for example, any information).

[0012] [Background] First, the technical background of the cluster clock system 1 of this embodiment will be explained. In the next-generation wireless communication standards, Beyond 5G and 6G, there is a growing demand for highly stable and accurate time synchronization for efficient use of radio waves and high-precision positioning. The present invention proposes a novel algorithm that achieves time synchronization that simultaneously satisfies high precision, high accuracy, and high reliability by utilizing the time difference information of multiple adjacent atomic clocks. The present invention provides a time estimation algorithm that makes it possible to increase the number of devices that can be accommodated while reducing the computational cost for estimating the most likely time.

[0013] In the next-generation wireless communication standards, Beyond 5G and 6G, the goal is to achieve higher capacity than the conventional 5G standard, requiring the realization of radio wave utilization technologies that utilize radio wave interference, such as distributed MIMO, which uses multiple antennas in coordination for communication. Furthermore, in the ITU-R WP5D, the future outlook for 6G (IMT-2030) recommends high-precision positioning of 1cm-10cm as a new function for next-generation wireless 6G. All of these next-generation wireless communication technologies are based on time synchronization, and it is expected that time synchronization in networks will become increasingly important in the future. In addition, time and frequency information supports a wide range of infrastructure, including power, transportation, positioning, and communication, and is positioned as critical infrastructure. Because the impact of failures in this area is enormous, high resilience and robustness are required for the supply of time and frequency information. Currently, for the supply of time and frequency, time synchronization using the Global Navigation Satellite System (GNSS) is generally used due to its economic efficiency and convenience. In particular, in the field of communications, it is said that more than half of the world's communication devices rely on GNSS for time synchronization. However, many systems that require time synchronization cannot directly use GNSS signals. Generally, they achieve time synchronization by propagating GNSS time information using leader / follower type time synchronization methods such as NTP and PTP.

[0014] Figure 9 shows an example of the configuration of a conventional time synchronization method. As shown in the figure, in Leader / Follower type time synchronization, GNSS is almost always the top-level (source) time source for time synchronization. However, because GNSS receives and utilizes weak radio waves, it has been pointed out that it is vulnerable to attacks such as spoofing and jamming, as well as interference such as solar wind. Not only GNSS, but Leader / Follower type mechanisms in general have the potential for a single point of failure, and there is also the problem that the Follower basically cannot exceed the accuracy of the Leader.

[0015] In response to this, there was a concept aimed at achieving robust and resilient time synchronization by forming a cluster of multiple clocks rather than a hierarchical structure like a Leader / Follower, and synchronizing to a certain average time derived from these clocks (called cluster clock synchronization). However, currently, the following challenges exist.

[0016] (1) The specific method for achieving synchronization of these clocks while deriving a certain kind of average time is unknown. (2) The method for each cluster clock (distributed node) to autonomously and distributedly synchronize (without instructions from any central server) is unknown. (3) The method for achieving cluster clock synchronization with a small amount of computation is unknown. (4) The method for forming a cluster while retaining the advantages of conventional leader / follower type synchronization (specifically, respect for reference time such as GNSS) is unknown. The cluster clock system 1 of this embodiment solves the above four unknown points and specifically achieves cluster clock synchronization.

[0017] The present invention solves the problems described in the background and provides an apparatus and method for achieving cluster clock synchronization, and has the following features.

[0018] The user can specify the synchronization destination for the cluster clock: The system includes a parameter for specifying the synchronization destination, and the user can specify the synchronization destination for the cluster clock by setting this parameter (specifically, the synchronization destination specification information Di described later) in the system.

[0019] The user can specify the convergence behavior toward the synchronization target: it has parameters to control the convergence behavior toward the synchronization target (the speed of convergence and the behavior of fluctuations after convergence). By inputting an evaluation function that governs the desired convergence behavior into the system, the system outputs the setting values ​​used at each node (that satisfy the evaluation function). The convergence behavior can be controlled using these settings. In addition to the evaluation function, information on the connection topology between nodes is also required to calculate the setting values.

[0020] Autonomous and distributed synchronization is possible: Each node can synchronize autonomously and in a distributed manner. Based on the time difference between the node itself and neighboring nodes, the estimated state of the node itself, and information from neighboring nodes (held information, estimated value information), the control value is calculated by taking into account synchronization target information and convergence behavior information.

[0021] Scalable: Each node autonomously calculates its control values ​​based only on the time difference with itself and information about its own node and neighboring nodes, thus keeping the computational load low and enabling scaling out.

[0022] Next, an example of the system configuration of the cluster clock system 1 of this embodiment will be described.

[0023] [System Configuration of Cluster Clock System 1] Figure 1 shows an example of the system configuration of the cluster clock system 1 of this embodiment. The cluster clock system 1 has a configuration in which a central server 40, a clock network 5, and a reference time node 60 are connected to each other by a wired or wireless network.

[0024] The reference time node 60 is a node that supplies the reference time. The reference time includes Coordinated Universal Time (UTC) and Japan Standard Time (JST), among others. However, the reference time does not necessarily have to be a standard time; it can be any time that can serve as a reference in the clock network 5.

[0025] [Connection configuration of clock network 5] The clock network 5 includes multiple distributed nodes 50. Each distributed node 50 is equipped with, for example, an atomic clock and performs timekeeping operations.

[0026] The clock network 5 of this embodiment includes, as an example, eight distributed nodes 50, namely distributed nodes 50-1 to 50-8. These distributed nodes 50 are connected to other distributed nodes 50 and a reference time node 60 so that they can exchange information. In the following description, the fact that a distributed node 50 is connected to other distributed nodes 50 and a reference time node 60 so that they can exchange information will also be simply referred to as "connected".

[0027] In the example shown in the figure, distributed node 50-1 is connected to the reference time node 60-1 and distributed node 50-2. Similarly, distributed node 50-2 is connected to distributed node 50-1, distributed node 50-3, and distributed node 50-6. Distributed node 50-3 is connected to distributed node 50-2, distributed node 50-4, distributed node 50-5, and distributed node 50-8, respectively. Distributed node 50-4 is connected to distributed node 50-3 and the reference time node 60-2. Distributed node 50-5 is connected to distributed node 50-3 and distributed node 50-6. Distributed node 50-6 is connected to distributed node 50-2, distributed node 50-5, and distributed node 50-7, respectively. Distributed node 50-7 is connected to distributed node 50-6. The distributed node 50-8 is connected to the distributed node 50-3 and the reference time node 60-3.

[0028] In this embodiment, the distributed nodes 50 consist of two types: general nodes 51 and reference nodes 52.

[0029] The general node 51 is a distributed node 50 that holds a clock, but does not necessarily indicate a reference time. In the system configuration shown in Figure 1, the general node 51 is not connected to the reference time node 60. The general node 51 can also be described as a distributed node 50 that cannot obtain a reference time from the reference time node 60. In the following explanation, when identifying a specific general node 51 from among multiple general nodes 51, an identification number N (N is in italic cursive) will be used.

[0030] Reference node 52 is a distributed node 50 that holds the clock and the reference time indicated by reference time node 60. In the system configuration shown in Figure 1, reference node 52 is connected to reference time node 60. In the following description, when identifying a specific reference node 52 from among multiple reference nodes 52, an identification number M (M is in italic cursive) will be used.

[0031] In other words, a distributed network includes both general nodes and reference nodes. A reference node has a reference clock that is synchronized to a reference time. A general node has a general clock that is not a reference clock, but is synchronized based on information distributed from a central server.

[0032] In the example of the clock network 5 shown in the figure, distributed nodes 50-1, 50-4, and 50-8 are reference nodes 52. Distributed nodes 50-2, 50-3, 50-5, 50-6, and 50-7 are general nodes 51.

[0033] As shown in the figure, the cluster clock system 1 of this embodiment does not have a hierarchical structure like the conventional Leader / Follower type time synchronization system shown in Figure 9. Furthermore, one of the features of the cluster clock system 1 is that its synchronization target is not the time of a higher hierarchical level, as in the conventional Leader / Follower type time synchronization system described above, but the "average time system" of the distributed node group 50 included in the clock network 5. The concept of synchronization to the average time system in the cluster clock system 1 of this embodiment will be explained below with reference to Figures 2 to 4.

[0034] [Concept of Synchronization of Cluster Clock System 1] Figure 2 shows an example of the timing accuracy of the general nodes 51 that constitute the cluster clock system 1 of this embodiment. Each general node 51 included in the clock network 5 (in this example, distributed node 50-2, distributed node 50-3, distributed node 50-5, distributed node 50-6, and distributed node 50-7) has a different timing accuracy from one another. That is, there is variation in the timing accuracy of the multiple general nodes 51 included in the clock network 5. Generally, the average accuracy AVG11 of these multiple general nodes 51 (for example, distributed node 50-2, distributed node 50-3, distributed node 50-5, distributed node 50-6, and distributed node 50-7) is better than the timing accuracy of each individual general node 51.

[0035] Figure 3 shows an example of the timing accuracy of the general nodes 51 that constitute the cluster clock system 1 of this embodiment. Each general node 51 included in the clock network 5 (in this example, distributed node 50-2, distributed node 50-3, distributed node 50-5, distributed node 50-6, and distributed node 50-7) has a different timing accuracy from one another. That is, there is variation in the timing accuracy of the multiple general nodes 51 included in the clock network 5. The cluster clock system 1 of this embodiment converges the timing time of each general node 51 included in the clock network 5 to the average time system AVG 12, which is the convergence target of the timing time, by having the general nodes 51 autonomously control their timing based on the weighting assigned to each general node 51. In other words, the cluster clock system 1 allows each general node 51 to autonomously control the clock state (e.g., rate) of these multiple general nodes 51 that have variations in accuracy.

[0036] FIG. 4 is a diagram showing an example of the relationship between the average time series AVG12 of the general node 51 group constituting the cluster clock system 1 of the present embodiment and the average time series AVG2 of the reference time. The average time series AVG2 of the reference time is, for example, a weighted average value of the times indicated by a plurality of reference time nodes 60 (in this example, reference time nodes 60-1 to reference time nodes 60-3). The cluster clock system 1 converges the average time series AVG12, which is the convergence target of the measured time shown in FIG. 3, to the average time series AVG2 of the reference time. As a result, the cluster clock system 1 can connect the average time series AVG12 of the clock network 5 to the average time series AVG2 of the reference time without forming a hierarchical structure between the clocks.

[0037] Further, as described above, the average time series AVG2 of the reference time is calculated as a weighted average value of the times indicated by a plurality of reference time nodes 60 as an example. That is, the average time series AVG2 of the reference time is calculated based on the reference times made redundant by a plurality of reference time nodes 60. Therefore, even if the time information from some of the plurality of reference time nodes 60 is not supplied due to some reason, the average time series AVG12 of the clock network 5 can be connected to the average time series AVG2 based on the time information from the remaining reference time nodes 60.

[0038] Further, even when the time information is not supplied from all the reference time nodes 60 referred to by the clock network 5, the measured times of the plurality of decentralized nodes 50 included in the clock network 5 can be held in the average time series AVG12 of the clock network 5.

[0039] Summarizing the above, the cluster clock system 1 of the present embodiment synchronizes the measured times of the individual decentralized nodes 50 in two steps. (First step) Convergence of the measured times of the individual decentralized nodes 50 to the average time series AVG12 of the group of decentralized nodes 50 constituting the clock network 5. (Second step) Convergence of the average time series AVG12 of the group of decentralized nodes 50 to the average time series AVG2 of a plurality of reference times that the clock network 5 can refer to.

[0040] Next, an example of the specific functional configurations of the centralized server 40 and the decentralized nodes 50, which are components of the cluster clock system 1 of the present embodiment, will be described. As described above, the decentralized node 50 includes a general node 51 and a reference node 52. First, an example of the functional configuration of the general node 51 will be described.

[0041] [Functional Configuration of General Node 51] FIG. 5 is a diagram showing an example of the functional configuration of the general node 51 of the present embodiment. The general node 51 includes an arithmetic unit 500, a timing unit 580, and a storage unit 590.

[0042] The arithmetic unit 500 includes, for example, a Central Processing Unit (CPU), operates based on programs and data stored in the storage unit 590, and provides various functions. The storage unit 590 is constituted by, for example, a hard disk drive or a semiconductor memory (flash memory, RAM, ROM), and stores various kinds of information such as programs and data read by the arithmetic unit 500.

[0043] The timing unit 580 includes, for example, a timing device such as an atomic clock, and performs a timing operation. In the following description, the time obtained as a result of the timing operation by the timing unit 580 is also referred to as the timing time.

[0044] The arithmetic unit 500 includes, as its functional units, an inter-node communication unit 510, a time difference information generation unit 520, a server communication unit 530, an estimation unit 550, and a control unit 560.

[0045] The inter-node communication unit 510 is connected to other decentralized nodes 50 by wireless communication or wired communication, and exchanges various kinds of information with other decentralized nodes 50. In the following description, other decentralized nodes 50 to which the inter-node communication unit 510 is connected are also referred to as adjacent decentralized nodes 50 (or simply adjacent nodes). That is, the inter-node communication unit 510 exchanges information with adjacent nodes.

[0046] The time difference information generation unit 520 generates adjacent time difference information, which is the time difference between the time measured by an adjacent distributed node 50 and the time measured by its own distributed node 50. The control period for which the time difference information generation unit 520 generates adjacent time difference information is defined as period Tn. In this case, the time difference information generation unit 520 generates time difference information at time points k = 0, n, 2n, ... in period Tn.

[0047] The server communication unit 530 is connected to the central server 40 by wireless or wired communication and exchanges information with the central server 40.

[0048] The estimation unit 550 (state estimation unit) estimates the edge state information at time k+1 in period Tn based on the adjacent time difference information, control value, (user-specified) variance value information generated by the time difference information generation unit 520, as well as the adjacent node ownership information, rate adjustment information, and correction information. The edge state information at time k+1 is also called the edge state estimate.

[0049] The estimation unit 550 may estimate the edge state estimate using past state information stored in a storage device such as the memory unit 590.

[0050] The control unit 560 controls the rate of the timing operation of the timing unit 580 by generating control values. The control unit 560 can also be called a control value calculation unit (or control value calculation unit).

[0051] The control unit 560 calculates and outputs a control value for the current time k based on edge state information (specifically, the estimated edge state value) obtained by itself, and inputs adjacent clock holding information (specifically, the estimated edge state value), rate adjustment information, and correction information. The control value is an manipulated variable (or control target variable) for adjusting the rate at which the clocks within the node advance. The control value is generally expressed as a percentage such as ppb or ppt.

[0052] The control unit 560 calculates the control value at a frequency higher than the frequency at which the reference node 52 obtains the reference time from the reference time node 60. For example, the frequency at which the reference node 52 obtains the reference time from the reference time node 60 is about once every 100 seconds. The frequency at which the control unit 560 calculates the control value (for example, period Tn) is about once every second. In other words, the control unit 560 calculates the control value with higher real-time performance compared to the frequency at which the reference time is obtained by the reference node 52.

[0053] The general node 51 is summarized as follows: The general node 51 includes an inter-node communication unit 510, a time difference information generation unit 520, a server communication unit 530, an estimation unit 550, and a control unit 560. The inter-node communication unit 510 communicates information with any of the other distributed nodes 50. The time difference information generation unit 520 generates time difference information that shows the time difference between a first time measured by its own clock and a second time measured by the clock of another distributed node 50. The estimation unit 550 calculates an edge state estimate, which is an estimated value of the difference between the state of its own clock and the state of the clocks of other distributed nodes, based on the time difference information estimated by the time difference information generation unit 520. The server communication unit 530 communicates with the central server. The control unit 560 adjusts the rate of its own clock based on the synchronization control information distributed from the central server and the edge state estimate calculated by the estimation unit.

[0054] [Functional Configuration of Reference Node 52] Figure 6 shows an example of the functional configuration of the reference node 52 in this embodiment. The reference node 52 differs from the general node 51 in that its inter-node communication unit 510 can communicate with the reference time node 60 in addition to other distributed nodes 50, and that it does not have the functions of the control unit 560 that the general node 51 has.

[0055] As described above, the reference node 52 is connected to the reference time node 60 and can obtain the reference time from the reference time node 60. Therefore, the reference node 52 can synchronize the timing time of the timing unit 580 with the reference time. Consequently, the reference node 52 does not need to adjust the timing rate based on, for example, the timing operation status of other general nodes 51. For this reason, the reference node 52 does not need to be equipped with a control unit 560.

[0056] Although the reference node 52 has the same control unit 560 functions as the general node 51, it may be implemented by not using these functions. In other words, the reference node 52 and the general node 51 may be configured with the same hardware. The configuration of the other functional parts of the reference node 52 is the same as that of the general node 51, so its explanation will be omitted.

[0057] [Functional Configuration of Central Server 40] Figure 7 shows an example of the functional configuration of the central server 40 in this embodiment. The central server 40 comprises a processing unit 400 and a storage unit 490.

[0058] The arithmetic unit 400 includes, for example, a central processing unit (CPU) and operates based on the programs and data stored in the storage unit 490, providing various functions. The storage unit 490 is composed of, for example, a hard disk drive or semiconductor memory (flash memory, RAM, ROM), and stores various information such as programs and data read by the arithmetic unit 400.

[0059] The calculation unit 400 includes, as its functional units, a rate adjustment information generation unit 410, a control information distribution unit 420, an edge information receiving unit 430, a correction information generation unit 440, and a broadcast distribution unit 450.

[0060] The rate adjustment information generation unit 410 generates control information (in other words, rate adjustment information) that serves as a guideline for rate adjustment control by autonomous operation at each general node 51, based on the clock network information stored in the clock network information storage unit 70, the synchronization destination designation information Di, and the convergence evaluation function J. The clock network information is information regarding the connection topology between the distributed nodes 50 included in the clock network 5.

[0061] The rate adjustment information generation unit 410 includes a synchronization destination specification information acquisition unit 411 and a gain specification information acquisition unit 412 as its functional units. The synchronization destination specification information acquisition unit 411 acquires synchronization destination specification information Di from the user. Synchronization destination specification information Di is information that weights the rate adjustment according to the timing operation status of multiple distributed nodes 50. The gain specification information acquisition unit 412 acquires gain specification information from the user. Gain specification information is, for example, a convergence evaluation function J.

[0062] The rate adjustment information generation unit 410 provides guidelines for rate adjustment for each distributed node 50 by weighting rate adjustments based on the accuracy and precision of the time of the multiple distributed nodes 50.

[0063] The rate adjustment information generation unit 410 is a functional unit for centrally processing information from a subset of all nodes that is unsuitable for processing within each node (edge), and can also be called a cluster aggregation calculation unit.

[0064] The control information distribution unit 420 (distribution control unit) selects the necessary information and performs transmission and reception control to deliver the selected information to the necessary distributed nodes 50.

[0065] The edge information receiving unit 430 receives information (for example, an edge state estimate ζ^ij[k]) from the reference node 52 for generating correction information u0[k]. The correction information u0[k] is information indicating the amount of control correction to be distributed to all general nodes 51.

[0066] The correction information generation unit 440 generates correction information u0[k] based on the information received by the edge information receiving unit 430 from the reference node 52.

[0067] The broadcast distribution unit 450 broadcasts and distributes the correction information u0[k] generated by the correction information generation unit 440 to each distributed node 50.

[0068] The centralized server 40 has a higher processing load than the distributed nodes 50. For this reason, it is preferable that the centralized server 40 is implemented in a separate device from the distributed nodes 50 (for example, a high-performance device capable of high-speed processing). For this reason, in the following description, the centralized server 40 will be described as being configured as a separate device from the distributed nodes 50, but it is not limited to this. The centralized server 40 may have its functions implemented in the processing unit 500 of any of the distributed nodes 50 and be configured as a device integrated with the distributed nodes 50.

[0069] The central server 40 can be summarized as follows: The central server 40 comprises a rate adjustment information generation unit 410, a control information distribution unit 420, an edge information receiving unit 430, a correction information generation unit 440, and a broadcast distribution unit 450.

[0070] The rate adjustment information generation unit 410 generates rate adjustment information indicating the degree of rate adjustment of the distributed node 50 based on clock network information showing the configuration of the distributed node 50. Rate adjustment information is, for example, control gain. The control information distribution unit 420 distributes the rate adjustment information as synchronous control information to all of the multiple distributed nodes 50.

[0071] The rate adjustment information generation unit 410 includes a synchronization destination specification information acquisition unit 411 and a gain specification information acquisition unit 412. The synchronization destination specification information acquisition unit 411 acquires synchronization destination specification information Di from the user, which specifies the synchronization destination of the distributed node 50 to be controlled. The gain specification information acquisition unit 412 acquires parameters (e.g., gain specification information) from the user for calculating rate adjustment information (e.g., control gain). In other words, the gain specification information acquisition unit 412 functions as a parameter acquisition unit that acquires parameters for rate adjustment from the user.

[0072] In addition, parameters such as synchronization destination specification information Di and gain specification information may be calculated by other computer devices. In this case, the synchronization destination specification information acquisition unit 411 and the gain specification information acquisition unit 412 may acquire this information from other computers instead of (or in addition to) acquiring it from the user. That is, the "user" in this embodiment includes both a human being operating the cluster clock system 1 and other computer devices.

[0073] Furthermore, the gain specification information acquisition unit 412 (parameter acquisition unit) acquires the convergence evaluation function J as a parameter. The rate adjustment information generation unit 410 generates rate adjustment information based on the acquired convergence evaluation function J.

[0074] The correction information generation unit 440 generates correction information u0[k] to correct the degree of adjustment of the rate of the distributed node 50, based on the edge state estimate ζ^ij[k] output by the reference node 52, which is an estimate of the difference between the state of its own clock and the state of the clocks of other distributed nodes 50. The broadcast distribution unit 450 distributes the generated correction information u0[k] as synchronization control information (broadcast information) to all of the multiple distributed nodes 50 (especially the general nodes 51).

[0075] Furthermore, if the correction information generation unit 440 cannot obtain an edge state estimate from the reference node 52, it may generate correction information u0[k] based on the edge state estimate ζ^ij[k] output by the general node 51.

[0076] [Input / Output Information (Details)] Next, we will explain the details of the information generated and referenced by the distributed nodes 50 and the centralized server 40 mentioned above.

[0077] In the following explanation, the distributed node 50 of interest will also be referred to as distributed node 50-i (or self-node i, or simply self-node). Furthermore, other distributed nodes 50 adjacent to distributed node 50-i will be referred to as distributed node 50-j (or adjacent node j, or simply adjacent node).

[0078] <Node State Estimate x^i[k]> The node state estimate x^i[k] is an estimate of the node state value xi[k]. More specifically, the node state value xi[k] is a vector representation of the result of integer or non-integer derivative (Fractional Calculus) of the timing of its own distributed node 50-i at time k. For example, the nth-order integer derivative is given by equation (1).

[0079]

[0080] In this case, the node state element xi1[k] is the value (timing time) of the distributed node 50-i at time k, the element xi2[k] is the time derivative of element xi1[k] at time k (frequency value at time k), ..., xin[k] is the time derivative of element xi(n-1)[k] at time k. Regardless of the method of time differentiation, element xi1[k] represents the timing time of the distributed node 50-i.

[0081] The node state estimate x^i[k] is an estimate of the node state value xi[k] of the distributed node 50-i itself (i.e., an estimate of the node state at time k). There are various methods for estimating the node state estimate x^i[k], but in this embodiment, it is not specified which method is used. The node state estimate x^i[k] is used to calculate the edge state estimate ζ^ij[k], which will be described later. The node state estimate x^i[k] is stored in the storage unit 590 of each distributed node 50. For example, the node state estimate x^i[k] is stored in the storage unit 590 every period Tn, which is the calculation period of the estimation unit 550.

[0082] <Node state variance q 2 i > This is a vector that holds the variance values ​​of the noise input to each element of the node state value xi. 2 i is assumed to be a value where the user manually inputs noise information that has been measured in advance, but it does not need to be limited to manual input; real-time measurement may be performed by some method. Node state variance value q 2i is stored in the memory unit 590 of each distributed node 50. For example, node state distribution value q 2 i is stored in the storage unit 590 at each period Tn, which is the calculation period of the estimation unit 550.

[0083] <Edge State Information> Edge state information is information created from the pair of a distributed node 50-i (i.e., the self node) and an adjacent distributed node 50-j. An adjacent distributed node 50-j refers to any one of the other distributed nodes 50 adjacent to distributed node 50-i.

[0084] Edge state information includes the following two types of information: • Edge state estimate ζ^ij[k] (zeta hat i j k) • Adjacent time difference observation noise variance r 2 ij (r squared i j)

[0085] <Edge State Estimate ζ^ij[k]> The difference ζij[k] (zeta i j k) represents the difference between the node state value xi of distributed node 50-i and the node state value xj of the adjacent distributed node 50-j at time k. The difference ζij[k] is given by equation (2).

[0086]

[0087] The edge state estimate ζ^ij[k] is an estimate of the value of time K at the difference ζij (i.e., the difference ζij[k]). There are various methods for estimating the edge state estimate ζ^ij[k], but in this embodiment, the method used is irrelevant.

[0088] <Adjacent time difference observed noise dispersion value r> 2 ij> Adjacent time difference observed noise variance value r 2 ij is the variance value that occurs when acquiring (observing) the time difference information yij[k] between a distributed node 50-i and a distributed node 50-j adjacent to that distributed node 50-i. This information may be provided by the user through manual input of information that has been measured in advance. However, it is not limited to manual input, and real-time measurement may be performed by any method.

[0089] Up to this point, we have explained node state estimates, node state variances, and edge state information. Below, we will explain the following three types of information: • Adjacent time difference information yij[k] (y-i-j-k) • Control value information ui[k] (u-i-k) • Reference clock node flag information

[0090] <Adjacent Time Difference Information yij[k]> The adjacent time difference information yij[k] is information indicating the time difference between the distributed node 50-i (i.e., the self node) and the distributed node 50-j adjacent to the distributed node 50-i at time K. The adjacent time difference information yij[k] is the time difference between the actual clocks of each of the distributed node 50-i and the distributed node 50-j at time K, and is given by equation (3).

[0091]

[0092] The adjacent time difference information yij[k] is directly observable information. There are various methods for measuring the adjacent time difference information yij[k]. For example, it can be obtained by methods using timestamp exchange such as PTP (Precision Time Protocol) / NTP (Network Time Protocol). High-precision measurement using D-DMTD (Digital Dual Mixer Time Difference) is also possible. In the case of wireless communication, wireless bidirectional time comparison technology using the carrier phase of wireless communication, or TDoA (Time difference of arrival) or UWB (Ultra wideband) using propagation channel state information (CSI) may be used. In this embodiment, it is not specified which method is used for measurement.

[0093] <Control Value Information ui[k]> The control value information ui[k] is the clock control value of the distributed node 50-i (i.e., the self-node) at time k. The clock control value is a speed adjustment value (rate value) that controls the rate of the timekeeping operation of the distributed node 50, and its units are ppm, ppb, ppt, etc.

[0094] <Reference Clock Node Flag Information> The reference clock node flag information is flag information that declares whether the distributed node 50-i (i.e., the self node) is a general node 51 or a reference node 52, and is specified by the user.

[0095] <Information held by neighboring nodes> Up to this point, we have explained the information held by the distributed node 50-i (i.e., the node itself). Now, we will explain the information held by neighboring nodes.

[0096] Adjacent node information refers to information held by distributed node 50-j adjacent to distributed node 50-i (i.e., the node itself). Each distributed node 50 holds the node state estimate, node state distribution value, edge state information, control value information, and reference clock node flag information mentioned above. Adjacent node information refers to this information held by the adjacent distributed node 50-j from the perspective of distributed node 50-i. In the connection configuration of the distributed nodes 50 of the clock network 5, there may be multiple distributed nodes 50-j adjacent to distributed node 50-i. Distributed node 50-i can obtain adjacent node information from all adjacent distributed nodes 50-j.

[0097] <Clock Network Information> Clock network information is information that allows us to understand the network connectivity of the distributed nodes 50 of the entire clock network 5. The clock network information can be provided in any format. For example, if we assign an individual number to each distributed node 50 of the clock network 5, and N and M (both in italic cursive) are the sets of those numbers, and Ni (in italic cursive) is the set of numbers of general nodes 51 adjacent to general nodes 51 or reference nodes 52, then the connectivity status of the entire clock network 5 can be determined by equation (4).

[0098]

[0099] Furthermore, the clock network information can be manually entered by the user after they have fully grasped it, or it can be obtained by applying a mechanism that automatically grasps the connection topology, such as the Spanning Tree Protocol (STP).

[0100] In this embodiment, the clock network information is described as being pre-stored in the clock network information storage unit 70.

[0101] <Synchronization Destination Specification Information Di> Synchronization Destination Specification Information Di is a parameter used to specify the synchronization destination for the clock network 5. The synchronization destination refers to a "certain average time AVG" that should be synchronized. The synchronization destination can be specified by the user.

[0102] For example, for each distributed node 50-i∈N (where N is in italic cursive), the synchronization destination specification information Di∈R+ (where R+ is the set of all positive real numbers) is determined and provided according to the estimation method used. Since this is necessary for specifying the synchronization destination of the clock network 5 and calculating the rate adjustment information for each of the distributed nodes 50, the user specifies all of the synchronization destination specification information Di at once.

[0103] <Convergence Evaluation Function J> The convergence evaluation function J is a function that defines the convergence behavior for the convergence target (synchronization target) specified by the user. This function outputs rate adjustment information. The user specifies the convergence behavior.

[0104] <Correction Information u0[k]> Correction information u0[k] is a correction input value used to synchronize the general node 51 with the reference node 52. Correction information u0[k] is used by the control unit 560.

[0105] <Rate Adjustment Information> This is a setting value for each of the 50 distributed nodes used to converge to the synchronization destination in a way that minimizes or maximizes the convergence evaluation function J, based on the synchronization destination specification information Di, which indicates the synchronization destination set by the user, the convergence evaluation function J, and the clock network information. The rate adjustment information includes the feedback gain Fi or the observer gain Hi.

[0106] <Feedback Gain Fi> The feedback gain Fi is used by the control unit 560. It has a different setting value for each distributed node 50.

[0107] <Observer Gain Hi> Observer Gain Hi is used when implementing the configuration of this embodiment using a so-called "distributed observer method". Observer Gain Hi is used by the estimation unit 550 and the control unit 560. Observer Gain Hi is a different setting value for each distributed node 50.

[0108] [Distributed Nodes (Details)] As described above, the multiple distributed nodes 50 are equipped with an inter-node communication unit 510, a time difference information generation unit 520, and a server communication unit 530. The inter-node communication unit 510 communicates information regarding clock timing with any of the other distributed nodes 50 in each distributed node 50. The time difference information generation unit 520 generates time difference information that shows the time difference between a first time measured by its own clock and a second time measured by the clock of another distributed node 50, based on the exchanged information. The server communication unit 530 communicates with the centralized server 40.

[0109] Furthermore, the distributed node 50 is equipped with an estimation unit 550. Based on the information received by the inter-node communication unit 510 and the time difference information, the estimation unit 550 calculates an edge state estimate, which is an estimated value of the difference between its own clock state and the clock state of other distributed nodes. In addition, the inter-node communication unit 510 includes the estimate calculated by the estimation unit 550 in its information and communicates with any of the other distributed nodes 50.

[0110] Details of the distributed node 50 equipped with these functions will be described below. The time difference information generation unit 520 generates time difference information with neighboring nodes. The time difference information is information that shows the time difference between the timing time (clock) of the node itself and the timing time of the group of neighboring nodes, and is defined by equation (5).

[0111]

[0112] As described above, this time difference can be obtained by a method using known timestamp exchange such as PTP / NTP, and in addition, high-precision measurement using D-DMTD may be performed. Further, in the case of wireless, a wireless bidirectional time comparison technique using the carrier phase of wireless communication or TDoA or UWB using propagation channel state information (CSI) may be used.

[0113] The inter-node communication unit 510 (adjacent communication unit) exchanges information with adjacent nodes. The information transmitted and received between adjacent nodes may include the control value information ui[k] in the general node 51. Further, it may include other information generated and used in the calculation process of the estimation unit 550 in the general node 51 and the reference node 52. For example, it may also include the edge state estimation value ζ^ij[k] and the node state estimation value x^i[k].

[0114] Further, it may include information regarding the clock of the self-node. For example, it may include the variance q 2 i1 of the white frequency noise of the clock and the variance q 2 i2 of the frequency random walk noise. Information regarding the clock such as variance may not be transmitted every time communication occurs, and may be transmitted occasionally, such as at the start of control.

[0115] The estimation unit 550 calculates the edge state estimation value ζ^ij[k], which is an estimated value of the difference in the clock states between the self-node and the adjacent node, using the time difference information generated by the time difference information generation unit 520, the information of the adjacent node obtained from the inter-node communication unit 510, and the input signal generated by the control unit 560. The atomic clock model of the decentralized node 50-i is represented by the following equation (6), for example, as a second-order model.

[0116]

[0117] A model of the third order or higher can also be used, and for the B part of equation (6), another expression may be used depending on the definition of the input signal. The state variables and system noise are represented by equation (7).

[0118]

[0119] The distributed node 50-i (self node) uses the control value information ui[k] generated by the control unit 560 and the input signal uj[k] received by the inter-node communication unit 510 to configure the input information for frequency adjustment in equation (8).

[0120]

[0121] Correspondingly, the difference state between the distributed node 50-i (self node) and one or more distributed nodes 50-j (neighboring nodes) included in the group of neighboring nodes is defined as the edge state, as shown in equation (9).

[0122]

[0123] In this case, the state equation that the edge state follows can be expressed as equation (10).

[0124]

[0125] However, this is as shown in equation (11).

[0126]

[0127] Equation (12) represents the system matrix for phase measurement.

[0128]

[0129] Furthermore, wi[k] is the observation noise, and the covariance matrix is ​​set as shown in equation (13).

[0130]

[0131] Furthermore, as shown in equation (14).

[0132]

[0133] The algorithm described above, which estimates the edge state of neighboring nodes and is executed at the distributed node 50-i (self node), can be given, for example, as a Kalman filter in equation (15).

[0134]

[0135] Furthermore, this is as shown in equations (16) to (19).

[0136]

[0137]

[0138]

[0139]

[0140] These variances may be specified by the user or measured by the system for the clock itself. Those for neighboring clocks may be obtained by the inter-node communication unit 510.

[0141] The method for estimating the edge state is not limited to the Kalman filter described above. For example, the node state estimate x^i [k] may be calculated as shown in equation (20) using the control value information ui [k] generated by the control unit 560 and the node state estimate x^j of the adjacent node obtained from the inter-node communication unit 510, and the edge state estimate ζ^ij [k] may be calculated as shown in equation (21) (distributed observer method).

[0142]

[0143]

[0144] Here, Hi is observer gain and can be received as control information from the central server 40.

[0145] Furthermore, in order to prevent a decrease in the long-term stability of the time system due to the asymmetry of the edge state estimate ζ^[k], the estimate may be updated using information obtained from the communication unit. For example, when distributed nodes 50 transmit edge state estimates ζ^[k] to each other, the edge state estimate ζ^ij[k] in equation (15) can be updated using the edge state estimate ζ^ji[k] included in the received edge state estimate ζ^j[k], as shown in equation (22). Note that the edge state estimate ζ^ji[k] is the edge state estimate ζ^[k] between distributed node 50-j and distributed node 50-i, as seen from the distributed node 50 on the other side of the communication (i.e., the adjacent node).

[0146]

[0147] The server communication unit 530 can transmit necessary information to the central server 40. The information to be transmitted may be, for example, the edge state estimate ζ^i [k] and the error yi [k] - Ciζ^i calculated during the estimation process. - You may also use [k], etc. You may also communicate other necessary information.

[0148] As mentioned above, for example, the dispersion q of the white frequency noise of the clock 2 i1 and the variance q of frequency random walk noise 2 It can include i2, etc. Clock-related information such as distribution does not need to be transmitted with each communication, but can be transmitted only occasionally, such as at the start of control.

[0149] The control unit 560 calculates control value information ui[k] for controlling the rate of the timing unit 580 using control information distributed from the central server 40, correction information u0[k] obtained by broadcasting from the central server 40, and edge state estimate value ζ^ij[k] obtained by the estimation unit 550. When the feedback gain Fi is distributed as control information from the central server 40, the control value information ui[k] for frequency adjustment of the distributed node 50-i can be calculated as shown in equation (23).

[0150]

[0151] However, the correction information u0[k] is a correction input for frequency adjustment and is distributed from the central server 40 only at time points k=0, m, 2m, ... of period Tm. Period Tm is a sufficiently long period compared to the control period of the arithmetic unit 500 of the distributed node 50 (e.g., period Tn).

[0152] [Centralized Server 40 (Details)] The synchronization destination information acquisition unit 411 specifies information regarding the synchronization behavior of the general nodes 51. For example, depending on the estimation method to be implemented, synchronization destination information Di > 0 can be assigned to each general node 51-i ∈ N (N is in italicized cursive). Alternatively, this information may present options such as "average value of all clocks" or "time to maximize short-term stability" and allow the user to select. In this case, the system can determine the corresponding synchronization destination information Di. For example, if it is desired to maximize the short-term stability of the time system in which the group of nodes synchronize, it is specified as shown in equation (24).

[0153]

[0154] If you want the time system that the group of nodes synchronize to be the average time of all nodes, you can specify this as shown in equation (25).

[0155]

[0156] The rate adjustment information generation unit 410 acquires clock network information from the clock network information storage unit 70. The synchronization destination specification information acquisition unit 411 acquires the synchronization destination specification information Di specified by the user. The gain specification information acquisition unit 412 acquires the gain specification information specified by the user.

[0157] The rate adjustment information generation unit 410 determines control information such as the control gain (for example, the feedback gain Fi) based on the clock network information, the synchronization destination specification information Di, and the gain specification information. The rate adjustment information generation unit 410 may also calculate the observer gain Hi instead of the feedback gain Fi.

[0158] Here, the common feedback gain F is denoted by equation (26) without loss of generality.

[0159]

[0160] In this case, the parameters γc and α are selected from those that satisfy equation (27).

[0161]

[0162] This selection can be calculated such that the convergence evaluation function J is minimized or local minimized, given the convergence evaluation function J as gain specification information. However, equation (28) is the graph Laplacian of the communication network of general node 51, and is calculated using clock network information. Note that eN|i is the i-th column vector of the N-th order identity matrix.

[0163]

[0164] Furthermore, as shown in equation (29).

[0165]

[0166] The feedback gain Fi of each general node 51-i is given by equation (30).

[0167]

[0168] In other words, the feedback gain Fi of each general node 51 is calculated by multiplying the common feedback gain F by the synchronization destination specification information Di as a weight.

[0169] Alternatively, parameter values ​​may be directly provided as gain specification information. In this case, the user may be presented with the value on the right-hand side of the first equation of equation (27), which is the upper limit of the parameter.

[0170] The rate adjustment information generation unit 410 may also calculate the observer gain Hi in equation (20). The common observer gain H is expressed as equation (31) without loss of generality.

[0171]

[0172] At this time, γo and β are set to satisfy equation (32). Here, L is the graph Laplacian of equation (28). Also, as shown in equation (33).

[0173]

[0174]

[0175] The observer gain Hi of each general node 51-i is given by equation (34).

[0176]

[0177] In other words, the observer gain Hi for each general node 51 is calculated by multiplying the common observer gain H by the synchronization destination specification information Di as a weight.

[0178] In this case, the selection method for γo and β can be specified by the gain specification section, similar to the selection of the feedback gain.

[0179] The edge information receiving unit 430 receives an edge state estimate ζ^ij[k] from the reference node 52. The correction information generation unit 440 generates correction information u0[k] indicating the amount of control correction to be distributed to the entire general node 51, based on the information received by the edge information receiving unit 430 from the reference node 52. The correction information u0[k] can be calculated as shown in equation (35) based on the average value of all edge state estimates ζ^ij[k] calculated at the reference node 52. However, the feedback gain F0[k] is set by equation (36).

[0180]

[0181]

[0182] Here, the parameters γ0 and α0 are given such that equation (37) is satisfied.

[0183]

[0184] As described above, the correction information u0[k] is calculated only at time points k=0, m, 2m, ... in period Tm and distributed from the centralized server 40. Period Tm is a sufficiently long period compared to the control period of the control unit 560 of the distributed node 50 (for example, period Tn). Therefore, the edge information receiving unit 430 only needs to receive the edge state estimate ζ^ij[k] from the reference node 52 at time point k in period Tm. If the system does not include a reference node, or if no information from a reference node can be obtained due to a communication failure, the correction information generating unit 440 may determine u0[k] using information obtained from a general node. For example, an error can be obtained from a general node to calculate equation (38) and obtain equation (39).

[0185]

[0186]

[0187] However, K in equation (38) is the gain, which may be specified by the user, or it may be automatically determined by the system according to theories such as the Kalman filter.

[0188] As described above, the period Tm, which is the transmission period of the synchronization control information of the centralized server 40, is longer than the period Tn of the time synchronization control of the distributed nodes 50.

[0189] In other words, the cluster clock system 1 of this embodiment comprises a plurality of distributed nodes, each equipped with a clock, which synchronize their clocks in a predetermined first cycle, and a centralized server which performs synchronization control operations and distributes synchronization control information indicating guidelines for the synchronization operations at the distributed nodes to the distributed nodes in a second cycle, which has a longer period than the first cycle.

[0190] With the cluster clock system 1 configured in this way, the processing load on the distributed nodes 50 is reduced, and the distributed nodes 50 can autonomously perform time synchronization control at a relatively high frequency (i.e., the first cycle is shorter than the second cycle). Therefore, with the cluster clock system 1, the distributed nodes 50 can perform time synchronization in a relatively short time, and the time synchronization performance of the distributed nodes 50 can be improved.

[0191] [Operation of Cluster Clock System 1] Figure 8 shows an example of the operation flow of the cluster clock system 1 in this embodiment. The operation flow of control information generation in the central server 40 and the operation flow of time synchronization control in the distributed nodes 50 will be explained separately below.

[0192] [Operation of the central server 40] (Step S410) The rate adjustment information generation unit 410 acquires clock network information from the clock network information storage unit 70. (Step S420) The synchronization destination specification information acquisition unit 411 and the gain specification information acquisition unit 412 acquire the information specified by the user. As described above, the information specified by the user includes synchronization destination specification information Di and gain specification information.

[0193] Steps S410 and S420 should be executed when there is a change in the topology of the clock network 5 or a change in the user's specified synchronization operation. In the following steps S, we will explain assuming that there has been no change in the topology of the clock network 5 or a change in the user's specified synchronization operation.

[0194] (Step S430) The edge information receiving unit 430 receives the edge state estimate ζ^ij[k] from the reference node 52. The operation of the reference node 52 will now be explained.

[0195] (Step S510) The calculation unit 500 of the reference node 52 calculates the edge state estimate ζ^[k]. The reference node 52 transmits the calculated edge state estimate ζ^[k] to the central server 40 as reference node information. Since the reference node 52 is part of the distributed node 50, it communicates with neighboring nodes in the same way as the other distributed nodes 50. Specifically, the reference node 52 performs the same processing as steps S511 to S531 by its own node 50-i and steps S512 to S532 by the neighboring node 50-j, which will be described later. Note that the processing of communication between the reference node 52 and neighboring nodes is not shown in the figure.

[0196] (Step S520) The arithmetic unit 500 of the reference node 52 determines whether or not the control time k (for example, the control time according to the period Tn) has arrived. If the arithmetic unit 500 determines that the control time k has arrived (Step S520; YES), it returns to step S510 and continues the calculation process of the edge state estimate value ζ^[k]. If the arithmetic unit 500 determines that the control time k has not arrived (Step S520; NO), it determines again whether the control time k has arrived.

[0197] In other words, the reference node 52 repeatedly calculates the edge state estimate ζ^[k] and transmits it to the central server 40 according to a predetermined control period (for example, period Tn; first period).

[0198] As mentioned above, there may be situations where none of the reference time nodes 60 connected to the reference node 52 are able to supply the reference time for some reason. In this case, the edge information receiving unit 430 may be configured to receive the edge state estimate ζ^ij[k] not only from the reference node 52 but also from the general node 51. With the cluster clock system 1 configured in this way, time synchronization can be performed between each distributed node 50 included in the clock network 5 even when the reference time node 60 is unavailable.

[0199] Let's return to the explanation of the operation of the central server 40. In step S430, the edge information receiving unit 430 receives the edge state estimate ζ^ij[k] calculated by the reference node 52.

[0200] (Step S440) The rate adjustment information generation unit 410 of the central server 40 generates control information (also called rate adjustment information). The control information includes, for example, the feedback gain Fi and the observer gain Hi. The correction information generation unit 440 generates correction information u0[k].

[0201] (Step S450) The control information distribution unit 420 distributes the control information generated in step S440 to each distributed node 50. The broadcast distribution unit 450 also broadcasts the correction information u0[k] generated in step S440 to each distributed node 50.

[0202] In this example, the control information and correction information u0[k] are described as being generated together in the same step S (step S440), but this is not limited to this. The control information and correction information u0[k] may be generated at separate timings. Also, in the above example, the control information is described as being distributed in step S450, but this is not limited to this. More specifically, in the above example, it is stated that the control information and correction information u0[k] are generated in step S440, but the control information may be generated after the execution of step S420 and before the execution of step S430 (i.e., outside the processing loop of step S460; YES). Also, in the above example, it is stated that the control information and correction information u0[k] are distributed in step S450, but the control information may be distributed after the execution of step S420 and before the execution of step S430 (i.e., outside the processing loop of step S460; YES). In other words, control information does not need to be repeatedly generated and delivered in the processing loop of step S460; YES.

[0203] (Step S460) The calculation unit 400 of the central server 40 determines whether or not the control time k (for example, the control time according to the period Tm) has arrived. If the calculation unit 400 determines that the control time k has arrived (Step S460; YES), it returns to step S430 and continues the calculation process of the edge state estimate value ζ^[k]. If the calculation unit 400 determines that the control time k has not arrived (Step S460; NO), it determines again whether the control time k has arrived.

[0204] In other words, the centralized server 40 repeatedly calculates control information and correction information u0[k] and transmits them to each distributed node 50 according to a predetermined control cycle (for example, cycle Tm; second cycle).

[0205] [Operation of the Distributed Node 50] Next, we will explain the operation flow of the distributed node 50. As mentioned above, a distributed node 50 consists of the local node and adjacent nodes. Here, we will explain the operation flow by considering a certain distributed node 50 included in the clock network 5 as the local node, and other distributed nodes 50 adjacent to that local node as adjacent nodes.

[0206] (Steps S511, S512) The server communication unit 530 of each distributed node 50 acquires control information transmitted from the central server 40 in step S450.

[0207] (Steps S521 to S531, Steps S522 to S532) The inter-node communication unit 510 of each distributed node 50 sends and receives its own node information to and from neighboring nodes. That is, the inter-node communication unit 510 exchanges the node information of its own node with the node information of neighboring nodes.

[0208] (Steps S541, S542) The calculation unit 500 of each distributed node 50 controls the rate of the timing unit 580 based on the node information exchanged with each other in steps S521 to S531 and steps S522 to S532 described above.

[0209] More specifically, the time difference information generation unit 520 of each distributed node 50 calculates the time difference between the time measured by an adjacent distributed node 50 and the time measured by its own distributed node 50, based on the node information exchanged with each other in each of the steps S described above, and generates adjacent time difference information indicating this time difference.

[0210] The estimation unit 550 calculates the above-mentioned edge state estimate ζ^ij[k] based on the generated adjacent time difference information, correction information u0[k], and rate adjustment information.

[0211] The control unit 560 calculates control value information ui[k] for controlling the rate of the timing unit 580 using the control information and correction information u0[k] acquired from the central server 40 and the edge state estimate value ζ^ij[k] calculated by the estimation unit 550. The control unit 560 controls the rate of the timing unit 580 based on the calculated control value information ui[k].

[0212] As mentioned above, the reference node 52 among the distributed nodes 50 does not have the functions of the control unit 560. Therefore, if the adjacent node (distributed node 50-j) is the reference node 52, the operation of step S542 in that adjacent node is omitted.

[0213] (Steps S551, S552) The calculation unit 500 of each distributed node 50 determines whether or not the control time k (for example, the control time according to the period Tn) has arrived. If the calculation unit 500 determines that the control time k has arrived (Steps S551, S552; YES), it returns to step S551 or step S552 and continues the rate control processing of the timing unit 580. If the calculation unit 500 determines that the control time k has not arrived (Steps S551, S552; NO), it determines again whether the control time k has arrived.

[0214] In other words, the distributed node 50 repeatedly performs the rate control processing of the timing unit 580 according to a predetermined control period (for example, period Tn; first period).

[0215] As described above, the first period (e.g., period Tn), which is the control period of the arithmetic unit 500 of the distributed node 50 (general node 51, reference node 52), is about 1 second, and the second period (e.g., period Tm), which is the control period of the arithmetic unit 400 of the centralized server 40, is about 100 seconds. In other words, the second period (e.g., period Tm) is longer than the first period (e.g., period Tn).

[0216] In other words, the cluster clock system 1 of this embodiment comprises a plurality of distributed nodes, each equipped with a clock, which synchronize their clocks in a predetermined first cycle, and a centralized server which performs synchronization control operations and distributes synchronization control information indicating guidelines for the synchronization operations at the distributed nodes to the distributed nodes in a second cycle, which has a longer period than the first cycle.

[0217] In the example described above, the centralized server 40 performed calculations with a period Tm and the distributed nodes 50 performed calculations with a period Tn. However, this is merely a description of a typical control period for each device and is not limited to this. Both the centralized server 40 and the distributed nodes 50 may have multiple control periods depending on the type of calculation. In this case as well, the period during which the centralized server 40 supplies synchronization control information indicating guidelines for synchronous operation to the distributed nodes 50 (i.e., the first period) is longer than the period during which the distributed nodes 50 perform calculations to adjust the clock rate (i.e., the second period).

[0218] [Technical Points of Cluster Clock System 1] Finally, the technical points of the cluster clock system 1 of this embodiment are summarized. (1) The cluster clock system 1 is composed of distributed nodes 50 that operate on a short period and a centralized server 40 that operates on a longer period than the distributed nodes 50. (2) The distributed nodes 50 are composed of two types: general nodes 51 that are synchronized to a specified reference time (e.g., standard time) and reference nodes 52 that have a clock that is frequency-synchronized with the reference time. It is desirable to have a reference node 52, but it is also possible to have a configuration with only a centralized server 40 and general nodes 51 without a reference node 52. (3) The distributed nodes 50 have an inter-node communication unit 510 that exchanges information with adjacent nodes, a time difference information generation unit 520 that acquires the time difference between the adjacent clock and its own clock, and a server communication unit 530 that communicates with the centralized server 40. (4) The distributed nodes 50 have an estimation unit 550 that calculates an edge state estimate, which is an estimated value of the difference in state between the adjacent clock and its own clock. (5) The general node 51 has a control unit 560 that can adjust the clock frequency and so on, and the control unit 560 generates a control value that controls the rate of the timekeeping operation based on control information distributed from the central server 40, correction information distributed from the central server 40 and estimated values ​​calculated by the estimation unit 550. (6) The central server 40 has a rate adjustment information generation unit 410 that generates control information such as control gain based on clock network information and so on, and a control information distribution unit 420 that distributes control information to all general nodes 51. (7) The rate adjustment information generation unit 410 of the central server 40 has a synchronization destination specification information acquisition unit 411 that acquires synchronization destination information that specifies the synchronization destination time of the distributed node 50 to be controlled, and a gain specification information acquisition unit 412 that acquires gain specification information that specifies the control gain. (8) The gain specification information acquisition unit 412 can acquire a convergence evaluation function J that serves as the basis for gain selection as gain specification information.(9) The centralized server 40 includes an edge information receiving unit 430 that receives information from the distributed nodes 50, a correction information generation unit 440 that generates correction information which is a common input correction amount for all general nodes 50 based on edge state estimates obtained from the reference node 52 through the edge information receiving unit 430, and a broadcast distribution unit 450 that distributes the generated input correction amount to the general nodes 50. (10) When edge information estimates cannot be obtained from the reference node 52, the correction information generation unit 440 of the centralized server 40 can determine the broadcast input based on the edge state estimates of the general node 51.

[0219] As described above, the cluster clock system 1 makes it possible to achieve robust and resilient time synchronization of the clock group.

[0220] While embodiments of the present invention have been described in detail above with reference to the drawings, the specific configuration is not limited to these embodiments, and design changes and the like are also included within the scope of the gist of the present invention. For example, a computer program for realizing the functions of each of the above-described devices may be recorded on a computer-readable recording medium, and the program recorded on this recording medium may be read by a computer system and executed. The term "computer system" as used herein may include hardware such as an operating system and peripheral devices.

[0221] Furthermore, "computer-readable recording media" refers to writable non-volatile memory such as flexible disks, magneto-optical disks, ROMs, and flash memory, portable media such as DVDs (Digital Versatile Discs), and storage devices such as hard disks built into computer systems. In addition, "computer-readable recording media" also includes volatile memory (such as DRAM (Dynamic Random Access Memory)) within computer systems that act as servers or clients when programs are transmitted via networks such as the Internet or communication lines such as telephone lines, which retains programs for a certain period of time.

[0222] Furthermore, the above program may be transmitted from a computer system that stores the program in a memory device or the like to another computer system via a transmission medium or by transmission waves within the transmission medium. Here, the "transmission medium" for transmitting the program refers to a medium that has the function of transmitting information, such as a network (communication network) such as the Internet or a communication line (communication line) such as a telephone line. Also, the above program may be for the purpose of realizing a part of the functions described above. Furthermore, it may be a so-called differential file (differential program) that can realize the above functions in combination with a program already recorded in the computer system.

[0223] 1...Cluster clock system, 40...Centralized server, 50...Distributed nodes, 51...General nodes, 52...Reference nodes

Claims

1. A cluster clock system comprising: a plurality of distributed nodes, each equipped with a clock, which synchronize their clocks in a predetermined first cycle; and a centralized server which performs synchronization control operations to distribute synchronization control information indicating guidelines for the synchronization operations at the distributed nodes in a second cycle that is longer than the first cycle.

2. The cluster clock system according to claim 1, wherein each of the multiple distributed nodes comprises: an inter-node communication unit that communicates information regarding clock timing with any of the other distributed nodes; a time difference information generation unit that generates time difference information indicating the time difference between a first time measured by its own clock and a second time measured by the clock of another distributed node; and a server communication unit that communicates with the centralized server.

3. The cluster clock system according to claim 2, further comprising an estimation unit that calculates an edge state estimate, which is an estimated value of the difference between the state of its own clock and the state of the clocks of other distributed nodes, based on the information received by the inter-node communication unit and the time difference information, wherein the inter-node communication unit includes the calculated estimate in the information and communicates with any of the other distributed nodes.

4. The cluster clock system according to claim 1, wherein the plurality of distributed nodes include: a reference node whose clock is a reference clock synchronized to a reference time; and a general node whose clock is a general clock whose clock is not the reference clock but is synchronized based on information distributed from the central server.

5. The cluster clock system according to claim 4, wherein each distributed node comprises: an inter-node communication unit that communicates information with any of the other distributed nodes; a time difference information generation unit that generates time difference information indicating the time difference between a first time measured by its own clock and a second time measured by the clock of another distributed node; an estimation unit that calculates an edge state estimate, which is an estimated value of the difference between the state of its own clock and the state of the clock of another distributed node, based on the time difference information generated by the time difference information generation unit; and a server communication unit that communicates with the centralized server.

6. The cluster clock system according to claim 5, wherein each general node further comprises a control unit that adjusts the rate of its own clock based on the synchronization control information distributed from the central server and the edge state estimate calculated by the estimation unit.

7. The cluster clock system according to claim 4, comprising: a centralized server, a rate adjustment information generation unit that generates rate adjustment information indicating the degree of rate adjustment of the distributed nodes based on clock network information indicating the configuration of the distributed nodes; and a control information distribution unit that distributes the rate adjustment information as synchronization control information to all of the plurality of distributed nodes.

8. The cluster clock system according to claim 7, wherein the rate adjustment information generation unit comprises: a synchronization destination specification information acquisition unit that acquires synchronization destination specification information that specifies the synchronization destination of the distributed node to be controlled; and a parameter acquisition unit that acquires parameters for calculating the rate adjustment information from a user, and the rate adjustment information generation unit generates the rate adjustment information based on the acquired parameters.

9. The cluster clock system according to claim 8, wherein the parameter acquisition unit acquires a convergence evaluation function as the parameter, and the rate adjustment information generation unit generates the rate adjustment information based on the received convergence evaluation function.

10. The cluster clock system according to claim 7, further comprising: a correction information generation unit that generates correction information to correct the degree of rate adjustment of the distributed node based on edge state estimates output by the reference node, which are estimated values ​​of the difference between the state of its own clock and the state of the clocks of other distributed nodes; and a broadcast distribution unit that distributes the generated correction information as synchronization control information to all of the multiple distributed nodes.

11. The cluster clock system according to claim 10, wherein the correction information generation unit generates the correction information based on the edge state estimate output by the general node when the edge state estimate cannot be obtained.

12. A storage medium for storing a program that causes a computer on a distributed node to perform the following actions: communicate information with any of the other distributed nodes; generate time difference information indicating the time difference between a first time measured by its own clock and a second time measured by the clocks of the other distributed nodes; calculate an edge state estimate, which is an estimate of the difference between the state of its own clock and the state of the clocks of the other distributed nodes, based on the generated time difference information; and communicate with a centralized server.

13. A storage medium that stores a program for a computer on a centralized server to perform the following actions: generate rate adjustment information indicating the degree of rate adjustment of the distributed nodes based on clock network information indicating the configuration of the distributed nodes; and distribute the rate adjustment information as synchronization control information to all of the multiple distributed nodes.

Citation Information

Patent Citations

  • Distributed adaptive synchronization method and device based on state information

    CN118042584A

  • Multihop wireless ad hoc network, communication system, information collection and setting device, information terminal, and route search method

    JP2011223419A

  • Method for comparing time of clocks and method for correcting time of clock

    JP2016057169A

  • Timing and frame structure in integrated access backhaul (IAB) network

    JP2020191640A

  • Clock adjustment device, method, and program

    JP2021076434A