Wissenschaftler und Ingenieure können einen lange aufgegebenen Ansatz für das Rechnen nutzen
Dieser analoge mechanische Computer wurde verwendet, um Gezeiten vorherzusagen. Es war bekannt als das "alte Messinghirn" oder formeller als die "Gezeitenvorhersagemaschine Nr. 2". Sie diente dem US-amerikanischen Küsten- und Geologischen Dienst zur Berechnung von Gezeitentabellen ab 1912 und ging erst 1965 in den Ruhestand, als sie durch einen elektronischen Computer ersetzt wurde.Als Neil Armstrong und Buzz Aldrin 1969 im Rahmen der Apollo 11-Mission zum Mond hinabstiegen, war dies wahrscheinlich die größte Errungenschaft in der Ingenieurgeschichte der Menschheit [abgesehen natürlich vom Start des ersten Satelliten und des ersten Mannes ins All, der erste Mann war offen Raum, sowie die Schaffung eines automatischen Space Shuttles / ca. übersetzt.]. Vielen Menschen ist nicht klar, dass der wichtige Bestandteil für den Erfolg der Apollo-Missionen und ihrer Vorgänger die analogen und hybriden (analog-digitalen) Computer waren, mit denen die NASA Flüge simulierte und in einigen Fällen sogar kontrollierte. Viele der heute lebenden Menschen haben noch nicht einmal von analogen Computern gehört und glauben, dass Computer per Definition digitale Geräte sind.
Wenn analoge und hybride Computer vor einem halben Jahrhundert so wertvoll waren, warum sind sie dann fast spurlos verschwunden? Dies ist auf die Einschränkungen der Technologie der 1970er Jahre zurückzuführen: Tatsächlich war es zu schwierig, sie zu entwickeln, zu bauen, zu verwalten und zu warten. Analoge und hybride Analog-Digital-Computer, die mit Hilfe moderner Technologien gebaut wurden, hätten solche Nachteile jedoch nicht. Daher gibt es jetzt zahlreiche Studien zum analogen Rechnen in den Bereichen maschinelles Lernen, maschinelle Intelligenz und
biomimetische Schaltkreise.
In diesem Artikel werde ich mich auf eine andere Anwendung von analogen und hybriden Computern konzentrieren: effizientes wissenschaftliches Rechnen. Ich glaube, dass moderne analoge Computer ihre digitalen Gegenstücke bei der Lösung von Gleichungen in Bezug auf Biologie, Fluiddynamik, Wettervorhersage, Quantenchemie, Plasmaphysik und viele andere Bereiche der Wissenschaft ergänzen können. Und so könnten diese ungewöhnlichen Computer das machen.
Ein analoger Computer ist ein physikalisches System, das so konfiguriert ist, dass es nach Gleichungen arbeitet, die mit dem identisch sind, was Sie lösen möchten. Sie weisen die Anfangsbedingungen zu, die dem zu untersuchenden System entsprechen, und lassen dann zu, dass sich die Variablen im analogen Computer im Laufe der Zeit weiterentwickeln. Als Ergebnis erhalten Sie eine Lösung für die entsprechenden Gleichungen.
Nehmen wir ein einfaches Beispiel für die Absurdität: Ein Schlauch mit Wasser und einem Eimer kann als analoger Computer angesehen werden, der integrale Berechnungen durchführt. Passen Sie das im Schlauch fließende Wasservolumen an die von Ihnen integrierte Funktion an. Richten Sie den Durchfluss in den Eimer. Die Lösung ist die Wassermenge im Eimer.
Obwohl einige der analogen Computer tatsächlich fließende Flüssigkeiten verwendeten, waren die frühesten mechanische Geräte, die sich drehende Räder und Zahnräder enthielten. Dazu gehört der Differentialanalysator Vannevar Bush aus dem Jahr 1931, der nach im 19. Jahrhundert geborenen Prinzipien entwickelt wurde und hauptsächlich auf der Arbeit von William Thomson (der später Lord Kelvin wurde) und seinem Bruder James basiert, der mechanische analoge Computer zur Berechnung von Gezeiten entwickelte. Analoge Computer dieses Typs werden seit langem für Aufgaben wie die Steuerung von Kanonen auf Schlachtschiffen verwendet. Ab 1940 wurden dafür elektronische Analogcomputer eingesetzt, obwohl parallel dazu weiterhin mechanische Computer in Betrieb waren. Und kein anderer als Claude Shannon, der Vater der formalen Informationstheorie, veröffentlichte 1941 eine fruchtbare theoretische Studie über analoges Rechnen.
Zu dieser Zeit begann die umfassende Entwicklung analoger Computer in den USA, der UdSSR, Deutschland, Großbritannien, Japan usw. Sie wurden von vielen Herstellern hergestellt, beispielsweise von Electronic Associates Inc., Applied Dynamics, RCA, Solartron, Telefunken und Boeing. Anfangs wurden sie bei der Entwicklung von Granaten und Flugzeugen sowie in Flugsimulatoren eingesetzt. Natürlich war die NASA der Hauptkunde. Ihre Anwendung breitete sich jedoch bald auf andere Bereiche aus, einschließlich der Kontrolle von Kernreaktoren.
Dieser elektronische Analogcomputer PACE 16-31R, hergestellt von Electronic Associates Inc., wurde Mitte der 1950er Jahre im Lewis Jet Flight Laboratory der NASA (heute Glenn Research Center) in Cleveland installiert. Solche analogen Computer wurden unter anderem für NASA-Comic-Programme wie Mercury, Gemini, Apollo verwendet.Anfänglich hatten elektronische Analogcomputer Hunderte oder Tausende von elektronischen Röhren, die später durch Transistoren ersetzt wurden. Zunächst wurden sie programmiert, indem die Kontakte zwischen den verschiedenen Komponenten auf einem speziellen Bedienfeld manuell eingestellt wurden. Es waren komplexe und bizarre Maschinen, sie brauchten speziell geschultes Personal, um anzufangen - all dies spielte eine Rolle bei ihrem Tod.
Ein weiterer Faktor war die Tatsache, dass sich digitale Computer in den 1960er Jahren aufgrund vieler ihrer Vorteile sprunghaft entwickelten: einfache Programmierung, algorithmische Arbeit, einfache Speicherung, hohe Genauigkeit und die Fähigkeit, Aufgaben jeder Größe in Gegenwart von Zeit zu verarbeiten. Die Geschwindigkeit digitaler Computer hat im Laufe des Jahrzehnts und im Laufe des nächsten Jahrzehnts, als die Technologie des MOS (Metalloxid-Halbleiter) für integrierte Schaltkreise entwickelt wurde, rasch zugenommen, wodurch es möglich wurde, eine große Anzahl von Transistoren, die mit digitalen Schaltern arbeiten, auf einem einzigen Chip zu platzieren.
Hersteller von analogen Computern bauten bald digitale Schaltkreise in ihre Systeme ein, aus denen Hybridcomputer hervorgingen. Aber es war zu spät: Der analoge Teil dieser Maschinen konnte mit den damaligen Entwicklungs- und Produktionstechnologien nicht in großem Maßstab integriert werden. Der letzte große Hybridcomputer wurde in den 1970er Jahren hergestellt. Die Welt wechselte zu digitalen Computern und sah sich nicht mehr um.
Die analoge MOS-Technologie hat sich heute enorm weiterentwickelt: Sie findet sich in Smartphones, in komplexen biomedizinischen Geräten, in allen Arten von Unterhaltungselektronik und in den vielen intelligenten Geräten, aus denen das Internet der Dinge besteht. Analoge und hybride Computer, die mit solch fortschrittlicher moderner Technologie gebaut wurden, könnten sich stark von den vor einem halben Jahrhundert existierenden unterscheiden.
Aber warum sollte man analoge Elektronik überhaupt als Computer betrachten? Tatsache ist, dass gewöhnliche digitale Computer, wenn auch leistungsstarke, bereits an ihre Grenzen gebracht werden können. Jedes Schalten eines digitalen Schaltkreises verbraucht Energie. Milliarden von Transistoren auf einem Chip, die mit Gigahertz-Geschwindigkeiten schalten, erzeugen eine enorme Wärmemenge, die irgendwie abgeführt werden muss, bevor sie eine kritische Temperatur erreicht. Auf YouTube finden Sie ganz einfach Videos, die zeigen, wie man auf modernen digitalen Computerchips ein Ei brät.
Energieeffizienz ist besonders wichtig für das wissenschaftliche Rechnen. In einem digitalen Computer muss der Zeitfluss unter Verwendung einer Folge von diskreten Schritten angenähert werden. Bei der Lösung bestimmter komplexer Differentialgleichungen müssen besonders kleine Schritte verwendet werden, um eine Lösung als Ergebnis des Algorithmus zu gewährleisten. Dies bedeutet, dass dies einen enormen Rechenaufwand erfordert, der viel Zeit und Energie verbraucht.
Vor ungefähr 15 Jahren dachte ich: Kann ein analoger Computer, der mit Hilfe moderner Technologie entwickelt wurde, etwas Wertvolles bieten? Um diese Frage zu beantworten, entwarf und baute Glenn Cowan, damals ein Doktorand, den ich in British Columbia leitete und der jetzt Professor an der Concordia University in Montreal ist, einen analogen Single-Chip-Computer. Es enthielt analoge Integratoren, Multiplikatoren, Funktionsgeneratoren und andere Einheiten, die im Stil
eines vom Benutzer programmierbaren Gate-Arrays angeordnet waren . Die verschiedenen Blöcke waren durch ein Meer von Drähten verbunden, die so abgestimmt werden konnten, dass sie nach der Herstellung des Chips Kontakte herstellten.
Viele wissenschaftliche Probleme erfordern das Lösen von Systemen gekoppelter Differentialgleichungen. Der Einfachheit halber betrachten wir zwei Gleichungen mit zwei Variablen x 1 und x 2 . Ein analoger Computer findet x 1 und x 2 unter Verwendung einer Schaltung, in der der durch zwei Drähte fließende Strom den gleichen Gleichungen folgt. Bei Verwendung einer geeigneten Schaltung stellen die Ströme in den beiden Drähten die Lösung der Anfangsgleichungen dar.
Dazu benötigen wir analoge Integratoren, Verzweigungseinheiten, Gleichstromquellen (das Summieren von Strömen erfordert eine einfache Kombination von Drähten). Um nichtlineare Differentialgleichungen zu lösen, verwendet ein analoger Computer auf einem Chip kontinuierliche Zeitschaltungen, um Blöcke zu bilden, die beliebige Funktionen erzeugen können (pink).
Es stellt sich heraus, dass ein universeller analoger Computer auf der Basis eines vom Benutzer programmierbaren Gate-Arrays erstellt werden kann, das viele analoge Elemente enthält, die digital gesteuert werden. Jeder horizontale und vertikale graue Streifen zeigt mehrere Drähte an. Wenn eine höhere Genauigkeit erforderlich ist, können die Ergebnisse des analogen Computers zur Verfeinerung digital eingespeist werden.Die digitale Programmierung ermöglichte es, den Eingang eines bestimmten analogen Blocks mit dem Ausgang eines anderen zu kombinieren und ein System zu erstellen, das von einer Gleichung gesteuert wird, die gelöst werden muss. Der Timer wurde nicht verwendet: Spannung und Ströme entwickelten sich kontinuierlich und nicht in diskreten Schritten. Ein solcher Computer könnte komplexe Differentialgleichungen mit einer unabhängigen Variablen mit einer Genauigkeit in der Größenordnung von mehreren Prozent lösen.
Für einige Anwendungen ist eine solche begrenzte Genauigkeit ausreichend. In Fällen, in denen ein solches Ergebnis zu unhöflich ist, kann es zur Klärung einem digitalen Computer zugeführt werden. Da ein digitaler Computer mit einer sehr guten Vermutung beginnt, kann das Endergebnis in einer zehnmal kürzeren Zeit erzielt werden, wodurch der Energieverbrauch um den gleichen Betrag reduziert wird.
Kürzlich haben zwei Studenten in British Columbia, Ning Guo und Yipeng Huang, Mingoo Seok, Simha Sethumadhavan und ich, einen analogen Computer auf einem Chip der zweiten Generation erstellt. Wie bei frühen analogen Computern arbeiteten alle Blöcke unseres Geräts gleichzeitig und verarbeiteten die Signale auf eine Weise, die eine parallele Architektur von einem digitalen Computer erfordern würde. Jetzt haben wir größere Chips, die aus mehreren Kopien unseres Designs der zweiten Generation bestehen und größere Aufgaben lösen können.
Die neue Schaltung unseres analogen Computers ist effizienter im Energieverbrauch und einfacher mit digitalen Computern zu koppeln. Die Vorteile beider Welten stehen einem solchen Hybrid zur Verfügung: analog für Hochgeschwindigkeits- und Niedrigleistungsrechnen und digital für Programmierung, Speicherung und hochpräzises Rechnen.
Unser letzter Chip enthält viele Schaltungen, die in der Vergangenheit für analoges Rechnen verwendet wurden: zum Beispiel Integratoren und Multiplikatoren. Eine Schlüsselkomponente unserer neuen Schaltung ist eine neue Schaltung, die kontinuierlich beliebige mathematische Funktionen berechnen kann. Und hier ist, warum es wichtig ist.
Digitale Computer arbeiten mit Signalen, die nur zwei Arten von Spannungspegeln annehmen, die die Werte 0 oder 1 darstellen. Natürlich muss das Signal beim Übergang zwischen diesen beiden Zuständen auch Zwischenwerte annehmen. Eine typische digitale Schaltung verarbeitet die Signale periodisch, nachdem sich die Spannungen auf Pegeln stabilisiert haben, die eindeutig 0 oder 1 darstellen. Diese Schaltungen arbeiten mit einem Systemzeitgeber mit einer Periode, die ausreicht, damit die Spannung vor dem Start von einem stabilen Zustand in einen anderen umschaltet nächste Verarbeitungsrunde. Infolgedessen erzeugt eine solche Schaltung eine Folge von Binärwerten, einen für jeden Zeitpunkt.
Unser Funktionsgenerator arbeitet stattdessen mit unserem Ansatz, den wir als digitalen zeitkontinuierlichen Prozess bezeichnet haben. Es enthält zeitlose Binärsignale, die den Wert jederzeit ändern können und nicht nach klar definierten Stunden. Wir haben Konverter von analog zu digital und von digital zu analog sowie einen digitalen Speicher gebaut, der solche digitalen Signale von kontinuierlicher Zeit verarbeiten kann.
Wir können einem solchen Wandler ein analoges Signal von analog zu digital zuführen und es wird in eine Binärzahl übersetzt. Diese Nummer kann verwendet werden, um den im Speicher gespeicherten Wert zu ermitteln. Der Ausgangswert wird dann dem Wandler von einer Ziffer zu einer analogen Ziffer zugeführt. Die Kombination solcher zeitkontinuierlichen Schaltungen liefert einen Funktionsgenerator mit analogem Ein- und Ausgang.
Der Autor und seine Kollegen verwendeten moderne Produktionstechnologien, um einen leistungsstarken analogen Computer in einem kleinen Koffer zu verpackenWir haben unseren Computer verwendet, um verschiedene komplexe Differentialgleichungen mit einer Genauigkeit von mehreren Prozent zu lösen. Es kann nicht mit einem herkömmlichen digitalen Computer verglichen werden. Aber Genauigkeit ist nicht alles. In vielen Fällen reichen ungefähre Werte aus, um zu funktionieren. Beispielhafte Berechnungen - die absichtliche Einschränkung der Rechengenauigkeit - werden manchmal in digitalen Computern verwendet, beispielsweise in Bereichen wie maschinelles Lernen, Computer Vision, Bioinformatik und Big Data-Verarbeitung. Dies ist sinnvoll, wenn die Eingabedaten selbst wie so oft Fehler aufweisen.
Da der Kern unseres Computers bei Bedarf analog ist, kann er direkt an Sensoren und Leistungsantriebe angeschlossen werden. Dank der hohen Geschwindigkeit kann er in Echtzeit mit dem Benutzer bei Rechenaufgaben interagieren, die im normalen Modus extrem langsam wären.
Natürlich weist unser Computeransatz Mängel auf. Eines der Probleme besteht darin, dass besonders komplexe Aufgaben viele analoge Recheneinheiten erfordern, was den Chip groß und teuer macht.
Eine Möglichkeit, ein solches Problem zu lösen, besteht darin, die Rechenaufgabe in kleine Unteraufgaben zu unterteilen, die jeweils von einem analogen Computer gelöst werden, auf dem ein digitaler Computer ausgeführt wird. Solche Berechnungen werden nicht mehr vollständig parallel sein, aber zumindest werden sie möglich sein. Forscher haben diesen Ansatz vor einigen Jahrzehnten untersucht, als Hybridcomputer noch in Mode waren. Sie gingen nicht weit, weil dieser Computertyp aufgegeben wurde. Diese Technologie muss also weiterentwickelt werden.
Ein weiteres Problem besteht darin, dass es schwierig ist, beliebige Verbindungen zwischen entfernten Schaltungsblöcken auf einem großen analogen Chip zu konfigurieren. Ein Netzwerk von Kontakten kann in Größe und Komplexität unerschwinglich werden. Einige wissenschaftliche Probleme erfordern jedoch solche Verbindungen, damit sie auf einem analogen Computer gelöst werden können.
Diese Einschränkung kann dazu beitragen, 3D-Fertigungstechniken zu umgehen. Derzeit eignet sich der analoge Kern unseres Hybrid-Designs jedoch am besten für Fälle, in denen lokale Konnektivität erforderlich ist - beispielsweise um eine Reihe von Molekülen zu simulieren, die nur mit Molekülen in ihrer Nähe interagieren.
Ein weiteres Problem ist die Schwierigkeit bei der Implementierung der Funktionen vieler Parameter und das damit verbundene Problem der geringen Effizienz bei der Verarbeitung von Differentialgleichungen in partiellen Ableitungen. In den 1970er Jahren wurden verschiedene Technologien entwickelt, um solche Gleichungen auf Hybridcomputern zu lösen, und wir planen, dort anzufangen, wo wir frühere Entwicklungen aufgehört haben.
Das Analog hat auch Nachteile mit zunehmender Genauigkeit. Die Genauigkeit einer digitalen Schaltung kann durch einfaches Hinzufügen von Bits erhöht werden. Um die Genauigkeit eines analogen Computers zu erhöhen, muss eine viel größere Chipfläche verwendet werden. Aus diesem Grund haben wir uns auf Anwendungen mit geringer Genauigkeit konzentriert.
Ich erwähnte, dass analoges Rechnen Berechnungen beschleunigen und Energie sparen kann, und ich möchte weitere Details hinzufügen. Die analoge Verarbeitung auf einem Computer, wie sie meine Kollegen und ich durchgeführt haben, dauert normalerweise eine Millisekunde. Das Lösen von Differentialgleichungen mit einer Ableitung erfordert weniger als 0,1 μJ Energie. Ein solcher Chip mit herkömmlicher Herstellungstechnologie (65 nm CMOS) nimmt eine Fläche von der Größe eines Quadratmillimeters ein. Gleichungen mit zwei Ableitungen benötigen doppelt so viel Energie und Chipfläche und so weiter. Die Zeit, um sie zu lösen, bleibt unverändert.
Bei einigen kritischen Anwendungen mit unbegrenztem Budget können Sie sogar die Integration der Substratskala in Betracht ziehen - das gesamte Siliziumsubstrat kann als einzelner Riesenchip verwendet werden. Ein 300-mm-Substrat ermöglicht das Platzieren von mehr als 100.000 Integratoren auf dem Chip, wodurch ein System von 100.000 gepaarten nichtlinearen dynamischen Gleichungen erster Ordnung oder 50.000 gepaarter zweiter Ordnung usw. simuliert werden kann. Dies kann nützlich sein, um die Dynamik einer großen Anzahl von Molekülen zu simulieren. Die Lösungszeit wird weiterhin in Millisekunden und die Energiedissipation in zehn Watt berechnet.
Nur Experimente können bestätigen, dass Computer dieses Typs wirklich nützlich sind und dass die Anhäufung von analogen Fehlern sie nicht am Funktionieren hindert. Aber wenn sie funktionieren, werden die Ergebnisse alles übertreffen, was moderne digitale Computer können. Für sie erfordern einige der komplexen Aufgaben dieses Auftrags viel Energie oder Zeit, um sie zu lösen, was Tage oder sogar Wochen dauern kann.Um Antworten auf diese und andere Fragen zu finden, ist natürlich viel mehr Forschung erforderlich: wie man Aufgaben zwischen dem analogen und dem digitalen Teil verteilt, wie man große Aufgaben in kleine aufteilt und die endgültigen Lösungen kombiniert.Auf der Suche nach diesen Antworten können wir und andere Forscher, die sich mit analogen Computern befassen, einen großen Vorteil erzielen, indem sie die Arbeit sehr kluger Ingenieure und Mathematiker nutzen, die vor einem halben Jahrhundert durchgeführt wurde. Wir müssen nicht versuchen, das Rad neu zu erfinden. Wir müssen die früher erzielten Ergebnisse als Sprungbrett verwenden und viel weiter gehen. Zumindest hoffen wir es und wenn wir es nicht versuchen, werden wir die Antwort nie erfahren.Janis Cividis - Professor für Elektrotechnik an der Columbia University