Memória Cache
Memória cache é um tipo de memória de alto desempenho, também chamada memória estática. O tipo de memória usado na memória RAM principal do computador é chamado memória dinâmica. A memória estática consome mais energia, é mais cara e é fisicamente maior que a memória dinâmica, mas é muito mais rápida. Ela pode trabalhar no mesmo clock do processador, o que a memória dinâmica não é capaz de fazer.Já que ir ao “mundo exterior” para buscar dados faz com que o processador trabalhe a uma taxa de clock inferior, a técnica da memória cache é usada. Quando o processador carrega um dado de uma certa posição da memória, um circuito chamado controlador de memória cache (não desenhado na Figura 6 em prol da simplicidade) carrega na memória cache um bloco inteiro de dados abaixo da atual posição que o processador acabou de carregar. Como normalmente os programas rodam de maneira seqüencial, a próxima posição de memória que o processador irá requisitar será provavelmente a posição imediatamente abaixo da posição da memória que ela acabou de carregar. Como o controlador de memória cache já carregou um monte de dados abaixo da primeira posição de memória lida pelo processador, o próximo dado estará dentro da memória cache, portanto o processador não precisa “sair” para buscar os dados: eles já estão carregados na memória cache embutida no processador, os quais ela pode acessar à sua taxa de clock interna.
O controlador de cache está sempre observando as posições de memória que estão sendo carregadas e carregando dados de várias posições de memória depois da posição de memória que acaba de ser lida. Para darmos um exemplo real, se o processador carregou dados armazenados no endereço 1.000, o controlador de cache carregará dados do endereço “n” após o endereço 1.000. Esse número “n” é chamado página; se um dado processador está trabalhando com páginas de 4 KB (que é um valor típico), ele carregará dados de 4.096 endereços abaixo da atual posição de memória que está sendo carregada (endereço 1.000 em nosso exemplo). A propósito, 1 KB é igual a 1.024 bytes, por isso 4 KB é igual a 4.096 e não 4.000. Na Figura 7 nós ilustramos esse exemplo.
Figura 7: Como funciona o controlador de memória cache.
Quanto maior a memória cache, maiores são as chances de que a informação necessária ao processador já esteja lá, então o processador precisará acessar diretamente a memória RAM com menos freqüência, e assim aumentando o desempenho do sistema (apenas lembre-se que toda vez que o processador precisa acessar a memória RAM diretamente, ele precisa diminuir sua taxa de clock para essa operação).
Chamamos de “acerto” (“hit”) quando o processador carrega uma informação requisitada do cache, e de “erro” (“miss”) se a informação requisitada não está lá e o processador precise acessar a memória RAM do sistema.
L1 e L2 significam “nível 1” (Level 1) e “nível 2” (“Level 2”), respectivamente, e referem-se à distância em que se encontram do núcleo do processador (unidade de execução). Uma dúvida comum é porque ter três memórias cache distintas (cache de dados L1, cache de instrução L1 e L2). Preste atenção na Figura 6 e você verá que o cache de instrução L1 funciona como “cache de entrada”, enquanto o cache de dados L1 funciona como “cache de saída”. O cache de instrução L1 – que é geralmente menor que o cache L2 – é particularmente eficiente quando o programa começa a repetir uma pequena parte dele (loop), porque as instruções requisitadas estarão mais próximas da unidade de busca.
Na página de especificações de um processador o cache L1 pode ser encontrado com diferentes tipos de representação. Alguns fabricantes listam duas memórias cache L1 separadamente (algumas vezes chamando o cache de instrução de “I” e o cache de dados de “D”), alguns acrescentam a soma dos dois e escrevem “separados” – então “128 KB, separados” significa 64 KB cache de instrução e 64 KB de cache de dados –, e alguns simplesmente somam os dois e você tem que adivinhar que o número é o total e que você deve dividi-lo por dois para saber a capacidade de cada cache. A exceção, entretanto, fica com os processadores Pentium 4 e os Celeron mais novos, baseados nos soquetes 478 e 775.
Os processadores Pentium 4 (e processadores Celeron soquetes 478 e 775) não possuem cache de instrução L1. Em vez disso eles possuem cache de rastreamento de execução, que é um cache localizado entre a unidade de decodificação e a unidade de execução. Portanto, o cache de instrução L1 está lá, mas com nome e lugar diferentes. Estamos falando isso porque esse é um erro muito comum, pensar que processadores Pentium 4 não possuem cache de instrução L1. Então, quando comparam o Pentium 4 com outros processadores, alguns podem achar que seu cache L1 é muito menor, porque estão contando apenas o cache de dados L1 de 8 KB. O cache de rastreamento de execução dos processadores Pentium 4 e Celeron é de 150 KB e deve ser levado em conta, é claro.
- 2
- 2
Respostas recomendadas
Crie uma conta ou entre para comentar
Você precisa ser um usuário para fazer um comentário
Criar uma conta
Crie uma nova conta em nossa comunidade. É fácil!
Crie uma nova contaEntrar
Já tem uma conta? Faça o login.
Entrar agora