Datormagazin förklarar: Det här är grunden till flashlagring
Flash-tekniken har revolutionerat datalagringen. Men vad betyder egentligen alla förkortningar? Vi reder ut begreppen och berättar hur de små lagringsenheterna fungerar under ytan.
När flashbaserad lagring gjorde sitt intåg på marknaden förändrades begreppet lagringsprestanda på ett sätt som nästan ingen kunde förstå. Vi gick från årliga prestandaökningar på ett par procent till en ökning med hundratals procent. Utvecklingen har sedan fortsatt och den flashbaserade lagringen har gått fått från SATA- till PCIe-baserad kommunikation vilket gett ytterligare extrema prestandaförbättringar vilket knappast gått någon datorintresserad användare förbi.
Men vad kanske inte lika många känner till är de olika typer av flashlagring som används i våra diskar, alla med sina för- och nackdelar.
Stommen i Nand
När flashbaserad lagring gjorde sitt intåg på marknaden förändrades begreppet lagringsprestanda på ett sätt som nästan ingen kunde förstå. Vi gick från årliga prestandaökningar på ett par procent till en ökning med hundratals procent. Utvecklingen har sedan fortsatt och den flashbaserade lagringen har gått fått från SATA- till PCIe-baserad kommunikation vilket gett ytterligare extrema prestandaförbättringar vilket knappast gått någon datorintresserad användare förbi.
Men vad kanske inte lika många känner till är de olika typer av flashlagring som används i våra diskar, alla med sina för- och nackdelar.
När vi pratar om flashbaserad lagring idag handlar det nästan uteslutande om Nand-baserad flash vilket är den klar vanligaste typen. Det förekommer vissa lösningar med så kallad Nor flash, men detta är extremt ovanligt. Stommen i båda dessa typer är dock densamma då det handlar om olika lager av minnesceller vilka kan hålla olika nivåer av elektriska signaler eller spänningar. Det som skiljer de olika flashtyperna åt är sedan hur spänningen tillförs eller nollställs, det vill säga hur data skrivs till de olika cellerna där Nand, som vi kommer att fokusera på, skriver i block medan Nor kan skriva kan hantera detta mer fritt och oberoende av ett visst flöde.
Annons
Till skillnad från Ram (random-access memory) som tappar all sitt data så fort vi stänger av datorn, så behåller Nandflash sin data över tid. Detta har sin grund i strukturen på ovan nämnda celler som när de laddats till en viss nivå bibehåller denna spänning ända till dessa av cellen nollställs genom att den jordas, vilket sker genom så kallade floating-gate-transistorer.
Varje cell kan sedan i sin tur rymma olika antal bitar, eller laddningar om vi så vill, där en laddad bit motsvarar en etta (1) och en tömd eller jordad cell motsvara en nolla (0). Den enklaste formen av celler är SLC som står för Single Level Cell vilka precis som namnet antyder kan lagra en bit per cell där cellen jobbar med spänning på eller spänning av (mycket låg spänning).
Ett steg upp hittar vi MLC vilket står för Multi Level Cell. Dessa kan lagra två bitar i varje cell. För att lösa detta krävs en bredare hantering av spänningsreglering som här sker i fyra steg för att klara de olika lagringslägena: 00, 01, 10 eller 11 (bitarnas laddning/tillstånd för av eller på).
Nästa steg är TLC vilket står för Triple Level Cell som alltså kan lagra tre bitar per cell. Detta kräver en än bredare hantering av spänningsreglering som här sker i åtta steg från högsta till lägsta spänningsnivå. Nästa nivå av celldelning, om vi nu får kallade det så, är den senaste kommersiella lösningen QLC vilket så klart står för Quad Level Cell där fyra olika bitar delar på en cell. För att lyckas med detta måste antalet spänningsnivåer dubbleras igen och vi får således hela sexton olika spänningstillstånd.
Hur långt kan vi gå?
Slutar allt då här vid fyra bitar eller hur långt kan vi gå och vad är för- respektive nackdelarna med att flera bitar delar på en cell? Börjar vi med den första frågan är svaret nej. PLC eller Penta Level Cell är redan under utveckling och skisser på exempelvis Hexa- och Deca Level Cell-lösningar finns redan och används delvis inom andra flashområden än just för primär lagring.
Men trots att tekniken blir mindre och vi lyckas packa fler bitar i varje cell vilket ger oss en lägre tillverkningskostnad och framför allt en högre lagringskapacitet per lager, så innebär detta inte bara guld och gröna skogar.
För med varje extra bit som stoppas i minskar marginalerna mellan de olika spänningslägena vilket i sin tur leder till en ökad risk för fel. I Flash begynnelse skulle vi kunna vara elaka och säga att för varje bit som ökas så ökar risken för fel nästan i kvadrat. Detta är däremot inte fallet i dag, men risken är utan tvekan högre jämfört med en SLC-lösning.
För att minimera riskerna för fel i samband med ökat antal bitar finns olika faktorer som har olika stor betydelse. Den primära av dessa är kvaliteten på själva Nandminnet. Med en bättre och mer precis tillverkningsprocess minskar riskerna för problem. Detta är även en av anledningarna till att, om vi börjar granska olika flashminnen, ser att de i grund och botten använder samma minneskretsar. Nästa steg till en bättre hantering finner vi enhetens kontroller. Med en bättre och mer avancerad kontroller kan många fel hanteras och justeras i realtid ungefär på samma sätt som ECC-minnen automatiskt kan justera enklare fel direkt på minnesnivå. Men som med alla former av felkorrigering kommer dessa med en liten baksida i form av sänkt prestanda. Detta då data både ska kontrolleras och ibland även korrigeras eller skrivas/läsas om.
För att minimera prestandaförlusten använder många tillverkare olika former av lokala cacher. Dessa kan vara Dram-baserade, SLC-baserade eller en kombination av dessa. Värt att veta i detta läge är att en SLC-cache nästan aldrig är en äkta SLC-baserad Nand-flash, istället har en del av utrymmet på det exempelvis TCL- eller QLC-baserade lagringsutrymmet reserveras för och hanteras som en SLC – det vill säga att det bara skrivs en bit till cellen.
Ökat slitage
Förutom en generellt sämre prestanda kommer även en ökning av antalet bitar som skrivs i en cell påverka minnets livslängd. Detta, enkelt uttryckt, då multipla spänningsnivåer ger ett ökat slitage samtidigt som vi i takt med fler spänningsnivåer även får en ökad risk för läckage mellan nivåerna. För att minimera dessa risker och även förlänga diskens totala livslängd finns några olika alternativa lösningar.
En av de mest effektiva är så kallad Wear Leveling som är en teknik där skriven data fördelas över antalet celler. Detta gör att de i bästa fall belastas lika mycket och att den totala mängden data fördelas i lika över hela disken. Den andra delen, som blivit allt vanligare, är så kallad Over Provisioning eller OP. Detta är egentligen bara en form av överkapacitet på disken där vi, låt säga på en 480 gigabytes disk, har 96 gigabyte extra utrymme som normalt varken syns eller kan användas. Men när diskens kontroller upptäcker dåliga celler så kommer dessa med automatik att bytas mot celler från denna dolda pool.
I takt med att flash-tillverkarna lyckas packa allt fler lager av Nandflash på varandra, och som i bland annat Samsungs fall där företaget använder så kallad 3D Nand för lagring i tre dimensioner, så kommer även dagens minimala M.2-baserade diskar dels att rymma alltmer data, dels ge bättre förutsättningar för en större OP.
Så för att göra en kort summering kan vi säga att för varje extra bit som kan lagars i en cell så får vi ökad kapacitet till en lägre prisbild, men med den negativa sidan att dessa enheter har en läge prestanda och lägre hållbarhet över tid. Men då tekniken hela tiden går framåt och lösningar för att korrigera dessa brister utvecklas så är multibitalternativen rent generellt de bästa.
Som en grov tumregel brukar det billigaste alternativet med den högsta lagringskapaciteten vara den teknik som erbjuder högst antal bitar per cell för dagen. Vill du ha den bästa kombinationen av prestanda och hållbarhet – välj den tredje högsta bitar-per-cell-lösningen då tekniken för dessa kommit så pass långt. Som konsument rekommenderar vi (i skrivande stund) att du till exempel satsar på QLC-baserad lagring för daglig användning och MLC-baserade Nand-lösningar för kombinationen av bästa prestanda och högsta stabilitet.