quarta-feira, 19 de novembro de 2008

Memória Cache

Enquanto os processadores tornaram-se quase 10 mil vezes mais rápidos desde o 8088 (o processador usado no XT), a memória RAM, sua principal ferramenta de trabalho, pouco evoluiu em performance.

Quando foram lançados os processadores 386, percebeu-se que as memórias não eram mais capazes de acompanhar o processador em velocidade, fazendo com que muitas vezes ele tivesse que ficar “esperando” os dados serem liberados pela memória RAM para poder concluir suas tarefas, perdendo muito em desempenho.

Se na época do 386 a velocidade das memórias já era um factor limitante, imagine o quanto este problema não atrapalharia o desempenho dos processadores que temos actualmente. Para solucionar este problema, começou a ser usada a memória cache,um tipo ultra-rápido de memória que serve para armazenar os dados mais frequentemente usados pelo processador, evitando na maioria das vezes que ele tenha que recorrer à comparativamente lenta memória RAM. Sem ela, o desempenho do sistema ficará limitado à velocidade da memória, podendo cair em até 95%!. São usados dois tipos de cache, chamados de cache primário, ou cache L1 (level 1), e cache secundário, ou cache L2 (level 2).
O cache primário é embutido no próprio processador e é rápido o bastante para acompanhá-lo em velocidade. Sempre que um novo processador é desenvolvido, é preciso desenvolver também um tipo mais rápido de memória cache para acompanhá-lo. Como este tipo de memória é extremamente caro (chega a ser algumas centenas de vezes mais cara que a memória RAM convencional) usamos apenas uma pequena quantidade dela. O 486 traz apenas 8 KB, o Pentium traz 16 KB, enquanto o Pentium II e o Pentium III trazem 32 KB, enquanto o Athlon e o Duron da AMD trazem 128 KB.

Para complementar, usamos também um tipo um pouco mais lento de memória cache na forma do cache secundário, que por ser muito mais barato, permite que seja usada uma quantidade muito maior. Nos microcomputadores 486 o mais comum é o uso de 128 ou 256 KB de cache L2, enquanto nos microcomputadores mais modernos o mais comum é o uso de 512 KB. Dependendo do processador usado, o cache L2 pode vir embutido no próprio processador ou fazer parte da placa mãe.

Sempre que o processador precisar ler dados, os procurará primeiro no cache L1. Caso o dado seja encontrado, o processador não perderá tempo, já que o cache primário funciona na mesma frequência que ele. Caso o dado não esteja no cache L1, então o próximo a ser indagado será o cache L2. Encontrando o que procura no cache secundário, o processador já perderá algum tempo, mas não tanto quanto perderia caso precisasse aceder directamente a memória RAM.
Por outro lado, caso os dados não estejam em nenhum dos dois caches, não restará outra saída senão perder vários ciclos de processamento esperando que eles sejam entregues pela lenta memória RAM. Para exemplificar, imagine que você estivesse escrevendo um e-mail e de repente precisasse de uma informação que você havia anotado em um papel. Se o papel estivesse sobre sua mesa, você poderia lê-lo sem perder tempo. Se estivesse dentro de uma gaveta da sua mesa, já seria necessário algum tempo para encontrá-lo enquanto se ele estivesse perdido em algum lugar de um enorme ficheiro do outro lado da sala, seria preciso um tempo enorme.
Antigamente, era comum as placas mães virem com soquetes apropriados, que permitiam ao utilizador adicionar mais memória cache caso quisesse. Os módulos adicionais, chamados de módulos COAST (cache on a stick) eram relativamente acessíveis, levando muita gente a fazer o upgrade. Entretanto, actualmente esta possibilidade não existe mais, pois a grande maioria dos processadores já trazem o cache L2 integrado, não permitindo qualquer modificação, já que não dá para abrir o processador e soldar mais cache. Mesmo no caso de processadores que ainda usam cache embutido na placa mãe, como o K6-2, não existe mais o encaixe para adicionar mais cache.

Ou seja, actualmente a quantidade de cache que você deseja no processador ou placa mãe deve ser decidida antes da compra, baseado nas opções disponíveis. Uma vez adquiridos o processador e a placa mãe não será possível fazer qualquer alteração.

Sem comentários: