web-dev-qa-db-fra.com

Où est le BIOS est-il stocké?

De http://en.wikipedia.org/wiki/BIOS :

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

Puisque ROM signifie Read-Oseulement Memory, pourquoi le contenu du BIOS peut-il être réécrit?

La "puce de mémoire flash" a-t-elle la même signification que la "ROM non volatile", les deux signifiant où le BIOS est stocké?

56
Ben

Pour ajouter à la réponse de Varaquilex, le logiciel du BIOS est stocké dans une mémoire ROM effaçable électriquement et programmable _ (EEPROM) qui permet d'effectuer les mises à jour du microprogramme électroniquement. Les très vieilles puces BIOS étaient en réalité des puces UV-EPROM qui devaient être effacées par une exposition aux rayons ultraviolets avant de pouvoir être reprogrammées.


Edit: Comme cela a été souligné dans les commentaires, des puces programmables ROM (PROM) à usage unique étaient parfois utilisées et ne pouvaient pas être reprogrammées une fois configurées et devaient être remplacées intégralement. mise à niveau (même si cela était rarement nécessaire).

59
zelanix

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

Le programme BIOS est stocké dans une EEPROM (pouvant être configurée électriquement [E] et programmable) ou dans une mémoire flash. En lecture seule, la puce est donc non volatile. Le contenu de la mémoire reste en place lorsque l'alimentation est coupée, contrairement à la RAM volatile. Le ROM étant EEP, le BIOS peut être réécrit ou mis à jour. À l’époque, pour de telles opérations, vous deviez retirer la puce BIOS de la carte, en mettre une nouvelle (si ce n’était pas PROM ou une EPROM), ou si son EPROM, vous devez la faire parvenir au fabricant et laisser les reprogrammer la puce et le rattacher au tableau. Après les avancées actuelles, grâce aux EEPROM, vous n’avez pas besoin de retirer la puce pour effectuer de telles opérations, vous devez simplement faire en sorte que l’ordinateur fasse le travail électriquement.


La "puce de mémoire flash" a-t-elle la même signification que la "ROM non volatile", les deux signifiant où le BIOS est stocké?

de Wikipedia :

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

La mémoire flash a été développée à partir de l'EEPROM (mémoire morte programmable effaçable électriquement). Il existe deux principaux types de mémoire flash, nommés d'après 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 devaient être complètement effacées avant d'être réécrites, les mémoires flash de type NAND peuvent être écrites et lues en blocs (ou pages) généralement beaucoup plus petits que l'ensemble du dispositif. Le type flash NOR permet d'écrire un seul mot de machine (octet) sur un emplacement effacé ou de le lire indépendamment.

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


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

Les Les paramètres du BIOS sont stockés dans la puce CMOS (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 la reconnectez. Le même programme s'exécute mais les paramètres sont définis par défaut. Voir cette réponse pour une vue détaillée des mémoires utilisées au cours du processus de démarrage.

Modifier

Pour étendre le sujet CMOS-BIOS, merci à -Andon M. Coleman , je veux ajouter son commentaire à la réponse:

Il est à noter que les paramètres du BIOS ne doivent pas nécessairement être stockés dans la mémoire volatile CMOS. Il existe de nombreux systèmes intégrés qui stockent leurs paramètres dans la NVRAM. La seule raison pour laquelle les ordinateurs s’abstiennent d’utiliser des CMOS volatiles au cours de toutes ces années, c’est qu’ils disposaient déjà d’une batterie pour maintenir l’horloge interne en temps réel pendant que l’appareil était éteint (rappelez-vous que lorsque vous avez appuyé sur l’alimentation. allumez un PC-AT, il coupera littéralement toute alimentation de la carte mère). Cela signifiait qu'une mémoire volatile moins chère pouvait être utilisée pour stocker les paramètres système. Donc, c'est principalement à des fins historiques.

40
Varaquilex

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

BIOS location

Cette puce BIOS ne semble pas être particulièrement bien installée dans son support.

Le BIOS, y compris les nouveaux BIOS UEFI sophistiqués, est un logiciel stocké sur une puce de 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 gadget de vente, mais dans certains cas, le second BIOS permet de récupérer certains problèmes (généralement causés par l'utilisateur):

Dual non-removeable BIOS

27
Charles Burns

Il convient également de noter que sur la plupart des machines antérieures au 80286, les données pouvaient être lues à partir de ROM aussi rapidement que à partir de la RAM, mais si la largeur de bande de RAM s'était considérablement améliorée depuis les années 1980, elle n'ont pas de [fast ROM puces, mais augmenter la vitesse de la ROM au-delà d'un certain point augmenterait le prix]. Étant donné que la lecture de chaque octet d'un BIOS ROM une fois ne prendrait qu'une fraction de seconde, certaines machines 80386 et la plupart des machines 80486 et versions ultérieures offraient la possibilité de copier le BIOS sur RAM au démarrage . Les machines modernes vont encore plus loin et placent les puces du BIOS ROM sur un bus entièrement séparé du bus RAM et qui est much slow. Contrairement aux machines de l'ère 80486 qui commençaient par exécuter à partir de ROM un programme qui se copiait dans la RAM, de nombreuses machines plus récentes ont des processeurs qui ne peuvent pas exécuter de code à partir de ROM. Au lieu de cela, ils ont des circuits qui, au démarrage, lisent certaines parties de ROM dans RAM et les exécutent.

7
supercat

Regardez cet article Wikipedia tel qu’il se lisait en janvier 2005:

Avant 1990, les BIOS étaient stockés sur ROM puces qui ne pouvaient pas être modifiées. Au fur et à mesure de la complexité et des besoins en mises à jour, le micrologiciel du BIOS est stocké sur des périphériques EEPROM ou à mémoire flash pouvant être mis à niveau par l'utilisateur. Cependant, une mise à jour du BIOS mal exécutée ou abandonnée peut rendre l'ordinateur ou le périphérique inutilisable. Pour éviter la corruption du BIOS, certaines nouvelles cartes mères ont un BIOS de sauvegarde. De plus, la plupart des BIOS ont un "bloc de démarrage" qui est une partie du ROM qui est exécuté en premier et qui ne peut pas être mis à jour. Ce code vérifiera que le reste du BIOS est intact (via la somme de contrôle, le hachage, etc.) avant d’y accéder.

De nos jours, bien sûr, nous avons un article dans Wikipedia qui confond les gens en disant que la puce est une "ROM non volatile" dans un souffle et qu’elle peut être écrite dans l’autre. La leçon à tirer 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. Scott Mueller Mise à niveau et réparation d'ordinateurs , pour choisir l'un de plusieurs livres, contient un chapitre entier sur le BIOS, qui traite de toutes sortes de choses, de l'endroit où la puce du BIOS est située (en énumérant quatre: ROM , PROM, EPROM et EEPROM) de ces puces.

Quelques citations:

Quel que soit le type de ROM utilisé par votre système, les données stockées dans une puce ROM sont [sic] non volatiles et restent indéfiniment sauf si elles sont effacées ou écrasées intentionnellement. cas où cela est possible). - Mise à niveau et réparation de PC , p.373

Pratiquement tous les ordinateurs construits depuis 1996 incluent un flash ROM pour stocker le BIOS. Un flash ROM 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 de PC , p.387

Les livres ne sont pas parfaits. On peut discuter des détails avec la définition de Mueller "first blush" de la mémoire flash ici, par exemple. Mais les bons sont généralement corrigés et ont des explications plus cohérentes que beaucoup de Wikipedia, qui au moins ne se contredisent pas de phrase en phrase.

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

Le micrologiciel de votre machine est stocké sur une puce de mémoire non volatile de la carte mère. En fait, il en tient beaucoup. (Le Pm49FL004T mentionné dans ma réponse ici contient un demi-MiB et, comme mentionné dans ma réponse ici certains chipsets sont capables de supporter 16MiB de micrologiciels.) Cela implique bien plus que le démarrage du système , même pour les systèmes d’exploitation en mode protégé. Son contenu est modifiable, mais pas aussi facilement que le contenu (volatil) de la mémoire vive du système principal. Sur les systèmes EFI, la puce contient non seulement le code du microprogramme et les données (en lecture seule), mais également les valeurs des variables EFI non volatiles.

1
JdeBP

Le ROM original a été littéralement fabriqué de cette manière au niveau du silicium. Une fois qu’ils l’ont faite programmable électriquement par les utilisateurs, quelques éléments:

  1. dans beaucoup, ils ont un circuit élévateur de tension matérielle interne qui permet à 3,3V ou 5V de passer en interne à 12V pour effectuer la programmation réelle. Ceci est vrai pour les anciennes PROM, EPROM, UVEPROM, ou EEPROM.

  2. Si disponible dans les modèles plus anciens, la fonction effaçable UV (lumière ultraviolette) permettait aux circuits d'activer uniquement +12 V interne lors de la programmation du dispositif, et une fenêtre UV permettait à la lumière UV de pénétrer dans la zone de la puce, mais la fenêtre UV devait être recouverte après la programmation ou la puce serait effacer sous toute pièce éclairage fluorescent. Les rayons UV effaçables étaient également très rapides à effacer, beaucoup plus rapidement que de reprogrammer la totalité de la puce à 0 ou à 1.

Dans de nombreux cas, il existe un circuit élévateur interne à toutes les PROM "programmables".

  1. La dernière EEPROM autorisée effaçable électriquement, de l'EPROM ou de l'UVEPROM.

  2. La dernière technologie Flash est apparue 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 la ROM originale a été arrêtée, presque toutes les PROM du BIOS sont suspectes dans de nombreux problèmes informatiques (25%?). Ces dernières PROM (qui ont toutes une fonction programmable) peuvent être endommagées ou tout simplement «oublier» leur programme au fil du temps.

Les PROM, peu importe la façon dont ils sont effacés ou reprogrammés, doivent être manipulés avec soin (dommages causés par les décharges électrostatiques), ainsi qu’au vieillissement ou à l’humidité.

Dans environ un quart des cas d'ordinateur défectueux, la reprogrammation d'un "bon" BIOS corrige généralement le problème. Ainsi, même si votre BIOS est "bon", il est toujours préférable de reflasher si possible.

0
charles

En fait, ces derniers jours, il existe un système plus sophistiqué pour stocker le BIOS. Imaginez 2 banques de stockage similaires à votre clé USB, mais plus petites. L'un d'eux est accessible en lecture seule et le second est disponible pour être écrit (pour flasher la nouvelle version du BIOS). Reason for 2 parts est une sauvegarde lorsque l'écriture du nouveau BIOS échoue. Si le flashage du nouveau BIOS réussit, ces 2 composants basculeront et le périphérique pourrait être redémarré sous le nouveau BIOS.

ATTENTION: tous les types d'appareils ne disposent pas de ce système. Parfois, une simple petite mémoire flash est simplement écrasée. Généralement, vous êtes invité à sauvegarder l'électricité et à ne pas interrompre le processus de mise à niveau.

Dans les temps anciens des cartes mères, il existait une mémoire EPROM, qui pouvait être réécrite une fois la mémoire effacée, ou plus tard une mémoire PROM pouvant être écrite une seule fois. Les deux ne peuvent être effectués que par un périphérique de programmation spécial. Par conséquent, la puce BIOS doit être retirée du périphérique à écrire.

0
Dee

Dans le PC IBM d'origine, la "ROM" du BIOS était, je crois, une sorte de programmable électriquement ("écriture unique") ROM (EPROM). Je pense il était emboîté, mais il n'y avait aucune espérance réelle qu'il soit "amélioré" sur le terrain. D'autres ordinateurs de l'époque utilisaient quelque chose de similaire.

À mesure que les systèmes se complexifiaient, il devenait de plus en plus avantageux de pouvoir "mettre à niveau le BIOS" (sans avoir à ouvrir la boîte et à échanger physiquement la pièce). Ainsi, les systèmes ont commencé à avoir divers types de «ROM» BIOS réinscriptibles. Les avantages étaient trois:

  1. La probabilité d'un bogue devenait plus grande à mesure que les systèmes devenaient plus complexes.
  2. Il était intéressant de pouvoir mettre à niveau et intégrer de nouvelles fonctionnalités.
  3. Pour les cartes mères pouvant être utilisées dans plusieurs boîtiers différents (peut-être même sous différentes marques), il était intéressant de pouvoir personnaliser le BIOS en usine pour une utilisation spécifique.

Les boîtes plus grandes, à peu près au même moment que le PC 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 "chargeur d'amorçage". Certaines étaient des ROM programmées par masque, certaines EPROM, d'autres même RAM lues sur une disquette via un petit "processeur de service".

0
Daniel R Hicks