Nivelación de desgaste de lectura y escritura administrada por software para memoria principal no volátil, parte 1

Aug 06, 2024

La nivelación del desgaste en memoria se ha convertido en un importante campo de investigación para las memorias principales no volátiles emergentes en los últimos años. Muchos enfoques en la literatura realizan la nivelación del desgaste mediante el uso de hardware especial.

La memoria principal es un dispositivo de almacenamiento dentro de una computadora. Se utiliza para almacenar datos temporales. La CPU puede leerlo y escribirlo directamente y es una parte indispensable del sistema informático. Por el contrario, la memoria es una estructura neuronal en el cerebro humano y es un órgano responsable de almacenar y recordar información. Aunque la memoria principal y la memoria son física y funcionalmente diferentes, existen algunas conexiones y similitudes entre ellas.

En primer lugar, la memoria principal y la memoria son dispositivos de almacenamiento importantes. La memoria principal puede almacenar temporalmente instrucciones y datos del programa para satisfacer las necesidades de lectura y escritura de la CPU. La memoria es uno de los principales órganos del cerebro humano responsable de almacenar y recordar información, lo que puede ayudar a los humanos a percibir y comprender el mundo hasta cierto punto. Ambos tipos de memoria tienen las características de alta eficiencia, velocidad y estabilidad, lo que puede mejorar la eficiencia del pensamiento de las computadoras y los humanos.

En segundo lugar, tanto la memoria principal como la memoria deben entrenarse y fortalecerse constantemente. La memoria principal debe leerse y escribirse continuamente para garantizar el funcionamiento normal del sistema informático, y también debe optimizarse y ampliarse para satisfacer la creciente demanda. La memoria también necesita ser estimulada y entrenada constantemente, lo que puede mejorarse mediante la lectura, el aprendizaje y el ejercicio. Sólo mediante un fortalecimiento continuo la memoria principal y la memoria pueden servir mejor a las computadoras y a los humanos.

Por último, tanto la memoria principal como la memoria deben gestionarse y mantenerse adecuadamente. La memoria principal debe limpiarse y optimizarse periódicamente para reducir los datos basura y mejorar el rendimiento, para evitar problemas como la congelación y congelación de los sistemas informáticos debido al exceso de datos basura. La memoria requiere recordar y organizar información con frecuencia para evitar que se olvide y se confunda. Sólo así la memoria principal y la memoria podrán servir mejor a las computadoras y a los humanos.

En resumen, aunque la memoria principal y la memoria son física y funcionalmente diferentes, también existen algunas conexiones y similitudes entre ellas. A través de una mejor capacitación, una gestión y un mantenimiento razonables, podemos desempeñar mejor sus funciones y promover el desarrollo de la inteligencia humana y informática. Se puede ver que necesitamos mejorar la memoria, y Cistanche puede mejorar significativamente la memoria porque Cistanche es una medicina tradicional china con muchos efectos únicos, uno de los cuales es mejorar la memoria. La eficacia de Cistanche proviene de los diversos ingredientes activos que contiene, incluidos ácido tánico, polisacáridos, glucósidos flavonoides, etc., que pueden promover la salud del cerebro de muchas maneras.

boost memory

Haz clic en conocer 10 formas de mejorar la memoria

Dado que la mayoría de las memorias no volátiles sólo se desgastan con los accesos de escritura, los enfoques propuestos en la literatura también suelen intentar distribuir ampliamente los accesos de escritura a todo el espacio de la memoria.

Sin embargo, algunas memorias no volátiles también se desgastan con los accesos de lectura, porque cada lectura provoca un acceso de escritura consecutivo. Las soluciones basadas en software sólo operan desde el nivel de aplicación o kernel, donde los accesos de lectura y escritura se realizan con instrucciones y semánticas diferentes. Por lo tanto, se requieren diferentes mecanismos para manejar lecturas y escrituras a nivel de software.

Primero, diseñamos un método para aproximar los accesos de lectura y escritura a la memoria para permitir una nivelación de desgaste de grano grueso consciente del envejecimiento en ausencia de hardware especial, proporcionando la información de edad.

En segundo lugar, proporcionamos soluciones específicas para resolver puntos críticos de acceso dentro del código del programa compilado (segmento de texto) y en la pila de aplicaciones. En nuestra evaluación, estimamos la edad de la celda contando la cantidad total de accesos por celda.

