SSD pe intelesul tuturor!

3
[1] SSD PE ÎNŢELESUL TUTUROR! Ce înseamnă SSD? Care este tehnologia din spatele lor? Care sunt avantajele şi dezavantajele lor? Sunt numai câteva întrebări la care vom încerca să răspundem în periplul nostru către înţelegerea acestei noi tehnologii. Dacă mă întrebai acum cinci ani care este cea mai puţin fiabilă şi sensibilă componentă a unui calculator, ti-aş fi răspuns fără nici o ezitare: dispozitivul de stocare. Mai exact, hard disk-ul! Astăzi însă lucrurile s-au schimbat. Pe piaţă a apărut o nouă soluţie de stocare a datelor, soluţie pe care o voi prezenta în detaliu şi pe înţelesul tuturor în acest articol: SSD-ul. Acronimul SSD înseamnă Solid-State Drive. SSD-ul se bazează pe o tehnologie similară cu cea a memoriilor flash USB. Diferenţa esenţială dintre cele două dispozitive de stocare constă în faptul că SSD-ul, spre deosebire de HDD (hard disk drive), nu are componente electromecanice în mişcare. Anatomie În prezent, majoritatea SSD-urilor persistente de pe piaţă sunt bazate pe memorie flash de tip NAND. Un dispozitiv SSD conţine milioane de tranzistori de tip n-MOSFET, fiecare astfel de tranzistor reprezentând o celulă care poate reţine stările „1” sau „0” (un bit) chiar şi atunci cand nu este alimentată cu curent electric. Pentru a modifica starea unui bit, controller-ul va aplica un anumit voltaj asupra celulei. În realitate, există două tipuri de memorie NAND flash integrată în SSD-uri: SLC şi MLC. Memoria de tip SLC (Single- Level Cell) este cea descrisă anterior, în care o celulă poate avea două stări („0” sau „1”) şi în care controller-ul va aplica doar două voltaje. Al doilea tip de memorie NAND flash, MLC (Multi-Level Cell), permite reţinerea a patru stări („00”, „01”, „10” şi „11”) în aceeasi celulă de memorie (deci în aceeaşi suprafaţă!). Astfel, în cazul MLC, controller-ul va aplica patru nivele de voltaj. Practic, diferenţa constructivă dintre cele două constă în modul de scriere / citire al unei celule. Însă, datorită faptului că o celulă de tip MLC poate reţine patru stări (deşi ocupă aceeaşi suprafaţă fizică cu o celulă de tip SLC) apare un dezavantaj inevitabil: accesul la celulele de tip MLC este mai lent. Celulele de memorie sunt organizate în grupuri, iar un astfel de grup de celule se numeşte pagină de memorie. O pagină de memorie reprezintă cea mai mică unitate care poate fi citită sau scrisă la un moment dat. Dimensiunea uzuală a unei pagini de memorie în ziua de astăzi este de 4 KB. La rândul lor, paginile de memorie sunt organizate în alte grupuri, rezultând astfel blocurile de memorie. Un bloc de memorie reprezintă cea mai mică unitate care poate fi ştearsă la un moment dat dintr-un dispozitiv de tip NAND flash (fie el memorie flash USB sau SSD)! Dimensiunea uzuală a unui bloc de memorie în ziua de astăzi este de 128 pagini de memorie, adică 512 KB. Asta înseamnă că o pagină de memorie poate fi citită în mod direct oricând sau poate fi scrisă doar dacă este goală. Însă, ea nu poate fi suprascrisă în mod direct, ci trebuie ca mai întâi întregul bloc de memorie să fie şters şi abia apoi scrisă pagina respectivă. Dacă în respectivul bloc există pagini de memorie ocupate de către alte fişiere, atunci înainte de ştergerea întregului bloc, trebuie ca mai întâi datele din ele să fie salvate în memoria controller-ului urmând ca după operaţia de ştergere să fie restocate în aceleaşi pagini de memorie. Pagină de memorie (4 KB) Bloc de memorie (128 pagini = 512 KB)

description

Un articol despre SSD-uri scris in octombrie 2010 pentru o revista, pe nume Console, al carui prim numar nu a mai reusit sa vada niciodata lumina zilei. Bibliografie: http://www.anandtech.com/show/2738 http://www.anandtech.com/show/2829 http://www.anandtech.com/show/2614 http://en.wikipedia.org/wiki/Solid-state_drive

Transcript of SSD pe intelesul tuturor!

Page 1: SSD pe intelesul tuturor!

[1]  

SSD  PE  ÎNŢELESUL  TUTUROR!  Ce  înseamnă  SSD?  Care  este  tehnologia  din  spatele  lor?  Care  sunt  avantajele  şi  dezavantajele  lor?  Sunt  numai  câteva   întrebări   la  care  vom  încerca  să  răspundem  în  periplul  nostru  către  înţelegerea  acestei  noi  tehnologii.  

Dacă mă întrebai acum cinci ani care este cea mai puţin fiabilă şi sensibilă componentă a unui calculator, ti-aş fi răspuns fără nici o ezitare: dispozitivul de stocare. Mai exact, hard disk-ul!

Astăzi însă lucrurile s-au schimbat. Pe piaţă a apărut o nouă soluţie de stocare a datelor, soluţie pe care o voi prezenta în detaliu şi pe înţelesul tuturor în acest articol: SSD-ul.

Acronimul SSD înseamnă Solid-State Drive. SSD-ul se bazează pe o tehnologie similară cu cea a memoriilor flash USB. Diferenţa esenţială dintre cele două dispozitive de stocare constă în faptul că SSD-ul, spre deosebire de HDD (hard disk drive), nu are componente electromecanice în mişcare.

Anatomie

În prezent, majoritatea SSD-urilor persistente de pe piaţă sunt bazate pe memorie flash de tip NAND. Un dispozitiv SSD conţine milioane de tranzistori de tip n-MOSFET, fiecare astfel de tranzistor reprezentând o celulă care poate reţine stările „1” sau „0” (un bit) chiar şi atunci cand nu este alimentată cu curent electric. Pentru a modifica starea unui bit, controller-ul va aplica un anumit voltaj asupra celulei. În realitate, există două tipuri de memorie NAND flash integrată în SSD-uri: SLC şi MLC. Memoria de tip SLC (Single-Level Cell) este cea descrisă anterior, în care o celulă poate avea două stări („0” sau „1”) şi în care controller-ul va aplica doar două voltaje. Al doilea tip de memorie NAND flash, MLC (Multi-Level Cell), permite reţinerea a patru stări („00”, „01”, „10” şi „11”) în aceeasi celulă de memorie (deci în aceeaşi suprafaţă!). Astfel, în cazul MLC, controller-ul va aplica patru nivele de voltaj. Practic, diferenţa constructivă dintre cele două constă în modul de scriere / citire al unei celule.

Însă, datorită faptului că o celulă de tip MLC poate reţine patru stări (deşi ocupă aceeaşi suprafaţă fizică cu o celulă de tip SLC) apare un dezavantaj inevitabil: accesul la celulele de tip MLC este mai lent.

Celulele de memorie sunt organizate în grupuri, iar un astfel de grup de celule se numeşte pagină de memorie. O pagină de memorie reprezintă cea mai mică unitate care poate fi citită sau scrisă la un moment dat. Dimensiunea uzuală a unei pagini de memorie în ziua de astăzi este de 4 KB.

La rândul lor, paginile de memorie

sunt organizate în alte grupuri, rezultând astfel blocurile de memorie. Un bloc de memorie reprezintă cea mai mică unitate care poate fi ştearsă la un moment dat dintr-un dispozitiv de tip NAND flash (fie el memorie flash USB sau SSD)! Dimensiunea uzuală a unui bloc de memorie în ziua de astăzi este de 128 pagini de memorie, adică 512 KB.

Asta înseamnă că o pagină de memorie poate fi citită în mod direct oricând sau poate fi scrisă doar dacă este goală. Însă, ea nu poate fi suprascrisă în mod direct, ci trebuie ca mai întâi întregul bloc de memorie să fie şters şi abia apoi scrisă pagina respectivă. Dacă în respectivul bloc există pagini de memorie ocupate de către alte fişiere, atunci înainte de ştergerea întregului bloc, trebuie ca mai întâi datele din ele să fie salvate în memoria controller-ului urmând ca după operaţia de ştergere să fie restocate în aceleaşi pagini de memorie.

Pagină  de  memorie  (4  KB)  

Bloc  de  memorie  

(128  pagini  =  512  KB)  

                                   

Page 2: SSD pe intelesul tuturor!

[2]  

Revenind la ierarhie, blocurile de memorie sunt organizate la rândul lor sub forma unui chip de memorie. Iar un SSD

conţine mai multe astfel de chip-uri de memorie.

Operaţie SLC NAND flash MLC NAND flash Citire aleatoare 25 µs 50 µs Scriere 250 µs 900 µs Ştergere 2 ms per bloc 2 ms per bloc

Tabel 1: Comparaţie între durata unei operaţii pe o memorie flash de tip SLC şi o memorie flash de tip MLC Transparenţa faţă de SO

Sistemele de operare (SO) moderne comunică cu HDD-urile folosind o adresare logică a blocurilor de date fizice. Astfel, deşi HDD-ul este un mediu rotativ (un HDD conţine mai multe platane, fiecare platan conţine mai multe piste circulare concentrice, iar fiecare pistă este la rândul ei este divizată în sectoare), sistemul de operare adresează blocurile de date fizice într-un mod liniar, asociind fiecărui bloc de date fizic o adresă logică.

Sistemul de operare ştie în orice moment care blocuri de date sunt libere şi care sunt ocupate. De asemenea, sistemul de operare ştie, pentru fiecare fişier în parte, pe ce blocuri de date este stocat acesta. Toate aceste informaţii sunt reţinute de către SO într-o

tabelă de alocare a fişierelor. Practic, rolul acestei tabele este de a corela fişierele cu blocurile de date ocupate de acestea la nivel fizic.

Şi în cazul SSD-urilor, SO-ul foloseşte tot o adresare liniară împreună cu o tabelă de alocare a fişierelor. Însă, în cazul SSD-urilor mai există un strat intermediar între adresele logice ale blocurilor de date gestionate de SO şi adresele fizice ale blocurilor de date. Stratul intermediar este administrat de controller-ul SSD-ului. Rolul său este de a asigura o utilizare uniformă a celulelor unui SSD, deoarece o celulă de memorie flash poate fi scrisă de un numar limitat de ori.

Pentru a înţelege mai bine mecanismul de scriere a celulelor unui SSD, consultaţi tabelul 2.

Comandă către SO Reacţie la nivel fizic pe un HDD Reacţie la nivel fizic pe un SSD

Creare fişier Scrie blocurile de date aferente fişierului.

Scrie paginile de memorie aferente fişierului.

Suprascriere fişier Suprascrie aceleaşi blocuri de date cu noile valori.

Daca e loc pe dispozitiv, scrie în altă pagină de memorie, altfel şterge întregul bloc şi scrie în aceleaşi

pagini de memorie. Ştergere fişier Nimic. Nimic.

Tabel 2: Gestiunea blocurilor de date de nivel fizic la SSD-uri şi HDD-uri. SSD vs HDD: avantaje

Având în vedere faptul că nu au componente în mişcare, SSD-urile sunt silenţioase şi rezistente la şocuri mecanice. Daca primul factor poate fi neglijat, ei bine, cel de-al doilea factor devine extrem de important în momentul în care aducem în discuţie ultraportabilele.

De asemenea, tot datorită faptului că nu au componente electromecanice, SSD-urile consumă mai puţină energie şi degajă mai puţină căldură. Din nou, aceşti doi factori devin extrem de relevanţi în momentul în care aducem în discuţie calculatoarele portabile, consumul redus de energie al unui SSD îmbunătăţind vizibil durata de viaţă a bateriei.

Iar în ceea ce priveşte al doilea factor, neexistând fricţiune între componente, concluzia e simplă: adio programe de monitorizare a temperaturii dispozitivelor de stocare!

Un alt avantaj pe care îl au SSD-urile în faţa HDD-urilor este durata de viaţă. O celulă de memorie flash de tip MLC poate fi scrisă de aproximativ 10.000 ori, pe când o celulă de memorie flash de tip SLC poate fi scrisă de aproximativ 100.000 ori. La prima vedere poate părea îngrijorător, dar daca e sa punem toate datele de până acum pe o foaie de hârtie şi să efectuăm nişte estimări, vom vedea că în realitate, durata de viaţă a unui SSD este net superioară comparativ cu cea a unui HDD.

Page 3: SSD pe intelesul tuturor!

[3]  

Am adus în discuţie avantaje precum silenţiozitate, rezistenţa sporită la şocuri mecanice precum şi consumul redus de energie, însă avantajul major pe care îl au SSD-urile împotriva HDD-urilor este viteza de lucru.

