You are on page 1of 31

Jerarqua del Subsistema

de Memoria
Introduccin

La memoria principal (main memory) es la parte del sistema


basado en microprocesador en donde residen los programas y los
datos que stos utilizan en el momento de su ejecucin.

Cuando se desea ejecutar un programa, como normalmente est


almacenado en un dispositivo de almacenamiento secundario, lo
primero que se hace es copiarlo en memoria.

Por ejemplo, el tamao mximo que puede tener la memoria fsica


de un ordenador viene determinado por el nmero de lneas de
direcciones que posee el procesador.
Introduccin

En algunos procesadores se diferencia el espacio de


direccionamiento de las posiciones de memoria del espacio de
direccionamiento utilizado para acceder a los recursos de los
dispositivos de Entrada/Salida

Dependiendo de la anchura del bus de datos se define la longitud


de palabra de la memoria como la cantidad de octetos que pueden
ser transferidos de forma simultnea en un ciclo de bus.

Si el bus de datos es de 32 bits, la transferencia de una palabra de


memoria constar de 4 bytes. Normalmente, la unidad de
informacin menor que puede ser transferida es el byte, por lo
tanto, cuando se tiene una direccin sta har referencia a un byte
de la memoria.
Introduccin

Cuanto antes lleguen las instrucciones y los datos desde la


memoria al procesador mayor ser la velocidad de ejecucin de los
programas. Para medir la Velocidad del sistema de memoria se
consideran los siguientes parmetros:

Tiempo de acceso: Tiempo mnimo que transcurre desde que


las direcciones se depositan en el bus y se recogen los datos,
en el caso de una lectura
Tiempo de ciclo: Tiempo mnimo que tiene que transcurrir entre
dos operaciones de memoria consecutivas

Es muy importante hacer un buen diseo del sistema de memoria


para minimizar estos tiempos y por tanto aumentar el rendimiento
del ordenador al mximo.
Introduccin

Otro aspecto que influye notablemente en el diseo del sistema de


memoria ha sido el aumento del espacio de direccionamiento de
los procesadores convencionales.

A medida que las necesidades de utilizacin de los sistemas


informticos han ido creciendo, los programadores han realizado
aplicaciones ms complejas con unos requerimientos de memoria
mayores.

Como para ejecutar un programa, su cdigo y sus datos deben


estar en memoria principal, se lleg rpidamente al caso de que la
memoria no era lo suficientemente grande como para satisfacer las
necesidades de un programa.
El Principio de Localidad
La observacin del comportamiento de todo programas revela la
fuerte tendencia de los accesos a memoria a estar agrupados en
regiones pequeas de memoria durante cualquier pequeo periodo
de tiempo.

Los programas no necesitan acceder a su cdigo ni a sus datos de


una vez con la misma probabilidad.

El principio de localidad asegura que los programas acceden


nicamente a una porcin relativamente pequea de su espacio de
direccionamiento durante un corto espacio de tiempo.

Por lo tanto existe una fuerte tendencia en los patrones de acceso


futuros a ser similares a los patrones ocurridos en el pasado
cercano.
El Principio de Localidad

Entonces, el principio de localidad surge de la estructura propia de


los programas.

Existen dos tipos diferentes de localidad:


Temporal: Si se hace referencia a un objeto, existe una cierta
tendencia a volver a referendario en un corto espacio de
tiempo .
Espacial: Si se hace referencia a un objeto, tambin tendern a
ser referenciados los dems objetos que estn ubicados en
direcciones prximas a ste.

Para aprovechar la localidad, se debe implementar la memoria


como una memoria jerrquica de manera que existan diferentes
niveles de memoria con distintos tamaos y velocidades.
El Principio de Localidad
Los programas se dividen en bloques de tamao fijo que se cargan
en la memoria ms rpida para aprovechar las ventajas del
principio de localidad.

Con esto, el objetivo que se persigue es que el usuario tenga la


mayor cantidad de memoria posible con la tecnologa ms
econmica, pero con el tiempo de acceso ofrecido por la memoria
ms rpida.

Las tecnologas que se usan para construir las memorias de las


capas ms cercanas de la jerarqua son las SRAM (Static Random
Access Memory) y a continuacin las DRAM (Dynamic Random
Access Memory) con sus mltiples variantes de acceso sncrono,
modo rfaga, etc. Las capas ms externas de la jerarqua de
memoria las constituyen los dispositivos de almacenamiento
masivo.
El Principio de Localidad

Debido al principio de localidad temporal, la mayora de las veces


se encuentra el dato en la memoria ms rpida, ya que es bastante
probable que el dato haya sido accedido anteriormente.

La jerarqua de memoria puede constar de varios niveles, pero los


datos siempre se van a copiar entre dos niveles adyacentes. Por
simplicidad, aunque no se pierde generalidad, se va a considerar
nicamente el nivel superior y el nivel inferior.
El Principio de Localidad

Cuando el procesador busca un dato en la memoria se pueden


producir dos situaciones:

1. Acierto (Hit): Los datos estn en el nivel superior. La tasa de


