Este documento describe la jerarquía de la memoria de un sistema de computación, incluyendo la memoria caché de varios niveles, la memoria RAM principal y la memoria de almacenamiento secundario como los discos duros. Explica los diferentes tipos de mapeo de memoria, como el mapeo directo, totalmente asociativo y por conjunto, para asignar bloques de la memoria principal a la memoria caché.
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Jerarquía de la memoria desde registros hasta disco duro
1. JERARQUIA DE LA MEMORIA
GLORIA MARIA SALAMANCA
Arquitectura de Hardware
2. Memoria virtualDisco duro
Memoria RAM
Kington
Memoria Caché
Registros del Procesador
Imagen tomada de
https://tecnolowikia.wikispaces.com/Memoria+Cache
L1
L2
L3
La memoria de primer nivel se divide
en 2 partes, una para instrucciones y
otra parte de datos, la velocidad
que maneja entra entre los 64k y los
246kb
La memoria de segundo nivel se
enfoca a los programas del sistema,
esta llega a superar los 2mb de
velocidad
La memoria de tercer nivel es un tipo
de memoria mas lenta con respecto
a las otra memorias de los otros
niveles
3. MAPEADO DE MEMORIA PRINCIPAL
DEFINICION DE MAPEO
En el momento de pasar los datos desde la memoria principal a la memoria cache, este
proceso se ejecuta por bloques. El motivo de llevar los datos por bloques se debe si el
procesador pide el dato de la dirección a entonces es probable que después pida el
dato de la dirección a+1, por lo tanto, se ahorra tiempo al llevar los datos por bloques a
la cache. Por otro lado la memoria Cache es de poca capacidad, en relación con la
memoria principal, por lo tanto cobra importancia el tema de que y como ponen datos
en la memoria Cache. Es necesario entonces contar con un proceso de conversión de
las direcciones, que se llama MAPEO.
Existen los siguientes tipos de Mapeo
Mapeo Directo
Mapeo Asociativo (totalmente asociativo)
Mapeo Asociativo por conjunto
4. Mapeo Directo
El Mapeo Directo funciona de la siguiente forma :
Según 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 también 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
En el bloque cero de la cache pueden ir cualquiera de los múltiplos 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.
5. Mapeo Totalmente Asociativo
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, razón por la cual
este tipo de mapeo no se utiliza en la práctica.
6. Mapeo Asociativo Por Conjunto (De tamaño 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 memoria cache tiene dividido sus bloques en dos nuevos bloques (0 y 1)
que reciben el nombre de SET. Esta nueva distribución significa que para
buscar un dato se debe acceder a tantos subconjuntos como tenga cada
SET (en este caso 2). En la práctica esto se traduce en duplicar el hardware
de búsqueda (solo para este caso). Cabe destacar que la mayoría de las
memorias tienen TAG de tamaño 4.
El tamaño del SIC es igual a N / S donde N = Tamaño del cache en bloques,
S = Tamaño del conjunto.
SIC = SET in cache