DE1549560B2 - Digital arbeitende Rechenanordnung zur Bildung der Korrelations- bzw. Konvolutionsfilterfunktion - Google Patents
Digital arbeitende Rechenanordnung zur Bildung der Korrelations- bzw. KonvolutionsfilterfunktionInfo
- Publication number
- DE1549560B2 DE1549560B2 DE1549560A DE1549560A DE1549560B2 DE 1549560 B2 DE1549560 B2 DE 1549560B2 DE 1549560 A DE1549560 A DE 1549560A DE 1549560 A DE1549560 A DE 1549560A DE 1549560 B2 DE1549560 B2 DE 1549560B2
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Complex Calculations (AREA)
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 Xx und F0 X1 gebildet.
Nun sind beim Datenumlauf bereits drei Teilergebnisse beteiligt, und es erfolgt die Bildung der Produkte
F2 X2, F1 X2 und F0 X2- 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 Fig. 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:
30
Ym —
im + TO·
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 b\ des Wellenzuges
11 multipliziert wird. Als nächster Schritt werden dann die Ordinaten α 2 und bl miteinander multipliziert
und als Produkt mit dem Produkt der ersten Multiplikation addiert. Mit dem nächsten Schritt werden
die Ordinaten <z3 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 τ = 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 r im Verhältnis
zueinander verschoben worden sind, wobei jede Ope- 6S
rationsserie jeweils einen Punkt der Korrelationsfunktion liefert.
Aus den vorstehenden Ausführungen ergibt sich bereits die Vielzahl der Rechenoperationen, die notwendig
sind, um einen Punkt der Funktion
•
b
Ym — /, Fn Xn + m ·
η = α
;
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. 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 16 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 Multiplikations- 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 Konvolutionsmultipliziereinheit23 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 jP repräsentierenden Wörter überführt werden.
,
Die ersten drei Speicherzellen des Akkumulators 40 sind über Signalleitungen entsprechend der Leitung
40 a 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
41 α nachgeschaltet ist, schließt sich an den Akkumulator 41 α ein weiterer Akkumulator 41 b an, auf
den in entsprechender Weise weitere Akkumulatoren 41c ... 41 k, 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
42 a zu einer Addiereinheit 44 in eine zweite Datenumlaufschleife geleitet. Ein zweiter Eingangskanal führt zu der Addiereinheit 44, um 24 Bits aus
den Bißstellen 24 bis 48 eines 48-Bit-Akkumulators 43
zu übertragen. Zwei Ausgangskanäle 44 a und 44 b 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 α , 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 40b in eine Multiplizierstufe 58
eingeleitet und dort mit dem 24-Bit-Wert der in dem Akkumulator 41a enthaltenen Datenwortreihe F multipliziert.
Der Ausgangswert der Multiplizierstufe 58 gelangt über einen Kanal 5Sb 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 52 b
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 53a 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
47 b mit dem ersten bzw. letzten Drittel des Akkumulators
47 gekoppelt. In der Addiereinheit 50 wird der in dem Akkumulator 47 gespeicherte Übertragwert
zu dem Teilprodukt des ersten Drittels addiert. In gleicher Weise ist eine taktweise arbeitende Addiereinheit
54 über Eingangskanäle 48a und 4Sb 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 Akkumulators
enthaltenen Teilprodukt addieren.
Die in den taktweise arbeitenden Übertragern 50 und 54 gebildeten Summen gelangen über Kanäle 50 a
und 50 b 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 Y7n 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 FOT-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-Bk"^-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 X0-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 X0 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-Ä'-Wert,
Jf1, 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
Fnt-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 Ym-Werte gleichzeitig
verarbeitet werden. Im einzelnen werden etwa zwei Bits eines Jf-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 Ubertragwert
bildet, wobei der Übertragwert 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
dar Addiereinheit 44 addiert, wobei der Übertragwert 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 F0 X0 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, 41 a, 41 b ... 41 / übertragen wird, zwei Bits des nächsten
X-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.
ίο
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 Akkumulator 43 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 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 + F1 X1 gebildet wird.
Nach Bildung von F0 X1, dem ersten Ausdruck von
Y1, und von F0 X0 + F1 X1, den ersten beiden Aus-
^ drücken von Y0, 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, 41 a, 41 Z>... 41/ umlaufen. Sodann
werden alle F-Werte zum Umlauf gebracht, bis alle Fm-Werte, von denen einige in Tabelle 1 gezeigt
sind, erhalten worden sind. Die so gebildeten 7TO-Werte
werden dann über den Ausgabekanal 51 entnommen und in dem Kernspeicher gespeichert.
Die Speicherstellen 106 und 566 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 ah 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-Multip]izierstufe59
ίο ü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 Aus-, gangsleitung 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 Akkumulators 41 gespeist, während das Komplement dazu den zweiten Eingang des UND-Gatters 136 über einen Inverter 143 speist.
.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 Akkumulators 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 Akkumulator'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 | 0 | 0 | -2 | |||
a | 0 | 0 | 1 | |||
0 | 1 | 0 | -1 | |||
1 | 1 | 0 | 1 | |||
0 | 0 | 1 | -γ | |||
1 | 0 | 1 | 2 | |||
0 | 1 | 1 | 0 | |||
1 | 1 | 1 | ||||
0 | = 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 Tinheiten 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 ... 20On gespeichert werden. In entsprechender
Weise werden die F-Wörter in abrufbarer Form in Registern 201 α, 201 ό, 201c... bzw. 201«
gespeichert.
Die Bit-Stellen des Registers 200a 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 b 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, 201 b 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 ersichtlich,
münden die Ausgänge der Akkumulatoren 41 bis 41A: 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 /"-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 AO 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 zu 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 X1 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Ä^ 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.
Mit dem zweiten Zyklus, während dessen das Wort X1 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Ä^ 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 43 a,
43 c 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 45c, 45b, 45d und 49a 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)
1. Digital arbeitende Rechenanordnung zur Bildung der Korrelations- bzw. Konvolutionsfilterfunktion
Ym = /, Fn λ η i; m
>
η — a
wobei Fn (η — 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
gekennzeichnet, daß zur Bildung einer geschlossenen Schleife hintereinandergeschaltete,
erste Speicherstufen (41 bis 41A:, 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
41k) 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 Datenwoxt
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 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.
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 true DE1549560B2 (de) | 1975-12-18 |
DE1549560C3 DE1549560C3 (de) | 1976-07-29 |
Family
ID=
Also Published As
Publication number | Publication date |
---|---|
FR1549053A (de) | 1968-12-06 |
DE1549560A1 (de) | 1971-03-04 |
GB1225631A (de) | 1971-03-17 |
US3553722A (en) | 1971-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3854321T2 (de) | Populationszählung in Rechnersystemen. | |
DE3700991C2 (de) | Digitaler Übertragsvorgriffsaddierer | |
DE1956209C3 (de) | Multipliziervorrichtung | |
DE69703085T2 (de) | Koprozessor mit zwei parallel arbeitenden Multiplizierschaltungen | |
EP0123921B1 (de) | Parallelverknüpfungsschaltung mit verkürztem Übertragsdurchlauf | |
DE19758079A1 (de) | Verfahren und Vorrichtung zur Galoisfeld-Multiplikation | |
DE1193996B (de) | Schiebespeicher mit Steuervorrichtung | |
DE1169166B (de) | Modulí¬9 Pruefzahl-Rechner | |
DE2221693B2 (de) | Schaltungsanordnung zur Ausführung einer Multiplikation zwischen zwei Binärzahlen | |
DE1114050B (de) | Elektronischer Gleitkomma-Rechner | |
DE2730918A1 (de) | Anordnung zum multiplizieren von binaerzahlen | |
DE3447634C2 (de) | ||
DE1125208B (de) | Elektrisches Vergleichsschaltungssystem | |
DE19635114A1 (de) | Multiplizierer | |
DE2750212A1 (de) | Einrichtung zur bildung und akkumulation von produkten | |
DE3424078A1 (de) | Dezimalmultiplikations-einrichtung | |
DE1081255B (de) | Digitales elektronisches Rechengeraet mit Impulsumlaufspeichern | |
DE2017132C3 (de) | Binärer ParaUel-Addierer | |
DE1549560C3 (de) | Digital arbeitende Rechenanordnung zur Bildung der Korrelations- bzw. Konvolutionsfilterfunktion | |
DE1549560B2 (de) | Digital arbeitende Rechenanordnung zur Bildung der Korrelations- bzw. Konvolutionsfilterfunktion | |
DE2426253B2 (de) | Vorrichtung zum ziehen der quadratwurzel aus einer binaeren zahl | |
DE1549105C3 (de) | Codeprüfanordnung für die Korrektur fehlerhaft übertragener Zeichen | |
DE1574660A1 (de) | Schieberegister hoher Geschwindigkeit | |
DE19635113A1 (de) | Multiplizierer | |
DE1094020B (de) | Periodisch arbeitende numerische Rechenmaschine |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C3 | Grant after two publication steps (3rd publication) |