Com produtos como o Ryzen 7 5800X3D ganhando destaque como um dos melhores processadores para jogos, é compreensível que haja curiosidade sobre a importância e a função da memória cache do CPU. Observamos que os próximos processadores, como os Ryzen 7000 da AMD e os processadores Intel da 13.ª geração da série Raptor Lake, estão direcionando foco para ampliar a capacidade de cache. Isso indica a crescente relevância desse elemento como especificação fundamental para o futuro da tecnologia de processadores.
Mas será que deve dar importância à memória cache do CPU? Vamos analisar em detalhe o que é a memória cache do CPU, por que é tão crucial e como pode efetivamente fazer uma enorme diferença quando se trata de jogos.
O que é a memória cache do CPU?
A memória cache é a quantidade de memória que se encontra dentro do próprio CPU, seja integrada em núcleos individuais ou partilhada entre alguns ou todos os núcleos. É uma pequena porção de memória dedicada que reside diretamente no processador, de modo a que o CPU não precise de buscar informações na RAM do sistema sempre que pretende executar uma operação no seu PC. Cada processador tem uma pequena quantidade de cache, variando de alguns kilobytes nos processadores mais pequenos até vários megabytes de cache nos processadores mais potentes.
No entanto, pode-se questionar a necessidade da cache de CPU quando temos à disposição o RAM, especialmente quando um único módulo de RAM pode conter vários gigabytes de memória. A resposta reside no desempenho. Na década de 1990, tornou-se evidente a disparidade no ritmo de melhoria de desempenho entre os CPUs e o RAM. Os projetistas de CPUs estavam concentrados em aumentar a velocidade, enquanto os projetistas de RAM estavam mais focados na expansão da capacidade, negligenciando a velocidade. Para os projetistas de CPUs, esta disparidade representou um desafio, uma vez que a velocidade do RAM é um fator crucial para o desempenho dos CPUs em muitas aplicações. Quanto maior se tornava a diferença entre os CPUs e o RAM, mais difícil se tornava melhorar o desempenho.
A solução encontrada foi a cache de CPU. Embora a cache tenha uma capacidade limitada em comparação com o RAM, a sua alta velocidade compensa essa limitação na maioria dos casos. No entanto, a cache não é isento de falhas. A sua principal fraqueza é o tamanho físico, uma vez que ocupa um espaço considerável em relação à quantidade de dados que pode armazenar. Além disso, a cache é menos suscetível a reduções de tamanho. Enquanto os núcleos e outros componentes de um CPU podem diminuir significativamente de uma geração para a próxima, a cache reduz-se muito menos. Isso torna a cache um componente dispendioso dos CPUs, o que é uma das principais razões pelas quais a capacidade de armazenamento da cache costuma ser limitada.
Mas como funciona a cache de CPU? A adoção generalizada da cache de CPU levou a implementações mais sofisticadas tanto da cache quanto do RAM, resultando na hierarquia de memória, com a cache no topo, o RAM no meio e o armazenamento na base. Esta abordagem em camadas permite que os dados essenciais para o CPU estejam fisicamente mais próximos do processador, reduzindo a latência e conferindo maior agilidade ao seu PC.
A cache possui a sua própria hierarquia, com níveis designados como L1, L2 e L3 cache. Estas constituem tipos diferentes de cache, cada uma desempenhando funções ligeiramente distintas.
A L1 cache é o primeiro nível de cache e, por conseguinte, a menor. Normalmente, divide-se em L1 de instrução (L1i) e L1 de dados (L1d). Cada núcleo do CPU tem a sua própria parcela exclusiva de cache L1, a qual normalmente é composta apenas por alguns kilobytes. Esta cache armazena dados que o CPU acabou de utilizar ou que espera usar num futuro imediato. Se o CPU precisar de dados que não estejam presentes na L1 cache, recorre ao próximo nível, o L2.
Similar à L1 cache, a L2 cache muitas vezes é exclusiva de um único núcleo do CPU, embora em alguns CPUs seja partilhada entre vários núcleos. Além disso, é significativamente maior em termos de capacidade. Por exemplo, cada núcleo P no Core i9-12900K possui 80 kilobytes de L1 cache e 1,25 megabytes de L2 cache, aproximadamente 16 vezes mais. No entanto, caches maiores implicam maior latência, o que significa que a comunicação entre o núcleo do CPU e a cache demora mais tempo. Quando os CPUs necessitam de executar tarefas em microssegundos ou nanossegundos, a ligeira latência adicional da L2 cache pode ser relevante. Se o CPU não encontrar os dados solicitados na L2 cache, passa ao próximo nível, a L3.
A L3 cache é de grande importância, uma vez que é partilhada entre alguns ou todos os núcleos de um CPU e possui uma capacidade significativa. Por exemplo, o 12900K tem 30MB de L3 cache, cerca de 24 vezes mais do que a cache L2. A latência da L3 cache é ainda maior do que a do L2. No entanto, a presença de uma L3 cache substancial é essencial para evitar que o CPU tenha de aceder à RAM para obter os dados de que necessita. Com exceção do armazenamento, a RAM é o componente com a pior velocidade e latência na hierarquia de memória. Sempre que o CPU precisa de aceder à RAM para obter dados essenciais, a eficiência é significativamente afetada. Idealmente, informações cruciais devem ser armazenadas, no mínimo, na L3 cache para evitar uma desaceleração substancial.
Alguns CPUs incluem mesmo uma L4 cache, embora funcione, geralmente, como uma forma de RAM integrada no pacote do CPU. Alguns dos primeiros CPUs da Intel baseadas na arquitetura Broadwell de 14nm incluíam 128MB de DRAM incorporada, e os futuros CPUs de servidores Sapphire Rapids da empresa podem ser equipados com HBM2, que funciona como um nível de cache adicional.
Será que a cache de CPU é relevante para jogos?
A cache do CPU tem um impacto significativo nos jogos. Embora o desempenho de um único núcleo, as instruções por ciclo (IPC) e a velocidade do relógio tenham sido tradicionalmente apontados como os fatores mais importantes no desempenho dos jogos, tornou-se cada vez mais evidente que a cache é provavelmente o fator mais crucial na competição entre a AMD e a Intel.
A importância da cache para os jogos decorre da forma como os jogos são concebidos atualmente. Os jogos modernos apresentam um elevado grau de aleatoriedade, o que implica que o CPU precisa de executar constantemente instruções simples. Sem uma quantidade adequada de cache, o CPU fica sobrecarregada, à medida que as instruções se acumulam, criando um gargalo no desempenho. Podemos observar o impacto significativo disso na tecnologia 3D V-Cache da AMD.
Esta ênfase na cache realça a importância de compreender como os componentes de um sistema, como o CPU e a cache, interagem e afetam o desempenho global dos jogos. O aumento na capacidade e eficiência da cache tornou-se uma área crítica na melhoria do desempenho dos jogos, à medida que os jogos modernos continuam a evoluir e exigir maior poder de processamento e resposta mais rápida do CPU. Como tal, a cache é agora um dos principais elementos a considerar quando se procura otimizar o desempenho de jogos no ambiente de PC.
Nos últimos anos, temos assistido a uma tendência em direção a uma maior capacidade de cache para jogos. O processador Ryzen 3000 da AMD tinha o dobro da capacidade de L3 cache em comparação com a geração anterior e era muito mais rápido para jogos, quase alcançando o desempenho da Intel. Com o lançamento da série Ryzen 5000, a AMD não aumentou a capacidade de cache, mas unificou os dois blocos de L3 cache dentro do CPU, o que reduziu significativamente a latência e colocou a AMD na liderança em termos de desempenho nos jogos. A AMD reforçou a sua aposta com a tecnologia 3D V-Cache no Ryzen 7 5800X3D, que adiciona um chip de 64MB de L3 cache no topo do CPU, totalizando 96MB, mais do que mesmo o topo de gama Ryzen 9 5950X.
A Intel tem estado a tentar alcançar a AMD, e os CPUs da geração atual, Alder Lake, possuem até 30MB de L3 cache, o que é significativamente inferior à maioria dos CPUs Ryzen, mas têm muito mais L1 e L2 cache. No entanto, a desvantagem da Intel em termos de capacidade de cache L3 não significa necessariamente que os CPUs Ryzen 5000 sejam muito mais rápidos nos jogos. Na nossa análise do Core i9-12900K, verificamos que o 12900K estava empatado com o Ryzen 9 5950X em termos de desempenho nos jogos.
A corrida pela cache quase certamente continuará com os próximos CPUs Ryzen 7000 e Raptor Lake. Foi confirmado que o Ryzen 7000 terá o dobro da capacidade de L2 cache em comparação com o Ryzen 5000, e é provável que vejamos mais CPUs a utilizar a tecnologia V-Cache. Entretanto, a Intel não possui a sua própria versão do V-Cache, mas há rumores de que o Raptor Lake terá muito mais cache L3 do que o Alder Lake, diretamente no CPU.