Re: 6510 and 8500 differences

From: Richard Atkinson (
Date: 2000-07-30 19:49:30

On Sun, 30 Jul 2000, Nicolas Welte wrote:

> Thanks for all the measurements, Richard! I'm also quite amazed that we
> have a temperature sensor in our CPUs, this is something that just
> became popular with the Pentium III and it's integrated temperature
> diode. We had it for 18 years! (But didn't know about it)

And it applies to every post VIC-20 machine. Bit 5 is the unconnected bit
in the 7501/8501 so with a slight modification of that program it could
work on the plus/4, C16 and 116 too.

> A bit more accurate measurements (cycle exact with the CIA timers,
> connected to a 32bit timer) would be nice, but if there already is an
> overlap between 8500 and 6510 values it doesn't really make sense. I did
> some measurements of that kind already on the two SID types, but soon I
> found one 8580 that wasn't much different from most of the 6581, so I
> kind of stopped looking at more machines. I might have another go and
> study the temperature dependenance, if it also affects the SID effect.
> But then I would also include CPU measurements so I could get both
> values at once.

Is there a timer on either of the CIAs that gets initialised to zero on
powerup and never gets altered by the operating system at all? If so I'll
write a program to log some results and try to fit them to a mathematical
model for the time constant of the discharging port bit. Although there is
overlap over the full range of values from cold to final temperature, the
difference is easily enough, given time since powerup, to construct a
model (or two models) of the warming CPU and decide which process it is.

The 6510 I tested got down to about 20 (MSB) after a long time, whereas
the 8500 was in the 160s. Curiously, the 8502 inside my plastic C128D
reached 24, which strongly suggests to me that the CPUs inside the C128D,
or at least the plastic variety, are actually fabricated in NMOS.

I did some calculations about how the time constant changes with
temperature and time, and I came to the conclusion that it follows an
e^e^-t law. Assuming the temperature rises asymptotically from Tr (room
tempature) to Tn (NMOS final temperature) or Th (HMOS), the equation for
NMOS temperature is:

T(t) = Tn - (Tn-Tr)e^-kt

where k is a constant and t is time since power on. Substitute Th for Tn
in HMOS processors, of course.

Now if the conductance of the semiconductor (depletion mode load
transistors) is proportional to the number of free carriers in the
semiconductor, e^kT/q where k is Boltzmann's constant, T is absolute
temperature and q is the charge on an electron (k/q is constant), then the
resistance is proportional to e^-T. The time constant may be considered to
be proportional to resistance, since the capacitance of the MOS layers is
constant. Substituting the formula for temperature above, the time
constant (and resistance) follows the following equation:

T(t) = a e^(b e^(-ct))

Apologies for the re-use of T for absolute temperature and period, but we
have the physicists to thank for that. The constants can be obtained from
the following observations:

T(0) = a e^b

T(infinity) = a

Thus having obtained the initial (room temperature) time constant and the
final time constant, all other results can be used to give values for c,
the third coefficient, and it can be seen how well the model fits the
observed results.

If there is a CIA timer I can use, I'll write a program to fit the results
of a log file to a curve.

> In any case a machine type detection program must examine this
> functionality, but I already said that a few (probably slightly damaged)
> "C64Cs" fail this test. It also isn't a 100% sign for a 8500. 

Why 'must' a detection routine use $DExx functionality? This relies on
there being no expansion hardware in the I/O space, and I'd like the
routine to work on a fully expanded C64.


Richard Atkinson
Software Engineer
Tenison Technology EDA Ltd

This message was sent through the cbm-hackers mailing list.
To unsubscribe: echo unsubscribe | mail

Archive generated by hypermail 2.1.1.