Sie sind auf Seite 1von 41

Universidad Simn Bolvar Departamento de Electrnica y Circuitos EC3731 Arquitectura del Computador II Prof. Osberth De Castro Prof.

. Juan C. Regidor

Jerarqua de Memoria Memoria Cach


Jerarquia de memoria y mejoras en desempeo
! ! ! ! ! ! !

Condiciones que hacen necesario el uso de Memoria Cach Concepto de Memoria Cach y lgica de funcionamiento Escritura y Lectura en Cach, Acierto y Fallo en Cach Implementacin de Memorias Cach en la jerarqua de Memoria. Diseo de Memorias Cach: Correspondencias Directa, Asociativa y Asociativa por Conjuntos Estudio del desempeo de sistemas con Memoria Cach Casos de Estudio
Basado en y configuras de C. O. D de Patterson & Hennessy/ 3ra ed., C.O.D. de William Stallings y en material del Prof. Lee Hsien.

Universidad Simn Bolvar

Desempeo de CPU vs Memoria Principal


La brecha entre ambos desempeos crece 50% por ao 1000

Medida de Desempeo

Ley de Moore
100 10
DRAM CPU

Procesador 60%/ao (2X/1.5 aos)

1
1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000

DRAM 9%/ao (2X/10 aos)

Time

Universidad Simn Bolvar

Posibles soluciones
!

Usar memoria tan rpidas como el Procesador


"

Para la capacidad de memoria requerida por las computadoras modernas resulta prohibitivo, debido al costo de fabricacin por bit.

Usar memorias tan rpidas como el Procesador, en cantidades pequeas, costeables, optimizando su uso.
" "

Posible, bajo criterios de diseo y desempeo controlables. Memoria Cach.

Usar diversas tecnologas de memoria, para garantizar no slo alto desempeo, sino capacidad y generalizacin en su uso.
" "

Diseo de un sistema de memoria hbrido Sistema de memoria Jerrquico.

Universidad Simn Bolvar

Caractersticas determinantes de la Memoria


!

Latencia
"

Tiempo de respuesta mxima del circuito

Ancho de banda
"

Nmero de bits transportados en cada acceso.

Capacidad
"

Tamao de la memoria

Costo de uso
"

Costo de cada acceso, para lectura y para escritura.

Costo por bit


4

Universidad Simn Bolvar

Por qu funciona? Principio de Localidad


!

Dos tipos de Localidad: " Localidad Temporal: Si se hace referencia a una direccin dada, es muy probable que vuelva a ocurrir pronto.
!

Ejemplo: lazos de programa, uso continuo de conjuntos de variables.

"

Localidad Espacial: Si se hace referencia a una direccin dada, es muy probable que sus direcciones vecinas lo sean tambin.
!

Ejemplos: fragmento de cdigo secuencial, arreglos en memoria

El diseo de hardware utiliza frecuentemente principios de localidad para optimizar desempeo y costo.

Universidad Simn Bolvar

Principio de localidad
int A[100], B[100], C[100], D; for (i=0; i<100; i++) { C[i] = A[i] * B[i] + D; }

A cach Line (One fetch)


Universidad Simn Bolvar 6

Principio de localidad
int A[100], B[100], C[100], D; for (i=0; i<100; i++) { C[i] = A[i] * B[i] + D; }

A[7]

A[6]

A[5]

A[4]

A[3]

A[2]

A[1]

A[0]

A cach Line (One fetch)


Universidad Simn Bolvar 6

Principio de localidad
int A[100], B[100], C[100], D; for (i=0; i<100; i++) { C[i] = A[i] * B[i] + D; }
D

C[99] C[98] C[97] C[96] C[3] C[2] C[1] C[0]

..............
C[7] C[6] C[5] B[9] B[1] A[5] C[4] B[8] B[0] A[4]

..............
B[11] B[10] B[3] B[2] A[7] A[6] B[7] B[6] B[5] B[4] A[99] A[98] A[97] A[96] A[3] A[2] A[1] A[0]

..............
A cach Line (One fetch)
Universidad Simn Bolvar 6

Cach
!

Palabra francesa (escondido, p. p. del verbo cachr) Pequea cantidad de memoria rpida Se sita entre la memoria principal y el CPU Puede estar fsicamente en el chip del procesador o en la misma tarjeta que ste

! ! !

Universidad Simn Bolvar

Diagrama de Jerarqua de Memoria

Universidad Simn Bolvar

Modelo mixto de Memoria


!

Usando el principio de Localidad se puede:


" "

Proveer a los programas la mayor cantidad de memoria posible usando tecnologa de bajo costo. Proveer acceso de alta velocidad usando la tecnologa de alto desempeo y costo.

Procesador Control Cach nivel 2 (SRAM) Cach nivel 3 (SRAM) Almacenamiento Secundario (Disco) Almacenamiento Terciario (Disco, Cinta, DVD-ROM)

Memoria Principal (DRAM)

L1 I cach

Datapath

Capacidad Tiempo de Acceso Costo 100s Bytes <10 ns

100K Bytes 10-100 ns 1-0.1 cents/bit G Bytes 200ns- 500ns $.0001-.00001 cents /bit 100G Bytes, 10 ms (10,000,000 ns) 10-5 10-6 cents/bit infinita sec-min 10-8

Registros

L1 D cach

Universidad Simn Bolvar

Modelo Jerrquico de Memoria


Unidad de Transferencia

Registros
Operandos de Inst. Compilador 1-8 bytes

rpido, pequeo y costoso

Memoria Cach
Bloques de cach Controlador de cach 8-128 bytes

Memoria principal
Paginas de Memoria Systema Operativo 512-4K bytes

Discos Duros
Pginas de Memoria y Archivos Usuario Mbytes lento, grande y barato
10

Cintas magnticas y otros medios


Universidad Simn Bolvar

Lgica de un Acceso a Memoria Jerrquica


! ! ! ! ! ! !

Un acceso al sistema de memoria es una lectura una escritura, tanto de memoria de programa, como de memoria de datos. El procesador usa el nivel de memoria mas cercano a l (superiores). Debido a los tamaos de cada nivel, no toda la informacin cabe en todos los niveles. Cuando una informacin no se encuentra en el nivel buscado, se busca en el nivel inferior siguiente. La informacin se consigue eventualmente. Aumenta el desempeo del sistema si se garantiza un alto porcentaje de accesos que no bajan a los niveles inferiores. Hay diversas implementaciones en el caso de la escritura.

Universidad Simn Bolvar

11

Localidad de Programa y Datos


!

El Principio de Localidad se cumple de dos formas en la computacin moderna:


1.

Memoria Principal

2.

Localidad General: La memoria de Datos y de Programa de una aplicacin se pueden encontrar relativamente cerca. Localidad intrnseca de los accesos por tipo de memoria:
1. 2.

Programa Datos
Aplicacin 1

Programa Datos.

Programa Datos
Aplicacin 2

"

Esto lleva a aprovechar ambos tipos de localidad con una estructura mas compleja, por niveles.
Cach de Programa Cach de Datos
Cach de Nivel 1

Programa Datos
Aplicacin 3

Cach General (grande)

Cach de Nivel 2

Universidad Simn Bolvar

12

Ejemplo de Memoria Cach (Intel Core2 Duo)


L1 L2 32 KB, latencia de 3 Ciclos 4.0 MB, latencia de 14 ciclos

Fuente: http://www.sandpile.org
Universidad Simn Bolvar 13

Ejemplo de Memoria Cach (Intel Core2 Duo)


L1 L2 32 KB, latencia de 3 Ciclos 4.0 MB, latencia de 14 ciclos

