Computer hardware timers: Difference between revisions

From Helpful
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
{{stub}}
{{stub}}


====Hardware====
==Hardware perspective==
The system's '''Real-Time clock''' (RTC)
The system's '''Real-Time clock''' (RTC)
* IO based, therefore fairly expensive setup (not practical for some purposes)
* IO based, therefore fairly expensive setup (not practical for some purposes)
* Rate/resolution: depends on hardware. About 30ms on a 32kHz RTC. Apparently 1 millisecond in the best case.{{verify}}
* Rate/resolution: depends on hardware. Approximately 30ms on a 32kHz crystal, and assume no better than 1 millisecond in the best case.{{verify}}




Line 42: Line 42:




====Programming====
==Programming perspective==


gettimeofday()  
gettimeofday()  

Latest revision as of 16:45, 11 September 2023

This article/section is a stub — some half-sorted notes, not necessarily checked, not necessarily correct. Feel free to ignore, or tell me about it.

Hardware perspective

The system's Real-Time clock (RTC)

  • IO based, therefore fairly expensive setup (not practical for some purposes)
  • Rate/resolution: depends on hardware. Approximately 30ms on a 32kHz crystal, and assume no better than 1 millisecond in the best case.(verify)


8254 PIT (Programmable Interval Timer)

  • Resolution/rate: configurable, 1 millisecond (at best) (verify)
  • Controls resolution of system timer (verify)


APIC timer

  • Resolution: Varies (microsecond scale?(verify))
  • Pauses under some conditions, so not directly useful for time-telling


ACPI Power Management Timer (PM, PMT)

  • Accurate (if hardware not buggy)


Time Stamp Counter: ticks since reset

  • rate/resolution depends on system (nanosecond scale?(verify))
  • handy high-resolution counter on i386 processors since the Pentium (there are similar features on other architectures)
  • ...but may be out of sync between cores on various processors - except those with constant-rate TSC (reported by the CPU)
  • ...may vary with CPU voltage/frequency control, so not ideal for timekeeping
  • readout with RDTSC opcode
  • http://en.wikipedia.org/wiki/RDTSC


HPET


Programming perspective

gettimeofday()

  • resolution depends on hardware as well as operating system. May be as precise as a few microseconds, and as rough as perhaps 10 milliseconds. (verify)
  • Often depends on PIT rate? (verify)


clock_gettime() / clock_gettime()

  • Resolution/rate: Varies, but better than gettimeofday (based on TSC)