Escolar Documentos
Profissional Documentos
Cultura Documentos
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:
! 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.
!Considere-se:
!Uma das formas fazer com que chips rodem cada vez mais rpidos,
aumentando a velocidade do clock. Mas infelizmente existe um limite para isto.
!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.
!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.
!Cada uma das solues trabalha a sua maneira e tem seus prprios
mritos.
Pipeline
H muito tempo se sabe, que o maior gargalo na velocidade de execuo de instrues o acesso memria.
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.
Pipeline
!A tcnica de Pipeline leva esta estratgia bem mais alm de dividir a execuo
de instrues em duas partes.
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.
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)
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
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?
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
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
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
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
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
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.
Arquiteturas superescalares
Se considerarmos um pipeline bom, com dois, ficaria melhor... possvel projetar um computador com 2 pipelines:
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 escrita
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 escrita
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.
Arquiterura de Computadores
Cincia da Computao Prof. Sylvio Vieira sylvio@uni!a.br