Ist die Arithmetik von analogen Signalen schneller als die von digitalen?


36

Wäre es theoretisch möglich, moderne Prozessoren zu beschleunigen, wenn man statt digitaler FPUs (CPU -> DAC -> analoge FPU -> ADC -> CPU) analoge Signalarithmetik (auf Kosten der Genauigkeit und Präzision) verwenden würde?

Ist eine analoge Signalaufteilung möglich (da die FPU-Multiplikation ohnehin oft einen CPU-Zyklus benötigt)?


Es beantwortet Ihre Frage nicht, aber hier ist ein interessanter Artikel über den Einsatz von analogen elektromechanischen Computern in Kriegsschiffen. Arstechnica.com/information-technology/2014/03/…
Doombot

Von Zeit zu Zeit gab es Vorschläge, digitale Logik mit mehreren Zuständen zu verwenden - z. B. "Flip-Flops" mit vier Zuständen anstelle von zwei. Dies wurde tatsächlich in einigen Produktionsspeicherchips durchgeführt, da es den Verkabelungsengpass verringert. (Ich weiß jedoch nicht, ob derzeit hergestellte Chips Mehrzustandslogik verwenden.)
Hot Licks

Antworten:


44

Grundsätzlich sind alle Schaltungen analog. Das Problem bei der Durchführung von Berechnungen mit analogen Spannungen oder Strömen ist eine Kombination aus Rauschen und Verzerrung. Analoge Schaltungen unterliegen Rauschen und es ist sehr schwierig, analoge Schaltungen über große Größenordnungen linear zu machen. Jede Stufe einer analogen Schaltung fügt dem Signal Rauschen und / oder Verzerrungen hinzu. Dies kann kontrolliert, aber nicht beseitigt werden.

Digitale Schaltkreise (CMOS) umgehen im Grunde genommen dieses ganze Problem, indem sie nur zwei Ebenen zur Darstellung von Informationen verwenden, wobei jede Stufe das Signal regeneriert. Wen interessiert es, wenn der Output um 10% abfällt, er muss nur über oder unter einem Schwellenwert liegen. Wen kümmert es, wenn die Ausgabe um 10% verzerrt ist, wieder muss sie nur über oder unter einem Schwellenwert liegen. Bei jedem Schwellenwertvergleich wird das Signal im Grunde genommen regeneriert und es treten Rausch- / Nichtlinearitätsprobleme auf. ausgezogen. Dies geschieht durch Verstärken und Beschneiden des Eingangssignals - ein CMOS-Inverter ist nur ein sehr einfacher Verstärker, der aus zwei Transistoren besteht, die als Komparator im offenen Regelkreis betrieben werden. Wenn der Pegel über den Schwellenwert geschoben wird, erhalten Sie eine kleine Fehlermeldung. Prozessoren sind im Allgemeinen so ausgelegt, dass sie Bitfehlerraten in der Größenordnung von 10 ^ -20, IIRC aufweisen. Aus diesem Grund, Digitale Schaltungen sind unglaublich robust - sie können unter den unterschiedlichsten Bedingungen betrieben werden, da Linearität und Rauschen im Grunde keine Probleme darstellen. Es ist fast trivial, digital mit 64-Bit-Zahlen zu arbeiten. 64 Bit entsprechen einem Dynamikumfang von 385 dB. Das sind 19 Größenordnungen. In der Hölle gibt es keine Möglichkeit, mit analogen Schaltkreisen in die Nähe zu kommen. Wenn Ihre Auflösung 1 Picovolt (10 ^ -12) beträgt (und dies wird im Grunde sofort durch thermisches Rauschen überflutet), müssen Sie einen Maximalwert von 10 ^ 7 unterstützen. Welches ist 10 Megavolt. Es gibt absolut keine Möglichkeit, über einen solchen Dynamikbereich analog zu arbeiten - es ist einfach unmöglich. Ein weiterer wichtiger Kompromiss bei analogen Schaltungen sind Bandbreite / Geschwindigkeit / Reaktionszeit und Rauschen / Dynamik. Schaltkreise mit enger Bandbreite gleichen Rauschen aus und bieten eine gute Leistung über einen weiten Dynamikbereich. Der Nachteil ist, dass sie langsam sind. Schaltungen mit großer Bandbreite sind schnell, aber Rauschen ist ein größeres Problem, sodass der Dynamikbereich begrenzt ist. Mit Digital können Sie das Problem lösen, um den Dynamikumfang zu erhöhen oder die Geschwindigkeit zu erhöhen, indem Sie Dinge parallel ausführen, oder beides.

Für einige Vorgänge hat Analog jedoch Vorteile - schneller, einfacher, geringerer Stromverbrauch usw. Digital muss in Bezug auf Pegel und Zeit quantisiert werden. Analog ist in beiden Fällen stetig. Ein Beispiel, bei dem analog gewinnt, ist der Funkempfänger in Ihrer WLAN-Karte. Das Eingangssignal kommt mit 2,4 GHz an. Ein voll digitaler Receiver benötigt einen ADC mit mindestens 5 Gigasamples pro Sekunde. Dies würde sehr viel Strom verbrauchen. Und das berücksichtigt nicht einmal die Verarbeitung nach dem ADC. Derzeit werden ADCs mit dieser Geschwindigkeit nur für Basisband-Kommunikationssysteme mit sehr hoher Leistung (z. B. kohärente optische Modulation mit hoher Symbolrate) und in Testgeräten verwendet. Eine Handvoll Transistoren und Passive können jedoch verwendet werden, um die 2 herunter zu konvertieren.

Das Fazit ist, dass analoge und digitale Berechnungen Vor- und Nachteile haben. Wenn Sie Rauschen, Verzerrung, geringen Dynamikumfang und / oder geringe Präzision tolerieren können, verwenden Sie analog. Wenn Sie Rauschen oder Verzerrungen nicht tolerieren können und / oder einen hohen Dynamikbereich und eine hohe Präzision benötigen, verwenden Sie Digital. Sie können immer mehr Bits auf das Problem werfen, um mehr Präzision zu erzielen. Es gibt jedoch kein analoges Äquivalent dazu.


Das verdient viel mehr Zustimmung!
John U

Ich wusste es! Ich konnte es einfach nicht in gute Worte fassen. Nette Zusatzinfo zu den Funkempfängern.
Smithers

2
Abtast- und Halteschaltung? Magnetband? Schallplatte? Fotografischen Film? Es gibt zwar analoge Speichergeräte, diese unterscheiden sich jedoch geringfügig von den digitalen.
alex.forencich

1
Beliebiger Bereich, ja. Aber irgendeinen Bereich mit beliebiger Auflösung? Nicht so viel.
alex.forencich

1
@ehsan-Verstärkung erhöht nicht Ihren Dynamikbereich, Ihr Minimalwert (das Grundrauschen) wird genau mit dem Maximalwert verstärkt.
Mbrig

20

Ich habe letzten Monat an einem IEEE-Vortrag mit dem Titel „ Back to the Future: Analog Signal Processingteilgenommen . Der Vortrag wurde von der IEEE Solid State Circuit Society organisiert.

Es wurde vorgeschlagen, dass ein analoger MAC (multiplizieren und akkumulieren) weniger Strom verbrauchen könnte als ein digitaler. Ein Problem ist jedoch, dass ein analoger MAC einem analogen Rauschen ausgesetzt ist. Wenn Sie es also zweimal mit denselben Eingaben präsentieren, stimmen die Ergebnisse nicht genau überein.


1
(+1 für analoges Rauschen.)
George Herold

Ebenso ein Artikel über den Einsatz mechanischer Computer auf Kriegsschiffen arstechnica.com/information-technology/2014/03/…
Doombot

18

Was Sie meinen, wird als analoger Computer bezeichnet und war in den Anfängen von Computern ziemlich verbreitet. Gegen Ende der 60er Jahre waren sie im Wesentlichen verschwunden. Das Problem ist, dass nicht nur die Präzision viel schlechter ist als bei Digital, sondern auch die Genauigkeit. Und die Geschwindigkeit der digitalen Berechnung ist viel schneller als selbst bescheidene analoge Schaltungen.

Analoge Teiler sind in der Tat möglich, und Analog Devices stellt ungefähr 10 verschiedene Modelle her. Dies sind tatsächlich Multiplikatoren, die in den Rückkopplungspfad eines Operationsverstärkers eingefügt werden und einen Teiler erzeugen. Mit AD wird jedoch ein dedizierter Teiler erzeugt, der für einen großen Dynamikbereich (60 dB, glaube ich) des Teilers optimiert ist.

Grundsätzlich ist die analoge Berechnung im Vergleich zur digitalen langsam und ungenau. Darüber hinaus erfordert die Realisierung einer bestimmten analogen Berechnung die Neukonfiguration der Hardware. Spät im Spiel wurden hybride analoge Computer hergestellt, die dies unter Softwaresteuerung tun konnten, aber diese waren sperrig und wurden nur für spezielle Zwecke eingesetzt.


6
Ich mag deine Antwort (+1) und die Frage. Aber ich bin nicht einverstanden mit der Geschwindigkeit. Analog ist reichlich schnell. Das Problem ist die Präzision und vor allem das Rauschen. Analog hat immer etwas Rauschen. Digital ist rauschfrei und computergesteuert.
George Herold

Danke für die netten Worte. Aber. Analog kann schnell "viel" sein, aber im Allgemeinen ist Digital schneller. Und Lärm ist leicht zu simulieren.
WhatRoughBeast

4
Analog ist schnell, wenn es nur um Arithmetik, Exp, Sqrt usw. geht. Sobald Sie jedoch einen Kondensator oder Induktor hinzufügen, der für die Differenzierung und Integration benötigt wird, ist es langsam. Die analogen Computer der Geschichte wurden oft zum Lösen von Differentialgleichungen verwendet - sie waren "langsam". Aber einige machten gerade Algebra. Ich kann also nachvollziehen, warum unterschiedliche Personen unterschiedliche Ansichten zur analogen Rechengeschwindigkeit haben.
DarenW

1
Können Sie erklären, warum analog langsam ist? In digitalen Computern sind einige Anweisungen "langsam", da sie nur wenige Iterationen benötigen, um ausgeführt zu werden. Aber mit Analog dauert es meiner Meinung nach nur einen Durchgang, um das Ergebnis zu erhalten.
Mrpyo

1
@ mrpyo - Natürlich können Sie beide Funktionen ausführen. Wenn Sie einen Multiplikator nehmen und beide Eingänge miteinander verbinden, wird dies zu einem "Quadrierer". Wenn Sie die Schaltung verwenden, die The Photon in seiner Antwort verwendet, und beide Eingänge mit dem Ausgang des Operationsverstärkers verknüpft sind, werden Quadratwurzeln erzeugt. Das Spannungs-Strom-Verhältnis in einer Diode ist exponentiell, sodass Sie damit Exponenten erzeugen können. Und wenn Sie eine Diode in einen Rückkopplungspfad setzen, erhalten Sie Logarithmen. In allen Fällen kann der Dynamikbereich jedoch durch Verstärkeroffsets, Drifts usw. begrenzt werden. Für die Diodenschaltungen gibt es auch andere Fehlerquellen.
WhatRoughBeast

11

Ist eine analoge Signalaufteilung möglich (da die FPU-Multiplikation ohnehin oft einen CPU-Zyklus benötigt)?

Wenn Sie einen analogen Multiplikator haben, ist es "einfach", einen analogen Teiler zu erstellen:

schematisch

simulieren Sie diese Schaltung - Schaltplan erstellt mit CircuitLab

Unter der Annahme, dass X1 und X2 positiv sind, löst dies Y = X1 / X2.

Es gibt zwar analoge Multiplizierer, diese Schaltung ist also grundsätzlich möglich. Leider haben die meisten analogen Multiplikatoren einen relativ begrenzten Bereich zulässiger Eingabewerte.

Ein anderer Ansatz wäre, zuerst logarithmische Verstärker zu verwenden, um den Logarithmus von X1 und X2 zu erhalten, zu subtrahieren und dann zu potenzieren.

Wäre es theoretisch möglich, moderne Prozessoren zu beschleunigen, wenn man statt digitaler FPUs (CPU -> ADC -> analoge FPU -> DAC -> CPU) analoge Signalarithmetik (auf Kosten der Präzision) verwenden würde?

Im Kern ist es eine Frage der Technologie - es wurde so viel in Forschung und Entwicklung investiert, um den digitalen Betrieb zu beschleunigen, dass die analoge Technologie an diesem Punkt noch einen langen Weg zurücklegen muss. Aber es gibt keine Möglichkeit zu sagen, dass es absolut unmöglich ist.

