Sei sulla pagina 1di 20

Tcnicas de Pipeline avanadas:

A tcnica do pipeline consiste no


paralelismo entre as aes;
O tempo do procedimento total o
mesmo de um processo sem
pipeline, porm se for necessrio
que haja muitos processos, o
procedimento se torna bem mais
rpido com o pipeline.

Mtodos para aumentar o


paralelismo em potencial de nivel de
instruo:
-Aumentar a profundidade do
pipeline para sobrepor mais
instrues;
-Replicar os componentes internos
do computador de modo que ele possa
iniciar vrias instrues em cada
estgio do pipeline (despacho
multiplo)
*Mas disparar vrias instrues por
estgio permite que a velocidade da

Existem duas maneiras importantes


de implementar um processo de
despacho mltiplo:
despacho mltiplo esttico: Uma
tcnica para implementar um
processador de despacho mltiplo em
que muitas decises so tomadas pelo
compilador antes da execuo.
despacho mltiplo dinmico: Uma
tcnica para implementar um
processador de despacho mltiplo em
que muitas decises so tomadas
durante a execuo pelo processador.

Responsabilidades principais e
distintas que precisam ser tratadas
em um pipeline de despacho multiplo:
- Empacotar as instrues em slotes
de despachos;
- Lidar com hazards de dados e de
controle.

ESPECULAO:
Um dos mtodos mais importantes
para localizar e explorar mais ILP a
especulao.
*Especulao: Tcnica pela qual o
compilador ou processador advinha o
resultado de uma instruo para
remov-la como uma dependncia na
execuo de outras informaes.
A especulao pode ser feita pelo
compilador ou pelo hardware, ou seja,
antes ou durante a execuo.

Nos casos em que a especulao


esteja errada:
Especulao em software:
-Insere instrues adicionais e
oferecem uma rotina de reparo
Especulao em hardware :
- O processador coloca os resultados
em um buffer at que saiba que no
so mais especulativos.

DESPACHO MLTIPLO
a tcnica de despachar vrias
instrues em um nico ciclo de clock
(pacote de despacho).
Os microprocessadores mais potentes
de hoje tentam despachar de trs a
oito instrues a cada ciclo de clock.

DESPACHO MLTIPLO
Dificuldades:
Restries relacionadas aos tipos de
instrues que podem ser
executadas simultaneamente.
Consequncias geradas pela
ocorrncia de dependncias.

Despacho mltiplo
Tcnicas para implementar um
processador de despacho mltiplo:
Tcnica de despacho mltiplo
esttico
Tcnica de despacho mltiplo
dinmico

DESPACHO MLTIPLO
ESTTICO X DINMICO
A principal diferena entre elas a
diviso de trabalho entre o
compilador e o hardware.
Diviso de trabalho- indica se as
decises esto sendo feitas
estaticamente(no compilador) ou
dinamicamente(no hardware).

DESPACHO MLTIPLO
Existem duas tarefas principais que
precisam ser tratadas em um pipeline
de despacho mltiplo:
Empacotar as instrues em slots de
despacho.
Lidar com hazards de dados e
controles.

A ARQUITETURA IA-64 DA
INTEL
Conjunto de instrues registradorregistrador, como a verso de 64bits
da arquitetura MIPS, mas com vrios
recursos exclusivos para dar suporte
a explorao explcita do ILP,
controlada por compilador.
Projetada para alcanar os maiores
benefcios de um paralelismo
implcito.

A ARQUITETURA IA-64 DA
INTEL
Utiliza dois conceitos diferentes para
conseguir flexibilidade maior que uma
VLIW:
1. Grupo de instrues
2. pacotes

PROCESSADORES DE DESPACHO
MLTIPLO DINMICO
Tambm conhecidos como superescalares
Principal caracterstica:
Instrues executadas em paralelo em um mesmo
estgio de pipeline

OBS: Instrues que dependam do resultado de


outra instruo podem prejudicar o desempenho do
processador

EXEMPLO
1. lw
2. addi
= 37
3. add
4. lw
5. addi
= 40
6. add

$t1, 4($s2)
$t1, $t1, 20

# A recebe 17
# A recebe 20 + 17

$t3, $t3, $t1


$t1, 8($s2)
$t1, $t1, 10

# C recebe A = 37
# A recebe 30
# A recebe 30 + 10

$t4, $t4, $t1

# D recebe A = 40

$t1 = A, $t2 = B, $t3 = C, $t4 = D

Adicionando um novo registrador


temporrio
1. lw
$t1, 4($s2)
2. addi $t1, $t1, 20
17 = 37
3. add
$t3, $t3, $t1
4. lw
$t2, 8($s2)
5. addi $t2, $t2, 10
10 = 40
6. add
$t4, $t4, $t2

# A recebe 17
# A recebe 20 +
# C recebe A = 37
# B recebe 30
# B recebe 30 +
# D recebe B = 40

Reorganizando
1. lw
$t1, 4($s2)
2. lw
$t2, 8($s2)
3. addi $t1, $t1, 20
17 = 37
4. addi $t2, $t2, 10
10 = 40
5. add
$t3, $t3, $t1
37
6. add
$t4, $t4, $t2
40

# A recebe 17
# B recebe 30
# A recebe 20 +
# B recebe 30 +
# C recebe A =
# D recebe B =

ESCALONAMENTO DINMICO EM
PIPELINE
Dividido em trs unidades principais:
Unidade de busca de instrues
Unidades funcionais
Unidade de commit

Fonte: PipelingeAvanado. <


http://www.univasf.edu.br/~romulo.camara/novo/wp-content/uploads/20
14/05/pipeline-avancado.pdf

EXEMPLO DE IMPLENTAO
PENTIUM IV:
Combina o uso do despacho mltiplo com um longo
pipeline, com a finalidade de se obter um alto IPC
(Instrues por clock) aliado um alto clock.
Possuem clocks maiores que as geraes
anteriores

Fonte: Wikipdia: Pentium IV <


https://pt.wikipedia.org/wiki/Pentium_4#/media/File:Willamette.png >

Potrebbero piacerti anche