Reply 40 of 43, by mkarcher
red-ray wrote on 2025-05-25, 15:18:Oh, I did not know there is a fan status bit, is it documented how do I read it and if so where please? I wonder if it reports the RPM, where can I get it from?
The official Intel datasheet just says "contact Intel for more information": https://datasheets.chipdb.org/Intel/x86/486/a … ts/29043606.PDF page 60:
wrote:12.6 Fan Protection Mechanism and THermal ERRor Bit
The Pentium OverDrive processor employs an active fan/heatsink unit to assist in cooling the processor. Another integral part of this cooling solution is the ability for software to poll the status of the fan to determine if the fan has fallen to a speed that is unacceptable to cool the processor. Should the fan fall into a speed range that is too slow, a control register will record the event. (For more information, please contact Intel.
There also is a reference to a fan monitoring tool by Intel in the Pentium Overdrive application note. https://ardent-tool.com/CPU/docs/Intel/Pentiu … /241428-003.pdf pdf page 587 might possibly refer to the 486 PODP, but possibly later Socket 5 PODPs instead. In any case, it wouldn't surprise me if the mechanism on the PODP is as described. While the PODP does not support the Machine Check Exception, the Thermal Error bit in the Machine Check Type MSR is explicitly stated to not be related to generation of Machine Check Exceptions. So you might just try whether bit 5 in MSR 1 (the Machine Check Type MSR) also works on the P24T.
red-ray wrote on 2025-05-25, 15:18:It's not just the PODs I was considering, I was thinking about doing this for all P5 CPUs.
Indeed, measuring the difference between 50*3 and 60*2.5 on a P54C at 150MHz might be interesting. In this case, the algorithm needs to cope with 32-byte cache lines and the dual execution unit architecture. I might consider doing a separate P5mul for that. As the P5 architecture is still in-order, this approach may be usable. This approach is likely harder to implement on out-of-order architectures like the K6 or 6x86 though.