How is the message "Unsupported CPU installed" displayed?
I have an unsupported CPU inserted in my machine and I get this error while my PC is booting: Unsupported CPU installed
. My question isn't how to fix it but rather:
How is this error message displayed if the CPU is not in use? Can BIOS work without a CPU?
No, the BIOS cannot work without the CPU.
The very first thing your computer does when you power it on is checks that the connections between the CPU and RAM are good. This is a simple electrical check that all the bus line outputs are connected to the correct inputs. If this simple check doesn't pass, you get a beep code (or possibly an LED display on some motherboards). This check does not require the CPU, however without the CPU present, you may not even get beep codes, as even that requires some measure of processing (depends on the motherboard).
Once these things check out, however, then the CPU begins execution of the program contained within BIOS ROM that performs some additional higher-level checks (such as whether memory timings work, whether additional firmware for onboard devices can be loaded correctly, etc). This ROM program is written in x86 assembly language and does require the CPU to execute it.
What happened in your case is that the CPU is electrically compatible with the motherboard and does work, but lacks some low-level feature support that the motherboard depends on. Perhaps you used a CPU that has a higher TDP (generates more heat) than the motherboard can handle, has more cores than the BIOS knows how to initialize, or possibly doesn't support some power state the BIOS is trying to set. You didn't mention what CPU/motherboard combo you're using.
In whatever case, though, the CPU is providing enough support to the BIOS that it can execute the programs stored in its ROM (including moving bytes in and out of video memory). It just can't get further than that.
It's probably just checking the family and stepping IDs from the processor against an internal list of supported CPU types. In many cases, this can be patched with a BIOS upgrade. But you'd need to insert a supported CPU first in order to flash it.
It's probably because the unsupported feature are from protected mode, but at the time it displays this message it didn't enter it yet and is still in 8086 mode. So, it doesn't work WITHOUT a CPU, BIOS is just a program, it can't work without a CPU. It's just that it detected that it couldn't go past a certain point in the execution and stopped before reaching that place.
I'll explain: the first DOS PCs didn't have all those complicated execution mode needed for correct multitasking and multi user usage. When Intel introduced it in its CPUs, they wanted to preserve compatibility with older CPUs. That why they introduced those modes: They first start a 8086 CPU, they do some tests and initialisation, and only then they go to protected mode.
"Unsupported CPU" does not tell you that the CPU is non-functional. It probably means that the firmware on the motherboard (whether BIOS or UEFI) has executed some code on the CPU which has determined that the CPU is incompatible with some particular features the motherboard relies on during normal operation. Or simply that the motherboard has not been tested with this CPU and the manufacturer doesn't want to risk it.
But none of this means the CPU can't execute instructions at boot time. For instance, all modern x86 CPUs have a CPUID instruction which can be used to determine whether various processor features are available. The boot code could execute this instruction and display an error message if required features were not available.