ZNS SSD: egenskaper och användning av detta lagringsformat

ZNS SSD: er kommer att bli verklighet på nolltid. De är inte en annan typ av hårdvara, men de varierar i hur de får tillgång till data på NAND Flash -minneskort och använder en mer optimerad metod för att använda NAND Flash -minne. Så de innebär förändringar i Flash Controller integrerad i varje SSD.

SSD ZNS -standarden godkändes som standard inom NVMe och är en del av version 2.0 av densamma. Det innebär stora förändringar i ditt sätt att komma åt och organisera data som lagras inuti. Hittills har SSD nåtts som om det vore en konventionell hårddisk, vilket inte är den bästa metoden för denna typ av minne.

ZNS SSD

Vad är en SSD?

En konventionell SSD på hårdvarunivå är en uppsättning icke-flyktiga RAM minnen, särskilt NAND Flash -minne, som är anslutna till en blixtkontroll, som fungerar på samma sätt som en vanlig minneskontroller och ansvarar för att hantera åtkomstbegäranden till det minne du har anslutit.

Hittills har SSD: er använt samma sätt att hantera sina data som en konventionell hårddisk, vilket inte är särskilt effektivt när det gäller deras livslängd och hur man använder sina funktioner. Anledningen är att NAND Flash -minnet trots att det inte är flyktigt som på en hårddisk är mer lik RAM när det gäller datatillgång. Vad gör det bättre att använda ett nytt sätt att komma åt denna typ av minne som är mer avancerat och därför i linje med dess kapacitet.

ZNS är just den formen, låt oss nu se dess egenskaper.

Vad är en ZNS SSD?

ZNS -styrenhet

Först och främst, vad betyder ZNS? Tja, de är förkortningen för Zoned NameSpaces. Vilket är ett sätt att organisera lagring på en disk och därför pratar vi om hur data lagras på SSD. På hårddiskar är det som görs att organisera informationen på sidor som lagras i tabeller och den senare i kataloger. Personsökningssystemet används för att organisera data på en konventionell hårddisk där varje sida har ett fast och specifikt utrymme.

Å andra sidan, i en ZNS SSD är det som görs att dela upp utrymmet i zoner av olika storlekar. Målet är att när CPU, den GPU eller något annat element måste skriva data i minnet istället för att peka på en virtuell minnesadress, vad det kommer att göra är att peka på det området. Som kommer att ha definierats tidigare när det gäller storlek. Vad är dess funktion? Enkelt, varje gång du vill skriva till flashminne anropas det namnområde som tilldelats den zonen. Blixtkontrollen skriver sedan data i den zonen och inte utanför den. Det kommer också att göra det sekventiellt, för att inte lämna döda utrymmen på disken och optimera dess användning.

SSD ZNS

Vad som uppnås med denna teknik är att flashminnesstyrenheten inte behöver hantera skrivningar till slumpmässiga minnesadresser och användningen av utrymme på SSD är optimerad. CPU: n reserverar helt enkelt en avgränsad del av lagringen som ett område för lagring av data. När du behöver komma åt den zonen kommer datorn att berätta för flashminneskontrollern att den vill komma åt data i den specifika zonen genom att anropa det specifika namnområdet.

ZNS SSD -enheter använder det vi kallar logisk blockadressering, var och en av zonerna består av logiska block eller LBA. Varje zon kan ha valfritt antal logiska block för att lagra data, men den måste vara minst 2 i storlek och när data för ett logiskt block eller LBA har skrivits fylls informationen i nästa i sekvens.

Den största fördelen är att den inte skapar döda utrymmen på SSD: n genom att inte reservera mer minne än nödvändigt hela tiden. Detta gör skrivcyklerna mycket kortare och gör att vi också lättare kan förutsäga latensen i tillgången till data eftersom den organiseras sekventiellt istället för att distribueras av enheten.

Ange maskin på en ZNS SSD och kommandon

Máquina Estado ZNS

För att stödja Zones NameSpaces måste flashminneskontrollern kunna utföra en serie instruktioner för att hantera informationen och åtkomsten till SSD: n korrekt. Det är därför en serie finita tillståndsmaskiner används för att styra informationen på SSD: n. Slutliga tillståndsmaskiner är mikrotrådkod i hårdvaran, i detta fall blixtkontrollen, som baserat på ingångsinformation indikerar hur den måste fungera med det området i flashminnet.

  • Tömma: data kan skrivas när det inte finns något, om en avläsning görs kommer den att returnera de data som är fördefinierade av tillverkaren. För det mesta skräp. En zon kan raderas helt genom reset -kommandot, detta förstör organisationen av de olika zonerna.
  • Full: zonen är full av data och kan inte lagra mer information, men den kan användas för skrivskydd.
  • Öppet: tillåter läsning och skrivning av data i den aktuella aktiva LBA i zonen. Varje zon kan antingen vara implicit eller öppet. Den första hänvisar till det faktum att vi kan öppna den genom att åberopa kommandot Öppna för flashkontrollen. Det explicita läget har istället samma funktion, men från själva applikationen.
  • Stängd: när en zon stängs accepterar den bara läskommandon och tillåter inte inmatning av ny data.
  • Finish: raderar inte data utan markerar zonen som komplett. Oavsett om mer minne ursprungligen tilldelades för lagring i form av flera LBA, kan ingen mer data lagras i den zonen.

I början av varje zon, vad blixtkontrollen gör är att placera en etikett som påminner dig om statusen för den zonen i minnet.