Även om det händer mycket mindre nu än för ett par år sedan, ser jag fortfarande frågan om varför SSD-enheter är värda det då och då. Istället för att ge mitt vanliga svar, satte jag ihop en liten graf för att illustrera varför SSD:er är både nödvändiga och otroligt viktiga.
Längs x-axeln har vi olika typer av lagring i en modern dator. De sträcker sig från de minsta, snabbaste lagringselementen (cache) till huvudminnet och i slutändan i andra änden av spektrumet har vi mekanisk lagring (din hårddisk). Den blå delen av grafen indikerar typisk kapacitet för dessa lagringsstrukturer (t.ex. 1024KB L2, 1TB HDD, etc…). Ju längre till höger du går, desto större råkar strukturen vara.
Den röda delen av diagrammet visar prestanda som en funktion av åtkomstfördröjning. Ju längre höger du kommer, desto långsammare blir lagringsmediet.
Detta är en logaritmisk skala så att vi faktiskt kan se vad som händer. Medan kapaciteten övergår relativt smidigt när du flyttar från vänster till höger, titta på vad som händer med prestanda. Övergången från huvudminnet till mekanisk lagring sker med ett brant prestandafall.
Vi skulle kunna lösa detta problem genom att öka mängden DRAM i ett system. DRAM-priserna är dock fortfarande för höga för att motivera att 32 – 64 GB minne finns i en stationär eller bärbar dator. Och när vi äntligen har råd med det kommer applikationerna vi vill köra bara att bli så mycket större.
Ett annat alternativ skulle vara att förbättra prestandan hos mekaniska enheter. Men vi är bundna av fysiken där. Att snurra tallrikar med mer än 10 000 RPM visar sig vara kraft, ljud och tillförlitlighet oöverkomligt. Majoriteten av hårddiskarna snurrar fortfarande vid 7200 RPM eller mindre.
Istället är den självklara lösningen att hålla en annan nivå i minneshierarkin. Precis som AMD/Intel nästan helt har tagit till sig idén om en nivå 3-cache i sina stationära/notebook-processorer, har lagringsindustrin arbetat för att använda NAND som en mellanhand mellan DRAM och mekanisk lagring. Låt oss titta på samma graf om vi stoppar in en Solid State Drive (SSD) där:
Vi har inte bara jämnat ut kapacitetskurvan, utan vi har också tagit itu med den kraftiga nedgången i prestanda. Ni som läst vår senaste VelociRaptor VR200M recension kommer ihåg att vi rekommenderar en snabb SSD för dina OS/applikationer, och en stor hårddisk för spel, media och annan stor datalagring. SSD:ns roll i minneshierarkin idag är tyvärr användarhanterad. Du måste manuellt bestämma vad som händer på din NAND vs. mekanisk lagring, men vi kommer att se några lösningar senare i år som hoppas kunna fatta en del av det beslutet åt dig.
Varför spelar detta roll? Om det inte är markerat kan kraftiga sänkningar av prestanda i minnes-/lagringshierarkin resultera i dålig prestandaskalning. Om din CPU dubblar i toppprestanda, men den måste vänta på data större delen av tiden, kommer du sällan att inse att prestandaökningen. I huvudsak kommer transistorerna som gav din CPU dess prestandaökning att ha slösats med ytan och kraften.
Tack och lov tenderar vi att se nya nivåer i minne/lagringshierarkin injiceras förebyggande. Vi är ännu inte vid den punkt där all prestanda är bunden av masslagring, men när applikationer som virtualisering blir ännu vanligare kommer I/O-flaskhalsen bara att bli värre.
Motivation för missbruket
Det är denna kraftiga minskning av prestanda mellan huvudminne och masslagring som gör SSD-enheter så lockande. Jag har redan gått mycket djupare in i hur dessa saker fungerar, så om du är nyfiken föreslår jag att du läser vår SSD-återfall.
SSD-prestandan bestäms i grunden av tre faktorer: 1) NAND, 2) firmware och 3) kontroller. Den första punkten är uppenbar; SLC är snabbare (och dyrare) än MLC, men är mestadels begränsad till serveranvändning. Firmware är mycket viktigt för SSD-prestandan. Mycket av hur en SSD beter sig bestäms av firmware. Den hanterar all datamappning för att flasha, hur man korrekt hanterar data som skrivs på enheten och säkerställer att SSD:n alltid fungerar så snabbt som möjligt. Styrenheten är faktiskt mindre viktig än du tror. Det är verkligen en kombination av firmware och kontroller som hjälper till att avgöra om en SSD är bra eller inte.
För er som inte har varit uppmärksamma, vi har i princip sex stora kontrolltillverkare som konkurrerar idag: Indilinx, Intel, Micron, Samsung, SandForce och Toshiba. Micron använder en Marvell-kontroller, och Toshiba har samarbetat med JMicron om några av dess senaste design.
Av den listan kommer de högst presterande SSD:erna från Indilinx, Intel, Micron och SandForce. Micron gör den enda 6Gbps-kontrollenheten, medan resten är strikt 3Gbps. Intel är den enda tillverkaren på vår kortlista som vi har täckt ett tag. Resten av företagen är relativt nykomlingar på den avancerade SSD-marknaden. Micron levererade nyligen sin första konkurrenskraftiga SSD, den RealSSD C300 som gjorde SandForce.
Vi träffade Indilinx första gången för ett drygt år sedan när OCZ introducerade en helt ny enhet kallad Vertex. Även om det inte överraskade oss med sin prestanda, verkade OCZs Vertex ha början på ett anständigt alternativ till Intels X25-M. Med tiden blev Vertex och andra Indilinx-diskar bättre och fick så småningom titeln Intel-alternativ. Du skulle inte få samma slumpmässiga IO-prestanda, men du skulle få bättre sekventiell prestanda och bättre prissättning.
Flera månader senare introducerade OCZ en annan Indilinx-baserad enhet som heter Agility. Med samma Indilinx Barefoot-kontroller som Vertex, var den enda skillnaden att Agility använde 50nm Intel eller 40nm Toshiba NAND. I vissa fall resulterade detta i lägre prestanda än Vertex, medan vi i andra faktiskt såg det dra framåt.
OCZ släppte många andra derivat baserade på Indilinx kontroller. Vi såg Vertex EX som använde SLC NAND för företagskunder, samt Agility EX. Så småningom när fler tillverkare började släppa Indilinx-baserade enheter, försökte OCZ differentiera genom att släppa Vertex Turbo. Vertex Turbo använde en exklusiv OCZ-version av Indilinx firmware som körde styrenheten och externt DRAM med en högre frekvens.
Trots ett nära samarbete med Indilinx meddelade OCZ tidigare denna månad att dess nästa generation Vertex 2 och Agility 2-enheter inte skulle använda Indilinx-kontroller. De skulle istället vara SandForce-baserade.
