Capítulo 02 - Pipeline
Arquitetura de Computadores
Aula 01
28/08/2012
Bruno Iran Ferreira Maciel
Mestrando em Ciências da Computação – Cin/UFPE
Revisão da aula passada
Memória Cache
Partição de memória
Paginação e Segmentação
Aula de hoje
Hoje vamos ver
Pipeline
Implementação de pipeline
Problemas com o uso de pipeline
Pipeline
Pipeline
É uma técnica para aumento de desempenho de
arquiteturas de processadores.
Pipeline
Algumas verdades
Aumenta o número de instruções executadas simultaneamente e a taxa
de instruções iniciadas e terminadas por unidade de tempo.
Pipeline não reduz o tempo gasto para completar cada instrução
individualmente.
Pipeline
Algumas verdades
Aumenta o número de instruções executadas simultaneamente e o
tempo do ciclo do relógio do processador deve ser igual ou maior que o
tempo de execução do estágio mais lento do "pipeline".
Deve-se procurar dividir a execução da instrução em estágios com o
mesmo tempo.
O pipeline deve ser mantido sempre "cheio" para que o desempenho
máximo seja alcançado.
Pipeline
Algumas verdades
De um modo gera, com o uso do pipeline, cada instrução ainda leva o
mesmo tempo para ser executada.
Algumas instruções contudo podem ter o seu tempo de execução
aumentado, pois atravessam estágios em que não realizam nenhuma
operação útil.
Implementação de Pipeline
Pipeline
Exemplo
Pipeline
Exemplo
Pipeline
Exemplo
Pipeline
Exemplo
Pipeline
Exemplo
*Throughput (ou taxa de transferência) é a quantidade de dados transferidos de um lugar a outro.
Pipeline
Throughput (ou taxa de transferência) é a
quantidade de dados transferidos de um lugar a
outro.
Pipeline
O tempo usado pelo processamento de X instruções
em um pipeline com N estágios e ciclo de máquina
igual a t é dado por:
T = [ N + (X-1)] * t
Se X >> N (Caso comum), T é aproximadamente X
*t
Pipeline
O tempo usado pelo processamento de 10001
instruções em um pipeline com 6 estágios e ciclo de
máquina igual a 1000000 é dado por:
T = [6 + (10001-1)] * 1000000 = ~ 10006*106
(com pipeline)
T = (6*1000000) * 10001 =~ 60006*106
(sem pipeline)
Pipeline
Pipeline
Pipeline
CPU
2,6ns
1,4ns
2,5ns
3ns
1,5ns
Pipeline
Exemplo 1:
Um computador é construído usando a arquitetura de 5 estágios. Os
atrasos de tempo das unidades individuais são dados por
1,8ns
1,2ns
3,5ns
4ns
1,5ns
a)Qual a frequência do clock f1 necessária pelo método de uma única
instrução por período de clock (sem pipeline)?
b)Suponha que o clock seja utilizado em cada estágio simultaneamente
(com pipeline). Qual seria a freqüência de clock f2 neste caso?
Pipeline
a)
T = 1,8 + 1,2 + 3,5 + 4 + 1,5 = 12ns
f=1/T
f = 1 / (12 * 10-9) = 0,08333 * 109 = 83,33 * 106 = 83,33 MHz
b)
T = 4ns (parte mais lenta do pipeline)
f=1/T
f = 1 / (4 * 10-9) = 0,25 * 109 = 250 * 106 = 250 MHz
1Gb = 109
1MHz = 106
1ns = 10-9
Pipeline
Exemplo 2:
Considere um sistema que possua 65.000 instruções, uma frequência de
200 MHz e uma arquitetura da pipeline de 8 estágios.
Calcule o tempo necessário para executar uma instrução;
Calcule o tempo necessário para executar todo o programa sem utilizar
a técnica de pipeline;
Calcule o tempo necessário para executar todo o programa utilizando a
técnica de pipeline;
Pipeline
a)
f=1/T
T1instr = T * NumEstag
b)
TsemPIPE = T * NumEstag * NumInstr
c)
TcomPIPE = T ( NumInstr + NumEstag - 1)
Problemas com Pipeline
Pipeline
Pipeline
Perguntas
?
Exercício
1) Um computador é construído usando a arquitetura de 5 estágios. Os atrasos de tempo das unidades
individuais são dados por
2,8ns
3,2ns
1,5ns
1,8ns
0,6ns
a) Qual a freqüência do clock f1 necessária pelo método de uma única instrução por período de clock
(sem pipeline)?
b) Suponha que o clock seja utilizado em cada estágio simultaneamente (com pipeline). Qual seria a
freqüência de clock f2 neste caso?
2) Considere um sistema que possua 90.000 instruções, uma frequência de 900 MHz e uma arquitetura
da pipeline de 6 estágios.
a) Calcule o tempo necessário para executar uma instrução;
b) Calcule o tempo necessário para executar todo o programa sem utilizar a técnica de pipeline;
c) Calcule o tempo necessário para executar todo o programa utilizando a técnica de pipeline;
Download

Hipertexto e Hipermídia