====== SSD ====== Notes à propos de la technologie **SSD** ((**S**olid **S**tate **D**isk)) Pour le système hôte, communiquer avec un disque dur ou un SSD revient au même. C'est un espace de stockage adressable dont l'unité d'allocation par défaut est un bloc de 512 Octets. Le firmware gère la complexité en interne. La technologie Flash supporte 3 opérations de base sur 2 types d'unités d'allocation: * Lecture: Opération de lecture sur une unité d'allocation de type page. * Effacement: Force à 1 tous les bits de l'unité d'allocation (le bloc d’effacement). * Programmation: Écriture sur une unité de type page (passe les bits nécessaires de 1 à 0) Les page sont des unités d'allocation variant généralement entre 1Ko et 8Ko. Un **bloc d'effacement** contient plusieurs **pages**. Lecture et programmation ne provoquent pas d'usure sur la cellule Flash, c'est l'opération d'effacement. La faible endurance à l'effacement des mémoires flash est compensée par des techniques mises en œuvres dans les firmwares. ==== wear-leveling ==== Permet de répartir l'usure sur l'ensemble des cellules. Lors des périodes d'inactivités du SSD, le firmware peut déplacer des fichiers invariants sur des blocs d'effacement déjà usés afin de mettre au repos les blocs ayant subit le plus d'opérations d'effacement. ==== over-provisionning ==== Réserve de blocs utilisables par le firmware. Double intérêt: * Augmente la durée de vie en réduisant les cycles d'effacement grâce aux blocs de réserve. * Augmente l’efficacité du wear-leveling. Lorsqu'une page doit être mise à jour, les blocs a modifiés sont écrits dans la réserve. Les anciens blocs ne sont pas effacés mais marqués //dirty//. ==== Garbage collector ==== Le wear-leveling et l'over-provisionning engendre de la fragmentation (pages dirty, utilisation des blocs de reserve)qui ne se ressent pas en lecture) ===== Références ===== * http://www.pcworld.fr/stockage/actualites,lqt-ssd-comment-pourquoi-fonctionnement-optimisation,546541,1.htm?comments=1