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:
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.