T9.2/T10.2/T11.1 Minnehierarki og hurtigbuffer Flashcards

1
Q

Mindre minner er typisk raskere enn

A

store minner

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

raske minneteknologier tar mer

A

plass og koster dermed mer enn trege minneteknologier

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Et program aksesserer relativt få

A

dataelementer i et kort tidsrom

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

⭐️ Lokalitet i tid

A

Hvis et program bruker et dataelement, er det sannsynlig at det vil bruke det igjen snart

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

⭐️ Lokalitet i rom

A

Hvis et program bruker et dataelement, er det sannsynlig at det vil bruke et dataelement på en adresse i nærheten snart

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

⭐️ Hvorfor oppstår lokalitet?

A

Det oppstår som en konsekvens av hvordan vi programmerer

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

⭐️ Hvordan og hvorfor kan minnehierarkiet illusjonen av et stort og raskt minne?

A

Ved å utnytte lokalitetsprinsippet

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

⭐️ Minnehierarki

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Hva er formålet med minnehierarkiet?

A

Å 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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Data i minnehierarkiet kopierers kun mellom

A

to nivåer ved siden av hverandre om gangen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Hvordan bestemmer vi hva vi skal lagre i det minste minnet?

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

⭐️ Hurtigbuffer

A

En maskinvarestyrt minneenhet som kan lagre n dataelementer

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

⭐️ Blokk

A

Den minste enheten av informasjon som enten kan være eller ikke være i en cache

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Cache miss

A

En forespørsel for data fra cachen som ikke kan bli oppfylt pga. dataene ikke er tilstede i cachen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Dersom et cache miss oppstår, må vi få prosessoren til å vente inntil

A

minnet responderer med dataen vi ønsker

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Hit rate

A

Den andelen av minneaksesseringer som man finner på et nivå av minnehierarkiet

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Hit time

A

Tiden som kreves for å aksessere et nivå av minnehierarkiet, inkl. tiden som kreves for å avgjøre hvorvidt aksesseringer var en hit / miss

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Miss rate

A

Den andelen av minneaksesseringer som man ikke finner i et nivå av minnehierarkiet

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Miss penalty

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

⭐️ Hvordan konstruerer man et direktetilordnet hurtigbuffer?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

“Tag” felt brukes til

A

å sammenligne tag felt til blokken

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Tags

A

Et felt i en tabell brukt av et minnehierarki som inneholder adressen for informasjon som trengs for å identifisere hvorvidt en assosiert blokk i hierarkiet korresponderer til det etterspurte ordet

23
Q

⭐️ Valid bit

A

Et felt i tabellene i minnehierakiet som indikerer at den assosierte blokken i hierarkiet inneholder gyldig data

24
Q

“Cache” indeks brukes til

A

å velge blokk

25
Q

⭐️ Direkte-tilordnet hurtigbuffer

A

En hurtigbuffer struktur der hvor hver minne lokasjon er mappet til en eksakt lokasjon i hurtigbufferet

26
Q

⭐️ Hvordan kan man utvide en direktetilordnet hurtigbuffer til å håndtere hurtigbufferblokker som består av mer enn ett ord?

A
  • Indeks flyttes mot venstre
  • Legger til feltet: Block offset
  • Færre bit i tag
  • Legger til en multiplekser for å hente rett ord
27
Q

Hva er fordelene med større blokker?

A
  • Bedre utnyttelse av lokalitet i rom
28
Q

Hva er ulempene med større blokker?

A
  • Plass til færre blokker i hurtigbufferet
  • Kostnaden ved å hente nye data øker
29
Q

⭐️ Hvordan kan hurtigbuffere integreres i en samlebåndsarkitektur?

A
  • Cache hit: Gir hurtigbufferet en adresse og får instruksjon/data tilbake i samme sykel
  • Cache miss: Fryser samlebåndet inntil den manglende hurtigbufferblokken er hentet fra hovedminnet
  • Legger til en instruksjonshurtigbuffer og datahurtigbuffer
30
Q

⭐️ Hvordan håndterer hurtigbuffere skriveoperasjoner?

A
  • To skriveprinsipper for cache hit: “write-through” og “write back”
  • Prinsipper dersom man bommer på skriveprinsippene: “no write allocate” og “write allocate”
  • Legges ofte til write buffer - lagrer nylig skrevne data frem til vi kan oppdatere hurtigbufferet
31
Q

⭐️ “Write through”

A

Oppdatere blokken og det neste lavere nivået i minnehierarkiet hver gang blokken skrives til, for å forsikre at data alltid er konsistent mellom de to

32
Q

Hva er løsningen på den dårlige ytelsen gitt av “write-through”?

A

Write buffer

33
Q

Write buffer

A

En kø som holder data imens data venter på å bli skrevet til minnet

34
Q

⭐️ “Write back”

A

Oppdatere det lavere nivået i minnehierarkiet når blokken er erstattet

35
Q

⭐️ “No write allocate”

A

Vi skriver rett til minnet

36
Q

⭐️ “Write allocate”

A

Vi henter blokken fra minnet før vi skriver til den

37
Q

I et direktetilordnet hurtigbuffer kan vi bare plassere en adresse

A

på ett sted

38
Q

⭐️ Hvorfor kan settassosiative og fullassosiative hurtigbuffere øke treffraten?

A

Ved mer fleksibel plassering av blokker. Økende grad av assosiativitet øker treffraten.

39
Q

Mer fleksibel plassering av blokker vil si at vi kan

A

velge mellom flere blokker når vi skal kaste ut noe

40
Q

⭐️ Settassosiativ hurtigbuffer

A

En hurtigbuffer med et satt antall lokasjoner hvor hver blokk kan bli plassert

41
Q

⭐️ Fullassosiativ hurtigbuffer

A

En hurtigbuffer struktur der hvor en blokk kan bli plassert i hvilken som helst lokasjon i hurtigbufferet

42
Q

Hvorfor er fullassosiativt hurtigbuffer dyrt?

A

Vi må sammenligne tag fra adressen med alle tags i hurtigbufferet

43
Q

Minnelatens

A

Antallet klokkesykler det tar å hente en verdi fra en minnenhet

44
Q

Beregningsintensivt program

A

Bruker en relativt stor andel av kjøretiden på beregning

45
Q

Minneintensivt program

A

Bruker en relativt liten andel av kjøretiden sin på beregning

46
Q

Jo mer minneintensiv applikasjonen er, jo mer påvirker minnelatensen

A

ytelsen

47
Q

Hvordan kan vi øke ytelsen i minnesystemet?

A

Øke treffraten i hurtigbufferet
Redusere tiden det tar å hente

48
Q

Hva er det typiske valget for å velge mellom flere blokker når vi skal kaste ut noe?

A

LRU (Least Recently Used)

49
Q

Least Recently Used (LRU)

A

En erstatningsmetode der blokken som erstattes er den som har vært ubrukt i lengst tid

50
Q

Hvordan øker man ytelsen til minnesystemet med et flernivå hurtigbuffer?

A

Flere nivåer med hurtigbuffer reduserer latensen til bom fordi noen bom nå treffer nivå 2 hurtigbufferet

51
Q

⭐️ Hvordan kan man på programvarenivå påvirke treffraten i hurtigbuffere?

A

Blokking

52
Q

Blokking

A

Vi reduserer antallet minneaksesserer i programmer mellom hver aksess til samme data - bedre lokalitet.

53
Q

Hvordan påvirker blokking treffraten i hurtigbuffere på programvarenivå?

A

Blokking forbedrer lokalitet i programvare ved å gruppere data som ofte brukes sammen i nærliggende minneområder