34 votos

¿No podemos simplemente conectar una batería a una memoria RAM para evitar la pérdida de datos durante los cortes de energía?

Por eso, me preguntaba cómo pierden los datos las memorias volátiles cuando se les corta la corriente. ¿Pero no podemos resolver ese problema utilizando una batería junto con una RAM y una ROM y cuando hay un corte de energía, es decir, cuando el ordenador no recibió una señal de apagado, la batería entra en acción y un controlador transfiere los datos de la RAM a una EEPROM?

EEPROM - porque supongo que los HDDs y SSDs consumen más energía. Quiero decir que si pudiéramos hacer esto, tal vez podríamos programarlo para que almacene explícitamente los datos en la EEPROM, si no los datos, entonces el sistema operativo (sólo una copia). De esta manera también podemos arrancar más rápido. Hay tal vez razones muy obvias para no hacer esto. Pero no son claras para mí. Entonces, ¿puede decirme por qué no se hace esto?

9 votos

Para qué molestarse en transferir a EEPROM si la RAM está respaldada por la batería.

0 votos

No tiene ningún sentido, ya que otros periféricos se reiniciarán y no tienen nada que ver con los datos de la RAM guardados al volver del RESET. Usted tiene UPS para evitar caídas repentinas de energía para todo el sistema.

9 votos

Y la eeprom idea.... Bueno, hoy en día un típico PC doméstico de gama media tiene unos 8GB de DRAM. ¿Eeprom de 8GB? ¿Quizás te referías a la flash después de todo?

47voto

rdtsc Puntos 1915

Respuesta corta: Es posible que puedas "conectar una batería a una RAM para evitar la pérdida de datos durante un corte de energía", pero esto depende del tipo de RAM.

SRAM (Static Random Access Memory) no es una DRAM, como se explica a continuación. Las SRAM se encuentran en muchos dispositivos electrónicos, como un termostato (doméstico) moderno (utiliza una pila para conservar los ajustes si se va la luz) y en un reloj despertador (la pila mantiene la hora y puede alimentar la unidad durante un breve periodo), etc. Los discos duros suelen tener algo de SRAM enmascarada como "32MB de caché de disco". La SRAM especializada está incluso presente dentro de la CPU, como memoria caché L1, L2 y L3, que es rapidísima.

Las baterías primarias (no recargables) de litio se utilizan habitualmente para la retención de las SRAM. Las SRAM modernas pueden tener voltajes de trabajo más bajos, como 1,8 V, lo que requiere más circuitos para respaldar con una batería de 3,0 V. La corriente de alimentación es muy pequeña (incluso nanoamperios), por lo que los datos pueden conservarse durante mucho tiempo con una batería pequeña. Muchas máquinas industriales (robots, accionamientos de frecuencia variable, controladores lógicos programables, etc.) emplean una batería de respaldo SRAM para conservar los datos críticos a través de ciclos de alimentación (frecuentes).

El acrónimo SRAM significa " Estática Memoria de acceso aleatorio". Estática, porque su contenido permanece en el estado en que fue programado, indefinidamente, pero sólo mientras se le aplique energía. La SRAM es muy rápida, pero es voluminosa físicamente y es relativamente cara, por lo que sólo encuentra nichos de mercado incluso hoy en día. La SRAM y la DRAM son volátil lo que significa que su contenido se pierde si se pierde la energía.

EEPROM (Electrically-Erasable Programmable Read-Only Memory) es una antigua, no volátil medio de almacenamiento digital, lo que significa que los datos persisten tras el apagado. Originalmente se "programaban" o "fundían" a nivel de bits, pero los modernos son algo más rápidos y pueden manejar datos en bloques. Sin embargo, siguen siendo mucho más lentas que la SRAM o la DRAM. Debido a esta extrema lentitud, a su limitada capacidad y a su limitada capacidad de escritura/borrado, sólo se utilizan para almacenar parámetros y pequeños programas para microcontroladores, etc. Es inviable hacer una copia de seguridad de la memoria principal del sistema en EEPROM debido a la gran cantidad de tiempo que implica.

FLASH La memoria, comúnmente vista como una unidad flash USB y en los discos duros SSD, es otro medio de almacenamiento no volátil. También es mucho más lenta que otros tipos de RAM y tiene un límite de escritura finito, por lo que no se utiliza como memoria principal. Un disco duro SSD no es más que un montón de estos, todos utilizados en paralelo, para aumentar la velocidad y la capacidad.

DRAM (Memoria dinámica de acceso aleatorio) es una bestia completamente diferente. "Dinámica" porque siempre está cambiando, y el contenido cambiará (se perderá) sin intervención. La DRAM es relativamente densa (en cuanto a capacidad) y barata, por lo que se utiliza para la memoria del sistema principal del ordenador. Desgraciadamente, también es más lenta* que la SRAM y necesita ser "refrescada" continuamente, pues de lo contrario su contenido se pierde en poco tiempo dependiendo de la temperatura. El funcionamiento normal del controlador de memoria del PC mantiene los datos de la DRAM refrescados continuamente para que estén siempre disponibles. Si se desconecta la alimentación, el controlador de la memoria tiene que seguir refrescando los datos mientras funciona con la energía de la batería de reserva. Los ordenadores portátiles, por ejemplo, hacen esto cuando se suspenden a la RAM. Como este refresco es un proceso activo, consume más corriente y, por lo tanto, la batería suele ser mucho más grande que una pila de botón. Si la batería se agota, el contenido de la DRAM se pierde y la máquina se ve obligada a arrancar en frío.

