Caches zijn klein vanwege een combinatie van factoren die verband houden met kosten, snelheid en technologische beperkingen:
* Kosten: Sneller geheugen is aanzienlijk duurder per bit dan langzamer geheugen. Het bouwen van een grote, snelle cache zou onbetaalbaar zijn. De kosten-batenverhouding neemt sterk af naarmate de cachegrootte toeneemt.
* Snelheid: Cachetoegangstijden moeten extreem snel zijn om effectief te zijn. Kleinere caches zorgen voor eenvoudigere, snellere ontwerpen. Grotere caches introduceren complexere schakelingen en langere toegangstijden, waardoor de voordelen van een grotere capaciteit teniet worden gedaan. Het snelheidsvoordeel is nauw gekoppeld aan de grootte.
* Stroomverbruik: Snel geheugen verbruikt meer stroom. Een grotere, snellere cache zou aanzienlijk meer stroom verbruiken, wat zou leiden tot een grotere warmteontwikkeling en een kortere levensduur van de batterij (vooral cruciaal voor mobiele apparaten).
* Technologische beperkingen: Het vervaardigen van extreem grote, snelle caches is technologisch uitdagend en duur. Terwijl de technologie zich blijft verbeteren, zijn er praktische grenzen aan hoe dicht en snel we transistors voor geheugencellen kunnen inpakken.
* Principe van lokaliteit: Caches zijn gebaseerd op het principe van lokaliteit:het idee dat onlangs geraadpleegde gegevens en instructies waarschijnlijk binnenkort weer toegankelijk zullen zijn. Een relatief kleine cache kan dit principe effectief benutten voor een groot percentage van de geheugentoegangen. Het vergroten van de cachegrootte tot voorbij een bepaald punt levert afnemende rendementen op in termen van verbeterde prestaties, aangezien de kans op het vinden van de benodigde gegevens in de grotere cache niet proportioneel toeneemt.
In wezen is de optimale cachegrootte een afweging tussen kosten, snelheid, energieverbruik en effectiviteit. Een kleine, snelle cache zorgt voor een aanzienlijke prestatieverbetering tegen redelijke kosten, terwijl een grotere cache slechts marginale prestatiewinst zou opleveren, terwijl de kosten en het energieverbruik aanzienlijk zouden stijgen. Dit is de reden waarom er meerdere cacheniveaus (L1, L2, L3) worden gebruikt; elk niveau biedt een andere verhouding tussen snelheid en grootte. |