quarta-feira, 1 de setembro de 2010

Melhorias no Cache L1

A primeira mudança trazida pelo Pentium foi o aumento da quantidade de cache L1, que passou a ser de 16 KB, o dobro do 486. Além do aumento da capacidade, foram implementados três novos recursos, que tornaram o cache ainda mais eficiente: 

A primeira medida foi a divisão do cache em dois blocos de 8 KB, um dedicado a armazenar dados e outro dedicado a armazenar instruções. Esta divisão permite que tanto as instruções a serem executadas pelo processador (comparação, multiplicação, soma, decisão, etc.) quanto os dados a serem processados, possam ser acedidos simultaneamente no cache, aumentando sua eficiência.
Se, por exemplo, um programa qualquer ordena que o processador leia um número gravado na memória e verifique se ele é maior ou menor que 10, temos duas instruções (ler o número e compará-lo com o número 10) e duas variáveis (o número 10 e o número a ser lido). Com um cache unificado, como no 486, primeiro seriam lidas as instruções e em seguida as variáveis. No cache dividido do Pentium, ambos podem ser lidos no mesmo ciclo de relógio, poupando tempo. 

Outra modificação foi a ampliação do barramento de dados entre o processador e o cache. Enquanto no 486 podem ser lidos ou gravados até 128 bits de dados por ciclo de relógio, no Pentium podem ser lidos ou gravados até 256 bits no cache de instruções e mais 256 no cache de dados. Como ambos os caches podem ser acedidos simultaneamente, temos um barramento total de 512 bits, o quádruplo do que tínhamos no 486! Este barramento mais largo permite que quantidades maiores de dados possam ser lidos a partir do cache no mesmo espaço de tempo, permitindo ao cache acompanhar a maior velocidade de processamento do Pentium. 
A última medida foi a adopção de um cache Write Back, que é capaz de cachear tanto as operações de leitura de dados na memória RAM, quanto as operações de escrita. O cache usado no 486, cacheia apenas as operações de leitura, o que permite ao processador ganhar tempo ao ler dados, mas não ajuda na hora de gravar dados, quando são perdidos vários ciclos até que a memória RAM torne-se disponível.
in Manual de Hardware Completo
de Carlos E Marimoto

Sem comentários: