Kuidas SSD-d töötavad?

Siin 2007es.comis oleme sageli arutanud NAND-tüüpi struktuuride erinevust - vertikaalne NAND tasapinnaline või mitmetasandiline rakk (MLC) versus kolmeastmelised rakud (TLC) ja nelja taseme lahtrid (QLC). Räägime nüüd olulisemast asjakohasest küsimusest: kuidas SSD-d üldse toimivad ja kuidas neid võrrelda uuemate tehnoloogiatega, nagu Inteli püsimatu salvestustehnoloogia Optane?



Et mõista, kuidas ja miks SSD-d erinevad ketaste keerutamisest, peame natuke rääkima kõvaketastest. Kõvaketas salvestab andmeid pöörlevatele magnetketastele, mida nimetatakse plaatideks. Seal on täiturmehhanism, mille külge on kinnitatud lugemis- / kirjutamispead. See õlg asetab lugemis- ja kirjutamispead informatsiooni lugemiseks või kirjutamiseks draivi õige ala kohale.

Kuna draivipead peavad andmete lugemiseks või kirjutamiseks joonduma ketta piirkonnas ja ketas pöörleb pidevalt, on andmetele juurde pääsemine viivitatud. Draivil võib olla vaja programmi käivitamiseks või faili laadimiseks lugeda mitmest asukohast, mis tähendab, et võib-olla tuleb käsu lõpulejõudmiseks mitu korda oodata, kuni vaagnad õigesse asendisse pöörlevad. Kui ketas magab või on vähese energiatarbega, võib ketta täisvõimsusele pöördumine ja töö alustamine võtta veel mitu sekundit.



Juba algusest peale oli selge, et kõvakettad ei suuda kuidagi sobitada kiirust, millega protsessorid töötavad. HDD-de latentsust mõõdetakse millisekundites, võrreldes tavalise protsessori nanosekunditega. Üks millisekund on 1 000 000 nanosekundit ja tavaliselt kulub kõvakettal 10–15 millisekundit, et kettalt andmeid leida ja neid lugema hakata. Kõnealuse trendi vastu võitlemiseks kasutas kõvakettatööstus väiksemaid vaagnaid, kettamälu vahemälusid ja kiiremini spindli pöörlemiskiirusi, kuid ainult nii kiireid draive saab pöörlema ​​panna. Western Digital'i 10 000 pööret minutis töötav VelociRaptor perekond on kõige kiirem draivikomplekt, mis kunagi tarbijaturule ehitatud, samas kui mõned ettevõtted töötavad nii kiiresti kui 15 000 pööret minutis. Probleem on selles, et isegi kõige kiiremini pöörlev ajam koos suurimate vahemälude ja väikseimate vaagnatega on teie protsessori osas endiselt valusalt aeglane.

Kuidas SSD-kettad erinevad



'Kui ma oleksin inimestelt küsinud, mida nad tahavad, oleksid nad öelnud kiiremad hobused.' - Henry Ford

Tahkis-draive nimetatakse selleks spetsiaalselt seetõttu, et need ei tugine liikuvatele osadele ega ketastele. Selle asemel salvestatakse andmed NAND-välklampi. NAND ise koosneb nn ujuvväravatransistoridest. Erinevalt DRAM-is kasutatavatest transistorikonstruktsioonidest, mida tuleb värskendada mitu korda sekundis, on NAND-välklamp mõeldud laadimisoleku säilitamiseks ka siis, kui see pole sisse lülitatud. See teeb NAND-st püsimälu.

Välkrakkude struktuur

Pilt: Cyferz Vikipeedias , Creative Commons omistamine-jagamine sarnaselt 3.0.

Ülaltoodud diagramm näitab lihtsat välklambi kujundust. Elektronid on salvestatud ujuvväravasse, mis loeb siis laetud “0” või laetuna “1.” Jah, NAND-välklambis tähendab 0, et andmed on lahtrisse salvestatud - see on vastupidine sellele, kuidas me tavaliselt nullist või ühest arvame. NAND-välk on korraldatud ruudustikus. Kogu ruudustiku paigutust nimetatakse plokiks, samas kui ruudustiku moodustavaid üksikuid ridu nimetatakse leheks. Tavalised lehesuurused on 2K, 4K, 8K või 16K, 128 kuni 256 lehte plokis. Seetõttu varieerub ploki suurus vahemikus 256–4 MB.



Selle süsteemi üks eelis peaks olema kohe ilmne. Kuna SSD-ketastel pole liikuvaid osi, saavad need töötada kiirusel, mis ületab tavalise kõvaketta kiirust. Järgmine diagramm näitab mikrosekundites antud tüüpiliste salvestusmeediumite juurdepääsu latentsust.

SSD-latentsus

Pilt autor CodeCapsule

