Professional Documents
Culture Documents
DECODIFICACION
Introduccin
Estructura bsica de buses (Arquitectura Von Newman)
Figura 1
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)
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
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
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.
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.
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)
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.
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.
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
MM 512B 9b 64 bloques
MC 32B 5b 4 bloques
Cada bloque de 8B
Tamao de conjunto 2
1 0 1 0 0 1 1 0 1
Ejemplo: Un procesador 80386 tiene 32b de direcciones, lo que quiere decir que puede
direccionar 4GB de memoria. Buscar la direccin 5382196Dec (00522034 Hex)
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)