Tema N 12: Sistema de Memoria: Cache

Arquitectura de Computadores Tema N° 12: Sistema de Memoria: Cache Eduardo Daniel Cohen – [email protected] http://www.herrera.unt.edu.ar/arqcom

4 downloads 157 Views 1MB Size

Recommend Stories


tema 12 LOS FRENOS tema 12
LOS FRENOS tema 12 Hay que distinguir entre los elementos del sistema de frenado y la distancia de frenado. La eficacia de los dispositivos del sis

proceso de LIMPIEZA DE cache
proceso de LIMPIEZA DE cache Como parte de nuestro compromiso con nuestros clientes, para que tengan una agradable experiencia de trabajo en nuest

Story Transcript

Arquitectura de Computadores

Tema N° 12: Sistema de Memoria: Cache Eduardo Daniel Cohen – [email protected]

http://www.herrera.unt.edu.ar/arqcom

Cache - D. Cohen

UNT – Arq. de Computadoras - 2014

1

En Perspectiva: ¿En dónde estamos ahora? ° Las cinco componentes clásicas un computador: Processor

Input Control Memory Datapath

Output

° Temas a cubrir: • Localidad y Jerarquías de Memoria. • Organización de Memoria: Caché.

Cache - D. Cohen

UNT – Arq. de Computadoras - 2014

2

Tendencias Tecnológicas

Capacidad

Velocidad

Lógica:

2x en 3 años

2x en 3 años

DRAM:

4x en 3 años

2x en 10 años

Disk:

4x en 3 años

2x en 10 años

DRAM Año 1980 1983 1985 1989 1992 1996 1998 2000 2002 2004 Cache - D. Cohen

Tamaño 64 Kb 256 Kb 1 Mb 4 Mb 16 Mb 64 Mb 128 Mb 256 Mb 512 Mb 1024 Mb

Fila 250 ns 185 ns 135 ns 90 ns 90 ns 60 ns 60 ns 55 ns 50 ns 45 ns

Columna 150 ns 100 ns 40 ns 30 ns 30 ns 12 ns 10 ns 7 ns 5 ns 3 ns

UNT – Arq. de Computadoras - 2014

Precio/Mb $1.500 $ 500 $ 200 $ 50 $ 15 $ 10 $ 4 $ 1 $ 0,25 $ 0,10 3

Importancia de la Jerarquía de Memorias

Brecha CPU-DRAM (latencia)

Performance

1000

CPU

“Ley de Moore”

100

µProc 60%/año (2X/1.5año)

Brecha de Performance CPU-DRAM: (aumenta 50% / año) DRAM DRAM 9%/año. (2X/10 años)

10

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

1

Tiempo Cache - D. Cohen

UNT – Arq. de Computadoras - 2014

4

Situación Actual: Microprocesador

° Se basa en Caches para cerrar la brecha. ° Brecha de Performance Microprocesador-DRAM: • Tiempo de un fallo completo de caché en instrucciones ejecutadas: 1st Alpha (7000): 2nd Alpha (8400):

340 ns/5.0 ns = 68 clks x 2 or 266 ns/3.3 ns = 80 clks x 4 or

136 instructions 320 instructions

3rd Alpha (t.b.d.):

180 ns/1.7 ns =108 clks x 6 or

648 instructions

Cache - D. Cohen

UNT – Arq. de Computadoras - 2014

5

Impacto en la Performance ° Suponga un CPU que funciona a

Inst M iss (0.5) 16%

• Frecuencia de Reloj = 200 MHz (5 ns por ciclo) • CPI = 1.1 • 50% arith/logic, 30% ld/st, 20% control

° Supongamos que 10% de las operaciones de M tienen una penalidad for fallos = 50 ciclos. CPI

Ideal CPI (1.1) 35%

DataM iss (1.6) 49%

= CPI ideal + paradas promedio por instrucción = 1.1 ciclos +( 0.30 (opsM/ins) x 0.10 (fallos/opsM) x 50 (ciclos/fallos)) = 1.1 ciclos + 1.5 ciclos = 2.6

° 58 % del tiempo del procesador (1,5/2,6) está parado esperando a memoria! ° Un 1% de fallos en accesos a Memoria de Instrucciones adicionaría 0.5 ciclos al CPI!

Cache - D. Cohen

UNT – Arq. de Computadoras - 2014

6

Objetivo: Ilusión de una Memoria grande, barata y rápida

° Memorias grandes son lentas, memorias pequeñas son rápidas. ° Memorias rápidas son caras. Memorias lentas son baratas. ° ¿Cómo creamos una memoria que sea grande, barata y rápida (la mayor parte del tiempo)? • Jerarquías. • Paralelismo.

Cache - D. Cohen

UNT – Arq. de Computadoras - 2014

7

