I alla SSD -enheter finns det ett centralt chip som ansvarar för att kommunicera NVMe -chipsen med resten av komponenterna i datorn, det här är blixtkontrollen som finns i varje SSD enhet, vare sig det är en M.2-enhet, en SSD-disk i 2.5-tums formfaktor eller en extern SSD. Men hur fungerar den här hårdvaran? Vi förklarar det för dig.
Flashminne är vad vi kallar icke-flyktigt RAM eller NVRAM, varför tillgång till denna typ av minne görs med ett mycket liknande gränssnitt, om inte nästan samma som ett konventionellt minnesgränssnitt. Men på grund av NAND Flash -minnet av NVMe -typen och placeringen i SSD -maskinvaran är dess funktion helt annorlunda än gränssnitten med konventionellt RAM -minne.
Vad är en blixtkontroll?
En flash -kontroller är det centrala chipet som finns i varje SSD -enhet, som måste utföra en rad funktioner som är väsentliga för dess funktion. Dessa adresserar och kopierar data från SSD -flashminne till system -RAM eller VRAM. Nedan beskriver vi anledningen och hur dessa två processer fungerar och hur blixtkontrollen utför dem.
För att förstå användbarheten av blixtkontrollen i SSD är det bäst att göra en liknelse där vi har två postkontor, ett statligt ett som har alla adresser till städerna i landet men inte på ett konventionellt sätt. För att förstå det bättre, tänk att varje adress i vårt exempel inte är en gata med ett nummer, utan en postbox eller, med andra ord, ett nummer. Och hur är det med det andra postkontoret? Tja, det här fungerar i stor skala på en mycket mindre plats, till exempel en provins eller en liten stad.
Eftersom varje kontor kommer att tilldela alla adresser från det första till det sista i enlighet med antalet adresser det har tillgängligt, finner vi att numreringen av varje adress som tilldelats av vart och ett av postkontoren inte kommer att motsvara varandra. Tja, det första postkontoret är uppsättningen minneshanteringsenheter eller MMU: er som genererar de virtuella adresserna för att komma åt data i fysiskt minne, men CPU måste ha ett sätt att komma åt bortom RAM -minnet och det är därför dess adressering inte bara innehåller alla minnesadresser som finns i system -RAM utan också bortom.
På en fysisk nivå har både traditionellt och icke-flyktigt RAM-minne, vilket vi känner till som flashminne olika adressering eftersom deras gränssnitt börjar räkna med sig själv och inte globalt. Därför är en av Flash -kontrollens uppgifter överföring av minnesadresser så att processorn eller någon annan processor kan komma åt den.
Adressöversättning på FLASH
Varje blixtkontroll har ett RAM -minne tilldelat , förutom i DRAM-Less där det använder systemets RAM-minne med den extra latens och förlust av prestanda som detta innebär. Men, i motsats till vad vi kan sluta med blotta ögat, fungerar detta minne inte bara som en mellanliggande databuffert, utan används också för överföring av adresser.
Det vill säga RAM -minnet som tilldelas till flash -styrenheten lagrar adresserna som skickas av CPU: n, överföringstabellen och genom en enkel operation genererar de fysiska minnesadresserna som gör det möjligt att komma åt data inuti NVMe -chipsen som består av NAND Flash -celler, antingen för att läsa eller skriva på dem. Och det måste beaktas att detta bord kommer att bli större och större ju mer minne SSD har inuti, därav behovet av ett konventionellt RAM -minneskort.
Vi kan se detta till exempel i den integrerade SSD -enheten i PlayStation 5, där vi kan se ett litet minneskort som följer med NVMe-chipsen, vilket är vanligt i de allra flesta SSD-enheter, förutom, som vi har nämnt tidigare, pratar vi om en DRAM-Less SSD-enhet.
Kopierar data från Flash till RAM eller VRAM
Flash -minne är bättre än en vanlig hårddisk eftersom det inte ärver åtkomstproblemen för klassiska hårddiskar. Som dess höga överföringshastighet. Trots denna fördel jämfört med hårddiskar är det inte ett idealiskt minne så att CPU: n kan fungera direkt med den, mycket mindre a GPU . Om vi för de klassiska DDR -minnena med högre bandbredd behöver använda cacher för att lindra bristen på hastighet för detta, för flashminnen är detta värre.
Det är därför blixtkontrollern måste kopiera data till RAM så att CPU: n kan komma åt den, men det finns ett ingångsproblem, av säkerhetsskäl är RAM -minnet uppdelat i två olika utrymmen. En där applikationer kan komma åt och en annan som uteslutande är åtkomlig av operativsystemet och där program inte kan komma åt. Under denna förutsättning, hur vet blixtkontrollen var data ska kopieras? Tja, en del av RAM -minnet tas som en mellanliggande buffert och data kopieras dit. Det är processorn i själva systemet, om det inte finns någon accelerator som ansvarar för denna uppgift, den som skulle ansvara för att kontrollera data i bufferten och kopiera den till motsvarande del av RAM -minnet.
När det gäller VRAM, beroende på vilken typ av GPU och API vi använder, i en GPU med fullt stöd med DX12 Ultimate är själva GPU: n den som kan ta data från SSD: n, i ett utan nämnda stöd kräver det deltagande av CPU, vilket är ett dubbeljobb eftersom du sedan måste kopiera dem från RAM till VRAM genom att ringa till CPU- och GPU -datakopieringsmekanismerna.