C13_Memoria

Anuncio
Memoria
1
Memoria

Organización de memorias estáticas.
2
Memoria

En memoria físicas con bus de datos sea
bidireccional.
3
Memoria

Decodificación en dos niveles.
4
Memoria Caché
Necesidad de cantidades ilimitadas de
memoria rápida.
 Crear la ilusión de una gran memoria a la
que podamos acceder tan rápidamente
como a una memoria muy pequeña.

5
Memoria Caché

Principio de localidad
 Los
programas acceden a una parte
relativamente pequeña de su espacio de
direcciones en cualquier instante de tiempo.
 Dos tipos de localidad:
Localidad Temporal
 Localidad Espacial

6
Memoria Caché

Principio de localidad
 Localidad

Si un elemento es referenciado, volverá a ser
referenciado pronto.
 Localidad

Temporal (localidad en el tiempo)
Espacial (localidad en el espacio)
Si un elemento es referenciado los elementos
cuyas direcciones están próximas tenderán a ser
referenciados pronto.
7
Memoria Caché

Principio de localidad
 En
los programas la localidad surge de
estructuras sencillas y naturales.
 Por ejemplo:
Bucles  localidad temporal
 Instrucciones que se acceden en forma secuencial
 localidad espacial
 Acceso a los datos, elementos de un arreglo.

8
Memoria Caché

Jerarquía de Memoria.
 Consta
de múltiples niveles de memoria con
diferentes velocidades y tamaños.
 Memorias rápidas son más caras y pequeñas.
 La memoria principal se implementa a partir
de memorias más lentas.
 Los niveles más próximos a la CPU (cachés)
utilizan memorias más pequeñas y rápidas.
9
Memoria Caché

Jerarquía de Memoria.
 Debido
a las diferencias de costo y tiempo de
acceso, es ventajoso construir la memoria
como una jerarquía de niveles.
 La memoria más rápida cerca del procesador
y la más lenta debajo de las más rápida.
 ilusión de una memoria tan grande como la
mayor, pero con tiempo de acceso igual a la
memoria más rápida.
10
Memoria Caché

Jerarquía de Memoria.
CPU
Estructura Básica
Memoria
Más rápida
Más pequeña
Mayor costo
Memoria
Memoria
Más lenta
Más Grande
Menor costo
11
Memoria Caché

Jerarquía de Memoria.
 Una
jerarquía de memoria puede estar
formada múltiples niveles, pero los datos e
copian cada vez solamente entre dos niveles
adyacentes.
 La unidad mínima de información se
denomina bloque, se transfiere un bloque
completo cuando se copia algo entre niveles.
12
Memoria Caché
Cache de mapeo directo.
(Tamaño de bloque igual a uno)

 Cada
palabra puede estar exactamente en
una posición de la caché.
 Se asigna la posición de la caché en base a
la dirección que tiene la palabra en memoria.
 Cada posición de la memoria le corresponde
exactamente una posición en la caché.
13
Memoria Caché
Cache de mapeo directo.
(Tamaño de bloque igual a uno)

 Para
saber si el dato de la caché corresponde
a la palabra solicitada, se añade un conjunto
de etiquetas a la caché.
 Para reconocer si un bloque de caché no
tiene información válida, es necesario añadir
un bit de validez.
14
Memoria Caché

Cache de mapeo directo.
15
Memoria Caché

Cache de mapeo directo.
(Tamaño de bloque igual a una potencia de dos)
 Para aprovechar la localidad espacial el
bloque de la cache contiene varias palabras
adyacentes(una potencia de dos).
 Los bits dedicados a la administración de la
cache(válido, marca) disminuyen al aumentar
el tamaño del bloque.
16
Memoria Caché

Cache de mapeo directo.
17
Memoria Caché

Caché directa y con bloque de una palabra
 Aciertos

y fallos son simples
Caché con un tamaño de bloque mayor de una
palabra.
 Hace
disminuir la taza de fallos.
 Mejora la eficiencia de la caché.
 Reduce cantidad de memoria para las etiquetas.
18
Memoria Caché

Tratamiento de fallos
 La
