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
Revisao
Fernanda Passos (UFF) UCP: Unidade de Controle FAC 2 / 42
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
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
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
Combinando os Caminhos de Dados
Fernanda Passos (UFF) UCP: Unidade de Controle FAC 6 / 42
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
A Unidade de Controle
Fernanda Passos (UFF) UCP: Unidade de Controle FAC 22 / 42
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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