Auf der anderen Seite würde ich nicht erwarten, dass meine Rohteilerschaltung über 10 MHz funktioniert, ohne sehr sorgfältige Arbeit und gründliche Tauchuntersuchungen durchführen zu müssen, um sie schneller zu machen.

Sie sagen auch, wir sollten die Präzision vernachlässigen, aber eine Schaltung wie die von mir gezeichnete ist ohne Abstimmung wahrscheinlich nur auf etwa 1% genau und wahrscheinlich nur auf 0,1% genau, ohne eine neue Technologie zu erfinden. Der Dynamikumfang der Eingänge, der sinnvoll berechnet werden kann, ist ebenfalls begrenzt. Es ist also wahrscheinlich nicht nur 100- bis 1000-mal langsamer als verfügbare digitale Schaltkreise, sondern wahrscheinlich auch 10- bis 300- mal schlechter (im Vergleich zu IEEE 64-Bit-Gleitkomma).


5
Hey, ich habe einen alten AD-Multiplikator, der 10 MHz leistet. Ich wette, ich kann jetzt etwas schneller bekommen. Nur um einen Schraubenschlüssel in dieses Thema zu stecken, wenn das Quantencomputing jemals funktioniert, wird es analog sein.
George Herold

@ GeorgeHerold, das ist mein bestes Argument, warum Quantencomputer Schlangenöl ist.
Das Photon

Sehr ordentlicher Trick. Außer ich denke, dass berechnet A (x1) / (1 + A (x2)), die für einen großen Gewinn A genau sein sollte.
Yale Zhang

@georgeherold Ein Mischpult ist wirklich nur ein schneller Analogmultiplikator mit etwas merkwürdigen Eingangsanforderungen, und ich glaube, die Leute mit Mikrowellenfrequenz erreichen heutzutage eine
Frequenz von

@mbrig, die Schwierigkeit ist der Operationsverstärker und die geschlossene Rückkopplungsschleife.
Das Photon

7
  1. Nein, da DAC- und ADC-Konvertierungen viel mehr Zeit in Anspruch nehmen als digitale Division oder Multiplikation.

  2. Analoge Multiplikation und Division ist nicht so einfach, verbraucht mehr Energie und wäre nicht kosteneffizient (im Vergleich zu digitalen ICs).

  3. Schnelle analoge Multiplikations- und Divisions-ICs (GHz-Bereich) haben eine Genauigkeit von etwa 1%. Das heißt, alles, was Sie auf einem schnellen analogen Teiler teilen können, sind ... 8-Bit-Zahlen oder ähnliches. Digitale ICs verarbeiten solche Zahlen sehr schnell.

  4. 3.410343.41034

Hier sehen Sie analoge Teiler und Multiplikatoren von Analog Devices ( Link )

Bildbeschreibung hier eingeben

Diese Dinge sind im allgemeinen Rechnen nicht sehr nützlich. Diese sind in der analogen Signalverarbeitung viel besser.


4. Nicht genau. Gleitkommazahlen werden in wissenschaftlicher Notation dargestellt. Grundsätzlich gibt es zwei Zahlen: Koeffizient und Exponent decken einen engeren Bereich ab.
Mrpyo

@mrpyo Bist du sicher? Ich denke, der 16-Bit-Float-Bereich ist viel höher als die Zahlen, die ich vor der Bearbeitung geschrieben habe (etwa 0000000000000.1 und 10000000000000).
Kamil

en.wikipedia.org/wiki/IEEE_floating_point Für C sind floates 23 Bit für den Koeffizienten, 8 Bit für den Exponenten und 1 Bit für das Vorzeichen. Sie müssten diese 3 Bereiche analog darstellen.
Mrpyo

Könnten Sie nicht die erforderliche Frequenz reduzieren, indem Sie mehrere Geräte hintereinander schalten und jeweils nur eines verwenden?
Mrpyo

4
Das wahre analoge Äquivalent zu Floating Point wäre der logarithmische Bereich, daher ist ein absurd hoher dynamischer Bereich (höher als die FP-Mantisse) nicht erforderlich. Ansonsten gute Punkte.
Brian Drummond

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.