Sabemos que muchos de nuestros lectores tienen claro el papel que juegan en un procesador los núcleos, el IPC y el proceso de fabricación, pero la memoria caché sigue generando algunas dudas, y por ello hemos decidido hacer este artículo especial, en el que os vamos a contar todo lo que debéis saber sobre la memoria caché en general, y también sobre todos los tipos que existen.

Actualmente podemos diferenciar la memoria caché en L1, L2 y L3, nomenclaturas con las que se identifican los distintos niveles en los que se encuadran. También se utiliza, aunque con poca frecuencia, un tipo de memoria caché conocida como L4, sobre todo en procesadores que vienen con GPUs integradas.

Sobre todo esto vamos a profundizar en las siguientes líneas, así que poneos cómodos, que hay muchas cosas interesantes que leer. Como siempre os invitamos a que nos dejéis cualquier duda en los comentarios.

Memoria caché: ¿qué es y cómo funciona?

Imagen de un procesador Haswell-E de ocho núcleos. Como vemos todos tienen acceso a la caché L3.

La memoria caché es, como su propio nombre indica, un tipo de memoria específica. En un ordenador existen diferentes tipos de memoria que se agrupan en dos grandes variantes: la memoria volátil y la memoria no volátil, siendo la primera aquella que pierde los datos cuando apagamos el equipo (memoria RAM, por ejemplo) y la segunda aquella que los mantiene (un disco duro o un SSD, por ejemplo).

Pues bien, la memoria caché es un tipo de memoria específica que está preparada para servir de apoyo al procesador, y que es capaz de trabajar a velocidades muy elevadas. Esta memoria se divide en diferentes niveles como dijimos, pero su función base es la misma: apoyar a la CPU para mejorar su rendimiento.

Para ello actúa como un sistema de almacenamiento de instrucciones y de datos capaz de comunicarse con el procesador a gran velocidad. Normalmente en la memoria caché se almacenan datos e instrucciones que el procesador va a necesitar para completar diferentes tareas a corto plazo. Con ello se evitan dos cosas muy importantes que podrían reducir el rendimiento:

• Que el procesador tenga que volver a completar ciclos de trabajo para conseguir los datos o instrucciones que necesita.
• Que tenga que acceder a la memoria RAM (más lenta que la caché) para obtener dichos datos o instrucciones.

La velocidad de la memoria caché importa, y mucho, pero también la capacidad de la misma, aunque sobre este tema hablaremos en el siguiente punto. Es importante recordar que en las generaciones más antiguas de procesadores la memoria caché L2 y L3 estuvo integrada durante mucho tiempo en la placa base, y no en el encapsulado del procesador. Esto suponía que la información tenía que recorrer una distancia importante en cada acceso lo que acababa teniendo un impacto considerable en el rendimiento.

Actualmente todos los tipos de memoria caché se encuentran integrados en el encapsulado del procesador, con la única excepción de la L4 que, por cuestiones de tamaño y de espacio, suele ir en un encapsulado propio ubicado justo a continuación del encapsulado principal. Esto tiene consecuencias importantes, como veremos a continuación.

Memoria caché: tipos y jerarquía

Imagen de un procesador Intel Nehalem. Como vemos los cuatro núcleos tienen acceso a la caché L3. Los círculos grandes identifican la caché L2, y los pequeños la caché L1.

Ya hemos visto qué es y qué trabajo realiza la memoria caché. En general es un apoyo importante para el procesador que, como dijimos, se divide en un total de tres niveles generales al que podemos sumar un cuarto que no resulta nada común y que juega un papel particular, como vamos a explicar más adelante.

La diferenciación entre memoria caché L1, L2 y L3 obedece a un orden de jerarquía establecido por cercanía al procesador, velocidad y capacidad. Utilizaremos dos ejemplos extremos para que veáis las grandes diferencias que pueden haber en términos de cantidad en función de cada CPU, aunque la función de la memoria caché será la misma en todos los casos.

