infraestrutura de hardware - cin.ufpe.brif674cc/aulas/aulainfrahw-monociclo.pdf · infraestrutura...
TRANSCRIPT
![Page 1: Infraestrutura de Hardware - cin.ufpe.brif674cc/aulas/AulaInfraHW-Monociclo.pdf · Infraestrutura de Hardware Implementação Monociclo de um Processador Simples . Componentes de](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/1.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/3.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/5.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/6.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/10.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/18.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/22.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/23.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/24.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/25.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/26.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/27.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/28.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/29.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/30.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/31.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/32.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/33.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/34.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/35.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/36.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/37.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/38.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/39.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/40.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/41.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/42.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/43.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/44.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/45.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/46.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/47.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022050903/5c497a2993f3c31f4f7c0b64/html5/thumbnails/48.jpg)
Instrução BEQ