terça-feira, 5 de abril de 2011

Como funciona a memória de computador

Introdução de Como funciona a memória de computador

É incrível a quantidade de memórias eletrônicas encontradas atualmente. Muitas delas têm se tornado parte integral de nosso vocabulário:
Você já sabe que o computador à sua frente possui memória. O que pode não saber, é que a maioria dos itens eletrônicos que usa todos os dias também tem algum tipo de memória. Aqui estão apenas alguns exemplos:
Cada um desses aparelhos usa, de maneiras distintas, diferentes tipos de memória.
Neste artigo, falaremos sobre os diferentes tipos de memória e e seus significados.
Memória de computador

 

 

 

 

 

Elementos básicos da memória de computador

Apesar da memória ser, tecnicamente, qualquer forma de armazenamento eletrônico, o termo é usado com freqüência para identificar formas de armazenamento rápido e temporário. Se a CPU de seu computador precisasse acessar constantemente o disco rígido para recuperar todas as porções de dados que necessitasse, com certeza operaria vagarosamente. Quando a informação é mantida na memória, a CPU pode acessar os dados com mais rapidez. A maioria das formas de memória são destinadas à armazenagem temporária de dados.

Como você pode ver na figura acima, a CPU acessa a memória de acordo com uma hierarquia distinta. Vinda do armazenamento de dados permanente (disco rígido) ou da entrada de dados (teclado), a maioria das informações vai primeiro para a memória de acesso aleatório (RAM). A CPU, então, armazena as partes dos dados que precisará acessar com freqüência no cache, e mantém certas instruções especiais em registrador. Sobre os caches e registradores, falaremos mais adiante.
Todos os componentes no seu computador, como a CPU, o disco rígido e o sistema operacional, trabalham juntos como um time. Nele, a memória desempenha uma das funções essenciais. Desde o momento em que o computador é ligado até a hora de desligá-lo, a sua CPU está constantemente usando a memória. Vamos ver um cenário típico:
  • você liga o computador;
  • o computador carrega os dados da memória apenas de leitura (ROM) e executa um auto-teste de energia (POST - Power-On Self Test) para ter certeza de que a maioria dos componentes principais está funcionando corretamente. Uma parte desse teste, o controle de memória, checa todos os endereços de memória com um rápido processo de leitura/escrita, operação executada para certificar-se de que não há erros nos chips de memória. Esse processo permite que os dados sejam gravados em um bit e então lidos a partir desse bit;
  • o computador carrega o sistema básico de entrada/saída (BIOS - Basic Input/Output System) da memória ROM. A BIOS fornece a maioria das informações básicas sobre os dispositivos de armazenamento, seqüência de boot, segurança, plug-and-play (auto reconhecimento de dispositivo), capacidade e alguns outros itens;
  • o computador carrega o sistema operacional (SO) do disco rígido no sistema de memória RAM. Geralmente, as partes críticas do sistema operacional são mantidas na memória RAM enquanto o computador é ligado. Isso permite que a CPU tenha acesso imediato ao sistema operacional, o que aumenta a performance e a funcionalidade do sistema como um todo;
  • quando você abre um aplicativo, ele é carregado na memória RAM. Para preservar o uso dessa memória, muitos aplicativos são carregados, inicialmente apenas em suas partes essenciais, sendo outras partes carregadas conforme a necessidade;
  • depois que um aplicativo está carregado, qualquer arquivo aberto para uso no aplicativo é carregado na memória RAM;
  • quando você salva um arquivo e fecha o aplicativo, o arquivo é gravado no disco de armazenamento e, então, ele e o aplicativo são removidos da memória RAM.
Como observado na lista acima, cada vez que algo é carregado ou aberto é então colocado na memória RAM. Isso significa que eles são simplesmente colocados na área temporária de armazenamento do seu computador, para que a CPU possa acessar a informação mais facilmente. A CPU requisita os dados de que necessita da memória RAM. Novos dados, que já foram processados e gravados, voltam para a RAM em um ciclo contínuo. Na maioria dos computadores, essa troca de dados entre a CPU e RAM acontece milhões de vezes por segundo. Quando os aplicativos são fechados, eles e outros arquivos relacionados são normalmente removidos (deletados) da memória RAM, para dar lugar a novos dados. Se os arquivos alterados não forem salvos em uma unidade de armazenamento permanente antes de serem removidos, serão definitivamente perdidos.
Uma questão comum sobre computadores de mesa (desktops)é:  "por que o computador precisa de tantos sistemas de memória"?



Tipos de memória de um computador

