Download L - Erika Vilches

Document related concepts
no text concepts found
Transcript
Organización y arquitectura
de sistemas de memoria
Organización Computacional
TC 1004
Material desarrollado por Dra. Maricela Quintana López, Dr. Miguel González Mendoza y Dr. Jorge Ramírez Uresti
Organización y arquitectura de
sistemas de memoria
Objetivos:
5.1 Jerarquía de sistemas de memoria: registros,
caché, principal, secundaria, capacidades y
velocidades
5.2 Clasificación de memoria: RAM y ROM
5.3 Concepto de Celda Binaria
Características de los
sistemas de memoria
Ubicación
Capacidad
Unidad de
transferencia
Método de acceso
Prestaciones
Registros

Memoria interna o principal

Dispositivo Físico
Características
físicas
Organización
En CPU

Puede incluir uno o más niveles de
caché
“RAM”
Memoria externa

Memoria de respaldo
Características de los
sistemas de memoria …
Ubicación
Capacidad

Tamaño de la palabra

Unidad de
transferencia
Método de acceso
Prestaciones

Número de bits utilizados para
representar números o
longitud de instrucciónes.
Excepciones: CRAY-1, VAX.
Dispositivo Físico
Características
físicas
Organización

Número de palabras
Características de los
sistemas de memoria …
Ubicación
Capacidad
Unidad de
transferencia
Método de acceso
Para la memoria principal,
número de bits que se leen
o se escriben en memoria a
la vez.
Prestaciones
Dispositivo Físico
Características
físicas
Organización
Para la memoria externa,
unidades más grandes
denominadas bloques.
Características de los
sistemas de memoria …
Ubicación
Capacidad
Unidad de
transferencia
Método de
acceso
Prestaciones
Dispositivo Físico
Características
físicas
Organización

Acceso secuencial

Acceso directo

Acceso aleatorio

Acceso asociativo
Características de los
sistemas de memoria …
Ubicación
Capacidad
Unidad de
transferencia
Tiempo de acceso


Método de acceso
Memoria de acceso aleatorio: Tiempo
en realizar una lectura o escritura
Memoria de otro tipo: Tiempo en situar
el mecanismo de escritura/lectura en la
posicicón deseada.
Prestaciones
Dispositivo Físico
Características
físicas
Organización
Tiempo de ciclo

Se aplica principalmente a las
memorias de acceso aleatorio, se
define como el tiempo de acceso más
el tiempo que se requiere para poder
iniciarse un segundo acceso a la
memoria.
Características de los
sistemas de memoria …
Ubicación
Capacidad
Unidad de
transferencia
Método de acceso
Prestaciones
Dispositivo Físico
Características
físicas
Organización
Velocidad de transferencia
 Velocidad a la que se puede transferir
datos a, o desde, una unidad de
memoria.
 Acceso aleatorio: inverso del tiempo de
ciclo.
 Otro tipo de acceso:
N
TN  TA 
R
TN
TA
N
R
Tiempo medio de escritura o de lectura de N bits
Tiempo de acceso aleatorio
Número de bits
Velocidad de transferencia en bits por segundo (bps)
Características de los
sistemas de memoria …
Ubicación

Capacidad
Semiconductor

Unidad de
transferencia
Método de acceso

Dispositivo
Físico


Floppies, cintas, etc.
Soporte óptico

Características
físicas
Organización
Soporte magnético

Prestaciones
Dispositivos de estado sólido como
los chips. Ej: RAM
DVD, CD, mini disk, etc.
Magneto óptico

Mitad magnetico, mitad óptico.
Características de los
sistemas de memoria …
Ubicación
Capacidad
Volátil / no volátil
Unidad de
transferencia

Método de acceso

Prestaciones
Memoria de superficié
magnética: no volátil
Memoria semiconductora:
volátil o no volátil
Dispositivo Físico
Características
físicas
Organización
Borrable / no borrable

RAM / ROM
Características de los
sistemas de memoria …
Ubicación
Capacidad
Unidad de
transferencia
Método de acceso
Prestaciones
Dispositivo Físico
Características
físicas
Organización

