Kan det blive vildere?
Skal man flytte rigtig mange data, rigtig hurtigt skal man se bort fra SATA og USB porte på bundkortet. Den hurtigste databus på et moderne bundkort er PCI Express bussen, der i nyeste aftapning hedder version 3, forkortet PCIe Ver3. Bussen er populært sagt en række spor, der hver kan aflevere 985 MB data i sekundet. Bussen er skalerbar,. Det vil sige at man kan bestemme hvor mange spor hvert enkelt stykke hardware må bruge, alt efter hvor meget du har installeret på bundkortet. Eksempelvis vil du typisk have 16 spor, kaldet lanes, til rådighed til dit grafikkort. Sætter du et grafikkort mere i fordeles de 16 lanes til 2 x 8 til hver. Andre enheder som lydkort og netkort kan klare sig med en enkelt lane.
SATA Express og M.2
Har du et bundkort der er under 3 år gammelt vil du næsten helt sikkert være stødt på en feature kaldet SATA Express. Som navnet antyder er det en blanding af SATA og PCI Express busserne, og meningen er at et lagermedie skal kunne udnytte båndbredden på begge typer bus samtidig. Samtidig med denne specifikation kom der imidlertid en ny sokkel type kaldet M.2, der er en del af SATA Express specifikationen. Den er lille, under 25 mm bred og knap 3 mm høj, og dermed nem at integrere på bundkort i alle typer PC.
Lille og kompakt. En M.2 SSD fylder typisk 22 x 80 mm og er helt flad.
Hvis du kigger i kataloget hos din lokale hardware pusher og synes der mangler nogle SATA Express enheder, så er det fordi stort set ingen har lavet dem, men i stedet har koncentreret sig om M.2 løsninger. M.2 soklen kan ligesom SATA Express understøtte SATA og/eller PCIe. Den hurtigste M.2 sokkel er pt. Ultra M.2 Gen3 X4, der indeholder fire 3. generations PCI Express lanes, og dermed en teoretisk max hastighed på lige under 4 GB/s.
De fremhævede stik er SATA Express - to styk SATA og 2 PCIe lanes.(billede fra wikipedia)
Flere producenter forsøgte sig tidligt med PCI Express baserede løsninger for lagermedier, da flashram og SSD teknologien ret hurtigt stødte mod loftet for en SATA3 port. Løsninger som eks. OCZ Revodrive fik hastighederne op over de magiske 1 GB/s, men prisen var uforholdsmæssig høj, og man brugte stadig controllere udviklet til SATA porten. Der manglede en kommunikationsstandard dedikeret til lagermedier på PCI Express bussen, og således nåede vi frem til NVMe.
OCZ Revodrive 350 - 4 styk Sandforce controllere til 480 GB lager.
NVMe
Nu bliver det en smule teknisk. Al kommunikation gennem en SATA port til en SSD bruger et regelsæt kaldet AHCI, (Advanced Host Control Interface) der sørger for at aktivere nogle funktioner i SSD'en, bl.a TRIM og Garbage Collection, der holder styr på datablokkene. Det er kort sagt den måde din CPU snakker med SSD'ens controller. Men den er oprindeligt udviklet til brug med mekaniske drev 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 SATA Express/M.2 specifikationen. 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. 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. Forskellen er en faktor 2048 i antal samtidige kommandoer. 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.
Toshibas RD400, der er et OCZ Revodrive i Ultra M.2 version.
Vi har for nylig testet Toshibas RD400, der udnytter hastigheden på PCIe Ver3 til at opnå læsehastigheder på op til 2600 MB/s, og der skrives med 1600 MB/s. Den afleverer altså data cirka 5 gange hurtigere end en god SATA3 SSD. Den fås både med og uden adapterkort til Ultra M.2 sokkel. Har du sådan en fætter i maskinen vil du sidde og bande over ventetiden på en SATA3 SSD. Prisen er stadig høj, cirka det dobbelte af en SATA SSD per megabyte, men ydelsen er til gengæld også tilsvarende voldsom. Eksempelvis oplevede jeg et fald i indlæsningstiderne for spil som DOOM og Fallout 4 fra 30-40 sekunder, ned til under 10 sekunder, og operativsystemet starter op på ingen tid.
Skal det være endnu vildere, så skal du køre dit system og programmer direkte fra RAM modulerne, hvor søgetid er nede i nanosekunder og båndbredden ekstremt høj, da RAM snakker direkte med en controller integreret i CPU'en. Men nu er vi strengt taget kommet forbi det man kan betegne som systemdrev. Flere bundkortproducenter er begyndt at inkludere software, der kan afsætte en del af system RAM'en til systemfiler, en såkaldt ramdisk. Overgangen fra DDR3 til DDR4 systemram giver producenterne mulighed for at lave ramblokke op til 512 GB per styk (!!!). Det betyder derfor ikke ret meget at man afsætter en del til styresystemet. Ulempen er at du ikke kan lagre noget permanent i en RAM blok. Den kan kun indeholde data så længe der er strøm på.
Så kan det ikke blive vildere, vi stopper her.