Вы находитесь на странице: 1из 0

T E M A 2

Sistema de Memoria
2-2 Sistema de Memoria

Organizacin y Estructura del Computador II -OyECII
Indice
3.- INTRODUCCIN AL TEMA.................................................................................................................... 2-3
3.1.- CONCEPTOS BSICOS......................................................................................................................... 2-3
3.2.- TECNOLOGAS DE MEMORIA............................................................................................................... 2-3
3.3.- LOCALIDAD ....................................................................................................................................... 2-4
3.3.1.- Localidad de referencia a los datos del programa................................................................... 2-4
3.3.2.- Localidad de captacin de instrucciones.................................................................................. 2-6
3.3.3.- Resumen de localidad ............................................................................................................... 2-7
3.4.- JERARQUA DE MEMORIA ................................................................................................................... 2-8
3.4.1.- Haciendo "caching" en la jeraqua de memoria..................................................................... 2-10
3.4.2.- Resumen de conceptos de jerarqua de memoria.................................................................... 2-12
3.5.- MEMORIA CACHE ............................................................................................................................ 2-13
3.5.1.- Tipos de cache ........................................................................................................................ 2-14
3.5.2.- Funcin de Correspondencia.................................................................................................. 2-16
3.5.3.- Algoritmos de Sustitucin ....................................................................................................... 2-26
3.5.4.- Poltica de escritura................................................................................................................ 2-26
3.5.5.- Tamao de Bloque .................................................................................................................. 2-29
3.5.6.- Nmero de Cache.................................................................................................................... 2-29
3.5.7.- Impacto en el desempeo de los parmetros de la cach....................................................... 2-30
3.6.- MEMORIA VIRTUAL......................................................................................................................... 2-32
3.6.1.- Conceptos Bsicos .................................................................................................................. 2-32
3.6.2.- Direccionamiento fsico y Virtual ........................................................................................... 2-33
3.6.3.- Espacio de direcciones ........................................................................................................... 2-34
3.6.4.- Memoria Virtual La memoria virtual como una herramienta para realizar caching ............ 2-35
3.6.5.- La memoria virtual como una herramienta para la administracin de memoria .................. 2-41
3.6.6.- La memoria virtual como una herramienta para la proteccin de memoria ......................... 2-43
3.6.7.- Traduccin de direcciones...................................................................................................... 2-44
Cronograma de Actividades
Puntos Clase




Sistema de Memoria 2-3

Organizacin y Estructura del Computador II ER, JL

2.- Introduccin al Tema
- Conceptos bsicos.
- Tecnologas de memoria: Banco de registros del procesador (caractersticas bsicas);
Memorias RAM semiconductoras; Memorias de slo-lectura; Memorias asociativas.
- Localidad: Localidad de referencias en los datos del programa; Localidad en la captacin de
instrucciones; Resumen de la localidad.
- Jerarqua de memoria: Velocidad, tamao y costo; Haciendo caching en la jerarqua de
memoria; Resumen de los conceptos de jerarqua de memoria.
- Memoria cach: Organizacin genrica de la memoria cache; Tamao de la cach; Funcin de
correspondencia; Manejo de los fallos de cache; Algoritmos de sustitucin; Poltica de escritura;
Tamao de la lnea; Reduccin de la penalizacin de fallos con el uso de caches multinivel;
Caches en el chip del procesador; Cache unificada vs. cache de datos y cache de instrucciones;
Impacto en el desempeo de los parmetros de la cach; Caso de estudio: organizacin de la
cach en una mquina Pentium; Como escribir cdigo que aproveche la cache.
- Memoria virtual: Direccionamiento fsico y virtual; Espacios de direcciones; La memoria virtual
como una herramienta para realizar caching; La memoria virtual como una herramienta para la
administracin de memoria; La memoria virtual como

2.1.- Conceptos Bsicos
Ver Stalling
2.2.- Tecnologas de memoria
Tarea: Banco de registros del procesador (caractersticas bsicas); Memorias RAM
semiconductoras; Memorias de slo-lectura; Memorias asociativas.
2-4 Sistema de Memoria

Organizacin y Estructura del Computador II -OyECII
2.3.- Localidad

- Localidad temporal: un elemento referenciado tiende a ser referenciado nuevamente
pronto.
- Localidad espacial: los elementos cercanos a uno referenciado tienden a ser
referenciados pronto.
2.3.1.- Localidad de referencia a los datos del programa


Sistema de Memoria 2-5

Organizacin y Estructura del Computador II ER, JL


2-6 Sistema de Memoria

Organizacin y Estructura del Computador II -OyECII

2.3.2.- Localidad de captacin de instrucciones

Sistema de Memoria 2-7

Organizacin y Estructura del Computador II ER, JL


2.3.3.- Resumen de localidad




2-8 Sistema de Memoria

Organizacin y Estructura del Computador II -OyECII


2.4.- Jerarqua de memoria

Sistema de Memoria 2-9

Organizacin y Estructura del Computador II ER, JL


2-10 Sistema de Memoria

Organizacin y Estructura del Computador II -OyECII
2.4.1.- Haciendo "caching" en la jeraqua de memoria

Sistema de Memoria 2-11

Organizacin y Estructura del Computador II ER, JL


2-12 Sistema de Memoria

Organizacin y Estructura del Computador II -OyECII

2.4.2.- Resumen de conceptos de jerarqua de memoria

Sistema de Memoria 2-13

Organizacin y Estructura del Computador II ER, JL



2.5.- Memoria Cache
Debido a la gran velocidad alcanzada por los procesadores, la Memoria Principal del
computador no es lo suficientemente rpida para almacenar y transmitir los datos que el
procesador necesita, por lo que tendra que esperar a que la memoria estuviera disponible y
el trabajo se atrazara. Para evitarlo, se usa una memoria muy rpida, estratgicamente
situada entre el micro y la RAM: la memoria cach.
Esta memoria es unas 5 o 6 veces ms rpida que la RAM. Esto la encarece bastante, y
se es uno de los motivos por los cuales su capacidad es mucho menor que el de la RAM:.
Adems, se usa con una finalidad especfica. Cuando una computadora trabaja, el
microprocesador opera en ocasiones con un nmero reducido de datos, pero que tiene que
traer y llevar a la memoria en cada operacin. Si situamos en medio del camino de los datos
una memoria intermedia que almacene los datos ms usados, los que casi seguro
necesitar el procesador en la prxima operacin que realice, por lo tanto ahorrar mucho
tiempo del trnsito y acceso a la lenta memoria RAM; esta es la segunda utilidad de la
cach.
2-14 Sistema de Memoria

Organizacin y Estructura del Computador II -OyECII
La utilizacin de este tipo de memorias no es sino la generalizacin de un principio de
uso comn en la vida diaria; poner ms a mano las cosas de uso ms frecuente. Y se basa
en dos suposiciones que generalmente resultan ciertas:
Los procesadores tienden a utilizar las mismas instrucciones y (en menor
medida), los mismos datos repetidamente.
La informacin necesitada se encuentra almacenada de forma adyacente, o
cuando menos muy cercana, en memoria o disco.
2.5.1.- Tipos de cache
Desde el punto de vista del hardware, existen dos tipos de memoria cache; interna y externa. La
primera, denominada tambin cache primaria, cach de nivel 1 o simplemente cach L1 (Level
one). La segunda se conoce tambin como cache secundaria, cache de nivel 2 o cache L 2.
Desde el punto de vista funcional, existen cachs especficas de algunos dispositivos, por
ejemplo, de disco. Tambin se distingue entre cach de lectura y de escritura.
a) .- Cach interna
Es una innovacin relativamente reciente; en realidad son dos, cada una con una misin
especfica: Una para datos y otra para instrucciones. Est incluida en el procesador junto
con su circuitera de control, lo que significa tres cosas: Comparativamente es muy cara;
extremadamente rpida y limitada en tamao (los 386 tenan 8 KB, el 486 DX4 16 KB, y los
primeros Pentium 8 KB en cada una de las cachs internas). Como puede suponerse, su
velocidad de acceso es comparable a la de los registros, es decir, centenares de veces ms
rpida que la RAM.
b) .- Cach externa
Es ms antigua que la interna, dado que hasta fecha "relativamente" reciente estas
ltimas eran impracticables. Es una memoria de acceso rpido incluida en la placa base
que dispone de su propio bus y controlador independiente que intercepta las llamadas a
memoria antes que sean enviadas a la RAM (Buses locales).
La cach externa tpica es un banco SRAM ("Static Random Access Memory") de entre
128 y 256 KB. Esta memoria es considerablemente ms rpida que la DRAM ("Dynamic
Random Access Memory") convencional, aunque tambin mucho ms cara [5] (tenga en
cuenta que un aumento de tamao sobre los valores anteriores no incrementa
proporcionalmente la eficacia de la memoria cach). Actualmente (2004) la tendencia es
incluir esta cach en el procesador. Los tamaos tpicos oscilan entre 256 KB y 1 MB.
En 1.997, con la introduccin del procesador Pentium II, Intel abandon el denominado zcalo 7
utilizado hasta entonces en sus procesadores, en favor del denominado Slot-1. La razn argida
era precisamente la inclusin de la cach L 2 en la cpsula del procesador.
c) .- Cach de disco
Adems de las anteriores, que son de propsito general, existe una cach de
funcionalidad especfica que se aloja en memoria RAM estndar; es la cach de disco (nos
hemos referido a ella en la introduccin de este epgrafe). Destinada a contener los datos
Sistema de Memoria 2-15

Organizacin y Estructura del Computador II ER, JL

de disco que probablemente sean necesitados en un futuro prximo y los que deben ser
escritos. Si la informacin requerida est en chach, se ahorra un acceso a disco, lo que es
centenares de veces ms rpido (recuerde que los tiempos de acceso a RAM se miden en
nanosegundos y los de disco en milisegundos ( Unidades de medida).
Nota: Existe un mecanismo parecido al de cach de disco que aqu se describe pero que
funciona en sentido inverso. Es decir, aloja en disco los datos que no pueden ser almacenados
en la memoria RAM. Es el sistema de memoria virtual, al que nos referiremos al tratar de la
memoria.
El funcionamiento de la cach de disco se basa en dos esquemas de operacin. La lectura
adelantada ("Read-ahead") y la escritura retrasada ("Write-behind"). La primera consiste en
anticipar lo que se necesitar de forma inmediata y traerlo a la cach. Por su parte, la escritura
retrasada consiste en mantener los datos en cach hasta que se producen momentos de
desocupacin del sistema de disco. En este caso la cach acta como memoria tampn o
"buffer" intermedio, y no se obliga al subsistema a realizar fsicamente ninguna escritura, con lo
que las cabezas quedan libres para nuevas lecturas.
Puesto que los cachs de disco de escritura retrasada mantienen los datos en memoria voltil
despus que "supuestamente" se han escrito en el dispositivo, una cada accidental del sistema,
por fallo de energa o apagado intempestivo, puede producir prdidas de los datos alojados en la
cach en ese momento (es esta una de las razones por las que los sistemas Windows y Linux
exigen un proceso especial de apagado, que a veces tarda unos segundos, en los que
observamos una intensa actividad del sistema de disco).
Nota: La mayora de los lenguajes disponen de mtodos para forzar una escritura "real" de los
datos vaciando la cach de disco; suelen ser sentencias del tipo commit, flush etc. Es una
prctica de seguridad aconsejable, y seal de programacin cuidadosa, realizar un vaciado de
"buffers" despus de cada transaccin importante siempre que las circunstancias lo permitan


2-16 Sistema de Memoria

Organizacin y Estructura del Computador II -OyECII
2.5.2.- Funcin de Correspondencia
a) .- Correspondencia Directa
Esta tcnica es la ms simple y consiste en hacer corresponder cada bloque de memoria
principal a slo una lnea posible de cache.
El siguiente grfico muestra el proceso de lectura de un dato.
























Donde:
Primero (1): Se utilizan los bits de la direccin del dato a leer que corresponden a la lnea de
cache para ubicarnos en la lnea de cache donde se supone esta el dato.
Segundo (2): Se comparan los bits de la direccin del dato a leer que corresponden a la etiqueta
de esa lnea en particular de la cach (s-r). Con el fin de verificar s el bloque de memoria esta en
cache.
Etiqueta Lnea Palabra
W0
Memoria
Principal
W1
W2
W3
W4
W5
W6
W7
W2
n
-4
W2
n
-3
W2
n
-2
W2
n
-1
.
.
.
B
0

B
1

B
j-1

Etiqueta Datos











.
.
.
L
0

L
1

L
m-1
Memoria Cache
Comparador
1
r s-r
2
+
3
w
Acierto
s-r
+
s
w
s + w
3
No Acierto
Sistema de Memoria 2-17

Organizacin y Estructura del Computador II ER, JL

Tercero (3):
Si el bloque esta en cache, es decir la comparacin result verdadera (acierto de cache),
entonces esto implica que el dato a buscar esta en cache, luego con los bits que
corresponden a la palabra (w) se direcciona el dato en cache y se entrega al CPU.
Si el bloque no esta en cache, la comparacin result falsa (fallo de cache), esto implica que
el dato no esta en cache y debe buscarse en memoria principal. La idea ahora es buscar el
bloque de memoria principal donde se encuentra el dato, esto lo hacemos comparando los
bits que corresponden tanto a la etiqueta como a la lnea de cache (s), una vez ubicados en el
bloque se direcciona el dato en memoria principal, se entrega al CPU y el bloque de memoria
principal es cargado en cache, en la lnea que la direccin del dato especifica.
2-18 Sistema de Memoria

Organizacin y Estructura del Computador II -OyECII
Ejemplo: Correspondencia Directa, suponemos que tenemos las siguientes especificaciones:
Memoria principal de 32B (32 palabras de 8 bits)
La cache puede almacenar 8B
Los datos se transfieren entre la memoria principal y la cache en bloques de 2 bytes. Esto significa que la
cache esta organizada en 4 lneas de 2 bytes cada una.





































A
B0
B1
B2
B3
B4
B5
B6
B7
0 0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0 0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
C
D
B8
B9
B10
B11
B12
B13
B14
B15
Memoria Principal
B
Datos Etiqueta Lnea Palabra
2 1 2
Etiqueta Lnea Palabra
Direccin del dato en
Memoria Princiapal =
Solucin del problema:
a.- Cuantos bits necesitamos para cada byte dentro de las lneas de cach: 1 ya
que solo tenemos dos bytes por lnea.
b.- Cuantos bits necesitamos para cada lnea de cache: 2 ya que tenemos slo
4 lneas en cache.
c.- Como la cache puede contener slo 4 bloques de memoria a la vez y
tenemos 16 bloques de memoria en total, adems cada bloque debe
almacenarse en una lnea especifica entonces:
Cuantos bloques comparten la misma lneas? 16 bloques memoria/ 4
lneas = 4 bloques de memoria.
Cuantos bits necesitamos para identificar cada conjunto de bloques: 2
Una vez obtenidos esto valores podemos realizar la correspondencia entre
las lneas de cache y la direccin de memoria:





0
0
1
Etiqueta Datos # Lnea
Memoria Cache de 8 B
0
1
0
1 1
Lectura de un dato:
Supongamos que queremos leer el dato A, esto implica que el CPU
nos da la direccin: 01110 organizando esa direccin segn el grfico de
arriba:
11 0 01
Etiqueta Lnea Palabra
Lo primero que tenemos que hacer es verificar si el bloque esta en
cache,
Aplicamos el primer paso de lectura de un dato: tomamos los bits de la
direccin del dato que corresponden a la lnea (110 y nos ubicamos en





0
0
1
Etiqueta Datos # Lnea
Memoria Cache de 8 B
0
1
0
1 1
1
Sistema de Memoria 2-19

Organizacin y Estructura del Computador II ER, JL




































a.1.- Ventajas y Desventajas de la correspondencia directa:
La ventaja de esta correspondencia es que es simple y poco costosa, pero si el programa
intercambia datos entre los bloques B7 y B11, tendramos en cada intercambio fallos de
cache, accediendo a la memoria en cada fallo, con lo cual la tasa de aciertos sera baja y el
Tiempo de acceso a un dato es igual al Tiempo de acceso de cache ms el tiempo de
acceso a memoria, y esto desmejora el rendimiento del sistema.
A
B0
B1
B2
B3
B4
B5
B6
B7
0 0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0 0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
C
D
B8
B9
B10
B11
B12
B13
B14
B15
Memoria Principal
B
Datos Etiqueta Lnea Palabra Comaparamos el campo etiqueta de la direccin del dato con la etiqueta
de esa lnea en cach
2
11 0 01
Etiqueta Lnea Palabra





0
0
1
Etiqueta Datos # Lnea
Memoria Cache de 8 B
0
1
0
1 1
Como el bloque no esta en cache entonces se busca en memoria,
comparamos ahora el campo etiqueta+ lnea con las direcciones de
memoria para conseguir el bloque
3
11 0 01
Etiqueta Lnea Palabra
Una vez que tenemos el bloque se direcciona el dato dentro de eses
bloque usando el campo palabra y entrega al CPU, despus el dato es
cargado en memoria cache, en la lnea que indica el campo lnea de la
direccin del dato, resultando el siguiente mapa de cache.





0
0
1
Etiqueta Datos # Lnea
Memoria Cache de 8 B
0
1
0
0 1 B A 1 1
En general el nmero de la lnea donde se almacenar el bloque de
memoria se determina de la siguiente manera:
# Lnea = (# bloque memoria principal) MOD (# Lneas de cach)
# Lnea = 7 MOD 4 = 3; # Lnea = 11 MOD 4 = 3;
2-20 Sistema de Memoria

Organizacin y Estructura del Computador II -OyECII
b) .- Correspondencia Asociativa
Esta tcnica permite que cada bloque de memoria principal pueda cargarse en cualquier
lnea de cache.
El siguiente grfico muestra el proceso de lectura de un dato.






















Donde:
Primero (1): Se utilizan los bits de la direccin del dato a leer que corresponden al campo etiqueta
la se compara con cada etiqueta de cada bloque para verificar si el dato esta en cache.
Segundo (2): Si el bloque esta en cache, es decir la comparacin result verdadera (acierto de
cache), entonces esto implica que el dato a buscar esta en cache, luego con los bits que
corresponden a la palabra (w) se direcciona el dato en cache y se entrega al CPU.
Si el bloque no esta en cache, se realiza el mismo procedimiento que en la correspondencia
directa.

Etiqueta Palabra
W0
Memoria
Principal
W1
W2
W3
W4
W5
W6
W7
W2
n
-4
W2
n
-3
W2
n
-2
W2n -1
.
.
.
B
0

B
1

Bj
-1

Etiqueta Datos











.
.
.
L
0

L
1

L
m-1
Memoria Cache
Comparador
1
s
2
+
w
Acierto
+
s
w
s + w
No Acierto
w
3
Sistema de Memoria 2-21

Organizacin y Estructura del Computador II ER, JL










































