Você está na página 1de 6

Very Simple Computer (VSC) - Viso global

O Very Simple Computer (VSC) um designer conceitual para um processador mnimo. O VSC
designer e baseado em instruo de 8-bit composto de 3-bit op-code e 5-bits endereo. Isto
permite at 8 (oito) instrues em linguagem de maquina e 32 (trinta e duas) palavras de
memria diretamente endereavel.

Registros e estrutura de barramento
Registros para o VSC inclui um registrado de instrues (IR), contador de programas (PC),
registrador endereo de memria (MAR), um acumulador (ACC) e dois registros de dados
chamado latch 1 (LAT1) e latch 2 (LAT2). Os dados so transferidos entre esses registros e
memria (MEM) ao longo de um nico barramento de dados.
Os componentes funcionais do VSC inclui uma unidade input/output, uma unidade logica
aritimetica, a unidade de memoria, uma unidade controle e um mecanismo para incrementar
o contador de programa.

O barramento e atualmente 8 linhas em paralelo e cada registro um conjunto de 8 (ou 5 para
o PC e MAR) flip-flops tipo D com sadas tri-state. A sada tri-state alta (1), baixo (0), ou
aberto (sem conexo) quando no est escrevendo para o barramento. Buffers tri-state
permitem muitas conexes com a mesma linha, sem a necessidade de encaminh-los atravs
de uma cascata de portas OR.

Ciclo de busca e execuo
O ciclo de busca e execuo do VSC pode ser implementado em duas diferentes vias. H um
nmero de transferncias necessrias para registrar cada instruo em linguagem de mquina.
No geral o processo de busca a mesma coisa para cada instruo. No nosso exemplo o valor
no PC transferido para o MAR (passo 1), a proxima instruo na MEM[MAR] e transferida
para o IR (passo 2), e o valor do PC e incrementado pelo um (passo 3).

O endereo da instruo (bit 0 a 4 do IR) colocado no MAR uma vez que este o local de
memria a ser operado pela instruo (passo 4). Na verdade, apenas metade das instrues
envolve este endereo, mas mais fcil ir em frente e mov-lo para o MAR que para
verificar para ver do que usado. O valor no ACC transferido para LAT1 (passo 5) e o valor
na MEM[MAR] transferido para LAT2 (passo 6). Estas duas ltimas transferncias so
realizadas como parte do esforo na preparao para operaes aritmticas e lgicas. Um
passeio atravs do ciclo de buscar/excuo.
Registrar transferncia logica
O cdigo de operao apresentado para a unidade de controle e determina qual operao
ser efetuada durante a fase do ciclo de busca e execuo. medida que trabalhamos com o
projeto do hardware VSC nossa principal tarefa ser a de entender como cada uma dessas
instrues pode ser implementada em lgica digital.

LDA - Carga do acumulador - Esta instruo implementada atravs da ativao que possibilita
a leitura de linha da ACC, ao mesmo tempo ativar a gravao de permitir LAT1 . Isto realizado
dentro da ALU por uma simples transferncia inalterado dos dados .
STO Armazena no acumulador - Esta instruo transfere o valor do ACC para memria no
MEM[MAR].
ADD - Adicionar - O contedo do LAT1 e Lat2 so adicionados eo resultado colocado no ACC .
CMP - Complementar - O valor em LAT1 invertido e passado para o ACC .
BNN - ramo No Defeitos - Se o bit mais significativa do valor da ACC um zero, ento o
endereo da IR carregada no PC .
SS - Left Shift Lgico - Todos os bits de LAT1 so deslocadas para uma posio acima ( para a
esquerda ) e um zero carregado para o LSB . O resultado transmitido para a ACC .
SHR - deslocamento para a direita Aritmtica - Todos os bits de LAT1 so deslocados uma
posio inferior ( direita ) e o valor do velho MSB utilizada como a nova MSB .
HLT - Halt - A instruo que termina o programa.
A unidade de controle
A unidade de comando aciona as transferncias de registradores no ciclo de busca/execuo
pela ativao de leitura habilitada e escrita habilitada nas linhas dos registradores, a memoria
e a ALU.
So 6 passo listados para ciclo de busca/execuo que so os mesmo para cada instruo
processada. O stimo passo do ciclo a execuo de uma instruo especial, indicado pelo
cdigo de operao da instruo corrente. Ns podemos desenvolver um diagrama de tempo
para o ciclo de busca/execuo listando a Leitura (RE) e Escrita (WE) necessrio para realizar
cada transferncia registo.

Os pulsos de clock que impulsionam o contador de diviso por oito podem ser produzidos com
um circuito temporizador (construdo a partir de um MA555). O contador de diviso por oito
est disponvel em um nico TTL IC (7493). O descodificador 3-a-8 pode ser construdo atravs
da inverso das sadas de um descodificador popular IC (74138).


Execuo da instruo
Um circuito semelhante pode ser construdo para gerar os sinais de controle necessrios para
implementar cada uma das oito instrues do VSC. Neste caso, a entrada das linhas de
controle no descodificador 3 para 8 vm diretamente do OpCode da instruo corrente em
IR5-7.

Nota: Ativar linhas em comum com os do circuito de busca deve ser conectadas atravs portas
OR.


A programao do VSC
Podemos definir um montador para escrever programas para o VSC. Esta montadora sero
utilizados para nos ajudar a desenvolver manualmente o cdigo de mquina (1 e 0) para o VSC.
A melhor maneira de se familiarizar com o assembler VSC por rever alguns exemplos:
Em nosso primeiro exemplo, vamos
escrever um programa para adicionar os
valores de 6 e 3. Ns vamos pr-carregar
esses valores na memria rotulados X e Y
e tm a programa armazenando o
resultado em Z.Note que os comandos em
linguagem assembly so simplesmente
os oito operaes, definidas para
o VSC e suas op-cdigos
correspondentes so os trs maiores fim-
bits de cada instruo.
O programa colocado na memria com
a primeira instruo no endereo 0000.

Aps a concluso do VSC deve conter o valor 00001001 no endereo de memria00110.
O exemplo seguinte um programa que checa o valor X. Se o valor de entrada X for par divide
por 2(dois) em contrrio, multiplicado por 2(dois).
O resultado substitui X.
Neste exemplo, X = 7.
Primeiro, o valor de X carregado
para dentro do acumulador.
Em seguida, ele dividido e
multiplicado por dois.
O valor de X subtrado este
resultado (Y).
Se a diferena for negativa, ento X
era impar ento X carregado e multiplicado
por 2.
O programa, em seguida, salta para o
endereo marcado SAVE.
Se a diferena for zero (ou seja, no
negativo), ento X par assim X carregado e
dividido por 2.
O programa, em seguida, guarda o
resultado de volta para X.


Lio de casa
1. Escrever um cdigo de montagem VSC para um programa que calcula a soma dos 10
primeiros nmeros inteiros. Este deve ser um programa que faz um loop usando a instruo
BNN. Voc pode querer diminuir um balco para adicionar os valores de 10 para 1. O resultado
deve ser em um local especfico na memria do VSC.

Você também pode gostar