Você está na página 1de 29

Arquiterura de Computadores

Cincia da Computao Prof. Sylvio Vieira sylvio@uni!a.br

Taxa de execuo de instrues


Os computadores modernos utilizam muitas tcnicas para, tentar maximizar sua performance, na expectativa de pelo menos executar o seu mximo possvel de instrues em um segundo.

!Ento, se for possvel executar 500 milhes de instrues por segundo,


teremos um processador de 500 MIPS, independente do tempo que cada uma das instrues seja, efetivamente, executada.

!Esta idia sugere que o paralelismo possa ter um papel extremamente


importante na performance. pois um grande numero de instrues lentas executadas em um curto intervalo de tempo, somente ser possvel se vrias delas sejam executadas ao mesmo tempo.

UNIFRA - Cincia da Computao - Arquitetura de Computadores - Prof. Sylvio Vieira - sylvio@unifra.br

Taxa de execuo de instrues

Apesar das instrues serem sempre apresentadas na ordem lgica, elas nem sempre so executadas nesta ordem.

!Deve-se considerar que alguns dos recursos necessrios para a sua execuo
possam estar ocupados.

!Como consequncia, elas podem terminar sua execuo fora da ordem lgica. !Por exemplo:

UNIFRA - Cincia da Computao - Arquitetura de Computadores - Prof. Sylvio Vieira - sylvio@unifra.br

Taxa de execuo de instrues


Por exemplo:

!Se uma instruo 1 coloca um valor em um determinado registrador e a


instruo 2 precisa utilizar este valor. Deve ser garantido que a instruo 2 no far a leitura deste registrador antes dele conter o valor correto operao.

! Cuidar para que isto no acontea exige uma certa Burocracia, mas o
ganho de performance possvel deve ser obtida no fato de vrias instrues terem suas execues simultneas, o que justica o esforo.

UNIFRA - Cincia da Computao - Arquitetura de Computadores - Prof. Sylvio Vieira - sylvio@unifra.br

Taxa de execuo de instrues


Instrues Load e Store, somente estas devem fazer referncia memria:

!Uma das formas mais simples de se dividir operaes em uma sequencia de


passos denir que os operandos venham e retornem, sempre que possvel, dos registradores.

!A operao de transferncia dos operandos da memria para os


registradores deve ser realizada por instrues especiais.

!Considere-se:

UNIFRA - Cincia da Computao - Arquitetura de Computadores - Prof. Sylvio Vieira - sylvio@unifra.br

Taxa de execuo de instrues

Instrues Load e Store, somente estas devem fazer referncia memria:

!Considere-se: !Que o acesso a memria possa demorar bastante, a execuo destas


operaes especiais que acessam a memria poderia ser intercalada com a execuo de outras instrues, desde que as primeiras instrues no faam nada alm de transferir operandos entre os registradores e a memria.

UNIFRA - Cincia da Computao - Arquitetura de Computadores - Prof. Sylvio Vieira - sylvio@unifra.br

Uma mquina com muitos registradores


!Considerando que o acesso a memria relativamente lento, faz-se
necessrio que se tenha vrios registradores, no mnimo 32, para que, sempre que uma palavra venha da memria, seu contedo possa ser mantido em um registrador at que, este valor no seja mais necessrio.

!Deve-se evitar armazenar contedos de operadores em registradores aps


seu necessrio uso, em funo da falta de registradores sucientes para mant-los disponveis.

!A melhor maneira de alcanar este objetivo incorporando uma quantidade


suciente de registradores ao hardware.

UNIFRA - Cincia da Computao - Arquitetura de Computadores - Prof. Sylvio Vieira - sylvio@unifra.br

Paralelismo no Nvel de Instrues

!O grande desao dos arquitetos de computadores melhorar, cada vez mais,


a performance das mquinas que projetam.

!Uma das formas fazer com que chips rodem cada vez mais rpidos,
aumentando a velocidade do clock. Mas infelizmente existe um limite para isto.

!O limite tecnolgico, pois na tecnologia da poca que se baseia o projeto.

UNIFRA - Cincia da Computao - Arquitetura de Computadores - Prof. Sylvio Vieira - sylvio@unifra.br

Paralelismo no Nvel de Instrues

!Como consequncia, o foco das arquiteturas vai para o paralelismo, !Executando duas ou mais operaes ao mesmo tempo. !Tentando assim obter uma performance ainda maior, para uma dada
velocidade de clock.

UNIFRA - Cincia da Computao - Arquitetura de Computadores - Prof. Sylvio Vieira - sylvio@unifra.br

Paralelismo no Nvel de Instrues

!O paralelismo se manifesta de duas maneiras: !A nvel de instrues e a nvel de processador. !Nvel de Instrrues: !O paralelismo explorado dentro das instrues individuais, de forma a
conseguir que a mquina execute mais instrues por segundo.

!Nvel de Processador: !Vrios processadores trabalham juntos na soluo do mesmo problema.

UNIFRA - Cincia da Computao - Arquitetura de Computadores - Prof. Sylvio Vieira - sylvio@unifra.br

Paralelismo no Nvel de Instrues

!Cada uma das solues trabalha a sua maneira e tem seus prprios
mritos.

UNIFRA - Cincia da Computao - Arquitetura de Computadores - Prof. Sylvio Vieira - sylvio@unifra.br

Pipeline

H muito tempo se sabe, que o maior gargalo na velocidade de execuo de instrues o acesso memria.

!De modo a minimizar esta situao, as mquinas passaram a ser projetadas


com a capacidade de buscar antecipadamente as instrues da memria.

!Desta forma, as instrues j estariam no processador, na hora de sua


execuo.

UNIFRA - Cincia da Computao - Arquitetura de Computadores - Prof. Sylvio Vieira - sylvio@unifra.br

Pipeline
Estas instrues eram armazenadas em um conjunto de registradores chamados:

!Buffer de pr-busca !Deste modo, quando a instruo fosse necessria, ela poderia ser diretamente
obtida do buffer de pr-busca, ao invs da memria, economizando tempo.

!Desta forma, a p-busca divide a execuo das instrues em duas partes, !A busca e a execuo.

UNIFRA - Cincia da Computao - Arquitetura de Computadores - Prof. Sylvio Vieira - sylvio@unifra.br

Pipeline
!A tcnica de Pipeline leva esta estratgia bem mais alm de dividir a execuo
de instrues em duas partes.

!O processamento em pipeline divide a execuo de instrues em vrias


partes, cada uma das quais tratada por um hardware exclusivo e dedicado a ela.

!A execuo destas partes ocorre em paralelo.

UNIFRA - Cincia da Computao - Arquitetura de Computadores - Prof. Sylvio Vieira - sylvio@unifra.br

Pipeline
Pipeline! uma tcnica de!hardware!que permite que a!CPU!realize a busca de uma ou mais instrues alm da prxima a ser executada. Estas instrues so colocadas em uma la de!memria(dentro da CPU) onde aguardam o momento de serem executadas.

!A tcnica de pipeline utilizada para acelerar a velocidade de operao da


CPU, uma vez que a prxima instruo a ser executada est normalmente armazenada dentro da CPU e no precisa ser buscada da memria, normalmente muito mais lenta que a CPU

UNIFRA - Cincia da Computao - Arquitetura de Computadores - Prof. Sylvio Vieira - sylvio@unifra.br

Pipeline
A tcnica de pipelining permite que o processador tire proveito mximo de suas estruturas internas, dividindo o ciclo de processamento em tarefas menores. A execuo destas tarefas em sequncia que permitem o melhor aproveitamento do hardware. " Para que ocorra pipelining necessrio:

! Instrues com tempo de execuo prximos e previsveis (execuo em um ! Baixo nmero de instrues.
nico ciclo)

UNIFRA - Cincia da Computao - Arquitetura de Computadores - Prof. Sylvio Vieira - sylvio@unifra.br

Pipeline
Exemplo de Lavanderia
Tem-se os volumes A, B, C e D de roupas para lavar,

secar e passar

A
A lavadora leva 30 minutos

A secadora leva 40 minutos

A Passadeira leva 20 minutos


UNIFRA - Cincia da Computao - Arquitetura de Computadores - Prof. Sylvio Vieira - sylvio@unifra.br

Pipeline
6 7 8 9

Lavanderia Sequencial

10

11 Meia noite

Tempo

30 40 20 30 40 20 30 40 20 30 40 20
T A a r B e f C a s D

Uma lavabderia sequencial leva 6 horas para os 4 volumes Se usasse pipeline, quanto tempo levaria para os 4 volumes?

UNIFRA - Cincia da Computao - Arquitetura de Computadores - Prof. Sylvio Vieira - sylvio@unifra.br

Pipeline
6 7 30 40 40 8 40 9
Tempo

Lavanderia em pipeline

10

11 Meia noite

40 20

T A a r B e f C a s D

Lavanderia em pipelines, leva 3,5 horas

UNIFRA - Cincia da Computao - Arquitetura de Computadores - Prof. Sylvio Vieira - sylvio@unifra.br

Pipeline
6 7 30 40
T A a r B e f C a s D

8 40 40

9
Aprendizado do pipeline:

40 20
O Pipeline ajuda melhorar o throughput de um trabalho por completo A taxa do Pipeline limitada pelo estgio mais lento Speedup ideal = Nmero de estgios Comprimentos desbalanceados dos estgios do pipeline reduzem o speedup O tempo para preencher o pipeline e o tempo para limpar o pipeline reduzem o speedup

UNIFRA - Cincia da Computao - Arquitetura de Computadores - Prof. Sylvio Vieira - sylvio@unifra.br

Pipeline
Eis um exemplo genrico de um pipeline com 5 unidades, que recebem o nome de estgios. o estgio 1 busca a instruo na memria e armazena em um buffer, at chegar o momento de se executada. No estgio 2, h a decodicao da instruo, ou seja a determinao de seu tipo e quais operandos sero necessrios a sua execuo. No estgio 3, ocorre a localizao e a busca pelos operandos que podem estar em regisrtadores ou na memoria.

