Articulo de referencia

Actualización de memoria

La actualización de memoria es un proceso que consiste en leer periódicamente información de un área de la memoria de la computadora y reescribirla inmediatamente en la misma ár...

La actualización de memoria es un proceso que consiste en leer periódicamente información de un área de la memoria de la computadora y reescribirla inmediatamente en la misma área sin modificarla, con el fin de preservar la información. [ 1 ] La actualización de memoria es un proceso de mantenimiento en segundo plano necesario durante el funcionamiento de la memoria de acceso aleatorio dinámico (DRAM) de semiconductores, el tipo de memoria de computadora más utilizado, y de hecho es la característica definitoria de esta clase de memoria. [ 2 ]

En un chip DRAM, cada bit de datos de memoria se almacena como la presencia o ausencia de una carga eléctrica en un pequeño condensador del chip. [ 2 ] [ 3 ] Con el paso del tiempo, las cargas en las celdas de memoria se disipan, por lo que, sin ser refrescadas, los datos almacenados se perderían con el tiempo. Para evitarlo, un circuito externo lee periódicamente cada celda y la reescribe, restaurando la carga del condensador a su nivel original. Cada ciclo de refrescado de memoria refresca un área sucesiva de celdas de memoria, refrescando así repetidamente todas las celdas del chip en un ciclo consecutivo. Este proceso se realiza normalmente de forma automática en segundo plano por el circuito de memoria y es transparente para el usuario. [ 2 ] Mientras se produce un ciclo de refrescado, la memoria no está disponible para operaciones normales de lectura y escritura, pero en la memoria moderna, esta sobrecarga no es lo suficientemente grande como para ralentizar significativamente el funcionamiento de la memoria.

La memoria de acceso aleatorio estática (SRAM) es una memoria electrónica que no requiere refrescamiento. [ 2 ] Una celda de memoria SRAM requiere de cuatro a seis transistores , en comparación con un solo transistor y un condensador para DRAM; por lo tanto, los circuitos SRAM requieren más área en un chip. Como resultado, la densidad de datos es mucho menor en los chips SRAM que en DRAM, lo que hace que la SRAM tenga un precio por bit más alto. Por lo tanto, la DRAM se utiliza para la memoria principal en computadoras, consolas de videojuegos, tarjetas gráficas y aplicaciones que requieren grandes capacidades y bajo costo. [ 4 ] La necesidad de refrescar la memoria hace que la DRAM sea más compleja, pero las ventajas de densidad y costo de la DRAM justifican esta complejidad.

Operación

Mientras la memoria está en funcionamiento, cada celda de memoria debe actualizarse repetidamente dentro del intervalo máximo entre actualizaciones especificado por el fabricante, generalmente en el rango de los milisegundos. La actualización no utiliza las operaciones normales de memoria (ciclos de lectura y escritura) que se usan para acceder a los datos, sino ciclos especializados llamados ciclos de actualización , que son generados por circuitos de contador independientes y se intercalan entre los accesos normales a la memoria. [ 5 ] [ 6 ]

Las celdas de almacenamiento en un chip de memoria están dispuestas en una matriz rectangular de filas y columnas. El proceso de lectura en DRAM es destructivo y elimina la carga de las celdas de memoria en una fila completa, por lo que hay una columna de pestillos especializados en el chip llamados amplificadores de detección , uno para cada columna de celdas de memoria, para retener temporalmente los datos. Durante una operación de lectura normal, los amplificadores de detección, después de leer y retener los datos, reescriben los datos en la fila a la que se accedió. [ 2 ] [ 7 ] Esta disposición permite que la electrónica de lectura normal en el chip actualice una fila completa de memoria en paralelo, acelerando significativamente el proceso de actualización. Aunque un ciclo normal de lectura o escritura actualiza una fila de memoria, no se puede confiar en que los accesos normales a la memoria alcancen todas las filas dentro del tiempo necesario, lo que requiere un proceso de actualización separado. En lugar de usar el ciclo de lectura normal en el proceso de actualización, para ahorrar tiempo, se utiliza un ciclo de actualización abreviado. El ciclo de actualización es similar al ciclo de lectura, pero se ejecuta más rápido por dos razones:

  • Para actualizar los datos, solo se necesita la dirección de fila, por lo que no es necesario aplicar una dirección de columna a los circuitos de direccionamiento del chip.
  • Los datos leídos de las celdas no necesitan ser introducidos en los búferes de salida ni en el bus de datos para enviarlos a la CPU.