Jerarquías de Memoria en Computadores Modernos ° Objetivo de Diseño: • Presentar al usuario todo su espacio de direccionamiento en la tecnología más barata. • Proveerle acceso a la velocidad de la tecnología más rápida. • Que cada tarea tenga un espacio disjunto y protegido. ¿por qué? Processor Control

Speed (ps): 1s Size (bytes): 100s Cache - D. Cohen

On-Chip Cache

Registers

Datapath

Second Level Cache (SRAM)

Main Memory (DRAM)

10s

100s

Ks

Gs

UNT – Arq. de Computadoras - 2014

Secondary Storage (Disk)

(10s ms) Gs

Tertiary Storage (Disk)

(10s sec) Ts 8

¿Cómo Funciona la Jerarquía? ° Principio de Localidad: • Un programa accede a una pequeña porción del espacio de direcciones en cualquier momento dado de tiempo. Probabilidad De Referencia

0

Espacio direcciones2^n - 1

¿Qué es espacio de direcciones? Conjunto de Trabajo: Conjunto de direcciones de Memoria accedidas en un período fijo de tiempo, o ventana de tiempo. La localidad espacial y la temporal aseguran que el contenido del Conjunto de Trabajo cambie lentamente durante el tiempo de ejecución. EL CONJUNTO DE TRABAJO DEBE ESTAR EN LA MEMORIA RÁPIDA.

Cache - D. Cohen

UNT – Arq. de Computadoras - 2014

9

¿Cómo Funciona la Jerarquía de Memorias? ° Localidad Temporal (localidad en el tiempo): => Si accedo a un ítem, es probable que se lo acceda nuevamente pronto. => Mantener a los ítems que hayamos accedido más recientemente cerca del procesador.

° Localidad Espacial (localidad en el espacio): => Si se accede a un ítem, es probable que se acceda a ítems vecinos pronto. => Mover bloques que consisten en palabras de direcciones contiguas, a los niveles superiores. Al CPU

Memoria de Nivel Superior

Memoria de Nivel Inferior

Blk X

Del CPU

Cache - D. Cohen

Blk Y

UNT – Arq. de Computadoras - 2014

10

Jerarquía de Memorias: Terminología Al CPU

Mem. Nivel Superior

Mem. Nivel Inferior

Blk X

Del CPU

Blk Y

° Acierto (Hit): El dato está en algún bloque del nivel superior (ejemplo: Block X) • Hit Rate: Fracción de accesos a Memoria que se encuentran en el nivel superior. • Hit Time: Tiempo para acceder al nivel superior, que consiste en: RAM access time + tiempo para determinar si hubo acierto o fallo.

° Fallo (Miss): El dato debe ser ubicado en un nivel inferior y llevado al nivel superior (ejemplo: Block Y) • Miss Rate = 1 - (Hit Rate) • Penalidad del Fallo: Tiempo para reemplazar un bloque completo en el nivel superior.

° Hit Time menos chips => más difícil de tener bancos. • Crecimiento bits/chip DRAM : 50%-60% por año.

° Mejoras Tecnológicas: • Fast Page. A la salida de la DRAM se pone una SRAM capaz de almacenar una fila completa. Se accede a esta fila a la velocidad de una SRAM. • SDRAM – Syncronic DRAM. Se pasa la dirección inicial y la longitud de la secuencia de accesos y la memoria comienza a enviarlos al procesador a un ritmo dado por la señal de clock. El tiempo de acceso es menor que una EDO. Adentro hay bancos en interleaving. • DDR SDRAM – el ritmo es el doble del clock, envía con el flanco positivo y negativo, por eso se llama Dual Data Rate. Cache - D. Cohen

UNT – Arq. de Computadoras - 2014

16

Costo de Cerrar la Brecha Procesador-Memoria

Procesador

% Area

%Transistors

(~costo)

(~consumo)

• Alpha 21164

37%

77%

• StrongArm SA110

61%

94%

• Pentium Pro

64%

88%

- 2 dados por paquete: (CPU+L1) + L2

° Los Caches no tienen un valor por sí mismos, solo sirven para cerrar la brecha CPU-M.

Cache - D. Cohen

UNT – Arq. de Computadoras - 2014

17

Cache - D. Cohen

UNT – Arq. de Computadoras - 2014

18

Cómo se Diseña Sistemas de Memoria Carga de trabajo típicas con Programas Benchmarks

CPU Series de Referencia: , ,,, . . . op: i-fetch, read, write

Memoria $ MEM

Cache - D. Cohen

Optimizar la organización de memoria para Minimizar el tiempo promedio de acceso Para cargas de trabajo típicas

UNT – Arq. de Computadoras - 2014

19

4 Cuestiones Básicas en Jerarquía de Memorias

1. ¿Donde poner un bloque en el Cache? (Ubicación de Bloques) 2. ¿Como encontrar un bloque en el Cache? (Identificación de Bloques)

3. ¿Qué bloque reemplazar en caso de fallos? (Reemplazo de Bloques) 4. ¿Qué se hace en caso de escritura? (Estrategia de Escritura) °

Preguntas 1 y 2. •

Cache - D. Cohen

Debe haber una forma de “mapear” M a Cache.

UNT – Arq. de Computadoras - 2014

20

Lo más simple: Cache de mapeo directo. Memory Address 0 1 2 3 4 5 6 7 8 9 A B C D E F Cache - D. Cohen

Memory

4 Byte Direct Mapped Cache Cache Index 0 1 2 3

° El lugar 0 solo puede ser ocupado por: • Datos en direcciones de MP 0, 4, 8, ... etc. • En general: cualquier lugar de memoria cuyos 2 LSB de la dirección son ceros. • Address => índice del caché

° ¿Cuál de ellos pondríamos en el caché?

° ¿Cómo podemos saber cuál de ellos está en el caché? UNT – Arq. de Computadoras - 2014

21

Rótulo e Indice de Cache ° Sean 32 bits para direccionar Memoria (bytes): • Para un caché de mapeo directo de 2N: -

Indice del cache: Los N menos significativos para direccionarlo. Rótulo del Cache (Tag): Los (32 - N) MSB de la dirección de memoria.

-

Sistema Octal: 0x50. ¿Para qué es el bit de Validez?

31

N

Cache Tag

Valid Bit

Example: 0x50

Stored as part of the cache “state”

0x50

:

Cache Index 2 N Bytes Direct Mapped Cache Byte 0 Byte 1 Byte 2 Byte 3

: UNT – Arq. de Computadoras - 2014

0 1 2 3

: Byte 2**N -1

Cache - D. Cohen

0 Ex: 0x03

2 N- 1 22

Ejemplo de Acceso al Caché V

Comienzo

Tag

Data 3 Access 000 01 (HIT)

1 Access 000 01 (miss)

000 010

M [00001] M [01010]

000 010

M [00001] M [01010]

Miss Handling: Write Tag & Set V Load Data

000

M [00001]

2 Access 010 10 (miss)

4 Access 010 10 (HIT)

Load Data

° Triste Realidad:

Write Tag & Set V

000 010

M [00001] M [01010]

• Muchos fallos al comienzo: Fallos Compulsivos -

Cache - D. Cohen

UNT – Arq. de Computadoras - 2014

(Fallos de arranque en frío) 23

Bloque del Cache

° Nuestro ejemplo previo era “extremo”: • Cache de mapeo directo de 4 bytes: Block Size = 1 Byte • Aprovechaba la localidad temporal: Si un dato es accedido, tenderá a ser accedido nuevamente pronto. • No aprovechaba la localidad espacial: Si se accede a un dato, los datos vecinos serán accedidos pronto.

° Localidad espacial: conviene traer un bloque “grande” de bytes “vecinos” en lugar de un único byte. ° Cache Block: Conjunto de palabras que están en un mismo rótulo. Valid

Cache - D. Cohen

Cache Tag

Direct Mapped Cache Data Bloque 0 Bloque 1 Bloque 2 Bloque 3

UNT – Arq. de Computadoras - 2014

24

Ej: Cache de Mapeo Directo de 1 KB con Bloques de 32 B ° Para un Cache de 2n Bytes: • Los (32 - n) bits más significativos conforman el Cache Tag (rótulo) • Los m LSBits seleccionan el byte en el bloque (tamaño bloque=2 m). • Los n-m bits siguientes (índice) seleccionan el bloque.

Valid Bit

Example: 0x50

Cache Tag 0x50

:

Cache Data Byte 31 Byte 63

Byte 1 Byte 0 0 Byte 33 Byte 32 1 2 3

:

: Byte 1023

Cache - D. Cohen

4 0 Byte Select Ex: 0x00

UNT – Arq. de Computadoras - 2014

:

Cache Tag

9 Cache Index Ex: 0x01

: :

31

Byte 992 31 25

Tamaño del Bloque - Compromiso Average Access Miss Time Rate No explota localidad espacial Increased Miss Penalty Pocos bloques & Miss Rate compromete Localidad temporal

Miss Penalty

Block Size Block Size

Block Size

° Bloques más grandes aprovechan mejor la localidad espacial, pero: • Bloques más grandes implican una penalidad de falla mayor:

- Toma más tiempo traerlo de MP. • Habrá muy pocos bloques en el caché, generará fallos en los saltos

° El tiempo promedio de Acceso: • = Hit Time + Miss Penalty x Miss Rate Cache - D. Cohen

UNT – Arq. de Computadoras - 2014

26

Otro Ejemplo Extremo: Bloque Unico Valid Bit

Cache Tag

Cache Data Byte 3 Byte 2 Byte 1 Byte 0 0

° Tamaño Cache = 4 bytes

Tamaño Bloque = 4 bytes

• Una única entrada en el caché.

° Si un ítem es accedido, va a ser accedido pronto de nuevo • ¡Pero es improbable que sea accedido inmediatamente! • El próximo acceso seguramente generará un fallo:

-

Se cargan datos continuamente en el caché, pero solo para ser descartados antes de usarse nuevamente.

-

La peor pesadilla del diseñador: Efecto Ping Pong.

° Fallos por Conflicto son fallos causados por: • Lugares diferentes en MP que se mapean al mismo lugar en CACHE. Cache - D. Cohen

Solución 1: aumentar el tamaño del cache. Solución 2: cache asociativo – próxima diapositiva. UNT – Arq. de Computadoras - 2014

27

Cache Completamente Asociativo. Cache Tag (27 bits long)

Valid Bit Cache Data Byte 31 Byte 1 Byte 0 Byte 63 Byte 33 Byte 32

: :

Cache Tag X X 27

Byte Select Ex: 0x01

X X

X

:

:

:

° Implementación • No hay índice del cache. Un bloque se puede ubicar en cualquier parte. • Comparar los rótulos de todos los datos del cache en paralelo. • Ejemplo: para un caché de N bloques necesitamos N comparadores de 27 bits.

° No hay fallos por conflictos. Cache - D. Cohen

UNT – Arq. de Computadoras - 2014

28

Ventajas y Desventajas del Cache Asociativo Ventaja • Es el más flexible: cualquier bloque de MP puede ponerse en cualquier parte del cache. • No hay fallos por conflictos. Desventajas

• Mucha Memoria para Rótulos (tags más anchos). • Mucho Hw para búsqueda asociativa en todo el cache simultáneamente.

• Hit Time mayor que Cache de Mapeo Directo. ¿Se podrán combinar las ventajas de los dos: Asociativo y Directo?

Cache - D. Cohen

UNT – Arq. de Computadoras - 2014

29

Caché Asociativo por conjuntos ° Asociativo de N vías: N entradas para cada índice. • N cachés de mapeo directo operan en paralelo.

° Ejemplo: Cache asociativo de 2 vías. • Cache Index selecciona un “conjunto” del cache • Los dos tags en el conjunto se comparan en paralelo • Se selecciona el dato según el resultado de la comparación. Valid

Cache Tag

:

:

Adr Tag

Compare

Cache Index Cache Data Cache Data Cache Block 0 Cache Block 0

:

:

Sel 1 1

Mux

0 Sel 0

Cache Tag

Valid

:

:

Compare

OR Hit Cache - D. Cohen

Cache Block

UNT – Arq. de Computadoras - 2014

30

Desventaja del Cache Asociativo por Conjuntos ° Caché Asociativo de N-Vías versus Cache de mapeo directo.

• N comparadores Vs. 1 • Retardo adicional del MUX para datos. • El dato llega DESPUES de la decisión HIT/MISS y la selección de la vía

° En el cache de mapeo Directo, el bloque está disponible ANTES del Hit/Miss:

• Es posible suponer un HIT y continuar, se puede reponer si es un MISS

Valid

Cache Tag

:

:

Adr Tag

Compare

Cache Index Cache Data Cache Data Cache Block 0 Cache Block 0

:

:

Sel 1 1

Mux

0 Sel 0

Cache Tag

Valid

:

:

Compare

OR

Hit Cache - D. Cohen

Cache Block

UNT – Arq. de Computadoras - 2014

31

Principales Motivos de Fallos de Cache (Las 3 “C”)

° Compulsivos (inicio “en frío” o cambio a nuevo proceso:primer acceso a un Dato o Instrucción). • Gracias a la localidad de referencia su proporción es muy baja. • Mejora si se agranda el bloque – loc espacial. • Pero a costa de una mayor penalidad, menor localidad temporal

° Conflictos (colisiones): • Múltiples direcciones de Memoria que se mapean al mismo lugar en el cache.

• Solución 1: incrementar tamaño del cache (a costa de Hit Time). • Solución 2: incrementar asociatividad (a costa de Hit Time).

° Capacidad: • El cache no puede contener todos los bloques del programa. • Solución: incrementar la dimensión del cache (a costa Hit Time, Energía y $$$)

° Invalidez: otros procesos (ej: I/O) actualizan MP • Veremos más adelante. Cache - D. Cohen

UNT – Arq. de Computadoras - 2014

32

Quiz: Fuentes de Fallos en Cache

Direct Mapped

N-way Set Associative

Fully Associative

Tamaño del Cache: Alto, medio, bajo? Fallos Compulsivos

Fallos de Conflictos Fallos de Capacidad Fallos de Invalidez

Selección: Cero, Bajo, Medio, Alto, igual

Cache - D. Cohen

UNT – Arq. de Computadoras - 2014

33

Quiz: Fuentes de Fallos en Cache

Direct Mapped

N-way Set Associative

Fully Associative

Tamaño del Cache: Alto, medio, bajo?