Disposición o estructura
física en bits para formar
palabras.
Jerarquía de sistemas de
memoria

En el diseño de la memoria de una
computadora existe un compromiso entre las
características de capacidad, coste y
velocidad.



A menor tiempo de acceso, mayor coste por bit.
A mayor capacidad, menor coste por bit.
A mayor capacidad, mayor tiempo de acceso.
Memoria ideal

Infinitamente grande y con tiempo de acceso muy corto.

Sin embargo



Solución: Jerarquía de memoria



Muy cara
Tecnológicamente no factible
Unidades grandes y lentas, y
Unidades pequeñas y rápidas
Meta de la jerarquía de memoria:

Ilusión de una memoria grande, rápida y barata.
¿Por qué es importante el
uso de la jerarquía de
memoria?
1000
CPU
Separación de
rendimiento
Procesador-memoria
(crece 50% / año)
100
10
“Less’ Law?”
DRAM
1
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
Rendimiento
“Moore’s Law”
µProc
60%/año.
(2X/1.5 año)
Tiempo
DRAM
9%/año.
(2X/10 años)
Jerarquía de sistemas de
memoria
Cuando se desciende la jerarquía
ocurre:
a) Menor costo por bit
b) Mayor capacidad
c) Menor velocidad
d) Disminución de la frecuencia
de acceso a la memoria por
parte del procesador
Principio de
localidad
¿Por qué funciona la jerarquía
de memoria?
Principio de localidad

Los programas accede una porción relativamente
pequeña del espacio de direcciones en algún
instante de tiempo.
Probabilidad
De referencia
0
Espacio de direcciones
Jerarquía de memoria:
¿Cómo trabaja?

Localidad temporal
 Si un dato es referenciado, se tiende a ser
referenciado de nuevo en un tiempo próximo
(bucles o subrutinas)

Localidad espacial
 Si un dato es referenciado, los datos con
direcciones cercanas tienden a ser referenciados
pronto (tablas o matrices)
Jerarquía de memoria:
Terminología

Hit: el dato está en algún bloque en el nivel superior (ejemplo: Bloque X)
 Hit Rate: Fracción de acceso a memoria en el nivel superior
 Hit Time: Tiempo para accesar el nivel superior que consiste en: tiempo
de acceso de RAM + Tiempo para determinar hit/miss

Miss: el dato necesita ser traído de un bloque en el nivel bajo (Bloque Y)
 Miss Rate = 1 - (Hit Rate)
 Miss Penalty: Tiempo para reemplazar un bloque en el nivel superior
+ Tiempo para llevar el bloque al procesador
Hit Time << Miss Penalty
Al procesador Nivel memoria
superior
Bloque X
Del procesador
Nivel de memoria
inferior
Bloque Y
Ejemplo
Acceder a dos niveles de memoria
Nivel 1: 1,000 palabras, tiempo acceso: 0.1 s
Nivel 2: 100,000 palabras, tiempo acceso: 1 s
Jerarquía de memoria de una
computadora moderna

Haciendo uso del principio de localidad:


Presenta al usuario tanta memoria como esté disponible con la tecnología más
económica.
Provee acceso con la velocidad disponible con la tecnología más rápida.
Processor
Control
Tamaño (bytes):
On-Chip
Cache
Velocidad (ns):
Registers
Datapath
Second
Level
Cache
(SRAM)
Main
Memory
(DRAM)
1’s
10’s
100’s
100B
KB
MB
Secondary
Storage
(Disk)
10,000,000’s
(10’s ms)
GB
Tertiary
Storage
(Tape)
10,000,000,000’s
(10s sec)
TB
¿Cómo es manejada la
jerarquía de memoria?

Registros


Cache


Por el compilador (¿programador?)
Por el hardware
Memoria principal



Por el hardware
Por el sistema operativo (caché de disco &
memoria virtual)
Por el programador (archivos)
Clasificación de memoria
Memoria RAM (Random-Access Memory)



