RAM Memory Organization: UMA, NUMA og Differences

Datasystemer kan klassifiseres etter måten organisasjonen av deres RAM minnet er designet, og derfor i to forskjellige grupper: UMA-system og NUMA-systemer. Vi forklarer de grunnleggende forskjellene mellom disse måtene å organisere et system i henhold til minneorganisasjon og hva er fordelene og ulempene ved hver type.

Når du designer et system, er en av de første tingene som plasseres på designbordet måten RAM skal organiseres på, da dette ikke bare vil indikere hvordan systemarkitekturen vil være, men også dens ytelse, produksjonskostnad og dens utvidbarhet.

RAM-minneorganisasjon

RAM-minneorganisasjon: UMA

Organisasjonsminne UMA

UMA er forkortelsen for Uniform Memory Access og refererer til alle systemer der RAM er en enkelt delt brønn når det gjelder tilgang fra prosessor og resten av systemets prosessorer. Denne typen konfigurasjoner brukes spesielt i SoCs i dag, der de forskjellige komponentene deler tilgang til minne.

UMA-systemet er også det som brukes i videospillkonsoller, generelt er det minnesystemet som brukes i hvert system der komponentene er montert på et felles kort, der rutingen av to forskjellige typer minnebrønner er en komplikasjon på stiene. og kommunikasjonslinjer som krysser platen.

Det er derfor den enkleste måten å bygge et minnesystem på alle typer datamaskiner, men det bringer med seg en rekke problemer som det at deling av minnetilgang ender med å skape en konflikteffekt, der det blir opprettet en "venteliste ”For å få tilgang til data, som bare kan lindres ved bruk av RAM-minnetyper med forskjellige tilgangskanaler.

RAM-minneorganisasjon: NUMA

Organization memoria NUMA

NUMA eller ikke-enhetlig minne tilgangsorganisasjon. Henviser til systemer der flere forskjellige minnebrønner brukes i samme system. Dette er tilfellet med PC-en der vi for eksempel kan se hvordan grafikkort har sitt eget minne som er forskjellig fra systemets viktigste RAM.

NUMA-systemer lider ikke av konfliktproblemet i minnetilgang til UMA-systemer, men for å kommunisere de forskjellige komponentene i systemet med hverandre, resulterer det i et veldig komplekst system. Årsaken til dette er at hver av komponentene må ha tilgangsmekanismer til RAM-minnet for kommunikasjon med CPUen, for eksempel har GPU-er DMA-enheter som lar dem få tilgang til systemets viktigste RAM og lage kopier av visse data fra RAM til VRAM.

Denne typen minneorganisasjon brukes når vi ønsker å lage et system med utvidelsesmuligheter, for dem er det nødvendig å lage det som kalles utvidelsesporter, som brukes til kommunikasjon av system-CPU med RAM-minnesystemene til systemet. hver komponent som er en del av systemet.

Adressering mot fysisk organisasjon

CPU RAM

En av idealene i PC er det helt sammenhengende minnesystemet, hvor adressering av de forskjellige komponentene i den er vanlig i dem alle. Dette betyr at hvis vi endrer adressen, for eksempel, F4. Da må alle komponentene referere til den samme minneadressen når du går til minneadressen F4.

Man kan tenke fra begynnelsen at siden UMA-systemer har minnet alltid delt på det fysiske nivået, vil det være det samme på adresseringsnivået, siden vi snakker om samme minnepool på det fysiske nivået. Virkeligheten er ganske annerledes, siden det er nødvendig at de forskjellige komponentene er sammenhengende når det gjelder minne, noe som betyr at å ta det forrige eksemplet hvis vi skriver verdien 30 i adressen F4, så vet alle komponentene at det er en verdi 30 der.

CoreLink-Cache-nettverk

Måten å få alle komponentene i en SoC til å være helt sammenhengende er derfor ikke å bruke den samme minnekontrolleren, men å legge til et siste cache-nivå like før kontrolleren, som ville være utenfor CPU, GPU. og andre komponenter og vil bli sett på av alle som et siste nivå av hurtigbuffer.

Det faktum at du legger til en cache på siste nivå før minnekontrolleren er typisk for PostPC-systemer, siden alle av dem var designet for SoC-er fra begynnelsen, er det ingen programmer som lager kopier av data fra ett rom til et annet. På PC er dette imidlertid ikke vanlig og selv om Intel og AMD har lansert SoC i årevis hvor alle komponentene er samlet i en enkelt brikke, tilgang til de forskjellige elementene i SoC ikke er, og deler av RAM er isolert eksklusivt for en bestemt komponent. For eksempel, når vi har en integrert grafikk og vi tildeler en mengde minne til den grafiske, er det vi gjør å fortelle CPUen at plassen ikke kan berøre den, siden den ikke er tildelt.