Versión moderna del desarrollo de las viejas computadoras analógicas.

Los científicos e ingenieros pueden aprovechar un enfoque de la informática abandonado hace mucho tiempo



Esta computadora mecánica analógica se usó para predecir las mareas. Era conocido como el "viejo cerebro de latón" o, más formalmente, la "Máquina de predicción de mareas No. 2". Sirvió en el Servicio Costero y Geológico de EE. UU. Para calcular las tablas de mareas de 1912, y no se retiró hasta 1965, cuando fue reemplazada por una computadora electrónica.

Cuando Neil Armstrong y Buzz Aldrin descendieron a la Luna en 1969 como parte de la misión Apolo 11, este fue probablemente el mayor logro en la historia de la ingeniería de la humanidad [aparte de, por supuesto, el lanzamiento del primer satélite y el primer hombre al espacio, el primer hombre abierto espacio, así como la creación de un transbordador espacial automático / aprox. transl.]. Muchas personas no se dan cuenta de que el ingrediente importante en el éxito de las misiones Apollo y sus predecesores fueron las computadoras analógicas e híbridas (analógicas-digitales) que la NASA usó para simular, y en algunos casos, incluso para controlar vuelos. Muchas de las personas que viven hoy ni siquiera han oído hablar de las computadoras analógicas, creyendo que las computadoras, por definición, son dispositivos digitales.

Si las computadoras analógicas e híbridas eran tan valiosas hace medio siglo, ¿por qué desaparecieron casi sin dejar rastro? Esto se debe a las limitaciones de la tecnología de la década de 1970: de hecho, era demasiado difícil de desarrollar, construir, administrar y mantener. Pero las computadoras analógicas e híbridas analógicas a digitales construidas con la ayuda de tecnologías modernas no tendrían tales inconvenientes, por lo que ahora hay numerosos estudios sobre computación analógica en los campos de aprendizaje automático, inteligencia artificial y circuitos biomiméticos .

En este artículo, me concentraré en otra aplicación de computadoras analógicas e híbridas: computación científica eficiente. Creo que las computadoras analógicas modernas pueden complementar sus contrapartes digitales para resolver ecuaciones relacionadas con la biología, la dinámica de fluidos, la predicción del clima, la química cuántica, la física del plasma y muchos otros campos de la ciencia. Y así es como estas computadoras inusuales podrían hacerlo.

Una computadora analógica es un sistema físico configurado para funcionar de acuerdo con ecuaciones que son idénticas a lo que desea resolver. Usted asigna las condiciones iniciales correspondientes al sistema que desea investigar y luego permite que las variables en la computadora analógica evolucionen con el tiempo. Como resultado, obtienes una solución a las ecuaciones correspondientes.

Tomemos un ejemplo simple de lo absurdo: una manguera con agua y un balde pueden considerarse como una computadora analógica que realiza cálculos integrales. Ajuste el volumen de agua que fluye en la manguera para que coincida con la función que integra. Dirija el flujo hacia el cubo. La solución será la cantidad de agua en el balde.

Aunque algunas de las computadoras analógicas en realidad usaban fluidos fluidos, las primeras eran dispositivos mecánicos que contenían ruedas giratorias y engranajes. Estos incluyen el analizador diferencial Vannevar Bush de 1931, creado sobre principios nacidos en el siglo XIX, basado principalmente en el trabajo de William Thomson (quien más tarde se convirtió en Lord Kelvin) y su hermano James, quien desarrolló computadoras analógicas mecánicas para calcular las mareas. Las computadoras analógicas de este tipo se han utilizado durante mucho tiempo para tareas como controlar cañones en acorazados. Para 1940, las computadoras electrónicas analógicas comenzaron a usarse para esto, aunque en paralelo, las computadoras mecánicas continuaron en servicio. Y nada menos que Claude Shannon, el padre de la teoría formal de la información, publicó en 1941 un fructífero estudio teórico de la computación analógica.

Alrededor del tiempo, el amplio desarrollo de las computadoras analógicas comenzó en los EE. UU., La URSS, Alemania, Gran Bretaña, Japón, etc. Fueron producidos por muchos fabricantes, por ejemplo, Electronic Associates Inc., Applied Dynamics, RCA, Solartron, Telefunken y Boeing. Inicialmente, se utilizaron en el desarrollo de proyectiles y aviones, así como en simuladores de vuelo. Naturalmente, la NASA fue el principal cliente. Pero su aplicación pronto se extendió a otras áreas, incluido el control de reactores nucleares.


