memoria - departamento de electrónicaprofesores.elo.utfsm.cl/.../paralelo2/c13_memoria.pdf ·...

Post on 11-May-2020

3 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

Memoria

2

Memoria

Organización de memorias estáticas.

3

Memoria

En memoria físicas con bus de datos sea bidireccional.

4

Memoria

Decodificación en dos niveles.

5

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.

6

Memoria Caché

Principio de localidadLos 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

7

Memoria Caché

Principio de localidadLocalidad Temporal (localidad en el tiempo)

Si un elemento es referenciado, volverá a ser referenciado pronto.

Localidad Espacial (localidad en el espacio) Si un elemento es referenciado los elementos

cuyas direcciones están próximas tenderán a ser referenciados pronto.

8

Memoria Caché

Principio de localidadEn 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.

9

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.

10

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.

11

Memoria Caché

Jerarquía de Memoria.

CPU

Memoria

Memoria

Memoria

Más rápidaMás pequeñaMayor costo

Más lentaMás GrandeMenor costo

Estructura Básica

12

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.

13

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é.

14

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.

15

Memoria Caché

Cache de mapeo directo.

16

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.

17

Memoria Caché

Cache de mapeo directo.

18

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.

19

Memoria Caché

Tratamiento de fallosLa unidad de control debe detectar los fallosProcesarlos 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é:

20

Memoria Caché

Tratamiento de fallos1. Calcular valor de PC-42. Indicar a memoria principal que realice una lectura y

esperar que la memoria complete su acceso.3. Escribir en la entrada de la caché

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.

1. Reiniciar la ejecución d la instrucción

21

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é.

22

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.

23

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.

24

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é)

25

Memoria Caché

Caché asociativa.Para encontrar un bloqueTres partes de una dirección en una caché

asociativa por conjuntos o correspondencia directa.

Etiqueta ÍndiceDesplazamiento

bloque

26

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.

27

Memoria Caché

Caché asociativa.

28

Memoria Caché

Caché asociativaCaché asociativa por conjuntos de cuatro vías

se requiere cuatro comparadores y un multiplexor.

29

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

30

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

31

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.

32

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)

33

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.

34

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.

35

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.

36

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.

37

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.

38

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.

39

Memoria Virtual

Tabla de páginasPara 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.

40

Memoria Virtual

Tabla de páginas

41

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).

42

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.

43

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.

top related