Superescalaridade

1.341 visualizações

Publicada em

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
1.341
No SlideShare
0
A partir de incorporações
0
Número de incorporações
1
Ações
Compartilhamentos
0
Downloads
43
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Superescalaridade

  1. 1. UNIVERSIDADE FEDERAL DE PELOTAS INSTITUTO DE FÍSICA E MATEMÁTICA DEPARTAMENTO DE INFORMÁTICABACHARELADO EM CIÊNCIA DA COMPUTAÇÃO SUPERESCALARIDADE Anderson Chollet Bruno Machado Jerônimo Medina Madruga Mateus Vilar dos Santos Trabalho de pesquisa apresentado na disciplina de Arquitetura e Organização de Computadores II do Curso de Bacharelado em Ciência da Computação, Instituto de Física e Matemática, Universidade Federal de Pelotas. Professor: Prof. José Luís Almada Güntzel, Dr. 2007
  2. 2. 2 Lista de FigurasFigura 1 - Estrutura de uma arquitetura superescalar genérica .............................6Figura 2 - Efeito das dependências no desempenho de uma arquiteturasuperescalar ................................................................................................................8Figura 3 - Diagrama do Pentium 4 .......................................................................10
  3. 3. 3 SumárioApresentação .........................................................................................................41. Introdução .........................................................................................................52. Limitações da superescalaridade .....................................................................73. Processadores Superescalares.........................................................................94. Execução fora de ordem..................................................................................11Referências ......................................................................................................... 12
  4. 4. 4 Apresentação O objetivo deste trabalho é apresentar conceitos sobre superescalaridade,abrangendo desde suas características até processadores que utilizam essaarquitetura e por fim mostrar um estudo mais aprofundado sobre a execução fora deordem.
  5. 5. 51 Introdução Arquiteturas superescalares são arquiteturas que se utilizam do ILP(paralelismo a nível de instrução) e do paralelismo de máquina para possibilitar aleitura, decodificação e execução de mais de uma instrução por ciclo de clock. Agrande vantagem das arquiteturas superescalares é que seu IPC (instruções porciclo de clock) é superior a um, ocasionando na maioria dos casos em umdesempenho elevado em comparação com as outras arquiteturas. Mas para queseja possível esse aumento no desempenho é necessário à utilização de diversoscomponentes especiais, que constituem essa arquitetura e que serão analisadosnesse momento: • Um dos primeiros componentes diferenciais desta arquitetura é seu sistema de busca de instruções, pois visto que existem múltiplas unidades de execução, o sistema de busca deverá ser capaz de prover múltiplas instruções para conseguir usufruir ao máximo da capacidade de execução em paralelo. O sistema de busca também pode ou não contar com uma lógica de execução especulativa, para buscar as prováveis instruções a serem executadas após uma instrução de desvio. • Outro componente importante é a unidade de decodificação, que devera ter a capacidade de buscar diversos operandos por ciclo de clock, de acordo com o número de operandos máximos de uma instrução realizada pela arquitetura em questão e pelo número de unidades funcionais presentes. • Para resolver problemas de dependências diretas, também está presente nesta arquitetura uma janela de instruções, que é um buffer que guarda as instruções a serem executadas enquanto seus operandos não estão prontos devido a ocorrências dessas dependências, sendo que essa janela localiza-se entre os estágios de decodificação e execução. • Para garantir o paralelismo na execução das instruções, como já citado anteriormente, é necessário múltiplas unidades de execução pipeline, possibilitando assim que as diversas instruções despachadas tenham uma unidade de execução para cada uma delas. Podemos ver alguns desses componentes na figura abaixo que representa umaestrutura de uma arquitetura escalar genérica:
  6. 6. 6Figura 1 – Estrutura de uma arquitetura escalar genérica Fonte: SHEN 2004
  7. 7. 72 Limitações da superescalaridade Apesar do evidente ganho em desempenho provido por uma arquiteturasuperescalar, essa arquitetura também tem suas limitações. Elas são provenientesde alguns problemas clássicos da execução de instruções em pipelines, outrossurgem dos modelos superescalares que suportam execução fora de ordem ealguns são relativos a particularidades de certas arquiteturas. Dentre essaslimitações podemos destacar as seguintes: Conflito por recursos: ocorre quando duas ou mais instruções concorrem pelomesmo recurso ao mesmo tempo, como acesso a uma unidade funcional. Para asolução desse problema se propõe o aumento de unidades funcionais em muitoscasos. Dependência procedimental: causada quando a presença de instruções dedesvio ou instruções de tamanho variável. No caso das instruções de desvio, não sepode executar instruções posteriores a um desvio ao mesmo tempo que se executainstruções anteriores ao desvio, e no caso de instruções de tamanho variável, énecessário decodificar toda a instrução para descobrir o número de buscasnecessária para a realização da mesma, evitando assim buscas simultâneas. Dependência de dados: ocorre quando um dado a ser utilizado em umainstrução está sendo alterado pela instrução anterior ao mesmo, fazendo com queessa instrução só possa ser executada quando a anterior já tiver terminado. Antidependência: Ocorre quando uma instrução altera um dado que estasendo usado em uma instrução anterior a ela. Para evitar que o dado seja alteradoantes do término da instrução anterior, a instrução em questão só poderá serexecutada após o término da anterior. Dependência de saída: ocorre quando duas instruções alteram o mesmodado, e com isso dependendo da ordem em que são executadas, pode ocasionaruma alteração não planejada no mesmo. Esse tipo de problema poderá ocorrersomente em sistemas onde a ordem das instruções pode ser revertida, que é o casode execução fora de ordem que será abordado futuramente. Todas essas limitações acabam por ocasionar atrasos na execução dasinstruções, e isso pode ser exemplificado pelo gráfico mostrado a seguir:
  8. 8. 8Figura 2 – Efeito das dependências no desempenho de uma arquitetura superescalar Fonte: STALLINGS 2002
  9. 9. 93 Processadores Superescalares O primeiro computador a ter características superescalares foi osupercomputador CDC 6600, desenvolvido por Seymor Cray e tendo suas primeirasunidades funcionais em 1964. Devido ao avanço da tecnologia RISC, que possibilitava a utilização deinstruções simples e a inclusão de diversas unidades funcionais facilmente para osprojetos da época, a superescalaridade chegou aos microprocessadores comerciaisde um único chip finalmente em meados da década de 90, com o i960 da Intel (em1988) e o 29050 da AMD. A partir disso começou a se implementar esse tipo de arquitetura em grandeparte dos projetos desenvolvidos na época, como a arquitetura p6 da Intel,arquitetura na qual são baseados os processadores pentium pro e pentium II, queutilizava instruções CISC que eram executadas sobre uma micro-arquiteturasuperescalar RISC. Já a arquitetura PowerPC, teve desde seu primeiro representante ascaracterísticas superescalares embutidas no projeto, visto que esse primeiroprocessador , o PowerPC 601, era baseado na arquitetura RS/6000, que tambémera superescalar. Durante essa evolução de processadores superescalares, houve inúmerostipos de projetos diferentes, mas podemos classificá-los em três grandes categoriasrelacionadas à sua complexidade quanto ao despacho e a execução de instruções: • Superescalar Estático: Esses processadores despacham e executam as instruções na ordem doprograma. • Superescalar Dinâmico: Essas máquinas permitem a execução fora de ordem, mas geralmentedespacham as instruções na ordem do programa. • Superescalar Dinâmico com execução especulativa: Similares ao anterior, mas com a habilidade de prever as instruções queprovavelmente serão executadas após uma instrução e desvio. Como exemplo de uma arquitetura superescalar atual, ilustramos aqui o
  10. 10. 10diagrama do Pentium 4 da Intel: Figura 3 – Diagrama do Pentium 4 Fonte: STALLINGS 2002
  11. 11. 114 Execução fora de ordem Uma das questões que pode tornar extremamente complexa a implementaçãode uma arquitetura superescalar é a possibilidade de haver execução fora de ordem,ou seja, se as instruções poderão ser executadas fora da ordem prevista peloprograma. Esse recurso permite que casos onde existiriam conflitos de dados ouproblemas parecidos sejam contornados seja por técnicas de software ou hardware,e assim aumenta o desempenho da arquitetura em questão, visto que os atrasosdecorrentes desses problemas diminuirão consideravelmente, além de tambémpermitir técnicas mais avançadas de predição de desvio. O grande problema ocasionado pela execução fora de ordem é ainconsistência de dados, ou seja, dados serem alterados de uma forma não previstapelo programa, devido a alterações na ordenação das instruções a seremexecutadas. Com isso, é exigido um sistema mais complexo ainda para verificaçãode dependências nas instruções a serem executadas, como as técnicas derenomeação de registradores, buffer de reordenamento e a janela de instruções,para assegura que não haverá prejuízos relativos a execução não-ordenada docódigo.
  12. 12. 12 ReferênciasSUPERSCALAR. Disponível em:<http://en.wikipedia.org/wiki/Superscalar> Acessado em 10 fev. 2007, 14:20:00.PATTERSON, David A.; HENNESSY, John. Organização e Projeto deComputadores: A Interface Hardware/Software. 3ª Edição. Rio de Janeiro:Elsevier, 2005.SUPERSCALAR PROCESSORS. Disponível em:<http://www.cs.swan.ac.uk/~csneal/HPM/superscalar.html> Acessado em 9 fev.2007, 18:33:00.SHEN, Jonh P. Modern Processors Design: Fundamentals of SuperscalarProcessors (Electrical and Computer Engineering). 1ª Edição, McGraw-Hill, NovaYork, 2004STALLINGS, William. Computer Organization and Architecture – Design forPerformance. 6ª Edição. Nova Jersey: Prentice Hall, 2002.ARQUITETURAS SUPERESCALARES. Disponível em:<http://equipe.nce.ufrj.br/gabriel/arqcomp2/Superscalar.pdf> Acessado em 9 fev.2007, 17:50:00.PATTERSON, David A.; HENNESSY, John, Computer Architecture: AQuantitative Approach. 3ª Edição, Morgan Kaufmann, Nova York, 2003

×