Sei sulla pagina 1di 60

Tema 5 (II) Memoria cach

Grupo ARCOS Estructura de Computadores Grado en Ingeniera Informtica Universidad Carlos III de Madrid

Contenidos
1.

Memoria cach
Introduccin:
Acceso a bloque y principio de proximidad

Funcionamiento Organizacin Estructura de la memoria cach Diseo de la memoria cache

ARCOS @ UC3M 2010-2011


Estructura de Computadores

ATENCIN!

Estas transparencias son un guin para la clase Los libros dados en la bibliografa junto con lo explicado en clase representa el material de estudio para el temario de la asignatura
Para la preparacin de los exmenes se ha de utilizar todo el material de estudios

ARCOS @ UC3M 2010-2011


Estructura de Computadores

Contenidos
1.

Memoria cache
Introduccin:
Acceso a bloque y principio de proximidad

Funcionamiento Organizacin Estructura de la memoria cach Diseo de la memoria cache

ARCOS @ UC3M 2010-2011


Estructura de Computadores

Caracterstica de la memoria principal


Se premia el acceso a posiciones consecutivas de memoria
Ejemplo 1: acceder a 5 posiciones de memoria individuales

Ejemplo 2: acceder a 5 posiciones de memoria consecutivas

ARCOS @ UC3M 2010-2011


Estructura de Computadores

Caracterstica de los accesos a memoria


Principio de proximidad de referencias: En el curso de la ejecucin de un programa, las referencias a memoria tienden a estar agrupadas por:
proximidad espacial
Secuencia de instrucciones
.data vector: .space 4*1024 .text main: li $t0 0 la $t1 vector b2: bge $t0 1024 finb2 mult $t2 $t0 4 add $t2 $t1 $t2 sw $t0 ($t2) add $t0 $t0 1 b b2 finb2: jr $ra

proximidad temporal
Bucles

ARCOS @ UC3M 2010-2011


Estructura de Computadores

Principios de proximidad
Proximidad espacial Cuando un programa accede a una determinada posicin de memoria, es muy probable que accesos futuros se realicen en posiciones prximas de memoria Proximidad temporal Cuando un programa accede a una determinada posicin de memoria, es muy probable que esa posicin vuelva a ser accedida por el mismo programa en un futuro

ARCOS @ UC3M 2010-2011


Estructura de Computadores

Objetivo: aprovechar los accesos contiguos


Si cuando accedo a una posicin de memoria transfiero slo los datos de esa posicin, no aprovecho los posibles accesos contiguos.

CPU

Memoria principal

ARCOS @ UC3M 2010-2011


Estructura de Computadores

Objetivo: aprovechar los accesos contiguos


Si cuando se accede a una posicin de memoria se transfiere esos datos y los contiguos, s aprovecho los accesos contiguos

CPU

Memoria principal

ARCOS @ UC3M 2010-2011


Estructura de Computadores

Objetivo: aprovechar los accesos contiguos


Si cuando se accede a una posicin de memoria se transfiere esos datos y los contiguos, s aprovecho los accesos contiguos
Transfiero de la memoria principal un bloque de palabras Dnde almaceno las palabras del bloque?

CPU

Memoria principal

10

ARCOS @ UC3M 2010-2011


Estructura de Computadores

Memoria Cache
Cantidad pequea de memoria rpida Est entre la memoria principal normal y la CPU
transferencia de palabras transferencia de bloques

CPU

cache

Memoria principal

11

ARCOS @ UC3M 2010-2011


Estructura de Computadores

Contenidos
1.

Memoria cache
Introduccin:
Acceso a bloque y principio de proximidad

Funcionamiento Organizacin Estructura de la memoria cach Diseo de la memoria cache

12

ARCOS @ UC3M 2010-2011


Estructura de Computadores

Funcionamiento general
1
lw $t0 ($a0) li $t1 4

3.B.1

CPU

3.A.1 3.B.2

cache
3.B.1

Memoria principal