NAND pole kaugeltki nii kiire kui põhimälu, kuid see on mitu suurusjärku kiirem kui kõvaketas. Kuigi kirjutamise latentsused on NAND-välgu jaoks oluliselt aeglasemad kui loetud latentsused, ületavad need siiski traditsioonilist ketrusmeediumit.

Ülaltoodud tabelis on märgata kahte asja. Kõigepealt pange tähele, kuidas rohkem bitide lisamine NAND-i lahtrisse mõjutab oluliselt mälu jõudlust. See on halvem kirjutiste puhul, erinevalt lugemistest - tüüpiline kolmeastmelise lahtri (TLC) latentsus on neljakordne halvem kui ühetasandilise lahtri (SLC) NAND lugemiste puhul, kuid 6 korda halvem kirjutiste puhul. Oluliselt mõjutab see ka latentsusaja kustutamist. Mõju pole ka proportsionaalne - TLC NAND on peaaegu kaks korda aeglasem kui MLC NAND, hoolimata sellest, et sellel on vaid 50% rohkem andmeid (kolm bitti raku kohta, kahe asemel). See kehtib ka QLC-draivide kohta, mis salvestavad sama raku sees veelgi rohkem bitte erineva pingetasemega.



Põhjus, miks TLC NAND on aeglasem kui MLC või SLC, on seotud sellega, kuidas andmed NAND-lahtrisse sisse ja välja liiguvad. SLC NAND-i korral peab kontroller teadma ainult seda, kas bitt on 0 või 1. MLC NAND-i korral võib lahtril olla neli väärtust - 00, 01, 10 või 11. TLC NAND-i korral võib lahtril olla kaheksa väärtust ja QLC-l on 16. Lahtrist õige väärtuse lugemine nõuab, et mälukontroller kasutaks täpset pinget, et teha kindlaks, kas mõni konkreetne element on laetud.

Loeb, kirjutab ja kustutab

Üks SSD-de funktsionaalsetest piirangutest on see, et nad saavad andmeid väga kiiresti lugeda ja kirjutada tühja autosse , on andmete ülekirjutamine palju aeglasem. Seda seetõttu, et kui SSD-kettad loevad andmeid lehe tasemel (see tähendab NAND-mäluvõrgu üksikutest ridadest) ja saavad kirjutada lehe tasemel, eeldades, et ümbritsevad lahtrid on tühjad, saavad nad andmeid kustutada ainult ploki tasandil. Seda seetõttu, et NAND-välgu kustutamine nõuab suurt pinget. Ehkki teoreetiliselt saate NANDi kustutada lehe tasemel, pingutab vajalik pinge üksikute lahtrite ümber kirjutatavaid rakke. Andmete kustutamine ploki tasandil aitab seda probleemi leevendada.

Ainus viis SSD-le olemasoleva lehe värskendamiseks on kogu ploki sisu mällu kopeerimine, ploki kustutamine ja siis vana ploki + uuendatud lehe sisu kirjutamine. Kui draiv on täis ja tühje lehti pole saadaval, peab SSD kõigepealt otsima blokeeringuid, mis on märgitud kustutamiseks, kuid mida pole veel kustutatud, need kustutama ja seejärel andmed nüüd kustutatud lehele kirjutama. Seetõttu võivad SSD-kettad vananedes aeglasemaks muutuda - enamasti tühi draiv on täis plokke, mida saab kohe kirjutada, enamasti on kogu draiv sunnitud läbi kogu programmi / kustutamise jada.

Kui olete kasutanud SSD-sid, olete tõenäoliselt kuulnud nn prügivedu. Prügi kogumine on taustaprotsess, mis võimaldab draivil leevendada programmi / kustutustsükli tulemuslikkuse mõju, täites taustal teatud ülesandeid. Järgmine pilt juhib läbi prügikoristusprotsessi.

Prügivedu

Pilt viisakalt Vikipeedias

Selles näites on draiv ära kasutanud asjaolu, et see saab kirjutada väga kiiresti tühjadele lehtedele, kirjutades esimesele neljale plokile uued väärtused (A’-D ’). Samuti on kirjutatud kaks uut plokki, E ja H. Blokid A-D on nüüd tähistatud vananenud, see tähendab, et need sisaldavad teavet, mille draiv on tähistanud aegununa. Ooteperioodil teisaldab SSD värsked lehed uuele plokile, kustutab vana ploki ja märgib selle vabana. See tähendab, et järgmine kord, kui SSD-l on vaja kirjutada, saab ta kirjutada otse tühja plokki X, mitte täita programmi / kustutamistsüklit.

Järgmine kontseptsioon, mida tahan arutada, on TRIM. Kui kustutate Windowsi faili tavalisel kõvakettal, ei kustutata seda faili kohe. Selle asemel ütleb operatsioonisüsteem kõvakettale, et ta saab kirjutamise järgmine kord üle kirjutada ketta füüsilise ala, kuhu need andmed salvestati. Seetõttu on failide taastamine võimalik (ja miks Windowsi failide kustutamine ei vabasta tavaliselt palju füüsilist kettaruumi enne, kui tühjendate prügikasti). Traditsioonilise HDD puhul ei pea operatsioonisüsteem pöörama tähelepanu sellele, kus andmeid kirjutatakse või milline on plokkide või lehtede suhteline olek. SSD-ga on see oluline.

TRIM-käsk lubab operatsioonisüsteemil öelda SSD-le, et järgmine blokeeringu kustutamise korral võib ta teatud andmete ümberkirjutamise vahele jätta. See vähendab draivi kirjutatavate andmete koguhulka ja suurendab SSD pikaealisust. Nii lugemine kui ka kirjutamine kahjustavad NAND-i vilkumist, kuid kirjutamine teeb palju rohkem kahju kui loetud. Õnneks ei ole plokitaseme pikaealisus tänapäevases NAND-välklambis probleemiks osutunud. Rohkem andmeid SSD pikaealisus , tehnilise aruande viisakalt leiate siit.

Kaks viimast mõistet, millest me tahame rääkida, on kulumise tasandamine ja kirjutusvõimendus. Kuna SSD-kettad kirjutavad andmeid lehtedele, kuid kustutavad andmed plokkidena, on kettale kirjutatavate andmete hulk alati suurem kui tegelik värskendus. Näiteks kui muudate 4KB faili, tuleb värskendada ja uuesti kirjutada kogu plokk, milles 4K fail asub. Sõltuvalt plokkide lehtede arvust ja lehtede suurusest võite 4KB-faili värskendamiseks lõpuks kirjutada 4 MB väärtuses andmeid. Prügivedu vähendab kirjutamise võimenduse mõju, nagu ka käsk TRIM. Märkimisväärse draiviosa vaba hoidmine ja / või tootja liigne varustamine võib samuti vähendada kirjutamise võimenduse mõju.

Kulumise tasandamine viitab tavale, et teatud NAND-plokke ei kirjutata ega kustutata sagedamini kui teisi. Kuigi kulumise tasandamine suurendab ajami eeldatavat eluiga ja vastupidavust, kirjutades NANDile võrdselt, võib see tegelikult kirjutamise võimendust suurendada. Teiste kirjete ühtlaseks levitamiseks kogu kettal on mõnikord vaja plokid programmeerida ja kustutada, kuigi nende sisu pole tegelikult muutunud. Hea kulumise tasandamise algoritm püüab neid mõjusid tasakaalustada.

SSD kontroller

See peaks olema ilmne, et praeguseks vajavad SSD-d palju keerukamaid juhtimismehhanisme kui kõvakettad. See ei muuda magnetkandjaid laiali - ma arvan, et HDD-d väärivad tegelikult rohkem austust kui neile antakse. Mehaanilised väljakutsed, mis on seotud mitme lugemis-kirjutamispea nanomeetri tasakaalustamisega vaagnate kohal, mis pöörlevad 5400–10 000 p / min, pole midagi aevastavat. Asjaolu, et kõvakettad täidavad seda väljakutset, olles samal ajal teedrajavaid uusi meetodeid magnetkandjale salvestamiseks ja lõpetades ajamid 3-5 senti gigabaidi kohta, on lihtsalt uskumatu.

SSD kontroller

Tüüpiline SSD kontroller

SSD kontrollerid on aga ise klassis. Neil on sageli DDR3 või DDR4 mälupulk, mis aitab NANDi enda haldamisel. Paljud draivid sisaldavad ka ühetasandilisi lahtrite vahemälusid, mis toimivad puhvritena, suurendades draivi jõudlust, pühendades kiire NAND-i lugemis- ja kirjutamistsüklitele. Kuna SSD-draivi NAND-välklamp on tavaliselt ühendatud kontrolleriga paralleelsete mälukanalite kaudu, võite mõelda, et draivikontroller täidab mõnda sama koormuse tasakaalustamise tööd nagu tippklassi salvestusmassiiv - SSD-d ei juurutada RAID-i sisemiselt, kuid kulumise tasandamine, prügivedu ja SLC-vahemälu haldamine omavad paralleele suures rauamaailmas.

Mõni draiv kasutab andmete tihendamise algoritme ka kirjutamiste koguarvu vähendamiseks ja draivi eluea parandamiseks. SSD-kontroller tegeleb vigade parandamisega ja algoritmid, mis kontrollivad ühebittiseid vigu, on aja möödudes muutunud üha keerukamaks.

Kahjuks ei saa me SSD-kontrollerite üle liiga üksikasjalikult tutvuda, sest ettevõtted lukustavad nende erinevad salakastmed. Suure osa NAND-välgu jõudlusest määrab aluseks olev kontroller ja ettevõtted pole nõus oma tegemiste tegemist liiga kaugele tõstma, et nad konkurentidele eeliseid ei annaks.