Esta computadora analógica electrónica PACE 16-31R fabricada por Electronic Associates Inc. se instaló en el Laboratorio de Vuelo Lewis Jet en la NASA (ahora el Centro de Investigación Glenn) en Cleveland a mediados de la década de 1950. Tales computadoras analógicas se usaron, entre otras cosas, para programas cómicos de la NASA como Mercury, Gemini, Apollo.

Inicialmente, las computadoras analógicas electrónicas tenían cientos o miles de tubos electrónicos, que luego fueron reemplazados por transistores. Primero, se programaron configurando manualmente los contactos entre los distintos componentes en un panel especial. Eran máquinas complejas y extrañas, necesitaban personal especialmente capacitado para la puesta en marcha; todo esto jugó un papel en su desaparición.

Otro factor fue el hecho de que en la década de 1960 las computadoras digitales se desarrollaron a pasos agigantados debido a muchas de sus ventajas: programación simple, trabajo algorítmico, facilidad de almacenamiento, alta precisión, la capacidad de procesar tareas de cualquier tamaño en presencia de tiempo. La velocidad de las computadoras digitales ha aumentado rápidamente durante la década, así como durante la siguiente, cuando se desarrolló la tecnología MOS (semiconductores de óxido de metal) para circuitos integrados, lo que permitió colocar una gran cantidad de transistores que funcionan con interruptores digitales en un solo chip.

Los fabricantes de computadoras analógicas pronto incorporaron circuitos digitales en sus sistemas, lo que generó computadoras híbridas. Pero ya era demasiado tarde: la parte analógica de estas máquinas no podía integrarse a gran escala, utilizando las tecnologías de desarrollo y producción de la época. La última computadora híbrida importante se fabricó en la década de 1970. El mundo cambió a computadoras digitales y ya no miró a su alrededor.

Hoy en día, la tecnología MOS analógica ha avanzado enormemente: se puede encontrar en teléfonos inteligentes dentro y fuera, en dispositivos biomédicos complejos, en todo tipo de electrónica de consumo y en los muchos dispositivos inteligentes que componen Internet de las cosas. Las computadoras analógicas e híbridas construidas con tecnología moderna tan avanzada podrían ser muy diferentes de las existentes hace medio siglo.

Pero, ¿por qué incluso considerar la electrónica analógica aplicada a la informática? El hecho es que las computadoras digitales comunes, aunque potentes, ya pueden igualarse a su límite. Cada conmutación de un circuito digital consume energía. Miles de millones de transistores en un chip que cambian a velocidades de gigahercios producen una gran cantidad de calor que debe eliminarse de alguna manera antes de que alcance una temperatura crítica. Puede encontrar fácilmente videos en YouTube que muestran cómo freír un huevo en algunos chips modernos de computadora digital.

La eficiencia energética es especialmente importante para la informática científica. En una computadora digital, el flujo de tiempo debe aproximarse usando una secuencia de pasos discretos. Al resolver ciertas ecuaciones diferenciales complejas, es necesario utilizar pasos especialmente pequeños para garantizar una solución como resultado del algoritmo. Esto significa que requiere una gran cantidad de cómputo, que consume mucho tiempo y energía.

Hace unos 15 años, pensé: ¿puede una computadora analógica diseñada con la ayuda de la tecnología moderna ofrecer algo valioso? Para responder a esta pregunta, Glenn Cowan, entonces un estudiante graduado que dirigí en Columbia Británica, y ahora profesor en la Universidad de Concordia en Montreal, diseñó y construyó una computadora analógica de un solo chip. Contenía integradores analógicos, multiplicadores, generadores de funciones y otras unidades dispuestas al estilo de una matriz de puertas programable por el usuario . Los diversos bloques estaban conectados por un mar de cables que podían sintonizarse para que crearan contactos después de fabricar el chip.


Muchos problemas científicos requieren la resolución de sistemas de ecuaciones diferenciales acopladas. Para simplificar, consideramos dos ecuaciones con dos variables x 1 y x 2 . Una computadora analógica encuentra x 1 y x 2 utilizando un circuito en el que la corriente que fluye a través de dos cables obedece a las mismas ecuaciones. Cuando se utiliza un circuito adecuado, las corrientes en los dos cables representarán la solución de las ecuaciones iniciales.


Para esto necesitamos integradores analógicos, unidades de ramificación, fuentes de corriente continua (la suma de corrientes requiere una combinación simple de cables). Para resolver ecuaciones diferenciales no lineales, una computadora analógica en un chip utiliza circuitos de tiempo continuos para formar bloques que pueden crear funciones arbitrarias (rosa)


