Tout d'abord, commençons par comprendre ce qui est à l'origine de la dégradation des performances. Sans cela, beaucoup de gens proposeront des solutions inadéquates (comme je le vois déjà). Le nœud du problème réside dans le fait suivant, cité dans le document suivant Wikipedia . Souviens-toi de ça, c'est important :
Avec la mémoire flash NAND, les opérations de lecture et de programmation doivent être effectuées page par page, tandis que le déverrouillage et l'effacement doivent se faire par bloc.
Les SSD sont constitués de flash NAND, et la flash est constituée de "blocs". Chaque bloc contient de nombreuses "pages". Pour simplifier, imaginons que nous venons d'acheter un nouveau SSD qui contient un seul bloc de mémoire, et que ce bloc est composé de 4 pages vides.
Pour plus de clarté, je fais la différence entre les pages vides, les pages utilisées et les pages supprimées avec , 1 et X. La clé étant que il y a une différence entre chacun d'eux du point de vue des contrôleurs ! Ce n'est pas aussi simple que des 1 et des 0. Donc, pour commencer, les pages de notre disque frais ressemblent à ceci :
, , , , (tous vides)
Maintenant, nous allons écrire des données sur le disque, et elles finissent par être stockées dans cette première page, donc :
1, , ,
Ensuite, nous écrivons un peu plus de données, mais cette fois-ci suffisamment pour qu'elles nécessitent deux pages, et elles sont donc stockées dans les deuxième et troisième pages :
1, 1, 1,
Nous manquons d'espace ! Nous décidons que nous n'avons pas vraiment besoin des données initiales que nous avons écrites, alors supprimons-les pour faire de la place.. :
X, 1, 1,
Enfin, nous devons stocker un autre ensemble important de données, qui occupera les deux pages restantes. C'EST LÀ QUE SE PRODUIT LA BAISSE DE PERFORMANCE DANS LES ENTRAÎNEMENTS SANS GARNITURE !!! Passer de notre dernier état à celui-ci :
1, 1, 1, 1
...nécessite plus de travail que la plupart des gens ne le pensent. Encore une fois, cela est dû au fait que la flash ne peut effacer que par blocs, et non par pages, ce qui est précisément ce que demande la transition finale ci-dessus. La différence entre les SSD basés sur TRIM et ceux basés sur non-TRIM est la suivante quand les travaux suivants sont effectués !
Puisque nous devons utiliser une page vide et une page supprimée, le SSD doit d'abord lire le contenu de l'ensemble du bloc dans une mémoire externe, effacer le bloc original, modifier le contenu, puis réécrire ce contenu dans le bloc. . Ce n'est pas aussi simple qu'une "écriture", c'est devenu une "lecture-erreur-écriture". C'est un changement important, et le fait qu'il se produise alors que nous écrivons beaucoup de données est probablement le moment le plus inopportun pour qu'il se produise. Tout cela pourrait être évité si cette page "effacée" était récupérée à l'avance, ce qui est précisément le but de TRIM. Avec TRIM, le SSD récupère nos pages supprimées immédiatement après la suppression ou à un autre moment opportun que ses algorithmes TRIM jugent approprié. L'important, c'est qu'avec TRIM, cela ne se produit pas au milieu d'une écriture !
Sans TRIM, nous ne pouvons finalement pas éviter le scénario ci-dessus lorsque nous remplissons nos disques de données. Heureusement, certains SSD plus récents vont au-delà de TRIM et font effectivement la même chose que TRIM en arrière-plan au niveau matériel sans les commandes ATA nécessaires (certains appellent cela garbage collection). Mais pour ceux d'entre nous qui n'ont pas la chance de posséder l'un ou l'autre, il est important de savoir que L'écriture de zéros sur tout le disque n'est pas suffisante pour récupérer les performances d'origine !!!!!. L'écriture de tous les zéros sur le lecteur n'indique pas au contrôleur que la page de la mémoire flash est libre pour l'écriture. La seule façon de le faire sur un lecteur qui ne prend pas en charge TRIM est d'invoquer la commande d'effacement sécurisé ATA sur votre lecteur en utilisant un outil tel que HDDErase (via Wayback Machine) .
I croire Certains des premiers disques SSD ne prenaient en charge TRIM qu'en cas de suppression de partitions ou de commandes telles que "diskpart clean all" de Windows 7, et non en cas de suppression de fichiers individuels. C'est peut-être la raison pour laquelle un disque plus ancien semblait retrouver ses performances après l'exécution de cette commande. Cela semble un peu flou pour moi cependant ...
Une grande partie de mes connaissances sur les SSD et le matériel/les gadgets en général provient de anandtech.com . Je pensais qu'il avait un excellent article expliquant tout cela, mais je n'arrive pas à le trouver !