arquitetura de computadores otimizaÇÃo de desempenho pipeline tecnica que permite a sobreposiÇÃo...
TRANSCRIPT
ARQUITETURA DE COMPUTADORES
OTIMIZAÇÃO DE DESEMPENHO
PIPELINETECNICA 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
X4 Y4
X3 Y3
X2 Y2
X1 Y1
RA
LD A
CLK
RB
LD B
CLK
MODULO FUNCIONAL
(REALIZA OPERAÇÕES ARITMETICAS E LOGICAS)
Δ ATRASO DO MODULO
LD C
CLK
TEMPO GASTO COM OS 4 PARES DE OPERANDOS: 4 Δ
SEM PIPELINE
RC
ARQUITETURA DE COMPUTADORES
PIPELINE NOS MODULOS FUNCIONAIS
X3 Y3
X1 Y1
RA
LD A
CLK
RB
LD B
CLK
MODULO FUNCIONAL
RC
LD C
CLK
TEMPO GASTO COM OS 4 PARES DE OPERANDOS: 2 Δ
COM PARALELISMO
X4 Y4
X2 Y2
RC
LD C
CLK
RD
LD D
CLK
RE
LD E
CLK
MODULO FUNCIONAL
ARQUITETURA DE COMPUTADORES
PIPELINE NOS MODULOS FUNCIONAIS
X4 Y4
X3 Y3
X2 Y2
X1 Y1
RA
LD A
CLK
RB
LD B
CLK
MODULO FUNCIONAL
Δ/2
RC
LD C
CLK
TEMPO GASTO COM OS 4 PARES DE OPERANDOS: 2,5 Δ
COM PIPELINE
Δ/2
tΔ/2 Δ/2 Δ/2 Δ/2 Δ/2
1
2
3
4
REG´s
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.
MEM DE CONTROLE
SEQ. DA MEM.
SUBSIST. DE DADOS
TEMPO DE BUSCA DE MICROINSTRUÇÃO
TEMPO DE EXECUÇÃO DE MICROINSTRUÇÃO
UNIDADE DE CONTROLE SEM PIPELINE
TEMPO DE MICROINSTRUÇÃO= +
PIPELINE NO SUBSISTEMA DE CONTROLE
ARQUITETURA DE COMPUTADORES
SEM PIPELINE
BUSCA MICRO
INSTR 1
EXEC. MICRO
INSTR 1
BUSCA MICRO
INSTR 2
EXEC. MICRO
INSTR 2
BUSCA MICRO
INSTR 3
EXEC. MICRO
INSTR 3
tCOM PIPELINE
BUSCA MICRO
INSTR 1
EXEC. MICRO
INSTR 1
BUSCA MICRO INSTR2
EXEC. MICRO
INSTR 2
BUSCA MICRO
INSTR 3
EXEC. MICRO
INSTR 3
ARQUITETURA DE COMPUTADORES
PIPELINE NO SUBSISTEMA DE CONTROLE
MEM DE CONTROLE
SEQ. DA MEM.
SUBSIST. DE DADOS
TEMPO DE BUSCA DE MICROINSTRUÇÃO
TEMPO DE EXECUÇÃO DE MICROINSTRUÇÃO
IMPLEMENTAÇÃO DO PIPELINE
ACRESCIMO DE REGISTRADORES NA SAIDA DA MEMORIA DE CONTROLE
REGISTRADORES
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
MEM PROGRAMA
CPU
TEMPO DE BUSCA DE INSTRUÇÃO
TEMPO DE EXECUÇÃO DE INSTRUÇÃO
PC
IR
SEM PIPELINE
TEMPO DE INSTRUÇÃO = +
PIPELINE NO SUBSISTEMA DE DADOS
ARQUITETURA DE COMPUTADORES
SEM PIPELINE
BUSCA DE
INSTR 1
EXEC. DE
INSTR 1
BUSCA DE
INSTR 2
EXEC. DE
INSTR 2
BUSCA DE
INSTR 3
EXEC. DE
INSTR 3
tCOM PIPELINE
BUSCA DE
INSTR 1
EXEC. DE
INSTR 1
BUSCA DE
INSTR2
EXEC. DE
INSTR 2
BUSCA DE
INSTR 3
EXEC. DE
INSTR 3
ARQUITETURA DE COMPUTADORES
PIPELINE NO SUBSISTEMA DE DADOS
IMPLEMENTAÇÃO DO PIPELINE
CPU
MODULO DE BUSCA DE INSTRUÇÃO
SUBSISTCONTR SUBSISTDADOS
MODULO DE EXECUÇÃO DE INSTRUÇÃO
SUBSISTCONTR SUBSISTDADOS
FIFO
MEM DE PROGRAMA
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 PIPELINE
RESET NA FIFO
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, COM AS MODIFICAÇÕES NECESSARIAS NA CPU......................(2.0) 9. O TEMPO GASTO PARA EXECUTAR O PROGRAMA AO LADO NA CPU CONVENCIONAL E NESTA CPU QUE TEM PIPELINE.....(2,0)
AX <- AX + BX AL <- 20 AX <- AX + CX
ARQUITETURA DE COMPUTADORES
DS ES
BX
FC
B.END
B.DADOS
R.END
R.DADOS
RDWR
20
8 BITS
16 BITS
+X16
SS RASC1 T3
= , +1, -1
SP SI DI RASC2
CX DX T1 T2 IRAX
ALU
UNID. DE CONTROLE
B. 1
16
8
16
8
820 BITS
1 BIT
B. 2
B. 3B. 4
+X16
B. 2
16
RASC PC
+1/-1
R.END
FIFO #RP #WP F E
N3 N2 N1 N0
FZ
BIU
EU
AC1P1P08CS
LEIT. DE PILHA
ESCR. NA PILHAPILHA CHEIA
PILHA VAZIA
NO BYTES NA PILHA
UNID. DE
CONTROLE
RD
B. 5
ARQUITETURA DE COMPUTADORES
ESQUECENDO TEMPORARIAMENTE O PIPELINE
INSTRUÇÃO DE DESVIO
INCONDICIONAL
CONDICIONAL
MEM. PROGRAMA
MEM. PROGRAMAFLAG VERDADEIROFLAG FALSO
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
O400 3
0401 0
0402 2
0403 1
0404 1
0405 0 O500 1
0501 2
0502 3
0503 2
DC
INSTRUÇÃO
DEC DC
COD. BINARIO
29H
CPU
MEM
-1
ARQUITETURA DE COMPUTADORES
INSTRUÇÕES NECESSÁRIAS
A
INSTRUÇÃO
CMP A , B
COD. BINARIO
2AH
CPU
B
A - B
= 0 FZ = 1
< 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 PIPELINEPIPELINE 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.
BUS DADOS
END0
DADO0
END1
DADO1
END2
DADO2
MEM. PROGRAMA
tACESSO DE INSTRUÇÃO EM RAJADA (BURST)
CPU BUS END.
BUS DADOS
END0
DADO0 DADO1 DADO2
MEM. PROGRAMA
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.
C. PROX END
MUX1| MUX0 |#+1/+2|0/1|HHOLD
1 0 0 X 0
1 0 0 X 0
1 0 1 0 0
1 0 0 X 0
0 0 0 X 1
ARQUITETURA DE COMPUTADORES
EXERCICIO 9 SOLUÇÃO
C. DE CONEX.
REND <- PC , T1 <-PCL
PCL <- SALU, FC <- COUT
T1 <- PCH
PCH <- SALU
FIFO <- RDADOS
C. DE OPER.
---------
INC (T1)
--------
INC(T1)
------------
C. S. C.
RD
RD
#RD
#RD
#RD
ESTADO
B0
B1
B2
B3
B4FC=0
FC=1
SEM RAJADA, PARA 4 BUSCAS : 20TCLK
C. PROX END
MUX1| MUX0 |#+1/+2|0/1|HHOLD
1 0 0 X 0
1 0 0 X 0
1 0 0 X 0
1 0 0 X 0
1 0 0 X 0
1 0 0 X 0
1 0 0 X 0
1 0 0 X 0
1 0 0 X 0
1 0 0 X 0
1 0 0 X 0
1 0 0 X 0
1 0 0 X 0
1 0 0 X 0
0 0 X X 1
ARQUITETURA DE COMPUTADORES
EXERCICIO 9 SOLUÇÃO
C. DE CONEX.
REND <- PC , T1 <-T2
T1 <- SALU,
T1 <- SALU
FIFO <- RDADOS
T1 <-SALU
T1<- SALU
FIFO <- RDADOS
T1 <- SALU
T2 <- PCL
FIFO <-RDADOS
PCL <- SALU FC<- COUT
T1 <- PCH
FIFO <- RDADOS
PCH <- SALU
------------------------------
C. DE OPER.
---------
SUB
INC(T1)
------------
INC(T1)
INC (T1)
--------------
INC(T1)
---------------
---------------
SOMA-
------------
INC(T1)
---------------
C. S. C.
RD
RD
#RD
RD
RD
#RD
RD
RD
#RD
RD
RD
#RD
#RD
#RD
BUSCA COM RAJADA DE 4: 15TCLK
MELHORIA DE 20%
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
GABARITO P/ EXERCICIO
SEM PIPELINE
u INSTR__
CONEX.ÃO
OPERAÇÃO
PROX. END.
u INSTR__ u INSTR__ u INSTR__ u INSTR__ u INSTR__
CLK
..
..
RENDUC
MEM. UNID. CONTR.
CLK
RENDUC
uINSTR
END
uINSTR__
END
uINSTR__
END
uINSTR__
END
uINSTR__
END
uINSTR__
ARQUITETURA DE COMPUTADORES
SOLUÇÃO
SEM PIPELINE
u INST
CONEX.
OPER.
S. CON
0
REND <-PC
T1<- PCL
RD
CLK
RENDUC
MEM. UNID. CONTR.
CLK
RENDUC 0
P. END.
1
1
PCL <- SALU
FC <- COUT
INC (T1)
RD
+1
2
2
T1 <- PCH
#RD
+2 SE FC=0
+1
3
3
PCL <- SALU
INC (T1)
#RD
+1
4
4
IR <-RDAD
#RD
+1
5
5
#RD
IR
260 261 262
260
T1 <-A
#RD
+1
262
T2<-B A <-SALU
FC<-COUT
261
#RD
+1
#RD
BUSCA =0
9TCLK*
ARQUITETURA DE COMPUTADORES
GABARITO P/ EXERCICIO
RENDUC
MEM. UNID. CONTR.
COM PIPELINE
u INSTR__
CONEX.ÃO
OPERAÇÃO
PROX. END.
u INSTR__ u INSTR__ u INSTR__ u INSTR__ u INSTR__
CLK*
..
..
CLK*
RENDUC ENDEREÇO
uINSTR__
ENDEREÇO
uINSTR__
ENDEREÇO
uINSTR__
ENDEREÇO
uINSTR__
RENDUC
uINSTR__
Fclk* = 2Fclk
ARQUITETURA DE COMPUTADORES
SOLUÇÃO
COM PIPELINE
u INST
CONEX.
OPER.
S. CON
0
REND <-PC
T1<- PCL
RD
CLK*
RENDUC
MEM. UNID. CONTR.
CLK*
RENDUC 1
P. END.
2
1
PCL <- SALU
FC <- COUT
INC (T1)
RD
+1
3
2
T1 <- PCH
#RD
+2 SE FC=0
+1
4
3
#RD
+1
5
4
PCH<-
SALU
#RD
+1
6
5
IR <- RDAD
#RD
+1
7 260
6
#RD
IR
7
#RD
+1
261
T1 <-A
260
#RD
+1
262
T2 <-B
261
#RD
BUSCA
= 0
0
A <- SALU
FC<-COUT
262
#RD
+1
11 TCLK* 5,5 TCLK
MICROINSTRUÇÃO DE DELAY