Jerarquia De Memoria

 
    Una  forma de solucionar  los  problemas descritos  en  el item anterior  es mediante  la creación de  una jerarquía de memorias. El cuadro  anteriormente visto,  muestra que si las   memorias de los computadores fueran tan rápidas como   sea  posible   haría   de   los  computadores artículos demasiado caros, por otro lado, si los computadores  fueran  más  lentos, entonces perderían todo su potencial. Por lo tanto la solución es compatibilizar velocidad con costo. Esto se logra con la creación de a lo menos tres niveles o jerarquías diferentes de memoria.  

    Como se puede ver en el siguiente diagrama la Jerarquía de Memorias soluciona el problema del costo al hacer disminuir considerablemente el precio total de las memorias.  


 

El siguiente ejemplo sirve para entender mejor el concepto de Jerarquía de Memoria

    Habitualmente al manejar los números telefónicos es común saber algunos de memoria (los que más se utilizan), por otro lado los teléfonos que me sirven, los llevo en una agenda, sin embargo, todos los teléfonos disponibles están en la guía telefónica la que solo se consulta cuando es necesario. Si llevamos este ejemplo al caso de las memorias tenemos lo siguiente.

Memoria CACHE = Teléfonos que más utilizo

Memoria Principal = Teléfonos que me sirven

Disco duro = Guía telefónica

    Unido al concepto de Jerarquía de Memoria esta el concepto de Localidad el cual queda más claro si se explica con un ejemplo.

    Es común que al buscar a un amigo pensemos que para encontrarlo es más probable ubicarlo en lugares como su casa o su lugar de trabajo. Es esta probabilidad  de  encontrar  las  cosas  en  un  entorno  común lo que se llama Localidad. La Localidad se relaciona con dos parámetros opuestos que a continuación se definen.  

HIT RATIO (H): La Razón de Acierto permite entregar una medida de la eficiencia de los diferentes niveles de memoria o dicho de otra forma es el porcentaje de requerimientos que es satisfecho por un nivel dado de memoria.  

T = Ht1 + (1 – H) t2
 
Donde:

t1 es el tiempo de acceso del nivel 1

t2 es el tiempo de acceso del nivel 2

En general las razones de acierto son altas (Superiores al 90 %) aunque las memorias sean cada vez más pequeñas.  

MISS : (perder, extrañar) MISS: Razón de desacierto, significa que la información buscada no se encuentra en ese nivel.

MISS = (1 – H)  

El siguiente ejemplo mide el tiempo de acceso a la memoria.  

10 ns tiempo de acceso a la cache.
100 ns tiempo de acceso a la memoria principal.

10 ms tiempo de acceso al disco duro.

T = 0.9 x 10ns +0.1 [0.9 x 100ns + 0.1 x 10ms] = 100.018 micro segundos  

    Se aprecia en el resultado, que la distancia entre la velocidad de la memoria cache(aprox. 10 ns) y la velocidad en el tiempo de acceso a memoria(100.018 m s), son muy diferentes, por lo tanto, no se estaría cumpliendo con el requisito de que las memorias deben ser rápidas. La solución a este problema radica en el hecho de que no se debe considerar al Disco Duro como memoria.  

El siguiente cálculo se efectúa sin considerar al Disco Duro, y como se puede ver, en este caso si nos aproximamos a la velocidad de la memoria cache, lo cual soluciona el problema de la velocidad.

T = 0.9 * 10 ns + 0.1 * 100 ns = 19 ns

  

  El concepto de Memoria Virtual consiste en que el procesador ve más memoria de la que realmente existe, se puede relacionar con un espejo, es decir se ve pero no esta. Trabaja creando un espacio de intercambio entre la memoria principal y el disco duro.

Multitarea: Aparentemente se ejecuta más de un proceso a la vez, sin embargo, esta apariencia se debe a la gran velocidad de ejecución de las tareas.

Memoria CACHE   ---------> Hardware (circuitos)  

Memoria Virtual   ------------->Sistema Operativo