Todas las memoria mostradas son de acceso
aleatorio
Leer y escribir datos rápidamente en ellas
Volátil. Almacenamiento temporal
Tipos de
memoria RAM
Dinámica. Está hecha con celdas que
almacenan los datos como cargas
en los condensadores.
Estática.
Almacenan los datos utilizando
configuraciones de puertas que
forman biestables (flip-flops)
Memoria RAM dinámica y
estática
Acceso aleatorio: el tiempo de acceso es el mismo para todas las locaciones
 DRAM: Memoria de acceso aleatorio dinámica
 Alta densidad
 low power
 Económica
 Lenta
 Dinámica: Necesita ser “refrescada” regularmente (1-2% de ciclos)

SRAM: Memoria de acceso aleatoria estática
 Baja densidad
 high power
 Cara
 Rápida
 Estática: El contenido durará mientras esté alimentada
Memoria ROM
Memoria ROM (Read-Only Memory)

Contiene un padrón permanente de datos
que no puede alterarse.

Aplicaciones: microprogramación, subrutinas
de biblioteca para funciones de uso
frecuente, programas del sistema, tablas de
funciones.
Tipos de memoria ROM
PROM. Es volátil y sólo se puede escribir en ella una
sola vez. El proceso de escritura se lleva a cabo
eléctricamente y puede realizarlo el suministrados o
el cliente con posterioridad.
Memorias de sobre-todo-lectura:

EPROM: Memoria de sólo lectura programable borrable
 Antes de escribir una operación, todas las celdas de
almacenamiento deben ser borradas al estado inicial
exponiendo el chip a radiación ultravioleta. Puede ser
alterada múltiples veces.
 Más cara que la PROM, pero tiene la ventaja de que puede
ser actualizada múltiples veces.
Tipos de memoria ROM

EEPROM:

Memoria de sólo lectura programable borrable eléctricamente

Puede ser escrita sin borrar contenido anterior. Sólo el o los bytes
direccionados son actualizados.
La operación de escritura toma mucho más tiempo que la de lectura.
Combina la ventaja de no-volativilidad con la flexibilidad de ser actualizable
usando controles de bus ordinarios, direcciones y línea de datos.
Es más cara que la EPROM y puede almacenar menos bits por chip.




Flash






Nombrada así por la velocidad a la cual puede ser reprogramada.
Es intermedia entre la EPROM y la EEPROM en costo y funcionalidad.
Mucho más rápida que la EPROM.
Puede borrar bloques específicos de memoria.
No provee borrado a nivel de bytes.
Tiene la densidad alta de las EPROM.
CLASIFICACIÓN DE LAS MEMORIAS DE SEMICONDUCTORES
Tipo de
memoria
Categoría
Borrado
Mecanismo
de escritura
RAM
Lecturaescritura
ROM
Sólo lectura
No es posible
Máscaras
No volátil
"
"
Eléctricamente
"
Lecturafrecuente
Luz
ultravioleta
"
"
"
Eléctricamente
"
"
PROM
EPROM
EEPROM
Eléctricamente Eléctricamente
Volatibilidad
Volátil
Memorias no aleatorias
Tecnología de acceso a “memoria-no tan-aleatoria”:
 El tiempo de acceso varía de locación a locación y de
tiempo a tiempo

Ejemplos: Disco, CDROM
Tecnología de Acceso Secuencial: tiempo de acceso linear en
locación (e.g.,Cinta)
Celda Binaria

Es el elemento básico de una memoria
semiconductora .

Presentan dos estados estables (o semiestables)
que pueden utilizarse para representar el 1 y 0
binarios

Puede escribirse en ellas (al menos una vez) para
fijar su contenido

Pueden leerse para detectar su estado
Funcionamiento y estructura de
una celda binaria
• Tres terminales capaces de llevar una señal eléctrica.
•El selector selecciona una celda.
•El control indica el tipo de operación: lectura o escritura.
•Escribir, la otra terminal provee una señal que pone a la celda
en 1 o 0. Para leer, es usada como salida de la celda
Construcción de palabras de memoria a
partir de celdas binarias

Palabras

Longitud de palabra

Dirección (0 a n-1  n localidades)

m líneas de dirección  2m localidades
Ejemplo
Construcción memorias de
semiconductores a partir de palabras

La memoria se forma a partir de palabras

La capacidad se expresa en términos de
# palabras x longitud de palabra

Las memorias del ejemplo anterior son:


12x8, 8x12 y 6x16
Chip memoria incluye mecanismos para


Decodificar las direcciones
Detección/Escritura.
Memoria de 16x8



Palabra de memoria (renglon - línea de palabra)
Líneas de bit al circuito de lectura/escritura
Lineas de entrada/salida (bidireccional)
Diseño de sistemas de memoria de
mayor capacidad, a partir de memorias
de menor capacidad.

Tecnología de CI adecuada
para memorias

Aumenta #bits que se
pueden almacenar

1Kbit a 16M bits

Organización de las celdas
de memoria


2D
21/2D
Organización 2D

Disposición física = lógica.

El arreglo de memoria está organizado en W palabras de B bits

Todos los bits de una palabra en el mismo chip
Organización 2D …
En esta organización :
 # líneas de dirección

# celdas de la memoria (capacidad)

# palabras (# unidades direccionables)

# bits por palabra (longitud de palabra)
Organización 2D …
Ejemplos:

1.
Ej: Diseñe una memoria de 2D de 1Kb con palabras de
16 bits.
2.
Ej: Si se sabe que una memoria 2D tiene 5 líneas de
dirección y 2048 celdas de capacidad, entonces:
•
•
3.
¿Cuántas palabras tiene?
¿Cuántos bits por palabra?
Ej: ¿Cuál es el efecto en la capacidad de una memoria
2D si se agrega una línea de dirección?
Ejemplos: Organización 2D

1. Dado un MAR de 8 bits y un MDR de 64 bits:





¿Cuántas palabras puedo direccionar?
¿Cuál es la longitud de la palabra?
¿Cuál es la capacidad de la memoria en bits?
¿Cuál es la capacidad de la memoria en bytes?
2. Realice un diagrama de bloque para una
memoria de 1MByte en 2D, con longitud de palabra
de 16 bits, coloca todos los componentes.
Organización 21/2 D

Un bit por chip

Los bits de una palabra repartidos en varios chips

El chip contiene un arreglo de bits cuadrado
Organización 21/2 D …

Ej: Se tiene una memoria 2½ D con longitud de
palabra de 1 bit. Si se sabe que tiene 1Kb de
capacidad: ¿cuántas



Palabras
Lineas de dirección y
Tamaño de matriz
se necesitan?
Organización 2½D





1Kbit de capacidad (# celdas en la memoria),
entonces:
# palabras = 1K = 1024
# líneas de dirección = log2 1024 = 10 (5 al
decodificador y 5 a los multiplexores)
# bits por palabra = 1
La matriz cuadrada de memoria es de 2 5 x 2
5 (32 x 32).
Ventajas 2½ D sobre 2D …

2½ requiere menos líneas de dirección que
2D.

2½ facilita la corrección de errores.

2½ cuadriplica la capacidad por línea de
dirección.

2½ es modular (por ser cuadrada).
Encapsulado de chips

Circuito conexión RAM 2D


1Kbit (128x8)(2D)


14 pines + 2 (E y T)
19 conexiones
1Kbit (32x1) (2 ½ D)

16 conexiones
1Kb (1024x1) 2 ½ D
Encapsulado de chips …
RAM 16x8 2D
Encapsulado de chips
Organizaciones para una pastilla de 256K: 32K x 8(2D) y 256K x 1(2½D).
Ejemplo: chip 27010 EPROM de
Intel
Las líneas para direccionar 128K
palabras, 17 pines (A0 a A16).
Las líneas para leer los datos de salida.
Se necesita un total de 8 pines (D0 a D7).
Suministro de energía (Vcc).
Un pin de Tierra (GND).
El chip select (CS).
El output select (OS).
El pin de programa (PGM). Inicialmente
y después de cada "borrado" del chip,
El pin de voltaje de programa (Vpp),
que se administra durante la
programación.
Un pin No utilizado (NC).
Intel 51C256L 256Kx1-bit RAM.
Din y Dout: Para recibir o
Leer el bit de la memoria
RW: Indica si la operación
Es lectura o Escritura
A0:A8 Solo 9 bits de Dir
Para 256 k?
(RAS:Row Address Select)
(CAS:Column Address
Select).
GND: Tierra
VCC: Voltaje
Encapsulado de chips
2½D
2D
Organización modular



