Coherencia de memoria

De Wikipedia, la enciclopedia libre
Ir a la navegación Ir a la búsqueda

La coherencia de memoria hace referencia a la necesidad de establecer la lógica necesaria para que los distintos datos replicados a lo largo de la jerarquía de memoria, contengan la misma información si se trata de la misma dirección física. Por ejemplo, un dato que se encuentra en el nivel más alto de la jerarquía, esto es, en la cache de L1, y que ha sido modificado, deberá activar los mecanismos necesarios para que esta modificación se lleve a cabo en el resto de niveles, donde este dato también existe.

Esto puede cobrar más relevancia en el caso de los procesadores multinúcleos, donde, en general, se comparte un nivel de cache, L2 o Ln(donde n podrá ser cualquier número natural), pero cada núcleo dispone de su propia L1 donde modifica los datos, pudiendo haber una incoherencia de los datos que lee un núcleo y que han sido modificados recientemente por otro, disponiendo el dato sin modificar en la cache compartida.

En el caso de los procesadores mononúcleo, la lógica de control de coherencia de cache del procesador, es decir, la circuitería interna que en este caso concreto se encarga de gestionar el trasvase de la información de un lugar a otro, se encargará de modificar en los niveles inferiores de la jerarquía, aquellos datos que hayan sido modificados en L1, con el objetivo de que cuando éste desaparezca de la cache, el dato se encuentre actualizado en los siguientes niveles de cache, memoria principal y disco.

Estos mecanismos de control, por tanto, sólo se activarán como parece lógico pensar, en los casos en los que se produzca una escritura. Faltaría añadir, que dentro de la cache y de sus distintas implementaciones, nos podemos encontrar con una lógica de control de mayor o menor complejidad, dependiendo de si es una cache exclusiva o inclusiva. Donde en la inclusiva nos encontramos una circuitería más simple, aumentando la complejidad en la exclusiva.

Enlaces externos[editar]