Versão moderna do desenvolvimento de computadores analógicos antigos

Cientistas e engenheiros podem tirar proveito de uma abordagem há muito abandonada da computação



Este computador mecânico analógico foi usado para prever marés. Era conhecido como o "cérebro de bronze antigo" ou, mais formalmente, a "Máquina de previsão de marés nº 2". Ela serviu o Levantamento Geológico e Costeiro dos EUA para calcular as tabelas de marés de 1912 e não se aposentou até 1965, quando foi substituída por um computador eletrônico.

Quando Neil Armstrong e Buzz Aldrin desceram à Lua em 1969 como parte da missão Apollo 11, essa foi provavelmente a maior conquista na história da engenharia da humanidade [além do lançamento do primeiro satélite e do primeiro homem no espaço, o primeiro homem aberto espaço, bem como a criação de um ônibus espacial automático / aprox. transl.]. Muitas pessoas não percebem que o ingrediente importante no sucesso das missões Apollo e seus antecessores eram os computadores analógicos e híbridos (analógicos-digitais) que a NASA usava para simular e, em alguns casos, até controlar voos. Muitas das pessoas que vivem hoje nem ouviram falar de computadores analógicos, acreditando que os computadores, por definição, são dispositivos digitais.

Se os computadores analógicos e híbridos eram tão valiosos meio século atrás, por que desapareceram quase sem deixar vestígios? Isso se deve às limitações da tecnologia da década de 1970: na verdade, era muito difícil desenvolver, construir, gerenciar e manter. Mas os computadores analógicos e híbridos analógico-digitais construídos com a ajuda de tecnologias modernas não teriam tais desvantagens, então agora existem vários estudos sobre cálculos analógicos nas áreas de aprendizado de máquina, inteligência de máquina e circuitos biomiméticos .

Neste artigo, vou me concentrar em outra aplicação de computadores analógicos e híbridos: computação científica eficiente. Acredito que os computadores analógicos modernos podem complementar suas contrapartes digitais na resolução de equações relacionadas à biologia, dinâmica de fluidos, previsão do tempo, química quântica, física de plasma e muitos outros campos da ciência. E aqui está como esses computadores incomuns poderiam fazer isso.

Um computador analógico é um sistema físico configurado para funcionar de acordo com equações idênticas ao que você deseja resolver. Você atribui as condições iniciais correspondentes ao sistema que deseja investigar e permite que as variáveis ​​no computador analógico evoluam com o tempo. Como resultado, você obtém uma solução para as equações correspondentes.

Vamos dar um exemplo simples ao absurdo: uma mangueira com água e um balde pode ser considerada como um computador analógico que executa cálculos integrais. Ajuste o volume de água que flui na mangueira para corresponder à função que você integra. Direcione o fluxo para o balde. A solução será a quantidade de água no balde.

Embora alguns dos computadores analógicos realmente usassem fluidos fluidos, os primeiros eram dispositivos mecânicos que continham rodas e engrenagens. Isso inclui o analisador diferencial Vannevar Bush de 1931, criado com base em princípios nascidos no século 19, baseado principalmente no trabalho de William Thomson (que mais tarde se tornou Lord Kelvin) e seu irmão James, que desenvolveu computadores analógicos mecânicos para calcular as marés. Computadores analógicos desse tipo são usados ​​há muito tempo para tarefas como controlar canhões em navios de guerra. Em 1940, computadores analógicos eletrônicos começaram a ser usados ​​para isso, embora paralelamente, os computadores mecânicos continuassem em serviço. E ninguém menos que Claude Shannon, o pai da teoria da informação formal, publicou em 1941 um frutuoso estudo teórico da computação analógica.

Ao longo do tempo, o amplo desenvolvimento de computadores analógicos começou nos EUA, URSS, Alemanha, Grã-Bretanha, Japão, etc. Eles foram produzidos por muitos fabricantes, por exemplo, Electronic Associates Inc., Applied Dynamics, RCA, Solartron, Telefunken e Boeing. Inicialmente, foram utilizados no desenvolvimento de conchas e aeronaves, bem como em simuladores de vôo. Naturalmente, a NASA era o principal cliente. Mas sua aplicação logo se espalhou para outras áreas, incluindo o controle de reatores nucleares.