contenidos de una posicin de memoria. 2. La cache comprueba si ya estn los datos de esta posicin: Si est (acierto de cach),
3.A.1 Se la sirve a la CPU desde la cache (rpidamente).

1. La CPU solicita

Si no est (fallo de cach),


3.B.1 La cache transfiere desde memoria principal el bloque asociado a la posicin. 3.B.2 Despus la cache entrega los datos pedidos a la CPU.

13

ARCOS @ UC3M 2010-2011


Estructura de Computadores

Rendimiento general
Tm = Pca * Tca + (1-Pca) * (Tmp + Tca) ~ Pca * Tca + (1-Pca) * (Tmp)
contenidos de una posicin de memoria. 2. La cache comprueba si ya estn los datos de esta posicin: Si est (acierto de cach),
3.A.1 Se la sirve a la CPU desde la cache (rpidamente). 1. La CPU solicita

Si no est (fallo de cach),


3.B.1 La cache transfiere desde memoria principal el bloque asociado a la posicin. 3.B.2 Despus la cache entrega los datos pedidos a la CPU.

14

ARCOS @ UC3M 2010-2011


Estructura de Computadores

Ejemplo
Tm = Pca * Tca + (1-Pca) * (Tmp + Tca) ~ Pca * Tca + (1-Pca) * (Tmp)
1. Tca:

Tiempo de acceso a cach -> 10 ns Probabilidad de estar en cach -> X = 0.1, 0.2, , 0.9, 1.0 10%, 20%, , 90%, 100%

2. Tmp: Tiempo de acceso a memoria principal -> 120 ns 3. Pca:

15

ARCOS @ UC3M 2010-2011


Estructura de Computadores

Ejemplo
Tm =Tm = X * 10 + (1-Pca) * (Tmp 10) ~ ~ Pca * Tca + (1-X) * (120 + + Tca) Tm = X * 10 + (1-Pca) * (Tmp) 120-110*X Pca * Tca + (1-X) * (120) =
1. Tca:

Tiempo de acceso a cach -> 10 ns Probabilidad de estar en cach -> X = 0.1, 0.2, , 0.9, 1.0 10%, 20%, , 90%, 100%

2. Tmp: Tiempo de acceso a memoria principal -> 120 ns 3. Pca:

16

ARCOS @ UC3M 2010-2011


Estructura de Computadores

Ejemplo
Tm =Tm = X * 10 + (1-Pca) * (Tmp 10) ~ ~ Pca * Tca + (1-X) * (120 + + Tca) Tm = X * 10 + (1-Pca) * (Tmp) 120-110*X Pca * Tca + (1-X) * (120) =
Tiempo medio de acceso a memoria (ns) 140 120 100 80 60 40 20 0 0
17

10

20 30 40 50 60 70 80 90 100 Probabilidad de estar en cache (%)


ARCOS @ UC3M 2010-2011
Estructura de Computadores

int vector[1024];

Ejercicio
Datos:
Tmp: 120 ns

int main ( void ) { int i; for (i = 0; i<1024; i++) vector[i] = i; } .data vector: .space 4*1024

Tiempos de acceso: ?

.text .globl main main: li $t0 0 la $t1 vector b2: bge $t0 1024 finb2 mult $t2 $t0 4 add $t2 $t1 $t2 sw $t0 ($t2) add $t0 $t0 1 b b2 finb2: jr $ra

18

ARCOS @ UC3M 2010-2011


Estructura de Computadores

int vector[1024];

Ejercicio (sol.)
Datos:
Tmp: 120 ns

int main ( void ) { int i; for (i = 0; i<1024; i++) vector[i] = i; } .data vector: .space 4*1024

Tiempos de acceso:
Por datos:
Na=1.024 T=1.024*120=122.880

.text .globl main main: li $t0 0 la $t1 vector b2: bge $t0 1024 finb2 mult $t2 $t0 4 add $t2 $t1 $t2 sw $t0 ($t2) add $t0 $t0 1 b b2 finb2: jr $ra
T. sin cach = 860.640 ns

Por instrucciones:
Na=2+6*1.024+2=6.148 T=6.148*120=737.760

19

ARCOS @ UC3M 2010-2011


Estructura de Computadores

int vector[1024];

Ejercicio
Datos:
Tca: 10 ns Tmp: 120 ns Tamao lnea: 8 palabras

int main ( void ) { int i; for (i = 0; i<1024; i++) vector[i] = i; } .data vector: .space 4*1024 .text .globl main main: li $t0 0 la $t1 vector b2: bge $t0 1024 finb2 mult $t2 $t0 4 add $t2 $t1 $t2 sw $t0 ($t2) add $t0 $t0 1 b b2 finb2: jr $ra

Tiempos de acceso: ?

20

ARCOS @ UC3M 2010-2011


Estructura de Computadores

int vector[1024];

Ejercicio (sol.)
Datos:
Tca: 10 ns Tmp: 120 ns Tamao lnea: 8 palabras

int main ( void ) { int i; for (i = 0; i<1024; i++) vector[i] = i; } .data vector: .space 4*1024 .text .globl main main: li $t0 0 la $t1 vector b2: bge $t0 1024 finb2 mult $t2 $t0 4 add $t2 $t1 $t2 sw $t0 ($t2) add $t0 $t0 1 b b2 finb2: jr $ra
T. sin cach = 860.640 ns T. con cach = 94.970 ns Una mejora de casi x9 en este ejemplo

Tiempos de acceso:
Por instrucciones:
Na=2+6*1.024+1=6.148
Primer acceso: 120 ns Siguientes 1+6*1.024: 10 ns ltimo acceso: 120 ns

T=120+6.145*10+120=61.690

Por datos:
Na=1.024
Primer acceso: 120 ns Siguientes 7 pal.: 10 ns

T=1*128*120 + 7*128*10=33.280
21

ARCOS @ UC3M 2010-2011


Estructura de Computadores

Contenidos
1.

Memoria cache
Introduccin:
Acceso a bloque y principio de proximidad

Funcionamiento Organizacin Estructura de la memoria cach Diseo de la memoria cache

22

ARCOS @ UC3M 2010-2011


Estructura de Computadores

Organizacin de la M.C.
En la memoria cach, los datos estn organizados en bloques denominados lneas de cach En la memoria principal, los datos estn organizados en bloques El tamao del bloque de M.P. debe coincidir con el tamao de la lnea de M.C. Cada lnea de M.C. almacena un nmero determinado de bytes consecutivos de memoria (Nbytes) La unidad de transferencia entre la M.P. y la memoria cach es el bloque. Entre la M.C. y el procesador es la palabra

23

ARCOS @ UC3M 2010-2011


Estructura de Computadores

La memoria cach
Se construye con tecnologa SRAM
Integrada en el mismo procesador. Ms rpida y ms cara que la memoria DRAM.

Mantiene una copia de partes de la memoria principal

Direcciones

Direcciones

Procesador
Datos

Memoria cach

Datos

Memoria Principal

24

ARCOS @ UC3M 2010-2011


Estructura de Computadores

Usada en memoria principal

Tecnologas de RAM
RAM dinmica (DRAM)
Almacena bits como carga en condensadores. Tiende a descargarse: necesita refrescos peridicos.
Ventaja: construccin ms simple, ms almacenamiento, ms econmica Inconveniente: necesita circuitera de refresco, ms lenta.

Tiempo de acceso: 50-100 ns.

RAM esttica (SRAM)


Almacena bits como interruptores en on y off. Tiende a no descargarse: no necesita refresco.
Ventaja: No necesita circuitera de refresco, ms rpida. Inconveniente: Construccin compleja, menos almacenamiento, ms cara.

Tiempo de acceso: 1-10 ns.


Usada en la memoria cach
25 ARCOS @ UC3M 2010-2011
Estructura de Computadores

Memoria Cache: niveles


Es habitual encontrar tres niveles:
L1 o nivel 1:
Cach interna: la ms cercana a la CPU Tamao pequeo (8KB-128KB) y mxima velocidad

