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

SuperEscalar

Embed Size (px)

Citation preview

5/10/2018 SuperEscalar - slidepdf.com

http://slidepdf.com/reader/full/superescalar 1/25

Arquitetura de Computadores

- Processadores Superescalares

porHelcio Wagner da Silva

5/10/2018 SuperEscalar - slidepdf.com

http://slidepdf.com/reader/full/superescalar 2/25

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 é o

Superpipeline

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

5/10/2018 SuperEscalar - slidepdf.com

http://slidepdf.com/reader/full/superescalar 3/25

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

BuscaEscrita

Escrita

Execução

Execução

Decodificação

Decodificação

Busca

Busca

0 1 2 3 4 5 6 7 8 9

   I   n   s   t

   r   u   ç   õ   e   s

   s   u   c   e   s   s   i   v   a   s

Máquina comsuperpipeline

Máquina-base

5/10/2018 SuperEscalar - slidepdf.com

http://slidepdf.com/reader/full/superescalar 4/25

4

Conceito de Superescalar

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

paralelos

Banco de registradores

inteiros

Banco de registradores

de ponto flutuante

Memória

Unidadesfuncionais

organizadascom pipeline

5/10/2018 SuperEscalar - slidepdf.com

http://slidepdf.com/reader/full/superescalar 5/25

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

BuscaEscrita

Escrita

Execução

Execução

Decodificação

Decodificação

Busca

Busca

0 1 2 3 4 5 6 7 8 9

   I   n   s   t

   r   u   ç   õ   e   s

   s   u   c   e   s   s   i   v   a   s

Máquina superescalar

Máquina-base

5/10/2018 SuperEscalar - slidepdf.com

http://slidepdf.com/reader/full/superescalar 6/25

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 usada

uma combinação de otimização baseada emcompilador e técnicas de hardware

5/10/2018 SuperEscalar - slidepdf.com

http://slidepdf.com/reader/full/superescalar 7/25

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

5/10/2018 SuperEscalar - slidepdf.com

http://slidepdf.com/reader/full/superescalar 8/25

8

Dependência de Dados Verdadeira

• Exemplo:

add r1, r2 ;carregar registrador

r1 com a soma dosconteú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

5/10/2018 SuperEscalar - slidepdf.com

http://slidepdf.com/reader/full/superescalar 9/25

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 2sem dependência de dados

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

i0

i1

i0

i1

i0

i1

5/10/2018 SuperEscalar - slidepdf.com

http://slidepdf.com/reader/full/superescalar 10/25

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 oconteú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 valorda memória para um registrador

5/10/2018 SuperEscalar - slidepdf.com

http://slidepdf.com/reader/full/superescalar 11/25

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 de

desvio

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 2com dependência de desvio

i0

i1(desvio)

i2i3 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

5/10/2018 SuperEscalar - slidepdf.com

http://slidepdf.com/reader/full/superescalar 12/25

12

Conflito de Recurso

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

recurso• Exemplos de recursos:

 – Caches

 – Barramentos

 – Registradores

 – Unidades funcionais• O somador da ULA, por exemplo

5/10/2018 SuperEscalar - slidepdf.com

http://slidepdf.com/reader/full/superescalar 13/25

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çãoDecodificação

Decodificação

Busca

Busca

0 1 2 3 4 5 6 7 8 9

Conflito de recursos

(i0 e i1 usam a mesmaUnidade funcional)

i0i1

5/10/2018 SuperEscalar - slidepdf.com

http://slidepdf.com/reader/full/superescalar 14/25

Paralelismo no Nível de Instruções e

Paralelismo de Máquina• Há paralelismo no nível de instruções

quando as instruções de uma seqüência

sã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, R2Store [R4] ← R0

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

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

5/10/2018 SuperEscalar - slidepdf.com

http://slidepdf.com/reader/full/superescalar 15/25

Paralelismo no Nível de Instruções e

Paralelismo de Máquina• O paralelismo de máquina é determinado

