Erindringens hierarki

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 6. oktober 2021; checks kræver 3 redigeringer .

Hierarkiet af computerhukommelse  er konceptet med at bygge en sammenkobling mellem klasser af forskellige niveauer af computerhukommelse baseret på en hierarkisk struktur.

Essensen af ​​behovet for at opbygge hierarkisk hukommelse er behovet for at forsyne et computersystem (en separat computer eller en klynge) med en tilstrækkelig mængde hukommelse, både operationel og permanent.

I betragtning af uensartetheden af ​​frekvensen af ​​adgang til specifikke poster ( interne processorregistre , cachehukommelse , sider og filer ), bruges forskellige tekniske løsninger, der har fremragende egenskaber, både tekniske og pris og vægt og størrelse. Langtidslagring i dyr ultrahurtig og endda random access memory er som regel ikke rentabel, så denne slags data gemmes på drev - disk , tape , flash osv.

For at sikre sikkerhedskopiering af data , for eksempel af sikkerhedshensyn, kan brugere oprette biblioteker på flytbare medier (for eksempel et virtuelt båndbibliotek eller et diskarray ) og fylde dem med deres egne filer i forskellige formater. Adgang til disse data tager længst tid, men samtidig er deres kapacitet enorm.

Grundlæggende er de tekniske egenskaber midlertidige, det vil sige hvilke tidskriterier der passer til en bestemt løsning. Behovet for højhastighedshukommelse er normalt begrænset enten af ​​høje overheadomkostninger til at sikre driften af ​​kredsløb eller af højt strømforbrug eller af de høje omkostninger ved løsningen.

Forskellige typer hukommelse danner et hierarki, hvor der på forskellige niveauer er minder med forskellig adgangstid, kompleksitet, pris og volumen. Muligheden for at opbygge et hukommelseshierarki skyldes, at de fleste algoritmer tilgår et lille datasæt ved hvert tidsinterval, som kan placeres i hurtigere, men dyrt og derfor lille, hukommelse (se en:locality of reference ). Brugen af ​​hurtigere hukommelse øger ydelsen af ​​computerkomplekset. Hukommelse henviser i dette tilfælde til en datalagringsenhed ( hukommelsesenhed ) i computer- eller computerhukommelse .

Når man designer højtydende computere og systemer, er der mange afvejninger, der skal foretages, såsom størrelse og teknologi for hvert niveau i hierarkiet. Du kan overveje et sæt af forskellige hukommelser (m 1 ,m 2 ,...,m n ) placeret i hierarkiet, det vil sige, at hvert m i -niveau så at sige er underordnet hierarkiets m i-1- niveau. For at reducere ventetiden på højere niveauer kan lavere niveauer forberede data i bidder med buffering og, når bufferen er fuld, signalere til det øverste niveau, at data kan modtages.

Ofte er der 4 primære (forstørrede) niveauer af hierarki: [1]

  1. Processorens interne hukommelse ( registre organiseret i en registerfil og processorcache ).
  2. System RAM ( RAM ) og ekstra hukommelseskort.
  3. Hot-access-drev (On-line masselagring) - eller sekundær computerhukommelse. Harddiske og solid state-drev , som ikke kræver lange (sekunder eller mere) handlinger for at begynde at modtage data.
  4. Drev, der kræver medieskift (Off-line bulk storage) - eller tertiær hukommelse. Dette omfatter magnetbånd , bånd- og diskbiblioteker , der kræver lang tilbagespoling eller mekanisk (eller manuel) omskiftning af lagermedier.

De fleste moderne pc'er bruger følgende hukommelseshierarki:

  1. Processorregistre organiseret i en registerfil  er den hurtigste adgang (i størrelsesordenen 1 cyklus), men kun et par hundrede eller sjældent tusindvis af bytes i størrelse.
  2. Niveau 1 processorcache (L1) - adgangstid af størrelsesordenen flere cyklusser, titusinder af kilobytes i størrelse
  3. Processor niveau 2 cache (L2) - længere adgangstid (2 til 10 gange langsommere end L1), omkring en halv megabyte eller mere
  4. Niveau 3 processor cache (L3) - adgangstiden er omkring hundrede cyklusser, der varierer i størrelse fra nogle få megabyte til hundredvis
  5. Niveau 4 processorcache (L4) - adgangstid på flere hundrede cyklusser, en til flere hundrede megabyte stor. Anvendes i 5. generation af Intel-processorer
  6. System RAM - adgangstid fra hundredvis til muligvis tusindvis af cyklusser, men enorme størrelser, fra flere gigabyte til flere terabyte. RAM-adgangstiden kan variere for forskellige dele af den i tilfælde af NUMA -klassekomplekser (med uensartet hukommelsesadgang)
  7. Disklager  - mange millioner cyklusser, hvis dataene ikke var cachelagret eller bufret på forhånd, størrelser op til flere terabyte
  8. Tertiær hukommelse - forsinkelser op til flere sekunder eller minutter, men praktisk talt ubegrænsede mængder ( båndbiblioteker ).

De fleste programmører antager normalt, at hukommelsen er opdelt i to niveauer, hovedhukommelse og disklagring, selvom det i assemblersprog og assemblerkompatible sprog (såsom C ) er muligt at arbejde direkte med registre. At drage fordel af hukommelseshierarkiet kræver samordnet handling fra programmøren, hardwaren og kompilatorerne (såvel som grundlæggende support i operativsystemet):

Mange programmører tager ikke højde for multi-level memory, når de programmerer. Denne tilgang virker, så længe applikationen ikke oplever ydeevneforringelse på grund af underydelse af hukommelsesundersystemet. Når du retter koden ( refactoring ), er det nødvendigt at tage højde for tilstedeværelsen og særegenhederne ved arbejdet i de øvre niveauer af hukommelseshierarkiet for at opnå den højeste ydeevne.

Se også

Litteratur

Noter

  1. Ty, Vinge; Zee, Benjamin. Computerhardware/softwarearkitektur  (neopr.) . - Bell Telephone Laboratories, Inc., 1986. - S.  30 . — ISBN 0-13-163502-6 .