Você está na página 1de 29

Organizao e Arquitetura de

Computadores

Captulo 13
Paralelismo no nvel de instrues
O que Superescalar?

As arquiteturas superescalares so aquelas


capazes de buscar, decodificar, executar e
terminar mais de uma instruo por ciclo de
mquina
So organizadas internamente como mltiplos
pipelines, mas que devem trabalhar
cooperativamente para que as dependncias de
dados entre as instrues sejam respeitadas
Superpipelined

Muitos estgios do pipeline necessitam menos


do que a metade de um clock
Clocks internos operando em clock duplicado
permite que duas tarefas sejam feitas para um
ciclo de clock externo
Superscalar permite os estgios de busca e
execuo serem paralelos.
Superscalar vs
Superpipeline
Limitaes
Paralelismo a nvel de instruo
Otimizao a nvel de compilao
Tcnicas de hardware
Limitado pela
1. Dependncia verdadeira de dados
2. Dependncia de desvio
3. Conflito de recursos
4. Dependncia de sada
5. Antidependncia
Dependncia Verdadeira de Dados

Uma instruo utiliza um operando que


produzido p/ uma instruo anterior

ADD r1, r2 (r1 := r1+r2;)


MOVE r3,r1 (r3 := r1;)

Pode-se buscar e decodificar a segunda


instruo em paralelo com a primeira
No pode executar a segunda instruo at que
a primeira tenha terminado
Dependncia Verdadeira de Dados

Uma instruo deve ser atrasada at que todos os dados


sejam produzidos
Dependncia de desvio

No se pode executar instrues depois de um desvio


em paralelo com as instrues antes do desvio
Conflito de recursos

Duas ou mais instrues que necessitam usar o


mesmo recurso ao mesmo tempo
Acesso concorrente memria
Acesso concorrente a um banco de registradores
Uso simultneo de unidades funcionais

Recursos podem ser duplicados


Conflito de recursos
Dependncia de Sada

Ocorre quando duas ou mais instrues esto


escrevendo em um mesmo local

R3:=R3 + R5; (I1)


R3:=R5 + 1; (I2)
R4:=R3 + 1; (I3)

Existe uma dependncia de sada entre I1 e I2


No podem executar em conjunto pois pode
haver inconsistncia no resultado
Antidependncia

Uma instruo usa um operando enquanto a


seguinte est escrevendo no mesmo local
Dependncia de leitura-escrita
R3:=R3 + R5; (I1)
R4:=R3 + 1; (I2)
R3:=R5 + 1; (I3)
R7:=R3 + R4; (I4)
I3 no pode ser completada antes que I2
comece como I2 precisa de um valor em R3 e I3
muda o R3
Necessidades de projeto

Paralelismo a nvel de instruo


Instrues numa seqncia so independentes
A execuo pode ser sobreposta
Dirigido pela dependncia de dados e de
procedimentos
Paralelismo de mquina
Habilidade de tirar vantagem do paralelismo a nvel
de instruo.
Dirigido por um conjunto de pipelines paralelas
Poltica de inicializao de instrues

Processador deve identificar paralelismo e


coordenar a execuo de instrues em paralelo

Ordenao de instrues:
Ordem na qual as instrues so buscadas
Ordem na qual as instrues so executadas
Ordem na qual as instrues atualizam registradores
e memria
Poltica de inicializao de instrues

Processador deve ajustar dependncias e


conflitos

Polticas de inicializao:
Iniciao em ordem, com finalizao em ordem
Iniciao em ordem, com finalizao fora de ordem
Iniciao fora de ordem, com finalizao fora de ordem
Inicializao em ordem
Finalizao em ordem

A emisso de instruo na ordem que elas


ocorrem (sequencial)

No muito eficiente

Pode buscar mais de uma instruo


Inicializao em ordem
Finalizao em ordem
Inicializao em ordem
Finalizao fora de ordem

I2
Inicializao fora de ordem
Finalizao fora de ordem

Desacopla o estgio de decodificao do


pipeline do estgio de execuo
Pode continuar a buscar e decodifica at que o
pipeline fique cheio
Janela de intrues
Quando uma unidade funcional se torna
disponvel, uma instruo pode ser executada
Como as instrues foram decodificadas, o
processador pode examinar instrues frente
Inicializao fora de ordem
Finalizao fora de ordem
Renomeao de registradores

Registradores alocados dinamicamente pelo HW


do processador
Quando um novo valor produzido, um novo
registrador criado para este valor
Referncias a um mesmo registrador pode ser
convertido para registradores reais distintos
Renomeao de registradores

r3 := r3 + r5 r3b:= r3a + r5a


r4:= r3 + 1 r4b:= r3b + 1
r3:= r5 +1 r3c:= r5a + 1
r7:= r3 - r4 r7a:= r3c - r4b
Renomeao de registradores

Referncias originais a um mesmo registrador so


convertidas em referncias reais a registradores distintos
Antidepedncia: I2,I3 (resolvido)
Dependncia de sada: I1, I3 (resolvido)
I3 pode ser iniciada imediatamente aps renomeao
Execuo Superscalar

Construir fluxo dinmico


Despachar instrues para a janela de instrues
Ordenar por dependncias de dados verdadeiras
Execuo paralela das instrues
Realocao das instrues na ordem sequncial e registrar resultados
Implementao Superscalar

Busca simultaneamente mltiplas instrues


Lgica para determinar dependncias
verdadeiras envolvendo valores de registradores
Mecanismos para comunicar esses valores
Mecanismos para iniciar mltiplas instrues em
paralelo
Recursos para execuo paralela de mltiplas
instrues
Mecanismos para garantir o estado de trmino
de processos na ordem correta
Very Long Instruction Word

O compilador descobre as instrues que


podem ser executadas em paralelo e agrupa-as
formando uma longa instruo que ser
despachada para a mquina
Exerccios

13.5
13.6

1. Explique o que um processador superescalar.


2. Quais so os principais problemas com este tipo de
arquitetura? Explique cada um deles.
3. Explique as polticas de inicializao de instrues.
4. No que consiste a renomeao de registradores?
Exerccios

Identificar as situaes de dependncia na


seguinte sequncia de cdigo, do MIPS64:
DIVD F1, F3, F5
ADDD F4, F1, F9
SD F4, 0(R1)
SUBD F1,F10, F14
MULD F9, F10, F8

Você também pode gostar