47
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) UCP: Unidade de Controle FAC 1 / 42

Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Aula 20: UCP: A Unidade de Controle

Diego Passos

Universidade Federal Fluminense

Fundamentos de Arquiteturas de Computadores

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

Page 2: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Revisão

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

Page 3: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Na Aula Passada. . .

Avançamos bastante no projeto do nosso processador.Construímos caminhos de dados para diversas instruções.

▶ Instrução branch on equal.▶ Instrução add immediate.▶ Instruções store word e load word.

Uma aula antes, havíamos feito o mesmo para todas as instruções do tipo R.

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

Page 4: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Na Aula Passada. . . (II)

Embora tenhamos implementado o caminho de dados de várias instruções, estes aindaestavam incompletos.

▶ Faltavam as conexões das linhas de controle.▶ Da ALU, da interface com a memória.

Além disso, construímos caminhos de dados separados para cada tipo de instrução.▶ De alguma forma, precisamos juntá-los.▶ Combinar os projetos em um único.

Adicionalmente, há uma instrução do conjunto de instruções que não foi implementada.▶ O salto incondicional.▶ Instrução jump.

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

Page 5: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Na Aula de Hoje

Objetivo da aula de hoje é (quase) terminar o projeto.▶ Ao menos esta versão.

Vamos combinar os caminhos de dados de cada conjunto de instruções em um único.▶ E criar ainda mais ainda mais linhas de controle a serem conectadas.

Vamos (finalmente) conectar as linhas de controle.

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

Page 6: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Combinando os Caminhos de Dados

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

Page 7: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Caminhos de Dados Separados

Para simplificar o problema, dividimos a implementação do caminho de dados em tipos deinstruções.Isso resultou em 4 caminhos de dados separados:

▶ Caminho de dados para instruções do tipo R.▶ Caminho de dados para a instrução branch on equal.▶ Caminho de dados para a instrução add immediate.▶ Caminho de dados para instruções de transferência de memória.

Isso seria suficiente se nosso processador só executasse instruções de um destes quatrotipos.

▶ Mas um processador assim não seria muito útil.▶ Precisamos de um que seja capaz de implementar todas as instruções.

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

Page 8: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Caminhos de Dados Separados

Como já temos os caminhos de dados separados, vamos aproveitar este conhecimento.Vamos tentar combiná-los em um único caminho de dados.

▶ Que permita a execução de qualquer das instruções.

Como passo inicial, vamos lembrar como eram os 4 caminhos de dados já vistos.

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

Page 9: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Caminho de Dados para Instruções 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

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

Page 10: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Caminho de Dados para a Instrução 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

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

Page 11: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Caminho de Dados para a Instrução 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

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

Page 12: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Caminho de Dados para Instruções de Transferência de Memória

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

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

Page 13: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

O Quão Diferentes Eles São?

Semelhanças:▶ Todos possuem o incremento do PC.▶ Todos fazem a leitura da próxima instrução.

⋆ Armazenada no RI.▶ Todos utilizam a ALU.

⋆ Primeira entrada é sempre o “Valor Lido 1” do banco de registradores.▶ Sempre há um banco de registradores.

⋆ IDs dos registradores a serem lidos sempre vêm dos bits 25–21 e 20–16 do RI.

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

Page 14: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

O Quão Diferentes Eles São? (II)

Diferenças:▶ A segunda entrada da ALU:

⋆ “Valor Lido 2” do banco de registradores.⋆ Ou bits 15–0 do RI, depois de extensão de sinal para 32 bits.

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

▶ Valor a ser escrito no banco de registradores.⋆ Saída da ALU.⋆ Ou valor lido da interface com a MP.

▶ A existência da interface com a MP.⋆ Para instruções de transferência de memória.

▶ Novo valor do PC.⋆ Saída do somador com a constante 4.⋆ Saída do somador com o deslocamento para desvios condicionais.

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

Page 15: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Como Conciliar as Diferenças?

Há três tipos de diferenças:▶ Componentes que não estão em todos os caminhos de dados.

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

