L'importance du contrôleur dans les systèmes de stockage NAND Flash

23rd October 2019
Source: Hyperstone
Posted By : Victoria Chercasova
L'importance du contrôleur dans les systèmes de stockage NAND Flash

Les disques durs SSD basés sur la mémoire NAND Flash remplacent les disques durs HDD dans de nombreuses applications, en particulier pour les appareils portables et grand public. Ils s'imposent également en entreprise en raison de leurs performances élevées et dans les applications industrielles en raison de leur robustesse. Le contrôleur Flash joue un rôle vital dans le système de mémoire, en fournissant l'interface physique entre l'hôte et la mémoire Flash, et en gérant de manière efficace celle-ci afin defournir les niveaux de fiabilité et de performance requis.

Architecture de contrôleur

La figure 1 montre un schéma fonctionnel simple d'un contrôleur Flash typique. Il est composées de trois parties principales: une interface avec la mémoire NAND Flash, une avec le système hôte et le processeur central qui exécute toutes les fonctions de gestion. La ROM ne fournit que le code bootstrap initial ; le firmware du contrôleur est stocké dans la mémoire Flash, ce qui facilite la mise à jour. Le choix du processeur est un facteur clé pour déterminer les performances, les caractéristiques et la consommation d'énergie du contrôleur.

Les interfaces hôte et Flash comprennent des zones tampons pour les données lues et écrites dans la mémoire Flash. Ceci est nécessaire en raison des vitesses et des tailles de données différentes utilisées par l'hôte et la Flash, et parce que les données de l'hôte peuvent avoir besoin d'être réorganisées avant d'être écrites. Le contrôleur doit être capable d'entrelacer de manière transparente les accès à plusieurs mémoires Flash, afin d'atteindre les vitesses de lecture et d'écriture requises.

Il y a un certain nombre de caractéristiques de la mémoire Flash que le contrôleur doit gérer afin d'obtenir les performances, la fiabilité et la durée de vie requises.

Traduction et cartographie d'adresses

L'hôte écrira dans la mémoire Flash en paquets, généralement en fonction de la taille du secteur du système de fichiers et en utilisant des "adresses de blocs logiques". Le contrôleur doit gérer le transfert de ces données vers les pages et les blocs de la mémoire Flash, et garder la trace de la correspondance entre les adresses logiques de l'hôte et les adresses physiques de la Flash, comme le montre la Figure 2. Pour des raisons de performance, les informations cartographiques seront conservées dans la RAM mais doivent être sauvegardées dans la mémoire Flash pour qu'elles ne soient pas perdues lorsque l'alimentation est coupée. Le type de cartographie et les méthodes de mise à jour utilisées détermineront les performances et la robustesse, par exemple en cas de panne de courant inattendue.

ECC

Comme avec tous les dispositifs de mémoire, il peut y avoir des erreurs lorsque les données sont lues. Il peut s'agir d'erreurs aléatoires induites par le rayonnement, de défaillances temporaires causées par la perturbation de la valeur stockée lorsque des cellules voisines sont lues ou programmées, ou de défaillances dans la programmation des cellules. Avec la mémoire Flash, ces erreurs peuvent devenir plus fréquentes avec le temps en raison des cycles de programme/effacement limités des cellules Flash. Le contrôleur utilise des codes de correction d'erreur (ECC) pour détecter et corriger les erreurs. Cela signifie écrire des bits supplémentaires contenant les ECCs lorsque les données sont écrites dans la Flash. Pour vérifier la présence d'erreurs, les ECC sont recalculés lors de la lecture des données et comparés à la valeur enregistrée. En règle générale, cela permet de corriger les erreurs sur un seul bit et de détecter les erreurs sur plusieurs bits. Des échecs répétés peuvent indiquer un mauvais bloc. Le contrôleur doit alors garder une trace des blocs défectueux afin qu'ils ne soient pas réutilisés.

Une implémentation ECC de haute qualité est donc un élément vital pour assurer l'intégrité des données dans le stockage de mémoire Flash. Il existe de nombreux types d’ECCqui peuvent être utilisés. Il s'agit de fonctions mathématiques très complexes qui fournissent des compromis différents en termes de vitesse et de qualité de correction, d'exigences matérielles et de performances de traitement. Le choix doit être adapté aux caractéristiques de la mémoire Flash, telles que le taux brut d'erreurs sur les bits et la distribution des erreurs. Un bon contrôleur doit tenir compte de ces facteurs et avoir une puissance de traitement suffisante pour implémenter le meilleur algorithme ECC.

