Come viene visualizzato il messaggio "CPU non supportata installata"?


55

Ho una CPU non supportata inserita nella mia macchina e ottengo questo errore durante il mio PC si sta avviando: Unsupported CPU installed. La mia domanda non è come risolverlo ma piuttosto:

Come viene visualizzato questo messaggio di errore se la CPU non è in uso? Il BIOS può funzionare senza CPU?


13
Ovviamente, la CPU è abbastanza buona per eseguire la routine di controllo della CPU e visualizzare del testo sullo schermo, ma non abbastanza per avviare un sistema operativo reale sul tuo hardware.
Dmitry Grigoryev il

22
@DmitryGrigoryev "Ovviamente, la CPU non è [...] abbastanza buona per avviare un sistema operativo reale sul tuo hardware." Non necessariamente così ovvio. Cosa succede se voglio avviare, ad esempio, FreeDOS? Qual è il BIOS da dire in quello che avvio sul PC? C'è un motivo per cui qualsiasi boot loader MBR, anche oggi, inizialmente viene eseguito in modalità reale.
un CVn il

7
@ MichaelKjörling Suppongo che il produttore del BIOS abbia deciso che supportare TPM e assicurarsi che gli utenti Windows siano felici è più importante che lasciarti avviare FreeDOS.
Dmitry Grigoryev il

3
@ MichaelKjörling: il BIOS può contenere patch di microcodici che non si applicano. Non c'è modo di prevedere l'usabilità della CPU in quel momento.
Salterio del