Para garantizar que cada celda se actualice dentro del intervalo de tiempo de actualización, el circuito de actualización debe realizar un ciclo de actualización en cada una de las filas del chip dentro de dicho intervalo.

Tipos de circuitos de refresco

Aunque en algunos sistemas antiguos el microprocesador controlaba la actualización, con un temporizador que activaba una interrupción periódica que ejecutaba una subrutina para realizar la actualización, esto significaba que el microprocesador no podía pausarse, ejecutarse paso a paso ni entrar en hibernación para ahorrar energía sin detener el proceso de actualización y perder los datos en la memoria. [ 6 ] Por lo tanto, en los sistemas modernos, la actualización se gestiona mediante circuitos en el controlador de memoria , [ 2 ] que pueden estar integrados en el propio chip. Los chips DRAM especializados, como la RAM pseudoestática (PSRAM), tienen todos los circuitos de actualización en el chip y funcionan como RAM estática en lo que respecta al resto del ordenador. [ 8 ]

Actualización basada en CPU

Algunos microprocesadores antiguos (por ejemplo, el Zilog Z80 ) proporcionaban registros internos especiales que podían proporcionar la señal de activación de la dirección de fila (RAS) para actualizar las celdas de memoria dinámica, incrementándose el registro en cada ciclo de actualización. Esto también podía lograrse mediante otros circuitos integrados ya utilizados en el sistema, si estos ya generaban accesos cíclicos a través de la RAM (por ejemplo, el Motorola 6845 ). En CPU como la Z80, la disponibilidad de una actualización RAS era una gran ventaja debido a que simplificaba el diseño del hardware. En este caso, la actualización RAS se señaliza mediante una combinación única de cables de dirección y control durante los ciclos de reloj operacionalmente redundantes (estados T), es decir, durante la decodificación y ejecución de instrucciones, cuando los buses pueden no ser necesarios. En lugar de que el bus esté inactivo durante dichos estados T, el registro de actualización se presenta en el bus de direcciones junto con una combinación de señales de control para activar el circuito de actualización.

En las primeras versiones del Z80, la omnipresencia de  chips de RAM de 16 kB con 128 filas y cierta falta de previsión provocaron que el registro R solo se incrementara en un rango de 7 bits (0–127, 128 filas); el usuario podía configurar el octavo bit, pero este permanecía sin cambios debido al ciclo interno. Con la llegada de los chips DRAM de 64 kbit o más (con 256 filas), fue necesario añadir circuitos o lógica adicionales a la señal de actualización para sintetizar el octavo bit faltante y evitar la pérdida de bloques de memoria tras unos pocos milisegundos. En algunos casos, se podían utilizar interrupciones y software para cambiar el octavo bit en el momento adecuado y, de este modo, cubrir todo el rango del registro R (256 filas). Otro método, quizás más universal pero también más complejo en términos de hardware, consistía en utilizar un chip contador de 8 bits, cuya salida proporcionaba la dirección RAS de actualización en lugar del registro R. La señal de actualización de la CPU se utilizaba como reloj para este contador, lo que provocaba que la fila de memoria se incrementara con cada ciclo de actualización. Las versiones posteriores y las versiones similares con licencia del núcleo Z80 corrigieron la omisión del octavo bit en el ciclo automático, y las CPU modernas han ampliado considerablemente este aprovisionamiento básico para proporcionar soluciones integrales y completas para la actualización de la DRAM.

DRAM pseudoestática

La RAM pseudoestática (PSRAM o PSDRAM) es una RAM dinámica con circuitos de actualización y control de direcciones integrados para que se comporte de forma similar a la SRAM. Combina la alta densidad de la DRAM con la facilidad de uso de la SRAM auténtica. La PSRAM (fabricada por Numonyx) se utiliza en el iPhone de Apple y otros sistemas embebidos. [ 9 ]

Algunos componentes DRAM cuentan con un modo de espera de autorrefresco. Su función principal es permitir que un sistema suspenda el funcionamiento de su controlador DRAM para ahorrar energía sin perder los datos almacenados en la DRAM, mientras que la PSRAM permite el funcionamiento sin un controlador DRAM independiente. MoSys comercializa una variante integrada de PSRAM bajo el nombre de 1T-SRAM . Si bien técnicamente es DRAM, su comportamiento es muy similar al de la SRAM, y se utiliza en las consolas GameCube y Wii .

Operación de actualización

Por lo general, el circuito de actualización consta de un contador de actualización que contiene la dirección de la fila que se va a actualizar, que se aplica a las líneas de dirección de fila del chip , y un temporizador que incrementa el contador para recorrer las filas. [ 5 ] Este contador puede formar parte del circuito del controlador de memoria o estar en el propio chip de memoria. Se han utilizado dos estrategias de planificación: [ 6 ]

  • Actualización en ráfaga : se realizan una serie de ciclos de actualización uno tras otro hasta que se hayan actualizado todas las filas, después de lo cual se producen accesos normales a la memoria hasta que se requiera la siguiente actualización.
  • Actualización distribuida : los ciclos de actualización se realizan a intervalos regulares, intercalados con accesos a la memoria.

La actualización en ráfaga produce largos períodos en los que la memoria no está disponible, por lo que la actualización distribuida se ha utilizado en la mayoría de los sistemas modernos, [ 5 ] particularmente en sistemas en tiempo real . En la actualización distribuida, el intervalo entre ciclos de actualización es

intervalo del ciclo de actualización=hora de actualización/número de filas{\displaystyle {\text{intervalo de ciclo de actualización}}={\text{tiempo de actualización}}\,/\,{\text{número de filas}}\,}

Por ejemplo, la memoria DDR SDRAM tiene un tiempo de actualización de 64  ms y 8192 filas, por lo que el intervalo del ciclo de actualización es de 7,8  μs. [ 5 ] [ 10 ] En los dispositivos DDRx modernos, solo se admite la opción distribuida. Por otro lado, los dispositivos LPDDRx todavía admiten la actualización en ráfaga. [ 11 ]

Actualización asíncrona frente a actualización síncrona

Las DRAM asíncronas tienen tres formas estándar de proporcionar actualización, seleccionadas por diferentes patrones de señales en las líneas de selección de columna (CAS) y selección de fila (RAS): [ 6 ]

  • Actualización solo RAS: en este modo, la dirección de la fila que se va a actualizar la proporcionan las líneas del bus de direcciones, que normalmente son generadas por contadores externos en el controlador de memoria.
  • Actualización CAS-antes-RAS (CBR): En este modo, el contador integrado en el chip registra la fila que se va a actualizar, y el circuito externo simplemente inicia los ciclos de actualización. [ 5 ] Este modo consume menos energía porque no es necesario alimentar los búferes del bus de direcciones de memoria. Se utiliza en la mayoría de los ordenadores modernos.
  • Actualización oculta: esta es una versión alternativa del ciclo de actualización CBR, que se puede combinar con un ciclo de lectura o escritura anterior. [ 5 ] La actualización se realiza en paralelo durante la transferencia de datos, lo que ahorra tiempo.

Las DRAM síncronas muestrean las señales de comando y dirección en el flanco de un reloj. Los modos de actualización son: [ 11 ]

Actualizar la parte superior

La fracción de tiempo que la memoria dedica a la actualización, la sobrecarga de actualización, se puede calcular a partir de la temporización del sistema: [ 12 ]

actualizar arriba=tiempo necesario para actualizarintervalo de actualización{\displaystyle {\text{sobrecarga de actualización}}={\frac {\text{tiempo requerido para la actualización}}{\text{intervalo de actualización}}}\,}

Por ejemplo, un chip SDRAM tiene 2 13 = 8192 filas, un intervalo de actualización de 64 ms, el bus de memoria funciona a 133  MHz y el ciclo de actualización dura 4 ciclos de reloj. [ 12 ] El tiempo para un ciclo de actualización es [ 12 ]

duración del ciclo de actualización=4/F=41.33(108)Hz=30ns{\displaystyle {\text{duración del ciclo de actualización}}=4/f={\frac {4}{1.33(10^{8})\,{\text{Hz}}}}=30\,{\text{ns}}\,}
tiempo necesario para actualizar=(duración del ciclo de actualización)(filas)=(30ns)(8192)=0,246EM{\displaystyle {\text{tiempo requerido para la actualización}}=({\text{duración del ciclo de actualización}})({\text{filas}})=(30\,{\text{ns}})(8192)=0.246\,{\text{ms}}\,}
actualizar arriba=0,246EM64EM=0,0038{\displaystyle {\text{sobrecarga de actualización}}={\frac {0.246\,{\text{ms}}}{64\,{\text{ms}}}}=.0038\,}

Por lo tanto, los ciclos de actualización consumirán menos del 0,4 % del tiempo del chip de memoria. En los chips SDRAM, la memoria de cada chip se divide en bancos que se actualizan en paralelo, lo que ahorra aún más tiempo. Así, el número de ciclos de actualización necesarios es igual al número de filas de un solo banco, especificado en las características técnicas, que en la generación de chips de 2012 se mantuvo fijo en 8192.

Intervalo de actualización

El intervalo de tiempo máximo entre operaciones de actualización está estandarizado por JEDEC para cada tecnología DRAM y se especifica en las especificaciones del chip del fabricante. Suele estar en el rango de milisegundos para DRAM y microsegundos para eDRAM . Para los chips DDR2 SDRAM, es de 64 ms. [ 13 ] : 20 El intervalo de actualización máximo depende de la relación entre la carga almacenada en los condensadores de la celda de memoria y las corrientes de fuga. Debido a que las corrientes de fuga en los semiconductores aumentan con la temperatura, los intervalos de actualización deben disminuirse a altas temperaturas. Los chips DDR2 SDRAM tienen una estructura de actualización compensada por temperatura; el intervalo de actualización debe reducirse a la mitad cuando la temperatura de la carcasa del chip supera los 85  °C (185  °F). [ 13 ] : 49 Aunque la geometría de los condensadores se ha reducido con cada nueva generación de chips de memoria, reduciendo la carga almacenada, los intervalos de actualización para DRAM han ido aumentando; de 8  ms para chips de 1M, 32  ms para chips de 16M, a 64  ms para chips de 256M. Un intervalo de actualización más prolongado implica que una menor fracción del tiempo del dispositivo se dedica a la actualización, lo que deja más tiempo para los accesos a la memoria. Esta mejora se logra principalmente mediante la reducción de las fugas de memoria.

La persistencia real de los valores de carga legibles y, por lo tanto, de los datos en la mayoría de las celdas de memoria DRAM es mucho mayor que el intervalo de actualización, hasta 1-10 segundos. [ 14 ] Sin embargo, las corrientes de fuga de los transistores varían ampliamente entre diferentes celdas de memoria en el mismo chip debido a la variación del proceso. Para asegurar que todas las celdas de memoria se actualicen antes de que se pierda un solo bit, los fabricantes deben establecer sus tiempos de actualización de forma conservadora y corta. [ 15 ]

Esta actualización frecuente de la DRAM consume un tercio de la energía total consumida por los dispositivos electrónicos de bajo consumo en modo de espera. Los investigadores han propuesto varios enfoques para extender el tiempo de funcionamiento de la batería entre cargas reduciendo la tasa de actualización, incluyendo la actualización compensada por temperatura (TCR) y la colocación consciente de la retención en la DRAM (RAPID). Los experimentos muestran que en un chip DRAM típico comercial, solo unas pocas celdas débiles realmente requieren el  intervalo de actualización de 64 ms en el peor de los casos, [ 16 ] e incluso entonces solo en el extremo superior de su rango de temperatura especificado. A temperatura ambiente (por ejemplo, 24 °C (75 °F) ), esas mismas celdas débiles necesitan actualizarse una vez cada 500 ms para un funcionamiento correcto. Si el sistema puede evitar usar el 1% más débil de las páginas, una DRAM típica solo necesita actualizarse una vez por segundo, incluso a 70 °C (158 °F ) , para el funcionamiento correcto del 99% restante de las páginas. Algunos experimentos combinan estas dos técnicas complementarias, logrando un funcionamiento correcto a temperatura ambiente con intervalos de actualización de 10 segundos. [ 16 ]     

Para aplicaciones tolerantes a errores (por ejemplo, aplicaciones gráficas), actualizar los datos no críticos almacenados en DRAM o eDRAM a una velocidad inferior a su período de retención ahorra energía con una pérdida mínima de calidad, lo que constituye un ejemplo de computación aproximada . [ 17 ] [ 18 ]

SRAM

En la memoria de acceso aleatorio estática (SRAM), otro tipo de memoria semiconductora, los datos no se almacenan como carga en un condensador, sino en un circuito biestable , por lo que la SRAM no necesita ser refrescada. Los dos tipos básicos de memoria tienen ventajas y desventajas. La memoria estática puede considerarse permanente mientras está encendida; es decir, una vez escrita, la memoria permanece hasta que se modifica específicamente, por lo que su uso tiende a ser sencillo en términos de diseño de sistemas. Sin embargo, la construcción interna de cada celda SRAM requiere seis transistores, en comparación con el único transistor requerido para una celda DRAM, por lo que la densidad de la SRAM es mucho menor y el precio por bit mucho mayor que el de la DRAM.

Otras tecnologías de memoria que utilizan refresco

Varias de las primeras tecnologías de memoria informática también requerían procesos periódicos similares a la actualización de la memoria. El tubo Williams es el que presenta mayor similitud, ya que, al igual que la DRAM, es esencialmente una memoria capacitiva en la que los valores almacenados para cada bit se degradarían gradualmente a menos que se actualizaran.

En la memoria de núcleo magnético , cada celda de memoria puede retener datos indefinidamente incluso con la alimentación apagada, pero leer los datos de cualquier celda borra su contenido. Por consiguiente, el controlador de memoria solía añadir un ciclo de actualización después de cada ciclo de lectura para crear la ilusión de una operación de lectura no destructiva. Algunos de los primeros ordenadores implementaban ciclos atómicos de lectura-modificación-escritura ( que combinaban lectura y escritura con modificación ) para el incremento y el decremento.

La memoria de línea de retardo requiere una actualización constante porque los datos se almacenan como una señal en una línea de transmisión . En este caso, la frecuencia de actualización es comparable al tiempo de acceso a la memoria .

La memoria flash NAND puede necesitar algún tipo de actualización de memoria para detectar y corregir errores ECC , especialmente si la memoria no se ha encendido durante mucho tiempo. [ 19 ]

Véase también

Referencias

  1. "ciclo de actualización" en Laplante, Phillip A. (1999). Diccionario completo de ingeniería eléctrica . Springer. pág.  540. ISBN 3540648356.
  2. 1 2 3 4 5 6 Ganssle, Jack; Tammy Noergaard; Fred Eady; Lewin Edwards; David J. Katz (2007). Hardware integrado . Newnes. pág. 106. ISBN  978-0750685849.
  3. Jacob, Bruce; Spencer Ng; David Wang (2007). Sistemas de memoria: caché, DRAM, disco . Morgan Kaufmann. págs. 431–432 . ISBN  978-0123797513.
  4. Laasby, Gitte (10 de marzo de 2014). "Los consumidores pueden recibir dinero en virtud del acuerdo sobre la fijación de precios de los chips informáticos" . Milwaukee Journal-Sentinel . Milwaukee, Wisconsin . Consultado el 16 de abril de 2024 .
  5. 1 2 3 4 5 6 Reinhardt, Steven K. (1999). "Memoria, pág. 9–3" (PDF) . EECS 373 Diseño de sistemas basados ​​en microprocesadores, Apuntes de clase, Otoño de 1999. Departamento de Ingeniería Eléctrica, Universidad de Michigan. Archivado (PDF) del original el 2 de enero de 2014. Recuperado el 16 de abril de 2024 .
  6. 1 2 3 4 Heath, Steve (2003). Diseño de sistemas embebidos, 2.ª ed . Newnes. págs. 88–89 . ISBN  0750655461.
  7. "Memoria 1997" (PDF) . Ingeniería de circuitos integrados. 1997. pág. 7.4. En la colección Chip, sitio web del Smithsonian
  8. Kumar (2009). Fundamentos de circuitos digitales, 2.ª ed . India: PHI Learning Pvt. Ltd. pág. 819. ISBN  978-8120336797.
  9. Desmontaje del iPhone 3G por EE Times
  10. "Especificación JEDEC Double Data Rate (DDR) SDRAM" (PDF) . JESD79C. JEDEC Solid State Technology Assoc. Marzo de 2003. Consultado el 16 de abril de 2024 ., pág. 20, en el sitio web de la Escuela de Ingeniería y Ciencias de la Computación de la Universidad de Baylor.
  11. 1 2 Bhati, Ishwar; Chang, Mu-Tien; Chishti, Zeshan; Lu, Shih-Lien; Jacob, Bruce (1 de enero de 2016). "Mecanismos de actualización de DRAM, penalizaciones y compensaciones" (PDF) . IEEE Transactions on Computers . 65 (1): 108–121 . Bibcode : 2016ITCmp..65..108B . doi : 10.1109/TC.2015.2417540 .
  12. 1 2 3 Godse, Deepali A.; Godse, Atul P. (2008). Organización de computadoras . India: Technical Publications. pág. 4.23. ISBN  978-8184313567.
  13. 1 2 "Especificación JEDEC DDR2 SDRAM" (PDF) . ECS.Baylor.edu . JESD79-2b. JEDEC Solid State Technology Assoc. Enero de 2005. Recuperado el 16 de abril de 2024 .
  14. Jacob, 2007, pág. 356
  15. Bhati, Ishwar; Chang, Mu-Tien; Chishti, Zeshan; Lu, Shih-Lien; Jacob, Bruce (2016). "Mecanismos de actualización de DRAM, penalizaciones y compensaciones". IEEE Transactions on Computers . 65 (1): 108– 121. Bibcode : 2016ITCmp..65..108B . doi : 10.1109/TC.2015.2417540 .
  16. 1 2 Ravi K. Venkatesan, Stephen Herr, Eric Rotenberg. "Colocación con conciencia de retención en DRAM (RAPID): métodos de software para DRAM cuasi no volátil" . 2006.
  17. Raha, A.; Sutar, S.; Jayakumar, H.; Raghunathan, V. (julio de 2017). "Quality Configurable Approximate DRAM" . IEEE Transactions on Computers . 66 (7): 1172– 1187. Bibcode : 2017ITCmp..66.1172R . doi : 10.1109/TC.2016.2640296 . ISSN 0018-9340 . 
  18. ^ Kim, Yongjune; Choi, Won Ho; Guyot, Cirilo; Cassuto, Yuval (diciembre de 2019). "Sobre la asignación óptima de energía de actualización para memorias energéticamente eficientes". Conferencia de Comunicaciones Globales IEEE 2019 (GLOBECOM) . Waikoloa, Hola, Estados Unidos: IEEE. págs. 1 a 6. arXiv : 1907.01112 . doi : 10.1109/GLOBECOM38437.2019.9013465 . ISBN  978-1-7281-0962-6. S2CID 195776538 . 
  19. Cai, Yu; Yalcin, Gulay; Mutlu, Onur ; Haratsch, Erich F.; Cristal, Adrian; Unsal, Osman S.; Mai, Ken (2012). "Flash correct-and-refresh: Gestión de errores con conciencia de retención para aumentar la vida útil de la memoria flash". 2012 IEEE 30th International Conference on Computer Design (ICCD) . pp. 94–101 . Bibcode : 2012iccd.confQ..21C . doi : 10.1109/ICCD.2012.6378623 . ISBN  978-1-4673-3052-7.