Wie wird die Meldung "Nicht unterstützte CPU installiert" angezeigt?

55

Ich habe eine nicht unterstützte CPU in meinem Rechner eingesteckt und ich erhalte diese Störung während meines PC bootet: Unsupported CPU installed. Meine Frage ist nicht, wie man es behebt, sondern:

Wie wird diese Fehlermeldung angezeigt, wenn die CPU nicht verwendet wird? Kann das BIOS ohne CPU arbeiten?

David
quelle
13
Offensichtlich ist die CPU gut genug, um die CPU-Prüfroutine auszuführen und Text auf dem Bildschirm anzuzeigen, aber nicht gut genug, um ein tatsächliches Betriebssystem auf Ihrer Hardware zu starten.
Dmitry Grigoryev
22
@DmitryGrigoryev "Offensichtlich ist die CPU [...] nicht gut genug, um ein tatsächliches Betriebssystem auf Ihrer Hardware zu booten." Nicht unbedingt so offensichtlich. Was ist, wenn ich FreeDOS booten möchte? Was hat das BIOS zu sagen, was ich auf dem PC starte? Es gibt einen Grund, warum ein MBR-Bootloader auch heute noch im Real-Modus ausgeführt wird.
ein Lebenslauf am
7
@ MichaelKjörling Ich nehme an, der BIOS-Hersteller hat entschieden, dass es wichtiger ist, TPM zu unterstützen und sicherzustellen, dass Windows-Benutzer zufrieden sind, als FreeDOS starten zu lassen.
Dmitry Grigoryev
3
@ MichaelKjörling: Das BIOS enthält möglicherweise Mikrocode-Patches, die nicht angewendet werden können. Es gibt keine Möglichkeit, die Verwendbarkeit der CPU zu diesem Zeitpunkt vorherzusagen.
MSalters
2
Welche CPU ist installiert und auf welchem ​​Motherboard? Haben Sie zum Beispiel irgendwie einen Coffee Lake- Prozessor auf einer Z270- oder Z170-Platine installiert? (Diese Kombination wird nicht funktionieren, da Coffee Lake und sein Z370-Chipsatz inkompatible Änderungen an der Sockelbelegung vorgenommen haben, obwohl derselbe physische LGA1151-Sockel verwendet wurde.)
bwDraco

Antworten:

50

Nein, das BIOS kann ohne die CPU nicht funktionieren.

Das allererste, was Ihr Computer beim Einschalten tut, ist zu überprüfen, ob die Verbindungen zwischen der CPU und dem RAM gut sind. Dies ist eine einfache elektrische Überprüfung, ob alle Busleitungsausgänge mit den richtigen Eingängen verbunden sind. Wenn diese einfache Prüfung nicht bestanden wird, erhalten Sie einen Signaltoncode (oder möglicherweise eine LED-Anzeige auf einigen Motherboards). Für diese Überprüfung ist keine CPU erforderlich. Wenn jedoch keine CPU vorhanden ist, erhalten Sie möglicherweise nicht einmal Signaltoncodes, da selbst dies einige Verarbeitungsschritte erfordert (abhängig von der Hauptplatine).

Sobald diese Dinge ausgecheckt sind, beginnt die CPU mit der Ausführung des im BIOS-ROM enthaltenen Programms, das einige zusätzliche Prüfungen auf höherer Ebene durchführt (z. B. ob Speicher-Timings funktionieren, ob zusätzliche Firmware für Onboard-Geräte korrekt geladen werden kann usw.). Dieses ROM - Programm ist in x86 - Assembler geschrieben und nicht erfordert die CPU ihn auszuführen.

Was in Ihrem Fall passiert ist, ist, dass die CPU elektrisch mit dem Motherboard kompatibel ist und funktioniert, aber es fehlt eine Unterstützung für Low-Level-Funktionen, von denen das Motherboard abhängt. Möglicherweise haben Sie eine CPU verwendet, die eine höhere TDP (die mehr Wärme erzeugt) als das Motherboard verarbeiten kann, über mehr Kerne verfügt, als das BIOS initialisieren kann, oder möglicherweise einen vom BIOS eingestellten Energiezustand nicht unterstützt. Sie haben nicht erwähnt, welche CPU / Motherboard-Kombination Sie verwenden.

In jedem Fall bietet die CPU dem BIOS jedoch genügend Unterstützung, um die in ihrem ROM gespeicherten Programme ausführen zu können (einschließlich des Verschiebens von Bytes in den und aus dem Videospeicher). Weiter geht es nicht.

Wahrscheinlich werden nur die Familien- und Schritt-IDs des Prozessors mit einer internen Liste der unterstützten CPU-Typen verglichen. In vielen Fällen kann dies mit einem BIOS-Upgrade gepatcht werden. Sie müssen jedoch zuerst eine unterstützte CPU einsetzen, um sie zu flashen.

