51
+ Paralelismo em nível de instruções e processadores superescalares

Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

  • Upload
    others

  • View
    30

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

+

Paralelismo em nível de

instruções e

processadores

superescalares

Page 2: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

Superescalar

Termo criado em 1987

Refere-se a uma máquinaprojetada para melhorar o desempenho da execução

de instruções escalares

Na maioria das aplicaçõesa maior parte das

operações é de grandezasescalares

Representa o próximopasso na evolução do

desempenho de processadores de

propósito geral

A essência da abordagemé a habilidade de

executar instruçõesindependentemente e concorrentemente emdiferentes pipelines

O conceito pode seraprofundado permitindo

que instruções sejamexecutadas em uma

sequência diferente da ordem do programa

Page 3: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

Organização escalar e superescalar

comparação

Page 4: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

Organização escalar e superescalar

comparação

Page 5: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

Melhorias de desempenho das máquinas

superescalares

Page 6: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

+

Comparação

entre

superpipeline

e

superescalar

Page 7: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

+Limitações

◼ Paralelismo no nível de instrução

◼ Refere-se ao nível no qual as instruções de um

programa podem ser executadas em paralelo

◼ Uma combinação de otimização baseada em

compilador e técnicas de hardware que podem ser

usadas para maximizar o paralelismo em nível de

instrução

Page 8: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

+Limitações

◼ Dependência de dados verdadeira

◼ Dependência procedural

◼ Conflito de recursos

◼ Dependência de saída

◼ Antidependência

Page 9: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

+

Efeitos das dependências

Page 10: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

+Questões de projeto

◼ Paralelismo em nível de instrução

◼ Instruções em uma sequência são independents

◼ Podem ser executadas em paralelo por

sobreposição

◼ Determinada por dependência de dados e

procedural

◼ Sequência da esquerda apresenta paralelismo

Paralelismo em nível de instrução e paralelismo de

máquina

Page 11: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

+Questões de projeto

◼ Paralelismo de máquina

◼ Habilidade do processador obter vantagem do

paralelismo em nível de instrução

◼ Determinada pelo número de instruções que

podem ser executadas ao mesmo tempo (número

de pipelines paralelos)

Paralelismo em nível de instrução e paralelismo de

máquina

Page 12: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

+Política de emissão de instruções

◼ Emissão de instrução

◼ Refere-se ao processo da iniciação da execução da

instrução em unidades funcionais do processador

◼ Política de emissão de instrução

◼ Refere-se ao protocolo usado para emitir instruções

◼ A emissão de instrução ocorre quando a instrução do

estágio de decodificação para o primeiro estágio de

execução do pipeline

Page 13: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

+Política de conclusão de instruções

◼ Conclusão de instrução

◼ Refere-se ao processo da finalização da instrução;

◼ Política de conclusão de instrução

◼ Refere-se ao protocolo usado para concluir a instrução;

◼ A conclusão da instrução ocorre quando a instrução

passa do ultimo estágio de execução para o estágio de

escrita em memória ou registradores.

Page 14: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

+Política de execução de instruções

◼ Três tipos de ordem são importantes:

◼ Busca de instrução

◼ Execução da instrução

◼ Ordem na qual a instrução atualiza o conteúdo da

memória e registradores

◼ Políticas de emissão de instrução superescalares

podem ser agrupadas na categorias seguintes:

◼ Emissão em ordem com conclusão em-ordem

◼ Emissão em-ordem com conclusão fora-de-ordem

◼ Emissão fora-de-ordem com conclusão fora-de-

ordem

Page 15: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

+Política de execução de instruções

◼ Razão para emissão em ordem:

◼ Facilidade para unidade de decodificação identificar

conflitos de dados, pois sabe quais são todos

registradores e/ou memória estão sendo utilizados

pelas instruções anteriores;

◼ Razão para conclusão em ordem:

◼ Ocorrência de interrupção pode ser tratada sem

dificuldade, pois no momento da interrupção ou

exceção a última instrução que terminou o fez antes de

todas que vinham antes dela;

◼ Registradores e memória ficam consistentes e seu

conteúdo é mais facilmente recuperável quando da

volta da interrupção.

Page 16: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

+ Exemplo de execução com tabela

de registradores (placar)◼ Oito registradores (R0 até R7);

◼ Todas as instruções usam 3 operandos: dois para leiturae um para escrita;

◼ Tão logo a decodificação finaliza, a execução começa:

◼ Se houver conflito, a decoficação não finaliza e deveesperar pela solução do conflito;

◼ Necessário conhecer apenas os registradores usadospelas instruções anteriores;

◼ Adição consome um ciclo e multiplicação dois:

◼ Unidade de decodificação pode emitir até duasinstruções por ciclo de relógio.

Page 17: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

+ Placar de estado para emissão e

conclusão em ordem (scoreboard)

Page 18: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

+ Placar de estado para emissão e

conclusão em ordem (scoreboard)

Page 19: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

+ Placar de estado para emissão e

conclusão fora de ordem

(scoreboard)

Page 20: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

+ Placar de estado para emissão e

conclusão for a de ordem

(scoreboard)

Page 21: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

+Política de execução de instruções – outro

exemplo

◼ Características

◼ I1 requer dois ciclos para executar

◼ I3 e I4 tem conflito pela mesma unidade funcional

◼ I5 depende de valor produzido por I4

◼ I5 e I6 tem conflito por uma unidade functional

◼ Instruções são buscadas em pares e devem esperar

até o par de instruções passarem para o estágio de

decodificação

Page 22: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

+

Emissão em ordem

e conclusão em

ordem

◼ Para garantir conclusão emordem

◼ quando existe conflito porunidades funcionais ou

◼ quando requer dois ciclos naunidade funcional

◼ a emissão de instrução pára

Page 23: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

+Emissão em ordem

e conclusão fora

de ordem

Page 24: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

+

◼ Emissão em ordem e conclusão

fora de ordem pode criar

dependência de saída

◼ No exemplo, I3 poderia concluir

antes de I1

◼ I4 seria inconsistente;

Emissão em ordem

e conclusão fora

de ordem

Page 25: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

+Emissão e

conclusão fora de

ordem

Page 26: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

Organização para emissão fora-de-

ordem e conclusão fora-de-ordem

Page 27: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

Organização para emissão fora-de-

ordem e conclusão fora-de-ordem

Page 28: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

Renomeação de registradores

Dependência de saída surgem porque osvalores nos registradores podem nãorefletir mais a sequência de valoresdefinida pelo fluxo do programa

Podem resultar em retardamento/parade de estágio do pipeline

Solução: alocação dinâmica de registradores

Page 29: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

Renomeação de registradores

Page 30: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

Aceleração de várias organizações

de máquinas sem dependências

procedurais

Page 31: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

+Predição de desvio

◼ Qualquer máquina de alto desempenho com pipeline

deve abordar a questão dos desvios

◼ Processadores Intel tratam o problema obtendo a

próxima instrução sequencial após o desvio e

buscando de forma especulativa a instrução alvo do

desvio

◼ Explorar estratégia de desvio atrasado

◼ Processador sempre executa a instrução simples que

imediatamente segue o desvio

◼ Mantém o pipeline cheio enquanto o processador

obtem o novo fluxo de instrução

Page 32: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

+Predição de desvio

◼ Máquinas Superescalares:

◼ Estratégia de desvio atrasado tem menos apelo

◼ Utilizam técnicas de previsão desvio de

processadores pre-RISC

Page 33: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

Ilustração conceitual de

processamento superescalar

Page 34: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

Diagrama de blocos interno de

processamento superscalar

Page 35: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

+Implementação superescalar

◼ Elementos chave:

◼ Estratégias de busca de instrução que obtém

simultanesamente várias instruções

◼ Lógica para determiner dependências verdadeiras

envolvendo valores de registradores e mecanismos

para transferir esses valores para onde eles forem

necessários durante a execução

◼ Mecanismo para iniciar ou emitir múltiplas instruções

em paralelo

Page 36: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

+Implementação superescalar

◼ Elementos chave:

◼ Recursos para execução paralela de múltiplas

instruções, incluindo múltiplas unidades funcionais de

pipeline e hierarquias de memória capazes de

atender simultaneamente várias referências de

memória

◼ Mecanismos para concluir o estado do processo na

ordem correta

Page 37: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

Diagrama

de bloco

do core i7

Page 38: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

Diagrama de bloco do Intel

Page 39: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

Pipeline do Intel

Page 40: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

Branch target buffer e Tranlation

lookaside bufer

Page 41: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

Microop armazenadas no trace

cache (4 bit campo de histórico)

Page 42: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

Formação de traces: 1 a 4 microops

e 5+ em casos extremos

Page 43: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

Inicio da execução fora de ordem

Page 44: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

Buffer de reordenamento para execução

fora de ordem e 128 registradores

disponíveis para renomeação

Page 45: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

Duas filas de microops: uma para

ALU e outra para memória

Page 46: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

Escalonamento

Page 47: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

Despacho seguindo a fila e a

dependência

Page 48: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

Execução, uso dos registradores

renomeados

Page 49: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

Verificação dos resultados

Page 50: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

Checagem de desvio

Page 51: Paralelismo em nível de instruções eprofessor.pucgoias.edu.br/SiteDocente/admin/arquivosUpload/5587/... · Paralelismo em nível de instrução e paralelismo de máquina + Política

Armazenamento do resultado do

desvio