Où le BIOS est-il stocké?

À partir de http://en.wikipedia.org/wiki/BIOS :

Le logiciel BIOS est stocké sur une puce ROM non volatile sur la carte mère. … Dans les systèmes informatiques modernes, les contenus du BIOS sont stockés sur une puce mémoire flash afin que le contenu puisse être réécrit sans retirer la puce de la carte mère. Cela permet au logiciel BIOS d'être facilement mis à niveau pour ajouter de nouvelles fonctionnalités ou corriger les bogues, mais peut rendre l'ordinateur vulnérable aux rootkits du BIOS.

Puisque ROM signifie R ead- O nly M emory, pourquoi le contenu du BIOS peut-il être réécrit?

La «puce de mémoire flash» signifie-t-elle la même chose que la «ROM non volatile», ce qui signifie que le BIOS est stocké?

Pour ajouter à la réponse de Varaquilex, le logiciel BIOS est stocké dans une ROM émettant et programmable électriquement (EEPROM) qui permet d'effectuer les mises à jour du microprogramme par voie électronique. Les puces BIOS très anciennes étaient en fait des puces UV-EPROM qui nécessitaient un effacement avec une exposition à la lumière UV avant qu'elles ne puissent être reprogrammées.


Edit: Comme cela a été souligné dans les commentaires, même plus tôt que les puces de ROM programmables à une seule utilisation (PROM) ont parfois été utilisées, ce qui n'a pas pu être reprogrammé une fois configuré et a nécessité un remplacement complet de la mise à niveau (même si cela était rarement requis).

La ROM est en lecture seule, alors pourquoi le contenu du BIOS peut-il être réécrit?

Le programme BIOS lui-même est stocké dans une EEPROM (qui peut être [E] lectrically [E] rasable et [P] rogrammable) ou une mémoire flash. Donc, en lecture seule, la puce est non volatile. Le contenu de la mémoire reste lorsque l'alimentation est coupée, contrairement à la RAM volatile. Le ROM étant EEP aide le BIOS peut être réécrit ou mis à jour. À l'époque, pour ces opérations, vous devez supprimer la puce BIOS du tableau, en mettre une nouvelle (si elle n'est pas PROM ou EPROM), ou si son EPROM vous devez l'obtenir auprès du fabricant et lui permettre de redéployer la puce Et le re-attacher au tableau. Après les avancées actuelles, grâce aux EEPROM, vous ne devez pas supprimer la puce pour effectuer de telles opérations, il suffit de faire fonctionner l'ordinateur électriquement .


La «puce de mémoire flash» signifie-t-elle la même chose que la «ROM non volatile», ce qui signifie que le BIOS est stocké?

À partir de Wikipedia :

La mémoire flash est un support de stockage informatique électronique non volatile qui peut être effacé et reprogrammé électriquement.

La mémoire flash a été développée à partir d'EEPROM (mémoire morte programmable effaçable électriquement). Il existe deux principaux types de mémoire flash, qui s'appellent les portes logiques NAND et NOR. Les caractéristiques internes des cellules de mémoire flash individuelles présentent des caractéristiques similaires à celles des portes correspondantes. Alors que les EPROM ont dû être complètement effacées avant d'être réécrites, la mémoire flash de type NAND peut être écrite et lue en blocs (ou pages) qui sont généralement beaucoup plus petits que l'ensemble du périphérique. Le flash de type NOR permet d'écrire un seul mot de machine (octet) dans un emplacement effacé ou lu indépendamment.

EEPROM et la mémoire flash ne se réfèrent pas à la même chose: ils sont deux types de mémoire similaires, l'un étant développé de l'autre et contenant différents types / configuration de transistors MOS. Cependant, ils sont la mémoire où réside le programme BIOS.


Pour aborder une autre idée fausse, je veux mentionner cette relation CMOS-BIOS:

Les paramètres du BIOS sont stockés dans la puce CMOS (qui est maintenue sous tension via la batterie de la carte mère). C'est pourquoi le BIOS est réinitialisé lorsque vous retirez la batterie et remettez-la en place. Le même programme fonctionne mais les paramètres sont en défaut. Consultez cette réponse pour une vue détaillée des mémoires utilisées pendant le processus d'amorçage.

modifier

Pour étendre le sujet CMOS-BIOS, grâce à @Andon M. Coleman , je souhaite ajouter son commentaire à la réponse:

Il convient de mentionner que les paramètres du BIOS ne doivent pas être stockés dans une mémoire CMOS volatile. Il existe de nombreux systèmes embarqués qui stockent leurs paramètres dans NVRAM. La seule raison pour laquelle les PC ont éliminé l'utilisation de CMOS volatils au cours de toutes ces années, c'est qu'ils avaient déjà une batterie pour maintenir l'horloge en temps réel interne en cas d'éteinte (rappelez-vous que lorsque vous avez appuyé sur l'interrupteur d'alimentation sur un PC-AT , Il a littéralement coupé tout le courant sur la carte mère). Cela signifiait que la mémoire volatile moins coûteuse pourrait être utilisée pour stocker les paramètres du système. C'est pour l'essentiel pour des raisons historiques.

En complément des autres réponses, j'aime une approche plus visuelle:

Emplacement du BIOS

Cette puce BIOS ne semble pas particulièrement bien assise dans sa prise.

Le BIOS, y compris les nouveaux BIOS UEFI fantaisie, sont des logiciels stockés sur une puce sur la carte mère. Les détails techniques ont déjà été couverts par zelanix et Varaquilex.

La puce est souvent, mais pas toujours, amovible pour un entretien plus facile. Certaines cartes mères incluent plus d'un BIOS, principalement comme un astérisque de vente, mais dans certains cas, le deuxième BIOS permet de récupérer certains problèmes (habituellement causés par l'utilisateur):