pelo número de instruções que podem ser

buscadas e executadas ao mesmo tempo(número de pipelines paralelos) e pelaeficácia dos mecanismos usados para

identificar instruções independentes• É uma medida da capacidade do µP em

aproveitar o paralelismo no nível de

instruções15

5/10/2018 SuperEscalar - slidepdf.com

http://slidepdf.com/reader/full/superescalar 16/25

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 de

ordem

• 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

5/10/2018 SuperEscalar - slidepdf.com

http://slidepdf.com/reader/full/superescalar 17/25

Iniciação em Ordem com

Terminação em Ordem

17

ExecuçãoUF1 UF2 UF3

DecodificaçãoDI1 DI2

EscritaWB1 WB2 Ciclo

12

3456

78

• 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 I4I3 I1 I2I4

I4I5 I6

I6 I5 I3 I4

I6I5 I6

5/10/2018 SuperEscalar - slidepdf.com

http://slidepdf.com/reader/full/superescalar 18/25

Iniciação em Ordem com

Terminação Fora de Ordem

18

Ciclo

12

3456

78

I1 I2

I1 I2I3 I4

I1I4I4 I1 I3I6

I6 I5

I5

I4

I6

I6

I2I3I5

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

5/10/2018 SuperEscalar - slidepdf.com

http://slidepdf.com/reader/full/superescalar 19/25

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 valores

de saída produzidos estejam corretos 19

I1: R3 ← R3 op R5I2: R4 ← R3 + 1

I3: R3 ← R5 + 1

I4: R7 ← R3 op R4

Dependênciade Dados

Dependênciade Dados

Dependênciade Saída

5/10/2018 SuperEscalar - slidepdf.com

http://slidepdf.com/reader/full/superescalar 20/25

Iniciação Fora de Ordem com

Terminação Fora de Ordem• Com a iniciação em ordem, o µP decodifica

instruções apenas até o ponto em que ocorre

uma dependência ou conflito• Nenhuma instrução adicional é decodificada até

que o conflito seja resolvido

• Assim, o µP não pode examinar instruções

adiante do ponto de conflito, para tentarencontrar instruções independentes que possamser introduzidas no pipeline

20

5/10/2018 SuperEscalar - slidepdf.com

http://slidepdf.com/reader/full/superescalar 21/25

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 de

decodificação e execução do pipeline• Isso é feito usando uma área de armazenamento

temporário, chamada janela de instruções

• Depois que o µP termina a decodificação de uma

instrução, ela é colocada na janela de instruções

• O µP pode continuar a busca e decodificação denovas instruções, desde que a janela de

instruções não esteja cheia 21

5/10/2018 SuperEscalar - slidepdf.com

http://slidepdf.com/reader/full/superescalar 22/25

Iniciação Fora de Ordem com

Terminação Fora de Ordem• Quando uma unidade funcional de execução se

torna disponível, uma instrução presente na janela

pode 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

5/10/2018 SuperEscalar - slidepdf.com

http://slidepdf.com/reader/full/superescalar 23/25

Iniciação Fora de Ordem com

Terminação Fora de Ordem

23

Ciclo

12

3456

78

I1 I2

I1 I2I3 I4

I1I4 I1

I6

I5

I5

I4

I6

I6

I2I3I5

I1,I2

I3,I4I4,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

5/10/2018 SuperEscalar - slidepdf.com

http://slidepdf.com/reader/full/superescalar 24/25

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, que

constitui um operando para a instrução I2• A antidependência é semelhante a uma dependência de

dados 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 + 1

I3: R3 ← R5 + 1

I4: R7 ← R3 op R4

Antidependência

Dependênciade Dados

Dependência

de Dados

5/10/2018 SuperEscalar - slidepdf.com

http://slidepdf.com/reader/full/superescalar 25/25

Renomeação de Registradores

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

25

I1: R3b

← R3a

op R5aI2: R4b ← R3b + 1

I3: 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