sexta-feira, 11 de dezembro de 2009

Memória cache

Os processadores experimentaram, ao longo dos anos, grandes avanços na velocidade de processamento. O Pentium II de 300 MHz (processador que já raramente é utilizado), por exemplo, é mais de 1000 vezes mais veloz que o velho 8088 usado no IBM PC XT. As memórias também experimentaram avanços significativos, porém mais modestos.
O resultado disso é um grande desequilíbrio entre a velocidade do processador e a velocidade da memória.
Este problema é antigo, pois já ocorria com os computadores de grande porte durante os anos 60. Com os processadores, só passou a existir tal problema a partir de 1990, aproximadamente. Antes disso os processadores, sendo mais lentos, ficavam perfeitamente sintonizados com a velocidade das memórias. As memórias, mesmo sendo relativamente lentas, ainda eram capazes de entregar dados na velocidade exigida pelos processadores.



A memória RAM usada em larga escala nos PCs é chamada de DRAM (Dynamic RAM, ou RAM Dinâmica). Ten como principais características o preço relativamente baixo, grande capacidade num pequeno espaço e velocidade relativemente baixa.
O preço baixo e o alto grau de miniaturização fizeram com que a DRAM fosse o tipo de memória mais indicado para os microcomputadores. A sua baixa velocidade não chegava a ser um problema, pelo menos até 1990.

Existe um outro tipo de memória RAM que apresenta uma velocidade de operação muito mais alta. É chamada de SRAM (Static RAM, ou RAM Estática). As suas principais características são o preço elevado, grande capacidade mas requer um grande espaço e a alta velocidade.
Tecnicamente seria possível equipar um PC com memória SRAM, mas teríamos duas grandes desvantagens. Uma delas é o preço. A SRAM é cerca de 10 vezes mais cara que a DRAM da mesma capacidade. A outra
desvantagem é o seu baixo grau de compactação. Seriam necessárias placas de circuito enormes para dotar um PC com uma razoável quantidade de memória.


A solução utilizada pela indústria de PCs foi a mesma usada nos computadores de grande porte nos anos 60. Esta solução é a memória cache.
É formada por uma pequena quantidade de SRAM, usada para acelerar uma grande quantidade de DRAM. Quando o processador precisa ler dados da DRAM, estes são antes transferidos para a cache (isto não é feito pelo processador mas sim por um circuito especial chamado controlador de cache, que faz parte do chipset). O processador obtém os dados directamente da cache e enquanto esses dados estão a ser lidos, o controlador de cache antecipa-se e acessa mais dados da DRAM, transferindo-os para a memória cache. O resultado é que na maior parte do tempo, o processador encontra dentro da cache os dados que procura. Este processo funciona bem porque, mesmo com grandes quantidades de memória, um processador passa
bastante tempo utilizando trechos pequenos de memória. Por exemplo, ao executar um programa com o tamanho de 200 kB, todo ele cabe dentro de uma cache com apenas 256 kB. Ao executá-lo, os dados estariam praticamente o tempo todo a ser obtidos da rápida memória cache.

O primeiro processador a utilizar memória cache foi o 486. No seu interior existem 8 kB de memória estática super veloz que opera como cache. Este tipo de cache, localizada dentro do processador, é chamada de Cache interna, Cache primária ou Cache de nível 1 (L1).


Cache interna do 486

Apesar de ter apenas 8 kB, a cache interna do 486 podia acelerar consideravelmente o desempenho do acesso à memória. Os processadores 386 não tinham cache interna, e nem precisavam dela,
enquanto operavam com até 20 MHz. Com o lançamento de versões de 25, 33 e 40 MHz, o baixo desempenho da memória DRAM obrigou os fabricantes a acrescentarem memória cache. Esta cache não era localizada dentro do processador, como ocorria com o 486. Era formada por chips de
memória SRAM, e era chamada de Cache externa, Cache secundária ou Cache de nível 2 (L2). Related Posts with Thumbnails

Nenhum comentário:

Postar um comentário