Resulta que se puede crear una computadora analógica de propósito general sobre la base de una matriz de compuerta programable por el usuario que contiene muchos elementos analógicos que se controlan digitalmente. Cada franja gris horizontal y vertical indica varios cables. Cuando se requiere una mayor precisión, los resultados de la computadora analógica se pueden alimentar digitalmente para refinar.

La programación digital hizo posible combinar la entrada de un bloque analógico dado con la salida de otro, y crear un sistema controlado por una ecuación que necesita ser resuelta. No se usó el temporizador: el voltaje y las corrientes se desarrollaron continuamente, y no en pasos discretos. Tal computadora podría resolver ecuaciones diferenciales complejas con una variable independiente con una precisión del orden de varios por ciento.

Para algunas aplicaciones, dicha precisión limitada es suficiente. En los casos en que dicho resultado sea demasiado grosero, se puede enviar a una computadora digital para aclararlo. Dado que una computadora digital comienza con una muy buena suposición, el resultado final se puede lograr en un tiempo 10 veces menor, lo que reduce el consumo de energía en la misma cantidad.

Recientemente, dos estudiantes en Columbia Británica, Ning Guo y Yipeng Huang, Mingoo Seok, Simha Sethumadhavan y yo creamos una computadora analógica en un chip de segunda generación. Como en el caso de las primeras computadoras analógicas, todas las unidades de nuestro dispositivo funcionaban simultáneamente y procesaban las señales de una manera que requeriría una arquitectura paralela de una computadora digital. Ahora tenemos chips más grandes, que consisten en varias copias de nuestro diseño de segunda generación, capaces de resolver tareas más grandes.

El nuevo circuito de nuestra computadora analógica es más eficiente en consumo de energía y más fácil de emparejar con computadoras digitales. Un híbrido de este tipo tiene acceso a las ventajas de ambos mundos: analógico para computación de alta velocidad y baja potencia, y digital para programación, almacenamiento y computación de alta precisión.

Nuestro último chip contiene muchos circuitos utilizados en el pasado para la computación analógica: por ejemplo, integradores y multiplicadores. Un componente clave de nuestro nuevo circuito es un nuevo circuito capaz de calcular continuamente funciones matemáticas arbitrarias. Y aquí es por qué es importante.

Las computadoras digitales funcionan con señales que toman solo dos tipos de niveles de voltaje, que representan los valores 0 o 1. Por supuesto, al pasar entre estos dos estados, la señal también debe tomar valores intermedios. Un circuito digital típico procesa las señales periódicamente después de que los voltajes se hayan estabilizado en niveles que representan claramente 0 o 1. Estos circuitos funcionan con un temporizador del sistema con un período suficiente para que el voltaje cambie de un estado estable a otro antes de que comience siguiente ronda de procesamiento. Como resultado, dicho circuito produce una secuencia de valores binarios, uno para cada momento en el tiempo.

Nuestro generador de funciones en cambio funciona con nuestro enfoque, que llamamos el proceso digital de tiempo continuo. Contiene señales binarias atemporales que pueden cambiar el valor en cualquier momento, y no de acuerdo con horas claramente definidas. Construimos convertidores de analógico a digital y de digital a analógico, así como memoria digital capaz de procesar tales señales digitales de tiempo continuo.

Podemos alimentar una señal analógica a dicho convertidor de analógico a digital, y la traducirá a un número binario. Este número se puede usar para encontrar el valor almacenado en la memoria. El valor de salida se alimenta al convertidor de un dígito a un análogo. La combinación de tales circuitos de tiempo continuo proporciona un generador de funciones con entrada y salida analógica.


El autor y sus colegas utilizaron tecnologías de producción modernas para empacar una poderosa computadora analógica en una pequeña caja

Utilizamos nuestra computadora para resolver varias ecuaciones diferenciales complejas con una precisión de varios por ciento. No se puede comparar con una computadora digital convencional. Pero la precisión no lo es todo. En muchos casos, los valores aproximados son suficientes para funcionar. La computación ejemplar, la limitación intencional de la precisión computacional, a veces se usa en computadoras digitales, por ejemplo, en áreas como aprendizaje automático, visión por computadora, bioinformática y procesamiento de grandes datos. Esto tiene sentido cuando, como sucede a menudo, los datos de entrada en sí tienen errores.

Dado que el núcleo de nuestra computadora es analógica, si es necesario, se puede conectar directamente a sensores y unidades de alimentación. La alta velocidad le permite interactuar con el usuario en tiempo real en tareas computacionales que serían extremadamente lentas en modo normal.