⋆ Nem todos os componentes são usados em todas as instruções.⋆ Não é um problema.

▶ Saídas de componentes ligadas a entradas diferentes em caminhos de dados diferentes.⋆ Podemos replicar a saída para todas as entradas necessárias.⋆ e.g., resultado da ALU conectado tanto como entrada do banco de registradores, quanto da

interface com a MP.▶ Entradas de componentes conectadas à componentes diferentes.

⋆ Problema mais sério.⋆ Não podemos simplesmente “emendar” as várias entradas possíveis.⋆ Temos que fazer algum tipo de seleção, de acordo com a instrução executada.

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

Page 16: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Como Conciliar as Diferenças?

Há três tipos de diferenças:▶ Componentes que não estão em todos os caminhos de dados.

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

⋆ Nem todos os componentes são usados em todas as instruções.⋆ Não é um problema.

▶ Saídas de componentes ligadas a entradas diferentes em caminhos de dados diferentes.⋆ Podemos replicar a saída para todas as entradas necessárias.⋆ e.g., resultado da ALU conectado tanto como entrada do banco de registradores, quanto da

interface com a MP.

▶ Entradas de componentes conectadas à componentes diferentes.⋆ Problema mais sério.⋆ Não podemos simplesmente “emendar” as várias entradas possíveis.⋆ Temos que fazer algum tipo de seleção, de acordo com a instrução executada.

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

Page 17: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Como Conciliar as Diferenças?

Há três tipos de diferenças:▶ Componentes que não estão em todos os caminhos de dados.

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

⋆ Nem todos os componentes são usados em todas as instruções.⋆ Não é um problema.

▶ Saídas de componentes ligadas a entradas diferentes em caminhos de dados diferentes.⋆ Podemos replicar a saída para todas as entradas necessárias.⋆ e.g., resultado da ALU conectado tanto como entrada do banco de registradores, quanto da

interface com a MP.▶ Entradas de componentes conectadas à componentes diferentes.

⋆ Problema mais sério.⋆ Não podemos simplesmente “emendar” as várias entradas possíveis.⋆ Temos que fazer algum tipo de seleção, de acordo com a instrução executada.

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

Page 18: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Selecionando entre Várias Entradas

Note que há um componente que pode realizar esta seleção.O multiplexador:

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

⋆ Também chamadas de seletor.▶ A saída é idêntica à entrada apontada pelas linhas de controle.

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

▶ Bastará, de alguma forma, ligar corretamente o seletor.▶ De acordo com a instrução a ser executada.

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

Page 19: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Combinando Caminhos de Dados: Formato R e Transferência de Memória

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

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

Page 20: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Combinando Caminhos de Dados: Suporte à Add Immediate

O suporte a esta instrução vem “de graça”.▶ Utiliza partes do caminho do formato R e partes da transferência de memória.

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

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

Page 21: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Combinando Caminhos de Dados: Suporte à 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

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

Page 22: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

Há algum problema no projeto do slide anterior?

Sim:▶ Colocamos um caminho alternativo para a atualização do PC.▶ A única coisa que controla o uso deste caminho alternativo é o bit zero de saída da ALU.▶ Se estivermos executando qualquer instrução que use a ALU e, por coincidência o

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

▶ Precisamos garantir que o multiplexador do novo valor do PC receba 0 como seletor sempreque a instrução não seja de desvio condicional.

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

Page 23: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

Há algum problema no projeto do slide anterior?Sim:

▶ Colocamos um caminho alternativo para a atualização do PC.▶ A única coisa que controla o uso deste caminho alternativo é o bit zero de saída da ALU.▶ Se estivermos executando qualquer instrução que use a ALU e, por coincidência o

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

▶ Precisamos garantir que o multiplexador do novo valor do PC receba 0 como seletor sempreque a instrução não seja de desvio condicional.

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

Page 24: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

Há algum problema no projeto do slide anterior?Sim:

▶ Colocamos um caminho alternativo para a atualização do PC.▶ A única coisa que controla o uso deste caminho alternativo é o bit zero de saída da ALU.▶ Se estivermos executando qualquer instrução que use a ALU e, por coincidência o

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

▶ Precisamos garantir que o multiplexador do novo valor do PC receba 0 como seletor sempreque a instrução não seja de desvio condicional.

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

Page 25: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Combinando Caminhos de Dados: Suporte à 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

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

Page 26: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

A Unidade de Controle

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

Page 27: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

A Unidade de Controle

Há algumas aulas, citamos que a CPU pode ser dividida:▶ Caminho de dados: circuito lógico por onde dados passam e são “processados”.▶ Unidade de controle: circuito lógico que controla/configura o caminho de dados de acordo

com a instrução.Acabamos de montar um caminho de dados capaz de executar várias instruçõesdiferentes.

▶ Para cada instrução, vemos um caminho pelo qual os dados passam e são alterados.▶ Ao final do caminho, temos o resultado desejado.

Mas para compatibilizar as várias instruções, tivemos que usar várias linhas de controle.▶ Alguém precisa determinar o valor destas linhas.▶ Trabalho da unidade de controle.

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

Page 28: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Determinando as Linhas de Controle

Quais linhas de controle temos no nosso caminho de dados atual?São 11, no total. Vamos nomeá-las:

▶ Quatro linhas de controle da ALU: ALU0, ALU1, ALU2, ALU3.▶ RegDst: seleciona ID do registrador de escrita.▶ RegWrite: determina se havará escrita em registrador.▶ ALUSrc: seleciona segunda entrada da ALU (registrador ou imediato).▶ Branch: determina se novo valor de PC é apenas o increment ou se é decidido por instrução

de desvio.▶ MemRead: determina se haverá leitura da MP.▶ MemWrite: determina se haverá escrita na MP.▶ MemToReg: seleciona dado a ser escrito em registrador (se vindo da memória, ou da ALU).

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

Page 29: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Linhas de Controle e OpCodes

Com exceção às linhas de controle da ALU, todas as demais são determinadas peloOpCode.

▶ Pelo tipo de operação a ser realizada.Por exemplo, considere a linha RegWrite.

▶ Deve ser ativada para as instruções de formato R e para instrução load word.▶ Mas não pode ser ativada para as demais instruções.

⋆ Caso contrário, escreveremos lixo em algum registrador.

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

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

Page 30: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Tabela Verdade das Linhas de Controle: RegDst

Seleciona origem do ID do registrador de escrita.Precisa ser 1 para instruções de formato R (usar bits 15–11 do RI).Precisa ser 0 para load word e add immediate (usar bits 20–16).Outras instruções não escrevem em registrador.

Tipo de Operação 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 expressão: RegDst = ¬Op5 ∧ ¬Op3.

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

Page 31: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Tabela Verdade das Linhas de Controle: ALUSrc

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

Tipo de Operação 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 expressão: ALUSrc = Op5 ∨ Op3.

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

Page 32: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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 instruções não escrevem em registrador.

Tipo de Operação 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 expressão: MemToReg = Op0.

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

Page 33: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Tabela Verdade das Linhas de Controle: RegWrite

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

Tipo de Operação 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 expressão: RegWrite = ¬((Op0 ∧ Op3) ∨ Op2).

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

Page 34: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Tabela Verdade das Linhas de Controle: MemRead

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

Tipo de Operação 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 expressão: MemRead = Op5 ∧ ¬Op3.

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

Page 35: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Tabela Verdade das Linhas de Controle: MemWrite

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

Tipo de Operação 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 expressão: MemWrite = Op5 ∧ Op3.

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

Page 36: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Tabela Verdade das Linhas de Controle: Branch

Determina se a instrução é de branch.Precisa ser 1 para branch if equal.Precisa ser 0 para as demais.

Tipo de Operação 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 expressão: Branch = Op2.

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

Page 37: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

O Componente de Controle

