Sei sulla pagina 1di 32

Arquiteturas de Alto Desempenho - Prof

a
Luiza Mourelle
1
Pipeline
O throughput de um pipeline determinado pela freqncia com que
uma instruo sai do pipeline.
Todos os estgios devem estar prontos ao mesmo tempo para prosseguir.
O tempo requerido para mover uma instruo de um estgio a outro
denominado ciclo de mquina. Desta forma, o tempo de um ciclo de
mquina corresponde ao tempo requerido pelo estgio mais demorado.
Se os estgios estiverem perfeitamente balanceados, o tempo gasto por
instruo no pipeline definido por:
peline tgiosnopi nmerodees
pipeline struosem tempoporin
ipeline struonop tempoporin =
Arquiteturas de Alto Desempenho - Prof
a
Luiza Mourelle
2
Pipeline
Dessa forma, o speedup com pipeline corresponde ao nmero de
estgios. No entanto, o pipeline no perfeitamente balanceado e ainda
envolve mais esforos.
Pipeline leva a uma reduo no tempo mdio de execuo por instruo:
diminuio do nmero de ciclos de clock por instruo (cci);
diminuio do ciclo de clock (cc);
combinao dos fatores acima.
Pipeline aumenta o throughput de instrues (nmero de instrues
executadas por unidade de tempo), mas no reduz o tempo de execuo
de uma instruo.
Arquiteturas de Alto Desempenho - Prof
a
Luiza Mourelle
3
Pipeline
O tempo de ciclo t de um pipeline de instruo o tempo requerido
para avanar um conjunto de instrues de um estgio. O tempo de ciclo
pode ser determinado da seguinte maneira:
k i d d
m i
s s + = + = 1 , ) max( t t t
onde:
t
m
= atraso mximo de estgio
k = nmero de estgios do pipeline de instruo
d = tempo necessrio para propagar sinais e dados de um
estgio para o prximo
Em geral, d equivalente ao pulso de um relgio e t
m
>> d.
Arquiteturas de Alto Desempenho - Prof
a
Luiza Mourelle
4
Pipeline
Suponha que sejam processadas n instrues, sem que ocorra desvio. O
tempo total de execuo dado por:
) 1 ( )] 1 ( [
1
+
=
+
= =
n k
nk
n k
nk
T
T
S
k
k
t
t
Em funo do nmero de instrues executadas sem desvio, o fator de
acelerao igual a k quando n .
t + = )] 1 ( [ n k T
k
O speedup para a execuo com o pipeline de instrues em relao
execuo sem o uso do pipeline :
Arquiteturas de Alto Desempenho - Prof
a
Luiza Mourelle
5
Pipeline
Em funo do nmero de estgios, o fator de acelerao se aproxima do
nmero de instrues que podem ser introduzidas no pipeline sem
desvio.
Quanto maior o nmero de estgios do pipeline, maior o speedup. No
entanto, o ganho diminui devido:
ao aumento no custo da implementao;
aos atrasos entre estgios;
aos atrasos no processo de esvaziamento do pipeline quando ocorre
instruo de desvio.
Um nmero de estgios entre 6 e 9 parece ser mais adequado.
Arquiteturas de Alto Desempenho - Prof
a
Luiza Mourelle
6
Speedup para execuo com pipeline de
instrues em relao execuo sem pipeline
0
2
4
6
8
10
12
14
1 10 100 1000 10000
Nmero de instrues
S
p
e
e
d
u
p
k = 6
k = 9
k = 12
Pipeline
Arquiteturas de Alto Desempenho - Prof
a
Luiza Mourelle
7
Speedup para execuo com pipeline de instrues
em relao execuo sem pipeline
0
4
8
12
16
20
0 5 10 15 20 25 30 35
Nmero de estgios
S
p
e
e
d
u
p n = 10
n = 20
n = 30
Pipeline
Arquiteturas de Alto Desempenho - Prof
a
Luiza Mourelle
8
Pipeline
Mltiplos fluxos consiste em duplicar os estgios iniciais do pipeline
para permitir a busca de ambas as instrues, usando dois fluxos de
instrues.
Problemas:
o uso de mltiplos pipelines introduz atrasos devidos conteno de
acesso a registradores e memria;
pode ocorrer a entrada de instrues de desvio adicionais no pipeline,
antes que seja tomada a deciso sobre o desvio original.
Arquiteturas de Alto Desempenho - Prof
a
Luiza Mourelle
9
Pipeline
Busca antecipada da instruo-alvo do desvio consiste em buscar,
antecipadamente, tanto a instruo-alvo do desvio quanto a instruo
consecutiva ao desvio, no instante em que a instruo de desvio
condicional reconhecida. A instruo-alvo armazenada em um
registrador at que a instruo de desvio seja executada.
Memria de lao consiste em usar uma pequena memria de alta
velocidade (memria de lao de repetio ou loop buffer), mantida pelo
estgio de busca de instruo, para guardar as n instrues buscadas
mais recentemente, em seqncia.
Arquiteturas de Alto Desempenho - Prof
a
Luiza Mourelle
10
Pipeline
Considere uma memria de lao com 256 bytes e endereamento de
byte.
8
comparao dos bits mais
significativos do endereo para
determinar se a instruo est
na memria de lao
endereo de desvio
memria de lao
de 256 bytes
Arquiteturas de Alto Desempenho - Prof
a
Luiza Mourelle
11
Pipeline
Vantagens:
com o uso de busca antecipada, a memria de lao conter certo
nmero de instrues que esto frente da instruo corrente;
se ocorrer um desvio para alguma posio adiante do endereo da
instruo de desvio, essa posio j estar na memria de lao (til
em instrues do tipo IF-THEN-ELSE);
particularmente adequada para lidar com laos de repetio ou
iteraes (se a memria for grande o suficiente para conter as
instrues de uma iterao, estas tero que ser buscadas da memria
apenas uma vez, para a primeira iterao).
Arquiteturas de Alto Desempenho - Prof
a
Luiza Mourelle
12
Pipeline
Previso de desvio pode ser feita de vrias formas:
prever que o desvio nunca ser tomado: abordagem simples e
esttica, isto , no depende do histrico das instrues at o momento
em que ocorre a instruo de desvio condicional; continua buscando
instrues na seqncia em que ocorrem no programa.
prever que o desvio sempre ser tomado: abordagem simples e
esttica, isto , no depende do histrico das instrues at o
momento em que ocorre a instruo de desvio condicional; busca
sempre as prximas instrues a partir do endereo-alvo do desvio.
Arquiteturas de Alto Desempenho - Prof
a
Luiza Mourelle
13
Pipeline
prever se o desvio ser tomado ou no conforme o cdigo de
operao: abordagem simples e esttica.
prever o desvio com base em chaves de desvio tomado e de desvio
no tomado: abordagem dinmica, isto , depende do histrico de
execuo.
prever o desvio com base em uma tabela de histrico de desvios:
abordagem dinmica.
Se a busca da instruo consecutiva instruo de desvio causar uma
falta de pgina ou uma violao de proteo, o processador interromper
a busca antecipada da instruo at que tenha certeza de que essa
instruo deve ser mesmo buscada.
Arquiteturas de Alto Desempenho - Prof
a
Luiza Mourelle
14
Pipeline
Anlises de comportamento de programas mostram que desvios
condicionais so tomados em mais de 50% das vezes.
Se o custo da busca antecipada de instrues for o mesmo em qualquer
caminho, o resultado obtido dever ser melhor se a busca antecipada de
instrues for sempre efetuada a partir do endereo-alvo do desvio.
Entretanto, em uma mquina que usa paginao, a busca antecipada de
instrues, a partir do endereo de desvio, tem maior probabilidade de
causar uma falta de pgina do que a busca de instrues consecutivas
instruo de desvio.
Arquiteturas de Alto Desempenho - Prof
a
Luiza Mourelle
15
Pipeline
A previso de desvio com base no cdigo de operao da instruo de
desvio pressupe que para determinados cdigos o desvio sempre
tomado e para outros no, havendo um aproveitamento de 75%.
Estratgias dinmicas de previso de desvio mantm um histrico sobre
as instrues de desvio condicional, i.e. um ou mais bits (chaves de
desvio tomado ou de desvio no tomado) so associados a cada
instruo de desvio condicional.
Utilizando-se somente um bit de histrico, pode-se registrar se a ltima
execuo da instruo resultou em desvio ou no.
Arquiteturas de Alto Desempenho - Prof
a
Luiza Mourelle
16
Pipeline
Uma desvantagem neste caso ocorre quando o desvio quase sempre
tomado, tal como em instrues de desvio usadas para implementar
laos de repetio. Sempre ocorrero dois erros de previso de desvio,
cada vez que o lao de repetio for executado: uma vez na entrada e
outra na sada.
Atraso de desvio consiste em reordenar as instrues, de modo que as
instrues de desvio ocorram mais tarde.
Arquiteturas de Alto Desempenho - Prof
a
Luiza Mourelle
17
Pipeline
Considere a arquitetura do processador DLX, sem pipeline:
32 registradores de 32 bits (R0 a R31);
31 registradores de ponto flutuante (F0 a F30);
endereamento de dados imediato ou deslocamento;
endereamento de byte, com endereo de 32 bits;
instrues de carga e armazenamento;
instrues aritmticas e lgicas;
instrues de desvio.
Arquiteturas de Alto Desempenho - Prof
a
Luiza Mourelle
18
Pipeline
Todas as instrues so de 32 bits, com 6 bits para cdigo de operao e
16 bits para endereamento por deslocamento, constantes imediatas e
endereos de desvio relativos ao contador de programas (PC):
instruo do tipo I:
instruo do tipo R:
instruo do tipo J:
H quatro classes de instrues: cargas e armazenamentos, operaes
com a ALU, desvios e operaes de ponto flutuante.
opcod rs1 rs2
rd funo
opcod rs1 rd imediato
6 5 5 16
6 5 5 5 11
opcod Deslocamento somado ao PC
6 26
Arquiteturas de Alto Desempenho - Prof
a
Luiza Mourelle
19
Pipeline
Todas as instrues levam, no mximo, cinco ciclos de clock para serem
executadas:
1 ciclo de busca de instruo (IF):
IR mem[PC];
NPC PC + 4
2 ciclo de decodificao de instruo/busca de registrador (ID):
A regs[IR
6 .. 10
];
B regs[IR
11 .. 15
];
Imm (IR
16 .. 31
);
Arquiteturas de Alto Desempenho - Prof
a
Luiza Mourelle
20
Pipeline
3 ciclo de execuo/endereo efetivo (EX):
ALUoutput A + Imm; endereamento de memria
ALUoutput A op B; operao entre registradores
ALUoutput A op Imm; operao entre registrador e imediato
ALUoutput NPC + Imm; clculo do endereo de desvio
Cond (A op 0); operao de comparao dependendo do
cdigo de operao (i.e., ==)

Arquiteturas de Alto Desempenho - Prof
a
Luiza Mourelle
21
Pipeline
4 ciclo de acesso memria/complemento de desvio (MEM):
LMD mem[ALUoutput] ou
mem[ALUoutput] B; endereamento de memria
if (cond)
then PC ALUoutput
else PC NPC; desvio condicional
5 ciclo de escrita (WB):
regs[IR
16 .. 20
] ALUoutput;
regs[IR
11 .. 15
] ALUoutput;
regs[IR
11 .. 15
] LMD
Arquiteturas de Alto Desempenho - Prof
a
Luiza Mourelle
22
Pipeline
memria
de
instruo
soma
regs
ALU
memria
de dados
A
B
Imm
zero cond
LMD
NPC
IR
PC
mux
mux
mux
mux
aluoutput
4
IF ID EX MEM WB
.
.
.
.
.
.
.
Arquiteturas de Alto Desempenho - Prof
a
Luiza Mourelle
23
Pipeline
Ao trmino de cada ciclo de clock, cada valor computado durante aquele
ciclo e requerido num ciclo mais tarde (quer seja para esta instruo ou a
prxima) escrito em um meio de armazenamento, que pode ser a
memria, um registrador de propsito geral, o PC ou um registrador
temporrio (LMD, Imm, A, B, IR, NPC, ALUoutput ou Cond).
Esses registadores temporrios armazenam valores entre ciclos de clock
para uma instruo, enquanto os outros meios de armazenamento so
elementos do estado da arquitetura e guardam valores entre instrues
sucessivas.
Nesta arquitetura, instrues de desvio requerem quatro ciclos de clock e
todas as outras requerem cinco ciclos de clock.
Arquiteturas de Alto Desempenho - Prof
a
Luiza Mourelle
24
Pipeline
Pode-se implementar pipeline nesta arquitetura comeando uma nova
instruo a cada ciclo de clock e associando um estgio do pipeline a
cada ciclo da arquitetura descrita.
ciclos de clock
instruo 1 2 3 4 5 6 7 8 9
i IF ID EX MEM WB
i+1 IF ID EX MEM WB
i+2 IF ID EX MEM WB
i+3 IF ID EX MEM WB
i+4 IF ID EX MEM WB
Arquiteturas de Alto Desempenho - Prof
a
Luiza Mourelle
25
memria
de
instruo
soma
regs
ALU
memria
de dados
zero
PC
mux
mux
mux
4
Pipeline
mux
IF/ID ID/EX EX/MEM MEM/WB
IR
6 .. 10

IR
11 .. 15

MEM/WB.IR
desvio
IR
.
.
.
.
.
.
.
Arquiteturas de Alto Desempenho - Prof
a
Luiza Mourelle
26
Pipeline
Os registradores do pipeline armazenam tanto dados quanto controle de
um estgio do pipeline para o prximo. Qualquer valor necessrio em
um estgio adiante deve ser posto em um desses registradores e copiado
de um registrador para outro, at no ser mais requerido.
Por exemplo, o campo de um operando usado em uma escrita ou numa
operao da ALU fornecido pelo registrador do estgio MEM/WB, ao
invs do registrador do estgio IF/ID. Isto porque o estgio IF/ID est,
no momento, associado a outra instruo que no aquela correspondente
operao no estgio MEM/WB.
Qualquer instruo est ativa em exatamente um estgio do pipeline de
cada vez.
Arquiteturas de Alto Desempenho - Prof
a
Luiza Mourelle
27
Estgio Qualquer instruo
IF IF/ID.IRmem[PC]; IF/ID.NPC,PC(se EX/MEM.cond ento (EX/MEM.NPC) seno (PC+4);
ID ID/EX.Aregs[IF/ID.IR
6 .. 10
]; ID/EX.Bregs[IF/ID.IR
11 .. 15
]; ID/EX.NPCIF/ID.NPC; ID/EX.IRIF/ID.IR;
ID/EX.ImmIR
16 .. 31;

Instruo para ALU Carga ou armazenamento Desvio
EX EX/MEM.IRID/EX.IR;
EX/MEM.ALUoutput
ID.EX.A op ID/EX.B; ou
EX/MEM.ALUoutput
ID/EX.A op ID/EX.Imm;
EX/MEM.cond0;
EX/MEM.IRID/EX.IR;
EX/MEM/ALUoutputID/EX.Imm;
EX/MEM.cond0;
EX/MEM.BID/EX.B;
EX/MEM.ALUoutputID/EX.NPC+ID/EX.Imm;
EX/MEM.cond(ID/EX.A op 0);
MEM MEM/WB.IREX/MEM.IR;
MEM/WB.ALUoutput
EX/MEM.ALUoutput;
MEM/WB.IREX/MEM.IR;
MEM/WB.LMD
mem[EX/MEM.ALUoutput]; ou
mem[EX/MEM.ALUoutput] EX/MEM.B;
WB Regs[MEM/WB.IR
16 .. 20
]
MEM/WB.ALUoutput; ou
Regs[MEM/WB.IR
11 .. 15
]
MEM/WB.ALUoutput
Regs[MEM/WB.IR
11 .. 15
]MEM/WB.LMD;
Pipeline
Arquiteturas de Alto Desempenho - Prof
a
Luiza Mourelle
28
Pipeline
Se a instruo i for um desvio a ser tomado, ento o PC ser modificado
ao final do estgio MEM, aps o complemento do clculo do endereo e
comparao.
O mtodo mais simples de tratar com desvios parar o pipeline, assim
que um desvio detetado, at chegar ao estgio MEM, que vai
determinar o prximo PC.
Neste caso, a parada do pipeline s ocorre aps o estgio ID, quando se
identifica que a instruo um desvio.
Arquiteturas de Alto Desempenho - Prof
a
Luiza Mourelle
29
Pipeline
Um desvio causa uma parada de trs ciclos no pipeline. A instruo
depois do desvio buscada, mas ignorada.
ciclos de clock
instruo 1 2 3 4 5 6 7 8 9 10
i (desvio) IF ID EX MEM WB
i+1 IF parada parada IF ID EX MEM WB
i+2 IF ID EX MEM WB
i+3 IF ID EX MEM
i+4 IF ID EX
i+5 IF ID
Arquiteturas de Alto Desempenho - Prof
a
Luiza Mourelle
30
Pipeline
O nmero de ciclos de clock numa parada por desvio pode ser reduzido
atravs de duas aes:
1 identificar mais cedo se o desvio deve ser tomado ou no;
2 computar mais cedo o endereo alvo de desvio.
Na arquitetura do DLX, possvel completar o teste da condio de
desvio ao final do estgio ID.
Para tirar vantagem do teste da condio nesse estgio, os valores
possveis do PC j devem estar computados.
Arquiteturas de Alto Desempenho - Prof
a
Luiza Mourelle
31
memria
de
instruo
soma
regs
ALU
memria
de dados
PC
mux
mux
4
mux
IF/ID ID/EX EX/MEM MEM/WB
IR
6 .. 10

IR
11 .. 15

MEM/WB.IR
IR
.
.
.
.
.
.
soma
zero
.
.
Pipeline
Arquiteturas de Alto Desempenho - Prof
a
Luiza Mourelle
32
Estgio Instruo de desvio
IF IF/ID.IRmem[PC];
IF/ID.NPC,PC(se EX/MEM.cond ento (EX/MEM.NPC) seno (PC+4);
ID ID/EX.Aregs[IF/ID.IR
6 .. 10
]; ID/EX.Bregs[IF/ID.IR
11 .. 15
];
ID/EX.NPCIF/ID.NPC + IR
16 .. 31
;
ID/EX.IRIF/ID.IR; ID/EX.cond(regs[IF/ID.IR
6 .. 10
] op 0];
ID/EX.ImmIR
16 .. 31
;
EX
MEM
WB
Pipeline
Uma vez que o desvio feito ao final do estgio ID, os estgio EX,
MEM e WB no so utilizados durante um desvio.

Potrebbero piacerti anche