Technical Field
Embodiments of the invention relate generally to time synchronization of networked components. Particular embodiments relate to time synchronization of CT scanner subsystems and computer equipment.
Discussion of Art
CT scanners are used in medicine both for diagnosis and for guidance of interventions. In a CT scanner, an X-ray source and a detector (such as an array of scintillation crystals with associated photomultipliers or photodiodes) are positioned opposite each other on a gantry, which rotates around a target such as a patient. The X-ray source is activated to emit X-rays, some of which pass through the target and others are reflected or absorbed by the target. X-rays that pass through the target to the detector generate signals.
The signals at the detector vary temporally due to stochastic fluctuations in absorption and reflection of the X-rays, and also vary spatially as the source and detector rotate around the stationary target, which thereby presents different absorption and reflection characteristics at each angular position of the gantry. The variations of the detector signals, during one or more rotations of the gantry, can be mathematically correlated or “computed” in a central processing unit, which generates correlation data suitable for producing a cross-sectional image representation of different types of tissue or other material within the target.
Computer processors are known for implementing software, e.g., the algorithms necessary for operation of a computed tomography (CT) scanner components to emit and detect X-rays and to correlate detections with gantry positions and with source position relative to the target. Computer processors implement software instructions by switching electronic logic gates to manipulate binary HIGH or LOW signals (“bits”). Computer processors can be implemented in RISC, ASIC, FPGA, or other architectures.
Accuracy of correlation, and, consequently, image quality, depend to a great extent upon accurate logging of the X-ray source and detector positions relative to the target. Typically, these positions are calculated based on elapsed time from a zero-time reference position, and based on measurements of gantry angular velocity derived from, e.g., a time integral of gantry motor current, voltage, or shaft speed. Alternatively, positions may be directly measured from a bar code or the like marked on a surface of the gantry. In any case, each detector signal and each position reading typically is tagged with the local time at the detector or position sensor, and for enhanced quality, the X-ray source power level also may be continuously or periodically measured and tagged with the local time at the source. Thus, timekeeping is a critical aspect of CT scanner design.
In complex systems like CT scanners, multiple processors are networked together. For example, a CT scanner may include an X-ray source processor, an X-ray detector processor, a position sensor processor, and a gantry control board processor, all of these being configured for communication with each other via a network. Typically, networked processors communicate with each other by sending data packets. For coordinated action, networked processors attempt to maintain synchrony so that each received data packet is implemented or passed on in proper sequence. Each processor has its own clock (comprising a time counter driven by an oscillator, e.g., a bistable), and synchrony can be maintained by periodically transmitting and receiving a time signal, from a designated “master” clock to the “slave” clocks of the other processors. The component clocks periodically adjust their time counters in response to the time signals received from the master clock. Between time signals, the component clocks increment their time counters based on the pulses produced by their respective oscillators.
The master clock/time signal paradigm is often employed because it is data-efficient and has low network overhead. Typical periodicities for master clock time signals range from about 1 MHz to about 200 MHz and each processor switches its logic gates anywhere from about 1000 times to about 5 times between receipt of each time signal from the master clock. As a result, a large quantity of process data can be generated and transmitted between time signals, using the same signal path used for the time signals (“path sharing”). By contrast, continuous synchronous network time protocols (continuous time signal transmissions) are not favored because such protocols require a dedicated physical layer that cannot also be used for transmitting process data.
A potential issue with the time signal paradigm is that, during the numerous switching operations between time signals while the component clocks increment their respective time counters, asynchrony or clock “drift” can emerge between the master clock and each component clock and also among the component clocks. The clock drift phenomenon arises because each component clock oscillator has its own characteristic frequency that infinitesimally varies from the frequencies of the other clock oscillators. Over an extended sequence of switching operations, the different frequencies of the different oscillators can result in significant divergence of the component clock time counters.
Another potential issue with the time signal paradigm is that a unique network transit time or signal delay exists between the master clock and each component clock. Accordingly, each component clock receives the time signal at a different time relative to the master clock. This time difference can change according to environmental factors that can vary the transmission delay. Some possibly relevant environmental factors include, for example, thermal strain, changes in impedance, electromagnetic field interactions. The ordinary expected result of this variation in transit time is that each component clock time “jitters” around the master clock time.
For example, image quality of a CT scanner can be limited by “clock drift” or “jitter” between the processors associated with the detector, the source, the position sensor, and the gantry control board. In particular, variance of detector local time away from source or position sensor local time, or from gantry control board local time, can result in erroneous position readings, which limit the achievable quality of the correlation data. Depending on the error threshold designed into the particular CT scanner, small clock drifts can degrade image quality without establishing an error condition.
IEEE 1588 improves on the time signal paradigm by implementing a Best Master Clock (BMC) algorithm that is run by all of the processors, in order to select which processor will run the master clock. One feature of the BMC algorithm is that the processors cooperatively select a master clock in a manner that is not necessarily determinative from a user standpoint—in other words, the BMC algorithm is not intended to “force” selection of any particular processor as the master clock.
IEEE 1588 addresses an issue of component clock drift due to component clock oscillator frequency differing from master clock oscillator frequency by instituting a reciprocal measure of time signal delay. The reciprocal measure of time signal delay is used by each component clock for adjusting its local time from the time of receiving the master clock pulse, to more closely approximate the simultaneous local time at the master clock. Determining the reciprocal measure of time signal delay, for each component clock, requires repeated reciprocal communication at scheduled intervals between the master clock and the component clocks.