Você está na página 1de 51

Paralelismo em nível de

instruções e
processadores
+

superescalares
Superescalar
Refere-se a uma máquina
projetada para melhorar o
Termo criado em 1987
desempenho da execução
de instruções escalares

Representa o próximo
Na maioria das aplicações
passo na evolução do
a maior parte das
desempenho de
operações é de grandezas
processadores de
escalares
propósito geral

A essência da abordagem O conceito pode ser


é a habilidade de aprofundado permitindo
executar instruções que instruções sejam
independentemente e executadas em uma
concorrentemente em sequência diferente da
diferentes pipelines ordem do programa
Organização escalar e superescalar
comparação
Organização escalar e superescalar
comparação
Melhorias de desempenho das máquinas
superescalares
+

Comparação
entre
superpipeline
e
superescalar
+
Limitações
◼ Paralelismono 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
+
Limitações
◼ Dependência de dados verdadeira

◼ Dependência procedural
◼ Conflito de recursos
◼ Dependência de saída
◼ Antidependência
+

Efeitos das dependências


+
Questões de projeto
Paralelismo em nível de instrução e paralelismo de
máquina
◼ Paralelismoem 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
+
Questões de projeto
Paralelismo em nível de instrução e paralelismo de
máquina

◼ Paralelismode 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)
+
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
+
Política de conclusão de instruções

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

◼ Políticade 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.
+
Política de execução de instruções
◼ Trêstipos 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
+
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.
+ Exemplo de execução com tabela
de registradores (placar)
◼ Oito registradores (R0 até R7);
◼ Todasas instruções usam 3 operandos: dois para leitura
e 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 deve
esperar pela solução do conflito;
◼ Necessário conhecer apenas os registradores usados
pelas instruções anteriores;
◼ Adição consome um ciclo e multiplicação dois:
◼ Unidade de decodificação pode emitir até duas
instruções por ciclo de relógio.
+ Placar de estado para emissão e
conclusão em ordem (scoreboard)
+ Placar de estado para emissão e
conclusão em ordem (scoreboard)
+ Placar de estado para emissão e
conclusão fora de ordem
(scoreboard)
+ Placar de estado para emissão e
conclusão for a de ordem
(scoreboard)
+
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çõessão buscadas em pares e devem esperar


até o par de instruções passarem para o estágio de
decodificação
◼ Paragarantir conclusão em
+ ordem
◼ quando existe conflito por
unidades funcionais ou
Emissão em ordem ◼ quando requer dois ciclos na
e conclusão em unidade funcional
ordem ◼ a emissão de instrução pára
+
Emissão em ordem
e conclusão fora
de ordem
+

Emissão em ordem ◼ Emissão em ordem e conclusão


e conclusão fora fora de ordem pode criar
de ordem dependência de saída

◼ Noexemplo, I3 poderia concluir


antes de I1

◼ I4 seria inconsistente;
+
Emissão e
conclusão fora de
ordem
Organização para emissão fora-de-
ordem e conclusão fora-de-ordem
Organização para emissão fora-de-
ordem e conclusão fora-de-ordem
Renomeação de registradores

Dependência de saída surgem porque os


valores nos registradores podem não
refletir mais a sequência de valores
definida pelo fluxo do programa

Podem resultar em retardamento/parade


de estágio do pipeline

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


registradores
Renomeação de registradores
Aceleração de várias organizações
de máquinas sem dependências
procedurais
+
Predição de desvio

◼ Qualquermá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
+
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
Ilustração conceitual de
processamento superescalar
Diagrama de blocos interno de
processamento superscalar
+
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
+
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
Diagrama
de bloco
do core i7
Diagrama de bloco do Intel
Pipeline do Intel
Branch target buffer e Tranlation
lookaside bufer
Microop armazenadas no trace
cache (4 bit campo de histórico)
Formação de traces: 1 a 4 microops
e 5+ em casos extremos
Inicio da execução fora de ordem
Buffer de reordenamento para execução
fora de ordem e 128 registradores
disponíveis para renomeação
Duas filas de microops: uma para
ALU e outra para memória
Escalonamento
Despacho seguindo a fila e a
dependência
Execução, uso dos registradores
renomeados
Verificação dos resultados
Checagem de desvio
Armazenamento do resultado do
desvio

Você também pode gostar