Wes Sayeed
quelle
21
Ich denke, wichtige Teile dieser Antwort sind falsch. Das BIOS kann nicht ohne CPU betrieben werden, da es das allererste Programm ist, das die CPU ausführt . Es kann nichts alleine machen. ( Ohne eine CPU treten keine Signaltoncodes auf , BTW; es können Signaltoncodes ohne RAM ausgegeben werden, da nur mit Registern vorsichtige Init-Vorgänge durchgeführt werden). Die Meldung ist wahrscheinlich darauf zurückzuführen, dass Funktionen von der CPU erwartet werden, die nicht bereitgestellt werden. Aufgrund der x86-Technologie kann die Meldung jedoch ausreichend initialisiert werden, um sie auszudrucken.
DarkDust
21
Ein Motherboard - Hersteller könnte ein einfaches analoges System , das 5 Sekunden nach dem Start piept, es sei denn , aktiv eingeschaltet ausgeschaltet vom BIOS. Es handelt sich also technisch gesehen nicht um eine BIOS-Funktion, sondern eher um eine fehlende BIOS-Funktion.
MSalters
5
Dies ist auch nach der Bearbeitung nicht korrekt: Dies ist eine einfache elektrische Überprüfung, ob alle Busleitungsausgänge mit den richtigen Eingängen verbunden sind. Wenn diese einfache Prüfung nicht bestanden wird, erhalten Sie einen Signaltoncode (oder möglicherweise eine LED-Anzeige auf einigen Motherboards). Für diese Überprüfung ist keine CPU erforderlich. Es ist auch nicht das BIOS, das die Ausführung eines Programms im ROM startet. Die CPU führt dies aus, und dieses Programm ist das BIOS. Tut mir leid, aber Ihrer Antwort nach scheint das BIOS eine Hardware zu sein, die teilweise unabhängig von der CPU ist, obwohl das BIOS "nur" ein Programm im ROM (oder Flash) ist.
DarkDust
5
@TobySpeight: Nicht magisch. Nur noch eine CPU. Es ist ein EC, ein Embedded-Controller, ähnlich wie alle Laptops. In einem Laptop werden Akkuladung und Statusanzeigen verwaltet. Auf einem Desktop können BIOS-Updates verwaltet werden. Manchmal verwalten sie auch die Energieeinstellungen des Boards und Dinge wie USB-Ladeanschlüsse.
Zan Lynx
4
@WesSayeed: Sind Sie sicher, dass dies der Fall ist? Aufgrund der AFAIK gibt es keinen "Buscheck", da ein reiner elektrischer Drahtcheck sehr teure Modifikationen an DRAM-Chips erfordern und wenig Mehrwert bieten würde. Sobald die CPU mit Strom versorgt wird, beginnt sie mit dem Lesen und Ausführen von Anweisungen aus dem BIOS-ROM, die die SPD und Einstellungen der einzelnen DIMMs aus dem CMOS-RAM lesen und versuchen, den DRAM-Controller zu initialisieren. Anschließend wird der DRAM (POST) schnell getestet und anschließend alle anderen relevanten Peripheriegeräte initialisiert. Siehe dieses Video: youtube.com/watch?v=xc08SN6Dhz4
mic_e
11

Dies liegt wahrscheinlich daran, dass die nicht unterstützten Funktionen aus dem geschützten Modus stammen. Zum Zeitpunkt der Anzeige dieser Meldung wurde sie jedoch noch nicht eingegeben und befindet sich noch im 8086-Modus. Es funktioniert also nicht OHNE CPU, das BIOS ist nur ein Programm, es kann nicht ohne CPU funktionieren. Es ist nur so, dass es erkannt hat, dass es einen bestimmten Punkt in der Hinrichtung nicht überschreiten kann und angehalten hat, bevor es diesen Ort erreicht hat.

Ich werde erklären: Die ersten DOS-PCs verfügten nicht über den komplizierten Ausführungsmodus, der für korrektes Multitasking und die Verwendung durch mehrere Benutzer erforderlich war. Als Intel es in seine CPUs einführte, wollten sie die Kompatibilität mit älteren CPUs bewahren. Deshalb haben sie diese Modi eingeführt: Sie starten zuerst eine 8086-CPU, führen einige Tests und Initialisierungen durch und wechseln erst dann in den geschützten Modus.

