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 -- Richard Atkinson Software Engineer Tenison Technology EDA Ltd http://www.tenisontech.com/ - This message was sent through the cbm-hackers mailing list. To unsubscribe: echo unsubscribe | mail firstname.lastname@example.org.
Archive generated by hypermail 2.1.1.