Caches är små på grund av en kombination av faktorer relaterade till kostnad, hastighet och tekniska begränsningar:
* Kostnad: Snabbare minne är betydligt dyrare per bit än långsammare minne. Att bygga en stor, höghastighetscache skulle vara oöverkomligt dyrt. Kostnads-nyttoförhållandet minskar kraftigt när cachestorleken ökar.
* hastighet: Cache -åtkomsttider måste vara extremt snabba för att vara effektiva. Mindre cachar möjliggör enklare, snabbare mönster. Större cachar introducerar mer komplexa kretsar och längre åtkomsttider, vilket negerar fördelarna med en större kapacitet. Hastighetsfördelen är tätt kopplad med storlek.
* Strömförbrukning: Höghastighetsminne förbrukar mer kraft. En större, snabbare cache skulle konsumera betydligt mer kraft, vilket leder till ökad värmeproduktion och minskad batteritid (särskilt avgörande för mobila enheter).
* Teknologiska begränsningar: Tillverkning av extremt stora höghastighetscacher är tekniskt utmanande och dyrt. Medan tekniken fortsätter att förbättras finns det praktiska gränser för hur tätt och snabbt kan vi packa transistorer för minnesceller.
* princip för lokalitet: Caches förlitar sig på principen om lokalitet - idén att nyligen åtkomst till data och instruktioner troligen kommer att nås snart igen. En relativt liten cache kan effektivt utnyttja denna princip för en stor andel av minnesåtkomst. Att öka cache -storleken utöver en viss punkt ger minskande avkastning i termer av förbättrad prestanda, eftersom sannolikheten för att hitta de nödvändiga data i den större cachen inte ökar proportionellt.
I huvudsak är den optimala cachestorleken en avvägning mellan kostnad, hastighet, strömförbrukning och effektivitet. En liten, snabb cache ger ett betydande prestationsökning till en rimlig kostnad, medan en större cache endast skulle erbjuda marginalprestanda samtidigt som de ökar dess kostnads- och kraftförbrukning. Det är därför flera nivåer av cachar (L1, L2, L3) används; Varje nivå ger en annan hastighet/storleksavvägning.