48
Infraestrutura de Hardware Implementação Monociclo de um Processador Simples

Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Embed Size (px)

Citation preview

Page 1: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Infraestrutura de Hardware

Implementação Monociclo de um

Processador Simples

Page 2: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Componentes de um Computador

Memória

Programa +

Dados

E/S

Buffers

Controle

ALU

Operando

MAR

IR

AC

Instrução

PC

Endereço

Temp

Registradores

Unid.

Controle

Unid.

Processamento

Datapath

Controle

Page 3: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Etapas para o Hardware Entender Instruções

Programa em Linguagem de alto

nível (e.g., C)

Programa em linguagem assembly (e.g.,MIPS)

Programa em linguagem de

Máquina (MIPS)

Hardware

Compilador

Montador

Interpretação

temp = v[k];

v[k] = v[k+1];

v[k+1] = temp;

lw $to, 0($2)

lw $t1, 4($2)

sw $t1, 0($2)

sw $t0, 4($2)

0000 1001 1100 0110 1010 1111 0101 1000

1010 1111 0101 1000 0000 1001 1100 0110

1100 0110 1010 1111 0101 1000 0000 1001

0101 1000 0000 1001 1100 0110 1010 1111

Page 4: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Perguntas que Devem ser Respondidas ao

Final do Curso

Como um programa escrito em uma linguagem de

alto nível é entendido e executado pelo HW?

Qual é a interface entre SW e HW e como o SW instrui

o HW a executar o que foi planejado?

O que determina o desempenho de um programa e

como ele pode ser melhorado?

Que técnicas um projetista de HW pode utilizar para

melhorar o desempenho?

Page 5: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Interface HW/SW: ISA

Software

Hardware

Repertório de

Instruções da

Arquitetura

? add

000000… 100011… 000100… 000010…

lw beq j

ISA

Hardware

Page 6: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Busca

Busca instrução na

memória principal

Decodifica

Determina o que

é a instrução

Executa

Processa a

instrução

Visão Simplificada de Processamento de Instrução

CPU faz continuamente 3 ações:

Page 7: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Buscando Instrução

CPU deve saber qual é a

instrução que deve ser buscada

– Instrução na sequência?

– Instrução especificada em um

desvio?

CPU deve calcular endereço da

próxima instrução a ser

executada

Busca

Busca instrução na memória principal

DecodificaExecuta

Busca

Busca instrução na memória principal

Busca

Busca instrução na memória principal

DecodificaExecuta

Page 8: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Decodificando Instrução

CPU deve determinar o que

é a instrução

– Diferentes formatos de

instrução

– Como se identifica

diferentes formatos?

– Como se identifica

diferentes instruções com

mesmo formato?

– Como se obtem os

operandos?

Busca

DecodificaExecuta

Busca

DecodificaExecuta

op

op

op

rs rt rd sa funct

rs rt immediate

jump target

R format

I format

J format

op

op

op

rs rt rd sa funct

rs rt immediate

jump target

R format

I format

J format

Page 9: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Executando Instrução

CPU deve seguir o que a

instrução manda

– Diferentes tipos de instruções

Aritméticas/Lógicas

Acesso à memória

Desvios

– Cálculos com dados e endereços

– Acesso a diferentes componentes

Registradores, ALU, Memória …

– Coordenação da interação entre

diferentes componentes

Busca

DecodificaExecuta

Busca

DecodificaExecuta

Page 10: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Partes de uma CPU

Datapath

– Unidade de Processamento da

instrução

– Caminho onde os dados/endereços

trafegam

– Composto por unidades funcionais,

que operam sobre dados/endereços,

e suas interconexões

Processamento: ALUs, Somadores,

Multiplexadores …

Armazenamento: Registradores e

Memória

ALU

Operando

MAR

IR

AC

Instrução

PC

Endereço

Temp

Registradores

Unid.

Controle

Unid.

Processamento

Datapath

ALU

Operando

MAR

IR

AC

Instrução

PC

Endereço

Temp

Registradores

Unid.

Controle

Unid.

Processamento

Datapath

Page 11: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Partes de uma CPU

Controle

– Unidade de Controle

– Decodifica a instrução

– Coordena as etapas de

processamento da instrução

– Ativa somente as unidades

funcionais necessárias para

execução da instrução

Decisão baseada na instrução

ALU

Operando

MAR

IR

AC

Instrução

PC

Endereço

Temp

Registradores

Unid.

Controle

Unid.

Processamento

Controle

ALU

