quarta-feira, 21 de setembro de 2011

Como funciona a memória RAM?

A memória RAM (Random Access Memory) é a forma mais conhecida de memória de computador. A memória RAM é considerada de "acesso aleatório" porque é possível acessar diretamente qualquer célula da memória se você conhece a linha e a coluna que cruzam essa célula.

O tipo de placa e conector usados para a memória RAM nos desktops evoluíram com o passar dos anos. Os primeiros modelos foram patenteados, o que significou que os diversos fabricantes de computadores desenvolveram placas de memória que somente podiam funcionar com seus sistemas específicos. Então surgiu o SIMM (single in-line memory module). Essa placa de memória usava um conector de 30 pinos, e seu tamanho era de aproximadamente 9 x 2 cm. Na maioria dos computadores, você tinha de instalar os SIMMs em pares com capacidade e velocidade iguais. Isto porque a largura do barramento é maior que um único SIMM. Por exemplo, você podia instalar dois SIMMs de 8 megabytes (MB) para conseguir uma memória total de 16 megabytes de RAM. Cada SIMM podia enviar 8 bits de dados de uma vez, enquanto o barramento de sistema podia manipular bits de uma vez. Já as placas SIMM mais modernas, um pouco maiores (aproximadamente 11 x 2,5 cm), usavam um conector de 72 pinos para aumentar a capacidade de transferência, o que permitia memórias RAM de até 256 MB.

De cima para baixo: módulos de memória SIMM, DIMM e SODIMM

Conforme os processadores aumentaram em velocidade e capacidade de transferência, a indústria adotou o novo padrão de módulo de memória, o DIMM (dual in-line memory module). Com um enorme conector de 168 pinos ou 184 pinos e um tamanho de 14 x 2,5 cm, as DIMMs variam em capacidade de 8 MB a 1 GB por módulo e podem ser instaladas sozinhas (e não em pares). A maioria dos módulos de memória do PC e os módulos para os sistemas Mac G5 opera com 2,5 volts, enquanto os sistemas Mac G4 mais antigos, em geral, usam 3,3 volts. Um outro padrão, o módulo de memória RIMM (Rambus in-line memory module), é comparável em tamanho e configuração de pinos à DIMM, mas usa um barramento de memória especial para aumentar muito a velocidade.

Muitas marcas de notebooks usam módulos de memória proprietários, mas vários fabricantes usam a memória baseada na configuração de módulo de memória SODIMM (small outline dual in-line memory module). As placas SODIMM são pequenas (aproximadamente 5 x 2,5 cm) e têm 144 ou 200 pinos. A capacidade varia de 16 MB a 1 GB por módulo. Para conservar espaço, o computador Apple iMac usa placas SODIMMs em vez das tradicionais DIMMs. Os notebooks menores usam até mesmo DIMMs menores, conhecidas como MicroDIMMs, que têm 144 ou 172 pinos.

A maioria das memórias disponíveis hoje é altamente confiável. A maioria dos sistemas possui um controlador de memória que verifica erros ao iniciar. Em geral, os chips de memória com verificação embutida de erros usam um método conhecido como paridade para verificar erros. Os chips de paridade têm um bit extra para cada 8 bits de dados. A maneira como a paridade funciona é simples. Vamos dar uma olhada na paridade par primeiro.

Quando os 8 bits em um byte recebem dados, o chip contabiliza o número total de 1s. Se o número total de 1s é ímpar, o bit de paridade é definido como 1. Se o total é par, o bit de paridade é 0. Quando os dados são lidos de volta dos bits, o total é contabilizado novamente e comparado com o bit de paridade. Se o total é ímpar e o bit de paridade for 1, então os dados são admitidos como válidos e enviados para a CPU. Mas se o total é ímpar e o bit de paridade é 0, o chip reconhece que há um erro em algum lugar nos 8 bits e descarta os dados. A paridade ímpar funciona do mesmo modo, mas o bit de paridade é definido como 1 quando o número total de 1s no byte é par.

O problema com a paridade é que ela descobre erros, mas não faz nada para corrigi-los. Se um byte de dados não combina com seu bit de paridade, então os dados são descartados e o sistema tenta novamente. Os computadores em aplicações críticas necessitam de um nível mais elevado de tolerância de erros. Os servidores de alto desempenho freqüentemente têm uma forma de verificação de erros conhecida como ECC (error-correction code). Como a paridade, o ECC usa bits extras para verificar os dados em cada byte. A diferença é que o ECC usa vários bits para a verificação de erros (a quantidade depende da largura do barramento) em vez de um. A memória de ECC usa um algoritmo especial não somente para detectar erros de bit isolados, mas, na verdade, para corrigi-los também. A memória ECC também detecta ocorrências quando mais que um bit de dado falha em um byte. Essas falhas são muito raras e não são corrigíveis, mesmo com a memória ECC.

A maioria dos computadores vendidos hoje usa chips de memória sem paridade. Esses chips não possuem qualquer tipo de verificação de erro embutido, mas, em vez disso, se apóiam no controlador de memória para a detecção de erros.

­

2 comentários: