L'endurance et la rétention de la mémoire flash embarquée

Une mémoire flash n'est pas éternelle. Deux grandeurs mesurent sa fiabilité, et elles sont indépendantes : l'endurance (combien de fois on peut l'effacer et la réécrire) et la rétention (combien de temps elle garde une donnée écrite). Les confondre conduit à des raisonnements faux ; les distinguer éclaire beaucoup de pannes.

LES GRANDES FAMILLES DE MÉMOIRE MÉMOIRE VOLATILEperd tout hors tension NON VOLATILEgarde sans courant RAM — mémoire de travail du calculateur ROM figée EPROM efface UV EEPROM efface élec., octet FLASH efface élec., par bloc Le programme + les cartographies vivent dans la FLASH · l'identité du véhicule dans l'EEPROM.
De la RAM à la flash : où vivent le programme et l'identité

L'endurance : un capital de cycles

Chaque cycle d'effacement-écriture use physiquement la cellule : les électrons piégés dans la grille flottante finissent par altérer l'isolant qui les retient. L'endurance se compte donc en cycles d'effacement, et elle diffère radicalement selon la mémoire :

Cet écart de plusieurs ordres de grandeur explique pourquoi le fondeur sépare les deux mémoires, comme le détaille PFlash et DFlash. Il justifie aussi une règle de conception : ce qui s'écrit souvent (adaptatifs, compteurs) ne va jamais dans la flash programme.

La rétention : la donnée garde-t-elle sa valeur ?

La rétention est la durée pendant laquelle une cellule conserve son état sans alimentation. Les mémoires automobiles visent typiquement une rétention spécifiée sur une vingtaine d'années, condition pour qu'un calculateur reste fiable sur toute la vie du véhicule. Mais cette durée n'est pas absolue : elle se dégrade avec le nombre de cycles déjà subis et surtout avec la température. Une cellule proche de sa limite d'endurance retient moins longtemps ; une cellule qui vit à haute température perd ses charges plus vite. C'est pourquoi les spécifications s'expriment toujours en couple durée–température.

Le rôle de la température

La flash d'un calculateur moteur vit dans un environnement rude : montée en température sous capot, cycles thermiques répétés. Les composants automobiles sont qualifiés pour une plage étendue — de −40 à +125 °C pour un microcontrôleur AURIX en boîtier — précisément parce que la chaleur accélère à la fois l'usure (endurance) et la fuite de charge (rétention). Un boîtier mal refroidi, une réparation qui laisse un point chaud, un composant vieillissant : autant de facteurs qui rapprochent la mémoire de ses limites. La reconnaissance physique des composants concernés est traitée dans reconnaître un boîtier de composant.

Comment l'usure se manifeste

Une cellule usée ne « tombe » pas d'un coup : elle devient d'abord lente à programmer, puis marginale, avant de refuser l'écriture. Les mémoires modernes anticipent cela de deux façons. D'une part, l'ECC corrige les premières erreurs de bit et signale les cellules qui commencent à dériver. D'autre part, l'émulation EEPROM répartit les écritures sur toute la zone (wear-leveling), pour ne pas fatiguer toujours les mêmes cellules — principe décrit dans l'EEPROM émulée. Sur une EEPROM série vieillissante, en revanche, une zone d'adaptatifs très sollicitée peut finir par se corrompre, ce qui se traduit par des valeurs aberrantes ou un défaut de mémoire interne.

Ce que cela change au quotidien

Pour le motoriste, ces notions ont des conséquences concrètes. Une flash n'est pas un support d'écriture illimité : multiplier sans raison les cycles de programmation d'un même calculateur n'est pas anodin, même si la marge reste large sur la PFlash. Un calculateur d'occasion très ancien peut présenter une mémoire proche de ses limites de rétention, d'où l'intérêt de vérifier la cohérence de ce qu'on lit. Et un défaut interne de mémoire, sur un calculateur âgé ou ayant subi un stress thermique, n'est pas toujours réparable par une simple réécriture : c'est parfois le composant lui-même qui a atteint sa fin de vie, comme le rappelle réparer un calculateur. Comprendre l'endurance et la rétention, c'est savoir distinguer une donnée corrompue par erreur d'une mémoire qui meurt de vieillesse.

Diagnostiquer une mémoire en fin de vie

Distinguer une donnée corrompue d'une mémoire usée oriente tout le diagnostic. Une donnée fausse mais isolée, sur un calculateur par ailleurs sain, se corrige en restaurant une sauvegarde d'origine. Une mémoire en fin de vie, elle, se signale autrement : erreurs de bit répétées, valeurs d'adaptatifs qui ne tiennent pas, code défaut de mémoire interne, comportement erratique qui revient après chaque effacement. La température accélère les deux phénomènes — la durée de rétention chute fortement quand la température de fonctionnement monte, et l'endurance se réduit d'autant que le composant a chauffé au fil des ans. Un calculateur ayant subi un dégât d'eau, une surchauffe ou un défaut d'alimentation prolongé est un candidat au vieillissement prématuré de sa mémoire. Pour le motoriste, la conséquence est une règle de prudence : archiver systématiquement l'original avant toute écriture, ne pas multiplier les cycles de programmation sans nécessité, et ne pas confondre un composant qui meurt avec un fichier qui aurait été mal écrit. La sauvegarde d'origine reste la seule assurance contre l'irréversible, d'autant qu'une puce en fin de vie peut refuser une réécriture censée la « réparer ».

Voir aussi PFlash et DFlash, l'ECC et l'intégrité mémoire et EPROM, EEPROM, Flash.


Sur ANP Engineering — file service de reprogrammation moteur pour professionnels : file service ECU, correction de checksum, calculateurs pris en charge, tarifs.

ANP Wiki
ANPFile Service · reprog en ligne
Chargement…