Camion
quelle
3
Es fehlen wahrscheinlich keine Befehlssatzerweiterungen, die das Problem sind. Es ist eher so etwas wie eine CPU, die für das BIOS zu neu ist (z. B. eine IvyBridge in einem Sandybridge-Mobo ohne ein aktualisiertes BIOS), sodass es nicht weiß, wie es seine Steuerungseinstellungen richtig programmiert. (z. B. die CPU-Energieverwaltungs-Konfigurationsregister, die die Leistungsschwellen für Turbo, das DRAM-Timing des Speichercontrollers oder was auch immer festlegen. Wenn die CPU zu neu ist, kann es neue Aufgaben des BIOS geben, aber dies ist nicht der Fall weiß nicht, auch die Grafikhardware ist bei neuen CPUs anders
Peter Cordes
8

"Nicht unterstützte CPU" sagt Ihnen nicht, dass die CPU nicht funktionsfähig ist. Dies bedeutet wahrscheinlich, dass die Firmware auf dem Motherboard (BIOS oder UEFI) einen Code auf der CPU ausgeführt hat, der festgestellt hat, dass die CPU mit einigen bestimmten Funktionen, auf die sich das Motherboard im normalen Betrieb stützt, nicht kompatibel ist. Oder einfach, dass das Motherboard nicht mit dieser CPU getestet wurde und der Hersteller es nicht riskieren möchte.

Dies bedeutet jedoch nicht, dass die CPU beim Booten keine Anweisungen ausführen kann. Beispielsweise verfügen alle modernen x86-CPUs über einen CPUID-Befehl, mit dem festgestellt werden kann, ob verschiedene Prozessorfunktionen verfügbar sind. Der Startcode könnte diese Anweisung ausführen und eine Fehlermeldung anzeigen, wenn erforderliche Funktionen nicht verfügbar sind.

Artelius
quelle
... und wenn Artelius "moderne x86-CPUs" schreibt, bezieht sich das, wenn wir dem einleitenden Absatz von Wikipedia zu diesem Thema vertrauen können , auf etwas Neueres als die Pentium- oder 80486SL-CPUs von 1993, was ungefähr richtig klingt. Beachten Sie, dass sich die CPUID anscheinend (ich habe die Dokumentation von Intel nicht überprüft) auf das EAX-Register stützt, das 1985 mit dem 80386 eingeführt wurde ...
ein Lebenslauf vom
-10

Das BIOS verfügt über eine Checkliste (POST), mit der alle Teile des Computers initialisiert werden. Wenn sie die Prüfungen nicht bestehen, erhalten Sie einen Fehler wie den Ihren. Ein Teil des POST-Befehlssatzes besteht darin, der Komponente einen Interrupt zuzuweisen. Wenn alle Komponenten ordnungsgemäß Interrupts haben, wird das Betriebssystem geladen und die Interrupts werden an das Betriebssystem weitergeleitet, damit das Betriebssystem mit den Komponenten interagieren kann. Dies ist eine vereinfachte Version dessen, was der Kürze halber geschieht. Hier ist eine detailliertere Liste der Ereignisse: Startdetails

Das BIOS hat die anfängliche Kontrolle über die Geräte, so dass es bei Bedarf Fehler überprüfen und anzeigen kann. Viele der Fehler, die ich gesehen habe, sind Pieptöne oder blinkende LEDs , die auf ihre Bedeutung überprüft werden müssen. Normalerweise wird der Fehler nicht wie in Ihrem Fall auf dem Monitor angezeigt (was ist, wenn die Grafikkarte das Problem ist). Das BIOS kann nur die grundlegendste Initialisierungssequenz ausführen und in einigen Fällen nur die grundlegendsten Fehlercodes weiterleiten. Das BIOS hat bereits die Interrupts für die Arbeitskomponenten wie oben angegeben, so dass die CPU nichts verarbeiten muss, um ein Signal über das Motherboard zu senden, das einen Signalton oder ein Blinklicht erzeugt, oder in Ihrem Fall die Grafikkarte, um ein Signal anzuzeigen Botschaft.

Musselman
quelle
4
Das ist falsch. Das BIOS kann etwas so Komplexes wie das Anzeigen von Informationen auf dem Bildschirm nicht ausführen, ohne dass einige rudimentäre Verarbeitungsfunktionen der CPU ordnungsgemäß funktionieren.
Wes Sayeed
6
Sie scheinen den Eindruck zu haben, dass Interrupts zur Steuerung der Hardware verwendet werden. Sie sind nicht. Außerdem werden Interrupts sehr häufig über die CPU ausgeführt. Wenn die CPU also keinen Code ausführen könnte, kann sie keinen Interrupt ausführen (was kaum mehr als eine leicht verherrlichte indirekte Sprunganweisung ist), und dies wäre sicherlich nicht möglich um einen der Interrupt-Vektoren einzurichten. Es ist unwahrscheinlich, dass das BIOS die Speicheraktualisierung selbst einrichten kann. Daher ist es unwahrscheinlich, dass der Speicher, in dem Interrupt-Vektoren gespeichert sind (in x86 die niedrigsten 1 KB des Adressraums), überhaupt verwendet werden kann.
ein Lebenslauf am
6
Bei dieser Antwort gibt es ein grundlegenderes Problem: Das BIOS ist einfach Code, der auf der CPU ausgeführt wird. Es ist nicht von der CPU getrennt und kann nicht eigenständig agieren.
Duskwuff