Por que os portões reversíveis não são usados?

25

Eu estava lendo o livro "A singularidade está próxima", escrito por Kurzweil e ele mencionou os portões reversíveis como, por exemplo, o portão de Fredkin . A vantagem de usar esses portões é que podemos nos livrar do desperdício térmico relacionado à computação, onde os bits simplesmente desaparecem no calor, e a computação não precisará de nenhuma entrada de energia. Essas suposições fazem com que esses portões soem como uma solução milagrosa. Portanto, a questão é quais obstáculos técnicos ainda estão impedindo seu uso em larga escala.

Também acho uma pena nunca ter ouvido falar desses portões em meu bacharelado em engenharia elétrica e em mestrado em uma universidade alemã de topo ...

Mehdi
fonte
5
Observe que a computação quântica se refere muito a portas reversíveis (isso faz parte do que significa "unitário").
David Richerby
11
@DavidRicherby Nem todos os cálculos quânticos são reversíveis; eventualmente, ocorre decoerência.
8283 Alice
Observe que qualquer computador prático que use portas reversíveis ainda gerará calor, pois é necessário executar a correção de erros para manter o computador nos trilhos. A correção de erros requer inerentemente operações irreversíveis (ou um fornecimento contínuo de zero bits; a mesma diferença).
Craig Gidney

Respostas:

18

Eu não sou um especialista neste tópico, mas apenas lendo casualmente a Wikipedia:

baseia-se no movimento de bolas de bilhar esféricas em um ambiente livre de fricção, feito de amortecedores contra os quais as bolas batem perfeitamente

... isso parece muito realista.

Ninguém realmente descobriu como realmente criar esses portões, eles são meramente de interesse teórico. Isso pode explicar por que você nunca ouviu falar deles, pois a engenharia geralmente lida com a prática.

A premissa da computação reversível é que, quando um pouco desaparece, é gerada alguma quantidade de calor. Usando portões reversíveis, nenhum bit aparece ou desaparece, de modo que a computação poderia ser muito mais eficiente com portões reversíveis.

O limite teórico reivindicações reversível Computing para contornar é que apagar um bit de informação gera pelo menos energia em calor. Para um computador rodando a 60kTln2 comtransistores fazendo cada um dos bits desaparecer a uma taxa de, que corresponde ade geração de calor. Isso representa apenas uma pequena proporção () do uso de energia de um computador.60C 5109 165GHz 1 / 1000016mW1/10000

Nossos computadores atuais não são limitados pela geração de calor associada ao desaparecimento de bits. Eles são limitados pela ineficiência inerente em mover elétrons em pequenos traços de cobre.

Tom van der Zanden
fonte
5
-1. Algumas pessoas fizeram portões reversíveis e construíram uma CPU inteira com eles. Há uma fotografia dessa CPU de lógica reversível em cise.ufl.edu/research/revcomp .
David Cary
2
@DavidCary, mas eles não são (ou são insignificantes) mais eficientes do que os computadores feitos de portas não reversíveis.
user253751
3
@immibis Marcadamente falso; eles não estão sujeitos às mesmas leis que os computadores feitos de portas não reversíveis e, portanto, drasticamente mais eficientes.
Alice
3
@ DavidDary Por favor, mostre-me alguns dados sobre a eficiência da CPU à qual você se conectou. Tudo o que vejo é uma imagem de uma CPU com a palavra "adiabatic", mas nenhuma informação sobre o quanto mais eficiente do que os computadores tradicionais.
Tom van der Zanden
11
@TomvanderZanden Medir a eficiência é um pouco inútil se você não especificar que tipo de eficiência. Os chips RISC são mais eficientes que os CISC, em termos de tamanho de chip, mas não em termos de quantas instruções são necessárias para especificar qualquer algoritmo. Qualquer circuito reversível é imediatamente mais eficiente que um circuito tradicional porque não está sujeito ao princípio de Landauer ; isso já é uma grande vitória.
Alice
15

O problema dos portões reversíveis práticos (portões que podem (e foram) fabricados em silício) é que a economia real de energia é linearmente proporcional à velocidade com que você os executa.

Eu sei que o grupo de pesquisa de Tom Knight no MIT fabricou um pequeno processador adiabático no final dos anos 90. A família de lógica prática que eles desenvolveram é chamada lógica de recuperação de carga em nível dividido e pode ser implementada usando técnicas de fabricação padrão (CMOS). Acredito que o trabalho tenha sido continuado por Michael P Frank, da Florida State University. Um exemplo do trabalho em grupo de Tom Knight é tese o seguinte mestrado (que tem uma seção bastante decente no trabalho relacionado através início de 1990.) Vieri, CJ: Pendulum: uma arquitetura reversível Computer , tese de mestrado, MIT EECS dept, 1995.

Os circuitos reversíveis precisam ser adiabáticos (não pode haver troca de calor entre o circuito e seu ambiente), o que significa que eles devem estar sempre em equilíbrio. Para qualquer processo que precise alterar algo, você só pode aproximar o equilíbrio, fazendo a alteração acontecer o mais lentamente possível.

Se bem me lembro bem da minha termodinâmica, você pode tornar a energia de um cálculo reversível arbitrariamente pequena, mas a ação mínima (energia vezes tempo) deve ser uma constante pequena.

Lógica Errante
fonte
2
Você não se lembra da termodinâmica corretamente; O princípio de Landauer não precisa ser suportado por um circuito reversível (pois não apaga bits) e, portanto, a energia necessária pode teoricamente ser zero (e nenhum calor seria liberado). Os circuitos reversíveis também não precisam ser adiabáticos; foram feitos portões reversíveis práticos que não são mais lentos que os chips não reversíveis (levando em consideração que os chips reversíveis são geralmente maiores e, portanto, têm uma velocidade de aumento da latência leve).
Alice
"aumento da velocidade da latência da luz": você está se referindo a chips ópticos reversíveis ? A maioria dos chips é eletrônica.
Zylstra
6

O maior obstáculo que impede o uso em larga escala é o mesmo que para circuitos assíncronos e praticamente qualquer outro projeto de circuito não-padrão: a lei de Moore.

A lei de Moore tornou-se uma profecia auto-realizável; como visto no Cronograma de lançamento de Tick Tock , os fabricantes de chips veem o cumprimento da lei de Moore como um desafio. Devido à necessidade de cumprir a lei de Moore, nos tornamos cada vez mais hábeis em diminuir o tamanho dos chips ao avançar na litografia (e geralmente usando truques, como padrões múltiplos).

O que tudo isso tem a ver com portões reversíveis? À medida que as fundições correm para liberar tamanhos de transistor mais novos e menores, as empresas que desejam imprimir novos chips veem um caminho fácil para aumentar a velocidade, simplesmente adicionando mais cache e reformulando seus projetos convencionais para melhor usá-lo.

O assassino do melhor não são obstáculos tecnológicos; é o sucesso do bom o suficiente .

Alice
fonte
11
Espero que um dia bom o suficiente não seja mais o suficiente.
Mehdi
@Mehdi Todos nós não desejamos. Mas eu não teria tanta certeza; Atualmente, a energia é barata e há caminhos para continuar o ciclo atual por pelo menos mais 5 anos (possivelmente 10, se encontrarmos uma maneira de fazer com que certas tecnologias funcionem . Depois disso, algumas novas tecnologias precisarão substituir a litografia, mas isso não significa que tem que ser não convencionais de litografia 3D poderia fornecer tanto fichas mais densas, construindo ao mesmo campo, mas em direções diferentes isso poderia nos levar ganha até 2050...
Alice
3

Dispositivos de computação úteis requerem feedback, o que torna possível que um elemento do circuito execute um número essencialmente ilimitado de cálculos seqüenciais. Os circuitos de feedback utilizáveis ​​devem conter seções cujo número total de entradas (contando as que são retornadas das saídas e as que não são) excede o número de saídas retornadas à entrada (a única maneira que o número de entradas não seria ' (exceder o número de saídas de realimentação seria se os circuitos não respondessem de maneira alguma a estímulos externos). Como funções lógicas perfeitamente reversíveis não podem ter mais entradas do que saídas, não é possível construir a partir delas nenhuma das estruturas de feedback necessárias para executar repetidamente tarefas de computação não triviais. Observe que, com a tecnologia CMOS usada nos computadores atuais, é necessário feedback para garantir que os resultados relatados pelos cálculos em diferentes partes de um circuito sejam disponibilizados simultaneamente para outras partes, pois, se não fossem o tempo relativo com o qual os sinais chegam, constituir "informações" que não poderiam ser perfeitamente transmitidas a jusante; outras tecnologias podem possibilitar que muitos portões propagem sinais exatamente na mesma taxa, mantendo a reversibilidade, mas não conheço nenhuma tecnologia prática para isso.

Observe que, da perspectiva do CS, é trivial tornar um processo de computação reversível se houver um meio de armazenamento inicialmente vazio, cujo tamanho é essencialmente proporcional ao número de etapas vezes a quantidade de estado que pode mudar em cada etapa. Essa afirmação não contradiz a afirmação do parágrafo anterior, pois o armazenamento proporcional ao número de etapas exigirá um circuito proporcional ao número de etapas, o que implicará um circuito proporcional à quantidade que seria necessária se todo o feedback fosse eliminado.

Se é permitido ter saídas que são ignoradas se, dadas as devidas condições de entrada, elas nunca aumentarem, talvez seja possível projetar um sistema que, em teoria, se beneficiaria da lógica reversível. Por exemplo, se alguém tivesse um algoritmo que operasse em um pedaço de RAM de 256 palavras e desejasse usar uma "CPU lógica reversível" que executasse 1.000.000 de operações por segundo e cada operação atualizasse um registro, o contador de programa ou um palavra RAM, pode-se usar uma "CPU reversível" que:

  • executou várias instruções e, em cada uma delas, enviou o que foi sobrescrito para um buffer LIFO
  • após a execução de várias instruções, copie a RAM para um buffer de "encaminhamento" inicialmente em branco
  • usando os valores no LIFO, execute todos os cálculos em ordem inversa
  • sobrescreva o conteúdo da RAM principal pelo buffer de encaminhamento, que seria apagado no processo.

A receita acima pode ser repetida várias vezes para executar o algoritmo por um número arbitrário de etapas; apenas o último passo da receita não seria reversível. A quantidade de energia gasta por etapa algorítmica em operações não reversíveis seria inversamente proporcional ao tamanho do LIFO e, portanto, poderia ser arbitrariamente pequena se alguém estivesse construindo para construir um LIFO grande o suficiente.

Para que essa capacidade se traduza em qualquer tipo de economia de energia, no entanto, seria necessário ter um LIFO que armazenasse energia quando as informações fossem inseridas e retornasse essa energia quando fosse lida. Além disso, o LIFO teria que ser grande o suficiente para armazenar os dados do estado por etapas suficientes para que o custo de energia usado fosse menor do que a quantidade de energia economizada. Dado que é improvável que a quantidade de energia perdida no armazenamento e recuperação de N bytes de qualquer FIFO prático seja O (1), não está claro que o aumento de N reduza significativamente o consumo de energia.

supercat
fonte
11
@LoganMayfield: Acho que você ignora o requisito de que o comprimento de fita necessário seja proporcional ao número de etapas a serem executadas de forma reversível. Se eu jogar um cartucho no meu Atari 2600 e ligá-lo por um tempo, ele executará cerca de 100 bilhões de ciclos por dia. Como o sistema (incluindo todos, exceto os maiores cartuchos) teria menos de 100.000 transistores, isso representa mais de um milhão de ciclos por dia por transistor. Se alguém quis projetar uma máquina equivalente que poderia funcionar por um dia totalmente reversível, mesmo com a capacidade de fazer uma LIFO reversível com um transistor por pouco ...
supercat
11
... seria necessário aumentar o número de transistores em mais de um milhão de vezes. Se for necessário executar alguns milhares de ciclos de cada vez de forma reversível, capture os resultados, rebobine os ciclos e substitua o estado inicial anterior pelos resultados capturados, que podem quase ser viáveis, mas seriam monstruosamente complexos. Com qualquer coisa que se assemelhe à tecnologia atual, qualquer redução em perdas "teoricamente inevitáveis" que se obteria usando a computação reversível seria inundada por um aumento na energia perdida por causas que eram evitáveis apenas na teoria.
Supercat 07/02
11
Eu estava preocupado apenas com a afirmação da sua resposta original que dizia: "a tecnologia reversível não pode computar as mesmas coisas que a tecnologia irreversível". Eu não quis dizer que é prático.
Logan Mayfield
11
@LoganMayfield: A pergunta inicial era "por que essas coisas não são usadas"? Eu sugeriria que quase todos os dispositivos de computação práticos usem feedback de tal maneira que uma quantidade fixa de hardware seja capaz de executar um número ilimitado de cálculos, se houver tempo ilimitado. Isso é algo que a lógica reversível simplesmente não pode fazer . Essa é uma grande diferença qualitativa entre computação reversível e não reversível. Pode ser que até mesmo um computador que só pode executar um número limitado de operações antes de "rebobinar" ainda poderia ser útil, então ...
supercat
11
... Editei o post para dizer o que seria necessário para usar uma coisa dessas para realizar qualquer trabalho significativo. Eu acho que o problema prático fundamental deriva, no entanto, do que eu disse originalmente: os computadores aproveitam a maior parte de sua capacidade de reutilizar elementos de circuito um número arbitrário de vezes para realizar cálculos diferentes e a incapacidade de lógica reversível de manuseio que a colocará em séria desvantagem logo de cara.
Supercat 07/02
2

A computação reversível aplicada prática é uma área ativa de pesquisa e provavelmente se tornará mais proeminente no futuro. Pode-se ver que a maior parte da computação quântica tenta criar portas de qubit reversíveis e é muito difícil experimentalmente corresponder às propriedades teóricas do formalismo de QM, mas está sendo feito um progresso constante.

Outro ponto básico é que sempre que a dissipação de energia diminui em um chip, está essencialmente movendo o sistema de portas para "mais reversível", e a dissipação de chips de menor energia é uma alta prioridade há muito tempo na computação móvel (representando uma espécie de mudança de paradigma em todo o setor). Durante décadas, os ganhos de desempenho de chips (semelhantes à lei de Moore) ocorreram por estar um pouco "relaxados" ou até "desleixados" com a dissipação de energia, mas que chegaram a um ponto de retornos decrescentes alguns anos atrás. A fabricante líder mundial de chips Intel está tentando se transformar em chips de menor potência para competir com a Arm, que tem uma vantagem depois de nunca ter construído nada além disso.

Existe alguma pesquisa recente possivelmente inovadora usando a tecnologia supercondutora (junho de 2014), e existem outros projetos de pesquisa ativos nessa área.

Ver, por exemplo , portão lógico reversível usando dispositivos supercondutores adiabáticos / Takeuchi, Yamanashi, Yoshikawa, Nature:

A computação reversível tem sido estudada desde que Rolf Landauer avançou o argumento que passou a ser conhecido como princípio de Landauer. Este princípio afirma que não há dissipação de energia mínima para operações lógicas em computação reversível, porque não é acompanhada por reduções na entropia de informações. No entanto, até agora, nenhuma porta lógica reversível prática foi demonstrada. Um dos problemas é que as portas lógicas reversíveis devem ser construídas usando dispositivos lógicos extremamente eficientes em termos de energia. Outra dificuldade é que as portas lógicas reversíveis devem ser lógica e fisicamente reversíveis. Aqui, propomos o primeiro portão lógico reversível prático usando dispositivos supercondutores adiabáticos e demonstramos experimentalmente a reversibilidade lógica e física do portão. Além disso, estimamos a dissipação de energia do portão, e discuta a dissipação mínima de energia necessária para operações lógicas reversíveis. Espera-se que os resultados deste estudo permitam que a computação reversível passe do estágio teórico para o uso prático.

vzn
fonte
1

Os portões de Fredkin são realistas e muitos foram implementados. Existem placas FPGA inteiras, estritamente usando portas lógicas reversíveis que são implementadas usando as portas Fredkin e Toffoli como suas LUs.

Existem vários problemas que afetam seu uso generalizado na arquitetura de computadores. Existem várias vantagens "anunciadas" para os portões de borracha que não necessariamente funcionam como o esperado em circuitos reais. A economia de energia dos portões lógicos reversíveis deve-se principalmente ao fato de eles não exigirem a criação de entropia quando uma operação é executada. Como afirma Tom van der Zanden, essa é a principal razão pela qual a lógica reversível pode ser muito mais eficiente. Por que esse não é o caso em circuitos reais:

  1. Atualmente, a tecnologia de transistor é mais o que limita a velocidade e o consumo de energia do computador e, infelizmente, são necessários mais transistores para criar um portão de madeira, em oposição aos tradicionais portões nand ou nor. Isso significa que os portões fredkin desperdiçam mais energia através do vazamento do transistor e exigem mais espaço no silício (o que significa mais caro). Isso por si só é suficiente para justificar o uso de portões nand / nem over
  2. Como a forma principal de perda de energia é proveniente de transistores e não da criação de entropia devido ao cálculo real, você ainda precisa executar linhas de energia e de aterramento nos portões de madeira para compensar essa perda de energia. Esses ônibus grandes são ônibus fan-in, que também ocupam muito espaço em silício. Como há mais transistores em um portão de couro, isso leva a mais fan-in e, portanto, mais espaço desperdiçado em silício.
  3. Embora tenhamos portas reversíveis de couro sintético, elas são construídas a partir de dispositivos não reversíveis (transistores). Isso significa que alguns dos ganhos de energia não são alcançados com a tecnologia atual de gate (fora dos circuitos quânticos).
  4. Tamanho e velocidade estão relacionados ao silício, quanto mais próximos os itens estiverem, geralmente mais rápido você poderá fazê-los. Como os portões fredkin usam mais transistores e têm mais conexões de energia, etc., eles tendem a ser significativamente mais lentos.
  5. As vantagens de consumo de energia e velocidade só são alcançadas quando os bits são reutilizados com sucesso. A maioria dos algoritmos que temos é terrivelmente não conservadora. Você pode ver isso pesquisando uma implementação de um somador completo ou registro de turno usando portões fredkin. Como a lógica reversível não permite a entrada e saída lógica, isso leva a muitos cálculos de bits que não acabam sendo usados ​​para obter uma operação útil. Algo como adicionar dois números de 8 bits produzirá 9 bits ou informações úteis (resultado de 8 bits, 1 bit de transporte), mas exigirá um barramento de entrada com muitas constantes de 1 e 0 e produzirá muitos bits de saída de dados indesejados. Como você possui um barramento mais amplo, isso leva a um circuito ainda mais difundido no silício.
  6. Além disso, os bits indesejados devem ser descartados pelo processador e, portanto, levariam à perda de energia, pois nunca são usados

Resumo: os portões de Fredkin produzem muita computação de resíduos ao implementar algoritmos reais. computação de resíduos = energia desperdiçada. Por esse motivo, os tamanhos de barramento aumentam, espalhando e diminuindo a velocidade. Além disso, a implementação física dos portões fredkin é a maior preocupação para a tecnologia atual. A implementação atual espalha mais, exigindo mais energia e linhas de aterramento para compensar as perdas no circuito (que é uma preocupação muito maior com a perda de energia) e usa muito mais imóveis no silício (que é uma preocupação muito maior com a velocidade )

Sei que esse é um tópico antigo, mas muitas das respostas se concentram no fato de que os transistores são ineficientes. Meu objetivo é mostrar que nossos algoritmos também são ineficientes e não lidam bem com computação reversível. Sou engenheiro de computação que gosta de pesquisar computação quântica e reversível

Ryan
fonte