O sistema RAM

A velocidade do sistema de memória RAM é controlada pela largura do barramento (bus) e pela velocidade de barramento. A largura de barramento se refere ao número de bits que podem ser enviados à CPU simultaneamente, e a velocidade de barramento se refere ao número de vezes que um grupo de bits pode ser enviado a cada segundo. Um ciclo de barramento ocorre toda vez que dados trafegam da memória para a CPU.

Por exemplo, um barramento de 100 MHz e 32 bits é teoricamente capaz de enviar 4 bytes (32 bits divididos por 8 = 4 bytes) de dados para a CPU, 100 milhões de vezes por segundo, enquanto um barramento de 66Mhz e 16 bits pode enviar 2 bytes de dados, 66 milhões de vezes por segundo. Se você fizer as contas, descobrirá que simplesmente mudando a largura de barramento de 16 bits para 32 bits e a velocidade de 66 MHz para 100 MHz, por exemplo, permitirá que três vezes mais dados (400 milhões de bytes contra 132 milhões de bytes) passem através da CPU a cada segundo.

Na realidade, a memória RAM raramente opera em velocidade otimizada. A latência muda a equação radicalmente. Ela se refere ao número preciso de ciclos de clock necessários para ler um bit de informação. Como exemplo, a RAM com taxa de 100 MHz é capaz de enviar um bit em 0,00000001 segundos, mas pode levar 0,00000005 segundos para começar o processo de leitura do primeiro bit. Para compensar a latência, a CPU usa uma técnica especial chamada modo burst.

O modo burst depende da expectativa de que os dados requisitados pela CPU serão armazenados em células seqüenciais de memória. O controlador de memória antecipa que qualquer trabalho que a CPU esteja realizando continue a vir da mesma série de endereços de memória, de modo que ela leia vários bits de dados consecutivos em conjunto. Isso significa que somente o primeiro bit está sujeito ao efeito total da latência; ler bits sucessivos leva significativamente menos tempo. A taxa do modo burst da memória é normalmente expresso como quatro números separados por traços. O primeiro número informa o número de ciclos de clock necessários para começar a operação de leitura; o segundo, o terceiro e o quarto mostram quantos ciclos são necessários para ler cada bit consecutivo em uma linha, também conhecida como wordline. Por exemplo: 5-1-1-1 dizem a você que leva 5 ciclos para ler o primeiro bit e um ciclo para cada bit depois dele. Obviamente, quanto menores estes números, melhor é a performance da memória.

O modo burst é freqüentemente usado com o pipelining, outro meio de minimizar os efeitos da latência. O pipelining organiza a recuperação dos dados em um tipo de processo de linha de montagem. O controlador de memória lê, simultaneamente, uma ou mais palavras da memória, envia a palavra ou as palavras atuais para a CPU e grava uma ou mais palavras nas células de memória. Usados em conjunto, o modo burst e o pipelining podem reduzir drasticamente o atraso causado pela latência.

Então, por que você não compraria a memória maior e mais rápida possível? A velocidade e o tamanho do barramento de memória devem ser compatíveis com o barramento do sistema. Você pode usar a memória designada para trabalhar a 100 MHz em um sistema de 66 MHz, mas ela vai funcionar a uma velocidade de barramento de apenas 66 MHz, não trazendo, portanto, nenhuma vantagem. Além disso, uma memória de 32 bits não caberia em um barramento de 16 bits.

Mesmo com um barramento grande e rápido, os dados demoram mais para irem da placa de memória à CPU do que a CPU pode processar os dados. É nesse contexto que surge a idéia da memória cache.