aciertos (hit rate) define la fraccin de los accesos a memoria
en los que se han encontrado los datos en el nivel superior.
2. Fallo (Miss o fault): Los datos no estn en el nivel superior. Por
tanto se debe acceder al inferior para traer el bloque que los
contiene. Se define la tasa de fallos (miss rate) como 1 menos
la tasa de aciertos.
El Principio de Localidad

Ya que con la estructura jerrquica principalmente se persigue


obtener un mayor rendimiento en el sistema, hay que tener muy en
cuenta la velocidad con que se procesan los aciertos y los fallos.
Se define por tanto:

Tiempo de acierto o Hit time: tiempo necesario para acceder a


los datos en el nivel superior, incluyendo el tiempo necesario
para determinar si es un acierto o un fallo.
Tiempo de fallo o Miss time: tiempo que se tarda en sustituir un
bloque, incluyendo tambin el tiempo utilizado en pasarlo al
microprocesador. Este parmetro es mucho mayor que el
anterior.
Memoria cach

Ante la inmensa velocidad de los procesadores que a medida del


tiempo se va incrementando, el lmite es mayor entre la
transferencia de la memoria principal (RAM) y el microprocesador;
ante esto se plantearon algunas soluciones, una de ellas fue
incrementar la velocidad de la RAM y otra, quiz la ms ptima,
agregar un nuevo componente al sistema: la memoria cach.

Este tipo de memoria de poca capacidad (entre 8 KB y 12 MB


segn el tipo de microprocesador) se incorpora en la placa base
y/o microprocesador para agilizar los procesos entre la memoria
central o principal del sistema y el microprocesador.
Memoria cach

La memoria cach es una clase de


memoria RAM esttica (SRAM) de
acceso aleatorio y alta velocidad,
situada entre el P y la DRAM.
Estadsticamente la cach
suministra la informacin necesaria
al microprocesador entre un 80 y un
99% de las ocasiones
La memoria cach es unas 4 20
veces ms rpida que la DRAM,
pero su capacidad es mucho menor.
Su precio es elevado, hasta 10 20
veces ms que la memoria principal
para la misma capacidad.
Memoria cach

Los ordenadores tienden a utilizar las mismas instrucciones y (en


menor medida), los mismos datos repetidamente, por ello la cach
contiene las instrucciones ms usadas. Por lo tanto, a mayor
instrucciones y datos que se requiera, el microprocesador puede
obtenerlas directamente de la memoria cach, entonces tanto ms
rpido ser el funcionamiento del sistema.

La memoria cach se carga desde la RAM con los datos y/o


instrucciones que ha el microprocesador en las ltimas
operaciones. El microprocesador siempre busca primero la
informacin en la cach, lo normal es que se encuentre ah la
mayora de las veces, con lo que el acceso ser muy rpido. Pero
si no encuentra la informacin en la cach, se pierde un tiempo
extra en acudir a la RAM y copiar dicha informacin en la cach
para su disponibilidad.
Memoria cach

Como estos fallos ocurren


con una frecuencia
relativamente baja, el
rendimiento mejora
considerablemente, ya que
la CPU accede ms veces
a la cach que a la RAM.

En el siguiente diagrama
se describe un proceso
cuando la CPU requiere
operacin de lectura de
una instruccin, para ello
se presentan dos casos:
Memoria cach

A parte de la cach con respecto a la memoria RAM, en un PC


existen muchos otros sistemas de cach, como:

Memoria RAM como cach: Las unidades de almacenamiento


(discos duros, discos flexibles, etc.) y otros muchos perifricos
utilizan la memoria RAM como sistema de cach, una zona de
la RAM contiene la informacin que se ha buscado
ltimamente en dichos dispositivos, de forma que basta con
acceder a la RAM para recuperarla.
Disco duro como cach: Se emplea al disco duro como cach
a dispositivos an ms lentos (unidades CD-ROM). Estos
sistemas de cach suelen estar gobernados mediante
software, que se suele integrar en el sistema operativo.
Memoria cach

Habitualmente en los 486i se incorporaba este tipo de memoria en


formato DIL (Dual In Line), aunque en las placas base PENTIUM la
tendencia fue a usar zcalos para insertar la memoria requerida
por el usuario.

Inicialmente la memoria cach se implementaba en la placa base


para luego formar parte de la arquitectura del microprocesador.

Los subsistemas de cach en los diseos de computadoras de hoy


da pueden ser de niveles mltiples; esto es, puede haber ms de
un conjunto de cach entre el P y la memoria principal. Los
niveles de cach a menudo estn enumerados, con los nmeros
menores ms cercanos al P.
Memoria cach

En los sistemas basados en microprocesador se pueden


implementar los siguientes niveles de memoria cach:

La cach L1 o cach de primer nivel es aquella que est