A
B0
B1
B2
B3
B4
B5
B6
B7
0 0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0 0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
C
D
B8
B9
B10
B11
B12
B13
B14
B15
Memoria Principal
B
Datos Etiqueta Lnea Palabra
1 4
Etiqueta Lnea Palabra
Direccin del dato
en Memoria Princiapal
Solucin del problema:
a.- y b.- igual a correspondencia directa.
c.- Como la cache puede contener slo 4 bloques de memoria a la vez y
tenemos 16 bloques de memoria en total, adems un bloque de
memoria puede estar en cualquier lnea de cach, entonces tenemos
que buscar la forma de identificar el bloque dentro de la cache.
Cuantos bits necesitamos para identificar cada bloque: 4
Una vez obtenidos esto valores podemos realizar la correspondencia
entre las lneas de cache y la direccin de memoria:





0
0
1
Etiqueta Datos # Lnea
Memoria Cache de 8 B
0
1
0
1 1
Lectura de un dato:
Supongamos que queremos leer el dato A, esto implica que el CPU
nos da la direccin: 01110 organizando esa direccin segn el grfico de
arriba:
Lo primero que tenemos que hacer es verificar si el bloque esta en
cache,
Aplicamos el primer paso de lectura de un dato: tomamos los bits de la
direccin del dato que corresponden a la etiqueta (0111) y lo





0
0
1
Etiqueta Datos # Lnea
Memoria Cache de 8 B
0
1
0
1 1
1
0 0111
Etiqueta Lnea Palabra
Comparacin
simultnea.
0 0111
Etiqueta Lnea Palabra
2-22 Sistema de Memoria

Organizacin y Estructura del Computador II -OyECII


































b.1.- Ventajas y Desventajas de la correspondencia asociativa:
La ventaja de esta correspondencia es que mximiza las tasas de aciertos. La principal
desventaja es la compleja circuiteria necesaria para examinar en paralelo las etiquetas de
todas las lneas de la cache.


A
B0
B1
B2
B3
B4
B5
B6
B7
0 0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0 0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
C
D
B8
B9
B10
B11
B12
B13
B14
B15
Memoria Principal
B
Datos Etiqueta Lnea Palabra
Como el bloque no esta en cache entonces se busca en memoria,
comparamos ahora el campo etiqueta con las direcciones de memoria
para conseguir el bloque
Una vez que tenemos el bloque se direcciona el dato dentro de eses
bloque usando el campo palabra y entrega al CPU, despus el dato es
cargado en memoria cache, en la lnea que indica el campo lnea de
la direccin del dato, resultando el siguiente mapa de cache.
Etiqueta Datos
Memoria Cache de 8 B
El nmero de la lnea donde se almacenar el bloque de memoria se
determina mediante algoritmos de sustitucin.

Si queremos acceder a los datos del bloque B11, este puede ser cargado
en cualquier otro bloque. Resultando el siguiente mapa de cache.

2
0 0111
Etiqueta Lnea Palabra
Etiqueta Datos
Memoria Cache de 8 B
0 1011
Etiqueta Lnea Palabra
0 1




B A

0 1





0 1
1

1

B A
D C

0 1
1

0


Sistema de Memoria 2-23

Organizacin y Estructura del Computador II ER, JL

c) .- Correspondencia por Conjunto
Esta tcnica es una solucin que combina lo positivo de la correspondencia directa con lo
de la correspondencia asociativa, sin presentar sus desventajas. En este caso la cache se
divide en v conjuntos, cada uno de k lneas.
El siguiente grfico muestra el proceso de lectura de un dato.






















Donde:
Primero (1): Se utilizan los bits de la direccin del dato a leer que corresponden al conjunto de
cache para ubicarnos en el conjunto de cache donde se supone esta el dato (correspondencia
directa por conjunto)
Segundo (2): Se comparan los bits de la direccin del dato a leer que corresponden a la etiqueta
de ese conjunto en particular con todas las etiquetas del conjunto (s-d) (asociativa). Con el fin de
verificar s el bloque de memoria esta en cache.
Tercero (3): igual a correspondencia asociativa.

Etiqueta Conjunto Palabra



Bo
Memoria
Principal

B1



Bj-1
.
.
.

Etiqueta Datos


.
.








.
.
.
Conjunto

0
Memoria Cache
Comparador
1
d s-d
2
+
3
w
Acierto

+
s
+ w
s + w
3
Fallo
Conjunto

v-1
s-d
s-d
2-24 Sistema de Memoria

Organizacin y Estructura del Computador II -OyECII










































1 1 3
Etiqueta Conjunto Palabra
Direccin del dato en Memoria Princiapal =
Solucin del problema:
a.- Cuantos bits necesitamos para cada byte dentro de las lneas de cach:
1 ya que solo tenemos dos bytes por lnea.
b.- Cuantos conjuntos vamos a tener?: La relacin es la siguiente:
# conjuntos = # Lneas de cache / # lneas del conjunto. Si asuminos que
queremos 2 lneas por conjuntos entonces tenemos que:
# conjuntos = 4/2 = 2
c.- Cuantos bits necesitamos para representar cada conjunto: 1
Un grupo de bloques va a compartir el mismo conjunto y pueden estar
en cualquier lnea dentro del conjunto.
Cuantos bloques comparten el mismo conjunto? 16 bloques memoria/ 2
conjuntos = 8 bloques de memoria.
Cuantos bits necesitamos para identificar cada bloque en el conjunto: 3