Nivellement d’usure (Wear levelling en anglais)

Afin de minimiser les effets impactant l'endurance tel que les cycles limités de programmation/effacement des cellules Flash et de maximiser la durée de vie de la Flash, le contrôleur utilise un nivellement d'usure pour s'assurer que tous les blocs sont utilisés de manière uniforme. Cela signifie que le contrôleur doit sélectionner la page la moins utilisée d'un ensemble de blocs inutilisés lors de l'écriture des données. Encore une fois, il existe plusieurs méthodes qui peuvent être utilisées avec différents compromis pour l'efficacité et la performance du traitement.

Une caractéristique de la mémoire Flash est que les données ne peuvent être écrites que sur des pages effacées. Par conséquent, si des blocs de données plus petits qu'une page sont écrits au hasard, il se peut que les données actuellement dans la page doivent être déplacées vers une nouvelle page effacée. C'est l'une des principales causes de l'amplification de l'écriture - le fait qu'il y a plus d'écritures dans la mémoire Flash que ce que demande l'hôte. Le contrôleur doit s'assurer de l'intégrité des données lors de ce déplacement et mettre à jour la correspondance logique des adresses.

Comme les données sont écrites en pages mais ne peuvent être effacées que par blocs de plusieurs pages, le contrôleur devra procéder à la « collecte des déchets ». Cela signifie qu'il faut copier les données pour consolider les pages utilisées dans des blocs afin de libérer les blocs vides qui peuvent ensuite être effacés pour être réutilisés. Le calendrier et la fréquence de la collecte des déchets doivent être gérés de manière à minimiser l'effet sur les performances du système hôte. Il doit également s'assurer que les données ne sont pas perdues en cas de panne de courant.

Le contrôleur peut exploiter la surdimensionnement des blocs de la mémoire Flash afin que les blocs défectueux ne réduisent pas la capacité utilisable ou la durée de vie de la mémoire Flash. La disponibilité de blocs de rechange peut également améliorer la performance de la collecte des ordures et des écritures aléatoires.

Fiabilité des semi-conducteurs

Un facteur important pour la fiabilité du système est la qualité du contrôleur lui-même. Ceci peut être assuré, tout d'abord, par une conception rigoureuse et des processus de test pour s'assurer que le composant fonctionnera de manière fiable dans l'environnement spécifié. De plus, comme les semi-conducteurs sont sensibles aux rayonnements, le choix du boitier est important pour minimiser les sources de particules alpha. De même, les matériaux du boitier et des interconnexions doivent être résistants aux contraintes causées par les changements de température pendant l'utilisation. Les essais de production utilisent le vieillissement accéléré pour confirmer que les dispositifs répondront aux exigences en matière de taux de défaillance et de temps moyen entre défaillances (MTBF).

Suivie de santé (Health Monitoring)

Comme tout système de stockage, la mémoire Flash a une durée de vie limitée. Le contrôleur peut surveiller et enregistrer des données telles que le nombre total de cycles d'effacement et de programmation, le nombre de blocs défectueux et de blocs de réserve, et les taux d'erreur détectés par l'ECC. Celles-cipeuvent être utilisées pour fournir des informations au système hôte et à l'utilisateur sur l'état de santé de la mémoire Flash. Cela permet d'alerter rapidement en cas de panne potentielle afin que les appareils puissent être remplacés avant qu'il y ait un risque de perte de données. Pour les appareils SSD connectés via l'interface standard ATA, ces informations peuvent être transmises via le protocole SMART (Self-Monitoring, Analysis and Reporting Technology).

Conclusion

Le contrôleur est l'élément clé pour obtenir un stockage fiable basé sur la mémoire Flash en gérant les transferts de données et en " masquant " les défauts inhérents à la technologie de stockage sous-jacente. Un contrôleur de haute qualité est essentiel pour atteindre les performances, la fiabilité et la durée de vie requises pour le stockage de données au niveau du consommateur et de l'entreprise, mais surtout dans les systèmes industriels ou embarqués.


Connectez-vous afin de laisser un commentaire

Laissez un commentaire

Aucun commentaire




Sign up to view our publications

Sign up

Sign up to view our downloads

Sign up

SPS IPC Drives 2019
26th November 2019
Germany Nuremberg Messe
Vietnam International Defense & Security Exhibition 2020
4th March 2020
Vietnam National Convention Center, Hanoi