BIOS double non amovible

Il est également intéressant de noter que, dans la plupart des machines avant le 80286, les données peuvent être lues à partir de la ROM aussi rapidement que de la RAM, mais tandis que les largeurs de bande RAM se sont considérablement améliorées depuis les années 1980, la bande passante de ROM de commodité n'a pas [les chips ROM rapides existent , Mais l'augmentation de la vitesse de la ROM au-delà d'un certain point augmenterait le prix]. Comme la lecture de chaque octet d'une ROM du BIOS ne prendrait qu'une fraction de seconde, certaines machines 80386 et la plupart des machines 80486 et ultérieures offraient une option pour copier le BIOS en RAM lors du démarrage. Les machines modernes prennent les choses encore plus loin et placent les puces ROM du BIOS sur un bus entièrement séparé du bus RAM et est beaucoup plus lent. Contrairement aux machines de l'époque 80486 qui commenceraient en exécutant à partir de ROM un programme qui se copierait dans la RAM, de nombreuses machines plus récentes ont des processeurs qui ne peuvent pas exécuter le code de la ROM du tout. Au lieu de cela, ils ont des circuits qui, au démarrage, lit certaines parties de la ROM dans la RAM et l'exécute.

En fait, dans les derniers jours, il existe un système plus sophistiqué de stockage du BIOS. Imaginez 2 banques de stockage semblables à votre lecteur flash, tout simplement plus petites. L'un d'entre eux est accessible en lecture seule et la seconde est disponible pour être écrite (pour extraire la nouvelle version du BIOS). La raison pour 2 parties est une sauvegarde, lorsque l'écriture du nouveau BIOS ne réussit pas. Si le clignotement du nouveau BIOS réussit, ces 2 parties basculeront et le périphérique pourrait être redémarré sous le nouveau BIOS.

SOYEZ PERSONNEL: aucun système ne comporte ce système. Parfois, une petite mémoire flash simple est simplement écrasée. Habituellement, vous êtes invité à sauvegarder l'électricité et à ne pas interrompre le processus de mise à niveau.

Dans les anciens temps des cartes mères, il y avait une mémoire EPROM, qui pourrait être réécrit après que la mémoire a été effacée par une lumière forte ou plus tard une mémoire PROM, qui pourrait être écrite une seule fois. Les deux pourraient être effectués uniquement par un dispositif de programmation spécial, de sorte que la puce BIOS devrait être retirée de l'appareil à écrire.

