Siempre se habla mucho de la memoria caché de la CPU, pero no todos saben qué es realmente y si es necesario contar con una capacidad mínima para que el sistema vaya fluido o para cumplir los requisitos para gaming, etc. Por eso, en este artículo vamos a aprender más sobre este tipo de memoria tan misteriosa y por qué resulta tan importante cuando se trata del rendimiento.
Índice de contenidos
Quizás también te puede interesar conocer:
Caché, o buffer, como se conoce en algunos casos, no es más que una memoria intermedia que sirve para acelerar el acceso a información, generalmente situada entre dos unidades. Estas memorias son de alta velocidad, aunque de capacidad reducida dado su alto precio.
Cuando se trata de la memoria caché de la CPU, se trata de una memoria temporal que se coloca cerca de los núcleos de procesamiento para albergar datos e instrucciones para que la CPU los tenga más a mano, bajando la penalización en ciclos de reloj para su acceso, frente a tener que acceder a esa información en la memoria RAM o memoria principal.
Esta memoria suele ser de tipo SRAM, y es más veloz aún que la memoria RAM, accediendo a ella en muy pocos nanosegundos. De ahí que permita aumentar el rendimiento de forma considerable, ya que de no existir, la CPU debería ir a acceder a la información de datos e instrucciones de los procesos a ejecutar a la memoria RAM, lo que significa esperar más ciclos de reloj (mayor latencia).
Como deberías saber, un programa o software no es más que un conjunto de datos e instrucciones. Las instrucciones son operaciones que se aplican sobre los datos. Por ejemplo, si la CPU necesita realizar la operación 2 + 3, la ALU tomaría los operandos o datos, que en este caso sería 2 y 3, y la unidad de control enviaría las señales para que la ALU se ponga en modo suma cuando reciba la instrucción ADD en este caso.
Pues bien, para que la CPU pueda acceder a esa información, antes de la existencia de la memoria caché de la CPU, había que hacerlo en la memoria RAM, y dado que ésta memoria es más lenta que la CPU, se formaban cuellos de botella importantes. Por eso se creó la memoria caché, para actuar como una memoria intermedia para acelerar los accesos con menos penalización de ciclos de reloj, ya que la latencia es mucho más baja.
¿Sabías que antiguamente no se implementaba la memoria caché dentro de la propia CPU? Se comenzó a usar unos módulos similares a la RAM actual y que eran opcionales. Luego se implementaron on-package, u off-chip, para finalmente hacerse dentro del propio chip de procesamiento (on-chip).
De hecho, la caché suele ser hasta 100 veces más rápida que una memoria RAM estándar. Puedes pensar que si es tan rápida, por qué no se aumenta su capacidad y se prescinde de la RAM, pues bien, el motivo es simple. Esta memoria es muy cara de fabricar, por lo que conseguir chips con capacidades elevadas resultaría prohibitivo para la mayoría de usuarios.
El término buffer o caché es un término ampliamente usado en la informática, no solo para la memoria caché de la CPU. También se usa para denominar a otros almacenes temporales de datos, ya sean implementados en hardware o en software. Por eso, también deberías conocer cuáles son estos otros usos del término para no confundirlos. Por ejemplo:
La caché de una GPU también puede afectar al rendimiento gráfico y la tasa de FPS cuando se juega.
Es decir, siempre se refiere a una memoria donde se almacenan datos de forma temporal y que van a ser accedidos más de una vez, acelerando así el acceso. Por ejemplo, cuando borras la memoria caché de tu navegador, seguro que verás cómo al abrir ciertas páginas webs frecuentes se tarda un poco más.
Si te preguntas cómo hace que la memoria caché haga que el procesamiento sea más rápido, como bien sabes ya, esta memoria tiene latencia muy baja, por lo que se necesitan muy pocos ciclos de reloj para acceder a ella. Así es como gana rendimiento en vez de acceder a otras memorias más lentas, desperdiciando ciclos de reloj valiosos que finalmente tendrán un impacto en el rendimiento.
Cuando la CPU requiere de un dato o instrucción para ejecutarlo, primero buscará en la memoria caché. Si está allí se produce un acierto o hit, por lo que puede acceder a él de forma muy rápida. En cambio, cuando no se encuentra el dato en la caché se produce un fallo o miss, que obliga a la CPU a buscarlo en una ruta más larga, es decir, con más latencia. Y eso implicaría acceder a niveles superiores, a la memoria RAM e incluso al disco duro en el peor de los casos.
Esta es una pregunta difícil de responder. Sinceramente no hay un dato concreto. De hecho, algunas microarquitecturas pueden usar menos memoria caché que otras y tener un rendimiento superior. Por tanto, no depende solo de la capacidad, también del tipo de memoria caché, etc. Así que no puedo decir una cantidad específica, pero sí que es cierto que dentro de una misma microarquitectura, mientras más espacio de caché tenga, mejor.
Por eso las unidades de AMD con 3D V-Cache, que amplían considerablemente la memoria caché, consiguen acelerar el rendimiento de forma considerable en videojuegos y otras aplicaciones.
Bueno, cuando nos referimos a la memoria caché de hardware, como la memoria caché de la CPU, tú no tienes que vaciar ésta de forma manual. Será el propio sistema el que vaya eliminando algunos datos e instrucciones para dejar hueco a otros que sean prioritarios. De ese modo se mantendrá un rendimiento constante durante los procesamientos. Por tanto, te puedes despreocupar completamente.
No obstante, en el caso de la caché de software, sí que puedes eliminar o hacer limpieza para ahorrar espacio, a pesar de que eso podría implicar que algunas apps reduzcan su rendimiento. Además, como sabes, existen apps que sirven para hacer estas limpiezas de una forma más cómoda, como CCleaner, Stacer, etc.
Tampoco me gustaría terminar este artículo sin hablar de los posibles niveles de memoria caché de CPU o GPU que puede haber, ya que también son importantes para comprender lo que significan cuando analizamos las especificaciones técnicas cunado vamos a comprar un procesador:
Esta memoria caché L1 es la más rápida de todas. Se trata de una pequeña memoria que está muy próxima a las unidades control y ejecución, y la penalización en ciclos de reloj para acceder a ella es mínima. Además, en muchas arquitecturas actuales se encuentre separada, una L1 para datos y otra L1 para instrucciones.
Esta memoria caché de nivel 2 es superior en capacidad a la L1, sin embargo, suele penalizar más en cuanto a ciclos de reloj para acceder a ella. No obstante, sigue siendo muy rápida, aunque no tanto como la L1. Por eso, la CPU buscará primero en la L1 y si se produce un hit obtendrá lo que busca rápidamente, y si se produce un miss tendrá que buscar en este nivel. Hay que decir que esta memoria suele estar unificada, por lo que puede almacenar tanto datos como instrucciones.
En caso de producirse un miss también en la L2, la CPU buscará en el siguiente nivel, el L3. Esta memoria también está unificada, con datos e instrucciones, y es de mayor capacidad que la L2. Sin embargo, como puedes imaginar, es algo más lenta a la hora de acceder a ella que la L2.
Es decir, la velocidad de acceso será L1 > L2 > L3… Por tanto, la CPU comenzará a buscar en la L1 y solo si se produce un miss irá a la L2 y en caso de que en esta también se produzca un miss irá a buscar a la L3, y si hubiese un miss tendría que ir a la memoria RAM, y así. Lo siguiente a la RAM, sino se encuentra allí tampoco, sería la memoria virtual, es decir, acceder a esa parte del disco duro que se emplea también como una extensión de la RAM.
Como ves, los distintos niveles de memoria van desde el más rápido y pequeño en capacidad, hasta el más lento y amplio en capacidad. Todo es cuestión de costes para implementar cada nivel…
También me gustaría destacar que la L3 suele ser el último nivel (LLC o Last Level Cache), aunque hay sistemas que pueden tener incluso L4, o niveles inferiores a la L1, como la L0. No obstante, esto es más raro…
Por otro lado, la forma en la que se almacenan o desechan los datos e instrucciones de estas memorias caché se realiza mediante algoritmos para dar prioridad siempre a la información que tiene mayor probabilidad de ser accedida en un futuro o de los procesos con mayor prioridad.
La mayoría de usuarios no compran una CPU o GPU pensando en la capacidad de memoria caché que estas unidades tienen. Y hacen bien, ya que como dije anteriormente, son más significativas las ganancias de rendimiento que se obtienen al mejorar la generación de una microarquitectura que las de aumentar la memoria caché. Sin embargo, si te preocupa especialmente el tema de la memoria caché de CPU, entonces deberías tener en cuenta los siguientes parámetros:
En definitiva, cuando cambies de CPU o GPU, no pienses solo en la cantidad de memoria caché que tiene, ya que podría llevarte a error. Dos productos diferentes con iguales capacidades podrían tener rendimientos muy dispares, lo mismo con un producto con capacidad de memoria caché superior a otro, que tal vez pueda rendir menos. Es decir, no es un dato fiable. Ahora bien, en el caso de unidades como los HDD y el buffer o caché de estos, sí que es más importante…
Hace semanas se confirmaba y ahora comienza su despliegue: la transcripción de audios se hace…
Estas es una de las primeras informaciones que tenemos sobre el modelo RTX 5070 Ti…
Ayer mismo saltaba la noticia de la posible cancelación de la Pixel Tablet 3, la…