J'ai toujours pensé qu'il était plus facile de prendre une décision quand les options étaient clairement définies. En choisissant noir ou blanc, vrai ou faux, il est possible de prendre une décision et de ne jamais la regretter. En revanche, je trouve les décisions nécessitant de choisir entre le noir, le blanc et l'une des nombreuses nuances de gris, très stressantes. J'étais content d'obéir à ma logique binaire jusqu'au jour où la mémoire vive ferromagnétique (FRAM) est apparue sur le marché et où j'ai été obligé d'accepter l'une de ces "nuances de gris".
Jusqu'à présent, les seuls choix en matière de mémorisation des données pour les systèmes intégrés étaient la mémoire vive statique (SRAM) et la mémoire Flash. Ceux d'entre-vous qui ont travaillé à l'époque où la FRAM n'existait pas encore comprennent les difficultés que j'ai rencontré pour trouver un compromis entre les problèmes d'intégrité des données de la SRAM et la capacité d'écriture relativement faible de la mémoire Flash. Quant à ceux qui n'en ont pas eu l'occasion, laissez-moi vous expliquer...
Comparons la FRAM à la SRAM et à la mémoire FLASH
J'ai découvert la FRAM en 2005 et j'ai été impressionné par ses caractéristiques. En raison du coût de l'implémentation élevé, j'ai dû attendre 3 ans avant de pouvoir utiliser la FRAM dans mes conceptions. Mais avant que je ne commence à en vanter les mérites, jetons un rapide coup d’œil à la SRAM et à la mémoire Flash, deux puces de mémoire populaires.
La SRAM est une forme de mémoire volatile. Cela signifie que les données stockées dans la mémoire sont effacées quand l'alimentation est coupée ou interrompue. Ce qui est bien avec la SRAM, c'est qu'elle possède un nombre de cycles d'écritures illimité, ce qui signifie qu'elle ne se dégrade pas au fur et à mesure de son utilisation.
Ne laissez pas vos données à la merci d'une batterie minuscule.
À l'autre extrémité du spectre se trouve la mémoire Flash, une mémoire non volatile. Elle est particulièrement utile pour le stockage de journaux de transactions devant rester intacts, y compris quand l'alimentation est interrompue. Le seul inconvénient à son utilisation est sa faible capacité de réécriture, limitée à des dizaines de milliers. Une fois cette limite atteinte, les réécritures supplémentaires ne seront pas enregistrées dans les cellules de mémoire correspondantes.
La FRAM est une puce de mémoire qui hérite des atouts de la SRAM ainsi que de ceux de la mémoire Flash. La FRAM est une mémoire non volatile possédant une capacité de réécriture extrêmement élevée. Elle supporte actuellement des milliards voire des billions de cycles d'écriture. Mieux encore, le coût de la FRAM a diminué de façon spectaculaire à mesure que son processus de fabrication a gagné en maturité. Comme on pouvait s'y attendre, cela a modifié la manière dont est conçue l'architecture de l'enregistrement de données dans les systèmes intégrés.
L'importance de l'enregistrement des données dans les systèmes intégrés
La fiabilité de l'enregistrement des données a toujours été incontournable dans les systèmes intégrés, quelle que soit son application. Les systèmes d'alarme incendie exigent par exemple que tous les événements soient correctement consignés en cas d'audit. De même, les systèmes de gestion de présence exigent des enregistrement précis, dans le contrôleur matériel, des déplacements des employés dans les locaux.
L'intégrité des données est l'élément le plus important après le fait de sonner l'alarme.
Bien que la plupart des concepteurs en électronique n'aient aucun problème pour mettre en œuvre une architecture fiable d'enregistrement des données, préserver l'intégrité des données en cas de coupure de courant est un défi communément rencontré, de même que de veiller à ce que la durée de vie des puces de mémoire soit allongée au maximum.
Comment la FRAM modifie les conceptions d'enregistrement de données dans les systèmes embarqués.
Un bon moyen de visualiser l'enregistrement des données consiste à imaginer les milliers de livres se trouvant dans la bibliothèque de votre université. Retrouver votre livre préféré d'Harry Potter ne prendra que quelques minutes si tout est correctement organisé. Cependant, si les étagères n'ont soudainement plus d'étiquettes ou si les livres sont mal rangés, préparez-vous à une recherche longue et fastidieuse. Dans les systèmes embarqués, des dizaines de milliers d'enregistrements sont stockés dans la mémoire et ceux-ci sont constamment extraits vers une base de données externe par des applications logicielles. Cela signifie que le microcontrôleur (MCU) lui-même doit être suffisamment intelligent pour garder la trace des données les plus anciennes et les plus récentes ainsi que pour limiter les problèmes liés à une mémoire pleine.
Il est simple d'enregistrer des données tant que vous ne perdez pas la trace des enregistrements
L'ancienne méthode relativement simple, consiste à stocker tous les journaux de transactions dans une SRAM à batterie de secours puis à affecter quelques indicateurs de données qui gardent la trace des éléments enregistrés ayant été extraits par le logiciel. La limite de cette approche est que l'intégrité des données dépend à 100 % de la batterie de secours. Cela signifie que vous devez croiser les doigts et espérer que votre batterie de secours fonctionne toujours si le système subit une coupure de courant ou une défaillance matérielle générale.
À l'inverse, les mémoires Flash éliminent la plupart des préoccupations liées à la conservation des données. Bien que les données de transactions puissent être stockées dans la mémoire Flash, les indicateurs de données doivent toujours être stockés dans la SRAM à batterie de secours. Dans le cas contraire, vous risquez d'endommager les cellules individuelles de mémoire possédant une faible capacité de réécriture. Les développeurs de firmwares peuvent mettre en œuvre un algorithme sophistiqué de gestion des données. Celui-ci permet de se passer d'indicateurs de données mais peut compliquer de façon excessive l'ensemble du système et introduire des bugs inutiles.
Quand la FRAM est devenue un composant électronique viable sur le plan commercial à la fin des années 2000, l'enregistrement des données est devenu simple. Les indicateurs de données pouvaient être sauvegardés dans la FRAM sans crainte d'une corruption liée à la perte de puissance ou d'une détérioration de la puce de mémoire. Depuis, la FRAM et la mémoire Flash jouent un rôle important dans les conceptions de mes systèmes embarqués incluant le suivi des commandes de surveillance des processus et les opérations d'enregistrement de plusieurs machines.
Cela veut-il dire que la FRAM va complètement remplacer la mémoire Flash et la SRAM ? Ça dépend. La FRAM est plus efficace dans les domaines dans lesquels la mémoire Flash et la SRAM rencontrent des difficultés. Sa capacité à conserver les données tout en garantissant un long cycle de vie fait d'elle le choix idéal pour les applications exigeant le stockage de configurations et de documents dynamiques. Cela dit, la mémoire Flash reste le meilleur choix quand il s'agit de stocker de larges transactions étant donné que sa capacité est largement supérieure à celle de la FRAM.
Quant à la SRAM, j'ai complètement cessé de l'utiliser dans mes conceptions de systèmes embarqués. Grâce à son coût de plus en plus faible et à sa non-volatilité, la FRAM, l'emporte sur les avantages apportés par le cycle d'écriture illimité de la SRAM. Je ferais cependant un exception pour les systèmes embarqués dans lesquels le microcontrôleur doit démarrer à partir d'une SRAM externe.
Vous concevez du matériel sensible aux données et vous vous demandez si les problèmes d'intégrité des données pourraient venir vous géner après avoir déployé des centaines d'unités sur le terrain ? Un logiciel professionnel tel que CircuitStudio d'Altium peut vous aider à vous lancer.
Vous avez des questions à propos de la FRAM ? N'hésitez pas à consulter nos équipes chez Altium.