Core0

Core1

L2 cach

Fuente: http://www.sandpile.org
Universidad Simn Bolvar 13

Ejemplo de Memoria Cach (Intel Core2 Duo)


L1 L2 32 KB, latencia de 3 Ciclos 4.0 MB, latencia de 14 ciclos

Core0
IL1

DL1

DL1

Core1
IL1

L2 cach

Fuente: http://www.sandpile.org
Universidad Simn Bolvar 13

Ejemplo de Cach Intel Itanium 2

Versin de 3MB L3

Versin de 6MB L3

Universidad Simn Bolvar

14

Ejemplo de Cach STI Cell Processor Local Storage

SPE = 21M transistors (14M array; 7M logic)


Universidad Simn Bolvar 15

Cell Synergistic Processing Element

Each SPE contains 128 x128 bit registers, 256KB, 1-port, ECC-protected local SRAM (Not cach)
Universidad Simn Bolvar 16

Conexin de la Memoria Cach

Universidad Simn Bolvar

17

Funcionamiento y Terminologa
!

Acceso (a memoria): Toda aquella operacin, visible o no al programador que requiere lecturas o escrituras de memoria.
"

"

Cada vez que el Procesador busca un byte o palabra de la memoria de programa (FETCH), para traer un opcode, argumento, etc., se produce un acceso. Cada vez que el procesador ejecuta una instruccin que usa direccionamientos a memoria de programa (variables) de datos (tablas fijas, constantes) (directos, indirectos indexados), se produce un acceso por cada operando y/o resultado. La ejecucin de la instruccin de IJVM IADD en Mic1 realiza 4 accesos a memoria:
!

Ejemplos:
"

Traer la instruccin de la memoria de programa (PC = PC + 1; Fetch). Acceso de Lectura Leer los dos Sumandos de la Pila son dos accesos a Memoria (MAR = SP; rd y MAR = SP 1; rd) (suponiendo que no se dispone de un registro TOS). Escribir el Resultado en el Tope de la Pila es un acceso de Escritura (MAR = SP; wr)
Universidad Simn Bolvar 18

Funcionamiento y Terminologa
!

Acierto (hit): Un dato se ha encontrado en el nivel solicitado.


" "

Tasa de aciertos (Hit Rate): fraccin o porcentaje de accesos a memoria que han producido acierto en un nivel dado. Tiempo de acierto (Hit Time): Tiempo necesario para acceder al nivel (tiempo de acceso a la memoria del nivel + tiempo de respuesta de la lgica que determina que hubo acierto).

Fallo (miss): No se encuentra el dato en el nivel. Debe ser buscado en bloques de memoria de niveles inferiores.
" "

Tasa de fallos (Miss Rate) = 1 (Tasa de aciertos) Penalizacin por Fallos (Miss Penalty): Tiempo que toma traer un bloque de un nivel inferior + Tiempo para enviar el dato solicitado al procesador

En general, Tiempo de un Acierto << Penalizacin por un Fallo.

Del Procesador

Memoria de Nivel Superior


Blk X

Memoria de Nivel inferior


Blk Y

Al Procesador
Universidad Simn Bolvar 19

Funcionamiento y Terminologa
!

Acierto (hit): Un dato se ha encontrado en el nivel solicitado.


" "

Tasa de aciertos (Hit Rate): fraccin o porcentaje de accesos a memoria que han producido acierto en un nivel dado. Tiempo de acierto (Hit Time): Tiempo necesario para acceder al nivel (tiempo de acceso a la memoria del nivel + tiempo de respuesta de la lgica que determina que hubo acierto).

Fallo (miss): No se encuentra el dato en el nivel. Debe ser buscado en bloques de memoria de niveles inferiores.
" "

Tasa de fallos (Miss Rate) = 1 (Tasa de aciertos) Penalizacin por Fallos (Miss Penalty): Tiempo que toma traer un bloque de un nivel inferior + Tiempo para enviar el dato solicitado al procesador

En general, Tiempo de un Acierto << Penalizacin por un Fallo.

Del Procesador

Memoria de Nivel Superior


Blk X

Memoria de Nivel inferior


Blk Y

Al Procesador
Universidad Simn Bolvar 19

Funcionamiento y Terminologa
!

Acierto (hit): Un dato se ha encontrado en el nivel solicitado.


" "

Tasa de aciertos (Hit Rate): fraccin o porcentaje de accesos a memoria que han producido acierto en un nivel dado. Tiempo de acierto (Hit Time): Tiempo necesario para acceder al nivel (tiempo de acceso a la memoria del nivel + tiempo de respuesta de la lgica que determina que hubo acierto).

Fallo (miss): No se encuentra el dato en el nivel. Debe ser buscado en bloques de memoria de niveles inferiores.
" "

Tasa de fallos (Miss Rate) = 1 (Tasa de aciertos) Penalizacin por Fallos (Miss Penalty): Tiempo que toma traer un bloque de un nivel inferior + Tiempo para enviar el dato solicitado al procesador

En general, Tiempo de un Acierto << Penalizacin por un Fallo.

Del Procesador

Memoria de Nivel Superior


Blk X

Memoria de Nivel inferior


Blk Y

Al Procesador
Universidad Simn Bolvar 19

Funcionamiento y Terminologa
!

Acierto (hit): Un dato se ha encontrado en el nivel solicitado.


" "

Tasa de aciertos (Hit Rate): fraccin o porcentaje de accesos a memoria que han producido acierto en un nivel dado. Tiempo de acierto (Hit Time): Tiempo necesario para acceder al nivel (tiempo de acceso a la memoria del nivel + tiempo de respuesta de la lgica que determina que hubo acierto).

Fallo (miss): No se encuentra el dato en el nivel. Debe ser buscado en bloques de memoria de niveles inferiores.
" "

Tasa de fallos (Miss Rate) = 1 (Tasa de aciertos) Penalizacin por Fallos (Miss Penalty): Tiempo que toma traer un bloque de un nivel inferior + Tiempo para enviar el dato solicitado al procesador

En general, Tiempo de un Acierto << Penalizacin por un Fallo.

Del Procesador

Memoria de Nivel Superior


Blk X

Memoria de Nivel inferior


Blk Y

Al Procesador
Universidad Simn Bolvar 19

Parmetros de desempeo de Memoria


!

Tiempo Promedio de acceso al sistema de memoria (TPAM)

TPAM = (h x TA)+ ((1h) x TPF)


Donde h es la tasa de aciertos, TA es el tiempo de un acierto, (1h) es la tasa de Fallos y TPF es el tiempo de penalizacin por fallo.
! !

TA suele ser de pocos ciclos para el nivel 1 de cach TPF suele ser de muchos ciclos, pues se realiza una transferencia de bloques entre los dos niveles, y est en funcin de: " Tiempo de Acceso: es funcin de la latencia. " Tiempo de transferencia: es funcin del ancho de banda entre niveles, sabiendo que se transfiere un bloque por cada fallo.
Universidad Simn Bolvar 20

Ejemplo de desempeo
1 ciclo
Cach L1

300 ciclos (1h) * TPF


Memoria Principal (DRAM)

h * TA

TPAM = (h x TA)+ ((1-h) x TPF) = (h (L1) x TA(L1))+ ((1-h) (L1) x TPF(Mem))


!

Ejemplo: TA = 1 ciclo h = 90% = 0.9 TPF(Mem) = 300 ciclos TPAM = 0.9*1 + 0.1*300 = 30.9 ciclos
Universidad Simn Bolvar 21

Desempeo de Cach Multinivel


1 ciclo
Cach L1

10 ciclos

