Blogger Template by Blogcrowds

Memória e HD


Memória

Depois do processador, temos a memória RAM, usada por ele para armazenar os arquivos e programas que estão sendo executados, como uma espécie de mesa de trabalho. A quantidade de memória RAM disponível tem um grande efeito sobre o desempenho, já que sem memória RAM suficiente o sistema passa a usar memória swap, que é muito mais lenta.

A principal característica da memória RAM é que ela é volátil, ou seja, os dados se perdem ao reiniciar o micro. É por isso que ao ligar é necessário sempre refazer todo o processo de carregamento, em que o sistema operacional e aplicativos usados são transferidos do HD para a memória, onde podem ser executados pelo processador.

Os chips de memória são vendidos na forma de pentes de memória. Existem pentes de várias capacidades, e normalmente as placas possuem dois ou três encaixes disponíveis. Você pode instalar um pente de 512 MB junto com o de 256 MB que veio no micro para ter um total de 768 MB, por exemplo.

dica_html_4dcdd2f1
Módulo DDR

Ao contrário do processador, que é extremamente complexo, os chips de memória são formados pela repetição de uma estrutura bem simples, formada por um par de um transístor e um capacitor. Um transístor solitário é capaz de processar um único bit de cada vez, e o capacitor permite armazenar a informação por um certo tempo. Essa simplicidade faz com que os pentes de memória sejam muito mais baratos que os processadores, principalmente se levarmos em conta o número de transistores.

Um pente de 1 GB é geralmente composto por 8 chips, cada um deles com um total de 1024 megabits, o que equivale a 1024 milhões de transistores. Um Athlon 64 X2 tem "apenas" 233 milhões e custa bem mais caro que um pente de memória.

Existem basicamente dois tipos de memória em uso: SDR e DDR. As SDR são o tipo tradicional, onde o controlador de memória realiza apenas uma leitura por ciclo, enquanto as DDR são mais rápidas, pois fazem duas leituras por ciclo. O desempenho não chega a dobrar, pois o acesso inicial continua demorando o mesmo tempo, mas melhora bastante.

Os pentes de memória SDR são usados em micros antigos: Pentium II e Pentium III e os primeiros Athlons e Durons soquete A. Por não serem mais fabricados, eles são atualmente muito mais raros e caros que os DDR, algo semelhante ao que aconteceu com os antigos pentes de 72 vias, usados na época do Pentium 1.

É fácil diferenciar os pentes SDR e DDR, pois os SDR possuem dois chanfros e os DDR apenas um. Essa diferença faz com que também não seja possível trocar as bolas, encaixando por engano um pente DDR numa placa-mãe que use SDR e vice-versa (a menos que você use um alicate e um martelo, mas a placa provavelmente não vai funcionar mais depois ;).

Mais recentemente, temos assistido a uma nova migração, com a introdução dos pentes de memória DDR2. Neles, o barramento de acesso à memória trabalha ao dobro da freqüência dos chips de memória propriamente ditos. Isso permite que sejam realizadas duas operações de leitura por ciclo, acessando dois endereços diferentes.

Como a capacidade de realizar duas transferências por ciclo introduzida nas memórias DDR foi preservada, as memórias DDR2 são capazes de realizar um total de 4 operações de leitura por ciclo, uma marca impressionante :). Existem ainda alguns ganhos secundários, como o menor consumo elétrico, útil em notebooks.

Os pentes de memória DDR2 são incompatíveis com as placas-mãe antigas. Eles possuem um número maior de contatos (um total de 240, contra 184 dos pentes DDR), e o chanfro central é posicionado de forma diferente, de forma que não seja possível instalá-los nas placas antigas por engano. Muitos pentes são vendidos com um dissipador metálico, que ajuda na dissipação do calor e permite que os módulos operem a freqüências mais altas.

dica_html_55eca530
Módulo DDR2

Algumas placas (geralmente modelos de baixo custo) possuem dois tipos de soquete, permitindo usar módulos SDR e DDR, DDR e DDR2 ou DDR2 e DDR3 de acordo com a conveniência, mas sem misturar os dois tipos. Elas são comuns durante os períodos de transição, quando uma tecnologia de memória é substituída por outra e podem ser uma opção interessante, já que permitem aproveitar os módulos antigos.

De qualquer forma, apesar de toda a evolução a memória RAM continua sendo muito mais lenta que o processador. Para atenuar a diferença, são usados dois níveis de cache, incluídos no próprio processador: o cache L1 e o cache L2.

O cache L1 é extremamente rápido, trabalhando próximo à freqüência nativa do processador. Na verdade, os dois trabalham na mesma freqüência, mas são necessários alguns ciclos de clock para que a informação armazenada no L1 chegue até as unidades de processamento. No caso do Pentium 4, chega-se ao extremo de armazenar instruções já decodificadas no L1: elas ocupam mais espaço, mas eliminam este tempo inicial.

