arquitetura de computadores -...

25
Arquitetura de Computadores - Processadores Superescalares por Helcio Wagner da Silva

Upload: duongdieu

Post on 25-Sep-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Arquitetura de Computadores - institutosiegen.com.brinstitutosiegen.com.br/documentos/12SuperEscalar.pdf · partir da memória, e não de um registrador load r1, eff;carregar r1 com

Arquitetura de Computadores- Processadores Superescalares

por

Helcio Wagner da Silva

Page 2: Arquitetura de Computadores - institutosiegen.com.brinstitutosiegen.com.br/documentos/12SuperEscalar.pdf · partir da memória, e não de um registrador load r1, eff;carregar r1 com

2

Introdução

• O Pipeline é uma técnica desenvolvida paraa melhoria do desempenho frente àexecução seqüencial de instruções

• Uma evolução natural ao Pipeline é oSuperpipeline

• O Superpipeline explora o fato de quemuitos estágios de um pipeline requeremum tempo menor que a metade de umciclo de relógio

Page 3: Arquitetura de Computadores - institutosiegen.com.brinstitutosiegen.com.br/documentos/12SuperEscalar.pdf · partir da memória, e não de um registrador load r1, eff;carregar r1 com

3

Conceito de Superpipeline

Busca Decodificação Execução Escrita

Busca Decodificação Execução Escrita

Busca Decodificação Execução Escrita

Busca Decodificação Execução Escrita

Busca Decodificação Execução Escrita

Busca Decodificação Execução Escrita

Escrita

Escrita

Execução

Execução

Decodificação

Decodificação

Busca

Busca

Escrita

Escrita

Execução

Execução

Decodificação

Decodificação

Busca

Busca

Escrita

Escrita

Execução

Execução

Decodificação

Decodificação

Busca

Busca

0 1 2 3 4 5 6 7 8 9

Inst

ruçõ

es s

uce

ssiv

as

Máquina com superpipeline

Máquina-base

Page 4: Arquitetura de Computadores - institutosiegen.com.brinstitutosiegen.com.br/documentos/12SuperEscalar.pdf · partir da memória, e não de um registrador load r1, eff;carregar r1 com

4

Conceito de Superescalar

• Essência da abordagem superescalar é aexecução de instruções em pipelinesparalelos

Banco de registradores

inteiros

Banco de registradores

de ponto flutuante

Memória

Unidadesfuncionais

organizadascom pipeline

Page 5: Arquitetura de Computadores - institutosiegen.com.brinstitutosiegen.com.br/documentos/12SuperEscalar.pdf · partir da memória, e não de um registrador load r1, eff;carregar r1 com

5

Conceito de Superescalar

Busca Decodificação Execução Escrita

Busca Decodificação Execução Escrita

Busca Decodificação Execução Escrita

Busca Decodificação Execução Escrita

Busca Decodificação Execução Escrita

Busca Decodificação Execução Escrita

Escrita

Escrita

Execução

Execução

Decodificação

Decodificação

Busca

Busca

Escrita

Escrita

Execução

Execução

Decodificação

Decodificação

Busca

Busca

Escrita

Escrita

Execução

Execução

Decodificação

Decodificação

Busca

Busca

0 1 2 3 4 5 6 7 8 9

Inst

ruçõ

es

suce

ssiv

as

Máquina superescalar

Máquina-base

Page 6: Arquitetura de Computadores - institutosiegen.com.brinstitutosiegen.com.br/documentos/12SuperEscalar.pdf · partir da memória, e não de um registrador load r1, eff;carregar r1 com

6

Conceito de Superescalar

• A abordagem superescalar depende da habilidadede executar várias instruções em paralelo

• O paralelismo no nível de instruções diz respeitoao nível no qual as instruções e um programapodem ser executadas em paralelo

• Para maximizar esse paralelismo, pode ser usadauma combinação de otimização baseada emcompilador e técnicas de hardware

Page 7: Arquitetura de Computadores - institutosiegen.com.brinstitutosiegen.com.br/documentos/12SuperEscalar.pdf · partir da memória, e não de um registrador load r1, eff;carregar r1 com

7

Limitações

• As seguintes limitações ao paralelismo nonível de instruções podem ser listadas

– Dependência de dados verdadeira

– Dependência de desvio

– Conflito de recurso

– Dependência de saída

– Antidependência

Page 8: Arquitetura de Computadores - institutosiegen.com.brinstitutosiegen.com.br/documentos/12SuperEscalar.pdf · partir da memória, e não de um registrador load r1, eff;carregar r1 com

8

Dependência de Dados Verdadeira

• Exemplo:

add r1, r2 ;carregar registrador

r1 com a soma dos

conteúdos de r1 e r2

mov r3, r1 ;carregar registrador

r3 com conteúdo de r1

– A segunda instrução não pode ser executadaaté que seja completada a execução daprimeira instrução

Page 9: Arquitetura de Computadores - institutosiegen.com.brinstitutosiegen.com.br/documentos/12SuperEscalar.pdf · partir da memória, e não de um registrador load r1, eff;carregar r1 com

9

Dependência de Dados Verdadeira

Busca Decodificação Execução Escrita

Busca Decodificação Execução Escrita

Escrita

Escrita

Execução

Execução

Decodificação

Decodificação

Busca

Busca

Escrita

Escrita

Execução

Execução

Decodificação

Decodificação

Busca

Busca

0 1 2 3 4 5 6 7 8 9

Máquina-base

Máquina superescalar de grau 2 sem dependência de dados

Máquina superescalar de grau 2 com dependência de dados

i0

i1

i0

i1

i0

i1

Page 10: Arquitetura de Computadores - institutosiegen.com.brinstitutosiegen.com.br/documentos/12SuperEscalar.pdf · partir da memória, e não de um registrador load r1, eff;carregar r1 com

10

Dependência de Dados Verdadeira

• Situação piora quando dados são carregados apartir da memória, e não de um registrador

load r1, eff ;carregar r1 com o

conteúdo do endereço

de memória eff

move r3, r1 ;carregar registrador r3

com o conteúdo de r1

– Um µP leva dois ou mais ciclos para transferir um valor da memória para um registrador

Page 11: Arquitetura de Computadores - institutosiegen.com.brinstitutosiegen.com.br/documentos/12SuperEscalar.pdf · partir da memória, e não de um registrador load r1, eff;carregar r1 com

11

Dependência de Desvios

• Uma instrução seguinte a uma instrução dedesvio condicional não pode ser executada atéque seja completada a execução da instrução dedesvio

Escrita

Escrita

Execução

Execução

Decodificação

Decodificação

Busca

Busca

0 1 2 3 4 5 6 7 8 9

Máquina superescalar de grau 2 com dependência de desvio

i0

i1(desvio)

i2

i3 Escrita

Escrita

Execução

Execução

Decodificação

Decodificação

Busca

Busca

Escrita

Escrita

Execução

Execução

Decodificação

Decodificação

Busca

Buscai4

i5

Page 12: Arquitetura de Computadores - institutosiegen.com.brinstitutosiegen.com.br/documentos/12SuperEscalar.pdf · partir da memória, e não de um registrador load r1, eff;carregar r1 com

12

Conflito de Recurso

• Ocorre quando duas ou mais instruçõescompetem, ao mesmo tempo, por um mesmorecurso

• Exemplos de recursos:

– Caches

– Barramentos

– Registradores

– Unidades funcionais• O somador da ULA, por exemplo

Page 13: Arquitetura de Computadores - institutosiegen.com.brinstitutosiegen.com.br/documentos/12SuperEscalar.pdf · partir da memória, e não de um registrador load r1, eff;carregar r1 com

13

Conflito de Recurso

• Semelhante, graficamente, à dependência de dados

• Pode ser eliminada com a duplicação de recursos, entretanto

Escrita

Escrita

Execução

Execução

Decodificação

Decodificação

Busca

Busca

0 1 2 3 4 5 6 7 8 9

Conflito de recursos(i0 e i1 usam a mesma

Unidade funcional)

i0

i1

Page 14: Arquitetura de Computadores - institutosiegen.com.brinstitutosiegen.com.br/documentos/12SuperEscalar.pdf · partir da memória, e não de um registrador load r1, eff;carregar r1 com

Paralelismo no Nível de Instruções e Paralelismo de Máquina

• Há paralelismo no nível de instruçõesquando as instruções de uma seqüênciasão independentes e podem, portanto, serexecutadas em paralelo

14

Load R1 ← R2

Add R3 ← R3, “1”

Add R4 ← R4, R2

Add R3 ← R3, “1”

Add R4 ← R3, R2

Store [R4] ← R0

Instruções independentes(podem ser executadas em paralelo)

Instruções não são independentes(não podem ser executadas em paralelo)

Page 15: Arquitetura de Computadores - institutosiegen.com.brinstitutosiegen.com.br/documentos/12SuperEscalar.pdf · partir da memória, e não de um registrador load r1, eff;carregar r1 com

Paralelismo no Nível de Instruções e Paralelismo de Máquina

• O paralelismo de máquina é determinadopelo número de instruções que podem serbuscadas e executadas ao mesmo tempo(número de pipelines paralelos) e pelaeficácia dos mecanismos usados paraidentificar instruções independentes

• É uma medida da capacidade do µP emaproveitar o paralelismo no nível deinstruções 15

Page 16: Arquitetura de Computadores - institutosiegen.com.brinstitutosiegen.com.br/documentos/12SuperEscalar.pdf · partir da memória, e não de um registrador load r1, eff;carregar r1 com

Políticas de Iniciação de Instruções

• Para otimizar o uso dos recursos do pipeline, o µPdeve alterar a ordem de execução das instruções

• Tipos de políticas usadas

– Iniciação em ordem com terminação em ordem

– Iniciação em ordem com terminação fora de ordem

– Iniciação fora de ordem com terminação fora deordem

• A única restrição é a de que o resultado daexecução deve ser igual ao resultado que seriaobtido com a execução seqüencial

16

Page 17: Arquitetura de Computadores - institutosiegen.com.brinstitutosiegen.com.br/documentos/12SuperEscalar.pdf · partir da memória, e não de um registrador load r1, eff;carregar r1 com

Iniciação em Ordem com Terminação em Ordem

17

ExecuçãoUF1 UF2 UF3

DecodificaçãoDI1 DI2

EscritaWB1 WB2 Ciclo

12345678

• I1 requer dois ciclos para ser executada• I3 e I4 competem pela unidade funcional UF3

• I5 depende do valor produzido por I4• I5 e I6 competem pela unidade funcional UF2

I1 I2

I1 I2I3 I4

I1I3 I4

I3 I1 I2I4

I4I5 I6

I6 I5 I3 I4

I6

I5 I6

Page 18: Arquitetura de Computadores - institutosiegen.com.brinstitutosiegen.com.br/documentos/12SuperEscalar.pdf · partir da memória, e não de um registrador load r1, eff;carregar r1 com

Iniciação em Ordem com Terminação Fora de Ordem

18

Ciclo

12345678

I1 I2

I1 I2I3 I4

I1I4

I4 I1 I3I6

I6 I5

I5

I4

I6

I6

I2I3

I5

ExecuçãoUF1 UF2 UF3

DecodificaçãoDI1 DI2

EscritaWB1 WB2

• I1 requer dois ciclos para ser executada• I3 e I4 competem pela unidade funcional UF3

• I5 depende do valor produzido por I4• I5 e I6 competem pela unidade funcional UF2

Page 19: Arquitetura de Computadores - institutosiegen.com.brinstitutosiegen.com.br/documentos/12SuperEscalar.pdf · partir da memória, e não de um registrador load r1, eff;carregar r1 com

Dependência de Saída

• Dependência de Dados Verdadeira entre I1 e I2 é óbvia

• O mesmo se aplica a I3 e I4

• E qual é a relação entre I1 e I3?– Se I3 for completada antes de I1, o valor de R3 usado na execução

de I4 estará errado

– Portanto, I3 deve ser completada depois de I1 para que os valoresde saída produzidos estejam corretos 19

I1: R3 ← R3 op R5I2: R4 ← R3 + 1I3: R3 ← R5 + 1I4: R7 ← R3 op R4

Dependência de Dados

Dependência de Dados

Dependência de Saída

Page 20: Arquitetura de Computadores - institutosiegen.com.brinstitutosiegen.com.br/documentos/12SuperEscalar.pdf · partir da memória, e não de um registrador load r1, eff;carregar r1 com

Iniciação Fora de Ordem com Terminação Fora de Ordem

• Com a iniciação em ordem, o µP decodificainstruções apenas até o ponto em que ocorreuma dependência ou conflito

• Nenhuma instrução adicional é decodificada atéque o conflito seja resolvido

• Assim, o µP não pode examinar instruçõesadiante do ponto de conflito, para tentarencontrar instruções independentes que possamser introduzidas no pipeline

20

Page 21: Arquitetura de Computadores - institutosiegen.com.brinstitutosiegen.com.br/documentos/12SuperEscalar.pdf · partir da memória, e não de um registrador load r1, eff;carregar r1 com

Iniciação Fora de Ordem com Terminação Fora de Ordem

• Para a execução de instruções fora de ordem, énecessário desvincular os estágios dedecodificação e execução do pipeline

• Isso é feito usando uma área de armazenamentotemporário, chamada janela de instruções

• Depois que o µP termina a decodificação de umainstrução, ela é colocada na janela de instruções

• O µP pode continuar a busca e decodificação denovas instruções, desde que a janela deinstruções não esteja cheia 21

Page 22: Arquitetura de Computadores - institutosiegen.com.brinstitutosiegen.com.br/documentos/12SuperEscalar.pdf · partir da memória, e não de um registrador load r1, eff;carregar r1 com

Iniciação Fora de Ordem com Terminação Fora de Ordem

• Quando uma unidade funcional de execução setorna disponível, uma instrução presente na janelapode ser executada

• Qualquer instrução pode ser executada, desde que:

– Necessite da unidade que está disponível

– Nenhum conflito ou dependência a bloqueie

• O resultado é que o µP pode examinar instruções àfrente, identificando instruções independentes quepodem ser trazidas para o estágio de execução

22

Page 23: Arquitetura de Computadores - institutosiegen.com.brinstitutosiegen.com.br/documentos/12SuperEscalar.pdf · partir da memória, e não de um registrador load r1, eff;carregar r1 com

Iniciação Fora de Ordem com Terminação Fora de Ordem

23

Ciclo

12345678

I1 I2

I1 I2I3 I4

I1

I4 I1

I6

I5

I5

I4

I6

I6

I2I3I5

I1,I2

I3,I4

I4,I5,I6 I3

I5

Janela de Instruções

• I1 requer dois ciclos para ser executada• I3 e I4 competem pela unidade funcional UF3

• I5 depende do valor produzido por I4• I5 e I6 competem pela unidade funcional UF2

ExecuçãoUF1 UF2 UF3

DecodificaçãoDI1 DI2

EscritaWB1 WB2

Page 24: Arquitetura de Computadores - institutosiegen.com.brinstitutosiegen.com.br/documentos/12SuperEscalar.pdf · partir da memória, e não de um registrador load r1, eff;carregar r1 com

Antidependência

24

• A execução de I3 não pode ser completada antes daexecução de I2

• Isso acontece porque I3 atualiza o registrador R3, queconstitui um operando para a instrução I2

• A antidependência é semelhante a uma dependência dedados verdadeira, porém invertida– Ao invés de a primeira instrução produzir um valor usado pela

segunda instrução, a segunda destrói um valor usado pela primeira 24

I1: R3 ← R3 op R5I2: R4 ← R3 + 1I3: R3 ← R5 + 1I4: R7 ← R3 op R4

Antidependência

Dependência de Dados

Dependência de Dados

Page 25: Arquitetura de Computadores - institutosiegen.com.brinstitutosiegen.com.br/documentos/12SuperEscalar.pdf · partir da memória, e não de um registrador load r1, eff;carregar r1 com

Renomeação de Registradores

• Objetiva eliminar/diminuir a ocorrência de dependênciasde saída e antidependências

25

I1: R3b ← R3a op R5a

I2: R4b ← R3b + 1I3: R3c ← R5a + 1I4: R7b ← R3c op R4b

• Objetiva eliminar/diminuir a ocorrência de dependências desaída e antidependências

‒ Criação de R3c em I3 evita a ocorrência deantidependência com I2 e dependência de saída com I1