E1
Unidade de busca de instruo

E2
Unidade de decodicao de instruo

E3
Unidade de busca de operando

E4
Unidade de execuo de instruo

E5
Unidade de escrita

UNIFRA - Cincia da Computao - Arquitetura de Computadores - Prof. Sylvio Vieira - sylvio@unifra.br

Pipeline

No estgios 4 que efetivamente ocorre a execuo da instruo, quando efetivamente passam pelo caminho de dados, explicado na ltima aula. Finalmente, no estgio 5 o resultado do processamento dos operandos no caminho de dados escrito em um registrador.

E1
Unidade de busca de instruo

E2
Unidade de decodicao de instruo

E3
Unidade de busca de operando

E4
Unidade de execuo de instruo

E5
Unidade de escrita

UNIFRA - Cincia da Computao - Arquitetura de Computadores - Prof. Sylvio Vieira - sylvio@unifra.br

Pipeline
Aqui vericamos a execuo do pipeline em funo do tempo. Durante o primeiro ciclo de clock, o estgio S1 est trabalhando com a instruo 1, buscando-a da memria. Durante o segundo ciclo de Clock, o estgio S2 decodica a instruo 1 enquanto o estgio S1 busca a instruo 2. Durante o 3 ciclo de Clock, o estgio S3 busca os operandos da instruo 1, o S2 decodicica a instruo 2 e S1 busca uma instruo 3. E 1 E2 E3 E4 E5
Unidade de busca de instruo Unidade de decodicao de instruo Unidade de busca de operando Unidade de execuo de instruo Unidade de escrita

UNIFRA - Cincia da Computao - Arquitetura de Computadores - Prof. Sylvio Vieira - sylvio@unifra.br

Pipeline
O que facilita: Todas as instrues com mesmo comprimento Somente poucos formatos de instrues Os operandos de memria aparecem somente em loads e stores O que diculta: conflitos estruturais: supor que temos somente uma memria conflitos de controle: preocupar com instrues ramificadas conflitos de dados: uma instruo depende de uma instruo prvia Manipulao de excees Melhorar o desempenho com execuo fora-de-ordem, etc.

UNIFRA - Cincia da Computao - Arquitetura de Computadores - Prof. Sylvio Vieira - sylvio@unifra.br

Arquiteturas superescalares

Se considerarmos um pipeline bom, com dois, ficaria melhor... possvel projetar um computador com 2 pipelines:

UNIFRA - Cincia da Computao - Arquitetura de Computadores - Prof. Sylvio Vieira - sylvio@unifra.br

Arquiteturas superescalares
Neste caso temos uma nica unidade de busca de instruo, que busca pares de instrues juntas e coloca cada uma delas em seu prprio pipeline, [ermitindo portanto, a execuo de instrues em paralelo. Para que as duas instrues sejam executadas em paralelo, no pode existir conflito pela utilizao de recursos durante a execuo (registradores por exemplo)

E1

E2
Unidade de decodicao de instruo

E3
Unidade de busca de operando

E4
Unidade de execuo de instruo

E5
Unidade de escrita

Unidade de busca de instruo

Unidade de decodicao de instruo

Unidade de busca de operando

Unidade de execuo de instruo

Unidade de escrita

UNIFRA - Cincia da Computao - Arquitetura de Computadores - Prof. Sylvio Vieira - sylvio@unifra.br

Arquiteturas superescalares
Alm disto, no pode acontecer que o resultado de uma instruo dependa da execuo de outra. Assim como no caso de um nico pipeline, o compilador precisa garantir que estas situaes no venham a ocorrer. O Hardware no faz qualquer verificao de conflitos, se ocorrerem execues de instrues em paralelo incompatveis, os resultados sero provavelmente errados.

E1

E2
Unidade de decodicao de instruo

E3
Unidade de busca de operando

E4
Unidade de execuo de instruo

E5
Unidade de escrita

Unidade de busca de instruo

Unidade de decodicao de instruo

Unidade de busca de operando

Unidade de execuo de instruo

Unidade de escrita

Pode haver um hardware especco para eliminar estes conitos.


UNIFRA - Cincia da Computao - Arquitetura de Computadores - Prof. Sylvio Vieira - sylvio@unifra.br

Arquiteturas superescalares
A existncia de 4 pipelines, apesar de conceitualmente possvel, duplica o hardware necessrio a sua implementao. Em funo disto, mquinas de alta performance utilizam outra metodologia. A idia ter um nico pipeline, com diversas unidades funcionais.

UNIFRA - Cincia da Computao - Arquitetura de Computadores - Prof. Sylvio Vieira - sylvio@unifra.br

Arquiterura de Computadores
Cincia da Computao Prof. Sylvio Vieira sylvio@uni!a.br

Você também pode gostar