Les scientifiques et les ingénieurs peuvent profiter d'une approche de l'informatique depuis longtemps abandonnée
Cet ordinateur mécanique analogique a été utilisé pour prédire les marées. Il était connu sous le nom de «vieux cerveau de laiton» ou, plus officiellement, de «machine de prédiction des marées n ° 2». Elle a servi le U.S.Coastal and Geological Survey pour calculer les tables des marées à partir de 1912, et n'a pris sa retraite qu'en 1965, lorsqu'elle a été remplacée par un ordinateur électronique.Lorsque Neil Armstrong et Buzz Aldrin sont descendus sur la Lune en 1969 dans le cadre de la mission Apollo 11, ce fut probablement la plus grande réussite de l'histoire de l'ingénierie de l'humanité [à part, bien sûr, le lancement du premier satellite et du premier homme dans l'espace, le premier homme ouvert l'espace, ainsi que la création d'une navette spatiale automatique / env. trad.]. Beaucoup de gens ne réalisent pas que l'ingrédient important du succès des missions Apollo et de leurs prédécesseurs était les ordinateurs analogiques et hybrides (analogiques-numériques) que la NASA utilisait pour simuler, et dans certains cas, même pour contrôler les vols. Beaucoup de gens qui vivent aujourd'hui n'ont même pas entendu parler des ordinateurs analogiques, estimant que les ordinateurs, par définition, sont des appareils numériques.
Si les ordinateurs analogiques et hybrides étaient si précieux il y a un demi-siècle, pourquoi ont-ils disparu presque sans laisser de trace? Cela est dû aux limites de la technologie des années 1970: en fait, il était trop difficile à développer, construire, gérer et entretenir. Mais les ordinateurs analogiques et hybrides analogiques-numériques construits à l'aide des technologies modernes n'auraient pas de tels inconvénients, il existe donc aujourd'hui de nombreuses études sur les calculs analogiques dans les domaines de l'apprentissage automatique, de l'intelligence machine et
des circuits
biomimétiques .
Dans cet article, je me concentrerai sur une autre application des ordinateurs analogiques et hybrides: le calcul scientifique efficace. Je crois que les ordinateurs analogiques modernes peuvent compléter leurs homologues numériques dans la résolution d'équations liées à la biologie, la dynamique des fluides, la prévision météorologique, la chimie quantique, la physique des plasmas et de nombreux autres domaines scientifiques. Et voici comment ces ordinateurs inhabituels pourraient le faire.
Un ordinateur analogique est un système physique configuré pour fonctionner selon des équations identiques à ce que vous voulez résoudre. Vous affectez les conditions initiales correspondant au système que vous souhaitez étudier, puis vous permettez aux variables de l'ordinateur analogique d'évoluer dans le temps. En conséquence, vous obtenez une solution aux équations correspondantes.
Prenons un exemple simple d'absurdité: un tuyau avec de l'eau et un seau peuvent être considérés comme un ordinateur analogique qui effectue des calculs intégraux. Ajustez le volume d'eau qui coule dans le tuyau pour correspondre à la fonction que vous intégrez. Dirigez le flux dans le seau. La solution sera la quantité d'eau dans le seau.
Bien que certains des ordinateurs analogiques utilisent des fluides fluides, les premiers étaient des dispositifs mécaniques contenant des roues et des engrenages. Il s'agit notamment de l'analyseur différentiel Vannevar Bush de 1931, créé sur des principes nés au 19e siècle, principalement basés sur les travaux de William Thomson (qui deviendra plus tard Lord Kelvin) et de son frère James, qui a développé des ordinateurs analogiques mécaniques pour calculer les marées. Les ordinateurs analogiques de ce type sont utilisés depuis longtemps pour des tâches telles que le contrôle des canons sur les cuirassés. En 1940, les ordinateurs électroniques analogiques ont commencé à être utilisés à cette fin, bien que parallèlement, les ordinateurs mécaniques aient continué à fonctionner. Et nul autre que Claude Shannon, le père de la théorie de l'information formelle, a publié en 1941 une étude théorique fructueuse de l'informatique analogique.
À l'époque, le développement intensif des ordinateurs analogiques a commencé aux États-Unis, en URSS, en Allemagne, en Grande-Bretagne, au Japon, etc. Ils ont été produits par de nombreux fabricants, par exemple Electronic Associates Inc., Applied Dynamics, RCA, Solartron, Telefunken et Boeing. Initialement, ils ont été utilisés dans le développement d'obus et d'aéronefs, ainsi que dans des simulateurs de vol. Naturellement, la NASA était le principal client. Mais leur application s'est rapidement étendue à d'autres domaines, notamment le contrôle des réacteurs nucléaires.
Cet ordinateur analogique électronique PACE 16-31R fabriqué par Electronic Associates Inc. a été installé au Lewis Jet Flight Laboratory de la NASA (maintenant le Glenn Research Center) à Cleveland au milieu des années 1950. Ces ordinateurs analogiques ont été utilisés, entre autres, pour des programmes de bandes dessinées de la NASA tels que Mercury, Gemini, Apollo.Initialement, les ordinateurs analogiques électroniques avaient des centaines ou des milliers de tubes électroniques, qui ont ensuite été remplacés par des transistors. Tout d'abord, ils ont été programmés en définissant manuellement les contacts entre les différents composants sur un panneau spécial. C'étaient des machines complexes et bizarres, elles avaient besoin de personnel spécialement formé pour démarrer - tout cela a joué un rôle dans leur disparition.
Un autre facteur était le fait que dans les années 1960, les ordinateurs numériques se développaient à pas de géant en raison de bon nombre de leurs avantages: programmation simple, travail algorithmique, facilité de stockage, haute précision, capacité à traiter des tâches de toute taille en présence de temps. La vitesse des ordinateurs numériques a augmenté rapidement au cours de la décennie, ainsi que la prochaine fois, lorsque la technologie des MOS (métal-oxyde-semi-conducteur) pour les circuits intégrés a été développée, ce qui a permis de placer un grand nombre de transistors fonctionnant avec des commutateurs numériques sur une seule puce.
Les fabricants d'ordinateurs analogiques ont bientôt incorporé des circuits numériques dans leurs systèmes, ce qui a donné naissance à des ordinateurs hybrides. Mais il était trop tard: la partie analogique de ces machines ne pouvait pas être intégrée à grande échelle, en utilisant les technologies de développement et de production de l'époque. Le dernier grand ordinateur hybride a été fabriqué dans les années 1970. Le monde est passé aux ordinateurs numériques et n'a plus regardé autour de lui.
Aujourd'hui, la technologie MOS analogique a fait d'énormes progrès: on la retrouve dans les circuits de réception et de transmission des smartphones, dans les appareils biomédicaux complexes, dans toutes sortes d'électronique grand public et dans les nombreux appareils intelligents qui composent l'Internet des objets. Les ordinateurs analogiques et hybrides construits en utilisant une technologie moderne aussi avancée pourraient être très différents de ceux existant il y a un demi-siècle.
Mais pourquoi même considérer l'électronique analogique comme appliquée à l'informatique? Le fait est que les ordinateurs numériques ordinaires, bien que puissants, peuvent déjà être adaptés à leur limite. Chaque commutation d'un circuit numérique consomme de l'énergie. Des milliards de transistors sur une puce commutant à des vitesses en gigahertz produisent une énorme quantité de chaleur qui doit être éliminée avant d'atteindre une température critique. Vous pouvez facilement trouver des vidéos sur YouTube montrant comment faire frire un œuf sur certaines puces informatiques numériques modernes.
L'efficacité énergétique est particulièrement importante pour le calcul scientifique. Dans un ordinateur numérique, le flux de temps doit être approximé à l'aide d'une séquence d'étapes discrètes. Lors de la résolution de certaines équations différentielles complexes, il est nécessaire d'utiliser des étapes particulièrement petites pour garantir une solution à la suite de l'algorithme. Cela signifie que cela nécessite une énorme quantité de calcul, qui consomme beaucoup de temps et consomme beaucoup d'énergie.
Il y a environ 15 ans, je me suis dit: un ordinateur analogique conçu à l'aide de la technologie moderne peut-il offrir quelque chose de précieux? Pour répondre à cette question, Glenn Cowan, alors étudiant diplômé que j'ai dirigé en Colombie-Britannique, et maintenant professeur à l'Université Concordia à Montréal, a conçu et construit un ordinateur analogique monopuce. Il contenait des intégrateurs analogiques, des multiplicateurs, des générateurs de fonctions et d'autres unités disposées dans le style d'
un réseau de portes programmables par l'utilisateur . Les différents blocs étaient reliés par une mer de fils qui pouvaient être réglés de manière à créer des contacts après la fabrication de la puce.
De nombreux problèmes scientifiques nécessitent de résoudre des systèmes d'équations différentielles couplées. Pour simplifier, nous considérons deux équations avec deux variables x 1 et x 2 . Un ordinateur analogique trouve x 1 et x 2 à l' aide d'un circuit dans lequel le courant traversant deux fils obéit aux mêmes équations. Lorsque vous utilisez un circuit approprié, les courants dans les deux fils représenteront la solution des équations initiales.
Pour cela, nous avons besoin d'intégrateurs analogiques, d'unités de branchement, de sources de courant continu (la sommation des courants nécessite une simple combinaison de fils). Pour résoudre des équations différentielles non linéaires, un ordinateur analogique sur une puce utilise des circuits temporels continus pour former des blocs pouvant créer des fonctions arbitraires (rose)
Il s'avère qu'un ordinateur analogique à usage général peut être créé sur la base d'un réseau de portes programmables par l'utilisateur contenant de nombreux éléments analogiques qui sont contrôlés numériquement. Chaque bande grise horizontale et verticale indique plusieurs fils. Lorsqu'une précision plus élevée est requise, les résultats de l'ordinateur analogique peuvent être alimentés numériquement pour affiner.La programmation numérique a permis de combiner l'entrée d'un bloc analogique donné avec la sortie d'un autre, et de créer un système contrôlé par une équation à résoudre. La minuterie n'a pas été utilisée: la tension et les courants se sont développés en continu, et non par étapes discrètes. Un tel ordinateur pourrait résoudre des équations différentielles complexes avec une variable indépendante avec une précision de l'ordre de plusieurs pour cent.
Pour certaines applications, une telle précision limitée est suffisante. Dans les cas où un tel résultat est trop grossier, il peut être envoyé à un ordinateur numérique pour clarification. Puisqu'un ordinateur numérique commence par une très bonne estimation, le résultat final peut être obtenu en un temps 10 fois moins, ce qui réduit la consommation d'énergie du même montant.
Récemment, deux élèves de la Colombie-Britannique, Ning Guo et Yipeng Huang, Mingoo Seok, Simha Sethumadhavan et moi avons créé un ordinateur analogique sur une puce de deuxième génération. Comme dans le cas des premiers ordinateurs analogiques, tous les blocs de notre appareil fonctionnaient simultanément et traitaient les signaux d'une manière qui nécessiterait une architecture parallèle à partir d'un ordinateur numérique. Nous avons maintenant des puces plus grandes, constituées de plusieurs copies de notre conception de deuxième génération, capables de résoudre des tâches plus importantes.
Le nouveau circuit de notre ordinateur analogique est plus efficace en termes de consommation d'énergie et plus facile à coupler avec des ordinateurs numériques. Les avantages de ces deux mondes sont disponibles pour un tel hybride: analogique pour l'informatique haute vitesse et basse puissance, et numérique pour la programmation, le stockage et l'informatique haute précision.
Notre dernière puce contient de nombreux circuits utilisés par le passé pour le calcul analogique: par exemple, des intégrateurs et des multiplicateurs. Un élément clé de notre nouveau circuit est un nouveau circuit capable de calculer en continu des fonctions mathématiques arbitraires. Et voici pourquoi c'est important.
Les ordinateurs numériques fonctionnent avec des signaux qui ne prennent que deux types de niveaux de tension, représentant les valeurs 0 ou 1. Bien entendu, lors du passage entre ces deux états, le signal doit également prendre des valeurs intermédiaires. Un circuit numérique typique traite les signaux périodiquement après que les tensions se sont stabilisées à des niveaux représentant clairement 0 ou 1. Ces circuits fonctionnent avec une minuterie système avec une période suffisante pour que la tension passe d'un état stable à un autre avant de commencer. prochain cycle de traitement. En conséquence, un tel circuit produit une séquence de valeurs binaires, une pour chaque instant dans le temps.
Notre générateur de fonctions fonctionne à la place avec notre approche, que nous avons appelée le processus numérique en temps continu. Il contient des signaux binaires intemporels qui peuvent changer la valeur à tout moment, et non selon des heures clairement définies. Nous avons construit des convertisseurs de l'analogique au numérique et du numérique à l'analogique, ainsi qu'une mémoire numérique capable de traiter de tels signaux numériques en temps continu.
Nous pouvons envoyer un signal analogique à un tel convertisseur de l'analogique au numérique, et il le traduira en un nombre binaire. Ce numéro peut être utilisé pour trouver la valeur stockée en mémoire. La valeur de sortie est ensuite envoyée au convertisseur d'un chiffre à un analogique. La combinaison de ces circuits à temps continu fournit un générateur de fonctions avec entrée et sortie analogiques.
L'auteur et ses collègues ont utilisé des technologies de production modernes pour emballer un ordinateur analogique puissant dans un petit boîtierNous avons utilisé notre ordinateur pour résoudre diverses équations différentielles complexes avec une précision de plusieurs pour cent. Il ne peut pas être comparé à un ordinateur numérique conventionnel. Mais la précision n'est pas tout. Dans de nombreux cas, des valeurs approximatives suffisent pour fonctionner. Le calcul exemplaire - la limitation intentionnelle de la précision de calcul - est parfois utilisé dans les ordinateurs numériques, par exemple, dans des domaines tels que l'apprentissage automatique, la vision par ordinateur, la bioinformatique et le traitement des mégadonnées. Cela a du sens lorsque, comme cela arrive souvent, les données d'entrée elles-mêmes comportent des erreurs.
Étant donné que le cœur de notre ordinateur est analogique, si nécessaire, il peut être directement connecté à des capteurs et des entraînements électriques. La grande vitesse lui permet d'interagir avec l'utilisateur en temps réel dans des tâches de calcul qui seraient extrêmement lentes en mode normal.
Bien sûr, notre approche de l'informatique a des défauts. L'un des problèmes est que les tâches particulièrement complexes nécessitent beaucoup d'unités de calcul analogiques, ce qui rend la puce volumineuse et coûteuse.
Une façon de résoudre un tel problème consiste à diviser la tâche de calcul en petites sous-tâches, chacune étant résolue par un ordinateur analogique exécutant un ordinateur numérique. De tels calculs ne seront plus complètement parallèles, mais au moins ils seront possibles. Les chercheurs ont étudié cette approche il y a plusieurs décennies lorsque les ordinateurs hybrides étaient encore à la mode. Ils ne sont pas allés loin, car ce type d'ordinateur a été abandonné. Cette technologie doit donc être développée davantage.
Un autre problème est qu'il est difficile de configurer des connexions arbitraires entre des blocs de circuits distants sur une grande puce analogique. Un réseau de contacts peut devenir prohibitif en taille et en complexité. Cependant, certains problèmes scientifiques nécessiteront de telles connexions pour pouvoir être résolus sur un ordinateur analogique.
Cette limitation peut aider à contourner les techniques de fabrication 3D. Mais pour l'instant, le noyau analogique de notre conception hybride est le mieux adapté aux cas où une connectivité locale est requise - par exemple, pour simuler un ensemble de molécules qui interagissent uniquement avec des molécules situées à proximité.
Un autre problème est la difficulté de mettre en œuvre les fonctions de nombreux paramètres et le problème connexe de faible efficacité de traitement des équations différentielles dans les dérivées partielles. Dans les années 1970, plusieurs technologies étaient en cours de développement pour résoudre de telles équations sur des ordinateurs hybrides, et nous prévoyons de partir de là où nous avions arrêté les développements antérieurs.
De plus, l'analogue présente des inconvénients avec une précision croissante. La précision d'un circuit numérique peut être augmentée en ajoutant simplement des bits. L'augmentation de la précision d'un ordinateur analogique nécessite l'utilisation d'une zone de puce beaucoup plus grande. C'est pourquoi nous nous sommes concentrés sur les applications de faible précision.
J'ai mentionné que l'informatique analogique peut accélérer les calculs et économiser de l'énergie, et je veux ajouter plus de détails. Le traitement analogique sur un ordinateur du type de celui que mes collègues et moi avons effectué prend généralement une milliseconde. La résolution d'équations différentielles avec une dérivée nécessite moins de 0,1 μJ d'énergie. Une telle puce avec une technologie de fabrication conventionnelle (CMOS 65 nm) occupera une surface de la taille d'un millimètre carré. Les équations à deux dérivées prennent deux fois plus d'énergie et de surface de puce, et ainsi de suite; le temps pour les résoudre reste inchangé.
Pour certaines applications critiques avec un budget illimité, vous pouvez même envisager d'intégrer l'échelle du substrat - l'ensemble du substrat en silicium peut être utilisé comme une seule puce géante. Un substrat de 300 mm permettra de placer plus de 100 000 intégrateurs sur la puce, ce qui permettra de simuler un système de 100 000 équations dynamiques non linéaires appariées du premier ordre, ou 50 000 du deuxième ordre, etc. Cela peut être utile pour simuler la dynamique d'un large éventail de molécules. Le temps de solution sera toujours calculé en millisecondes, et la dissipation d'énergie - en dizaines de watts.
Seules les expériences peuvent confirmer que les ordinateurs de ce type seront vraiment utiles et que l'accumulation d'erreurs analogiques ne les empêchera pas de fonctionner. Mais s'ils fonctionnent, les résultats dépasseront tout ce dont les ordinateurs numériques modernes sont capables. Pour eux, certaines des tâches complexes de cette commande nécessitent d'énormes quantités d'énergie ou de temps à résoudre, qui peuvent durer des jours, voire des semaines.Bien sûr, afin de trouver des réponses à ces questions et à d'autres, beaucoup plus de recherches seront nécessaires: comment répartir les tâches entre les parties analogiques et numériques, comment diviser les grandes tâches en petites et combiner les solutions finales.Dans la recherche de ces réponses, nous et d'autres chercheurs impliqués dans les ordinateurs analogiques pouvons obtenir un grand avantage en profitant du travail d'ingénieurs et de mathématiciens très intelligents, effectué il y a un demi-siècle. Nous n'avons pas besoin d'essayer de réinventer la roue. Nous devons utiliser les résultats obtenus plus tôt comme tremplin et aller beaucoup plus loin. Au moins, nous l’espérons, et si nous n’essayons pas, nous ne connaîtrons jamais la réponse.Janis Cividis - Professeur de génie électrique à Columbia University