Test: AData SX8000 M.2 512GB SSD kort

Solid state disk d.  13. november. 2017, skrevet af Polarfar 0 Kommentarer.  Vist: 15934 gange.

Korrekturlæser: jmose
Billed behandling: Polarfar
Oversættelse: Polarfar

Pristjek på http://www.pricerunner.dk 1749,00
Produkt udlånt af: AData
DK distributør: n/a

SSD'en i praksis
 

På forrige side kiggede vi på SSD teknologien, men hvordan er det lige det forholder sig i den virkelige verden. På denne side tager vi et kig på SSD'ens fordele og ulemper, samt et kig på TRIM teknologien, som mange nye SSD'er har indbygget. 

Fordele
Som det fremgår af sidste side, så har SSD'en mange fordele i forhold til dens ældre roterende brødre. Da en SSD ikke består af bevægelige dele bevirker det, at den ikke genererer nogen støj. Dette kan være et plus i mange sammenhænge, hvor der stilles krav om et lavt støjniveau, såsom mediecentre, bærbare PC'er og lign. En anden fordel ved at SSD'en ikke indeholder bevægelige dele, er, at den er mere modstandsdygtig over for slag og stød. Den egenskab bliver hilst velkommen i den mobile del af IT-branchen, hvor flere og flere bærbare computere benytter SSD'er frem for harddiske (HDD).
En fordel som også tiltaler det mobile marked er, at en SSD bruger meget mindre strøm end en mekanisk harddisk. Det resulterer i længere batterilevetid, og det kan man vel aldrig få for meget af.

Et andet punkt hvor SSD'en overgår de mekaniske er den lave søgetid. En gennemsnitlig HDD har en søgetid der ligger på 5-8 millisekunder (ms), fordi det mekanisk læse/skrive-hoved skal bevæges hen over de magnetiske plader. Dette lyder måske ikke af meget, men en SSD har en søgetid på under 0,1 ms, svarende til næsten omgående. Det betyder, at styresystem og programmer indlæses hurtigere og derved starter hurtigere op. En sidste ting som også er værd at tage med er, at en SSD har en lavere varmeudvikling end de mekaniske, igen pga. de bevægelige dele, som SSD'en jo er fri for.

SSD'en kendetegnes ved: 

  • Ingen støj
  • Robust
  • Lavt strømforbrug
  • Lav søgetid
  • Lav varmeudvikling

Den flittige læser bemærker sikkert, at der her ikke bliver nævnt noget om læse- og skrivehastighed, men da det er muligt, at købe mekaniske drev, som er hurtigere end nogle typer SSD'er, er dette punkt ikke medtaget som en af fordelene.

Ulemper
SSD teknologien har som beskrevet ovenfor en del fordele frem for den ældre mekaniske teknologi, men den nuværende SSD teknologi har også nogle skyggesider. En af de mere åbenlyse negative aspekter ved en SSD er, at den indtil nu og sikkert også i den nærmeste fremtid, har været en del dyrere pr. GB i forhold til de alm. harddiske. I skrivende stund er prisen ca. 2,5 kr per GB for en SATA SSD og omkring 35 øre/MB for en mekanisk disk.

En anden skyggeside som de nuværende SSD'er har, er at de mister ydelse med tiden. Når en SSD bliver brugt, altså når der bliver installeret programmer, oprettet og slettet filer osv., bliver SSD'en med tiden langsommere, hvilket giver sig udslag i knap så hurtige læse- og skrive hastigheder. Dette fænomen har mange flotte engelske navne, men på godt jysk kan man kalde det slid. Dette slid forekommer som skrevet når disken bliver brugt, og det kan beskrives således:

Vi har en SSD med en kapacitet på 20 KiloByte (KB) fordelt på 1 blok med 5 pages. I hver page er der 4 KB til rådighed. Læsehastighed: 2 KB/s, skrivehastighed 1 KB/s. Det kan illustreres således:

 

 

SSD'en bliver bedt om at skrive en fil til blokken. Denne operation ske problemfrit. Efter denne operation er SSD 20% fyldt.

 

 

Dernæst bliver SSD'en bedt om at skrive en stor fil til blokken, hvilket også sker problemfrit. Efter denne operation er SSD 60% fyldt.