De uma forma geral, quanto mais rápido o cache, mais espaço ele ocupa e menos é possível incluir no processador. É por isso que o Pentium 4 inclui apenas um total de 20 KB desse cache L1 ultra-rápido, contra os 128 KB do cache um pouco mais lento usado no Sempron.

Em seguida vem o cache L2, que é mais lento tanto em termos de tempo de acesso (o tempo necessário para iniciar a transferência) quanto em largura de banda, mas é bem mais econômico em termos de transistores, permitindo que seja usado em maior quantidade.

O volume de cache L2 usado varia muito de acordo com o processador. Enquanto a maior parte dos modelos do Sempron utilizam apenas 256 KB, os modelos mais caros do Core 2 Duo possuem 4 MB completos.

HD

No final das contas, a memória RAM funciona como uma mesa de trabalho, cujo conteúdo é descartado a cada boot. Temos em seguida o disco rígido, também chamado de hard disk (o termo em Inglês), HD ou até mesmo de "disco duro" pelos nossos primos lusitanos. Ele serve como unidade de armazenamento permanente, guardando dados e programas.

O HD armazena os dados em discos magnéticos que mantêm a gravação por vários anos. Os discos giram a uma grande velocidade e um conjunto de cabeças de leitura, instaladas em um braço móvel faz o trabalho de gravar ou acessar os dados em qualquer posição nos discos. Junto com o CD-ROM, o HD é um dos poucos componentes mecânicos ainda usados nos micros atuais e, justamente por isso, é o que normalmente dura menos tempo (em média de três a cinco anos de uso contínuo) e que inspira mais cuidados.

dica_html_m247e28ff
Mecanismo interno do HD

Na verdade, os discos magnéticos dos HDs são selados, pois a superfície magnética onde são armazenados os dados é extremamente fina e sensível. Qualquer grão de poeira que chegasse aos discos poderia causar danos à superfície, devido à enorme velocidade de rotação dos discos. Fotos em que o HD aparece aberto são apenas ilustrativas, no mundo real ele é apenas uma caixa fechada sem tanta graça.

Apesar disso, é importante notar que os HDs não são fechados hermeticamente, muito menos a vácuo, como muitos pensam. Um pequeno filtro permite que o ar entra e saia, fazendo com que a pressão interna seja sempre igual à do ambiente. O ar é essencial para o funcionamento do HD, já que ele é necessário para criar o "colchão de ar" que evita que as cabeças de leitura toquem os discos.

Em qualquer HD, você encontra um pequeno orifício para entrada de ar (geralmente escondido embaixo da placa lógica ou diretamente sob a tampa superior), que permite que pequenos volumes de ar entram e saiam, mantendo a pressão interna do HD sempre igual à do ambiente. Este orifício é sempre protegido por um filtro, que impede a entrada de partículas de poeira.

dica_html_m304b3b3d
Orifício de ventilação do HD

Tradicionalmente, o sistema operacional era sempre instalado no HD antes de poder ser usado. Enquanto está trabalhando, o sistema precisa freqüentemente modificar arquivos e configurações, o que seria impossível num CD-ROM, já que os dados gravados nele não podem ser alterados.

Isso mudou com o aparecimento do Knoppix, Kurumin e outras distribuições Linux que rodam diretamente do CD-ROM. Neste caso, um conjunto de modificações "enganam" o sistema, fazendo com que ele use a maior parte dos arquivos (os que não precisam ser alterados) a partir do CD-ROM, e o restante (os que realmente precisam ser alterados) a partir da memória RAM.

Isto tem algumas limitações: as configurações são perdidas ao desligar (a menos que você as salve em um pendrive ou em uma pasta do HD), pois tudo é armazenado na memória RAM, cujo conteúdo é sempre perdido ao desligar o micro.

Mas, voltando à função do HD, imagine que, como a memória RAM é cara, você compra sempre uma quantidade relativamente pequena, geralmente de 512 MB a 2 GB, de acordo com a aplicação a que o micro se destina e ao seu bolso. Por outro lado, você dificilmente vai encontrar um HD com menos que 80 ou 120 GB à venda. Ou seja, temos centenas de vezes mais espaço no HD do que na memória RAM.

Bem antigamente, nos anos 80, época dos primeiros PCs, você só podia rodar programas que coubessem na memória RAM disponível. Naquela época, a memória RAM era muito mais cara que hoje em dia, então o mais comum era usar 256 ou 512 KB (sim, kbytes, duas mil vezes menos que usamos hoje, tempos difíceis aqueles :). Os mais abonados tinham dinheiro para comprar um megabyte inteiro, mas nada além disso.