Alto

Medio

Bajo

Fallos Compulsivos

Igual

Igual

Igual

Fallos de Conflictos

Alto

Medio

Cero

Baja

Media

Alta

Igual

Igual

Igual

Fallos de Capacidad Fallos de Invalidez

Selección: Cero, Bajo, Medio, Alto, igual

Cache - D. Cohen

UNT – Arq. de Computadoras - 2014

34

Impacto en el Tiempo de Ejecución PC

I -Cache Cache Hit Time: Aumenta con el tamaño de cache Aumenta con asociatividad

miss

IR IRex

A

B

invalid

IRm

R D Cache

Tiempo Promedio de Acceso = Hit Time + Miss Rate x Miss Penalty

IRwb

T

Miss

tiempo ejecuc = CI x T x (CPI ideal + paradas de Mem/Instrucción)

Cache - D. Cohen

UNT – Arq. de Computadoras - 2014

35

4 Cuestiones Básicas en Jerarquía de Memorias

1. ¿Donde poner un bloque en el nivel superior? (Ubicación de Bloques) 2. ¿Como encontrar un bloque en el nivel superior? (Identificación de Bloques)

3. ¿Qué bloque reemplazar en caso de fallos? (Reemplazo de Bloques) 4. ¿Qué se hace en caso de escritura? (Estrategia de Escritura)

Cache - D. Cohen

UNT – Arq. de Computadoras - 2014

36

1. ¿Donde se ubica un Bloque? ° Ejemplo: Cache de 8 Bloques, ubicar block 12. • Lo marcado en Verde son posibles lugares para la ubicación • Mapeo Directo: 12 Mod 8 = 4 • Mapeo por Conjuntos 12 Mod (N° líneas=4) = 0 0 1 2 3 4 5 6 7

Asociativo

Cache - D. Cohen

0 1 2 3 4 5 6 7

Mapeo Directo

UNT – Arq. de Computadoras - 2014

0 1 2 3

Asociativo por Conjuntos 4 Conjuntos 2 Vías 37

2. ¿Cómo se encuentra a un bloque?

° Rótulo e Indice en cada Bloque. ° El aumento de la asociatividad achica el índice y expande el Rótulo.

Indice

Rótulo

Desplazamiento

Dirección del Bloque

Cache - D. Cohen

UNT – Arq. de Computadoras - 2014

38

3. ¿Qué bloque reemplazar en caso de fallos? ° Para Mapeo Directo es fácil.

° Caché Asociativo o Asociativo por Conjuntos: • Cualquiera al azar (Random). • El menos usado próximamente – imposible: no somos adivinos. • El menos usado recientemente = LRU (Least Recently Used)

° Estadísticas de Fallos: Asociatividad Tamaño 16 KB 64 KB 256 KB

Cache - D. Cohen

2 Vías 4 Vías 8 Vías LRU Random LRU Random LRU Random 5.2% 5.7% 4.7% 5.3% 4.4% 5.0% 1.9% 2.0% 1.5% 1.7% 1.4% 1.5% 1.15% 1.17% 1.13% 1.13% 1.12% 1.12%

UNT – Arq. de Computadoras - 2014

39

4. ¿Qué se hace en caso de escritura? ° La lectura es más fácil de manejar que la escritura: • Es más fácil diseñar un cache de Instrucciones que uno de datos.

° Escritura en Cache: • ¿Cómo mantenemos el Cache y MP consistentes?

° Dos Alternativas: • Write Back: escribir solo en el cache. Cuando el bloque se reemplace, entonces se escribe todo el bloque en MP. • Se necesita un “bit de ensuciado” para cada bloque del cache. -

Reduce fuertemente el ancho de banda requerido para MP. El control puede ser complejo.

• Write Through: Escribir simultáneamente en Caché y MP. - ¿Cómo es posible? ¿No era MP muy lenta para esto?

° Ventajas y Desventajas • WT: Menor penalidad cuando se reemplaza el bloque. • WB: Menos Ancho de Banda para MP. Varios Writes  1 Write. Cache - D. Cohen

UNT – Arq. de Computadoras - 2014

40

Buffer de Escritura para escritura “a través”.

Processor

Cache

DRAM

Write Buffer

° Se necesita un buffer de escritura entre Cache y MP • CPU: escribe datos en Cache y Write Buffer. • Controlador de Mem: escribe contenido del Buffer en MP.

° El Buffer no es otra cosa que un FIFO: • Número típico de entradas: 4

• Anda bien si: frecuencia escritura 1 / DRAM write cycle • Si esta condición subsiste por períodos largos de tiempo (reloj del CPU muy rápido y/o muchas escrituras muy seguidas): - El Buffer va a saturarse, sin importar cuan grande sea. -

El ciclo equivalente del CPU tiende al ciclo de escritura de DRAM

° Alternativas de Solución: • Cambiar a “Write Back”.

• Instalar un cache de segundo nivel L2. L2 debe usar “Write Back”

Processor

Cache

L2 Cache

DRAM

Write Buffer

Cache - D. Cohen

UNT – Arq. de Computadoras - 2014

42

Política de Fallo en Escrituras ° Si se trata de escribir un dato de 16-bits en la dirección 0x0 y resulta un fallo: • ¿Traemos todo el bloque a la Cache (Byte 2, 3, ... 31)? Si: “Write Allocate” No: “Write Not Allocate”

Valid Bit

Example: 0x00

Cache Tag 0x00

:

Cache Data Byte 31 Byte 63

Byte 1 Byte 0 0 Byte 33 Byte 32 1 2 3

:

: Byte 1023

Cache - D. Cohen

4 0 Byte Select Ex: 0x00

UNT – Arq. de Computadoras - 2014

:

Cache Tag

9 Cache Index Ex: 0x00

: :

31

Byte 992 31 43

Ejemplo: El Cache del Pentium Pro • El Pentium Pro tenía 2 caches on-chip — uno para instrucciones y otro para datos. Además tiene un caché de Nivel 2 de 256K. • La dirección efectiva en el Pentium es de 32 bits. • Cada cache es asociativo por conjunto, de 2 vías. • Cada cache tiene un tamaño de 8 K = 213 bytes • Tamaño del Bloque: 32 = 25 bytes. • Hay 2 bloques por línea (26 bytes), 1 bloque por vía, y por lo tanto 213/26 = 27 = 128 líneas o conjuntos. • Esto deja 32 - 5 - 7 = 20 bits para el campo Rótulo: Rótulo

Índice (línea)

20

7

Byte 5

0

31

Esta “aritmética de cache” es importante y hay que manejarla perfectamente L2 único para Instrucciones y Datos. L1 trabaja con Write Back – Early Start. L2 “encapsulado en chip” – mejora tiempo de acceso y disminuye pins. Cache - D. Cohen

UNT – Arq. de Computadoras - 2014

44

Ejemplo: Cache del PowerPC 601 (McIntosh) Set of 8

Tag memory

Cache memory

Sector 0

Line 0

Sector 1

Address tag 64 sets 8 words 88 wowrodrsds 8 8ww orodrsds 8 word s

8 words 88 wowrodrsds 8ww orodrsds 64bybtyetse8 s 8wo 6 4 r ds 64 bytes 64 bytes 64 bytes 64 bytes

20 bits Line 63

Physical address:

Tag

Line (set) #

20

6

Byte

6

• El PPC 601 tenía un cache unificado para instrucciones y datos. • Tamaño: 32KB, organizado como 64 x 8 vías- asociativo por conjuntos, con bloks de 16 palabras de 4 bytes c/u organizadas como 2 sectores independientes de 8-palabras (por conveniencia en el proceso de actualización) • Una línea de cache se actualiza en dos operaciones de 1 T, de 1 sector c/u. • Normalmente trabaja por write-back, pero write through puede seleccionarse vía Sw. El cache puede ser deshabilitado también vía SW. • LRU para reemplazo, al igual que Pentium. Cache - D. Cohen

UNT – Arq. de Computadoras - 2014

45

Pentium IV ° Algunas versiones avanzadas incluyen L3 on chip

° Xeon: L3 de 1 Mb. P4 Extreme Edition 2 Mb. ° L1 en AMD Opteron • 64 Kb para Datos y 64 Kb para instrucciones

• Asociativo por conjuntos de 2 vías. • Tamaño de Block: 64 bytes. • Write Back. • LRU.

° L2 en AMD Opteron • 1 Mb – unificados Datos e Instrucciones. • Asociativo por conjuntos de 16 vías. • Write Back. • LRU aproximado. • Tamaño Block 64 bytes. Cache - D. Cohen

UNT – Arq. de Computadoras - 2014

46

Mejora de la Performance del Cache – 3 Opciones Tiempo Ejecución = IC x T x (CPI ideal + paros de Memoria/Inst.) Tiempo promedio de acceso a Memoria =

Hit Time + (Tasa de Fallos x Penalidad por Fallo)

1. Reducir la tasa de fallos. 2. Reducir la penalidad por fallos. 3. Reducir el tiempo de acierto en el cache.

Cache - D. Cohen

UNT – Arq. de Computadoras - 2014

47

Tasa de Fallos Absoluta – 3 C - (SPEC92)

Tasa de Fallos

0.14

1-vía

Conflicto (lo que no es verde)

0.12 2-vías

0.1 4-vías 0.08 8-vías

0.06

Capacidad (asociativa pura)

0.04

0.02

128

Tamaño de Cache (KB)

64

32

16

8

4

2

1

0

Compulsiva • Compulsiva: prácticamente 0. Cache - D. Cohen

UNT – Arq. de Computadoras - 2014

48

