Pipeline e Desvio Incondicional

Download Report

Transcript Pipeline e Desvio Incondicional

ARQUITETURA DE COMPUTADORES
OTIMIZAÇÃO DE DESEMPENHO
PIPELINE
TECNICA QUE PERMITE A SOBREPOSIÇÃO
TEMPORAL DAS DIVERSAS FASES DE
EXECUÇÃO DE INSTRUÇÃO
A TECNICA
O MODULO OU SUBSISTEMA É DIVIDIDO EM 2 OU MAIS
ESTAGIOS, CADA UM DELES SEPARADOS POR LATCHES,
DE MODO QUE CADA ESTAGIO TRABALHE COM UM
CONJUNTO DE OPERANDOS DIFERENTES
ARQUITETURA DE COMPUTADORES
PIPELINE NOS MODULOS FUNCIONAIS
SEM PIPELINE
LD A
CLK
X4
Y4
X3
Y3
X2
Y2
X1
Y1
R
A
R
B
LD B
CLK
MODULO FUNCIONAL
Δ
ATRASO DO MODULO
(REALIZA OPERAÇÕES ARITMETICAS E LOGICAS)
LD C
CLK
R
C
TEMPO GASTO COM OS 4 PARES DE
OPERANDOS: 4 Δ
ARQUITETURA DE COMPUTADORES
PIPELINE NOS MODULOS FUNCIONAIS
LD A
CLK
X3
Y3
X1
Y1
R
A
COM PARALELISMO
R
B
LD B
LD C
CLK
CLK
MODULO FUNCIONAL
LD C
CLK
R
C
X4
Y4
X2
Y2
R
C
R
D
LD D
CLK
MODULO FUNCIONAL
LD E
CLK
R
E
TEMPO GASTO COM OS 4 PARES DE
OPERANDOS: 2 Δ
ARQUITETURA DE COMPUTADORES
PIPELINE NOS MODULOS FUNCIONAIS
LD A
CLK
X4
Y4
X3
Y3
X2
Y2
X1
Y1
R
A
R
B
COM PIPELINE
1
LD B
2
3
CLK
4
MODULO FUNCIONAL
REG´s
Δ/2
Δ/2
LD C
CLK
R
C
Δ/2 Δ/2 Δ/2 Δ/2 Δ/2
t
TEMPO GASTO COM OS 4 PARES DE
OPERANDOS: 2,5 Δ
ARQUITETURA DE COMPUTADORES
PIPELINE x PARALELISMO
PIPELINE: ATRASO MAIOR (2,5 Δ), POREM SÓ
HOUVE ACRESCIMO DE REGISTRADORES.
PARALELISMO: ATRASO MENOR(2 Δ ), POREM
FORAM ACRESCENTADOS REGISTRADORES E O
MODULO FUNCIONAL FOI DUPLICADO
ARQUITETURA DE COMPUTADORES
PIPELINE NO SUBSISTEMA DE CONTROLE
ENQUANTO UMA MICROINSTRUÇÃO ESTÁ SENDO EXECUTADA,
A SEGUINTE JÁ ESTÁ SENDO LIDA DA MEMORIA DE CONTROLE.
UNIDADE DE CONTROLE SEM PIPELINE
MEM DE
CONTROLE
SEQ.
DA
MEM.
TEMPO DE
MICROINSTRUÇÃO
=
TEMPO DE BUSCA DE
MICROINSTRUÇÃO
SUBSIST. DE
DADOS
+
TEMPO DE EXECUÇÃO
DE MICROINSTRUÇÃO
ARQUITETURA DE COMPUTADORES
PIPELINE NO SUBSISTEMA DE CONTROLE
SEM PIPELINE
BUSCA
MICRO
INSTR 1
EXEC.
MICRO
INSTR 1
BUSCA
MICRO
INSTR 2
EXEC.
MICRO
INSTR 2
COM PIPELINE
BUSCA
MICRO
INSTR 1
EXEC.
MICRO
INSTR 2
BUSCA
MICRO
INSTR 3
EXEC.
MICRO
INSTR 3
t
EXEC.
MICRO
INSTR 1
BUSCA
MICRO
INSTR2
BUSCA
MICRO
INSTR 3
EXEC.
MICRO
INSTR 3
ARQUITETURA DE COMPUTADORES
PIPELINE NO SUBSISTEMA DE CONTROLE
IMPLEMENTAÇÃO DO PIPELINE
ACRESCIMO DE REGISTRADORES NA SAIDA DA MEMORIA
DE CONTROLE
REGISTRADORES
SEQ.
DA
MEM.
MEM DE
CONTROLE
TEMPO DE BUSCA DE
MICROINSTRUÇÃO
SUBSIST. DE
DADOS
TEMPO DE EXECUÇÃO
DE MICROINSTRUÇÃO
ARQUITETURA DE COMPUTADORES
ACERTOS E ERROS NO PIPELINE
ACERTO NO PIPELINE
PROXIMA MICROINSTRUÇÃO EM ENDEREÇO CONHECIDO APRIORI.
ERRO
NO PIPELINE
ENDEREÇO DA PROXIMA MICROINSTRUÇÃO DEPENDE DE
RESULTADO DA EXECUÇÃO DA MICROINSTRUÇÃO ATUAL.
CORREÇÃO DO ERRO NO
PIPELINE
- USO DE MICROINSTRUÇÃO DE DELAY ( NÃO FAZ NADA)
- ABORTAR A EXECUÇÃO DA MICROINSTRUÇÃO QUE FOI
PREVIAMENTE BUSCADA, CASO O RESULTADO DA EXECUÇÃO
ATUAL ASSIM INDIQUE.
OBS:
ABORTAR SIGNIFICA SUBSTITUIR UMA MICROINSTRUÇÃO POR UMA OUTRA
QUE NÃO FAZ NADA, DURANTE A FASE DE EXECUÇÃO.
ARQUITETURA DE COMPUTADORES
PIPELINE NO SUBSISTEMA DE DADOS
ENQUANTO UMA INSTRUÇÃO ESTÁ SENDO EXECUTADA, A
SEGUINTE JÁ ESTÁ SENDO LIDA DA MEMORIA DE PROGRAMA
SEM PIPELINE
MEM
PROGRAMA
PC
CPU
IR
TEMPO DE
INSTRUÇÃO
=
TEMPO DE BUSCA DE
INSTRUÇÃO
+
TEMPO DE EXECUÇÃO
DE INSTRUÇÃO
ARQUITETURA DE COMPUTADORES
PIPELINE NO SUBSISTEMA DE DADOS
SEM PIPELINE
BUSCA
DE
INSTR 1
EXEC.
DE
INSTR 1
BUSCA
DE
INSTR 2
EXEC.
DE
INSTR 2
COM PIPELINE
BUSCA
DE
INSTR 1
EXEC.
DE
INSTR 2
BUSCA
DE
INSTR 3
EXEC.
DE
INSTR 3
t
EXEC.
DE
INSTR 1
BUSCA
DE
INSTR2
BUSCA
DE
INSTR 3
EXEC.
DE
INSTR 3
ARQUITETURA DE COMPUTADORES
PIPELINE NO SUBSISTEMA DE DADOS
IMPLEMENTAÇÃO DO PIPELINE
CPU
MEM DE
PROGRAMA
MODULO DE BUSCA DE INSTRUÇÃO
SUBSISTCONTR
SUBSISTDADOS
FIFO
MODULO DE EXECUÇÃO DE INSTRUÇÃO
SUBSISTCONTR
SUBSISTDADOS
REG´s DE ACESSO
SEQUENCIAL
ARQUITETURA DE COMPUTADORES
ACERTOS E ERROS NO PIPELINE
ACERTO
NO PIPELINE
PROXIMA INSTRUÇÃO EM ENDEREÇO CONSECUTIVO
ERRO NO
PIPELINE
INSTRUÇÃO DE DESVIO (INSTRUÇÃO DE QUEBRA DE SEQUENCIA).
CORREÇÃO DO ERRO NO
RESET NA FIFO
PIPELINE
ARQUITETURA DE COMPUTADORES
AC1P1P08
O MODULO DE BUSCA DE INSTRUÇÃO (BIU) FOI PROJETADO PARA BUSCAR INSTRUÇÃO NA
MEMORIA E COLOCA-LA NA PILHA FIFO.
PEDE-SE:
1.A MICROINSTRUÇÃO DA UNIDADE DE CONTROLE DO MODULO DE BUSCA, SABENDO QUE O
CAMPO DE CONEXÃO DEVE SER PARCIALMENTE CODIFICADO..................................(0,5)
2.O SEQUENCIADOR DA UNIDADE DE CONTROLE DO MODULO DE BUSCA................. (0,5)
O MODULO DE EXECUÇÃO (EU) FOI PROJETADO PARA BUSCAR A INSTRUÇÃO NA PILHA E, A
SEGUIR , EXECUTÁ-LA.
PEDE-SE:
3. A MICROINSTRUÇÃO DA UNIDADE DE CONTROLE DO MODULO DE EXECUÇÃO, SABENDO QUE
O CAMPO DE CONEXÃO DEVE SER PARCIALMENTE DECODIFICADO...........................(1,0)
4. O SEQUENCIADOR DA UNIDADE DE CONTROLE DO MODULO DE EXECUÇÃO..........(1,0)
OS DOIS MODULOS DEVEM TRABALHAR EM CONJUNTO.
PEDE-SE:
5. A MICROINSTRUÇÃO E O SEQUENCIADOR DA BIU.................................................(1,0)
6. A MICROINSTRUÇÃO E O SEQUENCIADOR DA EU..................................................(1,0)
7. O MICROPROGRAMA DE BUSCA DA BIU E O MICROPROGRAMA
DE BUSCA DA EU........................................................................................................(1,0)
8. O MICROPROGRAMA DE EXECUÇÃO DA INSTRUÇÃO CALL NHNL,
AX <- AX + BX
COM AS MODIFICAÇÕES NECESSARIAS NA CPU......................(2.0)
9. O TEMPO GASTO PARA EXECUTAR O PROGRAMA AO LADO
AL <- 20
NA CPU CONVENCIONAL E NESTA CPU QUE TEM PIPELINE.....(2,0)
AX <- AX + CX
ARQUITETURA DE COMPUTADORES
+
X16
16
+1/-1
CS
RD
RASC
AC1P1P08
PC
B. 2
B. 1
UNID. DE
CONTROLE
X16
16
R.END
DS
ES SS
RASC1
+
FIFO
#RP
#WP
F
E
N3
O
N2
N BYTES NA
PILHA
N1
N0
20B.END
T3
B. 2
8
B.DADOS
B. 5
SP
SI
DI
16
BIU
LEIT. DE PILHA
ESCR. NA PILHA
PILHA CHEIA
PILHA VAZIA
R.END
RASC2
=,
+1,
-1
AX
BX
CX
DX
FZ
FC
20 BITS
T1
T2
EU
IR
8
ALU
B. 4
8
R.DADOS
16 BITS
8 BITS
1 BIT
B. 3
UNID. DE CONTROLE
RD
WR
ARQUITETURA DE COMPUTADORES
ESQUECENDO TEMPORARIAMENTE O
PIPELINE
INSTRUÇÃO DE DESVIO
MEM. PROGRAMA
INCONDICIONAL
CONDICIONAL
FLAG FALSO MEM. PROGRAMA
FLAG
VERDADEIRO
INSTRUÇÃO
JP C NH NL
COD. BINARIO
28H
MEM. PROGRAMA
28
NL
NH
FC = 1-> PC = NHNL
FC = 0 -> PC =PC + 3
ARQUITETURA DE COMPUTADORES
INSTRUÇÕES NECESSÁRIAS
CPU
DC
INSTRUÇÃO
DEC DC
COD. BINARIO
29H
O400
3
0401
0
0402
2
0403
1
0404
1
0405
0
O500
1
0501
2
0502
3
0503
2
MEM
ARQUITETURA DE COMPUTADORES
INSTRUÇÕES NECESSÁRIAS
CPU
A
B
= 0 FZ = 1
INSTRUÇÃO
CMP A , B
COD. BINARIO
2AH
A -B
< 0 FC = 1
> 0 FC = 0
OBS: NUMEROS S/ SINAL
ARQUITETURA DE COMPUTADORES
EXERCICIO 8
FAÇA UM PROGRAMA PARA COMPARAR OS NUMEROS
POSITIVOS ARMAZENADOS NOS ENDEREÇOS DE
MEMORIA 0100H E 0101H. O MAIOR DEVE SER
ARMAZENADO EM 0101H E O MENOR EM 0100H
ARQUITETURA DE COMPUTADORES
RETOMANDO O PIPELINE
PIPELINE NA MEMORIA DE PROGRAMA
EM GERAL AS INSTRUÇÕES ESTÃO EM ENDEREÇOS
CONSECUTIVOS DE MEMORIA
ACESSO DE INSTRUÇÃO PASSO A PASSO
CPU
BUS END.
END0
END1
MEM.
PROGRAMA
END2
BUS DADOS
DADO1
DADO0
ACESSO DE INSTRUÇÃO EM RAJADA (BURST)
CPU
BUS END.
t
MEM.
PROGRAMA
END0
BUS DADOS
DADO0
DADO2
DADO1
DADO2
ARQUITETURA DE COMPUTADORES
PIPELINE NA MEMORIA DE PROGRAMA
PARA QUE O ACESSO EM RAJADA SEJA POSSIVEL, DEVE
EXISTIR UM PIPELINE NA MEMORIA DE
PROGRAMA(ENQUANTO UMA INSTRUÇÃO ESTÁ SENDO
ENVIADA PARA A CPU, OUTRA ESTÁ SENDO LIDA DA
MEMORIA).
ARQUITETURA DE COMPUTADORES
EXERCICIO 9
FAÇA O MICROPROGRAMA DE BUSCA DE 4 INSTRUÇÕES
EM RAJADA, SABENDO QUE A CPU TEM UMA UNIDADE
DE BUSCA E UMA UNIDADE DE EXECUÇÃO.
COMPARE OS TEMPOS DE BUSCA COM RAJADA E SEM
RAJADA.
ARQUITETURA DE COMPUTADORES
EXERCICIO 9 SOLUÇÃO
ESTADO
C. DE CONEX.
C. DE OPER.
C. S. C.
C. PROX END
MUX1| MUX0 |#+1/+2|0/1|HHOLD
FC=1
B0
REND <- PC , T1 <-PCL
B1
PCL <- SALU, FC <- COUT
B2
T1 <- PCH
B3
PCH <- SALU
FIFO <- RDADOS
FC=0
B4
---------
RD
1
0
0
X
0
RD
1
0
0
X
0
#RD
1
0
1
0
0
INC(T1)
#RD
1
0
0
X
0
------------
#RD
0
0
0
INC (T1)
--------
SEM RAJADA, PARA 4 BUSCAS : 20TCLK
X
1
ARQUITETURA DE COMPUTADORES
BUSCA COM RAJADA DE 4: 15TCLK
MELHORIA DE 20%
EXERCICIO 9 SOLUÇÃO
C. PROX END
C. DE CONEX.
C. S. C.
MUX1| MUX0 |#+1/+2|0/1|HHOLD
---------
RD
1
0
0
X
0
T1 <- SALU,
SUB
RD
1
0
0
X
0
T1 <- SALU
INC(T1)
#RD
1
0
0
X
0
------------
RD
1
0
0
X
0
T1 <-SALU
INC(T1)
RD
1
0
0
X
0
T1<- SALU
INC (T1)
#RD
1
0
0
X
0
REND <- PC , T1 <-T2
FIFO <- RDADOS
C. DE OPER.
FIFO <- RDADOS
--------------
RD
1
0
0
X
0
T1 <- SALU
INC(T1)
RD
1
0
0
X
0
T2 <- PCL
---------------
#RD
1
0
0
X
0
FIFO <-RDADOS
---------------
RD
1
0
0
X
0
PCL <- SALU FC<- COUT
SOMA-
RD
1
0
0
X
0
T1 <- PCH
------------
#RD
1
0
0
X
0
#RD
1
0
0
X
0
#RD
1
0
0
X
0
FIFO <- RDADOS
PCH <- SALU
INC(T1)
ARQUITETURA DE COMPUTADORES
EXERCICIO 10
1. FAÇA OS MICROPROGRAMAS DE BUSCA E DE
EXECUÇÃO DA INSTRUÇÃO ADD A,B, SABENDO QUE
EXISTE UM PIPELINE NA UNIDADE DE CONTROLE DA
CPU TIPO 8080
2. NA CPU, SEM PIPELINE, O PERIODO DE CLOCK É
DADO POR: T1 + T2, EM QUE
T1: TEMPO DE ACESSO A MEMORIA DA UNIDADE DE CONTROLE
T2: TEMPO DE RESPOSTA DA ALU
T1 = T2
QUANTO TEMPO É GASTO PARA BUSCAR E EXCUTAR
A INSTRUÇÃO ADD A,B COM E SEM PIPELINE
ARQUITETURA DE COMPUTADORES
R
E
N
D
U
C
GABARITO P/ EXERCICIO
MEM.
UNID.
CONTR.
CLK
SEM PIPELINE
RENDUC
END
END
END
END
END
uINSTR
uINSTR__
uINSTR__
uINSTR__
uINSTR__
uINSTR__
u INSTR__
u INSTR__
u INSTR__
u INSTR__
u INSTR__
u INSTR__
CONEX.ÃO
OPERAÇÃO
..
PROX. END.
CLK
..
ARQUITETURA DE COMPUTADORES
R
E
N
D
U
C
SOLUÇÃO
MEM.
UNID.
CONTR.
CLK
SEM PIPELINE
RENDUC
0
1
2
3
4
5
260
261
262
u INST
0
1
2
3
4
5
260
261
262
CONEX.
REND <-PC
PCL <- SALU
T1 <- PCH
PCL <- SALU
IR <-RDAD
T1 <-A
T2<-B
A <-SALU
T1<- PCL
FC <- COUT
OPER.
FC<-COUT
INC (T1)
INC (T1)
S. CON
RD
RD
#RD
#RD
#RD
#RD
#RD
#RD
#RD
P. END.
+1
+1
+2 SE FC=0
+1
+1
IR
+1
+1
BUSCA
=0
CLK
9TCLK*
ARQUITETURA DE COMPUTADORES
R
E
N
D
U
C
GABARITO P/ EXERCICIO
COM PIPELINE
RENDUC
u INSTR__
CLK*
Fclk* = 2Fclk
ENDEREÇO
ENDEREÇO
ENDEREÇO
ENDEREÇO
RENDUC
uINSTR__
uINSTR__
uINSTR__
uINSTR__
uINSTR__
u INSTR__
u INSTR__
u INSTR__
u INSTR__
u INSTR__
CONEX.ÃO
OPERAÇÃO
..
PROX. END.
CLK*
MEM.
UNID.
CONTR.
..
ARQUITETURA DE COMPUTADORES
R
E
N
D
U
C
SOLUÇÃO
MEM.
UNID.
CONTR.
CLK*
COM PIPELINE
RENDUC
1
2
3
4
5
6
7
260
261
262
0
u INST
0
1
2
3
4
5
6
7
260
261
262
CONEX.
REND <-PC
PCL <- SALU
T1 <- PCH
PCH<-
T2 <-B
A <- SALU
FC <- COUT
SALU
IR <RDAD
T1 <-A
T1<- PCL
OPER.
FC<-COUT
INC (T1)
S. CON
RD
RD
#RD
#RD
#RD
#RD
#RD
#RD
#RD
#RD
#RD
P. END.
+1
+1
+2 SE
FC=0
+1
+1
+1
IR
+1
+1
BUSCA
+1
=0
CLK*
11 TCLK*  5,5 TCLK
MICROINSTRUÇÃO DE DELAY