Una nueva y prometedora tecnología es FeRAM . (RAM ferroeléctrica) es bastante rápida, no volátil y tiene una gran resistencia. Es una tecnología nueva, por lo que es bastante cara y su capacidad es limitada, por lo que tiene funciones muy limitadas.

*Aspecto: para sortear la lentitud de la DRAM, un PC las utiliza masivamente en paralelo. En primer lugar, se accede a una memoria entera a la vez (8 veces la velocidad, ya que hay 8 chips en ella), luego, si la placa base admite el doble banqueo, dos módulos a la vez (2x8 = 16x), triple banqueo = 24x, etc. Así es como un módulo marcado como "PC3-10666" puede rendir como un chip funcionando a 10.666MHz. De un bus de 666MHz: 666*2 (DDR significa dos transferencias por reloj) * 8 chips/módulo = 10.666.

3 votos

Gracias. Esto ha sido de gran ayuda.

9 votos

Antes de la era de las SSD flash, ¿no había dispositivos de almacenamiento que eran esencialmente cajas de DRAM respaldadas por baterías, con circuitos dedicados para refrescarlas?

9 votos

@grawity Ha habido (cf. images-na.ssl-images-amazon.com/images/I/41CVgprtpsL.jpg ). Se vendían literalmente como "discos RAM". Aunque yo no los etiquetaría como "comunes", más bien como una pieza de hardware exótica realmente especializada - y en ese ámbito prácticamente cualquier cosa existía si se buscaba lo suficiente.

25voto

Eliana Puntos 119

¿No podemos simplemente conectar una batería a una memoria RAM para evitar la pérdida de datos durante los cortes de energía? Entonces, ¿puede decirme por qué no se hace esto?

¡Claro que sí! Se llama SRAM respaldada por batería, y se utiliza mucho en los sistemas embebidos. Hoy en día, el coste de la tecnología NVRAM (como la EEPROM convencional, o la nueva FRAM) es bajo, pueden hacer lo mismo sin necesidad de energía, así que no es tan común como antes, pero sigue estando aquí. Y es muy probable que tu ordenador de sobremesa todavía tiene uno en su interior para guardar la configuración de la BIOS.

Battery-Backed SRAM

Fuente de la imagen: <a href="https://www.st.com/resource/en/datasheet/cd00001424.pdf" rel="noreferrer">Ficha técnica del ST M48T128Y</a>

Las aplicaciones incluyen:

  • Fecha/hora. La pila de monedas de la placa base de tu ordenador alimenta el chip del reloj en tiempo real, que tiene una SRAM en su interior que mantiene la hora. Es la razón por la que tu ordenador de sobremesa recuerda la hora incluso si se corta la corriente.

  • Parámetros de calibración. Un equipo de prueba, como un osciloscopio, puede guardar los datos de calibración actuales dentro de la SRAM (un problema común de los equipos de prueba antiguos es que se pierden todos los datos de calibración cuando se agota la batería).

  • Parámetros de tiempo de ejecución. Un microcontrolador puede guardar los datos importantes del tiempo de ejecución en una SRAM respaldada por una batería, de modo que los datos nunca se pierden aunque el microcontrolador se reinicie debido a un corte de energía o a un fallo. Del mismo modo, una calculadora científica de mano puede guardar sus variables.

    • Muchos ordenadores de sobremesa siguen utilizando esta técnica para conservar algunos ajustes de la BIOS, junto con la fecha/hora. Se mantiene porque la gente descubrió que es fácil quitar la batería y restablecer todo si la configuración de la BIOS está mal. Los primeros PCs utilizaban verdaderos chips SRAM dedicados, los modernos utilizan una solución integrada. Aunque el firmware UEFI moderno utiliza mayoritariamente NVRAM, algunos todavía tienen una SRAM respaldada por batería además de NVRAM.
  • Criptografía y seguridad. Un hardware de seguridad puede guardar la clave privada dentro de una SRAM con batería, con un temperamento mecanismo de detección de manipulaciones que borra y desconecta la SRAM si se detecta una intrusión, destruyendo permanentemente la clave privada. Asimismo, en el caso extremo, el propio programa se guarda en la SRAM para frustrar cualquier esfuerzo de ingeniería inversa por parte de los competidores.

No lo hacemos en los ordenadores de sobremesa. Las grandes DRAM de los ordenadores consumen mucha energía. Además, la mayoría de los sistemas operativos y el software no están diseñados para seguir trabajando después de una pérdida de energía de todos modos. Se puede implementar algo como la hibernación, pero si es así, ¿por qué no se usa simplemente la hibernación? En general, no se hace, no porque sea imposible, es simplemente porque nadie quiere hacerlo.