• Caché L1: es el nivel más básico, la más cercana al procesador y la más rápida. También es la que menos capacidad tiene, por ejemplo un procesador de dos núcleos como el Pentium G4560 tiene 64 KB en total (32 KB por núcleo), aunque los modelos más potentes (serie Xeon y Epyc) pueden alcanzar los 3 MB sin problema.
• Caché L2: es un nivel intermedio que presenta un buen equilibrio entre capacidad, cercanía y velocidad. Siguiendo el ejemplo anterior el Pentium G4560 tiene 512 KB (256 KB por núcleo) de caché L2, pero un Threadripper 2990WX llega a los 16 MB en total (512 KB por núcleo).
• Caché L3: posiciona en un nivel inferior a la anterior tanto en cercanía como en velocidad, pero tiene una capacidad mucho mayor. El Penitum G4560 tiene 3 MB de caché L3 compartida en sus dos núcleos, mientras que el Threadripper 2990WX viene con un total de 64 MB (16 MB compartidos por cada bloque de ocho núcleos).
• Caché L4: es un tipo de memoria caché poco habitual que se utiliza normalmente como apoyo para mejorar el rendimiento de GPUs integradas. Por ejemplo, el Core i5 5775C venía con 6 MB de caché L3 y 128 MB de eDRAM como caché L4, que se utilizaba como buffer para la gráfica Intel Iris Pro 6200 que integraba. Así se mejoraba el ancho de banda y se reducía el impacto de tener que recurrir a la RAM como memoria gráfica.

Cuando un procesador busca instrucciones y datos que necesita primero recurre a la memoria caché L1, si no encuentra nada recurre a la caché L2 y finalmente a la caché L3. En caso de que ninguna de las cachés contenga lo que está buscando no tiene más opción que recurrir a la memoria RAM, y si tampoco está en ella tiene que realizar un ciclo de trabajo completo, con todo lo que ello supone a nivel de rendimiento.

Bien, para acceder a cada nivel de memoria caché es necesario un tiempo determinado, un retraso que se conoce como latencia, y que representa ese retardo que tiene que asumir el sistema hasta que el procesador encuentre lo que necesita para trabajar. La latencia de acceso a la caché L1 es la más baja, y se incrementa de forma considerable en los niveles L2 y L3, hasta tocar techo en el caso de tener que acceder a la memoria RAM.

Esta explicación nos ayuda a entender también la referencia que hemos hecho anteriormente a los diseños que integraban la caché L2 y L3 en la placa base. La distancia entre componentes aumentaba enormemente la latencia y reducía en gran medida el rendimiento, algo que se pudo superar al montar los tres tipos principales de caché en el encapsulado de la CPU.

Notas finales

Imagen de un procesador Ryzen. Como vemos la caché L3 se comparte en bloques de cuatro núcleos.

A día de hoy la caché ha dejado de ser un problema, ya que incluso los procesadores más básicos vienen equipados con memoria caché L3, algo que, sin embargo, no ocurría hace unos años.

No debemos obsesionarnos con este tema, aunque es cierto que el impacto de la memoria caché en el rendimiento general del sistema no tiene porque ser uniforme, ya que depende de otros aspectos como la arquitectura del procesador y su potencia bruta, y también, de forma indirecta, de la velocidad de trabajo y la latencia de la memoria RAM.

Por ejemplo, la arquitectura de núcleo monolítico que usan los procesadores Intel permite trabajar con memorias caché L3 más rápidas que tienen una latencia inferior, mientras que en el caso de los procesadores AMD Ryzen ocurre todo lo contrario, debido a la arquitectura MCM que separa la caché L3 en bloques de núcleos, conocidos como unidades CCX en Zen y Zen+ y chiplets (dos unidades CCX) en Zen 2.

Al contar con una memoria RAM más rápida es posible reducir también el impacto que tiene la ausencia de datos necesarios en la caché, que como vimos obliga al procesador a buscar en la RAM. En futuros diseños a nivel de CPU se ha planteado la posibilidad de integrar memoria caché L4 como apoyo total a la CPU, y también se bajara la integración de memoria RAM mediante el apilado 3D, un tema que tratamos en su momento en este artículo.


