This invention relates to network systems and more particularly to improving timing accuracy in network systems.
Networks compliant with IEEE 1588 provide the backbone for 5G wireless applications and require precise time synchronization. Network communication systems use timing protocols to ensure time of day (ToD) counters in the network are synchronized. Synchronization (SYNC) signals are used to ensure that time of day counters update at the same time in the network. Any delay/offset and process, voltage, temperature (PVT) variation between the SYNC signals being supplied to the ToD counters in each line card in the network box results in an error that is classified as Continuous Time Error (CTE). 1588 networks specify the amount of error allowed. Any time error can result in packet loss or performance loss in real time applications like video streaming.
The master timing card 103 generates a synchronization (SYNC) signal and system clock signal (SYSCLK) using PLL 117 and dividers (not shown). The master timing card 103 supplies the SYSCLK and SYNC signal (shown as signals 107) to all of the line cards 101 and 105 over backplane 109. The SYNC signal is a global signal inside the network system box 100 that signifies the right moment/edge for the ToD counters 111 to rollover. The SYNC signal typically has a frequency range of 8 kHz to PP2S (pulse per 2 seconds). In many network systems the SYNC signal is a 1 pulse per second (1PPS) signal and in such network systems the SYNC signal indicates when the ToD should increment by one second. SYNC is an integer divided down and edge aligned version of the system clock signal SYSCLK. The various ToD counters 111 contain the same value and rollover at the same time based on the SYNC signal. Each of the line cards 101 and 105 generate the local SYNC signal by dividing the SYSCLK generated by PLL 121 in a divider (not shown in
The exact position of the SYNC edge is derived using a precision time protocol (PTP) servo loop that uses the time information inside the incoming Synchronous Ethernet (SyncE) packet stream to the slave line card 101 on data in 116.
The slave line card 101 and the master timing card 103 also have a closed loop PTP servo system in accordance with the IEEE 1588 protocol that corrects the position of the SYNC signal over process, voltage, and temperature (PVT) and aligns the SYNC signals distributed by the master timing card 103 to the timing of the incoming packet stream to the slave line card. The servo loop ensures that the slave line card and the master timing card are synchronized. The slave line card 101 and the master timing card 103 exchange information in the closed loop system to adjust the SYSCLK and SYNC pair on the master timing card such that the slave line card ToD is aligned with the network ToD of the chosen incoming data stream on data_in 116. The PTP servo loop adjusts the timing of SYNC by adjusting PLL 117 so that the slave line card ToD is aligned in frequency and phase to the upstream ToD received by the slave line card on data_in 116. The distributed SYSCLK is supplied as a reference clock to the PLL 121 within each of the line cards and the line card PLLs generate a local SYSCLK and SYNC signal that is phase and frequency aligned with the distributed SYSCLK and SYNC signal. The master line cards 105 are duplicates (up to 64 copies) of the slave line card 101 but without the closed loop PTP servo loop. In other words, the distribution of the CLK/SYNC pair to the master line cards 105 is open loop (without the PTP closed loop adjustments). The timing card and various line cards communicate, at least in part, utilizing a serial communication bus (not shown in
As communication systems become faster and timing synchronization becomes more important, there is a need to improve timing accuracy within the system.
Accordingly, in one embodiment a method for providing a time of day includes generating a heartbeat clock signal having a frequency higher than a synchronization signal, the synchronization signal indicative of when to increase a time of day by a predetermined increment. The method further includes time stamping the heartbeat clock signal to generate heartbeat time stamps associated with an internal time domain and determining the time of day value corresponding to an edge of a timing signal using one of the heartbeat time stamps and a time stamp of the timing signal and storing a time of day value in a time of day storage location, the time of day value being in a network time domain.
In another embodiment a line card for maintaining a time of day in a network communication system includes an oscillator to supply an oscillator output signal and a divider coupled to the oscillator output signal to divide the oscillator output signal and supply a heartbeat clock signal associated with an internal time domain. First time stamp logic timestamps the heartbeat clock signal to generate heartbeat time stamps that are associated with the internal time domain. Second time stamp logic provides a timing signal time stamp for an edge of a timing signal, the timing signal stamp associated with the internal time domain. A time of day storage location stores a first time of day in a network time domain corresponding to the edge of the timing signal. The first time of day is generated using one of the heartbeat time stamps and the timing signal time stamp.
In another embodiment a network timing system includes a slave line card and a plurality of master line cards. A master timing card is communicatively coupled to supply a clock signal to the slave line card and the plurality of master line cards. The master timing card includes a first time of day register storing a first time of day value corresponding to a first edge of an internal clock signal and the master timing card includes a second time of day register storing a second time of day value corresponding to a second edge of an input clock signal.
In another embodiment a method for providing a time of day in a timing card of a network communications system includes storing a time of day in a time of day storage location. The method further includes generating a heartbeat clock signal having a frequency higher than a synchronization signal. The synchronization signal is indicative of when to increase the time of day by a predetermined increment. The heartbeat clock signal is time stamped to generate heartbeat time stamps.
In another embodiment a timing card in a network communication system includes a time of day storage location and a digitally controlled oscillator to supply an oscillator output signal. A divider is coupled to the oscillator output signal to divide the oscillator output signal and supply a heartbeat clock signal associated with an internal time domain and having a frequency higher than a synchronization signal indicative of when to increase the time of day by a predetermined increment. Time stamp logic timestamps the heartbeat clock signal to generate heartbeat time stamps. The time of day storage location is updated with an updated time of day for each occurrence of the heartbeat clock signal.
In another embodiment a line card includes a first clock source to supply a first timing signal. A second clock source is coupled to the first clock source and supplies a second timing signal used to time stamp a plurality of input signals. A plurality of time stampers are coupled to receive respective ones of the plurality of input signals and to generate the respective time stamp values corresponding to edges of the respective ones of the plurality of input signals. A plurality of time of day registers store respective time of day values corresponding to edges of respective ones of the plurality of input signals. The respective time stamp values are used to determine the respective time of day values for the plurality of input signals.
In another embodiment a method for generating time of day values includes time stamping edges of a plurality of input signals in time stampers and generating respective time stamp values corresponding to respective ones of the edges of the plurality of input signals. The method further includes storing the time of day values in respective time of day registers, the time of day values based on the time stamp values.
In another embodiment an apparatus for generating a plurality of time of day values includes a plurality of time stampers coupled to receive respective ones of the plurality of input signals and to generate the respective time stamp values corresponding to edges of the respective ones of the plurality of input signals. A plurality of time of day registers store respective ones of the time of day values corresponding to edges of respective ones of the plurality of input signals. The respective time stamp values are used to determine the respective time of day values for the plurality of input signals.
The present invention may be better understood, and its numerous objects, features, and advantages made apparent to those skilled in the art by referencing the accompanying drawings.
The use of the same reference symbols in different drawings indicates similar or identical items.
To improve system communications by increasing timing accuracy and flexibility embodiments emulate high speed counters utilizing a virtual time of day approach. Rather than using counters, time stamps are used to provide accurate time of day values without maintaining actual time of day counters. Referring to
In the embodiment illustrated in
All of the transitions (or at least one edge, e.g., the rising edge) of the input signals are time stamped by time stamper 314. Time stamper 314 is shown as having discrete time stamp logic TS1, TS2, TS3, and TS4 for each of the four inputs but substantial portions of the timestamp logic may be shared. The time stamper logic is described in additional detail herein. For now, it is sufficient to understand that the time stamper runs off an internal clock 306 derived from the VCO in PLL 301. In an embodiment the time stamper includes a time stamper counter that resets every 2 seconds. Note that there are at least two separate time domains of significance to the time stamp operation. One of the time domains is the local time domain associated with the DCO of the integrated circuit 300. The other time domain is the network time domain associated with the signals that are received by the integrated circuit 300. For example, the SYNC signal and the ToD are values in the network time domain. The time of day is in units of Coordinated Universal Time (UTC) time of seconds, nanoseconds, and picoseconds. The time stamps in local time need to be converted to UTC time in order to provide an accurate time of day. That requires a conversion factor, which is used by the conversion logic 320 to convert from internal time to network time.
The steady state time of day value is the sum of LSBs maintained by the integrated circuit 300 plus most significant bit (MSB) values initialized at startup from external sources. In the embodiment of
The timing integrated circuit 300 includes an M divider 326, which divides the DCO output signal by a value M to generate a heartbeat clock signal 328. That heartbeat clock signal is used in converting the occurrence of edges on the inputs to time of day values. Each time of day edge (or just rising of falling edge) is time stamped by time stamper 330. The time stamper runs off the PLL VCO derived signal 306 that is supplied to time stamper (TS) logic in the integrated circuit 300 while the M divider runs off the DCO 309. In addition, the time of day is updated for each heartbeat clock signal. Each heartbeat edge corresponds to a time period in real time. That time period is added to the previous base period to calculate the new ToD time and the corresponding internal time associated with the ToD time. For example, referring to
The heartbeat signal time stamped in the time stamper (TSM) 330 for the M divider along with the other time stamp values are supplied through an internal interface 332 to the time stamp registers 324. In an embodiment, the interface is time interleaved so one of the time stamp values in on the bus at one time. In an embodiment, there are five time stamp registers in time stamp register 324, one for each input signal and one for the M divider time stamp. In other embodiments, other numbers of input signals are time stamped, some or all of which are converted to ToD values.
Referring to
The heartbeat signals are also used to determine the time of occurrence of the other input signals, e.g., those input signals that are time stamped by time stampers T1 through T3. With reference to
Time/phase measurement circuit 1006 generates an indication of time difference EDGE_DELTA between edges of clock signal TDC SAMPLING CLOCK and clock signal INPUT CLOCK. That difference is digitized by analog-to-digital converter 1008, which provides a digital version of that difference as fractional time code TC_FRAC. In an embodiment, the fractional time code is a residue that can range from 0 to 1 unit interval (UI) of the sampling clock. Clock signal INPUT CLOCK has input frequency Fin=Fref/N+α; 0≤α<1, where N corresponds to the integer number of the integer number of full cycles of clock signal TDC SAMPLING CLOCK in a period of clock signal INPUT CLOCK and αcorresponds to the residue. The residue has a periodicity of α*Fin and is sampled at Fin.
Referring again to
Thus, various embodiments for providing time of day information have been described. The description of the invention set forth herein is illustrative, and is not intended to limit the scope of the invention as set forth in the following claims. Variations and modifications of the embodiments disclosed herein, may be made based on the description set forth herein, without departing from the scope of the invention as set forth in the following claims.
This application claims the benefit of U.S. Provisional Application No. 63/250,708, entitled “MAINTAINING A VIRTUAL TIME OF DAY,” naming Vivek Sarda as inventor, filed on Sep. 30, 2021, and U.S. Provisional Application No. 63/347,788, entitled “MAINTAINING A VIRTUAL TIME OF DAY”, naming Vivek Sarda as inventor, filed on Jun. 1, 2022, which applications are incorporated herein by reference.
Number | Name | Date | Kind |
---|---|---|---|
5140611 | Jones | Aug 1992 | A |
5509038 | Wicki | Apr 1996 | A |
5644604 | Larson | Jul 1997 | A |
5964880 | Liu | Oct 1999 | A |
6549046 | Klecka, III | Apr 2003 | B1 |
6760586 | Lee | Jul 2004 | B1 |
6839858 | James | Jan 2005 | B1 |
6885647 | Chung et al. | Apr 2005 | B1 |
7002996 | Dougherty et al. | Feb 2006 | B1 |
7079589 | Maksimovic | Jul 2006 | B1 |
7116743 | Wang | Oct 2006 | B1 |
7203227 | Currivan | Apr 2007 | B1 |
7417510 | Huang | Aug 2008 | B2 |
7451337 | Hewitt | Nov 2008 | B1 |
7451339 | Smith, Sr. | Nov 2008 | B2 |
7535893 | Beladakere et al. | May 2009 | B1 |
7860205 | Aweya et al. | Dec 2010 | B1 |
7903681 | Roberts et al. | Mar 2011 | B2 |
8355476 | Lee | Jan 2013 | B2 |
8942561 | Boyd et al. | Jan 2015 | B2 |
9246615 | Ellegard et al. | Jan 2016 | B2 |
9369270 | Spijker | Jun 2016 | B1 |
9426762 | Ehlers et al. | Aug 2016 | B2 |
9479182 | Baidas | Oct 2016 | B1 |
9594396 | Turner et al. | Mar 2017 | B2 |
9628255 | Biadas | Apr 2017 | B1 |
9665121 | Aweya | May 2017 | B2 |
9673970 | Aweya et al. | Jun 2017 | B1 |
9860004 | Joergensen | Jan 2018 | B2 |
9960873 | Yang | May 2018 | B2 |
10007639 | Mitric | Jun 2018 | B2 |
10075284 | Rodrigues | Sep 2018 | B1 |
10084559 | Devineni | Sep 2018 | B1 |
10158444 | Darras | Dec 2018 | B1 |
10511312 | Pastorello et al. | Dec 2019 | B1 |
10536258 | Choo et al. | Jan 2020 | B2 |
10594423 | Anand et al. | Mar 2020 | B1 |
10715307 | Jin | Jul 2020 | B1 |
10727845 | Balakrishnan | Jul 2020 | B1 |
10797686 | Terstrup et al. | Oct 2020 | B1 |
10917097 | Meyer et al. | Feb 2021 | B1 |
10951216 | Barnette | Mar 2021 | B1 |
11061432 | Sarda | Jul 2021 | B2 |
11088816 | Sarda | Aug 2021 | B1 |
11088819 | Sarda | Aug 2021 | B1 |
20060020733 | Sarda | Jan 2006 | A1 |
20060280182 | Willaims | Feb 2006 | A1 |
20070046516 | Dombusch | Mar 2007 | A1 |
20080080563 | Kataria | Apr 2008 | A1 |
20080240169 | Cui et al. | Oct 2008 | A1 |
20090024865 | Fugaro | Jan 2009 | A1 |
20090100197 | Smith, Sr. | Apr 2009 | A1 |
20090168808 | Cho | Jul 2009 | A1 |
20090251226 | Kathuria et al. | Oct 2009 | A1 |
20100118894 | Awaya et al. | May 2010 | A1 |
20110296226 | Sorbara et al. | Dec 2011 | A1 |
20120300795 | Joergensen | Nov 2012 | A1 |
20120319734 | Nagaraj | Dec 2012 | A1 |
20130121347 | Saito et al. | May 2013 | A1 |
20130215910 | Inomata | Aug 2013 | A1 |
20140068315 | Aweya et al. | Mar 2014 | A1 |
20140320181 | Mitric | Oct 2014 | A1 |
20150092797 | Aweya | Apr 2015 | A1 |
20150185759 | Hinderer et al. | Jul 2015 | A1 |
20150200770 | Rahbar et al. | Jul 2015 | A1 |
20150207620 | Colby | Jul 2015 | A1 |
20150222276 | Milijevic | Aug 2015 | A1 |
20160170439 | Aweya | Jun 2016 | A1 |
20160182217 | Hashizume | Jun 2016 | A1 |
20170135053 | Shenoi et al. | May 2017 | A1 |
20170288801 | Aweya | Oct 2017 | A1 |
20170373824 | Mitchler | Dec 2017 | A1 |
20190020333 | Koch et al. | Jan 2019 | A1 |
20190036804 | Mihelic et al. | Jan 2019 | A1 |
20190379474 | Coulter | Dec 2019 | A1 |
20190379475 | Seethamraju | Dec 2019 | A1 |
20200021379 | Aweya | Jan 2020 | A1 |
20200028666 | Goldin et al. | Jan 2020 | A1 |
20200050575 | Mishra | Feb 2020 | A1 |
20200127752 | Tai et al. | Apr 2020 | A1 |
20200285265 | Ranganathan | Sep 2020 | A1 |
20210157355 | Sarda et al. | May 2021 | A1 |
20210297083 | Nishikawa | Sep 2021 | A1 |
20210328758 | Sarda | Oct 2021 | A1 |
Number | Date | Country |
---|---|---|
102291233 | Dec 2011 | CN |
103684727 | Mar 2014 | CN |
104378193 | Feb 2015 | CN |
107294634 | Oct 2017 | CN |
2015003364 | Jan 2015 | WO |
Entry |
---|
NXP Semiconductors, AN-12149, Implementing an IEEE 1588 V2 on i.MX RT Using PTPd, FreeRTOS, and IwIP TCP/IP stack, Sep. 2018 (Year 2018) 28 pages. |
Broadcom Corp., “Ethernet Time Synchronization Providing Native Timing Within the Network,” White Paper, Oct. 2008, 36 pages. |
Eidson, J., “IEEE-1588 Standard for a Precision Clock Synchronization Protocol for Networked Measurement and Control Systems,” Agilent Technologies, 2005, 94 pages. |
Gallant, D., “Practical Implementation of a IEEE 1588 Based Synchronization Distribution System,” Silicon Laboratories, WSTS Jun. 19, 2018, 15 pages. |
International Telecommunication Union, G.8273/Y.1368 (2018)—Amendment 1, Framework of phase and time clocks, ITU-T, Mar. 2020 (Year 2020) 38 pages. |
Renesas, “Synchronization Management Unit,” 8A34002 Datasheet, Renesas Electronics Corporation, Sep. 8, 2020, 107 pages. |
Renesas, 82P33831, Synchronization Management Unit for IEEE 1588 and 10G/40G/100G Synchronous Ethernet, Jul. 10, 2018 (Year 2018) 75 pages. |
Renesas, AN-1033, “Delay Variation Measurement and Compensation”, Aplication Note, Feb. 8, 2019 (Year: 2019) 13 pages. |
Renesas, AN-950, “82P338XX/9XX Usage of a SYNC Input for Clock Alignment”, Application Note, Nov. 10, 2016 (Year: 2016) 13 pages. |
Silicon Labs, “UG103.05: IoT Endpoint Security Fundamentals,” silabs.com, Rev. 1.2, downloaded Oct. 22, 2020, 12 pages. |
Stanton, K., 802.1AS Tutorial, Intel Corporation, Nov. 13, 2008, 42 pages. |
Number | Date | Country | |
---|---|---|---|
20230095364 A1 | Mar 2023 | US |
Number | Date | Country | |
---|---|---|---|
63347788 | Jun 2022 | US | |
63250708 | Sep 2021 | US |