Professional Documents
Culture Documents
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
Estructura de Computadores
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
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.
Estructura de Computadores
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
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.
Estructura de Computadores
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.
Estructura de Computadores
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.