L2 o nivel 2:
Cache externa: entre L1 y L3 (o entre L1 y M.Principal) Tamao mediano (256KB 4MB) y menor velocidad que L1

L3 o nivel 3:
ltimo nivel antes de M. Principal Tamao mayor y menor velocidad que L2
26 ARCOS @ UC3M 2010-2011
Estructura de Computadores

Ejemplo
Computador:
Tiempo de acceso a cach: 4 ns Tiempo de acceso a bloque de MP: 120 ns.

Si se tiene una tasa de aciertos del 90%. Cul es el tiempo medio de acceso? Tasas de acierto necesarias para que el tiempo medio de acceso sea menor de 10 ns y 5 ns.

27

ARCOS @ UC3M 2010-2011


Estructura de Computadores

Ejemplo: AMD quad-core

28

ARCOS @ UC3M 2010-2011


Estructura de Computadores

Ejemplo: AMD quad-core

29

ARCOS @ UC3M 2010-2011


Estructura de Computadores

Ejemplo: Intel Core i7

30

ARCOS @ UC3M 2010-2011


Estructura de Computadores

Organizacin de la M.P.
Bloque 1
0 4 8 12 16

La memoria principal lgicamente se divide en bloques de igual tamao


1 bloque = k palabras.

Bloque 2

Bloque 3

Ejercicio: Cuantos bloques de 4 palabras hay en una memoria de 1GB?


Solucin: 2^30 B / 16 B = 230-4 B = 2^26 B = 64 megabloques 64 millones

Bloque 4

Bloque n

31

ARCOS @ UC3M 2010-2011


Estructura de Computadores

Acceso a una palabra de la M.P.


0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76

Ejemplo:
Computador de 32 bits Memoria direccionada por bytes Acceso a memorial principal por palabras Acceso a la palabra con direccin 0x00000064

Palabra de 32 bits 32 ARCOS @ UC3M 2010-2011


Estructura de Computadores

Acceso a una palabra de la M.P.


0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76

Ejemplo:
Computador de 32 bits Memoria direccionada por bytes Acceso a memorial principal por palabras Acceso a la palabra con direccin 0x00000064
00000000000000000000000001000000

Palabra de 32 bits 33 ARCOS @ UC3M 2010-2011


Estructura de Computadores

Contenidos
1.

Memoria cache
Introduccin:
Acceso a bloque y principio de proximidad

Funcionamiento Organizacin Estructura de la memoria cach Diseo de la memoria cache

34

ARCOS @ UC3M 2010-2011


Estructura de Computadores

Expresiones utilizadas
NB Nmero de bloques de la MP nb nmero de bloque (identificador) asignado de la MP NL Nmero de lneas de la cach nl Nmero de lnea de cach (identificador) asignada NC Nmero de conjuntos de la cach (asociativa por conjuntos) nc Nmero de conjunto asignado de la cach Nbytes Nmero de bytes contiguos. Representa el tamao de un bloque de MP y una lnea de memoria cach Acierto de cach el dato se encuentra en la memoria cach Fallo de cach el dato NO se encuentra en la memoria cach y ha de accederse a M.P. (o al nivel de cach superior)

35

ARCOS @ UC3M 2010-2011


Estructura de Computadores

Estructura y diseo de la cache


222 bloques de 4 bytes 214 lneas de 4 bytes

Se divide la M.P. y la M.C. en bloques de igual tamao A cada bloque de M.P. le corresponder una lnea de M.C. (bloque en cach)

4 bytes

M.C.
64 KB

M.P.
16 MB
36 ARCOS @ UC3M 2010-2011
Estructura de Computadores

Estructura y diseo de la cache


222 bloques de 4 bytes 214 lneas de 4 bytes

Se divide la M.P. y la M.C. en bloques de igual tamao A cada bloque de M.P. le corresponder una lnea de M.C. (bloque en cach)

4 bytes

En el diseo se determina:
Tamao Funcin de correspondencia Algoritmo de sustitucin Poltica de escritura

M.C.
64 KB

Es habitual distintos diseos para la cach

M.P.
16 MB
37

L1, L2, ...

ARCOS @ UC3M 2010-2011


Estructura de Computadores

Diseo de la cach
1.

Tamao
Determina el tamao de las lneas y de los bloques para hacer eficiente el uso de la memoria cach

2.

Funcin de correspondencia:
Asignacin de lneas de cach a bloques de memoria principal Identifica unvocamente cada uno de los bloques almacenados en la memoria cach

3.

Algoritmo de sustitucin
Determina la lnea de cach a reemplazar por un nuevo bloque de memoria principal

4.

Poltica de escritura
Coherencia entre la M.C. y la M.P.

38

ARCOS @ UC3M 2010-2011


Estructura de Computadores

Diseo de la cache
Tamao
El tamao total y de los bloques en los que se organiza Por estudios sobre cdigos muy usados se determina
M.C

.
M.P.

39

ARCOS @ UC3M 2010-2011


Estructura de Computadores

Diseo de la cache
Funcin de correspondencia
Dnde est en cach los datos de una posicin de M.P.?
M.C

.
M.P.

Tres tipos de funciones de correspondencia:


Directa Asociativa Asociativa por conjuntos
222 bloques de 4 bytes 214 lneas de 4 bytes
e

222 bloques de 4 bytes 212 conjuntos de 4 lneas de 4 bytes

222 bloques de 4 bytes

214 lneas de 4 bytes


palabra de 4 bytes e palabra de 4 bytes

cto0

palabra de 4 bytes

M.C.
64 KB

cto1

M.C.
64 KB

M.C.
64 KB

M.P.
16 MB

M.P.
16 MB

M.P.
16 MB

40

ARCOS @ UC3M 2010-2011


Estructura de Computadores

Funcin de correspondencia directa


La funcin de correspondencia directa asocia una nica lnea de cach a cada bloque de memoria principal:
nl = nb mod NL
donde nl es el nmero de lnea de la cach y nb es el nmero de bloque de MP

Distribucin de bloques de manera cclica Dada una direccin de n bits:


Direccin n bits
etiqueta

lnea

Byte

m bits restantes = n log2(NL) log2(Nbytes) etiqueta


41

log2 (Nbytes) = Desplazamiento log2 (NL) = nl Nmero de lnea


ARCOS @ UC3M 2010-2011
Estructura de Computadores

Funcin de correspondencia directa M.P.


M.C.
Etiqueta Lneas

(2)

(2)
Comparador

(1) acierto (3)


etiqueta

lnea

Byte

Fallo (3)
42 ARCOS @ UC3M 2010-2011
Estructura de Computadores

Ejemplo: correspondencia directa


Directa:
Cada bloque de M.P. le corresponde una sola lnea de cach (siempre la misma) La direccin de M.P. la determina: 22-14
etiqueta

222 bloques de 4 bytes 214 lneas de 4 bytes


e palabra de 4 bytes

14
lnea

2
palabra

Si en lnea est etiqueta, entonces est el bloque en cach Ej: lnea cach bloque de M.P. asoc. 0 0, 214, 2* 214 , 3* 1 1, 214 +1, [V] simple, poco costosa [I] mal patrn acceso fallos

M.C.
64 KB

M.P.
16 MB
ARCOS @ UC3M 2010-2011
Estructura de Computadores

43

Funcin de correspondencia asociativa


La funcin de correspondencia totalmente asociativa permite asociar un bloque de memoria principal en cualquier lnea de la memoria cach Dada una direccin de n bits:
Direccin n bits
etiqueta

Byte

n log2(Nbytes) etiqueta

log2 (Nbytes) = Desplazamiento

44

ARCOS @ UC3M 2010-2011


Estructura de Computadores

Funcin de correspondencia asociativa M.P.


M.C.
Etiqueta Lneas

(1)

Comparador

acierto (2)
etiqueta

Byte

Fallo (2)
45 ARCOS @ UC3M 2010-2011
Estructura de Computadores

Ejemplo: correspondencia asociativa


