Está en la página 1de 28

Memoria cach

Arquitectura de Ordenadores

MEMORIA CACH

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 1

Memoria cach

Arquitectura de Ordenadores

Componentes principales de un ordenador


Procesador Entrada Control Memoria

Datapath

Salida

Elemento a estudiar

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 2

Memoria cach

Arquitectura de Ordenadores

Evolucin de memoria y CPU

1000 Rendimiento
Ley de Moore

CPU

Proc 60%/ao

100 10 1

Procesador-Memoria brecha rendimiento: (crece 50% / ao)


RAM

Memoria 7%/ao

D.A. Patterson New directions in Computer Architecture Berkeley, June 1998

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

Memoria cach

Impacto de la relacin entre CPU y memoria

Ejemplo:
CPU: 1Ghz Memoria: 100 Mhz 30 % de las operaciones acceden a memoria CPI ideal: 1 CPI con la memoria: 1 + 0.3 * 9 = 3.7
Un 30 % de instrucciones hace que la CPU se ralentice un 270 %

Cada instruccin hay que leerla de memoria !!


Mientras la CPU est leyendo una instruccin de memoria, no se puede leer la siguiente. Nmero medio de ciclos de acceso a memoria en cada instruccin: 10 + 0.3 * 10 = 13 CPI CPI de la CPU con la memoria: 1 + 9 + 9*0.3 = 12.7

Cmo solucionar el problema?


Memoria ms rpida? Qu tipos de memoria hay disponibles?

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

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

Ao
UPCO ICAI Departamento de Electrnica y Automtica 3

Arquitectura de Ordenadores

UPCO ICAI Departamento de Electrnica y Automtica 4

Memoria cach

Arquitectura de Ordenadores Bit de DRAM


Seleccin fila Transistor FET

Tipos de memoria

Memoria dinmica (DRAM)


Dinamic Random Access Memory Alta capacidad de almacenamiento, bajo consumo, barata, lenta Dinmica: el contenido necesita ser refrescado regularmente Cada celda correspondiente a un bit es equivalente a un condensador con 1 transistor.

bit

Celda: condensador

Bit de SRAM
Seleccin fila Equivalente a un registro de 1 bit

Memoria esttica (SRAM)


Baja capacidad de almacenamiento, alto consumo, cara, rpida Esttica: el contenido permanece inalterable mientras haya alimentacin Cada celda correspondiente a un bit es la versin simplificada de un registro de 1 bit. Tamao equivalente a 6 transistores

bit

bit

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 5

Memoria cach

Arquitectura de Ordenadores

Esquema simplificado de una memoria de 4x2bits


R/W CS Descodificacin direccin
00 01 10 11

A0 A1

Lectura/escritura dato

D1
Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

D0

UPCO ICAI Departamento de Electrnica y Automtica 6

Memoria cach

Arquitectura de Ordenadores

Memoria y tamao

A igualdad de tecnologa, al aumentar la capacidad de la memoria disminuye su velocidad:


Los decodificadores son mayores Se intenta solucionar utilizando una disposicin en matriz
A10..A19
Diferente tamao para columnas y filas De co dif ic ad or Fil as

A0..A9
Decodificador Columnas

Un decodificador de 20 a 1 Mlineas es mucho ms lento que el uso de 2 decodificadores de 10 a 1 Klneas No obstante, el problema persiste

En general: al aumentar la capacidad de un sistema de almacenamiento disminuye la velocidad

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 7

Memoria cach

Arquitectura de Ordenadores

Organizacin de una memoria DRAM

Decodificador Columnas

De co dif ic ad or Fil as

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 8

Memoria cach

Arquitectura de Ordenadores

Ejemplo: 256 Mbit DRAM sncrona (100/133 MHz)


Columnas Filas

Bancos

Decodificador ms rpido en columnas que en filas

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 9

Memoria cach

Arquitectura de Ordenadores

Soluciones al problema de la memoria DRAM