Regardez cet article de Wikipedia tel qu'il est lu en janvier 2005:

Avant 1990, les BIOS se trouvaient sur des puces ROM qui ne pouvaient être modifiés. Comme leur complexité et leur besoin de mises à jour ont augmenté, le microprogramme BIOS est stocké sur des dispositifs EEPROM ou de mémoire flash pouvant être mis à niveau par l'utilisateur. Cependant, une mise à jour du BIOS incorrectement exécutée ou interrompue peut rendre l'ordinateur ou l'appareil inutilisable. Pour éviter la corruption du BIOS, certaines nouvelles cartes mères ont un BIOS de sauvegarde. En outre, la plupart des BIOS ont un "bloc de démarrage" qui est une partie de la ROM qui s'exécute en premier et n'est pas mise à jour. Ce code vérifiera que le reste du BIOS est intact (via checksum, hash, etc.) avant de le sauter.

De nos jours, bien sûr, nous avons un article de Wikipedia qui confond les gens en disant que la puce est «ROM non volatile» d'un seul souffle et qu'elle peut être écrite dans la prochaine. La leçon à apprendre ici est que Wikipedia n'est souvent pas très bien écrit, et que les articles changent, pas toujours pour le mieux.

Je suggère de lire des livres. Les ordinateurs de mise à niveau et de réparation de Scott Mueller, pour choisir l'un des nombreux livres, ont un chapitre entier sur le BIOS, qui traite de toutes sortes de choses d'où la puce BIOS est située aux différentes sortes (en listant quatre: ROM, PROM, EPROM et EEPROM) de ces chips.

Quelques citations:

Peu importe le type de ROM que votre système utilise, les données stockées dans une puce ROM sont [sic] non volatiles et restent indéfiniment à moins qu'elles ne soient effacées ou écrasées intentionnellement (dans les cas où cela est possible). Mise à niveau et réparation des PC , p.373

Pratiquement toutes les PC construites depuis 1996 comprennent une ROM flash pour stocker le BIOS. Une ROM flash est un type de puce EEPROM que vous pouvez effacer et reprogrammer directement dans le système sans équipement spécial. Mise à niveau et réparation des PC , p.387

Les livres ne sont pas parfaits. On peut discuter des détails avec la définition de "flash" de la mémoire flash de Mueller ici, par exemple. Mais les bons sont généralement relus et ont des explications plus cohérentes que beaucoup de Wikipédia, au moins ne se contredisent pas d'une phrase à l'autre.

En présumant un PC moderne, et ne pas s'embourber dans la façon dont les PC fonctionnaient il y a deux décennies:

Le microprogramme de votre machine est maintenu sur une puce mémoire non volatile sur la carte mère. Il y a beaucoup de choses. (Le Pm49FL004T mentionné dans ma réponse ici contient une demi-MiB, et comme mentionné dans ma réponse, certains chipsets sont capables de supporter 16MiB de microprogrammes). Il implique beaucoup plus que le système bootstrap, même pour les systèmes d'exploitation en mode protégé. Son contenu est modifiable, mais pas aussi facilement que le contenu (volatile) de la RAM du système principal. Sur les systèmes EFI, la puce détient non seulement le code du firmware et les données (en lecture seule), mais les valeurs des variables EFI non volatiles.

Dans le PC IBM d'origine, la ROM du BIOS était, je crois, une sorte de ROM (EPROM) programmable électriquement ("écrire une fois"). Je pense que cela a été bloqué, mais il n'y avait aucune attente réelle à ce qu'il soit "amélioré" sur le terrain. D'autres ordinateurs de l'ère utilisaient quelque chose de similaire.