20 commentarios

JAV · 22 marzo, 2019 a las 9:04 am

Antes de Ryzen las CPU de AMD tenian poca cache ( excepto Phenom y FX) y si era en las laptops a morirse, una aplicacion le pedia permiso a otra para ejecutarse y usted mientras tanto al borde del infarto, los Sempron y Athlon tenian muy poca cache L2, de ahi sus bajas prestaciones. Incluso la serie AX tenia poca L2 y casi ninguno tenian L3. Los primeros Celerones de Intel no pasaban de 256 KB.
Y como dice Maikel la L2 de los primeros Pentium y K5 era externa, y en los clones de la epoca tenias que fijarte y luchar la cache, pues o estaba desabilitada o simplemente no la ponian. Recuerdo que en las Acer de Tecun aparte del multiplicador de la CPU buscabamos memoria para aumentar la cache.

NicanorFCB · 20 marzo, 2019 a las 2:46 pm

vaya que casualidad, hace un rato estando en casa un socio fue alla y revisando mi Pc me dijo que ¨tenia 6MB de cache¨, le dije me entero contigo, se que debe ser bueno pero ni idea de pa que es eso..yo tampoco me dijo…
jajaja, conversacion tipica entre dos ¨aprendices de informatica¨

    Maikel · 20 marzo, 2019 a las 7:27 pm

    caramba nica, nunca has mirado el administrador de tareas de windows? creoque de 8 para aca… ahi en la segunda pestaña, Rendiminto, en la seccion CPU te da bastante info y de la cache te las da todas

      NicanorFCB · 21 marzo, 2019 a las 8:37 am

      si he mirado el admin de tareas claro, pero no fijandome en ese detalle, ademas de no darme a la tarea de averiguar para que era el cache. pero poco a poco, ya voy aprendiendo.
      ¨mientras un hombre no tiene la cabeza cortada, nada esta completamente perdido en el¨

        Marshmello · 21 marzo, 2019 a las 8:56 am

        ¨mientras un hombre no tiene la cabeza cortada, nada esta completamente perdido en el¨
        NicanorFCB 21/03/19 my self collection

          MATR1X · 21 marzo, 2019 a las 9:35 am

          jajaja, frase para la historia

          NicanorFCB · 21 marzo, 2019 a las 12:23 pm

          jajaja, que jodedor eres, eso es un… probervio? anamita.
          proverbio?
          vaya te dejo otra pa acabar: ¨nadie esta libre de decir estupideces…lo malo es decirlas con enfásis¨…
          jajaja.

          dicen que a todos los admin-moderadores del sitio les toca un tornado…te enviaron pa ciego, pero le dieron mal las coordenadas…
          que bueno que no sucedio nada, ahora si la tenemos buena.

          NicanorFCB · 21 marzo, 2019 a las 12:34 pm

          de hecho el frente frio se movio para aca, ya no puedo seguir posponiendo la tarea de reforzar el techo del cuarto de ¨desaogo¨ del ultimo piso…acabo de recordarlo…

        Maikel · 21 marzo, 2019 a las 9:25 am

        recuerdo alla por 2000 en cierto lugar, una PC se quejaban de lo lento, abrir un word demoraba. aunque era un 486DX4 a 100MHz. no asustarse, Word 97 iba de peras ahi. me pidieron revisara, y mirando desde la base, en el bios, tenia la cache desactivada ?!!?. se activo, y fuuiiiiii…. a “volar” (para esa PC).
        Una cosa intersante, esa cache L2, en esos micros, desde algunos 386 y hasta los Pentium MMX, eran circuitos externos al CPU. un conjunto de chips de memoria que a veces venian soldados en la motherboard, pero otros venian en zocalos zif, para quitar, poner, cambia…. que epoca mas interesante

          NicanorFCB · 21 marzo, 2019 a las 12:30 pm

          interesante, hablando de tiempos, viste lo del primer PC Cuantico comercial de IBM…aca hay uno flipando que se repite el ciclo, claro el articulo lo decia, que en unos años tendremos un ordenador cuantico en casa, jaja.

          oye y hablando de tiempos…ayer vi Black Mirror Bandersnatch..que decepcion, llego en punto que ya solo queria que acabara. seguro a ti si te gusto.
          esa gente maneja ideas muy buenas y muchas de sus predicciones tienen sentido.
          yo soy fan de la serie a pesar de solo ver la 3ra temporada(no he podido conseguir las otras en calidad decente).

          Maikel · 21 marzo, 2019 a las 12:41 pm

          no la he visto todavia

          MATR1X · 25 marzo, 2019 a las 10:14 am

          Yo si vi lo del ordenador cuántico en XatakaNow, Maikel deberías coger el paquete en la parte de Interesantes Variados/Tecnología para ampliar tus fuentes de información

          Maikel · 25 marzo, 2019 a las 10:52 am

          no matrix, no lo cojo, no lo necesito y menos esa parte

          ordenadores cuanticos tenemos hace años, auqnue no del tipo mas general. hay cosas publicas y cosas muy secretas, pues esto tiene unas cuantas implicaicones

          MATR1X · 25 marzo, 2019 a las 10:57 am

          Ahora se me ocurre hablando del tema si pudieras quizas hacer un artículo sobre la IA, y me refiero a un bueen artículo, interesante sobre todo

