A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Arquitetura de computadores

Apresentações semelhantes


Apresentação em tema: "Arquitetura de computadores"— Transcrição da apresentação:

1 Arquitetura de computadores
Prof. Edivaldo Serafim Curso: Tecnólogo em Análise e Desenvolvimento de Sistemas IFSP – Campus Capivari

2 Paralelismo no nível de instruções e processadores superescalares
12/06/2013

3 Tópicos abordados Visão geral: Superescalar x Superpipeline;
Limitações; Questões de projeto: Paralelismo no Nível de Instruções e Paralelismo de Máquina; Políticas de iniciação de instruções: 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. Renomeação de registradores; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

4 Paralelismo no nível de instruções e processadores superescalares
Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013 Visão geral

5 Visão geral Pipeline possibilita que várias instruções posam ser executadas ao mesmo tempo em estágios diferentes; Pipeline não permite que duas instruções usem a mesma unidade ao mesmo tempo; Arquiteturas superescalares incluem todos os aspectos do Pipeline, porém com múltiplas instruções usando as mesmas unidades da CPU; Possuem a habilidade de iniciar múltiplas instruções no mesmo ciclo de clock; Isso é possível incluindo mais de uma linha de Pipeline que utilizam mais de uma unidade funcional. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

6 Visão geral Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

7 Superescalar x Superpipeline
Há três abordagens típicas para melhoria de desempenho: Pipeline básica (visto anteriormente); Superescalar; Superpipeline. Pipeline básica: Apenas uma instrução utilizando a Unidade de Execução a cada ciclo de clock; Superpipeline: Duas instruções utilizando a Unidade de Execução a cada ciclo de clock; Uma na borda de subida e outra na borda de descida; Explora o fato de que muitos estágios de um pipeline requerem um tempo menor que a metade de um ciclo de clock. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

8 Superescalar x Superpipeline
Possibilita a execução de instruções em pipelines paralelos; Pipelines paralelos são possíveis duplicando unidades funcionais; O número de instruções que podem ser executadas em paralelo dependendo do número e tipo das unidades paralelas disponíveis; Utilizam uma combinação de otimização de compiladores e técnicas de hardware para aumentar o nível de paralelismo; Essa técnica tem limitações. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

9 Superescalar x Superpipeline
Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

10 Limitações Os problemas (hazards) na arquitetura superescalar são muito similares aquelas que ocorrem na arquitetura Pipeline; As consequências destes hazards na arquitetura superescalar são mais severas do que em pipelines simples; Isso ocorre devido ao alto potencial de paralelismo, onde o número de instruções perdidas a cada bolha de Pipeline são maiores; As limitações mais importantes: Conflito por Dados, Conflito por recursos e Dependência de Controle: Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

11 Limitações Conflito por Dados:
São produzidos pelas dependências de dados entre instruções no programa. Arquiteturas superescalares possuem uma grande liberdade para organizar o despacho e execução de instruções. Conflito por recursos: Ocorrem se duas ou mais instruções competem pelo mesmo recurso (registrador, memória, I/O) ao mesmo tempo; Arquiteturas superescalares tentam reduzir estes conflitos acrescentando várias unidades funcionais em paralelo. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

12 Limitações Conflito por Controle:
A presença de desvios cria grandes problemas para garantir um paralelismo ótimo; Se as instruções são de tamanho variável, elas não podem ser buscadas e despachadas em paralelo; Técnicas superescalares são mais eficientes para arquiteturas RISC que possuem tamanho e formato de instruções fixo. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

13 Limitações Conflito por Dados:
Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

14 Limitações Conflito por Controle:
Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

15 Limitações Conflito por Recursos:
Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

16 Paralelismo no nível de instruções e processadores superescalares
Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013 Questões de projeto

17 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 sequência são independentes e podem, portanto, serem executadas em paralelo (Pipeline); O paralelismo de máquina é determinado pelo número de instruções que podem ser buscada se executadas ao mesmo tempo (número de pipelines paralelos) e pela eficácia dos mecanismos usados para identificar instruções independentes (Superpipeline e Superescalares); Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

18 Paralelismo no Nível de Instruções e Paralelismo de Máquina
Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

19 Paralelismo no Nível de Instruções e Paralelismo de Máquina
O grau de paralelismo em nível de instrução é determinado pela frequência com que ocorrem hazards; A latência de operação é outro fator de importância no paralelismo de instruções e determina o tempo de uma instrução estar disponível para ser usado como operando em outra instrução; Programas nem sempre podem obter o grau máximo de paralelismo de máquina; Arquitetura RISC ajuda a obter esse grau máximo. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

20 Políticas de Iniciação de Instruções
Para o paralelismo de máquina, não basta ter várias instâncias de pipelines nas unidades funcionais; A CPU deve identificar o paralelismo de instrução para coordenar a busca, decodificação e execução de instruções em paralelo; Issue (ou despacho) é o termo para referenciar o início da execução nas unidades funcionais; Políticas de Iniciação de Instruções é o termo para o protocolo de despacho; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

21 Políticas de Iniciação de Instruções
Analisando a frente do ponto de execução corrente a CPU pode organizar o despacho mais otimizado possível para a execução da Pipeline; Para otimizar o uso dos recursos do Pipeline, a CPU deve alterar a ordem de execução das instruções; Três tipos de ordenação são importantes: Ordenação da busca; Ordenação da execução; Ordenação de atualização de conteúdo de registradores e posição de memória. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

22 Políticas de Iniciação de Instruções
Quanto mais sofisticado o processador, melhor são essas ordenações; Em qualquer que seja a ordenação, o resultado deve ser correto, como se fosse uma execução sequencial; As políticas para máquinas superescalares possuem as categorias: 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; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

23 Iniciação em ordem com terminação em ordem
É a mais elementar das políticas; Quase nunca é usada na prática; As instruções são buscadas na ordem que seriam executadas sequencialmente; Os resultados são escritos na ordem que seriam escritos sequencialmente; Com a iniciação em ordem, o processador decodifica instruções apenas até o ponto em que ocorre uma dependência ou conflito (hazard); Nenhuma instrução adicional é decodificada até que o hazard seja resolvido. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

24 Iniciação em ordem com terminação em ordem
Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

25 Iniciação em ordem com terminação fora de ordem
Com a terminação fora de ordem pode haver execução da pipeline, até o máximo grau de paralelismo de máquina; Porém a iniciação de instruções é temporariamente interrompida em caso de hazards; Além dos hazards, surge uma nova dependência denominada dependência de saída; Vejamos um exemplo: I1: R3 <- R3 op R5 I2: R4 <- R3 + “1” I3: R3 <- R5 + “1” I4: R7 <- R3 op R4 Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

26 Iniciação em ordem com terminação fora de ordem
Hazard de dados entre i1 e i2; Hazard de dados entre i3 e i4 ; Pela execução fora de ordem poderia ser executada a instrução i3 antes de i1; O que ocorreria? R3 em i4 estaria errado! Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

27 Iniciação em ordem com terminação fora de ordem
Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

28 Iniciação fora de ordem com terminação fora de ordem
Com a iniciação em ordem, a CPU 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, a CPU não pode examinar instruções adiante do ponto de conflito, para tentar encontrar instruções independentes que possam ser introduzidas no Pipeline; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

29 Iniciação fora de ordem com terminação fora de ordem
Para possibilitar a iniciação de instruções fora de ordem, é necessário desvincular os estágios de decodificação e de execução da pipeline. Isso é feito usando uma área de armazenamento temporário, chamada de janela de instruções; A CPU pode continuar a busca e a decodificação novas instruções, desde que a janela de instruções não esteja cheia; Desde que não haja hazards e que haja unidades funcionais disponíveis, as instruções que estão na janela podem ser executadas. O resultado dessa organização é a capacidade de executar instruções à frente. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

30 Iniciação fora de ordem com terminação fora de ordem
Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

31 Iniciação fora de ordem com terminação fora de ordem
Na iniciação fora de ordem com terminação fora de ordem aparece um novo conceito, a Antidependência: A antidependência é semelhante a uma dependência de dados, porém invertida; Ao invés da primeira instrução produzir um valor usado pela segunda instrução, a segunda destrói um valor usado pela primeira; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

32 Iniciação fora de ordem com terminação fora de ordem
Antidependência: A execução de I3 não pode ser completada antes da execução de I2; Isso acontece porque I3 atualiza o registrador R3, que constitui um operando para a instrução I2; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

33 Renomeação de Registradores
Instruções iniciadas em sequência e finalizadas em sequência não competem por registradores; Instruções iniciadas e terminadas fora de sequência não conseguem determinar os valores de cada registrador a cada instante; A competição por registradores causam conflitos que param ou atrasam o Pipeline; O problema é ainda pior quando existe técnicas de otimização de registradores, já que busca maximizar o uso desses registradores; Para resolver esses conflitos pode-se utilizar a técnica de duplicação de recursos; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

34 Renomeação de Registradores
Duplicação de recursos consiste em renomear registradores; Objetiva eliminar ou diminuir a ocorrência de dependências de saída e antidependências; Exemplo: A criação de R3c em i3 evita a ocorrência de antidependência com i2 e dependência de saída com i1; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

35 Paralelismo de máquina
Três técnicas para melhorar o desempenho em processadores superescalares: Duplicação de recursos (maior número de unidades funcionais); Iniciação e terminação de instruções fora de ordem e; Renomeação de registradores. A janela de instrução deve ser grande o suficiente para ir muito a frente da execução. As técnicas devem existir em conjunto; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

36 Execução superescalar
A execução superescalar consiste portanto nos passos: Ter um programa estático como em processadores escalares; Busca de instruções e previsão de desvio; Despacho de instruções; Iniciação da execução; Execução de instruções; Reordenação e confirmação de instruções. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013

37 Execução superescalar
A execução superescalar consiste portanto: Um programa estático como em processadores escalares; Busca de instruções e previsão de desvio; Despacho de instruções; Iniciação da execução; Execução de instruções; Reordenação e confirmação de instruções. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013


Carregar ppt "Arquitetura de computadores"

Apresentações semelhantes


Anúncios Google