Technologie:
Le Solid State Drive ou SSD (littéralement Lecteur à Etat Solide en français), appelé parfois à tort Solid State Disk, est une unité électronique de stockage de données, constituée de mémoire flash. Ce nouveau lecteur est en passe de supplanter le disque dur traditionnel, existant lui depuis les années 1970, en tant qu'unité de stockage système. Celui-ci, étant donné les évolutions, ne semble néanmoins pas voué à éradiquer le disque dur classique mais à en devenir le complément incontournable pour stocker le système d'exploitation tandis que le disque dur sera cantonné à un rôle de stockage de fichiers volumineux.
La mémoire Flash est une puce de mémoire qui, à la différence de la mémoire vive (DRAM), a la particularité de conserver les données en permanence après leur écriture, même en cas de non alimentation électrique.
Une puce de mémoire flash est composée de cellules de stockage dont le contenu est modifié (écriture ou effacement) sous l'effet d'une certaine tension électrique.
En simplifiant, les transistors utilisés dans la mémoire contiennent deux grilles, une de contrôle et une deuxième, appelée grille flottante, qui est en suspension dans un oxyde, le tout est placé sur un substrat qui contient deux électrodes.
Pour écrire une donnée, on doit faire passer un courant électrique (7 V) entre les deux électrodes (drain et source) et une tension plus élevée (aux environs de 12 V) dans la grille de contrôle. 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.
L'effacement d'une cellule s'effectue de la même façon, mais en faisant passer une tension négative dans la grille de contrôle. Les électrons se déplacent alors de la grille flottante vers le substrat. Une fois la grille flottante "vidée" de ses électrons, elle est considérée comme dans un 1 binaire.
Pour la lecture, c'est assez simple : il faut mesurer la résistance de la grille flottante, en faisant passer une tension faible (5 V) dans la grille de contrôle et dans une des électrodes. Si les électrons passent entre la grille de contrôle et l'électrode, la grille flottante n'est pas isolante, on a un 1 binaire. Si le courant ne passe pas, on a un 0 binaire. La lecture est donc plus rapide que l'écriture ou l'effacement, car on ne doit pas remplir ou vider la grille flottante avec des électrons.
Comparée à la mémoire vive, la mémoire flash a des temps d'accès inférieurs et ne supporte qu'environ 100.000 opérations d'écriture par cellule. Elle permet en revanche un maintien permanent des données.
Comparée au disque dur, la mémoire flash a l'avantage d'une consommation électrique très inférieure et de l'absence de pièces mécaniques introduisant de la fragilité. Elle a pour le moment le désavantage du coût par rapport au stockage magnétique.
La mémoire flash utilisée pour les SSD est la NAND développée par Toshiba en 1989.
La flash NAND est une mémoire de stockage qui utilise des transistors comme support.
- La flash NAND et l'organisation en blocs:
La technologie NAND est de type séquentiel. La 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 2 Go par exemple) on va travailler avec des blocs de 128 Ko. Le bloc est divisé en 64 pages de 2 Ko. En réalité, une "page" fait plus que 2 Ko : on a 2048 octets accessibles, et 64 octets qui servent de contrôle (gestion ECC, etc.). La prochaine génération de mémoire flash va travailler avec des pages de 4 Ko. Les anciens systèmes (ou ceux de faible capacité) travaillent plutôt avec des pages de 512 octets et des blocs de 16 Ko.
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 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.
Les opérations de lecture et d'écriture ne s'effectuent pas immédiatement à l'adresse demandée mais procèdent par blocs entiers d'adressage mémoire. La lecture est plus lente qu'avec une mémoire flash NOR (type de mémoire flash concurrente) mais en contrepartie, l'écriture est nettement plus rapide, la capacité de stockage plus élevée et les puces moins coûteuses à fabriquer.
- 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 2 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 128 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 128 Ko) est donc assez lente avec de la mémoire flash.
Au niveau des 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.
- Mémoire SLC et mémoire MLC:
Notons qu'il existe deux types de NAND:
- la SLC (Single Layer Cell) qui stocke un seul bit dans la grille flottante
et
- la MLC (Multi Layer Cell), qui stocke plusieurs bits dans la même cellule. Techniquement, la MLC divise la grille flottante en deux parties, avec une différence de tension entre les deux parties. On peut donc doubler la capacité de stockage en gardant la même taille physique, ce qui est évidemment avantageux. La mémoire MLC a cependant des défauts : comme on doit travailler avec plusieurs tensions différentes, l'écriture et l'effacement des données sont bien plus lents qu'avec de la SLC (on a entre 25 et 50 % des performances de la SLC en écriture). La lecture reste rapide, mais pas autant qu'avec de la mémoire SLC (environ 80 % du débit d'une SLC équivalente).
Les puces de type SLC sont en toute logique plus véloces et plus efficientes en terme de consommation, en plus de supporter un plus grand nombre de cycles d'écriture bien que ceci ne soit plus réellement un problème pour l'utilisateur.
Les SSD utilisent tantôt de la mémoire SLC pour des raisons de rapidité, tantôt de la mémoire MLC pour des raisons de coût ou de capacité (à taille égale, on double la capacité de la mémoire).
Acronyme de Redundant Array of Independent Disks (matrice redondante de disques indépendants en français), le RAID désigne une technologie permettant de stocker des données sur de multiples disques durs, en général de manière redondante, afin d'améliorer certaines caractéristiques essentielles de l'ensemble en fonction du type de RAID choisi, qu'il s'agisse de la tolérance aux pannes, de l'intégrité des données, ou des performances de l'ensemble.
De même que pour le disque dur, la technologie RAID est également applicable pour les SSD et montre un grand potentiel comme le prouve le test suivant :
--> www.nextlevelhardware.com... (article traduit en français ICI)
Ce test nous montre également les limites actuelles que nos machines peuvent encaisser en terme de débits. Les SSD étant limités par la carte contrôleur RAID. L'un des autres problèmes est que le RAID empêche d'avoir accès à la fonction TRIM tant que des pilotes adéquates ne seront pas disponibles (ceux-ci devraient apparaître d'ici à la fin 2009).
Avantages:
Le SSD a, par rapport au disque dur classique, de nombreux avantages :
Il représente le délai permettant d'accéder à une donnée se trouvant sur le lecteur ou le disque dur.
De l'ordre de de 0,1 milliseconde (ms) pour les SSD (0.09 ms pour le X25-M v2 Postville d'Intel), il est 7 ms pour le meilleur disque dur grand public à savoir le Velociraptor 300 Go (plus généralement il faut compter 12 à 15 ms pour les autres disques durs). Cela donne donc au SSD une réactivité hors paire.
Les puces mémoires actuelles peuvent proposer des débits allant jusqu'à 355 Mo/s en lecture et 215 Mo/s en écriture (Crucial C300 256 Go). Ces débits sont plus ou moins constants (cela dépend en partie du contrôleur et de la présence ou non de mémoire cache SDRam) contrairement aux disques durs traditionnels où le débit diminue au fur et à mesure de l'avancement dans le plateau. Les performances sont bien meilleures que celles des disques durs 2.5" et même supérieures à celles du Velociraptor 600 à 10.000 tpm, la référence en disque dur 3.5", qui atteint un débit maximum en lecture de 145 Mo/s avec une moyenne de 100 Mo/s et un minimum de 85 Mo/s.
- Silence de fonctionnement:
Dû à l'absence de toute pièce mécanique, le silence de fonctionnement est total pour l'utilisateur, néanmoins, comme tout appareil électronique, un sifflement peut se faire entendre sur de basses fréquences en cas d'utilisation intensive du SSD. C'est un phénomène aléatoire et rare, mais qui peut parfois exister et qui peut dépendre de l'ouïe de chacun.
La résistance aux chocs est importante puisqu'aucune partie mobile n'est présente (ils peuvent supporter de 1000 à 1500G pendant 0.5ms). De même, les SSD ont une plage d'utilisation thermique accrue pour une application industrielle plus adaptée. Là où la plupart des disques durs fonctionnent dans une fourchette de +5 à +55°C, la plupart des SSD supportent de -10 à +70°C en fonctionnement. Certains SSD validés industriellement sont capables de fonctionner de -40° à +85°C, ce qui permet de proposer des solutions tenant compte des conditions désertiques et polaires pour le secteur militaire notamment. De la même manière, cette résistance est également un atout dans les appareils nomades qui peuvent subir les aléas d'une utilisation mobile. Les températures supportées hors fonctionnement, pour du stockage pur, peuvent atteindre de -55 à +140°C.
La consommation électrique est d'environ 0,5 Watt en veille et 2 Watt en activité (contre une consommation d'environ 10 Watt pour les disques durs 3.5" ) mais les meilleurs SSD à l'image du OCZ vertex 2E 120 Go atteignent 1,8 Watt en activité contre 0,4 Watt en veille. Cela reste néanmoins inférieur aux disques durs 7200 tpm au format 2.5" pour portable qui vont de 1 Watt en veille à 4 Watt en activité et fait donc du SSD un atout dans le monde de la mobilité en participant à l'augmentation de l'autonomie des appareils mobiles. Le Vertex 120 Go établit même un record avec seulement 0.9W en activité pour des performances intéressantes.
Attention! Il convient cependant de pondérer cet avantage car il semblerait que la consommation des derniers SSD augmentant, l'autonomie pour les appareils mobiles pourrait en être diminuée.
Ce cas de figure est rendu possible par le fait qu'un disque dur ne consomme son maximum en activité que de manière occasionnelle et se contente la plupart du temps d'une consommation légèrement supérieure à celle en veille en accès séquentiel. Le SSD, quant à lui, consomme toujours son maximum théorique dès qu'il est en activité. Si cela ne pose pas de problème pour les SSD consommant 1 Watt en activité, il en va autrement de certains SSD sortis qui culminent à plus de 2.5 Watt en activité, clairement au dessus des 1 Watt en veille des disques durs traditionnels 2.5".
La plupart des périphériques à base de mémoire flash ne possédent pas encore de dispositif d'économie d'énergie, car les priorités des constructeurs sont ailleurs mais ceci devrait changer avec les nouvelles générations de SSD comme la génération SandForce 2xxx.
Comme tous les semi-conducteurs, la mémoire flash chauffe quand elle fonctionne. Et comme tous les semi-conducteurs, elle fonctionne mieux une fois refroidie. Les SSD chauffent mais il est parfaitement possible de mettre sa main sur un SSD après un test, chose moins évidente avec un disque dur.
Le SSD dispose également d'un poids plus faible que les disques durs traditionnels. En format 3.5" il faut compter environ 130 grammes pour un SSD contre 500 à 800 grammes pour un disque dur classique. Par contre en format 2.5" la différence est moins flagrante mais notable: entre 75 et 100 grammes pour un SSD contre 100 à 120 grammes pour un disque dur mais malgré tout la différence est là. Pour le format 1.8" les SSD peuvent descendre à 15 grammes dans des versions allégées ou 40 grammes dans des configurations plus classiques, contre 45 à 65 grammes pour les disques durs de même format.
La fragmentation existant sur les disques durs magnétiques sous certains systèmes d'exploitation et réduisant notablement leurs performances au fur et à mesure que des fichiers sont stockés, utilisés ou déplacés n'a pas d'incidence sur les SSD. De même, certains constructeurs, à l'image d'OCZ, déconseillent formellement d'effectuer une défragmentation de leurs SSD sous peine de les endommager.
- Les accès:
Les débits des SSD, sont comme ceux des disques durs, fonction des accès qu'ils effectuent. Les débits que les constructeurs sont les débits maximums relevés lors d'accès séquentiels, c'est à dire lors d'accès à des éléments d'une liste préétablie et ordonnée. Les débits en accès de type aléatoire (aussi appelé direct), sont, quant à eux, bien plus faibles et généralement peu mis en avant par les constructeurs étant donnés que les ceux-ci sont inférieurs à ceux des accès séquentiels. Ils peuvent descendre aux alentours de 20 Mo/s, voire moins, et très peu de marques annoncent ces débits en aléatoire.
- IOPS
Les IOPS (Input/Output operations Per Second ou IO/s) représentent un système de benchmark qui mesure le nombre d'opérations d'entrée/sortie effectuées par seconde. Les mesures sont établies à l'aide de logiciels tels que IOMeter, l'un des plus célèbres, développé à l'origine par Intel.
Le nombre d'entrée/sortie par seconde (IO/s) dépend essentiellement de la charge effectuée par l'ordinateur, de type serveur (c'est à dire 80% de lecture et 20% d'écriture de manière totalement aléatoire) ou de type plus classique.
En lecture, contrairement aux disques durs dont les IO/s s'effondrent au fur et à mesure que le pourcentage d'accès aléatoires augmente, les SSD voient leurs IO/s stables et ne sont que peu impactés par les accès séquentiels ou aléatoires (de 5000 à plus de 50.000 IO/s en lecture pour les SSD avec des accès de 4Ko contre seulement 150 à 500 IO/s pour le Velociraptor).
En écriture cependant, le disque dur reprend du poil de la bête mais se voit dépassé par les meilleurs SSD. Les SSD voient leurs IO/s diminuer de manière drastique pour atteindre de 350 à 15.000 IO/s pour des accès en écriture aléatoire de 4 Ko contre 220 à 820 IO/s pour le Velociraptor. Les SSD sont donc très affectés par le caractère aléatoire des accès en écriture mais ont désormais l'avantage sur le disque dur.
Les IO/s peuvent s'envoler au delà des 80.000 sur des types d'accès séquentiels en lecture avec des accès de 512 Ko.
Inconvénients:
La capacité de stockage est pour l'instant limitée comparé au disque dur. Les capacités existantes pour le grand public: 32, 64, 128, 256 et 512 Go (ou 30, 60, 120 et 250 Go) n'étant pas forcément suffisantes pour tout le monde dans le cadre du rôle d'unité de stockage principale. Depuis la fin 2007 plusieurs sociétés ont annoncé la production de SSD d'une capacité avoisinant le téra-octet (To). La mémoire MLC permet d'atteindre des capacités plus importantes grâce à sa constitution de 2 bits par cellule contrairement à la mémoire SLC ne contenant d'un bit par cellule. Des tailles supérieures sont d'ores et déjà disponibles au format PCI-E 4X avec des SSD composés de plusieurs contrôleurs au sein du même boîtier (de 2 à 4 contrôleurs).
Sandisk et Toshiba ont alors présenté en février 2008, à l'ocasion de la conférence ISSCC (International Solid State Circuits Conference) la méthode mise en oeuvre pour développer des puces de 16 Gb (2 Go) où chaque cellule peut stocker 3 bits. Gravées en 56 nm, elles présenteraient une surface d'environ 20% inférieure à celle d'une puce équivalente à 2 bits par cellule.
Hynix a également présenté début juin 2008 sa solution de puce de mémoire flash de 32 Go exploitant une technologie à trois bits par cellule, baptisée « X3 ».
Spansion et Samsung ont pour leur part déjà fabriqué de la mémoire flash MLC avancée, à 4 bits par cellule cette fois mais cela ne marche pas réellement en terme de débits.
Cependant, en ce début de février 2009, Sandisk et Toshiba ont eux aussi annoncés de la mémoire MLC à 4 bits par cellule, permettant d'obtenir des cartes mémoires SD d'une capacité de 64 Go avec des débits de 7 à 8 Mo/s, comparables à ceux des cartes déjà existantes.
Les puces NAND à 3 bits (ou plus) par cellules ne semblent pas être une solution viable pour les SSD et resteront cantonnées aux clés USB et autres appareils embarqués.
Les capacités vont progressivement doubler, cela au fur et à mesure de l'augmentation de la finesse de gravure, celle-ci oscillant entre 34 nanomètres (nm) et 50 nm (la génération 25nm débarquera dès la fin 2010 et au cours de l'année 2011).
En passant du 56 nm au 43 nm, on peut être en mesure d'obtenir une densité deux fois supérieure par cellules de 16 Gb (2 Go).
La technologie étant récente, le prix s'en ressent et c'est aujourd'hui le principal frein à l'adoption du SSD. Cependant il ne faut pas oublier que le disque dur en son temps coutait lui aussi très cher: Seagate a lancé son premier disque dur en 1979, baptisé ST-506, d'une capacité 5 Mo et qui coûtait 1 500 dollars, soit 300 dollars par Mo.
Il faut compter environ 1.87 euros le Go pour des SSD performants actuellement (224.96 euros: prix au 08/10/2010 : OCZ Vertex 2E 120 Go Sata II 2,5" sur LDLC) alors que le tarif au Go des disques durs classiques les plus performants se négocie à 6.2 centimes (58.59 euros prix au 08/10/2010: Samsung F3 1000 Go 32 Mo sur Materiel.net) ce qui rend donc le SSD "Performance" environ 30x plus cher que le disque dur magnétique.
Le Velociraptor se négocie à 48 centimes le Go (269.49 euros le modèle 600 Go, prix au 08/10/2010 sur Materiel.net) ce qui rend encore le SSD Performance environ 3.9x plus cher que le Velociraptor.
Les prix baissent vite, sur l'année 2008, les prix ont diminués entre 2 et 3 fois (les puces MLC ont perdu un peu plus de 50% de leur valeur de mai à décembre 2008 - voir tableau des cours de la mémoire flash). L'année 2010 a vu les prix des solutions Sandforce fondre au cours du 2ème semestre. Il faudra cependant attendre 2011/2012 avant de commencer à trouver des SSD performants avec une capacité honnête (120 Go et plus) à des prix abordables pour le grand public. Et pas avant 2013/2014 ans pour le très grand public.
Il existe cependant un risque de ralentissement de la baisse des prix car la demande dépasse actuellement la production (l'offre), la faute incombant à des commandes énormes de constructeurs tel qu'Apple qui n'hésitent pas à vider les stocks afin de lancer leurs nouveaux produits, comme chaque année, ce qui induit une flambée des prix comme il en est arrivé au mois d'avril 2009 avec une augmentation de près de 20% des prix plus ou moins répercutée selon les marques. Les constructeurs, assez frileux sur les nouvelles technologies onéreuses ne se pressent pas pour augmenter substantiellement leur capacité de production, attendant de voir l'évolution à moyen terme. Le marché de la mémoire flash n'est pas en mesure d'absorber une demande en telle expansion. Il va falloir un investissement important de tous les acteurs du marché pour résorber le différentiel entre l'offre et la demande afin que le SSD puisse continuer sa progression sur le disque dur traditionnel car il ne suffit pas de voir se multiplier les marques sur le marché des SSD pour permettre à cette technologie de se démocratiser mais il faut également une augmentation proportionnelle des capacités productives de Flash sous peine de voir la demande augmenter encore, et les prix avec.
Il a été constaté au mois de mars et avril 2009 une flambée de prix de la NAND MLC de l'ordre de 15 à 20% et cela a été répercuté sur les SSD. Le mois de mai 2009 a marqué le retour à la normale et aux prix des mois précédents mais Apple ayant vidé les stocks de NAND pour ses modèles nouvelle collection, la remontée des prix a été très nette (20 à 30%) courant octobre et novembre 2009. Ce phénomène, conjugué avec la hausse de la demande n'a pas fait revenir les prix à la normale. Le phénomène s'est stabilisé début 2010 avant que les prix ne fondent à partir du 3ème trimestre 2010.
L'un des problèmes actuels des SSD consiste en des performances parfois en dent de scie de certains SSD. La technique la plus rapide pour retrouver les performances d'origine consiste à effectuer une commande "SECURE ERASE" (voir partie plus bas dans le topic) qui consiste en une remise à zéro du SSD comme s'il venait de sortir de l'usine. Néanmoins, ces problèmes ne concernent presque plus les SSD actuels qui disposent tous du TRIM, clé à ce problème (voir article plus bas).
Cas précédent du contrôleur JMicron 602:
Dans le monde des SSD, il existait une scission assez nette dans les gammes
- Les SSD à mémoire SLC qui sont pour le moment plutôt délaissés
- Les SSD à mémoire MLC, moins onéreux, qui ont le vent en poupe
L'un des problèmes de cette 2ème catégorie était que l'écrasante majorité de ces SSD en MLC était dotée d'un contrôleur JMicron modèle JMF602. Celui-ci montrait clairement ses limites quand il s'agissait d'effectuer des opérations de type aléatoire (par opposition à séquentiel), étant donné la trop faible mémoire cache intégrée au contrôleur (16 Ko). Cela pu aboutir à des latences pouvant atteindre les 900ms (soit près de 1 seconde) et donc occasionner des "micro-coupures" visibles par l'utilisateur, comme celles observées sur les anciens SSD Core de OCZ ou les SSD Silicon Power.
---> Voir ICI
La troisième révision du JMF602(B) a cependant amélioré les performances en terme de latence d'écriture. Le fait également d'utiliser un RAID interne avec 2 de ces contrôleurs (à l'image des modèles G.Skill Titan et OCZ Apex) a pu réduire d'autant plus les problèmes précédemment rencontrés. La révision B ne supportait malheureusement toujours pas de mémoire cache externe. Le successeur de ce contrôleur controversé, le JMicron 612 commence à être référence et dispose enfin de mémoire cache dédiée. Les performances sont données comme globalement équivalentes à celles délivrées par les Indilinx.
La parade à ce problème est donc de doter les SSD d'une mémoire cache propre de type SDRam. Celle-ci aura pour rôle de stocker les informations et d'éviter ainsi l'engorgement des données qui induit les micro-coupures.
Il est à noter qu'il existe 2 types de cache:
- le cache "on die" intégré directement dans le contrôleur (16 Ko sur les anciens JMF602...)
- le cache externe "on board" qui fait l'interface entre le contrôleur et les puces flash
Les Vertex sont les premiers SSD à être sortis avec de la mémoire "on board".
C'est véritablement le principal grief porté à l'encontre de la technologie SSD.
Il y a deux raisons à la durée de vie limitée de la mémoire flash.
La première vient de l'oxyde utilisé pour séparer les grilles. Comme nous l'avons vu, les électrons doivent traverser cet oxyde pour passer dans la grille flottante ou en sortir. De temps en temps, il peut arriver que des électrons restent captifs de cet oxyde, et soient relâchés plus tard, ce qui peut perturber les écritures et la lecture.
La deuxième vient de la structure de la grille flottante elle-même : avec le temps, les tensions élevées peuvent l'endommager, ce qui à terme va la rendre inutilisable. On considère généralement qu'une cellule de mémoire SLC peut subir environ 100.000 écritures avant destruction, et que la mémoire MLC est moins endurante : environ 10.000 écritures.
Un nouveau type de NAND, les eMLC, plus endurante est annoncé par Micron pour le marché professionnel: ces puces "enterprise" en 34 nm sont annoncées supporter 30.000 cycles d’écritures pour une puce de 32 Gb de NAND MLC et 300.000 cycles d’écritures pour une puce de 16 Gb SLC. Cette annonce nous montre que les cycles des NAND normales sont limitées à 5000 pour les MLC. Cela peut sembler faire face au chiffre de 10.000 connu de tous mais il faut voir que leurs puces 50 nm étaient annoncées à 1500 cycles.
Des puces eMLC en 25nm sont annoncées pour la 3ème génération de SSD Intel.
Le problème de durée de vie reste donc plus théorique qu'autre chose. La mémoire flash est utilisé depuis une quinzaine d'année dans le monde de l'entreprise et aucun problème n'est à déplorer. Preuve en est de ces entreprises qui se tournent vers la NAND et des secteurs sensibles comme la Défense avec les nouveaux F/A-18 Hornet qui seront équipés de SSD.
Les solutions:
La majorité des dispositifs utilisant de la mémoire flash disposent d'un contrôleur interne, qui va gérer les accès à la mémoire. Il est utilisé pour les transferts de données, mais aussi pour vérifier que le dispositif fonctionne bien. La puissance nécessaire peut être importante. Indilinx ou Samsung utilisent par exemple un processeur de type ARM pour cet usage (Advanced Risc Machine est une architecture de processeurs 32 bits de type RISC, c'est à dire à jeu d'instructions réduit, conçue par IBM et très utilisée dans les ordinateurs de poche, smartphones et appareils embarqués).
Ce contrôleur vérifie automatiquement les écritures en relisant la dernière donnée écrite. S'il lui est impossible de la relire, le bloc complet est déterminé comme défectueux et l'écriture est relancée sur un autre bloc. Donc sauf si la mémoire flash est entièrement utilisée ou défectueuse, les données seront écrites sur le support.
La deuxième vérification s'effectue aussi durant l'écriture, avec la correction d'erreur ECC (Error Correcting Code qui est un code correcteur, technique de codage basée sur la redondance. Elle est destinée à corriger les erreurs de transmission d'une information).
Toutes les puces de mémoire flash disposent de bits de contrôle, qui servent à la vérification des données écrites. En général, le contrôle ECC permet de corriger les erreurs de 1 bit et de détecter les erreurs sur 2 bits. Dans ce deuxième cas, le bloc est indiqué comme défectueux et l'écriture relancée sur un autre bloc.
Une petite explication sur le fonctionnement. On dispose de 3 octets d'ECC par bloc de 512 octets (donc 24 bits). À chaque écriture, le code ECC est calculé et écrit dans la zone inutilisée des blocs de données. Pendant la relecture, le code ECC des données est calculé et comparé au code ECC de départ (celui calculé à l'écriture). Si les deux codes sont identiques, le travail continue. Le premier cas intervient s'il y a une erreur sur 1 bit, à ce moment-là c'est corrigé et l'écriture continue. Enfin, il se peut qu'il y ait une erreur de 2 bits, ou une erreur dans le code ECC lui-même. Ces deux cas spécifiques ne sont pas corrigibles, et l'écriture est relancée sur un autre bloc.
Les constructeurs se sont penchés sur le problème de la durée de vie, et ils ont implémenté plusieurs techniques pour limiter l'usure de la mémoire NAND, c'est ce qu'on appelle le Wear Leveling.
La première technique, la plus simple, est d'utiliser un erase pool. C'est la technique des blocs de réserve. 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 MLC). Cette technique n'empêche pas réellement l'usure du support, mais ralentit son impact réel. C'est pour cela que l'on trouve des SSD de capacité de 30, 60, 120, 250 Go au lieu des classiques 32, 64, 128 et 256 Go, la différence étant utilisée dans des blocs de réserve qui correspondent à environ 5% de la capacité totale du SSD.
Il existe d'autres techniques bien plus évoluées pour limiter l'usure du support: Dynamic Wear Leveling et Static Wear Leveling
- Le Dynamic Wear Leveling
le Dynamic Wear Leveling est rarement utilisé 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
C'est une technique assez 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.
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.
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.
Avec une protection statique, la situation est toute autre.
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.
Le MTBF (Mean time between failures soit le temps moyen avant des échecs) des SSD est généralement annoncé entre 1.000.000 et 4.000.000 d'heures. Même si le chiffre paraît fantaisistes, cela montre que les constructeurs ont confiance en leurs produits car dans la pratique, l'utilisation courante n'usera pas prématurément le SSD.
De plus, les pannes sur les supports de stockage viennent généralement d'une défaillance mécanique, et les SSD étant dépourvus de toutes pièces en mouvement, cela les protège évidemment de ce type de panne.
Il sera préférable néanmoins de se référer à la durée de garantie qui devra au moins être égale à 2 ans, ou idéalement 5 ans, afin de se prémunir contre le risque de voir son SSD hors service.
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. Tout cela ne reste que purement théorique mais il faut savoir que la mémoire flash est utilisée depuis 1994 dans les entreprises (Compact Flash). Notons que la hausse de la capacité du SSD augmente sa durée de vie, étant donné qu'il dispose de plus de blocs pour distribuer les écritures.
Optimisation des SSD:
- Forums constructeurs:
Les forums des marques (malheureusement en anglais la plupart du temps) regorgent d'informations précieuses que vous pouvez à tout moment consulter. Problèmes spécifiques, futures sorties de produits, mises à jour de firmware, tout y est ou presque. Il suffit de demander:
- Forum Intel
- Forum Crucial
- Forum OCZ
- Forum Supertalent
- Forum G.Skill
- Mise à jour du firmware:
Afin d'améliorer les performances de son SSD, l'une des solutions possible est la mise à jour du Firmware, Micro-programme logé sur de la mémoire morte indispensable à son fonctionnement. Le "Flash" du firmware qui consiste en une mise à jour de celui-ci peut régler des bugs mais aussi ajouter de nouvelles fonctionnalités ou encore améliorer les performances.
Attention cependant, dans l'informatique tout n'est pas forcément rose et une mise à jour comporte son lot de risques. Vous pouvez avoir de nouveaux bugs après le flash ou des problèmes durant la mise à jour du firmware. De même, en informatique, une mise à jour peut parfois entraîner des pertes de performances. Veillez donc à ne flasher le SSD que si vous en avez un besoin substantiel car si tout marche déjà bien et que vous n'en avez pas besoin, abstenez-vous histoire de ne pas tenter le diable. Quoi qu'il en soit, renseignez vous au préalable sur les retours concernants le firmware en question en consultant divers forums.
ATTENTION
Il est à noter qu'un flashage de firmware peut parfois entraîner une remise à zéro des données présentes.
Téléchargements:
OCZ firmware Vertex
Guide downgrade firmware Vertex
Crucial Firmware
G.Skill firmware 1819
Guides flashage et Firmwares SuperTalent
Guide flashage Intel X25-M et X18-M
Firmware Intel X25-M
Concernant le Wiper OCZ, le constructeur indique la combinaison de chipset/drivers la plus optimale pour son fonctionnement:
OCZ_GC.exe marche le mieux avec:
- Intel chipset IDE mode = Intel driver
- Intel chipset AHCI mode = Microsoft driver
- Intel chipset raid mode = Intel driver
- AMD chipset IDE mode = Microsoft driver
- AMD chipset AHCI mode = Microsoft driver
- AMD chipset raid mode = AMD driver
- NVIDIA chipset IDE mode = Microsoft driver
- NVIDIA chipset AHCI mode = Microsoft driver
- NVIDIA chipset raid mode = NVIDIA driver
- L'alignement:
Sous Windows 7 et Vista, l'alignement se fait normalement de manière automatique.
Procédure d'alignement sous XP de florianarnaud:
Guide pour aligner un SSD
Méthode pour XP 32 et 64 bits:
Tutorial alignement 1 (anglais)
Tutorial alignement 2 (anglais)
Méthode pour Vista 64 bits:
Normalement Vista aligne par défaut le SSD de manière correcte mais vous pouvez toujours choisir de forcer un alignement d'une taille précise.
Téléchargez Diskpar.exe ---> ICI
Lancez l'invité de commande en mode administrateur (clic droit sur Invité de commande puis "Exécuter en tant qu'administrateur" )
Copiez Diskpar sur le lecteur et lancez-le. Il faut trouver ensuite le numéro d'identification du SSD (ça peut être 0 ou 1). Pour l'exemple ça sera "0"
Pour avoir des informations sur le lecteur 0 il faut lancer la ligne de commande suivante: diskpar -i 0
Dès que le lecteur à aligner est déterminé, il faut garder le numéro en mémoire. Si le SSD concerné est le numéro 0, il faut taper la ligne de commande suivante:
diskpar -s 0
Lisez les instructions et acceptez que le programme efface toutes les données sur le SSD concerné.
Choisissez la valeur d'offset "128" et pour la taille de la partition mettez la taille maximale disponible.
(merci à alexreunion de HFR)
- Divers tweaks:
ATTENTION: Certaines manipulations pourraient ne pas fonctionner en fonction des modèles de SSD ou de votre configuration. Celles-ci sont données à titre purement indicatif et chacun engage sa propre responsabilité en effectuant ces tweaks!
Tweaks Firefox+divers
Voici un programme regroupant divers tweaks pour ceux ayant peur de manipuler leur base de registre:
Programme de tweaks SSD
La création d'un Ramdisk est aussi une idée pour le cache internet et les fichiers temporaires.
Procédure de création du Ramdisk
Notez que l'utilisation d'un ramdisk invalide votre score PCMark.
- Problème de boot sous Vista:
Sous vista, lorsqu'on utilise un clavier USB, il peut y avoir un allongement excessif du temps de boot, pour le résoudre suivez les indications suivantes:
Gestionnaire de périphériques puis "Affichage" puis "Périphériques par type". Allez dans "Périphériques d'interface utilisateur" puis "Périphériques d'interface utilisateur USB". Vous devez avoir 2 éléments! clic droit sur l'un des 2 et "Mettre à jour le pilote", cliquez sur "Installer à partir d'une liste ou d'un emplacement spécifié" puis sur "Ne pas rechercher. Je vais choisir le pilote à installer". Sélectionnez ensuite HID-compliant device. Il ne vous reste plus désormais qu'à redémarrer le PC pour constater la différence.
Ci cela ne marche pas essayez la version ci-dessous traduite d'une post anglais:
Ouvrez le gestionnaire des périphériques, puis dans le menu "Affichage" et sélectionnez "Périphériques par connexion". Suivez ensuite les sous-familles de x32/x64 PC à PCI Bus puis l'un de vos USB Host Controllers aura une sous-familles appelée "Generic USB Hub" puis allez à "Périphérique USB d'interface utilisateur". Il devrait y avoir 2 éléments à l'intérieur, HID clavier, HID compliant. Il vous faut faire un clic droit sur le "HID périphérique clavier" et "Mettre à jour le pilote", cliquez sur "Installer à partir d'une liste ou d'un emplacement spécifié" puis sur "Ne pas rechercher. Je vais choisir le pilote à installer". Sélectionnez ensuite HID-compliant device et vous devriez avoir 2 HID-compliant device dans la branche. Il ne vous reste plus désormais qu'à redémarrer le PC pour constater la différence.
- Secure Erase:
Lorsque l'on achète un SSD, tout va bien au début. Les performances sont alors maximales.
Cependant, il est apparut qu'avec le temps les performances du SSD se dégradent comme ce fut le cas dans les débuts du X25-M d'Intel qui était l'exemple le plus connu de ce phénomène --> VOIR ICI
Si vous désirez retrouver votre SSD dans son état d'origine, le formater ou effacer tous les fichiers présents dessus ne marchera pas car les pages du lecteur resteront pleines de données.
Pour ramener le SSD à son état d'origine (de sortie d'usine), il faut procéder à un effacement dit sécurisé plus communément appelé Secure Erase. Celui-ci peut être effectué grâce au logiciel HDD ERASE distribué par Intel.
CLIQUEZ ICI POUR TELECHARGER HDDERASE 4
Cet outil n'est pas seulement destiné aux SSD Intel mais fonctionne avec tous les modèles.
ATTENTION
L'utilisation d'un Secure Erase effacera les données du lecteur de manière totale. Toutes les fichiers seront perdus.
Afin de pouvoir effectuer le lancement du programme, il vous faut dans un premier temps configurer dans le BIOS le contrôleur SATA en mode "Legacy IDE" afin de limiter les problèmes de compatibilité en faisant reconnaître les périphériques SATA comme PATA. Le SSD devra avoir été connecté sur l'un des quatres premiers ports SATA du contrôleur.
Démarrez sur un invité de commande (vous pouvez utiliser une image DOS bootable sur une clé USB) et démarrez l'exécutable. Répondez aux questions posées avec soin.
Dites au programme que vous aimeriez effectuer un Secure Erase et lorsqu'il vous demande si vous souhaitez voir LBA 0 vous pouvez répondre NON. Redémarrez votre ordinateur (n'oubliez pas de reconfigurer votre contrôleur SATA comme avant en lieu et place du Legacy mode IDE).
Ce mécanisme n'est pas forcément nécessaire à tous les SSD. Cependant si vous créez une image de votre lecteur, effectuez un Secure Erase avant de réinstaller l'image afin d'éliminer toutes les données. Le TRIM est la solution à cette dégradation de performances.
- La commande TRIM:
Programmes permettant le "TRIM" manuel:
OCZ Vertex wiper
G.Skill Falcon wiper TRIM
Supertalent UltraDrive Performance Refresh Tool
Intel Toolbox
Le lecteur SSD ne peut pas savoir quand un fichier est supprimé mais seulement quand l'un d'eux est écrasé. On perd ainsi en performance lorsque l'on va écrire un nouveau fichier.
La commande TRIM demanderait un OS approprié et un support du lecteur mais on peut laisser l'OS dire au SSD d'effacer les pages invalides avant qu'elle soient écrasées.
Explication du processus:
Premièrement, un OS supportant la commande TRIM ( Windows 7 par exemple) interroge un disque dur selon sa vitesse de rotation. Si le lecteur répond par un 0, l'OS saura que c'est un SSD et désactivera les fonctions telles que la defragmentation. Cela activera également l'utilisation de la commande TRIM.
Lorsque l'on efface un fichier, l'OS envoie une commande TRIM des blocs recouverts par le fichier (LBA - Logical Block Adressing: technique pour adresser des clusters sur un disque dur au format EIDE, Ehanced IDE, et qui permet l'utilisation des plus gros d'entre eux) jusqu'au contrôleur du SSD. Le contrôleur copiera ensuite le bloc sur la mémoire cache, supprimera les pages effacées et écrira le nouveau bloc, avec les pages fraîchement nettoyées, sur le lecteur.
Désormais, lorsqu'on va écrire un fichier sur le bloc, on a des pages vides pour y écrire dessus et les performances d'écriture seront proches de ce qui devrait être.
Parenthèse sur le LBA:
Le LBA est la traduction en adresse de la localisation physique d'une information. Dans le cas d'un disque dur, le LBA traduit la localisation physique d'une information sur le disque (cylindre, tête de lecture, secteur) en adresse physique adressable par les composants qui veulent y accéder. Dans le cas d'un disque dur, un LBA ne change pas de place. Dans les SSD, ce n'est pas vrai. Par exemple, le LBA 3 peut très bien être stocké à la localisation physique 0 mais la prochaine fois que le LBA 3 sera programmé et réécrit, il pourrait être placé dans la localisation physique 253 ou 2564...Selon Intel, à cause de cela, la performance des SSD varie dans le temps.
Voici ce qui se passerait si l'OS et le lecteur supportaient le TRIM:
On sauvegarde un fichier texte de 4 Ko qui est mis dans une nouvelle page sur un lecteur neuf d'une capacité de 20 Ko. Aucune différence ici.
Ensuite c'est une image JPEG de 8 Ko. 2 pages allouées et encore aucune différences.
La troisième étape consiste dans l'effacement du fichier texte de 4 Ko original. Depuis que le lecteur supporte TRIM, lorsque cette demande de suppression revient, le lecteur lira en fait le bloc entier, enlevera le premier LBA et écrira le nouveau bloc sur la mémoire flash.
La commande TRIM oblige le bloc a être nettoyé avant l'écriture finale. Il y a un temps de gestion supplémentaire mais il apparaît après la suppression et non pendant l'écriture cruciale.
Le lecteur est maintenant à 40% de sa capacité comme l'OS pense qu'il l'est (1 bloc représentant 20%). Lorsqu'on va sauvegarder l'image JPEG de 12 Ko, l'écriture se fera à pleine vitesse. Problème résolu.
Pendant que la commande TRIM allègera le problème, elle ne l'éliminera pas. La commande TRIM ne peut pas être réalisées lorsqu'on écrase simplement un fichier (lorsqu'on sauvegarde des changements sur un document par exemple). Dans ces cas-là, il y aura toujours une pénalité en terme de performances.
La plupart des constructeurs proposent désormais des firmwares pour leur SSD compatibles TRIM (sauf pour les Intel X25-M en 50nm, seuls les postville 34nm seront compatibles TRIM).
Windows 7 supporte d'ores et déjà cette fonction TRIM.
En pratique, cette commande TRIM marche réellement sur la plupart des SSD (certaines configurations rendent ce TRIM parfois inconstant en fonction du couple de pilotes utilisé et des chipsets.
- Les apports de Windows 7:
Lorsque Windows 7 détecte un dispositif non rotatif (possible grâce aux spécifications de la norme ATA8-ACS), il désactive la défragmentation afin de réduire les écritures et améliorer de ce fait la durée de vie du SSD.
Le SSD peut indiquer à Windows la taille de ses blocs et de ses pages qui varient afin de permettre d'optimiser le système de fichiers en évitant les écritures inutiles en alignant les clusters (ensemble de données) sur la taille des blocs mémoire de la mémoire flash.
Le NTFS enverra des instructions de suppression aux SSD supportant le TRIM.
Il en découle 3 optimisations:
- Amélioration du Wear Leveling en évitant les opérations de fusion pour tous les blocs de données effacées
- Collection au plus tôt des données incorrectes pour une écriture plus rapide
- Conservation de l'espace de stockage inutilisé du SSD aussi longtemps que possible pour maximiser la place du dispositif de Wear Leveling
Dossier complet des améliorations de Windows 7 pour les SSD (anglais)