CPU Otimizar
-
Author
eurico-namaste -
Category
Documents
-
view
245 -
download
0
Embed Size (px)
description
Transcript of CPU Otimizar
-
Unidade Central de Processamento 6
Otimizao do desempenho
-
Pipeline
Tcnica de implementao de processadores que permite a sobreposio temporal das diversas fases de execuo das instrues
Constitudo por seqncia de estgios operando em paralelo
Funciona de modo semelhante a uma linha de montagem
Seu uso visa a melhora no desempenho do processador
-
Exemplo
Suponha que existe uma lavanderia, que divide seu processo de trabalhos em 3 etapas: Colocar a roupa na maquina de lavar Depois de lavada colocar na secadora Depois de secada passar o ferro e dobrar
Suponha que cada etapa possa ser realizada em 30 minutos:
-
Exemplo 1
Lavanderia
19:00 18:3018:00 17:3017:00 16:30 16:0015:30 15:00
Paulo
Joo
Maria
Tempo (marcando o inicio de cada etapa)Cliente
-
Exemplo 2
Lavanderia com processo otimizado
90 min
90 min
90 min
Total17:0016:30
Paulo
Joo
Maria
16:0015:3015:00Cliente
-
Caractersticas do Pipeline
Aumenta o nmero de instrues executadas simultaneamente
Aumenta taxa de instrues iniciadas e terminadas por unidade de tempo
Melhora o desempenho do processo (throughput)
No reduz o tempo gasto para completar cada instruo individualmente.
-
Ciclo de instruo
Ciclo completoBusca da instruo
Execuo da
instruoInterpretao da instruo
Calculo de
endereo do
operando
Busca de operando
Armazenamento do operando
Clculo do endereo
da instruo
Calculo de
endereo do
operando
Verifica ocorrncia
de interrupo
Interrupo
-
Pipeline do ciclo de instruo
Suponha que o ciclo pudesse ser resumido dos seguintes estgios: Busca de Instruo (BI) Decodificao da Instruo (DI) Clculo de (endereo) Operandos (CO) Busca de Operandos (BO) Execuo da Instruo (EI) Armazenamento de Operandos (AO)
-
Pipeline do ciclo
Exemplo 3
AOEIBOCODIBI4
987654321
AOEI
AO
BO
EI
AO
CO
BO
EI
DI
CO
BO
BI3
DIBI2
CODIBI1
Instante de TempoInstruo
-
Caractersticas do Pipeline
Deve-se procurar dividir a execuo da instruo em estgios com o mesmo Tempo
Contudo alguns estgios so mais lentos: O estagio execuo geralmente mais lento que o
de busca Quando os estgios no tem o mesmo tempo:
Algumas instrues podem ter o seu tempo aumentado
Isso ocorre pois elas atravessam estgios em que no realizam nenhuma operao til
-
Pipeline do ciclo
Exemplo 4
BO
BO
BI
BO
BO
BI
BI
BI
AOEICODI4
987654321
AOEI
AOEI
AO
CO
EI
DI
CO
3
DI2
CODI1
Instante de TempoInstruo
-
Pipeline do ciclo
Exemplo 5
AOBOCOBI
BODI
EICOBI
BO
AO
CO
EIDI
EIDI4
987654321
AOEI
AO
BO
BI
3
DI2
COBI1
Instante de TempoInstruo
-
Conflitos
Situaes que impedem a prxima instruo dentro de uma fila de ser executada no ciclo esperado
Os Conflitos reduzem o tempo de ganho obtido pelo pipelining
Existem trs classes de conflitos: Estrutural de Dados de Controle
-
Conflitos Estruturais
Oriundos de um hardware que no suporta a sobreposio simultnea de todas as etapas de instrues
No exemplo da lavanderia seria o equivalente a implementar um pipeline onde s existisse uma tomada para a mquina de lavar e para a mquina de secar.
-
Conflitos de Dados
Ocorrem quando uma instruo para ser executada depende dos resultados gerados por alguma instruo anterior que ainda no foi completada
No exemplo da lavanderia seria um caso em que a secadora demorou demais para secar uma roupa e j tem a roupa lavada de outro cliente na fila para secar.
-
Conflito de Controle
Ocorrem quando uma instruo de salto condicional (branch) entra no pipelineprovocando o cancelamento de instrues subsequentes que tambm entraram no pipeline.
-
Pipeline do ciclo c/ desvio
Exemplo 6
CODIBI5
BO
BO
BI
BO
BI
BI
BI
CODI4
987654321
AOEI
AO
CO
EI
DI
CO
3
DI2 (salto p/ 5)
CODI1
Instante de TempoInstruo
-
Pipeline do ciclo c/ desvio
Exemplo 6 (continuao)
BO
BO AOEI
5 (salto p/3)
EI
AOEI4
181716151413121110
AO3
2 (salto p/ 5)
1
Instante de TempoInstruo
-
Pipeline do ciclo c/ desvio
Exemplo 7
BO
BO AOEI
5 (salto p/3)
EI
EI AO4
181716151413121110
AO3
2 (salto p/ 5)
1
Instante de TempoInstruo
-
Solucionando conflitos
Uma forma de solucionar os conlfitos inserindo no pipeline uma "bolha" que simplesmente atrasa o processamento at que o recurso que esteja causando o conflito esteja disponvel
Chamamos este processo de stall.
-
Pipeline do ciclo c/ desvio
Exemplo 8
CODIBI5
BO
BO
BI
BO
BI
BI
BI
CODI4
987654321
AOEI
AO
CO
EI
DI
CO
3
DI2 (salto p/ 5)
CODI1
Instante de TempoInstruo
Stall
-
Medidas de desempenho
O tempo gasto no processamento de N instrues em um pipeline com K estgios e ciclo de mquina igual a C dado por: T = [ K + (N 1 )] * C
Sem pipeline: T = [ K * (N)] * C
-
Exemplo 9
Se um programa tem 4 instrues. Quanto tempo leva para ser executado em um processador com pipeline de 6 estgios e relgio de 1 ut? T= (6 + (4 -1))*1 = 9 ut (unidades de tempo)
Sem Pipeline ? T= (6 * (4 ))*1 = 24 ut
-
Exemplo 9
Ilustrao do exemplo 9
AOEIBOCODIBI4
987654321
AOEI
AO
BO
EI
AO
CO
BO
EI
DI
CO
BO
BI3
DIBI2
CODIBI1
Instante de TempoInstruo
-
Exemplo 10
Se um programa tem 10.001 instrues. Quanto tempo leva para ser executado em um processador com pipeline de 5 estgios e relgio de 100 ns? T= (5 + (10.000))*100x10-9 =~ 1 ms =~ 1*10-3
Sem Pipeline ? T= (5 * (10.001))*100x10-9 =~ 5 ms
-
Medidas de Desempenho
Speadup Mede o ganho de velocidade ao se usar pipeline em
comparao a no usar Su = Ts/Tp = n*k*C/(k +(n-1))*C = (n*k)/k +(n-1) Exemplo:
Utilizando os valores do exemplo 9 Su = 24/9 = 2,6