Os caches são pequenos devido a uma combinação de fatores relacionados ao custo, velocidade e limitações tecnológicas:
*
Custo: A memória mais rápida é significativamente mais cara por bit que a memória mais lenta. Construir um cache grande e de alta velocidade seria proibitivamente caro. A relação custo-benefício diminui acentuadamente à medida que o tamanho do cache aumenta.
*
Velocidade: Os tempos de acesso ao cache precisam ser extremamente rápidos para serem eficazes. Os caches menores permitem designs mais simples e mais rápidos. Os caches maiores introduzem circuitos mais complexos e tempos de acesso mais longos, negando os benefícios de uma capacidade maior. A vantagem da velocidade é fortemente acoplada ao tamanho.
*
Consumo de energia: A memória de alta velocidade consome mais energia. Um cache maior e mais rápido consumiria significativamente mais energia, levando ao aumento da geração de calor e redução da duração da bateria (especialmente crucial para dispositivos móveis).
*
Limitações tecnológicas: A fabricação de caches extremamente grandes e de alta velocidade é tecnologicamente desafiadora e cara. Enquanto a tecnologia continua a melhorar, existem limites práticos de quão densamente e rapidamente podemos embalar transistores para células de memória.
*
Princípio da localidade: Os caches dependem do princípio da localidade - a ideia de que dados e instruções acessados recentemente provavelmente serão acessados novamente em breve. Um cache relativamente pequeno pode explorar efetivamente esse princípio para uma grande porcentagem de acessos à memória. Aumentar o tamanho do cache além de um determinado ponto produz retornos que diminuem em termos de desempenho aprimorado, pois a probabilidade de encontrar os dados necessários no cache maior não aumenta proporcionalmente.
Em essência, o tamanho ideal do cache é uma troca entre custo, velocidade, consumo de energia e eficácia. Um cache pequeno e rápido fornece um aumento significativo de desempenho a um custo razoável, enquanto um cache maior ofereceria apenas ganhos marginais de desempenho, aumentando significativamente seu custo e consumo de energia. É por isso que vários níveis de caches (L1, L2, L3) são usados; Cada nível fornece uma troca de velocidade/tamanho diferente.