Asociativa:
Un bloque de M.P. puede cargarse en cualquier lnea de cach La dir. de M.P. se interpreta como: 22
etiqueta

222 bloques de 4 bytes 214 lneas de 4 bytes


e palabra de 4 bytes

2
palabra

Si hay un lnea con etiqueta en la cach, est all el bloque [V] indep. del patrn de acceso [I] bsqueda costosa

M.C.
64 KB

M.P.
16 MB
46 ARCOS @ UC3M 2010-2011
Estructura de Computadores

Funcin de correspondencia asociativa por conjuntos


La funcin de correspondencia asociativa por conjuntos permite asociar un bloque de MP a un nico conjunto de M.C.
nc = nb mod NC
donde nc es el nmero de conjunto y nb es el nmero de bloque de MP

Dada una direccin de n bits:


Direccin n bits
etiqueta

conjunto

Byte

m bits restantes = n log2(Nc) log2(Nbytes) etiqueta

log2 (Nbytes) = Desplazamiento log2 (NC) = nC Nmero de conjunto


ARCOS @ UC3M 2010-2011
Estructura de Computadores

47

Funcin de correspondencia asociativa por conjuntos


M.P. M.C.
Conjunto Etiqueta Lneas

(2)

(2)
Comparador

(1) acierto (3)


etiqueta
Conjunto

Byte

Fallo (3)
48 ARCOS @ UC3M 2010-2011
Estructura de Computadores

Ejemplo: correspondencia asociativa por conuntos


Asociativa por conjuntos:
Un bloque de M.P. puede cargarse en cualquier lnea de cach (va) de un conjunto determinado La dir. de M.P. se interpreta como: 10
etiqueta

222 bloques de 4 bytes 212 conjuntos de 4 lneas de 4 bytes


cto0 cto1

12
conjunto

2
palabra

palabra de 4 bytes

Si hay un lnea con etiqueta en el conjunto conjunto, est all el bloque en cach [V] lo mejor de directa y asociativa [I] bsqueda menos costosa

M.C.
64 KB

M.P.
16 MB
49 ARCOS @ UC3M 2010-2011
Estructura de Computadores

Diseo de la cache
Algoritmo de sustitucin
M.C

. Si la cach est llena y hay un fallo, Qu bloque se quita? Polticas de reemplazo: M.P. LRU (Least recently Used) FIFO (First in First out) LFU (Least Frequently Used) Aleatorio

50

ARCOS @ UC3M 2010-2011


Estructura de Computadores

Algoritmo de sustitucin
Correspondencia directa:
No hay eleccin posible Para cada bloque/palabra solo hay una posible lnea 214 lneas de 4 bytes
e

222 bloques de 4 bytes

Correspondencia asociativa y asociativa por conjuntos


Algoritmos implementados en hardware para buscar velocidad y mnimo nmero de fallos en cache Eleccin de bloque/palabra segn:
LRU: utilizado menos recientemente FIFO: primero en entrar, primero en salir LFU: utilizado menos frecuntenme Aleatoria: una lnea al azar

palabra de 4 bytes

M.C.
64 KB

M.P.
16 MB
ARCOS @ UC3M 2010-2011
Estructura de Computadores

51

Diseo de la cache
Poltica de escritura
La informacin en la memoria cach se encuentra replicada . Mantener la cocherencia entre la informacin en memoria cach y memoria principal Ej.: write-back (velocidad) o write-through (coherencia -multicore, I/O DMA, etc.-)
M.C

M.P.

52

ARCOS @ UC3M 2010-2011


Estructura de Computadores

Poltica de escritura
Escritura inmediata:
La escritura se hace tanto en M.P. como en cache [V] Coherencia [I] Mucho trfico

Escritura diferida:
La escritura solo se hace en la cach, indicando en un bit que no est volcada la lnea en M.P. Al sustituir el bloque (o cuando trfico con M.P.) se escribe en M.P. [V] Velocidad [I] Coherencia + inconsistencia

M.C.

M.P.
ARCOS @ UC3M 2010-2011
Estructura de Computadores

