O Memcomputador
Pesquisadores norte-americanos e italianos construíram o primeiro "memcomputador", uma nova arquitetura computacional que lembra mais a forma como funciona o cérebro humano.
Na arquitetura dos computadores atuais, conhecida como paradigma de Turing, o armazenamento (memória) e o processamento (CPU) dos dados são feitos em áreas distintas, o que exige o transporte constante desses dados de um lado para o outro.
Pesquisadores norte-americanos e italianos construíram o primeiro "memcomputador", uma nova arquitetura computacional que lembra mais a forma como funciona o cérebro humano.
Na arquitetura dos computadores atuais, conhecida como paradigma de Turing, o armazenamento (memória) e o processamento (CPU) dos dados são feitos em áreas distintas, o que exige o transporte constante desses dados de um lado para o outro.
Vista geral do memcomputador, incluindo os seis memprocessadores, os osciloscópios e demais aparelhos necessários para inserir os dados e ler os resultados. [Imagem: Traversa et al. - 10.1126/sciadv.1500031]
No memcomputador tudo é feito no mesmo lugar, com um ganho exponencial de velocidade.
Isto é possível porque, em lugar dos transistores dos computadores atuais, o memcomputador usa memristores, componentes eletrônicos que conseguem guardar dados e podem ser usados para cálculos, tudo simultaneamente. Cada memristor consegue se lembrar da corrente elétrica que o atravessou alterando sua própria resistência, de modo que o dado é mantido na memória ao mesmo tempo que o componente está sendo usado para fazer os cálculos.
Memcomputação
"A memcomputação é um novo paradigma 'não-Turing' de computação que utiliza células de memória interagentes (memprocessadores) para armazenar e processar informações na mesma plataforma física," explica a equipe.
"Foi recentemente provado matematicamente que os memcomputadores têm o mesmo poder computacional das máquinas de Turing não determinísticas. Portanto, elas podem resolver problemas NP-completos em tempo polinomial e, usando a arquitetura apropriada, com recursos que só crescem polinomialmente com o tamanho da entrada," acrescentam.
O "problema NP-completo" a que se referem os pesquisadores pode ser entendido, de forma simplificada, pela questão: "Dado um conjunto de números inteiros, existe ao menos um subconjunto não vazio cuja soma seja zero?"
Memprocessador - o protótipo usa seis unidades iguais a essa. [Imagem: Traversa et al. - 10.1126/sciadv.1500031]
Desempenho do memcomputador
Nos computadores eletrônicos atuais, a solução desse problema exige que cada número seja levado da memória ao processador e somado com cada um dos outros. Se seu conjunto tem 1 milhão de números, cada número será comparado 1 milhão de vezes, o que dará 1 trilhão de viagens entre o processador e a memória.
O memcomputador, por sua vez, cria uma espécie de labirinto para a eletricidade através de toda a malha de memristores. Nesse labirinto, cada entrada representa um número do conjunto original, enquanto as saídas representam cada um dos números com os quais ele deve ser comparado. Além disso, a eletricidade só flui pelo circuito através de combinações específicas - combinações que deem uma soma determinada.
Desta forma, pegando um número, o memcomputador faz todas as suas combinações com os demais em uma única rodada do seu "labirinto elétrico". Assim, no mesmo exemplo anterior, com um conjunto de 1 milhão de números, o memcomputador precisará de apenas 1 milhão de rodadas, contra 1 trilhão dos computadores atuais.
Transformando isso em tempo, se as duas arquiteturas levarem um segundo para fazer cada cálculo, o memcomputador resolverá o problema em 11,5 dias, enquanto os computadores atuais levarão 31.700 anos.
Ruído e correção de erro
O memcomputador usa seis memprocessadores, cada um construído em sua própria placa de circuito impresso. Embora não deem detalhes sobre os memristores propriamente ditos, a equipe afirma que todo o circuito foi construído com técnicas da microeletrônica tradicional, disponíveis na maioria dos laboratórios.
Mas, é claro, nem tudo está pronto para mudar o mundo da computação e da informática - e nem para dispensar as pesquisas com os computadores quânticos.
Os pesquisadores relatam que o memcomputador sofre de uma anomalia congênita: uma forte perda de dados. O labirinto criado ao longo da matriz de memristores degrada-se com a distância, tornando difícil separar o dado do ruído introduzido pelo ambiente. Mas, segundo eles, isto poderá ser corrigido com o desenvolvimento de códigos de correção de erros adequados.
"Vale a pena notar que os algoritmos de computação quântica também exigem necessariamente códigos de correção de erros para a sua implementação prática por causa de várias fontes inevitáveis de ruído," compara a equipe. Bibliografia:
Fonte: Memcomputing NP-complete problems in polynomial time using polynomial resources and collective states
Fabio Lorenzo Traversa, Chiara Ramella, Fabrizio Bonani, Massimiliano Di Ventra
Science Advances
Vol.: 1, no. 6, e1500031
DOI: 10.1126/sciadv.1500031