Pipeline

Categories: Trabalhos

0

Pipeline Microprocessadores й um assunto interessante a ser tratado dentro do mundo da informбtica sendo, com certeza, um dos assuntos que geram mais espanto devido а rбpida evoluзгo obtida nos ъltimos anos. E incrнvel a velocidade com que eles evoluem e como as empresas fabricantes de processadores acham formas de tornб-los cada vez mais rбpidos. Segundo Steve Jobs, um dos grandes nomes que a IBM jб teve, os processadores tendem a duplicar sua capacidade a cada 1 8 meses, e esse crescimento geomйtrico vale atй 2020, isto й, temos 20 anos de evoluзхes pela frente, e 20 anos de Sw. view next page spanto! Eu me lemb computador de meu de endereзamento dl to concorrentes tinha u 2Mhz atй 4Mhz (0 80 OFS nhei o primeiro m uma capacidade s processadores velocidade de essa йpoca o Brasil era mais fechado para produtos estrangeiros). Meu pai pagou a bagatela de 1 500 dуlares e, lуgico, minha mгe ficou mais de 1 mкs sem falar com ele. Hoje lembramos disto dando boas risadas. De 1988 atй 2000 sao 12 anos. Tendo em Vista que processadores para PC hoje jб estгo na casa do GHz, й uma evoluзгo de 1000Mhz, sendo que a cada ano os processadores evoluнram 84Mhz (em nнvel nacional).

Claro, isto nгo diz o que conteceu de fato, porque o que real Swipe to page realmente impulsionou essa evoluзгo foi a Introduзгo do conceito de Pipeline nos processadores. ENTAO O QUE VEM A SER O TAL DO PIPELINE??? Esta dъvida existe na cabeзa de muitos ‘informбticos’, pois, sempre que ligamos o PC aparece na janelinha do setup da mбquina o nome Pipeline, mas muitos nao sabem sequer do que se trata… Na verdade й muito simples. De um modo grosseiro, й a capacidade que o processador tem de fazer o processamento atravйs de fases, tornando-se, assim, muito mais otimizado e rбpido.

Explico: Imagine uma linha de montagem de carros, onde carro passa por diversas fases, de funilaria, peзas, etc. Essa produзгo funciona em paralelo para diferentes tipos de carro. Essa й a idйia bбsica colocada no pipeline. Vamos supor que temos um grupo de tйcnicos montando, um ъnico carro, e temos um segundo grupo de tйcnicos montando carros em uma linha de produзгo. Podemos atй ter os dois grupos terminando a produзгo do primeiro carro ao mesmo tempo. Jб para o segundo carro, enquanto o primeiro grupo de tйcnicos, iria comeзar, na linha de produзгo, jб estaria em fase final, e assim sucessivamente. ? nisso que consiste o pipeline, olocar as instruзхes em uma linha de produзгo de modo que torne o processamento mais rбpido. Para se medir a velocidade da linha de produзгo, usamos carros feitos por hora, e no pipeline й a mesma coisa, sу que a medida й um pouco diferente. Para m um pouco diferente. para medirmos usamos a seguinte fуrmula: Tempo por instruзгo sem pipeline Nъmero de estбgios do pipeline Antes de continuar devo abrir parкnteses aqui para explicar os tipos de arquiteturas de processadores para que nгo haja engano.

Existem dois tipos de arquiteturas bбsicas, o RISC e o CISC. O RISC quer dizer “Reduced Instruction Set Computer” e CISC quer dizer “Complex nstruction Set Computer”. Dentro disso, a arquitetura que apareceu primeiro foi o CISC, em 1964 com a IBM, e o conceito do CISC era: “Tudo que й realizado em Hardware й rбpido”, porйm, em 1980, elaboraram o RISC, que tinha um conceito um pouco diferente: “Faзa o caso comum (98% das Instruзхes executadas) ser rбpido”. A idйia era a seguinte: O que й mais rбpido?

