Microcontroladores e Interfacesalibaba.dei.uminho.pt/~csilva/mint/download/A5.pdf · 3...

39
Microcontroladores e Interfaces 3º Ano – Eng. Electrónica Industrial Carlos A. Silva 2º Semestre de 2005/2006 http://www.dei.uminho.pt/lic/mint Assunto: Pipeline Aula #5 28 28 Mar Mar 06 06

Transcript of Microcontroladores e Interfacesalibaba.dei.uminho.pt/~csilva/mint/download/A5.pdf · 3...

Page 1: Microcontroladores e Interfacesalibaba.dei.uminho.pt/~csilva/mint/download/A5.pdf · 3 Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva Revisão Controlo Acontece quando

Microcontroladores e Interfaces3º Ano – Eng. Electrónica Industrial

Carlos A. Silva

2º Semestre de 2005/2006http://www.dei.uminho.pt/lic/mint

Assunto: PipelineAula #5

2828 Mar Mar 0606

Page 2: Microcontroladores e Interfacesalibaba.dei.uminho.pt/~csilva/mint/download/A5.pdf · 3 Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva Revisão Controlo Acontece quando

Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva2

RevisãoNa implementação do pipeline temos problemas de implementação que são chamados de pipeline hazards.Existem três tipos de hazards:

EstruturalAcontece quando se tenta usar o mesmo recurso de duas maneiras diferentes.Por ex., não é possível usar a unidade de decode para duas instruções simultaneamente.

DadosAcontece quando se tenta usar um item antes de estar disponível.P. ex., uma instrução depende de um resultado que estánum estágio anterior do pipeline.

Page 3: Microcontroladores e Interfacesalibaba.dei.uminho.pt/~csilva/mint/download/A5.pdf · 3 Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva Revisão Controlo Acontece quando

Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva3

RevisãoControlo

Acontece quando se tenta tomar uma decisão antes da condição ter sido avaliada.

Por ex., nas instruções de salto condicional.

Page 4: Microcontroladores e Interfacesalibaba.dei.uminho.pt/~csilva/mint/download/A5.pdf · 3 Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva Revisão Controlo Acontece quando

Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva4

Hazard de dados

Os hazard de dados acontecem devido a dependência de dados entre os operandos das instruções.Que tipos de dependência podemos identificar entre as instruções ?

Read-After-Write (RAW)Uma instrução escreve um valor que será lido posteriormente por uma outra instrução.P. ex.,

and $s1, $s2, $s3

or $s4, $s1, $s2

Está a ocorrer algum hazard ?

Page 5: Microcontroladores e Interfacesalibaba.dei.uminho.pt/~csilva/mint/download/A5.pdf · 3 Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva Revisão Controlo Acontece quando

Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva5

Write-After-Read (WAR)Uma instrução lê um valor de um registo/memória que será posteriormente escrito por uma outra instrução.P. ex.,

Write-After-Write (WAW)Uma instrução escreve um valor num registo/memória que será posteriormente escrito por uma outra instrução.P. ex.,

Hazard de dados

and $s1, $s2, $s3

or $s2, $s4, $s2

Está a ocorrer algum hazard ?

and $s1, $s2, $s3

or $s1, $s4, $s2

Está a ocorrer algum hazard ?

Page 6: Microcontroladores e Interfacesalibaba.dei.uminho.pt/~csilva/mint/download/A5.pdf · 3 Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva Revisão Controlo Acontece quando

Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva6

Read-After-Read (RAR)Uma instrução lê um valor de um registo/memória que será posteriormente lido por uma outra instrução.P. ex.,

Hazard de dados

and $s1, $s2, $s3

or $s5, $s4, $s2

Está a ocorrer algum hazard ?

Page 7: Microcontroladores e Interfacesalibaba.dei.uminho.pt/~csilva/mint/download/A5.pdf · 3 Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva Revisão Controlo Acontece quando

Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva7

Consequências da dependência de dados:Correcção dos dados. Temos que detectar e resolver as dependências.

Eficiência. O stall do pipeline é prejudicial ao desempenho, logo temos que procurar outras técnicas para resolvê-lo.

Técnicas:Unidade de Stall

Register forwarding.

Register interlocking.

Hazard de dados

Page 8: Microcontroladores e Interfacesalibaba.dei.uminho.pt/~csilva/mint/download/A5.pdf · 3 Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva Revisão Controlo Acontece quando

Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva8

Register interlockingNo register file, cada registo terá um bitassociado

Este bit indica se o conteúdo do registo está correcto0: O conteúdo pode ser usado1: Não use o conteúdo do registo.

As instruções ao usar o registo reservam-noExemplo:

A Intel implementa esta técnica no processador Itanium:

É chamado de NaT (Not-a-Thing).Este bit é usado no apoio à execução especulativa do pipeline.

Hazard de dados

Page 9: Microcontroladores e Interfacesalibaba.dei.uminho.pt/~csilva/mint/download/A5.pdf · 3 Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva Revisão Controlo Acontece quando

Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva9

Control HazardDevemos, em cada ciclo, fazer o fetchde uma instrução de modo a manter o pipeline cheio.sub $2, $1, $3

and $12, $2, $5

or $13, $6, $2

add $14, $2, $2

sw $15, 100($2)

throughput máximo

Page 10: Microcontroladores e Interfacesalibaba.dei.uminho.pt/~csilva/mint/download/A5.pdf · 3 Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva Revisão Controlo Acontece quando

Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva10

Control HazardContudo, na estrutura usada, as operações de branch apenas são avaliadas no estágio MEM.

Execução das instrução de branch ocorre no estágio MEM

Page 11: Microcontroladores e Interfacesalibaba.dei.uminho.pt/~csilva/mint/download/A5.pdf · 3 Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva Revisão Controlo Acontece quando

Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva11

Control HazardA este atraso na determinação da condição do salto (branch) chamamos control hazard ou branch hazard.

40

44

48

beq $1, $3, 7

and $12, $2, $5

or $13, $6, $2

52 add $14, $2, $2

72 lw $4, 50($2)

Page 12: Microcontroladores e Interfacesalibaba.dei.uminho.pt/~csilva/mint/download/A5.pdf · 3 Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva Revisão Controlo Acontece quando

Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva12

Control HazardTemos quatro maneiras de resolver o hazard:

Stall do pipeline até a condição ser resolvida.

Redução do atraso do salto.

Predição do salto.

Page 13: Microcontroladores e Interfacesalibaba.dei.uminho.pt/~csilva/mint/download/A5.pdf · 3 Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva Revisão Controlo Acontece quando

Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva13

Na implementação actual, a condição de branch só seráresolvida no estágio de acesso à memória.Se movermos a condição de acesso para mais cedo, então menos instruções serão perdidas no pipeline.

Primeira solução : Reduzir o atraso do salto

Quais elementos do datapath são usados na execução das instruções de branch ?

Page 14: Microcontroladores e Interfacesalibaba.dei.uminho.pt/~csilva/mint/download/A5.pdf · 3 Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva Revisão Controlo Acontece quando

Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva14

Alguns processadores conseguem resolver a condição do salto durante a fase de ID.

Esta solução implica fazer o forwarding dos registos e a detecção de hazards na fase de ID.

Primeira solução : Reduzir o atraso do salto

Como a comparação era feita na ALU que fica no estágio de EX, alguma electrónica terá que ser introduzida para realizar a comparação no estágio ID.

Page 15: Microcontroladores e Interfacesalibaba.dei.uminho.pt/~csilva/mint/download/A5.pdf · 3 Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva Revisão Controlo Acontece quando

Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva15

Problema:Com o aumento das micro-operações executadas durante a fase de decoding, ID, a duração deste estágio aumentará. Qual é a consequência deste aumento ?

Primeira solução : Reduzir o atraso do salto

1. Potencial desequilíbrio das micro-operaçõesexecutadas em cada estágio, ou seja a duração dos estágios tornam-se desequilibradas. Menor rendimento do pipeline.

2. Limite na frequência máxima do processador.

Page 16: Microcontroladores e Interfacesalibaba.dei.uminho.pt/~csilva/mint/download/A5.pdf · 3 Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva Revisão Controlo Acontece quando

Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva16

Delayed branch executionA técnica anterior permitiu reduzir o atraso do salto para um ciclo de relógio.

Primeira solução : Reduzir o atraso do salto

and $s1, $s2, $s3

add $s1, $s2, $s1

beq $s5, $s4, loop

lw $t1, 100($t2)

loop: lw $t1, 100($s1)

Devido a execução da instrução ‘beq’ será feito o stall do pipeline até a condição ser avaliada na fase de decoding.

Se observarmos o código acima, verificamos que a instrução ‘add $s1, $s2, $s1’ será sempre executada.

A técnica de ‘delayed branch execution’ consiste em executar sempre a instrução a seguir ao branch.

Page 17: Microcontroladores e Interfacesalibaba.dei.uminho.pt/~csilva/mint/download/A5.pdf · 3 Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva Revisão Controlo Acontece quando

Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva17

and $s1, $s2, $s3

beq $s5, $s4, loop

add $s1, $s2, $s1

lw $t1, 100($t2)

loop: lw $t1, 100($s1)

A técnica anterior permitiu reduzir o atraso do salto para um ciclo de relógio.

Primeira solução : Reduzir o atraso do salto

A instrução a seguir ao ‘beq’ será sempre executada

Como a instrução a seguir ao branch é sempre executada, o compilador ou o programador tem a responsabilidade de garantir que a instrução a seguir é válida ou é a instrução ‘nop’.

Com a junção desta técnica, o atraso associado à avaliação da condição da instrução de branch foi totalmente eliminado.

delay slot

Page 18: Microcontroladores e Interfacesalibaba.dei.uminho.pt/~csilva/mint/download/A5.pdf · 3 Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva Revisão Controlo Acontece quando

Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva18

Temos três tipos de estratégias de predição:Fixa

Assume-se que o resultado da condição é conhecido (p. ex., falso) e o fetch é feito conforme o pressuposto.Esta técnica é pouco efectiva na execução de loops. Porque ?Ex. Motorolo 68020 e VAX 11/780.

EstáticaO valor da condição depende do tipo de salto.Nos saltos condicionais (if ... then ... else) assume-se que a condição é sempre falsa.Nos loops (for, while, ...) assume-se que a condição é sempre verdadeira.Melhor desempenho que a predição fixa.

Segunda solução : Predição do salto

Page 19: Microcontroladores e Interfacesalibaba.dei.uminho.pt/~csilva/mint/download/A5.pdf · 3 Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva Revisão Controlo Acontece quando

Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva19

DinâmicaNa avaliação da condição é analisado a execução do programa, ou seja o resultado das últimas instruções executadas.

Segunda solução : Predição do salto

Page 20: Microcontroladores e Interfacesalibaba.dei.uminho.pt/~csilva/mint/download/A5.pdf · 3 Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva Revisão Controlo Acontece quando

Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva20

Em vez de assumir que a condição é sempre falsa ou verdadeira, alternativamente consulta-se uma tabela de modo a verificar se, da última vez que a instrução foi executada, a condição era falsa ou verdadeira.Uma implementação desta técnica chama-se branch prediction buffer ou branch history table.

Um buffer de predição de salto é uma memória de pequena dimensão indexada pela parte baixa do endereço da instrução.

A memória tem um bit que indica se um salto foi feito recentemente.

Segunda solução : Predição do salto (dinâmica)

Page 21: Microcontroladores e Interfacesalibaba.dei.uminho.pt/~csilva/mint/download/A5.pdf · 3 Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva Revisão Controlo Acontece quando

Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva21

Segunda solução : Predição do salto (dinâmica)

Page 22: Microcontroladores e Interfacesalibaba.dei.uminho.pt/~csilva/mint/download/A5.pdf · 3 Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva Revisão Controlo Acontece quando

Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva22

Exemplo:

Considere um loop implementado com um salto condicional. O loop é executado nove vezes. A seguir, a condição de salto falha.

Qual será a percentagem de sucesso da predição do salto, assumindo que o bit de predição permanece no buffer de predição ?

Segunda solução : Predição do salto (dinâmica - 1 bit)

int v= 0;for( int n= 0; n < 10; ++n )

v= v + n;

Page 23: Microcontroladores e Interfacesalibaba.dei.uminho.pt/~csilva/mint/download/A5.pdf · 3 Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva Revisão Controlo Acontece quando

Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva23

Segunda solução : Predição do salto (dinâmica - 1 bit)

Resposta:

019118117116115114113112111100

ResultadoPrediçãoIteração Em execução contínua, a predição irá falhar na primeira e na última iteração do loop.

A predição da última iteração está errada, sendo que este erro é inevitável, uma vez que o estado do bit indica “salto efectuado”, quando na verdade deve falhar.

A predição errada do primeiro bitdeve-se ao seu estado inicial.

Por isso, num loop em que o salto ocorre 90% das vezes a predição foi correcta em 80%dos casos.

Page 24: Microcontroladores e Interfacesalibaba.dei.uminho.pt/~csilva/mint/download/A5.pdf · 3 Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva Revisão Controlo Acontece quando

Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva24

Segunda solução : Predição do salto (dinâmica - 1 bit)

Qual seria o melhoramento se a nossa janela de análise fosse mais larga, ou seja se considerássemos mais do que apenas o último caso ?

Impacto das últimas n instruções de branch sobre o resultado da predição:

Tipo de mistura n Compiler Business Scientific0 64.1 64.4 70.4 1 91.9 95.2 86.6 2 93.3 96.5 90.8 3 93.7 96.6 91.0 4 94.5 96.8 91.8 5 94.7 97.0 92.0

Page 25: Microcontroladores e Interfacesalibaba.dei.uminho.pt/~csilva/mint/download/A5.pdf · 3 Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva Revisão Controlo Acontece quando

Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva25

Segunda solução : Predição do salto (dinâmica - 2 bit)

Page 26: Microcontroladores e Interfacesalibaba.dei.uminho.pt/~csilva/mint/download/A5.pdf · 3 Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva Revisão Controlo Acontece quando

Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva26

Exemplo:Qual será a percentagem de sucesso da predição do salto, assumindo que estamos a usar 2 bits para predição ?

Segunda solução : Predição do salto (dinâmica - 2 bit)

weakly takenstrongly takenstrongly takenstrongly takenstrongly takenstrongly takenstrongly takenstrongly takenstrongly takenstrongly taken

Predição próx.

0strongly taken91strongly taken81strongly taken71strongly taken61strongly taken51strongly taken41strongly taken31strongly taken21strongly taken11weakly taken0

ResultadoPredição actualIteração

Page 27: Microcontroladores e Interfacesalibaba.dei.uminho.pt/~csilva/mint/download/A5.pdf · 3 Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva Revisão Controlo Acontece quando

Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva27

Uma outra forma de hazard de controlo são as excepções. Porque ?Por exemplo, consideremos a seguinte instrução

add $s1, $s2, $s1

Caso os valores dos registos fossem tais que ocorresse um overflow, então precisaríamos de passar o controlo para a rotina de serviço à interrupção.

Todos as latches do pipeline teriam que ser limpas (flush) e não deveríamos permitir que o resultado da operação afectasse a memória ou o file register.

Finalmente, o endereço da instrução teria que ser guardado num registo especial (EPC – Exception Program Counter) para a rotina de serviço à excepção possa saber qual foi a instrução que provocou a excepção.

Control Hazard : Excepções

Page 28: Microcontroladores e Interfacesalibaba.dei.uminho.pt/~csilva/mint/download/A5.pdf · 3 Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva Revisão Controlo Acontece quando

Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva28

Algumas causas possíveis para as excepções são:

Pedido de dispositivo I/O.

Chamada ao sistema operativo pela aplicação.

Usar uma instrução indefinida.

Problema com o hardware (p. ex., falha de um bit da memória).

A existência de várias fontes de excepções levanta o problema de como associar uma excepção a uma determinada instrução, pois várias instruções estarão a ser executadas simultaneamente no pipeline.

Control Hazard: Excepções

Page 29: Microcontroladores e Interfacesalibaba.dei.uminho.pt/~csilva/mint/download/A5.pdf · 3 Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva Revisão Controlo Acontece quando

Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva29

Solução:Prioridade nas excepçõesAssociar diferentes excepções a diferentes estágios do pipeline.

Devido a dificuldade de associar correctamente a excepção à instrução que a gerou, alguns processadores indicam a região onde ocorreu a excepção, deixando para o SO ou o utilizador descobrir a instrução correcta.

Neste caso dizemos que temos uma interrupção ou excepção imprecisa (imprecise interrupt ou imprecise exception)

Control Hazard : Excepções

Page 30: Microcontroladores e Interfacesalibaba.dei.uminho.pt/~csilva/mint/download/A5.pdf · 3 Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva Revisão Controlo Acontece quando

Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva30

Como obter processadores ainda mais rápidos ?

Superpipelining.

Superscalar.

Very Long Instruction Word (VLIW).

Dynamic pipeline scheduling ou dynamic pipelining.

Temas Avançados

Page 31: Microcontroladores e Interfacesalibaba.dei.uminho.pt/~csilva/mint/download/A5.pdf · 3 Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva Revisão Controlo Acontece quando

Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva31

Ao diminuirmos as operações realizadas em cada estágio, iremos diminuir a sua latência, logo épossível aumentar a frequência do relógio.

Exemplo MIPS R4000 – 8 estágios:IF: Primeira fase do fetch da instrução. Iniciação ao acesso à cache.

IS: Segunda fase do fetch da instrução.

RF: Descodificação da instrução e fetch dos registos, verificação dos hazards, detecção do hit da cache de instrução.

Temas Avançados: Superpipelining

Page 32: Microcontroladores e Interfacesalibaba.dei.uminho.pt/~csilva/mint/download/A5.pdf · 3 Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva Revisão Controlo Acontece quando

Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva32

EX: Execução, o que inclui o cálculo do endereço efectivo, operações da ALU, cálculo do destino de um salto condicional e verificação da sua condição.

DF: Primeira fase do acesso à cache de dados.

DS: Segunda fase do acesso à cache de dados.

TC: Verificação do Tag, determinação se houve um hitda cache.

WB: Escrita do resultado da operação no file register. Este estágio é usado apenas pelas instruções de loade de registo-registo.

Temas Avançados: Superpipelining

Page 33: Microcontroladores e Interfacesalibaba.dei.uminho.pt/~csilva/mint/download/A5.pdf · 3 Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva Revisão Controlo Acontece quando

Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva33

Em vez de aumentarmos o número de estágio podemos aumentar o número de unidades funcionais.

Com esta abordagem, passamos a executar várias instruções no mesmo ciclo do relógio.

Neste processadores usamos a métrica IPC (instructions per clock cycle)

Temas Avançados: Superscalar

IF ID EX MEM WB

IF ID EX MEM WB

IF ID EX MEM WB

IF ID EX MEM WB

Page 34: Microcontroladores e Interfacesalibaba.dei.uminho.pt/~csilva/mint/download/A5.pdf · 3 Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva Revisão Controlo Acontece quando

Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva34

Temas Avançados: Superscalar

O projecto em duplo pipeline assume que as instruções têm o mesmo tempo de execução.

Na prática, o tempo de execução das instruções variaDepende do tipo de instrução.

Usa várias unidades de execuçãoLigadas a um único pipeline.

Por ex., duas unidades de inteiros, duas unidades de FP.

A este tipo de projecto chamamos de Superscalar.

Page 35: Microcontroladores e Interfacesalibaba.dei.uminho.pt/~csilva/mint/download/A5.pdf · 3 Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva Revisão Controlo Acontece quando

Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva35

Na implementação com escalonamento dinâmico das instruções, novas instruções são executadas enquanto o stall é resolvido.

Devido a diferença na latência das instruções e devido ao stall ou a sua complexidade (FP), as instruções serão executadas fora de ordem.

Na implementação superscalar do pipeline teremos problemas acrescidos de hazard de dados devido a dependência das instruções.

Estes hazards podem ser resolvidos:pelo compiladorpor hardware especial que irá fazer o scheduling das instruções.

Temas Avançados: Dynamic Pipelining Scheduling

Page 36: Microcontroladores e Interfacesalibaba.dei.uminho.pt/~csilva/mint/download/A5.pdf · 3 Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva Revisão Controlo Acontece quando

Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva36

De modo a garantir interrupções precisas, o estágio a seguir a execução da instrução terá que restabelecer a ordem das instruções e verificar a ocorrência de excepções.

A um sistema que implemente execução fora de ordem e predição dinâmica dos saltos, nós classificamo-lo como um processador que faz aexecução especulativa do programa (speculative execution)

Temas Avançados: Dynamic Pipelining Scheduling

Page 37: Microcontroladores e Interfacesalibaba.dei.uminho.pt/~csilva/mint/download/A5.pdf · 3 Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva Revisão Controlo Acontece quando

Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva37

Exemplo: Pentium 4

Page 38: Microcontroladores e Interfacesalibaba.dei.uminho.pt/~csilva/mint/download/A5.pdf · 3 Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva Revisão Controlo Acontece quando

Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva38

Conclusão

Page 39: Microcontroladores e Interfacesalibaba.dei.uminho.pt/~csilva/mint/download/A5.pdf · 3 Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva Revisão Controlo Acontece quando

Microcontroladores e Interfaces 2005/2006 – Carlos A. Silva39

Conclusão