In article <3F5F9027.5D3C66DE@perftech.com>, murf@perftech.com says…
Well, I’ve spent many years as both an electronic engineer and a
software engineer, and I can guarantee you that you’re dreaming if you
think you’re going to find 10 ppm oscillators in PC’s. And of course
dividing a higher frequency down to a lower one has absolutely no effect
on accuracy - that’s the kind of reasoning you hear on the commercials
for digital watches. The last time I tried to get a PC manufacturer to
guarantee a clock tolerance, ANY tolerance, I was bluntly informed that
that simply isn’t part of anybody’s specification for what constitutes a
personal computer; no matter how far off from 1.1931816 MHz it may be,
it’s not a reason to complain to the manufacturer.
Being off frequency in no way suggests that the oscillator isn’t being
controlled by the crystal; it simply means (in most cases) that the
crystal was never ground to the correct frequency in the first place.
Controlling a computer’s clock frequency is not considered a high
precision application, and high quality, temperature compensated
oscillators, trimmed to the exact frequency, would be a waste of money.
Likewise, to assume that such hardware was commonly available and design
software to make the most of it would be a waste of effort on the part
of operating system suppliers.
I think a fundamental problem in this whole thread is a mixing of the
terms accuracy and stability. Even the cheap crystals used in PC’s may
have reasonable stability (depending on how you define “reasonable”),
but their accuracy isn’t likely to be anywhere near 10 ppm; in other
words, they may continue to oscillate for long periods of time at the
same wrong frequency. The good folks at QSSL have provided us with
software that is more than adequate for the hardware it is designed to
support. If you really need more accuracy, you should be looking for
specialized hardware and supplying your own software for it.
Murf
OK, I’ve also spent couple of years working as electronic and software engineer simultaneously. I’m
sorry, I don’t know what commercial you are speaking about, my education and experience isn’t based
on commercials. In addition to heartbeats for digital electronics I also dealt with oscillators and
frequency synthesizers for receivers. Thank you for bringing clearness into this thread, I mean
terms accuracy and stability. Dividing a higher frequency down to a lower one has absolutely no
effect on stability, i.e. relative error
err = (Freal - Fnom)/Fnom
will be the same. But it affects absolute error (accuracy).
Let’s take a look at oscillator with a quartz that was not ground accurately to nominal frequency.
Let’s say we can trust only to 3 digits after point, i.e. f=14.318 MHz. Now, after dividing, it’s
obviously, we can trust to 4 digits after point, i.e. we have f=1.1931 MHz.
Returning to original subject of the thread, even if we have 8254 chip clocked with f=1.1931000 MHz,
the error isn’t more than 1 us in 0.01 s interval.
Speaking about x86 hardware, being in Ukraine, I measured frequencies on few suspicious NONAME
boards manufactured somewhere in Pacific-Asian region. They provide quite accurate and stable
frequencies. Yesterday I spent some time to measure frequency on my old IBM 300 GL, as you see it is
not special computer, I bought refurbished one in some junk store here, in Toronto. It has perfectly
accurate frequency. Generally speaking, there is no monopoly in x86 field. If you are not satisfied
with some board you can choose another manufacturer.
I never said folks at QSSL did a bad job. If they did a bad job and created a bad OS, I wouldn’t be
here, at QNX newsgroups. But if there is something that can be done to increase accuracy even on
theoreticaly accurate system I don’t see any harm to do so. It won’t give worse result on real
(inaccurate) system. Quite the contrary, returning to the subject of the thread, if you have
absolute accurate system and assigned there are 11933 ticks in 0.01 s, it gives you error 0.992us.
If you have real system with real frequency of 8254 chip, say f=1.19310 MHz, you will get error
1.676us. Chance that inaccuracy of oscillator (a little higher frequency) will compensate error of
chosen constant is not big at all. In real life, thing are going to compose in such a way to give
you a worst case.
Cheers,
Eduard.