quinta-feira, 7 de fevereiro de 2008

Revisitando a Memória RAM

Já falamos sobre a RAM em diversas oportinidades, aqui no Blog (nos posts de 21 e 22 de Janeiro, por exemplo, vimos que o upgrade de memória é uma forma relativamente barata e funcional de se incrementar o desempenho do sistema). Todavia, devido a alguns e-mails solicitando informações adicionais, resolvi dedicar mais estas linhas ao assunto.
A RAM (sigla de "memória de acesso aleatório", em inglês) é um componente fundamental em qualquer sistema computacional. É nela que são carregados e processados o sistema operacional, os aplicativos e os demais arquivos que manipulamos quando utilizamos o PC. Sua principal característica (e talvez seu maior "defeito") consiste no fato de ser "volátil" - ou seja, "perder" os dados armazenados quando desenergizada. Por essa razão, o boot - processo mediante o qual o sistema operacional e os aplicativos são transferidos para a memória a partir do HD - precisa ser refeito sempre que ligamos o computador.
Por outro lado, a RAM é muito mais rápida que o HD - um módulo DDR2-800MHz, por exemplo, apresenta tempo de acesso cerca de 300.000 vezes menor do que um disco moderno, de 7.200 RPM, e uma taxa de transferência contínua mais de 100 vezes maior.
Taxa de transferência, tempo de acesso e latência são parâmetros que definem a performance da memória. Para entender isso melhor, é preciso entender alguns conceitos de "informatiquês": O módulo do nosso exemplo realiza 800 milhões de transferências (leituras ou escritas) por segundo, cada uma com 64 bites (8 bytes), resultando em 6.400 MB/s. O tempo de acesso é a combinação do tempo de busca e do tempo de latência, ou seja, o tempo médio necessário para realizar um acesso a um endereço aleatório da memória. Já a latência, medida em nanosegundos (1 ns = 1 bilionésimo de segundo), corresponde ao intervalo mínimo entre cada ciclo de leitura que o módulo suporta (quanto menor ela for, maior será a freqüência máxima em que o módulo poderá operar).
Pelo exposto, fica fácil entender porque a quantidade de memória é um diferencial preponderante no desempenho global da máquina: se ela for insuficiente, o sistema terá de recorrer ao swap-file (memória virtual simulada pelo HD), o que resulta numa lentidão bastante expressiva.
Existem vários "sabores" de RAM, sendo a DRAM (RAM dinâmica presente nos módulos de memória que instalamos em nossas placas-mãe) o mais comum. Com a evolução tecnológica, ela foi se tornando cada vez mais barata (na época dos PCs 486, pagava-se 40 dólares por megabyte; hoje, por esse mesmo valor, dá para comprar um módulo de 512 MB). Concomitantemente, todavia, as exigências dos sistemas e programas também aumentaram: enquanto o MS-DOS rodava com 2 ou 4 MB de memória, o XP e o Vista requerem, respectivamente, 512 MB e 1 GB (ou mais) para rodar com "fôlego".
A RAM é disponibilizada em pentes de diversas capacidades. Dependendo do número de slots existentes em sua placa, você pode adicionar sem problema algum um pente de 512 MB ao de 256 MB que veio com seu computador, por exemplo, totalizando 768 MB. Mas é importante atentar para o tipo de memória suportada, já que as tradicionais SDRAM - nas quais o controlador realiza apenas uma leitura por ciclo -, embora sejam usadas apenas em computadores antigos, como os Intel Pentium II e III e AMD Athlon e Duron soquete A, ainda dividem espaço nas prateleiras com as DDR e DDR2 - que são bem mais rápidas, pois fazem duas e quatro operações de leitura por ciclo de clock, respectivamente (como não é mais fabricada, a memória SDRAM é mais cara e difícil de encontrar do que as DDR/DDR2).
Note também que memórias de tecnologias diferentes não são compatíveis ou intercambiáveis entre si. É possível diferenciar os módulos visualmente pelos chanfros que existem em suas trilhas de contatos (que "casam" com os ressaltos existentes nos soquetes da placa-mãe). As SDRAM possuem dois chanfros, enquanto que as DDR, apenas um. Já nas DDR2, além de o chanfro ser posicionado de forma diferente, os módulos têm um número maior de contatos (são 240 pinos contra 184 das DDR convencionais), sendo que alguns modelos trazem ainda um dissipador metálico de calor, que lhes permite operar em freqüências mais altas. Determinados placas-mãe, fabricadas em épocas de transição - quando uma tecnologia de memória é substituída por outra - integram soquetes de dois tipos, permitindo instalar pentes SDRAM/DDR, DDR/DDR2 ou DDR2/DDR3 (desde que não se "misturem" módulos de categorias distintas).
Há outras tecnologias de memórias de acesso aleatório, dentre as quais a SRAM(RAM estática), que é uma memória ultra-rápida, geralmente usada como cache em processadores e outros dispositivos de hardware (uma pequena quantidade é capaz de agilizar sobremaneira o acesso às informações mais requisitadas). Além dela, temos a MRAM (quase tão rápida quanto a SRAM, mas que consome menos energia e suporta um número quase ilimitado de ciclos de leitura e gravação - se não fosse extremamente cara, poderia substituir com vantagens os demais tipos de memórias usados nos computadores) e a Flash (capaz de reter os dados por longos períodos, mesmo à ausência de alimentação elétrica), que é amplamente utilizada em cartões de memória, pendrives, discos rígidos SSD, câmeras digitais, telefones celulares e palmtops). Mas isso já é outra história e fica para outra vez.

Em tempo: Uma das grandes reclamações dos usuários de PCs é a demora no processo de boot. Esse problema talvez venha a ser minimizado (ou resolvido) com a adoção dos discos SSD, mas, até que isso ocorra, você pode reduzir substancialmente o tempo de "inicialização" se, ao invés de desligar seu PC, colocar o sistema em "Espera" ou em "Hibernação".No primeiro caso, a máquina permanece em "animação suspensa" (a maioria dos componentes é desligada e o clock do processador é reduzido, mas os módulos de memória permancem ativos); no segundo, embora ela seja totalmente desligada (podendo inclusive ser desconectada da tomada), o conteúdo da memória é salvo integralmente no HD de uma maneira que possibilita sua restauração se dar bem mais rapidamente do que na inicialização convencional.

Um bom "resto" de semana a todos.