Upload
leonardo-miranda
View
36
Download
0
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