Cuando hablamos de procesadores casi siempre se suele mencionar el término memoria caché y, como suele ser habitual, cuanta mayor cantidad tengan un sistema informático mejor rendimiento vamos a obtener. Pero, ¿sabes cómo funciona y por qué es tan importante? Te lo contamos todo a continuación.
En la década de los 80 la velocidad de los procesadores se vio incrementada exponencialmente en comparación con los tiempos de acceso a la memoria. Rápidamente se hizo evidente que había que hacer algo para mejorarla y que así el sistema fuera más eficiente, puesto que por mucho que el procesador fuera muy rápido no serviría de nada.
Estas discrepancias entre la velocidad del procesador y los tiempos de acceso a la memoria fueron las que llevaron a crear la memoria caché por parte de los ingenieros, en lo que es una de las soluciones más eficaces que hemos visto a lo largo de toda la historia de la informática. ¿Qué haríamos sin cachés? Pues básicamente sufrir enormes atascos de información que colapsarían los sistemas.
¿Qué es la memoria caché?
No olvidemos que la definición más simple de lo que es un procesador es que se trata de un componente que manipula datos. Desgraciadamente, por limitaciones físicas estos no se encuentran en su mayoría dentro de él, sino en otro conjunto de chips a los que llamamos memoria RAM. Esto conlleva a que la comunicación entre ambos tenga cierto retardo. La memoria caché es la solución más utilizada para paliar este problema.
Este componente, que a veces pasa desapercibido en pos de la cantidad de núcleos de los procesadores y su velocidad, fue todo un hito en la historia de la computación. A un nivel básico, la memoria caché es muy rápida y contiene un pequeño conjunto de instrucciones que el equipo usa con asiduidad para realizar sus tareas cotidianas. El equipo carga esas instrucciones en la caché usando algoritmos complejos para poder acceder a ellos de manera inmediata, eficiente y sin obstáculos de por medio, lo que provoca que ese pequeño lag entre la CPU y la RAM desaparezca o, mejor dicho, se camufle convenientemente para que todo el sistema funcione sincronizadamente.
En otras palabras, la caché es un tipo de memoria a la que el procesador tiene acceso directo, casi instantáneo, y en la que se almacenan los datos e instrucciones que más emplea para «tenerlos a mano» cuando haga falta sin necesidad de tener que volverlos a pedir desde la fuente original.
Niveles de caché en un procesador actual
Anates de nada, debemos destacar que hablaremos del funcionamiento de la caché en los «procesadores modernos». Debes saber que en los primeros chips el funcionamiento de este tipo de memoria era diferente.
Los procesadores actualmente cuentan con varios niveles de caché bastante diferenciados. Normalmente, los procesadores actuales tienen caché L1, caché L2 y caché L3, y en algunos casos puntuales caché L4. Su configuración y caracteristicas se ha ido adecuando para adaptarse a las necesidades modernas.
Caché L1
Se caracteriza por ser la más cercana a las unidades de ejecución, siendo la más rápida pero también la de menor capacidad. Normalmente, se divide en dos bloques: uno para almacenamiento de datos a tratar y otro para instrucciones. Las instrucciones, pro si no lo sabes, son las acciones que debe realizar el procesador. Esencialmente, la caché L1 guarda las tareas que debe realizar el procesador y la información de como debe realizarse.
Este tipo de memoria, normalmente, esta integrada o junto al núcleo. Además, debes saber que la caché L1 de cada núcleo es independiente, no existiendo coherencia entre ellas. Esto no es un problema, ya que cada núcleo solo tiene acceso su propia memoria de primer nivel. Para conocer la caché real que tiene cada uno de los núcleos del procesador realmente lo único que tenemos que hacer es coger la caché L1 y dividirla entre el número de núcleos que tiene, si por ejemplo una CPU de 8 núcleos tiene una caché L1 de 512 KB implicará que en cada uno de ellos hay 64 KB.
Caché L2
Vamos ahora con una segunda capa de memoria que, es más lenta pero de mayor capacidad que la caché L1. La caché L2 almacena datos de las caches de nivel anterior. Algo interesante de este tipo de memoria es que se comunica con varios núcleos, por lo cual es compartida. Todos los núcleos tienen una interfaz de memoria hacía esta, que dota a los núcleos de coherencia.
Algunas arquitecturas de CPU pueden tener más niveles de caché, por ejemplo se suelen agrupar los núcleos en clústeres con una L2 en común para luego tener una L3 general. También puede ser que un núcleo tenga varios niveles de caché local o que una CPU tenga varios niveles de caché compartida, por lo que no es algo fijo.
Caché L3 o LLC (Last Level Cache)
Normalmente, los procesadores modernos solamente llegan hasta la memoria caché L3. Esta es mucho más lentas que las anteriores, pero de mayor capacidad. Podemos encontrarnos procesadores con caché L4, aunque esto es bastante poco habitual. Como es la última memoria de caché del procesador, también se las suele denominar como LLC (Last Level Cache).
Se trata de un espacio unificado y accesible para todos los núcleos de manera indistinta. Tiene la capacidad de almacenar tanto datos como instrucciones. Esta es la caché de mayor capacidad de todas, pero, al mismo tiempo, es la más lenta de todas ellas.
¿Cómo funciona la memoria caché del procesador?
La memoria caché no funciona igual que la memoria RAM, no podemos hacer que la CPU se dirija a una dirección concreta dentro de la caché. Esto es debido a que lo que hace la caché es copiar los datos que se encuentran en la RAM y son cercanos a la dirección de memoria que está ejecutando en ese momento la CPU, por lo que la caché copia en su interior las direcciones más cercanas a la memoria caché.
Proporcionalmente hoy en día es habitual manejar capacidades de varios terabytes cuando hablamos de discos duros, mientras que cuando lo hacemos de la RAM esta cantidad se reduce a unos pocos gigabytes (hoy en día lo más habitual es ver 8 ó 16 GB de RAM). La caché, por su parte, es todavía mucho más pequeña, y de hecho se mide en megabytes o kilobytes porque sobre el papel, no es necesario más capacidad para guardar esos datos que el procesador necesita recurrentemente.
Debemos tener en cuenta que los ordenadores tienen tres tipos de memoria: por un lado está la memoria de almacenamiento, la que encontramos en discos duros y los SSD, que suponen el repositorio más grande del equipo. Por otro lado, tenemos la memoria RAM, o memoria de acceso aleatorio, que es mucho más rápida pero más pequeña que la anterior. Finalmente, contamos con la memoria caché que está dentro del propio procesador, que es la más rápida de todas pero también la más pequeña.
La forma en la que funciona este tipo de memoria es que, cuando se inicia un programa, este comienza a ejecutar una serie de instrucciones que se encuentran en su código y son gestionadas por el procesador. Esa información primero se carga en la RAM y luego pasa al procesador, pero para mejorar la eficiencia con la que este la procesa, las instrucciones principales y más utilizadas se copian en la caché, de manera que la CPU pueda tener acceso inmediato a ellas. Y esto mejora el rendimiento en gran medida, por supuesto.
Secuencia de uso de la caché
La utilidad de la memoria caché es simple: almacenar el segmento de memoria RAM más cercano a donde se encuentra mirando el procesador en este momento. Esto significa que, de manera preventiva, lo que hará será copiar un bloque de datos entero en el nivel de caché más alto de todos. Eso sí, a través de una serie de mecanismos relativamente complejos, se dedicará a mantener aquella información que aún pueda ser útil para que el procesador siga funcionando a su máximo rendimiento.
Sin embargo, la búsqueda de la información no empezará en la RAM, sino primero en la caché de menor tamaño y la más cercana al procesador. De esta forma se buscará primero en la L1, luego en la L2 y así progresivamente hasta que se encuentre el dato. Si lo hace en la caché, entonces significará que habrá tardado menos tiempo y, por tanto, menos ciclos de reloj en encontrar la información. Es por ello que un procesador con una caché recortada siempre tendrá peor rendimiento.
Este es el motivo de que la memoria caché sea tan importante, así como lo son los tiempos de acceso. Imaginad que si cada vez que el procesador tiene que ejecutar una instrucción (y ejecuta miles por segundo) tiene que esperar un nanosegundo, que es lo que tarda el tiempo de acceso. La suma de este tiempo, al final, sucumbiría en una enorme pérdida de rendimiento, y volviendo al principio este era precisamente el problema que encontraron en los 80, y motivo por el que se creó la caché.
Caché vs Scratchpad
Ambos son dos tipos de memoria interna en el procesador, sin embargo, existen una serie de diferencias clave entre ambas que las hacen estar pensadas para cometidos muy distintos. A continuación os las enumeramos todas:
- La caché solo almacena la copia de los datos más cercanos en memoria a los que estamos utilizando, por lo que no se trata de un pozo de memoria por sí mismo.
- En cambio, una Scratchpad RAM funciona como una memoria RAM al uso, independiente a las cachés, ya que la cache no está asociada a ella y que se suele encontrar en algunos procesadores.
- La principal diferencia entre ambas es que la cache no puede ser gestionada por el programa, sino que es autogestionada, en cambio, una memoria Scratchpad se ha de manejar manualmente por el programa de la misma manera que estos manejan la RAM.
¿Cómo afecta la memoria caché a los juegos?
En algunos procesadores el tener un mayor tamaño de caché de nivel 3 compartida repercute directamente en los juegos, otorgando una mayor estabilidad de FPS o imágenes por segundo y un mejor tiempo de respuesta dado que no se tiene que acceder tan frecuentemente a la memoria principal, mucho más lenta e ineficiente para ciertos procesos que tienen lugar durante la partida.
Cuanta más información se pueda guardar en esta caché, ya que será más grande, el procesador necesitará acceder menos veces a la memoria RAM y con ello incrementará el rendimiento general en juegos. Hay que tener en cuenta que no es lo único que mejora el rendimiento de un PC, puesto que si tenemos una CPU lenta, por mucha caché que le metamos seguirá siendo lenta.
La combinación perfecta es una CPU con un alto IPC, una gran caché y memoria RAM de alta frecuencia y baja latencia para que los datos fluyan, se carguen más rápido y no se produzcan cuellos de botella que atasquen todo el proceso. Así, ganaremos en rendimiento y todo lo que ejecutemos dentro del PC –sea exigente o no– se moverá con mucha mayor consistencia y soltura que en el caso de contar con un hardware menos avanzado. Obviamente todas estas ventajas al final tienen un precio, y ahí estamos nosotros para valorar si nos merece la pena invertir en ello o no.
La importancia de los procesadores 3D V-Cache de AMD
Como bien os hemos indicado anteriormente, el hecho de que un procesador incluya una caché mucho más amplia repercute de forma positiva en los juegos, mejorando en muchos aspectos el rendimiento de los juegos, pero al final obviamente también depende de la potencia que es capaz de ofrecer la propia CPU. Este es uno de los principales motivos que han permitido que AMD se convierta actualmente en una de las compañías que mejores procesadores pueden ofrecer para cualquier tipo de uso relacionado con los videojuegos, pero en concreto, esta ventaja que han conseguido frente a Intel es por una gama exacta de procesadores.
Y si conocéis los últimos movimientos de AMD, entenderéis desde un principio que nos estamos refiriendo a los procesadores que incorporan la tecnología 3D V-Cache, aquellos que están denominados como x3D por parte de esta compañía, y que en poco tiempo, han logrado prácticamente dominar el mercado. Con esto no queremos decir que todo el mundo tenga uno de estos procesadores, ya que obviamente puede resultar complicado para ciertas personas hacer el cambio, pero si que se convierte en la primera recomendación cuando le preguntamos a alguien qué tipo de procesador es mejor para jugar.
En este caso, como bien hemos comentado, estos procesadores destacan por tener un caché extremadamente alto en el tercer nivel, y es que el modelos más asequible, el 7800x3D incluye 96 MB de caché, pero el titán de alta gama 7950x3D incorpora un total de 128 MB de caché L3, ofreciendo además 1 MB de memoria L1 y 16 MB de memoria L2. Después de haber visto cómo funciona la caché, entenderéis, que estas mejoras no solo hacen que sean los mejores procesadores para gaming, sino que en general, se pueden considerar como las CPU más rápidas del mercado para uso doméstico.
¿Tiene Intel planes de replicar la tecnología 3D V-Cache?
La importancia que tiene una memoria caché de gran capacidad a la hora de jugar o de realizar tareas pesadas demuestra que en este aspecto AMD tiene la delantera frente a su principal competidor al haber desarrollado una tecnología que permite aumentarla en gran medida. Esto seguramente llevaría a pensar a muchas personas que Intel está haciendo todo lo posible por implementar un sistema similar que permita una mayor competitividad en el ámbito de los procesadores orientados para alto rendimiento y principalmente para aquellos sistemas para juegos, pero no es así.
La compañía no tiene ningún tipo de plan a futuro de implementar un tipo de tecnología que logra replicar lo que ofrecen los X3D de AMD debido a que según indican buscan centrarse más en un mercado que resulte general en lugar de uno específico como es el caso del gaming. Esto les está llevando a tener una serie de desventajas en algunos aspectos como son los dispositivos para juegos portátiles, mientras que en las plataformas de sobremesa ya no son la primera elección por parte de los usuarios que buscan un sistema que ofrezca el mejor rendimiento posible.
Por otra parte la marca no descarta aumentar un poco las capacidades de caché que tienen sus procesadores, pero no buscan centrarlo en añadir tanta capacidad como ha hecho AMD, sino que su objetivo es tratar de mejorar las tres de forma similar para tener un rendimiento general superior.