Ejemplo: memoria DRAM de 60 ns


Cambiar de fila y columna simultneamente necesita 110 ns Seleccionar un dato en una columna necesita 15 ns. Cambiar de columna dentro de una misma fila necesita 35 ns Estos tiempos aumentan con el retraso en las seales en el bus de direcciones y de datos
El dato tiene que llegar a donde se necesita.

Para una memoria de 60 ns la latencia real entre memoria y microprocesador vara entre 180 ns y 250 ns: manejar memorias en paralelo, buses, pines, zcalos de conexin.

La diferencia de acceso entre filas y columnas se intenta utilizar para mejorar el tiempo de acceso a la memoria
EDO SDRAM, DDR SDRAM RDRAM (RAMBUS)
En el fondo son protocolos de bus para adaptarse a los tiempos cambiantes en el acceso a memoria
UPCO ICAI Departamento de Electrnica y Automtica 10

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

Memoria cach

Arquitectura de Ordenadores
Poner el nfasis en el ancho de bus (ancho de banda - pico)

Arquitectura SDRAM y RDRAM

Poner el nfasis en la latencia

Ms ancho de banda: ms canales RDRAM


Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez UPCO ICAI Departamento de Electrnica y Automtica 11

Memoria cach

Arquitectura de Ordenadores

Cronograma SDRAM
Ciclos acceso fila columna - dato

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 12

Memoria cach

Arquitectura de Ordenadores

SDRAM comparada con DDR SDRAM

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 13

Memoria cach

Arquitectura de Ordenadores
Mayor frecuencia, pero ms ciclos por cada operacin

RDRAM (RAMBUS)

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 14

Memoria cach

Arquitectura de Ordenadores

Comparacin entre RDRAM y SDRAM

RDRAM a 800 MHz no significar que el tiempo de acceso es 1.25ns


Utiliza un reloj a 800 MHz para la lgica interna de control de la RDRAM (Sony PlayStation2) Igual ocurre con las SDRAM

Sigue siendo muy lenta frente a la CPU

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 15

Memoria cach

Arquitectura de Ordenadores

Ms datos para comparar


SDRAM Speeds Peak Bandwidth Voltage Pin Count Bit Length 66, 100, 133 MHz 528MB/s, 800 MB/s, 1.064 GB/s 3.3V 168-pin 64-bit DDR SDRAM 200, 266 MHz 1.6 GB/s, 2.1 GB/s 2.5V 184-pin 64-bit RDRAM 600, 800 MHz 1.6 GB/s (3.2 GB/s Dual Channel) 2.5V 168-pin 16-bit

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 16

Memoria cach

Arquitectura de Ordenadores

Comparacin ms realista

Tiempo de ejecucin Velocidad del procesador (1Gz, 5 GHz, 10 GHz) Procesador superescalar:
8-way superescalar Cach L2: 256 Kb

DDR2: nueva versin de DDR SDRAM

Fuente: IEEE TRANSACTIONS ON COMPUTERS, VOL. 50, NO. 11. NOVEMBER 2001

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 17

Memoria cach

Arquitectura de Ordenadores

Comparacin rendimiento vs potencia consumida

Fuente: VIA Technology Forum - September 2000

Con todos estos datos, Cul es la mejor?


La MEMORIA PRINCIPAL sigue siendo un problema

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 18

Memoria cach

Arquitectura de Ordenadores

Aspecto fsico de los mdulos


Mdulo RIMM: Rambus Inline Memory Module Mdulo RIMM: 128MB RDRAM 800 MHz

Mdulo DIMM: Dual In-line Memory Module

Mdulo DIMM (PC2100): 128MB DDR SDRAM 266 MHz

9 Chips: 8 + 1 para ECC

Mdulo DIMM: 128MB SDRAM 100 MHz

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 19

Memoria cach

Arquitectura de Ordenadores

Otros temas relacionados con la memoria

Memoria ECC
La memoria ECC detecta errores de bits mltiples y corrige errores de bits nicos generalmente.

Su tamao viene regida por la aplicacin de la ecuacin de la distancia de hamming r

2 = n + r +1

Si se quiere tener capacidad de detectar y corregir al menos un error en un bit, el nmero de bits a aadir (r) a los n bits originales debe generar suficientes cdigos diferentes que contemplen los posibles errores de un solo bit (n+r) ms el cdigo original. Otro tema es cmo construir esos cdigos: codificacin de hamming

Ejemplo documentacin PowerPC


The 750CXs L2 cache is implemented with an on-chip, two-way setassociative tag memory with 2048 tags per way, and an on-chip 256 Kbyte SRAM for data storage. The tags are sectored to support two cache blocks per tag entry (two sectors, 64 bytes). Each sector (32-byte L1 cache block) in the L2 cache has its own valid and modified bits. In addition, the SRAM includes an 8-bit ECC for every double word.

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 20

Memoria cach

Arquitectura de Ordenadores

Solucin al problema: Memoria cach

Memoria pequea y rpida situada entre la memoria principal y la CPU.


SRAM

Disminuye el tiempo de acceso a los datos:


SRAM: 5 ns DRAM: 40 ns Cuando la CPU accede por primera vez a un dato, se busca en la memoria principal. Se copia en la memoria cach Si se necesita nuevamente se va a la cach. 10 accesos
Sin cach: 400 ns Con cach: 40 + 9*5 = 85 ns Aumento de rendimiento: 4.7

Memoria Principal

Cach

CPU

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 21

Memoria cach

Arquitectura de Ordenadores

Por qu puede mejorar con una cach?

Gracias al Principio de localidad:


El rango de direcciones de memoria al que accede un programa es relativamente pequeo para periodos de tiempo cortos. La informacin de las direcciones ms frecuentadas pueden estar en una memoria pequea y rpida (memoria cach), y el resto de datos en una grande y barata. Lo ms referenciado tenerlo ms cerca de la CPU
En la vida prctica hay muchos ejemplos de cachs: habitacin de un estudiante, empresa de logstica, etc.
Los accesos se concentran en ciertos rangos de direcciones

Probabilidad de referencia

0 Espacio de memoria
Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

2^n - 1

UPCO ICAI Departamento de Electrnica y Automtica 22

Memoria cach

Arquitectura de Ordenadores

Cmo se cumple el principio de localidad?

Localidad temporal
Si se accede a una posicin de memoria, frecuentemente se vuelve a acceder a la misma posicin de memoria

Cdigo: bucles, recursividad, funciones frecuentemente llamadas Datos: datos globales

Localidad espacial
Si se accede a una posicin de memoria, frecuentemente tambin se accede a posiciones cercanas
Cdigo: cdigo secuencial Datos: vectores, matrices

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 23

Memoria cach

Arquitectura de Ordenadores

Solucin en general: jerarqua de memoria

Compromiso entre velocidad de acceso al dato, capacidad de almacenamiento y coste


La jerarqua de memoria de un servidor es diferente a la de un PC

Resultado: memoria grande, rpida y barata


Procesador Control

Cach o buffer del nivel siguiente ms lento

Datapath Memoria

Memoria

Memoria

Memoria

Memoria

Velocidad: Rpidas Capacidad: Pequeas Coste: Alto


Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

Lentas Grande Bajo


UPCO ICAI Departamento de Electrnica y Automtica 24

Memoria cach

Arquitectura de Ordenadores

Ejemplo de jerarqua de memoria (I)

Aprovechar los diferentes grados de cumplimiento del principio de localidad

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 25

Memoria cach

Arquitectura de Ordenadores

Ejemplo de jerarqua de memoria (II)


Tamao Registros Cach nivel 1 (L1) Cach nivel 2 (L2) Memoria principal SRAM interna SRAM externa DRAM Disco duro Red (servidores) Bus 32x4bytes <64 KB <1 MB <1 GB 10 GB Velocidad CPU (<2ns) 1c CPU (<2ns) 1-2c 5 20 ciclos 10 100 c. 10.000.000 c. Ancho de banda ~10 GB/s ~2 GB/s

100 MB/s a 2 GB/s <500 MB/s 10-20 MB/s

100 100.000 c. 10MBit a 1GBit/s 10 1000 c. 132 MB/s

El objetivo es conseguir un ordenador cuya velocidad de memoria sea equivalente a la ms rpida y su capacidad de almacenamiento equivalente a la memoria ms grande. Cada nivel acta de memoria cach del nivel inferior ms lento. Tambin se utiliza el trmino buffer.
UPCO ICAI Departamento de Electrnica y Automtica 26

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

Memoria cach

Arquitectura de Ordenadores

Relacin entre jerarqua de memoria y pipeline


Cach de instrucciones (L1)

Memoria

L2 Cach

D/ M a p

I S S

E x

R W

R et

PC Register Map R e g s D c a c h e R e g s

Ic a c h e

80-100 ciclos
Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

5-10 ciclos

1-3 ciclos

1-3 ciclos

Procesador

Cach de datos (L1)

UPCO ICAI Departamento de Electrnica y Automtica 27

Memoria cach

Arquitectura de Ordenadores

Organizacin en general de la memoria cach

La CPU lanza la direccin al bus de direcciones El controlador de cach indica a la memoria cach la direccin. Si el dato est en la memoria cach, sta devuelve acierto. Tambin hay que comprobar que el dato es correcto (bit de validez) El dato de la cach pasa a la CPU. Si hay fallo, la direccin se lanza a la memoria principal. El mecanismo es transparente a la CPU.

Bit de validez

Memoria Hit Cach

CPU

Controlador Memoria Cach

Memoria Principal

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 28

Memoria cach

Arquitectura de Ordenadores

Preguntas sobre el funcionamiento de la cach

Dnde ubicar un dato en la cach? Estrategia de ubicacin


La cach es ms pequea que la memoria principal Los datos se traen a la cach en bloques (principio de localidad)

Cmo encontrar un dato en la cach? Estrategia de identificacin Si el dato no est en la cach y est llena, qu bloque sustituir? Estrategia de reemplazo Qu ocurre cuando se escribe en la cach? Estrategia de escritura
El dato en la cach y en memoria principal debera ser siempre el mismo.

stas preguntas son comunes a cualquier sistema de cach o buffer: sistema operativo, sistema de ficheros, etc. Respuesta a estas preguntas: ORGANIZACIN
UPCO ICAI Departamento de Electrnica y Automtica 29

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

Memoria cach

Arquitectura de Ordenadores

Organizacin de la cach

Una cach est organizada en lneas o bloques


Cada lnea o bloque contiene ms de un dato. Cuando se traen datos desde memoria principal se traen varios para aprovechar el Memoria Principal principio de localidad.
00

La cach duplica la informacin

02 Memoria Cach 06 08 0a 0c 0e 10

Lnea 0 Lnea 1 Lnea 2 Lnea 3

Cada lnea contiene 2 bytes consecutivos de la memoria principal

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 30

Memoria cach

Arquitectura de Ordenadores

Organizacin de cada lnea de la cach

Bloque de datos Bit de validez


Indica si el dato es correcto

Etiqueta: Referencia a la direccin del bloque en memoria principal


Como la cach es ms pequea que la memoria principal, en cada lnea de la cach hay que almacenar informacin adicional para saber cul es la direccin del dato en la memoria principal
Memoria Cach Linea0 0 Linea1 1 Linea2 1 Linea3 0 002e0 00002 00000 3eaa0 Etiquetas 01 23 aa 20 2a 45 f0 2d 3b 00 e9 80 fa 23 71 a3

Bit de validez
Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

Datos
UPCO ICAI Departamento de Electrnica y Automtica 31

