Niveau d'usure en lecture et en écriture géré par logiciel pour la mémoire principale non volatile, partie 1

Aug 06, 2024

Le nivellement de l'usure en mémoire est devenu un domaine de recherche important pour les mémoires principales non volatiles émergentes au cours des dernières années. De nombreuses approches dans la littérature effectuent un nivellement de l'usure en utilisant du matériel spécial.

La mémoire principale est un périphérique de stockage à l'intérieur d'un ordinateur. Il est utilisé pour stocker des données temporaires. Il peut être directement lu et écrit par le processeur et constitue un élément indispensable du système informatique. En revanche, la mémoire est une structure neuronale du cerveau humain et un organe responsable du stockage et du rappel des informations. Bien que la mémoire principale et la mémoire soient physiquement et fonctionnellement différentes, il existe certaines connexions et similitudes entre elles.

Tout d’abord, la mémoire principale et la mémoire sont toutes deux des périphériques de stockage importants. La mémoire principale peut stocker temporairement des instructions et des données de programme pour répondre aux besoins de lecture et d'écriture du processeur. La mémoire est l'un des principaux organes du cerveau humain responsable du stockage et du rappel des informations, ce qui peut aider les humains à percevoir et à comprendre le monde dans une certaine mesure. Les deux types de mémoire présentent des caractéristiques d’efficacité, de vitesse et de stabilité élevées, ce qui peut améliorer l’efficacité de la réflexion des ordinateurs et des humains.

Deuxièmement, la mémoire principale et la mémoire doivent être constamment entraînées et renforcées. La mémoire principale doit être continuellement lue et écrite pour assurer le fonctionnement normal du système informatique, et elle doit également être optimisée et étendue pour répondre à la demande croissante. La mémoire doit également être constamment stimulée et entraînée, ce qui peut être amélioré par la lecture, l’apprentissage et l’exercice. Ce n’est qu’en renforçant continuellement la mémoire principale et la mémoire qu’elle pourra mieux servir les ordinateurs et les humains.

Enfin, la mémoire principale et la mémoire doivent être correctement gérées et entretenues. La mémoire principale doit être nettoyée et optimisée régulièrement pour réduire les données indésirables et améliorer les performances, afin d'éviter des problèmes tels que le gel et le gel des systèmes informatiques en raison d'un excès de données indésirables. La mémoire nécessite un rappel et une organisation fréquents des informations pour éviter que les informations ne soient oubliées et confuses. Ce n’est qu’ainsi que la mémoire principale et la mémoire pourront mieux servir les ordinateurs et les humains.

En résumé, bien que la mémoire principale et la mémoire soient physiquement et fonctionnellement différentes, il existe également certaines connexions et similitudes entre elles. Grâce à une formation améliorée, une gestion raisonnable et une maintenance, nous pouvons mieux jouer leur rôle et promouvoir le développement de l'intelligence informatique et humaine. On peut voir que nous devons améliorer la mémoire, et le Cistanche peut améliorer considérablement la mémoire car le Cistanche est une médecine traditionnelle chinoise avec de nombreux effets uniques, dont l'un est d'améliorer la mémoire. L'efficacité du Cistanche provient des différents ingrédients actifs qu'il contient, notamment l'acide tannique, les polysaccharides, les glycosides flavonoïdes, etc., qui peuvent favoriser la santé cérébrale de plusieurs manières.

boost memory

Cliquez sur connaître 10 façons d'améliorer la mémoire

Comme la plupart des mémoires non volatiles ne s'usent qu'à la suite d'accès en écriture, les approches proposées dans la littérature tentent également généralement de répartir largement les accès en écriture sur l'ensemble de l'espace mémoire.

Toutefois, certaines mémoires non volatiles s'usent également lors des accès en lecture, car chaque lecture entraîne un accès en écriture consécutif. Les solutions logicielles ne fonctionnent qu'au niveau de l'application ou du noyau, où les accès en lecture et en écriture sont réalisés avec des instructions et une sémantique différentes. Par conséquent, différents mécanismes sont nécessaires pour gérer les lectures et les écritures au niveau logiciel.

Tout d'abord, nous concevons une méthode pour approximer les accès en lecture et en écriture à la mémoire afin de permettre un nivellement d'usure à gros grains tenant compte du vieillissement en l'absence de matériel spécial, fournissant ainsi des informations sur l'âge.

Deuxièmement, nous proposons des solutions spécifiques pour résoudre les points chauds d'accès dans le code du programme compilé (segment de texte) et sur la pile d'application. Dans notre évaluation, nous estimons l'âge de la cellule en comptant le nombre total d'accès par cellule.

