Sie sind auf Seite 1von 3

Laboratorio de Sistemas, Processadores e Perifericos (SPP)

MIC-1: Via de Dados


Prof. Luiz T. S. Mendes, Prof. Gustavo G. Parma
Objetivos: Implementar e simular a via de dados, necessaria ao MIC-1

Introduc
ao

A proxima etapa na implementacao do MIC-1 refere-se `a Via de Dados, termo que designa a parte
da CPU que agrupa a ULA e suas entradas e sadas. Em adicao, iniciaremos a construcao da Unidade
de Controle, atraves da implementacao da logica de formacao do MPC (MicroProgram Counter), o
registrador de enderecamento para a memoria de microprograma.
A via de dados corresponde `a figura 4-1 do livro-texto (vide tambem a figura apresentada na
primeira pagina das notas de aula referentes ao banco de registradores). Analisando-se esta figura,
pode-se observar que a via de dados nada mais e do que a simples juncao dos componentes anteriormente desenvolvidos para o MIC-1, ou seja, o conjunto ULA/Deslocador e o Banco de Registradores.
A logica de formacao do MPC, por sua vez, e fundamentalmente ligada ao modelo de microprogramacao adotado para o MIC-1. Detalhes sobre este modelo sao apresentados a seguir.

Ciclo de Execu
c
ao de Instru
c
oes

No MIC-1, a execucao de cada instrucao de maquinana linguagem IJVM (ou seja, as instrucoes
a serem efetivamente empregadas por um programador) e, na verdade, implementada atraves da
execucao seq
uencial de acoes mais elementares designadas como microinstrucoes. As microinstrucoes
sao definidas previamente, em funcao da propria arquitetura do MIC-1, e armazenadas numa memoria
nao-volatil designada como memoria de microprograma(control store). No decorrer da execucao
de uma dada instrucao de maquina, cabe ao MPC apontarpara a proxima microinstrucao a ser
executada.
Considere, por exemplo, a instrucao IADD, que retira dois inteiros de 32 bits da pilha, realiza sua
soma e deposita o resultado na pilha (vide figura 4-9 do livro texto). A seq
uencia de etapas para esta
instrucao e a seguinte (lembrando que, na arquitetura do MIC-1, o registrador TOS [Top Of Stack]
sempre contem o valor da posicao de memoria correntemente apontada pelo SP):
1. O valor do registrador SP (Stack Pointer) e decrementado e copiado no proprio SP e no registrador MAR, fazendo este u
ltimo apontar para o primeiro operando depositado na pilha.
2. Uma acao de leitura (read) da memoria e executada, trazendo para o MDR o conte
udo do
endereco indicado por MAR.
3. O conte
udo do registrador TOS (ou seja, o segundo operando) e copiado no registrador H.
4. A ULA executa a soma dos conte
udos de MDR e H, sendo sua sada copiada simultaneamente
nos registradores TOS e MDR.
5. Uma acao de escrita (write) na memoria e executada, escrevendo o valor de MDR para a posicao
de memoria correntemente apontada por MAR.

Figura 1: Via de Dados.

Na arquitetura do MIC-1, os passos 1 e 2 podem ser executados numa u


nica microinstrucao, como
tambem os passos 4 e 5. Desta forma, a execucao de IADD e realizada atraves de tres microinstrucoes,
designadas como iadd1 (passos 1 e 2), iadd2 (passo 3) e iadd3 (passos 4 e 5).
A ordem de execucao das microinstrucoes e definida pelo fato que cada uma delas contem,
como parte de seu valor, o potencial endereco da proxima microinstrucao a ser executada (campo
NEXT ADDRESS da figura 4-5 do livro-texto). Desta forma, a execucao de uma microinstrucao
consiste tambem na determinacao do valor do MPC, que entao apontara para o endereco, na memoria
de microprograma, da proxima microinstrucao a ser executada. A logica de determinacao do MPC e
a seguinte:
Se JMPC = 1
Entao
MPC = NEXT ADDRESS OR MBR
Else
MPC[7] = NEXT ADDRESS[7]
MPC[6] = (JAMZ AND DZ) OR (JAMN AND DN) OR
NEXT ADDRESS[6]
MPC[5..0] = NEXT ADDRESS[5..0]

Parte Experimental

A parte experimental consiste da elaboracao e simulacao da entidade correspondente `a via de dados,


a qual devera incluir a logica de formacao do MPC. A entidade resultante devera ter os sinais de E/S
descritos na figura 1.
Atencao para os seguintes detalhes:
Devido `a integracao interna dos barramentos A, B e C entre os componentes referentes ao banco
de registradores e `a ULA/Deslocador, o n
umero de sinais referentes `a pinagem externa diminuira,
voltando a ser compatvel com a famlia de dispositivos FLEX10K da Altera e possibilitando,
assim, a simulacao desta entidade.

Diferentemente do livro-texto, os sinais NEXT ADDR e MPC foram ambos reduzidos de 9 para
8 pinos, e a logica de formacao do MPC passa a empregar o bit 6 para fins de combinacao com
os flags N e Z ao inves do bit 8. Estas alteracoes sao necessarias para fins de compatibilidade
com a famlia FLEX10K da Altera, a qual nao suporta o n
umero de pinos finais da arquitetura
original do MIC-1.
Os estados das sadas N e Z da ULA devem ser salvos em flip-flops na borda de subida do clock,
pois enquanto este estiver em nvel alto nao ha garantia de estabilidade nas sadas da ULA,
criando, assim, os sinais DN e DZ. (Questao: como implementar estes flip-flops em VHDL ?)

Das könnte Ihnen auch gefallen