A tecnologia do cache

Uma pergunta comum neste ponto é: "por que não fazer toda a memória do computador funcionar na mesma velocidade do cache L1 para que nenhum armazenamento em cache seja necessário?" Isso funcionaria, mas seria caríssimo. A idéia do armazenamento em cache é usar uma pequena quantidade de memória de alto custo para acelerar uma grande quantidade de memória mais lenta e de menor custo.

Ao projetar um computador, a meta é permitir que o microprocessador funcione em sua velocidade máxima, com o menor custo possível. Um chip de 500MHz passa por 500 milhões de ciclos em um segundo (um ciclo a cada dois nanosegundos). Sem os caches L1 e L2, o acesso à memória principal leva 60 nanosegundos, ou cerca de 30 ciclos desperdiçados acessando a memória.

Quando pensamos no assunto, é incrível que quantidades relativamente minúsculas de memória possam maximizar o uso de quantidades muito maiores de memória. Pense em um cache L2 de 256 kilobytes que armazena em cache 64 megabytes de RAM. Nesse caso, 256 mil bytes armazenam em cache, com eficiência, 64 milhões de bytes. Por que isso funciona?

Na ciência da computação, temos um conceito teórico chamado localidade de referência. Ele significa que em um programa razoavelmente grande, em algum momento considerado, apenas pequenas porções serão utilizadas e com muita freqüência. Por mais estranho que possa parecer, localidade de referência funciona para a grande maioria dos programas grandes. Mesmo se o programa executável tiver 10 megabytes de tamanho, apenas poucos bytes dele são usados em um intervalo de tempo qualquer, e sua taxa de repetição é altíssima. Na próxima página, falaremos mais sobre localidade de referência.