Home

cacheeffektiviteten

Cacheeffektiviteten är ett mått på hur väl en cache minskar den genomsnittliga minnesåtkomsttiden i ett dator- eller system. En cache är ett litet, snabbt minneslager som håller en del av huvudminnet som förväntas användas inom kort. Effektiviteten påverkas av hur ofta minnesreferenser träffar cachen jämfört med hur ofta de missar och måste hämtas från ett långt långsammare minneslager.

En träff innebär snabbare åtkomst än en miss. Hit rate är antalet träffar delat med totala referenser;

Cache används ofta i flera nivåer, till exempel L1, L2 och L3. Organisationen kan vara inkluderande eller

Faktorer som påverkar inkluderar programstrukturer, datastrukturernas layout och minnesåtkomstmönster. Förbättringar uppnås ofta genom dataorienterad design, loopblocking/tiling,

Mätning av cacheeffektiviteten görs med hårdvaru­prestandacounters eller simuleringar och rapporterar cache-referenser och cachemissar för att beräkna

miss
rate
är
1
minus
hit
rate.
Den
genomsnittliga
minnesåtkomsten
(AMAT)
beräknas
ofta
som
L_hit
+
Miss_rate
×
Miss_penalty,
där
L_hit
är
tiden
för
en
träff
och
Miss_penalty
är
den
extra
tiden
vid
en
miss.
exkluderande,
och
val
av
storlek,
associativitet
och
blockstorlek
påverkar
missrate
och
latens.
Större
och
mer
associativa
caches
minskar
normalt
missrates
men
ökar
kostnad
och
energiförbrukning.
Genom
god
temporal
och
spatial
locality
i
programmet
kan
cacheeffektiviteten
förbättras.
anpassad
datalayout
till
cachelinjer
och
förutspådd
prefetching.
I
flerkärniga
system
krävs
uppmärksamhet
på
cachekoherence
och
problem
som
false
sharing.
användbarhet
och
optimera
koden.