Memória Principal

Uma das principais características definidas no projeto de arquitetura do sistema de Von Neumann, o qual se constitui na primeira geração dos computadores, consistia no fato de ser uma máquina "de programa armazenado". O fato de as instruções, uma após a outra, poderem ser imediatamente acessadas pela CPU é que garante o automatismo do sistema e aumenta a velocidade de execução dos programas (uma máquina executando ações sucessivas, sem intervalos e sem cansar, como não acontece com os seres humanos).

E a CPU pode acessar imediatamente uma instrução após a outra porque elas estão armazenadas internamente no computador. Esta é a importância da memória.

E, desde o princípio, a memória especificada para armazenar o programa (e os seus dados) a ser executado é a memória que atualmente chamamos de principal (ou memória real), para distingui-la da memória de discos e fitas (memória secundária).

A memória principal é, então, a memória básica de um sistema de computação desde seus primórdios. É o dispositivo onde o programa (e seus dados) que vai ser executado é armazenado para que a CPU vá "buscando" instrução por instrução.

Seus parâmetros possuem as seguintes características:

Tempo de acesso/ciclo de memória - a memória principal é construída com elementos cuja velocidade operacional se situa abaixo das memórias cache, embora sejam muito mais rápidas que a memória secundária. Nas gerações anteriores de computadores (até o advento da família IBM /360) o tipo mais comum de memória principal era uma matriz de pequenos núcleos magnéticos, os quais armazenavam o valor 1 ou o valor 0 de bit conforme a adição do campo magnético armazenado. Essas memórias possuíam baixa velocidade, a qual foi substancialmente elevada com o surgimento das memórias de semicondutores. Atualmente, as memórias desse tipo possuem tempo de acesso entre 50ns e l50ns.

Capacidade - em geral, a capacidade da memória principal é bem maior que a da memória cache. Enquanto esta oscila atualmente entre 16 e 512 Kbytes, valores típicos de memória principal, seja para microcomputadores, computadores médios ou de grande porte, estão na faixa de MBytes (1000K), pois raramente vai se adquirir, nos dias de hoje, um microcomputador que não possua algo em torno de 32 Mb de memória principal, e já se vendem estes computadores com até 64 MBytes, embora eles possam endereçar memórias de 4 GBytes (gigabytes). Computadores de grande porte costumam funcionar com memória principal de até 512 MBytes.

Volatilidade - sendo atualmente construídos com semicondutores e circuitos eletrônicos correlatos, este tipo de memória também é volátil, tal como acontece com os registradores e a memória cache. No entanto, há normalmente uma pequena quantidade de memória não volátil fazendo parte da memória principal, a qual serve para armazenar pequena quantidade de instruções que são executadas sempre que o computador é ligado.

Tecnologia - conforme já mencionado, nos primeiros sistemas usavam-se núcleos de ferrite (processo magnético) para armazenar os bits na memória principal, até que foram substituídos pela tecnologia de semicondutores. Os circuitos que representam os bits nas memórias atuais possuem uma tecnologia bem mais avançada que seus predecessores de ferrite e, portanto, têm velocidade mais elevada de transferência, garantindo baixos tempos de acesso em comparação com o modelo anterior. São, porém, elementos mais lentos do que aqueles que constituem as memórias cache. Na maioria dos sistemas atuais esta tecnologia produz memória com elementos dinâmicos (DRAM), como será mostrado adiante.

Temporariedade - para que um programa seja executado é necessário que ele esteja armazenado na memória principal (e seus dados também). Atualmente esta afirmação é parcialmente verdadeira, visto que não é mais necessário que o programa completo (todas as instruções) esteja na MP; neste caso, é obrigatório apenas o armazenamento, na MP, da instrução que será acessada pela CPU (na prática, não se usa somente a instrução que será executada, mas sim esta e um grupo de outras). Não importa, contudo, se é o programa todo ou parte dele que deve estar armazenado na MP para ser utilizado pela CPU. Fica claro que, em qualquer circunstância, as instruções e os dados permanecem temporariamente na MP, enquanto durar a execução do programa (ou até menos tempo). Esta temporariedade é bastante variável, dependendo de várias circunstâncias, como, por exemplo, o tamanho do programa e sua duração, a quantidade de programas que estão sendo processados juntos, e outras mais. No entanto, a transitoriedade com que as informações permanecem armazenadas na MP é, em geral, mais duradoura que na memória cache ou nos registradores, embora mais lenta que na memória secundária.

Custo - memórias dinâmicas usadas como memória principal têm um custo mais baixo que o custo das memórias cache, por isso podem ser vendidos computadores com uma quantidade apreciável de MP (com 16 MB, 32 MB e até 64 MB) sem que seu preço seja inaceitável. Valores típicos de MP oscilam entre U$ 2,00 e U$ 4,00 por MByte.