#chips = #bits palabra
256K x 8 (2 ½ D)
18 dirección a 8 chips c/u provee un bit
Arreglo de chips
1M x 8 RAM 2 ½ D
Ejercicio Organización Modular
2½D

Proporcione un diagrama de bloque para una
memoria de 256Kbx16, utilizando chips de memoria
de 64Kbx1. Coloque todas las lineas necesarias, así
como el MAR y el MDR.



Determine los datos necesarios para el chip de 64Kx1 y
realice el diagrama
Forme un módulo con los chips de forma que se ajuste al
tamaño de palabra. Da el diagrama del módulo.
Usando módulos, genere el diagrama de bloque para la
memoria de forma que su capacidad sea de 256Kx16.
Memoria Caché




Velocidad ejecución CPU depende de velocidad transferencia de datos.
Problema: CPU más rápido que Memoria.
Solución ideal: memoria construida con tecnología utilizada en registros del
CPU (muy costoso).
Solución real: memoria pequeña y rápida localizada entre el CPU y la
memoria (Memoria Caché).

La memoria caché explota el principio de
localidad:

Programadores no accesan la memoria de forma
completamente aleatoria.

Común el acceso de localidades de memoria contigua
una o varias veces.
 Ej: Ciclo de instrucciones.

Por lo tanto, las referencias a memoria en un intervalo
de tiempo corto tienden a utilizar sólo una fracción de
la memoria.

Esas fracciones son las que se busca tener cargadas
en memoria caché.
La memoria cache y principal
CPU
Transferencia de
Palabra
Cache
Transferencia de
Bloque
La memoria
principal
Principio de Localidad

Las referencias a memoria realizadas en
un intervalo de tiempo corto tienden a usar
sólo una fracción de la memoria total
también conocido como bloque de
memoria.
Estructura de la memoria cache y principal
Direcciones
de memoria
Número
Slot
Datos
0
1
2
3
Bloque
(k palabras)
Etiqueta
Bloque
0
1
2
Longitud del bloque
(k palabras)
Bloque
2n - 1
Tamaño Palabra
El Mapeo



Mapa, mapear, proyectar, corresponder.
Transferir un conjunto de objetos de un lugar a
otro. Por ejemplo los módulos de programas en
el disco son proyectados (“mapeados”) en la
memoria.
Relacionar un conjunto de objetos con otro. Por
ejemplo, una estructura de base de datos lógica
se proyecta sobre la base de datos física.
El algoritmo de mapeo en caché




Existen menos slots caché que bloques de
memoria principal, por lo que se necesita un
algoritmo para mapear bloques de memoria
principal en los slots de la caché.
Técnica para determinar cual bloque de memoria
principal ocupa que slot de caché.
La elección del algoritmo de mapeo nos dice como
se encuentra organizada la caché.
Dos técnicas


directa,
asociativa.
El mapeo directo





A cada bloque de memoria principal se le mapea
dentro de un solo slot de la caché.
Evita la búsqueda poniendo cada bloque en un slot,
cuyo número se puede calcular a partir del número
de bloque.
Mapeo expresado a partir de
slot caché = (número bloque) % (total slots caché)
Ventaja: eliminan problema de búsqueda.
Desventaja: como saber cuál de los diferentes
bloques que corresponden a un slot lo esta
ocupando.
Esquema mapeo
directo
Memoria principal: 12 bloques
Bloque 11
Bloque 10
Bloque 9
Bloque 8
Bloque 7
Bloque 6
Bloque 5
Bloque 4
Bloque 3
Bloque 2
Bloque 1
Bloque 0
Memoria caché: 3 slots
slot = bloque % (numero slots)
slot = bloque %3
slot 2
slot 1
slot 0
Por lo que los slots almacenarán:
slot 0: bloque 0 bloque 3 bloque 6 bloque 9
slot 1: bloque 1 bloque 4 bloque 7 bloque 10
slot 2: bloque 2 bloque 5 bloque 8 bloque 11
Interpretación dirección


Las direcciones de memoria principal tienen dos
interpretaciones
Interpretación memoria principal
 dos campos: bloque y palabra
bloque

Interpretación memoria caché
 se divide el campo bloque, lo que proporciona tres
campos: etiqueta, slot y palabra
etiqueta

palabra
slot
palabra
Ejemplo dirección 12 bits: 101010101010 (3 palabra, 6 slot)
 memoria principal:
101010101 010
 memoria caché: 101 010101 010
Organización caché
mapeo directo
s+w
Dirección Memoria
Etiqueta Línea Palabra
s-r
r
Memoria Principal
Mem. Caché
Etiqueta Datos
W0
W1
W2
W3
L0
w
B0
s-r
s
x
Comparar
x
(escondida en
caché)
(puesta en
caché)
w
Li
w
W4j
W(4j+1)
W(4j+2)
W(4j+3)
Bj
Un primer escenario






Tamaño direcciones: 6 bits
Tamaño palabra: 8 bits = 1 byte
Tamaño memoria principal: 26=64 bytes
Tamaño memoria caché: 25=32 bytes
Tamaño del bloque: 4 bytes
Calculando:
 Bloques en memoria principal:
 Slots en memoria caché:
64/4=16 bloques
25=32/4=8 slots
B15
111111
111110
111101
111100
3
2
1
0
:
B7
3
2
1
0
B6
3
2
1
0
B5
3
2
1
0
B4
3
2
1
0
B3
3
2
1
0
B2
3
2
1
0
B1
3
2
1
0
B0
3
2
1
0
011111
011110
011101
011100
011011
011010
011001
011000
010111
010110
010101
010100
010011
010010
010001
010000
001111
001110
001101
001100
001011
001010
001001
001000
000111
000110
000101
000100
000011
000010
000001
000000
Esquema Escenario 1
etiqueta
L7
L6
L5
L4
L3
L2
L1
L0
bloque almacenado
0
1
Interpretación dirección:
Memoria caché:
etiqueta slot
palabra
Memoria principal:
bloque
palabra
2
3
Segundo Escenario





Tamaño caché: 64 Kbytes=64x210 bytes = 26x210 bytes = 216
bytes
Tamaño bloques: 4 bytes
Tamaño palabra: 1 byte
Memoria principal: 16Mbytes =16x220 bytes =224 bytes
Calculando
 Tamaño direcciones =


Número bloques en memoria principal:
Número de slots en caché:
16Mbytes/4bytes=4M bloques=222 Bloques

por lo que la caché esta organizada en cada uno
64Kbytes/4bytes= 16k slots= 214 slots
214 slots de 4 bytes
Segundo ejemplo mapeo directo
Dirección
Etiqueta Slot+Palabra
Dato
Etiqueta
FFFC
FFF8
FF
~
11223344
~
~
01
FF
FFFC
FFF8
0008
0004
0000
FFFC
FFF8
Número Slot
12345678
11223344
3FFF
3FFE
~
0008
0004
0000
00
01
00
01
Dato
87654321
11235813
13579246
0002
0001
0000
12345678
~
~
8 bits
(14 bits)
32 bits
Palabra caché 16K
11235813
Dirección Memoria Principal
~
Bloque
22
~
Palabra
2
00
0008
0004
0000
87654321
13579246
16 MBytes de Memoria Principal
Dirección Memoria Caché
Etiqueta
8
Slot
14
Palabra
2
Línea Cache
0
1
.
.
.
.
m-1
Línea Cache
0
1
.
.
.
.
3FF
Bloques de memoria principal asignado
0,m, ....., 2s-m
1,m+1,.....,2s-m+1
.
.
.
.
m-1, 2m-1, ....., 2s-1
Bloques de memoria principal asignado
000000,010000,.....,FF0000
000001,010001,.....,FF0001
.
.
.
.
00FFFC,01FFFC,.....,FFFFFC
Mapeo Asociativo



Permite que un bloque de memoria principal se
cargue en cualquier slot de la caché.
La lógica de control de la caché interpreta una
dirección de memoria como una etiqueta y una
palabra.
La etiqueta solo identifica un bloque en la memoria
principal.
etiqueta
palabra
Mapeo asociativo (cont)




Para verificar si el bloque esta cargado, el control
de lógica debe examinar simultáneamente cada
slot de la memoria caché.
Existe flexibilidad en el hecho de que bloque
remplazar cuando un nuevo bloque es accedido.
Se tienen algoritmos de reemplazamiento para
maximizar el desempeño.
Principal desventaja: la complejidad de la
circuitería requerida para examinar todos las
etiquetas de los slots de la caché.
Esquema mapeo asociativo
Memoria principal: 12 bloques
Bloque 11
Bloque 10
Bloque 9
Bloque 8
Bloque 7
Bloque 6
Bloque 5
Bloque 4
Bloque 3
Bloque 2
Bloque 1
Bloque 0
Memoria caché: 3 slots
verificación en todos
los slots de la caché
slot 2
slot 1
slot 0
Los slots pueden almacenar:
slot 0: bloque 0,1,2,3,4,5,6,7,8,9,10,11
slot 1: bloque 0,1,2,3,4,5,6,7,8,9,10,11
slot 2: bloque 0,1,2,3,4,5,6,7,8,9,10,11
Organización caché
asociativa
s+w
Memoria Principal
Mem. Caché
Etiqueta Datos
Dirección Memoria
Etiqueta
Palabra
s
L0
w
...
Comparar
W0
W1
W2
W3
B0
s
x
w
x
Li
(escondida en
caché)
s
Lm-1
(puesta en
caché)
w
W4j
W(4j+1)
W(4j+2)
W(4j+3)
Bj
Ejemplo mapeo asociativo
Dirección
Dato
Etiqueta
FFFFFC
FFFFF8
FFFFF4
24682468
11223344
33333333
~
FFFFFC
0000000
FFFFF4
~
87654321
Número Slot
24682468
1234567
33333333
~
3FFF
3FFE
3FFD
~
16339C
FFFFF8
1633A0
16339C
163398
Dato
22 bits
87654321
11223344
32 bits
0001
0000
(14 bits)
Palabra caché 16K
~
~
Dirección Memoria Principal
000008
000004
000000
12345678
16 MBytes de Memoria Principal
Etiqueta
22
Palabra
2
Algoritmos de Reemplazo

Asignación slot caché a bloque recién accedido:



mapeo directo: slot ya esta asignado
mapeo asociativo: necesario un algoritmo de reemplazo
Cuatro opciones para asociativo




LRU Least Recently Used
 cada slot utiliza un bit de uso
FIFO First In First Out
 implementado fácilmente como round-robin o buffer circular
LFU Least Frequently Used
 asociar un contador a cada slot
Random
 simulación: desempeño ligeramente inferior a los otros
algoritmos
Políticas de escritura en caché

Vigilancia del bus con escritura inmediata


Transparencia de Hardware


Actualización inmediata de memoria con monitoreo por
parte de los demás procesadores
Hardware adicional para sincronizar todas las cachés y la
RAM
Memoria excluída del caché

Solo una porción de la memoria principal se comparte con
más de un procesador. La memoria compartida nunca se
copia a caché.
Número de cachés

Caché de dos niveles:


L1 Interna (caché on chip)
L2 Externa (caché off chip)

Pueden ser utilizadas, una para cargar las
instrucciones y la otra los datos
Organización de Caché



80386 no tiene caché on chip
80486 Incluye caché on chip
Pentium: 2 cachés on chip (L1): una para
datos y otra para instrucciones (8kbytes y un
a tamaño de línes de 32 bytes), y una caché
L2 (256kbytes a 1 mbyte)