Les résultats montrent que l’utilisation de toutes nos méthodes améliore la durée de vie de la mémoire jusqu’à un facteur 955×.

Concepts CCS : • Organisation des systèmes informatiques → Systèmes embarqués ; • Matériel → Mémoire et stockage dense.

Mots et expressions clés supplémentaires : mémoire non volatile, nivellement de l'usure, lecture destructive, approximation de l'âge.

1 INTRODUCTION

Ces dernières années, la mémoire non volatile (NVM) a été considérée comme une alternative à la DRAM ou à la SRAM pour la mémoire. En raison de plusieurs inconvénients (par exemple, une endurance cellulaire inférieure), des stratégies de maintenance ont été proposées dans la littérature pour surmonter les impacts.

La durée de vie de la mémoire est un problème crucial lorsque l'on considère les NVM car elles peuvent se réduire à des heures, voire des minutes lorsqu'aucune maintenance n'est appliquée [5, 9]. Par conséquent, les stratégies de nivellement de l’usure tentent de prolonger au maximum la durée de vie de la mémoire en sollicitant de manière égale toutes les cellules mémoire au fil du temps.

Les stratégies de nivellement de l'usure peuvent être classées en stratégies conscientes du vieillissement et en stratégies non conscientes du vieillissement, où les stratégies conscientes du vieillissement étudient l'âge actuel des cellules pour prendre des décisions adéquates en matière de nivellement de l'usure.

Cela nécessite des connaissances précises sur l'âge des cellules, qui peuvent être recueillies à l'aide d'un matériel spécial ou approximées par un logiciel. En revanche, les stratégies non conscientes du vieillissement fondent leurs décisions en matière de nivellement de l'usure sur d'autres mécanismes (par exemple aléatoires). La plupart des stratégies sensibles au vieillissement et non sensibles au vieillissement ciblent généralement uniquement les accès en écriture, car seuls les accès en écriture usent les cellules mémoire pour la plupart des types de NVM. Certaines NVM, telles que la RAM ferroélectrique (FeRAM), sont également destructrices en lecture [18].

Cela signifie que chaque accès en lecture use également la cellule mémoire. Pour la FeRAM, la raison est que les accès en lecture écrasent la valeur actuelle de la cellule et doivent donc être rechargés ultérieurement [18]. Par conséquent, chaque accès en lecture entraîne un accès ultérieur automatique en écriture à la cellule. Le contrôleur de mémoire déclenche ce processus à chaque accès en lecture.

Par conséquent, les accès en lecture doivent être considérés avec le même impact que les accès en écriture lors du wear-leveling si de telles mémoires destructives en lecture sont utilisées. Bien que cela n'implique pas de différence significative au niveau matériel (en particulier le niveau d'usure basé sur le matériel), étant donné que le matériel peut simplement être étendu pour suivre les accès en lecture dans le cadre du niveau d'usure, il le fait au niveau logiciel. Si le nivellement de l'usure est réalisé dans le logiciel, le suivi et le comptage des accès en lecture diffèrent des accès en écriture.

Les accès en lecture et en écriture s'effectuent avec des sémantiques différentes au niveau logiciel, et en effet il existe diverses données « en lecture seule » dans la plupart des programmes. Ainsi, les différentes sémantiques doivent être prises en compte lors de la conception de solutions logicielles.

Dans cet article, nous étudions la conception du nivellement de l'usure géré par logiciel, où nous étudions la conception et l'utilisation d'approximations d'âge pour un nivellement de l'usure tenant compte du vieillissement en l'absence de matériel spécial. Par notre mécanisme géré par logiciel, nous désignons ici une solution qui n'est pas totalement indépendante du matériel sous-jacent et qui nécessite néanmoins un certain ensemble de fonctionnalités système.

Nous préférons envisager des solutions qui configurent les composants matériels couramment disponibles à partir du niveau logiciel et qui peuvent donc être mises en œuvre uniquement au niveau logiciel des systèmes les plus modernes. Plus précisément, notre solution nécessite une MMU et des compteurs de performances, que l'on retrouve dans de nombreux processeurs d'applications récents.

La solution ne propose cependant pas de modification du matériel susmentionné, mais le gère et le configure uniquement au niveau logiciel pour atteindre les objectifs de nivellement d'usure.

En général, une solution logicielle ne doit pas être plus avantageuse qu'une solution matérielle, mais plutôt offrir une solution de nivellement d'usure pour les systèmes dans lesquels le support matériel requis n'est pas implémenté, soit volontairement pour économiser de l'espace sur la puce, soit parce que le matériel du système est déjà configuré. .

Nous couvrons en outre l'influence destructrice des accès en lecture et en écriture au sein de notre méthode, de sorte que les NVM destructrices en lecture puissent également être ciblées. Tout d’abord, nous concevons un nivellement d’usure à gros grain tenant compte du vieillissement, où nous échantillonnons les accès en lecture et en écriture à la mémoire principale à l’aide de compteurs de performances et d’autorisations d’accès à la mémoire.

short term memory how to improve

Cela nous fournit une approximation statistique de la distribution des accès en lecture et en écriture. Nous introduisons cette approximation dans un algorithme de nivellement d'usure basé sur les pages de mémoire virtuelle, qui remappe les pages de mémoire physique derrière les pages de mémoire virtuelle en tenant compte du vieillissement.

De manière orthogonale, nous concevons en outre un nivellement d'usure à grain fin non sensible au vieillissement, qui résout les points chauds d'accès denses dans les pages de mémoire. Le segment de la pile d'applications est confronté à des points chauds intensifs d'accès denses en lecture et en écriture, tandis que le code de programme compilé (c'est-à-dire dans le segment de texte) n'est confronté qu'à des points chauds de lecture.

Ciblant cela, nous proposons un mécanisme qui déplace la pile et le segment de texte de manière circulaire avec de petits décalages à travers la mémoire physique tout en garantissant l'exécution correcte du programme. En combinaison avec le nivellement d'usure à gros grains précédent, nous obtenons une mémoire globale nivelée par usure, même en présence d'une mémoire principale destructrice de zone.

Nos nouvelles contributions comprennent les éléments suivants :

• Une approximation de lecture et d'écriture en ligne pour permettre un échange de pages grossier concernant les accès en lecture et écriture.

• Un nivellement d'usure fin pour le segment de pile afin d'éviter les points chauds d'écriture et de lecture. La pile est déplacée en rotation tandis que l'exactitude des pointeurs est maintenue.

• Un nivellement d'usure fin pour le segment de texte afin d'éviter les points chauds de lecture. Cette approche déplace le segment de texte par rotation pour répartir les points chauds de lecture sur une zone de mémoire plus grande.

2 TRAVAUX CONNEXES

Au cours des dernières décennies, plusieurs approches de nivellement de l’usure en mémoire pour NVM ont été proposées. Ces approches peuvent être classées selon différents critères.

Premièrement, il existe des approches tenant compte du vieillissement [1, 2, 4-6, 11, 15, 17, 20, 24], qui prennent en compte l'âge actuel des cellules pour appliquer le nivellement de l'usure. En revanche, les approches randomisées [5, 19, 24] appliquent le nivellement de l'usure de manière circulaire ou aléatoire.

Les deux approches sont souvent combinées pour obtenir un nivellement aléatoire de l'usure sur des granularités fines à l'intérieur des blocs de mémoire, tandis qu'une approche tenant compte du vieillissement est utilisée pour cibler ces blocs de mémoire à granularité grossière.

La granularité varie également de bits simples [3, 23] à des lignes de cache [19, 24] pour des approches à granularité fine des pages de mémoire [1, 2, 5, 6, 20] ou même à des segments de mémoire plus grands [22, 24] pour des approches grossières. -approches granulaires. Certaines approches ne sont pas basées sur le remappage du contenu de la mémoire physique via une couche d'abstraction mais s'intègrent au processus d'allocation de mémoire du système d'exploitation pour appliquer un nivellement d'usure à l'allocateur de mémoire [1, 15, 20].

Li et coll. [15] proposent également d'utiliser une partie de mémoire allouée, chaque fois qu'une fonction est appelée, pour la mémoire de la pile de la fonction afin d'évaluer le niveau d'usure de la région de la pile.

2.1 Nivellement de l'usure tenant compte du vieillissement

Gogte et coll. [6] proposent une approche logicielle uniquement de nivellement de l'usure à gros grain en utilisant une approximation échantillonnée de la distribution d'écriture. Ils utilisent des capacités de débogage avancées, telles que l'échantillonnage basé sur les événements du processeur Intel (PEBS), qui leur permet d'échantillonner les demandes d'écriture du processeur. Ces capacités de débogage, cependant, sont rarement disponibles dans les systèmes embarqués et le matériel aux ressources limitées.

Toutes les autres approches sensibles au vieillissement mentionnées s'appuient sur les informations actuelles de nombre d'écritures de la mémoire. La plupart des approches introduisent du matériel spécialisé dans le contrôleur de mémoire pour collecter les informations sur le nombre d'écritures, ce qui n'est pas disponible dans les systèmes couramment disponibles et peut être difficile à réaliser.

Dong et coll. [4] utilisent une trace mémoire enregistrée hors ligne pour estimer la distribution d'écriture, ce qui limite l'approche à un sous-ensemble d'applications bien connues uniquement.

2.2 Lire le niveau d'usure

À notre connaissance, il n’existe pas d’algorithme dédié au nivellement de l’usure en lecture dans les NVM destructives en lecture. Cependant, les approches matérielles qui ne tiennent pas compte du vieillissement ou qui décident directement en fonction de l'usure de chaque cellule sont compatibles par défaut avec les mémoires destructives en lecture.

Si l'usure est estimée à partir du nombre d'écritures, elle pourrait également être estimée à partir du nombre de lectures et d'écritures combinées. Cela implique que les algorithmes d'interaction matériel-logiciel peuvent obtenir une estimation précise de l'usure en étendant le matériel pour compter les accès en lecture.

Tant que des mécanismes génériques (par exemple, le remappage des pages de mémoire virtuelle) sont utilisés [1, 2], les modifications apportées aux algorithmes sont minimes. En revanche, lorsque des mécanismes spécifiques (par exemple, l'allocation de tas ou l'allocation de pile) sont utilisés pour le nivellement d'usure [14, 15, 20], le nivellement d'usure en lecture ne peut pas être intégré facilement. Ainsi, un autre mécanisme spécial pour le nivellement de l'usure en lecture est requis dans ces cas.

ways to improve memory

De plus, pour les algorithmes livrés avec leur approximation d'écriture [6, 9, 12], une approximation de lecture spécialisée doit être ajoutée. Au meilleur de nos connaissances, il s'agit du premier travail à proposer une mémoire gérée par logiciel pour l'accès en lecture et en écriture. approximation qui ne repose pas sur des capacités de débogage spéciales.

De plus, des algorithmes spécifiques sont fournis, qui fonctionnent sur des données spécifiques à l'application (pile et texte), l'algorithme pour le texte étant dédié aux accès en lecture uniquement.

3 SYSTÈME CIBLE

Dans cette section, nous définissons d'abord la configuration cible typique de nos méthodes proposées. Bien que nous ne limitions pas nos méthodes à des types spécifiques de NVM, nous considérons certaines propriétés concernant l'usure. Nous supposons que toute modification cellulaire use également la cellule.

Nous ne supposons pas non plus l'écriture itérative, et donc le nombre d'accès à la mémoire correspond linéairement à la durée de vie de la mémoire. Dans la méthode proposée, nous ciblons les NVM destructrices en écriture et en lecture en implémentant un module complémentaire pour les NVM destructrices en lecture.

Bien que la propriété destructive en lecture ne se retrouve pas uniquement dans un seul type de NVM, la FeRAM est un exemple frappant d'une telle NVM. Cela n'implique cependant pas que notre méthode se limite à la FeRAM ; il pourrait également être appliqué sur une NVM non destructive en lecture, par exemple, en n'activant pas le nivellement d'usure en lecture.

La propriété destructive en lecture de la FeRAM provient du fait que la procédure de lecture (c'est-à-dire la détection d'une valeur de cellule) écrase la cellule [13, 18]. Pendant l'opération de lecture, un champ électrique est appliqué à la cellule FeRAM et les charges transférées sont mesurées, ce qui polarise la cellule. Pour conserver l'état d'origine de la cellule après la lecture, l'ancienne valeur doit être réécrite dans la cellule.

Cet accès en écriture ultérieur nécessaire rend la FeRAM destructrice en lecture. En tant que système cible, nous considérons les systèmes embarqués dans des environnements aux ressources limitées, qui doivent accomplir des tâches complexes et donc également exécuter des logiciels complexes.

Ce type de système peut être trouvé dans les contrôleurs automobiles ou dans les applications aérospatiales. Les équiper de NVM est souhaitable pour augmenter la capacité mémoire à faible coût tout en conservant une faible consommation d'énergie. Dans ce qui suit, nous définissons notre système cible concernant (1) la hiérarchie du cache et (2) l'architecture générale de la mémoire.

memory enhancement


For more information:1950477648nn@gmail.com

Vous pourriez aussi aimer