You are on page 1of 7

Estructura de Computadores

Universidad Carlos III de Madrid

TEMA 5

MEMORIA CACH

5.1 Funcionamiento de la memoria cach 5.2 Funcin de correspondencia 5.3 Rendimiento de la memoria cach 5.4 Tamao de lnea de cach 5.5 Algoritmos de reemplazo 5.6 Poltica de escritura

5.7 Niveles de memoria cach

5.1 FUNCIONAMIENTO DE LA MEMORIA CACH


El funcionamiento de la memoria cach se basa en mantener una copia de parte del contenido de la memoria principal. Cuando el procesador ejecuta una instruccin de acceso a memoria se comprueba si la palabra solicitada est almacenada en la memoria cach. En caso de ser cierto esta memoria enva los datos al procesador sin intervencin de la memoria principal, consiguiendo un tiempo de acceso reducido. En caso contrario es necesario acceder a la memoria principal (modo mucho ms lento que el anterior) Los datos estn organizados en bloques denominados lneas de cach. Cuando el procesador realiza un acceso sobre una palabra que origina un fallo de cach, se transfiere desde la memoria principal a la memoria cach el bloque completo que contiene la palabra. Posteriormente, la palabra es seleccionada dentro del bloque y enviada al procesador. As pues, la unidad de transferencia de informacin entre el procesador y la memoria cach es de una palabra, mientras que entre esta ltima y la memoria principal es de un bloque. El papel de la memoria cach es reducir el coste de las peticiones a memoria del procesador. Se denomina patrn de acceso a memoria de un programa al conjunto de posiciones de memoria accedidas durante la ejecucin del mismo. La mayor parte de los programas verifican que cuando un programa accede a una determinada posicin de memoria , es un probable que accesos futuros en realicen en posiciones prximas de memoria y cuando una determinada posicin es accedida por un programa , es probable que dicha posicin vuelva a ser accedida por el mismo programa en un futuro. La memoria principal y la cach es organizan en conjuntos de bytes contiguos. Se denota por bloque a cada uno de estos conjuntos de datos (los cuales son transferidos entre la memoria principal y la cach). En el caso de la memoria cach, se denomina lnea de cach al espacio de la memoria que permite almacenar el contenido de un bloque. La memoria contiene bytes, por lo que el nmero de bloques almacenados lneas de bytes cada una. es . La

memoria cach consta de

Estructura de Computadores

Universidad Carlos III de Madrid

5.2 FUNCIN DE CORRESPONDENCIA


Durante la ejecucin de un programa, cada vez que el procesador solicita una palabra que no est presente en la memoria cach, el bloque al que pertenece dicha palabra es copiado a una lnea de cach y, desde all, la palabra es transferida al procesador. La funcin de correspondencia por una parte establece en qu lnea de cach se va a ubicar el bloque solicitado y, por la otra, incorpora mecanismos para identificar unvocamente cada uno de los bloques almacenados en la memoria cach.

5.2.1 FUNCIN DE CORRESPONDENCIA DIRECTA


Esta funcin asocia una nica lnea de cach a cada bloque de memoria. Si es el nmero de bloque de memoria principal, entonces el nmero de lnea que tiene asociado viene dado por : .

Una direccin de memoria se divide en tres campos: etiqueta, lnea y byte. El primer paso consiste en utilizar el campo de lnea para direccionar la memoria cach y acceder as a la nica lnea en la que el bloque solicitado puede almacenarse. Junto al contenido del bloque, la memoria cach incorpora una zona de almacenamiento adicional para almacenar el campo de etiqueta del bloque. El contenido de este campo es comparado con el campo de etiqueta de la direccin solicitada (paso 2). En el caso de ser coincidentes, se produce un acierto de cach. En este caso la palabra solicitada dentro del bloque es accedida en la memoria cach utilizando el campo de byte (paso 3). Si el campo de etiqueta no es coincidente con el de la direccin solicitada, la lnea de cach contiene un bloque de memoria distinto. En este caso se produce un fallo de cach y es necesario acceder a la memoria principal (paso 4) para obtener el dato solicitado. De forma simultnea a este acceso, el bloque que contiene dicha palabra es transferido a la memoria cach, reemplazando al anterior.

