420 likes | 832 Views
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 ;
E N D
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; • 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
Paralelismo no nível de instruções e processadores superescalares Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013 Visão geral
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
Visão geral Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
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
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
Superescalar x Superpipeline Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
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
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
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
Limitações • Conflito por Dados: Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Limitações • Conflito por Controle: Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Limitações • Conflito por Recursos: Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Paralelismo no nível de instruções e processadores superescalares Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013 Questões de projeto
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
Paralelismo no Nível de Instruções e Paralelismo de Máquina Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
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
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
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
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
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
Iniciação em ordem com terminação em ordem Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
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
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
Iniciação em ordem com terminação fora de ordem Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
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
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
Iniciação fora de ordem com terminação fora de ordem Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
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
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
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
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
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
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
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