Ir de Fortaleza ao porto de Santos de navio ou ir de aviгo atй Sгo Paulo e lб pegar uma bicicleta e pedalar atй Santos. Й nisso que se apoiavam, nao importa que 2% das instruзхes nгo seja processada rapidamente, se tratarmos o aso mais genйrico (98% das instruзхes) com certeza deve haver um ganho de performance. Hoje as duas arquiteturas brigam no mercado tendo como exemplo de processadores: RISC com o PowerPC, HP PA Alpha, MIPS e CISC com a maioria dos processadores Intel.

Como a arquitetura RISC й mais simples de se trabalhar, vou us 3 maioria dos processadores Intel. Como a arquitetura RISC й mais simples de se trabalhar, vou usar o RISC-DLX como exemplo, pois й um processador de fбcil entendimento e muito mais didбtico. Isso evita diagramas muito grandes e complexos. Aqui estб o desenho de um processador sem pipeline baseado no DLX. Podemos analisar os principais itens de um processador, como o PC (Program Counter) e o ULA (Unidade Lуgica Aritmйtica), e todo caminho que a instruзгo percorre dentro do processador.

Mas este exemplo apresenta muitos problemas, pois sem o pipeline ele й lento jб que trata uma instruзгo de cada vez. Entгo esse processador nгo serviria para um computador pessoal, mas serviria para uma mбquina de lavar ou outro eletrodomйstico que nгo faz nada cientifico. Porйm, nгo vou entrar nesses detalhes, pois terнamos uma outra matйria. Desde a entrada da linha de Comando atй o final, temos um Clock! Quando a Instruзгo sai, outra instruзгo entra no PC e assim sucessivamente. Sendo assim, temos sempre uma situaзгo estбvel.

Na entrada temos uma situaзгo estбvel e no final temos outra situaзгo estбvel. Portanto, se tentarmos pegar um dado que passa no ULA. nгo teremos uma situaзгo estбvel. Й aн que temos um problema. E se nуs dividнssemos o processador como numa linha de produзгo??? Agora o desenho do mesmo processador com Pipeline. A divisгo ficaria assim, com os Registradores Especiais posicionad 4DF5 processador com Pipeline. A divisгo ficaria assim, com os Registradores Especiais osicionados dessa forma.

Assim, teremos um Clock em cada espaзo do processador, sу que esse Clock seria muito mais rбpido por ter um caminho muito menor e muito menos aзгo deveria ser tomada pelo processador e em cada Registrador terramos uma situaзгo estбvel. Ele processa multo mais informaзхes justamente pelos Registradores, pois quando PC lк uma instruзгo e joga no processador, e essa informaзгo chega no primeiro Registrador, o processador jб pode estar lendo a segunda informaзгo pronta para jogar de novo no Pipeline, e esse trabalho й totalmente sincronizado, sempre na velocidade do passo mais lento.

Entretanto, em estudos feitos, 30% dos cуdigos de programaзгo sгo desvios, e isso causa perda de performance ao Pipeline, e em vista disso criaram-se soluзхes para esses problemas. A primeira soluзгo encontrada foi interpretar o que o cуdigo quer fazer. Por exemplo: num loop, onde os processadores teoricamente iriam inserir “bolhas” (й quando o processador insere espaзo em branco em um registrador e essa aзгo se denomina “bubble”, ou seja, “bolha”) em cada retorno ao topo do loop, ele deveria saber quando existe o loop e o compilador deveria colocar em cуdigo simples o loop um embaixo do outro. Por exemplo: S

Contos de fadas

0

Diante de nenhuma outra obra de arte, a não ser dos contos de fadas, sentimos realmente uma alegria tão Íntima

Read More

Ppcp

0

ntroduçao Este trabalho foi desenvolvido…. Benchmarking Benchmarking é um processo contínuo de comparação dos produtos, serviços e práticas empresarias entre

Read More