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