Você está na página 1de 12

UNIVERSIDADE FEDERAL DE PELOTAS INSTITUTO DE FSICA E MATEMTICA DEPARTAMENTO DE INFORMTICA BACHARELADO EM CINCIA DA COMPUTAO

SUPERESCALARIDADE

Anderson Chollet Bruno Machado Jernimo Medina Madruga Mateus Vilar dos Santos

Trabalho de pesquisa apresentado na disciplina de Arquitetura e Organizao de Computadores II do Curso de Bacharelado em Cincia da Computao, Instituto de Fsica e Matemtica, Universidade Federal de Pelotas. Professor: Prof. Jos Lus Almada Gntzel, Dr.

2007

Lista de Figuras

Figura 1 Figura 2 -

Estrutura de uma arquitetura superescalar genrica .............................6 Efeito das dependncias no desempenho de uma arquitetura

superescalar ................................................................................................................8 Figura 3 Diagrama do Pentium 4 .......................................................................10

Sumrio

Apresentao .........................................................................................................4 1. Introduo .........................................................................................................5 2. Limitaes da superescalaridade .....................................................................7 3. Processadores Superescalares.........................................................................9 4. Execuo fora de ordem..................................................................................11 Referncias ......................................................................................................... 12

Apresentao

O objetivo deste trabalho apresentar conceitos sobre superescalaridade, abrangendo desde suas caractersticas at processadores que utilizam essa arquitetura e por fim mostrar um estudo mais aprofundado sobre a execuo fora de ordem.

1 Introduo
Arquiteturas superescalares so arquiteturas que se utilizam do ILP (paralelismo a nvel de instruo) e do paralelismo de mquina para possibilitar a leitura, decodificao e execuo de mais de uma instruo por ciclo de clock. A grande vantagem das arquiteturas superescalares que seu IPC (instrues por ciclo de clock) superior a um, ocasionando na maioria dos casos em um desempenho elevado em comparao com as outras arquiteturas. Mas para que seja possvel esse aumento no desempenho necessrio utilizao de diversos componentes especiais, que constituem essa arquitetura e que sero analisados nesse momento: Um dos primeiros componentes diferenciais desta arquitetura seu sistema de busca de instrues, pois visto que existem mltiplas unidades de execuo, o sistema de busca dever ser capaz de prover mltiplas instrues para conseguir usufruir ao mximo da capacidade de execuo em paralelo. O sistema de busca tambm pode ou no contar com uma lgica de execuo especulativa, para buscar as provveis instrues a serem executadas aps uma instruo de desvio. Outro componente importante a unidade de decodificao, que devera ter a capacidade de buscar diversos operandos por ciclo de clock, de acordo com o nmero de operandos mximos de uma instruo realizada pela arquitetura em questo e pelo nmero de unidades funcionais presentes. Para resolver problemas de dependncias diretas, tambm est presente nesta arquitetura uma janela de instrues, que um buffer que guarda as instrues a serem executadas enquanto seus operandos no esto prontos devido a ocorrncias dessas dependncias, sendo que essa janela localiza-se entre os estgios de decodificao e execuo. Para garantir o paralelismo na execuo das instrues, como j citado anteriormente, necessrio mltiplas unidades de execuo pipeline, possibilitando assim que as diversas instrues despachadas tenham uma unidade de execuo para cada uma delas. Podemos ver alguns desses componentes na figura abaixo que representa uma estrutura de uma arquitetura escalar genrica:

Figura 1 Estrutura de uma arquitetura escalar genrica Fonte: SHEN 2004

2 Limitaes da superescalaridade
Apesar do evidente ganho em desempenho provido por uma arquitetura superescalar, essa arquitetura tambm tem suas limitaes. Elas so provenientes de alguns problemas clssicos da execuo de instrues em pipelines, outros surgem dos modelos superescalares que suportam execuo fora de ordem e alguns so relativos a particularidades de certas arquiteturas. Dentre essas limitaes podemos destacar as seguintes: Conflito por recursos: ocorre quando duas ou mais instrues concorrem pelo mesmo recurso ao mesmo tempo, como acesso a uma unidade funcional. Para a soluo desse problema se prope o aumento de unidades funcionais em muitos casos. Dependncia procedimental: causada quando a presena de instrues de desvio ou instrues de tamanho varivel. No caso das instrues de desvio, no se pode executar instrues posteriores a um desvio ao mesmo tempo que se executa instrues anteriores ao desvio, e no caso de instrues de tamanho varivel, necessrio decodificar toda a instruo para descobrir o nmero de buscas necessria para a realizao da mesma, evitando assim buscas simultneas. Dependncia de dados: ocorre quando um dado a ser utilizado em uma instruo est sendo alterado pela instruo anterior ao mesmo, fazendo com que essa instruo s possa ser executada quando a anterior j tiver terminado. Antidependncia: Ocorre quando uma instruo altera um dado que esta sendo usado em uma instruo anterior a ela. Para evitar que o dado seja alterado antes do trmino da instruo anterior, a instruo em questo s poder ser executada aps o trmino da anterior. Dependncia de sada: ocorre quando duas instrues alteram o mesmo dado, e com isso dependendo da ordem em que so executadas, pode ocasionar uma alterao no planejada no mesmo. Esse tipo de problema poder ocorrer somente em sistemas onde a ordem das instrues pode ser revertida, que o caso de execuo fora de ordem que ser abordado futuramente. Todas essas limitaes acabam por ocasionar atrasos na execuo das instrues, e isso pode ser exemplificado pelo grfico mostrado a seguir:

Figura 2 Efeito das dependncias no desempenho de uma arquitetura superescalar Fonte: STALLINGS 2002

3 Processadores Superescalares
O primeiro computador a ter caractersticas superescalares foi o

supercomputador CDC 6600, desenvolvido por Seymor Cray e tendo suas primeiras unidades funcionais em 1964. Devido ao avano da tecnologia RISC, que possibilitava a utilizao de instrues simples e a incluso de diversas unidades funcionais facilmente para os projetos da poca, a superescalaridade chegou aos microprocessadores comerciais de um nico chip finalmente em meados da dcada de 90, com o i960 da Intel (em 1988) e o 29050 da AMD. A partir disso comeou a se implementar esse tipo de arquitetura em grande parte dos projetos desenvolvidos na poca, como a arquitetura p6 da Intel, arquitetura na qual so baseados os processadores pentium pro e pentium II, que utilizava instrues CISC que eram executadas sobre uma micro-arquitetura superescalar RISC. J a arquitetura PowerPC, teve desde seu primeiro representante as caractersticas superescalares embutidas no projeto, visto que esse primeiro processador , o PowerPC 601, era baseado na arquitetura RS/6000, que tambm era superescalar. Durante essa evoluo de processadores superescalares, houve inmeros tipos de projetos diferentes, mas podemos classific-los em trs grandes categorias relacionadas sua complexidade quanto ao despacho e a execuo de instrues: Superescalar Esttico: Esses processadores despacham e executam as instrues na ordem do programa. Superescalar Dinmico: Essas mquinas permitem a execuo fora de ordem, mas geralmente despacham as instrues na ordem do programa. Superescalar Dinmico com execuo especulativa: Similares ao anterior, mas com a habilidade de prever as instrues que provavelmente sero executadas aps uma instruo e desvio. Como exemplo de uma arquitetura superescalar atual, ilustramos aqui o

10

diagrama do Pentium 4 da Intel:

Figura 3 Diagrama do Pentium 4 Fonte: STALLINGS 2002

11

4 Execuo fora de ordem


Uma das questes que pode tornar extremamente complexa a implementao de uma arquitetura superescalar a possibilidade de haver execuo fora de ordem, ou seja, se as instrues podero ser executadas fora da ordem prevista pelo programa. Esse recurso permite que casos onde existiriam conflitos de dados ou problemas parecidos sejam contornados seja por tcnicas de software ou hardware, e assim aumenta o desempenho da arquitetura em questo, visto que os atrasos decorrentes desses problemas diminuiro consideravelmente, alm de tambm permitir tcnicas mais avanadas de predio de desvio. O grande problema ocasionado pela execuo fora de ordem a inconsistncia de dados, ou seja, dados serem alterados de uma forma no prevista pelo programa, devido a alteraes na ordenao das instrues a serem executadas. Com isso, exigido um sistema mais complexo ainda para verificao de dependncias nas instrues a serem executadas, como as tcnicas de renomeao de registradores, buffer de reordenamento e a janela de instrues, para assegura que no haver prejuzos relativos a execuo no-ordenada do cdigo.

12

Referncias
SUPERSCALAR. Disponvel em: <http://en.wikipedia.org/wiki/Superscalar> Acessado em 10 fev. 2007, 14:20:00. PATTERSON, David A.; HENNESSY, John. Organizao e Projeto de Computadores: A Interface Hardware/Software. 3 Edio. Rio de Janeiro: Elsevier, 2005. SUPERSCALAR PROCESSORS. Disponvel 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 Superscalar Processors (Electrical and Computer Engineering). 1 Edio, McGraw-Hill, Nova York, 2004 STALLINGS, William. Computer Organization and Architecture Design for Performance. 6 Edio. Nova Jersey: Prentice Hall, 2002. ARQUITETURAS SUPERESCALARES. Disponvel 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: A Quantitative Approach. 3 Edio, Morgan Kaufmann, Nova York, 2003

Você também pode gostar