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"


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é.

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

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 :
- Windows 7 et Windows Server 2008 R2 (Oct 2009)
- Linux 2.6.33 (Fev 2010)
- OSX 10.6.6 (Fev 2011)
