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 page espanto!

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

Sisleg

0

CARACTERIZAÇÃO DE DUAS PROPRIEDADES RURAIS EM RELAÇÃO À REGULAMENTAÇÃO DA RESERVA LEGAL – UM ESTUDO DE CASO SOBRE OS FATORES

Read More

Eu,você,nós:comunicar é preciso

0

Handebol Regra 1: Quadra de jogo 1 : 1 A quadra de jogo. É um retângulo com quarenta metros de

Read More