Solid State Disk
Fonctionnement interne
SSD
Root » Serveurs » Electro-ménager » Ordinateurs » Disques durs » SSD » Fonctionnement interne

Les disques durs classiques ont une organisation standardisée: des cylindres, des têtes et des secteurs (CHS: Cylinder-head-sector). Chaque secteur (la plus petite unité de stockage) contient 512 bytes (maintenant on est passé à 4096 bytes).

Les disques SSD ont également une structure interne complexe qui tient compte des particularités de fonctionnement de la mémoire flash.

-

-

Organisation des données

Les mémoires SSD travaillent avec des pages de 4kB, qui est la plus petite unité accessible. Les pages sont groupées sous forme de blocs (un bloc contient par exemple 512 pages).

L'ordinateur peut lire une page ou écrire une page vierge (programmer la page). Modifier une page n'est pas possible, il faut d'abord effacer la page. L'effacement d'une page individuelle n'est techniquement pas possible, il faut effacer tout le bloc et réécrire chaque page. Quand une page doit être modifiée, on utilise un nouvel emplacement au lieu d'effacer tout le bloc. Au bout de quelques opérations, l'emplacement effectif des pages ne correspond plus à ce que l'ordinateur croit.

Les SSD utilisent un algoritme d'égalisation de l'usure (wear levelling) en répartissant les opérations d'écriture sur toutes les pages.

L'égalisation de l'usure est une conséquence automatique du système utilisé pour écrire les données. Il faut éviter d'avoir à effacer des blocs, on va donc chaque fois écrire une page au premier emplacement vierge. Le “premier emplacement vierge” se déplace donc du début à la fin de la mémoire. Quand il n'y a plus de pages vierges, il faut effacer un bloc. On effacera généralement le bloc qui contient le moins de pages actives pour éviter d'avoir à réécrire son contenu. Effacer un bloc qui ne contient que peu de pages actives "rapporte" plus de page utilisables.

Ces opérations d'effacement sont effectuées sans intervention du système central: le système d'exploitation croit que les données sont toujours à la même place, alors qu'elles sont déplacées à chaque opération d'écriture. C'est à la fois un avantage (les SSD peuvent être utilisés avec des systèmes d'exploitation qui ne sont pas au courant de l'existence des SSD) et un inconvénient (ces systèmes d'exploitation utilisent mal les possibilités des SSD).


La plupart des SSD sont au format 2.5 ich.
On utilise un boitier en aluminium brossé noir pour essayer de faire passer le prix plus élevé.
Les disques SSD diffèrent par le controlleur et le firmware utilisé. Dans certains cas, le firmware va libérer automatiquement un ou plusieurs blocs dès que le nombre de pages disponibles devient trop faible. Cela évite que le système ne tombe sans pages libres et doive attendre qu'un bloc soit effacé (deadlock). Effacer un bloc dure souvent plus d'une seconde et pendant ce temps le disque n'est plus accessible.

Le deadlock se remarque quand on utilise un SSD de la première génération: l'ordinateur est très rapide, pour brusquement se bloquer pendant quelques secondes. Cela ne se produit pas au début (puisque la plupart des pages sont vierges), mais au bout de plusieurs démarrages. Le deadlock se produit alors de plus en plus souvent.

Ce deadlock ne se remarque qu'avec des systèmes d'exploitation qui écrivent beaucoup de données vers le disque dur (Vista et XP). Les traitements batch (transformation d'une série de photos avec stockage intermédiaire) produit également un deadlock.

Ralentissement à cause du remplissage du disque

Les prestations d'un disque dur classique s'en ressentent quand le disque dur est pratiquement rempli. Le système d'exploitation qui gère les fichiers ne trouve plus d'emplacements consécutifs et doit placer les fichiers là où il y a encore des "trous" dans l'occupation du disque. La lecture et l'écriture d'un fichier fragmenté est nettement plus lente que la même opération sur un fichier en une seule pièce, c'est pour cela que la plupart des systèmes d'exploitation sont équipés d'un utilitaire pour défragmenter les fichiers.

Les prestations d'un SSD reculent encore plus, parce qu'il y a moins de pages vierges. Effacer un bloc rapporte de moins en moins, parce que chaque bloc contient de plus en plus de pages actives. Il faut donc de plus en plus d'opérations d'effacement.

Un SSD de capacité double est bien avantageux, car il contient le double de pages. Si les blocs sont remplis de la même manière aléatoires, on aura donc un gain plus important de pages vierges à l'effacement d'un bloc. Mais au lieu d'utiliser un SSD de capacité double, on peut limiter les opérations d'écriture: éviter que le système d'exploitation ne remplisse des logs (inutiles), éviter de placer le fichier pagefile et les fichiers temporaires sur un SSD,... En général, plus le système d'exploitation est rudimentaire (par exemple windows 98) et mieux il se comporte envers les SSD.

Défragmenter?

La plupart des fichiers tombent en lambeaux au fur et à mesure de l'utilisation du disque. Cela est surtout le cas pour les fichiers répertoires qui s'agrandissent quand on ajoute des fichiers. Les différents morceaux d'un fichier se retrouvent un peu partout sur le disque dur, ce qui réduit la vitesse d'accès. La tête doit non seulement sauter d'une piste à une autre (effet de "trashing"), mais doit attendre que les données correctes passent sous la tête. Il est donc important de défragmenter régulièrement le disque dur pour que les fichiers forment un tout.

Il y a aussi de la fragmentation avec les disques SSD. Il y a d'abord la fragmentation au niveau des fichiers, tout comme les disques durs classiques. Mais il y a de plus une fragmentation interne, chaque opération d'écriture est en effet effectuée sur une page différente. Il n'y a aucune corrélation entre l'adresse d'un bloc de données (comme le voit le système d'exploitation) et l'emplacement effectif au niveau de la mémoire flash. La fragmentation interne est présente, même si les données sont écrites linéairement les unes après les autres.

Défragmenter un disque SSD n'a aucun sens, car il n'y a pas de concordance entre l'emplacement logique (ce que le système d'exploitation croit être l'adresse des données) et leur emplacement effetif. Windows 7 (qui peut détecter la présence d'un disque SSD) va refuser de défragmenter un tel disque.

FAT-32 à la rescousse!

Une des caractéristiques du système d'organisation FAT-32 est sa structure assez simple: une table d'allocation, un directory (le répertoire) et le fichier. Il ne faut modifier que ces trois éléments quand on écrit un nouveau fichier. L'écriture de fichiers dans un volume formaté FAT est plus rapide et ne produit pas de "write amplification" (génération de nombreuses opérations d'écriture auxiliaires pour stocker un seul fichier)

Le format NTFS est bien plus compliqué. Les fichiers disposent de nombreuses fonctionalités, qui même si elles ne sont pas utilisées demandent une opération d'écriture (meta-data, mais aussi droits d'accès aux fichiers, date de modification, etc)

Links to relevant pages - Liens vers d'autres pages au contenu similaire - Links naar gelijkaardige pagina's