La gestion de l'usure

Bien évidemment, les constructeurs se sont penchés sur ce problème de la durée de vie, et ils ont implémenté plusieurs techniques pour limiter l’usure de la mémoire NANDPrincipal type actuel de mémoire flash. La mémoire flash NAND repose sur une technologie mise au point par Toshiba à la fin des années 80. Elle a p..., c’est ce qu’on appelle le Wear Leveling.

La première technique, la plus simple, est d’utiliser un erase pool. Une partie de la mémoire est réservée, et inaccessible à l’utilisateur. Cette mémoire cachée peut être utilisée par le contrôleur pour remplacer des blocs défectueux sans altérer la capacité du support, et sans que l’utilisateur s’en rende compte. La quantité de mémoire réservée varie, entre 1 et 5 % selon le support et le type de mémoire (on a une plus grande réserve quand on utilise de la MLCMulti-Level Cell. Technologie qui permet d'obtenir des puces de mémoire flash NAND de capacité élevée. Dans une puce mémoire classique (Single-Leve...). Cette technique n’empêche pas réellement l’usure du support, mais ralentit son impact réel.

Le Dynamic Wear Leveling

Il existe d’autres techniques bien plus évoluées pour limiter l’usure du support. Passons rapidement sur la première technique, le Dynamic Wear Leveling, qui est rarement utilisée, car peu adaptée à un usage informatique. Schématiquement, le contrôleur va intercepter les écritures et les distribuer aléatoirement sur des blocs situés dans l’espace libre. Comme les écritures ne seront plus concentrées sur le même bloc physique, on ne risque pas de détruire un bloc en particulier si un programme écrit en permanence sur le même fichier. Le problème de cette technique est simple : si l’espace libre est trop faible, les écritures vont se faire fréquemment sur les mêmes blocs, qui vont s’user et donc devenir inutilisables. On considère que le Dynamic Wear Leveling perd de son efficacité dès que l’espace libre descend sous les 25 % et est inutile avec moins de 10 % d’espace libre.

Le Static Wear Leveling

La troisième technique, utilisée dans les SSDLes SSD (pour Solid State Drive, disque à semi-conducteurs) sont des dispositifs qui utilisent de la mémoire flash pour stocker des données. Se posent..., est bien plus complexe. Le contrôleur enregistre le nombre d’écritures sur chaque bloc, et la dernière date d’utilisation de celui-ci. Il est donc capable de déterminer la fréquence d’utilisation d’un bloc et son usure. Si on doit écrire une donnée, il va d’abord chercher le bloc qui a subi le moins de cycles. S’il est libre, le contrôleur l’utilise. Par contre, si le bloc contient des données, il va vérifier la dernière fois qu’il a été écrit et déterminer si c’est une donnée statique (pas d’écriture depuis x temps) ou bien dynamique (le bloc a été écrit récemment).

Si c’est une donnée statique, il va la déplacer vers un bloc usé et mettre la nouvelle donnée à sa place. Si c’est une donnée dynamique qui se trouve sur le bloc, il va en chercher un autre. L’intérêt de la technique consiste à placer les données qui ne sont pas souvent écrites sur des blocs usés et de placer les données souvent modifiées sur des blocs qui ont subi peu d’écriture. Cette technologie permet de garder une usure constante sur le support, et de ce fait d’augmenter la durée de vie globale.

Une explication en image

Voici deux graphiques qui montrent l’usure schématique d’un SSD après un usage simulé de quelques mois (le même nombre de cycles a été effectué dans les deux cas). Ces graphiques sont théoriques, mais se rapprochent assez de ce qui se passe en pratique pour être intéressants à analyser.

ssd usure

Ce graphique montre un SSD sans protection après un usage simulé de quelques mois. On remarque qu’un certain nombre de blocs ont été utilisés énormément et qu’une grande partie des blocs ont été peu écrits. Des pics d’usures sont présents, et peuvent potentiellement empêcher l’usage du support. C’est une estimation, car les constructeurs ne permettent pas de mesurer l’usure d’un support.

ssd usure

Sur ce graphique, on remarque que l’usure moyenne est un peu plus élevée, mais qu’il n’y a pas un seul pic d’usure. Comme on écrit souvent sur un disque, les données vont tourner sur tout le support, ce qui explique qu’on a une vague à la place d’une ligne droite. Si à un instant T, une donnée statique est sur le bloc le plus usé, à l’instant T+10, ce bloc peut devenir le moins usé, et donc les données sont en rotation sur l’entièreté du support. On a une moyenne d’utilisation faible, mais pas totalement homogène.

Conclusion sur la durée de vie

Au final, selon les constructeurs, avec les blocs de réserve et la technique du Static Wear Leveling, la durée de vie des SSD est supérieure à celle des disques durs. Avec la pire estimation (en écrivant en permanence à la vitesse maximale du support), le SSD de Samsung a une durée de vie de 4 ans environ et celui de Transcend de 2,6 ans. Mais ce sont des cas théoriques, en pratique on peut estimer la durée de vie minimale au double ou au triple de ces valeurs. Notons que la capacité augmente la durée de vie, étant donné qu’on dispose de plus de blocs pour distribuer les écritures.

De plus, la majorité des pannes sur les supports de stockage vient en général d’une défaillance mécanique, et les SSD sont dépourvus de pièces en mouvement, ce qui les protège évidemment de ce type de panne.


Annonces Google
Commentaires

turlupin en ptard 18/05/2007 09:14
turlupin en ptard
Clair et complet. J'aimerais avoir une paire de mains supplémentaires pour applaudir plus fort !

[:mavie] :bounce:

edit : pourquoi le nom de l'auteur n'est-il pas le même sur l'article et sur le forum ? :??:

re-edit : laisse béton, j'ai pigé. :sarcastic: [:patch] [:av68]
CinPoU 18/05/2007 09:42
CinPoU
Je suis d'accord pour preter les miennes!!
Un article de référence en la matière.
Merci!
christophe_d13 18/05/2007 10:10
christophe_d13
2 choses :
- Les disques durs écrivent eux aussi par bloc, mais ils sont tout petit (512 octets)
- Dommage qu'il n'est pas été possible de faire un test en RAID5 par exemple avec 4 disques 32Go (total de 96Go). Mais en extrapolant, on peut précalculer un débit de 150Mo/s.

A noter : Un système RAID utilise également des blocs assez gros, en moyenne 32Ko, mais souvent poussés à 128Ko selon les usages.
Dandu 18/05/2007 10:30
Dandu
Pour le RAID, c'est assez compliqué à mettre en oeuvre (contrôleur RAID ATA, trouver des SSD, tout ça).

Mais en RAID0 avec de la flash, on double bien les perfs.
GoO 18/05/2007 11:20
GoO
Tres bon article, néanmoins je "sature" sur une explication ^^

Djlauby a écrit :

L’effet Fowler-Nordheim implique qu’une partie des électrons qui passent entre les électrodes va se déplacer vers la grille flottante, à travers l’oxyde. Une fois la grille saturée avec des électrons, elle devient isolante et est considérée comme un 0 binaire.




Je ne comprend pas l'histoire de la grille saturée :pt1cable: , la grille n'est pas l'étage de commande dans un transistor ? si c'est bien le cas c'est entre le drain et la source que c'est saturé. de plus le terme saturé signifie que c'est équivalent à un fil, et non une resistance infinie ( comme un isolant ), je suis perdu :??: :??: :pt1cable:
Si quelqu'un peut m'eclairer svp :)

Edit : Voila a quoi je pensai : ( fonctionnement d'un transistor de type mos )

boub popsyteam 18/05/2007 12:35
boub popsyteam
Le test est sponsorisé par Dell (au vu des configs ...) ??
Dandu 18/05/2007 12:43
Dandu
GoO : la grille flotante a une limite en électron "stocké". Donc si on a le maximum d'électron dans la grille, on ne peut plus en faire passer entre la grille de contrôle et la source, vu que la grille flottante est "pleine"

boubpopsyteam : non, pas spécialement, c'est juste que c'est les deux machines que j'avais pour le test et qui convenaient
David Civera 18/05/2007 14:03
David Civera
Bravo l'ami... très beau travail :jap:
GoO 19/05/2007 11:20
GoO
ah oui d'accord, en faite on ne parlait pas de la meme chose, c'est pour ca que je n'avais pas compris :)

oui lorsque c'est saturé : entre la grille et la source c'est isolant, et entre le drain et la source c'est un fil ( enfin 0.2v pour les MOS )

d'ailleur heuresement que c'est isolant, car s'il y avait du courant qui passait, les transistors consommeraient bcp plus ^^

PS : vive PPC qui me fait reviser mon bac électronique :D ^^
Dandu 19/05/2007 12:48
Dandu
t'imagine pas le mal que j'ai eu à capter correctement comment ça marche plus ou moins.

surtout que j'ai pas fait de bac électro, juste quelques cours à la con.

David : Merci.
Caabale 01/06/2007 14:07
Caabale
a écrit :

Tres bon article, néanmoins je "sature" sur une explication ^^



Je ne comprend pas l'histoire de la grille saturée :pt1cable: , la grille n'est pas l'étage de commande dans un transistor ? si c'est bien le cas c'est entre le drain et la source que c'est saturé. de plus le terme saturé signifie que c'est équivalent à un fil, et non une resistance infinie ( comme un isolant ), je suis perdu :??: :??: :pt1cable:
Si quelqu'un peut m'eclairer svp :)

Edit : Voila a quoi je pensai : ( fonctionnement d'un transistor de type mos )

http://img225.imageshack.us/img225/531/15869jo8.jpg




En fait, il y a deux grilles : une grille "de commande", celle qu'on connait, et une grille "flottante", situe juste en dessous, et qui n'est relie a rien, et qui va faire comme un condensateur avec la grille de commande. En etat "normal", tu n'as qu'un cote connecte, sur ce condensateur (cote grille de commande), donc la charge ne varie pas. En etat d'ecriture, les fortes tensions vont creer un effet tunnel du cote grille flottante, qui va charger ou decharger ce condensateur. A la lecture, la tension que tu applique sur la grille va etre modifiee par la tension au bornes du condensateur : decharge, on applique la tension telle quelle, le transistor est passant, chargee, la tension est trop faible, le transistor n'est pas passant.


2 remarques :
- MTBF = Mean Time Before Failure, pas between
- Le 8Go consomme 170mA contre 200mA pour le 32Go, les resultats sont donc moins bons pour le 8Go, en terme de mA/Go. Ce qui parait d'ailleurs assez logique.
Mictateur 01/06/2007 16:30
Mictateur
a écrit :

- MTBF = Mean Time Before Failure, pas between



Ca doit être une erreur très courante, parce qu'en IUT, on m'a appris avec le 'between', ce qui a beaucoup moins de sens qu'avec le 'before'. :)
turlupin en ptard 01/06/2007 16:38
turlupin en ptard
a écrit :

- Le 8Go consomme 170mA contre 200mA pour le 32Go, les resultats sont donc moins bons pour le 8Go, en terme de mA/Go. Ce qui parait d'ailleurs assez logique.



Il y a toujours une électronique de commande dont la consommation ne doit pas beaucoup varier selon la capacité.
christophe_d13 04/06/2007 09:56
christophe_d13
a écrit :

Ca doit être une erreur très courante, parce qu'en IUT, on m'a appris avec le 'between', ce qui a beaucoup moins de sens qu'avec le 'before'. :)



ça a toujours été between et pas before. l'utilisation de before est un abus de language, mais c'est pour mieux comprendre le sens de MTBF.
Caabale 05/06/2007 19:49
Caabale
a écrit :

Il y a toujours une électronique de commande dont la consommation ne doit pas beaucoup varier selon la capacité.




Peut-être, mais ça n'empêche que si tu veux faire 32Go avec les disques 8Go, tu vas consommer 680mA au lieu de 200...

athon99 a écrit :

ça a toujours été between et pas before. l'utilisation de before est un abus de language, mais c'est pour mieux comprendre le sens de MTBF.




Ah ouais :??: C'est marrant, j'ai toujours entendu "before". Enfin, ça a pas non plus énormément d'importance...

A savoir Vous allez poster en tant qu'utilisateur anonyme.



Annonces Google
Publicité