Accueil » Dossier » Les disques SSD, la fin des disques durs

Les disques SSD, la fin des disques durs

1 : Introduction 2 : La mémoire flash, comment ça fonctionne ? 4 : La durée de vie de la mémoire flash 5 : La gestion de l'usure 6 : Durée de vie : on est en train de tester 7 : La capacité en question 8 : La gestion du TRIM 9 : Les SSD et les optimisations 10 : Nuisances sonores et consommation 11 : Conclusion, le futur

La flash NAND et l’organisation en blocs

La mémoire flash NAND travaille avec un bus série, en accès séquentiel. Il est impossible d’accéder directement à un bit en particulier, contrairement à la mémoire NOR. Pour accéder à une information précise, on doit charger entièrement une partie des données dans une petite mémoire RAM, et ensuite lire ce que l’on veut dans cette mémoire.

Dans un système classique (une mémoire de 16 Go par exemple) on va travailler avec des blocs de 256 ou 512 ko. Le bloc est divisé en 64 ou 128 pages de 4 ko. En réalité, une « page » fait plus que 4 ko : on a 4 096 octets accessibles, et 128 octets qui servent de contrôle (gestion ECC, etc.). Les anciens systèmes (ou ceux de faible capacité) travaillent plutôt avec des pages de 2 ko avec des 64 octets de gestion et des blocs de 128 ko.

Image 1 : Les disques SSD, la fin des disques durs

Pour ce qui est de l’accès, on travaille en shadowing : le système accède en fait à une mémoire RAM qui contient les données demandées. On n’accède jamais directement aux données stockées dans la mémoire NAND. Le contrôleur s’occupe de gérer la copie de la page dans la mémoire en question et de la gestion des blocs.

Lecture sur une page, écriture sur un bloc

L’interface séquentielle oblige aussi à travailler avec la page comme unité minimale pour la lecture. Si on veut accéder à un bit précis, il faut charger entièrement une page. Cette particularité explique que la mémoire flash manque parfois d’efficacité avec les très petits fichiers : la lecture d’un fichier de la taille d’une page (généralement 4 ko) et d’un fichier plus petit prend le même temps.

Pour l’écriture, on travaille au niveau du bloc : la moindre écriture oblige à effacer entièrement le bloc de données avant d’écrire une nouvelle valeur. On a donc le même problème qu’en lecture, écrire 1 bit ou écrire 256 ko (taille typique d’un bloc) nécessite le même temps au final : on doit reprogrammer entièrement le bloc. En pratique, l’écriture de petits fichiers (sous les 256 ko) est donc assez lente avec de la mémoire flash.

Parlons un peu performances : du fait de son mode de fonctionnement (séquentiel), l’accès aux données n’est pas instantané. Il faut compter environ 25 µs pour un accès à une page (temps de copie dans la RAM interne). L’accès aux autres pages du bloc est plus rapide (environ 0,03 µs), alors que l’effacement d’un bloc prend environ 2 ms.

En comparaison, sur des mémoires de type NOR, la lecture aléatoire d’une donnée est de 12 µs (quel que soit l’emplacement de celle-ci) et l’effacement d’un bloc est très lent : 750 ms.

Dans les contrôleurs actuels, une mémoire cache permet de regrouper en partie les écritures pour éviter d’effacer des blocs en masse, même si le fonctionnement de cette mémoire cache varie en fonction des contrôleurs utilisés et que tous les contrôleurs n’utilisent pas cette technique.

Sommaire :

  1. Introduction
  2. La mémoire flash, comment ça fonctionne ?
  3. La flash NAND et l'organisation en blocs
  4. La durée de vie de la mémoire flash
  5. La gestion de l'usure
  6. Durée de vie : on est en train de tester
  7. La capacité en question
  8. La gestion du TRIM
  9. Les SSD et les optimisations
  10. Nuisances sonores et consommation
  11. Conclusion, le futur