47
Aula 20: UCP: A Unidade de Controle Fernanda Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Material baseado nos slides do prof. Diego Passos Fernanda Passos (UFF) UCP: Unidade de Controle FAC 1 / 42

Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

Aula 20: UCP: A Unidade de Controle

Fernanda Passos

Universidade Federal Fluminense

Fundamentos de Arquiteturas de Computadores

Material baseado nos slides do prof. Diego Passos

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 1 / 42

Page 2: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

Revisao

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 2 / 42

Page 3: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

Na Aula Passada. . .

Avancamos bastante no projeto do nosso processador.Construımos caminhos de dados para diversas instrucoes.

I Instrucao branch on equal.I Instrucao add immediate.I Instrucoes store word e load word.

Uma aula antes, havıamos feito o mesmo para todas as instrucoes do tipo R.

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 3 / 42

Page 4: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

Na Aula Passada. . . (II)

Embora tenhamos implementado o caminho de dados de varias instrucoes, estes aindaestavam incompletos.

I Faltavam as conexoes das linhas de controle.I Da ALU, da interface com a memoria.

Alem disso, construımos caminhos de dados separados para cada tipo de instrucao.I De alguma forma, precisamos junta-los.I Combinar os projetos em um unico.

Adicionalmente, ha uma instrucao do conjunto de instrucoes que nao foi implementada.I O salto incondicional.I Instrucao jump.

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 4 / 42

Page 5: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

Na Aula de Hoje

Objetivo da aula de hoje e (quase) terminar o projeto.I Ao menos esta versao.

Vamos combinar os caminhos de dados de cada conjunto de instrucoes em um unico.I E criar ainda mais ainda mais linhas de controle a serem conectadas.

Vamos (finalmente) conectar as linhas de controle.

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 5 / 42

Page 6: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

Combinando os Caminhos de Dados

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 6 / 42

Page 7: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

Caminhos de Dados Separados

Para simplificar o problema, dividimos a implementacao do caminho de dados em tipos deinstrucoes.Isso resultou em 4 caminhos de dados separados:

I Caminho de dados para instrucoes do tipo R.I Caminho de dados para a instrucao branch on equal.I Caminho de dados para a instrucao add immediate.I Caminho de dados para instrucoes de transferencia de memoria.

Isso seria suficiente se nosso processador so executasse instrucoes de um destes quatrotipos.

I Mas um processador assim nao seria muito util.I Precisamos de um que seja capaz de implementar todas as instrucoes.

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 7 / 42

Page 8: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

Caminhos de Dados Separados

Como ja temos os caminhos de dados separados, vamos aproveitar este conhecimento.Vamos tentar combina-los em um unico caminho de dados.

I Que permita a execucao de qualquer das instrucoes.Como passo inicial, vamos lembrar como eram os 4 caminhos de dados ja vistos.

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 8 / 42

Page 9: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

Caminho de Dados para Instrucoes R

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

ALUZero

Resultado

Controle

PC

Somador

4

Memória de Instruções

Endereço

Instrução Lida

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 9 / 42

Page 10: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

Caminho de Dados para a Instrucao Branch on Equal

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: Unidade de Controle FAC 10 / 42

Page 11: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

Caminho de Dados para a Instrucao Add Immediate

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: Unidade de Controle FAC 11 / 42

Page 12: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

Caminho de Dados para Instrucoes de Transferencia de Memoria

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: Unidade de Controle FAC 12 / 42

Page 13: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

O Quao Diferentes Eles Sao?

Semelhancas:I Todos possuem o incremento do PC.I Todos fazem a leitura da proxima instrucao.

F Armazenada no RI.I Todos utilizam a ALU.

F Primeira entrada e sempre o “Valor Lido 1” do banco de registradores.I Sempre ha um banco de registradores.

F IDs dos registradores a serem lidos sempre vem dos bits 25–21 e 20–16 do RI.

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 13 / 42

Page 14: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

O Quao Diferentes Eles Sao? (II)

Diferencas:I A segunda entrada da ALU:

F “Valor Lido 2” do banco de registradores.F Ou bits 15–0 do RI, depois de extensao de sinal para 32 bits.

I ID do registrador de escrita do banco de registradores.F Bits 15–11 do RI.F Ou Bits 20–16 do RI.F Ou nada.

I Valor a ser escrito no banco de registradores.F Saıda da ALU.F Ou valor lido da interface com a MP.

I A existencia da interface com a MP.F Para instrucoes de transferencia de memoria.

I Novo valor do PC.F Saıda do somador com a constante 4.F Saıda do somador com o deslocamento para desvios condicionais.

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 14 / 42

Page 15: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

Como Conciliar as Diferencas?

Ha tres tipos de diferencas:I Componentes que nao estao em todos os caminhos de dados.

F Podemos simplesmente colocar todos os componentes que aparecem em pelo menos umcaminho de dados.

F Nem todos os componentes sao usados em todas as instrucoes.F Nao e um problema.

I Saıdas de componentes ligadas a entradas diferentes em caminhos de dados diferentes.F Podemos replicar a saıda para todas as entradas necessarias.F e.g., resultado da ALU conectado tanto como entrada do banco de registradores, quanto da

interface com a MP.I Entradas de componentes conectadas a componentes diferentes.

F Problema mais serio.F Nao podemos simplesmente “emendar” as varias entradas possıveis.F Temos que fazer algum tipo de selecao, de acordo com a instrucao executada.

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 15 / 42

Page 16: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

Como Conciliar as Diferencas?

Ha tres tipos de diferencas:I Componentes que nao estao em todos os caminhos de dados.

F Podemos simplesmente colocar todos os componentes que aparecem em pelo menos umcaminho de dados.

F Nem todos os componentes sao usados em todas as instrucoes.F Nao e um problema.

I Saıdas de componentes ligadas a entradas diferentes em caminhos de dados diferentes.F Podemos replicar a saıda para todas as entradas necessarias.F e.g., resultado da ALU conectado tanto como entrada do banco de registradores, quanto da

interface com a MP.

I Entradas de componentes conectadas a componentes diferentes.F Problema mais serio.F Nao podemos simplesmente “emendar” as varias entradas possıveis.F Temos que fazer algum tipo de selecao, de acordo com a instrucao executada.

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 15 / 42

Page 17: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

Como Conciliar as Diferencas?

Ha tres tipos de diferencas:I Componentes que nao estao em todos os caminhos de dados.

F Podemos simplesmente colocar todos os componentes que aparecem em pelo menos umcaminho de dados.

F Nem todos os componentes sao usados em todas as instrucoes.F Nao e um problema.

I Saıdas de componentes ligadas a entradas diferentes em caminhos de dados diferentes.F Podemos replicar a saıda para todas as entradas necessarias.F e.g., resultado da ALU conectado tanto como entrada do banco de registradores, quanto da

interface com a MP.I Entradas de componentes conectadas a componentes diferentes.

F Problema mais serio.F Nao podemos simplesmente “emendar” as varias entradas possıveis.F Temos que fazer algum tipo de selecao, de acordo com a instrucao executada.

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 15 / 42

Page 18: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

Selecionando entre Varias Entradas

Note que ha um componente que pode realizar esta selecao.O multiplexador:

I Recebe duas ou mais entradas.I E uma ou mais linhas de controle.

F Tambem chamadas de seletor.I A saıda e identica a entrada apontada pelas linhas de controle.

Para cada entrada que pode receber dois ou mais valores, colocaremos um ou maismultiplexadores.

I Bastara, de alguma forma, ligar corretamente o seletor.I De acordo com a instrucao a ser executada.

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 16 / 42

Page 19: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

Combinando Caminhos de Dados: Formato R e Transferencia de Memoria

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

RI[15-11]

Mux

0

1

Mux

1

0

Mux

0

1S

S

S

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 17 / 42

Page 20: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

Combinando Caminhos de Dados: Suporte a Add Immediate

O suporte a esta instrucao vem “de graca”.I Utiliza partes do caminho do formato R e partes da transferencia de memoria.

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

RI[15-11]

Mux

0

1

Mux

1

0

Mux

0

1S

S

S

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 18 / 42

Page 21: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

Combinando Caminhos de Dados: Suporte a Branch on Equal

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

RI[15-11]

Mux

0

1

Mux

1

0

Mux

0

1S

S

S

Deslocamentode 2 à

Esquerda

Somador

Mux

0

1

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 19 / 42

Page 22: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

Combinando Caminhos de Dados: Suporte a Branch on Equal (II)

Ha algum problema no projeto do slide anterior?

Sim:I Colocamos um caminho alternativo para a atualizacao do PC.I A unica coisa que controla o uso deste caminho alternativo e o bit zero de saıda da ALU.I Se estivermos executando qualquer instrucao que use a ALU e, por coincidencia o

resultado for zero, PC recebera um valor provavelmente errado.Como solucionar isso?

I Precisamos garantir que o multiplexador do novo valor do PC receba 0 como seletor sempreque a instrucao nao seja de desvio condicional.

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 20 / 42

Page 23: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

Combinando Caminhos de Dados: Suporte a Branch on Equal (II)