Memoria cach

Arquitectura de Ordenadores

Tipos de cachs

La forma de hacer la correspondencia entre direccin de memoria principal (la que enva la CPU) y el lugar donde est almacenado el dato requerido en la cach define los diferentes tipos de cach:
ASOCIATIVA
El dato puede ocupar cualquier lnea de la memoria Utiliza memorias especiales tipo CAM (content addressable memory)

MAPEO DIRECTO
El dato slo puede ocupar una determinada lnea de la cach Utiliza memorias convencionales SRAM

ASOCIATIVA POR GRUPOS (O CONJUNTOS)


El dato slo puede ser almacenado en unas pocas lneas de la cach

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 32

Memoria cach

Arquitectura de Ordenadores
00000 Memoria 00001 Principal 00002 (1 MByte) 00003 00004 00005 00006 00007 21 0 00008 00009 0000a 2 bits 0000b 0000c 23 45 00 23 2e ff 10 25 aa f0 e9 71 23 25

Cach asociativa

La etiqueta de cada lnea de la cach almacena la direccin del bloque en memoria principal
Se quitan los bits bajos (linea de 4 bytes: 2 bits)

CPU

Direccin 19

Forma de operar:
La CPU lanza la direccin La parte alta de la direccin se compara simultneamente con todas las etiquetas de las lneas almacenadas en memoria Si hay acierto se selecciona el byte dentro de la lnea y se enva a la CPU
18 bits Memoria Cach Linea0 0 Linea1 1 Linea2 1 Linea3 0 002e0 00002 00000 3eaa0

01 aa 23 20

2a f0 45 2d Datos

3b e9 00 80

fa 71 23 a3

Etiquetas

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 33

Memoria cach

Arquitectura de Ordenadores

Cach asociativa trabajando


Bus de direcciones CPU Bus de datos 19 21 0

Memoria Cach 002e0 00002 00000 3eaa0 Etiquetas = = = =


Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

Linea0 Linea1 Linea2 Linea3

01 18 bits 23 aa 20

2a 3b 2 bits 45 00 f0 2d Datos e9 80

fa 23 71 a3

0 1 1 0

AND AND AND AND OR

Hit

UPCO ICAI Departamento de Electrnica y Automtica 34

Memoria cach

Arquitectura de Ordenadores
00000 Memoria 00001 Principal 00002 (1 MByte) 00003 00004 00005 00006 00007 21 0 00008 00009 0000a 2 bits 0000b 0000c 23 45 00 23 2e ff 10 25 aa f0 e9 71 23 25

Cach de mapeo directo

La direccin se divide en tres campos:


Seleccin de byte en la lnea Seleccin de lnea
La direccin que enva la CPU selecciona directamente la lnea en la cach 10 bits Direccin 19

CPU

12 11

Etiqueta
Distinguir entre todas las direcciones de memoria principal que se mapean en la misma lnea de la cach
Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

8 bits Memoria Cach Linea0 1 Linea1 0 Linea2 1 Linea3 0 00 00 00 3e Etiquetas 23 01 aa 20 45 2a f0 2d Datos 00 3b e9 80

23 fa 71 a3

UPCO ICAI Departamento de Electrnica y Automtica 35

Memoria cach

Arquitectura de Ordenadores

Cach mapeo directo trabajando


Bus de direcciones CPU 19 00 12 11 02 Memoria Cach 00 00 00 3e Etiquetas 23 18 bits 01 aa 20 45 00 2 bits 2a 3b f0 2d Datos e9 80 23 fa 71 a3 0 1 1 0 21 0

Linea0 Linea1 Linea2 Linea3

Hit
= Comparador ms pequeo que en la asociativa
Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez UPCO ICAI Departamento de Electrnica y Automtica 36

AND

Memoria cach

Arquitectura de Ordenadores

Comparacin entre asociativa y mapeo directo

Tasa de fallos
Mejor: Asociativa
Cualquier direccin en cualquier lnea

Precio
Mejor: Mapeo Directo
Memoria SRAM: 6 transistores/bit Permite utilizar una memoria ms lenta para los datos

Peor: Mapeo directo


Poco flexible: programa que genera direcciones que utilizan la misma lnea de la cach

Peor: CAM
Asociativa necesita un comparador por lnea. CAM: 9 o 10 transistores/bit

Tamao
Peor: Asociativa
Integrar un comparador por lnea

Velocidad
Mejor: Mapeo directo
Simplicidad, comparador ms pequeo.

Mejor: Mapeo directo


Un slo comparador

Combinacin: Asociativa por conjuntos

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 37

Memoria cach

Arquitectura de Ordenadores

Cach asociativa por conjuntos

Varias cachs de mapeo directo en paralelo


La lnea se direcciona como mapeo directo Cada lnea puede almacenar varios bloques. Se distingue el bloque a travs de la etiqueta Comportamiento intermedio entre asociativa y mapeo directo

Mapeo Directo

Asociativa

Conjunto 0 Etiquetas Datos

Conjunto 1 Etiquetas Datos

Bus de direcciones

21 0

1211

Hit
= AND = AND OR

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

19

UPCO ICAI Departamento de Electrnica y Automtica 38

Memoria cach

Arquitectura de Ordenadores

Estrategia de reemplazo

Qu hacer cuando no hay hueco para el nuevo dato? Mapeo directo


Se reemplaza la lnea directamente

Asociativas
Aleatoria
Eliminar cualquier bloque Se puede eliminar un bloque que todava va a seguir siendo utilizado

LRU (Least-recently used)


Eliminar el bloque que lleva ms tiempo sin ser utilizado Cada bloque necesita un contador para llevar su historia de utilizaciones. Caso ms simple de contador: 1 bit Cada vez que se accede se pone el bit del bloque a 1. Cada vez que no se accede se pone a 0.

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 39

Memoria cach

Arquitectura de Ordenadores

Estrategia de escritura

Cuando se actualiza el dato en la cach, se actualiza en la memoria principal? Estrategia Write-Through


Siempre se actualiza la memoria principal La cach mejora el rendimiento nicamente en la lectura

Estrategia Write-Back
Slo se actualiza la memoria principal cuando el dato va a ser eliminado de la cach para albergar otro dato.

La fase de escritura se puede mejorar mediante un buffer de escritura


Procesador Cach DRAM

Write Buffer
Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez UPCO ICAI Departamento de Electrnica y Automtica 40

Memoria cach

Arquitectura de Ordenadores

Problema de la saturacin del buffer de escritura

Un buffer de escritura es una fifo de pocos bloques Problema: Saturacin


Velocidad de retirada de datos hacia la memoria principal menor que velocidad de entrada de nuevos datos El nmero de operaciones de escritura suele bastante inferior al nmero de operaciones de lectura.

Para solucionarlo: segunda cach (L2)

Procesador

Cach

Cach L2

DRAM

Write Buffer

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 41

Memoria cach

Arquitectura de Ordenadores

Cmo mejorar el diseo de una cach?

Reduciendo la tasa de fallos Reduciendo la prdida de tiempo asociado a cada fallo Reduciendo el tiempo de acceso a la cach en el caso de acierto Hennessy&Patterson han encontrado ms de 1600 artculos relacionados con el diseo y mejora de la cach.

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 42

Memoria cach

Arquitectura de Ordenadores

Parmetros de diseo de la cach

Tamao Tamao del bloque Tipo de cach, grado de asociatividad Write through vs. Write back Divisin de la cach
Cach de datos Cach de instrucciones

Tiempo de acceso a la cach Niveles de cach Consumo

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 43

Memoria cach

Arquitectura de Ordenadores

Clculo del tiempo de acceso medio (tm)

Frmula de clculo:

t m = tasa aciertos t acceso _ acierto + tasa fallos t penalizaci n Expresado en unidades de tiempo o en ciclos
Ejemplo 1:
Una mquina cuyo tiempo de acceso a la cach es 1 ciclo Si el dato no est en la cach el tiempo de acceso se incrementa en 10 ciclos La tasa media de fallos es 10% Tiempo de acceso medio a la memoria: tm = 1 + 0.1*10 = 2 ciclos

Ejemplo 2:
Mquina igual a la del ejemplo 1 Se ejecuta un programa que hace 100 referencias a memoria: 90 acierta y 10 falla la cach tm = ciclos/referencias = (90*1 + 10*11)/100 = 2 ciclos

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 44

Memoria cach

Arquitectura de Ordenadores

Impacto sobre el rendimiento total

Tiempo de ejecucin actualizado

t = I * (CPICPU + C PMEM ) * T
CPI se ha dividido en dos
CPICPU: nmero medio de ciclos que tarda en ejecutarse una instruccin en la CPU, suponiendo que se tarda un ciclo en el acceso a la cach (mquina sencilla). CPMEM: nmero medio de ciclos de parada que provocan los accesos a memoria de una instruccin (lectura de instruccin + carga/escritura dato). Tiempo de acceso a la cach Tasa de fallos en el acceso a la cach Tiempo de acceso a la memoria principal

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 45

Memoria cach

Arquitectura de Ordenadores Una pequea mejora en la cach repercute de forma extraordinaria en el rendimiento del ordenador

Ejemplo de impacto de la cach

Calcular el impacto en el tiempo de ejecucin cuando se incluye la cach


50 ciclos de penalizacin cuando el dato no est en la cach. 0 ciclos cuando est en la cach Todas las instrucciones requieren 2 ciclos de reloj, excluyendo los ciclos de parada por acceso del dato o la instruccin Tasa de fallos de la cach: 2% Nmero de referencias por instruccin a memoria: 1.33
1: Leer la instruccin 0.33: Leer o escribir en la memoria

n = (2 +0.98*0*1.33+ 0.02 * 50 * 1.33)/2 = 1.88


Un 2% repercute aumentando el tiempo de ejecucin en un 88 % Si es un 4%: (2+0.04*50*1.33)/2=2.33 133%
Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez UPCO ICAI Departamento de Electrnica y Automtica 46

Memoria cach

Arquitectura de Ordenadores

Origen de los fallos en la cach

Fallos fijos
Primer acceso Disminuye al aumentar la probabilidad de cumplirse el principio de localidad

Por conflicto
Mltiples direcciones mapeadas en la misma lnea de la cach Solucin

Incrementar el tamao de la cach Incrementar el grado de asociatividad

Por capacidad (relacin inversa al tamao de la memoria)


La cach no puede almacenar todos los bloques Incrementar el tamao de la cach: ojo con la velocidad.

Por invalidacin
Operacin de DMA

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 47

Memoria cach

Arquitectura de Ordenadores

Relacin entre fallos y tipo de cach


Mapeo Directo Tamao cach Fallos fijos Por conflicto Por capacidad Invalidacin Grande Igual Alta Baja Igual Asociativa por conjuntos Mediana Igual Media Media Igual Asociativa Pequea Igual Muy baja Alta Igual

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 48

Memoria cach

Arquitectura de Ordenadores

Influencia del tamao del bloque

Al aumentar el tamao de la lnea aumenta el tiempo de penalizacin


Se tardar ms en rellenar la lnea con datos desde memoria principal.

A igualdad de tamao de cach, el aumento del bloque puede provocar el aumento de la tasa de fallos
Tasa fallos Explota localidad espacial Tiempo medio de acceso Incremento de tiempo penalizacin y tasa de fallos

Tiempo penalizacin

Pocos bloques: poca flexibilidad

Tamao bloque
Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

Tamao bloque

Tamao bloque

UPCO ICAI Departamento de Electrnica y Automtica 49

Memoria cach