Se você quisesse rodar um programa com mais de 256 KB, tinha que comprar mais memória, não tinha conversa. Sem outra escolha, os programadores se esforçavam para deixar seus programas o mais compactos possíveis para que eles rodassem nos micros com menos memória.

Mais tarde, quando a Intel estava desenvolvendo o 386, foi criado o recurso de memória virtual, que permite simular a existência de mais memória RAM, utilizando espaço do HD. A memória virtual pode ser armazenada em um arquivo especialmente formatado no HD, ou em uma partição dedicada (como no caso do Linux) e a eficiência com que ela é usada varia bastante de acordo com o sistema operacional, mas ela permite que o sistema continue funcionando, mesmo com pouca memória disponível.

O problema é que o HD é muito mais lento que a memória RAM. Enquanto um simples módulo DDR2-533 (PC2-4200) comunica-se com o processador a uma velocidade teórica de 4200 megabytes por segundo, a velocidade de leitura sequencial dos HDs atuais (situação em que o HD é mais rápido) dificilmente ultrapassa a marca dos 100 MB/s.

Existe um comando no Linux que serve para mostrar de forma rápida o desempenho do HD, o "hdparm". Quando o rodo no meu micro, que usa um HD SATA relativamente recente, ele diz o seguinte:

# hdparm -t /dev/sda

/dev/sda: Timing buffered disk reads: 184 MB in 3.02 seconds = 60.99 MB/sec


No Windows, você pode medir a taxa de leitura sequencial do HD usando o HD Tach, disponível no http://www.simplisoftware.com/. Não se surpreenda com o resultado. Como disse, o HD é muito lento se comparado à memória.

Para piorar as coisas, o tempo de acesso do HD (o tempo necessário para localizar a informação e iniciar a transferência) é absurdamente mais alto que o da memória RAM. Enquanto na memória falamos em tempos de acesso inferiores a 10 nanosegundos (milionésimos de segundo), a maioria dos HDs trabalha com tempos de acesso superiores a 10 milissegundos. Isso faz com que o desempenho do HD seja muito mais baixo ao ler pequenos arquivos espalhados pelo disco, como é o caso da memória virtual. Em muitas situações, o HD chega ao ponto de não ser capaz de atender a mais do que duas ou três centenas de requisições por segundo.

A fórmula é simples: quanto menos memória RAM, mais memória swap (memória virtual) é usada e mais lento o sistema fica. O processador, coitado, não pode fazer nada além de ficar esperando a boa vontade do HD em mandar à conta-gotas os dados de que ele precisa para trabalhar. Ou seja, quando você compra um micro com um processador de 3 GHz e 256 MB de RAM, você está literalmente jogando dinheiro no lixo, pois o processador vai ficar boa parte do tempo esperando pelo HD. Vender micros novos com 256, ou pior, com apenas 128 MB de RAM, é uma atrocidade que deveria ser classificada como crime contra a humanidade. ;)

Por outro lado, quando você tem instalado mais memória do que o sistema realmente precisa, é feito o inverso. Ao invés de copiar arquivos da memória para o HD, arquivos do HD, contendo os programas, arquivos e bibliotecas que já foram anteriormente abertos é que são copiados para a memória, fazendo com que o acesso a eles passe a ser instantâneo. Os programas e arquivos passam a ser abertos de forma gritantemente mais rápida, como se você tivesse um HD muito mais rápido do que realmente é.

Esse recurso é chamado de cache de disco e (sobretudo no Linux) é gerenciado de forma automática pelo sistema, usando a memória disponível. Naturalmente, o cache de disco é descartado imediatamente quando a memória precisa ser usada para outras coisas. Ele é apenas uma forma de aproveitar o excedente de memória, sem causar nenhum efeito desagradável.

Ironicamente, a forma mais eficiente de melhorar o desempenho do HD, na maioria das aplicações, é instalar mais memória, fazendo com que uma quantidade maior de arquivos possa ser armazenada no cache de disco. É por isso que servidores de arquivos, servidores proxy e servidores de banco de dados costumam usar muita memória RAM, em muitos casos 4 GB ou mais.

Uma outra forma de melhorar o desempenho do HD é usar RAID, onde dois ou quatro HDs passam a ser acessados como se fossem um só, multiplicando a velocidade de leitura e gravação. Esse tipo de RAID, usado para melhorar o desempenho, é chamado de RAID 0. Existe ainda o RAID 1, onde são usados dois HDs, mas o segundo é uma cópia exata do primeiro, que garante que os dados não sejam perdidos no caso de algum problema mecânico em qualquer um dos dois. O RAID tem se tornado um recurso relativamente popular, já que atualmente a maioria das placas-mãe já vêm com controladoras RAID onboard.

0 comentários:

Postagem mais recente Postagem mais antiga Página inicial