Home

cacheefficiëntie

Cacheefficiëntie is de mate waarin een computerprogramma cachegeheugen effectief benut om geheugenlatentie te verlagen en uitvoeringstijd te verkorten. Het gebeurt met behulp van cachehits en cachemisses, die samen de gemiddelde toegangstijd beïnvloeden. Doorgaans geldt: hoe hoger de cachehitratio, des te sneller de uitvoering.

Belangrijke concepten zijn temporal locality en spatial locality. Temporal locality houdt in dat recente data waarschijnlijk

Cachemisses bestaan uit compulsory (cold) misses bij de eerste referentie, conflict misses als gevolg van beperkte

Prestatiemeting omvat cachehitratio, missratio en de gemiddelde geheugentoegangstijd (AMAT). Een eenvoudige benadering is EAT = Hittime + Missrate

Optimalisatie richt zich op het verbeteren van lokale referenties: data-herindeling voor contig geheugen, looptiling en blocking,

Bij multicore systemen beïnvloedt cachecoherentie de efficiëntie. Caches delen soms data en gebruiken coherentieprotocollen zoals MESI;

Cacheefficiëntie blijft een kernaspect van prestatie-optimalisatie en wordt vaak onderzocht via profiling en microarchitectuuroptimalisatie.

opnieuw
nodig
is;
spatial
locality
betekent
dat
nabije
gegevens
vaak
samen
worden
opgehaald.
Cachegeheugen
werkt
in
blokken
of
cachelijnen,
en
de
grootte
en
organisatie
van
de
cache
(direct-toegewezen,
set-geassocieerd,
of
volledig
geassocieerd)
bepalen
hoe
efficiënt
referenties
worden
beantwoord.
associativiteit,
en
capacity
misses
wanneer
de
werkgrootte
groter
is
dan
de
cache.
Het
patroon
van
geheugentoegang,
data-indeling
en
loopstructuur
kunnen
missies
verhogen
of
verlagen.
Moderne
CPUs
gebruiken
vaak
prefetching
en
streamingtechnieken
om
missies
te
verminderen.
×
Misspenalty,
waarbij
de
penalty
de
extra
tijd
door
een
miss
aangeeft.
herordening
van
lussen,
en
het
vermijden
van
onhandige
strides.
Padding,
data-alignment
en
het
gebruik
van
cache-vriendelijke
datastructuren
dragen
bij.
Software-
en
hardwarematige
voorspellings-
en
prefetchingtechnieken
kunnen
de
efficiëntie
verder
verhogen.
onbedoelde
synchronisatie
of
false
sharing
kan
de
prestaties
beperken.