domingo, 6 de fevereiro de 2011

Cache Interna

A cache interna apareceu pela primeira vez no processador Intel 80486Dx e denominou-se L1 (Level 1). Desde esse momento, a cache teve o seu desenvolvimento natural, principalmente em tamanho, como podemos ver na tabela abaixo apresentada.

Nesta tabela podemos ver que alguns processadores têm também uma cache L2, o equivalente à cache externa situada nas placas principais, que posteriormente começou a ser parte integrante do processador.



CPU
Tamanho da Cache
80486DX e DX2
8 kb L1
Pentium
16 Kb L1
Pentium Pro
16Kb L1 + 256 KB L2
Pentium MMX
32 KB L1
AMD K6 e K6-2
64 KB L1
Pentium II e Pentium III
32 KB L1
Celeron
32 KB + 128KB L2
Pentium II CuMine
32 KB L1 + 256KB L2
AMD K6-3
64KB L1 + 256KB L2
AMD K7 Athlon
128Kb L1
AMD Duron
128 KB L1 + 64 KB L2
AMD Athlon Thunderbird
128 KB L1 + 256KB L2


 O processador tem de receber e entregar os dados a alta velocidade. A memória RAM não consegue acompanhar essa necessidade de velocidade, pelo que foi criada uma memória RAM especial, a que se chamou cache, a qual é utilizada como área de armazenamento temporário. Para se tirar a máxima performance do CPU, o número de transacções para o exterior deve ser minimizado. Quanto mais dados puderem ser mantidos dentro do CPU, melhor será a performance. Tomemos como exemplo os processadores 486, equipados com uma unidade de virgula flutuante e uma cache interna de 8KB. Estes dois elementos ajudam a minimizar o fluxo de dados que entra e sai do CPU, aumentando a sua performance.

Como já vimos, a cache funciona como um armazenamento temporário para instruções frequentemente utilizadas, reduzindo assim a busca de dados na memória principal do sistema.

Apesar de a cache L1 aparecer inicialmente no 486, a partir do Pentium ela passou a ter um refinamento. O 486 tem uma cache unificada de 8KB, que era usada para código e para instruções. A partir do Pentium, os processadores passaram a ter cache L1 dividida em duas partes, sendo uma delas reservada para dados e outra reservada para código. Retomando o exemplo do Pentium, temos uma cache L1 com 16Kb, sendo 8KB para código e 8KB para dados. Vejamos as características da cada um destes tipos de cache.

Temos as seguintes características da cache única:
  • Para um dado tamanho de cache, uma cache única apresenta uma taxa de acerto maior do que caches separadas.
  • Apenas é necessário projectar uma cache.
  • A manipulação do código é mais simples.
Vejamos agora as caches separadas:
  • Reduzem os conflitos de barramento.
  • Aumentam a disponibilidade de cache quando necessário.
A opção do uso de caches separadas para o Pentium foi devida á necessidade de uma maior largura de banda do que a que era proporcionada pela cache única.

A memória cache torna-se especialmente importante nos processadores em que a frequnência interna é multiplicada, o que a torna muito superior á externa. Assim, a cache permite uma recepção e entrega de dados muito mais rápida.

Os computadores têm dois niveis de memória cache, a L1 interna e a L2 inicialmente externa, mas que posteriormente passou também a ser colocada no próprio chip do processador, com notórias vantagens a nível de performance global.


Sem comentários:

Enviar um comentário