Cach L2

20 ciclos Cach L3

300 ciclos Main Memory (DRAM)

EL clculo se vuelve recursivo al agregar niveles

TPAM = (h (L1) x TA(L1))+ ((1h) (L1) x TPF(L1)) TPAM = (h (L1) x TA(L1))+ ((1h) (L1) x [(h (L2) x TA(L2))+ ((1h) (L2) x TPF(L2))]) TPAM = (h (L1) x TA(L1))+ ((1h) (L1) x (h (L2) x TA(L2))+ ((1h) (L2) x [(h (L3) x TA(L3))+ ((1h) (L3) x TPF(Mem))])])
Universidad Simn Bolvar 22

Desempeo de Cach Multinivel (ejemplo)


1 ciclo
Cach L1

10 ciclos

Cach L2

20 ciclos Cach L3

300 ciclos Main Memory (DRAM)

h(L1)= 90% = 0.9 h(L2)= 95% = 0.95 h(L3)= 99% = 0.99 TPAM = 0.9*1 + 0.1*[ 0.95*10 + 0.05*(0.99*20+0.01*300)] = 0.9 + 0.1*[9.5 + 0.05*22.8]

TPAM=1.964 ciclos. Comparado con 30.9 ciclos para un solo nivel, es una mejora de 15.73 veces aprox.
Universidad Simn Bolvar 23

Organizacin de la Memoria Cach


! ! !

Memoria para bloques de datos Memoria para informacin de Control Circuitos lgicos que realizan las tareas de la cach:
" " " "

Buscar el dato en la cach. Determinar si est. Si contiene el dato, generar seal de acierto (Hit), que activa los mecanismos de transferencia del dato al procesador. Si no contiene el dato, generar seal de fallo (Miss), que activa los mecanismos de transferencia de bloques. La trasferencia de bloques en el caso de los fallos es bidireccional, pues un bloque que viene de un nivel inferior podra tener que reemplazar otro que ya se encuentra en la cach, y que ha sido modificado.

Universidad Simn Bolvar

24

Organizacin mnima de la Cach


Memoria Cach
Etiqueta de bloque Direccin de datos dentro del cach Bloque de datos en cach

Memoria Principal

0x00000000 0x0000FFFF 0x00010000 0x0001FFFF

0x000 2

0x0000 ... 0xFFFF

dato

0x00020000

dato

0x0002FFFF 0x00030000 0x0003FFFF ... 0xFFFD0000 0xFFFDFFFF 0xFFFE0000 0xFFFEFFFF 0xFFFF0000 0xFFFFFFFF

Buscar si un dato (direccin de memoria) est en el cach es verificar que el bloque que est en la cach corresponde al bloque de memoria que contiene al dato. Uso de etiqueta para identificar el bloque de memoria que se encuentra en la cach. La etiqueta forma parte de la direccin del dato. Ejemplo: En la figura, el dato de direccin 0x00020AC3 se encuentra en la Cach. El dato de direccin 0x00030AC3 no se encuentra. Una instruccin LDA 0x00020AC3 dar un Acierto, y la otra resultar en un Fallo

Universidad Simn Bolvar

25

Organizacin mnima de la Cach


Memoria Cach (64K)
Etiqueta de bloque Direccin de datos dentro de la cach Bloque de datos en cach

Memoria Principal

0x00000000 0x0000FFFF 0x00010000 0x0001FFFF

0x000 2

0x0000 ... 0xFFFF


0x0AC3 = 0x3F

0x00020000
0x00020AC3 = 0x3F

0x0002FFFF 0x00030000
Interpret. de la Cach Etiqueta Despl. 0AC3

0x0003FFFF ... 0xFFFD0000


0x3F

0002

0x00020AC3

0xFFFDFFFF 0xFFFE0000

Acierto/Fallo Procesador: LDA 0x00020AC3

0xFFFEFFFF 0xFFFF0000 0xFFFFFFFF

Universidad Simn Bolvar

26

Organizacin mnima de la Cach


Memoria Cach
Etiqueta de bloque Direccin de datos dentro del cach Bloque de datos en cach

Memoria Principal

0x00000000 0x0000FFFF 0x00010000 0x0001FFFF

0x000 2

0x0000 ... 0xFFFF

dato

0x00020000

dato

0x0002FFFF 0x00030000

Desventajas Solo un bloque de memoria puede estar en cach a la vez. Poca flexibilidad en el comn de los programas con saltos y llamados a funciones frecuentes. Soluciones Cach de multiples bloques.

0x0003FFFF ... 0xFFFD0000 0xFFFDFFFF 0xFFFE0000 0xFFFEFFFF 0xFFFF0000 0xFFFFFFFF

Universidad Simn Bolvar

27

Relacin de correspondencia en la organizacin


!

Correspondencia Directa
" " " "

Existe una relacin directa por direccionamiento entre grupos de bloques de la memoria, y los bloques de la cach. Para un bloque de memoria dado, slo le corresponde uno de los bloques de la memoria cach. Simplificacin significativa del circuito de control de la cach. Se reduce la flexibilidad. Cualquier bloque de la memoria puede estar en cualquier bloque de cach. Mxima flexibilidad Circuitos costosos y lentos. Muchas verificaciones.

Correspondencia Asociativa
" " "

Universidad Simn Bolvar

28

Correspondencia Directa
! !

Cada bloque de la memoria principal se mapea a una ubicacin fija de la cach La direccin de una palabra se divide en tres campos:
" " "

Los w bits menos significativos identifican a la palabra dentro del bloque Los siguientes s bits identifican un nmero de linea dentro de la cach Los t bits ms significativos forman la etiqueta del bloque

Interpretacin de la Cach: Etiqueta t bits Lnea s bits Desp. w bits

Universidad Simn Bolvar

29

Correspondencia Directa: 4 Lneas de 64K c/u


Etiqueta de bloque Lnea De Bloques (hay 4 lneas) Direccin de datos dentro del bloque Bloque de datos en cach 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1111 1111 1111 1111 0000 0000 0000 0001 0000 0000 0000 0000 0000 0000 0000 0001 1111 1111 1111 1111 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1111 1111 1111 1111 0000 0000 0000 0011 0000 0000 0000 0000 0000 0000 0000 0011 1111 1111 1111 1111 0000 0000 0000 0100 0000 0000 0000 0000 0000 0000 0000 0100 1111 1111 1111 1111 0000 0000 0000 0101 0000 0000 0000 0000 0000 0000 0000 0101 1111 1111 1111 1111 0000 0000 0000 0110 0000 0000 0000 0000 0000 0000 0000 0110 1111 1111 1111 1111

Memoria Principal

0x0(00)

0x0000 ... 0xFFFF 0x0000 ... 0xFFFF 0x0000 ... 0xFFFF 0x0000 ... 0xFFFF

0x0000

0x1(01)

0x0000

0x2(10)

0x3(11)

0000 0000 0000 0111 0000 0000 0000 0000 0000 0000 0000 0111 1111 1111 1111 1111 ... 1111 1111 1111 1100 0000 0000 0000 0000 1111 1111 1111 1100 1111 1111 1111 1111 1111 1111 1111 1101 0000 0000 0000 0000 1111 1111 1111 1101 1111 1111 1111 1111 1111 1111 1111 1110 0000 0000 0000 0000 1111 1111 1111 1110 1111 1111 1111 1111 1111 1111 1111 1111 0000 0000 0000 0000 1111 1111 1111 1111 1111 1111 1111 1111

...

Universidad Simn Bolvar

30

Correspondencia Directa: 4 Lneas de 64K c/u


Etiqueta de bloque Lnea De Bloques (hay 4 lneas) Direccin de datos dentro del bloque Bloque de datos en cach 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1111 1111 1111 1111 0000 0000 0000 0001 0000 0000 0000 0000 0000 0000 0000 0001 1111 1111 1111 1111 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1111 1111 1111 1111 0000 0000 0000 0011 0000 0000 0000 0000 0000 0000 0000 0011 1111 1111 1111 1111 0000 0000 0000 0100 0000 0000 0000 0000 0000 0000 0000 0100 1111 1111 1111 1111 0000 0000 0000 0101 0000 0000 0000 0000 0000 0000 0000 0101 1111 1111 1111 1111 0000 0000 0000 0110 0000 0000 0000 0000 0000 0000 0000 0110 1111 1111 1111 1111

Memoria Principal

0x0(00)

0x0000 ... 0xFFFF 0x0000 ... 0xFFFF 0x0000 ... 0xFFFF 0x0000 ... 0xFFFF

0x0000

0x1(01)

0x0000

0x2(10)

0x3(11)

0000 0000 0000 0111 0000 0000 0000 0000 0000 0000 0000 0111 1111 1111 1111 1111 ... 1111 1111 1111 1100 0000 0000 0000 0000 1111 1111 1111 1100 1111 1111 1111 1111 1111 1111 1111 1101 0000 0000 0000 0000 1111 1111 1111 1101 1111 1111 1111 1111 1111 1111 1111 1110 0000 0000 0000 0000 1111 1111 1111 1110 1111 1111 1111 1111 1111 1111 1111 1111 0000 0000 0000 0000 1111 1111 1111 1111 1111 1111 1111 1111

...

Universidad Simn Bolvar

30

Correspondencia Directa: 4 Lneas de 64K c/u


Etiqueta de bloque Lnea De Bloques (hay 4 lneas) Direccin de datos dentro del bloque Bloque de datos en cach 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1111 1111 1111 1111 0000 0000 0000 0001 0000 0000 0000 0000 0000 0000 0000 0001 1111 1111 1111 1111 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1111 1111 1111 1111 0000 0000 0000 0011 0000 0000 0000 0000 0000 0000 0000 0011 1111 1111 1111 1111 0000 0000 0000 0100 0000 0000 0000 0000 0000 0000 0000 0100 1111 1111 1111 1111 0000 0000 0000 0101 0000 0000 0000 0000 0000 0000 0000 0101 1111 1111 1111 1111 0000 0000 0000 0110 0000 0000 0000 0000 0000 0000 0000 0110 1111 1111 1111 1111

Memoria Principal

0x0(00)

0x0000 ... 0xFFFF 0x0000 ... 0xFFFF 0x0000 ... 0xFFFF 0x0000 ... 0xFFFF

0x0000

0x1(01)

0x0000

0x2(10)

0x3(11)

0000 0000 0000 0111 0000 0000 0000 0000 0000 0000 0000 0111 1111 1111 1111 1111 ... 1111 1111 1111 1100 0000 0000 0000 0000 1111 1111 1111 1100 1111 1111 1111 1111 1111 1111 1111 1101 0000 0000 0000 0000 1111 1111 1111 1101 1111 1111 1111 1111 1111 1111 1111 1110 0000 0000 0000 0000 1111 1111 1111 1110 1111 1111 1111 1111 1111 1111 1111 1111 0000 0000 0000 0000 1111 1111 1111 1111 1111 1111 1111 1111

...

Interpretacin de la Cach: Dir: 0x00020AC3 = 0000 0000 0000 0010 0000 1010 1100 0011 Etiqueta 0000 0000 0000 00 Lnea 10 Desp. 0000 1010 1100 0011

Universidad Simn Bolvar

30

Correspondencia Directa: 4 Lneas de 64K c/u


Etiqueta de bloque Lnea De Bloques (hay 4 lneas) Direccin de datos dentro del bloque Bloque de datos en cach 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1111 1111 1111 1111 0000 0000 0000 0001 0000 0000 0000 0000 0000 0000 0000 0001 1111 1111 1111 1111 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1111 1111 1111 1111 0000 0000 0000 0011 0000 0000 0000 0000 0000 0000 0000 0011 1111 1111 1111 1111 0000 0000 0000 0100 0000 0000 0000 0000 0000 0000 0000 0100 1111 1111 1111 1111 0000 0000 0000 0101 0000 0000 0000 0000 0000 0000 0000 0101 1111 1111 1111 1111 0000 0000 0000 0110 0000 0000 0000 0000 0000 0000 0000 0110 1111 1111 1111 1111

Memoria Principal

0x0(00)

0x0000 ... 0xFFFF 0x0000 ... 0xFFFF 0x0000 ... 0xFFFF 0x0000 ... 0xFFFF

0x20AC3 = 0x3F

0x0000

0x1(01)

0x0000

0x2(10)

0x3(11)

0000 0000 0000 0111 0000 0000 0000 0000 0000 0000 0000 0111 1111 1111 1111 1111 ... 1111 1111 1111 1100 0000 0000 0000 0000 1111 1111 1111 1100 1111 1111 1111 1111 1111 1111 1111 1101 0000 0000 0000 0000 1111 1111 1111 1101 1111 1111 1111 1111 1111 1111 1111 1110 0000 0000 0000 0000 1111 1111 1111 1110 1111 1111 1111 1111 1111 1111 1111 1111 0000 0000 0000 0000 1111 1111 1111 1111 1111 1111 1111 1111

...

Interpretacin de la Cach: Dir: 0x00020AC3 = 0000 0000 0000 0010 0000 1010 1100 0011 Etiqueta 0000 0000 0000 00 Lnea 10 Desp. 0000 1010 1100 0011

Universidad Simn Bolvar

30

Correspondencia Directa: 4 Lneas de 64K c/u


Etiqueta de bloque Lnea De Bloques (hay 4 lneas) Direccin de datos dentro del bloque Bloque de datos en cach 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1111 1111 1111 1111 0000 0000 0000 0001 0000 0000 0000 0000 0000 0000 0000 0001 1111 1111 1111 1111 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1111 1111 1111 1111 0000 0000 0000 0011 0000 0000 0000 0000 0000 0000 0000 0011 1111 1111 1111 1111 0000 0000 0000 0100 0000 0000 0000 0000 0000 0000 0000 0100 1111 1111 1111 1111 0000 0000 0000 0101 0000 0000 0000 0000 0000 0000 0000 0101 1111 1111 1111 1111 0000 0000 0000 0110 0000 0000 0000 0000 0000 0000 0000 0110 1111 1111 1111 1111

Memoria Principal

0x0(00)

0x0000 ... 0xFFFF 0x0000 ... 0xFFFF 0x0000 ... 0xFFFF 0x0000 ... 0xFFFF

0x20AC3 = 0x3F

0x0000

0x1(01)

0x0000

0x2(10)

0x3(11)

0000 0000 0000 0111 0000 0000 0000 0000 0000 0000 0000 0111 1111 1111 1111 1111 ... 1111 1111 1111 1100 0000 0000 0000 0000 1111 1111 1111 1100 1111 1111 1111 1111 1111 1111 1111 1101 0000 0000 0000 0000 1111 1111 1111 1101 1111 1111 1111 1111 1111 1111 1111 1110 0000 0000 0000 0000 1111 1111 1111 1110 1111 1111 1111 1111 1111 1111 1111 1111 0000 0000 0000 0000 1111 1111 1111 1111 1111 1111 1111 1111

...

Interpretacin de la Cach: Dir: 0x00020AC3 = 0000 0000 0000 0010 0000 1010 1100 0011 Etiqueta 0000 0000 0000 00 Lnea 10 Desp. 0000 1010 1100 0011

Universidad Simn Bolvar

30

Correspondencia Directa: 4 Lneas de 64K c/u


Etiqueta de bloque Lnea De Bloques (hay 4 lneas) Direccin de datos dentro del bloque Bloque de datos en cach 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1111 1111 1111 1111 0000 0000 0000 0001 0000 0000 0000 0000 0000 0000 0000 0001 1111 1111 1111 1111 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1111 1111 1111 1111 0000 0000 0000 0011 0000 0000 0000 0000 0000 0000 0000 0011 1111 1111 1111 1111 0000 0000 0000 0100 0000 0000 0000 0000 0000 0000 0000 0100 1111 1111 1111 1111 0000 0000 0000 0101 0000 0000 0000 0000 0000 0000 0000 0101 1111 1111 1111 1111 0000 0000 0000 0110 0000 0000 0000 0000 0000 0000 0000 0110 1111 1111 1111 1111 0000 0000 0000 0111 0000 0000 0000 0000 0000 0000 0000 0111 1111 1111 1111 1111 ... 1111 1111 1111 1100 0000 0000 0000 0000 1111 1111 1111 1100 1111 1111 1111 1111 1111 1111 1111 1101 0000 0000 0000 0000 1111 1111 1111 1101 1111 1111 1111 1111 1111 1111 1111 1110 0000 0000 0000 0000 1111 1111 1111 1110 1111 1111 1111 1111 1111 1111 1111 1111 0000 0000 0000 0000 1111 1111 1111 1111 1111 1111 1111 1111

Memoria Principal

0x0(00)

0x0000 ... 0xFFFF 0x0000 ... 0xFFFF 0x0000 ... 0xFFFF 0x0000 ... 0xFFFF

0x20AC3 = 0x3F

0x0000

0x1(01)

0x0000

0x2(10)

0x0AC3 = 0x3F

0x3(11)

...

Interpretacin de la Cach: Dir: 0x00020AC3 = 0000 0000 0000 0010 0000 1010 1100 0011 Etiqueta 0000 0000 0000 00 Lnea 10 Desp. 0000 1010 1100 0011

Universidad Simn Bolvar

30

Correspondencia Directa: 4 Lneas de 64K c/u


Etiqueta de bloque Lnea De Bloques (hay 4 lneas) Direccin de datos dentro del bloque Bloque de datos en cach 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1111 1111 1111 1111 0000 0000 0000 0001 0000 0000 0000 0000 0000 0000 0000 0001 1111 1111 1111 1111 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1111 1111 1111 1111 0000 0000 0000 0011 0000 0000 0000 0000 0000 0000 0000 0011 1111 1111 1111 1111 0000 0000 0000 0100 0000 0000 0000 0000 0000 0000 0000 0100 1111 1111 1111 1111 0000 0000 0000 0101 0000 0000 0000 0000 0x0AC3 = 0x3F 0000 0000 0000 0101 1111 1111 1111 1111 0000 0000 0000 0110 0000 0000 0000 0000 0000 0000 0000 0110 1111 1111 1111 1111 0000 0000 0000 0111 0000 0000 0000 0000 0000 0000 0000 0111 1111 1111 1111 1111 ... 1111 1111 1111 1100 0000 0000 0000 0000 1111 1111 1111 1100 1111 1111 1111 1111 1111 1111 1111 1101 0000 0000 0000 0000 1111 1111 1111 1101 1111 1111 1111 1111 1111 1111 1111 1110 0000 0000 0000 0000 1111 1111 1111 1110 1111 1111 1111 1111 1111 1111 1111 1111 0000 0000 0000 0000 1111 1111 1111 1111 1111 1111 1111 1111

Memoria Principal

0x0(00)

0x0000 ... 0xFFFF 0x0000 ... 0xFFFF 0x0000 ... 0xFFFF 0x0000 ... 0xFFFF

0x20AC3 = 0x3F

0x0000

0x1(01)

0x0000

0x2(10)

0x3(11)

...

Interpretacin de la Cach: Dir: 0x00020AC3 = 0000 0000 0000 0010 0000 1010 1100 0011 Etiqueta 0000 0000 0000 00 Lnea 10 Desp. 0000 1010 1100 0011

Universidad Simn Bolvar

30

Correspondencia Directa: 4 Lneas de 64K c/u


Etiqueta de bloque Lnea De Bloques (hay 4 lneas) Direccin de datos dentro del bloque Bloque de datos en cach 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1111 1111 1111 1111 0000 0000 0000 0001 0000 0000 0000 0000 0000 0000 0000 0001 1111 1111 1111 1111 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1111 1111 1111 1111 0000 0000 0000 0011 0000 0000 0000 0000 0000 0000 0000 0011 1111 1111 1111 1111 0x0AC3 = 0x6B 0000 0000 0000 0100 0000 0000 0000 0000 0000 0000 0000 0100 1111 1111 1111 1111 0000 0000 0000 0101 0000 0000 0000 0000 0000 0000 0000 0101 1111 1111 1111 1111 0000 0000 0000 0110 0000 0000 0000 0000 0000 0000 0000 0110 1111 1111 1111 1111 0000 0000 0000 0111 0000 0000 0000 0000 0000 0000 0000 0111 1111 1111 1111 1111 ... 1111 1111 1111 1100 0000 0000 0000 0000 1111 1111 1111 1100 1111 1111 1111 1111 1111 1111 1111 1101 0000 0000 0000 0000 1111 1111 1111 1101 1111 1111 1111 1111 1111 1111 1111 1110 0000 0000 0000 0000 1111 1111 1111 1110 1111 1111 1111 1111 1111 1111 1111 1111 0000 0000 0000 0000 1111 1111 1111 1111 1111 1111 1111 1111

Memoria Principal

0x10AC3 = 0x6B 0x20AC3 = 0x3F

0x0(00)

0x0000 ... 0xFFFF 0x0000 ... 0xFFFF 0x0000 ... 0xFFFF 0x0000 ... 0xFFFF

0x0000

0x1(01)

0x0000

0x2(10)

0x0AC3 = 0x3F

0x3(11)

...

Interpretacin de la Cach: Dir: 0x00020AC3 = 0000 0000 0000 0010 0000 1010 1100 0011 Etiqueta 0000 0000 0000 00 Lnea 10 Desp. 0000 1010 1100 0011

Universidad Simn Bolvar

30

Correspondencia Directa: 4 Lneas de 64K c/u


Etiqueta de bloque Lnea De Bloques (hay 4 lneas) Direccin de datos dentro del bloque Bloque de datos en cach 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1111 1111 1111 1111 0000 0000 0000 0001 0000 0000 0000 0000 0000 0000 0000 0001 1111 1111 1111 1111 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 1111 1111 1111 1111 0000 0000 0000 0011 0000 0000 0000 0000 0000 0000 0000 0011 1111 1111 1111 1111 0x0AC3 = 0x6B 0000 0000 0000 0100 0000 0000 0000 0000 0000 0000 0000 0100 1111 1111 1111 1111 0000 0000 0000 0101 0000 0000 0000 0000 0x0AC3 = 0x3F 0000 0000 0000 0101 1111 1111 1111 1111 0000 0000 0000 0110 0000 0000 0000 0000 0000 0000 0000 0110 1111 1111 1111 1111 0000 0000 0000 0111 0000 0000 0000 0000 0000 0000 0000 0111 1111 1111 1111 1111 ... 1111 1111 1111 1100 0000 0000 0000 0000 1111 1111 1111 1100 1111 1111 1111 1111 1111 1111 1111 1101 0000 0000 0000 0000 1111 1111 1111 1101 1111 1111 1111 1111 1111 1111 1111 1110 0000 0000 0000 0000 1111 1111 1111 1110 1111 1111 1111 1111 1111 1111 1111 1111 0000 0000 0000 0000 1111 1111 1111 1111 1111 1111 1111 1111

Memoria Principal

0x10AC3 = 0x6B 0x20AC3 = 0x3F

0x0(00)

0x0000 ... 0xFFFF 0x0000 ... 0xFFFF 0x0000 ... 0xFFFF 0x0000 ... 0xFFFF

0x0000

0x1(01)

0x0000

0x2(10)

0x3(11)

...

Interpretacin de la Cach: Dir: 0x00020AC3 = 0000 0000 0000 0010 0000 1010 1100 0011 Etiqueta 0000 0000 0000 00 Lnea 10 Desp. 0000 1010 1100 0011

Todos los bloques de memoria que corresponden con la lnea 10 estn asignados al mismo bloque (lnea) del cach. Se diferencian entre s porque tienen etiquetas distintas.

Universidad Simn Bolvar

30

Correspondencia Directa
Procesador: LDA 0x00020AC3

Interpretacin de la Cach: Etiqueta 0000 0000 0000 00 Lnea


10

Desp.
0000 1010 1100 0011

Lne a

Etiqueta

Bloque de datos en cach

00 01 10 11

0 1 1 0

0x0000 0x0000 -

0x0000 a 0xFFFF
0x0AC3 = 0x6B

0x0AC3 = 0x3F

0x0000 a 0xFFFF

=
Acierto/Fallo (al procesador)

Dato = 0x03F (al procesador)

Universidad Simn Bolvar

31

Correspondencia Directa
! ! ! ! ! !

Longitud de direccin = n = (t + s + w) bits Nmero de unidades direccionables = 2n palabras o bytes Tamao de bloque = tamao de linea = 2w palabras o bytes Nmero de bloques en memoria ppal. = 2n/2w = 2t+s Nmero de lineas en cach = m = 2s Tamao de la etiqueta (tag) = (n s w) bits
Interpretacin de la Cach: Etiqueta t bits Lnea s bits Desp. w bits

Universidad Simn Bolvar

32

Pros y Contras de la Correspondencia Directa

! !

Simple Barata Posicin fija para un bloque dado


"

Si un programa accede repetidamente a 2 bloques que se mapean a la misma lnea, la tasa de fallos puede ser muy alta

Universidad Simn Bolvar

33

Correspondencia Asociativa
! ! ! !

Un bloque de la memoria principal puede cargarse en cualquier linea de la cach La direccin es interpretada como dos campos, etiqueta (t bits) y palabra (w bits) La etiqueta identifica unvocamente a un bloque de memoria Se comparan las etiquetas de todas las lineas para encontrar el bloque buscado en la cach
Interpretacin de la Cach: Etiqueta t bits Desp. w bits

Universidad Simn Bolvar

34

Correspondencia Asociativa
Direccin de datos dentro de la cach V Etiqueta de bloque Bloque de datos en cach V Etiqueta de bloque Bloque de datos en cach V Etiqueta de bloque Bloque de datos en cach V Etiqueta de bloque Bloque de datos en cach

0x0000 0x0AC3 0xFFFF

1 0x0002

1 0xFFFE

0 -

1 0x0000

Interpretacin Etiquet a 0002 Desp. 0AC3

=
Dir = 0x00020AC3

Procesador: 0x00020AC3 Acierto/Fallo

OR

Selector (Multiplexor) Dato = 0x3F

Universidad Simn Bolvar

35

Correspondencia Asociativa
! ! ! ! ! !

Logitud de la direccin = n = (t + w) bits Nmero de unidades direccionables = 2n palabras o bytes Tamao de bloque = Tamao de linea = 2w palabras o bytes Nmero de bloques en memoria ppal. = 2n/2w = 2t Nmero de lineas en cach = indeterminado Tamao de la etiqueta (tag) = t bits

Interpretacin de la Cach: Etiqueta t bits Desp. w bits

Universidad Simn Bolvar

36

Correspondencia Asociativa por Conjuntos


!

Objetivo: Lograr un compromiso entre:


" "

Flexibilidad y Alto Porcentaje de Aciertos (Correspondencia Asociativa) Bajo Costo y Rapidez (Correspondencia Directa).

Solucin: Aprovechar parcialmente ambos beneficios haciendo grupos de bloques que cumplan con ambas correspondencias. En la prctica: Construir una Cach de Correspondencia Directa, donde cada Lnea sea en realidad un Conjunto de Lneas que se relacionan entre s por Correspondencia Asociativa.
Universidad Simn Bolvar 37

Correspondencia Asociativa por Conjuntos

Universidad Simn Bolvar

38

Correspondencia Asociativa por Conjuntos


V Etiquet a Datos
0x0000

Etiquet a

Datos
0x0000

Etiquet a

Datos 0x0000 0xFFFF

Etiquet a

Datos
0x0000

0xFFFF

0xFFFF

0xFFFF

Universidad Simn Bolvar

38

Correspondencia Asociativa por Conjuntos


Via 00
V Etiquet a Datos
0x0000

Via 01
V Etiquet a Datos
0x0000

Via 10
V Etiquet a Datos 0x0000 0xFFFF V

Via 11
Etiquet a Datos
0x0000

0xFFFF

0xFFFF

0xFFFF

Universidad Simn Bolvar

38

Correspondencia Asociativa por Conjuntos


Asociativa
-Tiene 4 Vias de 64Kbytes c/u Total: 256Kbytes de Datos

Via 00
V Etiquet a Datos
0x0000

Via 01
V Etiquet a Datos
0x0000

Via 10
V Etiquet a Datos 0x0000 0xFFFF V

Via 11
Etiquet a Datos
0x0000

0xFFFF

0xFFFF

0xFFFF

Universidad Simn Bolvar

38

Correspondencia Asociativa por Conjuntos


Asociativa
-Tiene 4 Vias de 64Kbytes c/u Total: 256Kbytes de Datos
Linea 00 V 1

Via 00
V Etiquet a Datos
0x0000

Via 01
V Etiquet a Datos
0x0000

Via 10
V Etiquet a Datos 0x0000 0xFFFF V

Via 11
Etiquet a Datos
0x0000

0xFFFF

0xFFFF

0xFFFF

Etiquet a

Datos 0x0000 0xFFFF

01

0x0000 0xFFFF

10

0x0000 0xFFFF

11

0x0000 0xFFFF

Universidad Simn Bolvar

38

Correspondencia Asociativa por Conjuntos


Asociativa
-Tiene 4 Vias de 64Kbytes c/u Total: 256Kbytes de Datos
Linea 00 V 1

Via 00
V Etiquet a Datos
0x0000

Via 01
V Etiquet a Datos
0x0000

Via 10
V Etiquet a Datos 0x0000 0xFFFF V

Via 11
Etiquet a Datos
0x0000

0xFFFF

0xFFFF

0xFFFF

Etiquet a

Datos 0x0000 0xFFFF

Lnea 00 Lnea 01 Lnea 10 Lnea 11

01

0x0000 0xFFFF

10

0x0000 0xFFFF

11

0x0000 0xFFFF

Universidad Simn Bolvar

38

Correspondencia Asociativa por Conjuntos


Asociativa
-Tiene 4 Vias de 64Kbytes c/u Total: 256Kbytes de Datos
Linea V 1

Via 00
V Etiquet a Datos
0x0000

Via 01
V Etiquet a Datos
0x0000

Via 10
V Etiquet a Datos 0x0000 0xFFFF V

Via 11
Etiquet a Datos
0x0000

0xFFFF

0xFFFF

0xFFFF

Directa
- Tiene 4 Lneas de 64K c/u Total: 256Kbytes de Datos

00

Etiquet a

Datos 0x0000 0xFFFF

Lnea 00 Lnea 01 Lnea 10 Lnea 11

01

0x0000 0xFFFF

10

0x0000 0xFFFF

11

0x0000 0xFFFF

Universidad Simn Bolvar

38

Correspondencia Asociativa por Conjuntos


Asociativa
-Tiene 4 Vias de 64Kbytes c/u Total: 256Kbytes de Datos
Linea V 1

Via 00
V Etiquet a Datos
0x0000

Via 01
V Etiquet a Datos
0x0000

Via 10
V Etiquet a Datos 0x0000 0xFFFF V

Via 11
Etiquet a Datos
0x0000

0xFFFF

0xFFFF

0xFFFF

Directa
- Tiene 4 Lneas de 64K c/u Total: 256Kbytes de Datos

00

Etiquet a

Datos 0x0000 0xFFFF

Lnea 00 Lnea 01 Lnea 10 Lnea 11

01

0x0000 0xFFFF

10

0x0000 0xFFFF

11

0x0000 0xFFFF

Linea 0

Etiquet a

Datos 0x0000 0xFFFF

Etiquet a

Datos 0x0000 0xFFFF 0x0000 0xFFFF

0x0000 0xFFFF

Universidad Simn Bolvar

38

Correspondencia Asociativa por Conjuntos


Asociativa
-Tiene 4 Vias de 64Kbytes c/u Total: 256Kbytes de Datos
Linea V 1

Via 00
V Etiquet a Datos
0x0000

Via 01
V Etiquet a Datos
0x0000

Via 10
V Etiquet a Datos 0x0000 0xFFFF V

Via 11
Etiquet a Datos
0x0000

0xFFFF

0xFFFF

0xFFFF

Directa
- Tiene 4 Lneas de 64K c/u Total: 256Kbytes de Datos

00

Etiquet a

Datos 0x0000 0xFFFF

Lnea 00 Lnea 01 Lnea 10 Lnea 11

01

0x0000 0xFFFF

10

0x0000 0xFFFF

11

0x0000 0xFFFF

Via 0
Linea 0 V Etiquet a Datos 0x0000 0xFFFF 1 0x0000 0xFFFF V

Via 1
Etiquet a Datos 0x0000 0xFFFF 0x0000 0xFFFF

Conjunto 0 Conjunto 1

Universidad Simn Bolvar

38

Correspondencia Asociativa por Conjuntos


Asociativa
-Tiene 4 Vias de 64Kbytes c/u Total: 256Kbytes de Datos
Linea V 1

Via 00
V Etiquet a Datos
0x0000

Via 01
V Etiquet a Datos
0x0000

Via 10
V Etiquet a Datos 0x0000 0xFFFF V

Via 11
Etiquet a Datos
0x0000

0xFFFF

0xFFFF

0xFFFF

Directa
- Tiene 4 Lneas de 64K c/u Total: 256Kbytes de Datos

00

Etiquet a

Datos 0x0000 0xFFFF

Lnea 00 Lnea 01 Lnea 10 Lnea 11 Esta es una Lnea, del Conjunto 00, Via 1.
Datos 0x0000 0xFFFF 0x0000 0xFFFF

01

0x0000 0xFFFF

10

0x0000 0xFFFF

11

0x0000 0xFFFF

Via 0
Linea 0 V Etiquet a Datos 0x0000 0xFFFF 1 0x0000 0xFFFF V

Via 1
Etiquet a

Conjunto 0 Conjunto 1

Universidad Simn Bolvar

38

Correspondencia Asociativa por Conjuntos


Asociativa
-Tiene 4 Vias de 64Kbytes c/u Total: 256Kbytes de Datos
Linea V 1

Via 00
V Etiquet a Datos
0x0000

Via 01
V Etiquet a Datos
0x0000

Via 10
V Etiquet a Datos 0x0000 0xFFFF V

Via 11
Etiquet a Datos
0x0000

0xFFFF

0xFFFF

0xFFFF

Directa
- Tiene 4 Lneas de 64K c/u Total: 256Kbytes de Datos

00

Etiquet a

Datos 0x0000 0xFFFF

Lnea 00 Lnea 01 Lnea 10 Lnea 11 Esta es una Lnea, del Conjunto 00, Via 1.
Datos 0x0000 0xFFFF 0x0000 0xFFFF

01

0x0000 0xFFFF

10

0x0000 0xFFFF

11

0x0000 0xFFFF

Asociativa Por Conjuntos


- Tiene 2 Conjuntos de Lneas de 64Kbytes por Lnea (128K por Conjunto). - Tiene 2 Vias Total: 256Kbytes de Datos Los bloques de Memoria asignados al Conjunto 00 pueden ser cargados en cualquiera de las 2 Lneas conjunto
1 Linea 0 V

Via 0
Etiquet a Datos 0x0000 0xFFFF 0x0000 0xFFFF V

Via 1
Etiquet a

Conjunto 0 Conjunto 1

Universidad Simn Bolvar

38

Correspondencia Asociativa por Conjuntos

Universidad Simn Bolvar

39

Correspondencia Asociativa por Conjuntos


Conjunto V Etiqueta de bloque
Bloque de datos en cach

Etiqueta de bloque

Bloque de datos en cach

1 0x0001
0x3F

1 0x0A01

0 -

1 0x0A01

Universidad Simn Bolvar

39

Correspondencia Asociativa por Conjuntos


Conjunto V Etiqueta de bloque
Bloque de datos en cach

Etiqueta de bloque

Bloque de datos en cach

1 0x0001
0x3F

1 0x0A01

0 -

1 0x0A01

Procesador: rb 0x00020AC3

Universidad Simn Bolvar

39

Correspondencia Asociativa por Conjuntos


Conjunto V Etiqueta de bloque
Bloque de datos en cach

Etiqueta de bloque

Bloque de datos en cach

1 0x0001
0x3F

1 0x0A01

0 -

1 0x0A01

Dir = 0x00020AC3

Procesador: rb 0x00020AC3

Universidad Simn Bolvar

39

Correspondencia Asociativa por Conjuntos


Interpretacin de direccin Etiqueta 0000 0000 0000 001 Conjunto 0 Desp. 0000 1010 1100 0011 Conjunto V Etiqueta de bloque
Bloque de datos en cach

Etiqueta de bloque

Bloque de datos en cach

1 0x0001
0x3F

1 0x0A01

0 -

1 0x0A01

Dir = 0x00020AC3

Procesador: rb 0x00020AC3

Universidad Simn Bolvar

39

Correspondencia Asociativa por Conjuntos


Interpretacin de direccin Etiqueta 0000 0000 0000 001 Conjunto 0 Desp. 0000 1010 1100 0011 Conjunto V Etiqueta de bloque
Bloque de datos en cach

Etiqueta de bloque

Bloque de datos en cach

1 0x0001
0x3F

1 0x0A01

0 -

1 0x0A01

Dir = 0x00020AC3

Procesador: rb 0x00020AC3

Universidad Simn Bolvar

39

Correspondencia Asociativa por Conjuntos


Interpretacin de direccin Etiqueta 0000 0000 0000 001 Conjunto 0 Desp. 0000 1010 1100 0011 Conjunto V Etiqueta de bloque
Bloque de datos en cach