Hvis nu vi ikke længere har brug for den første fil, smider vi den i papirkurven og tømmer denne. På en HDD ville den pågældende page blive overskrevet (tømt) og være klar til at modtage en ny fil. Men på en SSD bliver page'en ikke overskrevet. På en SSD bliver page'en blot markeret som optaget, selve page'en er intakt, men indholdet (den lille fil på 4 KB) kan ikke længere benyttes. Styresystemet ved godt at disken kun har tre pages, to tomme og én markeret at gøre godt med, men reelt set er der ved at opstå et lille pladsproblem.

 

 

 

Hvis vi nu ønsker at skrive en meget stor fil til blokken, står vi over for et problem. Der er kun to tomme pages tilbage og vi skal bruge tre til billedet. Ganske vist er der tre pages, som kan benyttes af styresystemet, men den ene er ikke tom. Nu breder panikken sig, men der er hjælp at hente og hjælpen hedder cache

Grundet SSD'ernes opbygning kan man ikke blot overskrive en page og på den måde have tre tomme pages til rådighed til den meget store fil på 3 x 4 KB, man er derimod nødt til at overskrive en hel blok af gangen. Det er her cachen kommer ind i billedet. Cachen er en plads mængde som står til klar til at modtage hele indholdet af vores blok. Når der er oprettet en kopi af vores blok i cachen (billede 1 og 2), kan den oprindelige blok overskrives og gøres klar til at modtage filer igen. I cachen bliver blokkens indhold modificeret således, at den nu indeholder tre tomme pages (billede 3). Den meget store fil bliver nu skrevet ind på de tre tomme pladser (billede 4). Til sidst bliver den modificerede blok kopieret tilbage til den tomme oprindelige blok (billede 5).   

 

   

 

Hvis vi lige tager et resume af hvad der lige skete: Operationen gik ud på at skrive 12 KB til disken, hvilket også blev udført. Men der blev jo samtidigt udført et par krumspring undervejs. For at skrive de 12 KB data var disken først nødt til at læse 12 KB for derefter at skrive en hel blok - eller 20 KB. Hvis vi kigger på hvilken hastighed dette blev udført med, så bliver det: 12 sekunder med 2 KB/s til læsning og 20 sekunder med 1 KB/s til skrivning, hvilket samlet set giver 26 sekunder til en operation, som kun burde tage 12! For hr. og fru Jensen vil dette se ud som, at skrivehastigheden er faldet fra 1 KB til under 0,5 KB, da det tog 26 sekunder at skrive 12 KB. 

Så med andre ord bliver en SSD gradvist langsommere i takt med, at den bliver fyldt op, fordi der ikke bliver ryddet op af og til (overskrivning/sletning af enkelte pages), men først når disken er ved at løbe tør for plads. Hvis der ikke er plads i den pågældende blok til den fil, der skal skrives, "hopper" SSD'en bare videre til en blok, hvor der er plads. Derved tvinges SSD'en til at gøre hovedrent og slette hele blokke af gangen og dette er en langsommelig proces.  

Denne kedelige tendens er kendt af producenterne, men det er ikke noget de snakker højt om. Det er dog muligt at genskabe de oprindelige læse- og skrive hastigheder, men det er ikke noget man bare sådan lige gør. Man kan genskabe sin SSD ved at overskive hele disken med programmer, men denne proces sletter alt indhold på SSD'en.

Selvom denne slitage gør SSD'en langsommere, har producenterne et es i ærmet, som pynter lidt på det. Dette es hedder TRIM og det skal hjælpe SSD'en med at rydde op, og sørge for at den bevarer sin oprindelige hastighed. 

En ting, der endnu ikke er fuldt kendskab til, er, hvordan de enkelte flash-RAM moduler håndterer gentagne overskrivninger. Man forventer, at SSD'er med MLC chips kan håndtere op imod 100.000 overskrivninger, mens SLC chips kan klare ti gange så meget, altså 1.000.000. Men da SSD teknologien stadig er ny, er det svært at sige med sikkerhed.

 

TRIM og Garbage Collection

