Re: i386: Selectable Frequency of the Timer Interrupt

Vojtech Pavlik
2005-07-12T16:11:31Z

On Tue, Jul 12, 2005 at 04:05:16PM +0200, Jan Engelhardt wrote:

> >> > HZ ticks/jiffie 1 second error (ppm)
> >> > ---------------------------------------------------
> >> > 100 11932 1.000015238 15.2
>
> I was not quite able to reproduce these values, probably because I got the
> math wrong. I used:
> $oneSecond = $ticksJiffie * $HZ / 1193182
> which yields 11932*100/1193182 = 1.00001508571198693912, !=1.000015238
> Math corrections welcome.

I used 1.19318[18] MHz periodic as the true clock speed - 1/3rd of the
NTSC color subcarrier frequency.

1193182 Hz is already a rounded value, and as such introduces some error
by the rounding.

It is possible the standard value is 1.1931816[6] MHz periodic, as
Richard B. Johnson corrected me, being 1/12th of 14.31818000 MHz, the
CGA dotclock.

Anyway, both 14.31818 MHz and 14.3181818 MHz crystals are being
manufactured, and thus we'll see both these numbers in the wild.

> Anyway, I've done some graphs. Intersting that the smaller the HZ, the less
> error (seen on a whole, esp. view_1k and view_8k.png) we get. 20Hz seems to
> be the 0.0 case, and 18Hz is not bad either. IIRC, DOS used 18HZ ;)
> http://jengelh.hopto.org/tick/

DOS used 65535 as the divisor (ticks/jiffie), which doesn't give an
integer HZ.

--
Vojtech Pavlik
SuSE Labs, SuSE CR