[time-nuts] Exact Time Mobile Phone Apps
hmurray at megapathdsl.net
Thu Sep 20 02:42:02 EDT 2018
> The timing must be very low level in the OS.
Yes, and it can get a bit complicated.
The desktop or server case is usually straightforward. Modern CPUs have a
cycle count register. You can keep time with that if you know the clock
frequency. There is another register on Intel architectures that counts at a
known frequency. You can use that to calibrate the main clock that drives the
cycle count register.
Most PCs crystals are off far enough to be annoying, so one of the main things
that ntpd does is reach into the kernel via a side door to tell the kernel the
correction for the clock frequency. ntpd calls that drift. It's in log files
and/or stored in a file so it can be used on reboot. ntpd can be good enough
that you can use the drift as a thermometer.
Things get interesting when you want to change the clock frequency to save
power. I think some of the early cycle-counter implementations counted actual
CPU cycles. I think modern chips count at a fixed rate that may not be the
same as the CPU clock frequency.
If you want to save more power, you can turn off the CPU clock. Laptops do
this when you close the lid. Phones do it on a much finer grain. Then you
have to set the clock when you turn the CPU clock back on. I'm not sure of
the details in this area. Most systems have a battery backed clock running
off a 32 KHz crystal. Typically, they can only be read to a granularity of 1
second. And they aren't drift-corrected, ...
These are my opinions. I hate spam.
More information about the time-nuts