TRIM er et værktøj, som er indbygget i de fleste nye SSD'er. Dette værktøj kan benyttes af styresystemer til at holde disken "i form". Dog er det kun nyere styresystemer som f.eks. Windows 7 og Linux 2.6.33, der kan udnytte dette værktøj. Det bliver aktiveret, når der slettes en fil fra en eller flere pages. Som tidligere skrevet, bliver en page ikke overskrevet med det samme, når den bliver slettet, den bliver blot markeret som optaget. Hvis TRIM-værktøjet er aktiveret, vil en page, når den slettes, blive overskrevet og gjort klar til brug med det samme. Med andre ord så varetager TRIM-værktøjet oprydning af SSD'en, før den løber tør for tomme blokke. Dette medfører at SSD'en beholder sin oprindelige læse- og skrivehastighed længere.



http://en.wikipedia.org/wiki/Garbage_collection_%28SSD%29#Garbage_collection
 

Garbage Collection er en funktion der sørger for at frigøre blokke så de kan overskrives. En blok består som sagt af flere pages. En page kan have 3 stadier - VALID: Den indeholder data vi ønsker at beholde - INVALID: Den indeholder data vi har slettet, og FREE : Den er klar til skrivning. Hvis en blok indeholder både VALID og INVALID pages, så sørger Garbage Collection for at flytte VALID data til en ny blok med  FREE pages. Derefter kan den oprindelige blok slettes og får så værdien FREE. Herved opnår man at få mere plads der kan skrives på. Funktionen kører ligesom TRIM når systemet er idle. Det kræver selvfølgelig at man har plads på SSD'en til at flytte VALID data over på, og en af de mest almindelige metoder til at garantere dette er at inkludere mere flashram i enheden end brugeren har adgang til, aka overkapacitet.

Overkapacitet

Skiller du en 120GB SSD ad vil du næsten helt sikkert finde ud af at den samlede mængde flashram er højere end de angivne 120GB, typisk 128-160GB alt efter type. Det har stor betydning for både levetiden og stabiliteten hvor meget ekstra plads der er afsat. SSD controlleren bruger hele den samlede mængde ram til alle tider, men du har altså kun adgang til en del af det. Det er også controlleren der suverænt styrer TRIM og Garbage Collection funktionerne når den får GO fra operativsystemet. Det kan nogen gange betale sig manuelt at afsætte ekstra plads til overkapacitet, da SSD'en så får nemmere ved at vedligeholde sig selv, og have skrivbare blokke klar til brug. Slidte og døde flashram-celler erstattes af friske fra overkapacitetsområdet, efterhånden som drevet slides.


NVMe

NVM Express, NVMe, eller Non-Volatile Memory Host Controller Interface Specification (NVMHCI) - kært barn har mange navne - er det nye sort når vi snakker om interface til SSD'er. De fleste nuværende SSD'er bruger det gamle AHCI interface, og når jeg skriver interface, så mener jeg den måde din SSD's controller snakker med din CPU på, når der skal udveksles data. AHCI er udviklet til brug med mekaniske harddiske, og følgelig er der nogle begrænsninger i hastigheden. AHCI er optimeret til roterende magnetiske plader, og SSD opfører sig mere som en ramblok.  Derfor er der i AHCI indlagt nogle "jeg venter lige " trin, der skal synkronisere lagermediet til cpu'en. Det er ikke nødvendigt med en SSD. Derfor har man udviklet NVMe, der understøttes af de fleste moderne bundkort, og bl.a er en del af M.2 specifikationen. Herunder et lille skema der lister nogle af forskellene på AHCI og NVMe.

 

High-level comparison of AHCI and NVMe[4]
  AHCI NVMe
Maximum queue depth One command queue;
32 commands per queue
65536 queues;
65536 commands per queue
Uncacheable register accesses
(2000 cycles each)
Six per non-queued command;
nine per queued command
Two per command
MSI-X
and interrupt steering
A single interrupt;
no steering
2048 MSI-X interrupts
Parallelism
and multiple threads
Requires synchronization lock
to issue a command
No locking
Efficiency
for 4 KB commands
Command parameters require
two serialized host DRAM fetches
Gets command parameters
in one 64-byte fetch

 

Som det ses er NVMe's styrke at kunne køre flere ting parallelt, i modsætning til AHCI der venter på at magnetpladen i harddisken når rundt til det rigtige punkt, så læsehovedet kan få fat i data. NVMe låser op for potentialet i SSD teknologien, og især PCI Ekspress baserede SSD'er bør få stor nytte af den nye specifikation.