Pesquisar este blog

domingo, 9 de agosto de 2009

Como funciona a memoria do computador?

Olá a todos! Estamos de volta com o Phisical Science Brasil! Estamos agora com novos conteudos, e postagens bem interessantes. Os contedudos de 'como funciona', é cedido pelo How Stuff Works.

Elementos básicos da memória de computa
dor:

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"?

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.

Matéria de: HowStuffWorks - http://informatica.hsw.uol.com.br/memoria-do-computador.htm

Um comentário:

Clarissa disse...

Olá, pessoal do blog.
Tudo bem? Sou a Clarissa e trabalho na Edelman, que é a agência de comunicação digital do site ComoTudoFunciona (HSW). Achamos muito bacana ver o conteúdo dele aqui no blog pois isso indica que você gostou dele. O único problema é que a cada vez que um artigo é reproduzido (completo ou apenas parte dele) em outros sites ou blogs, o mesmo deixa de ser indexado nos mecanismos de busca, principalmente o Google, e prejudica o modelo de negócios da empresa. O mesmo acontece com o blog, que também deixa de ser indexado na busca. Assim, ambos perdem leitores! Para não ser prejudicial tanto para o site como pra vocês, vocês podem linkar o artigo ou reescrever a parte que interessa aos leitores, dando os devidos créditos ou apenas direcionando para o artigo completo dentro do site e retirando o conteúdo reproduzido ao ar. Aproveito para lembrar que todo conteúdo do HSW é protegido por Copyright (direitos autorais), portanto, sua reprodução não é permitida.
Um abraço!