2
DESEMPENHO SISTEMA COMPUTACIONAIS
A melhoria do desempenho de sistemas computacionais
pode ser conseguido através de diversas maneiras:– Tecnologia mais avançada (conjunto de circuitos mais rápidos)
– Melhor organização da CPU (múltiplos registradores e memória cache)
– PIPELINE de INSTRUÇÕES
3
PIPELINE x LINHA DE MONTAGEM
A estratégia PIPELINE assemelha-se a linha de
montagem de uma Industria.– Um produto passa por vários estágios da produção.
– Produtos em vários estágios do processo de produção podem ser
trabalhados simultaneamente.
– Novas entradas são aceitas em uma extremidade antes que
entradas aceitas previamente apareçam na saída
Suponha que o processamento de uma instrução é dividida em dois
estágios independentes: busca e execução (de uma instrução).
(1) O primeiro estágio (busca) busca uma instrução na memória e
armazena em uma área de armazenamento temporário (um registrador).
(2) Quando o segundo estágio (execução) está livre, o primeiro
estágio (busca) passa para o segundo estágio (execução) a instrução
armazenada. (3) Enquanto o segundo estágio (execução) está
executando essa instrução, o primeiro estágio (busca) busca e
armazena a próxima instrução.
Tudo isso acelera a execução das instruções.
6
PIPELINE COM CICLO DE 02 ESTÁGIOS
7
Se os estágios de busca e execução de instrução tivessem a mesmaduração, o número de instruções executadas por unidade de temposeria dobrada.
No entanto, na prática, essa taxa é pouco provável.
Porque ?– 1) O tempo de execução é maior do que o de busca . A execução envolve leitura,
armazenamento de operandos e execução de algumas operações e portanto oestágio de busca tem que esperar algum tempo.
– 2) A ocorrência de instruções de desvio condicional faz com que o endereço dapróxima instrução a ser executada seja desconhecida.
PIPELINE COM CICLO DE 2 ESTÁGIOS (DESEMPENHO)
8
PIPELINE e DESVIO
(ESTRATÉGIA DE ADIVINHAÇÃO)
Em razão da ocorrência de instruções de desvio, o tempo perdido pode
ser reduzido através de uma estratégia de adivinhação.
Estratégia de adivinhação:
– Quando o instrução de desvio condicional é passada do estágio de busca
para o estágio de execução, o estágio de busca obtém na memória a
instrução imediatamente seguinte a instrução de desvio. Então se não
ocorrer o desvio, nenhum tempo é perdido. Caso contrário, a instrução
buscada deve ser descartada, sendo buscada uma nova instrução.
Mesmo com os dois fatores citados anteriormente, algum ganho de
desempenho é obtido.
9
PIPELINE COM CICLO DE 06 ESTÁGIOS
Maior número de ciclos visa aumentar o desempenho
Considere a seguinte decomposição do processamento de uma
instrução em 06 estágios.
Com essa decomposição, os vários estágios tem duração
aproximadamente igual.
A figura abaixo mostra que com uma PIPELINE de 06 estágios reduz o
tempo de execução de 09 instruções de 54 unidades de tempo (quando
realizadas sequencialmente) (6x9=54) para 14 unidades de tempo
(usando PIPELINE).
10
PIPELINE COM CICLO DE 06 ESTÁGIOS
11
PIPELINE COM CICLO DE 06 ESTÁGIOS
Algumas considerações em relação ao diagrama anterior
– Cada instrução passa pelos seis estágios do PIPELINE
– O diagrama supões que todos os estágios possam ser executados em paralelo.
– Supõe que não exista conflito de acesso à memória principal (instruções BI, BO e EO
envolvem acesso à memória).
– Supõe que a memória possa ser utilizada simultaneamente por estes estágios, o que
não é possível na maioria dos sistemas de memória. Entretanto o valor pode estar na
memória CACHE, ou estes estágios não podem ser executados.
12
PIPELINE COM CICLO DE 06 ESTÁGIOS
Fatores que limitam o desempenho
– 1) Se os estágios não possuem igual duração existe uma certa espera
envolvida.
– 2) A instrução de desvio condicional pode invalidar diversas buscas de
instrução.
– 3) Ocorrência de interrupção (chamada do processador).
Efeito de um desvio condicional
– Suponha que a instrução 03 seja uma instrução de desvio condicional para a
instrução 15. Até que a execução dessa instrução seja feita não dá para saber
qual instrução virá na seqüência. O PIPELINE então carrega a instrução da
seqüência e (instrução 04 ) prossegue a execução. O desvio é tomado, mas isso
só é confirmado apenas no final da unidade de tempo 7. Neste ponto são
retiradas do PIPELINE as instruções inúteis e a instrução 15 entra no PIPELINE.
13
EFEITO DE UM DESVIO CONDICIONAL
GANHO COM PIPELINE DE INSTRUÇÃO
K: número de estágios da PIPELINE de instrução
N: número de instruções
Exemplo 01
K=6 e N=9 (9x6)/(6+8) = 3,85
Exemplo 02
K=2 e N=9 (9x2)/(2+8) = 1,80
Exemplo 03
K=1 e N=9 (9x1)/(1+8) = 1,00