2
Quale CPU è installata e in quale scheda madre? Ad esempio, hai in qualche modo installato un processore Coffee Lake su una scheda Z270 o Z170? (Questa combinazione non funzionerà perché Coffee Lake e il suo chipset Z370 hanno apportato modifiche incompatibili alla piedinatura del socket, nonostante l'utilizzo dello stesso socket LGA1151 fisico.)
bwDraco

Risposte:


50

No, il BIOS non può funzionare senza CPU.

La prima cosa che fa il tuo computer quando lo accendi è controllare che le connessioni tra CPU e RAM siano buone. Questo è un semplice controllo elettrico che tutte le uscite della linea bus sono collegate agli ingressi corretti. Se questo semplice controllo non viene superato, viene visualizzato un codice bip (o eventualmente un display a LED su alcune schede madri). Questo controllo non richiede la CPU, tuttavia senza la CPU presente, è possibile che non si ottengano nemmeno dei segnali acustici, poiché anche questo richiede una certa misura di elaborazione (dipende dalla scheda madre).

Una volta verificate queste cose, tuttavia, la CPU inizia l'esecuzione del programma contenuto nella ROM del BIOS che esegue alcuni controlli di livello superiore (come ad esempio se i tempi di memoria funzionano, se è possibile caricare correttamente firmware aggiuntivo per i dispositivi di bordo, ecc.). Questo programma ROM è scritto in linguaggio assembly x86 e non richiede la CPU per eseguirlo.

Quello che è successo nel tuo caso è che la CPU è elettricamente compatibile con la scheda madre e funziona, ma manca un supporto di funzionalità di basso livello da cui dipende la scheda madre. Forse hai usato una CPU che ha un TDP più alto (genera più calore) di quello che la scheda madre è in grado di gestire, ha più core di quanti il ​​BIOS sappia inizializzare o forse non supporta uno stato di alimentazione che il BIOS sta tentando di impostare. Non hai menzionato quale combo CPU / scheda madre stai usando.

In ogni caso, tuttavia, la CPU fornisce un supporto sufficiente al BIOS da poter eseguire i programmi memorizzati nella sua ROM (incluso lo spostamento dei byte dentro e fuori dalla memoria video). Non può andare oltre.

Probabilmente sta solo controllando la famiglia e facendo passare gli ID dal processore a un elenco interno di tipi di CPU supportati. In molti casi, questo può essere corretto con un aggiornamento del BIOS. Ma prima devi inserire una CPU supportata per farla lampeggiare.


21
Penso che parti importanti di questa risposta siano sbagliate. Il BIOS non può funzionare senza una CPU in quanto è il primo programma che la CPU sta eseguendo . Non può fare nulla da solo. ( Senza una CPU non si verificano codici bip , BTW; può fare bip senza RAM a causa di un'attenta inizializzazione solo con i registri). Il messaggio è probabilmente perché si aspetta funzioni dalla CPU che non fornisce, ma a causa della sua sufficiente inizializzazione x86 può essere fatto per stampare quel messaggio.
DarkDust,

21
Un produttore di schede madri potrebbe creare un semplice sistema analogico che emetterà un segnale acustico 5 secondi dopo l'avvio, a meno che non sia disattivato attivamente dal BIOS. Quindi tecnicamente non sarebbe una funzione BIOS, ma più una mancanza di BIOS.
Salterio del

5
Anche dopo la modifica, questo non è corretto: si tratta di un semplice controllo elettrico che verifica che tutte le uscite della linea bus siano collegate agli ingressi corretti. Se questo semplice controllo non viene superato, viene visualizzato un codice bip (o eventualmente un display a LED su alcune schede madri). Questo controllo non richiede la CPU ... Inoltre, non è il BIOS che avvia l'esecuzione di un programma nella ROM, la CPU lo fa e questo programma è il BIOS. Ci scusiamo per il nitpicking, ma dalla tua risposta sembra che il BIOS sia un hardware parzialmente indipendente dalla CPU quando in realtà il BIOS è "solo" un programma in ROM (o flash).
DarkDust,

5
@TobySpeight: non magico. Solo un'altra CPU. È un EC, un controller integrato molto simile a quello dei laptop. In un laptop gestisce la carica della batteria e le spie di stato. In un desktop può gestire gli aggiornamenti del BIOS. Inoltre a volte gestiscono le impostazioni di alimentazione della scheda e cose come le porte di ricarica USB.
Zan Lynx,

4
@WesSayeed: sei sicuro che sia così? Poiché AFAIK non esiste un "controllo del bus", dal momento che un controllo del filo elettrico puro richiederebbe modifiche molto costose ai chip DRAM e fornirebbe un piccolo valore extra. Non appena la CPU è alimentata, inizia a leggere ed eseguire le istruzioni dalla ROM del BIOS, che leggerà ogni SPD di DIMM e le impostazioni dalla RAM CMOS e tenterà di inizializzare il controller DRAM. Quindi testerà rapidamente la DRAM (POST), seguita dall'inizializzazione di tutte le altre periferiche rilevanti. Guarda questo video: youtube.com/watch?v=xc08SN6Dhz4
mic_e

11

Probabilmente è perché la funzione non supportata proviene dalla modalità protetta, ma al momento visualizza questo messaggio non lo ha ancora inserito ed è ancora in modalità 8086. Quindi, non funziona SENZA una CPU, il BIOS è solo un programma, non può funzionare senza una CPU. È solo che ha rilevato che non poteva superare un certo punto dell'esecuzione e si è fermato prima di raggiungere quel posto.

Spiegherò: i primi PC DOS non avevano tutte quelle complicate modalità di esecuzione necessarie per un corretto multitasking e uso multiutente. Quando Intel lo introdusse nelle sue CPU, volevano preservare la compatibilità con le CPU più vecchie. Ecco perché hanno introdotto queste modalità: prima avviano una CPU 8086, fanno alcuni test e inizializzazione e solo allora passano alla modalità protetta.


3
Probabilmente non mancano le estensioni del set di istruzioni che sono il problema. È più probabile qualcosa di simile a una CPU troppo nuova per il BIOS (ad esempio un IvyBridge in un mobo Sandybridge senza un BIOS aggiornato), quindi non sa come programmare correttamente le sue impostazioni di controllo. (ad es. i registri di configurazione della gestione dell'alimentazione della CPU che impostano le sue soglie di potenza per Turbo, roba di sincronizzazione DRAM del controller di memoria o qualsiasi altra cosa. E se la CPU è troppo nuova, potrebbero esserci nuove cose che il BIOS dovrebbe fare ma che non lo so Anche l'hardware grafico è diverso nelle nuove CPU
Peter Cordes,

8

"CPU non supportata" non indica che la CPU non funziona. Probabilmente significa che il firmware sulla scheda madre (BIOS o UEFI) ha eseguito un codice sulla CPU che ha determinato che la CPU è incompatibile con alcune caratteristiche particolari su cui si basa la scheda madre durante il normale funzionamento. O semplicemente che la scheda madre non è stata testata con questa CPU e il produttore non vuole rischiare.

Ma nulla di tutto ciò significa che la CPU non può eseguire le istruzioni all'avvio. Ad esempio, tutte le moderne CPU x86 hanno un'istruzione CPUID che può essere utilizzata per determinare se sono disponibili varie funzioni del processore. Il codice di avvio potrebbe eseguire questa istruzione e visualizzare un messaggio di errore se le funzionalità richieste non fossero disponibili.


... e quando Artelius scrive "moderne CPU x86", se possiamo fidarci del paragrafo introduttivo di Wikipedia sull'argomento, questo si riferisce a qualcosa di più recente delle CPU Pentium o 80486SL del 1993, che suona bene. Si noti che apparentemente (non ho verificato la documentazione di Intel per verificare) CPUID si basa sul registro EAX, che è stato introdotto con l'80386 nel 1985 ...
un CVn

-10

Il BIOS ha una checklist (POST) che passa attraverso l'inizializzazione di tutte le parti del computer. Quando non superano i controlli, viene visualizzato un errore come il tuo. Parte del set di istruzioni POST è assegnare un interrupt al componente. Se tutti i componenti hanno correttamente degli interrupt, il sistema operativo viene caricato e gli interrupt vengono passati al sistema operativo in modo che il sistema operativo possa interagire con i componenti. Questa è una versione semplificata di ciò che sta accadendo per brevità. Ecco un elenco più dettagliato di ciò che sta accadendo: dettagli di avvio

Il BIOS ha il controllo iniziale dei dispositivi, quindi può controllare e visualizzare gli errori se necessario. Molti degli errori che ho visto sono segnali acustici o LED lampeggianti che devono essere cercati per il loro significato. Di solito non mostra l'errore sul monitor come nel tuo caso (perché cosa succede se la scheda video è il problema). Il BIOS ha la capacità di eseguire solo la sequenza di inizializzazione più elementare e in alcuni casi inoltra solo il più elementare dei codici di errore. Il BIOS ha già gli interrupt per i componenti funzionanti come indicato sopra, quindi non è necessario che la CPU elabori alcunché per inviare un segnale utilizzando la scheda madre per produrre un segnale acustico o una luce lampeggiante o, nel tuo caso, la scheda video per visualizzare un Messaggio.


4
Questo non è corretto Il BIOS non può fare qualcosa di così complesso come la visualizzazione di informazioni sullo schermo senza alcune funzionalità di elaborazione rudimentali della CPU che funzionano correttamente.
Wes Sayeed,

6
Sembra che tu abbia l'impressione che gli interrupt vengano utilizzati per controllare l'hardware. Non sono. Inoltre, gli interrupt vengono fatti molto attraverso la CPU, quindi se la CPU non è in grado di eseguire il codice, non può eseguire un interrupt (che è poco più di un'istruzione di salto indiretto leggermente glorificata) e sicuramente non sarebbe in grado per impostare uno qualsiasi dei vettori di interruzione. È improbabile che il BIOS sia in grado di impostare l'aggiornamento della memoria, anche, quindi è improbabile che la memoria in cui sono conservati i vettori di interrupt (in x86, il più basso 1 KiB dello spazio degli indirizzi) sia utilizzabile.
un CVn il

6
C'è un problema più fondamentale con questa risposta: il BIOS è semplicemente un codice che gira sulla CPU. Non è separato dalla CPU e non può agire da solo.
duskwuff,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.