Maikel · 20 marzo, 2019 a las 12:02 pm

si se menciona
Caché L4: es un tipo de memoria caché poco habitual que se utiliza normalmente como apoyo para mejorar el rendimiento de GPUs integradas. Por ejemplo, el Core i5 5775C venía con 6 MB de caché L3 y 128 MB de eDRAM como caché L4, que se utilizaba como buffer para la gráfica Intel Iris Pro 6200 que integraba. Así se mejoraba el ancho de banda y se reducía el impacto de tener que recurrir a la RAM como memoria gráfica.

Richard · 20 marzo, 2019 a las 11:48 am

falto hablar de la cache L4
de intel y los CPU de C y R apellido de C y R
que ayudaban a la igpu y rendían cantidad con esas IRIS PRO

Lastima que dar con uno de esos CPU sea mas difícil que encontrar un unicornio

MATR1X · 20 marzo, 2019 a las 10:30 am

Fuera del ámbito de este tema…que función desempeñan los hilos de un procesador?

    Maikel · 20 marzo, 2019 a las 10:49 am

    un procesador no tiene hilos, ejecuta “hilos”. los “hilos” son procesos o subprocesos de los programas y el sistema operativo. usualemente cada nucleo procesa un hilo a la vez, o si tiene Multihilo Simetrico (Symetric Multi Threading SMT (ejemplo el Hyperthreading de Intel, su implementacion de SMT) un nucleo puede “ejecutar” varios hlos. digo “eecutar” pues cada hilo no esta ni totalmente independinte ni ocupa totalmente el nucleo, si no que el hardware y sistema los gestiona para usar unidades del nucloe que el otro no usa y los estados/seguimiento se mantienen independientes. los micros que seguro has visto de intel o amd, posee hasta 2 hilos gestionados por nucleo pero los hay de servidores, cpus de intel, ibm y otros fabricantes con hasta 8 hilos por nucleo.

    el asunto es aprovechar todo lo posible las unidades de las lineas de ejecucion de un procesador, que un proceso no tiene que usarlos todos, asi lo que no use, lo aprovecha otro proceso si se puede.

    los explotes que han estado saliendo desde inicios del año pasado casi todo tiene que ver con las implemnetaciones del multihilo en los CPU

      MATR1X · 20 marzo, 2019 a las 10:55 am

      Ah vale, entonces los hilos son subprocesos

      cmolina · 21 marzo, 2019 a las 7:29 am

      me preguntaba lo mismo, porque mi pc es de 4ta y como tengo un i3 de 2 nucleos 4 hilos, me era curiosa la diferencia con el i5 que tiene 4 nucleos 4 hilos

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *