¿Por qué el chip ROM del BIOS no está hecho con tecnología CMOS?

9

Después de leer un curso de hardware de computadora en BIOS / CMOS, todavía no puedo determinar la razón por la cual el chip ROM de BIOS no está construido con tecnología CMOS y por qué está conectado a un chip separado llamado "CMOS" para almacenar el Información de configuración.

Esto es de la nota de la conferencia :

Los programas se almacenan en el chip BIOS del sistema, mientras que los datos modificables se almacenan en un chip CMOS

Grupo de hardware CMOS : hardware que es común, necesario pero que puede cambiar: RAM, discos duros, unidades de disquete, puertos serie y paralelo

Sé que el BIOS está almacenado en una memoria flash y que la tecnología CMOS MOSFET disipa menos energía en comparación con otras implementaciones.

¿Por qué es solo el BIOS ROM que no usa CMOS, como otros dispositivos de almacenamiento? ¿Cuál es exactamente la ventaja? ¿Y por qué no se puede almacenar la información de configuración del BIOS en su propio chip ROM en lugar del "chip CMOS"?

Kais
fuente
1
¿El CMOS no requiere una batería para retener los datos? Una cosa es perder la configuración y la configuración del reloj cuando la batería se agota, pero sería un desastre si se perdiera el BIOS. Puedes editar tu última oración. No puedo entender lo que estás preguntando.
Transistor
1
La BIOS es ROM mientras que la configuración es RAM
Tony Stewart Sunnyskyguy EE75
1
@Kais ninguna parte de una ROM es grabable. Es contrario al significado mismo del término. Entre las tecnologías Eraseble - ROM Programable ha empezado a hacer lo que usted propone es posible, y ahora que en el circuito de programación es simple, este hecho se hace a menudo. Pero al mismo tiempo, también es posible mantener una esquina de bajo consumo de energía de un chip con batería para que sea un reloj y retener algunas configuraciones, por lo que también es una opción utilizada en algunos sistemas.
Chris Stratton
2
"ROM" significa " Memoria de solo lectura ". Por definición, no se puede escribir. Típicamente, una ROM real implica personalizar las capas de metalización o incluso los transistores constituyentes reales. Por el contrario, hay muchos tipos de memorias "Leer en su mayoría" (PROM, EPROM, EEPROM, Flash, etc.) que pueden alterar su contenido, pero con más limitaciones de velocidad y cantidad de veces que una RAM. Por lo general, hoy solo encuentra una verdadera ROM dentro de un procesador (e incluso entonces puede ser algo que no puede escribir), mientras que un dispositivo externo se puede escribir con las conexiones correctas.
Chris Stratton
1
Por ejemplo, en un sistema moderno, es posible que tenga una pequeña ROM dentro del procesador que sepa cómo leer el contenido de un flash NOR serie en la memoria y comenzar a ejecutarlos. El BIOS en la memoria flash NOR se expone luego a la actualización, mientras que el pequeño trozo de arranque que lo copia de la memoria flash a la RAM y salta a él se fija permanentemente en el momento de la fabricación del chip.
Chris Stratton

Respuestas:

33

Está combinando tecnología de implementación con términos coloquiales para la funcionalidad.

CMOS - Semiconductor de óxido de metal complementario - es un método de hacer lógica y circuitos relacionados usando transistores de efecto de campo de canal N y canal P. Una de sus características definitorias es el consumo de energía estática extremadamente bajo: la energía casi solo se usa cuando se cambia de estado. Como resultado, un chip de memoria estática CMOS puede retener su contenido durante años en una batería, y es un lugar útil para almacenar información semipermanente.

El BIOS y el código de inicio relacionado se han almacenado tradicionalmente en dispositivos PROM o EPROM. Las EPROM en la era de la PC de IBM generalmente se fabricaban en tecnologías pre-CMOS como NMOS, pero la distinción crítica es que no se podían escribir normalmente cuando se instalaban en la computadora, sino solo en un programador especial. Además, mientras que muchos sistemas y clones contemporáneos usaban EPROM, las versiones de producción reales de la PC de IBM usaban PROM no reprogramables más baratas (los pines eran típicamente compatibles en uso).

