DEV Community

Renan Marquetti
Renan Marquetti

Posted on

Como construir um computador do zero - Memória Ram

Memoria Ram

A rainha do nosso computador, é o sistema que tem por objetivo armazenar os dados dentro do nosso computador, tudo está aqui (ou quase tudo), programas, dados base, dados de pós processamento, etc...

A memória ram na verdade é muito similar a memoria rom, com a diferença que a memoria ram aceita tanto ler quanto gravar dados nela, principalmente durante a execução do software

Sistema de ram é composto de basicamente de 3 componentes:

  • Registrador de 8 bits
  • Memory Address Register 4 bits (MAR)
  • Random Access Memory 16 bytes (RAM)

Registrador de 8 bits

Esse é o componente mais utilizado no nosso projeto, tem a função de armazenar uma pequena quantidade de informação (8 bits ou 1 byte) e persisti-la entre os ciclos de clock, será o componente mais importante de todo o sistema de memoria do computador.

Apesar desse alto grau de importância o componente é muito simples, ele possui 1 entrada e saída para o bus (ou barramento), mais uma entrada para o pulso de clock e outra entrada para o pulso de reset.

todas essas estradas são padrão em praticamente todos os componentes do nosso computador, mas o registrador possui mais duas entradas especificas para o registrador, sendo elas permitir entrada de dados (REG_IN) e permitir saída de dados (REG_OUT)

Esquema deste componente:

Memory Address Register 4 bits (MAR)

Este componente tem a função de registrar (ou armazenar) os endereços de memoria que vão ser utilizados naquele sub-ciclo da instrução.

É muito similar ao componente acima, mas o Registrador é de uso geral, já o MAR é de uso especifico, só será usado nesta cessão.

Alem das entradas e saídas padrão (BUS_IN, CLK e RESET) ele possui outras entradas de uso especifico, sendo elas:

  • PGR_RUN: é o input que altera o estado do nosso componente para operar em modo de programação.
  • MAR_DIP: é a onde fica o input de endereço, quando o computador está em modo de programação.
  • MAR_IN: quando ativo permite a entrada de um novo valor de endereço, caso contrario será mantido o valor vigente

À também uma saída de uso especio (MAR_ADDR) que será utilizada apenas para abastecer a memoria RAM com o endereço que se deseja ler ou gravar naquele momento.

Esquema deste componente:

Random Access Memory 16 bytes (RAM)

A Memoria RAM tem a função de armazenar os dados do nosso computador, sendo possível alterar o valor contido em qualquer endereço, equanto o nosso software executa.

Mais do que um simples sistema de memoria, a RAM é a representação máxima do estado atual do nosso computador, tudo começa e passa por ela.

Apesar de sua enorme importância o seu funcionamento é bem simples, basta selecionar um endereço que deseja consumir naquele momento e escolher as operações de leitura ou gravação.

Este componente possui as entradas e saídas padrão (BUS_IN, BUS_OUT, CLK e RESET), e possui mais alguma entradas para uso especifico:

  • ADDR: é o input para seleção do endereço atual de operação.
  • RAM_IN: quando ativo insere o valor do BUS no endereço selecionado.
  • RAM_OUT: quando ativo envia o valor do endereço selecionado para o BUS.

Esquema deste componente:

Top comments (0)