Vad är minneshierarki?
Minneshierarki är hierarkin för minne och lagringsenheter som finns i en dator. Ofta visualiseras som en triangel, representerar triangelns botten större, billigare och långsammare lagringsenheter, medan den övre delen av triangeln representerar mindre, dyrare och snabbare lagringsenheter. Detta används ofta i beräkningsteori och design, så programmerare vet hur man hanterar de olika minnessystemen när man bygger en dator. Genom att veta hur man manipulerar minneshierarkin 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 det billiga lagringsenheter med stora mängder minne, som hårddisken eller magnetbandet. Högre upp finns RAM-minne (random access) (RAM), som har medelkapacitet och hastighet. Överst vilar cache och processorer, som båda är mycket snabba men har liten kapacitet. Triangeln är främst organiserad av responstid, men det finns också en korrelation 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, är rörelse av sektioner strikt mot reglerna. Till exempel kan en programmerare byta hårddiskens roll till RAM-roll. Om detta händer skulle datorn vara mycket långsam när du laddar omedelbar information som filer och webbplatser och skulle kunna hålla lite data för långsiktig lagring, vilket gör datorn nästan värdelös. Att byta delar av triangeln är inte rätt sätt att maximera en dators potential.
Att manipulera triangeln på rätt sätt är hur programmerare ökar datorns effektivitet. Om lagringsenheterna till exempel är mycket enkla, med mindre storlek och komplexitet, fungerar minneshierarkin bättre. Om programmerare också kan göra det så att information kan bearbetas i högre delar av minneshierarkin, till exempel genom att använda processorn istället för RAM, går datorn snabbare. Detta flyttar inte avsnitten runt, utan optimerar dem bara.
Även om det är mycket enkelt att visualisera minneshierarkin och minnet kan manipuleras för att gå i olika avsnitt, ä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 generellt kommer att behandla minnet på en gång, eller minnet kan gå från ett avsnitt till ett annat. Välgjorda program kommer vanligtvis att kunna förutse var minnet kommer att lagras eller bearbetas, men det finns en slumpmässig faktor för vilken programmerare inte alltid kan redovisa, varför minneshierarkin är mycket flytande än triangelvisualiseringen gör det verkar.