Au fur et à mesure que les systèmes devenaient plus complexes, il devenait plus avantageux que le BIOS «soit mis à niveau» (et sans avoir besoin d'ouvrir la boîte et échanger physiquement la pièce). Ainsi, les systèmes ont commencé à avoir différents types de «ROM» du BIOS réinscriptibles. Les avantages étaient trois:

  1. La probabilité qu'un bogue devienne plus grande à mesure que les systèmes se complexifiaient.
  2. Il était intéressant d'avoir la possibilité de mettre à niveau, d'intégrer de nouvelles fonctionnalités.
  3. Pour les cartes mères qui pourraient être utilisées dans plusieurs boîtes différentes (peut-être même sous des noms de marque différents), il était intéressant de personnaliser en usine le BIOS pour une utilisation spécifique.

Les boîtes plus grandes, au même moment que l'ordinateur IBM d'origine, ont également commencé à avoir une sorte de mémoire de démarrage en lecture seule au lieu de la technologie plus «primitive de démarrage». Certaines d'entre elles étaient des ROM programmées par masque, certaines EPROM, certaines RAM identiques qui ont été lues depuis une disquette via un petit «processeur de service».

La ROM originale a été littéralement fabriquée de cette façon au niveau du silicium. Une fois qu'ils ont été programmés électriquement par les utilisateurs puis quelques éléments:

  1. Dans beaucoup d'entre eux, ils disposent d'un circuit intensif de tension du matériel interne qui permet à 3.3V ou 5V d'être montés en interne à 12V pour effectuer la programmation réelle. Ceci est vrai pour les anciennes PROM, EPROM, UVEPROM, oR EEPROM.

  2. Si disponible dans les modèles plus anciens, la fonction effaçable aux UV (lumière ultraviolette) permettait aux circuits d'activer uniquement la fonction + 12V interne pour la programmation de l'appareil, et une fenêtre UV permettait la lumière UV dans la zone de la puce, mais la fenêtre UV devait être couverte Après la programmation ou la puce efface sous n'importe quel éclairage fluorescent de la pièce. L'effacement UV a également été très rapide à effacer, beaucoup plus rapidement que la reprogrammation de la puce entière à 0 ou 1.

Dans de nombreux cas, il existe un circuit step-up interne à toutes les PROM «programmables».

  1. L'EEPROM postérieure autorisée à être effacée électriquement, à l'EPROM ou UVEPROM.

  2. Plus tard, la technologie Flash est venue et a ajouté une technologie de circuit différente (au niveau du transistor) et des densités plus élevées que l'ancienne EEPROM.

  3. Dans presque tous les cas depuis que le ROM original a été arrêté, presque toutes les PROM du BIOS sont suspectes dans plusieurs (25%?) Des problèmes informatiques. Ces dernières PROM (qui ont toutes une fonction programmable) peuvent être endommagées ou simplement «oublier» leur programme au fil du temps.

Les PROM, peu importe la façon dont ils doivent être effacés ou reprogrammés doivent être manipulés avec précaution (dommages ESD), vieillissement ou humidité.

Dans environ 1/4, les mauvais cas d'ordinateur qui reprogramment un «bon» BIOS corrige généralement le problème. Donc, même si votre BIOS est "bon", il est toujours préférable de reflash si possible.

Le BIOS est stocké sur une puce CMOS ou NVRAM, qui sont de petites quantités de mémoire non volatile sur votre carte mère (c'est-à-dire qu'elles tiennent des données indéfiniment sans avoir besoin d'alimentation).

En ce qui concerne le message que vous recevez si tout passe sur la poste, sur les machines anciennes, vous recevrez habituellement un seul bip de votre machine si tout a été vérifié.

Sur les machines plus récentes, vous n'obtiendrez rien: vous ne verrez pas la publication, il n'y aura pas de messages, de bips, de rien … un genre de transaction "pas de nouvelles est une bonne nouvelle". Si vous souhaitez toujours que le POST s'exécute sur une machine plus récente, la touche à frapper (au moins sur les ordinateurs que j'ai utilisés) est Tab. Appuyez à plusieurs reprises juste après avoir allumé l'alimentation pour voir le POST sur l'écran. Alternativement, il devrait y avoir une option pour que le POST apparaisse sur l'écran dans les paramètres de votre BIOS.