föreläsning 5 måndag 5e november 2007
DESCRIPTION
Datorsystem 1 och Datorarkitektur 1. Datorsystem 1 och Datorarkitektur 1. Föreläsning 5 måndag 5e november 2007. Föreläsning 5 måndag 5e november 2007. Dessa saker vill vi ha nära till hands. Vissa saker använder vi ofta. Litet är snabbt Stort är långsamt. Storleken har betydelse. - PowerPoint PPT PresentationTRANSCRIPT
Föreläsning 5 måndag 5e november 2007
Datorsystem 1 och Datorarkitektur 1
Föreläsning 5 måndag 5e november 2007
Datorsystem 1 och Datorarkitektur 1
Storleken har betydelse Litet är snabbt
Stort är långsamt
Vissa saker använder vi ofta Dessa saker vill vi ha nära till hands
Samma principer gäller för hur en dator använder sitt minne.
Vadå vissa saker?
Vadå ofta?
Lista med de senast slagna nummren.
Temporal Locality
If a data location is referenced then it is very likely to be accessed soon again.
De flesta av oss läser böcker från början till slut, dvs efter sida n läser vi sida n+1 osv.
Spatial Locality
If a data location is referenced, data locations with nearby addresses are likely to be accessed soon.
Level 0 – register!
Minne i flera nivåer (hierarki):
• snabbt och litet (dyrt) och litet minne nära processorn
• långsamt och stort (billigt) minne längre bort från processorn.
Cache från franska cacher - "gömma“.
A hiding place, esp. of goods, treasure, etc.
Example – Read Data
Op Address
Load 10110
Index V Tag Data
000 N
001 N
010 N
011 N
100 N
101 N
110 N 10 [10110]
111 N
10110 mod 8 = 110
Y
Example – Read Data
Op Address
Load 10110
Load 11010
Index V Tag Data
000 N
001 N
010 N 11 [11010]
011 N
100 N
101 N
110 Y 10 [10110]
111 N
11010 mod 8 = 010
Y
Example – Read Data
Op Address
Load 10110
Load 11010
Load 10110
Index V Tag Data
000 N
001 N
010 Y 11 [11010]
011 N
100 N
101 N
110 Y 10 [10110]
111 N
HIT
Example – Read Data
Op Address
Load 10110
Load 11010
Load 10110
Load 11010
Index V Tag Data
000 N
001 N
010 Y 11 [11010]
011 N
100 N
101 N
110 Y 10 [10110]
111 N
HIT
Example – Read Data
Op Address
Load 10110
Load 11010
Load 10110
Load 11010
Load 10000
Index V Tag Data
000 N 10 [10000]
001 N
010 Y 11 [11010]
011 N
100 N
101 N
110 Y 10 [10110]
111 N
MISS
Y
Example – Read Data
Op Address
Load 10110
Load 11010
Load 10110
Load 11010
Load 10000
Load 10010
Index V Tag Data
000 N 10 [10000]
001 N
010 Y 11 [11010]
011 N
100 N
101 N
110 Y 10 [10110]
111 N
MISS
10 [10010]
OK, så långt har vi utnyttjat temporal locality.
Vore bra om vi kunde utnyttja även spatial locality…
Cache Size
Example continued...
Op Address
Load 10110
Load 11010
Load 10110
Load 11010
Load 10000
Load 10010
Write 10010
Index V Tag Data
000 N 10 [10000]
001 N
010 Y 10 [11010]
011 N
100 N
101 N
110 Y 10 [10110]
111 N
???
[10010]
Example continued...
Op Address
Load 10110
Load 11010
Load 10110
Load 11010
Load 10000
Load 10010
Write 10010
Load 11010
Index V Tag Data
000 N 10 [10000]
001 N
010 Y 10 [10010]
011 N
100 N
101 N
110 Y 10 [10110]
111 N
MISS
[11010]11
Men nu suddade vi ju ut det som den förra operationen skrev…
Direkt-mappad cache
Ett block i minnet mappas till exakt ett bestämt block i cache.
Fullständigt associativt cache
Ett block i minnet kan mappas till vilket block som helst cache.
Partiellt associativt cache (set-associative)
Ett block i minnet kan mappas till två eller flera block i cache.
Enkel hårdvara men data kan tvingas ut ur cachet i onödan…
Komplicerad hårdvara för att kolla om data finns i cache eller inte…
En kompromiss!
Vilket block skall vi slänga ut ur cachet när ett nytt vill in?
Direkt-mappad cache
Ett block i minnet mappas till exakt ett bestämt block i cache.
Fullständigt associativt cache
Ett block i minnet kan mappas till vilket block som helst cache.
Partiellt associativt cache (set-associative)
Ett block i minnet kan mappas till två eller flera block i cache.
Enkel – vi har inget val!
Kan välja vilket som helst… vilket är det bästa valet?
Kan endast välja att kasta ut något från det set som blocket tillhör.
LRU (Least Recently Used)
Kasta ut det block som förblivit orört under längs tid!
Men vilket block skall vi välja ur ett set?