Buscar

Slides perfeitos do Livro_AOC2_aula5

Prévia do material em texto

Universidade Federal de Pelotas
Instituto de Física e Matemática
Departamento de Informática
Bacharelado em Ciência da Computação
Arquitetura Arquitetura e e OrganizaOrganizaçãçãoo
de de Computadores Computadores IIII
Aula 5
2. MIPS multiciclo: projeto do bloco de controle
com Máquina de Estados Finitos (FSM)
Prof. José Luís Güntzel
guntzel@ufpel.edu.br
www.ufpel.edu.br/~guntzel/AOC2/AOC2.html
slide 5.2 Prof. José Luís Güntzel
2. Organizações do MIPS: multiciclo
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Visão Geral da Máquina de Estados
Busca da instrução/decodificação + leitura dos registradores (Rs e Rt)
início
Instruções de
referência à
memória
Instruções
tipo R
Instruções de
desvio
condicional
Instruções de
desvio
incondicional
Cada caixa pode representar um ou mais passos e portanto, pode
executar em um ou mais ciclos de relógio (dependendo da instrução).
0
1
4
2 6
7
3 5 8 9
slide 5.3 Prof. José Luís Güntzel
2. Organizações do MIPS: multiciclo
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Resumo dos Passos Necessários para Cada Instrução
5
Reg[RI[20-16]]
= RDM
RDM = Mem
[ULASaída]
ULASaída = A + extensão de sinal
(RI[15-0])
Instrução lw
Término de uma instrução
load word
3344Número de passos
Mem [ULASaída]
= B
Reg [RI[15-11]] =
ULASaída
Término de uma instrução
store word ou de tipo R
PC = PC[31-28] ||
(RI[25-0] <<2 )
Se (A == B) então
PC = ULASaída
ULAOp = A op B
Execução, cálculo do
endereço de acesso à
memória, término de uma
instrução branch/jump
A = Reg [RI[25-21]]
B = Reg [RI[20-16]]
ULASaída = PC + (extensão de sinal(RI[15-0]) <<2)
Decodificação da instrução
& leitura dos registradores
Rs e Rt & cálculo do
endereço de desvio (cond.)
RI = Mem[PC]
PC = PC + 4
Busca da instrução
Instrução jInstrução beqInstrução swInstrução tipo RNome do passo
0
1
4
26
7 3 5
8 9
slide 5.4 Prof. José Luís Güntzel
2. Organizações do MIPS: multiciclo
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Sinais de Controle do Bloco Operativo Multiciclo
32
Endereço
 DadoMem
Memória
PC
Dado a ser
escrito
M
U
X
0
1 Zero
Resultado
ULA
Reg a ser
lido #1
Reg a ser
lido #2
Reg a ser
escrito
Dado de
escrita
Dado 
lido #1
Dado
lido #2
Registradores
Registrador
de
instrução
Registrador
de dados
da
memória
A
B
ULA
Saída
32
[25-21]
[20-16]
[15-11]
M
U
X
0
1
[15-0]
M
U
X
0
1
M
U
X
0
1
2
3
M
U
X
0
1 Exten-
são de 
sinal
Desl.
à esq.
2 bits
4
3216
IouD
LerMem
EscMem
IREsc
Opera-
ção
da 
ULA
2
6
32
[5-0]
EscReg
RegDst
Controle
ULAOp
ULAFonteA
FontePCPCEscCond
PCEsc
MemParaReg
ULAFonteB 2
Desl.
à esq.
2 bits
M
U
X
0
1
2
26
[25-0]
[31-28]
26 28
4
PC+4
end.
desvio
cond.
end.
desvio
incond.
2
[31-0]
slide 5.5 Prof. José Luís Güntzel
2. Organizações do MIPS: multiciclo
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Sinais de Controle da ULA
O campo “funct” determina a
operação da ULA
10
ULA realiza subtração01
ULA realiza adição00
EfeitoULAOp
slide 5.6 Prof. José Luís Güntzel
2. Organizações do MIPS: multiciclo
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Estado 0: RI = Mem[PC]; PC = PC + 4; 
32
Endereço
 DadoMem
Memória
PC
Dado a ser
escrito
M
U
X
0
1
Reg a ser
lido #1
Reg a ser
lido #2
Reg a ser
escrito
Dado de
escrita
Dado 
lido #1
Dado
lido #2
Registradores
Registrador
de
instrução
Registrador
de dados
da
memória
A
B
ULA
Saída
32
[25-21]
[20-16]
[15-11]
M
U
X
0
1
[15-0]
M
U
X
0
1
M
U
X
0
1
2
3
M
U
X
0
1 Exten-
são de 
sinal
Desl.
à esq.
2 bits
4
3216
IouD
LerMem
EscMem
IREsc
Opera-
ção
da 
ULA
2
6
32
[5-0]
EscReg
RegDst
Controle
ULAOp
ULAFonteA
FontePCPCEscCond
PCEsc
MemParaReg
ULAFonteB 2
Desl.
à esq.
2 bits
M
U
X
0
1
2
26
[25-0]
[31-28]
26 28
4
Zero
Resultado
ULA
1 1
0
0
01
001
200
[31-0]
LerMem = 1
ULAFonteA = 0
IouD = 0
IREsc = 1
ULAFonteB = 01
ULAOp = 00
PCEsc = 1
FontePC = 00
0
slide 5.7 Prof. José Luís Güntzel
2. Organizações do MIPS: multiciclo
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Estado 1: Decodificação; A = Reg[ RI[25-21] ]; B = Reg[ RI[20-16] ]; 
ULASaída = PC + (extensão de sinal (RI [15-0]) << 2 )
32
Endereço
 DadoMem
Memória
PC
Dado a ser
escrito
M
U
X
0
1 Zero
Resultado
ULA
Reg a ser
lido #1
Reg a ser
lido #2
Reg a ser
escrito
Dado de
escrita
Dado 
lido #1
Dado
lido #2
Registradores
Registrador
de
instrução
Registrador
de dados
da
memória
A
B
ULA
Saída
32
[25-21]
[20-16]
[15-11]
M
U
X
0
1
[15-0]
M
U
X
0
1
M
U
X
0
1
2
3
M
U
X
0
1 Exten-
são de 
sinal
Desl.
à esq.
2 bits
4
3216
IouD
LerMem
EscMem
IREsc
Opera-
ção
da 
ULA
2
6
32
[5-0]
EscReg
RegDst
Controle
ULAOp
ULAFonteA
FontePCPCEscCond
PCEsc
MemParaReg
ULAFonteB 2
Desl.
à esq.
2 bits
M
U
X
0
1
2
26
[25-0]
26 28
4
0
11
00
2
[31-28]
[31-0]
ULAFonteA = 0
ULAFonteB = 11
ULAOp = 00
1
slide 5.8 Prof. José Luís Güntzel
2. Organizações do MIPS: multiciclo
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Estado 2: ULASaída = A + extensão de sinal (RI[15-0]);
32
Endereço
 DadoMem
Memória
PC
Dado a ser
escrito
M
U
X
0
1 Zero
Resultado
ULA
Reg a ser
lido #1
Reg a ser
lido #2
Reg a ser
escrito
Dado de
escrita
Dado 
lido #1
Dado
lido #2
Registradores
Registrador
de
instrução
Registrador
de dados
da
memória
A
B
ULA
Saída
32
[25-21]
[20-16]
[15-11]
M
U
X
0
1
[15-0]
M
U
X
0
1
M
U
X
0
1
2
3
M
U
X
0
1 Exten-
são de 
sinal
Desl.
à esq.
2 bits
4
3216
IouD
LerMem
EscMem
IREsc
Opera-
ção
da 
ULA
2
6
32
[5-0]
EscReg
RegDst
Controle
ULAOp
ULAFonteA
FontePCPCEscCond
PCEsc
MemParaReg
ULAFonteB 2
Desl.
à esq.
2 bits
M
U
X
0
1
2
26
[25-0]
26 28
4
1
10
00
2
[31-28]
[31-0]
ULAFonteA = 1
ULAFonteB = 10
ULAOp = 00
2
slide 5.9 Prof. José Luís Güntzel
2. Organizações do MIPS: multiciclo
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Estado 3: RDM = Mem[ULASaída];
32
Endereço
 DadoMem
Memória
PC
Dado a ser
escrito
M
U
X
0
1 Zero
Resultado
ULA
Reg a ser
lido #1
Reg a ser
lido #2
Reg a ser
escrito
Dado de
escrita
Dado 
lido #1
Dado
lido #2
Registradores
Registrador
de
instrução
Registrador
de dados
da
memória
A
B
ULA
Saída
32
[25-21]
[20-16]
[15-11]
M
U
X
0
1
[15-0]
M
U
X
0
1
M
U
X
0
1
2
3
M
U
X
0
1 Exten-
são de 
sinal
Desl.
à esq.
2 bits
4
3216
IouD
LerMem
EscMem
IREsc
Opera-
ção
da 
ULA
2
6
32
[5-0]
EscReg
RegDst
Controle
ULAOp
ULAFonteA
FontePCPCEscCond
PCEsc
MemParaReg
ULAFonteB 2
Desl.
à esq.
2 bits
M
U
X
0
1
2
26
[25-0]
26 28
4
1
2
1
3
LerMem = 1
IouD = 1
[31-28]
[31-0]
slide 5.10 Prof. José Luís Güntzel
2. Organizações do MIPS: multiciclo
ComputaçãoUFPel
Arquitetura e Organização deComputadores II
Estado 4: Reg [RI[20-16]] = RDM;
32
Endereço
 DadoMem
Memória
PC
Dado a ser
escrito
M
U
X
0
1 Zero
Resultado
ULA
Reg a ser
lido #1
Reg a ser
lido #2
Reg a ser
escrito
Dado de
escrita
Dado 
lido #1
Dado
lido #2
Registradores
Registrador
de
instrução
Registrador
de dados
da
memória
A
B
ULA
Saída
32
[25-21]
[20-16]
[15-11]
M
U
X
0
1
[15-0]
M
U
X
0
1
M
U
X
0
1
2
3
M
U
X
0
1 Exten-
são de 
sinal
Desl.
à esq.
2 bits
4
3216
IouD
LerMem
EscMem
IREsc
Opera-
ção
da 
ULA
2
6
32
[5-0]
EscReg
RegDst
Controle
ULAOp
ULAFonteA
FontePCPCEscCond
PCEsc
MemParaReg
ULAFonteB 2
Desl.
à esq.
2 bits
M
U
X
0
1
2
26
[25-0]
26 28
4
1
0
1
2
[31-28]
[31-0]
4
EscReg = 1
MemParaReg = 1
RegDst = 0
slide 5.11 Prof. José Luís Güntzel
2. Organizações do MIPS: multiciclo
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Estado 5: Mem [ULASaída] = B
32
Endereço
 DadoMem
Memória
PC
Dado a ser
escrito
M
U
X
0
1 Zero
Resultado
ULA
Reg a ser
lido #1
Reg a ser
lido #2
Reg a ser
escrito
Dado de
escrita
Dado 
lido #1
Dado
lido #2
Registradores
Registrador
de
instrução
Registrador
de dados
da
memória
A
B
ULA
Saída
32
[25-21]
[20-16]
[15-11]
M
U
X
0
1
[15-0]
M
U
X
0
1
M
U
X
0
1
2
3
M
U
X
0
1 Exten-
são de 
sinal
Desl.
à esq.
2 bits
4
3216
IouD
LerMem
EscMem
IREsc
Opera-
ção
da 
ULA
2
6
32
[5-0]
EscReg
RegDst
Controle
ULAOp
ULAFonteA
FontePCPCEscCond
PCEsc
MemParaReg
ULAFonteB 2
Desl.
à esq.
2 bits
M
U
X
0
1
2
26
[25-0]
26 28
4
1
1
2
5
EscMem = 1
IouD = 1
[31-28]
[31-0]
slide 5.12 Prof. José Luís Güntzel
2. Organizações do MIPS: multiciclo
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Estado 6: ULASaída = A op B
32
Endereço
 DadoMem
Memória
PC
Dado a ser
escrito
M
U
X
0
1 Zero
Resultado
ULA
Reg a ser
lido #1
Reg a ser
lido #2
Reg a ser
escrito
Dado de
escrita
Dado 
lido #1
Dado
lido #2
Registradores
Registrador
de
instrução
Registrador
de dados
da
memória
A
B
ULA
Saída
32
[25-21]
[20-16]
[15-11]
M
U
X
0
1
[15-0]
M
U
X
0
1
M
U
X
0
1
2
3
M
U
X
0
1 Exten-
são de 
sinal
Desl.
à esq.
2 bits
4
3216
IouD
LerMem
EscMem
IREsc
Opera-
ção
da 
ULA
2
6
32
[5-0]
EscReg
RegDst
Controle
ULAOp
ULAFonteA
FontePCPCEscCond
PCEsc
MemParaReg
ULAFonteB 2
Desl.
à esq.
2 bits
M
U
X
0
1
2
26
[25-0]
26 28
4
1
00
2
10
[31-28]
[31-0]
ULAFonteA = 1
ULAFonteB = 00
ULAOp = 10
6
slide 5.13 Prof. José Luís Güntzel
2. Organizações do MIPS: multiciclo
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Estado 7: Reg [RI[15-11]] = ULASaída
32
Endereço
 DadoMem
Memória
PC
Dado a ser
escrito
M
U
X
0
1 Zero
Resultado
ULA
Reg a ser
lido #1
Reg a ser
lido #2
Reg a ser
escrito
Dado de
escrita
Dado 
lido #1
Dado
lido #2
Registradores
Registrador
de
instrução
Registrador
de dados
da
memória
A
B
ULA
Saída
32
[25-21]
[20-16]
[15-11]
M
U
X
0
1
[15-0]
M
U
X
0
1
M
U
X
0
1
2
3
M
U
X
0
1 Exten-
são de 
sinal
Desl.
à esq.
2 bits
4
3216
IouD
LerMem
EscMem
IREsc
Opera-
ção
da 
ULA
2
6
32
[5-0]
EscReg
RegDst
Controle
ULAOp
ULAFonteA
FontePCPCEscCond
PCEsc
MemParaReg
ULAFonteB 2
Desl.
à esq.
2 bits
M
U
X
0
1
2
26
[25-0]
26 28
4
0
1
1
2
[31-28]
[31-0]
7
RegDst = 1
EscReg = 1
MemParaReg = 0
slide 5.14 Prof. José Luís Güntzel
2. Organizações do MIPS: multiciclo
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Estado 8: Se (A == B), então PC = ULASaída
32
Endereço
 DadoMem
Memória
PC
Dado a ser
escrito
M
U
X
0
1 Zero
Resultado
ULA
Reg a ser
lido #1
Reg a ser
lido #2
Reg a ser
escrito
Dado de
escrita
Dado 
lido #1
Dado
lido #2
Registradores
Registrador
de
instrução
Registrador
de dados
da
memória
A
B
ULA
Saída
32
[25-21]
[20-16]
[15-11]
M
U
X
0
1
[15-0]
M
U
X
0
1
M
U
X
0
1
2
3
M
U
X
0
1 Exten-
são de 
sinal
Desl.
à esq.
2 bits
4
3216
IouD
LerMem
EscMem
IREsc
Opera-
ção
da 
ULA
2
6
32
[5-0]
EscReg
RegDst
Controle
ULAOp
ULAFonteA
FontePCPCEscCond
PCEsc
MemParaReg
ULAFonteB 2
Desl.
à esq.
2 bits
M
U
X
0
1
2
26
[25-0]
26 28
4
1
00
01
1 01 2
0
[31-28]
[31-0]
ULAFonteA = 1
ULAFonteB = 00
ULAOp = 01
PCEscCond = 1
PCEsc = 0
FontePC = 01
8
slide 5.15 Prof. José Luís Güntzel
2. Organizações do MIPS: multiciclo
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Estado 9: PC = PC [31-28] || ( RI[25-0] << 2 )
32
Endereço
 DadoMem
Memória
PC
Dado a ser
escrito
M
U
X
0
1 Zero
Resultado
ULA
Reg a ser
lido #1
Reg a ser
lido #2
Reg a ser
escrito
Dado de
escrita
Dado 
lido #1
Dado
lido #2
Registradores
Registrador
de
instrução
Registrador
de dados
da
memória
A
B
ULA
Saída
32
[25-21]
[20-16]
[15-11]
M
U
X
0
1
[15-0]
M
U
X
0
1
M
U
X
0
1
2
3
M
U
X
0
1 Exten-
são de 
sinal
Desl.
à esq.
2 bits
4
3216
IouD
LerMem
EscMem
IREsc
Opera-
ção
da 
ULA
2
6
32
[5-0]
EscReg
RegDst
Controle
ULAOp
ULAFonteA
FontePCPCEscCond
PCEsc
MemParaReg
ULAFonteB 2
Desl.
à esq.
2 bits
M
U
X
0
1
2
26
[25-0]
26 28
4
1
10 2
[31-28]
[31-0]
PCEsc = 1
FontePC = 10
9
slide 5.16 Prof. José Luís Güntzel
2. Organizações do MIPS: multiciclo
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Máquina de Estados: busca e decodificação
ULAFonteA = 0
ULAFonteB = 11
ULAOp = 00
LerMem = 1
ULAFonteA = 0
IouD = 0
IREsc = 1
ULAFonteB = 01
ULAOp = 00
PCEsc = 1
FontePC = 00
Busca da instrução
0
Decodificação da instrução/
Leitura dos registradores Rs e Rt
1
Instruções de 
referência à memória
Instruções tipo R
Instrução de 
desvio 
condicional
Instrução de 
desvio 
incondicional
início
(Op
 = ‘lw
’) OU
 (Op
 = ‘s
w’)
Op
 = 
tipo
 R
O
p 
= 
‘b
eq
’
O
p 
=
 ‘j
um
p
’
slide 5.17 Prof. José Luís Güntzel
2. Organizações do MIPS: multiciclo
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Máquina de Estados: execução de instruções lw/sw
ULAFonteA = 1
ULAFonteB = 10
ULAOp = 00
Cálculo do endereço 
de acesso à memória
2
3
4
5
LerMem = 1
IouD = 1
EscMem = 1
IouD = 1
EscReg = 1
MemParaReg = 1
RegDst = 0
Acesso à 
memória
Acesso à 
memória
Escrita no
registrador Rt Para o
estado 0
Do estado 1
Op = ‘lw’
Op = ‘sw’
(Op = ‘lw’) OU (Op = ‘sw’)
slide 5.18 Prof. José Luís Güntzel
2. Organizações do MIPS: multiciclo
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Máquina de Estados: execução de instrução tipo R
ULAFonteA = 1
ULAFonteB = 00
ULAOp = 10
Execução6
7
RegDst = 1
EscReg = 1
MemParaReg = 0
Término da 
instrução tipo R
(escrita em Rd)
Para o
estado 0
Do estado 1
Op =tipo R
slide 5.19 Prof. José Luís Güntzel
2. Organizações do MIPS: multiciclo
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Máquina de Estados: execução de instrução beq
ULAFonteA = 1
ULAFonteB = 00
ULAOp = 01
PCEscCond = 1
PCEsc = 0
FontePC = 01
Término do desvio 
condicional
8
Para o
estado 0
Do estado 1
Op = ‘beq’
slide 5.20 Prof. José Luís Güntzel
2. Organizações do MIPS: multiciclo
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Máquina de Estados: execução de instrução jump
PCEsc = 1
FontePC = 10
Término do desvio 
incondicional
9
Para o
estado 0
Do estado 1
Op = ‘j’
slide 5.21 Prof. José Luís Güntzel
2. Organizações do MIPS: multiciclo
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Máquina de Estados: 
busca e decodificação
ULAFonteA = 1
ULAFonteB = 00
ULAOp = 01
PCEscCond = 1
PCEsc = 0
FontePC = 01
Término do 
desvio 
condicional
8
ULAFonteA = 1
ULAFonteB = 10
ULAOp = 00
Cálculo do endereço 
de acesso à memória
2
3
4
5
LerMem = 1
IouD = 1
EscMem = 1
IouD = 1
EscReg = 1
MemParaReg = 1
RegDst = 0
Acesso à 
memória
Acesso à 
memória
Escrita no
registrador Rt
Op = ‘lw’
Op = ‘sw’
ULAFonteA = 1
ULAFonteB = 00
ULAOp = 10
Execução
6
7
RegDst = 1
EscReg = 1
MemParaReg = 0
Término da 
instrução tipo R
(escrita em Rd)
PCEsc = 1
FontePC = 10
Término do 
desvio 
incondicional
9
ULAFonteA = 0
ULAFonteB = 11
ULAOp = 00
LerMem = 1
ULAFonteA = 0
IouD = 0
IREsc = 1
ULAFonteB = 01
ULAOp = 00
PCEsc = 1
FontePC = 00
Busca da instrução
0
Decodificação da instrução/
Leitura dos registradores Rs e Rt
1
início
(Op =
 ‘lw’) 
OU (O
p = ‘s
w’)
Op
 = t
ipo
 R
O
p 
= 
‘be
q’
O
p 
=
 ‘j
um
p
’
slide 5.22 Prof. José Luís Güntzel
2. Organizações do MIPS: multiciclo
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Modelo de Máquina de Estados de Moore
D1 Q1
Q1
FF1
D2 Q2
Q2
FF2
D3 Q3
Q3
FF3
...
lógica de
próximo estado
lógica de saída
I1 I2 Ik
O1
O2
On
...
...
saídas
entradas
CK
Em Técnicas Digitais vimos o seguinte modelo…
slide 5.23 Prof. José Luís Güntzel
2. Organizações do MIPS: multiciclo
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Modelo de Máquina de Estados de Moore
Adaptando o Modelo ao Caso do MIPS
D1 Q1
Q1
FF1
D2 Q2
Q2
FF2
D3 Q3
Q3
FFi
...
lógica de
próximo estado
lógica de saída
Op0
PCEsc
...
Sinais de
Controle
OPCODE
CK
Op4Op5
PCEscCond
IouD
ULAFonteA
EscReg
RegDst
...
Quantos flip-flops são necessários?
Resposta: 4
slide 5.24 Prof. José Luís Güntzel
2. Organizações do MIPS: multiciclo
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Tabela de Transição de Estados
0-4
0-5
7-6
0-7
9
8
3
2
1
0
Estado Atual
0-
0-
4-
5‘sw’
3‘lw’
9‘j’
8‘beq’
6tipo R
2‘lw’ ou ‘sw’
1-
Próximo EstadoOpcode
1. Codificar os estados
2. Substituir a codificação na
tabela ao lado
3. Encontrar as equações
minimizadas para as 4
saídas (variáveis de próximo
estado)
• Vars. do estado atual:
 EA3, EA2, EA1, EA0
• Vars. Do próximo estado:
PE3, PE2, PE1, PE0
slide 5.25 Prof. José Luís Güntzel
2. Organizações do MIPS: multiciclo
ComputaçãoUFPel
Arquitetura e Organização de Computadores II
Tabela de Saída
7
9
8
6
5
4
3
2
1
0
R
e gD
s t
E
s cR
eg
U
L A
F
onteA
U
L
A
F
o
n
te B
U
L
A
O
p
F
o
n
teP
C
M
em
P
ar aR
e g
IR
E
sc
E
scM
em
LerM
em
Iou D
P
C
E
s cC
o nd
P
C
E
scEstado
Usar a codificação do estado atual

Continue navegando