Obtivemos expressões lógicas para cada linha de controle.▶ Em função dos bits do campo OpCode.

Podemos facilmente implementá-las através de portas lógicas.▶ Componentes de eletrônica digital.

E encapsular a implementação em um componente do processador.▶ Que chamaremos simplesmente de Controle.

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

Page 38: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

O Componente de Controle (II)

Controle

RI

RI[31-26]

RegDest

Branch

MemReadMemWrite

MemToReg

ALUSrcRegWrite

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

Page 39: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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 é simples:

▶ Os bits do OpCode não determinam completamente as linhas de controle da ALU.▶ Instruções de formato R têm todas o mesmo OpCode.▶ Mas requerem ações diferentes da ALU dependendo do campo função.

⋆ Seis últimos bits da instrução.▶ Isso quer dizer que precisaremos de outro conjunto de lógica de controle para estes bits.

⋆ Chamaremos este de Controle da ALU.

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

Page 40: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

O Controle da ALU: Tabela Verdade

Podemos construir uma tabela verdade mapeando o campo Função às linhas de controleda ALU.

Instrução 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 expressões lógicas:▶ ALU3 = 0.▶ ALU2 = Func1.▶ ALU1 = ¬Func2.▶ ALU0 = (¬Func0) ∧ (¬Func3).

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

Page 41: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

O Controle da ALU: Outras Instruções

Note que todas as instruções vistas até aqui usam a ALU.▶ Não apenas as de formato R.

As de transferência de memória (store word, load word) executam uma soma (registradormais imediato).A add immediate idem.A branch on equal executa uma subtração.As expressões lógicas do slide anterior, portanto, só valem para instruções do tipo R.

▶ OpCode zerado.Para implementar estas exceções, vamos criar duas linhas de controle adicionais:

▶ Note que o controle da ALU não tem acesso aos bits do OpCode.⋆ Precisaremos da intervenção do Componente de Controle.

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

Page 42: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

O Controle da ALU: Outras Instruções

Para implementar estas exceções, vamos criar duas linhas de controle adicionais:▶ OpALU0 e OpALU1.

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

▶ Quando OpALU0 = 0, OpALU1 = 0, ALU deve somar.▶ Quando OpALU0 = 0, OpALU1 = 1, ALU deve subtrair.▶ Quando OpALU0 = 1, OpALU1 = 0, operação especificada pelo campo Função.

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

Page 43: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Linhas de Controle OpALU

Controle

RI

RI[31-26]

RegDest

Branch

MemReadMemWrite

MemToReg

ALUSrcRegWrite

ControleALU

ALUOp1

RI[5-0]

ALUOp0

ALU0ALU1ALU2ALU3

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

Page 44: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

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

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

Page 45: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Juntando Tudo (II)

Terminamos?

Quase.▶ Nosso processador ainda não consegue implementar a instrução jump.▶ Desvio incondicional.▶ Mas esta é uma adição relativamente simples.▶ Veremos na próxima aula.

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

Page 46: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Juntando Tudo (II)

Terminamos?Quase.

▶ Nosso processador ainda não consegue implementar a instrução jump.▶ Desvio incondicional.▶ Mas esta é uma adição relativamente simples.▶ Veremos na próxima aula.

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

Page 47: Aula 20: UCP: A Unidade de Controlediego/disciplinas/2015_1/FAC/arquivos/aula2… · Aula 20: UCP: A Unidade de Controle Diego Passos Universidade Federal Fluminense Fundamentos de

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Exercício

Derive expressões lógicas para as linhas de controle ALU0, ALU1, ALU2 e ALU3considerando as linhas OpALU0 e OpALU1 como entradas.Lembre-se:

▶ Quando OpALU0 = 0, OpALU1 = 0, ALU deve somar.▶ Quando OpALU0 = 0, OpALU1 = 1, ALU deve subtrair.▶ Quando OpALU0 = 1, OpALU1 = 0, operação especificada pelo campo Função.

E a tabela verdade do campo Função:

Instrução 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

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