DE1549560C3 - Digital arbeitende Rechenanordnung zur Bildung der Korrelations- bzw. Konvolutionsfilterfunktion - Google Patents

Digital arbeitende Rechenanordnung zur Bildung der Korrelations- bzw. Konvolutionsfilterfunktion

Info

Publication number
DE1549560C3
DE1549560C3 DE19671549560 DE1549560A DE1549560C3 DE 1549560 C3 DE1549560 C3 DE 1549560C3 DE 19671549560 DE19671549560 DE 19671549560 DE 1549560 A DE1549560 A DE 1549560A DE 1549560 C3 DE1549560 C3 DE 1549560C3
Authority
DE
Germany
Prior art keywords
accumulator
data word
data
units
unit
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
Application number
DE19671549560
Other languages
English (en)
Other versions
DE1549560A1 (de
DE1549560B2 (de
Inventor
Granville Emil Houston Tex. Ott (V.St.A.)
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.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
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 Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of DE1549560A1 publication Critical patent/DE1549560A1/de
Publication of DE1549560B2 publication Critical patent/DE1549560B2/de
Application granted granted Critical
Publication of DE1549560C3 publication Critical patent/DE1549560C3/de
Expired legal-status Critical Current

Links

Description

Die Erfindung bezieht sich auf eine digital arbeitende Rechenanordnung der im Gattungsbegriff des Anspruchs 1 angegebenen Art.
Bei einer bekannten Rechenanordnung deiser Art (GB-PS 10 01096) wird versucht, mit Hilfe einer Multiplikationsmatrix für Polaritätssignale und einer Multiplikationsmatrix für digitalisierte Amplitudensignale die zur Bildung der Korrelations- bzw. Konvolutionsfilterfunktion notwendige große Anzahl von Multiplikationen möglichst schnell auszuführen. Dabei wird jedoch jede Multiplikation einzeln und in ihrer Gesamtheit ausgeführt, so daß die Bildung der entsprechenden Filterfunktion eine beträchtliche Zeit in Anspruch nimmt.
Ferner ist bereits eine Korrelationsanordnung bekannt (US-PS 30 23 966), die Signale korrelieren kann, die hinsichtlich eines Bezugspunkts spiegelsymmetrisch sind. Andere Signale können mit Hilfe dieser Korrelationsanordnung nicht korreliert werden.
Der Erfindung liegt die Aufgabe zugrunde, die Rechengeschwindigkeit einer Anordnung zur Bildung der Korrelations- bzw. Konvolutionsfilterfunktion weit über das bisher mögliche Maß zu erhöhen, wobei gleichzeitig für eine erhöhte Fehlersicherheit gesorgt werden soll.
Diese Aufgabe wird mit Hilfe der im Kennzeichen des Anspruchs 1 angegebenen Merkmale gelöst.
Bei einem Betrieb der erfindungsgemäßen Rechenanordnung zur Bildung der Korrelationsfilterfunktion wird zu Beginn das Produkt F0 X0 gebildet. Dieses Teilergebnis wird in einen Datenumlauf gegeben, und gleichzeitig werden die Produkte F1 X1 und F0 X1 gebildet. Nun sind beim Datenumlauf bereits drei Teilergebnisse beteiligt, und es erfolgt die Bildung der Produkte F2 X2, F1X2 und F0X,. Diese Produktbildung wird so lange fortgesetzt, bis alle zur Bildung des Endergebnisses notwendigen Teilergebnisse vorhanden sind. Da die erzeugten Teilergebnisse ständig in der Anordnung umlaufen, können sie schnell jeweils zur Bildung der erforderlichen Produktsummen herangezogen werden.
Die im Anspruch 2 gekennzeichnete vorteilhafte Ausgestaltung der Erfindung gestattet eine besonders große Fehlersicherheit. Die angewendete Zuführung der Dreiergruppen von Informationseinheiten zu den Multipliziereinheiten ergibt eine große Redundanz, so daß Berechnungsfehler vermieden werden und die Möglichkeit geschaffen wird, aufgetretene. Fehler wieder zu korrigieren. ...
Ausführungsbeispiele der Erfindung werden nun an Hand der Zeichnung näher erläutert. Es zeigt
F i g. 1 zwei Wellenzüge, für die eine Konvolutionsoperation vorgenommen werden soll,
F i g. 2 eine repräsentative Konvolutionsfunktion der beiden Wellenzüge von F i g. 1,
F i g. 3 ein Blockschaltbild einer Rechenanordnung, bei der von der Erfindung Gebrauch gemacht wird,
F i g. 4 ein Blockschaltbild der Konvolutionsmultipliziereinheit nach der Erfindung,
F i g. 5 ein Logikschaltbild einer Multipliziereinheit und - . . ■
F i g. 6 ein Blockschaltbild zur Veranschaulichung der Taktsteuerung der Konvolutionsmultipliziereinheit von F i g. 4. . . ·
Zur Erläuterung der Ausführungsbeispiele sei zunächst auf die F i g. 1 und 2 Bezug genommen. Es sei angenommen, daß die Korrelationsfunktion zwischen den beiden zeitveränderlichen Wellenzügen 10 und 11 der F i g. 1 physikalisch dargestellt werden soll. Die Korrelationsfunktion entspricht dem Ausdruck:
bereits die Vielzahl der Rechenoperationen, die notwendig sind, um einen Punkt der Funktion
h
Ym = s, Fn Xn
Ym
, Fn X
n +
Die Korrelationsfunktion läßt sich somit durch eine Reihe von Schritten erhalten, von denen der erste beispielsweise darin bestehen kann, daß die Ordinate al des Wellenzuges 10 mit der Ordinate Al des Wellenzuges 11 multipliziert wird. Als nächster Schritt werden dann die Ordinaten al und bl miteinander multipliziert und als Produkt mit dem Produkt der ersten Multiplikation addiert. Mit dem nächsten Schritt werden die Ordinaten a3 und b3 multipliziert, und das dabei als Ergebnis erhaltene Produkt wird dann mit dem letzten Summenwert addiert. Diese Schritte werden dann für die den verschiedenen Zeitpunkten des Kurvenzuges entsprechenden Ordinaten über die ganze Länge der Wellenzüge 10 und 11 fortgesetzt. Jede resultierende Summe wird während des ganzen Prozesses beibehalten, indem die einzelnen Ordinaten miteinander multipliziert und dann das erhaltene'Produkt mit der vorher gewonnenen Summe addiert wird. Der endgültig erhaltene Summenwert entspricht dann einem Punkt 13 zum Zeitpunkt r = 0 der Korrelationsfunktion 12, wie sie in Fig. 2 über τ aufgetragen ist. Nach Abschluß dieser Rechenoperation werden die Wellenzüge 10 und 11 im Verhältnis zueinander um einen Wert τ verschoben, worauf sämtliche bereits vorgenommene Multiplikationen und Summationen — d. h. (al · bl) + (a3 ■ bl) usw. — wiederholt werden müssen ,um den Punkt 14 der Korrelationsfunktion 12 zu ermitteln. Dieser Vorgang wird dann wiederholt, bis die Wellenzüge 10, 11 in ihrer gesamten Länge in Schritten der Größe τ im Verhältnis zueinander verschoben worden sind, wobei jede Operationsserie jeweils einen Punkt der Korrelationsfunktion liefert.
Aus den vorstehenden Ausführungen ergibt sich zu errechnen. Mit Hilfe der hier beschriebenen Rechenanordnung können Rechenoperationen dieser Art vereinfacht werden.
In F i g. 3 ist eine für allgemeine Zwecke einsetzbare,
ίο digital arbeitende Rechenanordnung in Blockschaltbildform wiedergegeben, die einen ersten Eingabe-Ausgabe-Kanal 15 mit einer Eingabeeinheit 16 und. einer Ausgabeeinheit 17 aufweist. In gleicher Weise ist ein zweiter unabhängiger Eingabe-Ausgabe-Kanal 18 vorgesehen, der eine Eingabeeinheit 19 und eine Ausgabeeinheit 20 hat. Beide Kanäle 15 und 18 stehen mit einem Kernspeicher 21 in Verbindung, der außerdem noch mit einem Datenregister 22 sowie einer Konvolutionsmultipliziereinheit 23 in Verbindung steht.
ao Das Datenregister 22 steht im übrigen auch unmittelbar mit den Kanälen 15 und 18 sowie der Konvolutionsmultipliziereinheit 23 in Verbindung. An das Datenregister 22 ist ferner ein Ausgabe-Adressenwähler 24 angeschlossen, um Daten des Datenregisters 22 über den Kanal 25 zu den Rechenwerken 26 zu liefern. Die Ausgangskanäle 27 der Rechenwerke 26 führen zu einem Eingabe-Adressenwähler 28. Mit den Rechenwerken 26 ist über einen Kanal 29 a unmittelbar eine Kontrolleinheit 29 gekoppelt, die mit den Adressenwählern 24 und 28 über Kanäle 30 bzw. 31 in Verbindung steht. ·
Ein Unterbrechungsspeicher 32 ist über einen Kanal 33 mit einem Unterbrechungswähler 34 gekoppelt, der über einen Kanal 35 mit der Kontrolleinheit 29 in Verbindung steht. Das Datenregister 22 ist mit dem Unterbrechungswähler 34 über einen Kanal 36 gekoppelt. Ein Mikro-Taktgeber steht über einen Kanal 38 mit der Kontrolleinheit 29 und über einen Kanal 39 mit dem Datenregister 22 in Verbindung.
Die mit F i g. 3 veranschaulichte Rechenanordnung ist kurz beschrieben worden, um eine Übersicht über die Anordnung der in Verbindung mit der vorliegenden Erfindung besonders zu berücksichtigenden Rechnerkomponenten zu vermitteln. Die MultiDlikations- und Summationsvorgänge beziehen sich in dem System der F i g. 3 in erster Linie auf die Konvolutionsmultipliziereinheit 23.
Für die zeitlich aufeinanderfolgenden Ordinaten der Wellenzüge 10 und 11 repräsentative Eingabedaten werden in dem Kernspeicher 21 beispielsweise als 24-Bit-Wörter gespeichert. Ausgewählte, für die Auswertung der Funktionen wie der vorstehend erwähnten Konvolutions- und/oder Korrelationsfunktion erforderliche Daten sind dann von dem Kernspeicher 21 für das Datenregister 22 und die Konvolutionsmultipliziereinheit 23 zugänglich.
Die Konvolutionsmultipliziereinheit 23 bildet eine synchrone Einheit, d.h., Daten werden von einer Stelle, beispielsweise einem Register, Akkumulator od. dgl., zu einer anderen Stelle lediglich während des Auftretens eines Zeitgeberimpulses weitergeleitet. Es wird daher davon ausgegangen, daß die einzelnen Einheiten jeweils von den Taktimpulsen eines externen Taktimpulsgenerators gesteuert sind, jedoch sind die entsprechenden Schaltkreise und Leitungen im Hinblick auf eine bessere Übersichtlichkeit in den Schaltbildern nicht mit angegeben worden.
Nachdem diese Erläuterungen hinsichtlich der Zu-
sammenhänge der vorliegenden Erfindung vorausgeschickt worden sind, soll nun auf F i g. 4 Bezug genommen werden, die ein Blockschaltbild der vorliegenden Erfindung zeigt. Der Aufbau der F i g. 4 weist eine Speicherstufe aus einem 25-Bit-Akkumulator 40 auf, der von Speicherzellen eines Kernspeichers zu diesem übertragene Datenwörter aufnehmen kann. Die zu dem Akkumulator 40 hin zu übertragenden Datenwörter repräsentieren die zeitlich aufeinanderfolgenden Werte der Datenwortreihe X. Ferner ist eine weitere Speicherstufe aus dem Akkumulator 41 mit einem Aufnahmevermögen von 24 Bits vorgesehen, in den die 24 Bits der die Werte der Datenwortreihe F repräsentierenden Wörter überführt werden. . ,
Die ersten drei Speicherzellen des Akkumulators 40 sind über Signalleitungen entsprechend der Leitung 40a mit einer Multiplizierstufe 42 verbunden. Alle Bits von dem Akkumulator 41 gelangen über einen Kanal 41 a' zu der Multiplizierstufe 42 sowie zu einem zweiten Akkumulator 41a.
Ebenso wie dem Akkumulator 41 der Akkumulator 41a nachgeschaltet ist, schließt sich an den Akkumulator 41a ein weiterer Akkumulator 41 δ an, auf den in entsprechender Weise weitere Akkumulatoren 41c ... 41k, 41/ folgen, so daß diese Akkumulatoren tandemartig hintereinanderliegen und eine geschlossene Datenumlaufschleife bilden. Mit F i g. 4 sind zwar lediglich vier solcher Akkumulatoren gezeigt, jedoch sind an sich im vorliegenden Ausführungsbeispiel dreizehn solcher Akkumulatoren in der Datenschleife hintereinandergeschaltet. Über einen Ausgangskanal 56 a des Akkumulators 41 / können F-Werte zu dem Akkumulator 41 zurückgeführt werden.
Die in der Multiplizierstufe 42 miteinander multiplizierten digitalen Signale werden über eine Signalleitung 42a zu einer Addiereinheit 44 in eine zweite Datenumlaufschleife geleitet. Ein zweiter Eingangskanal führt zu der Addiereinheit 44, um 24 Bits aus den BitrStellen 24 bis 48 eines 48-Bit-Akkumulators 43 zu übertragen. Zwei Ausgangskanäle 44a und 446 können die Summen- und Übertragwerte zu den Bit-Stellen 22 bis 48 eines 48-Bit-Akkumulators 45 und zu einem Übertrag-Akkumulator 49 leiten.
Von dem 48-Bit-Akkumulator 43 führt ein Kanal 43 a zu dem 48-Bit-Akkumulator 45. Dieser Kanal 43 a leitet die Bit-Stellen, die nicht in die Addiereinheit 44 eingespeist worden sind, d. h. die Bit-Stellen 1 bis 23, zu denselben Stellen des 48-Bit-Akkumulators 45.
Der Ausgang des Akkumulators 45 ist in ähnlicher Weise wie der Ausgang des Akkumulators 43 an die Addiereinheit 44 und den Akkumulator 45 an eine Addiereinheit 100 und einen weiteren Akkumulator 101, mit einer Verschiebung von zwei Bits nach links, angeschlossen. Die 24 Bits der Stellen 22 bis 46 des 48-Bit-Akkumulators 45 werden über Kanäle 456 in die Addiereinheit 100 geleitet. Die übrigen Bit-Stellen 1 bis 21 und 47 bis 48 des Akkumulators 45 werden über Bit-Kanäle 45 c und 45 d zu denselben Bit-Stellen des 45-Bit-Akkumulators 101 geleitet. Jede folgende Addiereinheit ist um zwei Bit-Stellen nach links verschoben.
Die Bit-Stellen 21 bis 23 des Akkumulators 40 werden über einen Kanal 40 b in eine Multiplizierstufe 58 eingeleitet und dort mit dem 24-Bit-Wert der in dem Akkumulator 41 α enthaltenen Datenwortreihe F multipliziert. Der Ausgangswert der Multiplizierstufe 58 gelangt über einen Kanal 58b zu der Addiereinheit 100.
In die Addiereinheit 100 wird über einen Kanal 49 a außerdem der in dem Übertragakkumulator enthaltene Ubertragwert geleitet. Der Summen-Ausgangswert der Addiereinheit 100 wird zu den Bit-Stellen 20 bis 44 des 48-Bit-Akkumulators 101 geleitet, und der Übertragwert gelangt über einen Kanal 100 a zu einem Übertrag-Akkumulator 102.
Die 48-Bit-Akkumulatoren 43, 45, 101 ... 103 und die Addiereinheiten 44, 100, 104 ... 52 mit ihren zugeordneten Übertrag-Akkumulatoren 49, 102 ... 105 sind abwechselnd verbunden und tandemartig gekoppelt, so daß sie eine zweite geschlossene Datenumlaufschleife bilden. Die Stufen der ersten und der zweiten Datenumlaufschleife sind jeweils durch Teilmultiplizierstufen miteinander verbunden, deren einer Eingang von einem Akkumulator der ersten Schleife und deren zweiter Eingang von den drei Stellen des Akkumulators 40 gespeist wird.
An der letzten Stufe der KonvolutionsmuUipliziereinheit sind zwei Akkumulatoren 47 und 48 vorgesehen, die abwechselnd die gebildeten Korrelations-Teilprodukte aufnehmen. Ein Flip-Flop-Gatter 55 bestimmt, wann die beiden Akkumulatoren jeweils einen Wert aufnehmen. Der in der Addiereinheit 52 gebildete Summenwert wird über Kanäle 52 a in das erste Drittel des einen oder des anderen Akkumulators 47 bzw. 48 überführt, während der Übertragwert über Kanäle 52b in das letzte Drittel des einen oder des anderen Akkumulators 47 bzw. 48 gelangt. Die letzten in einem 48-Bit-Akkumulator 103 enthaltenen 24 Bits werden über Kanäle 53 a zu dem mittleren Drittel des einen oder des anderen Akkumulators 47 bzw. 48 geleitet.
Eine taktweise arbeitende Addiereinheit 50 ist an
ihren beiden Eingängen mittels Datenkanälen 47 a und 4Hb mit dem ersten bzw. letzten Drittel des Akkumulators 47 gekoppelt. In der Addiereinheit 50 wird der in dem Akkumulator 47 gespeicherte Ubertragwert zu dem Teilprodukt des ersten Drittels addiert. In gleicher Weise ist eine taktweise arbeitende Addiereinheit 54 über Eingangskanäle 48a und 480 an das erste bzw. letzte Drittel des Akkumulators 48 angeschlossen. Die taktweise arbeitenden Addiereinheiten 50 und 54 sind ebenfalls durch das Flip-Flop-Gatter 55 gesteuert, so daß sie die Übertragwerte abwechselnd zu dem in dem ersten Drittel des zugeordneten Akku- , mulators enthaltenen Teilprodukt addieren.
Die in den taktweise arbeitenden Übertragern 50 und 54 gebildeten Summen gelangen über Kanäle 50 a und 506 zu einem Wählergatter 106. Über Kanäle 50 c und 50 d werden die in dem mittleren Drittel des Akkumulators 47 bzw. 48 enthaltenen Werte ebenfalls zu dem Wählergatter 106 geleitet. Von dem Wählergatter 106 aus führen in der angegebenen Weise zur Rückführung von Wörtern dienende Kanäle zu den Stellend
und B des 48-Bit-Akkumulators 43. Über einen Ausgabekanal 51 gelangen die Korrelation zweier Funktionen repräsentierende Wörter nach Abschluß der erforderlichen Multiplikations- und Addierzyklen innerhalb des Systems zu dem Kernspeicher.
Die Wirkungsweise des mit F i g. 4 wiedergegebenen Aufbaues wird nachstehend an Hand des folgenden Beispiels erläutert. Es sollen eine erste Serie von zwölf 24-Bit-Wörter-Signalen, die die digitalisierte Datenwortreihe Fn repräsentieren, und eine zweite Serie von 24-Bit-Wörter-Signalen, die die digitalisierte Datenwortreihe Xn+m repräsentieren, korreliert werden, um Signale zu erhalten, die eine dritte digitalisierte Datenwortreihe Yn repräsentieren.
Die Konvolutionsmultipliziereinheit bildet gleichzeitig beim Durchlauf der Daten durch sie in jeder Stufe ein Teilprodukt, so daß bei Verwendung von zwölf Multipiizier-Addier-Stufen zwölf Ym-Werte (beispielsweise Y1, Y2 ... Y12) gleichzeitig verarbeitet werden können. Der Einfachheit halber soll in der nachstehenden Beschreibung der Ausdruck »Werte« verwendet werden und dabei die Bedeutung einer physikalischen Darstellung haben, beispielsweise mittels einer Mehrzahl elektrischer Bits eines gegebenen Signals oder einer gegebenen Funktion.
Zu Beginn des Rechenvorgangs wird der erste 24-Bit-A'-Wert, X0, als Multiplikator von dem Kernspeicher in den Akkumulator 40 überführt, und zwar je zwei Bits auf einmal. Die erste Bit-Stelle 25 des Akkumulators 40 ist aus weiter unten angegebenen Gründen stets Null. Die ersten beiden Bits des .Y0-Wertes werden daher in die zweite und dritte Bit-Stelle 23, 24 des Akkumulators 40 geleitet. Der erste 24-Bit-F-Wert, F0, wird ebenfalls in seiner Gesamtheit als Multiplikand in den Akkumulator 41 geleitet. Beim Hindurchleiten des F0-Wertes durch die Multipliziereinheit wird dieser Wert an jeder Stufe mit drei Bits von AO multipliziert. Dieses Produkt wird nach Verschiebung zu der richtigen Binärstelle mit den früheren Produkten wie bei regulärer Multiplikation addiert, so daß an der letzten Stufe der Multipliziereinheit der Ausgangswert F0 X0 den ersten Ausdruck für Y0 bildet. Darauf wird der X0-Wert durch den nächsten 24-Bit-X-Wert, X1, ersetzt, und zwar wiederum in der Weise, daß jeweils zwei Bits gleichzeitig zugeführt werden. Der Wert F0 wird, um ein Taktintervall verzögert, von dem Akkumulator 41/ zu der ersten Stufe des Multiplikators zurückgeführt, jedoch wird das Produkt F0 X0 an der letzten Stufe um zwei Taktintervalle verzögert, bis die Bildung des ersten Teilprodukts, nämlich F0 multipliziert mit den ersten drei Bits von X1, abgeschlossen ist. Wenn F0 und das Teilprodukt zu der zweiten Stufe geführt werden, wird das Produkt F0 X0 zu der ersten Stufe zurückgeführt und der zweite F-Wert, F1, in die erste Multiplizierstufe 42 gebracht. Danach werden je zwei Bits von F1 gleichzeitig mit X1 multipliziert und die dabei erhaltenen Teilprodukte mit dem zuvor gebildeten Produkt F0 X0 addiert. An der untersten Stufe ist dann die Bildung des ersten Ausdruckes für Y1, nämlich F0 X1, abgeschlossen. Während des nächsten Taktintervalls wird die Bildung der ersten beiden Ausdrücke von Y0 F0 X0 + F1 X1 abgeschlossen. Dieser Vorgang wird fortgeführt, bis die endgültigen, in Tabelle 1 gezeigten Summenwörter Y0, Y1, Y2 ... Ym erhalten worden sind.
Es sei darauf hingewiesen, daß die Daten von Stufe zu Stufe in diskreten Gruppen weiterbewegt werden. Alle teilweise gebildeten, Ym-Werte und alle unkombinierten, zugeordneten Werte wie Übertrag- und Funktionswerte werden in derselben Stufe alle gleichzeitig zu der nächsten Stufe weitergeleitet. Ebenso ist zu betonen, daß eine Anzahl von erst teilweise gebildeten 7m-Werten gleichzeitig in der Multipliziereinheit mit umläuft. Die in Tabelle 1 umrandeten Gruppen sind diejenigen, in denen die Daten während des Umlaufs durch die Multipliziereinheit verarbeitet werden.
Wie ersichtlich, können bei dem vorliegenden Ausführungsbeispiel bis zu dreizehn Y7n-Werte gleichzeitig verarbeitet werden. Im einzelnen werden etwa zwei Bits eines Ä'-Wertes, beispielsweise X0, von dem Kernspeicher zu den Stellen 2 und 3 des 25-Bit-Akkumulators 40 übertragen. Gleichzeitig wird der gesamte erste 24-Bit-F-Wert, F0, von dem Kernspeicher in den Akkumulator 41 übertragen. Als nächstes werden die Bits der drei ersten Stellen des Akkumulators 40 (die Null der Stelle 1 und die ersten beiden Bits von X0 an den Stellen 2 und 3) und der Inhalt des Akkumulators 41, nämlich der 24-Bit-F0-Wert, in die Multiplizierstufe 42 eingespeist, die die beiden Werte miteinander multipliziert. Das dabei gewonnene Teilprodukt wird dann mit den an den Stellen 22 bis 46 des Akkumulators 43 enthaltenen Bits addiert. Dieser Additionsvorgang wird mit Hilfe der Addiereinheit 44 vorgenommen, die im Gegensatz zu herkömmlichen binären Addiereinheiten lediglich eine Summe und einen Übertragwert bildet, wobei der Ubertragwert in dem Akkumulator 49 gespeichert wird. Die Summe wird dann in die Bit-Stellen 22 bis 46 des Akkumulators 45 geleitet. Alle dabei nicht erfaßten Bits des. Akkumulators 43 (die Bits der Stellen 1 bis 21 und 47 und 48) werden unmittelbar zu den entsprechenden Stellen des Akkumulators 45 geleitet. Gleichzeitig wird der F0-Wert des Akkumulators 41 zu dem Akkumulator 41a transportiert, um dort mit den nächsten beiden Bits und dem zuletzt verwendeten Bit von X0 multipliziert zu werden. Nach dieser Multiplikation wird das Teilprodukt in der Addiereinheit 100 mit den Stellen 20 bis 44 des Akkumulators 45 (wobei das Teilprodukt zwei Stellen nach rechts verschoben wird) und mit dem Übertragwert des Akkumulators 49 für den Übertragwert aus der Addiereinheit 44 addiert, wobei der Ubertragwert des Akkumulators 49 verschoben wird, um seine richtige binäre Lage aufrechtzuerhalten.
In dieser Weise werden die Weitergabe, Multiplikation und Addition der Teilprodukte weiter fortgesetzt, bis das gesamte Produkt F0 X0 abwechselnd in den taktweise arbeitenden Addiereinheiten 50 oder 54 gebildet worden ist. Für den Additionsvorgang der taktweise arbeitenden Addiereinheiten 50 bzw. 54 sind zwei Taktintervalle erforderlich, während für den Additionsvorgang mit Übertragsicherstellung nur ein Taktintervall benötigt wird. Wenn für die taktweise arbeitenden Addiereinheiten eine schnellere Logik verwendet wird, wird die Addiereinheit 54 entfernt, so daß der Rechenvorgang auf dreizehn Schritte mit zwölf Fm-Werten reduziert wird. Der Akkumulator 41 / würde dann ebenfalls entfernt. Das Produkt F0 X0 wird jedoch um eine Stufe gegenüber F0 verzögert, indem sein Wert vorübergehend in einem der beiden Akkumulatoren 47 oder 48 gespeichert wird, so daß der Wert F0AO beim Rücklauf von F0 durch die Speicherstellen des Akkumulators 41 e zum Akkumulator 41 zurückgehalten wird. Wenn F0 zu dem Akkumulator 41 zurückgeführt wird, werden zwei Bits des nächsten X-Wertes, X1, zu den Stellen 2 und 3 des Akkumulators 40 übertragen. Danach werden jedesmal, wenn F0 von einem Akkumulator zu dem nächsten Akkumulator der Akkumulatorschleife 41, 41a, 41b ... 411 übertragen wird, zwei Bits des nächsten Λ'-Wertes an die Stellen des Akkumulators 40 weitergegeben, die zu der Multiplizierstufe geführt sind, die der Stufe zugeordnet ist, die, der den Wert F0 enthaltenden Stufe vorausgeht. Da der Wert F0 am Anfang der Liste der die Werte von Y bildenden Teilprodukte steht, wie das in Tabelle 1 veranschaulicht ist, ist es notwendig, den Inhalt des Akkumulators 43 jedesmal auf Null einzustellen, wenn der Wert F0 in den 24-Bit-Akkumulator 41 eingespeist wird. Das erfolgt zu Beginn der Bildung eines neuen F-Wertes.
ίο
Cl CO
Wie zuvor wird F0 in der Multiplizierstufe 42 mit den ersten drei Bits des Akkumulators 40, der nunmehr zwei Bits von X1 enthält, multipliziert und dann in der Addiereinheit 44 mit den Stellen 24 bis 48 des Akkumulators 43 addiert. Die resultierende Summe wird an den Stellen 22 bis 46 des Akkumulators 45 gespeichert. Nach Speicherung dieser Summe wird F0 zu dem Akkumulator 41a weitergeleitet, und F1 wird aus dem Kernspeicher in den Akkumulator 41 überführt. Darauf wird das verzögerte Produkt F0X0 in den Akkumulator43 gebracht. An dieser Stelle wird F1 in der Multiplizierstufe 42 mit den ersten drei Bits des Akkumulators, der die ersten zwei Bit-Werte von X1 enthält, multipliziert. Bei seiner weiteren Verschiebung j wird F0 mit X1 multipliziert, so daß das Produkt F0 X1 gebildet wird. Der Wert F1, der auf den Wert F0 folgt, wird in ähnlicher Weise mit X1 multipliziert. Das Produkt wird mit dem Akkumulatorinhalt addiert, so daß die Produktsumme F0 X0 + Fj X1 gebildet wird.
Nach Bildung von F0 X1, dem ersten Ausdruck von Y1, und von F0 X0 + F1 X1, den ersten beiden Ausdrücken von F0, wird der Wert X2 in ähnlicher Weise f mit je zwei Bits gleichzeitig aus dem Kernspeicher in die folgenden Stellen des Akkumulators 40 übertragen, die mit der Multiplizierstufe verbunden sind, die dem F0-Wert vorausgeht. F2 wird dann auf F0 und F1 folgend in den Akkumulator 41 eingespeist. Dieser zyklische Prozeß wird fortgesetzt, bis alle F-Werte in der Akkumulatorschleife 41, 41a, 41b... 41/ umlaufen. Sodann werden alle F-Werte zum Umlauf gebracht, bis alle Y7n-Werte, von denen einige in Tabelle 1 gezeigt sind, erhalten worden sind. Die so gebildeten Fm-Werte werden dann über den Ausgabekanal 51 entnommen und in dem Kernspeicher gespeichert.
Die Speicherstellen 106 und 56b stellen Register dar, die die relativen Lagen der Werte darin aufrechterhalten und sie aufeinanderfolgend zum Anfang der Multipliziereinheit vorrücken. Wenn so vorgegangen wird, braucht die Anzahl der verwendeten F-Werte nicht auf die Stufenzahl begrenzt zu sein, die in diesem Fall 12 beträgt, wie das beim Fehlen solcher Speicherelemente notwendig wäre.
Die Verzögerungsakkumulatoren 47 und 48 sind jeweils groß genug, um die 24-Bit-Summe der Addiereinheit, den 24-Bit-Wert der Stellen 24 bis 48 des Akkumulators 43 und den Ubertragwert der Addiereinheit 52 aufzunehmen. Jeder dieser Akkumulatoren 47 und 48 ist in drei Abschnitte unterteilt, von denen der erste die wichtigsten Bits, der zweite die weniger wichtigen Bits und der dritte den Übertragwert enthält. Bevor der in einem der beiden Akkumulatoren 47 oder 48 enthaltene Wert zu der Anfangsstufe zurückgeführt wird, wird der Übertragwert des dritten Akkumulatorabschnittes mittels der dem Akkumulator 47 bzw. 48 zugeordneten taktweise arbeitenden Addiereinheit 50 bzw. 54 an der richtigen Binärstelle mit dem Wert des Akkumulators addiert.
Der abwechselnde Durchlauf der Akkumulatoren 47 bzw. 48 wird durch ein geeignetes Gatter wie etwa das Flip-Flop-Gatter 55 gewährleistet, das eine Kombination aus Akkumulator und taktweise arbeitender Addiereinheit in den »Aufnahme«-Pfad und die andere entsprechende Kombination in den »Abgabe«-Pfad schaltet und dann die Schaltung umkehrt, um den nächsten Wert aufzunehmen.
Mit F i g. 5 ist die Teil-Multiplizierschaltung wiedergegeben, wie sie für die einzelnen Teil-Multiplizierstufen 42, 58, 59 ... 60 Verwendung findet. Diese Teil-Multiplizierschaltung ist ein Logikkreis, der drei aufeinanderfolgende Bits des Multiplikators (ein X-Wort) in jede Teil-Multiplizierstufe einspeist, aber das letzte in der vorhergehenden Teil-Multiplizierstufe verwendete Bit wiederholt. So werden beispielsweise Bits von den Stellen 25, 24, und 23 des Akkumulators 40 in die Teil-Multiplizierstufe 42, Bits von den Stellen 23, 22, 21 in die Teil-Multiplizierstufe 58 und Bits von den Stellen 21, 20 und 19 in die Teil-Multiplizierstufe59 überführt usf. Da jedes zweite Bit (mit Ausnahme des ersten Bits) in zwei Multiplizierstufen wiederholt wird, ist die Bit-Stelle 25 als Null definiert, um einen durch einen nichtkorrigierenden redundanten Wert hervorgerufenen Fehler zu eliminieren. Auf diese Weise verwendet die Multiplizierstufe, die drei Bits für die Multiplikation benutzt, das redundante Bit als Korrekturfaktor. Der Ausgang der Teil-Multiplizierstufe bildet daher ein selbstkorrigierendes Produkt, das für sich genommen und ohne Berücksichtigung in den anderen Multiplizierstufen gebildeter Produkte falsch wäre. - -
Der Akkumulator40 ist auf der rechten Seite der. F i g. 5 gezeigt und hat die Positionen 1 bis 25 (0 bis 24). Der F-Akkumulator 41 befindet sich auf der linken Seite der F i g. 5 und hat die Positionen 1 bis 24. Die Bits von den Stellen 23 bis 25 (22 bis 24) des Akkumulators 40 werden zu jedem einzelnen von sechs UND-Gattern 111 bis 116 der Einheit 110 geleitet. Der Ausgang des UND-Gatters 111 erscheint auf der Leitung 121. Die Ausgänge von den UND-Gattern 112 und 113 beaufschlagen eine Leitung 123 über ein ODER-Gatter 122. In ähnlicher Weise beaufschlagen die Ausgänge der UND-Gatter 114 und 115 eine Leitung 125 über ein ODER-Gatter 124. Der Ausgang des UND-Gatters 116 erscheint an der Leitung 126. Die Leitungen 121, 123, 125 und 126 sind mit zwölf identischen Einheiten verbunden, von denen jedoch in F i g. 5 nur drei Einheiten 131, 132 und 133 gezeigt sind. Die Einheit 131 umfaßt dabei vier UND-Gatter 136 bis 139. Die Ausgänge der UND-Gatter 136 bis 139 sind alle über ein ODER-Gatter 141 an eine Ausgangsleitung 140 angeschlossen. Die Leitung 121 führt zu dem einen Eingang des UND-Gatters 137.' Die Leitung 123 führt zu dem einen Eingang des UND-Gatters 139. Die Leitung 125 führt zu dem einen Eingang des UND-Gatters 138, während die Leitung 126 zu dem einen Eingang des UND-Gatters 136 geführt ist.
.Der zweite Eingang des UND-Gatters 139 wird νοη dem Bit der Stelle 1 des Akkumulators 41 gespeist, wobei das Komplement davon über einen Inverter 142 auf den zweiten Eingang des UND-Gatters 138 einwirkt. In ähnlicher Weise wird der zweite Eingang des UND-Gatters 137 von dem Bit der Stelle 2 des Akku-, mulators 41 gespeist, während das Komplement dazu den zweiten Eingang des UND-Gatters 136 über einen Inverter 143 speist.
Die Leitungen 121, 123, 125 und 126 sind in den Einheiten 132 und 133 jeweils an Einheiten angeschlossen, die den UND-Gattern 136 bis 139 der Einheit 131 entsprechen. Die Einheit 132 wird jedoch mit den Bits der Stellen 3 und 4 des Akkumulators 41 gespeist. Die Bits der Stellen 5 bis 22 werden zu gleichartigen Einheiten (nicht dargestellt) geleitet, die in dem Schaltbild der F i g. 5 zwischen den Einheiten 132 und 133 in analoger Weise angeordnet wären. Die Bits der Stellen 23 und 24 des Akkumulators 41 beaufschlagen die UND-Gatter der Einheit 133. Die Gatter
132 und 133 erzeugen in den Leitungen 144 und 145 dann entsprechende Ausgangssignale.
Wie weiter oben beschrieben, wird in dem Akku mulator'41 ein F-Wert gespeichert, während die Bits eines X-Wertes in dem Akkumulator 40 gespeichert werden. Es werden jeweils drei Bits des X-Wertes gleichzeitig genommen, die mit den Buchstaben a, b und c bezeichnet und durch die Einheiten 110 entsprechend Tabelle 2 gewichtet sind. Alle möglichen Kombinationen binärer Werte der Bits a, b und c werden verwendet. Die Spalte α der Tabelle 2 ist dem Wert —2 zugeordnet, während die Spalten b und c jeweils dem Wert +1 zugeordnet sind. Diese Werte werden mit den Werten jeder Spalte multipliziert, und es werden dann die Spalten horizontal summiert, um das Gewicht W zu erhalten.
Tabelle α, b, c 2 b C W 0
Bits O 0 -2
a O 0 1
O 1 0 -1
1 1 0 1
O O 1 -1
1 O 1 2
O 1 1 0
τ—Ι 1 1
O = 25, 24, 23
1 23, 22, 21
21, 20, 19
usw.
Die Spalte W der Tabelle 2 stellt daher das Gewicht dar, das dem Satz von drei binären Zahlen a, b und c zuzuordnen ist. In der binären Logik kann ein Gewicht der Größe »1« eine Zahl, der Größe »—1« ein Komplement, der Größe »2« die Zahl in der zweiten Potenz und der Größe »—2« das Komplement der Zähl in der zweiten Potenz repräsentieren. Auf diese Weise sind die Zahlensätze a, b und c mit einer Reihe von Redundanzen kodiert, d. h., wenn a, b und c den Wert 010 oder 0 01 haben, so wird die Kombination durch den redundanten W-Wert 1 repräsentiert. Da die Bits jedoch in Sätzen von drei Bits aufgenommen werden, wobei zwei Bits jedes Satzes zwei verschiedenen Sätzen gemeinsam sind, korrigiert das Codiersystem Fehler, die durch redundante Werte beim Addieren der Werte hervorgerufen worden sind. Der Vorteil dieses Codiersystems besteht darin, daß dadurch die Anzahl der Multiplikationen auf die Hälfte verringert wird, da ein Ausgangssignal effektiv eine Multiplikation von zwei Zahlen wiedergibt.
Dementsprechend werden die ersten drei AO-Bits der Stellen 23, 24 und 25 des Akkumulators 40 von dem Akkumulator 40 in die Durchschalteinheit 110 überführt. Diese Durchschalteinheit ist so ausgelegt, daß das jeweilige Gatter, das darin einen in Tabelle 2 gezeigten Zustand (wie etwa 0 0 0, 0 0 1 oder 010) hervorgerufen hat, das Signal 1 abgibt, während alle anderen Gatter das Signal 0 liefern. Der F-Wert wie etwa F0 wird in die zweite Durchschalteinheit . mit den Einheiten 131, 132 ... 133, die ebenfalls aus UND- und ODER-Gattern aufgebaut ist, eingespeist. Für je zwei Bits des F-Wertes stellen vier UND-Gatter in den Einheiten 131 bis 133 die Logik zur Verfugung, um die Zahl, das Komplement der Zahl, die um eine Stelle nach links (in die zweite Potenz) verschobene Zahl und das Komplement der um eine Stelle nach links geschobenen Zahl wiederzugeben.
Die Ausgänge der Durchschalteinheit 110 sind in Übereinstimmung mit Tabelle 2 zu den entsprechenden UND-Gattern der Einheiten oder Torschaltungen 131 bis 133 geführt, wobei die Ausgangssignale über
ίο die Leitungen 140, 144 ... 145 erhalten werden, die den Wert F0 mal den ersten drei Bits von X0 und einen Korrekturfaktor (im gezeigten Fall Null) darstellen.
In gleicher Weise ist das letzte, zuvor bei der ersten
Multiplikation verwendete Bit das Bit der Stelle 23 des Akkumulators 40, und die nächsten beiden Bits von X0, d. h. die Bits an den Stellen 22 und 24 des Akkumulators 40, werden in eine ähnliche Schaltung geleitet, um ein Teilprodukt zu gewinnen, das den Wert F0 mal den Bits 21 und 22 von X0 und einen Korrekturfaktor darstellt. Durch Aufsummierung aller dieser Teilprodukte in der oben beschriebenen Schaltung der F i g. 4 wird das Produkt F0 X0 gebildet.
Zur weiteren Erläuterung der Datenumlaufschleife durch die Multipliziereinheiten zeigt F i g. 6 einen Teil des Systems der F i g. 4 zusammen mit einer repräsentativen Form der Datenumlaufsteuerung. Für diese Beschreibung sei angenommen, daß aufeinanderfolgende Werte X0, X1, X2 ... Xn zunächst in wiederauffindbarer oder abrufbarer Form etwa in den Registern 200a, 2006, 200c ... 200« gespeichert werden. In entsprechender Weise werden die F-Wörter in abrufbarer Form in Registern 201 α, 201 b, 201c ... bzw. 201 η gespeichert.
Die Bit-Stellen des Registers 200 a sind mit den Bit-Stellen des ^-Registers bzw. Akkumulators 40 über UND-Gatter 211 bis 234 verbunden. Die UND-Gatter 211 bis 234 sind durch von einem Taktgeber 240 abgegebene Impulse gesteuert. Die Taktimpulse aus dem Taktgeber 240 beaufschlagen einen Impulsuntersetzer 241, der die Taktfrequenz um einen Faktor 14 herabsetzt, sowie eine 13-Bit-Ringzähler-Impulsverzögerungseinheit 242. Die ersten zwölf Ausgänge der Einheit 242 sind paarweise an die Eingänge der UND-Gatter 211 bis 234 angeschlossen. Der Ausgang Nr. 1 ist an die Gatter 211 und 212 angelegt, während der Ausgang Nr. 2 an die Gatter 213 und 214 gelegt ist. In dieser Reihenfolge sind die übrigen Ausgänge mit den weiteren UND-Gattern verbunden, so daß der zwölfte Ausgang an die UND-Gatter 233 und 234 angeschlossen ist. Der -dreizehnte Ausgang ist für die Übertragung in den Akkumulator 40 nicht erforderlich. Er entspricht der Verzögerung der taktweise arbeitenden Addiereinheit.
Durch die Ausgangsimpulse der Einheit 242 werden somit die Bits 23 und 24 koinzident mit dem ersten Impuls der Einheit 242 zu den Stellen 23 und 24 des Akkumulators 40 übertragen. Durch den zweiten, von der Einheit 242 abgegebenen Impuls werden die Bits 21 und 22 an die Stellen 21 und 22 des Akkumulators 40 übergeben usw.
Wie ersichtlich, wird das zwölfte Ausgangssignal der Einheit 242 nicht nur zu den Gattern 233 und 234, sondern außerdem auch zu den Gatter-Reihen 243 und 244 geleitet. Wenn die letzten Bits des Wortes X0 in den
Akkumulator 40 übertragen worden sind, werden die Wörter X1 und X2 und die folgenden Wörter in entsprechender Reihenfolge einen Schritt in Richtung auf den Akkumulator 40 weiter vorgerückt, so daß nun-
mehr das Wort X1 das Register 200 a und das Wort X2 das Register 200 ό belegt.
Entsprechend der Steuerung durch die Einheit 242 werden die Wörter so von dem Register 200 2-Bit-weise in den Akkumulator 40 überführt.
Wenn die Wörter F0, F1 und F2 in den Registern 201a, 2016 und 201c gespeichert sind, so können sie durch über die Leitung 245 zugeführte Steuerimpulse abwärts durch die Serie von Registern 41 bis 41 k weitergegeben werden. Wie aus der Zeichnung ersieht-Hch, münden die Ausgänge der Akkumulatoren 41 bis 41 it in UND-Gatter 251 bis 262, die die Akkumulatoren in Kaskadenschaltung miteinander verbinden. Die Gatter sind parallel aufgebaut, ι so daß sie jedes 24-Bit-Wort als Ganzes von einem Akkumulator zu einem anderen übertragen können. In ähnlicher Weise ist auch zwischen dem Register 201 α und dem Akkumulator 41 ein UND-Gatter 263 vorgesehen. In ähnlicher Weise sind Gatter 264 und 265 in den Pfad für die Zufuhr der aufeinanderfolgenden F-Wörter F0, F1 und F2 geschaltet.
Von dem ersten Ausgang der Einheit 242 verläuft eine Steuerleitung 270 zu den UND-Gattern 263 bis 265. Nach dem Einwirken des ersten Impulses der Einheit 242 werden somit die beiden ersten Bits des Wortes X0 in den Akkumulator 40 übertragen, während die Wörter F0, F1 und F2 jeweils einen Schritt vorgerückt werden, wobei das Wort F0 von dem Akkumulator 41 aufgenommen wird. Nachdem jeder der Taktimpulse der Leitung 271 die Gatter 251 bis 262 beaufschlagt hat, wird das Wort F0 schrittweise durch die Register 41 bis 41 k geführt. Gleichzeitig werden die Bits 1 bis 22 2-Bit-weise in den Akkumulator 40 weitergegeben.
Der zwölfte Impuls der Verzögerungseinheit 242 sorgt für eine Übertragung der Bits 23 und 24 in den Akkumulator 40 und gibt gleichzeitig das Wort X1 in das Register 200 a weiter. Koinzident mit dem vierzehnten Ausgangsimpuls der Einheit 240 erscheint an dem Ausgang Nr. 1 ein zweiter Impuls, um das erste der beiden Bits des Wortes X1 zu den Stellen 1 und 2 des Akkumulators 40 zu übertragen. Gleichzeitig betätigt ein auf der Leitung 271 erscheinender Impuls das Gatter 262, um das Wort F0 za dem Akkumulator 41 zu übertragen. Die 1:14-Untersetzereinheit 241 beaufschlagt die Gatter 263, 264 und 265 dann über einen Kanal 272 mit einem Impuls, so daß das Wort F1 in den Akkumulator 41 und gleichzeitig damit das Wort F0 in den Akkumulator 41a übertragen wird.
Wie ersichtlich, ist die Leitung 270 über ein UND-Gatter 273 mit den Gattern 263, 264 und 265 verbunden, während die Leitung 272 über das Gatter 274 parallel dazu geschaltet ist. Eine Sperre 275 ist mit ihrem Trigger-Eingang an die Leitung 270 angeschlossen, so daß nur der erste Impuls der Einheit 242 über das UND-Gatter 273 zu den Gattern 263 bis 265 gelangen kann. Danach vermag nur der über die Leitung 272 geführte Impuls die Gatter 263 bis 265 über das Gatter 274 zu erreichen.
Wie sich aus dem Vorstehenden ergibt, wird der in Tabelle 1 schematisch wiedergegebene Vorgang durch den selektiven Einsatz von Taktgeber-Steuerimpulsen der Taktgebereinheit 240 realisiert. Zu Beginn werden alle Akkumulatoren 40 und 41a bis 41/ auf Null gestellt. Die Bits der X-Wörter werden jeweils zu zweit in den Akkumulator 40 weitergegeben. In einem ersten Zyklus wird das Wort F0 schrittweise durch die Akkumulatoren 41 bis 41/ geführt, so daß das Wort F0 somit ohne die Anwesenheit eines weiteren Wortes durch die Akkumulatorenreihen gelangt.
Mit dem zweiten Zyklus, während dessen das Wort JST1 an Stelle des Wortes X0 in den Akkumulator 40 gegeben wird, werden die Wörter F0 und F1 schrittweise nacheinanderfolgend durch die Akkumulatoren 41 bis 41/ geführt. Wenn das dritte Wort X2 in den Akkumulator 40 eingegeben wird, werden die Wörter F0, F1 und F2 schrittweise eins nach dem anderen durch die Akkumulatoren 41 bis 41/ geführt.
Man erkennt, daß die Speichereinheit 56 b der F i g. 4 in F i g. 6 nicht vorgesehen worden ist. Ebenso sind der Akkumulator 43 der F i g. 4 und die davon ausgehenden Datenpfade in F i g. 6 nicht gezeigt worden. F i g. 6 dient in erster Linie zur Veranschaulichung der Steuerung des Datenumlaufs bezüglich der Akkumulatoren 40 und 41. Die Gatter werden gleichzeitig mit den Gattern 251 bis 262 in jeder der Leitungen 43a, 43c und 436 der F i g. 4 betätigt, so daß die Daten die dritte Schleife gleichzeitig mit dem oben beschriebenen Umlauf durch die Akkumulatoren 41 bis 41/ durchlaufen. In den Leitungen 45 c, 45 b, 45 d und 49 a und außerdem in ähnlicher Weise in den Zwischenstufen der dritten Schleife sind gleichfalls Gatter vorgesehen. Durch die Verwendung von Teil-Addierern kann somit eine beträchtliche Zeitersparnis erzielt werden.
Hierzu 5 Blatt Zeichnungen

Claims (3)

Patentansprüche:
1. Digital arbeitende Rechenanordnung zur Bildung der Korrelations- bzw. Konvolutionsfilterfunktion
771 /ΛΒ^ΪΙ Zt 771 >
wobei Fn (n = a ... b) und Xn ± m (n = a ... b, m = c ... d) erste und zweite Datenwortreihen aus η bzw. η ± m Datenwörtern bilden und Ym eine dritte Datenwortreihe aus m Datenwörtern bildet, mit zur Aufnahme der Datenwörter dienenden Speicherstufen, denen Multipliziereinheiten und Addiereinheiten zugeordnet sind, dadurch ge kennzeichne t,.'daß zur Bildung einer geschlossenen Schleife hintereinandergeschaltete, erste Speicherstufen (41 bis 41 fc, 41/) vorgesehen sind, von denen eine Speicherstufe jeweils ein Datenwort der ersten Datenwortreihe F aufnehmen kann und von denen eine bestimmte Anzahl hintereinandergeschalteter Speicherstufen (41 bis 41Ä:) mit dem ersten Eingang von der Anzahl entsprechenden Multipliziereinheiten (42, 58 ... 60) verbunden sind, daß zur Aufnahme eines Datenworts der zweiten Datenwortreihe X eine zweite Speicherstufe (40) vorgesehen ist, in die zeitlich nacheinander Datenwortgruppen, in die das Datenwort unterteilt ist, einführbar sind und von der diese Datenwortgruppen jeweils den zweiten Eingängen der Multipliziereinheiten zuführbar sind, wobei ein oder mehrere Bits der aufeinanderfolgenden Datenwortgruppen den zweiten Eingängen der Multipliziereinheiten mehrfach zugeführt werden, daß die Ausgänge der Multipliziereinheiten zur Überführung der gebildeten Teilprodukte jeweils mit einer Addiereinheit (44 ... 52) verbunden sind, welche wiederum mit zur Bildung einer Schleife hintereinandergeschalteter Akkumulatoren (43, 45 ... 47, 48) derart verbunden sind, daß das Teilprodukt jeder Multipliziereinheit auf den Inhalt des zugeordneten vorausgehenden Akkumulators addiert und die Summe in den zugeordneten vorausgehenden Akkumulator eingeführt wird, wobei synchron mit dem Durchlauf eines Datenwortes der Datenreihe F durch die ersten Speicherstufen die gebildeten Teilprodukte aufaddiert werden, so daß nach dem Durchlauf im letzten Akkumulator (47, 48) jeweils der in den ersten Akkumulator (43) eingeführte und um das Gesamtprodukt der beiden Datenwörter erhöhte Zwischenwert für Datenworte Y auftritt, der für einen weiteren Durchlauf zu dem ersten Akkumulator zurückführbar ist, daß eine Steuervorrichtung vorgesehen ist, die nach jedem Durchlauf eines Datenwortes der ersten Datenwortreihe F den ersten Speicherstufen jeweils ein weiteres Datenwort der ersten Datenwortreihe für den nächsten Durchlauf zuführt oder entnimmt und ein weiteres Datenwort der zweiten Datenwortreihe X zur gruppenweisen Einführung in die zweite Speicherstufe (40) bereitstellt, wobei entsprechend der Anzahl der eingeführten Datenworte der zweiten Datenwortreihe und der Anzahl der Multiplizier- bzw. Addiereinheiten gleichzeitig Zwischenwerte von mehreren Datenworten Y gebildet werden, und daß eine Ausgangsschaltung (51) vorgesehen ist, die die
IO
Endwerte der Datenwörter Y der Akkumulatorschleife entnimmt.
2. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß die zweiten Eingänge der Multipliziereinheiten (42, 58 bis 60) jeweils aus Dreiergruppen von Eingangskanälen bestehen, denen jeweils eine Informationseinheit aus den aus drei Informationseinheiten bestehenden zeitlich aufeinanderfolgenden Datenwortgruppen der zweiten Datenwortreihe (X) zugeführt werden, wobei zwei Eingangskanäle jeder Dreiergruppe mit jeweils einem Eingangskanal einer weiteren Dreiergruppe verbunden sind.
3. Anordnung nach Anspruch 2, dadurch gekennzeichnet, daß die Multipliziereinheiten (42, 58 bis 60) derart ausgebildet sind, daß sie die an ihren Eingangskanälen zugeführten drei Informationseinheiten so abnehmen, daß eine Informationseinheit jeder Dreiergruppe eine bereits zuvor einer weiteren Multipliziereinheit zugeführte Informationseinheit ist.
DE19671549560 1967-02-15 1967-12-27 Digital arbeitende Rechenanordnung zur Bildung der Korrelations- bzw. Konvolutionsfilterfunktion Expired DE1549560C3 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US61625967A 1967-02-15 1967-02-15
US61625967 1967-02-15
DET0035594 1967-12-27

Publications (3)

Publication Number Publication Date
DE1549560A1 DE1549560A1 (de) 1971-03-04
DE1549560B2 DE1549560B2 (de) 1975-12-18
DE1549560C3 true DE1549560C3 (de) 1976-07-29

Family

ID=

Similar Documents

Publication Publication Date Title
DE19758079A1 (de) Verfahren und Vorrichtung zur Galoisfeld-Multiplikation
DE1169166B (de) Modulí¬9 Pruefzahl-Rechner
DE2221693B2 (de) Schaltungsanordnung zur Ausführung einer Multiplikation zwischen zwei Binärzahlen
DE2730918A1 (de) Anordnung zum multiplizieren von binaerzahlen
DE1114050B (de) Elektronischer Gleitkomma-Rechner
DE19635114A1 (de) Multiplizierer
DE1549560C3 (de) Digital arbeitende Rechenanordnung zur Bildung der Korrelations- bzw. Konvolutionsfilterfunktion
DE3424078A1 (de) Dezimalmultiplikations-einrichtung
DE1051030B (de) Elektronische Multiplikationsmaschine
DE2017132B2 (de) Binärer Parallel-Addierer
DE2426253B2 (de) Vorrichtung zum ziehen der quadratwurzel aus einer binaeren zahl
DE1549560B2 (de) Digital arbeitende Rechenanordnung zur Bildung der Korrelations- bzw. Konvolutionsfilterfunktion
DE1909475A1 (de) Im Serienbetrieb arbeitende Umlauf-Datenspeicher- und -verarbeitungseinrichtung
DE1549105C3 (de) Codeprüfanordnung für die Korrektur fehlerhaft übertragener Zeichen
DE1574660B2 (de) Schieberegister hoher geschwindigkeit
DE1094490B (de) Verfahren und Anordnung zur Umwandlung von Binaerzahlen in Dezimalzahlen und umgekehrt
DE1094020B (de) Periodisch arbeitende numerische Rechenmaschine
DE2142636C3 (de) Rechenwerk für die Durchführung digitaler Multiplikationen
DE2554443A1 (de) Vorrichtung zur bildung von kanaelen unter zuhilfenahme von gleichmaessig auf einer kreislinie verteilten detektoren
DE3634691A1 (de) Differenzpulscodemodulator sowie dessen verwendung als demodulator
DE1181459B (de) Multiplikationsschaltung fuer elektronische Zifferrechenmaschinen
DE1151684B (de) Elektronisch arbeitende Rechenmaschine mit einer Programmvorrichtung
DE1524156B2 (de) Digitale elektronische recheneinrichtung
DE1424926B1 (de) Verfahren zur Multiplikation binaerer Zahlen in mehreren Operationsschritten
DE1091778B (de) Elektronische Multiplikationsmaschine nach dem Teilproduktverfahren