CPU, SSD og Flash -controller, hvordan oplysninger bevæger sig på pc

CPU, SSD og Flash controller

I alle SSD'er er der en central chip, der er ansvarlig for at kommunikere NVMe -chipsene med resten af ​​pc'ens komponenter, dette er flash -controlleren, der findes i hver SSD enhed, det være sig en M.2-enhed, en SSD-disk i 2.5-tommer formfaktor eller en ekstern SSD. Men hvordan fungerer dette stykke hardware? Vi forklarer det for dig.

Flash-hukommelse er det, vi kalder ikke-flygtigt RAM eller NVRAM, hvorfor adgang til denne type hukommelse sker med en meget lignende grænseflade, hvis ikke næsten det samme som en konventionel hukommelsesgrænseflade. På grund af arten og placeringen af ​​NAND Flash -hukommelsen af ​​NVMe -typen i hardwaren på SSD'en er dens drift imidlertid helt anderledes end grænsefladerne med konventionel RAM -hukommelse.

Hvad er en flash -controller?

Kontrol af flash

En flash -controller er den centrale chip, der findes i hvert SSD -drev, som skal udføre en række funktioner, der er afgørende for dens drift. Disse adresserer og kopierer data fra SSD -flashhukommelse til system -RAM eller VRAM. Nedenfor beskriver vi årsagen, og hvordan disse to processer fungerer, og hvordan flashcontrolleren udfører dem.

Oficina Correos

For at forstå nytten af ​​flash -controlleren i SSD'en er det bedst at gøre en lignelse, hvor vi har to posthuse, et statligt et, der har alle adresserne i byerne i landet, men ikke på en konventionel måde. For at forstå det bedre, tænk på, at hver adresse i vores eksempel ikke er en gade med et nummer, men en postboks eller med andre ord et nummer. Og hvad med det andet posthus? Nå, det virker i omfanget af et meget mindre sted, f.eks. En provins eller en lille by.

Da hvert kontor vil tildele alle adresser fra den første til den sidste i henhold til antallet af adresser, den har til rådighed, finder vi, at nummereringen af ​​hver adresse, der er tildelt af hvert af postkontorerne, ikke svarer til hinanden. Nå, det første posthus er sættet med hukommelsesstyringsenheder eller MMU'er, der genererer de virtuelle adresser for at få adgang til dataene i fysisk hukommelse, men CPU skal have en måde at få adgang til ud over RAM, og det er derfor dens adressering ikke kun indeholder alle de hukommelsesadresser, der er i systemets RAM, men også ud over.

På et fysisk niveau har både traditionel og ikke-flygtig RAM, som vi kender som flashhukommelse forskellig adressering fordi deres grænseflade begynder at regne med sig selv og ikke globalt. Derfor er en af ​​Flash -controllerens opgaver overførsel af hukommelsesadresser så CPU'en eller enhver anden processor kan få adgang til den.

Adresseoversættelse på FLASH

Traslado retningskontrol Flash Hver flash -controller har en RAM -hukommelse tildelt , undtagen i DRAM-Less, hvor det bruger systemets RAM med den ekstra ventetid og tab af ydeevne, som dette indebærer. Men i modsætning til hvad vi kan konkludere med det blotte øje, fungerer denne hukommelse ikke kun som en mellemliggende databuffer, men bruges også til overførsel af adresser.

Det vil sige, at RAM -hukommelsen, der er tildelt flash -controlleren, gemmer adresserne sendt af CPU'en, overførselstabellen og gennem en simpel operation genererer de fysiske hukommelsesadresser, der giver den adgang til dataene inde i NVMe -chipsene, der er sammensat af NAND Flash -celler, enten for at læse eller skrive på dem. Og det skal tages i betragtning, at denne tabel bliver større og større, jo mere hukommelse SSD'en har indeni, og derfor behovet for en konventionel RAM -hukommelseschip.

Vi kan se dette for eksempel i den integrerede SSD -enhed af PlayStation 5, hvor vi kan se en lille hukommelseschip, der ledsager NVMe-chipsene, hvilket er almindeligt i langt de fleste SSD-enheder, undtagen, som vi tidligere har nævnt, taler vi om et DRAM-Less SSD-drev.

Kopiering af data fra Flash til RAM eller VRAMControlador Flash -bevægelsesdatoer

Flash -hukommelse er bedre end en konventionel harddisk, da den ikke arver adgangsproblemerne på klassiske diskdrev. Ligesom dens høje overførselshastighed. På trods af denne fordel i forhold til HDD'er er det ikke en ideel hukommelse så CPU'en kan fungere direkte med den, meget mindre a GPU . Hvis vi for de klassiske DDR -hukommelser med en højere båndbredde har brug for brug af caches for at afhjælpe manglen på hastighed på dette, i tilfælde af flashhukommelser er dette værre.

Det er derfor flash -controlleren skal kopiere dataene til RAM, så CPU'en kan få adgang til den, men der er et inputproblem, af sikkerhedsmæssige årsager er RAM opdelt i to forskellige rum. En, hvor applikationer kan få adgang, og en anden, der udelukkende er tilgængelig af operativsystemet, og hvor programmer ikke kan få adgang. Under denne forudsætning, hvordan ved flashcontrolleren, hvor dataene skal kopieres? Nå, en del af RAM'et tages som en mellemliggende buffer, og dataene kopieres der. Det er CPU'en i selve systemet, hvis der ikke er nogen accelerator, der varetager denne opgave, den, der ville have ansvaret for at kontrollere dataene i bufferen og kopiere dem til den tilsvarende del af RAM'en.

Hvad angår VRAM, afhængigt af hvilken type GPU og API vi bruger, i en GPU med fuld understøttelse med DX12 Ultimate er selve GPU'en den, der kan tage dataene fra SSD'en, i en uden nævnte support kræver det deltagelse af CPU, hvilket er et dobbeltjob, da du derefter skal kopiere dem fra RAM til VRAM ved at foretage opkald til CPU- og GPU -datakopieringsmekanismerne.