Você está na página 1de 25

Arquitetura de Computadores

- Processadores Superescalares
por Helcio Wagner da Silva

Introduo
O Pipeline uma tcnica desenvolvida para a melhoria do desempenho frente execuo seqencial de instrues Uma evoluo natural ao Pipeline o Superpipeline O Superpipeline explora o fato de que muitos estgios de um pipeline requerem um tempo menor que a metade de um ciclo de relgio
2

Conceito de Superpipeline
Busca
Decodificao

Execuo
Decodificao

Escrita

Busca

Execuo
Decodificao

Escrita
Execuo
Decodificao

Mquina-base
Escrita Execuo
Decodificao

Busca

Instrues sucessivas

Busca

Escrita Execuo
Decodificao

Busca

Escrita

Busca
Busca
Decodificao

Execuo

Escrita

Execuo

Escrita Escrita Escrita

Busca

Decodificao

Execuo

Busca

Decodificao

Execuo

Busca

Decodificao

Execuo

Escrita
Escrita Escrita 6

Mquina com superpipeline

Busca

Decodificao

Execuo

Busca 0 1 2 3

Decodificao

Execuo 5

3 9

Conceito de Superescalar
Essncia da abordagem superescalar a execuo de instrues em pipelines paralelos
Banco de registradores inteiros Unidades funcionais organizadas com pipeline Memria
4

Banco de registradores de ponto flutuante

Conceito de Superescalar
Busca
Decodificao

Execuo
Decodificao

Escrita Execuo
Decodificao

Busca

Escrita Execuo
Decodificao

Mquina-base
Escrita

Busca

Instrues sucessivas

Busca

Execuo
Decodificao

Escrita
Execuo
Decodificao

Busca

Escrita Execuo Escrita

Busca Busca
Decodificao

Execuo

Escrita

Busca

Decodificao

Execuo
Decodificao Decodificao

Escrita
Execuo Execuo
Decodificao Decodificao

Busca Busca

Escrita Escrita Execuo Execuo 5 Escrita Escrita 6

Mquina superescalar

Busca Busca 0 1 2 3

59

Conceito de Superescalar
A abordagem superescalar depende da habilidade de executar vrias instrues em paralelo O paralelismo no nvel de instrues diz respeito ao nvel no qual as instrues e um programa podem ser executadas em paralelo Para maximizar esse paralelismo, pode ser usada uma combinao de otimizao baseada em compilador e tcnicas de hardware
6

Limitaes
As seguintes limitaes ao paralelismo no nvel de instrues podem ser listadas
Dependncia de dados verdadeira Dependncia de desvio Conflito de recurso Dependncia de sada Antidependncia
7

Dependncia de Dados Verdadeira


Exemplo:
add r1, r2 ;carregar registrador r1 com a soma dos contedos de r1 e r2 mov r3, r1 ;carregar registrador r3 com contedo de r1 A segunda instruo no pode ser executada at que seja completada a execuo da primeira instruo
8

Dependncia de Dados Verdadeira


i0 i1
Busca
Decodificao

Execuo
Decodificao

Escrita Execuo Escrita

Busca

Mquina-base

i0 i1

Busca Busca

Decodificao Decodificao

Execuo Execuo

Escrita Escrita

Mquina superescalar de grau 2 sem dependncia de dados

i0 i1

Busca Busca

Decodificao Decodificao

Execuo

Escrita Execuo Escrita

Mquina superescalar de grau 2 com dependncia de dados

99

Dependncia de Dados Verdadeira


Situao piora quando dados so carregados a partir da memria, e no de um registrador
load r1, eff ;carregar r1 com o contedo do endereo de memria eff move r3, r1 ;carregar registrador r3 com o contedo de r1 Um P leva dois ou mais ciclos para transferir um valor da memria para um registrador
10

Dependncia de Desvios
Uma instruo seguinte a uma instruo de desvio condicional no pode ser executada at que seja completada a execuo da instruo de desvio
i0 i1(desvio) i2 i3 i4 i5
0 Busca Busca
Decodificao Decodificao

Execuo Execuo

Escrita Escrita Busca Busca


Decodificao Decodificao

Mquina superescalar de grau 2 com dependncia de desvio


Execuo Execuo
Decodificao Decodificao

Escrita Escrita Execuo Execuo Escrita Escrita

Busca Busca

119

Conflito de Recurso
Ocorre quando duas ou mais instrues competem, ao mesmo tempo, por um mesmo recurso Exemplos de recursos:
Caches Barramentos Registradores Unidades funcionais
O somador da ULA, por exemplo
12

Conflito de Recurso
Semelhante, graficamente, dependncia de dados Pode ser eliminada com a duplicao de recursos, entretanto

i0 i1

Busca Busca

Decodificao Decodificao

Execuo

Escrita Execuo Escrita

Conflito de recursos (i0 e i1 usam a mesma Unidade funcional)

139

Paralelismo no Nvel de Instrues e Paralelismo de Mquina


H paralelismo no nvel de instrues quando as instrues de uma seqncia so independentes e podem, portanto, ser executadas em paralelo
Load R1 R2 Add R3 R3, 1 Add R4 R4, R2
Instrues independentes (podem ser executadas em paralelo)

