Hierarkin av datorminne är konceptet att bygga en sammankoppling mellan klasser av olika nivåer av datorminne baserat på en hierarkisk struktur.
Kärnan i behovet av att bygga hierarkiskt minne är behovet av att förse ett datorsystem (en separat dator eller ett kluster) med en tillräcklig mängd minne, både operativt och permanent.
Med tanke på heterogeniteten i frekvensen av åtkomst till specifika poster ( interna processorregister , cacheminne , sidor och filer ) används olika tekniska lösningar som har utmärkta egenskaper, både tekniska och prisvärda samt vikt och storlek. Långtidslagring i dyrt ultrasnabbt och till och med random access-minne är som regel inte lönsamt, så denna typ av data lagras på enheter - disk , band , flash , etc.
För att säkerställa säkerhetskopiering av data , till exempel av säkerhetsskäl, kan användare skapa bibliotek på flyttbara media (till exempel ett virtuellt bandbibliotek eller en diskuppsättning ), fylla dem med sina egna filer i olika format. Tillgång till dessa data tar längst tid, men samtidigt är deras kapacitet enorm.
I grund och botten är de tekniska egenskaperna tillfälliga, det vill säga vilka tidskriterier som passar en viss lösning. Behovet av höghastighetsminne begränsas vanligtvis antingen av höga overheadkostnader för att säkerställa driften av kretsar, eller av hög strömförbrukning eller av den höga kostnaden för lösningen.
Olika typer av minne bildar en hierarki, på olika nivåer där det finns minnen med olika åtkomsttider, komplexitet, kostnad och volym. Möjligheten att bygga en minneshierarki beror på att de flesta algoritmer får tillgång till en liten datamängd vid varje tidsintervall, som kan placeras i snabbare, men dyrt och därför litet, minne (se en:locality of reference ). Användningen av snabbare minne ökar prestandan hos datorkomplexet. Minne i detta fall hänvisar till en datalagringsenhet ( minnesenhet ) i dator- eller datorminne .
När man designar högpresterande datorer och system finns det många avvägningar att göra, såsom storlek och teknik för varje nivå i hierarkin. Du kan betrakta en uppsättning olika minnen (m 1 ,m 2 ,...,m n ) som finns i hierarkin, det vill säga varje m i - nivå är så att säga underordnad hierarkins m i-1- nivå. För att minska väntetiden på högre nivåer kan lägre nivåer förbereda data i bitar med buffring och, när bufferten är full, signalera till den övre nivån att data kan tas emot.
Ofta finns det fyra huvudsakliga (förstorade) nivåer av hierarki: [1]
De flesta moderna datorer använder följande minneshierarki:
De flesta programmerare brukar anta att minnet är uppdelat i två nivåer, huvudminne och disklagring, även om det i assemblerspråk och assemblerkompatibla språk (som C ) är möjligt att arbeta direkt med register. Att dra nytta av minneshierarkin kräver samordnade åtgärder från programmeraren, hårdvaran och kompilatorerna (liksom grundläggande stöd i operativsystemet):
Många programmerare tar inte hänsyn till flernivåminne vid programmering. Det här tillvägagångssättet fungerar så länge som applikationen inte upplever prestandaförsämring på grund av underpresterande minnesundersystem. När du korrigerar koden ( refactoring ) är det nödvändigt att ta hänsyn till närvaron och särdragen i arbetet på de övre nivåerna i minneshierarkin för att uppnå högsta prestanda.
![]() |
---|