Bien que la mise en cache provoque une partie de cela, ce n'est pas le seul facteur. Si la mise en cache était le seul facteur, alors nous nous attendrions à ce que la vitesse d'écriture passe rapidement de plusieurs centaines de Mo / s à la vitesse d'écriture réelle du lecteur très rapidement, et y reste pour le reste de l'écriture. Cependant, ce n'est pas ce que j'ai observé lors de l'exécution de gros transferts vers et depuis le disque (par exemple, la gravure d'images de démarrage). Au lieu de cela, ce que j'observe, c'est que la vitesse diminue progressivement au cours de toute l'opération.
Ce ralentissement est dû à la rémanence des données sur la ou les puces flash utilisées pour stocker les données, nécessitant que certains des blocs soient écrits sur plusieurs fois.
À l'intérieur d'une puce flash, il y a un bloc de données qui peut être écrit. Lors de l'écriture, l'ordinateur ne peut faire que deux choses: il peut effacer un bloc entier, ou changer une partie (ou la totalité) des bits d'un bloc de 0 à 1.
Cependant, certains de ces blocs sont meilleurs que d'autres, en particulier dans les lecteurs flash de qualité inférieure, et en conséquence, lorsque vous y écrivez de nouvelles données, certains bits peuvent parfois revenir à 0 par eux-mêmes juste après avoir été écrits, et don ne change pas. Ainsi, lors de l'écriture dans un bloc, le système d'exploitation doit vérifier que toutes les données ont été écrites correctement, et si ce n'est pas le cas, il doit refaire le bloc en écrivant les mêmes données dans le même bloc deux ou trois fois. jusqu'à ce que les données collent.
Ainsi, lorsque votre ordinateur écrit un tas de données sur le lecteur flash, voici une explication (pas complètement précise, mais assez bonne) de la façon dont il le fait:
- Prenez le premier ensemble de blocs à écrire et écrivez-les tous.
- Relisez tous les blocs que nous venons d'écrire et faites une liste de ceux qui ne correspondent pas
- Écrivez le prochain ensemble de blocs, ainsi que ceux qui n'ont pas été écrits correctement la dernière fois.
- Répétez 2-3 jusqu'à ce que tous les blocs aient été écrits correctement.
Lorsque l'ordinateur écrit sur le lecteur, il signale la vitesse à laquelle il écrit des blocs sur le lecteur pour la première fois. Comme il devra également réécrire les blocs précédents en même temps, le débit total pouvant être utilisé pour les blocs vierges diminue à mesure que le nombre de réécritures qui doivent également se produire augmente. Ainsi, la vitesse d'écriture apparente diminue avec le temps.