9 votos

¿Por qué el chip ROM de la BIOS no está fabricado con tecnología CMOS?

Después de leer un curso de hardware informático sobre BIOS/CMOS, sigo sin poder determinar la razón por la que el chip ROM de la BIOS no está construido con tecnología CMOS, y por qué está conectado a un chip separado llamado "CMOS" para almacenar la información de configuración.

Esto es de la nota de la conferencia :

Los programas se almacenan en el chip de la 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, disqueteras, puertos serie y paralelo

Sé que la BIOS se almacena en una memoria flash, y que la tecnología CMOS MOSFET disipa menos energía en comparación con otras implementaciones.

¿Por qué sólo la ROM de la BIOS no utiliza la 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 de la BIOS en su propio chip ROM en lugar del "chip CMOS"?

1 votos

¿El CMOS no necesita una batería para conservar los datos? Una cosa es perder la configuración y los ajustes del reloj cuando se acaba la batería, pero sería un desastre si se perdiera la BIOS. Podrías editar tu última frase. No puedo entender lo que estás preguntando.

1 votos

La Bios es la ROM mientras que los ajustes son la RAM

0 votos

@Transistor Ah, lo he entendido, gracias. Acabo de hacer una edición - ¿la segunda pregunta tiene más sentido ahora?

35voto

Andrew Walker Puntos 9038

Estás mezclando la tecnología de implementación con los términos coloquiales de funcionalidad.

CMOS -Semiconductor de óxido metálico complementario- es un método de fabricación de circuitos lógicos y afines que utiliza transistores de efecto de campo de canal N y canal P. Una de las características que lo definen es su bajísimo consumo de energía estática: la energía casi sólo se utiliza al cambiar de estado. Como resultado, un chip de memoria estática CMOS puede retener su contenido durante años con una batería, y es un lugar práctico para almacenar información semipermanente.

La BIOS y el código de inicio relacionado se han almacenado tradicionalmente en dispositivos PROM o EPROM. Las EPROM de la época del IBM PC se fabricaban normalmente con tecnologías anteriores a la CMOS, como la NMOS, pero la diferencia fundamental es que normalmente no se podían escribir cuando se instalaban en el ordenador, sino sólo en un programador especial. Además, aunque muchos sistemas contemporáneos y clones utilizaban EPROMs, las versiones de producción reales del IBM-PC utilizaban PROMs no reprogramables más baratas (los pinouts eran normalmente compatibles en uso).

El diseño del PC-AT añadió entonces una memoria CMOS respaldada por baterías para almacenar ajustes personalizables, y también (quizás en el mismo dispositivo) un reloj de tiempo real persistente. Los usuarios finales llegaron a denominar esto coloquialmente como CMOS, aunque, por supuesto, era sólo un uso particular permitido por una tecnología de chip que entonces se extendía rápidamente.

Hoy en día, por supuesto, ya no utilizamos E/PROMs paralelas para la BIOS, sino que utilizamos NOR flash en serie y transferimos el contenido a una RAM más rápida para su ejecución. Chips FLASH modernos son de hecho, se han fabricado con tecnologías derivadas del CMOS. Y normalmente pueden reprogramarse en circuito. En realidad, depende del diseñador del sistema si quiere poner la información de configuración semipermanente en una memoria RAM respaldada por baterías o en una memoria 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 utiliza el flash para los ajustes, lo normal es que haya un reloj de tiempo real de baja potencia que siga funcionando con la batería.

1 votos

Cuando la CPU se pone en marcha por primera vez, la RAM ni siquiera se inicializa (la init de la DRAM es compleja). Todo lo que hace es ejecutar código en una ubicación específica (normalmente es el chip de la BIOS a través de SPI, pero supuestamente se pueden programar los arranques posteriores para buscar la BIOS a través de PCI o LPC heredados por razones de depuración). Lo único que se pone en la RAM son cosas como el IVT (Interrupt Vector Table) y el código relacionado que sólo es útil antes de salir del modo real. La ejecución real de la BIOS cuando la CPU está arrancando no ocurre en la memoria. Ver wiki.osdev.org/Sistema_Inicialización_(x86) para más detalles.

1 votos

@forest - es poco probable que eso sea cierto, y en realidad no está respaldado por la descripción bastante amplia de su enlace. Puede terminar ejecutándose desde alguna memoria caché reutilizada o algo así, pero la ejecución directamente desde el SPI no funciona muy bien, y es muy probable que se evite. Es entonces bastante obvio que una vez que la RAM principal del sistema está arriba, la bios se va a ejecutar fuera de eso - tal sombra era común incluso en los días de las bios EPROM paralelas.

1 votos

Sí, una vez inicializada la memoria principal, los IVT, BDA, EBDA, etc. se copian allí. Sin embargo, antes de eso, se ejecuta directamente. No se ejecuta en caché (eso sería el modo CAR, Cache-As-RAM, que requiere una inicialización explícita por parte de la BIOS).

14voto

GSerg Puntos 33571

