O uso de vários níveis de cache é parcialmente um mecanismo para coordenar processadores multi-core e parcialmente um compromisso entre preço e desempenho.
Em um processador com vários núcleos, cada núcleo tem seu próprio cache L1. Isso permite que o núcleo leia e grave de e para o cache sem se preocupar em interferir nos outros núcleos. Os núcleos precisam de armazenamento compartilhado, para que possam trocar certas informações facilmente. O cache L2 é compartilhado por todos os núcleos, por isso é usado como uma espécie de espaço de armazenamento comum, onde as informações estão disponíveis para todos os threads.
A diferença entre os caches L2 e L3 é a parte do compromisso. Os caches são feitos de RAM estática ou SRAM. Isso é diferente da memória RAM dinâmica (DRAM) que compõe sua memória principal. A RAM dinâmica precisa ser "atualizada" periodicamente, ou seja, com o tempo, as células DRAM perdem seu valor, a menos que sejam lidas e reescritas. Seu controlador de memória faz isso automaticamente, mas toda vez que o controlador de memória tem que fazer isso (milhares de vezes por segundo), ele é incapaz de ler / gravar valores para o processador até que seja feito. Isso desacelera a DRAM. A SRAM não tem essa limitação, a SRAM manterá seu valor indefinidamente, desde que tenha potência operacional, tornando-a muito mais rápida. Então, seus caches (L2 e L3) são feitos de SRAM. O problema é que a SRAM é muito cara; enquanto 4GB de DRAM de alta velocidade é um pouco caro, mas acessível, 4GB de SRAM está bem acima da sua faixa de preço.
Assim, sempre que um fabricante de processador decide adicionar mais SRAM ao projeto, fica visivelmente mais caro. A SRAM vem em várias velocidades e, como você pode esperar, a SRAM mais rápida é mais cara que a SRAM mais lenta. Portanto, o fabricante do seu processador tentou otimizá-lo para velocidade e custo usando uma SRAM de velocidade mais alta e uma SRAM de velocidade mais baixa. O processador é então projetado de tal forma que ele irá colocar os valores que ele mais precisa no cache mais rápido (L2) e as informações que ele precisa menos em um cache mais lento (L3). Ao gerenciar cuidadosamente essa memória no microcódigo do processador, isso cria um comprometimento: há mais cache e parte do cache (esperançosamente, o cache que o processador mais precisa) é muito rápido.
Portanto, para resumir, os processadores têm caches de vários níveis para aumentar a capacidade do cache do processador sem aumentar drasticamente o preço do processador. Essa mistura cuidadosa permite processadores mais rápidos e baratos.