Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 1 Nov 1995 01:08:04 -0800 (PST)
From:      "Rodney W. Grimes" <rgrimes@GndRsh.aac.dev.com>
To:        bde@zeta.org.au (Bruce Evans)
Cc:        gibbs@freefall.freebsd.org, wollman@lcs.mit.edu, current@FreeBSD.org, wollman@FreeBSD.org
Subject:   Re: Time problems
Message-ID:  <199511010908.BAA09757@GndRsh.aac.dev.com>
In-Reply-To: <199511010723.SAA20983@godzilla.zeta.org.au> from "Bruce Evans" at Nov 1, 95 06:23:37 pm

next in thread | previous in thread | raw e-mail | index | archive | help
...
> I confused precision and accuracy a bit in my previous mail.  It isn't
> true that the Pentium clock gives more precision in the current
> implementation.  If both clocks have _no_ drift but large inaccuracy,
> then the precision is proportional by the the inverse of the factor
> used to convert from a cycle count to a time.  For the 8254 clock,
> the factor is 11932 and for the Pentium clock it is 90.  Thus the
> Pentium clock is about 132 times less precise than the 8254 clock
> unless someone made a point of making the Pentium clock frequency
> an integral number of MHz.

And there in lies a part of the problem, the clock frequency of the
Pentium CPU is controlled by either a crystal or a clock synth chip
wich is running at some frequency X.  Instead of using X the code
is using X / 1E6 loosing 6 digits of precision in the process :-(.

I have hooked clock synth chips to high precission (12 to 15) digit
frequency counters and believe me there are significant digits in
that 1E6 area that is being truncated.  It is also the cause of
bogus dmesg crap like:
CPU: 99-MHz Pentium 735\\90 or 815\\100 (Pentium-class CPU)

That is wrong, this is a 9985304553 Hz clocked Pentium 815\100 
(At 25 degrees C, 1 Atmosphere, it drifts with temperature a bit,
and I am sure if I swapped power supplies it would shift some :-))

I would suggest that the intgral MHz be changed to Integral HZ, it
will allow very fine resolution corrections, and the chip type
selection code to be updated so that it correctly rounds per the
following table when selecting the Icomp index value (and my table
adds the seriously missing other Pentium chips):

Integral MHZ	iComp
59-61		510
65-67		567
74-76		610		*
89-91		735
99-101		815
119-121		1000		*
132-134		1110		*

* I know at my last look these are missing from the iComp detection
code.  IMHO the whole idea of trying to print the iComp and/or model
should be trashed, as there is nothing preventing me from running an
A80502-133 SK106 (official Intel Part number) at anything from 10 to
1110 iComps, it's still an A80502-133!!!!  The 1110\133 designation
is marketing crap, meaningless to just about every one:

CPU: Intel Pentium Processor clocked at 99.85 Mhz (Pentium class CPU)

makes a lot more since to me!  Also note the current messeage is not
properly marking Pentium as a trademark, and wrongly using Pentium as
a noun :-(.

-- 
Rod Grimes                                      rgrimes@gndrsh.aac.dev.com
Accurate Automation Company                 Reliable computers for FreeBSD



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199511010908.BAA09757>