implementada en el propio microprocesador (arquitectura del
procesador) y se ejecuta a la misma velocidad que el CPU.
La cach L2 o cach de segundo nivel es la que se encuentra
en la placa base (en el caso del PENTIUM II, esta cach se
encuentra en la "placa de circuito impreso del propio
microprocesador) o usualmente hoy en da es parte del mdulo
de CPU (encapsulado del circuito integrado), se ejecuta a las
mismas velocidades que el CPU (o casi) y normalmente es un
poco ms grande y lenta que la cach L1.
Memoria cach
La cach L3 o cach de tercer nivel implementada en algunos
sistemas (normalmente servidores de alto rendimiento), puede
formar parte del encapsulado del circuito integrado o estar
implementada en la tarjeta madre del sistema. Como es
predecible, la cach L3 es ms grande (y casi con seguridad
ms lenta) que la cach L2.

Lo comn es que los sistemas tengan dos niveles de cach


(L1/L2). Puede haber CPUs que no incorporen cach L1, por tanto
la que se encuentra en la placa madre tiene que hacer las veces de
L1.

Cuando el microprocesador precisa de un dato, primero intenta


acceder a l a travs de la memoria L1, en caso de no conseguirlo
accede a la L2, de seguir sin xito pasa a la L3 y, por ltimo a la
RAM del sistema.
Memoria cach

La idea de la memoria cach es similar a la de la memoria virtual


en el sentido de que existe una pequea porcin de la memoria
principal que est duplicada en una memoria especial (llamada
memoria cach) de alta velocidad. El trmino cach se utiliza para
denominar al nivel superior de la jerarqua de memoria. Cuando se
genera una peticin de memoria, la peticin es presentada primero
a la cach, y si sta no proporciona el dato se le presenta entonces
a la memoria principal.

No siempre mayor tamao de cach es sinnimo de mayor


rendimiento, por ejemplo, los chipset de Intel HX, VX y TX para la
familia PENTIUM no permiten el uso de la memoria cach cuando
direccionan por encima de 64 MB, por lo que el usuario puede
encontrar sorpresas de prdida de velocidad de acceso al
aumentar la memoria.
Memoria cach
Memoria cach
Memoria cach
Memoria cach
Memoria cach
Memoria cach
Memoria cach

El funcionamiento de la cach es muy simple. Cuando el P enva


por primera vez una solicitud de lectura de una posicin de
memoria, se transfiere a la cach un conjunto de palabras (llamado
bloque) que contienen el dato referenciado.
Sucesivos accesos a cualquiera de las posiciones del bloque
hacen que su contenido se lea directamente de la cach.
La correspondencia que existe entre los bloques de la cach y las
posiciones de memoria principal la decide una funcin de mapa o
mapeo.
Cuando la cach se llena y se hace referencia a una palabra que
no est en la cach, se debe decidir qu bloque se elimina para
que el nuevo ocupe su lugar.
El conjunto de reglas que se utilizan para tomar esta decisin
constituye el algoritmo de reemplazo.
Memoria cach

No es necesario que el P tenga conocimiento de la existencia de


la cach. Al generar las direcciones, existe una circuiteria que
decide si el dato est en la cach o no. (Esta circuitera en los
sistemas comerciales se implementa en un integrado especial
llamado controlador de cach).

En las lecturas, si el dato est en la cach, la memoria principal no


interviene.
Sin embargo en las escrituras se puede actualizar
simultneamente tanto la cach como la memoria (caso de una
cach write-through) o se puede actualizar slo la cach y marcarla
como modificada actualizando luego la memoria principal (caso de
las caches wrte-back o copy-back).
Memoria cach

Los datos en la cach se agrupan en estructuras llamadas lneas o


bloques, cada uno de los cuales tiene asociada una etiqueta.
El tamao mnimo de un bloque es una palabra, sin embargo, para
aprovechar el principio de localidad espacial se suelen utilizar
bloques de varias palabras.
Esto es debido a que si los bloques tienen un tamao superior a
una palabra, cuando ocurre un fallo en la cach se traen a la cach
varias palabras adyacentes.
Debido a este principio los bloques que se acaban de copiar tienen
una gran probabilidad de ser necesitados en un corto espacio de
tiempo, con lo que se van a mejorar las tasas de acierto en los
accesos a la cach y por lo tanto el rendimiento del sistema de
memoria ser ms elevado.
Memoria cach

Los datos son copias de una parte de la memoria principal. Para


poder averiguar de qu parte se trata se utiliza la etiqueta, que
indica de alguna manera la direccin que ocupan en memoria estos
datos.
Cuando el procesador realiza una lectura, primero se buscan los
datos en la cach utilizando la etiqueta. Si se encuentran se ha
producido un acierto y el procesador lee los datos directamente de
la cach.
En caso contrario ocurre un fallo en la lectura y no hay ms
remedio que leer los datos de la memoria principal.
Las palabras de la cach y de la memoria principal se agrupan en
bloques de tamao constante.
Memoria cach

Para poder describir los algoritmos de mapeado con mayor


facilidad se utilizar la siguiente nomenclatura:

L : Nmero de Byte en un bloque


K : Nmero de bloques en un conjunto
N : Nmero de conjuntos en la cach

M = K*N : Nmero de bloques en la cach