DE3789171T2 - Mehrstufiges Multiplizier- und Addiergerät für Digitalsignale. - Google Patents

Mehrstufiges Multiplizier- und Addiergerät für Digitalsignale.

Info

Publication number
DE3789171T2
DE3789171T2 DE3789171T DE3789171T DE3789171T2 DE 3789171 T2 DE3789171 T2 DE 3789171T2 DE 3789171 T DE3789171 T DE 3789171T DE 3789171 T DE3789171 T DE 3789171T DE 3789171 T2 DE3789171 T2 DE 3789171T2
Authority
DE
Germany
Prior art keywords
stage
bit
signal
product
digital signal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE3789171T
Other languages
English (en)
Other versions
DE3789171D1 (de
Inventor
Clive Malcolm Dyson
Anthony David King-Smith
Mohamad Hossein Yassaie
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
STMicroelectronics Ltd Great Britain
Original Assignee
Inmos Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inmos Ltd filed Critical Inmos Ltd
Application granted granted Critical
Publication of DE3789171D1 publication Critical patent/DE3789171D1/de
Publication of DE3789171T2 publication Critical patent/DE3789171T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/0223Computation saving measures; Accelerating measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Complex Calculations (AREA)
  • Filters That Use Time-Delay Elements (AREA)

Description

  • Die Erfindung bezieht sich auf eine Einrichtung und ein Verfahren zur mehrstufigen Digitalsignalmultiplikation und -addition.
  • Die Erfindung ist insbesondere bei der Verarbeitung von digitalen Signalen einsetzbar, bei der eine wiederholte Addition zur Erzielung einer Multiplikation und eine gemeinsame Addition einer Mehrzahl von Ergebnissen der Multiplikation stattfindet. Eine derartige Signalverarbeitung ist insbesondere bei Mehrstufenfiltern wie etwa Transversalfiltern für den Einsatz bei einer digitalen Signalverarbeitung anwendbar.
  • Es sind Transversalfilter bekannt, die Mehrstufeneinrichtungen enthalten, wobei jede Stufe zur Berechnung des Produkts zweier digitaler Signal zusammen mit einer Einrichtung zur Addition von durch unterschiedliche Stufen gebildeten Produkten ausgelegt ist. Eine solche Einrichtung ist auf den Seiten 830 bis 835 von SMPTE Journal 93 (1984) September, Scarsdale, New York, US, beschrieben. Jedoch treten Schwierigkeiten bei der Erzielung zufriedenstellender Arbeitsgeschwindigkeit insbesondere dann, wenn die zu multiplizierenden Signale eine große Bitanzahl enthalten, auf. Es sind digitale Addiereinrichtungen bekannt, bei denen die Arbeitsgeschwindigkeit der Einrichtung dadurch erhöht wird, daß Mehrbit-Eingangssignale in einer Additionsstufe akkumuliert werden und die unaufgelösten Summen- und Übertragsignale bei Empfang eines letzten Mehrbit-Eingangssignals zu einer Auflösungsstufe übertragen werden. Die Einrichtung kann dann die Akkumulation zweiter Summen- und Übertragsignale in der Additionsstufe beginnen, während die Auflösungsstufe die ersten Summen- und Übertragsignale auflöst. Eine solche Einrichtung ist in der US-PS 4 229 802 beschrieben. Eine Addition einer Mehrzahl von Teilprodukten zur Erzielung einer Multiplikation beinhaltet die Auflösung bzw. Berücksichtigung von Übertragsignalen, die bei einer Bitposition erzeugt werden, um diese zu einer Bitposition höherer Wertigkeit zu übertragen. Bei Mehrbit-Zahlen ist es notwendig, Addierer mit sehr hoher Geschwindigkeit einzusetzen, wenn unerwünschte Verzögerungen bei der Auflösung irgendwelcher Übertragsignale für alle Bitpositionen eines Produktbildungsvorgangs zu vermeiden sind. Weitere Verzögerungen können ebenso durch den Vorgang der Zusammenaddition der Ergebnisse einer Vielzahl von Multiplikationsvorgängen hervorgerufen werden, wenn die Addition verzögert wird, bis das Produkt jeder separaten Multiplikation gebildet wurde.
  • Es ist eine Aufgabe der vorliegenden Erfindung, die Geschwindigkeit der Digitalsignalverarbeitung zu verbessern, bei der eine wiederholte Addition zur Erzielung einer Multiplikation zusammen mit einer Addition einer Mehrzahl von Multiplikationsergebnissen durchgeführt wird.
  • Die vorliegende Erfindung, wie sie im Anspruch 1 definiert ist, stellt eine mehrstufige Digitalsignal-Multiplizier- und Addiereinrichtung zum Bewirken einer wiederholten Addition für die Erzielung einer Multiplikation und einer Aufsummierung einer Mehrzahl von Ergebnissen der Multiplikation bereit, die eine Mehrzahl von Additionsstufen aufweist, wobei jede Stufe eine Vielzahl von Addiereinrichtungen an aufeinanderfolgenden Bitpositionen besitzt, die jeweils einem Bit unterschiedlicher Wertigkeit in einem Produkt entsprechen, das durch Multiplikation eines ersten digitalen Signals für diese Stufe und eines zweiten digitalen Signals für diese Stufe gebildet wird, wobei die Addiereinrichtungen jeder Stufe Mittel zur Bildung von Teilprodukten durch aufeinanderfolgende Verknüpfungen unter Heranziehung des ersten digitalen Signals und eines ausgewählten Bits oder ausgewählter Bits des zweiten digitalen Signals sowie Mittel zur Addition aufeinanderfolgender Teilprodukte, die aus der Heranziehung von Bits des zweiten digitalen Signals gebildet sind, besitzt, wodurch das Produkt nach Aufsummierung eines letzten Teilprodukts gebildet wird, wobei jede Addiereinrichtung eine Ausgabeeinrichtung zum Bereitstellen eines ersten, eine Summe für jene Bitposition anzeigenden Ausgangssignals und eines zweiten, ein beliebiges von jener Bitposition zu einer Bitposition größerer Wertigkeit zu übertragendes Übertragsignal anzeigenden zweiten Ausgangssignals nach jeder Teilproduktaufsummierung besitzt, und einer Wähleinrichtung, die selektiv in einem ersten Zustand, bei dem Signale von dem ersten und dem zweiten Ausgangssignal bzw. Ausgang der Addiereinrichtungen innerhalb einer Stufe zu jeweiligen Addiereinrichtungen innerhalb der Stufe für den Einsatz bei der Aufsummierung mit weiteren Teilprodukten zugeführt werden, oder in einem zweiten Zustand betreibbar ist, bei dem Signale von dem ersten und dem zweiten Ausgang von Addiereinrichtungen innerhalb einer Stufe nach der Aufsummierung des letzten Teilprodukts an eine weitere Addiervorrichtung zur Erzielung einer Addition der Produkte von mehr als einer Stufe anlegbar sind, wobei die Wähleinrichtung derart betreibbar ist, daß jede beliebige Additionsstufe in den zweiten Zustand wechselt, ohne Übertragsignale in der besagten einen Additionsstufe bei allen Bitpositionen innerhalb der besagten einen Additionsstufe aufzulösen.
  • Die Erfindung, wie sie im Anspruch 2 definiert ist, schafft auch ein Verfahren zur Verarbeitung von Digitalsignalen mittels Bildung einer Mehrzahl von Produkten aus Digitalsignalen und Aufsummierung einer Mehrzahl der Produkte, wobei das Verfahren das Anlegen von Mehrbit-Eingangs-Digitalsignalen an eine Mehrzahl von Mehrbit-Additionsstufen eines Mehrstufenaddierers, das Anlegen eines zweiten Mehrbit-Digitalsignals an jede Stufe für den Einsatz bei der Erzeugung eines Produkts mit dem Eingangs-Digitalsignal dieser Stufe, das Erzeugen eines Produkts in jeder Stufe durch eine Abfolge von Vorgängen, bei denen jeweils ein Mehrbit-Teilprodukt erzeugt und das Teilprodukt mit der Summe jeglicher vorhergehender Teilprodukte dieser Stufe aufsummiert wird, umfaßt, wobei die Aufsummierung der Teilprodukte innerhalb einer Stufe das Addieren von Bits entsprechender Wertigkeit und das Bilden von Übertragsignalen zum Übertragen von Bits zu Positionen höherer Wertigkeit, sofern notwendig, enthält, und wobei nach Akkumulierung der Teilprodukte für eine Stufe ein Ausgangssignal von der betreffenden einen Stufe für den Einsatz bei der Addition mit einem Produkt einer weiteren Stufe bereitgestellt wird und das Ausgangssignal von einer Stufe an eine weitere Stufe vor vollständiger Auflösung irgendwelcher Übertragsignale innerhalb der betreffenden Stufe bei allen Bitpositionen der betreffenden Stufe angelegt wird.
  • Bevorzugte Ausführungsbeispiele der Erfindung, die in den Unteransprüchen definiert sind, erlauben die Erzielung höherer Arbeitsgeschwindigkeiten. Weiterhin ermöglichen sie die Bildung von Einzelchipeinrichtungen, die weniger Chipfläche benötigen, da die bei jeder Stufe eingesetzten Addierer Addierer mit niedrigerer Geschwindigkeit sein können, die jeweils geringere Siliziumfläche benötigen, jedoch aufgrund des Einsatzes der Erfindung eine insgesamt hohe Arbeitsgeschwindigkeit erreichen.
  • Einige Ausführungsbeispiele der Erfindung werden nun als Beispiele unter Bezugnahme auf die beigefügten Zeichnungen beschrieben, die zeigen:
  • Fig. 1 ein Blockschaltbild eines digitalen Transversalfilters in Übereinstimmung mit der vorliegenden Erfindung,
  • Fig. 2 ein Blockschaltbild einer Abänderung der in Fig. 1 dargestellten Anordnung,
  • Fig. 3 Einzelheiten der Steuerung und einen Teil einer Stufe des in Fig. 1 dargestellten Ausführungsbeispiels,
  • Fig. 4 verschiedene Zeitsteuersignale, die eingesetzt werden, wenn 4-Bit-Koeffizienten bei der Anordnung gemäß Fig. 1 benutzt werden,
  • Fig. 5 gleichartige Zeitsteuersignale für den Fall, daß 16-Bit-Koeffizienten eingesetzt werden,
  • Fig. 6 eine Abänderung der Anordnung gemäß Fig. 3, bei der zwei Bits jedes Koeffizienten gleichzeitig eingesetzt werden, und
  • Fig. 7 eine Abänderung der Anordnung gemäß Fig. zur Schaffung einer Zweikanaleinrichtung.
  • Fig. 1 veranschaulicht eine digitale Signalverarbeitungseinrichtung, die auf einem Integrierschaltungs-Einzelchip ausgebildet ist. Dieses spezielle Beispiel ist ein CMOS-Chip in der Form eines Transversalfilters mit N Stufen. Jede Stufe des Filters ist zur Multiplikation zweier digitaler Signale durch wiederholte Addition von Teilprodukten der beiden Signale ausgelegt, wobei das das Produkt einer Stufe anzeigende Ausgangssignal zu demjenigen einer nachfolgenden Stufe hinzuaddiert wird. Bei diesem speziellen Beispiel werden dieselben Eingangsdaten gleichzeitig als ein erstes digitales Signal jeder Stufe zugeführt. Diese Eingangsdaten sind mit einem zweiten digitalen Signal in der Form eines für jede Stufe ausgewählten Gewichtskoeffizienten zu multiplizieren. Jede Stufe ist derart verschaltet, daß ihr Ausgangssignal ein Eingangssignal für die nachfolgende Stufe bildet, wodurch eine Kette von miteinander verschalteten Stufen geschaffen wird.
  • Wenn Eingangsdaten an jede Stufe angelegt werden, benötigt die Stufe ein Zeitintervall T zur Berechnung des Produkts für diese Stufe, wobei nach Verstreichen der Zeit T das Ausgangssignal der betreffenden Stufe der nachfolgenden Stufe zugeführt und eine neue Produktberechnung unter Heranziehung neuer aktualisierter Eingangsdaten begonnen wird. In dieser Weise werden neue Produkte bei jedem Zeitintervall T berechnet und das Produkt jeder Stufe wird nach jedem verstrichenen Zeitintervall T an eine in der Kette nachfolgende weitere Stufe abgegeben. Das Ausgangssignal der Filterkette zum Zeitpunkt t = kT ergibt sich wie folgt:
  • y[kT] = w(1)*x[kT] + w(2)*x[(k-1)T] + . . . . . . + w(N)*x[(k-N+1)T],
  • wobei x[kT] den k-ten Eingangsdaten-Abtastwert und w(1) bis w(N) die Gewichtskoeffizienten für die N Stufen bezeichnen.
  • Bei der in Fig. 1 gezeigten Mehrstufen-Digitalsignal-Addiereinrichtung sind die beiden ersten Stufen und die letzte Stufe N gezeigt. Bei diesem speziellen Beispiel können zweckmäßigerweise 32 Stufen vorhanden sein. Jede Stufe besitzt eine Mehrzahl von Einzelbitaddierern bei aufeinanderfolgenden Bitpositionen, die jeweils einem Bit unterschiedlicher Wertigkeit in dem durch die betreffende Stufe zu bildenden Produkt entsprechen. Bei diesem Beispiel sind die Addierer der Stufe 1 mit 11, die Addierer der Stufe 2 mit 12 und die Addierer der Stufe N mit 13 bezeichnet. Bei diesem speziellen Beispiel sind die Eingangsdaten, die das erste Digitalsignal für jede Stufe bilden, ein binäres Signal und haben eine Wortlänge von 16 Bits. Der das zweite digitale Signal bildende Gewichtskoeffizient für den Einsatz bei der Multiplikation jeder Stufe ist ein binäres Signal und besitzt eine Wortlänge, die auf 4, 8, 12 oder 16 Bits programmiert werden kann. Die Eingangsdaten werden mit 16 Bit parallel über einen Datenpfad 15 an ein Schieberegister 16 angelegt. Das Schieberegister 16 ist ein 36-Bit-Register, das die Verschiebung der Eingangsdaten an Positionen unterschiedlicher Wertigkeit innerhalb des Registers während der Bildung einer Aufeinanderfolge von Teilprodukten in Abhängigkeit von dem Bitmuster des für die betreffende Stufe zu verwendenden Koeffizienten ermöglicht. Die Koeffizienten sind in Registern jeweiliger Koeffizientensteuereinheiten 20, 21, und 22 für jede der Stufen 1, 2 und N gespeichert. Es ist anzumerken, daß die unterbrochenen Linien zwischen den Stufen 2 und der Stufe N in Fig. 1 die aus Gründen der Einfachheit nicht dargestellte Aufeinanderfolge von Stufen anzeigen, die gleichartig der Stufe 2 sind und jeweils in einer Kette miteinander verschaltet sind. In ähnlicher Weise sind aus Gründen der Einfachheit die Addierer in jeder Stufe für das Bit 1, das Bit 2 und das Bit 36 dargestellt und die unterbrochene Linie innerhalb jeder Stufe zeigt eine Aufeinanderfolge von für die Bits 3 bis 35 vorgesehenen Addierern an. Diese sind in gleichartiger Weise wie die dargestellten Addierer für das Bit 2 verschaltet.
  • Bei diesem speziellen Ausführungsbeispiel werden die in dem Schieberegister 16 gespeicherten Eingangsdaten entlang einer 36-Bit-Parallelverbindung 23 an sechsunddreißig getrennte Einzelbiteingänge jeder Stufe der Addiereinrichtung angelegt, so daß jede Stufe dieselben Eingangsdaten gleichzeitig empfängt. Jede Stufe berechnet ein Produkt aus den eingegebenen Daten und dem Koeffizienten für die betreffende Stufe unter der Steuerung durch eine Steuereinheit 25 und einen Zeitsteuertakt 26. Der Zeitsteuertakt erzeugt ein Taktsignal mit einer durch das Signal 29 in den Fig. 4 und 5 veranschaulichten Form und die Funktionsweise desselben wird nachstehend in größeren Einzelheiten beschrieben.
  • Die Arbeitsweise der Addierer in jeder Stufe ist im wesentlichen gleich und wird unter Bezugnahme auf Stufe 1 beschrieben. Eingangsdaten vom parallelen Pfad 15 werden anfänglich in die 16 Bitpositionen niedrigster Wertigkeit im Register 16 eingespeichert und die verbleibenden Positionen in dem Schieberegister werden sämtlich anfänglich mit der 16-Bit-Position verbunden, um dasselbe digitale Signal als das Bit höchster Wertigkeit der Eingangsdaten zu enthalten und hierdurch eine Vorzeichenausdehnung des in dem Register 16 enthaltenen Werts zu erzielen. Die Vorrichtung kann positive oder negative Zahlen unter Einsatz von numerischen Zweierkomplement-Formate handhaben. Die Addierer in jeder Stufe bilden eine Aufeinanderfolge von Teilprodukten, die den mit jedem der Bits in der Reihe in dem Koeffizienten für diese Stufe multiplizierten Eingangsdaten entsprechen. Jeder Addierer ist mit einem Eingangstor 30 zum Bilden eines einzelnen Bits eines neuen Teilprodukts versehen, das einem Eingang 17 des Addierers zugeführt wird. Der Addierer besitzt Summen- und Übertragsausgänge 27 bzw. 28 und weiterhin Summen- und Übertragseingänge 18 und 19 für aus einem vorhergehenden Teilprodukt erzeugte Werte für die Aufsummierung mit dem gegenwärtigen Teilprodukt. Unter der Steuerung durch die Steuereinheit 25 und den Takt 26 empfängt jedes der Tore 30 ein Signal auf einer Leitung 31 entsprechend dem ersten Bit des Koeffizienten und empfängt gleichzeitig ein der Bitposition des betreffenden Tors 30 entsprechendes Bit von dem Register 16. Das Tor 30 gibt dann einen Eingang bzw. ein Eingangssignal 17 an den entsprechenden Addierer 11 derart ab, daß die Sätze der Eingangssignale 17 von allen 36 Toren 30 ein Teilprodukt repräsentieren, das der ersten Bitposition des Koeffizienten entspricht. Bei dem ersten Verknüpfungszyklus ist kein vorhergehender akkumulierter Gesamtwert in dem Addierer 11 vorhanden und der Addierer gibt ein Summenausgangssignal 27 ab, wobei aber in dem Fall des ersten Teilprodukts selbstverständlich kein Signal auf der Übertrags-Ausgangsleitung 28 vorhanden ist. Der Summeneingang 18 jedes Addierers ist mit einem in einer Summenleitung 33 angeordneten Summenwähler 32 verbunden, so daß der Wähler 32 als ein Eingangssignal einen Summenwert von einer vorhergehenden Stufe oder einen Summenwert, der vom Summenausgang 27 desselben Addierers gewonnen ist, wählen kann. In gleicher Weise ist der Übertragseingang 19 jedes Addierens für Bitpositionen 2 bis 36 mit einem Übertragwähler 34 verbunden, der in einer Übertragleitung 35 angeordnet ist, so daß der Wähler 34 als einen Übertragseingang einen Wert wählen kann, der aus der Bitposition der nächstniedrigeren Wertigkeit derselben Stufe oder von der Bitposition der nächstniedrigeren Wertigkeit einer vorhergehenden Stufe herausgegriffen ist. Der Übertragausgang 28 jedes Addierers ist mit der Übertragsleitung 35 verbunden und der Summenausgang 27 ist mit der Summenleitung 33 verbunden. Die Addierer der Bit-1-Position in jeder Stufe haben Übertrageingänge 19, die mit den Stufenkoeffizienteneinheiten 20, 21, 22 verbunden sind und keinen Übertrag im Signal mit Ausnahme des letzten Bits eines negativen Koeffizienten empfangen, was nachstehend erläutert wird.
  • Jeder der Wähler 32 und 34 wird durch die Steuereinheit 25 derart gesteuert, daß die Wähler 32 und 34 für die Bildung des ersten Teilprodukts Summen- und Übertragseingänge 18 und 19 von der vorhergehenden Stufe wählen. Bei der Stufe 1 sind die Wähler 32 und 34 mit einer Masseleitung 40 zur Bereitstellung eines Nullsummen- und Nullübertragsignals für den ersten Operationszyklus verbunden. Sobald das erste Teilprodukt gebildet wurde, werden die Wähler 32 und 34 umgeschaltet, so daß während der Aufsummierung von Teilprodukten jegliche Summen- Ausgangssignale 27 zu dem Eingang 18 des Addierers 11 zurückgeführt und jegliches Übertrags-Ausgangssignal 28 zu dem Übertragseingang 19 des die nächsthöhere Wertigkeit in dieser Stufe besitzenden Addierers geleitet wird. Nach dem ersten Zyklus, bei dem das erste Teilprodukt gebildet und durch jeden Addierer ausgegeben wird, werden die Inhalte des Schieberegisters 18 zu dem nächsten Position höherer Wertigkeit bewegt und das zweite Bit des Koeffizienten von der Einheit 20 wird den Toren 30 zugeführt. Die Tore 30 empfangen nun jeweilige Bits von denselben Stellen im Register 16, wie zuvor, auch wenn die Inhalte verschoben wurden, zusammen mit dem zweiten Bit des Koeffizienten und geben ein neues Teilprodukt an jeden der Addierer 11 ab. Diese wird zu der existierenden Teilproduktsumme hinzuaddiert, die an den Eingang 18 angelegt wurde, so daß jeder Addierer 11 ein neues Summenausgangssignal 27 und möglicherweise ein Übertragsausgangssignal 28 erzeugt. Dies wird für eine Mehrzahl von Teilprodukten entsprechend jedem Bit des Koeffizienten aufeinanderfolgend zusammen mit den zu einer Position höherer Wertigkeit für jedes Bit des Koeffizienten verschobenen Eingangsdaten im Register 16 wiederholt, wobei die Wähler 32 und 34 im ersten Zustand bleiben. Wenn das letzte, dem letzten Bit im Koeffizienten entsprechende Teilprodukt durch die Addierer 11 aufsummiert wurde, werden die Wähler 32 und 34 in einen zweiten Zustand gebracht, so daß irgendwelche Summen- und Übertragssignale auf Leitungen 33 und 35 zur Bildung von Eingängen der entsprechenden Addierer 12 der zweiten Stufe vorwärtsgeleitet werden. Während der Aufsummierung der Teilprodukte in der Stufe 1 können irgendwelche Übertragssignale, die von einer Bitposition zu der nächsten geleitet wurden, teilweise innerhalb der Stufe 1 aufgelöst bzw. berücksichtigt worden sein. Jedoch wird die Umschaltung mittels der Wähler 32 und 34 nach der Aufsummierung des letzten Teilprodukts für die Stufe unabhängig davon bewirkt, ob irgendwelche Übertragssignale innerhalb der Stufe 1 vollständig aufgelöst wurden, so daß eine Kombination aus Summensignalen und nicht aufgelösten Übertragssignalen zu der nächsten Stufe vorwärtsgespeist werden können. Dies wird aufeinanderfolgend für jede Stufe wiederholt. Für auf die erste Stufe folgende Stufen werden die Wähler 32 und 34 während des ersten Operationszyklus umgeschaltet, um das Summenausgangssignal 27 von dem Addierer der entsprechenden Bitposition in der vorhergehenden Stufe als ein Summeneingangssignal anzulegen, und es empfängt in gleicher Weise der Übertragseingang 19 irgendein bzw. jegliches Übertragssignal von dem Addierer mit der nächstniedrigeren Bitwertigkeit in der vorhergehenden Stufe. In dieser Weise enthält der erste Operationszyklus jeder der ersten Stufe nachgeschalteten Stufe die Bildung eines ersten Teilprodukts und die Addition desselben während des ersten Operationszyklus zu irgendwelchen Summen- und Übertragssignalen, die von der vorhergehenden Stufe nach vorne zugeführt wurden. Nach dem ersten Operationszyklus werden die Wähler 32 und 34 umgeschaltet, so daß irgendwelche Summen- und Übertragsausgänge in derselben Stufe benutzt werden, wie es zuvor für die Stufe 1 beschrieben wurde.
  • Es versteht sich, daß das Vorsehen von 36 Bits im Register 16 und von 36 Addierern in jeder Stufe eine Vergrößerung der Anzahl von Bits ermöglicht, die zur Berechnung des Produkts der ersten und zweiten, jeder Stufe zugeführten digitalen Signale notwendig sind. Bei dem Einsatz von Wörtern mit 16 Bits als Eingangsdaten ist es bis zu 16-Bit-Koeffizienten und bis zu 32 Stufen nicht notwendig, 36 Bitpositionen zu überschreiten, und folglich ist kein Übertragssignal von dem Addierer in der Position höchster Wertigkeit jeder Stufe notwendig. Aus diesem Grund besitzt der Addierer höchster Wertigkeit in jeder Stufe einen einzigen Ausgang 27, der die Summe ohne zugehöriges Übertragssignal repräsentiert. Die abschließende Stufe N ist so ausgelegt, daß die Summen- und Übertragsausgänge 27 und 28 mit geeigneten Bitstellen eines Übertragsfortpflanzungs- bzw. Übertragsberücksichtigungsaddierers 45 verbunden sind. Dies ist ein Hochgeschwindigkeitsaddierer, der sowohl Summen- als auch Übertragseingänge bei 36 Bitstellen zunehmender Wertigkeit besitzt. Ein Massesignal wird auf einer Leitung 40 an die Übertragseingänge niedrigster Wertigkeit angelegt, um an dieser Position kein Übertragseingangssignal anzuzeigen. Der Addierer ist zur vollständigen Fortpflanzung der Übertragssignale durch alle Bitpositionen des Addierers ausgelegt, so daß ein Ausgangssignal 46 bereitgestellt wird, in dem die Übertragssignale vollständig aufgelöst wurden.
  • Die Arbeitsweise jedes Addierers und des Steuermechanismus wird nun unter Bezugnahme auf die Fig. 3 und 5 genauer beschrieben. Fig. 3 zeigt die Steuereinheit 25, das Register 16, die Koeffizienteneinheit 21 und zumindest zwei signifikante Positionen der zweiten Stufe. Die zweite Stufe wurde gewählt, da sie typisch für jede zwischenliegende Stufe ist. Die Einheit 21 enthält ein 16-Bit-Schieberegister 41, in das alle 16 Bit parallel von einem 16-Bit-Zwischenspeicher 50 unter der Steuerung durch ein von der Steuereinheit 25 gewonnenes Speichersteuer-Eingangssignal 51 eingespeichert werden. Neue Koeffizienten können beispielsweise über eine Mikrocomputer-Schnittstelle in den Zwischenspeicher 50 in asynchroner Weise unabhängig von der Zeitgabe der Steuereinheit 25 eingespeichert werden. Ein Signal auf einer Leitung 51 wird dann zur Übertragung jedes Bits des Koeffizienten von dem Zwischenspeicher 50 in das Schieberegister 41 eingesetzt. Die Beschickung des Zwischenspeichers 50 kann durch ein Steuersignal 54 gesteuert werden. Bei diesem Beispiel wird jede Stufe der Vorrichtung durch eine gemeinsame Steuereinheit 25 gesteuert und wird daher behandelt, als hätte sie einen Koeffizienten mit gleichförmiger Bitlänge. Dies können 4 Bit, 8 Bit, 12 Bit oder 16 Bit sein und die Anzahl von Verknüpfungen, die jeweils eine Teilproduktbildung und eine Aufsummierung innerhalb einer Stufe enthalten, hängt von der Anzahl von Bits in den Koeffizienten ab. Das Taktimpulssignal, wie es als Beispiel bei 29 in Fig. 5 gezeigt ist, wird von dem Takt bzw. Taktgeber 26 an einen Binärzähler 55 mit fünf Ausgangsleitungen 56, 57, 58, 59 und 60 angelegt, die zur Erzeugung jeweiliger Ausgangssignale dann, wenn der Zählstand der Taktimpulse 1, 2, 4, 8 bzw. 16 erreicht, ausgelegt sind. Jede dieser Leitungen ist mit einem NOR-Glied 61 verbunden. Alle vier Leitungen 56, 57, 58 und 59 bilden vier Eingänge für ein UND-Glied 62. Die drei Leitungen 56, 57 und 59 bilden Eingänge für ein UND-Glied 63. Die drei Leitungen 56, 57 und 58 bilden drei Eingänge für ein UND-Glied 64 und die beiden Leitungen 56 und 57 bilden zwei Eingänge für ein UND-Glied 65. Die Ausgänge der UND-Glieder 62 bis 65 bilden jeweils Eingänge 3, 2, 1 und 0 eines Wählers 66, der durch einen Zwischenspeicher 67 gesteuert wird, der die Bitlänge der eingesetzten Koeffizienten speichert. Falls die Koeffizientenbitlänge 4 Bit ist, wählt der Wähler 66 den Eingang 0. Falls die Koeffizientenbitlänge 8 Bit ist, wählt der Wähler 66 den Eingang 1. Falls die Koeffizientenbitlänge 12 Bit ist, wählt der Wähler 66 den Eingang 2. Falls die Koeffizientenbitlänge 16 Bit beträgt, wählt der Wähler 66 den Eingang 3. In dieser Weise wird ein Ausgangssignal auf einer Leitung 68 von Wähler 66 bereitgestellt, wenn der Binärzähler 55 einen Taktimpulszählstand erreicht hat, der anzeigt, daß das letzte Bit des Koeffizienten erreicht wurde. Dies stellt ein letztes Bit des Koeffizientensignals auf einer Leitung 69 dar, die zur Erzeugung einer Mehrzahl von Steuersignalen für den Einsatz bei jeder Stufe der Addiervorrichtung eingesetzt wird. Das Signal auf der Leitung 68 ist in Fig. 5 durch das Bezugszeichen 68 veranschaulicht. Es wird weiterhin als ein Eingangssignal an ein positivflankengetriggertes D-Flip-Flop 70 angelegt, das Taktimpulse auf einer Leitung 75 empfängt. Bei jeder positiven Flanke eines Taktimpulses tastet das Flip-Flop 70 den Signalpegel auf der Leitung 68 ab und behält diesen Signalpegel an seinem Ausgang 71 bei, bis der nächste Abtastwert bei der nächsten positiven Flanke eines Taktimpulses herausgegriffen wird. Der Ausgang 71 bildet einen Eingang für ein weiteres UND-Glied 72, das ebenfalls zum Empfangen eines Taktimpulseingangs auf einer Leitung 73 ausgelegt ist. In dieser Weise erzeugt das UND-Glied 72 ein Ausgangssignal 76 der in Fig. 5 gezeigten Form, das drei Dinge tut. Es wird zu dem Binärzähler 55 zurückgeführt, um den Binärzähler in Bereitschaft für eine neue Folge von Operationen zurückzusetzten. Es wird weiterhin auf einer Leitung 77 für den Einsatz beim Wiederbeschicken des Schieberegisters 16 mit neuen Eingangsdaten, die für die nächste Produktbildung bereit sind, gespeist. Es wird weiterhin mit einer Leitung 51 zur erneuten Beschickung des Koeffizientenregisters 41 verbunden. Das NOR-Glied 61 ist zur Schaffung eines Wähler-Schaltausgangssignals auf einer Leitung 80 zum Steuern der Wähler 32 und 34 ausgelegt. Wie in Fig. 3 gezeigt ist, ist jeder Addierer-Summenausgang 27 über einen D-Zwischenspeicher 43 mit der Summenleitung 33 verbunden. Die Übertragsausgänge 28 sind in gleicher Weise über einen D-Zwischenspeicher 44 mit der Übertragsleitung 35 verbunden. Die D-Zwischenspeicher 43 und 44 sind negativflankengetiggerte D-Flip-Flops, die durch Taktimpulse gesteuert werden, die von einer Leitung 75 zugeführt werden. Die Wähler 32 und 34 schalten die Summen- und Übertragssignale, die den Summen- und Übertragseingängen in Abhängigkeit von auf einer Leitung 80 von dem NOR-Glied 61 zugeführten Steuersignalen zugeführt werden. Das Signal 80 ist in Fig. 5 gezeigt und der erste Taktimpuls setzt, wie ersichtlich, das Signal 61, um die Wähler zur Auswahl von Eingängen bzw. Eingangssignalen einer vorhergehenden Stufe zu veranlassen. Nachfolgende Taktimpulse setzen den Wähler 61 zurück, bis der nächste Bit-1-Taktimpuls auftritt. Die Torvorrichtung 30 besteht aus einem Tor mit einem UND-Ausgang 82 und einem NAND-Ausgang 83 sowie aus einem Wähler 81, der zur Auswahl entweder der Leitung 82 oder 83 als den Eingang 17 für den Addierer 12 zur Handhabung negativer Koeffizienten in der nachstehend beschriebenen Weise ausgelegt ist. Das Tor 30 besitzt zwei Eingänge, von denen einer mit der entsprechenden Bitstelle des Schieberegisters 16 verbunden ist und der andere Eingang von einem bestimmten Bit des Koeffizienten, der bzw. das auf einer Leitung 31 vom Schieberegister 20 abgegeben wird, gewonnen wird. Es versteht sich, daß ein Eingang jedes der 36 Tore 30 mit einem entsprechenden der 36 Bitpositionen in dem Register 16 verbunden ist, auch wenn aus Gründen der Einfachheit in Fig. 3 lediglich zwei gezeigt sind.
  • Dieses Beispiel ist zur Handhabung von positiven und negativen Zahlen unter Heranziehung von numerischen Zweierkomplement-Formaten ausgelegt. Bei diesem Format besitzt jede positive Zahl eine Null in der Position höchster Wertigkeit, wobei der negative Wert dieser Zahl durch Invertierung des Bitmusters und Hinzufügung einer 1 zu dem Bit geringster Wertigkeit gebildet wird. In gleicher Weise kann eine negative Zahl, die eine 1 an der Position höchster Wertigkeit besitzt, in eine positive Zahl durch Invertieren des Bits und Addieren von 1 zu dem Bit geringster Wertigkeit ungewandelt werden. Um mit negativen Koeffizienten arbeiten zu können, kann es notwendig sein, ein Eintragungssignal bzw. Einführungssignal (carry-in signal) in dem die niedrigste Wertigkeit besitzenden Addierer jeder Stufe hinzuzuaddieren und die Umkehrung zu bewirken. Dies wird durch den Einsatz eines UND-Glieds 90 erreicht, das zum Aufnehmen von Eingangssignalen von dem Ausgang des Schieberegisters 41 und des Signals auf der Leitung 69 ausgelegt ist. Ein Signalwert 1 auf der Leitung 69 zeigt an, wann das letzte Bit des Koeffizienten gehandhabt wird, und das UND-Glied 90 erzeugt dann, wenn das Koeffizientenbit eine eine negative Zahl anzeigende 1 ist, und gleichzeitig die Leitung 69 den Wert 1 besitzt, ein Ausgangssignal auf einer Leitung 91, die ein Eintragungs- bzw. Einfügungseingangssignal 19 für den Addierer 11 niedrigster Wertigkeit bildet. Dies trifft in gleicher Weise für die geringste Wertigkeit besitzende Addiererposition jeder Stufe der Addiervorrichtung zu, falls der Koeffizient negativ ist. Falls er positiv ist, kann das UND-Glied 90 nicht zwei gleichzeitige Signale des Werts 1 aufnehmen. Ein Ausgangssignal des UND-Glieds 90 wird weiterhin über die Leitung 91 zu Steuerwählern 81 geleitet, so daß das letzte Bit eines negativen Koeffizienten jeden Wähler 81 in dieser Stufe zur Auswahl des NAND-Ausgangs 83 bei jeder Bitposition veranlaßt.
  • Ein Beispiel der Arbeitsweise dieser Vorrichtung wird nun in größeren Einzelheiten beschrieben. Es sei anfänglich die Abfolge von Operationen betrachtet, die bei der Stufe 1 zur Durchführung der Multiplikation von die dezimale Zahl 5 repräsentierenden Eingangsdaten mit einem die dezimale Zahl 4 repräsentierenden Koeffizienten notwendig sind. Der Koeffizient wird durch die binäre Zahl 0100 repräsentiert, die die positive Zahl 4 anzeigt. Diese wird in das Schieberegister 41 eingespeichert und der Zwischenspeicher 67 wird zur Anzeige einer Koeffizientenbitlänge von 4 Bit gesetzt. Die Eingangsdaten 5 können durch die binäre Zahl 00000101 repräsentiert werden, die ausreichende Bitpositionen für die Multiplikation erlaubt, und der Rest des Schieberegisters 16 enthält Nullen in den Positionen höherer Wertigkeit. Der erste, durch den ersten Taktimpuls gesteuerte Operationszyklus bewirkt die Zuführung des Bits geringster Wertigkeit des Koeffizienten aus dem Register 41 über die Leitung 31 zu jedem der Tore 30. Das Register 41 ist zur anfänglichen Abgabe des Bits niedrigster Wertigkeit ausgelegt und ist so gezeigt, daß sich die Bitposition niedrigster Wertigkeit an der linken Seite des Registers benachbart zur Leitung 31 befindet. Da das Signal am Ausgang 68 und auf der Leitung 69 noch nicht anzeigt, daß ein letztes Koeffizientenbit erreicht wurde, arbeitet das Tor 30a als ein UND-Glied, wodurch ein erstes Teilprodukt des Bits niedrigster Wertigkeit des Koeffizienten mit den Daten im Schieberegister 16 gebildet wird. Hierdurch wird bei jedem der Eingänge 17 der Addierer 11 ein erstes Teilprodukt 00000000 zugeführt. Das Ausgangssignal des Addierers 11 wird durch die Zwischenspeicher 43 und 44 für einen vollständigen Taktimpuls zwischengespeichert und durch die Wähler 32 für die Akkumulierung mit dem zweiten Teilprodukt ausgewählt. Das zweite Teilprodukt wird durch den nächsten Taktimpuls 29 erzeugt, der einen weiteren Operationszyklus bewirkt, bei dem das zweite Bit des Koeffizienten von dem Register 41 zur Leitung 31 geführt wird und die Inhalte des Schieberegisters 16 zu einer Position höherer Wertigkeit bewegt werden, wobei die Position geringster Wertigkeit eine Null erhält. Tore 30 arbeiten noch als UND-Glieder und es wird das zweite Teilprodukt 00000000 erzeugt und den Addierern 11 hinzuaddiert. Das Ausgangssignal wird erneut zwischengespeichert und für die Aufsummierung mit dem nächsten Teilprodukt zurückgeführt. Dies wird durch den nächsten Taktzyklus bewirkt, der die Zuführung des dritten Bits des Koeffizienten zur Leitung 31 bewirkt. Da dieses Bit eine 1 ist, ist das dritte, durch das Tor 30 am UND-Ausgang 82 erzeugte Teilprodukt 00010100. Dieses wird durch jeden der Addierer 11 akkumuliert und das Ausgangssignal wird erneut zwischengespeichert und für die Aufsummierung zurückgeführt. Der nächste Taktimpuls veranlaßt den Binärzähler 55 und den Wähler 66 zur Anzeige auf der Leitung 68, daß das letzte Bit des Koeffizienten nun erreicht wurde. Dieses wird als ein Eingang dem UND-Glied 90 zugeführt, da jedoch das letzte Bit des Koeffizienten Null ist, wird kein Signal auf der Leitung 91 erzeugt, da der Koeffizient eine positive Zahl repräsentierte. Für die Bit-2-Stelle wird kein Übertragseingangssignal 19 erzeugt und die Wähler 81 wählen noch die UND-Ausgänge 82 der Tore 30 aus. Das durch die Tore 30 gebildete vierte Teilprodukt ist erneut 00000000, da das letzte Bit des Koeffizienten Null war. Das Zeitdiagramm für diesen 4-Bit-Koeffizienten ist in Fig. 4 dargestellt. Am Ende des Bits 4 speichern die Zwischenspeicher 43 und 44 die Summen- und Übertragsausgangssignale und das NOR-Glied 61 ändert am Beginn des nächsten Taktimpulses das Signal auf der Leitung 80, so daß die Wähler 32 und 34 die Zuführung des Ausgangssignals der ersten Stufe nach vorne zu geeigneten Bitstellen der nächsten Stufe anstelle eines Rezirkulierens desselben für die weitere Verarbeitung in der ersten Stufe veranlassen. Zu diesem Zeitpunkt repräsentieren die zwischengespeicherten Ausgangssignale in der ersten Stufe den aufsummierten Gesamtwert 00010100, der die positive Dezimalzahl 20 repräsentiert.
  • Im Falle eines negativen Koeffizienten, wie er beispielsweise beim Multiplizieren der positiven dezimalen Eingangsdaten 5 mit dem negativen dezimalen Koeffizienten 4 auftreten würde, würden die Eingangsdaten in binärer Form durch 00000101 wie zuvor repräsentiert werden, jedoch würde der Koeffizient dieses Mal in binärer Form durch 1100 repräsentiert werden. Die Operationszyklen für jeden Taktimpuls werden, wie zuvor beschreiben, wiederholt, wobei das erste Teilprodukt zu 00000000 generiert wird. Hierzu wird das zweite Teilprodukt addiert, das 00000000 ist. Zu dem akkumulierten Gesamtwert wird das dritte Teilprodukt 00010100 hinzuaddiert. Wenn man jedoch bei dem letzten Bit des Koeffizienten in dem Schieberegister 41 ankommt, ist dieses durch die Zahl 1 repräsentiert, die einen negativen Koeffizienten anzeigt. Um dies zu verarbeiten, ist es, wie zuvor beschrieben, notwendig, das Bitmuster zu invertieren und 1 zu dem Bit geringster Wertigkeit hinzuzuaddieren. Das Signal auf der Leitung 69, das erzeugt wird, wenn das letzte Bit des Koeffizienten erreicht wird, bildet ein Eingangssignal für das UND-Glied 90, das nun weiterhin eine 1 von dem letzten Bit des Koeffizienten in dem Register 41 empfängt. Dies führt zur Erzeugung eines Signals auf der Leitung 91, das ein Übertragseingangssignal 19 für den geringstwertigen Addierer 11 bildet. Die Wähler 81 empfangen ebenfalls das Signal auf der Leitung 91 unter Veranlassung der Auswahl der NAND-Ausgänge auf den Leitungen 83, wodurch die Bits invertiert werden, die auf bzw. über jeden der Eingänge 17 zu den Addierern dieser Stufe geleitet werden. Demzufolge ist das vierte zu dem akkumulierten Gesamtwert in den Addierern 11 hinzuaddierte Teilprodukt nun durch 11010111 repräsentiert. Dies ergibt einen akkumulierten Gesamtwert mit der Einführung von "1" auf der Leitung 91, der durch die binäre Zahl 11101100 repräsentiert ist. Dies repräsentiert die negative Dezimalzahl minus 20.
  • Es ist anzumerken, daß bei den vorstehenden Beispielen die einfache Multiplikation von +5 · +4 keinerlei Übertragssignale beinhaltete. Jedoch beinhaltete die Multiplikation von +5 und -4 Übertragssignale bei der Addition des vierten Teilprodukts sowie bei dem abschließenden Einführungssignal bzw. Übertrageinbringungssignal auf der Leitung 91. Diese Übertragssignale sind mit dem nächsten Addierer höherer Wertigkeit über Wähler 34 innerhalb derselben Stufe der Addiervorrichtung verbunden. Da die Ausgangssignale der Addierer 11 zwischengespeichert werden, müssen sie nicht ausreichend schnell arbeiten, um irgendwelche Übertragssignale bei allen Bitpositionen einer einzelnen Stufe aufzulösen, bevor das Wählsignal auf der Leitung 80 die Wähler 32 und 34 zur Umleitung der Summen- und Übertragssignale vorwärts zu der nächsten Stufe der Addiervorrichtung veranlaßt. Dies ermöglicht den Addierern den Betrieb mit einer durch das in den Fig. 4 und 5 dargestellte Wählersignal 80 gesteuerten hohen Geschwindigkeit. Jeder die Erzeugung und Aufsummierung eines Teilprodukts enthaltende Operationszyklus wird durch einen Taktimpuls des Signals 29, jedoch unter der Steuerung des Wählersignals auf der Leitung 80 gesteuert, wobei der Produkterzeugungsvorgang jeder Stufe nach der Aufsummierung des letzten Teilprodukts beendet wird, so daß eine Kombination aus Summen- und Übertragssignalen an den Eingang der nächsten Stufe angelegt wird, so daß jede Stufe eine neue Produkterzeugung beginnen kann, selbst wenn das von der vorhergehenden Produkterzeugung durch jene Stufe stammende Übertragssignal noch nicht vollständig aufgelöst wurde. Es versteht sich auch, daß die von einer Stufe zur nächsten nach vorne übertragenen Summen- und Übertragssignale eine anfängliche Eingabe in alle Stufen nach der ersten Stufe bilden, so daß während des ersten, durch den ersten Taktimpuls eines neuen Produktbildungsvorgangs gesteuerten Operationszyklus die nach vorne übertragenen Summen- und Übertragssignale mit irgendeinem ersten, durch eine nachfolgende Stufe gebildeten Teilprodukt zusammengefaßt werden können. Dies vermeidet einen unnötigen Zeitverlust, da das erste Teilprodukt andernfalls zu einem Satz von Nullsignalen hinzuaddiert wird.
  • Bei dem vorstehenden Beispiel wird das Ausgangssignal des die Eingangsdaten speichernden Schieberegisters 16 über jeweilige Bitleitungen gleichzeitig an entsprechende Bitstellen jeder der Stufen angelegt, so daß die Eingangsdaten parallel an alle Stufen angelegt werden. Das Register 16 positioniert seinen Inhalt bei jedem Taktimpuls um, wobei sich der Inhalt progressiv zu Stellen mit höherer Wertigkeit bewegt, während die leergeräumten Stellen mit Nullen gefüllt werden. Nach der letzten Stufe von Addierern wird der Summenausgang 27 jedes Addierers 13 mit dem entsprechenden Biteingang des Addierers 45 verbunden, während der Übertragsausgang 28 jedes Addierers mit einem Übertragseingang nächsthöherer Wertigkeit im Addierer 45 verbunden wird. Die Eingangsbitposition niedrigster Wertigkeit für den Addierer 45 hat stets ein Null-Übertragseinbringungssignal. Der Addierer 45 wird durch ein Eingangssignal auf der Leitung 93 gesteuert, die zur Aufnahme des Wählersignals 89 von der Steuereinheit 25 ausgelegt ist, um die an den Eingängen des Addierers 45 empfangenen Eingangsdaten zwischenzuspeichern, wenn das in den Fig. 4 und 5 dargestellte Wählersignal 80 auf 1 wechselt, was anzeigt, daß eine neue Abfolge von Verknüpfungen für eine neue Produkterzeugung bevorsteht.
  • Sobald die Eingangssignale des Addierers 45 zwischengespeichert sind, kann dieser Hochgeschwindigkeitsaddierer die Übertragssignale durchgehend für alle 36-Bit-Positionen auflösen, so daß das Ausgangssignal eine vollständig aufgelöste Summe repräsentiert. Während dies auftritt, können die Stufen 1 bis N mit der Berechnung und Aufsummierung weiterer Produkte befaßt sein. Um Verzögerungen bei der Ausgabe zu vermeiden, ist es notwendig, daß der Hochgeschwindigkeitsaddierer 45 irgendwelche zuvor noch nicht aufgelösten Übertragssignale innerhalb der Anzahl von Taktimpulsen auflöst, die für die vorhergehenden Stufen zur Erzeugung weiterer aufsummierter Produktausgangssignale erforderlich ist. Es ist jedoch möglich, sich auf lediglich den einen Hochgeschwindigkeitsaddierer 45 zu verlassen, während die bei dem vorhergehenden Stufen eingesetzten Addierer den Übertrag nicht ausbreiten bzw. verarbeiten müssen und daher relativ langsam sein können.
  • Bei dem in Fig. 1 gezeigten Beispiel werden dieselben Eingangsdaten von einem Register 16 gleichzeitig an jede Stufe der Addiervorrichtung angelegt. Bei einer abgeänderten Ausgestaltung ist es jedoch möglich, separate Eingangsdaten für jede der Stufen bereitzustellen. Eine solche Anordnung ist schematisch in Fig. 2 gezeigt, bei der jede Stufe ihr eigenes 36-Bit-Register 16a, 16b, 16c usw. besitzt, die jeweils zum separaten Empfangen von Eingangsdaten auf 16 parallelen Bitleitungen 15a, 15b, 15c ausgelegt sind. Weitere Teile haben dieselben Bezugszeichen, wie sie in Fig. 1 verwendet wurden.
  • Die Arbeitsweise hierbei ist im wesentlichen diejenige, wie zuvor beschrieben, obwohl in diesem Fall das erste Digitalsignal, das Eingangsdaten für jede der Stufen bildet, von seinem eigenen Schieberegister anstatt von einem gemeinsamen Schieberegister abgeleitet wird. Jedes Schieberegister 16a, 16b und 16c ist über seinen eigenen parallelen Datenpfad 94, 95, 96 mit den entsprechenden Toren 30 verbunden.
  • Bei dem unter Bezugnahme auf die Fig. 1 und 3 beschriebenen Beispiel wird ein kleinerer, einem Taktimpuls entsprechenden Zyklus für jede Teilproduktbildung herangezogen und die Anzahl von Teilprodukten hängt von der Anzahl von Bits in dem Koeffizienten ab. Jedes Koeffizientenbit wird eines zu einem Zeitpunkt gehandhabt, so daß ein zur Erzeugung eines Produkts notwendiger größerer Zyklus gleich groß ist wie die Dauer des kleineren Zyklus, multipliziert mit der Anzahl von Bits in jedem Koeffizienten. Die für jede Produktbildung eingesetzten Eingangsdaten werden für alle Stufen nach jedem größeren Zyklus aktualisiert. Eine verbesserte Arbeitsgeschwindigkeit kann durch eine in Fig. 6 dargestellte Abänderung erzielt werden, bei der jedes Teilprodukt durch gleichzeitige Berücksichtigung von drei Bits des Koeffizienten gebildet und der Bereich von berücksichtigten Bits jeweils um zwei Bit zu einem Zeitpunkt vorgerückt wird. Hierdurch ist die Anzahl von für jede Produkterzeugung notwendigen kleineren Zyklen gleich groß wie die halbe Anzahl der Bits in jedem Koeffizienten. Dies ermöglicht die Aktualisierung der Eingangsdaten zweimal so oft wie bei der Ausgestaltung gemäß Fig. 3. Um gleichzeitig zwei Koeffizientenbits einzusetzen, wird bei der modifizierten Ausgestaltung gemäß Fig. 6 eine Booth-Kodierung zweiter Ordnung eingesetzt. Gemäß der Booth-Kodierung kann ein erstes binärkodiertes digitales Signal mit einem zweiten binärkodierten digitalen Signal durch die Erzeugung einer Folge von Teilprodukten, die jeweils drei Bits des zweiten digitalen Signals benutzen, und durch Vorwärtsverschiebung des zweiten digitalen Signals um zwei Bit für jede Teilproduktbildung multipliziert werden. Die drei Bits des zweiten digitalen Signals werden dekodiert, um einen Oktalwert zwischen 0 und 7 zu ergeben und das von dem ersten digitalen Signal abgeleitete Teilprodukt wird abhängig von dem erhaltenen Oktalwert in Übereinstimmung mit der nachstehenden Tabelle bestätigt: Bits des zweiten Digitalsignal (Koeffizient) Oktal-Wert vom ersten Digitalsignal (Eingangsdaten) für Teilprodukt genommene Werte Bit höchster Wertigkeit Bit niedrigst. Wertigkeit Alle Null Aktuelle Eingangsdatenwerte Aktuelle Eingangsdatenwerte Eingangsdatenwerte nach Verschiebung zu nächster Position höherer Wertigkeit Zweierkomplement von Eingangsdaten nach Verschiebung zur nächsten Position höherer Wertigkeit Zweierkomplement von Eingangsdaten Zweierkomplement von Eingangsdaten Alle Null
  • Die vorstehend genannte Tabelle hat die Wirkung, daß die Eingangsdaten mit Null multipliziert werden, wenn der Oktalwert 0 oder 7 ist. Falls der Oktalwert 1 oder 2 ist, werden die Eingangsdaten mit +1 multipliziert. Falls der Oktalwert 3 ist, werden die Eingangsdaten mit +2 multipliziert. Falls der Oktalwert 4 ist, werden die Eingangsdaten mit -2 multipliziert. Falls der Oktalwert 5 oder 6 ist, werden die Eingangsdaten mit -1 multipliziert. Die Eingangsdatenwerte, die zur Bildung von Teilprodukten nach Dekodierung der Koeffizientenbits eingesetzt werden, werden jeweiligen Bitstellenaddierern zugeführt, die in einer Aufeinanderfolge von Stufen angeordnet sind, wie zuvor unter Bezugnahme auf die Fig. 1 und 3 beschrieben wurde. Die modifizierte Steuereinheit 25, Koeffizienteneinheit 21, das Register 16 und ein Teil der Stufe 2 ist in Fig. 6 dargestellt. Teile, die gleichartig sind wie diejenigen in den Fig. 1 und 3, sind mit gleichen Bezugszeichen versehen. Auch wenn ein Teil der Stufe 2 dargestellt ist, versteht es sich, daß eine gleichartige Anordnung für jede Stufe eingesetzt wird, mit der Ausnahme, daß die erste Stufe keinerlei Summen oder Übertrag von der vorhergehenden Stufe empfängt und die letzte Stufe Summen- und Übertragssignale zu dem letzten Addierer 45 statt zu einer nachfolgenden Stufe überträgt. Die Ausgestaltung der Steuereinheit 25 ist im wesentlichen gleichartig wie die zuvor beschrieben, jedoch sind in diesem Fall nur halb so viele Taktimpulse notwendig, um eine Produkterzeugung abzuschließen. Demzufolge muß der Binärzähler 55 bei einem 16-Bit-Koeffizienten lediglich acht Taktimpulse zählen und der Zähler 55 besitzt lediglich vier Ausgangssignale, die Dezimalzählständen 1, 2, 4 oder 8 entsprechen. Alle vier Ausgangssignale werden dem NOR-Glied 61 zugeführt, das zur Bereitstellung des Wählersignals 18 eingesetzt wird, wie zuvor beschrieben wurde. Der Wähler 66 wird wiederum durch den Zwischenspeicher 67 gesteuert, in dem die Koeffizientenbitlänge gespeichert ist. Der der Zahl 1 entsprechende Ausgang des Binärzählers 55 wird direkt dem Nulleingang 66 zugeführt. Ausgänge 1 und 2 des Binärzählers 55 sind mit einem UND-Glied 95, das einen Eingang für die Eingangsnummer 1 des Wählers 66 bildet, verbunden. Ausgänge 1 und 4 des Binärzählers 55 sind mit einem UND-Glied 96 verbunden, das einen Eingang für die Eingangsnummer 2 des Wählers 66 bildet. Ausgänge 1, 2 und 4 des Binärzählers 55 bilden Eingänge für ein UND-Glied 97, das ein Eingangssignal für die Eingangsnummer 3 des Wählers 66 bildet. Der Wähler 66 ist mit einem Zwischenspeicher 70 und einem UND-Glied 72 verbunden, die generell in derselben Weise arbeiten, wie dies zuvor unter Bezugnahme auf Fig. 3 beschrieben wurde.
  • Die Koeffizienteneinheit 21 ist dahingehend modifiziert, daß das Schieberegister 41 und der Zwischenspeicher 50 eine zusätzliche Stelle an einer Position besitzen, deren Wertigkeit niedriger ist, als diejenige des Bits niedrigster Wertigkeit des Koeffizienten selbst. Dies wird dadurch erreicht, daß eine zusätzliche Stelle 98 an der Seite niedrigster Wertigkeit des Zwischenspeichers 50 vorgesehen und diese mit Masse verbunden wird, wie dies bei 99 angezeigt ist. In dieser Weise ist das Schieberegister 41 durch drei Leitungen 100 mit einem Dekoder 101 verbunden. Der Dekoder 101 empfängt gleichzeitig drei Bits vom Schieberegister 41, so daß es bei Berücksichtigung der beiden Bits geringster Wertigkeit des Koeffizienten auch eine Null bei der Position niedrigster Wertigkeit empfängt, die von der Stelle 98 abgeleitet wurde. Bei jedem Taktimpuls werden die Inhalte des Schieberegisters 41 um zwei Stellen in Richtung verringerter Wertigkeit bewegt, so daß der Dekoder 101 anfänglich die Bits geringster Wertigkeit empfängt und bei jedem Taktimpuls ein Eingangssignal erhält, das einer Verschiebung zu zwei Stellen höherer Wertigkeit entspricht. Anders ausgedrückt erhält der Dekoder 101 für das erste Teilprodukt Null bei der Position niedrigster Wertigkeit zusammen mit den beiden geringstwertigen Bits des Koeffizienten, die als Bits 1 und 2 betrachtet bzw. bezeichnet werden. Für das zweite Teilprodukt erhält der Dekoder 101 Bits 2, 3 und 4 des Koeffizienten. Für das dritte Teilprodukt empfängt er Bits 4, 5 und 6 des Koeffizienten usw. Der Dekoder 101 wandelt die drei Eingangssignale zur Bildung eines oktalen Ausgangssignals auf einer der Leitungen 0 bis 7 um. Ausgänge 0 und 7 sind mit einem NOR-Glied 102 verbunden. Ausgänge 1 und 2 haben keine Verbindung. Der Ausgang 3 ist mit einem ODER-Glied 103 verbunden. Der Ausgang 4 ist mit dem ODER-Glied 103 und auch mit einem weiteren ODER-Glied 104 verbunden. Der Ausgang 5 ist mit dem ODER-Glied 104 verbunden. Der Ausgang 6 ist ebenfalls mit dem ODER-Glied 104 verbunden und der Ausgang 7 ist mit dem NOR-Glied 102 verbunden. Das ODER-Glied 104 ist zur Schaffung eines Eingangssignals auf Leitungen 91 ausgelegt, wie zuvor unter Bezugnahme auf Fig. 3 erläutert wurde. Das Signal auf der Leitung 91 wird zur Bildung eines Übertragseingangs 19 für die erste Bitposition jedes Addierers eingesetzt und weiterhin zur Steuerung des Wählers 61 herangezogen, wie zuvor beschrieben wurde. Der Ausgang des NOR-Glieds 102 stellt ein Signal auf der Leitung 31 bereit, in gleicher Weise wie dies bei Fig. 3 beschrieben wurde, und dieses Signal bildet ein Eingangssignal für die UND-Glieder 30. Das ODER-Glied 103 wird zur Bereitstellung eines Signals auf der Leitung 105 zur Steuerung eines weiteren Wählers 106 eingesetzt, der das an den zweiten Eingang der UND-Glieder 30 angelegte Eingangssignal steuert. Jede Bitposition in der Stufe besitzt einen Wähler 106, der gleichartig ist wie der in Fig. 6 gezeigte Wähler und mit zwei benachbarten Bitstellen im Schieberegister 16 verbunden ist. Das Schieberegister 16 ist allgemein wie zuvor unter Bezugnahme auf Fig. 3 beschrieben, obwohl eine weitere, bei 108 mit Masse verbundene Stelle 107 unterhalb der Bitstelle niedrigster Wertigkeit im Register 16 vorgesehen ist. Auf diese Weise ist der Wähler 106 für die Bit-l-Position mit der Stelle 107 und dem Bit 1 (das das Bit niedrigster Wertigkeit ist) des Eingangsdatenregisters 16 verbunden. Der Wähler 106 für die Bit-2-Position wurde aus Gründen der Einfachheit nicht dargestellt, ist jedoch mit den Bitstellen 1 und 2 im Schieberegister 16 verbunden. In gleicher Weise wird der Wähler 106 für die Bit-3-Position mit Bitpositionen 2 und 3 im Schieberegister 16 verbunden.
  • Die Arbeitsweise der in Fig. 6 gezeigten Anordnung wird nun unter Bezugnahme auf die vorstehende Tabelle erläutert, die den Betrieb für unterschiedliche Oktalwerte zeigt. Falls die drei vom Schieberegister 41 zum Dekoder 101 zugeführten Bits Oktalwerten 0 oder 7 entsprechen, gibt das NOR-Glied 102 eine 0 auf der Leitung 31 ab, das eines der Eingangssignale für das UND-Glied 30 bildet. Zu diesem Zeitpunkt wird kein Ausgangssignal vom ODER-Glied 104 abgeleitet, so daß der Wähler 81 den UND-Ausgang 82 des Tors 30 wählt, so daß allen Addierern dieser Stufe unabhängig vom Inhalt des Schieberegisters 16 eine 0 zugeführt wird. Falls der von dem Dekoder 101 erhaltene Oktalwert entweder 1 oder 2 ist, wird kein Ausgangssignal an irgendeines der Glieder 102, 103 oder 104 angelegt, so daß das NOR-Glied 102 eine 1 auf der Leitung 31 erzeugt, so daß das Tor 30 nun ein UND-Ausgangssignal 82 erzeugt, durch das jedem der Addierer in der Stufe die tatsächlichen Bitwerte der in dem Schieberegister 16 gespeicherten Eingangsdaten zugeführt werden. Falls die oktale Ausgangsgröße des Dekoders 101 den Wert 3 besitzt, wird ein Signal dem ODER-Glied 103 zugeführt, das über die Leitung 105 an jeden der Wähler 106 angelegt wird, wodurch diese den UND-Gliedern 30 den Inhalt des Schieberegisters 16 derart zuführt, als wäre dieser zu einer Position höherer Wertigkeit verschoben worden. Ein Ausgang 4 des Dekoders 103 besitzt einen im wesentlichen gleichartigen Effekt wie der zuvor für den Ausgang bzw. die Ausgangsgröße 3 beschriebene, mit der Ausnahme, daß ein Signal auch dem ODER-Glied 104 zugeführt wird. Dies hat die Wirkung, daß die Zweierkomplemente der Eingangsdaten dadurch gebildet werden, daß Signale auf der Leitung 91 bereitgestellt werden, die die Wähler 81 zur Invertierung der Eingangsdaten durch Auswahl der NAND-Ausgänge 83 jedes Tors 30 und Zuführen eines Übertragseinspeisungssignals in den Eingang 19 des geringste Wertigkeit besitzenden Addierers in der Stufe steuern. Eine oktale Ausgangsgröße 5 des Dekoders 101 besitzt einen gleichartigen Effekt wie der gerade für eine Ausgangsgröße 4 beschriebene, mit der Ausnahme, daß in diesem Fall kein Signal dem ODER-Glied 103 zugeführt wird, so daß die Wähler 106 die normalen Bitpositionen im Register 16 wählen, ohne irgendeine Verschiebung zu einer Position höherer Wertigkeit hervorzurufen. Eine Ausgangsgröße 6 des Dekoders 101 besitzt exakt dieselbe Wirkung wie die gerade beschriebene Ausgangsgröße 5.
  • Es ist somit ersichtlich, daß bei Einsatz der Anordnung gemäß Fig. 6, bei der eine Booth-Kodierung eingesetzt wird, die Bits jedes Koeffizienten jeweils zu dritt zu einem Zeitpunkt zur Bildung jedes Teilprodukts genommen werden, so daß halb so viele kleinere Zyklen oder Taktimpulse für jede Produkterzeugung benötigt werden und lediglich halb so viele Teilprodukte bei jeder Produkterzeugung involviert sind. Die in dem Schieberegister 16 benutzten Eingangsdaten können daher doppelt so oft wie bei der in Fig. 3 gezeigten Anordnung aktualisiert werden.
  • Bei beiden Beispielen gemäß den Fig. 1 und 2 ist jede Stufe der Addiervorrichtung sequentiell mit der nächsten Stufe verbunden, so daß alle gebildeten Produkte sequentiell durch jede Stufe der Addiervorrichtung geleitet werden, bevor sie bei dem letzten Addierer 45 ankommen. Die Anordnung kann aber auch so getroffen sein, daß die Zwischenverbindung zwischen dem Ausgang einer Stufe und dem Eingang nachfolgender Stufen selektiv so programmiert werden kann, daß der Ausgang irgendeiner Stufe zur Bildung des Eingangs einer oder weiterer ausgewählter nachfolgender Stufen verbindbar ist. Auf diese Weise kann das durch irgendeine Stufe gebildete Produkt mit dem Produkt einer programmierbaren Auswahl anderer Stufen zusammengefaßt werden. Es versteht sich weiterhin, daß bei dem Beispiel gemäß Fig. 1 die Eingangsdaten im gemeinsamen Eingangsregister 16 zu regelmäßigen Zeitintervallen aktualisiert werden, die dem Zeitintervall entsprechen, das zur Produkterzeugung durch jede der Stufen benötigt wird. Auf diese Weise berücksichtigt die durch nachfolgende Stufen durchgeführte Aufsummierung Veränderungen in den Eingangsdaten zu regelmäßigen, gleichen Zeitintervallen. Es ist jedoch möglich, eine ausgewählte Zwischenverbindung zwischen den Stufen bereitzustellen, so daß das Ausgangssignal einer Stufe mit dem Ausgangssignal einer weiteren Stufe, das nicht notwendigerweise um das Standardzeitintervall gegenüber den für die vorhergehende Stufe verwendeten Eingangsdaten versetzt ist, zusammengefaßt wird. Es kann erwünscht sein, Zeitintervalle vorzusehen, die mehrfache oder sogar Varianten des Zeitintervalls besitzen, das für eine beliebige Stufe zur Erzeugung eines Produkts notwendig ist.
  • Ein Beispiel einer modifizierten Anordnung, bei der das Ausgangssignal jeder Stufe nicht sukzessiv zu der unmittelbar benachbarten Stufe durchgeleitet wird, ist in Fig. 7 dargestellt. Diese zeigt eine Zweikanaleinrichtung, bei der Stufen 1, 3 und aufeinanderfolgende ungeradzahlige Stufen einen Kanal bilden. Stufen 2, 4 und nachfolgende geradzahlige Stufen bilden einen zweiten Kanal. Für die Teile, die den in Fig. 1 gezeigten entsprechen, wurden gleichartige Bezugszeichen verwendet. Aus Einfachheitsgründen sind die Addierer und zugeordneten Wähler 32 und 34 als einzelne Einheiten 110 gezeigt. Bei dieser Ausgestaltung sind die Summenleitungen 33 aufgeteilt, so daß Abschnitte 33a, 33c und 33e Stufen 1, 3, 5 usw., die einen ersten Kanal bilden, miteinander verbinden. Abschnitte 33b, 33d und 33f der Summenleitung verbinden Stufen 2, 4, 6 usw., die einen zweiten Kanal bilden, miteinander. In gleicher Weise sind die Übertragsleitungen aufgeteilt, so daß Abschnitte 35a und 35c Stufen 1, 3, 5 usw., die den ersten Kanal bilden, miteinander verbinden. Abschnitte 35b und 35d der Übertragsleitung verbinden die den zweiten Kanal bildenden Stufen 2, 4 usw. miteinander. Auf diese Weise können zwei separate Berechnungen durch die Vorrichtung durchgeführt werden, und zwar eine Berechnung in Kanal 1 und eine zweite Berechnung in Kanal 2. Die abschließende Stufe jedes Kanals ist mit einem Übertrags-Ausbreitungsaddierer verbunden, der gleichartig ist wie der Addierer 45 gemäß Fig. 1, und ein Wähler oder Multiplexer ist zwischen die letzte Stufe jedes Kanals und den Übertragsausbreitungsaddierers geschaltet, so daß der Übertragsausbreitungsaddierer alternativ die Ergebnisse jedes der beiden Kanäle abgibt. Bei den in Fig. 7 gezeigten Beispielen werden alle Stufen beider Kanäle mit denselben Eingangsdaten vom Schieberegister 16 gespeist. Es versteht sich jedoch, daß unterschiedliche Eingangsregister 16 für jeden der Kanäle benutzt werden können, so daß jeder Kanal seine eigenen jeweiligen Eingangsdaten hat. Es ist ebenfalls möglich, separate Schieberegister 16 für jede Stufe jedes Kanals vorzusehen, so daß unterschiedliche Stufen Eingangsdaten benutzen, die von unterschiedlichen Registern gewonnen werden.
  • Die vorstehenden Beispiel sind insbesondere bei einer digitalen Signalverarbeitung einsetzbar, bei der eine hohe Abtastrate der Eingangsdaten gefordert ist. Es versteht sich, daß die verwendeten Eingangsdaten aktualisiert werden, nachdem jedes Produkt durch eine einzelne Stufe gebildet ist. Die Produkte, die daher durch irgendeine Stufe aufsummiert werden, wurden unter Einsatz von aktualisierten Eingangsdaten für die beiden Produkte berechnet, wobei das bei der Aktualisierung benutzte Zeitintervall dasjenige ist, das für die Erzeugung irgendeines Produkts notwendig ist. Diese Arbeitsgeschwindigkeit kann erhöht werden, indem die Booth-Kodieranordnung gemäß Fig. 6 eingesetzt wird. Sie kann auch durch Ändern der Bitlänge der eingesetzten Koeffizienten variiert werden. Bei den vorstehenden Beispielen kann die Koeffizientenbitlänge in Abhängigkeit von der Anwendung des Geräts gewählt werden. Bei manchen Zwecken kann es bevorzugt sein, alle 16 Bits jedes Koeffizienten einzusetzen, jedoch mag es in anderen Fällen bevorzugt sein, weniger Bits in den Koeffizienten zu benutzen, um die Arbeitsgeschwindigkeit zu erhöhen. Die Arbeitsgeschwindigkeit kann daher in einfacher Weise durch Ändern der Koeffizientenbitlänge und des Werts geändert werden, der in dem in der Steuereinheit 25 gezeigten Zwischenspeicher 67 gespeichert ist.
  • Die vorstehenden Beispiele haben zahlreiche praktische Anwendungen. Sie können für Hochgeschwindigkeits-Digitalfilter eingesetzt werden. Die Abtastfrequenz des Eingangssignals kann beispielsweise bis zu 10 MHz betragen. Die Programmierbarkeit der Filterkoeffizienten ermöglicht eine einfache Realisierung einer adaptiven Verarbeitung. Bei Filtern, bei denen die Koeffizienten nicht zeitlich variieren müssen, kann ein ROM zur Speicherung der Koeffizienten eingesetzt werden. Für zeitveränderliche Funktionen wie etwa adaptive Filter kann ein Prozessor zur Bestimmung und Speicherung der geeigneten Koeffizienten eingesetzt werden. Die Vorrichtung (das Gerät) kann für Faltung und Korrelation eingesetzt werden. Diese Funktionen finden bei angepaßter Filterung, Störungsverringerung und Impulskomprimierung bei Kommunikations-, Radar- und Solarsystemen Anwendung. Die Vorrichtung kann für Matrixmultiplikation eingesetzt werden. Die Programmierbarkeit der vorstehend beschriebenen Vorrichtung ermöglicht den Einsatz der Einrichtung bei Verwendung als digitales Transversalfilter zur flexiblen Wellenformgenerierung und Synthese durch zufällige, rasche und einfache Veränderung der Koeffizienten. Sie können für Synthesizer einschließlich Musik-Synthesizern eingesetzt werden, da der Chip genaue Signale mit hoher Bandbreite erzeugen kann. Die Vorrichtung kann für diskrete Fouriertransformationen eingesetzt werden. Die Vorrichtung findet auch Anwendungen bei der Kommunikation bei adaptiven Equalizern und Echo-Auslöschungseinrichtungen zusammen mit der Impulserzeugung und Formung, Filterung und Kommunikation mit verteiltem Spektrum. Anwendungen bei Radar-, Sonar- und Ultraschallabbildung einschließlich Erfassung und Impulskomprimierung, Strahlbildung und Strahlsteuerung sowie Dopplerverarbeitung und Radar mit synthetischer Apertur. Die Vorrichtung kann bei der Sprachverarbeitung für die Sprachsynthese und die Berechnung von Korrelations- und Covarianten-Matrizen sowie bei der Tonhöhenerfassung unter Einsatz von Korrelationsverfahren eingesetzt werden. Die Vorrichtung kann auch bei verschiedenen Anwendungen bei Matrixmultiplikation mit Festpunkt bzw. Gleitkomma, und bei Musteranpassung und -erkennung eingesetzt werden.

Claims (14)

1. Mehrstufen-Digitalsignal-Multiplizier- und -Addiereinrichtung zum Bewirken einer wiederholten Addition für die Erzielung einer Multiplikation und einer Aufsummierung einer Mehrzahl von Multiplikationsergebnissen, wobei die Einrichtung eine Mehrzahl von Additionsstufen (Stufe 1-N) aufweist, von denen jede Stufe eine Mehrzahl von Addierschaltungen (11, 12, 13, 30, 32, 34) an aufeinanderfolgenden Bitpositionen besitzt, die jeweils einem Bit unterschiedlicher Wertigkeit in einem Produkt entsprechen, das durch Multiplikation eines ersten Digitalsignals (23) für jene Stufe mit einem zweiten Digitalsignal (20, 21, 22) für jene Stufe zu bilden ist, wobei die Addierschaltungen (11, 12, 13, 30, 32, 34) jeder Stufe eine Einrichtung (30, 11, 12, 13) zum Bilden von Teilprodukten durch aufeinanderfolgende Verknüpfungen unter Heranziehung des ersten Digitalsignals (23) und eines ausgewählten Bit oder ausgewählter Bits des zweiten Digitalsignals (20, 21, 22) sowie eine Einrichtung (32, 34, 11, 12, 13) zum Addieren aufeinanderfolgender Teilprodukte, die unter Einsatz von Bits des zweiten Digitalsignals gewonnen wurden, um hierdurch das Produkt nach Aufsummierung eines letzten Teilprodukts zu bilden, aufweist, wobei jede Addierschaltung eine Ausgabeeinrichtung zum Bereitstellen eines ersten, eine Summe für jene Bitposition anzeigenden Ausgangssignals (27) und eines zweiten, ein beliebiges von jener Bitposition zu einer Bitposition größerer Wertigkeit zu übertragendes Übertragsignal anzeigenden zweiten Ausgangssignals (28) nach jeder Teilproduktaufsummierung besitzt, gekennzeichnet durch eine Wähleinrichtung (25), die selektiv in einem ersten Zustand, bei dem Signale von dem ersten (27) und dem zweiten (28) Ausgangssignal bzw. Ausgang der Addierschaltung (11, 30, 32, 34) innerhalb einer Stufe (Stufe 1) zu einer jeweiligen Addierschaltung (11, 30, 32, 34) innerhalb der Stufe für den Einsatz bei der Aufsummierung mit weiteren, während der Multiplikation erhaltenen Teilprodukten zugeführt werden, oder in einem zweiten Zustand betreibbar ist, bei dem Signale aus dem ersten (27) und dem zweiten (28) Ausgangssignal bzw. Ausgang der Addierschaltung (11, 30, 32, 34) innerhalb einer Stufe (Stufe 1) nach der Aufsummierung des letzten Teilprodukts an eine weitere Addiervorrichtung (12, 13) zur Erzielung einer Addition der Produkte von mehr als einer Stufe anlegbar sind, wobei die Wähleinrichtung (25) derart betreibbar ist, daß jede beliebige Additionsstufe (Stufen 1-N) in den zweiten Zustand wechselt, ohne Übertragsignale (28) in der besagten einen Additionsstufe bei allen Bitpositionen innerhalb der besagten einen Additionsstufe aufzulösen.
2. Verfahren zur Verarbeitung von Digitalsignalen mittels Bildung einer Mehrzahl von Produkten aus Digitalsignalen und Aufsummierung einer Mehrzahl der Produkte, wobei das Verfahren das Anlegen von Mehrbit-Eingangs-Digitalsignalen (23) an eine Mehrzahl von Mehrbit-Additionsstufen (Stufe 1-N) eines Mehrstufenaddierers, das Anlegen eines zweiten Mehrbit-Digitalsignals (20, 21, 22) an jede Stufe für den Einsatz bei der Erzeugung eines Produkts mit dem Eingangs-Digitalsignal (23) dieser Stufe, das Erzeugen eines Multiplikationsprodukts in jeder Stufe durch eine Abfolge von Vorgängen, bei denen jeweils ein Mehrbit-Teilprodukt erzeugt und das Teilprodukt mit der Summe jeglicher vorhergehender Teilprodukte dieser Stufe aufsummiert wird, umfaßt, wobei die Aufsummierung der Teilprodukte innerhalb einer Stufe das Addieren von Bits entsprechender Wertigkeit und das Bilden von Übertragsignalen (28) zum Übertragen von Bits zu Positionen höherer Wertigkeit enthält, dadurch gekennzeichnet, daß nach Akkumulierung der Teilprodukte des Multiplikationsprodukts für eine Stufe (Stufe 1) ein Ausgangssignal von der betreffenden einen Stufe für den Einsatz bei der Addition mit einem Produkt einer weiteren Stufe (Stufe 2-N) bereitgestellt wird und das Ausgangssignal von einer Stufe an eine weitere Stufe vor vollständiger Auflösung jeweiliger Übertragsignale (28) innerhalb der betreffenden Stufe bei allen Bitpositionen der betreffenden Stufe angelegt wird.
3. Mehrstufen-Digitalsignal-Addiereinrichtung nach Anspruch 1, bei der die weitere Addiervorrichtung eine Addierschaltung (12, 13) einer weiteren Stufe (2-N) aufweist, wodurch dieselbe Addierschaltung (12, 13) in jeder Stufe für die Produkterzeugung durch jene Stufe und für die Akkumulierung der unterschiedlichen Stufenprodukte eingesetzt wird.
4. Mehrstufen-Digitalsignal-Addiereinrichtung nach Anspruch 1 oder Anspruch 3, bei der eine Einrichtung zum parallelen Anlegen eines gemeinsamen ersten Digitalsignals (23) an jede Stufe (Stufe 1-N) vorgesehen ist.
5. Mehrstufen-Digitalsignal-Addiereinrichtung nach Anspruch 1 oder Anspruch 3 oder 4, mit einer Wähleinrichtung (25) zum selektiven Verbinden des Ausgangs (27, 28) irgendeiner beliebigen Stufe (Stufe 1) mit einer aus einer Mehrzahl von weiteren Stufen (Stufe 2-N).
6. Mehrstufen-Digitalsignal-Einrichtung nach einem der Ansprüche 1 oder 3 bis 5, mit einer ersten Verbindungseinrichtung, die ausgewählte Additionsstufen (Stufe 1A, Stufe 2A) zur Bildung eines ersten Kanals miteinander verbindet, in dem eine Mehrzahl von Produkten gebildet und diese miteinander zur Bereitstellung eines ersten Kanalausgangssignals (33e, 35c) akkumuliert werden, und einer anderen Verbindungseinrichtung, die ausgewählte weitere Additionsstufen (Stufe 1B, Stufe 2B) zur Bildung eines zweiten Kanals miteinander verbindet, in dem eine Mehrzahl von anderen Produkten gebildet und miteinander zur Erzeugung eines zweiten Kanalausgangssignals (33f, 33d) aufsummiert werden.
7. Mehrstufen-Digitalsignal-Einrichtung nach einem der Ansprüche 1 oder 3 bis 6, mit einer Zeitgebereinrichtung (25) zum Erzeugen eines ersten Zeitsteuersignals (69) für die Steuerung jeder Teilproduktbildung und für die Erzeugung eines zweiten Zeitsteuersignals (80) zur Steuerung von Intervallen zwischen der Verbindung des Ausgangs (27, 28) einer Stufe (Stufe 1) mit dem Eingang einer weiteren Stufe (Stufe 2-N), und einer Einrichtung zum Aktualisieren des ersten Digitalsignals (23) für jede Stufe bei diesen Intervallen.
8. Mehrstufen-Digitalsignal-Einrichtung nach einem der Ansprüche 1 oder 3 bis 7 mit einer Einrichtung zum Erzeugen jedes Teilprodukts unter Einsatz von mehr als einem Bit (100) des zweiten Digitalsignals (20, 21, 22), wobei die Anzahl von Teilprodukten, die für jedes Stufen- (Stufe 1-N) -Produkt gebildet werden, kleiner ist als die Anzahl von Bits im zweiten Digitalsignal.
9. Mehrstufen-Digitalsignal-Addiereinrichtung nach Anspruch 1 oder einem der Ansprüche 3 bis 8, bei der die Stufen (Stufe 1-N) zwischen einer ersten Stufe (Stufe 1) und einer letzten Stufe (Stufe N) miteinander verbunden sind, wobei eine Einrichtung (45) zum Empfangen eines Ausgangssignals (27, 28) von der letzten Stufe (Stufe N) und zum Auflösen irgendwelcher Übertragsignale (28), die nicht zuvor aufgelöst wurden, vorgesehen ist.
10. Verfahren zum Verarbeiten von Digitalsignalen nach Anspruch 2, bei dem das Summen- (27) und Übertrag- (28) -Signale enthaltende Ausgangssignal jeder Stufe (Stufe 1) als ein Eingangssignal an eine weitere Stufe (Stufe 2-N) ohne vollständige Auflösung der Übertragsignale (28) innerhalb jeder Stufe vor dem Anlegen an eine nachfolgende Stufe in einer miteinander verknüpften Kette angelegt wird, wobei die Auflösung irgendwelcher nicht aufgelöster beziehungsweise nicht verrechneter Übertragsignale (28) nach Aufsummierung durch alle Stufen der Kette bewirkt wird.
11. Verfahren zum Verarbeiten von Digitalsignalen nach Anspruch 2 oder Anspruch 10, bei dem die eingegebenen Daten (20, 21, 22, 23) sich in zeitlicher Hinsicht verändern, jedes Stufenprodukt unter Heranziehung von Eingangsdatenwerten zum Beginn eines der Produktbildung durch jede Stufe (Stufe 1-N) zugeordneten Zeitintervalls gebildet wird, und beim Ende jedes der Zeitintervalle ein Ausgangssignal (27, 28) jeder Stufe zu einer nachfolgenden Stufe für die Aufsummierung bei dieser nachfolgenden Stufe weitergeleitet wird und die eingegebenen Daten (20, 21, 22, 23) für den Einsatz bei der nächsten Produktbildung durch jede Stufe aktualisiert werden.
12. Verfahren zum Verarbeiten von Digitalsignalen nach Anspruch 11, bei dem die Zeitintervalle zwischen der Aktualisierung von eingegebenen Daten (20, 21 ,22 ,23), die für eine Mehrzahl von auf zusummierenden Produkten eingesetzt werden, nicht für alle Produkte konstant sind.
13. Verfahren zum Verarbeiten von Digitalsignalen nach einem der Ansprüche 2 oder 10 bis 12, bei dem das der Produktbildung durch jede Stufe (Stufe 1-N) zugeordnete Zeitintervall dadurch verändert wird, daß die Bitlänge der eingesetzten zweiten Digitalsignale (20, 21, 22) verändert wird.
14. Verfahren zum Verarbeiten von Digitalsignalen nach einem der Ansprüche 2 oder Ansprüche 10 bis 13, bei dem aktualisierte Werte für die zweiten Digitalsignale (20, 21, 22) von einer Schnittstelle bereitgestellt und asynchron mit der Übertragung eines Stufenausgangssignals (27, 28) zu einer weiteren gespeichert werden, wobei die Zuführung der aktualisierten Werte vom Speicher zu jeder Stufe (Stufe 1-N) mit der Übertragung eines Stufenausgangssignals (27, 28) zu einer weiteren synchronisiert ist.
DE3789171T 1986-05-22 1987-05-21 Mehrstufiges Multiplizier- und Addiergerät für Digitalsignale. Expired - Fee Related DE3789171T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB868612453A GB8612453D0 (en) 1986-05-22 1986-05-22 Multistage digital signal multiplication & addition

Publications (2)

Publication Number Publication Date
DE3789171D1 DE3789171D1 (de) 1994-04-07
DE3789171T2 true DE3789171T2 (de) 1994-07-07

Family

ID=10598261

Family Applications (2)

Application Number Title Priority Date Filing Date
DE3788010T Expired - Fee Related DE3788010T2 (de) 1986-05-22 1987-05-21 Mehrstufiges Multiplizier- und Addiergerät für Digitalsignale.
DE3789171T Expired - Fee Related DE3789171T2 (de) 1986-05-22 1987-05-21 Mehrstufiges Multiplizier- und Addiergerät für Digitalsignale.

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE3788010T Expired - Fee Related DE3788010T2 (de) 1986-05-22 1987-05-21 Mehrstufiges Multiplizier- und Addiergerät für Digitalsignale.

Country Status (5)

Country Link
US (1) US4920508A (de)
EP (2) EP0253475B1 (de)
JP (1) JP2605039B2 (de)
DE (2) DE3788010T2 (de)
GB (1) GB8612453D0 (de)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2626691B1 (fr) * 1988-02-02 1990-05-25 France Etat Multiplieur numerique generalise et filtre numerique mettant en oeuvre ce multiplieur
DE4001232C2 (de) * 1989-02-10 1996-05-30 Intel Corp Gleitkommaeinheit
FR2656710A1 (fr) * 1989-12-29 1991-07-05 Radiotechnique Compelec Microcontroleur pour l'execution rapide d'un grand nombre d'operations decomposable en sequence d'operations de meme nature.
KR0140674B1 (ko) * 1993-04-12 1998-06-15 모리시다 요이치 영상신호처리장치 및 처리방법
JP3527259B2 (ja) * 1993-04-12 2004-05-17 松下電器産業株式会社 映像信号処理装置及び処理方法
US6377970B1 (en) 1998-03-31 2002-04-23 Intel Corporation Method and apparatus for computing a sum of packed data elements using SIMD multiply circuitry
RU2131145C1 (ru) 1998-06-16 1999-05-27 Закрытое акционерное общество Научно-технический центр "Модуль" Нейропроцессор, устройство для вычисления функций насыщения, вычислительное устройство и сумматор
US7076315B1 (en) * 2000-03-24 2006-07-11 Audience, Inc. Efficient computation of log-frequency-scale digital filter cascade
FI20002853A (fi) * 2000-12-22 2002-06-23 Nokia Corp Keinotekoisen assosiatiivisen neuronin synapsi
US8345890B2 (en) 2006-01-05 2013-01-01 Audience, Inc. System and method for utilizing inter-microphone level differences for speech enhancement
US8744844B2 (en) 2007-07-06 2014-06-03 Audience, Inc. System and method for adaptive intelligent noise suppression
US9185487B2 (en) * 2006-01-30 2015-11-10 Audience, Inc. System and method for providing noise suppression utilizing null processing noise subtraction
US8204252B1 (en) 2006-10-10 2012-06-19 Audience, Inc. System and method for providing close microphone adaptive array processing
US8194880B2 (en) * 2006-01-30 2012-06-05 Audience, Inc. System and method for utilizing omni-directional microphones for speech enhancement
US8204253B1 (en) 2008-06-30 2012-06-19 Audience, Inc. Self calibration of audio device
US8949120B1 (en) 2006-05-25 2015-02-03 Audience, Inc. Adaptive noise cancelation
US8934641B2 (en) * 2006-05-25 2015-01-13 Audience, Inc. Systems and methods for reconstructing decomposed audio signals
US8150065B2 (en) * 2006-05-25 2012-04-03 Audience, Inc. System and method for processing an audio signal
US8849231B1 (en) 2007-08-08 2014-09-30 Audience, Inc. System and method for adaptive power control
US8259926B1 (en) 2007-02-23 2012-09-04 Audience, Inc. System and method for 2-channel and 3-channel acoustic echo cancellation
US8189766B1 (en) 2007-07-26 2012-05-29 Audience, Inc. System and method for blind subband acoustic echo cancellation postfiltering
US8143620B1 (en) 2007-12-21 2012-03-27 Audience, Inc. System and method for adaptive classification of audio sources
US8180064B1 (en) 2007-12-21 2012-05-15 Audience, Inc. System and method for providing voice equalization
US8194882B2 (en) 2008-02-29 2012-06-05 Audience, Inc. System and method for providing single microphone noise suppression fallback
US8355511B2 (en) 2008-03-18 2013-01-15 Audience, Inc. System and method for envelope-based acoustic echo cancellation
US8774423B1 (en) 2008-06-30 2014-07-08 Audience, Inc. System and method for controlling adaptivity of signal modification using a phantom coefficient
US8521530B1 (en) 2008-06-30 2013-08-27 Audience, Inc. System and method for enhancing a monaural audio signal
US9008329B1 (en) 2010-01-26 2015-04-14 Audience, Inc. Noise reduction using multi-feature cluster tracker
US9640194B1 (en) 2012-10-04 2017-05-02 Knowles Electronics, Llc Noise suppression for speech processing based on machine-learning mask estimation
US9536540B2 (en) 2013-07-19 2017-01-03 Knowles Electronics, Llc Speech signal separation and synthesis based on auditory scene analysis and speech modeling
CN106797512B (zh) 2014-08-28 2019-10-25 美商楼氏电子有限公司 多源噪声抑制的方法、***和非瞬时计算机可读存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3366780A (en) * 1965-11-29 1968-01-30 Ibm Shift multiplier
NL7712367A (nl) * 1977-11-10 1979-05-14 Philips Nv Digitaal optelrekenorgaan.
US4215416A (en) * 1978-03-22 1980-07-29 Trw Inc. Integrated multiplier-accumulator circuit with preloadable accumulator register
JPS5932216A (ja) * 1982-08-17 1984-02-21 Sony Corp ディジタル信号処理回路及びディジタルフィルタ
GB8326690D0 (en) * 1983-10-05 1983-11-09 Secr Defence Digital data processor
US4694416A (en) * 1985-02-25 1987-09-15 General Electric Company VLSI programmable digital signal processor
US4773034A (en) * 1985-05-09 1988-09-20 American Telephone And Telegraph Company Adaptive equalizer utilizing a plurality of multiplier-accumulator devices
FR2591003B1 (fr) * 1985-11-29 1988-01-15 Trt Telecom Radio Electr Dispositif de sommation de carres

Also Published As

Publication number Publication date
EP0253476B1 (de) 1994-03-02
EP0253476A3 (en) 1990-08-29
EP0253475A3 (en) 1990-08-29
JPS62286307A (ja) 1987-12-12
EP0253475B1 (de) 1993-11-03
US4920508A (en) 1990-04-24
DE3788010T2 (de) 1994-05-19
DE3789171D1 (de) 1994-04-07
DE3788010D1 (de) 1993-12-09
EP0253475A2 (de) 1988-01-20
JP2605039B2 (ja) 1997-04-30
GB8612453D0 (en) 1986-07-02
EP0253476A2 (de) 1988-01-20

Similar Documents

Publication Publication Date Title
DE3789171T2 (de) Mehrstufiges Multiplizier- und Addiergerät für Digitalsignale.
DE3485792T2 (de) Digitale signalverarbeitungseinrichtungen.
DE68927120T2 (de) Interpolator und Verfahren zur Interpolierung von digitalen Signalmustern
DE3044208C2 (de) Interpolator zur Erhöhung der Wortgeschwindigkeit eines digitalen Signals
DE69435034T2 (de) Verfahren ind vorrichtung zur durchfuehrung einer schnellen hadamard transform
DE2145404A1 (de) Nichtrekursive Digitalfiltereinrichtung mit Verzögerungs- und Addier-Anordnung
DE69031674T2 (de) Verfahren und Schaltungsanordnung zur zweidimensionalen diskreten Transformation
DE3917059A1 (de) Cordic-anordnung zum multiplizieren von komplexen zahlen
DE1549476B2 (de) Anordnung zur ausfuehrung von divisionen
DE68926154T2 (de) Pipelineprozessor zur Durchführung des LMS Algorithmus
DE2616660B2 (de) Arithmetische Einheit
DE2729912A1 (de) Digitale signalverarbeitungsanordnung
DE69424372T2 (de) Hocheffizientes Lernnetzwerk
DE3782538T2 (de) Mehrstufiges elektrisches signalverarbeitungsgeraet.
DE3788756T2 (de) Wort-Scheibesignalprozessor.
DE2450344A1 (de) Schaltungsanordnung zur digitalfrequenz-multiplikation
DE69230924T2 (de) Multiplizierer-Schaltungen mit seriellem Eingang
DE3878666T2 (de) Integrierte schaltung fuer digitale rechenvorgaenge zur faltung oder aehnlichen rechenverfahren.
DE3788779T2 (de) Digitales, nicht-rekursives Filter mit Multiplizierkoeffizienten der Basis zwei.
DE3621446A1 (de) Geraet zum digitalen verarbeiten von kontinuierlichen bitstroemen
DE2456245C2 (de) Schaltungsanordnung für ein digitales Filter
DE3884905T2 (de) Verzögerungskoeffizientrechner.
DE2605495B2 (de) Multiplikationsschaltung, insbesondere zum filtern von zeitmultiplexinformationen
DE2712582A1 (de) Digital-differential-analysator
EP0860051B1 (de) Schaltungsanordnung und verfahren zur mehrfachnutzung eines digitalen transversalfilters

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: SGS-THOMSON MICROELECTRONICS LTD., MARLOW, BUCKING

8339 Ceased/non-payment of the annual fee