4 votos

TAmper-detección. Aunque algunas personas se enfadan cuando no pueden descifrar sus datos.

4 votos

@dave_thompson_085 Mucha gente se enfada también en la comunidad de juegos retro / arcade, algunos juegos se pierden definitivamente cuando la batería de la SRAM de la clave de encriptación está muerta ;-(

5 votos

Bueno, está disponible en gran medida en los portátiles: es exactamente lo que es "suspender a la RAM", y lo uso todos los días en lugar de la hibernación profunda, porque es más rápido para despertar. Probablemente no soy el único, y puedo decirte que todos los principales sistemas operativos lo soportan desde hace muchos años.

7voto

jns Puntos 449

Para un PC, eso es más o menos lo que es "hibernar cuando hay poca batería". El contenido de la RAM se escribe en el disco en el archivo de hibernación. Dado que se necesita que todo el sistema esté encendido mientras se hace esto, se necesita bastante energía, y por lo tanto sólo es adecuado para los sistemas que tendrían una batería de todos modos, como los ordenadores portátiles.

Del mismo modo, es posible arrancar rápidamente desde la hibernación; Intel lo llama "arranque rápido" y está disponible en algunos sistemas desde hace mucho tiempo.

El principal factor limitante es que la RAM es tan grande que se tarda muchos segundos en escribirla toda en Flash.

0 votos

En el caso de un PC, puede ocurrir que el S.O. haga un planteamiento "híbrido": escribir en el disco, pero mantenerlo también en la RAM. De esta manera, puede arrancar súper rápido y está protegido en caso de un corte de energía, ya que tiene todos los datos de hibernación en el disco. Esto es más rápido que un arranque en frío y restaura el contenido y los programas en ejecución, tal como lo haría la suspensión en la RAM.

6voto

fraxinus Puntos 69

EEPROM - porque supongo que los HDDs y SDDs consumen más energía.

Los SSD son EEPROM por definición.

Lo que describes es exactamente lo que hacen las funciones de "suspender a disco" o "hibernar" en los ordenadores modernos. Se desenchufa, la batería o una batería externa (SAI) empieza a alimentar el ordenador y cuando la batería se agota hasta cierto punto, el SO (dependiendo de la configuración) simplemente escribe toda la RAM en un archivo y se apaga. Cuando vuelves a encenderlo, el SO ve que el archivo de "hibernación" existe y en lugar de arrancar normalmente, lee el archivo en la RAM y empieza desde donde se detuvo antes (muchas simplificaciones aquí, por supuesto).

También hay una función de "suspender a la RAM": apaga los periféricos, detiene la CPU y alimenta sólo la RAM y el controlador de RAM.

Ambas funciones pueden encadenarse: primero se suspende a la RAM, y cuando la batería se agota un poco más, el ordenador se despierta brevemente para transferir el contenido de la RAM al disco y apagarse por completo.

2 votos

"Ambas funciones pueden encadenarse: primero se suspende a la RAM, y cuando la batería se agota un poco más, el ordenador se despierta brevemente para transferir el contenido de la RAM al disco y apagarse por completo". - En realidad tiene más sentido escribir el contenido de la RAM en el disco primero Porque así no tienes que hacer nada más que apagar cuando la batería se agota. Esto se llama Hybrid Sleep en Windows, Safe Sleep en macOS ("Safe" porque puedes sacar la batería / perder energía de forma segura) y también existe en Linux.

2 votos

@JörgWMittag Creo que eso no es exactamente lo que ocurre. No me cites, pero creo que algunos S.O. pueden apagar los periféricos y la mayoría de los dispositivos (como si estuviera suspendiendo) y escribir todo en el disco antes de pasar a los estados de menor consumo (aka: suspender). Cuando se enciende el PC, puede reanudar todo. En caso de un fallo de alimentación, todo está ya en el disco y simplemente se reanuda. Creo firmemente que la copia se hace antes de detener la CPU, pero después de apagar todos los periféricos (pantalla, teclado, ratones, webcam, tarjetas de red, gpu, otros).

3voto

Spehro Pefhany Puntos 90994

Para añadir a las otras respuestas minuciosas, permítanme señalar que el mero hecho de tener energía disponible para la memoria es insuficiente para garantizar un reinicio adecuado donde se dejó. Si simplemente dejas que la energía se salga de las especificaciones para el procesador, normalmente se "volverá loco" en algún momento, ya que la lógica interna comienza a fallar y un procesador de velocidad GHz puede crear una gran cantidad de corrupción de datos en los milisegundos que tarda en caer hasta el punto en el que se queda en silencio por completo (e incluso un solo bit podría ser suficiente para hacer que se bloquee).

Por esta razón, es necesario contar con circuitos de supervisión y, por lo general, con algún tipo de software que controle los raíles de alimentación y permita un arranque y un apagado ordenados que no corrompan la SDRAM o la RAM no volátil o respaldada por baterías.

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