Baixe o app para aproveitar ainda mais
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 11 2. MIPS pipeline: conflitos por dados e paradas, conflitos em desvios condicionais. Prof. José Luís Güntzel guntzel@ufpel.edu.br www.ufpel.edu.br/~guntzel/AOC2/AOC2.html slide 11.2 Prof. José Luís Güntzel 2. Organizações do MIPS: pipeline ComputaçãoUFPel Arquitetura e Organização de Computadores II Conflitos por Dados e Paradas Nem sempre o adiantamento irá resolver um conflito por dados. Exemplo: # primeiro operando ($2) depende de lw; registrador $4 é escrito$4, $2, $5and # registrador $2 é escrito$2, 20($1)lw # primeiro operando ($2) depende de lw$8, $2 , $6or # nenhuma dependencia$1, $6, $7slt # primeiro operando ($4) depende de and; segundo operando ($2) depende de lw $9, $4, $2add slide 11.3 Prof. José Luís Güntzel 2. Organizações do MIPS: pipeline ComputaçãoUFPel Arquitetura e Organização de Computadores II lw $2, 20 ($1) Ordem de execução do programa (em instruções) MI Reg MD RegULA Conflitos por Dados e Paradas CC9CC8CC7CC6CC5CC4CC3CC2CC1 Tempo, em Ciclos de clock MI Reg MD RegULA and $4, $2, $5 or $8, $2 , $6 add $9, $4, $2 slt $1, $6, $7 MI Reg MD RegULA MI Reg MD RegULA MI Reg MD RegULA Conflito não pode ser resolvido por adiantamento slide 11.4 Prof. José Luís Güntzel 2. Organizações do MIPS: pipeline ComputaçãoUFPel Arquitetura e Organização de Computadores II Unidade de Detecção de Conflito Faz o pipeline parar quando houver uma instrução load word, seguida de uma instrução que leia o registrador onde esta instrução de load word escreveu Vai operar durante o estágio DI, inserindo uma parada entre a instrução load word e o uso de seu resultado Condição a ser verificada: Conflitos por Dados e Paradas Se (DI/EX.LerMem = 1 E ((DI/EX.RegistradorRt = BI/DI.RegistradorRs ) OU (DI/EX.RegistradorRt = BI/DI.RegistradorRt ))) Então pára o pipeline por um ciclo de relógio load word é a única instrução que lê dados da memória slide 11.5 Prof. José Luís Güntzel 2. Organizações do MIPS: pipeline ComputaçãoUFPel Arquitetura e Organização de Computadores II lw $2, 20 ($1) Ordem de execução do programa (em instruções) Conflitos por Dados e Paradas CC9CC8CC7CC6CC5CC4CC3CC2CC1 Tempo, em Ciclos de clock MI Reg MD RegULA and $4, $2, $5 or $8, $2 , $6 add $9, $4, $2 slt $1, $6, $7 MI Reg MD RegULA MI Reg MD RegULA bolha Assumindo que a existência da unidade de adiantamento MI Reg MD RegULAReg MI MD RegULARegReg slide 11.6 Prof. José Luís Güntzel 2. Organizações do MIPS: pipeline ComputaçãoUFPel Arquitetura e Organização de Computadores II Conflitos por Dados e Paradas Trancando o Prosseguimento das Instruções Posteriores a uma Instrução “load word” Se a instrução que está no estágio DI estiver parada, então o estágio BI também precisa parar Para impedir o avanço de instruções pelo pipeline, basta evitar que tanto o PC quanto o registrador BI/DI sejam escritos As condições do item anterior fazem com que, no ciclo de relógio seguinte: A instrução que está no BI seja lida novamente Os registradores lidos no estágio DI serão lidos novamente slide 11.7 Prof. José Luís Güntzel 2. Organizações do MIPS: pipeline ComputaçãoUFPel Arquitetura e Organização de Computadores II Conflitos de Controle Endereço Dado lido Dado a ser escrito Memória de dados DI/EX 32Endereço Instrução lida Memória de Instruções PC 4 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 Exten- são de sinal 16 [25-21] [20-16] [15-11] [15-0] Desl. à esq. 2 bits Zero Resultado ULA + M U X 0 1 M U X 0 1 M U X 0 1 Opera- ção da ULA 2 ULAOp 3 32 6 EscMem LerMem MemParaReg EscReg RegDst ULAFonte DvC FontePC Controle EX M ER M ER EX/MEM MEM/ER ERBI/DI [31-26] instrução slide 11.8 Prof. José Luís Güntzel 2. Organizações do MIPS: pipeline ComputaçãoUFPel Arquitetura e Organização de Computadores II Conflitos por Dados e Paradas Propagando uma Bolha pelo Pipeline Como a instrução load word prossegue pelo pipeline, cria-se uma “bolha” de execução, a qual deve também prosseguir pelo pipeline Uma “bolha” deve executar em cada estágio a mesma coisa que uma instrução NOP executa NOP: Todos os sinais de controle em 0 (zero) para os estágios EX, MEM e ER. Estes valores de sinais de controle são passados adiante a cada ciclo de relógio, produzindo o efeito desejado (nenhum registrador ou memória é escrito) slide 11.9 Prof. José Luís Güntzel 2. Organizações do MIPS: pipeline ComputaçãoUFPel Arquitetura e Organização de Computadores II Desvio Condicional em Pipeline. Exemplo: $14, $4, $2add52 …… $10, $4, $8sub36 72 56 48 44 40 $12, $2, $5and # desvio relativo ao PC para 40 + 4 + 7*4 = 72$1, $3, 7beq $13, $2, $6or $4, 50( $7)lw $15, $6, $7slt Conflitos de Controle (ou Conflitos de Desvios Condicionais) slide 11.10 Prof. José Luís Güntzel 2. Organizações do MIPS: pipeline ComputaçãoUFPel Arquitetura e Organização de Computadores II 40 beq $1, $3, 7 Ordem de execução do programa (em instruções) MI Reg MD RegULA MI Reg MD RegULA Conflitos de Controle CC9CC8CC7CC6CC5CC4CC3CC2CC1 Tempo, em Ciclos de clock MI Reg MD RegULA MI Reg MD RegULA MI Reg MD RegULA 44 and $12, $2, $5 48 or $13, $6, $2 52 add $14, $2, $2 72 lw $4, 50($2) Considerando o Bloco Operativo Pipeline Visto Até Aqui… Se o desvio ocorrer, 3 instruções terão que ser descartadas (flushed) slide 11.11 Prof. José Luís Güntzel 2. Organizações do MIPS: pipeline ComputaçãoUFPel Arquitetura e Organização de Computadores II Conforme já visto anteriormente, a parada no avanço das instruções não é uma solução viável para o desvio condicional Uma alternativa comum é considerar que os desvios condicionais sempre ocorrem, considerando a seqüência normal de execução das instruções Caso o desvio se realize, será necessário descartar as instruções que estiverem sendo buscadas e executadas E a execução deve continuar a partir da instrução armazenada no endereço-alvo do desvio condicional… Conflitos de Controle slide 11.12 Prof. José Luís Güntzel 2. Organizações do MIPS: pipeline ComputaçãoUFPel Arquitetura e Organização de Computadores II Para descartar instruções, basta mudar para 0 os valores originais dos sinais de controle e Também mudar as instruções que estiverem em BI, DI e EX, quando a instrução de desvio condicional chegar ao estágio MEM Conflitos de Controle slide 11.13 Prof. José Luís Güntzel 2. Organizações do MIPS: pipeline ComputaçãoUFPel Arquitetura e Organização de Computadores II Conflitos de Controle Endereço Dado lido Dado a ser escrito Memória de dados DI/EX 32Endereço Instrução lida Memória de Instruções PC 4 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 Exten- são de sinal 16 [25-21] [20-16] [15-11] [15-0] Desl. à esq. 2 bits Zero Resultado ULA + M U X 0 1 M U X 0 1 M U X 0 1 Opera- ção da ULA 2 ULAOp 3 32 6 EscMem LerMem MemParaReg EscReg RegDst ULAFonte DvC FontePC ControleEX M ER M ER EX/MEM MEM/ER ERBI/DI [31-26] instrução
Compartilhar