1. Reducir Fallos mediante aumento en el tamaño del Bloque

Miss Rate

25%

Tamaño Cache

20%

1K 4K

15%

16K 10% 64K 5%

256K

256

128

64

32

16

0%

Block Size (bytes) Cache - D. Cohen

UNT – Arq. de Computadoras - 2014

49

2. Reducción de Fallos Mediante mayor Asociatividad ° Cuidado: ¡El tiempo de ejecución es lo que cuenta! • TMAM: Tiempo Medio de Acceso a Memoria. • ¿Aumentará el TMAM con la asociatividad? • Hill [1988] estudió el hit-time para 2-vías Vs. 1-vía: Caché Externo se incrementa en 10%, Vías adicionales en 2%

Cache - D. Cohen

UNT – Arq. de Computadoras - 2014

50

Ejemplo: Tiempo Medio de Acceso a Mem vs. Fallos

° Suponga TH = 1.10 para 2 vías, 1,12 para 4 vías, 1,14 para 8 vías Vs. TH=1 para Mapeo directo. Cache Size (KB) 1 2 4 8 16 32 64 128

1-way 2.33 1.98 1.72 1.46 1.29 1.20 1.14 1.10

Associativity TMAM 2-way 4-way 2.15 2.07 1.86 1.76 1.67 1.61 1.48 1.47 1.32 1.32 1.24 1.25 1.20 1.21 1.17 1.18

8-way 2.01 1.68 1.53 1.43 1.32 1.27 1.23 1.20

(Rojo: T Medio de Acceso a Memoria no se mejora con más asociatividad). Hay un límite a la asociatividad. ¿Por qué? Cache - D. Cohen

UNT – Arq. de Computadoras - 2014

51

3. Reducción de Fallos con más Capacidad

° Poner Cachés más grandes: • Mejora fallos por Capacidad. (+) • Es más caro $$$. (-) • Consume más energía. (-) • Aumenta tiempo de acierto. (-)

Cache - D. Cohen

UNT – Arq. de Computadoras - 2014

52

4. Reducción de Fallos mediante un caché “Víctima” ° ¿Cómo combinar un buen tiempo de acierto en mapeo directo y evitar fallos por conflicto?

TAGS

DATA

° Agregar un buffer “Víctima” para poner los datos que se descartan del cache.

° Cuando el dato no está en Cache, se busca en el Víctima y si se encuentra se “intercambian” ° Jouppi [1990]: un cache víctima de 4 entradas elimina 20% a 95% de los conflictos en un cache de datos de mapeo directo de 4 KB.

Tag and Comparator

One Cache line of Data

Tag and Comparator

One Cache line of Data

Tag and Comparator

One Cache line of Data

Tag and Comparator

One Cache line of Data To Next Lower Level In Hierarchy

° Se usó en CPUs ALPHA, máquinas HP. Cache - D. Cohen

UNT – Arq. de Computadoras - 2014

53

5. Reducción de Fallos mediante Pre-Búsqueda por Hw ° Ej: Instruction Prefetching • Alpha 21064 buscaba 2 bloques en caso de fallo. • El block extra se pone en un “buffer de pendientes” • Si hay un fallo se chequea también el buffer de pendientes.

° Trabaja tambien con bloque de datos: • Jouppi [1990] 1 buffer de pendientes resolvió 25% de los fallos de un cache de 4KB; 4 buffers tomaron 43%

° La pre-búsqueda supone que existe ancho de banda extra para MP que puede usarse sin penalidad adicional.

Cache - D. Cohen

UNT – Arq. de Computadoras - 2014

54

6. Reducción de Fallos mediante Pre-búsqueda por Sw

° Pre-Búsqueda de Datos • El compilador analiza referencias futuras y provee instrucciones especiales de pre-búsqueda en el programa. • Estas instrucciones cargan el cache en paralelo (mientras no es accedido o bien cache con varios bancos independientes). • Puede ser: cargar datos en registros (Itanium loads). • O también: pre-búsqueda en Cache: Cargar en Cache. (MIPS IV, PowerPC, SPARC v. 9)

° Instrucciones de Pre-Búsqueda toman tiempo • ¿costo de pre-búsqueda < ahorro en menos fallos? • La pregunta vale cuando la pre-búsqueda es especulativa.

Cache - D. Cohen

UNT – Arq. de Computadoras - 2014

55

7. Reducción de Fallos por Optimización del Compilador ° McFarling [1989] redujo las fallas de cache en 75% en un cache de mapeo directo de 8KB, blocks de 4 Bytes por Software ° Instrucciones • Reordenar los procedimientos en memoria para reducir los fallos por conflictos.

° Datos • Intercambio de Lazos: Cambiar el anidado de lazos para que el lazo interno sea el que acceda a datos con más localidad (ej. Una matriz rectangular, sumar 2 a todos los miembros, lazo interno items vecinos). • Bloqueo: Mejorar la localidad espacial accediendo a bloques de datos de manera repetida antes que pasar columnas o filas enteras.

