Comment le message «Unsupported CPU installed» est-il affiché?

55

J'ai une CPU non prise en charge insérée dans ma machine et je reçois cette erreur alors que mon PC démarre: Unsupported CPU installed. Ma question n'est pas comment résoudre ce problème, mais plutôt:

Comment ce message d'erreur est-il affiché si la CPU n'est pas utilisée? Le BIOS peut-il fonctionner sans processeur?

David
la source
13
De toute évidence, le processeur est assez bon pour exécuter la routine de vérification du processeur et afficher du texte à l'écran, mais pas assez pour démarrer un système d'exploitation réel sur votre matériel.
Dmitry Grigoryev
22
@DmitryGrigoryev "Évidemment, le processeur n'est pas assez bon pour démarrer un système d'exploitation réel sur votre matériel." Pas nécessairement si évident. Et si je veux démarrer, par exemple FreeDOS? Quel est le BIOS pour avoir son mot à dire sur ce que je démarre sur le PC? Il y a une raison pour laquelle tout chargeur de démarrage MBR, même aujourd'hui, s'exécute initialement en mode réel.
un CVn
7
@ MichaelKjörling Je suppose que le fabricant de BIOS a décidé qu'il était plus important de prendre en charge TPM et de s'assurer que les utilisateurs de Windows étaient satisfaits que de vous permettre de démarrer FreeDOS.
Dmitry Grigoryev
3
@ MichaelKjörling: le BIOS peut contenir des correctifs de microcode dont l'application échoue. Il n'y a aucun moyen de prédire la facilité d'utilisation du processeur à ce moment-là.
MSalters
2
Quel processeur est installé et dans quelle carte mère? Par exemple, avez-vous déjà installé un processeur Coffee Lake sur une carte Z270 ou Z170? (Cette combinaison ne fonctionnera pas car Coffee Lake et son chipset Z370 ont apporté des modifications incompatibles au brochage du connecteur, malgré l'utilisation du même connecteur physique LGA1151.)
bwDraco le

Réponses:

50

Non, le BIOS ne peut pas fonctionner sans le processeur.

Lorsque vous allumez votre ordinateur, la première chose à faire est de vérifier que les connexions entre le processeur et la mémoire vive sont bonnes. Ceci est une simple vérification électrique que toutes les sorties de ligne de bus sont connectées aux entrées correctes. Si cette vérification simple ne réussit pas, vous obtenez un code sonore (ou éventuellement un affichage LED sur certaines cartes mères). Cette vérification ne nécessite pas le processeur, mais sans ce dernier, vous pouvez même ne pas recevoir de codes sonores, car même cela nécessite un certain traitement (dépend de la carte mère).

Cependant, une fois ces opérations vérifiées, la CPU commence à exécuter le programme contenu dans la ROM du BIOS qui effectue des vérifications supplémentaires de niveau supérieur (telles que le minutage de la mémoire, le chargement de micrologiciels supplémentaires pour les périphériques intégrés, etc.). Ce programme ROM est écrit en langage assembleur x86 et ne nécessite l'unité centrale de traitement pour l' exécuter.

Ce qui s’est passé dans votre cas, c’est que le processeur est électriquement compatible avec la carte mère et qu’il fonctionne, mais qu’il manque certaines fonctionnalités de bas niveau dont dépend la carte mère. Peut-être avez-vous utilisé un processeur dont le TDP est supérieur (génère plus de chaleur) que la carte mère ne peut en gérer, dont le nombre de cœurs est supérieur à celui que le BIOS sait initialiser ou qui ne prend peut-être pas en charge un certain état d'alimentation que le BIOS tente de définir. Vous n'avez pas mentionné le combo CPU / carte mère que vous utilisez.

Dans tous les cas, le processeur fournit suffisamment de support au BIOS pour qu’il puisse exécuter les programmes stockés dans sa ROM (y compris le déplacement d’octets dans et hors de la mémoire vidéo). Cela ne peut tout simplement pas aller plus loin que cela.

Il suffit probablement de vérifier la famille et les identifiants pas à pas du processeur par rapport à une liste interne des types de CPU pris en charge. Dans de nombreux cas, cela peut être corrigé avec une mise à niveau du BIOS. Mais vous devez d'abord insérer un processeur pris en charge pour pouvoir le flasher.

Wes Sayeed
la source
21
Je pense que des parties importantes de cette réponse sont fausses. Le BIOS ne peut pas fonctionner sans processeur car il s’agit du tout premier programme exécuté par le processeur . Il ne peut rien faire tout seul. ( Sans CPU, aucun code sonore ne se produit , BTW; il peut faire des codes sonores sans RAM grâce à un démarrage minutieux avec les registres uniquement). Le message est probablement dû au fait qu'il attend des fonctionnalités de la CPU qu'il ne fournit pas, mais en raison de son initialisation x86 suffisante, elle peut être effectuée pour imprimer ledit message.
DarkDust
21
Un fabricant de la carte mère pourrait créer un système analogique simple qui émet un bip de 5 secondes après le démarrage, à moins activement mis hors du BIOS. Donc, techniquement, il ne s'agirait pas d'une fonctionnalité du BIOS, mais plutôt d'une fonctionnalité manquant de BIOS.
MSalters
5
Même après la modification, cela n’est pas correct: il s’agit d’une simple vérification électrique du fait que toutes les sorties de la ligne de bus sont connectées aux bonnes entrées. Si cette vérification simple ne réussit pas, vous obtenez un code sonore (ou éventuellement un voyant sur certaines cartes mères). Cette vérification ne nécessite pas le processeur… En outre, ce n'est pas le BIOS qui commence l'exécution d'un programme dans la ROM, c'est le processeur qui le fait et ce programme est le BIOS. Désolé, mais votre réponse semble indiquer que le BIOS est un matériel en partie indépendant du processeur alors qu'en réalité, le BIOS est "uniquement" un programme en ROM (ou en Flash).
DarkDust
5
@TobySpeight: Pas de magie. Encore un autre processeur. C'est un EC, un contrôleur intégré un peu comme les ordinateurs portables. Dans un ordinateur portable, il gère la charge de la batterie et les voyants d'état. Dans un bureau, il peut gérer les mises à jour du BIOS. De plus, ils gèrent parfois les paramètres d'alimentation de la carte et des choses comme les ports de chargement USB.
Zan Lynx
4
@ Weesayeed: Êtes-vous sûr que c'est le cas? Parce que, autant que je sache, il n’existe pas de «contrôle de bus», puisqu'un contrôle de fil électrique pur nécessiterait des modifications très coûteuses des puces DRAM et n’apporterait que peu de valeur supplémentaire. Dès que le processeur est alimenté, il commence à lire et à exécuter les instructions du BIOS ROM, qui lit le SPD et les paramètres de chaque DIMM dans la RAM CMOS et tentent d'initialiser le contrôleur DRAM. Ensuite, il testera rapidement la mémoire DRAM (POST), puis initialisera tous les autres périphériques pertinents. Voir cette vidéo: youtube.com/watch?v=xc08SN6Dhz4
mic_e
11

C'est probablement parce que la fonctionnalité non prise en charge provient du mode protégé, mais au moment où il affiche ce message, il n'y était pas encore entré et il est toujours en mode 8086. Donc, cela ne fonctionne pas SANS CPU, le BIOS n’est qu’un programme, il ne peut pas fonctionner sans CPU. C'est simplement qu'il a détecté qu'il ne pouvait pas dépasser un certain point dans l'exécution et s'est arrêté avant d'atteindre cet endroit.

Je vais expliquer: les premiers PC sous DOS ne disposaient pas de tout ce mode d'exécution compliqué nécessaire à une utilisation multitâche et multi-utilisateur correcte. Lorsque Intel l'a introduit dans ses processeurs, ils ont voulu préserver la compatibilité avec les processeurs plus anciens. C'est pourquoi ils ont introduit ces modes: ils démarrent d'abord un processeur 8086, ils font des tests et une initialisation, puis ils passent en mode protégé.

Camion
la source
3
Ce ne sont probablement pas les extensions du jeu d'instructions qui font problème. Il s'agit plus probablement d'un processeur trop récent pour le BIOS (par exemple, un IvyBridge dans un mobo Sandybridge sans BIOS mis à jour), de sorte qu'il ne sait pas comment programmer correctement ses paramètres de contrôle. (par exemple, les registres de configuration de la gestion de l’énergie du processeur qui définissent ses seuils d’alimentation pour Turbo, le minutage de la DRAM du contrôleur de mémoire, etc.). En outre, le matériel graphique est différent dans les nouveaux processeurs
Peter Cordes
8

"CPU non supportée" ne vous dit pas que le CPU est non fonctionnel. Cela signifie probablement que le microprogramme de la carte mère (qu’il s’agisse du BIOS ou de l’UEFI) a exécuté du code sur le processeur, ce qui a permis de déterminer que celui-ci était incompatible avec certaines caractéristiques particulières sur lesquelles la carte mère se base pendant son fonctionnement normal. Ou tout simplement que la carte mère n'a pas été testée avec ce processeur et que le fabricant ne veut pas prendre le risque.

Mais rien de tout cela ne signifie que le processeur ne peut pas exécuter les instructions au démarrage. Par exemple, tous les processeurs x86 modernes ont une instruction CPUID qui peut être utilisée pour déterminer si diverses fonctionnalités du processeur sont disponibles. Le code de démarrage peut exécuter cette instruction et afficher un message d'erreur si les fonctionnalités requises ne sont pas disponibles.

Artelius
la source
... et quand Artelius écrit "processeurs modernes x86", si l'on peut se fier au paragraphe introductif de Wikipedia sur le sujet, cela fait référence à quelque chose de plus récent que les processeurs Pentium de 1993 ou 80486SL, ce qui semble être juste. Notez qu'apparemment (je n'ai pas vérifié la documentation d'Intel à vérifier), CPUID s'appuie sur le registre EAX, qui avait été introduit avec le 80386 en 1985 ...
un CVn
-10

Le BIOS a une liste de contrôle (POST) qu'il parcourt pour initialiser toutes les parties de l'ordinateur. Quand ils ne passent pas les chèques, vous obtenez une erreur telle que la vôtre. Une partie du jeu d'instructions POST consiste à affecter une interruption au composant. Si tous les composants ont correctement des interruptions, le système d'exploitation est chargé et les interruptions sont transmises au système d'exploitation afin que celui-ci puisse interagir avec les composants. Ceci est une version simplifiée de ce qui se passe par souci de concision. Voici une liste plus détaillée de ce qui se passe: les détails du démarrage

Le BIOS a le contrôle initial des périphériques afin de pouvoir vérifier et afficher les erreurs si nécessaire. La plupart des erreurs que j'ai vues sont des bips sonores ou des voyants clignotants dont la signification doit être recherchée. Il ne montre généralement pas l'erreur sur le moniteur comme dans votre cas (car si la carte vidéo pose problème). Le BIOS peut uniquement exécuter la séquence d'initialisation la plus élémentaire et, dans certains cas, relayer uniquement les codes d'erreur les plus élémentaires. Le BIOS possède déjà les interruptions pour les composants actifs, comme indiqué ci-dessus, il n'a donc pas besoin que le processeur traite quoi que ce soit pour envoyer un signal à l'aide de la carte mère afin de produire un bip ou une lumière clignotante, ou dans votre cas, la carte vidéo pour afficher un message. message.

Musselman
la source
4
Ceci est une erreur. Le BIOS ne peut rien faire d'aussi complexe que l'affichage d'informations à l'écran sans certaines capacités de traitement rudimentaires du processeur fonctionnant correctement.
Wes Sayeed
6
Vous semblez avoir l’impression que les interruptions sont utilisées pour contrôler le matériel. Ils ne sont pas. De plus, les interruptions se font très souvent par le biais du processeur. Par conséquent, si le processeur ne pouvait pas exécuter de code, il ne pourrait pas exécuter d'interruption (ce qui n'était qu'un peu une instruction de saut indirect légèrement glorifiée) et il ne serait certainement pas en mesure de le faire. pour configurer l’un des vecteurs d’interruption. Il est peu probable que le BIOS puisse même configurer l'actualisation de la mémoire, de sorte que la mémoire dans laquelle les vecteurs d'interruption sont conservés (en x86, le plus petit fichier de 1 Ko de l'espace adresse) ne serait même pas utilisable.
un CVn
6
Cette réponse pose un problème plus fondamental: le BIOS est simplement un code qui s'exécute sur le processeur. Il n'est pas séparé de la CPU et ne peut agir seul.
Crépuscule