You are on page 1of 12

Mapeo de memoria

DECODIFICACION

Introduccin
Estructura bsica de buses (Arquitectura Von Newman)

Figura 1

Estructura bsica con circuito decodificador

El circuito decodificador nos permite proveer a las memorias y los dispositivos de I/O de una zona
exclusiva del mapa de memoria del micro. Cualquier dispositivo que se conecte al
microprocesador, debe disponer de una bus de direcciones menor al que provee el micro, de esta
manera podemos, para un dispositivo dado, distinguir dos tipos de lneas de direccionamiento.
- Lneas de direccionamiento externa, son las encargadas de diferenciar el dispositivo del resto
(dispositivo 1, 2 o 3 de la Figura 2), de esta forma puedo tener varios en un sistema de buses
y acceder a uno en especial por medio de estas lneas y un circuito decodificador.
- Lneas de direccionamiento interno, son las que se conectan directamente al dispositivo.

Por ejemplo en caso del dispositivo 1 de la Figura 2, este grupo de lneas darn la posicin interna
del casillero a leer o escribir, estas lneas corresponden a la parte mas baja de la palabra de
direccionamiento.
Figura 2
Circuito decodificador de dos memorias
(Se omitieron bus de control y dato)

En el circuito de la Figura 3 vemos que las lneas de direccionamiento interno correspondientes


a los 12 bits menos significativos del total se comparten entre todos los dispositivos, la seleccin
de una de las dos memorias la realiza
las lneas externas a travs de sendas compuertas OR de cuatro entradas.
El mapa ampliado del circuito queda formado de la siguiente manera:

El microprocesador tendr ubicada dentro de su mapa de direcciones las dos memorias en forma
consecutivas.
Ejercicio Nro 1
Se dispone de un microprocesador de 64Kb de direccionamiento, se desea implementar:
1 CI de memoria RAM de 8 Kb.
1 CI de memoria RAM de 8 Kb.
1 CI de memoria ROM de 16 Kb.
Partiendo desde la posicin 0000h.
Realizamos los mapas de Memoria Reducido y Ampliado con el circuito de decodificacin.

Mapa Reducido

Mapa Ampliado

A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 Direc. Disp

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00000 RAM
0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 01FFF 8K

0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 02000 RAM
0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 03FFF 8K

0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 04000 ROM
0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 07FFF 16K
MAPEO

Al pasar los datos desde la memoria principal a la memoria cache estos se traen por
bloques. El motivo de llevar los datos por bloques se debe a que, por ejemplo, si el
procesador pide el dato de la direccin n entonces es muy probable que despus pida el
dato de la direccin n+1, por lo tanto, se ahorra tiempo al llevar los datos por bloques a la
cache. Por otro lado como ya hemos visto en los prrafos anteriores la memoria Cache es de
poca capacidad, en relacin con la memoria principal, por lo tanto cobra importancia el
tema de que y como pongo datos en la memoria Cache. Es necesario entonces contar con un
proceso de conversin de las direcciones, que se llama MAPEO.

Mapeo Directo
Mapeo Asociativo (totalmente asociativo)
Mapeo Asociativo por conjunto

Mapeo Directo

Para explicar, el mapeo directo es mejor comenzar con un ejemplo, que por el momento,
es slo, ilustrativo y no tiene relacin con la realidad

MM 512B ----> 9b 64 bloques


MC 32B ------> 5b 4 bloques
Cada bloque de 8B

El Mapeo Directo funciona de la siguiente forma :

Segn las condiciones antes definidas se tiene lo siguiente: cada bloque ser de 8
Byte, es decir 8 palabras de largo 8.
La memoria principal al ser dividida por 8 (512 B / 8) dar como resultado 64
bloques de 8 palabras cada uno.
La memoria Cache tambin se divide por 8 (32B / 8), lo cual da como resultado 4
bloques
Cada bloque de la memoria principal se coloca dentro de uno de los bloques de la
memoria Cache siguiendo un orden establecido de la siguiente forma (La fig 00
muestra parte de esta asignacin):
En el bloque cero de la cache pueden ir cualquiera de los mltiplos exactos de 4
(0,4,8,12,16,20,24,28,32,36,40,44,48,52,56,60), que son 16.
En el bloque uno de la cache van (1,5,9,13,17,21,25...............)
En el bloque dos (2,6,10,14,18,22,26..................................)
En el bloque tres van (3,7,11,15,19,23,27..................)
Para distinguir entre las 16 alternativas que corresponden a un bloque determinado
de la memoria cache existe una memoria, en este caso de 4 bit, que lleva el registro.
Esta memoria se denomina TAG.

Si por ejemplo se quiere acceder a la posicin de memoria 405 se ocupa la siguiente tabla
de ubicacin.

TAG BIC WIB

1 1 0 0 1 0 1 0 1 =
405
El WIB es de 3 bit por que con estos se pueden distinguir entre 8 alternativas, es decir las
que corresponden a las divisiones de un bloque.
El BIC es de 2 bit porque se pueden distinguir cuatro alternativas, o sea los cuatro bloques
de la cache.
El TAG, finalmente distingue entre las 16 alternativas que corresponden a los diferentes
bloques de la memoria principal que pueden ir a parar a un bloque determinado de la
cache.

El diagrama de la fig ilustra el mapeo directo. Aqu se puede apreciar como las
posiciones de la memoria principal son asignadas a los bloques de la cache, por otro lado la
flecha que apunta desde la posicin cero de la MM indica como cada bloque de la memoria
principal esta dividido en otros ocho sub bloques.
Finalmente no slo basta con llevar los datos a las posiciones de la cache, adems el
procesador de alguna forma debe ubicar los datos, ya sea que los encuentre o no, en la
cache.
NOTA : Cabe destacar que el procesador pide datos al mismo tiempo tanto a la cache como
a la memoria principal, por lo tanto si el dato esta en la cache esta responder ms rpido
que la MM.

El siguiente hardware permite al procesador ubicar los datos que requiere.

Ejemplo
Un procesador 80386 tiene 32b de direcciones, lo que quiere decir que puede direccionar
4GB de memoria. Obviamente es difcil que un procesador con las caractersticas del 386
pueda direccionar tal cantidad de memoria. Supondremos (la suposicin en este caso es
muy real) entonces, el siguiente detalle.

Memoria Principal 8 MB
Memoria Cache 128 KB (17 b)
Los bloques en este ejemplo sern de tamao 16b (WIB = 4 b)

8 MB = 8.388.608 / 16 = 524.288 (19 b) Nmero de bloques de la MM

128 KB = 131.072 / 16 = 8.192 (BIC = 13 b) Nmero de bloques de la MC


524.288 / 8192 =64 Este nmero corresponde al TAG (6 bit). Dicho de otra forma hay 64
bloques de 16 unidades cada uno compitiendo por un determinado bloque de la cache.
Si el procesador pide la direccin 6938732 (0069E06C) entonces resultara la siguiente
tabla de ubicacin

WIB =
TAG = 6 BIC = 13
4

22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

1 1 0 1 0 0 1 1 1 1 0 0 0 0 0 0 1 1 0 1 1 0 0

Eventualmente el TAG podra haber sido de hasta 15 bit debido a que el bus de
direcciones es de 32 bit, pero como ya dijimos esto no es posible, por otro lado si la
memoria TAG tuviera que manejar estos 15 bits debera ser muy grande lo cual tampoco es
conveniente.

NOTA : En los procesadores, el tamao del TAG determina la cantidad de memoria que se
puede direccionar, por lo tanto, an cuando el TAG del problema anterior resulto de 6 bit,
normalmente pueden ser un poco mas grandes. No olvidemos que actualmente las
memorias de 64 MB son normales y las hay an mas grandes.

VENTAJAS: Este mtodo es rpido, fcil de implementar y sencillo de usar.

DESVENTAJA : Con este sistema se produce un efecto llamado Contencin que se produce
cuando dos cosas quieren usar un mismo elemento. Este efecto reduce drsticamente el
rendimiento del procesador.

Mapeo Totalmente Asociativo


La fig explica la diferencia que existe entre una memoria asociativa y una memoria
comn.

En el mapeo Totalmente Asociativo un bloque de la memoria Principal puede estar en


cualquier bloque de la cache. Para buscar un dato en la cache se hace necesario entonces
revisar todos los bloques de la cache, lo cual es muy lento, razn por la cual este tipo de
mapeo no se utiliza en la prctica.

Mapeo Asociativo Por Conjunto (De tamao 4)

En el mapeo Asociativo por Conjunto un determinado bloque de la memoria principal


puede estar en cualquier bloque de la memoria cache, que sea parte del conjunto que le
corresponde. La siguiente figura, grfica esta situacin

Como se puede ver la memoria cache tiene dividido sus bloques en dos nuevos bloques
(0 y 1) que reciben el nombre de SET. Esta nueva distribucin significa que para buscar un
dato se debe acceder a tantos subconjuntos como tenga cada SET (en este caso 2). En la
prctica esto se traduce en duplicar el hardware de bsqueda (solo para este caso). Cabe
destacar que la mayora de las memorias tienen TAG de tamao 4.

El tamao del SIC es igual a N / S donde N = Tamao del cache en bloques, S = Tamao del
conjunto.
SIC = SET in cache

Ejemplo Buscar la direccin 333 suponiendo las siguientes condiciones :

MM 512B 9b 64 bloques
MC 32B 5b 4 bloques
Cada bloque de 8B
Tamao de conjunto 2

TAG SIC WIB

1 0 1 0 0 1 1 0 1

WIB es de tamao 3 porque distingue entre las 8 palabras de cada bloque.


SIC es de tamao 1 porque debe distinguir entre 2 alternativas o en este caso conjuntos.
TAG es de tamao 5 porque debe distinguir las 32 alternativas que pueden encontrarse en
un determinado conjunto. Cabe recordar que estas 32 alternativas se buscan
simultneamente en los dos bloques que tienen, en este caso, cada conjunto.

Ejemplo: Un procesador 80386 tiene 32b de direcciones, lo que quiere decir que puede
direccionar 4GB de memoria. Buscar la direccin 5382196Dec (00522034 Hex)

Memoria Principal (MM) 8 MB


Memoria Cache (MC) 128 KB (17 b)
Los bloques en este ejemplo sern de tamao 16b (WIB = 4b)
Tamao de conjunto 4
8 MB = 8.388.608 / 16 = 524.288 Nmero de bloques de la MM
128 KB = 131.072 / 16 = 8.192 Nmero de bloques de la cache
8192 / 4 = 2048 (SIC = 11 bit) Numero de conjuntos de tamao 4 que hay en la cache.
Para ahorrar espacio en la fig. solo se graficaron 9 de los bit del TAG

TAG = 17 SIC = 11 WIB = 4

23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

0 1 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 1 0 1 0 0

Finalmente para encontrar un dato se debe comparar el TAG que viene del procesador
con los 4 TAG del conjunto 515 (nmero que corresponde al SIC)

You might also like