53

Poltica de escritura
Ej: CPU multicore con cach por core
Las escrituras en cach solo son vistas por un core Si cada core escribe sobre una misma palabra, cal es el resultado final?
e

Ej: mdulo de E/S con acceso directo a M.P.


Actualizacin por DMA puede no ser coherente

M.C.1
e

Porcentaje de referencias a memoria para escritura del orden del 15%.

M.C.2 M.P.

54

ARCOS @ UC3M 2010-2011


Estructura de Computadores

Ejercicio (1/2)
Considere un computador de 32 bits con las siguientes caractersticas:
Memoria fsica instalada de 256 MB con un tiempo de acceso de 70 ns. Direccionamiento de la memoria por bytes. Tamao de la memoria cach de 64 KB. Tamao de la lnea 64 bytes. La cach es asociativa por conjuntos de 4 vas. El tiempo de acceso a la cach es de 5 ns y el tiempo de penalizacin en caso de fallo es de 100 ns.
55 ARCOS @ UC3M 2010-2011
Estructura de Computadores

Ejercicio (2/2)
Se pide:
a) b) c)

d)

e)

Cuntos bloques tiene la memoria principal? (0,25 puntos) Cuntos conjuntos tiene la memoria cach? (0,25 puntos) Dada una direccin de memoria, indique qu partes de la direccin se utilizan para identificar la etiqueta, el conjunto y el byte dentro de la lnea. Indique tambin el nmero de bits de cada parte. (1 punto) Dada la siguiente direccin de memoria 0000 0011 1100 0011 0000 0000 1111 1000. En caso de encontrarse en la memoria cach en qu conjunto se almacenara? (0,25 puntos) Si el tiempo medio de acceso al sistema de memoria es de 8 ns cul es tasa de acierto necesaria para lograr este tiempo? (0,25 puntos)
ARCOS @ UC3M 2010-2011
Estructura de Computadores

56

Solucin
a)

La memoria tiene un tamao de lnea de 64 bytes = 26 bytes. Por tanto, el nmero de bloques de memoria principal ser nbloques = tamao memoria / tamao de lnea = 256 MB / 64 = 256 x 220 / 64 = 256 * 214 bloques

b)

El nmero de lneas de memoria cach es nlineas = tamao memoria / tamao de lnea = 64 KB / 64 bytes = 216 / 26 = 210 = 1024 lneas Conjuntos = N lneas / N vas = 1024 / 4 = 256 conjuntos.

57

ARCOS @ UC3M 2010-2011


Estructura de Computadores

Solucin
c)

La direccin de una cach asociativa por conjuntos se divide en tres partes: etiqueta, conjunto y byte dentro de la lnea.
Byte: el tamao de la lnea es 64 bytes = 26bytes. Se necesitan, por tanto 6 bits para identificar el byte dentro de la lnea. Conjunto: Hay 256 conjuntos = 28, por lo que se necesitan 8 bits para identificar un conjunto Etiqueta: para la etiqueta se emplean el resto de los bits de la direccin = 32 6 8 = 18

La direccin quedara:
Etiqueta (18 bits) Conjunto (8 bits) Byte (6 bits)

58

ARCOS @ UC3M 2010-2011


Estructura de Computadores

Solucin
d)

Utilizamos el formato de la direccin del apartado anterior:


Etiqueta (18 bits) Conjunto (8 bits) Byte (6 bits)

El byte asociado a esta direccin se encontrara en el conjunto 3


e)

El clculo del tiempo medio de acceso a memoria se hace con la siguiente frmula: Tmedio = h * tc + (1-h) * tfallo 8 = h * 5 + (1-h) * 100 Despejando h, se tiene h = 92/95 = 0,967 (tanto por uno) Es decir, una tasa de acierto del 96,7 %

59

ARCOS @ UC3M 2010-2011


Estructura de Computadores

Tema 5 (II) Memoria cach


Grupo ARCOS Estructura de Computadores Grado en Ingeniera Informtica Universidad Carlos III de Madrid

Potrebbero piacerti anche