RAM-hukommelsesorganisation: UMA, NUMA og forskelle

Computersystemer kan klassificeres efter den måde, hvorpå organisationen af ​​deres RAM hukommelse er designet og derfor i to forskellige grupper: UMA-system og NUMA-systemer. Vi forklarer de grundlæggende forskelle mellem disse måder at organisere et system i henhold til hukommelsesorganisation, og hvad er fordele og ulemper ved hver type.

Når man designer et system, er en af ​​de første ting, der placeres på designbordet, hvordan RAM'en vil blive organiseret, da dette ikke kun indikerer, hvordan systemarkitekturen vil være, men også dens ydeevne, dets produktionsomkostninger og dens udvidelsesmuligheder.

RAM-hukommelsesorganisation

RAM-hukommelsesorganisation: UMA

Organisation Memoria UMA

UMA er forkortelsen for Uniform Memory Access og henviser til alle systemer, hvor RAM er en enkelt delt brønd med hensyn til adgang fra CPU og resten af ​​systemets processorer. Denne type konfiguration bruges især i SoC'er i dag, hvor de forskellige komponenter deler adgang til hukommelse.

UMA-systemet er også det, der anvendes i videospilkonsoller, generelt er det hukommelsessystemet, der bruges i hvert system, hvor dets komponenter er monteret på et fælles kort, hvor routing af to forskellige typer hukommelsesbrønde er en komplikation på stierne og kommunikationslinjer, der krydser pladen.

Det er derfor den nemmeste måde at opbygge et hukommelsessystem på enhver form for computer, men det bringer en række problemer med sig, såsom at deling af hukommelsesadgang ender med at skabe en konflikteffekt, hvor den oprettes til en "venteliste ”For at få adgang til data, som kun kan afhjælpes ved brug af RAM-hukommelsestyper med forskellige adgangskanaler.

RAM-hukommelsesorganisation: NUMA

Organisation memoria NUMA

NUMA eller ikke-ensartet hukommelsesadgang til hukommelsesorganisation. Henviser til systemer, hvor der anvendes flere forskellige hukommelsesbrønde i det samme system. Dette er tilfældet med pc'en, hvor vi for eksempel kan se, hvordan grafikkort har deres egen hukommelse, der adskiller sig fra systemets vigtigste RAM.

NUMA-systemer lider ikke under konfliktproblemet i UMA-systemers hukommelsesadgang, men faktisk for at kommunikere de forskellige komponenter i systemet med hinanden resulterer det i et meget komplekst system. Årsagen til dette er, at hver af komponenterne skal have adgangsmekanismer til den primære RAM-hukommelse til kommunikation med CPU'en, for eksempel har GPU'er DMA-enheder, der giver dem adgang til systemets vigtigste RAM og laver kopier af bestemte data fra RAM til VRAM.

Denne type hukommelsesorganisation bruges, når vi ønsker at oprette et system med udvidelsesfunktioner, for dem er det nødvendigt at oprette hvad der kaldes udvidelsesporte, som bruges til kommunikation af system-CPU'en med systemets RAM-hukommelsessystemer. hver komponent, der er en del af systemet.

Adressering versus fysisk organisation

CPU-RAM

Et af idealerne i pc er det helt sammenhængende hukommelsessystem, hvor adressering af de forskellige komponenter i det er almindeligt i dem alle. Dette betyder, at hvis vi ændrer adressen, siger for eksempel F4. Derefter skal alle komponenter, når de går til hukommelsesadressen F4, enhver anden komponent på pc'en henvise til den samme hukommelsesadresse.

Man kan fra starten tænke, at da UMA-systemer altid har deres hukommelse delt på det fysiske niveau, vil det være det samme på adresseringsniveauet, da vi taler om den samme hukommelsespulje på det fysiske niveau. Virkeligheden er en helt anden, da det er nødvendigt for de forskellige komponenter at være sammenhængende med hensyn til hukommelse, hvilket betyder at tage det foregående eksempel, hvis vi skriver værdien 30 i adressen F4, så ved alle komponenterne, at der er en værdi 30 der.

CoreLink-Cache-netværk

Måden at få alle komponenterne i en SoC til at være helt sammenhængende er derfor ikke at bruge den samme hukommelsescontroller, men at tilføje et sidste cache-niveau lige før controlleren, som ville være ud over CPU'en, GPU. og andre komponenter og ville blive set af dem alle som et sidste niveau af cache.

Det faktum at tilføje en cache på sidste niveau før hukommelsescontrolleren er typisk for PostPC-systemer, da de alle var designet til SoC'er fra starten, er der ingen programmer, der laver kopier af data fra et rum til et andet. På pc er dette dog ikke almindeligt, og selvom Intel , AMD har lanceret SoC'er i årevis, hvor alle komponenterne er samlet i en enkelt chip, adgang til de forskellige elementer i SoC er ikke, og dele af RAM'en er isoleret udelukkende til en bestemt komponent. For eksempel, når vi har en integreret grafik, og vi tildeler en mængde hukommelse til den nævnte grafik, fortæller det, vi laver, CPU'en, at dens plads ikke kan røre ved den, da den ikke er tildelt.