Operando

MAR

IR

AC

Instrução

PC

Endereço

Temp

Registradores

Unid.

Controle

Unid.

Processamento

Controle

Page 12: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Arquitetura de uma CPU

Projeto de arquitetura de uma CPU requer a definição de:

– Conjunto de registradores

– Tipos de dados

– Repertório de instruções

– Formato de instruções

Page 13: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Projetando uma CPU Simples

Iremos ver como se pode projetar e implementar uma CPU

simples

CPU com um repertório de instruções composto por um

subconjunto de instruções do MIPS

– Aritméticos, lógicos, armazenamento e desvio

Conjunto de registradores: mesmo do MIPS

Operandos são do tipo inteiro

Toda instrução deve ser executada em um ciclo de clock

(Implementação Monociclo)

– Irreal nos dias de hoje

– Ciclo de clock deve longo o suficiente para que a instrução

mais lenta respeite esta restrição

Page 14: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Instruções

Instrução

ADD rd, rs, rt

SUB rd, rs, rt

AND rd, rs, rt

OR rd, rs, rt

LW rt, desl(rs)

SW rt, desl(rs)

SLT rd, rs, rt

BEQ rs, rt,end

Carrega palavra de mem. em registrador rt

Armazena conteúdo de registrador rt em mem.

Desvio para end, se rs == rt

Se rs < rt, rd <- 1, senão rd <- 0

rd <- rs or rt (bit a bit)

rd <- rs and rt (bit a bit)

rd <- rs - rt

rd <- rs + rt

DescriçãoInstrução

ADD rd, rs, rt

SUB rd, rs, rt

AND rd, rs, rt

OR rd, rs, rt

LW rt, desl(rs)

SW rt, desl(rs)

SLT rd, rs, rt

BEQ rs, rt,end

Carrega palavra de mem. em registrador rt

Armazena conteúdo de registrador rt em mem.

Desvio para end, se rs == rt

Se rs < rt, rd <- 1, senão rd <- 0

rd <- rs or rt (bit a bit)

rd <- rs and rt (bit a bit)

rd <- rs - rt

rd <- rs + rt

Descrição

op

op

rs rt rd sa funct

rs rt deslocamento

op rs rt endereço

op

op

rs rt rd sa funct

rs rt deslocamento

op rs rt endereço

Repertório

Formato

Aritméticos/Lógicos

Armazenamento

Desvio

Page 15: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

MIPS: Visão Abstrata

Na CPU simples, 2 etapas sempre executadas independente da

instrução

– Endereço do PC é enviado a memória para buscar instrução

– Ler um ou dois registradores, especificados na instrução

Page 16: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Por Que Duas Memórias?

Na CPU simples, uma instrução deve ser executada em um ciclo

– Nenhuma unidade funcional pode ser utilizada mais de uma vez no

mesmo ciclo

– Duplica-se a memória: instruções e dados

Page 17: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Categorias de Elementos da CPU

A CPU é composta por 2 categorias de

elementos:

– Combinacional

– Sequencial

Combinacional

– Operam sobre dados

– Saída é uma função da entrada

– ALUs, multiplexadores…

Sequencial

– Possui um estado

– Armazena informações

– Registradores, memória…

A

B

YALU

F

A

B

YALU

F

I0

I1Y

M

u

x

S

I0

I1Y

M

u

x

SA

BY

A

BY

D

Clk

Q

Write

D

Clk

Q

Write

Page 18: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Relógio (Clock)

Lógica combinacional opera sobre dados durante ciclos de clock

– Entre subidas ou descidas do clock (clock edges)

Execução típica na CPU

– Lê conteúdo de elementos sequenciais envia valores para lógica

combinacional escreve resultados em um ou mais elementos

sequenciais

Mudança de estado (escritas) ocorre nos clock edges

– Se não ocorrer, deve haver um sinal explícito para habilitar escrita

Page 19: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Implementação Monociclo

Busca

DecodificaExecuta

Busca – Decodifica - Executa

Page 20: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Construindo a Unidade de Processamento

(Datapath)

Precisamos analisar o que cada etapa do ciclo de

execução de uma instrução precisa

– Busca e execução

Precisamos analisar o que cada instrução do repertório

precisa

– add, sub, and, or, slt, lw, sw, beq

Page 21: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Componentes Básicos: Busca de Instrução

Memória

– Entrada: endereço , Saída: instrução

Registrador PC de 32 bits

– Contém endereço da instrução a ser executada

