Ssd

8
SSD - Solid State Drive Un SSD este un dispozitiv de stocare a datelor care folosește memorii cu circuite integrate. SSD-urile se deosebesc de discurile rigide prin faptul că nu au părți mobile, ci rețin datele în memorii nevolatile. Datorita lipsei de părți mobile SSD-urile sunt mai rezistente la șocuri mecanice, funcționează fără zgomot și au timp de acces și latență mai mic. Inițial, SSD-urile foloseau aceeasi interfata de tip SATA ca si HDD-urile astfel încât SSD-urile erau interschimbabile cu HDD-urile. Arhitectura si functionare Componentele cheie ale unui SSD sunt memoria de stocare și controlerul. Din 2009 unitatea de memorie primară a unui SSD este celula NAND. Controler-ul înglobează componentele electronice care fac legatura între memoria NAND și calculator. Este un procesor încorporat (embedded) care executa cod de nivel firmware și are rol decisiv în obținerea caracteristicilor de performață ale unui SSD. Controlerul execută următoarele funcții: Detecția erorilor Detecția nivelului uzurii Realocarea blocurilor de memorie corupte Colectarea resturilor Caching (memorarea temporară a datelor) la citire și scriere Criptare Citirea, scrierea si stergerea Cand sistemul sau dispozitivul trebuie să citească sau să scrie date, va comunica cu controlerul SSD-ului. Numărul de operații individuale este limitat de viteza memoriei flash. Nivelul de uzura Memoria flash suporta un număr limitat de cicluri de scriere-ștergere. Dacă un anumit bloc a fost programat și șters de un număr reperat de ori fără a scrie alte blocuri, acel bloc s-ar uza înaintea celorlalte astfel încât scade durata de viață a unui SSD. Din această cauză controler-ele folosesc o tehnică numită "egalizarea uzurii". Această tehnică distribuie scrierile cât se poate de egal între toate blocurile SSD-ului. Într-un caz ideal asta ar permite fiecarui bloc sa fie folosit la capacitate maximă pentru o perioada cât mai îndelungată și toate blocurile ar ceda în același timp. Performanțele unui SSD se multiplică cu numărul de cipuri NAND folosite în paralel într-un dispozitiv. Un singur cip NAND este relativ lent, din cauza benzii inguste (8/16 biți) și interfeței I/O asincrone. Când sunt folosite mai multe cipuri NAND în paralel lățimea de bandă crește și latențele pot fi ascunse, atâta timp cât operațiile sunt în așteptare și sarcina de lucru este distribuita egal. La început, în 2009, cele mai rapide SSD-uri au implementat tehnologia “data striping” similara cu RAID 0. Acest fapt a permis crearea de SSD-uri ultra rapide cu viteze de 250 MB/s de citire/scriere folosind interfața SATA 3 Gbit/s. Când a

description

Something about SSD

