Sei sulla pagina 1di 9

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

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 (es de mentira)

y y y

MM 512B ----> 9b 64 bloques MC 32B ------> 5b 4 bloques Cada bloque de 8B


El Mapeo Directo funciona de la siguiente forma :

y y y y

y y y y y

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 ml tiplos 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 1 1 0 0

BIC 1 0 1

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

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 ca so es muy real) entonces, el siguiente detalle.
y y y

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 693873 2 (0069E06C) entonces resultara la siguiente tabla de ubicacin

TAG = 6

BIC = 13

WIB = 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 prcti ca 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 :
y y y y

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

TAG 1 0 1 0 0

SIC 1

WIB 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 memo ria. Buscar la direccin 5382196Dec (00522034 Hex)
y y y y

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

Mas informacin: www.depeca.uah.es/docencia/INGECA/mm/docu/Microp/MPs-Cache-2pp.pdf http://profesores.elo.utfsm.cl/~tarredondo/info/comp-architecture/C13_Memoria.pdf

Hay diversas formas de organizar la cach [Byte, Aug 1994], segn la direccin a la que van a parar los bloques de memoria. Los datos se transfieren en bloques (habitualmente de 64 bits), un bloque en la cach se denomina lnea. Una cach est organizada en lneas; el problema principal es decidir en qu lnea de la cach se va a almacenar un bloque de memoria determinado. Segn esto, las cachs tienen tres tipos.

Mapeo directo: se divide la direccin de memoria (32 bits, por ejemplo) en 3 partes. Los ltimos bits (6, por ejemplo) determina el offset dentro del bloque. Los siguientes 10 bits determinan la lnea de la cach en la cual se va a almacenar, el resto, denominado tag, se almacena junto con la lnea de la cach. De esta forma, a partir de la direccin de memoria de calcula directamente la lnea de cach en la cual est almacenada; se comprueba el tag a ver si coincide, y si no se genera un fallo de pgina. Tiene el pro blema denominado data thrashing, en el cual dos bloques de memoria se pelean por ocupar la misma lnea en la cach. Plenamente asociativa: cualquier bloque se puede colocar en una lnea de cach determinada; el tag se almacena junto con el bloque. Para ve r si un bloque est en la cach, hay que comprobar uno por uno todos los tags. Por ello, se utiliza el llamado TLB, o translationlookaside buffer, que almacena las posiciones de los bloques referenciados ms recientemente. Normalmente se elimina de la cach el bloque menos recientemente referenciado. Asociativa por conjuntos: en este caso, la cach se divide en conjuntos; cada conjunto tiene varias lneas, y dentro de ellos, se comporta como si fuera una cach plenamente asociativa. Los bits de enmedio de la direccin determinan en qu conjunto de la cach se va a introducir cada bloque. Si es una asociativa por conjuntos de n vas, eso significa que hay n lneas en cada conjunto, necesitndose por tanto dos comparaciones de tags para saber si un bloque est almacenado o no.

La organizacin de una cach determina sus prestaciones; una cach de tamao n con mapeo directo tiene la misma eficiencia que una de tamao n/2 asociativa por conjuntos.

En algunos casos la cach est dividida en cach de datos y cach de instrucciones; dado que un programa tiene implcitamente dos punteros, el de programa y el de acceso a datos, almacenados en alguna otra parte, esta separacin tiene sentido. Sin embargo, la proporcin de cach dedidaca a datos y a programa es fija, con lo cual puede ser ms eficiente una cach genrica. Mas informacin:
http://geneura.ugr.es/~jmerelo/CyE/motherb2.htm

AUTORES: LAURA ESQUEDA EYLEEN HERNANDEZ NISSER OLIVO


Tabla de paginacinDe Wikipedia, la enciclopedia libre Saltar a navegacin, bsqueda Las tablas de paginacin o tablas de pginas son una parte integral del Sistema de Memoria Virtual en sistemas operativos, cuando se utiliza paginacin. Son usadas para realizar las traducciones de direcciones de memoria virtual (o lgica) a memoria

real (o fsica) y en general el sistema operativo mantiene una por cada proceso corriendo en el sistema. En cada entrada de la tabla de paginacin (en ingls PTE, Page TableEn try) existe un bit de presencia, que est activado cuando la pgina se encuentra en memoria principal. Otro bit que puede encontrarse es el de modificado, que advierte que la pgina ha sido modificada desde que fue trada del disco, y por lo tanto deber guardarse si es elegida para abandonar la memoria principal; y el bit de accedido, usado en el algoritmo de reemplazo de pginas llamado Menos Usado Recientemente (LRU, leastrecentlyused). Tambin podran haber otros bits indicando los permisos que tiene el proceso sobre la pgina (leer, escribir, ejecutar). Dado que las tablas de paginacin pueden ocupar un espacio considerable de la memoria principal, estas tambin podran estar sujetas a paginacin, lo que da lugar a una organizacin paginada de mltiple s niveles (o tabla de pginas multinivel). En los sistemas con un tamao de direcciones muy grande ( 64 bits ), podra usarse una tabla de pginas invertida, la cual utiliza menos espacio, aunque puede aumentar el tiempo de bsqueda de la pgina. Las tablas son mantenidas por el sistema operativo y utilizadas por la Unidad de Gestin de Memoria (MMU) para realizar las traducciones. Para evitar un acceso a las tablas de paginacin, hay un dispositivo llamado Buffer de Traduccin Adelantada (TLB, Translation Lookaside Buffer), acelerando el proceso de traduccin.

Entra en esta direccin all hay un buen material no lo descargue porque se me fue difcil: http://es.scribd.com/doc/58636148/Tablas-de-Paginacion

Potrebbero piacerti anche