Cache - D. Cohen

UNT – Arq. de Computadoras - 2014

56

Veamos ahora como reducir la penalidad por fallos. 1. Reducir tasa de fallos,

2. Reducir Penalidad por fallos. 3. Reducir el tiempo de acierto en el Cache.

Cache - D. Cohen

UNT – Arq. de Computadoras - 2014

57

1. Reducir Penalidad: DRAM / Interface más rápida

° Nuevas Tecnología de DRAMs ° Mejores interfases con el Bus

° Son temas de Permanente Investigación y Mejoras. ° Se podría poner SRAM solamente (CRAY) pero es muy caro… ¿y entonces eliminar el/los caches? ° Seymour Cray – padre de la supercomputación – procesadores http://www.cray.com/About/History.aspx

Cache - D. Cohen

UNT – Arq. de Computadoras - 2014

58

2. Penalidad: En fallos Priorizar lecturas sobre escrituras.

° Las Lecturas paran al CPU, ¡escrituras al buffer! ° Write Through: • Escritura mediante buffers puede producir conflictos RAW con lecturas en MP cuando hay fallos. • Si se esperara a que el buffer de escritura esté vacío antes de leer incrementaría el tiempo del fallo (la vieja MIPS 1000 en 50% ) • Chequear los contenidos del buffer de escritura antes de leer; si no hay conflictos, dejar que el acceso a memoria continúe.

° ¿Write Back? • Fallo de Lectura y hay que reemplazar un bloque “sucio”.

• Normal: escribir el bloque en MP, y recién leer el nuevo block. • Mejor: copiar el bloque “sucio” a un buffer de escritura, entonces realizar la lectura, y recién escribir en MP. • CPU para menos porque recomienza no bien se hace la lectura.

Cache - D. Cohen

UNT – Arq. de Computadoras - 2014

59

3. Penalidad: Recomienzo temprano, primero la palabra crítica

° No esperar a que el bloque completo se cargue para recomenzar el CPU. • Early restart—No bien llegue la palabra solicitada del bloque al cache, que siga el CPU, mientras tanto se termina de cargar en Cache.

• Palabra crítica primero—Leer de Memoria la palabra buscada primero y dejar que continúe el CPU, a continuación se llena el resto de las palabras del bloque en la Cache.

° Util especialmente con bloques grandes,

° Localidad Espacial: se tiende a buscar la siguiente palabra inmediatamente… por lo que no es claro si realmente mejora. block

Cache - D. Cohen

UNT – Arq. de Computadoras - 2014

60

4. Reducción de Penalidad: Cache de Segundo Nivel – L2 ° Ecuaciones para L2 TMAM: Tiempo medio de acceso a Memoria

TMAM = Hit TimeL1 + Miss RateL1 x Miss PenaltyL1 Miss PenaltyL1 = Hit TimeL2 + Miss RateL2 x Miss PenaltyL2 TMAM = Hit TimeL1 + Miss RateL1 x (Hit TimeL2 + Miss RateL2 x Miss PenaltyL2)

° Definiciones: • Tasa de Fallo Local — Cantidad de fallos en el cache dividido en el total de accesos a ese cache (Miss rateL2) • Tasa de Fallo Global — Fallos en el sistema de caches dividido en el número total de accesos a memoria generados por el CPU. (Miss RateL1 x Miss RateL2) • L1 toma la “crema” de la localidad, L2 tiene muchos fallos locales. • Lo que importa es la tasa de fallo global resultante, que es la que nos lleva a la gran penalidad en MP.

Cache - D. Cohen

UNT – Arq. de Computadoras - 2014

61

5. Reducir Penalidad: Cache No Bloqueante ° Cache no bloqueante El cache de datos continua sirviendo accesos de otras instrucciones cuando ocurre un fallo. • Funciona con ejecución fuera de orden. • El fallo se procesa en paralelo (requiere caché multi-vía de acceso).

° “Acierto bajo fallo” reduce la penalidad efectiva de un fallo al seguir sirviendo otros accesos. Penalidad solo el tiempo que está efectivamente parado. ° “Acierto bajo múltiples fallos” o “fallo bajo fallo” solapa múltiples fallos sin bloquear la cache de datos, y reduce aún más la penalidad. • Se incrementa significativamente la complejidad del control del cache. • Requiere múltiples vías de accesos en cache. • Pentium Pro permite hasta 4 fallos pendientes. Cache - D. Cohen

UNT – Arq. de Computadoras - 2014

62

En síntesis: Reducción de Penalidad por Fallos

CPUtime IC

CPI

Exe cuti on

Memory accesses Miss rate Miss penalty Instruction

Clock cycle time

° Supone th

Get in touch

Social

© Copyright 2013 - 2025 MYDOKUMENT.COM - All rights reserved.