290 likes | 372 Views
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.
E N D
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 X4 Y4 X3 Y3 X2 Y2 X1 Y1 SEM PIPELINE LD A LD B RA RB CLK CLK MODULO FUNCIONAL (REALIZA OPERAÇÕES ARITMETICAS E LOGICAS) Δ ATRASO DO MODULO TEMPO GASTO COM OS 4 PARES DE OPERANDOS: 4 Δ LD C RC CLK
ARQUITETURA DE COMPUTADORES PIPELINE NOS MODULOS FUNCIONAIS X3 Y3 X1 Y1 X4 Y4 X2 Y2 COM PARALELISMO LD A LD B LD C LD D RA RB RC RD CLK CLK CLK CLK MODULO FUNCIONAL MODULO FUNCIONAL LD C LD E RC RE CLK CLK TEMPO GASTO COM OS 4 PARES DE OPERANDOS: 2 Δ
ARQUITETURA DE COMPUTADORES PIPELINE NOS MODULOS FUNCIONAIS X4 Y4 X3 Y3 X2 Y2 X1 Y1 COM PIPELINE 1 LD A LD B 2 RA RB 3 CLK CLK 4 MODULO FUNCIONAL Δ/2 Δ/2 Δ/2 Δ/2 Δ/2 Δ/2 REG´s Δ/2 t TEMPO GASTO COM OS 4 PARES DE OPERANDOS: 2,5 Δ LD C RC CLK
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 SUBSIST. DE DADOS SEQ. DA MEM. TEMPO DE MICROINSTRUÇÃO = TEMPO DE BUSCA DE MICROINSTRUÇÃO + 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 BUSCA MICRO INSTR 3 EXEC. MICRO INSTR 3 COM PIPELINE t 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 IMPLEMENTAÇÃO DO PIPELINE ACRESCIMO DE REGISTRADORES NA SAIDA DA MEMORIA DE CONTROLE REGISTRADORES MEM DE CONTROLE SUBSIST. DE DADOS SEQ. DA MEM. TEMPO DE BUSCA DE MICROINSTRUÇÃO TEMPO DE EXECUÇÃO DE MICROINSTRUÇÃO
ARQUITETURA DE COMPUTADORES ACERTOS E ERROS NO PIPELINE ACERTONO 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 ERRONO 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 CPU PC 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 BUSCA DE INSTR 3 EXEC. DE INSTR 3 COM PIPELINE t 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 MEM DE PROGRAMA MODULO DE BUSCA DE INSTRUÇÃO SUBSISTCONTR SUBSISTDADOS FIFO REG´s DE ACESSO SEQUENCIAL MODULO DE EXECUÇÃO DE INSTRUÇÃO SUBSISTCONTR SUBSISTDADOS
ARQUITETURA DE COMPUTADORES ACERTOS E ERROS NO PIPELINE ACERTO NO PIPELINE PROXIMA INSTRUÇÃO EM ENDEREÇO CONSECUTIVO ERRONO PIPELINE INSTRUÇÃO DE DESVIO (INSTRUÇÃO DE QUEBRA DE SEQUENCIA). CORREÇÃO DO ERRONO 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: • A MICROINSTRUÇÃO DA UNIDADE DE CONTROLE DO MODULO DE BUSCA, SABENDO QUE O CAMPO DE CONEXÃO DEVE SER PARCIALMENTE CODIFICADO..................................(0,5) • 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 + X16 R.END 16 AC1P1P08 +1/-1 RD BIU CS RASC PC FIFO #RP #WP F E N3 N2 N1 N0 UNID. DE CONTROLE LEIT. DE PILHA ESCR. NA PILHA B. 2 PILHA CHEIA PILHA VAZIA B. 1 NO BYTES NA PILHA X16 + 20 16 B.END DS ES SS RASC1 T3 R.END 16 B. 2 8 B.DADOS SP SI DI RASC2 B. 5 = , +1, -1 EU AX BX CX DX T1 T2 IR 8 FZ ALU B. 3 FC 8 B. 4 20 BITS R.DADOS 16 BITS RD 8 BITS UNID. DE CONTROLE WR 1 BIT
ARQUITETURA DE COMPUTADORES ESQUECENDO TEMPORARIAMENTE O PIPELINE INSTRUÇÃO DE DESVIO INCONDICIONAL CONDICIONAL MEM. PROGRAMA FLAG VERDADEIRO MEM. PROGRAMA FLAG FALSO INSTRUÇÃO JP C NH NL MEM. PROGRAMA 28 FC = 1-> PC = NHNL FC = 0 -> PC =PC + 3 COD. BINARIO 28H NL NH
ARQUITETURA DE COMPUTADORES INSTRUÇÕES NECESSÁRIAS O400 3 0401 0 0402 2 0403 1 0404 1 0405 0 CPU -1 DC O500 1 0501 2 0502 3 0503 2 INSTRUÇÃO DEC DC MEM COD. BINARIO 29H
ARQUITETURA DE COMPUTADORES INSTRUÇÕES NECESSÁRIAS CPU A B = 0 FZ = 1 < 0 FC = 1 > 0 FC = 0 INSTRUÇÃO CMP A , B A - B COD. BINARIO 2AH 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ÇÃOPASSO A PASSO CPU BUS END. MEM. PROGRAMA END0 END1 END2 BUS DADOS DADO1 DADO0 DADO2 t ACESSO DE INSTRUÇÃOEM RAJADA (BURST) CPU BUS END. MEM. PROGRAMA END0 BUS DADOS DADO0 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 B0 B1 B2 B3 B4 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 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 FC=1 FC=0 SEM RAJADA, PARA 4 BUSCAS : 20TCLK
ARQUITETURA DE COMPUTADORES EXERCICIO 9 SOLUÇÃO BUSCA COM RAJADA DE 4: 15TCLK MELHORIA DE 20% • 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 • 0 0 X 0 • 1 0 0 X 0 • 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 0 • 1 0 0 X 0 • 0 0 X 0 • 1 0 0 X 0 • 0 0 X X 1 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
ARQUITETURA DE COMPUTADORES EXERCICIO 10 • 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 • 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 RENDUC MEM. UNID. CONTR. SEM PIPELINE CLK RENDUC uINSTR END uINSTR__ END uINSTR__ END uINSTR__ END uINSTR__ END uINSTR__ u INSTR__ u INSTR__ u INSTR__ u INSTR__ u INSTR__ u INSTR__ CONEX.ÃO .. OPERAÇÃO PROX. END. CLK ..
ARQUITETURA DE COMPUTADORES SOLUÇÃO RENDUC MEM. UNID. CONTR. SEM PIPELINE CLK RENDUC 0 1 2 3 4 5 260 261 262 u INST 0 1 2 3 4 5 260 261 262 CONEX. REND <-PC T1<- PCL PCL <- SALU FC <- COUT T1 <- PCH PCL <- SALU IR <-RDAD T1 <-A T2<-B A <-SALU FC<-COUT OPER. 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 RENDUC GABARITO P/ EXERCICIO MEM. UNID. CONTR. CLK* COM PIPELINE Fclk* = 2Fclk RENDUC ENDEREÇO uINSTR__ ENDEREÇO uINSTR__ ENDEREÇO uINSTR__ ENDEREÇO uINSTR__ RENDUC uINSTR__ u INSTR__ u INSTR__ u INSTR__ u INSTR__ u INSTR__ u INSTR__ CONEX.ÃO .. OPERAÇÃO PROX. END. CLK* ..
ARQUITETURA DE COMPUTADORES SOLUÇÃO RENDUC MEM. UNID. CONTR. COM PIPELINE CLK* 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 T1<- PCL PCL <- SALU FC <- COUT T1 <- PCH PCH<- SALU IR <- RDAD T1 <-A T2 <-B A <- SALU FC<-COUT OPER. 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 = 0 +1 CLK* 11 TCLK* 5,5 TCLK MICROINSTRUÇÃO DE DELAY