Vad är minneshierarki?

Minneshierarki är hierarkin av minne och lagringsenheter som finns i en dator. Ofta visualiserad som en triangel representerar botten av triangeln större, billigare och långsammare lagringsenheter, medan toppen av triangeln representerar mindre, dyrare och snabbare lagringsenheter. Detta används ofta inom beräkningsteori och design, så programmerare vet hur man hanterar de olika minnessystemen när de bygger en dator. Genom att veta hur man manipulerar denna hierarki kan programmerare bygga snabbare datorer.

Minneshierarkitriangeln är en visualiseringsteknik som hjälper konsumenter och programmerare att förstå hur minnet fungerar. Längst ner finns billiga lagringsenheter med stora mängder minne, som hårddisken eller magnetband. Högre upp finns RAM-minne (Random Access Memory), som har medelhög kapacitet och hastighet. Överst vilar cache och processorer, som båda är mycket snabba men har liten kapacitet. Triangeln är i första hand organiserad efter svarstid, men det finns också ett samband mellan faktorer som storlek, minneskapacitet och pris.

När man bygger en dator måste programmeraren ha minneshierarkitriangeln i åtanke. Medan delar av triangeln kan manipuleras, strider det strikt mot reglerna att flytta runt sektioner. Till exempel kan en programmerare byta rollen för hårddisken till rollen som RAM. Om detta händer, skulle datorn vara mycket långsam när den laddar omedelbar information som filer och webbplatser, och skulle kunna hålla lite data för långtidslagring, vilket gör datorn nästan värdelös. Att byta delar av triangeln är inte det korrekta sättet att maximera en dators potential.

Att manipulera triangeln på rätt sätt är hur programmerare ökar en dators effektivitet. Till exempel, om lagringsenheterna är gjorda för att vara mycket enkla, med mindre storlek och komplexitet, fungerar minneshierarkin bättre. Dessutom, om programmerare kan göra det så att information kan bearbetas i högre delar av hierarkin, till exempel genom att använda processorn istället för RAM, så rör sig datorn snabbare. Detta flyttar inte runt sektionerna, det optimerar dem bara.

Även om det är väldigt enkelt att visualisera minneshierarkin och minnet kan manipuleras så att det går i olika sektioner, är det svårt att veta exakt var minnet kommer att lagras eller användas. Programmerare måste uppskatta denna faktor, eftersom flera olika enheter i allmänhet kommer att bearbeta minnet samtidigt, eller så kan minnet gå från en sektion till en annan. Välgjorda program kommer vanligtvis att kunna förutse var minnet kommer att lagras eller bearbetas, men det finns en slumpmässig faktor som programmerare inte alltid kan ta hänsyn till, varför minneshierarkin är mycket mer flytande än triangelvisualiseringen låter det verka.