Um computador comum tem:
Para que tantas memórias? A resposta para essa pergunta pode lhe ensinar muito sobre o assunto!
CPUs rápidas e potentes precisam de acesso ágil e fácil a uma grande quantidade de dados para maximizar sua performance. Se a CPU não pode pegar os dados de que precisa, ela literalmente pára e espera por eles. As CPUs modernas com velocidade na faixa de 1 gigahertz podem manipular uma grande quantidade de dados, potencialmente bilhões de bytes por segundo. O problema enfrentado pelos projetistas é que uma memória capaz de acompanhar a velocidade de uma CPU de 1 gigahertz é extremamente cara para a comercialização em grandes quantidades.
Os projetistas têm resolvido o problema de custo por meio das "camadas" de memória, usando memória cara em pequenas quantidades e então reforçando-a com grandes quantidades de memória mais baratas.
A forma mais barata de memória de leitura/escrita, amplamente utilizada hoje, é o disco rígido. Os discos rígidos fornecem grandes quantidades de armazenamento permanente e barato. Você pode comprar discos rígidos a um custo de centavos por megabyte, porém, pode levar um bom tempo (aproximadamente um segundo) para ler um megabyte do disco rígido. Devido ao espaço de armazenamento em um disco rígido ser tão barato e abundante, ele representa o estágio final da hierarquia da memória da CPU, chamado memória virtual.
O próximo estágio da hierarquia é a memória RAM. Esse assunto é discutido em detalhes no artigo Como funciona a memória RAM, no entanto, muitos pontos sobre ela são importantes aqui.
O tamanho em bit de uma CPU lhe diz quantos bytes de informação ela pode acessar da RAM ao mesmo tempo. Por exemplo, uma CPU de 16 bits pode processar 2 bytes ao mesmo tempo (1 byte = 8 bits, então 16 bits = 2 bytes), uma de 32 bits pode processar 4 bytes  e uma CPU de 64 bits pode processar 8 bytes ao mesmo tempo.
Gigahertz (MHz) é a atual medida de velocidade de processamento da CPU (ciclo de clock) em milhões por segundo. Assim, um Core i7 de 64 bits e 3,2 GHz pode processar potencialmente 8 bytes simultaneamente em cada um dos seus quatro núcleos, 76 milhões de vezes por segundo, possivelmente fortemente baseado no pipelining (arquitetura do processador que permite a execução de inúmeras atividades ao mesmo tempo). O objetivo do sistema de memória é encontrar alguns desses requisitos.
Sozinho, o sistema de memória RAM do computador não é rápido o suficiente para estar compatível com a velocidade da CPU. É por isso que ele precisa de um cache (discutido mais adiante). Entretanto, quanto mais rápida a memória RAM, melhor. A velocidade de leitura/escrita é tipicamente proveniente do tipo de memória RAM usada como DRAM, SDRAM, RAMBUS.
Primeiro, vamos falar sobre o sistema RAM. 



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.



Cache e registradores

As memórias cache são designadss para aliviar esse gargalo, fazendo com que os dados usados com mais freqüência pela CPU estejam instantaneamente disponíveis. Isso é conseguido através da construção de uma pequena quantidade de memória, conhecida como memória primária ou cache nível 1 (L1), localizada dentro da CPU. O cache nível 1 é muito pequeno, normalmente variando entre 16kilobytes (KB) e 512 KB.

O cache secundário, ou de nível 2 (L2), geralmente fica em uma placa de memória perto da CPU. Esse cache tem uma conexão direta com a CPU. Um circuito integrado dedicado na placa mãe, o controlador L2, regula o uso do cache de nível 2 pela CPU. O tamanho desse cache varia de 1 MB (megabyte)  a 12 MB, dependendo da CPU. Na maioria dos sistemas, os dados necessários à CPU são acessados do cache em aproximadamente 95% do tempo, reduzindo em muito a espera da  CPU pelos dados da memória principal.
O cache L3, ou terceiro nível de memória, localizado na placa mãe, é um tipo de cache usado em sistemas complexos, com microprocessadores de vários núcleos. O cache L3 é compartilhado por todos os núcleos do processador.
Alguns sistemas mais acessíveis em termos de preço, em geral dispensam o cache nível 2. Muitas CPUs de alta performance têm agora esse cache embutido dentro do próprio chip da CPU. Assim, seu tamanho e o fato de serem onboard (na CPU), são fatores determinante na performance da máquina. Para mais detalhes sobre caching, veja Como funciona o armazenamento em cache (caching).
Um tipo particular de RAM, a memória estática de acesso aleatório (SRAM), é usada principalmente para implementar a memória cache. A SRAM usa transistores múltiplos, normalmente de quatro a seis, para cada célula (bit) de memória. Ela possui uma matriz externa de portas, conhecida como multivibrador bi-estável (flip-flop) que chaveia entre dois estados. Isso significa que ela não tem que ficar sendo refrescada continuamente como a DRAM. Cada célula mantém seus dados, enquanto estiver energizada. Sem precisar ficar sendo constantemente refrescada, a SRAM pode operar com extrema rapidez. Porém, a complexidade de cada célula faz com que seja proibitivo o seu uso como um padrão de memória RAM.
A SRAM utilizada na memória cache pode ser assincrônica ou sincrônica. A SRAM sincrônica é projetada para ter velocidade igual a velocidade da CPU, enquanto a assincrônica não. Esse ínfimo lapso de tempo faz toda a diferença na performance. Igualar a velocidade do clock da CPU é interessante, então sempre procure por RAM sincrônica (para maiores informações sobre os vários tipos de memória RAM, veja Como funciona a memória RAM).
O passo final em memória são os registradores. Eles são células de memória embutidas na CPU, que contêm dados específicos para seu uso, especialmente a unidade de aritmética e lógica (ULA). Parte integrante da própria CPU, ela é controlada diretamente pelo compilador, que envia as informações a serem processados na CPU. Veja Como funcionam os microprocessadores para saber detalhes sobre os registradores.
A memória pode ser dividida em duas categorias principais: volátil e não-volátil. A memória volátil perde os dados cada vez que o sistema é desligado e precisa de energia para ser acessada. A maioria dos tipos de memória RAM incluem-se nesta categoria.


 


Módulos de memória RAM
De cima para baixo: SIMM, DIMM e SODIMM
A memória não-volátil não perde seus dados quando o sistema ou o dispositivo é desligado. Essa categoria abrange inúmeros tipos de memória. A mais familiar é a ROM, mas dispositivos de armazenamento do tipo memória flash, como os cartões CompactFlash e SmartMedia, são também formas de memória não-volátil. Veja os links abaixo para mais informações sobre este tipo de memória.

 

Nenhum comentário:

Postar um comentário