T9.2/T10.2/T11.1 Minnehierarki og hurtigbuffer Flashcards
Mindre minner er typisk raskere enn
store minner
raske minneteknologier tar mer
plass og koster dermed mer enn trege minneteknologier
Et program aksesserer relativt få
dataelementer i et kort tidsrom
⭐️ Lokalitet i tid
Hvis et program bruker et dataelement, er det sannsynlig at det vil bruke det igjen snart
⭐️ Lokalitet i rom
Hvis et program bruker et dataelement, er det sannsynlig at det vil bruke et dataelement på en adresse i nærheten snart
⭐️ Hvorfor oppstår lokalitet?
Det oppstår som en konsekvens av hvordan vi programmerer
⭐️ Hvordan og hvorfor kan minnehierarkiet illusjonen av et stort og raskt minne?
Ved å utnytte lokalitetsprinsippet
⭐️ Minnehierarki
En struktur som bruker flere nivåer med minner; når distansen fra prosessoren øker, vil størrelsen på minnet og aksesstiden begge øke imens kostnaden per bit synker
Hva er formålet med minnehierarkiet?
Å gi brukeren så mye minne som mulig med den billigste teknologien, samtidig som man skal gi brukeren farten man får fra det raskeste minnet
Data i minnehierarkiet kopierers kun mellom
to nivåer ved siden av hverandre om gangen
Hvordan bestemmer vi hva vi skal lagre i det minste minnet?
Vi flytter dataelementene nær prosessoren når de blir aksessert, og flytter dataelementer lengre fra prosessoren når vi ikke har brukt de på en stund og trenger mer plass
⭐️ Hurtigbuffer
En maskinvarestyrt minneenhet som kan lagre n dataelementer
⭐️ Blokk
Den minste enheten av informasjon som enten kan være eller ikke være i en cache
Cache miss
En forespørsel for data fra cachen som ikke kan bli oppfylt pga. dataene ikke er tilstede i cachen
Dersom et cache miss oppstår, må vi få prosessoren til å vente inntil
minnet responderer med dataen vi ønsker
Hit rate
Den andelen av minneaksesseringer som man finner på et nivå av minnehierarkiet
Hit time
Tiden som kreves for å aksessere et nivå av minnehierarkiet, inkl. tiden som kreves for å avgjøre hvorvidt aksesseringer var en hit / miss
Miss rate
Den andelen av minneaksesseringer som man ikke finner i et nivå av minnehierarkiet
Miss penalty
Tiden som kreves for å hente en blokk til et nivå av minnehierarkiet fra et lavere nivå. inkl. tiden det tar å aksesserer blokken, overføre den fra et nivå til et annet, sette blokken inn i det nivået der det var et “miss” også gi blokken videre til der forespørselen ble sendt frs
⭐️ Hvordan konstruerer man et direktetilordnet hurtigbuffer?
- Vi bruker bit 11-2 til indeks fordi sekvensiell aksess er vanlig
- Hver blokk må ha en «valid» bit; Vi trenger disse ved oppstart og hvis vi må tømme hurtigbufferet
- Hver adresse har et “tag” felt og en “cache” indeks
“Tag” felt brukes til
å sammenligne tag felt til blokken