– Atualizado todo ciclo de clock

Somador

– Soma PC com valor constante

Page 22: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Busca de Instrução

80000000

80000000

02480020

80000004

Incrementa com 4 para

buscar próxima

instrução

Page 23: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Componentes Básicos: Instruções Aritméticas e

Lógicas

Banco de registradores

– Lê dois registradores

– Armazena resultado em um registrador

ALU calcula operandos vindos dos registradores

Page 24: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Instruções Aritméticas e Lógicas

Sinal explícito para

realizar escrita

Sinal para selecionar

operação

Instruction

Write Data

Read Addr 1

Read Addr 2

Write Addr

Read

Data 1

Read

Data 2

ALU

overflow

zero

ALU controlRegWrite

Instruction

Write Data

Read Addr 1

Read Addr 2

Write Addr

Read

Data 1

Read

Data 2

ALU

overflow

zero

ALU controlRegWrite

Page 25: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Instruções Aritméticas e Lógicas

Instruction

Write Data

Read Addr 1

Read Addr 2

Write Addr

Read

Data 1

Read

Data 2

ALU

overflow

zero

ALU controlRegWrite

Instruction

Write Data

Read Addr 1

Read Addr 2

Write Addr

Read

Data 1

Read

Data 2

ALU

overflow

zero

ALU controlRegWrite

01

71

88

03

2

op

rsrt

rds

ha

mt

fun

ct

01

71

88

03

2

op

rsrt

rds

ha

mt

fun

ct

add $t0,$s1,$s2

8

17

18 04

02

06

= 1 = +

-

04

02

06

Page 26: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Busca e Execução de Instruções Aritméticas e

Lógicas

Write Data

Read Addr 1

Read Addr 2

Write Addr

Read

Data 1

Read

Data 2

ALU

overflow

zero

ALU control RegWrite

Page 27: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Componentes Básicos: Instruções de

Armazenamento

Memória de dados

– Leitura e escrita

Unidade de extensão de sinal

– Para transformar o deslocamento de 16 bits em 32 bits

Registradores para ler e escrever

ALU para calcular endereço: registrador base + deslocamento

Page 28: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Instruções de Armazenamento

Deslocamento

Sinais para selecionar

escrita/leitura

Instruction

Write Data

Read Addr 1

Read Addr 2

Write Addr

Read

Data 1

Read

Data 2

ALU

overflow

zero

ALU controlRegWrite

Data

Memory

Address

Write Data

Read Data

Sign

Extend

MemWrite

MemRead

16 32

Instruction

Write Data

Read Addr 1

Read Addr 2

Write Addr

Read

Data 1

Read

Data 2

ALU

overflow

zero

ALU controlRegWrite

Data

Memory

Address

Write Data

Read Data

Sign

Extend

MemWrite

MemRead

Instruction

Write Data

Read Addr 1

Read Addr 2

Write Addr

Read

Data 1

Read

Data 2

ALU

overflow

zero

ALU controlRegWrite

Data

Memory

Address

Write Data

Read Data

Sign

Extend

MemWrite

MemRead

16 3216 32

Page 29: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Instruction

Write Data

Read Addr 1

Read Addr 2

Write Addr

Read

Data 1

Read

Data 2

ALU

overflow

zero

ALU controlRegWrite

Data

Memory

Address

Write Data

Read Data

Sign

Extend

MemWrite

MemRead

16 32

Instruction

Write Data

Read Addr 1

Read Addr 2

Write Addr

Read

Data 1

Read

Data 2

ALU

overflow

zero

ALU controlRegWrite

Data

Memory

Address

Write Data

Read Data

Sign

Extend

MemWrite

MemRead

Instruction

Write Data

Read Addr 1

Read Addr 2

Write Addr

Read

Data 1

Read

Data 2

ALU

overflow

zero

ALU controlRegWrite

Data

Memory

Address

Write Data

Read Data

Sign

Extend

MemWrite

MemRead

16 3216 32

Instruções de Armazenamento 35

19

80x20

op

rsrt

de

slo

ca

me

nto

35

19

80x20

op

rsrt

de

slo

ca

me

nto

-

0x80000008 8

19

0x0020 0x00000020

0x80000028

-

0x00000004

0x00000004

0x00000004

0x80000008

= +

= 1

= 1

lw $t0,32($s3)

Page 30: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Instruções Aritméticas e de Armazenamento

Dois multiplexadores são necessários para selecionar entrada:

– Registrador (aritmética) ou Deslocamento(armazenamento)

– ALU (aritmética) ou Memória (armazenamento)

Seleciona se operando da ALU

vem do registrador ou da

instrução

Seleciona se dado

escrito no registrador

vem da ALU ou da

memória

Page 31: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Executando ADD

= +

= 0 = 0

= 1

Page 32: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Executando LW

= +

= 1 = 1

= 1

= 1

Page 33: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Executando SW

= +

= 1

= 1

Page 34: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Componentes Básicos: Instruções de Branch

Registradores para ler e escrever

ALU para comparar operandos

– Subtrai operandos e checa a saída 0

Unidade de extensão de sinal

– Para transformar o endereço contido na instrução (relativo) de

16 bits em 32 bits

Unidade para deslocar de 2 bits para esquerda o endereço

relativo

– Multiplicar por 4

Somador para adicionar o endereço relativo x 4 ao

endereço do PC

Page 35: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Instrução de Branch

beq $1,$2,end

end

Endereço contido na

instrução deve ser

multiplicado por 4 e é

relativo ao PC atualizado

Page 36: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Executando BEQ

0x0020 419

80x20

op

rsrt

en

de

reç

o

419

80x20

op

rsrt

en

de

reç

o

0x00000020

0x00000080 beq $s3,$t0,label

8

19

0x00000004

0x00000004

0x00000004

0x00000004

1

= -

0x80000004

0x80000084

Page 37: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Unidade de Processamento Completa

Page 38: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

O Que É Que Falta?

Unidade que decodifique as instruções

– Escolha operação da ALU, controle escrita em registrador,

– controle leitura/escrita na memória, etc

Page 39: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Controle da ALU

ALU usada para:

– Load/Store: Função = soma

– Branch: Função = subtração

– Aritmética/Lógica: depende do campo funct

ALU control Function

0000 AND

0001 OR

0010 add

0110 subtract

0111 set-on-less-than

1100 NOR

Page 40: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Controle da ALU

Podemos derivar do opcode um sinal de 2 bits chamado

ALUOp

– Lógica combinacional deriva o controle da ALU

opcode ALUOp Operation funct ALU function ALU control

lw 00 load word XXXXXX add 0010

sw 00 store word XXXXXX add 0010

Beq 01 branch equal XXXXXX subtract 0110

Aritmética/

lógica

10 add 100000 add 0010

subtract 100010 Subtract 0110

AND 100100 AND 0000

OR 100101 OR 0001

set-on-less-than 101010 set-on-less-than 0111

Page 41: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Unidade de Controle Principal

Sinais de controle são derivados da instrução

– Decodificação da instrução

0 rs rt rd shamt funct

31:26 5:0 25:21 20:16 15:11 10:6

35 ou 43 rs rt deslocamento

31:26 25:21 20:16 15:0

4 rs rt endereço

31:26 25:21 20:16 15:0

Arit/Log

Load/

Store

Branch

opcode sempre

lido

lido,

exceto no

load

escrita

para arit.

e load

Para extensão

de sinal e

depois somar

Page 42: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Sinais da Unidade de Controle

Unidade de controle tem como entrada a instrução e como

saída 8 sinais + ALUOp

Nome Efeito quando 0 Efeito quando 1

RegDst Número do registrador destino para

escrita vem de rt

Número do registrador

destino para escrita vem de rd

RegWrite Nada Registrador da entrada “Write

register” recebe valor da

entrada “Write data”

ALUSrc 2° operando da ALU vem da 2a saída do

banco de registradores

2° operando da ALU vem do

valor estendido contido na

instrução

Branch PC recebe valor de PC + 4 que vem do

somador

PC recebe valor do endereço

do branch se operandos =

MemRead Nada Dado da memória relativo ao

endereço especificado é

colocado na saída

MemWrite Nada Dado da memória relativo ao

endereço especificado é

substituido pelo que tem no

“Write data”

MemTo Reg Valor escrito na entrada “Write data” vem

da ALU

Valor escrito na entrada

“Write data” vem da memória

Page 43: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Unidade de Processamento Com Controle

Entradas do controle

do ALU são campo

funct e sinal AluOp

Page 44: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Unidade de Processamento Com Controle

Seleciona de que

campo vem registrador

destino (rd/rt)

Se branch = 1 e

sinal zero da

ALU = 1, desvio

Page 45: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Busca de Instrução

Page 46: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Instruções Aritméticas/Lógicas

Page 47: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Instrução LW

Page 48: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de

Instrução BEQ