Avant d’opter pour un système de stockage 100 % flash, il faut connaître quelques attributs fondamentaux de ce type de mémoire. Nous partirons du principe que les avantages de la mémoire flash sont connus, les performances et l’efficacité étant généralement mises en avant. Toutefois, les systèmes flash ne sont pas des disques mécaniques et doivent être traités différemment pour être vraiment fiables et abordables.
- La mémoire flash peut s’user
La mémoire flash s’appuie sur un semi-conducteur non volatile, conçu à l’origine pour les APN. Les cellules flash s’usent légèrement à chaque opération de programmation/effacement, entraînant des problèmes de fiabilité dans le cas des applications professionnelles à forte intensité d’E/S.
La durée de vie d’une mémoire flash est exprimée en nombre de cycles de programmation/effacement (PE). L’analogie de la feuille de papier permet de mieux comprendre comment s’use une mémoire flash. Si l’on utilise une gomme 1 000 fois au même emplacement d’une feuille de papier, il y a fort à parier qu’elle finira par se déchirer.
Il existe des moyens de réduire et même de neutraliser les limites PE, notamment par une opération « d’over-provisioning » et par l’optimisation des écritures. Ces points sont approfondis un peu plus loin.
Le tableau suivant montre que le coût par Go est généralement proportionnel au nombre de cycles PE pour lequel la mémoire flash est prévue.
- Variantes de la mémoire flash
Si les cellules flash sont fondamentalement identiques, elles peuvent différer notablement par leur fabrication, leurs performances et d’autres caractéristiques. Cela se répercute clairement sur le bon fonctionnement, le coût, les performances et la fiabilité du système qui en est équipé.
- SLC (single-level cell) : considéré à un certain moment comme le seul type de mémoire flash adapté au stockage d’entreprise, ce format enregistre un bit par cellule. Il offre donc une fiabilité élevée, mais son coût l’est tout autant. Les systèmes SLC ne sont plus fabriqués, notamment en raison du succès des modèles 100 % flash, qui ont permis d’augmenter sensiblement la fiabilité des formats eMLC et cMLC.
- eMLC (enterprise multi-level cell) : le format MLC permet d’augmenter la densité de stockage et de réduire le coût par Go en stockant deux bits par cellule. Le format eMLC est un type de MLC qui augmente le nombre de cycles PE en réservant une partie importante de l’espace total d’adressage de la mémoire flash à l’« over-provisioning » (OP), un certain pourcentage (généralement entre 28 % et 50 %) de la mémoire physique totale étant réservé au remplacement des cellules usées. La mémoire flash eMLC inclut souvent un micrologiciel de contrôle évolué pour l’optimisation des appareils, notamment la collecte des déchets (GC).
- cMLC (consumer multi-level cell) : le format MLC permet d’augmenter la densité de stockage et de réduire le coût par Go en stockant deux bits par cellule. Le format cMLC est le type de MLC utilisé dans la grande majorité des appareils grand public et, depuis peu, dans les baies de stockage d’entreprise. De toutes les mémoires flash actuellement fabriquées, c’est la mémoire cMLC qui offre le volume le plus important. Une faible quantité de mémoire est réservée à l’OP (7 % de l’espace d’adressage) et le micrologiciel de contrôle offre des fonctionnalités limitées.
- TLC (triple-level cell) : dernière innovation en date dans le domaine des mémoires flash, le format TLC permet de stocker trois bits par cellule et d’apporter une réponse plus adaptée aux applications gourmandes en capacité de stockage. Cette architecture est davantage exposée aux erreurs de bit que la technologie MLC en raison de l’étroitesse de la bande de lecture de la valeur des bits. Par ailleurs, le format TLC prend en charge des centaines de cycles d’écriture, il risque donc de s’user plus vite que les mémoires MLC.
- Mémoires flash et disques durs : des défaillances de nature différente
Pour les mémoires flash comme pour les disques durs, les taux de défaillance augmentent avec le temps. En revanche, les raisons et les symptômes de ces défaillances sont très différents. Si l’on relie la notion d’usure de la mémoire flash au taux d’erreur de bit, on constate que les défaillances de la mémoire flash diffèrent de celles d’un disque dur.
- Les défaillances des disques durs sont mécaniques et sont dues aux vibrations, aux surtensions et sous-tensions, et à une température excessive. Les erreurs de bit sont généralement adjacentes sur le support, comme sur un disque vinyle rayé.
- Sur une mémoire flash, les erreurs de bit sont dues à l’usure (cycles PE). Le support finit tout simplement par s’user au fil du temps. L’accès se dégrade peu à peu. Dans un premier temps, les données sont disponibles en lecture seule, puis l’accès devient impossible.
En outre, le taux d’erreurs de bit irrécupérables (UBER) sur les disques durs par rapport au nombre d’opérations d’écriture reste relativement constant. Dans le cas de la mémoire flash, il augmente de manière exponentielle avec le volume de données écrites.
Pendant un certain temps, la solution flash affiche un taux d’erreurs de bit beaucoup plus faible, mais qui augmente ensuite considérablement pour rejoindre celui des disques durs. Cet écart fondamental implique que des mécanismes de correction spéciaux doivent être appliqués à la mémoire flash, mécanismes inadéquats pour un disque dur.
- L’écriture est coûteuse, mais la lecture, gratuite
À la différence d’un disque dur, les opérations de lecture et d’écriture sur la mémoire flash sont très asymétriques ; il est beaucoup plus long d’effacer et d’écrire une cellule flash que de la lire. Ainsi, lors de la conception d’un système reposant sur la technologie flash, cette asymétrie est déterminante pour obtenir à coup sûr des performances prévisibles : s’il n’y a pas lieu de se préoccuper du tout de la lecture, la fréquence des opérations d’écriture doit être limitée le plus possible.