Este computador analógico eletrônico PACE 16-31R fabricado pela Electronic Associates Inc. foi instalado no Lewis Jet Flight Laboratory da NASA (agora o Glenn Research Center) em Cleveland em meados da década de 1950. Tais computadores analógicos foram usados, entre outras coisas, para programas de quadrinhos da NASA, como Mercury, Gemini, Apollo.

Inicialmente, os computadores analógicos eletrônicos tinham centenas ou milhares de tubos eletrônicos, que foram posteriormente substituídos por transistores. Primeiro, eles foram programados configurando manualmente os contatos entre os vários componentes em um painel especial. Eles eram máquinas complexas e bizarras, precisavam de pessoal especialmente treinado para iniciar - tudo isso desempenhou um papel em sua morte.

Outro fator foi o fato de que, na década de 1960, os computadores digitais se desenvolveram aos trancos e barrancos devido a muitas de suas vantagens: programação simples, trabalho algorítmico, facilidade de armazenamento, alta precisão, capacidade de processar tarefas de qualquer tamanho na presença de tempo. A velocidade dos computadores digitais aumentou rapidamente ao longo da década, bem como na próxima vez, quando a tecnologia do MOS (semicondutor de óxido de metal) para circuitos integrados foi desenvolvida, o que possibilitou a colocação de um grande número de transistores operando com comutadores digitais em um único chip.

Os fabricantes de computadores analógicos logo incorporaram circuitos digitais em seus sistemas, o que gerou computadores híbridos. Mas era tarde demais: a parte analógica dessas máquinas não podia ser integrada em larga escala, usando as tecnologias de desenvolvimento e produção da época. O último grande computador híbrido foi fabricado na década de 1970. O mundo mudou para computadores digitais e não olhou mais em volta.

Hoje, a tecnologia MOS analógica fez um progresso tremendo: pode ser encontrada nos circuitos de recebimento e transmissão de smartphones, em dispositivos biomédicos complexos, em todos os tipos de eletrônicos de consumo e nos muitos dispositivos inteligentes que compõem a Internet. Computadores analógicos e híbridos construídos com essa tecnologia moderna avançada podem ser muito diferentes dos existentes há meio século.

Mas por que considerar a eletrônica analógica aplicada à computação? O fato é que os computadores digitais comuns, embora poderosos, já podem corresponder ao seu limite. Cada comutação de um circuito digital consome energia. Bilhões de transistores em um chip alternando a velocidades de gigahertz produzem uma quantidade enorme de calor que precisa ser removida de alguma forma antes de atingir uma temperatura crítica. Você pode encontrar facilmente vídeos no YouTube demonstrando como fritar um ovo em alguns chips de computador digital modernos.

A eficiência energética é especialmente importante para a computação científica. Em um computador digital, o fluxo de tempo deve ser aproximado usando uma sequência de etapas discretas. Ao resolver certas equações diferenciais complexas, é necessário usar etapas especialmente pequenas para garantir uma solução como resultado do algoritmo. Isso significa que isso requer uma quantidade enorme de computação, que consome muito tempo e consome muita energia.

Há cerca de 15 anos, pensei: um computador analógico projetado com a ajuda da tecnologia moderna pode oferecer algo valioso? Para responder a essa pergunta, Glenn Cowan, então estudante de graduação que eu liderava na Colúmbia Britânica, e agora professor da Universidade Concordia em Montreal, projetou e construiu um computador analógico de chip único. Continha integradores analógicos, multiplicadores, geradores de funções e outras unidades dispostas no estilo de uma matriz de portas programável pelo usuário . Os vários blocos foram conectados por um mar de fios que podiam ser ajustados para que eles criassem contatos após a fabricação do chip.


Muitos problemas científicos exigem a solução de sistemas de equações diferenciais acopladas. Para simplificar, consideramos duas equações com duas variáveis ​​x 1 e x 2 . Um computador analógico encontra x 1 e x 2 usando um circuito no qual a corrente que flui através de dois fios obedece às mesmas equações. Ao usar um circuito adequado, as correntes nos dois fios representarão a solução das equações iniciais.


Para isso, precisamos de integradores analógicos, unidades de ramificação, fontes de corrente contínua (correntes somadas requerem uma simples combinação de fios). Para resolver equações diferenciais não lineares, um computador analógico em um chip usa circuitos de tempo contínuos para formar blocos que podem criar funções arbitrárias (rosa)


