DEV Community

Renan Marquetti
Renan Marquetti

Posted on

Como construir um computador do zero - Sistema de Input

Sistema de Input

Esta seção do computador é onde se encontram os componentes que recebem os inputs do usuário, ou seja, é onde tudo começa.

Nesta seção, o usuário consegue dar "partida" no computador, retesar e "zerar" o seu estado (apagando os programas em execução).

Se o nosso computador fosse um carro, aqui é onde ficaria o "cockpit", pedais de embreagem, acelerador, freio, etc...

Esse sistema é composto por 4 componentes:

  • botão de reset (freio)
  • botão programa em execução (embreagem)
  • gerenciamento de clock (acelerador)
  • Memória ROM (volante)

Vamos explorar cada um destes componentes.

Botão de Reset

É o componente mais simples do nosso sistema, ele literalmente é um botão que dispara um pulso no computador, esse pulso vai ser capturado pelos demais componentes do sistema, que irá "zerar" todos os seus valores internos (ficaram mais claros com o avançar do projeto).

Esquema do componente:

Pino programa em execução

Esse pino dita o modo de execução do nosso computador, são dois modos possíveis, sendo eles: modo de programação e modo de execução.

Modo de Programação: esse modo serve para preparar o computador para receber as instruções do programa, serve literalmente para isso, é um modo em que não é executada nenhuma instrução, elas apenas são gravadas na memória para posterior consumo.

Modo de Execução: nome autoexplicativo, ele começa a executar o software gravado na memória do nosso computador, seguindo assim o seu ciclo normal de computação. Quando dá certo, a gente nota que a vida passa a fazer sentido novamente, e no meio de um imenso oceano de dor e angústia, a verdade triunfa e mais nada será como antes.

Ou não.

Apesar da explicação longa, o sistema é inversamente curto e simples.

Esquema do componente:

Gerenciamento de clock

Este é o subsistema responsável por controlar o clock (ou pulsos) do nosso computador, é um dos componentes mais simples e importantes do nosso computador.

Ele é responsável por sincronizar o processamento do nosso sistema, fazendo com que todos os componentes trabalhem em conjunto de forma ordenada.

Possui 3 pinos de entradas no componente: entrada de seleção de modo de execução (mais detalhes à frente), entrada de clock manual, entrada para a instantânea do sistema (utilizada para encerrar a execução do software).

O componente também possui 2 modos de operação, sendo eles: manual e automático.

No modo automático, ele libera pulsos em uma frequência constante, sem depender de nenhum outro input do usuário.

No modo manual, é o usuário que libera o pulso através de um botão. Usamos esse modo para verificar o processamento passo a passo, tem por objetivo entender e verificar o correto funcionamento do computador (vai por mim, esse botão está aí por um bom motivo).

Esquema do componente:

Seletor de clock.

Memória ROM

Apesar de ser um componente grande, tem uma função igualmente simples, é como se fosse o "disquete" (ou pendrive para os mais novos) que vamos usar para instalar o programa.

Tem a única função de guardar os bytes do nosso programa e liberar conforme for solicitado, é mais um facilitador que uma obrigatoriedade, tem como seguir sem ele, mas a dor de cabeça é um pouco maior.

Esquema do componente:

OBS: esse componente utiliza o "ProgramCounter", um componente que vamos especificar mais adiante, na seção de controle, se preferir pode pular esse componente por hora.

Top comments (0)