Semana passada vimos que uma “posição de memória” é um local onde
dados podem ser armazenados temporariamente sob a forma de bytes.
Mas estávamos nos referindo aos registradores, que são posições
de memória internas da CPU, ou seja, que existem dentro do microprocessador
e são usadas para processar dados.
Uma
CPU dispõe de um conjunto reduzido de registradores (o 8086, a CPU
“de 16 bits” do velho XT, tem catorze registradores de 16 bits,
e o 386, uma CPU “de 32 bits”, tem dez registradores de 32 bits
e seis de 16 bits - sempre múltiplos de oito bits, já que vão trabalhar
com bytes). Mas sua função não é armazenar dados, exceto por curtíssimos
períodos enquanto estão sendo processados. Portanto, é imprescindível
que se tenha um local para guardar os dados que serão fornecidos
à CPU para processar, assim como aqueles resultantes do processamento.
Por exemplo: o conteúdo daquela carta de amor, sobre a qual falamos
mês passado, precisa estar armazenado em algum lugar dentro do micro
enquanto a estamos escrevendo.
Este
local é a “memória”. Na verdade, o que chamamos de “memória” são
chips, ou circuitos integrados, encaixados na placa-mãe. Cada chip
contém uma enorme coleção de conjuntos de oito capacitores elementares
e cada conjunto corresponde a uma “posição de memória”, idêntica
à que foi descrita semana passada (mas situadas fora da CPU). Portanto,
cada “posição de memória” pode armazenar um byte.
Voltemos
à carta. Suponhamos que o missivista compare seus sentimentos a
uma flor. E escolha, muito apropriadamente, o amor-perfeito. Vejamos
o que ocorre quando ele digita o hífen que separa o “amor” do “perfeito”
(já que esses dois raramente andam juntos, mesmo). O teclado, dispositivo
de entrada, reconhece a tecla do hífen e envia seu código ANSI para
a CPU. A CPU, por sua vez, precisa armazenar essa informação em
algum lugar para usá-la mais tarde (por exemplo, enviá-la para a
impressora na hora de imprimir a carta). Então procura uma posição
de memória “vazia” e lá deposita o código. Mas deposita como? Fácil:
o código ANSI do hífen é quarenta e cinco, que, como sabemos, em
binário corresponde a “00101101”. A CPU, então, ordena aos circuitos
da placa mãe que depositem cargas elétricas no primeiro, terceiro,
quarto e sexto capacitores, da direita para a esquerda, da posição
de memória que armazenará o código do hífen e descarreguem os outros
quatro. Mais tarde, na hora de imprimir, a CPU “lê” os códigos,
sucessivamente, em suas posições de memória. Quando chega na que
está ocupada pelo hífen, verifica as cargas dos capacitores e detecta
o código “00101101”. E envia um hífen para a impressora. É simples
assim.
Mas
como saber em que posição de memória está o hífen? Bem, da mesma
forma que em uma rua cada casa tem seu número, as posições de memória
são arrumadas uma após a outra e cada uma tem um número, ou “endereço”.
Vamos supor que o missivista já não queira mais se referir à flor,
mas prefira dizer que seu amor é, de fato, perfeito. E troca o hífen
por um espaço. Para o micro, o espaço que separa as palavras nada
mais é que um caractere como outro qualquer, o de código ANSI trinta
e dois, ou “00100000” em binário. E a CPU, simplesmente, localiza
o endereço de memória onde o hífen está armazenado e descarrega
o primeiro, terceiro e quarto capacitores, substituindo o código
“00101101” que lá estava pelo código “00100000”. O que basta para
trocar um hífen por um espaço. E transmutar uma flor em uma mentira.
Assim,
os dados são armazenados e modificados na memória pela CPU simplesmente
alterando cargas elétricas. Por isso o conteúdo da memória só persiste
enquanto o micro está ligado e há energia elétrica para manter a
carga dos capacitores. Esse tipo de memória chama-se “memória volátil”
ou “memória RAM” (acrônimo de Random Access Memory, memória de acesso
aleatório em inglês; um nome, aliás, muito mal escolhido). Portanto,
“memória RAM” é um conjunto de posições de memória cujo conteúdo
pode ser alterado e que só se mantém enquanto o micro estiver ligado.
A
capacidade de memória RAM de nossos micros é medida pelo número
de bytes que pode armazenar. Mas os micros modernos precisam de
muita memória. Por isso, ao invés de bytes, usam-se múltiplos de
byte. O primeiro múltiplo é o quilobyte, que se abrevia com “K”.
Em princípio, 1K deveria corresponder a mil bytes. Mas não esqueça
que estamos trabalhando com quantidades expressas em binário. E,
em binário, o número “redondo” mais próximo do decimal mil é “10000000000”,
que, em decimal, corresponde a 1.024. Por isso 1K é igual a 1.024
bytes. O próximo múltiplo é o megabyte, que se abrevia com “Mb”.
E que também, pelas mesmas razões, não corresponde a um milhão de
bytes, mas a 1K x 1K, ou seja, 1.048.576 bytes. Mas as diferenças
não são significativas e em geral considera-se 1K aproximadamente
igual a mil bytes e 1Mb aproximadamente igual a um milhão de bytes.
E
já que falamos no assunto: com a voracidade dos sistemas operacionais
e programas modernos, para fazer algo que preste o micro deve ter
no mínimo 4 Mb de memória RAM. Mas isso é o mínimo mesmo. Para um
desempenho decente, aconselho 8Mb.
B.
Piropo