Transcript of Ssd

  • SSD - Solid State Drive

    Un SSD este un dispozitiv de stocare a datelor care folosete memorii cu circuite

    integrate. SSD-urile se deosebesc de discurile rigide prin faptul c nu au pri mobile, ci rein datele n memorii nevolatile. Datorita lipsei de pri mobile SSD-urile sunt mai rezistente la ocuri mecanice, funcioneaz fr zgomot i au timp de acces i laten mai mic. Iniial, SSD-urile foloseau aceeasi interfata de tip SATA ca si HDD-urile astfel nct SSD-urile erau interschimbabile cu HDD-urile.

    Arhitectura si functionare Componentele cheie ale unui SSD sunt

    memoria de stocare i controlerul. Din 2009 unitatea de memorie primar a unui SSD este celula NAND. Controler-ul nglobeaz componentele electronice care fac legatura ntre memoria NAND i calculator. Este un procesor ncorporat (embedded) care executa cod de nivel firmware i are rol decisiv n obinerea caracteristicilor de performa ale unui SSD.

    Controlerul execut urmtoarele funcii: - Detecia erorilor - Detecia nivelului uzurii - Realocarea blocurilor de memorie corupte - Colectarea resturilor - Caching (memorarea temporar a datelor) la citire i scriere - Criptare

    Citirea, scrierea si stergerea

    Cand sistemul sau dispozitivul trebuie s citeasc sau s scrie date, va comunica cu

    controlerul SSD-ului. Numrul de operaii individuale este limitat de viteza memoriei flash.

    Nivelul de uzura Memoria flash suporta un numr limitat de cicluri de scriere-tergere. Dac un anumit

    bloc a fost programat i ters de un numr reperat de ori fr a scrie alte blocuri, acel bloc s-ar uza naintea celorlalte astfel nct scade durata de via a unui SSD. Din aceast cauz controler-ele folosesc o tehnic numit "egalizarea uzurii". Aceast tehnic distribuie scrierile ct se poate de egal ntre toate blocurile SSD-ului. ntr-un caz ideal asta ar permite fiecarui bloc sa fie folosit la capacitate maxim pentru o perioada ct mai ndelungat i toate blocurile ar ceda n acelai timp.

    Performanele unui SSD se multiplic cu numrul de cipuri NAND folosite n paralel

    ntr-un dispozitiv. Un singur cip NAND este relativ lent, din cauza benzii inguste (8/16 bii) i interfeei I/O asincrone. Cnd sunt folosite mai multe cipuri NAND n paralel limea de band crete i latenele pot fi ascunse, atta timp ct operaiile sunt n ateptare i sarcina de lucru este distribuita egal. La nceput, n 2009, cele mai rapide SSD-uri au implementat tehnologia data striping similara cu RAID 0. Acest fapt a permis crearea de SSD-uri ultra rapide cu viteze de 250 MB/s de citire/scriere folosind interfaa SATA 3 Gbit/s. Cnd a

  • aprut interfaa SATA de 6 Gbit/s SandForse a introdus SSD-uri cu controlere care suportau viteze de 500 MB/s citire/scriere. Controlerele SandForce comprimau datele nainte de trimiterea lor la memoria flash, prin acest proces rezultnd mai puine scrieri de date i putere de procesare mai mare n funcie de algorimtul de compresie a datelor.

    Colectarea resturilor Dup ce fiecare bloc din SSD a fost scris o dat, controlerul trebuie s refoloseasc

    unele din blocurile care nu mai au date curente (numite vechi). Datele din aceste blocuri sunt nlocuite cu date noi. Acest proces este numit colectarea resturilor (datelor vechi). Colectarea resturilor poate fi optimizat print tehnica TRIM.

    Memoria flash Majoritatea producatorilor folosesc n producerea SSD-urilor memoria nevolatila de tip

    NAND. Avantajele constau din costul de fabricaie redus, n comparaie cu memoria DRAM, i abilitatea de a reine datele fr a fi nevoie de o tensiune aplicat constant, lucru care protejeaz datele n cazul unei caderi de tensiune. Memoriile flash nu sunt la fel de rapide ca memoriile DRAM iar primele memorii flash nu aveau nici mcar aceeai vitez ca un HDD. Acest problem a fost rezolvat de ctre controlerele din 2009 i mai trziu prin folosirea unui management mai bun al memoriei numit ExtremeFFS. ExtremeFFS permite ca datele s fie scrise fr a fi necesar tergerea sau rescrierea datelor din vecinatatea lor i permite datelor sa fie mutate pentru a asigura o uzur uniform a blocurilor.

    Ce este memoria 2D NAND Memoria flash 2D NAND este memorie formata din tranzistoare flash, tranzistoare care

    seamn cu tranzistoarele MOSFET cu canal n, dar se deosebesc de acestea prin faptul c au dou pori n loc de una.

    Un tranzistor 2D NAND este format dintr-o joctiune N-P-N cu dou pori. Deasupra se afl poarta de control (control gate) conectat la linia de cuvnt (wordline). n structura NAND standard, poarta de control nfoar poarta flotant (floating gate), iar cele dou pori sunt separate de un strat izolator de Oxide-Nitride-Oxide (ONO), numit cteodat i Inter Poly Dielectric (IPD). Sub poarta flotant se afl un alt strat izolator, numit tunnel oxide, urmat de un substrat de siliciu care se comport ca linie de bit (bitline). Poarta de control nfoar poarta flotant cu scopul de a maximiza capacitatea dintre cele dou. Capacitatea dintre cele

  • dou pori joac un rol cheie n funcionarea NAND, deoarece nseamn c poarta de control poate controla poarta flotant. Scopul liniilor de cuvnt i bit se nelege mai bine dac privim figura urmtoare.

    Pentru programarea unei celule (unuit tranzistor), se aplic o tensiune de aproximativ 20V pe linia de cuvnt a acelei celule. Desigur, problema este c nu putem aplica tensiunea la o singur celul. Toate celulele conectate la acea linie de cuvnt vor detecta tensiunea. Aadar, pentru selecie unei singure celule, se ine n 0 V linia sa de bit. n acelai timp, liniile de bit nvecinate sunt ncrcate la aproximativ 6V. Acest lucru crete capacitatea dintre linia de bit i poarta flotant, lucru care la rndul su descrete ndeajuns capacitatea dintre poarta de control i poarta flotant nct electronii s nu poat trece prin stratul tunnel oxide. Dac toate liniile de bit ar fi fost inute n 0V, atunci toate celulele prezente de-a lungul acelei linii de cuvnt ar fi fost programate cu aceeai valoare. Pentru tergerea unei celule se efectueaz operaia invers. Se ine poarta de control la 0V i pe bitline se aplic o tensiune pozitiv de aproximativ 20V, electronii de pe poarta flotant fiind respini ctre substratul de siliciu/linia de bit i tranzistorul memoreaza 0 logic pn la aplicarea unui curent pozitiv pe linia de cuvnt. Metoda de programare i tergere reprezint clciul lui Ahile pentru memoriile NAND. Deoarece este necesar o tensiune att de ridicat, materialele izolatoare din jurul porii flotante (ONO i tunnel oxide) i pierd din proprieti odat cu creterea numrului de cicluri de programare i tergere. Uzura face ca straturile izolatoare s i pierd din caracteristicile izolatoare, nsemnnd c electronii sunt acum capabili s scape din poarta flotant sau s rmn blocai n stratul tunnel oxide n timpul programrii sau tergerii. Acest lucru modific

  • nivelele de tensiune ale celulei. i tocmai nivelurile de tensiune definesc valoarea bitului. Dac sarcina din poarta flotant nu este cea care trebuia s fie, celula poate returna la citire o valoare invalid. Acest lucru este agravat la ML i TLC, deoarece nivelurile de tensiune sunt mult mai apropiate unele de altele, nsemnnd c chiar o schimbare minor a nivelului de tensiune poate genera deplasarea de la poziia iniial i modificarea valorii celulei. n special, MLC i TLC sunt mai sensibile la modificarea nivelelor de tensiune, ca urmare timpul lor de via este mai mic (endurance).

    n figura de mai sus, o celul care memoreaz un singur bit pe celul, aadar are dou nivele de tensiune, se numete SLC (Single Level Cell). Dac memoreaz doi bii pe celul i are patru nivele de tensiune se numete MLC (Multi level Cell). Cele dou tipuri sunt fizic la fel, ele difer prin modul n care datele sunt memorate i citite. Timpul de scriere MLC este de 3 ori mai mic dect timpul de scriere SLC, dar MLC are capacitate dubl la acelai cost.

    SLC MLC

    Pe lng SLC i MLC mai exist TLC (Triple Level Cell) care stocheaz 3 bii pentru fiecare celul i 16LC (16 Level Cell) care stocheaz 4 bii.

    Mai multe celule de memorie (de ex. 16384) formeaza o

    pagina. O pagina reprezint cea mai mic suprafa care poate fi scris/citit individual. Ea are 4KiB (4096 biti) i poate fi citita/scris individual, dar nu poate fi modificat sau tears individual. Mai multe pagini formeaz un bloc. De exemplu, blocul din imagine este format din 128 de pagini i are dimensiunea de 512 KB. Blocul reprezint cea mai mic suprafa care poate fi tears individual. Blocurile sunt grupate n planuri (plane). Pe o singur matrice NAND se gasesc mai multe planuri. Pe un singur cip NAND se pot gasi una, doua sau patru matrici.

  • Cache buffer

    SSD-urile folosesc de obicei memorie cache de tip DRAM asemenea HDD-urilor. In timpul functionarii in memoria cache este pastrat un director pentru plasarea blocurilor si nivelului de uzura, de obicei in cache nu sunt pastrate si datele utilizatorului. Nu este neaparat necesar utilizarea unui cache de tip DRAM, eliminarea DRAM permite construirea de SSD-uri de dimensiuni mai mici.

    Interfetele de conectare Interfata de conectare este de obicei incorporata in controler. De obicei interfata este

    una gasita deja la HDD-uri de exemplu: - SAS serial attached SCSI (>3 Gbit/s) - SATA serial ATA (>1.5 Gbit/s) - PCI express (2 Gbit/s) - Canal fibra doar pentru servare (>200 Mbit/s) - USB (>1.5 Mbit/s) - M.2

    Comparatie SSD cu HDD

    Caracteristici Solid-State Drive Hard Disk Drive Timp de incepere a rotatiei

    Instantaneu Poate dura cateva secunde

    Timpi de acces aleator Aproximativ 0,1 ms, mult mai rapid decat HDD-urile deoarece datele sunt accesate direct din memoria flash

    Difera intre 5-10 ms datorita nevoii de miscare a capetelor de citire

    Latenta la citire In general foarte redusa deoarece datele pot fi citite din orice locatie a memoriei

    In general ridicata deoarece componentele mecanice necesita mai mult timp pentru a se alinia

    Performanta constanta la citire

    Performanta la citire nu se schimba in functie de locatia datelor

    Daca datele sunt scrise fragmentat, timpul de citire poate sa varieze foarte mult

    Impactul fragmentarii datelor

    Performantele SSD-ului nu se schimba deoarece nu are capete miscatoare

    Performantele HDD-ului sunt impactate deoarece capetele trebuie

  • miscate Nivelul acustic (zgomotul)

    SSD-urile nu au parti miscatoare si nu creeaza zgomot

    HDD-urile au parti miscatoare si nivelul acustic variaza in functie de model

    Consumul total de energie SSD-urile consuma mai putin curent decat HDD-urile din aceeasi clasa; disipa mai putina caldura si nu necesita racire cu miniventilatoare, si ele zgomotoase

    HDD-urile de mare performanta pot depasi 15 wati

    Fiabilitate mecanica Deoarece nu au parti mobile acestea nu prezinta defecte mecanice

    HDD-urile au parti miscatoare si se pot defecta mecanic

    Sensibilitate la soc, vibratii si temperatura

    Nu exista capete sau platane mobile care sa se defecteze de la soc sau vibratii

    Capetele sau platanele mobile sunt predispuse la defecte din cauza socului sau vibratiilor

    Sensibilitate la magnetism Nu are nici un impact asupra memoriei flash

    Magnetii pot altera datele de pe HDD-uri si sa le faca ilizibile

    Greutate si volum Sunt foarte usoare in comparatie cu HDD-uri

    HDD-urile de inalta performante au componente foarte grele

    Operatia in paralel Unele SSD-uri contin mai multe module de memorie flash care pot partaja datele care trebuie scrise sau citite

    HDD-urile contin mai multe capete de citire, dar acestea sunt mereu aliniate pe acelasi cilindru

    Pret cu amanuntul (mai. 2014)

    Circa 450$ pentru 1 terabit Circa 50 euro pentru 1 terabit

    SSD cache Un SSD de dimensiuni mici poate fi folosit pe post de cache pentru un HDD, tehnologie

    introdusa de catre Intel pe placile Z68 numita Smart Response Technology. SSHD-urile(solid-state hybrid drives) folosesc acelasi principiu, dar integreaza o cantitate

    de memorie flash pe placa unui HDD conventional in loc sa foloseasca un SSD separat. Dual-drive hybrid systems combina un SSD si un HDD instalat in acelasi calculator cu

    performantele optimizate de catre user sau de catre sistemul de operare.

    Sisteme de fisiere compatibile cu SSD-urile De obicei sistemele de fisiere folosite pe HDD-uri sunt compatibile si cu SSD-urile, este

    de asteptat ca sistemul de fisiere sa foloseasca comanda TRIM care ajuta SSD-ul sa recicleze datele sterse. Nu este nevoie de un sistem de fisiere pentru a avea grija de egalizarea uzurii sau de alte caracteristici ale memoriei flash deoarece ele sunt organizate intern de SSD.

    TRIM permite sistemului de operare sa informeze SSD-ul care blocuri de date nu mai sunt considerate in folosire si pot fi sterse intern. Trim a fost introdus dupa ce SSD-urile au inceput sa aiba preturi comparabile cu HDD-urile. Deoarece operatiile de nivel redus ale SSD-urilor difera de cele ale HDD-urilor modul in care sistemele de operare manipuleaza stergerile si formatarile rezulta in performante degradate in operatiile de scriere pe SSD. TRIM permite SSD sa gestioneze colectarea datelelor sterse inainte, care ar putea incetini sistemul cand vrem sa scriem in blocurile folosite, in avans.

  • Linux OS Sistemele de fisiere ext4, Btrfs, XFS, JFS si F2FS includ suport pentru TRIM. F2FS este

    un sistem de fisiere modern optimizat pentru stocarea de date pe suport flash si este o alegere foarte buna, dar este inca in teste.

    SSD-urile sunt in intregime suportate de catre sistemele de operare de tip Linux incepand cu versiunea de kernel 2.6.33 care a fost prezentata drept compatibila in intregime atat cu detectia si alinierea SSD-urilor cat si cu comanda TRIM, versiunile anterioare ale kernelului nu contineau suport pentru SSD.

    In timpul instalatii, Linux nu configura sistemele de fisiere sa utilizeze TRIM si fisierul /etc/fstab trebuie modificat manual.

    Windows OS Versiunile de windows mai vechi de 7 nu luau masuri speciale sa suporte SSD-urile.

    Defragmentarea afecteaza negativ durata de viata a unui SSD si nu are niciun beneficiu. Incepand cu Windows 7 sistemul de fisiere NTFS are suport TRIM. Windows 7, 8, 8.1

    executa automat comenzi daca device-ul este detectat ca fiind un SSD.

    Performante si calitate Tehnologia SSD se dezvolta rapid. Majoritatea testelor de performanta utilizate de HDD-

    uri sunt folosite si pe SSD-uri, dar performantele SSD sunt dificil de testat datorita gamei largi de conditii posibile.

    Modelele mai noi de SSD-uri au capacitati mult mai mari decat HDD-urile care sunt limitate de viteza si de numarul de platane, SSD-urile scaleaza capacitatea cu numarul de memorii flash. SanDisk au anuntat SDD-uri cu capacitati de 4TB, 6TB si 8TB bazate pe tehnologia de fabricatie de 19 nm.

    Forma Forma si marimea oricarui dispozitiv decurge din

    forma si marimea componentelor sale, HDD-urile traditionale si CD-RW sunt construite in jurul motorului si axului central. Atata timp cat SSD-urile sunt construite din circuite integrate si inferfete conectate, ele pot in principiu sa ia orice forma imaginabila

  • Forma standard este preluata de la HDD-uri pentru a putea folosi infrastructura deja disponibila fara modificari.

    Exista un standard numit mSATA care foloseste un format PCIe mini card, ramane compatibila electric cu interfata PCIe mini card dar foloseste o o conexiune SATA prin acelasi conector.

    M.2 cunoscut ca si NGFF(next generation form factor) este tranzitia natura de la mSATA, se foloseste acelasi layout fizic si este un format mai avansat. Pe cand mSATA a avut avantajul unui standard existent si conector, M.2 a fost creat pentru a maximiza spatiul folosit si pentru crearea de dispozitive mai mici.

    Biblografie 1. The SSD Anthology: http://www.anandtech.com/show/2738 2. Flash memory : http://www.explainthatstuff.com/flashmemory.html 3. Understanding TLC NAND: http://www.anandtech.com/show/5067/understanding-

    tlc-nand 4. Optimal usage og SSDs under Linux:

    https://events.linuxfoundation.org/images/stories/pdf/lceu11_fischer.pdf 5. SSD Wikipedia: http://en.wikipedia.org/wiki/SSD 6. Solid-state revolution: in-depth on how SSDs realy work:

    http://arstechnica.com/information-technology/2012/06/inside-the-ssd-revolution-how-solid-state-disks-really-work/

    7. http://www.anandtech.com/show/8216/samsung-ssd-850-pro-128gb-256gb-1tb-review-enter-the-3d-era/2

    Format mSATA

    Format M.2