Una vez obtenidos esto valores podemos realizar la correspondencia
entre las conjuntos de cache y la direccin de memoria:
Lectura de un dato:
Supongamos que queremos leer el dato A, esto implica que el CPU nos
da la direccin: 01110 organizando esa direccin segn el grfico de
arriba:
Lo primero que tenemos que hacer es verificar si el bloque esta en
cache,
Aplicamos el primer paso de lectura de un dato: tomamos los bits de la
direccin del dato que corresponden al conjunto (1) y nos ubicamos en
1
1 0 011
Etiqueta Conjunto Palabra






0
0
1
Etiq
ueta
Datos #
Conjunto
Memoria Cache de 8 B
1









0
0
1
Etiqueta Datos # Conjunto
Memoria Cache de 8 B
1



A
B0
B1
B2
B3
B4
B5
B6
B7
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0 0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0 0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
C
D
B8
B9
B10
B11
B12
B13
B14
B15
Memoria Principal
B
Datos Etiqueta Lnea Palabra
Sistema de Memoria 2-25

Organizacin y Estructura del Computador II ER, JL
















































0
0
1
Etiqueta Datos # Conjunto
Memoria Cache de 8 B
1



A
B0
B1
B2
B3
B4
B5
B6
B7
0 0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0 0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
C
D
B8
B9
B10
B11
B12
B13
B14
B15
Memoria Principal
B
Datos Etiqueta Lnea Palabra
Comaparamos el campo etiqueta de la direccin del dato con todas las
etiqueta de ese conjunto cach
2
Como el bloque no esta en cache entonces se busca en memoria,
comparamos ahora el campo etiqueta+ lnea con las direcciones de
memoria para conseguir el bloque
3
Una vez que tenemos el bloque se direcciona el dato dentro de ese
bloque usando el campo palabra y entrega al CPU, despus el dato es
cargado en memoria cache, en el conjunto que indica el campo conjunto
de la direccin del dato, resultando el siguiente mapa de cache.
En general el nmero del conjunto donde se almacenar el bloque de
memoria se determina de la siguiente manera:
# conjunto = (# bloque memoria principal) MOD (# conjuntos de cach)
# conjunto = 7 MOD 2 = 1; # conjunto = 11 MOD 2 = 1;
1 0 011
Etiqueta Conjunto Palabra
1 0 011
Etiqueta Conjunto Palabra
Memoria Cache de 8 B



1

1 B A
0
0
1
Etiqueta Datos # Conjunto
1


0
1


1

1 B A
0
0
1
0 1 D C 1


0
En general el nmero de lneas por conjunto es el caso ms comn y mejora
significativamente la tasa de aciertos. Si v=m y k=1 (v: # conjunto; m: #
lneas, k: # lneas por conjunto) esta tcnica se reduce a directa; si v=1 y k=m
esta tcnica se reduce a asociativa.
2-26 Sistema de Memoria

Organizacin y Estructura del Computador II -OyECII
2.5.3.- Algoritmos de Sustitucin
En la correspondencia Directa, no se aplica ningn algoritmo de sustitucin.
a) .- LRU (Least-Recently Used) Menos Recientemente Utilizado
Esta tcnica sustituye el bloque que se ha mantenido en la cache por ms tiempo sin
haber sido referenciado.
Este algoritmo es probablemente el que tiene ms tasa de aciertos.
b) .- FIFO (First-in First-out) Primero en Entrar, Primero en Salir
Este algoritmo sustituye aquel bloque que ha estado ms tiempo en cache.
S la organizacin de la cache es asociativa por conjunto se sustituye la lnea en cada conjunto.
Esto se puede implementar con una tcnica de Round-Robin o buffer circular.
c) .- LFU (Least- Frecuently Used) Menos Frecuentemente Utilizado:
Sustituye aquel bloque que ha experimentado menos referencias.
Se implementa asociando un contador a cada lnea.
d) .- Aleatoria
Esta tcnica no se basa en el grado de utilizacin del bloque, consiste simplemente en
escoger una lnea al azar(aleatoria) entre las posibles candidatas.
2.5.4.- Poltica de escritura
Antes de que pueda ser reemplazado un bloque que esta en la cache, es necesario considerar si
ha sido o no alterado en cache pero no en memoria principal.
Si ha sido modificado, esto significa que se ha realizado al menos una operacin de escritura
sobre una palabra de la lnea de cache.
Hay dos problemas:
1).- Un mdulo de E/S puede leer/escribir directamente de/en memoria.
2).- Si se tiene varios CPU conectados al mismo bus con caches independiente.
a) .- Escritura Inmediata
Con esta tcnica todas las operaciones de escritura se hacen tanto en cache como en
memoria principal, asegurando que el contenido de la memoria principal siempre es vlido.
Cualquier otro mdulo CPU-Cache puede monitorear el trfico a memoria principal para mantener
la coherencia con su propia cache.
Desventaja
Alto trfico a memoria principal que puede originar cuellos de botella.


Sistema de Memoria 2-27

Organizacin y Estructura del Computador II ER, JL

b) .- Post-Escritura:
Con esta tcnica, las actualizaciones se hacen slo en cache, cuando tiene lugar una
actualizacin, se activa un bit ACTUALIZAR asociado a la lnea. Despus cuando el bloque
es sustituido, es (post)escrito en memoria principal s y slo s el bit ACTUALIZAR esta
activo.
Desventaja
Los mdulos de E/S acceden a la cache en vez de a memoria principal, lo que origina
cuello de botella en cache.
c) .- Coherencia de Cache
Entre las posibles aproximaciones a la coherencia de cache se incluyen:
Vigilancia del Bus en escritura inmediata
Cada controlador de cache monitoriza las lneas de direccin para detectar operaciones e
escritura en memoria por parte de otros maestros del bus. Si otro maestro escribe en una
posicin de memoria compartida que tambin reside en la memoria cache, el controlador de
cache invalida el elemento de la cache. Esta estrategia depende del uso de una poltica de
escritura inmediata por parte de todos los controladotes de cache.
Transparencia de Hardware
Se utiliza hardware adicional para asegurar que todas las actualizaciones de memoria
principal, va cache, quedan reflejadas en todas las cache. As, si un procesador modifica
una palabra de su cache, esta actualizacin se escribe en memoria principal, adems de
manera similar se actualizan todas las palabras coincidentes de otras cache.
Memoria Excluida de Cache
Slo una porcin de memoria principal se comparte por ms de un procesador, y sta se
disea como no transferible a cache. En un sistema de este tipo, todos los accesos a la
memoria compartida son fallos de cache, porque la memoria compartida nunca se copia en
la cache. La memoria excluida de cache puede ser identificada utilizando lgica de seleccin
de chip o bits de direcciones altas.
La coherencia de cache es un campo activo de investigacin, y es probable que se
desarrollen en lo prximos aos formas ms sencillas y efectivas de asegurar la coherencia.
2-28 Sistema de Memoria

Organizacin y Estructura del Computador II -OyECII
d) .- Cuestiones en las escrituras



Sistema de Memoria 2-29

Organizacin y Estructura del Computador II ER, JL

2.5.5.- Tamao de Bloque
Bloques ms grandes reducen el nmero de bloques que caben en la cache. Dado que
cada bloque captado se escribe sobre contenidos anteriores de la cache, un nmero
reducido de bloques da lugar a que se sobreescriba sobre datos pocos despus de haber
sido captado.
A medida que un bloque se hace ms grande, cada palabra adicional esta ms lejos de la
requerida, y por tanto es ms improbable que sea necesaria a corto plazo.
2.5.6.- Nmero de Cache
a) .- Cache de uno o dos Niveles
La cache de un nivel significa tener una cache en el chip del procesador, a esto se le
denomina cache on-chip. En la cache de dos niveles se tienen dos cache una on-chip,
siendo esta el nivel uno y otra externa al procesador la que define el segundo nivel.
La razn por la cual se agrega otra cache es la siguiente: si el procesador pide un dato que no
esta en cache, entonces se tiene que acceder a la memoria DRAM o ROM a travs de bus, lo
cual incrementa el tiempo de espera. En cambio si tenemos una cache de dos niveles, si no esta
en la cache de nivel uno, entonces con frecuencia la informacin que falta se puede recuperar de
la cache de segundo nivel fcilmente, debido a que la cache de segundo nivel usa SRAM lo que
permite que el acceso sea ms rpido.
b) .- Cache unificada y partida
La cache unificada almacena tanto datos como instrucciones.
La cache partida separa los datos de las instrucciones, es decir tenemos una cache para
almacenar datos y otra para almacenar instrucciones.
Ventajas y Desventajas:
1. Par aun tamao dado de cache, una unificada tiene una tasa de aciertos mayor que
una partida.
Ya que nivela automticamente la carga entre captacin de instrucciones y de datos.
2. En la cache unificada slo se necesita disear e implementar una cache.
3. En la cache compartida no existe disputa entre el pre-cargador de instrucciones y la
unidad de ejecucin. En la unificada se degradan las prestaciones.


2-30 Sistema de Memoria

Organizacin y Estructura del Computador II -OyECII

2.5.7.- Impacto en el desempeo de los parmetros de la cach


Sistema de Memoria 2-31

Organizacin y Estructura del Computador II ER, JL





2-32 Sistema de Memoria