Liidesed

Alguses kasutasid SSD-d SATA-porte, täpselt nagu kõvakettad. Viimastel aastatel oleme näinud üleminekut M.2-draividele - väga õhukesed, mitme tolli pikkused kettad, mis asuvad otse emaplaadil (või mõnel juhul PCIe tõusukaardi kinnitusklambril. Samsung 970 EVO Plus draiv on näidatud allpool.


NVMe draivid pakuvad suuremat jõudlust kui traditsioonilised SATA draiverid, kuna need toetavad kiiremat liidest. SATA kaudu ühendatud tavapärased SSD-d on praktilise lugemis- ja kirjutamiskiiruse osas ~ 550 MB / s. M.2-draivid on võimelised oluliselt kiiremini jõudma vahemikku 3,2 GB / s.

Tee ees

NAND-välklamp pakub kõvaketaste ees tohutut paranemist, kuid see pole ilma oma puuduste ja väljakutseteta. Eeldatakse, et draivimaht ja gigabaidi hind jätkavad vastavalt tõusu ja langust, kuid on vähe võimalusi, et SSD-d haaravad kõvakettad gigabaidi hinnaga. Kahanevad protsessisõlmed on NAND-välgu jaoks märkimisväärne väljakutse - kui enamik riistvara paraneb, kui sõlm kahaneb, muutub NAND habras. Andmete säilitamise ajad ja kirjutamisvõime on 20 nm NANDi puhul sisuliselt madalamad kui 40 nm NAND, isegi kui andmete tihedus ja üldmaht on oluliselt paranenud. Siiani oleme turul olnud kuni 96 kihiga draive ja 128 kihti tundub siinkohal usutav. Üldiselt on üleminek 3D NAND-ile aidanud tihedust parandada ilma protsessisõlmede kahandamiseta või tasapinnalisele mõõtmetele toetumata.

Siiani on SSD tootjad pakkunud paremat jõudlust, pakkudes kiiremaid andmesidestandardeid, suuremat ribalaiust ja rohkem kanaleid kontrolleri kohta - pluss varem mainitud SLC-vahemälude kasutamist. Sellest hoolimata eeldatakse, et pikemas perspektiivis asendatakse NAND millegi muuga.

Kuidas see midagi välja näeb, on veel arutelu lahtine. Mõlemad magnetiline RAM ja faasimuutuse mälu on mõlemad kandideerinud, ehkki mõlemad tehnoloogiad on alles varajases staadiumis ja peavad NANDi asendajana konkureerimiseks tegelema oluliste väljakutsetega. Kas tarbijad märkaksid erinevust, on lahtine küsimus. Kui olete täiendanud NAND-ist SSD-kettale ja seejärel kiiremale SSD-le, olete tõenäoliselt teadlik, et HDD-de ja SSD-de vahe on palju suurem kui SSD-SSD vahe isegi suhteliselt tagasihoidlikust kettast täiendades. Juurdepääsuaegade parandamine millisekunditest mikrosekunditeni loeb palju, kuid nende parandamine mikrosekunditest nanosekunditeni võib langeda alla selle, mida inimene enamikul juhtudel tegelikult tajub.

Inteli 3D XPoint (turustatakse kui Intel Optane) on tõusnud NAND-välgu ühe potentsiaalse väljakutsujana ja ainus praegune alternatiivne tehnoloogia peavoolu tootmises. Optane SSD-d ei kasuta NAND-i - need on ehitatud püsimälu abil, mis arvatavasti on rakendatud sarnaselt faasimuutmäluga, kuid pakuvad järjestikust jõudlust sarnaselt praeguste NAND-mälupulkadega, kuid madalate draivijärjekordade korral oluliselt parema jõudlusega. Draivi latentsus on samuti ligikaudu pool NAND-välklampist (10 mikrosekundit, võrreldes 20-ga) ja tunduvalt suurem vastupidavus (30 täis-draivi kirjutamist päevas, võrreldes tipptasemel Inteli SSD-ga 10 täis-draivi kirjutusega päevas).

Optaan1

Inteli Optane jõudluse eesmärgid

Nüüd on Optane saadaval väga erinevates vormingutes, sealhulgas serveri laienduskaardid, isiklikud SSD-kettad ja tavapärase kõvaketta kiirendamiseks mõeldud lisamälu. Intel on tõuganud ka Optane'i vormina otseselt ühendatud mälu palju rohkem vaba võimsust kui DRAM, suurema juurdepääsu latentsuse hinnaga.

Vaadake meie 2007es.com Explains sarja, et saada põhjalikum ülevaade tänapäeva kuumimatest tehnikateemadest.

Copyright © Kõik Õigused Kaitstud | 2007es.com