| View previous topic :: View next topic |
| Author |
Message |
isa-d

Joined: 16 Aug 2006 Posts: 2984 Location: Italy
|
Posted: Sat Jan 26, 2019 3:15 pm Post subject: |
|
|
... and interesting it shows Processor: 80386DX at 103 MHz  |
|
| Back to top |
|
 |
vmr_

Joined: 01 Sep 2018 Posts: 530 Location: Ireland
|
Posted: Sat Jan 26, 2019 3:19 pm Post subject: |
|
|
| isa-d wrote: | ... and interesting it shows Processor: 80386DX at 103 MHz  |
Yup, noted it reported as a 386 for Nexgen P90 CPU on VLB motherboard as well - I have to check it with IDON tool enabled again. |
|
| Back to top |
|
 |
ph4nt0m

Joined: 01 Jan 2018 Posts: 812 Location: Europe
|
Posted: Wed Jan 30, 2019 4:32 am Post subject: |
|
|
| isa-d wrote: | ... and interesting it shows Processor: 80386DX at 103 MHz  |
Nx586 doesn't support CPUID. No TSC either. It can still be identified and clock speed calculated properly by looping a predefined set of instructions timed through an Intel 8254 compatible counter. I have written such code ages ago. It's very accurate, usually within +/- 0.5% |
|
| Back to top |
|
 |
mtx500

Joined: 21 Nov 2003 Posts: 117 Location: Nuremberg, Germany
|
Posted: Wed Jan 30, 2019 2:18 pm Post subject: |
|
|
| ph4nt0m wrote: | | Nx586 doesn't support CPUID. |
Not exactly true. The CPUID instruction is emulated with newer Hypercode versions. Only Hypercode versions 033s and 033v do not emulate this instructions, all others do.
BUT: The EFLAG.ID bit (Identification Flag, bit 21) cannot be toggled! To quote Intel manual: "The ability of a program to set and clear the ID flag indicates that the processor supports the CPUID instruction."
They could have emulated this flag also - they do it with the EFLAG.AC bit (for detecting a 486 class CPU) already. And at least in the PCI BIOS, there is still some room for more Hypercode, so space constraint is not the cause.
Some identification routines just call CPUID and catch a possible undefined opcode exception, others first try to toggle EFLAG.ID and only if that succeeds use CPUID. Depending on these two strategies, results vary. Some of those who use CPUID unconditionally even claim the Nx586 to be a Pentium, because the Pentium was the first CPU that introduced CPUID. Only later was CPUID also introduced in 486 class CPUs (also by Intel).
| ph4nt0m wrote: | | No TSC either. |
Now that's true. As this is a hardware feature, it can't be emulated easily. |
|
| Back to top |
|
 |
ph4nt0m

Joined: 01 Jan 2018 Posts: 812 Location: Europe
|
Posted: Wed Jan 30, 2019 2:56 pm Post subject: |
|
|
| This is a valid point, though those open source CPU identification utilities that I'm aware of don't bother to call CPUID if EFLAGS bit 21 cannot be toggled. Is there a way of detecting Nx586 from other non-CPUID capable CPUs which doesn't involve an opcode exception? |
|
| Back to top |
|
 |
mtx500

Joined: 21 Nov 2003 Posts: 117 Location: Nuremberg, Germany
|
|
| Back to top |
|
 |
|