Les Solid State Drive

Le contrôleur

Les fonctions

Le contrôleur peut être considérer comme le "cerveau" du disque dur, en effet c'est lui qui gère le buffering, l'accès aux données, l'adressage de ceux-ci pour l'écriture etc.Il dispose donc de certaines fonctionnalités comme le cryptage, la correction erreur lors de l'écriture (ECC), le Bad Block Mapping ( listage des block HS), le Wear-Leveling (détaillé par la suite), la Garbage Collection (détaillé aussi par la suite).

Le Wear-leveling

Cette fonction permet d'égaliser l'usure des cellules, en répartissant les écritures sur l'ensemble des cellules, afin de prolonger la durée de vie du SSD. Il existe différents deux types de wear-leveling :le dynamic et le static.

Le dynamic wear leveling, enregistre les modifications sur des cellules libres et marque les cellules des anciennes données comme données invalides.

Le static wear leveling fonctionne de la même façon que le dynamic, mais il déplace aussi les données peu modifiées dans des cellules "usées"

Structure de la NAND Structure de la NAND

L'Over-provisionning

L'over-provisionning est une partie du stockage, réservé pour permettre au contrôleur d'utiliser ses fonctionnalitées comme le Wear-leveling, ou la garbage collection. Cette fonctionnalité est très utile lorsque le SSD est utilisé au maximum de ses capacités de stockage.

Le Garbage Collector

Le schéma ci-dessous décrit le fonctionnement d'un GC lors d'une modification de données, On écrit donc des données (Page A B C D), que l'on modifie par la suite, or comme énnoncé précedement, les données modifiées sont écrites dans des cellules libres et les anciennes pages sont marquées comme invalides. Pour récuperer l'espace occupé par ces donnnées invalides, le controleur à besoin de supprimer les données, or la suppression ne s'effectue que par block. Ainsi une action de garbage collection va être réalisée pour placer les données valide dans un autres block, afin que l'ancien block libéré.

Garbage Collector

Un problème se pose, lorsque l'on aborde la suppression de fichier, en effet certains OS ne signalent que les écritures au système de stockage. Le SSD n'aura donc connaissance de cette suppression que lorsque l'OS demandera une écriture sur les cellules du fichier supprimé, ce qui à termes pourrait poser des problèmes de performances

Garbage Collector without trim

La commande TRIM

Pour résoudre le problème évoqué ci-dessus, une commande a été rajoutée afin que l'OS puisse informer le SSD de cette supression. L'utilisation de cette commande est soumise au support de la chaine (OS, Contrôleur SATA, Contrôleur SSD), voici une liste des versions des principaux OS supportant le TRIM :

Garbage Collector with trim