Hem Företag Mediahantering i Solid State-enheter: Flerstegs WRITE-operationer

Mediahantering i Solid State-enheter: Flerstegs WRITE-operationer

by Gästförfattare

Mellan 2010 och 2015 förutspår IDC att leveranserna av Solid State Drives förväntas öka med en sammansatt årlig tillväxttakt på 52 procent på global basis. Motsvarande ökning i företagsserver- och lagringsanpassning innebär att en djupare förståelse för kritiska komponenter som mediahantering och användning av nya enheter jämfört med använda enheter kan hjälpa administratörer att bättre hantera lagringsresurser.


Mellan 2010 och 2015 förutspår IDC att leveranserna av Solid State Drives förväntas öka med en sammansatt årlig tillväxttakt på 52 procent på global basis. Motsvarande ökning i företagsserver- och lagringsanpassning innebär att en djupare förståelse för kritiska komponenter som mediahantering och användning av nya enheter jämfört med använda enheter kan hjälpa administratörer att bättre hantera lagringsresurser.

SSD:er kan verka väldigt lika konventionella roterande hårddiskar, men likheten är bara ytlig. En undersökning av det interna arbetet hos en SSD avslöjar att SSD:er faktiskt har mycket lite gemensamt med äldre enheter. Ett nyckelexempel är skillnaden i hur varje typ av enhet skriver över befintlig data – roterande enheter skriver över i ett enda steg, medan NAND Flash-baserade SSD:er kräver ytterligare steg. Den här briefen undersöker "skrivprocessen i flera steg" för SSD:er.

Bakgrund: Grunderna i SSD-design

Det första att förstå om hur SSD-enheter skriver över data är hur SSD-enheter är konstruerade. Varje SSD har följande grundläggande komponenter:

  • Värdgränssnitt
  • Kretskort
  • NAND-kontroller
  • NAND-

Skriv processskillnader

Datum skrivs annorlunda till NAND än det skrivs till en roterande hårddisk – NAND som innehåller data (oavsett om det är giltigt eller ogiltigt) måste först raderas; först då kan den få nya data skrivna till sig. I ett nötskal, raderingsprocessen raderar först ett helt block; först då kan sidorna i det blocket ha ny data skrivna till sig.

Eftersom NAND som redan har data i sig måste raderas innan ny data kan skrivas till den, är skrivsekvensen för en enhet som är full (har inga tomma/raderade sidor) mycket annorlunda än den för en enhet som är tom (eller har tillräckligt med tomma/raderade sidor för att absorbera den inkommande skrivtrafiken).

Tomma/raderade sidor tillgängliga

Anta att vi kunde se till att vi hela tiden hade tomma/raderade sidor redo. När skrivningen kommer in i SSD:n, skulle processflödet se ut som det för en roterande enhet:

  1. Data kommer in till SSD:n från värdgränssnittet, vilket resulterar i en skrivbegäran (som så småningom kommer att skrivas till NAND).
  2. "Finns det några tomma/raderade sidor" (det vill säga sidor som är redo att skrivas till)? I figur 1 är tomma/raderade sidor tillgängliga.
  3. Skriv data till de tillgängliga sidorna.

Denna skrivprocess utförs i ett enda steg, precis som roterande enheter. Vanligtvis är detta mycket snabbare än att skriva till en SSD utan tomma/raderade sidor (som visas i figur 2).


 

Otillräckligt antal tomma/raderade sidor tillgängliga

Anta nu att vi har en SSD med otillräckligt med tomma/raderade sidor. Eftersom ny data skrivs till SSD:n kräver det att celler raderas omedelbart innan skrivningen sker:

  1. Data kommer in till SSD:n från värdgränssnittet, vilket resulterar i en skrivbegäran (som så småningom kommer att skrivas till NAND).
  2. "Finns det tillräckligt med tomma/raderade sidor" (det vill säga sidor som är redo att skrivas till)? I figur 2 är det inte tillräckligt med tomma/raderade sidor tillgängliga.
  3. Leta upp ett block vars data har ogiltigförklarats eller vars giltiga data kan flyttas, vilket gör det till en bra raderingskandidat, och anropa sedan skräpinsamlingsrutinen (se avsnittet Nya enheter vs. begagnade enheter som följer) för att aktivera detta block för radering .
  4. Radera detta block. (Upprepa vid behov för att lagra data i skrivbegäran.)
  5. Skriv data till de nyligen raderade/tomma sidorna.

Steg 4 kan vara långsamt att slutföra eftersom det tar mycket längre tid att radera NAND än att skriva till det – vilken NAND-raderingscykel som helst är "långsam" (vanligtvis tar det 250 mikrosekunder [µs] att skriva till en MLC-cell, men 1500µs att radera det).

Nya enheter kontra begagnade enheter

Om du använder en helt ny SSD fortsätter skrivprocessen på samma sätt som i figur 1. En ny SSD är tom; alla dess sidor kommer att vara tomma och redo att ta emot ny data, så raderingssteget utförs sällan när data skrivs. Men när enheten fylls minskar antalet av dessa tomma/raderade sidor och kommer så småningom att förbrukas.

Det finns en bakgrundsprocess i SSD:er som frigör sidor vars data har blivit ogiltiga, vilket gör dem till bra kandidater för att raderas. Denna bakgrundsprocess kallas "sopsamling."

Slutsats

Om en NAND-baserad SSD är full är att skriva ny data till den en helt annan process jämfört med att skriva till en tom SSD. Om enheten är tom är skrivprocessen mycket lik roterande enheter. Men om SSD:n redan innehåller data krävs ytterligare steg:

  1. SSD:n måste avgöra om det finns tillräckligt med ledigt utrymme för att acceptera data.
  2. Om inte, anropar den sin skräpinsamlingsrutin för att gruppera och flytta giltiga data så att ett helt block kan raderas (så att sidorna i blocket kan ta emot ny data).
  3. Blocket är raderat.
  4. Uppgifterna skrivs.

Dessa extra steg hanteras alla av SSD-styrenheten utan värdintervention, men resulterar i prestandavariationer.

Se "SSD-prestandatillstånd” vitbok på Micron.com för mer information.

Doug Rollins (Senior applikationsingenjör, Enterprise Solid State Drives, Micron Technology)
Doug Rollins började på Micron 2009 som applikationsingenjör inom Enterprise SSD Products-gruppen. Innan han kom till Micron arbetade Mr. Rollins 17 år med design och tillverkning av serversystem, nätverksutrustning och lagringsplattform/dataskydd samt solid state-lagring. Mr. Rollins är namngiven uppfinnare i 13 amerikanska patent och har erkänts av både Storage Networking Industry Association (SNIA) och Intel Corporation för enastående tekniska prestationer. Mr. Rollins tog sin kandidatexamen i matematik från Humboldt State University.
 

Diskutera den här historien