300 likes | 515 Views
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.
E N D
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 Samma principer gäller för hur en dator använder sitt minne. Vadå ofta? Vadå vissa saker?
Temporal Locality If a data location is referenced then it is very likely to be accessed soon again. Lista med de senast slagna nummren.
Spatial Locality If a data location is referenced, data locations with nearby addresses are likely to be accessed soon. 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.
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 10110 mod 8 = 110 Y
Example – Read Data 11010 mod 8 = 010 Y
Example – Read Data Y MISS
Example – Read Data 10 [10010] MISS
OK, så långt har vi utnyttjat temporal locality. Vore bra om vi kunde utnyttja även spatial locality…
Example continued... [10010] ???
Example continued... Men nu suddade vi ju ut det som den förra operationen skrev… 11 [11010] MISS
Direkt-mappad cache Ett block i minnet mappas till exakt ett bestämt block i cache. Enkel hårdvara men data kan tvingas ut ur cachet i onödan… Partiellt associativt cache (set-associative) Ett block i minnet kan mappas till två eller flera block i cache. En kompromiss! Komplicerad hårdvara för att kolla om data finns i cache eller inte… Fullständigt associativt cache Ett block i minnet kan mappas till vilket block som helst cache.
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. Enkel – vi har inget val! Partiellt associativt cache (set-associative) Ett block i minnet kan mappas till två eller flera block i cache. Kan endast välja att kasta ut något från det set som blocket tillhör. Kan välja vilket som helst… vilket är det bästa valet? Fullständigt associativt cache Ett block i minnet kan mappas till vilket block som helst cache.
Men vilket block skall vi välja ur ett set? LRU (Least Recently Used) Kasta ut det block som förblivit orört under längs tid!