El diseño de PC-AT luego agregó una memoria CMOS respaldada por batería para almacenar configuraciones personalizables y también (tal vez en el mismo dispositivo) un reloj de tiempo real persistente. Los usuarios finales lo denominaron coloquialmente como CMOS, aunque, por supuesto, era solo un uso particular habilitado por una tecnología de chip que se extendía rápidamente.

Hoy, por supuesto, ya no usamos E / PROM paralelas para BIOS, sino que usamos flash NOR en serie y transferimos el contenido a la RAM más rápida para la ejecución. Los chips FLASH modernos están hechos de tecnologías derivadas de CMOS. Y típicamente pueden reprogramarse en circuito. Realmente depende del diseñador del sistema si quieren poner información de configuración semipermanente en una RAM respaldada por batería o en un flash reprogramable: el usuario final o el sistema operativo posterior al arranque pueden tener poca visibilidad real en una distinción.

Pero incluso si se usa flash para la configuración, normalmente habrá un reloj en tiempo real de baja potencia que seguirá funcionando con batería.

Chris Stratton
fuente
1
Cuando la CPU se inicia por primera vez, la RAM ni siquiera se inicializa (DRAM init es complejo). Todo lo que hace es ejecutar el código en una ubicación específica (por lo general, es el chip BIOS sobre SPI, pero supuestamente puede programar arranques posteriores para buscar el BIOS sobre PCI o LPC heredados por razones de depuración). Lo único que se pone en la RAM es cosas como la IVT (Tabla de vectores de interrupción) y el código relacionado que solo es útil antes de cambiar del modo real. La ejecución real del BIOS cuando la CPU se está iniciando no ocurre en la memoria. Consulte wiki.osdev.org/System_Initialization_(x86) para obtener más detalles.
bosque
1
@forest: es poco probable que sea cierto, y en realidad no está respaldado por la descripción bastante amplia en su enlace. Puede terminar ejecutándose a partir de algún RAM de caché reutilizado o algo así, pero la ejecución directa desde SPI simplemente no funciona muy bien, y es muy probable que se evite. Entonces es bastante obvio que una vez que la RAM del sistema principal esté activada, la BIOS se ejecutará a partir de eso, tal sombreado era común incluso en los días de la BIOS paralela de EPROM.
Chris Stratton
1
Sí, una vez que se inicializa la memoria principal, allí se copian los IVT, BDA, EBDA, etc. Antes de eso, sin embargo, se ejecuta directamente. No se ejecuta en caché (sería el modo CAR, Cache-As-RAM, que requiere una inicialización explícita por parte del BIOS).
bosque
1
Consulte stackoverflow.com/questions/5300527/… que explica esto con más detalle. En particular, cómo se ejecuta el bloque de arranque del BIOS directamente sobre SPI. Esto es posible asignando esa área del BIOS a la memoria (por supuesto, antes de que la memoria se inicialice realmente, por lo que es como MMIO). Por lo tanto, no solo es probable que sea cierto, es cierto.
bosque
Chris Stratton, "sino más bien use flash NOR en serie y transfiera el contenido a la RAM más rápida para la ejecución" ¿Y cómo imagina exactamente esta "transferencia de contenido" además de ejecutar algún código inicial de "movimiento de datos" directamente desde SPI?
Ale..chenski
12

Cuando la PC se inventó por primera vez, la mayor parte de la lógica era chips NMOS y TTL que necesitaban mucha energía. CMOS era muy nuevo y los únicos circuitos en la PC que lo usaban estaban asociados con cosas que necesitaban funcionar con batería cuando estaba apagada, como la RAM de configuración y el reloj en tiempo real.

Hoy en día, casi toda la lógica es CMOS, incluida la CPU que consume mucha energía y la EEPROM flash que contiene el BIOS. Entonces, en cierto sentido, su pregunta se basa en una premisa no válida: la EEPROM flash es CMOS. Sin embargo, por cualquier razón, el término "CMOS" en una PC todavía se refiere solo a las funciones RAM y RTC.

Si se pregunta por qué el BIOS no se almacena en la RAM volátil en lugar de la memoria flash no volátil, eso se debe a que las baterías fallan, y el borrado del BIOS efectivamente "bloquearía" la computadora, requiriendo hardware especializado para que vuelva a funcionar.

Dave Tweed
fuente
1
"Entonces, en cierto sentido, su pregunta se basa en una premisa no válida: la EEPROM flash es CMOS" - La frase "Los programas se almacenan en el chip del BIOS del sistema, mientras que los datos cambiables se almacenan en un CMOS" me confundieron un poco, ahora He comprendido.
Kais
"Si se pregunta por qué el BIOS no se almacena en la RAM volátil en lugar de la memoria flash no volátil, es porque las baterías fallan" No, quiero decir lo contrario: por qué la información en el chip CMOS no se almacena en la memoria flash del BIOS.
Kais
3
@Kais porque una memoria flash no se puede sobrescribir arbitrariamente, y administrar reescribir páginas enteras de memoria flash complica las cosas de una manera propensa a errores. Además, hay cosas como registros de eventos almacenados por algunos BIOSen, esto conlleva el riesgo de desgastar su flash y / o terminar con datos corruptos si la energía falla en el momento equivocado. Sería posible una memoria EEPROM verdadera, pero a) es LENTO para escribir, yb) tiene una batería de bajo consumo para el reloj de todos modos .
rackandboneman
1
... también porque todo el sistema fue diseñado antes de que el flash estuviera comúnmente disponible, por lo que el BIOS se almacenó en PROM (que usa fusibles para determinar si cada bit es 1 o 0, y solo se puede cambiar de 1 a 0 pero no de nuevo) o ROM enmascarada (que usa una capa de cables metálicos superpuestos sobre el chip para programarlo y no se puede modificar en absoluto después de la fabricación), por lo que fue necesario un dispositivo separado, y todo ha sido necesario para mantener la compatibilidad con versiones anteriores desde entonces .
Julio
8

Creo que está confundiendo dos usos del acrónimo "CMOS". Hay chips construidos completamente con la tecnología de transistores MOS complementarios. De hecho, en la actualidad, casi todos los chips se construyen de esta manera, incluyendo gran parte de los circuitos de control digital en un chip Flash.

El otro uso de CMOS ha persistido en la industria de la PC desde los primeros días para referirse al chip que almacenaba algunas configuraciones y el reloj en tiempo real con una batería conectada. En aquellos días (principios de los 80), la mayor parte de los chips grandes en una PC eran tecnología NMOS y los chips lógicos misceláneos eran lógica de transistor bipolar (TTL, LSTTL, etc.). El único chip CMOS utilizado fue el chip RTC y se hizo conocido como "el CMOS".

En estos días, el RTC ya no es un chip separado en un dispositivo de arquitectura de PC. En cambio, está integrado directamente en el chipset de la placa base (que por cierto se produce con un circuito MOS complementario). Es raro que algún BIOS en estos días use la RAM con respaldo de batería heredada en la parte RTC del chipset para almacenar la configuración. En cambio, el BIOS usa algunas páginas del dispositivo de almacenamiento SPI Flash para guardar su configuración de forma no volátil. Como tal, hay configuraciones mínimas que se pierden en una PC cuando la batería se agota o se desconecta. Las configuraciones mínimas que se pierden en la extracción de la batería son ciertas que controlan el encendido y el comportamiento de reinicio del conjunto de chips y, de hecho, ni siquiera se almacenan en las celdas RAM alimentadas por batería, sino en los cierres especiales de flipflop de baja potencia que funcionan con la moneda batería celular.

Michael Karas
fuente
2

Consulte también /superuser/989499/what-does-a-cmos-chip-look-like : esto nos proporciona un enlace útil a la hoja de datos original MC146818 .

Este chip fue mapeado en memoria y proporcionó ubicaciones de 64 bytes. 14 de estos fueron para el reloj, dejando el resto como RAM de uso general. Todo el chip se mantuvo alimentado por la batería mientras la PC estaba apagada, para mantener el reloj en tiempo real.

pjc50
fuente