O que é computação reconfigurável?
Computação reconfigurável é um termo aplicado a várias opções de computação. Um computador reconfigurável é aquele em que os chips e componentes da arquitetura do computador podem ser trocados por outros sob demanda. Como alternativa, os chips e componentes podem ser reorganizados e conectados de maneira diferente, a fim de executar funções diferentes e seguir diferentes disposições de fluxo de dados. Um computador reconfigurável pode ou não conter uma unidade de processamento de computador (CPU) de uso geral, pode ter várias CPUs ou apenas ser executado por circuitos integrados dedicados e matrizes de portas programáveis em campo. Algumas pessoas se referem à computação reconfigurável como computação híbrida, computação paralela, computação em pipeline ou computação de alto desempenho.
Os computadores FPGA (field-programmable gate array) podem ter uma CPU para executar funções de plataforma e rede, ou podem executar todas as funções da CPU independentemente, em um computador reconfigurável. Esses FPGAs são componentes lógicos de computador que podem ser agrupados em uma variedade de configurações de fiação, produzindo diferentes funções e fluxos de dados, e podem ser reorganizados em novos arranjos a qualquer momento. Essa flexibilidade fornece o máximo poder de computação bruto para tarefas especializadas de computação e maior capacidade de velocidade em computadores de uso geral. Em opções alternativas, os FPGAs podem ser repetidamente reprogramados por linguagens específicas de hardware, no uso da computação paralela, para produzir diferentes caminhos de fluxo de dados e operações simultâneas de dados de pipeline.
A computação híbrida é considerada computação reconfigurável, pois envolve um núcleo de CPU de uso geral combinado com núcleos específicos de aplicativos para usos específicos, aumentando os recursos e a velocidade de certas funções de computação. Esses núcleos específicos de aplicativos podem ser FPGAs, reconfigurados por um consumidor ou matrizes de processamento de dados reconfiguráveis (rDPAs). Além disso, uma placa de expansão de computador PCI Express® pode ser adicionada internamente à placa-mãe ou externamente em seu próprio gabinete, para aumentar os recursos da placa gráfica ou de sinalização. A computação reconfigurável tem tudo a ver com oferecer opções de alto desempenho para tarefas especializadas.
A razão pela qual os sistemas de computação reconfiguráveis são preferidos à computação de uso geral é que os sistemas reconfiguráveis fornecem essa flexibilidade de desempenho. Um sistema reconfigurável pode ser alterado rapidamente antes da execução, entre conjuntos de funções ou em praticamente qualquer ponto durante a execução por fluxos de instruções. Essas reconfigurações podem ocorrer enquanto outra parte do sistema lógico está computando outras tarefas. Há uma grande diferença de velocidade entre o uso de tarefas executadas por software e a flexibilidade da computação reconfigurável para executar as mesmas tarefas, enquanto consome menos energia.
Nas comunidades científica, acadêmica, militar e empresarial, muitos campos de pesquisa estão sendo realizados para promover práticas computacionais reconfiguráveis. Grande parte dessa pesquisa tem como objetivo produzir um melhor gerenciamento de sobrecarga em sistemas operacionais. De maneira relacionada, pesquisas estão sendo feitas sobre escolhas na delegação de tarefas para hospedar CPUs e FPGAs lógicos. Além disso, são enfatizadas estratégias de otimização para FPGAs em processamento de vídeo, sinal e rede para comunidades científicas e militares e bioinformática para comunidades médicas.