24
Simulación de la Simulación de la Memoria Cache Memoria Cache Práctica 3 Práctica 3 Arquitectura de Computadores Arquitectura de Computadores

Simulación de la Memoria Cache Práctica 3 Arquitectura de Computadores

Embed Size (px)

Citation preview

Page 1: Simulación de la Memoria Cache Práctica 3 Arquitectura de Computadores

Simulación de la Simulación de la Memoria CacheMemoria Cache

Práctica 3 Práctica 3 Arquitectura de ComputadoresArquitectura de Computadores

Page 2: Simulación de la Memoria Cache Práctica 3 Arquitectura de Computadores

Simulador sim-cacheSimulador sim-cacheIntalaciónIntalación

Descargar: simplesim_3v0d.tar.gzDescargar: simplesim_3v0d.tar.gz

gzip –d & tar –xvfgzip –d & tar –xvf

make config-alphamake config-alpha

make sim-cachemake sim-cache

Se genera el ejecutable “sim-cache”Se genera el ejecutable “sim-cache”

Page 3: Simulación de la Memoria Cache Práctica 3 Arquitectura de Computadores

Simulador Cache Inclusiva: sim-cacheSimulador Cache Inclusiva: sim-cache

./sim-cache./sim-cache-max:inst <uint> # 0 # maximum number of inst's to execute

-cache:dl1 <string> # dl1:256:32:1:l # l1 data cache config, i.e., {<config>|none}

-cache:dl2 <string> # ul2:1024:64:4:l # l2 data cache config, i.e., {<config>|none}

-cache:il1 <string> # il1:256:32:1:l # l1 inst cache config, i.e., {<config>|dl1|dl2|none}

-cache:il2 <string> # dl2 # l2 instruction cache config, i.e., {<config>|dl2|none}

<name>:<nsets>:<bsize>:<assoc>:<repl>

<name> - name of the cache being defined

<nsets> - number of sets in the cache

<bsize> - block size of the cache

<assoc> - associativity of the cache

<repl> - block replacement strategy, 'l'-LRU, 'f'-FIFO, 'r'-random

Examples:-cache:dl1 dl1:4096:32:1:l

-dtlb dtlb:128:4096:32:r

Opciones por defecto

-cache:dl1 dl1:256:32:1:l # l1 data cache config,

-cache:dl2 ul2:1024:64:4:l # l2 data cache config,

-cache:il1 il1:256:32:1:l # l1 inst cache config,

-cache:il2 dl2 # l2 instruction cache config,

Page 4: Simulación de la Memoria Cache Práctica 3 Arquitectura de Computadores

Simulador sim-cacheSimulador sim-cache./sim-cache -max:inst 100000 gcc-200.eio./sim-cache -max:inst 100000 gcc-200.eio

sim: ** simulation statistics **

sim_num_insn 100000 # total number of instructions executed

sim_num_refs 25861 # total number of loads and stores executed

dl1.accesses 25931 # total number of accesses

dl1.hits 24211 # total number of hits

dl1.misses 1720 # total number of misses

dl1.replacements 1464 # total number of replacements

dl1.writebacks 744 # total number of writebacks

dl1.miss_rate 0.0663 # miss rate (i.e., misses/ref)

ul2.accesses 3414 # total number of accesses

ul2.hits 2210 # total number of hits

ul2.misses 1204 # total number of misses

ul2.replacements 0 # total number of replacements

ul2.writebacks 0 # total number of writebacks

ul2.miss_rate 0.3527 # miss rate (i.e., misses/ref)

Page 5: Simulación de la Memoria Cache Práctica 3 Arquitectura de Computadores

Simulador en código fuenteSimulador en código fuente

SimpleScalar: sim-cacheSimpleScalar: sim-cache

Ficheros: sim-cache.c, cache.cFicheros: sim-cache.c, cache.c

Función: cache_access (en cache.c)Función: cache_access (en cache.c)

unsigned int /* latency of access in cycles */cache_access(struct cache_t *cp, /* cache to access */ enum mem_cmd cmd, /* access type, Read or Write */ md_addr_t addr, /* address of access */ void *vp, /* ptr to buffer for input/output */ int nbytes, /* number of bytes to access */ tick_t now, /* time of access */ byte_t **udata, /* for return of user data ptr */ md_addr_t *repl_addr) /* for address of replaced block */{

Page 6: Simulación de la Memoria Cache Práctica 3 Arquitectura de Computadores

Objetivo de la Práctica 3Objetivo de la Práctica 3

Construir un simulador para la cache Construir un simulador para la cache exclusiva a partir de sim-cacheexclusiva a partir de sim-cache

Page 7: Simulación de la Memoria Cache Práctica 3 Arquitectura de Computadores

Implementación Cache ExclusivaImplementación Cache Exclusiva

Se estudian los 6 casos posibles, Se estudian los 6 casos posibles, independientemente de que sea independientemente de que sea lectura o escrituralectura o escritura

Caso 1: Acceso al Bloque A Caso 1: Acceso al Bloque A

con la cache completamente vacíacon la cache completamente vacía Caso 2: Nuevo acceso al Bloque ACaso 2: Nuevo acceso al Bloque A Caso 3: Acceso al Bloque BCaso 3: Acceso al Bloque B Caso 4: Acceso al Bloque CCaso 4: Acceso al Bloque C Caso 5: Nuevo acceso al Bloque BCaso 5: Nuevo acceso al Bloque B Caso 6: Acceso al Bloque DCaso 6: Acceso al Bloque D

L1

L2

Mem DCBA

Page 8: Simulación de la Memoria Cache Práctica 3 Arquitectura de Computadores

Caso 1Caso 1

Acceso al Bloque AAcceso al Bloque A Bloque A en L1 y L2 no son Bloque A en L1 y L2 no son

válidos válidos Fallo en L1 Fallo en L1 Fallo en L2Fallo en L2L1

L2

Mem DCBA

Page 9: Simulación de la Memoria Cache Práctica 3 Arquitectura de Computadores

A

Caso 1Caso 1

AccionesAcciones Se escribe la TAG en L1Se escribe la TAG en L1 Se marca el bloque como Se marca el bloque como

válidoválido Equivalente a copiar A en L1Equivalente a copiar A en L1L1

L2

Mem DCBA

Page 10: Simulación de la Memoria Cache Práctica 3 Arquitectura de Computadores

A

Caso 2Caso 2

Nuevo Acceso al Bloque ANuevo Acceso al Bloque A Acierto en L1Acierto en L1

AccionesAcciones Ninguna (devolver la latencia Ninguna (devolver la latencia

de L1)de L1)L1

L2

Mem DCBA

Page 11: Simulación de la Memoria Cache Práctica 3 Arquitectura de Computadores

A

Caso 3Caso 3

Acceso al Bloque BAcceso al Bloque B Fallo en L1Fallo en L1 Fallo en L2Fallo en L2 Bloque en L2 no es válidoBloque en L2 no es válido

L1

L2

Mem DCA B

Page 12: Simulación de la Memoria Cache Práctica 3 Arquitectura de Computadores

A

Caso 3Caso 3

AccionesAcciones Se copia A desde L1 a L2Se copia A desde L1 a L2

L1

L2

Mem DCA

A

B

Page 13: Simulación de la Memoria Cache Práctica 3 Arquitectura de Computadores

B

Caso 3Caso 3

AccionesAcciones Se copia TAG de B en L1Se copia TAG de B en L1 Se marca el bloque B como Se marca el bloque B como

válidoválido

L1

L2

Mem DCA

A

B

Page 14: Simulación de la Memoria Cache Práctica 3 Arquitectura de Computadores

B

Caso 4Caso 4

Acceso al Bloque CAcceso al Bloque C Fallo en L1Fallo en L1 Fallo en L2Fallo en L2 Bloque B en L2 no es válidoBloque B en L2 no es válido

L1

L2

Mem DBA

A

C

Page 15: Simulación de la Memoria Cache Práctica 3 Arquitectura de Computadores

B

Caso 4Caso 4

AccionesAcciones Se copia B desde L1 a L2Se copia B desde L1 a L2

L1

L2

Mem DBA

A B

C

Page 16: Simulación de la Memoria Cache Práctica 3 Arquitectura de Computadores

C

Caso 4Caso 4

AccionesAcciones Se copia B desde L1 a L2Se copia B desde L1 a L2 Se copia TAG de C a L1Se copia TAG de C a L1 Se marca el bloque C en L1 Se marca el bloque C en L1

como válidocomo válidoL1

L2

Mem DBA

A B

C

Page 17: Simulación de la Memoria Cache Práctica 3 Arquitectura de Computadores

C

Caso 5: IntercambioCaso 5: Intercambio

Acceso al Bloque BAcceso al Bloque B Fallo en L1Fallo en L1 Acierto en L2Acierto en L2 Bloque B en L2 es válidoBloque B en L2 es válido

L1

L2

Mem DCA

A B

B

Page 18: Simulación de la Memoria Cache Práctica 3 Arquitectura de Computadores

B

C

Caso 5: IntercambioCaso 5: Intercambio

AccionesAcciones Se intercambia C en L1 con B Se intercambia C en L1 con B

en L2en L2

CL1

L2

Mem DCA

A

B

Page 19: Simulación de la Memoria Cache Práctica 3 Arquitectura de Computadores

B

B

Caso 5: IntercambioCaso 5: Intercambio

CL1

L2

Mem DCA

A

B

AccionesAcciones Se intercambia C en L1 con B Se intercambia C en L1 con B

en L2en L2

Page 20: Simulación de la Memoria Cache Práctica 3 Arquitectura de Computadores

C

B

Caso 5: IntercambioCaso 5: Intercambio

AccionesAcciones Se intercambia C en L1 con B Se intercambia C en L1 con B

en L2en L2 No es necesario hacer No es necesario hacer

writeback writeback de Cde CCL1

L2

Mem DCA

A

B

Page 21: Simulación de la Memoria Cache Práctica 3 Arquitectura de Computadores

C

B

Caso 6Caso 6

Acceso al Bloque DAcceso al Bloque D Fallo en L1Fallo en L1 Fallo en L2Fallo en L2 Bloque de B en L2 es válido: Bloque de B en L2 es válido:

suponer que es el que ocupa suponer que es el que ocupa AA

L1

L2

Mem CBA

A

D

Page 22: Simulación de la Memoria Cache Práctica 3 Arquitectura de Computadores

C

B

Caso 6Caso 6

AccionesAcciones Se hace Se hace writeback writeback de Ade A

L1

L2

Mem CBA

A

D

Page 23: Simulación de la Memoria Cache Práctica 3 Arquitectura de Computadores

C

B

Caso 6Caso 6

AccionesAcciones Se hace Se hace writeback writeback AA Se copia B en L2Se copia B en L2

L1

L2

Mem CBA

B

D

Page 24: Simulación de la Memoria Cache Práctica 3 Arquitectura de Computadores

C

D

Caso 6Caso 6

AccionesAcciones Se hace Se hace writeback writeback AA Se copia B en L2Se copia B en L2 Se actualiza D en L1Se actualiza D en L1

L1

L2

Mem CBA

B

D