Cuando se inventó el PC, la mayor parte de la lógica que contenía eran chips NMOS y TTL que consumían mucha energía. El CMOS era muy nuevo y los únicos circuitos del PC que lo utilizaban estaban asociados a cosas que necesitaban funcionar con batería cuando la energía 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 la BIOS. Así que, en cierto sentido, tu pregunta se basa en una premisa inválida: la EEPROM flash es CMOS. Sin embargo, por la razón que sea, el término "CMOS" en un PC sigue refiriéndose sólo a las funciones de RAM y RTC.

Si te preguntas por qué la BIOS no se almacena en una memoria RAM volátil en lugar de una flash no volátil, es porque las baterías fallan y el borrado de la BIOS "bloquearía" el ordenador, lo que requeriría un hardware especializado para volver a ponerlo en marcha.

1 votos

"Así que, en cierto sentido, tu pregunta se basa en una premisa no válida: la EEPROM flash es CMOS" - La frase "Los programas se almacenan en el chip de la BIOS del sistema, mientras que los datos modificables se almacenan en una CMOS" me confundió un poco, ahora lo he entendido.

0 votos

"Si preguntas por qué la BIOS no se almacena en la RAM volátil en lugar de la flash no volátil, es porque las baterías fallan" No, me refiero a lo contrario: por qué la información del chip CMOS no se almacena en la flash de la BIOS.

3 votos

@Kais porque una memoria flash no puede ser sobrescrita arbitrariamente, y gestionar la reescritura de páginas enteras de la memoria flash complica las cosas de una manera propensa a errores. Además, hay cosas como los registros de eventos almacenados por algunas BIOSen, esto viene con el peligro de desgastar su flash y/o terminar con datos corruptos si la energía falla en el momento equivocado. La verdadera memoria EEPROM sería posible - pero a) es LENTA para escribir, y b) tienes una batería de bajo consumo para el reloj de todos modos .

9voto

Bernd Puntos 61

Creo que estás confundiendo dos usos del acrónimo "CMOS". Hay chips construidos enteramente con la tecnología de transistores MOS complementarios. De hecho, casi todos los chips de hoy en día están construidos 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 del PC desde los primeros días para referirse al chip que almacenaba algunos ajustes y el reloj de tiempo real con una batería adjunta. En aquella época (principios de los 80), la mayor parte de los chips grandes de un PC eran de tecnología NMOS y los chips lógicos diversos eran de transistores bipolares (TTL, LSTTL, etc.). El único chip CMOS que se utilizaba era el chip RTC, por lo que se conoció como "el CMOS".

Hoy en día, el RTC ya no es un chip separado en un dispositivo de arquitectura de PC. En su lugar, está integrado en el chipset de la placa base (que, por cierto, se fabrica con circuitos MOS complementarios). Hoy en día, es raro que las BIOS utilicen la antigua memoria RAM respaldada por baterías en la parte del RTC del chipset para almacenar los ajustes. En su lugar, la BIOS utiliza unas pocas páginas del dispositivo de almacenamiento SPI Flash para guardar sus ajustes de forma no volátil. Por lo tanto, hay un mínimo de configuraciones que se pierden en un PC cuando la batería se agota o se desconecta. Las configuraciones mínimas que se pierden cuando se quita la batería son algunas que controlan el comportamiento de encendido y reinicio del chipset y, de hecho, ni siquiera se almacenan en celdas RAM alimentadas por la batería, sino en latches de flipflop especiales de bajo consumo que se alimentan de la batería de botón.

3voto

jns Puntos 449

Ver también https://superuser.com/questions/989499/what-does-a-cmos-chip-look-like : esto nos proporciona un enlace práctico al original MC146818 hoja de datos.

Este chip estaba mapeado en memoria y proporcionaba ubicaciones de 64 bytes. 14 de ellas eran para el reloj, dejando el resto como RAM de uso general. Todo el chip se mantenía alimentado por la batería mientras el PC estaba apagado, para mantener el reloj en tiempo real.

1voto

joanne Puntos 1

Estás confundiendo la tecnología del chip ROM de la BIOS con los datos no volátiles de configuración del usuario de la CMOS.

Tradicionalmente, los PC utilizan EPROMS para la BIOS (que ahora suele almacenarse en la memoria Flash y es mucho más fácil de actualizar). El hecho de que se fabriquen con tecnología CMOS o NMOS sólo afecta a su consumo energético.

Aunque una EPROM CMOS puede tener una corriente de funcionamiento menor que una de tipo NMOS, sigue siendo significativa. Recuerdo haber probado algunas EPROMS en 1985, cuando el CMOS estaba asomando la cabeza en la tecnología de los microprocesadores. Una CMOS 27C64 tenía una corriente de funcionamiento de ~20mA mientras que una NMOS 2764 solía utilizar 50mA.

Los "datos de usuario de la CMOS" no tienen nada que ver con el propio chip de la BIOS, aunque tu confusión es algo comprensible, ya que los datos se presentan en el nivel de configuración. Estos datos se almacenan por separado del propio chip de la BIOS en un chip dedicado con respaldo de batería, que suele incorporar el reloj en tiempo real, que de hecho se fabrica en CMOS para un consumo de energía muy bajo.

Incluso el RTC no existía en los primeros PC. Había que introducir la hora del día en el momento del arranque.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X