I'm having trouble getting clarification on the meaning of the HPET accuracy statements which appear not only in the original HPET 1.0a specification of October 2004, but in subsequent chipset datasheets, such as though for ICH7, ICH8, and ICH9 (links to all of these pasted below in this post).
The accuracy statements from those 4 example specifications is essentially the same (minor differences), but regardless of any subtle differences, it's the main intent that is unclear to me.
Do the stated potential inaccuracies (quoted below) relate to concrete inaccuracies of the HPET with respect to the chipset in question, or are they general guidelines for the expected possible inaccuracy in order for a board developer to meet some defacto industry standard? And further, do the inaccuracies relate to clock generator inaccuracies, or do they relate topotentialinaccuracies with any one sampling of the HPET tick count given HPET-specific characteristics, where such a per-sampling inaccuracy averages out over time (meaning over time, the HPET is as accurate as the clock generator)?
My guess is that the inaccuracies absolutely do not apply to the clock generator because the stated inaccuracies are unacceptable for the clock generator, which I'm guessing would have to be 20ppm or better to meet defacto industry standards or expectations. Because of this, I'm further guessing that the inaccuracies discussedwith regard to the HPET are solely discussing possible tick count inaccuracies on any one sampling of the HPET, where those inaccuracies actually average out over time, such that the accuracy over time is that of theclock generator, not of these per-sampling possible inaccuracies.
Can anyone offer any clarity on the meaning of these HPET accuracy statements?
Here is the quoted accuracy statement from ICH9 section 5.17.1, andfurther below are hyperlinks to various datasheets withsimilar accuracy statements:
5.17.1 Timer Accuracy
1. The timers are accurate over any 1 ms period to within 0.05% of the time specified
in the timer resolution fields.
2. Within any 100 microsecond period, the timer reports a time that is up to two ticks
too early or too late. Each tick is less than or equal to 100 ns, so this represents an
error of less than 0.2%.
3. The timer is monotonic. It does not return the same value on two consecutive
reads (unless the counter has rolled over and reached the same value).
The main counter is clocked by the 14.31818 MHz clock, synchronized into the 66.666
MHz domain. This results in a non-uniform duty cycle on the synchronized clock, but
does have the correct average period. The accuracy of the main counter is as accurate
as the 14.3818 MHz clock.
Documents having similar accuracy statements:
Original Oct 2004 HPET Spect: http://www.intel.com/hardwaredesign/hpets
I arrived at my earlier stated"guess" conclusions because the accuracy statements have this near the end:
"... The accuracy of the main counter is as accurate as the 14.3818 MHz clock."
I'm not an electronics expert, but such a statement seems to make it clear that the previous 3 accuracy statement points are not referring to the clock generator, but to some HPET-anomaly with respect to reading tick counts, which is really a per-sampling potential for inaccuracy, and not something that affects long-term periodic interrupt accuracy.And for that per-sample inaccuracy, it would be something that would (obviously) average out over time, resulting in an accuracy over time as good as the clock generator. That seems to be the only reasonable answer here but I have to guess and infer to arrive at my guesses.