Buscar

Prat06

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 3 páginas

Prévia do material em texto

Laborato´rio de Sistemas, Processadores e Perife´ricos (SPP)
MIC-1: Via de Dados
Prof. Luiz T. S. Mendes, Prof. Gustavo G. Parma
Objetivos: Implementar e simular a via de dados, necessa´ria ao MIC-1
1 Introduc¸a˜o
A pro´xima etapa na implementac¸a˜o do MIC-1 refere-se a` ”Via de Dados”, termo que designa a parte
da CPU que agrupa a ULA e suas entradas e sa´ıdas. Em adic¸a˜o, iniciaremos a construc¸a˜o da Unidade
de Controle, atrave´s da implementac¸a˜o da lo´gica de formac¸a˜o do MPC (MicroProgram Counter), o
registrador de enderec¸amento para a memo´ria de microprograma.
A via de dados corresponde a` figura 4-1 do livro-texto (vide tambe´m a figura apresentada na
primeira pa´gina 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 junc¸a˜o dos componentes anterior-
mente desenvolvidos para o MIC-1, ou seja, o conjunto ULA/Deslocador e o Banco de Registradores.
A lo´gica de formac¸a˜o do MPC, por sua vez, e´ fundamentalmente ligada ao modelo de micropro-
gramac¸a˜o adotado para o MIC-1. Detalhes sobre este modelo sa˜o apresentados a seguir.
2 Ciclo de Execuc¸a˜o de Instruc¸o˜es
No MIC-1, a execuc¸a˜o de cada ”instruc¸a˜o de ma´quina”na linguagem IJVM (ou seja, as instruc¸o˜es
a serem efetivamente empregadas por um programador) e´, na verdade, implementada atrave´s da
execuc¸a˜o sequ¨encial de ac¸o˜es mais elementares designadas como microinstruc¸o˜es. As microinstruc¸o˜es
sa˜o definidas previamente, em func¸a˜o da pro´pria arquitetura do MIC-1, e armazenadas numa memo´ria
na˜o-vola´til designada como ”memo´ria de microprograma”(control store). No decorrer da execuc¸a˜o
de uma dada instruc¸a˜o de ma´quina, cabe ao MPC ”apontar”para a pro´xima microinstruc¸a˜o a ser
executada.
Considere, por exemplo, a instruc¸a˜o 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 sequ¨eˆncia de etapas para esta
instruc¸a˜o e´ a seguinte (lembrando que, na arquitetura do MIC-1, o registrador TOS [Top Of Stack]
sempre conte´m o valor da posic¸a˜o de memo´ria correntemente apontada pelo SP):
1. O valor do registrador SP (Stack Pointer) e´ decrementado e copiado no pro´prio SP e no regis-
trador MAR, fazendo este u´ltimo apontar para o primeiro operando depositado na pilha.
2. Uma ac¸a˜o de leitura (read) da memo´ria e´ executada, trazendo para o MDR o conteu´do do
enderec¸o indicado por MAR.
3. O conteu´do do registrador TOS (ou seja, o segundo operando) e´ copiado no registrador H.
4. A ULA executa a soma dos conteu´dos de MDR e H, sendo sua sa´ıda copiada simultaneamente
nos registradores TOS e MDR.
5. Uma ac¸a˜o de escrita (write) na memo´ria e´ executada, escrevendo o valor de MDR para a posic¸a˜o
de memo´ria 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 microinstruc¸a˜o, como
tambe´m os passos 4 e 5. Desta forma, a execuc¸a˜o de IADD e´ realizada atrave´s de treˆs microinstruc¸o˜es,
designadas como iadd1 (passos 1 e 2), iadd2 (passo 3) e iadd3 (passos 4 e 5).
A ordem de execuc¸a˜o das microinstruc¸o˜es e´ definida pelo fato que cada uma delas conte´m,
como parte de seu valor, o potencial enderec¸o da pro´xima microinstruc¸a˜o a ser executada (campo
NEXT ADDRESS da figura 4-5 do livro-texto). Desta forma, a execuc¸a˜o de uma microinstruc¸a˜o
consiste tambe´m na determinac¸a˜o do valor do MPC, que enta˜o apontara´ para o enderec¸o, na memo´ria
de microprograma, da pro´xima microinstruc¸a˜o a ser executada. A lo´gica de determinac¸a˜o do MPC e´
a seguinte:
Se JMPC = 1
Enta˜o
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]
3 Parte Experimental
A parte experimental consiste da elaborac¸a˜o e simulac¸a˜o da entidade correspondente a` via de dados,
a qual devera´ incluir a lo´gica de formac¸a˜o do MPC. A entidade resultante devera´ ter os sinais de E/S
descritos na figura 1.
Atenc¸a˜o para os seguintes detalhes:
• Devido a` integrac¸a˜o interna dos barramentos A, B e C entre os componentes referentes ao banco
de registradores e a` ULA/Deslocador, o nu´mero de sinais referentes a` pinagem externa diminuira´,
voltando a ser compat´ıvel com a famı´lia de dispositivos FLEX10K da Altera e possibilitando,
assim, a simulac¸a˜o desta entidade.
2
• Diferentemente do livro-texto, os sinais NEXT ADDR e MPC foram ambos reduzidos de 9 para
8 pinos, e a lo´gica de formac¸a˜o do MPC passa a empregar o bit 6 para fins de combinac¸a˜o com
os flags N e Z ao inve´s do bit 8. Estas alterac¸o˜es sa˜o necessa´rias para fins de compatibilidade
com a famı´lia FLEX10K da Altera, a qual na˜o suporta o nu´mero de pinos finais da arquitetura
original do MIC-1.
• Os estados das sa´ıdas N e Z da ULA devem ser salvos em flip-flops na borda de subida do clock,
pois enquanto este estiver em n´ıvel alto na˜o ha´ garantia de estabilidade nas sa´ıdas da ULA,
criando, assim, os sinais DN e DZ. (Questa˜o: como implementar estes flip-flops em VHDL ?)
3

Outros materiais