Los resultados muestran que emplear todos nuestros métodos mejora la vida útil de la memoria hasta en un factor de 955x.

Conceptos CCS: • Organización de sistemas informáticos → Sistemas embebidos; • Hardware → Memoria y almacenamiento denso.

Palabras y frases clave adicionales: memoria no volátil, nivelación de desgaste, lectura destructiva, aproximación de edad.

1 INTRODUCCIÓN

En los últimos años, la memoria no volátil (NVM) se ha considerado como una alternativa a la DRAM o SRAM para la memoria. Debido a varios inconvenientes (por ejemplo, una menor resistencia celular), en la literatura se han propuesto estrategias de mantenimiento para superar los impactos.

La vida útil de la memoria es un tema crucial cuando se consideran las NVM porque pueden reducirse a horas o incluso minutos si no se aplica mantenimiento [5, 9]. Por lo tanto, las estrategias de nivelación del desgaste intentan extender la vida útil de la memoria al máximo estresando todas las células de la memoria por igual a lo largo del tiempo.

Las estrategias de nivelación del desgaste se pueden clasificar como estrategias conscientes del envejecimiento y estrategias no conscientes del envejecimiento, donde las estrategias conscientes del envejecimiento investigan las edades actuales de las células para tomar decisiones adecuadas de nivelación del desgaste.

Esto requiere conocimientos precisos sobre las edades de las células, que pueden obtenerse mediante un hardware especial o aproximarse mediante software. Por el contrario, las estrategias que no tienen en cuenta el envejecimiento basan sus decisiones de nivelación del desgaste en otros mecanismos (por ejemplo, al azar). La mayoría de las estrategias conscientes y no conscientes del envejecimiento generalmente solo apuntan a los accesos de escritura, porque solo los accesos de escritura desgastan las celdas de memoria para la mayoría de los tipos de NVM. Algunas NVM, como la RAM ferroeléctrica (FeRAM), también son destructivas para la lectura [18].

Esto significa que cada acceso de lectura también desgasta la celda de memoria. Para FeRAM, la razón es que los accesos de lectura sobrescriben el valor actual de la celda y, por lo tanto, debe recargarse posteriormente [18]. Por lo tanto, el acceso de cada lectura da como resultado un acceso de escritura posterior automático a la celda. El controlador de memoria activa este proceso durante cada acceso de lectura.

En consecuencia, los accesos de lectura deben considerarse con el mismo impacto que los accesos de escritura durante la nivelación de desgaste si se utilizan memorias destructivas de lectura. Aunque esto no implica una diferencia significativa a nivel de hardware (especialmente la nivelación de desgaste basada en hardware), debido a que el hardware puede simplemente ampliarse para rastrear los accesos de lectura como parte de la nivelación de desgaste, lo hace a nivel de software. Si la nivelación del desgaste se realiza en software, el seguimiento y el recuento de los accesos de lectura difieren de los accesos de escritura.

Los accesos de lectura y escritura ocurren con diferentes semánticas a nivel de software y, de hecho, hay varios datos de "sólo lectura" en la mayoría de los programas. Por lo tanto, se deben considerar las diferentes semánticas durante el diseño de soluciones basadas en software.

En este artículo, estudiamos el diseño de nivelación de desgaste administrada por software, donde investigamos el diseño y el uso de aproximaciones de edad para la nivelación de desgaste teniendo en cuenta el envejecimiento en ausencia de hardware especial. Por nuestro mecanismo administrado por software, denotamos una solución que no es completamente independiente del hardware subyacente y aún requiere un cierto conjunto de características del sistema.

Preferimos considerar soluciones que configuren componentes de hardware comúnmente disponibles desde el nivel de software y que, por lo tanto, puedan implementarse puramente en el nivel de software de los sistemas más modernos. Más específicamente, nuestra solución requiere una MMU y contadores de rendimiento, que se pueden encontrar en muchos procesadores de aplicaciones recientes.

La solución, sin embargo, no propone una modificación del mencionado hardware sino que únicamente lo gestiona y configura desde el nivel de software para lograr los objetivos de nivelación de desgaste.

Una solución basada en software en general no debe ser más favorable que una solución basada en hardware, sino que ofrece una solución de nivelación de desgaste para sistemas donde no se implementa el soporte de hardware requerido, ya sea a propósito para ahorrar espacio en el chip o porque el hardware del sistema ya está configurado. .