Add R3 R3, 1 Add R4 R3, R2 Store [R4] R0


Instrues no so independentes (no podem ser executadas em paralelo)
14

Paralelismo no Nvel de Instrues e Paralelismo de Mquina


O paralelismo de mquina determinado pelo nmero de instrues que podem ser buscadas e executadas ao mesmo tempo (nmero de pipelines paralelos) e pela eficcia dos mecanismos usados para identificar instrues independentes uma medida da capacidade do P em aproveitar o paralelismo no nvel de instrues 15

Polticas de Iniciao de Instrues


Para otimizar o uso dos recursos do pipeline, o P deve alterar a ordem de execuo das instrues Tipos de polticas usadas
Iniciao em ordem com terminao em ordem Iniciao em ordem com terminao fora de ordem Iniciao fora de ordem com terminao fora de ordem

A nica restrio a de que o resultado da execuo deve ser igual ao resultado que seria obtido com a execuo seqencial 16

Iniciao em Ordem com Terminao em Ordem


Decodificao DI1 DI2 Execuo UF1 UF2 UF3 Escrita WB1 WB2

Ciclo

I1 I3 I3 I5

I2 I4 I4 I4 I6 I6

I1 I1

I2 I3 I4 I5 I6 I1 I3 I5 I2 I4 I6

1 2 3 4 5 6 7 8

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

17

Iniciao em Ordem com Terminao Fora de Ordem


Decodificao DI1 DI2 Execuo UF1 UF2 UF3 Escrita WB1 WB2

Ciclo

I1 I3 I5

I2 I4 I4 I6 I6

I1 I1

I2 I3 I4 I5 I6 I2 I1 I4 I5 I6 I3

1 2 3 4 5 6 7 8

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

18

Dependncia de Sada
Dependncia de Dados Dependncia de Dados

I1: R3 R3 op R5 I2: R4 R3 + 1 I3: R3 R5 + 1 I4: R7 R3 op R4

Dependncia de Sada

Dependncia de Dados Verdadeira entre I1 e I2 bvia O mesmo se aplica a I3 e I4 E qual a relao entre I1 e I3?
Se I3 for completada antes de I1, o valor de R3 usado na execuo de I4 estar errado Portanto, I3 deve ser completada depois de I1 para que os valores 19 de sada produzidos estejam corretos

Iniciao Fora de Ordem com Terminao Fora de Ordem


Com a iniciao em ordem, o P decodifica instrues apenas at o ponto em que ocorre uma dependncia ou conflito Nenhuma instruo adicional decodificada at que o conflito seja resolvido Assim, o P no pode examinar instrues adiante do ponto de conflito, para tentar encontrar instrues independentes que possam ser introduzidas no pipeline
20

Iniciao Fora de Ordem com Terminao Fora de Ordem


Para a execuo de instrues fora de ordem, necessrio desvincular os estgios de decodificao e execuo do pipeline Isso feito usando uma rea de armazenamento temporrio, chamada janela de instrues Depois que o P termina a decodificao de uma instruo, ela colocada na janela de instrues O P pode continuar a busca e decodificao de novas instrues, desde que a janela de instrues no esteja cheia 21

Iniciao Fora de Ordem com Terminao Fora de Ordem


Quando uma unidade funcional de execuo se torna disponvel, uma instruo presente na janela pode ser executada Qualquer instruo pode ser executada, desde que:
Necessite da unidade que est disponvel Nenhum conflito ou dependncia a bloqueie

O resultado que o P pode examinar instrues frente, identificando instrues independentes que podem ser trazidas para o estgio de execuo
22

Iniciao Fora de Ordem com Terminao Fora de Ordem


Decodificao Janela de Instrues DI1 DI2 Execuo UF1 UF2 UF3 Escrita WB1 WB2

Ciclo

I1 I3 I5

I2 I4 I6

I1,I2 I3,I4 I4,I5,I6 I5

I1 I1

I2 I6 I5 I3 I4 I2 I1 I4 I5 I3 I6

1 2 3 4 5 6 7 8

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

23

Antidependncia
Antidependncia

I1: R3 R3 op R5 I2: R4 R3 + 1 I3: R3 R5 + 1 I4: R7 R3 op R4

Dependncia de Dados Dependncia de Dados

A execuo de I3 no pode ser completada antes da execuo de I2 Isso acontece porque I3 atualiza o registrador R3, que constitui um operando para a instruo I2 A antidependncia semelhante a uma dependncia de dados verdadeira, porm invertida
Ao invs de a primeira instruo produzir um valor usado pela segunda instruo, a segunda destri um valor usado pela primeira 24

Renomeao de Registradores
Objetiva eliminar/diminuir a ocorrncia de dependncias de sada e antidependncias

I1: R3b R3a op R5a I2: R4b R3b + 1 I3: R3c R5a + 1 I4: R7b R3c op R4b
Objetiva eliminar/diminuir a ocorrncia de dependncias de sada e antidependncias Criao de R3c em I3 evita a ocorrncia de antidependncia com I2 e dependncia de sada com I1
25

Você também pode gostar