Acontece que um computador analógico de uso geral pode ser criado com base em uma matriz de portas programável pelo usuário contendo muitos elementos analógicos controlados digitalmente. Cada faixa cinza horizontal e vertical indica vários fios. Quando uma precisão mais alta é necessária, os resultados do computador analógico podem ser alimentados digitalmente para refinar.

A programação digital tornou possível combinar a entrada de um determinado bloco analógico com a saída de outro e criar um sistema controlado por uma equação que precisa ser resolvida. O temporizador não foi utilizado: tensão e correntes se desenvolveram continuamente, e não em etapas discretas. Esse computador poderia resolver equações diferenciais complexas com uma variável independente com uma precisão da ordem de vários por cento.

Para algumas aplicações, essa precisão limitada é suficiente. Nos casos em que esse resultado é muito rude, ele pode ser enviado a um computador digital para esclarecimento. Como um computador digital começa com um palpite muito bom, o resultado final pode ser alcançado em um tempo 10 vezes menor, o que reduz o consumo de energia na mesma quantidade.

Recentemente, dois estudantes da Colúmbia Britânica, Ning Guo e Yipeng Huang, Mingoo Seok, Simha Sethumadhavan e eu criamos um computador analógico em um chip de segunda geração. Como no caso dos primeiros computadores analógicos, todos os blocos de nosso dispositivo funcionavam simultaneamente e processavam os sinais de uma maneira que exigia uma arquitetura paralela de um computador digital. Agora, temos chips maiores, que consistem em várias cópias do nosso design de segunda geração, capazes de resolver tarefas maiores.

O novo circuito do nosso computador analógico é mais eficiente no consumo de energia e mais fácil de emparelhar com computadores digitais. As vantagens de ambos os mundos estão disponíveis para esse híbrido: analógico para computação de alta velocidade e baixo consumo de energia e digital para programação, armazenamento e computação de alta precisão.

Nosso último chip contém muitos circuitos usados ​​no passado para computação analógica: por exemplo, integradores e multiplicadores. Um componente-chave do nosso novo circuito é um novo circuito capaz de computar continuamente funções matemáticas arbitrárias. E aqui está o porquê disso é importante.

Os computadores digitais trabalham com sinais que recebem apenas dois tipos de níveis de tensão, representando os valores 0 ou 1. É claro que, ao passar entre esses dois estados, o sinal também deve ter valores intermediários. Um circuito digital típico processa os sinais periodicamente após as tensões se estabilizarem em níveis que representam claramente 0 ou 1. Esses circuitos operam com um temporizador do sistema com um período suficiente para que a tensão mude de um estado estável para outro antes de iniciar próxima rodada de processamento. Como resultado, esse circuito produz uma sequência de valores binários, um para cada momento no tempo.

Em vez disso, nosso gerador de funções trabalha com nossa abordagem, que chamamos de processo de tempo contínuo digital. Ele contém sinais binários atemporais que podem alterar o valor a qualquer momento, e não de acordo com as horas claramente definidas. Construímos conversores de analógico para digital e de digital para analógico, além de memória digital capaz de processar esses sinais digitais em tempo contínuo.

Podemos alimentar um sinal analógico para esse conversor de analógico para digital, e ele será convertido em um número binário. Este número pode ser usado para encontrar o valor armazenado na memória. O valor de saída é então alimentado no conversor de um dígito para um analógico. A combinação desses circuitos de tempo contínuo fornece um gerador de funções com entrada e saída analógicas.


O autor e os colegas usaram modernas tecnologias de produção para embalar um poderoso computador analógico em um pequeno estojo

Usamos nosso computador para resolver várias equações diferenciais complexas com uma precisão de vários por cento. Não pode ser comparado com um computador digital convencional. Mas precisão não é tudo. Em muitos casos, valores aproximados são suficientes para funcionar. Computação exemplar - a limitação intencional da precisão computacional - às vezes é usada em computadores digitais, por exemplo, em áreas como aprendizado de máquina, visão computacional, bioinformática e processamento de big data. Isso faz sentido quando, como acontece com frequência, os dados de entrada em si apresentam erros.

Como o núcleo do nosso computador é analógico, se necessário, ele pode ser conectado diretamente a sensores e unidades de potência. A alta velocidade permite que ele interaja com o usuário em tempo real em tarefas computacionais que seriam extremamente lentas no modo normal.

