1 / 37

Arquitetura de computadores

Arquitetura de computadores. Prof. Edivaldo Serafim Curso: Tecnólogo em Análise e Desenvolvimento de Sistemas - 2013 IFSP – Campus Capivari. Paralelismo no nível de instruções e processadores superescalares. 12/06/2013. Tópicos abordados. Visão geral: Superescalar x Superpipeline ;

deacon
Download Presentation

Arquitetura de computadores

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Arquitetura de computadores Prof. Edivaldo Serafim Curso: Tecnólogo em Análise e Desenvolvimento de Sistemas - 2013 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 Pipelineque 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 • Superescalar: • 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 superescalarsão muito similares aquelas que ocorrem na arquitetura Pipeline; • As consequências destes hazards na arquitetura superescalarsã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 opR4 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 portantonos 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

More Related