Contrôleur de mémoire flash - Flash memory controller

Clé USB Lexar 8 Go - Silicon Motion SM3253L - Contrôleur flash USB 2.0 monocanal.

Un contrôleur de mémoire flash (ou contrôleur flash ) gère les données stockées sur la mémoire flash et communique avec un ordinateur ou un appareil électronique . Les contrôleurs de mémoire Flash peuvent être conçus pour fonctionner en faible cycle de service des environnements tels que les cartes SD , CompactFlash cartes ou d' autres similaires médias pour une utilisation dans les appareils photo numériques , PDA , téléphones mobiles , etc. lecteurs flash USB utilisent des contrôleurs de mémoire flash conçus pour communiquer avec personnel ordinateurs via le port USB à faible cycle de service. Les contrôleurs Flash peuvent également être conçus pour des environnements à cycle de service plus élevé, tels que les disques SSD utilisés comme stockage de données pour les systèmes d'ordinateurs portables , jusqu'aux baies de stockage d' entreprise critiques .

La configuration initiale

Après la fabrication initiale d'un périphérique de stockage flash, le contrôleur flash est d'abord utilisé pour formater la mémoire flash. Cela garantit que le périphérique fonctionne correctement, il mappe les cellules de mémoire flash défectueuses et alloue des cellules de rechange à remplacer par de futures cellules défaillantes. Une partie des cellules de rechange est également utilisée pour contenir le micrologiciel qui fait fonctionner le contrôleur et d'autres fonctions spéciales pour un périphérique de stockage particulier. Une structure de répertoires est créée pour permettre au contrôleur de convertir les demandes de secteurs logiques en emplacements physiques sur les puces de mémoire flash réelles.

Lire, écrire et effacer

Lorsque le système ou le périphérique a besoin de lire ou d'écrire des données dans la mémoire flash, il communique avec le contrôleur de mémoire flash. Les appareils plus simples comme les cartes SD et les clés USB ont généralement un petit nombre de puces de mémoire flash connectées simultanément. Les opérations sont limitées à la vitesse de la puce de mémoire flash individuelle. En revanche, un disque SSD haute performance aura jusqu'à 100 matrices ou plus organisées dans une matrice avec des chemins de communication parallèles pour permettre des vitesses plusieurs fois supérieures à celle d'une seule puce flash.

Nivellement d'usure et picking de blocs

La mémoire flash peut supporter un nombre limité de cycles d'effacement de programme. Si un bloc de mémoire flash particulier était programmé et effacé de façon répétée sans écrire dans aucun autre bloc, le bloc s'userait avant tous les autres blocs, mettant ainsi fin prématurément à la durée de vie du dispositif de stockage. Pour cette raison, les contrôleurs flash utilisent une technique appelée nivellement d'usure pour répartir les écritures aussi uniformément que possible sur tous les blocs flash du SSD. Dans un scénario parfait, cela permettrait à chaque bloc d'être écrit à sa durée de vie maximale afin qu'ils échouent tous en même temps.

Couche de traduction Flash (FTL) et cartographie

Habituellement, les contrôleurs de mémoire flash incluent également la «couche de traduction flash» (FTL), une couche sous le système de fichiers qui mappe les adresses de blocs logiques (LBA) du côté hôte ou du système de fichiers à l'adresse physique de la mémoire flash (logique à physique cartographie). Les LBA font référence à des numéros de secteur et à une unité de mappage de 512 octets. Tous les LBA qui représentent la taille logique visible et gérée par le système de fichiers sont mappés à un emplacement physique (ID de bloc, ID de page et ID de secteur) du Flash. Dans le cadre du nivellement de l' usure et d'autres algorithmes de gestion du flash (mauvaise gestion des blocs, gestion des perturbations de lecture, gestion sûre du flash, etc.), l'emplacement physique d'un LBA peut changer fréquemment de manière dynamique. Les unités de mappage d'un FTL peuvent différer de sorte que les LBA sont mappés basés sur des blocs, des pages ou même des sous-pages. Selon le modèle d'utilisation, une granularité de mappage plus fine peut réduire considérablement l'usure du flash et maximiser l'endurance d'un support de stockage Flash.

Comme les métadonnées FTL occupent leur propre espace flash, elles ont également besoin d'une protection en cas de coupure de courant. De plus, il est possible que la table de mappage s'use avant que d'autres parties de la mémoire flash ne le soient, mettant ainsi prématurément fin à la durée de vie d'un périphérique de stockage. Ceci est généralement évité dans les appareils d'entreprise en allouant un espace surdimensionné pour les pièces de rechange, bien que des formes de stockage plus durables comme la MRAM aient également été proposées pour FTL.

Collecte des ordures

Une fois que chaque bloc d'un périphérique de stockage à semi-conducteurs a été écrit une fois, le contrôleur flash devra revenir à certains des blocs initiaux qui n'ont plus de données actuelles (également appelés blocs périmés). Les données de ces blocs ont été remplacées par des blocs nouvellement écrits et elles attendent maintenant d'être effacées pour que de nouvelles données puissent y être écrites. Il s'agit d'un processus appelé garbage collection (GC). Tous les disques SSD, cartes CF et autres périphériques de stockage flash incluront un certain niveau de récupération de place. La vitesse à laquelle un contrôleur de flash fera cela peut varier.

Les références