Patent Publication Number: US-10784976-B2

Title: Nanosecond accuracy of timestamping by leveraging alignment marker and method for producing the same

Description:
TECHNICAL FIELD 
     The present disclosure relates to clock synchronization of networked devices of a communication network. The present disclosure is particularly applicable to the standard for precision clock synchronization protocol for networked measurement and control systems. 
     BACKGROUND 
     Clock synchronization protocols, e.g., Network Time Protocol (NTP) and the Institute of Electrical and Electronics Engineers (IEEE) 1588-2008, are used for a precision clock synchronization of networked measurement and control devices and are commonly integrated in communication networks, such as Ethernet. The accuracy of these mechanisms is very important and highly affects the accuracy of clocking systems. Sub nanosecond accuracy has emerged as a requirement for high performance applications, and is especially applicable to achieve clock synchronization when the number of nodes in the network grows rapidly. 
     Normally, clock synchronization is done by sending 3 or 4 precision time protocol (PTP) messages between a primary device and one or more secondary devices. Based on the 3 or 4 PTP messages, a secondary device can get four timestamps, which the secondary device can then use to calculate the clock offset and link latency between the primary device and itself. However, synchronization between the clocks will be accurate if the link latency is symmetrical. Otherwise, further correction is needed to synchronize the primary and secondary devices. 
     Within a typical implementation of IEEE-1588-2008 integrated in a 100 gigabit (Gb) Ethernet link, timestamps are captured on the interface between a medium access control layer and a physical layer or a higher level and only a medium access control clock can be used to record timestamps. However, typical physical layer implementations introduce timing uncertainty that can result in variable latency of timestamp packets going through the physical layer (for example, gearbox functions, asynchronous first in first out (FIFO) structures, forward error correcting (FEC) syndrome processing logic, alignment marker insertion, etc). Thus, achieving high accuracy timestamping at or below one nanosecond between link partners with typical physical layer implementations is difficult. 
     A need therefore exists for methodology and a resulting apparatus enabling nanosecond or less network clock synchronization accuracy. 
     SUMMARY 
     An aspect of the present disclosure is a method of generating timestamps on both a transmitter (TX) path and a receiver (RX) path of an Ethernet system with nanosecond or less accuracy by leveraging an alignment marker and IEEE 1588-2008 2-step protocol operation. 
     Another aspect of the present disclosure is an apparatus that generates timestamps on both TX and RX paths of an Ethernet system with nanosecond or less accuracy under IEEE 1588-2008 2-step protocol. 
     Additional aspects and other features of the present disclosure will be set forth in the description which follows and in part will be apparent to those having ordinary skill in the art upon examination of the following or may be learned from the practice of the present disclosure. The advantages of the present disclosure may be realized and obtained as particularly pointed out in the appended claims. 
     According to the present disclosure, some technical effects may be achieved in part by a computer-implemented system, including a primary device having a first high accuracy timestamping assist (HATA) unit attached to a first physical layer; a first time stamping unit; a first clock control; a first medium access control layer connected to the first time stamping unit and the first physical layer via a Medium Independent Interface (MII). A secondary device includes a second HATA unit attached to a second physical layer; a second timestamping unit; a second clock control; a second medium access control layer connected to the second timestamping unit and the second physical layer via the MII. The first and second HATA units are configured to detect a departure time, an arrival time, or a combination thereof of a first alignment marker over TX serializer and RX deserializer interfaces of a data transmission between the primary device and the secondary device. 
     According to the present disclosure, some technical effects may be achieved in part by an apparatus including: a processor; and a memory including computer program code for one or more programs, the memory and the computer program code configured to, with the processor, cause the apparatus to perform the following: detect a departure time, an arrival time, or a combination thereof of a first alignment marker over TX serializer and RX deserializer interfaces of a data transmission between a primary device and a secondary device; measure a time delay from the first alignment marker to a start of a next timestamp packet over MIIs; and map the time delay determined over the MII to the departure time, the arrival time, or a combination thereof detected over the TX serializer and RX deserializer interface to synchronize timestamping between the primary device and the secondary device. 
     Another aspect of the present disclosure is a method including: detecting a departure time, an arrival time, or a combination thereof of a first alignment marker over the TX serializer and RX deserializer interfaces of a data transmission between a primary device and a secondary device. A time delay is measured from the first alignment marker at the TX serializer and RX deserializer interfaces to a start of a next timestamp packet over an MII of the data transmission between the primary device and the secondary device. The time delay determined over the MII is mapped to the departure time, the arrival time, or a combination thereof detected over the TX serializer and RX deserializer interfaces to synchronize timestamping between the primary device and the secondary device. 
     A further aspect of the present disclosure is a non-transitory computer-readable storage medium encoded with instructions that, when loaded into a computer, establish a machine performing a computer-implemented method. The computer-implemented method includes detecting a departure time, an arrival time, or a combination thereof of a first alignment marker over TX serializer and RX deserializer interfaces of a data transmission between a primary device and a secondary device. A time delay is measured from the first alignment marker at the TX serializer and RX deserializer interfaces to a start of a next timestamp packet over an MII of the data transmission between the primary device and the secondary device. The time delay determined over the MII is mapped to the departure time, the arrival time, or a combination thereof detected over the TX serializer and RX deserializer interfaces to synchronize timestamping between the primary device and the secondary device. 
     Additional aspects and technical effects of the present disclosure will become readily apparent to those skilled in the art from the following detailed description wherein embodiments of the present disclosure are described simply by way of illustration of the best mode contemplated to carry out the present disclosure. As will be realized, the present disclosure is capable of other and different embodiments, and its several details are capable of modifications in various obvious respects, all without departing from the present disclosure. Accordingly, the drawings and description are to be regarded as illustrative in nature, and not as restrictive. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The present disclosure is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawing and in which like reference numerals refer to similar elements and in which: 
         FIG. 1  schematically illustrates a block diagram of a timestamping unit with a HATA unit in an Ethernet system, in accordance with an exemplary embodiment; 
         FIG. 2  schematically illustrates a block diagram of timestamping within an Ethernet link using an MII interface; 
         FIGS. 3C and 3D  provide a more detailed block diagram illustrations of TX and RX timestamping with HATA units, in accordance with an exemplary embodiment; 
         FIGS. 3A and 3B  illustrate TX and RX timestamping flows related to  FIGS. 3C and 3D , respectively, with HATA units, in accordance with an exemplary embodiment; and 
         FIG. 4  schematically illustrates a compensation method for sample delay of the departure and arrival times of the Start Frame Delimiter (SFD) of a PTP message at the TX serializer and RX deserializer interfaces, respectively, in accordance with an exemplary embodiment. 
     
    
    
     DETAILED DESCRIPTION 
     In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of exemplary embodiments. It should be apparent, however, that exemplary embodiments may be practiced without these specific details or with an equivalent arrangement. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring exemplary embodiments. In addition, unless otherwise indicated, all numbers expressing quantities, ratios, and numerical properties of ingredients, reaction conditions, and so forth used in the specification and claims are to be understood as being modified in all instances by the term “about.” 
     The present disclosure addresses and solves the current problems of an increasing number of network nodes running applications that require nanosecond or less timestamp accuracy, non-symmetrical link latency between primary and secondary devices, and uncertainty factors impacting the latency of timestamps going through a physical layer of an Ethernet system attendant upon achieving nanosecond or less communication network clock synchronization. The problems are solved, inter alia, by determining exact time of a next timestamp packet, such as a start frame delimiter (SFD) of a precision timing protocol (PTP) message over TX serializer and RX deserializer interfaces of an Ethernet network based on the detected departure and/or arrival times of an alignment marker (AM) and the time delay between the next timestamp packet and the alignment marker under IEEE 1588-2008 2-step protocol. 
     Methodology in accordance with embodiments of the present disclosure includes detecting a departure time, an arrival time, or a combination thereof of a first alignment marker over TX serializer and RX deserializer interfaces of a data transmission between a primary device and a secondary device; measuring a time delay from the first alignment marker to a start of a next timestamp packet over an MII of the data transmission between the primary device and the secondary device; and mapping the time delay determined over the MII to the departure time, the arrival time, or a combination thereof detected over the TX serializer and RX deserializer interfaces to synchronize timestamping between the primary device and the secondary device. 
     Still other aspects, features, and technical effects will be readily apparent to those skilled in this art from the following detailed description, wherein preferred embodiments are shown and described, simply by way of illustration of the best mode contemplated. The disclosure is capable of other and different embodiments, and its several details are capable of modifications in various obvious respects. Accordingly, the drawings and description are to be regarded as illustrative in nature, and not as restrictive. 
       FIG. 1  schematically illustrates a block diagram of an Ethernet system containing a timestamping unit (TSU) with a HATA unit, in accordance with an exemplary embodiment. Referring to  FIG. 1 , an Ethernet system  100  includes a primary device  101  with a HATA unit  103  attached to a physical layer (PHY)  105 , a TSU  107 , an MII  113 , and an IEEE 1588 clock control  109 . The primary device  101  also includes a medium access control (MAC) layer  111  that is connected to the TSU  107  and the physical layer  105  via an MII  113 . Further, the primary device  101  includes a network layer (IP)  115 , a transport layer (UDP)  117 , and an application layer (PTP)  119 , which is connected to the TSU  107  and the IEEE 1588 clock control  109 . 
     The Ethernet system  100  also includes a secondary device  121  that similarly includes a HATA unit  123  attached (as close as possible) to a physical layer (PHY)  125 , a TSU  127 , an MII  113 , and an IEEE 1588 clock control  129 . The secondary device  121 , like the primary device  101 , also includes a MAC layer  131  that is connected to the TSU  127  and the PHY  125  via the MII  113 . Further, the secondary device  121 , like the primary device  101 , includes a network layer (IP)  133 , a transport layer (UDP)  135 , and an application layer (PTP)  137 , which is connected to the TSU  127  and the IEEE 1588 clock control  129 . Specifically, to achieve high accuracy for the detected absolute time value of timestamp packets between the primary device  101  and the secondary device  121 , the HATA units  103  and  123  should be located as close as possible to the physical layers  105  and  125 , respectfully. 
     In one instance, the main function of the HATA  103  and  123  is to continuously detect arrival and/or departure times of an AM as the basis for determining the exact time of an SFD for the next timestamp packet, and then report the captured timestamps to the TSU  107  and  127 . An alignment marker is a specific pattern used for data synchronization of multi-lane links, and is transmitted periodically on each lane of the PHY  105 . Each lane of transmitting PHY  105  composing the link carries a unique alignment marker. As an example, an Ethernet 100GBASE-R4 link is composed of 4 lanes, and each lane transmits 5 64-bit distinct patterns periodically. Receiving PHY  125  uses these distinct patterns to align the data of each received lane, as well as to determine the proper ordering of data received on multi-lane links. An AM is detectable on or inside TX serializer and RX deserializer interfaces and as such, it is possible to capture the AM departure and arrival times on those interfaces with the present methodology. 
       FIG. 2  illustrates an example data stream appearing on an Ethernet 100GBASE-KR4 link, which includes four serializer/deserializer lanes of 25 Gbit/s each. As shown in  FIG. 2 , since an alignment mark pattern  201  can be detected on or inside TX serializer and RX deserializer interfaces, exact departure and arrival times of AM 0   203  can be obtained. The SFD pattern  205  can be distributed to multiple physical lanes  207   a  through  207   d  on TX serializer and RX deserializer interfaces. When the time delay from the previous AM 0   203  to the SFD of timestamp packet  209  is determined, AM 0   203  can be used as a reference to obtain the departure and arrival times of SFD  209 . Measuring the time delay from the position of the SFD to the position of the previous AM 0  is achieved on MII  113  ( FIG. 1 ), even when the SFD  205  is scrambled and distributed to multiple serializer/deserializer physical lanes  207   a  through  207   d  by PHY  105 . The present methodology is used to measure this time delay on MII  113  and map this time delay to the TX serializer and RX deserializer interfaces. 
       FIG. 3C  schematically illustrates in greater detail functions appearing in PHY  105  and HATA  103 , and particularly illustrates connections to and from HATA  103 , in accordance with an exemplary embodiment. The connections and processing blocks associated with HATA  103  support the flowchart illustration of  FIG. 3A . 
       FIG. 3D  schematically illustrates in greater detail functions appearing in PHY  125  and HATA  123 , and particularly illustrates connections to and from HATA  123 , in accordance with an exemplary embodiment. The connections and processing blocks associated with HATA  123  support the flowchart illustration of  FIG. 3B . 
       FIG. 3A  schematically illustrates a flowchart using HATA for multi-lane TX timestamping, in accordance with an exemplary embodiment. At periodic time intervals specified by the Ethernet standard, PHY  105  inserts an AM into the data stream and asserts the AM insertion indicator AM_INS_IND (Step  301 ). A counter counts (Step  301 ) the number of 64-bit blocks transmitted across the MII interface after AM_INS_IND is asserted. Valid 64-bit blocks that are transmitted across the MII between MAC Layer  111  and PHY  105  are counted. In addition, another counter (TX_BLK_REM_INS) counts (Step  301 ) whenever an Idle block is removed from (add 1) or inserted into (subtract 1) the data stream to compensate for clock drift and/or AM insertion. Next, when AM 0  is transmitted on the serializer interface, the AM 0  departure time (sys_time_tx(AM 0 )) is obtained (Step  303 ). Concurrently, when the SFD of the next timestamp packet is transmitted on the MII interface, both the 64-bit block counter and Idle block removal/insertion counter stops (Step  305 ). In particular, upon detection of the SFD of the next timestamp packet on the MII, counting is stopped to subsequently generate a TX SFD count (TX_SFD_CNT). 
     Since the AM is inserted within PHY  105 , and not on the MII interface where the SFD is detected, the time delay between AM insertion and subsequent detection of the SFD is measured relative to the MII interface. Within PHY  105 , several pipeline stages between the MII interface at which the SFD is input and the point at which AM insertion occurs may be implemented. Therefore information regarding the latency of data flow from the MII interface to the AM insertion point is available based on the implementation of PHY  105 . LAT_AM_INS is a fixed latency (from MII data input to where AM insertion occurs). Both (TX_BLK_REM_INS) and LAT_AM_INS are used as adjustments to the number of 64-bit blocks counted (Step  307 ). Thus, the time delay between the AM insertion point and when the SFD of the PTP message (TX_SFD_CNT) is computed from the 64-bit block count with adjustments for the latency before AM insertion (LAT_AM_INS) and any Idle block removal and/or insertion (TX_BLK_REM_INS). The sys_time_tx(AM 0 ) and TX_SFD_CNT are used to obtain the SFD departure time (SFD_DEP_T) (Step  309 ). In other words, SFD_DEP_T is generated based on the sys_time_tx(AM 0 ) and TX_SFD_CNT. As illustrated above, TX_SFD_CNT provides a cycle-accurate departure time which accounts for all processing steps performed within PHY  105  except for sampling uncertainty when serializing the data stream. To compensate for such sampling uncertainty, an additional half period of time of a system clock (SYS_CLK) is subtracted from the captured (sys_time_tx(AM 0 )) prior to generating the SFD_DEP_T ( FIG. 4 ). The SFD_DEP_T can then be reported to TSU  107  logic to support additional timestamp processing functions. 
     In the example of  FIG. 3A , a HATA unit identifies AM patterns, detects the AM 0  and uses it as a transmission time reference, generates and adjusts the TX_SFD_CNT, generates the SFD_DEP_T, and reports the SFD_DEP_T to the TSU  107 , with the HATA unit located as close as possible to PHY  105 . 
       FIG. 3B  schematically illustrates a flowchart using HATA to achieve high accuracy timestamping of the received bit stream for a multi-lane link, in accordance with an exemplary embodiment. The receive path of  FIG. 3B  is similar to the transmit path of  FIG. 3A . A time delay from detecting AM 0  on the deserializer interface to detecting SFD on the MII is determined (Steps  311  through  317 ). When the AM 0  is detected on the deserializer interface, the AM 0  arrival time (sys_time_rx(AM 0 )) is captured (Step  311 ). AM 0  on the deserializer interface is detected on any lane into PHY  125  to identify the sys_time_rx (AM 0 ). 
     After the AM removal indicator (AM_REM_IND) is asserted by PHY  125 , valid 64-bit blocks are counted on the MII (Step  313 ) between PHY  125  and MAC Layer  131 . In addition, another counter (RX_BLK_REM_INS) counts (Step  313 ) whenever an Idle block is removed from (add 1) or inserted into (subtract 1) the data stream to compensate for clock drift and/or AM removal. Once the SFD of the next timestamp packet is discovered, 64-bit block and Idle removal/insertion counting is stopped (Step  315 ). 
     Latency after AM removal (LAT_AM_REM) is a fixed latency from the point at which AM removal occurs to where MII data is output. Both (RX_BLK_REM_INS) and LAT_AM_REM are used for counting adjustment (Step  317 ). To obtain the arrival time of the SFD for the next timestamp packet (SFD_ARR_T), both the receiver path (RX) SFD count (RX_SFD_CNT) and (sys_time_rx(AM 0 )) are used (Step  319 ). In addition, to compensate for sampling uncertainty, a half period of time of a system clock (SYS_CLK) is subtracted from the captured (sys_time_rx(AM 0 )) prior to generating SFD_ARR_T ( FIG. 4 ). The SFD_ARR_T can then be reported to the timestamp unit (TSU  127 ) logic. In some implementations of PHY  125 , clock compensation (CC) logic is not included, thereby eliminating the need for RX_BLK_REM_INS and TX_BLK_REM_INS as adjustments to the 64-bit block counts. 
     In the example of  FIG. 3B , a HATA unit identifies AM patterns, detects the AM 0  and uses it as a reception time reference, generates and adjusts the RX_SFD_CNT, generates the SFD_ARR_T, and reports the SFD_RR_T to the TSU  127 , with the HATA unit located as close as possible to PHY  125 . 
       FIG. 4  schematically illustrates compensation for sampling delay of the departure and arrival times of a SFD of a PTP message at the serializer and deserializer interfaces of PHY  105  and PHY  125 , respectively, in accordance with an exemplary embodiment. As demonstrated above with respect to  FIGS. 3A and 3B , based on the method employed to compute the departure time and arrival time of the SFD of the timestamp packet at the TX serializer and RX deserializer interfaces, respectively, most of the uncertainty factors in generating timestamps can be eliminated, including all uncertainties in the MAC Layers ( 111  and  131 ), and PCS and FEC functions contained in PHY  105  and PHY  125 . The only uncertainty that impacts accuracy is clock domain crossing when capturing the AM departure and arrival times to and from the serializer and deserializer function of PHY  105  and PHY  125 , respectively. Since AM detection is done at the serializer and deserializer interfaces which operate in the serializer/deserializer interface clock domain  401 , if a system clock (SYS_CLK) is used to capture AM 0  departure and/or arrival times, it will introduce at most one SYS_CLK cycle of delay  403 , as shown in  FIG. 4 . 
     For example, if a 1 GHz system clock is used to sample the time at which the AM is detected at the serial/deserializer interface within PHY  105  and PHY  125 , a half period time of SYS_CLK  403  is subtracted at both the transmit and receive sides of the link to compensate for sampling uncertainty Since sampling uncertainty applies to both PHY  105  and PHY  125 , the total worst case sampling uncertainty will be the sum of the uncertainties in PHY  105  and PHY  125  (e,g, assuming ideal 1 GHz clocks used in PHY  105  and PHY  125 , the sum of the uncertainties is (0.5+0.5)=1 nanosecond). 
     As shown by the above discussion, functions relating to the timestamping operation are controlled by a control computer. Additional processors maybe used by those skilled in the art to process data and control devices are required by the computer architecture design. Although special purpose devices may be used, such devices also may be implemented using one or more hardware platforms intended to represent a general class of data processing device commonly used to run “server” programming so as to implement the functions discussed above, albeit with an appropriate network connection for data communication. 
     As known in the data processing and communications arts, a general-purpose computer typically comprises a central processor or other processing device, an internal communication bus, various types of memory or storage media (RAM, ROM, EEPROM, cache memory, disk drives etc.) for code and data storage, and one or more network interface cards or ports for communication purposes. The software functionalities involve programming; including executable code as well as associated stored data, e.g. files used for the workflow templates for a number of production jobs as well as the various files for tracking data accumulated during one or more productions runs. The software code is executable by the general-purpose computer that functions as the control processor and/or the associated terminal device. In operation, the code is stored within the general-purpose computer platform. At other times, however, the software may be stored at other locations and/or transported for loading into the appropriate general-purpose computer system. Execution of such code by a processor of the computer platform enables the platform to implement the methodology for timestamping, in essentially the manner performed in the implementations discussed and illustrated herein. 
     For example, a control computer may be a PC based implementation of a central control processing system, or may be implemented on a platform configured as a central or host computer or server. Such a system typically contains a central processing unit (CPU), memories and an interconnect bus. The CPU may contain a single microprocessor (e.g. a Pentium microprocessor), or it may contain a plurality of microprocessors for configuring the CPU as a multi-processor system. The memories include a main memory, such as a dynamic random access memory (DRAM) and cache, as well as a read only memory, such as a PROM, an EPROM, a FLASH-EPROM or the like. The system memories also include one or more mass storage devices such as various disk drives, tape drives, etc. 
     In operation, the main memory stores at least portions of instructions for execution by the CPU and data for processing in accord with the executed instructions, for example, as uploaded from mass storage. The mass storage may include one or more magnetic disk or tape drives or optical disk drives, for storing data and instructions for use by CPU. For example, at least one mass storage system in the form of a disk drive or tape drive, stores the operating system and various application software as well as data. The mass storage within the computer system may also include one or more drives for various portable media, such as a floppy disk, a compact disc read only memory (CD-ROM), or an integrated circuit non-volatile memory adapter (i.e. PC-MCIA adapter) to input and output data and code to and from the computer system. 
     The system also includes one or more input/output interfaces for communications as an interface for data communications with one or more other processing systems. Although not shown, one or more such interfaces may enable communications via a network, e.g., to enable sending and receiving instructions electronically. The physical communication links may be optical, wired, or wireless. 
     The computer system may further include appropriate input/output ports for interconnection with a display and a keyboard serving as the respective user interface for the processor/controller. For example, a printer control computer may include a graphics subsystem to drive the output display. The output display, for example, may include a cathode ray tube (CRT) display, or a liquid crystal display (LCD) or other type of display device. The input control devices for such an implementation of the system would include the keyboard for inputting alphanumeric and other key information. The input control devices for the system may further include a cursor control device (not shown), such as a mouse, a touchpad, a trackball, stylus, or cursor direction keys. The links of the peripherals to the system may be wired connections or use wireless communications. 
     The computer system runs a variety of applications programs and stores data, enabling one or more interactions via the user interface provided, and/or over a network to implement the desired processing, in this case timestamping. The components contained in the computer system are those typically found in general purpose computer systems. Although summarized in the discussion above mainly as a PC type implementation, those skilled in the art will recognize that the class of applicable computer systems also encompasses systems used as host computers, servers, workstations, network terminals, and the like. In fact, these components are intended to represent a broad category of such computer components that are well known in the art. The present examples are not limited to any one network or computing infrastructure model—i.e., peer-to-peer, client server, distributed, etc. 
     Hence aspects of the techniques discussed herein encompass hardware and programmed equipment for controlling the relevant document processing as well as software programming, for controlling the relevant functions. A software or program product, which may be referred to as a “program article of manufacture” may take the form of code or executable instructions for causing a computer or other programmable equipment to perform the relevant data processing steps regarding the timestamping, where the code or instructions are carried by or otherwise embodied in a medium readable by a computer or other machine. Instructions or code for implementing such operations may be in the form of computer instruction in any form (e.g., source code, object code, interpreted code, etc.) stored in or carried by any readable medium. 
     Such a program article or product therefore takes the form of executable code and/or associated data that is carried on or embodied in a type of machine readable medium. “Storage” type media include any or all of the memory of the computers, processors or the like, or associated modules thereof, such as various semiconductor memories, tape drives, disk drives and the like, which may provide non-transitory storage at any time for the software programming. All or portions of the software may at times be communicated through the Internet or various other telecommunication networks. Such communications, for example, may enable loading of the relevant software from one computer or processor into another, for example, from a management server or host computer into the image processor and comparator. Thus, another type of media that may bear the software elements includes optical, electrical and electromagnetic waves, such as used across physical interfaces between local devices, through wired and optical landline networks and over various air-links. The physical elements that carry such waves, such as wired or wireless links, optical links or the like, also may be considered as media bearing the software. As used herein, unless restricted to non-transitory, tangible “storage” media, terms such as computer or machine “readable medium” refer to any medium that participates in providing instructions to a processor for execution. 
     Hence, a machine readable medium may take many forms, including but not limited to, a tangible storage medium, a carrier wave medium or physical transmission medium. Non-volatile storage media include, for example, optical or magnetic disks, such as any of the storage devices in any computer(s) or the like. Volatile storage media include dynamic memory, such as main memory of such a computer platform. Tangible transmission media include coaxial cables; copper wire and fiber optics, including the wires that comprise a bus within a computer system. Carrier-wave transmission media can take the form of electric or electromagnetic signals, or acoustic or light waves such as those generated during radio frequency (RF) and infrared (IR) data communications. Common forms of computer-readable media therefore include for example: a floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, DVD or DVD-ROM, any other optical medium, punch cards paper tape, any other physical storage medium with patterns of holes, a RAM, a PROM and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave transporting data or instructions, cables or links transporting such a carrier wave, or any other medium from which a computer can read programming code and/or data. Many of these forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to a processor for execution. 
     The embodiments of the present disclosure can achieve several technical effects, including nanosecond or less accuracy of timestamping. The present disclosure enjoys industrial applicability in any of various industrial applications, e.g., networking, communication network, telecom equipment, microprocessors, smart phones, mobile phones, cellular handsets, set-top boxes, DVD recorders and players, automotive navigation, printers and peripherals, gaming systems, and digital cameras. The present disclosure therefore enjoys industrial applicability in any of various types of networked devices and communication networks utilizing clock synchronization. 
     In the preceding description, the present disclosure is described with reference to specifically exemplary embodiments thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the present disclosure, as set forth in the claims. The specification and drawings are, accordingly, to be regarded as illustrative and not as restrictive. It is understood that the present disclosure is capable of using various other combinations and embodiments and is capable of any changes or modifications within the scope of the inventive concept as expressed herein.