Memoria Caché y Ciclo de Búsqueda de Instrucciones en CPU

Memoria Caché: Concepto y Niveles de Funcionamiento

La memoria caché es una memoria de acceso muy rápido, integrada en la propia CPU, que actúa como intermediario entre la CPU y la RAM. Su función principal es almacenar los datos que la CPU está utilizando en un momento dado (o que usa con frecuencia) para evitar que esta tenga que esperar a una memoria más lenta.

Existen varios niveles de memoria caché, definidos principalmente por su rapidez. Es importante destacar que cuanto más rápida sea la memoria, menor es su capacidad de almacenamiento y más costosa resulta su fabricación.

Niveles de Memoria Caché

Caché L1

Es aquella que está integrada directamente en el núcleo del microprocesador. Se utiliza para el almacenamiento temporal de datos e instrucciones, organizados en bloques de 32 bytes. Su tamaño está limitado por su integración en el microprocesador y suele oscilar entre 8 y 256 KB.

Caché L2

Similar a la L1, pero de mayor tamaño y ligeramente más lenta. También se encuentra integrada dentro del núcleo del procesador. Sus tamaños típicos son 1, 2, 4 y 8 MB.

Puede funcionar en dos modos:

  • Writeback: Los datos escritos en la caché no se transfieren a la memoria principal hasta que van a ser sobrescritos.
  • Writethrough: Los datos se escriben simultáneamente en la memoria caché y en la memoria principal.

Caché L3

Es más lenta que las dos anteriores, pero de mayor capacidad. Esta memoria se encuentra dentro de la CPU, pero fuera de los núcleos. Su función es la misma que la de las otras cachés: agilizar las tareas del procesador.

Cuando el microprocesador necesita un dato, sigue una jerarquía de búsqueda:

  1. Primero intenta encontrarlo en la Caché L1.
  2. Si no está, accede a la Caché L2.
  3. Finalmente, si no se encuentra en ninguna de las cachés, accede a la RAM del sistema.

Fase de Búsqueda de una Instrucción (Fetch)

En esta fase, se transfiere la instrucción que corresponde ejecutar desde la memoria central a la Unidad de Control (UC). Se realizan los siguientes pasos:

  1. La Unidad de Control (UC) envía una microorden (a través del bus de control) para que el contenido del Registro Contador de Programas (CP) sea transferido al Registro de Direcciones de Memoria (RDM).
  2. La posición de memoria que ahora figura en el RDM es utilizada por el selector para transferir su contenido (la instrucción) al Registro de Intercambio de Memoria (RIM).
  3. Se transfiere la instrucción desde el Registro de Intercambio de Memoria (RIM) al Registro de Instrucciones (RI) (a través del bus de datos).
  4. A continuación, el decodificador procede a interpretar la instrucción, analizando el código de operación para la activación del circuito sumador de la Unidad Aritmético-Lógica (UAL) (a través del bus de control) e informando al secuenciador.
  5. El Registro Contador de Programas (CP) se autoincrementa utilizando la UAL de tal forma que quede apuntando a la siguiente instrucción en la memoria. Si la instrucción en ejecución es una ruptura de secuencia, el Contador de Programa se cargará con la dirección que corresponda; de lo contrario, cargará la posición de memoria consecutiva.