Minnehierarki

Minnehierarki: balansen mellom fart og kostnad
Jo raskare minnet er, jo dyrare er det. Dette har vore sant sidan dei første datamaskinene. Ei datamaskin bygd berre med den raskaste minnetypen ville bli enormt kostbar, og ho ville heller ikkje fungert så godt. Ulike typar minne har nemleg ulike eigenskapar. Det raskaste minnet vi bruker i dag, er til dømes flyktig (volatile), noko som betyr at det treng oppfrisking mange gonger i sekundet for å halde på dataa. Det gjer dette minnet ueigna for langtidslagring.
Løysinga for å få ei kostnadseffektiv og godt fungerande datamaskin er å kombinere ulike typar minne og å flytte data mellom dei ved behov.
Minnehierarkipyramiden
Minnehierarkipyramiden tek utgangspunkt i plasseringa av minnet i forhold til prosessorkjernane til datamaskina. Plasseringa av minnet er både responstida mellom prosessorkjernen og minnet, overføringsfarta og i praksis òg den fysisk plasseringa.
Prosessorkjernane er dei raskaste einingane i datamaskina. Dei gjer utrekningar og er avhengige av å ha instruksjonar for kva dei skal gjere, og data å basere utrekningane på. Prosessorkjernen har derfor innebygde register der han kan hente og mellomlagre data veldig raskt.
For å levere data til registera har prosessoren fleire nivå med cache-minne (L1, L2 og L3) som er tregare, men har meir lagringsplass enn registera. Dette minnet ligg direkte ved eller mellom prosessorkjernane.
Prosessor-cachen får dataa sine frå arbeidsminnet til maskina (RAM,) som altså er mykje større, men tregare enn cache-minnet. RAM er vanlegvis plassert på hovudkortet, ganske nært prosessorsokkelen.
Arbeidsminnet får dataa sine frå lagringseiningar som er ikkje-flyktige (non-volatile), som SSD-ar (Solid State Drive, eit lagringsmedium som bruker flashminne) eller tradisjonelle harddiskar. Desse er tregare, men har større lagringsplass enn arbeidsminnet (RAM).
Minnehierarkipyramiden gir ei enkel oversikt over kor raske dei ulike minnetypane er i forhold til kvarandre.
Modellen viser òg kva delar av minnet til datamaskina som er flyktige (volatile), og kvar dataa som er lagra, forsvinn når oppfriskinga stoppar (til dømes ved tap av straum). Han viser òg kva delar som er ikkje-flyktige (non-volatile), og som beheld lagra data sjølv utan straum.
Døme på minnehierarkiet i praksis
Dømet under er samansett av talmateriale frå ulike utstyrsleverandørar, nettbutikkar og testar gjorde av moderne, men vanleg datautstyr i 2024.
I tabellen bruker vi opplysningane om tid nanosekund (ns) som er 0,000 000 001 sekund og millisekund (ms) som er 0,000 001 sekund.
Namn | Storleik | Lesefart | Responstid | Pris per GB |
|---|---|---|---|---|
CPU-register | 0,002 MB | 0,4 ns | - | |
L1-cache | 0,640 MB* | 3700 GB/s | 0,8 ns | - |
L2-cache | 8 MB* | 1800 GB/s | 2,8 ns | - |
L3-cache | 32 MB | 400 GB/s | 10 ns | - |
RAM DDR5 | 32 GB | 53 GB/s | 15 ns | 50 kr/GB |
PCIe 4 SSD | 1 000 GB | 4,5 GB/s | 0,5 ms | 3,1 kr/GB |
SATA HDD | 10 000 GB | 0,2 GB/s | 4.0 ms** | 0,47 kr/GB |
Teip LTO-8 | 30 000 GB | 0,9 GB/s*** | -**** | 0,2 kr/GB |
* Total L1 og L2-cache mengde for heile prossesoren. Kvar kjerne har ein eigen del av L1 og L2-minne, til dømes ein åttandedel for ein åttekjerna prosessor.
** Denne responstida gjeld viss harddiskplata allereie er i rørsle.
*** Farten er mogleg på grunn av komprimering av datafilene før overføring. Faktisk vil overføringsfarten til teipen derfor vere noko lågare.
**** Søketida på teip avheng av kvar på teipen innhaldet ligg. Søketida vil ta fleire sekund.
Minnehierarki og skjermkort (GPU)
Skjermkort (GPU) vart tidlegare brukt berre for å teikne opp kvart skjermbilete (frame) som så vart vist på skjermen. Skjermkortet henta dataa sine frå arbeidsminnet til datamaskina (RAM).
I dag har skjermkort sitt eige arbeidsminne, og fordi det kan gjere ein del typar kalkuleringar meir effektivt og raskare enn prosessoren til datamaskina, blir det brukt til meir enn å teikne opp skjermbilete. Dei spesielle arbeidsoppgåvene til skjermkortet kan ofte delast opp i mange små delar på førehand og reknast ut samtidig parallelt. Døme på dette er simuleringar, KI-trening og KI-køyring.
Det tradisjonelle minnehierarkipyramiden tek utgangspunkt i prosessoren (CPU) og har ikkje skjermkortet med i det heile, men vi kan lage ein eigen modell med utgangspunkt i skjermkortet og korleis responstid og overføringsfart er mellom skjermkortkjernar, eige arbeidsminne, datamaskines arbeidsminne (RAM) og andre lagringseiningar.