terça-feira, 13 de maio de 2008

o que é computação Reconfigurável ?

Já imaginou um computador de uso geral, que de acordo com algoritmo a ser executado muda o hardware ?
Exitem pesquisadores na Universidade de São Paulo tentando desenvolver tal computador, apenas salientando que quando digo computador, me refiro ao hardware dele.
Esses Pesquisadores estão mais especificamente no Laboratório de Computação Reconfigurável - LCR

Mas iremos as Referências ...



Computação reconfigurável, é um processamento computacional de alta velocidade e muito flexível.
Tem como característica, suas "auto- mudanças" de caminho de dados e o controle do fluxo.

O termo “Computação Reconfigurável”, existe desde 1960, por uma proposta de um computador feito de um padrão de processadores com hardware reconfigurável.
Um processador principal deveria controlar o comportamento dos hardwares reconfiguráveis. Esses hardwares são adaptados para executar uma tarefa, e após o termino dessa tarefa, por exemplo, eles poderiam ser ajustados para realizar alguma outra tarefa.

Isso resultou em um computador de estrutura híbrida, que combina flexibilidade do software e a velocidade do hardware. - Arquitetura de Computadores II - Monografia (filipedumont)



Em termos básicos, a computação reconfigurável combina a velocidade do hardware com a flexibilidade do software. A tecnologia da computação reconfigurável consiste na habilidade de se modificar o hardware da arquitetura do sistema em tempo real para se adequar à aplicação; e isto deve ser realizado com o chip energizado.

Os sistemas de computação reconfigurável são plataformas onde a arquitetura pode ser modificada em tempo real para melhor se adequar à aplicação que será executada, Deste modo, o processador reconfigurável passa a trabalhar com uma arquitetura desenvolvida exclusivamente para aquele determinado tipo de aplicação, permitindo uma eficiência muito maior do que a normalmente encontrada em processadores de uso geral. Isto ocorre porque o hardware é otimizado para executar os algoritmos necessários para aquela aplicação específica; ou seja, para se obter um melhor desempenho de um algoritmo, este deve ser executado num hardware específico para ele. Acentuados ganhos de desempenho podem ser obtidos com a utilização deste hardware específico. - eletronica.org




Tradicionalmente, quando pensamos em computadores de uso geral, pensamos em um microprocessador executando um programa seqüencial. Entretanto, uma característica simples que define um processador de uso geral seria a de um pedaço de silício, configurado após a fabricação como um Circuito Integrado (CI), para resolver qualquer tarefa computacional. Isso significa, que até por motivos econômicos muitas aplicações poderiam ser executadas sobre um único CI, e também que o mesmo CI poderia resolver problemas diferentes em diferentes instantes de tempo. Significando ainda que as pessoas poderiam programar esses componentes para fazerem coisas que o produtor original do CI nunca teria imaginado fazer.

Computação Reconfigurável, compartilha todas essas características de "computador de uso geral", mas organiza a computação de maneira muito diferente. Ao invés de computar uma função sequencial através de um conjunto de instruções de tempo, igual a um processador, as arquiteturas reconfiguráveis geralmente computam a função através de unidades funcionais configuradas no espaço (unidades em diferente blocos dentro dos FPGAs). Temos portanto, computação paralela envolvendo diferentes unidades funcionais que geram e consomem resultados intermediários. A diferença portanto está na computação totalmente temporal/sequencial das tarefas versos computação totalmente espacial/paralela. - www.icmc.usp.br


Observa-se que a computação tem muito a ganhar com as pesquisas na área da Computação Reconfigurável, pois umas das grandes limitações dos sistemas operacionais se deve ao hardware, muitos algoritmos são extremamente dependentes do hardware que estão sendo executados, se extendermos a idéia de reconfiguração para uma arquitetura unica onde todos os algoritmos fossem implementados para uma arquitetura, e internamente o chip se encarregasse de configurar a arquitetura para aquela que é mais adequada ao algoritmo certamente os programadores de sistemas operacionais teriam mais tempo de se preocupar com questões, que infelizmente, não raro são, meio que deixadas de lado, pois atualmente é necessário o programador conhecer as instruções de manipulação de Discos Rígidos, tipos de memória, tipos de controladoras de CDROM, tipos de teclado ...

Tendo em vista que a diversidade de fabricantes de periféricos de computadores, celulares, palms ... é enorme, coitado do programador que tem que aprender como funcionam os dispositivos de cada fabricante...
Se todos seguissem apenas um padrão, ajudaria e muito ...!


Não é atoa que boa parte dos programadores odeia programar sistemas operacionais!
Obviamente, os programadores, analistas, arquitetos, ... mais folgados que só querem trabalhar com ferramentas RAD - Rapid Application Development, não fazem idéia do trabalho que da programar um SO - Sistema Operacional (claro exclui a galerinha que trabalha com linguagens multiplataforma, onde faz-se necessário conhecer mais linguagem, nesses casos é óbvio que é melhor fazer as coisas nos IDE's da vida, agora C Builder, que é isso ? )

Quase ia esquecendo ...
Achei um video legal relacionado ao assunto ...



Mas, a idéia é apenas imaginar o que será posível no futuro ...!

Nenhum comentário: