Memoria Cache

Anuncio
Memoria Cache
Clase Práctica
Organización del computador I
2º Cuatrimestre 2008
7 de octubre
María Elena Buemi
¿Qué es la Memoria caché?
• De acceso rápido(costosa en $$)
• Interactúa entre la CPU y la Memoria
Principal
Palabra
CPU
Bloque
CACHE
Memoria Principal
(MP)
Contiene una
porción de la MP
Rápida-Pequeña
Lenta
Mayor tamaño
2
¿Qué es la Palabra?
– Palabra
• unidad de organización de la memoria,
unidad de transferencia
3
¿Qué es el bloque?
BLOQUE
•Conjunto de unidades de transferencia
Palabra 3
Palabra 2
Palabra 1
Palabra 0
4
ETIQUETA
BLOQUE
0
1
2
Bloque de
K palabras
0
1
2
3
K-1
L-1
K palabras, tam. bloque
CACHE
MEMORIA
PRINCIPAL
5
¿Cómo interactúa la Caché con
la CPU y la Memoria?
La cache recibe
una dirección DIR
de la CPU
¿Palabra con esa
DIR en caché ?
Cómo se hace
una Lectura
NO(Miss)
Busca en Memoria Principal el bloque
que contiene DIR
Pone el la línea del
bloque en que está DIR
en la caché
SI(Hit)
Busca la Palabra
que está en DIR
y la transfiere hacia la
CPU
Transfiere la palabra
hacia la
CPU
6
LISTO
Transferencias
Cpu
palabras
Cache
Divida en líneas
Bloque
Memoria Principal
Está divida en bloques
Elementos de la memoria Caché
•Tamaño(menor que la memoria principal)
•Mapeo (Organización del acceso )
•Políticas de reemplazo
8
Tamaño de la Caché
C<< M
¿Cómo calculo el tamaño de la Caché?
•Memoria Principal hay un número de palabras
direccionables con direcciones de n bits
•Cache hay una cantidad fija de líneas, en cada una hay
un bloque de K palabras,
•En la MP también hay una cantidad de bloques.
•¿Cuántos? M=2n/K bloques
El tamaño de la cache(su capacidad) dependerá del tamaño de la línea y
la cantidad de líneas
9
Mapeo
• Dado que hay muchas menos líneas en
cache que en memoria principal es
necesario un algoritmo para mapear
bloques de memoria principal en líneas de
cache.
• La organización de la caché impone la
forma de mapeo.
Organización de Caché
•Mapeo directo
•Asociativa
•Asociativa por conjuntos de n vías
En cualquier caso, una dirección que mapee a cache
tendrá campos .
El tamaño de los campos variarán en distribución y tamaño
según la organización de la Caché
11
Cache de mapeo directo
Dirección de memoria
Etiqueta
Linea
Indice
Cada bloque de MP tiene asignada una línea de cache
Etiqueta o Etiqueta: el bloque de MP donde se halla la línea que
contiene a la palabra requerida
Línea: la línea de caché donde está el bloque
Índice: la plabra requerida
12
Correspondencia Directa o Mapeo
Directo
Ejemplo Cache Mapeo Directo
Direcciones de memoria de
24 bits
Los 14 bits de línea son
usados para ubicarse en
una línea particular. Si los 8
bits de la etiqueta coinciden
con la etiqueta almacenada
en esa línea de cache.
Otro Ejemplo
Dirección de memoria
Etiqueta
Linea
Indice
Una computadora utiliza una cache de mapeo directo
de 32 líneas de 16 palabras cada una. La memoria
principal mide 220 palabras y es direccionable a
palabra".
a)a¿Cuántas líneas posee la memoria principal? ¿A
cuántos bloques corresponde.
b)¿Cómo es una dirección para esta caché?
c)La CPU pide leer la palabra que está en la dirección
0x0DB63. Cómo queda la caché luego de leerla.
15
a) 220 palabras /24 palabra/linea = 216 líneas en MP
b) 1 linea 24 pal.
#Indice= 4 bits
Etiqueta -> #bloques en MP
216 lín. / 25 lín / bloque = 211 bloques
#Etiquetas = 11 bits
25 líneas ->
#linea= 5 bits
Etiqueta
Linea
11
5
c) Decodifico 0x0DB63
Indice
4
en 0000 1101 110 1 0110 0011
Indice = 0x3
Linea = 0x16
Etiqueta = 0x06E
línea 0x16 de la caché contendrá la palabra 0x3 correspondiente a Etiqueta
16
Cache Asociativa
Dirección de memoria
Etiqueta
Indice
Etiqueta o Etiqueta: el bloque de MP de se halla la línea que
contiene a la palabra requerida
Índice: la palabra requerida
Las líneas de este tipo de caché se ocupan, si la dirección buscada
no está presente, hasta que la caché se llena. Cuando lo está para
ocupar unalíneade caché habrá que desalojar alguna según algún
algoritmo de reemplazo.
17
ASOCIATIVA
EJEMPLO: ASOCIATIVA
Memoria principal: 216 palabras.
Caché Asociativa: 64 líneas de 32 palabras.
• Cantidad de líneas de la Memoria Principal.
#líneas=216 pal/25 pal/lin =211 líneas
•Mostrar los campos de la dirección de memoria
correspondiente.
11
5
•Dirección 0xF8C9
1111 1000 1100 1001
Etiqueta ->1111 0001 10 = 0x3E2
Indice ->11 1001 = 0x39
20
Asociativa por conjuntos de n vías
Dirección de memoria principal
Etiqueta
cantidad de
bloques en
memoria principal
conjunto
índice
cantidad de
conjuntos o
líneas
en cada vía
de caché
cantidad de
direcciones
por línea
Cada línea de caché tiene n-vías
Conj o lin 0
Via 0 (conj o lin 0)
Via n-1 (conj o lin 0)
Conj o lin 1
Via 0 (conj o lin 1)
Via n-1 (conj o lin 1)
Via 0 (conj o lin L-1)
Via n-1 (conj o lin L-1)
Conj o lin L-1
Cache de n vías
21
ASOCIATIVA POR
CONJUNTOSDE N VIAS
EJEMPLO:
Memoria principal: 227 palabras.
Caché: 215 líneas de 64 palabras cada una.
1. Mostrar el formato de una dirección de memoria para una caché
asociativa por conjuntos de 2 vías.
•
64 palabras por línea= 26 pal/línea -> 6 bits para el índice
•
Cada vía de caché tendrá 214 líneas -> 14 bits para el campo
conjunto
•
Cantidad de bloques en MP determinará la cant de bits para el
Etiqueta:
•
Como la cantidad de lineas de MP es 227 pal/26pal/ linea = 221
lineas,
•
221 Lineas/ 214 líneas/ bloque= 27 bloques en MP -> 7 bits para el
Etiqueta
24
– ¿Cómo queda cargada la caché al leer primero la
dirección 0x01178FC, y luego la dirección 0x03178FC?
0x01178FC -> 0000 0001 0001 0111 1000 1111 1100
Etiqueta
Conjunto
Indice
0000 0001 -> 0x1
0000 01 01 11 10 00 11 -> 0x5E3
0011 1100 ->0x3C
0x03178FC -> 0000 0011 0001 0111 1000 11 11 1100
Etiqueta
Conjunto
Indice
0000 0011 -> 0x3
0001 01 11 10 00 11 -> 0x05E3
11 1100 ->0x3C
25
Políticas
Si el bloque está en
caché
Si el bloque no está en
caché
Buscarlo en Memoria Principal
HIT
Política de ubicación-F. de correspondencia
Política de sustitución
¿Donde se ubica?
Si la caché está llena
¿Dónde se ubica?
Es una escritura
Políticas de sustitución
Algoritmos a seguir para qué línea de caché reemplazo.
En Asociativa y en Asociativa por conjuntos de n-vías
Más conocidos
LRU: el más recientemente usado
FIFO: primero que entra primero que sale
LFU: menos frecuentemente usado
27
¿Cómo interactúa la Caché con la
CPU y la Memoria?(Escritura)
Cómo se hace
La cache envía
una dirección DIR
de la CPU
Política
una Escritua
2 políticas
Política
Write back
Escribe la palabra
en caché
Escribe en caché.
Write-througth
Escribe en caché y en MP
Hay que reemplazar esa línea de cache
Actualiza la MP
¿Cuál de las 2 será más conveniente?
28
Descargar