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).
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 disqueLes 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?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!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) |
Publicités - Reklame