Ha algum problema no projeto do slide anterior?Sim:

I Colocamos um caminho alternativo para a atualizacao do PC.I A unica coisa que controla o uso deste caminho alternativo e o bit zero de saıda da ALU.I Se estivermos executando qualquer instrucao que use a ALU e, por coincidencia o

resultado for zero, PC recebera um valor provavelmente errado.Como solucionar isso?

I Precisamos garantir que o multiplexador do novo valor do PC receba 0 como seletor sempreque a instrucao nao seja de desvio condicional.

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 20 / 42

Page 24: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

Combinando Caminhos de Dados: Suporte a Branch on Equal (II)

Ha algum problema no projeto do slide anterior?Sim:

I Colocamos um caminho alternativo para a atualizacao do PC.I A unica coisa que controla o uso deste caminho alternativo e o bit zero de saıda da ALU.I Se estivermos executando qualquer instrucao que use a ALU e, por coincidencia o

resultado for zero, PC recebera um valor provavelmente errado.Como solucionar isso?

I Precisamos garantir que o multiplexador do novo valor do PC receba 0 como seletor sempreque a instrucao nao seja de desvio condicional.

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 20 / 42

Page 25: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

Combinando Caminhos de Dados: Suporte a Branch on Equal (III)

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

RI[15-11]

Mux

0

1

Mux

1

0

Mux

0

1S

S

S

Deslocamentode 2 à

Esquerda

Somador

Mux

0

1

Branch

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 21 / 42

Page 26: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

A Unidade de Controle

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 22 / 42

Page 27: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

A Unidade de Controle

Ha algumas aulas, citamos que a CPU pode ser dividida:I Caminho de dados: circuito logico por onde dados passam e sao “processados”.I Unidade de controle: circuito logico que controla/configura o caminho de dados de acordo

com a instrucao.Acabamos de montar um caminho de dados capaz de executar varias instrucoesdiferentes.

I Para cada instrucao, vemos um caminho pelo qual os dados passam e sao alterados.I Ao final do caminho, temos o resultado desejado.

Mas para compatibilizar as varias instrucoes, tivemos que usar varias linhas de controle.I Alguem precisa determinar o valor destas linhas.I Trabalho da unidade de controle.

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 23 / 42

Page 28: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

Determinando as Linhas de Controle

Quais linhas de controle temos no nosso caminho de dados atual?Sao 11, no total. Vamos nomea-las:

I Quatro linhas de controle da ALU: ALU0, ALU1, ALU2, ALU3.I RegDst: seleciona ID do registrador de escrita.I RegWrite: determina se havara escrita em registrador.I ALUSrc: seleciona segunda entrada da ALU (registrador ou imediato).I Branch: determina se novo valor de PC e apenas o increment ou se e decidido por instrucao

de desvio.I MemRead: determina se havera leitura da MP.I MemWrite: determina se havera escrita na MP.I MemToReg: seleciona dado a ser escrito em registrador (se vindo da memoria, ou da ALU).

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 24 / 42

Page 29: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

Linhas de Controle e OpCodes

Com excecao as linhas de controle da ALU, todas as demais sao determinadas peloOpCode.

I Pelo tipo de operacao a ser realizada.Por exemplo, considere a linha RegWrite.

I Deve ser ativada para as instrucoes de formato R e para instrucao load word.I Mas nao pode ser ativada para as demais instrucoes.

F Caso contrario, escreveremos lixo em algum registrador.

Este tipo de raciocınio pode ser feito com todas as linhas, formando tabelas verdade.

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 25 / 42

Page 30: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

Tabela Verdade das Linhas de Controle: RegDst

Seleciona origem do ID do registrador de escrita.Precisa ser 1 para instrucoes de formato R (usar bits 15–11 do RI).Precisa ser 0 para load word e add immediate (usar bits 20–16).Outras instrucoes nao escrevem em registrador.

Tipo de Operacao Op5 Op4 Op3 Op2 Op1 Op0 RegDstFormato R 0 0 0 0 0 0 1load word 1 0 0 0 1 1 0store word 1 0 1 0 1 1 Xadd immediate 0 0 1 0 0 0 0branch on equal 0 0 0 1 0 0 X

Possıvel expressao: RegDst = ¬Op5 ∧ ¬Op3.

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 26 / 42

Page 31: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

Tabela Verdade das Linhas de Controle: ALUSrc

Seleciona origem da segunda entrada da ALU.Precisa ser 1 para instrucoes de formato I (usar imediato).Precisa ser 0 para as demais (usar registrador).

Tipo de Operacao Op5 Op4 Op3 Op2 Op1 Op0 ALUSrcFormato R 0 0 0 0 0 0 0load word 1 0 0 0 1 1 1store word 1 0 1 0 1 1 1add immediate 0 0 1 0 0 0 1branch on equal 0 0 0 1 0 0 0

Possıvel expressao: ALUSrc = Op5 ∨ Op3.

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 27 / 42

Page 32: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

Tabela Verdade das Linhas de Controle: MemToReg

Seleciona dado a ser escrito em registrador.Precisa ser 1 para load word (usar saıda da interface com a MP).Precisa ser 0 para as de formato R e a add immediate (usar saıda da ALU).Outras instrucoes nao escrevem em registrador.

Tipo de Operacao Op5 Op4 Op3 Op2 Op1 Op0 MemToRegFormato R 0 0 0 0 0 0 0load word 1 0 0 0 1 1 1store word 1 0 1 0 1 1 Xadd immediate 0 0 1 0 0 0 0branch on equal 0 0 0 1 0 0 X

Possıvel expressao: MemToReg = Op0.

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 28 / 42

Page 33: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

Tabela Verdade das Linhas de Controle: RegWrite

Determina se havera escrita em registrador.Precisa ser 1 para load word, add immediate e formato R.Precisa ser 0 para as demais.

Tipo de Operacao Op5 Op4 Op3 Op2 Op1 Op0 RegWriteFormato R 0 0 0 0 0 0 1load word 1 0 0 0 1 1 1store word 1 0 1 0 1 1 0add immediate 0 0 1 0 0 0 1branch on equal 0 0 0 1 0 0 0

Possıvel expressao: RegWrite = ¬((Op0 ∧ Op3) ∨ Op2).

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 29 / 42

Page 34: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

Tabela Verdade das Linhas de Controle: MemRead

Determina se havera leitura da MP.Precisa ser 1 para load word.Podemos considerar 0 para as demais.

Tipo de Operacao Op5 Op4 Op3 Op2 Op1 Op0 MemReadFormato R 0 0 0 0 0 0 0load word 1 0 0 0 1 1 1store word 1 0 1 0 1 1 0add immediate 0 0 1 0 0 0 0branch on equal 0 0 0 1 0 0 0

Possıvel expressao: MemRead = Op5 ∧ ¬Op3.

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 30 / 42

Page 35: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

Tabela Verdade das Linhas de Controle: MemWrite

Determina se havera escrita na MP.Precisa ser 1 para store word.Precisa ser 0 para as demais.

Tipo de Operacao Op5 Op4 Op3 Op2 Op1 Op0 MemWriteFormato R 0 0 0 0 0 0 0load word 1 0 0 0 1 1 0store word 1 0 1 0 1 1 1add immediate 0 0 1 0 0 0 0branch on equal 0 0 0 1 0 0 0

Possıvel expressao: MemWrite = Op5 ∧ Op3.

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 31 / 42

Page 36: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

Tabela Verdade das Linhas de Controle: Branch

Determina se a instrucao e de branch.Precisa ser 1 para branch if equal.Precisa ser 0 para as demais.

Tipo de Operacao Op5 Op4 Op3 Op2 Op1 Op0 BranchFormato R 0 0 0 0 0 0 0load word 1 0 0 0 1 1 0store word 1 0 1 0 1 1 0add immediate 0 0 1 0 0 0 0branch on equal 0 0 0 1 0 0 1

Possıvel expressao: Branch = Op2.

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 32 / 42

Page 37: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

O Componente de Controle

Obtivemos expressoes logicas para cada linha de controle.I Em funcao dos bits do campo OpCode.

Podemos facilmente implementa-las atraves de portas logicas.I Componentes de eletronica digital.

E encapsular a implementacao em um componente do processador.I Que chamaremos simplesmente de Controle.

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 33 / 42

Page 38: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

O Componente de Controle (II)

Controle

RI

RI[31-26]

RegDest

Branch

MemReadMemWrite

MemToReg

ALUSrcRegWrite

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 34 / 42

Page 39: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

O Controle da ALU

Nosso componente de controle lida com 7 das 11 linhas de controle do caminho de dados.Mas ignoramos as linhas da ALU.O motivo para isso e simples:

I Os bits do OpCode nao determinam completamente as linhas de controle da ALU.I Instrucoes de formato R tem todas o mesmo OpCode.I Mas requerem acoes diferentes da ALU dependendo do campo funcao.

F Seis ultimos bits da instrucao.I Isso quer dizer que precisaremos de outro conjunto de logica de controle para estes bits.

F Chamaremos este de Controle da ALU.

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 35 / 42

Page 40: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

O Controle da ALU: Tabela Verdade

Podemos construir uma tabela verdade mapeando o campo Funcao as linhas de controleda ALU.

Instrucao Func5 Func4 Func3 Func2 Func1 Func0 ALU3 ALU2 ALU1 ALU0add 1 0 0 0 0 0 0 0 1 0subtract 1 0 0 0 1 0 0 1 1 0AND 1 0 0 1 0 0 0 0 0 0OR 1 0 0 1 0 1 0 0 0 1slt 1 0 1 0 1 0 0 1 1 1

Possıveis expressoes logicas:I ALU3 = 0.I ALU2 = Func1.I ALU1 = ¬Func2.I ALU0 = Func0 ∨ Func3.

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 36 / 42

Page 41: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

O Controle da ALU: Outras Instrucoes

Note que todas as instrucoes vistas ate aqui usam a ALU.I Nao apenas as de formato R.

As de transferencia de memoria (store word, load word) executam uma soma (registradormais imediato).A add immediate idem.A branch on equal executa uma subtracao.As expressoes logicas do slide anterior, portanto, so valem para instrucoes do tipo R.

I OpCode zerado.Para implementar estas excecoes, vamos criar duas linhas de controle adicionais:

I Note que o controle da ALU nao tem acesso aos bits do OpCode.F Precisaremos da intervencao do Componente de Controle.

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 37 / 42

Page 42: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

O Controle da ALU: Outras Instrucoes

Para implementar estas excecoes, vamos criar duas linhas de controle adicionais:I OpALU0 e OpALU1.

Estas linhas de controle serao entradas adicionais do componente de controle da ALU.E serao determinadas pelo Componente de Controle, com base nos bits do OpCode.Mais especificamente:

I Quando OpALU0 = 0, OpALU1 = 0, ALU deve somar.I Quando OpALU0 = 0, OpALU1 = 1, ALU deve subtrair.I Quando OpALU0 = 1, OpALU1 = 0, operacao especificada pelo campo Funcao.

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 38 / 42

Page 43: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

Linhas de Controle OpALU

Controle

RI

RI[31-26]

RegDest

Branch

MemReadMemWrite

MemToReg

ALUSrcRegWrite

ControleALU

ALUOp1

RI[5-0]

ALUOp0

ALU0ALU1ALU2ALU3

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 39 / 42

Page 44: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

Juntando Tudo

Controle

PC

ControleALU

Extensãode

Sinal

Deslocamentode 2 à

Esquerda

Somador

Somador

ALUZero

Resultado

Escrita

Escrita Leitura

4

RI RI[31-26]

RI[25-21]

RI[20-16]

RI[15-0]

Mux

0

1

16 32

Mux

0

1Mux

1

0

RI[15-11]

RegDest

Branch

MemReadMemWrite

MemToReg

ALUOp1

ALUSrcRegWrite

RI[5-0]

Memória de Dados

Endereço

Valor Escrito

Valor Lido

Memória de Instruções

Endereço

Instrução Lida

ALUOp0

Bit 0Bit 1Bit 2Bit 3

Mux

0

1

Registrador de Leitura 1

Valor Lido 1

Registrador de Leitura 2

Valor Lido 2

Registrador de Escrita

Valor Escrito

Registradores

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 40 / 42

Page 45: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

Juntando Tudo (II)

Terminamos?

Quase.I Nosso processador ainda nao consegue implementar a instrucao jump.I Desvio incondicional.I Mas esta e uma adicao relativamente simples.I Veremos na proxima aula.

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 41 / 42

Page 46: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

Juntando Tudo (II)

Terminamos?Quase.

I Nosso processador ainda nao consegue implementar a instrucao jump.I Desvio incondicional.I Mas esta e uma adicao relativamente simples.I Veremos na proxima aula.

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 41 / 42

Page 47: Aula 20: UCP: A Unidade de Controlefernanda/2016-1/FAC/aulas/aula20.pdf · 2016. 6. 30. · Na Aula Passada... Avanc¸amos bastante no projeto do nosso processador. Constru´ımos

ExercıcioOlhando apenas para a figura do slide 40, monte uma tabela indicando os valoresnecessarios para cada uma das 9 linhas de controle que partem do decodificador controlepara cada uma das instrucoes.

Instrucao RegDst ALUSrc MemToReg RegWriteFormato Rload wordstore wordadd immediatebranch on equal

Instrucao MemRead MemWrite Branch OpALU0 OpALU1Formato Rload wordstore wordadd immediatebranch on equal

Fernanda Passos (UFF) UCP: Unidade de Controle FAC 42 / 42