În primul rând, viteza de lucru se datorează arhitecturii. În medie, un chip de memorie NAND flash are o lăţime de bandă de 20 MB/s. Dar, având în vedere faptul că un SSD conţine mai multe chip-uri de memorie, precum şi faptul că acestea pot lucra în paralel, rezultă că laţimea de bandă a unui SSD poate ajunge chiar şi la 200 MB/s!

În al doilea rând, timpul de acces în cazul SSD-urilor este de 0.1 ms, pe când în cazul unui HDD normal, timpul de acces se situează undeva pe la 8 ms. Timpul de acces reprezintă durata dintre momentul în care dispozitivul primeşte o comandă de citire/scriere şi momentul în care acesta duce comanda respectivă la îndeplinire.

SSD vs HDD: dezavantaje

Mai ţineţi minte expresia „There's no such thing as a free lunch”? Ei bine, din păcate se aplică şi în cazul SSD-urilor.

În primul rând, SSD-urile sunt mai scumpe decat HDD-urile. Mult mai scumpe. Desigur, nu mai au preţuri prohibitive ca acum câţiva ani, dar tot sunt de cateva ori mai scumpe decât un HDD de aceeaşi capacitate - asta în cazul SSD-urilor de tip MLC. Un SSD de tip SLC, având aceeaşi capacitate cu un SSD de tip MLC, are în general un preţ dublu decât acesta din urmă.

O altă problemă la SSD-uri este faptul că performanţa acestora tinde să se degradeze pe masură ce sunt folosite şi încărcate cu date.

Să ne reamintim faptul că în cazul unui SSD, prin rescrierea unui fişier, paginile de memorie iniţiale ramân intacte, iar noile date sunt înscrise în alte pagini de memorie, pentru a se asigura astfel o utilizare uniformă a celulelor unui SSD. De asemenea, să ne reamintim faptul că, pentru a suprascrie o pagină de memorie, trebuie ca mai întai să fie şters întregul bloc de memorie care o conţine şi abia apoi scrisă pagina respectivă.

Daca e să coroborăm ceea ce ştim până acum cu faptul că majoritatea utilizatorilor au tendinţa de a îşi umple dispozitivele de stocare cu date destul de repede, rezultă imediat un grad foarte mare de blocuri de memorie care

conţin atât pagini valide cât şi pagini invalide de memorie (o pagină validă conţine datele unui fişier existent la nivel logic; o pagină invalidă conţine datele unui fişier care a fost şters la nivel logic).

Performanţa scade datorită faptului că, nemaiexistând pagini goale de memorie, pentru a utiliza o pagină invalidă trebuie ca mai întâi să fie şters întregul bloc de memorie – iar această operaţie durează 2 ms.

Ca să înţelegem mai bine, să luăm un mic exemplu. Să presupunem că avem de scris un fişier de 120 KB pe un SSD de tip MLC nefolosit (deci avem doar pagini goale). Această operaţie va dura 27 ms (120 KB / 4 KB * 0.9 ms) . În cazul unui SSD care are la dispoziţie doar pagini invalide de memorie şi presupunând că fişierul va fi scris într-un singur bloc de memorie, aceeaşi operaţie va dura: 117 ms (2 ms + 128 * 0.9 ms). Adică de aproximativ 4 ori mai mult!

O soluţie nepractică pentru această problemă este ca la un anumit interval de timp să se copieze tot conţinutul SSD-ului pe un HDD extern, să se şteargă toate blocurile de memorie, iar apoi să se repună datele la loc.

O altă soluţie, de data aceasta practică, este comanda TRIM. Această comandă are grijă să informeze SO-ul atunci când un bloc de date nu mai are pagini valide. Astfel, chiar dacă nu va fi folosit în viitorul apropiat, blocul de date poate fi şters pentru a fi pregătit în vederea unei eventuale scrieri a unei pagini de memorie din el. Comanda TRIM trebuie sa fie suportată de către SO, Microsoft Windows 7 numărându-se printre aceste SO-uri.

Gânduri de final Pe internet circulă o vorbă despre SSD:

n-ai crede că e rapid, până când nu rămâi fără el.

Deşi performanţa li se degradează în timp, SSD-urile din ziua de azi rămân mai rapide decat HDD-urile pe întreaga durată de funcţionare.

În câţiva ani, tehnologia din spatele lor va fi radical îmbunătăţită, preţurile vor scădea, iar HDD-ul va intra în istorie alături de floppy disk.

Vlad Petre [email protected]

http://twitter.com/vladpetre88 http://linkedin.com/in/vladpetre88