Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Aula 19: UCP: Construindo um Caminho de Dados (Parte III)
Fernanda Passos
Universidade Federal Fluminense
Fundamentos de Arquiteturas de Computadores
Material baseado nos slides do prof. Diego Passos
Fernanda Passos (UFF) UCP: Caminho de Dados (III) FAC 1 / 38
Revisao
Fernanda Passos (UFF) UCP: Caminho de Dados (III) FAC 2 / 38
Na Aula Passada. . .
Continuamos o projeto do caminho de dados do nosso processador.Tomamos varias decisoes de projeto.
I Tamanho da palavra.I Linhas de controle em cada componente.I Comportamentos especıficos de cada componente.I Numero de registradores de proposito geral.I (Ausencia de) ponto flutuante.I Codificacao de numeros negativos.I . . .
Fernanda Passos (UFF) UCP: Caminho de Dados (III) FAC 3 / 38
Na Aula Passada. . . (II)
Tambem iniciamos a terceira fase do projeto.I A interconexao dos componentes.
Seguindo a estrategia de desenvolvimento incremental, comecamos do basico.I Como implementar a etada de busca de uma instrucao.I Fase comum a qualquer tipo de instrucao.
Demais etapas sao especıficas de cada tipo de instrucao.I Vimos, por exemplo, como executar uma instrucao do tipo R.
Fernanda Passos (UFF) UCP: Caminho de Dados (III) FAC 4 / 38
Na Aula Passada. . . (III)
RI
RI[25-21]
RI[20-16]
RI[15-11]
Registrador
de Leitura 1
Valor Lido 1
Registrador
de Leitura 2
Valor Lido 2
Registrador
de Escrita
Valor Escrito
Registradores
ALU
Zero
Resultado
Controle
PC
Somador4
Memória de Instruções
Endereço
Instrução Lida
Fernanda Passos (UFF) UCP: Caminho de Dados (III) FAC 5 / 38
Na Aula Passada. . . (IV)
Este esquematico e quase completo para a execucao de instrucoes do tipo R.Mas falta uma coisa:
I Determinar as linhas de controle da ALU.
Fernanda Passos (UFF) UCP: Caminho de Dados (III) FAC 6 / 38
Na Aula de Hoje. . .
Eventualmente, veremos como conectar as linhas de entrada da ALU.Mas note que operacoes logicas/aritmeticas tambem sao necessarias para outros tipos deinstrucao.
I Diferentes do tipo R.I Como as instrucoes de desvio condicional.
Por isso, antes disso, veremos como implementar outras instrucoes.
Fernanda Passos (UFF) UCP: Caminho de Dados (III) FAC 7 / 38
Instrucoes de Desvio Condicional
Fernanda Passos (UFF) UCP: Caminho de Dados (III) FAC 8 / 38
Instrucoes de Desvio Condicional
Relembrando:I Nosso processador simplificado possui apenas uma instrucao deste tipo.I A instrucao branch on equal.I Semantica:
F Compara dois valores (em registradores).F Se forem iguais, altera o valor do PC.F Se forem diferentes, PC continua apontando para a proxima instrucao.
Fernanda Passos (UFF) UCP: Caminho de Dados (III) FAC 9 / 38
Instrucoes de Desvio Condicional (II)
Alguns detalhes importantes:I A instrucao possui formato I.
F Recebe tres operandos: 2 registradores, 1 imediato (constante).I Se desvio for tomado, PC e incrementado no valor dado pelo imediato.
F Depois do incremento inicial.F E em unidades do tamanho da instrucao.F Isto e: PC ← PC + (imm + 1)× 4.
Fernanda Passos (UFF) UCP: Caminho de Dados (III) FAC 10 / 38
Branch on Equal : Busca de Operandos
A instrucao compara dois valores.I Ambos em registradores.I Especificados nos bits da instrucao.
Logo, o banco de registradores serautilizado.Note que a instrucao nunca escreve emregistrador.
I Nao precisamos especifcar o ID doregistrador de escrita.
I E nem o valor.
RI
RI[25-21]
RI[20-16]
Registrador de Leitura 1
Valor Lido 1
Registrador de Leitura 2
Valor Lido 2
Registrador de Escrita
Valor Escrito
Registradores
Operando 1
Operando 2
Fernanda Passos (UFF) UCP: Caminho de Dados (III) FAC 11 / 38
Branch on Equal : Execucao
A execucao em si consiste na comparacao dos dois valores e no calculo do novo PC.I Em caso de desvio.
Note que nenhum componente visto ate aqui realiza comparacoes.I Nem mesmo a ALU tem essa funcionalidade.
Mas podemos alcancar este mesmo efeito usando um truque.I Repare que nossa ALU tem duas saıdas: resultado e o bit zero.I Bit zero indica se operacao realizada deu zero.I Uma subtracao da zero se, e somente se, os operandos forem iguais.
Solucao:I Usamos a ALU para subtrair os dois valores.I Se o bit zero ficar ativo, valores sao iguais.
Fernanda Passos (UFF) UCP: Caminho de Dados (III) FAC 12 / 38
Branch on Equal : Execucao (II)
A interconexao entre o banco de registradores e a ALU e identica aquela das instrucoes R.
Registrador
de Leitura 1
Valor Lido 1
Registrador
de Leitura 2
Valor Lido 2
Registrador
de Escrita
Valor Escrito
Registradores
ALU
Zero
Resultado
Controle
Fernanda Passos (UFF) UCP: Caminho de Dados (III) FAC 13 / 38
Branch on Equal : Execucao (III)
Alem da comparacao, a execucao desta instrucao faz mais.E preciso calcular o novo valor do PC.
I Caso a condicao seja verdadeira.Relembrando o valor desejado para o PC:
I PC + (imm + 1) × 4.I Ou: PC + 4 + imm × 4.
Note que no processo de busca da proxima instrucao ja calculavamos PC + 4.I Se aproveitarmos aquele resultado, precisamos apenas soma-lo com imm × 4.
Fernanda Passos (UFF) UCP: Caminho de Dados (III) FAC 14 / 38
Branch on Equal : Execucao (IV)
O valor do imediato vem dos 16 bits menos significativos da instrucao.Multiplica-lo por 4 e facil.
I Basta desloca-lo 2 bits para a esquerda.Para soma-lo com PC + 4, poderıamos usar a ALU.Mas nao vamos porque:
I Ja estamos usando a ALU para fazer a comparacao dos dois valores.I Precisarıamos de outra ALU para isso.I Mas basta um somador simples.
Fernanda Passos (UFF) UCP: Caminho de Dados (III) FAC 15 / 38
Branch on Equal : Execucao (V)
Resumindo esta parte da execucao:
PC
Extensãode
Sinal
Deslocamentode 2 à
Esquerda
Somador
Somador
4RI
RI[15-0] 16 32
Fernanda Passos (UFF) UCP: Caminho de Dados (III) FAC 16 / 38
Branch on Equal : Armazenando o Resultado
O resultado de uma instrucao de desvio e o novo valor de PC.I Ou PC + 4, ou PC + 4 + 4 × imm.
Ao final da instrucao este valor deve ser armazenado de volta no PC.Na etapa de armazenamento de resultado, portanto, precisamos:
I Decidir entre os dois valores.I Escrevermos este valor de volta no PC.
A decisao entre os dois valores e realizada com base no bit zero da saıda da ALU.
Fernanda Passos (UFF) UCP: Caminho de Dados (III) FAC 17 / 38
Branch on Equal : Armazenando o Resultado (II)
PC
Extensãode
Sinal
Deslocamentode 2 à
Esquerda
Somador
Somador
4RI
RI[15-0] 16 32
Mux
0
1
ALUZero
Resultado
Controle
Fernanda Passos (UFF) UCP: Caminho de Dados (III) FAC 18 / 38
Branch on Equal : Juntando Tudo
PC
Extensãode
Sinal
Deslocamentode 2 à
Esquerda
Somador
Somador
4RI
RI[15-0] 16 32
Mux
0
1
ALUZero
Resultado
Controle
RI[25-21]
RI[20-16]
Registrador de Leitura 1
Valor Lido 1
Registrador de Leitura 2
Valor Lido 2
Registrador de Escrita
Valor Escrito
Registradores
Memória de Instruções
Endereço
Instrução Lida
Fernanda Passos (UFF) UCP: Caminho de Dados (III) FAC 19 / 38
Branch on Equal : Juntando Tudo (II)
Assim como ocorreu para as instrucoes R, este caminho de dados esta ainda incompleto.I As linhas de controle da ALU ainda estao desconectadas.
Como fizemos anteriormente, vamos deixar estas conexoes para mais tarde.
Fernanda Passos (UFF) UCP: Caminho de Dados (III) FAC 20 / 38
Instrucao Add Immediate
Fernanda Passos (UFF) UCP: Caminho de Dados (III) FAC 21 / 38
Instrucao Add Immediate
Relembrando:I Instrucao no formato I.
F Assim como a branch on equal que acabamos de ver.I Soma valor de um registrador com o imediato.I Armazena resultado em um registrador.
De certa forma, essa instrucao e uma mistura das instrucoes R com a instrucao de desviocondicional.
I Usa o mesmo formato da de desvio.I Mas executa uma operacao aritmetica e armazena resultado em registrador.
Fernanda Passos (UFF) UCP: Caminho de Dados (III) FAC 22 / 38
Instrucao Add Immediate
Nossa implementacao para esta instrucao vai combinar as solucoes ja vistas.I Aproveitar a obtencao do imediato feita para a instrucao de desvio.I Usar o imediato como uma das entradas da ALU.I O restante da estrutura sera identica a projetada para as instrucoes do tipo R.
Fernanda Passos (UFF) UCP: Caminho de Dados (III) FAC 23 / 38
Instrucao Add Immediate: Busca de Operandos
Extensãode
Sinal
RI
RI[15-0] 16 32
RI[25-21] Registrador de Leitura 1
Valor Lido 1
Registrador de Leitura 2
Valor Lido 2
Registrador de Escrita
Valor Escrito
Registradores
Operando 1
Operando 2
Fernanda Passos (UFF) UCP: Caminho de Dados (III) FAC 24 / 38
Instrucao Add Immediate: Execucao
Execucao e trivial: deixamos por conta da ALU.
Extensãode
Sinal
RI
RI[15-0] 16 32
RI[25-21] Registrador de Leitura 1
Valor Lido 1
Registrador de Leitura 2
Valor Lido 2
Registrador de Escrita
Valor Escrito
Registradores
ALUZero
Resultado
Controle
Fernanda Passos (UFF) UCP: Caminho de Dados (III) FAC 25 / 38
Instrucao Add Immediate: Armazenando o ResultadoSimplesmente conectamos a saıda da ALU ao valor a ser escrito no banco de registradores.ID do registrador para escrita vem diretamente dos bits 20–16 do RI.
Extensãode
Sinal
RI
RI[15-0] 16 32
RI[25-21] Registrador de Leitura 1
Valor Lido 1
Registrador de Leitura 2
Valor Lido 2
Registrador de Escrita
Valor Escrito
Registradores
ALUZero
Resultado
Controle
RI[20-16]
Fernanda Passos (UFF) UCP: Caminho de Dados (III) FAC 26 / 38
Instrucao Add Immediate: Juntando Tudo
Extensãode
Sinal
RI
RI[15-0] 16 32
RI[25-21] Registrador de Leitura 1
Valor Lido 1
Registrador de Leitura 2
Valor Lido 2
Registrador de Escrita
Valor Escrito
Registradores
ALUZero
Resultado
Controle
RI[20-16]
PC
Somador
4
Memória de Instruções
Endereço
Instrução Lida
Fernanda Passos (UFF) UCP: Caminho de Dados (III) FAC 27 / 38
Instrucao Add Immediate: Juntando Tudo (II)
Este caminho de dados e mais um que utiliza a ALU.Novamente, nao indicamos de onde virao as linhas de controle.Assim como fizemos nos outros casos, resolveremos isso depois.
Fernanda Passos (UFF) UCP: Caminho de Dados (III) FAC 28 / 38
Instrucoes de Transferencia de Memoria
Fernanda Passos (UFF) UCP: Caminho de Dados (III) FAC 29 / 38
Instrucoes de Transferencia de Memoria
Relembrando:I Ha duas instrucoes deste tipo: load word e store word.I Ambas usam o formato I: dois registradores e um imediato.I Em ambos os casos, o endereco da MP a ser acessado e dado por uma soma:
F Valor do primeiro registrador somado ao imediato.I O segundo registrador e a origem/destino do dado a ser transferido.
Fernanda Passos (UFF) UCP: Caminho de Dados (III) FAC 30 / 38
Instrucoes de Transferencia de Memoria: Busca de Operandos
Na instrucao load word, antes da execucao, precisamos determinar o endereco a seracessado.Na store word, adicionalmente, precisamos do valor a ser escrito.O endereco a ser acessado precisa ser calculado.
I Podemos usar a ALU para isso.I Ela nao sera necessaria para mais nada nestas instrucoes.
Para obter o valor a ser escrito na MP, basta passar o ID do registrador adequado para obanco de registradores.
Fernanda Passos (UFF) UCP: Caminho de Dados (III) FAC 31 / 38
Instrucoes de Transferencia de Memoria: Busca de Operandos (II)
Extensãode
Sinal
RI
RI[15-0] 16 32
RI[25-21] Registrador de Leitura 1
Valor Lido 1
Registrador de Leitura 2
Valor Lido 2
Registrador de Escrita
Valor Escrito
Registradores
ALUZero
Resultado
Controle
RI[20-16]
Endereço
Valor
Fernanda Passos (UFF) UCP: Caminho de Dados (III) FAC 32 / 38
Instrucoes de Transferencia de Memoria: ExecucaoDados o endereco a ser acessado e o valor a ser escrito (no caso da store word), aexecucao e trivial.Trabalho pesado e feito pela interface de acesso a MP.
Extensãode
Sinal
RI
RI[15-0] 16 32
RI[25-21] Registrador de Leitura 1
Valor Lido 1
Registrador de Leitura 2
Valor Lido 2
Registrador de Escrita
Valor Escrito
Registradores
ALUZero
Resultado
Controle
RI[20-16]
Endereço
Valor
Fernanda Passos (UFF) UCP: Caminho de Dados (III) FAC 33 / 38
Instrucoes de Transferencia de Memoria: Execucao (II)
Extensãode
Sinal
RI
RI[15-0] 16 32
RI[25-21] Registrador de Leitura 1
Valor Lido 1
Registrador de Leitura 2
Valor Lido 2
Registrador de Escrita
Valor Escrito
Registradores
ALUZero
Resultado
Controle
RI[20-16]
Endereço
Valor
Escrita Leitura
Memória de Dados
Endereço
Valor Escrito
Valor Lido
Fernanda Passos (UFF) UCP: Caminho de Dados (III) FAC 34 / 38
Instrucoes de Transferencia de Memoria: Armazenando os Resultados
Quais sao os resultados da execucao das instrucoes de transferencia de memoria?No caso da load word, a interface com a MP retornara o valor lido.
I Precisa ser armazenado no registrador adequado.No caso da store word o unico armazenamento e a propria escrita do dado na MP.
I Tarefa realizada pela interface com a MP.Logo, nesta etapa, para a CPU, basta conectar a saıda da interface com a MP, a entradado banco de registradores.
I O ID do registrador vem diretamente dos bits do RI.
Fernanda Passos (UFF) UCP: Caminho de Dados (III) FAC 35 / 38
Instrucoes de Transferencia de Memoria: Execucao (II)
Extensãode
Sinal
RI
RI[15-0] 16 32
RI[25-21] Registrador de Leitura 1
Valor Lido 1
Registrador de Leitura 2
Valor Lido 2
Registrador de Escrita
Valor Escrito
Registradores
ALUZero
Resultado
Controle
RI[20-16]
Escrita Leitura
Memória de Dados
Endereço
Valor Escrito
Valor Lido
Fernanda Passos (UFF) UCP: Caminho de Dados (III) FAC 36 / 38
Instrucoes de Transferencia de Memoria: Juntando Tudo
Extensãode
Sinal
RI
RI[15-0] 16 32
RI[25-21] Registrador de Leitura 1
Valor Lido 1
Registrador de Leitura 2
Valor Lido 2
Registradorde Escrita
Valor Escrito
Registradores
ALUZero
Resultado
Controle
RI[20-16]
Escrita Leitura
Memória de Dados
Endereço
Valor Escrito
Valor Lido
PC
Somador
4
Memória de Instruções
Endereço
Instrução Lida
Fernanda Passos (UFF) UCP: Caminho de Dados (III) FAC 37 / 38
Instrucoes de Transferencia de Memoria: Juntando Tudo (II)
Novamente, ainda nao indicamos de onde vem as linhas de controle da ALU.Pior: neste caso temos mais duas desligadas.
I As linhas de escrita e leitura da interface com a MP.
Mais uma vez, vamos deixar isso para a proxima aula!
Fernanda Passos (UFF) UCP: Caminho de Dados (III) FAC 38 / 38
Instrucoes de Transferencia de Memoria: Juntando Tudo (II)
Novamente, ainda nao indicamos de onde vem as linhas de controle da ALU.Pior: neste caso temos mais duas desligadas.
I As linhas de escrita e leitura da interface com a MP.Mais uma vez, vamos deixar isso para a proxima aula!
Fernanda Passos (UFF) UCP: Caminho de Dados (III) FAC 38 / 38