unidad de control debe detectar los fallos
 Procesarlos y buscar el dato en memoria.

Fallos de una instrucción en un camino
de datos multiciclo o segmentado.
 Pasos
que se realizan en un fallo de
instrucción de la caché:
19
Memoria Caché

Tratamiento de fallos
1.
Calcular valor de PC-4
Indicar a memoria principal que realice una lectura y
esperar que la memoria complete su acceso.
Escribir en la entrada de la caché
2.
3.



1.
Dato procedente de memoria en la porción del dato de
entrada.
Escribir bits superiores de dirección en el campo etiqueta.
Bit de validez a 1.
Reiniciar la ejecución d la instrucción
20
Memoria Caché

Tratamiento de fallos
 El
procesamiento de un fallo genera una detención.
 Incrementar el tamaño del bloque mejora el
rendimiento.
 La tasa e fallos cae cuando aumentamos el tamaño
del bloque.
 La tasa de fallos puede aumentar si el tamaño del
bloque se hace muy grande comparado con el
tamaño de la caché.
21
Memoria Caché

Caché asociativa.
 En
una caché asociativa por conjuntos hay un
número fijo de posiciones (mínima dos) donde
puede ubicarse cada bloque.
 Una caché asociativa por conjuntos con n
posiciones para un bloque se denomina una
caché asociativa por conjuntos de n vías.
22
Memoria Caché

Caché asociativa.
 Una
caché asociativa por conjuntos de n vías
consta de una serie de conjuntos, cada uno
de los cuales consta de n bloques.
 Cada bloque de la memoria se corresponde a
un único conjunto en la caché dada por el
campo índice, y un bloque puede ser
sustituido en cualquier elemento de ese
conjunto.
23
Memoria Caché

Caché asociativa.
 En
una caché asociativa por conjuntos, el
conjunto que contiene un bloque está dado
por:
(Número de bloque) módulo (número de conjuntos en la caché)
24
Memoria Caché

Caché asociativa.
 Para
encontrar un bloque
 Tres partes de una dirección en una caché
asociativa por conjuntos o correspondencia
directa.
Etiqueta
Índice
Desplazamiento
bloque
25
Memoria Caché

Caché asociativa.
 Cada
bloque de la caché lleva una etiqueta
que indica la dirección del bloque.
 La etiqueta de cada bloque de la caché que
puede contener la información deseada es
comprobada para ver si corresponde a la
dirección del bloque de la CPU.
26
Memoria Caché

Caché asociativa.
27
Memoria Caché

Caché asociativa
 Caché
asociativa por conjuntos de cuatro vías
se requiere cuatro comparadores y un
multiplexor.
28
Memoria Caché

Rendimiento caché
Tiempo de CPU = (ciclos de reloj de
ejecución CPU + ciclos de reloj de
detención memoria) x Duración ciclo de
reloj
Ciclo de reloj de detención-memoria =
ciclos de detención de lectura + ciclo
de detención de escritura
29
Memoria Caché

Rendimiento caché
Ciclos de detención de lectura =
(lecturas/programa) x (tasa de fallos de
lectura) x (penalización de fallos de
lectura)
Ciclos de detención de escritura =
(Escrituras/Programa) x ( tasa de fallos
de escritura) x ( penalización fallos de
escritura) + detenciones del buffer de
escritura
30
Memoria Caché

Rendimiento caché
Si se considera que penalización por
fallos de escritura y lectura son las
mismas y detenciones del buffer son
despreciables.
31
Memoria Caché

Rendimiento caché
Ciclos de reloj detención-memoria = (acceso
memoria/programa) x (tasa de fallos) x
(penalización de fallos)
Ciclos
de
reloj
detención-memoria
=
(instrucciones/programa) x (fallos/instrucciones)
x (penalización fallos)
32
Memoria Virtual
La memoria principal actúa como una
cache para el almacenamiento secundario
en discos magnéticos.
 Se desea disponer de un ambiente
eficiente y seguro para compartir la
memoria entre diversos programas y
disponer de una memoria mayor que la
física para la ejecución de programas y
procesamiento de los datos.

