Escolar Documentos
Profissional Documentos
Cultura Documentos
- 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
Busca
Decodificao
Execuo
Busca
Decodificao
Execuo
Busca
Decodificao
Execuo
Escrita
Escrita Escrita 6
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
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
Busca Busca
Decodificao
Execuo
Escrita
Busca
Decodificao
Execuo
Decodificao Decodificao
Escrita
Execuo Execuo
Decodificao Decodificao
Busca Busca
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
Execuo
Decodificao
Busca
Mquina-base
i0 i1
Busca Busca
Decodificao Decodificao
Execuo Execuo
Escrita Escrita
i0 i1
Busca Busca
Decodificao Decodificao
Execuo
99
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
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
139
A nica restrio a de que o resultado da execuo deve ser igual ao resultado que seria obtido com a execuo seqencial 16
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
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
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
O resultado que o P pode examinar instrues frente, identificando instrues independentes que podem ser trazidas para o estgio de execuo
22
Ciclo
I1 I3 I5
I2 I4 I6
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
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