Organizacin y Estructura del Computador II -OyECII
2.6.- Memoria Virtual
2.6.1.- Conceptos Bsicos
La memoria virtual es una tcnica para proporcionar la simulacin de un espacio de
memoria mucho mayor que la memoria fsica de una mquina. Esta "ilusin" permite que los
programas se hagan sin tener en cuenta el tamao exacto de la memoria fsica.
La ilusin de la memoria virtual est soportada por el mecanismo de traduccin de
memoria, junto con una gran cantidad de almacenamiento rpido en disco duro. As en
cualquier momento el espacio de direcciones virtual hace un seguimiento de tal forma que
una pequea parte de l, est en memoria real y el resto almacenado en el disco, y puede
ser referenciado fcilmente.
Debido a que slo la parte de memoria virtual que est almacenada en la memoria
principal, es accesible a la CPU, segn un programa va ejecutndose, la proximidad de
referencias a memoria cambia, necesitando que algunas partes de la memoria virtual se
traigan a la memoria principal desde el disco, mientras que otras ya ejecutadas, se pueden
volver a depositar en el disco (archivos de paginacin).
La memoria virtual ha llegado a ser un componente esencial de la mayora de los S.O
actuales. Y como en un instante dado, en la memoria slo se tienen unos pocos fragmentos
de un proceso dado, se pueden mantener ms procesos en la memoria. Es ms, se ahorra
tiempo, porque los fragmentos que no se usan no se cargan ni se descargan de la memoria.
Sin embargo, el S.O debe saber cmo gestionar este esquema.
La memoria virtual tambin simplifica la carga del programa para su ejecucin llamado
reubicacin, este procedimiento permite que el mismo programa se ejecute en cualquier
posicin de la memoria fsica.
a) .- Hiperpaginacin
En un estado estable, prcticamente toda la memoria principal estar ocupada con
fragmentos de procesos, por lo que el procesador y el S.O tendrn acceso directo a la
mayor cantidad de procesos posibles, y cuando el S.O traiga a la memoria un fragmento,
deber expulsar otro. Si expulsa un fragmento justo antes de ser usado, tendr que traer de
nuevo el fragmento de manera casi inmediata. Demasiados intercambios de fragmentos
conducen a lo que se conoce como hiperpaginacin: donde el procesador consume ms
tiempo intercambiando fragmentos que ejecutando instrucciones de usuario. Para evitarlo el
S.O intenta adivinar, en funcin de la historia reciente, qu fragmentos se usarn con menor
probabilidad en un futuro prximo.
b) .- Principio de Localidad
Los argumentos anteriores se basan en el principio de cercana o principio de localidad
que afirma que las referencias a los datos y el programa dentro de un proceso tienden a
agruparse. Por lo tanto, es vlida la suposicin de que, durante cortos perodos de tiempo,
se necesitarn slo unos pocos fragmentos de un proceso.
Sistema de Memoria 2-33

Organizacin y Estructura del Computador II ER, JL

Una manera de confirmar el principio de cercana es considerar el rendimiento de un
proceso en un entorno de memoria virtual.
El principio de cercana sugiere que los esquemas de memoria virtual pueden funcionar.
Para que la memoria virtual sea prctica y efectiva, se necesitan dos ingredientes. Primero,
tiene que existir un soporte de hardware y, en segundo lugar, el S.O debe incluir un software
para gestionar el movimiento de pginas o segmentos entre memoria secundaria y memoria
principal.
Justo despus de obtener la direccin fsica y antes de consultar el dato en memoria
principal se busca en memoria-cache, si esta entre los datos recientemente usados la
bsqueda tendr xito, pero si falla, la memoria virtual consulta memoria principal , , en el
peor de los casos se consulta de disco (swapping).
2.6.2.- Direccionamiento fsico y Virtual

2-34 Sistema de Memoria

Organizacin y Estructura del Computador II -OyECII

2.6.3.- Espacio de direcciones

Sistema de Memoria 2-35

Organizacin y Estructura del Computador II ER, JL


2.6.4.- Memoria Virtual La memoria virtual como una herramienta
para realizar caching

2-36 Sistema de Memoria

Organizacin y Estructura del Computador II -OyECII

Sistema de Memoria 2-37

Organizacin y Estructura del Computador II ER, JL


2-38 Sistema de Memoria

Organizacin y Estructura del Computador II -OyECII

Sistema de Memoria 2-39

Organizacin y Estructura del Computador II ER, JL


2-40 Sistema de Memoria

Organizacin y Estructura del Computador II -OyECII


Sistema de Memoria 2-41

Organizacin y Estructura del Computador II ER, JL

2.6.5.- La memoria virtual como una herramienta para la
administracin de memoria

2-42 Sistema de Memoria

Organizacin y Estructura del Computador II -OyECII


Sistema de Memoria 2-43

Organizacin y Estructura del Computador II ER, JL


2.6.6.- La memoria virtual como una herramienta para la proteccin
de memoria


2-44 Sistema de Memoria

Organizacin y Estructura del Computador II -OyECII

2.6.7.- Traduccin de direcciones

Sistema de Memoria 2-45

Organizacin y Estructura del Computador II ER, JL



2-46 Sistema de Memoria

Organizacin y Estructura del Computador II -OyECII

Sistema de Memoria 2-47

Organizacin y Estructura del Computador II ER, JL

Вам также может понравиться