33
Memoria Virtual


Esto puede lograrse ya que si se tienen varios
programas en ejecución, éstos sólo usan (en un
cierto intervalo de tiempo) una pequeña parte de
la memoria que requieren, a pesar de que la
suma de los requerimientos totales de memoria,
de todos ellos, puedan exceder la memoria
física disponible.
El sistema operativo debe permitir a los
programas compartir la memoria y garantizar
que cada programa no invada el espacio que
ocupan los otros.
34
Memoria Virtual


Además las direcciones físicas que serán
asignadas a los segmentos activos de los
programas pueden ir cambiando en el tiempo;
para permitir esta forma de emplear la memoria,
cada programa, al ser compilado, emplea un
espacio propio de direcciones.
La memoria virtual es responsable de traducir
las direcciones del programa a direcciones
físicas.
35
Memoria Virtual




Permite que el espacio de direcciones del programa sea
mayor que el espacio de direcciones físico.
Se puede considerar que el programa compilado reside
en disco, y que sólo parte de esas direcciones del
programa están mapeadas en direcciones físicas.
Por esta razón un programa podría ser tan grande como
el espacio en disco que se le permita ocupar (lo cual
podría ser mucho mayor que la memoria física).
Esta "ilusión" de una memoria, prácticamente ilimitada,
la provee el sistema de memoria virtual.
36
Memoria Virtual
La organización de memoria virtual y
memoria cache es similar.
 Pero, por razones históricas se emplea el
concepto de página en lugar de bloque.
 La dirección de las instrucciones y datos
de
un
programa
se
denominan
direcciones virtuales, las cuales son
traducidas a direcciones físicas.

37
Memoria Virtual


Se requiere un hardware dedicado y segmentos del
sistema operativo para efectuar eficientemente el mapeo
de páginas virtuales a páginas físicas.
Para esto una dirección está dividida en campos:




el número de página y
la posición dentro de la página.
El ancho del campo para el offset dentro de la página
define el tamaño de ésta, y toma el mismo valor para la
dirección virtual y física.
Obviamente los bits dedicados al número de página en
una dirección virtual son mayores que los de las
direcciones físicas.
38
Memoria Virtual

Tabla de páginas
 Para
lograr la completa asociatividad se
emplea una Tabla de Páginas residente en
memoria, que tiene:
como índice el número de página virtual y
 como contenido el número de página física,
 además de un bit para indicar si la página está o
no presente en la memoria.

39
Memoria Virtual

Tabla de páginas
40
Memoria Virtual

Tabla de páginas
 Cada
programa tiene su propia tabla de páginas, y se
dispone un registro en el procesador para apuntar a
la tabla de página activa.
 Un programa en ejecución, se denomina proceso, y
requiere una tabla de página y el valor de los
registros (adicionalmente información sobre prioridad
de ejecución, estado del proceso, archivos que
emplea, etc.), el sistema operativo es responsable de
asignar memoria física y actualizar la tablas de
página de tal modo que los diferentes procesos
funcionen con sus propios espacios (es decir los
programas sólo pueden leer y escribir las porciones
de memoria principal que tienen asignadas).
41
Memoria Virtual

Tabla de páginas
 El
sistema operativo también es responsable de ir
activando, con cierta política de itineración los
diferentes procesos, de tal modo que sólo uno esté
activo durante cierto intervalo de tiempo, para esto
basta que mantenga información del estado de los
diferentes procesos.
 Específicamente
para activar el espacio de
direcciones basta actualizar el registro que apunta a
la tabla de páginas del proceso.
42
Memoria Virtual

Tabla de páginas
 En
caso de producirse una falla de página, se genera
excepción.
 El sistema operativo debe:


encontrar la página en el disco y
decidir dónde colocarla en la memoria principal.
 Para
facilitar esta tarea cuando se crea un proceso se
almacena en una zona del disco todas las páginas de
un proceso y a la vez una estructura de datos que
asocie la página virtual con la dirección física del
disco donde ésta se encuentra.
 Esta estructura puede ser la misma tabla de páginas
del proceso.
43
Descargar