Etiqueta de bloque

Bloque de datos en cach

1 0x0001
0x3F

1 0x0A01

0 -

1 0x0A01

Dir = 0x00020AC3

Procesador: rb 0x00020AC3

Universidad Simn Bolvar

39

Correspondencia Asociativa por Conjuntos


Interpretacin de direccin Etiqueta 0000 0000 0000 001 Conjunto 0 Desp. 0000 1010 1100 0011 Conjunto V Etiqueta de bloque
Bloque de datos en cach

Etiqueta de bloque

Bloque de datos en cach

1 0x0001
0x3F

1 0x0A01

0 -

1 0x0A01

Dir = 0x00020AC3

Procesador: rb 0x00020AC3

Acierto/Fallo

OR

Universidad Simn Bolvar

39

Correspondencia Asociativa por Conjuntos


Interpretacin de direccin Etiqueta 0000 0000 0000 001 Conjunto 0 Desp. 0000 1010 1100 0011 Conjunto V Etiqueta de bloque
Bloque de datos en cach

Etiqueta de bloque

Bloque de datos en cach

1 0x0001
0x3F

1 0x0A01

0 -

1 0x0A01

Dir = 0x00020AC3

Procesador: rb 0x00020AC3

Acierto/Fallo

OR

Universidad Simn Bolvar

39

Correspondencia Asociativa por Conjuntos


Interpretacin de direccin Etiqueta 0000 0000 0000 001 Conjunto 0 Desp. 0000 1010 1100 0011 Conjunto V Etiqueta de bloque
Bloque de datos en cach

Etiqueta de bloque

Bloque de datos en cach

1 0x0001
0x3F

1 0x0A01

0 -

1 0x0A01

Dir = 0x00020AC3

Procesador: rb 0x00020AC3

Acierto/Fallo

OR

Dato = 0x3F

Selector (Multiplexor)

Universidad Simn Bolvar

39

Interpretacin de la direccin
Correspondencia Asociativa
Indica el bloque exacto de memoria (Etiqueta nica) y el lugar exacto del dato dentro del bloque (Desplazamiento). No indica la ubicacin del bloque en la cach.
Etiqueta 0000 0000 0000 0010 Desplazamiento 0000 1010 1100 0011

Correspondencia Directa
Indica parcialmente el bloque de memoria (Etiqueta compartida), La ubicacin exacta del bloque de memoria en la cach (Lnea), y lugar exacto del dato dentro del bloque (Desplazamiento).

Etiqueta 0000 0000 0000 00

Lnea 10

Desplazamiento 0000 1010 1100 0011

Correspondencia Asociativa por Conjuntos


Indica parcialmente el bloque de memoria (Etiqueta compartida), La ubicacin parcial del bloque de memoria en la cach (Conjunto de Lneas), y lugar exacto del dato dentro del bloque (Desplazamiento).

Etiqueta 0000 0000 0000 001

Conjunto 0

Desplazamiento 0000 1010 1100 0011

Universidad Simn Bolvar

40

Desplazamiento, Word y Byte


Etiqueta 0000 0000 0000 00 Lnea 10 Desplazamiento 0000 1010 1100 0011 Byte 0AC3

Direccin general

Etiqueta 0000 0000 0000 00

Lnea 10

Desplazamiento Word 0000 1010 1100 0 0x0158 Byte 011 0x03

Direccin real: Los procesadores pueden hacer accesos a mas de un tipo (tamao) de dato. Una traza de accesos pueden ser del tipo: rb 0x00000001 ; leer byte de direccin 1. rw 0x00000001 ; leer word 1 cuyo primer byte tiene direccin 0x8. wb 0x00000020 ; Escribir byte de direccin 20. ww 0x00000020 ; Escribir word 20, cuyo primer byte es el 0x100.
Universidad Simn Bolvar 41

Mejorando el Rendimiento de Cach


!

Tiempo de acceso promedio a memoria = Tasa aciertos x Tiempo Acierto + Tasa de fallos x penalizacin fallo Para mejorar rendimiento:
" " "

Reducir Tiempo de Acierto Reducir la Tasa de Fallos Reducir la penalizacin por fallos

Universidad Simn Bolvar

42

Causas de fallos de Cache


!

Forzoso: Primera referencia a un bloque


"

Ocurriria an con una cach infinita

Capacidad: La cach es muy pequea para manejar los datos que necesita el programa
"

Fallos que ocurriran an con una poltica de reemplazo ideal

Conflicto: fallos que ocurren debido a colisiones debidas a la poltica de asignacin de bloques
"

Fallos que no ocurren con completamente asociativa

Universidad Simn Bolvar

43

Efecto de Parametros de Cache en el Rendimiento


!

Incrementar Tamao de Cach


" "

Reduce fallos por Capacidad y Conflictos Incrementa el tiempo de Aciertos

Aumentar la Asociatividad
" "

Reduce fallos por Conflictos Puede incrementar el tiempo de Aciertos

Incrementar Tamao de bloque


" " "

Reduce fallos por Forzoso y Capacidad Incrementa fallos por Conflicto Incrementa penalizacin por fallos
Universidad Simn Bolvar 44

Reemplazo de Lneas
!

El reemplazo sucede cuando una referencia produce un fallo, y no hay espacio para colocar el bloque referenciada. Se debe sacar algn bloque de la cach, para darle espacio al nuevo. En Cach de Correspondencia Directa: No hay que tomar ninguna decisin, pues los bloques de memoria ya stn asignados a una lnea fija, que es donde sucede el reemplazo. En Cach Asociativa: se puede sacar cualquier bloque. Se puede utilizar un algoritmo de reemplazo que intente lograr un buen desempeo promedio (mas aciertos en el largo plazo).

Universidad Simn Bolvar

45

Reemplazo de Lneas
!

En Cach Asociativa por Conjuntos: Se establecen polticas de reemplazo para decidir en cual va sucede, pero el conjunto donde sucede el reemplazo es fijo, por la correspondencia directa. Polticas de reemplazo: " FIFO (First In, First Out) " LRU (Least Recently Used): se implementa con listas y contadores (costosa). " NRU (Not Recently Used): se implementa con un bit de Usado recientemente para cada bloque, que se limpia cada cierto tiempo y se pone en 1 cada vez que se usa el bloque. " Aleatorio (Random)

Universidad Simn Bolvar

46

Lectura y Escritura
!

Write Through (Escritura a travs):


" " "

En toda referencia de escritura, se escribe el dato en la cach, y tambin en los niveles inferiores. Costoso, pues para toda escritura el costo es mayor que sin tener la cach. Se mantiene la consistencia entre la cach y los otros niveles.

Write Back (Escritura diferida)


" "

"

Las escrituras se realizan slo en la cach. Cuando un bloque que est en la cach ha sido modificado, su correspondiente en memoria principal debe ser actualizado cuando el bloque en cach tenga que ser borrado (reemplazado por otro). Concepto de lnea sucia, que se implementa con un bit adicional dirty bit, para indicar cul bloque en la cach ha sido modificado.
Universidad Simn Bolvar 47

Escritura con Fallo de Cach


!

Si en una referencia de escritura hay fallo, Qu sucede?. Polticas: Write allocate


" "

Se trae la lnea (bloque) a la cach, y luego se realiza la escritura correspondiente. Los fallos de escritura funcionan igual que los fallos de lectura. Lo fallos de escritura no afectan a la cach Durante un fallo, se realiza la escritura slo en el nivel inferior de la memoria, sin traerlo a la cach.

No write allocate
" "

Universidad Simn Bolvar

48

Das könnte Ihnen auch gefallen