Documentos de Académico
Documentos de Profesional
Documentos de Cultura
7 Cache
7 Cache
Arquitectura de Ordenadores
MEMORIA CACH
Memoria cach
Arquitectura de Ordenadores
Datapath
Salida
Elemento a estudiar
Memoria cach
Arquitectura de Ordenadores
1000 Rendimiento
Ley de Moore
CPU
Proc 60%/ao
100 10 1
Memoria 7%/ao
Memoria cach
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 %
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
Memoria cach
Tipos de memoria
bit
Celda: condensador
Bit de SRAM
Seleccin fila Equivalente a un registro de 1 bit
bit
bit
Memoria cach
Arquitectura de Ordenadores
A0 A1
Lectura/escritura dato
D1
Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez
D0
Memoria cach
Arquitectura de Ordenadores
Memoria y tamao
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
Memoria cach
Arquitectura de Ordenadores
Decodificador Columnas
De co dif ic ad or Fil as
Memoria cach
Arquitectura de Ordenadores
Bancos
Memoria cach
Arquitectura de Ordenadores
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
Memoria cach
Arquitectura de Ordenadores
Poner el nfasis en el ancho de bus (ancho de banda - pico)
Memoria cach
Arquitectura de Ordenadores
Cronograma SDRAM
Ciclos acceso fila columna - dato
Memoria cach
Arquitectura de Ordenadores
Memoria cach
Arquitectura de Ordenadores
Mayor frecuencia, pero ms ciclos por cada operacin
RDRAM (RAMBUS)
Memoria cach
Arquitectura de Ordenadores
Memoria cach
Arquitectura de Ordenadores
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
Fuente: IEEE TRANSACTIONS ON COMPUTERS, VOL. 50, NO. 11. NOVEMBER 2001
Memoria cach
Arquitectura de Ordenadores
Memoria cach
Arquitectura de Ordenadores
Memoria cach
Arquitectura de Ordenadores
Memoria ECC
La memoria ECC detecta errores de bits mltiples y corrige errores de bits nicos generalmente.
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
Memoria cach
Arquitectura de Ordenadores
Memoria Principal
Cach
CPU
Memoria cach
Arquitectura de Ordenadores
Probabilidad de referencia
0 Espacio de memoria
Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez
2^n - 1
Memoria cach
Arquitectura de Ordenadores
Localidad temporal
Si se accede a una posicin de memoria, frecuentemente se vuelve a acceder a la misma posicin de memoria
Localidad espacial
Si se accede a una posicin de memoria, frecuentemente tambin se accede a posiciones cercanas
Cdigo: cdigo secuencial Datos: vectores, matrices
Memoria cach
Arquitectura de Ordenadores
Datapath Memoria
Memoria
Memoria
Memoria
Memoria
Memoria cach
Arquitectura de Ordenadores
Memoria cach
Arquitectura de Ordenadores
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
Memoria cach
Arquitectura de Ordenadores
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
Memoria cach
Arquitectura de Ordenadores
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
CPU
Memoria Principal
Memoria cach
Arquitectura de Ordenadores
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
Memoria cach
Arquitectura de Ordenadores
Organizacin de la cach
02 Memoria Cach 06 08 0a 0c 0e 10
Memoria cach
Arquitectura de Ordenadores
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
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
Memoria cach
Arquitectura de Ordenadores
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
Hit
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
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
23 fa 71 a3
Memoria cach
Arquitectura de Ordenadores
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
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: 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.
Memoria cach
Arquitectura de Ordenadores
Mapeo Directo
Asociativa
Bus de direcciones
21 0
1211
Hit
= AND = AND OR
19
Memoria cach
Arquitectura de Ordenadores
Estrategia de reemplazo
Asociativas
Aleatoria
Eliminar cualquier bloque Se puede eliminar un bloque que todava va a seguir siendo utilizado
Memoria cach
Arquitectura de Ordenadores
Estrategia de escritura
Estrategia Write-Back
Slo se actualiza la memoria principal cuando el dato va a ser eliminado de la cach para albergar otro dato.
Write Buffer
Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez UPCO ICAI Departamento de Electrnica y Automtica 40
Memoria cach
Arquitectura de Ordenadores
Procesador
Cach
Cach L2
DRAM
Write Buffer
Memoria cach
Arquitectura de Ordenadores
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.
Memoria cach
Arquitectura de Ordenadores
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
Memoria cach
Arquitectura de Ordenadores
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
Memoria cach
Arquitectura de Ordenadores
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
Memoria cach
Arquitectura de Ordenadores Una pequea mejora en la cach repercute de forma extraordinaria en el rendimiento del ordenador
Memoria cach
Arquitectura de Ordenadores
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
Por invalidacin
Operacin de DMA
Memoria cach
Arquitectura de Ordenadores
Memoria cach
Arquitectura de Ordenadores
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
Tamao bloque
Jos A. Rodrguez Mondjar Cesreo Fernndez Martnez
Tamao bloque
Tamao bloque
Memoria cach
Arquitectura de Ordenadores
Tasa de fallos igual o mayor que la unificada (menos flexibilidad) Diseo conjunto con la memoria virtual
Memoria cach
Arquitectura de Ordenadores
Es interesante partirla
No es interesante partirla
Memoria cach
Arquitectura de Ordenadores
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
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
Memoria cach
Arquitectura de Ordenadores
Dividir la cach
Util dentro de la CPU.
Datos e instrucciones tienen diferentes necesidades
Memoria cach
Arquitectura de Ordenadores
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
PowerPc 7450
L1: 8-way, I-Data: 32 KB, I-Code: 32 KB L2: 8-way, 256 KB L3: hasta 2 MB
Memoria cach
Arquitectura de Ordenadores
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.