Buscar

Capitulo 6

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 103 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 103 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 103 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Arquitetura de
Computadores
Walisson
Pereira
Arquitetura de Computadores
Walisson Pereira
walisson.pereira@uvanet.br
Universidade Estadual Vale do Acarau´
Slides revisados baseados nas notas de aula do prof. Ju´nior
Cap´ıtulo 6: Utilizac¸a˜o de Pipelines
Arquitetura de
Computadores
Walisson
Pereira
Introduc¸a˜o
Computadores mais antigos executavam instruc¸o˜es de
modo muito direto:
O processador buscava uma instruc¸a˜o da memo´ria;
Decodificava-a para determinar qual era a instruc¸a˜o;
Lia as entradas das instruc¸o˜es a partir do banco de
registradores;
Executava os ca´lculos exigidos pela instruc¸a˜o;
Escrevia os resultados de volta no banco de registradores;
Arquitetura de
Computadores
Walisson
Pereira
Introduc¸a˜o
Figura : Processador sem pipeline
Arquitetura de
Computadores
Walisson
Pereira
Introduc¸a˜o
O hardware necessa´rio para executar cada um dos passos
de um ciclo de execuc¸a˜o e´ diferente
Isso implica que maior parte do hardware fica ocioso
aguardando que outras partes completem sua execuc¸a˜o
Arquitetura de
Computadores
Walisson
Pereira
Introduc¸a˜o
Pipelining
E´ a te´cnica de sobrepor a execuc¸a˜o de diversas instruc¸o˜es para
reduzir o tempo de execuc¸a˜o de um conjunto de instruc¸o˜es
Arquitetura de
Computadores
Walisson
Pereira
Introduc¸a˜o
Taxa de rendimento (throughput)
E´ a taxa na qual as operac¸o˜es sa˜o executadas.
Geralmente expressas como operac¸o˜es/segundo ou
operac¸o˜es/ciclo
Lateˆncia
E´ a quantidade de tempo que uma u´nica operac¸a˜o demora
para ser executada
Arquitetura de
Computadores
Walisson
Pereira
Pipeline
Figura : Processador com pipeline
Arquitetura de
Computadores
Walisson
Pereira
Pipeline
Tabela : Execuc¸a˜o em pipeline
Esta´gios
Ciclo BI DI LR EI ER
1 i1
2 i2 i1
3 i3 i2 i1
4 i4 i3 i2 i1
5 i5 i4 i3 i2 i1
6 i6 i5 i4 i3 i2
7 i7 i6 i5 i4 i3
Arquitetura de
Computadores
Walisson
Pereira
Pipeline
Tabela : Execuc¸a˜o em pipeline
Esta´gios
Ciclo BI DI LR EI ER
1 i1
2 i2 i1
3 i3 i2 i1
4 i4 i3 i2 i1
5 i5 i4 i3 i2 i1
6 i6 i5 i4 i3 i2
7 i7 i6 i5 i4 i3
Arquitetura de
Computadores
Walisson
Pereira
Pipeline
Tabela : Execuc¸a˜o em pipeline
Esta´gios
Ciclo BI DI LR EI ER
1 i1
2 i2 i1
3 i3 i2 i1
4 i4 i3 i2 i1
5 i5 i4 i3 i2 i1
6 i6 i5 i4 i3 i2
7 i7 i6 i5 i4 i3
Arquitetura de
Computadores
Walisson
Pereira
Pipeline
Tabela : Execuc¸a˜o em pipeline
Esta´gios
Ciclo BI DI LR EI ER
1 i1
2 i2 i1
3 i3 i2 i1
4 i4 i3 i2 i1
5 i5 i4 i3 i2 i1
6 i6 i5 i4 i3 i2
7 i7 i6 i5 i4 i3
Arquitetura de
Computadores
Walisson
Pereira
Pipeline
Tabela : Execuc¸a˜o em pipeline
Esta´gios
Ciclo BI DI LR EI ER
1 i1
2 i2 i1
3 i3 i2 i1
4 i4 i3 i2 i1
5 i5 i4 i3 i2 i1
6 i6 i5 i4 i3 i2
7 i7 i6 i5 i4 i3
Arquitetura de
Computadores
Walisson
Pereira
Pipeline
Tabela : Execuc¸a˜o em pipeline
Esta´gios
Ciclo BI DI LR EI ER
1 i1
2 i2 i1
3 i3 i2 i1
4 i4 i3 i2 i1
5 i5 i4 i3 i2 i1
6 i6 i5 i4 i3 i2
7 i7 i6 i5 i4 i3
Arquitetura de
Computadores
Walisson
Pereira
Pipeline
Tabela : Execuc¸a˜o em pipeline
Esta´gios
Ciclo BI DI LR EI ER
1 i1
2 i2 i1
3 i3 i2 i1
4 i4 i3 i2 i1
5 i5 i4 i3 i2 i1
6 i6 i5 i4 i3 i2
7 i7 i6 i5 i4 i3
Arquitetura de
Computadores
Walisson
Pereira
Durac¸a˜o do ciclo em Processadores com Pipeline
A durac¸a˜o do ciclo de um processador com pipeline e´
dependente de quatro fatores:
1 a durac¸a˜o do ciclo da parte do processador que na˜o tem
pipeline
2 o nu´mero de esta´gios do pipeline
3 a homogeneidade com que a lo´gica do caminho de dados e´
dividida entre os esta´gios
4 e a lateˆncia dos latches
Arquitetura de
Computadores
Walisson
Pereira
Durac¸a˜o do ciclo em Processadores com Pipeline
C =
S
E
+ L (1)
onde:
C: durac¸a˜o do ciclo com pipeline
S: durac¸a˜o do ciclo sem pipeline
E: nu´mero de esta´gios de pipeline
L: lateˆncia do latch
Arquitetura de
Computadores
Walisson
Pereira
Durac¸a˜o do ciclo em Processadores com Pipeline
Exemplo: Um processador sem pipeline tem uma durac¸a˜o
de ciclo de 25 ns. Qual e´ a durac¸a˜o do ciclo de uma versa˜o
deste processador com pipeline de 5 esta´gios divididos
homogeneamente, se cada latch tem uma lateˆncia de 1 ns?
E se o processador foi dividido em 50 esta´gios de pipeline?
Soluc¸a˜o: Para o caso de 5 esta´gios de pipeline:
S: 25 ns
E: 5
L: 1 ns
C =
25ns
5
+ 1ns = 6ns (2)
Arquitetura de
Computadores
Walisson
Pereira
Durac¸a˜o do ciclo em Processadores com Pipeline
Exemplo: Um processador sem pipeline tem uma durac¸a˜o
de ciclo de 25 ns. Qual e´ a durac¸a˜o do ciclo de uma versa˜o
deste processador com pipeline de 5 esta´gios divididos
homogeneamente, se cada latch tem uma lateˆncia de 1 ns?
E se o processador foi dividido em 50 esta´gios de pipeline?
Soluc¸a˜o: Para o caso de 5 esta´gios de pipeline:
S: 25 ns
E: 5
L: 1 ns
C =
25ns
5
+ 1ns = 6ns (2)
Arquitetura de
Computadores
Walisson
Pereira
Durac¸a˜o do ciclo em Processadores com Pipeline
Exemplo: Um processador sem pipeline tem uma durac¸a˜o
de ciclo de 25 ns. Qual e´ a durac¸a˜o do ciclo de uma versa˜o
deste processador com pipeline de 5 esta´gios divididos
homogeneamente, se cada latch tem uma lateˆncia de 1 ns?
E se o processador foi dividido em 50 esta´gios de pipeline?
Soluc¸a˜o: Para o caso de 5 esta´gios de pipeline:
S: 25 ns
E: 5
L: 1 ns
C =
25ns
5
+ 1ns = 6ns (2)
Arquitetura de
Computadores
Walisson
Pereira
Durac¸a˜o do ciclo em Processadores com Pipeline
Exemplo: Um processador sem pipeline tem uma durac¸a˜o
de ciclo de 25 ns. Qual e´ a durac¸a˜o do ciclo de uma versa˜o
deste processador com pipeline de 5 esta´gios divididos
homogeneamente, se cada latch tem uma lateˆncia de 1 ns?
E se o processador foi dividido em 50 esta´gios de pipeline?
Soluc¸a˜o: Para o caso de 50 esta´gios de pipeline:
S: 25 ns
E: 50
L: 1 ns
C =
25ns
50
+ 1ns = 1, 5ns (3)
Arquitetura de
Computadores
Walisson
Pereira
Durac¸a˜o do ciclo em Processadores com Pipeline
Exemplo: Um processador sem pipeline tem uma durac¸a˜o
de ciclo de 25 ns. Qual e´ a durac¸a˜o do ciclo de uma versa˜o
deste processador com pipeline de 5 esta´gios divididos
homogeneamente, se cada latch tem uma lateˆncia de 1 ns?
E se o processador foi dividido em 50 esta´gios de pipeline?
Soluc¸a˜o: Para o caso de 50 esta´gios de pipeline:
S: 25 ns
E: 50
L: 1 ns
C =
25ns
50
+ 1ns = 1, 5ns (3)
Arquitetura de
Computadores
Walisson
Pereira
Durac¸a˜o do ciclo em Processadores com Pipeline
Exemplo: Um processador sem pipeline tem uma durac¸a˜o
de ciclo de 25 ns. Qual e´ a durac¸a˜o do ciclo de uma versa˜o
deste processador com pipeline de 5 esta´gios divididos
homogeneamente, se cada latch tem uma lateˆncia de 1 ns?
E se o processador foi dividido em 50 esta´gios de pipeline?
Soluc¸a˜o: Para o caso de 50 esta´gios de pipeline:
S: 25 ns
E: 50
L: 1 ns
C =
25ns
50
+ 1ns = 1, 5ns (3)
Arquitetura de
Computadores
Walisson
Pereira
Durac¸a˜o do ciclo em Processadores com Pipeline
Quando o processador na˜o pode ser dividido em esta´gios
de pipeline com lateˆncia igual, a durac¸a˜o do ciclo de
relo´gio do processador e´ igual a` lateˆncia do esta´gio de
pipeline mais longo, mais o atraso do latch, uma vez que a
durac¸a˜o do ciclo tem que ser longa o suficiente para que o
esta´gio de pipeline mais longo possa completar e
armazenar os seus resultados no latch que esta´ entre ele e
o pro´ximo esta´gio
Arquitetura de
Computadores
Walisson
Pereira
Durac¸a˜o do ciclo em Processadores com Pipeline
Exemplo: Suponha que um processador sem pipeline,
com uma durac¸a˜o de ciclo de 25 ns, esteja divididoem 5
esta´gios de pipeline com lateˆncia de 5, 7, 3, 6 e 4 ns. Se a
lateˆncia do latch for de 1 ns, qual e´ a durac¸a˜o do ciclo do
processador resultante?
Soluc¸a˜o: 8 ns
Arquitetura de
Computadores
Walisson
Pereira
Durac¸a˜o do ciclo em Processadores com Pipeline
Exemplo: Suponha que um processador sem pipeline,
com uma durac¸a˜o de ciclo de 25 ns, esteja dividido em 5
esta´gios de pipeline com lateˆncia de 5, 7, 3, 6 e 4 ns. Se a
lateˆncia do latch for de 1 ns, qual e´ a durac¸a˜o do ciclo do
processador resultante?
Soluc¸a˜o: 8 ns
Arquitetura de
Computadores
Walisson
Pereira
Lateˆncia do Pipeline
Lateˆncia do Pipeline
E´ a soma do tempo que uma u´nica instruc¸a˜o demora para
passar atrave´s do pipeline
Arquitetura de
Computadores
Walisson
Pereira
Lateˆncia do Pipeline
Exemplo: Se um processador sem pipeline com uma
durac¸a˜o de ciclo de 25 ns for dividido homogeneamente
em 5 esta´gios de pipeline, utilizando-se latches com uma
lateˆncia de 1 ns, qual a lateˆncia total do pipeline? E se o
processador foi dividido em 50 esta´gios?
Soluc¸a˜o: para o caso de 5 esta´gios:
5 esta´gios× 6 ns = 30 ns (4)
Arquitetura de
Computadores
Walisson
Pereira
Lateˆncia do Pipeline
Exemplo: Se um processador sem pipeline com uma
durac¸a˜o de ciclo de 25 ns for dividido homogeneamente
em 5 esta´gios de pipeline, utilizando-se latches com uma
lateˆncia de 1 ns, qual a lateˆncia total do pipeline? E se o
processador foi dividido em 50 esta´gios?
Soluc¸a˜o: para o caso de 5 esta´gios:
5 esta´gios× 6 ns = 30 ns (4)
Arquitetura de
Computadores
Walisson
Pereira
Lateˆncia do Pipeline
Exemplo: Se um processador sem pipeline com uma
durac¸a˜o de ciclo de 25 ns for dividido homogeneamente
em 5 esta´gios de pipeline, utilizando-se latches com uma
lateˆncia de 1 ns, qual a lateˆncia total do pipeline? E se o
processador foi dividido em 50 esta´gios?
Soluc¸a˜o: para o caso de 50 esta´gios:
50 esta´gios× 1, 5 ns = 75 ns (5)
Arquitetura de
Computadores
Walisson
Pereira
Lateˆncia do Pipeline
Exemplo: Suponha que um processador sem pipeline,
com uma durac¸a˜o de ciclo de 25 ns, esta´ dividido em 5
esta´gios de pipeline com lateˆncia de 5, 7, 3, 6 e 4 ns. Se a
lateˆncia do latch for de 1 ns, qual e´ a lateˆncia do pipeline
resultante?
Soluc¸a˜o: Ja´ sabemos que um ciclo deste pipeline dura 8
ns, enta˜o:
5 esta´gios× 8 ns = 40 ns (6)
Arquitetura de
Computadores
Walisson
Pereira
Lateˆncia do Pipeline
Exemplo: Suponha que um processador sem pipeline,
com uma durac¸a˜o de ciclo de 25 ns, esta´ dividido em 5
esta´gios de pipeline com lateˆncia de 5, 7, 3, 6 e 4 ns. Se a
lateˆncia do latch for de 1 ns, qual e´ a lateˆncia do pipeline
resultante?
Soluc¸a˜o: Ja´ sabemos que um ciclo deste pipeline dura 8
ns, enta˜o:
5 esta´gios× 8 ns = 40 ns (6)
Arquitetura de
Computadores
Walisson
Pereira
Risco de dependeˆncia entre instruc¸o˜es e o seu
impacto sobre a taxa de rendimento
O pipelining melhora o desempenho de um processador ao
aumentar a taxa de rendimento das instruc¸o˜es
Devido a` divisa˜o de instruc¸o˜es em esta´gios e sua
sobreposic¸a˜o no pipeline, a durac¸a˜o do ciclo pode ser
reduzida, aumentando a taxa pela qual as instruc¸o˜es sa˜o
executadas
No caso ideal,
taxa de rendimento de um pipeline = 1durac¸a˜o do ciclo
Para o caso de um pipeline de 5 esta´gios com durac¸a˜o de
ciclo de 6 ns e uma durac¸a˜o de ciclo sem pipeline de 25
ns, ter´ıamos uma taxa de rendimento ideal de 1, 67× 108
instruc¸o˜es/segundo contra a taxa de rendimento de
4× 107 instruc¸o˜es/segundo do processador sem pipeline.
Arquitetura de
Computadores
Walisson
Pereira
Risco de dependeˆncia entre instruc¸o˜es e o seu
impacto sobre a taxa de rendimento
O pipelining melhora o desempenho de um processador ao
aumentar a taxa de rendimento das instruc¸o˜es
Devido a` divisa˜o de instruc¸o˜es em esta´gios e sua
sobreposic¸a˜o no pipeline, a durac¸a˜o do ciclo pode ser
reduzida, aumentando a taxa pela qual as instruc¸o˜es sa˜o
executadas
No caso ideal,
taxa de rendimento de um pipeline = 1durac¸a˜o do ciclo
Para o caso de um pipeline de 5 esta´gios com durac¸a˜o de
ciclo de 6 ns e uma durac¸a˜o de ciclo sem pipeline de 25
ns, ter´ıamos uma taxa de rendimento ideal de 1, 67× 108
instruc¸o˜es/segundo contra a taxa de rendimento de
4× 107 instruc¸o˜es/segundo do processador sem pipeline.
Arquitetura de
Computadores
Walisson
Pereira
Risco de dependeˆncia entre instruc¸o˜es e o seu
impacto sobre a taxa de rendimento
Entretanto, existe uma certa quantidade de fatores que
limita a capacidade de um pipeline de executar instruc¸o˜es
na sua taxa de pico, como:
Dependeˆncias entre as instruc¸o˜es
Desvios
Tempo necessa´rio para acessar a memo´ria.
Arquitetura de
Computadores
Walisson
Pereira
Risco de dependeˆncia entre instruc¸o˜es e o seu
impacto sobre a taxa de rendimento
Risco de dependeˆncia entre instruc¸o˜es
Ocorrem quando uma instruc¸a˜o leˆ ou escrevem em um
registrador que esta´ sendo utilizado por outra instruc¸a˜o
Podem ser de quatro tipos:
LAL: risco de leitura apo´s leitura
LAE: risco de leitura apo´s escrita
EAL: risco de escrita apo´s leitura
EAE: risco de escrita apo´s escrita
Arquitetura de
Computadores
Walisson
Pereira
Risco de dependeˆncia entre instruc¸o˜es e o seu
impacto sobre a taxa de rendimento
Risco de leitura apo´s leitura (LAL)
Ocorre quando duas instruc¸o˜es leˆem o mesmo registrador
O risco LAL na˜o causam um problema para o processador
por que a leitura de um registrador na˜o modifica seu valor
Duas instruc¸o˜es que teˆm o risco LAL podem ser
executadas em ciclos sucessivos ou no mesmo ciclo
Exemplo:
ADD r1, r2, r3
SUB r4, r5, r3
Arquitetura de
Computadores
Walisson
Pereira
Risco de dependeˆncia entre instruc¸o˜es e o seu
impacto sobre a taxa de rendimento
Risco de leitura apo´s escrita (LAE)
Ocorre quando uma instruc¸o˜es leˆ um registrador que foi
escrito por uma instruc¸a˜o anterior
Tambe´m conhecido como dependeˆncias de dados ou
dependeˆncias reais
Quando um risco LAE ocorre, a instruc¸a˜o que esta´ fazendo
a leitura na˜o pode progredir ale´m do esta´gio de leitura do
registrador do pipeline ate´ que a instruc¸a˜o que esta´
executando a escrita tenha passado atrave´s do esta´gio de
escrita dos registrados
Chamamos isto de adiamento ou bolha de pipeline
Exemplo:
ADD r1, r2, r3
SUB r4, r5, r1
Arquitetura de
Computadores
Walisson
Pereira
Risco de dependeˆncia entre instruc¸o˜es e o seu
impacto sobre a taxa de rendimento
ADD r1,r2,r3
SUB r4,r5,r1
Tabela : Execuc¸a˜o em pipeline, com adiamento
Esta´gios
Ciclo BI DI LR EI ER
1 ADD
2 SUB ADD
3 SUB ADD
4 SUB (bolha) ADD
5 SUB (bolha) (bolha) ADD
6 SUB (bolha) (bolha)
7 SUB (bolha)
8 SUB
Arquitetura de
Computadores
Walisson
Pereira
Risco de dependeˆncia entre instruc¸o˜es e o seu
impacto sobre a taxa de rendimento
ADD r1,r2,r3
SUB r4,r5,r1
Tabela : Execuc¸a˜o em pipeline, com adiamento
Esta´gios
Ciclo BI DI LR EI ER
1 ADD
2 SUB ADD
3 SUB ADD
4 SUB (bolha) ADD
5 SUB (bolha) (bolha) ADD
6 SUB (bolha) (bolha)
7 SUB (bolha)
8 SUB
Arquitetura de
Computadores
Walisson
Pereira
Risco de dependeˆncia entre instruc¸o˜es e o seu
impacto sobre a taxa de rendimento
ADD r1,r2,r3
SUB r4,r5,r1
Tabela : Execuc¸a˜o em pipeline, com adiamento
Esta´gios
Ciclo BI DI LR EI ER
1 ADD
2 SUB ADD
3 SUB ADD
4 SUB (bolha) ADD
5 SUB (bolha) (bolha) ADD
6 SUB (bolha) (bolha)
7 SUB (bolha)
8 SUB
Arquitetura de
Computadores
Walisson
Pereira
Risco de dependeˆncia entre instruc¸o˜es e o seu
impacto sobre a taxa de rendimento
ADD r1,r2,r3
SUB r4,r5,r1
Tabela : Execuc¸a˜o em pipeline, com adiamento
Esta´gios
CicloBI DI LR EI ER
1 ADD
2 SUB ADD
3 SUB ADD
4 SUB (bolha) ADD
5 SUB (bolha) (bolha) ADD
6 SUB (bolha) (bolha)
7 SUB (bolha)
8 SUB
Arquitetura de
Computadores
Walisson
Pereira
Risco de dependeˆncia entre instruc¸o˜es e o seu
impacto sobre a taxa de rendimento
ADD r1,r2,r3
SUB r4,r5,r1
Tabela : Execuc¸a˜o em pipeline, com adiamento
Esta´gios
Ciclo BI DI LR EI ER
1 ADD
2 SUB ADD
3 SUB ADD
4 SUB (bolha) ADD
5 SUB (bolha) (bolha) ADD
6 SUB (bolha) (bolha)
7 SUB (bolha)
8 SUB
Arquitetura de
Computadores
Walisson
Pereira
Risco de dependeˆncia entre instruc¸o˜es e o seu
impacto sobre a taxa de rendimento
ADD r1,r2,r3
SUB r4,r5,r1
Tabela : Execuc¸a˜o em pipeline, com adiamento
Esta´gios
Ciclo BI DI LR EI ER
1 ADD
2 SUB ADD
3 SUB ADD
4 SUB (bolha) ADD
5 SUB (bolha) (bolha) ADD
6 SUB (bolha) (bolha)
7 SUB (bolha)
8 SUB
Arquitetura de
Computadores
Walisson
Pereira
Risco de dependeˆncia entre instruc¸o˜es e o seu
impacto sobre a taxa de rendimento
ADD r1,r2,r3
SUB r4,r5,r1
Tabela : Execuc¸a˜o em pipeline, com adiamento
Esta´gios
Ciclo BI DI LR EI ER
1 ADD
2 SUB ADD
3 SUB ADD
4 SUB (bolha) ADD
5 SUB (bolha) (bolha) ADD
6 SUB (bolha) (bolha)
7 SUB (bolha)
8 SUB
Arquitetura de
Computadores
Walisson
Pereira
Risco de dependeˆncia entre instruc¸o˜es e o seu
impacto sobre a taxa de rendimento
ADD r1,r2,r3
SUB r4,r5,r1
Tabela : Execuc¸a˜o em pipeline, com adiamento
Esta´gios
Ciclo BI DI LR EI ER
1 ADD
2 SUB ADD
3 SUB ADD
4 SUB (bolha) ADD
5 SUB (bolha) (bolha) ADD
6 SUB (bolha) (bolha)
7 SUB (bolha)
8 SUB
Arquitetura de
Computadores
Walisson
Pereira
Risco de dependeˆncia entre instruc¸o˜es e o seu
impacto sobre a taxa de rendimento
Risco de escrita apo´s leitura (EAL) e risco de escrita apo´s
escrita (EAE)
Ocorre quando uma instruc¸o˜es escreve em um registrador
que foi lido por uma instruc¸a˜o anterior
Tambe´m conhecido como dependeˆncias de nome, pois este
risco na˜o ocorreria se tive´ssemos mais registradores
dispon´ıveis
Na˜o causam atraso no pipeline se as instruc¸o˜es forem
executadas na ordem correta
Podem causar problema se as instruc¸o˜es possu´ırem
lateˆncias diferentes
Arquitetura de
Computadores
Walisson
Pereira
Risco de dependeˆncia entre instruc¸o˜es e o seu
impacto sobre a taxa de rendimento
Exemplo de risco de escrita apo´s leitura (EAL)
ADD r1,r2,r3
SUB r2,r5,r6
Exemplo de risco de escrita apo´s escrita (EAE)
ADD r1,r2,r3
SUB r1,r5,r6
Arquitetura de
Computadores
Walisson
Pereira
Desvios
Instruc¸o˜es de desvio tambe´m podem causar atrasos em
processadores com pipeline, porque o processador na˜o
pode determinar qual instruc¸a˜o deve ser buscada ate´ que o
desvio tenha sido executado.
Tambe´m conhecido como risco de controle
Arquitetura de
Computadores
Walisson
Pereira
Desvios
BEQ r6, r1, r2
SUB r4,r5,r1
Tabela : Execuc¸a˜o em pipeline, com desvio
Esta´gios
Ciclo BI DI LR EI ER
1 desvio
2 (bolha) desvio
3 (bolha) (bolha) desvio
4 (bolha) (bolha) (bolha) desvio
Atualizac¸a˜o no CP permite busca da pro´xima instruc¸a˜o
5 prox. instr. (bolha) (bolha) (bolha) desvio
Arquitetura de
Computadores
Walisson
Pereira
Desvios
BEQ r6, r1, r2
SUB r4,r5,r1
Tabela : Execuc¸a˜o em pipeline, com desvio
Esta´gios
Ciclo BI DI LR EI ER
1 desvio
2 (bolha) desvio
3 (bolha) (bolha) desvio
4 (bolha) (bolha) (bolha) desvio
Atualizac¸a˜o no CP permite busca da pro´xima instruc¸a˜o
5 prox. instr. (bolha) (bolha) (bolha) desvio
Arquitetura de
Computadores
Walisson
Pereira
Desvios
BEQ r6, r1, r2
SUB r4,r5,r1
Tabela : Execuc¸a˜o em pipeline, com desvio
Esta´gios
Ciclo BI DI LR EI ER
1 desvio
2 (bolha) desvio
3 (bolha) (bolha) desvio
4 (bolha) (bolha) (bolha) desvio
Atualizac¸a˜o no CP permite busca da pro´xima instruc¸a˜o
5 prox. instr. (bolha) (bolha) (bolha) desvio
Arquitetura de
Computadores
Walisson
Pereira
Desvios
BEQ r6, r1, r2
SUB r4,r5,r1
Tabela : Execuc¸a˜o em pipeline, com desvio
Esta´gios
Ciclo BI DI LR EI ER
1 desvio
2 (bolha) desvio
3 (bolha) (bolha) desvio
4 (bolha) (bolha) (bolha) desvio
Atualizac¸a˜o no CP permite busca da pro´xima instruc¸a˜o
5 prox. instr. (bolha) (bolha) (bolha) desvio
Arquitetura de
Computadores
Walisson
Pereira
Desvios
BEQ r6, r1, r2
SUB r4,r5,r1
Tabela : Execuc¸a˜o em pipeline, com desvio
Esta´gios
Ciclo BI DI LR EI ER
1 desvio
2 (bolha) desvio
3 (bolha) (bolha) desvio
4 (bolha) (bolha) (bolha) desvio
Atualizac¸a˜o no CP permite busca da pro´xima instruc¸a˜o
5 prox. instr. (bolha) (bolha) (bolha) desvio
Arquitetura de
Computadores
Walisson
Pereira
Desvios
BEQ r6, r1, r2
SUB r4,r5,r1
Tabela : Execuc¸a˜o em pipeline, com desvio
Esta´gios
Ciclo BI DI LR EI ER
1 desvio
2 (bolha) desvio
3 (bolha) (bolha) desvio
4 (bolha) (bolha) (bolha) desvio
Atualizac¸a˜o no CP permite busca da pro´xima instruc¸a˜o
5 prox. instr. (bolha) (bolha) (bolha) desvio
Arquitetura de
Computadores
Walisson
Pereira
Desvios
Atrasos de desvio teˆm um impacto significativo no
desempenho dos processadores modernos
Algumas te´cnicas desenvolvidas para tratar deste risco de
controle:
Acrescentar hardware para permitir que o resultado de uma
instruc¸a˜o de desvio seja calculado mais cedo no pipeline
Acrescentar hardware que preveja o enderec¸o-destino de
cada desvio antes que ele seja completado
Arquitetura de
Computadores
Walisson
Pereira
Riscos estruturais
Ocorrem quando o hardware do processador na˜o e´ capaz
de executar, simultaneamente, todas as instruc¸o˜es que
esta˜o no pipeline
Exemplo:
Se o banco de registradores na˜o permite que uma instruc¸a˜o
no esta´gio ER escreva seu resultado simultaneamente a
leitura de outra instruc¸a˜o no esta´gio LR, enta˜o pode ser
necessa´rio adiar a execuc¸a˜o desta u´ltima.
Riscos estruturais sa˜o relativamente raros em
processadores modernos porque seu hardware e o conjunto
de instruc¸o˜es foram projetados para suportar pipelining.
Entretanto, processadores que executam mais de uma
instruc¸a˜o por ciclo possuem restric¸o˜es em relac¸a˜o ao tipo
de instruc¸o˜es que o hardware pode executar
simultaneamente.
Arquitetura de
Computadores
Walisson
Pereira
Riscos estruturais
Ocorrem quando o hardware do processador na˜o e´ capaz
de executar, simultaneamente, todas as instruc¸o˜es que
esta˜o no pipeline
Exemplo:
Se o banco de registradores na˜o permite que uma instruc¸a˜o
no esta´gio ER escreva seu resultado simultaneamente a
leitura de outra instruc¸a˜o no esta´gio LR, enta˜o pode ser
necessa´rio adiar a execuc¸a˜o desta u´ltima.
Riscos estruturais sa˜o relativamente raros em
processadores modernos porque seu hardware e o conjunto
de instruc¸o˜es foram projetados para suportar pipelining.
Entretanto, processadores que executam mais de uma
instruc¸a˜o por ciclo possuem restric¸o˜es em relac¸a˜o ao tipo
de instruc¸o˜es que o hardware pode executar
simultaneamente.
Arquitetura de
Computadores
Walisson
Pereira
Marcac¸a˜o de Registradores (Scoreboarding)
Processadores com pipelines precisam saber quais
registradores sera˜o escritos pelas instruc¸o˜es que ja´ esta˜o
no pipeline, de modo que instruc¸o˜es subsequentes possam
determinar se os seus registradores de entrada estara˜o
dispon´ıveis quando elas atingirem o esta´gio de leitura de
registradores
Para fazer isso, a maioria dos processadores utiliza uma
te´cnica chamada marcac¸a˜o de registradores
(scoreboarding)
Arquitetura de
Computadores
Walisson
Pereira
Marcac¸a˜o de Registradores (Scoreboarding)
Cada registrador possui um bit conhecido como bit de
presenc¸a
Se o bit de presenc¸a estiver cheio (1), ele esta´dispon´ıvel
para leitura
Se o bit de presenc¸a˜ estiver vazio (0), ele na˜o esta´
dispon´ıvel para leitura
Arquitetura de
Computadores
Walisson
Pereira
Marcac¸a˜o de Registradores (Scoreboarding)
Quando uma instruc¸a˜o entra no esta´gio de leitura de
registradores, o hardware faz uma verificac¸a˜o para ver se
todos os seus registradores de entrada esta˜o cheio
Se positivo, o hardware marca os registradores de sa´ıda
da instruc¸a˜o como vazios e permite que a instruc¸a˜o
progrida para o esta´gio de execuc¸a˜o do pro´ximo ciclo
Se negativo, o hardware rete´m a instruc¸a˜o no esta´gio de
leitura de registradores ate´ que os seus valores de entrada
se tornem cheios, inserindo bolhas no esta´gio de execuc¸a˜o
em cada ciclo ate´ que isto acontec¸a.
Quando a instruc¸a˜o atinge o esta´gio de escrita e escreve o
seu resultado nos seus registradores de destino, enta˜o estes
registradores sa˜o marcados como cheio
Arquitetura de
Computadores
Walisson
Pereira
Marcac¸a˜o de Registradores (Scoreboarding)
Quando uma instruc¸a˜o entra no esta´gio de leitura de
registradores, o hardware faz uma verificac¸a˜o para ver se
todos os seus registradores de entrada esta˜o cheio
Se positivo, o hardware marca os registradores de sa´ıda
da instruc¸a˜o como vazios e permite que a instruc¸a˜o
progrida para o esta´gio de execuc¸a˜o do pro´ximo ciclo
Se negativo, o hardware rete´m a instruc¸a˜o no esta´gio de
leitura de registradores ate´ que os seus valores de entrada
se tornem cheios, inserindo bolhas no esta´gio de execuc¸a˜o
em cada ciclo ate´ que isto acontec¸a.
Quando a instruc¸a˜o atinge o esta´gio de escrita e escreve o
seu resultado nos seus registradores de destino, enta˜o estes
registradores sa˜o marcados como cheio
Arquitetura de
Computadores
Walisson
Pereira
Marcac¸a˜o de Registradores (Scoreboarding)
Quando uma instruc¸a˜o entra no esta´gio de leitura de
registradores, o hardware faz uma verificac¸a˜o para ver se
todos os seus registradores de entrada esta˜o cheio
Se positivo, o hardware marca os registradores de sa´ıda
da instruc¸a˜o como vazios e permite que a instruc¸a˜o
progrida para o esta´gio de execuc¸a˜o do pro´ximo ciclo
Se negativo, o hardware rete´m a instruc¸a˜o no esta´gio de
leitura de registradores ate´ que os seus valores de entrada
se tornem cheios, inserindo bolhas no esta´gio de execuc¸a˜o
em cada ciclo ate´ que isto acontec¸a.
Quando a instruc¸a˜o atinge o esta´gio de escrita e escreve o
seu resultado nos seus registradores de destino, enta˜o estes
registradores sa˜o marcados como cheio
Arquitetura de
Computadores
Walisson
Pereira
Marcac¸a˜o de Registradores (Scoreboarding)
Quando uma instruc¸a˜o entra no esta´gio de leitura de
registradores, o hardware faz uma verificac¸a˜o para ver se
todos os seus registradores de entrada esta˜o cheio
Se positivo, o hardware marca os registradores de sa´ıda
da instruc¸a˜o como vazios e permite que a instruc¸a˜o
progrida para o esta´gio de execuc¸a˜o do pro´ximo ciclo
Se negativo, o hardware rete´m a instruc¸a˜o no esta´gio de
leitura de registradores ate´ que os seus valores de entrada
se tornem cheios, inserindo bolhas no esta´gio de execuc¸a˜o
em cada ciclo ate´ que isto acontec¸a.
Quando a instruc¸a˜o atinge o esta´gio de escrita e escreve o
seu resultado nos seus registradores de destino, enta˜o estes
registradores sa˜o marcados como cheio
Arquitetura de
Computadores
Walisson
Pereira
Prevendo o tempo de execuc¸a˜o em processadores
com pipeline
Em um processador sem pipeline, e´ necessa´rio completar a
execuc¸a˜o de cada instruc¸a˜o antes que ele comece a
executar a pro´xima instruc¸a˜o
As dependeˆncias entre instruc¸o˜es geralmente na˜o afetam o
tempo de execuc¸a˜o de um programa nesse tipo de
processador
Neste caso, o tempo de execuc¸a˜o de um programa pode
ser calculado simplesmente somando os tempos de
execuc¸a˜o de todas as instruc¸o˜es que o processador realiza
ao executar um programa
Arquitetura de
Computadores
Walisson
Pereira
Prevendo o tempo de execuc¸a˜o em processadores
com pipeline
Em um processador com pipeline, o ca´lculo do tempo de
execuc¸a˜o de um programa e´ mais complicado devido as
dependeˆncia entre as instruc¸o˜es
No caso ideal, onde na˜o ocorrem adiamento do pipeline, o
ca´lculo do tempo de execuc¸a˜o pode ser dado por
T = E + (N− 1) (7)
Onde:
T = tempo de execuc¸a˜o do programa
E = nu´mero de esta´gios do pipeline
N = nu´mero de instruc¸a˜o do programa
Arquitetura de
Computadores
Walisson
Pereira
Prevendo o tempo de execuc¸a˜o em processadores
com pipeline
Um modo de calcular o tempo de execuc¸a˜o de um
programa em um processador com pipeline e´ desenhar um
diagrama do pipeline para o programa, como mostrado em
slides anteriores. Pore´m, isto e´ impratica´vel para
programas grandes.
Uma abordagem melhor e´ separar o tempo de execuc¸a˜o de
um programa em duas partes:
Lateˆncia do pipeline
Tempo necessa´rio para colocar todas as instruc¸o˜es do
programa em circulac¸a˜o
A instruc¸a˜o e´ considerada como estando em circulac¸a˜o
quando ela passa do esta´gio de leitura de registradores
para o esta´gio de execuc¸a˜o, pois e´ geralmente o u´ltimo
local no pipeline onde a instruc¸a˜o pode ser adiada
Arquitetura de
Computadores
Walisson
Pereira
Prevendo o tempo de execuc¸a˜o em processadores
com pipeline
Um modo de calcular o tempo de execuc¸a˜o de um
programa em um processador com pipeline e´ desenhar um
diagrama do pipeline para o programa, como mostrado em
slides anteriores. Pore´m, isto e´ impratica´vel para
programas grandes.
Uma abordagem melhor e´ separar o tempo de execuc¸a˜o de
um programa em duas partes:
Lateˆncia do pipeline
Tempo necessa´rio para colocar todas as instruc¸o˜es do
programa em circulac¸a˜o
A instruc¸a˜o e´ considerada como estando em circulac¸a˜o
quando ela passa do esta´gio de leitura de registradores
para o esta´gio de execuc¸a˜o, pois e´ geralmente o u´ltimo
local no pipeline onde a instruc¸a˜o pode ser adiada
Arquitetura de
Computadores
Walisson
Pereira
Prevendo o tempo de execuc¸a˜o em processadores
com pipeline
Neste modelo, o tempo de execuc¸a˜o de um programa e´:
TE = L + (TC − 1) (8)
Onde:
TE = Tempo de execuc¸a˜o (em ciclos)
L = Lateˆncia do pipeline
TC = Tempo para colocar em circulac¸a˜o uma instruc¸a˜o
Entretanto, o tempo para colocar em circulac¸a˜o uma
instruc¸a˜o pode ser diferente de outra
Arquitetura de
Computadores
Walisson
Pereira
Prevendo o tempo de execuc¸a˜o em processadores
com pipeline
Neste modelo, o tempo de execuc¸a˜o de um programa e´:
TE = L + (TC − 1) (8)
Onde:
TE = Tempo de execuc¸a˜o (em ciclos)
L = Lateˆncia do pipeline
TC = Tempo para colocar em circulac¸a˜o uma instruc¸a˜o
Entretanto, o tempo para colocar em circulac¸a˜o uma
instruc¸a˜o pode ser diferente de outra
Arquitetura de
Computadores
Walisson
Pereira
Prevendo o tempo de execuc¸a˜o em processadores
com pipeline
Para calcular o tempo necessa´rio para colocar todas as
instruc¸o˜es de um programa em circulac¸a˜o, os projetistas
definem a lateˆncia da instruc¸a˜o para cada tipo de
instruc¸a˜o em um pipeline como sendo o tempo entre o
momento em que uma instruc¸a˜o daquele tipo e´ colocada
em circulac¸a˜o e o momento no qual uma instruc¸a˜o
dependente pode ser posta em circulac¸a˜o.
Exemplo (baseado nos diagramas apresentado neste slides
anteriormente):
Instruc¸o˜es que na˜o sa˜o de desvio teˆm lateˆncia de 3 ciclos
Instruc¸o˜es de desvio teˆm lateˆncia de instruc¸a˜o de 4 ciclos
Arquitetura de
Computadores
Walisson
Pereira
Prevendo o tempo de execuc¸a˜o em processadores
com pipeline
Exemplo: No pipeline de exemplo que temos utilizado,
que tem lateˆncia de instruc¸a˜o de 3 ciclos para instruc¸o˜es
que na˜o sa˜o desvio e 4 ciclospara instruc¸o˜es de desvio,
qual e´ o tempo de execuc¸a˜o para a seguinte sequeˆncia de
instruc¸o˜es?
ADD r1,r2,r3
SUB r4,r5,r6
MUL r8,r2,r1
ASH r5,r2,r1
OR r10,r11,r4
Arquitetura de
Computadores
Walisson
Pereira
Prevendo o tempo de execuc¸a˜o em processadores
com pipeline
Soluc¸a˜o: O nosso pipeline de exemplo tem 5 esta´gios, de
modo que sua lateˆncia e´ de 5 ciclos.
ADD r1,r2,r3 → ciclo n
SUB r4,r5,r6 → ciclo n + 1
MUL r8,r2,r1 → ciclo n + 3
ASH r5,r2,r1 → ciclo n + 4
OR r10,r11,r4 → ciclo n + 5
Portanto,
TC = 6 ciclos
L = 5 ciclos
TE = 5 + 6− 1 = 10 ciclos
Arquitetura de
Computadores
Walisson
Pereira
Prevendo o tempo de execuc¸a˜o em processadores
com pipeline
Tabela : Exemplo de execuc¸a˜o de pipeline
Esta´gios
Ciclo BI DI LR EI ER
1 ADD
2 SUB ADD
3 MUL SUB ADD
4 ASH MUL SUB ADD
5 OR ASH MUL SUB ADD
6 OR ASH MUL (bolha) SUB
7 OR ASH MUL (bolha)
8 OR ASH MUL
9 OR ASH
10 OR
Arquitetura de
Computadores
Walisson
Pereira
Prevendo o tempo de execuc¸a˜o em processadores
com pipeline
Tabela : Exemplo de execuc¸a˜o de pipeline
Esta´gios
Ciclo BI DI LR EI ER
1 ADD
2 SUB ADD
3 MUL SUB ADD
4 ASH MUL SUB ADD
5 OR ASH MUL SUB ADD
6 OR ASH MUL (bolha) SUB
7 OR ASH MUL (bolha)
8 OR ASH MUL
9 OR ASH
10 OR
Arquitetura de
Computadores
Walisson
Pereira
Prevendo o tempo de execuc¸a˜o em processadores
com pipeline
Tabela : Exemplo de execuc¸a˜o de pipeline
Esta´gios
Ciclo BI DI LR EI ER
1 ADD
2 SUB ADD
3 MUL SUB ADD
4 ASH MUL SUB ADD
5 OR ASH MUL SUB ADD
6 OR ASH MUL (bolha) SUB
7 OR ASH MUL (bolha)
8 OR ASH MUL
9 OR ASH
10 OR
Arquitetura de
Computadores
Walisson
Pereira
Prevendo o tempo de execuc¸a˜o em processadores
com pipeline
Tabela : Exemplo de execuc¸a˜o de pipeline
Esta´gios
Ciclo BI DI LR EI ER
1 ADD
2 SUB ADD
3 MUL SUB ADD
4 ASH MUL SUB ADD
5 OR ASH MUL SUB ADD
6 OR ASH MUL (bolha) SUB
7 OR ASH MUL (bolha)
8 OR ASH MUL
9 OR ASH
10 OR
Arquitetura de
Computadores
Walisson
Pereira
Prevendo o tempo de execuc¸a˜o em processadores
com pipeline
Tabela : Exemplo de execuc¸a˜o de pipeline
Esta´gios
Ciclo BI DI LR EI ER
1 ADD
2 SUB ADD
3 MUL SUB ADD
4 ASH MUL SUB ADD
5 OR ASH MUL SUB ADD
6 OR ASH MUL (bolha) SUB
7 OR ASH MUL (bolha)
8 OR ASH MUL
9 OR ASH
10 OR
Arquitetura de
Computadores
Walisson
Pereira
Prevendo o tempo de execuc¸a˜o em processadores
com pipeline
Tabela : Exemplo de execuc¸a˜o de pipeline
Esta´gios
Ciclo BI DI LR EI ER
1 ADD
2 SUB ADD
3 MUL SUB ADD
4 ASH MUL SUB ADD
5 OR ASH MUL SUB ADD
6 OR ASH MUL (bolha) SUB
7 OR ASH MUL (bolha)
8 OR ASH MUL
9 OR ASH
10 OR
Arquitetura de
Computadores
Walisson
Pereira
Prevendo o tempo de execuc¸a˜o em processadores
com pipeline
Tabela : Exemplo de execuc¸a˜o de pipeline
Esta´gios
Ciclo BI DI LR EI ER
1 ADD
2 SUB ADD
3 MUL SUB ADD
4 ASH MUL SUB ADD
5 OR ASH MUL SUB ADD
6 OR ASH MUL (bolha) SUB
7 OR ASH MUL (bolha)
8 OR ASH MUL
9 OR ASH
10 OR
Arquitetura de
Computadores
Walisson
Pereira
Prevendo o tempo de execuc¸a˜o em processadores
com pipeline
Tabela : Exemplo de execuc¸a˜o de pipeline
Esta´gios
Ciclo BI DI LR EI ER
1 ADD
2 SUB ADD
3 MUL SUB ADD
4 ASH MUL SUB ADD
5 OR ASH MUL SUB ADD
6 OR ASH MUL (bolha) SUB
7 OR ASH MUL (bolha)
8 OR ASH MUL
9 OR ASH
10 OR
Arquitetura de
Computadores
Walisson
Pereira
Prevendo o tempo de execuc¸a˜o em processadores
com pipeline
Tabela : Exemplo de execuc¸a˜o de pipeline
Esta´gios
Ciclo BI DI LR EI ER
1 ADD
2 SUB ADD
3 MUL SUB ADD
4 ASH MUL SUB ADD
5 OR ASH MUL SUB ADD
6 OR ASH MUL (bolha) SUB
7 OR ASH MUL (bolha)
8 OR ASH MUL
9 OR ASH
10 OR
Arquitetura de
Computadores
Walisson
Pereira
Prevendo o tempo de execuc¸a˜o em processadores
com pipeline
Tabela : Exemplo de execuc¸a˜o de pipeline
Esta´gios
Ciclo BI DI LR EI ER
1 ADD
2 SUB ADD
3 MUL SUB ADD
4 ASH MUL SUB ADD
5 OR ASH MUL SUB ADD
6 OR ASH MUL (bolha) SUB
7 OR ASH MUL (bolha)
8 OR ASH MUL
9 OR ASH
10 OR
Arquitetura de
Computadores
Walisson
Pereira
Prevendo o tempo de execuc¸a˜o em processadores
com pipeline
Exemplo: Qual e´ o tempo de execuc¸a˜o da sequencia
abaixo em um pipeline de 7 esta´gios, com uma lateˆncia de
instruc¸a˜o de 2 ciclos para instruc¸o˜es que na˜o sa˜o desvio,
mas uma lateˆncia de instruc¸a˜o de 5 ciclos para instruc¸o˜es
de desvio? Assuma que o desvio na˜o e´ feito, de modo que
a DIV e´ a pro´xima instruc¸a˜o a ser executada depois dele.
BNE r4,#0,r5
DIV r2,r1,r7
ADD r8,r9,r10
SUB r5,r2,r9
MUL r10,r5,r8
Arquitetura de
Computadores
Walisson
Pereira
Prevendo o tempo de execuc¸a˜o em processadores
com pipeline
Soluc¸a˜o: Com o pipeline de 7 esta´gio, nossa lateˆncia e´ de
7 ciclos
BNE r4,#0,r5 → ciclo n
DIV r2,r1,r7 → ciclo n + 5
ADD r8,r9,r10 → ciclo n + 6
SUB r5,r2,r9 → ciclo n +7
MUL r10,r5,r8 → ciclo n + 9
Portanto,
TC = 10 ciclos
L = 7 ciclos
TE = 7 + 10− 1 = 16 ciclos
Arquitetura de
Computadores
Walisson
Pereira
Prevendo o tempo de execuc¸a˜o em processadores
com pipeline
Soluc¸a˜o: Com o pipeline de 7 esta´gio, nossa lateˆncia e´ de
7 ciclos
BNE r4,#0,r5 → ciclo n
DIV r2,r1,r7 → ciclo n + 5
ADD r8,r9,r10 → ciclo n + 6
SUB r5,r2,r9 → ciclo n +7
MUL r10,r5,r8 → ciclo n + 9
Portanto,
TC = 10 ciclos
L = 7 ciclos
TE = 7 + 10− 1 = 16 ciclos
Arquitetura de
Computadores
Walisson
Pereira
Transmissa˜o de resultados (bypassing)
Muito do atraso causado pelas dependeˆncias de dados e´
devido ao tempo necessa´rio para escrever os resultados de
uma instruc¸a˜o no banco de registradores e, enta˜o, leˆ-lo
como entrada de outra instruc¸a˜o.
Virtualmente, todos os processadores com pipeline
incorporam uma te´cnica conhecida como transmissa˜o de
resultado, ou estabelecimento de vias secunda´rias, que
transmite os resultados do esta´gio de execuc¸a˜o
diretamente para as instruc¸o˜es no esta´gios antereiores do
pipeline, permitindo que essas instruc¸o˜es progridam sem
esperar que os resultados sejam escritos no bando de
registradores
Arquitetura de
Computadores
Walisson
Pereira
Transmissa˜o de resultados (bypassing)
Muito do atraso causado pelas dependeˆncias de dados e´
devido ao tempo necessa´rio para escrever os resultados de
uma instruc¸a˜o no banco de registradores e, enta˜o, leˆ-lo
como entrada de outra instruc¸a˜o.
Virtualmente, todos os processadores com pipeline
incorporam uma te´cnica conhecida como transmissa˜o de
resultado, ou estabelecimento de vias secunda´rias, que
transmite os resultados do esta´gio de execuc¸a˜o
diretamente para as instruc¸o˜es no esta´gios antereiores do
pipeline, permitindo que essas instruc¸o˜es progridam sem
esperar que os resultados sejam escritos no bando de
registradores
Arquitetura de
Computadores
Walisson
Pereira
Transmissa˜o de resultados (bypassing)
Figura : Transmissa˜o de resultados (utilizac¸a˜o de vias secunda´rias)
Arquitetura de
Computadores
Walisson
Pereira
Transmissa˜o de resultados (bypassing)
ADD r1,r2,r3; SUB r4,r5,r1;
Tabela : Atraso de dados
Esta´gios
Ciclo BI DI LR EI ER
1 ADD
2 SUB ADD
3 SUB ADD
4 SUB ADD
O valor de r1 e´ gerado neste ciclo
5 SUB (bolha) ADD
6 SUB (bolha) (bolha)
Mas na˜o e´ lido ate´ este ciclo
7 SUB (bolha)
8 SUB
Arquitetura de
Computadores
Walisson
Pereira
Transmissa˜o de resultados (bypassing)
ADD r1,r2,r3; SUB r4,r5,r1;
Tabela : Atraso de dados
Esta´gios
Ciclo BI DI LR EI ER
1 ADD
2 SUB ADD
3 SUB ADD
4 SUB ADD
O valor de r1 e´ gerado neste ciclo
5 SUB (bolha) ADD
6 SUB (bolha) (bolha)
Mas na˜o e´ lido ate´ este ciclo
7 SUB (bolha)
8 SUB
Arquitetura de
Computadores
Walisson
Pereira
Transmissa˜ode resultados (bypassing)
ADD r1,r2,r3; SUB r4,r5,r1;
Tabela : Atraso de dados
Esta´gios
Ciclo BI DI LR EI ER
1 ADD
2 SUB ADD
3 SUB ADD
4 SUB ADD
O valor de r1 e´ gerado neste ciclo
5 SUB (bolha) ADD
6 SUB (bolha) (bolha)
Mas na˜o e´ lido ate´ este ciclo
7 SUB (bolha)
8 SUB
Arquitetura de
Computadores
Walisson
Pereira
Transmissa˜o de resultados (bypassing)
ADD r1,r2,r3; SUB r4,r5,r1;
Tabela : Atraso de dados
Esta´gios
Ciclo BI DI LR EI ER
1 ADD
2 SUB ADD
3 SUB ADD
4 SUB ADD
O valor de r1 e´ gerado neste ciclo
5 SUB (bolha) ADD
6 SUB (bolha) (bolha)
Mas na˜o e´ lido ate´ este ciclo
7 SUB (bolha)
8 SUB
Arquitetura de
Computadores
Walisson
Pereira
Transmissa˜o de resultados (bypassing)
ADD r1,r2,r3; SUB r4,r5,r1;
Tabela : Atraso de dados
Esta´gios
Ciclo BI DI LR EI ER
1 ADD
2 SUB ADD
3 SUB ADD
4 SUB ADD
O valor de r1 e´ gerado neste ciclo
5 SUB (bolha) ADD
6 SUB (bolha) (bolha)
Mas na˜o e´ lido ate´ este ciclo
7 SUB (bolha)
8 SUB
Arquitetura de
Computadores
Walisson
Pereira
Transmissa˜o de resultados (bypassing)
ADD r1,r2,r3; SUB r4,r5,r1;
Tabela : Atraso de dados
Esta´gios
Ciclo BI DI LR EI ER
1 ADD
2 SUB ADD
3 SUB ADD
4 SUB ADD
O valor de r1 e´ gerado neste ciclo
5 SUB (bolha) ADD
6 SUB (bolha) (bolha)
Mas na˜o e´ lido ate´ este ciclo
7 SUB (bolha)
8 SUB
Arquitetura de
Computadores
Walisson
Pereira
Transmissa˜o de resultados (bypassing)
ADD r1,r2,r3; SUB r4,r5,r1;
Tabela : Atraso de dados
Esta´gios
Ciclo BI DI LR EI ER
1 ADD
2 SUB ADD
3 SUB ADD
4 SUB ADD
O valor de r1 e´ gerado neste ciclo
5 SUB (bolha) ADD
6 SUB (bolha) (bolha)
Mas na˜o e´ lido ate´ este ciclo
7 SUB (bolha)
8 SUB
Arquitetura de
Computadores
Walisson
Pereira
Transmissa˜o de resultados (bypassing)
ADD r1,r2,r3; SUB r4,r5,r1;
Tabela : Atraso de dados
Esta´gios
Ciclo BI DI LR EI ER
1 ADD
2 SUB ADD
3 SUB ADD
4 SUB ADD
O valor de r1 e´ gerado neste ciclo
5 SUB (bolha) ADD
6 SUB (bolha) (bolha)
Mas na˜o e´ lido ate´ este ciclo
7 SUB (bolha)
8 SUB
Arquitetura de
Computadores
Walisson
Pereira
Transmissa˜o de resultados (bypassing)
ADD r1,r2,r3; SUB r4,r5,r1;
Tabela : Usando bypassing
Esta´gios
Ciclo BI DI LR EI ER
1 ADD
2 SUB ADD
3 SUB ADD
4 SUB ADD
O valor de r1 e´ gerado neste ciclo
5 SUB (bolha) ADD
r1 ja´ pode ser lido neste ciclo
6 SUB (bolha)
7 SUB
Arquitetura de
Computadores
Walisson
Pereira
Transmissa˜o de resultados (bypassing)
ADD r1,r2,r3; SUB r4,r5,r1;
Tabela : Usando bypassing
Esta´gios
Ciclo BI DI LR EI ER
1 ADD
2 SUB ADD
3 SUB ADD
4 SUB ADD
O valor de r1 e´ gerado neste ciclo
5 SUB (bolha) ADD
r1 ja´ pode ser lido neste ciclo
6 SUB (bolha)
7 SUB
Arquitetura de
Computadores
Walisson
Pereira
Transmissa˜o de resultados (bypassing)
ADD r1,r2,r3; SUB r4,r5,r1;
Tabela : Usando bypassing
Esta´gios
Ciclo BI DI LR EI ER
1 ADD
2 SUB ADD
3 SUB ADD
4 SUB ADD
O valor de r1 e´ gerado neste ciclo
5 SUB (bolha) ADD
r1 ja´ pode ser lido neste ciclo
6 SUB (bolha)
7 SUB
Arquitetura de
Computadores
Walisson
Pereira
Transmissa˜o de resultados (bypassing)
ADD r1,r2,r3; SUB r4,r5,r1;
Tabela : Usando bypassing
Esta´gios
Ciclo BI DI LR EI ER
1 ADD
2 SUB ADD
3 SUB ADD
4 SUB ADD
O valor de r1 e´ gerado neste ciclo
5 SUB (bolha) ADD
r1 ja´ pode ser lido neste ciclo
6 SUB (bolha)
7 SUB
Arquitetura de
Computadores
Walisson
Pereira
Transmissa˜o de resultados (bypassing)
ADD r1,r2,r3; SUB r4,r5,r1;
Tabela : Usando bypassing
Esta´gios
Ciclo BI DI LR EI ER
1 ADD
2 SUB ADD
3 SUB ADD
4 SUB ADD
O valor de r1 e´ gerado neste ciclo
5 SUB (bolha) ADD
r1 ja´ pode ser lido neste ciclo
6 SUB (bolha)
7 SUB
Arquitetura de
Computadores
Walisson
Pereira
Transmissa˜o de resultados (bypassing)
ADD r1,r2,r3; SUB r4,r5,r1;
Tabela : Usando bypassing
Esta´gios
Ciclo BI DI LR EI ER
1 ADD
2 SUB ADD
3 SUB ADD
4 SUB ADD
O valor de r1 e´ gerado neste ciclo
5 SUB (bolha) ADD
r1 ja´ pode ser lido neste ciclo
6 SUB (bolha)
7 SUB
Arquitetura de
Computadores
Walisson
Pereira
Transmissa˜o de resultados (bypassing)
ADD r1,r2,r3; SUB r4,r5,r1;
Tabela : Usando bypassing
Esta´gios
Ciclo BI DI LR EI ER
1 ADD
2 SUB ADD
3 SUB ADD
4 SUB ADD
O valor de r1 e´ gerado neste ciclo
5 SUB (bolha) ADD
r1 ja´ pode ser lido neste ciclo
6 SUB (bolha)
7 SUB

Outros materiais