Arquitectura de Ordenadores

Tasa de fallos y divisin de la cach (datos e inst)

En el cdigo hay generalmente ms localidad que en los datos:


Cdigo: bucles Datos: Se intentan ubicar en los registros de la CPU (STACK).

Dentro de la CPU se suele utilizar la divisin de cachs


Aumenta ancho de banda: instrucciones y datos simultneos Instrucciones y datos tienen diferentes necesidades
La cach de instrucciones suele trabajar slo en lectura Ms simple y rpida Permite mejorar las tcnicas de gestin de saltos

Tasa de fallos igual o mayor que la unificada (menos flexibilidad) Diseo conjunto con la memoria virtual

Fuera de la CPU se suele utilizar unificada


Tasa de fallos menor Ms flexibilidad: el cdigo puede estar mezclado con los datos

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 50

Memoria cach

Arquitectura de Ordenadores

Tasa de fallos y divisin de la cachs (datos e inst)

Es interesante partirla

No es interesante partirla

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 51

Memoria cach

Arquitectura de Ordenadores

Tasa de fallos y asociatividad


No es necesario llegar a 8, con 4 es suficiente

La cach de mapeo directo es una buena solucin

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 52

Memoria cach

Arquitectura de Ordenadores

Niveles de cach

Nivel 1 (L1)
Optimizada en velocidad Limitada por el tamao (en el mismo chip que la CPU)
Tasa de fallos comprometida

Partida para mejorar el ancho de banda

Nivel 2 (L2)
Fuera del chip
Ms lenta: mayor tiempo de acceso Ms grande: mayor tasa de aciertos CPU

Procesador

Cach L1

Cach L2

DRAM

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 53

Memoria cach

Arquitectura de Ordenadores

Resumen sobre diseo de la cach

Incrementar tamao del bloque


Mejora la tasa de fallos si no nos acercamos al tamao de la cach Empeora el tiempo de penalizacin

Incrementa el tiempo de acceso a la cach en el acierto Incrementa el coste

Dividir la cach
Util dentro de la CPU.
Datos e instrucciones tienen diferentes necesidades

Incrementar el tamao de la cach


Mejora la tasa de fallos Incrementa el tiempo de acceso a la cach en el acierto Incrementa el coste

No recomendado fuera de la CPU


Total flexibilidad para ubicar instrucciones y datos en la cach

Aumentar grado de asociatividad


Mejora la tasa de fallos

Incrementar los niveles de cach


L1 para mejorar el tiempo de acceso: I-cach y D-cach L2 para mejorar la tasa de fallos

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 54

Memoria cach

Arquitectura de Ordenadores

No est claro que es lo mejor

Depende de la aplicacin Se realizan mltiples simulaciones con diferentes aplicaciones hasta conseguir un buena relacin entre prestaciones del sistema con la cach diseada y el coste Ejemplos
Pentium 4:
L1: I-Data: 8 KB, 4-way I-Code: 12 KB de microoperaciones L2: 256 KB,8-way, integrada en el cartucho

Athlon:
L1: 2-way, I-Data: 64 KB I-Code: 64 KB L2: 512 KB ampliable a 8 MB, mapeo directo

Cul es la mejor solucin?

PowerPc 7450
L1: 8-way, I-Data: 32 KB, I-Code: 32 KB L2: 8-way, 256 KB L3: hasta 2 MB

Aumenta el gap: aumenta el nmero de niveles de cach


UPCO ICAI Departamento de Electrnica y Automtica 55

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

Memoria cach

Arquitectura de Ordenadores

Errores tpicos del alumno

Creer que la bsqueda en la cach asociativa es secuencial No diferenciar entre latencia expresada en ciclos de la memoria y penalizacin en ciclos del acceso a la memoria. Pensar que aumentando simplemente el tamao de la cach aumenta el rendimiento del sistema.

Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez

UPCO ICAI Departamento de Electrnica y Automtica 56

También podría gustarte