Por supuesto, nuestro enfoque de la informática tiene fallas. Uno de los problemas es que las tareas especialmente complejas requieren muchas unidades de computación analógica, lo que hace que el chip sea grande y costoso.

Una forma de resolver este problema es dividir la tarea computacional en pequeñas subtareas, cada una de las cuales será resuelta por una computadora analógica que ejecute una digital. Dichos cálculos ya no serán completamente paralelos, pero al menos serán posibles. Los investigadores estudiaron este enfoque hace varias décadas cuando las computadoras híbridas todavía estaban de moda. No llegaron lejos, porque este tipo de computadora fue abandonada. Entonces, esta tecnología requiere un mayor desarrollo.

Otro problema es que es difícil configurar conexiones arbitrarias entre bloques de circuitos remotos en un chip analógico grande. Una red de contactos puede volverse prohibitiva en tamaño y complejidad. Sin embargo, algunos problemas científicos requerirán tales conexiones para que puedan resolverse en una computadora analógica.

Esta limitación puede ayudar a eludir las técnicas de fabricación 3D. Pero por ahora, el núcleo analógico de nuestro diseño híbrido es el más adecuado para los casos en que se requiere conectividad local, por ejemplo, para simular un conjunto de moléculas que interactúan solo con moléculas ubicadas cerca de ellos.

Otro problema es la dificultad para implementar las funciones de muchos parámetros y el problema relacionado de la baja eficiencia del procesamiento de ecuaciones diferenciales en derivadas parciales. En la década de 1970, se desarrollaron varias tecnologías para resolver tales ecuaciones en computadoras híbridas, y planeamos comenzar desde donde dejamos los desarrollos anteriores.

Además, el análogo tiene desventajas con una precisión cada vez mayor. La precisión de un circuito digital se puede aumentar simplemente agregando bits. El aumento de la precisión de una computadora analógica requiere el uso de un área de chip mucho más grande. Por eso nos centramos en aplicaciones de baja precisión.

Mencioné que la computación analógica puede acelerar los cálculos y ahorrar energía, y quiero agregar más detalles. El procesamiento analógico en una computadora del tipo que mis colegas y yo hicimos generalmente toma un milisegundo. Resolver ecuaciones diferenciales con una derivada requiere menos de 0.1 μJ de energía. Tal chip con tecnología de fabricación convencional (65 nm CMOS) ocupará un área del tamaño de un milímetro cuadrado. Las ecuaciones con dos derivados toman el doble de energía y área de chip, y así sucesivamente; el tiempo para resolverlos permanece sin cambios.

Para algunas aplicaciones críticas con un presupuesto ilimitado, incluso puede considerar integrar la escala del sustrato: todo el sustrato de silicio se puede usar como un solo chip gigante. Un sustrato de 300 mm permitirá colocar más de 100,000 integradores en el chip, lo que permitirá simular un sistema de 100,000 ecuaciones dinámicas no lineales emparejadas del primer orden, o 50,000 del segundo orden, y así sucesivamente. Esto puede ser útil para simular la dinámica de una gran variedad de moléculas. El tiempo de solución aún se calculará en milisegundos y la disipación de energía, en decenas de vatios.

Solo los experimentos pueden confirmar que las computadoras de este tipo serán realmente útiles y que la acumulación de errores analógicos no impedirá que funcionen. Pero si funcionan, los resultados superarán todo lo que las computadoras digitales modernas son capaces de hacer. Para ellos, algunas de las tareas complejas de este orden requieren enormes cantidades de energía o tiempo para resolver, lo que puede durar días o incluso semanas.

Por supuesto, para encontrar respuestas a estas y otras preguntas, se requerirá mucha más investigación: cómo distribuir las tareas entre las partes analógicas y digitales, cómo dividir las tareas grandes en pequeñas y combinar las soluciones finales.

En la búsqueda de estas respuestas, nosotros y otros investigadores involucrados en computadoras analógicas podemos obtener una gran ventaja al aprovechar el trabajo de ingenieros y matemáticos muy inteligentes, realizado hace medio siglo. No necesitamos intentar reinventar la rueda. Debemos utilizar los resultados obtenidos anteriormente como trampolín, y avanzar mucho más. Al menos eso esperamos, y si no lo intentamos, nunca sabremos la respuesta.

Janis Cividis - Profesor de Ingeniería Eléctrica en la Universidad de Columbia

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


All Articles