Estructura de Computadores

Universidad Carlos III de Madrid

5.2.2 FUNCIN DE CORRESPONDENCIA ASOCIATIVA


Mediante la correspondencia totalmente asociativa un bloque de memoria puede ubicarse en cualquier lnea de cach. La direccin se descompone en dos campos: desplazamiento y etiqueta. El campo de desplazamiento es idntico al de correspondencia directa.

Es necesario comparar el campo de etiqueta de la direccin con los campos etiqueta de todas las lneas de cach. En el caso de obtener una coincidencia con una lnea dada, se obtiene un acierto de cach ya que dicha lnea almacena el bloque con el dato solicitado. El siguiente paso consiste en acceder al bloque y obtener la palabra utilizando el campo de desplazamiento. En el caso de no obtener ninguna coincidencia con el campo de etiqueta, se obtiene un fallo de cach y es necesario adquirirlo de la memoria principal. El bloque accedido de memoria principal es transferido a la cach. La principal ventaja es que se eliminan los riesgos de conflictos en la ubicacin de bloque en la cach, ya que stos se pueden situar en cualquiera de las lneas de cach. El principal inconveniente es la complejidad en el diseo de la memoria cach. Ms concretamente, el proceso de comparacin de etiquetas. Debe realizarse de forma simultnea sobre los campos de todas las lneas de cach, lo cual encarece el coste y la capacidad de almacenamiento de la memoria cach. Otra limitacin es que el campo de etiquetas es mucho mayor que en el proceso de una correspondencia directa, lo que implica dedicar ms recursos para almacenarlo.

5.2.3 FUNCIN DE CORRESPONDENCIA ASOCIATIVA POR CONJUNTOS

Estructura de Computadores

Universidad Carlos III de Madrid

Las memorias cach emplean una solucin hbrida de las dos anteriores. En este caso el cach se subdivide en conjuntos de lneas. Si es el nmero de bloque de memoria principal, entonces el nmero de conjuntos ( ) que tiene asociado viene dado por la expresin: mod Cada bloque tiene asignado un nico conjunto utilizando una distribucin igual al realizado con correspondencia directa, pero empleando conjuntos en vez de lneas. Dentro de cada conjunto, un bloque puede almacenarse en cualquiera de las lneas que lo comprenden del mismo modo que mediante un esquema de correspondencia totalmente asociativa. La direccin de memoria se divide en tres campos: desplazamiento, conjunto y etiqueta. Los datos de memoria estn agrupados en bloque de bytes. Dada una direccin de memoria accedida por el procesador, a partir del campo de conjunto se obtiene el conjunto de lneas en las que el bloque puede estar ubicado. Es necesario comparar el campo etiqueta con el almacenado para cada lnea del conjunto. En el caso de hallar una coincidencia, se produce un acierto de cach. La lnea que lo ha producido es seleccionada y la palabra especfica es accedida utilizando el campo de desplazamiento. En caso contrario se produce un fallo de cach y es necesario

Estructura de Computadores

Universidad Carlos III de Madrid

obtener el bloque de memoria principal y transferirlo al conjunto que tiene asignado en la cach. El nmero total de lneas almacenadas, , viene dado por = . Este esquema combina las ventajas de los anteriores. El nmero de vas suele ser un valor entre el 4 y el 12, lo que hace que el coste del proceso del proceso paralelo de comparacin del campo de etiqueta sea reducido . Adems, la longitud del campo de etiqueta tambin es reducida. Mediante la introduccin de cierto grado de asociatividad se consigue reducir el riesgo de asignar bloque distintos en la misma lnea, dado que ahora puede coexistir tantos como nmero de vas.

5.3 RENDIMIENTO DE LA MEMORIA CACH


Tasa de aciertos (Pa). Mide la probabilidad de encontrar en la cach el dato al que se desea acceder. La tasa de fallos se mide como 1- Pa. Tiempo de acceso a la cach (Ta). Tiempo de penalizacin (Tf) en caso de fallo. Este es el tiempo necesario para transferir el dato en caso de no encontrarse en la memoria cach. Este tiempo incluye la transferencia del bloque de memoria principal a cach. El tiempo medio de acceso (Tm) a un sistema de memoria compuesto por una memoria principal y una memoria cach viene dado por: Tm= Ta Pa+Tf ( 1-Pa)

5.4 TAMAO DE LNEA DE CACH


El tamao de cada bloque determina a su vez el tamao de lnea de cach. Transfiriendo bloques se consigue cargar en la memoria cach posiciones de memoria prximas a la solicitada y que probablemente sean accedidas con posterioridad. Es necesario determinar el tamao de los bloque y cmo ste afecta al rendimiento del sistema, que en este caso viene dado por la tasa de aciertos en memoria cach. La tasa de aciertos se define como el nmero de referencias a memoria que causan aciertos en memoria cach dividido por el nmero total de referencias. Cuando el tamao del bloque es reducido referencias a posiciones de memoria prximas entre s estn asociadas a bloques diferentes. En el caso de no estar almacenadas en cach estas referencias originan mltiples fallos. Cuando se incremente el tamao del bloque, un mayor nmero de referencias a memoria prximas entre s quedan asociadas al mismo bloque. Cuando el tamao del bloque es grande, ste almacena posiciones de memoria que ya no estn muy prximas entre s. El bloque almacena un conjunto de entradas que es improbable que se referencien en un futuro. Cuando el tamao del bloque aumenta, el nmero de bloques que pueden estar almacenados al mismo tiempo en la cach se reduce. Utilizar bloques de gran tamao implica tener pocos bloques distintos.

5.5 ALGORITMOS DE REEMPLAZO

Estructura de Computadores

Universidad Carlos III de Madrid

En el caso de la correspondencia directa un determinado bloque slo puede estar ubicado en una lnea de cach especfica. Cuando se realiza un acceso sobre un dato no almacenado en cach, el bloque al que pertenece es copiado a una lnea de cach, reemplazando su contenido. En memoria asociativa existen varias lneas a las que el bloque entrante se puede asignar. Si es totalmente asociativa existirn tantas como nmero de lneas de cach, mientras que en una asociativa por conjuntos habr tantas como nmero de vas. Surge la necesidad de determinar qu lnea es la utilizada para almacenar los contenidos del bloque. Existen diversos criterios de seleccin, que se denominan algoritmos de reemplazo o sustitucin.

5.6 POLTICA DE ESCRITURA

Estructura de Computadores

Universidad Carlos III de Madrid

Otro aspecto que es importante considerar es el mantenimiento de la coherencia de la informacin entre la memoria cach y la memoria principal. Un determinado bloque almacenado en la memoria cach se encuentra replicado: existe una copia en esta memoria y otra en la memoria principal. Escritura directa: la memoria principal se mantiene siempre actualizada. Cada vez que el procesador escribe sobre un bloque presente en la memoria cach, ste se transfiere a la memoria principal. Ambas memorias (principal y cach). Post- escritura: consiste en no actualizar la memoria principal, cuando el procesador modifica un dato presente en la cach, el bloque al que pertenece no es transferido a memoria principal hasta que no sea reemplazado por otro en la cach. De este modo, se logra reducir de forma importante el trfico entre la memoria cach y la principal, a costa de mantener valores no vlidos en esta ltima.

5.7 NIVELES DE MEMORIA CACH


En la actualidad la jerarqua de memoria de un computador comprende distintos niveles de cach entre el procesador y la memoria principal. Conforme disminuimos de nivel, el tamao de la memoria cach se reduce y sus prestaciones aumentan. El nivel ms bajo se denomina cach L1 y suele estar implementada dentro del mismo procesador. Esto le permite alcanzar unas elevadas velocidades de transferencia dado que comparte los mismos buses de comunicacin que los empleados internamente por el procesador. El nivel superior de cach (cach L2) suele estar situado fuera del procesador, como un circuito integrado independiente entre el procesador y la memoria. El tiempo de acceso es mayor que para L1. El conjunto de datos accedidos por un procesador se encuentra distribuido en varias memorias cach y la memoria principal. Las arquitecturas actuales emplean un modelo de cach partida en los niveles inferiores. Se tiene una cach especfica para instrucciones y otra para datos. De este modo se evita la interferencia en la captacin( por parte del procesador) de instrucciones y datos ya que ambas se realizan de forma simultnea en cachs distintas.

You might also like