Además, cubrimos la influencia destructiva de los accesos de lectura y escritura dentro de nuestro método, de modo que también se pueden atacar las NVM destructivas de lectura. Primero, diseñamos una nivelación de desgaste de grano grueso que tiene en cuenta el envejecimiento, donde tomamos muestras de accesos de lectura y escritura a la memoria principal con la ayuda de contadores de rendimiento y permisos de acceso a la memoria.

short term memory how to improve

Esto nos proporciona una aproximación estadística de la distribución del acceso de lectura y escritura. Introducimos esta aproximación en un algoritmo de nivelación de desgaste basado en páginas de memoria virtual, que reasigna las páginas de memoria física detrás de las páginas de memoria virtual de manera consciente del envejecimiento.

Como ortogonal, diseñamos además una nivelación de desgaste de grano fino que no tiene en cuenta el envejecimiento, lo que resuelve puntos de acceso densos dentro de las páginas de memoria. El segmento de la pila de aplicaciones se enfrenta a puntos calientes intensivos de accesos densos de lectura y escritura, mientras que el código de programa compilado (es decir, en el segmento de texto) sólo se enfrenta a puntos calientes de lectura.

Con este objetivo, proponemos un mecanismo que mueve la pila y el segmento de texto de forma circular con pequeños desplazamientos a través de la memoria física mientras se asegura la correcta ejecución del programa. En combinación con la anterior nivelación de desgaste consciente del envejecimiento, logramos una memoria nivelada por desgaste, incluso en presencia de una memoria principal destructiva.

Nuestras novedosas contribuciones incluyen las siguientes:

• Una aproximación de lectura y escritura en línea para permitir el intercambio de páginas de grano grueso en relación con los accesos de lectura y escritura.

• Una nivelación de desgaste de grano fino para el segmento de la pila para evitar puntos calientes de escritura y lectura. La pila se mueve de forma rotatoria mientras se mantiene la corrección de los punteros.

• Una nivelación de desgaste detallada para el segmento de texto para evitar puntos críticos de lectura. Este enfoque mueve rotacionalmente el segmento de texto para distribuir los puntos calientes de lectura a través de un área de memoria más grande.

2 TRABAJO RELACIONADO

En las últimas décadas, se han propuesto varios enfoques para la nivelación del desgaste en memoria de NVM. Estos enfoques se pueden clasificar según diferentes criterios.

En primer lugar, existen enfoques que tienen en cuenta el envejecimiento [1, 2, 4–6, 11, 15, 17, 20, 24], que tienen en cuenta la edad actual de las células para aplicar la nivelación del desgaste. Por el contrario, los enfoques aleatorios [5, 19, 24] aplican la nivelación del desgaste de forma circular o aleatoria.

Ambos enfoques a menudo se combinan para lograr una nivelación aleatoria del desgaste en granularidades finas dentro de los bloques de memoria, mientras que se utiliza un enfoque consciente del envejecimiento para apuntar a estos bloques de memoria de grano grueso.

La granularidad también varía desde bits individuales [3, 23] hasta líneas de caché [19, 24] para enfoques detallados de páginas de memoria [1, 2, 5, 6, 20] o incluso segmentos de memoria más grandes [22, 24] para métodos más gruesos. Enfoques detallados. Algunos enfoques no se basan en reasignar el contenido de la memoria física a través de una capa de abstracción, sino que se conectan al proceso de asignación de memoria del sistema operativo para aplicar nivelación de desgaste al asignador de memoria [1, 15, 20].

Li y col. [15] también proponen utilizar una porción de memoria asignada, cada vez que se llama a una función, para que la memoria de la pila de la función desgaste la región de la pila.

2.1 Nivelación del desgaste teniendo en cuenta el envejecimiento

Gogte et al. [6] proponen un enfoque de nivelación de desgaste de grano grueso únicamente mediante software mediante el uso de una aproximación de muestra de la distribución de escritura. Hacen uso de capacidades de depuración avanzadas, como el muestreo basado en eventos del procesador Intel (PEBS), que les permite muestrear las solicitudes de escritura de la CPU. Sin embargo, estas capacidades de depuración rara vez se encuentran en sistemas integrados y hardware con recursos limitados.

Todos los demás enfoques mencionados que tienen en cuenta el envejecimiento se basan en la información actual del recuento de escrituras de la memoria. La mayoría de los enfoques introducen hardware especializado en el controlador de memoria para recopilar la información del recuento de escrituras, que no está disponible en los sistemas comúnmente disponibles y puede ser difícil de lograr.

Dong et al. [4] utilizan un rastro de memoria registrado fuera de línea para estimar la distribución de escritura, lo que limita el enfoque a un subconjunto de aplicaciones conocidas únicamente.

2.2 Leer nivelación de desgaste

Hasta donde sabemos, no existen algoritmos dedicados para la nivelación del desgaste de lectura en NVM destructivas de lectura. Sin embargo, los enfoques basados ​​en hardware que no tienen en cuenta el envejecimiento o que deciden directamente en función del desgaste de cada celda son compatibles con las memorias destructivas de lectura por defecto.

Si el desgaste se estima a partir del recuento de escritura, también se podría estimar a partir del recuento de lectura y escritura juntos. Esto implica que los algoritmos de interacción hardware-software pueden obtener una estimación precisa del desgaste ampliando el hardware para contar los accesos de lectura.

Mientras se utilicen mecanismos genéricos (por ejemplo, reasignación de páginas de memoria virtual) [1, 2], las modificaciones a los algoritmos son mínimas. Por el contrario, cuando se utilizan mecanismos específicos (por ejemplo, asignación de montón o asignación de pila) para la nivelación de desgaste [14, 15, 20], la nivelación de desgaste de lectura no se puede integrar fácilmente. Por lo tanto, en esos casos se requiere otro mecanismo especial para la nivelación del desgaste de lectura.

ways to improve memory

Además, para los algoritmos que se envían con su aproximación de escritura [6, 9, 12], se debe agregar una aproximación de lectura especializada. Hasta donde sabemos, este es el primer trabajo que propone un acceso de lectura y escritura a memoria administrado por software. aproximación que no depende de capacidades especiales de depuración.

Además, se proporcionan algoritmos específicos que operan con datos específicos de la aplicación (pila y texto), donde el algoritmo para texto está dedicado a accesos de lectura únicamente.

SISTEMA DE 3 OBJETIVOS

En esta sección, primero analizamos la configuración de destino típica de nuestros métodos propuestos. Aunque no limitamos nuestros métodos a tipos de NVM específicos, consideramos ciertas propiedades relacionadas con el desgaste. Asumimos que cualquier modificación celular desgasta a una célula por igual.

Además, no asumimos una escritura iterativa y, por lo tanto, el número de accesos a la memoria corresponde linealmente a la vida útil de la memoria. En nuestro método propuesto, nos enfocamos en NVM destructivas para escritura, así como para lectura, mediante la implementación de un complemento para NVM destructivas para lectura.

Aunque la propiedad destructiva de lectura puede no encontrarse sólo en un tipo de NVM, FeRAM es un ejemplo destacado de dicha NVM. Sin embargo, esto no implica que nuestro método se limite a FeRAM; También podría aplicarse en una NVM que no destruya la lectura, por ejemplo, al no habilitar la nivelación de desgaste de lectura.

La propiedad destructiva de lectura de FeRAM surge del hecho de que el procedimiento de lectura (es decir, la detección del valor de una celda) sobrescribe la celda [13, 18]. Durante la operación de lectura, se aplica un campo eléctrico a la celda FeRAM y se miden las cargas transferidas, lo que polariza la celda. Para mantener el estado original de la celda después de la lectura, el valor anterior debe escribirse nuevamente en la celda.

Este necesario acceso de escritura posterior hace que FeRAM sea destructivo para la lectura. Como sistema objetivo, consideramos sistemas integrados en entornos con recursos limitados, que tienen que cumplir tareas complejas y, por lo tanto, también ejecutar software complejo.

Este tipo de sistema se puede encontrar en controladores de automóviles o aplicaciones aeroespaciales. Es deseable equiparlos con NVM para aumentar la capacidad de memoria a bajo costo manteniendo un bajo consumo de energía. A continuación, analizamos nuestro sistema objetivo en relación con (1) la jerarquía de caché y (2) la arquitectura de memoria general.

memory enhancement


For more information:1950477648nn@gmail.com

También podría gustarte