Obviamente, nossa abordagem para a computação tem falhas. Um dos problemas é que tarefas especialmente complexas exigem muitas unidades de computação analógica, o que torna o chip grande e caro.

Uma maneira de resolver esse problema é dividir a tarefa computacional em pequenas subtarefas, cada uma das quais será resolvida por um computador analógico executando um digital. Esses cálculos não serão mais completamente paralelos, mas pelo menos serão possíveis. Os pesquisadores estudaram essa abordagem há várias décadas, quando os computadores híbridos ainda estavam na moda. Eles não foram longe, porque esse tipo de computador foi abandonado. Portanto, essa tecnologia requer desenvolvimento adicional.

Outro problema é que é difícil configurar conexões arbitrárias entre blocos de circuitos remotos em um chip analógico grande. Uma rede de contatos pode se tornar proibitiva em tamanho e complexidade. No entanto, alguns problemas científicos exigirão essas conexões para que possam ser resolvidos em um computador analógico.

Essa limitação pode ajudar a contornar as técnicas de fabricação 3D. Mas, por enquanto, o núcleo analógico do nosso design híbrido é mais adequado para os casos em que a conectividade local é necessária - por exemplo, para simular um conjunto de moléculas que interagem apenas com as moléculas localizadas próximas a elas.

Outro problema é a dificuldade em implementar as funções de muitos parâmetros e o problema relacionado de baixa eficiência no processamento de equações diferenciais em derivadas parciais. Na década de 1970, várias tecnologias estavam sendo desenvolvidas para resolver essas equações em computadores híbridos, e planejamos começar de onde paramos os desenvolvimentos anteriores.

Além disso, o analógico tem desvantagens com o aumento da precisão. A precisão de um circuito digital pode ser aumentada simplesmente adicionando bits. Aumentar a precisão de um computador analógico requer o uso de uma área de chip muito maior. É por isso que nos concentramos em aplicativos de baixa precisão.

Mencionei que a computação analógica pode acelerar os cálculos e economizar energia, e quero adicionar mais detalhes. O processamento analógico em um computador do tipo que meus colegas e eu fizemos normalmente leva um milissegundo. A resolução de equações diferenciais com uma derivada requer menos de 0,1 μJ de energia. Tal chip com tecnologia de fabricação convencional (65 nm CMOS) ocupará uma área do tamanho de um milímetro quadrado.As equações com dois derivativos consomem o dobro de energia e área de cavacos, e assim por diante; o tempo para resolvê-los permanece inalterado.

Para algumas aplicações críticas com um orçamento ilimitado, você pode até considerar a integração da escala do substrato - todo o substrato de silício pode ser usado como um único chip gigante. Um substrato de 300 mm permitirá que mais de 100.000 integradores sejam colocados no chip, o que permitirá simular um sistema de 100.000 equações dinâmicas não lineares emparelhadas de primeira ordem ou 50.000 de segunda ordem e assim por diante. Isso pode ser útil para simular a dinâmica de uma grande variedade de moléculas. O tempo da solução ainda será calculado em milissegundos e dissipação de energia - em dezenas de watts.

Somente experimentos podem confirmar que computadores desse tipo serão realmente úteis e que o acúmulo de erros analógicos não os impedirá de funcionar. Mas se eles funcionarem, os resultados ultrapassarão tudo o que os computadores digitais modernos são capazes. Para eles, algumas das tarefas complexas dessa ordem exigem grandes quantidades de energia ou tempo para serem resolvidas, o que pode durar dias ou até semanas.

Obviamente, para encontrar respostas para essas e outras perguntas, serão necessárias muito mais pesquisas: como distribuir tarefas entre as partes analógica e digital, como dividir tarefas grandes em pequenas e combinar as soluções finais.

Na busca por essas respostas, nós e outros pesquisadores envolvidos em computadores analógicos podemos obter uma grande vantagem aproveitando o trabalho de engenheiros e matemáticos muito inteligentes, realizado meio século atrás. Não precisamos tentar reinventar a roda. Devemos usar os resultados obtidos anteriormente como trampolim e avançar muito mais. Pelo menos, esperamos que sim, e se não tentarmos, nunca saberemos a resposta.

Janis Cividis - Professora de Engenharia Elétrica da Columbia University

Source: https://habr.com/ru/post/pt408849/


All Articles