(aula passada)
Caminho de Dados
• Busca de Instrução + Instruções Aritm. e Lóg. (R-format)
+ Instruções de Referência à Memória (I-Format) + Desvio
1
M
U
X
Somador
UAL
Reg a ser
lido # 1
P
C
Endereço de
leitura
Instrução
M
U
X
Memória de
Instruções
3
Reg a ser
lido #2
Dado
lido #1
Reg a ser
escrito
Dado
lido #2
Dado de
escrita
EscReg
16
Extensão
de sinal
DvC
EscMen
M
U
X
UAL
Endereço
Dado
lido
Dado a ser
escrito
LerMem
32
M
U
X
Inserindo o Controle
• Identificar os pontos de controle no caminho
de dados
– Busca da instrução
– Operações lógicas e aritméticas
– Operações de Memória
• Identificar tipo de controle do sinal
– Fluxo de dados através de multiplexadores
– Escrita e leitura de dados
• Pensar nos sinais de controle para cada
instrução
Busca da Instrução
1
M
U
X
Somador
UAL
Reg a ser
lido # 1
P
C
Endereço de
leitura
Instrução
M
U
X
Memória de
Instruções
3
Reg a ser
lido #2
Dado
lido #1
Reg a ser
escrito
Dado
lido #2
Dado de
escrita
EscReg
16
Extensão
de sinal
DvC = 0
(=X) Não
influencia
M
U
X
UAL
Endereço
Dado
lido
Dado a ser
escrito
LerMem
32
EscMen
M
U
X
Controle para Operação Aritmética
1
M
U
X
Somador
UAL
Reg a ser
lido # 1
P
C
Endereço de
leitura
Instrução
Memória de
Instruções
Reg a ser
lido #2
op 3
Dado
lido #1
=0 EscMen
=0
M
U
X
Reg a ser
escrito
=1
Dado
lido #2
Dado de
escrita
EscReg
16
Extensão
de sinal
DvC = 0
M
U
X
UAL
Endereço
Dado
lido
Dado a ser
escrito
LerMem
=1
=1
M
U
X
=0
32
EscMen = LerMem = 0 pois nem escreve nem lê da memória
EscReg = 1 pois “Reg a ser escrito” seleciona registrador que vai receber “dado de escrita”
Controle para Operação de Carga
1
M
U
X
Somador
UAL
Reg a ser
lido # 1
P
C
Endereço de
leitura
Instrução
Memória de
Instruções
Reg a ser
lido #2
Add
Dado
lido #1
=0 EscMen
=1
M
U
X
Reg a ser
escrito
=0
Dado
lido #2
Dado de
escrita
EscReg
16
Extensão
de sinal
DvC = 0
M
U
X
UAL
Endereço
Dado
lido
Dado a ser
escrito
LerMem
=1
=0
M
U
X
=1
32
LerMem = 1 pois lê da memória
EscReg = 1 pois “Reg a ser escrito” seleciona registrador que vai receber “dado de escrita”
Controle para Operação de Armazenamento
1
M
U
X
Somador
UAL
Reg a ser
lido # 1
P
C
Endereço de
leitura
Instrução
Memória de
Instruções
Reg a ser
lido #2
Add
Dado
lido #1
=1 EscMen
=1
M
U
X
Reg a ser
escrito
=X
Dado
lido #2
Dado de
escrita
EscReg
16
Extensão
de sinal
DvC = 0
M
U
X
UAL
Endereço
Dado
lido
Dado a ser
escrito
LerMem
=0
32
EscMem = 1 pois escreve da memória
EscReg = 0 pois não usa o “Reg a ser escrito”
=X
=0
M
U
X
Controle para Op. de Desvio Condicional
(beq)
1
M
U
X
Somador
UAL
Reg a ser
lido # 1
P
C
Endereço de
leitura
Instrução
Memória de
Instruções
Reg a ser
lido #2
Sub
Dado
lido #1
=0 EscMen
=0
M
U
X
Reg a ser
escrito
=X
Dado
lido #2
Dado de
escrita
EscReg
16
Extensão
de sinal
DvC = 1
M
U
X
UAL
Endereço
Dado
lido
Dado a ser
escrito
LerMem
=0
=X
M
U
X
=0
32
EscMen = LerMem = 0 pois nem escreve nem lê da memória
EscReg = 0 pois não usa o “Reg a ser escrito”
Se R[regA]-R[regB] = 0 então o sinal na saída Zero é 1, se não o sinal na saída Zero é 0.
Sinal de Controle
1
M
U
X
Somador
UAL
Reg a ser
lido # 1
P
C
Endereço de
leitura
Instrução
Memória de
Instruções
Reg a ser
lido #2
M
U
X
Reg a ser
escrito
UALop
3
Dado
lido #1
Dado
lido #2
mRegDest Dado de
escrita
EscReg
16
Extensão
de sinal
DvC
EscMen
mUAL
M
U
X
UAL
Endereço
Dado
lido
Dado a ser
escrito
LerMem
32
mDadoEsc
M
U
X
Resumo Sinais de Controle
Op
000
010
011
100
add
lw
sw
beq
mRegDest
1
0
X
X
mUAL
0
1
1
0
mDadoEsc
1
0
X
X
EscReg
1
1
0
0
LerMem
0
1
0
0
EscMen
0
0
1
0
DvC
0
0
0
1
UALop
add
add
add
sub
Resumo Sinais de Controle
Op
000
010
011
100
add
lw
sw
beq
mRegDest
1
0
X
X
mUAL
0
1
1
0
mDadoEsc
1
0
X
X
EscReg
1
1
0
0
LerMem
0
1
0
0
EscMen
0
0
1
0
DvC
0
0
0
1
UALop0
0
0
0
0
UALop1
1
1
1
1
UALop2
0
0
0
1
UALop0 = 0
UALop1 = 1
Implementação da
Função de Controle
Op0
Op1
Op2
R-format
lw
sw
beq
mRegDest
mUAL
mDadoEsc
EscReg
LerMen
EscMen
DvC
UALOp2
M
U
X
Somador
1
UAL
Reg a ser
lido # 1
P
C
Endereço de
leitura
Instrução
Memória de
Instruções
M
U
X
3
Reg a ser
lido #2
Dado
lido #1
Reg a ser
escrito
Dado
lido #2
mRegDest Dado de
escrita
EscReg
Instr [24:22] op
Controle
Principal
UALop
mRegDest
mUAL
mDadoEsc
EscReg
LerMem
EscMem
DvC
UALOp2
16
Extensão
de sinal
DvC
EscMem
mUAL
M
U
X
UAL
Endereço
Dado
lido
Dado a ser
escrito
LerMem
32
Juntando as Partes
mDadoEsc
M
U
X
Implementação Monociclo
• Vantagens
– Um ciclo de relógio por instrução torna lógica mais
simples
• Desvantagens
– Ciclo de clock determinado pela instrução que leva
maior tempo
• Instrução de carga utiliza cinco unidades funcionais em
série: tempo de acesso à memória de instruções +
–
–
–
–
tempo de acesso ao banco de registradores +
retardo da UAL +
tempo de acesso à memória de dados +
tempo para armazenar os dados para o banco de
registradores
– Duplicação de unidades funcionais
Download

X - UFF